From cf1368fa0b59e6b37efd7b4af5ffc61248622054 Mon Sep 17 00:00:00 2001 From: Michael RICOIS Date: Sat, 25 Jan 2014 21:02:50 +0000 Subject: [PATCH] Update all class from WebService (2014-01-24) --- 1.2/library/Metier/Infogreffe/Infogreffe.php | 18 +- .../Metier/Infogreffe/InfogreffeAc.php | 73 +- .../Metier/Infogreffe/InfogreffeBi.php | 91 +- 1.2/library/Metier/Search/Engine.php | 98 + 1.2/library/Metier/Sfr/Sfr.php | 23 +- .../Metier/bodacc/Cache/Evenements.php | 30 +- 1.2/library/Metier/common/ICotation.inc | 302 - 1.2/library/Metier/common/controles.php | 47 - 1.2/library/Metier/common/fonctions.php | 339 - 1.2/library/Metier/common/insee.class.php | 548 -- 1.2/library/Metier/common/normad.class.php | 89 - 1.2/library/Metier/common/paramCotation.inc | 170 - 1.2/library/Metier/common/rncs.class.php | 9 - 1.2/library/Metier/conversion/bilAltares.php | 795 --- 1.2/library/Metier/insee/classMInsee.php | 24 +- .../Metier/partenaires/classMAmabis.php | 202 +- .../Metier/partenaires/classMGreffes.php | 1074 ++- .../Metier/partenaires/classMLiens2.php | 82 +- 1.2/library/Metier/partenaires/classMMap.php | 540 +- .../Metier/scores/Cache/CacheTabFormules.php | 3581 ++++++++++ .../Metier/scores/Cache/CacheTabInfla.php | 25 + .../Metier/scores/Cache/CacheTabRendObli.php | 22 + .../Metier/scores/Cache/CacheTabVariables.php | 6008 +++++++++++++++++ 1.2/library/Metier/scores/README.txt | 14 + .../scores/Variables/CommentsIndiscore409.php | 4922 ++++++++++++++ .../scores/Variables/CommentsIndiscore411.php | 24 +- 1.2/library/Metier/scores/classMRatios.php | 453 +- 1.2/library/Metier/scores/classMScores.php | 19 +- 1.2/library/Metier/sphinx/comb2crit.txt | 47 - 1.2/library/Metier/sphinx/cpVilles.php | 45 - 1.2/library/Metier/sphinx/crit2seq.prn | 114 - 1.2/library/Metier/sphinx/criteresFonc.php | 176 +- 1.2/library/Metier/sphinx/recherche.php | 338 - 1.2/library/Metier/sphinx/recherche2.php | 260 - 1.2/library/Metier/sphinx/rechercheFonc.php | 117 +- 1.2/library/Metier/sphinx/rechercheTest.php | 171 - 1.2/library/Metier/sphinx/sphinxsearch.php | 130 - .../sphinxapi/sphinxapi-0.9.9.php} | 3254 +++++---- .../sphinxapi/sphinxapi-2.1.2.php} | 2997 ++++---- .../Vendors/sphinxapi/sphinxapi-2.1.5.php | 1810 +++++ 1.2/library/framework/mail/RFC822.php | 878 --- 1.2/library/framework/mail/htmlMimeMail5.php | 1111 --- 1.2/library/framework/mail/mimePart.php | 311 - 1.2/library/framework/mail/sendMail.php | 144 +- 1.2/library/framework/mail/sendMailOld.php | 33 - 1.2/library/framework/mail/smtp.php | 369 - 46 files changed, 22230 insertions(+), 9697 deletions(-) create mode 100644 1.2/library/Metier/Search/Engine.php delete mode 100644 1.2/library/Metier/common/ICotation.inc delete mode 100644 1.2/library/Metier/common/controles.php delete mode 100644 1.2/library/Metier/common/fonctions.php delete mode 100644 1.2/library/Metier/common/insee.class.php delete mode 100644 1.2/library/Metier/common/normad.class.php delete mode 100644 1.2/library/Metier/common/paramCotation.inc delete mode 100644 1.2/library/Metier/common/rncs.class.php delete mode 100644 1.2/library/Metier/conversion/bilAltares.php create mode 100644 1.2/library/Metier/scores/Cache/CacheTabFormules.php create mode 100644 1.2/library/Metier/scores/Cache/CacheTabInfla.php create mode 100644 1.2/library/Metier/scores/Cache/CacheTabRendObli.php create mode 100644 1.2/library/Metier/scores/Cache/CacheTabVariables.php create mode 100644 1.2/library/Metier/scores/Variables/CommentsIndiscore409.php delete mode 100644 1.2/library/Metier/sphinx/comb2crit.txt delete mode 100644 1.2/library/Metier/sphinx/cpVilles.php delete mode 100644 1.2/library/Metier/sphinx/crit2seq.prn delete mode 100644 1.2/library/Metier/sphinx/recherche.php delete mode 100644 1.2/library/Metier/sphinx/recherche2.php delete mode 100644 1.2/library/Metier/sphinx/rechercheTest.php delete mode 100644 1.2/library/Metier/sphinx/sphinxsearch.php rename 1.2/library/{Metier/sphinx/sphinxapi.php => Vendors/sphinxapi/sphinxapi-0.9.9.php} (95%) rename 1.2/library/{Metier/sphinx/sphinxapi2.php => Vendors/sphinxapi/sphinxapi-2.1.2.php} (57%) create mode 100644 1.2/library/Vendors/sphinxapi/sphinxapi-2.1.5.php delete mode 100644 1.2/library/framework/mail/RFC822.php delete mode 100644 1.2/library/framework/mail/htmlMimeMail5.php delete mode 100644 1.2/library/framework/mail/mimePart.php delete mode 100644 1.2/library/framework/mail/sendMailOld.php delete mode 100644 1.2/library/framework/mail/smtp.php diff --git a/1.2/library/Metier/Infogreffe/Infogreffe.php b/1.2/library/Metier/Infogreffe/Infogreffe.php index 2d21d571..688a9921 100644 --- a/1.2/library/Metier/Infogreffe/Infogreffe.php +++ b/1.2/library/Metier/Infogreffe/Infogreffe.php @@ -88,6 +88,12 @@ class Metier_Infogreffe */ public $date_acte; + /** + * + * @var unknown + */ + public $type_acte; + /** * AC : Numéro de l'acte * @var string @@ -131,15 +137,14 @@ class Metier_Infogreffe $xml = $this->fileFromCache(); } else { $xml = $this->getProduitsXML(); - $this->error($xml); } + $this->error($xml); + if ( $this->mode_diffusion == 'XL' ){ $this->fileTocache($xml); } - $this->error($xml); - return $xml; } @@ -254,14 +259,14 @@ class Metier_Infogreffe * version => pdf version * size => pdf filesize */ - protected function pdfInfos($pdf) + public function pdfInfos($pdf) { if ( false !== ( $file = file_get_contents( $pdf ) ) ) { //Number of page $pages = preg_match_all( "/\/Page\W/", $file, $matches ); //Pdf Version - preg_match("/^\%PDF\-(.*)\s/U", $buffer, $matches); + preg_match("/^\%PDF\-(.*)\s/U", $file, $matches); $version = $matches[1]; //Pdf size @@ -325,6 +330,7 @@ class Metier_Infogreffe $commande->addChild('dossier_statut',$this->dossier_statut); $commande->addChild('dossier_chrono',$this->dossier_chrono); $commande->addChild('num_depot',$this->num_depot); + //Date de cloture au format dd/MM/yyyy $commande->addChild('date_cloture', $this->date_cloture); } // Commande de documents : actes @@ -359,7 +365,7 @@ class Metier_Infogreffe $req = utf8_encode($this->xml); if ($this->debug) { - file_put_contents($this->type_document.'-'.$this->siren.'-'.$this->mode_diffusion.'.query'); + file_put_contents($this->type_document.'-'.$this->siren.'-'.$this->mode_diffusion.'.query', $this->xml); } //Create XML request diff --git a/1.2/library/Metier/Infogreffe/InfogreffeAc.php b/1.2/library/Metier/Infogreffe/InfogreffeAc.php index f79aa0e1..5a50bc8f 100644 --- a/1.2/library/Metier/Infogreffe/InfogreffeAc.php +++ b/1.2/library/Metier/Infogreffe/InfogreffeAc.php @@ -19,8 +19,6 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe */ public function __construct($siren, $db = null) { - //@todo : Inject db in batch - parent::__construct(); //Set type @@ -31,7 +29,7 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe //Get defaut database adapter if ($db === null) { - $this->db = Zend_Db_Table_Abstract::getDefaultAdapter(); + $this->db = Zend_Db_Table_Abstract::getDefaultAdapter(); } else { $this->db = $db; } @@ -50,8 +48,13 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe $actesXML = null; if ( $onlyDb === false ) { $this->debug = true; - //Infogreffe webservice - $xml = $this->callRequest(); + //Infogreffe webservice + try { + $xml = $this->callRequest(); + } catch( Exception $e ) { + //@todo : get error message + return array(); + } $actesXML = $this->formatList($xml); } @@ -85,9 +88,8 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe $item->infos[] = $decisions; - //@todo : si présence de fichier alors mode T $mode_diffusion = explode(',', $row->mode_diffusion); - if (in_array('T',$mode_diffusion)) { + if (in_array('T',$mode_diffusion) || !empty($item->File)) { $item->ModeDiffusion = 'T'; } elseif (in_array('C',$mode_diffusion)) { $item->ModeDiffusion = 'C'; @@ -186,20 +188,54 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe return $filename; } - public function getCommandeC($id) + /** + * + * @param unknown $depotDate + * @param unknown $depotNum + * @param unknown $acteType + * @param unknown $acteDate + * @param unknown $acteNum + * @param string $reference + * @throws Exception + * @return boolean + */ + public function getCommandeC($depotDate, $depotNum, $acteType, $acteDate, $acteNum, $reference = '') { - $this->mode_diffusion = 'C'; + //Lire dans la base de données + $actesM = new Application_Model_JoGreffesActes(); + $sql = $actesM->select() + ->where('siren=?', $this->siren) + ->where('num_depot=?', $depotNum) + ->where('date_depot=?', $depotDate) + ->where('num_acte=?', $acteNum) + ->where('date_acte=?', $acteDate) + ->where('type_acte=?', $acteType); + $row = $actesM->fetchRow($sql); + if ( null === $row ) { + throw new Exception('Not exist'); + } + $this->reference_client = $reference; - //Enregistrer la commande dans la base de données + //Générer les paramètres de commande depuis la base de données + $this->greffe = $row->numGreffe; + $this->dossier_millesime = substr($row->numRC,0,2); + $this->dossier_statut = substr($row->numRC,2,1); + $this->dossier_chrono = substr($row->numRC,3); + $this->num_depot = $row->num_depot; + $this->type_acte = $row->type_acte; + $this->date_acte = $row->date_acte; + $this->num = $row->num_acte; - //Récupérer l'id de commande - $this->reference_client = 'G'.$id; - - - $xml = $this->callRequest(); - //@todo : + //Faire la requete + try { + $xml = $this->callRequest(); + } catch(Exception $e) { + //@todo : Gestion des erreurs + return false; + } + return true; } /** @@ -393,7 +429,7 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe 'date_depot' => $list['date_depot'], 'date_acte' => $list['date_acte'], 'num_acte' => $list['num_acte'], - 'type_acte' => $list['type_acte'], + 'type_acte' => $list['type_acte'], //@todo : Attention type acte différent 'type_acte_libelle' => $list['type_acte_libelle'], 'nbpages_acte' => $list['nbpages_acte'], 'decision_nature' => $list['decision']['nature'], @@ -409,8 +445,7 @@ class Metier_Infogreffe_Ac extends Metier_Infogreffe ->where('num_depot=?', $list['num_depot']) ->where('date_depot=?', $list['date_depot']) ->where('date_acte=?', $list['date_acte']) - ->where('num_acte=?', $list['num_acte']) - ->where('type_acte=?', $list['type_acte']); //Attention type lors du téléchargement + ->where('num_acte=?', $list['num_acte']); if ( null === $acteM->fetchRow($sql) ) { $result = $acteM->insert($data); } diff --git a/1.2/library/Metier/Infogreffe/InfogreffeBi.php b/1.2/library/Metier/Infogreffe/InfogreffeBi.php index 79dd0d00..c9c80e3c 100644 --- a/1.2/library/Metier/Infogreffe/InfogreffeBi.php +++ b/1.2/library/Metier/Infogreffe/InfogreffeBi.php @@ -13,6 +13,12 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe */ public $db; + /** + * consolides|sociaux + * @var string + */ + public $type_comptes; + /** * * @param string $siren @@ -36,6 +42,7 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe } /** + * * @param $onlyDb * @return array */ @@ -49,7 +56,12 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe if ( $onlyDb === false ) { $this->debug = true; //Infogreffe webservice - $xml = $this->callRequest(); + try { + $xml = $this->callRequest(); + } catch( Exception $e ) { + //@todo : get error message + return array(); + } $bilansXML = $this->formatList($xml); } @@ -70,11 +82,14 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe $item->Millesime = $row->millesime; $item->NumDepot = $row->num_depot; $item->DateCloture = $row->date_cloture; - $item->Type = $row->type_comptes; - + if ( empty($type_comptes) ) { + $item->Type = 'sociaux'; + } else { + $item->Type = $row->type_comptes; + } $mode_diffusion = explode(',', $row->mode_diffusion); - //@todo : si présence de fichier alors mode T - if (in_array('T',$mode_diffusion)) { + + if (in_array('T',$mode_diffusion) || !empty($item->File)) { $item->ModeDiffusion = 'T'; } elseif (in_array('C',$mode_diffusion)) { $item->ModeDiffusion = 'C'; @@ -180,12 +195,11 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe * @todo : Vérifier fonctionnement * @param string $dateCloture * @param string $type - * @param string $email * @param string $reference * @throws Exception - * @return unknown + * @return boolean */ - public function getCommandeC($dateCloture = null, $type = 'sociaux', $email = '', $reference = '') + public function getCommandeC($dateCloture = null, $type = 'sociaux', $reference = '') { $this->mode_diffusion = 'C'; @@ -204,36 +218,7 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe throw new Exception('Not exist'); } - /* - - Importer table commandes - - Renommer en table greffes_commandes - - Supprimer colonnes idUser, typeCommande - - Ajouter colonnes typeDocument, raisonSociale, refClient - - */ - - //Attention, si mode diffusion vide => alors faire commande courrier SD - - //Enregistrer la commande dans la base de données - // commandes => Créer la table dans BigData - - // id => id de la commande - // login => login - // email => email de l'utilisateur - - // Ajouter référence client - - // typeDocument => BI, AC ($this->type_document) - // siren => siren de la société - // raisonSociale => RS de la société getIdentiteLight() - // refDocument => - // libDocument => - // commentaire => - // dateCommande => - // dateReception => - - //Récuperer l'id de commande - depuis la base de données - $this->reference_client = 'G'.$id; + $this->reference_client = $reference; //Générer les paramètres de commande depuis la base de données $this->greffe = $row->numGreffe; @@ -248,9 +233,10 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe $xml = $this->callRequest(); } catch(Exception $e) { //@todo : Gestion des erreurs + return false; } - return $id; + return true; } /** @@ -330,9 +316,9 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe $date = $bilan['date_cloture_iso']; if( !empty($date) ) { - $datef = substr($date,0,4).substr($date,5,2).substr($date,8,2); - //Affectation liste générale avec un index permettant le tri - $bilans[$datef] = $bilan; + $key = substr($date,0,4).substr($date,5,2).substr($date,8,2).'-'.$bilan['num_depot']; + //Affectation liste générale avec un index permettant le tri + $bilans[$key] = $bilan; } } } @@ -393,14 +379,13 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe $bilanM = new Application_Model_JoGreffesBilans(); $sql = $bilanM->select() ->where('siren=?', $this->siren) - ->where('date_cloture=?', $list['date_cloture_iso']); - if ( null === $bilanM->fetchRow($sql) ) { + ->where('date_cloture=?', $list['date_cloture_iso']) + ->where('type_comptes=?', $list['type_comptes']); + $test = $bilanM->fetchRow($sql); + if ( null === $test ) { $result = $bilanM->insert($data); } else { - $result = $bilanM->update($data, array( - 'siren="'.$list['num_siren'].'"', - 'date_cloture="'.$list['date_cloture_iso'].'"', - )); + $result = $bilanM->update($data, 'id='.$test->id); } } catch(Zend_Db_Adapter_Exception $e) { throw new Exception($e->getMessage()); @@ -423,18 +408,20 @@ class Metier_Infogreffe_Bi extends Metier_Infogreffe * @param string $version * @return boolean */ - protected function dbSetFile($filename, $size, $numberOfPage, $version) + public function dbSetFile($filename, $size, $numberOfPage, $version) { $data = array( 'pdfLink' => $filename, 'pdfSize' => $size, 'pdfPage' => $numberOfPage, - 'pdfVer' => $version + 'pdfVer' => $version, + 'pdfDate' => date('Ymd'), ); $where = array( - 'siren="'.$this->siren."'", - 'date_cloture="'.$this->date_cloture."'", + 'siren='.$this->siren, + 'date_cloture="'.substr($this->date_cloture,0,4).'-'.substr($this->date_cloture,4,2).'-'.substr($this->date_cloture,6,2).'"', + 'type_comptes="'.$this->type_comptes.'"', ); try { diff --git a/1.2/library/Metier/Search/Engine.php b/1.2/library/Metier/Search/Engine.php new file mode 100644 index 00000000..bcf4b522 --- /dev/null +++ b/1.2/library/Metier/Search/Engine.php @@ -0,0 +1,98 @@ +host ) { + return false; + } + + if ( null === $this->port ) { + return false; + } + + $this->client = new SphinxClient(); + $this->client->SetServer( $this->host, $this->port ); + $this->client->SetConnectTimeout( $timeout ); + + return true; + } + + /** + * + * @param unknown $value + */ + protected function setHost($value) + { + $this->host = $value; + } + + /** + * + * @param unknown $value + */ + protected function setPort($value) + { + $this->port = $value; + } + + /** + * + * @param unknown $value + */ + protected function setOffset($value) + { + $this->offset = $value; + } + + /** + * + * @param unknown $value + */ + protected function setLimit($value) + { + $this->limit = $value; + } + + /** + * + * @param unknown $value + */ + protected function setMaxMatches($value) + { + $this->max_matches = $value; + } + + /** + * + */ + protected function constructQuery($p) + { + $this->query = $p; + } + + +} diff --git a/1.2/library/Metier/Sfr/Sfr.php b/1.2/library/Metier/Sfr/Sfr.php index ddf63d19..70e241d8 100644 --- a/1.2/library/Metier/Sfr/Sfr.php +++ b/1.2/library/Metier/Sfr/Sfr.php @@ -21,6 +21,12 @@ class Metier_Sfr */ public $notCalculateInError = false; + /** + * Force la récupération de l'identite et de toutes les valeurs + * @var boolean + */ + public $forceIdentite = false; + /** * Debug mode * @var boolean @@ -432,6 +438,8 @@ class Metier_Sfr { Zend_Date::setOptions(array('extend_month' => true)); + if ($this->debug) file_put_contents('sfr.log', "SIREN = $siren\n", FILE_APPEND); + //Set ValContratAge if ( !empty($this->ValContratDate) ) { $dateContrat = new Zend_Date($this->ValContratDate, 'yyyyMMdd'); @@ -508,9 +516,13 @@ class Metier_Sfr $this->SituationJuridique = $result->procol; } - //Aucun résultat, faire le calcul || donnée manquante - if ( $this->ValNAF === null || $this->ValFJ === null || $this->ValInseeActif === null - || $this->ValInseeAge === null) { + //Aucun résultat, faire le calcul || donnée manquante || force identite + if ( $this->ValNAF === null + || $this->ValFJ === null + || $this->ValInseeActif === null + || $this->ValInseeAge === null + || $this->forceIdentite === true + ) { //Identite - @todo : Gérer les erreurs techniques $identite = $classInsee->getIdentiteEntreprise($siren, 0, 0, false, false); @@ -677,9 +689,6 @@ class Metier_Sfr $this->rules($type); } - //Init displayPO - $this->displayPo = 0; - return true; } @@ -692,7 +701,7 @@ class Metier_Sfr */ protected function rules($type) { - $rules = $this->{'Rules'.$type}; + $rules = $this->{'Rules'.$type}; foreach ( $rules as $rule ) { if ($this->debug) file_put_contents('sfr.log', "\nREGLE - ".$rule['name']."\n", FILE_APPEND); diff --git a/1.2/library/Metier/bodacc/Cache/Evenements.php b/1.2/library/Metier/bodacc/Cache/Evenements.php index 1a74a291..d6c722bd 100644 --- a/1.2/library/Metier/bodacc/Cache/Evenements.php +++ b/1.2/library/Metier/bodacc/Cache/Evenements.php @@ -896,6 +896,20 @@ return array( 'Version' => 12, 'LienEtab' => 0, ), + '2103' => array( + 'libEven' => "Transformation du capital fixe en variable", + 'Bodacc_Code' => "BODB", + 'Rubrique' => "mmd", + 'Version' => 18, + 'LienEtab' => 0, + ), + '2104' => array( + 'libEven' => "Transformation du capital variable en capital fixe", + 'Bodacc_Code' => "BODB", + 'Rubrique' => "mmd", + 'Version' => 18, + 'LienEtab' => 0, + ), '2200' => array( 'libEven' => "Cessation d'activité", 'Bodacc_Code' => "BODB", @@ -1561,6 +1575,13 @@ return array( 'Version' => 12, 'LienEtab' => 1, ), + '2893' => array( + 'libEven' => "Location gérance relative à une partie du fonds", + 'Bodacc_Code' => "BODB", + 'Rubrique' => "mmd", + 'Version' => 18, + 'LienEtab' => 1, + ), '2900' => array( 'libEven' => "Transfert d'établissement", 'Bodacc_Code' => "BODB", @@ -1841,6 +1862,13 @@ return array( 'Version' => 12, 'LienEtab' => 1, ), + '5106' => array( + 'libEven' => "Cession de l'exploitation agricole", + 'Bodacc_Code' => "BODA", + 'Rubrique' => "ventes", + 'Version' => 18, + 'LienEtab' => 1, + ), '5200' => array( 'libEven' => "Branche ou Partie d'activité", 'Bodacc_Code' => "BODA", @@ -1989,7 +2017,7 @@ return array( 'LienEtab' => 1, ), '5600' => array( - 'libEven' => "Entreprise « Précédent exploitant »", + 'libEven' => "Entreprise « Précédent exploitant »", 'Bodacc_Code' => "BODA", 'Rubrique' => "ventes", 'Version' => 12, diff --git a/1.2/library/Metier/common/ICotation.inc b/1.2/library/Metier/common/ICotation.inc deleted file mode 100644 index 2e6c9742..00000000 --- a/1.2/library/Metier/common/ICotation.inc +++ /dev/null @@ -1,302 +0,0 @@ -reTrtAuto = $retraitementAutomatique; - $this->tabBilan = $tabBilan; - - include ('paramCotation.inc'); - } - - function calculProvisionsPourRisque () { - if ( !$this->reTrtAuto ) - return $this->tabBilan['DP'] + $this->tabBilan['DQ'] - $this->tabBilan['X04']; - else - return (1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ']); - } - - function calculEBE () { - return $this->tabBilan['FC'] + $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FOB'] - + $this->tabBilan['FM'] + $this->tabBilan['FN'] - $this->tabBilan['FC'] + $this->tabBilan['FC'] - - ( $this->tabBilan['FS'] + $this->tabBilan['FT'] + $this->tabBilan['FU'] + $this->tabBilan['FV'] ) - - ( $this->tabBilan['FW'] - $this->tabBilan['HP'] - $this->tabBilan['HQ'] - $this->tabBilan['HP2'] - $this->tabBilan['HQ2'] ) - - $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) + ( $this->tabBilan['FO'] - $this->tabBilan['FOB'] ) ; - } - - function calculChiffreAffaires () { - return $this->tabBilan['FC'] - + $this->tabBilan['FF'] - + $this->tabBilan['FI'] - + $this->tabBilan['FO'] - - $this->tabBilan['FOB'] ; - } - - function calculMargeCommerciale () { - return $this->tabBilan['FC'] - ( $this->tabBilan['FS'] + $this->tabBilan['FT'] ) ; - } - - function calculProduction () { - return $this->tabBilan['FF'] + $this->tabBilan['FI'] + $this->tabBilan['FM'] + $this->tabBilan['FN'] ; - } - - function calculValeurAjoutee () { - return $this->calculMargeCommerciale() + $this->calculProduction() - - ( $this->tabBilan['FU'] + $this->tabBilan['FV'] + $this->tabBilan['FW'] ) ; - } - - function calculEBEnonCASA () { - return $this->calculValeurAjoutee() + $this->tabBilan['FO'] - $this->tabBilan['FX'] - ( $this->tabBilan['FY'] + $this->tabBilan['FZ'] ) ; - } - - function calculFondsPropresNetsCorriges() { - return $this->tabBilan['DA'] + $this->tabBilan['DC'] + $this->tabBilan['DB'] + $this->tabBilan['DD'] + $this->tabBilan['DE'] + $this->tabBilan['DF'] + $this->tabBilan['DG'] + $this->tabBilan['DK'] - (1/3*$this->tabBilan['X01']) - + $this->tabBilan['DH'] + $this->tabBilan['DI'] + $this->tabBilan['DJ'] - - $this->tabBilan['CL'] - $this->tabBilan['AB'] + $this->tabBilan['AC'] - $this->tabBilan['AA'] - $this->tabBilan['CB'] + $this->tabBilan['CC'] - $this->tabBilan['X02'] - $this->tabBilan['CM'] - $this->tabBilan['CN'] - + $this->tabBilan['DM'] + $this->tabBilan['DN'] - - $this->tabBilan['X03'] + $this->calculProvisionsPourRisque() - $this->tabBilan['RAD'] ; - } - - function calculDettesFinancieresBancairesBrutes () { - return $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2'] - + $this->tabBilan['DT'] - $this->tabBilan['CM3'] + $this->tabBilan['DU'] - $this->tabBilan['EH'] - + (3/4*$this->tabBilan['YQ']) + (2/3*$this->tabBilan['YR']) - + (3/4*$this->tabBilan['YQ2']) + (2/3*$this->tabBilan['YR2']) - + $this->tabBilan['DV'] - $this->tabBilan['EI'] - $this->tabBilan['DVI1'] - $this->tabBilan['CM2'] - + $this->tabBilan['YS'] + $this->tabBilan['X08'] - + $this->tabBilan['EH'] + $this->tabBilan['VI1'] - ( $this->tabBilan['X20'] + $this->tabBilan['X21'] ) ; - } - - - - function noteCapitalisation () { - if ( !$this->reTrtAuto ) { - $autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + $this->tabBilan['X04'] ; - $dettesFiscalesSociales = $this->tabBilan['DY'] - $this->tabBilan['DYA']; - } else { - $autresDettesExploit = $this->tabBilan['EA'] - $this->tabBilan['EAVI1'] - $this->tabBilan['EAB'] + $this->tabBilan['EB'] + $this->tabBilan['X01'] + 2/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ'])); - $dettesFiscalesSociales = $this->tabBilan['DY'] + 1/3*((1/2*$this->tabBilan['DP'])+(1/2*$this->tabBilan['DQ'])) - $this->tabBilan['DYA'] ; - } - - $numerateur = $this->calculFondsPropresNetsCorriges(); - - $denominateur = $numerateur + $this->tabBilan['DS'] - $this->tabBilan['CM1'] + $this->tabBilan['EI'] - $this->tabBilan['CM2'] + $this->tabBilan['DU'] - $this->tabBilan['EH'] - + $this->tabBilan['DV'] - $this->tabBilan['DVI1'] - $this->tabBilan['EI'] + $this->tabBilan['DT'] - $this->tabBilan['CM3'] + 3/4*$this->tabBilan['YQ'] + 2/3*$this->tabBilan['YR'] - + 3/4*$this->tabBilan['YQ2'] + 2/3*$this->tabBilan['YR2'] - + $this->tabBilan['DW'] + $this->tabBilan['DX'] + $dettesFiscalesSociales - + $autresDettesExploit + $this->tabBilan['DZ'] + $this->tabBilan['DIA'] + $this->tabBilan['ED'] + $this->tabBilan['EAB'] + $this->tabBilan['DYA'] - + $this->tabBilan['EH'] + $this->tabBilan['YS'] + $this->tabBilan['VI1']; - // + $this->tabBilan['X08'] - // - $this->tabBilan['X20'] + $this->tabBilan['YS'] - $this->tabBilan['X08']; - - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur* 100,'DENOMINATEUR'=>$denominateur,'NOTE'=>($numerateur* 100)/$denominateur); - } - - function noteLevierEndettement () { - - $numerateur = $this->calculDettesFinancieresBancairesBrutes(); - - $denominateur = $this->calculFondsPropresNetsCorriges(); - - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur); - } - - function noteCapaciteRemboursement () { - - $numerateur = $this->calculDettesFinancieresBancairesBrutes(); - - $denominateur = $this->calculEBE(); - - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur); - } - - function noteCouvChargesFi () { - - $numerateur = $this->calculEBE(); - - $denominateur = $this->tabBilan['GR'] + ( 1/4*$this->tabBilan['HP'] + 1/3*$this->tabBilan['HQ'] ) - + ( 1/4*$this->tabBilan['HP2'] + 1/3*$this->tabBilan['HQ2'] ) - + $this->tabBilan['GS'] - + $this->tabBilan['GT'] - - $this->tabBilan['GJ'] - - $this->tabBilan['GK'] - - $this->tabBilan['GL'] - - $this->tabBilan['GN'] - - $this->tabBilan['GO'] - - $this->tabBilan['GH'] - + $this->tabBilan['GI'] ; - - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur/$denominateur); - } - - function noteTresorerie () { - - $numerateur = $this->tabBilan['CD'] - $this->tabBilan['CE'] + $this->tabBilan['CF'] - $this->tabBilan['CG'] - - $this->tabBilan['EH'] - ( $this->tabBilan['YS'] + $this->tabBilan['X08'] ) ; - - $denominateur = $this->calculChiffreAffaires(); - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur*360,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*360/$denominateur); - - } - - function noteMargeExploitation () { - - $numerateur = $this->calculEBE(); - - $denominateur = $this->calculChiffreAffaires(); - - if ($denominateur==0) - return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>0); - - return array('NUMERATEUR'=>$numerateur*100,'DENOMINATEUR'=>$denominateur,'NOTE'=>$numerateur*100/$denominateur); - } - - - - function getSecteurActivite($naf) { - - $nbSecteurs=count($this->tabActivite); - - while (strlen($naf) > 1) - { - for ($i=1; $i<$nbSecteurs; $i++) - { - for ($j=0; isset($this->tabActivite[$i][$j]); $j++) - { - if ($this->tabActivite[$i][$j]==$naf) - // echo 'NAF '.$naf.' TROUVÉ !
'; - return $i; - } - } - // echo 'NAF '.$naf.' non trouvé !
'; - $naf=substr($naf,0,strlen($naf)-1); - } - return 17; // Secteur d'activité par défaut si non trouvé - } - - function getBorne($note, $borne, $secteur) { - - // print_array($this->tabR[$borne][$secteur],0); - for ($j=0; $j<10; $j++) - { - $tabMinMax=explode(':',$this->tabR[$borne][$secteur][$j]); - if ($tabMinMax[0]!='') $min=$tabMinMax[0]; - else $min=-1E99; - if ($tabMinMax[1]!='') $max=$tabMinMax[1]; - else $max=1E99; - - if ( ( $note>$min && $note<=$max ) ) - { -// echo "TROUVE ++++ $note > ".$tabMinMax[0]." et $note <= ". $tabMinMax[1].'
'; - if ($j==0) return 3; - elseif ($j<4) return $j+4; - else return $j*2+1; - } -// echo "NOK $note < ".$tabMinMax[0]." ou $note > ". $tabMinMax[1].'
'; - } - return 3; // On retourne la plus basse note par défaut - } - - - function getNoteBorne($note, $borne, $secteur, $numerateur, $denominateur) { - - $noteBorneBrute=$this->getBorne($note, $borne, $secteur); - - switch($borne) - { - case 1: - if ($numerateur<0) return 3; - else return $noteBorneBrute; - break; - case 2: - if ($numerateur==0) return 19; - else return $noteBorneBrute; - break; - case 3: - if ($numerateur==0 && $denominateur>0) return 19; - elseif ($denominateur<0) return 3; - else return $noteBorneBrute; - break; - case 4: - if ($note<0) return 19; - else return $noteBorneBrute; - break; - default: - return $noteBorneBrute; - break; - } - } - - - function getNotationFin ($coteMoy) { - if( $coteMoy > 18.5 ) - return 'A'; - elseif( $coteMoy > 16 ) - return 'B+'; - elseif( $coteMoy > 14 ) - return 'B'; - elseif( $coteMoy > 12.5 ) - return 'C+'; - elseif( $coteMoy > 11 ) - return 'C'; - elseif( $coteMoy > 10 ) - return 'C-'; - elseif( $coteMoy > 9 ) - return 'D+'; - elseif( $coteMoy > 8 ) - return 'D'; - elseif( $coteMoy > 7 ) - return 'D-'; - elseif( $coteMoy > 6 ) - return 'E+'; - elseif( $coteMoy > 4.5 ) - return 'E'; - elseif( $coteMoy > 3 ) - return 'E-'; - else - return 'E--'; - } - - - function getInfosNotation ($notation, $csv=false) { - if ($csv) { - $str =$this->tabNotation[$notation][1].';'. - $this->tabNotation[$notation][2].';'. - $this->tabNotation[$notation][3].';'. - $this->tabNotation[$notation][4].';'; - return $str; - } else { - $str ='Notation : '. $this->tabNotation[$notation][0]."\r\n"; - $str.='Equivalence BDF : '. $this->tabNotation[$notation][1]."\r\n"; - $str.='Grades Moody\'s : '. $this->tabNotation[$notation][2]."\r\n"; - $str.='Grades S&P : '. $this->tabNotation[$notation][3]."\r\n"; - $str.='Probabilité de défaillance : '. $this->tabNotation[$notation][4]." %\r\n"; - return $str; - } -} - -} \ No newline at end of file diff --git a/1.2/library/Metier/common/controles.php b/1.2/library/Metier/common/controles.php deleted file mode 100644 index 1f2401a8..00000000 --- a/1.2/library/Metier/common/controles.php +++ /dev/null @@ -1,47 +0,0 @@ -64 && $ascii<91 ) - /* En ASCII : A=65 et Z=90 - En ISIN... A=10 et Z=35 */ - return ($ascii-55); - return false; -} - -/** Test si un code ISIN donné est valable à partir de son algo de contrôle. - ** @param string $isin Code ISIN à vérifier - ** @return bool - **/ -function isValidIsin($isin) { - - $pays=substr($isin, 0,2); - $nsin=''.substr($isin, 2,9); - $clef=substr($isin,11,1)*1; - - $calcul=''.isinPoidsLettre($pays[0]).isinPoidsLettre($pays[1]).$nsin; - //echo "Etape 1 = $calcul".EOL; - - $sommeImpair=$sommePair=0; - for ($impair=0; $impair<12; $impair=$impair+2) { - $strImpair=''.$calcul[$impair]*2; - if (isset($strImpair[1])) $reste=$strImpair[1]*1; - else $reste=0; - $sommeImpair+=$strImpair[0]*1+$reste; - } - - for ($pair=1; $pair<12; $pair=$pair+2) - $sommePair+=$calcul[$pair]*1; - - $totalcalcul=$sommeImpair+$sommePair; - //echo "Etape 3 = $sommeImpair + $sommePair = $totalcalcul".EOL; - - $dizSuperieur=ceil($totalcalcul/10)*10; - $delta=$dizSuperieur-$totalcalcul; - //echo "Etape 4 = $dizSuperieur - $totalcalcul = $delta".EOL; - - if ($delta==$clef) return true; - - return false; -} -?> \ No newline at end of file diff --git a/1.2/library/Metier/common/fonctions.php b/1.2/library/Metier/common/fonctions.php deleted file mode 100644 index f843387e..00000000 --- a/1.2/library/Metier/common/fonctions.php +++ /dev/null @@ -1,339 +0,0 @@ - Code réponse Serveur - ** "header" => Headers du serveur - ** "body" => Page HTML - **/ -function parse_response($this_response) { - - - // Split response into header and body sections - list($response_headers, $response_body) = explode("\r\n\r\n", $this_response, 2); - $response_header_lines = explode("\r\n", $response_headers); - - // First line of headers is the HTTP response code - $http_response_line = array_shift($response_header_lines); - if(preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line, $matches)) { $response_code = $matches[1]; } - - // put the rest of the headers in an array - $response_header_array = array(); - $nbRMID=0; - foreach($response_header_lines as $header_line) - { - list($header,$value) = explode(': ', $header_line, 2); - - if ($header=='Set-cookie' && substr($value,0,5)=='RMID=' && $nbRMID<5)//{ - $nbRMID++; -// echo ("Je gicle le RMID n°$nbRMID\r\n");} - else - $response_header_array[$header] .= $value."\n"; - } - return array('code' => $response_code, 'header' => $response_header_array, 'body' => $response_body); -} - -/** Récupère une page HTML en fonction des paramètres : - ** $url Url distante de la page à récupérer - ** $strCookies Chaine de caractère contenant les cookies - ** $postData Tableau des données à passer en POST uniquement - ** $referer Referer à indiquer lors de l'appel de la page - ** $debug Activer le débogage (True/False) - ** - ** ... et retourne son contenu dans un tableau : - ** "code" => Code réponse Serveur - ** "header" => Headers du serveur - ** "body" => Page HTML - **/ -function getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='') { - - - $ch = curl_init(); - - if ($host=='') - $this_header = array('Host: '. HOST_INSEE); - else - $this_header = array('Host: '. $host); - - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_HEADER, 1); - //curl_setopt($ch, CURLOPT_PROXY, '10.142.10.254:80'); - //curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'username:password'); // Pas nécessaire en authentification NT - - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); - //curl_setopt($ch, CURLOPT_MAXREDIRS, 1); - - $user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'; - curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); - curl_setopt($ch, CURLOPT_REFERER, $referer); - - // Add each cookie that has been returned in the response - // If cookies need to be added/deleted or value changed, then add code here - if ($strCookies!='') { - //die('"'.$strCookies.'"'); - //echo $strCookies."\r\n"; - $cookies = explode("\n", $strCookies); - // Create the basic header - foreach($cookies as $this_cookie) { - if (trim($this_cookie)<>'') - array_push($this_header, 'Cookie: '.$this_cookie); - } - } - - if ($postData!='') { - if (is_array($postData)) - $post_data=$postData; - - $o=""; - foreach ($post_data as $k=>$v) - { - $o.= "$k=".utf8_encode($v)."&"; - } - $post_data=substr($o,0,-1); - - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); - //if in_array('',$this_header - /*array_push($this_header, "Content-type: application/x-www-form-urlencoded"); - array_push($this_header, "Content-Length: 44");*/ - } - - curl_setopt($ch, CURLOPT_HTTPHEADER, $this_header); - //print_r($this_header); - - $page=curl_exec($ch); - $response = parse_response($page); - if ($debug){ - $url2=str_replace('http://', '', $url); - $url2=str_replace('/', '_', $url2); - $url2=str_replace('?', '(param)', $url2); - $url2=str_replace('&', '(et)', $url2); - - - $fp=fopen('/var/www/_includes/partenaires/insee/'. date('Ymd-His') .'-'. microtime_float(true) .'-'. $url2 . '.html', 'a'); - fwrite($fp, $url."\r\n"); - fwrite($fp, $page); - fclose($fp); - //echo strip_tags(html_entity_decode($response['body']), ''); - } - //print_r(curl_getinfo($ch)); - curl_close($ch); - return $response; -} - - -function rechercheTelephone($raisonSociale='', $adresse='', $localite='', $departement='', $activite='') { - - $response1=getUrl(SITE_PJ.'pj.cgi?', '', '', '', true, HOST_PJ); - //print_r($response1['header']['Set-cookie']); - $pageHtml=$response1['body']; - $SESSION_ID=getTextInHtml($pageHtml, ''); - $VID=getTextInHtml($pageHtml, ''); - $e_cookie=getTextInHtml($pageHtml, ''); - - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/pji_PJ.css', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_open.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/alerte.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'sitecrm/popup.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.swf?clickTAG=http://sbx.pagesjaunes.fr/RealMedia/ads/click_lx.ads/www.pagesjaunes.fr/GENERAL/GENERAL/PJ/1238513556/Top/OasDefault/AUTOPROMO_PJ_banniere_activite/hotel_pj.html/61633130323433353434346339306330?', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl(SITE_PJ.'files/look2002/FR/commun/script_VED.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/anim_HP_v2-04-2006.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_webcam.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_photo.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/EDITO_HOME_RIGHT/visuels_trafic.swf', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://sbx.pagesjaunes.fr/RealMedia/ads/Creatives/OasDefault/Edito_webcams/new_04-2006.jpg', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - $response=getUrl('http://e.pagesjaunes.fr/js/m.js', '', '', SITE_PJ.'pj.cgi?', false, HOST_PJ); - - $response2=getUrl($e_cookie, $response1['header']['Set-cookie'], '', SITE_PJ, true, HOST_PJ); - - $cookies=$response1['header']['Set-cookie'] . $response2['header']['Set-Cookie']; - - $input_image=$VALID_ARR=$NUM_RUE=$NEW_DEPARTEMENT=$OBJ_GEO=''; - - // Requête d'interrogation - $postData=array( - 'ACTIVITE_VALIDATED_ASCII'=>'', - 'ID_THEME_SDE'=>'', - 'LISTE_RUB_AVEC_THEME'=>'', - 'input_image'=>$input_image, - - 'FRM_ACTIVITE'=>$activite, - 'FRM_NOM'=>$raisonSociale, - 'FRM_ADRESSE'=>$adresse, - 'FRM_LOCALITE'=>$localite, - 'FRM_DEPARTEMENT'=>$departement, - - 'JF_INSCRIPTIONS_REQ.x'=>'25', - 'JF_INSCRIPTIONS_REQ.y'=>'4', - 'faire'=>'decode_input_image', - 'DEFAULT_ACTION'=>'jf_inscriptions_req', - 'SESSION_ID'=>$SESSION_ID, - 'VID'=>$VID, - 'INFO_VILLE'=>'non', - 'CODE_LOC_INFO_VILLE'=>'00000000', - 'IV_ACTIVATION'=>'oui', - 'lang'=>'FR', - 'pays'=>'FR', - 'srv'=>'PJ', - 'TYPE_RECHERCHE'=>'ZZZ'); -//print_r($postData);//die(); -sleep(1); - $response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ); - $pageHtml=$response['body']; - - if (count($tabNT=getTabListeNonTrouve($pageHtml))>0) - { - // Pas de réponses pour ces critères - // Il faut élargir la recherche ! - $tabNTk=array_keys($tabNT); - $input_image=$tabNT[0]; - $DEFAULT_ACTION='inscriptions_req'; - $NEW_DEPARTEMENT=getTextInHtml($pageHtml, ''); - $OBJ_GEO=getTextInHtml($pageHtml, ''); - } - elseif (count($tabGU=getTabListeGU($pageHtml))>0) - { - // Plusieurs Adresses possibles pour l'adresse donnée -// print_r($tabGU); - $input_image=getBonneAdresse($adresse, $tabGU); - $DEFAULT_ACTION='jf_inscriptions_req'; - $VALID_ARR=getTextInHtml($pageHtml, ''); - $NUM_RUE=getTextInHtml($pageHtml, ''); - } - - if ($input_image<>'') { - $CODE_LOC_INFO_VILLE=getTextInHtml($pageHtml, ''); - - $postData=array( - 'GEO_DEP'=>'', // New - 'faire'=>'decode_input_image', - 'DEFAULT_ACTION'=>$DEFAULT_ACTION, - 'input_image'=>$input_image,// diff - 'SESSION_ID'=>$SESSION_ID, - 'VID'=>$VID, - 'INFO_VILLE'=>'oui', // non dans la recherche préc. - 'CODE_LOC_INFO_VILLE'=>$CODE_LOC_INFO_VILLE, // diff - 'IV_ACTIVATION'=>'oui', - 'lang'=>'FR', - 'pays'=>'FR', - 'srv'=>'PJ', - 'TYPE_RECHERCHE'=>'CLOC', // ZZZ - 'SAV_ADRESSE'=>$adresse, // - 'SAV_LOCALITE'=>$localite, // New - 'SAV_DEPARTEMENT'=>$departement, // - 'FRM_NOM'=>$raisonSociale, - 'FRM_ADRESSE'=>$adresse, - 'FRM_LOCALITE'=>$localite, - 'FRM_DEPARTEMENT'=>$departement, - - 'FRM_TYPE_PUB'=>'TOUS', - 'RP_FORM'=>'', - 'VALID_LOC'=>$CODE_LOC_INFO_VILLE, - 'VALID_ARR'=>$VALID_ARR, - 'NUM_RUE'=>$NUM_RUE, - 'test_flash'=>'', - 'ESPLUS'=>'', - 'NEW_DEPARTEMENT'=>$NEW_DEPARTEMENT, - 'OBJ_GEO'=>$OBJ_GEO, - ); -print_r($postData); -sleep(1); - $response=getUrl(SITE_PJ, $cookies, $postData, SITE_PJ, true, HOST_PJ); - $pageHtml=$response['body']; - } - - $nbReponses=trim(getTextInHtml($pageHtml, '', '', 'réponse(s)')); - $tabRep=getTabResponses($pageHtml); - - if (count($tabRep)==$nbReponses) - return $tabRep; - else - return false; -} - -function getTabResponses($pageHtml) { - - $tabRepTmp=explode ('class=fdinscr', $pageHtml); - $tabRep=array(); - foreach($tabRepTmp as $key => $value) - { - if ($key>0) { - $raisonSociale=getTextInHtml($value, 'class=fdrsinscr', '', ''); - $ligneAdresse=html_entity_decode(getTextInHtml($value, '', '', '|')); - $tabligneAdresse=explode('
', $ligneAdresse); - $ligneAdresse1=strip_tags($tabligneAdresse[0]); - $ligneAdresse2=strip_tags($tabligneAdresse[1]); - $dispoPlan =(bool)(strpos($value, 'Plan')); - $dispoIti =(bool)(strpos($value, 'Itinéraire')); - $dispoPhoto =(bool)(strpos($value, 'Photo')); - $dispoWeb =(bool)(strpos($value, 'Site   ')); - $lienWeb=getTextInHtml($value, '$raisonSociale, - 'AdresseLigne1' =>$ligneAdresse1, - 'AdresseLigne2' =>$ligneAdresse2, - 'Dispo_Plan' =>$dispoPlan, - 'Dispo_Iti' =>$dispoIti, - 'Dispo_Photo' =>$dispoPhoto, - 'Dispo_Web' =>$dispoWeb, - 'LienWeb' =>$lienWeb)); - } - } - return $tabRep; -} - -function getBonneAdresse($adresse, $tabGU) { - -// tableau de mots à vérifier -$words = array_keys($tabGU); - -// aucune distance de trouvée pour le moment -$shortest = -1; - -// boucle sur les des mots pour trouver le plus près -foreach ($words as $word) { - - // calcule la distance avec le mot mis en entrée, - // et le mot courant - $lev = levenshtein($adresse, $word); - - // cherche une correspondance exacte - if ($lev == 0) { - - // le mot le plus près est celui-ci (correspondance exacte) - $closest = $word; - $shortest = 0; - - // on sort de la boucle ; nous avons trouvé une correspondance exacte - break; - } - - // Si la distance est plus petite que la prochaine distance trouvée - // OU, si le prochain mot le plus près n'a pas encore été trouvé - if ($lev <= $shortest || $shortest < 0) { - // définission du mot le plus près ainsi que la distance - $closest = $word; - $shortest = $lev; - } -} -/* -echo "Mot entré : $adresse\n"; -if ($shortest == 0) { - echo "Correspondance exacte trouvée : $closest\n"; -} else { - echo "Vous voulez dire : $closest ?\n"; -}*/ -return $tabGU[$closest]; -} -?> \ No newline at end of file diff --git a/1.2/library/Metier/common/insee.class.php b/1.2/library/Metier/common/insee.class.php deleted file mode 100644 index e05690db..00000000 --- a/1.2/library/Metier/common/insee.class.php +++ /dev/null @@ -1,548 +0,0 @@ -Fiche Etablissement'); - if ($pos>0) - $tabRet['typeEtablissement']='secondaire'; - - $pos=strpos($pageHtml, '', 'class="basictext">', ''); - $tabRet['adresseSiege']=getTextInHtml($pageHtml, '', 'class="basictext">', ''); - print_r($tabRet); - die(); - // Capital social - - // Chiffre d'affaires - - // Date CA - - // Effectif - - // Forme Juridique - - // Nationalité - - // Activité - - // Siège social - /* - - - - - - - -
Fiche siège'); - if ($pos>0) - $tabRet['typeEtablissement']='siège'; - - // Recherche Dernière MAJ / Activité - $pos=strpos($responseSiege, '(dernière mise à jour :'); - if ($pos>0) { - $tabRet['dateMAJ']=substr($responseSiege, $pos+51, 10); - $tabRet['dateAbsActivite']=''; - $tabRet['active']='O'; - } else { - $tabRet['active']='N'; - $tabRet['dateMAJ']=''; - $pos=strpos($responseSiege, 'Absence d\'activité notée le : '); - if ($pos>0) $tabRet['dateAbsActivite']=substr($responseSiege, $pos+78, 10); - else { - $pos=strpos($responseSiege, 'Absence d\'activité'); - if ($pos>0) $tabRet['dateAbsActivite']=''; - } - } - - $pos=strpos($responseSiege, ' size="-1"> n° SIRET :'); - $tabRet['siret']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+97, 32))); - - $pos=strpos($responseSiege, 'size="-1"> Date de création :'); - if ($pos>0) { - $posFin=strpos($responseSiege, '', $pos+109); - $tabRet['dateCreation']=str_replace(' ', '', html_entity_decode(substr($responseSiege, $pos+109, $posFin-($pos+109)))); - } - else $tabRet['dateCreation']=''; - - $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); - $len=127; - if ($pos==0){ - $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); - $len=122; - if ($pos==0){ - $pos=strpos($responseSiege, ' size="-1"> Raison sociale et Enseigne :'); - $len=126; - $libelleErreur='Informations INSEE non diffusables'; - } - } - if ($libelleErreur=='') { - //LARGE*DOMINIQUE MICHEL/
GERANT SARL BIMAGIQUE  
- $posFin=strpos($responseSiege, '', $pos+$len); - $raisonSocialeStr=trim(substr($responseSiege, $pos+$len, $posFin-($pos+$len))); - $raisonSocialeTabLigne=explode('
', $raisonSocialeStr); - $tabRet['raisonSociale']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0]))); - $tabRet['Enseigne']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1]))); - - $pos=strpos($responseSiege, ' size="-1"> Activité principale :
'); - $tabRet['NafCode']=substr($responseSiege, $pos+120, 4); - $tabRet['NafLib']=trim(substr($responseSiege, $pos+137, 70)); - - $pos=strpos($responseSiege, ' size="-1"> Adresse :'); - $posFin=strpos($responseSiege, '', $pos+103); - $AdresseStr=substr($responseSiege, $pos+103, $posFin-($pos+103)); - $AdresseTabLigne=explode('
', $AdresseStr);//' - $tabRet['AdresseLigne1']=str_replace(' ', '/', $AdresseTabLigne[0]); - $tabRet['AdresseLigne2']=str_replace(' ', '/', $AdresseTabLigne[1]); - $tabRet['AdresseLigne3']=str_replace(' ', '/', $AdresseTabLigne[2]); - /* - $AdresseNum=$AdresseTabLigne1[0]; - $AdresseVoi=$AdresseTabLigne1[1]; - $AdresseRue=$AdresseTabLigne1[2]; - $AdresseCP=$AdresseTabLigne2[0]; - $AdresseVille=$AdresseTabLigne2[1]; - */ - $pos=strpos($responseSiege, 'L\'entreprise est connue au répertoire comme '); - if ($pos>0) { - $posFin=strpos($responseSiege, '', $pos+106); - $tabRet['etatJuridique']=html_entity_decode(substr($responseSiege, $pos+106, $posFin-($pos+106))); - $tabRet['dateEtatJuridique']=''; - } else { - $pos=strpos($responseSiege, 'L\'entreprise est cessée le : '); - $tabRet['dateEtatJuridique']=substr($responseSiege, $pos+86, 10); - $tabRet['etatJuridique']='cessée'; - } - //echo 'GetDataEtab="'.$libelleErreur."\"\r\n"; - - return $tabRet; - } -} - - -function getDataEntreprise($pageHtml) -{ - global $libelleErreur; - - $responseEntreprise=$pageHtml; - $tabRet=array(); - - if ($libelleErreur=='') { - - $pos=strpos($responseEntreprise, 'size="-1"> Date de création :
'); - if ($pos>0) - $tabRet['dateCreationEntrep']=substr($responseEntreprise, $pos+109, 10); - else - $tabRet['dateCreationEntrep']=''; - - // Raison sociale et Sigle - $pos=strpos($responseEntreprise, ' size="-1"> Raison sociale et Sigle :'); - $posFin=strpos($responseEntreprise, '', $pos+123); - $raisonSocialeStr=trim(substr($responseEntreprise, $pos+123, $posFin-($pos+123))); - $raisonSocialeTabLigne=explode('
', $raisonSocialeStr); - $tabRet['raisonSocialeEntrep']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[0]))); - $tabRet['sigle']=trim(str_replace(' ', '', html_entity_decode($raisonSocialeTabLigne[1]))); - - // Activité prinicpale Entrep - $pos=strpos($responseEntreprise, ' size="-1"> Activité principale :
'); - $tabRet['NafCodeEntrep']=substr($responseEntreprise, $pos+120, 4); - $tabRet['NafLibEntrep']=trim(substr($responseEntreprise, $pos+137, 70)); - - // Forme Juridique - $pos=strpos($responseEntreprise, ' size="-1"> Forme juridique :'); - $tabRet['FJCodeEntrep']=substr($responseEntreprise, $pos+116, 4); - $tabRet['FJLibEntrep']=trim(substr($responseEntreprise, $pos+133, 70)); - - // Nb Etab Actifs - $pos=strpos($responseEntreprise, ' size="-1"> Nb établissements actifs :'); - $posFin=strpos($responseEntreprise, '', $pos+118); - $tabRet['nbEtabActifs']=trim(str_replace(' ', '', html_entity_decode(substr($responseEntreprise, $pos+118, $posFin-($pos+118))))); - } - return $tabRet; -} - -/* -* parseHtml.php -* Author: Carlos Costa Jordao -* Email: carlosjordao@yahoo.com -* -* My notation of variables: -* i_ = integer, ex: i_count -* a_ = array, a_html -* b_ = boolean, -* s_ = string -* -* What it does: -* - parses a html string and get the tags -* - exceptions: html tags like

, etc -* - At the end, the array will look like this: -* ["IMG"][0]["SRC"] = "xxx" -* ["IMG"][1]["SRC"] = "xxx" -* ["IMG"][1]["ALT"] = "xxx" -* ["A"][0]["HREF"] = "xxx" -* -*/ -function parseHtml( $s_str ) -{ - $i_indicatorL = 0; - $i_indicatorR = 0; - $s_tagOption = ''; - $i_arrayCounter = 0; - $a_html = array(); - // Search for a tag in string - while( is_int(($i_indicatorL=strpos($s_str,'<',$i_indicatorR))) ) { - // Get everything into tag... - $i_indicatorL++; - $i_indicatorR = strpos($s_str,'>', $i_indicatorL); - $s_temp = substr($s_str, $i_indicatorL, ($i_indicatorR-$i_indicatorL) ); - $a_tag = explode( ' ', $s_temp ); - // Here we get the tag's name - list( ,$s_tagName,, ) = each($a_tag); - $s_tagName = strtoupper($s_tagName); - // Well, I am not interesting in
, or anything else like that... - // So, this is false for tags without options. - $b_boolOptions = is_array(($s_tagOption=each($a_tag))) && $s_tagOption[1]; - if( $b_boolOptions ) { - // Without this, we will mess up the array - $i_arrayCounter = (int)count($a_html[$s_tagName]); - // get the tag options, like src="htt://". Here, s_tagTokOption is 'src' and s_tagTokValue is '"http://"' - - do { - $s_tagTokOption = strtoupper(strtok($s_tagOption[1], "=")); - $s_tagTokValue = trim(strtok("=")); - $a_html[$s_tagName][$i_arrayCounter][$s_tagTokOption] = - $s_tagTokValue; - $b_boolOptions = is_array(($s_tagOption=each($a_tag))) && - $s_tagOption[1]; - } while( $b_boolOptions ); - } - } - return $a_html; -} - -function getDataEntrepriseRNCS($pageHtml) { - - global $libelleErreur; - - $tabRet=array(); - - // Liste et liens vers les Bilans - $tabRet['tabListeBilans']=getTabListeBilans($pageHtml); - $tabRet['raisonSociale']=getTextInHtml($pageHtml, '

', '
', '
'); - $tabRet['RCS']=getTextInHtml($pageHtml, 'RCS ', 'RCS ', '', true); - $tabRet['activite']=getTextInHtml($pageHtml, '
ActivitéSiège - social
Siège - social75 Avenue la Grande Armee
- 75116 PARIS 16
-

-
-
- - - - - - -
Renseignements - juridiques 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Forme - juridiqueSA à conseil d'administration
Capital social171.285.000,00 - EURO
NationalitéFrance
-

-
-
-
- - - - - - -
Chiffres - clésau 31-12-2004
- - - - - - - - - - - - - - - -
Chiffre - d'affaires18.049.000.000 - EU
EffectifDe 5150 à 5720
-

-
-
-
-
- */ - return $tabRet; -} - -function getDataEcoCoface($pageHtml) { - - global $libelleErreur; - - $tabRet=array(); - - // SIREN - $pos=strpos($pageHtml, 'La forme juridique ou la date de création trop récente de l\'entreprise ne nous permettant pas d\'obtenir suffisamment d\'informations, nous vous offrons ce produit.'); - if ($pos>0) { - $tabRet['infoEco']='OUI'; - $tabRet['societeInactive']=@getTextInHtml($pageHtml, '', ''); - $strCapital=@getTextInHtml($pageHtml, ''); - $tabTmp=explode('', $strCapital); - $tabRet['capital_source']=str_replace(')', '', $tabTmp[0]); - $tabTmp=explode(' ', $tabTmp[1]); - $tabRet['capital_montant']=str_replace(chr(160), '', trim(strip_tags($tabTmp[0]))); - $tabRet['capital_devise']=trim(strip_tags($tabTmp[1])); - $tabRet['dateCreation']=@getTextInHtml($pageHtml, '', ''); - $tabRet['formeJuridique']=@getTextInHtml($pageHtml, '', ''); - $tabRet['cotationBourse']=@getTextInHtml($pageHtml, '', ''); - $tabRet['effectifSociete']=@getTextInHtml($pageHtml, '', ''); - $tabRet['activite']=@getTextInHtml($pageHtml, '', ''); - - $tabRet['sigle']=@getTextInHtml($pageHtml, '', ''); - $tabRet['enseigne']=@getTextInHtml($pageHtml, '', ''); - - // Dirigeants - $strDir=@getTextInHtml($pageHtml, '', '', '
Société inactive ', ' Capital   (', '(', '
Date de création ', ' Forme juridique ', ' Cotation en bourse ', ' Effectif société ', ' Activité ', ' Sigle ', ' Enseigne ', 'IDENTITE 
'); - $tabDir=explode('', $strDir); - $nbDir=1; - foreach ($tabDir as $key => $dir) - { - $tabTmp=explode(' ', $dir); - $typeDir=trim(strip_tags($tabTmp[0])); - $nomDir=trim(strip_tags($tabTmp[1])); - if ($typeDir<>'' && $typeDir<>'Date de création' && $typeDir<>'Forme juridique' && $typeDir<>'Cotation en bourse' - && $typeDir<>'Effectif société' && $typeDir<>'Société inactive' && $typeDir<>'Activité' - && $typeDir<>'Sigle' && $typeDir<>'Enseigne' - && substr($typeDir, 0, 8) <>'Capital ' ) - { - //$tabDir['Produits'].=$produit.'/'; - //$produit=str_replace(' ','_',$produit); - $tabRet['Dirigeant'.$nbDir.'Type']=trim($typeDir); - $tabTmp=explode(' ', $nomDir); - $tabRet['Dirigeant'.$nbDir.'Genre']=trim($tabTmp[0]); - $tabRet['Dirigeant'.$nbDir.'Prenom']=trim($tabTmp[1]); - $tabRet['Dirigeant'.$nbDir.'Nom']=trim($tabTmp[2]); - $nbDir++; - } - } - $tabRet['NbDirigeants']=$nbDir-1; - - // Liens Financiers - $strTmp=@getTextInHtml($pageHtml, 'LIENS FINANCIERS', ' ', ''); - if (strpos($strTmp, 'Néant')>0) - $tabRet['LiensFinanciers']='Néant'; - else - $tabRet['LiensFinanciers']='Présence liens'; - - // ELEMENTS FINANCIERS - $strTmp=@getTextInHtml($pageHtml, 'ELEMENTS FINANCIERS', ' ', ''); - if (strpos($strTmp, 'Néant')>0) - $tabRet['ElementsFinanciers']='Néant'; - else - $tabRet['ElementsFinanciers']='Présence El.Fi.'; - } - else - $tabRet['infoEco']='NON'; - - //echo $pageHtml; - //print_r($tabRet); - //die(); - - return $tabRet; -} - - -function getDataEntrepriseCoface($pageHtml) { - - global $libelleErreur; - - $tabRet=array(); - - // SIREN - $tabRet['siren']=@getTextInHtml($pageHtml, 'portail/entreprise_identite/identite.asp?nsiren=', '?nsiren=', '&IMPRESSION=OUI'); - //$tabRet['siren']=@getTextInHtml($pageHtml, '
 Qui sommes nous - Qui sommes nous - Raison sociale
', '', ''); - $tabRS_Adr=explode('
', $strRS_Adr); - $tabRet['raisonSociale']=trim($tabRS_Adr[0]); - $tabRS_Adr1=explode(' ', $tabRS_Adr[1]); - $tabRet['AdresseLigne1']=trim($tabRS_Adr1[0]); - $tabRet['AdresseLigne2']=trim($tabRS_Adr1[1]); - $tabRS_Adr1=explode(' ', $tabRS_Adr[2]); - $tabRet['codePostal']=trim($tabRS_Adr1[0]); - $tabRet['ville']=trim($tabRS_Adr1[1]); - $tabRet['UrlGeoLoc']=@getTextInHtml($pageHtml, '
Téléphone
', '', ''); - $tabTelFax=explode('
', $strTelFax); - $tabRet['tel']=trim($tabTelFax[0]); - $tabRet['fax']=trim($tabTelFax[1]); - - // Adresse Internet / Email - $strInet=@getTextInHtml($pageHtml, 'Adresse internet
', '
', '>', '') ); - $tabRet['mail']=trim( @getTextInHtml($tabInet[1], ' href="mailto:', ':', '">') ); - - // Bourse - $strBourse=@getTextInHtml($pageHtml, ' '."\r\n".' Code Sicovam
', '', ''); - $tabBourse=explode('
', $strBourse); - $tabRet['bourse_isin']=trim($tabBourse[0]); - $tabRet['bourse_marche']=trim($tabBourse[1]); - $tabRet['bourse_ville']=trim($tabBourse[2]); - - // Activité - $tabRet['activite']=trim(str_replace(' ', ' ', @getTextInHtml($pageHtml, 'Libellé code activité ', '', ''))); - - // Produits disponibles - $strDispos=@getTextInHtml($pageHtml, '
Produits disponibles


', '', '
'); - $tabDispos=explode(' $produit) - { - $produit=trim(str_replace('>', '', str_replace('nowrap>', '', strip_tags($produit)))); - if ($produit<>'' && $produit<>' ') { - $tabRet['Produits'].=$produit.'/'; - $produit=str_replace(' ','_',$produit); - $tabRet['Produit_'.$produit]='Oui'; - } - } -// print_r($tabRet); -// die(); - - return $tabRet; -} - - -function getTabListeBilans($pageHtml) { - $tabUrl=array(); - $deb=$fin=0; - while( is_int(($deb=strpos($pageHtml,'', $s_temp); - $tabUrl[$a_temp[1]]=$a_temp[0]; - } - return $tabUrl; -} - -function getTabListeGU($pageHtml) { - $tabGU=array(); - $deb=$fin=0; - /* Lancer la recherche dans toute la localité -Lancer la recherche sans l'adresse -*/ - while( is_int(($deb=strpos($pageHtml,'', $s_temp); - $tabGU[$a_temp[1]]=$a_temp[0]; - } - return $tabGU; -} - -function getTabListeNonTrouve($pageHtml) { - $tabGU=array(); - $deb=$fin=0; - /* onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);">Lancer la recherche dans toute la localité - onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);">Lancer la recherche sans l'adresse -*/ - while( is_int(($deb=strpos($pageHtml,'onMouseOver="javascript:mOvr(this);" onMouseOut="javascript:mOut(this);">', $s_temp); - $tabGU[$a_temp[1]]=$a_temp[0]; - } - return $tabGU; -} -/** Recherche un texte dans une page HTML - ** - **/ -function getTextInHtml($pageHtml, $strToFind, $strDeb, $strEnd, $include_strDeb=false, $include_strEnd=false, $ltrim=true, $rtrim=true, &$fin, $nbOcc=1) { - $tabRet=array(); - $deb=$nbOccTrouve=0; - while( is_int(($deb=strpos($pageHtml,$strToFind,$fin))) ) { - $deb++; - $deb2 = strpos($pageHtml,$strDeb, $deb); - $fin = strpos($pageHtml,$strEnd, $deb2); - if (!$include_strDeb) - $deb2+=strlen($strDeb); - $s_temp = substr($pageHtml, $deb2, ($fin-$deb2)); - - if ($ltrim) $s_temp=ltrim($s_temp); - if ($rtrim) $s_temp=rtrim($s_temp); - - if ($nbOcc==1) return $s_temp; - //echo $s_temp."\r\n"; - //$a_temp = explode('" class="basic">', $s_temp); - $tabUrl[$nbOccTrouve]=$s_temp; - $nbOccTrouve++; - - if ($nbOcc==$nbOccTrouve) { - // echo "j'ai trouvé le nb demandé, je sort\r\n"; - break; - }; - } - - return $tabUrl; - /* -
  • Le type de voie a été modifié
    -
  • L'orthographe du mot directeur a été modifiée
    -
  • Le code postal a été forcé à partir du département et de la localité
    -*/ -} - ?> \ No newline at end of file diff --git a/1.2/library/Metier/common/normad.class.php b/1.2/library/Metier/common/normad.class.php deleted file mode 100644 index 7419b526..00000000 --- a/1.2/library/Metier/common/normad.class.php +++ /dev/null @@ -1,89 +0,0 @@ -$adrL2, //htmlentities($adrL2), - 'ad2'=>$adrL3, //htmlentities($adrL3), - 'ad3'=>$adrL4, //htmlentities($adrL4), - 'ad4'=>$adrL5, //htmlentities($adrL5), - 'cod'=>$codPos, - 'loc'=>htmlentities($ville), - 'hiddenField'=>'GEN',); - $tabHtml=getUrl(SITE_NORMAD.'traiter_adresse.php', '', $postData, SITE_NORMAD.'validez.php', true, HOST_NORMAD); - $page=$tabHtml['body']; - $posInHtml=0; - $tabRet=array(); - - $retour=trim(str_replace(chr(173), '', getTextInHtml($page, '', '', '', false, true, true, true, $posInHtml))); - $retour=explode('[*', $retour); - $tabRet['retour_code']=str_replace(']','',$retour[1]); - $tabRet['retour_libelle']=trim($retour[0]); - $tabRet['retour_messages']=getTextInHtml($page, '
  • ', 'i>', '
    ', false, false, true, true, $posInHtml, 0); - - // Récupération des Lignes d'adresse - $tabRet['ligne1']=$adrL1; - $tabRet['ligne2']=getTextInHtml($page, 'Adresse en sortie :', '', '', false, false, true, true, $posInHtml); - $tabRet['ligne3']=getTextInHtml($page, ' Volet 2 : ', '', '', false, false, true, true, $posInHtml); - $tabRet['ligne4']=getTextInHtml($page, ' Volet ', '', '', false, false, true, true, $posInHtml); - $tabRet['ligne5']=getTextInHtml($page, ' Volet 4 : ', '', '', false, false, true, true, $posInHtml); - $tabRet['CP']=getTextInHtml($page, ' CP : ', '', '', false, false, true, true, $posInHtml); - $tabRet['ville']=getTextInHtml($page, ' Localité : ', '', '', false, false, true, true, $posInHtml); - $tabRet['ligne6']=$tabRet['CP'] .' '. $tabRet['ville']; - - // Découpage de la rue - $tabRet['voie_num']=getTextInHtml($page, 'Numéro ', '', '
    ', false, false, true, true, $posInHtml); - $tabRet['voie_btq']=getTextInHtml($page, 'Bis/Ter/Quater/...', '', '
    ', false, false, true, true, $posInHtml); - $tabRet['voie_type']=getTextInHtml($page, 'Type', '', '
    ', false, false, true, true, $posInHtml); - $tabRet['voie_denom']=getTextInHtml($page, 'Dénomination', '', '
    ', false, false, true, true, $posInHtml); - $tabRet['voie_motDir']=getTextInHtml($page, 'directeur :
    ', '', '
    ', false, false, true, true, $posInHtml); - $tabRet['voie_matric']=getTextInHtml($page, 'Matricule voie :', '
    ', '
    ', false, true, true, true, $posInHtml); - $tabRet['code_insee_commune']=getTextInHtml($page, 'Code INSEE commune :', '
    ', '
    ', false, true, true, true, $posInHtml); - - print_r($tabRet); - //echo "$voie_num\r\n$voie_btq\r\n$voie_type\r\n$voie_denom\r\n$voie_motDir\r\n$voie_matric\r\n$code_insee_commune\r\n"; - } - -/* - Détails :
    - - 00441644
    - - 28074
    -
    -
    - - - -
    - - - -

     

    -

    Référentiels - d'avril 2006

    -*/ - - } ?> \ No newline at end of file diff --git a/1.2/library/Metier/common/paramCotation.inc b/1.2/library/Metier/common/paramCotation.inc deleted file mode 100644 index 6fcc5416..00000000 --- a/1.2/library/Metier/common/paramCotation.inc +++ /dev/null @@ -1,170 +0,0 @@ -tabNotation['A+']=array('Exceptionnel', 'A3++', 'Aaa' ,'AAA' ,'0.001'); - $this->tabNotation['A'] =array('Excellent', 'A3+', 'Aa1 Aa2 Aa3' ,'AA+ AA AA-' ,'0.01'); - $this->tabNotation['B+']=array('Très bon', '3++', 'A1' ,'A+' ,'0.02'); - $this->tabNotation['B'] =array('Bon', '3+', 'A2 A3' ,'A A-' ,'0.04'); - $this->tabNotation['C+']=array('Assez bon', '3', 'Baa1' ,'BBB+' ,'0.15'); - $this->tabNotation['C'] =array('Acceptable', '3', 'Baa2' ,'BBB' ,'0.30'); - $this->tabNotation['C-']=array('Moyen', '3', 'Baa3' ,'BBB-' ,'0.60'); - $this->tabNotation['D+']=array('Passable', '4+', 'Ba1' ,'BB+' ,'0.90'); - $this->tabNotation['D'] =array('Médiocre', '4', 'Ba2' ,'BB' ,'1.25'); - $this->tabNotation['D-']=array('Très médiocre', '4', 'Ba3' ,'BB-' ,'1.60'); - $this->tabNotation['E+']=array('Mauvais (sous surveillance)', '5', 'B1 B2 B3', 'B+ B B-', '5.00'); - $this->tabNotation['E'] =array('Très mauvais (sensible, sans incident)', '6', 'Caa', 'CCC', '14.00'); - $this->tabNotation['E-']=array('Très mauvais (sensible avec incidents)', '8', 'Ca C', 'CC C', '17.00'); - $this->tabNotation['F'] =array('En défaut, hors procédures judiciaires (douteux)', '8 9', 'D', 'D', 'Défaut'); - $this->tabNotation['Z'] =array('En défaut, avec procédures judiciaires ou contentieuses (douteux)', 'P', '', '', 'Défaut'); - - $this->tabLibActivite[0]=''; - $this->tabLibActivite[15]='Industries Alimentaires : Collecte Appro'; - $this->tabLibActivite[3]='Industries Alimentaires : Collecte et 1ère transformation'; - $this->tabLibActivite[5]='Industries Alimentaires : Eaux de vie et Champagne'; - $this->tabLibActivite[2]='Industries Alimentaires : Autres activités'; - $this->tabLibActivite[6]='Industries extractives / Production Distribution : Énergie Eau'; - $this->tabLibActivite[7]='Construction - BTP'; - $this->tabLibActivite[1]='Industries Manufacturières'; - $this->tabLibActivite[8]='Négoce'; - $this->tabLibActivite[4]='Commerce de Gros'; - $this->tabLibActivite[9]='Commerce Distribution'; - $this->tabLibActivite[10]='Grande Distribution'; - $this->tabLibActivite[12]='Transports'; - $this->tabLibActivite[13]='Media Technologie de l\'information'; - $this->tabLibActivite[14]='Services'; - $this->tabLibActivite[11]='Hôtellerie et Loisirs / Activités immobilières'; - $this->tabLibActivite[16]='Banques. Assurances. Activités financières'; - $this->tabLibActivite[17]='Agriculture. Sylviculture. Pêche. Aquaculture'; - - $this->tabActivite[15]=array('512A'); - $this->tabActivite[3]=array('151A','151C','152','153E','155','157','159G','159J','159N','159Q'); - $this->tabActivite[5]=array('159A','159F'); - $this->tabActivite[2]=array('151E','151F','153A','153C','153F','154','156','158','159B','159D','159L','159S','159T'); - $this->tabActivite[6]=array('11','10','12','13','14','401','402','403','410'); - $this->tabActivite[7]=array('451','452','453','454','455'); - $this->tabActivite[1]=array('251','252','241','242','243','245','246','247','261','262','263','264','265','266','267','268','244','297','300','311','312','313','314','315','316','321','322','323','17','18','19','20','21','271','272','273','274','275','281','282','283','284','285','286','287','291','292','293','294','295','296','341','342','343','353','351','352','354','355','223','331','332','333','334','335','361','362','363','364','365','366','231','232','233','222','371','372'); - $this->tabActivite[8]=array(); - $this->tabActivite[4]=array('511A','511N','511P','512C','512E','512G','512J','513','511C','515A','515C','511E','511G','511J','511L','511R','511T','511U','514','515E','515F','515H','515J','515L','515N','515Q','516','517'); - $this->tabActivite[9]=array('501','502','503','504','505','521A','521B','521C','521J','522','523','524A','524C','524E','524F','524H','524J','524L','524N','524R','524T','524U','524V','524W','524X','524Y','524Z','525','526'); - $this->tabActivite[10]=array('521D','521E','521F','521H','524P'); - $this->tabActivite[12]=array('621','622','623','611','612','602','603','631','632','634','634B','634C','634A','641'); - $this->tabActivite[13]=array('221','722','721','723','724','725','726','924','642','922','921'); - $this->tabActivite[14]=array('703','712E','711','712A','713','714','712C','741A','741C','741E','741G','742','743','741J','744','745','746','747','748','900','633','801','802','803','804','851','852','853','930','911','912','913','527','950'); - $this->tabActivite[11]=array('923','925','926','927','551','552','553','554','555','702'); - $this->tabActivite[16]=array('651','660','672','652E','652A','652C','652F','671'); - $this->tabActivite[17]=array('751','990','752','990','701'); - - $this->tabR[1][0]=array(); - $this->tabR[1][1]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100'); - $this->tabR[1][2]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - $this->tabR[1][3]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - $this->tabR[1][4]=array('0:8.7','8.7:12.8','12.8:15','15:17.7','17.7:20.6','20.6:23','23:25','25:26.7','26.7:28.3','28.3:100'); - $this->tabR[1][5]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - $this->tabR[1][6]=array('0:20.5','20.5:26.7','26.7:30','30:34.1','34.1:38.4','38.4:42','42:45','45:47.6','47.6:49.9','49.9:100'); - $this->tabR[1][7]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100'); - $this->tabR[1][8]=array('0:3.7','3.7:7.8','7.8:10','10:12.7','12.7:15.6','15.6:18','18:20','20:21.7','21.7:23.3','23.3:100'); - $this->tabR[1][9]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100'); - $this->tabR[1][10]=array('0:5.7','5.7:9.8','9.8:12','12:14.7','14.7:17.6','17.6:20','20:22','22:23.7','23.7:25.3','25.3:100'); - $this->tabR[1][11]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - $this->tabR[1][12]=array('0:13.7','13.7:17.8','17.8:20','20:22.7','22.7:25.6','25.6:28','28:30','30:31.7','31.7:33.3','33.3:100'); - $this->tabR[1][13]=array('0:23.7','23.7:27.8','27.8:30','30:32.7','32.7:35.6','35.6:38','38:40','40:41.7','41.7:43.3','43.3:100'); - $this->tabR[1][14]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - $this->tabR[1][15]=array('0:15.5','15.5:21.7','21.7:25','25:29.1','29.1:33.4','33.4:37','37:40','40:42.6','42.6:44.9','44.9:100'); - $this->tabR[1][16]=array('0:6.8','6.8:8.9','8.9:10','10:11.4','11.4:12.8','12.8:14','14:15','15:15.9','15.9:16.6','16.6:100'); - $this->tabR[1][17]=array('0:18.7','18.7:22.8','22.8:25','25:27.7','27.7:30.6','30.6:33','33:35','35:36.7','36.7:38.3','38.3:100'); - - $this->tabR[2][0]=array(); - $this->tabR[2][1]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1,5','1.2:1.4','1.0:1.2','0.9:1.0','0.8:0,9','0.7:0,8','0:0.7'); - $this->tabR[2][2]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7'); - $this->tabR[2][3]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1.0:1.2','0.9:1.0','0.7:0.9','0:0.7'); - $this->tabR[2][4]=array('3.0:','2.7:3.0','2.5:2.7','2.3:2.5','2.0:2.3','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1'); - $this->tabR[2][5]=array('2.6:','2.4:2.6','2.2:2.4','2.0:2.2','1.7:2.0','1.5:1.7','1.3:1.5','1.1:1.3','1.0:1.1','0:1'); - $this->tabR[2][6]=array('1.7:','1.6:1.7','1.5:1.6','1.4:1.5','1.2:1.4','1.1:1.2','1.0:1.1','0.9:1.0','0.8:0.9','0:0.8'); - $this->tabR[2][7]=array('1.5:','1.4:1.5','1.3:1.4','1.1:1.3','1.0:1.2','0.9:1.0','0.8:0.9','0.7:0.8','0.6:0.7','0:0.6'); - $this->tabR[2][8]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8'); - $this->tabR[2][9]=array('3:','2.7:3','2.5:2.7','2.3:2.5','2:2.3','1.7:2','1.5:1.7','1.3:1.5','1.1:1.3','0:1.1'); - $this->tabR[2][10]=array('3.8:','3.3:3.8','3.0:3.3','2.6:3.0','2.2:2.6','1.8:2.2','1.5:1.8','1.2:1.5','1.0:1.2','0:1'); - $this->tabR[2][11]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1'); - $this->tabR[2][12]=array('2.3:','2.1:2.3','2:2.1','1.8:2','1.6:1.8','1.5:1.6','1.3:1.5','1.2:1.3','1:1.2','0:1'); - $this->tabR[2][13]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7'); - $this->tabR[2][14]=array('1.8:','1.6:1.8','1.5:1.6','1.4:1.5','1.2:1.4','1:1.2','0.9:1','0.8:0.9','0.7:0.8','0:0.7'); - $this->tabR[2][15]=array('2.2:','1.9:2.2','1.7:1.9','1.5:1.7','1.2:1.5','1.0:1.2','0.8:1.0','0.7:0.8','0.5:0.7','0:0.5'); - $this->tabR[2][16]=array('10.1:','8.8:10.1','8:8.8','7:8','5.8:7','4.8:5.8','4:4.8','3.3:4','2.8:3.3','0:2.8'); - $this->tabR[2][17]=array('2.2:','1.9:2.2','1.8:1.9','1.6:1.8','1.4:1.6','1.2:1.4','1:1.2','0.9:1','0.7:0.9','0:0.7'); - - $this->tabR[3][0]=array(); - $this->tabR[3][1]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2'); - $this->tabR[3][2]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][3]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][4]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][5]=array('8.6:','7.9:8.6','7.5:7.9','6.9:7.5','6.2:6.9','5.6:6.2','5:5.6','4.5:5','4:4.5','0:4'); - $this->tabR[3][6]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2'); - $this->tabR[3][7]=array('4.4:','4:4.4','3.8:4','3.5:3.8','3.1:3.5','2.8:3.1','2.5:2.8','2.2:2.5','2:2.2','0:2'); - $this->tabR[3][8]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7'); - $this->tabR[3][9]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][10]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][11]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - $this->tabR[3][12]=array('5.9:','5.4:5.9','5:5.4','4.5:5','3.9:4.5','3.4:3.9','3:3.4','2.6:3','2.3:2.6','0:2.3'); - $this->tabR[3][13]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5'); - $this->tabR[3][14]=array('4.2:','3.8:4.2','3.5:3.8','3.1:3.5','2.7:3.1','2.3:2.7','2:2.3','1.7:2','1.5:1.7','0:1.5'); - $this->tabR[3][15]=array('6.9:','6.3:6.9','6.0:6.3','5.5:6.0','5.0:5.5','4.5:5.0','4.0:4.5','3.6:4.0','3.2:3.6','0:3.2'); - $this->tabR[3][16]=array('10.9:','9.7:10.9','9:9.7','8:9','6.8:8','5.8:6.8','5:5.8','4.3:5','3.7:4.3','0:3.7'); - $this->tabR[3][17]=array('5.2:','4.7:5.2','4.5:4.7','4.1:4.5','3.7:4.1','3.3:3.7','3:3.3','2.7:3','2.4:2.7','0:2.4'); - - $this->tabR[4][0]=array(); - $this->tabR[4][1]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][2]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][3]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][4]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][5]=array('0:1.36','1.36:1.44','1.44:1.5','1.5:1.58','1.58:1.71','1.71:1.85','1.85:2','2:2.16','2.16:2.33','2.33:'); - $this->tabR[4][6]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][7]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][8]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:'); - $this->tabR[4][9]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][10]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][11]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][12]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - $this->tabR[4][13]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:'); - $this->tabR[4][14]=array('0:2.4','2.4:2.7','2.7:3','3:3.4','3.4:4.1','4.1:5','5:6','6:7.2','7.2:8.7','8.7:'); - $this->tabR[4][15]=array('0:2.9','2.9:3.4','3.4:3.7','3.7:4.3','4.3:5.2','5.2:6.2','6.2:7.5','7.5:9.1','9.1:10.9','10.9:'); - $this->tabR[4][16]=array('0:1.1','1.1:1.2','1.2:1.3','1.3:1.4','1.4:1.6','1.6:1.8','1.8:2','2:2.2','2.2:2.5','2.5:'); - $this->tabR[4][17]=array('0:2','2:2.3','2.3:2.5','2.5:2.9','2.9:3.5','3.5:4.2','4.2:5','5:6','6:7.2','7.2:'); - - $this->tabR[5][0]=array(); - $this->tabR[5][1]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:'); - $this->tabR[5][2]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:'); - $this->tabR[5][3]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:'); - $this->tabR[5][4]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:'); - $this->tabR[5][5]=array('-999:-420','-420:-384','-384:-360','-360:-324','-324:-276','-276:-228','-228:-180','-180:-132','-132:-84','-84:'); - $this->tabR[5][6]=array('-99:-40','-40:-34','-34:-30','-30:-24','-24:-16','-16:-8','-8:0','0:8.1','8.1:16.1','16.1:'); - $this->tabR[5][7]=array('-99:-30','-30:-24','-24:-20','-20:-14','-14:-6','-6:2','2:10','10:18','18:26','26:'); - $this->tabR[5][8]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:'); - $this->tabR[5][9]=array('-99:-16.7','-16.7:-12.7','-12.7:-10','-10:-6','-6:-0.7','-0.7:4.7','4.7:10','10:15.3','15.3:20.7','20.7:'); - $this->tabR[5][10]=array('-99:-5','-5:-2','-2:0','0:3','3:7','7:11','11:15','15:19','19:23','23:'); - $this->tabR[5][11]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:'); - $this->tabR[5][12]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:'); - $this->tabR[5][13]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:'); - $this->tabR[5][14]=array('-99:-6.7','-6.7:-2.7','-2.7:0','0:4','4:9.3','9.3:14.7','14.7:20','20:25.3','25.3:30.7','30.7:'); - $this->tabR[5][15]=array('-99:-38.3','-38.3:-36.3','-36.3:-35.0','-35:-33','-33.0:-30','-30:-27.7','-27.7:-25.0','-25.0:-22.3','-22.3:-19.7','-19.7:'); - $this->tabR[5][16]=array('-99:-41.7','-41.7:-34.7','-34.7:-30','-30:-23','-23:-13.7','-13.7:-4.3','-4.3:5','5:14.3','14.3:23.7','23.7:'); - $this->tabR[5][17]=array(':-58.3','-58.3:53.3','-53.3:-50','-50:-45','-45:-38.3','-38.3:-31.7','-31.7:-25','-25:-18.3','-18.3:-11.7','-11.7:'); - - $this->tabR[6][0]=array(); - $this->tabR[6][1]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:'); - $this->tabR[6][2]=array('0:6','6:6.6','6.6:7','7:7.6','7.6:8.4','8.4:9.2','9.2:10','10:10.8','10.8:11.6','11.6:'); - $this->tabR[6][3]=array('0:1.5','1.5:2.1','2.1:2.5','2.5:3.1','3.1:3.9','3.9:4.7','4.7:5.5','5.5:6.3','6.3:7.1','7.1:'); - $this->tabR[6][4]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:'); - $this->tabR[6][5]=array('0:6.7','6.7:7.5','7.5:8','8:8.8','8.8:9.9','9.9:10.9','10.9:12','12:13.1','13.1:14.1','14.1:'); - $this->tabR[6][6]=array('0:7.7','7.7:8.5','8.5:9','9:9.8','9.8:10.9','10.9:11.9','11.9:13','13:14.1','14.1:15.1','15.1:'); - $this->tabR[6][7]=array('0:3','3:3.6','3.6:4','4:4.6','4.6:5.4','5.4:6.2','6.2:7','7:7.8','7.8:8.6','8.6:'); - $this->tabR[6][8]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:'); - $this->tabR[6][9]=array('0:1.8','1.8:2.2','2.2:2.5','2.5:2.9','2.9:3.4','3.4:4','4:4.5','4.5:5','5:5.6','5.6:'); - $this->tabR[6][10]=array('0:1.3','1.3:1.7','1.7:2','2:2.4','2.4:2.9','2.9:3.5','3.5:4','4:4.5','4.5:5.1','5.1:'); - $this->tabR[6][11]=array('0:8.3','8.3:9.3','9.3:10','10:11','11:12.3','12.3:13.7','13.7:15','15:16.3','16.3:17.7','17.7:'); - $this->tabR[6][12]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:'); - $this->tabR[6][13]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:'); - $this->tabR[6][14]=array('0:3','3:4.8','4.8:6','6:7.8','7.8:10.2','10.2:12.6','12.6:15','15:17.4','17.4:19.8','19.8:'); - $this->tabR[6][15]=array('0:2','2:2.3','2.3:2.5','2.5:2.8','2.8:3.2','3.2:3.6','3.6:4.0','4.0:4.4','4.4:4.8','4.8:'); - $this->tabR[6][16]=array('0:1.7','1.7:1.9','1.9:2','2:2.2','2.2:2.5','2.5:2.7','2.7:3','3:3.3','3.3:3.5','3.5:'); - $this->tabR[6][17]=array('0:4.7','4.7:5.5','5.5:6','6:6.8','6.8:7.9','7.9:8.9','8.9:10','10:11.1','11.1:12.1','12.1:'); - - ?> \ No newline at end of file diff --git a/1.2/library/Metier/common/rncs.class.php b/1.2/library/Metier/common/rncs.class.php deleted file mode 100644 index cc0c0025..00000000 --- a/1.2/library/Metier/common/rncs.class.php +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/1.2/library/Metier/conversion/bilAltares.php b/1.2/library/Metier/conversion/bilAltares.php deleted file mode 100644 index 2ad2da20..00000000 --- a/1.2/library/Metier/conversion/bilAltares.php +++ /dev/null @@ -1,795 +0,0 @@ -'CR', - 11=>'CR', - 13=>'CR', - 14=>'CR', - 15=>'CR', - 16=>'CR', - 17=>'CR', - 18=>'CR', - 19=>'CR', - 2=>'VT', - 21=>'VT', - 22=>'VT', - 24=>'VT', - 25=>'VT', - 3=>'CE', - 31=>'ME', - 32=>'ME', - 33=>'ME', - 34=>'ME', - 35=>'Rec', - 36=>'MAF', - 37=>'LG', - 38=>'LG', - 39=>'MD', - 4=>'RD', - 41=>'DIS', - 42=>'FLG', - 51=>'RJ', - 52=>'RJ', - 53=>'RA', - 56=>'PIE', - 57=>'SAUVJ', - 58=>'SAUVP', - 59=>'RR', - 6=>'R&L', - 61=>'LB', - 62=>'LJ', - 63=>'FP', - 64=>'INT', - 65=>'LQ', - 69=>'RL', - 7=>'Suite', - 71=>'SRJ', - 72=>'SRLJ', - 73=>'SP', - 74=>'AP', - 75=>'MP', - 76=>'EP', - 77=>'PRO', - 78=>'DC', - 79=>'CIA', - 8=>'INFR', - 91=>'DC', - 92=>'CP', - ); - -$tabEven2SO=array( // PROCOL - 1010=>92, // Déclaration de cessation de paiement - 1050=>7, // Homologation de la conciliation - 1055=>7, // Résolution de la conciliation - 1100=>57, // Jugement de sauvegarde - 1101=>58, // Plan de sauvegarde - 1200=>52, // Redressement Judiciaire - 1201=>52, // Conversion sauvegarde en Redressement Judiciaire - 1202=>75, // Renouv. Periode Observation - 1203=>78, // Avis de dépot de l'état de collocation - 1204=>78, // Dépôt des créances - 1205=>78, - 1206=>78, - 1207=>53, // Règlemement amiable - 1208=>78, - 1209=>51, // Règlement Judiciaire - 1210=>77, // Production - 1211=>52, // Redressement Judiciaire par extension au(x) gérant(s) - 1212=>69, // Rectif ou Annul.LJ - 1214=>78, // Avis de dépôt de l'état des créances (Loi de 1985) - 1215=>7, // Jugement de désignation des organes de la procédure - 1216=>78, // Autre avis de dépôt - 1300=>62, // Conversion Redressement Judiciaire en Liquidation - 1301=>62, // Ouverture Liquidation Judiciaire - 1302=>66, // Ouverture Liquidation Judiciaire Simplifiée - 1303=>62, // Ouverture Liquidation Judiciaire sur résolution - 1304=>62, // Réouverture Liquidation Judiciaire - 1305=>62, // Liquidation Judiciaire - 1306=>66, // Liquidation Judiciaire simplifiée - 1307=>62, // Conversion sauvegarde en Liquidation Judiciaire - 1308=>62, // Fin du régime de Liquidation Judiciaire Simplifiée - 1309=>62, // Conversion Liquidation Judiciaire en Liquidation - 1310=>56, // Procédure d'Insolvabilité Européenne - 1311=>62, // Liquidation Judiciaire par extension au(x) gérants - 1312=>62, // Liquidation Judiciaire avec continuation d'exploitation - 1313=>62, // Liquidation Judiciaire sans remise des accessoires - 1346=>7, // Procédure d'insolvabilité (Règlement 1346/2000 du Conseil Européen) - 1400=>7, // Nomination d'un administrateur judiciaire - 1401=>7, // Nomination d'un mandataire judiciaire - 1402=>7, // Nomination d'un représentant des créanciers - 1403=>7, // Nominnation/Remplacement de commissaire à l'exécution du plan - 1404=>7, // Prolongement de la mission du commissaire à l'exécution du plan - 1405=>7, // Nomination d'un juge commissaire - 1406=>7, // Changement de SYNDIC - 1407=>75, // Modif. de Plan - 1408=>75, // Modification du plan de cession - 1409=>75, // Modif. de de continuation - 1410=>75, // Suite de jugement/règlement/liquidation - 1411=>75, // Arrêt du plan de cession - 1412=>75, // Arrêt du plan de cession partielle - 1413=>75, // Arrêt du plan de continuation - 1414=>75, // Arrêt du plan de redressement - 1415=>75, // Prolongement du plan cession - 1416=>75, // Jugement constatant la bonne exécution du plan - 1417=>62, // Jugement d'extension de liquidation judiciaire - 1418=>52, // Jugement d'extension d'une procédure de redressement judiciaire - 1419=>57, // Jugement d'extension d'une procédure de sauvegarde - 1420=>7, // Nomination d'un liquidateur judiciaire - 1421=>7, // Jugement prorogeant le plan de redressement - 1425=>7, // Plan de cession avec location gérance - 1430=>7, // Jugement autorisant la poursuite d'activité - 1431=>7, // Jugement de cessation partielle d'activité - 1435=>7, // Suspension de l'exécution provisoire - 1436=>7, // Suspension provisoire des poursuites - 1440=>7, // Jugement accordant un délai pour déposer la liste des créances - 1445=>7, // Concordat - 1450=>92, //Cessation paiement - 1455=>7, // Jugement arrêtant le plan d'apurement du passif - 1460=>7, // Homologation du plan - 1470=>7, // Fin de mission d'administrateur judiciaire - 1480=>7, // Jugement ordonnant la jonction des procédures - 1500=>79, // Clôture de la procédure - 1501=>79, // Clôture de la procédure après cession totale - 1502=>76, // Clôture de la procédure pour extinction du passif - 1503=>79, // Cloture insuf.Actif - 1504=>79, // Clôture sauvegarde pour absence de projet de plan - 1505=>74, // Appel de jugement - 1506=>59, // Rectif ou Annulation RJ - 1507=>74, // Appel de jugement - 1508=>7, // Extinction du plan de sauvegarde - 1509=>7, // Extinction du plan de redressement - 1510=>74, // Rejet du plan - 1511=>7, // Résolution du plan de cession - 1512=>7, // Résolution du plan de continuation - 1513=>7, // Résolution du plan de sauvegarde - 1515=>74, // Arrêt divers - 1517=>59, // Rectification d'une erreur matérielle - 1520=>7, // Ordonnance - 1525=>74, // Appel du ministère public - 1530=>7, // Jugement constatant l'impécuniosité de la procédure de liquidation - 1540=>7, // Ordonnance statuant sur les contestations du projet de répartition - 1541=>74, // Rétractation de prononcé de liquidation judiciaire sur tierce opposition - 1542=>74, // Rétractation de jugement d'ouverture d'une procédure de sauvegarde sur tierce opposition - 1543=>74, // Rétractation de jugement d'ouverture d'une procédure de redressement judiciaire sur tierce opposition - 1544=>74, // Rétractation de jugement d'ouverture d'une procédure de liquidation judiciaire sur tierce opposition - 1545=>74, // Rétractation de jugement d'ouverture sur tierce opposition - 1546=>74, // Autre rétractation sur tierce opposition - 1550=>7, // Suites de jugements - 1580=>7, // Jugement prononçant la continuation de l'activité par apurement du passif - 1600=>63, // Faillite personnelle - 1601=>64, // Interdiction de gérer - 1602=>7, // Jugement de réhabilitation - 1603=>61, // Liquidation de Biens - 1604=>8, // Banqueroute - 1605=>7, // Jugement autorisant la reprise des poursuites individuelles - 1610=>8, // Faillite personnelle (Loi de 1985) - 1611=>8, // Interdiction de gérer (Loi de 1985) - 1620=>7, // Jugement condamnant le dirigeant en comblement du passif - 1650=>8, // Rétablissement Personnel - 1700=>7, // Décision soumise à publicité - 1900=>8, // Interdiction temporaire d'exercice de la profession de CAC - 1901=>8, // Radiation de la liste des CAC - 1999=>7, // Autre procédure collective - // MMD - 2000=>4, // Mention d'office - 2100=>39, // Chg.Capital/Cess.apport de parts - 2101=>39, // Chg.Capital/Cess.apport de parts - 2102=>39, // Chg.Capital/Cess.apport de parts - 2200=>4, // Cessation d'activité - 2201=>4, // Cessation d'activité temporaire - 2202=>41, // Dissolution - 2203=>41, // Dissolution de la société - 2204=>41, // Cessation d'activité avec dissolution - 2205=>4, // Fermeture du fonds - 2206=>39, // Mise en sommeil de la société - 2207=>39, // Suppression d'une branche d'activité - 2208=>39, // Suppression de l'établissement principal - 2209=>39, // Vente du fonds - 2210=>39, // Déclaration de dissolution par l'associé unique. - 2211=>39, // Clôture de la liquidation - 2212=>39, // Liquidation amiable - 2300=>39, // Changement d'Adresse - 2301=>39, // Modification de l'adresse du siège - 2302=>39, // Modification de l'enseigne - 2303=>39, // Modification de la date de clôture de l'exercice - 2304=>39, // Modification de la date de début d'activité - 2305=>39, // Modification de la dénomination - 2306=>39, // Modification de la durée de la société - 2307=>39, // Modification de la forme juridique - 2308=>39, // Modification du nom - 2309=>39, // Modification du nom commercial - 2310=>39, // Modification du pseudonyme - 2311=>39, // Modification sur l'exploitation - 2312=>39, // Modification(s) diverse(s) - 2313=>39, // Modification de l'activité - 2314=>39, // Poursuite de l'activité - 2315=>39, // Modification de l'administration - 2316=>39, // Mise en activité de la société - 2317=>39, // Modification du sigle - 2318=>39, // Modifications diverses - 2319=>39, // Poursuite de l'activité malgré la perte de plus de... - 2320=>39, // Reconsitution de l'actif net - 2321=>39, // Reconsitution de la moitié de l'actif net - 2350=>39, // Déclaration des associés (loi du 1er février 2005) - 2401=>39, // Changement de régime matrimonial - 2402=>39, // Changement de régime matrimonial (divorce) - 2403=>39, // Changement de régime matrimonial (mariage) - 2404=>39, // Changement de régime matrimonial (veuvage) - 2405=>39, // Changement de régime matrimonial (contrat de maria... - 2406=>39, // Reprise du fonds par le conjoint - 2407=>39, // Mention du conjoint collaborateur - 2408=>39, // Radiation du conjoint collaborateur - 2500=>3, // Confirmation établissement principal ou secondaire - 2510=>39, // L'établissement secondaire devient principal - 2520=>39, // Extension de l'établissement principal - 2600=>39, // Décès - 2610=>39, // Décision de l'unique actionnaire - 2620=>39, // Transmission universelle du patrimoine - 2630=>39, // Donation/Partage - 2635=>39, // Cession de parts - 2639=>39, // Nantissement de parts sociales - 2640=>39, // Changement de domicile personnel - 2650=>39, // Changement de nationalité - 2660=>39, // Réalisation de l'apport partiel d'actif - 2661=>39, // Apport partiel - 2700=>39, // Fusion/Absorption (entitée absorbante) - 2701=>39, // Fusion/Absorption (Entitée absorbante. Entité abso... - 2702=>39, // Fusion/Absorption (Entitée absorbante. Entité abso... - 2703=>39, // Fusion/Absorption (Entitée absorbante. Entité abso... - 2710=>39, // Projet de fusion (entitée absorbante) - 2720=>39, // Fusion/Absorption (entitée absorbée) - 2721=>39, // Fusion/Absorption (entitée absorbée non identifiée... - 2725=>39, // Fusion/Absorption - 2726=>39, // Projet de Fusion/Absorption - 2730=>39, // Projet de fusion (entitée absorbée) - 2740=>39, // Scission - 2750=>39, // Société participation - 2800=>37, // Location gérance reçue - 2840=>38, // Location/Gérance - 2850=>38, // Location gérance donnée : Précédent propriétaire e... - 2851=>38, // Location gérance donnée : Précédent propriétaire - 2860=>38, // Location gérance donnée : Précédent exploitant - 2870=>38, // Location gérance donnée - 2875=>38, // Gérance/Mandat - 2880=>38, // Renouvellement de location gérance - 2881=>38, // Changement de location gérance - 2885=>42, // Fin de location gérance - 2890=>38, // Location gérance relative à une branche - 2891=>39, // Location gérance relative à un établissement - 2892=>39, // Location gérance relative à un fond - 2900=>32, // Transfert d'établissement - 2901=>32, // Transfert de siège - 2902=>32, // Transfert du fonds - 2903=>32, // Projet de transfert du siège - 2904=>32, // Transfert du siège à l'étranger - 2950=>32, // Création de fonds - 2980=>32, // Transfert entre tribunaux - // DEPOTS DES COMPTES - 3100=>91, - 3200=>91, - 3300=>91, - 3999=>91, - // CREATIONS - 4000=>1, // Création d'entreprise - 4050=>1, // Création d'entreprise sans activité - 4100=>1, // Création d'entreprise sans établissement - 4200=>17, // Création d'établissement - 4250=>17, // Création suite à transfert - 4300=>17, // Création suite à reprise d'activité - 4350=>1, // Création suite à fin de location-gérance - 4355=>1, // Création suite à prise en location-gérance - 4360=>1, // Reprise d'activité par suite de la résolution de v - 4400=>1, // Création suite à changement de FJ - 4410=>1, // Création suite à héritage ou donation - 4450=>1, // Création suite à reprise par le conjoint - 4500=>17, // Fonds acquis dans le cadre d'une PC - 4501=>17, // Fonds acquis par achat - 4502=>17, // Fonds acquis par apport - 4600=>1, // Immatriculation d'une société de droit européen - 4999=>1, // Création - - // ventes !!! - 5500=>2, // Entreprise réalisant la vente - 5501=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5502=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5503=>2, // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5510=>2, // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00 - 5600=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00 - 5650=>2, - 5700=>2, // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00 - 5999=>2, - - // RADIATIONS - 6000=>4, //Radiation pour cause de clôture de la liquidation (amiable/simplifié/général) - 6001=>4, //Radiation pour cause de clôture de la liquidation amiable - 6002=>4, //Radiation pour cause de clôture de la liquidation judiciaire pour IA - 6003=>4, //Radiation pour cause de clôture de la liquidation judiciaire - 6004=>4, //Radiation pour cause de clôture de la liquidation judiciaire simplifié - 6005=>4, //Radiation pour clôture du plan de cession - 6100=>4, //Radiation pour cause de décès - 6200=>4, //Radiation pour cause de mention d'office - 6201=>4, //Radiation pour cause de cessation d'activité - 6300=>4, //Radiation pour cause de non-exercice - 6400=>4, //Radiation pour cause de transfert - 6500=>4, //Radiation pour cause de jugement de clôture du plan de cession - 6600=>4, //Radiation d'un établissement - 6700=>4, //Radiation - ); -$tabEven2RO=array( 2305=>'a', - 2308=>'a', // Chg de dénomination(RS,Ens,Sigle) - 2309=>'a', // Modification du nom commercial BODB mmd 12 0000-00-00 00:00:00 - 2310=>'a', // Modification du pseudonyme - 2300=>'b', // Changement d'Adresse - 2301=>'b', - 2900=>'b', // Transfert d'établissement - 2901=>'b', // Transfert de siège - 2902=>'b', // Transfert du fonds - 2903=>'b', // Projet de transfert du siège - 2904=>'b', // Transfert du siège à l'étranger - 2950=>'b', // Création de fonds - 2980=>'b', // Transfert entre tribunaux - 2101=>'c', // Chg.Capital/Cess.apport de parts - 2315=>'d', // Changement de Dirigeants - 2313=>'e', // Mod Act/obj.soc./Cess./Mise somm. - 2307=>'f', // Changement de Forme juridique - 2318=>'g', // Opération sur Participations - 2725=>'h', // Fusion Absorption - 2318=>'i', // Mod.garantie financière/Caution - 2401=>'j', // Changement de régime matrimonial - 2319=>'k', // Non dissolution anticipée - 2318=>'l', // Non dissolution anticipée - 2318=>'m', // Dissolution anticipée (ou non) - 2303=>'n', // Mod.date cloture exercice social - 5500=>'V', // Entreprise réalisant la vente - 5501=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5502=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5503=>'V', // Entreprise réalisant la vente : Ancien propriétair... BODA ventes 12 0000-00-00 00:00:00 - 5510=>'V', // Entreprise réalisant la vente : Co-propriétaire BODA ventes 12 0000-00-00 00:00:00 - 5600=>'V', - 5650=>'V', - 5700=>'A', // Entreprise réalisant l'acquisition BODA ventes 12 0000-00-00 00:00:00 - 1411=>'F', // Arrêt du plan de cession - 1408=>'G', // Modification du plan de cession - 1409=>'N', // Modification du plan de continuation - 1414=>'M', // Arrêt du plan de redressement - - ); - - -function exporte($txt, $lon, $sep='') { - $txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>'')); - - if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt); - - return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep; -} - - -function conversionSd2So2000($nomFichierIn, $numeroAbonneBil='000960030', $nomFichierOut='', $optionFicheId='S') { - - $message=''; - $iDb=new WDB(); - $iBodacc=new MBodacc(); - $iInsee=new MInsee(); - $iRncs=new MRncs(); - - global $tabEvenSolib; - global $tabEven2SO; - global $tabEven2RO; - - $tabLignes=file($nomFichierIn); -//print_r($tabLignes); -//die(); - - $ligne001=$ligne100=$ligne104=$ligne999=0; - if ($nomFichierOut=='') $nomFichierOut=$nomFichierIn.'.bil'; - - $fp=fopen($nomFichierOut, 'w'); - $dateJ=date('Ymd'); - $ecrireLignePre=false; - - /** Codes/Variables à gérer **/ - $depPar=0; - $SOSTAE=''; - $typeFicheId='I'; // Fiche Identifiant - $optExtInsee=$optScore=false; - - /** Type de fiche Id **/ - if (strpos($optionFicheId, 'S')==true) $typeFicheId='S'; // Fiche Standard - elseif (strpos($optionFicheId, 'C')==true) $typeFicheId='C'; // Fiche Complète - if (strpos($optionFicheId, 'E')==true) $optExtInsee=true; // Option Extension INSEE - if (strpos($optionFicheId, 'N')==true) $optScore=true; // Option Score - - foreach ($tabLignes as $i=>$ligne) { - $typeLigne=substr($ligne, 0, 3)*1; - switch ($typeLigne) { - case 1: // Ligne ignorée - // Ecriture de l'entête - $ligne001++; - break; - case 100: // Structure Bodacc - case 999: // Fin - $strTxt=wordwrap($txtAnn, 39, EOL); - $tabTxt=explode(EOL, $strTxt); - foreach($tabTxt as $j=>$txt) { - $SOSEQ++; - if($j%16==0) { - // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce - $typEnr=9; - if ($j==0) $ligneTXT =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ? - else $ligneTXT.=EOL.initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ? - $ligneTXT.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ? - $ligneTXT.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ? - $ligneTXT.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ? - $ligneTXT.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren - $ligneTXT.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic - $ligneTXT.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ - $ligneTXT.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence - $ligneTXT.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence - $ligneTXT.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce - $ligneTXT.=exporte('TXT', 3); // Structure identité - $ligneTXT.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle - $ligneTXT.=exporte($ref, 30); // Réf. Client - $ligneTXT.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié - $ligneTXT.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C - $ligneTXT.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution - $ligneTXT.=initstr(0, 5, '0', ALIGN_RIGHT); // Page - $ligneTXT.=exporte($codeEve, 2); // - $ligneTXT.=initstr($depPar, 2, '0', ALIGN_RIGHT); - $ligneTXT.=initstr($numAnn, 6, '0', ALIGN_RIGHT); - $ligneTXT.=exporte($codeRol, 1); // - $ligneTXT.=exporte('T', 1); - } - $ligneTXT.=exporte($txt, 40); - } - $codeEve=$codeRol=''; - $ligneOut=$ligneID.EOL.$ligneANN.EOL.$ligneTXT; - if ($ligne100>1) $ecrireLignePre=true; - if($typeLigne==999) { - $ligne999++; - break; - } - - $nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce - $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce - $tabIdentite=@$iInsee->getIdentiteEntreprise($siren); - $nic = trim(substr($ligne, 22, 5 ))*1; // Nic - $ref = trim(substr($ligne, 71, 18 )); // Référence Client - $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année - $bodacc = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C - $datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ - $numAnn = substr($ligne, 39 , 5 ); // Numéro de l'annonce dans le Bodacc - $typeAnn= substr($ligne, 47 , 1 ); // Type d'annonce Bodacc I=Insertion (publication d'une annonce), A=Additif (ajout à une précédente annonce), (1) R=Rectificatif (correction d'une annonce), S=Suppression d'une annonce - $corNumA= substr($ligne, 48 , 5 ); // Numéro de l'annonce corrigée Si annonce différent de Insertion - $corDate= substr($ligne, 53 , 8 ); // Date du Bodacc de l'annonce corrigée Si annonce différent de Insertion. Format AAAAMMJJ - $corPage= substr($ligne, 61 , 6 ); // Première page du Bodacc de l'annonce corrigée Si annonce différent de Insertion - $corNumP= substr($ligne, 67 , 4 ); // Numéro parution du Bodacc dans l'année de l'annonce corrigée Si annonce différent de Insertion - $numRC = trim(substr($ligne,95 , 9 )); // Numéro de RC (Registre du Commerce) de l'entreprise - $rs = trim(substr($ligne,104, 150 )); // Raison sociale de l'entreprise - $nomCom = trim(substr($ligne,254, 100 )); // Nom Commerciale - $ens = trim(substr($ligne,354, 100 )); // Enseigne - $fj = trim(substr($ligne,484, 4 ))*1; // FJ - $fjLib = trim(substr($ligne,488, 90 )); // FJ libellé - $capMnt = trim(substr($ligne,578, 15 )); // Capital - $capDev = trim(substr($ligne,593, 3 )); // Capital Devise - $adrNum = trim(substr($ligne,596, 4 )); // - $adrBtq = trim(substr($ligne,600, 1 )); // FJ libellé - $adrVoi = trim(substr($ligne,601, 5 )); // FJ libellé - $adrLib = trim(substr($ligne,606, 50 )); // FJ libellé - $adrL2 = trim(substr($ligne,656, 50 )); // FJ libellé - $adrL3 = trim(substr($ligne,706, 40 )); // FJ libellé - $adrCP = trim(substr($ligne,746, 5 ))*1; // FJ libellé - $adrVil = trim(substr($ligne,751, 45 )); // FJ libellé - if ($adrCP==0) { - $adrNum = trim(substr($ligne,796, 4 )); // FJ libellé - $adrBtq = trim(substr($ligne,800, 1 )); // FJ libellé - $adrVoi = trim(substr($ligne,801, 5 )); // FJ libellé - $adrLib = trim(substr($ligne,806, 50 )); // FJ libellé - $adrL2 = trim(substr($ligne,856, 50 )); // FJ libellé - $adrL3 = trim(substr($ligne,906, 40 )); // FJ libellé - $adrCP = trim(substr($ligne,946, 5 ))*1; // FJ libellé - $adrVil = trim(substr($ligne,951, 45 )); // FJ libellé - } - $even=array(); - $even[7]= substr($ligne, 996 , 4 )*1; // Code Evènement Bodacc n°1 Cf. Table EVEN - $even[6]= substr($ligne, 1000, 4 )*1; // Code Evènement Bodacc n°2 Cf. Table EVEN - $even[5]= substr($ligne, 1004, 4 )*1; // Code Evènement Bodacc n°3 Cf. Table EVEN - $even[4]= substr($ligne, 1008, 4 )*1; // Code Evènement Bodacc n°4 Cf. Table EVEN - $even[3]= substr($ligne, 1012, 4 )*1; // Code Evènement Bodacc n°5 Cf. Table EVEN - $even[2]= substr($ligne, 1016, 4 )*1; // Code Evènement Bodacc n°6 Cf. Table EVEN - $even[1]= substr($ligne, 1020, 4 )*1; // Code Evènement Bodacc n°7 Cf. Table EVEN - $even[0]= substr($ligne, 1024, 4 )*1; // Code Evènement Bodacc n°8 Cf. Table EVEN - $txtEven=''; - foreach ($even as $codeEven) - if ($codeEven<>0) { - if (@$codeEve=='') $codeEve=$tabEven2SO[$codeEven]; - if (@$codeRol=='') $codeRol=$tabEven2RO[$codeEven]; - $txtEven.=$iBodacc->getEvenement($codeEven).', '; - $catEven=$iBodacc->getChapitreEvenement($codeEven); - } - else - $txtEven.=''; - $txtEven=substr($txtEven,0,strlen($txtEven)-2); - $dateCess= substr($ligne, 1136, 8 )*1; // Date de cessat° des paiements - $dateJuge= substr($ligne, 1144, 8 )*1; // Date de jugement - $dateEffet=substr($ligne, 1161, 8 )*1; // Date d'effet - if ($dateEffet*1==0) $dateEffet=$dateJuge; - - $vteMnt=trim(substr($ligne, 1169, 15 ))*1; // Montant de la vente - $vteDev=substr($ligne, 1184, 3 ); // Devise de la vente - - - if ($nic*1==0) $nic=$tabIdentite['Nic']; - - $SONABO=$numeroAbonneBil; - if ($tabIdentite['Actif']==1) $SOORIG=1; - elseif (!isset($tabIdentite['Actif'])) $SOORIG=3; - elseif ($tabIdentite['Actif']==0 && ($tabIdentite['EntActiveRCS']==1||$tabIdentite['EtabActifRCS']==1)) $SOORIG=7; - elseif ($tabIdentite['Actif']==0 && $tabIdentite['EntActiveRCS']==0 && $tabIdentite['EtabActifRCS']==0) $SOORIG=9; - else $SOORIG=8; - - if ($tabIdentite['Civilite']==1) $SOTSEX='M'; - elseif ($tabIdentite['Civilite']==2) $SOTSEX='F'; - else $SOTSEX=''; - $SONUME=''.preg_replace('/^0+/','', $tabIdentite['Source']).$tabIdentite['SourceId']; - $SONUS='000000000'; - $SOSEQ=1; - if ($adrCP==0) { - $adrNum = $tabIdentite['AdresseNum']; - $adrBtq = $tabIdentite['AdresseBtq']; - $adrVoi = $tabIdentite['AdresseVoie']; - $adrLib = $tabIdentite['AdresseRue']; - $adrL2 = $tabIdentite['Adresse2']; - $adrL3 = ''; - $adrCP = $tabIdentite['CP']; - $adrVil = $tabIdentite['Ville']; - } - $typEnr=1; - $DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ? - $DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ? - $DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ? - $DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ? - $DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren - $DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic - $DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ - $DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence dans le groupe - $DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Date d'envoi de l'info - $DBILS2.=exporte($typEnr, 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce - $DBILS2.=exporte('ID', 3); // Structure identité - $DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle - $DBILS2.=exporte($ref, 30); // Réf. Client - //($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) - $DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié - $DBILS2.=exporte('', 1); // D=Siren douteux - $DBILS2.=exporte('', 9); // Témoin de MAJ - $DBILS2.=exporte($rs, 60); // - $DBILS2.=exporte(substr($rs,60),30); // - $DBILS2.=exporte($tabIdentite['Sigle'], 30); // Vide ! - $DBILS2.=exporte($ens, 60); // - $DBILS2.=initstr($adrNum, 4, '0', ALIGN_RIGHT); // - $DBILS2.=exporte($adrBtq, 1); // - $DBILS2.=exporte(preg_replace('/ +/',' ',$adrVoi.' '.$adrLib), 33); // - $DBILS2.=exporte($adrVil, 32); // - $DBILS2.=initstr($adrCP, 5, '0', ALIGN_RIGHT); // - $DBILS2.=exporte(preg_replace('/ +/',' ',$adrL2.' '.$adrL3), 30); // - $DBILS2.=initstr($tabIdentite['DateCreaEn'], 8, '0', ALIGN_RIGHT); // Date créa ENT - $DBILS2.=exporte($tabIdentite['Siege'], 1); // Statut de l'établissement - $DBILS2.=initstr($tabIdentite['FJ'], 4, 0, ALIGN_RIGHT); - $DBILS2.=exporte($SOTSEX, 1); // Sexe M/F - - $DBILS2.=initstr($tabIdentite['NbEtab']*1, 4, 0, ALIGN_RIGHT); - $DBILS2.=exporte($SOSTAE, 4); // NAF4 ENT - $DBILS2.=exporte('', 4); // Famille ENT - $DBILS2.=exporte($SOSTAE, 4); // NAF4 ETAB - $DBILS2.=exporte('', 4); // Famille ETAB - $DBILS2.=exporte('', 1); // Indicateur Procol - $DBILS2.=exporte('', 2); // Code monnaie - $DBILS2.=initstr(0, 13, '0', ALIGN_RIGHT); // Montant du capital - $DBILS2.=exporte('', 7); // Effectif - $DBILS2.=exporte('', 9); // Num RC - $DBILS2.=initstr(strtr($tabIdentite['Tel'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT); - $DBILS2.=initstr(strtr($tabIdentite['Fax'],array('.'=>'','+'=>'00',' '=>'','-'=>'','/'=>'')), 10, '0', ALIGN_RIGHT); - //5630Z5630Z RUE 00000000 00000000 2901929019 - $DBILS2.=exporte($tabIdentite['Web'], 40); - $DBILS2.=exporte('', 3); // Qualité du dirigeant - $DBILS2.=exporte('', 60); // NOM, Prénom du dirigeant - $DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date Naiss Diri -// $DBILS2.=exporte('', 79); - $DBILS2.=exporte('', 35); // Lieu de Naissance - if ($optScore) { - $tabTmp=$iDb->select('scores_surveillance', - 'siren, actif, procol, indiScore, indiScore20, encours, indiScoreDate, dateBilan, indiScorePre, indiScore20Pre, encoursPre, indiScoreDatePre, sourceModif, nbModifs, dateUpdate', - "siren=$siren AND indiScoreDate>0", false, MYSQL_ASSOC); - if (@$tabTmp[0]['siren']*1==$siren) { - echo "$siren, parution Annonce le $datePar, calcul le ".@$tabTmp[0]['dateUpdate'].EOL; - $tabScore=$tabTmp[0]; - $note=$tabScore['indiScore20']; - $encours=round($tabScore['encours']/1000); - } else { - echo "$siren, parution Annonce le $datePar, pas de calcul !".EOL; - $tabScore=@calculIndiScore($siren, $nic, false, 0, false); - $note=$tabScore['Indiscore20']; - $encours=round($tabScore['encours']/1000); - } - $encoursDev='EUR'; - } else - $note=$encours=$encoursDev=''; - $DBILS2.=initstr($note, 2, '0', ALIGN_RIGHT); //37 Note sur 20 - $DBILS2.=initstr($encours, 7, '0', ALIGN_RIGHT); //44 Encours KE KF - $DBILS2.=exporte('', 1); //45 Code paiement - $DBILS2.=exporte('', 1); //46 Code situfi - $DBILS2.=exporte('', 1); //47 Code Avis - $DBILS2.=exporte($encoursDev,3); //47 Encours de la devise - $DBILS2.=exporte('', 6); // Code Sicovam - $DBILS2.=exporte('', 2); // Type de marché RM, CT, SM, HC, MO, NM, ML, AL, MR - $DBILS2.=exporte('', 12); // Code ISIN - $DBILS2.=exporte('', 9); // Filler Bil anciennement sur 83, 32 puis 9 - $DBILS2.=exporte($tabIdentite['NafEnt'], 5); - $DBILS2.=exporte($tabIdentite['NafEtab'], 5);// - $DBILS2.=exporte('', 18); //60 Filler - $DBILS2.=exporte('', 4); // Filler RUE ? - $DBILS2.=exporte('', 5); // Nic source cible de l'étab - $DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de MAJ du capital - $DBILS2.=exporte('', 3); // Monnaie d'origine du capital - $DBILS2.=exporte('', 3); // Monnaie de livraison du capital (fin de l'ancien filler) - $DBILS2.=initstr(0, 8, '0', ALIGN_RIGHT); // Date de création de l'établissement - $DBILS2.=exporte('', 1); // Origine création - $DBILS2.=exporte('', 2); // Tr Eff Ent - $DBILS2.=exporte('', 2); // Tr Eff Etab - $DBILS2.=exporte('', 2); // NAP 40 Entrep - $DBILS2.=exporte('', 2); // NAP 40 Etab - $DBILS2.=exporte('', 5); // Act Artisanale Etab - $DBILS2.=exporte('', 1); // Modalité activité entrep - $DBILS2.=exporte('', 1); // Modalité activité etab - $DBILS2.=exporte('', 2); // Code Région Entrep - $DBILS2.=exporte('', 2); // Code Région Etab - $DBILS2.=exporte($tabIdentite['Dept'], 2); // Département du siège - $DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité - $DBILS2.=exporte($tabIdentite['Dept'], 2); // Département de l'étab - $DBILS2.=exporte($tabIdentite['codeCommune'], 3); // Localité - $DBILS2.=exporte('', 1); // Dept Outre Mer - $DBILS2.=exporte('', 1); // Arrondissement - $DBILS2.=exporte('', 1); // Canton Dom ? - $DBILS2.=exporte('', 2); // Canton - $DBILS2.=exporte('', 8); // Code Ilot - $DBILS2.=exporte('', 2); // ZEMET - $DBILS2.=exporte('', 2); // Tranche Comm Etab - $DBILS2.=exporte('', 2); // Dept Unite urbaine - $DBILS2.=exporte('', 1); // Taille UU - $DBILS2.=exporte('', 2); // UU etab - $DBILS2.=exporte('', 5); // Code rivoli - $DBILS2.=exporte('', 2); // PPale région entrep - $DBILS2.=exporte('', 1); // Code monoreg - $DBILS2.=exporte('', 1); // Code monoact - $DBILS2.=exporte('', 1); // Code tranche CA - $DBILS2.=exporte('', 1); // Tranche part CA export - $DBILS2.=exporte('', 1); // RECME - $DBILS2.=exporte('', 1); // Ordinarité - $DBILS2.=exporte('', 2); // Code nature étab - $DBILS2.=exporte('', 2); // Sigularité étab - - $ligneID=$DBILS2; - $ligne100++; - $cor=''; - if ($typeAnn<>'I') - $cor=" - Annonce n°$corNumA $corNumP, page $corPage, du ".WDate::dateT('Ymd','d/M/Y',$corDate); - switch($typeAnn) { - case 'I': $cor='Insertion'.$cor; break; - case 'A': $cor='Additif'.$cor; break; - case 'R': $cor='Rectificatif'.$cor; break; - case 'S': $cor='Suppression'.$cor; break; - default: break; - } - $codeTri= substr($ligne, 89 , 6 ); // Code Tribunal Codification interne utilisée par le Bodacc - $libTri=$iBodacc->getTribunalNom($codeTri); - - $SOSEQ++; - if ($bodacc=='A') $SOJAL='001'; - elseif ($bodacc=='B') $SOJAL='200'; - elseif ($bodacc=='C') $SOJAL='300'; - else $SOJAL='999'; - $DBILS2 =initstr($SONABO, 9, '0', ALIGN_RIGHT); // Numéro d'abonné BIL ? - $DBILS2.=initstr($SONUME, 9, '0', ALIGN_RIGHT); // Numéro d'entreprise BIL ? - $DBILS2.=initstr($SONUS, 9, '0', ALIGN_RIGHT); // Numéro d'UFS BIL ? - $DBILS2.=initstr($nann, 9, '0', ALIGN_RIGHT); // Numéro d'annonce BIL ? - $DBILS2.=initstr($siren, 9, '0', ALIGN_RIGHT); // Siren - $DBILS2.=initstr($nic, 5, '0', ALIGN_RIGHT); // Nic - $DBILS2.=exporte('SE', 2); // Code produit BIL ? SE, DE, DI, SJ - $DBILS2.=initstr($SOSEQ, 5, '0', ALIGN_RIGHT); // Numéro dans la séquence - $DBILS2.=initstr($dateJ, 8, '0', ALIGN_RIGHT); // Numéro dans la séquence - $DBILS2.=exporte('9', 1); // Type d'enregistrement 1=EntConf, 2=Rejet, 4=Multipropo, 5=Suivi MAJ Entrep, 7=Infos, 8=Envoi documen, 9=Annonce - $DBILS2.=exporte('ANN', 3); // Structure identité - $DBILS2.=exporte('A', 1); // Confirmation 'A'uto ou 'C' pour manuelle - $DBILS2.=exporte($ref, 30); // Réf. Client - //($annonce['codePostalSiege'], 5, '0', ALIGN_RIGHT) - $DBILS2.=exporte($SOORIG, 1); // 1:Insee actif, 2=Ufs, 3=Annonce, 4=Manuelle, 5=Asso, 7=RCS actif, 8=Insee cessa eco, 9=Insee/RCS radié - $DBILS2.=exporte($SOJAL, 3); // 001=Bodacc A, 200=Bodacc B, 300=Bodacc C - $DBILS2.=initstr($datePar, 8, '0', ALIGN_RIGHT); // Date de parution - $DBILS2.=initstr(0, 5, '0', ALIGN_RIGHT); // Page - if ($codeEve=='') { - $message.="Siren : $siren, Bodacc $bodacc, code évènement non géré : '$codeEven'".EOL; - /*$nann = trim(substr($ligne, 3 , 10 ))*1; // N° d'annonce - $siren = substr($ligne, 13 , 9 ); // Siren de l'entreprise concernée par l'annonce - $tabIdentite=@$iInsee->getIdentiteEntreprise($siren); - $nic = trim(substr($ligne, 22, 5 ))*1; // Nic - $ref = trim(substr($ligne, 71, 18 )); // Référence Client - $numPar = substr($ligne, 27 , 3 ); // Numéro de parution du Bodacc dans l'année - = substr($ligne, 30 , 1 ); // Code Bodacc (A, B ou C) A, B ou C - $datePar= substr($ligne, 31 , 8 )*1; // Date de parution du Bodacc Format AAAAMMJJ - $numAnn*/ - sendMail('infoslegales@scores-decisions.com', 'ylenaour@scores-decisions.com', "Surveillance Annonces Legales SOFID (ERREUR)", $message); - return $message; - } - $DBILS2.=exporte($codeEve, 2); // - $DBILS2.=initstr($depPar, 2, '0', ALIGN_RIGHT); - $DBILS2.=initstr($numAnn, 6, '0', ALIGN_RIGHT); - $DBILS2.=exporte($codeRol, 1); // - $DBILS2.=exporte($tabEvenSolib[$codeEve], 5); - $DBILS2.=exporte($codeTri, 6); // - $DBILS2.=exporte($numPar, 3); // - $DBILS2.=initstr($dateJuge, 8, '0', ALIGN_RIGHT); // Date de jugement - $DBILS2.=initstr($dateEffet, 8, '0', ALIGN_RIGHT); // Date d'effet - $DBILS2.=initstr($dateCess, 8, '0', ALIGN_RIGHT); // Date de cessat° des paiements - $DBILS2.=exporte($vteDev, 2); // Devise de la vente - $DBILS2.=initstr($vteMnt, 11, '0', ALIGN_RIGHT); // Montant de la vente - $DBILS2.=exporte('', 33); // Particularité - $DBILS2.=exporte('', 4); // Code rubrique du Bodacc A1xx - $DBILS2.=exporte('', 6); // Code lib injecté - - $tabJuge=$iRncs->getIntervenants($siren); - foreach ($tabJuge as $iDepot=>$depot) { - $DBILS2.=exporte($depot['admid'], 5); // Mot clé Nom - $DBILS2.=exporte($depot['admtype'], 1); // Type officier ministeriel - $DBILS2.=initstr($depot['admid'], 7, '0', ALIGN_RIGHT); // Code Bil - $DBILS2.=exporte($depot['admnom'], 30); // Nom syndic - $DBILS2.=initstr($depot['admadrNum'], 4, '0', ALIGN_RIGHT); // N° rue - $DBILS2.=exporte($depot['admadrInd'], 1); // Bis - $DBILS2.=exporte($depot['admadrType'], 3); // Type Voie - $DBILS2.=exporte($depot['admadrVoie'], 33); // Lib Voie - $DBILS2.=exporte($depot['admadr2'], 32); // Lieu - $DBILS2.=exporte($depot['admadrCP'], 5); // CP - $DBILS2.=exporte($depot['admadrVille'], 32); // Ville - $DBILS2.=exporte('', 10); // Tel - if ($iDepot==1) break; - } - - $ligneANN=$DBILS2; - $txtAnn=''; - //if ($ligne100>1) $ecrireLignePre=true; - break; - case 104: // Annonce - $ligne104++; - $txtAnn=trim($txtAnn.' '.trim(substr($ligne, 89 , 1910))); // Texte Annonce - break; - default: // Ligne non gérée - break; - } - if ($ecrireLignePre) { - fwrite($fp, $ligneOut.EOL); - $ecrireLignePre=false; - } - } - fclose($fp); - return true; -} \ No newline at end of file diff --git a/1.2/library/Metier/insee/classMInsee.php b/1.2/library/Metier/insee/classMInsee.php index 6922f161..7a5d18f7 100644 --- a/1.2/library/Metier/insee/classMInsee.php +++ b/1.2/library/Metier/insee/classMInsee.php @@ -1645,6 +1645,8 @@ class MInsee 'Localisation' => $etab['Loc'], 'id' => $etab['id'], 'Pertinence' => 100, + 'Source' => $etab['source'], + 'SoruceId' => $etab['source_id'], 'Siret' => $etab['siret'], 'Siege' => $etab['siege'], 'Nom' => $nom, @@ -1715,7 +1717,7 @@ class MInsee $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". - "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". + "e.adr_comp, e.adr_cp, e.adr_ville, e.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep,". "CONCAT(e.siren, e.nic) as siret, e.actif", "TEL=$id OR FAX=$id $filtreActif ORDER BY e.siege DESC, e.actif DESC $limit", false, MYSQL_ASSOC); @@ -1749,16 +1751,25 @@ class MInsee $listeEtab=$this->iDb->select('etablissements e', "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". - "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ". + "e.adr_comp, e.adr_cp, e.adr_ville, e.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, e.teff_etab, ". "CONCAT(e.siren, e.nic) as siret, e.actif", "autre_id IN ('$strId') $filtreActif $strDep ORDER BY siege DESC $limit", false, MYSQL_ASSOC); } - foreach ($listeEtab as $etab) { + foreach ($listeEtab as $etab) + { + $pays = 'France'; + if ( $etab['adr_dep']==99 ) { + $resultPays = $this->iDb->select("tabPays", "libPays", "codePaysInsee = ".$etab['adr_com'], false, MYSQL_ASSOC); + $pays = $resultPays[0]['libPays']; + } + $tabRet[]=array( 'Localisation'=>$etab['Loc'], 'id'=>$etab['id'], 'Pertinence'=>100, + 'Source' => $etab['source'], + 'SourceId' => $etab['source_id'], 'Siret'=>$etab['siret'], 'Siege'=>$etab['siege'], 'Nom'=>$etab['raisonSociale'], @@ -1769,6 +1780,7 @@ class MInsee 'Adresse2'=>trim(preg_replace('/ +/', ' ', $etab['adr_comp'])), 'CP'=>$etab['adr_cp'], 'Ville'=>$etab['adr_ville'], + 'Pays' => $pays, 'Tel'=>$etab['tel'], 'Fax'=>$etab['fax'], 'FJ'=>$etab['cj'], @@ -3545,7 +3557,7 @@ TOTAL : $dureeTot s\n"; if ($histo) { $bodacc=$this->iDb->select( 'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', - 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', + 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.dirSiren, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", true, MYSQL_ASSOC); if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { @@ -3558,6 +3570,7 @@ TOTAL : $dureeTot s\n"; continue;*/ $tabRet[]=array( 'Fonction' => $ann['fonction'], 'Titre' => $ann['libelle'], + 'Siren' => $ann['dirSiren'], 'Societe' => $ann['rs'], 'Nom' => trim(strtr($ann['nom'], array( "Modification d'"=>'', "Modification de"=>'', @@ -3689,7 +3702,7 @@ TOTAL : $dureeTot s\n"; if (!$histo) { $bodacc=$this->iDb->select( 'bodacc_dirigeants d, bodacc_detail b, bodacc_fonctions f', - 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', + 'd.num, d.dateEffet, d.Rubrique, d.fonction, d.dirSiren, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle', "b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.fonction BETWEEN 300 AND 304 GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC, d.fonction DESC", false, MYSQL_ASSOC); if (count($bodacc)>0) { foreach ($bodacc as $k=>$ann) { @@ -3710,6 +3723,7 @@ TOTAL : $dureeTot s\n"; //if ($rs==$nom) $tabRet[]=array('Fonction' => $ann['fonction'], 'Titre' => $ann['libelle'], + 'Siren' => $ann['dirSiren'], 'Societe' => $rs, 'Nom' => $nom, 'Prenom' => $prenom, diff --git a/1.2/library/Metier/partenaires/classMAmabis.php b/1.2/library/Metier/partenaires/classMAmabis.php index 66fd4a59..60d49841 100644 --- a/1.2/library/Metier/partenaires/classMAmabis.php +++ b/1.2/library/Metier/partenaires/classMAmabis.php @@ -2,8 +2,8 @@ ini_set('soap.wsdl_cache_enabled', 0); ini_set('default_socket_timeout', 30); -class MAmabis { - +class MAmabis +{ private $client; function __construct() @@ -19,7 +19,8 @@ class MAmabis { )); } - function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) { + function getZonage($adrNum, $adrIndRep, $adrTypeVoie, $adrLibVoie, $cp, $ville='', $codeRivoli='', $rnvp=false, $raisonSociale='TEST', $debug=false) + { $tabRep=array(); if (!$rnvp) { if ($cp<10000) $cp='0'.$cp; @@ -27,7 +28,7 @@ class MAmabis { $dep3=substr($cp,0,3)*1; switch ($dep2) { case 0: - case 5: + /*case 5: case 9: case 15: case 19: @@ -35,7 +36,7 @@ class MAmabis { case 32: case 46: case 48: - case 82: + case 82:*/ case 97: // DOM case 98: // TOM case 99: // Etranger @@ -50,10 +51,19 @@ class MAmabis { $iDb=new WDB(); $adresse=addslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie"))); $ville=addslashes($ville); - $ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs', "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC); + $majForcee=false; + + $ret=$iDb->select( 'zonage', 'zus, zru, zfu, cucs, rnvpStatut, rnvpCorr, rnvpTrt, adr3, adr4, adr5, adr6, adr7, numVoieA, indRepA, + typeVoieAlong, typeVoieAcourt, corpVoie, motDir, motDirD, libVoieSec, adr4n32, adr4n38, clePostaleVoie, + secteur, cleRoutage, cpx, cleAd, codPaysIso2, codPaysIso3, libPays, codeInsee', + "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'",false, MYSQL_ASSOC); + $zones=@$ret[0]; if (count($ret)>0) { - $zones=$ret[0]; + + if ($zones['rnvpStatut']===null && $rnvp) $majForcee=true; $tabRep['ZUS']=$tabRep['ZFU']=$tabRep['ZRU']=$tabRep['CUCS']='NON'; + //$tabRep['NZUS']=$tabRep['NZFU']=$tabRep['NZRU']=$tabRep['NCUCS']=''; + if (trim($zones['zus'])<>'') { if (trim($zones['zus'])=='NSP') $tabRep['ZUS']='NSP'; else $tabRep['ZUS']='OUI'; @@ -74,9 +84,26 @@ class MAmabis { else $tabRep['CUCS']='OUI'; $tabRep['NCUCS']=$zones['cucs']; } - //return $tabRep; + } else { + /** Autres Informations de la RNVP + **/ + if ($rnvp) { + //$tabRep['ADR1']=@trim($tabZones['ADR1']); + //$tabRep['ADR2']=@trim($tabZones['ADR2']); + if (strtoupper(@trim($zones['adr7']))=='FRANCE') $zones['adr7']=''; + $tabRep['ADR3']=@trim($zones['adr3']); + $tabRep['ADR4']=@trim($zones['adr4']); + $tabRep['ADR5']=@trim($zones['adr5']); + $tabRep['ADR6']=@trim($zones['adr6']); + $tabRep['ADR7']=trim($zones['adr7']); + } + + } + + if (count($ret)==0 || $majForcee) { + try { if (trim($raisonSociale)=='') $raisonSociale='TEST'; // Le RNVP ne fonctionne pas sans la Raison Sociale qui est la 1ère ligne d'adresse $rep=$this->client->zonage( new SoapParam(strtr("$raisonSociale:$adresse:$cp:$ville", @@ -101,60 +128,137 @@ class MAmabis { if (trim($tabTmp[0])<>'') $tabRep[$tabTmp[0]]=$tabTmp[1]; } - if ($tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP'; - if ($tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP'; - if ($tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP'; - if ($tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP'; + if (@$tabRep['ZUS']=='NSP') $tabRep['NZUS']='NSP'; + if (@$tabRep['ZRU']=='NSP') $tabRep['NZRU']='NSP'; + if (@$tabRep['ZFU']=='NSP') $tabRep['NZFU']='NSP'; + if (@$tabRep['CUCS']=='NSP') $tabRep['NCUCS']='NSP'; $adresse=stripslashes(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoie $adrLibVoie"))); $ville=stripslashes($ville); - $tabInsert=array( 'address'=>$adresse, - 'adr_cp'=>$cp, - 'adr_ville'=>$ville, - 'zus'=>$tabRep['NZUS'], - 'zru'=>$tabRep['NZRU'], - 'zfu'=>$tabRep['NZFU'], - 'cucs'=>$tabRep['NCUCS'], - 'adrNum'=>$adrNum, - 'adrIndRep'=>$adrIndRep, - 'adrTypeVoie'=>$adrTypeVoie, - 'adrLibVoie'=>$adrLibVoie, - 'rivoli'=>$codeRivoli, - ); - $iDb->insert('zonage', $tabInsert); + $tabRepTmp=array(); + $tabTmp=explode('=',utf8_decode($rep['objdesc'])); + //print_r($tabTmp); + //die(); + $tabZones=array(); + foreach ($tabTmp as $iZone=>$zone) { + $pos=strrpos($zone,','); + if ($iZone==0) { + $nomZoneSuiv=$zone; + continue; + } + $tabZones[$nomZoneSuiv]=substr($zone,0,$pos); + $nomZoneSuiv=substr($zone,$pos+1); + } + if (strtoupper(@trim($tabZones['ADR7']))=='FRANCE') $tabZones['ADR7']=''; + $tabTmp=explode('|', $tabZones['VOIEA']); + $typeVoieAcourt=@trim($tabTmp[1]); + $tabInsert=array( + 'address'=>$adresse, + 'adr_cp'=>$cp, + 'adr_ville'=>$ville, + 'zus'=>@$tabRep['NZUS'], + 'zru'=>@$tabRep['NZRU'], + 'zfu'=>@$tabRep['NZFU'], + 'cucs'=>@$tabRep['NCUCS'], + ); + $tabUpdate=array( + 'adrNum'=>$adrNum, + 'adrIndRep'=>$adrIndRep, + 'adrTypeVoie'=>$adrTypeVoie, + 'adrLibVoie'=>$adrLibVoie, + 'rivoli'=>$codeRivoli, + // Ajouté le 16/12/2013 + 'rnvpStatut' => substr($tabZones['STATUTC'],0,2), + 'rnvpCorr' => substr($tabZones['STATUTC'],2,1), + 'rnvpTrt' => trim(substr($tabZones['STATUTC'],3,2)), + 'adr3' => @trim($tabZones['ADR3']), + 'adr4' => @trim($tabZones['ADR4']), + 'adr5' => @trim($tabZones['ADR5']), + 'adr6' => @trim($tabZones['ADR6']), + 'adr7' => trim($tabZones['ADR7']), + 'numVoieA' => @trim($tabZones['NUM1']), + 'indRepA' => @trim($tabZones['BTQC1']), + 'typeVoieAlong' => @trim($tabZones['TYPVOIEL']), + 'typeVoieAcourt' => $typeVoieAcourt, + 'corpVoie' => @trim($tabZones['CORPSVOIE']), + 'motDir' => @trim($tabZones['MOTDIR']), + 'motDirD' => @trim($tabZones['MOTDIRD']), + 'libVoieSec' => @trim($tabZones['VOIREFLIBS']), + 'adr4n32' => @trim($tabZones['VOIREFLIBPOS']), + 'adr4n38' => @trim($tabZones['VOIREFLIBPOS2']), + 'clePostaleVoie' => @trim($tabZones['VOIREFCLEPOST']), + 'secteur' => @trim($tabZones['SECTEUR']), + 'cleRoutage' => @trim($tabZones['CLER']), + 'cpx' => @trim($tabZones['CPX']), + 'cleAd' => @trim($tabZones['CLEAD']), + 'codPaysIso2' => @trim($tabZones['NATREFISO2']), + 'codPaysIso3' => @trim($tabZones['NATREFISO3']), + 'libPays' => @trim($tabZones['NATREFLIB']), + 'codeInsee' => @trim($tabZones['LOCREFCLEO']), + 'source' => 'Amabis', + ); + $dateInsert=0; + if ($majForcee) { + $adresseL=addslashes($adresse); + $villeL=addslashes($ville); + + $ret=$iDb->select('zonage', 'dateInsert*1 as dateInsert', "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false); + $dateInsert=@$ret[0]['dateInsert']*1; + $iDb->update('zonage', array_merge($tabUpdate,array('dateInsert'=>$dateInsert)), "address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'", false); + //echo "Mise à jour de l'adresse du $dateInsert pour address='$adresseL' AND adr_cp='$cp' AND adr_ville='$villeL'".EOL; + } + + if ($dateInsert==0) { + $iDb->insert('zonage', array_merge($tabInsert,$tabUpdate), false); + //echo "Insertion de l'adresse (".$zones['rnvpStatut'].")!".EOL; + } + + $tabTmp[0]=explode(',', $tabZones['LOCREFCLEP']); + $tabTmp[1]=explode(',', $tabZones['LOCREFCP']); + $tabTmp[2]=explode(',', $tabZones['LOCREFTYPP']); + $tabTmp[3]=explode(',', $tabZones['LOCREFLIBD']); + $tabTmp[4]=explode(',', $tabZones['LOCREFLIBD2']); + foreach($tabTmp[0] as $iCleP=>$cleP) { + $tabInsert=array( + 'codeInsee' => @trim($tabZones['LOCREFCLEO']), + 'villeLib' => @trim($tabZones['LOCREFLIBP']), + 'villePopu' => @trim($tabZones['LOCREFPOP']), + 'cleAchPost'=> $cleP, + 'codePostal'=> $tabTmp[1][$iCleP], + 'typePostal'=> $tabTmp[2][$iCleP], + 'libAchP32' => @preg_replace('/^\//','',$tabTmp[3][$iCleP]), + 'libAchP38' => @preg_replace('/^\//','',$tabTmp[4][$iCleP]), + 'source' => 'Amabis', + 'dateInsert'=> date('YmdHis'), + ); + $iDb->insert('villesCP', $tabInsert); + //echo mysql_error().EOL; + } /** Autres Informations de la RNVP **/ - if ($rnvp || $debug) { - $tabRepTmp=array(); - $tabZones=explode(',',$rep['objdesc']); - foreach ($tabZones as $zone) { - $tabTmp=explode('=',$zone); - if (trim($tabTmp[0])<>'') - $tabRepTmp[$tabTmp[0]]=$tabTmp[1]; - } - if (!$debug) { - $tabRep['ADR1']=@$tabRepTmp['ADR1']; - $tabRep['ADR2']=@$tabRepTmp['ADR2']; - $tabRep['ADR3']=@$tabRepTmp['ADR3']; - $tabRep['ADR4']=@$tabRepTmp['ADR4']; - $tabRep['ADR5']=@$tabRepTmp['ADR5']; - $tabRep['ADR6']=@$tabRepTmp['ADR6']; - $tabRep['ADR7']=@$tabRepTmp['ADR7']; - } else { - $tabRep=array_merge($tabRep, $tabRepTmp); - } + if ($rnvp) { + //$tabRep['ADR1']=@trim($tabZones['ADR1']); + //$tabRep['ADR2']=@trim($tabZones['ADR2']); + $tabRep['ADR3']=@trim($tabZones['ADR3']); + $tabRep['ADR4']=@trim($tabZones['ADR4']); + $tabRep['ADR5']=@trim($tabZones['ADR5']); + $tabRep['ADR6']=@trim($tabZones['ADR6']); + $tabRep['ADR7']=trim($tabZones['ADR7']); } } catch (SoapFault $fault) { - echo 'ERREUR SOAP :'.EOL; - print_r($fault); - echo $this->client->__getLastRequest()."\n"; - echo $this->client->__getLastResponse()."\n"; + //echo 'ERREUR SOAP :'.EOL; + //print_r($fault); + //echo $this->client->__getLastRequest()."\n"; + //echo $this->client->__getLastResponse()."\n"; $fp=fopen(LOG_PATH.'/amabis.log', 'a'); fwrite($fp, date('d-m-Y H:i:s').' - ERREUR SOAP : Requete = '.$this->client->__getLastRequest()."\n Reponse = ".$this->client->__getLastResponse()."\n============================================================================\n"); fclose($fp); } //return $tabRep; } + + /** Zonages AFR et ZRR + **/ $codeInsee=substr($codeRivoli,0,5); $ret=$iDb->select( 'zonageInsee', 'typeZone, arreteDate, decretDate, decretNum, decretModifieDate, decretModifieNum, dateDebut, dateFin', "codeInsee='$codeInsee'",false, MYSQL_ASSOC); $tabRep['ZRR']=$tabRep['AFR']='NON'; diff --git a/1.2/library/Metier/partenaires/classMGreffes.php b/1.2/library/Metier/partenaires/classMGreffes.php index 6e2d2064..5b6a5a6a 100644 --- a/1.2/library/Metier/partenaires/classMGreffes.php +++ b/1.2/library/Metier/partenaires/classMGreffes.php @@ -1,4 +1,4 @@ -iDb=new WDB(); $this->iInsee=new MInsee(); } - function getIdentite($siren, $refresh=false) { + function getPageHeader($start,$end,$header) + { + $pattern = '/'. $start .'(.*)'. $end .'/'; + if (preg_match($pattern, $header, $result)) { + return $result[1]; + } else { + return false; + } + } + + /** + * Retrouve le code de la forme juridique par le libellé + * @param string $txt + * @return number + */ + public function getFJCodeFromLabel($txt) + { + $list = array( + //Insee + "Entrepreneur Individuel à Responsabilité Limité" => "1000", + "Artisan Commerçant" => "1100", + "Commerçant" => "1200", + "Artisan" => "1300", + "Officier public ou ministériel" => "1400", + "Profession libérale" => "1500", + "Exploitant agricole" => "1600", + "Agent commercial" => "1700", + "Associé Gérant de société" => "1800", + "(Autre) personne physique" => "1900", + "Indivision" => "2100", + "Indivision entre personnes physiques" => "2110", + "Indivision avec personne morale" => "2120", + "Société créée de fait" => "2200", + "Société créée de fait entre personnes physiques" => "2210", + "Société créée de fait avec personne morale" => "2220", + "Société en participation" => "2300", + "Société en participation entre personnes physiques" => "2310", + "Société en participation avec personne morale" => "2320", + "Société en participation de professions libérales" => "2385", + "Fiducie" => "2400", + "Paroisse hors zone concordataire" => "2700", + "Autre groupement de droit privé non doté de la personnalité morale" => "2900", + "Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS" => "3110", + "Société étrangère immatriculée au RCS" => "3120", + "Organisation internationale" => "3205", + "État collectivité ou établissement public étranger" => "3210", + "Société étrangère non immatriculée au RCS" => "3220", + "(Autre) personne morale de droit étranger" => "3290", + "Établissement public national à caractère industriel ou commercial doté d'un comptable public" => "4110", + "Établissement public national à caractère industriel ou commercial non doté d'un comptable public" => "4120", + "Exploitant public" => "4130", + "Établissement public local à caractère industriel ou commercial" => "4140", + "Régie d'une collectivité locale à caractère industriel ou commercial" => "4150", + "Institution Banque de France" => "4160", + "Société de caution mutuelle" => "5191", + "Société coopérative de banque populaire" => "5192", + "Caisse de crédit maritime mutuel" => "5193", + "Caisse (fédérale) de crédit mutuel" => "5194", + "Association coopérative inscrite (droit local Alsace Moselle)" => "5195", + "Caisse d'épargne et de prévoyance à forme coopérative" => "5196", + "Société en nom collectif" => "5202", + "Société en nom collectif coopérative" => "5203", + "Société en commandite simple" => "5306", + "Société en commandite simple coopérative" => "5307", + "Société en commandite par actions" => "5308", + "Société en commandite par actions coopérative" => "5309", + "Société de Participations Financières de Profession Libérale Société en commandite par actions" => "5370", + "Société d'exercice libéral en commandite par action" => "5385", + "SARL nationale" => "5410", + "SARL d'économie mixte" => "5415", + "SARL immobilière pour le commerce et l'industrie (SICOMI)" => "5422", + "Société immobilière de gestion" => "5426", + "Safer en SARL" => "5430", + "SARL mixte d'intérêt agricole" => "5431", + "SARL d'intérêt collectif agricole" => "5432", + "SARL d'attribution" => "5442", + "SARL coopérative de construction" => "5443", + "SARL coopérative de consommation" => "5451", + "SARL coopérative artisanale" => "5453", + "SARL coopérative d'intérêt maritime" => "5454", + "SARL coopérative de transports" => "5455", + "SARL coopérative ouvrière de production" => "5458", + "SARL union de sociétés coopératives" => "5459", + "Autre SARL coopérative" => "5460", + "Société de Participations Financières de Profession Libérale en SARL" => "5470", + "Société d'exercice libéral à responsabilité limitée" => "5485", + "Entreprise Unipersonnelle à Responsabilité Limitée" => "5488", + "SARL unipersonnelle" => "5498", + "Autre société à responsabilité limitée" => "5499", + "SA à participation ouvrière à conseil d'administration" => "5505", + "SA nationale à conseil d'administration" => "5510", + "SA d'économie mixte à conseil d'administration" => "5515", + "Société d'investissement à capital variable (SICAV) à conseil d'administration" => "5520", + "Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration" => "5522", + "Société anonyme immobilière d'investissement à conseil d'administration" => "5525", + "Safer anonyme à conseil d'administration" => "5530", + "Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration" => "5531", + "Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration" => "5532", + "Société anonyme d'attribution à conseil d'administration" => "5542", + "Société anonyme coopérative de construction à conseil d'administration" => "5543", + "SA de HLM à conseil d'administration" => "5546", + "SA coopérative de production de HLM à conseil d'administration" => "5547", + "SA de crédit immobilier à conseil d'administration" => "5548", + "SA coopérative de consommation à conseil d'administration" => "5551", + "SA coopérative de commerçants détaillants à conseil d'administration" => "5552", + "SA coopérative artisanale à conseil d'administration" => "5553", + "SA coopérative (d'intérêt) maritime à conseil d'administration" => "5554", + "SA coopérative de transports à conseil d'administration" => "5555", + "SA coopérative ouvrière de production (SCOP) à conseil d'administration" => "5558", + "SA union de sociétés coopératives à conseil d'administration" => "5559", + "Autre SA coopérative à conseil d'administration" => "5560", + "Société de Participations Financières de Profession Libérale en SA à conseil d'administration" => "5570", + "Société d'exercice libéral à forme anonyme à conseil d'administration" => "5585", + "Autre SA à conseil d'administration" => "5599", + "SA à participation ouvrière à directoire" => "5605", + "SA nationale à directoire" => "5610", + "SA d'économie mixte à directoire" => "5615", + "Société d'investissement à capital variable (SICAV) à directoire" => "5620", + "Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire" => "5622", + "Société immobilière d'investissement anonyme à directoire" => "5625", + "Safer anonyme à directoire" => "5630", + "Société anonyme mixte d'intérêt agricole" => "5631", + "Société anonyme d'intérêt collectif agricole" => "5632", + "Société anonyme d'attribution à directoire" => "5642", + "Société anonyme coopérative de construction à directoire" => "5643", + "Société anonyme de HLM à directoire" => "5646", + "Société coopérative de production de HLM anonyme à directoire" => "5647", + "SA de crédit immobilier à directoire" => "5648", + "SA coopérative de consommation à directoire" => "5651", + "SA coopérative de commerçants détaillants à directoire" => "5652", + "SA coopérative artisanale à directoire" => "5653", + "SA coopérative (d'intérêt) maritime à directoire" => "5654", + "SA coopérative de transport à directoire" => "5655", + "SA coopérative ouvrière de production (SCOP) à directoire" => "5658", + "SA union de sociétés coopératives à directoire" => "5659", + "(Autre) SA coopérative à directoire" => "5660", + "Société de Participations Financières de Profession Libérale en SA à Directoire" => "5670", + "Société d'exercice libéral à forme anonyme à directoire" => "5685", + "Autre SA à directoire" => "5699", + "Société par actions simplifiée" => "5710", + "Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle" => "5720", + "Société de Participations Financières de Profession Libérale en SAS" => "5770", + "Société d’exercice libéral par action simplifiée" => "5785", + "Société européenne" => "5800", + "Caisse d’épargne et de prévoyance" => "6100", + "Groupement d'intérêt économique" => "6200", + "Groupement européen d’intérêt économique" => "6210", + "Groupement d’intérêt économique" => "6220", + "Coopérative d’utilisation de matériel agricole en commun" => "6316", + "Société coopérative agricole" => "6317", + "Union de sociétés coopératives agricoles" => "6318", + "Société d’assurance mutuelle" => "6411", + "Société mutuelle d'assurance" => "6412", + "Union de sociétés mutuelles d'assurances" => "6413", + "Autre société non commerciale d'assurance" => "6414", + "Société Interprofessionnelle de Soins Ambulatoires" => "6511", + "Société civile de placement collectif immobilier" => "6521", + "Société civile d’intérêt collectif agricole" => "6532", + "Groupement agricole d’exploitation en commun" => "6533", + "Groupement foncier agricole" => "6534", + "Groupement agricole foncier" => "6535", + "Groupement forestier" => "6536", + "Groupement pastoral" => "6537", + "Groupement foncier rural" => "6538", + "Société civile foncière" => "6539", + "Société civile immobilière" => "6540", + "Société civile immobilière de construction vente" => "6541", + "Société civile d’attribution" => "6542", + "Société civile coopérative de construction" => "6543", + "Société immobilière d'accession progressive à la propriété" => "6544", + "Société civile coopérative de consommation" => "6551", + "Société civile coopérative (d'intérêt) maritime" => "6554", + "Société civile coopérative entre médecins" => "6558", + "Autre société civile coopérative" => "6560", + "SCP d'avocats" => "6561", + "SCP d'avocats aux conseil" => "6562", + "SCP d'avoués d’appel" => "6563", + "SCP d'huissiers" => "6564", + "SCP de notaires" => "6565", + "SCP de commissaires-priseurs" => "6566", + "SCP de greffiers de tribunal de commerce" => "6567", + "SCP de conseils juridiques" => "6568", + "SCP de commissaires aux comptes" => "6569", + "SCP de médecins" => "6571", + "SCP de dentistes" => "6572", + "SCP d’infirmiers" => "6573", + "SCP de masseurs kinésithérapeutes" => "6574", + "SCP de directeurs de laboratoire d’analyse médicale" => "6575", + "SCP de vétérinaires" => "6576", + "SCP de géomètres-experts" => "6577", + "SCP d’architectes" => "6578", + "(Autres) Société Civile professionnelle" => "6585", + "Société civile laitière" => "6588", + "Société civile de moyens" => "6589", + "Caisse (locale) de crédit mutuel" => "6595", + "Caisse de crédit agricole mutuel" => "6596", + "Société civile d’exploitation agricole" => "6597", + "Exploitation agricole à responsabilité limitée" => "6598", + "Autre société civile" => "6599", + "Autres personnes de droit privé inscrites au registre du commerce et des sociétés" => "6901", + "Autorité constitutionnelle" => "7111", + "Autorité administrative indépendante" => "7112", + "Ministère" => "7113", + "Service central d’un ministère" => "7120", + "Service du ministère des Postes et Télécommunications" => "7130", + "Service du ministère de la Défense" => "7150", + "Service déconcentré à compétence nation. D’un ministère (hors Défense)" => "7160", + "Service déconcentré de l’État à compétence (inter) régionale" => "7171", + "Service déconcentré de l’État à compétence (inter) départementale" => "7172", + "(Autre) Service déconcentré de l’État à compétence territoriale" => "7179", + "Ecole nationale non dotée de la personnalité morale" => "7190", + "Commune et commune nouvelle" => "7210", + "Département" => "7220", + "Collectivité et territoire d'Outre Mer" => "7225", + "(Autre) Collectivité territoriale" => "7229", + "Région" => "7230", + "Commune associée et commune déléguée" => "7312", + "Section de commune" => "7313", + "Ensemble urbain" => "7314", + "Association syndicale autorisée" => "7321", + "Association foncière urbaine" => "7322", + "Association foncière de remembrement" => "7323", + "Établissement public local d’enseignement" => "7331", + "Pôle métropolitain" => "7340", + "Secteur de commune" => "7341", + "District urbain" => "7342", + "Communauté urbaine" => "7343", + "Métropole" => "7344", + "Syndicat intercommunal à vocation multiple" => "7345", + "Communauté de communes" => "7346", + "Communauté de villes" => "7347", + "Communauté d'agglomération" => "7348", + "Autre établissement public local de coopération non spécialisé ou entente" => "7349", + "Institution interdépartemental ou entente" => "7351", + "Institution interrégionale ou entente" => "7352", + "Syndicat intercommunal à vocation unique" => "7353", + "Syndicat mixte communal" => "7354", + "Autre syndicat mixte" => "7355", + "Commission syndicale pour la gestion des biens indivis des communes" => "7356", + "Centre communal d'action sociale" => "7361", + "Caisse des écoles" => "7362", + "Caisse de crédit municipal" => "7363", + "Établissement d'hospitalisation" => "7364", + "Syndicat inter hospitalier" => "7365", + "Établissement public local social et médico-social" => "7366", + "Office public d'habitation à loyer modéré" => "7371", + "Service départemental d'incendie" => "7372", + "Établissement public local culturel" => "7373", + "Régie d'une collectivité locale à caractère administratif" => "7378", + "(Autre) Établissement public administratif local" => "7379", + "Organisme consulaire" => "7381", + "Établissement public national ayant fonction d'administration centrale" => "7382", + "Établissement public national à caractère scientifique culturel et professionnel" => "7383", + "Autre établissement public national d'enseignement" => "7384", + "Autre établissement public national administratif à compétence territoriale limitée" => "7385", + "Établissement public national à caractère administratif" => "7389", + "Groupement d'intérêt public" => "7410", + "Établissement public des cultes d'Alsace-Lorraine" => "7430", + "Etablissement public administratif, cercle et foyer dans les armées" => "7450", + "Groupement de coopération sanitaire à gestion publique" => "7470", + "Autre personne morale de droit administratif" => "7490", + "Service d'une collectivité locale à comptabilité distincte" => "7510", + "Régie d'une collectivité locale non dotée de la personnalité morale" => "7520", + "Régime général de la sécurité sociale" => "8110", + "Régime spécial de sécurité sociale" => "8120", + "Institution de retraite complémentaire" => "8130", + "Mutualité sociale agricole" => "8140", + "Régime maladie des non-salariés non agricoles" => "8150", + "Régime vieillesse ne dépendant pas du régime général de la sécurité sociale" => "8160", + "Régime d'assurance chômage" => "8170", + "Autre régime de prévoyance sociale" => "8190", + "Mutuelle" => "8210", + "Assurance mutuelle agricole" => "8250", + "Autre organisme mutualiste" => "8290", + "Comité central d'entreprise" => "8310", + "Comité d'établissement" => "8311", + "Syndicat de salariés" => "8410", + "Syndicat patronal" => "8420", + "Ordre professionnel ou assimilé" => "8450", + "Centre technique industriel ou comité professionnel du développement économique" => "8470", + "Autre organisme professionnel" => "8490", + "Institution de prévoyance" => "8510", + "Institution de retraite supplémentaire " => "8520", + "Syndicat de copropriété" => "9110", + "Association syndicale libre" => "9150", + "Association non déclarée" => "9210", + "Association déclarée" => "9220", + "Association déclarée \"entreprises d'insertion par l'économique\"" => "9221", + "Association intermédiaire" => "9222", + "Groupement d'employeurs" => "9223", + "Association d'avocats à responsabilité professionnelle individuelle" => "9224", + "Association déclarée reconnue d'utilité publique" => "9230", + "Congrégation" => "9240", + "Association de droit local" => "9260", + "Fondation" => "9300", + "Autre personne morale de droit privé" => "9900", + "Groupement de coopération sanitaire à gestion privée" => "9970", + + //Spécial RNCS + "AFFAIRE PERSONNELLE ARTISAN" => "1300", + "AFFAIRE PERSONNELLE COMMERCANT" => "1200", + "AGENT COMMERCIAL" => "1700", + "ANO SOCIETE ANONYME A DIRECTOIRE ET CONSEIL DE SURVEILLANCE" => "5630", + "ARL SOCIETE A ASSOCIE UNIQUE" => "5498", + "ASSOCIATION LOI 1901 EMETTANT DES OBLIGATIONS" => "9220", + "BANQUE COOPERATIVE REGIE PAR LA LOI N°99-532 DU 25 JUIN 1999" => "5192", + "BANQUE COOPERATIVE REGIE PAR LA LOI N.99-532 DU 25.06.1999" => "5192", + "BANQUE COOPERATIVE" => "5192", + "CETTE SOCIETE EST UNE SAS UNIPERSONNELLE" => "5720", + "COOP. DE CREDIT A RESPONSABILITE STATUTAIREMENT LIMITEE ET A CAPITAL VARIABLE" => "5458", + "COOPERATIVE A CAPITAL VARIABLE (SARL)" => "5460", + "COOPERATIVE A CAPITAL VARIABLE EN A R L" => "5460", + "COOPERATIVE A CAPITAL VARIABLE EN A.R.L." => "5460", + "COOPERATIVE AGRICOLE A CAPITAL VARIABLE" => "6317", + "COOPERATIVE AGRICOLE" => "6317", + "COOPERATIVE ARTISANALE EN S.A.R.L" => "5453", + "COOPERATIVE ARTISANALE" => "5453", + "COOPERATIVE D'INTERET COLLECTIF A CONSEIL D'ADMINISTRATION" => "5560", + "COOPERATIVE D'UTILISATION DE MATERIEL AGRICOLE (C.U.M.A.)" => "6316", + "COOPERATIVE DE CONSOMMATION EN S.A" => "5551", + "COOPERATIVE D\'UTILISATION DE MATERIEL AGRICOLE EN COMMUN" => "6316", + "COOPERATIVE MARITIME" => "5454", + "COOPERATIVE OUVRIERE DE PRODUCT A RESP LIM" => "5458", + "COOPERATIVE OUVRIERE DE PRODUCT. A RESP. LIM." => "5458", + "COOPERATIVE OUVRIERE DE PRODUCTION (ANONYME)" => "5558", + "COOPERATIVE OUVRIERE DE PRODUCTION (SA)" => "5558", + "COOPERATIVE OUVRIERE DE PRODUCTION EN A R L" => "5458", + "COOPERATIVE OUVRIERE DE PRODUCTION EN A.R.L." => "5458", + "COOPERATIVE OUVRIERE DE PRODUCTION EN S.A.R.L." => "5458", + "E.A.R.L." => "6598", + "E.U.R.L A CAPITAL VARIABLE" => "5498", + "E.U.R.L." => "5498", + "ENTREPRISE UNIPERSONNELLE A RESPONSABILITE LIMITEE (EURL) ET A CAPITAL VARIABLE" => "5488", + "ENTREPRISE UNIPERSONNELLE A RESPONSABILITE LIMITEE - EURL" => "5488", + "ENTREPRISE UNIPERSONNELLE A RESPONSABILITE LIMITEE ET A CAPITAL VARIABLE" => "5488", + "ENTREPRISE UNIPERSONNELLE A RESPONSABILITE LIMITEE" => "5488", + "ETABLISSEMENT PUBLIC A CARACTERE INDUSTRIEL ET COMMERCIAL" => "4140", + "ETABLISSEMENT PUBLIC ADMINISTRATIF" => "4130", + "EURL A CAPITAL VARIABLE" => "5498", + "EXPLOITATION AGRICOLE A RESPONSABILITE LIMITEE" => "6598", + "GAEC A CAPITAL VARIABLE" => "6533", + "GROUPEMEMT D INTERET ECONOMIQUE COMMERCIAL" => "6200", + "GROUPEMEMT D'INTERET ECONOMIQUE COMMERCIAL" => "6200", + "GROUPEMENT AGRICOLE D EXPLOITATION EN COMMUN" => "6533", + "GROUPEMENT AGRICOLE D'EXPLOITATION EN COMMUN - GAEC" => "6533", + "GROUPEMENT AGRICOLE D\'EXPLOITATION EN COMMUN (GAEC)" => "6533", + "GROUPEMENT AGRICOLE D\'EXPLOITATION EN COMMUN" => "6533", + "GROUPEMENT D INT R T CONOMIQUE" => "6200", + "GROUPEMENT D INTERET ECONOMIQUE COMMERCIAL" => "6220", + "GROUPEMENT D INTERET ECONOMIQUE" => "6220", + "GROUPEMENT D'INTERET ECONOMIQUE" => "6220", + "GROUPEMENT D\'INTERET ECONOMIQUE" => "6220", + "GROUPEMENT EUROPEEN D'INTERET ECONOMIQUE" => "6210", + "GROUPEMENT FONCIER AGRICOLE" => "6534", + "GROUPEMENT FORESTIER" => "6536", + "PERSONNE PHYSIQUE" => "1900", + "REGIE MUNICIPALE" => "7378", + "S A COOPERATIVE D ENTREPRISES A CAPITAL VARIABLE" => "5560", + "S A R L A CAPITAL VARIABLE" => "5499", + "S A R L DE PRESSE" => "5499", + "S.A.R.L. A CAPITAL PERSONNEL VARIABLE" => "5499", + "S.A.R.L. A CAPITAL VARIABLE" => "5499", + "S.A.R.L. DE PRESSE" => "5499", + "S.A.R.L." => "5499", + "SA A CONSEIL D ADMINISTRATION" => "5599", + "SA A CONSEIL D'ADMINISTRATION" => "5599", + "SA A CONSEIL D&#039;ADMINISTRATION" => "5599", + "SA A CONSEIL D\'ADMINISTRATION" => "5599", + "SA A DIRECTOIRE" => "5699", + "SA COOP DE COMMERCANTS DETAIL A CA" => "5552", + "SA COOP DE PRODUCTION A CAP VARIABLE" => "5558", + "SA COOP. DE PRODUCTION HLM A CAPITAL VARIABLE" => "5547", + "SA COOP. OUVRIERE DE PRODUCTION CAPITAL ET PERSONNEL VARIABLES" => "5558", + "SA COOPERATIVE DE CONSOMMATION A CONSEIL D ADMINISTRATION A CAPITAL VARIABLE" => "5551", + "SA COOPERATIVE OUVRIERE DE PROD. ET CREDIT A CONSEIL D'ADM. A CAPITAL VARIABLE" => "5558", + "SA COOPERATIVE OUVRIERE DE PRODUCTION ET DE CREDIT A CONSEIL D ADMINISTRATION" => "5558", + "SA D'ECONOMIE MIXTE A CONSEIL ADMINISTRATIF" => "5515", + "SA D'INT. COLLECTIF AGRI. A CA" => "5632", + "SA MEMBRE DE LA CE OU PARTIE À L\'ACCORD SUR L\'ESPACE ECONOMIQUE EUROPEEN" => "3290", + "SARL - EURL A CAPITAL VARIABLE" => "5498", + "SARL A ASSOCIE UNIQUE ET A CAPITAL VARIABLE" => "5720", + "SARL A CAPITAL ET PERSONNEL VARIABLE" => "5499", + "SARL A CAPITAL VARIABLE" => "5499", + "SARL ASSOCIE UNIQUE" => "5498", + "SARL COOPERATIVE A CAPITAL VARIABLE" => "5460", + "SARL COOPERATIVE ARTISANALE" => "5453", + "SARL COOPERATIVE OUVRIERE DE PRODUCTION ET DE CREDIT A CAPITAL VARIABLE" => "5458", + "SARL COOPERATIVE OUVRIERE DE PRODUCTION" => "5458", + "SARL COOPERATIVE" => "5460", + "SARL D'ARCHITECTURE" => "5499", + "SARL D'INTERET COLLECTIF ET AGRICOLE A CAPITAL VARIABLE" => "5432", + "SARL NON MEMBRE DE LA CE OU NON PARTIE A L'ACCORD SUR L'ESPACE ECONOMIQUE EUR." => "3120", + "SARL SOCIETE A ASSOCIE UNIQUE" => "5498", + "SARL SOUS FORME DE EURL" => "5498", + "SARL UNIPERSONNELLE SPORTIVE" => "5498", + "SARL UNIPERSONNELLE" => "5498", + "SASCOP" => "5558", + "SASU SOCIETE PAR ACTIONS SIMPLIFIEE A ASSOCIE UNIQUE" => "5720", + "SCOP A RESPONSABILITE LIMITEE ET A CAPITAL VARIABLE" => "5458", + "SCP DE MANDATAIRES JUDICIAIRES A LA LIQUIDATION DES ENTREPRISES" => "6585", + "SICA ANONYME A DIRECTOIRE ET CONSEIL DE SURVEILLANCE" => "5632", + "SOCI T ANONYME" => "5530", + "SOCI T CIVILE DE MOYENS" => "6589", + "SOCI T CIVILE IMMOBILI RE" => "6540", + "SOCI T CIVILE" => "6585", + "SOCI T D EXERCICE LIB RAL RESPONSABILIT LIMIT E" => "5485", + "SOCI T DE DROIT TRANGER" => "3290", + "SOCI T EN COMMANDITE SIMPLE" => "5306", + "SOCI T EN NOM COLLECTIF" => "5202", + "SOCI T PAR ACTIONS SIMPLIFI E ASSOCI UNIQUE" => "5720", + "SOCI T PAR ACTIONS SIMPLIFI E" => "5710", + "SOCI T RESPONSABILIT LIMIT E ASSOCI UNIQUE" => "5498", + "SOCI T RESPONSABILIT LIMIT E CAPITAL VARIABLE" => "5499", + "SOCI T RESPONSABILIT LIMIT E COOP RATIVE CAPITAL VARIABLE" => "5458", + "SOCI T RESPONSABILIT LIMIT E COOP RATIVE OUVRI RE DE PRODUCTION ET DE CR DIT" => "5458", + "SOCI T RESPONSABILIT LIMIT E" => "5499", + "SOCI?T? ? RESPONSABILIT? LIMIT?E ? ASSOCI? UNIQUE" => "5498", + "SOCI?T? ? RESPONSABILIT? LIMIT?E" => "5499", + "SOCI?T? PAR ACTIONS SIMPLIFI?E UNIPERSONNELLE" => "5720", + "SOCI?T? PAR ACTIONS SIMPLIFI?E" => "5710", + "SOCIETE A RESPONSABILITE LIMITE DE DROIT BRITANIQUE" => "3290", + "SOCIETE A RESPONSABILITE LIMITEE A ASSOCIE UNIQUE" => "5498", + "SOCIETE A RESPONSABILITE LIMITEE A CAPITAL VARIABLE" => "5499", + "SOCIETE A RESPONSABILITE LIMITEE COOPERATIVE OUVRIERE DE PRODUCTION ET DE CREDIT" => "5458", + "SOCIETE A RESPONSABILITE LIMITEE D'ARCHITECTURE" => "5499", + "SOCIETE A RESPONSABILITE LIMITEE UNIPERSONNELLE A CAPITAL VARIABLE" => "5499", + "SOCIETE A RESPONSABILITE LIMITEE UNIPERSONNELLE" => "5498", + "SOCIETE A RESPONSABILITE LIMITEE" => "5499", + "SOCIETE ANONYME (SA)" => "5699", + "SOCIETE ANONYME A CAPITAL ET PERSONNEL VARIABLES" => "5599", + "SOCIETE ANONYME A CONSEIL D ADMINISTRATION" => "5599", + "SOCIETE ANONYME A CONSEIL D'ADMINISTRATION" => "5599", + "SOCIETE ANONYME A CONSEIL DE SURVEILLANCE" => "5599", + "SOCIETE ANONYME A CONSEIL D\'ADMINISTRATION" => "5599", + "SOCIETE ANONYME A DIRECTOIRE ET A CONSEIL DE SURVEILLANCE" => "5699", + "SOCIETE ANONYME A DIRECTOIRE ET CONSEIL DE SURVEILLANCE" => "5699", + "SOCIETE ANONYME A DIRECTOIRE" => "5699", + "SOCIETE ANONYME A PARTICIPATION OUVRIERE" => "5505", + "SOCIETE ANONYME AU CAPITAL ET PERSONNEL VARIABLE" => "5520", + "SOCIETE ANONYME CAPITAL FIXE COOP. DE BANQUE" => "5192", + "SOCIETE ANONYME COOPERATIVE ARTISANALE" => "5553", + "SOCIETE ANONYME COOPERATIVE DE BANQUE POPULAIRE" => "5192", + "SOCIETE ANONYME COOPERATIVE DE CONSOMMATION A CONSEIL D'ADMINISTRATION" => "5551", + "SOCIETE ANONYME COOPERATIVE DE PRODUCTION D'HLM" => "5547", + "SOCIETE ANONYME COOPERATIVE MARITIME A CAPITAL VARIABLE" => "5554", + "SOCIETE ANONYME D HLM" => "5646", + "SOCIETE ANONYME D'ECONOMIE MIXTE A CONSEIL D'ADMINISTRATION" => "5515", + "SOCIETE ANONYME D'ECONOMIE MIXTE LOCALE" => "5515", + "SOCIETE ANONYME D'ECONOMIE MIXTE" => "5515", + "SOCIETE ANONYME D'H.L.M." => "5646", + "SOCIETE ANONYME D\'ECONOMIE MIXTE" => "5515", + "SOCIETE ANONYME" => "5699", + "SOCIETE CIVILE EN CONSTRUCTION VENTE (LOI DE 1971) TITRE1" => "6541", + "SOCIETE CIVILE A CAPITAL VARIABLE" => "6599", + "SOCIETE CIVILE AGRICOLE" => "6597", + "SOCIETE CIVILE CONSTRUCTION VENTE" => "6541", + "SOCIETE CIVILE COOPERATIVE DE CONSTRUCTION" => "6543", + "SOCIETE CIVILE D ATTRIBUTION" => "6542", + "SOCIETE CIVILE D EXPLOITATION AGRICOLE A RESPONSABILITE LIMITEE" => "6597", + "SOCIETE CIVILE D EXPLOITATION AGRICOLE" => "6597", + "SOCIETE CIVILE D EXPLOITATION VITICOLE" => "6597", + "SOCIETE CIVILE D'ATTRIBUTION" => "6542", + "SOCIETE CIVILE D'EXPLOITATION AGRICOLE" => "6597", + "SOCIETE CIVILE DE CONSTRUCTION VENTE (LOI DE 1971) TITRE 1" => "6541", + "SOCIETE CIVILE DE CONSTRUCTION VENTE" => "6541", + "SOCIETE CIVILE DE CONSTRUCTION" => "6543", + "SOCIETE CIVILE DE CONTRUCTION/VENTE" => "6541", + "SOCIETE CIVILE DE MOYENS" => "6589", + "SOCIETE CIVILE DE PERSONNES" => "6599", + "SOCIETE CIVILE DE PLACEMENT IMMOBILIER" => "6521", + "SOCIETE CIVILE DE PORTEFEUILLE" => "6599", + "SOCIETE CIVILE D\'EXPLOITATION AGRICOLE" => "6597", + "SOCIETE CIVILE IMMOBILIERE A CAPITAL VARIABLE" => "6540", + "SOCIETE CIVILE IMMOBILIERE D ATTRIBUTION" => "6542", + "SOCIETE CIVILE IMMOBILIERE DE CONSTRUCTION / VENTE" => "6541", + "SOCIETE CIVILE IMMOBILIERE DE CONSTRUCTION VENTE" => "6541", + "SOCIETE CIVILE IMMOBILIERE" => "6540", + "SOCIETE CIVILE PARTICULIERE" => "6599", + "SOCIETE CIVILE PROFESSIONNELLE D'ARCHITECTES" => "6578", + "SOCIETE CIVILE PROFESSIONNELLE D'AVOCATS" => "6561", + "SOCIETE CIVILE PROFESSIONNELLE D'HUISSIERS DE JUSTICE" => "6564", + "SOCIETE CIVILE PROFESSIONNELLE D'HUISSIERS" => "6564", + "SOCIETE CIVILE PROFESSIONNELLE DE CHIRURGIEN-DENTISTES" => "6572", + "SOCIETE CIVILE PROFESSIONNELLE DE COMMISSAIRES-PRISEURS" => "6566", + "SOCIETE CIVILE PROFESSIONNELLE DE MANDATAIRES LIQUIDATEURS" => "6585", + "SOCIETE CIVILE PROFESSIONNELLE DE MEDECINS" => "6571", + "SOCIETE CIVILE PROFESSIONNELLE DE NOTAIRES" => "6565", + "SOCIETE CIVILE PROFESSIONNELLE D\'AVOCATS" => "6561", + "SOCIETE CIVILE PROFESSIONNELLE" => "6585", + "SOCIETE CIVILE" => "6599", + "SOCIETE COOPERATIVE A CAPITAL VARIABLE EN LA FORME SARL" => "5460", + "SOCIETE COOPERATIVE A CAPITAL VARIABLE" => "5460", + "SOCIETE COOPERATIVE A RESPONSABILITE LIMITEE A CAPITAL VARIABLE" => "5458", + "SOCIETE COOPERATIVE AGRICOLE A CAPITAL VARIABLE" => "6317", + "SOCIETE COOPERATIVE AGRICOLE" => "6317", + "SOCIETE COOPERATIVE ANONYME D INTERET COLLECTIF AGRICOLE" => "5632", + "SOCIETE COOPERATIVE ARTISANALE A RESP. LIMITEE ET A CAPITAL VARIABLE" => "5453", + "SOCIETE COOPERATIVE ARTISANALE A RESPONSABILITE LIMITEE" => "5453", + "SOCIETE COOPERATIVE D INTERET COLLECTIF" => "5460", + "SOCIETE COOPERATIVE D'ARTISAN EN ARL A CAPITAL VARIABLE" => "5453", + "SOCIETE COOPERATIVE DE BANQUE POPULAIRE A CAPITAL VARIABLE" => "5192", + "SOCIETE COOPERATIVE DE CONSOMMATION ANONYME A CAPITAL VARIABLE" => "5551", + "SOCIETE COOPERATIVE DE CONSOMMATION ANONYME" => "5551", + "SOCIETE COOPERATIVE DE CREDIT A CAPITAL VARIABLE" => "5558", + "SOCIETE COOPERATIVE DE PRODUCTION (SARL)" => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION A FORME SARL." => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION A RESPONSABILITE LIMITEE A CAPITAL VARIABLE" => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION A RESPONSABILITE LIMITEE" => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION ANONYME A CAPITAL VARIABLE" => "5558", + "SOCIETE COOPERATIVE DE PRODUCTION EN A.R.L A CAPITAL VARIABLE" => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION EN A.R.L. A CAPITAL VARIABLE" => "5458", + "SOCIETE COOPERATIVE DE PRODUCTION" => "5460", + "SOCIETE COOPERATIVE DE TRAVAILLEURS (SARL)" => "5460", + "SOCIETE COOPERATIVE DE TRAVAILLEURS A FORME SARL" => "5460", + "SOCIETE COOPERATIVE EXPLOITEE SOUS FORME DE SARL" => "6317", + "SOCIETE COOPERATIVE INTERET COLLECTIF AGRICOLE S.A." => "6317", + "SOCIETE COOPERATIVE MARITIME" => "5554", + "SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION ANONYME A CAPITAL VARIABLE" => "5558", + "SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION ANONYME" => "5558", + "SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION EN LA FORME SA" => "5558", + "SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION EN LA FORME SARL" => "5458", + "SOCIETE COOPERATIVE OUVRIERE DE PRODUCTION" => "5458", + "SOCIETE COOPERATIVE" => "5460", + "SOCIETE D ASSURANCE" => "6411", + "SOCIETE D EXERCICE LIBERAL A RESPONSABILITE LIMITEE" => "5485", + "SOCIETE D EXERCICE LIBERAL PAR ACTIONS SIMPLIFIEES" => "5785", + "SOCIETE D EXPLOITATION AGRICOLE A RESPONSABILITE LIMITEE" => "6598", + "SOCIETE D INTERET COLLECTIF AGRICOLE ARL" => "5432", + "SOCIETE D INTERET COLLECTIF AGRICOLE" => "5432", + "SOCIETE D'ACTIONS SIMPLIFIEE A CAPITAL VARIABLE" => "5710", + "SOCIETE D'ECONOMIE MIXTE A CONSEIL D'ADMINISTRATION" => "5515", + "SOCIETE D'ECONOMIE MIXTE A DIRECTOIRE" => "5615", + "SOCIETE D'EXERCICE LIBER. FORME ANONYME" => "5585", + "SOCIETE D'EXERCICE LIBERAL A FORME ANONYME _ SELAFA" => "5585", + "SOCIETE D'EXERCICE LIBERAL A FORME ANONYME" => "5585", + "SOCIETE D'EXERCICE LIBERAL A RESPONSABILITE LIMITEE" => "5485", + "SOCIETE D'EXERCICE LIBERAL PAR ACTIONS SIMPLIFIEE - SELAS" => "5785", + "SOCIETE D'EXERCICE LIBERAL PAR ACTIONS SIMPLIFIEE" => "5785", + "SOCIETE D'EXERCICE LIBERAL PAR ACTIONS SIMPLIFIEES (SELAS)" => "5785", + "SOCIETE D'INTERET COLLECTIF AGRICOLE" => "5632", + "SOCIETE D'INVESTISSEMENT A CAPITAL VARIABLE" => "5520", + "SOCIETE DE DROIT ANGLAIS" => "3120", + "SOCIETE DE DROIT ETRANGER" => "3290", + "SOCIETE DE PLACEMENT A PREPONDERANCE IMMOBILIERE A CAPITAL VARIABLE" => "6521", + "SOCIETE D\'ECONOMIE MIXTE" => "5415", + "SOCIETE D\'EXERCICE LIBERAL A FORME ANONYME - SELAFA" => "5585", + "SOCIETE D\'EXERCICE LIBERAL A RESPONSABILITE LIMITEE - SELARL" => "5485", + "SOCIETE D\'EXERCICE LIBERAL A RESPONSABILITE LIMITEE UNIPERSONNELLE" => "5485", + "SOCIETE D\'EXERCICE LIBERAL A RESPONSABILITE LIMITEE" => "5485", + "SOCIETE D\'EXERCICE LIBERAL PAR ACTIONS SIMPLIFIEE" => "0", + "SOCIETE D\'EXPLOITATION AGRICOLE A RESPONSABILITE LIMITEE" => "6598", + "SOCIETE EN COMMANDITE PAR ACTIONS COOPERATIVE" => "5309", + "SOCIETE EN COMMANDITE PAR ACTIONS" => "5308", + "SOCIETE EN COMMANDITE SIMPLE A CAPITAL VARIABLE" => "5306", + "SOCIETE EN COMMANDITE SIMPLE COOPERATIVE" => "5307", + "SOCIETE EN COMMANDITE SIMPLE" => "5306", + "SOCIETE EN COMMANDITE" => "5306", + "SOCIETE EN NOM COLLECTIF - SNC" => "5202", + "SOCIETE EN NOM COLLECTIF" => "5202", + "SOCIETE ETRANGERE IMMATRICULEE AU R.C.S." => "3120", + "SOCIETE ETRANGERE IMMATRICULEE AU RCS" => "3120", + "SOCIETE PAR ACTION SIMPLIFIEE" => "5710", + "SOCIETE PAR ACTIONS SIMPLIFIEE - SAS" => "5710", + "SOCIETE PAR ACTIONS SIMPLIFIEE A ASSOCIE UNIQUE ET CAPITAL VARIABLE" => "5720", + "SOCIETE PAR ACTIONS SIMPLIFIEE A ASSOCIE UNIQUE" => "5720", + "SOCIETE PAR ACTIONS SIMPLIFIEE A CAPITAL VARIABLE" => "5710", + "SOCIETE PAR ACTIONS SIMPLIFIEE A DIRECTOIRE ET CONSEIL DE SURVEILLANCE" => "5710", + "SOCIETE PAR ACTIONS SIMPLIFIEE UNIPERSONNELLE - SASU" => "5720", + "SOCIETE PAR ACTIONS SIMPLIFIEE UNIPERSONNELLE" => "5720", + "SOCIETE PAR ACTIONS SIMPLIFIEE" => "5710", + "SOCIETE PAR ACTIONS" => "5710", + "SOCIETE" => "0", + "SOCITE CIVILE COOPERATIVE DE CREDIT" => "6560", + "STE COMMANDITE PAR ACTIONS MBRE DE LA CEOU PARTIE ACCORD SUR L\'ESPACE ECO. EUR." => "3290", + "STE COOP DE BANQUE A CAPITAL VAR." => "5192", + "STE COOP DE CREDIT A CAPITAL VARIABLE ET A RESPONSABILITE STATUTAIREMENT LIMITEE" => "5458", + "STE COOPERATIVE ARTISANALE RESP.LIM.CAPITAL VARIABLE" => "5453", + "STE COOPERATIVE DE BANQUE POPULAIRE" => "5192", + "STE D'EXERCICE LIBERAL A RESPONSABILITE LIMITEE UNIPERSONNEL" => "5485", + "STE D'INVESTISSEMENTS A CAPITAL VARIABLE A CONSEIL -SICAV-" => "5520", + "STE DE PARTICIPATION FINANCIERE DE PROFESSION LIBERALE A RESPONSABILITE LIMITEE" => "2385", + "STE EN COMMANDITE SIMPLE" => "5306", + "UNION DE COOPERATIVES AGRICOLES" => "6318", + "UNION DE SOCIETES COOPERATIVES A DIRECTOIRE" => "5659", + "UNIPERSONNELLE A RESPONSAB LIMITEE" => "5498", + "VILLE DE" => "7210", + ); + + require_once 'i18n/cleanchar.php'; + + $search = strtoupper(cleanutf8($txt)); + + foreach ( $list as $item => $code ) { + if ( $search == strtoupper(cleanutf8($item)) ) { + return $code; + break; + } + } + + return 0; + } + + /** + * Fonction curl evolué + * @param string $url + * @param string $curl_data + * @param string $override + * @return multitype:mixed + */ + protected function getPage($url, $curl_data = '', $override = null) + { + global $ckfile; + + //$user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'; + //$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'; + $user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)'; + + $options = array( + CURLOPT_RETURNTRANSFER => true, // return web page + CURLOPT_HEADER => false, // don't return headers + CURLOPT_FOLLOWLOCATION => false, // follow redirects + CURLOPT_ENCODING => "", // handle all encodings + CURLOPT_USERAGENT => $user_agent, // who am i + CURLOPT_AUTOREFERER => true, // set referer on redirect + CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect + CURLOPT_TIMEOUT => 120, // timeout on response + CURLOPT_MAXREDIRS => 10, // stop after 10 redirects + //CURLOPT_POST => $post, // i am sending post data + //CURLOPT_POSTFIELDS => $fields, // this are my post vars + CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl + CURLOPT_SSL_VERIFYPEER => false, // + CURLOPT_VERBOSE => $verbose , // + //CURLOPT_COOKIESESSION => true, + CURLOPT_COOKIEFILE => $ckfile, + CURLOPT_COOKIEJAR => $ckfile, // Stockage du cookie de session + ); + + $verbose = false; + $post = false; + $fields = ''; + if (is_array($curl_data) && count($curl_data)>0) { + foreach($curl_data as $key=>$value) { + $fields .= $key.'='.$value.'&'; + } + rtrim($fields,'&'); + $post = true; + } + + if ($post === true) { + $options = array( + CURLOPT_POST => $post, // i am sending post data + CURLOPT_POSTFIELDS => $fields, // this are my post vars + ) + $options; + } + + //Override define CURL option + if (is_array($override) && count($override)>0 ) { + $options = $override + $options; + } + + $ch = curl_init($url); + curl_setopt_array($ch,$options); + $content = curl_exec($ch); + $err = curl_errno($ch); + $errmsg = curl_error($ch) ; + $header = curl_getinfo($ch); + curl_close($ch); + + //Rewrite encoding to UTF-8 + //text/html; charset=ISO-8859-1 + //$encoding = $this->getPageHeader('text\/html; charset=', '', $header['content_type']); + //$encoding = 'ISO-8859-1'; + //$content = iconv($encoding, 'UTF-8//TRANSLIT', $content); + + // $header['errno'] = $err; + // $header['errmsg'] = $errmsg; + // $header['content'] = $content; + return array('header'=>$header, 'content'=>$content); + } + + /** + * Aspire les données du site Infogreffe + * @param string $siren + * @return stdClass|boolean + */ + public function getIdentiteFromInfogreffeWeb($siren) + { + $siteUrl = "https://www.infogreffe.fr"; + + //Define cookie file for storage + //@todo : Faire en sorte d'utiliser le cookie pendant un temps déterminé, ou nouvelle session à chaque fois + $ckfile = __DIR__.'/'.uniqid('cookie-'); + if (file_exists($ckfile)) unlink($ckfile); + + //Appel URL pour récupérer les premiers éléments + $url = $siteUrl . "/societes/"; + $result = $this->getPage($url); + + //Recherche + $url = $siteUrl . "/services/entreprise/rest/recherche/parPhrase?" . + "miseAuPanierVisible=true" . + "&nbIdRetournes=100" . + "&phrase=" . $siren . + "&surveillanceVisible=true"; + $result = $this->getPage($url, '', array( + CURLOPT_HTTPHEADER => array('Content-type: application/json')) + ); + $data = json_decode($result['content']); + + // Entreprise au RCS + if ( $data->entrepRCSStoreResponse->nbTotalResultats > 0 ) { + + $dataItem = $data->entrepRCSStoreResponse->items[0]; + + //Define structure from first response + $return = new stdClass(); + $return->siren = $dataItem->siren; + $return->siege = ($dataItem->typeEtab=='SIE') ? 1 : 0; + $return->denomination = $dataItem->libelleEntreprise->denomination; + $return->denominationEirl = $dataItem->libelleEntreprise->denominationEirl; + $return->enseigne = $dataItem->libelleEntreprise->enseigne; + $return->nomCommercial = $dataItem->libelleEntreprise->nomCommercial; + $return->sigle = $dataItem->libelleEntreprise->sigle; + $return->numeroDossier = $dataItem->numeroDossier; + $return->etablissementChrono = $dataItem->etablissementChrono; + $return->adresse = $dataItem->adresse->lignes[0]; + $return->adresse2 = $dataItem->adresse->lignes[1]; + $return->cp = $dataItem->adresse->codePostal; + $return->codeNAF = $dataItem->activite->codeNAF; + $return->libelleNAF = $dataItem->activite->libelleNAF; + $return->dateRadiation = $dataItem->dateRadiation; //=> Format AAAA-MM-JJ + $return->numGreffe = $dataItem->greffe->numero; + $return->libGreffe = $dataItem->greffe->nom; + + $page = $dataItem->siren . '-' . + str_replace(' ', '-', strtolower($dataItem->libelleEntreprise->denomination)) . '-' . + $dataItem->numeroDossier . $dataItem->etablissementChrono; + + $url = $siteUrl . "/societes/entreprise-societe/".$page.".html?afficherretour=false"; + $result = $this->getPage($url); + $data = $result['content']; + + //file_put_contents('test.html', $data); + + $doc = new DOMDocument(null, 'UTF-8'); + $doc->strictErrorChecking = false; + $doc->preserveWhiteSpace = false; + @$doc->loadHTML($data); + $xpath = new DOMXpath($doc); + //typeRCS : R.C.S. + $content = $xpath->query("//span[@class='ficheStatut']"); + if ($content->length>0) { + $return->typeRCS = $content->item(0)->nodeValue; + } + + //div class="tab-content" + $content = $xpath->query("//div[@class='tab-content']"); + if ($content->length>0) { + + //div class="identTitreValeur" + //

    Siège social

    75 AV DE LA GRANDE ARMEE

    75016 PARIS

    + $entries = $xpath->query("//div[@class='identTitreValeur']/p"); + foreach ($entries as $n) { + preg_match('/[A-Z\b\-]{1,}/', trim($n->nodeValue), $matches); + if (count($matches)>0) { + $return->ville = trim($matches[0]); + } + break; + } + + $entries = $xpath->query("//div[@datapath]"); + foreach ($entries as $n) { + $style = $n->getAttribute('style'); + $isDisplay = true; + if ( strpos($style, "display:none;") !== false ) { + $isDisplay = false; + } + + if( $isDisplay ) { + + $datatitle = $n->getAttribute('datapath'); + + //echo $datatitle . ':' . $n->nodeValue .PHP_EOL; + //echo $datatitle . PHP_EOL; + + switch($datatitle) { + // div datapath="entreprise.numSiret" + case 'entreprise.numSiret': + break; + // div datapath="entreprise.personneMorale.identification.sigle" + case 'entreprise.personneMorale.identification.sigle': + break; + // div datapath="nomCommercial" + case 'nomCommercial': + break; + // div datapath="enseigne" + case 'enseigne': + break; + // div datapath="entreprise.personnePhysique.dap" + case 'entreprise.personnePhysique.dap': + break; + // div datapath="entreprise.personneMorale.identification.formeJuridique.libelle" + case 'entreprise.personneMorale.identification.formeJuridique.libelle': + $txt = str_replace('Forme juridique ', '',trim($n->nodeValue)); + list($codeCJ, $txtCJ) = explode(' : ', trim($txt)); + //echo "CJ : $codeCJ, $txtCJ".PHP_EOL; + + $cj = $this->getFJCodeFromLabel($txtCJ); + + $return->formeJuridique = $cj; + $return->formeJuridiqueLib = $txtCJ; + + break; + // div datapath="activite.codeNAF" + case 'activite.codeNAF': + break; + // div datapath="dateImmatriculationRegistre" + case 'dateImmatriculationRegistre': + preg_match('/Immatriculé le (.*)/Uis', $n->nodeValue ,$matches); + if (count($matches)>0) { + $classWDate = new WDate(); + $return->dateImmat = $classWDate->dateT('d/m/Y', 'Y-m-d', $matches[1]); + } + break; + // div datapath="dateRadiation" + case 'dateRadiation': + break; + // div datapath="infoTransfertSiege.dateTransfert" + case 'infoTransfertSiege.dateTransfert': + break; + // div datapath="entreprise.chiffresCles.colChiffresCles" => table id="chiffresCles" + // => Rechercher dans tableau Clôture, CA, Résultat, Effectif => 1ere ligne à dernière + case 'entreprise.chiffresCles.colChiffresCles': + //table id="chiffresCles" + $lignes = $xpath->query("table[@id='chiffresCles']/tbody/tr", $n); + if ($lignes->length>0) { + $i = 0; + foreach ($lignes as $ligne) { + $i++; + if ($i==1) continue; + // 31/12/2011 13 210 610 K€ 256 304 K€ + $c = $xpath->query("td", $ligne); + if ( $c->length == 4 ) { + //echo $ligne->nodeValue . PHP_EOL; + $classWDate = new WDate(); + $search = array( + chr(194), + ' ', + ' ', + '€', + 'K', + 'M', + '€', + ); + $replace = array( + '', + '', + '', + '', + '000', + '000000', + '', + ); + $return->BilanDateCloture = $classWDate->dateT('d/m/Y', 'Y-m-d', str_replace($search, $replace, trim($c->item(0)->nodeValue))); + $return->BilanCA = preg_replace('#[^[:alnum:]]#','',str_replace($search, $replace, trim($c->item(1)->nodeValue))); + $return->BilanResultat = preg_replace('#[^[:alnum:]]#','',str_replace($search, $replace, trim($c->item(2)->nodeValue))); + $return->BilanEffectif = preg_replace('#[^[:alnum:]]#','',str_replace($search, $replace, trim($c->item(3)->nodeValue))); + break; + } + } + } + break; + } + + } + + } + + } + + $numRC = substr($return->numeroDossier, strlen($return->numGreffe)); + if (strlen($numRC)>4 && strlen($numRC)<10) { + if ($numRC<>'' && substr($numRC,0,2)*1>=30) + $numRC2='19'.$numRC; + elseif ($numRC<>'' && substr($numRC,0,2)*1<30) + $numRC2='20'.$numRC; + else + $numRC2=''; + } else + $numRC2=$numRC; + + /** Insertion en base de données **/ + $tabInsert = array( + 'siren' => $return->siren, + 'nom' => $return->denomination, + 'nomCommercial' => $return->nomCommercial, + 'adresse' => $return->adresse, + 'adresse2' => $return->adresse2, + 'cp' => $return->cp, + 'ville' => $return->ville, + 'enseigne' => $return->enseigne, + 'siege' => $return->siege, + 'fj' => $return->formeJuridique, + 'fjLib' => $return->formeJuridiqueLib, + 'naf' => $return->codeNAF, + 'nafLib' => $return->libelleNAF, + 'numGreffe' => $return->numGreffe, + 'typeRCS' => $return->typeRCS, + 'libGreffe' => $return->libGreffe, + 'numRC' => $numRC, + 'numRC2' => $numRC2, + 'dateCreation' => $return->dateImmat, + 'dateRadiation' => $return->dateRadiation, + 'dateCloture' => $return->BilanDateCloture, + 'ca' => $return->BilanCA, + 'res' => $return->BilanResultat, + 'eff' => $return->BilanDateEffectif, + ); + if (!$this->iDb->insert('greffes_identite', $tabInsert, true) ){ + // + } + + return $return; + } + + // Entreprise HORS RCS + elseif ( $data->entrepHorsRCSStoreResponse->nbTotalResultats > 0 ) { + + $dataItem = $data->entrepHorsRCSStoreResponse->items[0]; + + //Define structure from first response + $return = new stdClass(); + $return->siren = $dataItem->siren; + $return->siege = ($dataItem->typeEtab=='SIE') ? 1 : 0; + $return->denomination = $dataItem->libelleEntreprise->denomination; + $return->denominationEirl = $dataItem->libelleEntreprise->denominationEirl; + $return->enseigne = $dataItem->libelleEntreprise->enseigne; + $return->nomCommercial = $dataItem->libelleEntreprise->nomCommercial; + $return->sigle = $dataItem->libelleEntreprise->sigle; + $return->numeroDossier = $dataItem->numeroDossier; + $return->etablissementChrono = $dataItem->etablissementChrono; + $return->adresse = $dataItem->adresse->lignes[0]; + $return->adresse2 = $dataItem->adresse->lignes[1]; + $return->cp = $dataItem->adresse->codePostal; + $return->codeNAF = $dataItem->activite->codeNAF; + $return->libelleNAF = $dataItem->activite->libelleNAF; + $return->dateRadiation = $dataItem->dateRadiation; //=> Format AAAA-MM-JJ + $return->numGreffe = $dataItem->greffe->numero; + $return->libGreffe = $dataItem->greffe->nom; + + $return->typeRCS = 'non inscrit'; + + $page = $dataItem->siren . '-' . + str_replace(' ', '-', strtolower($dataItem->libelleEntreprise->denomination)) . '-' . + $dataItem->numeroDossier . $dataItem->etablissementChrono; + + $url = $siteUrl . "/societes/entreprise-societe/".$page.".html?afficherretour=false"; + $result = $this->getPage($url); + $data = $result['content']; + + //file_put_contents('test.html', $data); + + $doc = new DOMDocument(null, 'UTF-8'); + $doc->strictErrorChecking = false; + $doc->preserveWhiteSpace = false; + @$doc->loadHTML($data); + $xpath = new DOMXpath($doc); + + //div class="tab-content" + $content = $xpath->query("//div[@class='tab-content']"); + if ($content->length>0) { + + //div class="identTitreValeur" + $entries = $xpath->query("//div[@class='identTitreValeur']/p"); + foreach ($entries as $n) { + + $label = $xpath->query("span[@class='label']", $n); + + require_once 'i18n/cleanchar.php'; + switch ( strtoupper(cleanutf8( trim($label) )) ) { + case 'CATEGORIE JURIDIQUE :': + //Catégorie juridique + //

    Catégorie juridique : Artisan

    + $data = $xpath->query("span[@class='data']", $n); + + + + break; + case 'ADRESSE :': + //Adresse + //

    Adresse : BP 20004 190 AVENUE DE L EUROPE
    28230,  EPERNON
    Voir le plan

    + $data = $xpath->query("span[@class='data']", $n); + $return->ville = trim(substr($data->nodeValue, strpos($data->nodeValue, ','))); + break; + } + + } + + } + + $numRC = substr($return->numeroDossier, strlen($return->numGreffe)); + if (strlen($numRC)>4 && strlen($numRC)<10) { + if ($numRC<>'' && substr($numRC,0,2)*1>=30) + $numRC2='19'.$numRC; + elseif ($numRC<>'' && substr($numRC,0,2)*1<30) + $numRC2='20'.$numRC; + else + $numRC2=''; + } else + $numRC2=$numRC; + + /** Insertion en base de données **/ + $tabInsert = array( + 'siren' => $return->siren, + 'nom' => $return->denomination, + 'nomCommercial' => $return->nomCommercial, + 'adresse' => $return->adresse, + 'adresse2' => $return->adresse2, + 'cp' => $return->cp, + 'ville' => $return->ville, + 'enseigne' => $return->enseigne, + 'siege' => $return->siege, + 'fj' => $return->formeJuridique, + 'fjLib' => $return->formeJuridiqueLib, + 'naf' => $return->codeNAF, + 'nafLib' => $return->libelleNAF, + 'numGreffe' => $return->numGreffe, + 'typeRCS' => $return->typeRCS, + 'libGreffe' => $return->libGreffe, + 'numRC' => $numRC, + 'numRC2' => $numRC2, + 'dateCreation' => $return->dateImmat, + 'dateRadiation' => $return->dateRadiation, + 'dateCloture' => $return->BilanDateCloture, + 'ca' => $return->BilanCA, + 'res' => $return->BilanResultat, + 'eff' => $return->BilanDateEffectif, + ); + if (!$this->iDb->insert('greffes_identite', $tabInsert, true) ){ + // + } + + return $return; + + } else { + return false; + } + + //Remove cookie file + if (file_exists($ckfile)) unlink($ckfile); + } + + /** + * + * @param unknown $siren + * @param string $refresh + * @return boolean|multitype:number string unknown Ambigous Ambigous Ambigous Ambigous Ambigous + */ + function getIdentite($siren, $refresh=false) + { $res=$this->iDb->select('greffes_identite', 'id, siren, nom, nomCommercial, adresse, adresse2, cp, ville, enseigne, siege, fj, fjLib, naf, nafLib, numRC, numRC2, typeRCS, numGreffe, libGreffe, dateCreation, dateRadiation, dateCloture, ca, res, eff, dateInsert', "siren=$siren"); if (count($res)>0 && !$refresh) { $ent=$res[0]; @@ -1211,7 +2272,12 @@ class MGreffes { $dateRad=$ent['dateRadiation']; $dateCloture=$ent['dateCloture']; $dateInsert=$ent['dateInsert']; - } elseif (INFOGREFFE_DISPO_WEB) { // @todo : Pour désactiver Infogreffe + } + //Si pas dans la base, alors on va chercher chez infogreffe + elseif (INFOGREFFE_DISPO_WEB) + { + + // @todo : Pour désactiver Infogreffe $url='http://www.infogreffe.fr/infogreffe/index.jsp'; $page=getUrl($url, '', '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 5); $this->body=$page['body']; diff --git a/1.2/library/Metier/partenaires/classMLiens2.php b/1.2/library/Metier/partenaires/classMLiens2.php index 2014a615..a9e17ff7 100644 --- a/1.2/library/Metier/partenaires/classMLiens2.php +++ b/1.2/library/Metier/partenaires/classMLiens2.php @@ -24,6 +24,12 @@ class MLiens2 */ protected $findId = array(); + /** + * Coutry List ISO3 => Label + * @var array + */ + protected $country = null; + /** * Stop the process to looks for company group head * @var boolean @@ -92,7 +98,7 @@ class MLiens2 'dateEffetLien', 'dateInsert', 'dateUpdate')) ->where('idPar=?', $id) ->join(array('r'=>$this->_schema.'.liensRef'), 'l.idAct=r.id', - array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'civilite', 'nom', 'prenom', 'nom_usage', + array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'sigle', 'civilite', 'nom', 'prenom', 'nom_usage', 'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat', 'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie', 'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays', @@ -109,6 +115,9 @@ class MLiens2 } } + //Don't display deleted - anomaly + $sql->where('l.dateSuppr=?', '0000-00-00 00:00:00'); + $liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ); } catch (Zend_Db_Exception $e) { throw new Exception(__METHOD__ . ': ' . $e->getMessage()); @@ -148,7 +157,7 @@ class MLiens2 'dateEffetLien', 'dateInsert', 'dateUpdate')) ->where('idAct=?', $id) ->join(array('r'=>$this->_schema.'.liensRef'), 'l.idPar=r.id', - array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'civilite', 'nom', 'prenom', 'nom_usage', + array('LPAD(siren, 9, 000000000) AS siren','PpPm', 'RS', 'sigle', 'civilite', 'nom', 'prenom', 'nom_usage', 'naissance_date', 'naissance_dept_pays', 'naissance_lieu', 'nat', 'adresse_num', 'adresse_btq', 'adresse_codvoie', 'adresse_libvoie', 'adresse_comp', 'adresse_cp', 'adresse_ville', 'adresse_pays', @@ -165,6 +174,9 @@ class MLiens2 } } + //Don't display deleted - anomaly + $sql->where('l.dateSuppr=?', '0000-00-00 00:00:00'); + $liens = $this->db->fetchAll($sql, null, Zend_Db::FETCH_OBJ); } catch (Zend_Db_Exception $e) { throw new Exception(__METHOD__ . ': ' . $e->getMessage()); @@ -223,9 +235,12 @@ class MLiens2 /** * Retourne la maison mère * @param int $id + * Id de la fiche de départ + * @param int $detention + * Niveau de détention (Une filiale est une entreprise détenue à plus de 50% par une autre entreprise) * @return int */ - public function getHead($id = null) + public function getHead($id = null, $detention = 0) { if ( null === $id ) { $id = $this->idRef; @@ -256,15 +271,15 @@ class MLiens2 } //PDetention>50 elseif ( $item->PDetention > 50 && $item->idAct > 1000 ) { - return $this->getHead($item->idAct); + return $this->getHead($item->idAct, $detention); } //MajMin=+ - elseif ( $item->MajMin == '+' && $item->idAct > 1000 ) { - return $this->getHead($item->idAct); + elseif ( $item->PDetention > $detention && $item->MajMin == '+' && $item->idAct > 1000 ) { + return $this->getHead($item->idAct, $detention); } //-- - elseif ( $item->idAct > 1000 ) { - return $this->getHead($item->idAct); + elseif ( $item->PDetention > $detention && $item->idAct > 1000 ) { + return $this->getHead($item->idAct, $detention); } } } @@ -285,7 +300,7 @@ class MLiens2 $refM = new Application_Model_JoLiensRef(); $row = $refM->find($id); - if (null !== row) { + if (null !== $row) { return $row->current(); } } @@ -303,19 +318,16 @@ class MLiens2 if ( $this->stopAtFirstIsin === true ) { $id = $this->idRef; $identity = $this->getIdentity($this->idRef); - if ( !empty($isin) ) { + if ( !empty($identity->isin) ) { $itemWithIsin = true; } } if ( $itemWithIsin !== true ) { - //Récupération de la maison mère - $id = $this->getHead(); - + $id = $this->getHead(null, 50); //Informations de la maison mère $identity = $this->getIdentity($id); - } $this->findId = array(); @@ -326,13 +338,22 @@ class MLiens2 $nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom; } + if ( $this->country === null ) { + $this->country = $this->getCountry(); + } + + $pays = $identity->adresse_pays; + if ( array_key_exists($identity->adresse_pays, $this->country) ) { + $pays = $this->country[$identity->adresse_pays]; + } + //Retour $tabRet = array ( 'id' => $identity->id, 'name' => $nom, 'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT), 'pmin' => $item->PDetention, - 'pays' => $identity->adresse_pays, + 'pays' => $pays, 'children' => $this->getTreeRecursive($identity->id, $pctMin, 1, $nbNiveaux), ); @@ -364,12 +385,21 @@ class MLiens2 $nom = $identity->civilite.' '.$identity->nom.' '.$identity->prenom; } + if ($this->country === null) { + $this->country = $this->getCountry(); + } + + $pays = $identity->adresse_pays; + if ( array_key_exists($identity->adresse_pays, $this->country) ) { + $pays = $this->country[$identity->adresse_pays]; + } + $data = array ( 'id' => $identity->id, 'name' => $nom, 'siren' => str_pad($identity->siren, 9, '0', STR_PAD_LEFT), 'pmin' => $item->PDetention, - 'pays' => $identity->adresse_pays, + 'pays' => $pays, 'children' => array(), ); //Pour éviter d'avoir des boucles infinis @@ -481,4 +511,24 @@ class MLiens2 return false; } + /** + * Get all countries + */ + protected function getCountry() + { + $countryM = new Application_Model_JoTabPays(); + $sql = $countryM->select() + ->from($countryM, array('codPays3', 'libPays')) + ->where('codPays3 IS NOT NULL'); + $rows = $countryM->fetchAll($sql); + if ( $rows !== null ) { + $data = array(); + foreach($rows as $item) { + $data[$item->codPays3] = $item->libPays; + } + return $data; + } + + return false; + } } \ No newline at end of file diff --git a/1.2/library/Metier/partenaires/classMMap.php b/1.2/library/Metier/partenaires/classMMap.php index 2fbf5722..00fc55e9 100644 --- a/1.2/library/Metier/partenaires/classMMap.php +++ b/1.2/library/Metier/partenaires/classMMap.php @@ -1,4 +1,4 @@ -0 ) return floor($dec); - else + else return ceil($dec); } function dec2dms($dec) { $d = supprDecimales($dec); $m = supprDecimales(($dec - $d) * 60); - $s = abs(round(((($dec - $d) * 60) - $m) * 60)); + $s = abs(round(((($dec - $d) * 60) - $m) * 60)); $m = abs($m); return $d.'°'.$m."'".$s.'"'; } @@ -34,17 +34,17 @@ function ALG0001($phi,$e) { /** Calcul de la latitude à partir de la latitude isométrique **/ function ALG0002($L,$e,$epsilon) { - $phi[0] = 2 * atan(exp($L)) - (pi()/2); + $phi[0] = 2 * atan(exp($L)) - (pi()/2); - $i=0; + $i=0; do { - $i++; - $temp = ( 1 + ( $e * sin( $phi[$i-1] ) ) ) / ( 1 - ( $e * sin( $phi[$i-1] ) ) ); - $phi[$i] = 2 * atan ( pow ($temp, ($e/2)) * exp ($L) ) - pi()/2; + $i++; + $temp = ( 1 + ( $e * sin( $phi[$i-1] ) ) ) / ( 1 - ( $e * sin( $phi[$i-1] ) ) ); + $phi[$i] = 2 * atan ( pow ($temp, ($e/2)) * exp ($L) ) - pi()/2; } - while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon); + while (abs($phi[$i] - $phi[$i - 1]) >= $epsilon); - return $phi[$i]; + return $phi[$i]; } /** Transformation de coordonnées en projection conique conforme de Lambert, en coordonnées géographiques @@ -54,7 +54,7 @@ function ALG0002($L,$e,$epsilon) { ** @param double $c Constante de la projection ** @param double $Xs Coordonnée Xs en projection du pôle ** @param double $Ys Coordonnée Ys en projection du pôle - ** @param double $lambdac Longitude de l'origine par rapport au méridien origine + ** @param double $lambdac Longitude de l'origine par rapport au méridien origine ** @param double $e Première excentricité de l'ellipsoïde ** @param double $epsilon Tolérance de convergence ** @return array lambda Longitude par rapport au méridien origine @@ -77,7 +77,7 @@ function ALG0004($X,$Y,$n,$c,$Xs,$Ys,$lambdac,$e,$epsilon) { } /** Transformation des coordonnées géographiques ellipsoïdales en coordonnées cartésiennes - ** + ** **/ function ALG0009($lambda,$phi,$he,$a,$e) { $N = ALG0021($phi,$a,$e); @@ -135,11 +135,10 @@ function ALG0012($X,$Y,$Z,$a,$e,$epsilon) { */ function ALG0013($Tx,$Ty,$Tz,$D,$Rx,$Ry,$Rz,$U) { $V=array(); - $V['X'] = $Tx + $U['X'] * (1 + $D) + $U['Z'] * $Ry - $U['Y'] * $Rz; - $V['Y'] = $Ty + $U['Y'] * (1 + $D) + $U['X'] * $Rz - $U['Z'] * $Rx; - $V['Z'] = $Tz + $U['Z'] * (1 + $D) + $U['Y'] * $Rx - $U['X'] * $Ry; - - return $V; + $V['X'] = $Tx + $U['X'] * (1 + $D) + $U['Z'] * $Ry - $U['Y'] * $Rz; + $V['Y'] = $Ty + $U['Y'] * (1 + $D) + $U['X'] * $Rz - $U['Z'] * $Rx; + $V['Z'] = $Tz + $U['Z'] * (1 + $D) + $U['Y'] * $Rx - $U['X'] * $Ry; + return $V; } /** Détermination des paramètres de calcul d'une projection Lambert conique @@ -166,24 +165,23 @@ function ALG0019($lambda0,$phi0,$k0,$X0,$Y0,$a,$e) { /** Calcul de la grande normale de l'ellipsoïde ** @param double $phi Latitude - ** @param double $a Demi-grand axe de l'ellipsoïde + ** @param double $a Demi-grand axe de l'ellipsoïde ** @param double $e Première excentricité de l'ellipsoïde ** @return double **/ function ALG0021($phi,$a,$e) { - $N = $a/sqrt( 1 - $e * $e * sin($phi) * sin($phi) ); - return $N; - + $N = $a/sqrt( 1 - $e * $e * sin($phi) * sin($phi) ); + return $N; } /** Calcul des constantes d'une projection Lambert conique conforme dans le cas sécant - ** @param double $lambda0 Longitude origine en radian par rapport au méridien origine - ** @param double $phi0 Latitude origine + ** @param double $lambda0 Longitude origine en radian par rapport au méridien origine + ** @param double $phi0 Latitude origine ** @param double $X0 Coordonnée X en projection du point origine ** @param double $Y0 Coordonnée Y en projection du point origine - ** @param double $phi1 Latitude en radian du 1er parallèle automécoïque + ** @param double $phi1 Latitude en radian du 1er parallèle automécoïque ** @param double $phi2 Latitude en radian du 2ème parallèle automécoïque - ** @param double $a Demi-grand axe de l'ellipsoïde + ** @param double $a Demi-grand axe de l'ellipsoïde ** @param double $e Première excentricité de l'ellipsoïde ** @return array n, C, lambdac, Xs, Ys **/ @@ -196,8 +194,8 @@ function ALG0054($lambda0,$phi0,$X0,$Y0,$phi1,$phi2,$a,$e) { $Xs = $X0; $Ys = $Y0; } else { - $Xs = $X0; - $Ys = $Y0 + $C * exp(-1 * $n * ALG0001($phi0,$e)); + $Xs = $X0; + $Ys = $Y0 + $C * exp(-1 * $n * ALG0001($phi0,$e)); } $tab=array( 'e' => $e, 'n' => $n, @@ -206,7 +204,6 @@ function ALG0054($lambda0,$phi0,$X0,$Y0,$phi1,$phi2,$a,$e) { 'Xs'=> $Xs, 'Ys'=> $Ys); return $tab; - } function Lambert2WGS84($X,$Y,$orig='L93') { @@ -222,7 +219,7 @@ function Lambert2WGS84($X,$Y,$orig='L93') { $Tz = +320; $D = 0; $Rx = $Ry = $Rz = 0; - + $orig=strtoupper($orig); switch ($orig) { case 'LI': @@ -230,13 +227,13 @@ function Lambert2WGS84($X,$Y,$orig='L93') { $c = 11603796.98; $Xs = 600000; $Ys = 5657616.674; - break; - case 'LII': - case 'LIIE': - case 'L2E': - case 'L2': $n = 0.7289686274; - $c = 11745793.39; - $Xs = 600000; + break; + case 'LII': + case 'LIIE': + case 'L2E': + case 'L2': $n = 0.7289686274; + $c = 11745793.39; + $Xs = 600000; if ($orig=='L2E' || $orig=='LIIE') $Ys = 8199695.768; else $Ys = 6199695.768; @@ -356,7 +353,7 @@ function geos2lambert($latitude,$longitude) { /** Conversion WGS84 en Lambert93 ** NTG_71.pdf - ** http://www.ign.fr/affiche_rubrique.asp?rbr_id=1700&lng_id=FR + ** http://www.ign.fr/affiche_rubrique.asp?rbr_id=1700&lng_id=FR **/ function geos2lambert93($latitude,$longitude) { @@ -369,38 +366,38 @@ function geos2lambert93($latitude,$longitude) { $phi0=deg2rad(46.5); // latitude d'origine en radian $phi1=deg2rad(44); // 1er parallele automécoïque $phi2=deg2rad(49); // 2eme parallele automécoïque - + $x0=700000; //coordonnées à l'origine $y0=6600000; //coordonnées à l'origine - + // coordonnées du point à traduire $phi=deg2rad($latitude); $l=deg2rad($longitude); - + // calcul des grandes normales $gN1=$a/sqrt(1-$e*$e*sin($phi1)*sin($phi1)); $gN2=$a/sqrt(1-$e*$e*sin($phi2)*sin($phi2)); - + //calculs de slatitudes isométriques $gl1=log(tan(pi()/4+$phi1/2)*pow((1-$e*sin($phi1))/(1+$e*sin($phi1)),$e/2)); $gl2=log(tan(pi()/4+$phi2/2)*pow((1-$e*sin($phi2))/(1+$e*sin($phi2)),$e/2)); $gl0=log(tan(pi()/4+$phi0/2)*pow((1-$e*sin($phi0))/(1+$e*sin($phi0)),$e/2)); $gl=log(tan(pi()/4+$phi/2)*pow((1-$e*sin($phi))/(1+$e*sin($phi)),$e/2)); - + //calcul de l'exposant de la projection $n=(log(($gN2*cos($phi2))/($gN1*cos($phi1))))/($gl1-$gl2);//ok - + //calcul de la constante de projection $c=(($gN1*cos($phi1))/$n)*exp($n*$gl1);//ok - + //calcul des coordonnées $ys=$y0+$c*exp(-1*$n*$gl0); - + //calcul des coordonnées lambert $x93=$x0+$c*exp(-1*$n*$gl)*sin($n*($l-$lc)); $y93=$ys-$c*exp(-1*$n*$gl)*cos($n*($l-$lc)); - - return array("x_93"=>$x93,"y_93"=>$y93); + + return array("x_93"=>$x93,"y_93"=>$y93); } @@ -413,14 +410,14 @@ print_r(geos2lambert(48.838245134184 ,2.2227849815878)); **/ /** The point-in-polygon algorythm allows you to programmatically check if a particular point is inside a polygon or outside of it. A common way to tackle the problem is to count how many times a line drawn from the point (in any direction) intersects with the polygon boundary. If they intersect an even number of times, then the point is outside. - I used that approach in this PHP code, which doesn't contain detailed comments yet. A few people asked if I could post it anyway, so there it is... I'll try to add some more comment as soon as I have some spare time. + I used that approach in this PHP code, which doesn't contain detailed comments yet. A few people asked if I could post it anyway, so there it is... I'll try to add some more comment as soon as I have some spare time. - The returned values are: - "vertex" if the point sits exactly on a vertex AND you left true as the value for $pointOnVertex. - "boundary" if the point sits on the boundary. If $pointOnVertex is false, then "boundary" is also returned if the point is on a vertex. - "inside" if the point is inside the polygon. - "outside" if, you guessed it, the point is outside of the polygon. - */ + The returned values are: + "vertex" if the point sits exactly on a vertex AND you left true as the value for $pointOnVertex. + "boundary" if the point sits on the boundary. If $pointOnVertex is false, then "boundary" is also returned if the point is on a vertex. + "inside" if the point is inside the polygon. + "outside" if, you guessed it, the point is outside of the polygon. +*/ class pointLocation { var $pointOnVertex = true; // Check if the point sits exactly on one of the vertices @@ -437,8 +434,8 @@ class pointLocation { foreach ($polygon as $vertex) { $vertices[] = $this->pointStringToCoordinates($vertex); } - //print_r($vertices); - //die(); +//print_r($vertices); +//die(); // Check if the point sits exactly on a vertex if ($this->pointOnVertex == true && $this->pointOnVertex($point, $vertices) == true) { return "vertex"; @@ -499,12 +496,13 @@ class MMap { private $header = ''; private $cookie = ''; private $codeRetour = 0; - private $codeRetourG = 0; // Code retour de l'api Google - private $codeRetourY = 0; // Code retour de l'api Yahoo - private $codeRetourM = 0; // Code retour de l'api Mappy - + public $codeRetourG = 0; // Code retour de l'api Google + public $codeRetourY = 0; // Code retour de l'api Yahoo + public $codeRetourM = 0; // Code retour de l'api Mappy + public $codeRetourC = 0; // Code retour de l'api Cloudmade + public $geocodeur=''; - + public $latitudeDec= 0; // Latitude en Décimal public $latitudeDeg= 0; // Latitude en Dégrés public $longitudeDec= 0; // Longitude en Décimal @@ -512,7 +510,7 @@ class MMap { public $altitude = NULL; // Altitude en mètres public $l93x = NULL; // Lambert 93, coordonnée X public $l93y = NULL; // Lambert 93, coordonnée Y - + public $precision = 0; public $adresseValidee=''; public $enCache=false; @@ -520,6 +518,7 @@ class MMap { private $apiKeyG='ABQIAAAAuKBtUyFonYJBl1fqfc78tRQvADPcxwXf3Q2QIE-M32vuSkrxiBRLUHDB_YSLeTscTDeWRKM_wILaaw'; // private $apiKey='ABQIAAAAuKBtUyFonYJBl1fqfc78tRT4Qe_2x2fax4Crd4sBzQI-tDkl3BRm2l2feTV5Lnx0Ah-aTIlwHtglpA'; private $apiKeyY='klII0gzV34Ho2TCsN3XiXeh4No033AifxMeDXfFXj8TDCXO3WAtOLj9c74VsV45HcII-'; + private $apiKeyC='ae5216123e414fcd84b8ca9a0f43a68c'; function __construct($accesDist=true) {// $adresse, $cp, $ville, $pays='France') { $this->accesDist=$accesDist; @@ -529,20 +528,20 @@ class MMap { http://platform.beta.mapquest.com/geocoding/v1/address?key=YOUR_KEY_HERE&location=Lancaster,PA&callback=renderGeocode http://platform.beta.mapquest.com/geocoding/v1/address?key=YOUR_KEY_HERE&callback=renderOptions&inFormat=kvp&outFormat=json&location=77 rue lost al lann, 29000 quimper,france -Client ID: 83955 +Client ID: 83955 Email Address: buzuk77@aim.com -Registry Password: tU2cA4qV -Forums User Name: -JS/AS3 Key: Fmjtd%7Clu61nuuzlu%2Cr0%3Do5-5a1sd +Registry Password: tU2cA4qV +Forums User Name: +JS/AS3 Key: Fmjtd%7Clu61nuuzlu%2Cr0%3Do5-5a1sd */ /* GeoCodingHandler.ashx?addr= API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 -*/ +*/ public function geoCodeAdrCpVilleM($adresse,$cp,$ville,$pays='') { - + if ($pays=='') $pays='France'; if (preg_match('/^([0-9]{1,4} )(.*)$/', $adresse, $matches)) { $adresseVoie=trim($matches[2]); @@ -552,12 +551,13 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 $adresseNum=''; } $url='http://axe.mappy.com/services/loc/get.aspx?countryName='.urlencode($pays).'&townName='.urlencode($ville).'&wayName='.urlencode($adresseVoie).'&number='.urlencode($adresseNum).'&namedPlaceSearch=0&interactive=1&auth=maiaTest&format=json'; - + $page=getUrl($url, '', '', '', false, '', '', 3); - + $res=json_decode($page['body']); $result=$res->geocode->answer; - //print_r($result);die(); + //print_r($page); + //print_r($result);die($url); //$this->codeRetourM= switch ($result->geocode_level->code) { @@ -568,9 +568,9 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 case 4: $this->precision=8; break; // Road element level geocoding default: die('Precisions Inconnue : "'.$result->geocode_level->code.'"='.$result->geocode_level->label.EOL.$page['body']); break; } - + $this->adresseValidee=@preg_replace('/ +/', ' ', strtoupper(str_replace(''', "'", trim(htmlspecialchars_decode($result->road_element->number.' '.$result->way->name,ENT_QUOTES))))); - + $this->codeRetourM=@$result->global_score; /* $result->postal_code->postal_code @@ -581,11 +581,11 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 $result->town->language] => FRE $result->town->name] => Nanterre $result->town->official_code] => 92050 - $result->town->postal_codes->postal_code] => 92000 + $result->town->postal_codes->postal_code] => 92000 */ - - - /* + + + /* 0 Unknown location. (Since 2.59) 1 Country level accuracy. (Since 2.59) 2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59) @@ -600,7 +600,7 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 $this->longitudeDec=@$result->location->coordinates->x; $this->latitudeDeg=dec2dms($this->latitudeDec); $this->longitudeDeg=dec2dms($this->longitudeDec); - + $this->geocodeur='Mappy'; //if ($this->codeRetourM>0) @@ -608,104 +608,169 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 return false; } - - - private function geoCodeAdrCpVilleY($address) { - $_url = 'http://api.local.yahoo.com/MapsService/V1/geocode'; - $_url .= sprintf('?appid=%s&location=%s',$this->apiKeyY,rawurlencode($address)); - $_result = false; - $page=getUrl($_url, '', '', '', false, '', '', 3); - $_result=$page['body']; -// die("URL='$_url'".EOL.print_r($page)); - $try=1; - while ($page['code']!=200 && $page['code']!=403) { - $page=getUrl($_url, '', '', '', false, '', '', 3); - $_result=$page['body']; - echo 'Yahoo '.$page['code']." : $address... Attente...".EOL; - $try++; - if ($try>=4) break; - sleep(1); - } - if ($page['code']==400 && preg_match('/unable to parse location<\/Message>/', $_result)) { - $this->latitudeDec=$this->longitudeDec=0; - $this->latitudeDeg=$this->longitudeDeg=0; - $this->geocodeur='Yahoo'; - $this->precision=0; - return false; - } elseif ($page['code']==403 && preg_match('/limit exceeded<\/Message>/', $_result)) { - $this->latitudeDec=$this->longitudeDec=0; - $this->latitudeDeg=$this->longitudeDeg=0; - $this->geocodeur='Yahoo'; - $this->precision=0; - $this->codeRetourY=620; // On adopte les codes Google - } elseif ($page['code']==408) { // Connexion impossible au site du partenaire - $this->latitudeDec=$this->longitudeDec=0; - $this->latitudeDeg=$this->longitudeDeg=0; - $this->geocodeur='Yahoo'; - $this->precision=0; - $this->codeRetourY=500; // On adopte les codes Google - } elseif ($page['code']==200) { - preg_match('!(.*)(.*)!U', $_result, $_match); - $lng = $_match[2]; - $lat = $_match[1]; - preg_match('/warning="(.*)"/Ui', $_result, $_match); -/* -1 Country level accuracy. (Since 2.59) -2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59) -7 Intersection level accuracy. (Since 2.59) -*/ - $this->precision=0; // Unknown location - switch(@$_match[1]) { - case "The exact location could not be found. Here is a nearby county.": $this->precision=3; break; // Sub-region - case "The city could not be found. Here is the state/province.": $this->precision=3; break; // Sub-region - case "The exact location could not be found. Here is a nearby neighorhood.": $this->precision=4; break; // Town level - case "The exact location could not be found. Here is the center of the ZIP code.": - case "The street could not be found. Here is the center of the city.": $this->precision=5; break; // Post code (zip code) - case "The street number could not be found. Here is a nearby location.": - case "The Street name might have been changed": $this->precision=6; break; // Street level accuracy - case '': $this->precision=8; break; // Address level + + public function geoCodeAdrCpVilleC($adresse,$cp,$ville,$pays='') { + + $this->geocodeur='Cloudmade'; + $this->precision=0; + + $fileName=REP_TEMP.'/geoCodeur'.$this->geocodeur; + $tmp=@explode(',',file_get_contents($filename)); + $nbQuery=$tmp[0]*1; + + if ($pays=='') $pays='France'; + /*if (preg_match('/^([0-9]{1,4} )(.*)$/', $adresse, $matches)) { + $adresseVoie=trim($matches[2]); + $adresseNum=trim($matches[1]); + } else { + $adresseVoie=trim($adresse); + $adresseNum=''; + }*/ + $url='http://beta.geocoding.cloudmade.com/v3/'.$this->apiKeyC.'/api/geo.location.search.2?format=json&source=OSM&enc=UTF-8&limit=10&locale=fr&q='.urlencode("$adresse $cp $ville $pays"); + $page=getUrl($url, '', '', '', false, '', '', 15); + $this->body=$page['body']; + $this->codeRetour=$page['code']; + $this->header=$page['header']; + + $nbQuery=($nbQuery*1)+1; + file_put_contents($fileName, $nbQuery.','.$this->codeRetour.",$url,".date('Y-m-d H:i:s').EOL); + + $res=@json_decode(utf8_decode($page['body'])); + if ($this->codeRetour==200 && $res->status->success==1) { + $geoCodage=$res->places[0]; + $this->codeRetourC=1; + switch($geoCodage->addressType) { + case 'housenumber': $this->precision=8; break; + case 'street': $this->precision=6; break; + case 'zip': $this->precision=5; break; default: - if (preg_match('/The exact location could not be found, here is the closest match/', @$_match[1])) - $this->precision=6; - else - die('Precisions Inconnue : "'.$_match[1].'"'.EOL.$_result); - break; + //print_r($res); + //die('addressType inconnue : '.$geoCodage->addressType.EOL); + break; } - preg_match('!
    (.*)
    (?:|.*)(.*)(?:|.*)(.*)!Ui', $_result, $_match); - $adrValide=utf8_decode($_match[1].', '.$_match[2].', '.$_match[3]); - $this->adresseValidee=strtoupper(str_replace(''', "'", htmlspecialchars_decode($adrValide,ENT_QUOTES))); - $this->latitudeDec=$lat; - $this->longitudeDec=$lng; - $this->latitudeDeg=dec2dms($this->latitudeDec); - $this->longitudeDeg=dec2dms($this->longitudeDec); - $this->geocodeur='Yahoo'; - if ($lat==0 && $lng==0 || $this->precision==0) die('Réponse Yahoo = '.$_result.EOL); - return true;//array("lat"=>$lat,"lng"=>$lng,"address"=>$address); - } - else {die("URL='$_url'".EOL.print_r($page)); - return false; + $this->adresseValidee=@trim(strtoupper(preg_replace('/\s+/',' ',$geoCodage->houseNumber.' '.$geoCodage->street.', '. + $geoCodage->zip.' '.$geoCodage->city.', '.str_replace(',',' ',$geoCodage->country)))); + + $this->latitudeDec=$geoCodage->position->lat; + $this->longitudeDec=$geoCodage->position->lon; + $this->latitudeDeg=dec2dms($this->latitudeDec); + $this->longitudeDeg=dec2dms($this->longitudeDec); + + /*print_r($res); + echo $this->adresseValidee.EOL; + echo 'lat='.$this->latitudeDec.EOL; + echo 'lon='.$this->longitudeDec.EOL; + echo 'precis='.$this->precision.EOL; + die($url);*/ + return true; } + //print_r($page); + //print_r($res); + //die($url); + return false; } - + + + private function geoCodeAdrCpVilleY($address) { + $this->geocodeur='Yahoo'; + $this->precision=0; + + $fileName=REP_TEMP.'/geoCodeur'.$this->geocodeur; + $tmp=@explode(',',file_get_contents($filename)); + $nbQuery=$tmp[0]*1; + + $_url='http://query.yahooapis.com/v1/public/yql?q=select+*+from+geo.placefinder+where+text%3D%22'.rawurlencode($address).'%22&format=xml'; + $_result = false; + $page=getUrl($_url, '', '', '', false, '', '', 3); + $this->body=$page['body']; + $this->codeRetour=$page['code']; + $this->header=$page['header']; + + $nbQuery=($nbQuery*1)+1; + file_put_contents($fileName, $nbQuery.','.$this->codeRetour.",$url,".date('Y-m-d H:i:s').EOL); + + if ($this->codeRetour==200) { + + /*Réponse Yahoo = + 71 + 45.7828644.82800245.7828644.828002400 + Rue Jacques Louis-Henon69004 LyonFranceRue Jacques Louis-Henon + 690044E ArrondissementLyonRhôneRhone-Alpes + FranceFR690042006813111 + + + */ + + //echo "Yahoo :'$address'".EOL.$this->body.EOL; + if (preg_match('! yahoo:count="0" !U', $this->body, $_match)) { + $this->codeRetourY='ZERO_RESULTS'; + //echo $this->codeRetourY.EOL; + return false; + } elseif (preg_match('!(.*)(.*)(.*)!U', $this->body, $_match)) { + $quality=$_match[1]; + $this->codeRetourY='OK'; + if ($quality>87) $this->precision=9; // POI or Coordinate + elseif ($quality>82) $this->precision=8; // Address + elseif ($quality>75) $this->precision=7; // Intersection + elseif ($quality>70) $this->precision=6; // Street match + elseif ($quality>40) $this->precision=5; // Zip Code + elseif ($quality>30) $this->precision=4; // Town + elseif ($quality>20) $this->precision=3; // Sous/Région + elseif ($quality>10) $this->precision=2; // Region/state + elseif ($quality> 8) $this->precision=1; // Country + else { $this->precision=0; // Not an address + $this->codeRetourY='ZERO_RESULTS'; + } + $this->latitudeDec=$_match[2]; + $this->longitudeDec=$_match[3]; + $this->latitudeDeg=dec2dms($this->latitudeDec); + $this->longitudeDeg=dec2dms($this->longitudeDec); + if (preg_match('!(.*)(?:|.*)(.*)(?:|.*)(.*)!Ui', $this->body, $_match)) { + $adrValide=utf8_decode($_match[1].', '.$_match[2].', '.$_match[3]); + $this->adresseValidee=strtoupper(str_replace(''', "'", htmlspecialchars_decode($adrValide,ENT_QUOTES))); + $this->codeRetourY='OK'; + } elseif (preg_match('!(.*)(?:|.*)(.*)!Ui', $this->body, $_match)) { + $adrValide=utf8_decode($_match[2].', '.$_match[3]); + $this->adresseValidee=strtoupper(str_replace(''', "'", htmlspecialchars_decode($adrValide,ENT_QUOTES))); + $this->codeRetourY='OK'; + } else + $this->codeRetourY='INVALID_REQUEST'; + } else + //die('Code Retour Yahoo 200 mais :'.$this->body.EOL); + + if ($this->latitudeDec==0 && ($this->longitudeDec==0 || $this->precision==0)) die('Réponse Yahoo = '.$this->body.EOL); + return true;//array("lat"=>$lat,"lng"=>$lng,"address"=>$address); + } else + $this->codeRetourY='INVALID_REQUEST'; + + return false; + } + private function geoCodeAdrCpVilleG($adresse,$cp,$ville,$pays, $proxy='') { - - $url='http://maps.google.com/maps/geo?q='.urlencode($adresse.', '.$cp.' '. $ville.', '.$pays).'&output=xml&key='.$this->apiKeyG; - + $this->geocodeur='Google'; + $this->precision=0; + + $fileName=REP_TEMP.'/geoCodeur'.$this->geocodeur; + $tmp=@explode(',',file_get_contents($filename)); + $nbQuery=$tmp[0]*1; + + $url='http://maps.googleapis.com/maps/api/geocode/xml?address='.urlencode($adresse.', '.$cp.' '. $ville.', '.$pays).'&sensor=false'; + $page=getUrl($url, '', '', $this->referer, false, 'maps.google.com', $proxy,3); //getUrl($url, $strCookies='', $postData='', $referer='', $debug=false, $host='', $proxy='', $timeout=0) { $this->body=$page['body']; $this->codeRetour=$page['code']; $this->header=$page['header']; - + + $nbQuery=($nbQuery*1)+1; + file_put_contents($fileName, $nbQuery.','.$this->codeRetour.",$url,".date('Y-m-d H:i:s').EOL); + + if ($this->codeRetour==200) { // REVERSE GEOCODING // http://maps.google.com/maps/geo?oe=utf-8&ll=48.808955,2.34227&output=xml&key=ABQIAAAAuKBtUyFonYJBl1fqfc78tRQvADPcxwXf3Q2QIE-M32vuSkrxiBRLUHDB_YSLeTscTDeWRKM_wILaaw - - //die($this->body=$page['body']); - //{"name":"3 rue viète, 75017 paris, france","Status":{"code":200,"request":"geocode"},"Placemark":[{"id":"p1","address":"3, Rue Viète, 75017 17ème Arrondissement, Paris, France","AddressDetails":{"Country":{"CountryNameCode":"FR","AdministrativeArea":{"AdministrativeAreaName":"Ile-de-France","SubAdministrativeArea":{"SubAdministrativeAreaName":"Paris","Locality":{"LocalityName":"Paris","DependentLocality":{"DependentLocalityName":"17ème Arrondissement","Thoroughfare":{"ThoroughfareName":"3, Rue Viète"},"PostalCode":{"PostalCodeNumber":"75017"}}}}}},"Accuracy": 8},"Point":{"coordinates":[2.306174,48.883705,0]}}]} - /*3 rue viète, 75017 paris, france200geocode
    3, Rue Viète, 75017 17ème Arrondissement, Paris, France
    FRIle-de-FranceParisParis17ème Arrondissement3, Rue Viète750172.306174,48.883705,0
    */ - -/* + +/* 0 Unknown location. (Since 2.59) 1 Country level accuracy. (Since 2.59) 2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59) @@ -716,19 +781,34 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 7 Intersection level accuracy. (Since 2.59) 8 Address level accuracy. (Since 2.59) */ - $this->codeRetourG=@getTextInHtml($this->body, '', '', '/code>'); - $this->precision=@getTextInHtml($this->body, 'codeRetourG=@getTextInHtml($this->body, '', '', ''); + $location_type=@getTextInHtml($this->body, '', '', ''); + switch($location_type) { + case 'ROOFTOP': // Precise geocode for which we have location information accurate down to street address precision. + $this->precision=8; + break; + case 'RANGE_INTERPOLATED': // Approximation (usually on a road) interpolated between two precise points (such as intersections). Interpolated results are generally returned when rooftop geocodes are unavailable for a street address. + $this->precision=7; + break; + case 'GEOMETRIC_CENTER': // Geometric center of a result such as a polyline (for example, a street) or polygon (region). + $this->precision=6; + break; + case 'APPROXIMATE': // indicates that the returned result is approximate. + $this->precision=4; + break; + default: + if ($this->codeRetourG=='ZERO_RESULTS') // Indicates that the geocode was successful but returned no results. + $this->precision=0; // This may occur if the geocode was passed a non-existent address or a latlng in a remote location. + break; + } + $this->adresseValidee=strtoupper(str_replace(''', "'", htmlspecialchars_decode(utf8_decode(@getTextInHtml($this->body, '', '')),ENT_QUOTES))); $strTmp=@getTextInHtml($this->body, '', '', ''); $tabTmp=explode(',', $strTmp); $this->latitudeDec=@$tabTmp[1]; $this->longitudeDec=$tabTmp[0]; $this->latitudeDeg=dec2dms($this->latitudeDec); - $this->longitudeDeg=dec2dms($this->longitudeDec); - - $this->geocodeur='Google'; - + $this->longitudeDeg=dec2dms($this->longitudeDec); /* 200 G_GEO_SUCCESS No errors occurred; the address was successfully parsed and its geocode has been returneds->geocodeur='Google'; @@ -745,23 +825,44 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 there is no route available between the two points, or because we do not have data for routing in that region. 610 G_GEO_BAD_KEY The given key is either invalid or does not match the domain for which it was given. 620 G_GEO_TOO_MANY_QUERIES The given key has gone over the requests limit in the 24 hour period. -*/ - if ($this->codeRetourG==200) - return true; - return false; +OKstreet_address2 Route du Cure, 92410 Ville-d'Avray, France22street_numberRoute du CureRoute du CurerouteVille-d'AvrayVille-d'AvraylocalitypoliticalHauts-de-Seine92administrative_area_level_2politicalÎle-de-FranceIDFadministrative_area_level_1politicalFranceFRcountrypolitical9241092410postal_code48.82528022.1821693 + + /* +"OK" indicates that no errors occurred; the address was successfully parsed and at least one geocode was returned. + + "OVER_QUERY_LIMIT" indicates that you are over your quota. + "REQUEST_DENIED" indicates that your request was denied, generally because of lack of a sensor parameter. + "" generally indicates that the query (address or latlng) is missing. + UNKNOWN_ERROR indicates that the request could not be processed due to a server error. The request may succeed if you try again. + */ + + if ($this->codeRetourG=='OK') + return true; + elseif ($this->codeRetourG=='ZERO_RESULTS' || // http://maps.googleapis.com/maps/api/geocode/xml?address=0044+RUE+JACQUES+-+LOUIS+HENON%2C+69004+LYON+4EME%2C+France&sensor=false + $this->codeRetourG=='INVALID_REQUEST' || // http://maps.googleapis.com/maps/api/geocode/xml?address=0028+B+RUE+MGR+DE+BEAUMONT%2C+97400+SAINT+DENIS%2C+La+R%E9union&sensor=false + $this->codeRetourG=='OVER_QUERY_LIMIT') { + return false; + } else { + return false; + //echo $url.' ('.$this->codeRetour.')'.EOL; + //die('Code Retour Google ='.$this->codeRetourG.EOL); + } + } + return false; } - + /** Géocodage d'une adresse - ** 0 Unknown location. (Since 2.59) - 1 Country level accuracy. (Since 2.59) - 2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59) - 3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59) - 4 Town (city, village) level accuracy. (Since 2.59) - 5 Post code (zip code) level accuracy. (Since 2.59) - 6 Street level accuracy. (Since 2.59) - 7 Intersection level accuracy. (Since 2.59) - 8 Address level accuracy. (Since 2.59) +0 Unknown location. (Since 2.59) +1 Country level accuracy. (Since 2.59) +2 Region (state, province, prefecture, etc.) level accuracy. (Since 2.59) +3 Sub-region (county, municipality, etc.) level accuracy. (Since 2.59) +4 Town (city, village) level accuracy. (Since 2.59) +5 Post code (zip code) level accuracy. (Since 2.59) +6 Street level accuracy. (Since 2.59) +7 Intersection level accuracy. (Since 2.59) +8 Address level accuracy. (Since 2.59) +9 Address level accuracy +++ **/ function geoCodeAdresse($adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville='', $pays='France', $codeRivoli='') { $iDb=new WDB(); @@ -790,17 +891,17 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 $this->l93y=$tmp['y_93']; } if ($this->altitude<>NULL || $this->l93x<>NULL) { - $tabUpdate=array( 'alt'=>$this->altitude, - 'l93_x'=>$this->l93x, - 'l93_y'=>$this->l93y); - //'dateUpdate'=>DATETIME, - $iDb->update('zonageXY', $tabUpdate, "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'"); + $tabUpdate=array( 'alt'=>$this->altitude, + 'l93_x'=>$this->l93x, + 'l93_y'=>$this->l93y); + //'dateUpdate'=>DATETIME, + $iDb->update('zonageXY', $tabUpdate, "address='$adresse' AND adr_cp='$cp' AND adr_ville='$ville'"); } - + $this->latitudeDeg=dec2dms($this->latitudeDec); $this->longitudeDeg=dec2dms($this->longitudeDec); $this->enCache=true; - $ligne='En base : '.print_r($zonage, true); + $ligne='En base : '.print_r($zonage, true); } elseif ($this->accesDist) { $this->enCache=false; $retM=$retY=false; @@ -819,25 +920,28 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 elseif (substr($codeRivoli,0,3)*1==989) $pays='Wallis-et-Futuna'; // 98911 à 98913 Wallis et Futuna (anciens codes non compatibles : 98611 à 98613) elseif (substr($codeRivoli,0,2)*1>96 && substr($codeRivoli,0,2)*1<99) die("Code Rivoli non géré : '$codeRivoli'".EOL); - + $retG=$this->geoCodeAdrCpVilleG($adresse, $cp, $ville, $pays); - if ($this->codeRetourG==620 || $this->precision==0) - /*if ($this->codeRetourG==620) - $retY=$this->geoCodeAdrCpVilleY("$adresse, $cp $ville"); - - if ($this->codeRetourY==620 || $this->codeRetourY==503 || $this->precision==0)*/ - $retM=$this->geoCodeAdrCpVilleM($adresse, $cp, $ville, $pays); - + if ($this->codeRetourG=='OVER_QUERY_LIMIT' || $this->precision==0) { + $retY=$this->geoCodeAdrCpVilleY("$adresse, $cp $ville, $pays"); + if ($this->codeRetourY=='OVER_QUERY_LIMIT' || $this->codeRetourY<>'OK' || $this->precision==0) + $retC=$this->geoCodeAdrCpVilleC($adresse, $cp, $ville, $pays); + // $retM=$this->geoCodeAdrCpVilleM($adresse, $cp, $ville, $pays); + } + // On récupère l'altitude - if ($this->precision>5) { + echo ('Précision : '. $this->precision.EOL); + if ($this->precision>5 && $this->latitudeDec<>0 && $this->longitudeDec<>0) { $alt=$this->getAltitude($this->latitudeDec,$this->longitudeDec); $this->altitude=$alt['alt']; } $tmp=geos2lambert93($this->latitudeDec,$this->longitudeDec); $this->l93x=$tmp['x_93']; $this->l93y=$tmp['y_93']; - - if ($retG || $retY || $retM) { + + echo ('$retG='.$retG.EOL.'$retY='.$retY.EOL.'$retC='.$retC.EOL.'$retM='.$retM.EOL); + + if ($retG || $retY || $retM || $retC) { $adresse=stripslashes(strtoupper(trim(preg_replace('/ +/',' ', "$adrNum $adrIndRep $adrTypeVoieLong $adrLibVoie")))); $ville=stripslashes($ville); $tabInsert=array( 'address'=>$adresse, @@ -860,10 +964,21 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 ); /** Insertion de l'adresse que si elle est possible **/ - if ($this->latitudeDec<>0 && $this->longitudeDec<>0) + echo ('Avant Insert '.$this->latitudeDec.EOL.$this->longitudeDec.EOL); + if ($this->latitudeDec<>0 && $this->longitudeDec<>0) { + print_r($tabInsert); + echo ($this->latitudeDec.EOL.$this->longitudeDec.EOL); $iDb->insert('zonageXY', $tabInsert); - - $ligne='Accès Google : '.print_r($tabInsert, true); + if (mysql_errno()>0) echo mysql_error().die(EOL); + } else { + $this->precision=$this->latitudeDec=$this->longitudeDec=0; + $this->adresseValidee=''; + $this->latitudeDeg=$this->longitudeDeg=''; + $ligne="Erreur Geocodage : $adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville, $pays, $codeRivoli, ".$this->body; + //die('Latitude et longitude à zero :'.$this->latitudeDec.EOL.$this->longitudeDec.EOL); + } + echo ('Après Insert : '.$this->latitudeDec.EOL.$this->longitudeDec.EOL); + $ligne='Accès Google : '.print_r($tabInsert, true); } else { $this->precision=$this->latitudeDec=$this->longitudeDec=0; @@ -872,7 +987,6 @@ API keybing = 56D6CBA671C986D3EA11B1B48F97507BE9B46999 $ligne="Erreur : $adrNum, $adrIndRep, $adrTypeVoieCourt, $adrTypeVoieLong, $adrLibVoie, $cp, $ville, $pays, $codeRivoli, ".$this->body; } } - } /* if (latnorth == 'S') latdir='-' if (lonwest == 'W') longdir='-' @@ -905,11 +1019,11 @@ function distance($latA=0, $lonA=0, $latB=0, $lonB=0, $sphere='GRS80') { case 'GRS80': default: $R=6378.137; // Demi grand axe ou Rayon de la sphère GRS80 en Kms $f=1/298.257222101; - break; + break; } $a=pi()/180; $e=$latA*$a; - $f=$lonA*$a; + $f=$lonA*$a; $g=$latB*$a; $h=$lonB*$a; @@ -930,7 +1044,7 @@ function distanceLambert($x1,$y1,$x2,$y2) { } /** Retourne l'altitude en mètres d'un point GPS. Shuttle Radar Topography Mission (SRTM) elevation data (resolution 90mx90m) - ** @url http://ws.geonames.org/export/web-services.html + ** @url http://ws.geonames.org/export/web-services.html ** @param double $tabLatLon Latitude du point ou Tableau de Points avec latitudes longitudes array('lat'=>x,'lon'=>y) ** @param double $lon Longitude ou false si tableau ** @return double @@ -982,7 +1096,7 @@ The text version of the service also accepts a list of lat/lng for the parameter } $LatLon.="$lat%2C$lon2"; $Lats.=$lat; - $Lons.=$lon; + $Lons.=$lon; } // http://api.geonames.org/srtm3?lats=50.01,51.01&lngs=10.2,11.2&username=demo /* $url="http://api.geonames.org/srtm3?lats=$Lats&lng=$Lons&username=demo"; @@ -996,7 +1110,7 @@ The text version of the service also accepts a list of lat/lng for the parameter return array('lat'=>$tabLatLon,'lon'=>$lon,'alt'=>$alt); */ } - + $url='http://www.fredorando.fr/Pages/altitude.php'; $post=array('LatLon'=>$LatLon,'qui'=>''); $page=getUrl($url, '', $post, '', false, '', '', 3); @@ -1034,8 +1148,8 @@ if ( !function_exists('json_encode') ){ function json_encode($content){ require_once 'Services/JSON.php'; $json = new Services_JSON; - + return $json->encode($content); } } -?> \ No newline at end of file +?> diff --git a/1.2/library/Metier/scores/Cache/CacheTabFormules.php b/1.2/library/Metier/scores/Cache/CacheTabFormules.php new file mode 100644 index 00000000..0b60d51b --- /dev/null +++ b/1.2/library/Metier/scores/Cache/CacheTabFormules.php @@ -0,0 +1,3581 @@ + array( + 'id' => 0, + 'libelle' => "zéro", + 'commentaires' => "", + 'unite' => '', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '0', + ), + 1 => array( + 'id' => 1, + 'libelle' => "CA France", + 'commentaires' => "Le chiffre d'affaires net est égal au total des ventes de marchandises en France (revente en l'état) et de la production vendue de biens et services. Comme tous les agrégats comptables, il est déterminé hors taxes. Pour mesurer l'activité d'une entreprise ou d'un secteur, et effectuer des comparaisons, le chiffre d'affaires n'est pas un indicateur toujours significatif car il peut inclure ou non des achats pour la revente et des sous-traitances selon le mode de comptabilisation retenu.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FJ', + ), + 2 => array( + 'id' => 2, + 'libelle' => "CA France sur 12 mois", + 'commentaires' => "Montant des ventes hors taxes sur le territoire français, rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(FJ*12)/nm;BORN(0)', + ), + 3 => array( + 'id' => 3, + 'libelle' => "CA Export", + 'commentaires' => "Montant des ventes hors France.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FK', + ), + 4 => array( + 'id' => 4, + 'libelle' => "CA Export sur 12 mois", + 'commentaires' => "Montant des ventes hors France rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(FK*12)/nm;BORN(0)', + ), + 5 => array( + 'id' => 5, + 'libelle' => "CA Total", + 'commentaires' => "Montant total des ventes hors taxe tant sur le territoire français que hors de France.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FL', + ), + 6 => array( + 'id' => 6, + 'libelle' => "CA Total sur 12 mois", + 'commentaires' => "Montant total des ventes hors taxe tant sur le territoire français que hors de France rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(FL*12)/nm;BORN(0)', + ), + 7 => array( + 'id' => 7, + 'libelle' => "Résultat courant avant impots", + 'commentaires' => "Bénéfice ou perte constaté avant affectation des produits ou charges exceptionnelles, déduction des impôts et participation au bénéfice. Il est égal aux : +produits d'exploitation (notamment les sommes reçues qui relèvent de l'activité de l'entreprise, soit les ventes de biens, prestations de services etc..) ++ quotes-parts de résultats sur opérations faites en commun(par exemple, résultat des opérations faites par l'intermédiaire d'une société en participation) ++ produits financiers (intérêts courus, gains de change, revenus tirés des comptes en banque) +- charges d'exploitation +- quotes-parts de charges sur opérations en commun +- charges financières.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GW', + ), + 8 => array( + 'id' => 8, + 'libelle' => "Résultat courant avant impots sur 12 mois", + 'commentaires' => "Bénéfice ou perte constaté avant affectation des produits ou charges exceptionnelles, déduction des impôts et participation au bénéfice, rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(GW*12)/nm', + ), + 9 => array( + 'id' => 10, + 'libelle' => "Résultat net", + 'commentaires' => "Le résultat net comptable correspond au bénéfice ou perte de la période, mesuré par la différence entre les produits et les charges (au sens comptable) de l'exercice. Il s'agit du résultat courant, corrigé du résultat exceptionnel, déduction faite de l'impôt sur le résultat et de l'éventuelle participation des salariés. Il mesure les ressources nettes restant à l'entreprise à l'issue de l'exercice.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HN', + ), + 10 => array( + 'id' => 11, + 'libelle' => "Résultat net sur 12 mois", + 'commentaires' => "Le résultat net comptable correspond au bénéfice ou perte de la période rappoté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(HN*12)/nm', + ), + 11 => array( + 'id' => 12, + 'libelle' => "Résultat exceptionnel", + 'commentaires' => "Le résultat exceptionnel recense les éléments de nature exceptionnelle (procès, incendie, flux résultant d'évènements passés), et en particulier les plus ou moins-values sur cessions d'actifs. Il exprime le résultat réalisé par une entreprise en raison des évènements non récurrents qui ont pris naissance au cours de l'exercice considéré.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HI', + ), + 12 => array( + 'id' => 13, + 'libelle' => "Résultat exceptionnel sur 12 mois", + 'commentaires' => "Résultat exceptionnel rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(HI*12)/nm', + ), + 13 => array( + 'id' => 14, + 'libelle' => "Résultat financier", + 'commentaires' => "Le résultat financier traduit l'impact du mode de financement au niveau du compte de résultat. Dans une optique financière, on ne retient que les produits et charges qui se rapportent directement à l'activité d'endettement et de placement de l'entreprise en reclassant les autres éléments en exploitation ou en exceptionnel.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GV', + ), + 14 => array( + 'id' => 15, + 'libelle' => "Résultat financier sur 12 mois", + 'commentaires' => "Résultat financier rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(GV*12)/nm', + ), + 15 => array( + 'id' => 16, + 'libelle' => "Résultat d'exploitation", + 'commentaires' => "Le résultat d'exploitation, ou résultat opérationnel, est le résultat du processus d'exploitation et d'investissement de l'exercice. Il traduit l'accroissement de richesse dégagé par l'activité industrielle et commerciale de l'entreprise. A la différence de l'EBE (Excédent Brut d'Exploitation), qui se concentre sur le cycle d'exploitation, le résultat d'exploitation prend également en compte le processus d'investissement par le biais des charges calculées (dotations aux amortissements et provisions). Ce résultat est ensuite réparti entre les charges financières, l'impôt sur les sociétés, les dividendes et le résultat mis en réserves. Ce concept de résultat d'exploitation, est extrêmement utilisé (notamment dans le calcul de la rentabilité économique car il n'est pas affecté par la structure financière de l'entreprise). Il est très proche de l'EBIT anglo-saxon.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GG', + ), + 16 => array( + 'id' => 17, + 'libelle' => "Résultat d'exploitation sur 12 mois", + 'commentaires' => "Résultat d'exploitation rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(GG*12)/nm', + ), + 17 => array( + 'id' => 18, + 'libelle' => "Situation nette Fonds propres", + 'commentaires' => "La situation nette ou Fonds propres ou bien encore, capitaux propres représentent l'argent apporté par les actionnaires à la constitution de la société ou ultérieurement, ou laissés à la disposition de la société en tant que bénéfices non distribués sous forme de dividendes. Ils courent le risque total de l'entreprise : si celle-ci va mal, ils ne seront pas rémunérés (aucun dividende ne sera versé) ; si elle dépose son bilan, les porteurs de capitaux propres ne seront remboursés qu'après que les créanciers l'aient été intégralement. Si elle va très bien au contraire, tous les profits leur reviennent.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DL', + ), + 18 => array( + 'id' => 19, + 'libelle' => "Situation nette Fonds propres sur 12 mois", + 'commentaires' => "Situation nette rapportée sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(DL*12)/nm', + ), + 19 => array( + 'id' => 20, + 'libelle' => "Frais financiers", + 'commentaires' => "Ensemble des frais liés aux dettes. Dans un compte de résultats, le résultat financier correspond au solde des produits financiers soustraits des charges financières.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GR', + ), + 20 => array( + 'id' => 21, + 'libelle' => "Frais financiers sur 12 mois", + 'commentaires' => "Frais financiers rapportés sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(GR*12)/nm', + ), + 21 => array( + 'id' => 22, + 'libelle' => "Total bilan", + 'commentaires' => "Le total du bilan est la somme de tous les actifs ainsi que des passifs, il caractérise la taille de l'entreprise. +Selon le décret n° 2008-1354 du 18 décembre 2008, les critères désormais retenus pour les besoins de l'analyse statistique et économique sont les suivants : +La catégorie des micro entreprises est constituée des entreprises qui : + * d'une part occupent moins de 10 personnes ; + * d'autre part ont un chiffre d'affaires annuel ou un total de bilan n'excédant pas 2 millions d'euros. +La catégorie des petites et moyennes entreprises (PME) est constituée des entreprises qui : + * d'une part occupent moins de 250 personnes ; + * d'autre part ont un chiffre d'affaires annuel n'excédant pas 50 millions d'euros ou un total de bilan n'excédant pas 43 millions d'euros. +La catégorie des entreprises de taille intermédiaire (ETI) est constituée des entreprises qui n'appartiennent pas à la catégorie des petites et moyennes entreprises, et qui : + * d'une part occupent moins de 5 000 personnes ; + * d'autre part ont un chiffre d'affaires annuel n'excédant pas 1 500 millions d'euros ou un total de bilan n'excédant pas 2 000 millions d'euros. +La catégorie des grandes entreprises (GE) est constituée des entreprises qui ne sont pas classées dans les catégories précédentes.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EE', + ), + 22 => array( + 'id' => 23, + 'libelle' => "Total bilan sur 12 mois", + 'commentaires' => "Total bilan rapporté sur 12 mois.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(EE*12)/nm', + ), + 23 => array( + 'id' => 24, + 'libelle' => "Effectif (sans décimales)", + 'commentaires' => "La définition exacte de l'effectif peut varier selon les sources : +DADS : effectif salarié instantané au 30 juin ; +SIRENE : effectif salarié au 31 décembre n (ou au 1er janvier n+1) ; cet effectif fait l'objet d'une mise à jour « de masse » au premier semestre à partir des données DADS, l'effectif d'une entreprise est alors la somme des effectifs de ses établissements au 31 décembre; +SUSE-FICUS : moyenne annuelle de l'effectif salarié. +Dans un bilan c'est la moyenne de l'effectif de l'exercice.", + 'unite' => 'Pers.', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'YP ou efftr', + ), + 24 => array( + 'id' => 25, + 'libelle' => "Part de CA à l'export", + 'commentaires' => "Part des ventes à l'exportation par rapport au total des ventes. Dans la liasse fiscale les exportations incluent les livraisons intra-communautaires. On notera que cette définition des exportations est très réductrice pour les TPE, quant à leur rôle dans la balance des paiements : ainsi une entreprise d'artisanat qui vend à des touristes étrangers n'est pas « exportatrice », de même une TPE de l'industrie qui effectue de la sous-traitance de spécialité pour un grand chantier à l'exportation n'est pas non plus « exportatrice ».", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(FK*100)/FL;BORN(0)', + ), + 25 => array( + 'id' => 30, + 'libelle' => "Actif brevets", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AF', + ), + 26 => array( + 'id' => 31, + 'libelle' => "Actif Terrains", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AN', + ), + 27 => array( + 'id' => 32, + 'libelle' => "Dettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EC', + ), + 28 => array( + 'id' => 33, + 'libelle' => "Provisions", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DR', + ), + 29 => array( + 'id' => 51, + 'libelle' => "Immobilisations incorporelles nettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AB+AD+AF+AH+AJ+AL-AC-AE-AG-AI-AK-AM', + ), + 30 => array( + 'id' => 52, + 'libelle' => "Immobilisations corporelles nettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AN+ AP+ AR+ AT+ AV+ AX- AO- AQ- AS- AU- AW- AY', + ), + 31 => array( + 'id' => 53, + 'libelle' => "Immobilisations financières nettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CS+ CU+ BB+ BD+ BF+ BH- CT- CV- BC- BE- BG- BI', + ), + 32 => array( + 'id' => 59, + 'libelle' => "ACTIF IMMOBILISE NET", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[051]+R[052]+R[053]', + ), + 33 => array( + 'id' => 60, + 'libelle' => "Stock & encours", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BL+ BN+ BP+ BR+ BT- BM- BO- BQ- BS- BU', + ), + 34 => array( + 'id' => 61, + 'libelle' => "Créances clients & comptes rattachés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BX-DW+YS-BY', + ), + 35 => array( + 'id' => 62, + 'libelle' => "Autres créances", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BZ+ CB+ CH- CA- CC- CI', + ), + 36 => array( + 'id' => 63, + 'libelle' => "Trésorerie active", + 'commentaires' => "La trésorerie active est constituée de l'ensemble des éléments liquides. A savoir : +- les valeurs mobilières de placement (ensemble des actifs financiers acquis par l'entreprise mais qui n'ont pas de valeur stratégique et qui visent plutôt à réaliser des plus-values). +- l'ensemble des disponibilités déposées sur le compte bancaire de l'entreprise. +- son fond de caisse.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CD+CF-CE-CG', + ), + 37 => array( + 'id' => 64, + 'libelle' => "Trésorerie active 12 mois", + 'commentaires' => "Trésorerie active rapporté à 12 mois; elle est constituée de l'ensemble des éléments liquides. A savoir : +- les valeurs mobilières de placement (ensemble des actifs financiers acquis par l'entreprise mais qui n'ont pas de valeur stratégique et qui visent plutôt à réaliser des plus-values). +- l'ensemble des disponibilités déposées sur le compte bancaire de l'entreprise. +- son fond de caisse.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[063]*12)/nm', + ), + 38 => array( + 'id' => 65, + 'libelle' => "Créances", + 'commentaires' => "", + 'unite' => '', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[061]+R[062]', + ), + 39 => array( + 'id' => 67, + 'libelle' => "Immos nettes rapportée sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[059]*12)/nm', + ), + 40 => array( + 'id' => 69, + 'libelle' => "ACTIF CIRCULANT NET", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[060]+R[061]+R[062]+R[063]', + ), + 41 => array( + 'id' => 70, + 'libelle' => "Fonds propres corrigés", + 'commentaires' => "La situation nette ou Fonds propres ou bien encore, capitaux propres représentent l'argent apporté par les actionnaires à la constitution de la société ou ultérieurement, ou laissés à la disposition de la société en tant que bénéfices non distribués sous forme de dividendes. Ils courent le risque total de l'entreprise : si celle-ci va mal, ils ne seront pas rémunérés (aucun dividende ne sera versé) ; si elle dépose son bilan, les porteurs de capitaux propres ne seront remboursés qu'après que les créanciers l'aient été intégralement. Si elle va très bien au contraire, tous les profits leur reviennent.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DL+DO-AA-(CL+CM+CN)+ED', + ), + 42 => array( + 'id' => 71, + 'libelle' => "Provisions risques & Charges", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DR', + ), + 43 => array( + 'id' => 72, + 'libelle' => "Comptes courants", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'VI', + ), + 44 => array( + 'id' => 73, + 'libelle' => "Dettes à -1AN", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DW+DX+DY+DZ+EA+EH', + ), + 45 => array( + 'id' => 74, + 'libelle' => "Provisions réglementées", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DK', + ), + 46 => array( + 'id' => 79, + 'libelle' => "RESSOURCES PROPRES", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[070]+R[071]+R[072]', + ), + 47 => array( + 'id' => 80, + 'libelle' => "Dettes fin pour compt coura ds autre dettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DS+DT+DU+DV-EH-VI;BORN(0)', + ), + 48 => array( + 'id' => 81, + 'libelle' => "Dettes exigibles à 1-an (vg1+vh1)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'VG1+VH1', + ), + 49 => array( + 'id' => 82, + 'libelle' => "Fonds propres borne a mini 0", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[070];BORN(0)', + ), + 50 => array( + 'id' => 83, + 'libelle' => "Dettes financieres", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DS+DT+DU+DV-EH-VI;BORN(0)', + ), + 51 => array( + 'id' => 84, + 'libelle' => "Dettes fournisseurs", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DX- BV+ BW', + ), + 52 => array( + 'id' => 85, + 'libelle' => "Dettes fiscales", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DY', + ), + 53 => array( + 'id' => 86, + 'libelle' => "Autres dettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DZ+ EA+ EB+ R[080]', + ), + 54 => array( + 'id' => 87, + 'libelle' => "Trésorerie passive", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'YS+ EH', + ), + 55 => array( + 'id' => 88, + 'libelle' => "Dettes CT", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DW+ DY+ EH+ DZ+ EA+ EB+ YS', + ), + 56 => array( + 'id' => 89, + 'libelle' => "Dettes LMT", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DS+ DT+ DU+ DV- EH- VI', + ), + 57 => array( + 'id' => 90, + 'libelle' => "RESSOURCES EXTERNES", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[083]+R[084]+R[085]+R[086]+R[087]', + ), + 58 => array( + 'id' => 91, + 'libelle' => "Situation nette", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DL+DO+DR+VI-DJ-DK-AA', + ), + 59 => array( + 'id' => 92, + 'libelle' => "Situation nette/Total bilan", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(DL+DO+DR+VI-DJ-DK-AA)/EE', + ), + 60 => array( + 'id' => 93, + 'libelle' => "Actif circulant net rapportée sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[069]*12)/nm', + ), + 61 => array( + 'id' => 101, + 'libelle' => "CHIFFRE D'AFFAIRES HT", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FL', + ), + 62 => array( + 'id' => 102, + 'libelle' => "-Achats de marchandises,matières premières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FS+ FU', + ), + 63 => array( + 'id' => 110, + 'libelle' => "=MARGE COMMERCIALE", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[101]-FS -FT', + ), + 64 => array( + 'id' => 111, + 'libelle' => "Production vendue", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FF+FI', + ), + 65 => array( + 'id' => 112, + 'libelle' => "+Production immobilisée & stockée", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FM+ FN', + ), + 66 => array( + 'id' => 120, + 'libelle' => "=PRODUCTION DE L'EXERCICE", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[111]+R[112]', + ), + 67 => array( + 'id' => 121, + 'libelle' => "-Variation de stock march. & mat.prem.", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FT+ FV', + ), + 68 => array( + 'id' => 122, + 'libelle' => "=MARGE BRUTE", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[101]+R[112]-R[102]-R[121]', + ), + 69 => array( + 'id' => 123, + 'libelle' => "-Autres charges externes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FW- HP- HQ', + ), + 70 => array( + 'id' => 124, + 'libelle' => "Production de l'exercice ramenée en 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[120]*12)/nm', + ), + 71 => array( + 'id' => 130, + 'libelle' => "=VALEUR AJOUTEE", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[122]-R[123]', + ), + 72 => array( + 'id' => 131, + 'libelle' => "+ Subventions d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FO', + ), + 73 => array( + 'id' => 132, + 'libelle' => "-Charges de personnel", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FY+FZ', + ), + 74 => array( + 'id' => 133, + 'libelle' => "- Impots, taxes & vers assimilés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FX', + ), + 75 => array( + 'id' => 140, + 'libelle' => "=EXCEDENT BRUT D'EXPLOITATION(EBE)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[130]-R[132]-R[133]+R[131]', + ), + 76 => array( + 'id' => 141, + 'libelle' => "+Autres produits d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FQ', + ), + 77 => array( + 'id' => 142, + 'libelle' => "-Autres charges d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GE', + ), + 78 => array( + 'id' => 143, + 'libelle' => "+Reprise sur dotations & transferts charge", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FP', + ), + 79 => array( + 'id' => 144, + 'libelle' => "+70% Loyer crédit bail", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(HP+ HQ)*0.7', + ), + 80 => array( + 'id' => 145, + 'libelle' => "-Dotation aux amortissements et provisions d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GA+ GB+ GC+ GD+R[144]', + ), + 81 => array( + 'id' => 146, + 'libelle' => "EBE 12 mois", + 'commentaires' => "EBE rapporté à 12 mois", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[140]*12)/nm', + ), + 82 => array( + 'id' => 150, + 'libelle' => "=RESULTAT D'EXPLOITATION", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[140]+R[141]-R[142]+R[143]-R[145]', + ), + 83 => array( + 'id' => 151, + 'libelle' => "+Produits financiers", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GP', + ), + 84 => array( + 'id' => 152, + 'libelle' => "+30% Loyer crédit bail", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(HP+ HQ)*0.3', + ), + 85 => array( + 'id' => 153, + 'libelle' => "-Charges financières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GU+R[152]', + ), + 86 => array( + 'id' => 160, + 'libelle' => "=RESULTAT FINANCIER", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[151]-R[153]', + ), + 87 => array( + 'id' => 161, + 'libelle' => "+Opération en commun", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GH- GI', + ), + 88 => array( + 'id' => 170, + 'libelle' => "=RESULTAT COURANT AVANT IMPOTS", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[150]+R[161]+R[151]-R[153]', + ), + 89 => array( + 'id' => 171, + 'libelle' => "+Produits exceptionnels", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HD', + ), + 90 => array( + 'id' => 172, + 'libelle' => "-Charges exceptionnelles", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HH', + ), + 91 => array( + 'id' => 180, + 'libelle' => "=RESULTAT EXCEPTIONNEL", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[171]-R[172]', + ), + 92 => array( + 'id' => 181, + 'libelle' => "-Impots sur les bénéfices", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HK', + ), + 93 => array( + 'id' => 182, + 'libelle' => "-Participation salariale", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HJ', + ), + 94 => array( + 'id' => 199, + 'libelle' => "=RESULTAT NET", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[170]+R[171]-R[172]-R[181]-R[182]', + ), + 95 => array( + 'id' => 201, + 'libelle' => "Fonds propr déduction du capi non versé", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DL+ DO+ DR+ VI- AA', + ), + 96 => array( + 'id' => 202, + 'libelle' => "Capitaux permanents", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[201]+R[080]', + ), + 97 => array( + 'id' => 203, + 'libelle' => "TVA sur CA France (YY)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'YY ou ((FJ*tva)/100)', + ), + 98 => array( + 'id' => 204, + 'libelle' => "Ventes TTC journalières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '((R[203]+R[005])*12/nm)/360;BORN(0)', + ), + 99 => array( + 'id' => 205, + 'libelle' => "TVA sur consomation achats", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '(FS-FT+FU-FV+FW)*tva/100', + ), + 100 => array( + 'id' => 206, + 'libelle' => "YZ ou Ratio 205", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'YZ ou R[205]', + ), + 101 => array( + 'id' => 207, + 'libelle' => "Consommation Achat TTC en 12 mois/jour", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '(((FS- FT+ FU- FV+ FW)+ (R[206]))*12/nm)/360;BORN(0)', + ), + 102 => array( + 'id' => 208, + 'libelle' => "CA/Total Bilan (chiffre d'affaire/actif comptable)", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[005]*100)/EE', + ), + 103 => array( + 'id' => 209, + 'libelle' => "Crédit Bail", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HP+HQ-GR', + ), + 104 => array( + 'id' => 210, + 'libelle' => "Encours client", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BX-BY+YS', + ), + 105 => array( + 'id' => 211, + 'libelle' => "Poids Encours client/ Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[210]*100)/EE', + ), + 106 => array( + 'id' => 212, + 'libelle' => "Poids Encours fournisseur / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[084]*100)/EE', + ), + 107 => array( + 'id' => 213, + 'libelle' => "Stocks matières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'BL-BM', + ), + 108 => array( + 'id' => 214, + 'libelle' => "Poids stocks matière / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[213]*100)/EE', + ), + 109 => array( + 'id' => 215, + 'libelle' => "Stocks encours production", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'BN-BO', + ), + 110 => array( + 'id' => 216, + 'libelle' => "Poids stocks encours prod / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[215]*100)/EE', + ), + 111 => array( + 'id' => 217, + 'libelle' => "Stocks encours prod service", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'BP-BQ', + ), + 112 => array( + 'id' => 218, + 'libelle' => "Poids stocks encours prod service / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[217]*100)/EE', + ), + 113 => array( + 'id' => 219, + 'libelle' => "Stocks produits intermédiaires & finis", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'BR-BS', + ), + 114 => array( + 'id' => 220, + 'libelle' => "Poids stocks produits finis / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[219]*100)/EE', + ), + 115 => array( + 'id' => 221, + 'libelle' => "Stocks marchandises", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'BT-BU', + ), + 116 => array( + 'id' => 222, + 'libelle' => "Poids stocks marchandises / Total Bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[221]*100)/EE', + ), + 117 => array( + 'id' => 223, + 'libelle' => "FDR retraité TRs propre+Dt fin-actif net", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[079]+R[080]-R[059]', + ), + 118 => array( + 'id' => 224, + 'libelle' => "Liquidité", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CJ-CK-CH+CI-DW-DX-DY-DZ-EA-EH', + ), + 119 => array( + 'id' => 225, + 'libelle' => "BFR retraité TRs propre+Dt fin-actif net", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[060]+R[061]+R[062]-R[084]-R[085]-R[086]', + ), + 120 => array( + 'id' => 226, + 'libelle' => "Trésorerie nette retraitée (FR-BFR retraités)", + 'commentaires' => "Trésorerie nette retraitée (FR-BFR retraités)", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[223]-R[225]', + ), + 121 => array( + 'id' => 227, + 'libelle' => "Effets escomptés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'YS', + ), + 122 => array( + 'id' => 228, + 'libelle' => "Ressources Propres / 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[079]*12)/nm', + ), + 123 => array( + 'id' => 229, + 'libelle' => "Masse salarial", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FY+FZ', + ), + 124 => array( + 'id' => 230, + 'libelle' => "FDR", + 'commentaires' => "FDR retraité TRs propre+Dt fin-actif net valeur absolue", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '|R[223]|', + ), + 125 => array( + 'id' => 231, + 'libelle' => "FR (FONDS DE ROULEMENT)", + 'commentaires' => "Le fonds de roulement représente la différence entre l'actif à court terme et le passif à court terme (dont l'échéance est de moins de douze mois). Un fonds de roulement positif indique qu'une entreprise a suffisamment d'actifs liquides pour régler ses dettes et engagements à court terme (12 mois). +Dans certains cas particuliers, le FDR peut être négatif et l'entreprise viable : GSA ou autre Hypermarchés par exemple. Cette situation devenant risquée en cas de baisse du CA.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[202]- BJ+ BK+ ED- CL- CM- CN', + ), + 126 => array( + 'id' => 232, + 'libelle' => "BFR (Besoin en fonds de roulement)", + 'commentaires' => "Pour les comptables, le BFR correspond aux actifs d'exploitation (hors immobilisations et actifs financiers) diminués du montant des dettes d'exploitation (cad aux fonds indéfiniment mobilisés). Ainsi, une entreprise dont le BFR s'élève à 15 % de son chiffre d'affaires requiert un besoin permanent de trésorerie représentant 15 % de son activité uniquement pour assurer la pérennité de son cycle d'exploitation. Plus le niveau de BFR est faible (ou bien plus sa rotation est forte), plus le dégagement de liquidités est important dès lors que les marges sont positives.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CJ- CK+ YS- CF- CD+ CE+CG- DW- DX- DY- DZ- EA- EB', + ), + 127 => array( + 'id' => 233, + 'libelle' => "Marge brute d'autofinancement (MBA) ou CAF", + 'commentaires' => "C'est l'ensemble des fonds disponibles sécrétés par l'entreprise et qui pourront être réinvestis dans celle-ci pour son développement et pour assurer sa pérennité.S'il y a distribution de dividendes aux associés, ils sont prélevés sur la capacité d'autofinancement. L'autofinancement est égal à la seule partie non distribuée.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HN+ HF+ HG- HB- HC+ GQ- GM+ GA+ GB+ GC+ GD- FP', + ), + 128 => array( + 'id' => 234, + 'libelle' => "COUVERTURE du BFR (FR/BFR)", + 'commentaires' => "Si le FR>BFR, la trésorerie est positive, l'entreprise dispose de disponibilités. Si le FR '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[231]*100)/R[232]', + ), + 129 => array( + 'id' => 235, + 'libelle' => "FR (FONDS DE ROULEMENT) sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[231])*12/nm', + ), + 130 => array( + 'id' => 236, + 'libelle' => "BFR (Besoin FONDS DE ROULEMENT) sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[232])*12/nm', + ), + 131 => array( + 'id' => 237, + 'libelle' => "COUVERTURE des IMMOS NETTES +capitaux permanents/immobilisations nettes", + 'commentaires' => "Financement des immobilisations (les ressources stables doivent couvrir les emplois stables d'autant plus que l'activité de l'entreprise est forte) ce ratio doit être > à 100%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[202]*100)/R[059]', + ), + 132 => array( + 'id' => 238, + 'libelle' => "COUVERTURE du CA +fond de roulement net global sur 12m x 360 / chiffre d'affaire", + 'commentaires' => "Le Fonds de Roulement Net Global (FRNG) correspond au financement des emplois stables. Les emplois stables représentent tous les biens destinés à rester durablement dans l'entreprise contrairement aux emplois circulant qui restent provisoires. Les emplois stables doivent être financés par des ressources elles même stables. Si celles-ci sont insuffisantes, il faut faire appel à des ressources à court terme ce qui constitue un danger pour l'entreprise. Ce ratio mesure la marge de sécurité financière en nombre de jours du chiffre d'affaires.", + 'unite' => 'Jours', + 'borneMin' => '-730', + 'borneMax' => '730', + 'formule' => '(R[235]*360)/R[006]', + ), + 133 => array( + 'id' => 239, + 'libelle' => "SOLVABILITE +capitaux propres / ensemble des dettes", + 'commentaires' => "Ce ratio mesure l'indépendance de l'entreprise au regard des banquiers et la possibilité de contracter de nouveaux emprunts. Il doit être > à 100%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[070]*100)/EC', + ), + 134 => array( + 'id' => 240, + 'libelle' => "INDEPENDANCE FINANCIERE (Cap.propres/Capitaux permanents)", + 'commentaires' => "Vérification de la règle de l'équilibre financier. Le Fonds de Roulement est positif quand ce ratio est supérieur à 100%. Ce ratio, qui en principe ne devrait pas être inférieur à 50%, caractérise l'importance de l'endettement.", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '800', + 'formule' => '(R[070]*100)/|R[202]|;BORN(0)', + ), + 135 => array( + 'id' => 241, + 'libelle' => "ENDETTEMENT GLOBAL (dettes / FP nets)", + 'commentaires' => "Mesure le degré d'indépendance vis-à-vis des tiers. Dans l'approche patrimoniale, il représente la part des dettes par rapport aux fonds propres. La part de ces dettes est variable suivant le secteur d'activité et la taille. Toutefois, elle doit rester raisonnable. L'endettement global doit, pour être acceptable, varier entre 100 et 300%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(EC/(R[070]))*100', + ), + 136 => array( + 'id' => 242, + 'libelle' => "ENDETTEMENT: (Frais financiers+30%credit bail)/EBE %", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '((GR+R[152])*100)/R[140];BORN(-200)', + ), + 137 => array( + 'id' => 243, + 'libelle' => "ENDETTEMENT -1AN +(dettes -1an /passif)", + 'commentaires' => "Mesure le poids des dettes à court terme dans le financement de l'entreprise. Pour l'ensemble des dettes il devrait être inférieur à 70%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[081]*100)/(R[079]+R[090])', + ), + 138 => array( + 'id' => 244, + 'libelle' => "ENDETTEMENT +dettes a + 1 an / capitaux propres", + 'commentaires' => "Le montant des dettes à terme ne defrait pas dépasser le montant des capitaux propres. Il devrait donc être inférieur à 100%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[089]*100)/R[070]', + ), + 139 => array( + 'id' => 245, + 'libelle' => "TAUX INTERET APPARENT (Frais fin/Endett.global)", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[153]*100)/EC', + ), + 140 => array( + 'id' => 246, + 'libelle' => "PART DES FRAIS FI dans résultat brut(Fr.Fin/EBE)", + 'commentaires' => "La norme étant que ce ratio soit < à 50%", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[153]*100)/R[140]', + ), + 141 => array( + 'id' => 247, + 'libelle' => "CAPACITE DE REMBOURSEMENT (Dettes.bancaires.(+MT+LT+C.bail)/CAF)", + 'commentaires' => "Dettes financières/CAF (nombre d'années d'autofinancement pour rembourser les emprunts). Ce ratio doit être < à 4 ans, il n'est pas souhaitable que plus de 50 % de la CAF (6 mois d'exercice) soit consacré au remboursement des emprunts.", + 'unite' => 'AN', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[080]+YQ+YR)/R[233]', + ), + 142 => array( + 'id' => 248, + 'libelle' => "FINANCEMENT DES STOCKS +dettes aux fournisseurs / stock", + 'commentaires' => "Vous pouvez agir sur votre trésorerie disponible en exigeant des délais de règlement plus longs de la part de vos fournisseurs - cela tout en vous conformant à la loi LME relative aux délais de paiement, qui, depuis le 1er janvier 2009, impose à l'ensemble des entreprises un paiement à 60 jours, hors accords dérogatoires. Pour la plupart des entreprises, les règlements clients interviennent après les règlements des achats et des charges. Ainsi, les dettes courantes (dettes liées au cycle d'exploitation : fournisseurs, social) sont \"insuffisantes\" pour couvrir le financement des stocks. Plus difficile pour les petites entreprises que pour les entreprises de taille importante, vous pouvez néanmoins jouer sur la mise en concurrence et challenger régulièrement vos fournisseurs en place.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => 'R[084]*100/R[060]', + ), + 143 => array( + 'id' => 249, + 'libelle' => "Trésorerie nette (FR-BFR)", + 'commentaires' => "Trésorerie nette (FR-BFR)", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[231]-R[232]', + ), + 144 => array( + 'id' => 250, + 'libelle' => "LIQUIDITE IMMEDIATE : (Disponibilité/Dettes CT)", + 'commentaires' => "Situation de trésorerie. Ce ration est en général inférieur à 100%. Si la vitesse des stocks est élevée, un ratio relativement bas n'est pas alarmant. La norme se situe aux environs de 25%, en revanche, une trop grande faiblesse de ce ratio peut indiquer une rupture prochaine de trésorerie.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[063]*100)/R[088]', + ), + 145 => array( + 'id' => 251, + 'libelle' => "LIQUIDITE GENERALE : (Act.circulant net/Dettes CT)", + 'commentaires' => "Le ratio de liquidité mesure la capacité de l'entreprise à respecter ses obligations financières à court terme et à survivre à des conditions économiques défavorables. Lorsque ce ratio est supérieur à 100%, il existe un fond de roulement positif. Un ratio égal à 100% est généralement considéré comme insuffisant pour assurer une bonne solvabilité à court terme, l'entreprise ne disposant pratiquement d'aucune marge de sécurité. Dans certains secteurs de la distribution il est < 100 et dans d'autres comme certains secteurs industriels il avoisine 200%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '((CJ- CK- CH+ CL)*100/R[088])', + ), + 146 => array( + 'id' => 252, + 'libelle' => "LIQUIDITE REDUITE: Disponibilité et créances réelles /Dettes CT)", + 'commentaires' => "On peut considérer que les stocks se révèlent insuffisamment liquides pour couvrir un besoin urgent de liquidités. La vitesse ou la lenteur de la réalisation des stocks peuvent dépendre de la définition du cycle d'exploitation. Ce ratio permet de déterminer la proportion dans laquelle l'entreprise est capable de faire face rapidement à l'exigible à très court terme. Il importe d'être attentif à la disparité importante qui peut exister sur le plan des délais entre les crédits accordés aux clients et les crédits obtenus des fournisseurs. On admet généralement que le coefficient de 50% est valable.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[063]+R[061])*100/R[088]', + ), + 147 => array( + 'id' => 253, + 'libelle' => "LIQUIDITE (Actif circulant net/Dettes d'exploitation)", + 'commentaires' => "Facilité avec laquelle des actifs peuvent être convertis en liquide. L'argent en tant que tel est très liquide. A l'autre extrémité de l'échelle, on trouve les bâtiments et les usines, qui ne le sont pas du tout.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(CJ-CK-CH+CL)*100/R[073]', + ), + 148 => array( + 'id' => 254, + 'libelle' => "Amortissement", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AO+AQ+AS+AU+AW+AY', + ), + 149 => array( + 'id' => 261, + 'libelle' => "RENDEMENT Production sur 12mois / effectif", + 'commentaires' => "Indicateur de gestion sociale. Au sens monétaire et financier, le rendement ou taux de rendement a un sens voisin de celui de ratio de rentabilité (revenu / capital utilisé).", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'R[124]/R[024]', + ), + 150 => array( + 'id' => 262, + 'libelle' => "RENTABILITE ECONOMIQUE + (EBE/TOTAL bilan)", + 'commentaires' => "Le ratio de rentabilité mesure le succès d'ensemble d'une entreprise.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '100', + 'formule' => '(R[140]*100/EE)', + ), + 151 => array( + 'id' => 263, + 'libelle' => "RENTABILITE FINANCIERE (Résult.Net/Cap.propres)", + 'commentaires' => "Le rendement de l'actif (également appelé rendement du capital investi) démontre avec quelle efficacité une entreprise utilise son capital investi pour générer des profits.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(HN*100/R[070])', + ), + 152 => array( + 'id' => 264, + 'libelle' => "RENTABILITE COMMERCIALE + (résultat net/CA)", + 'commentaires' => "Aussi appelé ratio de rentabilité des ventes, la marge bénéficiaire nette montre quel bénéfice après impôt (bénéfice net) dégage chaque Euro de chiffre d'affaires.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(HN*100/(FL+ FO))', + ), + 153 => array( + 'id' => 265, + 'libelle' => "CONTRIBUTION DU CAPITAL +Capacité d'autofinancement sur 12 mois / capitaux permanents", + 'commentaires' => "Ce ratio indique la part de capitaux permanents contribuant au maintien et au développement de l'outil de production ou à la rémunération des capitaux propres. Il devrait être supérieur à 5% en moyenne sur 3 ans.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(((R[233]*12)/nm)*100)/R[202]', + ), + 154 => array( + 'id' => 266, + 'libelle' => "CONTRIBUTION DE LA VA +capacité d'autofinancement  x 100 / valeur ajoutée", + 'commentaires' => "Ce ratio indique la part de valeur ajoutée contribuant au maintien et au développement de l'outil de production ou à la rémunération des capitaux propres. Un taux de 10% constitue un minimum.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[233]*100)/R[130]', + ), + 155 => array( + 'id' => 267, + 'libelle' => "PRODUCTIVITE (CA 12mois / effectif)", + 'commentaires' => "Mesure le chiffre d'affaires produit par chaque employé. On utilise le nombre moyen d'employés puisque l'effectif peut varier en cours d'exercice en fonction des besoins de l'entreprise.", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'R[006]/R[024]', + ), + 156 => array( + 'id' => 268, + 'libelle' => "RENTABILITE EXPLOITATION (EBE/CA+Subventions)", + 'commentaires' => "Ce ratio détermine la marge sur le coût de revient de fabrication, c'est la rentabilité commerciale pure. Il exprime la performance de l'entreprise sur son activité industrielle et commerciale. La centrale de bilan de la Banque de France le définit comme le taux de marge brute commerciale.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[140]*100)/(FL+FO)', + ), + 157 => array( + 'id' => 269, + 'libelle' => "RENDEMENT DE l'EQUIPEMENT (Valeur ajoutée/Immobilisations brutes productives)", + 'commentaires' => "Ce ratio exprime le rendement de l'équipement. La non prise en compte de l'inflation limite toutefois la portée de ce rapport.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[130]*100)/(R[051]+R[052])', + ), + 158 => array( + 'id' => 271, + 'libelle' => "PRODUCTIVITE DE l'ACTIF +chiffre d'affaire/actif comptable", + 'commentaires' => "Ce ratio permet d'apprécier la façon dont les dirigeants utilisent les capitaux qui leur sont confiés. Le ratio est faible(<100%) dans les secteurs qui nécessitent de lourds investissements et il est généralement très fort (>100%) dans le secteur des services.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(FL+FO)*100/EE', + ), + 159 => array( + 'id' => 272, + 'libelle' => "Consommation achats matière HT en AJ HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '(((FU- FV)*12)/nm)/360', + ), + 160 => array( + 'id' => 273, + 'libelle' => "ROTATION STOCK MATIERES & APPRO en AJ HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '(BL- BM)/R[272];BORN(0:730)', + ), + 161 => array( + 'id' => 274, + 'libelle' => "Consommation achat HT/ jour", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '((FS- FT)*12/nm)/360;BORN(0)', + ), + 162 => array( + 'id' => 275, + 'libelle' => "ROTATION STOCK MARCHANDISES en AJ HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '(BT- BU)/R[274];BORN(0:730)', + ), + 163 => array( + 'id' => 276, + 'libelle' => "Production HT journalières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '(((FL+FM+FN)*12)/nm)/360;BORN(0)', + ), + 164 => array( + 'id' => 277, + 'libelle' => "ROTATION STOCK PRODUITS FINIS & EN COURS", + 'commentaires' => "Ce ratio (également appelé ratio de l'utilisation des stocks) mesure le nombre de fois que les stocks ont été renouvelés (vendus et remplacés) au cours d'une année. Ce ratio est un bon indicateur de la qualité des marchandises en stock (degré de désuétude) et de l'efficacité des pratiques d'achat et de gestion des stocks.", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '((BR-BS)+(BN- BO)+(BP- BQ)- DW)/R[276];BORN(0:730)', + ), + 165 => array( + 'id' => 278, + 'libelle' => "DUREE CLIENT (Rotation clients en VJ TTC)", + 'commentaires' => "Ce ratio mesure le nombre moyen de jours qu'il faut aux clients pour payer leurs comptes et donne une indication de l'efficacité des politiques de crédit et de recouvrement en vigueur d'une entreprise. Le résultat permet aussi de déterminer si les modalités de crédit dont se sert l'entreprise sont réalistes. Le nombre de jours dans l'exercice correspond au nombre de jours de la période à mesurer, et s'établit le plus souvent à 365.", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '((BX-BY+ YS)/R[204]);BORN(0:730)', + ), + 166 => array( + 'id' => 279, + 'libelle' => "DUREE FOURNISSEUR (Rotation fournisseurs en JA TTC)", + 'commentaires' => "Ce ratio permet de mesurer le degré d'exigibilité des dettes fournisseurs. Il doit être supérieur au ratio : Durée moyenne du crédit aux clients.", + 'unite' => 'Jours', + 'borneMin' => '0', + 'borneMax' => '730', + 'formule' => '(DX-BV)/R[207];BORN(0:730)', + ), + 167 => array( + 'id' => 280, + 'libelle' => "TX RENOUVELLEMENT IMMOS (Amort Immo corp/Total immo corp)", + 'commentaires' => "Un ratio élevé signifie des immobilisations amorties, soit que les installations soient anciennes, soit que l'amortissement ait été rapide. Les conclusions peuvent être différentes suivant l'interprétation. En principe, ce ratio ne doit pas être > 60%.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '((AO+ AQ+ AS+ AU+ AW+ AY)/(AN+ AP+ AR+ AT+ AV+ AX))*100', + ), + 168 => array( + 'id' => 281, + 'libelle' => "POIDS MASSE SALARIALE +(Ch personnel/VA)", + 'commentaires' => "Ce ratio mesure la richesse distribuée aux salariés. Une VA par an et par employé, inférieure à 30 000 euros est en général considérée comme problématique.", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '((FY+ FZ)/R[130])*100', + ), + 169 => array( + 'id' => 282, + 'libelle' => "AFFECTATION AU CAPITAL TECHNIQUE (Dotations aux amortissements et provisions/Valeur ajoutée)", + 'commentaires' => "Ce ratio qui rapproche les charges non décaissables à la valeur ajoutée est d'autant plus élevé que l'intensité capitalistique de l'entreprise est grande.", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '((GA+GB)*100)/R[130]', + ), + 170 => array( + 'id' => 283, + 'libelle' => "REMUNERATION DU CAPITAL (Résultat net/Valeur ajoutée)", + 'commentaires' => "Ce ratio indique la part revenant au capital et à la gestion dans l'ensemble des rémunérations des facteurs de production.", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '((HN)*100)/R[130]', + ), + 171 => array( + 'id' => 284, + 'libelle' => "REMUNERATION DES CREANCIERS (Frais financiers/Valeur ajoutée)", + 'commentaires' => "Ce ratio indique la part revenant aux créanciers dans l'ensemble des rémunérations des facteurs de production.", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[153]*100)/R[130]', + ), + 172 => array( + 'id' => 285, + 'libelle' => "PART DE L'ETAT (Impots et taxes/Valeur ajoutée)", + 'commentaires' => "Ce ratio indique la part revenant à l'état dans l'ensemble des rémunérations des facteurs de production.", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '((HK+FX)*100)/R[130]', + ), + 173 => array( + 'id' => 286, + 'libelle' => "Ventes journalières HT", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '(R[006])/360;BORN(0)', + ), + 174 => array( + 'id' => 297, + 'libelle' => "Rotation stocks encours production / J vente HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[215]/R[286]', + ), + 175 => array( + 'id' => 298, + 'libelle' => "Rotation stocks encours prod service / J vente HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[217]/R[286]', + ), + 176 => array( + 'id' => 299, + 'libelle' => "Rotation stocks encours prod finis / J vente HT", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[219]/R[286]', + ), + 177 => array( + 'id' => 300, + 'libelle' => "Effets escomptés / trésorerie retraitée", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(YS*100)/|R[226]|', + ), + 178 => array( + 'id' => 301, + 'libelle' => "EBE sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[140]*12)/nm', + ), + 179 => array( + 'id' => 302, + 'libelle' => "IJ pour holding/ste mere", + 'commentaires' => "", + 'unite' => '', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'IJ', + ), + 180 => array( + 'id' => 303, + 'libelle' => "JH pour holding/ste mere", + 'commentaires' => "", + 'unite' => '', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'JH', + ), + 181 => array( + 'id' => 304, + 'libelle' => "ZR pour holding/ste mere", + 'commentaires' => "", + 'unite' => '', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'ZR', + ), + 182 => array( + 'id' => 305, + 'libelle' => "Actif économique (Capitaux propres + Dettes Fi Nettes)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[070]+R[088]+R[089]-R[226]', + ), + 183 => array( + 'id' => 306, + 'libelle' => "CA/12 mois hors inflation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[006]*(100-INFLATION))/100', + ), + 184 => array( + 'id' => 307, + 'libelle' => "TAUX DE MARGE (EBE/VA)", + 'commentaires' => "Le taux de marge EBE/VA est l'indicateur de rentabilité interne de l'entreprise et de la valorisation des produits de l'entreprise; il dépend fortement du niveau des salaires.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[140]*100)/R[130]', + ), + 185 => array( + 'id' => 308, + 'libelle' => "LIQUIDITE GENERALE (Act.circulant net/Dettes CT) =R251 pas en %", + 'commentaires' => "Liquidité en fois les dettes", + 'unite' => 'U', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((CJ-CK-CH+CL)/R[088])', + ), + 186 => array( + 'id' => 309, + 'libelle' => "Capital souscrit appelé non versé", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CB', + ), + 187 => array( + 'id' => 310, + 'libelle' => "actif immo brut(-terrain)/total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((BJ-AN)*100)/EE', + ), + 188 => array( + 'id' => 311, + 'libelle' => "Foncier", + 'commentaires' => "Terrain+constructions", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AN+AP', + ), + 189 => array( + 'id' => 312, + 'libelle' => "Fonds de commerce", + 'commentaires' => "Fonds", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AH', + ), + 190 => array( + 'id' => 313, + 'libelle' => "RN/TB", + 'commentaires' => "%Résultat du Total bilan", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[010]*100/EE', + ), + 191 => array( + 'id' => 314, + 'libelle' => "Foncier/TB", + 'commentaires' => "%Foncier du Total bilan", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[311]*100/EE', + ), + 192 => array( + 'id' => 315, + 'libelle' => "SOUS TRAITANCE, personnel extérieur à l'entreprise s/12mois", + 'commentaires' => "RESOURCES EXTERNES", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((YT+YU)*12)/nm ', + ), + 193 => array( + 'id' => 316, + 'libelle' => "% Sous traitance de la MASSE SALARIALE", + 'commentaires' => "% de la sous traitance/MASSE SALARIALE", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(YT+YU)*100/(FY+FZ)', + ), + 194 => array( + 'id' => 317, + 'libelle' => "Droit au bail", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CP', + ), + 195 => array( + 'id' => 318, + 'libelle' => "Bénéfice Réel = RCAI-impots s/benef", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[170]-R[181])*12)/nm', + ), + 196 => array( + 'id' => 319, + 'libelle' => "Moyenne du benef réel s/3 ans", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[318],3)', + ), + 197 => array( + 'id' => 320, + 'libelle' => "Moyenne du benef net s/3 ans", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[011],3)', + ), + 198 => array( + 'id' => 321, + 'libelle' => "Bénéfice +- Exceptionnel + dotations amortissements", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[199]-R[171]+R[172]+GA)*12)/nm', + ), + 199 => array( + 'id' => 322, + 'libelle' => "Moyenne du benef +dot s/3 ans", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[321],3)', + ), + 200 => array( + 'id' => 330, + 'libelle' => "Taux de charges sociales patronales", + 'commentaires' => "Le montant des charges sociales patronales est compris entre 25% à 42% du salaire brut (ou 54% du salaire net)", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => 'FZ/FY', + ), + 201 => array( + 'id' => 331, + 'libelle' => "Salaire moyen", + 'commentaires' => "Salaire moyen dans l'entreprise", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => 'FY/YP', + ), + 202 => array( + 'id' => 500, + 'libelle' => "15% TOTAL BILAN pour score CCF hors holding", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EE*0.15', + ), + 203 => array( + 'id' => 501, + 'libelle' => "Participations brutes/ actif immo brut", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(CS+CU)*100/(BJ-AN)', + ), + 204 => array( + 'id' => 502, + 'libelle' => "Part des amortissements/participations", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(CV+BC)*100/(CS+CU)', + ), + 205 => array( + 'id' => 503, + 'libelle' => "MBA/CA", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[233]*100/R[005]', + ), + 206 => array( + 'id' => 504, + 'libelle' => "Total production rapporté sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '(((FL+FM+FN)*12)/nm);BORN(0)', + ), + 207 => array( + 'id' => 505, + 'libelle' => "Valeur Ajoutée /CA en 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '((R[130]*12)/nm)*100/R[006]', + ), + 208 => array( + 'id' => 506, + 'libelle' => "EBE /CA en 12 mois", + 'commentaires' => "EBE/CA rend compte des relations avec le marché", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[140]*12)/nm)*100/R[006]', + ), + 209 => array( + 'id' => 507, + 'libelle' => "Résultat Exploitation/CA en 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[017]*100)/R[006]', + ), + 210 => array( + 'id' => 508, + 'libelle' => "Résultat Courant avant Impots/CA en 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[170]*12)/nm)*100/R[006]', + ), + 211 => array( + 'id' => 509, + 'libelle' => "Résultat Net /CA en 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[011]*100)/R[006]', + ), + 212 => array( + 'id' => 510, + 'libelle' => "Capitaux propres /Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '-800', + 'borneMax' => '800', + 'formule' => '(R[070]*100)/R[022]', + ), + 213 => array( + 'id' => 511, + 'libelle' => "Fonds propres+cptes courants/Total resources", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[070]+R[072])*100/(R[079]+R[090])', + ), + 214 => array( + 'id' => 512, + 'libelle' => "Trésorerie nette/Jours de CA", + 'commentaires' => "", + 'unite' => 'Jours', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[226]/R[286]', + ), + 215 => array( + 'id' => 513, + 'libelle' => "Résultat économique net en 12 mois", + 'commentaires' => "Résultat économique à 12 mois", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((HN- HI- FO- FP)*12)/nm', + ), + 216 => array( + 'id' => 514, + 'libelle' => "Résultat économique sur CA en 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[513]*100)/R[006]', + ), + 217 => array( + 'id' => 515, + 'libelle' => "Résultat économique net du bilan", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(HN-HI-FO-FP)', + ), + 218 => array( + 'id' => 516, + 'libelle' => "Différence en % entre Rés éco et Res net", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[513]-R[011])*100/R[011]', + ), + 219 => array( + 'id' => 517, + 'libelle' => "MBA/actif-terrain, actif immo brut", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[233]*100)/(BJ-AN)', + ), + 220 => array( + 'id' => 518, + 'libelle' => "MBA/dettes LMT", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[233]*100)/R[080]', + ), + 221 => array( + 'id' => 519, + 'libelle' => "dettes LMT/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[080]*100)/R[022]', + ), + 222 => array( + 'id' => 520, + 'libelle' => "Frais fin/CA sur l'année", + 'commentaires' => "Ce ratio permet de comparer toutes les entreprises entre elles. Il mesure le degré d'endettement de l'entreprise de manière indirecte. Un taux de 3 à 4% peut être considéré comme acceptable selon l'activité commerciale ou industrielle.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[153]*100)/R[005]', + ), + 223 => array( + 'id' => 521, + 'libelle' => "Liquidités élargies (Encaisse+Titres Nég+Cpte Client)/Déboursé quotidien", + 'commentaires' => "Ce ratio indique pendant combien de jours les éléments les plus liquides de l'actif à court terme permettent à l'entreprise de faire face au déboursé quotidien.", + 'unite' => 'jours', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[226]+CS-CT+CU-CV+BB-BC+R[210])/((R[102]+R[121]+R[123]+R[132]+R[133]+R[142])/360)', + ), + 224 => array( + 'id' => 522, + 'libelle' => "Résultat Exploitation/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[016]*100)/R[022]', + ), + 225 => array( + 'id' => 523, + 'libelle' => "Résultat Net/Capitaux propres", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[010]*100)/R[070]', + ), + 226 => array( + 'id' => 524, + 'libelle' => "Immos corporelles nettes/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[052]*100)/R[022]', + ), + 227 => array( + 'id' => 525, + 'libelle' => "Stocks/Total bilan", + 'commentaires' => "Représente les contraintes techniques et économiques qui pèsent sur une société. Il est fonction par exemple du cycle de production du produit; pour les entreprises de service, il est moins élevé (proche de 0) que dans l'industrie.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[060]*100)/R[022]', + ), + 228 => array( + 'id' => 526, + 'libelle' => "Disponibilités/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[063]*100)/R[022]', + ), + 229 => array( + 'id' => 527, + 'libelle' => "Capitaux permanents/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[202]*100)/R[022]', + ), + 230 => array( + 'id' => 528, + 'libelle' => "Taux de marge commerciale", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[110]*100)/R[005]', + ), + 231 => array( + 'id' => 529, + 'libelle' => "Dividendes sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(ZE*12)/nm', + ), + 232 => array( + 'id' => 530, + 'libelle' => "RCAI+Frais fin/Frais financiers", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[153]+R[170])*100)/R[153]', + ), + 233 => array( + 'id' => 531, + 'libelle' => "RCAI+Frais fin+loyers/Frais financiers+loyers", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '((R[153]+R[170]+XQ)*100)/(R[153]+XQ)', + ), + 234 => array( + 'id' => 532, + 'libelle' => "Immos corporelles nettes/immos corporelles brutes", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[052]*100)/(BJ-AN)', + ), + 235 => array( + 'id' => 533, + 'libelle' => "Immos financières nettes/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '800', + 'formule' => '(R[053]*100)/R[022]', + ), + 236 => array( + 'id' => 534, + 'libelle' => "CA France / CA total", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '100', + 'formule' => '(R[001]*100)/R[005]', + ), + 237 => array( + 'id' => 535, + 'libelle' => "Dividendes / Capitaux Propres", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '800', + 'formule' => '(ZE*100)/R[070]', + ), + 238 => array( + 'id' => 536, + 'libelle' => "Moyenne sur 3 ans de croissance du CA hors inflation", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[306],3)', + ), + 239 => array( + 'id' => 537, + 'libelle' => "Hausse moyenne CAF/CA sur 3 ans", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[503],3)', + ), + 240 => array( + 'id' => 538, + 'libelle' => "CAF / Actif économique", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[233]*100)/R[305]', + ), + 241 => array( + 'id' => 539, + 'libelle' => "Moyenne sur 3 ans de CAF/Actif économique", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[538],3)', + ), + 242 => array( + 'id' => 540, + 'libelle' => "MBA / Capitaux permanents", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[233]*100)/R[202]', + ), + 243 => array( + 'id' => 541, + 'libelle' => "Moyenne sur 3 ans de CAF/Capitaux permanents", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[540],3)', + ), + 244 => array( + 'id' => 542, + 'libelle' => "REX / Charges Fi", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '0', + 'borneMax' => '800', + 'formule' => '(R[016]*100)/R[153]', + ), + 245 => array( + 'id' => 543, + 'libelle' => "Rentabilité de l'avoir des actionnaires", + 'commentaires' => "Indique le bénéfice réalisé pour chaque EURO de financement par l'avoir (Résultat Net / Fonds Propres + comptes courant)", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[010]*100)/(R[070]+R[072])', + ), + 246 => array( + 'id' => 544, + 'libelle' => "Valeur Ajoutée par salarié", + 'commentaires' => "(VA 12 mois)/ Effectif", + 'unite' => 'EUR', + 'borneMin' => '0', + 'borneMax' => '', + 'formule' => '((R[130]*12)/nm)/R[024]', + ), + 247 => array( + 'id' => 545, + 'libelle' => "Subventions et Résultat Exceptionnel (Résultat économique - Résultat Net)", + 'commentaires' => "Différence entre le résultat économique et le résultat net", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[515]-R[010]', + ), + 248 => array( + 'id' => 546, + 'libelle' => "Dettes de bas de bilan", + 'commentaires' => "Total Bilan - Capitaux Permanents", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[022]-R[231]-R[202]', + ), + 249 => array( + 'id' => 547, + 'libelle' => "Actif Circulant", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CJ-CK', + ), + 250 => array( + 'id' => 548, + 'libelle' => "Actif immobilisé par différence total bilan", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[022]-R[547]', + ), + 251 => array( + 'id' => 549, + 'libelle' => "Primes émission fusion, apport", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DB', + ), + 252 => array( + 'id' => 550, + 'libelle' => "Ecart de réévaluation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DC', + ), + 253 => array( + 'id' => 551, + 'libelle' => "Reports à nouveaux", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DH', + ), + 254 => array( + 'id' => 552, + 'libelle' => "Total des éléments reports", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[549]+R[550]+R[551]', + ), + 255 => array( + 'id' => 553, + 'libelle' => "Amortissements hors Crédit Bail", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[145]-R[144]', + ), + 256 => array( + 'id' => 554, + 'libelle' => "Immos incorporelles nettes/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '100', + 'formule' => '(R[051]*100)/R[022]', + ), + 257 => array( + 'id' => 555, + 'libelle' => "Produits financiers/Immobilisations financières nettes", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '100', + 'formule' => '(R[151]*100)/R[053]', + ), + 258 => array( + 'id' => 556, + 'libelle' => "Autres Créances/Total bilan", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '100', + 'formule' => '(R[062]*100)/R[022]', + ), + 259 => array( + 'id' => 557, + 'libelle' => "Moyenne sur 3 ans de la contribution du capital(capa auto fin/cap permanents)", + 'commentaires' => "Moyenne sur 3 ans de la contribution du capital", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '100', + 'formule' => 'MOY(R[265],3)', + ), + 260 => array( + 'id' => 558, + 'libelle' => "Réalisable = Actif circulant-disponible-stocks-FRN", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[547]-R[063]-R[060]-R[223]', + ), + 261 => array( + 'id' => 559, + 'libelle' => "Valeur absolue de FR", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '|R[223]|', + ), + 262 => array( + 'id' => 560, + 'libelle' => "Valeur absolue de TRESORERIE", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '|R[063]|', + ), + 263 => array( + 'id' => 561, + 'libelle' => "Chiffre d'affaires HT & autres produits d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[005]+FQ+FO', + ), + 264 => array( + 'id' => 562, + 'libelle' => "Variation des créances clients & autres créances d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BX+BV-BW)+(YS)+(CN)+(CH-CI)', + ), + 265 => array( + 'id' => 563, + 'libelle' => "Recettes d'exploitation (a)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[561]-R[562]', + ), + 266 => array( + 'id' => 564, + 'libelle' => "Achats & autres charges d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'FW+FX+FY+FZ+GE', + ), + 267 => array( + 'id' => 565, + 'libelle' => "Variation des dettes fournisseurs & autres dettes d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DX+DW+EB+ED', + ), + 268 => array( + 'id' => 566, + 'libelle' => "Dépenses d'exploitation (b)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[564]-R[565]', + ), + 269 => array( + 'id' => 567, + 'libelle' => "Excédent de Trésorerie d'Exploitation (ETE) (a-b)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[563]-R[566]', + ), + 270 => array( + 'id' => 568, + 'libelle' => "Flux liés aux opérations hors exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GL+GN-GS+HA-HE', + ), + 271 => array( + 'id' => 569, + 'libelle' => "Intérêts bancaires", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'GR', + ), + 272 => array( + 'id' => 570, + 'libelle' => "Impôts sur les bénéfice", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HK+DY1-DY', + ), + 273 => array( + 'id' => 571, + 'libelle' => "Flux affectés à la participation des salariés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'HJ', + ), + 274 => array( + 'id' => 572, + 'libelle' => "Dividendes versés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'ZE', + ), + 275 => array( + 'id' => 573, + 'libelle' => "Flux de trésorerie interne (A)", + 'commentaires' => "Le flux de trésorerie interne est un indicateur permettant de mesurer le degré de liberté de +l'entreprise par sa capacité à investir et à se désendetter. Il informe sur le degré de maîtrise des mouvements de trésorerie ainsi que sur la cohérence des politiques suivies.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[567]+R[568]-R[569]-R[570]-R[571]-R[572]', + ), + 276 => array( + 'id' => 574, + 'libelle' => "Investissements d'exploitation hors production immobilisé", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'LP+KF', + ), + 277 => array( + 'id' => 575, + 'libelle' => "Acquisition de participations & autres titres immobilisés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'LS', + ), + 278 => array( + 'id' => 576, + 'libelle' => "Variation des autres actifs immobilisés hors charges à répartir", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'KF', + ), + 279 => array( + 'id' => 577, + 'libelle' => "Subventions d'investissement reçues", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DJ', + ), + 280 => array( + 'id' => 578, + 'libelle' => "Variation des dettes sur immobilisations", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'DZ-DZ1', + ), + 281 => array( + 'id' => 579, + 'libelle' => "Encaissements sur cessions d'immobilisations", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'NG', + ), + 282 => array( + 'id' => 580, + 'libelle' => "Flux d'investissement (I)", + 'commentaires' => "Le flux d'investissement renseigne sur les choix de l'entreprise en matière d'investissements de renouvellement ou de croissance. Il permet d'évaluer les conséquences de la politique d'investissement ou de désinvestissement sur la situation financière de l'entreprise.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[574]+R[575]+R[576]-R[577]-R[578]-R[579]', + ), + 283 => array( + 'id' => 581, + 'libelle' => "Augmentation-Réduction de capital", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AA-AA1', + ), + 284 => array( + 'id' => 582, + 'libelle' => "Variation des créances sur capital appelé non versé", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CC1-CC2', + ), + 285 => array( + 'id' => 583, + 'libelle' => "Flux du capital (C)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[581]-R[582]', + ), + 286 => array( + 'id' => 584, + 'libelle' => "Nouveaux emprunts bancaires ou financiers", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'VJ+GR', + ), + 287 => array( + 'id' => 585, + 'libelle' => "Remboursements d'emprunts", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'VK+(HP+HQ)+GR1', + ), + 288 => array( + 'id' => 586, + 'libelle' => "Variation des emprunts (D)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[584]-R[585])', + ), + 289 => array( + 'id' => 587, + 'libelle' => "Variation des crédits bancaires courants", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EH-EH1', + ), + 290 => array( + 'id' => 588, + 'libelle' => "Variation des créances cédées non échues", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'YS-YS1', + ), + 291 => array( + 'id' => 589, + 'libelle' => "Variation de la trésorerie du passif (E)", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[587]+R[588]', + ), + 292 => array( + 'id' => 590, + 'libelle' => "Flux du financement (F)=(C)+(D)+(E)", + 'commentaires' => "Le flux de financement sur la politique financière externe de l'entreprise : augmentation de capital et emprunt, financement stable et crédit de trésorerie.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[583]+R[586]+R[589]', + ), + 293 => array( + 'id' => 591, + 'libelle' => "Variation du disponible", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CG-CG2', + ), + 294 => array( + 'id' => 592, + 'libelle' => "Variation des valeurs mobilières de placement", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'CE-CE2', + ), + 295 => array( + 'id' => 593, + 'libelle' => "Variation de la trésorerie d'actif = (A)-(I)+(F)", + 'commentaires' => "Variation des disponibilités + Variation des VMP + Variation des avances de trésorerie aux groupes et associés", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[573]-R[580]+R[590]', + ), + 296 => array( + 'id' => 594, + 'libelle' => "hauteur FRN>0", + 'commentaires' => "hauteur FRN>0", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[022]-R[059]-R[223])', + ), + 297 => array( + 'id' => 595, + 'libelle' => "hauteur FRN<0", + 'commentaires' => "hauteur FRN<0", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[022]-R[079]-R[080]-R[230])', + ), + 298 => array( + 'id' => 596, + 'libelle' => "A financer (dettes CT)", + 'commentaires' => "FINANCEMENT", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EE-R[079]-R[089]-R[084]', + ), + 299 => array( + 'id' => 597, + 'libelle' => "Disponible", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'EE-R[065]-R[060]-R[059]', + ), + 300 => array( + 'id' => 598, + 'libelle' => "Dividendes sur 12 mois moy 3 ans", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'MOY(R[529],3)', + ), + 301 => array( + 'id' => 701, + 'libelle' => "Fonds propres", + 'commentaires' => "Dans la directive européenne, les fonds propres de base des Banquesdoivent représenter au minimum 50% du total des fonds propres requis pour couvrir le risque de crédit de l'établissement, le reste ne pouvant être assuré que par des fonds propres complémentaires, et au minimum 2/7 des fonds propres requis pour couvrir les risques de marché, le reste pouvant être assuré par des fonds propres complémentaires et sur-complémentaires.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BP3', + ), + 302 => array( + 'id' => 702, + 'libelle' => "Produit net bancaire (produits d'exploitation-charges d'exploitation)", + 'commentaires' => "Le produit net bancaire (PNB) est un indicateur qui rend compte de l'ensemble des activités de la banque et détermine sa marge brute. Les principaux composants du PNB sont : les intérêts perçus sur la clientèle et ceux versés aux tiers, les produits du portefeuille titres et des participations, les autres produits d'exploitation bancaire (essentiellement les commissions de services).", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BR3', + ), + 303 => array( + 'id' => 703, + 'libelle' => "Résultat brut d'exploitation", + 'commentaires' => "Pour les banques, le résultat brut d'exploitation (RBE) est égal au PNB (le cas échéant au PGE) diminué des charges de structure. Il est un indicateur de référence de l'activité bancaire proprement dite (hors provisions et éléments exceptionnels). Le coefficient net d'exploitation est un ratio important qui rapporte les charges de structure au PNB (il mesure la part du PNB qui est consommée par ces charges : il est préférable qu'il soit nettement inférieur à 70%).", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BP8', + ), + 304 => array( + 'id' => 704, + 'libelle' => "Capital", + 'commentaires' => "La loi précise que la banque doit à tout moment justifier que son actif excède d'un montant au moins égal au capital minimum le passif dont elle est tenu envers les tiers. (Loi n°84-46 du 24 janvier 1984 modifiée) Le dernier règlement (8 XII 2000) fixe pour les banques, le montant du capital minimum à 5 millions d'euros.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BP3', + ), + 305 => array( + 'id' => 705, + 'libelle' => "Solde établissements de crédit sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BA1-BP1)*12/nm', + ), + 306 => array( + 'id' => 706, + 'libelle' => "Solde clientèle sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BA2-BP2)*12/nm', + ), + 307 => array( + 'id' => 707, + 'libelle' => "CA sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BR1*12)/nm', + ), + 308 => array( + 'id' => 708, + 'libelle' => "Charges sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BR2*12)/nm', + ), + 309 => array( + 'id' => 710, + 'libelle' => "FONDS PROPRES DE BASE (Tier 1) (capital+réserves (autres que réévaluation)+primes d'émission ou fusion+report à nouveau+résultats non distribués+fonds pour risques bancaires généraux.)", + 'commentaires' => "Fonds propres de base (noyau dur ou tiers 1): le capital, les réserves (autres que réserves de réévaluation), les primes d'émission ou de fusion, le report à nouveau, les résultats non distribués et les fonds pour risques bancaires généraux. Estimation du résultat non distribué + fonds pour risques = Résultat-dividendes = résultat - 7%.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BP3+BP4+BP5+BP7+BP8-(BP8*0.07)', + ), + 310 => array( + 'id' => 711, + 'libelle' => "FONDS PROPRES COMPLEMENTAIRES (Tier 2) Réserves de réévaluation+fonds de garantie mutualisés+subventions non remboursables+réserve latente des opérations de Crédit-bail+fonds provenant de l'émission de titres et emprunts)", + 'commentaires' => "Dans le calcul des fonds propres prudentiels, les fonds propres complémentaires ne peuvent pas dépasser le montant des fonds propres de base.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BP6;LIM(R[710])', + ), + 311 => array( + 'id' => 712, + 'libelle' => "FONDS PROPRES DE BASE sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[710]*12)/nm', + ), + 312 => array( + 'id' => 713, + 'libelle' => "FONDS PROPRES COMPLEMENTAIRES sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[711]*12)/nm', + ), + 313 => array( + 'id' => 715, + 'libelle' => "COEFFICIENT DE LIQUIDITE (disponibilités à vue ou à 1 mois / exigibilités remboursables à vue ou à 1 mois)", + 'commentaires' => "Permet aux établissements de crédit d'être en mesure de faire face à tout moment à des retraits. Ce montant doit être en permanence > 100 %", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '0', + ), + 314 => array( + 'id' => 716, + 'libelle' => "POIDS DES DETTES/CAPITAUX PROPRES DE BASE (total des dettes / 12,5 Fonds propres de base)", + 'commentaires' => "le total des dettes ne doit pas dépasser 12,5 fois le montant des capitaux propres", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BP1+BP2-BA1-BA2)/(R[710]*12.5)', + ), + 315 => array( + 'id' => 720, + 'libelle' => "ENGAGEMENTS (ensemble des engagements)", + 'commentaires' => "Les établissements de crédit sont tenus de respecter en permanence un ratio de solvabilité, rapport entre le montant de leurs fonds propres et celui de l'ensemble des risques qu'ils encourent du fait de leurs opérations, au moins égal à 8%. (Règlement n°91-05 du 15 février 1991, dernière modification n°2000-09 du 8 décembre 2000).", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BP1+BP2-BA1+(BA1*0.20)-BA2+(BA2*0.025))', + ), + 316 => array( + 'id' => 721, + 'libelle' => "ENGAGEMENTS sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[720]*12)/nm', + ), + 317 => array( + 'id' => 722, + 'libelle' => "POIDS DES ENGAGEMENTS SUR FONDS PROPRES DE BASE (Tier1) (Fonds propres/ensemble des engagements)", + 'commentaires' => "fonds propres / ensemble des engagements > 4% (Tenant compte de la Pondération à 20% pour les crédits aux autres établissements bancaires et 100% pour les crédits accordés aux entreprises ou aux particuliers selon la recommandation du comité de Bale). 2,78% pour les entreprises selon le BULLETIN 30 de la COMMISSION BANCAIRE d'AVRIL 2004. Nous adoptons 2,5% de taux de défaut", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[712]*100)/R[721]', + ), + 318 => array( + 'id' => 723, + 'libelle' => "POIDS DES ENGAGEMENTS SUR FONDS PROPRES & QUASI FONDS PROPRES (Fonds propres Tier1+Tier2/ensemble des engagements)", + 'commentaires' => "(fonds propres + quasi fonds propres)/ensemble des engagements > 8% (Tenant compte de la Pondération à 20% pour les crédits aux autres établissements bancaires et 100% pour les crédits accordés aux entreprises ou aux particuliers selon la recommandation du comité de Bale). 2,78% pour les entreprises selon le BULLETIN 30 de la COMMISSION BANCAIRE d'AVRIL 2004. Nous adoptons 2,5% de taux de défaut.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[712]+R[713])*100/R[721]', + ), + 319 => array( + 'id' => 724, + 'libelle' => "8% ENGAGEMENTS sur 12 mois", + 'commentaires' => "", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'R[721]*0.08', + ), + 320 => array( + 'id' => 730, + 'libelle' => "RENTABILITE DES FONDS PROPRES(s/Tier1) (Résultat net /Fonds propres)", + 'commentaires' => "La rentabilité : ROE, ROA. Le retour sur fonds propres (Return on Equity, ROE) est un ratio qui mesure la rentabilité des fonds propres de la banque. Exemple d'objectif assigné : 15% de ROE.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BR3/R[710]', + ), + 321 => array( + 'id' => 731, + 'libelle' => "RENTABILITE DES FONDS PROPRES & QUASI FONDS PROPRES (Résultat net /Fonds propres Tier1+Tier2)", + 'commentaires' => "La rentabilité : ROE, ROA. Le retour sur fonds propres (Return on Equity, ROE) est un ratio qui mesure la rentabilité des fonds propres de la banque. Exemple d'objectif assigné : 15% de ROE.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BR3/(R[710]+R[711])', + ), + 322 => array( + 'id' => 732, + 'libelle' => "RENTABILITE DE l'ACTIF(ROA) (Résultat net /Total bilan)", + 'commentaires' => "Le retour sur actifs (Return on Assets, ROA) est l'expression de la rentabilité des actifs de la banque. Il rapporte le résultat net au total du bilan.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'BR3/BA3', + ), + 323 => array( + 'id' => 740, + 'libelle' => "DIVISION DES RISQUES SUR FOND PROPRES DE BASE (Mt de risque de non remboursement> 15% des FP/ 8 fois FP)", + 'commentaires' => "Montant risque de non remboursement au delà de 15% des FP doit être < à 8 fois les FP Ce ratio doit être < à 100% (Tenant compte de la Pondération à 20% pour les crédits aux autres établissements bancaires et 100% pour les crédits accordés aux entreprises ou aux particuliers selon la recommandation du comité de Bâle). 2,78% pour les entreprises selon le BULLETIN 30 de la COMMISSION BANCAIRE d'AVRIL 2004. Nous adoptons 2,5% de taux de défaut.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BA1-(BA1*0.2)+BA2-(BA2*0.025)-(R[710]*0.15))*100/(R[710]*8)', + ), + 324 => array( + 'id' => 741, + 'libelle' => "DIVISION DES RISQUES SUR FOND PROPRES & QUASI FOND PROPRES (Mt de risque de non remboursement> 15% des FP/ 8 fois FP)", + 'commentaires' => "Montant risque de non remboursement au delà de 15% des FP doit être < à 8 fois les FP Ce ratio doit être < 100% (Tenant compte de la Pondération à 20% pour les crédits aux autres établissements bancaires et 100% pour les crédits accordés aux entreprises ou aux particuliers selon la recommandation du comité de Bale). 2,78% pour les entreprises selon le BULLETIN 30 de la COMMISSION BANCAIRE d'AVRIL 2004. Nous adoptons 2,5% de taux de défaut.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(BA1-(BA1*0.2)+BA2-(BA2*0.025)-((R[710]+R[711])*0.15))*100/((R[710]+R[711])*8)', + ), + 325 => array( + 'id' => 742, + 'libelle' => "COEFFICIENT DE FONDS PROPRES ET DE RESOURCES PERMANENTE (ressources d'une durée résiduelle > 5 ans / emplois d'une durée résiduelle > 5 ans)", + 'commentaires' => "Ce coefficient doit inciter les établissements a limiter les prêts à moyen et long terme par des ressources monétaires. Les ressources > 5 ans doivent permettre de financer plus de 60 % des emplois effectués par la banque pour des durées > 5 ans. niveau minimal de couverture des emplois longs par des ressources stables doit être en permanence > 60 %", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '0', + ), + 326 => array( + 'id' => 751, + 'libelle' => "Fonds propres", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AP1', + ), + 327 => array( + 'id' => 752, + 'libelle' => "Provisions techniques brutes", + 'commentaires' => "Provision technique destinée à lisser les résultats financiers des placements obligataires à taux fixe en cas de variation de taux. Les plus-values réalisées en cas de cession d'obligations sont versées à cette réserve. Les moins-values réalisées sont compensées par un prélèvement sur cette réserve, qui est admise dans la marge de solvabilité.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AP2', + ), + 328 => array( + 'id' => 753, + 'libelle' => "Résultat brut d'exploitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => 'AR3', + ), + 329 => array( + 'id' => 757, + 'libelle' => "CA sur 12 mois", + 'commentaires' => "Impact de l'Augmentation du Chiffre d'Affaires sur les Fonds Propres. Les mécanismes de la marge sont tels que l'expansion du chiffre d'affaires doit être de qualité, de manière que le bénéfice qui en résulte puisse couvrir la dotation additionnelle en fonds propres pour pouvoir maintenir le rapport FP=20% CA NET. En appelant t l'accroissement de l'année n+1 par rapport à l'année n. Pour un accroissement de t=5 pour l'année 2 par rapport à l'année 1, nous aurons: F1 (F.P année 1)= 20% C.A NET F2 (F.P année 2)= 20% C.A NET 5x20% C.A Net Accroissement: F2-F1= 5%x20% C.A = 5x20% =1. La dotation au fonds propres rapportée au chiffre d'affaires de n+2 est égale à 1/105, soit 0,95 %.", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR1*12)/nm', + ), + 330 => array( + 'id' => 758, + 'libelle' => "Charges sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR2*12)/nm', + ), + 331 => array( + 'id' => 761, + 'libelle' => "FONDS PROPRES sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AP1*12)/nm', + ), + 332 => array( + 'id' => 762, + 'libelle' => "PROVISIONS TECHNIQUES sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AP2*12)/nm', + ), + 333 => array( + 'id' => 770, + 'libelle' => "SOLVABILITE assurance Vie (Fonds propres/Provisions techniques)", + 'commentaires' => "Solvabilité assurance vie =(Fonds Propres + Plus-values latentes)/Provisions Mathématiques. La réglementation Solvabilité I, directive européenne impose d'avoir en fonds propres un montant équivalent à un minimum de 4% des provisions mathématiques pour les contrats en euros et 1% pour les contrats en unités de compte.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[761]*100)/R[762]', + ), + 334 => array( + 'id' => 771, + 'libelle' => "SOLVABILITE assurance Dommages (Fonds propres/CA)", + 'commentaires' => "Solvabilité assurance dommage =(Fonds Propres + Plus-values latentes)/Cotisations Le minimum de fonds propres est égal à 16 % des primes (ou à 23 % des sinistres, le montant le plus élevé étant retenu).", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AP1*100)/AR1', + ), + 335 => array( + 'id' => 772, + 'libelle' => "COUVERTURE DES SINISTRES (Fonds propres/sinistres)", + 'commentaires' => "En assurance non-vie, le minimum de fonds propres est égal à 23 % des sinistres (ou à 16 % des primes, le montant le plus élevé étant retenu).", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AP1*100)/AR2', + ), + 336 => array( + 'id' => 780, + 'libelle' => "RENTABILITE DES FONDS PROPRES, ROE (Résultat net /Fonds propres)", + 'commentaires' => "La rentabilité : ROE, ROA. Le retour sur fonds propres (Return on Equity, ROE) est un ratio qui mesure la rentabilité des fonds propres de la banque. Exemple d'objectif assigné : 15% de ROE.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR4*100)/AP1', + ), + 337 => array( + 'id' => 781, + 'libelle' => "RENTABILITE DU CHIFFRE AFFAIRES, MARGE NETTE (Résultat net /CA)", + 'commentaires' => "Aussi appelé ratio de rentabilité des ventes, la marge bénéficiaire nette montre quel bénéfice après impôt (bénéfice net) dégage chaque Euro de chiffre d'affaires.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR4*100)/AR1', + ), + 338 => array( + 'id' => 782, + 'libelle' => "RENTABILITE DE l'ACTIF(ROA) (Résultat net /Total bilan)", + 'commentaires' => "Le retour sur actifs (Return on Assets, ROA) est l'expression de la rentabilité des actifs de la banque. Il rapporte le résultat net au total du bilan.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR4*100)/AA2', + ), + 339 => array( + 'id' => 783, + 'libelle' => "RENTABILITE FINANCIERE (Résultat net /Fonds propres-Résultat net)", + 'commentaires' => "Ce taux mesure la rentabilité d'un euro investi par l'actionnaire dans l'entreprise.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR4*100)/(AP1-AR4)', + ), + 340 => array( + 'id' => 784, + 'libelle' => "RENTABILITE TECHNIQUE (Sinistres/Primes)", + 'commentaires' => "Il y a excédent de pertes quand le ratio sinistres/primes dépasse un pourcentage de l'ordre de 105%.(Stop loss)", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AR2*100)/AR1', + ), + 341 => array( + 'id' => 791, + 'libelle' => "COUVERTURE DES PLACEMENTS (Placements/Fonds propres)", + 'commentaires' => "Les établissements de crédit peuvent prendre et détenir des participations (10% ou plus du capital ou des droits de vote) dans le capital d'une entreprise sous certaines conditions. Ces participations ne doivent à aucun moment excéder un pourcentage des fonds propres de l'établissement de crédit. Ce pourcentage est fixé par la réglementation à 15% pour chaque participation et à 60% pour l'ensemble. (Règlement n°90-06 du 20 juin 1990, dernière modification n°2000-03 du 6 septembre 2000)", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AA1*100)/AP1', + ), + 342 => array( + 'id' => 792, + 'libelle' => "PART DES PROVISIONS TECHNIQUES (Placements/Provisions techniques)", + 'commentaires' => "Les sociétés d'assurances doivent diviser les risques de leurs placements : elles ne peuvent pas placer plus de 5 % de leurs provisions techniques en valeurs émises par une même société (actions, obligations ou prêts). La limite de 5 % est portée à 10 %, à condition que le total ne dépasse pas 40 % de l'ensemble des placements admis. Le ratio de dispersion est de 0,5 % pour les actions non cotées. Il est de 10 % pour un immeuble ou des parts d'une société immobilière ou foncière.", + 'unite' => '%', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(AA1*100)/AP2', + ), + 343 => array( + 'id' => 801, + 'libelle' => "Total des produits de fonctionnement=A", + 'commentaires' => "Total des produits de fonctionnement=A", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 344 => array( + 'id' => 802, + 'libelle' => "Dont impôts locaux", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 345 => array( + 'id' => 803, + 'libelle' => "Autres impots & taxes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 346 => array( + 'id' => 804, + 'libelle' => "dotation globale de fonctionnement", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 347 => array( + 'id' => 805, + 'libelle' => "Total des charges de fonctionnement=B", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 348 => array( + 'id' => 806, + 'libelle' => "dont charges de personnel", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 349 => array( + 'id' => 807, + 'libelle' => "Achats et charges externes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 350 => array( + 'id' => 808, + 'libelle' => "charges financières", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 351 => array( + 'id' => 809, + 'libelle' => "contingents", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 352 => array( + 'id' => 810, + 'libelle' => "subventions versées", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 353 => array( + 'id' => 811, + 'libelle' => "Résultat comptable A-B=R", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 354 => array( + 'id' => 812, + 'libelle' => "Total des resources d'investissement=C", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 355 => array( + 'id' => 813, + 'libelle' => "Dont emprunts bancaires et dettes assimilées", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 356 => array( + 'id' => 814, + 'libelle' => "subventions recues", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 357 => array( + 'id' => 815, + 'libelle' => "FCTVA", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 358 => array( + 'id' => 816, + 'libelle' => "retour des biens affectés", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 359 => array( + 'id' => 817, + 'libelle' => "TOTAL DES EMPLOIS D'INVESTISSEMENT=D", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 360 => array( + 'id' => 818, + 'libelle' => "dont dépenses d'équipement", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 361 => array( + 'id' => 819, + 'libelle' => "remboursement d'emprunts et dettes", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 362 => array( + 'id' => 820, + 'libelle' => "charges a répartir", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 363 => array( + 'id' => 821, + 'libelle' => "immobilisations affectées", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 364 => array( + 'id' => 822, + 'libelle' => "Besoin ou capacité de financement =D-C", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 365 => array( + 'id' => 823, + 'libelle' => "en+ solde des opérations pour le compte de tiers", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 366 => array( + 'id' => 824, + 'libelle' => "besoin ou capacité de financement de la section investissement=E", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 367 => array( + 'id' => 825, + 'libelle' => "Résultat d'ensemble = R=E", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 368 => array( + 'id' => 826, + 'libelle' => "excédent brut de fonctionnement", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 369 => array( + 'id' => 827, + 'libelle' => "Capacité d'autofinancement CAF", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 370 => array( + 'id' => 828, + 'libelle' => "CAF nette du remboursement en capital des emprunts", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 371 => array( + 'id' => 829, + 'libelle' => "Encours total de la dette au 31/12", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 372 => array( + 'id' => 830, + 'libelle' => "Annuité de la dette", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 373 => array( + 'id' => 831, + 'libelle' => "FONDS DE ROULEMENT", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 374 => array( + 'id' => 832, + 'libelle' => "Taxe d'habitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 375 => array( + 'id' => 833, + 'libelle' => "Taxe foncière sur les propriété bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 376 => array( + 'id' => 834, + 'libelle' => "Taxe foncière sur les propriété non bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 377 => array( + 'id' => 835, + 'libelle' => "Cotisation foncière des entreprises", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 378 => array( + 'id' => 836, + 'libelle' => "Taxe d'habitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 379 => array( + 'id' => 837, + 'libelle' => "Taxe foncière sur les propriété bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 380 => array( + 'id' => 838, + 'libelle' => "Taxe foncière sur les propriété non bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 381 => array( + 'id' => 839, + 'libelle' => "Compensation relais 2010", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 382 => array( + 'id' => 840, + 'libelle' => "Cotisation foncière des entreprises", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 383 => array( + 'id' => 841, + 'libelle' => "Potentiel fiscal", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 384 => array( + 'id' => 842, + 'libelle' => "Taxe professionnelle", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 385 => array( + 'id' => 843, + 'libelle' => "Avances du trésor au 31/12", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 386 => array( + 'id' => 844, + 'libelle' => "Taxe professionnelle", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 387 => array( + 'id' => 845, + 'libelle' => "Taxe d'habitation", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 388 => array( + 'id' => 846, + 'libelle' => "Taxe foncière sur les propriété bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 389 => array( + 'id' => 847, + 'libelle' => "Taxe foncière sur les propriété non bâties", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 390 => array( + 'id' => 848, + 'libelle' => "Taxe professionnelle", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 391 => array( + 'id' => 849, + 'libelle' => "Cotisation foncière des entreprises", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '', + ), + 392 => array( + 'id' => 333, + 'libelle' => "CAF sur 12 mois", + 'commentaires' => "", + 'unite' => 'EUR', + 'borneMin' => '', + 'borneMax' => '', + 'formule' => '(R[233]*12)/nm', + ), +); diff --git a/1.2/library/Metier/scores/Cache/CacheTabInfla.php b/1.2/library/Metier/scores/Cache/CacheTabInfla.php new file mode 100644 index 00000000..784925ef --- /dev/null +++ b/1.2/library/Metier/scores/Cache/CacheTabInfla.php @@ -0,0 +1,25 @@ +3.2, + 1992=>2.4, + 1993=>2.1, + 1994=>1.7, + 1995=>1.7, + 1996=>2, + 1997=>1.2, + 1998=>0.7, + 1999=>0.5, + 2000=>1.7, + 2001=>1.7, + 2002=>1.9, + 2003=>2.1, + 2004=>2.1, + 2005=>1.8, + 2006=>1.6, + 2007=>1.5, + 2008=>2.8, + 2009=>0.1, + 2010=>1.5, + 2011=>2.1, + 2012=>2, +); diff --git a/1.2/library/Metier/scores/Cache/CacheTabRendObli.php b/1.2/library/Metier/scores/Cache/CacheTabRendObli.php new file mode 100644 index 00000000..d48021cf --- /dev/null +++ b/1.2/library/Metier/scores/Cache/CacheTabRendObli.php @@ -0,0 +1,22 @@ +5.65, + 1995=>5.29, + 1996=>4.69, + 1997=>4.93, + 1998=>3.92, + 1999=>3.99, + 2000=>4.35, + 2001=>3.35, + 2002=>2.83, + 2003=>2.68, + 2004=>2.45, + 2005=>2.46, + 2006=>2.66, + 2007=>2.86, + 2008=>3.45, + 2009=>2.81, + 2010=>2.17, + 2011=>1.7, + 2012=>0, +); diff --git a/1.2/library/Metier/scores/Cache/CacheTabVariables.php b/1.2/library/Metier/scores/Cache/CacheTabVariables.php new file mode 100644 index 00000000..ada0cf71 --- /dev/null +++ b/1.2/library/Metier/scores/Cache/CacheTabVariables.php @@ -0,0 +1,6008 @@ + array( + '0' => array('lib'=>"Commune rurale", 'art'=>"une Commune rurale"), + '1' => array('lib'=>"Unité urbaine de moins de 5 000 habitants", 'art'=>"une Unité urbaine de moins de 5 000 habitants"), + '2' => array('lib'=>"Unité urbaine de 5 000 à 9 999 habitants", 'art'=>"une Unité urbaine de 5 000 à 9 999 habitants"), + '3' => array('lib'=>"Unité urbaine de 10 000 à 19 999 habitants", 'art'=>"une Unité urbaine de 10 000 à 19 999 habitants"), + '4' => array('lib'=>"Unité urbaine de 20 000 à 49 999 habitants", 'art'=>"une Unité urbaine de 20 000 à 49 999 habitants"), + '5' => array('lib'=>"Unité urbaine de 50 000 à 99 999 habitants", 'art'=>"une Unité urbaine de 50 000 à 99 999 habitants"), + '6' => array('lib'=>"Unité urbaine de 100 000 à 199 999 habitants", 'art'=>"une Unité urbaine de 100 000 à 199 999 habitants"), + '7' => array('lib'=>"Unité urbaine de 200 000 à 2 millions d'habitants", 'art'=>"une Unité urbaine de 200 000 à 2 millions d'habitants"), + '8' => array('lib'=>"Agglomération de Paris", 'art'=>"l'Agglomération de Paris"), + ), + 'REGIMP' => array( + '1' => array('lib'=>"Guadeloupe", 'art'=>"Guadeloupe"), + '2' => array('lib'=>"Martinique", 'art'=>"Martinique"), + '3' => array('lib'=>"Guyane", 'art'=>"Guyane"), + '4' => array('lib'=>"La Réunion", 'art'=>"La Réunion"), + '11' => array('lib'=>"Île-de-France", 'art'=>"Île-de-France"), + '21' => array('lib'=>"Champagne-Ardenne", 'art'=>"Champagne-Ardenne"), + '22' => array('lib'=>"Picardie", 'art'=>"Picardie"), + '23' => array('lib'=>"Haute-Normandie", 'art'=>"Haute-Normandie"), + '24' => array('lib'=>"Centre", 'art'=>"Centre"), + '25' => array('lib'=>"Basse-Normandie", 'art'=>"Basse-Normandie"), + '26' => array('lib'=>"Bourgogne", 'art'=>"Bourgogne"), + '31' => array('lib'=>"Nord-Pas-de-Calais", 'art'=>"Nord-Pas-de-Calais"), + '41' => array('lib'=>"Lorraine", 'art'=>"Lorraine"), + '42' => array('lib'=>"Alsace", 'art'=>"Alsace"), + '43' => array('lib'=>"Franche-Comté", 'art'=>"Franche-Comté"), + '52' => array('lib'=>"Pays de la Loire", 'art'=>"Pays de la Loire"), + '53' => array('lib'=>"Bretagne", 'art'=>"Bretagne"), + '54' => array('lib'=>"Poitou-Charentes", 'art'=>"Poitou-Charentes"), + '72' => array('lib'=>"Aquitaine", 'art'=>"Aquitaine"), + '73' => array('lib'=>"Midi-Pyrénées", 'art'=>"Midi-Pyrénées"), + '74' => array('lib'=>"Limousin", 'art'=>"Limousin"), + '82' => array('lib'=>"Rhône-Alpes", 'art'=>"Rhône-Alpes"), + '83' => array('lib'=>"Auvergne", 'art'=>"Auvergne"), + '91' => array('lib'=>"Languedoc-Roussillon", 'art'=>"Languedoc-Roussillon"), + '93' => array('lib'=>"Provence-Alpes-Côte d'Azur", 'art'=>"Provence-Alpes-Côte d'Azur"), + '94' => array('lib'=>"Corse", 'art'=>"Corse"), + '98' => array('lib'=>"Territoires d'outre-mer", 'art'=>"Territoires d'outre-mer"), + '99' => array('lib'=>"Etranger", 'art'=>"Etranger"), + ), + 'RPEN' => array( + '1' => array('lib'=>"Guadeloupe", 'art'=>"Guadeloupe"), + '2' => array('lib'=>"Martinique", 'art'=>"Martinique"), + '3' => array('lib'=>"Guyane", 'art'=>"Guyane"), + '4' => array('lib'=>"La Réunion", 'art'=>"La Réunion"), + '11' => array('lib'=>"Île-de-France", 'art'=>"Île-de-France"), + '21' => array('lib'=>"Champagne-Ardenne", 'art'=>"Champagne-Ardenne"), + '22' => array('lib'=>"Picardie", 'art'=>"Picardie"), + '23' => array('lib'=>"Haute-Normandie", 'art'=>"Haute-Normandie"), + '24' => array('lib'=>"Centre", 'art'=>"Centre"), + '25' => array('lib'=>"Basse-Normandie", 'art'=>"Basse-Normandie"), + '26' => array('lib'=>"Bourgogne", 'art'=>"Bourgogne"), + '31' => array('lib'=>"Nord-Pas-de-Calais", 'art'=>"Nord-Pas-de-Calais"), + '41' => array('lib'=>"Lorraine", 'art'=>"Lorraine"), + '42' => array('lib'=>"Alsace", 'art'=>"Alsace"), + '43' => array('lib'=>"Franche-Comté", 'art'=>"Franche-Comté"), + '52' => array('lib'=>"Pays de la Loire", 'art'=>"Pays de la Loire"), + '53' => array('lib'=>"Bretagne", 'art'=>"Bretagne"), + '54' => array('lib'=>"Poitou-Charentes", 'art'=>"Poitou-Charentes"), + '72' => array('lib'=>"Aquitaine", 'art'=>"Aquitaine"), + '73' => array('lib'=>"Midi-Pyrénées", 'art'=>"Midi-Pyrénées"), + '74' => array('lib'=>"Limousin", 'art'=>"Limousin"), + '82' => array('lib'=>"Rhône-Alpes", 'art'=>"Rhône-Alpes"), + '83' => array('lib'=>"Auvergne", 'art'=>"Auvergne"), + '91' => array('lib'=>"Languedoc-Roussillon", 'art'=>"Languedoc-Roussillon"), + '93' => array('lib'=>"Provence-Alpes-Côte d'Azur", 'art'=>"Provence-Alpes-Côte d'Azur"), + '94' => array('lib'=>"Corse", 'art'=>"Corse"), + '98' => array('lib'=>"Territoires d'outre-mer", 'art'=>"Territoires d'outre-mer"), + '99' => array('lib'=>"Etranger", 'art'=>"Etranger"), + ), + 'ZEMET' => array( + '1131' => array('lib'=>"PARIS", 'art'=>"de PARIS"), + '1132' => array('lib'=>"NANTERRE", 'art'=>"de NANTERRE"), + '1133' => array('lib'=>"BOULOGNE-BILLANCOURT", 'art'=>"de BOULOGNE-BILLANCOURT"), + '1134' => array('lib'=>"VITRY-SUR-SEINE", 'art'=>"de VITRY-SUR-SEINE"), + '1135' => array('lib'=>"CRETEIL", 'art'=>"de CRETEIL"), + '1136' => array('lib'=>"MONTREUIL", 'art'=>"de MONTREUIL"), + '1137' => array('lib'=>"SAINT-DENIS", 'art'=>"de SAINT-DENIS"), + '1138' => array('lib'=>"CERGY", 'art'=>"de CERGY"), + '1139' => array('lib'=>"POISSY", 'art'=>"de POISSY"), + '1140' => array('lib'=>"LES MUREAUX", 'art'=>"de LES MUREAUX"), + '1141' => array('lib'=>"MANTES LA JOLIE", 'art'=>"de MANTES LA JOLIE"), + '1142' => array('lib'=>"VERSAILLES", 'art'=>"de VERSAILLES"), + '1143' => array('lib'=>"ORSAY", 'art'=>"de ORSAY"), + '1144' => array('lib'=>"ORLY", 'art'=>"de ORLY"), + '1145' => array('lib'=>"DOURDAN", 'art'=>"de DOURDAN"), + '1146' => array('lib'=>"ETAMPES", 'art'=>"de ETAMPES"), + '1147' => array('lib'=>"EVRY", 'art'=>"de EVRY"), + '1148' => array('lib'=>"MELUN", 'art'=>"de MELUN"), + '1149' => array('lib'=>"FONTAINEBLEAU", 'art'=>"de FONTAINEBLEAU"), + '1150' => array('lib'=>"NEMOURS", 'art'=>"de NEMOURS"), + '1151' => array('lib'=>"MONTEREAU-FAULT-YONNE", 'art'=>"de MONTEREAU-FAULT-YONNE"), + '1152' => array('lib'=>"PROVINS", 'art'=>"de PROVINS"), + '1153' => array('lib'=>"COULOMMIERS", 'art'=>"de COULOMMIERS"), + '1154' => array('lib'=>"LAGNY-SUR-MARNE", 'art'=>"de LAGNY-SUR-MARNE"), + '1155' => array('lib'=>"MEAUX", 'art'=>"de MEAUX"), + '1156' => array('lib'=>"ROISSY-EN-FRANCE", 'art'=>"de ROISSY-EN-FRANCE"), + '2101' => array('lib'=>"VALLEE DE LA MEUSE", 'art'=>"de VALLEE DE LA MEUSE"), + '2102' => array('lib'=>"REIMS", 'art'=>"de REIMS"), + '2103' => array('lib'=>"CHALONS EN CHAMPAGNE", 'art'=>"de CHALONS EN CHAMPAGNE"), + '2104' => array('lib'=>"EPERNAY", 'art'=>"de EPERNAY"), + '2105' => array('lib'=>"MARNE MOYENNE", 'art'=>"de MARNE MOYENNE"), + '2106' => array('lib'=>"SUD-OUEST CHAMPENOIS", 'art'=>"de SUD-OUEST CHAMPENOIS"), + '2107' => array('lib'=>"TROYES", 'art'=>"de TROYES"), + '2108' => array('lib'=>"HAUTE VALLEE DE LA MARNE", 'art'=>"de HAUTE VALLEE DE LA MARNE"), + '2202' => array('lib'=>"AMIENS", 'art'=>"de AMIENS"), + '2205' => array('lib'=>"CHATEAU-THIERRY", 'art'=>"de CHATEAU-THIERRY"), + '2206' => array('lib'=>"SUD OISE", 'art'=>"de SUD OISE"), + '2207' => array('lib'=>"SOISSONS", 'art'=>"de SOISSONS"), + '2208' => array('lib'=>"BEAUVAIS", 'art'=>"de BEAUVAIS"), + '2209' => array('lib'=>"COMPIEGNE", 'art'=>"de COMPIEGNE"), + '2210' => array('lib'=>"SANTERRE OISE", 'art'=>"de SANTERRE OISE"), + '2211' => array('lib'=>"ABBEVILLE PONTHIEU", 'art'=>"de ABBEVILLE PONTHIEU"), + '2212' => array('lib'=>"VIMEU", 'art'=>"de VIMEU"), + '2219' => array('lib'=>"SANTERRE SOMME", 'art'=>"de SANTERRE SOMME"), + '2231' => array('lib'=>"SAINT-QUENTIN", 'art'=>"de SAINT-QUENTIN"), + '2232' => array('lib'=>"CHAUNY-TERNIER-LA-FERE", 'art'=>"de CHAUNY-TERNIER-LA-FERE"), + '2241' => array('lib'=>"THIERACHE", 'art'=>"de THIERACHE"), + '2242' => array('lib'=>"LAONNOIS", 'art'=>"de LAONNOIS"), + '2307' => array('lib'=>"PAYS DE BRAY", 'art'=>"de PAYS DE BRAY"), + '2308' => array('lib'=>"VALLEE DE LA BRESLE", 'art'=>"de VALLEE DE LA BRESLE"), + '2311' => array('lib'=>"FECAMP", 'art'=>"de FECAMP"), + '2313' => array('lib'=>"PONT-AUDEMER", 'art'=>"de PONT-AUDEMER"), + '2314' => array('lib'=>"BERNAY", 'art'=>"de BERNAY"), + '2316' => array('lib'=>"VERNEUIL-SUR-AVRE", 'art'=>"de VERNEUIL-SUR-AVRE"), + '2317' => array('lib'=>"VERNON", 'art'=>"de VERNON"), + '2318' => array('lib'=>"GISORS", 'art'=>"de GISORS"), + '2321' => array('lib'=>"ROUEN", 'art'=>"de ROUEN"), + '2322' => array('lib'=>"DIEPPE", 'art'=>"de DIEPPE"), + '2323' => array('lib'=>"LE HAVRE", 'art'=>"de LE HAVRE"), + '2324' => array('lib'=>"LILLEBONNE", 'art'=>"de LILLEBONNE"), + '2325' => array('lib'=>"EVREUX", 'art'=>"de EVREUX"), + '2411' => array('lib'=>"BOURGES", 'art'=>"de BOURGES"), + '2412' => array('lib'=>"VIERZON", 'art'=>"de VIERZON"), + '2413' => array('lib'=>"SAINT-AMAND-MONTROND", 'art'=>"de SAINT-AMAND-MONTROND"), + '2414' => array('lib'=>"AUBIGNY", 'art'=>"de AUBIGNY"), + '2421' => array('lib'=>"CHARTRES", 'art'=>"de CHARTRES"), + '2422' => array('lib'=>"DREUX", 'art'=>"de DREUX"), + '2423' => array('lib'=>"CHATEAUDUN", 'art'=>"de CHATEAUDUN"), + '2424' => array('lib'=>"NOGENT-LE-ROTROU", 'art'=>"de NOGENT-LE-ROTROU"), + '2431' => array('lib'=>"CHATEAUROUX", 'art'=>"de CHATEAUROUX"), + '2432' => array('lib'=>"ARGENTON-SUR-CREUSE", 'art'=>"de ARGENTON-SUR-CREUSE"), + '2433' => array('lib'=>"ISSOUDUN", 'art'=>"de ISSOUDUN"), + '2434' => array('lib'=>"LA CHATRE", 'art'=>"de LA CHATRE"), + '2441' => array('lib'=>"TOURS", 'art'=>"de TOURS"), + '2442' => array('lib'=>"AMBOISE", 'art'=>"de AMBOISE"), + '2443' => array('lib'=>"LOCHES", 'art'=>"de LOCHES"), + '2444' => array('lib'=>"CHINON", 'art'=>"de CHINON"), + '2451' => array('lib'=>"BLOIS", 'art'=>"de BLOIS"), + '2452' => array('lib'=>"VENDOME", 'art'=>"de VENDOME"), + '2453' => array('lib'=>"ROMORANTIN", 'art'=>"de ROMORANTIN"), + '2461' => array('lib'=>"ORLEANS", 'art'=>"de ORLEANS"), + '2462' => array('lib'=>"MONTARGIS", 'art'=>"de MONTARGIS"), + '2463' => array('lib'=>"PITHIVIERS", 'art'=>"de PITHIVIERS"), + '2464' => array('lib'=>"GIEN", 'art'=>"de GIEN"), + '2501' => array('lib'=>"CAEN BAYEUX", 'art'=>"de CAEN BAYEUX"), + '2502' => array('lib'=>"LISIEUX", 'art'=>"de LISIEUX"), + '2503' => array('lib'=>"VIRE", 'art'=>"de VIRE"), + '2504' => array('lib'=>"CHERBOURG", 'art'=>"de CHERBOURG"), + '2505' => array('lib'=>"SAINT-LO", 'art'=>"de SAINT-LO"), + '2506' => array('lib'=>"AVRANCHES GRANVILLE", 'art'=>"de AVRANCHES GRANVILLE"), + '2507' => array('lib'=>"COUTANCES", 'art'=>"de COUTANCES"), + '2508' => array('lib'=>"FLERS", 'art'=>"de FLERS"), + '2509' => array('lib'=>"ALENCON-ARGENTAN", 'art'=>"de ALENCON-ARGENTAN"), + '2510' => array('lib'=>"L'AIGLE MORTAGNE-AU-PERCHE", 'art'=>"de L'AIGLE MORTAGNE-AU-PERCHE"), + '2610' => array('lib'=>"MACON", 'art'=>"de MACON"), + '2612' => array('lib'=>"DIJON", 'art'=>"de DIJON"), + '2613' => array('lib'=>"AUXERRE", 'art'=>"de AUXERRE"), + '2615' => array('lib'=>"NEVERS", 'art'=>"de NEVERS"), + '2641' => array('lib'=>"CHALON-SUR-SAONE", 'art'=>"de CHALON-SUR-SAONE"), + '2643' => array('lib'=>"CHATILLON-SUR-SEINE", 'art'=>"de CHATILLON-SUR-SEINE"), + '2644' => array('lib'=>"SENS", 'art'=>"de SENS"), + '2651' => array('lib'=>"MONTBARD", 'art'=>"de MONTBARD"), + '2652' => array('lib'=>"AVALLON", 'art'=>"de AVALLON"), + '2654' => array('lib'=>"COSNE-SUR-LOIRE", 'art'=>"de COSNE-SUR-LOIRE"), + '2656' => array('lib'=>"AUTUN", 'art'=>"de AUTUN"), + '2660' => array('lib'=>"JOIGNY", 'art'=>"de JOIGNY"), + '2662' => array('lib'=>"DECIZE", 'art'=>"de DECIZE"), + '2664' => array('lib'=>"LE CREUSOT", 'art'=>"de LE CREUSOT"), + '2666' => array('lib'=>"BEAUNE", 'art'=>"de BEAUNE"), + '2672' => array('lib'=>"MONTCEAU-LES-MINES", 'art'=>"de MONTCEAU-LES-MINES"), + '2680' => array('lib'=>"DIGOIN", 'art'=>"de DIGOIN"), + '2695' => array('lib'=>"LOUHANS", 'art'=>"de LOUHANS"), + '3110' => array('lib'=>"ROUBAIX TOURCOING", 'art'=>"de ROUBAIX TOURCOING"), + '3111' => array('lib'=>"LILLE", 'art'=>"de LILLE"), + '3112' => array('lib'=>"DUNKERQUE", 'art'=>"de DUNKERQUE"), + '3113' => array('lib'=>"FLANDRE-LYS", 'art'=>"de FLANDRE-LYS"), + '3114' => array('lib'=>"DOUAISIS", 'art'=>"de DOUAISIS"), + '3115' => array('lib'=>"VALENCIENNOIS", 'art'=>"de VALENCIENNOIS"), + '3116' => array('lib'=>"CAMBRESIS", 'art'=>"de CAMBRESIS"), + '3117' => array('lib'=>"SAMBRE-AVESNOIS", 'art'=>"de SAMBRE-AVESNOIS"), + '3121' => array('lib'=>"ARTOIS-TERNOIS", 'art'=>"de ARTOIS-TERNOIS"), + '3122' => array('lib'=>"LENS-HENIN", 'art'=>"de LENS-HENIN"), + '3123' => array('lib'=>"BETHUNE-BRUAY", 'art'=>"de BETHUNE-BRUAY"), + '3124' => array('lib'=>"SAINT-OMER", 'art'=>"de SAINT-OMER"), + '3125' => array('lib'=>"CALAISIS", 'art'=>"de CALAISIS"), + '3126' => array('lib'=>"BOULONNAIS", 'art'=>"de BOULONNAIS"), + '3127' => array('lib'=>"BERCK MONTREUIL", 'art'=>"de BERCK MONTREUIL"), + '4111' => array('lib'=>"LONGWY", 'art'=>"de LONGWY"), + '4112' => array('lib'=>"BRIEY", 'art'=>"de BRIEY"), + '4113' => array('lib'=>"THIONVILLE", 'art'=>"de THIONVILLE"), + '4121' => array('lib'=>"LUNEVILLE", 'art'=>"de LUNEVILLE"), + '4122' => array('lib'=>"NANCY", 'art'=>"de NANCY"), + '4123' => array('lib'=>"TOUL", 'art'=>"de TOUL"), + '4130' => array('lib'=>"METZ", 'art'=>"de METZ"), + '4141' => array('lib'=>"BASSIN HOUILLER", 'art'=>"de BASSIN HOUILLER"), + '4142' => array('lib'=>"SARREGUEMINES", 'art'=>"de SARREGUEMINES"), + '4150' => array('lib'=>"SARREBOURG", 'art'=>"de SARREBOURG"), + '4160' => array('lib'=>"MEUSE DU NORD", 'art'=>"de MEUSE DU NORD"), + '4171' => array('lib'=>"BAR-LE-DUC", 'art'=>"de BAR-LE-DUC"), + '4172' => array('lib'=>"COMMERCY", 'art'=>"de COMMERCY"), + '4180' => array('lib'=>"VOSGES DE L'OUEST", 'art'=>"de VOSGES DE L'OUEST"), + '4191' => array('lib'=>"EPINAL", 'art'=>"de EPINAL"), + '4192' => array('lib'=>"REMIREMONT-GERARDMER", 'art'=>"de REMIREMONT-GERARDMER"), + '4193' => array('lib'=>"SAINT-DIE", 'art'=>"de SAINT-DIE"), + '4271' => array('lib'=>"WISSEMBOURG", 'art'=>"de WISSEMBOURG"), + '4276' => array('lib'=>"STRASBOURG", 'art'=>"de STRASBOURG"), + '4284' => array('lib'=>"GUEBWILLER", 'art'=>"de GUEBWILLER"), + '4285' => array('lib'=>"THANN CERNAY", 'art'=>"de THANN CERNAY"), + '4286' => array('lib'=>"MULHOUSE", 'art'=>"de MULHOUSE"), + '4287' => array('lib'=>"SAINT-LOUIS", 'art'=>"de SAINT-LOUIS"), + '4288' => array('lib'=>"ALTKIRCH", 'art'=>"de ALTKIRCH"), + '4291' => array('lib'=>"HAGUENEAU-NIEDERBRONN", 'art'=>"de HAGUENEAU-NIEDERBRONN"), + '4292' => array('lib'=>"SAVERNE SARRE-UNION", 'art'=>"de SAVERNE SARRE-UNION"), + '4293' => array('lib'=>"MOLSHEIM SCHIRMECK", 'art'=>"de MOLSHEIM SCHIRMECK"), + '4294' => array('lib'=>"COLMAR NEUF-BRISACH", 'art'=>"de COLMAR NEUF-BRISACH"), + '4295' => array('lib'=>"SELESTAT-SAINTE-MARIE-AUXMINES", 'art'=>"de SELESTAT-SAINTE-MARIE-AUXMINES"), + '4301' => array('lib'=>"VESOUL", 'art'=>"de VESOUL"), + '4302' => array('lib'=>"LURE-LUXEUIL", 'art'=>"de LURE-LUXEUIL"), + '4303' => array('lib'=>"BELFORT", 'art'=>"de BELFORT"), + '4304' => array('lib'=>"GRAY", 'art'=>"de GRAY"), + '4305' => array('lib'=>"MONTBELIARD", 'art'=>"de MONTBELIARD"), + '4306' => array('lib'=>"DOLE", 'art'=>"de DOLE"), + '4307' => array('lib'=>"BESANCON", 'art'=>"de BESANCON"), + '4308' => array('lib'=>"MORTEAU", 'art'=>"de MORTEAU"), + '4309' => array('lib'=>"REVERMONT", 'art'=>"de REVERMONT"), + '4310' => array('lib'=>"PONTARLIER", 'art'=>"de PONTARLIER"), + '4311' => array('lib'=>"LONS-LE-SAUNIER", 'art'=>"de LONS-LE-SAUNIER"), + '4312' => array('lib'=>"CHAMPAGNOLE", 'art'=>"de CHAMPAGNOLE"), + '4313' => array('lib'=>"SAINT-CLAUDE", 'art'=>"de SAINT-CLAUDE"), + '5201' => array('lib'=>"NANTES", 'art'=>"de NANTES"), + '5202' => array('lib'=>"SAINT-NAZAIRE", 'art'=>"de SAINT-NAZAIRE"), + '5203' => array('lib'=>"CHATEAUBRIANT", 'art'=>"de CHATEAUBRIANT"), + '5204' => array('lib'=>"ANGERS", 'art'=>"de ANGERS"), + '5205' => array('lib'=>"CHOLETAIS", 'art'=>"de CHOLETAIS"), + '5206' => array('lib'=>"SAUMUR-BAUGE", 'art'=>"de SAUMUR-BAUGE"), + '5207' => array('lib'=>"SEGREEN SUD MAYENNE", 'art'=>"de SEGREEN SUD MAYENNE"), + '5208' => array('lib'=>"LAVAL", 'art'=>"de LAVAL"), + '5209' => array('lib'=>"MAYENNE NORD ET EST", 'art'=>"de MAYENNE NORD ET EST"), + '5210' => array('lib'=>"LE MANS", 'art'=>"de LE MANS"), + '5211' => array('lib'=>"SARTHE NORD", 'art'=>"de SARTHE NORD"), + '5212' => array('lib'=>"SARTHE SUD", 'art'=>"de SARTHE SUD"), + '5213' => array('lib'=>"LA ROCHE-SUR-YON", 'art'=>"de LA ROCHE-SUR-YON"), + '5214' => array('lib'=>"VENDEE EST", 'art'=>"de VENDEE EST"), + '5215' => array('lib'=>"VENDEE SUD", 'art'=>"de VENDEE SUD"), + '5216' => array('lib'=>"VENDEE OUEST", 'art'=>"de VENDEE OUEST"), + '5320' => array('lib'=>"DINAN", 'art'=>"de DINAN"), + '5321' => array('lib'=>"GUINGAMP", 'art'=>"de GUINGAMP"), + '5323' => array('lib'=>"LANNION", 'art'=>"de LANNION"), + '5324' => array('lib'=>"SAINT-BRIEUC", 'art'=>"de SAINT-BRIEUC"), + '5330' => array('lib'=>"BREST", 'art'=>"de BREST"), + '5331' => array('lib'=>"MORLAIX", 'art'=>"de MORLAIX"), + '5332' => array('lib'=>"QUIMPER", 'art'=>"de QUIMPER"), + '5333' => array('lib'=>"CARHAIX", 'art'=>"de CARHAIX"), + '5340' => array('lib'=>"FOUGERES", 'art'=>"de FOUGERES"), + '5341' => array('lib'=>"RENNES", 'art'=>"de RENNES"), + '5342' => array('lib'=>"SAINT-MALO", 'art'=>"de SAINT-MALO"), + '5343' => array('lib'=>"VITRE", 'art'=>"de VITRE"), + '5344' => array('lib'=>"REDON", 'art'=>"de REDON"), + '5350' => array('lib'=>"AURAY", 'art'=>"de AURAY"), + '5351' => array('lib'=>"PLOËRMEL", 'art'=>"de PLOËRMEL"), + '5352' => array('lib'=>"VANNES", 'art'=>"de VANNES"), + '5353' => array('lib'=>"LORIENT", 'art'=>"de LORIENT"), + '5354' => array('lib'=>"PONTIVY-LOUDEAC", 'art'=>"de PONTIVY-LOUDEAC"), + '5401' => array('lib'=>"NORD POITOU", 'art'=>"de NORD POITOU"), + '5402' => array('lib'=>"CHATELLERAULT", 'art'=>"de CHATELLERAULT"), + '5403' => array('lib'=>"MONTMORILLON", 'art'=>"de MONTMORILLON"), + '5404' => array('lib'=>"HAUTE CHARENTE", 'art'=>"de HAUTE CHARENTE"), + '5405' => array('lib'=>"ANGOULEME", 'art'=>"de ANGOULEME"), + '5406' => array('lib'=>"SUD CHARENTE", 'art'=>"de SUD CHARENTE"), + '5407' => array('lib'=>"COGNAC", 'art'=>"de COGNAC"), + '5408' => array('lib'=>"SAINTONGE INTERIEURE", 'art'=>"de SAINTONGE INTERIEURE"), + '5409' => array('lib'=>"SAINTONGE MARITIME", 'art'=>"de SAINTONGE MARITIME"), + '5410' => array('lib'=>"LA ROCHELLE", 'art'=>"de LA ROCHELLE"), + '5411' => array('lib'=>"SUD DEUX-SEVRES", 'art'=>"de SUD DEUX-SEVRES"), + '5412' => array('lib'=>"NORD DEUX-SEVRES", 'art'=>"de NORD DEUX-SEVRES"), + '5413' => array('lib'=>"POITIERS", 'art'=>"de POITIERS"), + '7201' => array('lib'=>"NORD-EST DE LA DORDOGNE", 'art'=>"de NORD-EST DE LA DORDOGNE"), + '7202' => array('lib'=>"PERIGUEUX", 'art'=>"de PERIGUEUX"), + '7203' => array('lib'=>"TERRASSON", 'art'=>"de TERRASSON"), + '7204' => array('lib'=>"SARLAT-LA-CANEDA", 'art'=>"de SARLAT-LA-CANEDA"), + '7205' => array('lib'=>"BERGERAC", 'art'=>"de BERGERAC"), + '7206' => array('lib'=>"DAX", 'art'=>"de DAX"), + '7207' => array('lib'=>"MARMANDE CASTELJALOUX", 'art'=>"de MARMANDE CASTELJALOUX"), + '7210' => array('lib'=>"AGEN", 'art'=>"de AGEN"), + '7211' => array('lib'=>"LACQ ORTHEZ", 'art'=>"de LACQ ORTHEZ"), + '7212' => array('lib'=>"OLORON-MAULEON", 'art'=>"de OLORON-MAULEON"), + '7213' => array('lib'=>"PAU", 'art'=>"de PAU"), + '7214' => array('lib'=>"LIBOURNE-MONTPON-STE-FOY-LAGRANDE", 'art'=>"de LIBOURNE-MONTPON-STE-FOY-LAGRANDE"), + '7215' => array('lib'=>"LANGON BAZAS LA REOLE", 'art'=>"de LANGON BAZAS LA REOLE"), + '7216' => array('lib'=>"VILLENEUVE-SUR-LOT FUMEL", 'art'=>"de VILLENEUVE-SUR-LOT FUMEL"), + '7271' => array('lib'=>"BORDEAUX MÉDOC", 'art'=>"de BORDEAUX MÉDOC"), + '7272' => array('lib'=>"BORDEAUX ARCACHONNAIS", 'art'=>"de BORDEAUX ARCACHONNAIS"), + '7273' => array('lib'=>"BORDEAUX ENTRE-DEUX-MERS", 'art'=>"de BORDEAUX ENTRE-DEUX-MERS"), + '7274' => array('lib'=>"BORDEAUX CUBZACAIS", 'art'=>"de BORDEAUX CUBZACAIS"), + '7275' => array('lib'=>"BORDEAUX ZONE CENTRALE", 'art'=>"de BORDEAUX ZONE CENTRALE"), + '7281' => array('lib'=>"MONT DE MARSAN HAUTE LANDE", 'art'=>"de MONT DE MARSAN HAUTE LANDE"), + '7282' => array('lib'=>"MONT DE MARSAN EST DES LANDES", 'art'=>"de MONT DE MARSAN EST DES LANDES"), + '7291' => array('lib'=>"SUD DES LANDES", 'art'=>"de SUD DES LANDES"), + '7292' => array('lib'=>"BAYONNE-PYRENEES", 'art'=>"de BAYONNE-PYRENEES"), + '7301' => array('lib'=>"TOULOUSE", 'art'=>"de TOULOUSE"), + '7302' => array('lib'=>"MONTAUBAN", 'art'=>"de MONTAUBAN"), + '7303' => array('lib'=>"ALBI CARMAUX", 'art'=>"de ALBI CARMAUX"), + '7304' => array('lib'=>"TARBES", 'art'=>"de TARBES"), + '7305' => array('lib'=>"RODEZ", 'art'=>"de RODEZ"), + '7306' => array('lib'=>"CASTRES MAZAMET", 'art'=>"de CASTRES MAZAMET"), + '7307' => array('lib'=>"AUCH", 'art'=>"de AUCH"), + '7308' => array('lib'=>"SAINT-GAUDENS", 'art'=>"de SAINT-GAUDENS"), + '7309' => array('lib'=>"FIGEAC DECAZEVILLE", 'art'=>"de FIGEAC DECAZEVILLE"), + '7310' => array('lib'=>"CAHORS", 'art'=>"de CAHORS"), + '7311' => array('lib'=>"MILLAU", 'art'=>"de MILLAU"), + '7312' => array('lib'=>"NORD DU LOT", 'art'=>"de NORD DU LOT"), + '7313' => array('lib'=>"LOURDES", 'art'=>"de LOURDES"), + '7316' => array('lib'=>"VILLEFRANCHE-DE-ROUERGUE", 'art'=>"de VILLEFRANCHE-DE-ROUERGUE"), + '7317' => array('lib'=>"LANNEMEZAN", 'art'=>"de LANNEMEZAN"), + '7318' => array('lib'=>"SAINT-GIRONS", 'art'=>"de SAINT-GIRONS"), + '7319' => array('lib'=>"LAVELANET", 'art'=>"de LAVELANET"), + '7320' => array('lib'=>"FOIX PAMIERS", 'art'=>"de FOIX PAMIERS"), + '7401' => array('lib'=>"BELLAC", 'art'=>"de BELLAC"), + '7402' => array('lib'=>"LIMOGES", 'art'=>"de LIMOGES"), + '7403' => array('lib'=>"ROCHECHOUART", 'art'=>"de ROCHECHOUART"), + '7404' => array('lib'=>"AUBUSSON", 'art'=>"de AUBUSSON"), + '7405' => array('lib'=>"GUERET", 'art'=>"de GUERET"), + '7406' => array('lib'=>"BRIVE", 'art'=>"de BRIVE"), + '7407' => array('lib'=>"TULLE", 'art'=>"de TULLE"), + '7408' => array('lib'=>"USSEL", 'art'=>"de USSEL"), + '8201' => array('lib'=>"ROANNE", 'art'=>"de ROANNE"), + '8202' => array('lib'=>"BEAUJOLAIS-VAL-DE-SAONE", 'art'=>"de BEAUJOLAIS-VAL-DE-SAONE"), + '8203' => array('lib'=>"BOURG-EN-BRESSE", 'art'=>"de BOURG-EN-BRESSE"), + '8204' => array('lib'=>"OYONNAX", 'art'=>"de OYONNAX"), + '8205' => array('lib'=>"GENEVOIX FRANCAIS", 'art'=>"de GENEVOIX FRANCAIS"), + '8206' => array('lib'=>"CHABLAIS", 'art'=>"de CHABLAIS"), + '8207' => array('lib'=>"VALLEE-DE-L'ARVE", 'art'=>"de VALLEE-DE-L'ARVE"), + '8208' => array('lib'=>"ANNECY", 'art'=>"de ANNECY"), + '8209' => array('lib'=>"BELLEY", 'art'=>"de BELLEY"), + '8210' => array('lib'=>"AMBERIEU", 'art'=>"de AMBERIEU"), + '8211' => array('lib'=>"LYON", 'art'=>"de LYON"), + '8212' => array('lib'=>"LOIRE CENTRE", 'art'=>"de LOIRE CENTRE"), + '8213' => array('lib'=>"SAINT-ETIENNE", 'art'=>"de SAINT-ETIENNE"), + '8214' => array('lib'=>"VIENNE ROUSSILLON", 'art'=>"de VIENNE ROUSSILLON"), + '8215' => array('lib'=>"BOURGOIN-LA-TOUR-DU-PIN", 'art'=>"de BOURGOIN-LA-TOUR-DU-PIN"), + '8216' => array('lib'=>"CHAMBERY", 'art'=>"de CHAMBERY"), + '8217' => array('lib'=>"TARENTAISE", 'art'=>"de TARENTAISE"), + '8218' => array('lib'=>"MAURIENNE", 'art'=>"de MAURIENNE"), + '8219' => array('lib'=>"VOIRON", 'art'=>"de VOIRON"), + '8220' => array('lib'=>"ANNONAY", 'art'=>"de ANNONAY"), + '8221' => array('lib'=>"DROME ARDECHE NORD", 'art'=>"de DROME ARDECHE NORD"), + '8222' => array('lib'=>"ROMANS SAINT-MARCELLIN", 'art'=>"de ROMANS SAINT-MARCELLIN"), + '8223' => array('lib'=>"GRENOBLE", 'art'=>"de GRENOBLE"), + '8224' => array('lib'=>"CREST-DIE", 'art'=>"de CREST-DIE"), + '8225' => array('lib'=>"DROME-ARDECHE CENTRE", 'art'=>"de DROME-ARDECHE CENTRE"), + '8226' => array('lib'=>"AUBENAS", 'art'=>"de AUBENAS"), + '8227' => array('lib'=>"DROME-ARDECHE SUD", 'art'=>"de DROME-ARDECHE SUD"), + '8311' => array('lib'=>"AURILLAC", 'art'=>"de AURILLAC"), + '8313' => array('lib'=>"MAURIAC", 'art'=>"de MAURIAC"), + '8314' => array('lib'=>"SAINT-FLOUR", 'art'=>"de SAINT-FLOUR"), + '8324' => array('lib'=>"CLERMONT-FERRAND", 'art'=>"de CLERMONT-FERRAND"), + '8325' => array('lib'=>"GANNAT", 'art'=>"de GANNAT"), + '8331' => array('lib'=>"ISSOIRE", 'art'=>"de ISSOIRE"), + '8333' => array('lib'=>"BRIOUDE", 'art'=>"de BRIOUDE"), + '8343' => array('lib'=>"MONTLUCON", 'art'=>"de MONTLUCON"), + '8351' => array('lib'=>"MOULINS", 'art'=>"de MOULINS"), + '8352' => array('lib'=>"DOMPIERRE-SUR-BESBRE", 'art'=>"de DOMPIERRE-SUR-BESBRE"), + '8362' => array('lib'=>"LE PUY-EN-VELAY", 'art'=>"de LE PUY-EN-VELAY"), + '8372' => array('lib'=>"YSSINGEAUX", 'art'=>"de YSSINGEAUX"), + '8381' => array('lib'=>"THIERS", 'art'=>"de THIERS"), + '8382' => array('lib'=>"AMBERT", 'art'=>"de AMBERT"), + '8391' => array('lib'=>"VICHY", 'art'=>"de VICHY"), + '8392' => array('lib'=>"SAINT-POURCAIN-SUR-SIOULE", 'art'=>"de SAINT-POURCAIN-SUR-SIOULE"), + '9101' => array('lib'=>"CARCASSONNE", 'art'=>"de CARCASSONNE"), + '9102' => array('lib'=>"NARBONNE", 'art'=>"de NARBONNE"), + '9103' => array('lib'=>"ALES LA GRAND COMBE", 'art'=>"de ALES LA GRAND COMBE"), + '9104' => array('lib'=>"BAGNOLS-SUR-CEZE", 'art'=>"de BAGNOLS-SUR-CEZE"), + '9105' => array('lib'=>"GANGES-LE-VIGAN", 'art'=>"de GANGES-LE-VIGAN"), + '9106' => array('lib'=>"NIMES", 'art'=>"de NIMES"), + '9107' => array('lib'=>"BEZIERS-SAINT-PONS", 'art'=>"de BEZIERS-SAINT-PONS"), + '9108' => array('lib'=>"MONTPELLIER", 'art'=>"de MONTPELLIER"), + '9109' => array('lib'=>"SETE", 'art'=>"de SETE"), + '9110' => array('lib'=>"LOZERE", 'art'=>"de LOZERE"), + '9111' => array('lib'=>"PERPIGNAN", 'art'=>"de PERPIGNAN"), + '9311' => array('lib'=>"MANOSQUE", 'art'=>"de MANOSQUE"), + '9312' => array('lib'=>"DIGNE", 'art'=>"de DIGNE"), + '9321' => array('lib'=>"BRIANCON", 'art'=>"de BRIANCON"), + '9322' => array('lib'=>"GAP", 'art'=>"de GAP"), + '9331' => array('lib'=>"CANNES ANTIBES", 'art'=>"de CANNES ANTIBES"), + '9332' => array('lib'=>"MENTON", 'art'=>"de MENTON"), + '9333' => array('lib'=>"NICE", 'art'=>"de NICE"), + '9341' => array('lib'=>"ARLES", 'art'=>"de ARLES"), + '9342' => array('lib'=>"AIX-EN-PROVENCE", 'art'=>"de AIX-EN-PROVENCE"), + '9344' => array('lib'=>"ETANG-DE-BERRE", 'art'=>"de ETANG-DE-BERRE"), + '9346' => array('lib'=>"CHATEAURENARD", 'art'=>"de CHATEAURENARD"), + '9347' => array('lib'=>"FOS-SUR-MER", 'art'=>"de FOS-SUR-MER"), + '9348' => array('lib'=>"SALON-DE-PROVENCE", 'art'=>"de SALON-DE-PROVENCE"), + '9349' => array('lib'=>"MARSEILLE AUBAGNE", 'art'=>"de MARSEILLE AUBAGNE"), + '9351' => array('lib'=>"TOULON", 'art'=>"de TOULON"), + '9352' => array('lib'=>"FREJUS-SAINT-RAPHAEL", 'art'=>"de FREJUS-SAINT-RAPHAEL"), + '9353' => array('lib'=>"DRAGUIGNAN", 'art'=>"de DRAGUIGNAN"), + '9354' => array('lib'=>"BRIGNOLES", 'art'=>"de BRIGNOLES"), + '9361' => array('lib'=>"ORANGE", 'art'=>"de ORANGE"), + '9362' => array('lib'=>"CARPENTRAS", 'art'=>"de CARPENTRAS"), + '9363' => array('lib'=>"APT", 'art'=>"de APT"), + '9364' => array('lib'=>"AVIGNON", 'art'=>"de AVIGNON"), + '9403' => array('lib'=>"CALVI-ILE-ROUSSE", 'art'=>"de CALVI-ILE-ROUSSE"), + '9411' => array('lib'=>"AJACCIO", 'art'=>"de AJACCIO"), + '9412' => array('lib'=>"BASTIA", 'art'=>"de BASTIA"), + '9414' => array('lib'=>"CORTE", 'art'=>"de CORTE"), + '9415' => array('lib'=>"GHISONACCIA-ALERIA", 'art'=>"de GHISONACCIA-ALERIA"), + '9416' => array('lib'=>"PORTO-VECCHIO", 'art'=>"de PORTO-VECCHIO"), + '9417' => array('lib'=>"SARTENE-PROPRIANO", 'art'=>"de SARTENE-PROPRIANO"), + ), + 'DEPSIE' => array( + '03' => array('lib'=>"Allier", 'art'=>"Allier"), + '04' => array('lib'=>"Alpes-de-Haute-Provence", 'art'=>"Alpes-de-Haute-Provence"), + '02' => array('lib'=>"Aisne", 'art'=>"Aisne"), + '01' => array('lib'=>"Ain", 'art'=>"Ain"), + '05' => array('lib'=>"Hautes-Alpes", 'art'=>"Hautes-Alpes"), + '06' => array('lib'=>"Alpes-Maritimes", 'art'=>"Alpes-Maritimes"), + '07' => array('lib'=>"Ardèche", 'art'=>"Ardèche"), + '08' => array('lib'=>"Ardennes", 'art'=>"Ardennes"), + '09' => array('lib'=>"Ariège", 'art'=>"Ariège"), + '10' => array('lib'=>"Aube", 'art'=>"Aube"), + '11' => array('lib'=>"Aude", 'art'=>"Aude"), + '12' => array('lib'=>"Aveyron", 'art'=>"Aveyron"), + '13' => array('lib'=>"Bouches-du-Rhône", 'art'=>"Bouches-du-Rhône"), + '14' => array('lib'=>"Calvados", 'art'=>"Calvados"), + '15' => array('lib'=>"Cantal", 'art'=>"Cantal"), + '16' => array('lib'=>"Charente", 'art'=>"Charente"), + '17' => array('lib'=>"Charente-Maritime", 'art'=>"Charente-Maritime"), + '18' => array('lib'=>"Cher", 'art'=>"Cher"), + '19' => array('lib'=>"Corrèze", 'art'=>"Corrèze"), + '2A' => array('lib'=>"Corse-du-Sud", 'art'=>"Corse-du-Sud"), + '20' => array('lib'=>"Corse", 'art'=>"Corse"), + '21' => array('lib'=>"Côte-d'Or", 'art'=>"Côte-d'Or"), + '22' => array('lib'=>"Côtes-d'Armor", 'art'=>"Côtes-d'Armor"), + '23' => array('lib'=>"Creuse", 'art'=>"Creuse"), + '24' => array('lib'=>"Dordogne", 'art'=>"Dordogne"), + '25' => array('lib'=>"Doubs", 'art'=>"Doubs"), + '26' => array('lib'=>"Drôme", 'art'=>"Drôme"), + '27' => array('lib'=>"Eure", 'art'=>"Eure"), + '28' => array('lib'=>"Eure-et-Loir", 'art'=>"Eure-et-Loir"), + '29' => array('lib'=>"Finistère", 'art'=>"Finistère"), + '30' => array('lib'=>"Gard", 'art'=>"Gard"), + '33' => array('lib'=>"Gironde", 'art'=>"Gironde"), + '32' => array('lib'=>"Gers", 'art'=>"Gers"), + '34' => array('lib'=>"Hérault", 'art'=>"Hérault"), + '31' => array('lib'=>"Haute-Garonne", 'art'=>"Haute-Garonne"), + '36' => array('lib'=>"Indre", 'art'=>"Indre"), + '37' => array('lib'=>"Indre-et-Loire", 'art'=>"Indre-et-Loire"), + '35' => array('lib'=>"Ille-et-Vilaine", 'art'=>"Ille-et-Vilaine"), + '39' => array('lib'=>"Jura", 'art'=>"Jura"), + '38' => array('lib'=>"Isère", 'art'=>"Isère"), + '40' => array('lib'=>"Landes", 'art'=>"Landes"), + '41' => array('lib'=>"Loir-et-Cher", 'art'=>"Loir-et-Cher"), + '42' => array('lib'=>"Loire", 'art'=>"Loire"), + '43' => array('lib'=>"Haute-Loire", 'art'=>"Haute-Loire"), + '44' => array('lib'=>"Loire-Atlantique", 'art'=>"Loire-Atlantique"), + '45' => array('lib'=>"Loiret", 'art'=>"Loiret"), + '46' => array('lib'=>"Lot", 'art'=>"Lot"), + '47' => array('lib'=>"Lot-et-Garonne", 'art'=>"Lot-et-Garonne"), + '48' => array('lib'=>"Lozère", 'art'=>"Lozère"), + '49' => array('lib'=>"Maine-et-Loire", 'art'=>"Maine-et-Loire"), + '53' => array('lib'=>"Mayenne", 'art'=>"Mayenne"), + '51' => array('lib'=>"Marne", 'art'=>"Marne"), + '50' => array('lib'=>"Manche", 'art'=>"Manche"), + '52' => array('lib'=>"Haute-Marne", 'art'=>"Haute-Marne"), + '54' => array('lib'=>"Meurthe-et-Moselle", 'art'=>"Meurthe-et-Moselle"), + '56' => array('lib'=>"Morbihan", 'art'=>"Morbihan"), + '55' => array('lib'=>"Meuse", 'art'=>"Meuse"), + '57' => array('lib'=>"Moselle", 'art'=>"Moselle"), + '58' => array('lib'=>"Nièvre", 'art'=>"Nièvre"), + '59' => array('lib'=>"Nord", 'art'=>"Nord"), + '60' => array('lib'=>"Oise", 'art'=>"Oise"), + '62' => array('lib'=>"Pas-de-Calais", 'art'=>"Pas-de-Calais"), + '61' => array('lib'=>"Orne", 'art'=>"Orne"), + '63' => array('lib'=>"Puy-de-Dôme", 'art'=>"Puy-de-Dôme"), + '67' => array('lib'=>"Bas-Rhin", 'art'=>"Bas-Rhin"), + '68' => array('lib'=>"Haut-Rhin", 'art'=>"Haut-Rhin"), + '69' => array('lib'=>"Rhône", 'art'=>"Rhône"), + '64' => array('lib'=>"Pyrénées-Atlantiques", 'art'=>"Pyrénées-Atlantiques"), + '65' => array('lib'=>"Hautes-Pyrénées", 'art'=>"Hautes-Pyrénées"), + '66' => array('lib'=>"Pyrénées-Orientales", 'art'=>"Pyrénées-Orientales"), + '70' => array('lib'=>"Haute-Saône", 'art'=>"Haute-Saône"), + '71' => array('lib'=>"Saône-et-Loire", 'art'=>"Saône-et-Loire"), + '72' => array('lib'=>"Sarthe", 'art'=>"Sarthe"), + '73' => array('lib'=>"Savoie", 'art'=>"Savoie"), + '74' => array('lib'=>"Haute-Savoie", 'art'=>"Haute-Savoie"), + '75' => array('lib'=>"Paris", 'art'=>"Paris"), + '76' => array('lib'=>"Seine-Maritime", 'art'=>"Seine-Maritime"), + '77' => array('lib'=>"Seine-et-Marne", 'art'=>"Seine-et-Marne"), + '78' => array('lib'=>"Yvelines", 'art'=>"Yvelines"), + '79' => array('lib'=>"Deux-Sèvres", 'art'=>"Deux-Sèvres"), + '80' => array('lib'=>"Somme", 'art'=>"Somme"), + '81' => array('lib'=>"Tarn", 'art'=>"Tarn"), + '82' => array('lib'=>"Tarn-et-Garonne", 'art'=>"Tarn-et-Garonne"), + '83' => array('lib'=>"Var", 'art'=>"Var"), + '84' => array('lib'=>"Vaucluse", 'art'=>"Vaucluse"), + '85' => array('lib'=>"Vendée", 'art'=>"Vendée"), + '86' => array('lib'=>"Vienne", 'art'=>"Vienne"), + '87' => array('lib'=>"Haute-Vienne", 'art'=>"Haute-Vienne"), + '88' => array('lib'=>"Vosges", 'art'=>"Vosges"), + '89' => array('lib'=>"Yonne", 'art'=>"Yonne"), + '90' => array('lib'=>"Territoire de Belfort", 'art'=>"Territoire de Belfort"), + '91' => array('lib'=>"Essonne", 'art'=>"Essonne"), + '92' => array('lib'=>"Hauts-de-Seine", 'art'=>"Hauts-de-Seine"), + '93' => array('lib'=>"Seine-Saint-Denis", 'art'=>"Seine-Saint-Denis"), + '94' => array('lib'=>"Val-de-Marne", 'art'=>"Val-de-Marne"), + '95' => array('lib'=>"Val-d'Oise", 'art'=>"Val-d'Oise"), + '971' => array('lib'=>"Guadeloupe", 'art'=>"Guadeloupe"), + '972' => array('lib'=>"Martinique", 'art'=>"Martinique"), + '973' => array('lib'=>"Guyane", 'art'=>"Guyane"), + '974' => array('lib'=>"Réunion", 'art'=>"Réunion"), + '200' => array('lib'=>"Corse-du-Sud", 'art'=>"Corse-du-Sud"), + '201' => array('lib'=>"Corse-du-Sud", 'art'=>"Corse-du-Sud"), + '202' => array('lib'=>"Haute-Corse", 'art'=>"Haute-Corse"), + '976' => array('lib'=>"Mayotte", 'art'=>"Mayotte"), + '988' => array('lib'=>"Nouvelle-Calédonie", 'art'=>"Nouvelle-Calédonie"), + '987' => array('lib'=>"Polynésie-Française", 'art'=>"Polynésie-Française"), + '975' => array('lib'=>"Saint-Pierre-et-Miquelon", 'art'=>"Saint-Pierre-et-Miquelon"), + '986' => array('lib'=>"Wallis-et-Futuna", 'art'=>"Wallis-et-Futuna"), + '2B' => array('lib'=>"Haute-Corse", 'art'=>"Haute-Corse"), + ), + 'LIEUACT' => array( + '01' => array('lib'=>"Exploitation agricole", 'art'=>"en Exploitation agricole"), + '02' => array('lib'=>"Mine, carrière ", 'art'=>"en mines ou carrière"), + '03' => array('lib'=>"Usine, atelier", 'art'=>"en usine ou atelier"), + '04' => array('lib'=>"Dépôt, entrepôt", 'art'=>"en dépôt ou entrepôt"), + '05' => array('lib'=>"Magasin ", 'art'=>"en Magasin "), + '07' => array('lib'=>"Bureau, cabinet", 'art'=>"en bureau ou cabinet"), + '08' => array('lib'=>"Usine ", 'art'=>"en Usine "), + '09' => array('lib'=>"Atelier ", 'art'=>"en Atelier "), + '91' => array('lib'=>"Sur chantier ", 'art'=>"sur les chantiers"), + '92' => array('lib'=>"Sur marché ", 'art'=>"sur les marchés"), + '93' => array('lib'=>"En clientèle ", 'art'=>"directement en clientèle"), + '99' => array('lib'=>"Autre", 'art'=>""), + 'NR' => array('lib'=>"Non renseigné ", 'art'=>""), + ), + 'ACTISURF' => array( + '1' => array('lib'=>"moins de 300 m2", 'art'=>"de moins de 300 m2"), + '2' => array('lib'=>"300m2 à 400m2", 'art'=>"de 300m2 à 400m2"), + '3' => array('lib'=>"400m2 à 2 500m2", 'art'=>"de 400m2 à 2 500m2"), + '4' => array('lib'=>"plus de 2 500m2", 'art'=>"de plus de 2 500m2"), + ), + 'ACTIVNAT' => array( + '01' => array('lib'=>"Travaux de bâtiment", 'art'=>"des Travaux de bâtiment"), + '02' => array('lib'=>"Travaux publics", 'art'=>"des Travaux publics"), + '03' => array('lib'=>"Extraction ", 'art'=>"d' Extraction "), + '04' => array('lib'=>"Fabrication, production", 'art'=>"de Fabrication, production"), + '05' => array('lib'=>"Montage, installation ", 'art'=>"de Montage, installation "), + '06' => array('lib'=>"Réparation ", 'art'=>"de Réparation "), + '07' => array('lib'=>"Transport ", 'art'=>"de Transport "), + '08' => array('lib'=>"Import, export ", 'art'=>"d'import/export"), + '09' => array('lib'=>"Commerce de gros ou intermédiaire du commerce", 'art'=>"de Commerce de gros ou intermédiaire du commerce"), + '10' => array('lib'=>"Commerce de détail ", 'art'=>"de Commerce de détail "), + '11' => array('lib'=>"Profession libérale", 'art'=>"de Profession libérale"), + '12' => array('lib'=>"Services ", 'art'=>"des Services "), + '13' => array('lib'=>"Location de meublés", 'art'=>"de Location de meublés"), + '14' => array('lib'=>"Bâtiments, travaux publics", 'art'=>"des Bâtiments, travaux publics"), + '15' => array('lib'=>"Services aux entreprises ", 'art'=>"des Services aux entreprises "), + '20' => array('lib'=>"Donneur d'ordre", 'art'=>"de Donneur d'ordre"), + '99' => array('lib'=>"Autre", 'art'=>"d'autre nature"), + ), + 'FJUR' => array( + '0' => array('lib'=>"Indéterminée", 'art'=>"Indéterminée"), + '1' => array('lib'=>"Personne physique", 'art'=>"Personne physique"), + '2' => array('lib'=>"Groupement de droit privé non doté de la personnalité morale", 'art'=>"Groupement de droit privé non doté de la personnalité morale"), + '3' => array('lib'=>"Personne morale de droit étranger", 'art'=>"Personne morale de droit étranger"), + '4' => array('lib'=>"Personne morale de droit public soumise au droit commercial", 'art'=>"Personne morale de droit public soumise au droit commercial"), + '5' => array('lib'=>"Société commerciale", 'art'=>"Société commerciale"), + '6' => array('lib'=>"Autre personne morale immatriculée au RCS", 'art'=>"Autre personne morale immatriculée au RCS"), + '7' => array('lib'=>"Personne morale et organisme soumis au droit administratif", 'art'=>"Personne morale et organisme soumis au droit administratif"), + '8' => array('lib'=>"Organisme privé spécialisé", 'art'=>"Organisme privé spécialisé"), + '9' => array('lib'=>"Groupement de droit privé", 'art'=>"Groupement de droit privé"), + '11' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '12' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '13' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '14' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '15' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '16' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '17' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '18' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '19' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '21' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '22' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '23' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '27' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '29' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '31' => array('lib'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)", 'art'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)"), + '32' => array('lib'=>"Personne morale de droit étranger, non immatriculée au RCS", 'art'=>"Personne morale de droit étranger, non immatriculée au RCS"), + '41' => array('lib'=>"Établissement public ou régie à caractère industriel ou commercial", 'art'=>"Établissement public ou régie à caractère industriel ou commercial"), + '51' => array('lib'=>"Société coopérative commerciale particulière", 'art'=>"Société coopérative commerciale particulière"), + '52' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '53' => array('lib'=>"Société en commandite", 'art'=>"Société en commandite"), + '54' => array('lib'=>"Société à responsabilité limité", 'art'=>"Société à responsabilité limité"), + '55' => array('lib'=>"Société anonyme à conseil d'administration", 'art'=>"Société anonyme à conseil d'administration"), + '56' => array('lib'=>"Société anonyme à directoire", 'art'=>"Société anonyme à directoire"), + '57' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '61' => array('lib'=>"Caisse d'épargne et de prévoyance", 'art'=>"Caisse d'épargne et de prévoyance"), + '62' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '63' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '64' => array('lib'=>"Société d'assurance mutuelle", 'art'=>"Société d'assurance mutuelle"), + '65' => array('lib'=>"Société civile", 'art'=>"Société civile"), + '69' => array('lib'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés", 'art'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés"), + '71' => array('lib'=>"Administration de l'état", 'art'=>"Administration de l'état"), + '72' => array('lib'=>"Collectivité territoriale", 'art'=>"Collectivité territoriale"), + '73' => array('lib'=>"Établissement public administratif", 'art'=>"Établissement public administratif"), + '74' => array('lib'=>"Autre personne morale de droit public administratif", 'art'=>"Autre personne morale de droit public administratif"), + '81' => array('lib'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire", 'art'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire"), + '82' => array('lib'=>"Organisme mutualiste", 'art'=>"Organisme mutualiste"), + '83' => array('lib'=>"Comité d'entreprise", 'art'=>"Comité d'entreprise"), + '84' => array('lib'=>"Organisme professionnel", 'art'=>"Organisme professionnel"), + '91' => array('lib'=>"Syndicat de propriétaires", 'art'=>"Syndicat de propriétaires"), + '92' => array('lib'=>"Association loi 1901 ou assimilé", 'art'=>"Association loi 1901 ou assimilé"), + '93' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '99' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '1000' => array('lib'=>"Entrepreneur Individuel à Responsabilité Limité", 'art'=>"Entrepreneur Individuel à Responsabilité Limité"), + '1100' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '1200' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '1300' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '1400' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '1500' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '1600' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '1700' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '1800' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '1900' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '2100' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '2110' => array('lib'=>"Indivision entre personnes physiques", 'art'=>"Indivision entre personnes physiques"), + '2120' => array('lib'=>"Indivision avec personne morale", 'art'=>"Indivision avec personne morale"), + '2200' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '2210' => array('lib'=>"Société créée de fait entre personnes physiques", 'art'=>"Société créée de fait entre personnes physiques"), + '2220' => array('lib'=>"Société créée de fait avec personne morale", 'art'=>"Société créée de fait avec personne morale"), + '2300' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '2310' => array('lib'=>"Société en participation entre personnes physiques", 'art'=>"Société en participation entre personnes physiques"), + '2320' => array('lib'=>"Société en participation avec personne morale", 'art'=>"Société en participation avec personne morale"), + '2385' => array('lib'=>"Société en participation de professions libérales", 'art'=>"Société en participation de professions libérales"), + '2400' => array('lib'=>"Fiducie", 'art'=>"Fiducie"), + '2700' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '2900' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '3110' => array('lib'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS", 'art'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS"), + '3120' => array('lib'=>"Société étrangère immatriculée au RCS", 'art'=>"Société étrangère immatriculée au RCS"), + '3205' => array('lib'=>"Organisation internationale", 'art'=>"Organisation internationale"), + '3210' => array('lib'=>"État collectivité ou établissement public étranger", 'art'=>"État collectivité ou établissement public étranger"), + '3220' => array('lib'=>"Société étrangère non immatriculée au RCS", 'art'=>"Société étrangère non immatriculée au RCS"), + '3290' => array('lib'=>"(Autre) personne morale de droit étranger", 'art'=>"(Autre) personne morale de droit étranger"), + '4110' => array('lib'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public"), + '4120' => array('lib'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public"), + '4130' => array('lib'=>"Exploitant public", 'art'=>"Exploitant public"), + '4140' => array('lib'=>"Établissement public local à caractère industriel ou commercial", 'art'=>"Établissement public local à caractère industriel ou commercial"), + '4150' => array('lib'=>"Régie d'une collectivité locale à caractère industriel ou commercial", 'art'=>"Régie d'une collectivité locale à caractère industriel ou commercial"), + '4160' => array('lib'=>"Institution Banque de France", 'art'=>"Institution Banque de France"), + '5191' => array('lib'=>"Société de caution mutuelle", 'art'=>"Société de caution mutuelle"), + '5192' => array('lib'=>"Société coopérative de banque populaire", 'art'=>"Société coopérative de banque populaire"), + '5193' => array('lib'=>"Caisse de crédit maritime mutuel", 'art'=>"Caisse de crédit maritime mutuel"), + '5194' => array('lib'=>"Caisse (fédérale) de crédit mutuel", 'art'=>"Caisse (fédérale) de crédit mutuel"), + '5195' => array('lib'=>"Association coopérative inscrite (droit local Alsace Moselle)", 'art'=>"Association coopérative inscrite (droit local Alsace Moselle)"), + '5196' => array('lib'=>"Caisse d'épargne et de prévoyance à forme coopérative", 'art'=>"Caisse d'épargne et de prévoyance à forme coopérative"), + '5202' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '5203' => array('lib'=>"Société en nom collectif coopérative", 'art'=>"Société en nom collectif coopérative"), + '5306' => array('lib'=>"Société en commandite simple", 'art'=>"Société en commandite simple"), + '5307' => array('lib'=>"Société en commandite simple coopérative", 'art'=>"Société en commandite simple coopérative"), + '5308' => array('lib'=>"Société en commandite par actions", 'art'=>"Société en commandite par actions"), + '5309' => array('lib'=>"Société en commandite par actions coopérative", 'art'=>"Société en commandite par actions coopérative"), + '5370' => array('lib'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions", 'art'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions"), + '5385' => array('lib'=>"Société d'exercice libéral en commandite par action", 'art'=>"Société d'exercice libéral en commandite par action"), + '5410' => array('lib'=>"SARL nationale", 'art'=>"SARL nationale"), + '5415' => array('lib'=>"SARL d'économie mixte", 'art'=>"SARL d'économie mixte"), + '5422' => array('lib'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)", 'art'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)"), + '5426' => array('lib'=>"Société immobilière de gestion", 'art'=>"Société immobilière de gestion"), + '5430' => array('lib'=>"Safer en SARL", 'art'=>"Safer en SARL"), + '5431' => array('lib'=>"SARL mixte d'intérêt agricole", 'art'=>"SARL mixte d'intérêt agricole"), + '5432' => array('lib'=>"SARL d'intérêt collectif agricole", 'art'=>"SARL d'intérêt collectif agricole"), + '5442' => array('lib'=>"SARL d'attribution", 'art'=>"SARL d'attribution"), + '5443' => array('lib'=>"SARL coopérative de construction", 'art'=>"SARL coopérative de construction"), + '5451' => array('lib'=>"SARL coopérative de consommation", 'art'=>"SARL coopérative de consommation"), + '5453' => array('lib'=>"SARL coopérative artisanale", 'art'=>"SARL coopérative artisanale"), + '5454' => array('lib'=>"SARL coopérative d'intérêt maritime", 'art'=>"SARL coopérative d'intérêt maritime"), + '5455' => array('lib'=>"SARL coopérative de transports", 'art'=>"SARL coopérative de transports"), + '5458' => array('lib'=>"SARL coopérative ouvrière de production", 'art'=>"SARL coopérative ouvrière de production"), + '5459' => array('lib'=>"SARL union de sociétés coopératives", 'art'=>"SARL union de sociétés coopératives"), + '5460' => array('lib'=>"Autre SARL coopérative", 'art'=>"Autre SARL coopérative"), + '5470' => array('lib'=>"Société de Participations Financières de Profession Libérale en SARL", 'art'=>"Société de Participations Financières de Profession Libérale en SARL"), + '5485' => array('lib'=>"Société d'exercice libéral à responsabilité limitée", 'art'=>"Société d'exercice libéral à responsabilité limitée"), + '5488' => array('lib'=>"Entreprise Unipersonnelle à Responsabilité Limitée", 'art'=>"Entreprise Unipersonnelle à Responsabilité Limitée"), + '5498' => array('lib'=>"SARL unipersonnelle", 'art'=>"SARL unipersonnelle"), + '5499' => array('lib'=>"Autre société à responsabilité limitée", 'art'=>"Autre société à responsabilité limitée"), + '5505' => array('lib'=>"SA à participation ouvrière à conseil d'administration", 'art'=>"SA à participation ouvrière à conseil d'administration"), + '5510' => array('lib'=>"SA nationale à conseil d'administration", 'art'=>"SA nationale à conseil d'administration"), + '5515' => array('lib'=>"SA d'économie mixte à conseil d'administration", 'art'=>"SA d'économie mixte à conseil d'administration"), + '5520' => array('lib'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration", 'art'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration"), + '5522' => array('lib'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration", 'art'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration"), + '5525' => array('lib'=>"Société anonyme immobilière d'investissement à conseil d'administration", 'art'=>"Société anonyme immobilière d'investissement à conseil d'administration"), + '5530' => array('lib'=>"Safer anonyme à conseil d'administration", 'art'=>"Safer anonyme à conseil d'administration"), + '5531' => array('lib'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration"), + '5532' => array('lib'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration"), + '5542' => array('lib'=>"Société anonyme d'attribution à conseil d'administration", 'art'=>"Société anonyme d'attribution à conseil d'administration"), + '5543' => array('lib'=>"Société anonyme coopérative de construction à conseil d'administration", 'art'=>"Société anonyme coopérative de construction à conseil d'administration"), + '5546' => array('lib'=>"SA de HLM à conseil d'administration", 'art'=>"SA de HLM à conseil d'administration"), + '5547' => array('lib'=>"SA coopérative de production de HLM à conseil d'administration", 'art'=>"SA coopérative de production de HLM à conseil d'administration"), + '5548' => array('lib'=>"SA de crédit immobilier à conseil d'administration", 'art'=>"SA de crédit immobilier à conseil d'administration"), + '5551' => array('lib'=>"SA coopérative de consommation à conseil d'administration", 'art'=>"SA coopérative de consommation à conseil d'administration"), + '5552' => array('lib'=>"SA coopérative de commerçants détaillants à conseil d'administration", 'art'=>"SA coopérative de commerçants détaillants à conseil d'administration"), + '5553' => array('lib'=>"SA coopérative artisanale à conseil d'administration", 'art'=>"SA coopérative artisanale à conseil d'administration"), + '5554' => array('lib'=>"SA coopérative (d'intérêt) maritime à conseil d'administration", 'art'=>"SA coopérative (d'intérêt) maritime à conseil d'administration"), + '5555' => array('lib'=>"SA coopérative de transports à conseil d'administration", 'art'=>"SA coopérative de transports à conseil d'administration"), + '5558' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration", 'art'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration"), + '5559' => array('lib'=>"SA union de sociétés coopératives à conseil d'administration", 'art'=>"SA union de sociétés coopératives à conseil d'administration"), + '5560' => array('lib'=>"Autre SA coopérative à conseil d'administration", 'art'=>"Autre SA coopérative à conseil d'administration"), + '5570' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration", 'art'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration"), + '5585' => array('lib'=>"Société d'exercice libéral à forme anonyme à conseil d'administration", 'art'=>"Société d'exercice libéral à forme anonyme à conseil d'administration"), + '5599' => array('lib'=>"Autre SA à conseil d'administration", 'art'=>"Autre SA à conseil d'administration"), + '5605' => array('lib'=>"SA à participation ouvrière à directoire", 'art'=>"SA à participation ouvrière à directoire"), + '5610' => array('lib'=>"SA nationale à directoire", 'art'=>"SA nationale à directoire"), + '5615' => array('lib'=>"SA d'économie mixte à directoire", 'art'=>"SA d'économie mixte à directoire"), + '5620' => array('lib'=>"Société d'investissement à capital variable (SICAV) à directoire", 'art'=>"Société d'investissement à capital variable (SICAV) à directoire"), + '5622' => array('lib'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire", 'art'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire"), + '5625' => array('lib'=>"Société immobilière d'investissement anonyme à directoire", 'art'=>"Société immobilière d'investissement anonyme à directoire"), + '5630' => array('lib'=>"Safer anonyme à directoire", 'art'=>"Safer anonyme à directoire"), + '5631' => array('lib'=>"Société anonyme mixte d'intérêt agricole", 'art'=>"Société anonyme mixte d'intérêt agricole"), + '5632' => array('lib'=>"Société anonyme d'intérêt collectif agricole", 'art'=>"Société anonyme d'intérêt collectif agricole"), + '5642' => array('lib'=>"Société anonyme d'attribution à directoire", 'art'=>"Société anonyme d'attribution à directoire"), + '5643' => array('lib'=>"Société anonyme coopérative de construction à directoire", 'art'=>"Société anonyme coopérative de construction à directoire"), + '5646' => array('lib'=>"Société anonyme de HLM à directoire", 'art'=>"Société anonyme de HLM à directoire"), + '5647' => array('lib'=>"Société coopérative de production de HLM anonyme à directoire", 'art'=>"Société coopérative de production de HLM anonyme à directoire"), + '5648' => array('lib'=>"SA de crédit immobilier à directoire", 'art'=>"SA de crédit immobilier à directoire"), + '5651' => array('lib'=>"SA coopérative de consommation à directoire", 'art'=>"SA coopérative de consommation à directoire"), + '5652' => array('lib'=>"SA coopérative de commerçants détaillants à directoire", 'art'=>"SA coopérative de commerçants détaillants à directoire"), + '5653' => array('lib'=>"SA coopérative artisanale à directoire", 'art'=>"SA coopérative artisanale à directoire"), + '5654' => array('lib'=>"SA coopérative (d'intérêt) maritime à directoire", 'art'=>"SA coopérative (d'intérêt) maritime à directoire"), + '5655' => array('lib'=>"SA coopérative de transport à directoire", 'art'=>"SA coopérative de transport à directoire"), + '5658' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à directoire", 'art'=>"SA coopérative ouvrière de production (SCOP) à directoire"), + '5659' => array('lib'=>"SA union de sociétés coopératives à directoire", 'art'=>"SA union de sociétés coopératives à directoire"), + '5660' => array('lib'=>"(Autre) SA coopérative à directoire", 'art'=>"(Autre) SA coopérative à directoire"), + '5670' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à Directoire", 'art'=>"Société de Participations Financières de Profession Libérale en SA à Directoire"), + '5685' => array('lib'=>"Société d'exercice libéral à forme anonyme à directoire", 'art'=>"Société d'exercice libéral à forme anonyme à directoire"), + '5699' => array('lib'=>"Autre SA à directoire", 'art'=>"Autre SA à directoire"), + '5710' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '5720' => array('lib'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle", 'art'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle"), + '5770' => array('lib'=>"Société de Participations Financières de Profession Libérale en SAS", 'art'=>"Société de Participations Financières de Profession Libérale en SAS"), + '5785' => array('lib'=>"Société d’exercice libéral par action simplifiée", 'art'=>"Société d’exercice libéral par action simplifiée"), + '5800' => array('lib'=>"Société européenne", 'art'=>"Société européenne"), + '6100' => array('lib'=>"Caisse d’épargne et de prévoyance", 'art'=>"Caisse d’épargne et de prévoyance"), + '6200' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '6210' => array('lib'=>"Groupement européen d’intérêt économique", 'art'=>"Groupement européen d’intérêt économique"), + '6220' => array('lib'=>"Groupement d’intérêt économique", 'art'=>"Groupement d’intérêt économique"), + '6316' => array('lib'=>"Coopérative d’utilisation de matériel agricole en commun", 'art'=>"Coopérative d’utilisation de matériel agricole en commun"), + '6317' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '6318' => array('lib'=>"Union de sociétés coopératives agricoles", 'art'=>"Union de sociétés coopératives agricoles"), + '6411' => array('lib'=>"Société d’assurance mutuelle", 'art'=>"Société d’assurance mutuelle"), + '6412' => array('lib'=>"Société mutuelle d'assurance", 'art'=>"Société mutuelle d'assurance"), + '6413' => array('lib'=>"Union de sociétés mutuelles d'assurances", 'art'=>"Union de sociétés mutuelles d'assurances"), + '6414' => array('lib'=>"Autre société non commerciale d'assurance", 'art'=>"Autre société non commerciale d'assurance"), + '6511' => array('lib'=>"Société Interprofessionnelle de Soins Ambulatoires", 'art'=>"Société Interprofessionnelle de Soins Ambulatoires"), + '6521' => array('lib'=>"Société civile de placement collectif immobilier", 'art'=>"Société civile de placement collectif immobilier"), + '6532' => array('lib'=>"Société civile d’intérêt collectif agricole", 'art'=>"Société civile d’intérêt collectif agricole"), + '6533' => array('lib'=>"Groupement agricole d’exploitation en commun", 'art'=>"Groupement agricole d’exploitation en commun"), + '6534' => array('lib'=>"Groupement foncier agricole", 'art'=>"Groupement foncier agricole"), + '6535' => array('lib'=>"Groupement agricole foncier", 'art'=>"Groupement agricole foncier"), + '6536' => array('lib'=>"Groupement forestier", 'art'=>"Groupement forestier"), + '6537' => array('lib'=>"Groupement pastoral", 'art'=>"Groupement pastoral"), + '6538' => array('lib'=>"Groupement foncier rural", 'art'=>"Groupement foncier rural"), + '6539' => array('lib'=>"Société civile foncière", 'art'=>"Société civile foncière"), + '6540' => array('lib'=>"Société civile immobilière", 'art'=>"Société civile immobilière"), + '6541' => array('lib'=>"Société civile immobilière de construction vente", 'art'=>"Société civile immobilière de construction vente"), + '6542' => array('lib'=>"Société civile d’attribution", 'art'=>"Société civile d’attribution"), + '6543' => array('lib'=>"Société civile coopérative de construction", 'art'=>"Société civile coopérative de construction"), + '6544' => array('lib'=>"Société immobilière d'accession progressive à la propriété", 'art'=>"Société immobilière d'accession progressive à la propriété"), + '6551' => array('lib'=>"Société civile coopérative de consommation", 'art'=>"Société civile coopérative de consommation"), + '6554' => array('lib'=>"Société civile coopérative (d’intérêt) maritime", 'art'=>"Société civile coopérative (d’intérêt) maritime"), + '6558' => array('lib'=>"Société civile coopérative entre médecins", 'art'=>"Société civile coopérative entre médecins"), + '6560' => array('lib'=>"Autre société civile coopérative", 'art'=>"Autre société civile coopérative"), + '6561' => array('lib'=>"SCP d’avocats", 'art'=>"SCP d’avocats"), + '6562' => array('lib'=>"SCP d’avocats aux conseil", 'art'=>"SCP d’avocats aux conseil"), + '6563' => array('lib'=>"SCP d’avoués d’appel", 'art'=>"SCP d’avoués d’appel"), + '6564' => array('lib'=>"SCP d'huissiers", 'art'=>"SCP d'huissiers"), + '6565' => array('lib'=>"SCP de notaires", 'art'=>"SCP de notaires"), + '6566' => array('lib'=>"SCP de commissaires-priseurs", 'art'=>"SCP de commissaires-priseurs"), + '6567' => array('lib'=>"SCP de greffiers de tribunal de commerce", 'art'=>"SCP de greffiers de tribunal de commerce"), + '6568' => array('lib'=>"SCP de conseils juridiques", 'art'=>"SCP de conseils juridiques"), + '6569' => array('lib'=>"SCP de commissaires aux comptes", 'art'=>"SCP de commissaires aux comptes"), + '6571' => array('lib'=>"SCP de médecins", 'art'=>"SCP de médecins"), + '6572' => array('lib'=>"SCP de dentistes", 'art'=>"SCP de dentistes"), + '6573' => array('lib'=>"SCP d’infirmiers", 'art'=>"SCP d’infirmiers"), + '6574' => array('lib'=>"SCP de masseurs kinésithérapeutes", 'art'=>"SCP de masseurs kinésithérapeutes"), + '6575' => array('lib'=>"SCP de directeurs de laboratoire d’analyse médicale", 'art'=>"SCP de directeurs de laboratoire d’analyse médicale"), + '6576' => array('lib'=>"SCP de vétérinaires", 'art'=>"SCP de vétérinaires"), + '6577' => array('lib'=>"SCP de géomètres-experts", 'art'=>"SCP de géomètres-experts"), + '6578' => array('lib'=>"SCP d’architectes", 'art'=>"SCP d’architectes"), + '6585' => array('lib'=>"(Autres) Société Civile professionnelle", 'art'=>"(Autres) Société Civile professionnelle"), + '6588' => array('lib'=>"Société civile laitière", 'art'=>"Société civile laitière"), + '6589' => array('lib'=>"Société civile de moyens", 'art'=>"Société civile de moyens"), + '6595' => array('lib'=>"Caisse (locale) de crédit mutuel", 'art'=>"Caisse (locale) de crédit mutuel"), + '6596' => array('lib'=>"Caisse de crédit agricole mutuel", 'art'=>"Caisse de crédit agricole mutuel"), + '6597' => array('lib'=>"Société civile d’exploitation agricole", 'art'=>"Société civile d’exploitation agricole"), + '6598' => array('lib'=>"Exploitation agricole à responsabilité limitée", 'art'=>"Exploitation agricole à responsabilité limitée"), + '6599' => array('lib'=>"Autre société civile", 'art'=>"Autre société civile"), + '6901' => array('lib'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés", 'art'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés"), + '7111' => array('lib'=>"Autorité constitutionnelle", 'art'=>"Autorité constitutionnelle"), + '7112' => array('lib'=>"Autorité administrative indépendante", 'art'=>"Autorité administrative indépendante"), + '7113' => array('lib'=>"Ministère", 'art'=>"Ministère"), + '7120' => array('lib'=>"Service central d’un ministère", 'art'=>"Service central d’un ministère"), + '7130' => array('lib'=>"Service du ministère des Postes et Télécommunications", 'art'=>"Service du ministère des Postes et Télécommunications"), + '7150' => array('lib'=>"Service du ministère de la Défense", 'art'=>"Service du ministère de la Défense"), + '7160' => array('lib'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)", 'art'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)"), + '7171' => array('lib'=>"Service déconcentré de l’État à compétence (inter) régionale", 'art'=>"Service déconcentré de l’État à compétence (inter) régionale"), + '7172' => array('lib'=>"Service déconcentré de l’État à compétence (inter) départementale", 'art'=>"Service déconcentré de l’État à compétence (inter) départementale"), + '7179' => array('lib'=>"(Autre) Service déconcentré de l’État à compétence territoriale", 'art'=>"(Autre) Service déconcentré de l’État à compétence territoriale"), + '7190' => array('lib'=>"Ecole nationale non dotée de la personnalité morale", 'art'=>"Ecole nationale non dotée de la personnalité morale"), + '7210' => array('lib'=>"Commune et commune nouvelle", 'art'=>"Commune et commune nouvelle"), + '7220' => array('lib'=>"Département", 'art'=>"Département"), + '7225' => array('lib'=>"Collectivité et territoire d'Outre Mer", 'art'=>"Collectivité et territoire d'Outre Mer"), + '7229' => array('lib'=>"(Autre) Collectivité territoriale", 'art'=>"(Autre) Collectivité territoriale"), + '7230' => array('lib'=>"Région", 'art'=>"Région"), + '7312' => array('lib'=>"Commune associée et commune déléguée", 'art'=>"Commune associée et commune déléguée"), + '7313' => array('lib'=>"Section de commune", 'art'=>"Section de commune"), + '7314' => array('lib'=>"Ensemble urbain", 'art'=>"Ensemble urbain"), + '7321' => array('lib'=>"Association syndicale autorisée", 'art'=>"Association syndicale autorisée"), + '7322' => array('lib'=>"Association foncière urbaine", 'art'=>"Association foncière urbaine"), + '7323' => array('lib'=>"Association foncière de remembrement", 'art'=>"Association foncière de remembrement"), + '7331' => array('lib'=>"Établissement public local d’enseignement", 'art'=>"Établissement public local d’enseignement"), + '7340' => array('lib'=>"Pôle métropolitain", 'art'=>"Pôle métropolitain"), + '7341' => array('lib'=>"Secteur de commune", 'art'=>"Secteur de commune"), + '7342' => array('lib'=>"District urbain", 'art'=>"District urbain"), + '7343' => array('lib'=>"Communauté urbaine", 'art'=>"Communauté urbaine"), + '7344' => array('lib'=>"Métropole", 'art'=>"Métropole"), + '7345' => array('lib'=>"Syndicat intercommunal à vocation multiple", 'art'=>"Syndicat intercommunal à vocation multiple"), + '7346' => array('lib'=>"Communauté de communes", 'art'=>"Communauté de communes"), + '7347' => array('lib'=>"Communauté de villes", 'art'=>"Communauté de villes"), + '7348' => array('lib'=>"Communauté d'agglomération", 'art'=>"Communauté d'agglomération"), + '7349' => array('lib'=>"Autre établissement public local de coopération non spécialisé ou entente", 'art'=>"Autre établissement public local de coopération non spécialisé ou entente"), + '7351' => array('lib'=>"Institution interdépartemental ou entente", 'art'=>"Institution interdépartemental ou entente"), + '7352' => array('lib'=>"Institution interrégionale ou entente", 'art'=>"Institution interrégionale ou entente"), + '7353' => array('lib'=>"Syndicat intercommunal à vocation unique", 'art'=>"Syndicat intercommunal à vocation unique"), + '7354' => array('lib'=>"Syndicat mixte communal", 'art'=>"Syndicat mixte communal"), + '7355' => array('lib'=>"Autre syndicat mixte", 'art'=>"Autre syndicat mixte"), + '7356' => array('lib'=>"Commission syndicale pour la gestion des biens indivis des communes", 'art'=>"Commission syndicale pour la gestion des biens indivis des communes"), + '7361' => array('lib'=>"Centre communal d'action sociale", 'art'=>"Centre communal d'action sociale"), + '7362' => array('lib'=>"Caisse des écoles", 'art'=>"Caisse des écoles"), + '7363' => array('lib'=>"Caisse de crédit municipal", 'art'=>"Caisse de crédit municipal"), + '7364' => array('lib'=>"Établissement d'hospitalisation", 'art'=>"Établissement d'hospitalisation"), + '7365' => array('lib'=>"Syndicat inter hospitalier", 'art'=>"Syndicat inter hospitalier"), + '7366' => array('lib'=>"Établissement public local social et médico-social", 'art'=>"Établissement public local social et médico-social"), + '7371' => array('lib'=>"Office public d'habitation à loyer modéré", 'art'=>"Office public d'habitation à loyer modéré"), + '7372' => array('lib'=>"Service départemental d'incendie", 'art'=>"Service départemental d'incendie"), + '7373' => array('lib'=>"Établissement public local culturel", 'art'=>"Établissement public local culturel"), + '7378' => array('lib'=>"Régie d'une collectivité locale à caractère administratif", 'art'=>"Régie d'une collectivité locale à caractère administratif"), + '7379' => array('lib'=>"(Autre) Établissement public administratif local", 'art'=>"(Autre) Établissement public administratif local"), + '7381' => array('lib'=>"Organisme consulaire", 'art'=>"Organisme consulaire"), + '7382' => array('lib'=>"Établissement public national ayant fonction d'administration centrale", 'art'=>"Établissement public national ayant fonction d'administration centrale"), + '7383' => array('lib'=>"Établissement public national à caractère scientifique culturel et professionnel", 'art'=>"Établissement public national à caractère scientifique culturel et professionnel"), + '7384' => array('lib'=>"Autre établissement public national d'enseignement", 'art'=>"Autre établissement public national d'enseignement"), + '7385' => array('lib'=>"Autre établissement public national administratif à compétence territoriale limitée", 'art'=>"Autre établissement public national administratif à compétence territoriale limitée"), + '7389' => array('lib'=>"Établissement public national à caractère administratif", 'art'=>"Établissement public national à caractère administratif"), + '7410' => array('lib'=>"Groupement d'intérêt public", 'art'=>"Groupement d'intérêt public"), + '7430' => array('lib'=>"Établissement public des cultes d'Alsace-Lorraine", 'art'=>"Établissement public des cultes d'Alsace-Lorraine"), + '7450' => array('lib'=>"Etablissement public administratif, cercle et foyer dans les armées", 'art'=>"Etablissement public administratif, cercle et foyer dans les armées"), + '7470' => array('lib'=>"Groupement de coopération sanitaire à gestion publique", 'art'=>"Groupement de coopération sanitaire à gestion publique"), + '7490' => array('lib'=>"Autre personne morale de droit administratif", 'art'=>"Autre personne morale de droit administratif"), + '7510' => array('lib'=>"Service d'une collectivité locale à comptabilité distincte", 'art'=>"Service d'une collectivité locale à comptabilité distincte"), + '7520' => array('lib'=>"Régie d'une collectivité locale non dotée de la personnalité morale", 'art'=>"Régie d'une collectivité locale non dotée de la personnalité morale"), + '8110' => array('lib'=>"Régime général de la sécurité sociale", 'art'=>"Régime général de la sécurité sociale"), + '8120' => array('lib'=>"Régime spécial de sécurité sociale", 'art'=>"Régime spécial de sécurité sociale"), + '8130' => array('lib'=>"Institution de retraite complémentaire", 'art'=>"Institution de retraite complémentaire"), + '8140' => array('lib'=>"Mutualité sociale agricole", 'art'=>"Mutualité sociale agricole"), + '8150' => array('lib'=>"Régime maladie des non-salariés non agricoles", 'art'=>"Régime maladie des non-salariés non agricoles"), + '8160' => array('lib'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale", 'art'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale"), + '8170' => array('lib'=>"Régime d'assurance chômage", 'art'=>"Régime d'assurance chômage"), + '8190' => array('lib'=>"Autre régime de prévoyance sociale", 'art'=>"Autre régime de prévoyance sociale"), + '8210' => array('lib'=>"Mutuelle", 'art'=>"Mutuelle"), + '8250' => array('lib'=>"Assurance mutuelle agricole", 'art'=>"Assurance mutuelle agricole"), + '8290' => array('lib'=>"Autre organisme mutualiste", 'art'=>"Autre organisme mutualiste"), + '8310' => array('lib'=>"Comité central d'entreprise", 'art'=>"Comité central d'entreprise"), + '8311' => array('lib'=>"Comité d'établissement", 'art'=>"Comité d'établissement"), + '8410' => array('lib'=>"Syndicat de salariés", 'art'=>"Syndicat de salariés"), + '8420' => array('lib'=>"Syndicat patronal", 'art'=>"Syndicat patronal"), + '8450' => array('lib'=>"Ordre professionnel ou assimilé", 'art'=>"Ordre professionnel ou assimilé"), + '8470' => array('lib'=>"Centre technique industriel ou comité professionnel du développement économique", 'art'=>"Centre technique industriel ou comité professionnel du développement économique"), + '8490' => array('lib'=>"Autre organisme professionnel", 'art'=>"Autre organisme professionnel"), + '8510' => array('lib'=>"Institution de prévoyance", 'art'=>"Institution de prévoyance"), + '8520' => array('lib'=>"Institution de retraite supplémentaire ", 'art'=>"Institution de retraite supplémentaire "), + '9110' => array('lib'=>"Syndicat de copropriété", 'art'=>"Syndicat de copropriété"), + '9150' => array('lib'=>"Association syndicale libre", 'art'=>"Association syndicale libre"), + '9210' => array('lib'=>"Association non déclarée", 'art'=>"Association non déclarée"), + '9220' => array('lib'=>"Association déclarée", 'art'=>"Association déclarée"), + '9221' => array('lib'=>"Association déclarée \"entreprises d'insertion par l'économique\"", 'art'=>"Association déclarée \"entreprises d'insertion par l'économique\""), + '9222' => array('lib'=>"Association intermédiaire", 'art'=>"Association intermédiaire"), + '9223' => array('lib'=>"Groupement d'employeurs", 'art'=>"Groupement d'employeurs"), + '9224' => array('lib'=>"Association d'avocats à responsabilité professionnelle individuelle", 'art'=>"Association d'avocats à responsabilité professionnelle individuelle"), + '9230' => array('lib'=>"Association déclarée reconnue d'utilité publique", 'art'=>"Association déclarée reconnue d'utilité publique"), + '9240' => array('lib'=>"Congrégation", 'art'=>"Congrégation"), + '9260' => array('lib'=>"Association de droit local", 'art'=>"Association de droit local"), + '9300' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '9900' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '9970' => array('lib'=>"Groupement de coopération sanitaire à gestion privée", 'art'=>"Groupement de coopération sanitaire à gestion privée"), + ), + 'FJURINSEE' => array( + '0' => array('lib'=>"Indéterminée", 'art'=>"Indéterminée"), + '1' => array('lib'=>"Personne physique", 'art'=>"Personne physique"), + '2' => array('lib'=>"Groupement de droit privé non doté de la personnalité morale", 'art'=>"Groupement de droit privé non doté de la personnalité morale"), + '3' => array('lib'=>"Personne morale de droit étranger", 'art'=>"Personne morale de droit étranger"), + '4' => array('lib'=>"Personne morale de droit public soumise au droit commercial", 'art'=>"Personne morale de droit public soumise au droit commercial"), + '5' => array('lib'=>"Société commerciale", 'art'=>"Société commerciale"), + '6' => array('lib'=>"Autre personne morale immatriculée au RCS", 'art'=>"Autre personne morale immatriculée au RCS"), + '7' => array('lib'=>"Personne morale et organisme soumis au droit administratif", 'art'=>"Personne morale et organisme soumis au droit administratif"), + '8' => array('lib'=>"Organisme privé spécialisé", 'art'=>"Organisme privé spécialisé"), + '9' => array('lib'=>"Groupement de droit privé", 'art'=>"Groupement de droit privé"), + '11' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '12' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '13' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '14' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '15' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '16' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '17' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '18' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '19' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '21' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '22' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '23' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '27' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '29' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '31' => array('lib'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)", 'art'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)"), + '32' => array('lib'=>"Personne morale de droit étranger, non immatriculée au RCS", 'art'=>"Personne morale de droit étranger, non immatriculée au RCS"), + '41' => array('lib'=>"Établissement public ou régie à caractère industriel ou commercial", 'art'=>"Établissement public ou régie à caractère industriel ou commercial"), + '51' => array('lib'=>"Société coopérative commerciale particulière", 'art'=>"Société coopérative commerciale particulière"), + '52' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '53' => array('lib'=>"Société en commandite", 'art'=>"Société en commandite"), + '54' => array('lib'=>"Société à responsabilité limité", 'art'=>"Société à responsabilité limité"), + '55' => array('lib'=>"Société anonyme à conseil d'administration", 'art'=>"Société anonyme à conseil d'administration"), + '56' => array('lib'=>"Société anonyme à directoire", 'art'=>"Société anonyme à directoire"), + '57' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '61' => array('lib'=>"Caisse d'épargne et de prévoyance", 'art'=>"Caisse d'épargne et de prévoyance"), + '62' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '63' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '64' => array('lib'=>"Société d'assurance mutuelle", 'art'=>"Société d'assurance mutuelle"), + '65' => array('lib'=>"Société civile", 'art'=>"Société civile"), + '69' => array('lib'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés", 'art'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés"), + '71' => array('lib'=>"Administration de l'état", 'art'=>"Administration de l'état"), + '72' => array('lib'=>"Collectivité territoriale", 'art'=>"Collectivité territoriale"), + '73' => array('lib'=>"Établissement public administratif", 'art'=>"Établissement public administratif"), + '74' => array('lib'=>"Autre personne morale de droit public administratif", 'art'=>"Autre personne morale de droit public administratif"), + '81' => array('lib'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire", 'art'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire"), + '82' => array('lib'=>"Organisme mutualiste", 'art'=>"Organisme mutualiste"), + '83' => array('lib'=>"Comité d'entreprise", 'art'=>"Comité d'entreprise"), + '84' => array('lib'=>"Organisme professionnel", 'art'=>"Organisme professionnel"), + '91' => array('lib'=>"Syndicat de propriétaires", 'art'=>"Syndicat de propriétaires"), + '92' => array('lib'=>"Association loi 1901 ou assimilé", 'art'=>"Association loi 1901 ou assimilé"), + '93' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '99' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '1000' => array('lib'=>"Entrepreneur Individuel à Responsabilité Limité", 'art'=>"Entrepreneur Individuel à Responsabilité Limité"), + '1100' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '1200' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '1300' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '1400' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '1500' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '1600' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '1700' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '1800' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '1900' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '2100' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '2110' => array('lib'=>"Indivision entre personnes physiques", 'art'=>"Indivision entre personnes physiques"), + '2120' => array('lib'=>"Indivision avec personne morale", 'art'=>"Indivision avec personne morale"), + '2200' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '2210' => array('lib'=>"Société créée de fait entre personnes physiques", 'art'=>"Société créée de fait entre personnes physiques"), + '2220' => array('lib'=>"Société créée de fait avec personne morale", 'art'=>"Société créée de fait avec personne morale"), + '2300' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '2310' => array('lib'=>"Société en participation entre personnes physiques", 'art'=>"Société en participation entre personnes physiques"), + '2320' => array('lib'=>"Société en participation avec personne morale", 'art'=>"Société en participation avec personne morale"), + '2385' => array('lib'=>"Société en participation de professions libérales", 'art'=>"Société en participation de professions libérales"), + '2400' => array('lib'=>"Fiducie", 'art'=>"Fiducie"), + '2700' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '2900' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '3110' => array('lib'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS", 'art'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS"), + '3120' => array('lib'=>"Société étrangère immatriculée au RCS", 'art'=>"Société étrangère immatriculée au RCS"), + '3205' => array('lib'=>"Organisation internationale", 'art'=>"Organisation internationale"), + '3210' => array('lib'=>"État collectivité ou établissement public étranger", 'art'=>"État collectivité ou établissement public étranger"), + '3220' => array('lib'=>"Société étrangère non immatriculée au RCS", 'art'=>"Société étrangère non immatriculée au RCS"), + '3290' => array('lib'=>"(Autre) personne morale de droit étranger", 'art'=>"(Autre) personne morale de droit étranger"), + '4110' => array('lib'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public"), + '4120' => array('lib'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public"), + '4130' => array('lib'=>"Exploitant public", 'art'=>"Exploitant public"), + '4140' => array('lib'=>"Établissement public local à caractère industriel ou commercial", 'art'=>"Établissement public local à caractère industriel ou commercial"), + '4150' => array('lib'=>"Régie d'une collectivité locale à caractère industriel ou commercial", 'art'=>"Régie d'une collectivité locale à caractère industriel ou commercial"), + '4160' => array('lib'=>"Institution Banque de France", 'art'=>"Institution Banque de France"), + '5191' => array('lib'=>"Société de caution mutuelle", 'art'=>"Société de caution mutuelle"), + '5192' => array('lib'=>"Société coopérative de banque populaire", 'art'=>"Société coopérative de banque populaire"), + '5193' => array('lib'=>"Caisse de crédit maritime mutuel", 'art'=>"Caisse de crédit maritime mutuel"), + '5194' => array('lib'=>"Caisse (fédérale) de crédit mutuel", 'art'=>"Caisse (fédérale) de crédit mutuel"), + '5195' => array('lib'=>"Association coopérative inscrite (droit local Alsace Moselle)", 'art'=>"Association coopérative inscrite (droit local Alsace Moselle)"), + '5196' => array('lib'=>"Caisse d'épargne et de prévoyance à forme coopérative", 'art'=>"Caisse d'épargne et de prévoyance à forme coopérative"), + '5202' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '5203' => array('lib'=>"Société en nom collectif coopérative", 'art'=>"Société en nom collectif coopérative"), + '5306' => array('lib'=>"Société en commandite simple", 'art'=>"Société en commandite simple"), + '5307' => array('lib'=>"Société en commandite simple coopérative", 'art'=>"Société en commandite simple coopérative"), + '5308' => array('lib'=>"Société en commandite par actions", 'art'=>"Société en commandite par actions"), + '5309' => array('lib'=>"Société en commandite par actions coopérative", 'art'=>"Société en commandite par actions coopérative"), + '5370' => array('lib'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions", 'art'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions"), + '5385' => array('lib'=>"Société d'exercice libéral en commandite par action", 'art'=>"Société d'exercice libéral en commandite par action"), + '5410' => array('lib'=>"SARL nationale", 'art'=>"SARL nationale"), + '5415' => array('lib'=>"SARL d'économie mixte", 'art'=>"SARL d'économie mixte"), + '5422' => array('lib'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)", 'art'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)"), + '5426' => array('lib'=>"Société immobilière de gestion", 'art'=>"Société immobilière de gestion"), + '5430' => array('lib'=>"Safer en SARL", 'art'=>"Safer en SARL"), + '5431' => array('lib'=>"SARL mixte d'intérêt agricole", 'art'=>"SARL mixte d'intérêt agricole"), + '5432' => array('lib'=>"SARL d'intérêt collectif agricole", 'art'=>"SARL d'intérêt collectif agricole"), + '5442' => array('lib'=>"SARL d'attribution", 'art'=>"SARL d'attribution"), + '5443' => array('lib'=>"SARL coopérative de construction", 'art'=>"SARL coopérative de construction"), + '5451' => array('lib'=>"SARL coopérative de consommation", 'art'=>"SARL coopérative de consommation"), + '5453' => array('lib'=>"SARL coopérative artisanale", 'art'=>"SARL coopérative artisanale"), + '5454' => array('lib'=>"SARL coopérative d'intérêt maritime", 'art'=>"SARL coopérative d'intérêt maritime"), + '5455' => array('lib'=>"SARL coopérative de transports", 'art'=>"SARL coopérative de transports"), + '5458' => array('lib'=>"SARL coopérative ouvrière de production", 'art'=>"SARL coopérative ouvrière de production"), + '5459' => array('lib'=>"SARL union de sociétés coopératives", 'art'=>"SARL union de sociétés coopératives"), + '5460' => array('lib'=>"Autre SARL coopérative", 'art'=>"Autre SARL coopérative"), + '5470' => array('lib'=>"Société de Participations Financières de Profession Libérale en SARL", 'art'=>"Société de Participations Financières de Profession Libérale en SARL"), + '5485' => array('lib'=>"Société d'exercice libéral à responsabilité limitée", 'art'=>"Société d'exercice libéral à responsabilité limitée"), + '5488' => array('lib'=>"Entreprise Unipersonnelle à Responsabilité Limitée", 'art'=>"Entreprise Unipersonnelle à Responsabilité Limitée"), + '5498' => array('lib'=>"SARL unipersonnelle", 'art'=>"SARL unipersonnelle"), + '5499' => array('lib'=>"Autre société à responsabilité limitée", 'art'=>"Autre société à responsabilité limitée"), + '5505' => array('lib'=>"SA à participation ouvrière à conseil d'administration", 'art'=>"SA à participation ouvrière à conseil d'administration"), + '5510' => array('lib'=>"SA nationale à conseil d'administration", 'art'=>"SA nationale à conseil d'administration"), + '5515' => array('lib'=>"SA d'économie mixte à conseil d'administration", 'art'=>"SA d'économie mixte à conseil d'administration"), + '5520' => array('lib'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration", 'art'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration"), + '5522' => array('lib'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration", 'art'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration"), + '5525' => array('lib'=>"Société anonyme immobilière d'investissement à conseil d'administration", 'art'=>"Société anonyme immobilière d'investissement à conseil d'administration"), + '5530' => array('lib'=>"Safer anonyme à conseil d'administration", 'art'=>"Safer anonyme à conseil d'administration"), + '5531' => array('lib'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration"), + '5532' => array('lib'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration"), + '5542' => array('lib'=>"Société anonyme d'attribution à conseil d'administration", 'art'=>"Société anonyme d'attribution à conseil d'administration"), + '5543' => array('lib'=>"Société anonyme coopérative de construction à conseil d'administration", 'art'=>"Société anonyme coopérative de construction à conseil d'administration"), + '5546' => array('lib'=>"SA de HLM à conseil d'administration", 'art'=>"SA de HLM à conseil d'administration"), + '5547' => array('lib'=>"SA coopérative de production de HLM à conseil d'administration", 'art'=>"SA coopérative de production de HLM à conseil d'administration"), + '5548' => array('lib'=>"SA de crédit immobilier à conseil d'administration", 'art'=>"SA de crédit immobilier à conseil d'administration"), + '5551' => array('lib'=>"SA coopérative de consommation à conseil d'administration", 'art'=>"SA coopérative de consommation à conseil d'administration"), + '5552' => array('lib'=>"SA coopérative de commerçants détaillants à conseil d'administration", 'art'=>"SA coopérative de commerçants détaillants à conseil d'administration"), + '5553' => array('lib'=>"SA coopérative artisanale à conseil d'administration", 'art'=>"SA coopérative artisanale à conseil d'administration"), + '5554' => array('lib'=>"SA coopérative (d'intérêt) maritime à conseil d'administration", 'art'=>"SA coopérative (d'intérêt) maritime à conseil d'administration"), + '5555' => array('lib'=>"SA coopérative de transports à conseil d'administration", 'art'=>"SA coopérative de transports à conseil d'administration"), + '5558' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration", 'art'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration"), + '5559' => array('lib'=>"SA union de sociétés coopératives à conseil d'administration", 'art'=>"SA union de sociétés coopératives à conseil d'administration"), + '5560' => array('lib'=>"Autre SA coopérative à conseil d'administration", 'art'=>"Autre SA coopérative à conseil d'administration"), + '5570' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration", 'art'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration"), + '5585' => array('lib'=>"Société d'exercice libéral à forme anonyme à conseil d'administration", 'art'=>"Société d'exercice libéral à forme anonyme à conseil d'administration"), + '5599' => array('lib'=>"Autre SA à conseil d'administration", 'art'=>"Autre SA à conseil d'administration"), + '5605' => array('lib'=>"SA à participation ouvrière à directoire", 'art'=>"SA à participation ouvrière à directoire"), + '5610' => array('lib'=>"SA nationale à directoire", 'art'=>"SA nationale à directoire"), + '5615' => array('lib'=>"SA d'économie mixte à directoire", 'art'=>"SA d'économie mixte à directoire"), + '5620' => array('lib'=>"Société d'investissement à capital variable (SICAV) à directoire", 'art'=>"Société d'investissement à capital variable (SICAV) à directoire"), + '5622' => array('lib'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire", 'art'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire"), + '5625' => array('lib'=>"Société immobilière d'investissement anonyme à directoire", 'art'=>"Société immobilière d'investissement anonyme à directoire"), + '5630' => array('lib'=>"Safer anonyme à directoire", 'art'=>"Safer anonyme à directoire"), + '5631' => array('lib'=>"Société anonyme mixte d'intérêt agricole", 'art'=>"Société anonyme mixte d'intérêt agricole"), + '5632' => array('lib'=>"Société anonyme d'intérêt collectif agricole", 'art'=>"Société anonyme d'intérêt collectif agricole"), + '5642' => array('lib'=>"Société anonyme d'attribution à directoire", 'art'=>"Société anonyme d'attribution à directoire"), + '5643' => array('lib'=>"Société anonyme coopérative de construction à directoire", 'art'=>"Société anonyme coopérative de construction à directoire"), + '5646' => array('lib'=>"Société anonyme de HLM à directoire", 'art'=>"Société anonyme de HLM à directoire"), + '5647' => array('lib'=>"Société coopérative de production de HLM anonyme à directoire", 'art'=>"Société coopérative de production de HLM anonyme à directoire"), + '5648' => array('lib'=>"SA de crédit immobilier à directoire", 'art'=>"SA de crédit immobilier à directoire"), + '5651' => array('lib'=>"SA coopérative de consommation à directoire", 'art'=>"SA coopérative de consommation à directoire"), + '5652' => array('lib'=>"SA coopérative de commerçants détaillants à directoire", 'art'=>"SA coopérative de commerçants détaillants à directoire"), + '5653' => array('lib'=>"SA coopérative artisanale à directoire", 'art'=>"SA coopérative artisanale à directoire"), + '5654' => array('lib'=>"SA coopérative (d'intérêt) maritime à directoire", 'art'=>"SA coopérative (d'intérêt) maritime à directoire"), + '5655' => array('lib'=>"SA coopérative de transport à directoire", 'art'=>"SA coopérative de transport à directoire"), + '5658' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à directoire", 'art'=>"SA coopérative ouvrière de production (SCOP) à directoire"), + '5659' => array('lib'=>"SA union de sociétés coopératives à directoire", 'art'=>"SA union de sociétés coopératives à directoire"), + '5660' => array('lib'=>"(Autre) SA coopérative à directoire", 'art'=>"(Autre) SA coopérative à directoire"), + '5670' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à Directoire", 'art'=>"Société de Participations Financières de Profession Libérale en SA à Directoire"), + '5685' => array('lib'=>"Société d'exercice libéral à forme anonyme à directoire", 'art'=>"Société d'exercice libéral à forme anonyme à directoire"), + '5699' => array('lib'=>"Autre SA à directoire", 'art'=>"Autre SA à directoire"), + '5710' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '5720' => array('lib'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle", 'art'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle"), + '5770' => array('lib'=>"Société de Participations Financières de Profession Libérale en SAS", 'art'=>"Société de Participations Financières de Profession Libérale en SAS"), + '5785' => array('lib'=>"Société d’exercice libéral par action simplifiée", 'art'=>"Société d’exercice libéral par action simplifiée"), + '5800' => array('lib'=>"Société européenne", 'art'=>"Société européenne"), + '6100' => array('lib'=>"Caisse d’épargne et de prévoyance", 'art'=>"Caisse d’épargne et de prévoyance"), + '6200' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '6210' => array('lib'=>"Groupement européen d’intérêt économique", 'art'=>"Groupement européen d’intérêt économique"), + '6220' => array('lib'=>"Groupement d’intérêt économique", 'art'=>"Groupement d’intérêt économique"), + '6316' => array('lib'=>"Coopérative d’utilisation de matériel agricole en commun", 'art'=>"Coopérative d’utilisation de matériel agricole en commun"), + '6317' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '6318' => array('lib'=>"Union de sociétés coopératives agricoles", 'art'=>"Union de sociétés coopératives agricoles"), + '6411' => array('lib'=>"Société d’assurance mutuelle", 'art'=>"Société d’assurance mutuelle"), + '6412' => array('lib'=>"Société mutuelle d'assurance", 'art'=>"Société mutuelle d'assurance"), + '6413' => array('lib'=>"Union de sociétés mutuelles d'assurances", 'art'=>"Union de sociétés mutuelles d'assurances"), + '6414' => array('lib'=>"Autre société non commerciale d'assurance", 'art'=>"Autre société non commerciale d'assurance"), + '6511' => array('lib'=>"Société Interprofessionnelle de Soins Ambulatoires", 'art'=>"Société Interprofessionnelle de Soins Ambulatoires"), + '6521' => array('lib'=>"Société civile de placement collectif immobilier", 'art'=>"Société civile de placement collectif immobilier"), + '6532' => array('lib'=>"Société civile d’intérêt collectif agricole", 'art'=>"Société civile d’intérêt collectif agricole"), + '6533' => array('lib'=>"Groupement agricole d’exploitation en commun", 'art'=>"Groupement agricole d’exploitation en commun"), + '6534' => array('lib'=>"Groupement foncier agricole", 'art'=>"Groupement foncier agricole"), + '6535' => array('lib'=>"Groupement agricole foncier", 'art'=>"Groupement agricole foncier"), + '6536' => array('lib'=>"Groupement forestier", 'art'=>"Groupement forestier"), + '6537' => array('lib'=>"Groupement pastoral", 'art'=>"Groupement pastoral"), + '6538' => array('lib'=>"Groupement foncier rural", 'art'=>"Groupement foncier rural"), + '6539' => array('lib'=>"Société civile foncière", 'art'=>"Société civile foncière"), + '6540' => array('lib'=>"Société civile immobilière", 'art'=>"Société civile immobilière"), + '6541' => array('lib'=>"Société civile immobilière de construction vente", 'art'=>"Société civile immobilière de construction vente"), + '6542' => array('lib'=>"Société civile d’attribution", 'art'=>"Société civile d’attribution"), + '6543' => array('lib'=>"Société civile coopérative de construction", 'art'=>"Société civile coopérative de construction"), + '6544' => array('lib'=>"Société immobilière d'accession progressive à la propriété", 'art'=>"Société immobilière d'accession progressive à la propriété"), + '6551' => array('lib'=>"Société civile coopérative de consommation", 'art'=>"Société civile coopérative de consommation"), + '6554' => array('lib'=>"Société civile coopérative (d’intérêt) maritime", 'art'=>"Société civile coopérative (d’intérêt) maritime"), + '6558' => array('lib'=>"Société civile coopérative entre médecins", 'art'=>"Société civile coopérative entre médecins"), + '6560' => array('lib'=>"Autre société civile coopérative", 'art'=>"Autre société civile coopérative"), + '6561' => array('lib'=>"SCP d’avocats", 'art'=>"SCP d’avocats"), + '6562' => array('lib'=>"SCP d’avocats aux conseil", 'art'=>"SCP d’avocats aux conseil"), + '6563' => array('lib'=>"SCP d’avoués d’appel", 'art'=>"SCP d’avoués d’appel"), + '6564' => array('lib'=>"SCP d'huissiers", 'art'=>"SCP d'huissiers"), + '6565' => array('lib'=>"SCP de notaires", 'art'=>"SCP de notaires"), + '6566' => array('lib'=>"SCP de commissaires-priseurs", 'art'=>"SCP de commissaires-priseurs"), + '6567' => array('lib'=>"SCP de greffiers de tribunal de commerce", 'art'=>"SCP de greffiers de tribunal de commerce"), + '6568' => array('lib'=>"SCP de conseils juridiques", 'art'=>"SCP de conseils juridiques"), + '6569' => array('lib'=>"SCP de commissaires aux comptes", 'art'=>"SCP de commissaires aux comptes"), + '6571' => array('lib'=>"SCP de médecins", 'art'=>"SCP de médecins"), + '6572' => array('lib'=>"SCP de dentistes", 'art'=>"SCP de dentistes"), + '6573' => array('lib'=>"SCP d’infirmiers", 'art'=>"SCP d’infirmiers"), + '6574' => array('lib'=>"SCP de masseurs kinésithérapeutes", 'art'=>"SCP de masseurs kinésithérapeutes"), + '6575' => array('lib'=>"SCP de directeurs de laboratoire d’analyse médicale", 'art'=>"SCP de directeurs de laboratoire d’analyse médicale"), + '6576' => array('lib'=>"SCP de vétérinaires", 'art'=>"SCP de vétérinaires"), + '6577' => array('lib'=>"SCP de géomètres-experts", 'art'=>"SCP de géomètres-experts"), + '6578' => array('lib'=>"SCP d’architectes", 'art'=>"SCP d’architectes"), + '6585' => array('lib'=>"(Autres) Société Civile professionnelle", 'art'=>"(Autres) Société Civile professionnelle"), + '6588' => array('lib'=>"Société civile laitière", 'art'=>"Société civile laitière"), + '6589' => array('lib'=>"Société civile de moyens", 'art'=>"Société civile de moyens"), + '6595' => array('lib'=>"Caisse (locale) de crédit mutuel", 'art'=>"Caisse (locale) de crédit mutuel"), + '6596' => array('lib'=>"Caisse de crédit agricole mutuel", 'art'=>"Caisse de crédit agricole mutuel"), + '6597' => array('lib'=>"Société civile d’exploitation agricole", 'art'=>"Société civile d’exploitation agricole"), + '6598' => array('lib'=>"Exploitation agricole à responsabilité limitée", 'art'=>"Exploitation agricole à responsabilité limitée"), + '6599' => array('lib'=>"Autre société civile", 'art'=>"Autre société civile"), + '6901' => array('lib'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés", 'art'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés"), + '7111' => array('lib'=>"Autorité constitutionnelle", 'art'=>"Autorité constitutionnelle"), + '7112' => array('lib'=>"Autorité administrative indépendante", 'art'=>"Autorité administrative indépendante"), + '7113' => array('lib'=>"Ministère", 'art'=>"Ministère"), + '7120' => array('lib'=>"Service central d’un ministère", 'art'=>"Service central d’un ministère"), + '7130' => array('lib'=>"Service du ministère des Postes et Télécommunications", 'art'=>"Service du ministère des Postes et Télécommunications"), + '7150' => array('lib'=>"Service du ministère de la Défense", 'art'=>"Service du ministère de la Défense"), + '7160' => array('lib'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)", 'art'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)"), + '7171' => array('lib'=>"Service déconcentré de l’État à compétence (inter) régionale", 'art'=>"Service déconcentré de l’État à compétence (inter) régionale"), + '7172' => array('lib'=>"Service déconcentré de l’État à compétence (inter) départementale", 'art'=>"Service déconcentré de l’État à compétence (inter) départementale"), + '7179' => array('lib'=>"(Autre) Service déconcentré de l’État à compétence territoriale", 'art'=>"(Autre) Service déconcentré de l’État à compétence territoriale"), + '7190' => array('lib'=>"Ecole nationale non dotée de la personnalité morale", 'art'=>"Ecole nationale non dotée de la personnalité morale"), + '7210' => array('lib'=>"Commune et commune nouvelle", 'art'=>"Commune et commune nouvelle"), + '7220' => array('lib'=>"Département", 'art'=>"Département"), + '7225' => array('lib'=>"Collectivité et territoire d'Outre Mer", 'art'=>"Collectivité et territoire d'Outre Mer"), + '7229' => array('lib'=>"(Autre) Collectivité territoriale", 'art'=>"(Autre) Collectivité territoriale"), + '7230' => array('lib'=>"Région", 'art'=>"Région"), + '7312' => array('lib'=>"Commune associée et commune déléguée", 'art'=>"Commune associée et commune déléguée"), + '7313' => array('lib'=>"Section de commune", 'art'=>"Section de commune"), + '7314' => array('lib'=>"Ensemble urbain", 'art'=>"Ensemble urbain"), + '7321' => array('lib'=>"Association syndicale autorisée", 'art'=>"Association syndicale autorisée"), + '7322' => array('lib'=>"Association foncière urbaine", 'art'=>"Association foncière urbaine"), + '7323' => array('lib'=>"Association foncière de remembrement", 'art'=>"Association foncière de remembrement"), + '7331' => array('lib'=>"Établissement public local d’enseignement", 'art'=>"Établissement public local d’enseignement"), + '7340' => array('lib'=>"Pôle métropolitain", 'art'=>"Pôle métropolitain"), + '7341' => array('lib'=>"Secteur de commune", 'art'=>"Secteur de commune"), + '7342' => array('lib'=>"District urbain", 'art'=>"District urbain"), + '7343' => array('lib'=>"Communauté urbaine", 'art'=>"Communauté urbaine"), + '7344' => array('lib'=>"Métropole", 'art'=>"Métropole"), + '7345' => array('lib'=>"Syndicat intercommunal à vocation multiple", 'art'=>"Syndicat intercommunal à vocation multiple"), + '7346' => array('lib'=>"Communauté de communes", 'art'=>"Communauté de communes"), + '7347' => array('lib'=>"Communauté de villes", 'art'=>"Communauté de villes"), + '7348' => array('lib'=>"Communauté d'agglomération", 'art'=>"Communauté d'agglomération"), + '7349' => array('lib'=>"Autre établissement public local de coopération non spécialisé ou entente", 'art'=>"Autre établissement public local de coopération non spécialisé ou entente"), + '7351' => array('lib'=>"Institution interdépartemental ou entente", 'art'=>"Institution interdépartemental ou entente"), + '7352' => array('lib'=>"Institution interrégionale ou entente", 'art'=>"Institution interrégionale ou entente"), + '7353' => array('lib'=>"Syndicat intercommunal à vocation unique", 'art'=>"Syndicat intercommunal à vocation unique"), + '7354' => array('lib'=>"Syndicat mixte communal", 'art'=>"Syndicat mixte communal"), + '7355' => array('lib'=>"Autre syndicat mixte", 'art'=>"Autre syndicat mixte"), + '7356' => array('lib'=>"Commission syndicale pour la gestion des biens indivis des communes", 'art'=>"Commission syndicale pour la gestion des biens indivis des communes"), + '7361' => array('lib'=>"Centre communal d'action sociale", 'art'=>"Centre communal d'action sociale"), + '7362' => array('lib'=>"Caisse des écoles", 'art'=>"Caisse des écoles"), + '7363' => array('lib'=>"Caisse de crédit municipal", 'art'=>"Caisse de crédit municipal"), + '7364' => array('lib'=>"Établissement d'hospitalisation", 'art'=>"Établissement d'hospitalisation"), + '7365' => array('lib'=>"Syndicat inter hospitalier", 'art'=>"Syndicat inter hospitalier"), + '7366' => array('lib'=>"Établissement public local social et médico-social", 'art'=>"Établissement public local social et médico-social"), + '7371' => array('lib'=>"Office public d'habitation à loyer modéré", 'art'=>"Office public d'habitation à loyer modéré"), + '7372' => array('lib'=>"Service départemental d'incendie", 'art'=>"Service départemental d'incendie"), + '7373' => array('lib'=>"Établissement public local culturel", 'art'=>"Établissement public local culturel"), + '7378' => array('lib'=>"Régie d'une collectivité locale à caractère administratif", 'art'=>"Régie d'une collectivité locale à caractère administratif"), + '7379' => array('lib'=>"(Autre) Établissement public administratif local", 'art'=>"(Autre) Établissement public administratif local"), + '7381' => array('lib'=>"Organisme consulaire", 'art'=>"Organisme consulaire"), + '7382' => array('lib'=>"Établissement public national ayant fonction d'administration centrale", 'art'=>"Établissement public national ayant fonction d'administration centrale"), + '7383' => array('lib'=>"Établissement public national à caractère scientifique culturel et professionnel", 'art'=>"Établissement public national à caractère scientifique culturel et professionnel"), + '7384' => array('lib'=>"Autre établissement public national d'enseignement", 'art'=>"Autre établissement public national d'enseignement"), + '7385' => array('lib'=>"Autre établissement public national administratif à compétence territoriale limitée", 'art'=>"Autre établissement public national administratif à compétence territoriale limitée"), + '7389' => array('lib'=>"Établissement public national à caractère administratif", 'art'=>"Établissement public national à caractère administratif"), + '7410' => array('lib'=>"Groupement d'intérêt public", 'art'=>"Groupement d'intérêt public"), + '7430' => array('lib'=>"Établissement public des cultes d'Alsace-Lorraine", 'art'=>"Établissement public des cultes d'Alsace-Lorraine"), + '7450' => array('lib'=>"Etablissement public administratif, cercle et foyer dans les armées", 'art'=>"Etablissement public administratif, cercle et foyer dans les armées"), + '7470' => array('lib'=>"Groupement de coopération sanitaire à gestion publique", 'art'=>"Groupement de coopération sanitaire à gestion publique"), + '7490' => array('lib'=>"Autre personne morale de droit administratif", 'art'=>"Autre personne morale de droit administratif"), + '7510' => array('lib'=>"Service d'une collectivité locale à comptabilité distincte", 'art'=>"Service d'une collectivité locale à comptabilité distincte"), + '7520' => array('lib'=>"Régie d'une collectivité locale non dotée de la personnalité morale", 'art'=>"Régie d'une collectivité locale non dotée de la personnalité morale"), + '8110' => array('lib'=>"Régime général de la sécurité sociale", 'art'=>"Régime général de la sécurité sociale"), + '8120' => array('lib'=>"Régime spécial de sécurité sociale", 'art'=>"Régime spécial de sécurité sociale"), + '8130' => array('lib'=>"Institution de retraite complémentaire", 'art'=>"Institution de retraite complémentaire"), + '8140' => array('lib'=>"Mutualité sociale agricole", 'art'=>"Mutualité sociale agricole"), + '8150' => array('lib'=>"Régime maladie des non-salariés non agricoles", 'art'=>"Régime maladie des non-salariés non agricoles"), + '8160' => array('lib'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale", 'art'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale"), + '8170' => array('lib'=>"Régime d'assurance chômage", 'art'=>"Régime d'assurance chômage"), + '8190' => array('lib'=>"Autre régime de prévoyance sociale", 'art'=>"Autre régime de prévoyance sociale"), + '8210' => array('lib'=>"Mutuelle", 'art'=>"Mutuelle"), + '8250' => array('lib'=>"Assurance mutuelle agricole", 'art'=>"Assurance mutuelle agricole"), + '8290' => array('lib'=>"Autre organisme mutualiste", 'art'=>"Autre organisme mutualiste"), + '8310' => array('lib'=>"Comité central d'entreprise", 'art'=>"Comité central d'entreprise"), + '8311' => array('lib'=>"Comité d'établissement", 'art'=>"Comité d'établissement"), + '8410' => array('lib'=>"Syndicat de salariés", 'art'=>"Syndicat de salariés"), + '8420' => array('lib'=>"Syndicat patronal", 'art'=>"Syndicat patronal"), + '8450' => array('lib'=>"Ordre professionnel ou assimilé", 'art'=>"Ordre professionnel ou assimilé"), + '8470' => array('lib'=>"Centre technique industriel ou comité professionnel du développement économique", 'art'=>"Centre technique industriel ou comité professionnel du développement économique"), + '8490' => array('lib'=>"Autre organisme professionnel", 'art'=>"Autre organisme professionnel"), + '8510' => array('lib'=>"Institution de prévoyance", 'art'=>"Institution de prévoyance"), + '8520' => array('lib'=>"Institution de retraite supplémentaire ", 'art'=>"Institution de retraite supplémentaire "), + '9110' => array('lib'=>"Syndicat de copropriété", 'art'=>"Syndicat de copropriété"), + '9150' => array('lib'=>"Association syndicale libre", 'art'=>"Association syndicale libre"), + '9210' => array('lib'=>"Association non déclarée", 'art'=>"Association non déclarée"), + '9220' => array('lib'=>"Association déclarée", 'art'=>"Association déclarée"), + '9221' => array('lib'=>"Association déclarée \"entreprises d'insertion par l'économique\"", 'art'=>"Association déclarée \"entreprises d'insertion par l'économique\""), + '9222' => array('lib'=>"Association intermédiaire", 'art'=>"Association intermédiaire"), + '9223' => array('lib'=>"Groupement d'employeurs", 'art'=>"Groupement d'employeurs"), + '9224' => array('lib'=>"Association d'avocats à responsabilité professionnelle individuelle", 'art'=>"Association d'avocats à responsabilité professionnelle individuelle"), + '9230' => array('lib'=>"Association déclarée reconnue d'utilité publique", 'art'=>"Association déclarée reconnue d'utilité publique"), + '9240' => array('lib'=>"Congrégation", 'art'=>"Congrégation"), + '9260' => array('lib'=>"Association de droit local", 'art'=>"Association de droit local"), + '9300' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '9900' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '9970' => array('lib'=>"Groupement de coopération sanitaire à gestion privée", 'art'=>"Groupement de coopération sanitaire à gestion privée"), + ), + 'FJURRNCS' => array( + '0' => array('lib'=>"Indéterminée", 'art'=>"Indéterminée"), + '1' => array('lib'=>"Personne physique", 'art'=>"Personne physique"), + '2' => array('lib'=>"Groupement de droit privé non doté de la personnalité morale", 'art'=>"Groupement de droit privé non doté de la personnalité morale"), + '3' => array('lib'=>"Personne morale de droit étranger", 'art'=>"Personne morale de droit étranger"), + '4' => array('lib'=>"Personne morale de droit public soumise au droit commercial", 'art'=>"Personne morale de droit public soumise au droit commercial"), + '5' => array('lib'=>"Société commerciale", 'art'=>"Société commerciale"), + '6' => array('lib'=>"Autre personne morale immatriculée au RCS", 'art'=>"Autre personne morale immatriculée au RCS"), + '7' => array('lib'=>"Personne morale et organisme soumis au droit administratif", 'art'=>"Personne morale et organisme soumis au droit administratif"), + '8' => array('lib'=>"Organisme privé spécialisé", 'art'=>"Organisme privé spécialisé"), + '9' => array('lib'=>"Groupement de droit privé", 'art'=>"Groupement de droit privé"), + '11' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '12' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '13' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '14' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '15' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '16' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '17' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '18' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '19' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '21' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '22' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '23' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '27' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '29' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '31' => array('lib'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)", 'art'=>"Personne morale de droit étranger, immatriculée au RCS (registre du commerce et des sociétés)"), + '32' => array('lib'=>"Personne morale de droit étranger, non immatriculée au RCS", 'art'=>"Personne morale de droit étranger, non immatriculée au RCS"), + '41' => array('lib'=>"Établissement public ou régie à caractère industriel ou commercial", 'art'=>"Établissement public ou régie à caractère industriel ou commercial"), + '51' => array('lib'=>"Société coopérative commerciale particulière", 'art'=>"Société coopérative commerciale particulière"), + '52' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '53' => array('lib'=>"Société en commandite", 'art'=>"Société en commandite"), + '54' => array('lib'=>"Société à responsabilité limité", 'art'=>"Société à responsabilité limité"), + '55' => array('lib'=>"Société anonyme à conseil d'administration", 'art'=>"Société anonyme à conseil d'administration"), + '56' => array('lib'=>"Société anonyme à directoire", 'art'=>"Société anonyme à directoire"), + '57' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '61' => array('lib'=>"Caisse d'épargne et de prévoyance", 'art'=>"Caisse d'épargne et de prévoyance"), + '62' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '63' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '64' => array('lib'=>"Société d'assurance mutuelle", 'art'=>"Société d'assurance mutuelle"), + '65' => array('lib'=>"Société civile", 'art'=>"Société civile"), + '69' => array('lib'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés", 'art'=>"Autre personne morale de droit privé inscrite au registre du commerce et des sociétés"), + '71' => array('lib'=>"Administration de l'état", 'art'=>"Administration de l'état"), + '72' => array('lib'=>"Collectivité territoriale", 'art'=>"Collectivité territoriale"), + '73' => array('lib'=>"Établissement public administratif", 'art'=>"Établissement public administratif"), + '74' => array('lib'=>"Autre personne morale de droit public administratif", 'art'=>"Autre personne morale de droit public administratif"), + '81' => array('lib'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire", 'art'=>"Organisme gérant un régime de protection sociale à adhésion obligatoire"), + '82' => array('lib'=>"Organisme mutualiste", 'art'=>"Organisme mutualiste"), + '83' => array('lib'=>"Comité d'entreprise", 'art'=>"Comité d'entreprise"), + '84' => array('lib'=>"Organisme professionnel", 'art'=>"Organisme professionnel"), + '91' => array('lib'=>"Syndicat de propriétaires", 'art'=>"Syndicat de propriétaires"), + '92' => array('lib'=>"Association loi 1901 ou assimilé", 'art'=>"Association loi 1901 ou assimilé"), + '93' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '99' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '1000' => array('lib'=>"Entrepreneur Individuel à Responsabilité Limité", 'art'=>"Entrepreneur Individuel à Responsabilité Limité"), + '1100' => array('lib'=>"Artisan Commerçant", 'art'=>"Artisan Commerçant"), + '1200' => array('lib'=>"Commerçant", 'art'=>"Commerçant"), + '1300' => array('lib'=>"Artisan", 'art'=>"Artisan"), + '1400' => array('lib'=>"Officier public ou ministériel", 'art'=>"Officier public ou ministériel"), + '1500' => array('lib'=>"Profession libérale", 'art'=>"Profession libérale"), + '1600' => array('lib'=>"Exploitant agricole", 'art'=>"Exploitant agricole"), + '1700' => array('lib'=>"Agent commercial", 'art'=>"Agent commercial"), + '1800' => array('lib'=>"Associé Gérant de société", 'art'=>"Associé Gérant de société"), + '1900' => array('lib'=>"(Autre) personne physique", 'art'=>"(Autre) personne physique"), + '2100' => array('lib'=>"Indivision", 'art'=>"Indivision"), + '2110' => array('lib'=>"Indivision entre personnes physiques", 'art'=>"Indivision entre personnes physiques"), + '2120' => array('lib'=>"Indivision avec personne morale", 'art'=>"Indivision avec personne morale"), + '2200' => array('lib'=>"Société créée de fait", 'art'=>"Société créée de fait"), + '2210' => array('lib'=>"Société créée de fait entre personnes physiques", 'art'=>"Société créée de fait entre personnes physiques"), + '2220' => array('lib'=>"Société créée de fait avec personne morale", 'art'=>"Société créée de fait avec personne morale"), + '2300' => array('lib'=>"Société en participation", 'art'=>"Société en participation"), + '2310' => array('lib'=>"Société en participation entre personnes physiques", 'art'=>"Société en participation entre personnes physiques"), + '2320' => array('lib'=>"Société en participation avec personne morale", 'art'=>"Société en participation avec personne morale"), + '2385' => array('lib'=>"Société en participation de professions libérales", 'art'=>"Société en participation de professions libérales"), + '2400' => array('lib'=>"Fiducie", 'art'=>"Fiducie"), + '2700' => array('lib'=>"Paroisse hors zone concordataire", 'art'=>"Paroisse hors zone concordataire"), + '2900' => array('lib'=>"Autre groupement de droit privé non doté de la personnalité morale", 'art'=>"Autre groupement de droit privé non doté de la personnalité morale"), + '3110' => array('lib'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS", 'art'=>"Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS"), + '3120' => array('lib'=>"Société étrangère immatriculée au RCS", 'art'=>"Société étrangère immatriculée au RCS"), + '3205' => array('lib'=>"Organisation internationale", 'art'=>"Organisation internationale"), + '3210' => array('lib'=>"État collectivité ou établissement public étranger", 'art'=>"État collectivité ou établissement public étranger"), + '3220' => array('lib'=>"Société étrangère non immatriculée au RCS", 'art'=>"Société étrangère non immatriculée au RCS"), + '3290' => array('lib'=>"(Autre) personne morale de droit étranger", 'art'=>"(Autre) personne morale de droit étranger"), + '4110' => array('lib'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial doté d'un comptable public"), + '4120' => array('lib'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public", 'art'=>"Établissement public national à caractère industriel ou commercial non doté d'un comptable public"), + '4130' => array('lib'=>"Exploitant public", 'art'=>"Exploitant public"), + '4140' => array('lib'=>"Établissement public local à caractère industriel ou commercial", 'art'=>"Établissement public local à caractère industriel ou commercial"), + '4150' => array('lib'=>"Régie d'une collectivité locale à caractère industriel ou commercial", 'art'=>"Régie d'une collectivité locale à caractère industriel ou commercial"), + '4160' => array('lib'=>"Institution Banque de France", 'art'=>"Institution Banque de France"), + '5191' => array('lib'=>"Société de caution mutuelle", 'art'=>"Société de caution mutuelle"), + '5192' => array('lib'=>"Société coopérative de banque populaire", 'art'=>"Société coopérative de banque populaire"), + '5193' => array('lib'=>"Caisse de crédit maritime mutuel", 'art'=>"Caisse de crédit maritime mutuel"), + '5194' => array('lib'=>"Caisse (fédérale) de crédit mutuel", 'art'=>"Caisse (fédérale) de crédit mutuel"), + '5195' => array('lib'=>"Association coopérative inscrite (droit local Alsace Moselle)", 'art'=>"Association coopérative inscrite (droit local Alsace Moselle)"), + '5196' => array('lib'=>"Caisse d'épargne et de prévoyance à forme coopérative", 'art'=>"Caisse d'épargne et de prévoyance à forme coopérative"), + '5202' => array('lib'=>"Société en nom collectif", 'art'=>"Société en nom collectif"), + '5203' => array('lib'=>"Société en nom collectif coopérative", 'art'=>"Société en nom collectif coopérative"), + '5306' => array('lib'=>"Société en commandite simple", 'art'=>"Société en commandite simple"), + '5307' => array('lib'=>"Société en commandite simple coopérative", 'art'=>"Société en commandite simple coopérative"), + '5308' => array('lib'=>"Société en commandite par actions", 'art'=>"Société en commandite par actions"), + '5309' => array('lib'=>"Société en commandite par actions coopérative", 'art'=>"Société en commandite par actions coopérative"), + '5370' => array('lib'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions", 'art'=>"Société de Participations Financières de Profession Libérale Société en commandite par actions"), + '5385' => array('lib'=>"Société d'exercice libéral en commandite par action", 'art'=>"Société d'exercice libéral en commandite par action"), + '5410' => array('lib'=>"SARL nationale", 'art'=>"SARL nationale"), + '5415' => array('lib'=>"SARL d'économie mixte", 'art'=>"SARL d'économie mixte"), + '5422' => array('lib'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)", 'art'=>"SARL immobilière pour le commerce et l'industrie (SICOMI)"), + '5426' => array('lib'=>"Société immobilière de gestion", 'art'=>"Société immobilière de gestion"), + '5430' => array('lib'=>"Safer en SARL", 'art'=>"Safer en SARL"), + '5431' => array('lib'=>"SARL mixte d'intérêt agricole", 'art'=>"SARL mixte d'intérêt agricole"), + '5432' => array('lib'=>"SARL d'intérêt collectif agricole", 'art'=>"SARL d'intérêt collectif agricole"), + '5442' => array('lib'=>"SARL d'attribution", 'art'=>"SARL d'attribution"), + '5443' => array('lib'=>"SARL coopérative de construction", 'art'=>"SARL coopérative de construction"), + '5451' => array('lib'=>"SARL coopérative de consommation", 'art'=>"SARL coopérative de consommation"), + '5453' => array('lib'=>"SARL coopérative artisanale", 'art'=>"SARL coopérative artisanale"), + '5454' => array('lib'=>"SARL coopérative d'intérêt maritime", 'art'=>"SARL coopérative d'intérêt maritime"), + '5455' => array('lib'=>"SARL coopérative de transports", 'art'=>"SARL coopérative de transports"), + '5458' => array('lib'=>"SARL coopérative ouvrière de production", 'art'=>"SARL coopérative ouvrière de production"), + '5459' => array('lib'=>"SARL union de sociétés coopératives", 'art'=>"SARL union de sociétés coopératives"), + '5460' => array('lib'=>"Autre SARL coopérative", 'art'=>"Autre SARL coopérative"), + '5470' => array('lib'=>"Société de Participations Financières de Profession Libérale en SARL", 'art'=>"Société de Participations Financières de Profession Libérale en SARL"), + '5485' => array('lib'=>"Société d'exercice libéral à responsabilité limitée", 'art'=>"Société d'exercice libéral à responsabilité limitée"), + '5488' => array('lib'=>"Entreprise Unipersonnelle à Responsabilité Limitée", 'art'=>"Entreprise Unipersonnelle à Responsabilité Limitée"), + '5498' => array('lib'=>"SARL unipersonnelle", 'art'=>"SARL unipersonnelle"), + '5499' => array('lib'=>"Autre société à responsabilité limitée", 'art'=>"Autre société à responsabilité limitée"), + '5505' => array('lib'=>"SA à participation ouvrière à conseil d'administration", 'art'=>"SA à participation ouvrière à conseil d'administration"), + '5510' => array('lib'=>"SA nationale à conseil d'administration", 'art'=>"SA nationale à conseil d'administration"), + '5515' => array('lib'=>"SA d'économie mixte à conseil d'administration", 'art'=>"SA d'économie mixte à conseil d'administration"), + '5520' => array('lib'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration", 'art'=>"Société d'investissement à capital variable (SICAV) à conseil d'administration"), + '5522' => array('lib'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration", 'art'=>"Société anonyme immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration"), + '5525' => array('lib'=>"Société anonyme immobilière d'investissement à conseil d'administration", 'art'=>"Société anonyme immobilière d'investissement à conseil d'administration"), + '5530' => array('lib'=>"Safer anonyme à conseil d'administration", 'art'=>"Safer anonyme à conseil d'administration"), + '5531' => array('lib'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration"), + '5532' => array('lib'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration", 'art'=>"Société anonyme mixte d'intérêt collectif agricole (SICA) à conseil d'administration"), + '5542' => array('lib'=>"Société anonyme d'attribution à conseil d'administration", 'art'=>"Société anonyme d'attribution à conseil d'administration"), + '5543' => array('lib'=>"Société anonyme coopérative de construction à conseil d'administration", 'art'=>"Société anonyme coopérative de construction à conseil d'administration"), + '5546' => array('lib'=>"SA de HLM à conseil d'administration", 'art'=>"SA de HLM à conseil d'administration"), + '5547' => array('lib'=>"SA coopérative de production de HLM à conseil d'administration", 'art'=>"SA coopérative de production de HLM à conseil d'administration"), + '5548' => array('lib'=>"SA de crédit immobilier à conseil d'administration", 'art'=>"SA de crédit immobilier à conseil d'administration"), + '5551' => array('lib'=>"SA coopérative de consommation à conseil d'administration", 'art'=>"SA coopérative de consommation à conseil d'administration"), + '5552' => array('lib'=>"SA coopérative de commerçants détaillants à conseil d'administration", 'art'=>"SA coopérative de commerçants détaillants à conseil d'administration"), + '5553' => array('lib'=>"SA coopérative artisanale à conseil d'administration", 'art'=>"SA coopérative artisanale à conseil d'administration"), + '5554' => array('lib'=>"SA coopérative (d'intérêt) maritime à conseil d'administration", 'art'=>"SA coopérative (d'intérêt) maritime à conseil d'administration"), + '5555' => array('lib'=>"SA coopérative de transports à conseil d'administration", 'art'=>"SA coopérative de transports à conseil d'administration"), + '5558' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration", 'art'=>"SA coopérative ouvrière de production (SCOP) à conseil d'administration"), + '5559' => array('lib'=>"SA union de sociétés coopératives à conseil d'administration", 'art'=>"SA union de sociétés coopératives à conseil d'administration"), + '5560' => array('lib'=>"Autre SA coopérative à conseil d'administration", 'art'=>"Autre SA coopérative à conseil d'administration"), + '5570' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration", 'art'=>"Société de Participations Financières de Profession Libérale en SA à conseil d'administration"), + '5585' => array('lib'=>"Société d'exercice libéral à forme anonyme à conseil d'administration", 'art'=>"Société d'exercice libéral à forme anonyme à conseil d'administration"), + '5599' => array('lib'=>"Autre SA à conseil d'administration", 'art'=>"Autre SA à conseil d'administration"), + '5605' => array('lib'=>"SA à participation ouvrière à directoire", 'art'=>"SA à participation ouvrière à directoire"), + '5610' => array('lib'=>"SA nationale à directoire", 'art'=>"SA nationale à directoire"), + '5615' => array('lib'=>"SA d'économie mixte à directoire", 'art'=>"SA d'économie mixte à directoire"), + '5620' => array('lib'=>"Société d'investissement à capital variable (SICAV) à directoire", 'art'=>"Société d'investissement à capital variable (SICAV) à directoire"), + '5622' => array('lib'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire", 'art'=>"Société immobilière pour le commerce et l'industrie (SICOMI) anonyme à directoire"), + '5625' => array('lib'=>"Société immobilière d'investissement anonyme à directoire", 'art'=>"Société immobilière d'investissement anonyme à directoire"), + '5630' => array('lib'=>"Safer anonyme à directoire", 'art'=>"Safer anonyme à directoire"), + '5631' => array('lib'=>"Société anonyme mixte d'intérêt agricole", 'art'=>"Société anonyme mixte d'intérêt agricole"), + '5632' => array('lib'=>"Société anonyme d'intérêt collectif agricole", 'art'=>"Société anonyme d'intérêt collectif agricole"), + '5642' => array('lib'=>"Société anonyme d'attribution à directoire", 'art'=>"Société anonyme d'attribution à directoire"), + '5643' => array('lib'=>"Société anonyme coopérative de construction à directoire", 'art'=>"Société anonyme coopérative de construction à directoire"), + '5646' => array('lib'=>"Société anonyme de HLM à directoire", 'art'=>"Société anonyme de HLM à directoire"), + '5647' => array('lib'=>"Société coopérative de production de HLM anonyme à directoire", 'art'=>"Société coopérative de production de HLM anonyme à directoire"), + '5648' => array('lib'=>"SA de crédit immobilier à directoire", 'art'=>"SA de crédit immobilier à directoire"), + '5651' => array('lib'=>"SA coopérative de consommation à directoire", 'art'=>"SA coopérative de consommation à directoire"), + '5652' => array('lib'=>"SA coopérative de commerçants détaillants à directoire", 'art'=>"SA coopérative de commerçants détaillants à directoire"), + '5653' => array('lib'=>"SA coopérative artisanale à directoire", 'art'=>"SA coopérative artisanale à directoire"), + '5654' => array('lib'=>"SA coopérative (d'intérêt) maritime à directoire", 'art'=>"SA coopérative (d'intérêt) maritime à directoire"), + '5655' => array('lib'=>"SA coopérative de transport à directoire", 'art'=>"SA coopérative de transport à directoire"), + '5658' => array('lib'=>"SA coopérative ouvrière de production (SCOP) à directoire", 'art'=>"SA coopérative ouvrière de production (SCOP) à directoire"), + '5659' => array('lib'=>"SA union de sociétés coopératives à directoire", 'art'=>"SA union de sociétés coopératives à directoire"), + '5660' => array('lib'=>"(Autre) SA coopérative à directoire", 'art'=>"(Autre) SA coopérative à directoire"), + '5670' => array('lib'=>"Société de Participations Financières de Profession Libérale en SA à Directoire", 'art'=>"Société de Participations Financières de Profession Libérale en SA à Directoire"), + '5685' => array('lib'=>"Société d'exercice libéral à forme anonyme à directoire", 'art'=>"Société d'exercice libéral à forme anonyme à directoire"), + '5699' => array('lib'=>"Autre SA à directoire", 'art'=>"Autre SA à directoire"), + '5710' => array('lib'=>"Société par actions simplifiée", 'art'=>"Société par actions simplifiée"), + '5720' => array('lib'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle", 'art'=>"Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle"), + '5770' => array('lib'=>"Société de Participations Financières de Profession Libérale en SAS", 'art'=>"Société de Participations Financières de Profession Libérale en SAS"), + '5785' => array('lib'=>"Société d’exercice libéral par action simplifiée", 'art'=>"Société d’exercice libéral par action simplifiée"), + '5800' => array('lib'=>"Société européenne", 'art'=>"Société européenne"), + '6100' => array('lib'=>"Caisse d’épargne et de prévoyance", 'art'=>"Caisse d’épargne et de prévoyance"), + '6200' => array('lib'=>"Groupement d'intérêt économique", 'art'=>"Groupement d'intérêt économique"), + '6210' => array('lib'=>"Groupement européen d’intérêt économique", 'art'=>"Groupement européen d’intérêt économique"), + '6220' => array('lib'=>"Groupement d’intérêt économique", 'art'=>"Groupement d’intérêt économique"), + '6316' => array('lib'=>"Coopérative d’utilisation de matériel agricole en commun", 'art'=>"Coopérative d’utilisation de matériel agricole en commun"), + '6317' => array('lib'=>"Société coopérative agricole", 'art'=>"Société coopérative agricole"), + '6318' => array('lib'=>"Union de sociétés coopératives agricoles", 'art'=>"Union de sociétés coopératives agricoles"), + '6411' => array('lib'=>"Société d’assurance mutuelle", 'art'=>"Société d’assurance mutuelle"), + '6412' => array('lib'=>"Société mutuelle d'assurance", 'art'=>"Société mutuelle d'assurance"), + '6413' => array('lib'=>"Union de sociétés mutuelles d'assurances", 'art'=>"Union de sociétés mutuelles d'assurances"), + '6414' => array('lib'=>"Autre société non commerciale d'assurance", 'art'=>"Autre société non commerciale d'assurance"), + '6511' => array('lib'=>"Société Interprofessionnelle de Soins Ambulatoires", 'art'=>"Société Interprofessionnelle de Soins Ambulatoires"), + '6521' => array('lib'=>"Société civile de placement collectif immobilier", 'art'=>"Société civile de placement collectif immobilier"), + '6532' => array('lib'=>"Société civile d’intérêt collectif agricole", 'art'=>"Société civile d’intérêt collectif agricole"), + '6533' => array('lib'=>"Groupement agricole d’exploitation en commun", 'art'=>"Groupement agricole d’exploitation en commun"), + '6534' => array('lib'=>"Groupement foncier agricole", 'art'=>"Groupement foncier agricole"), + '6535' => array('lib'=>"Groupement agricole foncier", 'art'=>"Groupement agricole foncier"), + '6536' => array('lib'=>"Groupement forestier", 'art'=>"Groupement forestier"), + '6537' => array('lib'=>"Groupement pastoral", 'art'=>"Groupement pastoral"), + '6538' => array('lib'=>"Groupement foncier rural", 'art'=>"Groupement foncier rural"), + '6539' => array('lib'=>"Société civile foncière", 'art'=>"Société civile foncière"), + '6540' => array('lib'=>"Société civile immobilière", 'art'=>"Société civile immobilière"), + '6541' => array('lib'=>"Société civile immobilière de construction vente", 'art'=>"Société civile immobilière de construction vente"), + '6542' => array('lib'=>"Société civile d’attribution", 'art'=>"Société civile d’attribution"), + '6543' => array('lib'=>"Société civile coopérative de construction", 'art'=>"Société civile coopérative de construction"), + '6544' => array('lib'=>"Société immobilière d'accession progressive à la propriété", 'art'=>"Société immobilière d'accession progressive à la propriété"), + '6551' => array('lib'=>"Société civile coopérative de consommation", 'art'=>"Société civile coopérative de consommation"), + '6554' => array('lib'=>"Société civile coopérative (d’intérêt) maritime", 'art'=>"Société civile coopérative (d’intérêt) maritime"), + '6558' => array('lib'=>"Société civile coopérative entre médecins", 'art'=>"Société civile coopérative entre médecins"), + '6560' => array('lib'=>"Autre société civile coopérative", 'art'=>"Autre société civile coopérative"), + '6561' => array('lib'=>"SCP d’avocats", 'art'=>"SCP d’avocats"), + '6562' => array('lib'=>"SCP d’avocats aux conseil", 'art'=>"SCP d’avocats aux conseil"), + '6563' => array('lib'=>"SCP d’avoués d’appel", 'art'=>"SCP d’avoués d’appel"), + '6564' => array('lib'=>"SCP d'huissiers", 'art'=>"SCP d'huissiers"), + '6565' => array('lib'=>"SCP de notaires", 'art'=>"SCP de notaires"), + '6566' => array('lib'=>"SCP de commissaires-priseurs", 'art'=>"SCP de commissaires-priseurs"), + '6567' => array('lib'=>"SCP de greffiers de tribunal de commerce", 'art'=>"SCP de greffiers de tribunal de commerce"), + '6568' => array('lib'=>"SCP de conseils juridiques", 'art'=>"SCP de conseils juridiques"), + '6569' => array('lib'=>"SCP de commissaires aux comptes", 'art'=>"SCP de commissaires aux comptes"), + '6571' => array('lib'=>"SCP de médecins", 'art'=>"SCP de médecins"), + '6572' => array('lib'=>"SCP de dentistes", 'art'=>"SCP de dentistes"), + '6573' => array('lib'=>"SCP d’infirmiers", 'art'=>"SCP d’infirmiers"), + '6574' => array('lib'=>"SCP de masseurs kinésithérapeutes", 'art'=>"SCP de masseurs kinésithérapeutes"), + '6575' => array('lib'=>"SCP de directeurs de laboratoire d’analyse médicale", 'art'=>"SCP de directeurs de laboratoire d’analyse médicale"), + '6576' => array('lib'=>"SCP de vétérinaires", 'art'=>"SCP de vétérinaires"), + '6577' => array('lib'=>"SCP de géomètres-experts", 'art'=>"SCP de géomètres-experts"), + '6578' => array('lib'=>"SCP d’architectes", 'art'=>"SCP d’architectes"), + '6585' => array('lib'=>"(Autres) Société Civile professionnelle", 'art'=>"(Autres) Société Civile professionnelle"), + '6588' => array('lib'=>"Société civile laitière", 'art'=>"Société civile laitière"), + '6589' => array('lib'=>"Société civile de moyens", 'art'=>"Société civile de moyens"), + '6595' => array('lib'=>"Caisse (locale) de crédit mutuel", 'art'=>"Caisse (locale) de crédit mutuel"), + '6596' => array('lib'=>"Caisse de crédit agricole mutuel", 'art'=>"Caisse de crédit agricole mutuel"), + '6597' => array('lib'=>"Société civile d’exploitation agricole", 'art'=>"Société civile d’exploitation agricole"), + '6598' => array('lib'=>"Exploitation agricole à responsabilité limitée", 'art'=>"Exploitation agricole à responsabilité limitée"), + '6599' => array('lib'=>"Autre société civile", 'art'=>"Autre société civile"), + '6901' => array('lib'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés", 'art'=>"Autres personnes de droit privé inscrites au registre du commerce et des sociétés"), + '7111' => array('lib'=>"Autorité constitutionnelle", 'art'=>"Autorité constitutionnelle"), + '7112' => array('lib'=>"Autorité administrative indépendante", 'art'=>"Autorité administrative indépendante"), + '7113' => array('lib'=>"Ministère", 'art'=>"Ministère"), + '7120' => array('lib'=>"Service central d’un ministère", 'art'=>"Service central d’un ministère"), + '7130' => array('lib'=>"Service du ministère des Postes et Télécommunications", 'art'=>"Service du ministère des Postes et Télécommunications"), + '7150' => array('lib'=>"Service du ministère de la Défense", 'art'=>"Service du ministère de la Défense"), + '7160' => array('lib'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)", 'art'=>"Service déconcentré à compétence nation. D’un ministère (hors Défense)"), + '7171' => array('lib'=>"Service déconcentré de l’État à compétence (inter) régionale", 'art'=>"Service déconcentré de l’État à compétence (inter) régionale"), + '7172' => array('lib'=>"Service déconcentré de l’État à compétence (inter) départementale", 'art'=>"Service déconcentré de l’État à compétence (inter) départementale"), + '7179' => array('lib'=>"(Autre) Service déconcentré de l’État à compétence territoriale", 'art'=>"(Autre) Service déconcentré de l’État à compétence territoriale"), + '7190' => array('lib'=>"Ecole nationale non dotée de la personnalité morale", 'art'=>"Ecole nationale non dotée de la personnalité morale"), + '7210' => array('lib'=>"Commune et commune nouvelle", 'art'=>"Commune et commune nouvelle"), + '7220' => array('lib'=>"Département", 'art'=>"Département"), + '7225' => array('lib'=>"Collectivité et territoire d'Outre Mer", 'art'=>"Collectivité et territoire d'Outre Mer"), + '7229' => array('lib'=>"(Autre) Collectivité territoriale", 'art'=>"(Autre) Collectivité territoriale"), + '7230' => array('lib'=>"Région", 'art'=>"Région"), + '7312' => array('lib'=>"Commune associée et commune déléguée", 'art'=>"Commune associée et commune déléguée"), + '7313' => array('lib'=>"Section de commune", 'art'=>"Section de commune"), + '7314' => array('lib'=>"Ensemble urbain", 'art'=>"Ensemble urbain"), + '7321' => array('lib'=>"Association syndicale autorisée", 'art'=>"Association syndicale autorisée"), + '7322' => array('lib'=>"Association foncière urbaine", 'art'=>"Association foncière urbaine"), + '7323' => array('lib'=>"Association foncière de remembrement", 'art'=>"Association foncière de remembrement"), + '7331' => array('lib'=>"Établissement public local d’enseignement", 'art'=>"Établissement public local d’enseignement"), + '7340' => array('lib'=>"Pôle métropolitain", 'art'=>"Pôle métropolitain"), + '7341' => array('lib'=>"Secteur de commune", 'art'=>"Secteur de commune"), + '7342' => array('lib'=>"District urbain", 'art'=>"District urbain"), + '7343' => array('lib'=>"Communauté urbaine", 'art'=>"Communauté urbaine"), + '7344' => array('lib'=>"Métropole", 'art'=>"Métropole"), + '7345' => array('lib'=>"Syndicat intercommunal à vocation multiple", 'art'=>"Syndicat intercommunal à vocation multiple"), + '7346' => array('lib'=>"Communauté de communes", 'art'=>"Communauté de communes"), + '7347' => array('lib'=>"Communauté de villes", 'art'=>"Communauté de villes"), + '7348' => array('lib'=>"Communauté d'agglomération", 'art'=>"Communauté d'agglomération"), + '7349' => array('lib'=>"Autre établissement public local de coopération non spécialisé ou entente", 'art'=>"Autre établissement public local de coopération non spécialisé ou entente"), + '7351' => array('lib'=>"Institution interdépartemental ou entente", 'art'=>"Institution interdépartemental ou entente"), + '7352' => array('lib'=>"Institution interrégionale ou entente", 'art'=>"Institution interrégionale ou entente"), + '7353' => array('lib'=>"Syndicat intercommunal à vocation unique", 'art'=>"Syndicat intercommunal à vocation unique"), + '7354' => array('lib'=>"Syndicat mixte communal", 'art'=>"Syndicat mixte communal"), + '7355' => array('lib'=>"Autre syndicat mixte", 'art'=>"Autre syndicat mixte"), + '7356' => array('lib'=>"Commission syndicale pour la gestion des biens indivis des communes", 'art'=>"Commission syndicale pour la gestion des biens indivis des communes"), + '7361' => array('lib'=>"Centre communal d'action sociale", 'art'=>"Centre communal d'action sociale"), + '7362' => array('lib'=>"Caisse des écoles", 'art'=>"Caisse des écoles"), + '7363' => array('lib'=>"Caisse de crédit municipal", 'art'=>"Caisse de crédit municipal"), + '7364' => array('lib'=>"Établissement d'hospitalisation", 'art'=>"Établissement d'hospitalisation"), + '7365' => array('lib'=>"Syndicat inter hospitalier", 'art'=>"Syndicat inter hospitalier"), + '7366' => array('lib'=>"Établissement public local social et médico-social", 'art'=>"Établissement public local social et médico-social"), + '7371' => array('lib'=>"Office public d'habitation à loyer modéré", 'art'=>"Office public d'habitation à loyer modéré"), + '7372' => array('lib'=>"Service départemental d'incendie", 'art'=>"Service départemental d'incendie"), + '7373' => array('lib'=>"Établissement public local culturel", 'art'=>"Établissement public local culturel"), + '7378' => array('lib'=>"Régie d'une collectivité locale à caractère administratif", 'art'=>"Régie d'une collectivité locale à caractère administratif"), + '7379' => array('lib'=>"(Autre) Établissement public administratif local", 'art'=>"(Autre) Établissement public administratif local"), + '7381' => array('lib'=>"Organisme consulaire", 'art'=>"Organisme consulaire"), + '7382' => array('lib'=>"Établissement public national ayant fonction d'administration centrale", 'art'=>"Établissement public national ayant fonction d'administration centrale"), + '7383' => array('lib'=>"Établissement public national à caractère scientifique culturel et professionnel", 'art'=>"Établissement public national à caractère scientifique culturel et professionnel"), + '7384' => array('lib'=>"Autre établissement public national d'enseignement", 'art'=>"Autre établissement public national d'enseignement"), + '7385' => array('lib'=>"Autre établissement public national administratif à compétence territoriale limitée", 'art'=>"Autre établissement public national administratif à compétence territoriale limitée"), + '7389' => array('lib'=>"Établissement public national à caractère administratif", 'art'=>"Établissement public national à caractère administratif"), + '7410' => array('lib'=>"Groupement d'intérêt public", 'art'=>"Groupement d'intérêt public"), + '7430' => array('lib'=>"Établissement public des cultes d'Alsace-Lorraine", 'art'=>"Établissement public des cultes d'Alsace-Lorraine"), + '7450' => array('lib'=>"Etablissement public administratif, cercle et foyer dans les armées", 'art'=>"Etablissement public administratif, cercle et foyer dans les armées"), + '7470' => array('lib'=>"Groupement de coopération sanitaire à gestion publique", 'art'=>"Groupement de coopération sanitaire à gestion publique"), + '7490' => array('lib'=>"Autre personne morale de droit administratif", 'art'=>"Autre personne morale de droit administratif"), + '7510' => array('lib'=>"Service d'une collectivité locale à comptabilité distincte", 'art'=>"Service d'une collectivité locale à comptabilité distincte"), + '7520' => array('lib'=>"Régie d'une collectivité locale non dotée de la personnalité morale", 'art'=>"Régie d'une collectivité locale non dotée de la personnalité morale"), + '8110' => array('lib'=>"Régime général de la sécurité sociale", 'art'=>"Régime général de la sécurité sociale"), + '8120' => array('lib'=>"Régime spécial de sécurité sociale", 'art'=>"Régime spécial de sécurité sociale"), + '8130' => array('lib'=>"Institution de retraite complémentaire", 'art'=>"Institution de retraite complémentaire"), + '8140' => array('lib'=>"Mutualité sociale agricole", 'art'=>"Mutualité sociale agricole"), + '8150' => array('lib'=>"Régime maladie des non-salariés non agricoles", 'art'=>"Régime maladie des non-salariés non agricoles"), + '8160' => array('lib'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale", 'art'=>"Régime vieillesse ne dépendant pas du régime général de la sécurité sociale"), + '8170' => array('lib'=>"Régime d'assurance chômage", 'art'=>"Régime d'assurance chômage"), + '8190' => array('lib'=>"Autre régime de prévoyance sociale", 'art'=>"Autre régime de prévoyance sociale"), + '8210' => array('lib'=>"Mutuelle", 'art'=>"Mutuelle"), + '8250' => array('lib'=>"Assurance mutuelle agricole", 'art'=>"Assurance mutuelle agricole"), + '8290' => array('lib'=>"Autre organisme mutualiste", 'art'=>"Autre organisme mutualiste"), + '8310' => array('lib'=>"Comité central d'entreprise", 'art'=>"Comité central d'entreprise"), + '8311' => array('lib'=>"Comité d'établissement", 'art'=>"Comité d'établissement"), + '8410' => array('lib'=>"Syndicat de salariés", 'art'=>"Syndicat de salariés"), + '8420' => array('lib'=>"Syndicat patronal", 'art'=>"Syndicat patronal"), + '8450' => array('lib'=>"Ordre professionnel ou assimilé", 'art'=>"Ordre professionnel ou assimilé"), + '8470' => array('lib'=>"Centre technique industriel ou comité professionnel du développement économique", 'art'=>"Centre technique industriel ou comité professionnel du développement économique"), + '8490' => array('lib'=>"Autre organisme professionnel", 'art'=>"Autre organisme professionnel"), + '8510' => array('lib'=>"Institution de prévoyance", 'art'=>"Institution de prévoyance"), + '8520' => array('lib'=>"Institution de retraite supplémentaire ", 'art'=>"Institution de retraite supplémentaire "), + '9110' => array('lib'=>"Syndicat de copropriété", 'art'=>"Syndicat de copropriété"), + '9150' => array('lib'=>"Association syndicale libre", 'art'=>"Association syndicale libre"), + '9210' => array('lib'=>"Association non déclarée", 'art'=>"Association non déclarée"), + '9220' => array('lib'=>"Association déclarée", 'art'=>"Association déclarée"), + '9221' => array('lib'=>"Association déclarée \"entreprises d'insertion par l'économique\"", 'art'=>"Association déclarée \"entreprises d'insertion par l'économique\""), + '9222' => array('lib'=>"Association intermédiaire", 'art'=>"Association intermédiaire"), + '9223' => array('lib'=>"Groupement d'employeurs", 'art'=>"Groupement d'employeurs"), + '9224' => array('lib'=>"Association d'avocats à responsabilité professionnelle individuelle", 'art'=>"Association d'avocats à responsabilité professionnelle individuelle"), + '9230' => array('lib'=>"Association déclarée reconnue d'utilité publique", 'art'=>"Association déclarée reconnue d'utilité publique"), + '9240' => array('lib'=>"Congrégation", 'art'=>"Congrégation"), + '9260' => array('lib'=>"Association de droit local", 'art'=>"Association de droit local"), + '9300' => array('lib'=>"Fondation", 'art'=>"Fondation"), + '9900' => array('lib'=>"Autre personne morale de droit privé", 'art'=>"Autre personne morale de droit privé"), + '9970' => array('lib'=>"Groupement de coopération sanitaire à gestion privée", 'art'=>"Groupement de coopération sanitaire à gestion privée"), + ), + 'APEENT' => array( + '000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + '011A' => array('lib'=>"Culture de céréales ; cultures industrielles", 'art'=>"Culture de céréales ; cultures industrielles"), + '011C' => array('lib'=>"Culture de légumes ; maraîchage", 'art'=>"Culture de légumes ; maraîchage"), + '011D' => array('lib'=>"Horticulture ; pépinières", 'art'=>"Horticulture ; pépinières"), + '011F' => array('lib'=>"Culture fruitière", 'art'=>"Culture fruitière"), + '011G' => array('lib'=>"Viticulture", 'art'=>"Viticulture"), + '012A' => array('lib'=>"Elevage de bovins", 'art'=>"Elevage de bovins"), + '012C' => array('lib'=>"Elevage d'ovins, caprins et équidés", 'art'=>"Elevage d'ovins, caprins et équidés"), + '012E' => array('lib'=>"Elevage de porcins", 'art'=>"Elevage de porcins"), + '012G' => array('lib'=>"Elevage de volailles", 'art'=>"Elevage de volailles"), + '012J' => array('lib'=>"Elevage d'autres animaux", 'art'=>"Elevage d'autres animaux"), + '013Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '014A' => array('lib'=>"Services aux cultures productives", 'art'=>"Services aux cultures productives"), + '014B' => array('lib'=>"Réalisation et entretien de plantations ornementales", 'art'=>"Réalisation et entretien de plantations ornementales"), + '014D' => array('lib'=>"Services annexes à l'élevage", 'art'=>"Services annexes à l'élevage"), + '015Z' => array('lib'=>"Chasse", 'art'=>"Chasse"), + '020A' => array('lib'=>"Sylviculture", 'art'=>"Sylviculture"), + '020B' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '020D' => array('lib'=>"Services forestiers", 'art'=>"Services forestiers"), + '050A' => array('lib'=>"Pêche", 'art'=>"Pêche"), + '050C' => array('lib'=>"Pisciculture, aquaculture", 'art'=>"Pisciculture, aquaculture"), + '101Z' => array('lib'=>"Extraction et agglomération de la houille", 'art'=>"Extraction et agglomération de la houille"), + '102Z' => array('lib'=>"Extraction et agglomération du lignite", 'art'=>"Extraction et agglomération du lignite"), + '103Z' => array('lib'=>"Extraction et agglomération de la tourbe", 'art'=>"Extraction et agglomération de la tourbe"), + '111Z' => array('lib'=>"Extraction d'hydrocarbures", 'art'=>"Extraction d'hydrocarbures"), + '112Z' => array('lib'=>"Services annexes à l'extraction d'hydrocarbures", 'art'=>"Services annexes à l'extraction d'hydrocarbures"), + '120Z' => array('lib'=>"Extraction de minerais d'uranium", 'art'=>"Extraction de minerais d'uranium"), + '131Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '132Z' => array('lib'=>"Extraction de minerais de métaux non ferreux", 'art'=>"Extraction de minerais de métaux non ferreux"), + '141A' => array('lib'=>"Extraction de pierres ornementales et de construction", 'art'=>"Extraction de pierres ornementales et de construction"), + '141C' => array('lib'=>"Extraction de calcaire industriel, de gypse et de craie", 'art'=>"Extraction de calcaire industriel, de gypse et de craie"), + '141E' => array('lib'=>"Extraction d'ardoise", 'art'=>"Extraction d'ardoise"), + '142A' => array('lib'=>"Production de sables et de granulats", 'art'=>"Production de sables et de granulats"), + '142C' => array('lib'=>"Extraction d'argiles et de kaolin", 'art'=>"Extraction d'argiles et de kaolin"), + '143Z' => array('lib'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels", 'art'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels"), + '144Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '145Z' => array('lib'=>"Activités extractives n.c.a.", 'art'=>"Activités extractives n.c.a."), + '151A' => array('lib'=>"Production de viandes de boucherie", 'art'=>"Production de viandes de boucherie"), + '151C' => array('lib'=>"Production de viandes de volailles", 'art'=>"Production de viandes de volailles"), + '151E' => array('lib'=>"Préparation industrielle de produits à base de viandes", 'art'=>"Préparation industrielle de produits à base de viandes"), + '151F' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '152Z' => array('lib'=>"Industrie du poisson", 'art'=>"Industrie du poisson"), + '153A' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '153C' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '153E' => array('lib'=>"Transformation et conservation de légumes", 'art'=>"Transformation et conservation de légumes"), + '153F' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '154A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '154C' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '154E' => array('lib'=>"Fabrication de margarine", 'art'=>"Fabrication de margarine"), + '155A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '155B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '155C' => array('lib'=>"Fabrication de fromages", 'art'=>"Fabrication de fromages"), + '155D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '155F' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '156A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '156B' => array('lib'=>"Autres activités de travail des grains", 'art'=>"Autres activités de travail des grains"), + '156D' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '157A' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '157C' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '158A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '158B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '158C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '158D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '158F' => array('lib'=>"Biscotterie, biscuiterie, pâtisserie de conservation", 'art'=>"Biscotterie, biscuiterie, pâtisserie de conservation"), + '158H' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '158K' => array('lib'=>"Chocolaterie, confiserie", 'art'=>"Chocolaterie, confiserie"), + '158M' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '158P' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '158R' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '158T' => array('lib'=>"Fabrication d'aliments adaptés à l'enfant et diététiques", 'art'=>"Fabrication d'aliments adaptés à l'enfant et diététiques"), + '158V' => array('lib'=>"Industries alimentaires n.c.a.", 'art'=>"Industries alimentaires n.c.a."), + '159A' => array('lib'=>"Production d'eaux de vie naturelles", 'art'=>"Production d'eaux de vie naturelles"), + '159B' => array('lib'=>"Fabrication de spiritueux", 'art'=>"Fabrication de spiritueux"), + '159D' => array('lib'=>"Production d'alcool éthylique de fermentation", 'art'=>"Production d'alcool éthylique de fermentation"), + '159F' => array('lib'=>"Champagnisation", 'art'=>"Champagnisation"), + '159G' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '159J' => array('lib'=>"Cidrerie", 'art'=>"Cidrerie"), + '159L' => array('lib'=>"Production d'autres boissons fermentées", 'art'=>"Production d'autres boissons fermentées"), + '159N' => array('lib'=>"Brasserie", 'art'=>"Brasserie"), + '159Q' => array('lib'=>"Malterie", 'art'=>"Malterie"), + '159S' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '159T' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '160Z' => array('lib'=>"Industrie du tabac", 'art'=>"Industrie du tabac"), + '171A' => array('lib'=>"Filature de l'industrie cotonnière", 'art'=>"Filature de l'industrie cotonnière"), + '171C' => array('lib'=>"Filature de l'industrie lainière - cycle cardé", 'art'=>"Filature de l'industrie lainière - cycle cardé"), + '171E' => array('lib'=>"Préparation de la laine", 'art'=>"Préparation de la laine"), + '171F' => array('lib'=>"Filature de l'industrie lainière - cycle peigné", 'art'=>"Filature de l'industrie lainière - cycle peigné"), + '171H' => array('lib'=>"Préparation et filature du lin", 'art'=>"Préparation et filature du lin"), + '171K' => array('lib'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques", 'art'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques"), + '171M' => array('lib'=>"Fabrication de fils à coudre", 'art'=>"Fabrication de fils à coudre"), + '171P' => array('lib'=>"Préparation et filature d'autres fibres", 'art'=>"Préparation et filature d'autres fibres"), + '172A' => array('lib'=>"Tissage de l'industrie cotonnière", 'art'=>"Tissage de l'industrie cotonnière"), + '172C' => array('lib'=>"Tissage de l'industrie lainière - cycle cardé", 'art'=>"Tissage de l'industrie lainière - cycle cardé"), + '172E' => array('lib'=>"Tissage de l'industrie lainière - cycle peigné", 'art'=>"Tissage de l'industrie lainière - cycle peigné"), + '172G' => array('lib'=>"Tissage de soieries", 'art'=>"Tissage de soieries"), + '172J' => array('lib'=>"Tissage d'autres textiles", 'art'=>"Tissage d'autres textiles"), + '173Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '174A' => array('lib'=>"Fabrication de linge de maison et d'articles d'ameublement", 'art'=>"Fabrication de linge de maison et d'articles d'ameublement"), + '174B' => array('lib'=>"Fabrication de petits articles textiles de literie", 'art'=>"Fabrication de petits articles textiles de literie"), + '174C' => array('lib'=>"Fabrication d'autres articles confectionnés en textile", 'art'=>"Fabrication d'autres articles confectionnés en textile"), + '175A' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '175C' => array('lib'=>"Ficellerie, corderie, fabrication de filets", 'art'=>"Ficellerie, corderie, fabrication de filets"), + '175E' => array('lib'=>"Fabrication de non-tissés", 'art'=>"Fabrication de non-tissés"), + '175G' => array('lib'=>"Industries textiles n.c.a.", 'art'=>"Industries textiles n.c.a."), + '176Z' => array('lib'=>"Fabrication d'étoffes à maille", 'art'=>"Fabrication d'étoffes à maille"), + '177A' => array('lib'=>"Fabrication de bas et chaussettes", 'art'=>"Fabrication de bas et chaussettes"), + '177C' => array('lib'=>"Fabrication de pull-overs et articles similaires", 'art'=>"Fabrication de pull-overs et articles similaires"), + '181Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '182A' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '182C' => array('lib'=>"Fabrication de vêtements sur mesure", 'art'=>"Fabrication de vêtements sur mesure"), + '182D' => array('lib'=>"Fabrication de vêtements de dessus pour hommes et garçonnets", 'art'=>"Fabrication de vêtements de dessus pour hommes et garçonnets"), + '182E' => array('lib'=>"Fabrication de vêtements de dessus pour femmes et fillettes", 'art'=>"Fabrication de vêtements de dessus pour femmes et fillettes"), + '182G' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '182J' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '183Z' => array('lib'=>"Industrie des fourrures", 'art'=>"Industrie des fourrures"), + '191Z' => array('lib'=>"Apprêt et tannage des cuirs", 'art'=>"Apprêt et tannage des cuirs"), + '192Z' => array('lib'=>"Fabrication d'articles de voyage et de maroquinerie", 'art'=>"Fabrication d'articles de voyage et de maroquinerie"), + '193Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '201A' => array('lib'=>"Sciage et rabotage du bois", 'art'=>"Sciage et rabotage du bois"), + '201B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '202Z' => array('lib'=>"Fabrication de panneaux de bois", 'art'=>"Fabrication de panneaux de bois"), + '203Z' => array('lib'=>"Fabrication de charpentes et de menuiseries", 'art'=>"Fabrication de charpentes et de menuiseries"), + '204Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '205A' => array('lib'=>"Fabrication d'objets divers en bois", 'art'=>"Fabrication d'objets divers en bois"), + '205C' => array('lib'=>"Fabrication d'objets en liège, vannerie ou sparterie", 'art'=>"Fabrication d'objets en liège, vannerie ou sparterie"), + '211A' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '211C' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '212A' => array('lib'=>"Industrie du carton ondulé", 'art'=>"Industrie du carton ondulé"), + '212B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '212C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '212E' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '212G' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '212J' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '212L' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '221A' => array('lib'=>"Edition de livres", 'art'=>"Edition de livres"), + '221C' => array('lib'=>"Edition de journaux", 'art'=>"Edition de journaux"), + '221E' => array('lib'=>"Edition de revues et périodiques", 'art'=>"Edition de revues et périodiques"), + '221G' => array('lib'=>"Edition d'enregistrements sonores", 'art'=>"Edition d'enregistrements sonores"), + '221J' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '222A' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '222C' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '222E' => array('lib'=>"Reliure", 'art'=>"Reliure"), + '222G' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '222J' => array('lib'=>"Activités graphiques auxiliaires", 'art'=>"Activités graphiques auxiliaires"), + '223A' => array('lib'=>"Reproduction d'enregistrements sonores", 'art'=>"Reproduction d'enregistrements sonores"), + '223C' => array('lib'=>"Reproduction d'enregistrements vidéo", 'art'=>"Reproduction d'enregistrements vidéo"), + '223E' => array('lib'=>"Reproduction d'enregistrements informatiques", 'art'=>"Reproduction d'enregistrements informatiques"), + '231Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '232Z' => array('lib'=>"Raffinage de pétrole", 'art'=>"Raffinage de pétrole"), + '233Z' => array('lib'=>"Elaboration et transformation de matières nucléaires", 'art'=>"Elaboration et transformation de matières nucléaires"), + '241A' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '241C' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '241E' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base"), + '241G' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '241J' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '241L' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '241N' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '242Z' => array('lib'=>"Fabrication de produits agrochimiques", 'art'=>"Fabrication de produits agrochimiques"), + '243Z' => array('lib'=>"Fabrication de peintures et vernis", 'art'=>"Fabrication de peintures et vernis"), + '244A' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '244C' => array('lib'=>"Fabrication de médicaments", 'art'=>"Fabrication de médicaments"), + '244D' => array('lib'=>"Fabrication d'autres produits pharmaceutiques", 'art'=>"Fabrication d'autres produits pharmaceutiques"), + '245A' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '245C' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '246A' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '246C' => array('lib'=>"Fabrication de colles et gélatines", 'art'=>"Fabrication de colles et gélatines"), + '246E' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '246G' => array('lib'=>"Fabrication de produits chimiques pour la photographie", 'art'=>"Fabrication de produits chimiques pour la photographie"), + '246J' => array('lib'=>"Fabrication de supports de données", 'art'=>"Fabrication de supports de données"), + '246L' => array('lib'=>"Fabrication de produits chimiques à usage industriel", 'art'=>"Fabrication de produits chimiques à usage industriel"), + '247Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '251A' => array('lib'=>"Fabrication de pneumatiques", 'art'=>"Fabrication de pneumatiques"), + '251C' => array('lib'=>"Rechapage de pneumatiques", 'art'=>"Rechapage de pneumatiques"), + '251E' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '252A' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '252C' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '252E' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '252G' => array('lib'=>"Fabrication d'articles divers en matières plastiques", 'art'=>"Fabrication d'articles divers en matières plastiques"), + '252H' => array('lib'=>"Fabrication de pièces techniques en matières plastiques", 'art'=>"Fabrication de pièces techniques en matières plastiques"), + '261A' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '261C' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '261E' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '261G' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '261J' => array('lib'=>"Fabrication et façonnage d'articles techniques en verre", 'art'=>"Fabrication et façonnage d'articles techniques en verre"), + '261K' => array('lib'=>"Fabrication d'isolateurs en verre", 'art'=>"Fabrication d'isolateurs en verre"), + '262A' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '262C' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '262E' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '262G' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '262J' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '262L' => array('lib'=>"Fabrication de produits céramiques réfractaires", 'art'=>"Fabrication de produits céramiques réfractaires"), + '263Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '264A' => array('lib'=>"Fabrication de briques", 'art'=>"Fabrication de briques"), + '264B' => array('lib'=>"Fabrication de tuiles", 'art'=>"Fabrication de tuiles"), + '264C' => array('lib'=>"Fabrication de produits divers en terre cuite", 'art'=>"Fabrication de produits divers en terre cuite"), + '265A' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '265C' => array('lib'=>"Fabrication de chaux", 'art'=>"Fabrication de chaux"), + '265E' => array('lib'=>"Fabrication de plâtre", 'art'=>"Fabrication de plâtre"), + '266A' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '266C' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '266E' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '266G' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '266J' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '266L' => array('lib'=>"Fabrication d'autres ouvrages en béton ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton ou en plâtre"), + '267Z' => array('lib'=>"Taille, façonnage et finissage de pierres ornementales et de construction", 'art'=>"Taille, façonnage et finissage de pierres ornementales et de construction"), + '268A' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '268C' => array('lib'=>"Fabrication de produits minéraux non métalliques n.c.a.", 'art'=>"Fabrication de produits minéraux non métalliques n.c.a."), + '271Y' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '271Z' => array('lib'=>"Sidérurgie (CECA)", 'art'=>"Sidérurgie (CECA)"), + '272A' => array('lib'=>"Fabrication de tubes en fonte", 'art'=>"Fabrication de tubes en fonte"), + '272C' => array('lib'=>"Fabrication de tubes en acier", 'art'=>"Fabrication de tubes en acier"), + '273A' => array('lib'=>"Etirage à froid", 'art'=>"Etirage à froid"), + '273C' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '273E' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '273G' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '273J' => array('lib'=>"Production de ferroalliages et autres produits non CECA", 'art'=>"Production de ferroalliages et autres produits non CECA"), + '274A' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '274C' => array('lib'=>"Production d'aluminium", 'art'=>"Production d'aluminium"), + '274D' => array('lib'=>"Première transformation de l'aluminium", 'art'=>"Première transformation de l'aluminium"), + '274F' => array('lib'=>"Production de plomb, de zinc ou d'étain", 'art'=>"Production de plomb, de zinc ou d'étain"), + '274G' => array('lib'=>"Première transformation du plomb, du zinc ou de l'étain", 'art'=>"Première transformation du plomb, du zinc ou de l'étain"), + '274J' => array('lib'=>"Production de cuivre", 'art'=>"Production de cuivre"), + '274K' => array('lib'=>"Première transformation du cuivre", 'art'=>"Première transformation du cuivre"), + '274M' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '275A' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '275C' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '275E' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '275G' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '281A' => array('lib'=>"Fabrication de constructions métalliques", 'art'=>"Fabrication de constructions métalliques"), + '281C' => array('lib'=>"Fabrication de menuiseries et fermetures métalliques", 'art'=>"Fabrication de menuiseries et fermetures métalliques"), + '282A' => array('lib'=>"Fabrication de réservoirs et citernes métalliques", 'art'=>"Fabrication de réservoirs et citernes métalliques"), + '282B' => array('lib'=>"Fabrication de bouteilles pour gaz comprimés", 'art'=>"Fabrication de bouteilles pour gaz comprimés"), + '282C' => array('lib'=>"Fabrication de réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication de réservoirs, citernes et conteneurs métalliques"), + '282D' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '283A' => array('lib'=>"Fabrication de générateurs de vapeur", 'art'=>"Fabrication de générateurs de vapeur"), + '283B' => array('lib'=>"Chaudronnerie nucléaire", 'art'=>"Chaudronnerie nucléaire"), + '283C' => array('lib'=>"Chaudronnerie-tuyauterie", 'art'=>"Chaudronnerie-tuyauterie"), + '284A' => array('lib'=>"Forge, estampage, matriçage", 'art'=>"Forge, estampage, matriçage"), + '284B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '284C' => array('lib'=>"Métallurgie des poudres", 'art'=>"Métallurgie des poudres"), + '285A' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '285C' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '285D' => array('lib'=>"Mécanique générale", 'art'=>"Mécanique générale"), + '286A' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '286C' => array('lib'=>"Fabrication d'outillage à main", 'art'=>"Fabrication d'outillage à main"), + '286D' => array('lib'=>"Fabrication d'outillage mécanique", 'art'=>"Fabrication d'outillage mécanique"), + '286F' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '287A' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '287C' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '287E' => array('lib'=>"Fabrication d'articles en fils métalliques", 'art'=>"Fabrication d'articles en fils métalliques"), + '287G' => array('lib'=>"Visserie et boulonnerie", 'art'=>"Visserie et boulonnerie"), + '287H' => array('lib'=>"Fabrication de ressorts", 'art'=>"Fabrication de ressorts"), + '287J' => array('lib'=>"Fabrication de chaînes", 'art'=>"Fabrication de chaînes"), + '287L' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '287M' => array('lib'=>"Fabrication de coffres-forts", 'art'=>"Fabrication de coffres-forts"), + '287N' => array('lib'=>"Fabrication de petits articles métalliques", 'art'=>"Fabrication de petits articles métalliques"), + '287P' => array('lib'=>"Fabrication d'articles métalliques n.c.a.", 'art'=>"Fabrication d'articles métalliques n.c.a."), + '287Q' => array('lib'=>"Fabrication d'articles métalliques divers", 'art'=>"Fabrication d'articles métalliques divers"), + '291A' => array('lib'=>"Fabrication de moteurs et turbines", 'art'=>"Fabrication de moteurs et turbines"), + '291B' => array('lib'=>"Fabrication de pompes", 'art'=>"Fabrication de pompes"), + '291C' => array('lib'=>"Fabrication de pompes et compresseurs", 'art'=>"Fabrication de pompes et compresseurs"), + '291D' => array('lib'=>"Fabrication de transmissions hydrauliques et pneumatiques", 'art'=>"Fabrication de transmissions hydrauliques et pneumatiques"), + '291E' => array('lib'=>"Fabrication de compresseurs", 'art'=>"Fabrication de compresseurs"), + '291F' => array('lib'=>"Fabrication d'articles de robinetterie", 'art'=>"Fabrication d'articles de robinetterie"), + '291H' => array('lib'=>"Fabrication de roulements", 'art'=>"Fabrication de roulements"), + '291J' => array('lib'=>"Fabrication d'organes mécaniques de transmission", 'art'=>"Fabrication d'organes mécaniques de transmission"), + '292A' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '292C' => array('lib'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques", 'art'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques"), + '292D' => array('lib'=>"Fabrication d'équipements de levage et de manutention", 'art'=>"Fabrication d'équipements de levage et de manutention"), + '292F' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '292H' => array('lib'=>"Fabrication d'équipements d'emballage et de conditionnement", 'art'=>"Fabrication d'équipements d'emballage et de conditionnement"), + '292J' => array('lib'=>"Fabrication d'appareils de pesage", 'art'=>"Fabrication d'appareils de pesage"), + '292K' => array('lib'=>"Fabrication de machines diverses d'usage général", 'art'=>"Fabrication de machines diverses d'usage général"), + '292L' => array('lib'=>"Fabrication de matériel pour les industries chimiques", 'art'=>"Fabrication de matériel pour les industries chimiques"), + '292M' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '293A' => array('lib'=>"Fabrication de tracteurs agricoles", 'art'=>"Fabrication de tracteurs agricoles"), + '293C' => array('lib'=>"Réparation de matériel agricole", 'art'=>"Réparation de matériel agricole"), + '293D' => array('lib'=>"Fabrication de matériel agricole", 'art'=>"Fabrication de matériel agricole"), + '294A' => array('lib'=>"Fabrication de machines-outils à métaux", 'art'=>"Fabrication de machines-outils à métaux"), + '294B' => array('lib'=>"Fabrication de machines-outils à bois", 'art'=>"Fabrication de machines-outils à bois"), + '294C' => array('lib'=>"Fabrication de machines-outils portatives à moteur incorporé", 'art'=>"Fabrication de machines-outils portatives à moteur incorporé"), + '294D' => array('lib'=>"Fabrication de matériel de soudage", 'art'=>"Fabrication de matériel de soudage"), + '294E' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '295A' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '295B' => array('lib'=>"Fabrication de matériels de mines pour l'extraction", 'art'=>"Fabrication de matériels de mines pour l'extraction"), + '295C' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '295D' => array('lib'=>"Fabrication de matériels de travaux publics", 'art'=>"Fabrication de matériels de travaux publics"), + '295E' => array('lib'=>"Fabrication de machines pour l'industrie agroalimentaire", 'art'=>"Fabrication de machines pour l'industrie agroalimentaire"), + '295G' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '295J' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '295L' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '295M' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '295N' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '295P' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '295Q' => array('lib'=>"Fabrication de machines d'assemblage automatique", 'art'=>"Fabrication de machines d'assemblage automatique"), + '295R' => array('lib'=>"Fabrication machines spécialisées diverses", 'art'=>"Fabrication machines spécialisées diverses"), + '296A' => array('lib'=>"Fabrication d'armement", 'art'=>"Fabrication d'armement"), + '296B' => array('lib'=>"Fabrication d'armes de chasse, de tir et de défense", 'art'=>"Fabrication d'armes de chasse, de tir et de défense"), + '297A' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '297C' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '300A' => array('lib'=>"Fabrication de machines de bureau", 'art'=>"Fabrication de machines de bureau"), + '300C' => array('lib'=>"Fabrication d'ordinateurs et d'autres équipements informatiques", 'art'=>"Fabrication d'ordinateurs et d'autres équipements informatiques"), + '311A' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance"), + '311B' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance"), + '311C' => array('lib'=>"Réparation de matériels électriques", 'art'=>"Réparation de matériels électriques"), + '312A' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension"), + '312B' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension"), + '313Z' => array('lib'=>"Fabrication de fils et câbles isolés", 'art'=>"Fabrication de fils et câbles isolés"), + '314Z' => array('lib'=>"Fabrication d'accumulateurs et de piles électriques", 'art'=>"Fabrication d'accumulateurs et de piles électriques"), + '315A' => array('lib'=>"Fabrication de lampes", 'art'=>"Fabrication de lampes"), + '315B' => array('lib'=>"Fabrication d'appareils électriques autonomes de sécurité", 'art'=>"Fabrication d'appareils électriques autonomes de sécurité"), + '315C' => array('lib'=>"Fabrication d'appareils d'éclairage", 'art'=>"Fabrication d'appareils d'éclairage"), + '316A' => array('lib'=>"Fabrication de matériels électriques pour moteurs et véhicules", 'art'=>"Fabrication de matériels électriques pour moteurs et véhicules"), + '316C' => array('lib'=>"Fabrication de matériel électromagnétique industriel", 'art'=>"Fabrication de matériel électromagnétique industriel"), + '316D' => array('lib'=>"Fabrication de matériels électriques n.c.a.", 'art'=>"Fabrication de matériels électriques n.c.a."), + '321A' => array('lib'=>"Fabrication de composants passifs et de condensateurs", 'art'=>"Fabrication de composants passifs et de condensateurs"), + '321B' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321C' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321D' => array('lib'=>"Assemblage de cartes électroniques pour compte de tiers", 'art'=>"Assemblage de cartes électroniques pour compte de tiers"), + '322A' => array('lib'=>"Fabrication d'équipements d'émission et de transmission hertzienne", 'art'=>"Fabrication d'équipements d'émission et de transmission hertzienne"), + '322B' => array('lib'=>"Fabrication d'appareils de téléphonie", 'art'=>"Fabrication d'appareils de téléphonie"), + '323Z' => array('lib'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image", 'art'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image"), + '331A' => array('lib'=>"Fabrication de matériel d'imagerie médicale et de radiologie", 'art'=>"Fabrication de matériel d'imagerie médicale et de radiologie"), + '331B' => array('lib'=>"Fabrication d'appareils médicochirurgicaux", 'art'=>"Fabrication d'appareils médicochirurgicaux"), + '332A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '332B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '333Z' => array('lib'=>"Fabrication d'équipements de contrôle des processus industriels", 'art'=>"Fabrication d'équipements de contrôle des processus industriels"), + '334A' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '334B' => array('lib'=>"Fabrication d'instruments d'optique et de matériel photographique", 'art'=>"Fabrication d'instruments d'optique et de matériel photographique"), + '335Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '341Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '342A' => array('lib'=>"Fabrication de carrosseries automobiles", 'art'=>"Fabrication de carrosseries automobiles"), + '342B' => array('lib'=>"Fabrications de caravanes et véhicules de loisirs", 'art'=>"Fabrications de caravanes et véhicules de loisirs"), + '343Z' => array('lib'=>"Fabrication d'équipements automobiles", 'art'=>"Fabrication d'équipements automobiles"), + '351A' => array('lib'=>"Construction de bâtiments de guerre", 'art'=>"Construction de bâtiments de guerre"), + '351B' => array('lib'=>"Construction de navires civils", 'art'=>"Construction de navires civils"), + '351C' => array('lib'=>"Réparation navale", 'art'=>"Réparation navale"), + '351E' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '352Z' => array('lib'=>"Construction de matériel ferroviaire roulant", 'art'=>"Construction de matériel ferroviaire roulant"), + '353A' => array('lib'=>"Construction de moteurs pour aéronefs", 'art'=>"Construction de moteurs pour aéronefs"), + '353B' => array('lib'=>"Construction de cellules d'aéronefs", 'art'=>"Construction de cellules d'aéronefs"), + '353C' => array('lib'=>"Construction de lanceurs et engins spatiaux", 'art'=>"Construction de lanceurs et engins spatiaux"), + '354A' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '354C' => array('lib'=>"Fabrication de bicyclettes", 'art'=>"Fabrication de bicyclettes"), + '354E' => array('lib'=>"Fabrication de véhicules pour invalides", 'art'=>"Fabrication de véhicules pour invalides"), + '355Z' => array('lib'=>"Fabrication de matériels de transport n.c.a.", 'art'=>"Fabrication de matériels de transport n.c.a."), + '361A' => array('lib'=>"Fabrication de sièges", 'art'=>"Fabrication de sièges"), + '361C' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '361E' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '361G' => array('lib'=>"Fabrication de meubles meublants", 'art'=>"Fabrication de meubles meublants"), + '361H' => array('lib'=>"Fabrication de meubles de jardin et d'extérieur", 'art'=>"Fabrication de meubles de jardin et d'extérieur"), + '361J' => array('lib'=>"Fabrication de meubles n.c.a.", 'art'=>"Fabrication de meubles n.c.a."), + '361K' => array('lib'=>"Industries connexes de l'ameublement", 'art'=>"Industries connexes de l'ameublement"), + '361M' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '362A' => array('lib'=>"Fabrication de monnaies", 'art'=>"Fabrication de monnaies"), + '362C' => array('lib'=>"Bijouterie, joaillerie, orfèvrerie", 'art'=>"Bijouterie, joaillerie, orfèvrerie"), + '363Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '364Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '365Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '366A' => array('lib'=>"Bijouterie fantaisie", 'art'=>"Bijouterie fantaisie"), + '366C' => array('lib'=>"Industrie de la brosserie", 'art'=>"Industrie de la brosserie"), + '366E' => array('lib'=>"Autres activités manufacturières n.c.a.", 'art'=>"Autres activités manufacturières n.c.a."), + '371Z' => array('lib'=>"Récupération de matières métalliques recyclables", 'art'=>"Récupération de matières métalliques recyclables"), + '372Z' => array('lib'=>"Récupération de matières non métalliques recyclables", 'art'=>"Récupération de matières non métalliques recyclables"), + '401A' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '401C' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '401E' => array('lib'=>"Distribution et commerce d'électricité", 'art'=>"Distribution et commerce d'électricité"), + '401Z' => array('lib'=>"Production et distribution d'électricité", 'art'=>"Production et distribution d'électricité"), + '402A' => array('lib'=>"Production de combustible gazeux", 'art'=>"Production de combustible gazeux"), + '402C' => array('lib'=>"Distribution de combustibles gazeux", 'art'=>"Distribution de combustibles gazeux"), + '402Z' => array('lib'=>"Production et distribution de combustibles gazeux", 'art'=>"Production et distribution de combustibles gazeux"), + '403Z' => array('lib'=>"Production et distribution de chaleur", 'art'=>"Production et distribution de chaleur"), + '410Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '451A' => array('lib'=>"Terrassements divers, démolition", 'art'=>"Terrassements divers, démolition"), + '451B' => array('lib'=>"Terrassements en grande masse", 'art'=>"Terrassements en grande masse"), + '451D' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '452A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '452B' => array('lib'=>"Construction de bâtiments divers", 'art'=>"Construction de bâtiments divers"), + '452C' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '452D' => array('lib'=>"Travaux souterrains", 'art'=>"Travaux souterrains"), + '452E' => array('lib'=>"Réalisation de réseaux", 'art'=>"Réalisation de réseaux"), + '452F' => array('lib'=>"Construction de lignes électriques et de télécommunication", 'art'=>"Construction de lignes électriques et de télécommunication"), + '452J' => array('lib'=>"Réalisation de couvertures par éléments", 'art'=>"Réalisation de couvertures par éléments"), + '452K' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '452L' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '452N' => array('lib'=>"Construction de voies ferrées", 'art'=>"Construction de voies ferrées"), + '452P' => array('lib'=>"Construction de chaussées routières et de sols sportifs", 'art'=>"Construction de chaussées routières et de sols sportifs"), + '452R' => array('lib'=>"Travaux maritimes et fluviaux", 'art'=>"Travaux maritimes et fluviaux"), + '452T' => array('lib'=>"Levage, montage", 'art'=>"Levage, montage"), + '452U' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '452V' => array('lib'=>"Travaux de maçonnerie générale", 'art'=>"Travaux de maçonnerie générale"), + '453A' => array('lib'=>"Travaux d'installation électrique", 'art'=>"Travaux d'installation électrique"), + '453C' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '453E' => array('lib'=>"Installation d'eau et de gaz", 'art'=>"Installation d'eau et de gaz"), + '453F' => array('lib'=>"Installation d'équipements thermiques et de climatisation", 'art'=>"Installation d'équipements thermiques et de climatisation"), + '453H' => array('lib'=>"Autres travaux d'installation", 'art'=>"Autres travaux d'installation"), + '454A' => array('lib'=>"Plâtrerie", 'art'=>"Plâtrerie"), + '454C' => array('lib'=>"Menuiserie bois et matières plastiques", 'art'=>"Menuiserie bois et matières plastiques"), + '454D' => array('lib'=>"Menuiserie métallique ; serrurerie", 'art'=>"Menuiserie métallique ; serrurerie"), + '454F' => array('lib'=>"Revêtement des sols et des murs", 'art'=>"Revêtement des sols et des murs"), + '454H' => array('lib'=>"Miroiterie de bâtiment, vitrerie", 'art'=>"Miroiterie de bâtiment, vitrerie"), + '454J' => array('lib'=>"Peinture", 'art'=>"Peinture"), + '454L' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '454M' => array('lib'=>"Travaux de finition n.c.a.", 'art'=>"Travaux de finition n.c.a."), + '455Z' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '501Z' => array('lib'=>"Commerce de véhicules automobiles", 'art'=>"Commerce de véhicules automobiles"), + '502Z' => array('lib'=>"Entretien et réparation de véhicules automobiles", 'art'=>"Entretien et réparation de véhicules automobiles"), + '503A' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '503B' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '504Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '505Z' => array('lib'=>"Commerce de détail de carburants", 'art'=>"Commerce de détail de carburants"), + '511A' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits"), + '511C' => array('lib'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '511E' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '511G' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '511J' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '511L' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir"), + '511N' => array('lib'=>"Intermédiaires du commerce en produits alimentaires", 'art'=>"Intermédiaires du commerce en produits alimentaires"), + '511P' => array('lib'=>"Centrales d'achats alimentaires", 'art'=>"Centrales d'achats alimentaires"), + '511R' => array('lib'=>"Autres intermédiaires spécialisés du commerce", 'art'=>"Autres intermédiaires spécialisés du commerce"), + '511T' => array('lib'=>"Intermédiaires non spécialisés du commerce", 'art'=>"Intermédiaires non spécialisés du commerce"), + '511U' => array('lib'=>"Centrales d'achats non alimentaires", 'art'=>"Centrales d'achats non alimentaires"), + '512A' => array('lib'=>"Commerce de gros de céréales et aliments pour le bétail", 'art'=>"Commerce de gros de céréales et aliments pour le bétail"), + '512C' => array('lib'=>"Commerce de gros de fleurs et plantes", 'art'=>"Commerce de gros de fleurs et plantes"), + '512E' => array('lib'=>"Commerce de gros d'animaux vivants", 'art'=>"Commerce de gros d'animaux vivants"), + '512G' => array('lib'=>"Commerce de gros de cuirs et peaux", 'art'=>"Commerce de gros de cuirs et peaux"), + '512J' => array('lib'=>"Commerce de gros de tabac non manufacturé", 'art'=>"Commerce de gros de tabac non manufacturé"), + '513A' => array('lib'=>"Commerce de gros de fruits et légumes", 'art'=>"Commerce de gros de fruits et légumes"), + '513C' => array('lib'=>"Commerce de gros de viandes de boucherie", 'art'=>"Commerce de gros de viandes de boucherie"), + '513D' => array('lib'=>"Commerce de gros de produits à base de viande", 'art'=>"Commerce de gros de produits à base de viande"), + '513E' => array('lib'=>"Commerce de gros de volailles et gibiers", 'art'=>"Commerce de gros de volailles et gibiers"), + '513G' => array('lib'=>"Commerce de gros de produits laitiers, oeufs, huiles", 'art'=>"Commerce de gros de produits laitiers, oeufs, huiles"), + '513J' => array('lib'=>"Commerce de gros de boissons", 'art'=>"Commerce de gros de boissons"), + '513L' => array('lib'=>"Commerce de gros de tabac", 'art'=>"Commerce de gros de tabac"), + '513N' => array('lib'=>"Commerce de gros de sucre, chocolat et confiserie", 'art'=>"Commerce de gros de sucre, chocolat et confiserie"), + '513Q' => array('lib'=>"Commerce de gros de café, thé, cacao et épices", 'art'=>"Commerce de gros de café, thé, cacao et épices"), + '513S' => array('lib'=>"Commerce de gros de poissons, crustacés et mollusques", 'art'=>"Commerce de gros de poissons, crustacés et mollusques"), + '513T' => array('lib'=>"Commerces de gros alimentaires spécialisés divers", 'art'=>"Commerces de gros alimentaires spécialisés divers"), + '513V' => array('lib'=>"Commerce de gros de produits surgelés", 'art'=>"Commerce de gros de produits surgelés"), + '513W' => array('lib'=>"Commerce de gros alimentaire non spécialisé", 'art'=>"Commerce de gros alimentaire non spécialisé"), + '514A' => array('lib'=>"Commerce de gros de textiles", 'art'=>"Commerce de gros de textiles"), + '514C' => array('lib'=>"Commerce de gros d'habillement", 'art'=>"Commerce de gros d'habillement"), + '514D' => array('lib'=>"Commerce de gros de la chaussure", 'art'=>"Commerce de gros de la chaussure"), + '514F' => array('lib'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions", 'art'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions"), + '514H' => array('lib'=>"Commerce de gros de vaisselle et verrerie de ménage", 'art'=>"Commerce de gros de vaisselle et verrerie de ménage"), + '514J' => array('lib'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat", 'art'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat"), + '514L' => array('lib'=>"Commerce de gros de parfumerie et de produits de beauté", 'art'=>"Commerce de gros de parfumerie et de produits de beauté"), + '514N' => array('lib'=>"Commerce de gros de produits pharmaceutiques", 'art'=>"Commerce de gros de produits pharmaceutiques"), + '514Q' => array('lib'=>"Commerce de gros de papeterie", 'art'=>"Commerce de gros de papeterie"), + '514R' => array('lib'=>"Commerce de gros de jouets", 'art'=>"Commerce de gros de jouets"), + '514S' => array('lib'=>"Autres commerces de gros de biens de consommation", 'art'=>"Autres commerces de gros de biens de consommation"), + '515A' => array('lib'=>"Commerce de gros de combustibles", 'art'=>"Commerce de gros de combustibles"), + '515C' => array('lib'=>"Commerce de gros de minerais et métaux", 'art'=>"Commerce de gros de minerais et métaux"), + '515E' => array('lib'=>"Commerce de gros de bois et de produits dérivés", 'art'=>"Commerce de gros de bois et de produits dérivés"), + '515F' => array('lib'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires", 'art'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires"), + '515H' => array('lib'=>"Commerce de gros de quincaillerie", 'art'=>"Commerce de gros de quincaillerie"), + '515J' => array('lib'=>"Commerce de gros de fournitures pour plomberie et chauffage", 'art'=>"Commerce de gros de fournitures pour plomberie et chauffage"), + '515L' => array('lib'=>"Commerce de gros de produits chimiques", 'art'=>"Commerce de gros de produits chimiques"), + '515N' => array('lib'=>"Commerce de gros d'autres produits intermédiaires", 'art'=>"Commerce de gros d'autres produits intermédiaires"), + '515Q' => array('lib'=>"Commerce de gros de déchets et débris", 'art'=>"Commerce de gros de déchets et débris"), + '516A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '516C' => array('lib'=>"Commerce de gros d'équipements pour la construction", 'art'=>"Commerce de gros d'équipements pour la construction"), + '516E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '516G' => array('lib'=>"Commerce de gros de machines de bureau et de matériel informatique", 'art'=>"Commerce de gros de machines de bureau et de matériel informatique"), + '516J' => array('lib'=>"Commerce de gros de matériel électrique et électronique", 'art'=>"Commerce de gros de matériel électrique et électronique"), + '516K' => array('lib'=>"Commerce gros fournitures et équipements industriels divers", 'art'=>"Commerce gros fournitures et équipements industriels divers"), + '516L' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '516N' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '517Z' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '518A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '518C' => array('lib'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil"), + '518E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '518G' => array('lib'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels", 'art'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels"), + '518H' => array('lib'=>"Commerce de gros d'autres machines et équipements de bureau", 'art'=>"Commerce de gros d'autres machines et équipements de bureau"), + '518J' => array('lib'=>"Commerce de gros de composants et d'autres équipements électroniques", 'art'=>"Commerce de gros de composants et d'autres équipements électroniques"), + '518L' => array('lib'=>"Commerce de gros de matériel électrique", 'art'=>"Commerce de gros de matériel électrique"), + '518M' => array('lib'=>"Commerce de gros de fournitures et équipements industriels divers", 'art'=>"Commerce de gros de fournitures et équipements industriels divers"), + '518N' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '518P' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '519A' => array('lib'=>"Autres commerces de gros spécialisés", 'art'=>"Autres commerces de gros spécialisés"), + '519B' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '521A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '521B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '521C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '521D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '521E' => array('lib'=>"Magasins populaires", 'art'=>"Magasins populaires"), + '521F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '521H' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '521J' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '522A' => array('lib'=>"Commerce de détail de fruits et légumes", 'art'=>"Commerce de détail de fruits et légumes"), + '522C' => array('lib'=>"Commerce de détail de viandes et produits à base de viande", 'art'=>"Commerce de détail de viandes et produits à base de viande"), + '522E' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques", 'art'=>"Commerce de détail de poissons, crustacés et mollusques"), + '522G' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie"), + '522J' => array('lib'=>"Commerce de détail de boissons", 'art'=>"Commerce de détail de boissons"), + '522L' => array('lib'=>"Commerce de détail de tabac", 'art'=>"Commerce de détail de tabac"), + '522N' => array('lib'=>"Commerce de détail de produits laitiers", 'art'=>"Commerce de détail de produits laitiers"), + '522P' => array('lib'=>"Commerces de détail alimentaires spécialisés divers", 'art'=>"Commerces de détail alimentaires spécialisés divers"), + '523A' => array('lib'=>"Commerce de détail de produits pharmaceutiques", 'art'=>"Commerce de détail de produits pharmaceutiques"), + '523C' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques"), + '523E' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté", 'art'=>"Commerce de détail de parfumerie et de produits de beauté"), + '524A' => array('lib'=>"Commerce de détail de textiles", 'art'=>"Commerce de détail de textiles"), + '524C' => array('lib'=>"Commerce de détail d'habillement", 'art'=>"Commerce de détail d'habillement"), + '524E' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '524F' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '524H' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '524J' => array('lib'=>"Commerce de détail d'équipement du foyer", 'art'=>"Commerce de détail d'équipement du foyer"), + '524L' => array('lib'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision", 'art'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision"), + '524N' => array('lib'=>"Commerce de détail de quincaillerie", 'art'=>"Commerce de détail de quincaillerie"), + '524P' => array('lib'=>"Commerce de détail de bricolage", 'art'=>"Commerce de détail de bricolage"), + '524R' => array('lib'=>"Commerce de détail de livres, journaux et papeterie", 'art'=>"Commerce de détail de livres, journaux et papeterie"), + '524T' => array('lib'=>"Commerce de détail d'optique et de photographie", 'art'=>"Commerce de détail d'optique et de photographie"), + '524U' => array('lib'=>"Commerce de détail de revêtements de sols et de murs", 'art'=>"Commerce de détail de revêtements de sols et de murs"), + '524V' => array('lib'=>"Commerce de détail d'horlogerie et de bijouterie", 'art'=>"Commerce de détail d'horlogerie et de bijouterie"), + '524W' => array('lib'=>"Commerce de détail d'articles de sport et de loisir", 'art'=>"Commerce de détail d'articles de sport et de loisir"), + '524X' => array('lib'=>"Commerce de détail de fleurs", 'art'=>"Commerce de détail de fleurs"), + '524Y' => array('lib'=>"Commerce de détail de charbons et combustibles", 'art'=>"Commerce de détail de charbons et combustibles"), + '524Z' => array('lib'=>"Commerces de détail divers en magasin spécialisé", 'art'=>"Commerces de détail divers en magasin spécialisé"), + '525Z' => array('lib'=>"Commerce de détail de biens d'occasion", 'art'=>"Commerce de détail de biens d'occasion"), + '526A' => array('lib'=>"Vente par correspondance sur catalogue général", 'art'=>"Vente par correspondance sur catalogue général"), + '526B' => array('lib'=>"Vente par correspondance spécialisée", 'art'=>"Vente par correspondance spécialisée"), + '526D' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '526E' => array('lib'=>"Commerce de détail non alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail non alimentaire sur éventaires et marchés"), + '526G' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '526H' => array('lib'=>"Vente par automate", 'art'=>"Vente par automate"), + '527A' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '527C' => array('lib'=>"Réparation de matériel électronique grand public", 'art'=>"Réparation de matériel électronique grand public"), + '527D' => array('lib'=>"Réparation d'appareils électroménagers", 'art'=>"Réparation d'appareils électroménagers"), + '527F' => array('lib'=>"Réparation de montres, horloges et bijoux", 'art'=>"Réparation de montres, horloges et bijoux"), + '527H' => array('lib'=>"Réparation d'articles personnels et domestiques n.c.a.", 'art'=>"Réparation d'articles personnels et domestiques n.c.a."), + '551A' => array('lib'=>"Hôtels touristiques avec restaurant", 'art'=>"Hôtels touristiques avec restaurant"), + '551C' => array('lib'=>"Hôtels touristiques sans restaurant", 'art'=>"Hôtels touristiques sans restaurant"), + '551D' => array('lib'=>"Hôtels de préfecture", 'art'=>"Hôtels de préfecture"), + '551E' => array('lib'=>"Autres hôtels", 'art'=>"Autres hôtels"), + '552A' => array('lib'=>"Auberges de jeunesse et refuges", 'art'=>"Auberges de jeunesse et refuges"), + '552C' => array('lib'=>"Exploitation de terrains de camping", 'art'=>"Exploitation de terrains de camping"), + '552E' => array('lib'=>"Autre hébergement touristique", 'art'=>"Autre hébergement touristique"), + '552F' => array('lib'=>"Hébergement collectif non touristique", 'art'=>"Hébergement collectif non touristique"), + '553A' => array('lib'=>"Restauration de type traditionnel", 'art'=>"Restauration de type traditionnel"), + '553B' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '554A' => array('lib'=>"Cafés tabacs", 'art'=>"Cafés tabacs"), + '554B' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '554C' => array('lib'=>"Discothèques", 'art'=>"Discothèques"), + '555A' => array('lib'=>"Cantines et restaurants d'entreprises", 'art'=>"Cantines et restaurants d'entreprises"), + '555C' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '555D' => array('lib'=>"Traiteurs, organisation de réceptions", 'art'=>"Traiteurs, organisation de réceptions"), + '601Z' => array('lib'=>"Transports ferroviaires", 'art'=>"Transports ferroviaires"), + '602A' => array('lib'=>"Transports urbains de voyageurs", 'art'=>"Transports urbains de voyageurs"), + '602B' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '602C' => array('lib'=>"Téléphériques, remontées mécaniques", 'art'=>"Téléphériques, remontées mécaniques"), + '602E' => array('lib'=>"Transport de voyageurs par taxis", 'art'=>"Transport de voyageurs par taxis"), + '602G' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '602L' => array('lib'=>"Transports routiers de marchandises de proximité", 'art'=>"Transports routiers de marchandises de proximité"), + '602M' => array('lib'=>"Transports routiers de marchandises interurbains", 'art'=>"Transports routiers de marchandises interurbains"), + '602N' => array('lib'=>"Déménagement", 'art'=>"Déménagement"), + '602P' => array('lib'=>"Location de camions avec conducteur", 'art'=>"Location de camions avec conducteur"), + '603Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '611A' => array('lib'=>"Transports maritimes", 'art'=>"Transports maritimes"), + '611B' => array('lib'=>"Transports côtiers", 'art'=>"Transports côtiers"), + '612Z' => array('lib'=>"Transports fluviaux", 'art'=>"Transports fluviaux"), + '621Z' => array('lib'=>"Transports aériens réguliers", 'art'=>"Transports aériens réguliers"), + '622Z' => array('lib'=>"Transports aériens non réguliers", 'art'=>"Transports aériens non réguliers"), + '623Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '631A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '631B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '631D' => array('lib'=>"Entreposage frigorifique", 'art'=>"Entreposage frigorifique"), + '631E' => array('lib'=>"Entreposage non frigorifique", 'art'=>"Entreposage non frigorifique"), + '632A' => array('lib'=>"Gestion d'infrastructures de transports terrestres", 'art'=>"Gestion d'infrastructures de transports terrestres"), + '632C' => array('lib'=>"Services portuaires, maritimes et fluviaux", 'art'=>"Services portuaires, maritimes et fluviaux"), + '632E' => array('lib'=>"Services aéroportuaires", 'art'=>"Services aéroportuaires"), + '633Z' => array('lib'=>"Agences de voyage", 'art'=>"Agences de voyage"), + '634A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '634B' => array('lib'=>"Affrètement", 'art'=>"Affrètement"), + '634C' => array('lib'=>"Organisation des transports internationaux", 'art'=>"Organisation des transports internationaux"), + '641A' => array('lib'=>"Postes nationales", 'art'=>"Postes nationales"), + '641C' => array('lib'=>"Autres activités de courrier", 'art'=>"Autres activités de courrier"), + '642A' => array('lib'=>"Télécommunications nationales", 'art'=>"Télécommunications nationales"), + '642B' => array('lib'=>"Autres activités de télécommunications", 'art'=>"Autres activités de télécommunications"), + '642C' => array('lib'=>"Télécommunications (hors transmissions audiovisuelles)", 'art'=>"Télécommunications (hors transmissions audiovisuelles)"), + '642D' => array('lib'=>"Transmission d'émissions de radio et de télévision", 'art'=>"Transmission d'émissions de radio et de télévision"), + '651A' => array('lib'=>"Banque centrale", 'art'=>"Banque centrale"), + '651C' => array('lib'=>"Banques", 'art'=>"Banques"), + '651D' => array('lib'=>"Banques mutualistes", 'art'=>"Banques mutualistes"), + '651E' => array('lib'=>"Caisses d'épargne", 'art'=>"Caisses d'épargne"), + '651F' => array('lib'=>"Intermédiations monétaires n.c.a.", 'art'=>"Intermédiations monétaires n.c.a."), + '652A' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '652C' => array('lib'=>"Distribution de crédit", 'art'=>"Distribution de crédit"), + '652E' => array('lib'=>"Organismes de placement en valeurs mobilières", 'art'=>"Organismes de placement en valeurs mobilières"), + '652F' => array('lib'=>"Intermédiations financières diverses", 'art'=>"Intermédiations financières diverses"), + '660A' => array('lib'=>"Assurance-vie et capitalisation", 'art'=>"Assurance-vie et capitalisation"), + '660C' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '660E' => array('lib'=>"Assurance dommages", 'art'=>"Assurance dommages"), + '660F' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '660G' => array('lib'=>"Assurance relevant du code de la mutualité", 'art'=>"Assurance relevant du code de la mutualité"), + '671A' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '671C' => array('lib'=>"Gestion de portefeuilles", 'art'=>"Gestion de portefeuilles"), + '671E' => array('lib'=>"Autres auxiliaires financiers", 'art'=>"Autres auxiliaires financiers"), + '672Z' => array('lib'=>"Auxiliaires d'assurance", 'art'=>"Auxiliaires d'assurance"), + '701A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '701B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '701C' => array('lib'=>"Promotion immobilière d'infrastructures", 'art'=>"Promotion immobilière d'infrastructures"), + '701D' => array('lib'=>"Supports juridiques de programme", 'art'=>"Supports juridiques de programme"), + '701F' => array('lib'=>"Marchands de biens immobiliers", 'art'=>"Marchands de biens immobiliers"), + '702A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '702B' => array('lib'=>"Location de terrains", 'art'=>"Location de terrains"), + '702C' => array('lib'=>"Location d'autres biens immobiliers", 'art'=>"Location d'autres biens immobiliers"), + '703A' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '703C' => array('lib'=>"Administration d'immeubles résidentiels", 'art'=>"Administration d'immeubles résidentiels"), + '703D' => array('lib'=>"Administration d'autres biens immobiliers", 'art'=>"Administration d'autres biens immobiliers"), + '703E' => array('lib'=>"Supports juridiques de gestion de patrimoine", 'art'=>"Supports juridiques de gestion de patrimoine"), + '711A' => array('lib'=>"Location de courte durée de véhicules automobiles", 'art'=>"Location de courte durée de véhicules automobiles"), + '711B' => array('lib'=>"Location de longue durée de véhicules automobiles", 'art'=>"Location de longue durée de véhicules automobiles"), + '711Z' => array('lib'=>"Location de véhicules automobiles", 'art'=>"Location de véhicules automobiles"), + '712A' => array('lib'=>"Location d'autres matériels de transport terrestre", 'art'=>"Location d'autres matériels de transport terrestre"), + '712C' => array('lib'=>"Location de matériels de transport par eau", 'art'=>"Location de matériels de transport par eau"), + '712E' => array('lib'=>"Location d'appareils de transport aérien", 'art'=>"Location d'appareils de transport aérien"), + '713A' => array('lib'=>"Location de matériel agricole", 'art'=>"Location de matériel agricole"), + '713C' => array('lib'=>"Location de machines et équipements pour la construction", 'art'=>"Location de machines et équipements pour la construction"), + '713E' => array('lib'=>"Location de machines de bureau et de matériel informatique", 'art'=>"Location de machines de bureau et de matériel informatique"), + '713G' => array('lib'=>"Location de machines et équipements divers", 'art'=>"Location de machines et équipements divers"), + '714A' => array('lib'=>"Location de linge", 'art'=>"Location de linge"), + '714B' => array('lib'=>"Location d'autres biens personnels et domestiques", 'art'=>"Location d'autres biens personnels et domestiques"), + '721Z' => array('lib'=>"Conseil en systèmes informatiques", 'art'=>"Conseil en systèmes informatiques"), + '722A' => array('lib'=>"Edition de logiciels (non personnalisés)", 'art'=>"Edition de logiciels (non personnalisés)"), + '722C' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '722Z' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '723Z' => array('lib'=>"Traitement de données", 'art'=>"Traitement de données"), + '724Z' => array('lib'=>"Activités de banques de données", 'art'=>"Activités de banques de données"), + '725Z' => array('lib'=>"Entretien et réparation de machines de bureau et de matériel informatique", 'art'=>"Entretien et réparation de machines de bureau et de matériel informatique"), + '726Z' => array('lib'=>"Autres activités rattachées à l'informatique", 'art'=>"Autres activités rattachées à l'informatique"), + '731Z' => array('lib'=>"Recherche-développement en sciences physiques et naturelles", 'art'=>"Recherche-développement en sciences physiques et naturelles"), + '732Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '741A' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '741C' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '741E' => array('lib'=>"Etudes de marché et sondages", 'art'=>"Etudes de marché et sondages"), + '741G' => array('lib'=>"Conseil pour les affaires et la gestion", 'art'=>"Conseil pour les affaires et la gestion"), + '741J' => array('lib'=>"Administration d'entreprises", 'art'=>"Administration d'entreprises"), + '742A' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '742B' => array('lib'=>"Métreurs, géomètres", 'art'=>"Métreurs, géomètres"), + '742C' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '743A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '743B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '744A' => array('lib'=>"Gestion de supports de publicité", 'art'=>"Gestion de supports de publicité"), + '744B' => array('lib'=>"Agences, conseil en publicité", 'art'=>"Agences, conseil en publicité"), + '745A' => array('lib'=>"Sélection et mise à disposition de personnel", 'art'=>"Sélection et mise à disposition de personnel"), + '745B' => array('lib'=>"Travail temporaire", 'art'=>"Travail temporaire"), + '746Z' => array('lib'=>"Enquêtes et sécurité", 'art'=>"Enquêtes et sécurité"), + '747Z' => array('lib'=>"Activités de nettoyage", 'art'=>"Activités de nettoyage"), + '748A' => array('lib'=>"Studios et autres activités photographiques", 'art'=>"Studios et autres activités photographiques"), + '748B' => array('lib'=>"Laboratoires techniques de développement et de tirage", 'art'=>"Laboratoires techniques de développement et de tirage"), + '748D' => array('lib'=>"Conditionnement à façon", 'art'=>"Conditionnement à façon"), + '748F' => array('lib'=>"Secrétariat et traduction", 'art'=>"Secrétariat et traduction"), + '748G' => array('lib'=>"Routage", 'art'=>"Routage"), + '748H' => array('lib'=>"Centres d'appel", 'art'=>"Centres d'appel"), + '748J' => array('lib'=>"Organisation de foires et salons", 'art'=>"Organisation de foires et salons"), + '748K' => array('lib'=>"Services annexes à la production", 'art'=>"Services annexes à la production"), + '751A' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '751C' => array('lib'=>"Tutelle des activités sociales", 'art'=>"Tutelle des activités sociales"), + '751E' => array('lib'=>"Tutelle des activités économiques", 'art'=>"Tutelle des activités économiques"), + '751G' => array('lib'=>"Activités de soutien aux administrations", 'art'=>"Activités de soutien aux administrations"), + '752A' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '752C' => array('lib'=>"Défense", 'art'=>"Défense"), + '752E' => array('lib'=>"Justice", 'art'=>"Justice"), + '752G' => array('lib'=>"Police", 'art'=>"Police"), + '752J' => array('lib'=>"Protection civile", 'art'=>"Protection civile"), + '753A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '753B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '753C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '801Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '802A' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '802C' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '803Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '804A' => array('lib'=>"Ecoles de conduite", 'art'=>"Ecoles de conduite"), + '804C' => array('lib'=>"Formation des adultes et formation continue", 'art'=>"Formation des adultes et formation continue"), + '804D' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '851A' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '851C' => array('lib'=>"Pratique médicale", 'art'=>"Pratique médicale"), + '851E' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '851G' => array('lib'=>"Activités des auxiliaires médicaux", 'art'=>"Activités des auxiliaires médicaux"), + '851H' => array('lib'=>"Soins hors d'un cadre réglementé", 'art'=>"Soins hors d'un cadre réglementé"), + '851J' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '851K' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '851L' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '852Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '853A' => array('lib'=>"Accueil des enfants handicapés", 'art'=>"Accueil des enfants handicapés"), + '853B' => array('lib'=>"Accueil des enfants en difficulté", 'art'=>"Accueil des enfants en difficulté"), + '853C' => array('lib'=>"Accueil des adultes handicapés", 'art'=>"Accueil des adultes handicapés"), + '853D' => array('lib'=>"Accueil des personnes âgées", 'art'=>"Accueil des personnes âgées"), + '853E' => array('lib'=>"Autres hébergements sociaux", 'art'=>"Autres hébergements sociaux"), + '853G' => array('lib'=>"Crèches et garderies d'enfants", 'art'=>"Crèches et garderies d'enfants"), + '853H' => array('lib'=>"Aide par le travail, ateliers protégés", 'art'=>"Aide par le travail, ateliers protégés"), + '853J' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '853K' => array('lib'=>"Autres formes d'action sociale", 'art'=>"Autres formes d'action sociale"), + '900A' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '900B' => array('lib'=>"Enlèvement et traitement des ordures ménagères", 'art'=>"Enlèvement et traitement des ordures ménagères"), + '900C' => array('lib'=>"Elimination et traitement des autres déchets", 'art'=>"Elimination et traitement des autres déchets"), + '900E' => array('lib'=>"Traitements des autres déchets solides", 'art'=>"Traitements des autres déchets solides"), + '900G' => array('lib'=>"Autres travaux d'assainissement et de voirie", 'art'=>"Autres travaux d'assainissement et de voirie"), + '911A' => array('lib'=>"Organisations patronales et consulaires", 'art'=>"Organisations patronales et consulaires"), + '911C' => array('lib'=>"Organisations professionnelles", 'art'=>"Organisations professionnelles"), + '912Z' => array('lib'=>"Syndicats de salariés", 'art'=>"Syndicats de salariés"), + '913A' => array('lib'=>"Organisations religieuses", 'art'=>"Organisations religieuses"), + '913C' => array('lib'=>"Organisations politiques", 'art'=>"Organisations politiques"), + '913E' => array('lib'=>"Organisations associatives n.c.a.", 'art'=>"Organisations associatives n.c.a."), + '921A' => array('lib'=>"Production de films pour la télévision", 'art'=>"Production de films pour la télévision"), + '921B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '921C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '921D' => array('lib'=>"Prestations techniques pour le cinéma et la télévision", 'art'=>"Prestations techniques pour le cinéma et la télévision"), + '921F' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '921G' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '921J' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '922A' => array('lib'=>"Activités de radio", 'art'=>"Activités de radio"), + '922B' => array('lib'=>"Production de programmes de télévision", 'art'=>"Production de programmes de télévision"), + '922C' => array('lib'=>"Diffusion de programmes de télévision", 'art'=>"Diffusion de programmes de télévision"), + '922D' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '922E' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '922F' => array('lib'=>"Distribution de bouquets de programmes de radio et de télévision", 'art'=>"Distribution de bouquets de programmes de radio et de télévision"), + '923A' => array('lib'=>"Activités artistiques", 'art'=>"Activités artistiques"), + '923B' => array('lib'=>"Services annexes aux spectacles", 'art'=>"Services annexes aux spectacles"), + '923D' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '923F' => array('lib'=>"Manèges forains et parcs d'attractions", 'art'=>"Manèges forains et parcs d'attractions"), + '923H' => array('lib'=>"Bals et discothèques", 'art'=>"Bals et discothèques"), + '923J' => array('lib'=>"Autres spectacles", 'art'=>"Autres spectacles"), + '923K' => array('lib'=>"Activités diverses du spectacle", 'art'=>"Activités diverses du spectacle"), + '924Z' => array('lib'=>"Agences de presse", 'art'=>"Agences de presse"), + '925A' => array('lib'=>"Gestion des bibliothèques", 'art'=>"Gestion des bibliothèques"), + '925C' => array('lib'=>"Gestion du patrimoine culturel", 'art'=>"Gestion du patrimoine culturel"), + '925E' => array('lib'=>"Gestion du patrimoine naturel", 'art'=>"Gestion du patrimoine naturel"), + '926A' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '926C' => array('lib'=>"Autres activités sportives", 'art'=>"Autres activités sportives"), + '927A' => array('lib'=>"Jeux de hasard et d'argent", 'art'=>"Jeux de hasard et d'argent"), + '927C' => array('lib'=>"Autres activités récréatives", 'art'=>"Autres activités récréatives"), + '930A' => array('lib'=>"Blanchisserie - teinturerie de gros", 'art'=>"Blanchisserie - teinturerie de gros"), + '930B' => array('lib'=>"Blanchisserie - teinturerie de détail", 'art'=>"Blanchisserie - teinturerie de détail"), + '930D' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '930E' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '930G' => array('lib'=>"Soins aux défunts", 'art'=>"Soins aux défunts"), + '930H' => array('lib'=>"Pompes funèbres", 'art'=>"Pompes funèbres"), + '930K' => array('lib'=>"Activités thermales et de thalassothérapie", 'art'=>"Activités thermales et de thalassothérapie"), + '930L' => array('lib'=>"Autres soins corporels", 'art'=>"Autres soins corporels"), + '930N' => array('lib'=>"Autres services personnels", 'art'=>"Autres services personnels"), + '950Z' => array('lib'=>"Activités des ménages en tant qu'employeur de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeur de personnel domestique"), + '960Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '970Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '990Z' => array('lib'=>"Activités extra-territoriales", 'art'=>"Activités extra-territoriales"), + '0111Z' => array('lib'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses", 'art'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses"), + '0112Z' => array('lib'=>"Culture du riz", 'art'=>"Culture du riz"), + '0113Z' => array('lib'=>"Culture de légumes, de melons, de racines et de tubercules", 'art'=>"Culture de légumes, de melons, de racines et de tubercules"), + '0114Z' => array('lib'=>"Culture de la canne à sucre", 'art'=>"Culture de la canne à sucre"), + '0115Z' => array('lib'=>"Culture du tabac", 'art'=>"Culture du tabac"), + '0116Z' => array('lib'=>"Culture de plantes à fibres", 'art'=>"Culture de plantes à fibres"), + '0119Z' => array('lib'=>"Autres cultures non permanentes", 'art'=>"Autres cultures non permanentes"), + '0121Z' => array('lib'=>"Culture de la vigne", 'art'=>"Culture de la vigne"), + '0122Z' => array('lib'=>"Culture de fruits tropicaux et subtropicaux", 'art'=>"Culture de fruits tropicaux et subtropicaux"), + '0123Z' => array('lib'=>"Culture d'agrumes", 'art'=>"Culture d'agrumes"), + '0124Z' => array('lib'=>"Culture de fruits à pépins et à noyau", 'art'=>"Culture de fruits à pépins et à noyau"), + '0125Z' => array('lib'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque", 'art'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque"), + '0126Z' => array('lib'=>"Culture de fruits oléagineux", 'art'=>"Culture de fruits oléagineux"), + '0127Z' => array('lib'=>"Culture de plantes à boissons", 'art'=>"Culture de plantes à boissons"), + '0128Z' => array('lib'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques", 'art'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques"), + '0129Z' => array('lib'=>"Autres cultures permanentes", 'art'=>"Autres cultures permanentes"), + '0130Z' => array('lib'=>"Reproduction de plantes", 'art'=>"Reproduction de plantes"), + '0141Z' => array('lib'=>"Élevage de vaches laitières", 'art'=>"Élevage de vaches laitières"), + '0142Z' => array('lib'=>"Élevage d'autres bovins et de buffles", 'art'=>"Élevage d'autres bovins et de buffles"), + '0143Z' => array('lib'=>"Élevage de chevaux et d'autres équidés", 'art'=>"Élevage de chevaux et d'autres équidés"), + '0144Z' => array('lib'=>"Élevage de chameaux et d'autres camélidés", 'art'=>"Élevage de chameaux et d'autres camélidés"), + '0145Z' => array('lib'=>"Élevage d'ovins et de caprins", 'art'=>"Élevage d'ovins et de caprins"), + '0146Z' => array('lib'=>"Élevage de porcins", 'art'=>"Élevage de porcins"), + '0147Z' => array('lib'=>"Élevage de volailles", 'art'=>"Élevage de volailles"), + '0149Z' => array('lib'=>"Élevage d'autres animaux", 'art'=>"Élevage d'autres animaux"), + '0150Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '0161Z' => array('lib'=>"Activités de soutien aux cultures", 'art'=>"Activités de soutien aux cultures"), + '0162Z' => array('lib'=>"Activités de soutien à la production animale", 'art'=>"Activités de soutien à la production animale"), + '0163Z' => array('lib'=>"Traitement primaire des récoltes", 'art'=>"Traitement primaire des récoltes"), + '0164Z' => array('lib'=>"Traitement des semences", 'art'=>"Traitement des semences"), + '0170Z' => array('lib'=>"Chasse, piégeage et services annexes", 'art'=>"Chasse, piégeage et services annexes"), + '0210Z' => array('lib'=>"Sylviculture et autres activités forestières", 'art'=>"Sylviculture et autres activités forestières"), + '0220Z' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '0230Z' => array('lib'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage", 'art'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage"), + '0240Z' => array('lib'=>"Services de soutien à l'exploitation forestière", 'art'=>"Services de soutien à l'exploitation forestière"), + '0311Z' => array('lib'=>"Pêche en mer", 'art'=>"Pêche en mer"), + '0312Z' => array('lib'=>"Pêche en eau douce", 'art'=>"Pêche en eau douce"), + '0321Z' => array('lib'=>"Aquaculture en mer", 'art'=>"Aquaculture en mer"), + '0322Z' => array('lib'=>"Aquaculture en eau douce", 'art'=>"Aquaculture en eau douce"), + '0510Z' => array('lib'=>"Extraction de houille", 'art'=>"Extraction de houille"), + '0520Z' => array('lib'=>"Extraction de lignite", 'art'=>"Extraction de lignite"), + '0610Z' => array('lib'=>"Extraction de pétrole brut", 'art'=>"Extraction de pétrole brut"), + '0620Z' => array('lib'=>"Extraction de gaz naturel", 'art'=>"Extraction de gaz naturel"), + '0710Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '0721Z' => array('lib'=>"Extraction de minerais d'uranium et de thorium", 'art'=>"Extraction de minerais d'uranium et de thorium"), + '0729Z' => array('lib'=>"Extraction d'autres minerais de métaux non ferreux", 'art'=>"Extraction d'autres minerais de métaux non ferreux"), + '0811Z' => array('lib'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise", 'art'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise"), + '0812Z' => array('lib'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin", 'art'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin"), + '0891Z' => array('lib'=>"Extraction des minéraux chimiques et d'engrais minéraux", 'art'=>"Extraction des minéraux chimiques et d'engrais minéraux"), + '0892Z' => array('lib'=>"Extraction de tourbe", 'art'=>"Extraction de tourbe"), + '0893Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '0899Z' => array('lib'=>"Autres activités extractives nca", 'art'=>"Autres activités extractives nca"), + '0910Z' => array('lib'=>"Activités de soutien à l'extraction d'hydrocarbures", 'art'=>"Activités de soutien à l'extraction d'hydrocarbures"), + '0990Z' => array('lib'=>"Activités de soutien aux autres industries extractives", 'art'=>"Activités de soutien aux autres industries extractives"), + '1011Z' => array('lib'=>"Transformation et conservation de la viande de boucherie", 'art'=>"Transformation et conservation de la viande de boucherie"), + '1012Z' => array('lib'=>"Transformation et conservation de la viande de volaille", 'art'=>"Transformation et conservation de la viande de volaille"), + '1013A' => array('lib'=>"Préparation industrielle de produits à base de viande", 'art'=>"Préparation industrielle de produits à base de viande"), + '1013B' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '1020Z' => array('lib'=>"Transformation et conservation de poisson, de crustacés et de mollusques", 'art'=>"Transformation et conservation de poisson, de crustacés et de mollusques"), + '1031Z' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '1032Z' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '1039A' => array('lib'=>"Autre transformation et conservation de légumes", 'art'=>"Autre transformation et conservation de légumes"), + '1039B' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '1041A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '1041B' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '1042Z' => array('lib'=>"Fabrication de margarine et graisses comestibles similaires", 'art'=>"Fabrication de margarine et graisses comestibles similaires"), + '1051A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '1051B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '1051C' => array('lib'=>"Fabrication de fromage", 'art'=>"Fabrication de fromage"), + '1051D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '1052Z' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '1061A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '1061B' => array('lib'=>"Autres activités du travail des grains", 'art'=>"Autres activités du travail des grains"), + '1062Z' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '1071A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '1071B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '1071C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '1071D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '1072Z' => array('lib'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation", 'art'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation"), + '1073Z' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '1081Z' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '1082Z' => array('lib'=>"Fabrication de cacao, chocolat et de produits de confiserie", 'art'=>"Fabrication de cacao, chocolat et de produits de confiserie"), + '1083Z' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '1084Z' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '1085Z' => array('lib'=>"Fabrication de plats préparés", 'art'=>"Fabrication de plats préparés"), + '1086Z' => array('lib'=>"Fabrication d'aliments homogénéisés et diététiques", 'art'=>"Fabrication d'aliments homogénéisés et diététiques"), + '1089Z' => array('lib'=>"Fabrication d'autres produits alimentaires nca", 'art'=>"Fabrication d'autres produits alimentaires nca"), + '1091Z' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '1092Z' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '1101Z' => array('lib'=>"Production de boissons alcooliques distillées", 'art'=>"Production de boissons alcooliques distillées"), + '1102A' => array('lib'=>"Fabrication de vins effervescents", 'art'=>"Fabrication de vins effervescents"), + '1102B' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '1103Z' => array('lib'=>"Fabrication de cidre et de vins de fruits", 'art'=>"Fabrication de cidre et de vins de fruits"), + '1104Z' => array('lib'=>"Production d'autres boissons fermentées non distillées", 'art'=>"Production d'autres boissons fermentées non distillées"), + '1105Z' => array('lib'=>"Fabrication de bière", 'art'=>"Fabrication de bière"), + '1106Z' => array('lib'=>"Fabrication de malt", 'art'=>"Fabrication de malt"), + '1107A' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '1107B' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '1200Z' => array('lib'=>"Fabrication de produits à base de tabac", 'art'=>"Fabrication de produits à base de tabac"), + '1310Z' => array('lib'=>"Préparation de fibres textiles et filature", 'art'=>"Préparation de fibres textiles et filature"), + '1320Z' => array('lib'=>"Tissage", 'art'=>"Tissage"), + '1330Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '1391Z' => array('lib'=>"Fabrication d'étoffes à mailles", 'art'=>"Fabrication d'étoffes à mailles"), + '1392Z' => array('lib'=>"Fabrication d'articles textiles, sauf habillement", 'art'=>"Fabrication d'articles textiles, sauf habillement"), + '1393Z' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '1394Z' => array('lib'=>"Fabrication de ficelles, cordes et filets", 'art'=>"Fabrication de ficelles, cordes et filets"), + '1395Z' => array('lib'=>"Fabrication de non-tissés, sauf habillement", 'art'=>"Fabrication de non-tissés, sauf habillement"), + '1396Z' => array('lib'=>"Fabrication d'autres textiles techniques et industriels", 'art'=>"Fabrication d'autres textiles techniques et industriels"), + '1399Z' => array('lib'=>"Fabrication d'autres textiles nca", 'art'=>"Fabrication d'autres textiles nca"), + '1411Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '1412Z' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '1413Z' => array('lib'=>"Fabrication de vêtements de dessus", 'art'=>"Fabrication de vêtements de dessus"), + '1414Z' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '1419Z' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '1420Z' => array('lib'=>"Fabrication d'articles en fourrure", 'art'=>"Fabrication d'articles en fourrure"), + '1431Z' => array('lib'=>"Fabrication d'articles chaussants à mailles", 'art'=>"Fabrication d'articles chaussants à mailles"), + '1439Z' => array('lib'=>"Fabrication d'autres articles à mailles", 'art'=>"Fabrication d'autres articles à mailles"), + '1511Z' => array('lib'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures", 'art'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures"), + '1512Z' => array('lib'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie", 'art'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie"), + '1520Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '1610A' => array('lib'=>"Sciage et rabotage du bois, hors imprégnation", 'art'=>"Sciage et rabotage du bois, hors imprégnation"), + '1610B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '1621Z' => array('lib'=>"Fabrication de placage et de panneaux de bois", 'art'=>"Fabrication de placage et de panneaux de bois"), + '1622Z' => array('lib'=>"Fabrication de parquets assemblés", 'art'=>"Fabrication de parquets assemblés"), + '1623Z' => array('lib'=>"Fabrication de charpentes et d'autres menuiseries", 'art'=>"Fabrication de charpentes et d'autres menuiseries"), + '1624Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '1629Z' => array('lib'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie", 'art'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie"), + '1711Z' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '1712Z' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '1721A' => array('lib'=>"Fabrication de carton ondulé", 'art'=>"Fabrication de carton ondulé"), + '1721B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '1721C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '1722Z' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '1723Z' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '1724Z' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '1729Z' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '1811Z' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '1812Z' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '1813Z' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '1814Z' => array('lib'=>"Reliure et activités connexes", 'art'=>"Reliure et activités connexes"), + '1820Z' => array('lib'=>"Reproduction d'enregistrements", 'art'=>"Reproduction d'enregistrements"), + '1910Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '1920Z' => array('lib'=>"Raffinage du pétrole", 'art'=>"Raffinage du pétrole"), + '2011Z' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '2012Z' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '2013A' => array('lib'=>"Enrichissement et retraitement de matières nucléaires", 'art'=>"Enrichissement et retraitement de matières nucléaires"), + '2013B' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base nca", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base nca"), + '2014Z' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '2015Z' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '2016Z' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '2017Z' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '2020Z' => array('lib'=>"Fabrication de pesticides et d'autres produits agrochimiques", 'art'=>"Fabrication de pesticides et d'autres produits agrochimiques"), + '2030Z' => array('lib'=>"Fabrication de peintures, vernis, encres et mastics", 'art'=>"Fabrication de peintures, vernis, encres et mastics"), + '2041Z' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '2042Z' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '2051Z' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '2052Z' => array('lib'=>"Fabrication de colles", 'art'=>"Fabrication de colles"), + '2053Z' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '2059Z' => array('lib'=>"Fabrication d'autres produits chimiques nca", 'art'=>"Fabrication d'autres produits chimiques nca"), + '2060Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '2110Z' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '2120Z' => array('lib'=>"Fabrication de préparations pharmaceutiques", 'art'=>"Fabrication de préparations pharmaceutiques"), + '2211Z' => array('lib'=>"Fabrication et rechapage de pneumatiques", 'art'=>"Fabrication et rechapage de pneumatiques"), + '2219Z' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '2221Z' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '2222Z' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '2223Z' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '2229A' => array('lib'=>"Fabrication de pièces techniques à base de matières plastiques", 'art'=>"Fabrication de pièces techniques à base de matières plastiques"), + '2229B' => array('lib'=>"Fabrication de produits de consommation courante en matières plastiques", 'art'=>"Fabrication de produits de consommation courante en matières plastiques"), + '2311Z' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '2312Z' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '2313Z' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '2314Z' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '2319Z' => array('lib'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique", 'art'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique"), + '2320Z' => array('lib'=>"Fabrication de produits réfractaires", 'art'=>"Fabrication de produits réfractaires"), + '2331Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '2332Z' => array('lib'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite", 'art'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite"), + '2341Z' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '2342Z' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '2343Z' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '2344Z' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '2349Z' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '2351Z' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '2352Z' => array('lib'=>"Fabrication de chaux et plâtre", 'art'=>"Fabrication de chaux et plâtre"), + '2361Z' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '2362Z' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '2363Z' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '2364Z' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '2365Z' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '2369Z' => array('lib'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre"), + '2370Z' => array('lib'=>"Taille, façonnage et finissage de pierres", 'art'=>"Taille, façonnage et finissage de pierres"), + '2391Z' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '2399Z' => array('lib'=>"Fabrication d'autres produits minéraux non métalliques nca", 'art'=>"Fabrication d'autres produits minéraux non métalliques nca"), + '2410Z' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '2420Z' => array('lib'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier", 'art'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier"), + '2431Z' => array('lib'=>"étirage à froid de barres", 'art'=>"étirage à froid de barres"), + '2432Z' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '2433Z' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '2434Z' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '2441Z' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '2442Z' => array('lib'=>"Métallurgie de l'aluminium", 'art'=>"Métallurgie de l'aluminium"), + '2443Z' => array('lib'=>"Métallurgie du plomb, du zinc ou de l'étain", 'art'=>"Métallurgie du plomb, du zinc ou de l'étain"), + '2444Z' => array('lib'=>"Métallurgie du cuivre", 'art'=>"Métallurgie du cuivre"), + '2445Z' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '2446Z' => array('lib'=>"élaboration et transformation de matières nucléaires", 'art'=>"élaboration et transformation de matières nucléaires"), + '2451Z' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '2452Z' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '2453Z' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '2454Z' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '2511Z' => array('lib'=>"Fabrication de structures métalliques et de parties de structures", 'art'=>"Fabrication de structures métalliques et de parties de structures"), + '2512Z' => array('lib'=>"Fabrication de portes et fenêtres en métal", 'art'=>"Fabrication de portes et fenêtres en métal"), + '2521Z' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '2529Z' => array('lib'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques"), + '2530Z' => array('lib'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central", 'art'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central"), + '2540Z' => array('lib'=>"Fabrication d'armes et de munitions", 'art'=>"Fabrication d'armes et de munitions"), + '2550A' => array('lib'=>"Forge, estampage, matriçage ; métallurgie des poudres", 'art'=>"Forge, estampage, matriçage ; métallurgie des poudres"), + '2550B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '2561Z' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '2562A' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '2562B' => array('lib'=>"Mécanique industrielle", 'art'=>"Mécanique industrielle"), + '2571Z' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '2572Z' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '2573A' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '2573B' => array('lib'=>"Fabrication d'autres outillages", 'art'=>"Fabrication d'autres outillages"), + '2591Z' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '2592Z' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '2593Z' => array('lib'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts", 'art'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts"), + '2594Z' => array('lib'=>"Fabrication de vis et de boulons", 'art'=>"Fabrication de vis et de boulons"), + '2599A' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '2599B' => array('lib'=>"Fabrication d'autres articles métalliques", 'art'=>"Fabrication d'autres articles métalliques"), + '2611Z' => array('lib'=>"Fabrication de composants électroniques", 'art'=>"Fabrication de composants électroniques"), + '2612Z' => array('lib'=>"Fabrication de cartes électroniques assemblées", 'art'=>"Fabrication de cartes électroniques assemblées"), + '2620Z' => array('lib'=>"Fabrication d'ordinateurs et d'équipements périphériques", 'art'=>"Fabrication d'ordinateurs et d'équipements périphériques"), + '2630Z' => array('lib'=>"Fabrication d'équipements de communication", 'art'=>"Fabrication d'équipements de communication"), + '2640Z' => array('lib'=>"Fabrication de produits électroniques grand public", 'art'=>"Fabrication de produits électroniques grand public"), + '2651A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '2651B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '2652Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '2660Z' => array('lib'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques", 'art'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques"), + '2670Z' => array('lib'=>"Fabrication de matériels optique et photographique", 'art'=>"Fabrication de matériels optique et photographique"), + '2680Z' => array('lib'=>"Fabrication de supports magnétiques et optiques", 'art'=>"Fabrication de supports magnétiques et optiques"), + '2711Z' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques"), + '2712Z' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique", 'art'=>"Fabrication de matériel de distribution et de commande électrique"), + '2720Z' => array('lib'=>"Fabrication de piles et d'accumulateurs électriques", 'art'=>"Fabrication de piles et d'accumulateurs électriques"), + '2731Z' => array('lib'=>"Fabrication de câbles de fibres optiques", 'art'=>"Fabrication de câbles de fibres optiques"), + '2732Z' => array('lib'=>"Fabrication d'autres fils et câbles électroniques ou électriques", 'art'=>"Fabrication d'autres fils et câbles électroniques ou électriques"), + '2733Z' => array('lib'=>"Fabrication de matériel d'installation électrique", 'art'=>"Fabrication de matériel d'installation électrique"), + '2740Z' => array('lib'=>"Fabrication d'appareils d'éclairage électrique", 'art'=>"Fabrication d'appareils d'éclairage électrique"), + '2751Z' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '2752Z' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '2790Z' => array('lib'=>"Fabrication d'autres matériels électriques", 'art'=>"Fabrication d'autres matériels électriques"), + '2811Z' => array('lib'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules", 'art'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules"), + '2812Z' => array('lib'=>"Fabrication d'équipements hydrauliques et pneumatiques", 'art'=>"Fabrication d'équipements hydrauliques et pneumatiques"), + '2813Z' => array('lib'=>"Fabrication d'autres pompes et compresseurs", 'art'=>"Fabrication d'autres pompes et compresseurs"), + '2814Z' => array('lib'=>"Fabrication d'autres articles de robinetterie", 'art'=>"Fabrication d'autres articles de robinetterie"), + '2815Z' => array('lib'=>"Fabrication d'engrenages et d'organes mécaniques de transmission", 'art'=>"Fabrication d'engrenages et d'organes mécaniques de transmission"), + '2821Z' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '2822Z' => array('lib'=>"Fabrication de matériel de levage et de manutention", 'art'=>"Fabrication de matériel de levage et de manutention"), + '2823Z' => array('lib'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)", 'art'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)"), + '2824Z' => array('lib'=>"Fabrication d'outillage portatif à moteur incorporé", 'art'=>"Fabrication d'outillage portatif à moteur incorporé"), + '2825Z' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '2829A' => array('lib'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage", 'art'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage"), + '2829B' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '2830Z' => array('lib'=>"Fabrication de machines agricoles et forestières", 'art'=>"Fabrication de machines agricoles et forestières"), + '2841Z' => array('lib'=>"Fabrication de machines-outils pour le travail des métaux", 'art'=>"Fabrication de machines-outils pour le travail des métaux"), + '2849Z' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '2891Z' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '2892Z' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '2893Z' => array('lib'=>"Fabrication de machines pour l'industrie agro-alimentaire", 'art'=>"Fabrication de machines pour l'industrie agro-alimentaire"), + '2894Z' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '2895Z' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '2896Z' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '2899A' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '2899B' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '2910Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '2920Z' => array('lib'=>"Fabrication de carrosseries et remorques", 'art'=>"Fabrication de carrosseries et remorques"), + '2931Z' => array('lib'=>"Fabrication d'équipements électriques et électroniques automobiles", 'art'=>"Fabrication d'équipements électriques et électroniques automobiles"), + '2932Z' => array('lib'=>"Fabrication d'autres équipements automobiles", 'art'=>"Fabrication d'autres équipements automobiles"), + '3011Z' => array('lib'=>"Construction de navires et de structures flottantes", 'art'=>"Construction de navires et de structures flottantes"), + '3012Z' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '3020Z' => array('lib'=>"Construction de locomotives et d'autre matériel ferroviaire roulant", 'art'=>"Construction de locomotives et d'autre matériel ferroviaire roulant"), + '3030Z' => array('lib'=>"Construction aéronautique et spatiale", 'art'=>"Construction aéronautique et spatiale"), + '3040Z' => array('lib'=>"Construction de véhicules militaires de combat", 'art'=>"Construction de véhicules militaires de combat"), + '3091Z' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '3092Z' => array('lib'=>"Fabrication de bicyclettes et de véhicules pour invalides", 'art'=>"Fabrication de bicyclettes et de véhicules pour invalides"), + '3099Z' => array('lib'=>"Fabrication d'autres équipements de transport nca", 'art'=>"Fabrication d'autres équipements de transport nca"), + '3101Z' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '3102Z' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '3103Z' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '3109A' => array('lib'=>"Fabrication de sièges d'ameublement d'intérieur", 'art'=>"Fabrication de sièges d'ameublement d'intérieur"), + '3109B' => array('lib'=>"Fabrication d'autres meubles et industries connexes de l'ameublement", 'art'=>"Fabrication d'autres meubles et industries connexes de l'ameublement"), + '3211Z' => array('lib'=>"Frappe de monnaie", 'art'=>"Frappe de monnaie"), + '3212Z' => array('lib'=>"Fabrication d'articles de joaillerie et bijouterie", 'art'=>"Fabrication d'articles de joaillerie et bijouterie"), + '3213Z' => array('lib'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires", 'art'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires"), + '3220Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '3230Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '3240Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '3250A' => array('lib'=>"Fabrication de matériel médico-chirurgical et dentaire", 'art'=>"Fabrication de matériel médico-chirurgical et dentaire"), + '3250B' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '3291Z' => array('lib'=>"Fabrication d'articles de brosserie", 'art'=>"Fabrication d'articles de brosserie"), + '3299Z' => array('lib'=>"Autres activités manufacturières nca", 'art'=>"Autres activités manufacturières nca"), + '3311Z' => array('lib'=>"Réparation d'ouvrages en métaux", 'art'=>"Réparation d'ouvrages en métaux"), + '3312Z' => array('lib'=>"Réparation de machines et équipements mécaniques", 'art'=>"Réparation de machines et équipements mécaniques"), + '3313Z' => array('lib'=>"Réparation de matériels électroniques et optiques", 'art'=>"Réparation de matériels électroniques et optiques"), + '3314Z' => array('lib'=>"Réparation d'équipements électriques", 'art'=>"Réparation d'équipements électriques"), + '3315Z' => array('lib'=>"Réparation et maintenance navale", 'art'=>"Réparation et maintenance navale"), + '3316Z' => array('lib'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux", 'art'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux"), + '3317Z' => array('lib'=>"Réparation et maintenance d'autres équipements de transport", 'art'=>"Réparation et maintenance d'autres équipements de transport"), + '3319Z' => array('lib'=>"Réparation d'autres équipements", 'art'=>"Réparation d'autres équipements"), + '3320A' => array('lib'=>"Installation de structures métalliques, chaudronnées et de tuyauterie", 'art'=>"Installation de structures métalliques, chaudronnées et de tuyauterie"), + '3320B' => array('lib'=>"Installation de machines et équipements mécaniques", 'art'=>"Installation de machines et équipements mécaniques"), + '3320C' => array('lib'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels", 'art'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels"), + '3320D' => array('lib'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels", 'art'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels"), + '3511Z' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '3512Z' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '3513Z' => array('lib'=>"Distribution d'électricité", 'art'=>"Distribution d'électricité"), + '3514Z' => array('lib'=>"Commerce d'électricité", 'art'=>"Commerce d'électricité"), + '3521Z' => array('lib'=>"Production de combustibles gazeux", 'art'=>"Production de combustibles gazeux"), + '3522Z' => array('lib'=>"Distribution de combustibles gazeux par conduites", 'art'=>"Distribution de combustibles gazeux par conduites"), + '3523Z' => array('lib'=>"Commerce de combustibles gazeux par conduites", 'art'=>"Commerce de combustibles gazeux par conduites"), + '3530Z' => array('lib'=>"Production et distribution de vapeur et d'air conditionné", 'art'=>"Production et distribution de vapeur et d'air conditionné"), + '3600Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '3700Z' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '3811Z' => array('lib'=>"Collecte des déchets non dangereux", 'art'=>"Collecte des déchets non dangereux"), + '3812Z' => array('lib'=>"Collecte des déchets dangereux", 'art'=>"Collecte des déchets dangereux"), + '3821Z' => array('lib'=>"Traitement et élimination des déchets non dangereux", 'art'=>"Traitement et élimination des déchets non dangereux"), + '3822Z' => array('lib'=>"Traitement et élimination des déchets dangereux", 'art'=>"Traitement et élimination des déchets dangereux"), + '3831Z' => array('lib'=>"Démantèlement d'épaves", 'art'=>"Démantèlement d'épaves"), + '3832Z' => array('lib'=>"Récupération de déchets triés", 'art'=>"Récupération de déchets triés"), + '3900Z' => array('lib'=>"Dépollution et autres services de gestion des déchets", 'art'=>"Dépollution et autres services de gestion des déchets"), + '4110A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '4110B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '4110C' => array('lib'=>"Promotion immobilière d'autres bâtiments", 'art'=>"Promotion immobilière d'autres bâtiments"), + '4110D' => array('lib'=>"Supports juridiques de programmes", 'art'=>"Supports juridiques de programmes"), + '4120A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '4120B' => array('lib'=>"Construction d'autres bâtiments", 'art'=>"Construction d'autres bâtiments"), + '4211Z' => array('lib'=>"Construction de routes et autoroutes", 'art'=>"Construction de routes et autoroutes"), + '4212Z' => array('lib'=>"Construction de voies ferrées de surface et souterraines", 'art'=>"Construction de voies ferrées de surface et souterraines"), + '4213A' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '4213B' => array('lib'=>"Construction et entretien de tunnels", 'art'=>"Construction et entretien de tunnels"), + '4221Z' => array('lib'=>"Construction de réseaux pour fluides", 'art'=>"Construction de réseaux pour fluides"), + '4222Z' => array('lib'=>"Construction de réseaux électriques et de télécommunications", 'art'=>"Construction de réseaux électriques et de télécommunications"), + '4291Z' => array('lib'=>"Construction d'ouvrages maritimes et fluviaux", 'art'=>"Construction d'ouvrages maritimes et fluviaux"), + '4299Z' => array('lib'=>"Construction d'autres ouvrages de génie civil nca", 'art'=>"Construction d'autres ouvrages de génie civil nca"), + '4311Z' => array('lib'=>"Travaux de démolition", 'art'=>"Travaux de démolition"), + '4312A' => array('lib'=>"Travaux de terrassement courants et travaux préparatoires", 'art'=>"Travaux de terrassement courants et travaux préparatoires"), + '4312B' => array('lib'=>"Travaux de terrassement spécialisés ou de grande masse", 'art'=>"Travaux de terrassement spécialisés ou de grande masse"), + '4313Z' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '4321A' => array('lib'=>"Travaux d'installation électrique dans tous locaux", 'art'=>"Travaux d'installation électrique dans tous locaux"), + '4321B' => array('lib'=>"Travaux d'installation électrique sur la voie publique", 'art'=>"Travaux d'installation électrique sur la voie publique"), + '4322A' => array('lib'=>"Travaux d'installation d'eau et de gaz en tous locaux", 'art'=>"Travaux d'installation d'eau et de gaz en tous locaux"), + '4322B' => array('lib'=>"Travaux d'installation d'équipements thermiques et de climatisation", 'art'=>"Travaux d'installation d'équipements thermiques et de climatisation"), + '4329A' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '4329B' => array('lib'=>"Autres travaux d'installation nca", 'art'=>"Autres travaux d'installation nca"), + '4331Z' => array('lib'=>"Travaux de plâtrerie", 'art'=>"Travaux de plâtrerie"), + '4332A' => array('lib'=>"Travaux de menuiserie bois et pvc", 'art'=>"Travaux de menuiserie bois et pvc"), + '4332B' => array('lib'=>"Travaux de menuiserie métallique et serrurerie", 'art'=>"Travaux de menuiserie métallique et serrurerie"), + '4332C' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '4333Z' => array('lib'=>"Travaux de revêtement des sols et des murs", 'art'=>"Travaux de revêtement des sols et des murs"), + '4334Z' => array('lib'=>"Travaux de peinture et vitrerie", 'art'=>"Travaux de peinture et vitrerie"), + '4339Z' => array('lib'=>"Autres travaux de finition", 'art'=>"Autres travaux de finition"), + '4391A' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '4391B' => array('lib'=>"Travaux de couverture par éléments", 'art'=>"Travaux de couverture par éléments"), + '4399A' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '4399B' => array('lib'=>"Travaux de montage de structures métalliques", 'art'=>"Travaux de montage de structures métalliques"), + '4399C' => array('lib'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment", 'art'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment"), + '4399D' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '4399E' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '4511Z' => array('lib'=>"Commerce de voitures et de véhicules automobiles légers", 'art'=>"Commerce de voitures et de véhicules automobiles légers"), + '4519Z' => array('lib'=>"Commerce d'autres véhicules automobiles", 'art'=>"Commerce d'autres véhicules automobiles"), + '4520A' => array('lib'=>"Entretien et réparation de véhicules automobiles légers", 'art'=>"Entretien et réparation de véhicules automobiles légers"), + '4520B' => array('lib'=>"Entretien et réparation d'autres véhicules automobiles", 'art'=>"Entretien et réparation d'autres véhicules automobiles"), + '4531Z' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '4532Z' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '4540Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '4611Z' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis"), + '4612A' => array('lib'=>"Centrales d'achat de carburant", 'art'=>"Centrales d'achat de carburant"), + '4612B' => array('lib'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '4613Z' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '4614Z' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '4615Z' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '4616Z' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir"), + '4617A' => array('lib'=>"Centrales d'achat alimentaires", 'art'=>"Centrales d'achat alimentaires"), + '4617B' => array('lib'=>"Autres intermédiaires du commerce en denrées, boissons et tabac", 'art'=>"Autres intermédiaires du commerce en denrées, boissons et tabac"), + '4618Z' => array('lib'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques", 'art'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques"), + '4619A' => array('lib'=>"Centrales d'achat non alimentaires", 'art'=>"Centrales d'achat non alimentaires"), + '4619B' => array('lib'=>"Autres intermédiaires du commerce en produits divers", 'art'=>"Autres intermédiaires du commerce en produits divers"), + '4621Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail", 'art'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail"), + '4622Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes", 'art'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes"), + '4623Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'animaux vivants", 'art'=>"Commerce de gros (commerce interentreprises) d'animaux vivants"), + '4624Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux", 'art'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux"), + '4631Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fruits et légumes", 'art'=>"Commerce de gros (commerce interentreprises) de fruits et légumes"), + '4632A' => array('lib'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie", 'art'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie"), + '4632B' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de viande", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de viande"), + '4632C' => array('lib'=>"Commerce de gros (commerce interentreprises) de volailles et gibier", 'art'=>"Commerce de gros (commerce interentreprises) de volailles et gibier"), + '4633Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles", 'art'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles"), + '4634Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de boissons", 'art'=>"Commerce de gros (commerce interentreprises) de boissons"), + '4635Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac"), + '4636Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie", 'art'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie"), + '4637Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices", 'art'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices"), + '4638A' => array('lib'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques", 'art'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques"), + '4638B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers"), + '4639A' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits surgelés", 'art'=>"Commerce de gros (commerce interentreprises) de produits surgelés"), + '4639B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé"), + '4641Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de textiles", 'art'=>"Commerce de gros (commerce interentreprises) de textiles"), + '4642Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures", 'art'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures"), + '4643Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers"), + '4644Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien", 'art'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien"), + '4645Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté", 'art'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté"), + '4646Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques"), + '4647Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage", 'art'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage"), + '4648Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie", 'art'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie"), + '4649Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques", 'art'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques"), + '4651Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels", 'art'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels"), + '4652Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication", 'art'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication"), + '4661Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel agricole", 'art'=>"Commerce de gros (commerce interentreprises) de matériel agricole"), + '4662Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines-outils", 'art'=>"Commerce de gros (commerce interentreprises) de machines-outils"), + '4663Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil"), + '4664Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement"), + '4665Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau", 'art'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau"), + '4666Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau", 'art'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau"), + '4669A' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel électrique", 'art'=>"Commerce de gros (commerce interentreprises) de matériel électrique"), + '4669B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers"), + '4669C' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services"), + '4671Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes", 'art'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes"), + '4672Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de minerais et métaux", 'art'=>"Commerce de gros (commerce interentreprises) de minerais et métaux"), + '4673A' => array('lib'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction", 'art'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction"), + '4673B' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration"), + '4674A' => array('lib'=>"Commerce de gros (commerce interentreprises) de quincaillerie", 'art'=>"Commerce de gros (commerce interentreprises) de quincaillerie"), + '4674B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage"), + '4675Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits chimiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits chimiques"), + '4676Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires", 'art'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires"), + '4677Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de déchets et débris", 'art'=>"Commerce de gros (commerce interentreprises) de déchets et débris"), + '4690Z' => array('lib'=>"Commerce de gros (commerce interentreprises) non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) non spécialisé"), + '4711A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '4711B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '4711C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '4711D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '4711E' => array('lib'=>"Magasins multi-commerces", 'art'=>"Magasins multi-commerces"), + '4711F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '4719A' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '4719B' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '4721Z' => array('lib'=>"Commerce de détail de fruits et légumes en magasin spécialisé", 'art'=>"Commerce de détail de fruits et légumes en magasin spécialisé"), + '4722Z' => array('lib'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé", 'art'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé"), + '4723Z' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé", 'art'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé"), + '4724Z' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé"), + '4725Z' => array('lib'=>"Commerce de détail de boissons en magasin spécialisé", 'art'=>"Commerce de détail de boissons en magasin spécialisé"), + '4726Z' => array('lib'=>"Commerce de détail de produits à base de tabac en magasin spécialisé", 'art'=>"Commerce de détail de produits à base de tabac en magasin spécialisé"), + '4729Z' => array('lib'=>"Autres commerces de détail alimentaires en magasin spécialisé", 'art'=>"Autres commerces de détail alimentaires en magasin spécialisé"), + '4730Z' => array('lib'=>"Commerce de détail de carburants en magasin spécialisé", 'art'=>"Commerce de détail de carburants en magasin spécialisé"), + '4741Z' => array('lib'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé", 'art'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé"), + '4742Z' => array('lib'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé", 'art'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé"), + '4743Z' => array('lib'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé", 'art'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé"), + '4751Z' => array('lib'=>"Commerce de détail de textiles en magasin spécialisé", 'art'=>"Commerce de détail de textiles en magasin spécialisé"), + '4752A' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)"), + '4752B' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)"), + '4753Z' => array('lib'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé", 'art'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé"), + '4754Z' => array('lib'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé", 'art'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé"), + '4759A' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '4759B' => array('lib'=>"Commerce de détail d'autres équipements du foyer", 'art'=>"Commerce de détail d'autres équipements du foyer"), + '4761Z' => array('lib'=>"Commerce de détail de livres en magasin spécialisé", 'art'=>"Commerce de détail de livres en magasin spécialisé"), + '4762Z' => array('lib'=>"Commerce de détail de journaux et papeterie en magasin spécialisé", 'art'=>"Commerce de détail de journaux et papeterie en magasin spécialisé"), + '4763Z' => array('lib'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé", 'art'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé"), + '4764Z' => array('lib'=>"Commerce de détail d'articles de sport en magasin spécialisé", 'art'=>"Commerce de détail d'articles de sport en magasin spécialisé"), + '4765Z' => array('lib'=>"Commerce de détail de jeux et jouets en magasin spécialisé", 'art'=>"Commerce de détail de jeux et jouets en magasin spécialisé"), + '4771Z' => array('lib'=>"Commerce de détail d'habillement en magasin spécialisé", 'art'=>"Commerce de détail d'habillement en magasin spécialisé"), + '4772A' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '4772B' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '4773Z' => array('lib'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé", 'art'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé"), + '4774Z' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé"), + '4775Z' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé", 'art'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé"), + '4776Z' => array('lib'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé", 'art'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé"), + '4777Z' => array('lib'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé", 'art'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé"), + '4778A' => array('lib'=>"Commerces de détail d'optique", 'art'=>"Commerces de détail d'optique"), + '4778B' => array('lib'=>"Commerces de détail de charbons et combustibles", 'art'=>"Commerces de détail de charbons et combustibles"), + '4778C' => array('lib'=>"Autres commerces de détail spécialisés divers", 'art'=>"Autres commerces de détail spécialisés divers"), + '4779Z' => array('lib'=>"Commerce de détail de biens d'occasion en magasin", 'art'=>"Commerce de détail de biens d'occasion en magasin"), + '4781Z' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '4782Z' => array('lib'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés", 'art'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés"), + '4789Z' => array('lib'=>"Autres commerces de détail sur éventaires et marchés", 'art'=>"Autres commerces de détail sur éventaires et marchés"), + '4791A' => array('lib'=>"Vente à distance sur catalogue général", 'art'=>"Vente à distance sur catalogue général"), + '4791B' => array('lib'=>"Vente à distance sur catalogue spécialisé", 'art'=>"Vente à distance sur catalogue spécialisé"), + '4799A' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '4799B' => array('lib'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca", 'art'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca"), + '4910Z' => array('lib'=>"Transport ferroviaire interurbain de voyageurs", 'art'=>"Transport ferroviaire interurbain de voyageurs"), + '4920Z' => array('lib'=>"Transports ferroviaires de fret", 'art'=>"Transports ferroviaires de fret"), + '4931Z' => array('lib'=>"Transports urbains et suburbains de voyageurs", 'art'=>"Transports urbains et suburbains de voyageurs"), + '4932Z' => array('lib'=>"Transports de voyageurs par taxis", 'art'=>"Transports de voyageurs par taxis"), + '4939A' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '4939B' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '4939C' => array('lib'=>"Téléphériques et remontées mécaniques", 'art'=>"Téléphériques et remontées mécaniques"), + '4941A' => array('lib'=>"Transports routiers de fret interurbains", 'art'=>"Transports routiers de fret interurbains"), + '4941B' => array('lib'=>"Transports routiers de fret de proximité", 'art'=>"Transports routiers de fret de proximité"), + '4941C' => array('lib'=>"Location de camions avec chauffeur", 'art'=>"Location de camions avec chauffeur"), + '4942Z' => array('lib'=>"Services de déménagement", 'art'=>"Services de déménagement"), + '4950Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '5010Z' => array('lib'=>"Transports maritimes et côtiers de passagers", 'art'=>"Transports maritimes et côtiers de passagers"), + '5020Z' => array('lib'=>"Transports maritimes et côtiers de fret", 'art'=>"Transports maritimes et côtiers de fret"), + '5030Z' => array('lib'=>"Transports fluviaux de passagers", 'art'=>"Transports fluviaux de passagers"), + '5040Z' => array('lib'=>"Transports fluviaux de fret", 'art'=>"Transports fluviaux de fret"), + '5110Z' => array('lib'=>"Transports aériens de passagers", 'art'=>"Transports aériens de passagers"), + '5121Z' => array('lib'=>"Transports aériens de fret", 'art'=>"Transports aériens de fret"), + '5122Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '5210A' => array('lib'=>"Entreposage et stockage frigorifique", 'art'=>"Entreposage et stockage frigorifique"), + '5210B' => array('lib'=>"Entreposage et stockage non frigorifique", 'art'=>"Entreposage et stockage non frigorifique"), + '5221Z' => array('lib'=>"Services auxiliaires des transports terrestres", 'art'=>"Services auxiliaires des transports terrestres"), + '5222Z' => array('lib'=>"Services auxiliaires des transports par eau", 'art'=>"Services auxiliaires des transports par eau"), + '5223Z' => array('lib'=>"Services auxiliaires des transports aériens", 'art'=>"Services auxiliaires des transports aériens"), + '5224A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '5224B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '5229A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '5229B' => array('lib'=>"Affrètement et organisation des transports", 'art'=>"Affrètement et organisation des transports"), + '5310Z' => array('lib'=>"Activités de poste dans le cadre d'une obligation de service universel", 'art'=>"Activités de poste dans le cadre d'une obligation de service universel"), + '5320Z' => array('lib'=>"Autres activités de poste et de courrier", 'art'=>"Autres activités de poste et de courrier"), + '5510Z' => array('lib'=>"Hôtels et hébergement similaire", 'art'=>"Hôtels et hébergement similaire"), + '5520Z' => array('lib'=>"Hébergement touristique et autre hébergement de courte durée", 'art'=>"Hébergement touristique et autre hébergement de courte durée"), + '5530Z' => array('lib'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs", 'art'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs"), + '5590Z' => array('lib'=>"Autres hébergements", 'art'=>"Autres hébergements"), + '5610A' => array('lib'=>"Restauration traditionnelle", 'art'=>"Restauration traditionnelle"), + '5610B' => array('lib'=>"Cafétérias et autres libres-services", 'art'=>"Cafétérias et autres libres-services"), + '5610C' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '5621Z' => array('lib'=>"Services des traiteurs", 'art'=>"Services des traiteurs"), + '5629A' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '5629B' => array('lib'=>"Autres services de restauration nca", 'art'=>"Autres services de restauration nca"), + '5630Z' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '5811Z' => array('lib'=>"Édition de livres", 'art'=>"Édition de livres"), + '5812Z' => array('lib'=>"Édition de répertoires et de fichiers d'adresses", 'art'=>"Édition de répertoires et de fichiers d'adresses"), + '5813Z' => array('lib'=>"Édition de journaux", 'art'=>"Édition de journaux"), + '5814Z' => array('lib'=>"Édition de revues et périodiques", 'art'=>"Édition de revues et périodiques"), + '5819Z' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '5821Z' => array('lib'=>"Édition de jeux électroniques", 'art'=>"Édition de jeux électroniques"), + '5829A' => array('lib'=>"Édition de logiciels système et de réseau", 'art'=>"Édition de logiciels système et de réseau"), + '5829B' => array('lib'=>"Edition de logiciels outils de développement et de langages", 'art'=>"Edition de logiciels outils de développement et de langages"), + '5829C' => array('lib'=>"Edition de logiciels applicatifs", 'art'=>"Edition de logiciels applicatifs"), + '5911A' => array('lib'=>"Production de films et de programmes pour la télévision", 'art'=>"Production de films et de programmes pour la télévision"), + '5911B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '5911C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '5912Z' => array('lib'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision", 'art'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision"), + '5913A' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '5913B' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '5914Z' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '5920Z' => array('lib'=>"Enregistrement sonore et édition musicale", 'art'=>"Enregistrement sonore et édition musicale"), + '6010Z' => array('lib'=>"Édition et diffusion de programmes radio", 'art'=>"Édition et diffusion de programmes radio"), + '6020A' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '6020B' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '6110Z' => array('lib'=>"Télécommunications filaires", 'art'=>"Télécommunications filaires"), + '6120Z' => array('lib'=>"Télécommunications sans fil", 'art'=>"Télécommunications sans fil"), + '6130Z' => array('lib'=>"Télécommunications par satellite", 'art'=>"Télécommunications par satellite"), + '6190Z' => array('lib'=>"Autres activités de télécommunication", 'art'=>"Autres activités de télécommunication"), + '6201Z' => array('lib'=>"Programmation informatique", 'art'=>"Programmation informatique"), + '6202A' => array('lib'=>"Conseil en systèmes et logiciels informatiques", 'art'=>"Conseil en systèmes et logiciels informatiques"), + '6202B' => array('lib'=>"Tierce maintenance de systèmes et d'applications informatiques", 'art'=>"Tierce maintenance de systèmes et d'applications informatiques"), + '6203Z' => array('lib'=>"Gestion d'installations informatiques", 'art'=>"Gestion d'installations informatiques"), + '6209Z' => array('lib'=>"Autres activités informatiques", 'art'=>"Autres activités informatiques"), + '6311Z' => array('lib'=>"Traitement de données, hébergement et activités connexes", 'art'=>"Traitement de données, hébergement et activités connexes"), + '6312Z' => array('lib'=>"Portails internet", 'art'=>"Portails internet"), + '6391Z' => array('lib'=>"Activités des agences de presse", 'art'=>"Activités des agences de presse"), + '6399Z' => array('lib'=>"Autres services d'information nca", 'art'=>"Autres services d'information nca"), + '6411Z' => array('lib'=>"Activités de banque centrale", 'art'=>"Activités de banque centrale"), + '6419Z' => array('lib'=>"Autres intermédiations monétaires", 'art'=>"Autres intermédiations monétaires"), + '6420Z' => array('lib'=>"Activités des sociétés holding", 'art'=>"Activités des sociétés holding"), + '6430Z' => array('lib'=>"Fonds de placement et entités financières similaires", 'art'=>"Fonds de placement et entités financières similaires"), + '6491Z' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '6492Z' => array('lib'=>"Autre distribution de crédit", 'art'=>"Autre distribution de crédit"), + '6499Z' => array('lib'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca"), + '6511Z' => array('lib'=>"Assurance vie", 'art'=>"Assurance vie"), + '6512Z' => array('lib'=>"Autres assurances", 'art'=>"Autres assurances"), + '6520Z' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '6530Z' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '6611Z' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '6612Z' => array('lib'=>"Courtage de valeurs mobilières et de marchandises", 'art'=>"Courtage de valeurs mobilières et de marchandises"), + '6619A' => array('lib'=>"Supports juridiques de gestion de patrimoine mobilier", 'art'=>"Supports juridiques de gestion de patrimoine mobilier"), + '6619B' => array('lib'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca"), + '6621Z' => array('lib'=>"évaluation des risques et dommages", 'art'=>"évaluation des risques et dommages"), + '6622Z' => array('lib'=>"Activités des agents et courtiers d'assurances", 'art'=>"Activités des agents et courtiers d'assurances"), + '6629Z' => array('lib'=>"Autres activités auxiliaires d'assurance et de caisses de retraite", 'art'=>"Autres activités auxiliaires d'assurance et de caisses de retraite"), + '6630Z' => array('lib'=>"Gestion de fonds", 'art'=>"Gestion de fonds"), + '6810Z' => array('lib'=>"Activités des marchands de biens immobiliers", 'art'=>"Activités des marchands de biens immobiliers"), + '6820A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '6820B' => array('lib'=>"Location de terrains et d'autres biens immobiliers", 'art'=>"Location de terrains et d'autres biens immobiliers"), + '6831Z' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '6832A' => array('lib'=>"Administration d'immeubles et autres biens immobiliers", 'art'=>"Administration d'immeubles et autres biens immobiliers"), + '6832B' => array('lib'=>"Supports juridiques de gestion de patrimoine immobilier", 'art'=>"Supports juridiques de gestion de patrimoine immobilier"), + '6910Z' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '6920Z' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '7010Z' => array('lib'=>"Activités des sièges sociaux", 'art'=>"Activités des sièges sociaux"), + '7021Z' => array('lib'=>"Conseil en relations publiques et communication", 'art'=>"Conseil en relations publiques et communication"), + '7022Z' => array('lib'=>"Conseil pour les affaires et autres conseils de gestion", 'art'=>"Conseil pour les affaires et autres conseils de gestion"), + '7111Z' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '7112A' => array('lib'=>"Activité des géomètres", 'art'=>"Activité des géomètres"), + '7112B' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '7120A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '7120B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '7211Z' => array('lib'=>"Recherche-développement en biotechnologie", 'art'=>"Recherche-développement en biotechnologie"), + '7219Z' => array('lib'=>"Recherche-développement en autres sciences physiques et naturelles", 'art'=>"Recherche-développement en autres sciences physiques et naturelles"), + '7220Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '7311Z' => array('lib'=>"Activités des agences de publicité", 'art'=>"Activités des agences de publicité"), + '7312Z' => array('lib'=>"Régie publicitaire de médias", 'art'=>"Régie publicitaire de médias"), + '7320Z' => array('lib'=>"études de marché et sondages", 'art'=>"études de marché et sondages"), + '7410Z' => array('lib'=>"Activités spécialisées de design", 'art'=>"Activités spécialisées de design"), + '7420Z' => array('lib'=>"Activités photographiques", 'art'=>"Activités photographiques"), + '7430Z' => array('lib'=>"Traduction et interprétation", 'art'=>"Traduction et interprétation"), + '7490A' => array('lib'=>"Activité des économistes de la construction", 'art'=>"Activité des économistes de la construction"), + '7490B' => array('lib'=>"Activités spécialisées, scientifiques et techniques diverses", 'art'=>"Activités spécialisées, scientifiques et techniques diverses"), + '7500Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '7711A' => array('lib'=>"Location de courte durée de voitures et de véhicules automobiles légers", 'art'=>"Location de courte durée de voitures et de véhicules automobiles légers"), + '7711B' => array('lib'=>"Location de longue durée de voitures et de véhicules automobiles légers", 'art'=>"Location de longue durée de voitures et de véhicules automobiles légers"), + '7712Z' => array('lib'=>"Location et location-bail de camions", 'art'=>"Location et location-bail de camions"), + '7721Z' => array('lib'=>"Location et location-bail d'articles de loisirs et de sport", 'art'=>"Location et location-bail d'articles de loisirs et de sport"), + '7722Z' => array('lib'=>"Location de vidéocassettes et disques vidéo", 'art'=>"Location de vidéocassettes et disques vidéo"), + '7729Z' => array('lib'=>"Location et location-bail d'autres biens personnels et domestiques", 'art'=>"Location et location-bail d'autres biens personnels et domestiques"), + '7731Z' => array('lib'=>"Location et location-bail de machines et équipements agricoles", 'art'=>"Location et location-bail de machines et équipements agricoles"), + '7732Z' => array('lib'=>"Location et location-bail de machines et équipements pour la construction", 'art'=>"Location et location-bail de machines et équipements pour la construction"), + '7733Z' => array('lib'=>"Location et location-bail de machines de bureau et de matériel informatique", 'art'=>"Location et location-bail de machines de bureau et de matériel informatique"), + '7734Z' => array('lib'=>"Location et location-bail de matériels de transport par eau", 'art'=>"Location et location-bail de matériels de transport par eau"), + '7735Z' => array('lib'=>"Location et location-bail de matériels de transport aérien", 'art'=>"Location et location-bail de matériels de transport aérien"), + '7739Z' => array('lib'=>"Location et location-bail d'autres machines, équipements et biens matériels nca", 'art'=>"Location et location-bail d'autres machines, équipements et biens matériels nca"), + '7740Z' => array('lib'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright", 'art'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright"), + '7810Z' => array('lib'=>"Activités des agences de placement de main-d'œuvre", 'art'=>"Activités des agences de placement de main-d'œuvre"), + '7820Z' => array('lib'=>"Activités des agences de travail temporaire", 'art'=>"Activités des agences de travail temporaire"), + '7830Z' => array('lib'=>"Autre mise à disposition de ressources humaines", 'art'=>"Autre mise à disposition de ressources humaines"), + '7911Z' => array('lib'=>"Activités des agences de voyage", 'art'=>"Activités des agences de voyage"), + '7912Z' => array('lib'=>"Activités des voyagistes", 'art'=>"Activités des voyagistes"), + '7990Z' => array('lib'=>"Autres services de réservation et activités connexes", 'art'=>"Autres services de réservation et activités connexes"), + '8010Z' => array('lib'=>"Activités de sécurité privée", 'art'=>"Activités de sécurité privée"), + '8020Z' => array('lib'=>"Activités liées aux systèmes de sécurité", 'art'=>"Activités liées aux systèmes de sécurité"), + '8030Z' => array('lib'=>"Activités d'enquête", 'art'=>"Activités d'enquête"), + '8110Z' => array('lib'=>"Activités combinées de soutien lié aux bâtiments", 'art'=>"Activités combinées de soutien lié aux bâtiments"), + '8121Z' => array('lib'=>"Nettoyage courant des bâtiments", 'art'=>"Nettoyage courant des bâtiments"), + '8122Z' => array('lib'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel", 'art'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel"), + '8129A' => array('lib'=>"Désinfection, désinsectisation, dératisation", 'art'=>"Désinfection, désinsectisation, dératisation"), + '8129B' => array('lib'=>"Autres activités de nettoyage nca", 'art'=>"Autres activités de nettoyage nca"), + '8130Z' => array('lib'=>"Services d'aménagement paysager", 'art'=>"Services d'aménagement paysager"), + '8211Z' => array('lib'=>"Services administratifs combinés de bureau", 'art'=>"Services administratifs combinés de bureau"), + '8219Z' => array('lib'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau", 'art'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau"), + '8220Z' => array('lib'=>"Activités de centres d'appels", 'art'=>"Activités de centres d'appels"), + '8230Z' => array('lib'=>"Organisation de foires, salons professionnels et congrès", 'art'=>"Organisation de foires, salons professionnels et congrès"), + '8291Z' => array('lib'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle", 'art'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle"), + '8292Z' => array('lib'=>"Activités de conditionnement", 'art'=>"Activités de conditionnement"), + '8299Z' => array('lib'=>"Autres activités de soutien aux entreprises nca", 'art'=>"Autres activités de soutien aux entreprises nca"), + '8411Z' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '8412Z' => array('lib'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale", 'art'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale"), + '8413Z' => array('lib'=>"Administration publique (tutelle) des activités économiques", 'art'=>"Administration publique (tutelle) des activités économiques"), + '8421Z' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '8422Z' => array('lib'=>"Défense", 'art'=>"Défense"), + '8423Z' => array('lib'=>"Justice", 'art'=>"Justice"), + '8424Z' => array('lib'=>"Activités d'ordre public et de sécurité", 'art'=>"Activités d'ordre public et de sécurité"), + '8425Z' => array('lib'=>"Services du feu et de secours", 'art'=>"Services du feu et de secours"), + '8430A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '8430B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '8430C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '8510Z' => array('lib'=>"Enseignement pré-primaire", 'art'=>"Enseignement pré-primaire"), + '8520Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '8531Z' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '8532Z' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '8541Z' => array('lib'=>"Enseignement post-secondaire non supérieur", 'art'=>"Enseignement post-secondaire non supérieur"), + '8542Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '8551Z' => array('lib'=>"Enseignement de disciplines sportives et d'activités de loisirs", 'art'=>"Enseignement de disciplines sportives et d'activités de loisirs"), + '8552Z' => array('lib'=>"Enseignement culturel", 'art'=>"Enseignement culturel"), + '8553Z' => array('lib'=>"Enseignement de la conduite", 'art'=>"Enseignement de la conduite"), + '8559A' => array('lib'=>"Formation continue d'adultes", 'art'=>"Formation continue d'adultes"), + '8559B' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '8560Z' => array('lib'=>"Activités de soutien à l'enseignement", 'art'=>"Activités de soutien à l'enseignement"), + '8610Z' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '8621Z' => array('lib'=>"Activité des médecins généralistes", 'art'=>"Activité des médecins généralistes"), + '8622A' => array('lib'=>"Activités de radiodiagnostic et de radiothérapie", 'art'=>"Activités de radiodiagnostic et de radiothérapie"), + '8622B' => array('lib'=>"Activités chirurgicales", 'art'=>"Activités chirurgicales"), + '8622C' => array('lib'=>"Autres activités des médecins spécialistes", 'art'=>"Autres activités des médecins spécialistes"), + '8623Z' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '8690A' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '8690B' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '8690C' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '8690D' => array('lib'=>"Activités des infirmiers et des sages-femmes", 'art'=>"Activités des infirmiers et des sages-femmes"), + '8690E' => array('lib'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues", 'art'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues"), + '8690F' => array('lib'=>"Activités de santé humaine non classées ailleurs", 'art'=>"Activités de santé humaine non classées ailleurs"), + '8710A' => array('lib'=>"Hébergement médicalisé pour personnes âgées", 'art'=>"Hébergement médicalisé pour personnes âgées"), + '8710B' => array('lib'=>"Hébergement médicalisé pour enfants handicapés", 'art'=>"Hébergement médicalisé pour enfants handicapés"), + '8710C' => array('lib'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé", 'art'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé"), + '8720A' => array('lib'=>"Hébergement social pour handicapés mentaux et malades mentaux", 'art'=>"Hébergement social pour handicapés mentaux et malades mentaux"), + '8720B' => array('lib'=>"Hébergement social pour toxicomanes", 'art'=>"Hébergement social pour toxicomanes"), + '8730A' => array('lib'=>"Hébergement social pour personnes âgées", 'art'=>"Hébergement social pour personnes âgées"), + '8730B' => array('lib'=>"Hébergement social pour handicapés physiques", 'art'=>"Hébergement social pour handicapés physiques"), + '8790A' => array('lib'=>"Hébergement social pour enfants en difficultés", 'art'=>"Hébergement social pour enfants en difficultés"), + '8790B' => array('lib'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social", 'art'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social"), + '8810A' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '8810B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées", 'art'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées"), + '8810C' => array('lib'=>"Aide par le travail", 'art'=>"Aide par le travail"), + '8891A' => array('lib'=>"Accueil de jeunes enfants", 'art'=>"Accueil de jeunes enfants"), + '8891B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés", 'art'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés"), + '8899A' => array('lib'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents", 'art'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents"), + '8899B' => array('lib'=>"Action sociale sans hébergement nca", 'art'=>"Action sociale sans hébergement nca"), + '9001Z' => array('lib'=>"Arts du spectacle vivant", 'art'=>"Arts du spectacle vivant"), + '9002Z' => array('lib'=>"Activités de soutien au spectacle vivant", 'art'=>"Activités de soutien au spectacle vivant"), + '9003A' => array('lib'=>"Création artistique relevant des arts plastiques", 'art'=>"Création artistique relevant des arts plastiques"), + '9003B' => array('lib'=>"Autre création artistique", 'art'=>"Autre création artistique"), + '9004Z' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '9101Z' => array('lib'=>"Gestion des bibliothèques et des archives", 'art'=>"Gestion des bibliothèques et des archives"), + '9102Z' => array('lib'=>"Gestion des musées", 'art'=>"Gestion des musées"), + '9103Z' => array('lib'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires", 'art'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires"), + '9104Z' => array('lib'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles", 'art'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles"), + '9200Z' => array('lib'=>"Organisation de jeux de hasard et d'argent", 'art'=>"Organisation de jeux de hasard et d'argent"), + '9311Z' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '9312Z' => array('lib'=>"Activités de clubs de sports", 'art'=>"Activités de clubs de sports"), + '9313Z' => array('lib'=>"Activités des centres de culture physique", 'art'=>"Activités des centres de culture physique"), + '9319Z' => array('lib'=>"Autres activités liées au sport", 'art'=>"Autres activités liées au sport"), + '9321Z' => array('lib'=>"Activités des parcs d'attractions et parcs à thèmes", 'art'=>"Activités des parcs d'attractions et parcs à thèmes"), + '9329Z' => array('lib'=>"Autres activités récréatives et de loisirs", 'art'=>"Autres activités récréatives et de loisirs"), + '9411Z' => array('lib'=>"Activités des organisations patronales et consulaires", 'art'=>"Activités des organisations patronales et consulaires"), + '9412Z' => array('lib'=>"Activités des organisations professionnelles", 'art'=>"Activités des organisations professionnelles"), + '9420Z' => array('lib'=>"Activités des syndicats de salariés", 'art'=>"Activités des syndicats de salariés"), + '9491Z' => array('lib'=>"Activités des organisations religieuses", 'art'=>"Activités des organisations religieuses"), + '9492Z' => array('lib'=>"Activités des organisations politiques", 'art'=>"Activités des organisations politiques"), + '9499Z' => array('lib'=>"Autres organisations fonctionnant par adhésion volontaire", 'art'=>"Autres organisations fonctionnant par adhésion volontaire"), + '9511Z' => array('lib'=>"Réparation d'ordinateurs et d'équipements périphériques", 'art'=>"Réparation d'ordinateurs et d'équipements périphériques"), + '9512Z' => array('lib'=>"Réparation d'équipements de communication", 'art'=>"Réparation d'équipements de communication"), + '9521Z' => array('lib'=>"Réparation de produits électroniques grand public", 'art'=>"Réparation de produits électroniques grand public"), + '9522Z' => array('lib'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin", 'art'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin"), + '9523Z' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '9524Z' => array('lib'=>"Réparation de meubles et d'équipements du foyer", 'art'=>"Réparation de meubles et d'équipements du foyer"), + '9525Z' => array('lib'=>"Réparation d'articles d'horlogerie et de bijouterie", 'art'=>"Réparation d'articles d'horlogerie et de bijouterie"), + '9529Z' => array('lib'=>"Réparation d'autres biens personnels et domestiques", 'art'=>"Réparation d'autres biens personnels et domestiques"), + '9601A' => array('lib'=>"Blanchisserie-teinturerie de gros", 'art'=>"Blanchisserie-teinturerie de gros"), + '9601B' => array('lib'=>"Blanchisserie-teinturerie de détail", 'art'=>"Blanchisserie-teinturerie de détail"), + '9602A' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '9602B' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '9603Z' => array('lib'=>"Services funéraires", 'art'=>"Services funéraires"), + '9604Z' => array('lib'=>"Entretien corporel", 'art'=>"Entretien corporel"), + '9609Z' => array('lib'=>"Autres services personnels nca", 'art'=>"Autres services personnels nca"), + '9700Z' => array('lib'=>"Activités des ménages en tant qu'employeurs de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeurs de personnel domestique"), + '9810Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '9820Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '9900Z' => array('lib'=>"Activités des organisations et organismes extraterritoriaux", 'art'=>"Activités des organisations et organismes extraterritoriaux"), + '0000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + ), + 'APEINSEE' => array( + '000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + '011A' => array('lib'=>"Culture de céréales ; cultures industrielles", 'art'=>"Culture de céréales ; cultures industrielles"), + '011C' => array('lib'=>"Culture de légumes ; maraîchage", 'art'=>"Culture de légumes ; maraîchage"), + '011D' => array('lib'=>"Horticulture ; pépinières", 'art'=>"Horticulture ; pépinières"), + '011F' => array('lib'=>"Culture fruitière", 'art'=>"Culture fruitière"), + '011G' => array('lib'=>"Viticulture", 'art'=>"Viticulture"), + '012A' => array('lib'=>"Elevage de bovins", 'art'=>"Elevage de bovins"), + '012C' => array('lib'=>"Elevage d'ovins, caprins et équidés", 'art'=>"Elevage d'ovins, caprins et équidés"), + '012E' => array('lib'=>"Elevage de porcins", 'art'=>"Elevage de porcins"), + '012G' => array('lib'=>"Elevage de volailles", 'art'=>"Elevage de volailles"), + '012J' => array('lib'=>"Elevage d'autres animaux", 'art'=>"Elevage d'autres animaux"), + '013Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '014A' => array('lib'=>"Services aux cultures productives", 'art'=>"Services aux cultures productives"), + '014B' => array('lib'=>"Réalisation et entretien de plantations ornementales", 'art'=>"Réalisation et entretien de plantations ornementales"), + '014D' => array('lib'=>"Services annexes à l'élevage", 'art'=>"Services annexes à l'élevage"), + '015Z' => array('lib'=>"Chasse", 'art'=>"Chasse"), + '020A' => array('lib'=>"Sylviculture", 'art'=>"Sylviculture"), + '020B' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '020D' => array('lib'=>"Services forestiers", 'art'=>"Services forestiers"), + '050A' => array('lib'=>"Pêche", 'art'=>"Pêche"), + '050C' => array('lib'=>"Pisciculture, aquaculture", 'art'=>"Pisciculture, aquaculture"), + '101Z' => array('lib'=>"Extraction et agglomération de la houille", 'art'=>"Extraction et agglomération de la houille"), + '102Z' => array('lib'=>"Extraction et agglomération du lignite", 'art'=>"Extraction et agglomération du lignite"), + '103Z' => array('lib'=>"Extraction et agglomération de la tourbe", 'art'=>"Extraction et agglomération de la tourbe"), + '111Z' => array('lib'=>"Extraction d'hydrocarbures", 'art'=>"Extraction d'hydrocarbures"), + '112Z' => array('lib'=>"Services annexes à l'extraction d'hydrocarbures", 'art'=>"Services annexes à l'extraction d'hydrocarbures"), + '120Z' => array('lib'=>"Extraction de minerais d'uranium", 'art'=>"Extraction de minerais d'uranium"), + '131Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '132Z' => array('lib'=>"Extraction de minerais de métaux non ferreux", 'art'=>"Extraction de minerais de métaux non ferreux"), + '141A' => array('lib'=>"Extraction de pierres ornementales et de construction", 'art'=>"Extraction de pierres ornementales et de construction"), + '141C' => array('lib'=>"Extraction de calcaire industriel, de gypse et de craie", 'art'=>"Extraction de calcaire industriel, de gypse et de craie"), + '141E' => array('lib'=>"Extraction d'ardoise", 'art'=>"Extraction d'ardoise"), + '142A' => array('lib'=>"Production de sables et de granulats", 'art'=>"Production de sables et de granulats"), + '142C' => array('lib'=>"Extraction d'argiles et de kaolin", 'art'=>"Extraction d'argiles et de kaolin"), + '143Z' => array('lib'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels", 'art'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels"), + '144Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '145Z' => array('lib'=>"Activités extractives n.c.a.", 'art'=>"Activités extractives n.c.a."), + '151A' => array('lib'=>"Production de viandes de boucherie", 'art'=>"Production de viandes de boucherie"), + '151C' => array('lib'=>"Production de viandes de volailles", 'art'=>"Production de viandes de volailles"), + '151E' => array('lib'=>"Préparation industrielle de produits à base de viandes", 'art'=>"Préparation industrielle de produits à base de viandes"), + '151F' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '152Z' => array('lib'=>"Industrie du poisson", 'art'=>"Industrie du poisson"), + '153A' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '153C' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '153E' => array('lib'=>"Transformation et conservation de légumes", 'art'=>"Transformation et conservation de légumes"), + '153F' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '154A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '154C' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '154E' => array('lib'=>"Fabrication de margarine", 'art'=>"Fabrication de margarine"), + '155A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '155B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '155C' => array('lib'=>"Fabrication de fromages", 'art'=>"Fabrication de fromages"), + '155D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '155F' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '156A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '156B' => array('lib'=>"Autres activités de travail des grains", 'art'=>"Autres activités de travail des grains"), + '156D' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '157A' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '157C' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '158A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '158B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '158C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '158D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '158F' => array('lib'=>"Biscotterie, biscuiterie, pâtisserie de conservation", 'art'=>"Biscotterie, biscuiterie, pâtisserie de conservation"), + '158H' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '158K' => array('lib'=>"Chocolaterie, confiserie", 'art'=>"Chocolaterie, confiserie"), + '158M' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '158P' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '158R' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '158T' => array('lib'=>"Fabrication d'aliments adaptés à l'enfant et diététiques", 'art'=>"Fabrication d'aliments adaptés à l'enfant et diététiques"), + '158V' => array('lib'=>"Industries alimentaires n.c.a.", 'art'=>"Industries alimentaires n.c.a."), + '159A' => array('lib'=>"Production d'eaux de vie naturelles", 'art'=>"Production d'eaux de vie naturelles"), + '159B' => array('lib'=>"Fabrication de spiritueux", 'art'=>"Fabrication de spiritueux"), + '159D' => array('lib'=>"Production d'alcool éthylique de fermentation", 'art'=>"Production d'alcool éthylique de fermentation"), + '159F' => array('lib'=>"Champagnisation", 'art'=>"Champagnisation"), + '159G' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '159J' => array('lib'=>"Cidrerie", 'art'=>"Cidrerie"), + '159L' => array('lib'=>"Production d'autres boissons fermentées", 'art'=>"Production d'autres boissons fermentées"), + '159N' => array('lib'=>"Brasserie", 'art'=>"Brasserie"), + '159Q' => array('lib'=>"Malterie", 'art'=>"Malterie"), + '159S' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '159T' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '160Z' => array('lib'=>"Industrie du tabac", 'art'=>"Industrie du tabac"), + '171A' => array('lib'=>"Filature de l'industrie cotonnière", 'art'=>"Filature de l'industrie cotonnière"), + '171C' => array('lib'=>"Filature de l'industrie lainière - cycle cardé", 'art'=>"Filature de l'industrie lainière - cycle cardé"), + '171E' => array('lib'=>"Préparation de la laine", 'art'=>"Préparation de la laine"), + '171F' => array('lib'=>"Filature de l'industrie lainière - cycle peigné", 'art'=>"Filature de l'industrie lainière - cycle peigné"), + '171H' => array('lib'=>"Préparation et filature du lin", 'art'=>"Préparation et filature du lin"), + '171K' => array('lib'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques", 'art'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques"), + '171M' => array('lib'=>"Fabrication de fils à coudre", 'art'=>"Fabrication de fils à coudre"), + '171P' => array('lib'=>"Préparation et filature d'autres fibres", 'art'=>"Préparation et filature d'autres fibres"), + '172A' => array('lib'=>"Tissage de l'industrie cotonnière", 'art'=>"Tissage de l'industrie cotonnière"), + '172C' => array('lib'=>"Tissage de l'industrie lainière - cycle cardé", 'art'=>"Tissage de l'industrie lainière - cycle cardé"), + '172E' => array('lib'=>"Tissage de l'industrie lainière - cycle peigné", 'art'=>"Tissage de l'industrie lainière - cycle peigné"), + '172G' => array('lib'=>"Tissage de soieries", 'art'=>"Tissage de soieries"), + '172J' => array('lib'=>"Tissage d'autres textiles", 'art'=>"Tissage d'autres textiles"), + '173Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '174A' => array('lib'=>"Fabrication de linge de maison et d'articles d'ameublement", 'art'=>"Fabrication de linge de maison et d'articles d'ameublement"), + '174B' => array('lib'=>"Fabrication de petits articles textiles de literie", 'art'=>"Fabrication de petits articles textiles de literie"), + '174C' => array('lib'=>"Fabrication d'autres articles confectionnés en textile", 'art'=>"Fabrication d'autres articles confectionnés en textile"), + '175A' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '175C' => array('lib'=>"Ficellerie, corderie, fabrication de filets", 'art'=>"Ficellerie, corderie, fabrication de filets"), + '175E' => array('lib'=>"Fabrication de non-tissés", 'art'=>"Fabrication de non-tissés"), + '175G' => array('lib'=>"Industries textiles n.c.a.", 'art'=>"Industries textiles n.c.a."), + '176Z' => array('lib'=>"Fabrication d'étoffes à maille", 'art'=>"Fabrication d'étoffes à maille"), + '177A' => array('lib'=>"Fabrication de bas et chaussettes", 'art'=>"Fabrication de bas et chaussettes"), + '177C' => array('lib'=>"Fabrication de pull-overs et articles similaires", 'art'=>"Fabrication de pull-overs et articles similaires"), + '181Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '182A' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '182C' => array('lib'=>"Fabrication de vêtements sur mesure", 'art'=>"Fabrication de vêtements sur mesure"), + '182D' => array('lib'=>"Fabrication de vêtements de dessus pour hommes et garçonnets", 'art'=>"Fabrication de vêtements de dessus pour hommes et garçonnets"), + '182E' => array('lib'=>"Fabrication de vêtements de dessus pour femmes et fillettes", 'art'=>"Fabrication de vêtements de dessus pour femmes et fillettes"), + '182G' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '182J' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '183Z' => array('lib'=>"Industrie des fourrures", 'art'=>"Industrie des fourrures"), + '191Z' => array('lib'=>"Apprêt et tannage des cuirs", 'art'=>"Apprêt et tannage des cuirs"), + '192Z' => array('lib'=>"Fabrication d'articles de voyage et de maroquinerie", 'art'=>"Fabrication d'articles de voyage et de maroquinerie"), + '193Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '201A' => array('lib'=>"Sciage et rabotage du bois", 'art'=>"Sciage et rabotage du bois"), + '201B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '202Z' => array('lib'=>"Fabrication de panneaux de bois", 'art'=>"Fabrication de panneaux de bois"), + '203Z' => array('lib'=>"Fabrication de charpentes et de menuiseries", 'art'=>"Fabrication de charpentes et de menuiseries"), + '204Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '205A' => array('lib'=>"Fabrication d'objets divers en bois", 'art'=>"Fabrication d'objets divers en bois"), + '205C' => array('lib'=>"Fabrication d'objets en liège, vannerie ou sparterie", 'art'=>"Fabrication d'objets en liège, vannerie ou sparterie"), + '211A' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '211C' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '212A' => array('lib'=>"Industrie du carton ondulé", 'art'=>"Industrie du carton ondulé"), + '212B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '212C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '212E' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '212G' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '212J' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '212L' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '221A' => array('lib'=>"Edition de livres", 'art'=>"Edition de livres"), + '221C' => array('lib'=>"Edition de journaux", 'art'=>"Edition de journaux"), + '221E' => array('lib'=>"Edition de revues et périodiques", 'art'=>"Edition de revues et périodiques"), + '221G' => array('lib'=>"Edition d'enregistrements sonores", 'art'=>"Edition d'enregistrements sonores"), + '221J' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '222A' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '222C' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '222E' => array('lib'=>"Reliure", 'art'=>"Reliure"), + '222G' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '222J' => array('lib'=>"Activités graphiques auxiliaires", 'art'=>"Activités graphiques auxiliaires"), + '223A' => array('lib'=>"Reproduction d'enregistrements sonores", 'art'=>"Reproduction d'enregistrements sonores"), + '223C' => array('lib'=>"Reproduction d'enregistrements vidéo", 'art'=>"Reproduction d'enregistrements vidéo"), + '223E' => array('lib'=>"Reproduction d'enregistrements informatiques", 'art'=>"Reproduction d'enregistrements informatiques"), + '231Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '232Z' => array('lib'=>"Raffinage de pétrole", 'art'=>"Raffinage de pétrole"), + '233Z' => array('lib'=>"Elaboration et transformation de matières nucléaires", 'art'=>"Elaboration et transformation de matières nucléaires"), + '241A' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '241C' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '241E' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base"), + '241G' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '241J' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '241L' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '241N' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '242Z' => array('lib'=>"Fabrication de produits agrochimiques", 'art'=>"Fabrication de produits agrochimiques"), + '243Z' => array('lib'=>"Fabrication de peintures et vernis", 'art'=>"Fabrication de peintures et vernis"), + '244A' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '244C' => array('lib'=>"Fabrication de médicaments", 'art'=>"Fabrication de médicaments"), + '244D' => array('lib'=>"Fabrication d'autres produits pharmaceutiques", 'art'=>"Fabrication d'autres produits pharmaceutiques"), + '245A' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '245C' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '246A' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '246C' => array('lib'=>"Fabrication de colles et gélatines", 'art'=>"Fabrication de colles et gélatines"), + '246E' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '246G' => array('lib'=>"Fabrication de produits chimiques pour la photographie", 'art'=>"Fabrication de produits chimiques pour la photographie"), + '246J' => array('lib'=>"Fabrication de supports de données", 'art'=>"Fabrication de supports de données"), + '246L' => array('lib'=>"Fabrication de produits chimiques à usage industriel", 'art'=>"Fabrication de produits chimiques à usage industriel"), + '247Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '251A' => array('lib'=>"Fabrication de pneumatiques", 'art'=>"Fabrication de pneumatiques"), + '251C' => array('lib'=>"Rechapage de pneumatiques", 'art'=>"Rechapage de pneumatiques"), + '251E' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '252A' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '252C' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '252E' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '252G' => array('lib'=>"Fabrication d'articles divers en matières plastiques", 'art'=>"Fabrication d'articles divers en matières plastiques"), + '252H' => array('lib'=>"Fabrication de pièces techniques en matières plastiques", 'art'=>"Fabrication de pièces techniques en matières plastiques"), + '261A' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '261C' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '261E' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '261G' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '261J' => array('lib'=>"Fabrication et façonnage d'articles techniques en verre", 'art'=>"Fabrication et façonnage d'articles techniques en verre"), + '261K' => array('lib'=>"Fabrication d'isolateurs en verre", 'art'=>"Fabrication d'isolateurs en verre"), + '262A' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '262C' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '262E' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '262G' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '262J' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '262L' => array('lib'=>"Fabrication de produits céramiques réfractaires", 'art'=>"Fabrication de produits céramiques réfractaires"), + '263Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '264A' => array('lib'=>"Fabrication de briques", 'art'=>"Fabrication de briques"), + '264B' => array('lib'=>"Fabrication de tuiles", 'art'=>"Fabrication de tuiles"), + '264C' => array('lib'=>"Fabrication de produits divers en terre cuite", 'art'=>"Fabrication de produits divers en terre cuite"), + '265A' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '265C' => array('lib'=>"Fabrication de chaux", 'art'=>"Fabrication de chaux"), + '265E' => array('lib'=>"Fabrication de plâtre", 'art'=>"Fabrication de plâtre"), + '266A' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '266C' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '266E' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '266G' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '266J' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '266L' => array('lib'=>"Fabrication d'autres ouvrages en béton ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton ou en plâtre"), + '267Z' => array('lib'=>"Taille, façonnage et finissage de pierres ornementales et de construction", 'art'=>"Taille, façonnage et finissage de pierres ornementales et de construction"), + '268A' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '268C' => array('lib'=>"Fabrication de produits minéraux non métalliques n.c.a.", 'art'=>"Fabrication de produits minéraux non métalliques n.c.a."), + '271Y' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '271Z' => array('lib'=>"Sidérurgie (CECA)", 'art'=>"Sidérurgie (CECA)"), + '272A' => array('lib'=>"Fabrication de tubes en fonte", 'art'=>"Fabrication de tubes en fonte"), + '272C' => array('lib'=>"Fabrication de tubes en acier", 'art'=>"Fabrication de tubes en acier"), + '273A' => array('lib'=>"Etirage à froid", 'art'=>"Etirage à froid"), + '273C' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '273E' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '273G' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '273J' => array('lib'=>"Production de ferroalliages et autres produits non CECA", 'art'=>"Production de ferroalliages et autres produits non CECA"), + '274A' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '274C' => array('lib'=>"Production d'aluminium", 'art'=>"Production d'aluminium"), + '274D' => array('lib'=>"Première transformation de l'aluminium", 'art'=>"Première transformation de l'aluminium"), + '274F' => array('lib'=>"Production de plomb, de zinc ou d'étain", 'art'=>"Production de plomb, de zinc ou d'étain"), + '274G' => array('lib'=>"Première transformation du plomb, du zinc ou de l'étain", 'art'=>"Première transformation du plomb, du zinc ou de l'étain"), + '274J' => array('lib'=>"Production de cuivre", 'art'=>"Production de cuivre"), + '274K' => array('lib'=>"Première transformation du cuivre", 'art'=>"Première transformation du cuivre"), + '274M' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '275A' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '275C' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '275E' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '275G' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '281A' => array('lib'=>"Fabrication de constructions métalliques", 'art'=>"Fabrication de constructions métalliques"), + '281C' => array('lib'=>"Fabrication de menuiseries et fermetures métalliques", 'art'=>"Fabrication de menuiseries et fermetures métalliques"), + '282A' => array('lib'=>"Fabrication de réservoirs et citernes métalliques", 'art'=>"Fabrication de réservoirs et citernes métalliques"), + '282B' => array('lib'=>"Fabrication de bouteilles pour gaz comprimés", 'art'=>"Fabrication de bouteilles pour gaz comprimés"), + '282C' => array('lib'=>"Fabrication de réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication de réservoirs, citernes et conteneurs métalliques"), + '282D' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '283A' => array('lib'=>"Fabrication de générateurs de vapeur", 'art'=>"Fabrication de générateurs de vapeur"), + '283B' => array('lib'=>"Chaudronnerie nucléaire", 'art'=>"Chaudronnerie nucléaire"), + '283C' => array('lib'=>"Chaudronnerie-tuyauterie", 'art'=>"Chaudronnerie-tuyauterie"), + '284A' => array('lib'=>"Forge, estampage, matriçage", 'art'=>"Forge, estampage, matriçage"), + '284B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '284C' => array('lib'=>"Métallurgie des poudres", 'art'=>"Métallurgie des poudres"), + '285A' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '285C' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '285D' => array('lib'=>"Mécanique générale", 'art'=>"Mécanique générale"), + '286A' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '286C' => array('lib'=>"Fabrication d'outillage à main", 'art'=>"Fabrication d'outillage à main"), + '286D' => array('lib'=>"Fabrication d'outillage mécanique", 'art'=>"Fabrication d'outillage mécanique"), + '286F' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '287A' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '287C' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '287E' => array('lib'=>"Fabrication d'articles en fils métalliques", 'art'=>"Fabrication d'articles en fils métalliques"), + '287G' => array('lib'=>"Visserie et boulonnerie", 'art'=>"Visserie et boulonnerie"), + '287H' => array('lib'=>"Fabrication de ressorts", 'art'=>"Fabrication de ressorts"), + '287J' => array('lib'=>"Fabrication de chaînes", 'art'=>"Fabrication de chaînes"), + '287L' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '287M' => array('lib'=>"Fabrication de coffres-forts", 'art'=>"Fabrication de coffres-forts"), + '287N' => array('lib'=>"Fabrication de petits articles métalliques", 'art'=>"Fabrication de petits articles métalliques"), + '287P' => array('lib'=>"Fabrication d'articles métalliques n.c.a.", 'art'=>"Fabrication d'articles métalliques n.c.a."), + '287Q' => array('lib'=>"Fabrication d'articles métalliques divers", 'art'=>"Fabrication d'articles métalliques divers"), + '291A' => array('lib'=>"Fabrication de moteurs et turbines", 'art'=>"Fabrication de moteurs et turbines"), + '291B' => array('lib'=>"Fabrication de pompes", 'art'=>"Fabrication de pompes"), + '291C' => array('lib'=>"Fabrication de pompes et compresseurs", 'art'=>"Fabrication de pompes et compresseurs"), + '291D' => array('lib'=>"Fabrication de transmissions hydrauliques et pneumatiques", 'art'=>"Fabrication de transmissions hydrauliques et pneumatiques"), + '291E' => array('lib'=>"Fabrication de compresseurs", 'art'=>"Fabrication de compresseurs"), + '291F' => array('lib'=>"Fabrication d'articles de robinetterie", 'art'=>"Fabrication d'articles de robinetterie"), + '291H' => array('lib'=>"Fabrication de roulements", 'art'=>"Fabrication de roulements"), + '291J' => array('lib'=>"Fabrication d'organes mécaniques de transmission", 'art'=>"Fabrication d'organes mécaniques de transmission"), + '292A' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '292C' => array('lib'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques", 'art'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques"), + '292D' => array('lib'=>"Fabrication d'équipements de levage et de manutention", 'art'=>"Fabrication d'équipements de levage et de manutention"), + '292F' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '292H' => array('lib'=>"Fabrication d'équipements d'emballage et de conditionnement", 'art'=>"Fabrication d'équipements d'emballage et de conditionnement"), + '292J' => array('lib'=>"Fabrication d'appareils de pesage", 'art'=>"Fabrication d'appareils de pesage"), + '292K' => array('lib'=>"Fabrication de machines diverses d'usage général", 'art'=>"Fabrication de machines diverses d'usage général"), + '292L' => array('lib'=>"Fabrication de matériel pour les industries chimiques", 'art'=>"Fabrication de matériel pour les industries chimiques"), + '292M' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '293A' => array('lib'=>"Fabrication de tracteurs agricoles", 'art'=>"Fabrication de tracteurs agricoles"), + '293C' => array('lib'=>"Réparation de matériel agricole", 'art'=>"Réparation de matériel agricole"), + '293D' => array('lib'=>"Fabrication de matériel agricole", 'art'=>"Fabrication de matériel agricole"), + '294A' => array('lib'=>"Fabrication de machines-outils à métaux", 'art'=>"Fabrication de machines-outils à métaux"), + '294B' => array('lib'=>"Fabrication de machines-outils à bois", 'art'=>"Fabrication de machines-outils à bois"), + '294C' => array('lib'=>"Fabrication de machines-outils portatives à moteur incorporé", 'art'=>"Fabrication de machines-outils portatives à moteur incorporé"), + '294D' => array('lib'=>"Fabrication de matériel de soudage", 'art'=>"Fabrication de matériel de soudage"), + '294E' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '295A' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '295B' => array('lib'=>"Fabrication de matériels de mines pour l'extraction", 'art'=>"Fabrication de matériels de mines pour l'extraction"), + '295C' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '295D' => array('lib'=>"Fabrication de matériels de travaux publics", 'art'=>"Fabrication de matériels de travaux publics"), + '295E' => array('lib'=>"Fabrication de machines pour l'industrie agroalimentaire", 'art'=>"Fabrication de machines pour l'industrie agroalimentaire"), + '295G' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '295J' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '295L' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '295M' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '295N' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '295P' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '295Q' => array('lib'=>"Fabrication de machines d'assemblage automatique", 'art'=>"Fabrication de machines d'assemblage automatique"), + '295R' => array('lib'=>"Fabrication machines spécialisées diverses", 'art'=>"Fabrication machines spécialisées diverses"), + '296A' => array('lib'=>"Fabrication d'armement", 'art'=>"Fabrication d'armement"), + '296B' => array('lib'=>"Fabrication d'armes de chasse, de tir et de défense", 'art'=>"Fabrication d'armes de chasse, de tir et de défense"), + '297A' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '297C' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '300A' => array('lib'=>"Fabrication de machines de bureau", 'art'=>"Fabrication de machines de bureau"), + '300C' => array('lib'=>"Fabrication d'ordinateurs et d'autres équipements informatiques", 'art'=>"Fabrication d'ordinateurs et d'autres équipements informatiques"), + '311A' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance"), + '311B' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance"), + '311C' => array('lib'=>"Réparation de matériels électriques", 'art'=>"Réparation de matériels électriques"), + '312A' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension"), + '312B' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension"), + '313Z' => array('lib'=>"Fabrication de fils et câbles isolés", 'art'=>"Fabrication de fils et câbles isolés"), + '314Z' => array('lib'=>"Fabrication d'accumulateurs et de piles électriques", 'art'=>"Fabrication d'accumulateurs et de piles électriques"), + '315A' => array('lib'=>"Fabrication de lampes", 'art'=>"Fabrication de lampes"), + '315B' => array('lib'=>"Fabrication d'appareils électriques autonomes de sécurité", 'art'=>"Fabrication d'appareils électriques autonomes de sécurité"), + '315C' => array('lib'=>"Fabrication d'appareils d'éclairage", 'art'=>"Fabrication d'appareils d'éclairage"), + '316A' => array('lib'=>"Fabrication de matériels électriques pour moteurs et véhicules", 'art'=>"Fabrication de matériels électriques pour moteurs et véhicules"), + '316C' => array('lib'=>"Fabrication de matériel électromagnétique industriel", 'art'=>"Fabrication de matériel électromagnétique industriel"), + '316D' => array('lib'=>"Fabrication de matériels électriques n.c.a.", 'art'=>"Fabrication de matériels électriques n.c.a."), + '321A' => array('lib'=>"Fabrication de composants passifs et de condensateurs", 'art'=>"Fabrication de composants passifs et de condensateurs"), + '321B' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321C' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321D' => array('lib'=>"Assemblage de cartes électroniques pour compte de tiers", 'art'=>"Assemblage de cartes électroniques pour compte de tiers"), + '322A' => array('lib'=>"Fabrication d'équipements d'émission et de transmission hertzienne", 'art'=>"Fabrication d'équipements d'émission et de transmission hertzienne"), + '322B' => array('lib'=>"Fabrication d'appareils de téléphonie", 'art'=>"Fabrication d'appareils de téléphonie"), + '323Z' => array('lib'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image", 'art'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image"), + '331A' => array('lib'=>"Fabrication de matériel d'imagerie médicale et de radiologie", 'art'=>"Fabrication de matériel d'imagerie médicale et de radiologie"), + '331B' => array('lib'=>"Fabrication d'appareils médicochirurgicaux", 'art'=>"Fabrication d'appareils médicochirurgicaux"), + '332A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '332B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '333Z' => array('lib'=>"Fabrication d'équipements de contrôle des processus industriels", 'art'=>"Fabrication d'équipements de contrôle des processus industriels"), + '334A' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '334B' => array('lib'=>"Fabrication d'instruments d'optique et de matériel photographique", 'art'=>"Fabrication d'instruments d'optique et de matériel photographique"), + '335Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '341Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '342A' => array('lib'=>"Fabrication de carrosseries automobiles", 'art'=>"Fabrication de carrosseries automobiles"), + '342B' => array('lib'=>"Fabrications de caravanes et véhicules de loisirs", 'art'=>"Fabrications de caravanes et véhicules de loisirs"), + '343Z' => array('lib'=>"Fabrication d'équipements automobiles", 'art'=>"Fabrication d'équipements automobiles"), + '351A' => array('lib'=>"Construction de bâtiments de guerre", 'art'=>"Construction de bâtiments de guerre"), + '351B' => array('lib'=>"Construction de navires civils", 'art'=>"Construction de navires civils"), + '351C' => array('lib'=>"Réparation navale", 'art'=>"Réparation navale"), + '351E' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '352Z' => array('lib'=>"Construction de matériel ferroviaire roulant", 'art'=>"Construction de matériel ferroviaire roulant"), + '353A' => array('lib'=>"Construction de moteurs pour aéronefs", 'art'=>"Construction de moteurs pour aéronefs"), + '353B' => array('lib'=>"Construction de cellules d'aéronefs", 'art'=>"Construction de cellules d'aéronefs"), + '353C' => array('lib'=>"Construction de lanceurs et engins spatiaux", 'art'=>"Construction de lanceurs et engins spatiaux"), + '354A' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '354C' => array('lib'=>"Fabrication de bicyclettes", 'art'=>"Fabrication de bicyclettes"), + '354E' => array('lib'=>"Fabrication de véhicules pour invalides", 'art'=>"Fabrication de véhicules pour invalides"), + '355Z' => array('lib'=>"Fabrication de matériels de transport n.c.a.", 'art'=>"Fabrication de matériels de transport n.c.a."), + '361A' => array('lib'=>"Fabrication de sièges", 'art'=>"Fabrication de sièges"), + '361C' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '361E' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '361G' => array('lib'=>"Fabrication de meubles meublants", 'art'=>"Fabrication de meubles meublants"), + '361H' => array('lib'=>"Fabrication de meubles de jardin et d'extérieur", 'art'=>"Fabrication de meubles de jardin et d'extérieur"), + '361J' => array('lib'=>"Fabrication de meubles n.c.a.", 'art'=>"Fabrication de meubles n.c.a."), + '361K' => array('lib'=>"Industries connexes de l'ameublement", 'art'=>"Industries connexes de l'ameublement"), + '361M' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '362A' => array('lib'=>"Fabrication de monnaies", 'art'=>"Fabrication de monnaies"), + '362C' => array('lib'=>"Bijouterie, joaillerie, orfèvrerie", 'art'=>"Bijouterie, joaillerie, orfèvrerie"), + '363Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '364Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '365Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '366A' => array('lib'=>"Bijouterie fantaisie", 'art'=>"Bijouterie fantaisie"), + '366C' => array('lib'=>"Industrie de la brosserie", 'art'=>"Industrie de la brosserie"), + '366E' => array('lib'=>"Autres activités manufacturières n.c.a.", 'art'=>"Autres activités manufacturières n.c.a."), + '371Z' => array('lib'=>"Récupération de matières métalliques recyclables", 'art'=>"Récupération de matières métalliques recyclables"), + '372Z' => array('lib'=>"Récupération de matières non métalliques recyclables", 'art'=>"Récupération de matières non métalliques recyclables"), + '401A' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '401C' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '401E' => array('lib'=>"Distribution et commerce d'électricité", 'art'=>"Distribution et commerce d'électricité"), + '401Z' => array('lib'=>"Production et distribution d'électricité", 'art'=>"Production et distribution d'électricité"), + '402A' => array('lib'=>"Production de combustible gazeux", 'art'=>"Production de combustible gazeux"), + '402C' => array('lib'=>"Distribution de combustibles gazeux", 'art'=>"Distribution de combustibles gazeux"), + '402Z' => array('lib'=>"Production et distribution de combustibles gazeux", 'art'=>"Production et distribution de combustibles gazeux"), + '403Z' => array('lib'=>"Production et distribution de chaleur", 'art'=>"Production et distribution de chaleur"), + '410Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '451A' => array('lib'=>"Terrassements divers, démolition", 'art'=>"Terrassements divers, démolition"), + '451B' => array('lib'=>"Terrassements en grande masse", 'art'=>"Terrassements en grande masse"), + '451D' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '452A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '452B' => array('lib'=>"Construction de bâtiments divers", 'art'=>"Construction de bâtiments divers"), + '452C' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '452D' => array('lib'=>"Travaux souterrains", 'art'=>"Travaux souterrains"), + '452E' => array('lib'=>"Réalisation de réseaux", 'art'=>"Réalisation de réseaux"), + '452F' => array('lib'=>"Construction de lignes électriques et de télécommunication", 'art'=>"Construction de lignes électriques et de télécommunication"), + '452J' => array('lib'=>"Réalisation de couvertures par éléments", 'art'=>"Réalisation de couvertures par éléments"), + '452K' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '452L' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '452N' => array('lib'=>"Construction de voies ferrées", 'art'=>"Construction de voies ferrées"), + '452P' => array('lib'=>"Construction de chaussées routières et de sols sportifs", 'art'=>"Construction de chaussées routières et de sols sportifs"), + '452R' => array('lib'=>"Travaux maritimes et fluviaux", 'art'=>"Travaux maritimes et fluviaux"), + '452T' => array('lib'=>"Levage, montage", 'art'=>"Levage, montage"), + '452U' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '452V' => array('lib'=>"Travaux de maçonnerie générale", 'art'=>"Travaux de maçonnerie générale"), + '453A' => array('lib'=>"Travaux d'installation électrique", 'art'=>"Travaux d'installation électrique"), + '453C' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '453E' => array('lib'=>"Installation d'eau et de gaz", 'art'=>"Installation d'eau et de gaz"), + '453F' => array('lib'=>"Installation d'équipements thermiques et de climatisation", 'art'=>"Installation d'équipements thermiques et de climatisation"), + '453H' => array('lib'=>"Autres travaux d'installation", 'art'=>"Autres travaux d'installation"), + '454A' => array('lib'=>"Plâtrerie", 'art'=>"Plâtrerie"), + '454C' => array('lib'=>"Menuiserie bois et matières plastiques", 'art'=>"Menuiserie bois et matières plastiques"), + '454D' => array('lib'=>"Menuiserie métallique ; serrurerie", 'art'=>"Menuiserie métallique ; serrurerie"), + '454F' => array('lib'=>"Revêtement des sols et des murs", 'art'=>"Revêtement des sols et des murs"), + '454H' => array('lib'=>"Miroiterie de bâtiment, vitrerie", 'art'=>"Miroiterie de bâtiment, vitrerie"), + '454J' => array('lib'=>"Peinture", 'art'=>"Peinture"), + '454L' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '454M' => array('lib'=>"Travaux de finition n.c.a.", 'art'=>"Travaux de finition n.c.a."), + '455Z' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '501Z' => array('lib'=>"Commerce de véhicules automobiles", 'art'=>"Commerce de véhicules automobiles"), + '502Z' => array('lib'=>"Entretien et réparation de véhicules automobiles", 'art'=>"Entretien et réparation de véhicules automobiles"), + '503A' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '503B' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '504Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '505Z' => array('lib'=>"Commerce de détail de carburants", 'art'=>"Commerce de détail de carburants"), + '511A' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits"), + '511C' => array('lib'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '511E' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '511G' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '511J' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '511L' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir"), + '511N' => array('lib'=>"Intermédiaires du commerce en produits alimentaires", 'art'=>"Intermédiaires du commerce en produits alimentaires"), + '511P' => array('lib'=>"Centrales d'achats alimentaires", 'art'=>"Centrales d'achats alimentaires"), + '511R' => array('lib'=>"Autres intermédiaires spécialisés du commerce", 'art'=>"Autres intermédiaires spécialisés du commerce"), + '511T' => array('lib'=>"Intermédiaires non spécialisés du commerce", 'art'=>"Intermédiaires non spécialisés du commerce"), + '511U' => array('lib'=>"Centrales d'achats non alimentaires", 'art'=>"Centrales d'achats non alimentaires"), + '512A' => array('lib'=>"Commerce de gros de céréales et aliments pour le bétail", 'art'=>"Commerce de gros de céréales et aliments pour le bétail"), + '512C' => array('lib'=>"Commerce de gros de fleurs et plantes", 'art'=>"Commerce de gros de fleurs et plantes"), + '512E' => array('lib'=>"Commerce de gros d'animaux vivants", 'art'=>"Commerce de gros d'animaux vivants"), + '512G' => array('lib'=>"Commerce de gros de cuirs et peaux", 'art'=>"Commerce de gros de cuirs et peaux"), + '512J' => array('lib'=>"Commerce de gros de tabac non manufacturé", 'art'=>"Commerce de gros de tabac non manufacturé"), + '513A' => array('lib'=>"Commerce de gros de fruits et légumes", 'art'=>"Commerce de gros de fruits et légumes"), + '513C' => array('lib'=>"Commerce de gros de viandes de boucherie", 'art'=>"Commerce de gros de viandes de boucherie"), + '513D' => array('lib'=>"Commerce de gros de produits à base de viande", 'art'=>"Commerce de gros de produits à base de viande"), + '513E' => array('lib'=>"Commerce de gros de volailles et gibiers", 'art'=>"Commerce de gros de volailles et gibiers"), + '513G' => array('lib'=>"Commerce de gros de produits laitiers, oeufs, huiles", 'art'=>"Commerce de gros de produits laitiers, oeufs, huiles"), + '513J' => array('lib'=>"Commerce de gros de boissons", 'art'=>"Commerce de gros de boissons"), + '513L' => array('lib'=>"Commerce de gros de tabac", 'art'=>"Commerce de gros de tabac"), + '513N' => array('lib'=>"Commerce de gros de sucre, chocolat et confiserie", 'art'=>"Commerce de gros de sucre, chocolat et confiserie"), + '513Q' => array('lib'=>"Commerce de gros de café, thé, cacao et épices", 'art'=>"Commerce de gros de café, thé, cacao et épices"), + '513S' => array('lib'=>"Commerce de gros de poissons, crustacés et mollusques", 'art'=>"Commerce de gros de poissons, crustacés et mollusques"), + '513T' => array('lib'=>"Commerces de gros alimentaires spécialisés divers", 'art'=>"Commerces de gros alimentaires spécialisés divers"), + '513V' => array('lib'=>"Commerce de gros de produits surgelés", 'art'=>"Commerce de gros de produits surgelés"), + '513W' => array('lib'=>"Commerce de gros alimentaire non spécialisé", 'art'=>"Commerce de gros alimentaire non spécialisé"), + '514A' => array('lib'=>"Commerce de gros de textiles", 'art'=>"Commerce de gros de textiles"), + '514C' => array('lib'=>"Commerce de gros d'habillement", 'art'=>"Commerce de gros d'habillement"), + '514D' => array('lib'=>"Commerce de gros de la chaussure", 'art'=>"Commerce de gros de la chaussure"), + '514F' => array('lib'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions", 'art'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions"), + '514H' => array('lib'=>"Commerce de gros de vaisselle et verrerie de ménage", 'art'=>"Commerce de gros de vaisselle et verrerie de ménage"), + '514J' => array('lib'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat", 'art'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat"), + '514L' => array('lib'=>"Commerce de gros de parfumerie et de produits de beauté", 'art'=>"Commerce de gros de parfumerie et de produits de beauté"), + '514N' => array('lib'=>"Commerce de gros de produits pharmaceutiques", 'art'=>"Commerce de gros de produits pharmaceutiques"), + '514Q' => array('lib'=>"Commerce de gros de papeterie", 'art'=>"Commerce de gros de papeterie"), + '514R' => array('lib'=>"Commerce de gros de jouets", 'art'=>"Commerce de gros de jouets"), + '514S' => array('lib'=>"Autres commerces de gros de biens de consommation", 'art'=>"Autres commerces de gros de biens de consommation"), + '515A' => array('lib'=>"Commerce de gros de combustibles", 'art'=>"Commerce de gros de combustibles"), + '515C' => array('lib'=>"Commerce de gros de minerais et métaux", 'art'=>"Commerce de gros de minerais et métaux"), + '515E' => array('lib'=>"Commerce de gros de bois et de produits dérivés", 'art'=>"Commerce de gros de bois et de produits dérivés"), + '515F' => array('lib'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires", 'art'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires"), + '515H' => array('lib'=>"Commerce de gros de quincaillerie", 'art'=>"Commerce de gros de quincaillerie"), + '515J' => array('lib'=>"Commerce de gros de fournitures pour plomberie et chauffage", 'art'=>"Commerce de gros de fournitures pour plomberie et chauffage"), + '515L' => array('lib'=>"Commerce de gros de produits chimiques", 'art'=>"Commerce de gros de produits chimiques"), + '515N' => array('lib'=>"Commerce de gros d'autres produits intermédiaires", 'art'=>"Commerce de gros d'autres produits intermédiaires"), + '515Q' => array('lib'=>"Commerce de gros de déchets et débris", 'art'=>"Commerce de gros de déchets et débris"), + '516A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '516C' => array('lib'=>"Commerce de gros d'équipements pour la construction", 'art'=>"Commerce de gros d'équipements pour la construction"), + '516E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '516G' => array('lib'=>"Commerce de gros de machines de bureau et de matériel informatique", 'art'=>"Commerce de gros de machines de bureau et de matériel informatique"), + '516J' => array('lib'=>"Commerce de gros de matériel électrique et électronique", 'art'=>"Commerce de gros de matériel électrique et électronique"), + '516K' => array('lib'=>"Commerce gros fournitures et équipements industriels divers", 'art'=>"Commerce gros fournitures et équipements industriels divers"), + '516L' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '516N' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '517Z' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '518A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '518C' => array('lib'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil"), + '518E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '518G' => array('lib'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels", 'art'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels"), + '518H' => array('lib'=>"Commerce de gros d'autres machines et équipements de bureau", 'art'=>"Commerce de gros d'autres machines et équipements de bureau"), + '518J' => array('lib'=>"Commerce de gros de composants et d'autres équipements électroniques", 'art'=>"Commerce de gros de composants et d'autres équipements électroniques"), + '518L' => array('lib'=>"Commerce de gros de matériel électrique", 'art'=>"Commerce de gros de matériel électrique"), + '518M' => array('lib'=>"Commerce de gros de fournitures et équipements industriels divers", 'art'=>"Commerce de gros de fournitures et équipements industriels divers"), + '518N' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '518P' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '519A' => array('lib'=>"Autres commerces de gros spécialisés", 'art'=>"Autres commerces de gros spécialisés"), + '519B' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '521A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '521B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '521C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '521D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '521E' => array('lib'=>"Magasins populaires", 'art'=>"Magasins populaires"), + '521F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '521H' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '521J' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '522A' => array('lib'=>"Commerce de détail de fruits et légumes", 'art'=>"Commerce de détail de fruits et légumes"), + '522C' => array('lib'=>"Commerce de détail de viandes et produits à base de viande", 'art'=>"Commerce de détail de viandes et produits à base de viande"), + '522E' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques", 'art'=>"Commerce de détail de poissons, crustacés et mollusques"), + '522G' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie"), + '522J' => array('lib'=>"Commerce de détail de boissons", 'art'=>"Commerce de détail de boissons"), + '522L' => array('lib'=>"Commerce de détail de tabac", 'art'=>"Commerce de détail de tabac"), + '522N' => array('lib'=>"Commerce de détail de produits laitiers", 'art'=>"Commerce de détail de produits laitiers"), + '522P' => array('lib'=>"Commerces de détail alimentaires spécialisés divers", 'art'=>"Commerces de détail alimentaires spécialisés divers"), + '523A' => array('lib'=>"Commerce de détail de produits pharmaceutiques", 'art'=>"Commerce de détail de produits pharmaceutiques"), + '523C' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques"), + '523E' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté", 'art'=>"Commerce de détail de parfumerie et de produits de beauté"), + '524A' => array('lib'=>"Commerce de détail de textiles", 'art'=>"Commerce de détail de textiles"), + '524C' => array('lib'=>"Commerce de détail d'habillement", 'art'=>"Commerce de détail d'habillement"), + '524E' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '524F' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '524H' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '524J' => array('lib'=>"Commerce de détail d'équipement du foyer", 'art'=>"Commerce de détail d'équipement du foyer"), + '524L' => array('lib'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision", 'art'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision"), + '524N' => array('lib'=>"Commerce de détail de quincaillerie", 'art'=>"Commerce de détail de quincaillerie"), + '524P' => array('lib'=>"Commerce de détail de bricolage", 'art'=>"Commerce de détail de bricolage"), + '524R' => array('lib'=>"Commerce de détail de livres, journaux et papeterie", 'art'=>"Commerce de détail de livres, journaux et papeterie"), + '524T' => array('lib'=>"Commerce de détail d'optique et de photographie", 'art'=>"Commerce de détail d'optique et de photographie"), + '524U' => array('lib'=>"Commerce de détail de revêtements de sols et de murs", 'art'=>"Commerce de détail de revêtements de sols et de murs"), + '524V' => array('lib'=>"Commerce de détail d'horlogerie et de bijouterie", 'art'=>"Commerce de détail d'horlogerie et de bijouterie"), + '524W' => array('lib'=>"Commerce de détail d'articles de sport et de loisir", 'art'=>"Commerce de détail d'articles de sport et de loisir"), + '524X' => array('lib'=>"Commerce de détail de fleurs", 'art'=>"Commerce de détail de fleurs"), + '524Y' => array('lib'=>"Commerce de détail de charbons et combustibles", 'art'=>"Commerce de détail de charbons et combustibles"), + '524Z' => array('lib'=>"Commerces de détail divers en magasin spécialisé", 'art'=>"Commerces de détail divers en magasin spécialisé"), + '525Z' => array('lib'=>"Commerce de détail de biens d'occasion", 'art'=>"Commerce de détail de biens d'occasion"), + '526A' => array('lib'=>"Vente par correspondance sur catalogue général", 'art'=>"Vente par correspondance sur catalogue général"), + '526B' => array('lib'=>"Vente par correspondance spécialisée", 'art'=>"Vente par correspondance spécialisée"), + '526D' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '526E' => array('lib'=>"Commerce de détail non alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail non alimentaire sur éventaires et marchés"), + '526G' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '526H' => array('lib'=>"Vente par automate", 'art'=>"Vente par automate"), + '527A' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '527C' => array('lib'=>"Réparation de matériel électronique grand public", 'art'=>"Réparation de matériel électronique grand public"), + '527D' => array('lib'=>"Réparation d'appareils électroménagers", 'art'=>"Réparation d'appareils électroménagers"), + '527F' => array('lib'=>"Réparation de montres, horloges et bijoux", 'art'=>"Réparation de montres, horloges et bijoux"), + '527H' => array('lib'=>"Réparation d'articles personnels et domestiques n.c.a.", 'art'=>"Réparation d'articles personnels et domestiques n.c.a."), + '551A' => array('lib'=>"Hôtels touristiques avec restaurant", 'art'=>"Hôtels touristiques avec restaurant"), + '551C' => array('lib'=>"Hôtels touristiques sans restaurant", 'art'=>"Hôtels touristiques sans restaurant"), + '551D' => array('lib'=>"Hôtels de préfecture", 'art'=>"Hôtels de préfecture"), + '551E' => array('lib'=>"Autres hôtels", 'art'=>"Autres hôtels"), + '552A' => array('lib'=>"Auberges de jeunesse et refuges", 'art'=>"Auberges de jeunesse et refuges"), + '552C' => array('lib'=>"Exploitation de terrains de camping", 'art'=>"Exploitation de terrains de camping"), + '552E' => array('lib'=>"Autre hébergement touristique", 'art'=>"Autre hébergement touristique"), + '552F' => array('lib'=>"Hébergement collectif non touristique", 'art'=>"Hébergement collectif non touristique"), + '553A' => array('lib'=>"Restauration de type traditionnel", 'art'=>"Restauration de type traditionnel"), + '553B' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '554A' => array('lib'=>"Cafés tabacs", 'art'=>"Cafés tabacs"), + '554B' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '554C' => array('lib'=>"Discothèques", 'art'=>"Discothèques"), + '555A' => array('lib'=>"Cantines et restaurants d'entreprises", 'art'=>"Cantines et restaurants d'entreprises"), + '555C' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '555D' => array('lib'=>"Traiteurs, organisation de réceptions", 'art'=>"Traiteurs, organisation de réceptions"), + '601Z' => array('lib'=>"Transports ferroviaires", 'art'=>"Transports ferroviaires"), + '602A' => array('lib'=>"Transports urbains de voyageurs", 'art'=>"Transports urbains de voyageurs"), + '602B' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '602C' => array('lib'=>"Téléphériques, remontées mécaniques", 'art'=>"Téléphériques, remontées mécaniques"), + '602E' => array('lib'=>"Transport de voyageurs par taxis", 'art'=>"Transport de voyageurs par taxis"), + '602G' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '602L' => array('lib'=>"Transports routiers de marchandises de proximité", 'art'=>"Transports routiers de marchandises de proximité"), + '602M' => array('lib'=>"Transports routiers de marchandises interurbains", 'art'=>"Transports routiers de marchandises interurbains"), + '602N' => array('lib'=>"Déménagement", 'art'=>"Déménagement"), + '602P' => array('lib'=>"Location de camions avec conducteur", 'art'=>"Location de camions avec conducteur"), + '603Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '611A' => array('lib'=>"Transports maritimes", 'art'=>"Transports maritimes"), + '611B' => array('lib'=>"Transports côtiers", 'art'=>"Transports côtiers"), + '612Z' => array('lib'=>"Transports fluviaux", 'art'=>"Transports fluviaux"), + '621Z' => array('lib'=>"Transports aériens réguliers", 'art'=>"Transports aériens réguliers"), + '622Z' => array('lib'=>"Transports aériens non réguliers", 'art'=>"Transports aériens non réguliers"), + '623Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '631A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '631B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '631D' => array('lib'=>"Entreposage frigorifique", 'art'=>"Entreposage frigorifique"), + '631E' => array('lib'=>"Entreposage non frigorifique", 'art'=>"Entreposage non frigorifique"), + '632A' => array('lib'=>"Gestion d'infrastructures de transports terrestres", 'art'=>"Gestion d'infrastructures de transports terrestres"), + '632C' => array('lib'=>"Services portuaires, maritimes et fluviaux", 'art'=>"Services portuaires, maritimes et fluviaux"), + '632E' => array('lib'=>"Services aéroportuaires", 'art'=>"Services aéroportuaires"), + '633Z' => array('lib'=>"Agences de voyage", 'art'=>"Agences de voyage"), + '634A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '634B' => array('lib'=>"Affrètement", 'art'=>"Affrètement"), + '634C' => array('lib'=>"Organisation des transports internationaux", 'art'=>"Organisation des transports internationaux"), + '641A' => array('lib'=>"Postes nationales", 'art'=>"Postes nationales"), + '641C' => array('lib'=>"Autres activités de courrier", 'art'=>"Autres activités de courrier"), + '642A' => array('lib'=>"Télécommunications nationales", 'art'=>"Télécommunications nationales"), + '642B' => array('lib'=>"Autres activités de télécommunications", 'art'=>"Autres activités de télécommunications"), + '642C' => array('lib'=>"Télécommunications (hors transmissions audiovisuelles)", 'art'=>"Télécommunications (hors transmissions audiovisuelles)"), + '642D' => array('lib'=>"Transmission d'émissions de radio et de télévision", 'art'=>"Transmission d'émissions de radio et de télévision"), + '651A' => array('lib'=>"Banque centrale", 'art'=>"Banque centrale"), + '651C' => array('lib'=>"Banques", 'art'=>"Banques"), + '651D' => array('lib'=>"Banques mutualistes", 'art'=>"Banques mutualistes"), + '651E' => array('lib'=>"Caisses d'épargne", 'art'=>"Caisses d'épargne"), + '651F' => array('lib'=>"Intermédiations monétaires n.c.a.", 'art'=>"Intermédiations monétaires n.c.a."), + '652A' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '652C' => array('lib'=>"Distribution de crédit", 'art'=>"Distribution de crédit"), + '652E' => array('lib'=>"Organismes de placement en valeurs mobilières", 'art'=>"Organismes de placement en valeurs mobilières"), + '652F' => array('lib'=>"Intermédiations financières diverses", 'art'=>"Intermédiations financières diverses"), + '660A' => array('lib'=>"Assurance-vie et capitalisation", 'art'=>"Assurance-vie et capitalisation"), + '660C' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '660E' => array('lib'=>"Assurance dommages", 'art'=>"Assurance dommages"), + '660F' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '660G' => array('lib'=>"Assurance relevant du code de la mutualité", 'art'=>"Assurance relevant du code de la mutualité"), + '671A' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '671C' => array('lib'=>"Gestion de portefeuilles", 'art'=>"Gestion de portefeuilles"), + '671E' => array('lib'=>"Autres auxiliaires financiers", 'art'=>"Autres auxiliaires financiers"), + '672Z' => array('lib'=>"Auxiliaires d'assurance", 'art'=>"Auxiliaires d'assurance"), + '701A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '701B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '701C' => array('lib'=>"Promotion immobilière d'infrastructures", 'art'=>"Promotion immobilière d'infrastructures"), + '701D' => array('lib'=>"Supports juridiques de programme", 'art'=>"Supports juridiques de programme"), + '701F' => array('lib'=>"Marchands de biens immobiliers", 'art'=>"Marchands de biens immobiliers"), + '702A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '702B' => array('lib'=>"Location de terrains", 'art'=>"Location de terrains"), + '702C' => array('lib'=>"Location d'autres biens immobiliers", 'art'=>"Location d'autres biens immobiliers"), + '703A' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '703C' => array('lib'=>"Administration d'immeubles résidentiels", 'art'=>"Administration d'immeubles résidentiels"), + '703D' => array('lib'=>"Administration d'autres biens immobiliers", 'art'=>"Administration d'autres biens immobiliers"), + '703E' => array('lib'=>"Supports juridiques de gestion de patrimoine", 'art'=>"Supports juridiques de gestion de patrimoine"), + '711A' => array('lib'=>"Location de courte durée de véhicules automobiles", 'art'=>"Location de courte durée de véhicules automobiles"), + '711B' => array('lib'=>"Location de longue durée de véhicules automobiles", 'art'=>"Location de longue durée de véhicules automobiles"), + '711Z' => array('lib'=>"Location de véhicules automobiles", 'art'=>"Location de véhicules automobiles"), + '712A' => array('lib'=>"Location d'autres matériels de transport terrestre", 'art'=>"Location d'autres matériels de transport terrestre"), + '712C' => array('lib'=>"Location de matériels de transport par eau", 'art'=>"Location de matériels de transport par eau"), + '712E' => array('lib'=>"Location d'appareils de transport aérien", 'art'=>"Location d'appareils de transport aérien"), + '713A' => array('lib'=>"Location de matériel agricole", 'art'=>"Location de matériel agricole"), + '713C' => array('lib'=>"Location de machines et équipements pour la construction", 'art'=>"Location de machines et équipements pour la construction"), + '713E' => array('lib'=>"Location de machines de bureau et de matériel informatique", 'art'=>"Location de machines de bureau et de matériel informatique"), + '713G' => array('lib'=>"Location de machines et équipements divers", 'art'=>"Location de machines et équipements divers"), + '714A' => array('lib'=>"Location de linge", 'art'=>"Location de linge"), + '714B' => array('lib'=>"Location d'autres biens personnels et domestiques", 'art'=>"Location d'autres biens personnels et domestiques"), + '721Z' => array('lib'=>"Conseil en systèmes informatiques", 'art'=>"Conseil en systèmes informatiques"), + '722A' => array('lib'=>"Edition de logiciels (non personnalisés)", 'art'=>"Edition de logiciels (non personnalisés)"), + '722C' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '722Z' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '723Z' => array('lib'=>"Traitement de données", 'art'=>"Traitement de données"), + '724Z' => array('lib'=>"Activités de banques de données", 'art'=>"Activités de banques de données"), + '725Z' => array('lib'=>"Entretien et réparation de machines de bureau et de matériel informatique", 'art'=>"Entretien et réparation de machines de bureau et de matériel informatique"), + '726Z' => array('lib'=>"Autres activités rattachées à l'informatique", 'art'=>"Autres activités rattachées à l'informatique"), + '731Z' => array('lib'=>"Recherche-développement en sciences physiques et naturelles", 'art'=>"Recherche-développement en sciences physiques et naturelles"), + '732Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '741A' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '741C' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '741E' => array('lib'=>"Etudes de marché et sondages", 'art'=>"Etudes de marché et sondages"), + '741G' => array('lib'=>"Conseil pour les affaires et la gestion", 'art'=>"Conseil pour les affaires et la gestion"), + '741J' => array('lib'=>"Administration d'entreprises", 'art'=>"Administration d'entreprises"), + '742A' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '742B' => array('lib'=>"Métreurs, géomètres", 'art'=>"Métreurs, géomètres"), + '742C' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '743A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '743B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '744A' => array('lib'=>"Gestion de supports de publicité", 'art'=>"Gestion de supports de publicité"), + '744B' => array('lib'=>"Agences, conseil en publicité", 'art'=>"Agences, conseil en publicité"), + '745A' => array('lib'=>"Sélection et mise à disposition de personnel", 'art'=>"Sélection et mise à disposition de personnel"), + '745B' => array('lib'=>"Travail temporaire", 'art'=>"Travail temporaire"), + '746Z' => array('lib'=>"Enquêtes et sécurité", 'art'=>"Enquêtes et sécurité"), + '747Z' => array('lib'=>"Activités de nettoyage", 'art'=>"Activités de nettoyage"), + '748A' => array('lib'=>"Studios et autres activités photographiques", 'art'=>"Studios et autres activités photographiques"), + '748B' => array('lib'=>"Laboratoires techniques de développement et de tirage", 'art'=>"Laboratoires techniques de développement et de tirage"), + '748D' => array('lib'=>"Conditionnement à façon", 'art'=>"Conditionnement à façon"), + '748F' => array('lib'=>"Secrétariat et traduction", 'art'=>"Secrétariat et traduction"), + '748G' => array('lib'=>"Routage", 'art'=>"Routage"), + '748H' => array('lib'=>"Centres d'appel", 'art'=>"Centres d'appel"), + '748J' => array('lib'=>"Organisation de foires et salons", 'art'=>"Organisation de foires et salons"), + '748K' => array('lib'=>"Services annexes à la production", 'art'=>"Services annexes à la production"), + '751A' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '751C' => array('lib'=>"Tutelle des activités sociales", 'art'=>"Tutelle des activités sociales"), + '751E' => array('lib'=>"Tutelle des activités économiques", 'art'=>"Tutelle des activités économiques"), + '751G' => array('lib'=>"Activités de soutien aux administrations", 'art'=>"Activités de soutien aux administrations"), + '752A' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '752C' => array('lib'=>"Défense", 'art'=>"Défense"), + '752E' => array('lib'=>"Justice", 'art'=>"Justice"), + '752G' => array('lib'=>"Police", 'art'=>"Police"), + '752J' => array('lib'=>"Protection civile", 'art'=>"Protection civile"), + '753A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '753B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '753C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '801Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '802A' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '802C' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '803Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '804A' => array('lib'=>"Ecoles de conduite", 'art'=>"Ecoles de conduite"), + '804C' => array('lib'=>"Formation des adultes et formation continue", 'art'=>"Formation des adultes et formation continue"), + '804D' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '851A' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '851C' => array('lib'=>"Pratique médicale", 'art'=>"Pratique médicale"), + '851E' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '851G' => array('lib'=>"Activités des auxiliaires médicaux", 'art'=>"Activités des auxiliaires médicaux"), + '851H' => array('lib'=>"Soins hors d'un cadre réglementé", 'art'=>"Soins hors d'un cadre réglementé"), + '851J' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '851K' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '851L' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '852Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '853A' => array('lib'=>"Accueil des enfants handicapés", 'art'=>"Accueil des enfants handicapés"), + '853B' => array('lib'=>"Accueil des enfants en difficulté", 'art'=>"Accueil des enfants en difficulté"), + '853C' => array('lib'=>"Accueil des adultes handicapés", 'art'=>"Accueil des adultes handicapés"), + '853D' => array('lib'=>"Accueil des personnes âgées", 'art'=>"Accueil des personnes âgées"), + '853E' => array('lib'=>"Autres hébergements sociaux", 'art'=>"Autres hébergements sociaux"), + '853G' => array('lib'=>"Crèches et garderies d'enfants", 'art'=>"Crèches et garderies d'enfants"), + '853H' => array('lib'=>"Aide par le travail, ateliers protégés", 'art'=>"Aide par le travail, ateliers protégés"), + '853J' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '853K' => array('lib'=>"Autres formes d'action sociale", 'art'=>"Autres formes d'action sociale"), + '900A' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '900B' => array('lib'=>"Enlèvement et traitement des ordures ménagères", 'art'=>"Enlèvement et traitement des ordures ménagères"), + '900C' => array('lib'=>"Elimination et traitement des autres déchets", 'art'=>"Elimination et traitement des autres déchets"), + '900E' => array('lib'=>"Traitements des autres déchets solides", 'art'=>"Traitements des autres déchets solides"), + '900G' => array('lib'=>"Autres travaux d'assainissement et de voirie", 'art'=>"Autres travaux d'assainissement et de voirie"), + '911A' => array('lib'=>"Organisations patronales et consulaires", 'art'=>"Organisations patronales et consulaires"), + '911C' => array('lib'=>"Organisations professionnelles", 'art'=>"Organisations professionnelles"), + '912Z' => array('lib'=>"Syndicats de salariés", 'art'=>"Syndicats de salariés"), + '913A' => array('lib'=>"Organisations religieuses", 'art'=>"Organisations religieuses"), + '913C' => array('lib'=>"Organisations politiques", 'art'=>"Organisations politiques"), + '913E' => array('lib'=>"Organisations associatives n.c.a.", 'art'=>"Organisations associatives n.c.a."), + '921A' => array('lib'=>"Production de films pour la télévision", 'art'=>"Production de films pour la télévision"), + '921B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '921C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '921D' => array('lib'=>"Prestations techniques pour le cinéma et la télévision", 'art'=>"Prestations techniques pour le cinéma et la télévision"), + '921F' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '921G' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '921J' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '922A' => array('lib'=>"Activités de radio", 'art'=>"Activités de radio"), + '922B' => array('lib'=>"Production de programmes de télévision", 'art'=>"Production de programmes de télévision"), + '922C' => array('lib'=>"Diffusion de programmes de télévision", 'art'=>"Diffusion de programmes de télévision"), + '922D' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '922E' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '922F' => array('lib'=>"Distribution de bouquets de programmes de radio et de télévision", 'art'=>"Distribution de bouquets de programmes de radio et de télévision"), + '923A' => array('lib'=>"Activités artistiques", 'art'=>"Activités artistiques"), + '923B' => array('lib'=>"Services annexes aux spectacles", 'art'=>"Services annexes aux spectacles"), + '923D' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '923F' => array('lib'=>"Manèges forains et parcs d'attractions", 'art'=>"Manèges forains et parcs d'attractions"), + '923H' => array('lib'=>"Bals et discothèques", 'art'=>"Bals et discothèques"), + '923J' => array('lib'=>"Autres spectacles", 'art'=>"Autres spectacles"), + '923K' => array('lib'=>"Activités diverses du spectacle", 'art'=>"Activités diverses du spectacle"), + '924Z' => array('lib'=>"Agences de presse", 'art'=>"Agences de presse"), + '925A' => array('lib'=>"Gestion des bibliothèques", 'art'=>"Gestion des bibliothèques"), + '925C' => array('lib'=>"Gestion du patrimoine culturel", 'art'=>"Gestion du patrimoine culturel"), + '925E' => array('lib'=>"Gestion du patrimoine naturel", 'art'=>"Gestion du patrimoine naturel"), + '926A' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '926C' => array('lib'=>"Autres activités sportives", 'art'=>"Autres activités sportives"), + '927A' => array('lib'=>"Jeux de hasard et d'argent", 'art'=>"Jeux de hasard et d'argent"), + '927C' => array('lib'=>"Autres activités récréatives", 'art'=>"Autres activités récréatives"), + '930A' => array('lib'=>"Blanchisserie - teinturerie de gros", 'art'=>"Blanchisserie - teinturerie de gros"), + '930B' => array('lib'=>"Blanchisserie - teinturerie de détail", 'art'=>"Blanchisserie - teinturerie de détail"), + '930D' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '930E' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '930G' => array('lib'=>"Soins aux défunts", 'art'=>"Soins aux défunts"), + '930H' => array('lib'=>"Pompes funèbres", 'art'=>"Pompes funèbres"), + '930K' => array('lib'=>"Activités thermales et de thalassothérapie", 'art'=>"Activités thermales et de thalassothérapie"), + '930L' => array('lib'=>"Autres soins corporels", 'art'=>"Autres soins corporels"), + '930N' => array('lib'=>"Autres services personnels", 'art'=>"Autres services personnels"), + '950Z' => array('lib'=>"Activités des ménages en tant qu'employeur de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeur de personnel domestique"), + '960Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '970Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '990Z' => array('lib'=>"Activités extra-territoriales", 'art'=>"Activités extra-territoriales"), + '0111Z' => array('lib'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses", 'art'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses"), + '0112Z' => array('lib'=>"Culture du riz", 'art'=>"Culture du riz"), + '0113Z' => array('lib'=>"Culture de légumes, de melons, de racines et de tubercules", 'art'=>"Culture de légumes, de melons, de racines et de tubercules"), + '0114Z' => array('lib'=>"Culture de la canne à sucre", 'art'=>"Culture de la canne à sucre"), + '0115Z' => array('lib'=>"Culture du tabac", 'art'=>"Culture du tabac"), + '0116Z' => array('lib'=>"Culture de plantes à fibres", 'art'=>"Culture de plantes à fibres"), + '0119Z' => array('lib'=>"Autres cultures non permanentes", 'art'=>"Autres cultures non permanentes"), + '0121Z' => array('lib'=>"Culture de la vigne", 'art'=>"Culture de la vigne"), + '0122Z' => array('lib'=>"Culture de fruits tropicaux et subtropicaux", 'art'=>"Culture de fruits tropicaux et subtropicaux"), + '0123Z' => array('lib'=>"Culture d'agrumes", 'art'=>"Culture d'agrumes"), + '0124Z' => array('lib'=>"Culture de fruits à pépins et à noyau", 'art'=>"Culture de fruits à pépins et à noyau"), + '0125Z' => array('lib'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque", 'art'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque"), + '0126Z' => array('lib'=>"Culture de fruits oléagineux", 'art'=>"Culture de fruits oléagineux"), + '0127Z' => array('lib'=>"Culture de plantes à boissons", 'art'=>"Culture de plantes à boissons"), + '0128Z' => array('lib'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques", 'art'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques"), + '0129Z' => array('lib'=>"Autres cultures permanentes", 'art'=>"Autres cultures permanentes"), + '0130Z' => array('lib'=>"Reproduction de plantes", 'art'=>"Reproduction de plantes"), + '0141Z' => array('lib'=>"Élevage de vaches laitières", 'art'=>"Élevage de vaches laitières"), + '0142Z' => array('lib'=>"Élevage d'autres bovins et de buffles", 'art'=>"Élevage d'autres bovins et de buffles"), + '0143Z' => array('lib'=>"Élevage de chevaux et d'autres équidés", 'art'=>"Élevage de chevaux et d'autres équidés"), + '0144Z' => array('lib'=>"Élevage de chameaux et d'autres camélidés", 'art'=>"Élevage de chameaux et d'autres camélidés"), + '0145Z' => array('lib'=>"Élevage d'ovins et de caprins", 'art'=>"Élevage d'ovins et de caprins"), + '0146Z' => array('lib'=>"Élevage de porcins", 'art'=>"Élevage de porcins"), + '0147Z' => array('lib'=>"Élevage de volailles", 'art'=>"Élevage de volailles"), + '0149Z' => array('lib'=>"Élevage d'autres animaux", 'art'=>"Élevage d'autres animaux"), + '0150Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '0161Z' => array('lib'=>"Activités de soutien aux cultures", 'art'=>"Activités de soutien aux cultures"), + '0162Z' => array('lib'=>"Activités de soutien à la production animale", 'art'=>"Activités de soutien à la production animale"), + '0163Z' => array('lib'=>"Traitement primaire des récoltes", 'art'=>"Traitement primaire des récoltes"), + '0164Z' => array('lib'=>"Traitement des semences", 'art'=>"Traitement des semences"), + '0170Z' => array('lib'=>"Chasse, piégeage et services annexes", 'art'=>"Chasse, piégeage et services annexes"), + '0210Z' => array('lib'=>"Sylviculture et autres activités forestières", 'art'=>"Sylviculture et autres activités forestières"), + '0220Z' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '0230Z' => array('lib'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage", 'art'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage"), + '0240Z' => array('lib'=>"Services de soutien à l'exploitation forestière", 'art'=>"Services de soutien à l'exploitation forestière"), + '0311Z' => array('lib'=>"Pêche en mer", 'art'=>"Pêche en mer"), + '0312Z' => array('lib'=>"Pêche en eau douce", 'art'=>"Pêche en eau douce"), + '0321Z' => array('lib'=>"Aquaculture en mer", 'art'=>"Aquaculture en mer"), + '0322Z' => array('lib'=>"Aquaculture en eau douce", 'art'=>"Aquaculture en eau douce"), + '0510Z' => array('lib'=>"Extraction de houille", 'art'=>"Extraction de houille"), + '0520Z' => array('lib'=>"Extraction de lignite", 'art'=>"Extraction de lignite"), + '0610Z' => array('lib'=>"Extraction de pétrole brut", 'art'=>"Extraction de pétrole brut"), + '0620Z' => array('lib'=>"Extraction de gaz naturel", 'art'=>"Extraction de gaz naturel"), + '0710Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '0721Z' => array('lib'=>"Extraction de minerais d'uranium et de thorium", 'art'=>"Extraction de minerais d'uranium et de thorium"), + '0729Z' => array('lib'=>"Extraction d'autres minerais de métaux non ferreux", 'art'=>"Extraction d'autres minerais de métaux non ferreux"), + '0811Z' => array('lib'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise", 'art'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise"), + '0812Z' => array('lib'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin", 'art'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin"), + '0891Z' => array('lib'=>"Extraction des minéraux chimiques et d'engrais minéraux", 'art'=>"Extraction des minéraux chimiques et d'engrais minéraux"), + '0892Z' => array('lib'=>"Extraction de tourbe", 'art'=>"Extraction de tourbe"), + '0893Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '0899Z' => array('lib'=>"Autres activités extractives nca", 'art'=>"Autres activités extractives nca"), + '0910Z' => array('lib'=>"Activités de soutien à l'extraction d'hydrocarbures", 'art'=>"Activités de soutien à l'extraction d'hydrocarbures"), + '0990Z' => array('lib'=>"Activités de soutien aux autres industries extractives", 'art'=>"Activités de soutien aux autres industries extractives"), + '1011Z' => array('lib'=>"Transformation et conservation de la viande de boucherie", 'art'=>"Transformation et conservation de la viande de boucherie"), + '1012Z' => array('lib'=>"Transformation et conservation de la viande de volaille", 'art'=>"Transformation et conservation de la viande de volaille"), + '1013A' => array('lib'=>"Préparation industrielle de produits à base de viande", 'art'=>"Préparation industrielle de produits à base de viande"), + '1013B' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '1020Z' => array('lib'=>"Transformation et conservation de poisson, de crustacés et de mollusques", 'art'=>"Transformation et conservation de poisson, de crustacés et de mollusques"), + '1031Z' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '1032Z' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '1039A' => array('lib'=>"Autre transformation et conservation de légumes", 'art'=>"Autre transformation et conservation de légumes"), + '1039B' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '1041A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '1041B' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '1042Z' => array('lib'=>"Fabrication de margarine et graisses comestibles similaires", 'art'=>"Fabrication de margarine et graisses comestibles similaires"), + '1051A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '1051B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '1051C' => array('lib'=>"Fabrication de fromage", 'art'=>"Fabrication de fromage"), + '1051D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '1052Z' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '1061A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '1061B' => array('lib'=>"Autres activités du travail des grains", 'art'=>"Autres activités du travail des grains"), + '1062Z' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '1071A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '1071B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '1071C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '1071D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '1072Z' => array('lib'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation", 'art'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation"), + '1073Z' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '1081Z' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '1082Z' => array('lib'=>"Fabrication de cacao, chocolat et de produits de confiserie", 'art'=>"Fabrication de cacao, chocolat et de produits de confiserie"), + '1083Z' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '1084Z' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '1085Z' => array('lib'=>"Fabrication de plats préparés", 'art'=>"Fabrication de plats préparés"), + '1086Z' => array('lib'=>"Fabrication d'aliments homogénéisés et diététiques", 'art'=>"Fabrication d'aliments homogénéisés et diététiques"), + '1089Z' => array('lib'=>"Fabrication d'autres produits alimentaires nca", 'art'=>"Fabrication d'autres produits alimentaires nca"), + '1091Z' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '1092Z' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '1101Z' => array('lib'=>"Production de boissons alcooliques distillées", 'art'=>"Production de boissons alcooliques distillées"), + '1102A' => array('lib'=>"Fabrication de vins effervescents", 'art'=>"Fabrication de vins effervescents"), + '1102B' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '1103Z' => array('lib'=>"Fabrication de cidre et de vins de fruits", 'art'=>"Fabrication de cidre et de vins de fruits"), + '1104Z' => array('lib'=>"Production d'autres boissons fermentées non distillées", 'art'=>"Production d'autres boissons fermentées non distillées"), + '1105Z' => array('lib'=>"Fabrication de bière", 'art'=>"Fabrication de bière"), + '1106Z' => array('lib'=>"Fabrication de malt", 'art'=>"Fabrication de malt"), + '1107A' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '1107B' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '1200Z' => array('lib'=>"Fabrication de produits à base de tabac", 'art'=>"Fabrication de produits à base de tabac"), + '1310Z' => array('lib'=>"Préparation de fibres textiles et filature", 'art'=>"Préparation de fibres textiles et filature"), + '1320Z' => array('lib'=>"Tissage", 'art'=>"Tissage"), + '1330Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '1391Z' => array('lib'=>"Fabrication d'étoffes à mailles", 'art'=>"Fabrication d'étoffes à mailles"), + '1392Z' => array('lib'=>"Fabrication d'articles textiles, sauf habillement", 'art'=>"Fabrication d'articles textiles, sauf habillement"), + '1393Z' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '1394Z' => array('lib'=>"Fabrication de ficelles, cordes et filets", 'art'=>"Fabrication de ficelles, cordes et filets"), + '1395Z' => array('lib'=>"Fabrication de non-tissés, sauf habillement", 'art'=>"Fabrication de non-tissés, sauf habillement"), + '1396Z' => array('lib'=>"Fabrication d'autres textiles techniques et industriels", 'art'=>"Fabrication d'autres textiles techniques et industriels"), + '1399Z' => array('lib'=>"Fabrication d'autres textiles nca", 'art'=>"Fabrication d'autres textiles nca"), + '1411Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '1412Z' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '1413Z' => array('lib'=>"Fabrication de vêtements de dessus", 'art'=>"Fabrication de vêtements de dessus"), + '1414Z' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '1419Z' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '1420Z' => array('lib'=>"Fabrication d'articles en fourrure", 'art'=>"Fabrication d'articles en fourrure"), + '1431Z' => array('lib'=>"Fabrication d'articles chaussants à mailles", 'art'=>"Fabrication d'articles chaussants à mailles"), + '1439Z' => array('lib'=>"Fabrication d'autres articles à mailles", 'art'=>"Fabrication d'autres articles à mailles"), + '1511Z' => array('lib'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures", 'art'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures"), + '1512Z' => array('lib'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie", 'art'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie"), + '1520Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '1610A' => array('lib'=>"Sciage et rabotage du bois, hors imprégnation", 'art'=>"Sciage et rabotage du bois, hors imprégnation"), + '1610B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '1621Z' => array('lib'=>"Fabrication de placage et de panneaux de bois", 'art'=>"Fabrication de placage et de panneaux de bois"), + '1622Z' => array('lib'=>"Fabrication de parquets assemblés", 'art'=>"Fabrication de parquets assemblés"), + '1623Z' => array('lib'=>"Fabrication de charpentes et d'autres menuiseries", 'art'=>"Fabrication de charpentes et d'autres menuiseries"), + '1624Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '1629Z' => array('lib'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie", 'art'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie"), + '1711Z' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '1712Z' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '1721A' => array('lib'=>"Fabrication de carton ondulé", 'art'=>"Fabrication de carton ondulé"), + '1721B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '1721C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '1722Z' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '1723Z' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '1724Z' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '1729Z' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '1811Z' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '1812Z' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '1813Z' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '1814Z' => array('lib'=>"Reliure et activités connexes", 'art'=>"Reliure et activités connexes"), + '1820Z' => array('lib'=>"Reproduction d'enregistrements", 'art'=>"Reproduction d'enregistrements"), + '1910Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '1920Z' => array('lib'=>"Raffinage du pétrole", 'art'=>"Raffinage du pétrole"), + '2011Z' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '2012Z' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '2013A' => array('lib'=>"Enrichissement et retraitement de matières nucléaires", 'art'=>"Enrichissement et retraitement de matières nucléaires"), + '2013B' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base nca", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base nca"), + '2014Z' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '2015Z' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '2016Z' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '2017Z' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '2020Z' => array('lib'=>"Fabrication de pesticides et d'autres produits agrochimiques", 'art'=>"Fabrication de pesticides et d'autres produits agrochimiques"), + '2030Z' => array('lib'=>"Fabrication de peintures, vernis, encres et mastics", 'art'=>"Fabrication de peintures, vernis, encres et mastics"), + '2041Z' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '2042Z' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '2051Z' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '2052Z' => array('lib'=>"Fabrication de colles", 'art'=>"Fabrication de colles"), + '2053Z' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '2059Z' => array('lib'=>"Fabrication d'autres produits chimiques nca", 'art'=>"Fabrication d'autres produits chimiques nca"), + '2060Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '2110Z' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '2120Z' => array('lib'=>"Fabrication de préparations pharmaceutiques", 'art'=>"Fabrication de préparations pharmaceutiques"), + '2211Z' => array('lib'=>"Fabrication et rechapage de pneumatiques", 'art'=>"Fabrication et rechapage de pneumatiques"), + '2219Z' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '2221Z' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '2222Z' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '2223Z' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '2229A' => array('lib'=>"Fabrication de pièces techniques à base de matières plastiques", 'art'=>"Fabrication de pièces techniques à base de matières plastiques"), + '2229B' => array('lib'=>"Fabrication de produits de consommation courante en matières plastiques", 'art'=>"Fabrication de produits de consommation courante en matières plastiques"), + '2311Z' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '2312Z' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '2313Z' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '2314Z' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '2319Z' => array('lib'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique", 'art'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique"), + '2320Z' => array('lib'=>"Fabrication de produits réfractaires", 'art'=>"Fabrication de produits réfractaires"), + '2331Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '2332Z' => array('lib'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite", 'art'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite"), + '2341Z' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '2342Z' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '2343Z' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '2344Z' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '2349Z' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '2351Z' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '2352Z' => array('lib'=>"Fabrication de chaux et plâtre", 'art'=>"Fabrication de chaux et plâtre"), + '2361Z' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '2362Z' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '2363Z' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '2364Z' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '2365Z' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '2369Z' => array('lib'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre"), + '2370Z' => array('lib'=>"Taille, façonnage et finissage de pierres", 'art'=>"Taille, façonnage et finissage de pierres"), + '2391Z' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '2399Z' => array('lib'=>"Fabrication d'autres produits minéraux non métalliques nca", 'art'=>"Fabrication d'autres produits minéraux non métalliques nca"), + '2410Z' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '2420Z' => array('lib'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier", 'art'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier"), + '2431Z' => array('lib'=>"étirage à froid de barres", 'art'=>"étirage à froid de barres"), + '2432Z' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '2433Z' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '2434Z' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '2441Z' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '2442Z' => array('lib'=>"Métallurgie de l'aluminium", 'art'=>"Métallurgie de l'aluminium"), + '2443Z' => array('lib'=>"Métallurgie du plomb, du zinc ou de l'étain", 'art'=>"Métallurgie du plomb, du zinc ou de l'étain"), + '2444Z' => array('lib'=>"Métallurgie du cuivre", 'art'=>"Métallurgie du cuivre"), + '2445Z' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '2446Z' => array('lib'=>"élaboration et transformation de matières nucléaires", 'art'=>"élaboration et transformation de matières nucléaires"), + '2451Z' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '2452Z' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '2453Z' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '2454Z' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '2511Z' => array('lib'=>"Fabrication de structures métalliques et de parties de structures", 'art'=>"Fabrication de structures métalliques et de parties de structures"), + '2512Z' => array('lib'=>"Fabrication de portes et fenêtres en métal", 'art'=>"Fabrication de portes et fenêtres en métal"), + '2521Z' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '2529Z' => array('lib'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques"), + '2530Z' => array('lib'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central", 'art'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central"), + '2540Z' => array('lib'=>"Fabrication d'armes et de munitions", 'art'=>"Fabrication d'armes et de munitions"), + '2550A' => array('lib'=>"Forge, estampage, matriçage ; métallurgie des poudres", 'art'=>"Forge, estampage, matriçage ; métallurgie des poudres"), + '2550B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '2561Z' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '2562A' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '2562B' => array('lib'=>"Mécanique industrielle", 'art'=>"Mécanique industrielle"), + '2571Z' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '2572Z' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '2573A' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '2573B' => array('lib'=>"Fabrication d'autres outillages", 'art'=>"Fabrication d'autres outillages"), + '2591Z' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '2592Z' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '2593Z' => array('lib'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts", 'art'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts"), + '2594Z' => array('lib'=>"Fabrication de vis et de boulons", 'art'=>"Fabrication de vis et de boulons"), + '2599A' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '2599B' => array('lib'=>"Fabrication d'autres articles métalliques", 'art'=>"Fabrication d'autres articles métalliques"), + '2611Z' => array('lib'=>"Fabrication de composants électroniques", 'art'=>"Fabrication de composants électroniques"), + '2612Z' => array('lib'=>"Fabrication de cartes électroniques assemblées", 'art'=>"Fabrication de cartes électroniques assemblées"), + '2620Z' => array('lib'=>"Fabrication d'ordinateurs et d'équipements périphériques", 'art'=>"Fabrication d'ordinateurs et d'équipements périphériques"), + '2630Z' => array('lib'=>"Fabrication d'équipements de communication", 'art'=>"Fabrication d'équipements de communication"), + '2640Z' => array('lib'=>"Fabrication de produits électroniques grand public", 'art'=>"Fabrication de produits électroniques grand public"), + '2651A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '2651B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '2652Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '2660Z' => array('lib'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques", 'art'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques"), + '2670Z' => array('lib'=>"Fabrication de matériels optique et photographique", 'art'=>"Fabrication de matériels optique et photographique"), + '2680Z' => array('lib'=>"Fabrication de supports magnétiques et optiques", 'art'=>"Fabrication de supports magnétiques et optiques"), + '2711Z' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques"), + '2712Z' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique", 'art'=>"Fabrication de matériel de distribution et de commande électrique"), + '2720Z' => array('lib'=>"Fabrication de piles et d'accumulateurs électriques", 'art'=>"Fabrication de piles et d'accumulateurs électriques"), + '2731Z' => array('lib'=>"Fabrication de câbles de fibres optiques", 'art'=>"Fabrication de câbles de fibres optiques"), + '2732Z' => array('lib'=>"Fabrication d'autres fils et câbles électroniques ou électriques", 'art'=>"Fabrication d'autres fils et câbles électroniques ou électriques"), + '2733Z' => array('lib'=>"Fabrication de matériel d'installation électrique", 'art'=>"Fabrication de matériel d'installation électrique"), + '2740Z' => array('lib'=>"Fabrication d'appareils d'éclairage électrique", 'art'=>"Fabrication d'appareils d'éclairage électrique"), + '2751Z' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '2752Z' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '2790Z' => array('lib'=>"Fabrication d'autres matériels électriques", 'art'=>"Fabrication d'autres matériels électriques"), + '2811Z' => array('lib'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules", 'art'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules"), + '2812Z' => array('lib'=>"Fabrication d'équipements hydrauliques et pneumatiques", 'art'=>"Fabrication d'équipements hydrauliques et pneumatiques"), + '2813Z' => array('lib'=>"Fabrication d'autres pompes et compresseurs", 'art'=>"Fabrication d'autres pompes et compresseurs"), + '2814Z' => array('lib'=>"Fabrication d'autres articles de robinetterie", 'art'=>"Fabrication d'autres articles de robinetterie"), + '2815Z' => array('lib'=>"Fabrication d'engrenages et d'organes mécaniques de transmission", 'art'=>"Fabrication d'engrenages et d'organes mécaniques de transmission"), + '2821Z' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '2822Z' => array('lib'=>"Fabrication de matériel de levage et de manutention", 'art'=>"Fabrication de matériel de levage et de manutention"), + '2823Z' => array('lib'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)", 'art'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)"), + '2824Z' => array('lib'=>"Fabrication d'outillage portatif à moteur incorporé", 'art'=>"Fabrication d'outillage portatif à moteur incorporé"), + '2825Z' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '2829A' => array('lib'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage", 'art'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage"), + '2829B' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '2830Z' => array('lib'=>"Fabrication de machines agricoles et forestières", 'art'=>"Fabrication de machines agricoles et forestières"), + '2841Z' => array('lib'=>"Fabrication de machines-outils pour le travail des métaux", 'art'=>"Fabrication de machines-outils pour le travail des métaux"), + '2849Z' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '2891Z' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '2892Z' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '2893Z' => array('lib'=>"Fabrication de machines pour l'industrie agro-alimentaire", 'art'=>"Fabrication de machines pour l'industrie agro-alimentaire"), + '2894Z' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '2895Z' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '2896Z' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '2899A' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '2899B' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '2910Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '2920Z' => array('lib'=>"Fabrication de carrosseries et remorques", 'art'=>"Fabrication de carrosseries et remorques"), + '2931Z' => array('lib'=>"Fabrication d'équipements électriques et électroniques automobiles", 'art'=>"Fabrication d'équipements électriques et électroniques automobiles"), + '2932Z' => array('lib'=>"Fabrication d'autres équipements automobiles", 'art'=>"Fabrication d'autres équipements automobiles"), + '3011Z' => array('lib'=>"Construction de navires et de structures flottantes", 'art'=>"Construction de navires et de structures flottantes"), + '3012Z' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '3020Z' => array('lib'=>"Construction de locomotives et d'autre matériel ferroviaire roulant", 'art'=>"Construction de locomotives et d'autre matériel ferroviaire roulant"), + '3030Z' => array('lib'=>"Construction aéronautique et spatiale", 'art'=>"Construction aéronautique et spatiale"), + '3040Z' => array('lib'=>"Construction de véhicules militaires de combat", 'art'=>"Construction de véhicules militaires de combat"), + '3091Z' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '3092Z' => array('lib'=>"Fabrication de bicyclettes et de véhicules pour invalides", 'art'=>"Fabrication de bicyclettes et de véhicules pour invalides"), + '3099Z' => array('lib'=>"Fabrication d'autres équipements de transport nca", 'art'=>"Fabrication d'autres équipements de transport nca"), + '3101Z' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '3102Z' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '3103Z' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '3109A' => array('lib'=>"Fabrication de sièges d'ameublement d'intérieur", 'art'=>"Fabrication de sièges d'ameublement d'intérieur"), + '3109B' => array('lib'=>"Fabrication d'autres meubles et industries connexes de l'ameublement", 'art'=>"Fabrication d'autres meubles et industries connexes de l'ameublement"), + '3211Z' => array('lib'=>"Frappe de monnaie", 'art'=>"Frappe de monnaie"), + '3212Z' => array('lib'=>"Fabrication d'articles de joaillerie et bijouterie", 'art'=>"Fabrication d'articles de joaillerie et bijouterie"), + '3213Z' => array('lib'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires", 'art'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires"), + '3220Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '3230Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '3240Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '3250A' => array('lib'=>"Fabrication de matériel médico-chirurgical et dentaire", 'art'=>"Fabrication de matériel médico-chirurgical et dentaire"), + '3250B' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '3291Z' => array('lib'=>"Fabrication d'articles de brosserie", 'art'=>"Fabrication d'articles de brosserie"), + '3299Z' => array('lib'=>"Autres activités manufacturières nca", 'art'=>"Autres activités manufacturières nca"), + '3311Z' => array('lib'=>"Réparation d'ouvrages en métaux", 'art'=>"Réparation d'ouvrages en métaux"), + '3312Z' => array('lib'=>"Réparation de machines et équipements mécaniques", 'art'=>"Réparation de machines et équipements mécaniques"), + '3313Z' => array('lib'=>"Réparation de matériels électroniques et optiques", 'art'=>"Réparation de matériels électroniques et optiques"), + '3314Z' => array('lib'=>"Réparation d'équipements électriques", 'art'=>"Réparation d'équipements électriques"), + '3315Z' => array('lib'=>"Réparation et maintenance navale", 'art'=>"Réparation et maintenance navale"), + '3316Z' => array('lib'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux", 'art'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux"), + '3317Z' => array('lib'=>"Réparation et maintenance d'autres équipements de transport", 'art'=>"Réparation et maintenance d'autres équipements de transport"), + '3319Z' => array('lib'=>"Réparation d'autres équipements", 'art'=>"Réparation d'autres équipements"), + '3320A' => array('lib'=>"Installation de structures métalliques, chaudronnées et de tuyauterie", 'art'=>"Installation de structures métalliques, chaudronnées et de tuyauterie"), + '3320B' => array('lib'=>"Installation de machines et équipements mécaniques", 'art'=>"Installation de machines et équipements mécaniques"), + '3320C' => array('lib'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels", 'art'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels"), + '3320D' => array('lib'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels", 'art'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels"), + '3511Z' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '3512Z' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '3513Z' => array('lib'=>"Distribution d'électricité", 'art'=>"Distribution d'électricité"), + '3514Z' => array('lib'=>"Commerce d'électricité", 'art'=>"Commerce d'électricité"), + '3521Z' => array('lib'=>"Production de combustibles gazeux", 'art'=>"Production de combustibles gazeux"), + '3522Z' => array('lib'=>"Distribution de combustibles gazeux par conduites", 'art'=>"Distribution de combustibles gazeux par conduites"), + '3523Z' => array('lib'=>"Commerce de combustibles gazeux par conduites", 'art'=>"Commerce de combustibles gazeux par conduites"), + '3530Z' => array('lib'=>"Production et distribution de vapeur et d'air conditionné", 'art'=>"Production et distribution de vapeur et d'air conditionné"), + '3600Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '3700Z' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '3811Z' => array('lib'=>"Collecte des déchets non dangereux", 'art'=>"Collecte des déchets non dangereux"), + '3812Z' => array('lib'=>"Collecte des déchets dangereux", 'art'=>"Collecte des déchets dangereux"), + '3821Z' => array('lib'=>"Traitement et élimination des déchets non dangereux", 'art'=>"Traitement et élimination des déchets non dangereux"), + '3822Z' => array('lib'=>"Traitement et élimination des déchets dangereux", 'art'=>"Traitement et élimination des déchets dangereux"), + '3831Z' => array('lib'=>"Démantèlement d'épaves", 'art'=>"Démantèlement d'épaves"), + '3832Z' => array('lib'=>"Récupération de déchets triés", 'art'=>"Récupération de déchets triés"), + '3900Z' => array('lib'=>"Dépollution et autres services de gestion des déchets", 'art'=>"Dépollution et autres services de gestion des déchets"), + '4110A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '4110B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '4110C' => array('lib'=>"Promotion immobilière d'autres bâtiments", 'art'=>"Promotion immobilière d'autres bâtiments"), + '4110D' => array('lib'=>"Supports juridiques de programmes", 'art'=>"Supports juridiques de programmes"), + '4120A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '4120B' => array('lib'=>"Construction d'autres bâtiments", 'art'=>"Construction d'autres bâtiments"), + '4211Z' => array('lib'=>"Construction de routes et autoroutes", 'art'=>"Construction de routes et autoroutes"), + '4212Z' => array('lib'=>"Construction de voies ferrées de surface et souterraines", 'art'=>"Construction de voies ferrées de surface et souterraines"), + '4213A' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '4213B' => array('lib'=>"Construction et entretien de tunnels", 'art'=>"Construction et entretien de tunnels"), + '4221Z' => array('lib'=>"Construction de réseaux pour fluides", 'art'=>"Construction de réseaux pour fluides"), + '4222Z' => array('lib'=>"Construction de réseaux électriques et de télécommunications", 'art'=>"Construction de réseaux électriques et de télécommunications"), + '4291Z' => array('lib'=>"Construction d'ouvrages maritimes et fluviaux", 'art'=>"Construction d'ouvrages maritimes et fluviaux"), + '4299Z' => array('lib'=>"Construction d'autres ouvrages de génie civil nca", 'art'=>"Construction d'autres ouvrages de génie civil nca"), + '4311Z' => array('lib'=>"Travaux de démolition", 'art'=>"Travaux de démolition"), + '4312A' => array('lib'=>"Travaux de terrassement courants et travaux préparatoires", 'art'=>"Travaux de terrassement courants et travaux préparatoires"), + '4312B' => array('lib'=>"Travaux de terrassement spécialisés ou de grande masse", 'art'=>"Travaux de terrassement spécialisés ou de grande masse"), + '4313Z' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '4321A' => array('lib'=>"Travaux d'installation électrique dans tous locaux", 'art'=>"Travaux d'installation électrique dans tous locaux"), + '4321B' => array('lib'=>"Travaux d'installation électrique sur la voie publique", 'art'=>"Travaux d'installation électrique sur la voie publique"), + '4322A' => array('lib'=>"Travaux d'installation d'eau et de gaz en tous locaux", 'art'=>"Travaux d'installation d'eau et de gaz en tous locaux"), + '4322B' => array('lib'=>"Travaux d'installation d'équipements thermiques et de climatisation", 'art'=>"Travaux d'installation d'équipements thermiques et de climatisation"), + '4329A' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '4329B' => array('lib'=>"Autres travaux d'installation nca", 'art'=>"Autres travaux d'installation nca"), + '4331Z' => array('lib'=>"Travaux de plâtrerie", 'art'=>"Travaux de plâtrerie"), + '4332A' => array('lib'=>"Travaux de menuiserie bois et pvc", 'art'=>"Travaux de menuiserie bois et pvc"), + '4332B' => array('lib'=>"Travaux de menuiserie métallique et serrurerie", 'art'=>"Travaux de menuiserie métallique et serrurerie"), + '4332C' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '4333Z' => array('lib'=>"Travaux de revêtement des sols et des murs", 'art'=>"Travaux de revêtement des sols et des murs"), + '4334Z' => array('lib'=>"Travaux de peinture et vitrerie", 'art'=>"Travaux de peinture et vitrerie"), + '4339Z' => array('lib'=>"Autres travaux de finition", 'art'=>"Autres travaux de finition"), + '4391A' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '4391B' => array('lib'=>"Travaux de couverture par éléments", 'art'=>"Travaux de couverture par éléments"), + '4399A' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '4399B' => array('lib'=>"Travaux de montage de structures métalliques", 'art'=>"Travaux de montage de structures métalliques"), + '4399C' => array('lib'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment", 'art'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment"), + '4399D' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '4399E' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '4511Z' => array('lib'=>"Commerce de voitures et de véhicules automobiles légers", 'art'=>"Commerce de voitures et de véhicules automobiles légers"), + '4519Z' => array('lib'=>"Commerce d'autres véhicules automobiles", 'art'=>"Commerce d'autres véhicules automobiles"), + '4520A' => array('lib'=>"Entretien et réparation de véhicules automobiles légers", 'art'=>"Entretien et réparation de véhicules automobiles légers"), + '4520B' => array('lib'=>"Entretien et réparation d'autres véhicules automobiles", 'art'=>"Entretien et réparation d'autres véhicules automobiles"), + '4531Z' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '4532Z' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '4540Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '4611Z' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis"), + '4612A' => array('lib'=>"Centrales d'achat de carburant", 'art'=>"Centrales d'achat de carburant"), + '4612B' => array('lib'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '4613Z' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '4614Z' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '4615Z' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '4616Z' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir"), + '4617A' => array('lib'=>"Centrales d'achat alimentaires", 'art'=>"Centrales d'achat alimentaires"), + '4617B' => array('lib'=>"Autres intermédiaires du commerce en denrées, boissons et tabac", 'art'=>"Autres intermédiaires du commerce en denrées, boissons et tabac"), + '4618Z' => array('lib'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques", 'art'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques"), + '4619A' => array('lib'=>"Centrales d'achat non alimentaires", 'art'=>"Centrales d'achat non alimentaires"), + '4619B' => array('lib'=>"Autres intermédiaires du commerce en produits divers", 'art'=>"Autres intermédiaires du commerce en produits divers"), + '4621Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail", 'art'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail"), + '4622Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes", 'art'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes"), + '4623Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'animaux vivants", 'art'=>"Commerce de gros (commerce interentreprises) d'animaux vivants"), + '4624Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux", 'art'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux"), + '4631Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fruits et légumes", 'art'=>"Commerce de gros (commerce interentreprises) de fruits et légumes"), + '4632A' => array('lib'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie", 'art'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie"), + '4632B' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de viande", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de viande"), + '4632C' => array('lib'=>"Commerce de gros (commerce interentreprises) de volailles et gibier", 'art'=>"Commerce de gros (commerce interentreprises) de volailles et gibier"), + '4633Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles", 'art'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles"), + '4634Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de boissons", 'art'=>"Commerce de gros (commerce interentreprises) de boissons"), + '4635Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac"), + '4636Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie", 'art'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie"), + '4637Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices", 'art'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices"), + '4638A' => array('lib'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques", 'art'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques"), + '4638B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers"), + '4639A' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits surgelés", 'art'=>"Commerce de gros (commerce interentreprises) de produits surgelés"), + '4639B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé"), + '4641Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de textiles", 'art'=>"Commerce de gros (commerce interentreprises) de textiles"), + '4642Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures", 'art'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures"), + '4643Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers"), + '4644Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien", 'art'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien"), + '4645Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté", 'art'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté"), + '4646Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques"), + '4647Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage", 'art'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage"), + '4648Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie", 'art'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie"), + '4649Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques", 'art'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques"), + '4651Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels", 'art'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels"), + '4652Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication", 'art'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication"), + '4661Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel agricole", 'art'=>"Commerce de gros (commerce interentreprises) de matériel agricole"), + '4662Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines-outils", 'art'=>"Commerce de gros (commerce interentreprises) de machines-outils"), + '4663Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil"), + '4664Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement"), + '4665Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau", 'art'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau"), + '4666Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau", 'art'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau"), + '4669A' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel électrique", 'art'=>"Commerce de gros (commerce interentreprises) de matériel électrique"), + '4669B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers"), + '4669C' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services"), + '4671Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes", 'art'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes"), + '4672Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de minerais et métaux", 'art'=>"Commerce de gros (commerce interentreprises) de minerais et métaux"), + '4673A' => array('lib'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction", 'art'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction"), + '4673B' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration"), + '4674A' => array('lib'=>"Commerce de gros (commerce interentreprises) de quincaillerie", 'art'=>"Commerce de gros (commerce interentreprises) de quincaillerie"), + '4674B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage"), + '4675Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits chimiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits chimiques"), + '4676Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires", 'art'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires"), + '4677Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de déchets et débris", 'art'=>"Commerce de gros (commerce interentreprises) de déchets et débris"), + '4690Z' => array('lib'=>"Commerce de gros (commerce interentreprises) non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) non spécialisé"), + '4711A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '4711B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '4711C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '4711D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '4711E' => array('lib'=>"Magasins multi-commerces", 'art'=>"Magasins multi-commerces"), + '4711F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '4719A' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '4719B' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '4721Z' => array('lib'=>"Commerce de détail de fruits et légumes en magasin spécialisé", 'art'=>"Commerce de détail de fruits et légumes en magasin spécialisé"), + '4722Z' => array('lib'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé", 'art'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé"), + '4723Z' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé", 'art'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé"), + '4724Z' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé"), + '4725Z' => array('lib'=>"Commerce de détail de boissons en magasin spécialisé", 'art'=>"Commerce de détail de boissons en magasin spécialisé"), + '4726Z' => array('lib'=>"Commerce de détail de produits à base de tabac en magasin spécialisé", 'art'=>"Commerce de détail de produits à base de tabac en magasin spécialisé"), + '4729Z' => array('lib'=>"Autres commerces de détail alimentaires en magasin spécialisé", 'art'=>"Autres commerces de détail alimentaires en magasin spécialisé"), + '4730Z' => array('lib'=>"Commerce de détail de carburants en magasin spécialisé", 'art'=>"Commerce de détail de carburants en magasin spécialisé"), + '4741Z' => array('lib'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé", 'art'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé"), + '4742Z' => array('lib'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé", 'art'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé"), + '4743Z' => array('lib'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé", 'art'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé"), + '4751Z' => array('lib'=>"Commerce de détail de textiles en magasin spécialisé", 'art'=>"Commerce de détail de textiles en magasin spécialisé"), + '4752A' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)"), + '4752B' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)"), + '4753Z' => array('lib'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé", 'art'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé"), + '4754Z' => array('lib'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé", 'art'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé"), + '4759A' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '4759B' => array('lib'=>"Commerce de détail d'autres équipements du foyer", 'art'=>"Commerce de détail d'autres équipements du foyer"), + '4761Z' => array('lib'=>"Commerce de détail de livres en magasin spécialisé", 'art'=>"Commerce de détail de livres en magasin spécialisé"), + '4762Z' => array('lib'=>"Commerce de détail de journaux et papeterie en magasin spécialisé", 'art'=>"Commerce de détail de journaux et papeterie en magasin spécialisé"), + '4763Z' => array('lib'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé", 'art'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé"), + '4764Z' => array('lib'=>"Commerce de détail d'articles de sport en magasin spécialisé", 'art'=>"Commerce de détail d'articles de sport en magasin spécialisé"), + '4765Z' => array('lib'=>"Commerce de détail de jeux et jouets en magasin spécialisé", 'art'=>"Commerce de détail de jeux et jouets en magasin spécialisé"), + '4771Z' => array('lib'=>"Commerce de détail d'habillement en magasin spécialisé", 'art'=>"Commerce de détail d'habillement en magasin spécialisé"), + '4772A' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '4772B' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '4773Z' => array('lib'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé", 'art'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé"), + '4774Z' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé"), + '4775Z' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé", 'art'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé"), + '4776Z' => array('lib'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé", 'art'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé"), + '4777Z' => array('lib'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé", 'art'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé"), + '4778A' => array('lib'=>"Commerces de détail d'optique", 'art'=>"Commerces de détail d'optique"), + '4778B' => array('lib'=>"Commerces de détail de charbons et combustibles", 'art'=>"Commerces de détail de charbons et combustibles"), + '4778C' => array('lib'=>"Autres commerces de détail spécialisés divers", 'art'=>"Autres commerces de détail spécialisés divers"), + '4779Z' => array('lib'=>"Commerce de détail de biens d'occasion en magasin", 'art'=>"Commerce de détail de biens d'occasion en magasin"), + '4781Z' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '4782Z' => array('lib'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés", 'art'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés"), + '4789Z' => array('lib'=>"Autres commerces de détail sur éventaires et marchés", 'art'=>"Autres commerces de détail sur éventaires et marchés"), + '4791A' => array('lib'=>"Vente à distance sur catalogue général", 'art'=>"Vente à distance sur catalogue général"), + '4791B' => array('lib'=>"Vente à distance sur catalogue spécialisé", 'art'=>"Vente à distance sur catalogue spécialisé"), + '4799A' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '4799B' => array('lib'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca", 'art'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca"), + '4910Z' => array('lib'=>"Transport ferroviaire interurbain de voyageurs", 'art'=>"Transport ferroviaire interurbain de voyageurs"), + '4920Z' => array('lib'=>"Transports ferroviaires de fret", 'art'=>"Transports ferroviaires de fret"), + '4931Z' => array('lib'=>"Transports urbains et suburbains de voyageurs", 'art'=>"Transports urbains et suburbains de voyageurs"), + '4932Z' => array('lib'=>"Transports de voyageurs par taxis", 'art'=>"Transports de voyageurs par taxis"), + '4939A' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '4939B' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '4939C' => array('lib'=>"Téléphériques et remontées mécaniques", 'art'=>"Téléphériques et remontées mécaniques"), + '4941A' => array('lib'=>"Transports routiers de fret interurbains", 'art'=>"Transports routiers de fret interurbains"), + '4941B' => array('lib'=>"Transports routiers de fret de proximité", 'art'=>"Transports routiers de fret de proximité"), + '4941C' => array('lib'=>"Location de camions avec chauffeur", 'art'=>"Location de camions avec chauffeur"), + '4942Z' => array('lib'=>"Services de déménagement", 'art'=>"Services de déménagement"), + '4950Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '5010Z' => array('lib'=>"Transports maritimes et côtiers de passagers", 'art'=>"Transports maritimes et côtiers de passagers"), + '5020Z' => array('lib'=>"Transports maritimes et côtiers de fret", 'art'=>"Transports maritimes et côtiers de fret"), + '5030Z' => array('lib'=>"Transports fluviaux de passagers", 'art'=>"Transports fluviaux de passagers"), + '5040Z' => array('lib'=>"Transports fluviaux de fret", 'art'=>"Transports fluviaux de fret"), + '5110Z' => array('lib'=>"Transports aériens de passagers", 'art'=>"Transports aériens de passagers"), + '5121Z' => array('lib'=>"Transports aériens de fret", 'art'=>"Transports aériens de fret"), + '5122Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '5210A' => array('lib'=>"Entreposage et stockage frigorifique", 'art'=>"Entreposage et stockage frigorifique"), + '5210B' => array('lib'=>"Entreposage et stockage non frigorifique", 'art'=>"Entreposage et stockage non frigorifique"), + '5221Z' => array('lib'=>"Services auxiliaires des transports terrestres", 'art'=>"Services auxiliaires des transports terrestres"), + '5222Z' => array('lib'=>"Services auxiliaires des transports par eau", 'art'=>"Services auxiliaires des transports par eau"), + '5223Z' => array('lib'=>"Services auxiliaires des transports aériens", 'art'=>"Services auxiliaires des transports aériens"), + '5224A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '5224B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '5229A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '5229B' => array('lib'=>"Affrètement et organisation des transports", 'art'=>"Affrètement et organisation des transports"), + '5310Z' => array('lib'=>"Activités de poste dans le cadre d'une obligation de service universel", 'art'=>"Activités de poste dans le cadre d'une obligation de service universel"), + '5320Z' => array('lib'=>"Autres activités de poste et de courrier", 'art'=>"Autres activités de poste et de courrier"), + '5510Z' => array('lib'=>"Hôtels et hébergement similaire", 'art'=>"Hôtels et hébergement similaire"), + '5520Z' => array('lib'=>"Hébergement touristique et autre hébergement de courte durée", 'art'=>"Hébergement touristique et autre hébergement de courte durée"), + '5530Z' => array('lib'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs", 'art'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs"), + '5590Z' => array('lib'=>"Autres hébergements", 'art'=>"Autres hébergements"), + '5610A' => array('lib'=>"Restauration traditionnelle", 'art'=>"Restauration traditionnelle"), + '5610B' => array('lib'=>"Cafétérias et autres libres-services", 'art'=>"Cafétérias et autres libres-services"), + '5610C' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '5621Z' => array('lib'=>"Services des traiteurs", 'art'=>"Services des traiteurs"), + '5629A' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '5629B' => array('lib'=>"Autres services de restauration nca", 'art'=>"Autres services de restauration nca"), + '5630Z' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '5811Z' => array('lib'=>"Édition de livres", 'art'=>"Édition de livres"), + '5812Z' => array('lib'=>"Édition de répertoires et de fichiers d'adresses", 'art'=>"Édition de répertoires et de fichiers d'adresses"), + '5813Z' => array('lib'=>"Édition de journaux", 'art'=>"Édition de journaux"), + '5814Z' => array('lib'=>"Édition de revues et périodiques", 'art'=>"Édition de revues et périodiques"), + '5819Z' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '5821Z' => array('lib'=>"Édition de jeux électroniques", 'art'=>"Édition de jeux électroniques"), + '5829A' => array('lib'=>"Édition de logiciels système et de réseau", 'art'=>"Édition de logiciels système et de réseau"), + '5829B' => array('lib'=>"Edition de logiciels outils de développement et de langages", 'art'=>"Edition de logiciels outils de développement et de langages"), + '5829C' => array('lib'=>"Edition de logiciels applicatifs", 'art'=>"Edition de logiciels applicatifs"), + '5911A' => array('lib'=>"Production de films et de programmes pour la télévision", 'art'=>"Production de films et de programmes pour la télévision"), + '5911B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '5911C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '5912Z' => array('lib'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision", 'art'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision"), + '5913A' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '5913B' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '5914Z' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '5920Z' => array('lib'=>"Enregistrement sonore et édition musicale", 'art'=>"Enregistrement sonore et édition musicale"), + '6010Z' => array('lib'=>"Édition et diffusion de programmes radio", 'art'=>"Édition et diffusion de programmes radio"), + '6020A' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '6020B' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '6110Z' => array('lib'=>"Télécommunications filaires", 'art'=>"Télécommunications filaires"), + '6120Z' => array('lib'=>"Télécommunications sans fil", 'art'=>"Télécommunications sans fil"), + '6130Z' => array('lib'=>"Télécommunications par satellite", 'art'=>"Télécommunications par satellite"), + '6190Z' => array('lib'=>"Autres activités de télécommunication", 'art'=>"Autres activités de télécommunication"), + '6201Z' => array('lib'=>"Programmation informatique", 'art'=>"Programmation informatique"), + '6202A' => array('lib'=>"Conseil en systèmes et logiciels informatiques", 'art'=>"Conseil en systèmes et logiciels informatiques"), + '6202B' => array('lib'=>"Tierce maintenance de systèmes et d'applications informatiques", 'art'=>"Tierce maintenance de systèmes et d'applications informatiques"), + '6203Z' => array('lib'=>"Gestion d'installations informatiques", 'art'=>"Gestion d'installations informatiques"), + '6209Z' => array('lib'=>"Autres activités informatiques", 'art'=>"Autres activités informatiques"), + '6311Z' => array('lib'=>"Traitement de données, hébergement et activités connexes", 'art'=>"Traitement de données, hébergement et activités connexes"), + '6312Z' => array('lib'=>"Portails internet", 'art'=>"Portails internet"), + '6391Z' => array('lib'=>"Activités des agences de presse", 'art'=>"Activités des agences de presse"), + '6399Z' => array('lib'=>"Autres services d'information nca", 'art'=>"Autres services d'information nca"), + '6411Z' => array('lib'=>"Activités de banque centrale", 'art'=>"Activités de banque centrale"), + '6419Z' => array('lib'=>"Autres intermédiations monétaires", 'art'=>"Autres intermédiations monétaires"), + '6420Z' => array('lib'=>"Activités des sociétés holding", 'art'=>"Activités des sociétés holding"), + '6430Z' => array('lib'=>"Fonds de placement et entités financières similaires", 'art'=>"Fonds de placement et entités financières similaires"), + '6491Z' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '6492Z' => array('lib'=>"Autre distribution de crédit", 'art'=>"Autre distribution de crédit"), + '6499Z' => array('lib'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca"), + '6511Z' => array('lib'=>"Assurance vie", 'art'=>"Assurance vie"), + '6512Z' => array('lib'=>"Autres assurances", 'art'=>"Autres assurances"), + '6520Z' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '6530Z' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '6611Z' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '6612Z' => array('lib'=>"Courtage de valeurs mobilières et de marchandises", 'art'=>"Courtage de valeurs mobilières et de marchandises"), + '6619A' => array('lib'=>"Supports juridiques de gestion de patrimoine mobilier", 'art'=>"Supports juridiques de gestion de patrimoine mobilier"), + '6619B' => array('lib'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca"), + '6621Z' => array('lib'=>"évaluation des risques et dommages", 'art'=>"évaluation des risques et dommages"), + '6622Z' => array('lib'=>"Activités des agents et courtiers d'assurances", 'art'=>"Activités des agents et courtiers d'assurances"), + '6629Z' => array('lib'=>"Autres activités auxiliaires d'assurance et de caisses de retraite", 'art'=>"Autres activités auxiliaires d'assurance et de caisses de retraite"), + '6630Z' => array('lib'=>"Gestion de fonds", 'art'=>"Gestion de fonds"), + '6810Z' => array('lib'=>"Activités des marchands de biens immobiliers", 'art'=>"Activités des marchands de biens immobiliers"), + '6820A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '6820B' => array('lib'=>"Location de terrains et d'autres biens immobiliers", 'art'=>"Location de terrains et d'autres biens immobiliers"), + '6831Z' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '6832A' => array('lib'=>"Administration d'immeubles et autres biens immobiliers", 'art'=>"Administration d'immeubles et autres biens immobiliers"), + '6832B' => array('lib'=>"Supports juridiques de gestion de patrimoine immobilier", 'art'=>"Supports juridiques de gestion de patrimoine immobilier"), + '6910Z' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '6920Z' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '7010Z' => array('lib'=>"Activités des sièges sociaux", 'art'=>"Activités des sièges sociaux"), + '7021Z' => array('lib'=>"Conseil en relations publiques et communication", 'art'=>"Conseil en relations publiques et communication"), + '7022Z' => array('lib'=>"Conseil pour les affaires et autres conseils de gestion", 'art'=>"Conseil pour les affaires et autres conseils de gestion"), + '7111Z' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '7112A' => array('lib'=>"Activité des géomètres", 'art'=>"Activité des géomètres"), + '7112B' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '7120A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '7120B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '7211Z' => array('lib'=>"Recherche-développement en biotechnologie", 'art'=>"Recherche-développement en biotechnologie"), + '7219Z' => array('lib'=>"Recherche-développement en autres sciences physiques et naturelles", 'art'=>"Recherche-développement en autres sciences physiques et naturelles"), + '7220Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '7311Z' => array('lib'=>"Activités des agences de publicité", 'art'=>"Activités des agences de publicité"), + '7312Z' => array('lib'=>"Régie publicitaire de médias", 'art'=>"Régie publicitaire de médias"), + '7320Z' => array('lib'=>"études de marché et sondages", 'art'=>"études de marché et sondages"), + '7410Z' => array('lib'=>"Activités spécialisées de design", 'art'=>"Activités spécialisées de design"), + '7420Z' => array('lib'=>"Activités photographiques", 'art'=>"Activités photographiques"), + '7430Z' => array('lib'=>"Traduction et interprétation", 'art'=>"Traduction et interprétation"), + '7490A' => array('lib'=>"Activité des économistes de la construction", 'art'=>"Activité des économistes de la construction"), + '7490B' => array('lib'=>"Activités spécialisées, scientifiques et techniques diverses", 'art'=>"Activités spécialisées, scientifiques et techniques diverses"), + '7500Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '7711A' => array('lib'=>"Location de courte durée de voitures et de véhicules automobiles légers", 'art'=>"Location de courte durée de voitures et de véhicules automobiles légers"), + '7711B' => array('lib'=>"Location de longue durée de voitures et de véhicules automobiles légers", 'art'=>"Location de longue durée de voitures et de véhicules automobiles légers"), + '7712Z' => array('lib'=>"Location et location-bail de camions", 'art'=>"Location et location-bail de camions"), + '7721Z' => array('lib'=>"Location et location-bail d'articles de loisirs et de sport", 'art'=>"Location et location-bail d'articles de loisirs et de sport"), + '7722Z' => array('lib'=>"Location de vidéocassettes et disques vidéo", 'art'=>"Location de vidéocassettes et disques vidéo"), + '7729Z' => array('lib'=>"Location et location-bail d'autres biens personnels et domestiques", 'art'=>"Location et location-bail d'autres biens personnels et domestiques"), + '7731Z' => array('lib'=>"Location et location-bail de machines et équipements agricoles", 'art'=>"Location et location-bail de machines et équipements agricoles"), + '7732Z' => array('lib'=>"Location et location-bail de machines et équipements pour la construction", 'art'=>"Location et location-bail de machines et équipements pour la construction"), + '7733Z' => array('lib'=>"Location et location-bail de machines de bureau et de matériel informatique", 'art'=>"Location et location-bail de machines de bureau et de matériel informatique"), + '7734Z' => array('lib'=>"Location et location-bail de matériels de transport par eau", 'art'=>"Location et location-bail de matériels de transport par eau"), + '7735Z' => array('lib'=>"Location et location-bail de matériels de transport aérien", 'art'=>"Location et location-bail de matériels de transport aérien"), + '7739Z' => array('lib'=>"Location et location-bail d'autres machines, équipements et biens matériels nca", 'art'=>"Location et location-bail d'autres machines, équipements et biens matériels nca"), + '7740Z' => array('lib'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright", 'art'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright"), + '7810Z' => array('lib'=>"Activités des agences de placement de main-d'œuvre", 'art'=>"Activités des agences de placement de main-d'œuvre"), + '7820Z' => array('lib'=>"Activités des agences de travail temporaire", 'art'=>"Activités des agences de travail temporaire"), + '7830Z' => array('lib'=>"Autre mise à disposition de ressources humaines", 'art'=>"Autre mise à disposition de ressources humaines"), + '7911Z' => array('lib'=>"Activités des agences de voyage", 'art'=>"Activités des agences de voyage"), + '7912Z' => array('lib'=>"Activités des voyagistes", 'art'=>"Activités des voyagistes"), + '7990Z' => array('lib'=>"Autres services de réservation et activités connexes", 'art'=>"Autres services de réservation et activités connexes"), + '8010Z' => array('lib'=>"Activités de sécurité privée", 'art'=>"Activités de sécurité privée"), + '8020Z' => array('lib'=>"Activités liées aux systèmes de sécurité", 'art'=>"Activités liées aux systèmes de sécurité"), + '8030Z' => array('lib'=>"Activités d'enquête", 'art'=>"Activités d'enquête"), + '8110Z' => array('lib'=>"Activités combinées de soutien lié aux bâtiments", 'art'=>"Activités combinées de soutien lié aux bâtiments"), + '8121Z' => array('lib'=>"Nettoyage courant des bâtiments", 'art'=>"Nettoyage courant des bâtiments"), + '8122Z' => array('lib'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel", 'art'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel"), + '8129A' => array('lib'=>"Désinfection, désinsectisation, dératisation", 'art'=>"Désinfection, désinsectisation, dératisation"), + '8129B' => array('lib'=>"Autres activités de nettoyage nca", 'art'=>"Autres activités de nettoyage nca"), + '8130Z' => array('lib'=>"Services d'aménagement paysager", 'art'=>"Services d'aménagement paysager"), + '8211Z' => array('lib'=>"Services administratifs combinés de bureau", 'art'=>"Services administratifs combinés de bureau"), + '8219Z' => array('lib'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau", 'art'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau"), + '8220Z' => array('lib'=>"Activités de centres d'appels", 'art'=>"Activités de centres d'appels"), + '8230Z' => array('lib'=>"Organisation de foires, salons professionnels et congrès", 'art'=>"Organisation de foires, salons professionnels et congrès"), + '8291Z' => array('lib'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle", 'art'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle"), + '8292Z' => array('lib'=>"Activités de conditionnement", 'art'=>"Activités de conditionnement"), + '8299Z' => array('lib'=>"Autres activités de soutien aux entreprises nca", 'art'=>"Autres activités de soutien aux entreprises nca"), + '8411Z' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '8412Z' => array('lib'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale", 'art'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale"), + '8413Z' => array('lib'=>"Administration publique (tutelle) des activités économiques", 'art'=>"Administration publique (tutelle) des activités économiques"), + '8421Z' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '8422Z' => array('lib'=>"Défense", 'art'=>"Défense"), + '8423Z' => array('lib'=>"Justice", 'art'=>"Justice"), + '8424Z' => array('lib'=>"Activités d'ordre public et de sécurité", 'art'=>"Activités d'ordre public et de sécurité"), + '8425Z' => array('lib'=>"Services du feu et de secours", 'art'=>"Services du feu et de secours"), + '8430A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '8430B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '8430C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '8510Z' => array('lib'=>"Enseignement pré-primaire", 'art'=>"Enseignement pré-primaire"), + '8520Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '8531Z' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '8532Z' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '8541Z' => array('lib'=>"Enseignement post-secondaire non supérieur", 'art'=>"Enseignement post-secondaire non supérieur"), + '8542Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '8551Z' => array('lib'=>"Enseignement de disciplines sportives et d'activités de loisirs", 'art'=>"Enseignement de disciplines sportives et d'activités de loisirs"), + '8552Z' => array('lib'=>"Enseignement culturel", 'art'=>"Enseignement culturel"), + '8553Z' => array('lib'=>"Enseignement de la conduite", 'art'=>"Enseignement de la conduite"), + '8559A' => array('lib'=>"Formation continue d'adultes", 'art'=>"Formation continue d'adultes"), + '8559B' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '8560Z' => array('lib'=>"Activités de soutien à l'enseignement", 'art'=>"Activités de soutien à l'enseignement"), + '8610Z' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '8621Z' => array('lib'=>"Activité des médecins généralistes", 'art'=>"Activité des médecins généralistes"), + '8622A' => array('lib'=>"Activités de radiodiagnostic et de radiothérapie", 'art'=>"Activités de radiodiagnostic et de radiothérapie"), + '8622B' => array('lib'=>"Activités chirurgicales", 'art'=>"Activités chirurgicales"), + '8622C' => array('lib'=>"Autres activités des médecins spécialistes", 'art'=>"Autres activités des médecins spécialistes"), + '8623Z' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '8690A' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '8690B' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '8690C' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '8690D' => array('lib'=>"Activités des infirmiers et des sages-femmes", 'art'=>"Activités des infirmiers et des sages-femmes"), + '8690E' => array('lib'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues", 'art'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues"), + '8690F' => array('lib'=>"Activités de santé humaine non classées ailleurs", 'art'=>"Activités de santé humaine non classées ailleurs"), + '8710A' => array('lib'=>"Hébergement médicalisé pour personnes âgées", 'art'=>"Hébergement médicalisé pour personnes âgées"), + '8710B' => array('lib'=>"Hébergement médicalisé pour enfants handicapés", 'art'=>"Hébergement médicalisé pour enfants handicapés"), + '8710C' => array('lib'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé", 'art'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé"), + '8720A' => array('lib'=>"Hébergement social pour handicapés mentaux et malades mentaux", 'art'=>"Hébergement social pour handicapés mentaux et malades mentaux"), + '8720B' => array('lib'=>"Hébergement social pour toxicomanes", 'art'=>"Hébergement social pour toxicomanes"), + '8730A' => array('lib'=>"Hébergement social pour personnes âgées", 'art'=>"Hébergement social pour personnes âgées"), + '8730B' => array('lib'=>"Hébergement social pour handicapés physiques", 'art'=>"Hébergement social pour handicapés physiques"), + '8790A' => array('lib'=>"Hébergement social pour enfants en difficultés", 'art'=>"Hébergement social pour enfants en difficultés"), + '8790B' => array('lib'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social", 'art'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social"), + '8810A' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '8810B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées", 'art'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées"), + '8810C' => array('lib'=>"Aide par le travail", 'art'=>"Aide par le travail"), + '8891A' => array('lib'=>"Accueil de jeunes enfants", 'art'=>"Accueil de jeunes enfants"), + '8891B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés", 'art'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés"), + '8899A' => array('lib'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents", 'art'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents"), + '8899B' => array('lib'=>"Action sociale sans hébergement nca", 'art'=>"Action sociale sans hébergement nca"), + '9001Z' => array('lib'=>"Arts du spectacle vivant", 'art'=>"Arts du spectacle vivant"), + '9002Z' => array('lib'=>"Activités de soutien au spectacle vivant", 'art'=>"Activités de soutien au spectacle vivant"), + '9003A' => array('lib'=>"Création artistique relevant des arts plastiques", 'art'=>"Création artistique relevant des arts plastiques"), + '9003B' => array('lib'=>"Autre création artistique", 'art'=>"Autre création artistique"), + '9004Z' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '9101Z' => array('lib'=>"Gestion des bibliothèques et des archives", 'art'=>"Gestion des bibliothèques et des archives"), + '9102Z' => array('lib'=>"Gestion des musées", 'art'=>"Gestion des musées"), + '9103Z' => array('lib'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires", 'art'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires"), + '9104Z' => array('lib'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles", 'art'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles"), + '9200Z' => array('lib'=>"Organisation de jeux de hasard et d'argent", 'art'=>"Organisation de jeux de hasard et d'argent"), + '9311Z' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '9312Z' => array('lib'=>"Activités de clubs de sports", 'art'=>"Activités de clubs de sports"), + '9313Z' => array('lib'=>"Activités des centres de culture physique", 'art'=>"Activités des centres de culture physique"), + '9319Z' => array('lib'=>"Autres activités liées au sport", 'art'=>"Autres activités liées au sport"), + '9321Z' => array('lib'=>"Activités des parcs d'attractions et parcs à thèmes", 'art'=>"Activités des parcs d'attractions et parcs à thèmes"), + '9329Z' => array('lib'=>"Autres activités récréatives et de loisirs", 'art'=>"Autres activités récréatives et de loisirs"), + '9411Z' => array('lib'=>"Activités des organisations patronales et consulaires", 'art'=>"Activités des organisations patronales et consulaires"), + '9412Z' => array('lib'=>"Activités des organisations professionnelles", 'art'=>"Activités des organisations professionnelles"), + '9420Z' => array('lib'=>"Activités des syndicats de salariés", 'art'=>"Activités des syndicats de salariés"), + '9491Z' => array('lib'=>"Activités des organisations religieuses", 'art'=>"Activités des organisations religieuses"), + '9492Z' => array('lib'=>"Activités des organisations politiques", 'art'=>"Activités des organisations politiques"), + '9499Z' => array('lib'=>"Autres organisations fonctionnant par adhésion volontaire", 'art'=>"Autres organisations fonctionnant par adhésion volontaire"), + '9511Z' => array('lib'=>"Réparation d'ordinateurs et d'équipements périphériques", 'art'=>"Réparation d'ordinateurs et d'équipements périphériques"), + '9512Z' => array('lib'=>"Réparation d'équipements de communication", 'art'=>"Réparation d'équipements de communication"), + '9521Z' => array('lib'=>"Réparation de produits électroniques grand public", 'art'=>"Réparation de produits électroniques grand public"), + '9522Z' => array('lib'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin", 'art'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin"), + '9523Z' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '9524Z' => array('lib'=>"Réparation de meubles et d'équipements du foyer", 'art'=>"Réparation de meubles et d'équipements du foyer"), + '9525Z' => array('lib'=>"Réparation d'articles d'horlogerie et de bijouterie", 'art'=>"Réparation d'articles d'horlogerie et de bijouterie"), + '9529Z' => array('lib'=>"Réparation d'autres biens personnels et domestiques", 'art'=>"Réparation d'autres biens personnels et domestiques"), + '9601A' => array('lib'=>"Blanchisserie-teinturerie de gros", 'art'=>"Blanchisserie-teinturerie de gros"), + '9601B' => array('lib'=>"Blanchisserie-teinturerie de détail", 'art'=>"Blanchisserie-teinturerie de détail"), + '9602A' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '9602B' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '9603Z' => array('lib'=>"Services funéraires", 'art'=>"Services funéraires"), + '9604Z' => array('lib'=>"Entretien corporel", 'art'=>"Entretien corporel"), + '9609Z' => array('lib'=>"Autres services personnels nca", 'art'=>"Autres services personnels nca"), + '9700Z' => array('lib'=>"Activités des ménages en tant qu'employeurs de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeurs de personnel domestique"), + '9810Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '9820Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '9900Z' => array('lib'=>"Activités des organisations et organismes extraterritoriaux", 'art'=>"Activités des organisations et organismes extraterritoriaux"), + '0000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + ), + 'APERNCS' => array( + '000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + '011A' => array('lib'=>"Culture de céréales ; cultures industrielles", 'art'=>"Culture de céréales ; cultures industrielles"), + '011C' => array('lib'=>"Culture de légumes ; maraîchage", 'art'=>"Culture de légumes ; maraîchage"), + '011D' => array('lib'=>"Horticulture ; pépinières", 'art'=>"Horticulture ; pépinières"), + '011F' => array('lib'=>"Culture fruitière", 'art'=>"Culture fruitière"), + '011G' => array('lib'=>"Viticulture", 'art'=>"Viticulture"), + '012A' => array('lib'=>"Elevage de bovins", 'art'=>"Elevage de bovins"), + '012C' => array('lib'=>"Elevage d'ovins, caprins et équidés", 'art'=>"Elevage d'ovins, caprins et équidés"), + '012E' => array('lib'=>"Elevage de porcins", 'art'=>"Elevage de porcins"), + '012G' => array('lib'=>"Elevage de volailles", 'art'=>"Elevage de volailles"), + '012J' => array('lib'=>"Elevage d'autres animaux", 'art'=>"Elevage d'autres animaux"), + '013Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '014A' => array('lib'=>"Services aux cultures productives", 'art'=>"Services aux cultures productives"), + '014B' => array('lib'=>"Réalisation et entretien de plantations ornementales", 'art'=>"Réalisation et entretien de plantations ornementales"), + '014D' => array('lib'=>"Services annexes à l'élevage", 'art'=>"Services annexes à l'élevage"), + '015Z' => array('lib'=>"Chasse", 'art'=>"Chasse"), + '020A' => array('lib'=>"Sylviculture", 'art'=>"Sylviculture"), + '020B' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '020D' => array('lib'=>"Services forestiers", 'art'=>"Services forestiers"), + '050A' => array('lib'=>"Pêche", 'art'=>"Pêche"), + '050C' => array('lib'=>"Pisciculture, aquaculture", 'art'=>"Pisciculture, aquaculture"), + '101Z' => array('lib'=>"Extraction et agglomération de la houille", 'art'=>"Extraction et agglomération de la houille"), + '102Z' => array('lib'=>"Extraction et agglomération du lignite", 'art'=>"Extraction et agglomération du lignite"), + '103Z' => array('lib'=>"Extraction et agglomération de la tourbe", 'art'=>"Extraction et agglomération de la tourbe"), + '111Z' => array('lib'=>"Extraction d'hydrocarbures", 'art'=>"Extraction d'hydrocarbures"), + '112Z' => array('lib'=>"Services annexes à l'extraction d'hydrocarbures", 'art'=>"Services annexes à l'extraction d'hydrocarbures"), + '120Z' => array('lib'=>"Extraction de minerais d'uranium", 'art'=>"Extraction de minerais d'uranium"), + '131Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '132Z' => array('lib'=>"Extraction de minerais de métaux non ferreux", 'art'=>"Extraction de minerais de métaux non ferreux"), + '141A' => array('lib'=>"Extraction de pierres ornementales et de construction", 'art'=>"Extraction de pierres ornementales et de construction"), + '141C' => array('lib'=>"Extraction de calcaire industriel, de gypse et de craie", 'art'=>"Extraction de calcaire industriel, de gypse et de craie"), + '141E' => array('lib'=>"Extraction d'ardoise", 'art'=>"Extraction d'ardoise"), + '142A' => array('lib'=>"Production de sables et de granulats", 'art'=>"Production de sables et de granulats"), + '142C' => array('lib'=>"Extraction d'argiles et de kaolin", 'art'=>"Extraction d'argiles et de kaolin"), + '143Z' => array('lib'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels", 'art'=>"Extraction de minéraux pour l'industrie chimique et d'engrais naturels"), + '144Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '145Z' => array('lib'=>"Activités extractives n.c.a.", 'art'=>"Activités extractives n.c.a."), + '151A' => array('lib'=>"Production de viandes de boucherie", 'art'=>"Production de viandes de boucherie"), + '151C' => array('lib'=>"Production de viandes de volailles", 'art'=>"Production de viandes de volailles"), + '151E' => array('lib'=>"Préparation industrielle de produits à base de viandes", 'art'=>"Préparation industrielle de produits à base de viandes"), + '151F' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '152Z' => array('lib'=>"Industrie du poisson", 'art'=>"Industrie du poisson"), + '153A' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '153C' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '153E' => array('lib'=>"Transformation et conservation de légumes", 'art'=>"Transformation et conservation de légumes"), + '153F' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '154A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '154C' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '154E' => array('lib'=>"Fabrication de margarine", 'art'=>"Fabrication de margarine"), + '155A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '155B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '155C' => array('lib'=>"Fabrication de fromages", 'art'=>"Fabrication de fromages"), + '155D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '155F' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '156A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '156B' => array('lib'=>"Autres activités de travail des grains", 'art'=>"Autres activités de travail des grains"), + '156D' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '157A' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '157C' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '158A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '158B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '158C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '158D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '158F' => array('lib'=>"Biscotterie, biscuiterie, pâtisserie de conservation", 'art'=>"Biscotterie, biscuiterie, pâtisserie de conservation"), + '158H' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '158K' => array('lib'=>"Chocolaterie, confiserie", 'art'=>"Chocolaterie, confiserie"), + '158M' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '158P' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '158R' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '158T' => array('lib'=>"Fabrication d'aliments adaptés à l'enfant et diététiques", 'art'=>"Fabrication d'aliments adaptés à l'enfant et diététiques"), + '158V' => array('lib'=>"Industries alimentaires n.c.a.", 'art'=>"Industries alimentaires n.c.a."), + '159A' => array('lib'=>"Production d'eaux de vie naturelles", 'art'=>"Production d'eaux de vie naturelles"), + '159B' => array('lib'=>"Fabrication de spiritueux", 'art'=>"Fabrication de spiritueux"), + '159D' => array('lib'=>"Production d'alcool éthylique de fermentation", 'art'=>"Production d'alcool éthylique de fermentation"), + '159F' => array('lib'=>"Champagnisation", 'art'=>"Champagnisation"), + '159G' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '159J' => array('lib'=>"Cidrerie", 'art'=>"Cidrerie"), + '159L' => array('lib'=>"Production d'autres boissons fermentées", 'art'=>"Production d'autres boissons fermentées"), + '159N' => array('lib'=>"Brasserie", 'art'=>"Brasserie"), + '159Q' => array('lib'=>"Malterie", 'art'=>"Malterie"), + '159S' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '159T' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '160Z' => array('lib'=>"Industrie du tabac", 'art'=>"Industrie du tabac"), + '171A' => array('lib'=>"Filature de l'industrie cotonnière", 'art'=>"Filature de l'industrie cotonnière"), + '171C' => array('lib'=>"Filature de l'industrie lainière - cycle cardé", 'art'=>"Filature de l'industrie lainière - cycle cardé"), + '171E' => array('lib'=>"Préparation de la laine", 'art'=>"Préparation de la laine"), + '171F' => array('lib'=>"Filature de l'industrie lainière - cycle peigné", 'art'=>"Filature de l'industrie lainière - cycle peigné"), + '171H' => array('lib'=>"Préparation et filature du lin", 'art'=>"Préparation et filature du lin"), + '171K' => array('lib'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques", 'art'=>"Moulinage et texturation de la soie et des textiles artificiels ou synthétiques"), + '171M' => array('lib'=>"Fabrication de fils à coudre", 'art'=>"Fabrication de fils à coudre"), + '171P' => array('lib'=>"Préparation et filature d'autres fibres", 'art'=>"Préparation et filature d'autres fibres"), + '172A' => array('lib'=>"Tissage de l'industrie cotonnière", 'art'=>"Tissage de l'industrie cotonnière"), + '172C' => array('lib'=>"Tissage de l'industrie lainière - cycle cardé", 'art'=>"Tissage de l'industrie lainière - cycle cardé"), + '172E' => array('lib'=>"Tissage de l'industrie lainière - cycle peigné", 'art'=>"Tissage de l'industrie lainière - cycle peigné"), + '172G' => array('lib'=>"Tissage de soieries", 'art'=>"Tissage de soieries"), + '172J' => array('lib'=>"Tissage d'autres textiles", 'art'=>"Tissage d'autres textiles"), + '173Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '174A' => array('lib'=>"Fabrication de linge de maison et d'articles d'ameublement", 'art'=>"Fabrication de linge de maison et d'articles d'ameublement"), + '174B' => array('lib'=>"Fabrication de petits articles textiles de literie", 'art'=>"Fabrication de petits articles textiles de literie"), + '174C' => array('lib'=>"Fabrication d'autres articles confectionnés en textile", 'art'=>"Fabrication d'autres articles confectionnés en textile"), + '175A' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '175C' => array('lib'=>"Ficellerie, corderie, fabrication de filets", 'art'=>"Ficellerie, corderie, fabrication de filets"), + '175E' => array('lib'=>"Fabrication de non-tissés", 'art'=>"Fabrication de non-tissés"), + '175G' => array('lib'=>"Industries textiles n.c.a.", 'art'=>"Industries textiles n.c.a."), + '176Z' => array('lib'=>"Fabrication d'étoffes à maille", 'art'=>"Fabrication d'étoffes à maille"), + '177A' => array('lib'=>"Fabrication de bas et chaussettes", 'art'=>"Fabrication de bas et chaussettes"), + '177C' => array('lib'=>"Fabrication de pull-overs et articles similaires", 'art'=>"Fabrication de pull-overs et articles similaires"), + '181Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '182A' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '182C' => array('lib'=>"Fabrication de vêtements sur mesure", 'art'=>"Fabrication de vêtements sur mesure"), + '182D' => array('lib'=>"Fabrication de vêtements de dessus pour hommes et garçonnets", 'art'=>"Fabrication de vêtements de dessus pour hommes et garçonnets"), + '182E' => array('lib'=>"Fabrication de vêtements de dessus pour femmes et fillettes", 'art'=>"Fabrication de vêtements de dessus pour femmes et fillettes"), + '182G' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '182J' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '183Z' => array('lib'=>"Industrie des fourrures", 'art'=>"Industrie des fourrures"), + '191Z' => array('lib'=>"Apprêt et tannage des cuirs", 'art'=>"Apprêt et tannage des cuirs"), + '192Z' => array('lib'=>"Fabrication d'articles de voyage et de maroquinerie", 'art'=>"Fabrication d'articles de voyage et de maroquinerie"), + '193Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '201A' => array('lib'=>"Sciage et rabotage du bois", 'art'=>"Sciage et rabotage du bois"), + '201B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '202Z' => array('lib'=>"Fabrication de panneaux de bois", 'art'=>"Fabrication de panneaux de bois"), + '203Z' => array('lib'=>"Fabrication de charpentes et de menuiseries", 'art'=>"Fabrication de charpentes et de menuiseries"), + '204Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '205A' => array('lib'=>"Fabrication d'objets divers en bois", 'art'=>"Fabrication d'objets divers en bois"), + '205C' => array('lib'=>"Fabrication d'objets en liège, vannerie ou sparterie", 'art'=>"Fabrication d'objets en liège, vannerie ou sparterie"), + '211A' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '211C' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '212A' => array('lib'=>"Industrie du carton ondulé", 'art'=>"Industrie du carton ondulé"), + '212B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '212C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '212E' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '212G' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '212J' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '212L' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '221A' => array('lib'=>"Edition de livres", 'art'=>"Edition de livres"), + '221C' => array('lib'=>"Edition de journaux", 'art'=>"Edition de journaux"), + '221E' => array('lib'=>"Edition de revues et périodiques", 'art'=>"Edition de revues et périodiques"), + '221G' => array('lib'=>"Edition d'enregistrements sonores", 'art'=>"Edition d'enregistrements sonores"), + '221J' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '222A' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '222C' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '222E' => array('lib'=>"Reliure", 'art'=>"Reliure"), + '222G' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '222J' => array('lib'=>"Activités graphiques auxiliaires", 'art'=>"Activités graphiques auxiliaires"), + '223A' => array('lib'=>"Reproduction d'enregistrements sonores", 'art'=>"Reproduction d'enregistrements sonores"), + '223C' => array('lib'=>"Reproduction d'enregistrements vidéo", 'art'=>"Reproduction d'enregistrements vidéo"), + '223E' => array('lib'=>"Reproduction d'enregistrements informatiques", 'art'=>"Reproduction d'enregistrements informatiques"), + '231Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '232Z' => array('lib'=>"Raffinage de pétrole", 'art'=>"Raffinage de pétrole"), + '233Z' => array('lib'=>"Elaboration et transformation de matières nucléaires", 'art'=>"Elaboration et transformation de matières nucléaires"), + '241A' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '241C' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '241E' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base"), + '241G' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '241J' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '241L' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '241N' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '242Z' => array('lib'=>"Fabrication de produits agrochimiques", 'art'=>"Fabrication de produits agrochimiques"), + '243Z' => array('lib'=>"Fabrication de peintures et vernis", 'art'=>"Fabrication de peintures et vernis"), + '244A' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '244C' => array('lib'=>"Fabrication de médicaments", 'art'=>"Fabrication de médicaments"), + '244D' => array('lib'=>"Fabrication d'autres produits pharmaceutiques", 'art'=>"Fabrication d'autres produits pharmaceutiques"), + '245A' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '245C' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '246A' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '246C' => array('lib'=>"Fabrication de colles et gélatines", 'art'=>"Fabrication de colles et gélatines"), + '246E' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '246G' => array('lib'=>"Fabrication de produits chimiques pour la photographie", 'art'=>"Fabrication de produits chimiques pour la photographie"), + '246J' => array('lib'=>"Fabrication de supports de données", 'art'=>"Fabrication de supports de données"), + '246L' => array('lib'=>"Fabrication de produits chimiques à usage industriel", 'art'=>"Fabrication de produits chimiques à usage industriel"), + '247Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '251A' => array('lib'=>"Fabrication de pneumatiques", 'art'=>"Fabrication de pneumatiques"), + '251C' => array('lib'=>"Rechapage de pneumatiques", 'art'=>"Rechapage de pneumatiques"), + '251E' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '252A' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '252C' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '252E' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '252G' => array('lib'=>"Fabrication d'articles divers en matières plastiques", 'art'=>"Fabrication d'articles divers en matières plastiques"), + '252H' => array('lib'=>"Fabrication de pièces techniques en matières plastiques", 'art'=>"Fabrication de pièces techniques en matières plastiques"), + '261A' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '261C' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '261E' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '261G' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '261J' => array('lib'=>"Fabrication et façonnage d'articles techniques en verre", 'art'=>"Fabrication et façonnage d'articles techniques en verre"), + '261K' => array('lib'=>"Fabrication d'isolateurs en verre", 'art'=>"Fabrication d'isolateurs en verre"), + '262A' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '262C' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '262E' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '262G' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '262J' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '262L' => array('lib'=>"Fabrication de produits céramiques réfractaires", 'art'=>"Fabrication de produits céramiques réfractaires"), + '263Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '264A' => array('lib'=>"Fabrication de briques", 'art'=>"Fabrication de briques"), + '264B' => array('lib'=>"Fabrication de tuiles", 'art'=>"Fabrication de tuiles"), + '264C' => array('lib'=>"Fabrication de produits divers en terre cuite", 'art'=>"Fabrication de produits divers en terre cuite"), + '265A' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '265C' => array('lib'=>"Fabrication de chaux", 'art'=>"Fabrication de chaux"), + '265E' => array('lib'=>"Fabrication de plâtre", 'art'=>"Fabrication de plâtre"), + '266A' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '266C' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '266E' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '266G' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '266J' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '266L' => array('lib'=>"Fabrication d'autres ouvrages en béton ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton ou en plâtre"), + '267Z' => array('lib'=>"Taille, façonnage et finissage de pierres ornementales et de construction", 'art'=>"Taille, façonnage et finissage de pierres ornementales et de construction"), + '268A' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '268C' => array('lib'=>"Fabrication de produits minéraux non métalliques n.c.a.", 'art'=>"Fabrication de produits minéraux non métalliques n.c.a."), + '271Y' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '271Z' => array('lib'=>"Sidérurgie (CECA)", 'art'=>"Sidérurgie (CECA)"), + '272A' => array('lib'=>"Fabrication de tubes en fonte", 'art'=>"Fabrication de tubes en fonte"), + '272C' => array('lib'=>"Fabrication de tubes en acier", 'art'=>"Fabrication de tubes en acier"), + '273A' => array('lib'=>"Etirage à froid", 'art'=>"Etirage à froid"), + '273C' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '273E' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '273G' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '273J' => array('lib'=>"Production de ferroalliages et autres produits non CECA", 'art'=>"Production de ferroalliages et autres produits non CECA"), + '274A' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '274C' => array('lib'=>"Production d'aluminium", 'art'=>"Production d'aluminium"), + '274D' => array('lib'=>"Première transformation de l'aluminium", 'art'=>"Première transformation de l'aluminium"), + '274F' => array('lib'=>"Production de plomb, de zinc ou d'étain", 'art'=>"Production de plomb, de zinc ou d'étain"), + '274G' => array('lib'=>"Première transformation du plomb, du zinc ou de l'étain", 'art'=>"Première transformation du plomb, du zinc ou de l'étain"), + '274J' => array('lib'=>"Production de cuivre", 'art'=>"Production de cuivre"), + '274K' => array('lib'=>"Première transformation du cuivre", 'art'=>"Première transformation du cuivre"), + '274M' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '275A' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '275C' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '275E' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '275G' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '281A' => array('lib'=>"Fabrication de constructions métalliques", 'art'=>"Fabrication de constructions métalliques"), + '281C' => array('lib'=>"Fabrication de menuiseries et fermetures métalliques", 'art'=>"Fabrication de menuiseries et fermetures métalliques"), + '282A' => array('lib'=>"Fabrication de réservoirs et citernes métalliques", 'art'=>"Fabrication de réservoirs et citernes métalliques"), + '282B' => array('lib'=>"Fabrication de bouteilles pour gaz comprimés", 'art'=>"Fabrication de bouteilles pour gaz comprimés"), + '282C' => array('lib'=>"Fabrication de réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication de réservoirs, citernes et conteneurs métalliques"), + '282D' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '283A' => array('lib'=>"Fabrication de générateurs de vapeur", 'art'=>"Fabrication de générateurs de vapeur"), + '283B' => array('lib'=>"Chaudronnerie nucléaire", 'art'=>"Chaudronnerie nucléaire"), + '283C' => array('lib'=>"Chaudronnerie-tuyauterie", 'art'=>"Chaudronnerie-tuyauterie"), + '284A' => array('lib'=>"Forge, estampage, matriçage", 'art'=>"Forge, estampage, matriçage"), + '284B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '284C' => array('lib'=>"Métallurgie des poudres", 'art'=>"Métallurgie des poudres"), + '285A' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '285C' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '285D' => array('lib'=>"Mécanique générale", 'art'=>"Mécanique générale"), + '286A' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '286C' => array('lib'=>"Fabrication d'outillage à main", 'art'=>"Fabrication d'outillage à main"), + '286D' => array('lib'=>"Fabrication d'outillage mécanique", 'art'=>"Fabrication d'outillage mécanique"), + '286F' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '287A' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '287C' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '287E' => array('lib'=>"Fabrication d'articles en fils métalliques", 'art'=>"Fabrication d'articles en fils métalliques"), + '287G' => array('lib'=>"Visserie et boulonnerie", 'art'=>"Visserie et boulonnerie"), + '287H' => array('lib'=>"Fabrication de ressorts", 'art'=>"Fabrication de ressorts"), + '287J' => array('lib'=>"Fabrication de chaînes", 'art'=>"Fabrication de chaînes"), + '287L' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '287M' => array('lib'=>"Fabrication de coffres-forts", 'art'=>"Fabrication de coffres-forts"), + '287N' => array('lib'=>"Fabrication de petits articles métalliques", 'art'=>"Fabrication de petits articles métalliques"), + '287P' => array('lib'=>"Fabrication d'articles métalliques n.c.a.", 'art'=>"Fabrication d'articles métalliques n.c.a."), + '287Q' => array('lib'=>"Fabrication d'articles métalliques divers", 'art'=>"Fabrication d'articles métalliques divers"), + '291A' => array('lib'=>"Fabrication de moteurs et turbines", 'art'=>"Fabrication de moteurs et turbines"), + '291B' => array('lib'=>"Fabrication de pompes", 'art'=>"Fabrication de pompes"), + '291C' => array('lib'=>"Fabrication de pompes et compresseurs", 'art'=>"Fabrication de pompes et compresseurs"), + '291D' => array('lib'=>"Fabrication de transmissions hydrauliques et pneumatiques", 'art'=>"Fabrication de transmissions hydrauliques et pneumatiques"), + '291E' => array('lib'=>"Fabrication de compresseurs", 'art'=>"Fabrication de compresseurs"), + '291F' => array('lib'=>"Fabrication d'articles de robinetterie", 'art'=>"Fabrication d'articles de robinetterie"), + '291H' => array('lib'=>"Fabrication de roulements", 'art'=>"Fabrication de roulements"), + '291J' => array('lib'=>"Fabrication d'organes mécaniques de transmission", 'art'=>"Fabrication d'organes mécaniques de transmission"), + '292A' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '292C' => array('lib'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques", 'art'=>"Fabrication d'ascenseurs, monte-charges et escaliers mécaniques"), + '292D' => array('lib'=>"Fabrication d'équipements de levage et de manutention", 'art'=>"Fabrication d'équipements de levage et de manutention"), + '292F' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '292H' => array('lib'=>"Fabrication d'équipements d'emballage et de conditionnement", 'art'=>"Fabrication d'équipements d'emballage et de conditionnement"), + '292J' => array('lib'=>"Fabrication d'appareils de pesage", 'art'=>"Fabrication d'appareils de pesage"), + '292K' => array('lib'=>"Fabrication de machines diverses d'usage général", 'art'=>"Fabrication de machines diverses d'usage général"), + '292L' => array('lib'=>"Fabrication de matériel pour les industries chimiques", 'art'=>"Fabrication de matériel pour les industries chimiques"), + '292M' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '293A' => array('lib'=>"Fabrication de tracteurs agricoles", 'art'=>"Fabrication de tracteurs agricoles"), + '293C' => array('lib'=>"Réparation de matériel agricole", 'art'=>"Réparation de matériel agricole"), + '293D' => array('lib'=>"Fabrication de matériel agricole", 'art'=>"Fabrication de matériel agricole"), + '294A' => array('lib'=>"Fabrication de machines-outils à métaux", 'art'=>"Fabrication de machines-outils à métaux"), + '294B' => array('lib'=>"Fabrication de machines-outils à bois", 'art'=>"Fabrication de machines-outils à bois"), + '294C' => array('lib'=>"Fabrication de machines-outils portatives à moteur incorporé", 'art'=>"Fabrication de machines-outils portatives à moteur incorporé"), + '294D' => array('lib'=>"Fabrication de matériel de soudage", 'art'=>"Fabrication de matériel de soudage"), + '294E' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '295A' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '295B' => array('lib'=>"Fabrication de matériels de mines pour l'extraction", 'art'=>"Fabrication de matériels de mines pour l'extraction"), + '295C' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '295D' => array('lib'=>"Fabrication de matériels de travaux publics", 'art'=>"Fabrication de matériels de travaux publics"), + '295E' => array('lib'=>"Fabrication de machines pour l'industrie agroalimentaire", 'art'=>"Fabrication de machines pour l'industrie agroalimentaire"), + '295G' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '295J' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '295L' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '295M' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '295N' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '295P' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '295Q' => array('lib'=>"Fabrication de machines d'assemblage automatique", 'art'=>"Fabrication de machines d'assemblage automatique"), + '295R' => array('lib'=>"Fabrication machines spécialisées diverses", 'art'=>"Fabrication machines spécialisées diverses"), + '296A' => array('lib'=>"Fabrication d'armement", 'art'=>"Fabrication d'armement"), + '296B' => array('lib'=>"Fabrication d'armes de chasse, de tir et de défense", 'art'=>"Fabrication d'armes de chasse, de tir et de défense"), + '297A' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '297C' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '300A' => array('lib'=>"Fabrication de machines de bureau", 'art'=>"Fabrication de machines de bureau"), + '300C' => array('lib'=>"Fabrication d'ordinateurs et d'autres équipements informatiques", 'art'=>"Fabrication d'ordinateurs et d'autres équipements informatiques"), + '311A' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de petite et moyenne puissance"), + '311B' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques de grande puissance"), + '311C' => array('lib'=>"Réparation de matériels électriques", 'art'=>"Réparation de matériels électriques"), + '312A' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour basse tension"), + '312B' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension", 'art'=>"Fabrication de matériel de distribution et de commande électrique pour haute tension"), + '313Z' => array('lib'=>"Fabrication de fils et câbles isolés", 'art'=>"Fabrication de fils et câbles isolés"), + '314Z' => array('lib'=>"Fabrication d'accumulateurs et de piles électriques", 'art'=>"Fabrication d'accumulateurs et de piles électriques"), + '315A' => array('lib'=>"Fabrication de lampes", 'art'=>"Fabrication de lampes"), + '315B' => array('lib'=>"Fabrication d'appareils électriques autonomes de sécurité", 'art'=>"Fabrication d'appareils électriques autonomes de sécurité"), + '315C' => array('lib'=>"Fabrication d'appareils d'éclairage", 'art'=>"Fabrication d'appareils d'éclairage"), + '316A' => array('lib'=>"Fabrication de matériels électriques pour moteurs et véhicules", 'art'=>"Fabrication de matériels électriques pour moteurs et véhicules"), + '316C' => array('lib'=>"Fabrication de matériel électromagnétique industriel", 'art'=>"Fabrication de matériel électromagnétique industriel"), + '316D' => array('lib'=>"Fabrication de matériels électriques n.c.a.", 'art'=>"Fabrication de matériels électriques n.c.a."), + '321A' => array('lib'=>"Fabrication de composants passifs et de condensateurs", 'art'=>"Fabrication de composants passifs et de condensateurs"), + '321B' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321C' => array('lib'=>"Fabrication de composants électroniques actifs", 'art'=>"Fabrication de composants électroniques actifs"), + '321D' => array('lib'=>"Assemblage de cartes électroniques pour compte de tiers", 'art'=>"Assemblage de cartes électroniques pour compte de tiers"), + '322A' => array('lib'=>"Fabrication d'équipements d'émission et de transmission hertzienne", 'art'=>"Fabrication d'équipements d'émission et de transmission hertzienne"), + '322B' => array('lib'=>"Fabrication d'appareils de téléphonie", 'art'=>"Fabrication d'appareils de téléphonie"), + '323Z' => array('lib'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image", 'art'=>"Fabrication d'appareils de réception, enregistrement ou reproduction du son et de l'image"), + '331A' => array('lib'=>"Fabrication de matériel d'imagerie médicale et de radiologie", 'art'=>"Fabrication de matériel d'imagerie médicale et de radiologie"), + '331B' => array('lib'=>"Fabrication d'appareils médicochirurgicaux", 'art'=>"Fabrication d'appareils médicochirurgicaux"), + '332A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '332B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '333Z' => array('lib'=>"Fabrication d'équipements de contrôle des processus industriels", 'art'=>"Fabrication d'équipements de contrôle des processus industriels"), + '334A' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '334B' => array('lib'=>"Fabrication d'instruments d'optique et de matériel photographique", 'art'=>"Fabrication d'instruments d'optique et de matériel photographique"), + '335Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '341Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '342A' => array('lib'=>"Fabrication de carrosseries automobiles", 'art'=>"Fabrication de carrosseries automobiles"), + '342B' => array('lib'=>"Fabrications de caravanes et véhicules de loisirs", 'art'=>"Fabrications de caravanes et véhicules de loisirs"), + '343Z' => array('lib'=>"Fabrication d'équipements automobiles", 'art'=>"Fabrication d'équipements automobiles"), + '351A' => array('lib'=>"Construction de bâtiments de guerre", 'art'=>"Construction de bâtiments de guerre"), + '351B' => array('lib'=>"Construction de navires civils", 'art'=>"Construction de navires civils"), + '351C' => array('lib'=>"Réparation navale", 'art'=>"Réparation navale"), + '351E' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '352Z' => array('lib'=>"Construction de matériel ferroviaire roulant", 'art'=>"Construction de matériel ferroviaire roulant"), + '353A' => array('lib'=>"Construction de moteurs pour aéronefs", 'art'=>"Construction de moteurs pour aéronefs"), + '353B' => array('lib'=>"Construction de cellules d'aéronefs", 'art'=>"Construction de cellules d'aéronefs"), + '353C' => array('lib'=>"Construction de lanceurs et engins spatiaux", 'art'=>"Construction de lanceurs et engins spatiaux"), + '354A' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '354C' => array('lib'=>"Fabrication de bicyclettes", 'art'=>"Fabrication de bicyclettes"), + '354E' => array('lib'=>"Fabrication de véhicules pour invalides", 'art'=>"Fabrication de véhicules pour invalides"), + '355Z' => array('lib'=>"Fabrication de matériels de transport n.c.a.", 'art'=>"Fabrication de matériels de transport n.c.a."), + '361A' => array('lib'=>"Fabrication de sièges", 'art'=>"Fabrication de sièges"), + '361C' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '361E' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '361G' => array('lib'=>"Fabrication de meubles meublants", 'art'=>"Fabrication de meubles meublants"), + '361H' => array('lib'=>"Fabrication de meubles de jardin et d'extérieur", 'art'=>"Fabrication de meubles de jardin et d'extérieur"), + '361J' => array('lib'=>"Fabrication de meubles n.c.a.", 'art'=>"Fabrication de meubles n.c.a."), + '361K' => array('lib'=>"Industries connexes de l'ameublement", 'art'=>"Industries connexes de l'ameublement"), + '361M' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '362A' => array('lib'=>"Fabrication de monnaies", 'art'=>"Fabrication de monnaies"), + '362C' => array('lib'=>"Bijouterie, joaillerie, orfèvrerie", 'art'=>"Bijouterie, joaillerie, orfèvrerie"), + '363Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '364Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '365Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '366A' => array('lib'=>"Bijouterie fantaisie", 'art'=>"Bijouterie fantaisie"), + '366C' => array('lib'=>"Industrie de la brosserie", 'art'=>"Industrie de la brosserie"), + '366E' => array('lib'=>"Autres activités manufacturières n.c.a.", 'art'=>"Autres activités manufacturières n.c.a."), + '371Z' => array('lib'=>"Récupération de matières métalliques recyclables", 'art'=>"Récupération de matières métalliques recyclables"), + '372Z' => array('lib'=>"Récupération de matières non métalliques recyclables", 'art'=>"Récupération de matières non métalliques recyclables"), + '401A' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '401C' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '401E' => array('lib'=>"Distribution et commerce d'électricité", 'art'=>"Distribution et commerce d'électricité"), + '401Z' => array('lib'=>"Production et distribution d'électricité", 'art'=>"Production et distribution d'électricité"), + '402A' => array('lib'=>"Production de combustible gazeux", 'art'=>"Production de combustible gazeux"), + '402C' => array('lib'=>"Distribution de combustibles gazeux", 'art'=>"Distribution de combustibles gazeux"), + '402Z' => array('lib'=>"Production et distribution de combustibles gazeux", 'art'=>"Production et distribution de combustibles gazeux"), + '403Z' => array('lib'=>"Production et distribution de chaleur", 'art'=>"Production et distribution de chaleur"), + '410Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '451A' => array('lib'=>"Terrassements divers, démolition", 'art'=>"Terrassements divers, démolition"), + '451B' => array('lib'=>"Terrassements en grande masse", 'art'=>"Terrassements en grande masse"), + '451D' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '452A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '452B' => array('lib'=>"Construction de bâtiments divers", 'art'=>"Construction de bâtiments divers"), + '452C' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '452D' => array('lib'=>"Travaux souterrains", 'art'=>"Travaux souterrains"), + '452E' => array('lib'=>"Réalisation de réseaux", 'art'=>"Réalisation de réseaux"), + '452F' => array('lib'=>"Construction de lignes électriques et de télécommunication", 'art'=>"Construction de lignes électriques et de télécommunication"), + '452J' => array('lib'=>"Réalisation de couvertures par éléments", 'art'=>"Réalisation de couvertures par éléments"), + '452K' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '452L' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '452N' => array('lib'=>"Construction de voies ferrées", 'art'=>"Construction de voies ferrées"), + '452P' => array('lib'=>"Construction de chaussées routières et de sols sportifs", 'art'=>"Construction de chaussées routières et de sols sportifs"), + '452R' => array('lib'=>"Travaux maritimes et fluviaux", 'art'=>"Travaux maritimes et fluviaux"), + '452T' => array('lib'=>"Levage, montage", 'art'=>"Levage, montage"), + '452U' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '452V' => array('lib'=>"Travaux de maçonnerie générale", 'art'=>"Travaux de maçonnerie générale"), + '453A' => array('lib'=>"Travaux d'installation électrique", 'art'=>"Travaux d'installation électrique"), + '453C' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '453E' => array('lib'=>"Installation d'eau et de gaz", 'art'=>"Installation d'eau et de gaz"), + '453F' => array('lib'=>"Installation d'équipements thermiques et de climatisation", 'art'=>"Installation d'équipements thermiques et de climatisation"), + '453H' => array('lib'=>"Autres travaux d'installation", 'art'=>"Autres travaux d'installation"), + '454A' => array('lib'=>"Plâtrerie", 'art'=>"Plâtrerie"), + '454C' => array('lib'=>"Menuiserie bois et matières plastiques", 'art'=>"Menuiserie bois et matières plastiques"), + '454D' => array('lib'=>"Menuiserie métallique ; serrurerie", 'art'=>"Menuiserie métallique ; serrurerie"), + '454F' => array('lib'=>"Revêtement des sols et des murs", 'art'=>"Revêtement des sols et des murs"), + '454H' => array('lib'=>"Miroiterie de bâtiment, vitrerie", 'art'=>"Miroiterie de bâtiment, vitrerie"), + '454J' => array('lib'=>"Peinture", 'art'=>"Peinture"), + '454L' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '454M' => array('lib'=>"Travaux de finition n.c.a.", 'art'=>"Travaux de finition n.c.a."), + '455Z' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '501Z' => array('lib'=>"Commerce de véhicules automobiles", 'art'=>"Commerce de véhicules automobiles"), + '502Z' => array('lib'=>"Entretien et réparation de véhicules automobiles", 'art'=>"Entretien et réparation de véhicules automobiles"), + '503A' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '503B' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '504Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '505Z' => array('lib'=>"Commerce de détail de carburants", 'art'=>"Commerce de détail de carburants"), + '511A' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et demi-produits"), + '511C' => array('lib'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '511E' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '511G' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '511J' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '511L' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, chaussures et articles en cuir"), + '511N' => array('lib'=>"Intermédiaires du commerce en produits alimentaires", 'art'=>"Intermédiaires du commerce en produits alimentaires"), + '511P' => array('lib'=>"Centrales d'achats alimentaires", 'art'=>"Centrales d'achats alimentaires"), + '511R' => array('lib'=>"Autres intermédiaires spécialisés du commerce", 'art'=>"Autres intermédiaires spécialisés du commerce"), + '511T' => array('lib'=>"Intermédiaires non spécialisés du commerce", 'art'=>"Intermédiaires non spécialisés du commerce"), + '511U' => array('lib'=>"Centrales d'achats non alimentaires", 'art'=>"Centrales d'achats non alimentaires"), + '512A' => array('lib'=>"Commerce de gros de céréales et aliments pour le bétail", 'art'=>"Commerce de gros de céréales et aliments pour le bétail"), + '512C' => array('lib'=>"Commerce de gros de fleurs et plantes", 'art'=>"Commerce de gros de fleurs et plantes"), + '512E' => array('lib'=>"Commerce de gros d'animaux vivants", 'art'=>"Commerce de gros d'animaux vivants"), + '512G' => array('lib'=>"Commerce de gros de cuirs et peaux", 'art'=>"Commerce de gros de cuirs et peaux"), + '512J' => array('lib'=>"Commerce de gros de tabac non manufacturé", 'art'=>"Commerce de gros de tabac non manufacturé"), + '513A' => array('lib'=>"Commerce de gros de fruits et légumes", 'art'=>"Commerce de gros de fruits et légumes"), + '513C' => array('lib'=>"Commerce de gros de viandes de boucherie", 'art'=>"Commerce de gros de viandes de boucherie"), + '513D' => array('lib'=>"Commerce de gros de produits à base de viande", 'art'=>"Commerce de gros de produits à base de viande"), + '513E' => array('lib'=>"Commerce de gros de volailles et gibiers", 'art'=>"Commerce de gros de volailles et gibiers"), + '513G' => array('lib'=>"Commerce de gros de produits laitiers, oeufs, huiles", 'art'=>"Commerce de gros de produits laitiers, oeufs, huiles"), + '513J' => array('lib'=>"Commerce de gros de boissons", 'art'=>"Commerce de gros de boissons"), + '513L' => array('lib'=>"Commerce de gros de tabac", 'art'=>"Commerce de gros de tabac"), + '513N' => array('lib'=>"Commerce de gros de sucre, chocolat et confiserie", 'art'=>"Commerce de gros de sucre, chocolat et confiserie"), + '513Q' => array('lib'=>"Commerce de gros de café, thé, cacao et épices", 'art'=>"Commerce de gros de café, thé, cacao et épices"), + '513S' => array('lib'=>"Commerce de gros de poissons, crustacés et mollusques", 'art'=>"Commerce de gros de poissons, crustacés et mollusques"), + '513T' => array('lib'=>"Commerces de gros alimentaires spécialisés divers", 'art'=>"Commerces de gros alimentaires spécialisés divers"), + '513V' => array('lib'=>"Commerce de gros de produits surgelés", 'art'=>"Commerce de gros de produits surgelés"), + '513W' => array('lib'=>"Commerce de gros alimentaire non spécialisé", 'art'=>"Commerce de gros alimentaire non spécialisé"), + '514A' => array('lib'=>"Commerce de gros de textiles", 'art'=>"Commerce de gros de textiles"), + '514C' => array('lib'=>"Commerce de gros d'habillement", 'art'=>"Commerce de gros d'habillement"), + '514D' => array('lib'=>"Commerce de gros de la chaussure", 'art'=>"Commerce de gros de la chaussure"), + '514F' => array('lib'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions", 'art'=>"Commerce de gros d'appareils électroménagers et de radios et télévisions"), + '514H' => array('lib'=>"Commerce de gros de vaisselle et verrerie de ménage", 'art'=>"Commerce de gros de vaisselle et verrerie de ménage"), + '514J' => array('lib'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat", 'art'=>"Commerce de gros de produits pour l'entretien et l'aménagement de l'habitat"), + '514L' => array('lib'=>"Commerce de gros de parfumerie et de produits de beauté", 'art'=>"Commerce de gros de parfumerie et de produits de beauté"), + '514N' => array('lib'=>"Commerce de gros de produits pharmaceutiques", 'art'=>"Commerce de gros de produits pharmaceutiques"), + '514Q' => array('lib'=>"Commerce de gros de papeterie", 'art'=>"Commerce de gros de papeterie"), + '514R' => array('lib'=>"Commerce de gros de jouets", 'art'=>"Commerce de gros de jouets"), + '514S' => array('lib'=>"Autres commerces de gros de biens de consommation", 'art'=>"Autres commerces de gros de biens de consommation"), + '515A' => array('lib'=>"Commerce de gros de combustibles", 'art'=>"Commerce de gros de combustibles"), + '515C' => array('lib'=>"Commerce de gros de minerais et métaux", 'art'=>"Commerce de gros de minerais et métaux"), + '515E' => array('lib'=>"Commerce de gros de bois et de produits dérivés", 'art'=>"Commerce de gros de bois et de produits dérivés"), + '515F' => array('lib'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires", 'art'=>"Commerce de gros de matériaux de construction et d'appareils sanitaires"), + '515H' => array('lib'=>"Commerce de gros de quincaillerie", 'art'=>"Commerce de gros de quincaillerie"), + '515J' => array('lib'=>"Commerce de gros de fournitures pour plomberie et chauffage", 'art'=>"Commerce de gros de fournitures pour plomberie et chauffage"), + '515L' => array('lib'=>"Commerce de gros de produits chimiques", 'art'=>"Commerce de gros de produits chimiques"), + '515N' => array('lib'=>"Commerce de gros d'autres produits intermédiaires", 'art'=>"Commerce de gros d'autres produits intermédiaires"), + '515Q' => array('lib'=>"Commerce de gros de déchets et débris", 'art'=>"Commerce de gros de déchets et débris"), + '516A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '516C' => array('lib'=>"Commerce de gros d'équipements pour la construction", 'art'=>"Commerce de gros d'équipements pour la construction"), + '516E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '516G' => array('lib'=>"Commerce de gros de machines de bureau et de matériel informatique", 'art'=>"Commerce de gros de machines de bureau et de matériel informatique"), + '516J' => array('lib'=>"Commerce de gros de matériel électrique et électronique", 'art'=>"Commerce de gros de matériel électrique et électronique"), + '516K' => array('lib'=>"Commerce gros fournitures et équipements industriels divers", 'art'=>"Commerce gros fournitures et équipements industriels divers"), + '516L' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '516N' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '517Z' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '518A' => array('lib'=>"Commerce de gros de machines-outils", 'art'=>"Commerce de gros de machines-outils"), + '518C' => array('lib'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros de machines pour l'extraction, la construction et le génie civil"), + '518E' => array('lib'=>"Commerce de gros de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros de machines pour l'industrie textile et l'habillement"), + '518G' => array('lib'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels", 'art'=>"Commerce de gros d'ordinateurs, d'équipements informatiques périphériques et de progiciels"), + '518H' => array('lib'=>"Commerce de gros d'autres machines et équipements de bureau", 'art'=>"Commerce de gros d'autres machines et équipements de bureau"), + '518J' => array('lib'=>"Commerce de gros de composants et d'autres équipements électroniques", 'art'=>"Commerce de gros de composants et d'autres équipements électroniques"), + '518L' => array('lib'=>"Commerce de gros de matériel électrique", 'art'=>"Commerce de gros de matériel électrique"), + '518M' => array('lib'=>"Commerce de gros de fournitures et équipements industriels divers", 'art'=>"Commerce de gros de fournitures et équipements industriels divers"), + '518N' => array('lib'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros de fournitures et équipements divers pour le commerce et les services"), + '518P' => array('lib'=>"Commerce de gros de matériel agricole", 'art'=>"Commerce de gros de matériel agricole"), + '519A' => array('lib'=>"Autres commerces de gros spécialisés", 'art'=>"Autres commerces de gros spécialisés"), + '519B' => array('lib'=>"Commerce de gros non spécialisé", 'art'=>"Commerce de gros non spécialisé"), + '521A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '521B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '521C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '521D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '521E' => array('lib'=>"Magasins populaires", 'art'=>"Magasins populaires"), + '521F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '521H' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '521J' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '522A' => array('lib'=>"Commerce de détail de fruits et légumes", 'art'=>"Commerce de détail de fruits et légumes"), + '522C' => array('lib'=>"Commerce de détail de viandes et produits à base de viande", 'art'=>"Commerce de détail de viandes et produits à base de viande"), + '522E' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques", 'art'=>"Commerce de détail de poissons, crustacés et mollusques"), + '522G' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie"), + '522J' => array('lib'=>"Commerce de détail de boissons", 'art'=>"Commerce de détail de boissons"), + '522L' => array('lib'=>"Commerce de détail de tabac", 'art'=>"Commerce de détail de tabac"), + '522N' => array('lib'=>"Commerce de détail de produits laitiers", 'art'=>"Commerce de détail de produits laitiers"), + '522P' => array('lib'=>"Commerces de détail alimentaires spécialisés divers", 'art'=>"Commerces de détail alimentaires spécialisés divers"), + '523A' => array('lib'=>"Commerce de détail de produits pharmaceutiques", 'art'=>"Commerce de détail de produits pharmaceutiques"), + '523C' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques"), + '523E' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté", 'art'=>"Commerce de détail de parfumerie et de produits de beauté"), + '524A' => array('lib'=>"Commerce de détail de textiles", 'art'=>"Commerce de détail de textiles"), + '524C' => array('lib'=>"Commerce de détail d'habillement", 'art'=>"Commerce de détail d'habillement"), + '524E' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '524F' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '524H' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '524J' => array('lib'=>"Commerce de détail d'équipement du foyer", 'art'=>"Commerce de détail d'équipement du foyer"), + '524L' => array('lib'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision", 'art'=>"Commerce de détail d'appareils électroménagers, de radio et de télévision"), + '524N' => array('lib'=>"Commerce de détail de quincaillerie", 'art'=>"Commerce de détail de quincaillerie"), + '524P' => array('lib'=>"Commerce de détail de bricolage", 'art'=>"Commerce de détail de bricolage"), + '524R' => array('lib'=>"Commerce de détail de livres, journaux et papeterie", 'art'=>"Commerce de détail de livres, journaux et papeterie"), + '524T' => array('lib'=>"Commerce de détail d'optique et de photographie", 'art'=>"Commerce de détail d'optique et de photographie"), + '524U' => array('lib'=>"Commerce de détail de revêtements de sols et de murs", 'art'=>"Commerce de détail de revêtements de sols et de murs"), + '524V' => array('lib'=>"Commerce de détail d'horlogerie et de bijouterie", 'art'=>"Commerce de détail d'horlogerie et de bijouterie"), + '524W' => array('lib'=>"Commerce de détail d'articles de sport et de loisir", 'art'=>"Commerce de détail d'articles de sport et de loisir"), + '524X' => array('lib'=>"Commerce de détail de fleurs", 'art'=>"Commerce de détail de fleurs"), + '524Y' => array('lib'=>"Commerce de détail de charbons et combustibles", 'art'=>"Commerce de détail de charbons et combustibles"), + '524Z' => array('lib'=>"Commerces de détail divers en magasin spécialisé", 'art'=>"Commerces de détail divers en magasin spécialisé"), + '525Z' => array('lib'=>"Commerce de détail de biens d'occasion", 'art'=>"Commerce de détail de biens d'occasion"), + '526A' => array('lib'=>"Vente par correspondance sur catalogue général", 'art'=>"Vente par correspondance sur catalogue général"), + '526B' => array('lib'=>"Vente par correspondance spécialisée", 'art'=>"Vente par correspondance spécialisée"), + '526D' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '526E' => array('lib'=>"Commerce de détail non alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail non alimentaire sur éventaires et marchés"), + '526G' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '526H' => array('lib'=>"Vente par automate", 'art'=>"Vente par automate"), + '527A' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '527C' => array('lib'=>"Réparation de matériel électronique grand public", 'art'=>"Réparation de matériel électronique grand public"), + '527D' => array('lib'=>"Réparation d'appareils électroménagers", 'art'=>"Réparation d'appareils électroménagers"), + '527F' => array('lib'=>"Réparation de montres, horloges et bijoux", 'art'=>"Réparation de montres, horloges et bijoux"), + '527H' => array('lib'=>"Réparation d'articles personnels et domestiques n.c.a.", 'art'=>"Réparation d'articles personnels et domestiques n.c.a."), + '551A' => array('lib'=>"Hôtels touristiques avec restaurant", 'art'=>"Hôtels touristiques avec restaurant"), + '551C' => array('lib'=>"Hôtels touristiques sans restaurant", 'art'=>"Hôtels touristiques sans restaurant"), + '551D' => array('lib'=>"Hôtels de préfecture", 'art'=>"Hôtels de préfecture"), + '551E' => array('lib'=>"Autres hôtels", 'art'=>"Autres hôtels"), + '552A' => array('lib'=>"Auberges de jeunesse et refuges", 'art'=>"Auberges de jeunesse et refuges"), + '552C' => array('lib'=>"Exploitation de terrains de camping", 'art'=>"Exploitation de terrains de camping"), + '552E' => array('lib'=>"Autre hébergement touristique", 'art'=>"Autre hébergement touristique"), + '552F' => array('lib'=>"Hébergement collectif non touristique", 'art'=>"Hébergement collectif non touristique"), + '553A' => array('lib'=>"Restauration de type traditionnel", 'art'=>"Restauration de type traditionnel"), + '553B' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '554A' => array('lib'=>"Cafés tabacs", 'art'=>"Cafés tabacs"), + '554B' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '554C' => array('lib'=>"Discothèques", 'art'=>"Discothèques"), + '555A' => array('lib'=>"Cantines et restaurants d'entreprises", 'art'=>"Cantines et restaurants d'entreprises"), + '555C' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '555D' => array('lib'=>"Traiteurs, organisation de réceptions", 'art'=>"Traiteurs, organisation de réceptions"), + '601Z' => array('lib'=>"Transports ferroviaires", 'art'=>"Transports ferroviaires"), + '602A' => array('lib'=>"Transports urbains de voyageurs", 'art'=>"Transports urbains de voyageurs"), + '602B' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '602C' => array('lib'=>"Téléphériques, remontées mécaniques", 'art'=>"Téléphériques, remontées mécaniques"), + '602E' => array('lib'=>"Transport de voyageurs par taxis", 'art'=>"Transport de voyageurs par taxis"), + '602G' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '602L' => array('lib'=>"Transports routiers de marchandises de proximité", 'art'=>"Transports routiers de marchandises de proximité"), + '602M' => array('lib'=>"Transports routiers de marchandises interurbains", 'art'=>"Transports routiers de marchandises interurbains"), + '602N' => array('lib'=>"Déménagement", 'art'=>"Déménagement"), + '602P' => array('lib'=>"Location de camions avec conducteur", 'art'=>"Location de camions avec conducteur"), + '603Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '611A' => array('lib'=>"Transports maritimes", 'art'=>"Transports maritimes"), + '611B' => array('lib'=>"Transports côtiers", 'art'=>"Transports côtiers"), + '612Z' => array('lib'=>"Transports fluviaux", 'art'=>"Transports fluviaux"), + '621Z' => array('lib'=>"Transports aériens réguliers", 'art'=>"Transports aériens réguliers"), + '622Z' => array('lib'=>"Transports aériens non réguliers", 'art'=>"Transports aériens non réguliers"), + '623Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '631A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '631B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '631D' => array('lib'=>"Entreposage frigorifique", 'art'=>"Entreposage frigorifique"), + '631E' => array('lib'=>"Entreposage non frigorifique", 'art'=>"Entreposage non frigorifique"), + '632A' => array('lib'=>"Gestion d'infrastructures de transports terrestres", 'art'=>"Gestion d'infrastructures de transports terrestres"), + '632C' => array('lib'=>"Services portuaires, maritimes et fluviaux", 'art'=>"Services portuaires, maritimes et fluviaux"), + '632E' => array('lib'=>"Services aéroportuaires", 'art'=>"Services aéroportuaires"), + '633Z' => array('lib'=>"Agences de voyage", 'art'=>"Agences de voyage"), + '634A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '634B' => array('lib'=>"Affrètement", 'art'=>"Affrètement"), + '634C' => array('lib'=>"Organisation des transports internationaux", 'art'=>"Organisation des transports internationaux"), + '641A' => array('lib'=>"Postes nationales", 'art'=>"Postes nationales"), + '641C' => array('lib'=>"Autres activités de courrier", 'art'=>"Autres activités de courrier"), + '642A' => array('lib'=>"Télécommunications nationales", 'art'=>"Télécommunications nationales"), + '642B' => array('lib'=>"Autres activités de télécommunications", 'art'=>"Autres activités de télécommunications"), + '642C' => array('lib'=>"Télécommunications (hors transmissions audiovisuelles)", 'art'=>"Télécommunications (hors transmissions audiovisuelles)"), + '642D' => array('lib'=>"Transmission d'émissions de radio et de télévision", 'art'=>"Transmission d'émissions de radio et de télévision"), + '651A' => array('lib'=>"Banque centrale", 'art'=>"Banque centrale"), + '651C' => array('lib'=>"Banques", 'art'=>"Banques"), + '651D' => array('lib'=>"Banques mutualistes", 'art'=>"Banques mutualistes"), + '651E' => array('lib'=>"Caisses d'épargne", 'art'=>"Caisses d'épargne"), + '651F' => array('lib'=>"Intermédiations monétaires n.c.a.", 'art'=>"Intermédiations monétaires n.c.a."), + '652A' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '652C' => array('lib'=>"Distribution de crédit", 'art'=>"Distribution de crédit"), + '652E' => array('lib'=>"Organismes de placement en valeurs mobilières", 'art'=>"Organismes de placement en valeurs mobilières"), + '652F' => array('lib'=>"Intermédiations financières diverses", 'art'=>"Intermédiations financières diverses"), + '660A' => array('lib'=>"Assurance-vie et capitalisation", 'art'=>"Assurance-vie et capitalisation"), + '660C' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '660E' => array('lib'=>"Assurance dommages", 'art'=>"Assurance dommages"), + '660F' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '660G' => array('lib'=>"Assurance relevant du code de la mutualité", 'art'=>"Assurance relevant du code de la mutualité"), + '671A' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '671C' => array('lib'=>"Gestion de portefeuilles", 'art'=>"Gestion de portefeuilles"), + '671E' => array('lib'=>"Autres auxiliaires financiers", 'art'=>"Autres auxiliaires financiers"), + '672Z' => array('lib'=>"Auxiliaires d'assurance", 'art'=>"Auxiliaires d'assurance"), + '701A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '701B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '701C' => array('lib'=>"Promotion immobilière d'infrastructures", 'art'=>"Promotion immobilière d'infrastructures"), + '701D' => array('lib'=>"Supports juridiques de programme", 'art'=>"Supports juridiques de programme"), + '701F' => array('lib'=>"Marchands de biens immobiliers", 'art'=>"Marchands de biens immobiliers"), + '702A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '702B' => array('lib'=>"Location de terrains", 'art'=>"Location de terrains"), + '702C' => array('lib'=>"Location d'autres biens immobiliers", 'art'=>"Location d'autres biens immobiliers"), + '703A' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '703C' => array('lib'=>"Administration d'immeubles résidentiels", 'art'=>"Administration d'immeubles résidentiels"), + '703D' => array('lib'=>"Administration d'autres biens immobiliers", 'art'=>"Administration d'autres biens immobiliers"), + '703E' => array('lib'=>"Supports juridiques de gestion de patrimoine", 'art'=>"Supports juridiques de gestion de patrimoine"), + '711A' => array('lib'=>"Location de courte durée de véhicules automobiles", 'art'=>"Location de courte durée de véhicules automobiles"), + '711B' => array('lib'=>"Location de longue durée de véhicules automobiles", 'art'=>"Location de longue durée de véhicules automobiles"), + '711Z' => array('lib'=>"Location de véhicules automobiles", 'art'=>"Location de véhicules automobiles"), + '712A' => array('lib'=>"Location d'autres matériels de transport terrestre", 'art'=>"Location d'autres matériels de transport terrestre"), + '712C' => array('lib'=>"Location de matériels de transport par eau", 'art'=>"Location de matériels de transport par eau"), + '712E' => array('lib'=>"Location d'appareils de transport aérien", 'art'=>"Location d'appareils de transport aérien"), + '713A' => array('lib'=>"Location de matériel agricole", 'art'=>"Location de matériel agricole"), + '713C' => array('lib'=>"Location de machines et équipements pour la construction", 'art'=>"Location de machines et équipements pour la construction"), + '713E' => array('lib'=>"Location de machines de bureau et de matériel informatique", 'art'=>"Location de machines de bureau et de matériel informatique"), + '713G' => array('lib'=>"Location de machines et équipements divers", 'art'=>"Location de machines et équipements divers"), + '714A' => array('lib'=>"Location de linge", 'art'=>"Location de linge"), + '714B' => array('lib'=>"Location d'autres biens personnels et domestiques", 'art'=>"Location d'autres biens personnels et domestiques"), + '721Z' => array('lib'=>"Conseil en systèmes informatiques", 'art'=>"Conseil en systèmes informatiques"), + '722A' => array('lib'=>"Edition de logiciels (non personnalisés)", 'art'=>"Edition de logiciels (non personnalisés)"), + '722C' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '722Z' => array('lib'=>"Autres activités de réalisation de logiciels", 'art'=>"Autres activités de réalisation de logiciels"), + '723Z' => array('lib'=>"Traitement de données", 'art'=>"Traitement de données"), + '724Z' => array('lib'=>"Activités de banques de données", 'art'=>"Activités de banques de données"), + '725Z' => array('lib'=>"Entretien et réparation de machines de bureau et de matériel informatique", 'art'=>"Entretien et réparation de machines de bureau et de matériel informatique"), + '726Z' => array('lib'=>"Autres activités rattachées à l'informatique", 'art'=>"Autres activités rattachées à l'informatique"), + '731Z' => array('lib'=>"Recherche-développement en sciences physiques et naturelles", 'art'=>"Recherche-développement en sciences physiques et naturelles"), + '732Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '741A' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '741C' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '741E' => array('lib'=>"Etudes de marché et sondages", 'art'=>"Etudes de marché et sondages"), + '741G' => array('lib'=>"Conseil pour les affaires et la gestion", 'art'=>"Conseil pour les affaires et la gestion"), + '741J' => array('lib'=>"Administration d'entreprises", 'art'=>"Administration d'entreprises"), + '742A' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '742B' => array('lib'=>"Métreurs, géomètres", 'art'=>"Métreurs, géomètres"), + '742C' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '743A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '743B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '744A' => array('lib'=>"Gestion de supports de publicité", 'art'=>"Gestion de supports de publicité"), + '744B' => array('lib'=>"Agences, conseil en publicité", 'art'=>"Agences, conseil en publicité"), + '745A' => array('lib'=>"Sélection et mise à disposition de personnel", 'art'=>"Sélection et mise à disposition de personnel"), + '745B' => array('lib'=>"Travail temporaire", 'art'=>"Travail temporaire"), + '746Z' => array('lib'=>"Enquêtes et sécurité", 'art'=>"Enquêtes et sécurité"), + '747Z' => array('lib'=>"Activités de nettoyage", 'art'=>"Activités de nettoyage"), + '748A' => array('lib'=>"Studios et autres activités photographiques", 'art'=>"Studios et autres activités photographiques"), + '748B' => array('lib'=>"Laboratoires techniques de développement et de tirage", 'art'=>"Laboratoires techniques de développement et de tirage"), + '748D' => array('lib'=>"Conditionnement à façon", 'art'=>"Conditionnement à façon"), + '748F' => array('lib'=>"Secrétariat et traduction", 'art'=>"Secrétariat et traduction"), + '748G' => array('lib'=>"Routage", 'art'=>"Routage"), + '748H' => array('lib'=>"Centres d'appel", 'art'=>"Centres d'appel"), + '748J' => array('lib'=>"Organisation de foires et salons", 'art'=>"Organisation de foires et salons"), + '748K' => array('lib'=>"Services annexes à la production", 'art'=>"Services annexes à la production"), + '751A' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '751C' => array('lib'=>"Tutelle des activités sociales", 'art'=>"Tutelle des activités sociales"), + '751E' => array('lib'=>"Tutelle des activités économiques", 'art'=>"Tutelle des activités économiques"), + '751G' => array('lib'=>"Activités de soutien aux administrations", 'art'=>"Activités de soutien aux administrations"), + '752A' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '752C' => array('lib'=>"Défense", 'art'=>"Défense"), + '752E' => array('lib'=>"Justice", 'art'=>"Justice"), + '752G' => array('lib'=>"Police", 'art'=>"Police"), + '752J' => array('lib'=>"Protection civile", 'art'=>"Protection civile"), + '753A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '753B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '753C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '801Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '802A' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '802C' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '803Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '804A' => array('lib'=>"Ecoles de conduite", 'art'=>"Ecoles de conduite"), + '804C' => array('lib'=>"Formation des adultes et formation continue", 'art'=>"Formation des adultes et formation continue"), + '804D' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '851A' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '851C' => array('lib'=>"Pratique médicale", 'art'=>"Pratique médicale"), + '851E' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '851G' => array('lib'=>"Activités des auxiliaires médicaux", 'art'=>"Activités des auxiliaires médicaux"), + '851H' => array('lib'=>"Soins hors d'un cadre réglementé", 'art'=>"Soins hors d'un cadre réglementé"), + '851J' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '851K' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '851L' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '852Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '853A' => array('lib'=>"Accueil des enfants handicapés", 'art'=>"Accueil des enfants handicapés"), + '853B' => array('lib'=>"Accueil des enfants en difficulté", 'art'=>"Accueil des enfants en difficulté"), + '853C' => array('lib'=>"Accueil des adultes handicapés", 'art'=>"Accueil des adultes handicapés"), + '853D' => array('lib'=>"Accueil des personnes âgées", 'art'=>"Accueil des personnes âgées"), + '853E' => array('lib'=>"Autres hébergements sociaux", 'art'=>"Autres hébergements sociaux"), + '853G' => array('lib'=>"Crèches et garderies d'enfants", 'art'=>"Crèches et garderies d'enfants"), + '853H' => array('lib'=>"Aide par le travail, ateliers protégés", 'art'=>"Aide par le travail, ateliers protégés"), + '853J' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '853K' => array('lib'=>"Autres formes d'action sociale", 'art'=>"Autres formes d'action sociale"), + '900A' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '900B' => array('lib'=>"Enlèvement et traitement des ordures ménagères", 'art'=>"Enlèvement et traitement des ordures ménagères"), + '900C' => array('lib'=>"Elimination et traitement des autres déchets", 'art'=>"Elimination et traitement des autres déchets"), + '900E' => array('lib'=>"Traitements des autres déchets solides", 'art'=>"Traitements des autres déchets solides"), + '900G' => array('lib'=>"Autres travaux d'assainissement et de voirie", 'art'=>"Autres travaux d'assainissement et de voirie"), + '911A' => array('lib'=>"Organisations patronales et consulaires", 'art'=>"Organisations patronales et consulaires"), + '911C' => array('lib'=>"Organisations professionnelles", 'art'=>"Organisations professionnelles"), + '912Z' => array('lib'=>"Syndicats de salariés", 'art'=>"Syndicats de salariés"), + '913A' => array('lib'=>"Organisations religieuses", 'art'=>"Organisations religieuses"), + '913C' => array('lib'=>"Organisations politiques", 'art'=>"Organisations politiques"), + '913E' => array('lib'=>"Organisations associatives n.c.a.", 'art'=>"Organisations associatives n.c.a."), + '921A' => array('lib'=>"Production de films pour la télévision", 'art'=>"Production de films pour la télévision"), + '921B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '921C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '921D' => array('lib'=>"Prestations techniques pour le cinéma et la télévision", 'art'=>"Prestations techniques pour le cinéma et la télévision"), + '921F' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '921G' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '921J' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '922A' => array('lib'=>"Activités de radio", 'art'=>"Activités de radio"), + '922B' => array('lib'=>"Production de programmes de télévision", 'art'=>"Production de programmes de télévision"), + '922C' => array('lib'=>"Diffusion de programmes de télévision", 'art'=>"Diffusion de programmes de télévision"), + '922D' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '922E' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '922F' => array('lib'=>"Distribution de bouquets de programmes de radio et de télévision", 'art'=>"Distribution de bouquets de programmes de radio et de télévision"), + '923A' => array('lib'=>"Activités artistiques", 'art'=>"Activités artistiques"), + '923B' => array('lib'=>"Services annexes aux spectacles", 'art'=>"Services annexes aux spectacles"), + '923D' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '923F' => array('lib'=>"Manèges forains et parcs d'attractions", 'art'=>"Manèges forains et parcs d'attractions"), + '923H' => array('lib'=>"Bals et discothèques", 'art'=>"Bals et discothèques"), + '923J' => array('lib'=>"Autres spectacles", 'art'=>"Autres spectacles"), + '923K' => array('lib'=>"Activités diverses du spectacle", 'art'=>"Activités diverses du spectacle"), + '924Z' => array('lib'=>"Agences de presse", 'art'=>"Agences de presse"), + '925A' => array('lib'=>"Gestion des bibliothèques", 'art'=>"Gestion des bibliothèques"), + '925C' => array('lib'=>"Gestion du patrimoine culturel", 'art'=>"Gestion du patrimoine culturel"), + '925E' => array('lib'=>"Gestion du patrimoine naturel", 'art'=>"Gestion du patrimoine naturel"), + '926A' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '926C' => array('lib'=>"Autres activités sportives", 'art'=>"Autres activités sportives"), + '927A' => array('lib'=>"Jeux de hasard et d'argent", 'art'=>"Jeux de hasard et d'argent"), + '927C' => array('lib'=>"Autres activités récréatives", 'art'=>"Autres activités récréatives"), + '930A' => array('lib'=>"Blanchisserie - teinturerie de gros", 'art'=>"Blanchisserie - teinturerie de gros"), + '930B' => array('lib'=>"Blanchisserie - teinturerie de détail", 'art'=>"Blanchisserie - teinturerie de détail"), + '930D' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '930E' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '930G' => array('lib'=>"Soins aux défunts", 'art'=>"Soins aux défunts"), + '930H' => array('lib'=>"Pompes funèbres", 'art'=>"Pompes funèbres"), + '930K' => array('lib'=>"Activités thermales et de thalassothérapie", 'art'=>"Activités thermales et de thalassothérapie"), + '930L' => array('lib'=>"Autres soins corporels", 'art'=>"Autres soins corporels"), + '930N' => array('lib'=>"Autres services personnels", 'art'=>"Autres services personnels"), + '950Z' => array('lib'=>"Activités des ménages en tant qu'employeur de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeur de personnel domestique"), + '960Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '970Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '990Z' => array('lib'=>"Activités extra-territoriales", 'art'=>"Activités extra-territoriales"), + '0111Z' => array('lib'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses", 'art'=>"Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses"), + '0112Z' => array('lib'=>"Culture du riz", 'art'=>"Culture du riz"), + '0113Z' => array('lib'=>"Culture de légumes, de melons, de racines et de tubercules", 'art'=>"Culture de légumes, de melons, de racines et de tubercules"), + '0114Z' => array('lib'=>"Culture de la canne à sucre", 'art'=>"Culture de la canne à sucre"), + '0115Z' => array('lib'=>"Culture du tabac", 'art'=>"Culture du tabac"), + '0116Z' => array('lib'=>"Culture de plantes à fibres", 'art'=>"Culture de plantes à fibres"), + '0119Z' => array('lib'=>"Autres cultures non permanentes", 'art'=>"Autres cultures non permanentes"), + '0121Z' => array('lib'=>"Culture de la vigne", 'art'=>"Culture de la vigne"), + '0122Z' => array('lib'=>"Culture de fruits tropicaux et subtropicaux", 'art'=>"Culture de fruits tropicaux et subtropicaux"), + '0123Z' => array('lib'=>"Culture d'agrumes", 'art'=>"Culture d'agrumes"), + '0124Z' => array('lib'=>"Culture de fruits à pépins et à noyau", 'art'=>"Culture de fruits à pépins et à noyau"), + '0125Z' => array('lib'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque", 'art'=>"Culture d'autres fruits d'arbres ou d'arbustes et de fruits à coque"), + '0126Z' => array('lib'=>"Culture de fruits oléagineux", 'art'=>"Culture de fruits oléagineux"), + '0127Z' => array('lib'=>"Culture de plantes à boissons", 'art'=>"Culture de plantes à boissons"), + '0128Z' => array('lib'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques", 'art'=>"Culture de plantes à épices, aromatiques, médicinales et pharmaceutiques"), + '0129Z' => array('lib'=>"Autres cultures permanentes", 'art'=>"Autres cultures permanentes"), + '0130Z' => array('lib'=>"Reproduction de plantes", 'art'=>"Reproduction de plantes"), + '0141Z' => array('lib'=>"Élevage de vaches laitières", 'art'=>"Élevage de vaches laitières"), + '0142Z' => array('lib'=>"Élevage d'autres bovins et de buffles", 'art'=>"Élevage d'autres bovins et de buffles"), + '0143Z' => array('lib'=>"Élevage de chevaux et d'autres équidés", 'art'=>"Élevage de chevaux et d'autres équidés"), + '0144Z' => array('lib'=>"Élevage de chameaux et d'autres camélidés", 'art'=>"Élevage de chameaux et d'autres camélidés"), + '0145Z' => array('lib'=>"Élevage d'ovins et de caprins", 'art'=>"Élevage d'ovins et de caprins"), + '0146Z' => array('lib'=>"Élevage de porcins", 'art'=>"Élevage de porcins"), + '0147Z' => array('lib'=>"Élevage de volailles", 'art'=>"Élevage de volailles"), + '0149Z' => array('lib'=>"Élevage d'autres animaux", 'art'=>"Élevage d'autres animaux"), + '0150Z' => array('lib'=>"Culture et élevage associés", 'art'=>"Culture et élevage associés"), + '0161Z' => array('lib'=>"Activités de soutien aux cultures", 'art'=>"Activités de soutien aux cultures"), + '0162Z' => array('lib'=>"Activités de soutien à la production animale", 'art'=>"Activités de soutien à la production animale"), + '0163Z' => array('lib'=>"Traitement primaire des récoltes", 'art'=>"Traitement primaire des récoltes"), + '0164Z' => array('lib'=>"Traitement des semences", 'art'=>"Traitement des semences"), + '0170Z' => array('lib'=>"Chasse, piégeage et services annexes", 'art'=>"Chasse, piégeage et services annexes"), + '0210Z' => array('lib'=>"Sylviculture et autres activités forestières", 'art'=>"Sylviculture et autres activités forestières"), + '0220Z' => array('lib'=>"Exploitation forestière", 'art'=>"Exploitation forestière"), + '0230Z' => array('lib'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage", 'art'=>"Récolte de produits forestiers non ligneux poussant à l'état sauvage"), + '0240Z' => array('lib'=>"Services de soutien à l'exploitation forestière", 'art'=>"Services de soutien à l'exploitation forestière"), + '0311Z' => array('lib'=>"Pêche en mer", 'art'=>"Pêche en mer"), + '0312Z' => array('lib'=>"Pêche en eau douce", 'art'=>"Pêche en eau douce"), + '0321Z' => array('lib'=>"Aquaculture en mer", 'art'=>"Aquaculture en mer"), + '0322Z' => array('lib'=>"Aquaculture en eau douce", 'art'=>"Aquaculture en eau douce"), + '0510Z' => array('lib'=>"Extraction de houille", 'art'=>"Extraction de houille"), + '0520Z' => array('lib'=>"Extraction de lignite", 'art'=>"Extraction de lignite"), + '0610Z' => array('lib'=>"Extraction de pétrole brut", 'art'=>"Extraction de pétrole brut"), + '0620Z' => array('lib'=>"Extraction de gaz naturel", 'art'=>"Extraction de gaz naturel"), + '0710Z' => array('lib'=>"Extraction de minerais de fer", 'art'=>"Extraction de minerais de fer"), + '0721Z' => array('lib'=>"Extraction de minerais d'uranium et de thorium", 'art'=>"Extraction de minerais d'uranium et de thorium"), + '0729Z' => array('lib'=>"Extraction d'autres minerais de métaux non ferreux", 'art'=>"Extraction d'autres minerais de métaux non ferreux"), + '0811Z' => array('lib'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise", 'art'=>"Extraction de pierres ornementales et de construction, de calcaire industriel, de gypse, de craie et d'ardoise"), + '0812Z' => array('lib'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin", 'art'=>"Exploitation de gravières et sablières, extraction d'argiles et de kaolin"), + '0891Z' => array('lib'=>"Extraction des minéraux chimiques et d'engrais minéraux", 'art'=>"Extraction des minéraux chimiques et d'engrais minéraux"), + '0892Z' => array('lib'=>"Extraction de tourbe", 'art'=>"Extraction de tourbe"), + '0893Z' => array('lib'=>"Production de sel", 'art'=>"Production de sel"), + '0899Z' => array('lib'=>"Autres activités extractives nca", 'art'=>"Autres activités extractives nca"), + '0910Z' => array('lib'=>"Activités de soutien à l'extraction d'hydrocarbures", 'art'=>"Activités de soutien à l'extraction d'hydrocarbures"), + '0990Z' => array('lib'=>"Activités de soutien aux autres industries extractives", 'art'=>"Activités de soutien aux autres industries extractives"), + '1011Z' => array('lib'=>"Transformation et conservation de la viande de boucherie", 'art'=>"Transformation et conservation de la viande de boucherie"), + '1012Z' => array('lib'=>"Transformation et conservation de la viande de volaille", 'art'=>"Transformation et conservation de la viande de volaille"), + '1013A' => array('lib'=>"Préparation industrielle de produits à base de viande", 'art'=>"Préparation industrielle de produits à base de viande"), + '1013B' => array('lib'=>"Charcuterie", 'art'=>"Charcuterie"), + '1020Z' => array('lib'=>"Transformation et conservation de poisson, de crustacés et de mollusques", 'art'=>"Transformation et conservation de poisson, de crustacés et de mollusques"), + '1031Z' => array('lib'=>"Transformation et conservation de pommes de terre", 'art'=>"Transformation et conservation de pommes de terre"), + '1032Z' => array('lib'=>"Préparation de jus de fruits et légumes", 'art'=>"Préparation de jus de fruits et légumes"), + '1039A' => array('lib'=>"Autre transformation et conservation de légumes", 'art'=>"Autre transformation et conservation de légumes"), + '1039B' => array('lib'=>"Transformation et conservation de fruits", 'art'=>"Transformation et conservation de fruits"), + '1041A' => array('lib'=>"Fabrication d'huiles et graisses brutes", 'art'=>"Fabrication d'huiles et graisses brutes"), + '1041B' => array('lib'=>"Fabrication d'huiles et graisses raffinées", 'art'=>"Fabrication d'huiles et graisses raffinées"), + '1042Z' => array('lib'=>"Fabrication de margarine et graisses comestibles similaires", 'art'=>"Fabrication de margarine et graisses comestibles similaires"), + '1051A' => array('lib'=>"Fabrication de lait liquide et de produits frais", 'art'=>"Fabrication de lait liquide et de produits frais"), + '1051B' => array('lib'=>"Fabrication de beurre", 'art'=>"Fabrication de beurre"), + '1051C' => array('lib'=>"Fabrication de fromage", 'art'=>"Fabrication de fromage"), + '1051D' => array('lib'=>"Fabrication d'autres produits laitiers", 'art'=>"Fabrication d'autres produits laitiers"), + '1052Z' => array('lib'=>"Fabrication de glaces et sorbets", 'art'=>"Fabrication de glaces et sorbets"), + '1061A' => array('lib'=>"Meunerie", 'art'=>"Meunerie"), + '1061B' => array('lib'=>"Autres activités du travail des grains", 'art'=>"Autres activités du travail des grains"), + '1062Z' => array('lib'=>"Fabrication de produits amylacés", 'art'=>"Fabrication de produits amylacés"), + '1071A' => array('lib'=>"Fabrication industrielle de pain et de pâtisserie fraîche", 'art'=>"Fabrication industrielle de pain et de pâtisserie fraîche"), + '1071B' => array('lib'=>"Cuisson de produits de boulangerie", 'art'=>"Cuisson de produits de boulangerie"), + '1071C' => array('lib'=>"Boulangerie et boulangerie-pâtisserie", 'art'=>"Boulangerie et boulangerie-pâtisserie"), + '1071D' => array('lib'=>"Pâtisserie", 'art'=>"Pâtisserie"), + '1072Z' => array('lib'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation", 'art'=>"Fabrication de biscuits, biscottes et pâtisseries de conservation"), + '1073Z' => array('lib'=>"Fabrication de pâtes alimentaires", 'art'=>"Fabrication de pâtes alimentaires"), + '1081Z' => array('lib'=>"Fabrication de sucre", 'art'=>"Fabrication de sucre"), + '1082Z' => array('lib'=>"Fabrication de cacao, chocolat et de produits de confiserie", 'art'=>"Fabrication de cacao, chocolat et de produits de confiserie"), + '1083Z' => array('lib'=>"Transformation du thé et du café", 'art'=>"Transformation du thé et du café"), + '1084Z' => array('lib'=>"Fabrication de condiments et assaisonnements", 'art'=>"Fabrication de condiments et assaisonnements"), + '1085Z' => array('lib'=>"Fabrication de plats préparés", 'art'=>"Fabrication de plats préparés"), + '1086Z' => array('lib'=>"Fabrication d'aliments homogénéisés et diététiques", 'art'=>"Fabrication d'aliments homogénéisés et diététiques"), + '1089Z' => array('lib'=>"Fabrication d'autres produits alimentaires nca", 'art'=>"Fabrication d'autres produits alimentaires nca"), + '1091Z' => array('lib'=>"Fabrication d'aliments pour animaux de ferme", 'art'=>"Fabrication d'aliments pour animaux de ferme"), + '1092Z' => array('lib'=>"Fabrication d'aliments pour animaux de compagnie", 'art'=>"Fabrication d'aliments pour animaux de compagnie"), + '1101Z' => array('lib'=>"Production de boissons alcooliques distillées", 'art'=>"Production de boissons alcooliques distillées"), + '1102A' => array('lib'=>"Fabrication de vins effervescents", 'art'=>"Fabrication de vins effervescents"), + '1102B' => array('lib'=>"Vinification", 'art'=>"Vinification"), + '1103Z' => array('lib'=>"Fabrication de cidre et de vins de fruits", 'art'=>"Fabrication de cidre et de vins de fruits"), + '1104Z' => array('lib'=>"Production d'autres boissons fermentées non distillées", 'art'=>"Production d'autres boissons fermentées non distillées"), + '1105Z' => array('lib'=>"Fabrication de bière", 'art'=>"Fabrication de bière"), + '1106Z' => array('lib'=>"Fabrication de malt", 'art'=>"Fabrication de malt"), + '1107A' => array('lib'=>"Industrie des eaux de table", 'art'=>"Industrie des eaux de table"), + '1107B' => array('lib'=>"Production de boissons rafraîchissantes", 'art'=>"Production de boissons rafraîchissantes"), + '1200Z' => array('lib'=>"Fabrication de produits à base de tabac", 'art'=>"Fabrication de produits à base de tabac"), + '1310Z' => array('lib'=>"Préparation de fibres textiles et filature", 'art'=>"Préparation de fibres textiles et filature"), + '1320Z' => array('lib'=>"Tissage", 'art'=>"Tissage"), + '1330Z' => array('lib'=>"Ennoblissement textile", 'art'=>"Ennoblissement textile"), + '1391Z' => array('lib'=>"Fabrication d'étoffes à mailles", 'art'=>"Fabrication d'étoffes à mailles"), + '1392Z' => array('lib'=>"Fabrication d'articles textiles, sauf habillement", 'art'=>"Fabrication d'articles textiles, sauf habillement"), + '1393Z' => array('lib'=>"Fabrication de tapis et moquettes", 'art'=>"Fabrication de tapis et moquettes"), + '1394Z' => array('lib'=>"Fabrication de ficelles, cordes et filets", 'art'=>"Fabrication de ficelles, cordes et filets"), + '1395Z' => array('lib'=>"Fabrication de non-tissés, sauf habillement", 'art'=>"Fabrication de non-tissés, sauf habillement"), + '1396Z' => array('lib'=>"Fabrication d'autres textiles techniques et industriels", 'art'=>"Fabrication d'autres textiles techniques et industriels"), + '1399Z' => array('lib'=>"Fabrication d'autres textiles nca", 'art'=>"Fabrication d'autres textiles nca"), + '1411Z' => array('lib'=>"Fabrication de vêtements en cuir", 'art'=>"Fabrication de vêtements en cuir"), + '1412Z' => array('lib'=>"Fabrication de vêtements de travail", 'art'=>"Fabrication de vêtements de travail"), + '1413Z' => array('lib'=>"Fabrication de vêtements de dessus", 'art'=>"Fabrication de vêtements de dessus"), + '1414Z' => array('lib'=>"Fabrication de vêtements de dessous", 'art'=>"Fabrication de vêtements de dessous"), + '1419Z' => array('lib'=>"Fabrication d'autres vêtements et accessoires", 'art'=>"Fabrication d'autres vêtements et accessoires"), + '1420Z' => array('lib'=>"Fabrication d'articles en fourrure", 'art'=>"Fabrication d'articles en fourrure"), + '1431Z' => array('lib'=>"Fabrication d'articles chaussants à mailles", 'art'=>"Fabrication d'articles chaussants à mailles"), + '1439Z' => array('lib'=>"Fabrication d'autres articles à mailles", 'art'=>"Fabrication d'autres articles à mailles"), + '1511Z' => array('lib'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures", 'art'=>"Apprêt et tannage des cuirs ; préparation et teinture des fourrures"), + '1512Z' => array('lib'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie", 'art'=>"Fabrication d'articles de voyage, de maroquinerie et de sellerie"), + '1520Z' => array('lib'=>"Fabrication de chaussures", 'art'=>"Fabrication de chaussures"), + '1610A' => array('lib'=>"Sciage et rabotage du bois, hors imprégnation", 'art'=>"Sciage et rabotage du bois, hors imprégnation"), + '1610B' => array('lib'=>"Imprégnation du bois", 'art'=>"Imprégnation du bois"), + '1621Z' => array('lib'=>"Fabrication de placage et de panneaux de bois", 'art'=>"Fabrication de placage et de panneaux de bois"), + '1622Z' => array('lib'=>"Fabrication de parquets assemblés", 'art'=>"Fabrication de parquets assemblés"), + '1623Z' => array('lib'=>"Fabrication de charpentes et d'autres menuiseries", 'art'=>"Fabrication de charpentes et d'autres menuiseries"), + '1624Z' => array('lib'=>"Fabrication d'emballages en bois", 'art'=>"Fabrication d'emballages en bois"), + '1629Z' => array('lib'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie", 'art'=>"Fabrication d'objets divers en bois ; fabrication d'objets en liège, vannerie et sparterie"), + '1711Z' => array('lib'=>"Fabrication de pâte à papier", 'art'=>"Fabrication de pâte à papier"), + '1712Z' => array('lib'=>"Fabrication de papier et de carton", 'art'=>"Fabrication de papier et de carton"), + '1721A' => array('lib'=>"Fabrication de carton ondulé", 'art'=>"Fabrication de carton ondulé"), + '1721B' => array('lib'=>"Fabrication de cartonnages", 'art'=>"Fabrication de cartonnages"), + '1721C' => array('lib'=>"Fabrication d'emballages en papier", 'art'=>"Fabrication d'emballages en papier"), + '1722Z' => array('lib'=>"Fabrication d'articles en papier à usage sanitaire ou domestique", 'art'=>"Fabrication d'articles en papier à usage sanitaire ou domestique"), + '1723Z' => array('lib'=>"Fabrication d'articles de papeterie", 'art'=>"Fabrication d'articles de papeterie"), + '1724Z' => array('lib'=>"Fabrication de papiers peints", 'art'=>"Fabrication de papiers peints"), + '1729Z' => array('lib'=>"Fabrication d'autres articles en papier ou en carton", 'art'=>"Fabrication d'autres articles en papier ou en carton"), + '1811Z' => array('lib'=>"Imprimerie de journaux", 'art'=>"Imprimerie de journaux"), + '1812Z' => array('lib'=>"Autre imprimerie (labeur)", 'art'=>"Autre imprimerie (labeur)"), + '1813Z' => array('lib'=>"Activités de pré-presse", 'art'=>"Activités de pré-presse"), + '1814Z' => array('lib'=>"Reliure et activités connexes", 'art'=>"Reliure et activités connexes"), + '1820Z' => array('lib'=>"Reproduction d'enregistrements", 'art'=>"Reproduction d'enregistrements"), + '1910Z' => array('lib'=>"Cokéfaction", 'art'=>"Cokéfaction"), + '1920Z' => array('lib'=>"Raffinage du pétrole", 'art'=>"Raffinage du pétrole"), + '2011Z' => array('lib'=>"Fabrication de gaz industriels", 'art'=>"Fabrication de gaz industriels"), + '2012Z' => array('lib'=>"Fabrication de colorants et de pigments", 'art'=>"Fabrication de colorants et de pigments"), + '2013A' => array('lib'=>"Enrichissement et retraitement de matières nucléaires", 'art'=>"Enrichissement et retraitement de matières nucléaires"), + '2013B' => array('lib'=>"Fabrication d'autres produits chimiques inorganiques de base nca", 'art'=>"Fabrication d'autres produits chimiques inorganiques de base nca"), + '2014Z' => array('lib'=>"Fabrication d'autres produits chimiques organiques de base", 'art'=>"Fabrication d'autres produits chimiques organiques de base"), + '2015Z' => array('lib'=>"Fabrication de produits azotés et d'engrais", 'art'=>"Fabrication de produits azotés et d'engrais"), + '2016Z' => array('lib'=>"Fabrication de matières plastiques de base", 'art'=>"Fabrication de matières plastiques de base"), + '2017Z' => array('lib'=>"Fabrication de caoutchouc synthétique", 'art'=>"Fabrication de caoutchouc synthétique"), + '2020Z' => array('lib'=>"Fabrication de pesticides et d'autres produits agrochimiques", 'art'=>"Fabrication de pesticides et d'autres produits agrochimiques"), + '2030Z' => array('lib'=>"Fabrication de peintures, vernis, encres et mastics", 'art'=>"Fabrication de peintures, vernis, encres et mastics"), + '2041Z' => array('lib'=>"Fabrication de savons, détergents et produits d'entretien", 'art'=>"Fabrication de savons, détergents et produits d'entretien"), + '2042Z' => array('lib'=>"Fabrication de parfums et de produits pour la toilette", 'art'=>"Fabrication de parfums et de produits pour la toilette"), + '2051Z' => array('lib'=>"Fabrication de produits explosifs", 'art'=>"Fabrication de produits explosifs"), + '2052Z' => array('lib'=>"Fabrication de colles", 'art'=>"Fabrication de colles"), + '2053Z' => array('lib'=>"Fabrication d'huiles essentielles", 'art'=>"Fabrication d'huiles essentielles"), + '2059Z' => array('lib'=>"Fabrication d'autres produits chimiques nca", 'art'=>"Fabrication d'autres produits chimiques nca"), + '2060Z' => array('lib'=>"Fabrication de fibres artificielles ou synthétiques", 'art'=>"Fabrication de fibres artificielles ou synthétiques"), + '2110Z' => array('lib'=>"Fabrication de produits pharmaceutiques de base", 'art'=>"Fabrication de produits pharmaceutiques de base"), + '2120Z' => array('lib'=>"Fabrication de préparations pharmaceutiques", 'art'=>"Fabrication de préparations pharmaceutiques"), + '2211Z' => array('lib'=>"Fabrication et rechapage de pneumatiques", 'art'=>"Fabrication et rechapage de pneumatiques"), + '2219Z' => array('lib'=>"Fabrication d'autres articles en caoutchouc", 'art'=>"Fabrication d'autres articles en caoutchouc"), + '2221Z' => array('lib'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques", 'art'=>"Fabrication de plaques, feuilles, tubes et profilés en matières plastiques"), + '2222Z' => array('lib'=>"Fabrication d'emballages en matières plastiques", 'art'=>"Fabrication d'emballages en matières plastiques"), + '2223Z' => array('lib'=>"Fabrication d'éléments en matières plastiques pour la construction", 'art'=>"Fabrication d'éléments en matières plastiques pour la construction"), + '2229A' => array('lib'=>"Fabrication de pièces techniques à base de matières plastiques", 'art'=>"Fabrication de pièces techniques à base de matières plastiques"), + '2229B' => array('lib'=>"Fabrication de produits de consommation courante en matières plastiques", 'art'=>"Fabrication de produits de consommation courante en matières plastiques"), + '2311Z' => array('lib'=>"Fabrication de verre plat", 'art'=>"Fabrication de verre plat"), + '2312Z' => array('lib'=>"Façonnage et transformation du verre plat", 'art'=>"Façonnage et transformation du verre plat"), + '2313Z' => array('lib'=>"Fabrication de verre creux", 'art'=>"Fabrication de verre creux"), + '2314Z' => array('lib'=>"Fabrication de fibres de verre", 'art'=>"Fabrication de fibres de verre"), + '2319Z' => array('lib'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique", 'art'=>"Fabrication et façonnage d'autres articles en verre, y compris verre technique"), + '2320Z' => array('lib'=>"Fabrication de produits réfractaires", 'art'=>"Fabrication de produits réfractaires"), + '2331Z' => array('lib'=>"Fabrication de carreaux en céramique", 'art'=>"Fabrication de carreaux en céramique"), + '2332Z' => array('lib'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite", 'art'=>"Fabrication de briques, tuiles et produits de construction, en terre cuite"), + '2341Z' => array('lib'=>"Fabrication d'articles céramiques à usage domestique ou ornemental", 'art'=>"Fabrication d'articles céramiques à usage domestique ou ornemental"), + '2342Z' => array('lib'=>"Fabrication d'appareils sanitaires en céramique", 'art'=>"Fabrication d'appareils sanitaires en céramique"), + '2343Z' => array('lib'=>"Fabrication d'isolateurs et pièces isolantes en céramique", 'art'=>"Fabrication d'isolateurs et pièces isolantes en céramique"), + '2344Z' => array('lib'=>"Fabrication d'autres produits céramiques à usage technique", 'art'=>"Fabrication d'autres produits céramiques à usage technique"), + '2349Z' => array('lib'=>"Fabrication d'autres produits céramiques", 'art'=>"Fabrication d'autres produits céramiques"), + '2351Z' => array('lib'=>"Fabrication de ciment", 'art'=>"Fabrication de ciment"), + '2352Z' => array('lib'=>"Fabrication de chaux et plâtre", 'art'=>"Fabrication de chaux et plâtre"), + '2361Z' => array('lib'=>"Fabrication d'éléments en béton pour la construction", 'art'=>"Fabrication d'éléments en béton pour la construction"), + '2362Z' => array('lib'=>"Fabrication d'éléments en plâtre pour la construction", 'art'=>"Fabrication d'éléments en plâtre pour la construction"), + '2363Z' => array('lib'=>"Fabrication de béton prêt à l'emploi", 'art'=>"Fabrication de béton prêt à l'emploi"), + '2364Z' => array('lib'=>"Fabrication de mortiers et bétons secs", 'art'=>"Fabrication de mortiers et bétons secs"), + '2365Z' => array('lib'=>"Fabrication d'ouvrages en fibre-ciment", 'art'=>"Fabrication d'ouvrages en fibre-ciment"), + '2369Z' => array('lib'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre", 'art'=>"Fabrication d'autres ouvrages en béton, en ciment ou en plâtre"), + '2370Z' => array('lib'=>"Taille, façonnage et finissage de pierres", 'art'=>"Taille, façonnage et finissage de pierres"), + '2391Z' => array('lib'=>"Fabrication de produits abrasifs", 'art'=>"Fabrication de produits abrasifs"), + '2399Z' => array('lib'=>"Fabrication d'autres produits minéraux non métalliques nca", 'art'=>"Fabrication d'autres produits minéraux non métalliques nca"), + '2410Z' => array('lib'=>"Sidérurgie", 'art'=>"Sidérurgie"), + '2420Z' => array('lib'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier", 'art'=>"Fabrication de tubes, tuyaux, profilés creux et accessoires correspondants en acier"), + '2431Z' => array('lib'=>"étirage à froid de barres", 'art'=>"étirage à froid de barres"), + '2432Z' => array('lib'=>"Laminage à froid de feuillards", 'art'=>"Laminage à froid de feuillards"), + '2433Z' => array('lib'=>"Profilage à froid par formage ou pliage", 'art'=>"Profilage à froid par formage ou pliage"), + '2434Z' => array('lib'=>"Tréfilage à froid", 'art'=>"Tréfilage à froid"), + '2441Z' => array('lib'=>"Production de métaux précieux", 'art'=>"Production de métaux précieux"), + '2442Z' => array('lib'=>"Métallurgie de l'aluminium", 'art'=>"Métallurgie de l'aluminium"), + '2443Z' => array('lib'=>"Métallurgie du plomb, du zinc ou de l'étain", 'art'=>"Métallurgie du plomb, du zinc ou de l'étain"), + '2444Z' => array('lib'=>"Métallurgie du cuivre", 'art'=>"Métallurgie du cuivre"), + '2445Z' => array('lib'=>"Métallurgie des autres métaux non ferreux", 'art'=>"Métallurgie des autres métaux non ferreux"), + '2446Z' => array('lib'=>"élaboration et transformation de matières nucléaires", 'art'=>"élaboration et transformation de matières nucléaires"), + '2451Z' => array('lib'=>"Fonderie de fonte", 'art'=>"Fonderie de fonte"), + '2452Z' => array('lib'=>"Fonderie d'acier", 'art'=>"Fonderie d'acier"), + '2453Z' => array('lib'=>"Fonderie de métaux légers", 'art'=>"Fonderie de métaux légers"), + '2454Z' => array('lib'=>"Fonderie d'autres métaux non ferreux", 'art'=>"Fonderie d'autres métaux non ferreux"), + '2511Z' => array('lib'=>"Fabrication de structures métalliques et de parties de structures", 'art'=>"Fabrication de structures métalliques et de parties de structures"), + '2512Z' => array('lib'=>"Fabrication de portes et fenêtres en métal", 'art'=>"Fabrication de portes et fenêtres en métal"), + '2521Z' => array('lib'=>"Fabrication de radiateurs et de chaudières pour le chauffage central", 'art'=>"Fabrication de radiateurs et de chaudières pour le chauffage central"), + '2529Z' => array('lib'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques", 'art'=>"Fabrication d'autres réservoirs, citernes et conteneurs métalliques"), + '2530Z' => array('lib'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central", 'art'=>"Fabrication de générateurs de vapeur, à l'exception des chaudières pour le chauffage central"), + '2540Z' => array('lib'=>"Fabrication d'armes et de munitions", 'art'=>"Fabrication d'armes et de munitions"), + '2550A' => array('lib'=>"Forge, estampage, matriçage ; métallurgie des poudres", 'art'=>"Forge, estampage, matriçage ; métallurgie des poudres"), + '2550B' => array('lib'=>"Découpage, emboutissage", 'art'=>"Découpage, emboutissage"), + '2561Z' => array('lib'=>"Traitement et revêtement des métaux", 'art'=>"Traitement et revêtement des métaux"), + '2562A' => array('lib'=>"Décolletage", 'art'=>"Décolletage"), + '2562B' => array('lib'=>"Mécanique industrielle", 'art'=>"Mécanique industrielle"), + '2571Z' => array('lib'=>"Fabrication de coutellerie", 'art'=>"Fabrication de coutellerie"), + '2572Z' => array('lib'=>"Fabrication de serrures et de ferrures", 'art'=>"Fabrication de serrures et de ferrures"), + '2573A' => array('lib'=>"Fabrication de moules et modèles", 'art'=>"Fabrication de moules et modèles"), + '2573B' => array('lib'=>"Fabrication d'autres outillages", 'art'=>"Fabrication d'autres outillages"), + '2591Z' => array('lib'=>"Fabrication de fûts et emballages métalliques similaires", 'art'=>"Fabrication de fûts et emballages métalliques similaires"), + '2592Z' => array('lib'=>"Fabrication d'emballages métalliques légers", 'art'=>"Fabrication d'emballages métalliques légers"), + '2593Z' => array('lib'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts", 'art'=>"Fabrication d'articles en fils métalliques, de chaînes et de ressorts"), + '2594Z' => array('lib'=>"Fabrication de vis et de boulons", 'art'=>"Fabrication de vis et de boulons"), + '2599A' => array('lib'=>"Fabrication d'articles métalliques ménagers", 'art'=>"Fabrication d'articles métalliques ménagers"), + '2599B' => array('lib'=>"Fabrication d'autres articles métalliques", 'art'=>"Fabrication d'autres articles métalliques"), + '2611Z' => array('lib'=>"Fabrication de composants électroniques", 'art'=>"Fabrication de composants électroniques"), + '2612Z' => array('lib'=>"Fabrication de cartes électroniques assemblées", 'art'=>"Fabrication de cartes électroniques assemblées"), + '2620Z' => array('lib'=>"Fabrication d'ordinateurs et d'équipements périphériques", 'art'=>"Fabrication d'ordinateurs et d'équipements périphériques"), + '2630Z' => array('lib'=>"Fabrication d'équipements de communication", 'art'=>"Fabrication d'équipements de communication"), + '2640Z' => array('lib'=>"Fabrication de produits électroniques grand public", 'art'=>"Fabrication de produits électroniques grand public"), + '2651A' => array('lib'=>"Fabrication d'équipements d'aide à la navigation", 'art'=>"Fabrication d'équipements d'aide à la navigation"), + '2651B' => array('lib'=>"Fabrication d'instrumentation scientifique et technique", 'art'=>"Fabrication d'instrumentation scientifique et technique"), + '2652Z' => array('lib'=>"Horlogerie", 'art'=>"Horlogerie"), + '2660Z' => array('lib'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques", 'art'=>"Fabrication d'équipements d'irradiation médicale, d'équipements électromédicaux et électrothérapeutiques"), + '2670Z' => array('lib'=>"Fabrication de matériels optique et photographique", 'art'=>"Fabrication de matériels optique et photographique"), + '2680Z' => array('lib'=>"Fabrication de supports magnétiques et optiques", 'art'=>"Fabrication de supports magnétiques et optiques"), + '2711Z' => array('lib'=>"Fabrication de moteurs, génératrices et transformateurs électriques", 'art'=>"Fabrication de moteurs, génératrices et transformateurs électriques"), + '2712Z' => array('lib'=>"Fabrication de matériel de distribution et de commande électrique", 'art'=>"Fabrication de matériel de distribution et de commande électrique"), + '2720Z' => array('lib'=>"Fabrication de piles et d'accumulateurs électriques", 'art'=>"Fabrication de piles et d'accumulateurs électriques"), + '2731Z' => array('lib'=>"Fabrication de câbles de fibres optiques", 'art'=>"Fabrication de câbles de fibres optiques"), + '2732Z' => array('lib'=>"Fabrication d'autres fils et câbles électroniques ou électriques", 'art'=>"Fabrication d'autres fils et câbles électroniques ou électriques"), + '2733Z' => array('lib'=>"Fabrication de matériel d'installation électrique", 'art'=>"Fabrication de matériel d'installation électrique"), + '2740Z' => array('lib'=>"Fabrication d'appareils d'éclairage électrique", 'art'=>"Fabrication d'appareils d'éclairage électrique"), + '2751Z' => array('lib'=>"Fabrication d'appareils électroménagers", 'art'=>"Fabrication d'appareils électroménagers"), + '2752Z' => array('lib'=>"Fabrication d'appareils ménagers non électriques", 'art'=>"Fabrication d'appareils ménagers non électriques"), + '2790Z' => array('lib'=>"Fabrication d'autres matériels électriques", 'art'=>"Fabrication d'autres matériels électriques"), + '2811Z' => array('lib'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules", 'art'=>"Fabrication de moteurs et turbines, à l'exception des moteurs d'avions et de véhicules"), + '2812Z' => array('lib'=>"Fabrication d'équipements hydrauliques et pneumatiques", 'art'=>"Fabrication d'équipements hydrauliques et pneumatiques"), + '2813Z' => array('lib'=>"Fabrication d'autres pompes et compresseurs", 'art'=>"Fabrication d'autres pompes et compresseurs"), + '2814Z' => array('lib'=>"Fabrication d'autres articles de robinetterie", 'art'=>"Fabrication d'autres articles de robinetterie"), + '2815Z' => array('lib'=>"Fabrication d'engrenages et d'organes mécaniques de transmission", 'art'=>"Fabrication d'engrenages et d'organes mécaniques de transmission"), + '2821Z' => array('lib'=>"Fabrication de fours et brûleurs", 'art'=>"Fabrication de fours et brûleurs"), + '2822Z' => array('lib'=>"Fabrication de matériel de levage et de manutention", 'art'=>"Fabrication de matériel de levage et de manutention"), + '2823Z' => array('lib'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)", 'art'=>"Fabrication de machines et d'équipements de bureau (à l'exception des ordinateurs et équipements périphériques)"), + '2824Z' => array('lib'=>"Fabrication d'outillage portatif à moteur incorporé", 'art'=>"Fabrication d'outillage portatif à moteur incorporé"), + '2825Z' => array('lib'=>"Fabrication d'équipements aérauliques et frigorifiques industriels", 'art'=>"Fabrication d'équipements aérauliques et frigorifiques industriels"), + '2829A' => array('lib'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage", 'art'=>"Fabrication d'équipements d'emballage, de conditionnement et de pesage"), + '2829B' => array('lib'=>"Fabrication d'autres machines d'usage général", 'art'=>"Fabrication d'autres machines d'usage général"), + '2830Z' => array('lib'=>"Fabrication de machines agricoles et forestières", 'art'=>"Fabrication de machines agricoles et forestières"), + '2841Z' => array('lib'=>"Fabrication de machines-outils pour le travail des métaux", 'art'=>"Fabrication de machines-outils pour le travail des métaux"), + '2849Z' => array('lib'=>"Fabrication d'autres machines-outils", 'art'=>"Fabrication d'autres machines-outils"), + '2891Z' => array('lib'=>"Fabrication de machines pour la métallurgie", 'art'=>"Fabrication de machines pour la métallurgie"), + '2892Z' => array('lib'=>"Fabrication de machines pour l'extraction ou la construction", 'art'=>"Fabrication de machines pour l'extraction ou la construction"), + '2893Z' => array('lib'=>"Fabrication de machines pour l'industrie agro-alimentaire", 'art'=>"Fabrication de machines pour l'industrie agro-alimentaire"), + '2894Z' => array('lib'=>"Fabrication de machines pour les industries textiles", 'art'=>"Fabrication de machines pour les industries textiles"), + '2895Z' => array('lib'=>"Fabrication de machines pour les industries du papier et du carton", 'art'=>"Fabrication de machines pour les industries du papier et du carton"), + '2896Z' => array('lib'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques", 'art'=>"Fabrication de machines pour le travail du caoutchouc ou des plastiques"), + '2899A' => array('lib'=>"Fabrication de machines d'imprimerie", 'art'=>"Fabrication de machines d'imprimerie"), + '2899B' => array('lib'=>"Fabrication d'autres machines spécialisées", 'art'=>"Fabrication d'autres machines spécialisées"), + '2910Z' => array('lib'=>"Construction de véhicules automobiles", 'art'=>"Construction de véhicules automobiles"), + '2920Z' => array('lib'=>"Fabrication de carrosseries et remorques", 'art'=>"Fabrication de carrosseries et remorques"), + '2931Z' => array('lib'=>"Fabrication d'équipements électriques et électroniques automobiles", 'art'=>"Fabrication d'équipements électriques et électroniques automobiles"), + '2932Z' => array('lib'=>"Fabrication d'autres équipements automobiles", 'art'=>"Fabrication d'autres équipements automobiles"), + '3011Z' => array('lib'=>"Construction de navires et de structures flottantes", 'art'=>"Construction de navires et de structures flottantes"), + '3012Z' => array('lib'=>"Construction de bateaux de plaisance", 'art'=>"Construction de bateaux de plaisance"), + '3020Z' => array('lib'=>"Construction de locomotives et d'autre matériel ferroviaire roulant", 'art'=>"Construction de locomotives et d'autre matériel ferroviaire roulant"), + '3030Z' => array('lib'=>"Construction aéronautique et spatiale", 'art'=>"Construction aéronautique et spatiale"), + '3040Z' => array('lib'=>"Construction de véhicules militaires de combat", 'art'=>"Construction de véhicules militaires de combat"), + '3091Z' => array('lib'=>"Fabrication de motocycles", 'art'=>"Fabrication de motocycles"), + '3092Z' => array('lib'=>"Fabrication de bicyclettes et de véhicules pour invalides", 'art'=>"Fabrication de bicyclettes et de véhicules pour invalides"), + '3099Z' => array('lib'=>"Fabrication d'autres équipements de transport nca", 'art'=>"Fabrication d'autres équipements de transport nca"), + '3101Z' => array('lib'=>"Fabrication de meubles de bureau et de magasin", 'art'=>"Fabrication de meubles de bureau et de magasin"), + '3102Z' => array('lib'=>"Fabrication de meubles de cuisine", 'art'=>"Fabrication de meubles de cuisine"), + '3103Z' => array('lib'=>"Fabrication de matelas", 'art'=>"Fabrication de matelas"), + '3109A' => array('lib'=>"Fabrication de sièges d'ameublement d'intérieur", 'art'=>"Fabrication de sièges d'ameublement d'intérieur"), + '3109B' => array('lib'=>"Fabrication d'autres meubles et industries connexes de l'ameublement", 'art'=>"Fabrication d'autres meubles et industries connexes de l'ameublement"), + '3211Z' => array('lib'=>"Frappe de monnaie", 'art'=>"Frappe de monnaie"), + '3212Z' => array('lib'=>"Fabrication d'articles de joaillerie et bijouterie", 'art'=>"Fabrication d'articles de joaillerie et bijouterie"), + '3213Z' => array('lib'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires", 'art'=>"Fabrication d'articles de bijouterie fantaisie et articles similaires"), + '3220Z' => array('lib'=>"Fabrication d'instruments de musique", 'art'=>"Fabrication d'instruments de musique"), + '3230Z' => array('lib'=>"Fabrication d'articles de sport", 'art'=>"Fabrication d'articles de sport"), + '3240Z' => array('lib'=>"Fabrication de jeux et jouets", 'art'=>"Fabrication de jeux et jouets"), + '3250A' => array('lib'=>"Fabrication de matériel médico-chirurgical et dentaire", 'art'=>"Fabrication de matériel médico-chirurgical et dentaire"), + '3250B' => array('lib'=>"Fabrication de lunettes", 'art'=>"Fabrication de lunettes"), + '3291Z' => array('lib'=>"Fabrication d'articles de brosserie", 'art'=>"Fabrication d'articles de brosserie"), + '3299Z' => array('lib'=>"Autres activités manufacturières nca", 'art'=>"Autres activités manufacturières nca"), + '3311Z' => array('lib'=>"Réparation d'ouvrages en métaux", 'art'=>"Réparation d'ouvrages en métaux"), + '3312Z' => array('lib'=>"Réparation de machines et équipements mécaniques", 'art'=>"Réparation de machines et équipements mécaniques"), + '3313Z' => array('lib'=>"Réparation de matériels électroniques et optiques", 'art'=>"Réparation de matériels électroniques et optiques"), + '3314Z' => array('lib'=>"Réparation d'équipements électriques", 'art'=>"Réparation d'équipements électriques"), + '3315Z' => array('lib'=>"Réparation et maintenance navale", 'art'=>"Réparation et maintenance navale"), + '3316Z' => array('lib'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux", 'art'=>"Réparation et maintenance d'aéronefs et d'engins spatiaux"), + '3317Z' => array('lib'=>"Réparation et maintenance d'autres équipements de transport", 'art'=>"Réparation et maintenance d'autres équipements de transport"), + '3319Z' => array('lib'=>"Réparation d'autres équipements", 'art'=>"Réparation d'autres équipements"), + '3320A' => array('lib'=>"Installation de structures métalliques, chaudronnées et de tuyauterie", 'art'=>"Installation de structures métalliques, chaudronnées et de tuyauterie"), + '3320B' => array('lib'=>"Installation de machines et équipements mécaniques", 'art'=>"Installation de machines et équipements mécaniques"), + '3320C' => array('lib'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels", 'art'=>"Conception d'ensemble et assemblage sur site industriel d'équipements de contrôle des processus industriels"), + '3320D' => array('lib'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels", 'art'=>"Installation d'équipements électriques, de matériels électroniques et optiques ou d'autres matériels"), + '3511Z' => array('lib'=>"Production d'électricité", 'art'=>"Production d'électricité"), + '3512Z' => array('lib'=>"Transport d'électricité", 'art'=>"Transport d'électricité"), + '3513Z' => array('lib'=>"Distribution d'électricité", 'art'=>"Distribution d'électricité"), + '3514Z' => array('lib'=>"Commerce d'électricité", 'art'=>"Commerce d'électricité"), + '3521Z' => array('lib'=>"Production de combustibles gazeux", 'art'=>"Production de combustibles gazeux"), + '3522Z' => array('lib'=>"Distribution de combustibles gazeux par conduites", 'art'=>"Distribution de combustibles gazeux par conduites"), + '3523Z' => array('lib'=>"Commerce de combustibles gazeux par conduites", 'art'=>"Commerce de combustibles gazeux par conduites"), + '3530Z' => array('lib'=>"Production et distribution de vapeur et d'air conditionné", 'art'=>"Production et distribution de vapeur et d'air conditionné"), + '3600Z' => array('lib'=>"Captage, traitement et distribution d'eau", 'art'=>"Captage, traitement et distribution d'eau"), + '3700Z' => array('lib'=>"Collecte et traitement des eaux usées", 'art'=>"Collecte et traitement des eaux usées"), + '3811Z' => array('lib'=>"Collecte des déchets non dangereux", 'art'=>"Collecte des déchets non dangereux"), + '3812Z' => array('lib'=>"Collecte des déchets dangereux", 'art'=>"Collecte des déchets dangereux"), + '3821Z' => array('lib'=>"Traitement et élimination des déchets non dangereux", 'art'=>"Traitement et élimination des déchets non dangereux"), + '3822Z' => array('lib'=>"Traitement et élimination des déchets dangereux", 'art'=>"Traitement et élimination des déchets dangereux"), + '3831Z' => array('lib'=>"Démantèlement d'épaves", 'art'=>"Démantèlement d'épaves"), + '3832Z' => array('lib'=>"Récupération de déchets triés", 'art'=>"Récupération de déchets triés"), + '3900Z' => array('lib'=>"Dépollution et autres services de gestion des déchets", 'art'=>"Dépollution et autres services de gestion des déchets"), + '4110A' => array('lib'=>"Promotion immobilière de logements", 'art'=>"Promotion immobilière de logements"), + '4110B' => array('lib'=>"Promotion immobilière de bureaux", 'art'=>"Promotion immobilière de bureaux"), + '4110C' => array('lib'=>"Promotion immobilière d'autres bâtiments", 'art'=>"Promotion immobilière d'autres bâtiments"), + '4110D' => array('lib'=>"Supports juridiques de programmes", 'art'=>"Supports juridiques de programmes"), + '4120A' => array('lib'=>"Construction de maisons individuelles", 'art'=>"Construction de maisons individuelles"), + '4120B' => array('lib'=>"Construction d'autres bâtiments", 'art'=>"Construction d'autres bâtiments"), + '4211Z' => array('lib'=>"Construction de routes et autoroutes", 'art'=>"Construction de routes et autoroutes"), + '4212Z' => array('lib'=>"Construction de voies ferrées de surface et souterraines", 'art'=>"Construction de voies ferrées de surface et souterraines"), + '4213A' => array('lib'=>"Construction d'ouvrages d'art", 'art'=>"Construction d'ouvrages d'art"), + '4213B' => array('lib'=>"Construction et entretien de tunnels", 'art'=>"Construction et entretien de tunnels"), + '4221Z' => array('lib'=>"Construction de réseaux pour fluides", 'art'=>"Construction de réseaux pour fluides"), + '4222Z' => array('lib'=>"Construction de réseaux électriques et de télécommunications", 'art'=>"Construction de réseaux électriques et de télécommunications"), + '4291Z' => array('lib'=>"Construction d'ouvrages maritimes et fluviaux", 'art'=>"Construction d'ouvrages maritimes et fluviaux"), + '4299Z' => array('lib'=>"Construction d'autres ouvrages de génie civil nca", 'art'=>"Construction d'autres ouvrages de génie civil nca"), + '4311Z' => array('lib'=>"Travaux de démolition", 'art'=>"Travaux de démolition"), + '4312A' => array('lib'=>"Travaux de terrassement courants et travaux préparatoires", 'art'=>"Travaux de terrassement courants et travaux préparatoires"), + '4312B' => array('lib'=>"Travaux de terrassement spécialisés ou de grande masse", 'art'=>"Travaux de terrassement spécialisés ou de grande masse"), + '4313Z' => array('lib'=>"Forages et sondages", 'art'=>"Forages et sondages"), + '4321A' => array('lib'=>"Travaux d'installation électrique dans tous locaux", 'art'=>"Travaux d'installation électrique dans tous locaux"), + '4321B' => array('lib'=>"Travaux d'installation électrique sur la voie publique", 'art'=>"Travaux d'installation électrique sur la voie publique"), + '4322A' => array('lib'=>"Travaux d'installation d'eau et de gaz en tous locaux", 'art'=>"Travaux d'installation d'eau et de gaz en tous locaux"), + '4322B' => array('lib'=>"Travaux d'installation d'équipements thermiques et de climatisation", 'art'=>"Travaux d'installation d'équipements thermiques et de climatisation"), + '4329A' => array('lib'=>"Travaux d'isolation", 'art'=>"Travaux d'isolation"), + '4329B' => array('lib'=>"Autres travaux d'installation nca", 'art'=>"Autres travaux d'installation nca"), + '4331Z' => array('lib'=>"Travaux de plâtrerie", 'art'=>"Travaux de plâtrerie"), + '4332A' => array('lib'=>"Travaux de menuiserie bois et pvc", 'art'=>"Travaux de menuiserie bois et pvc"), + '4332B' => array('lib'=>"Travaux de menuiserie métallique et serrurerie", 'art'=>"Travaux de menuiserie métallique et serrurerie"), + '4332C' => array('lib'=>"Agencement de lieux de vente", 'art'=>"Agencement de lieux de vente"), + '4333Z' => array('lib'=>"Travaux de revêtement des sols et des murs", 'art'=>"Travaux de revêtement des sols et des murs"), + '4334Z' => array('lib'=>"Travaux de peinture et vitrerie", 'art'=>"Travaux de peinture et vitrerie"), + '4339Z' => array('lib'=>"Autres travaux de finition", 'art'=>"Autres travaux de finition"), + '4391A' => array('lib'=>"Travaux de charpente", 'art'=>"Travaux de charpente"), + '4391B' => array('lib'=>"Travaux de couverture par éléments", 'art'=>"Travaux de couverture par éléments"), + '4399A' => array('lib'=>"Travaux d'étanchéification", 'art'=>"Travaux d'étanchéification"), + '4399B' => array('lib'=>"Travaux de montage de structures métalliques", 'art'=>"Travaux de montage de structures métalliques"), + '4399C' => array('lib'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment", 'art'=>"Travaux de maçonnerie générale et gros œuvre de bâtiment"), + '4399D' => array('lib'=>"Autres travaux spécialisés de construction", 'art'=>"Autres travaux spécialisés de construction"), + '4399E' => array('lib'=>"Location avec opérateur de matériel de construction", 'art'=>"Location avec opérateur de matériel de construction"), + '4511Z' => array('lib'=>"Commerce de voitures et de véhicules automobiles légers", 'art'=>"Commerce de voitures et de véhicules automobiles légers"), + '4519Z' => array('lib'=>"Commerce d'autres véhicules automobiles", 'art'=>"Commerce d'autres véhicules automobiles"), + '4520A' => array('lib'=>"Entretien et réparation de véhicules automobiles légers", 'art'=>"Entretien et réparation de véhicules automobiles légers"), + '4520B' => array('lib'=>"Entretien et réparation d'autres véhicules automobiles", 'art'=>"Entretien et réparation d'autres véhicules automobiles"), + '4531Z' => array('lib'=>"Commerce de gros d'équipements automobiles", 'art'=>"Commerce de gros d'équipements automobiles"), + '4532Z' => array('lib'=>"Commerce de détail d'équipements automobiles", 'art'=>"Commerce de détail d'équipements automobiles"), + '4540Z' => array('lib'=>"Commerce et réparation de motocycles", 'art'=>"Commerce et réparation de motocycles"), + '4611Z' => array('lib'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis", 'art'=>"Intermédiaires du commerce en matières premières agricoles, animaux vivants, matières premières textiles et produits semi-finis"), + '4612A' => array('lib'=>"Centrales d'achat de carburant", 'art'=>"Centrales d'achat de carburant"), + '4612B' => array('lib'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques", 'art'=>"Autres intermédiaires du commerce en combustibles, métaux, minéraux et produits chimiques"), + '4613Z' => array('lib'=>"Intermédiaires du commerce en bois et matériaux de construction", 'art'=>"Intermédiaires du commerce en bois et matériaux de construction"), + '4614Z' => array('lib'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions", 'art'=>"Intermédiaires du commerce en machines, équipements industriels, navires et avions"), + '4615Z' => array('lib'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie", 'art'=>"Intermédiaires du commerce en meubles, articles de ménage et quincaillerie"), + '4616Z' => array('lib'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir", 'art'=>"Intermédiaires du commerce en textiles, habillement, fourrures, chaussures et articles en cuir"), + '4617A' => array('lib'=>"Centrales d'achat alimentaires", 'art'=>"Centrales d'achat alimentaires"), + '4617B' => array('lib'=>"Autres intermédiaires du commerce en denrées, boissons et tabac", 'art'=>"Autres intermédiaires du commerce en denrées, boissons et tabac"), + '4618Z' => array('lib'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques", 'art'=>"Intermédiaires spécialisés dans le commerce d'autres produits spécifiques"), + '4619A' => array('lib'=>"Centrales d'achat non alimentaires", 'art'=>"Centrales d'achat non alimentaires"), + '4619B' => array('lib'=>"Autres intermédiaires du commerce en produits divers", 'art'=>"Autres intermédiaires du commerce en produits divers"), + '4621Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail", 'art'=>"Commerce de gros (commerce interentreprises) de céréales, de tabac non manufacturé, de semences et d'aliments pour le bétail"), + '4622Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes", 'art'=>"Commerce de gros (commerce interentreprises) de fleurs et plantes"), + '4623Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'animaux vivants", 'art'=>"Commerce de gros (commerce interentreprises) d'animaux vivants"), + '4624Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux", 'art'=>"Commerce de gros (commerce interentreprises) de cuirs et peaux"), + '4631Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de fruits et légumes", 'art'=>"Commerce de gros (commerce interentreprises) de fruits et légumes"), + '4632A' => array('lib'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie", 'art'=>"Commerce de gros (commerce interentreprises) de viandes de boucherie"), + '4632B' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de viande", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de viande"), + '4632C' => array('lib'=>"Commerce de gros (commerce interentreprises) de volailles et gibier", 'art'=>"Commerce de gros (commerce interentreprises) de volailles et gibier"), + '4633Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles", 'art'=>"Commerce de gros (commerce interentreprises) de produits laitiers, œufs, huiles et matières grasses comestibles"), + '4634Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de boissons", 'art'=>"Commerce de gros (commerce interentreprises) de boissons"), + '4635Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac", 'art'=>"Commerce de gros (commerce interentreprises) de produits à base de tabac"), + '4636Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie", 'art'=>"Commerce de gros (commerce interentreprises) de sucre, chocolat et confiserie"), + '4637Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices", 'art'=>"Commerce de gros (commerce interentreprises) de café, thé, cacao et épices"), + '4638A' => array('lib'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques", 'art'=>"Commerce de gros (commerce interentreprises) de poissons, crustacés et mollusques"), + '4638B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire spécialisé divers"), + '4639A' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits surgelés", 'art'=>"Commerce de gros (commerce interentreprises) de produits surgelés"), + '4639B' => array('lib'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) alimentaire non spécialisé"), + '4641Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de textiles", 'art'=>"Commerce de gros (commerce interentreprises) de textiles"), + '4642Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures", 'art'=>"Commerce de gros (commerce interentreprises) d'habillement et de chaussures"), + '4643Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils électroménagers"), + '4644Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien", 'art'=>"Commerce de gros (commerce interentreprises) de vaisselle, verrerie et produits d'entretien"), + '4645Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté", 'art'=>"Commerce de gros (commerce interentreprises) de parfumerie et de produits de beauté"), + '4646Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits pharmaceutiques"), + '4647Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage", 'art'=>"Commerce de gros (commerce interentreprises) de meubles, de tapis et d'appareils d'éclairage"), + '4648Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie", 'art'=>"Commerce de gros (commerce interentreprises) d'articles d'horlogerie et de bijouterie"), + '4649Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques", 'art'=>"Commerce de gros (commerce interentreprises) d'autres biens domestiques"), + '4651Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels", 'art'=>"Commerce de gros (commerce interentreprises) d'ordinateurs, d'équipements informatiques périphériques et de logiciels"), + '4652Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication", 'art'=>"Commerce de gros (commerce interentreprises) de composants et d'équipements électroniques et de télécommunication"), + '4661Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel agricole", 'art'=>"Commerce de gros (commerce interentreprises) de matériel agricole"), + '4662Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines-outils", 'art'=>"Commerce de gros (commerce interentreprises) de machines-outils"), + '4663Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'extraction, la construction et le génie civil"), + '4664Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement", 'art'=>"Commerce de gros (commerce interentreprises) de machines pour l'industrie textile et l'habillement"), + '4665Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau", 'art'=>"Commerce de gros (commerce interentreprises) de mobilier de bureau"), + '4666Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau", 'art'=>"Commerce de gros (commerce interentreprises) d'autres machines et équipements de bureau"), + '4669A' => array('lib'=>"Commerce de gros (commerce interentreprises) de matériel électrique", 'art'=>"Commerce de gros (commerce interentreprises) de matériel électrique"), + '4669B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements industriels divers"), + '4669C' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures et équipements divers pour le commerce et les services"), + '4671Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes", 'art'=>"Commerce de gros (commerce interentreprises) de combustibles et de produits annexes"), + '4672Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de minerais et métaux", 'art'=>"Commerce de gros (commerce interentreprises) de minerais et métaux"), + '4673A' => array('lib'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction", 'art'=>"Commerce de gros (commerce interentreprises) de bois et de matériaux de construction"), + '4673B' => array('lib'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration", 'art'=>"Commerce de gros (commerce interentreprises) d'appareils sanitaires et de produits de décoration"), + '4674A' => array('lib'=>"Commerce de gros (commerce interentreprises) de quincaillerie", 'art'=>"Commerce de gros (commerce interentreprises) de quincaillerie"), + '4674B' => array('lib'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage", 'art'=>"Commerce de gros (commerce interentreprises) de fournitures pour la plomberie et le chauffage"), + '4675Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de produits chimiques", 'art'=>"Commerce de gros (commerce interentreprises) de produits chimiques"), + '4676Z' => array('lib'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires", 'art'=>"Commerce de gros (commerce interentreprises) d'autres produits intermédiaires"), + '4677Z' => array('lib'=>"Commerce de gros (commerce interentreprises) de déchets et débris", 'art'=>"Commerce de gros (commerce interentreprises) de déchets et débris"), + '4690Z' => array('lib'=>"Commerce de gros (commerce interentreprises) non spécialisé", 'art'=>"Commerce de gros (commerce interentreprises) non spécialisé"), + '4711A' => array('lib'=>"Commerce de détail de produits surgelés", 'art'=>"Commerce de détail de produits surgelés"), + '4711B' => array('lib'=>"Commerce d'alimentation générale", 'art'=>"Commerce d'alimentation générale"), + '4711C' => array('lib'=>"Supérettes", 'art'=>"Supérettes"), + '4711D' => array('lib'=>"Supermarchés", 'art'=>"Supermarchés"), + '4711E' => array('lib'=>"Magasins multi-commerces", 'art'=>"Magasins multi-commerces"), + '4711F' => array('lib'=>"Hypermarchés", 'art'=>"Hypermarchés"), + '4719A' => array('lib'=>"Grands magasins", 'art'=>"Grands magasins"), + '4719B' => array('lib'=>"Autres commerces de détail en magasin non spécialisé", 'art'=>"Autres commerces de détail en magasin non spécialisé"), + '4721Z' => array('lib'=>"Commerce de détail de fruits et légumes en magasin spécialisé", 'art'=>"Commerce de détail de fruits et légumes en magasin spécialisé"), + '4722Z' => array('lib'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé", 'art'=>"Commerce de détail de viandes et de produits à base de viande en magasin spécialisé"), + '4723Z' => array('lib'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé", 'art'=>"Commerce de détail de poissons, crustacés et mollusques en magasin spécialisé"), + '4724Z' => array('lib'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé", 'art'=>"Commerce de détail de pain, pâtisserie et confiserie en magasin spécialisé"), + '4725Z' => array('lib'=>"Commerce de détail de boissons en magasin spécialisé", 'art'=>"Commerce de détail de boissons en magasin spécialisé"), + '4726Z' => array('lib'=>"Commerce de détail de produits à base de tabac en magasin spécialisé", 'art'=>"Commerce de détail de produits à base de tabac en magasin spécialisé"), + '4729Z' => array('lib'=>"Autres commerces de détail alimentaires en magasin spécialisé", 'art'=>"Autres commerces de détail alimentaires en magasin spécialisé"), + '4730Z' => array('lib'=>"Commerce de détail de carburants en magasin spécialisé", 'art'=>"Commerce de détail de carburants en magasin spécialisé"), + '4741Z' => array('lib'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé", 'art'=>"Commerce de détail d'ordinateurs, d'unités périphériques et de logiciels en magasin spécialisé"), + '4742Z' => array('lib'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé", 'art'=>"Commerce de détail de matériels de télécommunication en magasin spécialisé"), + '4743Z' => array('lib'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé", 'art'=>"Commerce de détail de matériels audio et vidéo en magasin spécialisé"), + '4751Z' => array('lib'=>"Commerce de détail de textiles en magasin spécialisé", 'art'=>"Commerce de détail de textiles en magasin spécialisé"), + '4752A' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en petites surfaces (moins de 400 m²)"), + '4752B' => array('lib'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)", 'art'=>"Commerce de détail de quincaillerie, peintures et verres en grandes surfaces (400 m² et plus)"), + '4753Z' => array('lib'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé", 'art'=>"Commerce de détail de tapis, moquettes et revêtements de murs et de sols en magasin spécialisé"), + '4754Z' => array('lib'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé", 'art'=>"Commerce de détail d'appareils électroménagers en magasin spécialisé"), + '4759A' => array('lib'=>"Commerce de détail de meubles", 'art'=>"Commerce de détail de meubles"), + '4759B' => array('lib'=>"Commerce de détail d'autres équipements du foyer", 'art'=>"Commerce de détail d'autres équipements du foyer"), + '4761Z' => array('lib'=>"Commerce de détail de livres en magasin spécialisé", 'art'=>"Commerce de détail de livres en magasin spécialisé"), + '4762Z' => array('lib'=>"Commerce de détail de journaux et papeterie en magasin spécialisé", 'art'=>"Commerce de détail de journaux et papeterie en magasin spécialisé"), + '4763Z' => array('lib'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé", 'art'=>"Commerce de détail d'enregistrements musicaux et vidéo en magasin spécialisé"), + '4764Z' => array('lib'=>"Commerce de détail d'articles de sport en magasin spécialisé", 'art'=>"Commerce de détail d'articles de sport en magasin spécialisé"), + '4765Z' => array('lib'=>"Commerce de détail de jeux et jouets en magasin spécialisé", 'art'=>"Commerce de détail de jeux et jouets en magasin spécialisé"), + '4771Z' => array('lib'=>"Commerce de détail d'habillement en magasin spécialisé", 'art'=>"Commerce de détail d'habillement en magasin spécialisé"), + '4772A' => array('lib'=>"Commerce de détail de la chaussure", 'art'=>"Commerce de détail de la chaussure"), + '4772B' => array('lib'=>"Commerce de détail de maroquinerie et d'articles de voyage", 'art'=>"Commerce de détail de maroquinerie et d'articles de voyage"), + '4773Z' => array('lib'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé", 'art'=>"Commerce de détail de produits pharmaceutiques en magasin spécialisé"), + '4774Z' => array('lib'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé", 'art'=>"Commerce de détail d'articles médicaux et orthopédiques en magasin spécialisé"), + '4775Z' => array('lib'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé", 'art'=>"Commerce de détail de parfumerie et de produits de beauté en magasin spécialisé"), + '4776Z' => array('lib'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé", 'art'=>"Commerce de détail de fleurs, plantes, graines, engrais, animaux de compagnie et aliments pour ces animaux en magasin spécialisé"), + '4777Z' => array('lib'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé", 'art'=>"Commerce de détail d'articles d'horlogerie et de bijouterie en magasin spécialisé"), + '4778A' => array('lib'=>"Commerces de détail d'optique", 'art'=>"Commerces de détail d'optique"), + '4778B' => array('lib'=>"Commerces de détail de charbons et combustibles", 'art'=>"Commerces de détail de charbons et combustibles"), + '4778C' => array('lib'=>"Autres commerces de détail spécialisés divers", 'art'=>"Autres commerces de détail spécialisés divers"), + '4779Z' => array('lib'=>"Commerce de détail de biens d'occasion en magasin", 'art'=>"Commerce de détail de biens d'occasion en magasin"), + '4781Z' => array('lib'=>"Commerce de détail alimentaire sur éventaires et marchés", 'art'=>"Commerce de détail alimentaire sur éventaires et marchés"), + '4782Z' => array('lib'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés", 'art'=>"Commerce de détail de textiles, d'habillement et de chaussures sur éventaires et marchés"), + '4789Z' => array('lib'=>"Autres commerces de détail sur éventaires et marchés", 'art'=>"Autres commerces de détail sur éventaires et marchés"), + '4791A' => array('lib'=>"Vente à distance sur catalogue général", 'art'=>"Vente à distance sur catalogue général"), + '4791B' => array('lib'=>"Vente à distance sur catalogue spécialisé", 'art'=>"Vente à distance sur catalogue spécialisé"), + '4799A' => array('lib'=>"Vente à domicile", 'art'=>"Vente à domicile"), + '4799B' => array('lib'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca", 'art'=>"Vente par automates et autres commerces de détail hors magasin, éventaires ou marchés nca"), + '4910Z' => array('lib'=>"Transport ferroviaire interurbain de voyageurs", 'art'=>"Transport ferroviaire interurbain de voyageurs"), + '4920Z' => array('lib'=>"Transports ferroviaires de fret", 'art'=>"Transports ferroviaires de fret"), + '4931Z' => array('lib'=>"Transports urbains et suburbains de voyageurs", 'art'=>"Transports urbains et suburbains de voyageurs"), + '4932Z' => array('lib'=>"Transports de voyageurs par taxis", 'art'=>"Transports de voyageurs par taxis"), + '4939A' => array('lib'=>"Transports routiers réguliers de voyageurs", 'art'=>"Transports routiers réguliers de voyageurs"), + '4939B' => array('lib'=>"Autres transports routiers de voyageurs", 'art'=>"Autres transports routiers de voyageurs"), + '4939C' => array('lib'=>"Téléphériques et remontées mécaniques", 'art'=>"Téléphériques et remontées mécaniques"), + '4941A' => array('lib'=>"Transports routiers de fret interurbains", 'art'=>"Transports routiers de fret interurbains"), + '4941B' => array('lib'=>"Transports routiers de fret de proximité", 'art'=>"Transports routiers de fret de proximité"), + '4941C' => array('lib'=>"Location de camions avec chauffeur", 'art'=>"Location de camions avec chauffeur"), + '4942Z' => array('lib'=>"Services de déménagement", 'art'=>"Services de déménagement"), + '4950Z' => array('lib'=>"Transports par conduites", 'art'=>"Transports par conduites"), + '5010Z' => array('lib'=>"Transports maritimes et côtiers de passagers", 'art'=>"Transports maritimes et côtiers de passagers"), + '5020Z' => array('lib'=>"Transports maritimes et côtiers de fret", 'art'=>"Transports maritimes et côtiers de fret"), + '5030Z' => array('lib'=>"Transports fluviaux de passagers", 'art'=>"Transports fluviaux de passagers"), + '5040Z' => array('lib'=>"Transports fluviaux de fret", 'art'=>"Transports fluviaux de fret"), + '5110Z' => array('lib'=>"Transports aériens de passagers", 'art'=>"Transports aériens de passagers"), + '5121Z' => array('lib'=>"Transports aériens de fret", 'art'=>"Transports aériens de fret"), + '5122Z' => array('lib'=>"Transports spatiaux", 'art'=>"Transports spatiaux"), + '5210A' => array('lib'=>"Entreposage et stockage frigorifique", 'art'=>"Entreposage et stockage frigorifique"), + '5210B' => array('lib'=>"Entreposage et stockage non frigorifique", 'art'=>"Entreposage et stockage non frigorifique"), + '5221Z' => array('lib'=>"Services auxiliaires des transports terrestres", 'art'=>"Services auxiliaires des transports terrestres"), + '5222Z' => array('lib'=>"Services auxiliaires des transports par eau", 'art'=>"Services auxiliaires des transports par eau"), + '5223Z' => array('lib'=>"Services auxiliaires des transports aériens", 'art'=>"Services auxiliaires des transports aériens"), + '5224A' => array('lib'=>"Manutention portuaire", 'art'=>"Manutention portuaire"), + '5224B' => array('lib'=>"Manutention non portuaire", 'art'=>"Manutention non portuaire"), + '5229A' => array('lib'=>"Messagerie, fret express", 'art'=>"Messagerie, fret express"), + '5229B' => array('lib'=>"Affrètement et organisation des transports", 'art'=>"Affrètement et organisation des transports"), + '5310Z' => array('lib'=>"Activités de poste dans le cadre d'une obligation de service universel", 'art'=>"Activités de poste dans le cadre d'une obligation de service universel"), + '5320Z' => array('lib'=>"Autres activités de poste et de courrier", 'art'=>"Autres activités de poste et de courrier"), + '5510Z' => array('lib'=>"Hôtels et hébergement similaire", 'art'=>"Hôtels et hébergement similaire"), + '5520Z' => array('lib'=>"Hébergement touristique et autre hébergement de courte durée", 'art'=>"Hébergement touristique et autre hébergement de courte durée"), + '5530Z' => array('lib'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs", 'art'=>"Terrains de camping et parcs pour caravanes ou véhicules de loisirs"), + '5590Z' => array('lib'=>"Autres hébergements", 'art'=>"Autres hébergements"), + '5610A' => array('lib'=>"Restauration traditionnelle", 'art'=>"Restauration traditionnelle"), + '5610B' => array('lib'=>"Cafétérias et autres libres-services", 'art'=>"Cafétérias et autres libres-services"), + '5610C' => array('lib'=>"Restauration de type rapide", 'art'=>"Restauration de type rapide"), + '5621Z' => array('lib'=>"Services des traiteurs", 'art'=>"Services des traiteurs"), + '5629A' => array('lib'=>"Restauration collective sous contrat", 'art'=>"Restauration collective sous contrat"), + '5629B' => array('lib'=>"Autres services de restauration nca", 'art'=>"Autres services de restauration nca"), + '5630Z' => array('lib'=>"Débits de boissons", 'art'=>"Débits de boissons"), + '5811Z' => array('lib'=>"Édition de livres", 'art'=>"Édition de livres"), + '5812Z' => array('lib'=>"Édition de répertoires et de fichiers d'adresses", 'art'=>"Édition de répertoires et de fichiers d'adresses"), + '5813Z' => array('lib'=>"Édition de journaux", 'art'=>"Édition de journaux"), + '5814Z' => array('lib'=>"Édition de revues et périodiques", 'art'=>"Édition de revues et périodiques"), + '5819Z' => array('lib'=>"Autres activités d'édition", 'art'=>"Autres activités d'édition"), + '5821Z' => array('lib'=>"Édition de jeux électroniques", 'art'=>"Édition de jeux électroniques"), + '5829A' => array('lib'=>"Édition de logiciels système et de réseau", 'art'=>"Édition de logiciels système et de réseau"), + '5829B' => array('lib'=>"Edition de logiciels outils de développement et de langages", 'art'=>"Edition de logiciels outils de développement et de langages"), + '5829C' => array('lib'=>"Edition de logiciels applicatifs", 'art'=>"Edition de logiciels applicatifs"), + '5911A' => array('lib'=>"Production de films et de programmes pour la télévision", 'art'=>"Production de films et de programmes pour la télévision"), + '5911B' => array('lib'=>"Production de films institutionnels et publicitaires", 'art'=>"Production de films institutionnels et publicitaires"), + '5911C' => array('lib'=>"Production de films pour le cinéma", 'art'=>"Production de films pour le cinéma"), + '5912Z' => array('lib'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision", 'art'=>"Post-production de films cinématographiques, de vidéo et de programmes de télévision"), + '5913A' => array('lib'=>"Distribution de films cinématographiques", 'art'=>"Distribution de films cinématographiques"), + '5913B' => array('lib'=>"Edition et distribution vidéo", 'art'=>"Edition et distribution vidéo"), + '5914Z' => array('lib'=>"Projection de films cinématographiques", 'art'=>"Projection de films cinématographiques"), + '5920Z' => array('lib'=>"Enregistrement sonore et édition musicale", 'art'=>"Enregistrement sonore et édition musicale"), + '6010Z' => array('lib'=>"Édition et diffusion de programmes radio", 'art'=>"Édition et diffusion de programmes radio"), + '6020A' => array('lib'=>"Edition de chaînes généralistes", 'art'=>"Edition de chaînes généralistes"), + '6020B' => array('lib'=>"Edition de chaînes thématiques", 'art'=>"Edition de chaînes thématiques"), + '6110Z' => array('lib'=>"Télécommunications filaires", 'art'=>"Télécommunications filaires"), + '6120Z' => array('lib'=>"Télécommunications sans fil", 'art'=>"Télécommunications sans fil"), + '6130Z' => array('lib'=>"Télécommunications par satellite", 'art'=>"Télécommunications par satellite"), + '6190Z' => array('lib'=>"Autres activités de télécommunication", 'art'=>"Autres activités de télécommunication"), + '6201Z' => array('lib'=>"Programmation informatique", 'art'=>"Programmation informatique"), + '6202A' => array('lib'=>"Conseil en systèmes et logiciels informatiques", 'art'=>"Conseil en systèmes et logiciels informatiques"), + '6202B' => array('lib'=>"Tierce maintenance de systèmes et d'applications informatiques", 'art'=>"Tierce maintenance de systèmes et d'applications informatiques"), + '6203Z' => array('lib'=>"Gestion d'installations informatiques", 'art'=>"Gestion d'installations informatiques"), + '6209Z' => array('lib'=>"Autres activités informatiques", 'art'=>"Autres activités informatiques"), + '6311Z' => array('lib'=>"Traitement de données, hébergement et activités connexes", 'art'=>"Traitement de données, hébergement et activités connexes"), + '6312Z' => array('lib'=>"Portails internet", 'art'=>"Portails internet"), + '6391Z' => array('lib'=>"Activités des agences de presse", 'art'=>"Activités des agences de presse"), + '6399Z' => array('lib'=>"Autres services d'information nca", 'art'=>"Autres services d'information nca"), + '6411Z' => array('lib'=>"Activités de banque centrale", 'art'=>"Activités de banque centrale"), + '6419Z' => array('lib'=>"Autres intermédiations monétaires", 'art'=>"Autres intermédiations monétaires"), + '6420Z' => array('lib'=>"Activités des sociétés holding", 'art'=>"Activités des sociétés holding"), + '6430Z' => array('lib'=>"Fonds de placement et entités financières similaires", 'art'=>"Fonds de placement et entités financières similaires"), + '6491Z' => array('lib'=>"Crédit-bail", 'art'=>"Crédit-bail"), + '6492Z' => array('lib'=>"Autre distribution de crédit", 'art'=>"Autre distribution de crédit"), + '6499Z' => array('lib'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités des services financiers, hors assurance et caisses de retraite, nca"), + '6511Z' => array('lib'=>"Assurance vie", 'art'=>"Assurance vie"), + '6512Z' => array('lib'=>"Autres assurances", 'art'=>"Autres assurances"), + '6520Z' => array('lib'=>"Réassurance", 'art'=>"Réassurance"), + '6530Z' => array('lib'=>"Caisses de retraite", 'art'=>"Caisses de retraite"), + '6611Z' => array('lib'=>"Administration de marchés financiers", 'art'=>"Administration de marchés financiers"), + '6612Z' => array('lib'=>"Courtage de valeurs mobilières et de marchandises", 'art'=>"Courtage de valeurs mobilières et de marchandises"), + '6619A' => array('lib'=>"Supports juridiques de gestion de patrimoine mobilier", 'art'=>"Supports juridiques de gestion de patrimoine mobilier"), + '6619B' => array('lib'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca", 'art'=>"Autres activités auxiliaires de services financiers, hors assurance et caisses de retraite, nca"), + '6621Z' => array('lib'=>"évaluation des risques et dommages", 'art'=>"évaluation des risques et dommages"), + '6622Z' => array('lib'=>"Activités des agents et courtiers d'assurances", 'art'=>"Activités des agents et courtiers d'assurances"), + '6629Z' => array('lib'=>"Autres activités auxiliaires d'assurance et de caisses de retraite", 'art'=>"Autres activités auxiliaires d'assurance et de caisses de retraite"), + '6630Z' => array('lib'=>"Gestion de fonds", 'art'=>"Gestion de fonds"), + '6810Z' => array('lib'=>"Activités des marchands de biens immobiliers", 'art'=>"Activités des marchands de biens immobiliers"), + '6820A' => array('lib'=>"Location de logements", 'art'=>"Location de logements"), + '6820B' => array('lib'=>"Location de terrains et d'autres biens immobiliers", 'art'=>"Location de terrains et d'autres biens immobiliers"), + '6831Z' => array('lib'=>"Agences immobilières", 'art'=>"Agences immobilières"), + '6832A' => array('lib'=>"Administration d'immeubles et autres biens immobiliers", 'art'=>"Administration d'immeubles et autres biens immobiliers"), + '6832B' => array('lib'=>"Supports juridiques de gestion de patrimoine immobilier", 'art'=>"Supports juridiques de gestion de patrimoine immobilier"), + '6910Z' => array('lib'=>"Activités juridiques", 'art'=>"Activités juridiques"), + '6920Z' => array('lib'=>"Activités comptables", 'art'=>"Activités comptables"), + '7010Z' => array('lib'=>"Activités des sièges sociaux", 'art'=>"Activités des sièges sociaux"), + '7021Z' => array('lib'=>"Conseil en relations publiques et communication", 'art'=>"Conseil en relations publiques et communication"), + '7022Z' => array('lib'=>"Conseil pour les affaires et autres conseils de gestion", 'art'=>"Conseil pour les affaires et autres conseils de gestion"), + '7111Z' => array('lib'=>"Activités d'architecture", 'art'=>"Activités d'architecture"), + '7112A' => array('lib'=>"Activité des géomètres", 'art'=>"Activité des géomètres"), + '7112B' => array('lib'=>"Ingénierie, études techniques", 'art'=>"Ingénierie, études techniques"), + '7120A' => array('lib'=>"Contrôle technique automobile", 'art'=>"Contrôle technique automobile"), + '7120B' => array('lib'=>"Analyses, essais et inspections techniques", 'art'=>"Analyses, essais et inspections techniques"), + '7211Z' => array('lib'=>"Recherche-développement en biotechnologie", 'art'=>"Recherche-développement en biotechnologie"), + '7219Z' => array('lib'=>"Recherche-développement en autres sciences physiques et naturelles", 'art'=>"Recherche-développement en autres sciences physiques et naturelles"), + '7220Z' => array('lib'=>"Recherche-développement en sciences humaines et sociales", 'art'=>"Recherche-développement en sciences humaines et sociales"), + '7311Z' => array('lib'=>"Activités des agences de publicité", 'art'=>"Activités des agences de publicité"), + '7312Z' => array('lib'=>"Régie publicitaire de médias", 'art'=>"Régie publicitaire de médias"), + '7320Z' => array('lib'=>"études de marché et sondages", 'art'=>"études de marché et sondages"), + '7410Z' => array('lib'=>"Activités spécialisées de design", 'art'=>"Activités spécialisées de design"), + '7420Z' => array('lib'=>"Activités photographiques", 'art'=>"Activités photographiques"), + '7430Z' => array('lib'=>"Traduction et interprétation", 'art'=>"Traduction et interprétation"), + '7490A' => array('lib'=>"Activité des économistes de la construction", 'art'=>"Activité des économistes de la construction"), + '7490B' => array('lib'=>"Activités spécialisées, scientifiques et techniques diverses", 'art'=>"Activités spécialisées, scientifiques et techniques diverses"), + '7500Z' => array('lib'=>"Activités vétérinaires", 'art'=>"Activités vétérinaires"), + '7711A' => array('lib'=>"Location de courte durée de voitures et de véhicules automobiles légers", 'art'=>"Location de courte durée de voitures et de véhicules automobiles légers"), + '7711B' => array('lib'=>"Location de longue durée de voitures et de véhicules automobiles légers", 'art'=>"Location de longue durée de voitures et de véhicules automobiles légers"), + '7712Z' => array('lib'=>"Location et location-bail de camions", 'art'=>"Location et location-bail de camions"), + '7721Z' => array('lib'=>"Location et location-bail d'articles de loisirs et de sport", 'art'=>"Location et location-bail d'articles de loisirs et de sport"), + '7722Z' => array('lib'=>"Location de vidéocassettes et disques vidéo", 'art'=>"Location de vidéocassettes et disques vidéo"), + '7729Z' => array('lib'=>"Location et location-bail d'autres biens personnels et domestiques", 'art'=>"Location et location-bail d'autres biens personnels et domestiques"), + '7731Z' => array('lib'=>"Location et location-bail de machines et équipements agricoles", 'art'=>"Location et location-bail de machines et équipements agricoles"), + '7732Z' => array('lib'=>"Location et location-bail de machines et équipements pour la construction", 'art'=>"Location et location-bail de machines et équipements pour la construction"), + '7733Z' => array('lib'=>"Location et location-bail de machines de bureau et de matériel informatique", 'art'=>"Location et location-bail de machines de bureau et de matériel informatique"), + '7734Z' => array('lib'=>"Location et location-bail de matériels de transport par eau", 'art'=>"Location et location-bail de matériels de transport par eau"), + '7735Z' => array('lib'=>"Location et location-bail de matériels de transport aérien", 'art'=>"Location et location-bail de matériels de transport aérien"), + '7739Z' => array('lib'=>"Location et location-bail d'autres machines, équipements et biens matériels nca", 'art'=>"Location et location-bail d'autres machines, équipements et biens matériels nca"), + '7740Z' => array('lib'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright", 'art'=>"Location-bail de propriété intellectuelle et de produits similaires, à l'exception des œuvres soumises à copyright"), + '7810Z' => array('lib'=>"Activités des agences de placement de main-d'œuvre", 'art'=>"Activités des agences de placement de main-d'œuvre"), + '7820Z' => array('lib'=>"Activités des agences de travail temporaire", 'art'=>"Activités des agences de travail temporaire"), + '7830Z' => array('lib'=>"Autre mise à disposition de ressources humaines", 'art'=>"Autre mise à disposition de ressources humaines"), + '7911Z' => array('lib'=>"Activités des agences de voyage", 'art'=>"Activités des agences de voyage"), + '7912Z' => array('lib'=>"Activités des voyagistes", 'art'=>"Activités des voyagistes"), + '7990Z' => array('lib'=>"Autres services de réservation et activités connexes", 'art'=>"Autres services de réservation et activités connexes"), + '8010Z' => array('lib'=>"Activités de sécurité privée", 'art'=>"Activités de sécurité privée"), + '8020Z' => array('lib'=>"Activités liées aux systèmes de sécurité", 'art'=>"Activités liées aux systèmes de sécurité"), + '8030Z' => array('lib'=>"Activités d'enquête", 'art'=>"Activités d'enquête"), + '8110Z' => array('lib'=>"Activités combinées de soutien lié aux bâtiments", 'art'=>"Activités combinées de soutien lié aux bâtiments"), + '8121Z' => array('lib'=>"Nettoyage courant des bâtiments", 'art'=>"Nettoyage courant des bâtiments"), + '8122Z' => array('lib'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel", 'art'=>"Autres activités de nettoyage des bâtiments et nettoyage industriel"), + '8129A' => array('lib'=>"Désinfection, désinsectisation, dératisation", 'art'=>"Désinfection, désinsectisation, dératisation"), + '8129B' => array('lib'=>"Autres activités de nettoyage nca", 'art'=>"Autres activités de nettoyage nca"), + '8130Z' => array('lib'=>"Services d'aménagement paysager", 'art'=>"Services d'aménagement paysager"), + '8211Z' => array('lib'=>"Services administratifs combinés de bureau", 'art'=>"Services administratifs combinés de bureau"), + '8219Z' => array('lib'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau", 'art'=>"Photocopie, préparation de documents et autres activités spécialisées de soutien de bureau"), + '8220Z' => array('lib'=>"Activités de centres d'appels", 'art'=>"Activités de centres d'appels"), + '8230Z' => array('lib'=>"Organisation de foires, salons professionnels et congrès", 'art'=>"Organisation de foires, salons professionnels et congrès"), + '8291Z' => array('lib'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle", 'art'=>"Activités des agences de recouvrement de factures et des sociétés d'information financière sur la clientèle"), + '8292Z' => array('lib'=>"Activités de conditionnement", 'art'=>"Activités de conditionnement"), + '8299Z' => array('lib'=>"Autres activités de soutien aux entreprises nca", 'art'=>"Autres activités de soutien aux entreprises nca"), + '8411Z' => array('lib'=>"Administration publique générale", 'art'=>"Administration publique générale"), + '8412Z' => array('lib'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale", 'art'=>"Administration publique (tutelle) de la santé, de la formation, de la culture et des services sociaux, autre que sécurité sociale"), + '8413Z' => array('lib'=>"Administration publique (tutelle) des activités économiques", 'art'=>"Administration publique (tutelle) des activités économiques"), + '8421Z' => array('lib'=>"Affaires étrangères", 'art'=>"Affaires étrangères"), + '8422Z' => array('lib'=>"Défense", 'art'=>"Défense"), + '8423Z' => array('lib'=>"Justice", 'art'=>"Justice"), + '8424Z' => array('lib'=>"Activités d'ordre public et de sécurité", 'art'=>"Activités d'ordre public et de sécurité"), + '8425Z' => array('lib'=>"Services du feu et de secours", 'art'=>"Services du feu et de secours"), + '8430A' => array('lib'=>"Activités générales de sécurité sociale", 'art'=>"Activités générales de sécurité sociale"), + '8430B' => array('lib'=>"Gestion des retraites complémentaires", 'art'=>"Gestion des retraites complémentaires"), + '8430C' => array('lib'=>"Distribution sociale de revenus", 'art'=>"Distribution sociale de revenus"), + '8510Z' => array('lib'=>"Enseignement pré-primaire", 'art'=>"Enseignement pré-primaire"), + '8520Z' => array('lib'=>"Enseignement primaire", 'art'=>"Enseignement primaire"), + '8531Z' => array('lib'=>"Enseignement secondaire général", 'art'=>"Enseignement secondaire général"), + '8532Z' => array('lib'=>"Enseignement secondaire technique ou professionnel", 'art'=>"Enseignement secondaire technique ou professionnel"), + '8541Z' => array('lib'=>"Enseignement post-secondaire non supérieur", 'art'=>"Enseignement post-secondaire non supérieur"), + '8542Z' => array('lib'=>"Enseignement supérieur", 'art'=>"Enseignement supérieur"), + '8551Z' => array('lib'=>"Enseignement de disciplines sportives et d'activités de loisirs", 'art'=>"Enseignement de disciplines sportives et d'activités de loisirs"), + '8552Z' => array('lib'=>"Enseignement culturel", 'art'=>"Enseignement culturel"), + '8553Z' => array('lib'=>"Enseignement de la conduite", 'art'=>"Enseignement de la conduite"), + '8559A' => array('lib'=>"Formation continue d'adultes", 'art'=>"Formation continue d'adultes"), + '8559B' => array('lib'=>"Autres enseignements", 'art'=>"Autres enseignements"), + '8560Z' => array('lib'=>"Activités de soutien à l'enseignement", 'art'=>"Activités de soutien à l'enseignement"), + '8610Z' => array('lib'=>"Activités hospitalières", 'art'=>"Activités hospitalières"), + '8621Z' => array('lib'=>"Activité des médecins généralistes", 'art'=>"Activité des médecins généralistes"), + '8622A' => array('lib'=>"Activités de radiodiagnostic et de radiothérapie", 'art'=>"Activités de radiodiagnostic et de radiothérapie"), + '8622B' => array('lib'=>"Activités chirurgicales", 'art'=>"Activités chirurgicales"), + '8622C' => array('lib'=>"Autres activités des médecins spécialistes", 'art'=>"Autres activités des médecins spécialistes"), + '8623Z' => array('lib'=>"Pratique dentaire", 'art'=>"Pratique dentaire"), + '8690A' => array('lib'=>"Ambulances", 'art'=>"Ambulances"), + '8690B' => array('lib'=>"Laboratoires d'analyses médicales", 'art'=>"Laboratoires d'analyses médicales"), + '8690C' => array('lib'=>"Centres de collecte et banques d'organes", 'art'=>"Centres de collecte et banques d'organes"), + '8690D' => array('lib'=>"Activités des infirmiers et des sages-femmes", 'art'=>"Activités des infirmiers et des sages-femmes"), + '8690E' => array('lib'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues", 'art'=>"Activités des professionnels de la rééducation, de l'appareillage et des pédicures-podologues"), + '8690F' => array('lib'=>"Activités de santé humaine non classées ailleurs", 'art'=>"Activités de santé humaine non classées ailleurs"), + '8710A' => array('lib'=>"Hébergement médicalisé pour personnes âgées", 'art'=>"Hébergement médicalisé pour personnes âgées"), + '8710B' => array('lib'=>"Hébergement médicalisé pour enfants handicapés", 'art'=>"Hébergement médicalisé pour enfants handicapés"), + '8710C' => array('lib'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé", 'art'=>"Hébergement médicalisé pour adultes handicapés et autre hébergement médicalisé"), + '8720A' => array('lib'=>"Hébergement social pour handicapés mentaux et malades mentaux", 'art'=>"Hébergement social pour handicapés mentaux et malades mentaux"), + '8720B' => array('lib'=>"Hébergement social pour toxicomanes", 'art'=>"Hébergement social pour toxicomanes"), + '8730A' => array('lib'=>"Hébergement social pour personnes âgées", 'art'=>"Hébergement social pour personnes âgées"), + '8730B' => array('lib'=>"Hébergement social pour handicapés physiques", 'art'=>"Hébergement social pour handicapés physiques"), + '8790A' => array('lib'=>"Hébergement social pour enfants en difficultés", 'art'=>"Hébergement social pour enfants en difficultés"), + '8790B' => array('lib'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social", 'art'=>"Hébergement social pour adultes et familles en difficultés et autre hébergement social"), + '8810A' => array('lib'=>"Aide à domicile", 'art'=>"Aide à domicile"), + '8810B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées", 'art'=>"Accueil ou accompagnement sans hébergement d'adultes handicapés ou de personnes âgées"), + '8810C' => array('lib'=>"Aide par le travail", 'art'=>"Aide par le travail"), + '8891A' => array('lib'=>"Accueil de jeunes enfants", 'art'=>"Accueil de jeunes enfants"), + '8891B' => array('lib'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés", 'art'=>"Accueil ou accompagnement sans hébergement d'enfants handicapés"), + '8899A' => array('lib'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents", 'art'=>"Autre accueil ou accompagnement sans hébergement d'enfants et d'adolescents"), + '8899B' => array('lib'=>"Action sociale sans hébergement nca", 'art'=>"Action sociale sans hébergement nca"), + '9001Z' => array('lib'=>"Arts du spectacle vivant", 'art'=>"Arts du spectacle vivant"), + '9002Z' => array('lib'=>"Activités de soutien au spectacle vivant", 'art'=>"Activités de soutien au spectacle vivant"), + '9003A' => array('lib'=>"Création artistique relevant des arts plastiques", 'art'=>"Création artistique relevant des arts plastiques"), + '9003B' => array('lib'=>"Autre création artistique", 'art'=>"Autre création artistique"), + '9004Z' => array('lib'=>"Gestion de salles de spectacles", 'art'=>"Gestion de salles de spectacles"), + '9101Z' => array('lib'=>"Gestion des bibliothèques et des archives", 'art'=>"Gestion des bibliothèques et des archives"), + '9102Z' => array('lib'=>"Gestion des musées", 'art'=>"Gestion des musées"), + '9103Z' => array('lib'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires", 'art'=>"Gestion des sites et monuments historiques et des attractions touristiques similaires"), + '9104Z' => array('lib'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles", 'art'=>"Gestion des jardins botaniques et zoologiques et des réserves naturelles"), + '9200Z' => array('lib'=>"Organisation de jeux de hasard et d'argent", 'art'=>"Organisation de jeux de hasard et d'argent"), + '9311Z' => array('lib'=>"Gestion d'installations sportives", 'art'=>"Gestion d'installations sportives"), + '9312Z' => array('lib'=>"Activités de clubs de sports", 'art'=>"Activités de clubs de sports"), + '9313Z' => array('lib'=>"Activités des centres de culture physique", 'art'=>"Activités des centres de culture physique"), + '9319Z' => array('lib'=>"Autres activités liées au sport", 'art'=>"Autres activités liées au sport"), + '9321Z' => array('lib'=>"Activités des parcs d'attractions et parcs à thèmes", 'art'=>"Activités des parcs d'attractions et parcs à thèmes"), + '9329Z' => array('lib'=>"Autres activités récréatives et de loisirs", 'art'=>"Autres activités récréatives et de loisirs"), + '9411Z' => array('lib'=>"Activités des organisations patronales et consulaires", 'art'=>"Activités des organisations patronales et consulaires"), + '9412Z' => array('lib'=>"Activités des organisations professionnelles", 'art'=>"Activités des organisations professionnelles"), + '9420Z' => array('lib'=>"Activités des syndicats de salariés", 'art'=>"Activités des syndicats de salariés"), + '9491Z' => array('lib'=>"Activités des organisations religieuses", 'art'=>"Activités des organisations religieuses"), + '9492Z' => array('lib'=>"Activités des organisations politiques", 'art'=>"Activités des organisations politiques"), + '9499Z' => array('lib'=>"Autres organisations fonctionnant par adhésion volontaire", 'art'=>"Autres organisations fonctionnant par adhésion volontaire"), + '9511Z' => array('lib'=>"Réparation d'ordinateurs et d'équipements périphériques", 'art'=>"Réparation d'ordinateurs et d'équipements périphériques"), + '9512Z' => array('lib'=>"Réparation d'équipements de communication", 'art'=>"Réparation d'équipements de communication"), + '9521Z' => array('lib'=>"Réparation de produits électroniques grand public", 'art'=>"Réparation de produits électroniques grand public"), + '9522Z' => array('lib'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin", 'art'=>"Réparation d'appareils électroménagers et d'équipements pour la maison et le jardin"), + '9523Z' => array('lib'=>"Réparation de chaussures et d'articles en cuir", 'art'=>"Réparation de chaussures et d'articles en cuir"), + '9524Z' => array('lib'=>"Réparation de meubles et d'équipements du foyer", 'art'=>"Réparation de meubles et d'équipements du foyer"), + '9525Z' => array('lib'=>"Réparation d'articles d'horlogerie et de bijouterie", 'art'=>"Réparation d'articles d'horlogerie et de bijouterie"), + '9529Z' => array('lib'=>"Réparation d'autres biens personnels et domestiques", 'art'=>"Réparation d'autres biens personnels et domestiques"), + '9601A' => array('lib'=>"Blanchisserie-teinturerie de gros", 'art'=>"Blanchisserie-teinturerie de gros"), + '9601B' => array('lib'=>"Blanchisserie-teinturerie de détail", 'art'=>"Blanchisserie-teinturerie de détail"), + '9602A' => array('lib'=>"Coiffure", 'art'=>"Coiffure"), + '9602B' => array('lib'=>"Soins de beauté", 'art'=>"Soins de beauté"), + '9603Z' => array('lib'=>"Services funéraires", 'art'=>"Services funéraires"), + '9604Z' => array('lib'=>"Entretien corporel", 'art'=>"Entretien corporel"), + '9609Z' => array('lib'=>"Autres services personnels nca", 'art'=>"Autres services personnels nca"), + '9700Z' => array('lib'=>"Activités des ménages en tant qu'employeurs de personnel domestique", 'art'=>"Activités des ménages en tant qu'employeurs de personnel domestique"), + '9810Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de biens pour usage propre"), + '9820Z' => array('lib'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre", 'art'=>"Activités indifférenciées des ménages en tant que producteurs de services pour usage propre"), + '9900Z' => array('lib'=>"Activités des organisations et organismes extraterritoriaux", 'art'=>"Activités des organisations et organismes extraterritoriaux"), + '0000Z' => array('lib'=>"En instance de chiffrement", 'art'=>"En instance de chiffrement"), + ), +); diff --git a/1.2/library/Metier/scores/README.txt b/1.2/library/Metier/scores/README.txt index 5f5c5744..3d7fd539 100644 --- a/1.2/library/Metier/scores/README.txt +++ b/1.2/library/Metier/scores/README.txt @@ -1,3 +1,17 @@ +Problème à debugger +=================== +Version 411 : + FRANCHISE AMO ET SOFT + Commentaires + Faire disparaitre + Code 34810 supprimé espace sur ' {NOMEN}' + Code 9995 ajouté fin de balise + Code 396000, ligne 20 : apostrophe + Code 740160, ligne 10 : apostrophe sur "les frais d'établissement" + Code 770061, ligne 10 : apostrophe sur "la durée moyenne d'extinction" + Code 770221, ligne : apostrophe sur "l'article" + Code 770222, ligne : apostrophe sur "l'article" + Amélioration des scores ======================= diff --git a/1.2/library/Metier/scores/Variables/CommentsIndiscore409.php b/1.2/library/Metier/scores/Variables/CommentsIndiscore409.php new file mode 100644 index 00000000..f0c093d3 --- /dev/null +++ b/1.2/library/Metier/scores/Variables/CommentsIndiscore409.php @@ -0,0 +1,4922 @@ +ENTREPRISE INACTIVE"; +$tabCommentaires[7001][2][10] = "
  • ENTREPRISE EN ACTIVITE SELON l'INSEE MAIS DECLAREE INACTIVE EN SOURCE GREFFES"; +$tabCommentaires[7002][2][10] = "
  • ENTREPRISE SANS ACTIVITE SELON l'INSEE MAIS DECLAREE ENCORE EN ACTIVITE EN SOURCE GREFFES"; +$tabCommentaires[7003][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)"; +$tabCommentaires[7101][2][10] = "
  • PROCEDURE COLLECTIVE EN COURS DEPUIS LE {ANNONCEPCDATE}"; +$tabCommentaires[7102][2][10] = "
  • La dernière publication légale a été publiée au {ANNONCEDERSOURCE}, le {ANNONCEDERDATE} et fait mention de {ANNONCEDER}"; +$tabCommentaires[7110][2][10] = "Pour en savoir plus :"; +$tabCommentaires[7112][2][10] = "
  • Sur la Sauvegarde des entreprises en difficulté: cliquer ici"; +$tabCommentaires[7113][2][10] = "
  • Sur la procédure de Redressement Judiciaire cliquer ici"; +$tabCommentaires[7114][2][10] = "
  • Sur la Procédure de Règlement Judiciaire avant 1985 cliquer ici"; +$tabCommentaires[7115][2][10] = "
  • Sur la procédure de Liquidation Judiciaire cliquer ici"; +$tabCommentaires[7118][2][10] = "
  • Sur les Statistiques moyenne des procédures collectives sur 10 ans cliquer ici"; +$tabCommentaires[7119][2][20] = "
  • Sur les voies de recours cliquer ici"; +$tabCommentaires[8002][2][10] = "Le {TRIBUNAL_PROCOL} a prononcé le jugement de {ANNONCEPC} en date du {ANNONCEPCDATE}"; +$tabCommentaires[8003][2][10] = "Le plan d'apurement a été accordé par le tribunal le {ANNONCEPLANDATE}."; +$tabCommentaires[8004][2][10] = ", et a été modifié le {ANNONCEPLANMODIFDATE}."; +$tabCommentaires[8011][2][10] = "
  • L'entreprise devrait avoir cessé son activité, l'avis de Dissolution anticipée de la Société à été publié le {ANNONCEDISSODATE}."; +$tabCommentaires[8021][2][10] = "L'avis de Dissolution anticipée de la Société à été publié le {ANNONCEDISSODATE}."; +$tabCommentaires[8101][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; +$tabCommentaires[8102][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; +$tabCommentaires[8103][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; +$tabCommentaires[9995][2][1] = "L'objet social publié dans les annonces légales est libellé comme : \"{ANNONCEOBJET}\". +"; +$tabCommentaires[9996][2][1] = "Au répertoire national l'activité est codifiée {APEENT(5)}, ({APEENT}). +"; +$tabCommentaires[9997][2][1] = ", et concerne les {LISTEPRODUIT}. +"; +$tabCommentaires[10000][2][1] = "L'établissement exerce son activité vers l'entreprise elle-même, par exemple la formation interne, l'entreposage, le transport de marchandises et l'administration."; +$tabCommentaires[12000][2][1] = ", dans le secteur: {ACTIVNAT}"; +$tabCommentaires[13000][2][1] = ", ({LIEUACT})"; +$tabCommentaires[14000][2][1] = ", d'activité saisonnière."; +$tabCommentaires[17000][2][1] = ", sans variante particulière."; +$tabCommentaires[18000][2][1] = ", et cette activité s'exerce plus particulièrement dans le domaine du montage et de l'installation de dispositifs."; +$tabCommentaires[19000][2][1] = ", et cette activité s'exerce plus particulièrement dans le domaine de la réparation."; +$tabCommentaires[20000][2][1] = "D'autant que l'établissement assure la conception et la commercialisation de produits qu'il fait fabriquer par des sous-traitants."; +$tabCommentaires[21010][2][1] = "Les {NBETEXPL} établissements sont situés dans la même région {REGIMP}."; +$tabCommentaires[21020][2][0] = "L'entreprise s'étend sur plusieurs régions, plus de 80% des effectifs se situent en région {REGIMP}."; +$tabCommentaires[21030][2][0] = "L'entreprise dispose de plusieurs implantations, la région {REGIMP} regroupe plus de la moitié des effectifs."; +$tabCommentaires[21040][2][0] = "Les effectifs de l'entreprise se répartissent sur plusieurs régions, mais aucune des régions n'en regroupe plus de la moitié."; +$tabCommentaires[21050][2][0] = "L'entreprise s'étend sur plusieurs régions, mais principalement sur la région {REGIMP}."; +$tabCommentaires[21060][2][0] = "L'entreprise s'étend sur plusieurs régions, la région {REGIMP} regroupe plus de la moitié des établissements."; +$tabCommentaires[21070][2][0] = "L'entreprise s'étend sur plusieurs régions, aucune n'est majoritaire en effectifs."; +$tabCommentaires[23010][2][0] = "Par sa situation en Zone Zone Franche Urbaines (ZFU), elle réduit sa fiscalité."; +$tabCommentaires[23020][2][0] = "Par sa situation en Zone de Redynamisation Urbaine (ZRU), elle réduit sa fiscalité."; +$tabCommentaires[23030][2][0] = "Par sa situation en Zone Urbaine Sensible (ZUS), elle bénéficie des dispositions afférentes à son implantation."; +$tabCommentaires[23050][2][0] = "Par sa situation dans un des quartiers prioritaires objets de Contrats Urbains de Cohésion Sociale (CUCS), elle bénéficie de dispositions favorables accordées à la région."; +$tabCommentaires[23100][2][0] = "L'entreprise est située dans un des territoires bénéficiant des Aides à Finalité Régionale(AFR), permettant de subventionner l'investissement."; +$tabCommentaires[23200][2][0] = "Par sa situation en Zone de Revitalisation Rurale (ZRR), elle peut bénéficier d'avantages fiscaux conséquents."; +$tabCommentaires[23900][2][0] = "Par sa situation en zone prioritaire (voir fiche identité), elle bénéficie des dispositions afférentes à son implantation."; +$tabCommentaires[24021][2][0] = "Le siège est situé à une adresse regroupant un nombre important d'entreprises, et qui semble être une adresse de domiciliation."; +$tabCommentaires[24022][2][0] = "Le siège est localisé à une adresse de domiciliation. Le centre de décision doit se trouver dans un autre établissement."; +$tabCommentaires[24028][2][0] = ", ({DOM_NB} entreprises sont recensées à cette adresse)."; +$tabCommentaires[25000][2][10] = "L'entreprise est locataire de son fonds de commerce."; +$tabCommentaires[25001][2][10] = "(selon l'INSEE), alors qu'une valorisation du fonds figure au bilan à hauteur de {R[312]}."; +$tabCommentaires[25010][2][10] = "L'entreprise est propriétaire de son fonds de commerce évalué à {R[312]}."; +$tabCommentaires[26000][2][10] = ", son activité étant essentiellement dévolue à la location de fonds."; +$tabCommentaires[27000][2][1] = "Elle n'exerce pas à proprement parler une activité de production mais y participe."; +$tabCommentaires[28000][2][1] = "Elle n'exerce pas à proprement parler une activité de production au sein de son groupe."; +$tabCommentaires[29000][2][10] = ", l'établissement exerce une activité de prestation de personnel."; +$tabCommentaires[31010][2][0] = ", tous les établissements ont la même activité principale."; +$tabCommentaires[31020][2][0] = "Les activités principales des établissements se répartissent dans plusieurs divisions de la NAF. L'une de ces activités regroupe plus de 80 % des effectifs."; +$tabCommentaires[31030][2][0] = "Les activités principales des établissements se répartissent dans plusieurs classes de la Nomenclature des Activités (NAF). Ses effectifs restent majoritairement affectés à l'activité principale."; +$tabCommentaires[31040][2][0] = "Les activités principales des établissements se répartissent dans plusieurs divisions de la Nomenclature des Activités (NAF). Ses effectifs ne sont pas affectés à une activité principale en particulier."; +$tabCommentaires[31050][2][0] = "Les activités principales des établissements se répartissent dans plusieurs divisions de la Nomenclature des Activités (NAF). L'une de ces activités regroupe plus de 80% des établissements."; +$tabCommentaires[31060][2][0] = "Les activités principales des établissements se répartissent dans plusieurs divisions de la NAF. Ses établissements restent majoritairement affectés à l'activité principale."; +$tabCommentaires[31070][2][0] = "Les activités principales des établissements se répartissent dans plusieurs divisions de la NAF. Aucune des activités ne regroupant la majorité des établissements."; +$tabCommentaires[34800][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège n'a pas changé d'adresse depuis sa création."; +$tabCommentaires[34801][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège a déjà changé d'adresse depuis sa création mais il est revenu à son adresse d'origine."; +$tabCommentaires[34802][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège, n'a pas changé d'adresse depuis sa création. Les opérations de fusions intervenues peuvent masquer d'éventuels changements d'adresse des sociétés absorbées."; +$tabCommentaires[34810][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège a déjà changé d'adresse depuis sa création."; +$tabCommentaires[34819][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}."; +$tabCommentaires[34820][2][10] = "Elle est aussi répertoriée au Registre des Intermédiaires en Assurance (ORIAS) avec le N° {ORIASID}, comme {ORIASCAT}."; +$tabCommentaires[34830][2][10] = "Elle est aussi répertoriée au Registre des Intermédiaires en Assurance (ORIAS) avec le N° {ORIASID}."; +$tabCommentaires[34850][2][10] = ". Elle porte le N° de TVA Intracommunautaire: {TVAINTRA}."; +$tabCommentaires[34900][2][10] = "La structure juridique est répertoriée comme \"{FJUR}\", code \"{FJUR(4)}\" son capital est, à ce jour de : {CAPITAL}."; +$tabCommentaires[34901][2][10] = ", ({CAPITAL_TYPE})."; +$tabCommentaires[34902][2][10] = ", réparti en {CAPITAL_NBACTION} actions de {CAPITAL_MTACTION}."; +$tabCommentaires[34910][2][10] = "La structure juridique est répertoriée comme \"{FJUR}\", code \"{FJUR(4)}\"."; +$tabCommentaires[34920][2][10] = "En tant qu'association, elle est aussi identitiée par le N° Waldec {WALDEC}."; +$tabCommentaires[34930][2][10] = "C'est une société cotée de la place {SOCIETE_COTE_PLACE}, avec le n° ISIN {SOCIETE_COTE_ISIN}"; +$tabCommentaires[34931][2][10] = ", sur le marché {SOCIETE_COTE_MARCHE}"; +$tabCommentaires[35000][2][0] = "Elle figure au répertoire des entreprises contrôlées majoritairement par l'état."; +$tabCommentaires[35010][2][10] = "Cette exploitation agricole est bénéficiaire de la PAC."; +$tabCommentaires[35010][2][20] = "En savoir plus: En savoir plus"; +$tabCommentaires[37000][2][0] = "La création de l'entreprise s'est faite sous forme d'achat."; +$tabCommentaires[38000][2][0] = "La création de l'entreprise s'est faite sous forme d'apport."; +$tabCommentaires[39000][2][0] = "La création de l'entreprise s'est faite sous forme de reprise de l'exploitation."; +$tabCommentaires[40000][2][0] = "La création de l'entreprise s'est faite sous forme prise en location gérance."; +$tabCommentaires[41000][2][0] = "La création de l'entreprise s'est faite sous forme partage"; +$tabCommentaires[42000][2][0] = "La création de l'entreprise s'est faite sous forme reprise d'activité."; +$tabCommentaires[43000][2][0] = "La création de l'entreprise s'est faite sous forme de la poursuite de l'exploitation par le conjoint."; +$tabCommentaires[44000][2][0] = "La création de l'entreprise s'est faite sous forme transfert de propriété."; +$tabCommentaires[45000][2][0] = "Statistiquement, les {EFFECTIF} employés sont dénombrés dans le bassin d'emploi {ZEMET}."; +$tabCommentaires[45001][2][0] = " dans une {TU}"; +$tabCommentaires[45010][2][0] = "Le répertoire national fait état de {EFFECTIF} employés."; +$tabCommentaires[45020][2][0] = "Le {LIEUACT} fait partie du réseau {FRANCHISE}"; +$tabCommentaires[45022][2][0] = "Le {LIEUACT} fait partie du réseau {FRANCHISE}"; +$tabCommentaires[45030][2][0] = "Le cabinet {ENSEIGNE} fait partie du réseau {FRANCHISE}"; +$tabCommentaires[45032][2][0] = "Le cabinet fait partie du réseau {FRANCHISE}"; +$tabCommentaires[45090][2][0] = "L'établissement {ENSEIGNE} fait partie du réseau {FRANCHISE}"; +$tabCommentaires[45092][2][0] = "L'établissement fait partie du réseau {FRANCHISE}"; +$tabCommentaires[46011][2][0] = "C'est le 1er importateur Français"; +$tabCommentaires[46012][2][0] = "L'entreprise fait partie des 10 premiers importateurs Français"; +$tabCommentaires[46013][2][0] = "C'est le {IMPORTRANG}eme importateur Français"; +$tabCommentaires[46021][2][0] = "C'est le 1er exportateur Français"; +$tabCommentaires[46022][2][0] = "Elle se classe parmi les 10 premiers exportateurs Français"; +$tabCommentaires[46023][2][0] = "C'est le {EXPORTRANG}eme exportateur Français"; +$tabCommentaires[47000][2][0] = "Sur la place {SOCIETE_COTE_PLACE}, \"{NOMEN}\" fait état d'une capitalisation de {SOCIETE_COTE_CAPITALISATION} "; +$tabCommentaires[47010][2][0] = ", représentée par {SOCIETE_COTE_TITRES}"; +$tabCommentaires[47020][2][0] = "La dernière cotation de {SOCIETE_COTE_COURS}"; +$tabCommentaires[47021][2][0] = ", à la séance du {SOCIETE_COTE_COURS_DATE}"; +$tabCommentaires[50010][2][0] = "La collectivité locale déclare un budget de fonctionnement positif de {R[801]} (année {COLLECANNEE}), pour {R[805]} de charges."; +$tabCommentaires[50011][2][0] = "La collectivité locale déclare un budget de fonctionnement en équilibre de {R[801]} (année {COLLECANNEE})."; +$tabCommentaires[50020][2][0] = "La collectivité locale déclare un budget de fonctionnement déficitaire de {R[801]} (année {COLLECANNEE}), pour {R[805]} de charges."; +$tabCommentaires[51000][2][0] = "La surface du magasin se situe sous les 300 m2."; +$tabCommentaires[52000][2][0] = "La surface du magasin est au delà des 300 m2 mais ne dépasse pas 400 m2."; +$tabCommentaires[53000][2][0] = "La surface du supermarché est au delà des dimensions des commerces de proximité mais reste inférieure à 2500 m2."; +$tabCommentaires[54000][2][0] = "La surface du supermarché est bien delà des dimensions ordinaires puisque sa surface dépasse les 2500 m2."; +$tabCommentaires[54500][2][0] = "
    Liste des plus gros contributeurs à la CET (année {COLLECANNEE})
    "; +$tabCommentaires[54501][2][0] = "
    Ci-dessous, le plus gros contributeur à la CET (année {COLLECANNEE})
    "; +$tabCommentaires[54502][2][0] = "
    Liste des 5 plus gros contributeurs à la CET (année {COLLECANNEE})
    "; +$tabCommentaires[54508][2][1] = ""; +$tabCommentaires[54509][2][2] = ""; +$tabCommentaires[54510][2][10] = ""; +$tabCommentaires[54511][2][10] = ""; +$tabCommentaires[54512][2][10] = ""; +$tabCommentaires[54513][2][10] = ""; +$tabCommentaires[54514][2][10] = ""; +$tabCommentaires[55101][2][0] = "Les actifs immobiliers, dans leur totalité, se composent d'un seul bâtiment."; +$tabCommentaires[55102][2][0] = "Les actifs immobiliers, dans leur totalité, se composent de {CADBAT_NB_TOT} bâtiments."; +$tabCommentaires[55103][2][0] = ", sur {CADBAT_SURF_TOT}."; +$tabCommentaires[55111][2][0] = "Les actifs immobiliers, dans leur totalité, se composent d'un seul terrain."; +$tabCommentaires[55112][2][0] = "Les actifs immobiliers , dans leur totalité, se composent de {CADTER_NB_TOT} terrains."; +$tabCommentaires[55121][2][0] = ", et d'un bâtiment."; +$tabCommentaires[55122][2][0] = ", et de {CADBAT_NB_TOT} bâtiments."; +$tabCommentaires[55131][2][0] = ", et d'un terrain."; +$tabCommentaires[55132][2][0] = ", et de {CADTER_NB_TOT} terrains."; +$tabCommentaires[55133][2][0] = ", d'une superficie totale de {CADTER_SURF_TOT}."; +$tabCommentaires[55210][2][0] = "A l'adresse on recense : +"; +$tabCommentaires[55211][2][0] = "A l'adresse on recense : +"; +$tabCommentaires[55212][2][0] = ", {CADBAT_SURF_CUM} de bâtiments:"; +$tabCommentaires[55213][2][0] = ", sur un foncier total de {CADTER_SURF_CUM}):"; +$tabCommentaires[55220][2][0] = "A cette adresse les actifs immobiliers sont constitués de : "; +$tabCommentaires[55221][2][0] = "A cette adresse les actifs immobiliers sont constitués de : "; +$tabCommentaires[55222][2][0] = "(ci-dessous liste des 9 principaux éléments d'actif) "; +$tabCommentaires[55223][2][0] = "(ci-dessous liste des 9 principaux éléments d'actif) "; +$tabCommentaires[55231][2][0] = "A cette adresse les actifs immobiliers sont constitués d'un seul bâtiment. "; +$tabCommentaires[55232][2][0] = "A cette adresse les actifs immobiliers sont constitués de {CADBAT_NB_PROP} bâtiments."; +$tabCommentaires[55241][2][0] = "A cette adresse les actifs immobiliers sont constitués d'un seul terrain. "; +$tabCommentaires[55242][2][0] = "A cette adresse les actifs immobiliers sont constitués de {CADTER_NB_PROP} terrains."; +$tabCommentaires[55251][2][0] = ", et d'un terrain."; +$tabCommentaires[55252][2][0] = ", et de {CADTER_NB_PROP} terrains."; +$tabCommentaires[55253][2][0] = " (Un autre bâtiment est détenu par {CADBAT_PROPNOM[0]})."; +$tabCommentaires[55254][2][0] = " (d'autres structures détiennent {CADBAT_NB_NONPROP} bâtiments)."; +$tabCommentaires[55255][2][0] = " (Un autre terrain est détenu par {CADBAT_PROPNOM[0]})."; +$tabCommentaires[55256][2][0] = " (d'autres structures détiennent {CADTER_NB_NONPROP} terrains)."; +$tabCommentaires[55257][2][0] = " (d'autres structures détiennent {CADBAT_NB_NONPROP} bâtiments et {CADTER_NB_NONPROP} terrains)."; +$tabCommentaires[55300][2][0] = "
  • Bâti de type {CADBAT_NAT[0]}, cadastré {CADBAT_LOC[0]} pour une surface de {CADBAT_SURF[0]} au titre de {CADBAT_TIT[0]}."; +$tabCommentaires[55301][2][0] = " Propriétaire {CADBAT_PROPNOM[0]}."; +$tabCommentaires[55302][2][0] = " (SIREN {CADBAT_PROPSIREN[0]})."; +$tabCommentaires[55310][2][0] = "
  • Bâti de type {CADBAT_NAT[1]}, cadastré {CADBAT_LOC[1]} pour une surface de {CADBAT_SURF[1]} au titre de {CADBAT_TIT[1]}."; +$tabCommentaires[55311][2][0] = " Propriétaire {CADBAT_PROPNOM[1]}."; +$tabCommentaires[55312][2][0] = " (SIREN {CADBAT_PROPSIREN[1]})."; +$tabCommentaires[55320][2][0] = "
  • Bâti de type {CADBAT_NAT[2]}, cadastré {CADBAT_LOC[2]} pour une surface de {CADBAT_SURF[2]} au titre de {CADBAT_TIT[2]}."; +$tabCommentaires[55321][2][0] = " Propriétaire {CADBAT_PROPNOM[2]}."; +$tabCommentaires[55322][2][0] = " (SIREN {CADBAT_PROPSIREN[2]})."; +$tabCommentaires[55330][2][0] = "
  • Bâti de type {CADBAT_NAT[3]}, cadastré {CADBAT_LOC[3]} pour une surface de {CADBAT_SURF[3]} au titre de {CADBAT_TIT[3]}."; +$tabCommentaires[55331][2][0] = " Propriétaire {CADBAT_PROPNOM[3]}."; +$tabCommentaires[55332][2][0] = " (SIREN {CADBAT_PROPSIREN[3]})."; +$tabCommentaires[55340][2][0] = "
  • Bâti de type {CADBAT_NAT[4]}, cadastré {CADBAT_LOC[4]} pour une surface de {CADBAT_SURF[4]} au titre de {CADBAT_TIT[4]}."; +$tabCommentaires[55341][2][0] = " Propriétaire {CADBAT_PROPNOM[4]}."; +$tabCommentaires[55342][2][0] = " (SIREN {CADBAT_PROPSIREN[4]})."; +$tabCommentaires[55350][2][0] = "
  • Bâti de type {CADBAT_NAT[5]}, cadastré {CADBAT_LOC[5]} pour une surface de {CADBAT_SURF[5]} au titre de {CADBAT_TIT[5]}."; +$tabCommentaires[55351][2][0] = " Propriétaire {CADBAT_PROPNOM[5]}."; +$tabCommentaires[55352][2][0] = " (SIREN {CADBAT_PROPSIREN[5]})."; +$tabCommentaires[55360][2][0] = "
  • Bâti de type {CADBAT_NAT[6]}, cadastré {CADBAT_LOC[6]} pour une surface de {CADBAT_SURF[6]} au titre de {CADBAT_TIT[6]}."; +$tabCommentaires[55361][2][0] = " Propriétaire {CADBAT_PROPNOM[6]}."; +$tabCommentaires[55362][2][0] = " (SIREN {CADBAT_PROPSIREN[6]})."; +$tabCommentaires[55370][2][0] = "
  • Bâti de type {CADBAT_NAT[7]}, cadastré {CADBAT_LOC[7]} pour une surface de {CADBAT_SURF[7]} au titre de {CADBAT_TIT[7]}."; +$tabCommentaires[55371][2][0] = " Propriétaire {CADBAT_PROPNOM[7]}."; +$tabCommentaires[55372][2][0] = " (SIREN {CADBAT_PROPSIREN[7]})."; +$tabCommentaires[55380][2][0] = "
  • Bâti de type {CADBAT_NAT[8]}, cadastré {CADBAT_LOC[8]} pour une surface de {CADBAT_SURF[8]} au titre de {CADBAT_TIT[8]}."; +$tabCommentaires[55381][2][0] = " Propriétaire {CADBAT_PROPNOM[8]}."; +$tabCommentaires[55382][2][0] = " (SIREN {CADBAT_PROPSIREN[8]})."; +$tabCommentaires[55390][2][0] = "
  • Bâti de type {CADBAT_NAT[9]}, cadastré {CADBAT_LOC[9]} pour une surface de {CADBAT_SURF[9]} au titre de {CADBAT_TIT[9]}."; +$tabCommentaires[55391][2][0] = " Propriétaire {CADBAT_PROPNOM[9]}."; +$tabCommentaires[55392][2][0] = " (SIREN {CADBAT_PROPSIREN[9]})."; +$tabCommentaires[55400][2][0] = "
  • Foncier de type {CADTER_NAT[0]}, cadastré {CADTER_LOC[0]} pour une surface de {CADTER_SURF[0]} au titre de {CADTER_TIT[0]}."; +$tabCommentaires[55401][2][0] = " Propriétaire {CADTER_PROPNOM[0]}."; +$tabCommentaires[55402][2][0] = " (SIREN {CADTER_PROPSIREN[0]})."; +$tabCommentaires[55410][2][0] = "
  • Foncier de type {CADTER_NAT[1]}, cadastré {CADTER_LOC[1]} pour une surface de {CADTER_SURF[1]} au titre de {CADTER_TIT[1]}."; +$tabCommentaires[55411][2][0] = " Propriétaire {CADTER_PROPNOM[1]}."; +$tabCommentaires[55412][2][0] = " (SIREN {CADTER_PROPSIREN[1]})."; +$tabCommentaires[55420][2][0] = "
  • Foncier de type {CADTER_NAT[2]}, cadastré {CADTER_LOC[2]} pour une surface de {CADTER_SURF[2]} au titre de {CADTER_TIT[2]}."; +$tabCommentaires[55421][2][0] = " Propriétaire {CADTER_PROPNOM[2]}."; +$tabCommentaires[55422][2][0] = " (SIREN {CADTER_PROPSIREN[2]})."; +$tabCommentaires[55430][2][0] = "
  • Foncier de type {CADTER_NAT[3]}, cadastré {CADTER_LOC[3]} pour une surface de {CADTER_SURF[3]} au titre de {CADTER_TIT[3]}."; +$tabCommentaires[55431][2][0] = " Propriétaire {CADTER_PROPNOM[3]}."; +$tabCommentaires[55432][2][0] = " (SIREN {CADTER_PROPSIREN[3]})."; +$tabCommentaires[55440][2][0] = "
  • Foncier de type {CADTER_NAT[4]}, cadastré {CADTER_LOC[4]} pour une surface de {CADTER_SURF[4]} au titre de {CADTER_TIT[4]}."; +$tabCommentaires[55441][2][0] = " Propriétaire {CADTER_PROPNOM[4]}."; +$tabCommentaires[55442][2][0] = " (SIREN {CADTER_PROPSIREN[4]})."; +$tabCommentaires[55450][2][0] = "
  • Foncier de type {CADTER_NAT[5]}, cadastré {CADTER_LOC[5]} pour une surface de {CADTER_SURF[5]} au titre de {CADTER_TIT[5]}."; +$tabCommentaires[55451][2][0] = " Propriétaire {CADTER_PROPNOM[5]}."; +$tabCommentaires[55452][2][0] = " (SIREN {CADTER_PROPSIREN[5]})."; +$tabCommentaires[55460][2][0] = "
  • Foncier de type {CADTER_NAT[6]}, cadastré {CADTER_LOC[6]} pour une surface de {CADTER_SURF[6]} au titre de {CADTER_TIT[6]}."; +$tabCommentaires[55461][2][0] = " Propriétaire {CADTER_PROPNOM[6]}."; +$tabCommentaires[55462][2][0] = " (SIREN {CADTER_PROPSIREN[6]})."; +$tabCommentaires[55470][2][0] = "
  • Foncier de type {CADTER_NAT[7]}, cadastré {CADTER_LOC[7]} pour une surface de {CADTER_SURF[7]} au titre de {CADTER_TIT[7]}."; +$tabCommentaires[55471][2][0] = " Propriétaire {CADTER_PROPNOM[7]}."; +$tabCommentaires[55472][2][0] = " (SIREN {CADTER_PROPSIREN[7]})."; +$tabCommentaires[55480][2][0] = "
  • Foncier de type {CADTER_NAT[8]}, cadastré {CADTER_LOC[8]} pour une surface de {CADTER_SURF[8]} au titre de {CADTER_TIT[8]}."; +$tabCommentaires[55481][2][0] = " Propriétaire {CADTER_PROPNOM[8]}."; +$tabCommentaires[55482][2][0] = " (SIREN {CADTER_PROPSIREN[8]})."; +$tabCommentaires[55490][2][0] = "
  • Foncier de type {CADTER_NAT[9]}, cadastré {CADTER_LOC[9]} pour une surface de {CADTER_SURF[9]} au titre de {CADTER_TIT[9]}."; +$tabCommentaires[55491][2][0] = " Propriétaire {CADTER_PROPNOM[9]}."; +$tabCommentaires[55492][2][0] = " (SIREN {CADTER_PROPSIREN[9]})."; +$tabCommentaires[65001][2][0] = "Le dernier bilan fait état d'un fort déséquilibre du CA par rapport au total bilan, témoignant d'un profil qui n'aurait pas d'activité commerciale réelle, tel que des structures financières ou suite à fusions."; +$tabCommentaires[90010][2][1] = "La société {NOMEN} a été établie récemment, elle s'est immatriculée en {DCREN_AA} au {TRIBUNAL_CREATION}."; +$tabCommentaires[90011][2][1] = "La société {NOMEN} a été établie récemment en {DCREN_AA}."; +$tabCommentaires[91000][2][0] = "La forme juridique de la personne morale n'implique pas une publication systématique de ses comptes pour son 1er exercice."; +$tabCommentaires[91100][2][0] = "La forme juridique de la personne morale lui impose de publier ses comptes."; +$tabCommentaires[92000][2][0] = "L'entreprise dispose d'ores et déjà d'un exercice comptable sur {nm} mois, malgré sa création récente."; +$tabCommentaires[92100][2][0] = "L'historique des annonces légales indique qu'elle publie régulièrement ses comptes."; +$tabCommentaires[92200][2][0] = "L'historique des annonces légales indique qu'elle ne publie pas régulièrement ses comptes, il manque l'année {ANNONCEBODCMANQ_AA}."; +$tabCommentaires[92210][2][0] = "L'historique des annonces légales indique qu'elle ne publie pas régulièrement ses comptes, il manque l'année {ANNONCEBODCMANQ_AA}."; +$tabCommentaires[92220][2][0] = "L'historique des annonces légales indique qu'elle ne publie pas régulièrement ses comptes."; +$tabCommentaires[92230][2][0] = ", il manque {NBBILANMANQUE} publications."; +$tabCommentaires[92240][2][0] = ", mais tous les exercices on fait l'objet de publication mais leurs durées ne sont pas homogènes."; +$tabCommentaires[92300][2][0] = "Les comptes de {BILANDERANNEE} ne sont pas encore publiés."; +$tabCommentaires[93000][2][0] = "L'absence de bilan peut s'expliquer par la jeunesse de l'entreprise créée en {DCREN_AA} auprès du {TRIBUNAL_CREATION}."; +$tabCommentaires[93001][2][0] = "L'absence de bilan peut s'expliquer par la jeunesse de l'entreprise qui s'est immatriculée récemment auprès du {TRIBUNAL_CREATION}."; +$tabCommentaires[93002][2][0] = "L'absence de bilan peut s'expliquer par la jeunesse de l'entreprise."; +$tabCommentaires[93010][2][0] = "L'entreprise semble avoir fait le choix de ne pas rendre public ses comptes pour préserver des données qu'elle estime statégiques."; +$tabCommentaires[93050][2][0] = ". Le choix de l'absence de publication, peut s'expliquer par sa position parmi les principaux exportateurs car les partenaires étrangers n'ont pas les mêmes obligations."; +$tabCommentaires[93051][2][0] = ". Le choix de l'absence de publication, peut s'expliquer par la forte proportion d'affaires à l'export car les partenaires étrangers n'ont pas les mêmes obligations."; +$tabCommentaires[93052][2][0] = ". Le choix de l'absence de publication, peut s'expliquer par sa position parmi les principaux exportateurs car les partenaires étrangers n'ont pas les mêmes obligations."; +$tabCommentaires[94000][2][0] = "A noter que la date d'immatriculation au {DIMMAT} est antérieure à la date de début d'activité au {DCREN}."; +$tabCommentaires[94010][2][0] = "La date d'immatriculation au {DIMMAT} est différente de la date de début d'activité {DCREN}."; +$tabCommentaires[95000][2][0] = "Malgré sa création récente, l'historique comptable est suffisant."; +$tabCommentaires[96000][2][0] = "Une publication comptable a été enregistrée au{ANNONCEBODCDATE}, mais le bilan n'est pas encore disponible actuellement."; +$tabCommentaires[97001][2][0] = "Les projections actuelles sur le chiffre d'affaire de cette entreprise approchent les {CABIOUES} pour la première année."; +$tabCommentaires[98000][2][0] = "L'entreprise est une PME du bassin régional de {RPEN}."; +$tabCommentaires[98100][2][0] = "\"{NOMEN}\" est une des plus petites communes de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[98200][2][0] = "\"{NOMEN}\" est un des départements de la région {RPEN} et compte {COLLECHABITANT_NB} habitants."; +$tabCommentaires[98201][2][0] = "\"{NOMEN}\" est le plus petit département de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[98300][2][0] = "\"{NOMEN}\" est une des régions du territoire national et avec {COLLECHABITANT_NB} habitants, elle se situe dans la partie basse de population moyenne."; +$tabCommentaires[98301][2][0] = "\"{NOMEN}\" est, en terme de population, la plus petite région du territoire national avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[98400][2][0] = "\"{NOMEN}\" est, en termes de population, une des plus petites collectivités locales de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99000][2][0] = "il s'agit d'une importante affaire au niveau départemental."; +$tabCommentaires[99099][2][0] = "il s'agit d'une importante affaire internationale dont le siège est situé hors de France ({DEPSIE_DE})."; +$tabCommentaires[99100][2][0] = "\"{NOMEN}\" est une des plus grandes communes de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99101][2][0] = "\"{NOMEN}\" est la plus grande commune de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99102][2][0] = "\"{NOMEN}\" est une des {COLLECREG_NB} communes de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99110][2][0] = "\"{NOMEN}\" est une des 10 plus grandes communes de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99201][2][0] = "\"{NOMEN}\" est le plus grand département de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99300][2][0] = "\"{NOMEN}\" est une des régions du territoire national et avec {COLLECHABITANT_NB} habitants, elle se situe dans la partie haute de population moyenne."; +$tabCommentaires[99301][2][0] = "\"{NOMEN}\" est, en termes de population, la plus grande région du territoire national avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99400][2][0] = "\"{NOMEN}\" est, en termes de population, une des plus grandes collectivités locales de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99401][2][0] = "\"{NOMEN}\" est, en termes de population, la plus grande collectivité locale de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99402][2][0] = "\"{NOMEN}\" est une des {COLLECREG_NB} collectivités locales de la région {RPEN} et compte {COLLECHABITANT_NB} habitants."; +$tabCommentaires[99410][2][0] = "\"{NOMEN}\" est, en termes de population, une des 10 plus grandes collectivités locales de la région {RPEN} avec {COLLECHABITANT_NB} habitants."; +$tabCommentaires[100000][2][0] = "Au moins une filiale fait l'objet d'une procédure collective. Cet événement pourra avoir un impact dans l'avenir, nous émettons donc des réserves sur la durée de validité de notre appréciation."; +$tabCommentaires[101000][2][0] = "
    Ci-dessous la liste des principales associations \"para municipales\" dont l'objet social semble destiné à exercer une activité connexe à celle de la collectivité alors qu'elles manient des fonds qui échapent aux règles de la comptabilité publique.
    "; +$tabCommentaires[101001][2][0] = "
    Ci-dessous les coordonnées de l'association \"para municipale\" dont l'objet social semble destiné à exercer une activité connexe à celle de la collectivité alors qu'elle manie des fonds qui échapent aux règles de la comptabilité publique.
    "; +$tabCommentaires[101002][2][0] = "
    Ci-dessous la liste des 5 principales associations \"para municipales\" dont l'objet social semble destiné à exercer une activité connexe à celle de la collectivité alors qu'elles manient des fonds qui échapent aux règles de la comptabilité publique.
    "; +$tabCommentaires[101008][2][8] = "
  • SIREN C.A. Effectif local CET
    {COLLEC_CET_NOM[0]} {COLLEC_CET_SIREN[0]} {COLLEC_CET_CA[0]}{COLLEC_CET_EFF[0]}{COLLEC_CET_CET[0]}
    {COLLEC_CET_NOM[1]} {COLLEC_CET_SIREN[1]} {COLLEC_CET_CA[1]}{COLLEC_CET_EFF[1]}{COLLEC_CET_CET[1]}
    {COLLEC_CET_NOM[2]} {COLLEC_CET_SIREN[2]} {COLLEC_CET_CA[2]}{COLLEC_CET_EFF[2]}{COLLEC_CET_CET[2]}
    {COLLEC_CET_NOM[3]} {COLLEC_CET_SIREN[3]} {COLLEC_CET_CA[3]}{COLLEC_CET_EFF[3]}{COLLEC_CET_CET[3]}
    {COLLEC_CET_NOM[4]} {COLLEC_CET_SIREN[4]} {COLLEC_CET_CA[4]}{COLLEC_CET_EFF[4]}{COLLEC_CET_CET[4]}
    "; +$tabCommentaires[101009][2][9] = ""; +$tabCommentaires[101010][2][10] = ""; +$tabCommentaires[101011][2][10] = ""; +$tabCommentaires[101012][2][10] = ""; +$tabCommentaires[101013][2][10] = ""; +$tabCommentaires[101014][2][10] = ""; +$tabCommentaires[150000][2][0] = "L'affaire {NOMEN} s'est enregistrée il y a peu de temps en {DCREN_AA}."; +$tabCommentaires[150001][2][10] = ", au {TRIBUNAL_CREATION}."; +$tabCommentaires[170000][2][0] = "Cette jeune société s'est établie en {DCREN_AA}."; +$tabCommentaires[180000][2][0] = "L'affaire {NOMEN} s'est immatriculée, il y a plusieurs années, en {DCREN_AA}."; +$tabCommentaires[180010][2][0] = "L'affaire {NOMEN} s'est immatriculée, il y a bon nombre d'années, en {DCREN_AA}."; +$tabCommentaires[180019][2][10] = ", au {TRIBUNAL_CREATION}."; +$tabCommentaires[187000][2][0] = "\"{NOMEN}\" s'est établie en {DCREN_AA} et s'est forgé une bonne réputation."; +$tabCommentaires[188000][2][0] = "\"{NOMEN}\" s'est établie en {DCREN_AA}."; +$tabCommentaires[189000][2][0] = "\"{NOMEN}\" s'est établie en {DCREN_AA} et s'est forgé une solide réputation."; +$tabCommentaires[190000][2][0] = "Depuis {DCREN_AA}, année de sa création, {NOMEN} a atteint une dimension nationale. L'historique nous permet d'avoir une bonne visibilité."; +$tabCommentaires[190009][2][0] = "\"{NOMEN}\" a été créée en {DCREN_AA}."; +$tabCommentaires[191000][2][0] = "La forme juridique de la société n'implique pas d'obligation de publication de ses comptes."; +$tabCommentaires[192000][2][0] = ", nous détenons des informations financières issues du bilan cloturé au {BILANDATE}."; +$tabCommentaires[193000][2][0] = ", en revanche, nous disposons en historique des informations financières issues du bilan cloturé au {BILANDATE}."; +$tabCommentaires[194000][2][0] = "Les derniers comptes viennent d'être déposés au greffes mais pas encore enregistrés dans les bases de données."; +$tabCommentaires[195000][2][0] = "La forme juridique de la société impose une publication des comptes, cependant aucune annonce de dépôt des comptes n'a été publiée."; +$tabCommentaires[196000][2][0] = "L'obligation de publication est valable en cas de personnes morales en lieu et place d'associés."; +$tabCommentaires[197000][2][0] = "L'analyse de la solvabilité intègre des informations récentes qu'il nous est impossible de diffuser."; +$tabCommentaires[197100][2][0] = "L'analyse des comptes de la collectivité intègre des éléments financiers récents mais qu'il ne nous est pas possible de communiquer à ce jour."; +$tabCommentaires[198001][2][0] = "Les estimations de chiffre d'Affaires concernant {NOMEN} sont de l'ordre de {CABIOUES} annuel."; +$tabCommentaires[199000][2][0] = "Cette entreprise est une TPE d'influence locale."; +$tabCommentaires[200000][2][0] = "Cette entreprise est une PME dont l'influence n'atteint pas encore tout le territoire."; +$tabCommentaires[201000][2][0] = "Cette entreprise est une PME importante au sein du bassin économique régional {RPEN}."; +$tabCommentaires[202000][2][0] = "\"{NOMEN}\" est une affaire significative au sein du bassin économique de la région {RPEN}."; +$tabCommentaires[203000][2][0] = "Cette entreprise est une PME majeure au sein de la région {RPEN}."; +$tabCommentaires[204000][2][0] = "C'est une des premières entreprises françaises."; +$tabCommentaires[205000][2][0] = "C'est une PME qui compte dans le département {DEPSIE_DE}."; +$tabCommentaires[205099][2][0] = "C'est une PME de taille signicative dont le siège situe hors de France ({DEPSIE_DE})."; +$tabCommentaires[205200][2][0] = "Les effectifs de l'établissement représentant une part importante de la population de la commune d'implantation, l'entreprise a une forte influence locale."; +$tabCommentaires[205301][2][10] = "On dénombre {GEOACT1K_NB} entreprises du même secteur d'activité à moins d'1 kilomètre."; +$tabCommentaires[205305][2][10] = "On dénombre {GEOACT5K_NB} entreprises du même secteur d'activité dans un rayon de 5 kilomètres."; +$tabCommentaires[205310][2][10] = "Dans un rayon de 10 kilomètres se trouvent {GEOACT10K_NB} entreprises ayant la même activité."; +$tabCommentaires[206000][2][0] = "L'importance des immobilisations financières suggère un rôle de holding dont ne fait pas mention le code NAF."; +$tabCommentaires[207000][2][0] = "La lecture de l'importance des immobilisations financières nous confirme l'activité de holding mentionnée par son code NAF."; +$tabCommentaires[208000][2][0] = "La dépréciation des participations nous intrigue. Notre évaluation ne prend pas en compte ces actifs ce qui pourrait altérer le jugement général."; +$tabCommentaires[208001][2][0] = "La dépréciation des participations est d'un niveau attirant toute notre attention. Le manque de visibilté quant à l'évaluation de ces actifs relativise les éléments favorables."; +$tabCommentaires[208002][2][0] = "Bien que l'entreprise ne soit pas une Holding ou qu'on ne puisse pas la considérer comme telle au regard des participations, la hauteur des immobilisations financières représentant {R[533]} de l'actif, relativise la perspective de la notation."; +$tabCommentaires[208003][2][0] = "
  • La hauteur des immobilisations financières représentant {R[533]} de l'actif, expose l'entreprise aux fluctuations des marchés."; +$tabCommentaires[209000][2][30] = "Compte tenu du modeste niveau des immobilisations financières, il y un doute sur le fait que l'activité soit seulement de holding."; +$tabCommentaires[210000][2][30] = "L'analyse de la solvabilité n'intègre pas les informations concernant les participations qui peuvent remettre en cause l'évaluation."; +$tabCommentaires[212000][2][30] = "L'évaluation ne se base pas sur l'analyse des participations pouvant accentuer dans certains cas une situation difficile."; +$tabCommentaires[213000][2][0] = "La lecture comptable du bilan {BILANANNEE} laisse apparaître une évolution significative de la taille de l'entreprise."; +$tabCommentaires[213010][2][0] = "La lecture comptable du bilan {BILANANNEE} laisse apparaître une évolution significative de la taille de l'entreprise."; +$tabCommentaires[213100][2][0] = "On observe une forte progression de la population entre {COLLECANNEEp} et {COLLECANNEE}."; +$tabCommentaires[213110][2][0] = "On observe une baisse significative de la population entre {COLLECANNEEp} et {COLLECANNEE}."; +$tabCommentaires[214000][2][0] = "Un changement du même ordre est aussi mis en évidence pour l'exercice clos le {BILANDATEp}."; +$tabCommentaires[214001][2][0] = "Un changement du même ordre est aussi mis en évidence pour l'exercice clos le {BILANDATEp}."; +$tabCommentaires[214010][2][0] = "Le bilan au {BILANDATEp} fait apparaître un changement important de la taille de l'entreprise."; +$tabCommentaires[214011][2][0] = "Le bilan au {BILANDATEp} fait apparaître un changement important de la taille de l'entreprise."; +$tabCommentaires[215100][2][10] = "
  • La situation est très bonne, l'entreprise est solvable. Le risque de défaillance est quasi nul."; +$tabCommentaires[215200][2][10] = "
  • La situation de d'entreprise est satisfaisante, l'entreprise est solvable. Le risque de défaillance est faible."; +$tabCommentaires[215201][2][30] = ", bien que le dernier exercice soit déficitaire."; +$tabCommentaires[215250][2][10] = "
  • La situation de d'entreprise est satisfaisante, l'entreprise est solvable. Le risque de défaillance est assez faible."; +$tabCommentaires[215251][2][30] = ", et ce, même si le dernier exercice est déficitaire."; +$tabCommentaires[215300][2][10] = "
  • Le bilan est equilibré, l'entreprise est solvable. La situation est précaire."; +$tabCommentaires[215400][2][10] = "
  • La situation de l'entreprise est mauvaise, la solvabilité pose problème. Il existe un risque de défaillance."; +$tabCommentaires[215401][2][30] = ", et ce, même si le dernier exercice est bénéficiaire."; +$tabCommentaires[215450][2][10] = "
  • La situation de l'entreprise est délicate, la solvabilité pose problème. Il existe un risque de défaillance."; +$tabCommentaires[215500][2][10] = "
  • La situation de l'entreprise est mauvaise, la solvabilité pose problème. Le risque de défaillance est réel."; +$tabCommentaires[218000][2][10] = "Malgré l'absence d'information financière, l'environnement économique direct est favorable."; +$tabCommentaires[219000][2][10] = "L'absence de bilan, de par la création récente, et un environnement économique incertain doit inciter à une certaine prudence."; +$tabCommentaires[219001][2][10] = "
  • Compte tenu de l'absence d'éléments financiers, le manque de visibilité peut influer sur la pertinence de l'analyse."; +$tabCommentaires[219002][2][10] = ", mais des éléments statistiques défavorables, nous conduisent à un diagnostic plutôt réservé."; +$tabCommentaires[220000][2][20] = "la situation financière délicate prend en compte l'importance de la position économique de cette affaire."; +$tabCommentaires[221000][2][30] = "La lecture comptable et l'analyse de solvabilité qui en découle prend particulièrement en compte la position économique dominante de cette affaire."; +$tabCommentaires[222000][2][20] = "La nationalité de l'entreprise limite notre analyse financière sur un exercice difficile, cependant au regard de sa position économique dominante nous nous devons d'être moins sévère."; +$tabCommentaires[223000][2][30] = "La nationalité de l'entreprise limite notre analyse financière, cependant nous restons optimiste au regard de sa position économique dominante."; +$tabCommentaires[224000][2][30] = "La nationalité de l'entreprise rend notre analyse plus optimiste bien que les difficultés financières soient réelles."; +$tabCommentaires[225000][2][30] = "La nationalité de l'entreprise limite la pertinence de notre analyse financière provoquant de fait une lecture davantage optimiste de la situation."; +$tabCommentaires[226000][2][30] = "Cette entreprise étrangère présente des éléments confirmant notre appréciation positive globale sur sa solvabilité."; +$tabCommentaires[228000][2][30] = "L'absence de bilan récent et les éléments en notre possession nous conduisent à une certaine circonspection dans notre analyse de solvabilité, malgré le rayonnement économique significatif de l'entreprise."; +$tabCommentaires[229000][2][30] = "la nationalité de l'entreprise implique une réserve sur sa visibilité malgré son rôle économique conséquent"; +$tabCommentaires[230000][2][30] = "Notre analyse est prudente compte tenu de la nationalité de l'entreprise."; +$tabCommentaires[231000][2][30] = "La nationalité étrangère implique une analyse réservé sur la solvabilité."; +$tabCommentaires[233000][2][30] = "L'analyse des informations financières présente un bilan positif avec une prudence compte tenu de la nationalité."; +$tabCommentaires[234000][2][30] = "Notre analyse est positive au delà que la simple analyse bilantielle qui s'avère plutôt négative"; +$tabCommentaires[235000][2][30] = "Notre analyse de la solvabilité est clairement positive, on peut considérer cette entreprise comme particulièrement saine."; +$tabCommentaires[236000][2][30] = "L'analyse financière qui demeure positive, mise en parallèle aux éléments statistiques défavorables, nous conduit à un diagnostic plutôt réservé."; +$tabCommentaires[237000][2][30] = "Notre analyse de la solvabilité met en avant une situation financière particulièrement négative."; +$tabCommentaires[238000][2][60] = "Notre analyse de la solvabilité met en avant une situation financière incertaine, à suivre de près."; +$tabCommentaires[239000][2][70] = "Malgré l'absence de bilan, notre analyse reste positive."; +$tabCommentaires[240000][2][40] = "Un certain nombre de carences nous incite à considérer l'absence de publication des comptes comme une signe particulièrement inquiétant."; +$tabCommentaires[241000][2][40] = "Le rôle économique joué par l'entreprise fait pencher favorablement notre analyse."; +$tabCommentaires[242000][2][40] = "Bien qu'il n'y ait pas de bilan, l'environnement économique nous incite à être positif sur cette affaire."; +$tabCommentaires[243000][2][40] = "Malgré un rôle économique prépondérant de cette société de droit étranger, nous restons réservés sur l'analyse."; +$tabCommentaires[243100][2][40] = "Cette affaire étrangère joue un role économique de premier plan, les éléments à notre disposition sont favorables."; +$tabCommentaires[244000][2][40] = "Bien que l'analyse financière soit particulièrement positive, des éléments statistiques défavorables viennent tempérer cette appréciation."; +$tabCommentaires[245000][2][40] = "L'analyse financière est plutôt positive, en revanche, les éléments liés à l'environnement économique direct viennent atténuer ce jugement."; +$tabCommentaires[246000][2][40] = "Nous sommes plus prudents en raison des éléments financiers anciens et un environnement statistique défavorable."; +$tabCommentaires[246010][2][40] = "Nous sommes plus prudents en raison de l'ancienneté des éléments financiers."; +$tabCommentaires[246011][2][40] = "La prudence est de rigueur en raison de l'absence d'éléments financiers."; +$tabCommentaires[246012][2][40] = "La prudence est de rigueur en raison du manque de visibilité financière sur cette association."; +$tabCommentaires[246020][2][40] = "Suite à cette analyse, nous pouvons conclure que l'entreprise est sur une bonne voie mais elle est légèrement handicapée par ses faibles disponibilités. "; +$tabCommentaires[246100][2][40] = "Dans une perspective d'alerte, nous attirons l'attention sur l'éventuelle dégradation des fonds propres dûe à des pertes engendrées dans le passé."; +$tabCommentaires[246900][2][40] = "
  • Bien que notre appréciation soit plutôt favorable, nous avons quelques réserves en raison de l'absence de bilan suffisamment récent, d'autant que les statistiques montrent des risques de défaillances supérieures à la normale."; +$tabCommentaires[246910][2][40] = "
  • Bien que notre appréciation soit plutôt favorable, nous avons quelques réserves en raison de l'absence de bilan suffisamment récent."; +$tabCommentaires[249000][2][10] = "Des éléments d'investigation suite à une enquête confirment notre jugement de prudence"; +$tabCommentaires[250000][2][10] = "Des éléments d'investigation suite à une enquête confirment notre jugement positif"; +$tabCommentaires[251000][2][10] = "Des éléments d'investigation suite à une enquête confirment notre jugement positif"; +$tabCommentaires[252000][2][10] = "Des éléments d'investigation suite à une enquête confirment notre jugement de prudence"; +$tabCommentaires[253000][2][10] = "La seule analyse mesurant la capacité de remboursement déboucherait sur une notation sévère. L'étude de la solidité structurelle et des marges nous permet de revaloriser l'estimation."; +$tabCommentaires[260000][2][10] = "Le capital de {CAPITAL} satisfait au minimum réglementaire mais il est peu élevé et cela peut nuire à la crédibilité de l'entreprise."; +$tabCommentaires[260010][2][10] = "Le capital de {CAPITAL} satisfait largement au minimum réglementaire avant la réforme des minima."; +$tabCommentaires[260011][2][10] = ", sa valeur significative participe à la crédibilité de l'entreprise."; +$tabCommentaires[260020][2][10] = "Observons que le capital social ne satisfait pas au minimum réglementaire de la forme Juridique {FJUR}, mais celle ci est codifiée différemment par l'INSEE et par les greffes, qui la définissent comme \"{FJURRNCS}\"."; +$tabCommentaires[260021][2][10] = "Observons que si pour les {FJUR} le capital social n'a plus à satisfaire à un minimum réglementaire, il inférieur à ce qui était requis avant 2009. La Forme Juridique est codifiée différemment par l'INSEE (\"{FJURINSEE}\") et par les greffes, qui la définissent comme \"{FJURRNCS}\"."; +$tabCommentaires[260030][2][10] = "Notre analyse montre une très bonne capitalisation."; +$tabCommentaires[260040][2][10] = "Notre analyse montre un net manque de capitalisation."; +$tabCommentaires[261000][2][10] = "La codification de l'activité INSEE \"{APEINSEE}\" est différente de celle qui est codifiée par les greffes,\"{APERNCS}\". "; +$tabCommentaires[261001][2][10] = "La codification de l'activité INSEE \"{APEINSEE}\" est différente de celle qui est codifiée par les greffes,\"{APERNCS}\". "; +$tabCommentaires[261010][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE}\" de type \"transport\" et une autre codification au répertoire faisant état de \"{ACTIVNAT}\". "; +$tabCommentaires[261011][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE}\" qui n'est pas de type \"transport\" et une autre codification au répertoire faisant état de l'activité dans les transports."; +$tabCommentaires[261020][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE}\" de type \"Import Export\" et une autre codification au répertoire faisant état de \"{ACTIVNAT}\". "; +$tabCommentaires[261021][2][10] = "L'activité principale s'exerce plus particulièrement dans le domaine de l'import export."; +$tabCommentaires[261030][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE}\" de type \"Commerce\" et une autre codification au répertoire faisant état de \"{ACTIVNAT}\". "; +$tabCommentaires[261031][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE}\" qui n'est pas de type \"Commerce\" et une autre codification au répertoire faisant état d'une activité commerçante."; +$tabCommentaires[261035][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE(5)},{APEINSEE}\" qui n'est pas du type \"Commerce\" et une autre codification au répertoire faisant état d'une surface de magasin ({ACTISURF}). "; +$tabCommentaires[261040][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE(5)}\" de type \"Location de Logement\" et une autre codification au répertoire faisant état de \"{ACTIVNAT}\". "; +$tabCommentaires[261041][2][10] = "On constate une différence entre la codification de l'activité INSEE: {APEINSEE(5)}, \"{APEINSEE}\" qui n'est pas de type \"Location de logement\" et une autre codification au répertoire national faisant état d'une activité de Location de meublés."; +$tabCommentaires[261050][2][10] = "On constate une différence entre la codification de l'activité INSEE \"{APEINSEE(5)},{APEINSEE} \" de type \"BTP\" et une autre codification au répertoire faisant état de \"{ACTIVNAT}\". "; +$tabCommentaires[261051][2][10] = "On constate une différence entre la codification de l'activité INSEE: {APEINSEE(5)}, \"{APEINSEE}\" qui n'est pas de type \"Bâtiment\" et une autre codification au répertoire national faisant état d'une activité de BTP."; +$tabCommentaires[262000][2][10] = "Il y a une différence entre la codification de la forme juridique \"{FJUR}\" et une autre codification au répertoire national faisant état de \"Profession libérale\". "; +$tabCommentaires[262001][2][10] = "Il y a incohérence entre la codification de la forme juridique \"{FJUR}\" qui n'est pas de type \"Profession libérale\" et une autre codification au répertoire national faisant état de ce type de forme juridique."; +$tabCommentaires[264000][2][10] = "Par son code NAF, l'entreprise exerce une activité d'intermédiaire d'assurance, elle devrait être répertoriée au registre ORIAS, ce qui n'est pas le cas."; +$tabCommentaires[264500][2][10] = "L'association ne dispose pas de son identifiant WALDEC, elle ne semble pas avoir été encore répertoriée."; +$tabCommentaires[265000][2][10] = "L'entité dispose de son N° de TVA Intracommunautaire validé."; +$tabCommentaires[265001][2][10] = "L'entité ne dispose pas de son N° de TVA Intracommunautaire validé, car elle entre dans le champs d'application de l'article 293B du CGI relatif aux micro-entreprises."; +$tabCommentaires[265002][2][10] = "Pour l'entité il n'y a pas lieu de disposer pas d'un N° de TVA Intracommunautaire validé, car elle est localisée dans un Département d'Outre Mer qui est exclu de la notion de territoire national défini dans le système Européen de la taxe sur la valeur ajoutée."; +$tabCommentaires[265010][2][10] = "L'entité ne dispose pas de son N° de TVA Intracommunautaire validé, c'est une anomalie."; +$tabCommentaires[266000][2][10] = "L'historique des publications légales fait apparaître un événement attirant notre attention sur la conformité de la dirigeance."; +$tabCommentaires[266001][2][10] = "L'historique des publications légales fait apparaître un événement attirant notre attention sur la conformité de la dirigeance."; +$tabCommentaires[267000][2][10] = "Comme nous l'avons vu au chapitre traitant de l'identité, le siège est situé à une adresse de domiciliation. Cette disposition pourrait présenter un obstacle au contact direct avec l'entreprise."; +$tabCommentaires[268000][2][10] = "Bien que nous disposions de la totalité des annonces légales BODACC, on observe aucune publication. L'entreprise est jeune mais on devrait quand même recencer l'avis de création."; +$tabCommentaires[268011][2][10] = "On observe une publication de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette jeune entreprise."; +$tabCommentaires[268012][2][10] = "On observe plusieurs publications de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette jeune entreprise."; +$tabCommentaires[268013][2][10] = "On observe une publication des comptes, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette jeune entreprise."; +$tabCommentaires[268100][2][10] = "Bien que nous disposions de la totalité des annonces légales BODACC, on observe aucune publication. L'entreprise a largement passé son premier exercice, on devrait quand même recencer des événements de modification et même l'avis de constitution."; +$tabCommentaires[268111][2][10] = "On observe une publication de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette entreprise qui a largement passé son premier exercice."; +$tabCommentaires[268112][2][10] = "On observe plusieurs publications de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette entreprise qui a largement passé son premier exercice."; +$tabCommentaires[268113][2][10] = "On observe une publication des comptes, mais bien que nous disposions de la totalité des annonces légales BODACC, on devrait recencer l'avis de création pour cette entreprise qui a largement passé son premier exercice."; +$tabCommentaires[268200][2][10] = "Bien que nous disposions de la totalité des annonces légales BODACC, on n'observe aucune publication de cette entreprise qui a plusieurs décennies, il est anormal de ne pas recencer d'événements de modification ni même d'avis de dépot des comptes."; +$tabCommentaires[268211][2][10] = "On observe une seule publication de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, et au regard de l'age de l'entreprise qui compte plusieurs décennies, on devrait recencer au moins les avis de publication des comptes."; +$tabCommentaires[268212][2][10] = "On observe plusieurs publications de changement, mais bien que nous disposions de la totalité des annonces légales BODACC, et au regard de l'age de l'entreprise qui compte plusieurs décennies, on devrait recencer au moins les avis de publication des comptes."; +$tabCommentaires[268213][2][10] = "On observe une seule publication des comptes, mais bien que nous disposions de la totalité des annonces légales BODACC, et au regard de l'age de l'entreprise qui compte plusieurs décennies, on devrait en recencer beaucoup plus."; +$tabCommentaires[268214][2][10] = "On n'observe que quelques publications des comptes, mais bien que nous disposions de la totalité des annonces légales BODACC, et au regard de l'age de l'entreprise qui compte plusieurs décennies, on devrait en recencer beaucoup plus."; +$tabCommentaires[270010][2][10] = "L'étude de la dirigeance par l'analyse dans toute la profondeur de l'historique des publications légales et des ramifications vers d'autres entités, ne révèle aucun problème."; +$tabCommentaires[270020][2][10] = "L'étude de la dirigeance par l'analyse dans toute la profondeur de l'historique des publications légales et des ramifications vers d'autres entités, attire notre attention."; +$tabCommentaires[270030][2][10] = "L'étude de la dirigeance par l'analyse dans toute la profondeur de l'historique des publications légales et des ramifications vers d'autres entités, requiers une vigilance accrue."; +$tabCommentaires[270040][2][10] = "Les dirigeants ne sont pas à la tête d'autres affaires."; +$tabCommentaires[270041][2][10] = ", en revanche, ils sont concernés par la gérance d'une SCI."; +$tabCommentaires[270042][2][10] = ", en revanche, ils sont concernés par la gérance de SCI."; +$tabCommentaires[270043][2][10] = "Les dirigeants sont à la tête d'autres affaires, en particulier de SCI."; +$tabCommentaires[270048][2][10] = ", notamment à la même adresse."; +$tabCommentaires[270101][2][10] = "L'opération de Fusion absoption intervenue le {ANNONCEFUSDATE} peut avoir eu un impact sur la gouvernance."; +$tabCommentaires[275010][2][10] = "Cette jeune entreprise a été créé recemment en {DCREN_AA} et le {TRIBUNAL_PROCOL} annonce un plan de continuation en date du {ANNONCEPLANDATE}"; +$tabCommentaires[275011][2][10] = "Cette jeune entreprise a été créé recemment en {DCREN_AA} et le Tribunal de commerce annonce un plan de continuation en date du {ANNONCEPLANDATE}"; +$tabCommentaires[276000][2][10] = "Le {TRIBUNAL_PROCOL} a accordé le plan le {ANNONCEPLANDATE}"; +$tabCommentaires[276001][2][10] = "Le tribunal a effectivement prononcé un plan publié le {ANNONCEPLANDATE}"; +$tabCommentaires[285000][2][10] = "Sans information financière récente et ce malgré une obligation de publication, l'efficacité de l'apurement du passif est difficile a évaluer"; +$tabCommentaires[290001][2][10] = "Selon nos informations et estimations, le chiffre d'affaires de l'entreprise représenterait {CABIOUES}"; +$tabCommentaires[295000][2][10] = "Sans disposer de bilan, notre estimation du chiffre d'affaires de l'entreprise représentait {CABIOUES}"; +$tabCommentaires[312000][2][10] = "L'efficacité du plan d'apurement est avéré, la situation est redevenu saine"; +$tabCommentaires[315000][2][10] = "Dans le cadre de cette procédure collective, compte tenu de l'ancienneté de cette affaire, le tribunal à accepté la mise en place du plan de continuation"; +$tabCommentaires[320000][2][10] = "La forme juridique n'impose pas une obligation de publication des comptes."; +$tabCommentaires[325000][2][10] = "Les comptes annuel sont régulièrement déposés à l'exception du dernier que le bureau des greffes n'a pas encore communiqué."; +$tabCommentaires[330000][2][10] = "Nous ne disposons d'aucun élément financier récent et la société fait l'objet d'une ouverture de procédure collective accordée par le {TRIBUNAL_PROCOL}"; +$tabCommentaires[330001][2][10] = "Nous ne disposons d'aucun élément financier récent et la société fait l'objet d'une ouverture de procédure collective "; +$tabCommentaires[335001][2][10] = "Les estimations concernant le chiffre d'affaires de la société approcheraient les {CABIOUES}"; +$tabCommentaires[340000][2][10] = "Dans le cadre de cette procédure collective, compte tenu du rayonnement économique régional de cette PME, le tribunal à accepté la mise en place d'un plan de continuation"; +$tabCommentaires[345000][2][10] = "Dans le cadre de cette procédure collective, et compte tenu du rayonnement économique national de cette PME, le tribunal à accepté la mise en place d'un plan de continuation"; +$tabCommentaires[350000][2][10] = "Dans le cadre de cette procédure collective, un plan de continuation a été accepté pour cette entreprise disposant d'un rayonnement national"; +$tabCommentaires[355000][2][50] = "Durant l'exécution du plan, une modification a eu lieu en date du {ANNONCEDATE}."; +$tabCommentaires[395000][2][10] = "Ce holding financier est en procédure collective, impactant de fait l'ensemble des filiales participations"; +$tabCommentaires[396000][2][10] = "La conciliation à fait l'objet de son homologation publiée le {ANNONCEHOMDATE} montrant ainsi que, malgré les difficultés, les termes de l'accord sont de nature à assurer la pérennité de l'activité de l'entreprise."; +$tabCommentaires[396000][2][20] = "L'entreprise n'est plus en situation de cessation des paiements et l’accord ne porte pas atteinte aux intérêts des créanciers non signataires, s'il ne concerne pas tous les créanciers."; +$tabCommentaires[396000][2][30] = "Par conséquent, nous reprenons notre étude des éléments financiers."; +$tabCommentaires[400000][2][10] = "Le caractère historique de la procédure de liquidation ne semble plus avoir d'impact sur l'activité, une nouvelle évaluation a donc eu lieu."; +$tabCommentaires[400101][2][10] = "L'historique des annonces légales fait état d'un changement dans l'administration de l'entreprise publié le {ANNONCEDIRDATE}."; +$tabCommentaires[400102][2][10] = "L'historique des annonces légales fait état de {ANNONCEDIR} changements dans l'administration de l'entreprise dont le dernier le {ANNONCEDIRDATE}."; +$tabCommentaires[400109][2][10] = "L'historique des annonces légales fait état de beaucoup de changements dans l'administration de l'entreprise dont le dernier le {ANNONCEDIRDATE}."; +$tabCommentaires[400151][2][10] = "L'historique des annonces légales fait état d'un changement de Commissaire aux comptes publié le {ANNONCECACDATE}."; +$tabCommentaires[400152][2][10] = "L'historique des annonces légales fait état de {ANNONCECAC} changements de Commissaire aux comptes, dont {ANNONCECAC3} dans les 3 dernières années, le dernier étant intervenu le {ANNONCECACDATE}."; +$tabCommentaires[400153][2][10] = "L'historique des annonces légales fait état de {ANNONCECAC} changements de Commissaire aux comptes, le dernier étant intervenu le {ANNONCECACDATE}."; +$tabCommentaires[400159][2][10] = "L'historique des annonces légales fait état de beaucoup de changements de Commissaire aux comptes dont le dernier le {ANNONCECACDATE}."; +$tabCommentaires[400170][2][0] = ", témoignant, par ailleurs, d'une taille d'entreprise peu en rapport avec la forme juridique: {FJUR}."; +$tabCommentaires[400201][2][10] = "Depuis sa création l'entreprise à connu un changement d'adresse du siège le {ANNONCEADRDATE}."; +$tabCommentaires[400202][2][10] = "Depuis sa création l'entreprise à connus plusieurs changements d'adresse du siège dont le dernier le {ANNONCEADRDATE}."; +$tabCommentaires[400209][2][10] = "L'historique des annonces légales fait état de beaucoup de changements d'adresse du siège de l'entreprise dont le dernier le {ANNONCEADRDATE}."; +$tabCommentaires[400251][2][10] = "Le siège n'est plus répertorié par le tribunal d'immatriculation d'origine. Désormais les pièces officielles sont consultables au greffe du {TRIBUNAL_ACTUEL}."; +$tabCommentaires[400301][2][10] = "Un changement de capital est intervenu le {ANNONCECAPDATE}."; +$tabCommentaires[400302][2][10] = "Plusieurs changements de capital sont intervenus dont le dernier le {ANNONCECAPDATE}."; +$tabCommentaires[400303][2][10] = "Beaucoup de changements de capital de l'entreprise sont intervenus, dont le dernier le {ANNONCECAPDATE}."; +$tabCommentaires[400304][2][10] = "Une seule augmentation de capital de l'entreprise est intervenue le {ANNONCECAPAUGDATE}."; +$tabCommentaires[400305][2][10] = "Plusieurs augmentations de capital sont intervenues dont la dernière le {ANNONCECAPAUGDATE}."; +$tabCommentaires[400306][2][10] = "Beaucoup de diminutions de capital de l'entreprise sont intervenues, dont la dernière le {ANNONCECAPDIMDATE}."; +$tabCommentaires[400307][2][10] = "Une seule diminution de capital a été publiée le {ANNONCECAPDIMDATE}."; +$tabCommentaires[400308][2][10] = "Plusieurs diminutions de capital ont été publiées dont la dernière le {ANNONCECAPDIMDATE}."; +$tabCommentaires[400309][2][10] = "Un grand nombre de diminutions de capital de l'entreprise sont intervenues, presque une par an, dont la dernière le {ANNONCECAPDIMDATE}."; +$tabCommentaires[400317][2][10] = ", précédemment il se situait à {CAPITAL_PRE}."; +$tabCommentaires[400318][2][10] = ", précédemment il s'élevait à {CAPITAL_PRE}."; +$tabCommentaires[400319][2][10] = ", alors qu'il se montait à {CAPITAL_CREA} à l'origine. "; +$tabCommentaires[400320][2][10] = "Le capital social à progressé régulièrement jusqu'à {ANNONCECAPAUG_AAF} suivi d'une régression à partir de {ANNONCECAPDIM_AAD} "; +$tabCommentaires[400330][2][10] = "Le capital social a régressé régulièrement jusqu'à {ANNONCECAPDIM_AAF} suivi d'une augmentation à partir de {ANNONCECAPAUG_AAD} "; +$tabCommentaires[400401][2][10] = "La Forme Juridique à été modifiée le {ANNONCEFJURDATE}."; +$tabCommentaires[400402][2][10] = "Plusieurs changements de forme Juridique ont été effectués dont le dernier le {ANNONCEFJURDATE}."; +$tabCommentaires[400408][2][10] = ", avant ce changement, elle était précédemment en {FJUR_PRE}."; +$tabCommentaires[400409][2][10] = "Beaucoup de changements de forme Juridique ont été effectués, dont le dernier le {ANNONCEFJURDATE}."; +$tabCommentaires[400501][2][10] = "Une annonce de fusion absorption a été publiée le {ANNONCEFUSDATE}."; +$tabCommentaires[400502][2][10] = "Plusieurs fusions sont intervenues au cours de la vie de l'entreprise dont la dernière le {ANNONCEFUSDATE}."; +$tabCommentaires[400509][2][10] = "Beaucoup d'événements de fusion absorption sont intervenues depuis la création de l'enttreprise, la dernière en date du {ANNONCEFUSDATE}."; +$tabCommentaires[400610][2][10] = "Des annonces de mise en sommeil figurent dans l'historique, dont la plus récente au {ANNONCESOMMDATE}."; +$tabCommentaires[400611][2][10] = "Une mise en sommeil est intervenue le {ANNONCESOMMDATE}."; +$tabCommentaires[400620][2][10] = "Malgré des pertes excédant la moitié du capital, il a été décidé de poursuivre l'activité. Cette décision à fait l'objet de la publication du {ANNONCEPOURSDATE}."; +$tabCommentaires[400630][2][10] = "Dans le cadre des conditions de dissolution anticipée, la poursuite de l'activité à été rendue possible par plusieurs opérations de reconstitution de l'actif, dont la plus récente le {ANNONCERECONDATE}."; +$tabCommentaires[400631][2][10] = "Dans le cadre des conditions de dissolution anticipée, la poursuite de l'activité à été rendue possible par une opération de reconstitution de l'actif le {ANNONCERECONDATE}."; +$tabCommentaires[400900][2][10] = "Depuis sa création, une seule fusion est intervenue et il n'y a pas eu d'autres changements dans le répertoire national."; +$tabCommentaires[400901][2][10] = "Les opérations de fusion expliquent les fréquents changements intervenus."; +$tabCommentaires[400902][2][10] = ", en particulier, l'antériorité de la création par rapport à la date d'immatriculation."; +$tabCommentaires[400903][2][10] = ", la nouvelle valeur du capital peut aussi en être une conséquence."; +$tabCommentaires[400910][2][10] = "Depuis sa création, on n'observe pas d'évolution marquante dans la structure de l'entreprise."; +$tabCommentaires[400950][2][10] = "C'est une filiale de {NOMMERE} (SIREN {SIRENMERE})."; +$tabCommentaires[400951][2][10] = ", laquelle fait l'objet d'une procédure judiciaire."; +$tabCommentaires[400955][2][10] = ", et qui a réalisé {Ra[010]} de résultat."; +$tabCommentaires[400960][2][10] = "Propriétaire de {NOMFILLE} (SIREN {SIRENFILLE}), \"{NOMEN}\" voit la taille de son propre périmètre d'activité progresser."; +$tabCommentaires[400965][2][10] = "Propriétaire, entre autres filiales, de {NOMFILLE} (SIREN {SIRENFILLE}), \"{NOMEN}\" voit néanmoins la taille des son propre périmètre d'activité se contracter avec une baisse de son CA de {!Revol[006]}."; +$tabCommentaires[400966][2][10] = "Propriétaire, entre autres filiales, de {NOMFILLE} (SIREN {SIRENFILLE}), \"{NOMEN}\" voit néanmoins la taille des son propre périmètre d'activité se contracter avec une baisse de son CA qui passe de {Rp[006]} à {R[006]}."; +$tabCommentaires[400967][2][10] = ", (en durées rapportées à 12 mois)."; +$tabCommentaires[400970][2][10] = "Dans le cadre de sa stratégie de développement, l'entreprise a entamé le {FUSIONPROJET_DATE}, l'étude du projet de fusion \"{FUSIONPROJET}\" avec la société \"{NOMFUSION}\", (SIREN {FUSIONPROJET_SIREN})."; +$tabCommentaires[400971][2][10] = "Dans le cadre de sa stratégie de développement, l'entreprise a entamé l'étude du projet de fusion \"{FUSIONPROJET}\" avec la société \"{NOMFUSION}\", (SIREN {FUSIONPROJET_SIREN})"; +$tabCommentaires[400972][2][10] = "Dans le cadre de sa stratégie de développement, l'entreprise a entamé l'étude du projet de fusion \"{FUSIONPROJET}\" "; +$tabCommentaires[401101][2][10] = "L' INSEE répertorie l'entreprise en activité mais elle est déclarée inactive dans d'autres bases de données."; +$tabCommentaires[401102][2][10] = "L' INSEE répertorie l'entreprise sans activité mais elle est déclarée encore active dans d'autres bases de données."; +$tabCommentaires[401103][2][10] = "L' INSEE répertorie l'entreprise en activité mais elle ne figure pas dans les sources greffes."; +$tabCommentaires[401104][2][10] = "L' INSEE ne répertorie pas l'entreprise, en revanche, nous attirons votre attention sur le fait qu'elle est déclarée comme en activité dans les sources greffes."; +$tabCommentaires[401105][2][10] = "L' INSEE répertorie l'entreprise comme en activité mais elle a demandé à ce que ses coordonnées ne soient pas diffusées."; +$tabCommentaires[401106][2][10] = "L' INSEE répertorie l'entreprise comme n'ayant plus d'activité et elle a demandé à ce que ses coordonnées ne soient pas diffusées."; +$tabCommentaires[401201][2][10] = "A noter que l'établissement est juridiquement actif mais au moins un courrier d'Enquête Annuelle INSEE qui lui est destiné est revenu NPAI."; +$tabCommentaires[401211][2][10] = "A noter que l'établissement est juridiquement actif mais il est présumé fermé, même si l'on n'observe pas de formalité de fermeture car il y a présence de formalité de transfert ou de cession."; +$tabCommentaires[401221][2][10] = "A noter que l'établissement est juridiquement actif mais il n'y aurait plus d'activité à l'adresse."; +$tabCommentaires[401510][2][10] = "L'entreprise est dirigée par {DIR1_NOM}, {DIR1_AGE} ans, au titre de {DIR1_FONC}."; +$tabCommentaires[401511][2][10] = "{DIR1_NOM}, {DIR1_AGE} ans, préside aux destinées de l'entreprise."; +$tabCommentaires[401512][2][10] = "L'entreprise est dirigée par {DIR1_NOM}, au titre de {DIR1_FONC}."; +$tabCommentaires[401513][2][10] = "La fonction de {DIR1_FONC} est assurée par {DIR1_NOM}."; +$tabCommentaires[401520][2][10] = ". Et {DIR2_NOM}, {DIR2_AGE} ans, en tant que {DIR2_FONC}."; +$tabCommentaires[401521][2][10] = ". Et {DIR2_NOM}, {DIR2_AGE} ans."; +$tabCommentaires[401522][2][10] = ". Et par {DIR2_NOM}, en tant que {DIR2_FONC}."; +$tabCommentaires[401523][2][10] = ", celle de {DIR2_FONC}, par {DIR2_NOM}."; +$tabCommentaires[401701][2][10] = "Dans le cadre de la prévention des risques dûs au stress au travail, au terme d'une série de réunion avec les partenaires sociaux, un accord sur un plan d'action négocié est intervenu en date du {RPS_ACCORDDATE}."; +$tabCommentaires[401702][2][10] = "Dans le cadre de la prévention des risques dûs au stress au travail, un plan d'action a été mis en place à l'initiative de l'employeur."; +$tabCommentaires[401801][2][10] = "Il semble que, depuis plusieurs années, l'entreprise à choisi une stratégie d'augmentation de valeur par l'accroissement du Résultat combiné à la réduction des effectifs."; +$tabCommentaires[402100][2][10] = ""; +$tabCommentaires[402200][2][10] = "L'entreprise a atteint un stade de développement combinant un haut niveau de ressources et une bonne performance. Ces entreprises dites \"gazelles\" apparaissent comme les plus saines, capables de financer leur croissance. Débuter son développement avec ce type de modèle accroît les chances d'une entreprise à créer de la valeur et à être pérenne."; +$tabCommentaires[402300][2][10] = "L'entreprise combine un faible niveau de ressources et une faible performance. Bien qu'ayant réussi à dépasser le stade de TPE, les entreprises qui adoptant cette trajectoire-type « incertaines » semblent peu aptes a priori à un développement ultérieur important."; +$tabCommentaires[402400][2][10] = "L'entreprise est à un stade de développement à performance faible bien qu'elle dispose de ressources élevées. Elle est à un tournant dans son évolution, il réside dans le passage depuis ce profil vers l'une des deux autres possibilités : L'affaiblissement ou le succès (gazelle)."; +$tabCommentaires[402500][2][0] = "Depuis plusieurs années l'entreprise voit ses performances décroitre et ses ressources réduites ne faciliteront pas son retour sur le chemin de la progression."; +$tabCommentaires[402500][2][1] = "Les études statistiques montrent qu'un retour à meilleur fortune de ce profil de développement est très rare."; +$tabCommentaires[402501][2][10] = "Depuis plusieurs années l'entreprise voit ses performances rester faibles et ses ressources demeurer réduites. On peut craindre qu'elle ait laissé passer l'opportunité d'une croissance."; +$tabCommentaires[402502][2][10] = "Cette année, l'entreprise voit ses performances décroitre. Pour renouer avec la progression le rendement devra s'améliorer faute de quoi un soutient des ressources propres pourrait devenir nécessaire."; +$tabCommentaires[402503][2][10] = "Cette année, l'entreprise voit ses performances chuter sensiblement, il en est de même pour ses resources propres. La conjugaison de ces deux facteurs ne va pas faciliter le retour à la progression. Une amélioration de la rentibilté devient indispensable."; +$tabCommentaires[402504][2][10] = "L'entreprise qui affichait de bonnes performances mais disposait de faibles resources a réussi augmenter sensiblement ses fonds propres. Ce n'est pas le cas des résultats qui ont plongé, un redressement de la rentabilité s'impose."; +$tabCommentaires[402505][2][10] = "L'entreprise affichait de bonnes performances et disposait de resources propres significatives, elle n'a pas pu soutenir ses performances. Même si elle a conservé des resources propres importantes, la chute de ses résultats constitue une alerte sur d'éventuels problèmes structurels pouvant présenter des risques potentiels."; +$tabCommentaires[402506][2][10] = "Les performances restent remarquables, en revanche les resources propres significatives de l'exercice précédent, n'ont pas été maintenues au même niveau. Si le bon niveau de rentabilité se poursuit, cet état sera passager. En revanche si les performances marquent le pas, l'entreprise risque d'entrer dans une spirale négative."; +$tabCommentaires[402507][2][10] = "Depuis plusieurs années l'entreprise voit ses performances rester faibles. Le dernier exercice témoigne d'un accroissement significatif des ressources propres. Elle n'ont pas été investies suffisamment tôt pour améliorer la rentabilité. Le délai du décollage de la rentabilité devient un problème vital."; +$tabCommentaires[402508][2][10] = "Depuis plusieurs années l'entreprise maintient ses performances à un niveau élevé malgré des resources propres en deça de la moyenne. Le dernier exercice confirme la stabilité du profil financier de type \"start up\". Pour assurer sa pérénité et passer au stade d'évolution supérieur, l'entreprise devra améliorer ses ressources propres."; +$tabCommentaires[402509][2][10] = "Depuis plusieurs années l'entreprise maintient ses performances à un niveau élevé et des resources propres bien delà de la moyenne. Le dernier exercice confirme la stabilité du profil financier de type \"gazelle\". La pérénité de l'entreprise est assurée."; +$tabCommentaires[403000][2][10] = "Du fait de sa création relativement récente, la progression continue de ses moyens de production, ses résultats avant impots régulièrement positifs, l'entité est en pleine évolution. Selon certaines théories du management, son profil la classe au premier stade de l'évolution (enfance), elle est prête à envisager son passage au stade suivant sur le chemin de la maturité."; +$tabCommentaires[403010][2][10] = "Depuis un moment déjà, l'entité a été en évolution régulière. Elle a développé ses moyens de production de façon continue. Durant les premières années de son existance, elle a vu ses parts de marché et ses résultats courants avant impots progresser. Elle a entamé sa structuration pour atteindre un stade d'évolution que certaines théories du management appellent l'adolescence, stade préliminaire à la maturité."; +$tabCommentaires[403011][2][10] = "L'évolution était favorable et on pouvait envisager le passage à un stade supérieur de l'évolution de la gouvernance. La structuration en cours pendant le dernier exercice pour viser plus de maturité, se déroule favorablement. Les résultats courants avant impots se maintiennent, les inverstisseurs limitent leurs dividendes. Les opérations en cours n'ont pas d'influence négative sur le chiffre d'affaires, l'entreprise se renforce."; +$tabCommentaires[403012][2][10] = "La structuration en cours durant le dernier exercice pour viser plus de maturité, semble présenter des problèmes. Les résultats courants avant impots chutent, le chiffre d'affaires marque le pas. Les investisseurs ne limitent pas suffisamment leurs dividendes. Les opérations en cours sont mal engagées, le stade de la maturité n'est pas en vue."; +$tabCommentaires[403015][2][10] = "La structuration pour viser plus de maturité est en cours. Elle n'a pas trop d'impact négatif. En revanche pour assurer cette transformation on fait de plus en plus appel à des resources extérieures au risque de perdre en savoir faire. Malgré cela, le chiffre d'affaires marque le pas. En outre, il est possible que dans les prochaines années, le manque de resources internes limite les capacités de développement."; +$tabCommentaires[404000][2][10] = "La structuration pour viser plus de maturité est achevée. Elle n'a quasiment pas eu d'impact négatif. La transformation redonne plus de potentiel à la structure qui reste aussi dynamique. Les résultats courants avant impots progressent ainsi que le chiffre d'affaires. Tous les fondamentaux sont au vert, les capacités de développement sont en place pour envisager l'avenir sereinement."; +$tabCommentaires[405000][2][10] = "La structure semble avoir augmenté son inertie. Les résultats courants avant impots régressent régulièrement ainsi que le chiffre d'affaires. La productivité et la valeur ajoutée décroissent. Les effectifs augmentent, comme si une bureaucratisation s'était installée, l'entreprise pert régulièrement de son allant. Les capacités de développement semble avoir disparu."; +$tabCommentaires[406100][2][10] = "A signaler que l'entité juridique à fait l'objet de {NBINTERRO3} demandes d'information de la part de nos clients dans les 3 derniers mois."; +$tabCommentaires[406101][2][10] = "A signaler que l'entité juridique à fait l'objet d'une demande d'information de la part d'un de nos clients dans les 3 derniers mois."; +$tabCommentaires[406110][2][10] = "A signaler que l'entité juridique à fait l'objet de {NBINTERRO6} demandes d'information de la part de nos clients dans les 6 derniers mois."; +$tabCommentaires[406111][2][10] = "A signaler que l'entité juridique à fait l'objet d'une demande d'information de la part d'un de nos clients dans les 6 derniers mois."; +$tabCommentaires[406120][2][10] = "A signaler que l'entité juridique à fait l'objet de {NBINTERRO12} demandes d'information de la part de nos clients dans les 12 derniers mois."; +$tabCommentaires[406121][2][10] = "A signaler que l'entité juridique à fait l'objet d'une demande d'information de la part d'un de nos clients dans l'année."; +$tabCommentaires[406190][2][10] = ", dont {NBINTERRO1}, il y a moins de 30 jours."; +$tabCommentaires[406191][2][10] = ", dont la dernière, il y a moins de 30 jours."; +$tabCommentaires[406200][2][10] = ". Elle est suivie par {NBSUIVICLI} d'entre eux. "; +$tabCommentaires[406201][2][10] = ". Elle est suivie par l'un d'entre eux. "; +$tabCommentaires[410000][2][10] = "La société fait actuellement l'objet d'une procédure de {ANNONCEPC}, prononcée par le {TRIBUNAL_PROCOL} en date du {ANNONCEPCDATE}"; +$tabCommentaires[410010][2][10] = " (n°{ANNONCEPC_NUM})"; +$tabCommentaires[410100][2][10] = ", suite à la cessation des paiements du {ANNONCEPC_CESDATE}"; +$tabCommentaires[410200][2][10] = "Depuis cette date, la représentation légale de la société est assumée par {ANNONCEPC_INT1_TIT} {ANNONCEPC_INT1} "; +$tabCommentaires[410201][2][10] = "Depuis cette date, la représentation légale de la société est assumée par {ANNONCEPC_INT1} "; +$tabCommentaires[410209][2][10] = ", qui a mis en place une période d'observation."; +$tabCommentaires[410250][2][10] = "Depuis cette date, le dirigeant est assisté par {ANNONCEPC_INT1_TIT} {ANNONCEPC_INT1} "; +$tabCommentaires[410251][2][10] = "Depuis cette date, le dirigeant est assisté par {ANNONCEPC_INT1} "; +$tabCommentaires[410259][2][10] = ", qui a négocié la période d'observation."; +$tabCommentaires[410270][2][10] = "La représentation légale de la société est assumée par {ANNONCEPC_INT1_TIT} {ANNONCEPC_INT1} "; +$tabCommentaires[410271][2][10] = "La représentation légale de la société est assumée par {ANNONCEPC_INT1} "; +$tabCommentaires[410279][2][10] = "A noter que le tribunal à décidé {ANNONCEPC_OBS}"; +$tabCommentaires[410300][2][10] = "Puis ce dernier a réuni les créanciers (fournisseurs, banques et administrations) auxquels la société \"{NOMEN}\" est redevable de dettes, pour définir un {ANNONCEPLAN}"; +$tabCommentaires[410310][2][10] = "Ce plan de continuation a été \"arrêté\" par le {TRIBUNAL_PROCOL} pour une période de {ANNONCEPLANDUREE} "; +$tabCommentaires[410315][2][10] = ", il prend effet le {ANNONCEPLANDATE} "; +$tabCommentaires[410316][2][10] = " pour se terminer, en principe, le {ANNONCEPLANFINDATE} "; +$tabCommentaires[410400][2][10] = "{ANNONCEPC_INT1} est assisté dans sa tâche par {ANNONCEPC_INT2_TIT} {ANNONCEPC_INT2} "; +$tabCommentaires[410401][2][10] = "{ANNONCEPC_INT1} est assisté dans sa tâche par {ANNONCEPC_INT2} "; +$tabCommentaires[410500][2][10] = "Depuis le {ANNONCEPLANDATE}, l'entreprise continue son activité sous réserve du respect du plan de {ANNONCEPLAN}, décidé dans le cadre de {ANNONCEPC}. "; +$tabCommentaires[410800][2][10] = "Nous neutralisons donc l'évaluation de la société \"{NOMEN}\" (SIREN {SIREN}), car elle est en procédure collective et nous vous recommandons d'exiger un paiement comptant ou par avance, car le risque de clôture de la procédure pour non respect du plan (et donc la liquidation), est toujours présent. Le risque d'impayé est élevé."; +$tabCommentaires[410800][2][20] = "Pour en savoir plus sur la conduite à tenir, selon votre situation, (clients, créanciers, salariés, actionnaires etc..): cliquer ici"; +$tabCommentaires[410800][2][40] = "(Découvrez la Roue de la Relance, un outil du Passeport de la Relance proposé par l'Ordre des Experts-Comptables à destination des PME, présentant par tiers (Etat, clients, fournisseurs, salariés, bailleurs, actionnaires, banques, organismes sociaux), la solution adaptée pour relancer leurs activités)"; +$tabCommentaires[410810][2][10] = "Nous neutralisons donc l'évaluation de la société \"{NOMEN}\" (SIREN {SIREN}) du fait de la liquidation."; +$tabCommentaires[412000][2][10] = "Une vente cession a été publiée le {ANNONCEVCDATE}, elle fait mention de:"; +$tabCommentaires[412000][2][20] = "\"{ANNONCEVC_OBJ}\", pour un montant de {ANNONCEVC_MT}. Cet événement a eu une influence sur la taille de l'affaire. "; +$tabCommentaires[412010][2][10] = "Une vente cession a été publiée le {ANNONCEVCDATE}, pour un montant de {ANNONCEVC_MT}. Cet événement a eu une influence sur la taille de l'affaire. "; +$tabCommentaires[412020][2][10] = "Une vente cession a été publiée le {ANNONCEVCDATE}. Cet événement a eu une influence sur la taille de l'affaire. "; +$tabCommentaires[422000][2][10] = "Compte tenu du faible niveau du Chiffre d'affaire, l'analyse financière n'est pas pertinente sur la base des ratios dégagés."; +$tabCommentaires[424000][2][10] = "Les commentaires financiers sont en partie occultés du fait de l'ancienneté du dernier bilan cloturé au {BILANDATE}."; +$tabCommentaires[424010][2][10] = "Une partie des commentaires financiers est occultée du fait de l'ancienneté du dernier bilan à notre disposition."; +$tabCommentaires[424020][2][10] = "L'ancienneté des comptes de la collectivité nous conduit à relativiser les commentaires financiers qui peuvent être devenus moins pertinents pour la période actuelle."; +$tabCommentaires[426000][2][10] = "La durée de l'exercice {BILANANNEE} est supérieure à 12 mois, ainsi que la durée de l'exercice clos le {BILANDATEp}. Nous en tenons compte dans les comparaisons."; +$tabCommentaires[426200][2][10] = "La durée de l'exercice {BILANANNEE} est inférieure à 12 mois avec {nm} mois, ainsi que la durée de l'exercice clos le {BILANDATEp} avec {nmp} mois. Nous en tenons compte dans notre étude."; +$tabCommentaires[426500][2][10] = "Les durées des exercices {BILANDATEp}, supérieure à 12 mois avec {nmp} mois, et de l'exercice clos le {BILANDATE}, avec {nm} mois, sont différentes. Nous en tenons compte dans notre étude."; +$tabCommentaires[426700][2][10] = "Les durées des exercices {BILANANNEEp}, inférieure à 12 mois avec {nmp} mois, et l'exercice clos le {BILANDATE}, couvrant plus d'une année avec {nm} mois, sont différentes. Nous en tenons compte dans les comparaisons."; +$tabCommentaires[427000][2][10] = "Dans notre étude, nous avons tenu compte de la durée de l'exercice clos le {BILANDATE} qui est inférieure à 12 mois."; +$tabCommentaires[428000][2][10] = "La comparaison des exercices comptables tient compte de la durée de l'exercice clos le {BILANDATEp} étant inférieure à 12 mois."; +$tabCommentaires[429000][2][10] = "La durée de l'exercice arrêté au {BILANDATE} est supérieure à 12 mois. Nous en avons tenu compte dans notre étude."; +$tabCommentaires[430000][2][10] = "La durée de l'exercice clos le {BILANDATEp} est supérieure à 12 mois. Nous en tenons compte dans les comparaisons."; +$tabCommentaires[431000][2][10] = ", en particulier l'exercice clos le {BILANDATEp} qui est aussi inférieur à 12 mois."; +$tabCommentaires[435000][2][10] = "En revanche l'exercice clos le {BILANDATEp} est supérieur à 12 mois."; +$tabCommentaires[437000][2][10] = "En revanche l'exercice clos le {BILANDATEp} est inférieur à 12 mois."; +$tabCommentaires[443000][2][0] = "Le compte de résultat de l'année {BILANANNEE} ne fait pas état de performances satisfaisantes. En effet, l'exercice est en perte avec {R[010]}."; +$tabCommentaires[445000][2][0] = "Le résultat négatif de l'année {BILANANNEE} de {R[010]} témoigne des faibles performances. "; +$tabCommentaires[445001][2][0] = " avec une perte avoisinant les {!R[264]} du CA."; +$tabCommentaires[447000][2][0] = "L'exploitation de l'année {BILANANNEE} fait ressortir un bénéfice de {R[010]}."; +$tabCommentaires[448000][2][0] = "L'exploitation de l'année {BILANANNEE} fait ressortir un bénéfice remarquable de {R[010]}."; +$tabCommentaires[450000][2][0] = "Ce résultat ramené en 12 mois donnerait {R[011]}, soit {R[509]} du chiffre d'affaires sur cette même durée."; +$tabCommentaires[453000][2][0] = "En ce qui concerne le résultat de l'exercice précédent clos le {BILANDATEp}, celui-ci ressortait avec une légère perte de {!Rp[199]}."; +$tabCommentaires[455000][2][0] = "En ce qui concerne le résultat de l'exercice précédent clos le {BILANDATEp}, il ressortait avec une perte non négligeable de {!Rp[199]}."; +$tabCommentaires[455001][2][0] = ". Soit près de {!Rp[264]} du CA."; +$tabCommentaires[456000][2][0] = "En ce qui concerne le résultat de l'exercice précédent clos le {BILANDATEp}, celui-ci ressortait en fortes pertes de {!Rp[199]}."; +$tabCommentaires[457000][2][0] = "En ce qui concerne le résultat de l'exercice précédent clos le {BILANDATEp}, celui-ci ressortait avec un solde positif de {Rp[199]}."; +$tabCommentaires[458000][2][0] = " Quant au résultat de l'exercice précédent clos le {BILANDATEp}, il présentait un solde positif notable de {Rp[199]}."; +$tabCommentaires[460000][2][0] = "Afin de rendre ce chiffre comparable entre les deux exercices, le calcul de ce résultat en 12 mois représenterait {Rp[011]} soit {R[509]} du chiffre d'affaires."; +$tabCommentaires[464000][2][0] = "Les résultats nets des deux derniers exercices, ramenés à la production, avec {Rp[509]} et {R[509]} du CA, sont en augmentation de {!Revol[509]}."; +$tabCommentaires[464010][2][1] = ". La rentabilité progresse."; +$tabCommentaires[466000][2][0] = "Les résultats nets des deux derniers exercices, ramenés à la production, avec {Rp[509]} et {R[509]} du CA, marquent une réelle augmentation de {!Revol[509]}."; +$tabCommentaires[466001][2][0] = "Le Résultat Net, ramené à la production, avec {R[509]} du CA, marque une forte progression."; +$tabCommentaires[468000][2][0] = "Bien que positif, le Résultat ramené à la production avec {R[509]} du CA, est en baisse legère de {!Revol[509]}."; +$tabCommentaires[470000][2][0] = "Bien que positif, le Résultat ramené à la production avec {R[509]} du CA, marque le pas de {!Revol[509]}."; +$tabCommentaires[470001][2][0] = ". La rentabilité accuse une baisse importante."; +$tabCommentaires[471000][2][0] = "Les résultats nets des deux derniers exercices, passent de {Rp[509]} du CA au {BILANDATEp} à {R[509]} du CA en {BILANANNEE}."; +$tabCommentaires[471001][2][2] = "Il y a donc un retour à la rentabilité en {BILANANNEE} avec une amélioration de {!Revol[509]} entre les deux exercices."; +$tabCommentaires[471002][2][2] = "Il y a donc un retour à la rentabilité en {BILANANNEE} avec une forte progression entre les deux exercices."; +$tabCommentaires[472000][2][0] = "Les résultats nets des deux derniers exercices, ramenés à la production, passent de {+Rp[509]} du CA au {BILANDATEp} à {+R[509]} du CA en {BILANANNEE}."; +$tabCommentaires[472001][2][5] = "Il y a donc un retour à la rentabilité en {BILANANNEE} avec une très nette amélioration de {!Revol[509]} entre les deux exercices."; +$tabCommentaires[472002][2][5] = "Il y a donc un retour à la rentabilité en {BILANANNEE} avec une très nette amélioration entre les deux exercices."; +$tabCommentaires[474000][2][0] = "Les résultats nets des deux derniers exercices, ramenés à la production, passent de {+Rp[509]} du CA au {BILANDATEp} à {+R[509]} du CA en {BILANANNEE}."; +$tabCommentaires[476000][2][0] = "Les résultats nets des deux derniers exercices, ramenés à la production, passent de {+Rp[509]} du CA au {BILANDATEp} à {+R[509]} du CA en {BILANANNEE}."; +$tabCommentaires[477000][2][2] = "La rentabilité des ventes est faiblement positive avec {!R[264]} du CA. "; +$tabCommentaires[477100][2][2] = "La rentabilité des ventes est positive mais reste sous la moyenne du secteur. Le bénéfice après impôt que dégage chaque euro de chiffre d'affaire s'élève à {!R[264]} du CA. La moyenne du secteur étant à {+Rs[264]}."; +$tabCommentaires[477200][2][2] = "La rentabilité des ventes est largement positive et se situe au dessus de la moyenne du secteur. Le bénéfice après impôt que dégage chaque euro de chiffre d'affaire s'élève à {!R[264]} du CA. La moyenne du secteur étant à {+Rs[264]}."; +$tabCommentaires[477250][2][2] = "Toutefois nous attirons l'attention sur le fait que la part de cette \"marge nette\" prélevée par l'entreprise après déduction de toutes les charges semble tout de même un peu excessive."; +$tabCommentaires[478000][2][2] = "La rentabilité des ventes est négative. La perte correspond à {!R[264]} du Chiffre d'affaires. "; +$tabCommentaires[478100][2][2] = "La rentabilité des ventes est négative mais reste au dessus de la moyenne du secteur. La perte correspond à {!R[264]} du Chiffre d'affaires, la moyenne du secteur, qui semble donc sinistré, étant à {+Rs[264]}."; +$tabCommentaires[478200][2][2] = "La rentabilité des ventes est largement négative et se situe sous la moyenne du secteur. La perte correspond à {!R[264]} du Chiffre d'affaires, la moyenne de la rentabilité du secteur, étant à {+Rs[264]}."; +$tabCommentaires[500000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions) est en augmentation de {!Revol[513]} sur 12 mois, il reste, cependant, encore assez modeste."; +$tabCommentaires[500001][2][6] = ". Son rapport de {!Revol[514]} du CA progresse aussi. "; +$tabCommentaires[502000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions), représente {R[513]}. Celui au {BILANDATEp}, {Rp[513]} soit une augmentation de {!Revol[513]} sur 12 mois. "; +$tabCommentaires[502001][2][6] = "Son rapport au CA de {!Revol[514]} progresse aussi. Bien que le résultat économique soit encore modeste, la rentabilité de l'entreprise a bien progressé au cours du dernier exercice."; +$tabCommentaires[504000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions), représente {R[513]} sur 12 mois. Celui au {BILANDATEp} représentait {Rp[513]} soit une légère augmentation de {!Revol[513]}. "; +$tabCommentaires[504001][2][6] = "Son rapport au CA de {!Revol[514]} progresse aussi. Le résultat économique est correct et stable."; +$tabCommentaires[506000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions), représente {R[513]} sur 12 mois. Celui au {BILANDATEp} représentait {Rp[513]} soit une nette augmentation de {!Revol[513]}. "; +$tabCommentaires[506001][2][10] = "Son rapport de {!Revol[514]} du CA progresse aussi. Le résultat économique est correct."; +$tabCommentaires[508000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions), s'établit à {R[513]} sur 12 mois. Celui au {BILANDATEp} était {Rp[513]} soit une augmentation sensible de {!Revol[513]}. "; +$tabCommentaires[508001][2][10] = "Son rapport de {!Revol[514]} du CA progresse aussi."; +$tabCommentaires[510000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} (Résultat net hors exceptionnel et subvensions), s'établit à {R[513]} sur 12 mois, celui de N-1, {Rp[513]}."; +$tabCommentaires[510001][2][3] = ", soit une forte progression de {!Revol[513]}. "; +$tabCommentaires[510002][2][3] = ", en forte progression."; +$tabCommentaires[510003][2][6] = ", et sa proportion de {R[514]} du CA progresse aussi substantiellement de {!Revol[514]}."; +$tabCommentaires[510004][2][6] = ", et sa proportion de {R[514]} du CA progresse aussi substantiellement."; +$tabCommentaires[510010][2][8] = "La rentabilité de l'entreprise a bien progressé au cours du dernier exercice. Celle-ci se situe à un bon niveau. Notons également que la baisse du chiffre d'affaires enregistrée au dernier exercice vient influer sur l'amélioration de la rentabilité."; +$tabCommentaires[535000][2][10] = "Bien que la rentabilité de l'entreprise ait progressé au cours du dernier exercice, le Fonds de Roulement ne suffit pas à couvrir le Besoin en Fonds de Roulement, la trésorerie est négative de {R[226]}."; +$tabCommentaires[535001][2][10] = ", qui représente {!R[512]} de CA HT."; +$tabCommentaires[535005][2][10] = "L'exercice précédent, clos le {BILANDATEp}, était aussi marqué par un manque de trésorerie de {Rp[226]}."; +$tabCommentaires[535006][2][10] = ", cette insuffisance monétaire se montant, elle, à hauteur de {!Rp[512]} de CA HT."; +$tabCommentaires[540000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}. Celui au {BILANDATEp} représentait {Rp[513]} soit une augmentation de {!Revol[513]}. "; +$tabCommentaires[540001][2][6] = ", sa proportion par rapport au CA, progresse aussi de {!Revol[514]}."; +$tabCommentaires[540005][2][6] = ", même s'il existe une petite amélioration il est insuffisant."; +$tabCommentaires[542000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}, celui au {BILANDATEp}, {Rp[513]}, soit une augmentation de {!Revol[513]}. "; +$tabCommentaires[542001][2][6] = ", sa proportion de {R[514]} du CA, progresse aussi de {!Revol[514]}."; +$tabCommentaires[542002][2][6] = ", sa proportion de {R[514]} du CA, progresse aussi et fortement."; +$tabCommentaires[542005][2][7] = ", l'amélioration est significative."; +$tabCommentaires[544000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}, celui au {BILANDATEp}, {Rp[513]}."; +$tabCommentaires[544001][2][3] = ", soit une diminution de {!Revol[513]}. "; +$tabCommentaires[544002][2][3] = ", soit une très forte diminution."; +$tabCommentaires[544003][2][6] = ", sa proportion à {R[514]} du CA, régresse aussi de {!Revol[514]}."; +$tabCommentaires[544004][2][6] = ", sa proportion à {R[514]} du CA, régresse aussi fortement."; +$tabCommentaires[544005][2][6] = "La rentabilité de l'entreprise est insuffisante, en baisse au cours du dernier exercice, même en tenant compte des subventions et des résultats exceptionnels."; +$tabCommentaires[548000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} s'établit à {R[513]}, celui au {BILANDATEp}."; +$tabCommentaires[548001][2][3] = ", soit une diminution de {!Revol[513]}."; +$tabCommentaires[548002][2][3] = ", en une forte chute."; +$tabCommentaires[548003][2][6] = ". En revanche, sa proportion de {R[514]} du CA, progresse de {!Revol[514]}."; +$tabCommentaires[548004][2][6] = ". En revanche, sa proportion de {R[514]} du CA, progresse fortement."; +$tabCommentaires[548005][2][8] = "Malgré tout, la rentabilité de l'entreprise s'est améliorée au cours du dernier exercice."; +$tabCommentaires[548006][2][8] = ", il faut cependant noter la baisse du chiffre d'affaires enregistrée au dernier exercice qui vient influer sur l'amélioration du ratio."; +$tabCommentaires[549000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}, celui au {BILANDATEp}, {Rp[513]}."; +$tabCommentaires[549001][2][3] = ", soit une diminution de {!Revol[513]}."; +$tabCommentaires[549002][2][3] = ", en forte chute."; +$tabCommentaires[549005][2][6] = ". En revanche, sa proportion de {R[514]} du CA, progresse de {!Revol[514]}, la rentabilité de l'entreprise s'est donc proportionnellement améliorée au cours du dernier exercice."; +$tabCommentaires[549006][2][6] = ". En revanche, sa proportion de {R[514]} du CA, progresse fortement, la rentabilité de l'entreprise s'est donc proportionnellement améliorée au cours du dernier exercice."; +$tabCommentaires[551000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}, celui au {BILANDATEp}, {Rp[513]}, soit une diminution de {!Revol[513]}. "; +$tabCommentaires[551001][2][3] = ", soit une diminution de {!Revol[513]}."; +$tabCommentaires[551002][2][3] = ", en forte chute."; +$tabCommentaires[551004][2][6] = ", sa proportion de {R[514]} du CA, régresse aussi de {!Revol[514]}."; +$tabCommentaires[551005][2][6] = ", sa proportion de {R[514]} du CA, régresse fortement aussi."; +$tabCommentaires[551010][2][8] = ", la baisse de la rentabilité est bien effective."; +$tabCommentaires[552000][2][3] = "Le résultat économique de l'exercice {BILANANNEE} représente {R[513]}, celui au {BILANDATEp}, {Rp[513]}, soit une augmentation de {!Revol[513]}. "; +$tabCommentaires[552001][2][3] = ", soit une augmentation de {!Revol[513]}."; +$tabCommentaires[552002][2][3] = ", en une forte augmentation."; +$tabCommentaires[552005][2][6] = ", sa proportion de {R[514]} du CA, progresse aussi de {!Revol[514]}."; +$tabCommentaires[552006][2][6] = ", sa proportion de {R[514]} du CA, progresse aussi fortement."; +$tabCommentaires[552010][2][8] = "Cependant, cette progression ne vient pas modifier le fait que la rentabilité de l'entreprise est insuffisante. Celle-ci est également accompagnée d'une baisse du chiffre d'affaires."; +$tabCommentaires[554000][2][3] = "Le résultat économique (hors resultat exceptionnel, subventions & reprises) se monte à {R[513]}, celui au {BILANDATEp}, {Rp[513]}."; +$tabCommentaires[554001][2][3] = ", soit une amélioration de {!Revol[513]}."; +$tabCommentaires[554002][2][3] = ", en forte hausse."; +$tabCommentaires[554005][2][6] = ". En revanche, sa proportion de {R[514]} du CA, régresse de {!Revol[514]}."; +$tabCommentaires[554006][2][6] = ". En revanche, sa proportion de {R[514]} du CA, régresse fortement."; +$tabCommentaires[554010][2][6] = ", la rentabilité de l'entreprise est négative et celle-ci s'accompagne d'une baisse du chiffre d'affaires."; +$tabCommentaires[565000][2][10] = "Le résultat économique hors subventions et résultat exceptionnel de cet exercice de {nm} mois ressort à {R[515]}. Cette analyse montre que l'exploitation de l'entreprise ne parvient pas à produire le surplus monétaire nécessaires à l'équilibre des comptes de charges et de produits."; +$tabCommentaires[570000][2][0] = "Le résultat économique hors subventions et résultat exceptionnel de cet exercice de {nm} mois ressort à {R[515]}. L'exploitation de l'entreprise est équilibrée, les charges sont normalement couvertes par les produits d'exploitation."; +$tabCommentaires[571000][2][0] = "Le résultat économique hors subventions et résultat exceptionnel de cet exercice de {nm} mois ressort à {R[515]}. L'exploitation de l 'entreprise n'est pas tout à fait équilibrée. Les charges d'exploitation ne sont pas totalement couvertes par les produits d'exploitation."; +$tabCommentaires[572000][2][0] = "Le résultat économique hors subventions et résultat exceptionnel de cet exercice de {nm} mois ressort à {R[515]}. L'exploitation de l'entreprise est d'une bonne rentabilité, les produits d'exploitation couvrent largement les charges d'exploitation."; +$tabCommentaires[575000][2][0] = "D'autre part, on remarque que le résultat économique donne un résultat supérieur au résultat net de {R[545]} soit {R[516]} du résultat net. Cet élément vient renforcer notre bonne appréciation sur la capacité bénéficiaire de l'entreprise."; +$tabCommentaires[590000][2][0] = "Les chiffres d'affaires France et Export {BILANANNEE} sont négatifs. Il doit probablement s'agir d'une écriture de mise à jour avec un CA d'un exercice précédent."; +$tabCommentaires[595000][2][0] = "Le chiffre d'affaires France {BILANANNEE} de l'entreprise est négatif. Il doit probablement s'agir d'une mise à jour comptable de rectification sur exercices précédents."; +$tabCommentaires[600000][2][0] = "Le chiffre d'affaires {BILANANNEE} est négatif. Le CA EXPORT indique une valeur négative, due probablement à une mise à jour comptable sur les exercices précédents."; +$tabCommentaires[605000][2][0] = "Le chiffre d'affaires {BILANANNEE} est négatif tandis que les CA FRANCE et EXPORT sont positifs. Il est probable qu'il s'agit d'une erreur comptable."; +$tabCommentaires[610000][2][0] = "L'entreprise développe une activité export assez importante avec {R[003]} de chiffre d'affaires {BILANANNEE} à l'exportation. Ce volume représente {R[025]} de son chiffre d'affaires total sur {nm} mois."; +$tabCommentaires[615000][2][0] = "L'entreprise réalise une large part de son chiffre d'affaires à l'exportation avec {R[003]} pour un chiffre d'affaires global de {R[005]} en {BILANANNEE}, soit {R[025]} du volume total de l'exercice sur {nm} mois."; +$tabCommentaires[625000][2][0] = "L'entreprise réalise pratiquement tout son chiffre d'affaires à l'exportation {BILANANNEE} sur {nm} mois, avec {R[003]} pour un chiffre d'affaires global de {R[005]}, soit {R[025]} du volume total de l'exercice."; +$tabCommentaires[630000][2][0] = "En ramenant la durée de l'exercice {BILANANNEE} à 12 mois les chiffres d'affaires France & EXPORT seraient respectivement de {R[002]} pour la France et {R[004]} à l'Export. Soit un total de {R[006]}."; +$tabCommentaires[650101][2][0] = "Les ventes avaient déjà fondu de {!Revolp[006]} en {BILANANNEEp}, et en {BILANANNEE}, la chute continue. A la fin du dernier exercice, de {nm} mois, au {BILANDATE}, seulement {R[005]} de CA ont été réalisés, en recul de {!Revol[006]}."; +$tabCommentaires[650102][2][0] = "Les ventes s'étaient envolées en {BILANANNEEp}, mais en {BILANANNEE}, c'est une baisse. A la fin du dernier exercice, de {nm} mois, au {BILANDATE}, seulement {R[005]} de CA ont été réalisés, en recul de {!Revol[006]}."; +$tabCommentaires[650103][2][0] = "Les ventes avaient fondu de {!Revolp[006]} en {BILANANNEEp}, mais en {BILANANNEE}, c'est un net redressement. A la fin du dernier exercice, de {nm} mois, au {BILANDATE}, {R[005]} de CA ont été réalisés, en progression de {!Revol[006]}."; +$tabCommentaires[650104][2][0] = "Les ventes s'étaient envolées en {BILANANNEEp}, et en {BILANANNEE}, le développement se poursuit. A la fin du dernier exercice, de {nm} mois, au {BILANDATE}, {R[005]} de CA ont été réalisés, en progression de {!Revol[006]}."; +$tabCommentaires[650109][2][0] = " (comparaison sur 12 mois)."; +$tabCommentaires[650111][2][0] = ". Pendant ce temps le marché à chuté de {!Revols[006]}."; +$tabCommentaires[650112][2][0] = ". Pendant ce temps le marché à progressé de {!Revols[006]}."; +$tabCommentaires[652000][2][0] = "L'entreprise enregistre une progression convenable de {Revol[006]} de son Chiffre d'Affaires au dernier exercice."; +$tabCommentaires[655000][2][0] = "Le Chiffre d'Affaires total est en nette augmentation entre l'exercice {BILANANNEE} et celui clos le {BILANDATEp} avec {+Revol[006]}."; +$tabCommentaires[660000][2][0] = "Le Chiffre d'Affaires total est en progression sensible avec {Revol[006]} d'augmentation."; +$tabCommentaires[665000][2][0] = "La progression du Chiffre d'Affaires total de {R[005]}, est très importante avec {Revol[006]} d'augmentation."; +$tabCommentaires[665001][2][0] = "La progression du Chiffre d'Affaires total de {R[005]}, est très importante."; +$tabCommentaires[665009][2][0] = " (comparaison sur 12 mois)."; +$tabCommentaires[667000][2][0] = "Le chiffre d'affaires est stable avec seulement {Revol[006]} d'écart entre l'exercice {BILANANNEE} et celui clos le {BILANDATEp}."; +$tabCommentaires[670000][2][0] = "Sur 3 ans, jusqu'à {BILANANNEE}, et tenant compte de l'inflation, le Chiffre d'Affaires total progresse de {!Revol[536]}."; +$tabCommentaires[670001][2][0] = "Sur 3 ans, et tenant compte de l'inflation, le Chiffre d'Affaires total progresse de {!Revol[536]}."; +$tabCommentaires[670100][2][0] = "Cependant, sur 3 ans, jusqu'à {BILANANNEE}, et tenant compte de l'inflation, les ventes régressent de {!Revol[536]}."; +$tabCommentaires[670101][2][0] = "Cependant, sur 3 ans, et tenant compte de l'inflation, les ventes régressent de {!Revol[536]}."; +$tabCommentaires[670200][2][0] = "Cependant, sur 3 ans, jusqu'à {BILANANNEE}, et tenant compte de l'inflation, les ventes restent quasiment stables."; +$tabCommentaires[670201][2][0] = "Cependant, sur 3 ans, et tenant compte de l'inflation, les ventes restent quasiment stables."; +$tabCommentaires[672000][2][0] = "Le Chiffre d'Affaires total accuse une petite baisse de {!Revol[006]}."; +$tabCommentaires[675000][2][0] = "Le Chiffre d'Affaires total est en baisse de {!Revol[006]}. "; +$tabCommentaires[680000][2][0] = "La baisse du Chiffre d'Affaires est sensible avec {Revol[006]} entre l'exercice {BILANANNEE} et celui clos le {BILANDATEp}."; +$tabCommentaires[685000][2][0] = "On constate une baisse considérable du Chiffre d'Affaires entre l'exercice {BILANANNEE} et celui clos le {BILANDATEp} avec {+Revol[006]}."; +$tabCommentaires[690000][2][0] = "Nous constatons, sur une période de 12 mois, que l'entreprise ne réalise pratiquement plus de chiffre d'affaires ({R[005]})."; +$tabCommentaires[690001][2][0] = ". L'effondrement du chiffre d'affaire est de {+Revol[006]}. "; +$tabCommentaires[690002][2][0] = "Nous constatons, sur une période de 12 mois, que l'entreprise ne réalise pratiquement plus de chiffre d'affaires. Le chiffre d'affaire de {R[005]} s'effondre."; +$tabCommentaires[690100][2][0] = "A noter que {ANNONCEFUS} opérations de fusion dont la dernière le {ANNONCEFUSDATE} ont gonflé artificiellement les ventes."; +$tabCommentaires[690101][2][0] = "A noter que la fusion du {ANNONCEFUSDATE} a gonflé artificiellement les ventes."; +$tabCommentaires[690110][2][0] = "A noter que les fusions absorptions ont gonflé artificiellement les ventes."; +$tabCommentaires[690111][2][0] = "A noter qu'une fusion absorption a gonflé artificiellement les ventes."; +$tabCommentaires[700100][2][0] = "Le résultat d'exploitation du dernier exercice est positif avec {+R[150]}. "; +$tabCommentaires[700200][2][0] = "Le résultat d'exploitation du dernier exercice est largement positif avec {+R[150]}. "; +$tabCommentaires[700300][2][0] = "Le résultat d'exploitation du dernier exercice est très largement positif avec {+R[150]}. "; +$tabCommentaires[700500][2][0] = "Le résultat d'exploitation du dernier exercice est légèrement négatif avec {R[150]}. "; +$tabCommentaires[700600][2][0] = "Le résultat d'exploitation du dernier exercice est largement négatif avec {R[150]}. "; +$tabCommentaires[700700][2][0] = "Le résultat d'exploitation du dernier exercice est très largement négatif avec {R[150]}. "; +$tabCommentaires[701000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), reste stable au regard de l'exercice clos le {BILANDATEp} avec une évolution de {+Revol[507]}."; +$tabCommentaires[702000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), progresse au regard de l'exercice clos le {BILANDATEp} de {!Revol[507]}."; +$tabCommentaires[703000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), progresse fortement au regard de l'exercice clos le {BILANDATEp}."; +$tabCommentaires[703001][2][10] = " (de {!Revol[507]})."; +$tabCommentaires[705000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), régresse au regard de l'exercice clos le {BILANDATEp} de {Revol[507]}."; +$tabCommentaires[706000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), subit une nette diminution au regard de l'exercice clos le {BILANDATEp} avec {Revol[507]}."; +$tabCommentaires[707000][2][10] = "La rentabilité d'exploitation, (résultat d'exploitation/CA), chute fortement au regard de l'exercice clos le {BILANDATEp} pour passer de {Rp[507]} à {R[507]}."; +$tabCommentaires[710000][2][10] = ", même s'il progresse par rapport à l'exercice précédent, il demeure toujours négatif."; +$tabCommentaires[711000][2][10] = ", même s'il baisse par rapport à l'exercice précédent, il demeure toujours positif."; +$tabCommentaires[712000][2][10] = ". Cette amélioration fait passer le résultat d'exploitation en positif depuis le dernier exercice ({Rp[150]} {R[150]})."; +$tabCommentaires[713000][2][10] = ". Cette amélioration rétablit la marge d'exploitation détruite lors de l'exercice précédent ({Rp[150]} {R[150]})."; +$tabCommentaires[714000][2][10] = ". Cette amélioration rétablit la marge d'exploitation détruite lors de l'exercice précédent ({Rp[150]} {R[150]})."; +$tabCommentaires[715000][2][10] = ". Cette dégradation fait passer le résultat d'exploitation du dernier exercice en négatif ({Rp[150]} {R[150]})."; +$tabCommentaires[716000][2][10] = ". Cette dégradation détruit la marge d'exploitation de l'exercice."; +$tabCommentaires[717000][2][10] = ". Cette dégradation sensible détruit la marge d'exploitation de l'exercice."; +$tabCommentaires[718000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est faible."; +$tabCommentaires[719000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est satisfaisante."; +$tabCommentaires[719500][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est particulièrement élevée."; +$tabCommentaires[722000][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est faible. Ce taux de {R[523]} de rendement du capital investi, reste sous la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. D'ailleurs la rentabilité de l'entreprise est bien en dessous de la moyenne du secteur qui est à {+Rs[523]}."; +$tabCommentaires[722010][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est très faible. Ce taux de {R[523]} de rendement du capital investi, est très en dessous de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits, ni même le rendement d'un placement sur livret."; +$tabCommentaires[722020][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est plutot faible. Ce taux de {R[523]} de rendement du capital investi, reste sous la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. "; +$tabCommentaires[722200][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est satisfaisante. Ce taux de {R[523]} de rendement du capital investi, reste dans la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. A noter cependant que la rentabilité de l'entreprise se situe sous la moyenne du secteur qui est à {+Rs[523]}. "; +$tabCommentaires[722210][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est satisfaisante. Ce taux de {R[523]} de rendement du capital investi, reste dans la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. L'entreprise se comporte mieux que son marché puisque sa rentabilité se situe au dessus de la moyenne du secteur qui est à {Rs[523]}."; +$tabCommentaires[722220][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est satisfaisante. Ce taux de {R[523]} de rendement du capital investi, reste dans la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. "; +$tabCommentaires[722300][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est très bonne. Ce taux de {R[523]} de rendement du capital investi, montre l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. L'entreprise se comporte mieux que son marché puisque sa rentabilité se situe au dessus de la moyenne du secteur qui est à {Rs[523]}."; +$tabCommentaires[722310][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est très bonne. Ce taux de {R[523]} de rendement du capital investi, montre l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. L'entreprise se comporte moins bien que son marché puisque sa rentabilité se situe sous la moyenne du secteur qui est à {+Rs[523]}."; +$tabCommentaires[722320][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est très bonne. Ce taux de {R[523]} de rendement du capital investi, montre l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits."; +$tabCommentaires[722400][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), progresse d'une manière exceptionnelle. Ce taux de {R[523]} de rendement du capital investi, témoigne de l'efficacité à utiliser le capital pour générer ses profits. L'entreprise se comporte mieux que son marché puisque sa rentabilité se situe au dessus de la moyenne du secteur qui est à {+Rs[523]}. "; +$tabCommentaires[722410][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), progresse d'une manière exceptionnelle. Ce taux de {R[523]} de rendement du capital investi, témoigne de l'efficacité à utiliser le capital pour générer ses profits. L'entreprise se comporte moins bien que son marché hyper porteur puisque sa rentabilité se situe sous la moyenne du secteur qui est à {Rs[523]}."; +$tabCommentaires[722420][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), progresse d'une manière exceptionnelle. Ce taux de {R[523]} de rendement du capital investi, témoigne de l'efficacité à utiliser le capital pour générer ses profits. "; +$tabCommentaires[725100][2][10] = "(En revanche, le \"rendement de l'actif\", comme on appelle aussi la rentabilité financière, reste stable par rapport au {BILANDATEp} avec une évolution réduite de {Revol[523]}.)"; +$tabCommentaires[725200][2][10] = "(Le \"rendement de l'actif\", comme on appelle aussi la rentabilité financière, progresse par rapport au {BILANDATEp} avec une augmentation de {Revol[523]}.)"; +$tabCommentaires[725400][2][10] = "(Le \"rendement de l'actif\", comme on appelle aussi la rentabilité financière, diminue par rapport au {BILANDATEp} avec une baisse de {!Revol[523]}.)"; +$tabCommentaires[726000][2][10] = ". A noter cependant que la Rentabilité Commerciale (Résultat Net/CA) ne présente pas le même niveau de performance avec seulement un taux de {R[264]}."; +$tabCommentaires[726001][2][10] = ". A noter aussi que la Rentabilité Commerciale (Résultat Net/CA) ne présente pas le même niveau de performance avec seulement un taux de {R[264]}."; +$tabCommentaires[726002][2][10] = ". A noter aussi que la Rentabilité Commerciale (Résultat Net/CA) ne présente pas le même niveau de performance avec seulement un taux de {R[264]}."; +$tabCommentaires[731000][2][10] = "L'exercice {BILANANNEE} est profitable. D'un point de vue strictement financier, la distribution de dividendes s'élève à {R[535]} du capital investi. L'année précédente ce taux de distribution était de {Rp[535]}. En moyenne il est de {+Rs[535]} dans le secteur d'activité."; +$tabCommentaires[731100][2][10] = "L'exercice {BILANANNEE} est profitable. D'un point de vue strictement financier, la distribution de dividendes s'élève à {R[535]} du capital investi. L'année précédente ce taux de distribution était de {Rp[535]}."; +$tabCommentaires[731200][2][10] = "L'exercice {BILANANNEE} est profitable. D'un point de vue strictement financier, la distribution de dividendes s'élève à {R[535]} du capital investi."; +$tabCommentaires[731300][2][10] = "L'exercice {BILANANNEE} est profitable. Il n'y a pas de distribution de dividendes."; +$tabCommentaires[735010][2][1] = "
    Ci-dessous la comparaison des évolutions du Chiffre d'affaires et Résultat d'exploitation sur 12 mois."; +$tabCommentaires[735010][2][9] = "COULEUR(VER3,ROU2,JAU)"; +$tabCommentaires[735010][2][10] = "{GRAPH(\"Evolution du CA & Résultat Exploitation\",R[006]#H,R[017]#H)}"; +$tabCommentaires[735011][2][1] = "Dans la mesure où, dans le cas des holding, les comparaisons par rapport au CA sont peu significatives, nous préférons rapprocher les éléments aux Fonds Propres."; +$tabCommentaires[735011][2][2] = "
    Ci-dessous la comparaison des évolutions des Fonds Propres et Résultat Courant sur 12 mois."; +$tabCommentaires[735011][2][9] = "COULEUR(NOI2,JAU1,BLE1)"; +$tabCommentaires[735011][2][10] = "{GRAPH(\"Evolution des Fonds Propres & Résultat Courant\",R[070]#H,R[008]#H)}"; +$tabCommentaires[735012][2][1] = "Tenant compte du rôle de holding que tient l'entreprise, les comparaisons par rapport au CA seront peu significatives, nous préférons rapprocher les éléments aux Fonds Propres."; +$tabCommentaires[735012][2][2] = "
    Ci-dessous la comparaison des évolutions des Fonds Propres et Résultat Courant sur 12 mois."; +$tabCommentaires[735012][2][9] = "COULEUR(NOI2,JAU1,BLE1)"; +$tabCommentaires[735012][2][10] = "{GRAPH(\"Evolution des Fonds Propres & Résultat Courant\",R[070]#H,R[008]#H)}"; +$tabCommentaires[735100][2][0] = "Projection du CA sur 3 ans:"; +$tabCommentaires[735100][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit une tendance à la hausse de {CA_TAUX}.
    "; +$tabCommentaires[735110][2][10] = "L'ampleur de la progression est à relativiser car des opérations de fusion (dont la dernière le {ANNONCEFUSDATE}) ont dopé le Chiffre d'Affaires."; +$tabCommentaires[735111][2][10] = "L'ampleur de la progression est à relativiser car une fusion absoption intervenue le {ANNONCEFUSDATE}) a dopé le Chiffre d'Affaires."; +$tabCommentaires[735112][2][10] = "L'ampleur de la progression est à relativiser car des opérations de fusion ont dopé le Chiffre d'Affaires."; +$tabCommentaires[735200][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur un CA de {CA_Y[3]} en {BILANANNEE3} soit tendance à la baisse de {CA_TAUX}.
    "; +$tabCommentaires[735300][2][10] = "D'après les éléments financiers à notre disposition, nous avons avons procédé à une projection à 3 ans de la valeur du Chiffre d'Affaires. Notre estimation à 3 ans table sur une stabilité du CA avec une valeur de {CA_Y[3]} en {BILANANNEE3}.
    "; +$tabCommentaires[735500][2][9] = "COULEUR(VER3,ROU1,MET3)"; +$tabCommentaires[735500][2][10] = "{GRAPH(\"Evolution du CA et projection sur 3 ans\",R[006]#H,CA_Y#L)}"; +$tabCommentaires[735501][2][20] = "A noter que la dispersion des valeurs réduit la fiabilité de la projection avec un taux de {CA_COEF}."; +$tabCommentaires[735502][2][20] = "La fiabilité de la projection est plutôt bonne avec un taux de {CA_COEF}."; +$tabCommentaires[735503][2][20] = "Le coefficient de fiabilité de la projection est très élevé avec {CA_COEF}."; +$tabCommentaires[735511][2][10] = "Notre analyse prospective met en évidence de bonnes perpectives d'évolution positive sur 3 ans."; +$tabCommentaires[735512][2][10] = "Notre analyse prospective nous conduit à émettre des doutes quant à l'évolution de l'affaire sur les 3 années à venir."; +$tabCommentaires[735921][2][10] = "Projection du RCAI sur 3 ans:"; +$tabCommentaires[735921][2][11] = "En tant que HOLDING et d'après les éléments financiers à notre disposition, nous avons avons préféré procéder à une projection à 3 ans de la valeur du résultat plutôt que du Chiffre d'Affaires. Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3} soit une augmentation de {RCAI_TAUX}.
    "; +$tabCommentaires[735921][2][20] = "Le taux de pertinence de notre projection est de {RCAI_COEF}."; +$tabCommentaires[735922][2][0] = "Projection du RCAI sur 3 ans:"; +$tabCommentaires[735922][2][10] = "Selon la fonction de HOLDING et d'après les éléments financiers à notre disposition, nous avons avons préféré procéder à une projection à 3 ans de la valeur du Résultat avant Impôt plutôt que du Chiffre d'Affaires. Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3} soit une augmentation de {RCAI_TAUX}.
    "; +$tabCommentaires[735922][2][20] = "Le taux de pertinence de notre projection est de {RCAI_TAUX}."; +$tabCommentaires[735931][2][10] = "Projection du RCAI sur 3 ans:"; +$tabCommentaires[735931][2][11] = "En tant que HOLDING et d'après les éléments financiers à notre disposition, nous avons avons préféré procéder à une projection à 3 ans de la valeur du résultat plutôt que du Chiffre d'Affaires. Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3} soit une tendance baissière de {RCAI_TAUX}.
    "; +$tabCommentaires[735931][2][20] = "Le taux de pertinence de notre projection est de {RCAI_TAUX}."; +$tabCommentaires[735932][2][0] = "Projection du RCAI sur 3 ans:"; +$tabCommentaires[735932][2][10] = "Selon la fonction de HOLDING et d'après les éléments financiers à notre disposition, nous avons avons préféré procéder à une projection à 3 ans de la valeur du résultat plutôt que du Chiffre d'Affaires. Notre estimation à 3 ans table sur un Résultat Courant avant Impôts de {RCAI_Y[3]} en {BILANANNEE3} soit une tendance baissière de {RCAI_TAUX}.
    "; +$tabCommentaires[735932][2][20] = "Le taux de pertinence de notre projection est de {RCAI_TAUX}."; +$tabCommentaires[735950][2][9] = "COULEUR(JAU1,ROU1,MET3)"; +$tabCommentaires[735950][2][10] = "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}"; +$tabCommentaires[735951][2][20] = "A noter que la dispersion des valeurs réduit la fiabilité de la projection avec un taux de {RCAI_COEF}."; +$tabCommentaires[735952][2][20] = "La fiabilité de la projection est plutôt bonne avec un taux de {RCAI_COEF}."; +$tabCommentaires[735953][2][20] = "Le coefficient de fiabilité de la projection témoigne d'une forte corrélation avec {RCAI_COEF}."; +$tabCommentaires[735960][2][2] = "{GRAPH(\"Evolution du RCAI et projection sur 3 ans\",R[008]#H,RCAI_Y#L)}"; +$tabCommentaires[735960][2][9] = "COULEUR(JAU1,ROU1,MET3)"; +$tabCommentaires[735961][2][20] = "A noter que la dispersion des valeurs réduit la fiabilité de la projection avec un taux de {RCAI_COEF}."; +$tabCommentaires[735962][2][20] = "La fiabilité de la projection est plutôt bonne avec un taux de {RCAI_COEF}."; +$tabCommentaires[735963][2][20] = "Le coefficient de fiabilité de la projection témoigne d'une forte corrélation avec {RCAI_COEF}."; +$tabCommentaires[740000][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)"; +$tabCommentaires[740110][2][10] = "Le poids des capitaux fixes dans le patrimoine de la société (Immobilisations corporelles/Total bilan), est de {R[524]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[524]}."; +$tabCommentaires[740111][2][30] = ", et il augmente de {!Revol[524]} depuis {BILANANNEEp}."; +$tabCommentaires[740112][2][30] = ", bien qu'il se soit réduit de {!Revol[524]} depuis {BILANANNEEp}."; +$tabCommentaires[740115][2][30] = "A noter que le foncier, à lui seul, se monte à {R[311]} représentant {R[314]} du total bilan."; +$tabCommentaires[740160][2][10] = "Le poids des immobilisations incorporelles (concessions, les brevets, les frais de recherche et développement, les frais d’établissement, le fonds de commerce, le droit au bail), par rapport au total bilan, est de {R[554]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[554]}."; +$tabCommentaires[740161][2][30] = ", et il augmente de {!Revol[554]} depuis {BILANANNEEp}."; +$tabCommentaires[740162][2][30] = ", bien qu'il se soit réduit de {!Revol[554]} depuis {BILANANNEEp}."; +$tabCommentaires[740210][2][10] = "Le poids des immobilisations financières (par exemple des participations dans d'autres sociétés) par rapport à l'Actif total, est de {R[533]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[533]}."; +$tabCommentaires[740211][2][30] = ", et il augmente de {!Revol[533]} depuis {BILANANNEEp}."; +$tabCommentaires[740212][2][30] = ", bien qu'il se soit réduit de {!Revol[533]} depuis {BILANANNEEp}."; +$tabCommentaires[740220][2][10] = "On peut observer que les immobilisations financières produisent des revenus de {R[151]} à un taux anormalement élevé de {R[555]}, qui dope le résultat mais qui reste soumis à des aléas difficilement maîtrisables."; +$tabCommentaires[740221][2][30] = ". Lors de l'exercice précédent les produits financiers se montaient à {Rp[151]}."; +$tabCommentaires[740410][2][10] = "Le poids du stock par rapport à l'Actif total, est de {R[525]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[525]}."; +$tabCommentaires[740411][2][30] = ", et il augmente de {!Revol[525]} depuis {BILANANNEEp}."; +$tabCommentaires[740412][2][30] = ", bien qu'il se soit réduit de {!Revol[525]} depuis {BILANANNEEp}."; +$tabCommentaires[740610][2][10] = "La part des créances commerciales est de {R[211]} de l'Actif total. Il se peut que les délais de paiements accordés aux clients soient d'une durée anormale par rapport à ce qui se pratique généralement dans le secteur d'activité car la part des créances commerciales affiche un taux de {Rs[211]} de l'actif total sur le secteur."; +$tabCommentaires[740611][2][30] = ". La part a augmenté depuis {BILANANNEEp}, où elle était de {!Rp[211]}."; +$tabCommentaires[740612][2][30] = ". Pourtant la part s'est réduite depuis {BILANANNEEp}, où elle était de {!Rp[211]}."; +$tabCommentaires[740710][2][10] = "Il convient d'apporter une attention particulière à l'importance du poste \"Autres Créances\" d'une valeur de {R[062]} représentant {R[556]} de l'actif et dont la solvabilité est incertaine."; +$tabCommentaires[740810][2][10] = "
    La trésorerie est à {R[063]}. La part des disponibilités représente {R[526]} de l'actif total."; +$tabCommentaires[740811][2][30] = ", même si la part a augmenté depuis {BILANANNEEp}, où elle était de {!Rp[526]}."; +$tabCommentaires[740812][2][30] = ". La part s'est réduite depuis {BILANANNEEp}, où elle était de {!Rp[526]}."; +$tabCommentaires[740813][2][10] = "Il y a trop peu de liquidités."; +$tabCommentaires[740815][2][10] = "La trésorerie est négative avec {R[063]}, le déficit en numéraire représente {!R[526]} de l'actif total."; +$tabCommentaires[740818][2][10] = ". A noter que dans le secteur d'activité la part de disponibilité est de {Rs[526]} de l'actif."; +$tabCommentaires[740830][2][10] = "Quant à la trésorerie retraitée (FR-BFR), elle se monte à {R[226]} lors du dernier exercice."; +$tabCommentaires[740831][2][30] = ", en augmentation de {!Revol[226]}."; +$tabCommentaires[740832][2][30] = ", en diminution de {!Revol[226]}."; +$tabCommentaires[740833][2][30] = ", en très forte augmentation."; +$tabCommentaires[740834][2][30] = ", en très forte diminution."; +$tabCommentaires[740850][2][1] = "
    Ci-dessous l'évolution de la trésorerie et des fonds propres sur les dernières années."; +$tabCommentaires[740850][2][9] = "COULEUR(MET,NOI2,ROU)"; +$tabCommentaires[740850][2][10] = "
    {GRAPH(\"Trésorerie & Fonds propres \",R[226]#H,R[070]#H)}"; +$tabCommentaires[740851][2][30] = "La trésorerie est positive en {BILANANNEE} avec {+R[226]}."; +$tabCommentaires[740852][2][30] = "La trésorerie est négative en {BILANANNEE} avec {+R[226]}."; +$tabCommentaires[745010][2][0] = "

    Produit fiscal"; +$tabCommentaires[745010][2][1] = "

  • SIREN Waldec Objet social Budget
    {COLLEC_ASS_NOM[0]} {COLLEC_ASS_SIREN[0]} {COLLEC_ASS_WALDEC[0]}{COLLEC_ASS_OBJET[0]}{COLLEC_ASS_BUDGET[0]}
    {COLLEC_ASS_NOM[1]} {COLLEC_ASS_SIREN[1]} {COLLEC_ASS_WALDEC[1]}{COLLEC_ASS_OBJET[1]}{COLLEC_ASS_BUDGET[1]}
    {COLLEC_ASS_NOM[2]} {COLLEC_ASS_SIREN[2]} {COLLEC_ASS_WALDEC[2]}{COLLEC_ASS_OBJET[2]}{COLLEC_ASS_BUDGET[2]}
    {COLLEC_ASS_NOM[3]} {COLLEC_ASS_SIREN[3]} {COLLEC_ASS_WALDEC[3]}{COLLEC_ASS_OBJET[3]}{COLLEC_ASS_BUDGET[3]}
    {COLLEC_ASS_NOM[4]} {COLLEC_ASS_SIREN[4]} {COLLEC_ASS_WALDEC[4]}{COLLEC_ASS_OBJET[4]}{COLLEC_ASS_BUDGET[4]}
    "; +$tabCommentaires[745010][2][2] = ""; +$tabCommentaires[745010][2][10] = ""; +$tabCommentaires[745020][2][10] = ""; +$tabCommentaires[745030][2][10] = ""; +$tabCommentaires[745040][2][10] = ""; +$tabCommentaires[745121][2][10] = "- Le montant des impôts locaux par habitant a nettement baissé par rapport à {COLLANNEEp} où il était de {RHp[802]} par habitant, ({RQp[802]} du total)."; +$tabCommentaires[745122][2][10] = "- Le montant des impôts locaux par habitant a fortement augmenté par rapport à {COLLANNEEp} où il était de {RHp[802]} par habitant, ({RQp[802]} du total)."; +$tabCommentaires[745141][2][10] = "- La dotation Globale de Fonctionnement a nettement baissé par rapport à {COLLANNEEp} où elle était de {RHp[804]} par habitant, ({RQp[804]} du total)."; +$tabCommentaires[745142][2][10] = "- La dotation Globale de Fonctionnement a fortement augmenté par rapport à {COLLANNEEp} où elle était de {RHp[804]} par habitant, ({RQp[804]} du total)."; +$tabCommentaires[745210][2][0] = "

    Potentiel fiscal"; +$tabCommentaires[745210][2][1] = "

    année {COLLANNEE} Montant % des produits Moy de la strate Euro par habitant Moy de la strate
    Total des produits de fonctionnement {R[801]} 100 % {RH[801]}{RS[801]}
    - Dont Impôts locaux {R[802]} {RQ[802]} {RQ[802]} {RH[802]}{RS[802]}
    - Autres impôts & taxes {R[803]} {RQ[803]} {RQ[803]} {RH[803]}{RS[803]}
    - Dotation Globale de Fonctionnement {R[804]} {RQ[804]} {RQ[804]} {RH[804]}{RS[804]}
    "; +$tabCommentaires[745210][2][2] = ""; +$tabCommentaires[745210][2][10] = ""; +$tabCommentaires[745310][2][0] = "

    Pression fiscale"; +$tabCommentaires[745310][2][1] = "

    année {COLLANNEE} Montant Euro par habitant Moy de la strate
    Potentiel fiscal {COLLECHABITANT_NB} habitants {R[841]} {RH[801]}{RS[801]}
    "; +$tabCommentaires[745310][2][2] = ""; +$tabCommentaires[745320][2][10] = ""; +$tabCommentaires[745330][2][10] = ""; +$tabCommentaires[745340][2][10] = ""; +$tabCommentaires[745350][2][10] = ""; +$tabCommentaires[745360][2][10] = ""; +$tabCommentaires[745370][2][10] = ""; +$tabCommentaires[745371][2][10] = ""; +$tabCommentaires[750000][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)"; +$tabCommentaires[750020][2][10] = "On observera que les capitaux propres baissent de {!Revol[070]} pour passer de {Rp[070]} à {R[070]}, entre les deux derniers exercices."; +$tabCommentaires[750021][2][30] = ", cette baisse est dûe particulièrement, au prélèvement effectué sur la prime de fusion résultant des opérations des exercices antérieurs, qui se monte à {R[549]}, alors qu'elle était à {Rp[549]}."; +$tabCommentaires[750022][2][30] = ", cette baisse est dûe particulièrement, à l'absorption totale de la prime de fusion résultant des opérations des exercices antérieurs, et qui se montait à {Rp[549]}."; +$tabCommentaires[750110][2][10] = "La part de la dette Court terme par rapport au Passif total, est de {R[243]}. Elle est anormalement élevée par rapport à ce que l'on observe en moyenne dans le secteur d'activité qui a un taux de {Rs[243]} du Passif total."; +$tabCommentaires[750111][2][30] = ", et le financement par les dettes à Court Terme a encore augmenté depuis {BILANANNEEp}, où il était de {!Rp[243]}."; +$tabCommentaires[750112][2][30] = ", bien qu'elle se soit réduit depuis {BILANANNEEp}, où elle était de {!Rp[243]}."; +$tabCommentaires[750311][2][10] = "La part des dettes CT évolue nettement plus vite que celle des dettes à long ou moyen terme. Si l'entreprise continue à ce rythme on peut craindre pour son équilibre à terme."; +$tabCommentaires[750312][2][10] = "La part des dettes CT évolue plus vite que celle des dettes à long ou moyen terme. Une attention toute particulière doit être accordée à ce déséquilibre."; +$tabCommentaires[750410][2][10] = "Le risque de saturation des capitaux propres par les dettes est de {R[244]}."; +$tabCommentaires[750411][2][10] = ", Il atteint une valeur proche de 100% qui fait tendre la société vers une situation difficile."; +$tabCommentaires[750415][2][30] = ", et il a encore augmenté depuis {BILANANNEEp}, où il était de {!Rp[244]}."; +$tabCommentaires[750416][2][30] = ", pourtant il s'est réduit depuis {BILANANNEEp}, où il était de {!Rp[244]}."; +$tabCommentaires[750418][2][10] = "Dans le secteur d'activité il est en moyenne à un taux de {Rs[244]}."; +$tabCommentaires[750610][2][10] = "La couverture des charges fixes est insuffisante. Son taux ne dépasse pas {R[531]}."; +$tabCommentaires[750611][2][30] = ", bien qu'il se soit amélioré depuis {BILANANNEEp}, où il était de {!Rp[531]}."; +$tabCommentaires[750612][2][30] = ", il s'est dégradé depuis {BILANANNEEp}, où il était de {!Rp[531]}."; +$tabCommentaires[750710][2][10] = "Le ratio de financement des stocks est de {R[248]}. Il est anormalement élevé par rapport à ce que l'on observe en moyenne dans le secteur d'activité qui a un taux de {Rs[248]}."; +$tabCommentaires[750711][2][30] = ", et sa progression depuis {BILANANNEEp}, où il était de {!Rp[243]}, semble témoigner d'un allongement du délai de paiement aux fournisseurs."; +$tabCommentaires[750712][2][30] = ", bien qu'il se soit réduit depuis {BILANANNEEp}, où il était de {!Rp[243]}, sa hauteur semble témoigner d'un certain retrard de paiement aux fournisseurs."; +$tabCommentaires[750910][2][1] = "
    Le Fonds de Roulement est négatif, il crée un manque de financement de l'ACTIF IMMOBILISE, dont le complément doit être assuré par une partie des dettes CT."; +$tabCommentaires[750920][2][1] = "
    Le Fonds de Roulement est positif, le financement de l'ACTIF IMMOBILISE est entièrement couvert par des ressources stables, il permet de dégager un excédent de financement."; +$tabCommentaires[750930][2][1] = "
    Le Fonds de Roulement est nul, le financement de l'ACTIF IMMOBILISE est tout juste couvert par les ressources stables, il n'y a pas d'excédent de financement."; +$tabCommentaires[760000][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)"; +$tabCommentaires[760110][2][10] = "Le ratio de couverture du Besoin en Fonds de Roulement est de {R[234]}. Il est anormalement faible par rapport à l'état de la trésorerie du secteur d'activité qui a un taux de {Rs[234]}."; +$tabCommentaires[760111][2][30] = ", bien qu'il progresse depuis {BILANANNEEp}, où il était de {!Rp[234]}."; +$tabCommentaires[760112][2][30] = ", il s'est encore réduit depuis {BILANANNEEp}, où il était de {!Rp[234]}."; +$tabCommentaires[760160][2][10] = "Les resources stables ne financent les immobilisations qu'à {R[237]}. Le taux est anormalement faible, d'autant que dans le secteur d'activité il est de {Rs[237]}."; +$tabCommentaires[760161][2][30] = ", bien qu'il progresse depuis {BILANANNEEp}, où il était de {!Rp[237]}."; +$tabCommentaires[760162][2][30] = ", il s'est encore réduit depuis {BILANANNEEp}, où il était de {!Rp[237]}."; +$tabCommentaires[760260][2][10] = "Le financement des biens durables représente {R[238]} de CA. Comparé aux paiements clients dont le délai moyen est de {R[278]}, il est supérieur. (Son financement va faire appel à d'autres ressources qui devraient être stables)."; +$tabCommentaires[760261][2][30] = ". Il a augmenté depuis {BILANANNEEp}, où il était de {!Rp[238]} de CA."; +$tabCommentaires[760262][2][30] = ". Il s'est réduit depuis {BILANANNEEp}, où il était de {!Rp[238]} de CA."; +$tabCommentaires[760310][2][10] = "Le taux financement de {R[527]} est anormalement faible, alors que dans le secteur d'activité il est de {Rs[527]}. Tôt ou tard, il risque de contraindre à financer le manque à court terme."; +$tabCommentaires[760311][2][30] = ", bien qu'il ait progressé depuis {BILANANNEEp}, où il était de {!Rp[527]}."; +$tabCommentaires[760312][2][30] = ", il a baissé depuis {BILANANNEEp}, où il était de {!Rp[527]}."; +$tabCommentaires[760360][2][10] = "L'autonomie financière (fonds propres) de {R[510]} du total bilan, est anormalement faible, (dans le secteur d'activité elle est de {Rs[510]})."; +$tabCommentaires[760361][2][30] = ", bien qu'elle ait progressé depuis {BILANANNEEp}, où elle était de {!Rp[510]}."; +$tabCommentaires[760362][2][30] = ", elle a baissé depuis {BILANANNEEp}, où elle était de {!Rp[510]}."; +$tabCommentaires[760410][2][10] = "Le ratio de solvabilité (capitaux propres/dettes) est à {R[239]}. Il est anormalement faible, alors qu'on l'observe à {Rs[239]} dans le secteur d'activité."; +$tabCommentaires[760411][2][30] = ". Pourtant il a progressé depuis {BILANANNEEp}, où il était de {!Rp[239]}."; +$tabCommentaires[760412][2][30] = ". Il a baissé depuis {BILANANNEEp}, où il était de {!Rp[239]}."; +$tabCommentaires[760453][2][30] = "Le ratio Charges financières (Frais financiers/CA), mesurant la part de CA nécessaire au paiement des charges financières ne devrait pas être > à 4%, leur poids s'alourdit considérablement depuis le {BILANDATEp}, pour passer de {Rp[520]} à {R[520]}."; +$tabCommentaires[760454][2][30] = "Le ratio Charges financières (Frais financiers/CA), mesurant la part de CA nécessaire au paiement des charges financières ne devrait pas être > à 4%, leur poids s'allège considérablement depuis le {BILANDATEp}, pour passer de {Rp[520]} à {R[520]}."; +$tabCommentaires[760503][2][30] = "Le ratio Taux d'Intérêt apparent des crédits contractés (Frais financiers/Endettement global), témoignant du coût des dettes pour l'entreprise, à rapprocher au taux d'inflation, est en hausse très importante depuis le {BILANDATEp}, pour passer de {Rp[245]} à {R[245]}."; +$tabCommentaires[760504][2][30] = "Le ratio Taux d'Intérêt apparent des crédits contractés (Frais financiers/Endettement global), témoignant du coût des dettes pour l'entreprise, à rapprocher au taux d'inflation, est en baisse très importante depuis le {BILANDATEp}, pour passer de {Rp[245]} à {R[245]}."; +$tabCommentaires[760603][2][30] = "Le ratio Charges financières & crédit bail (Frais financiers+30% crédit bail/EBE), mesurant la part d'EBE nécessaire au paiement des charges financières en y incluant les opérations de crédit bail, augmente fortement depuis le dernier exercice pour dépasser une hausse de 500%."; +$tabCommentaires[760604][2][30] = "Le ratio Charges financières & crédit bail (Frais financiers+30% crédit bail/EBE), mesurant la part d'EBE nécessaire au paiement des charges financières en y incluant les opérations de crédit bail, se réduit significativement depuis le dernier exercice pour passer de {Rp[242]} à {R[242]}."; +$tabCommentaires[760608][2][30] = "Les Charges financières dépassent plus de la moitié du revenu total de l'emprunteur. Le financement a dépassé son maximum acceptable, il devient difficile d'envisager d'autres investissements."; +$tabCommentaires[760660][2][10] = "La capacité de remboursement (dettes bancaires /MBA) est à {R[247]}. Le durée de remboursement, en année, est anormalement élevée. Elle est supérieure au secteur d'activité où elle est généralement de {Rs[247]}."; +$tabCommentaires[760661][2][30] = ", elle a augmenté depuis {BILANANNEEp}, où elle était de {!Rp[247]}."; +$tabCommentaires[760662][2][30] = ", bien qu'elle se soit réduit depuis {BILANANNEEp}, où elle était de {!Rp[247]}."; +$tabCommentaires[760710][2][10] = "L'indépendance financière (capitaux propres/Capitaux permanents) est à {R[240]}. La proportion de fonds propres est trop faible, dans le secteur d'activité elle est plus élevée avec {Rs[240]}."; +$tabCommentaires[760711][2][30] = ". Pourtant elle est supérieure à l'exercice précédent, où elle était de {!Rp[240]}."; +$tabCommentaires[760712][2][30] = ". Elle a diminué depuis {BILANANNEEp}, où elle était de {!Rp[240]}."; +$tabCommentaires[761110][2][10] = "Le taux de marge brute d'exploitation (EBE) est à {R[506]} du CA. La performance (qu'on observe à {Rs[506]} dans le secteur d'activité), est insuffisante."; +$tabCommentaires[761111][2][30] = ", même si elle à progressé depuis l'exercice précédent, où elle était de {!Rp[506]}."; +$tabCommentaires[761112][2][30] = ", elle a baissé depuis {BILANANNEEp}, où elle était de {!Rp[506]}."; +$tabCommentaires[761210][2][10] = "Le taux de marge nette d'exploitation (résultat d'exploitattion) est à {R[507]} du CA. Il est faible, bien inférieur au secteur d'activité où il est à {Rs[507]}."; +$tabCommentaires[761211][2][30] = ". Pourtant il a augmenté depuis l'exercice précédent, où il était de {!Rp[507]}."; +$tabCommentaires[761212][2][30] = ", il a diminué depuis {BILANANNEEp}, où il était de {!Rp[507]}."; +$tabCommentaires[761310][2][10] = "La rentabilité de l'actif (résultat d'exploitation) à {R[522]} du Total Bilan semble peu élevée au regard de l'inflation et de ce qui se fait dans le secteur d'activité qui a un taux de {Rs[522]}."; +$tabCommentaires[761311][2][30] = ", bien qu'elle ait augmenté depuis l'exercice précédent, où elle était de {!Rp[522]}."; +$tabCommentaires[761312][2][30] = ", elle a diminué depuis {BILANANNEEp}, où elle était de {!Rp[522]}."; +$tabCommentaires[761410][2][10] = "La performance d'ensemble de l'entreprise (EBE) à {R[262]} du Total Bilan semble un peu faible, en outre, elle est inférieure à ce qui se fait dans le secteur d'activité qui affiche une performance moyenne de {Rs[262]}."; +$tabCommentaires[761411][2][30] = ", même si elle a augmenté depuis l'exercice précédent, où elle était de {Rp[262]}."; +$tabCommentaires[761412][2][30] = ", elle a diminué depuis {BILANANNEEp}, où elle était de {Rp[262]}."; +$tabCommentaires[761510][2][10] = "La rentabilité de l'avoir des actionnaires est à un taux de {R[543]}. Elle est faible au regard de l'inflation et du rendement moyen qu'on peut observer dans le secteur d'activité qui a un taux de {Rs[543]}."; +$tabCommentaires[761511][2][30] = ", bien qu'elle se soit amélioré depuis l'exercice précédent, où elle était de {!Rp[543]}."; +$tabCommentaires[761512][2][30] = ", elle a diminué depuis {BILANANNEEp}, où elle était de {!Rp[543]}."; +$tabCommentaires[761610][2][10] = "La rentabilité de l'avoir des actionnaires sur 3 ans est à un taux moyen de {R[557]}. Elle est faible au regard de l'inflation et du rendement moyen qu'on peut observer dans le secteur d'activité qui a un taux de {Rs[557]}."; +$tabCommentaires[761611][2][30] = ", bien qu'elle se soit améliorée depuis l'exercice précédent, où la moyenne s'établissait à {!Rp[557]}."; +$tabCommentaires[761612][2][30] = ", la moyenne a diminué depuis {BILANANNEEp}, où elle était de {!Rp[557]}."; +$tabCommentaires[761810][2][10] = "La part de valeur ajoutée contribuant au maintien et au développement de l'outil de production ou à la rémunération des capitaux propres semble faible avec un taux de {R[266]}. En outre elle est inférieure à ce qu'on observe dans le secteur d'activité qui a un taux de {Rs[266]}."; +$tabCommentaires[761811][2][30] = ", bien qu'elle ait augmenté depuis l'exercice précédent, où elle était à {!Rp[266]}."; +$tabCommentaires[761812][2][30] = ", elle a diminué depuis {BILANANNEEp}, où elle était de {!Rp[266]}."; +$tabCommentaires[762110][2][10] = "Le ratio de liquidité générale semble trop faible avec un taux de {R[251]} alors que le rapprochement des liquidités potentielles aux exigibilités potentielles est a un taux moyen de {Rs[251]} pour le secteur d'activité."; +$tabCommentaires[762111][2][30] = ". Pourtant il a augmenté depuis l'exercice précédent, où il était à {!Rp[251]}."; +$tabCommentaires[762112][2][30] = ". Il a diminué depuis {BILANANNEEp}, où il était de {!Rp[251]}."; +$tabCommentaires[762210][2][10] = "Le ratio de liquidité réduite avec un taux de {R[252]} ne semble pas suffisant pour couvrir un exigible à très court terme."; +$tabCommentaires[762310][2][10] = "Le ratio de liquidité immédiate avec un taux de {R[250]} ne semble pas suffisant pour couvrir un exigible à très court terme. Il y a risque de rupture de trésorerie."; +$tabCommentaires[762410][2][10] = "La trésorerie est particulièrement préoccupante avec seulement {R[226]}, elle ne semble pas suffisante pour couvrir un exigible à très court terme. Le risque de rupture est réel."; +$tabCommentaires[762411][2][10] = "La trésorerie est négative de {R[226]}, l'exigible à très court terme n'est pas couvert. La situation est particulièrement préoccupante, le risque de rupture est réel."; +$tabCommentaires[762412][2][10] = "La trésorerie est particulièrement préoccupante, elle ne semble pas suffisante pour couvrir un exigible à très court terme. Le risque de rupture est réel."; +$tabCommentaires[762413][2][10] = "Avec une trésorerie négative l'exigible à très court terme n'est pas couvert. La situation est particulièrement préoccupante, le risque de rupture est réel."; +$tabCommentaires[762415][2][30] = ". Pourtant elle a augmenté depuis l'exercice précédent, où elle était à {Rp[226]}."; +$tabCommentaires[762416][2][30] = ". Elle a diminué depuis {BILANANNEEp}, où elle était de {Rp[226]}."; +$tabCommentaires[762510][2][10] = "Les éléments les plus liquides de l'actif à court terme permettent de faire face aux déboursés quotidiens pendant {R[521]}. Ce délai ne couvre pas l'écart de temps entre les encaissement clients à {R[278]} et le délai moyen des paiements aux fournisseurs ({R[279]})."; +$tabCommentaires[762511][2][30] = ". L'intervalle défensif a augmenté, il était de {Rp[521]} en {BILANANNEEp}."; +$tabCommentaires[762512][2][30] = ". L'intervalle défensif a diminué, il était de {Rp[521]} en {BILANANNEEp}."; +$tabCommentaires[763110][2][10] = "La rentabilité d'exploitation (EBE/CA) à {R[268]} est nettement inférieure à la moyenne du secteur d'activité ({Rs[268]})."; +$tabCommentaires[763111][2][30] = ". Elle s'est amélioré depuis {BILANANNEEp} où elle était de {Rp[268]}."; +$tabCommentaires[763112][2][30] = ". Elle s'est déteriorée depuis {BILANANNEEp} où elle était de {Rp[268]}."; +$tabCommentaires[763113][2][30] = ", mais cette progression est une conséquence de l'accroissement du taux de marge commerciale."; +$tabCommentaires[763114][2][30] = ", les coûts d'exploitation se sont alourdis."; +$tabCommentaires[763160][2][10] = "Le rendement de l'équipement (Valeur Ajoutée rapportées aux immobilisations), semble faible, elle est nettement inférieure à la moyenne du secteur d'activité ({Rs[269]})."; +$tabCommentaires[763161][2][30] = ". Pourtant elle s'est améliorée depuis {BILANANNEEp} où elle était de {Rp[269]}."; +$tabCommentaires[763162][2][30] = ". Elle s'est déteriorée depuis {BILANANNEEp} où elle était de {Rp[269]}."; +$tabCommentaires[763210][2][10] = "La productivité de l'actif (Chiffre d'Affaires rapporté à l'actif), semble faible, elle est nettement inférieure à la moyenne du secteur d'activité ({Rs[271]})."; +$tabCommentaires[763211][2][30] = ". Pourtant elle s'est améliorée depuis {BILANANNEEp} où elle était de {Rp[271]}."; +$tabCommentaires[763212][2][30] = ". Elle s'est déteriorée depuis {BILANANNEEp} où elle était de {Rp[271]}."; +$tabCommentaires[763260][2][10] = "Les clients règlent en moyenne à {R[278]}. Le délai de paiement clients semble excessif, il est supérieur à ce que l'on peut observer dans le secteur d'activité avec une moyenne de {Rs[278]}."; +$tabCommentaires[763261][2][30] = ". Le DSO était moins élevé en {BILANANNEEp} avec {Rp[278]}."; +$tabCommentaires[763262][2][30] = ". Pourtant le DSO s'est amélioré depuis {BILANANNEEp} où il était de {Rp[278]}."; +$tabCommentaires[763310][2][10] = "Les fournisseurs sont réglés en moyenne à {R[279]}. Le délai de paiement aux fournisseurs semble un peu rapide, il est inférieur à ce que prévoit la loi LME relative au délai de paiements. Il est possible d'agir sur la trésorerie disponible en négociant des délais de paiement. Le délai moyen que l'on peut observer dans le secteur d'activité est de {Rs[279]}."; +$tabCommentaires[763311][2][30] = ". Le délai était plus rapide en {BILANANNEEp} où il était de {Rp[279]}."; +$tabCommentaires[763312][2][30] = ". Le délai était plus élevé en {BILANANNEEp} où il était de {Rp[279]}."; +$tabCommentaires[763320][2][10] = "Les fournisseurs sont réglés en moyenne à {R[279]}. Le délai de paiement aux fournisseurs semble un peu élevé, il est largement supérieur à ce que prévoit la loi LME relative au délai de paiements. Il y a un risque que ces délais se contractent sous la pression des fournisseurs. Le délai moyen que l'on peut observer dans le secteur d'activité est de {Rs[279]}."; +$tabCommentaires[763321][2][30] = ". Il a augmenté depuis {BILANANNEEp} où il était de {Rp[279]}."; +$tabCommentaires[763322][2][30] = ". Pourtant, il a baissé depuis {BILANANNEEp} où il était de {Rp[279]}."; +$tabCommentaires[763360][2][10] = "Le Poids de la masse salariale (Charges de personnel/VA) de {R[544]} par employé, semble faible. Calculé en pourcentage de la Valeur Ajoutée, il est à un taux de {R[281]} de la VA. La Valeur Ajoutée par salarié du secteur d'activité est en moyenne de {Rs[544]}."; +$tabCommentaires[763361][2][30] = ". Et ce, même si la valeur répartie s'est améliorée, car elle était plus faible en {BILANANNEEp} avec {Rp[544]} par employé."; +$tabCommentaires[763362][2][30] = ". La valeur répartie était plus élevée en {BILANANNEEp} avec {Rp[544]} par employé."; +$tabCommentaires[763510][2][10] = "La rotation des stocks de {R[277]}, est inférieure à ce qui est observé dans le secteur d'activité où elle est en moyenne de {Rs[277]}."; +$tabCommentaires[763511][2][30] = ". Elle était encore plus faible en {BILANANNEEp} avec {Rp[277]}."; +$tabCommentaires[763512][2][30] = ". Elle était plus élevée en {BILANANNEEp} avec {Rp[277]}."; +$tabCommentaires[763515][2][10] = "Il y a peut être des actions à mener sur le plan des pratiques d'achat et de gestion des stocks."; +$tabCommentaires[763560][2][10] = "Le taux de renouvellement des immobilisations semble un peu faible, une forte proportion des immobilisations sont déjà amorties ({R[280]}). Dans le secteur d'activité, l'amortissement est en moyenne de {Rs[280]}."; +$tabCommentaires[763561][2][30] = ". En {BILANANNEEp} le taux était nettement plus faible ({Rp[280]}), un important effort d'amortissement a été fait sur {BILANANNEE}."; +$tabCommentaires[763562][2][30] = ". Le taux était encore plus élevé en {BILANANNEEp} ({Rp[280]}), les investissements qui accusaient un certain retard ont repris."; +$tabCommentaires[763565][2][10] = ". L'obsolescence d'investissements trop anciens non renouvelés pourrait poser problème à l'avenir."; +$tabCommentaires[763610][2][10] = "Le Ratio de valeur ajoutée (VA/CA), indiquant le degré d'intégration (une entreprise intégrée fait peu appel à l'extérieur), avec un taux de {R[505]}, est nettement inférieur à la moyenne du secteur d'activité, où il est de {Rs[505]}."; +$tabCommentaires[763611][2][10] = "Le Ratio de valeur ajoutée (VA/CA), indiquant le degré d'intégration (une entreprise intégrée fait peu appel à l'extérieur), avec un taux de {R[505]}, est largement supérieur à la moyenne du secteur d'activité, où il est de {Rs[505]}."; +$tabCommentaires[763621][2][30] = ". En {BILANANNEEp} le taux d'intégration était nettement plus faible ({Rp[505]}), l'entreprise semble moins faire appel aux ressources de production externes."; +$tabCommentaires[763622][2][30] = ". Le taux d'intégration a baissé depuis {BILANANNEEp} avec {Rp[505]}, l'entreprise semble avoir accentué son recours à la sous-traitance ou aux ressources de productions externes."; +$tabCommentaires[763631][2][10] = "Le poste Sous traitance et Personnel extérieur a augmenté sensiblement (accroissement de {Revol[315]}) depuis {BILANANNEEp}. Comparé à la masse salariale, il en représentait {Rp[316]} lors de l'exercice précédent, alors qu'il se situe maintenant à {R[316]}."; +$tabCommentaires[763632][2][10] = "Le poste Sous traitance et Personnel extérieur a décru sensiblement (baisse de {!Revol[315]}) depuis {BILANANNEEp}. Comparé à la masse salariale, il en représentait {Rp[316]} lors de l'exercice précédent, alors qu'il se situe maintenant à {R[316]}."; +$tabCommentaires[770000][2][0] = "

    Etat de la dette"; +$tabCommentaires[770000][2][1] = "

    année {COLLANNEE} Montant taux % Moy de la strate Euro par habitant Moy de la strate
    - Taxe d'habitation (y compris THLV) {R[836]} {RQ[836]} {RT[836]} {RH[836]}{RS[836]}
    - Taxe foncière sur les propriétés bâties {R[837]} {RQ[837]} {RT[837]} {RH[837]}{RS[837]}
    - Taxe foncière sur les propriétés non bâties {R[838]} {RQ[838]} {RT[838]} {RH[838]}{RS[838]}
    - Compensation relais 2010 {R[839]} {RQ[839]} {RT[839]} {RH[839]}{RS[839]}
    - Cotisation foncière des entreprises au profit de l'état {R[840]} {RQ[840]} {RT[840]} {RH[840]}{RS[840]}
    Potentiel fiscal {R[841]} {RQ[841]} {RT[841]} {RH[841]} {RS[841]}
    - Coefficient de mobilisation du potentiel fiscal {R[851]}
    "; +$tabCommentaires[770000][2][2] = ""; +$tabCommentaires[770010][2][10] = ""; +$tabCommentaires[770012][2][10] = ""; +$tabCommentaires[770030][2][10] = ""; +$tabCommentaires[770031][2][10] = ""; +$tabCommentaires[770040][2][10] = ""; +$tabCommentaires[770050][2][10] = ""; +$tabCommentaires[770051][2][10] = ""; +$tabCommentaires[770060][2][10] = ""; +$tabCommentaires[770061][2][10] = ""; +$tabCommentaires[770100][2][0] = "

    Analyse des charges"; +$tabCommentaires[770100][2][1] = "

    année {COLLANNEE} Ratio Observations
    Endettement par habitant {RH[829]}
    Endettement par habitant {RH[829]} Si ce ratio a une signification limitée, à noter cependant, qu'il est largement supérieur à la moyenne de la strate ({RS[829]})
    Annuité/recettes réelles de fonctionnement(total recettes) {RQ[830]}
    Annuité/recettes réelles de fonctionnement(total recettes) {RQ[830]} Ce ratio présente un très fort effet d'inertie, il faut plusieurs années pour le dégrader mais aussi pour le ramener à la normale. La norme est de l'ordre de 19%. La moyenne de la strate le situe à {RT[830]}.
    Annuité/recettes fiscales de fonctionnement {RQ[861]}
    Ratio de surendettement (en-cours de la dette/produits de fonctionnement) {RQ[829]}
    Ratio de surendettement (en-cours de la dette/produits de fonctionnement) {RQ[829]} Indique les marges de manœuvre pour les années à venir. Le seuil d'alerte est à 121 %
    Durée d'extinction de la dette (dette/épargne brute) {R[863]}
    Durée d'extinction de la dette (dette/épargne brute) {R[863]} Pour les communes de plus de 10 000 hab , la durée moyenne d ’extinction de la dette est de 5,8 années.
    "; +$tabCommentaires[770100][2][2] = ""; +$tabCommentaires[770110][2][10] = ""; +$tabCommentaires[770120][2][10] = ""; +$tabCommentaires[770130][2][10] = ""; +$tabCommentaires[770140][2][10] = ""; +$tabCommentaires[770150][2][10] = ""; +$tabCommentaires[770210][2][1] = "Le résultat comptable de l'année {COLLANNEE} est déficitaire de {!R[811]} ({!R[876]} des recettes de fonctionnement)."; +$tabCommentaires[770211][2][1] = ", ce qui représente {!RH[811]} par habitant."; +$tabCommentaires[770221][2][1] = "Pour une commune de moins de 20.000 habitants, ce déficit dépassant 10% des produits de fonctionnement, entre dans le cadre de l’article L. 1612-14 du C.G.C.T."; +$tabCommentaires[770222][2][1] = "Pour une commune de plus de 20.000 habitants, ce déficit dépassant 5% des produits de fonctionnement, entre dans le cadre de l’article L. 1612-14 du C.G.C.T."; +$tabCommentaires[770300][2][0] = "

    Service rendu"; +$tabCommentaires[770300][2][1] = "

    année {COLLANNEE} Ratio Observations
    Poids du personnel {RQ[806]} Ce ratio ne tient pas compte du personnel employé par les associations. (Moyenne de la strate: {RT[806]})
    Rigidité structurelle (frais de personnel + annuité de la dette/ Produits de fonctionnement) {R[872]} Dépenses incompressibles auxquelles on doit faire face. Le seuil d'alerte est à 65 %
    Coefficient d'autofinancement courant (charges de fonctionnement + remboursement de la dette)/ produits de fonctionnement) {R[873]} Possibilité de financer, une fois payé l'ensemble des dépenses courantes, des opérations plus importantes. Le seuil d'alerte est à 100%.
    Coefficient d'autofinancement brut (Autofinancement brut/produits de fonctionnement) {RQ[827]} Ce ratio peut être influencé par des paramètres comptables; inscription de travaux en régie, prise en compte des reports et surtout affectation de charges de fonctionnement en investissement. Il est de l'ordre de 14% mais il présente un forte distorsion entre les villes de plus de 10000 habitants (ratio de 11%) et les petites communes (ratio voisin de 18%).
    Taux d'autofinancement de l'investissement (Epargne nette après remboursement de l'annuité en capital)/ Dépense d'équipement brut) {R[875]} Ce ratio peut être faussé selon la technique de prise en compte de l'amortissement en capital. (moyenne nationale : 19%)
    "; +$tabCommentaires[770300][2][2] = ""; +$tabCommentaires[770310][2][10] = ""; +$tabCommentaires[770320][2][10] = ""; +$tabCommentaires[770330][2][10] = ""; +$tabCommentaires[770500][2][0] = "

    Evolutions"; +$tabCommentaires[770510][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770510][2][20] = "{GRAPH(\"Impôts locaux & dotations dans les produits de fonctionnement\",R[801]#H,R[802]#L,R[804]#L)}"; +$tabCommentaires[770512][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770512][2][20] = "{GRAPH(\"Evolution des taux de la fiscalité directe locale\",RQ[836]#L,RQ[837]#L,RQ[838]#L)}"; +$tabCommentaires[770520][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770520][2][20] = "{GRAPH(\"Charges de personnel & subventions versées dans les charges de fonctionnement\",R[805]#H,R[806]#L,R[810]#L)}"; +$tabCommentaires[770530][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770530][2][20] = "{GRAPH(\"Evolution des Produits & charges de fonctionnement\",R[801]#H,R[805]#H)}"; +$tabCommentaires[770540][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770540][2][20] = "{GRAPH(\"Encours de la dette, annuités & charges financières\",R[829]#H,R[830]#L,R[808]#L)}"; +$tabCommentaires[770550][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770550][2][20] = "{GRAPH(\"Evolution de l'annuité de la dette face aux produits de fonctionnement\",R[801]#L,R[830]#L)}"; +$tabCommentaires[770560][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[770560][2][20] = "{GRAPH(\"Evolution de l'encours total de la dette & du résultat global\",R[829]#H,R[825]#L)}"; +$tabCommentaires[820010][2][10] = "La Capacité d'Autofinancement (MBA/Actif brut), indiquant dans quelle mesure l'entreprise peux renouveller son outil de production, semble un peu faible avec un taux de {R[517]}. Dans le secteur d'activité, le degré de renouvellement est en moyenne de {Rs[517]}. Rapportée aux ventes, elle représente {R[503]} du Chiffre d'Affaires."; +$tabCommentaires[820011][2][30] = ". En {BILANANNEEp} la capacité d'autofinancement rapportée aux ventes, {Rp[503]} du Chiffre d'Affaires, était nettement plus faible."; +$tabCommentaires[820012][2][30] = ". En {BILANANNEEp} la capacité d'autofinancement rapportée aux ventes, {Rp[503]} du Chiffre d'Affaires, était plus élevée."; +$tabCommentaires[820110][2][10] = "La Capacité d'Autofinancement (MBA/Actif brut), indiquant dans quelle mesure l'entreprise peux renouveller son outil de production, est négative. Dans le secteur d'activité, le degré de renouvellement est en moyenne de {Rs[517]}. Rapportée aux ventes, le manque représente {!R[503]} du Chiffre d'Affaires."; +$tabCommentaires[820111][2][30] = ". En {BILANANNEEp} la capacité d'autofinancement rapportée aux ventes, {Rp[503]} du Chiffre d'Affaires, était encore plus faible."; +$tabCommentaires[820112][2][30] = ". En {BILANANNEEp} la capacité d'autofinancement rapportée aux ventes, {Rp[503]} du Chiffre d'Affaires, était plus élevée."; +$tabCommentaires[820115][2][10] = "L'entreprise n'est pas en mesure de renouveller son outil de production et ne peut assumer seule sa politique d'investissement."; +$tabCommentaires[830010][2][0] = "Nous observons que les capitaux propres sont inférieurs à plus de la moitié du capital social. Cette situation place l'entreprise sous le régime prévu aux articles L 68, L 241, L 251 et L 262 et annexes du code de commerce."; +$tabCommentaires[830012][2][10] = "L'entreprise a procédé à la convocation des actionnaires et a statué sur le fait qu'il n'y avait pas lieu de dissoudre la société et a publié sa décision le {ANNONCEDISSONONDATE}."; +$tabCommentaires[830013][2][11] = "L'entreprise a procédé à la convocation des actionnaires et a statué sur le fait qu'il y avait lieu de dissoudre la société et a publié sa décision de dissolution {ANNONCEDISSODATE}."; +$tabCommentaires[830018][2][10] = "L'entreprise doit convoquer les actionnaires dans les quatre mois qui suivent l'approbation des comptes faisant apparaître la perte responsable de l'évènement afin de décider s'il y a lieu de dissoudre la société (Ce délai peut exceptionnellement être porté à 6 mois par le tribunal)."; +$tabCommentaires[830018][2][11] = "Si la dissolution est écartée, les actionnaires ont l'obligation de reconstituer le capital dans les deux ans de la décision."; +$tabCommentaires[830110][2][0] = "Nous observons que les capitaux propres sont inférieurs à plus de la moitié du capital social. Les dispositions légales prévues aux articles L 68, L 241, L 251 et L 262 ne s'appliquent pas à ce type de forme juridique."; +$tabCommentaires[830110][2][10] = "Il n'en reste pas moins que cette situation cause un grave déséquilibre à la situation financière de cette entreprise."; +$tabCommentaires[830110][2][11] = "En tout état de cause et en l'état de la situation des capitaux propres, il est clair que la situation financière de l'entreprise est préoccupante."; +$tabCommentaires[1300100][2][0] = "
    TABLEAU DE FLUX {BILANANNEE}
    "; +$tabCommentaires[1300101][2][1] = "

    année {COLLANNEE} Ratio Observations
    Niveau de service rendu (dépenses de fonctionnement/ Population) {RH[805]} Ce ration vise à mesurer le \"train de vie\" de la collectivité. Il devra être relativisé par la prise en compte des charges \"débugetisées\" c'est-à-dire exposées par des bugets de structures satellites. (Moyenne de la strate: {RS[805]})
    Niveau d'équipement (dépenses d'équipement/ Population) {RH[818]} Mesure de l'effort d'équipement. (Moyenne de la strate: {RS[818]})
    Participation de l'état (Dotation globale de fonctionnement/ Population) {RH[804]} (Moyenne de la strate: {RS[804]})
    "; +$tabCommentaires[1300200][2][2] = ""; +$tabCommentaires[1300201][2][10] = ""; +$tabCommentaires[1300202][2][10] = ""; +$tabCommentaires[1300209][2][10] = ""; +$tabCommentaires[1300301][2][10] = ""; +$tabCommentaires[1300302][2][10] = ""; +$tabCommentaires[1300309][2][10] = ""; +$tabCommentaires[1300400][2][10] = ""; +$tabCommentaires[1300401][2][10] = ""; +$tabCommentaires[1300402][2][10] = ""; +$tabCommentaires[1300403][2][10] = ""; +$tabCommentaires[1300404][2][10] = ""; +$tabCommentaires[1300405][2][10] = ""; +$tabCommentaires[1300409][2][10] = ""; +$tabCommentaires[1300500][2][2] = ""; +$tabCommentaires[1300501][2][10] = ""; +$tabCommentaires[1300502][2][10] = ""; +$tabCommentaires[1300503][2][10] = ""; +$tabCommentaires[1300504][2][10] = ""; +$tabCommentaires[1300505][2][10] = ""; +$tabCommentaires[1300506][2][10] = ""; +$tabCommentaires[1300509][2][10] = ""; +$tabCommentaires[1300600][2][2] = ""; +$tabCommentaires[1300601][2][10] = ""; +$tabCommentaires[1300602][2][10] = ""; +$tabCommentaires[1300609][2][10] = ""; +$tabCommentaires[1300709][2][10] = ""; +$tabCommentaires[1300809][2][10] = ""; +$tabCommentaires[1300810][2][10] = ""; +$tabCommentaires[1300900][2][2] = ""; +$tabCommentaires[1300901][2][10] = ""; +$tabCommentaires[1300902][2][10] = ""; +$tabCommentaires[1300909][2][10] = ""; +$tabCommentaires[1301701][2][10] = ""; +$tabCommentaires[1301702][2][10] = ""; +$tabCommentaires[1301801][2][10] = ""; +$tabCommentaires[1301802][2][10] = ""; +$tabCommentaires[1500100][2][10] = "Ci dessous la comparaison, en jours, des rotations clients, Fournisseurs et stocks."; +$tabCommentaires[1500100][2][11] = "Le graphique met en évidence les cycles inérants à l'activité de l'entreprise et par conséquent les besoins de financement court terme engendrés:"; +$tabCommentaires[1500100][2][13] = "
  • Avec la Rotation fournisseurs (degré d'exigibilité des dettes fournisseurs) exprimée en jours d'achat HT. (l'entreprise règle ses fournisseurs en moyenne en x jours)"; +$tabCommentaires[1500100][2][14] = "
  • Avec la Rotation des stocks (degré de désuétude des stocks) exprimée en jours de production HT. (les stocks sont consommés en moyenne en x jours)"; +$tabCommentaires[1500100][2][16] = "
  • Avec la Rotation clients (politique de crédit et de recouvrement) exprimée en jours de CA TTC. (les clients règlent en moyenne en x jours)"; +$tabCommentaires[1500100][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[1500100][2][20] = "{GRAPH(\"Rotations Clients, Fournisseurs, Stocks\",R[278]#L,R[279]#L,R[277]#L)}"; +$tabCommentaires[1500110][2][10] = "Ci dessous la comparaison, en jours, des rotations clients et Fournisseurs."; +$tabCommentaires[1500110][2][11] = "Le graphique met en évidence les cycles inérants à l'activité de l'entreprise et par conséquent les besoins de financement court terme engendrés, avec la Rotation fournisseurs (degré d'exigibilité des dettes fournisseurs), en jours d'achat HT, et la Rotation clients (politique de crédit et de recouvrement) exprimée en jours de CA TTC."; +$tabCommentaires[1500110][2][19] = "COULEUR(MET2,VER2,JAU2)"; +$tabCommentaires[1500110][2][20] = "{GRAPH(\"Rotations Clients & Fournisseurs\",R[278]#L,R[279]#L)}"; +$tabCommentaires[2400101][2][10] = "L'entreprise se situe à la 1ere place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}."; +$tabCommentaires[2400102][2][10] = "L'entreprise se situe à la {MARCHEPLACE}eme place dans un marché dont la taille est estimée à {MARCHE} et qui progresse de {!MARCHEVOL}."; +$tabCommentaires[2400103][2][10] = "L'entreprise se situe à la 1ere place dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400104][2][10] = "L'entreprise se situe à la {MARCHEPLACE}eme place dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400109][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400111][2][10] = "L'entreprise se situe à la 1ere place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}."; +$tabCommentaires[2400112][2][10] = "L'entreprise se situe à la {MARCHEPLACE}eme place dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {!MARCHEVOL}."; +$tabCommentaires[2400119][2][10] = "L'entreprise se situe dans un marché dont la taille est estimée à {MARCHE} et qui régresse de {MARCHEVOL}."; +$tabCommentaires[2400121][2][10] = "L'entreprise se situe à la 1ere place dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400122][2][10] = "L'entreprise se situe à la {MARCHEPLACE}eme place dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400123][2][10] = "L'entreprise figure parmi les 200 premières affaires dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400124][2][10] = "L'entreprise figure parmi les 500 premières affaires dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400125][2][10] = "L'entreprise figure parmi les 1000 premières affaires dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400126][2][10] = "L'entreprise figure parmi les 2000 premières affaires dans un marché dont la taille est estimée à {MARCHE}."; +$tabCommentaires[2400200][2][10] = ", elle en représente {MARCHEPART}, et sa part de marché évolue favorablement de {MARCHEPARTEVOL}."; +$tabCommentaires[2400210][2][10] = ", elle en représente {MARCHEPART}, et sa part de marché évolue défavorablement de {MARCHEPARTEVOL}."; +$tabCommentaires[2400300][2][10] = "Part conséquent on peut dire que le volume de son marché se developpe de {MARCHEVOLUMEVOL}."; +$tabCommentaires[2400310][2][10] = "Part conséquent on peut dire que le volume de son marché diminue de {MARCHEVOLUMEVOL}."; +$tabCommentaires[2400410][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés pour {MARCHENBENT} entreprises."; +$tabCommentaires[2400420][2][10] = "A noter qu'en termes d'emplois, le marché dans son ensemble représente plus de {MARCHESAL} salariés."; +$tabCommentaires[2400430][2][10] = "A noter que le marché dans son ensemble représente plus de {MARCHENBENT} entreprises."; +$tabCommentaires[2400500][2][10] = "Ci-dessous, les listes des 10 premières en termes de CA et de rentabilité (Résultat exploitation/CA):"; +$tabCommentaires[2400501][2][0] = "
  • ACTIVITE
    Chiffre d'affaires HT & autres produits d'exploitation {R[561]}
    -Variation des créances clients & autres créances d'exploitation {R[562]}
    =Recettes d'exploitation (a){R[563]}
    Achats & autres charges d'exploitation {R[564]}
    -Variation des dettes fournisseurs & autres dettes d'exploitation {R[565]}
    =Dépenses d'exploitation (b){R[566]}
    =Excédent de Trésorerie d'Exploitation (ETE) (a-b){R[567]}
    +Flux liés aux opérations hors exploitation {R[568]}
    -Intérêts bancaires {R[569]}
    -Impôts sur les bénéfices {R[570]}
    -Flux affectés à la participation des salariés {R[571]}
    -Dividendes versés {R[572]}
    =Flux de trésorerie interne (A){R[573]}
    INVESTISSEMENT
    Investissements d'exploitation hors production immobilisée {R[574]}
    +Acquisition de participations & autres titres immobilisés {R[575]}
    + Variation des autres actifs immobilisés hors charges à répartir {R[576]}
    - Subventions d'investissement reçues {R[577]}
    - Variation des dettes sur immobilisations {R[578]}
    - Encaissements sur cessions d'immobilisations {R[579]}
    =Flux d'investissement (I) {R[580]}
    FINANCEMENT
    Augmentation-Réduction de capital {R[581]}
    -Variation des créances sur capital appelé non versé {R[582]}
    =Flux du capital (C) {R[583]}
    =Variation des emprunts (D) {R[586]}
    =Variation de la trésorerie du passif (E) {R[589]}
    =Flux du financement (F)=(C)+(D)+(E) {R[590]}
    VARIATION DE TRESORERIE D'ACTIF
    Variation du disponible {R[591]}
    Variation des valeurs mobilières de placement {R[592]}
    =Variation de la trésorerie d'actif = (A)-(I)+(F) {R[593]}
    Nouveaux emprunts bancaires ou financiers {R[584]}
    -Remboursements d'emprunts {R[585]}
    Variation des crédits bancaires courants {R[587]}
    +Variation des créances cédées non échues {R[588]}
    "; +$tabCommentaires[2400501][2][2] = ""; +$tabCommentaires[2400510][2][10] = ""; +$tabCommentaires[2400511][2][10] = ""; +$tabCommentaires[2400512][2][10] = ""; +$tabCommentaires[2400513][2][10] = ""; +$tabCommentaires[2400514][2][10] = ""; +$tabCommentaires[2400515][2][10] = ""; +$tabCommentaires[2400516][2][10] = ""; +$tabCommentaires[2400517][2][10] = ""; +$tabCommentaires[2400518][2][10] = ""; +$tabCommentaires[2400519][2][10] = ""; +$tabCommentaires[2400601][2][0] = "
    LES 10 plus gros CA SIRENMontant CA
    {MARCHE_CA_NOM[0]}{MARCHE_CA_SIREN[0]}{MARCHE_CA_MT[0]}
    {MARCHE_CA_NOM[1]}{MARCHE_CA_SIREN[1]}{MARCHE_CA_MT[1]}
    {MARCHE_CA_NOM[2]}{MARCHE_CA_SIREN[2]}{MARCHE_CA_MT[2]}
    {MARCHE_CA_NOM[3]}{MARCHE_CA_SIREN[3]}{MARCHE_CA_MT[3]}
    {MARCHE_CA_NOM[4]}{MARCHE_CA_SIREN[4]}{MARCHE_CA_MT[4]}
    {MARCHE_CA_NOM[5]}{MARCHE_CA_SIREN[5]}{MARCHE_CA_MT[5]}
    {MARCHE_CA_NOM[6]}{MARCHE_CA_SIREN[6]}{MARCHE_CA_MT[6]}
    {MARCHE_CA_NOM[7]}{MARCHE_CA_SIREN[7]}{MARCHE_CA_MT[7]}
    {MARCHE_CA_NOM[8]}{MARCHE_CA_SIREN[8]}{MARCHE_CA_MT[8]}
    {MARCHE_CA_NOM[9]}{MARCHE_CA_SIREN[9]}{MARCHE_CA_MT[9]}
    "; +$tabCommentaires[2400601][2][2] = ""; +$tabCommentaires[2400610][2][10] = ""; +$tabCommentaires[2400611][2][10] = ""; +$tabCommentaires[2400612][2][10] = ""; +$tabCommentaires[2400613][2][10] = ""; +$tabCommentaires[2400614][2][10] = ""; +$tabCommentaires[2400615][2][10] = ""; +$tabCommentaires[2400616][2][10] = ""; +$tabCommentaires[2400617][2][10] = ""; +$tabCommentaires[2400618][2][10] = ""; +$tabCommentaires[2400619][2][10] = ""; +$tabCommentaires[2400701][2][10] = "Du point de vue de son influence régionale {NOMEN} se classe à la 1ere place de son département."; +$tabCommentaires[2400702][2][10] = "Du point de vue de son influence régionale {NOMEN} se classe à la {MARCHEPLACE_DEP}eme place de son département."; +$tabCommentaires[2401101][2][10] = "Durant les 3 dernières années, {MARCHEPUBLIC3_NB} appels d'offres de marchés publics ont été remportés, pour un montant cumulé de {MARCHEPUBLIC3_MT} représentant {MARCHEPUBLIC3_POURC} de la moyenne du chiffre d'affaires."; +$tabCommentaires[2401201][2][10] = "Durant les 3 dernières années, {MARCHEPUBLIC3_NB} appels d'offres de marchés publics ont été remportés, pour un montant cumulé de {MARCHEPUBLIC3_MT}."; +$tabCommentaires[2401301][2][10] = "Au cours des 3 dernières années, les marchés publics remportés représentent {MARCHEPUBLIC3_POURC} du chiffre d'affaires moyen."; +$tabCommentaires[2401401][2][10] = "Durant les 3 dernières années, {MARCHEPUBLIC3_NB} appels d'offres de marchés publics ont été remportés."; +$tabCommentaires[2401500][2][10] = "Le plus important a pour objet :"; +$tabCommentaires[2401501][2][10] = "Le plus important, en date du {MARCHEPUBLICDER_DATE}, à pour objet :"; +$tabCommentaires[2401502][2][10] = "Le plus important, attribué en {MARCHEPUBLICDER_ANNEE}, a pour objet :"; +$tabCommentaires[2401509][2][10] = "\"{MARCHEPUBLICDER_OBJ}\""; +$tabCommentaires[2401511][2][10] = "Le plus important marché date du {MARCHEPUBLICDER_DATE}."; +$tabCommentaires[2401512][2][10] = "Le plus important a été attribué en {MARCHEPUBLICDER_ANNEE}."; +$tabCommentaires[2401601][2][10] = "Montant du marché : {MARCHEPUBLICDER_MT}."; +$tabCommentaires[2401701][2][10] = "Acheteur émetteur de l'offre : {MARCHEPUBLICDER_CLI}."; +$tabCommentaires[2401801][2][10] = "Durant les 3 dernières années, {MARCHEPUBLICAPP3_NB} appels d'offres de marchés publics ont été soumis, pour un montant cumulé de {MARCHEPUBLICAPP3_MT} représentant {MARCHEPUBLICAPP3_POURC} des produits de fonctionnements."; +$tabCommentaires[2401811][2][10] = "Durant les 3 dernières années, {MARCHEPUBLICAPP3_NB} appels d'offres de marchés publics ont été soumis, pour un montant cumulé de {MARCHEPUBLICAPP3_MT}."; +$tabCommentaires[2401821][2][10] = "Durant les 3 dernières années, les appels d'offres de marchés publics soumis, représentent {MARCHEPUBLICAPP3_POURC} des produits de fonctionnements."; +$tabCommentaires[2401831][2][10] = "Durant les 3 dernières années, {MARCHEPUBLICAPP3_NB} appels d'offres de marchés publics ont été soumis."; +$tabCommentaires[2401850][2][10] = "Le plus important a pour objet :"; +$tabCommentaires[2401851][2][10] = "Le plus important, en date du {MARCHEPUBLICDER_DATE}, à pour objet :"; +$tabCommentaires[2401852][2][10] = "Le plus important, attribué en {MARCHEPUBLICDER_ANNEE}, a pour objet :"; +$tabCommentaires[2401859][2][10] = "\"{MARCHEPUBLICDER_OBJ}\""; +$tabCommentaires[2402100][2][10] = "{NOMEN}, possède de nombreuses marques déposées."; +$tabCommentaires[2402101][2][10] = "{NOMEN}, possède une marque déposée."; +$tabCommentaires[2402102][2][10] = "{NOMEN}, possède {MARQUENB} marques déposées."; +$tabCommentaires[2402103][2][10] = "{NOMEN}, possède au moins {MARQUENB} marques déposées."; +$tabCommentaires[2402201][2][10] = ". En effet, leur nombre dépasse la centaine, dont:"; +$tabCommentaires[2402311][2][10] = ", toutes à l'international."; +$tabCommentaires[2402312][2][10] = "° {MARQUENB_INT} à l'international."; +$tabCommentaires[2402321][2][10] = ", ({MARQUELISTE_INT}).
    "; +$tabCommentaires[2402322][2][10] = ", (les 10 dernières: {MARQUELISTE_INT}).
    "; +$tabCommentaires[2402411][2][10] = ", en Europe seulement."; +$tabCommentaires[2402412][2][10] = "° {MARQUENB_EUR} en Europe seulement."; +$tabCommentaires[2402421][2][10] = ", ({MARQUELISTE_EUR}).
    "; +$tabCommentaires[2402422][2][10] = ", (les 10 dernières: {MARQUELISTE_EUR}).
    "; +$tabCommentaires[2402511][2][10] = ", en France seulement."; +$tabCommentaires[2402512][2][10] = "° {MARQUENB_FR} en France seulement."; +$tabCommentaires[2402521][2][10] = ", ({MARQUELISTE_FR}).
    "; +$tabCommentaires[2402522][2][10] = ", (les 10 dernières: {MARQUELISTE_FR}).
    "; +$tabCommentaires[2402901][2][10] = ""; +$tabCommentaires[2500100][2][0] = "\"- La mobilisation du potentiel fiscal n'étant que de {R[851]}, on peut envisager une action sur la pression fiscale."; +$tabCommentaires[2500110][2][0] = "\"- L'encours de la dette est limité ({RQ[829]}), et il reste encore une marge possible d'appel à l'emprunt pour les investissements."; +$tabCommentaires[2500120][2][0] = "\"- Les dépenses obligatoires incompressibles (personnel, assurances, intérêts des emprunts, etc...) représentant {R[872]} des recettes de fonctionnement restent sous le seuil d'alerte. S'il est prévu d'engager de nouvelles dépenses elles devraient être absorbées pour autant que la rigidité structurelle ne passe pas la barre des 65%."; +$tabCommentaires[2500130][2][0] = "\"- L'autofinancement est satisfaisant {R[873]}, la collectivité est capable d'engager des opérations plus importantes."; +$tabCommentaires[2500999][2][0] = "

    Marges de manœuvre"; +$tabCommentaires[2590000][2][0] = "Bien que le dernier bilan publié soit trop ancien et que les commentaires financiers aient été occultés, nous maintenons l'analyse des éléments favorables et défavorables."; +$tabCommentaires[2595000][2][0] = " Entreprise en place depuis de nombreuses années."; +$tabCommentaires[2600000][2][0] = " Entreprise établie depuis longtemps."; +$tabCommentaires[2605000][2][0] = " Toute jeune entreprise."; +$tabCommentaires[2610000][2][10] = " Entreprise créée récemment."; +$tabCommentaires[2615000][2][0] = " Entreprise créée depuis peu."; +$tabCommentaires[2620000][2][20] = " Visibilité financière réduite du fait de la création récente."; +$tabCommentaires[2622000][2][20] = " L'entreprise ne dispose pas de bilan."; +$tabCommentaires[2622000][2][30] = " (mais n'est pas dans l'obligation de publier)"; +$tabCommentaires[2625000][2][0] = " Aucune information bilantielle disponible."; +$tabCommentaires[2625000][2][30] = " (malgré son obligation de publier)"; +$tabCommentaires[2630000][2][0] = " Le dernier bilan disponible est trop ancien."; +$tabCommentaires[2635000][2][0] = " Très forte capitalisation."; +$tabCommentaires[2640000][2][0] = " Forte capitalisation."; +$tabCommentaires[2645000][2][0] = " Très fort manque de Capitalisation."; +$tabCommentaires[2650000][2][0] = " Manque de Capitalisation."; +$tabCommentaires[2655000][2][0] = " L'entreprise est de taille très importante."; +$tabCommentaires[2660000][2][0] = " L'entreprise est de taille importante."; +$tabCommentaires[2662000][2][0] = " L'entreprise fait partie d'un groupe de taille significative."; +$tabCommentaires[2665000][2][0] = " L'entreprise est de petite taille."; +$tabCommentaires[2670000][2][0] = " La taille de l'entreprise est particulièrement modeste."; +$tabCommentaires[2671000][2][0] = " Sa situation en zone prioritaire ({ZONEPRI}), permet de réduire la fiscalité."; +$tabCommentaires[2673000][2][10] = "
  • L'exploitant est responsable du passif exigible en cas de défaillance."; +$tabCommentaires[2675000][2][10] = "
  • Les associés sont responsables du passif exigible en cas de défaillance."; +$tabCommentaires[2676000][2][10] = "
  • Le gérant est majoritaire. A noter que la loi Breton du 26 juillet 2005 supprime le régime spécifique de solidarité fiscale des gérants majoritaires de SARL institué par l'article L.266 du Livre des Procédures Fiscales (LPF)."; +$tabCommentaires[2680000][2][0] = " Le secteur est très peu exposé à la défaillance."; +$tabCommentaires[2685000][2][0] = " Le secteur est peu exposé à la défaillance."; +$tabCommentaires[2690000][2][0] = " Très fort risque de défaillance du secteur."; +$tabCommentaires[2695000][2][0] = " Le secteur est fortement exposé au risque de défaillance."; +$tabCommentaires[2700000][2][10] = " Le profil de l'entreprise présente un très faible risque de défaillance."; +$tabCommentaires[2710000][2][10] = " L'exposition à la défaillance du profil de l'entreprise est supérieure au secteur d'activité."; +$tabCommentaires[2715000][2][10] = " L'exposition à la défaillance du profil de l'entreprise est très important."; +$tabCommentaires[2720000][2][0] = " L'actionnaire de référence dispose d'une surface financière appréciable."; +$tabCommentaires[2725000][2][0] = " L'actionnaire de référence dispose d'une surface financière satisfaisante."; +$tabCommentaires[2745000][2][10] = " Le taux de productivité de {R[267]} est supérieur à la moyenne du secteur qui n'excède pas {Rs[267]}."; +$tabCommentaires[2750000][2][10] = " La productivité de {R[267]} par employé est largement supérieure à la moyenne du secteur qui n'excède pas {Rs[267]}."; +$tabCommentaires[2755000][2][10] = " Le taux de productivité de {R[267]} est inférieur à la moyenne du secteur."; +$tabCommentaires[2760000][2][10] = " La productivité de {R[267]} par employé est largement inférieure à la moyenne du secteur qui elle est à {Rs[267]}."; +$tabCommentaires[2765000][2][10] = " La part à l'export de cette entreprise est substantielle avec près de {R[025]} du CA total en {BILANANNEE}."; +$tabCommentaires[2770000][2][10] = " La part à l'export importante représentant près de {!R[025]} du CA total, ce qui accroit les risques par une certaine exposition aux aléas des marchés internationaux."; +$tabCommentaires[2770010][2][10] = "Il y a une forte sensibilisation aux risques des marchés internationaux en raison d'une part à l'export très importante."; +$tabCommentaires[2770011][2][10] = "L'importance de la part à l'export peut induire un manque de visibilité sur certaines valorisations dû en particulier aux aléas potentiels des écarts de change."; +$tabCommentaires[2771000][2][10] = " Une procédure collective a été décelée sur une des filiales, il pourrait y avoir risque de contagion."; +$tabCommentaires[3095000][2][10] = " Le Chiffre d'affaires progresse résolument de {+Revol[006]} au {BILANDATE}."; +$tabCommentaires[3100000][2][10] = " Le volume d'activité de l'entreprise a enregistré une forte progression de CA de {+Revol[006]} au {BILANDATE}."; +$tabCommentaires[3101000][2][0] = " Le niveau de dépréciation des participations est important."; +$tabCommentaires[3102000][2][10] = " La baisse de la production totale de {!Revol[504]} ne permet pas de considérer pleinement la croissance du Chiffre d'affaires."; +$tabCommentaires[3105000][2][10] = " L'activité de l'entreprise est en légère baisse de {!Revol[006]} du CA au {BILANDATE}."; +$tabCommentaires[3110000][2][10] = " Le chiffre d'affaires est en baisse de {!Revol[006]} au {BILANDATE}."; +$tabCommentaires[3115000][2][10] = " L'activité de l'entreprise a enregistré une baisse significative de {!Revol[006]} du CA au {BILANDATE}."; +$tabCommentaires[3117000][2][10] = " La production totale en hausse avec {+Revol[504]} permet de reconsidérer la baisse du CA sous un autre angle."; +$tabCommentaires[3130000][2][0] = " Le chiffre d'affaires à l'export est en forte augmentation de {!Revol[004]}. "; +$tabCommentaires[3135000][2][0] = " Le chiffre d'affaires à l'export est en baisse de {!Revol[004]}. "; +$tabCommentaires[3140000][2][0] = " Le chiffre d'affaires à l'export est en baisse significative de {!Revol[004]}. "; +$tabCommentaires[3155000][2][10] = " La Valeur Ajoutée progresse fortement de {!Revol[505]} par rapport au {BILANDATEp}, elle est à un taux de {!R[505]} du CA."; +$tabCommentaires[3160000][2][10] = " La Valeur Ajoutée baisse de {!Revol[505]} par rapport au {BILANDATEp}, elle est à un taux de {!R[505]} du CA."; +$tabCommentaires[3165000][2][10] = " La Valeur Ajoutée décline de {!Revol[505]} par rapport au {BILANDATEp}, elle est à un taux de {!R[505]} du CA."; +$tabCommentaires[3170000][2][10] = " Fort recul de {!Revol[505]} de la Valeur Ajoutée par rapport au {BILANDATEp}, elle est à un taux de {!R[505]} du CA."; +$tabCommentaires[3175000][2][10] = " Les deux derniers exercices présentent tous les deux des Valeurs Ajoutées négatives avec {Rp[130]} pour au {BILANDATEp} et {R[130]} pour {BILANANNEE}."; +$tabCommentaires[3180000][2][10] = " En outre, les deux derniers exercices présentent tous les deux des Valeurs Ajoutées négatives avec {Rp[130]} pour au {BILANDATEp} et {R[130]} pour {BILANANNEE}."; +$tabCommentaires[3190000][2][10] = " En outre, l'exercice {BILANANNEE} présente une Valeur Ajoutée négative avec {R[130]}"; +$tabCommentaires[3205000][2][10] = " Hausse de la rentabilité commerciale (E.B.E/CA) de {!Revol[506]} au {BILANDATE}."; +$tabCommentaires[3210000][2][10] = " Baisse de la rentabilité commerciale (E.B.E/CA) de {!Revol[506]} au {BILANDATE}."; +$tabCommentaires[3211000][2][10] = " Forte baisse de la rentabilité commerciale (E.B.E/CA) de {!Revol[506]} au {BILANDATE}."; +$tabCommentaires[3215000][2][10] = " Chute de la rentabilité commerciale (E.B.E/CA) de {!Revol[506]} au {BILANDATE}. "; +$tabCommentaires[3220000][2][20] = " Ralentissement de la baisse de l'Excédent Brut d'Exploitation, cependant il reste déficitaire sur {BILANANNEE} avec {R[140]}."; +$tabCommentaires[3225000][2][10] = " Une nouvelle baisse de l'Excédent Brut d'Exploitation en {BILANANNEE} conduit le déficit à {R[140]}"; +$tabCommentaires[3235000][2][10] = "
  • La réduction de l'activité à rompu l'équilibre et l'Excédent Brut d'Exploitation {BILANANNEE} devient déficitaire avec {R[140]}."; +$tabCommentaires[3250000][2][10] = " La rentabilité d'exploitation (REXPLOIT/CA) augmente fortement (de {Revol[507]}), par rapport au {BILANDATEp} avec {R[507]} du CA. "; +$tabCommentaires[3255000][2][10] = " La rentabilité d'exploitation (REXPLOIT/CA) en baisse (de {!Revol[507]}), par rapport au {BILANDATEp} avec {R[507]} du CA. "; +$tabCommentaires[3260000][2][10] = " La rentabilité d'exploitation (REXPLOIT/CA) baisse largement (de {!Revol[507]}), par rapport au {BILANDATEp} avec {R[507]} du CA. "; +$tabCommentaires[3265000][2][10] = " La rentabilité d'exploitation (REXPLOIT/CA) s'écroule de {!Revol[507]} avec {R[507]} du CA."; +$tabCommentaires[3270000][2][20] = " Le résultat d'exploitation reste toujours négatif, même s'il progresse."; +$tabCommentaires[3275000][2][10] = " (Les résultats d'exploitation {BILANANNEE} et celui clos le {BILANDATEp} sont tous deux négatifs)"; +$tabCommentaires[3280000][2][10] = ". La baisse dégrade le Résultat d'Exploitation {BILANANNEE} pour le rendre négatif à {R[150]}."; +$tabCommentaires[3295000][2][10] = " Progression notable de la rentabilité (RCAI/CA) avec {Revol[508]} par rapport au {BILANDATEp}."; +$tabCommentaires[3300000][2][10] = " La rentabilité (RCAI/CA) se dégrade avec {Revol[508]} par rapport au {BILANDATEp}."; +$tabCommentaires[3305000][2][10] = " Baisse significative de la rentabilité (RCAI/CA) avec {Revol[508]} par rapport au {BILANDATEp}."; +$tabCommentaires[3310000][2][10] = " La rentabilité (RCAI/CA) chute fortement de {!Revol[508]} par rapport au {BILANDATEp}."; +$tabCommentaires[3315000][2][10] = " La progression de {+Revol[008]} du Résultat Courant Avant Impots par rapport au {BILANDATEp}, ne suffit pas à le rendre bénéficiaire avec {R[007]}."; +$tabCommentaires[3320000][2][10] = "(Les Résultats Courant Avant Impots de {BILANANNEE} et celui clos le {BILANDATEp} sont tous deux négatifs.)"; +$tabCommentaires[3335000][2][10] = " La rentabilité nette (RN/CA) est en progression avec + {Revol[509]} comparativement a celle au {BILANDATEp}."; +$tabCommentaires[3340000][2][10] = " La rentabilité nette (RN/CA) est en forte progression avec + {Revol[509]} par rapport au {BILANDATEp}."; +$tabCommentaires[3345000][2][10] = " La rentabilité nette (RN/CA) est en recul de {!Revol[509]} par rapport à au {BILANDATEp}."; +$tabCommentaires[3350000][2][10] = " La rentabilité nette (RN/CA) est en net recul avec {Revol[509]} par rapport à l'exercice clos le {BILANDATEp}."; +$tabCommentaires[3355000][2][10] = " Net recul de la rentabilité nette (RN/CA) de {!Revol[509]} par rapport au {BILANDATEp}."; +$tabCommentaires[3360000][2][10] = ". Le Résultat {BILANANNEE} reste toujours en perte même si la rentabilité nette (RN/CA) se rétablit légèrement."; +$tabCommentaires[3365000][2][10] = ". Les résultats au {BILANDATEp} et {BILANANNEE} sont en perte. La rentabilité nette (RN/CA) continue à se dégrader."; +$tabCommentaires[3370000][2][20] = ". L'exercice devient déficitaire."; +$tabCommentaires[3395000][2][10] = " La Valeur Ajoutée, avec {R[130]}, atteint un taux satisfaisant de {!R[505]} du CA."; +$tabCommentaires[3400000][2][10] = " Excellent taux de Valeur Ajoutée à {!R[505]} du CA avec {R[130]} au dernier exercice."; +$tabCommentaires[3405000][2][10] = "
  • Avec {!R[505]} du CA, la valeur ajoutée à {R[130]} n'atteint pas un taux suffisant pour compenser la masse salariale qui absorbe près de {R[281]} de la V.A. "; +$tabCommentaires[3405100][2][10] = "
  • Avec {!R[505]} du CA, la valeur ajoutée à {R[130]} n'atteint pas un taux suffisant pour compenser la masse salariale qui absorbe complètement la V.A. "; +$tabCommentaires[3405500][2][10] = "
  • Avec {!RQ[806]} des charges de fonctionnement la masse salariale est le poste de dépenses le plus important."; +$tabCommentaires[3406000][2][10] = "
  • La Valeur Ajoutée est handicapée par la valeur importante des Autres Charges Externes de {R[123]} qui ont augmenté significativement de {!Revol[123]}. L'accroissement de cet appel aux resources extérieures a été fatal au résultat."; +$tabCommentaires[3407000][2][10] = " La Valeur Ajoutée de {!R[505]} du CA en {BILANANNEE}, est à un bon taux mais sa valeur à {R[130]} reste insuffisante pour faire face à une masse salariale qui en représente près de {R[281]}."; +$tabCommentaires[3410000][2][10] = " La valeur ajoutée est négative à {R[130]}."; +$tabCommentaires[3420000][2][10] = " L' Excédent Brut d'Exploitation est d'un très bon niveau avec {R[140]}, et {+R[506]} du CA."; +$tabCommentaires[3422000][2][10] = " Augmentation de l'Excédent Brut d'Exploitation avec une progression de {+Revol[301]}."; +$tabCommentaires[3425000][2][10] = " Faible Excédent Brut d'Exploitation avec {R[140]}, et à peine {!R[506]} du CA."; +$tabCommentaires[3426000][2][20] = " L' Excédent Brut d'Exploitation est particulièrement fragile avec {R[140]}, et à peine {!R[506]} du CA."; +$tabCommentaires[3430000][2][10] = " La rentabilité est insuffisante avec un Excédent Brut d'Exploitation déficitaire de {R[140]} représentant {!R[506]} du CA."; +$tabCommentaires[3431000][2][10] = " Insuffisance notoire de la rentabilité avec un Excédent Brut d'Exploitation négatif avec {R[140]}, représentant {!R[506]} du CA."; +$tabCommentaires[3432000][2][10] = " Net recul de l'Excédent Brut d'Exploitation avec une chute de {!Revol[301]}."; +$tabCommentaires[3439000][2][10] = " Faible niveau du Résultat Courant Avant Impôts en {BILANANNEE} avec {R[007]}, soit seulement {!R[508]} du CA."; +$tabCommentaires[3445000][2][10] = " Excellent niveau de Résultat Courant Avant Impôts en {BILANANNEE} avec {R[007]}, et une part du CA de {!R[508]}."; +$tabCommentaires[3450000][2][10] = " Le Résultat Courant Avant Impôts est déficitaire avec {R[007]}, soit un manque de {!R[508]} du CA."; +$tabCommentaires[3460000][2][10] = " Le Résultat Courant Avant Impôts est amplement négatif en {BILANANNEE} de {R[007]}, soit un manque de {!R[508]} du CA."; +$tabCommentaires[3465000][2][10] = " Le déficit du Résultat Courant Avant Impôts est préoccupant avec {R[007]}, soit une insuffisance de {!R[508]} du CA. "; +$tabCommentaires[3470000][2][10] = " L'exercice {BILANANNEE} est tout juste bénéficiaire avec {R[010]}, à peine à {!R[509]} du CA."; +$tabCommentaires[3475000][2][10] = " L'exercice {BILANANNEE} est très excédentaire avec {R[010]}, à hauteur de {!R[509]} du CA."; +$tabCommentaires[3477000][2][10] = "
  • Le bénéfice de l'exercice de {R[010]}, est dû au résultat exceptionnel positif de {R[012]}."; +$tabCommentaires[3480000][2][10] = " Le bénéfice est très satisfaisant avec {R[010]}, à hauteur de {!R[509]} du CA."; +$tabCommentaires[3483000][2][10] = "
  • Le bénéfice important de {R[010]}, est dû seulement au résultat exceptionnel positif de {R[012]}."; +$tabCommentaires[3485000][2][10] = " Les pertes se chiffrent à {R[010]}, soit {!R[509]} du CA."; +$tabCommentaires[3487000][2][10] = "
  • Le Résultat exceptionnel négatif à {R[012]} est la cause exclusive des pertes de {R[010]}."; +$tabCommentaires[3490000][2][10] = " Les pertes de {R[010]} sont conséquentes, elle représentent {!R[509]} du CA."; +$tabCommentaires[3493000][2][10] = "
  • Le résultat exceptionnel négatif à {R[012]} est la cause principale de la lourdeur des pertes de {R[010]}"; +$tabCommentaires[3495000][2][10] = " Les lourdes pertes de {R[010]}, représentent près de {!R[509]} du CA."; +$tabCommentaires[3495010][2][10] = " Les pertes de {R[010]}, représentent près de {!R[509]} du CA."; +$tabCommentaires[3497000][2][10] = "
  • Le résultat exceptionnel négatif à {R[012]} est principalement la cause des pertes, il les porte à {R[010]}. "; +$tabCommentaires[3500000][2][0] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est dans la norme du marché avec un taux de {R[263]}."; +$tabCommentaires[3505000][2][0] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est supérieur à la norme du marché avec un taux de {R[263]}. "; +$tabCommentaires[3505001][2][0] = " (rappelons la baisse des capitaux propres de {Revol[070]})"; +$tabCommentaires[3510000][2][0] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est inférieur à la norme du marché avec un taux de {R[263]}. "; +$tabCommentaires[3515000][2][0] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est quasi nul avec un taux de {R[263]}. "; +$tabCommentaires[3520000][2][20] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est négatif avec un taux de {R[263]}. "; +$tabCommentaires[3525000][2][20] = " Le Retour sur Investissement, ou rendement du capital investi (Résultat/Cap propres), est particulièrement mauvais avec un taux de {R[263]}. "; +$tabCommentaires[3530000][2][20] = " La capacité d'autofinancement est solide avec près de {!R[503]} du CA en {BILANANNEE}."; +$tabCommentaires[3535000][2][20] = " La Capacité d'autofinancement est excellente avec près de {!R[503]} du CA en {BILANANNEE}."; +$tabCommentaires[3540000][2][20] = " La capacité d'autofinancement est Insuffisante avec près de {!R[503]} du CA en {BILANANNEE}."; +$tabCommentaires[3545000][2][20] = " La capacité d'autofinancement est négative à {!R[503]} du CA en {BILANANNEE}."; +$tabCommentaires[3550000][2][20] = " Déficit marqué de la capacité d'autofinancement {BILANANNEE} avec {!R[503]} du CA."; +$tabCommentaires[3555000][2][0] = " On observe une bonne Capacité financière avec des fonds propres à {R[510]} du total bilan."; +$tabCommentaires[3558000][2][0] = " La capacité financière apparaît largement suffisante avec des fonds propres à {R[510]} du total bilan."; +$tabCommentaires[3560000][2][0] = " Insuffisance de la Capacité financière avec des fonds propres à peine à {R[510]} du total bilan."; +$tabCommentaires[3562000][2][0] = " Les fonds propres représentant seulement {R[510]} du total bilan, la Capacité financière est faible."; +$tabCommentaires[3565000][2][0] = " La capacité financière est importante avec des fonds propres représentant {R[510]} du total bilan."; +$tabCommentaires[3566000][2][0] = " Les comptes courants de {R[072]} permettent de renforcer les ressources propres malgré une faible surface financière."; +$tabCommentaires[3568000][2][0] = ", et les Capitaux propres assurent l'indépendance financière de la société avec près de {R[240]} des capitaux permanents."; +$tabCommentaires[3570000][2][0] = ", et, avec seulement {R[240]} des capitaux permanents, les fonds propres ne permettent pas d'assurer l'indépendance financière de la société."; +$tabCommentaires[3572000][2][10] = ", et les fonds propres représentent {R[240]} des capitaux permanents assurant ainsi l'indépendance financière de la société."; +$tabCommentaires[3574000][2][10] = " Au regard du rapport entre la capacité bénéficiaire et l'endettement (FFIN/EBE) à hauteur de {R[242]}, le niveau global d'endettement est plutôt élevé."; +$tabCommentaires[3576000][2][10] = " Le niveau d'endettement est sans commune mesure par rapport à la capacité bénéficiaire. En effet l'endettement (FFIN/EBE) se situe à une valeur beaucoup trop importante à {R[242]}. "; +$tabCommentaires[3578000][2][10] = ", et le Crédit bail est particulièrement important à {R[209]} pour un Excédent Brut d'Exploitation de {R[140]}. "; +$tabCommentaires[3650000][2][10] = " La durée des encours clients est réduite avec {R[278]} de CA TTC."; +$tabCommentaires[3655000][2][10] = " La durée des encours clients est largement améliorable avec {R[278]} de CA TTC. "; +$tabCommentaires[3660000][2][10] = " La durée des encours clients est conséquente avec {R[278]} de CA TTC. Une action pour réduire le DSO devient nécessaire."; +$tabCommentaires[3665000][2][10] = " La durée des encours clients est dangereusement excessive avec {R[278]} de CA TTC. Une action argente s'impose pour ramner le DSO à une durée économiquement plus viable. "; +$tabCommentaires[3666000][2][10] = " La durée des encours clients représente plus de 2 ans de vente TTC. Une action urgente pour réduire le DSO est vitale."; +$tabCommentaires[3675000][2][10] = " Le crédit fournisseurs est bas avec {R[279]} d' achats TTC. "; +$tabCommentaires[3680000][2][10] = " Le crédit fournisseurs devient significatif avec {R[279]} d' achats TTC. Risque de perte de confiance des fournisseurs."; +$tabCommentaires[3685000][2][10] = " Le crédit fournisseurs est particulièrement conséquent avec {R[279]} d' achats TTC. Les difficultés de paiements ne sont pas loin."; +$tabCommentaires[3690000][2][10] = " Le crédit fournisseurs est important avec {R[279]} d' achats TTC. Les difficultés de paiements s'installent."; +$tabCommentaires[3691000][2][10] = " La rotation fournisseurs est excessive et représente plus de 2 années de vente TTC. Les difficultés de paiements semblent chroniques."; +$tabCommentaires[3692000][2][10] = " La rotation fournisseurs est supérieure à la durée des encours clients, la balance des paiements est déficitaire."; +$tabCommentaires[3695000][2][10] = " Les stocks matières se situent dans la norme généralement admise avec {R[273]} d'achats HT. Bonne fluidité de la production."; +$tabCommentaires[3700000][2][10] = " Les stocks matières sont contenus avec {R[273]} d'achats HT. Le cycle production commercialisation est fluide."; +$tabCommentaires[3705000][2][10] = " Les stocks matières sont importants avec {R[273]} d'achats HT. Des resources financières sont ainsi figées."; +$tabCommentaires[3710000][2][10] = " Les stocks matières se chiffrent à un niveau élevé avec {R[273]} d'achats HT. Ils mobilisent des resources financières."; +$tabCommentaires[3711000][2][10] = " La rotation des stocks matières dépasse les 12 mois d'achats de matières premières. "; +$tabCommentaires[3720000][2][10] = " Les stocks de produits en cours de production de biens sont contenus avec {R[297]} de production HT. La production est en phase avec la commercialisation. "; +$tabCommentaires[3725000][2][10] = " Les stocks de produits en cours de production de biens représentent un niveau important avec {R[297]} de production HT. La commercialisation n'est pas en phase avec la production. "; +$tabCommentaires[3730000][2][10] = " Les stocks de produits en cours de production de biens représentent un niveau anormalement élevé avec {R[297]} de production HT. Les resources de fabrication ont été investies, les recettes manquent."; +$tabCommentaires[3735000][2][10] = " Les stocks de produits en cours de production de biens représentent plus de 12 mois de production. "; +$tabCommentaires[3745000][2][10] = " Avec {R[298]} de production HT, les encours de production de services sont contenus."; +$tabCommentaires[3750000][2][10] = " Avec {R[298]} de production HT, les encours de production de services semblent conséquents. La capacité de production s'essouffle."; +$tabCommentaires[3755000][2][10] = " Avec {R[298]} de production HT, les encours de production de services sont particulièrement conséquents. La capacité de production sature."; +$tabCommentaires[3760000][2][10] = " Les encours de production de services sont supérieurs à 12 mois de vente HT. La capacité de production sature."; +$tabCommentaires[3765000][2][10] = " Les produits intermédiaires et finis semblent se situer à un haut niveau avec {R[299]} de vente HT. Ils mobilisent des resources financières."; +$tabCommentaires[3770000][2][10] = " Les produits intermédiaires et finis semblent se situer à un très haut niveau avec {R[299]} de vente HT. "; +$tabCommentaires[3775000][2][10] = " Les produits intermédiaires et finis dépassent les 12 mois de vente HT."; +$tabCommentaires[3780000][2][10] = " Le stock marchandises se situe à un niveau important avec {R[275]} d'achats HT."; +$tabCommentaires[3785000][2][10] = " Le stock marchandises se situe à un niveau très important avec {R[275]} d'achats HT."; +$tabCommentaires[3790000][2][20] = " Le stock marchandises dépasse de plus d' an les achats HT. La commercialisation ne suit pas la production. Un exercice entier à été consacré à produire sans les recettes correspondantes."; +$tabCommentaires[3791000][2][0] = "
  • Considérant que les stocks se révèlent insuffisamment liquides pour couvrir un besoin monétaire urgent et que les règlements clients intervenant après qu'on ait à payer les achats, les stocks doivent donc être financés. Ici leur augmentation considérable de ({Revol[060]}), pose problème face au résultat d'exploitation déficitaire."; +$tabCommentaires[3841000][2][10] = " Les capitaux propres sont négatifs de {R[070]} en {BILANANNEE}, l'entreprise ne dispose plus d'aucune surface financière. "; +$tabCommentaires[3844000][2][10] = " L'entreprise dispose encore de fonds propres à hauteur de {R[070]} mais ils sont inférieurs à la moitié du capital social. Une assemblée générale est nécéssaire pour statuer sur la conduite à tenir pour la poursuite de l'activité."; +$tabCommentaires[3845000][2][10] = " La trésorerie demeure positive à {R[226]} malgré un Fonds de Roulement négatif de {R[223]} car le Besoin en Fonds de Roulement est lui aussi négatif. "; +$tabCommentaires[3846000][2][10] = " Le Fonds De Roulement est négatif avec {R[223]}, mais la trésorerie et les liquidités positives limitent les nécessités de trésorerie."; +$tabCommentaires[3850000][2][10] = " Le manque de capitaux permanents provoque un F.D.R négatif avec {R[223]}. Même si la trésorerie présente un solde positif à {R[226]} la liquidité est négative."; +$tabCommentaires[3851000][2][10] = " Le Besoin en Fonds de Roulement négatif diminue l'impact du Fonds de Roulement négatif avec {R[223]}. Le manque de ressources financières est amplifié par la liquidité générale négative de {R[224]} "; +$tabCommentaires[3855000][2][20] = " L'insuffisance de capitaux permanents provoque un Fonds de Roulement négatif avec {R[223], le Besoin de Fonds de Roulement n'est pas couvert, il en découle un besoin de trésorerie d'environ {R[226]}. Cependant, la liquidité générale est positive avec près de {R[224]}."; +$tabCommentaires[3856000][2][10] = " Le Besoin en Fonds de Roulement n'est pas couvert par le Fonds de roulement négatif avec {R[223]}. La trésorerie est négative à hauteur de {R[226]} qui représente près de {!R[512]} de CA HT."; +$tabCommentaires[3860000][2][10] = " L'insuffisance de capitaux permanents provoque un Fonds de Roulement négatif avec {R[223]}, le Besoin n'est pas couvert. Les besoins en trésorerie s'élèvent à environ {R[226]}."; +$tabCommentaires[3860001][2][10] = ". Et représentent près de {!R[512]} de CA HT."; +$tabCommentaires[3861000][2][10] = " En dépit de l'absence de Besoin en Fonds de Roulement, le Fonds de roulement étant négatif avec {R[223]}, la trésorerie est déficitaire à {R[226]}."; +$tabCommentaires[3865000][2][20] = " Le Fonds de Roulement est satisfaisant avec {R[223]} avec un B.F.R réduit. L'excédent monétaire est favorisé par un bon niveau global de liquidité de {R[226]}."; +$tabCommentaires[3866000][2][20] = " Le Besoin est compensé par un Fonds de Roulement positif avec {R[223]} permettant de dégager un solde positif de trésorerie de {R[226]}."; +$tabCommentaires[3866001][2][20] = " qui représente près de {!R[512]} de CA HT."; +$tabCommentaires[3870000][2][20] = " Le Fonds de Roulement positif de {R[223]} permet de couvrir le Besoin générant ainsi un solde positif de trésorerie de {R[226]}."; +$tabCommentaires[3870001][2][20] = " qui représente près de {!R[512]} de CA HT."; +$tabCommentaires[3871000][2][20] = " Le niveau de liquidité générale à {R[224]} est insuffisant, cependant le Fonds de Roulement est positif de {R[223]} ce qui permet de faire face au Besoin et participer au redressement des liquidités."; +$tabCommentaires[3875000][2][10] = " Le Besoin de Fonds de Roulement {R[225]} n'est pas couvert par le FDR néanmoins positif de {R[223]}. Cependant la liquidité générale reste positive avec {R[224]}."; +$tabCommentaires[3876000][2][30] = " Le Besoin de Fonds de Roulement {R[225]} n'est pas couvert par le FDR positif de {R[223]}. Il en résulte un besoin de trésorerie à hauteur {R[226]}."; +$tabCommentaires[3876001][2][30] = " qui représente près de {!R[512]} de CA HT."; +$tabCommentaires[3880000][2][30] = " Malgré un Fonds de Roulement positif de {R[223]}, il ne couvre pas le BFR qui se chiffre à {R[225]}."; +$tabCommentaires[3881000][2][10] = " Le mauvais niveau de liquidité générale de {R[224]} participe à l'insuffisance financière d'un Fonds De Roulement qui, bien que positif, ne couvre pas un BFR de {R[225]}."; +$tabCommentaires[3882000][2][10] = " La trésorerie est positive à {+R[226]}."; +$tabCommentaires[3882001][2][10] = ". Et représente près de {!R[512]} de CA HT."; +$tabCommentaires[3882100][2][10] = " Le solde de trésorerie est largement positif à {+R[226]}."; +$tabCommentaires[3882101][2][0] = ". Et représente {!R[512]} de CA HT."; +$tabCommentaires[3882200][2][10] = " Le solde de trésorerie est négatif avec {R[226]}."; +$tabCommentaires[3882201][2][0] = ", son insuffisance s'élève à {!R[512]} du CA HT."; +$tabCommentaires[3882300][2][10] = " Important découvert de trésorerie à {R[226]}."; +$tabCommentaires[3882301][2][10] = " qui représente près de {!R[512]} de CA HT."; +$tabCommentaires[3885000][2][0] = " Le solde des effets escomptés non échus hors bilan, témoignant d'un besoin de trésorerie, est conséquent avec {R[227]} et à progressé de {!Revol[227]}."; +$tabCommentaires[3886000][2][10] = " Entreprise située à une adresse de domiciliation."; +$tabCommentaires[3890000][2][10] = " Forte baisse des effectifs de {!Revol[024]} comparé au précédent exercice. (Sauf omission ou anomalie dans les reports aux bilans)."; +$tabCommentaires[3900100][2][10] = "
  • La trésorerie est négative et le Besoin en Fonds de roulement doit être contenu. L'analyse du bilan montre qu'une solution serait de réduire les stocks qui sont très élevés avec {R[275]} d'achats HT."; +$tabCommentaires[3900200][2][10] = "
  • La trésorerie est négative et le Besoin en Fonds de roulement doit être contenu. L'analyse du bilan montre qu'une piste d'amélioration serait de réduire les délais de paiements clients qui sont beaucoup trop importants avec {R[278]} de CA TTC."; +$tabCommentaires[3900300][2][10] = "
  • La trésorerie est négative et le Besoin en Fonds de roulement doit être contenu. L'analyse du bilan montre qu'une piste d'amélioration serait de négocier avec certains fournisseurs un allongement du crédit qu'ils accordent, car il est globalement plus court que le délai généralement admis avec {R[279]} d'achats HT."; +$tabCommentaires[3900301][2][10] = " Par ailleurs, il pourrait être intéressant de négocier avec certains fournisseurs un allongement du crédit qu'ils accordent, car il est globalement plus court que le délai généralement admis avec {R[279]} d'achats HT."; +$tabCommentaires[3900400][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de viser un abaissement de l'Actif par la réduction des stocks de marchandises, car ils sont anormalement élevés avec {R[275]} d'achats HT."; +$tabCommentaires[3900401][2][10] = "
  • Il est nécessaire aussi, d'agir sur le Fonds de Roulement. On pourrait viser un abaissement de l'Actif par la réduction des stocks de marchandises, car ils sont anormalement élevés avec {R[275]} d'achats HT."; +$tabCommentaires[3900410][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de viser un abaissement de l'Actif par la réduction des stocks de produits intermédiaires et finis, car ils sont anormalement élevés avec {R[299]} d'achats HT."; +$tabCommentaires[3900411][2][10] = "
  • Il est nécessaire aussi, d'agir sur le Fonds de Roulement en abaissant l'Actif par la réduction des stocks de produits intermédiaires et finis, car ils sont anormalement élevés avec {R[299]} d'achats HT."; +$tabCommentaires[3900415][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de viser un abaissement de l'Actif par la réduction des stocks de produits en cours de production, car ils sont anormalement élevés avec {R[297]} d'achats HT."; +$tabCommentaires[3900416][2][10] = "
  • Il est nécessaire aussi, d'agir sur le Fonds de Roulement en abaissant l'Actif par la réduction des stocks de produits en cours de production, car ils sont anormalement élevés avec {R[297]} d'achats HT."; +$tabCommentaires[3900420][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de viser un abaissement de l'Actif par le recours à la sous-traitance par exemple, mais surtout de réduire les stocks de matières premières, car ils sont anormalement élevés avec {R[273]} d'achats HT."; +$tabCommentaires[3900421][2][10] = "
  • Il est nécessaire aussi, d'agir sur le Fonds de Roulement en abaissant de l'Actif par le recours à la sous-traitance par exemple, mais surtout de réduire les stocks de matières premières, car ils sont anormalement élevés avec {R[273]} d'achats HT."; +$tabCommentaires[3900500][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait d'augmenter les resources en visant une augmentation du résultat par l'accroissement de la productivité, car avec {R[261]} par employé, elle se situe largement sous la moyenne du secteur qui affiche un rendement de {+Rs[261]}"; +$tabCommentaires[3900501][2][10] = "
  • Il serait possible aussi pour agir sur le Fonds de Roulement, d'améliorer les resources en visant une augmentation du résultat par l'accroissement de la productivité, car avec {R[261]} par employé, elle se situe largement sous la moyenne du secteur qui affiche un rendement de {+Rs[261]}"; +$tabCommentaires[3900510][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de procéder à une augmentation de capital, car avec {CAPITAL}, il semble sous-dimensionné, et les capitaux permanents avec {R[202]} étant sensiblement inférieurs à la moyenne du secteur."; +$tabCommentaires[3900511][2][10] = "
  • Pour agir sur le Fonds de Roulement, on pourrait aussi procéder à une augmentation de capital, car avec {CAPITAL}, il semble sous-dimensionné, et les capitaux permanents avec {R[202]} étant sensiblement inférieurs à la moyenne du secteur."; +$tabCommentaires[3900520][2][10] = "
  • La trésorerie est négative, il est nécessaire d'agir sur le Fonds de Roulement. L'analyse du bilan montre qu'une piste d'amélioration serait de réaliser plus d'emprunts à long terme, car avec {R[244]}, l'endettement à +1 an reste inférieur aux capitaux propres et à la moyenne du secteur."; +$tabCommentaires[3900521][2][10] = " En outre, pour agir sur le Fonds de Roulement il serait possible de réaliser plus d'emprunts à long terme, car avec {R[244]}, l'endettement à +1 an reste inférieur aux capitaux propres et à la moyenne du secteur."; +$tabCommentaires[3901100][2][10] = "
  • L'augmentation du taux de marge commerciale de {+Revol[528]}, accompagnée de la diminution du CA de {!Revol[006]}, semble indiquer que l'entreprise essaie de préserver ses marges en augmentant ses prix de vente."; +$tabCommentaires[3901110][2][10] = "
  • L'augmentation du taux de marge commerciale de {+Revol[528]}, accompagnée de la hausse du CA de {+Revol[006]}, signifierait probablement que l'entreprise a mis en vente des produits plus performants ou qu'elle a acquis une position concurrentielle plus forte."; +$tabCommentaires[3901120][2][10] = " Cette observation est à tempérer cependant car la progression du CA peut présenter un caractère artificiel du fait des opérations de fusion."; +$tabCommentaires[3901200][2][10] = "
  • La baisse du taux de marge commerciale de {!Revol[528]}, accompagnée de la forte croissance du CA observée de {+Revol[006]}, indique probablement un choix de politique de baisse des prix de vente pour augmenter les parts de marché."; +$tabCommentaires[3901210][2][10] = "
  • La pérennité de l'entreprise à long terme peut être remise en cause étant donné le faible niveau de sa marge opérationnelle."; +$tabCommentaires[3901300][2][10] = "
  • L'entreprise finance l'intégralité de ses investissements à l'aide de ressources stables. En revanche avec {R[237]}, le ratio de couverture atteint une valeur trop élevée, ce qui peut constituer un signe de gestion peu satisfaisante."; +$tabCommentaires[3901301][2][10] = ". La disproportion entre les besoins et les resources de financement s'explique par le fait qu'il faut financer et sécuriser l'important poste client de {R[210]} représentant {R[278]} de CA."; +$tabCommentaires[3901309][2][10] = ". La disproportion entre les besoins et les resources de financement affecte son degré de rentabilité, et risque d'être à la source d'une utilisation peu rationnelle des capitaux disponibles. "; +$tabCommentaires[3901400][2][10] = "La Valeur Ajoutée exprime la fonction créatrice de l'entreprise. Ici, on observera la faible valeur de son rapport avec le Chiffre d'affaire à {R[505]}."; +$tabCommentaires[3901500][2][10] = "
  • Sans tenir compte du Chiffre d'affaires global que vous représentez chez \"{NOMEN}\", le montant ({ENCOURSDEM}) de la transaction que vous envisagez représente {CALCUL1} % de son Chiffre d'Affaires."; +$tabCommentaires[3901510][2][10] = " Votre potentiel de négociation semble donc important."; +$tabCommentaires[3901511][2][10] = ". (Veillez toutefois à éviter une situation de dépendance en cas d'une trop grande proportion de son CA)"; +$tabCommentaires[3902100][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_VILLE_NB} affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_MT} et {VENTEMAX_VILLE_MT}."; +$tabCommentaires[3902101][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires localisées à {VILLE} se sont négociées dans une fourchette de {VENTEMIN_VILLE_MT} et {VENTEMAX_VILLE_MT}."; +$tabCommentaires[3902110][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_VILLE_MT}."; +$tabCommentaires[3902111][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMIN_VILLE_MT}."; +$tabCommentaires[3902130][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans la même localité pour un montant de {VENTEMAX_VILLE_MT}."; +$tabCommentaires[3902131][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la même localité se sont négociées aux environs de {VENTEMAX_VILLE_MT}."; +$tabCommentaires[3902200][2][10] = ", alors qu'on dénombre {VENTE_DEP_NB} cessions dans le département dans une fourchette de {VENTEMIN_DEP_MT} à {VENTEMAX_DEP_MT}."; +$tabCommentaires[3902300][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que {VENTE_DEP_NB} affaires de la proche région se sont négociées dans une fourchette de {VENTEMIN_DEP_MT} et {VENTEMAX_DEP_MT}."; +$tabCommentaires[3902301][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du département se sont négociées dans une fourchette de {VENTEMIN_DEP_MT} et {VENTEMAX_DEP_MT}."; +$tabCommentaires[3902310][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule affaire de la même localité est intervenue pour un montant de {VENTEMIN_DEP_MT}."; +$tabCommentaires[3902311][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires du même département se sont négociées aux environs de {VENTEMIN_DEP_MT}."; +$tabCommentaires[3902330][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre qu'une seule vente est intervenue dans le même département pour un montant de {VENTEMAX_DEP_MT}."; +$tabCommentaires[3902331][2][10] = "
  • Notre analyse des 24 derniers mois de l'historique des ventes d'établissements comparables montre que les affaires de la proche région se sont négociées aux environs de {VENTEMAX_DEP_MT}."; +$tabCommentaires[3902900][2][10] = "(Sur l'ensemble du territoire, sur la même période, ce sont {VENTE_FRA_NB} ventes qui sont intervenues pour un montant moyen de {VENTEMOY_FRA_MT})"; +$tabCommentaires[3910001][2][0] = "
  • LES 10 meilleurs taux de Résultat d'Exploitation SIRENTaux Rex/CA
    {MARCHE_RE_NOM[0]}{MARCHE_RE_SIREN[0]}{MARCHE_RE_MT[0]}
    {MARCHE_RE_NOM[1]}{MARCHE_RE_SIREN[1]}{MARCHE_RE_MT[1]}
    {MARCHE_RE_NOM[2]}{MARCHE_RE_SIREN[2]}{MARCHE_RE_MT[2]}
    {MARCHE_RE_NOM[3]}{MARCHE_RE_SIREN[3]}{MARCHE_RE_MT[3]}
    {MARCHE_RE_NOM[4]}{MARCHE_RE_SIREN[4]}{MARCHE_RE_MT[4]}
    {MARCHE_RE_NOM[5]}{MARCHE_RE_SIREN[5]}{MARCHE_RE_MT[5]}
    {MARCHE_RE_NOM[6]}{MARCHE_RE_SIREN[6]}{MARCHE_RE_MT[6]}
    {MARCHE_RE_NOM[7]}{MARCHE_RE_SIREN[7]}{MARCHE_RE_MT[7]}
    {MARCHE_RE_NOM[8]}{MARCHE_RE_SIREN[8]}{MARCHE_RE_MT[8]}
    {MARCHE_RE_NOM[9]}{MARCHE_RE_SIREN[9]}{MARCHE_RE_MT[9]}
    "; +$tabCommentaires[3910001][2][2] = ""; +$tabCommentaires[3910011][2][0] = "(Dans les tableaux de synthèse, les lignes dont la condition est remplie sont colorées en vert pour les \"PLUS\", en rouge pour les \"MOINS\" et en jaune pour les 'NORMES')"; +$tabCommentaires[3910011][2][1] = "Dernier bilan connu en date du : {BILANDATE}"; +$tabCommentaires[3910100][2][10] = ""; +$tabCommentaires[3910101][2][10] = ""; +$tabCommentaires[3910120][2][10] = ""; +$tabCommentaires[3910121][2][10] = ""; +$tabCommentaires[3910130][2][10] = ""; +$tabCommentaires[3910131][2][10] = ""; +$tabCommentaires[3910135][2][10] = ""; +$tabCommentaires[3910136][2][10] = ""; +$tabCommentaires[3910140][2][10] = ""; +$tabCommentaires[3910141][2][10] = ""; +$tabCommentaires[3910145][2][10] = ""; +$tabCommentaires[3910146][2][10] = ""; +$tabCommentaires[3910150][2][10] = ""; +$tabCommentaires[3910151][2][10] = ""; +$tabCommentaires[3910155][2][10] = ""; +$tabCommentaires[3910156][2][10] = ""; +$tabCommentaires[3910160][2][10] = ""; +$tabCommentaires[3910161][2][10] = ""; +$tabCommentaires[3910170][2][10] = ""; +$tabCommentaires[3910171][2][10] = ""; +$tabCommentaires[3910180][2][10] = ""; +$tabCommentaires[3910181][2][10] = ""; +$tabCommentaires[3910190][2][10] = ""; +$tabCommentaires[3910191][2][10] = ""; +$tabCommentaires[3911001][2][0] = "
    LES PLUS (en vert la condition atteinte)Taux ou Valeur
    Moyenne sur 3 ans du taux de croissance du CA > inflation{Revol[536]}
    Moyenne sur 3 ans du taux de croissance du CA > inflation{Revol[536]}
    Résultat courant >0 avec croissance du CA sur 3 ans{R[170]}
    Résultat courant >0 avec croissance du CA sur 3 ans{R[170]}
    CAF/actif économique > Inflation sur 3 ans{R[539]}
    CAF/actif économique > Inflation sur 3 ans{R[539]}
    CAF/capitaux permanents > Inflation sur 3 ans{R[541]}
    CAF/capitaux permanents > Inflation sur 3 ans{R[541]}
    Capitaux propres > 15% Total Bilan {R[510]}
    Capitaux propres > 15% Total Bilan {R[510]}
    Capitaux propres/capitaux permanents > 40%{R[240]}
    Capitaux propres/capitaux permanents > 40%{R[240]}
    Fonds de Roulement > 0 {R[231]}
    Fonds de Roulement > 0 {R[231]}
    Fonds de Roulement/BFR > 70% {R[234]}
    Fonds de Roulement/BFR > 70% {R[234]}
    Trésorerie > 30 J de CA{!R[512]}
    Trésorerie > 30 J de CA{!R[512]}
    Dettes financières LMT / CAF <= 4 ans {R[247]}
    Dettes financières LMT / CAF <= 4 ans {R[247]}
    Résultat d'exploitation/charges financières > 400%{R[542]}
    Résultat d'exploitation/charges financières > 400%{R[542]}
    Liquidité > 10 fois la dette exigible {R[308]} fois
    Liquidité > 10 fois la dette exigible {R[308]} fois
    "; +$tabCommentaires[3911001][2][2] = ""; +$tabCommentaires[3911100][2][10] = ""; +$tabCommentaires[3911101][2][10] = ""; +$tabCommentaires[3911110][2][10] = " "; +$tabCommentaires[3911111][2][10] = " "; +$tabCommentaires[3911120][2][10] = ""; +$tabCommentaires[3911121][2][10] = ""; +$tabCommentaires[3911130][2][10] = ""; +$tabCommentaires[3911131][2][10] = ""; +$tabCommentaires[3911145][2][10] = ""; +$tabCommentaires[3911146][2][10] = ""; +$tabCommentaires[3911150][2][10] = ""; +$tabCommentaires[3911151][2][10] = ""; +$tabCommentaires[3911160][2][10] = ""; +$tabCommentaires[3911161][2][10] = ""; +$tabCommentaires[3911170][2][10] = ""; +$tabCommentaires[3911171][2][10] = ""; +$tabCommentaires[3911180][2][10] = ""; +$tabCommentaires[3911181][2][10] = ""; +$tabCommentaires[3912001][2][0] = "
    LES MOINS (en rouge la condition atteinte)Taux ou Valeur
    Baisse du résultat courant sur 3 ans {Rp2[170]} {R[170]}
    Baisse du résultat courant sur 3 ans {Rp2[170]} {R[170]}
    Baisse de la trésorerie en jours de CA (N/N-3) {Rp2[512]} {R[512]}
    Baisse de la trésorerie en jours de CA (N/N-3) {Rp2[512]} {R[512]}
    Fonds propres < 0 & Résultat courant < 0 {R[070]} & {R[170]}
    Fonds propres < 0 & Résultat courant < 0 {R[070]} & {R[170]}
    Fonds propres < 10% Total Bilan {R[510]}
    Fonds propres < 10% Total Bilan {R[510]}
    Capitaux propres/capitaux permanents < 30%{R[240]}
    Capitaux propres/capitaux permanents < 30%{R[240]}
    Credit Clients > 60 jours de CA {R[278]}
    Credit Clients > 60 jours de CA {R[278]}
    Dettes financières LT/CAF > 5ans {R[247]}
    Dettes financières LT/CAF > 5ans {R[247]}
    Résultat d'exploitation/Charges financières < 200% {R[542]}
    Résultat d'exploitation/Charges financières < 200% {R[542]}
    Fonds de Roulement < BFR, Trésorerie < 0 {R[226]}
    Fonds de Roulement < BFR, Trésorerie < 0 {R[226]}
    "; +$tabCommentaires[3912001][2][2] = ""; +$tabCommentaires[3912100][2][10] = ""; +$tabCommentaires[3912101][2][10] = ""; +$tabCommentaires[3912110][2][10] = ""; +$tabCommentaires[3912111][2][10] = ""; +$tabCommentaires[3912120][2][10] = ""; +$tabCommentaires[3912121][2][10] = ""; +$tabCommentaires[3912125][2][10] = ""; +$tabCommentaires[3912126][2][10] = ""; +$tabCommentaires[3912130][2][10] = ""; +$tabCommentaires[3912131][2][10] = ""; +$tabCommentaires[3912140][2][10] = ""; +$tabCommentaires[3912141][2][10] = ""; +$tabCommentaires[3912145][2][10] = ""; +$tabCommentaires[3912146][2][10] = ""; +$tabCommentaires[3912150][2][10] = ""; +$tabCommentaires[3912151][2][10] = ""; +$tabCommentaires[3913000][2][10] = "
  • L'entreprise progresse trop rapidement, elle rencontre des difficultés pour maîtriser sa croissance"; +$tabCommentaires[3913100][2][10] = "
  • La croissance du Chiffre d'Affaires est insuffisante, des difficultés sont à prévoir."; +$tabCommentaires[3913200][2][10] = "
  • La structure financière est équilibrée mais le retard d'investissement va nuire à la croissance."; +$tabCommentaires[3913300][2][10] = "
  • La situation est paradoxale, le volume d'activité se réduit mais le BFR ne baisse pas au même rythme, la trésorerie s'en ressentira."; +$tabCommentaires[4000010][2][10] = "COULEUR(BLE2,JAU1,NOI)"; +$tabCommentaires[4000010][2][20] = "{GRAPH(\"Répartition Valeur Ajoutée\",R[282]#R,R[283]#R,R[284]#R,R[285]#R)}"; +$tabCommentaires[4000021][2][10] = " Attention, au moins une des valeurs est négative, le graphe peut être altéré."; +$tabCommentaires[4000022][2][10] = " Attention, au moins une des valeurs est négative, le graphe peut être altéré."; +$tabCommentaires[4000023][2][10] = " Attention, au moins une des valeurs est négative, le graphe peut être altéré."; +$tabCommentaires[4000024][2][10] = " Attention, au moins une des valeurs est négative, le graphe peut être altéré."; +$tabCommentaires[4000100][2][10] = "
  • {R[282]} de la Valeur Ajoutée est affecté à l'infrastructure (amort/VA), la part réservée à l'investissement semble faible."; +$tabCommentaires[4000110][2][10] = "
  • {R[282]} de la Valeur Ajoutée est affecté à l'infrastructure (amort/VA), la part réservée à l'investissement est dans la moyenne du secteur."; +$tabCommentaires[4000120][2][10] = "
  • {R[282]} de la Valeur Ajoutée est affecté à l'infrastructure (amort/VA), l'investissement est d'une forte intensité."; +$tabCommentaires[4000150][2][10] = "
  • {R[282]} de la Valeur Ajoutée est affecté à l'infrastructure (amort/VA)"; +$tabCommentaires[4000200][2][10] = "
  • {R[283]} de la Valeur Ajoutée est affecté au capital (Resultat net /VA)"; +$tabCommentaires[4000205][2][10] = " (La rémunération du capital est inférieure au secteur qui est à {Rs[283]})"; +$tabCommentaires[4000210][2][10] = " (La rémunération du capital, avec {R[283]}, se situe dans la moyenne du secteur)"; +$tabCommentaires[4000220][2][10] = " (La rémunération du capital est très supérieure au secteur qui est à {Rs[283]})"; +$tabCommentaires[4000300][2][10] = "
  • {R[284]} de la Valeur Ajoutée est affecté à la rémunération des créanciers (frais financiers/VA)"; +$tabCommentaires[4000305][2][10] = " (La rémunération des créanciers, est inférieure au secteur d'activité qui est à {Rs[284]})"; +$tabCommentaires[4000310][2][10] = " (La rémunération des créanciers, avec {R[284]} se situe dans la moyenne du secteur d'activité)"; +$tabCommentaires[4000320][2][10] = " (La rémunération des créanciers est bien au-delà de la moyenne du secteur d'activité qui est à {Rs[284]})"; +$tabCommentaires[4000400][2][10] = "
  • {R[285]} de la Valeur Ajoutée constitue la part de l'état (Impots & taxes /VA)"; +$tabCommentaires[4000405][2][10] = " (La part de l'état est inférieure au secteur d'activité qui est à {Rs[285]})"; +$tabCommentaires[4000410][2][10] = " (La part de l'état, avec {R[285]} se situe dans la moyenne du secteur)"; +$tabCommentaires[4000420][2][10] = " (La part de l'état est bien au-delà de la moyenne du secteur qui est à {Rs[285]})"; +$tabCommentaires[4001000][2][10] = "COULEUR(VER3,ROU2,BLE3,MAR,MET2,VIO1,ROU3,NOI2,MET,VER2,ROU1,MET3,BLE,MAR2,MET1,VER2)"; +$tabCommentaires[4001100][2][10] = "
  • Le site est concerné par la gestion des risques naturels car au moins l'un des établissements situé à {RISQUEGEOARRETE_VILLE} se trouve dans une zone géographique sujet aux risques naturels ayant fait récemment l'objet d'un arrêté de catastrophe naturelle."; +$tabCommentaires[4001101][2][10] = "
  • Le site situé à {RISQUEGEOARRETE_VILLE} se trouve dans une zone géographique sujet au risque: \"{RISQUEGEO}\", qui a fait récemment l'objet d'un arrêté de catastrophe naturelle."; +$tabCommentaires[4001110][2][10] = "Plusieurs arrêtés de catastrophe naturelle sur la commune, ont été publiés, dont le plus récent, en date du {RISQUEGEOARRETE_DATE}, au JO du {RISQUEGEOARRETE_JODATE}, et libellé comme suit: \"{RISQUEGEOARRETE}\""; +$tabCommentaires[4001111][2][10] = "L'arrêté de catastrophe naturelle sur la commune est en date du {RISQUEGEOARRETE_DATE}, a été publié au JO du {RISQUEGEOARRETE_JODATE}, et est libellé comme suit: \"{RISQUEGEOARRETE}\""; +$tabCommentaires[4001120][2][10] = "On note au moins un arrêté de catastrophe naturelle sur la commune d'un des établissements, dont le plus récent en date du {RISQUEGEOARRETE_DATE}, publié au JO du {RISQUEGEOARRETE_JODATE}, et libellé comme suit: \"{RISQUEGEOARRETE}\""; +$tabCommentaires[4001190][2][10] = "On note au moins un arrêté de catastrophe naturelle sur la commune d'un des établissements, dont le plus récent est libellé comme suit: \"{RISQUEGEOARRETE}\""; +$tabCommentaires[4001200][2][10] = "
  • L'entreprise a {RISQUEACT_NB} établissements du bassin {RISQUEACTBASSIN} figurant au registre francais des émissions polluantes dans le domaine: \"{RISQUEACT}\""; +$tabCommentaires[4001201][2][10] = "
  • L'établissement du bassin {RISQUEACTBASSIN} figure au registre francais des émissions polluantes dans le domaine: \"{RISQUEACT}\" "; +$tabCommentaires[4001202][2][10] = "
  • L'entreprise a au moins l'un de ses établissements des bassin(s) {RISQUEACTBASSIN}, figurant au registre francais des émissions polluantes dans le domaine: \"{RISQUEACT}\" "; +$tabCommentaires[4001210][2][10] = "
  • L'entreprise au moins l'un de ses établissements figurant au registre francais des émissions polluantes dans le domaine: \"{RISQUEACT}\""; +$tabCommentaires[4001300][2][10] = "
  • L'établissement se situe à moins de {RISQUEGEOEAU_DIS} d'un milieu aquatique de type: {RISQUEGEOEAU_MIL}."; +$tabCommentaires[4001310][2][10] = "
  • Par son activité \"{NOMEN}\" prélève {RISQUEGEOEAU_PRELS} par an dans les eaux de surface."; +$tabCommentaires[4001311][2][10] = " et {RISQUEGEOEAU_PRELF} par an dans les eaux souterraines."; +$tabCommentaires[4001312][2][10] = "
  • Par son activité \"{NOMEN}\" prélève {RISQUEGEOEAU_PRELF} par an dans les eaux souterraines."; +$tabCommentaires[4001500][2][10] = "
  • L'activité de l'entreprise s'exerce dans le cadre des activités règlementées du type {ACTIVREG}"; +$tabCommentaires[4001600][2][10] = "
  • L'analyse du profil financier fait apparaître un risque de défaillance de {SCOREDEFTAUX} dans les 12 mois."; +$tabCommentaires[5000100][2][10] = "Des incidents nous ont été signalés par nos partenaires, dont le plus récent impayé significatif en {IMPAYE_MMAA}."; +$tabCommentaires[5000200][2][0] = "Des inscriptions de privilèges nous sont signalées au cours des 24 derniers mois:"; +$tabCommentaires[5000201][2][0] = "
  • Une inscription de privilège URSSAF d'une montant de {PRIVILEGESECU_MT}."; +$tabCommentaires[5000202][2][0] = "
  • {PRIVILEGESECU} inscriptions de privilèges URSSAF pour un montant cumulé de {PRIVILEGESECU_MT}."; +$tabCommentaires[5000203][2][0] = "
  • Une inscription de privilège TRESOR d'un montant de {PRIVILEGETRES_MT}."; +$tabCommentaires[5000204][2][0] = "
  • {PRIVILEGETRES} inscriptions de privilèges TRESOR pour un montant cumulé de {PRIVILEGETRES_MT}."; +$tabCommentaires[5000209][2][10] = "(Une entreprise qui ne paie plus ses cotisations sociales obligatoires ainsi que ses impôts et taxes, a une probabilité de défaillance 16 fois plus forte que celle d'une entreprise à jour de ses paiements)"; +$tabCommentaires[5000300][2][10] = "Nous avons eu connaissance d'une information terrain négative en {DEFAUT_MMAA}."; +$tabCommentaires[5000400][2][10] = "Cette structure a fait l'objet de demandes d'avis de crédit répétées au cours des 12 derniers mois."; +$tabCommentaires[5000500][2][10] = "Nos sources nous font part d'un avis favorable."; +$tabCommentaires[5000621][2][10] = "Depuis {CSFACTO_MMAA}, nos partenaires nous signalent que l'entreprise à cessé son activité."; +$tabCommentaires[5000622][2][10] = "Depuis {CSFACTO_MMAA}, nos partenaires nous signalent que l'entreprise à fait l'objet de sa radiation du registre du Commerce."; +$tabCommentaires[5000624][2][10] = "Depuis {CSFACTO_MMAA}, nos partenaires nous signalent des difficultés de certains membres du groupe."; +$tabCommentaires[5000629][2][10] = "L'entreprise est concernée par une opération de fusion absorption en {CSFACTO_MMAA}."; +$tabCommentaires[5000631][2][10] = "L'entreprise a annoncé son intention de cesser son activité dès {CSFACTO_MMAA}."; +$tabCommentaires[5000650][2][10] = "En {CSFACTO_MMAA}, nos partenaires nous ont fait part de leurs réserves quand aux relations internationales risquées de l'entreprise"; +$tabCommentaires[5000999][2][10] = "Aucun incident n'a été signalé par nos partenaires."; +$tabCommentaires[5001100][2][10] = "Le délai de paiement à changé en {DELAIPAY_MMAA}, il est à {DELAIPAY} alors que précédemment il était à {DELAIPAYp}"; +$tabCommentaires[8002000][2][10] = "Les durées des exercices arrêtés au {BILANDATEp}, de {nmp} mois, et celui clos le {BILANDATE}, de {nm} mois, sont différentes. Les évaluations des ratios ont été alignées sur une durée de 12 mois, l'amplification de certains postes peut avoir altéré les estimations."; +$tabCommentaires[8003000][2][0] = "L'absence de publications des comptes de bon nombre d'exercices a réduit la visibilité de l'analyse."; +$tabCommentaires[8004000][2][0] = "
  • La croissance rapide et continue sur au moins 3 ans, dans un contexte de rentabilité globalement négative"; +$tabCommentaires[8004001][2][0] = ", et l'existence de participations financières importantes"; +$tabCommentaires[8004002][2][0] = ", et l'existence d'immobilisations incorporelles importantes, dont la valorisation peut poser question"; +$tabCommentaires[8004009][2][0] = ", tend à orienter notre évaluation à la baisse."; +$tabCommentaires[10000000][2][0] = "

    PROFIL JURIDIQUE"; +$tabCommentaires[10000010][2][0] = "

    ACTIVITE"; +$tabCommentaires[10000020][2][0] = "

    LOCALISATION"; +$tabCommentaires[10000030][2][0] = "

    HISTOIRE DE L'ENTREPRISE"; +$tabCommentaires[10000050][2][0] = "

    CONFORMITE"; +$tabCommentaires[10000100][2][0] = "

    DIRIGEANCE"; +$tabCommentaires[10000200][2][0] = "

    FINANCEMENT"; +$tabCommentaires[10000200][2][99] = ""; +$tabCommentaires[10000300][2][0] = "

    LES CHIFFRES CLES DE L'ENTREPRISE"; +$tabCommentaires[10000305][2][0] = "

    Exploitation"; +$tabCommentaires[10000355][2][0] = "

    Structure du bilan et flux"; +$tabCommentaires[10000355][2][1] = ""; +$tabCommentaires[10000400][2][0] = "

    Cycles"; +$tabCommentaires[10000400][2][1] = ""; +$tabCommentaires[10000500][2][0] = "

    DIAGNOSTIC STRATEGIQUE"; +$tabCommentaires[10000500][2][99] = ""; +$tabCommentaires[10000510][2][0] = "

    Répartition de la Valeur Ajoutée"; +$tabCommentaires[10000510][2][1] = "La Valeur Ajoutée de {R[130]}, de l'exercice clos le {BILANDATE} se répartit comme suit:
    "; +$tabCommentaires[10000520][2][0] = "

    Risques"; +$tabCommentaires[10000550][2][0] = "

    MARCHE"; +$tabCommentaires[10000550][2][99] = ""; +$tabCommentaires[10000555][2][0] = "

    Marchés publics"; +$tabCommentaires[10000560][2][0] = "

    Marques"; +$tabCommentaires[10000600][2][0] = "

    FORCES ET FAIBLESSES"; +$tabCommentaires[10000700][2][0] = "

    Eléments favorables"; +$tabCommentaires[10000800][2][0] = "

    Eléments défavorables"; +$tabCommentaires[10000900][2][0] = "

    Observations"; +$tabCommentaires[10000910][2][0] = "

    Tableaux de Synthèse"; +$tabCommentaires[10000910][2][99] = ""; +$tabCommentaires[10001000][2][0] = "

    PAIEMENTS"; +$tabCommentaires[10007500][2][0] = "

    CONCLUSION"; +$tabCommentaires[10009000][2][0] = "

    Réserves"; +$tabTri=array(); +$tabTri[5000] = 1000; +$tabTri[7000] = 5000; +$tabTri[7001] = 5000; +$tabTri[7002] = 5000; +$tabTri[7003] = 5000; +$tabTri[7101] = 5000; +$tabTri[7102] = 5000; +$tabTri[7110] = 5000; +$tabTri[7112] = 5000; +$tabTri[7113] = 5000; +$tabTri[7114] = 5000; +$tabTri[7115] = 5000; +$tabTri[7118] = 5000; +$tabTri[7119] = 5000; +$tabTri[8002] = 16999; +$tabTri[8003] = 16999; +$tabTri[8004] = 16999; +$tabTri[8011] = 5000; +$tabTri[8021] = 16990; +$tabTri[8101] = 62000; +$tabTri[8102] = 62000; +$tabTri[8103] = 62000; +$tabTri[9995] = 13101; +$tabTri[9996] = 13100; +$tabTri[9997] = 13101; +$tabTri[10000] = 13700; +$tabTri[12000] = 13400; +$tabTri[13000] = 13300; +$tabTri[14000] = 13900; +$tabTri[17000] = 13500; +$tabTri[18000] = 13500; +$tabTri[19000] = 13500; +$tabTri[20000] = 13500; +$tabTri[21010] = 14300; +$tabTri[21020] = 14300; +$tabTri[21030] = 14300; +$tabTri[21040] = 14300; +$tabTri[21050] = 14300; +$tabTri[21060] = 14300; +$tabTri[21070] = 14300; +$tabTri[23010] = 14100; +$tabTri[23020] = 14100; +$tabTri[23030] = 14100; +$tabTri[23050] = 14100; +$tabTri[23100] = 14100; +$tabTri[23200] = 14100; +$tabTri[23900] = 14100; +$tabTri[24021] = 14150; +$tabTri[24022] = 14150; +$tabTri[24028] = 14150; +$tabTri[25000] = 13210; +$tabTri[25001] = 13210; +$tabTri[25010] = 13210; +$tabTri[26000] = 13220; +$tabTri[27000] = 13250; +$tabTri[28000] = 13260; +$tabTri[29000] = 13230; +$tabTri[31010] = 13600; +$tabTri[31020] = 13600; +$tabTri[31030] = 13600; +$tabTri[31040] = 13600; +$tabTri[31050] = 13600; +$tabTri[31060] = 13600; +$tabTri[31070] = 13600; +$tabTri[34800] = 12100; +$tabTri[34801] = 12100; +$tabTri[34802] = 12100; +$tabTri[34810] = 12100; +$tabTri[34819] = 12100; +$tabTri[34820] = 12100; +$tabTri[34830] = 12100; +$tabTri[34850] = 12100; +$tabTri[34900] = 12100; +$tabTri[34901] = 12100; +$tabTri[34902] = 12100; +$tabTri[34910] = 12100; +$tabTri[34920] = 12100; +$tabTri[34930] = 12120; +$tabTri[34931] = 12120; +$tabTri[35000] = 12150; +$tabTri[35010] = 13800; +$tabTri[35010] = 13800; +$tabTri[37000] = 12300; +$tabTri[38000] = 12300; +$tabTri[39000] = 12300; +$tabTri[40000] = 12300; +$tabTri[41000] = 12300; +$tabTri[42000] = 12300; +$tabTri[43000] = 12300; +$tabTri[44000] = 12300; +$tabTri[45000] = 14250; +$tabTri[45001] = 14250; +$tabTri[45010] = 15200; +$tabTri[45020] = 15500; +$tabTri[45022] = 15500; +$tabTri[45030] = 15500; +$tabTri[45032] = 15500; +$tabTri[45090] = 15500; +$tabTri[45092] = 15500; +$tabTri[46011] = 15600; +$tabTri[46012] = 15600; +$tabTri[46013] = 15600; +$tabTri[46021] = 15600; +$tabTri[46022] = 15600; +$tabTri[46023] = 15600; +$tabTri[47000] = 15700; +$tabTri[47010] = 15700; +$tabTri[47020] = 15700; +$tabTri[47021] = 15700; +$tabTri[50010] = 15101; +$tabTri[50011] = 15101; +$tabTri[50020] = 15101; +$tabTri[51000] = 15300; +$tabTri[52000] = 15300; +$tabTri[53000] = 15300; +$tabTri[54000] = 15300; +$tabTri[54500] = 15400; +$tabTri[54501] = 15400; +$tabTri[54502] = 15400; +$tabTri[54508] = 15400; +$tabTri[54509] = 15400; +$tabTri[54510] = 15400; +$tabTri[54511] = 15400; +$tabTri[54512] = 15400; +$tabTri[54513] = 15400; +$tabTri[54514] = 15400; +$tabTri[55101] = 15800; +$tabTri[55102] = 15800; +$tabTri[55103] = 15800; +$tabTri[55111] = 15800; +$tabTri[55112] = 15800; +$tabTri[55121] = 15800; +$tabTri[55122] = 15800; +$tabTri[55131] = 15800; +$tabTri[55132] = 15800; +$tabTri[55133] = 15800; +$tabTri[55210] = 15800; +$tabTri[55211] = 15800; +$tabTri[55212] = 15800; +$tabTri[55213] = 15800; +$tabTri[55220] = 15800; +$tabTri[55221] = 15800; +$tabTri[55222] = 15800; +$tabTri[55223] = 15800; +$tabTri[55231] = 15800; +$tabTri[55232] = 15800; +$tabTri[55241] = 15800; +$tabTri[55242] = 15800; +$tabTri[55251] = 15800; +$tabTri[55252] = 15800; +$tabTri[55253] = 15800; +$tabTri[55254] = 15800; +$tabTri[55255] = 15800; +$tabTri[55256] = 15800; +$tabTri[55257] = 15800; +$tabTri[55300] = 15800; +$tabTri[55301] = 15800; +$tabTri[55302] = 15800; +$tabTri[55310] = 15800; +$tabTri[55311] = 15800; +$tabTri[55312] = 15800; +$tabTri[55320] = 15800; +$tabTri[55321] = 15800; +$tabTri[55322] = 15800; +$tabTri[55330] = 15800; +$tabTri[55331] = 15800; +$tabTri[55332] = 15800; +$tabTri[55340] = 15800; +$tabTri[55341] = 15800; +$tabTri[55342] = 15800; +$tabTri[55350] = 15800; +$tabTri[55351] = 15800; +$tabTri[55352] = 15800; +$tabTri[55360] = 15800; +$tabTri[55361] = 15800; +$tabTri[55362] = 15800; +$tabTri[55370] = 15800; +$tabTri[55371] = 15800; +$tabTri[55372] = 15800; +$tabTri[55380] = 15800; +$tabTri[55381] = 15800; +$tabTri[55382] = 15800; +$tabTri[55390] = 15800; +$tabTri[55391] = 15800; +$tabTri[55392] = 15800; +$tabTri[55400] = 15800; +$tabTri[55401] = 15800; +$tabTri[55402] = 15800; +$tabTri[55410] = 15800; +$tabTri[55411] = 15800; +$tabTri[55412] = 15800; +$tabTri[55420] = 15800; +$tabTri[55421] = 15800; +$tabTri[55422] = 15800; +$tabTri[55430] = 15800; +$tabTri[55431] = 15800; +$tabTri[55432] = 15800; +$tabTri[55440] = 15800; +$tabTri[55441] = 15800; +$tabTri[55442] = 15800; +$tabTri[55450] = 15800; +$tabTri[55451] = 15800; +$tabTri[55452] = 15800; +$tabTri[55460] = 15800; +$tabTri[55461] = 15800; +$tabTri[55462] = 15800; +$tabTri[55470] = 15800; +$tabTri[55471] = 15800; +$tabTri[55472] = 15800; +$tabTri[55480] = 15800; +$tabTri[55481] = 15800; +$tabTri[55482] = 15800; +$tabTri[55490] = 15800; +$tabTri[55491] = 15800; +$tabTri[55492] = 15800; +$tabTri[65001] = 40130; +$tabTri[90010] = 16100; +$tabTri[90011] = 16100; +$tabTri[91000] = 22100; +$tabTri[91100] = 22100; +$tabTri[92000] = 22100; +$tabTri[92100] = 22100; +$tabTri[92200] = 22100; +$tabTri[92210] = 22100; +$tabTri[92220] = 22100; +$tabTri[92230] = 22100; +$tabTri[92240] = 22100; +$tabTri[92300] = 22100; +$tabTri[93000] = 22100; +$tabTri[93001] = 22100; +$tabTri[93002] = 22100; +$tabTri[93010] = 22100; +$tabTri[93050] = 22100; +$tabTri[93051] = 22100; +$tabTri[93052] = 22100; +$tabTri[94000] = 16200; +$tabTri[94010] = 16200; +$tabTri[95000] = 22100; +$tabTri[96000] = 22100; +$tabTri[97001] = 41110; +$tabTri[98000] = 15010; +$tabTri[98100] = 15010; +$tabTri[98200] = 15010; +$tabTri[98201] = 15010; +$tabTri[98300] = 15010; +$tabTri[98301] = 15010; +$tabTri[98400] = 15010; +$tabTri[99000] = 15010; +$tabTri[99099] = 15010; +$tabTri[99100] = 15010; +$tabTri[99101] = 15010; +$tabTri[99102] = 15010; +$tabTri[99110] = 15010; +$tabTri[99201] = 15010; +$tabTri[99300] = 15010; +$tabTri[99301] = 15010; +$tabTri[99400] = 15010; +$tabTri[99401] = 15010; +$tabTri[99402] = 15010; +$tabTri[99410] = 15010; +$tabTri[100000] = 53100; +$tabTri[101000] = 53100; +$tabTri[101001] = 53100; +$tabTri[101002] = 53100; +$tabTri[101008] = 53100; +$tabTri[101009] = 53100; +$tabTri[101010] = 53100; +$tabTri[101011] = 53100; +$tabTri[101012] = 53100; +$tabTri[101013] = 53100; +$tabTri[101014] = 53100; +$tabTri[150000] = 16100; +$tabTri[150001] = 16100; +$tabTri[170000] = 16100; +$tabTri[180000] = 16100; +$tabTri[180010] = 16100; +$tabTri[180019] = 16100; +$tabTri[187000] = 16100; +$tabTri[188000] = 16100; +$tabTri[189000] = 16100; +$tabTri[190000] = 16100; +$tabTri[190009] = 16100; +$tabTri[191000] = 22100; +$tabTri[192000] = 22100; +$tabTri[193000] = 22100; +$tabTri[194000] = 22100; +$tabTri[195000] = 22100; +$tabTri[196000] = 22100; +$tabTri[197000] = 40100; +$tabTri[197100] = 40100; +$tabTri[198001] = 41110; +$tabTri[199000] = 15010; +$tabTri[200000] = 15010; +$tabTri[201000] = 15010; +$tabTri[202000] = 15010; +$tabTri[203000] = 15010; +$tabTri[204000] = 15010; +$tabTri[205000] = 15010; +$tabTri[205099] = 15010; +$tabTri[205200] = 15010; +$tabTri[205301] = 15010; +$tabTri[205305] = 15010; +$tabTri[205310] = 15010; +$tabTri[206000] = 40130; +$tabTri[207000] = 40130; +$tabTri[208000] = 40130; +$tabTri[208001] = 80400; +$tabTri[208002] = 80400; +$tabTri[208003] = 51450; +$tabTri[209000] = 40130; +$tabTri[210000] = 40130; +$tabTri[212000] = 40130; +$tabTri[213000] = 15010; +$tabTri[213010] = 15010; +$tabTri[213100] = 15010; +$tabTri[213110] = 15010; +$tabTri[214000] = 15010; +$tabTri[214001] = 15010; +$tabTri[214010] = 15010; +$tabTri[214011] = 15010; +$tabTri[215100] = 75002; +$tabTri[215200] = 75002; +$tabTri[215201] = 75002; +$tabTri[215250] = 75002; +$tabTri[215251] = 75002; +$tabTri[215300] = 75002; +$tabTri[215400] = 75002; +$tabTri[215401] = 75002; +$tabTri[215450] = 75002; +$tabTri[215500] = 75002; +$tabTri[218000] = 75005; +$tabTri[219000] = 75005; +$tabTri[219001] = 80100; +$tabTri[219002] = 80100; +$tabTri[220000] = 75005; +$tabTri[221000] = 75005; +$tabTri[222000] = 75005; +$tabTri[223000] = 75005; +$tabTri[224000] = 75005; +$tabTri[225000] = 75005; +$tabTri[226000] = 75005; +$tabTri[228000] = 75005; +$tabTri[229000] = 75005; +$tabTri[230000] = 75005; +$tabTri[231000] = 75005; +$tabTri[233000] = 75005; +$tabTri[234000] = 75005; +$tabTri[235000] = 75005; +$tabTri[236000] = 75005; +$tabTri[237000] = 75005; +$tabTri[238000] = 75005; +$tabTri[239000] = 75005; +$tabTri[240000] = 75005; +$tabTri[241000] = 75005; +$tabTri[242000] = 75005; +$tabTri[243000] = 75005; +$tabTri[243100] = 75005; +$tabTri[244000] = 75005; +$tabTri[245000] = 75005; +$tabTri[246000] = 75005; +$tabTri[246010] = 75005; +$tabTri[246011] = 75005; +$tabTri[246012] = 75005; +$tabTri[246020] = 75005; +$tabTri[246100] = 75005; +$tabTri[246900] = 80100; +$tabTri[246910] = 80100; +$tabTri[249000] = 64100; +$tabTri[250000] = 64100; +$tabTri[251000] = 64100; +$tabTri[252000] = 64100; +$tabTri[253000] = 64100; +$tabTri[260000] = 21200; +$tabTri[260010] = 21200; +$tabTri[260011] = 21200; +$tabTri[260020] = 21200; +$tabTri[260021] = 21200; +$tabTri[260030] = 21200; +$tabTri[260040] = 21200; +$tabTri[261000] = 21300; +$tabTri[261001] = 21300; +$tabTri[261010] = 21300; +$tabTri[261011] = 21300; +$tabTri[261020] = 21300; +$tabTri[261021] = 21300; +$tabTri[261030] = 21300; +$tabTri[261031] = 21300; +$tabTri[261035] = 21300; +$tabTri[261040] = 21300; +$tabTri[261041] = 21300; +$tabTri[261050] = 21300; +$tabTri[261051] = 21300; +$tabTri[262000] = 21300; +$tabTri[262001] = 21300; +$tabTri[264000] = 22010; +$tabTri[264500] = 22010; +$tabTri[265000] = 22010; +$tabTri[265001] = 22010; +$tabTri[265002] = 22010; +$tabTri[265010] = 22010; +$tabTri[266000] = 22400; +$tabTri[266001] = 22400; +$tabTri[267000] = 22500; +$tabTri[268000] = 22600; +$tabTri[268011] = 22600; +$tabTri[268012] = 22600; +$tabTri[268013] = 22600; +$tabTri[268100] = 22600; +$tabTri[268111] = 22600; +$tabTri[268112] = 22600; +$tabTri[268113] = 22600; +$tabTri[268200] = 22600; +$tabTri[268211] = 22600; +$tabTri[268212] = 22600; +$tabTri[268213] = 22600; +$tabTri[268214] = 22600; +$tabTri[270010] = 30010; +$tabTri[270020] = 30010; +$tabTri[270030] = 30010; +$tabTri[270040] = 30010; +$tabTri[270041] = 30010; +$tabTri[270042] = 30010; +$tabTri[270043] = 30010; +$tabTri[270048] = 30010; +$tabTri[270101] = 30300; +$tabTri[275010] = 33400; +$tabTri[275011] = 33400; +$tabTri[276000] = 33400; +$tabTri[276001] = 33400; +$tabTri[285000] = 33400; +$tabTri[290001] = 41110; +$tabTri[295000] = 41110; +$tabTri[312000] = 33400; +$tabTri[315000] = 33400; +$tabTri[320000] = 21200; +$tabTri[325000] = 21200; +$tabTri[330000] = 33400; +$tabTri[330001] = 33400; +$tabTri[335001] = 41110; +$tabTri[340000] = 33400; +$tabTri[345000] = 33400; +$tabTri[350000] = 33400; +$tabTri[355000] = 33400; +$tabTri[395000] = 33400; +$tabTri[396000] = 33400; +$tabTri[396000] = 33400; +$tabTri[396000] = 33400; +$tabTri[400000] = 33500; +$tabTri[400101] = 17100; +$tabTri[400102] = 17100; +$tabTri[400109] = 30100; +$tabTri[400151] = 17100; +$tabTri[400152] = 17100; +$tabTri[400153] = 17100; +$tabTri[400159] = 30200; +$tabTri[400170] = 30200; +$tabTri[400201] = 17200; +$tabTri[400202] = 17200; +$tabTri[400209] = 30100; +$tabTri[400251] = 17200; +$tabTri[400301] = 17300; +$tabTri[400302] = 17300; +$tabTri[400303] = 30100; +$tabTri[400304] = 17300; +$tabTri[400305] = 17300; +$tabTri[400306] = 30100; +$tabTri[400307] = 17300; +$tabTri[400308] = 17300; +$tabTri[400309] = 30100; +$tabTri[400317] = 17300; +$tabTri[400318] = 17300; +$tabTri[400319] = 17300; +$tabTri[400320] = 17300; +$tabTri[400330] = 17300; +$tabTri[400401] = 17400; +$tabTri[400402] = 17400; +$tabTri[400408] = 17400; +$tabTri[400409] = 30100; +$tabTri[400501] = 17500; +$tabTri[400502] = 17500; +$tabTri[400509] = 30100; +$tabTri[400610] = 17500; +$tabTri[400611] = 17500; +$tabTri[400620] = 17500; +$tabTri[400630] = 17500; +$tabTri[400631] = 17500; +$tabTri[400900] = 19000; +$tabTri[400901] = 19000; +$tabTri[400902] = 19000; +$tabTri[400903] = 19000; +$tabTri[400910] = 19000; +$tabTri[400950] = 30400; +$tabTri[400951] = 30400; +$tabTri[400955] = 30400; +$tabTri[400960] = 30500; +$tabTri[400965] = 30500; +$tabTri[400966] = 30500; +$tabTri[400967] = 30500; +$tabTri[400970] = 30600; +$tabTri[400971] = 30600; +$tabTri[400972] = 30600; +$tabTri[401101] = 21100; +$tabTri[401102] = 21100; +$tabTri[401103] = 21100; +$tabTri[401104] = 21100; +$tabTri[401105] = 21100; +$tabTri[401106] = 21100; +$tabTri[401201] = 21100; +$tabTri[401211] = 21100; +$tabTri[401221] = 21100; +$tabTri[401510] = 30005; +$tabTri[401511] = 30005; +$tabTri[401512] = 30005; +$tabTri[401513] = 30005; +$tabTri[401520] = 30005; +$tabTri[401521] = 30005; +$tabTri[401522] = 30005; +$tabTri[401523] = 30005; +$tabTri[401701] = 30700; +$tabTri[401702] = 30700; +$tabTri[401801] = 31000; +$tabTri[402100] = 33100; +$tabTri[402200] = 33100; +$tabTri[402300] = 33100; +$tabTri[402400] = 33100; +$tabTri[402500] = 33200; +$tabTri[402500] = 33200; +$tabTri[402501] = 33200; +$tabTri[402502] = 33200; +$tabTri[402503] = 33200; +$tabTri[402504] = 33200; +$tabTri[402505] = 33200; +$tabTri[402506] = 33200; +$tabTri[402507] = 33200; +$tabTri[402508] = 33200; +$tabTri[402509] = 33200; +$tabTri[403000] = 33200; +$tabTri[403010] = 33200; +$tabTri[403011] = 33200; +$tabTri[403012] = 33200; +$tabTri[403015] = 33200; +$tabTri[404000] = 33300; +$tabTri[405000] = 33300; +$tabTri[406100] = 35000; +$tabTri[406101] = 35000; +$tabTri[406110] = 35000; +$tabTri[406111] = 35000; +$tabTri[406120] = 35000; +$tabTri[406121] = 35000; +$tabTri[406190] = 35000; +$tabTri[406191] = 35000; +$tabTri[406200] = 35000; +$tabTri[406201] = 35000; +$tabTri[410000] = 18100; +$tabTri[410010] = 18100; +$tabTri[410100] = 18100; +$tabTri[410200] = 18100; +$tabTri[410201] = 18100; +$tabTri[410209] = 18100; +$tabTri[410250] = 18100; +$tabTri[410251] = 18100; +$tabTri[410259] = 18100; +$tabTri[410270] = 18100; +$tabTri[410271] = 18100; +$tabTri[410279] = 18100; +$tabTri[410300] = 18100; +$tabTri[410310] = 18100; +$tabTri[410315] = 18100; +$tabTri[410316] = 18100; +$tabTri[410400] = 18100; +$tabTri[410401] = 18100; +$tabTri[410500] = 18100; +$tabTri[410800] = 18100; +$tabTri[410800] = 18100; +$tabTri[410800] = 18100; +$tabTri[410810] = 18100; +$tabTri[412000] = 18000; +$tabTri[412000] = 18000; +$tabTri[412010] = 18000; +$tabTri[412020] = 18000; +$tabTri[422000] = 40110; +$tabTri[424000] = 40110; +$tabTri[424010] = 40110; +$tabTri[424020] = 40110; +$tabTri[426000] = 40120; +$tabTri[426200] = 40120; +$tabTri[426500] = 40120; +$tabTri[426700] = 40120; +$tabTri[427000] = 40120; +$tabTri[428000] = 40120; +$tabTri[429000] = 40120; +$tabTri[430000] = 40120; +$tabTri[431000] = 40120; +$tabTri[435000] = 40120; +$tabTri[437000] = 40120; +$tabTri[443000] = 41140; +$tabTri[445000] = 41140; +$tabTri[445001] = 41140; +$tabTri[447000] = 41140; +$tabTri[448000] = 41140; +$tabTri[450000] = 41140; +$tabTri[453000] = 41140; +$tabTri[455000] = 41140; +$tabTri[455001] = 41140; +$tabTri[456000] = 41140; +$tabTri[457000] = 41140; +$tabTri[458000] = 41140; +$tabTri[460000] = 41140; +$tabTri[464000] = 41140; +$tabTri[464010] = 41140; +$tabTri[466000] = 41140; +$tabTri[466001] = 41140; +$tabTri[468000] = 41140; +$tabTri[470000] = 41140; +$tabTri[470001] = 41140; +$tabTri[471000] = 41140; +$tabTri[471001] = 41140; +$tabTri[471002] = 41140; +$tabTri[472000] = 41140; +$tabTri[472001] = 41140; +$tabTri[472002] = 41140; +$tabTri[474000] = 41140; +$tabTri[476000] = 41140; +$tabTri[477000] = 41140; +$tabTri[477100] = 41140; +$tabTri[477200] = 41140; +$tabTri[477250] = 41140; +$tabTri[478000] = 41140; +$tabTri[478100] = 41140; +$tabTri[478200] = 41140; +$tabTri[500000] = 41140; +$tabTri[500001] = 41140; +$tabTri[502000] = 41140; +$tabTri[502001] = 41140; +$tabTri[504000] = 41140; +$tabTri[504001] = 41140; +$tabTri[506000] = 41140; +$tabTri[506001] = 41140; +$tabTri[508000] = 41140; +$tabTri[508001] = 41140; +$tabTri[510000] = 41140; +$tabTri[510001] = 41140; +$tabTri[510002] = 41140; +$tabTri[510003] = 41140; +$tabTri[510004] = 41140; +$tabTri[510010] = 41140; +$tabTri[535000] = 41140; +$tabTri[535001] = 41140; +$tabTri[535005] = 41140; +$tabTri[535006] = 41140; +$tabTri[540000] = 41140; +$tabTri[540001] = 41140; +$tabTri[540005] = 41140; +$tabTri[542000] = 41140; +$tabTri[542001] = 41140; +$tabTri[542002] = 41140; +$tabTri[542005] = 41140; +$tabTri[544000] = 41140; +$tabTri[544001] = 41140; +$tabTri[544002] = 41140; +$tabTri[544003] = 41140; +$tabTri[544004] = 41140; +$tabTri[544005] = 41140; +$tabTri[548000] = 41140; +$tabTri[548001] = 41140; +$tabTri[548002] = 41140; +$tabTri[548003] = 41140; +$tabTri[548004] = 41140; +$tabTri[548005] = 41140; +$tabTri[548006] = 41140; +$tabTri[549000] = 41140; +$tabTri[549001] = 41140; +$tabTri[549002] = 41140; +$tabTri[549005] = 41140; +$tabTri[549006] = 41140; +$tabTri[551000] = 41140; +$tabTri[551001] = 41140; +$tabTri[551002] = 41140; +$tabTri[551004] = 41140; +$tabTri[551005] = 41140; +$tabTri[551010] = 41140; +$tabTri[552000] = 41140; +$tabTri[552001] = 41140; +$tabTri[552002] = 41140; +$tabTri[552005] = 41140; +$tabTri[552006] = 41140; +$tabTri[552010] = 41140; +$tabTri[554000] = 41140; +$tabTri[554001] = 41140; +$tabTri[554002] = 41140; +$tabTri[554005] = 41140; +$tabTri[554006] = 41140; +$tabTri[554010] = 41140; +$tabTri[565000] = 41140; +$tabTri[570000] = 41140; +$tabTri[571000] = 41140; +$tabTri[572000] = 41140; +$tabTri[575000] = 41140; +$tabTri[590000] = 41110; +$tabTri[595000] = 41110; +$tabTri[600000] = 41110; +$tabTri[605000] = 41110; +$tabTri[610000] = 41110; +$tabTri[615000] = 41110; +$tabTri[625000] = 41110; +$tabTri[630000] = 41110; +$tabTri[650101] = 41110; +$tabTri[650102] = 41110; +$tabTri[650103] = 41110; +$tabTri[650104] = 41110; +$tabTri[650109] = 41110; +$tabTri[650111] = 41110; +$tabTri[650112] = 41110; +$tabTri[652000] = 41110; +$tabTri[655000] = 41110; +$tabTri[660000] = 41110; +$tabTri[665000] = 41110; +$tabTri[665001] = 41110; +$tabTri[665009] = 41110; +$tabTri[667000] = 41110; +$tabTri[670000] = 41110; +$tabTri[670001] = 41110; +$tabTri[670100] = 41110; +$tabTri[670101] = 41110; +$tabTri[670200] = 41110; +$tabTri[670201] = 41110; +$tabTri[672000] = 41110; +$tabTri[675000] = 41110; +$tabTri[680000] = 41110; +$tabTri[685000] = 41110; +$tabTri[690000] = 41110; +$tabTri[690001] = 41110; +$tabTri[690002] = 41110; +$tabTri[690100] = 41110; +$tabTri[690101] = 41110; +$tabTri[690110] = 41110; +$tabTri[690111] = 41110; +$tabTri[700100] = 41120; +$tabTri[700200] = 41120; +$tabTri[700300] = 41120; +$tabTri[700500] = 41120; +$tabTri[700600] = 41120; +$tabTri[700700] = 41120; +$tabTri[701000] = 41120; +$tabTri[702000] = 41120; +$tabTri[703000] = 41120; +$tabTri[703001] = 41120; +$tabTri[705000] = 41120; +$tabTri[706000] = 41120; +$tabTri[707000] = 41120; +$tabTri[710000] = 41120; +$tabTri[711000] = 41120; +$tabTri[712000] = 41120; +$tabTri[713000] = 41120; +$tabTri[714000] = 41120; +$tabTri[715000] = 41120; +$tabTri[716000] = 41120; +$tabTri[717000] = 41120; +$tabTri[718000] = 41120; +$tabTri[719000] = 41120; +$tabTri[719500] = 41120; +$tabTri[722000] = 41120; +$tabTri[722010] = 41120; +$tabTri[722020] = 41120; +$tabTri[722200] = 41120; +$tabTri[722210] = 41120; +$tabTri[722220] = 41120; +$tabTri[722300] = 41120; +$tabTri[722310] = 41120; +$tabTri[722320] = 41120; +$tabTri[722400] = 41120; +$tabTri[722410] = 41120; +$tabTri[722420] = 41120; +$tabTri[725100] = 41130; +$tabTri[725200] = 41130; +$tabTri[725400] = 41130; +$tabTri[726000] = 41130; +$tabTri[726001] = 41130; +$tabTri[726002] = 41130; +$tabTri[731000] = 41150; +$tabTri[731100] = 41150; +$tabTri[731200] = 41150; +$tabTri[731300] = 41150; +$tabTri[735010] = 41160; +$tabTri[735010] = 41160; +$tabTri[735010] = 41160; +$tabTri[735011] = 41160; +$tabTri[735011] = 41160; +$tabTri[735011] = 41160; +$tabTri[735011] = 41160; +$tabTri[735012] = 41160; +$tabTri[735012] = 41160; +$tabTri[735012] = 41160; +$tabTri[735012] = 41160; +$tabTri[735100] = 41210; +$tabTri[735100] = 41210; +$tabTri[735110] = 41210; +$tabTri[735111] = 41210; +$tabTri[735112] = 41210; +$tabTri[735200] = 41210; +$tabTri[735300] = 41210; +$tabTri[735500] = 41210; +$tabTri[735500] = 41210; +$tabTri[735501] = 41210; +$tabTri[735502] = 41210; +$tabTri[735503] = 41210; +$tabTri[735511] = 41210; +$tabTri[735512] = 41210; +$tabTri[735921] = 41210; +$tabTri[735921] = 41210; +$tabTri[735921] = 41210; +$tabTri[735922] = 41210; +$tabTri[735922] = 41210; +$tabTri[735922] = 41210; +$tabTri[735931] = 41210; +$tabTri[735931] = 41210; +$tabTri[735931] = 41210; +$tabTri[735932] = 41210; +$tabTri[735932] = 41210; +$tabTri[735932] = 41210; +$tabTri[735950] = 41210; +$tabTri[735950] = 41210; +$tabTri[735951] = 41210; +$tabTri[735952] = 41210; +$tabTri[735953] = 41210; +$tabTri[735960] = 41210; +$tabTri[735960] = 41210; +$tabTri[735961] = 41210; +$tabTri[735962] = 41210; +$tabTri[735963] = 41210; +$tabTri[740000] = 42000; +$tabTri[740110] = 42101; +$tabTri[740111] = 42101; +$tabTri[740112] = 42101; +$tabTri[740115] = 42101; +$tabTri[740160] = 42101; +$tabTri[740161] = 42101; +$tabTri[740162] = 42101; +$tabTri[740210] = 42101; +$tabTri[740211] = 42101; +$tabTri[740212] = 42101; +$tabTri[740220] = 42101; +$tabTri[740221] = 42101; +$tabTri[740410] = 42101; +$tabTri[740411] = 42101; +$tabTri[740412] = 42101; +$tabTri[740610] = 42101; +$tabTri[740611] = 42101; +$tabTri[740612] = 42101; +$tabTri[740710] = 42101; +$tabTri[740810] = 42332; +$tabTri[740811] = 42332; +$tabTri[740812] = 42332; +$tabTri[740813] = 42332; +$tabTri[740815] = 42332; +$tabTri[740818] = 42332; +$tabTri[740830] = 42332; +$tabTri[740831] = 42332; +$tabTri[740832] = 42332; +$tabTri[740833] = 42332; +$tabTri[740834] = 42332; +$tabTri[740850] = 42332; +$tabTri[740850] = 42332; +$tabTri[740850] = 42332; +$tabTri[740851] = 42332; +$tabTri[740852] = 42332; +$tabTri[745010] = 42101; +$tabTri[745010] = 42101; +$tabTri[745010] = 42101; +$tabTri[745010] = 42101; +$tabTri[745020] = 42101; +$tabTri[745030] = 42101; +$tabTri[745040] = 42101; +$tabTri[745121] = 42101; +$tabTri[745122] = 42101; +$tabTri[745141] = 42101; +$tabTri[745142] = 42101; +$tabTri[745210] = 42101; +$tabTri[745210] = 42101; +$tabTri[745210] = 42101; +$tabTri[745210] = 42101; +$tabTri[745310] = 42101; +$tabTri[745310] = 42101; +$tabTri[745310] = 42101; +$tabTri[745320] = 42101; +$tabTri[745330] = 42101; +$tabTri[745340] = 42101; +$tabTri[745350] = 42101; +$tabTri[745360] = 42101; +$tabTri[745370] = 42101; +$tabTri[745371] = 42101; +$tabTri[750000] = 42201; +$tabTri[750020] = 42201; +$tabTri[750021] = 42201; +$tabTri[750022] = 42201; +$tabTri[750110] = 42201; +$tabTri[750111] = 42201; +$tabTri[750112] = 42201; +$tabTri[750311] = 42201; +$tabTri[750312] = 42201; +$tabTri[750410] = 42201; +$tabTri[750411] = 42201; +$tabTri[750415] = 42201; +$tabTri[750416] = 42201; +$tabTri[750418] = 42201; +$tabTri[750610] = 42101; +$tabTri[750611] = 42101; +$tabTri[750612] = 42101; +$tabTri[750710] = 42101; +$tabTri[750711] = 42101; +$tabTri[750712] = 42101; +$tabTri[750910] = 42290; +$tabTri[750920] = 42290; +$tabTri[750930] = 42290; +$tabTri[760000] = 42301; +$tabTri[760110] = 42101; +$tabTri[760111] = 42101; +$tabTri[760112] = 42101; +$tabTri[760160] = 42101; +$tabTri[760161] = 42101; +$tabTri[760162] = 42101; +$tabTri[760260] = 42301; +$tabTri[760261] = 42301; +$tabTri[760262] = 42301; +$tabTri[760310] = 42301; +$tabTri[760311] = 42301; +$tabTri[760312] = 42301; +$tabTri[760360] = 42301; +$tabTri[760361] = 42301; +$tabTri[760362] = 42301; +$tabTri[760410] = 42301; +$tabTri[760411] = 42301; +$tabTri[760412] = 42301; +$tabTri[760453] = 42301; +$tabTri[760454] = 42301; +$tabTri[760503] = 42301; +$tabTri[760504] = 42301; +$tabTri[760603] = 42301; +$tabTri[760604] = 42301; +$tabTri[760608] = 42301; +$tabTri[760660] = 42321; +$tabTri[760661] = 42321; +$tabTri[760662] = 42321; +$tabTri[760710] = 42331; +$tabTri[760711] = 42331; +$tabTri[760712] = 42331; +$tabTri[761110] = 42331; +$tabTri[761111] = 42331; +$tabTri[761112] = 42331; +$tabTri[761210] = 42331; +$tabTri[761211] = 42331; +$tabTri[761212] = 42331; +$tabTri[761310] = 42331; +$tabTri[761311] = 42331; +$tabTri[761312] = 42331; +$tabTri[761410] = 42331; +$tabTri[761411] = 42331; +$tabTri[761412] = 42331; +$tabTri[761510] = 42331; +$tabTri[761511] = 42331; +$tabTri[761512] = 42331; +$tabTri[761610] = 42331; +$tabTri[761611] = 42331; +$tabTri[761612] = 42331; +$tabTri[761810] = 42332; +$tabTri[761811] = 42332; +$tabTri[761812] = 42332; +$tabTri[762110] = 42332; +$tabTri[762111] = 42332; +$tabTri[762112] = 42332; +$tabTri[762210] = 42332; +$tabTri[762310] = 42332; +$tabTri[762410] = 42332; +$tabTri[762411] = 42332; +$tabTri[762412] = 42332; +$tabTri[762413] = 42332; +$tabTri[762415] = 42332; +$tabTri[762416] = 42332; +$tabTri[762510] = 42332; +$tabTri[762511] = 42332; +$tabTri[762512] = 42332; +$tabTri[763110] = 42331; +$tabTri[763111] = 42331; +$tabTri[763112] = 42331; +$tabTri[763113] = 42331; +$tabTri[763114] = 42331; +$tabTri[763160] = 42331; +$tabTri[763161] = 42331; +$tabTri[763162] = 42331; +$tabTri[763210] = 42331; +$tabTri[763211] = 42331; +$tabTri[763212] = 42331; +$tabTri[763260] = 43101; +$tabTri[763261] = 43101; +$tabTri[763262] = 43101; +$tabTri[763310] = 43201; +$tabTri[763311] = 43201; +$tabTri[763312] = 43201; +$tabTri[763320] = 43201; +$tabTri[763321] = 43201; +$tabTri[763322] = 43201; +$tabTri[763360] = 42331; +$tabTri[763361] = 42331; +$tabTri[763362] = 42331; +$tabTri[763510] = 43301; +$tabTri[763511] = 43301; +$tabTri[763512] = 43301; +$tabTri[763515] = 43301; +$tabTri[763560] = 42331; +$tabTri[763561] = 42331; +$tabTri[763562] = 42331; +$tabTri[763565] = 42331; +$tabTri[763610] = 42331; +$tabTri[763611] = 42331; +$tabTri[763621] = 42331; +$tabTri[763622] = 42331; +$tabTri[763631] = 42331; +$tabTri[763632] = 42331; +$tabTri[770000] = 42301; +$tabTri[770000] = 42301; +$tabTri[770000] = 42301; +$tabTri[770010] = 42301; +$tabTri[770012] = 42301; +$tabTri[770030] = 42301; +$tabTri[770031] = 42301; +$tabTri[770040] = 42301; +$tabTri[770050] = 42301; +$tabTri[770051] = 42301; +$tabTri[770060] = 42301; +$tabTri[770061] = 42301; +$tabTri[770100] = 42303; +$tabTri[770100] = 42303; +$tabTri[770100] = 42303; +$tabTri[770110] = 42303; +$tabTri[770120] = 42303; +$tabTri[770130] = 42303; +$tabTri[770140] = 42303; +$tabTri[770150] = 42303; +$tabTri[770210] = 42305; +$tabTri[770211] = 42305; +$tabTri[770221] = 42305; +$tabTri[770222] = 42305; +$tabTri[770300] = 42307; +$tabTri[770300] = 42307; +$tabTri[770300] = 42307; +$tabTri[770310] = 42307; +$tabTri[770320] = 42307; +$tabTri[770330] = 42307; +$tabTri[770500] = 42331; +$tabTri[770510] = 42331; +$tabTri[770510] = 42331; +$tabTri[770512] = 42331; +$tabTri[770512] = 42331; +$tabTri[770520] = 42331; +$tabTri[770520] = 42331; +$tabTri[770530] = 42331; +$tabTri[770530] = 42331; +$tabTri[770540] = 42331; +$tabTri[770540] = 42331; +$tabTri[770550] = 42331; +$tabTri[770550] = 42331; +$tabTri[770560] = 42331; +$tabTri[770560] = 42331; +$tabTri[820010] = 42316; +$tabTri[820011] = 42316; +$tabTri[820012] = 42316; +$tabTri[820110] = 42316; +$tabTri[820111] = 42316; +$tabTri[820112] = 42316; +$tabTri[820115] = 42316; +$tabTri[830010] = 42333; +$tabTri[830012] = 42333; +$tabTri[830013] = 42333; +$tabTri[830018] = 42333; +$tabTri[830018] = 42333; +$tabTri[830110] = 42333; +$tabTri[830110] = 42333; +$tabTri[830110] = 42333; +$tabTri[1300100] = 42391; +$tabTri[1300101] = 42391; +$tabTri[1300200] = 42391; +$tabTri[1300201] = 42391; +$tabTri[1300202] = 42391; +$tabTri[1300209] = 42391; +$tabTri[1300301] = 42391; +$tabTri[1300302] = 42391; +$tabTri[1300309] = 42391; +$tabTri[1300400] = 42391; +$tabTri[1300401] = 42391; +$tabTri[1300402] = 42391; +$tabTri[1300403] = 42391; +$tabTri[1300404] = 42391; +$tabTri[1300405] = 42391; +$tabTri[1300409] = 42391; +$tabTri[1300500] = 42391; +$tabTri[1300501] = 42391; +$tabTri[1300502] = 42391; +$tabTri[1300503] = 42391; +$tabTri[1300504] = 42391; +$tabTri[1300505] = 42391; +$tabTri[1300506] = 42391; +$tabTri[1300509] = 42391; +$tabTri[1300600] = 42391; +$tabTri[1300601] = 42391; +$tabTri[1300602] = 42391; +$tabTri[1300609] = 42391; +$tabTri[1300709] = 42391; +$tabTri[1300809] = 42391; +$tabTri[1300810] = 42391; +$tabTri[1300900] = 42391; +$tabTri[1300901] = 42391; +$tabTri[1300902] = 42391; +$tabTri[1300909] = 42391; +$tabTri[1301701] = 42391; +$tabTri[1301702] = 42391; +$tabTri[1301801] = 42391; +$tabTri[1301802] = 42391; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500100] = 43100; +$tabTri[1500110] = 43100; +$tabTri[1500110] = 43100; +$tabTri[1500110] = 43100; +$tabTri[1500110] = 43100; +$tabTri[2400101] = 52201; +$tabTri[2400102] = 52201; +$tabTri[2400103] = 52201; +$tabTri[2400104] = 52201; +$tabTri[2400109] = 52201; +$tabTri[2400111] = 52201; +$tabTri[2400112] = 52201; +$tabTri[2400119] = 52201; +$tabTri[2400121] = 52201; +$tabTri[2400122] = 52201; +$tabTri[2400123] = 52201; +$tabTri[2400124] = 52201; +$tabTri[2400125] = 52201; +$tabTri[2400126] = 52201; +$tabTri[2400200] = 52201; +$tabTri[2400210] = 52201; +$tabTri[2400300] = 52201; +$tabTri[2400310] = 52201; +$tabTri[2400410] = 52201; +$tabTri[2400420] = 52201; +$tabTri[2400430] = 52201; +$tabTri[2400500] = 52301; +$tabTri[2400501] = 52301; +$tabTri[2400501] = 52301; +$tabTri[2400510] = 52301; +$tabTri[2400511] = 52301; +$tabTri[2400512] = 52301; +$tabTri[2400513] = 52301; +$tabTri[2400514] = 52301; +$tabTri[2400515] = 52301; +$tabTri[2400516] = 52301; +$tabTri[2400517] = 52301; +$tabTri[2400518] = 52301; +$tabTri[2400519] = 52301; +$tabTri[2400601] = 52301; +$tabTri[2400601] = 52301; +$tabTri[2400610] = 52301; +$tabTri[2400611] = 52301; +$tabTri[2400612] = 52301; +$tabTri[2400613] = 52301; +$tabTri[2400614] = 52301; +$tabTri[2400615] = 52301; +$tabTri[2400616] = 52301; +$tabTri[2400617] = 52301; +$tabTri[2400618] = 52301; +$tabTri[2400619] = 52301; +$tabTri[2400701] = 52201; +$tabTri[2400702] = 52201; +$tabTri[2401101] = 52501; +$tabTri[2401201] = 52501; +$tabTri[2401301] = 52501; +$tabTri[2401401] = 52501; +$tabTri[2401500] = 52501; +$tabTri[2401501] = 52501; +$tabTri[2401502] = 52501; +$tabTri[2401509] = 52501; +$tabTri[2401511] = 52501; +$tabTri[2401512] = 52501; +$tabTri[2401601] = 52501; +$tabTri[2401701] = 52501; +$tabTri[2401801] = 52501; +$tabTri[2401811] = 52501; +$tabTri[2401821] = 52501; +$tabTri[2401831] = 52501; +$tabTri[2401850] = 52501; +$tabTri[2401851] = 52501; +$tabTri[2401852] = 52501; +$tabTri[2401859] = 52501; +$tabTri[2402100] = 54101; +$tabTri[2402101] = 54101; +$tabTri[2402102] = 54101; +$tabTri[2402103] = 54101; +$tabTri[2402201] = 54101; +$tabTri[2402311] = 54101; +$tabTri[2402312] = 54101; +$tabTri[2402321] = 54101; +$tabTri[2402322] = 54101; +$tabTri[2402411] = 54101; +$tabTri[2402412] = 54101; +$tabTri[2402421] = 54101; +$tabTri[2402422] = 54101; +$tabTri[2402511] = 54101; +$tabTri[2402512] = 54101; +$tabTri[2402521] = 54101; +$tabTri[2402522] = 54101; +$tabTri[2402901] = 54101; +$tabTri[2500100] = 62000; +$tabTri[2500110] = 61999; +$tabTri[2500120] = 61999; +$tabTri[2500130] = 61999; +$tabTri[2500999] = 61998; +$tabTri[2590000] = 62000; +$tabTri[2595000] = 62110; +$tabTri[2600000] = 62110; +$tabTri[2605000] = 62510; +$tabTri[2610000] = 62510; +$tabTri[2615000] = 62510; +$tabTri[2620000] = 62510; +$tabTri[2622000] = 62510; +$tabTri[2622000] = 62510; +$tabTri[2625000] = 62510; +$tabTri[2625000] = 62510; +$tabTri[2630000] = 62510; +$tabTri[2635000] = 62105; +$tabTri[2640000] = 62105; +$tabTri[2645000] = 62505; +$tabTri[2650000] = 62505; +$tabTri[2655000] = 62110; +$tabTri[2660000] = 62110; +$tabTri[2662000] = 62110; +$tabTri[2665000] = 62510; +$tabTri[2670000] = 62510; +$tabTri[2671000] = 62105; +$tabTri[2673000] = 62805; +$tabTri[2675000] = 62805; +$tabTri[2676000] = 62805; +$tabTri[2680000] = 62105; +$tabTri[2685000] = 62105; +$tabTri[2690000] = 62505; +$tabTri[2695000] = 62505; +$tabTri[2700000] = 62105; +$tabTri[2710000] = 62505; +$tabTri[2715000] = 62505; +$tabTri[2720000] = 62105; +$tabTri[2725000] = 62105; +$tabTri[2745000] = 62120; +$tabTri[2750000] = 62120; +$tabTri[2755000] = 62520; +$tabTri[2760000] = 62520; +$tabTri[2765000] = 62110; +$tabTri[2770000] = 62510; +$tabTri[2770010] = 51300; +$tabTri[2770011] = 80300; +$tabTri[2771000] = 62505; +$tabTri[3095000] = 62110; +$tabTri[3100000] = 62110; +$tabTri[3101000] = 62510; +$tabTri[3102000] = 62510; +$tabTri[3105000] = 62510; +$tabTri[3110000] = 62510; +$tabTri[3115000] = 62510; +$tabTri[3117000] = 62120; +$tabTri[3130000] = 62110; +$tabTri[3135000] = 62510; +$tabTri[3140000] = 62510; +$tabTri[3155000] = 62115; +$tabTri[3160000] = 62515; +$tabTri[3165000] = 62515; +$tabTri[3170000] = 62515; +$tabTri[3175000] = 62515; +$tabTri[3180000] = 62515; +$tabTri[3190000] = 62515; +$tabTri[3205000] = 62130; +$tabTri[3210000] = 62530; +$tabTri[3211000] = 62530; +$tabTri[3215000] = 62530; +$tabTri[3220000] = 62530; +$tabTri[3225000] = 62530; +$tabTri[3235000] = 62855; +$tabTri[3250000] = 62120; +$tabTri[3255000] = 62520; +$tabTri[3260000] = 62520; +$tabTri[3265000] = 62520; +$tabTri[3270000] = 62535; +$tabTri[3275000] = 62535; +$tabTri[3280000] = 62535; +$tabTri[3295000] = 62120; +$tabTri[3300000] = 62520; +$tabTri[3305000] = 62520; +$tabTri[3310000] = 62520; +$tabTri[3315000] = 62542; +$tabTri[3320000] = 62542; +$tabTri[3335000] = 62120; +$tabTri[3340000] = 62120; +$tabTri[3345000] = 62520; +$tabTri[3350000] = 62520; +$tabTri[3355000] = 62520; +$tabTri[3360000] = 62502; +$tabTri[3365000] = 62502; +$tabTri[3370000] = 62502; +$tabTri[3395000] = 62115; +$tabTri[3400000] = 62115; +$tabTri[3405000] = 62810; +$tabTri[3405100] = 62810; +$tabTri[3405500] = 62810; +$tabTri[3406000] = 62815; +$tabTri[3407000] = 62515; +$tabTri[3410000] = 62515; +$tabTri[3420000] = 62130; +$tabTri[3422000] = 62130; +$tabTri[3425000] = 62530; +$tabTri[3426000] = 62530; +$tabTri[3430000] = 62530; +$tabTri[3431000] = 62530; +$tabTri[3432000] = 62530; +$tabTri[3439000] = 62540; +$tabTri[3445000] = 62140; +$tabTri[3450000] = 62540; +$tabTri[3460000] = 62540; +$tabTri[3465000] = 62540; +$tabTri[3470000] = 62502; +$tabTri[3475000] = 62102; +$tabTri[3477000] = 62850; +$tabTri[3480000] = 62102; +$tabTri[3483000] = 62850; +$tabTri[3485000] = 62502; +$tabTri[3487000] = 62850; +$tabTri[3490000] = 62502; +$tabTri[3493000] = 62850; +$tabTri[3495000] = 62502; +$tabTri[3495010] = 62502; +$tabTri[3497000] = 62850; +$tabTri[3500000] = 62160; +$tabTri[3505000] = 62160; +$tabTri[3505001] = 62160; +$tabTri[3510000] = 62560; +$tabTri[3515000] = 62560; +$tabTri[3520000] = 62560; +$tabTri[3525000] = 62560; +$tabTri[3530000] = 62170; +$tabTri[3535000] = 62170; +$tabTri[3540000] = 62570; +$tabTri[3545000] = 62570; +$tabTri[3550000] = 62570; +$tabTri[3555000] = 62170; +$tabTri[3558000] = 62170; +$tabTri[3560000] = 62570; +$tabTri[3562000] = 62570; +$tabTri[3565000] = 62170; +$tabTri[3566000] = 62170; +$tabTri[3568000] = 62170; +$tabTri[3570000] = 62570; +$tabTri[3572000] = 62170; +$tabTri[3574000] = 62570; +$tabTri[3576000] = 62570; +$tabTri[3578000] = 62570; +$tabTri[3650000] = 62180; +$tabTri[3655000] = 62580; +$tabTri[3660000] = 62580; +$tabTri[3665000] = 62580; +$tabTri[3666000] = 62580; +$tabTri[3675000] = 62180; +$tabTri[3680000] = 62580; +$tabTri[3685000] = 62580; +$tabTri[3690000] = 62580; +$tabTri[3691000] = 62580; +$tabTri[3692000] = 62580; +$tabTri[3695000] = 62180; +$tabTri[3700000] = 62180; +$tabTri[3705000] = 62580; +$tabTri[3710000] = 62580; +$tabTri[3711000] = 62580; +$tabTri[3720000] = 62180; +$tabTri[3725000] = 62580; +$tabTri[3730000] = 62580; +$tabTri[3735000] = 62580; +$tabTri[3745000] = 62180; +$tabTri[3750000] = 62580; +$tabTri[3755000] = 62580; +$tabTri[3760000] = 62580; +$tabTri[3765000] = 62580; +$tabTri[3770000] = 62580; +$tabTri[3775000] = 62580; +$tabTri[3780000] = 62580; +$tabTri[3785000] = 62580; +$tabTri[3790000] = 62580; +$tabTri[3791000] = 62817; +$tabTri[3841000] = 62570; +$tabTri[3844000] = 62570; +$tabTri[3845000] = 62530; +$tabTri[3846000] = 62530; +$tabTri[3850000] = 62530; +$tabTri[3851000] = 62530; +$tabTri[3855000] = 62530; +$tabTri[3856000] = 62530; +$tabTri[3860000] = 62530; +$tabTri[3860001] = 62530; +$tabTri[3861000] = 62530; +$tabTri[3865000] = 62130; +$tabTri[3866000] = 62130; +$tabTri[3866001] = 62130; +$tabTri[3870000] = 62130; +$tabTri[3870001] = 62130; +$tabTri[3871000] = 62570; +$tabTri[3875000] = 62530; +$tabTri[3876000] = 62530; +$tabTri[3876001] = 62530; +$tabTri[3880000] = 62530; +$tabTri[3881000] = 62530; +$tabTri[3882000] = 62102; +$tabTri[3882001] = 62102; +$tabTri[3882100] = 62102; +$tabTri[3882101] = 62102; +$tabTri[3882200] = 62502; +$tabTri[3882201] = 62502; +$tabTri[3882300] = 62502; +$tabTri[3882301] = 62502; +$tabTri[3885000] = 62570; +$tabTri[3886000] = 62585; +$tabTri[3890000] = 62510; +$tabTri[3900100] = 62900; +$tabTri[3900200] = 62900; +$tabTri[3900300] = 62900; +$tabTri[3900301] = 62900; +$tabTri[3900400] = 62900; +$tabTri[3900401] = 62900; +$tabTri[3900410] = 62900; +$tabTri[3900411] = 62900; +$tabTri[3900415] = 62900; +$tabTri[3900416] = 62900; +$tabTri[3900420] = 62900; +$tabTri[3900421] = 62900; +$tabTri[3900500] = 62900; +$tabTri[3900501] = 62900; +$tabTri[3900510] = 62900; +$tabTri[3900511] = 62900; +$tabTri[3900520] = 62900; +$tabTri[3900521] = 62900; +$tabTri[3901100] = 62820; +$tabTri[3901110] = 62820; +$tabTri[3901120] = 62820; +$tabTri[3901200] = 62820; +$tabTri[3901210] = 62820; +$tabTri[3901300] = 62820; +$tabTri[3901301] = 62820; +$tabTri[3901309] = 62820; +$tabTri[3901400] = 42307; +$tabTri[3901500] = 62990; +$tabTri[3901510] = 62990; +$tabTri[3901511] = 62990; +$tabTri[3902100] = 62995; +$tabTri[3902101] = 62995; +$tabTri[3902110] = 62995; +$tabTri[3902111] = 62995; +$tabTri[3902130] = 62995; +$tabTri[3902131] = 62995; +$tabTri[3902200] = 62995; +$tabTri[3902300] = 62995; +$tabTri[3902301] = 62995; +$tabTri[3902310] = 62995; +$tabTri[3902311] = 62995; +$tabTri[3902330] = 62995; +$tabTri[3902331] = 62995; +$tabTri[3902900] = 62995; +$tabTri[3910001] = 63101; +$tabTri[3910001] = 63101; +$tabTri[3910011] = 63001; +$tabTri[3910011] = 63001; +$tabTri[3910100] = 63110; +$tabTri[3910101] = 63110; +$tabTri[3910120] = 63110; +$tabTri[3910121] = 63110; +$tabTri[3910130] = 63110; +$tabTri[3910131] = 63110; +$tabTri[3910135] = 63110; +$tabTri[3910136] = 63110; +$tabTri[3910140] = 63110; +$tabTri[3910141] = 63110; +$tabTri[3910145] = 63110; +$tabTri[3910146] = 63110; +$tabTri[3910150] = 63110; +$tabTri[3910151] = 63110; +$tabTri[3910155] = 63110; +$tabTri[3910156] = 63110; +$tabTri[3910160] = 63110; +$tabTri[3910161] = 63110; +$tabTri[3910170] = 63110; +$tabTri[3910171] = 63110; +$tabTri[3910180] = 63110; +$tabTri[3910181] = 63110; +$tabTri[3910190] = 63110; +$tabTri[3910191] = 63110; +$tabTri[3911001] = 63200; +$tabTri[3911001] = 63200; +$tabTri[3911100] = 63210; +$tabTri[3911101] = 63210; +$tabTri[3911110] = 63220; +$tabTri[3911111] = 63220; +$tabTri[3911120] = 63230; +$tabTri[3911121] = 63230; +$tabTri[3911130] = 63240; +$tabTri[3911131] = 63240; +$tabTri[3911145] = 63250; +$tabTri[3911146] = 63250; +$tabTri[3911150] = 63260; +$tabTri[3911151] = 63260; +$tabTri[3911160] = 63270; +$tabTri[3911161] = 63270; +$tabTri[3911170] = 63280; +$tabTri[3911171] = 63280; +$tabTri[3911180] = 63220; +$tabTri[3911181] = 63220; +$tabTri[3912001] = 63300; +$tabTri[3912001] = 63300; +$tabTri[3912100] = 63310; +$tabTri[3912101] = 63310; +$tabTri[3912110] = 63310; +$tabTri[3912111] = 63310; +$tabTri[3912120] = 63310; +$tabTri[3912121] = 63310; +$tabTri[3912125] = 63310; +$tabTri[3912126] = 63310; +$tabTri[3912130] = 63310; +$tabTri[3912131] = 63310; +$tabTri[3912140] = 63310; +$tabTri[3912141] = 63310; +$tabTri[3912145] = 63310; +$tabTri[3912146] = 63310; +$tabTri[3912150] = 63310; +$tabTri[3912151] = 63310; +$tabTri[3913000] = 64000; +$tabTri[3913100] = 64000; +$tabTri[3913200] = 64000; +$tabTri[3913300] = 64000; +$tabTri[4000010] = 51101; +$tabTri[4000010] = 51101; +$tabTri[4000021] = 51101; +$tabTri[4000022] = 51101; +$tabTri[4000023] = 51101; +$tabTri[4000024] = 51101; +$tabTri[4000100] = 51101; +$tabTri[4000110] = 51101; +$tabTri[4000120] = 51101; +$tabTri[4000150] = 51101; +$tabTri[4000200] = 51102; +$tabTri[4000205] = 51102; +$tabTri[4000210] = 51102; +$tabTri[4000220] = 51102; +$tabTri[4000300] = 51102; +$tabTri[4000305] = 51102; +$tabTri[4000310] = 51102; +$tabTri[4000320] = 51102; +$tabTri[4000400] = 51102; +$tabTri[4000405] = 51102; +$tabTri[4000410] = 51102; +$tabTri[4000420] = 51102; +$tabTri[4001000] = 51301; +$tabTri[4001100] = 51301; +$tabTri[4001101] = 51301; +$tabTri[4001110] = 51301; +$tabTri[4001111] = 51301; +$tabTri[4001120] = 51301; +$tabTri[4001190] = 51301; +$tabTri[4001200] = 51351; +$tabTri[4001201] = 51351; +$tabTri[4001202] = 51351; +$tabTri[4001210] = 51351; +$tabTri[4001300] = 51351; +$tabTri[4001310] = 51351; +$tabTri[4001311] = 51351; +$tabTri[4001312] = 51351; +$tabTri[4001500] = 51406; +$tabTri[4001600] = 51501; +$tabTri[5000100] = 70200; +$tabTri[5000200] = 70200; +$tabTri[5000201] = 70200; +$tabTri[5000202] = 70200; +$tabTri[5000203] = 70200; +$tabTri[5000204] = 70200; +$tabTri[5000209] = 70200; +$tabTri[5000300] = 70200; +$tabTri[5000400] = 70200; +$tabTri[5000500] = 70200; +$tabTri[5000621] = 70200; +$tabTri[5000622] = 70200; +$tabTri[5000624] = 70200; +$tabTri[5000629] = 70200; +$tabTri[5000631] = 70200; +$tabTri[5000650] = 70200; +$tabTri[5000999] = 70200; +$tabTri[5001100] = 70100; +$tabTri[8002000] = 80200; +$tabTri[8003000] = 80200; +$tabTri[8004000] = 80400; +$tabTri[8004001] = 80400; +$tabTri[8004002] = 80400; +$tabTri[8004009] = 80400; +$tabTri[10000000] = 12000; +$tabTri[10000010] = 13000; +$tabTri[10000020] = 14000; +$tabTri[10000030] = 16000; +$tabTri[10000050] = 20000; +$tabTri[10000100] = 30000; +$tabTri[10000200] = 40000; +$tabTri[10000200] = 49999; +$tabTri[10000300] = 41100; +$tabTri[10000305] = 41105; +$tabTri[10000355] = 42005; +$tabTri[10000355] = 42999; +$tabTri[10000400] = 43000; +$tabTri[10000400] = 43999; +$tabTri[10000500] = 50000; +$tabTri[10000500] = 62999; +$tabTri[10000510] = 51100; +$tabTri[10000510] = 51100; +$tabTri[10000520] = 51300; +$tabTri[10000550] = 52000; +$tabTri[10000550] = 62799; +$tabTri[10000555] = 52500; +$tabTri[10000560] = 54100; +$tabTri[10000600] = 62000; +$tabTri[10000700] = 62099; +$tabTri[10000800] = 62499; +$tabTri[10000900] = 62799; +$tabTri[10000910] = 63000; +$tabTri[10000910] = 89999; +$tabTri[10001000] = 70000; +$tabTri[10007500] = 75000; +$tabTri[10009000] = 80000; +$tabTriAff=array(); +$tabTriAff[5000] = 1000.10005; +$tabTriAff[7000] = 5000.10007; +$tabTriAff[7001] = 5000.10007001; +$tabTriAff[7002] = 5000.10007002; +$tabTriAff[7003] = 5000.10007003; +$tabTriAff[7101] = 5000.10007101; +$tabTriAff[7102] = 5000.10007102; +$tabTriAff[7110] = 5000.1000711; +$tabTriAff[7112] = 5000.10007112; +$tabTriAff[7113] = 5000.10007113; +$tabTriAff[7114] = 5000.10007114; +$tabTriAff[7115] = 5000.10007115; +$tabTriAff[7118] = 5000.10007118; +$tabTriAff[7119] = 5000.10007119; +$tabTriAff[8002] = 16999.10008002; +$tabTriAff[8003] = 16999.10008003; +$tabTriAff[8004] = 16999.10008004; +$tabTriAff[8011] = 5000.10008011; +$tabTriAff[8021] = 16990.10008021; +$tabTriAff[8101] = 62000.10008101; +$tabTriAff[8102] = 62000.10008102; +$tabTriAff[8103] = 62000.10008103; +$tabTriAff[9995] = 13101.10009995; +$tabTriAff[9996] = 13100.10009996; +$tabTriAff[9997] = 13101.10009997; +$tabTriAff[10000] = 13700.1001; +$tabTriAff[12000] = 13400.10012; +$tabTriAff[13000] = 13300.10013; +$tabTriAff[14000] = 13900.10014; +$tabTriAff[17000] = 13500.10017; +$tabTriAff[18000] = 13500.10018; +$tabTriAff[19000] = 13500.10019; +$tabTriAff[20000] = 13500.1002; +$tabTriAff[21010] = 14300.1002101; +$tabTriAff[21020] = 14300.1002102; +$tabTriAff[21030] = 14300.1002103; +$tabTriAff[21040] = 14300.1002104; +$tabTriAff[21050] = 14300.1002105; +$tabTriAff[21060] = 14300.1002106; +$tabTriAff[21070] = 14300.1002107; +$tabTriAff[23010] = 14100.1002301; +$tabTriAff[23020] = 14100.1002302; +$tabTriAff[23030] = 14100.1002303; +$tabTriAff[23050] = 14100.1002305; +$tabTriAff[23100] = 14100.100231; +$tabTriAff[23200] = 14100.100232; +$tabTriAff[23900] = 14100.100239; +$tabTriAff[24021] = 14150.10024021; +$tabTriAff[24022] = 14150.10024022; +$tabTriAff[24028] = 14150.10024028; +$tabTriAff[25000] = 13210.10025; +$tabTriAff[25001] = 13210.10025001; +$tabTriAff[25010] = 13210.1002501; +$tabTriAff[26000] = 13220.10026; +$tabTriAff[27000] = 13250.10027; +$tabTriAff[28000] = 13260.10028; +$tabTriAff[29000] = 13230.10029; +$tabTriAff[31010] = 13600.1003101; +$tabTriAff[31020] = 13600.1003102; +$tabTriAff[31030] = 13600.1003103; +$tabTriAff[31040] = 13600.1003104; +$tabTriAff[31050] = 13600.1003105; +$tabTriAff[31060] = 13600.1003106; +$tabTriAff[31070] = 13600.1003107; +$tabTriAff[34800] = 12100.100348; +$tabTriAff[34801] = 12100.10034801; +$tabTriAff[34802] = 12100.10034802; +$tabTriAff[34810] = 12100.1003481; +$tabTriAff[34819] = 12100.10034819; +$tabTriAff[34820] = 12100.1003482; +$tabTriAff[34830] = 12100.1003483; +$tabTriAff[34850] = 12100.1003485; +$tabTriAff[34900] = 12100.100349; +$tabTriAff[34901] = 12100.10034901; +$tabTriAff[34902] = 12100.10034902; +$tabTriAff[34910] = 12100.1003491; +$tabTriAff[34920] = 12100.1003492; +$tabTriAff[34930] = 12120.1003493; +$tabTriAff[34931] = 12120.10034931; +$tabTriAff[35000] = 12150.10035; +$tabTriAff[35010] = 13800.1003501; +$tabTriAff[35010] = 13800.1003501; +$tabTriAff[37000] = 12300.10037; +$tabTriAff[38000] = 12300.10038; +$tabTriAff[39000] = 12300.10039; +$tabTriAff[40000] = 12300.1004; +$tabTriAff[41000] = 12300.10041; +$tabTriAff[42000] = 12300.10042; +$tabTriAff[43000] = 12300.10043; +$tabTriAff[44000] = 12300.10044; +$tabTriAff[45000] = 14250.10045; +$tabTriAff[45001] = 14250.10045001; +$tabTriAff[45010] = 15200.1004501; +$tabTriAff[45020] = 15500.1004502; +$tabTriAff[45022] = 15500.10045022; +$tabTriAff[45030] = 15500.1004503; +$tabTriAff[45032] = 15500.10045032; +$tabTriAff[45090] = 15500.1004509; +$tabTriAff[45092] = 15500.10045092; +$tabTriAff[46011] = 15600.10046011; +$tabTriAff[46012] = 15600.10046012; +$tabTriAff[46013] = 15600.10046013; +$tabTriAff[46021] = 15600.10046021; +$tabTriAff[46022] = 15600.10046022; +$tabTriAff[46023] = 15600.10046023; +$tabTriAff[47000] = 15700.10047; +$tabTriAff[47010] = 15700.1004701; +$tabTriAff[47020] = 15700.1004702; +$tabTriAff[47021] = 15700.10047021; +$tabTriAff[50010] = 15101.1005001; +$tabTriAff[50011] = 15101.10050011; +$tabTriAff[50020] = 15101.1005002; +$tabTriAff[51000] = 15300.10051; +$tabTriAff[52000] = 15300.10052; +$tabTriAff[53000] = 15300.10053; +$tabTriAff[54000] = 15300.10054; +$tabTriAff[54500] = 15400.100545; +$tabTriAff[54501] = 15400.10054501; +$tabTriAff[54502] = 15400.10054502; +$tabTriAff[54508] = 15400.10054508; +$tabTriAff[54509] = 15400.10054509; +$tabTriAff[54510] = 15400.1005451; +$tabTriAff[54511] = 15400.10054511; +$tabTriAff[54512] = 15400.10054512; +$tabTriAff[54513] = 15400.10054513; +$tabTriAff[54514] = 15400.10054514; +$tabTriAff[55101] = 15800.10055101; +$tabTriAff[55102] = 15800.10055102; +$tabTriAff[55103] = 15800.10055103; +$tabTriAff[55111] = 15800.10055111; +$tabTriAff[55112] = 15800.10055112; +$tabTriAff[55121] = 15800.10055121; +$tabTriAff[55122] = 15800.10055122; +$tabTriAff[55131] = 15800.10055131; +$tabTriAff[55132] = 15800.10055132; +$tabTriAff[55133] = 15800.10055133; +$tabTriAff[55210] = 15800.1005521; +$tabTriAff[55211] = 15800.10055211; +$tabTriAff[55212] = 15800.10055212; +$tabTriAff[55213] = 15800.10055213; +$tabTriAff[55220] = 15800.1005522; +$tabTriAff[55221] = 15800.10055221; +$tabTriAff[55222] = 15800.10055222; +$tabTriAff[55223] = 15800.10055223; +$tabTriAff[55231] = 15800.10055231; +$tabTriAff[55232] = 15800.10055232; +$tabTriAff[55241] = 15800.10055241; +$tabTriAff[55242] = 15800.10055242; +$tabTriAff[55251] = 15800.10055251; +$tabTriAff[55252] = 15800.10055252; +$tabTriAff[55253] = 15800.10055253; +$tabTriAff[55254] = 15800.10055254; +$tabTriAff[55255] = 15800.10055255; +$tabTriAff[55256] = 15800.10055256; +$tabTriAff[55257] = 15800.10055257; +$tabTriAff[55300] = 15800.100553; +$tabTriAff[55301] = 15800.10055301; +$tabTriAff[55302] = 15800.10055302; +$tabTriAff[55310] = 15800.1005531; +$tabTriAff[55311] = 15800.10055311; +$tabTriAff[55312] = 15800.10055312; +$tabTriAff[55320] = 15800.1005532; +$tabTriAff[55321] = 15800.10055321; +$tabTriAff[55322] = 15800.10055322; +$tabTriAff[55330] = 15800.1005533; +$tabTriAff[55331] = 15800.10055331; +$tabTriAff[55332] = 15800.10055332; +$tabTriAff[55340] = 15800.1005534; +$tabTriAff[55341] = 15800.10055341; +$tabTriAff[55342] = 15800.10055342; +$tabTriAff[55350] = 15800.1005535; +$tabTriAff[55351] = 15800.10055351; +$tabTriAff[55352] = 15800.10055352; +$tabTriAff[55360] = 15800.1005536; +$tabTriAff[55361] = 15800.10055361; +$tabTriAff[55362] = 15800.10055362; +$tabTriAff[55370] = 15800.1005537; +$tabTriAff[55371] = 15800.10055371; +$tabTriAff[55372] = 15800.10055372; +$tabTriAff[55380] = 15800.1005538; +$tabTriAff[55381] = 15800.10055381; +$tabTriAff[55382] = 15800.10055382; +$tabTriAff[55390] = 15800.1005539; +$tabTriAff[55391] = 15800.10055391; +$tabTriAff[55392] = 15800.10055392; +$tabTriAff[55400] = 15800.100554; +$tabTriAff[55401] = 15800.10055401; +$tabTriAff[55402] = 15800.10055402; +$tabTriAff[55410] = 15800.1005541; +$tabTriAff[55411] = 15800.10055411; +$tabTriAff[55412] = 15800.10055412; +$tabTriAff[55420] = 15800.1005542; +$tabTriAff[55421] = 15800.10055421; +$tabTriAff[55422] = 15800.10055422; +$tabTriAff[55430] = 15800.1005543; +$tabTriAff[55431] = 15800.10055431; +$tabTriAff[55432] = 15800.10055432; +$tabTriAff[55440] = 15800.1005544; +$tabTriAff[55441] = 15800.10055441; +$tabTriAff[55442] = 15800.10055442; +$tabTriAff[55450] = 15800.1005545; +$tabTriAff[55451] = 15800.10055451; +$tabTriAff[55452] = 15800.10055452; +$tabTriAff[55460] = 15800.1005546; +$tabTriAff[55461] = 15800.10055461; +$tabTriAff[55462] = 15800.10055462; +$tabTriAff[55470] = 15800.1005547; +$tabTriAff[55471] = 15800.10055471; +$tabTriAff[55472] = 15800.10055472; +$tabTriAff[55480] = 15800.1005548; +$tabTriAff[55481] = 15800.10055481; +$tabTriAff[55482] = 15800.10055482; +$tabTriAff[55490] = 15800.1005549; +$tabTriAff[55491] = 15800.10055491; +$tabTriAff[55492] = 15800.10055492; +$tabTriAff[65001] = 40130.10065001; +$tabTriAff[90010] = 16100.1009001; +$tabTriAff[90011] = 16100.10090011; +$tabTriAff[91000] = 22100.10091; +$tabTriAff[91100] = 22100.100911; +$tabTriAff[92000] = 22100.10092; +$tabTriAff[92100] = 22100.100921; +$tabTriAff[92200] = 22100.100922; +$tabTriAff[92210] = 22100.1009221; +$tabTriAff[92220] = 22100.1009222; +$tabTriAff[92230] = 22100.1009223; +$tabTriAff[92240] = 22100.1009224; +$tabTriAff[92300] = 22100.100923; +$tabTriAff[93000] = 22100.10093; +$tabTriAff[93001] = 22100.10093001; +$tabTriAff[93002] = 22100.10093002; +$tabTriAff[93010] = 22100.1009301; +$tabTriAff[93050] = 22100.1009305; +$tabTriAff[93051] = 22100.10093051; +$tabTriAff[93052] = 22100.10093052; +$tabTriAff[94000] = 16200.10094; +$tabTriAff[94010] = 16200.1009401; +$tabTriAff[95000] = 22100.10095; +$tabTriAff[96000] = 22100.10096; +$tabTriAff[97001] = 41110.10097001; +$tabTriAff[98000] = 15010.10098; +$tabTriAff[98100] = 15010.100981; +$tabTriAff[98200] = 15010.100982; +$tabTriAff[98201] = 15010.10098201; +$tabTriAff[98300] = 15010.100983; +$tabTriAff[98301] = 15010.10098301; +$tabTriAff[98400] = 15010.100984; +$tabTriAff[99000] = 15010.10099; +$tabTriAff[99099] = 15010.10099099; +$tabTriAff[99100] = 15010.100991; +$tabTriAff[99101] = 15010.10099101; +$tabTriAff[99102] = 15010.10099102; +$tabTriAff[99110] = 15010.1009911; +$tabTriAff[99201] = 15010.10099201; +$tabTriAff[99300] = 15010.100993; +$tabTriAff[99301] = 15010.10099301; +$tabTriAff[99400] = 15010.100994; +$tabTriAff[99401] = 15010.10099401; +$tabTriAff[99402] = 15010.10099402; +$tabTriAff[99410] = 15010.1009941; +$tabTriAff[100000] = 53100.101; +$tabTriAff[101000] = 53100.10101; +$tabTriAff[101001] = 53100.10101001; +$tabTriAff[101002] = 53100.10101002; +$tabTriAff[101008] = 53100.10101008; +$tabTriAff[101009] = 53100.10101009; +$tabTriAff[101010] = 53100.1010101; +$tabTriAff[101011] = 53100.10101011; +$tabTriAff[101012] = 53100.10101012; +$tabTriAff[101013] = 53100.10101013; +$tabTriAff[101014] = 53100.10101014; +$tabTriAff[150000] = 16100.1015; +$tabTriAff[150001] = 16100.10150001; +$tabTriAff[170000] = 16100.1017; +$tabTriAff[180000] = 16100.1018; +$tabTriAff[180010] = 16100.1018001; +$tabTriAff[180019] = 16100.10180019; +$tabTriAff[187000] = 16100.10187; +$tabTriAff[188000] = 16100.10188; +$tabTriAff[189000] = 16100.10189; +$tabTriAff[190000] = 16100.1019; +$tabTriAff[190009] = 16100.10190009; +$tabTriAff[191000] = 22100.10191; +$tabTriAff[192000] = 22100.10192; +$tabTriAff[193000] = 22100.10193; +$tabTriAff[194000] = 22100.10194; +$tabTriAff[195000] = 22100.10195; +$tabTriAff[196000] = 22100.10196; +$tabTriAff[197000] = 40100.10197; +$tabTriAff[197100] = 40100.101971; +$tabTriAff[198001] = 41110.10198001; +$tabTriAff[199000] = 15010.10199; +$tabTriAff[200000] = 15010.102; +$tabTriAff[201000] = 15010.10201; +$tabTriAff[202000] = 15010.10202; +$tabTriAff[203000] = 15010.10203; +$tabTriAff[204000] = 15010.10204; +$tabTriAff[205000] = 15010.10205; +$tabTriAff[205099] = 15010.10205099; +$tabTriAff[205200] = 15010.102052; +$tabTriAff[205301] = 15010.10205301; +$tabTriAff[205305] = 15010.10205305; +$tabTriAff[205310] = 15010.1020531; +$tabTriAff[206000] = 40130.10206; +$tabTriAff[207000] = 40130.10207; +$tabTriAff[208000] = 40130.10208; +$tabTriAff[208001] = 80400.10208001; +$tabTriAff[208002] = 80400.10208002; +$tabTriAff[208003] = 51450.10208003; +$tabTriAff[209000] = 40130.10209; +$tabTriAff[210000] = 40130.1021; +$tabTriAff[212000] = 40130.10212; +$tabTriAff[213000] = 15010.10213; +$tabTriAff[213010] = 15010.1021301; +$tabTriAff[213100] = 15010.102131; +$tabTriAff[213110] = 15010.1021311; +$tabTriAff[214000] = 15010.10214; +$tabTriAff[214001] = 15010.10214001; +$tabTriAff[214010] = 15010.1021401; +$tabTriAff[214011] = 15010.10214011; +$tabTriAff[215100] = 75002.102151; +$tabTriAff[215200] = 75002.102152; +$tabTriAff[215201] = 75002.10215201; +$tabTriAff[215250] = 75002.1021525; +$tabTriAff[215251] = 75002.10215251; +$tabTriAff[215300] = 75002.102153; +$tabTriAff[215400] = 75002.102154; +$tabTriAff[215401] = 75002.10215401; +$tabTriAff[215450] = 75002.1021545; +$tabTriAff[215500] = 75002.102155; +$tabTriAff[218000] = 75005.10218; +$tabTriAff[219000] = 75005.10219; +$tabTriAff[219001] = 80100.10219001; +$tabTriAff[219002] = 80100.10219002; +$tabTriAff[220000] = 75005.1022; +$tabTriAff[221000] = 75005.10221; +$tabTriAff[222000] = 75005.10222; +$tabTriAff[223000] = 75005.10223; +$tabTriAff[224000] = 75005.10224; +$tabTriAff[225000] = 75005.10225; +$tabTriAff[226000] = 75005.10226; +$tabTriAff[228000] = 75005.10228; +$tabTriAff[229000] = 75005.10229; +$tabTriAff[230000] = 75005.1023; +$tabTriAff[231000] = 75005.10231; +$tabTriAff[233000] = 75005.10233; +$tabTriAff[234000] = 75005.10234; +$tabTriAff[235000] = 75005.10235; +$tabTriAff[236000] = 75005.10236; +$tabTriAff[237000] = 75005.10237; +$tabTriAff[238000] = 75005.10238; +$tabTriAff[239000] = 75005.10239; +$tabTriAff[240000] = 75005.1024; +$tabTriAff[241000] = 75005.10241; +$tabTriAff[242000] = 75005.10242; +$tabTriAff[243000] = 75005.10243; +$tabTriAff[243100] = 75005.102431; +$tabTriAff[244000] = 75005.10244; +$tabTriAff[245000] = 75005.10245; +$tabTriAff[246000] = 75005.10246; +$tabTriAff[246010] = 75005.1024601; +$tabTriAff[246011] = 75005.10246011; +$tabTriAff[246012] = 75005.10246012; +$tabTriAff[246020] = 75005.1024602; +$tabTriAff[246100] = 75005.102461; +$tabTriAff[246900] = 80100.102469; +$tabTriAff[246910] = 80100.1024691; +$tabTriAff[249000] = 64100.10249; +$tabTriAff[250000] = 64100.1025; +$tabTriAff[251000] = 64100.10251; +$tabTriAff[252000] = 64100.10252; +$tabTriAff[253000] = 64100.10253; +$tabTriAff[260000] = 21200.1026; +$tabTriAff[260010] = 21200.1026001; +$tabTriAff[260011] = 21200.10260011; +$tabTriAff[260020] = 21200.1026002; +$tabTriAff[260021] = 21200.10260021; +$tabTriAff[260030] = 21200.1026003; +$tabTriAff[260040] = 21200.1026004; +$tabTriAff[261000] = 21300.10261; +$tabTriAff[261001] = 21300.10261001; +$tabTriAff[261010] = 21300.1026101; +$tabTriAff[261011] = 21300.10261011; +$tabTriAff[261020] = 21300.1026102; +$tabTriAff[261021] = 21300.10261021; +$tabTriAff[261030] = 21300.1026103; +$tabTriAff[261031] = 21300.10261031; +$tabTriAff[261035] = 21300.10261035; +$tabTriAff[261040] = 21300.1026104; +$tabTriAff[261041] = 21300.10261041; +$tabTriAff[261050] = 21300.1026105; +$tabTriAff[261051] = 21300.10261051; +$tabTriAff[262000] = 21300.10262; +$tabTriAff[262001] = 21300.10262001; +$tabTriAff[264000] = 22010.10264; +$tabTriAff[264500] = 22010.102645; +$tabTriAff[265000] = 22010.10265; +$tabTriAff[265001] = 22010.10265001; +$tabTriAff[265002] = 22010.10265002; +$tabTriAff[265010] = 22010.1026501; +$tabTriAff[266000] = 22400.10266; +$tabTriAff[266001] = 22400.10266001; +$tabTriAff[267000] = 22500.10267; +$tabTriAff[268000] = 22600.10268; +$tabTriAff[268011] = 22600.10268011; +$tabTriAff[268012] = 22600.10268012; +$tabTriAff[268013] = 22600.10268013; +$tabTriAff[268100] = 22600.102681; +$tabTriAff[268111] = 22600.10268111; +$tabTriAff[268112] = 22600.10268112; +$tabTriAff[268113] = 22600.10268113; +$tabTriAff[268200] = 22600.102682; +$tabTriAff[268211] = 22600.10268211; +$tabTriAff[268212] = 22600.10268212; +$tabTriAff[268213] = 22600.10268213; +$tabTriAff[268214] = 22600.10268214; +$tabTriAff[270010] = 30010.1027001; +$tabTriAff[270020] = 30010.1027002; +$tabTriAff[270030] = 30010.1027003; +$tabTriAff[270040] = 30010.1027004; +$tabTriAff[270041] = 30010.10270041; +$tabTriAff[270042] = 30010.10270042; +$tabTriAff[270043] = 30010.10270043; +$tabTriAff[270048] = 30010.10270048; +$tabTriAff[270101] = 30300.10270101; +$tabTriAff[275010] = 33400.1027501; +$tabTriAff[275011] = 33400.10275011; +$tabTriAff[276000] = 33400.10276; +$tabTriAff[276001] = 33400.10276001; +$tabTriAff[285000] = 33400.10285; +$tabTriAff[290001] = 41110.10290001; +$tabTriAff[295000] = 41110.10295; +$tabTriAff[312000] = 33400.10312; +$tabTriAff[315000] = 33400.10315; +$tabTriAff[320000] = 21200.1032; +$tabTriAff[325000] = 21200.10325; +$tabTriAff[330000] = 33400.1033; +$tabTriAff[330001] = 33400.10330001; +$tabTriAff[335001] = 41110.10335001; +$tabTriAff[340000] = 33400.1034; +$tabTriAff[345000] = 33400.10345; +$tabTriAff[350000] = 33400.1035; +$tabTriAff[355000] = 33400.10355; +$tabTriAff[395000] = 33400.10395; +$tabTriAff[396000] = 33400.10396; +$tabTriAff[396000] = 33400.10396; +$tabTriAff[396000] = 33400.10396; +$tabTriAff[400000] = 33500.104; +$tabTriAff[400101] = 17100.10400101; +$tabTriAff[400102] = 17100.10400102; +$tabTriAff[400109] = 30100.10400109; +$tabTriAff[400151] = 17100.10400151; +$tabTriAff[400152] = 17100.10400152; +$tabTriAff[400153] = 17100.10400153; +$tabTriAff[400159] = 30200.10400159; +$tabTriAff[400170] = 30200.1040017; +$tabTriAff[400201] = 17200.10400201; +$tabTriAff[400202] = 17200.10400202; +$tabTriAff[400209] = 30100.10400209; +$tabTriAff[400251] = 17200.10400251; +$tabTriAff[400301] = 17300.10400301; +$tabTriAff[400302] = 17300.10400302; +$tabTriAff[400303] = 30100.10400303; +$tabTriAff[400304] = 17300.10400304; +$tabTriAff[400305] = 17300.10400305; +$tabTriAff[400306] = 30100.10400306; +$tabTriAff[400307] = 17300.10400307; +$tabTriAff[400308] = 17300.10400308; +$tabTriAff[400309] = 30100.10400309; +$tabTriAff[400317] = 17300.10400317; +$tabTriAff[400318] = 17300.10400318; +$tabTriAff[400319] = 17300.10400319; +$tabTriAff[400320] = 17300.1040032; +$tabTriAff[400330] = 17300.1040033; +$tabTriAff[400401] = 17400.10400401; +$tabTriAff[400402] = 17400.10400402; +$tabTriAff[400408] = 17400.10400408; +$tabTriAff[400409] = 30100.10400409; +$tabTriAff[400501] = 17500.10400501; +$tabTriAff[400502] = 17500.10400502; +$tabTriAff[400509] = 30100.10400509; +$tabTriAff[400610] = 17500.1040061; +$tabTriAff[400611] = 17500.10400611; +$tabTriAff[400620] = 17500.1040062; +$tabTriAff[400630] = 17500.1040063; +$tabTriAff[400631] = 17500.10400631; +$tabTriAff[400900] = 19000.104009; +$tabTriAff[400901] = 19000.10400901; +$tabTriAff[400902] = 19000.10400902; +$tabTriAff[400903] = 19000.10400903; +$tabTriAff[400910] = 19000.1040091; +$tabTriAff[400950] = 30400.1040095; +$tabTriAff[400951] = 30400.10400951; +$tabTriAff[400955] = 30400.10400955; +$tabTriAff[400960] = 30500.1040096; +$tabTriAff[400965] = 30500.10400965; +$tabTriAff[400966] = 30500.10400966; +$tabTriAff[400967] = 30500.10400967; +$tabTriAff[400970] = 30600.1040097; +$tabTriAff[400971] = 30600.10400971; +$tabTriAff[400972] = 30600.10400972; +$tabTriAff[401101] = 21100.10401101; +$tabTriAff[401102] = 21100.10401102; +$tabTriAff[401103] = 21100.10401103; +$tabTriAff[401104] = 21100.10401104; +$tabTriAff[401105] = 21100.10401105; +$tabTriAff[401106] = 21100.10401106; +$tabTriAff[401201] = 21100.10401201; +$tabTriAff[401211] = 21100.10401211; +$tabTriAff[401221] = 21100.10401221; +$tabTriAff[401510] = 30005.1040151; +$tabTriAff[401511] = 30005.10401511; +$tabTriAff[401512] = 30005.10401512; +$tabTriAff[401513] = 30005.10401513; +$tabTriAff[401520] = 30005.1040152; +$tabTriAff[401521] = 30005.10401521; +$tabTriAff[401522] = 30005.10401522; +$tabTriAff[401523] = 30005.10401523; +$tabTriAff[401701] = 30700.10401701; +$tabTriAff[401702] = 30700.10401702; +$tabTriAff[401801] = 31000.10401801; +$tabTriAff[402100] = 33100.104021; +$tabTriAff[402200] = 33100.104022; +$tabTriAff[402300] = 33100.104023; +$tabTriAff[402400] = 33100.104024; +$tabTriAff[402500] = 33200.104025; +$tabTriAff[402500] = 33200.104025; +$tabTriAff[402501] = 33200.10402501; +$tabTriAff[402502] = 33200.10402502; +$tabTriAff[402503] = 33200.10402503; +$tabTriAff[402504] = 33200.10402504; +$tabTriAff[402505] = 33200.10402505; +$tabTriAff[402506] = 33200.10402506; +$tabTriAff[402507] = 33200.10402507; +$tabTriAff[402508] = 33200.10402508; +$tabTriAff[402509] = 33200.10402509; +$tabTriAff[403000] = 33200.10403; +$tabTriAff[403010] = 33200.1040301; +$tabTriAff[403011] = 33200.10403011; +$tabTriAff[403012] = 33200.10403012; +$tabTriAff[403015] = 33200.10403015; +$tabTriAff[404000] = 33300.10404; +$tabTriAff[405000] = 33300.10405; +$tabTriAff[406100] = 35000.104061; +$tabTriAff[406101] = 35000.10406101; +$tabTriAff[406110] = 35000.1040611; +$tabTriAff[406111] = 35000.10406111; +$tabTriAff[406120] = 35000.1040612; +$tabTriAff[406121] = 35000.10406121; +$tabTriAff[406190] = 35000.1040619; +$tabTriAff[406191] = 35000.10406191; +$tabTriAff[406200] = 35000.104062; +$tabTriAff[406201] = 35000.10406201; +$tabTriAff[410000] = 18100.1041; +$tabTriAff[410010] = 18100.1041001; +$tabTriAff[410100] = 18100.104101; +$tabTriAff[410200] = 18100.104102; +$tabTriAff[410201] = 18100.10410201; +$tabTriAff[410209] = 18100.10410209; +$tabTriAff[410250] = 18100.1041025; +$tabTriAff[410251] = 18100.10410251; +$tabTriAff[410259] = 18100.10410259; +$tabTriAff[410270] = 18100.1041027; +$tabTriAff[410271] = 18100.10410271; +$tabTriAff[410279] = 18100.10410279; +$tabTriAff[410300] = 18100.104103; +$tabTriAff[410310] = 18100.1041031; +$tabTriAff[410315] = 18100.10410315; +$tabTriAff[410316] = 18100.10410316; +$tabTriAff[410400] = 18100.104104; +$tabTriAff[410401] = 18100.10410401; +$tabTriAff[410500] = 18100.104105; +$tabTriAff[410800] = 18100.104108; +$tabTriAff[410800] = 18100.104108; +$tabTriAff[410800] = 18100.104108; +$tabTriAff[410810] = 18100.1041081; +$tabTriAff[412000] = 18000.10412; +$tabTriAff[412000] = 18000.10412; +$tabTriAff[412010] = 18000.1041201; +$tabTriAff[412020] = 18000.1041202; +$tabTriAff[422000] = 40110.10422; +$tabTriAff[424000] = 40110.10424; +$tabTriAff[424010] = 40110.1042401; +$tabTriAff[424020] = 40110.1042402; +$tabTriAff[426000] = 40120.10426; +$tabTriAff[426200] = 40120.104262; +$tabTriAff[426500] = 40120.104265; +$tabTriAff[426700] = 40120.104267; +$tabTriAff[427000] = 40120.10427; +$tabTriAff[428000] = 40120.10428; +$tabTriAff[429000] = 40120.10429; +$tabTriAff[430000] = 40120.1043; +$tabTriAff[431000] = 40120.10431; +$tabTriAff[435000] = 40120.10435; +$tabTriAff[437000] = 40120.10437; +$tabTriAff[443000] = 41140.10443; +$tabTriAff[445000] = 41140.10445; +$tabTriAff[445001] = 41140.10445001; +$tabTriAff[447000] = 41140.10447; +$tabTriAff[448000] = 41140.10448; +$tabTriAff[450000] = 41140.1045; +$tabTriAff[453000] = 41140.10453; +$tabTriAff[455000] = 41140.10455; +$tabTriAff[455001] = 41140.10455001; +$tabTriAff[456000] = 41140.10456; +$tabTriAff[457000] = 41140.10457; +$tabTriAff[458000] = 41140.10458; +$tabTriAff[460000] = 41140.1046; +$tabTriAff[464000] = 41140.10464; +$tabTriAff[464010] = 41140.1046401; +$tabTriAff[466000] = 41140.10466; +$tabTriAff[466001] = 41140.10466001; +$tabTriAff[468000] = 41140.10468; +$tabTriAff[470000] = 41140.1047; +$tabTriAff[470001] = 41140.10470001; +$tabTriAff[471000] = 41140.10471; +$tabTriAff[471001] = 41140.10471001; +$tabTriAff[471002] = 41140.10471002; +$tabTriAff[472000] = 41140.10472; +$tabTriAff[472001] = 41140.10472001; +$tabTriAff[472002] = 41140.10472002; +$tabTriAff[474000] = 41140.10474; +$tabTriAff[476000] = 41140.10476; +$tabTriAff[477000] = 41140.10477; +$tabTriAff[477100] = 41140.104771; +$tabTriAff[477200] = 41140.104772; +$tabTriAff[477250] = 41140.1047725; +$tabTriAff[478000] = 41140.10478; +$tabTriAff[478100] = 41140.104781; +$tabTriAff[478200] = 41140.104782; +$tabTriAff[500000] = 41140.105; +$tabTriAff[500001] = 41140.10500001; +$tabTriAff[502000] = 41140.10502; +$tabTriAff[502001] = 41140.10502001; +$tabTriAff[504000] = 41140.10504; +$tabTriAff[504001] = 41140.10504001; +$tabTriAff[506000] = 41140.10506; +$tabTriAff[506001] = 41140.10506001; +$tabTriAff[508000] = 41140.10508; +$tabTriAff[508001] = 41140.10508001; +$tabTriAff[510000] = 41140.1051; +$tabTriAff[510001] = 41140.10510001; +$tabTriAff[510002] = 41140.10510002; +$tabTriAff[510003] = 41140.10510003; +$tabTriAff[510004] = 41140.10510004; +$tabTriAff[510010] = 41140.1051001; +$tabTriAff[535000] = 41140.10535; +$tabTriAff[535001] = 41140.10535001; +$tabTriAff[535005] = 41140.10535005; +$tabTriAff[535006] = 41140.10535006; +$tabTriAff[540000] = 41140.1054; +$tabTriAff[540001] = 41140.10540001; +$tabTriAff[540005] = 41140.10540005; +$tabTriAff[542000] = 41140.10542; +$tabTriAff[542001] = 41140.10542001; +$tabTriAff[542002] = 41140.10542002; +$tabTriAff[542005] = 41140.10542005; +$tabTriAff[544000] = 41140.10544; +$tabTriAff[544001] = 41140.10544001; +$tabTriAff[544002] = 41140.10544002; +$tabTriAff[544003] = 41140.10544003; +$tabTriAff[544004] = 41140.10544004; +$tabTriAff[544005] = 41140.10544005; +$tabTriAff[548000] = 41140.10548; +$tabTriAff[548001] = 41140.10548001; +$tabTriAff[548002] = 41140.10548002; +$tabTriAff[548003] = 41140.10548003; +$tabTriAff[548004] = 41140.10548004; +$tabTriAff[548005] = 41140.10548005; +$tabTriAff[548006] = 41140.10548006; +$tabTriAff[549000] = 41140.10549; +$tabTriAff[549001] = 41140.10549001; +$tabTriAff[549002] = 41140.10549002; +$tabTriAff[549005] = 41140.10549005; +$tabTriAff[549006] = 41140.10549006; +$tabTriAff[551000] = 41140.10551; +$tabTriAff[551001] = 41140.10551001; +$tabTriAff[551002] = 41140.10551002; +$tabTriAff[551004] = 41140.10551004; +$tabTriAff[551005] = 41140.10551005; +$tabTriAff[551010] = 41140.1055101; +$tabTriAff[552000] = 41140.10552; +$tabTriAff[552001] = 41140.10552001; +$tabTriAff[552002] = 41140.10552002; +$tabTriAff[552005] = 41140.10552005; +$tabTriAff[552006] = 41140.10552006; +$tabTriAff[552010] = 41140.1055201; +$tabTriAff[554000] = 41140.10554; +$tabTriAff[554001] = 41140.10554001; +$tabTriAff[554002] = 41140.10554002; +$tabTriAff[554005] = 41140.10554005; +$tabTriAff[554006] = 41140.10554006; +$tabTriAff[554010] = 41140.1055401; +$tabTriAff[565000] = 41140.10565; +$tabTriAff[570000] = 41140.1057; +$tabTriAff[571000] = 41140.10571; +$tabTriAff[572000] = 41140.10572; +$tabTriAff[575000] = 41140.10575; +$tabTriAff[590000] = 41110.1059; +$tabTriAff[595000] = 41110.10595; +$tabTriAff[600000] = 41110.106; +$tabTriAff[605000] = 41110.10605; +$tabTriAff[610000] = 41110.1061; +$tabTriAff[615000] = 41110.10615; +$tabTriAff[625000] = 41110.10625; +$tabTriAff[630000] = 41110.1063; +$tabTriAff[650101] = 41110.10650101; +$tabTriAff[650102] = 41110.10650102; +$tabTriAff[650103] = 41110.10650103; +$tabTriAff[650104] = 41110.10650104; +$tabTriAff[650109] = 41110.10650109; +$tabTriAff[650111] = 41110.10650111; +$tabTriAff[650112] = 41110.10650112; +$tabTriAff[652000] = 41110.10652; +$tabTriAff[655000] = 41110.10655; +$tabTriAff[660000] = 41110.1066; +$tabTriAff[665000] = 41110.10665; +$tabTriAff[665001] = 41110.10665001; +$tabTriAff[665009] = 41110.10665009; +$tabTriAff[667000] = 41110.10667; +$tabTriAff[670000] = 41110.1067; +$tabTriAff[670001] = 41110.10670001; +$tabTriAff[670100] = 41110.106701; +$tabTriAff[670101] = 41110.10670101; +$tabTriAff[670200] = 41110.106702; +$tabTriAff[670201] = 41110.10670201; +$tabTriAff[672000] = 41110.10672; +$tabTriAff[675000] = 41110.10675; +$tabTriAff[680000] = 41110.1068; +$tabTriAff[685000] = 41110.10685; +$tabTriAff[690000] = 41110.1069; +$tabTriAff[690001] = 41110.10690001; +$tabTriAff[690002] = 41110.10690002; +$tabTriAff[690100] = 41110.106901; +$tabTriAff[690101] = 41110.10690101; +$tabTriAff[690110] = 41110.1069011; +$tabTriAff[690111] = 41110.10690111; +$tabTriAff[700100] = 41120.107001; +$tabTriAff[700200] = 41120.107002; +$tabTriAff[700300] = 41120.107003; +$tabTriAff[700500] = 41120.107005; +$tabTriAff[700600] = 41120.107006; +$tabTriAff[700700] = 41120.107007; +$tabTriAff[701000] = 41120.10701; +$tabTriAff[702000] = 41120.10702; +$tabTriAff[703000] = 41120.10703; +$tabTriAff[703001] = 41120.10703001; +$tabTriAff[705000] = 41120.10705; +$tabTriAff[706000] = 41120.10706; +$tabTriAff[707000] = 41120.10707; +$tabTriAff[710000] = 41120.1071; +$tabTriAff[711000] = 41120.10711; +$tabTriAff[712000] = 41120.10712; +$tabTriAff[713000] = 41120.10713; +$tabTriAff[714000] = 41120.10714; +$tabTriAff[715000] = 41120.10715; +$tabTriAff[716000] = 41120.10716; +$tabTriAff[717000] = 41120.10717; +$tabTriAff[718000] = 41120.10718; +$tabTriAff[719000] = 41120.10719; +$tabTriAff[719500] = 41120.107195; +$tabTriAff[722000] = 41120.10722; +$tabTriAff[722010] = 41120.1072201; +$tabTriAff[722020] = 41120.1072202; +$tabTriAff[722200] = 41120.107222; +$tabTriAff[722210] = 41120.1072221; +$tabTriAff[722220] = 41120.1072222; +$tabTriAff[722300] = 41120.107223; +$tabTriAff[722310] = 41120.1072231; +$tabTriAff[722320] = 41120.1072232; +$tabTriAff[722400] = 41120.107224; +$tabTriAff[722410] = 41120.1072241; +$tabTriAff[722420] = 41120.1072242; +$tabTriAff[725100] = 41130.107251; +$tabTriAff[725200] = 41130.107252; +$tabTriAff[725400] = 41130.107254; +$tabTriAff[726000] = 41130.10726; +$tabTriAff[726001] = 41130.10726001; +$tabTriAff[726002] = 41130.10726002; +$tabTriAff[731000] = 41150.10731; +$tabTriAff[731100] = 41150.107311; +$tabTriAff[731200] = 41150.107312; +$tabTriAff[731300] = 41150.107313; +$tabTriAff[735010] = 41160.1073501; +$tabTriAff[735010] = 41160.1073501; +$tabTriAff[735010] = 41160.1073501; +$tabTriAff[735011] = 41160.10735011; +$tabTriAff[735011] = 41160.10735011; +$tabTriAff[735011] = 41160.10735011; +$tabTriAff[735011] = 41160.10735011; +$tabTriAff[735012] = 41160.10735012; +$tabTriAff[735012] = 41160.10735012; +$tabTriAff[735012] = 41160.10735012; +$tabTriAff[735012] = 41160.10735012; +$tabTriAff[735100] = 41210.107351; +$tabTriAff[735100] = 41210.107351; +$tabTriAff[735110] = 41210.1073511; +$tabTriAff[735111] = 41210.10735111; +$tabTriAff[735112] = 41210.10735112; +$tabTriAff[735200] = 41210.107352; +$tabTriAff[735300] = 41210.107353; +$tabTriAff[735500] = 41210.107355; +$tabTriAff[735500] = 41210.107355; +$tabTriAff[735501] = 41210.10735501; +$tabTriAff[735502] = 41210.10735502; +$tabTriAff[735503] = 41210.10735503; +$tabTriAff[735511] = 41210.10735511; +$tabTriAff[735512] = 41210.10735512; +$tabTriAff[735921] = 41210.10735921; +$tabTriAff[735921] = 41210.10735921; +$tabTriAff[735921] = 41210.10735921; +$tabTriAff[735922] = 41210.10735922; +$tabTriAff[735922] = 41210.10735922; +$tabTriAff[735922] = 41210.10735922; +$tabTriAff[735931] = 41210.10735931; +$tabTriAff[735931] = 41210.10735931; +$tabTriAff[735931] = 41210.10735931; +$tabTriAff[735932] = 41210.10735932; +$tabTriAff[735932] = 41210.10735932; +$tabTriAff[735932] = 41210.10735932; +$tabTriAff[735950] = 41210.1073595; +$tabTriAff[735950] = 41210.1073595; +$tabTriAff[735951] = 41210.10735951; +$tabTriAff[735952] = 41210.10735952; +$tabTriAff[735953] = 41210.10735953; +$tabTriAff[735960] = 41210.1073596; +$tabTriAff[735960] = 41210.1073596; +$tabTriAff[735961] = 41210.10735961; +$tabTriAff[735962] = 41210.10735962; +$tabTriAff[735963] = 41210.10735963; +$tabTriAff[740000] = 42000.1074; +$tabTriAff[740110] = 42101.1074011; +$tabTriAff[740111] = 42101.10740111; +$tabTriAff[740112] = 42101.10740112; +$tabTriAff[740115] = 42101.10740115; +$tabTriAff[740160] = 42101.1074016; +$tabTriAff[740161] = 42101.10740161; +$tabTriAff[740162] = 42101.10740162; +$tabTriAff[740210] = 42101.1074021; +$tabTriAff[740211] = 42101.10740211; +$tabTriAff[740212] = 42101.10740212; +$tabTriAff[740220] = 42101.1074022; +$tabTriAff[740221] = 42101.10740221; +$tabTriAff[740410] = 42101.1074041; +$tabTriAff[740411] = 42101.10740411; +$tabTriAff[740412] = 42101.10740412; +$tabTriAff[740610] = 42101.1074061; +$tabTriAff[740611] = 42101.10740611; +$tabTriAff[740612] = 42101.10740612; +$tabTriAff[740710] = 42101.1074071; +$tabTriAff[740810] = 42332.1074081; +$tabTriAff[740811] = 42332.10740811; +$tabTriAff[740812] = 42332.10740812; +$tabTriAff[740813] = 42332.10740813; +$tabTriAff[740815] = 42332.10740815; +$tabTriAff[740818] = 42332.10740818; +$tabTriAff[740830] = 42332.1074083; +$tabTriAff[740831] = 42332.10740831; +$tabTriAff[740832] = 42332.10740832; +$tabTriAff[740833] = 42332.10740833; +$tabTriAff[740834] = 42332.10740834; +$tabTriAff[740850] = 42332.1074085; +$tabTriAff[740850] = 42332.1074085; +$tabTriAff[740850] = 42332.1074085; +$tabTriAff[740851] = 42332.10740851; +$tabTriAff[740852] = 42332.10740852; +$tabTriAff[745010] = 42101.1074501; +$tabTriAff[745010] = 42101.1074501; +$tabTriAff[745010] = 42101.1074501; +$tabTriAff[745010] = 42101.1074501; +$tabTriAff[745020] = 42101.1074502; +$tabTriAff[745030] = 42101.1074503; +$tabTriAff[745040] = 42101.1074504; +$tabTriAff[745121] = 42101.10745121; +$tabTriAff[745122] = 42101.10745122; +$tabTriAff[745141] = 42101.10745141; +$tabTriAff[745142] = 42101.10745142; +$tabTriAff[745210] = 42101.1074521; +$tabTriAff[745210] = 42101.1074521; +$tabTriAff[745210] = 42101.1074521; +$tabTriAff[745210] = 42101.1074521; +$tabTriAff[745310] = 42101.1074531; +$tabTriAff[745310] = 42101.1074531; +$tabTriAff[745310] = 42101.1074531; +$tabTriAff[745320] = 42101.1074532; +$tabTriAff[745330] = 42101.1074533; +$tabTriAff[745340] = 42101.1074534; +$tabTriAff[745350] = 42101.1074535; +$tabTriAff[745360] = 42101.1074536; +$tabTriAff[745370] = 42101.1074537; +$tabTriAff[745371] = 42101.10745371; +$tabTriAff[750000] = 42201.1075; +$tabTriAff[750020] = 42201.1075002; +$tabTriAff[750021] = 42201.10750021; +$tabTriAff[750022] = 42201.10750022; +$tabTriAff[750110] = 42201.1075011; +$tabTriAff[750111] = 42201.10750111; +$tabTriAff[750112] = 42201.10750112; +$tabTriAff[750311] = 42201.10750311; +$tabTriAff[750312] = 42201.10750312; +$tabTriAff[750410] = 42201.1075041; +$tabTriAff[750411] = 42201.10750411; +$tabTriAff[750415] = 42201.10750415; +$tabTriAff[750416] = 42201.10750416; +$tabTriAff[750418] = 42201.10750418; +$tabTriAff[750610] = 42101.1075061; +$tabTriAff[750611] = 42101.10750611; +$tabTriAff[750612] = 42101.10750612; +$tabTriAff[750710] = 42101.1075071; +$tabTriAff[750711] = 42101.10750711; +$tabTriAff[750712] = 42101.10750712; +$tabTriAff[750910] = 42290.1075091; +$tabTriAff[750920] = 42290.1075092; +$tabTriAff[750930] = 42290.1075093; +$tabTriAff[760000] = 42301.1076; +$tabTriAff[760110] = 42101.1076011; +$tabTriAff[760111] = 42101.10760111; +$tabTriAff[760112] = 42101.10760112; +$tabTriAff[760160] = 42101.1076016; +$tabTriAff[760161] = 42101.10760161; +$tabTriAff[760162] = 42101.10760162; +$tabTriAff[760260] = 42301.1076026; +$tabTriAff[760261] = 42301.10760261; +$tabTriAff[760262] = 42301.10760262; +$tabTriAff[760310] = 42301.1076031; +$tabTriAff[760311] = 42301.10760311; +$tabTriAff[760312] = 42301.10760312; +$tabTriAff[760360] = 42301.1076036; +$tabTriAff[760361] = 42301.10760361; +$tabTriAff[760362] = 42301.10760362; +$tabTriAff[760410] = 42301.1076041; +$tabTriAff[760411] = 42301.10760411; +$tabTriAff[760412] = 42301.10760412; +$tabTriAff[760453] = 42301.10760453; +$tabTriAff[760454] = 42301.10760454; +$tabTriAff[760503] = 42301.10760503; +$tabTriAff[760504] = 42301.10760504; +$tabTriAff[760603] = 42301.10760603; +$tabTriAff[760604] = 42301.10760604; +$tabTriAff[760608] = 42301.10760608; +$tabTriAff[760660] = 42321.1076066; +$tabTriAff[760661] = 42321.10760661; +$tabTriAff[760662] = 42321.10760662; +$tabTriAff[760710] = 42331.1076071; +$tabTriAff[760711] = 42331.10760711; +$tabTriAff[760712] = 42331.10760712; +$tabTriAff[761110] = 42331.1076111; +$tabTriAff[761111] = 42331.10761111; +$tabTriAff[761112] = 42331.10761112; +$tabTriAff[761210] = 42331.1076121; +$tabTriAff[761211] = 42331.10761211; +$tabTriAff[761212] = 42331.10761212; +$tabTriAff[761310] = 42331.1076131; +$tabTriAff[761311] = 42331.10761311; +$tabTriAff[761312] = 42331.10761312; +$tabTriAff[761410] = 42331.1076141; +$tabTriAff[761411] = 42331.10761411; +$tabTriAff[761412] = 42331.10761412; +$tabTriAff[761510] = 42331.1076151; +$tabTriAff[761511] = 42331.10761511; +$tabTriAff[761512] = 42331.10761512; +$tabTriAff[761610] = 42331.1076161; +$tabTriAff[761611] = 42331.10761611; +$tabTriAff[761612] = 42331.10761612; +$tabTriAff[761810] = 42332.1076181; +$tabTriAff[761811] = 42332.10761811; +$tabTriAff[761812] = 42332.10761812; +$tabTriAff[762110] = 42332.1076211; +$tabTriAff[762111] = 42332.10762111; +$tabTriAff[762112] = 42332.10762112; +$tabTriAff[762210] = 42332.1076221; +$tabTriAff[762310] = 42332.1076231; +$tabTriAff[762410] = 42332.1076241; +$tabTriAff[762411] = 42332.10762411; +$tabTriAff[762412] = 42332.10762412; +$tabTriAff[762413] = 42332.10762413; +$tabTriAff[762415] = 42332.10762415; +$tabTriAff[762416] = 42332.10762416; +$tabTriAff[762510] = 42332.1076251; +$tabTriAff[762511] = 42332.10762511; +$tabTriAff[762512] = 42332.10762512; +$tabTriAff[763110] = 42331.1076311; +$tabTriAff[763111] = 42331.10763111; +$tabTriAff[763112] = 42331.10763112; +$tabTriAff[763113] = 42331.10763113; +$tabTriAff[763114] = 42331.10763114; +$tabTriAff[763160] = 42331.1076316; +$tabTriAff[763161] = 42331.10763161; +$tabTriAff[763162] = 42331.10763162; +$tabTriAff[763210] = 42331.1076321; +$tabTriAff[763211] = 42331.10763211; +$tabTriAff[763212] = 42331.10763212; +$tabTriAff[763260] = 43101.1076326; +$tabTriAff[763261] = 43101.10763261; +$tabTriAff[763262] = 43101.10763262; +$tabTriAff[763310] = 43201.1076331; +$tabTriAff[763311] = 43201.10763311; +$tabTriAff[763312] = 43201.10763312; +$tabTriAff[763320] = 43201.1076332; +$tabTriAff[763321] = 43201.10763321; +$tabTriAff[763322] = 43201.10763322; +$tabTriAff[763360] = 42331.1076336; +$tabTriAff[763361] = 42331.10763361; +$tabTriAff[763362] = 42331.10763362; +$tabTriAff[763510] = 43301.1076351; +$tabTriAff[763511] = 43301.10763511; +$tabTriAff[763512] = 43301.10763512; +$tabTriAff[763515] = 43301.10763515; +$tabTriAff[763560] = 42331.1076356; +$tabTriAff[763561] = 42331.10763561; +$tabTriAff[763562] = 42331.10763562; +$tabTriAff[763565] = 42331.10763565; +$tabTriAff[763610] = 42331.1076361; +$tabTriAff[763611] = 42331.10763611; +$tabTriAff[763621] = 42331.10763621; +$tabTriAff[763622] = 42331.10763622; +$tabTriAff[763631] = 42331.10763631; +$tabTriAff[763632] = 42331.10763632; +$tabTriAff[770000] = 42301.1077; +$tabTriAff[770000] = 42301.1077; +$tabTriAff[770000] = 42301.1077; +$tabTriAff[770010] = 42301.1077001; +$tabTriAff[770012] = 42301.10770012; +$tabTriAff[770030] = 42301.1077003; +$tabTriAff[770031] = 42301.10770031; +$tabTriAff[770040] = 42301.1077004; +$tabTriAff[770050] = 42301.1077005; +$tabTriAff[770051] = 42301.10770051; +$tabTriAff[770060] = 42301.1077006; +$tabTriAff[770061] = 42301.10770061; +$tabTriAff[770100] = 42303.107701; +$tabTriAff[770100] = 42303.107701; +$tabTriAff[770100] = 42303.107701; +$tabTriAff[770110] = 42303.1077011; +$tabTriAff[770120] = 42303.1077012; +$tabTriAff[770130] = 42303.1077013; +$tabTriAff[770140] = 42303.1077014; +$tabTriAff[770150] = 42303.1077015; +$tabTriAff[770210] = 42305.1077021; +$tabTriAff[770211] = 42305.10770211; +$tabTriAff[770221] = 42305.10770221; +$tabTriAff[770222] = 42305.10770222; +$tabTriAff[770300] = 42307.107703; +$tabTriAff[770300] = 42307.107703; +$tabTriAff[770300] = 42307.107703; +$tabTriAff[770310] = 42307.1077031; +$tabTriAff[770320] = 42307.1077032; +$tabTriAff[770330] = 42307.1077033; +$tabTriAff[770500] = 42331.107705; +$tabTriAff[770510] = 42331.1077051; +$tabTriAff[770510] = 42331.1077051; +$tabTriAff[770512] = 42331.10770512; +$tabTriAff[770512] = 42331.10770512; +$tabTriAff[770520] = 42331.1077052; +$tabTriAff[770520] = 42331.1077052; +$tabTriAff[770530] = 42331.1077053; +$tabTriAff[770530] = 42331.1077053; +$tabTriAff[770540] = 42331.1077054; +$tabTriAff[770540] = 42331.1077054; +$tabTriAff[770550] = 42331.1077055; +$tabTriAff[770550] = 42331.1077055; +$tabTriAff[770560] = 42331.1077056; +$tabTriAff[770560] = 42331.1077056; +$tabTriAff[820010] = 42316.1082001; +$tabTriAff[820011] = 42316.10820011; +$tabTriAff[820012] = 42316.10820012; +$tabTriAff[820110] = 42316.1082011; +$tabTriAff[820111] = 42316.10820111; +$tabTriAff[820112] = 42316.10820112; +$tabTriAff[820115] = 42316.10820115; +$tabTriAff[830010] = 42333.1083001; +$tabTriAff[830012] = 42333.10830012; +$tabTriAff[830013] = 42333.10830013; +$tabTriAff[830018] = 42333.10830018; +$tabTriAff[830018] = 42333.10830018; +$tabTriAff[830110] = 42333.1083011; +$tabTriAff[830110] = 42333.1083011; +$tabTriAff[830110] = 42333.1083011; +$tabTriAff[1300100] = 42391.113001; +$tabTriAff[1300101] = 42391.11300101; +$tabTriAff[1300200] = 42391.113002; +$tabTriAff[1300201] = 42391.11300201; +$tabTriAff[1300202] = 42391.11300202; +$tabTriAff[1300209] = 42391.11300209; +$tabTriAff[1300301] = 42391.11300301; +$tabTriAff[1300302] = 42391.11300302; +$tabTriAff[1300309] = 42391.11300309; +$tabTriAff[1300400] = 42391.113004; +$tabTriAff[1300401] = 42391.11300401; +$tabTriAff[1300402] = 42391.11300402; +$tabTriAff[1300403] = 42391.11300403; +$tabTriAff[1300404] = 42391.11300404; +$tabTriAff[1300405] = 42391.11300405; +$tabTriAff[1300409] = 42391.11300409; +$tabTriAff[1300500] = 42391.113005; +$tabTriAff[1300501] = 42391.11300501; +$tabTriAff[1300502] = 42391.11300502; +$tabTriAff[1300503] = 42391.11300503; +$tabTriAff[1300504] = 42391.11300504; +$tabTriAff[1300505] = 42391.11300505; +$tabTriAff[1300506] = 42391.11300506; +$tabTriAff[1300509] = 42391.11300509; +$tabTriAff[1300600] = 42391.113006; +$tabTriAff[1300601] = 42391.11300601; +$tabTriAff[1300602] = 42391.11300602; +$tabTriAff[1300609] = 42391.11300609; +$tabTriAff[1300709] = 42391.11300709; +$tabTriAff[1300809] = 42391.11300809; +$tabTriAff[1300810] = 42391.1130081; +$tabTriAff[1300900] = 42391.113009; +$tabTriAff[1300901] = 42391.11300901; +$tabTriAff[1300902] = 42391.11300902; +$tabTriAff[1300909] = 42391.11300909; +$tabTriAff[1301701] = 42391.11301701; +$tabTriAff[1301702] = 42391.11301702; +$tabTriAff[1301801] = 42391.11301801; +$tabTriAff[1301802] = 42391.11301802; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500100] = 43100.115001; +$tabTriAff[1500110] = 43100.1150011; +$tabTriAff[1500110] = 43100.1150011; +$tabTriAff[1500110] = 43100.1150011; +$tabTriAff[1500110] = 43100.1150011; +$tabTriAff[2400101] = 52201.12400101; +$tabTriAff[2400102] = 52201.12400102; +$tabTriAff[2400103] = 52201.12400103; +$tabTriAff[2400104] = 52201.12400104; +$tabTriAff[2400109] = 52201.12400109; +$tabTriAff[2400111] = 52201.12400111; +$tabTriAff[2400112] = 52201.12400112; +$tabTriAff[2400119] = 52201.12400119; +$tabTriAff[2400121] = 52201.12400121; +$tabTriAff[2400122] = 52201.12400122; +$tabTriAff[2400123] = 52201.12400123; +$tabTriAff[2400124] = 52201.12400124; +$tabTriAff[2400125] = 52201.12400125; +$tabTriAff[2400126] = 52201.12400126; +$tabTriAff[2400200] = 52201.124002; +$tabTriAff[2400210] = 52201.1240021; +$tabTriAff[2400300] = 52201.124003; +$tabTriAff[2400310] = 52201.1240031; +$tabTriAff[2400410] = 52201.1240041; +$tabTriAff[2400420] = 52201.1240042; +$tabTriAff[2400430] = 52201.1240043; +$tabTriAff[2400500] = 52301.124005; +$tabTriAff[2400501] = 52301.12400501; +$tabTriAff[2400501] = 52301.12400501; +$tabTriAff[2400510] = 52301.1240051; +$tabTriAff[2400511] = 52301.12400511; +$tabTriAff[2400512] = 52301.12400512; +$tabTriAff[2400513] = 52301.12400513; +$tabTriAff[2400514] = 52301.12400514; +$tabTriAff[2400515] = 52301.12400515; +$tabTriAff[2400516] = 52301.12400516; +$tabTriAff[2400517] = 52301.12400517; +$tabTriAff[2400518] = 52301.12400518; +$tabTriAff[2400519] = 52301.12400519; +$tabTriAff[2400601] = 52301.12400601; +$tabTriAff[2400601] = 52301.12400601; +$tabTriAff[2400610] = 52301.1240061; +$tabTriAff[2400611] = 52301.12400611; +$tabTriAff[2400612] = 52301.12400612; +$tabTriAff[2400613] = 52301.12400613; +$tabTriAff[2400614] = 52301.12400614; +$tabTriAff[2400615] = 52301.12400615; +$tabTriAff[2400616] = 52301.12400616; +$tabTriAff[2400617] = 52301.12400617; +$tabTriAff[2400618] = 52301.12400618; +$tabTriAff[2400619] = 52301.12400619; +$tabTriAff[2400701] = 52201.12400701; +$tabTriAff[2400702] = 52201.12400702; +$tabTriAff[2401101] = 52501.12401101; +$tabTriAff[2401201] = 52501.12401201; +$tabTriAff[2401301] = 52501.12401301; +$tabTriAff[2401401] = 52501.12401401; +$tabTriAff[2401500] = 52501.124015; +$tabTriAff[2401501] = 52501.12401501; +$tabTriAff[2401502] = 52501.12401502; +$tabTriAff[2401509] = 52501.12401509; +$tabTriAff[2401511] = 52501.12401511; +$tabTriAff[2401512] = 52501.12401512; +$tabTriAff[2401601] = 52501.12401601; +$tabTriAff[2401701] = 52501.12401701; +$tabTriAff[2401801] = 52501.12401801; +$tabTriAff[2401811] = 52501.12401811; +$tabTriAff[2401821] = 52501.12401821; +$tabTriAff[2401831] = 52501.12401831; +$tabTriAff[2401850] = 52501.1240185; +$tabTriAff[2401851] = 52501.12401851; +$tabTriAff[2401852] = 52501.12401852; +$tabTriAff[2401859] = 52501.12401859; +$tabTriAff[2402100] = 54101.124021; +$tabTriAff[2402101] = 54101.12402101; +$tabTriAff[2402102] = 54101.12402102; +$tabTriAff[2402103] = 54101.12402103; +$tabTriAff[2402201] = 54101.12402201; +$tabTriAff[2402311] = 54101.12402311; +$tabTriAff[2402312] = 54101.12402312; +$tabTriAff[2402321] = 54101.12402321; +$tabTriAff[2402322] = 54101.12402322; +$tabTriAff[2402411] = 54101.12402411; +$tabTriAff[2402412] = 54101.12402412; +$tabTriAff[2402421] = 54101.12402421; +$tabTriAff[2402422] = 54101.12402422; +$tabTriAff[2402511] = 54101.12402511; +$tabTriAff[2402512] = 54101.12402512; +$tabTriAff[2402521] = 54101.12402521; +$tabTriAff[2402522] = 54101.12402522; +$tabTriAff[2402901] = 54101.12402901; +$tabTriAff[2500100] = 62000.125001; +$tabTriAff[2500110] = 61999.1250011; +$tabTriAff[2500120] = 61999.1250012; +$tabTriAff[2500130] = 61999.1250013; +$tabTriAff[2500999] = 61998.12500999; +$tabTriAff[2590000] = 62000.1259; +$tabTriAff[2595000] = 62110.12595; +$tabTriAff[2600000] = 62110.126; +$tabTriAff[2605000] = 62510.12605; +$tabTriAff[2610000] = 62510.1261; +$tabTriAff[2615000] = 62510.12615; +$tabTriAff[2620000] = 62510.1262; +$tabTriAff[2622000] = 62510.12622; +$tabTriAff[2622000] = 62510.12622; +$tabTriAff[2625000] = 62510.12625; +$tabTriAff[2625000] = 62510.12625; +$tabTriAff[2630000] = 62510.1263; +$tabTriAff[2635000] = 62105.12635; +$tabTriAff[2640000] = 62105.1264; +$tabTriAff[2645000] = 62505.12645; +$tabTriAff[2650000] = 62505.1265; +$tabTriAff[2655000] = 62110.12655; +$tabTriAff[2660000] = 62110.1266; +$tabTriAff[2662000] = 62110.12662; +$tabTriAff[2665000] = 62510.12665; +$tabTriAff[2670000] = 62510.1267; +$tabTriAff[2671000] = 62105.12671; +$tabTriAff[2673000] = 62805.12673; +$tabTriAff[2675000] = 62805.12675; +$tabTriAff[2676000] = 62805.12676; +$tabTriAff[2680000] = 62105.1268; +$tabTriAff[2685000] = 62105.12685; +$tabTriAff[2690000] = 62505.1269; +$tabTriAff[2695000] = 62505.12695; +$tabTriAff[2700000] = 62105.127; +$tabTriAff[2710000] = 62505.1271; +$tabTriAff[2715000] = 62505.12715; +$tabTriAff[2720000] = 62105.1272; +$tabTriAff[2725000] = 62105.12725; +$tabTriAff[2745000] = 62120.12745; +$tabTriAff[2750000] = 62120.1275; +$tabTriAff[2755000] = 62520.12755; +$tabTriAff[2760000] = 62520.1276; +$tabTriAff[2765000] = 62110.12765; +$tabTriAff[2770000] = 62510.1277; +$tabTriAff[2770010] = 51300.1277001; +$tabTriAff[2770011] = 80300.12770011; +$tabTriAff[2771000] = 62505.12771; +$tabTriAff[3095000] = 62110.13095; +$tabTriAff[3100000] = 62110.131; +$tabTriAff[3101000] = 62510.13101; +$tabTriAff[3102000] = 62510.13102; +$tabTriAff[3105000] = 62510.13105; +$tabTriAff[3110000] = 62510.1311; +$tabTriAff[3115000] = 62510.13115; +$tabTriAff[3117000] = 62120.13117; +$tabTriAff[3130000] = 62110.1313; +$tabTriAff[3135000] = 62510.13135; +$tabTriAff[3140000] = 62510.1314; +$tabTriAff[3155000] = 62115.13155; +$tabTriAff[3160000] = 62515.1316; +$tabTriAff[3165000] = 62515.13165; +$tabTriAff[3170000] = 62515.1317; +$tabTriAff[3175000] = 62515.13175; +$tabTriAff[3180000] = 62515.1318; +$tabTriAff[3190000] = 62515.1319; +$tabTriAff[3205000] = 62130.13205; +$tabTriAff[3210000] = 62530.1321; +$tabTriAff[3211000] = 62530.13211; +$tabTriAff[3215000] = 62530.13215; +$tabTriAff[3220000] = 62530.1322; +$tabTriAff[3225000] = 62530.13225; +$tabTriAff[3235000] = 62855.13235; +$tabTriAff[3250000] = 62120.1325; +$tabTriAff[3255000] = 62520.13255; +$tabTriAff[3260000] = 62520.1326; +$tabTriAff[3265000] = 62520.13265; +$tabTriAff[3270000] = 62535.1327; +$tabTriAff[3275000] = 62535.13275; +$tabTriAff[3280000] = 62535.1328; +$tabTriAff[3295000] = 62120.13295; +$tabTriAff[3300000] = 62520.133; +$tabTriAff[3305000] = 62520.13305; +$tabTriAff[3310000] = 62520.1331; +$tabTriAff[3315000] = 62542.13315; +$tabTriAff[3320000] = 62542.1332; +$tabTriAff[3335000] = 62120.13335; +$tabTriAff[3340000] = 62120.1334; +$tabTriAff[3345000] = 62520.13345; +$tabTriAff[3350000] = 62520.1335; +$tabTriAff[3355000] = 62520.13355; +$tabTriAff[3360000] = 62502.1336; +$tabTriAff[3365000] = 62502.13365; +$tabTriAff[3370000] = 62502.1337; +$tabTriAff[3395000] = 62115.13395; +$tabTriAff[3400000] = 62115.134; +$tabTriAff[3405000] = 62810.13405; +$tabTriAff[3405100] = 62810.134051; +$tabTriAff[3405500] = 62810.134055; +$tabTriAff[3406000] = 62815.13406; +$tabTriAff[3407000] = 62515.13407; +$tabTriAff[3410000] = 62515.1341; +$tabTriAff[3420000] = 62130.1342; +$tabTriAff[3422000] = 62130.13422; +$tabTriAff[3425000] = 62530.13425; +$tabTriAff[3426000] = 62530.13426; +$tabTriAff[3430000] = 62530.1343; +$tabTriAff[3431000] = 62530.13431; +$tabTriAff[3432000] = 62530.13432; +$tabTriAff[3439000] = 62540.13439; +$tabTriAff[3445000] = 62140.13445; +$tabTriAff[3450000] = 62540.1345; +$tabTriAff[3460000] = 62540.1346; +$tabTriAff[3465000] = 62540.13465; +$tabTriAff[3470000] = 62502.1347; +$tabTriAff[3475000] = 62102.13475; +$tabTriAff[3477000] = 62850.13477; +$tabTriAff[3480000] = 62102.1348; +$tabTriAff[3483000] = 62850.13483; +$tabTriAff[3485000] = 62502.13485; +$tabTriAff[3487000] = 62850.13487; +$tabTriAff[3490000] = 62502.1349; +$tabTriAff[3493000] = 62850.13493; +$tabTriAff[3495000] = 62502.13495; +$tabTriAff[3495010] = 62502.1349501; +$tabTriAff[3497000] = 62850.13497; +$tabTriAff[3500000] = 62160.135; +$tabTriAff[3505000] = 62160.13505; +$tabTriAff[3505001] = 62160.13505001; +$tabTriAff[3510000] = 62560.1351; +$tabTriAff[3515000] = 62560.13515; +$tabTriAff[3520000] = 62560.1352; +$tabTriAff[3525000] = 62560.13525; +$tabTriAff[3530000] = 62170.1353; +$tabTriAff[3535000] = 62170.13535; +$tabTriAff[3540000] = 62570.1354; +$tabTriAff[3545000] = 62570.13545; +$tabTriAff[3550000] = 62570.1355; +$tabTriAff[3555000] = 62170.13555; +$tabTriAff[3558000] = 62170.13558; +$tabTriAff[3560000] = 62570.1356; +$tabTriAff[3562000] = 62570.13562; +$tabTriAff[3565000] = 62170.13565; +$tabTriAff[3566000] = 62170.13566; +$tabTriAff[3568000] = 62170.13568; +$tabTriAff[3570000] = 62570.1357; +$tabTriAff[3572000] = 62170.13572; +$tabTriAff[3574000] = 62570.13574; +$tabTriAff[3576000] = 62570.13576; +$tabTriAff[3578000] = 62570.13578; +$tabTriAff[3650000] = 62180.1365; +$tabTriAff[3655000] = 62580.13655; +$tabTriAff[3660000] = 62580.1366; +$tabTriAff[3665000] = 62580.13665; +$tabTriAff[3666000] = 62580.13666; +$tabTriAff[3675000] = 62180.13675; +$tabTriAff[3680000] = 62580.1368; +$tabTriAff[3685000] = 62580.13685; +$tabTriAff[3690000] = 62580.1369; +$tabTriAff[3691000] = 62580.13691; +$tabTriAff[3692000] = 62580.13692; +$tabTriAff[3695000] = 62180.13695; +$tabTriAff[3700000] = 62180.137; +$tabTriAff[3705000] = 62580.13705; +$tabTriAff[3710000] = 62580.1371; +$tabTriAff[3711000] = 62580.13711; +$tabTriAff[3720000] = 62180.1372; +$tabTriAff[3725000] = 62580.13725; +$tabTriAff[3730000] = 62580.1373; +$tabTriAff[3735000] = 62580.13735; +$tabTriAff[3745000] = 62180.13745; +$tabTriAff[3750000] = 62580.1375; +$tabTriAff[3755000] = 62580.13755; +$tabTriAff[3760000] = 62580.1376; +$tabTriAff[3765000] = 62580.13765; +$tabTriAff[3770000] = 62580.1377; +$tabTriAff[3775000] = 62580.13775; +$tabTriAff[3780000] = 62580.1378; +$tabTriAff[3785000] = 62580.13785; +$tabTriAff[3790000] = 62580.1379; +$tabTriAff[3791000] = 62817.13791; +$tabTriAff[3841000] = 62570.13841; +$tabTriAff[3844000] = 62570.13844; +$tabTriAff[3845000] = 62530.13845; +$tabTriAff[3846000] = 62530.13846; +$tabTriAff[3850000] = 62530.1385; +$tabTriAff[3851000] = 62530.13851; +$tabTriAff[3855000] = 62530.13855; +$tabTriAff[3856000] = 62530.13856; +$tabTriAff[3860000] = 62530.1386; +$tabTriAff[3860001] = 62530.13860001; +$tabTriAff[3861000] = 62530.13861; +$tabTriAff[3865000] = 62130.13865; +$tabTriAff[3866000] = 62130.13866; +$tabTriAff[3866001] = 62130.13866001; +$tabTriAff[3870000] = 62130.1387; +$tabTriAff[3870001] = 62130.13870001; +$tabTriAff[3871000] = 62570.13871; +$tabTriAff[3875000] = 62530.13875; +$tabTriAff[3876000] = 62530.13876; +$tabTriAff[3876001] = 62530.13876001; +$tabTriAff[3880000] = 62530.1388; +$tabTriAff[3881000] = 62530.13881; +$tabTriAff[3882000] = 62102.13882; +$tabTriAff[3882001] = 62102.13882001; +$tabTriAff[3882100] = 62102.138821; +$tabTriAff[3882101] = 62102.13882101; +$tabTriAff[3882200] = 62502.138822; +$tabTriAff[3882201] = 62502.13882201; +$tabTriAff[3882300] = 62502.138823; +$tabTriAff[3882301] = 62502.13882301; +$tabTriAff[3885000] = 62570.13885; +$tabTriAff[3886000] = 62585.13886; +$tabTriAff[3890000] = 62510.1389; +$tabTriAff[3900100] = 62900.139001; +$tabTriAff[3900200] = 62900.139002; +$tabTriAff[3900300] = 62900.139003; +$tabTriAff[3900301] = 62900.13900301; +$tabTriAff[3900400] = 62900.139004; +$tabTriAff[3900401] = 62900.13900401; +$tabTriAff[3900410] = 62900.1390041; +$tabTriAff[3900411] = 62900.13900411; +$tabTriAff[3900415] = 62900.13900415; +$tabTriAff[3900416] = 62900.13900416; +$tabTriAff[3900420] = 62900.1390042; +$tabTriAff[3900421] = 62900.13900421; +$tabTriAff[3900500] = 62900.139005; +$tabTriAff[3900501] = 62900.13900501; +$tabTriAff[3900510] = 62900.1390051; +$tabTriAff[3900511] = 62900.13900511; +$tabTriAff[3900520] = 62900.1390052; +$tabTriAff[3900521] = 62900.13900521; +$tabTriAff[3901100] = 62820.139011; +$tabTriAff[3901110] = 62820.1390111; +$tabTriAff[3901120] = 62820.1390112; +$tabTriAff[3901200] = 62820.139012; +$tabTriAff[3901210] = 62820.1390121; +$tabTriAff[3901300] = 62820.139013; +$tabTriAff[3901301] = 62820.13901301; +$tabTriAff[3901309] = 62820.13901309; +$tabTriAff[3901400] = 42307.139014; +$tabTriAff[3901500] = 62990.139015; +$tabTriAff[3901510] = 62990.1390151; +$tabTriAff[3901511] = 62990.13901511; +$tabTriAff[3902100] = 62995.139021; +$tabTriAff[3902101] = 62995.13902101; +$tabTriAff[3902110] = 62995.1390211; +$tabTriAff[3902111] = 62995.13902111; +$tabTriAff[3902130] = 62995.1390213; +$tabTriAff[3902131] = 62995.13902131; +$tabTriAff[3902200] = 62995.139022; +$tabTriAff[3902300] = 62995.139023; +$tabTriAff[3902301] = 62995.13902301; +$tabTriAff[3902310] = 62995.1390231; +$tabTriAff[3902311] = 62995.13902311; +$tabTriAff[3902330] = 62995.1390233; +$tabTriAff[3902331] = 62995.13902331; +$tabTriAff[3902900] = 62995.139029; +$tabTriAff[3910001] = 63101.13910001; +$tabTriAff[3910001] = 63101.13910001; +$tabTriAff[3910011] = 63001.13910011; +$tabTriAff[3910011] = 63001.13910011; +$tabTriAff[3910100] = 63110.139101; +$tabTriAff[3910101] = 63110.13910101; +$tabTriAff[3910120] = 63110.1391012; +$tabTriAff[3910121] = 63110.13910121; +$tabTriAff[3910130] = 63110.1391013; +$tabTriAff[3910131] = 63110.13910131; +$tabTriAff[3910135] = 63110.13910135; +$tabTriAff[3910136] = 63110.13910136; +$tabTriAff[3910140] = 63110.1391014; +$tabTriAff[3910141] = 63110.13910141; +$tabTriAff[3910145] = 63110.13910145; +$tabTriAff[3910146] = 63110.13910146; +$tabTriAff[3910150] = 63110.1391015; +$tabTriAff[3910151] = 63110.13910151; +$tabTriAff[3910155] = 63110.13910155; +$tabTriAff[3910156] = 63110.13910156; +$tabTriAff[3910160] = 63110.1391016; +$tabTriAff[3910161] = 63110.13910161; +$tabTriAff[3910170] = 63110.1391017; +$tabTriAff[3910171] = 63110.13910171; +$tabTriAff[3910180] = 63110.1391018; +$tabTriAff[3910181] = 63110.13910181; +$tabTriAff[3910190] = 63110.1391019; +$tabTriAff[3910191] = 63110.13910191; +$tabTriAff[3911001] = 63200.13911001; +$tabTriAff[3911001] = 63200.13911001; +$tabTriAff[3911100] = 63210.139111; +$tabTriAff[3911101] = 63210.13911101; +$tabTriAff[3911110] = 63220.1391111; +$tabTriAff[3911111] = 63220.13911111; +$tabTriAff[3911120] = 63230.1391112; +$tabTriAff[3911121] = 63230.13911121; +$tabTriAff[3911130] = 63240.1391113; +$tabTriAff[3911131] = 63240.13911131; +$tabTriAff[3911145] = 63250.13911145; +$tabTriAff[3911146] = 63250.13911146; +$tabTriAff[3911150] = 63260.1391115; +$tabTriAff[3911151] = 63260.13911151; +$tabTriAff[3911160] = 63270.1391116; +$tabTriAff[3911161] = 63270.13911161; +$tabTriAff[3911170] = 63280.1391117; +$tabTriAff[3911171] = 63280.13911171; +$tabTriAff[3911180] = 63220.1391118; +$tabTriAff[3911181] = 63220.13911181; +$tabTriAff[3912001] = 63300.13912001; +$tabTriAff[3912001] = 63300.13912001; +$tabTriAff[3912100] = 63310.139121; +$tabTriAff[3912101] = 63310.13912101; +$tabTriAff[3912110] = 63310.1391211; +$tabTriAff[3912111] = 63310.13912111; +$tabTriAff[3912120] = 63310.1391212; +$tabTriAff[3912121] = 63310.13912121; +$tabTriAff[3912125] = 63310.13912125; +$tabTriAff[3912126] = 63310.13912126; +$tabTriAff[3912130] = 63310.1391213; +$tabTriAff[3912131] = 63310.13912131; +$tabTriAff[3912140] = 63310.1391214; +$tabTriAff[3912141] = 63310.13912141; +$tabTriAff[3912145] = 63310.13912145; +$tabTriAff[3912146] = 63310.13912146; +$tabTriAff[3912150] = 63310.1391215; +$tabTriAff[3912151] = 63310.13912151; +$tabTriAff[3913000] = 64000.13913; +$tabTriAff[3913100] = 64000.139131; +$tabTriAff[3913200] = 64000.139132; +$tabTriAff[3913300] = 64000.139133; +$tabTriAff[4000010] = 51101.1400001; +$tabTriAff[4000010] = 51101.1400001; +$tabTriAff[4000021] = 51101.14000021; +$tabTriAff[4000022] = 51101.14000022; +$tabTriAff[4000023] = 51101.14000023; +$tabTriAff[4000024] = 51101.14000024; +$tabTriAff[4000100] = 51101.140001; +$tabTriAff[4000110] = 51101.1400011; +$tabTriAff[4000120] = 51101.1400012; +$tabTriAff[4000150] = 51101.1400015; +$tabTriAff[4000200] = 51102.140002; +$tabTriAff[4000205] = 51102.14000205; +$tabTriAff[4000210] = 51102.1400021; +$tabTriAff[4000220] = 51102.1400022; +$tabTriAff[4000300] = 51102.140003; +$tabTriAff[4000305] = 51102.14000305; +$tabTriAff[4000310] = 51102.1400031; +$tabTriAff[4000320] = 51102.1400032; +$tabTriAff[4000400] = 51102.140004; +$tabTriAff[4000405] = 51102.14000405; +$tabTriAff[4000410] = 51102.1400041; +$tabTriAff[4000420] = 51102.1400042; +$tabTriAff[4001000] = 51301.14001; +$tabTriAff[4001100] = 51301.140011; +$tabTriAff[4001101] = 51301.14001101; +$tabTriAff[4001110] = 51301.1400111; +$tabTriAff[4001111] = 51301.14001111; +$tabTriAff[4001120] = 51301.1400112; +$tabTriAff[4001190] = 51301.1400119; +$tabTriAff[4001200] = 51351.140012; +$tabTriAff[4001201] = 51351.14001201; +$tabTriAff[4001202] = 51351.14001202; +$tabTriAff[4001210] = 51351.1400121; +$tabTriAff[4001300] = 51351.140013; +$tabTriAff[4001310] = 51351.1400131; +$tabTriAff[4001311] = 51351.14001311; +$tabTriAff[4001312] = 51351.14001312; +$tabTriAff[4001500] = 51406.140015; +$tabTriAff[4001600] = 51501.140016; +$tabTriAff[5000100] = 70200.150001; +$tabTriAff[5000200] = 70200.150002; +$tabTriAff[5000201] = 70200.15000201; +$tabTriAff[5000202] = 70200.15000202; +$tabTriAff[5000203] = 70200.15000203; +$tabTriAff[5000204] = 70200.15000204; +$tabTriAff[5000209] = 70200.15000209; +$tabTriAff[5000300] = 70200.150003; +$tabTriAff[5000400] = 70200.150004; +$tabTriAff[5000500] = 70200.150005; +$tabTriAff[5000621] = 70200.15000621; +$tabTriAff[5000622] = 70200.15000622; +$tabTriAff[5000624] = 70200.15000624; +$tabTriAff[5000629] = 70200.15000629; +$tabTriAff[5000631] = 70200.15000631; +$tabTriAff[5000650] = 70200.1500065; +$tabTriAff[5000999] = 70200.15000999; +$tabTriAff[5001100] = 70100.150011; +$tabTriAff[8002000] = 80200.18002; +$tabTriAff[8003000] = 80200.18003; +$tabTriAff[8004000] = 80400.18004; +$tabTriAff[8004001] = 80400.18004001; +$tabTriAff[8004002] = 80400.18004002; +$tabTriAff[8004009] = 80400.18004009; +$tabTriAff[10000000] = 12000.2; +$tabTriAff[10000010] = 13000.2000001; +$tabTriAff[10000020] = 14000.2000002; +$tabTriAff[10000030] = 16000.2000003; +$tabTriAff[10000050] = 20000.2000005; +$tabTriAff[10000100] = 30000.200001; +$tabTriAff[10000200] = 40000.200002; +$tabTriAff[10000200] = 49999.200002; +$tabTriAff[10000300] = 41100.200003; +$tabTriAff[10000305] = 41105.20000305; +$tabTriAff[10000355] = 42005.20000355; +$tabTriAff[10000355] = 42999.20000355; +$tabTriAff[10000400] = 43000.200004; +$tabTriAff[10000400] = 43999.200004; +$tabTriAff[10000500] = 50000.200005; +$tabTriAff[10000500] = 62999.200005; +$tabTriAff[10000510] = 51100.2000051; +$tabTriAff[10000510] = 51100.2000051; +$tabTriAff[10000520] = 51300.2000052; +$tabTriAff[10000550] = 52000.2000055; +$tabTriAff[10000550] = 62799.2000055; +$tabTriAff[10000555] = 52500.20000555; +$tabTriAff[10000560] = 54100.2000056; +$tabTriAff[10000600] = 62000.200006; +$tabTriAff[10000700] = 62099.200007; +$tabTriAff[10000800] = 62499.200008; +$tabTriAff[10000900] = 62799.200009; +$tabTriAff[10000910] = 63000.2000091; +$tabTriAff[10000910] = 89999.2000091; +$tabTriAff[10001000] = 70000.20001; +$tabTriAff[10007500] = 75000.200075; +$tabTriAff[10009000] = 80000.20009; + diff --git a/1.2/library/Metier/scores/Variables/CommentsIndiscore411.php b/1.2/library/Metier/scores/Variables/CommentsIndiscore411.php index a8545a2f..3874d0ac 100644 --- a/1.2/library/Metier/scores/Variables/CommentsIndiscore411.php +++ b/1.2/library/Metier/scores/Variables/CommentsIndiscore411.php @@ -23,7 +23,7 @@ $tabCommentaires[8021][2][10] = "L'avis de Dissolution anticipée de la Sociét $tabCommentaires[8101][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; $tabCommentaires[8102][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; $tabCommentaires[8103][2][10] = "
    {\"NOMEN\"} fait partie des 2000 plus grosses entreprises Françaises. La complexité de la structure du groupe limite la portée de l'analyse des Forces & Faiblesses de cette seule entité. L'analyse complète est désactivée mais nous conservons les tableaux synthétiques."; -$tabCommentaires[9995][2][1] = "L'objet social publié dans les annonces légales est libellé comme : \"{ANNONCEOBJET}\". +$tabCommentaires[9995][2][1] = "L'objet social publié dans les annonces légales est libellé comme : \"{ANNONCEOBJET}\". "; $tabCommentaires[9996][2][1] = "Au répertoire national l'activité est codifiée {APEENT(5)}, ({APEENT}). "; @@ -71,7 +71,7 @@ $tabCommentaires[31070][2][0] = "Les activités principales des établissements $tabCommentaires[34800][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège n'a pas changé d'adresse depuis sa création."; $tabCommentaires[34801][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège a déjà changé d'adresse depuis sa création mais il est revenu à son adresse d'origine."; $tabCommentaires[34802][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège, n'a pas changé d'adresse depuis sa création. Les opérations de fusions intervenues peuvent masquer d'éventuels changements d'adresse des sociétés absorbées."; -$tabCommentaires[34810][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège a déjà changé d'adresse depuis sa création."; +$tabCommentaires[34810][2][10] = "\"{NOMEN}\" est identifiée avec le n° SIREN: {SIREN}, son siège a déjà changé d'adresse depuis sa création."; $tabCommentaires[34819][2][10] = "\" {NOMEN}\" est identifiée avec le n° SIREN: {SIREN}."; $tabCommentaires[34820][2][10] = "Elle est aussi répertoriée au Registre des Intermédiaires en Assurance (ORIAS) avec le N° {ORIASID}, comme {ORIASCAT}."; $tabCommentaires[34830][2][10] = "Elle est aussi répertoriée au Registre des Intermédiaires en Assurance (ORIAS) avec le N° {ORIASID}."; @@ -451,7 +451,7 @@ $tabCommentaires[350000][2][10] = "Dans le cadre de cette procédure collective, $tabCommentaires[355000][2][50] = "Durant l'exécution du plan, une modification a eu lieu en date du {ANNONCEDATE}."; $tabCommentaires[395000][2][10] = "Ce holding financier est en procédure collective, impactant de fait l'ensemble des filiales participations"; $tabCommentaires[396000][2][10] = "La conciliation à fait l'objet de son homologation publiée le {ANNONCEHOMDATE} montrant ainsi que, malgré les difficultés, les termes de l'accord sont de nature à assurer la pérennité de l'activité de l'entreprise."; -$tabCommentaires[396000][2][20] = "L'entreprise n'est plus en situation de cessation des paiements et l?accord ne porte pas atteinte aux intérêts des créanciers non signataires, s'il ne concerne pas tous les créanciers."; +$tabCommentaires[396000][2][20] = "L'entreprise n'est plus en situation de cessation des paiements et l'accord ne porte pas atteinte aux intérêts des créanciers non signataires, s'il ne concerne pas tous les créanciers."; $tabCommentaires[396000][2][30] = "Par conséquent, nous reprenons notre étude des éléments financiers."; $tabCommentaires[400000][2][10] = "Le caractère historique de la procédure de liquidation ne semble plus avoir d'impact sur l'activité, une nouvelle évaluation a donc eu lieu."; $tabCommentaires[400101][2][10] = "L'historique des annonces légales fait état d'un changement dans l'administration de l'entreprise publié le {ANNONCEDIRDATE}."; @@ -764,9 +764,9 @@ $tabCommentaires[714000][2][10] = ". Cette amélioration rétablit la marge $tabCommentaires[715000][2][10] = ". Cette dégradation fait passer le résultat d'exploitation du dernier exercice en négatif ({Rp[150]} {R[150]})."; $tabCommentaires[716000][2][10] = ". Cette dégradation détruit la marge d'exploitation de l'exercice."; $tabCommentaires[717000][2][10] = ". Cette dégradation sensible détruit la marge d'exploitation de l'exercice."; -$tabCommentaires[718000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en ?uvre pour créer de la valeur est faible."; -$tabCommentaires[719000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en ?uvre pour créer de la valeur est satisfaisante."; -$tabCommentaires[719500][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en ?uvre pour créer de la valeur est particulièrement élevée."; +$tabCommentaires[718000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est faible."; +$tabCommentaires[719000][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est satisfaisante."; +$tabCommentaires[719500][2][10] = "En première approche on peut dire que la performance globale de l'entreprise par rapport à l'actif mis en œuvre pour créer de la valeur est particulièrement élevée."; $tabCommentaires[722000][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est faible. Ce taux de {R[523]} de rendement du capital investi, reste sous la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. D'ailleurs la rentabilité de l'entreprise est bien en dessous de la moyenne du secteur qui est à {+Rs[523]}."; $tabCommentaires[722010][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est très faible. Ce taux de {R[523]} de rendement du capital investi, est très en dessous de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits, ni même le rendement d'un placement sur livret."; $tabCommentaires[722020][2][10] = "Enfin, la rentabilité financière, (résultat net de {BILANANNEE} rapporté aux capitaux propres), est plutot faible. Ce taux de {R[523]} de rendement du capital investi, reste sous la norme de l'efficacité avec laquelle une entreprise utilise le capital pour générer ses profits. "; @@ -841,7 +841,7 @@ $tabCommentaires[740110][2][10] = "Le poids des capitaux fixes dans le patrimoin $tabCommentaires[740111][2][30] = ", et il augmente de {!Revol[524]} depuis {BILANANNEEp}."; $tabCommentaires[740112][2][30] = ", bien qu'il se soit réduit de {!Revol[524]} depuis {BILANANNEEp}."; $tabCommentaires[740115][2][30] = "A noter que le foncier, à lui seul, se monte à {R[311]} représentant {R[314]} du total bilan."; -$tabCommentaires[740160][2][10] = "Le poids des immobilisations incorporelles (concessions, les brevets, les frais de recherche et développement, les frais d?établissement, le fonds de commerce, le droit au bail), par rapport au total bilan, est de {R[554]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[554]}."; +$tabCommentaires[740160][2][10] = "Le poids des immobilisations incorporelles (concessions, les brevets, les frais de recherche et développement, les frais d'établissement, le fonds de commerce, le droit au bail), par rapport au total bilan, est de {R[554]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[554]}."; $tabCommentaires[740161][2][30] = ", et il augmente de {!Revol[554]} depuis {BILANANNEEp}."; $tabCommentaires[740162][2][30] = ", bien qu'il se soit réduit de {!Revol[554]} depuis {BILANANNEEp}."; $tabCommentaires[740210][2][10] = "Le poids des immobilisations financières (par exemple des participations dans d'autres sociétés) par rapport à l'Actif total, est de {R[533]}. Il est d'une hauteur anormale par rapport au secteur qui affiche {Rs[533]}."; @@ -1033,9 +1033,9 @@ $tabCommentaires[770030][2][10] = "

  • "; $tabCommentaires[770040][2][10] = ""; $tabCommentaires[770050][2][10] = ""; -$tabCommentaires[770051][2][10] = ""; +$tabCommentaires[770051][2][10] = ""; $tabCommentaires[770060][2][10] = ""; -$tabCommentaires[770061][2][10] = ""; +$tabCommentaires[770061][2][10] = ""; $tabCommentaires[770100][2][0] = "

    Analyse des charges"; $tabCommentaires[770100][2][1] = "

    LES NORMES (en jaune la norme satisfaite)Taux ou Valeur
    Fonds propres/Total bilan > 20% {R[510]}
    Fonds propres/Total bilan > 20% {R[510]}
    Fonds propres > Dettes à long et moyen terme {R[070]} > {R[089]}
    Fonds propres > Dettes à long et moyen terme {R[070]} < {R[089]}
    Capacité de remboursement < 3 ans {R[247]}
    Capacité de remboursement < 3 ans {R[247]}
    Endettement financier CT < 66% {R[243]}
    Endettement financier CT < 66% {R[243]}
    Financement propre des immobilisations > 130% {R[237]}
    Financement propre des immobilisations > 130% {R[237]}
    Rentabilité financière > 8% {R[263]}
    Rentabilité financière > 8% {R[263]}
    Autonomie financière > 50% {R[510]}
    Autonomie financière > 50% {R[510]}
    Renouvellement des immobilisations < 50% {R[280]}
    Renouvellement des immobilisations < 50% {R[280]}
    Annuité/recettes $tabCommentaires[770031][2][10] = "
    Annuité/recettes réelles de fonctionnement(total recettes) {RQ[830]} Ce ratio présente un très fort effet d'inertie, il faut plusieurs années pour le dégrader mais aussi pour le ramener à la normale. La norme est de l'ordre de 19%. La moyenne de la strate le situe à {RT[830]}.
    Annuité/recettes fiscales de fonctionnement {RQ[861]}
    Ratio de surendettement (en-cours de la dette/produits de fonctionnement) {RQ[829]}
    Ratio de surendettement (en-cours de la dette/produits de fonctionnement) {RQ[829]} Indique les marges de man?uvre pour les années à venir. Le seuil d'alerte est à 121 %
    Ratio de surendettement (en-cours de la dette/produits de fonctionnement) {RQ[829]} Indique les marges de manœuvre pour les années à venir. Le seuil d'alerte est à 121 %
    Durée d'extinction de la dette (dette/épargne brute) {R[869]}
    Durée d'extinction de la dette (dette/épargne brute) {R[869]} Pour les communes de plus de 10 000 hab , la durée moyenne d ?extinction de la dette est de 5,8 années.
    Durée d'extinction de la dette (dette/épargne brute) {R[869]} Pour les communes de plus de 10 000 hab , la durée moyenne d'extinction de la dette est de 5,8 années.
    "; $tabCommentaires[770100][2][2] = ""; @@ -1046,8 +1046,8 @@ $tabCommentaires[770140][2][10] = ""; $tabCommentaires[770210][2][1] = "Le résultat comptable de l'année {COLLANNEE} est déficitaire de {!R[811]} ({!R[876]} des recettes de fonctionnement)."; $tabCommentaires[770211][2][1] = ", ce qui représente {!RH[811]} par habitant."; -$tabCommentaires[770221][2][1] = "Pour une commune de moins de 20.000 habitants, ce déficit dépassant 10% des produits de fonctionnement, entre dans le cadre de l?article L. 1612-14 du C.G.C.T."; -$tabCommentaires[770222][2][1] = "Pour une commune de plus de 20.000 habitants, ce déficit dépassant 5% des produits de fonctionnement, entre dans le cadre de l?article L. 1612-14 du C.G.C.T."; +$tabCommentaires[770221][2][1] = "Pour une commune de moins de 20.000 habitants, ce déficit dépassant 10% des produits de fonctionnement, entre dans le cadre de l'article L. 1612-14 du C.G.C.T."; +$tabCommentaires[770222][2][1] = "Pour une commune de plus de 20.000 habitants, ce déficit dépassant 5% des produits de fonctionnement, entre dans le cadre de l'article L. 1612-14 du C.G.C.T."; $tabCommentaires[770300][2][0] = "

    Service rendu"; $tabCommentaires[770300][2][1] = "

    année {COLLANNEE} Ratio Observations
    Coefficient d'auto $tabCommentaires[770150][2][10] = "
    Taux d'autofinancement de l'investissement (Epargne nette après remboursement de l'annuité en capital)/ Dépense d'équipement brut) {R[875]} Ce ratio peut être faussé selon la technique de prise en compte de l'amortissement en capital. (moyenne nationale : 19%)
    "; $tabCommentaires[770300][2][2] = ""; @@ -1224,7 +1224,7 @@ $tabCommentaires[2500100][2][0] = "\"- La mobilisation du potentiel fiscal n'ét $tabCommentaires[2500110][2][0] = "\"- L'encours de la dette est limité ({RQ[829]}), et il reste encore une marge possible d'appel à l'emprunt pour les investissements."; $tabCommentaires[2500120][2][0] = "\"- Les dépenses obligatoires incompressibles (personnel, assurances, intérêts des emprunts, etc...) représentant {R[872]} des recettes de fonctionnement restent sous le seuil d'alerte. S'il est prévu d'engager de nouvelles dépenses elles devraient être absorbées pour autant que la rigidité structurelle ne passe pas la barre des 65%."; $tabCommentaires[2500130][2][0] = "\"- L'autofinancement est satisfaisant {R[873]}, la collectivité est capable d'engager des opérations plus importantes."; -$tabCommentaires[2500999][2][0] = "

    Marges de man?uvre"; +$tabCommentaires[2500999][2][0] = "

    Marges de manœuvre"; $tabCommentaires[2590000][2][0] = "Bien que le dernier bilan publié soit trop ancien et que les commentaires financiers aient été occultés, nous maintenons l'analyse des éléments favorables et défavorables."; $tabCommentaires[2595000][2][0] = " Entreprise en place depuis de nombreuses années."; $tabCommentaires[2600000][2][0] = " Entreprise établie depuis longtemps."; diff --git a/1.2/library/Metier/scores/classMRatios.php b/1.2/library/Metier/scores/classMRatios.php index a192e413..b2427c3b 100644 --- a/1.2/library/Metier/scores/classMRatios.php +++ b/1.2/library/Metier/scores/classMRatios.php @@ -1,226 +1,227 @@ -'R[801]', - 'R01b'=>'Rh[801]', - 'R01c'=>'Rs[801]', - 'R02a'=>'R[802]', - 'R02b'=>'Rh[802]', - 'R02c'=>'Rs[802]', - 'R02d'=>'Rq[802]', - 'R02e'=>'Rt[802]', - 'R03a'=>'R[803]', - 'R03b'=>'Rh[803]', - 'R03c'=>'Rs[803]', - 'R03d'=>'Rq[803]', - 'R03e'=>'Rt[803]', - 'R04a'=>'R[804]', - 'R04b'=>'Rh[804]', - 'R04c'=>'Rs[804]', - 'R04d'=>'Rq[804]', - 'R04e'=>'Rt[804]', - 'R05a'=>'R[805]', - 'R05b'=>'Rh[805]', - 'R05c'=>'Rs[805]', - 'R06a'=>'R[806]', - 'R06b'=>'Rh[806]', - 'R06c'=>'Rs[806]', - 'R06d'=>'Rq[806]', - 'R06e'=>'Rt[806]', - 'R07a'=>'R[807]', - 'R07b'=>'Rh[807]', - 'R07c'=>'Rs[807]', - 'R07d'=>'Rq[807]', - 'R07e'=>'Rt[807]', - 'R08a'=>'R[808]', - 'R08b'=>'Rh[808]', - 'R08c'=>'Rs[808]', - 'R08d'=>'Rq[808]', - 'R08e'=>'Rt[808]', - 'R09a'=>'R[809]', - 'R09b'=>'Rh[809]', - 'R09c'=>'Rs[809]', - 'R09d'=>'Rq[809]', - 'R09e'=>'Rt[809]', - 'R10a'=>'R[810]', - 'R10b'=>'Rh[810]', - 'R10c'=>'Rs[810]', - 'R10d'=>'Rq[810]', - 'R10e'=>'Rt[810]', - 'R11a'=>'R[811]', - 'R11b'=>'Rh[811]', - 'R11c'=>'Rs[811]', - 'R12a'=>'R[812]', - 'R12b'=>'Rh[812]', - 'R12c'=>'Rs[812]', - 'R13a'=>'R[813]', - 'R13b'=>'Rh[813]', - 'R13c'=>'Rs[813]', - 'R13d'=>'Rq[813]', - 'R13e'=>'Rt[813]', - 'R14a'=>'R[814]', - 'R14b'=>'Rh[814]', - 'R14c'=>'Rs[814]', - 'R14d'=>'Rq[814]', - 'R14e'=>'Rt[814]', - 'R15a'=>'R[815]', - 'R15b'=>'Rh[815]', - 'R15c'=>'Rs[815]', - 'R15d'=>'Rq[815]', - 'R15e'=>'Rt[815]', - 'R16a'=>'R[816]', - 'R16b'=>'Rh[816]', - 'R16c'=>'Rs[816]', - 'R16d'=>'Rq[816]', - 'R16e'=>'Rt[816]', - 'R17a'=>'R[817]', - 'R17b'=>'Rh[817]', - 'R17c'=>'Rs[817]', - 'R18a'=>'R[818]', - 'R18b'=>'Rh[818]', - 'R18c'=>'Rs[818]', - 'R18d'=>'Rq[818]', - 'R18e'=>'Rt[818]', - 'R19a'=>'R[819]', - 'R19b'=>'Rh[819]', - 'R19c'=>'Rs[819]', - 'R19d'=>'Rq[819]', - 'R19e'=>'Rt[819]', - 'R20a'=>'R[820]', - 'R20b'=>'Rh[820]', - 'R20c'=>'Rs[820]', - 'R20d'=>'Rq[820]', - 'R20e'=>'Rt[820]', - 'R21a'=>'R[821]', - 'R21b'=>'Rh[821]', - 'R21c'=>'Rs[821]', - 'R21d'=>'Rq[821]', - 'R21e'=>'Rt[821]', - 'R22a'=>'R[822]', - 'R22b'=>'Rh[822]', - 'R22c'=>'Rs[822]', - 'R23a'=>'R[823]', - 'R23b'=>'Rh[823]', - 'R23c'=>'Rs[823]', - 'R24a'=>'R[824]', - 'R24b'=>'Rh[824]', - 'R24c'=>'Rs[824]', - 'R25a'=>'R[825]', - 'R25b'=>'Rh[825]', - 'R25c'=>'Rs[825]', - 'R26a'=>'R[826]', - 'R26b'=>'Rh[826]', - 'R26c'=>'Rs[826]', - 'R26d'=>'Rq[826]', - 'R26e'=>'Rt[826]', - 'R27a'=>'R[827]', - 'R27b'=>'Rh[827]', - 'R27c'=>'Rs[827]', - 'R27d'=>'Rq[827]', - 'R27e'=>'Rt[827]', - 'R28a'=>'R[828]', - 'R28b'=>'Rh[828]', - 'R28c'=>'Rs[828]', - 'R28d'=>'Rq[828]', - 'R28e'=>'Rt[828]', - 'R29a'=>'R[829]', - 'R29b'=>'Rh[829]', - 'R29c'=>'Rs[829]', - 'R29d'=>'Rq[829]', - 'R29e'=>'Rt[829]', - 'R30a'=>'R[830]', - 'R30b'=>'Rh[830]', - 'R30c'=>'Rs[830]', - 'R30d'=>'Rq[830]', - 'R30e'=>'Rt[830]', - 'R31a'=>'R[843]', - 'R31b'=>'Rh[843]', - 'R31c'=>'Rs[843]', - 'R31d'=>'Rq[843]', - 'R31e'=>'Rt[843]', - 'R32a'=>'R[831]', - 'R32b'=>'Rh[831]', - 'R32c'=>'Rs[831]', - 'R33a'=>'R[832]', - 'R33b'=>'Rh[832]', - 'R33c'=>'Rs[832]', - 'R33d'=>'R[845]', - 'R33e'=>'Rh[845]', - 'R33f'=>'Rs[845]', - 'R34a'=>'R[833]', - 'R34b'=>'Rh[833]', - 'R34c'=>'Rs[833]', - 'R34d'=>'R[846]', - 'R34e'=>'Rh[846]', - 'R34f'=>'Rs[846]', - 'R35a'=>'R[834]', - 'R35b'=>'Rh[834]', - 'R35c'=>'Rs[834]', - 'R35d'=>'R[847]', - 'R35e'=>'Rh[847]', - 'R35f'=>'Rs[847]', - 'R36a'=>'R[835]', - 'R36b'=>'Rh[835]', - 'R36c'=>'Rs[835]', - 'R36d'=>'R[849]', - 'R36e'=>'Rh[849]', - 'R36f'=>'Rs[849]', - 'R37a'=>'R[844]', - 'R37b'=>'Rh[844]', - 'R37c'=>'Rs[844]', - 'R37d'=>'R[848]', - 'R37e'=>'Rh[848]', - 'R37f'=>'Rs[848]', - 'R38a'=>'R[836]', - 'R38b'=>'Rh[836]', - 'R38c'=>'Rs[836]', - 'R38d'=>'Rq[836]', - 'R38e'=>'Rt[836]', - 'R39a'=>'R[837]', - 'R39b'=>'Rh[837]', - 'R39c'=>'Rs[837]', - 'R39d'=>'Rq[837]', - 'R39e'=>'Rt[837]', - 'R40a'=>'R[838]', - 'R40b'=>'Rh[838]', - 'R40c'=>'Rs[838]', - 'R40d'=>'Rq[838]', - 'R40e'=>'Rt[838]', - 'R41a'=>'R[842]', - 'R41b'=>'Rh[842]', - 'R41c'=>'Rs[842]', - 'R41d'=>'Rq[842]', - 'R41e'=>'Rt[842]', - 'R42a'=>'R[839]', - 'R42b'=>'Rh[839]', - 'R42c'=>'Rs[839]', - 'R42d'=>'Rq[839]', - 'R42e'=>'Rt[839]', - 'R43a'=>'R[840]', - 'R43b'=>'Rh[840]', - 'R43c'=>'Rs[840]', - 'R43d'=>'Rq[840]', - 'R43e'=>'Rt[840]', - 'R44a'=>'R[841]', - 'R44b'=>'Rh[841]', - 'R44c'=>'Rs[841]', - ); - - /** Conversion des zones pour les collectivités **/ - function convertZones($codeR, $zonesDB) { - global $tabZones2Ratios; - foreach($tabZones2Ratios as $oldR=>$newR) { - if (preg_match('/(\D+)\[(\d+)\]/Uis', $newR, $matches) && $matches[1]==$codeR) { - $iRatio=$matches[2]; - if ($codeR=='R') - $ret[$iRatio]=$zonesDB[$oldR]*1000; - else - $ret[$iRatio]=$zonesDB[$oldR]; - } - } - return $ret; - } - ?> \ No newline at end of file +'R[801]', + 'R01b'=>'Rh[801]', + 'R01c'=>'Rs[801]', + 'R02a'=>'R[802]', + 'R02b'=>'Rh[802]', + 'R02c'=>'Rs[802]', + 'R02d'=>'Rq[802]', + 'R02e'=>'Rt[802]', + 'R03a'=>'R[803]', + 'R03b'=>'Rh[803]', + 'R03c'=>'Rs[803]', + 'R03d'=>'Rq[803]', + 'R03e'=>'Rt[803]', + 'R04a'=>'R[804]', + 'R04b'=>'Rh[804]', + 'R04c'=>'Rs[804]', + 'R04d'=>'Rq[804]', + 'R04e'=>'Rt[804]', + 'R05a'=>'R[805]', + 'R05b'=>'Rh[805]', + 'R05c'=>'Rs[805]', + 'R06a'=>'R[806]', + 'R06b'=>'Rh[806]', + 'R06c'=>'Rs[806]', + 'R06d'=>'Rq[806]', + 'R06e'=>'Rt[806]', + 'R07a'=>'R[807]', + 'R07b'=>'Rh[807]', + 'R07c'=>'Rs[807]', + 'R07d'=>'Rq[807]', + 'R07e'=>'Rt[807]', + 'R08a'=>'R[808]', + 'R08b'=>'Rh[808]', + 'R08c'=>'Rs[808]', + 'R08d'=>'Rq[808]', + 'R08e'=>'Rt[808]', + 'R09a'=>'R[809]', + 'R09b'=>'Rh[809]', + 'R09c'=>'Rs[809]', + 'R09d'=>'Rq[809]', + 'R09e'=>'Rt[809]', + 'R10a'=>'R[810]', + 'R10b'=>'Rh[810]', + 'R10c'=>'Rs[810]', + 'R10d'=>'Rq[810]', + 'R10e'=>'Rt[810]', + 'R11a'=>'R[811]', + 'R11b'=>'Rh[811]', + 'R11c'=>'Rs[811]', + 'R12a'=>'R[812]', + 'R12b'=>'Rh[812]', + 'R12c'=>'Rs[812]', + 'R13a'=>'R[813]', + 'R13b'=>'Rh[813]', + 'R13c'=>'Rs[813]', + 'R13d'=>'Rq[813]', + 'R13e'=>'Rt[813]', + 'R14a'=>'R[814]', + 'R14b'=>'Rh[814]', + 'R14c'=>'Rs[814]', + 'R14d'=>'Rq[814]', + 'R14e'=>'Rt[814]', + 'R15a'=>'R[815]', + 'R15b'=>'Rh[815]', + 'R15c'=>'Rs[815]', + 'R15d'=>'Rq[815]', + 'R15e'=>'Rt[815]', + 'R16a'=>'R[816]', + 'R16b'=>'Rh[816]', + 'R16c'=>'Rs[816]', + 'R16d'=>'Rq[816]', + 'R16e'=>'Rt[816]', + 'R17a'=>'R[817]', + 'R17b'=>'Rh[817]', + 'R17c'=>'Rs[817]', + 'R18a'=>'R[818]', + 'R18b'=>'Rh[818]', + 'R18c'=>'Rs[818]', + 'R18d'=>'Rq[818]', + 'R18e'=>'Rt[818]', + 'R19a'=>'R[819]', + 'R19b'=>'Rh[819]', + 'R19c'=>'Rs[819]', + 'R19d'=>'Rq[819]', + 'R19e'=>'Rt[819]', + 'R20a'=>'R[820]', + 'R20b'=>'Rh[820]', + 'R20c'=>'Rs[820]', + 'R20d'=>'Rq[820]', + 'R20e'=>'Rt[820]', + 'R21a'=>'R[821]', + 'R21b'=>'Rh[821]', + 'R21c'=>'Rs[821]', + 'R21d'=>'Rq[821]', + 'R21e'=>'Rt[821]', + 'R22a'=>'R[822]', + 'R22b'=>'Rh[822]', + 'R22c'=>'Rs[822]', + 'R23a'=>'R[823]', + 'R23b'=>'Rh[823]', + 'R23c'=>'Rs[823]', + 'R24a'=>'R[824]', + 'R24b'=>'Rh[824]', + 'R24c'=>'Rs[824]', + 'R25a'=>'R[825]', + 'R25b'=>'Rh[825]', + 'R25c'=>'Rs[825]', + 'R26a'=>'R[826]', + 'R26b'=>'Rh[826]', + 'R26c'=>'Rs[826]', + 'R26d'=>'Rq[826]', + 'R26e'=>'Rt[826]', + 'R27a'=>'R[827]', + 'R27b'=>'Rh[827]', + 'R27c'=>'Rs[827]', + 'R27d'=>'Rq[827]', + 'R27e'=>'Rt[827]', + 'R28a'=>'R[828]', + 'R28b'=>'Rh[828]', + 'R28c'=>'Rs[828]', + 'R28d'=>'Rq[828]', + 'R28e'=>'Rt[828]', + 'R29a'=>'R[829]', + 'R29b'=>'Rh[829]', + 'R29c'=>'Rs[829]', + 'R29d'=>'Rq[829]', + 'R29e'=>'Rt[829]', + 'R30a'=>'R[830]', + 'R30b'=>'Rh[830]', + 'R30c'=>'Rs[830]', + 'R30d'=>'Rq[830]', + 'R30e'=>'Rt[830]', + 'R31a'=>'R[843]', + 'R31b'=>'Rh[843]', + 'R31c'=>'Rs[843]', + 'R31d'=>'Rq[843]', + 'R31e'=>'Rt[843]', + 'R32a'=>'R[831]', + 'R32b'=>'Rh[831]', + 'R32c'=>'Rs[831]', + 'R33a'=>'R[832]', + 'R33b'=>'Rh[832]', + 'R33c'=>'Rs[832]', + 'R33d'=>'R[845]', + 'R33e'=>'Rh[845]', + 'R33f'=>'Rs[845]', + 'R34a'=>'R[833]', + 'R34b'=>'Rh[833]', + 'R34c'=>'Rs[833]', + 'R34d'=>'R[846]', + 'R34e'=>'Rh[846]', + 'R34f'=>'Rs[846]', + 'R35a'=>'R[834]', + 'R35b'=>'Rh[834]', + 'R35c'=>'Rs[834]', + 'R35d'=>'R[847]', + 'R35e'=>'Rh[847]', + 'R35f'=>'Rs[847]', + 'R36a'=>'R[835]', + 'R36b'=>'Rh[835]', + 'R36c'=>'Rs[835]', + 'R36d'=>'R[849]', + 'R36e'=>'Rh[849]', + 'R36f'=>'Rs[849]', + 'R37a'=>'R[844]', + 'R37b'=>'Rh[844]', + 'R37c'=>'Rs[844]', + 'R37d'=>'R[848]', + 'R37e'=>'Rh[848]', + 'R37f'=>'Rs[848]', + 'R38a'=>'R[836]', + 'R38b'=>'Rh[836]', + 'R38c'=>'Rs[836]', + 'R38d'=>'Rq[836]', + 'R38e'=>'Rt[836]', + 'R39a'=>'R[837]', + 'R39b'=>'Rh[837]', + 'R39c'=>'Rs[837]', + 'R39d'=>'Rq[837]', + 'R39e'=>'Rt[837]', + 'R40a'=>'R[838]', + 'R40b'=>'Rh[838]', + 'R40c'=>'Rs[838]', + 'R40d'=>'Rq[838]', + 'R40e'=>'Rt[838]', + 'R41a'=>'R[842]', + 'R41b'=>'Rh[842]', + 'R41c'=>'Rs[842]', + 'R41d'=>'Rq[842]', + 'R41e'=>'Rt[842]', + 'R42a'=>'R[839]', + 'R42b'=>'Rh[839]', + 'R42c'=>'Rs[839]', + 'R42d'=>'Rq[839]', + 'R42e'=>'Rt[839]', + 'R43a'=>'R[840]', + 'R43b'=>'Rh[840]', + 'R43c'=>'Rs[840]', + 'R43d'=>'Rq[840]', + 'R43e'=>'Rt[840]', + 'R44a'=>'R[841]', + 'R44b'=>'Rh[841]', + 'R44c'=>'Rs[841]', + ); + + + /** Conversion des zones pour les collectivités **/ + function convertZones($codeR, $zonesDB) { + global $tabZones2Ratios; + foreach($tabZones2Ratios as $oldR=>$newR) { + if (preg_match('/(\D+)\[(\d+)\]/Uis', $newR, $matches) && $matches[1]==$codeR) { + $iRatio=$matches[2]; + if ($codeR=='R') + $ret[$iRatio]=$zonesDB[$oldR]*1000; + else + $ret[$iRatio]=$zonesDB[$oldR]; + } + } + return $ret; + } +?> \ No newline at end of file diff --git a/1.2/library/Metier/scores/classMScores.php b/1.2/library/Metier/scores/classMScores.php index f7a5618b..f2e85bbd 100644 --- a/1.2/library/Metier/scores/classMScores.php +++ b/1.2/library/Metier/scores/classMScores.php @@ -254,7 +254,7 @@ function formatValeur($variable, $longeur=0, $fonction='') return $variable; } else { if ($nomVar=='ZEMET') { - $strTmp=eval("return $valeur;"); + global $RPEN; if (isset($tabVariables['ZEMET'][$RPEN.$ZEMET]['art'])) return $tabVariables['ZEMET'][$RPEN.$ZEMET]['art']; else @@ -637,7 +637,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail $tabCommentaires = $tabTri = $tabTriAff = array(); switch( $type ) { case 'scores': - $version = '405'; + $version = '411'; require_once 'Metier/scores/Variables/CommentsIndiscore'.$version.'.php'; break; case 'valo': @@ -826,11 +826,11 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail $SOCIETE_COTE_ISIN=$tabIdentite['Isin']; if ($SOCIETE_COTE_ISIN<>'') { $SOCIETE_COTE=true; - $SOCIETE_COTE_PLACE=$tabRet['Bourse']['placeCotation']; - $SOCIETE_COTE_MARCHE=$tabRet['Bourse']['marche']; - $SOCIETE_COTE_CAPITALISATION=$tabRet['Bourse']['capitalisation']; // Afficher en KE - $SOCIETE_COTE_COURS=$tabRet['Bourse']['derCoursCloture']; - $SOCIETE_COTE_COURS_DATE=$tabRet['Bourse']['derCoursDate']; + $SOCIETE_COTE_PLACE=$tabIdentite['Bourse']['placeCotation']; + $SOCIETE_COTE_MARCHE=$tabIdentite['Bourse']['marche']; + $SOCIETE_COTE_CAPITALISATION=$tabIdentite['Bourse']['capitalisation']; // Afficher en KE + $SOCIETE_COTE_COURS=$tabIdentite['Bourse']['derCoursCloture']; + $SOCIETE_COTE_COURS_DATE=$tabIdentite['Bourse']['derCoursDate']; $SOCIETE_COTE_COURS_MIN=0;//@todo:$tabRet['Bourse']['derCoursDate']; $SOCIETE_COTE_COURS_MAX=0;//@todo:$tabRet['Bourse']['derCoursDate']; } @@ -2977,8 +2977,9 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail elseif ($indiscore20>=8) $classeRisque=2; else $classeRisque=1; - if (($ACTIFRNCS*1==0 && $ACTIFINSEE*1==0) || - $tabIdentite['SituationJuridique']<>'') + if ( ($ACTIFRNCS*1==0 && $ACTIFINSEE*1==0) + || $tabIdentite['SituationJuridique'] == 'P' + || $tabIdentite['SituationJuridique'] == 'PL') $classeRisque=9; elseif ($ENCOURS=='N/A') $classeRisque=8; diff --git a/1.2/library/Metier/sphinx/comb2crit.txt b/1.2/library/Metier/sphinx/comb2crit.txt deleted file mode 100644 index 862b9053..00000000 --- a/1.2/library/Metier/sphinx/comb2crit.txt +++ /dev/null @@ -1,47 +0,0 @@ -00 -11 IT -12 I -13 T -21 D NR -22 D VNR -23 DL N -24 DL NR -25 P NR -26 P VN -27 PD VNR -28 PD N -30 S -31 SE -32 SE R -33 SE N -34 SE NR -35 SE V -36 SE V R -37 SE VNR -40 SE D -41 SE D N -42 SE D V -43 SE D V R -44 SE D VN -45 SE D VNR -46 SE DL -47 SE DL R -48 SE DL N -49 SE DL NR -60 SEP -61 SEP N -62 SEP NR -63 SEP V -64 SEP V R -65 SEP VNR -71 SEPD -72 SEPD R -73 SEPD N -74 SEPD NR -75 SEPD V -76 SEPD V R -77 SEPD VN -78 SEPD VNR -81 SEPDL R -82 SEPDL N -83 SEPDL NR diff --git a/1.2/library/Metier/sphinx/cpVilles.php b/1.2/library/Metier/sphinx/cpVilles.php deleted file mode 100644 index 20342d3e..00000000 --- a/1.2/library/Metier/sphinx/cpVilles.php +++ /dev/null @@ -1,45 +0,0 @@ - $b) { - return -1; - } - - $m = ($a + $b) >> 1; - - $c = strcmp($s, substr($tab[$m], 0, $l)); - if ($c == 0) { - return $m; - } else if ($c < 0) { - return bsearch($tab, $a, $m - 1, $s, $l); - } else { - return bsearch($tab, $m + 1, $b, $s, $l); - } -} - -// --------------------------------------------------------------------------- // -// Main -// --------------------------------------------------------------------------- // -$completion = array(); -$strlen = strlen($_GET['val']); -$upper = strtoupper($_GET['val']) ; -$i = bsearch($cpVilles, 0, sizeof($cpVilles) - 1, $upper, $strlen); -if ($i >= 0) { - while ($i > 0 && substr($cpVilles[$i - 1], 0, $strlen) == $upper) { - --$i; - } - while ($i < sizeof($cpVilles) && - substr($cpVilles[$i], 0, $strlen) == $upper) { - $completion[] = '"'.$cpVilles[$i].'"'; - ++$i; - } -} - -// Envoi au javascript au format JSON ['valeur1','valeur2', ...] -print '['.join(',', $completion).']'; - ?> \ No newline at end of file diff --git a/1.2/library/Metier/sphinx/crit2seq.prn b/1.2/library/Metier/sphinx/crit2seq.prn deleted file mode 100644 index 1aaa9847..00000000 --- a/1.2/library/Metier/sphinx/crit2seq.prn +++ /dev/null @@ -1,114 +0,0 @@ -; COMBINAISON de DEPART -; (présence 1 ou +mots critère) -;sITSEPDLVNR CODES COMBINAISONS DE CRITERES + P=phonétique ou O=Orthographique -1 IT 12 -1 I 00 -1 I SEP 12 -1 T 00 -1 TSEP 13 61 61o61p -1 D VNR 24 45o24o24p -1 D NR 21o21p -1 DL NR 21 21o21p -1 DLVNR 45 24 45o24o24p -1 P VNR 74 78o74o74p -1 PD VNR 74 78o74o74p -1 PDL NR 78 83o74 74o74p -1 PDLV R 78 81 82 77 71 -1 PDLVN 78 82 75 28 71 -1 PDLVNR 78 74 82 78o74o82o82p -1 S 30o30p -1 S R 72o71 71o71p -1 S N 31 -1 S NR 77 43 71 -1 S V 35o35p30 -1 S VN 75 77o75o77p75p -1 S V R 75 83 -1 S VNR 43 44 75 83 61 71 -1 S D 40p40o61p61 -1 S D R 45o77 77o77p -1 S D N 71 -1 S D NR 77 43 71 31 -1 S D V 77o40 40o -1 S D V R 75 72 71 -1 S D VN 43 41 77 71 -1 S D VNR 44 43 49 73 75 72 71 -1 S DL 78 78p61p61p -1 S DL R 82 78 77 71 -1 S DL N 41 71 -1 S DL NR 78 82 81 78p77 43 71 31 -1 S DLV 78 78p71 -1 S DLV R 78 83 82 75 72 40 71 -1 S DLVN 78 82 78p43 71 -1 S DLVNR 78 49 77 43 78p75 41 72 71 22 -1 S P 60o60p31 31o31p -1 S P R 45 77 41 -1 S P N 71 71o45 45p -1 S P NR 77 72 33 32 -1 S P V 63o45 45o45p -1 S P VN 45 43 61 64 -1 S P V R 75 83 45 35 -1 S P VNR 77 45 44 43 73 75 72 71 41 42 40 -1 S PD 45 71p71o -1 S PD R 77 45 71 -1 S PD N 71 71o45 45o -1 S PD NR 77 76 45 41 43 40 -1 S PD V 45 45o71 42 42p -1 S PD V R 77 83 43 71 41 -1 S PD VN 83 75 71 44 83o75o71o44o43 41 40 40o40p -1 S PD VNR 77 74 45 44 43 75 71 61 63 60 40 -1 S PDL 71 71o71p45 45o -1 S PDL R 78 82 75 45 44 -1 S PDL N 73 48 41 -1 S PDL NR 78 82 81 49 77 65 44 43 75 60 31 -1 S PDLV 78 45 45o71 42 42p40 -1 S PDLV R 78 83 82 75 45 49 46 42 71 40 -1 S PDLVN 78 83 77 45 71 42 41 40 -1 S PDLVNR 78 83 27 74 45 44 43 42 40 -1 SE 31o31p -1 SE R 72o71 71o71p -1 SE N 31 -1 SE NR 77 43 71 -1 SE V 35o35p30 -1 SE V R 75 83 -1 SE VN 75 77 -1 SE VNR 43 44 75 83 61 71 -1 SE D 40o30 -1 SE D R 45o77 -1 SE D N 71 -1 SE D NR 77 43 71 31 -1 SE D V 77o40 -1 SE D V R 75 72 71 -1 SE D VN 43 41 77 -1 SE D VNR 44 43 49 73 75 72 71 -1 SE DL 40 -1 SE DL R 82 78 77 -1 SE DL N 45 43 82o45o43o43p -1 SE DL NR 78 82 81 46 77 43 71 31 -1 SE DLV 78 78o71 71o71p -1 SE DLV R 78 83 82 75 72 40 -1 SE DLVN 78 82 46 43 71 -1 SE DLVNR 78 49 77 43 46 75 41 72 71 22 -1 SEP 61p31 31p30 -1 SEP R 45 77 41 -1 SEP N 71 71o45 45p -1 SEP NR 77 72 33 32 -1 SEP V 63o45 -1 SEP V R 75 83 45 35 -1 SEP VN 45 43 61 64 -1 SEP VNR 77 45 44 43 73 75 72 71 41 42 40 -1 SEPD 45 71p -1 SEPD R 77 45 -1 SEPD N 71 71o45 40 -1 SEPD NR 77 76 45 41 43 40 -1 SEPD V 45 71p71o40 -1 SEPD V R 77 83 43 71 41 40 -1 SEPD VN 83 75 71 44 83o75o71o44o43 41 40 40o40p -1 SEPD VNR 77 74 45 44 43 75 71 61 63 60 40 -1 SEPDL 45 71p40 -1 SEPDL R 78 82 75 45 44 40 -1 SEPDL N 73 48 41 40 -1 SEPDL NR 78 82 81 49 77 65 44 43 75 60 31 -1 SEPDLV 78 45 45o71 42 42p -1 SEPDLV R 78 83 82 75 45 49 46 42 71 40 -1 SEPDLVN 78 83 77 45 71 42 41 40 -1 SEPDLVNR 78 83 27 74 45 44 43 42 40 diff --git a/1.2/library/Metier/sphinx/criteresFonc.php b/1.2/library/Metier/sphinx/criteresFonc.php index ab6a7835..9814fe97 100644 --- a/1.2/library/Metier/sphinx/criteresFonc.php +++ b/1.2/library/Metier/sphinx/criteresFonc.php @@ -14,17 +14,123 @@ if (defined('LOCAL') == false) { // --------------------------------------------------------------------------- // function nouvelleSequence(&$criteres) { - if (LOCAL == true) { - $crit2seq = file('crit2seq.prn'); - } else { - $crit2seq = file(realpath(dirname(__FILE__)).'/crit2seq.prn'); - } - foreach ($crit2seq as $ligne) { - if (($pos = strpos($ligne, ';')) != false) { - $ligne = substr($ligne, 0, $pos); - } - if (strstr(substr($ligne, 2, 10), $criteres) != false) { - return str_split(substr($ligne, 13, -1), 3); + $sequence = array( + array( 'crit' => 'IT ', 'next' => '12' ), + array( 'crit' => 'I ', 'next' => '00' ), + array( 'crit' => 'I SEP ', 'next' => '12' ), + array( 'crit' => ' T ', 'next' => '00' ), + array( 'crit' => ' TSEP ', 'next' => '13 61 61o61p' ), + array( 'crit' => ' D VNR', 'next' => '24 45o24o24p' ), + array( 'crit' => ' D NR', 'next' => '21o21p' ), + array( 'crit' => ' DL NR', 'next' => '21 21o21p' ), + array( 'crit' => ' DLVNR', 'next' => '36 45 24 45o24o24p' ), + array( 'crit' => ' P VNR', 'next' => '74 78o74o74p' ), + array( 'crit' => ' PD VNR', 'next' => '74 78o74o74p' ), + array( 'crit' => ' PDL NR', 'next' => '78 83o74 74o74p' ), + array( 'crit' => ' PDLV R', 'next' => '78 81 82 77 71' ), + array( 'crit' => ' PDLVN ', 'next' => '82 75 28 71' ), + array( 'crit' => ' PDLVNR', 'next' => '78 74 82 78o74o82o82p' ), + array( 'crit' => ' S ', 'next' => '30o30p' ), + array( 'crit' => ' S R', 'next' => '72o71 71o71p' ), + array( 'crit' => ' S N ', 'next' => '31' ), + array( 'crit' => ' S NR', 'next' => '77 43 71' ), + array( 'crit' => ' S V ', 'next' => '35o35p30' ), + array( 'crit' => ' S VN ', 'next' => '75 77o75o77p75p' ), + array( 'crit' => ' S V R', 'next' => '75 83' ), + array( 'crit' => ' S VNR', 'next' => '43 44 75 83 61 71' ), + array( 'crit' => ' S D ', 'next' => '40p40o61p61' ), + array( 'crit' => ' S D R', 'next' => '45o77 77o77p' ), + array( 'crit' => ' S D N ', 'next' => '71' ), + array( 'crit' => ' S D NR', 'next' => '77 43 71 31' ), + array( 'crit' => ' S D V ', 'next' => '77o40 40o' ), + array( 'crit' => ' S D V R', 'next' => '75 72 71' ), + array( 'crit' => ' S D VN ', 'next' => '43 41 77 71' ), + array( 'crit' => ' S D VNR', 'next' => '44 43 49 73 75 72 71' ), + array( 'crit' => ' S DL ', 'next' => '78 78p61p61p' ), + array( 'crit' => ' S DL R', 'next' => '82 78 77 71' ), + array( 'crit' => ' S DL N ', 'next' => '41 71' ), + array( 'crit' => ' S DL NR', 'next' => '78 82 81 78p77 43 71 31' ), + array( 'crit' => ' S DLV ', 'next' => '78 78p71' ), + array( 'crit' => ' S DLV R', 'next' => '78 83 82 75 72 40 71' ), + array( 'crit' => ' S DLVN ', 'next' => '78 82 78p43 71' ), + array( 'crit' => ' S DLVNR', 'next' => '78 49 77 43 78p75 41 72 71 22' ), + array( 'crit' => ' S P ', 'next' => '60o60p31 31o31p' ), + array( 'crit' => ' S P R', 'next' => '45 77 41' ), + array( 'crit' => ' S P N ', 'next' => '71 71o45 45p' ), + array( 'crit' => ' S P NR', 'next' => '77 72 33 32' ), + array( 'crit' => ' S P V ', 'next' => '63o45 45o45p' ), + array( 'crit' => ' S P VN ', 'next' => '45 43 61 64' ), + array( 'crit' => ' S P V R', 'next' => '75 83 45 35' ), + array( 'crit' => ' S P VNR', 'next' => '77 45 44 43 73 75 72 71 41 42 40' ), + array( 'crit' => ' S PD ', 'next' => '45 71p71o' ), + array( 'crit' => ' S PD R', 'next' => '77 45 71' ), + array( 'crit' => ' S PD N ', 'next' => '71 71o45 45o' ), + array( 'crit' => ' S PD NR', 'next' => '77 76 45 41 43 40' ), + array( 'crit' => ' S PD V ', 'next' => '45 45o71 42 42p' ), + array( 'crit' => ' S PD V R', 'next' => '77 83 43 71 41' ), + array( 'crit' => ' S PD VN ', 'next' => '83 75 71 44 83o75o71o44o43 41 40 40o40p' ), + array( 'crit' => ' S PD VNR', 'next' => '77 74 45 44 43 75 71 61 63 60 40' ), + array( 'crit' => ' S PDL ', 'next' => '71 71o71p45 45o' ), + array( 'crit' => ' S PDL R', 'next' => '78 82 75 45 44' ), + array( 'crit' => ' S PDL N ', 'next' => '73 48 41' ), + array( 'crit' => ' S PDL NR', 'next' => '78 82 81 49 77 65 44 43 75 60 31' ), + array( 'crit' => ' S PDLV ', 'next' => '78 45 45o71 42 42p40' ), + array( 'crit' => ' S PDLV R', 'next' => '78 83 82 75 45 49 46 42 71 40' ), + array( 'crit' => ' S PDLVN ', 'next' => '78 83 77 45 71 42 41 40' ), + array( 'crit' => ' S PDLVNR', 'next' => '78 83 27 74 45 44 43 42 40' ), + array( 'crit' => ' SE ', 'next' => '31o31p' ), + array( 'crit' => ' SE R', 'next' => '72o71 71o71p' ), + array( 'crit' => ' SE N ', 'next' => '31' ), + array( 'crit' => ' SE NR', 'next' => '77 43 71' ), + array( 'crit' => ' SE V ', 'next' => '35o35p30' ), + array( 'crit' => ' SE V R', 'next' => '75 83' ), + array( 'crit' => ' SE VN ', 'next' => '75 77' ), + array( 'crit' => ' SE VNR', 'next' => '43 44 75 83 61 71' ), + array( 'crit' => ' SE D ', 'next' => '40o30' ), + array( 'crit' => ' SE D R', 'next' => '45o77' ), + array( 'crit' => ' SE D N ', 'next' => '71' ), + array( 'crit' => ' SE D NR', 'next' => '77 43 71 31' ), + array( 'crit' => ' SE D V ', 'next' => '77o40' ), + array( 'crit' => ' SE D V R', 'next' => '75 72 71' ), + array( 'crit' => ' SE D VN ', 'next' => '43 41 77' ), + array( 'crit' => ' SE D VNR', 'next' => '44 43 49 73 75 72 71' ), + array( 'crit' => ' SE DL ', 'next' => '40' ), + array( 'crit' => ' SE DL R', 'next' => '82 78 77' ), + array( 'crit' => ' SE DL N ', 'next' => '45 43 82o45o43o43p' ), + array( 'crit' => ' SE DL NR', 'next' => '78 82 81 46 77 43 71 31' ), + array( 'crit' => ' SE DLV ', 'next' => '78 78o71 71o71p' ), + array( 'crit' => ' SE DLV R', 'next' => '78 83 82 75 72 40' ), + array( 'crit' => ' SE DLVN ', 'next' => '78 82 46 43 71' ), + array( 'crit' => ' SE DLVNR', 'next' => '78 49 77 43 46 75 41 72 71 22' ), + array( 'crit' => ' SEP ', 'next' => '61p31 31p30' ), + array( 'crit' => ' SEP R', 'next' => '45 77 41' ), + array( 'crit' => ' SEP N ', 'next' => '71 71o45 45p' ), + array( 'crit' => ' SEP NR', 'next' => '77 72 33 32' ), + array( 'crit' => ' SEP V ', 'next' => '63o45' ), + array( 'crit' => ' SEP V R', 'next' => '75 83 45 35' ), + array( 'crit' => ' SEP VN ', 'next' => '45 43 61 64' ), + array( 'crit' => ' SEP VNR', 'next' => '77 45 44 43 73 75 72 71 41 42 40' ), + array( 'crit' => ' SEPD ', 'next' => '45 71p' ), + array( 'crit' => ' SEPD R', 'next' => '77 45' ), + array( 'crit' => ' SEPD N ', 'next' => '71 71o45 40' ), + array( 'crit' => ' SEPD NR', 'next' => '77 76 45 41 43 40' ), + array( 'crit' => ' SEPD V ', 'next' => '45 71p71o40' ), + array( 'crit' => ' SEPD V R', 'next' => '77 83 43 71 41 40' ), + array( 'crit' => ' SEPD VN ', 'next' => '83 75 71 44 83o75o71o44o43 41 40 40o40p' ), + array( 'crit' => ' SEPD VNR', 'next' => '77 74 45 44 43 75 71 61 63 60 40' ), + array( 'crit' => ' SEPDL ', 'next' => '45 71p40' ), + array( 'crit' => ' SEPDL R', 'next' => '78 82 75 45 44 40' ), + array( 'crit' => ' SEPDL N ', 'next' => '73 48 41 40' ), + array( 'crit' => ' SEPDL NR', 'next' => '78 82 81 49 77 65 44 43 75 60 31' ), + array( 'crit' => ' SEPDLV ', 'next' => '78 45 45o71 42 42p' ), + array( 'crit' => ' SEPDLV R', 'next' => '78 83 82 75 45 49 46 42 71 40' ), + array( 'crit' => ' SEPDLVN ', 'next' => '78 83 77 45 71 42 41 40' ), + array( 'crit' => ' SEPDLVNR', 'next' => '78 83 27 74 45 44 43 42 40' ), + ); + + foreach ($sequence as $ligne) { + if (strstr($ligne['crit'], $criteres) != false) { + return str_split($ligne['next'], 3); } } return array(); @@ -36,9 +142,10 @@ function nouvelleSequence(&$criteres) function nouvelleCombinaison(&$sequence, &$sequencePos, $pass, &$index, &$mode) { for (;;) { - if (isset($sequence[$sequencePos]) == false) { + if (isset($sequence[$sequencePos]) === false) { return ''; } + $combinaison = trim($sequence[$sequencePos]); ++$sequencePos; @@ -48,25 +155,34 @@ function nouvelleCombinaison(&$sequence, &$sequencePos, $pass, &$index, &$mode) // Passage en phonetique ou en orthographique if (strlen($combinaison) == 3) { - if ($pass == 2 || - $pass == 3) { + if ($pass == 2 || $pass == 3) { continue; } $car = strtolower(substr($combinaison, 2, 1)); + + //Search Engine Version 2, we remove the orthographique + if (SPHINX_ENT_VERSION == 2 && $car == 'o') { + return strtolower(substr($combinaison, 0, 2)); + } + switch($car) { - case 'p': - $index = 'ent_phx'; - $mode = SPH_MATCH_EXTENDED2; - break; - case 'o': - $index = 'ent_mns'; - $mode = SPH_MATCH_ISPELL; - break; - default: - debugln("attention: mode inconnu: '$car'"); + case 'p': + $index = 'ent_phx'; + $mode = SPH_MATCH_EXTENDED2; + break; + case 'o': + $index = 'ent_mns'; + $mode = SPH_MATCH_ISPELL; + break; + default: + debugln("attention: mode inconnu: '$car'"); } } else if ($pass == 1) { - $index = 'ent_mns'; + $index = 'ent_mns'; + //Search Engine Version 2, we remove the orthographique + if (SPHINX_ENT_VERSION == 2) { + $index = 'ent'; + } } return $combinaison; @@ -76,13 +192,13 @@ function nouvelleCombinaison(&$sequence, &$sequencePos, $pass, &$index, &$mode) // --------------------------------------------------------------------------- // // Nouveaux criteres // --------------------------------------------------------------------------- // -function nouveauxCriteres(&$comb2crit, &$combinaison) +function nouveauxCriteres($comb2crit, $combinaison) { - foreach ($comb2crit as $ligne) { - if (strstr($ligne, $combinaison) != false) { - return substr($ligne, 3, -1); - } + if ( array_key_exists($combinaison, $comb2crit) ) { + $ligne = $comb2crit[$combinaison]; + return $ligne; } + return ''; } ?> \ No newline at end of file diff --git a/1.2/library/Metier/sphinx/recherche.php b/1.2/library/Metier/sphinx/recherche.php deleted file mode 100644 index f091b8cb..00000000 --- a/1.2/library/Metier/sphinx/recherche.php +++ /dev/null @@ -1,338 +0,0 @@ - $vue); -} -if (isset($_GET['deb']) == true) { - $deb = $_GET['deb']; -} else { - $deb = 0; -} - -// --------------------------------------------------------------------------- // -// Affiche un champs dans le formulaire -// --------------------------------------------------------------------------- // -function afficheChamps(&$form, $nomForm, $nom, $size, $maxlength, $extra = '') -{ - print ''; -} - -// --------------------------------------------------------------------------- // -// Affiche un libelle dans le formulaire -// --------------------------------------------------------------------------- // -function afficheLibelle($nom) -{ - print '

    '; -} - -?> - - - - - Extranet Scores & Décisions - Recherche - - - - - - -
    - -
    année {COLLANNEE} Ratio Observations
    '. - $nom.'
    - - - -
    - - - - - - - - - -
    -

    RECHERCHE ENTREPRISE V2

    -
    - - - - - - - - - ENSEIGNE / SIGLE'); ?> - - - -
    - -  
    - -  
    - -
    - - - - - - - - - - - - - - - - - -
    - - -  
    - -  
      - -  
    - -
    - - - - - - - -
    - -  
    - - - - - - - -
    - -  
    - - - - - - - - - -
    -

    RECHERCHE PAR DIRIGEANT V2

    -
    - - - - - - - - - - - - -
    - -  
    - -  
    - -
    - - - - - - - - - - - - - - - - - -
    - / - / - -  
    - -  
      - -  
    - - - -
    - - - - - -
    - -
    - - - - 1) { - print '
    '; - foreach ($formR as $label => $valeur) { - print ''; - } - print ''; - print '
    '; -} - -if (empty($formR['siret']) == false) { - $liste = verificationDuSiret($formR['siret']); - if (DEBUG && $liste != false) { - print 'Essayez :
    '; - foreach ($liste as $s) { - if (sommeDeControle($s) != 0) { - print 'erreur somme de controle sur '.$s. - ' ('.sommeDeControle($s).')
    '; - } else { - print $s.'
    '; - } - } - // TODO: utilisation de la liste - exit; - } -} -recherche($formR, $deb, NBREP); -?> - - - \ No newline at end of file diff --git a/1.2/library/Metier/sphinx/recherche2.php b/1.2/library/Metier/sphinx/recherche2.php deleted file mode 100644 index 3bfb99f5..00000000 --- a/1.2/library/Metier/sphinx/recherche2.php +++ /dev/null @@ -1,260 +0,0 @@ -SetServer (SPHINX_HISTO_HOST, SPHINX_HISTO_PORT); - } else { - $cl->SetServer (SPHINX_HOST, SPHINX_PORT); - } - $cl->SetConnectTimeout ( 1 ); - $cl->SetLimits ($deb, $nbRep, $max);//0, $nbRep*10); - //$cl->SetSortMode(SPH_SORT_ATTR_DESC, 'actif');//siege'); - if (substr($index,0,4)=='etab') - $cl->SetSortMode(SPH_SORT_EXTENDED, 'rang DESC, actif DESC, siege DESC');//, nic DESC - - //$cl->SetWeights ( array ( 100, 1 ) ); - //$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL ); - $cl->SetMatchMode (SPH_MATCH_EXTENDED); - foreach ($tabFiltres as $nomFiltre => $valFiltre) - $cl->SetFilter($nomFiltre, array(0=>$valFiltre)); - - $cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 ); - //$cl->SetArrayResult ( true ); - - $res = $cl->Query ( $findMe, $index ); - //@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug", print_r($res,true)) ; - if ($res===false) { - debugLog('I',"Search Sphinx : Pas de réponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - return array( 'results'=>false, - 'nbRet'=>0, - 'nbTot'=>0, - 'error'=>$cl->GetLastError(), - 'warning'=>$cl->GetLastWarning(), - 'duration'=>$res[time]);//return false; - - } else { // Le moteur est op�rationel - if ( $cl->GetLastWarning() ) { - debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__); - print "WARNING: " . $cl->GetLastWarning() . "\n\n"; - } -/* print "Query '$findMe' retrieved $res[total] of $res[total_found] matches in $res[time] sec.\n"; - print "Query stats :\n"; - if ( is_array($res["words"]) ) - foreach ( $res["words"] as $word => $info ) - print " - '$word' found $info[hits] times in $info[docs] documents\n"; - print "\n";*/ - debugLog('I',"'Search Sphinx dans $index de $findMe (Filtre=".implode(',',$tabFiltres)."), Deb=$deb, nbRep=$nbRep, max=$max, any=$any",__LINE__,__FILE__, __FUNCTION__, __CLASS__); -// debugLog('I',"Search Sphinx dans $index ". print_r($tabFiltres, true)); - - $tabRet=array(); - if ( @is_array($res['matches'])) { // il y a des donn�es � renvoyer - if (substr($index,0,4)=='etab') { // Recherche par �tab - foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne - $listeEtab=$iDb->select('etablissements e', - "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". - "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". - "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ". - "CONCAT(e.siren, e.nic) as siret, e.actif", - "id=$doc LIMIT 0,1", true); - $etab=$listeEtab[0]; - $tabRet[]=array( 'Localisation'=>$etab['Loc'], - 'id'=>$doc, - 'Pertinence'=>$docinfo['weight'], - 'Siret'=>$etab['siret'], - 'Siege'=>$etab['siege'], - 'Nom'=>$etab['raisonSociale'], - 'Sigle'=>$etab['sigle'], - 'Enseigne'=>$etab['enseigne'], - 'Adresse'=>trim($etab['adr_num'] .' '. - $etab['adr_btq'] .' '. - $etab['adr_typeVoie'] .' '. - $etab['adr_libVoie'] .' '. - $etab['adr_comp']), - 'CP'=>$etab['adr_cp'], - 'Ville'=>$etab['adr_ville'], - 'Tel'=>$etab['tel'], - 'Fax'=>$etab['fax'], - 'FJ'=>$etab['cj'], - 'Siren'=>$etab['siren'], - 'Nic'=>$etab['nic'], - 'Actif'=>$etab['actif'], - 'NafEtab'=>$etab['ape_etab'], // Etablissement - //'NafEtabLib'=>$etab['LibNafEt'], - 'NafEnt'=>$etab['ape_entrep'], // Entreprise - //'NafEntLib'=>$etab['LibNafEt'], - ); - } - } elseif ($index=='histo') { - foreach ( $res['matches'] as $doc => $docinfo ) { - $listeEtab=$iDb->select('histobodacc.bodacc_ocr', - "'Histo' as Loc, id, nomFichier, annee1, bod, texte", - "id=$doc"); - $etab=$listeEtab[0]; - $tabRet[]=array( 'Localisation'=>$etab['Loc'], - 'id'=>$doc, - 'Pertinence'=>$docinfo['weight'], - 'Fichier'=>$etab['nomFichier'], - 'Annee'=>$etab['annee1'], - 'Code'=>$etab['bod'], - 'Texte'=>$etab['texte'], - ); - } - } else { // Recherche par dirigeant - $findMe4=trim(substr($findMe,0,4)); - foreach ( $res['matches'] as $doc => $docinfo ) { // On balaye chaque ligne dirigeant - $listeEtab=$iDb->select('rncs_dirigeants d, etablissements e', - "'Etab' as Loc, e.id, e.source, e.source_id, e.triCode, e.autre_id, e.siren, e.nic, e.siege, ". - "e.raisonSociale, e.enseigne, e.sigle, e.adr_num, e.adr_btq, e.adr_typeVoie, e.adr_libVoie, ". - "e.adr_comp, e.adr_cp, e.adr_ville, e.tel, e.fax, e.cj, e.ape_etab, e.ape_entrep, ". - "CONCAT(e.siren, e.nic) as siret, /*d.rs,*/ d.nom, d.prenom, /*d.nomUsage,*/ d.naissance_date, d.naissance_lieu, ". - "d.fonction_lib, /*d.depart,*/ e.actif", - "d.id=$doc AND d.siren=e.siren AND e.siege=1 ORDER BY e.actif DESC LIMIT 0,1", true); - //die(print_r($listeEtab)); - $etab=$listeEtab[0]; - $tabRet[]=array( 'Localisation'=>$etab['Loc'], - 'id'=>$doc, - 'Pertinence'=>$docinfo['weight'], - 'Siret'=>$etab['siret'], - 'Siege'=>$etab['siege'], - 'Nom'=>$etab['raisonSociale'], - 'Sigle'=>$etab['sigle'], - 'Enseigne'=>$etab['enseigne'], - 'Adresse'=>trim($etab['adr_num'] .' '. - $etab['adr_btq'] .' '. - $etab['adr_typeVoie'] .' '. - $etab['adr_libVoie'] .' '. - $etab['adr_comp']), - 'CP'=>$etab['adr_cp'], - 'Ville'=>$etab['adr_ville'], - 'Tel'=>$etab['tel'], - 'Fax'=>$etab['fax'], - 'FJ'=>$etab['cj'], - 'Siren'=>$etab['siren'], - 'Nic'=>$etab['nic'], - 'Actif'=>$etab['actif'], - 'NafEtab'=>$etab['ape_etab'], // Etablissement - 'NafEnt'=>$etab['ape_entrep'], // Entreprise - 'rs'=>'',//$etab['rs'], - 'nomD'=>$etab['nom'], - 'prenom'=>$etab['prenom'], - 'nomUsage'=>'',//$etab['nomUsage'], - 'dateEffet'=>'',//$etab['dateEffet'], - 'fonction'=>$etab['fonction_lib'], - 'depart'=>0,//$etab['depart'], - ); - } - - } - } - } - debugLog('I','Search Sphinx : Retourne '. $res[total].'/'. $res[total_found] .' en '.$res[time] .'secondes',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - return array( 'results'=>$tabRet, - 'nbRet'=>$res[total], - 'nbTot'=>$res[total_found], - 'duration'=>$res[time], - 'words'=>$res['words'], - ); -} - -/* -7020z< - -*/ -function comptage($findMe, $tabFiltres=array(), $deb=0, $nbRep=20, $max=1000, $any=false, $fichierCsv=false) { - $deb=$deb*1; - $nbRep=$nbRep*1; - $max=$max*1; - $index='comptage'; - $iDb=new WDB(); -/* -$cl = new SphinxClient (); -$cl->SetServer ( $host, $port ); -$cl->SetWeights ( array ( 100, 1 ) ); -$cl->SetMatchMode ( $mode ); -if ( count($filtervals) ) $cl->SetFilter ( $filter, $filtervals ); -if ( $groupby ) $cl->SetGroupBy ( $groupby, SPH_GROUPBY_ATTR, $groupsort ); -if ( $sortby ) $cl->SetSortMode ( SPH_SORT_EXTENDED, $sortby ); -if ( $sortexpr ) $cl->SetSortMode ( SPH_SORT_EXPR, $sortexpr ); -if ( $distinct ) $cl->SetGroupDistinct ( $distinct ); -if ( $limit ) $cl->SetLimits ( 0, $limit, ( $limit>1000 ) ? $limit : 1000 ); -$res = $cl->Query ( $q, $index ); -*/ - $cl = new SphinxClient (); - $cl->SetServer ('192.168.3.24', 3312); - $cl->SetConnectTimeout(1); - $cl->SetLimits ($deb, $nbRep, $max); -// if (substr($index,0,4)=='etab') -// $cl->SetSortMode(SPH_SORT_EXTENDED, 'rang DESC, actif DESC, siege DESC');//, nic DESC - //$cl->SetWeights ( array ( 100, 1 ) ); - //$cl->SetMatchMode ( $any ? SPH_MATCH_ANY : SPH_MATCH_ALL ); - $cl->SetMatchMode (SPH_MATCH_EXTENDED); - foreach ($tabFiltres as $nomFiltre => $valFiltre) - $cl->SetFilter($nomFiltre, $valFiltre); - /*8.4.3. SetFilterRange -Prototype: function SetFilterRange ( $attribute, $min, $max, $exclude=false ) -Adds new integer range filter. */ - - $cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 ); - //$cl->SetArrayResult ( true ); - - $res = $cl->Query ( $findMe, $index ); - if ($res===false) { - // debugLog('I',"Search Sphinx : Pas de r�ponse pour $findMe avec ".implode(',',$tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - return array( 'results'=>false, - 'nbRet'=>0, - 'nbTot'=>0, - 'error'=>$cl->GetLastError(), - 'warning'=>$cl->GetLastWarning(), - 'durationCpt'=>$res[time], - 'durationExp'=>0);//return false;);//return false; - - } else { // Le moteur est op�rationel - $tdeb=microtime(1); - if ( $cl->GetLastWarning() ) { - //debugLog('I',"Search Sphinx : Warning pour $findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__); - print "WARNING: " . $cl->GetLastWarning() . "\n\n"; - } - - $tabRet=array(); - if ( @is_array($res['matches'])) { // il y a des donn�es � renvoyer - $tabIdDoc=array(); - foreach ( $res['matches'] as $doc => $docinfo ) //{ // On balaye chaque ligne - $tabIdDoc[]=$doc; - $strDoc='('.implode(',',$tabIdDoc).')'; - $tabTmp=$iDb->select( 'etablissements_act', - 'id,ape_etab,ape_entrep,source,siren,nic,actif,siege,adr_cp,adr_dep,adr_com,tel,fax,cj,capital,age_entrep,age_etab,tca,tcaexp,teff_entrep,teff_etab,rang,dateCrea_etab,eff_entrep,eff_etab,nbEtab,bilType,bilAnnee,bilTca,bilCA,bilCAexp,bilRN', - "id IN $strDoc", false, MYSQL_ASSOC); - if ($fichierCsv) { - $fp=fopen($fichierCsv, 'w'); - foreach ($tabTmp as $iTmp=>$tmp) { - $tabRet[]=$tmp; - fwrite($fp, implode("\t", $tmp).EOL); - } - fclose($fp); - } - } - } - return array( 'results'=>$tabRet, - 'nbRet'=>$res[total], - 'nbTot'=>$res[total_found], - 'durationCpt'=>$res[time], - 'durationExp'=>round(microtime(1)-$tdeb,3), - 'error'=>$cl->GetLastError(), - 'warning'=>$cl->GetLastWarning(), - 'words'=>$res['words'], - ); -} - - ?> \ No newline at end of file diff --git a/1.2/library/Metier/sphinx/rechercheFonc.php b/1.2/library/Metier/sphinx/rechercheFonc.php index e6059cbe..4b6d7927 100644 --- a/1.2/library/Metier/sphinx/rechercheFonc.php +++ b/1.2/library/Metier/sphinx/rechercheFonc.php @@ -2,8 +2,6 @@ // --------------------------------------------------------------------------- // // Formulaire de requete Sphinx // --------------------------------------------------------------------------- // -// Fichiers lus en entree : crit2seq.prn et comb2crit.txt -// --------------------------------------------------------------------------- // if (defined('DEBUG') == false) { define( 'DEBUG', 0); } @@ -49,11 +47,11 @@ if (DEBUG) { } else { function debugln($ln = '') { - /* + /* $fp = fopen(LOG_PATH.'/recherchesDebug.log', 'a'); - fwrite($fp, $ln.'\n'); + fwrite($fp, $ln."\n"); fclose($fp); - */ + */ } } @@ -521,11 +519,17 @@ function changePass(&$pass, &$mode, &$index, &$quorumActif, &$formR) $pass = 3; $mode = SPH_MATCH_ISPELL; $index = 'ent_mns'; + if (SPHINX_ENT_VERSION == 2) { + $index = 'ent'; + } return true; case 3: // Pass 4 : Quorum n-1 $pass = 4; $mode = SPH_MATCH_EXTENDED2; $index = 'ent_mns'; + if (SPHINX_ENT_VERSION == 2) { + $index = 'ent'; + } $quorumActif = true; return true; case 4: // Pass 5 : Quorum n-2 @@ -650,10 +654,10 @@ function clientSphinx(&$formR) switch ( $version ) { case 1: - require_once realpath(dirname(__FILE__)).'/sphinxapi.php'; + require_once 'Vendors/sphinxapi/sphinxapi-0.9.9.php'; break; case 2: - require_once 'sphinxapi/sphinxapi-2.0.8.php'; + require_once 'Vendors/sphinxapi/sphinxapi-2.1.2.php'; break; } @@ -766,6 +770,8 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit, } } $ret['reponses'][$i]['Pertinence'] = $pertinence; + $ret['reponses'][$i]['Source'] = $ligne['source']; + $ret['reponses'][$i]['SourceId'] = $ligne['source_id']; $ret['reponses'][$i]['Siret'] = $ligne['siret']; $ret['reponses'][$i]['Siren'] = $ligne['siren']; $ret['reponses'][$i]['Nic'] = $ligne['nic']; @@ -774,10 +780,13 @@ function reponse(&$resSphinx, &$resDB, $criteres, $time, $formR, $form2crit, $ret['reponses'][$i]['Nom2'] = ''; $ret['reponses'][$i]['Sigle'] = $ligne['sigle']; $ret['reponses'][$i]['Enseigne'] = $ligne['enseigne']; - $ret['reponses'][$i]['Adresse'] = - $ligne['adr_num'].' '. - $ligne['adr_typeVoie'].' '. - $ligne['adr_libVoie']; + $adresse = ''; + if ( intval($ligne['adr_dep'])==99 && intval($ligne['adr_num'])==0) { + $adresse.= $ligne['adr_typeVoie'].' '.$ligne['adr_libVoie']; + } else { + $adresse = $ligne['adr_num'].' '.$ligne['adr_typeVoie'].' '.$ligne['adr_libVoie']; + } + $ret['reponses'][$i]['Adresse'] = $adresse; $ret['reponses'][$i]['Adresse2'] = $ligne['adr_comp']; $ret['reponses'][$i]['CP'] = $ligne['adr_cp']; $ret['reponses'][$i]['Ville'] = $ligne['adr_ville']; @@ -948,6 +957,8 @@ function rechercheDir(&$formR, $deb, $nbRep, $max) d.naissance_lieu, l.libelle AS fonction_lib, e.id, CONCAT(e.siren,e.nic) AS siret, + e.source, + e.source_id, e.siren, e.nic, e.siege, @@ -960,27 +971,27 @@ function rechercheDir(&$formR, $deb, $nbRep, $max) e.adr_comp, e.adr_cp, e.adr_ville, + libPays AS pays, + e.adr_dep, e.adr_com, e.tel, e.fax, e.cj, e.actif, e.ape_etab, e.ape_entrep - FROM dirigeants d, etablissements e, bodacc_fonctions l - WHERE - d.fonction_code=l.codeFct - AND d.id IN ("; + FROM dirigeants d, etablissements e LEFT OUTER JOIN tabPays ON codePaysInsee = IF(adr_dep=99,adr_com,null), bodacc_fonctions l + WHERE d.fonction_code=l.codeFct AND d.id IN ("; - $i = 0; + $i = 0; foreach ($resSphinx['matches'] as $id => $element) { if($i > 0) $requeteDB.= ','; $requeteDB.= $element['id']; $i++; } $requeteDB .= ") AND e.id = ("; - $requeteDB .= "SELECT tmp.id FROM etablissements tmp "; - $requeteDB .= "WHERE tmp.siren=d.siren ORDER by tmp.actif DESC, tmp.siege DESC LIMIT 1"; - $requeteDB .= ")"; + $requeteDB .= "SELECT tmp.id FROM etablissements tmp "; + $requeteDB .= "WHERE tmp.siren=d.siren ORDER by tmp.actif DESC, tmp.siege DESC LIMIT 1"; + $requeteDB .= ") ORDER BY e.actif DESC, e.siege DESC, e.rang DESC"; //file_put_contents('test.log', $requeteDB); @@ -1348,6 +1359,9 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) if ($total_premiere_requete == 0 || $total_premiere_requete > 500) { // "huit a huit" donne 414 $index = 'ent_mns'; + if (SPHINX_ENT_VERSION == 2) { + $index = 'ent'; + } // Requete sans les mots non significatifs // pour connaitre le nombre de mots trouves pour chaque champ alpha @@ -1448,19 +1462,62 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) } // Pour les nouveaux criteres - if (LOCAL) { - $comb2crit = file('comb2crit.txt'); - } else { - $comb2crit = file(realpath(dirname(__FILE__)).'/comb2crit.txt'); - } + $comb2crit = array( + '00'=> ' ', + '11'=> 'IT ', + '12'=> 'I ', + '13'=> ' T ', + '21'=> ' D NR', + '22'=> ' D VNR', + '23'=> ' DL N ', + '24'=> ' DL NR', + '25'=> ' P NR', + '26'=> ' P VN ', + '27'=> ' PD VNR', + '28'=> ' PD N ', + '30'=> ' S ', + '31'=> ' SE ', + '32'=> ' SE R', + '33'=> ' SE N ', + '34'=> ' SE NR', + '35'=> ' SE V ', + '36'=> ' SE V R', + '37'=> ' SE VNR', + '40'=> ' SE D ', + '41'=> ' SE D N ', + '42'=> ' SE D V ', + '43'=> ' SE D V R', + '44'=> ' SE D VN ', + '45'=> ' SE D VNR', + '46'=> ' SE DL ', + '47'=> ' SE DL R', + '48'=> ' SE DL N ', + '49'=> ' SE DL NR', + '60'=> ' SEP ', + '61'=> ' SEP N ', + '62'=> ' SEP NR', + '63'=> ' SEP V ', + '64'=> ' SEP V R', + '65'=> ' SEP VNR', + '71'=> ' SEPD ', + '72'=> ' SEPD R', + '73'=> ' SEPD N ', + '74'=> ' SEPD NR', + '75'=> ' SEPD V ', + '76'=> ' SEPD V R', + '77'=> ' SEPD VN ', + '78'=> ' SEPD VNR', + '81'=> ' SEPDL R', + '82'=> ' SEPDL N ', + '83'=> ' SEPDL NR', + ); } // Combinaison $combinaison = nouvelleCombinaison($sequence, $sequencePos, $pass, $index, $mode); if ($combinaison == '') { debugln('fin des combinaisons'); - if (changePass($pass, $mode, $index, - $quorum_actif, $formR) == true) { + if (changePass($pass, $mode, $index, $quorum_actif, $formR) == true) { $criteres = 'ITSEPDLVNR'; initSphinx($sphinx, $mode, $pass, $deb, $nbRep, $max); $sequencePos = 0; @@ -1543,7 +1600,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) afficheDB($resSphinx, $formR, $form2crit, 'etablissements', $base2form, $deb, $nbRep); } - //file_put_contents('test.log', print_r($resSphinx,1)); + //file_put_contents('test.log', print_r($resSphinx,1)); // Reponse if ($gDatabaseJO == false) { @@ -1562,6 +1619,8 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) } $requeteDB = 'SELECT id, + source, + source_id, CONCAT(siren,nic) AS siret, siren, nic, @@ -1584,7 +1643,7 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) ape_entrep, (siren>200) AS sirenValide FROM etablissements - LEFT OUTER JOIN tabPays ON codePaysInsee = IF(adr_dep=99,adr_com,null) + LEFT OUTER JOIN tabPays ON codePaysInsee = IF(adr_dep=99,adr_com,null) AND tabPays.codPays3!=null WHERE id IN('. $i = 0; foreach ($resSphinx['matches'] as $id => $element) { @@ -1595,6 +1654,8 @@ function rechercheEnt(&$formR, $deb, $nbRep, $max, $sirenValide = false) $requeteDB.= ') ORDER BY sirenValide DESC, actif DESC, siege DESC, rang DESC'; + //file_put_contents('test.log', $requeteDB); + debugln(); debugln("requeteDB='$requeteDB'"); $resDB = $gDatabaseJO->query($requeteDB); diff --git a/1.2/library/Metier/sphinx/rechercheTest.php b/1.2/library/Metier/sphinx/rechercheTest.php deleted file mode 100644 index 5dd29536..00000000 --- a/1.2/library/Metier/sphinx/rechercheTest.php +++ /dev/null @@ -1,171 +0,0 @@ - 'raisonSociale', - 'N' => 'numVoie', - 'R' => 'voie', - 'L' => 'cpVille', - 'V' => 'cpVille'); - - $liste = file($fichierLog); - if ($num != '') { - $n = intval($num); - $indices = array($n); - } else { - $n = ($page - 1) * $NB_PAR_PAGE; - $indices = range($n, min($n + $NB_PAR_PAGE - 1, count($liste) - 1)); - } - foreach ($indices as $i) { - $ligne = explode('#', $liste[$i], 2); - ++$n; - $formR = array(); - $criteres = explode(',', $ligne[0]); - unset($nb_rep); - $siret = ''; - // Nombre de resultats et siret - foreach ($criteres as $c) { - $labelvaleur = explode('=', $c); - $label = trim($labelvaleur[0]); - if ($label == 'NbRep' && isset($labelvaleur[1]) == true) { - $nb_rep = intval(trim($labelvaleur[1])); - } - if ($label == 'SiretTrouve' && isset($labelvaleur[1]) == true) { - $siret = trim($labelvaleur[1]); - } - } - // Restrictions - if (isset($nb_rep) == false || $nb_rep != 1 || $siret == '') { - //continue; - } - // Criteres - foreach ($criteres as $c) { - $labelvaleur = explode('=', $c, 2); - $label = trim($labelvaleur[0]); - if (isset($labelvaleur[1]) == false) { - continue; - } - $valeur = trim($labelvaleur[1]); - if (isset($crit2form[$label]) == false) { - continue; - } - if ($label == 'R' && - preg_match('/[0-9]+/', $valeur, $arrayValeur) > 0) { - $formR['numVoie'] = $arrayValeur[0]; - $valeur = str_replace($arrayValeur[0].' ', '', $valeur); - print 'N='.$arrayValeur[0].', '; - } - if (isset($formR[$crit2form[$label]]) == false) { - $formR[$crit2form[$label]] = $valeur; - } else { - $formR[$crit2form[$label]] .= ' '.$valeur; - } - print $label.'='.$valeur.', '; - } - // Recherche - $formR['type'] = 'ent'; - $res = recherche($formR, 0, 100); - $total = 0; - $siren = 0; - $nic = 0; - $resSiret = '00000000000000'; - if (isset($res['nbReponsesTotal'])) { - $total = $res['nbReponsesTotal']; - if ($total == 1) { - $siren = $res['reponses'][0]['Siren']; - $nic = $res['reponses'][0]['Nic']; - $resSiret = sprintf("%09d%05d", $siren, $nic); - } else if (isset($nb_rep) != false && - ($nb_rep < $total) && - ($nb_rep == 10 || - $nb_rep == 20)) { - $total = $nb_rep; - } - } - if ($siret != '') { - if ($siret != '00000000000000' && - $siret != $resSiret) { - print ''.$siret.' '; - } else { - print $siret.' '; - } - print $resSiret.' '; - } - if (($siret != '' && - $siret != '00000000000000' && - $siret != $resSiret) || - (isset($nb_rep) != false && - $nb_rep != 0 && - $nb_rep != $total) || - (isset($nb_rep) == false && - $total == 0)) { - print 'pass'.$res['pass'].' '; - } else { - print 'pass'.$res['pass'].' '; - } - if (isset($nb_rep) != false) { - if ($nb_rep != 0 && - $nb_rep != $total) { - print ''.$nb_rep.' '; - } else { - print $nb_rep; - } - } - print ' '. - $total.''; - if (count($ligne) == 2) { - print ' #'.$ligne[1]; - } - print '
    '; - } - if ($num == '') { - print '
    pages: '; - for ($p = 1; $p < $page; ++$p) { - print ''.$p.' '; - } - print ''.$page.' '; - for ($p = $page + 1; ($p - 1) * $NB_PAR_PAGE < count($liste); ++$p) { - print ''.$p.' '; - } - } -} -?> - - - - - - - - - - - \ No newline at end of file diff --git a/1.2/library/Metier/sphinx/sphinxsearch.php b/1.2/library/Metier/sphinx/sphinxsearch.php deleted file mode 100644 index 4fde609b..00000000 --- a/1.2/library/Metier/sphinx/sphinxsearch.php +++ /dev/null @@ -1,130 +0,0 @@ -findMe." (".$criteres->deb.", ".$criteres->nbRep.", ".$criteres->max.") avec ".implode(',',$criteres->tabFiltres),__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $cl = new SphinxClient(); - switch (strtolower($index)) { - case 'entrep': - - - break; - case 'dir': - - - - break; - case 'histo': - $cl->SetServer (SPHINX_HISTO_HOST, SPHINX_HISTO_PORT); - $cl->SetConnectTimeout ( 1 ); - $cl->SetLimits ($criteres->position, $criteres->nbRep, $criteres->max); - $cl->SetMatchMode (SPH_MATCH_EXTENDED); - foreach ($criteres->tabFiltres as $nomFiltre => $valFiltre) { - $cl->SetFilter($nomFiltre, array(0=>$valFiltre)); - } - $cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 ); - $res = $cl->Query ( $criteres->findMe, 'histo' ); - if ($res===false) { - //Erreur - debugLog('I',"Search Sphinx : Pas de réponse pour ".$criteres->findMe." avec ".implode(',',$criteres->tabFiltres).' ('.$cl->GetLastError() .')',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - return array( - 'results' => false, - 'nbRet' => 0, - 'nbTot' => 0, - 'duration' => 0); - } else { - - if ( $cl->GetLastWarning() ) { - debugLog('I',"Search Sphinx : Warning pour $criteres->findMe - ".$cl->GetLastWarning(),__LINE__,__FILE__, __FUNCTION__, __CLASS__); - print "WARNING: " . $cl->GetLastWarning() . "\n\n"; - } - - debugLog('I',"'Search Sphinx dans $index de $criteres->findMe (Filtre=".implode(',',$criteres->tabFiltres)."), Deb=".$criteres->position.", nbRep=".$criteres->nbRep.", max=".$criteres->max.", any=".$criteres->any,__LINE__,__FILE__, __FUNCTION__, __CLASS__); - $tabRet = array(); - if ( is_array($res['matches'])) { - $iDb = new WDB('histobodacc'); - $iDb->query("SET NAMES 'latin1';"); - foreach ( $res['matches'] as $doc => $docinfo ) { - $listeEtab = $iDb->select( - 'bodacc_ocr', - "'Histo' as Loc, id, nomFichier, annee1, bod, texte", - "id=$doc"); - $etab = $listeEtab[0]; - $tabRet[] = array( - 'Localisation' => $etab['Loc'], - 'id' => $doc, - 'Pertinence' => $docinfo['weight'], - 'Fichier' => $etab['nomFichier'], - 'Annee' => $etab['annee1'], - 'Code' => $etab['bod'], - 'Texte' => $etab['texte'], - ); - } - } - } - debugLog('I','Search Sphinx : Retourne '. $res[total].'/'. $res[total_found] .' en '.$res[time] .'secondes',__LINE__,__FILE__, __FUNCTION__, __CLASS__); - return array( - 'results' => $tabRet, - 'nbRet' => $res[total], - 'nbTot' => $res[total_found], - 'duration' => $res[time], - 'words' => $res['words'], - ); - break; - } - } - - /** - * Méthode magique __call() permettant d'appeller une méthode virtuelle - * du type searchByEnt(), searchByDir() ou searchByHisto()... - * - * @param string $method Nom de la méthode virtuelle appelée - * @param array $args Tableau des critères de recherche - * @return array|null $return Tableau des résultats ou NULL - */ - public function __call($method, $args) - { - if(preg_match('#^searchBy#i',$method)) - { - $name = str_replace('searchBy','',$method); - $criteres = array( - 0 => 'findMe', - 1 => 'tabFiltres', - 2 => 'position', - 3 => 'nbRep', - 4 => 'max', - 5 => 'any', - ); - $searchArgs = new stdClass(); - $i = 0; - foreach($args as $argument) { - $searchArgs->{$criteres[$i]} = $argument; - $i++; - } - return $this->search($name, $searchArgs); - } - return null; - } - -} diff --git a/1.2/library/Metier/sphinx/sphinxapi.php b/1.2/library/Vendors/sphinxapi/sphinxapi-0.9.9.php similarity index 95% rename from 1.2/library/Metier/sphinx/sphinxapi.php rename to 1.2/library/Vendors/sphinxapi/sphinxapi-0.9.9.php index 1657792c..c623d446 100644 --- a/1.2/library/Metier/sphinx/sphinxapi.php +++ b/1.2/library/Vendors/sphinxapi/sphinxapi-0.9.9.php @@ -1,1628 +1,1626 @@ -=8 ) - { - $v = (int)$v; - return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); - } - - // x32, int - if ( is_int($v) ) - return pack ( "NN", $v < 0 ? -1 : 0, $v ); - - // x32, bcmath - if ( function_exists("bcmul") ) - { - if ( bccomp ( $v, 0 ) == -1 ) - $v = bcadd ( "18446744073709551616", $v ); - $h = bcdiv ( $v, "4294967296", 0 ); - $l = bcmod ( $v, "4294967296" ); - return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit - } - - // x32, no-bcmath - $p = max(0, strlen($v) - 13); - $lo = abs((float)substr($v, $p)); - $hi = abs((float)substr($v, 0, $p)); - - $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 - $q = floor($m/4294967296.0); - $l = $m - ($q*4294967296.0); - $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 - - if ( $v<0 ) - { - if ( $l==0 ) - $h = 4294967296.0 - $h; - else - { - $h = 4294967295.0 - $h; - $l = 4294967296.0 - $l; - } - } - return pack ( "NN", $h, $l ); -} - -/// pack 64-bit unsigned -function sphPackU64 ( $v ) -{ - assert ( is_numeric($v) ); - - // x64 - if ( PHP_INT_SIZE>=8 ) - { - assert ( $v>=0 ); - - // x64, int - if ( is_int($v) ) - return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); - - // x64, bcmath - if ( function_exists("bcmul") ) - { - $h = bcdiv ( $v, 4294967296, 0 ); - $l = bcmod ( $v, 4294967296 ); - return pack ( "NN", $h, $l ); - } - - // x64, no-bcmath - $p = max ( 0, strlen($v) - 13 ); - $lo = (int)substr ( $v, $p ); - $hi = (int)substr ( $v, 0, $p ); - - $m = $lo + $hi*1316134912; - $l = $m % 4294967296; - $h = $hi*2328 + (int)($m/4294967296); - - return pack ( "NN", $h, $l ); - } - - // x32, int - if ( is_int($v) ) - return pack ( "NN", 0, $v ); - - // x32, bcmath - if ( function_exists("bcmul") ) - { - $h = bcdiv ( $v, "4294967296", 0 ); - $l = bcmod ( $v, "4294967296" ); - return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit - } - - // x32, no-bcmath - $p = max(0, strlen($v) - 13); - $lo = (float)substr($v, $p); - $hi = (float)substr($v, 0, $p); - - $m = $lo + $hi*1316134912.0; - $q = floor($m / 4294967296.0); - $l = $m - ($q * 4294967296.0); - $h = $hi*2328.0 + $q; - - return pack ( "NN", $h, $l ); -} - -// unpack 64-bit unsigned -function sphUnpackU64 ( $v ) -{ - list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); - - if ( PHP_INT_SIZE>=8 ) - { - if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again - if ( $lo<0 ) $lo += (1<<32); - - // x64, int - if ( $hi<=2147483647 ) - return ($hi<<32) + $lo; - - // x64, bcmath - if ( function_exists("bcmul") ) - return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); - - // x64, no-bcmath - $C = 100000; - $h = ((int)($hi / $C) << 32) + (int)($lo / $C); - $l = (($hi % $C) << 32) + ($lo % $C); - if ( $l>$C ) - { - $h += (int)($l / $C); - $l = $l % $C; - } - - if ( $h==0 ) - return $l; - return sprintf ( "%d%05d", $h, $l ); - } - - // x32, int - if ( $hi==0 ) - { - if ( $lo>0 ) - return $lo; - return sprintf ( "%u", $lo ); - } - - $hi = sprintf ( "%u", $hi ); - $lo = sprintf ( "%u", $lo ); - - // x32, bcmath - if ( function_exists("bcmul") ) - return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); - - // x32, no-bcmath - $hi = (float)$hi; - $lo = (float)$lo; - - $q = floor($hi/10000000.0); - $r = $hi - $q*10000000.0; - $m = $lo + $r*4967296.0; - $mq = floor($m/10000000.0); - $l = $m - $mq*10000000.0; - $h = $q*4294967296.0 + $r*429.0 + $mq; - - $h = sprintf ( "%.0f", $h ); - $l = sprintf ( "%07.0f", $l ); - if ( $h=="0" ) - return sprintf( "%.0f", (float)$l ); - return $h . $l; -} - -// unpack 64-bit signed -function sphUnpackI64 ( $v ) -{ - list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); - - // x64 - if ( PHP_INT_SIZE>=8 ) - { - if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again - if ( $lo<0 ) $lo += (1<<32); - - return ($hi<<32) + $lo; - } - - // x32, int - if ( $hi==0 ) - { - if ( $lo>0 ) - return $lo; - return sprintf ( "%u", $lo ); - } - // x32, int - elseif ( $hi==-1 ) - { - if ( $lo<0 ) - return $lo; - return sprintf ( "%.0f", $lo - 4294967296.0 ); - } - - $neg = ""; - $c = 0; - if ( $hi<0 ) - { - $hi = ~$hi; - $lo = ~$lo; - $c = 1; - $neg = "-"; - } - - $hi = sprintf ( "%u", $hi ); - $lo = sprintf ( "%u", $lo ); - - // x32, bcmath - if ( function_exists("bcmul") ) - return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); - - // x32, no-bcmath - $hi = (float)$hi; - $lo = (float)$lo; - - $q = floor($hi/10000000.0); - $r = $hi - $q*10000000.0; - $m = $lo + $r*4967296.0; - $mq = floor($m/10000000.0); - $l = $m - $mq*10000000.0 + $c; - $h = $q*4294967296.0 + $r*429.0 + $mq; - if ( $l==10000000 ) - { - $l = 0; - $h += 1; - } - - $h = sprintf ( "%.0f", $h ); - $l = sprintf ( "%07.0f", $l ); - if ( $h=="0" ) - return $neg . sprintf( "%.0f", (float)$l ); - return $neg . $h . $l; -} - - -function sphFixUint ( $value ) -{ - if ( PHP_INT_SIZE>=8 ) - { - // x64 route, workaround broken unpack() in 5.2.2+ - if ( $value<0 ) $value += (1<<32); - return $value; - } - else - { - // x32 route, workaround php signed/unsigned braindamage - return sprintf ( "%u", $value ); - } -} - - -/// sphinx searchd client class -class SphinxClient -{ - var $_host; ///< searchd host (default is "localhost") - var $_port; ///< searchd port (default is 9312) - var $_offset; ///< how many records to seek from result-set start (default is 0) - var $_limit; ///< how many records to return from result-set starting at offset (default is 20) - var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) - var $_weights; ///< per-field weights (default is 1 for all fields) - var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) - var $_sortby; ///< attribute to sort by (defualt is "") - var $_min_id; ///< min ID to match (default is 0, which means no limit) - var $_max_id; ///< max ID to match (default is 0, which means no limit) - var $_filters; ///< search filters - var $_groupby; ///< group-by attribute name - var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) - var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) - var $_groupdistinct;///< group-by count-distinct attribute - var $_maxmatches; ///< max matches to retrieve - var $_cutoff; ///< cutoff to stop searching at (default is 0) - var $_retrycount; ///< distributed retries count - var $_retrydelay; ///< distributed retries delay - var $_anchor; ///< geographical anchor point - var $_indexweights; ///< per-index weights - var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) - var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) - var $_fieldweights; ///< per-field-name weights - var $_overrides; ///< per-query attribute values overrides - var $_select; ///< select-list (attributes or expressions, with optional aliases) - - var $_error; ///< last error message - var $_warning; ///< last warning message - var $_connerror; ///< connection error vs remote error flag - - var $_reqs; ///< requests array for multi-query - var $_mbenc; ///< stored mbstring encoding - var $_arrayresult; ///< whether $result["matches"] should be a hash or an array - var $_timeout; ///< connect timeout - - ///////////////////////////////////////////////////////////////////////////// - // common stuff - ///////////////////////////////////////////////////////////////////////////// - - /// create a new client object and fill defaults - function SphinxClient () - { - // per-client-object settings - $this->_host = "192.168.3.32"; - $this->_port = 9312; - $this->_path = false; - $this->_socket = false; - - // per-query settings - $this->_offset = 0; - $this->_limit = 20; - $this->_mode = SPH_MATCH_ALL; - $this->_weights = array (); - $this->_sort = SPH_SORT_RELEVANCE; - $this->_sortby = ""; - $this->_min_id = 0; - $this->_max_id = 0; - $this->_filters = array (); - $this->_groupby = ""; - $this->_groupfunc = SPH_GROUPBY_DAY; - $this->_groupsort = "@group desc"; - $this->_groupdistinct= ""; - $this->_maxmatches = 1000; - $this->_cutoff = 0; - $this->_retrycount = 0; - $this->_retrydelay = 0; - $this->_anchor = array (); - $this->_indexweights= array (); - $this->_ranker = SPH_RANK_PROXIMITY_BM25; - $this->_maxquerytime= 0; - $this->_fieldweights= array(); - $this->_overrides = array(); - $this->_select = "*"; - - $this->_error = ""; // per-reply fields (for single-query case) - $this->_warning = ""; - $this->_connerror = false; - - $this->_reqs = array (); // requests storage (for multi-query case) - $this->_mbenc = ""; - $this->_arrayresult = false; - $this->_timeout = 0; - } - - function __destruct() - { - if ( $this->_socket !== false ) - fclose ( $this->_socket ); - } - - /// get last error message (string) - function GetLastError () - { - return $this->_error; - } - - /// get last warning message (string) - function GetLastWarning () - { - return $this->_warning; - } - - /// get last error flag (to tell network connection errors from searchd errors or broken responses) - function IsConnectError() - { - return $this->_connerror; - } - - /// set searchd host name (string) and port (integer) - function SetServer ( $host, $port = 0 ) - { - assert ( is_string($host) ); - if ( $host[0] == '/') - { - $this->_path = 'unix://' . $host; - return; - } - if ( substr ( $host, 0, 7 )=="unix://" ) - { - $this->_path = $host; - return; - } - - assert ( is_int($port) ); - $this->_host = $host; - $this->_port = $port; - $this->_path = ''; - - } - - /// set server connection timeout (0 to remove) - function SetConnectTimeout ( $timeout ) - { - assert ( is_numeric($timeout) ); - $this->_timeout = $timeout; - } - - - function _Send ( $handle, $data, $length ) - { - if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) - { - $this->_error = 'connection unexpectedly closed (timed out?)'; - $this->_connerror = true; - return false; - } - return true; - } - - ///////////////////////////////////////////////////////////////////////////// - - /// enter mbstring workaround mode - function _MBPush () - { - $this->_mbenc = ""; - if ( ini_get ( "mbstring.func_overload" ) & 2 ) - { - $this->_mbenc = mb_internal_encoding(); - mb_internal_encoding ( "latin1" ); - } - } - - /// leave mbstring workaround mode - function _MBPop () - { - if ( $this->_mbenc ) - mb_internal_encoding ( $this->_mbenc ); - } - - /// connect to searchd server - function _Connect () - { - if ( $this->_socket!==false ) - { - // we are in persistent connection mode, so we have a socket - // however, need to check whether it's still alive - if ( !@feof ( $this->_socket ) ) - return $this->_socket; - - // force reopen - $this->_socket = false; - } - - $errno = 0; - $errstr = ""; - $this->_connerror = false; - - if ( $this->_path ) - { - $host = $this->_path; - $port = 0; - } - else - { - $host = $this->_host; - $port = $this->_port; - } - - if ( $this->_timeout<=0 ) - $fp = @fsockopen ( $host, $port, $errno, $errstr ); - else - $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); - - if ( !$fp ) - { - if ( $this->_path ) - $location = $this->_path; - else - $location = "{$this->_host}:{$this->_port}"; - - $errstr = trim ( $errstr ); - $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; - $this->_connerror = true; - return false; - } - - // send my version - // this is a subtle part. we must do it before (!) reading back from searchd. - // because otherwise under some conditions (reported on FreeBSD for instance) - // TCP stack could throttle write-write-read pattern because of Nagle. - if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) - { - fclose ( $fp ); - $this->_error = "failed to send client protocol version"; - return false; - } - - // check version - list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); - $v = (int)$v; - if ( $v<1 ) - { - fclose ( $fp ); - $this->_error = "expected searchd protocol version 1+, got version '$v'"; - return false; - } - - return $fp; - } - - /// get and check response packet from searchd server - function _GetResponse ( $fp, $client_ver ) - { - $response = ""; - $len = 0; - - $header = fread ( $fp, 8 ); - if ( strlen($header)==8 ) - { - list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); - $left = $len; - while ( $left>0 && !feof($fp) ) - { - $chunk = fread ( $fp, $left ); - if ( $chunk ) - { - $response .= $chunk; - $left -= strlen($chunk); - } - } - } - if ( $this->_socket === false ) - fclose ( $fp ); - - // check response - $read = strlen ( $response ); - if ( !$response || $read!=$len ) - { - $this->_error = $len - ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" - : "received zero-sized searchd response"; - return false; - } - - // check status - if ( $status==SEARCHD_WARNING ) - { - list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); - $this->_warning = substr ( $response, 4, $wlen ); - return substr ( $response, 4+$wlen ); - } - if ( $status==SEARCHD_ERROR ) - { - $this->_error = "searchd error: " . substr ( $response, 4 ); - return false; - } - if ( $status==SEARCHD_RETRY ) - { - $this->_error = "temporary searchd error: " . substr ( $response, 4 ); - return false; - } - if ( $status!=SEARCHD_OK ) - { - $this->_error = "unknown status code '$status'"; - return false; - } - - // check version - if ( $ver<$client_ver ) - { - $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", - $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); - } - - return $response; - } - - ///////////////////////////////////////////////////////////////////////////// - // searching - ///////////////////////////////////////////////////////////////////////////// - - /// set offset and count into result set, - /// and optionally set max-matches and cutoff limits - function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) - { - assert ( is_int($offset) ); - assert ( is_int($limit) ); - assert ( $offset>=0 ); - assert ( $limit>0 ); - assert ( $max>=0 ); - $this->_offset = $offset; - $this->_limit = $limit; - if ( $max>0 ) - $this->_maxmatches = $max; - if ( $cutoff>0 ) - $this->_cutoff = $cutoff; - } - - /// set maximum query time, in milliseconds, per-index - /// integer, 0 means "do not limit" - function SetMaxQueryTime ( $max ) - { - assert ( is_int($max) ); - assert ( $max>=0 ); - $this->_maxquerytime = $max; - } - - /// set matching mode - function SetMatchMode ( $mode ) - { - assert ( $mode==SPH_MATCH_ALL - || $mode==SPH_MATCH_ANY - || $mode==SPH_MATCH_PHRASE - || $mode==SPH_MATCH_BOOLEAN - || $mode==SPH_MATCH_EXTENDED - || $mode==SPH_MATCH_FULLSCAN - || $mode==SPH_MATCH_ISPELL - || $mode==SPH_MATCH_EXTENDED2 ); - $this->_mode = $mode; - } - - /// set ranking mode - function SetRankingMode ( $ranker ) - { - assert ( $ranker==SPH_RANK_PROXIMITY_BM25 - || $ranker==SPH_RANK_BM25 - || $ranker==SPH_RANK_NONE - || $ranker==SPH_RANK_WORDCOUNT - || $ranker==SPH_RANK_PROXIMITY ); - $this->_ranker = $ranker; - } - - /// set matches sorting mode - function SetSortMode ( $mode, $sortby="" ) - { - assert ( - $mode==SPH_SORT_RELEVANCE || - $mode==SPH_SORT_ATTR_DESC || - $mode==SPH_SORT_ATTR_ASC || - $mode==SPH_SORT_TIME_SEGMENTS || - $mode==SPH_SORT_EXTENDED || - $mode==SPH_SORT_EXPR ); - assert ( is_string($sortby) ); - assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); - - $this->_sort = $mode; - $this->_sortby = $sortby; - } - - /// bind per-field weights by order - /// DEPRECATED; use SetFieldWeights() instead - function SetWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $weight ) - assert ( is_int($weight) ); - - $this->_weights = $weights; - } - - /// bind per-field weights by name - function SetFieldWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $name=>$weight ) - { - assert ( is_string($name) ); - assert ( is_int($weight) ); - } - $this->_fieldweights = $weights; - } - - /// bind per-index weights by name - function SetIndexWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $index=>$weight ) - { - assert ( is_string($index) ); - assert ( is_int($weight) ); - } - $this->_indexweights = $weights; - } - - /// set IDs range to match - /// only match records if document ID is beetwen $min and $max (inclusive) - function SetIDRange ( $min, $max ) - { - assert ( is_numeric($min) ); - assert ( is_numeric($max) ); - assert ( $min<=$max ); - $this->_min_id = $min; - $this->_max_id = $max; - } - - /// set values set filter - /// only match records where $attribute value is in given set - function SetFilter ( $attribute, $values, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_array($values) ); - assert ( count($values) ); - - if ( is_array($values) && count($values) ) - { - foreach ( $values as $value ) - assert ( is_numeric($value) ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); - } - } - - /// set range filter - /// only match records if $attribute value is beetwen $min and $max (inclusive) - function SetFilterRange ( $attribute, $min, $max, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_numeric($min) ); - assert ( is_numeric($max) ); - assert ( $min<=$max ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); - } - - /// set float range filter - /// only match records if $attribute value is beetwen $min and $max (inclusive) - function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_float($min) ); - assert ( is_float($max) ); - assert ( $min<=$max ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); - } - - /// setup anchor point for geosphere distance calculations - /// required to use @geodist in filters and sorting - /// latitude and longitude must be in radians - function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) - { - assert ( is_string($attrlat) ); - assert ( is_string($attrlong) ); - assert ( is_float($lat) ); - assert ( is_float($long) ); - - $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); - } - - /// set grouping attribute and function - function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) - { - assert ( is_string($attribute) ); - assert ( is_string($groupsort) ); - assert ( $func==SPH_GROUPBY_DAY - || $func==SPH_GROUPBY_WEEK - || $func==SPH_GROUPBY_MONTH - || $func==SPH_GROUPBY_YEAR - || $func==SPH_GROUPBY_ATTR - || $func==SPH_GROUPBY_ATTRPAIR ); - - $this->_groupby = $attribute; - $this->_groupfunc = $func; - $this->_groupsort = $groupsort; - } - - /// set count-distinct attribute for group-by queries - function SetGroupDistinct ( $attribute ) - { - assert ( is_string($attribute) ); - $this->_groupdistinct = $attribute; - } - - /// set distributed retries count and delay - function SetRetries ( $count, $delay=0 ) - { - assert ( is_int($count) && $count>=0 ); - assert ( is_int($delay) && $delay>=0 ); - $this->_retrycount = $count; - $this->_retrydelay = $delay; - } - - /// set result set format (hash or array; hash by default) - /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs - function SetArrayResult ( $arrayresult ) - { - assert ( is_bool($arrayresult) ); - $this->_arrayresult = $arrayresult; - } - - /// set attribute values override - /// there can be only one override per attribute - /// $values must be a hash that maps document IDs to attribute values - function SetOverride ( $attrname, $attrtype, $values ) - { - assert ( is_string ( $attrname ) ); - assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); - assert ( is_array ( $values ) ); - - $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); - } - - /// set select-list (attributes or expressions), SQL-like syntax - function SetSelect ( $select ) - { - assert ( is_string ( $select ) ); - $this->_select = $select; - } - - ////////////////////////////////////////////////////////////////////////////// - - /// clear all filters (for multi-queries) - function ResetFilters () - { - $this->_filters = array(); - $this->_anchor = array(); - } - - /// clear groupby settings (for multi-queries) - function ResetGroupBy () - { - $this->_groupby = ""; - $this->_groupfunc = SPH_GROUPBY_DAY; - $this->_groupsort = "@group desc"; - $this->_groupdistinct= ""; - } - - /// clear all attribute value overrides (for multi-queries) - function ResetOverrides () - { - $this->_overrides = array (); - } - - ////////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, run given search query through given indexes, - /// and return the search results - function Query ( $query, $index="*", $comment="" ) - { - assert ( empty($this->_reqs) ); - - $this->AddQuery ( $query, $index, $comment ); - $results = $this->RunQueries (); - $this->_reqs = array (); // just in case it failed too early - - if ( !is_array($results) ) - return false; // probably network error; error message should be already filled - - $this->_error = $results[0]["error"]; - $this->_warning = $results[0]["warning"]; - if ( $results[0]["status"]==SEARCHD_ERROR ) - return false; - else - return $results[0]; - } - - /// helper to pack floats in network byte order - function _PackFloat ( $f ) - { - $t1 = pack ( "f", $f ); // machine order - list(,$t2) = unpack ( "L*", $t1 ); // int in machine order - return pack ( "N", $t2 ); - } - - /// add query to multi-query batch - /// returns index into results array from RunQueries() call - function AddQuery ( $query, $index="*", $comment="" ) - { - // mbstring workaround - $this->_MBPush (); - - // build request - $req = pack ( "NNNNN", $this->_offset, $this->_limit, $this->_mode, $this->_ranker, $this->_sort ); // mode and limits - $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; - $req .= pack ( "N", strlen($query) ) . $query; // query itself - $req .= pack ( "N", count($this->_weights) ); // weights - foreach ( $this->_weights as $weight ) - $req .= pack ( "N", (int)$weight ); - $req .= pack ( "N", strlen($index) ) . $index; // indexes - $req .= pack ( "N", 1 ); // id64 range marker - $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range - - // filters - $req .= pack ( "N", count($this->_filters) ); - foreach ( $this->_filters as $filter ) - { - $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; - $req .= pack ( "N", $filter["type"] ); - switch ( $filter["type"] ) - { - case SPH_FILTER_VALUES: - $req .= pack ( "N", count($filter["values"]) ); - foreach ( $filter["values"] as $value ) - $req .= sphPackI64 ( $value ); - break; - - case SPH_FILTER_RANGE: - $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); - break; - - case SPH_FILTER_FLOATRANGE: - $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); - break; - - default: - assert ( 0 && "internal error: unhandled filter type" ); - } - $req .= pack ( "N", $filter["exclude"] ); - } - - // group-by clause, max-matches count, group-sort clause, cutoff count - $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; - $req .= pack ( "N", $this->_maxmatches ); - $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; - $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); - $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; - - // anchor point - if ( empty($this->_anchor) ) - { - $req .= pack ( "N", 0 ); - } else - { - $a =& $this->_anchor; - $req .= pack ( "N", 1 ); - $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; - $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; - $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); - } - - // per-index weights - $req .= pack ( "N", count($this->_indexweights) ); - foreach ( $this->_indexweights as $idx=>$weight ) - $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); - - // max query time - $req .= pack ( "N", $this->_maxquerytime ); - - // per-field weights - $req .= pack ( "N", count($this->_fieldweights) ); - foreach ( $this->_fieldweights as $field=>$weight ) - $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); - - // comment - $req .= pack ( "N", strlen($comment) ) . $comment; - - // attribute overrides - $req .= pack ( "N", count($this->_overrides) ); - foreach ( $this->_overrides as $key => $entry ) - { - $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; - $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); - foreach ( $entry["values"] as $id=>$val ) - { - assert ( is_numeric($id) ); - assert ( is_numeric($val) ); - - $req .= sphPackU64 ( $id ); - switch ( $entry["type"] ) - { - case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; - case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; - default: $req .= pack ( "N", $val ); break; - } - } - } - - // select-list - $req .= pack ( "N", strlen($this->_select) ) . $this->_select; - - // mbstring workaround - $this->_MBPop (); - - // store request to requests array - $this->_reqs[] = $req; - return count($this->_reqs)-1; - } - - /// connect to searchd, run queries batch, and return an array of result sets - function RunQueries () - { - if ( empty($this->_reqs) ) - { - $this->_error = "no queries defined, issue AddQuery() first"; - return false; - } - - // mbstring workaround - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop (); - return false; - } - - // send query, get response - $nreqs = count($this->_reqs); - $req = join ( "", $this->_reqs ); - $len = 4+strlen($req); - $req = pack ( "nnNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, $nreqs ) . $req; // add header - - if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || - !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) - { - $this->_MBPop (); - return false; - } - - // query sent ok; we can reset reqs now - $this->_reqs = array (); - - // parse and return response - return $this->_ParseSearchResponse ( $response, $nreqs ); - } - - /// parse and return search query (or queries) response - function _ParseSearchResponse ( $response, $nreqs ) - { - $p = 0; // current position - $max = strlen($response); // max position for checks, to protect against broken responses - - $results = array (); - for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) - { - $results[] = array(); - $result =& $results[$ires]; - - $result["error"] = ""; - $result["warning"] = ""; - - // extract status - list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $result["status"] = $status; - if ( $status!=SEARCHD_OK ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $message = substr ( $response, $p, $len ); $p += $len; - - if ( $status==SEARCHD_WARNING ) - { - $result["warning"] = $message; - } else - { - $result["error"] = $message; - continue; - } - } - - // read schema - $fields = array (); - $attrs = array (); - - list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - while ( $nfields-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $fields[] = substr ( $response, $p, $len ); $p += $len; - } - $result["fields"] = $fields; - - list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - while ( $nattrs-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attr = substr ( $response, $p, $len ); $p += $len; - list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attrs[$attr] = $type; - } - $result["attrs"] = $attrs; - - // read match count - list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - - // read matches - $idx = -1; - while ( $count-->0 && $p<$max ) - { - // index into result array - $idx++; - - // parse document id and weight - if ( $id64 ) - { - $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; - list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - } - else - { - list ( $doc, $weight ) = array_values ( unpack ( "N*N*", - substr ( $response, $p, 8 ) ) ); - $p += 8; - $doc = sphFixUint($doc); - } - $weight = sprintf ( "%u", $weight ); - - // create match entry - if ( $this->_arrayresult ) - $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); - else - $result["matches"][$doc]["weight"] = $weight; - - // parse and create attributes - $attrvals = array (); - foreach ( $attrs as $attr=>$type ) - { - // handle 64bit ints - if ( $type==SPH_ATTR_BIGINT ) - { - $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; - continue; - } - - // handle floats - if ( $type==SPH_ATTR_FLOAT ) - { - list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); - $attrvals[$attr] = $fval; - continue; - } - - // handle everything else as unsigned ints - list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - if ( $type & SPH_ATTR_MULTI ) - { - $attrvals[$attr] = array (); - $nvalues = $val; - while ( $nvalues-->0 && $p<$max ) - { - list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attrvals[$attr][] = sphFixUint($val); - } - } else - { - $attrvals[$attr] = sphFixUint($val); - } - } - - if ( $this->_arrayresult ) - $result["matches"][$idx]["attrs"] = $attrvals; - else - $result["matches"][$doc]["attrs"] = $attrvals; - } - - list ( $total, $total_found, $msecs, $words ) = - array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); - $result["total"] = sprintf ( "%u", $total ); - $result["total_found"] = sprintf ( "%u", $total_found ); - $result["time"] = sprintf ( "%.3f", $msecs/1000 ); - $p += 16; - - while ( $words-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $word = substr ( $response, $p, $len ); $p += $len; - list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; - $result["words"][$word] = array ( - "docs"=>sprintf ( "%u", $docs ), - "hits"=>sprintf ( "%u", $hits ) ); - } - } - - $this->_MBPop (); - return $results; - } - - ///////////////////////////////////////////////////////////////////////////// - // excerpts generation - ///////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, and generate exceprts (snippets) - /// of given documents for given query. returns false on failure, - /// an array of snippets on success - function BuildExcerpts ( $docs, $index, $words, $opts=array() ) - { - assert ( is_array($docs) ); - assert ( is_string($index) ); - assert ( is_string($words) ); - assert ( is_array($opts) ); - - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop(); - return false; - } - - ///////////////// - // fixup options - ///////////////// - - if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; - if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; - if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; - if ( !isset($opts["limit"]) ) $opts["limit"] = 256; - if ( !isset($opts["around"]) ) $opts["around"] = 5; - if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; - if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; - if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; - if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; - - ///////////////// - // build request - ///////////////// - - // v.1.0 req - $flags = 1; // remove spaces - if ( $opts["exact_phrase"] ) $flags |= 2; - if ( $opts["single_passage"] ) $flags |= 4; - if ( $opts["use_boundaries"] ) $flags |= 8; - if ( $opts["weight_order"] ) $flags |= 16; - $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags - $req .= pack ( "N", strlen($index) ) . $index; // req index - $req .= pack ( "N", strlen($words) ) . $words; // req words - - // options - $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; - $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; - $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; - $req .= pack ( "N", (int)$opts["limit"] ); - $req .= pack ( "N", (int)$opts["around"] ); - - // documents - $req .= pack ( "N", count($docs) ); - foreach ( $docs as $doc ) - { - assert ( is_string($doc) ); - $req .= pack ( "N", strlen($doc) ) . $doc; - } - - //////////////////////////// - // send query, get response - //////////////////////////// - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header - if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || - !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) - { - $this->_MBPop (); - return false; - } - - ////////////////// - // parse response - ////////////////// - - $pos = 0; - $res = array (); - $rlen = strlen($response); - for ( $i=0; $i $rlen ) - { - $this->_error = "incomplete reply"; - $this->_MBPop (); - return false; - } - $res[] = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - } - - $this->_MBPop (); - return $res; - } - - - ///////////////////////////////////////////////////////////////////////////// - // keyword generation - ///////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, and generate keyword list for a given query - /// returns false on failure, - /// an array of words on success - function BuildKeywords ( $query, $index, $hits ) - { - assert ( is_string($query) ); - assert ( is_string($index) ); - assert ( is_bool($hits) ); - - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop(); - return false; - } - - ///////////////// - // build request - ///////////////// - - // v.1.0 req - $req = pack ( "N", strlen($query) ) . $query; // req query - $req .= pack ( "N", strlen($index) ) . $index; // req index - $req .= pack ( "N", (int)$hits ); - - //////////////////////////// - // send query, get response - //////////////////////////// - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header - if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || - !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) - { - $this->_MBPop (); - return false; - } - - ////////////////// - // parse response - ////////////////// - - $pos = 0; - $res = array (); - $rlen = strlen($response); - list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); - $pos += 4; - for ( $i=0; $i<$nwords; $i++ ) - { - list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; - $tokenized = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - - list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; - $normalized = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - - $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); - - if ( $hits ) - { - list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); - $pos += 8; - $res [$i]["docs"] = $ndocs; - $res [$i]["hits"] = $nhits; - } - - if ( $pos > $rlen ) - { - $this->_error = "incomplete reply"; - $this->_MBPop (); - return false; - } - } - - $this->_MBPop (); - return $res; - } - - function EscapeString ( $string ) - { - $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=' ); - $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=' ); - - return str_replace ( $from, $to, $string ); - } - - ///////////////////////////////////////////////////////////////////////////// - // attribute updates - ///////////////////////////////////////////////////////////////////////////// - - /// batch update given attributes in given rows in given indexes - /// returns amount of updated documents (0 or more) on success, or -1 on failure - function UpdateAttributes ( $index, $attrs, $values, $mva=false ) - { - // verify everything - assert ( is_string($index) ); - assert ( is_bool($mva) ); - - assert ( is_array($attrs) ); - foreach ( $attrs as $attr ) - assert ( is_string($attr) ); - - assert ( is_array($values) ); - foreach ( $values as $id=>$entry ) - { - assert ( is_numeric($id) ); - assert ( is_array($entry) ); - assert ( count($entry)==count($attrs) ); - foreach ( $entry as $v ) - { - if ( $mva ) - { - assert ( is_array($v) ); - foreach ( $v as $vv ) - assert ( is_int($vv) ); - } else - assert ( is_int($v) ); - } - } - - // build request - $req = pack ( "N", strlen($index) ) . $index; - - $req .= pack ( "N", count($attrs) ); - foreach ( $attrs as $attr ) - { - $req .= pack ( "N", strlen($attr) ) . $attr; - $req .= pack ( "N", $mva ? 1 : 0 ); - } - - $req .= pack ( "N", count($values) ); - foreach ( $values as $id=>$entry ) - { - $req .= sphPackU64 ( $id ); - foreach ( $entry as $v ) - { - $req .= pack ( "N", $mva ? count($v) : $v ); - if ( $mva ) - foreach ( $v as $vv ) - $req .= pack ( "N", $vv ); - } - } - - // connect, send query, get response - if (!( $fp = $this->_Connect() )) - return -1; - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header - if ( !$this->_Send ( $fp, $req, $len+8 ) ) - return -1; - - if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) - return -1; - - // parse response - list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); - return $updated; - } - - ///////////////////////////////////////////////////////////////////////////// - // persistent connections - ///////////////////////////////////////////////////////////////////////////// - - function Open() - { - if ( $this->_socket !== false ) - { - $this->_error = 'already connected'; - return false; - } - if ( !$fp = $this->_Connect() ) - return false; - - // command, command version = 0, body length = 4, body = 1 - $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); - if ( !$this->_Send ( $fp, $req, 12 ) ) - return false; - - $this->_socket = $fp; - return true; - } - - function Close() - { - if ( $this->_socket === false ) - { - $this->_error = 'not connected'; - return false; - } - - fclose ( $this->_socket ); - $this->_socket = false; - - return true; - } - - ////////////////////////////////////////////////////////////////////////// - // status - ////////////////////////////////////////////////////////////////////////// - - function Status () - { - $this->_MBPush (); - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop(); - return false; - } - - $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 - if ( !( $this->_Send ( $fp, $req, 12 ) ) || - !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) - { - $this->_MBPop (); - return false; - } - - $res = substr ( $response, 4 ); // just ignore length, error handling, etc - $p = 0; - list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; - - $res = array(); - for ( $i=0; $i<$rows; $i++ ) - for ( $j=0; $j<$cols; $j++ ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $res[$i][] = substr ( $response, $p, $len ); $p += $len; - } - - $this->_MBPop (); - return $res; - } -} - -// -// $Id: sphinxapi.php 2055M 2010-03-08 10:20:47Z (local) $ -// +=8 ) + { + $v = (int)$v; + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", $v < 0 ? -1 : 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + if ( bccomp ( $v, 0 ) == -1 ) + $v = bcadd ( "18446744073709551616", $v ); + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = abs((float)substr($v, $p)); + $hi = abs((float)substr($v, 0, $p)); + + $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 + $q = floor($m/4294967296.0); + $l = $m - ($q*4294967296.0); + $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 + + if ( $v<0 ) + { + if ( $l==0 ) + $h = 4294967296.0 - $h; + else + { + $h = 4294967295.0 - $h; + $l = 4294967296.0 - $l; + } + } + return pack ( "NN", $h, $l ); +} + +/// pack 64-bit unsigned +function sphPackU64 ( $v ) +{ + assert ( is_numeric($v) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + assert ( $v>=0 ); + + // x64, int + if ( is_int($v) ) + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + + // x64, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, 4294967296, 0 ); + $l = bcmod ( $v, 4294967296 ); + return pack ( "NN", $h, $l ); + } + + // x64, no-bcmath + $p = max ( 0, strlen($v) - 13 ); + $lo = (int)substr ( $v, $p ); + $hi = (int)substr ( $v, 0, $p ); + + $m = $lo + $hi*1316134912; + $l = $m % 4294967296; + $h = $hi*2328 + (int)($m/4294967296); + + return pack ( "NN", $h, $l ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = (float)substr($v, $p); + $hi = (float)substr($v, 0, $p); + + $m = $lo + $hi*1316134912.0; + $q = floor($m / 4294967296.0); + $l = $m - ($q * 4294967296.0); + $h = $hi*2328.0 + $q; + + return pack ( "NN", $h, $l ); +} + +// unpack 64-bit unsigned +function sphUnpackU64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + // x64, int + if ( $hi<=2147483647 ) + return ($hi<<32) + $lo; + + // x64, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x64, no-bcmath + $C = 100000; + $h = ((int)($hi / $C) << 32) + (int)($lo / $C); + $l = (($hi % $C) << 32) + ($lo % $C); + if ( $l>$C ) + { + $h += (int)($l / $C); + $l = $l % $C; + } + + if ( $h==0 ) + return $l; + return sprintf ( "%d%05d", $h, $l ); + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return sprintf( "%.0f", (float)$l ); + return $h . $l; +} + +// unpack 64-bit signed +function sphUnpackI64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + return ($hi<<32) + $lo; + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + // x32, int + elseif ( $hi==-1 ) + { + if ( $lo<0 ) + return $lo; + return sprintf ( "%.0f", $lo - 4294967296.0 ); + } + + $neg = ""; + $c = 0; + if ( $hi<0 ) + { + $hi = ~$hi; + $lo = ~$lo; + $c = 1; + $neg = "-"; + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0 + $c; + $h = $q*4294967296.0 + $r*429.0 + $mq; + if ( $l==10000000 ) + { + $l = 0; + $h += 1; + } + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return $neg . sprintf( "%.0f", (float)$l ); + return $neg . $h . $l; +} + + +function sphFixUint ( $value ) +{ + if ( PHP_INT_SIZE>=8 ) + { + // x64 route, workaround broken unpack() in 5.2.2+ + if ( $value<0 ) $value += (1<<32); + return $value; + } + else + { + // x32 route, workaround php signed/unsigned braindamage + return sprintf ( "%u", $value ); + } +} + + +/// sphinx searchd client class +class SphinxClient +{ + var $_host; ///< searchd host (default is "localhost") + var $_port; ///< searchd port (default is 9312) + var $_offset; ///< how many records to seek from result-set start (default is 0) + var $_limit; ///< how many records to return from result-set starting at offset (default is 20) + var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) + var $_weights; ///< per-field weights (default is 1 for all fields) + var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) + var $_sortby; ///< attribute to sort by (defualt is "") + var $_min_id; ///< min ID to match (default is 0, which means no limit) + var $_max_id; ///< max ID to match (default is 0, which means no limit) + var $_filters; ///< search filters + var $_groupby; ///< group-by attribute name + var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) + var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) + var $_groupdistinct;///< group-by count-distinct attribute + var $_maxmatches; ///< max matches to retrieve + var $_cutoff; ///< cutoff to stop searching at (default is 0) + var $_retrycount; ///< distributed retries count + var $_retrydelay; ///< distributed retries delay + var $_anchor; ///< geographical anchor point + var $_indexweights; ///< per-index weights + var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) + var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) + var $_fieldweights; ///< per-field-name weights + var $_overrides; ///< per-query attribute values overrides + var $_select; ///< select-list (attributes or expressions, with optional aliases) + + var $_error; ///< last error message + var $_warning; ///< last warning message + var $_connerror; ///< connection error vs remote error flag + + var $_reqs; ///< requests array for multi-query + var $_mbenc; ///< stored mbstring encoding + var $_arrayresult; ///< whether $result["matches"] should be a hash or an array + var $_timeout; ///< connect timeout + + ///////////////////////////////////////////////////////////////////////////// + // common stuff + ///////////////////////////////////////////////////////////////////////////// + + /// create a new client object and fill defaults + function SphinxClient () + { + // per-client-object settings + $this->_host = "localhost"; + $this->_port = 9312; + $this->_path = false; + $this->_socket = false; + + // per-query settings + $this->_offset = 0; + $this->_limit = 20; + $this->_mode = SPH_MATCH_ALL; + $this->_weights = array (); + $this->_sort = SPH_SORT_RELEVANCE; + $this->_sortby = ""; + $this->_min_id = 0; + $this->_max_id = 0; + $this->_filters = array (); + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + $this->_maxmatches = 1000; + $this->_cutoff = 0; + $this->_retrycount = 0; + $this->_retrydelay = 0; + $this->_anchor = array (); + $this->_indexweights= array (); + $this->_ranker = SPH_RANK_PROXIMITY_BM25; + $this->_maxquerytime= 0; + $this->_fieldweights= array(); + $this->_overrides = array(); + $this->_select = "*"; + + $this->_error = ""; // per-reply fields (for single-query case) + $this->_warning = ""; + $this->_connerror = false; + + $this->_reqs = array (); // requests storage (for multi-query case) + $this->_mbenc = ""; + $this->_arrayresult = false; + $this->_timeout = 0; + } + + function __destruct() + { + if ( $this->_socket !== false ) + fclose ( $this->_socket ); + } + + /// get last error message (string) + function GetLastError () + { + return $this->_error; + } + + /// get last warning message (string) + function GetLastWarning () + { + return $this->_warning; + } + + /// get last error flag (to tell network connection errors from searchd errors or broken responses) + function IsConnectError() + { + return $this->_connerror; + } + + /// set searchd host name (string) and port (integer) + function SetServer ( $host, $port = 0 ) + { + assert ( is_string($host) ); + if ( $host[0] == '/') + { + $this->_path = 'unix://' . $host; + return; + } + if ( substr ( $host, 0, 7 )=="unix://" ) + { + $this->_path = $host; + return; + } + + assert ( is_int($port) ); + $this->_host = $host; + $this->_port = $port; + $this->_path = ''; + + } + + /// set server connection timeout (0 to remove) + function SetConnectTimeout ( $timeout ) + { + assert ( is_numeric($timeout) ); + $this->_timeout = $timeout; + } + + + function _Send ( $handle, $data, $length ) + { + if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) + { + $this->_error = 'connection unexpectedly closed (timed out?)'; + $this->_connerror = true; + return false; + } + return true; + } + + ///////////////////////////////////////////////////////////////////////////// + + /// enter mbstring workaround mode + function _MBPush () + { + $this->_mbenc = ""; + if ( ini_get ( "mbstring.func_overload" ) & 2 ) + { + $this->_mbenc = mb_internal_encoding(); + mb_internal_encoding ( "latin1" ); + } + } + + /// leave mbstring workaround mode + function _MBPop () + { + if ( $this->_mbenc ) + mb_internal_encoding ( $this->_mbenc ); + } + + /// connect to searchd server + function _Connect () + { + if ( $this->_socket!==false ) + { + // we are in persistent connection mode, so we have a socket + // however, need to check whether it's still alive + if ( !@feof ( $this->_socket ) ) + return $this->_socket; + + // force reopen + $this->_socket = false; + } + + $errno = 0; + $errstr = ""; + $this->_connerror = false; + + if ( $this->_path ) + { + $host = $this->_path; + $port = 0; + } + else + { + $host = $this->_host; + $port = $this->_port; + } + + if ( $this->_timeout<=0 ) + $fp = @fsockopen ( $host, $port, $errno, $errstr ); + else + $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); + + if ( !$fp ) + { + if ( $this->_path ) + $location = $this->_path; + else + $location = "{$this->_host}:{$this->_port}"; + + $errstr = trim ( $errstr ); + $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; + $this->_connerror = true; + return false; + } + + // send my version + // this is a subtle part. we must do it before (!) reading back from searchd. + // because otherwise under some conditions (reported on FreeBSD for instance) + // TCP stack could throttle write-write-read pattern because of Nagle. + if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) + { + fclose ( $fp ); + $this->_error = "failed to send client protocol version"; + return false; + } + + // check version + list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); + $v = (int)$v; + if ( $v<1 ) + { + fclose ( $fp ); + $this->_error = "expected searchd protocol version 1+, got version '$v'"; + return false; + } + + return $fp; + } + + /// get and check response packet from searchd server + function _GetResponse ( $fp, $client_ver ) + { + $response = ""; + $len = 0; + + $header = fread ( $fp, 8 ); + if ( strlen($header)==8 ) + { + list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); + $left = $len; + while ( $left>0 && !feof($fp) ) + { + $chunk = fread ( $fp, $left ); + if ( $chunk ) + { + $response .= $chunk; + $left -= strlen($chunk); + } + } + } + if ( $this->_socket === false ) + fclose ( $fp ); + + // check response + $read = strlen ( $response ); + if ( !$response || $read!=$len ) + { + $this->_error = $len + ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" + : "received zero-sized searchd response"; + return false; + } + + // check status + if ( $status==SEARCHD_WARNING ) + { + list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_warning = substr ( $response, 4, $wlen ); + return substr ( $response, 4+$wlen ); + } + if ( $status==SEARCHD_ERROR ) + { + $this->_error = "searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status==SEARCHD_RETRY ) + { + $this->_error = "temporary searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status!=SEARCHD_OK ) + { + $this->_error = "unknown status code '$status'"; + return false; + } + + // check version + if ( $ver<$client_ver ) + { + $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", + $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); + } + + return $response; + } + + ///////////////////////////////////////////////////////////////////////////// + // searching + ///////////////////////////////////////////////////////////////////////////// + + /// set offset and count into result set, + /// and optionally set max-matches and cutoff limits + function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) + { + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + assert ( $max>=0 ); + $this->_offset = $offset; + $this->_limit = $limit; + if ( $max>0 ) + $this->_maxmatches = $max; + if ( $cutoff>0 ) + $this->_cutoff = $cutoff; + } + + /// set maximum query time, in milliseconds, per-index + /// integer, 0 means "do not limit" + function SetMaxQueryTime ( $max ) + { + assert ( is_int($max) ); + assert ( $max>=0 ); + $this->_maxquerytime = $max; + } + + /// set matching mode + function SetMatchMode ( $mode ) + { + assert ( $mode==SPH_MATCH_ALL + || $mode==SPH_MATCH_ANY + || $mode==SPH_MATCH_PHRASE + || $mode==SPH_MATCH_BOOLEAN + || $mode==SPH_MATCH_EXTENDED + || $mode==SPH_MATCH_FULLSCAN + || $mode==SPH_MATCH_EXTENDED2 ); + $this->_mode = $mode; + } + + /// set ranking mode + function SetRankingMode ( $ranker ) + { + assert ( $ranker==SPH_RANK_PROXIMITY_BM25 + || $ranker==SPH_RANK_BM25 + || $ranker==SPH_RANK_NONE + || $ranker==SPH_RANK_WORDCOUNT + || $ranker==SPH_RANK_PROXIMITY ); + $this->_ranker = $ranker; + } + + /// set matches sorting mode + function SetSortMode ( $mode, $sortby="" ) + { + assert ( + $mode==SPH_SORT_RELEVANCE || + $mode==SPH_SORT_ATTR_DESC || + $mode==SPH_SORT_ATTR_ASC || + $mode==SPH_SORT_TIME_SEGMENTS || + $mode==SPH_SORT_EXTENDED || + $mode==SPH_SORT_EXPR ); + assert ( is_string($sortby) ); + assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); + + $this->_sort = $mode; + $this->_sortby = $sortby; + } + + /// bind per-field weights by order + /// DEPRECATED; use SetFieldWeights() instead + function SetWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $weight ) + assert ( is_int($weight) ); + + $this->_weights = $weights; + } + + /// bind per-field weights by name + function SetFieldWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $name=>$weight ) + { + assert ( is_string($name) ); + assert ( is_int($weight) ); + } + $this->_fieldweights = $weights; + } + + /// bind per-index weights by name + function SetIndexWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $index=>$weight ) + { + assert ( is_string($index) ); + assert ( is_int($weight) ); + } + $this->_indexweights = $weights; + } + + /// set IDs range to match + /// only match records if document ID is beetwen $min and $max (inclusive) + function SetIDRange ( $min, $max ) + { + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + $this->_min_id = $min; + $this->_max_id = $max; + } + + /// set values set filter + /// only match records where $attribute value is in given set + function SetFilter ( $attribute, $values, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_array($values) ); + assert ( count($values) ); + + if ( is_array($values) && count($values) ) + { + foreach ( $values as $value ) + assert ( is_numeric($value) ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); + } + } + + /// set range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// set float range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_float($min) ); + assert ( is_float($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// setup anchor point for geosphere distance calculations + /// required to use @geodist in filters and sorting + /// latitude and longitude must be in radians + function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) + { + assert ( is_string($attrlat) ); + assert ( is_string($attrlong) ); + assert ( is_float($lat) ); + assert ( is_float($long) ); + + $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); + } + + /// set grouping attribute and function + function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) + { + assert ( is_string($attribute) ); + assert ( is_string($groupsort) ); + assert ( $func==SPH_GROUPBY_DAY + || $func==SPH_GROUPBY_WEEK + || $func==SPH_GROUPBY_MONTH + || $func==SPH_GROUPBY_YEAR + || $func==SPH_GROUPBY_ATTR + || $func==SPH_GROUPBY_ATTRPAIR ); + + $this->_groupby = $attribute; + $this->_groupfunc = $func; + $this->_groupsort = $groupsort; + } + + /// set count-distinct attribute for group-by queries + function SetGroupDistinct ( $attribute ) + { + assert ( is_string($attribute) ); + $this->_groupdistinct = $attribute; + } + + /// set distributed retries count and delay + function SetRetries ( $count, $delay=0 ) + { + assert ( is_int($count) && $count>=0 ); + assert ( is_int($delay) && $delay>=0 ); + $this->_retrycount = $count; + $this->_retrydelay = $delay; + } + + /// set result set format (hash or array; hash by default) + /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs + function SetArrayResult ( $arrayresult ) + { + assert ( is_bool($arrayresult) ); + $this->_arrayresult = $arrayresult; + } + + /// set attribute values override + /// there can be only one override per attribute + /// $values must be a hash that maps document IDs to attribute values + function SetOverride ( $attrname, $attrtype, $values ) + { + assert ( is_string ( $attrname ) ); + assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); + assert ( is_array ( $values ) ); + + $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); + } + + /// set select-list (attributes or expressions), SQL-like syntax + function SetSelect ( $select ) + { + assert ( is_string ( $select ) ); + $this->_select = $select; + } + + ////////////////////////////////////////////////////////////////////////////// + + /// clear all filters (for multi-queries) + function ResetFilters () + { + $this->_filters = array(); + $this->_anchor = array(); + } + + /// clear groupby settings (for multi-queries) + function ResetGroupBy () + { + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + } + + /// clear all attribute value overrides (for multi-queries) + function ResetOverrides () + { + $this->_overrides = array (); + } + + ////////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, run given search query through given indexes, + /// and return the search results + function Query ( $query, $index="*", $comment="" ) + { + assert ( empty($this->_reqs) ); + + $this->AddQuery ( $query, $index, $comment ); + $results = $this->RunQueries (); + $this->_reqs = array (); // just in case it failed too early + + if ( !is_array($results) ) + return false; // probably network error; error message should be already filled + + $this->_error = $results[0]["error"]; + $this->_warning = $results[0]["warning"]; + if ( $results[0]["status"]==SEARCHD_ERROR ) + return false; + else + return $results[0]; + } + + /// helper to pack floats in network byte order + function _PackFloat ( $f ) + { + $t1 = pack ( "f", $f ); // machine order + list(,$t2) = unpack ( "L*", $t1 ); // int in machine order + return pack ( "N", $t2 ); + } + + /// add query to multi-query batch + /// returns index into results array from RunQueries() call + function AddQuery ( $query, $index="*", $comment="" ) + { + // mbstring workaround + $this->_MBPush (); + + // build request + $req = pack ( "NNNNN", $this->_offset, $this->_limit, $this->_mode, $this->_ranker, $this->_sort ); // mode and limits + $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; + $req .= pack ( "N", strlen($query) ) . $query; // query itself + $req .= pack ( "N", count($this->_weights) ); // weights + foreach ( $this->_weights as $weight ) + $req .= pack ( "N", (int)$weight ); + $req .= pack ( "N", strlen($index) ) . $index; // indexes + $req .= pack ( "N", 1 ); // id64 range marker + $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range + + // filters + $req .= pack ( "N", count($this->_filters) ); + foreach ( $this->_filters as $filter ) + { + $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; + $req .= pack ( "N", $filter["type"] ); + switch ( $filter["type"] ) + { + case SPH_FILTER_VALUES: + $req .= pack ( "N", count($filter["values"]) ); + foreach ( $filter["values"] as $value ) + $req .= sphPackI64 ( $value ); + break; + + case SPH_FILTER_RANGE: + $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); + break; + + case SPH_FILTER_FLOATRANGE: + $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); + break; + + default: + assert ( 0 && "internal error: unhandled filter type" ); + } + $req .= pack ( "N", $filter["exclude"] ); + } + + // group-by clause, max-matches count, group-sort clause, cutoff count + $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; + $req .= pack ( "N", $this->_maxmatches ); + $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; + $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); + $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; + + // anchor point + if ( empty($this->_anchor) ) + { + $req .= pack ( "N", 0 ); + } else + { + $a =& $this->_anchor; + $req .= pack ( "N", 1 ); + $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; + $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; + $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); + } + + // per-index weights + $req .= pack ( "N", count($this->_indexweights) ); + foreach ( $this->_indexweights as $idx=>$weight ) + $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); + + // max query time + $req .= pack ( "N", $this->_maxquerytime ); + + // per-field weights + $req .= pack ( "N", count($this->_fieldweights) ); + foreach ( $this->_fieldweights as $field=>$weight ) + $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); + + // comment + $req .= pack ( "N", strlen($comment) ) . $comment; + + // attribute overrides + $req .= pack ( "N", count($this->_overrides) ); + foreach ( $this->_overrides as $key => $entry ) + { + $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; + $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); + foreach ( $entry["values"] as $id=>$val ) + { + assert ( is_numeric($id) ); + assert ( is_numeric($val) ); + + $req .= sphPackU64 ( $id ); + switch ( $entry["type"] ) + { + case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; + case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; + default: $req .= pack ( "N", $val ); break; + } + } + } + + // select-list + $req .= pack ( "N", strlen($this->_select) ) . $this->_select; + + // mbstring workaround + $this->_MBPop (); + + // store request to requests array + $this->_reqs[] = $req; + return count($this->_reqs)-1; + } + + /// connect to searchd, run queries batch, and return an array of result sets + function RunQueries () + { + if ( empty($this->_reqs) ) + { + $this->_error = "no queries defined, issue AddQuery() first"; + return false; + } + + // mbstring workaround + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return false; + } + + // send query, get response + $nreqs = count($this->_reqs); + $req = join ( "", $this->_reqs ); + $len = 4+strlen($req); + $req = pack ( "nnNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, $nreqs ) . $req; // add header + + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) + { + $this->_MBPop (); + return false; + } + + // query sent ok; we can reset reqs now + $this->_reqs = array (); + + // parse and return response + return $this->_ParseSearchResponse ( $response, $nreqs ); + } + + /// parse and return search query (or queries) response + function _ParseSearchResponse ( $response, $nreqs ) + { + $p = 0; // current position + $max = strlen($response); // max position for checks, to protect against broken responses + + $results = array (); + for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) + { + $results[] = array(); + $result =& $results[$ires]; + + $result["error"] = ""; + $result["warning"] = ""; + + // extract status + list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $result["status"] = $status; + if ( $status!=SEARCHD_OK ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $message = substr ( $response, $p, $len ); $p += $len; + + if ( $status==SEARCHD_WARNING ) + { + $result["warning"] = $message; + } else + { + $result["error"] = $message; + continue; + } + } + + // read schema + $fields = array (); + $attrs = array (); + + list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nfields-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $fields[] = substr ( $response, $p, $len ); $p += $len; + } + $result["fields"] = $fields; + + list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nattrs-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attr = substr ( $response, $p, $len ); $p += $len; + list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrs[$attr] = $type; + } + $result["attrs"] = $attrs; + + // read match count + list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + + // read matches + $idx = -1; + while ( $count-->0 && $p<$max ) + { + // index into result array + $idx++; + + // parse document id and weight + if ( $id64 ) + { + $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; + list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + } + else + { + list ( $doc, $weight ) = array_values ( unpack ( "N*N*", + substr ( $response, $p, 8 ) ) ); + $p += 8; + $doc = sphFixUint($doc); + } + $weight = sprintf ( "%u", $weight ); + + // create match entry + if ( $this->_arrayresult ) + $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); + else + $result["matches"][$doc]["weight"] = $weight; + + // parse and create attributes + $attrvals = array (); + foreach ( $attrs as $attr=>$type ) + { + // handle 64bit ints + if ( $type==SPH_ATTR_BIGINT ) + { + $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + continue; + } + + // handle floats + if ( $type==SPH_ATTR_FLOAT ) + { + list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); + $attrvals[$attr] = $fval; + continue; + } + + // handle everything else as unsigned ints + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + if ( $type & SPH_ATTR_MULTI ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues-->0 && $p<$max ) + { + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrvals[$attr][] = sphFixUint($val); + } + } else + { + $attrvals[$attr] = sphFixUint($val); + } + } + + if ( $this->_arrayresult ) + $result["matches"][$idx]["attrs"] = $attrvals; + else + $result["matches"][$doc]["attrs"] = $attrvals; + } + + list ( $total, $total_found, $msecs, $words ) = + array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); + $result["total"] = sprintf ( "%u", $total ); + $result["total_found"] = sprintf ( "%u", $total_found ); + $result["time"] = sprintf ( "%.3f", $msecs/1000 ); + $p += 16; + + while ( $words-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $word = substr ( $response, $p, $len ); $p += $len; + list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + $result["words"][$word] = array ( + "docs"=>sprintf ( "%u", $docs ), + "hits"=>sprintf ( "%u", $hits ) ); + } + } + + $this->_MBPop (); + return $results; + } + + ///////////////////////////////////////////////////////////////////////////// + // excerpts generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate exceprts (snippets) + /// of given documents for given query. returns false on failure, + /// an array of snippets on success + function BuildExcerpts ( $docs, $index, $words, $opts=array() ) + { + assert ( is_array($docs) ); + assert ( is_string($index) ); + assert ( is_string($words) ); + assert ( is_array($opts) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // fixup options + ///////////////// + + if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; + if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; + if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; + if ( !isset($opts["limit"]) ) $opts["limit"] = 256; + if ( !isset($opts["around"]) ) $opts["around"] = 5; + if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; + if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; + if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; + if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $flags = 1; // remove spaces + if ( $opts["exact_phrase"] ) $flags |= 2; + if ( $opts["single_passage"] ) $flags |= 4; + if ( $opts["use_boundaries"] ) $flags |= 8; + if ( $opts["weight_order"] ) $flags |= 16; + $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", strlen($words) ) . $words; // req words + + // options + $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; + $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; + $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; + $req .= pack ( "N", (int)$opts["limit"] ); + $req .= pack ( "N", (int)$opts["around"] ); + + // documents + $req .= pack ( "N", count($docs) ); + foreach ( $docs as $doc ) + { + assert ( is_string($doc) ); + $req .= pack ( "N", strlen($doc) ) . $doc; + } + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + for ( $i=0; $i $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + $res[] = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + } + + $this->_MBPop (); + return $res; + } + + + ///////////////////////////////////////////////////////////////////////////// + // keyword generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate keyword list for a given query + /// returns false on failure, + /// an array of words on success + function BuildKeywords ( $query, $index, $hits ) + { + assert ( is_string($query) ); + assert ( is_string($index) ); + assert ( is_bool($hits) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $req = pack ( "N", strlen($query) ) . $query; // req query + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", (int)$hits ); + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + for ( $i=0; $i<$nwords; $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $tokenized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $normalized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); + + if ( $hits ) + { + list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); + $pos += 8; + $res [$i]["docs"] = $ndocs; + $res [$i]["hits"] = $nhits; + } + + if ( $pos > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + } + + $this->_MBPop (); + return $res; + } + + function EscapeString ( $string ) + { + $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=' ); + $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=' ); + + return str_replace ( $from, $to, $string ); + } + + ///////////////////////////////////////////////////////////////////////////// + // attribute updates + ///////////////////////////////////////////////////////////////////////////// + + /// batch update given attributes in given rows in given indexes + /// returns amount of updated documents (0 or more) on success, or -1 on failure + function UpdateAttributes ( $index, $attrs, $values, $mva=false ) + { + // verify everything + assert ( is_string($index) ); + assert ( is_bool($mva) ); + + assert ( is_array($attrs) ); + foreach ( $attrs as $attr ) + assert ( is_string($attr) ); + + assert ( is_array($values) ); + foreach ( $values as $id=>$entry ) + { + assert ( is_numeric($id) ); + assert ( is_array($entry) ); + assert ( count($entry)==count($attrs) ); + foreach ( $entry as $v ) + { + if ( $mva ) + { + assert ( is_array($v) ); + foreach ( $v as $vv ) + assert ( is_int($vv) ); + } else + assert ( is_int($v) ); + } + } + + // build request + $req = pack ( "N", strlen($index) ) . $index; + + $req .= pack ( "N", count($attrs) ); + foreach ( $attrs as $attr ) + { + $req .= pack ( "N", strlen($attr) ) . $attr; + $req .= pack ( "N", $mva ? 1 : 0 ); + } + + $req .= pack ( "N", count($values) ); + foreach ( $values as $id=>$entry ) + { + $req .= sphPackU64 ( $id ); + foreach ( $entry as $v ) + { + $req .= pack ( "N", $mva ? count($v) : $v ); + if ( $mva ) + foreach ( $v as $vv ) + $req .= pack ( "N", $vv ); + } + } + + // connect, send query, get response + if (!( $fp = $this->_Connect() )) + return -1; + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header + if ( !$this->_Send ( $fp, $req, $len+8 ) ) + return -1; + + if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) + return -1; + + // parse response + list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); + return $updated; + } + + ///////////////////////////////////////////////////////////////////////////// + // persistent connections + ///////////////////////////////////////////////////////////////////////////// + + function Open() + { + if ( $this->_socket !== false ) + { + $this->_error = 'already connected'; + return false; + } + if ( !$fp = $this->_Connect() ) + return false; + + // command, command version = 0, body length = 4, body = 1 + $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); + if ( !$this->_Send ( $fp, $req, 12 ) ) + return false; + + $this->_socket = $fp; + return true; + } + + function Close() + { + if ( $this->_socket === false ) + { + $this->_error = 'not connected'; + return false; + } + + fclose ( $this->_socket ); + $this->_socket = false; + + return true; + } + + ////////////////////////////////////////////////////////////////////////// + // status + ////////////////////////////////////////////////////////////////////////// + + function Status () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 + if ( !( $this->_Send ( $fp, $req, 12 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) + { + $this->_MBPop (); + return false; + } + + $res = substr ( $response, 4 ); // just ignore length, error handling, etc + $p = 0; + list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + + $res = array(); + for ( $i=0; $i<$rows; $i++ ) + for ( $j=0; $j<$cols; $j++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $res[$i][] = substr ( $response, $p, $len ); $p += $len; + } + + $this->_MBPop (); + return $res; + } +} + +// +// $Id: sphinxapi.php 2055 2009-11-06 23:09:58Z shodan $ +// diff --git a/1.2/library/Metier/sphinx/sphinxapi2.php b/1.2/library/Vendors/sphinxapi/sphinxapi-2.1.2.php similarity index 57% rename from 1.2/library/Metier/sphinx/sphinxapi2.php rename to 1.2/library/Vendors/sphinxapi/sphinxapi-2.1.2.php index 4693c2e2..67a42351 100644 --- a/1.2/library/Metier/sphinx/sphinxapi2.php +++ b/1.2/library/Vendors/sphinxapi/sphinxapi-2.1.2.php @@ -1,1187 +1,1810 @@ -=8 ) - { - $i = (int)$v; - return pack ( "NN", $i>>32, $i&((1<<32)-1) ); - } - - // x32 route, bcmath - $x = "4294967296"; - if ( function_exists("bcmul") ) - { - $h = bcdiv ( $v, $x, 0 ); - $l = bcmod ( $v, $x ); - return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit - } - - // x32 route, 15 or less decimal digits - // we can use float, because its actually double and has 52 precision bits - if ( strlen($v)<=15 ) - { - $f = (float)$v; - $h = (int)($f/$x); - $l = (int)($f-$x*$h); - return pack ( "NN", $h, $l ); - } - - // x32 route, 16 or more decimal digits - // well, let me know if you *really* need this - die ( "INTERNAL ERROR: packing more than 15-digit numeric on 32-bit PHP is not implemented yet (contact support)" ); -} - - -/// portably unpack 64 unsigned bits, network order to numeric -function sphUnpack64 ( $v ) -{ - list($h,$l) = array_values ( unpack ( "N*N*", $v ) ); - - // x64 route - if ( PHP_INT_SIZE>=8 ) - { - if ( $h<0 ) $h += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again - if ( $l<0 ) $l += (1<<32); - return ($h<<32) + $l; - } - - // x32 route - $h = sprintf ( "%u", $h ); - $l = sprintf ( "%u", $l ); - $x = "4294967296"; - - // bcmath - if ( function_exists("bcmul") ) - return bcadd ( $l, bcmul ( $x, $h ) ); - - // no bcmath, 15 or less decimal digits - // we can use float, because its actually double and has 52 precision bits - if ( $h<1048576 ) - { - $f = ((float)$h)*$x + (float)$l; - return sprintf ( "%.0f", $f ); // builtin conversion is only about 39-40 bits precise! - } - - // x32 route, 16 or more decimal digits - // well, let me know if you *really* need this - die ( "INTERNAL ERROR: unpacking more than 15-digit numeric on 32-bit PHP is not implemented yet (contact support)" ); -} - - -/// sphinx searchd client class -class SphinxClient2 -{ - var $_host; ///< searchd host (default is "localhost") - var $_port; ///< searchd port (default is 3312) - var $_offset; ///< how many records to seek from result-set start (default is 0) - var $_limit; ///< how many records to return from result-set starting at offset (default is 20) - var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) - var $_weights; ///< per-field weights (default is 1 for all fields) - var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) - var $_sortby; ///< attribute to sort by (defualt is "") - var $_min_id; ///< min ID to match (default is 0, which means no limit) - var $_max_id; ///< max ID to match (default is 0, which means no limit) - var $_filters; ///< search filters - var $_groupby; ///< group-by attribute name - var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) - var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) - var $_groupdistinct;///< group-by count-distinct attribute - var $_maxmatches; ///< max matches to retrieve - var $_cutoff; ///< cutoff to stop searching at (default is 0) - var $_retrycount; ///< distributed retries count - var $_retrydelay; ///< distributed retries delay - var $_anchor; ///< geographical anchor point - var $_indexweights; ///< per-index weights - var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) - var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) - var $_fieldweights; ///< per-field-name weights - - var $_error; ///< last error message - var $_warning; ///< last warning message - - var $_reqs; ///< requests array for multi-query - var $_mbenc; ///< stored mbstring encoding - var $_arrayresult; ///< whether $result["matches"] should be a hash or an array - var $_timeout; ///< connect timeout - - ///////////////////////////////////////////////////////////////////////////// - // common stuff - ///////////////////////////////////////////////////////////////////////////// - - /// create a new client object and fill defaults - function SphinxClient2 () - { - // per-client-object settings - $this->_host = "localhost"; - $this->_port = 3312; - - // per-query settings - $this->_offset = 0; - $this->_limit = 20; - $this->_mode = SPH_MATCH_ALL; - $this->_weights = array (); - $this->_sort = SPH_SORT_RELEVANCE; - $this->_sortby = ""; - $this->_min_id = 0; - $this->_max_id = 0; - $this->_filters = array (); - $this->_groupby = ""; - $this->_groupfunc = SPH_GROUPBY_DAY; - $this->_groupsort = "@group desc"; - $this->_groupdistinct= ""; - $this->_maxmatches = 1000; - $this->_cutoff = 0; - $this->_retrycount = 0; - $this->_retrydelay = 0; - $this->_anchor = array (); - $this->_indexweights= array (); - $this->_ranker = SPH_RANK_PROXIMITY_BM25; - $this->_maxquerytime= 0; - $this->_fieldweights= array(); - - $this->_error = ""; // per-reply fields (for single-query case) - $this->_warning = ""; - $this->_reqs = array (); // requests storage (for multi-query case) - $this->_mbenc = ""; - $this->_arrayresult = false; - $this->_timeout = 0; - } - - /// get last error message (string) - function GetLastError () - { - return $this->_error; - } - - /// get last warning message (string) - function GetLastWarning () - { - return $this->_warning; - } - - /// set searchd host name (string) and port (integer) - function SetServer ( $host, $port ) - { - assert ( is_string($host) ); - assert ( is_int($port) ); - $this->_host = $host; - $this->_port = $port; - } - - /// set server connection timeout (0 to remove) - function SetConnectTimeout ( $timeout ) - { - assert ( is_numeric($timeout) ); - $this->_timeout = $timeout; - } - - ///////////////////////////////////////////////////////////////////////////// - - /// enter mbstring workaround mode - function _MBPush () - { - $this->_mbenc = ""; - if ( ini_get ( "mbstring.func_overload" ) & 2 ) - { - $this->_mbenc = mb_internal_encoding(); - mb_internal_encoding ( "latin1" ); - } - } - - /// leave mbstring workaround mode - function _MBPop () - { - if ( $this->_mbenc ) - mb_internal_encoding ( $this->_mbenc ); - } - - /// connect to searchd server - function _Connect () - { - $errno = 0; - $errstr = ""; - if ( $this->_timeout<=0 ) - $fp = @fsockopen ( $this->_host, $this->_port, $errno, $errstr ); - else - $fp = @fsockopen ( $this->_host, $this->_port, $errno, $errstr, $this->_timeout ); - - if ( !$fp ) - { - $errstr = trim ( $errstr ); - $this->_error = "connection to {$this->_host}:{$this->_port} failed (errno=$errno, msg=$errstr)"; - return false; - } - - // check version - list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); - $v = (int)$v; - if ( $v<1 ) - { - fclose ( $fp ); - $this->_error = "expected searchd protocol version 1+, got version '$v'"; - return false; - } - - // all ok, send my version - fwrite ( $fp, pack ( "N", 1 ) ); - return $fp; - } - - /// get and check response packet from searchd server - function _GetResponse ( $fp, $client_ver ) - { - $response = ""; - $len = 0; - - $header = fread ( $fp, 8 ); - if ( strlen($header)==8 ) - { - list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); - $left = $len; - while ( $left>0 && !feof($fp) ) - { - $chunk = fread ( $fp, $left ); - if ( $chunk ) - { - $response .= $chunk; - $left -= strlen($chunk); - } - } - } - fclose ( $fp ); - - // check response - $read = strlen ( $response ); - if ( !$response || $read!=$len ) - { - $this->_error = $len - ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" - : "received zero-sized searchd response"; - return false; - } - - // check status - if ( $status==SEARCHD_WARNING ) - { - list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); - $this->_warning = substr ( $response, 4, $wlen ); - return substr ( $response, 4+$wlen ); - } - if ( $status==SEARCHD_ERROR ) - { - $this->_error = "searchd error: " . substr ( $response, 4 ); - return false; - } - if ( $status==SEARCHD_RETRY ) - { - $this->_error = "temporary searchd error: " . substr ( $response, 4 ); - return false; - } - if ( $status!=SEARCHD_OK ) - { - $this->_error = "unknown status code '$status'"; - return false; - } - - // check version - if ( $ver<$client_ver ) - { - $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", - $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); - } - - return $response; - } - - ///////////////////////////////////////////////////////////////////////////// - // searching - ///////////////////////////////////////////////////////////////////////////// - - /// set offset and count into result set, - /// and optionally set max-matches and cutoff limits - function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) - { - assert ( is_int($offset) ); - assert ( is_int($limit) ); - assert ( $offset>=0 ); - assert ( $limit>0 ); - assert ( $max>=0 ); - $this->_offset = $offset; - $this->_limit = $limit; - if ( $max>0 ) - $this->_maxmatches = $max; - if ( $cutoff>0 ) - $this->_cutoff = $cutoff; - } - - /// set maximum query time, in milliseconds, per-index - /// integer, 0 means "do not limit" - function SetMaxQueryTime ( $max ) - { - assert ( is_int($max) ); - assert ( $max>=0 ); - $this->_maxquerytime = $max; - } - - /// set matching mode - function SetMatchMode ( $mode ) - { - assert ( $mode==SPH_MATCH_ALL - || $mode==SPH_MATCH_ANY - || $mode==SPH_MATCH_PHRASE - || $mode==SPH_MATCH_BOOLEAN - || $mode==SPH_MATCH_EXTENDED - || $mode==SPH_MATCH_FULLSCAN - || $mode==SPH_MATCH_EXTENDED2 ); - $this->_mode = $mode; - } - - /// set ranking mode - function SetRankingMode ( $ranker ) - { - assert ( $ranker==SPH_RANK_PROXIMITY_BM25 - || $ranker==SPH_RANK_BM25 - || $ranker==SPH_RANK_NONE - || $ranker==SPH_RANK_WORDCOUNT ); - $this->_ranker = $ranker; - } - - /// set matches sorting mode - function SetSortMode ( $mode, $sortby="" ) - { - assert ( - $mode==SPH_SORT_RELEVANCE || - $mode==SPH_SORT_ATTR_DESC || - $mode==SPH_SORT_ATTR_ASC || - $mode==SPH_SORT_TIME_SEGMENTS || - $mode==SPH_SORT_EXTENDED || - $mode==SPH_SORT_EXPR ); - assert ( is_string($sortby) ); - assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); - - $this->_sort = $mode; - $this->_sortby = $sortby; - } - - /// bind per-field weights by order - /// DEPRECATED; use SetFieldWeights() instead - function SetWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $weight ) - assert ( is_int($weight) ); - - $this->_weights = $weights; - } - - /// bind per-field weights by name - function SetFieldWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $name=>$weight ) - { - assert ( is_string($name) ); - assert ( is_int($weight) ); - } - $this->_fieldweights = $weights; - } - - /// bind per-index weights by name - function SetIndexWeights ( $weights ) - { - assert ( is_array($weights) ); - foreach ( $weights as $index=>$weight ) - { - assert ( is_string($index) ); - assert ( is_int($weight) ); - } - $this->_indexweights = $weights; - } - - /// set IDs range to match - /// only match records if document ID is beetwen $min and $max (inclusive) - function SetIDRange ( $min, $max ) - { - assert ( is_numeric($min) ); - assert ( is_numeric($max) ); - assert ( $min<=$max ); - $this->_min_id = $min; - $this->_max_id = $max; - } - - /// set values set filter - /// only match records where $attribute value is in given set - function SetFilter ( $attribute, $values, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_array($values) ); - assert ( count($values) ); - - if ( is_array($values) && count($values) ) - { - foreach ( $values as $value ) - assert ( is_numeric($value) ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); - } - } - - /// set range filter - /// only match records if $attribute value is beetwen $min and $max (inclusive) - function SetFilterRange ( $attribute, $min, $max, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_int($min) ); - assert ( is_int($max) ); - assert ( $min<=$max ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); - } - - /// set float range filter - /// only match records if $attribute value is beetwen $min and $max (inclusive) - function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) - { - assert ( is_string($attribute) ); - assert ( is_float($min) ); - assert ( is_float($max) ); - assert ( $min<=$max ); - - $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); - } - - /// setup anchor point for geosphere distance calculations - /// required to use @geodist in filters and sorting - /// latitude and longitude must be in radians - function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) - { - assert ( is_string($attrlat) ); - assert ( is_string($attrlong) ); - assert ( is_float($lat) ); - assert ( is_float($long) ); - - $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); - } - - /// set grouping attribute and function - function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) - { - assert ( is_string($attribute) ); - assert ( is_string($groupsort) ); - assert ( $func==SPH_GROUPBY_DAY - || $func==SPH_GROUPBY_WEEK - || $func==SPH_GROUPBY_MONTH - || $func==SPH_GROUPBY_YEAR - || $func==SPH_GROUPBY_ATTR - || $func==SPH_GROUPBY_ATTRPAIR ); - - $this->_groupby = $attribute; - $this->_groupfunc = $func; - $this->_groupsort = $groupsort; - } - - /// set count-distinct attribute for group-by queries - function SetGroupDistinct ( $attribute ) - { - assert ( is_string($attribute) ); - $this->_groupdistinct = $attribute; - } - - /// set distributed retries count and delay - function SetRetries ( $count, $delay=0 ) - { - assert ( is_int($count) && $count>=0 ); - assert ( is_int($delay) && $delay>=0 ); - $this->_retrycount = $count; - $this->_retrydelay = $delay; - } - - /// set result set format (hash or array; hash by default) - /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs - function SetArrayResult ( $arrayresult ) - { - assert ( is_bool($arrayresult) ); - $this->_arrayresult = $arrayresult; - } - - ////////////////////////////////////////////////////////////////////////////// - - /// clear all filters (for multi-queries) - function ResetFilters () - { - $this->_filters = array(); - $this->_anchor = array(); - } - - /// clear groupby settings (for multi-queries) - function ResetGroupBy () - { - $this->_groupby = ""; - $this->_groupfunc = SPH_GROUPBY_DAY; - $this->_groupsort = "@group desc"; - $this->_groupdistinct= ""; - } - - ////////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, run given search query through given indexes, - /// and return the search results - function Query ( $query, $index="*", $comment="" ) - { - assert ( empty($this->_reqs) ); - - $this->AddQuery ( $query, $index, $comment ); - $results = $this->RunQueries (); - $this->_reqs = array (); // just in case it failed too early - - if ( !is_array($results) ) - return false; // probably network error; error message should be already filled - - $this->_error = $results[0]["error"]; - $this->_warning = $results[0]["warning"]; - if ( $results[0]["status"]==SEARCHD_ERROR ) - return false; - else - return $results[0]; - } - - /// helper to pack floats in network byte order - function _PackFloat ( $f ) - { - $t1 = pack ( "f", $f ); // machine order - list(,$t2) = unpack ( "L*", $t1 ); // int in machine order - return pack ( "N", $t2 ); - } - - /// add query to multi-query batch - /// returns index into results array from RunQueries() call - function AddQuery ( $query, $index="*", $comment="" ) - { - // mbstring workaround - $this->_MBPush (); - - // build request - $req = pack ( "NNNNN", $this->_offset, $this->_limit, $this->_mode, $this->_ranker, $this->_sort ); // mode and limits - $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; - $req .= pack ( "N", strlen($query) ) . $query; // query itself - $req .= pack ( "N", count($this->_weights) ); // weights - foreach ( $this->_weights as $weight ) - $req .= pack ( "N", (int)$weight ); - $req .= pack ( "N", strlen($index) ) . $index; // indexes - $req .= pack ( "N", 1 ); // id64 range marker - $req .= sphPack64 ( $this->_min_id ) . sphPack64 ( $this->_max_id ); // id64 range - - // filters - $req .= pack ( "N", count($this->_filters) ); - foreach ( $this->_filters as $filter ) - { - $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; - $req .= pack ( "N", $filter["type"] ); - switch ( $filter["type"] ) - { - case SPH_FILTER_VALUES: - $req .= pack ( "N", count($filter["values"]) ); - foreach ( $filter["values"] as $value ) - $req .= pack ( "N", floatval($value) ); // this uberhack is to workaround 32bit signed int limit on x32 platforms - break; - - case SPH_FILTER_RANGE: - $req .= pack ( "NN", $filter["min"], $filter["max"] ); - break; - - case SPH_FILTER_FLOATRANGE: - $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); - break; - - default: - assert ( 0 && "internal error: unhandled filter type" ); - } - $req .= pack ( "N", $filter["exclude"] ); - } - - // group-by clause, max-matches count, group-sort clause, cutoff count - $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; - $req .= pack ( "N", $this->_maxmatches ); - $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; - $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); - $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; - - // anchor point - if ( empty($this->_anchor) ) - { - $req .= pack ( "N", 0 ); - } else - { - $a =& $this->_anchor; - $req .= pack ( "N", 1 ); - $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; - $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; - $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); - } - - // per-index weights - $req .= pack ( "N", count($this->_indexweights) ); - foreach ( $this->_indexweights as $idx=>$weight ) - $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); - - // max query time - $req .= pack ( "N", $this->_maxquerytime ); - - // per-field weights - $req .= pack ( "N", count($this->_fieldweights) ); - foreach ( $this->_fieldweights as $field=>$weight ) - $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); - - // comment - $req .= pack ( "N", strlen($comment) ) . $comment; - - // mbstring workaround - $this->_MBPop (); - - // store request to requests array - $this->_reqs[] = $req; - return count($this->_reqs)-1; - } - - /// connect to searchd, run queries batch, and return an array of result sets - function RunQueries () - { - if ( empty($this->_reqs) ) - { - $this->_error = "no queries defined, issue AddQuery() first"; - return false; - } - - // mbstring workaround - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop (); - return false; - } - - //////////////////////////// - // send query, get response - //////////////////////////// - - $nreqs = count($this->_reqs); - $req = join ( "", $this->_reqs ); - $len = 4+strlen($req); - $req = pack ( "nnNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, $nreqs ) . $req; // add header - - fwrite ( $fp, $req, $len+8 ); - if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) )) - { - $this->_MBPop (); - return false; - } - - $this->_reqs = array (); - - ////////////////// - // parse response - ////////////////// - - $p = 0; // current position - $max = strlen($response); // max position for checks, to protect against broken responses - - $results = array (); - for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) - { - $results[] = array(); - $result =& $results[$ires]; - - $result["error"] = ""; - $result["warning"] = ""; - - // extract status - list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $result["status"] = $status; - if ( $status!=SEARCHD_OK ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $message = substr ( $response, $p, $len ); $p += $len; - - if ( $status==SEARCHD_WARNING ) - { - $result["warning"] = $message; - } else - { - $result["error"] = $message; - continue; - } - } - - // read schema - $fields = array (); - $attrs = array (); - - list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - while ( $nfields-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $fields[] = substr ( $response, $p, $len ); $p += $len; - } - $result["fields"] = $fields; - - list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - while ( $nattrs-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attr = substr ( $response, $p, $len ); $p += $len; - list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attrs[$attr] = $type; - } - $result["attrs"] = $attrs; - - // read match count - list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - - // read matches - $idx = -1; - while ( $count-->0 && $p<$max ) - { - // index into result array - $idx++; - - // parse document id and weight - if ( $id64 ) - { - $doc = sphUnpack64 ( substr ( $response, $p, 8 ) ); $p += 8; - list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - } else - { - list ( $doc, $weight ) = array_values ( unpack ( "N*N*", - substr ( $response, $p, 8 ) ) ); - $p += 8; - - if ( PHP_INT_SIZE>=8 ) - { - // x64 route, workaround broken unpack() in 5.2.2+ - if ( $doc<0 ) $doc += (1<<32); - } else - { - // x32 route, workaround php signed/unsigned braindamage - $doc = sprintf ( "%u", $doc ); - } - } - $weight = sprintf ( "%u", $weight ); - - // create match entry - if ( $this->_arrayresult ) - $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); - else - $result["matches"][$doc]["weight"] = $weight; - - // parse and create attributes - $attrvals = array (); - foreach ( $attrs as $attr=>$type ) - { - // handle floats - if ( $type==SPH_ATTR_FLOAT ) - { - list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); - $attrvals[$attr] = $fval; - continue; - } - - // handle everything else as unsigned ints - list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - if ( $type & SPH_ATTR_MULTI ) - { - $attrvals[$attr] = array (); - $nvalues = $val; - while ( $nvalues-->0 && $p<$max ) - { - list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $attrvals[$attr][] = sprintf ( "%u", $val ); - } - } else - { - $attrvals[$attr] = sprintf ( "%u", $val ); - } - } - - if ( $this->_arrayresult ) - $result["matches"][$idx]["attrs"] = $attrvals; - else - $result["matches"][$doc]["attrs"] = $attrvals; - } - - list ( $total, $total_found, $msecs, $words ) = - array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); - $result["total"] = sprintf ( "%u", $total ); - $result["total_found"] = sprintf ( "%u", $total_found ); - $result["time"] = sprintf ( "%.3f", $msecs/1000 ); - $p += 16; - - while ( $words-->0 && $p<$max ) - { - list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; - $word = substr ( $response, $p, $len ); $p += $len; - list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; - $result["words"][$word] = array ( - "docs"=>sprintf ( "%u", $docs ), - "hits"=>sprintf ( "%u", $hits ) ); - } - } - - $this->_MBPop (); - return $results; - } - - ///////////////////////////////////////////////////////////////////////////// - // excerpts generation - ///////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, and generate exceprts (snippets) - /// of given documents for given query. returns false on failure, - /// an array of snippets on success - function BuildExcerpts ( $docs, $index, $words, $opts=array() ) - { - assert ( is_array($docs) ); - assert ( is_string($index) ); - assert ( is_string($words) ); - assert ( is_array($opts) ); - - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop(); - return false; - } - - ///////////////// - // fixup options - ///////////////// - - if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; - if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; - if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; - if ( !isset($opts["limit"]) ) $opts["limit"] = 256; - if ( !isset($opts["around"]) ) $opts["around"] = 5; - if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; - if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; - if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; - if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; - - ///////////////// - // build request - ///////////////// - - // v.1.0 req - $flags = 1; // remove spaces - if ( $opts["exact_phrase"] ) $flags |= 2; - if ( $opts["single_passage"] ) $flags |= 4; - if ( $opts["use_boundaries"] ) $flags |= 8; - if ( $opts["weight_order"] ) $flags |= 16; - $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags - $req .= pack ( "N", strlen($index) ) . $index; // req index - $req .= pack ( "N", strlen($words) ) . $words; // req words - - // options - $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; - $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; - $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; - $req .= pack ( "N", (int)$opts["limit"] ); - $req .= pack ( "N", (int)$opts["around"] ); - - // documents - $req .= pack ( "N", count($docs) ); - foreach ( $docs as $doc ) - { - assert ( is_string($doc) ); - $req .= pack ( "N", strlen($doc) ) . $doc; - } - - //////////////////////////// - // send query, get response - //////////////////////////// - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header - $wrote = fwrite ( $fp, $req, $len+8 ); - if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) )) - { - $this->_MBPop (); - return false; - } - - ////////////////// - // parse response - ////////////////// - - $pos = 0; - $res = array (); - $rlen = strlen($response); - for ( $i=0; $i $rlen ) - { - $this->_error = "incomplete reply"; - $this->_MBPop (); - return false; - } - $res[] = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - } - - $this->_MBPop (); - return $res; - } - - - ///////////////////////////////////////////////////////////////////////////// - // keyword generation - ///////////////////////////////////////////////////////////////////////////// - - /// connect to searchd server, and generate keyword list for a given query - /// returns false on failure, - /// an array of words on success - function BuildKeywords ( $query, $index, $hits ) - { - assert ( is_string($query) ); - assert ( is_string($index) ); - assert ( is_bool($hits) ); - - $this->_MBPush (); - - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop(); - return false; - } - - ///////////////// - // build request - ///////////////// - - // v.1.0 req - $req = pack ( "N", strlen($query) ) . $query; // req query - $req .= pack ( "N", strlen($index) ) . $index; // req index - $req .= pack ( "N", (int)$hits ); - - //////////////////////////// - // send query, get response - //////////////////////////// - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header - $wrote = fwrite ( $fp, $req, $len+8 ); - if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) )) - { - $this->_MBPop (); - return false; - } - - ////////////////// - // parse response - ////////////////// - - $pos = 0; - $res = array (); - $rlen = strlen($response); - list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); - $pos += 4; - for ( $i=0; $i<$nwords; $i++ ) - { - list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; - $tokenized = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - - list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; - $normalized = $len ? substr ( $response, $pos, $len ) : ""; - $pos += $len; - - $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); - - if ( $hits ) - { - list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); - $pos += 8; - $res [$i]["docs"] = $ndocs; - $res [$i]["hits"] = $nhits; - } - - if ( $pos > $rlen ) - { - $this->_error = "incomplete reply"; - $this->_MBPop (); - return false; - } - } - - $this->_MBPop (); - return $res; - } - - function EscapeString ( $string ) - { - $from = array ( '(',')','|','-','!','@','~','"','&', '/' ); - $to = array ( '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/' ); - - return str_replace ( $from, $to, $string ); - } - - ///////////////////////////////////////////////////////////////////////////// - // attribute updates - ///////////////////////////////////////////////////////////////////////////// - - /// update given attribute values on given documents in given indexes - /// returns amount of updated documents (0 or more) on success, or -1 on failure - function UpdateAttributes ( $index, $attrs, $values ) - { - // verify everything - assert ( is_string($index) ); - - assert ( is_array($attrs) ); - foreach ( $attrs as $attr ) - assert ( is_string($attr) ); - - assert ( is_array($values) ); - foreach ( $values as $id=>$entry ) - { - assert ( is_numeric($id) ); - assert ( is_array($entry) ); - assert ( count($entry)==count($attrs) ); - foreach ( $entry as $v ) - assert ( is_int($v) ); - } - - // build request - $req = pack ( "N", strlen($index) ) . $index; - - $req .= pack ( "N", count($attrs) ); - foreach ( $attrs as $attr ) - $req .= pack ( "N", strlen($attr) ) . $attr; - - $req .= pack ( "N", count($values) ); - foreach ( $values as $id=>$entry ) - { - $req .= sphPack64 ( $id ); - foreach ( $entry as $v ) - $req .= pack ( "N", $v ); - } - - // mbstring workaround - $this->_MBPush (); - - // connect, send query, get response - if (!( $fp = $this->_Connect() )) - { - $this->_MBPop (); - return -1; - } - - $len = strlen($req); - $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header - fwrite ( $fp, $req, $len+8 ); - - if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) - { - $this->_MBPop (); - return -1; - } - - // parse response - list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); - $this->_MBPop (); - return $updated; - } -} - -// -// $Id: sphinxapi.php 1418 2008-08-28 15:30:05Z shodan $ -// \ No newline at end of file +=8 ) + { + $v = (int)$v; + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", $v < 0 ? -1 : 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + if ( bccomp ( $v, 0 ) == -1 ) + $v = bcadd ( "18446744073709551616", $v ); + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = abs((float)substr($v, $p)); + $hi = abs((float)substr($v, 0, $p)); + + $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 + $q = floor($m/4294967296.0); + $l = $m - ($q*4294967296.0); + $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 + + if ( $v<0 ) + { + if ( $l==0 ) + $h = 4294967296.0 - $h; + else + { + $h = 4294967295.0 - $h; + $l = 4294967296.0 - $l; + } + } + return pack ( "NN", $h, $l ); +} + +/// pack 64-bit unsigned +function sphPackU64 ( $v ) +{ + assert ( is_numeric($v) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + assert ( $v>=0 ); + + // x64, int + if ( is_int($v) ) + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + + // x64, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, 4294967296, 0 ); + $l = bcmod ( $v, 4294967296 ); + return pack ( "NN", $h, $l ); + } + + // x64, no-bcmath + $p = max ( 0, strlen($v) - 13 ); + $lo = (int)substr ( $v, $p ); + $hi = (int)substr ( $v, 0, $p ); + + $m = $lo + $hi*1316134912; + $l = $m % 4294967296; + $h = $hi*2328 + (int)($m/4294967296); + + return pack ( "NN", $h, $l ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = (float)substr($v, $p); + $hi = (float)substr($v, 0, $p); + + $m = $lo + $hi*1316134912.0; + $q = floor($m / 4294967296.0); + $l = $m - ($q * 4294967296.0); + $h = $hi*2328.0 + $q; + + return pack ( "NN", $h, $l ); +} + +// unpack 64-bit unsigned +function sphUnpackU64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + // x64, int + if ( $hi<=2147483647 ) + return ($hi<<32) + $lo; + + // x64, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x64, no-bcmath + $C = 100000; + $h = ((int)($hi / $C) << 32) + (int)($lo / $C); + $l = (($hi % $C) << 32) + ($lo % $C); + if ( $l>$C ) + { + $h += (int)($l / $C); + $l = $l % $C; + } + + if ( $h==0 ) + return $l; + return sprintf ( "%d%05d", $h, $l ); + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return sprintf( "%.0f", (float)$l ); + return $h . $l; +} + +// unpack 64-bit signed +function sphUnpackI64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + return ($hi<<32) + $lo; + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + // x32, int + elseif ( $hi==-1 ) + { + if ( $lo<0 ) + return $lo; + return sprintf ( "%.0f", $lo - 4294967296.0 ); + } + + $neg = ""; + $c = 0; + if ( $hi<0 ) + { + $hi = ~$hi; + $lo = ~$lo; + $c = 1; + $neg = "-"; + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0 + $c; + $h = $q*4294967296.0 + $r*429.0 + $mq; + if ( $l==10000000 ) + { + $l = 0; + $h += 1; + } + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return $neg . sprintf( "%.0f", (float)$l ); + return $neg . $h . $l; +} + + +function sphFixUint ( $value ) +{ + if ( PHP_INT_SIZE>=8 ) + { + // x64 route, workaround broken unpack() in 5.2.2+ + if ( $value<0 ) $value += (1<<32); + return $value; + } + else + { + // x32 route, workaround php signed/unsigned braindamage + return sprintf ( "%u", $value ); + } +} + +function SetBit ( $flag, $bit, $on ) +{ + if ( $on ) + { + $flag += ( 1<<$bit ); + } else + { + $reset = 255 ^ ( 1<<$bit ); + $flag = $flag & $reset; + } + return $flag; +} + + +/// sphinx searchd client class +class SphinxClient +{ + var $_host; ///< searchd host (default is "localhost") + var $_port; ///< searchd port (default is 9312) + var $_offset; ///< how many records to seek from result-set start (default is 0) + var $_limit; ///< how many records to return from result-set starting at offset (default is 20) + var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) + var $_weights; ///< per-field weights (default is 1 for all fields) + var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) + var $_sortby; ///< attribute to sort by (defualt is "") + var $_min_id; ///< min ID to match (default is 0, which means no limit) + var $_max_id; ///< max ID to match (default is 0, which means no limit) + var $_filters; ///< search filters + var $_groupby; ///< group-by attribute name + var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) + var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) + var $_groupdistinct;///< group-by count-distinct attribute + var $_maxmatches; ///< max matches to retrieve + var $_cutoff; ///< cutoff to stop searching at (default is 0) + var $_retrycount; ///< distributed retries count + var $_retrydelay; ///< distributed retries delay + var $_anchor; ///< geographical anchor point + var $_indexweights; ///< per-index weights + var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) + var $_rankexpr; ///< ranking mode expression (for SPH_RANK_EXPR) + var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) + var $_fieldweights; ///< per-field-name weights + var $_overrides; ///< per-query attribute values overrides + var $_select; ///< select-list (attributes or expressions, with optional aliases) + var $_query_flags; ///< per-query various flags + var $_predictedtime; ///< per-query max_predicted_time + var $_outerorderby; ///< outer match sort by + var $_outeroffset; ///< outer offset + var $_outerlimit; ///< outer limit + var $_hasouter; + + var $_error; ///< last error message + var $_warning; ///< last warning message + var $_connerror; ///< connection error vs remote error flag + + var $_reqs; ///< requests array for multi-query + var $_mbenc; ///< stored mbstring encoding + var $_arrayresult; ///< whether $result["matches"] should be a hash or an array + var $_timeout; ///< connect timeout + + ///////////////////////////////////////////////////////////////////////////// + // common stuff + ///////////////////////////////////////////////////////////////////////////// + + /// create a new client object and fill defaults + function SphinxClient () + { + // per-client-object settings + $this->_host = "localhost"; + $this->_port = 9312; + $this->_path = false; + $this->_socket = false; + + // per-query settings + $this->_offset = 0; + $this->_limit = 20; + $this->_mode = SPH_MATCH_ALL; + $this->_weights = array (); + $this->_sort = SPH_SORT_RELEVANCE; + $this->_sortby = ""; + $this->_min_id = 0; + $this->_max_id = 0; + $this->_filters = array (); + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + $this->_maxmatches = 1000; + $this->_cutoff = 0; + $this->_retrycount = 0; + $this->_retrydelay = 0; + $this->_anchor = array (); + $this->_indexweights= array (); + $this->_ranker = SPH_RANK_PROXIMITY_BM25; + $this->_rankexpr = ""; + $this->_maxquerytime= 0; + $this->_fieldweights= array(); + $this->_overrides = array(); + $this->_select = "*"; + $this->_query_flags = 0; + $this->_predictedtime = 0; + $this->_outerorderby = ""; + $this->_outeroffset = 0; + $this->_outerlimit = 0; + $this->_hasouter = false; + + $this->_error = ""; // per-reply fields (for single-query case) + $this->_warning = ""; + $this->_connerror = false; + + $this->_reqs = array (); // requests storage (for multi-query case) + $this->_mbenc = ""; + $this->_arrayresult = false; + $this->_timeout = 0; + } + + function __destruct() + { + if ( $this->_socket !== false ) + fclose ( $this->_socket ); + } + + /// get last error message (string) + function GetLastError () + { + return $this->_error; + } + + /// get last warning message (string) + function GetLastWarning () + { + return $this->_warning; + } + + /// get last error flag (to tell network connection errors from searchd errors or broken responses) + function IsConnectError() + { + return $this->_connerror; + } + + /// set searchd host name (string) and port (integer) + function SetServer ( $host, $port = 0 ) + { + assert ( is_string($host) ); + if ( $host[0] == '/') + { + $this->_path = 'unix://' . $host; + return; + } + if ( substr ( $host, 0, 7 )=="unix://" ) + { + $this->_path = $host; + return; + } + + $this->_host = $host; + $port = intval($port); + assert ( 0<=$port && $port<65536 ); + $this->_port = ( $port==0 ) ? 9312 : $port; + $this->_path = ''; + } + + /// set server connection timeout (0 to remove) + function SetConnectTimeout ( $timeout ) + { + assert ( is_numeric($timeout) ); + $this->_timeout = $timeout; + } + + + function _Send ( $handle, $data, $length ) + { + if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) + { + $this->_error = 'connection unexpectedly closed (timed out?)'; + $this->_connerror = true; + return false; + } + return true; + } + + ///////////////////////////////////////////////////////////////////////////// + + /// enter mbstring workaround mode + function _MBPush () + { + $this->_mbenc = ""; + if ( ini_get ( "mbstring.func_overload" ) & 2 ) + { + $this->_mbenc = mb_internal_encoding(); + mb_internal_encoding ( "latin1" ); + } + } + + /// leave mbstring workaround mode + function _MBPop () + { + if ( $this->_mbenc ) + mb_internal_encoding ( $this->_mbenc ); + } + + /// connect to searchd server + function _Connect () + { + if ( $this->_socket!==false ) + { + // we are in persistent connection mode, so we have a socket + // however, need to check whether it's still alive + if ( !@feof ( $this->_socket ) ) + return $this->_socket; + + // force reopen + $this->_socket = false; + } + + $errno = 0; + $errstr = ""; + $this->_connerror = false; + + if ( $this->_path ) + { + $host = $this->_path; + $port = 0; + } + else + { + $host = $this->_host; + $port = $this->_port; + } + + if ( $this->_timeout<=0 ) + $fp = @fsockopen ( $host, $port, $errno, $errstr ); + else + $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); + + if ( !$fp ) + { + if ( $this->_path ) + $location = $this->_path; + else + $location = "{$this->_host}:{$this->_port}"; + + $errstr = trim ( $errstr ); + $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; + $this->_connerror = true; + return false; + } + + // send my version + // this is a subtle part. we must do it before (!) reading back from searchd. + // because otherwise under some conditions (reported on FreeBSD for instance) + // TCP stack could throttle write-write-read pattern because of Nagle. + if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) + { + fclose ( $fp ); + $this->_error = "failed to send client protocol version"; + return false; + } + + // check version + list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); + $v = (int)$v; + if ( $v<1 ) + { + fclose ( $fp ); + $this->_error = "expected searchd protocol version 1+, got version '$v'"; + return false; + } + + return $fp; + } + + /// get and check response packet from searchd server + function _GetResponse ( $fp, $client_ver ) + { + $response = ""; + $len = 0; + + $header = fread ( $fp, 8 ); + if ( strlen($header)==8 ) + { + list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); + $left = $len; + while ( $left>0 && !feof($fp) ) + { + $chunk = fread ( $fp, min ( 8192, $left ) ); + if ( $chunk ) + { + $response .= $chunk; + $left -= strlen($chunk); + } + } + } + if ( $this->_socket === false ) + fclose ( $fp ); + + // check response + $read = strlen ( $response ); + if ( !$response || $read!=$len ) + { + $this->_error = $len + ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" + : "received zero-sized searchd response"; + return false; + } + + // check status + if ( $status==SEARCHD_WARNING ) + { + list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_warning = substr ( $response, 4, $wlen ); + return substr ( $response, 4+$wlen ); + } + if ( $status==SEARCHD_ERROR ) + { + $this->_error = "searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status==SEARCHD_RETRY ) + { + $this->_error = "temporary searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status!=SEARCHD_OK ) + { + $this->_error = "unknown status code '$status'"; + return false; + } + + // check version + if ( $ver<$client_ver ) + { + $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", + $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); + } + + return $response; + } + + ///////////////////////////////////////////////////////////////////////////// + // searching + ///////////////////////////////////////////////////////////////////////////// + + /// set offset and count into result set, + /// and optionally set max-matches and cutoff limits + function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) + { + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + assert ( $max>=0 ); + $this->_offset = $offset; + $this->_limit = $limit; + if ( $max>0 ) + $this->_maxmatches = $max; + if ( $cutoff>0 ) + $this->_cutoff = $cutoff; + } + + /// set maximum query time, in milliseconds, per-index + /// integer, 0 means "do not limit" + function SetMaxQueryTime ( $max ) + { + assert ( is_int($max) ); + assert ( $max>=0 ); + $this->_maxquerytime = $max; + } + + /// set matching mode + function SetMatchMode ( $mode ) + { + assert ( $mode==SPH_MATCH_ALL + || $mode==SPH_MATCH_ANY + || $mode==SPH_MATCH_PHRASE + || $mode==SPH_MATCH_BOOLEAN + || $mode==SPH_MATCH_EXTENDED + || $mode==SPH_MATCH_FULLSCAN + || $mode==SPH_MATCH_EXTENDED2 ); + $this->_mode = $mode; + } + + /// set ranking mode + function SetRankingMode ( $ranker, $rankexpr="" ) + { + assert ( $ranker===0 || $ranker>=1 && $ranker_ranker = $ranker; + $this->_rankexpr = $rankexpr; + } + + /// set matches sorting mode + function SetSortMode ( $mode, $sortby="" ) + { + assert ( + $mode==SPH_SORT_RELEVANCE || + $mode==SPH_SORT_ATTR_DESC || + $mode==SPH_SORT_ATTR_ASC || + $mode==SPH_SORT_TIME_SEGMENTS || + $mode==SPH_SORT_EXTENDED || + $mode==SPH_SORT_EXPR ); + assert ( is_string($sortby) ); + assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); + + $this->_sort = $mode; + $this->_sortby = $sortby; + } + + /// bind per-field weights by order + /// DEPRECATED; use SetFieldWeights() instead + function SetWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $weight ) + assert ( is_int($weight) ); + + $this->_weights = $weights; + } + + /// bind per-field weights by name + function SetFieldWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $name=>$weight ) + { + assert ( is_string($name) ); + assert ( is_int($weight) ); + } + $this->_fieldweights = $weights; + } + + /// bind per-index weights by name + function SetIndexWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $index=>$weight ) + { + assert ( is_string($index) ); + assert ( is_int($weight) ); + } + $this->_indexweights = $weights; + } + + /// set IDs range to match + /// only match records if document ID is beetwen $min and $max (inclusive) + function SetIDRange ( $min, $max ) + { + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + $this->_min_id = $min; + $this->_max_id = $max; + } + + /// set values set filter + /// only match records where $attribute value is in given set + function SetFilter ( $attribute, $values, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_array($values) ); + assert ( count($values) ); + + if ( is_array($values) && count($values) ) + { + foreach ( $values as $value ) + assert ( is_numeric($value) ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); + } + } + + /// set range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// set float range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_float($min) ); + assert ( is_float($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// setup anchor point for geosphere distance calculations + /// required to use @geodist in filters and sorting + /// latitude and longitude must be in radians + function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) + { + assert ( is_string($attrlat) ); + assert ( is_string($attrlong) ); + assert ( is_float($lat) ); + assert ( is_float($long) ); + + $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); + } + + /// set grouping attribute and function + function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) + { + assert ( is_string($attribute) ); + assert ( is_string($groupsort) ); + assert ( $func==SPH_GROUPBY_DAY + || $func==SPH_GROUPBY_WEEK + || $func==SPH_GROUPBY_MONTH + || $func==SPH_GROUPBY_YEAR + || $func==SPH_GROUPBY_ATTR + || $func==SPH_GROUPBY_ATTRPAIR ); + + $this->_groupby = $attribute; + $this->_groupfunc = $func; + $this->_groupsort = $groupsort; + } + + /// set count-distinct attribute for group-by queries + function SetGroupDistinct ( $attribute ) + { + assert ( is_string($attribute) ); + $this->_groupdistinct = $attribute; + } + + /// set distributed retries count and delay + function SetRetries ( $count, $delay=0 ) + { + assert ( is_int($count) && $count>=0 ); + assert ( is_int($delay) && $delay>=0 ); + $this->_retrycount = $count; + $this->_retrydelay = $delay; + } + + /// set result set format (hash or array; hash by default) + /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs + function SetArrayResult ( $arrayresult ) + { + assert ( is_bool($arrayresult) ); + $this->_arrayresult = $arrayresult; + } + + /// set attribute values override + /// there can be only one override per attribute + /// $values must be a hash that maps document IDs to attribute values + function SetOverride ( $attrname, $attrtype, $values ) + { + assert ( is_string ( $attrname ) ); + assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); + assert ( is_array ( $values ) ); + + $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); + } + + /// set select-list (attributes or expressions), SQL-like syntax + function SetSelect ( $select ) + { + assert ( is_string ( $select ) ); + $this->_select = $select; + } + + function SetQueryFlag ( $flag_name, $flag_value ) + { + $known_names = array ( "reverse_scan", "sort_method", "max_predicted_time", "boolean_simplify", "idf" ); + $flags = array ( + "reverse_scan" => array ( 0, 1 ), + "sort_method" => array ( "pq", "kbuffer" ), + "max_predicted_time" => array ( 0 ), + "boolean_simplify" => array ( true, false ), + "idf" => array ("normalized", "plain" ) + ); + + assert ( isset ( $flag_name, $known_names ) ); + assert ( in_array( $flag_value, $flags[$flag_name], true ) || ( $flag_name=="max_predicted_time" && is_int ( $flag_value ) && $flag_value>=0 ) ); + + if ( $flag_name=="reverse_scan" ) $this->_query_flags = SetBit ( $this->_query_flags, 0, $flag_value==1 ); + if ( $flag_name=="sort_method" ) $this->_query_flags = SetBit ( $this->_query_flags, 1, $flag_value=="kbuffer" ); + if ( $flag_name=="max_predicted_time" ) + { + $this->_query_flags = SetBit ( $this->_query_flags, 2, $flag_value>0 ); + $this->_predictedtime = (int)$flag_value; + } + if ( $flag_name=="boolean_simplify" ) $this->_query_flags = SetBit ( $this->_query_flags, 3, $flag_value ); + if ( $flag_name=="idf" ) $this->_query_flags = SetBit ( $this->_query_flags, 4, $flag_value=="plain" ); + } + + /// set outer order by parameters + function SetOuterSelect ( $orderby, $offset, $limit ) + { + assert ( is_string($orderby) ); + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + + $this->_outerorderby = $orderby; + $this->_outeroffset = $offset; + $this->_outerlimit = $limit; + $this->_hasouter = true; + } + + + ////////////////////////////////////////////////////////////////////////////// + + /// clear all filters (for multi-queries) + function ResetFilters () + { + $this->_filters = array(); + $this->_anchor = array(); + } + + /// clear groupby settings (for multi-queries) + function ResetGroupBy () + { + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + } + + /// clear all attribute value overrides (for multi-queries) + function ResetOverrides () + { + $this->_overrides = array (); + } + + function ResetQueryFlag () + { + $this->_query_flags = 0; + $this->_predictedtime = 0; + } + + function ResetOuterSelect () + { + $this->_outerorderby = ''; + $this->_outeroffset = 0; + $this->_outerlimit = 0; + $this->_hasouter = false; + } + + ////////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, run given search query through given indexes, + /// and return the search results + function Query ( $query, $index="*", $comment="" ) + { + assert ( empty($this->_reqs) ); + + $this->AddQuery ( $query, $index, $comment ); + $results = $this->RunQueries (); + $this->_reqs = array (); // just in case it failed too early + + if ( !is_array($results) ) + return false; // probably network error; error message should be already filled + + $this->_error = $results[0]["error"]; + $this->_warning = $results[0]["warning"]; + if ( $results[0]["status"]==SEARCHD_ERROR ) + return false; + else + return $results[0]; + } + + /// helper to pack floats in network byte order + function _PackFloat ( $f ) + { + $t1 = pack ( "f", $f ); // machine order + list(,$t2) = unpack ( "L*", $t1 ); // int in machine order + return pack ( "N", $t2 ); + } + + /// add query to multi-query batch + /// returns index into results array from RunQueries() call + function AddQuery ( $query, $index="*", $comment="" ) + { + // mbstring workaround + $this->_MBPush (); + + // build request + $req = pack ( "NNNNN", $this->_query_flags, $this->_offset, $this->_limit, $this->_mode, $this->_ranker ); + if ( $this->_ranker==SPH_RANK_EXPR ) + $req .= pack ( "N", strlen($this->_rankexpr) ) . $this->_rankexpr; + $req .= pack ( "N", $this->_sort ); // (deprecated) sort mode + $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; + $req .= pack ( "N", strlen($query) ) . $query; // query itself + $req .= pack ( "N", count($this->_weights) ); // weights + foreach ( $this->_weights as $weight ) + $req .= pack ( "N", (int)$weight ); + $req .= pack ( "N", strlen($index) ) . $index; // indexes + $req .= pack ( "N", 1 ); // id64 range marker + $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range + + // filters + $req .= pack ( "N", count($this->_filters) ); + foreach ( $this->_filters as $filter ) + { + $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; + $req .= pack ( "N", $filter["type"] ); + switch ( $filter["type"] ) + { + case SPH_FILTER_VALUES: + $req .= pack ( "N", count($filter["values"]) ); + foreach ( $filter["values"] as $value ) + $req .= sphPackI64 ( $value ); + break; + + case SPH_FILTER_RANGE: + $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); + break; + + case SPH_FILTER_FLOATRANGE: + $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); + break; + + default: + assert ( 0 && "internal error: unhandled filter type" ); + } + $req .= pack ( "N", $filter["exclude"] ); + } + + // group-by clause, max-matches count, group-sort clause, cutoff count + $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; + $req .= pack ( "N", $this->_maxmatches ); + $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; + $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); + $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; + + // anchor point + if ( empty($this->_anchor) ) + { + $req .= pack ( "N", 0 ); + } else + { + $a =& $this->_anchor; + $req .= pack ( "N", 1 ); + $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; + $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; + $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); + } + + // per-index weights + $req .= pack ( "N", count($this->_indexweights) ); + foreach ( $this->_indexweights as $idx=>$weight ) + $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); + + // max query time + $req .= pack ( "N", $this->_maxquerytime ); + + // per-field weights + $req .= pack ( "N", count($this->_fieldweights) ); + foreach ( $this->_fieldweights as $field=>$weight ) + $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); + + // comment + $req .= pack ( "N", strlen($comment) ) . $comment; + + // attribute overrides + $req .= pack ( "N", count($this->_overrides) ); + foreach ( $this->_overrides as $key => $entry ) + { + $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; + $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); + foreach ( $entry["values"] as $id=>$val ) + { + assert ( is_numeric($id) ); + assert ( is_numeric($val) ); + + $req .= sphPackU64 ( $id ); + switch ( $entry["type"] ) + { + case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; + case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; + default: $req .= pack ( "N", $val ); break; + } + } + } + + // select-list + $req .= pack ( "N", strlen($this->_select) ) . $this->_select; + + // max_predicted_time + if ( $this->_predictedtime>0 ) + $req .= pack ( "N", (int)$this->_predictedtime ); + + $req .= pack ( "N", strlen($this->_outerorderby) ) . $this->_outerorderby; + $req .= pack ( "NN", $this->_outeroffset, $this->_outerlimit ); + if ( $this->_hasouter ) + $req .= pack ( "N", 1 ); + else + $req .= pack ( "N", 0 ); + + // mbstring workaround + $this->_MBPop (); + + // store request to requests array + $this->_reqs[] = $req; + return count($this->_reqs)-1; + } + + /// connect to searchd, run queries batch, and return an array of result sets + function RunQueries () + { + if ( empty($this->_reqs) ) + { + $this->_error = "no queries defined, issue AddQuery() first"; + return false; + } + + // mbstring workaround + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return false; + } + + // send query, get response + $nreqs = count($this->_reqs); + $req = join ( "", $this->_reqs ); + $len = 8+strlen($req); + $req = pack ( "nnNNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, 0, $nreqs ) . $req; // add header + + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) + { + $this->_MBPop (); + return false; + } + + // query sent ok; we can reset reqs now + $this->_reqs = array (); + + // parse and return response + return $this->_ParseSearchResponse ( $response, $nreqs ); + } + + /// parse and return search query (or queries) response + function _ParseSearchResponse ( $response, $nreqs ) + { + $p = 0; // current position + $max = strlen($response); // max position for checks, to protect against broken responses + + $results = array (); + for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) + { + $results[] = array(); + $result =& $results[$ires]; + + $result["error"] = ""; + $result["warning"] = ""; + + // extract status + list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $result["status"] = $status; + if ( $status!=SEARCHD_OK ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $message = substr ( $response, $p, $len ); $p += $len; + + if ( $status==SEARCHD_WARNING ) + { + $result["warning"] = $message; + } else + { + $result["error"] = $message; + continue; + } + } + + // read schema + $fields = array (); + $attrs = array (); + + list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nfields-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $fields[] = substr ( $response, $p, $len ); $p += $len; + } + $result["fields"] = $fields; + + list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nattrs-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attr = substr ( $response, $p, $len ); $p += $len; + list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrs[$attr] = $type; + } + $result["attrs"] = $attrs; + + // read match count + list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + + // read matches + $idx = -1; + while ( $count-->0 && $p<$max ) + { + // index into result array + $idx++; + + // parse document id and weight + if ( $id64 ) + { + $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; + list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + } + else + { + list ( $doc, $weight ) = array_values ( unpack ( "N*N*", + substr ( $response, $p, 8 ) ) ); + $p += 8; + $doc = sphFixUint($doc); + } + $weight = sprintf ( "%u", $weight ); + + // create match entry + if ( $this->_arrayresult ) + $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); + else + $result["matches"][$doc]["weight"] = $weight; + + // parse and create attributes + $attrvals = array (); + foreach ( $attrs as $attr=>$type ) + { + // handle 64bit ints + if ( $type==SPH_ATTR_BIGINT ) + { + $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + continue; + } + + // handle floats + if ( $type==SPH_ATTR_FLOAT ) + { + list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); + $attrvals[$attr] = $fval; + continue; + } + + // handle everything else as unsigned ints + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + if ( $type==SPH_ATTR_MULTI ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues-->0 && $p<$max ) + { + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrvals[$attr][] = sphFixUint($val); + } + } else if ( $type==SPH_ATTR_MULTI64 ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues>0 && $p<$max ) + { + $attrvals[$attr][] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + $nvalues -= 2; + } + } else if ( $type==SPH_ATTR_STRING ) + { + $attrvals[$attr] = substr ( $response, $p, $val ); + $p += $val; + } else if ( $type==SPH_ATTR_FACTORS ) + { + $attrvals[$attr] = substr ( $response, $p, $val-4 ); + $p += $val-4; + } else + { + $attrvals[$attr] = sphFixUint($val); + } + } + + if ( $this->_arrayresult ) + $result["matches"][$idx]["attrs"] = $attrvals; + else + $result["matches"][$doc]["attrs"] = $attrvals; + } + + list ( $total, $total_found, $msecs, $words ) = + array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); + $result["total"] = sprintf ( "%u", $total ); + $result["total_found"] = sprintf ( "%u", $total_found ); + $result["time"] = sprintf ( "%.3f", $msecs/1000 ); + $p += 16; + + while ( $words-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $word = substr ( $response, $p, $len ); $p += $len; + list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + $result["words"][$word] = array ( + "docs"=>sprintf ( "%u", $docs ), + "hits"=>sprintf ( "%u", $hits ) ); + } + } + + $this->_MBPop (); + return $results; + } + + ///////////////////////////////////////////////////////////////////////////// + // excerpts generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate exceprts (snippets) + /// of given documents for given query. returns false on failure, + /// an array of snippets on success + function BuildExcerpts ( $docs, $index, $words, $opts=array() ) + { + assert ( is_array($docs) ); + assert ( is_string($index) ); + assert ( is_string($words) ); + assert ( is_array($opts) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // fixup options + ///////////////// + + if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; + if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; + if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; + if ( !isset($opts["limit"]) ) $opts["limit"] = 256; + if ( !isset($opts["limit_passages"]) ) $opts["limit_passages"] = 0; + if ( !isset($opts["limit_words"]) ) $opts["limit_words"] = 0; + if ( !isset($opts["around"]) ) $opts["around"] = 5; + if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; + if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; + if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; + if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; + if ( !isset($opts["query_mode"]) ) $opts["query_mode"] = false; + if ( !isset($opts["force_all_words"]) ) $opts["force_all_words"] = false; + if ( !isset($opts["start_passage_id"]) ) $opts["start_passage_id"] = 1; + if ( !isset($opts["load_files"]) ) $opts["load_files"] = false; + if ( !isset($opts["html_strip_mode"]) ) $opts["html_strip_mode"] = "index"; + if ( !isset($opts["allow_empty"]) ) $opts["allow_empty"] = false; + if ( !isset($opts["passage_boundary"]) ) $opts["passage_boundary"] = "none"; + if ( !isset($opts["emit_zones"]) ) $opts["emit_zones"] = false; + if ( !isset($opts["load_files_scattered"]) ) $opts["load_files_scattered"] = false; + + + ///////////////// + // build request + ///////////////// + + // v.1.2 req + $flags = 1; // remove spaces + if ( $opts["exact_phrase"] ) $flags |= 2; + if ( $opts["single_passage"] ) $flags |= 4; + if ( $opts["use_boundaries"] ) $flags |= 8; + if ( $opts["weight_order"] ) $flags |= 16; + if ( $opts["query_mode"] ) $flags |= 32; + if ( $opts["force_all_words"] ) $flags |= 64; + if ( $opts["load_files"] ) $flags |= 128; + if ( $opts["allow_empty"] ) $flags |= 256; + if ( $opts["emit_zones"] ) $flags |= 512; + if ( $opts["load_files_scattered"] ) $flags |= 1024; + $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", strlen($words) ) . $words; // req words + + // options + $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; + $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; + $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; + $req .= pack ( "NN", (int)$opts["limit"], (int)$opts["around"] ); + $req .= pack ( "NNN", (int)$opts["limit_passages"], (int)$opts["limit_words"], (int)$opts["start_passage_id"] ); // v.1.2 + $req .= pack ( "N", strlen($opts["html_strip_mode"]) ) . $opts["html_strip_mode"]; + $req .= pack ( "N", strlen($opts["passage_boundary"]) ) . $opts["passage_boundary"]; + + // documents + $req .= pack ( "N", count($docs) ); + foreach ( $docs as $doc ) + { + assert ( is_string($doc) ); + $req .= pack ( "N", strlen($doc) ) . $doc; + } + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + for ( $i=0; $i $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + $res[] = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + } + + $this->_MBPop (); + return $res; + } + + + ///////////////////////////////////////////////////////////////////////////// + // keyword generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate keyword list for a given query + /// returns false on failure, + /// an array of words on success + function BuildKeywords ( $query, $index, $hits ) + { + assert ( is_string($query) ); + assert ( is_string($index) ); + assert ( is_bool($hits) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $req = pack ( "N", strlen($query) ) . $query; // req query + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", (int)$hits ); + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + for ( $i=0; $i<$nwords; $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $tokenized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $normalized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); + + if ( $hits ) + { + list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); + $pos += 8; + $res [$i]["docs"] = $ndocs; + $res [$i]["hits"] = $nhits; + } + + if ( $pos > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + } + + $this->_MBPop (); + return $res; + } + + function EscapeString ( $string ) + { + $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=' ); + $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=' ); + + return str_replace ( $from, $to, $string ); + } + + ///////////////////////////////////////////////////////////////////////////// + // attribute updates + ///////////////////////////////////////////////////////////////////////////// + + /// batch update given attributes in given rows in given indexes + /// returns amount of updated documents (0 or more) on success, or -1 on failure + function UpdateAttributes ( $index, $attrs, $values, $mva=false, $ignorenonexistent=false ) + { + // verify everything + assert ( is_string($index) ); + assert ( is_bool($mva) ); + assert ( is_bool($ignorenonexistent) ); + + assert ( is_array($attrs) ); + foreach ( $attrs as $attr ) + assert ( is_string($attr) ); + + assert ( is_array($values) ); + foreach ( $values as $id=>$entry ) + { + assert ( is_numeric($id) ); + assert ( is_array($entry) ); + assert ( count($entry)==count($attrs) ); + foreach ( $entry as $v ) + { + if ( $mva ) + { + assert ( is_array($v) ); + foreach ( $v as $vv ) + assert ( is_int($vv) ); + } else + assert ( is_int($v) ); + } + } + + // build request + $this->_MBPush (); + $req = pack ( "N", strlen($index) ) . $index; + + $req .= pack ( "N", count($attrs) ); + $req .= pack ( "N", $ignorenonexistent ? 1 : 0 ); + foreach ( $attrs as $attr ) + { + $req .= pack ( "N", strlen($attr) ) . $attr; + $req .= pack ( "N", $mva ? 1 : 0 ); + } + + $req .= pack ( "N", count($values) ); + foreach ( $values as $id=>$entry ) + { + $req .= sphPackU64 ( $id ); + foreach ( $entry as $v ) + { + $req .= pack ( "N", $mva ? count($v) : $v ); + if ( $mva ) + foreach ( $v as $vv ) + $req .= pack ( "N", $vv ); + } + } + + // connect, send query, get response + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return -1; + } + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header + if ( !$this->_Send ( $fp, $req, $len+8 ) ) + { + $this->_MBPop (); + return -1; + } + + if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) + { + $this->_MBPop (); + return -1; + } + + // parse response + list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_MBPop (); + return $updated; + } + + ///////////////////////////////////////////////////////////////////////////// + // persistent connections + ///////////////////////////////////////////////////////////////////////////// + + function Open() + { + if ( $this->_socket !== false ) + { + $this->_error = 'already connected'; + return false; + } + if ( !$fp = $this->_Connect() ) + return false; + + // command, command version = 0, body length = 4, body = 1 + $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); + if ( !$this->_Send ( $fp, $req, 12 ) ) + return false; + + $this->_socket = $fp; + return true; + } + + function Close() + { + if ( $this->_socket === false ) + { + $this->_error = 'not connected'; + return false; + } + + fclose ( $this->_socket ); + $this->_socket = false; + + return true; + } + + ////////////////////////////////////////////////////////////////////////// + // status + ////////////////////////////////////////////////////////////////////////// + + function Status () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 + if ( !( $this->_Send ( $fp, $req, 12 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) + { + $this->_MBPop (); + return false; + } + + $res = substr ( $response, 4 ); // just ignore length, error handling, etc + $p = 0; + list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + + $res = array(); + for ( $i=0; $i<$rows; $i++ ) + for ( $j=0; $j<$cols; $j++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $res[$i][] = substr ( $response, $p, $len ); $p += $len; + } + + $this->_MBPop (); + return $res; + } + + ////////////////////////////////////////////////////////////////////////// + // flush + ////////////////////////////////////////////////////////////////////////// + + function FlushAttributes () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return -1; + } + + $req = pack ( "nnN", SEARCHD_COMMAND_FLUSHATTRS, VER_COMMAND_FLUSHATTRS, 0 ); // len=0 + if ( !( $this->_Send ( $fp, $req, 8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_FLUSHATTRS ) ) ) + { + $this->_MBPop (); + return -1; + } + + $tag = -1; + if ( strlen($response)==4 ) + list(,$tag) = unpack ( "N*", $response ); + else + $this->_error = "unexpected response length"; + + $this->_MBPop (); + return $tag; + } +} + +// +// $Id: sphinxapi.php 3802 2013-04-10 12:49:42Z tomat $ +// diff --git a/1.2/library/Vendors/sphinxapi/sphinxapi-2.1.5.php b/1.2/library/Vendors/sphinxapi/sphinxapi-2.1.5.php new file mode 100644 index 00000000..789721d7 --- /dev/null +++ b/1.2/library/Vendors/sphinxapi/sphinxapi-2.1.5.php @@ -0,0 +1,1810 @@ +=8 ) + { + $v = (int)$v; + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", $v < 0 ? -1 : 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + if ( bccomp ( $v, 0 ) == -1 ) + $v = bcadd ( "18446744073709551616", $v ); + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = abs((float)substr($v, $p)); + $hi = abs((float)substr($v, 0, $p)); + + $m = $lo + $hi*1316134912.0; // (10 ^ 13) % (1 << 32) = 1316134912 + $q = floor($m/4294967296.0); + $l = $m - ($q*4294967296.0); + $h = $hi*2328.0 + $q; // (10 ^ 13) / (1 << 32) = 2328 + + if ( $v<0 ) + { + if ( $l==0 ) + $h = 4294967296.0 - $h; + else + { + $h = 4294967295.0 - $h; + $l = 4294967296.0 - $l; + } + } + return pack ( "NN", $h, $l ); +} + +/// pack 64-bit unsigned +function sphPackU64 ( $v ) +{ + assert ( is_numeric($v) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + assert ( $v>=0 ); + + // x64, int + if ( is_int($v) ) + return pack ( "NN", $v>>32, $v&0xFFFFFFFF ); + + // x64, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, 4294967296, 0 ); + $l = bcmod ( $v, 4294967296 ); + return pack ( "NN", $h, $l ); + } + + // x64, no-bcmath + $p = max ( 0, strlen($v) - 13 ); + $lo = (int)substr ( $v, $p ); + $hi = (int)substr ( $v, 0, $p ); + + $m = $lo + $hi*1316134912; + $l = $m % 4294967296; + $h = $hi*2328 + (int)($m/4294967296); + + return pack ( "NN", $h, $l ); + } + + // x32, int + if ( is_int($v) ) + return pack ( "NN", 0, $v ); + + // x32, bcmath + if ( function_exists("bcmul") ) + { + $h = bcdiv ( $v, "4294967296", 0 ); + $l = bcmod ( $v, "4294967296" ); + return pack ( "NN", (float)$h, (float)$l ); // conversion to float is intentional; int would lose 31st bit + } + + // x32, no-bcmath + $p = max(0, strlen($v) - 13); + $lo = (float)substr($v, $p); + $hi = (float)substr($v, 0, $p); + + $m = $lo + $hi*1316134912.0; + $q = floor($m / 4294967296.0); + $l = $m - ($q * 4294967296.0); + $h = $hi*2328.0 + $q; + + return pack ( "NN", $h, $l ); +} + +// unpack 64-bit unsigned +function sphUnpackU64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + // x64, int + if ( $hi<=2147483647 ) + return ($hi<<32) + $lo; + + // x64, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x64, no-bcmath + $C = 100000; + $h = ((int)($hi / $C) << 32) + (int)($lo / $C); + $l = (($hi % $C) << 32) + ($lo % $C); + if ( $l>$C ) + { + $h += (int)($l / $C); + $l = $l % $C; + } + + if ( $h==0 ) + return $l; + return sprintf ( "%d%05d", $h, $l ); + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return bcadd ( $lo, bcmul ( $hi, "4294967296" ) ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0; + $h = $q*4294967296.0 + $r*429.0 + $mq; + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return sprintf( "%.0f", (float)$l ); + return $h . $l; +} + +// unpack 64-bit signed +function sphUnpackI64 ( $v ) +{ + list ( $hi, $lo ) = array_values ( unpack ( "N*N*", $v ) ); + + // x64 + if ( PHP_INT_SIZE>=8 ) + { + if ( $hi<0 ) $hi += (1<<32); // because php 5.2.2 to 5.2.5 is totally fucked up again + if ( $lo<0 ) $lo += (1<<32); + + return ($hi<<32) + $lo; + } + + // x32, int + if ( $hi==0 ) + { + if ( $lo>0 ) + return $lo; + return sprintf ( "%u", $lo ); + } + // x32, int + elseif ( $hi==-1 ) + { + if ( $lo<0 ) + return $lo; + return sprintf ( "%.0f", $lo - 4294967296.0 ); + } + + $neg = ""; + $c = 0; + if ( $hi<0 ) + { + $hi = ~$hi; + $lo = ~$lo; + $c = 1; + $neg = "-"; + } + + $hi = sprintf ( "%u", $hi ); + $lo = sprintf ( "%u", $lo ); + + // x32, bcmath + if ( function_exists("bcmul") ) + return $neg . bcadd ( bcadd ( $lo, bcmul ( $hi, "4294967296" ) ), $c ); + + // x32, no-bcmath + $hi = (float)$hi; + $lo = (float)$lo; + + $q = floor($hi/10000000.0); + $r = $hi - $q*10000000.0; + $m = $lo + $r*4967296.0; + $mq = floor($m/10000000.0); + $l = $m - $mq*10000000.0 + $c; + $h = $q*4294967296.0 + $r*429.0 + $mq; + if ( $l==10000000 ) + { + $l = 0; + $h += 1; + } + + $h = sprintf ( "%.0f", $h ); + $l = sprintf ( "%07.0f", $l ); + if ( $h=="0" ) + return $neg . sprintf( "%.0f", (float)$l ); + return $neg . $h . $l; +} + + +function sphFixUint ( $value ) +{ + if ( PHP_INT_SIZE>=8 ) + { + // x64 route, workaround broken unpack() in 5.2.2+ + if ( $value<0 ) $value += (1<<32); + return $value; + } + else + { + // x32 route, workaround php signed/unsigned braindamage + return sprintf ( "%u", $value ); + } +} + +function sphSetBit ( $flag, $bit, $on ) +{ + if ( $on ) + { + $flag += ( 1<<$bit ); + } else + { + $reset = 255 ^ ( 1<<$bit ); + $flag = $flag & $reset; + } + return $flag; +} + + +/// sphinx searchd client class +class SphinxClient +{ + var $_host; ///< searchd host (default is "localhost") + var $_port; ///< searchd port (default is 9312) + var $_offset; ///< how many records to seek from result-set start (default is 0) + var $_limit; ///< how many records to return from result-set starting at offset (default is 20) + var $_mode; ///< query matching mode (default is SPH_MATCH_ALL) + var $_weights; ///< per-field weights (default is 1 for all fields) + var $_sort; ///< match sorting mode (default is SPH_SORT_RELEVANCE) + var $_sortby; ///< attribute to sort by (defualt is "") + var $_min_id; ///< min ID to match (default is 0, which means no limit) + var $_max_id; ///< max ID to match (default is 0, which means no limit) + var $_filters; ///< search filters + var $_groupby; ///< group-by attribute name + var $_groupfunc; ///< group-by function (to pre-process group-by attribute value with) + var $_groupsort; ///< group-by sorting clause (to sort groups in result set with) + var $_groupdistinct;///< group-by count-distinct attribute + var $_maxmatches; ///< max matches to retrieve + var $_cutoff; ///< cutoff to stop searching at (default is 0) + var $_retrycount; ///< distributed retries count + var $_retrydelay; ///< distributed retries delay + var $_anchor; ///< geographical anchor point + var $_indexweights; ///< per-index weights + var $_ranker; ///< ranking mode (default is SPH_RANK_PROXIMITY_BM25) + var $_rankexpr; ///< ranking mode expression (for SPH_RANK_EXPR) + var $_maxquerytime; ///< max query time, milliseconds (default is 0, do not limit) + var $_fieldweights; ///< per-field-name weights + var $_overrides; ///< per-query attribute values overrides + var $_select; ///< select-list (attributes or expressions, with optional aliases) + var $_query_flags; ///< per-query various flags + var $_predictedtime; ///< per-query max_predicted_time + var $_outerorderby; ///< outer match sort by + var $_outeroffset; ///< outer offset + var $_outerlimit; ///< outer limit + var $_hasouter; + + var $_error; ///< last error message + var $_warning; ///< last warning message + var $_connerror; ///< connection error vs remote error flag + + var $_reqs; ///< requests array for multi-query + var $_mbenc; ///< stored mbstring encoding + var $_arrayresult; ///< whether $result["matches"] should be a hash or an array + var $_timeout; ///< connect timeout + + ///////////////////////////////////////////////////////////////////////////// + // common stuff + ///////////////////////////////////////////////////////////////////////////// + + /// create a new client object and fill defaults + function SphinxClient () + { + // per-client-object settings + $this->_host = "localhost"; + $this->_port = 9312; + $this->_path = false; + $this->_socket = false; + + // per-query settings + $this->_offset = 0; + $this->_limit = 20; + $this->_mode = SPH_MATCH_ALL; + $this->_weights = array (); + $this->_sort = SPH_SORT_RELEVANCE; + $this->_sortby = ""; + $this->_min_id = 0; + $this->_max_id = 0; + $this->_filters = array (); + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + $this->_maxmatches = 1000; + $this->_cutoff = 0; + $this->_retrycount = 0; + $this->_retrydelay = 0; + $this->_anchor = array (); + $this->_indexweights= array (); + $this->_ranker = SPH_RANK_PROXIMITY_BM25; + $this->_rankexpr = ""; + $this->_maxquerytime= 0; + $this->_fieldweights= array(); + $this->_overrides = array(); + $this->_select = "*"; + $this->_query_flags = 0; + $this->_predictedtime = 0; + $this->_outerorderby = ""; + $this->_outeroffset = 0; + $this->_outerlimit = 0; + $this->_hasouter = false; + + $this->_error = ""; // per-reply fields (for single-query case) + $this->_warning = ""; + $this->_connerror = false; + + $this->_reqs = array (); // requests storage (for multi-query case) + $this->_mbenc = ""; + $this->_arrayresult = false; + $this->_timeout = 0; + } + + function __destruct() + { + if ( $this->_socket !== false ) + fclose ( $this->_socket ); + } + + /// get last error message (string) + function GetLastError () + { + return $this->_error; + } + + /// get last warning message (string) + function GetLastWarning () + { + return $this->_warning; + } + + /// get last error flag (to tell network connection errors from searchd errors or broken responses) + function IsConnectError() + { + return $this->_connerror; + } + + /// set searchd host name (string) and port (integer) + function SetServer ( $host, $port = 0 ) + { + assert ( is_string($host) ); + if ( $host[0] == '/') + { + $this->_path = 'unix://' . $host; + return; + } + if ( substr ( $host, 0, 7 )=="unix://" ) + { + $this->_path = $host; + return; + } + + $this->_host = $host; + $port = intval($port); + assert ( 0<=$port && $port<65536 ); + $this->_port = ( $port==0 ) ? 9312 : $port; + $this->_path = ''; + } + + /// set server connection timeout (0 to remove) + function SetConnectTimeout ( $timeout ) + { + assert ( is_numeric($timeout) ); + $this->_timeout = $timeout; + } + + + function _Send ( $handle, $data, $length ) + { + if ( feof($handle) || fwrite ( $handle, $data, $length ) !== $length ) + { + $this->_error = 'connection unexpectedly closed (timed out?)'; + $this->_connerror = true; + return false; + } + return true; + } + + ///////////////////////////////////////////////////////////////////////////// + + /// enter mbstring workaround mode + function _MBPush () + { + $this->_mbenc = ""; + if ( ini_get ( "mbstring.func_overload" ) & 2 ) + { + $this->_mbenc = mb_internal_encoding(); + mb_internal_encoding ( "latin1" ); + } + } + + /// leave mbstring workaround mode + function _MBPop () + { + if ( $this->_mbenc ) + mb_internal_encoding ( $this->_mbenc ); + } + + /// connect to searchd server + function _Connect () + { + if ( $this->_socket!==false ) + { + // we are in persistent connection mode, so we have a socket + // however, need to check whether it's still alive + if ( !@feof ( $this->_socket ) ) + return $this->_socket; + + // force reopen + $this->_socket = false; + } + + $errno = 0; + $errstr = ""; + $this->_connerror = false; + + if ( $this->_path ) + { + $host = $this->_path; + $port = 0; + } + else + { + $host = $this->_host; + $port = $this->_port; + } + + if ( $this->_timeout<=0 ) + $fp = @fsockopen ( $host, $port, $errno, $errstr ); + else + $fp = @fsockopen ( $host, $port, $errno, $errstr, $this->_timeout ); + + if ( !$fp ) + { + if ( $this->_path ) + $location = $this->_path; + else + $location = "{$this->_host}:{$this->_port}"; + + $errstr = trim ( $errstr ); + $this->_error = "connection to $location failed (errno=$errno, msg=$errstr)"; + $this->_connerror = true; + return false; + } + + // send my version + // this is a subtle part. we must do it before (!) reading back from searchd. + // because otherwise under some conditions (reported on FreeBSD for instance) + // TCP stack could throttle write-write-read pattern because of Nagle. + if ( !$this->_Send ( $fp, pack ( "N", 1 ), 4 ) ) + { + fclose ( $fp ); + $this->_error = "failed to send client protocol version"; + return false; + } + + // check version + list(,$v) = unpack ( "N*", fread ( $fp, 4 ) ); + $v = (int)$v; + if ( $v<1 ) + { + fclose ( $fp ); + $this->_error = "expected searchd protocol version 1+, got version '$v'"; + return false; + } + + return $fp; + } + + /// get and check response packet from searchd server + function _GetResponse ( $fp, $client_ver ) + { + $response = ""; + $len = 0; + + $header = fread ( $fp, 8 ); + if ( strlen($header)==8 ) + { + list ( $status, $ver, $len ) = array_values ( unpack ( "n2a/Nb", $header ) ); + $left = $len; + while ( $left>0 && !feof($fp) ) + { + $chunk = fread ( $fp, min ( 8192, $left ) ); + if ( $chunk ) + { + $response .= $chunk; + $left -= strlen($chunk); + } + } + } + if ( $this->_socket === false ) + fclose ( $fp ); + + // check response + $read = strlen ( $response ); + if ( !$response || $read!=$len ) + { + $this->_error = $len + ? "failed to read searchd response (status=$status, ver=$ver, len=$len, read=$read)" + : "received zero-sized searchd response"; + return false; + } + + // check status + if ( $status==SEARCHD_WARNING ) + { + list(,$wlen) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_warning = substr ( $response, 4, $wlen ); + return substr ( $response, 4+$wlen ); + } + if ( $status==SEARCHD_ERROR ) + { + $this->_error = "searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status==SEARCHD_RETRY ) + { + $this->_error = "temporary searchd error: " . substr ( $response, 4 ); + return false; + } + if ( $status!=SEARCHD_OK ) + { + $this->_error = "unknown status code '$status'"; + return false; + } + + // check version + if ( $ver<$client_ver ) + { + $this->_warning = sprintf ( "searchd command v.%d.%d older than client's v.%d.%d, some options might not work", + $ver>>8, $ver&0xff, $client_ver>>8, $client_ver&0xff ); + } + + return $response; + } + + ///////////////////////////////////////////////////////////////////////////// + // searching + ///////////////////////////////////////////////////////////////////////////// + + /// set offset and count into result set, + /// and optionally set max-matches and cutoff limits + function SetLimits ( $offset, $limit, $max=0, $cutoff=0 ) + { + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + assert ( $max>=0 ); + $this->_offset = $offset; + $this->_limit = $limit; + if ( $max>0 ) + $this->_maxmatches = $max; + if ( $cutoff>0 ) + $this->_cutoff = $cutoff; + } + + /// set maximum query time, in milliseconds, per-index + /// integer, 0 means "do not limit" + function SetMaxQueryTime ( $max ) + { + assert ( is_int($max) ); + assert ( $max>=0 ); + $this->_maxquerytime = $max; + } + + /// set matching mode + function SetMatchMode ( $mode ) + { + assert ( $mode==SPH_MATCH_ALL + || $mode==SPH_MATCH_ANY + || $mode==SPH_MATCH_PHRASE + || $mode==SPH_MATCH_BOOLEAN + || $mode==SPH_MATCH_EXTENDED + || $mode==SPH_MATCH_FULLSCAN + || $mode==SPH_MATCH_EXTENDED2 ); + $this->_mode = $mode; + } + + /// set ranking mode + function SetRankingMode ( $ranker, $rankexpr="" ) + { + assert ( $ranker===0 || $ranker>=1 && $ranker_ranker = $ranker; + $this->_rankexpr = $rankexpr; + } + + /// set matches sorting mode + function SetSortMode ( $mode, $sortby="" ) + { + assert ( + $mode==SPH_SORT_RELEVANCE || + $mode==SPH_SORT_ATTR_DESC || + $mode==SPH_SORT_ATTR_ASC || + $mode==SPH_SORT_TIME_SEGMENTS || + $mode==SPH_SORT_EXTENDED || + $mode==SPH_SORT_EXPR ); + assert ( is_string($sortby) ); + assert ( $mode==SPH_SORT_RELEVANCE || strlen($sortby)>0 ); + + $this->_sort = $mode; + $this->_sortby = $sortby; + } + + /// bind per-field weights by order + /// DEPRECATED; use SetFieldWeights() instead + function SetWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $weight ) + assert ( is_int($weight) ); + + $this->_weights = $weights; + } + + /// bind per-field weights by name + function SetFieldWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $name=>$weight ) + { + assert ( is_string($name) ); + assert ( is_int($weight) ); + } + $this->_fieldweights = $weights; + } + + /// bind per-index weights by name + function SetIndexWeights ( $weights ) + { + assert ( is_array($weights) ); + foreach ( $weights as $index=>$weight ) + { + assert ( is_string($index) ); + assert ( is_int($weight) ); + } + $this->_indexweights = $weights; + } + + /// set IDs range to match + /// only match records if document ID is beetwen $min and $max (inclusive) + function SetIDRange ( $min, $max ) + { + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + $this->_min_id = $min; + $this->_max_id = $max; + } + + /// set values set filter + /// only match records where $attribute value is in given set + function SetFilter ( $attribute, $values, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_array($values) ); + assert ( count($values) ); + + if ( is_array($values) && count($values) ) + { + foreach ( $values as $value ) + assert ( is_numeric($value) ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_VALUES, "attr"=>$attribute, "exclude"=>$exclude, "values"=>$values ); + } + } + + /// set range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_numeric($min) ); + assert ( is_numeric($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_RANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// set float range filter + /// only match records if $attribute value is beetwen $min and $max (inclusive) + function SetFilterFloatRange ( $attribute, $min, $max, $exclude=false ) + { + assert ( is_string($attribute) ); + assert ( is_float($min) ); + assert ( is_float($max) ); + assert ( $min<=$max ); + + $this->_filters[] = array ( "type"=>SPH_FILTER_FLOATRANGE, "attr"=>$attribute, "exclude"=>$exclude, "min"=>$min, "max"=>$max ); + } + + /// setup anchor point for geosphere distance calculations + /// required to use @geodist in filters and sorting + /// latitude and longitude must be in radians + function SetGeoAnchor ( $attrlat, $attrlong, $lat, $long ) + { + assert ( is_string($attrlat) ); + assert ( is_string($attrlong) ); + assert ( is_float($lat) ); + assert ( is_float($long) ); + + $this->_anchor = array ( "attrlat"=>$attrlat, "attrlong"=>$attrlong, "lat"=>$lat, "long"=>$long ); + } + + /// set grouping attribute and function + function SetGroupBy ( $attribute, $func, $groupsort="@group desc" ) + { + assert ( is_string($attribute) ); + assert ( is_string($groupsort) ); + assert ( $func==SPH_GROUPBY_DAY + || $func==SPH_GROUPBY_WEEK + || $func==SPH_GROUPBY_MONTH + || $func==SPH_GROUPBY_YEAR + || $func==SPH_GROUPBY_ATTR + || $func==SPH_GROUPBY_ATTRPAIR ); + + $this->_groupby = $attribute; + $this->_groupfunc = $func; + $this->_groupsort = $groupsort; + } + + /// set count-distinct attribute for group-by queries + function SetGroupDistinct ( $attribute ) + { + assert ( is_string($attribute) ); + $this->_groupdistinct = $attribute; + } + + /// set distributed retries count and delay + function SetRetries ( $count, $delay=0 ) + { + assert ( is_int($count) && $count>=0 ); + assert ( is_int($delay) && $delay>=0 ); + $this->_retrycount = $count; + $this->_retrydelay = $delay; + } + + /// set result set format (hash or array; hash by default) + /// PHP specific; needed for group-by-MVA result sets that may contain duplicate IDs + function SetArrayResult ( $arrayresult ) + { + assert ( is_bool($arrayresult) ); + $this->_arrayresult = $arrayresult; + } + + /// set attribute values override + /// there can be only one override per attribute + /// $values must be a hash that maps document IDs to attribute values + function SetOverride ( $attrname, $attrtype, $values ) + { + assert ( is_string ( $attrname ) ); + assert ( in_array ( $attrtype, array ( SPH_ATTR_INTEGER, SPH_ATTR_TIMESTAMP, SPH_ATTR_BOOL, SPH_ATTR_FLOAT, SPH_ATTR_BIGINT ) ) ); + assert ( is_array ( $values ) ); + + $this->_overrides[$attrname] = array ( "attr"=>$attrname, "type"=>$attrtype, "values"=>$values ); + } + + /// set select-list (attributes or expressions), SQL-like syntax + function SetSelect ( $select ) + { + assert ( is_string ( $select ) ); + $this->_select = $select; + } + + function SetQueryFlag ( $flag_name, $flag_value ) + { + $known_names = array ( "reverse_scan", "sort_method", "max_predicted_time", "boolean_simplify", "idf" ); + $flags = array ( + "reverse_scan" => array ( 0, 1 ), + "sort_method" => array ( "pq", "kbuffer" ), + "max_predicted_time" => array ( 0 ), + "boolean_simplify" => array ( true, false ), + "idf" => array ("normalized", "plain" ) + ); + + assert ( isset ( $flag_name, $known_names ) ); + assert ( in_array( $flag_value, $flags[$flag_name], true ) || ( $flag_name=="max_predicted_time" && is_int ( $flag_value ) && $flag_value>=0 ) ); + + if ( $flag_name=="reverse_scan" ) $this->_query_flags = sphSetBit ( $this->_query_flags, 0, $flag_value==1 ); + if ( $flag_name=="sort_method" ) $this->_query_flags = sphSetBit ( $this->_query_flags, 1, $flag_value=="kbuffer" ); + if ( $flag_name=="max_predicted_time" ) + { + $this->_query_flags = sphSetBit ( $this->_query_flags, 2, $flag_value>0 ); + $this->_predictedtime = (int)$flag_value; + } + if ( $flag_name=="boolean_simplify" ) $this->_query_flags = sphSetBit ( $this->_query_flags, 3, $flag_value ); + if ( $flag_name=="idf" ) $this->_query_flags = sphSetBit ( $this->_query_flags, 4, $flag_value=="plain" ); + } + + /// set outer order by parameters + function SetOuterSelect ( $orderby, $offset, $limit ) + { + assert ( is_string($orderby) ); + assert ( is_int($offset) ); + assert ( is_int($limit) ); + assert ( $offset>=0 ); + assert ( $limit>0 ); + + $this->_outerorderby = $orderby; + $this->_outeroffset = $offset; + $this->_outerlimit = $limit; + $this->_hasouter = true; + } + + + ////////////////////////////////////////////////////////////////////////////// + + /// clear all filters (for multi-queries) + function ResetFilters () + { + $this->_filters = array(); + $this->_anchor = array(); + } + + /// clear groupby settings (for multi-queries) + function ResetGroupBy () + { + $this->_groupby = ""; + $this->_groupfunc = SPH_GROUPBY_DAY; + $this->_groupsort = "@group desc"; + $this->_groupdistinct= ""; + } + + /// clear all attribute value overrides (for multi-queries) + function ResetOverrides () + { + $this->_overrides = array (); + } + + function ResetQueryFlag () + { + $this->_query_flags = 0; + $this->_predictedtime = 0; + } + + function ResetOuterSelect () + { + $this->_outerorderby = ''; + $this->_outeroffset = 0; + $this->_outerlimit = 0; + $this->_hasouter = false; + } + + ////////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, run given search query through given indexes, + /// and return the search results + function Query ( $query, $index="*", $comment="" ) + { + assert ( empty($this->_reqs) ); + + $this->AddQuery ( $query, $index, $comment ); + $results = $this->RunQueries (); + $this->_reqs = array (); // just in case it failed too early + + if ( !is_array($results) ) + return false; // probably network error; error message should be already filled + + $this->_error = $results[0]["error"]; + $this->_warning = $results[0]["warning"]; + if ( $results[0]["status"]==SEARCHD_ERROR ) + return false; + else + return $results[0]; + } + + /// helper to pack floats in network byte order + function _PackFloat ( $f ) + { + $t1 = pack ( "f", $f ); // machine order + list(,$t2) = unpack ( "L*", $t1 ); // int in machine order + return pack ( "N", $t2 ); + } + + /// add query to multi-query batch + /// returns index into results array from RunQueries() call + function AddQuery ( $query, $index="*", $comment="" ) + { + // mbstring workaround + $this->_MBPush (); + + // build request + $req = pack ( "NNNNN", $this->_query_flags, $this->_offset, $this->_limit, $this->_mode, $this->_ranker ); + if ( $this->_ranker==SPH_RANK_EXPR ) + $req .= pack ( "N", strlen($this->_rankexpr) ) . $this->_rankexpr; + $req .= pack ( "N", $this->_sort ); // (deprecated) sort mode + $req .= pack ( "N", strlen($this->_sortby) ) . $this->_sortby; + $req .= pack ( "N", strlen($query) ) . $query; // query itself + $req .= pack ( "N", count($this->_weights) ); // weights + foreach ( $this->_weights as $weight ) + $req .= pack ( "N", (int)$weight ); + $req .= pack ( "N", strlen($index) ) . $index; // indexes + $req .= pack ( "N", 1 ); // id64 range marker + $req .= sphPackU64 ( $this->_min_id ) . sphPackU64 ( $this->_max_id ); // id64 range + + // filters + $req .= pack ( "N", count($this->_filters) ); + foreach ( $this->_filters as $filter ) + { + $req .= pack ( "N", strlen($filter["attr"]) ) . $filter["attr"]; + $req .= pack ( "N", $filter["type"] ); + switch ( $filter["type"] ) + { + case SPH_FILTER_VALUES: + $req .= pack ( "N", count($filter["values"]) ); + foreach ( $filter["values"] as $value ) + $req .= sphPackI64 ( $value ); + break; + + case SPH_FILTER_RANGE: + $req .= sphPackI64 ( $filter["min"] ) . sphPackI64 ( $filter["max"] ); + break; + + case SPH_FILTER_FLOATRANGE: + $req .= $this->_PackFloat ( $filter["min"] ) . $this->_PackFloat ( $filter["max"] ); + break; + + default: + assert ( 0 && "internal error: unhandled filter type" ); + } + $req .= pack ( "N", $filter["exclude"] ); + } + + // group-by clause, max-matches count, group-sort clause, cutoff count + $req .= pack ( "NN", $this->_groupfunc, strlen($this->_groupby) ) . $this->_groupby; + $req .= pack ( "N", $this->_maxmatches ); + $req .= pack ( "N", strlen($this->_groupsort) ) . $this->_groupsort; + $req .= pack ( "NNN", $this->_cutoff, $this->_retrycount, $this->_retrydelay ); + $req .= pack ( "N", strlen($this->_groupdistinct) ) . $this->_groupdistinct; + + // anchor point + if ( empty($this->_anchor) ) + { + $req .= pack ( "N", 0 ); + } else + { + $a =& $this->_anchor; + $req .= pack ( "N", 1 ); + $req .= pack ( "N", strlen($a["attrlat"]) ) . $a["attrlat"]; + $req .= pack ( "N", strlen($a["attrlong"]) ) . $a["attrlong"]; + $req .= $this->_PackFloat ( $a["lat"] ) . $this->_PackFloat ( $a["long"] ); + } + + // per-index weights + $req .= pack ( "N", count($this->_indexweights) ); + foreach ( $this->_indexweights as $idx=>$weight ) + $req .= pack ( "N", strlen($idx) ) . $idx . pack ( "N", $weight ); + + // max query time + $req .= pack ( "N", $this->_maxquerytime ); + + // per-field weights + $req .= pack ( "N", count($this->_fieldweights) ); + foreach ( $this->_fieldweights as $field=>$weight ) + $req .= pack ( "N", strlen($field) ) . $field . pack ( "N", $weight ); + + // comment + $req .= pack ( "N", strlen($comment) ) . $comment; + + // attribute overrides + $req .= pack ( "N", count($this->_overrides) ); + foreach ( $this->_overrides as $key => $entry ) + { + $req .= pack ( "N", strlen($entry["attr"]) ) . $entry["attr"]; + $req .= pack ( "NN", $entry["type"], count($entry["values"]) ); + foreach ( $entry["values"] as $id=>$val ) + { + assert ( is_numeric($id) ); + assert ( is_numeric($val) ); + + $req .= sphPackU64 ( $id ); + switch ( $entry["type"] ) + { + case SPH_ATTR_FLOAT: $req .= $this->_PackFloat ( $val ); break; + case SPH_ATTR_BIGINT: $req .= sphPackI64 ( $val ); break; + default: $req .= pack ( "N", $val ); break; + } + } + } + + // select-list + $req .= pack ( "N", strlen($this->_select) ) . $this->_select; + + // max_predicted_time + if ( $this->_predictedtime>0 ) + $req .= pack ( "N", (int)$this->_predictedtime ); + + $req .= pack ( "N", strlen($this->_outerorderby) ) . $this->_outerorderby; + $req .= pack ( "NN", $this->_outeroffset, $this->_outerlimit ); + if ( $this->_hasouter ) + $req .= pack ( "N", 1 ); + else + $req .= pack ( "N", 0 ); + + // mbstring workaround + $this->_MBPop (); + + // store request to requests array + $this->_reqs[] = $req; + return count($this->_reqs)-1; + } + + /// connect to searchd, run queries batch, and return an array of result sets + function RunQueries () + { + if ( empty($this->_reqs) ) + { + $this->_error = "no queries defined, issue AddQuery() first"; + return false; + } + + // mbstring workaround + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return false; + } + + // send query, get response + $nreqs = count($this->_reqs); + $req = join ( "", $this->_reqs ); + $len = 8+strlen($req); + $req = pack ( "nnNNN", SEARCHD_COMMAND_SEARCH, VER_COMMAND_SEARCH, $len, 0, $nreqs ) . $req; // add header + + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_SEARCH ) ) ) + { + $this->_MBPop (); + return false; + } + + // query sent ok; we can reset reqs now + $this->_reqs = array (); + + // parse and return response + return $this->_ParseSearchResponse ( $response, $nreqs ); + } + + /// parse and return search query (or queries) response + function _ParseSearchResponse ( $response, $nreqs ) + { + $p = 0; // current position + $max = strlen($response); // max position for checks, to protect against broken responses + + $results = array (); + for ( $ires=0; $ires<$nreqs && $p<$max; $ires++ ) + { + $results[] = array(); + $result =& $results[$ires]; + + $result["error"] = ""; + $result["warning"] = ""; + + // extract status + list(,$status) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $result["status"] = $status; + if ( $status!=SEARCHD_OK ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $message = substr ( $response, $p, $len ); $p += $len; + + if ( $status==SEARCHD_WARNING ) + { + $result["warning"] = $message; + } else + { + $result["error"] = $message; + continue; + } + } + + // read schema + $fields = array (); + $attrs = array (); + + list(,$nfields) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nfields-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $fields[] = substr ( $response, $p, $len ); $p += $len; + } + $result["fields"] = $fields; + + list(,$nattrs) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + while ( $nattrs-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attr = substr ( $response, $p, $len ); $p += $len; + list(,$type) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrs[$attr] = $type; + } + $result["attrs"] = $attrs; + + // read match count + list(,$count) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$id64) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + + // read matches + $idx = -1; + while ( $count-->0 && $p<$max ) + { + // index into result array + $idx++; + + // parse document id and weight + if ( $id64 ) + { + $doc = sphUnpackU64 ( substr ( $response, $p, 8 ) ); $p += 8; + list(,$weight) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + } + else + { + list ( $doc, $weight ) = array_values ( unpack ( "N*N*", + substr ( $response, $p, 8 ) ) ); + $p += 8; + $doc = sphFixUint($doc); + } + $weight = sprintf ( "%u", $weight ); + + // create match entry + if ( $this->_arrayresult ) + $result["matches"][$idx] = array ( "id"=>$doc, "weight"=>$weight ); + else + $result["matches"][$doc]["weight"] = $weight; + + // parse and create attributes + $attrvals = array (); + foreach ( $attrs as $attr=>$type ) + { + // handle 64bit ints + if ( $type==SPH_ATTR_BIGINT ) + { + $attrvals[$attr] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + continue; + } + + // handle floats + if ( $type==SPH_ATTR_FLOAT ) + { + list(,$uval) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + list(,$fval) = unpack ( "f*", pack ( "L", $uval ) ); + $attrvals[$attr] = $fval; + continue; + } + + // handle everything else as unsigned ints + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + if ( $type==SPH_ATTR_MULTI ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues-->0 && $p<$max ) + { + list(,$val) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $attrvals[$attr][] = sphFixUint($val); + } + } else if ( $type==SPH_ATTR_MULTI64 ) + { + $attrvals[$attr] = array (); + $nvalues = $val; + while ( $nvalues>0 && $p<$max ) + { + $attrvals[$attr][] = sphUnpackI64 ( substr ( $response, $p, 8 ) ); $p += 8; + $nvalues -= 2; + } + } else if ( $type==SPH_ATTR_STRING ) + { + $attrvals[$attr] = substr ( $response, $p, $val ); + $p += $val; + } else if ( $type==SPH_ATTR_FACTORS ) + { + $attrvals[$attr] = substr ( $response, $p, $val-4 ); + $p += $val-4; + } else + { + $attrvals[$attr] = sphFixUint($val); + } + } + + if ( $this->_arrayresult ) + $result["matches"][$idx]["attrs"] = $attrvals; + else + $result["matches"][$doc]["attrs"] = $attrvals; + } + + list ( $total, $total_found, $msecs, $words ) = + array_values ( unpack ( "N*N*N*N*", substr ( $response, $p, 16 ) ) ); + $result["total"] = sprintf ( "%u", $total ); + $result["total_found"] = sprintf ( "%u", $total_found ); + $result["time"] = sprintf ( "%.3f", $msecs/1000 ); + $p += 16; + + while ( $words-->0 && $p<$max ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $word = substr ( $response, $p, $len ); $p += $len; + list ( $docs, $hits ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + $result["words"][$word] = array ( + "docs"=>sprintf ( "%u", $docs ), + "hits"=>sprintf ( "%u", $hits ) ); + } + } + + $this->_MBPop (); + return $results; + } + + ///////////////////////////////////////////////////////////////////////////// + // excerpts generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate exceprts (snippets) + /// of given documents for given query. returns false on failure, + /// an array of snippets on success + function BuildExcerpts ( $docs, $index, $words, $opts=array() ) + { + assert ( is_array($docs) ); + assert ( is_string($index) ); + assert ( is_string($words) ); + assert ( is_array($opts) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // fixup options + ///////////////// + + if ( !isset($opts["before_match"]) ) $opts["before_match"] = ""; + if ( !isset($opts["after_match"]) ) $opts["after_match"] = ""; + if ( !isset($opts["chunk_separator"]) ) $opts["chunk_separator"] = " ... "; + if ( !isset($opts["limit"]) ) $opts["limit"] = 256; + if ( !isset($opts["limit_passages"]) ) $opts["limit_passages"] = 0; + if ( !isset($opts["limit_words"]) ) $opts["limit_words"] = 0; + if ( !isset($opts["around"]) ) $opts["around"] = 5; + if ( !isset($opts["exact_phrase"]) ) $opts["exact_phrase"] = false; + if ( !isset($opts["single_passage"]) ) $opts["single_passage"] = false; + if ( !isset($opts["use_boundaries"]) ) $opts["use_boundaries"] = false; + if ( !isset($opts["weight_order"]) ) $opts["weight_order"] = false; + if ( !isset($opts["query_mode"]) ) $opts["query_mode"] = false; + if ( !isset($opts["force_all_words"]) ) $opts["force_all_words"] = false; + if ( !isset($opts["start_passage_id"]) ) $opts["start_passage_id"] = 1; + if ( !isset($opts["load_files"]) ) $opts["load_files"] = false; + if ( !isset($opts["html_strip_mode"]) ) $opts["html_strip_mode"] = "index"; + if ( !isset($opts["allow_empty"]) ) $opts["allow_empty"] = false; + if ( !isset($opts["passage_boundary"]) ) $opts["passage_boundary"] = "none"; + if ( !isset($opts["emit_zones"]) ) $opts["emit_zones"] = false; + if ( !isset($opts["load_files_scattered"]) ) $opts["load_files_scattered"] = false; + + + ///////////////// + // build request + ///////////////// + + // v.1.2 req + $flags = 1; // remove spaces + if ( $opts["exact_phrase"] ) $flags |= 2; + if ( $opts["single_passage"] ) $flags |= 4; + if ( $opts["use_boundaries"] ) $flags |= 8; + if ( $opts["weight_order"] ) $flags |= 16; + if ( $opts["query_mode"] ) $flags |= 32; + if ( $opts["force_all_words"] ) $flags |= 64; + if ( $opts["load_files"] ) $flags |= 128; + if ( $opts["allow_empty"] ) $flags |= 256; + if ( $opts["emit_zones"] ) $flags |= 512; + if ( $opts["load_files_scattered"] ) $flags |= 1024; + $req = pack ( "NN", 0, $flags ); // mode=0, flags=$flags + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", strlen($words) ) . $words; // req words + + // options + $req .= pack ( "N", strlen($opts["before_match"]) ) . $opts["before_match"]; + $req .= pack ( "N", strlen($opts["after_match"]) ) . $opts["after_match"]; + $req .= pack ( "N", strlen($opts["chunk_separator"]) ) . $opts["chunk_separator"]; + $req .= pack ( "NN", (int)$opts["limit"], (int)$opts["around"] ); + $req .= pack ( "NNN", (int)$opts["limit_passages"], (int)$opts["limit_words"], (int)$opts["start_passage_id"] ); // v.1.2 + $req .= pack ( "N", strlen($opts["html_strip_mode"]) ) . $opts["html_strip_mode"]; + $req .= pack ( "N", strlen($opts["passage_boundary"]) ) . $opts["passage_boundary"]; + + // documents + $req .= pack ( "N", count($docs) ); + foreach ( $docs as $doc ) + { + assert ( is_string($doc) ); + $req .= pack ( "N", strlen($doc) ) . $doc; + } + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_EXCERPT, VER_COMMAND_EXCERPT, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_EXCERPT ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + for ( $i=0; $i $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + $res[] = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + } + + $this->_MBPop (); + return $res; + } + + + ///////////////////////////////////////////////////////////////////////////// + // keyword generation + ///////////////////////////////////////////////////////////////////////////// + + /// connect to searchd server, and generate keyword list for a given query + /// returns false on failure, + /// an array of words on success + function BuildKeywords ( $query, $index, $hits ) + { + assert ( is_string($query) ); + assert ( is_string($index) ); + assert ( is_bool($hits) ); + + $this->_MBPush (); + + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + ///////////////// + // build request + ///////////////// + + // v.1.0 req + $req = pack ( "N", strlen($query) ) . $query; // req query + $req .= pack ( "N", strlen($index) ) . $index; // req index + $req .= pack ( "N", (int)$hits ); + + //////////////////////////// + // send query, get response + //////////////////////////// + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_KEYWORDS, VER_COMMAND_KEYWORDS, $len ) . $req; // add header + if ( !( $this->_Send ( $fp, $req, $len+8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_KEYWORDS ) ) ) + { + $this->_MBPop (); + return false; + } + + ////////////////// + // parse response + ////////////////// + + $pos = 0; + $res = array (); + $rlen = strlen($response); + list(,$nwords) = unpack ( "N*", substr ( $response, $pos, 4 ) ); + $pos += 4; + for ( $i=0; $i<$nwords; $i++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $tokenized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + list(,$len) = unpack ( "N*", substr ( $response, $pos, 4 ) ); $pos += 4; + $normalized = $len ? substr ( $response, $pos, $len ) : ""; + $pos += $len; + + $res[] = array ( "tokenized"=>$tokenized, "normalized"=>$normalized ); + + if ( $hits ) + { + list($ndocs,$nhits) = array_values ( unpack ( "N*N*", substr ( $response, $pos, 8 ) ) ); + $pos += 8; + $res [$i]["docs"] = $ndocs; + $res [$i]["hits"] = $nhits; + } + + if ( $pos > $rlen ) + { + $this->_error = "incomplete reply"; + $this->_MBPop (); + return false; + } + } + + $this->_MBPop (); + return $res; + } + + function EscapeString ( $string ) + { + $from = array ( '\\', '(',')','|','-','!','@','~','"','&', '/', '^', '$', '=', '<' ); + $to = array ( '\\\\', '\(','\)','\|','\-','\!','\@','\~','\"', '\&', '\/', '\^', '\$', '\=', '\<' ); + + return str_replace ( $from, $to, $string ); + } + + ///////////////////////////////////////////////////////////////////////////// + // attribute updates + ///////////////////////////////////////////////////////////////////////////// + + /// batch update given attributes in given rows in given indexes + /// returns amount of updated documents (0 or more) on success, or -1 on failure + function UpdateAttributes ( $index, $attrs, $values, $mva=false, $ignorenonexistent=false ) + { + // verify everything + assert ( is_string($index) ); + assert ( is_bool($mva) ); + assert ( is_bool($ignorenonexistent) ); + + assert ( is_array($attrs) ); + foreach ( $attrs as $attr ) + assert ( is_string($attr) ); + + assert ( is_array($values) ); + foreach ( $values as $id=>$entry ) + { + assert ( is_numeric($id) ); + assert ( is_array($entry) ); + assert ( count($entry)==count($attrs) ); + foreach ( $entry as $v ) + { + if ( $mva ) + { + assert ( is_array($v) ); + foreach ( $v as $vv ) + assert ( is_int($vv) ); + } else + assert ( is_int($v) ); + } + } + + // build request + $this->_MBPush (); + $req = pack ( "N", strlen($index) ) . $index; + + $req .= pack ( "N", count($attrs) ); + $req .= pack ( "N", $ignorenonexistent ? 1 : 0 ); + foreach ( $attrs as $attr ) + { + $req .= pack ( "N", strlen($attr) ) . $attr; + $req .= pack ( "N", $mva ? 1 : 0 ); + } + + $req .= pack ( "N", count($values) ); + foreach ( $values as $id=>$entry ) + { + $req .= sphPackU64 ( $id ); + foreach ( $entry as $v ) + { + $req .= pack ( "N", $mva ? count($v) : $v ); + if ( $mva ) + foreach ( $v as $vv ) + $req .= pack ( "N", $vv ); + } + } + + // connect, send query, get response + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop (); + return -1; + } + + $len = strlen($req); + $req = pack ( "nnN", SEARCHD_COMMAND_UPDATE, VER_COMMAND_UPDATE, $len ) . $req; // add header + if ( !$this->_Send ( $fp, $req, $len+8 ) ) + { + $this->_MBPop (); + return -1; + } + + if (!( $response = $this->_GetResponse ( $fp, VER_COMMAND_UPDATE ) )) + { + $this->_MBPop (); + return -1; + } + + // parse response + list(,$updated) = unpack ( "N*", substr ( $response, 0, 4 ) ); + $this->_MBPop (); + return $updated; + } + + ///////////////////////////////////////////////////////////////////////////// + // persistent connections + ///////////////////////////////////////////////////////////////////////////// + + function Open() + { + if ( $this->_socket !== false ) + { + $this->_error = 'already connected'; + return false; + } + if ( !$fp = $this->_Connect() ) + return false; + + // command, command version = 0, body length = 4, body = 1 + $req = pack ( "nnNN", SEARCHD_COMMAND_PERSIST, 0, 4, 1 ); + if ( !$this->_Send ( $fp, $req, 12 ) ) + return false; + + $this->_socket = $fp; + return true; + } + + function Close() + { + if ( $this->_socket === false ) + { + $this->_error = 'not connected'; + return false; + } + + fclose ( $this->_socket ); + $this->_socket = false; + + return true; + } + + ////////////////////////////////////////////////////////////////////////// + // status + ////////////////////////////////////////////////////////////////////////// + + function Status () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return false; + } + + $req = pack ( "nnNN", SEARCHD_COMMAND_STATUS, VER_COMMAND_STATUS, 4, 1 ); // len=4, body=1 + if ( !( $this->_Send ( $fp, $req, 12 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_STATUS ) ) ) + { + $this->_MBPop (); + return false; + } + + $res = substr ( $response, 4 ); // just ignore length, error handling, etc + $p = 0; + list ( $rows, $cols ) = array_values ( unpack ( "N*N*", substr ( $response, $p, 8 ) ) ); $p += 8; + + $res = array(); + for ( $i=0; $i<$rows; $i++ ) + for ( $j=0; $j<$cols; $j++ ) + { + list(,$len) = unpack ( "N*", substr ( $response, $p, 4 ) ); $p += 4; + $res[$i][] = substr ( $response, $p, $len ); $p += $len; + } + + $this->_MBPop (); + return $res; + } + + ////////////////////////////////////////////////////////////////////////// + // flush + ////////////////////////////////////////////////////////////////////////// + + function FlushAttributes () + { + $this->_MBPush (); + if (!( $fp = $this->_Connect() )) + { + $this->_MBPop(); + return -1; + } + + $req = pack ( "nnN", SEARCHD_COMMAND_FLUSHATTRS, VER_COMMAND_FLUSHATTRS, 0 ); // len=0 + if ( !( $this->_Send ( $fp, $req, 8 ) ) || + !( $response = $this->_GetResponse ( $fp, VER_COMMAND_FLUSHATTRS ) ) ) + { + $this->_MBPop (); + return -1; + } + + $tag = -1; + if ( strlen($response)==4 ) + list(,$tag) = unpack ( "N*", $response ); + else + $this->_error = "unexpected response length"; + + $this->_MBPop (); + return $tag; + } +} + +// +// $Id: sphinxapi.php 4505 2014-01-22 15:16:21Z deogar $ +// diff --git a/1.2/library/framework/mail/RFC822.php b/1.2/library/framework/mail/RFC822.php deleted file mode 100644 index bfd701c8..00000000 --- a/1.2/library/framework/mail/RFC822.php +++ /dev/null @@ -1,878 +0,0 @@ - (A comment), ted@example.com (Ted Bloggs), Barney;'; -* $structure = Mail_RFC822::parseAddressList($address_string, 'example.com', TRUE) -* print_r($structure); -*/ - -class Mail_RFC822 -{ - /** - * The address being parsed by the RFC822 object. - * @private string $address - */ - private $address = ''; - - /** - * The default domain to use for unqualified addresses. - * @private string $default_domain - */ - private $default_domain = 'localhost'; - - /** - * Should we return a nested array showing groups, or flatten everything? - * @private boolean $nestGroups - */ - private $nestGroups = true; - - /** - * Whether or not to validate atoms for non-ascii characters. - * @private boolean $validate - */ - private $validate = true; - - /** - * The array of raw addresses built up as we parse. - * @private array $addresses - */ - private $addresses = array(); - - /** - * The final array of parsed address information that we build up. - * @private array $structure - */ - private $structure = array(); - - /** - * The current error message, if any. - * @private string $error - */ - private $error = null; - - /** - * An internal counter/pointer. - * @private integer $index - */ - private $index = null; - - /** - * The number of groups that have been found in the address list. - * @private integer $num_groups - * @access public - */ - private $num_groups = 0; - - /** - * A variable so that we can tell whether or not we're inside a - * Mail_RFC822 object. - * @private boolean $mailRFC822 - */ - private $mailRFC822 = true; - - /** - * A limit after which processing stops - * @private int $limit - */ - private $limit = null; - - - /** - * Sets up the object. The address must either be set here or when - * calling parseAddressList(). One or the other. - * - * @access public - * @param string $address The address(es) to validate. - * @param string $default_domain Default domain/host etc. If not supplied, will be set to localhost. - * @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing. - * @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance. - * - * @return object Mail_RFC822 A new Mail_RFC822 object. - */ - function __construct($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null) - { - if (isset($address)) $this->address = $address; - if (isset($default_domain)) $this->default_domain = $default_domain; - if (isset($nest_groups)) $this->nestGroups = $nest_groups; - if (isset($validate)) $this->validate = $validate; - if (isset($limit)) $this->limit = $limit; - } - - - /** - * Starts the whole process. The address must either be set here - * or when creating the object. One or the other. - * - * @access public - * @param string $address The address(es) to validate. - * @param string $default_domain Default domain/host etc. - * @param boolean $nest_groups Whether to return the structure with groups nested for easier viewing. - * @param boolean $validate Whether to validate atoms. Turn this off if you need to run addresses through before encoding the personal names, for instance. - * - * @return array A structured array of addresses. - */ - function parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null, $limit = null) - { - - if (!isset($this->mailRFC822)) { - $obj = new Mail_RFC822($address, $default_domain, $nest_groups, $validate, $limit); - return $obj->parseAddressList(); - } - - if (isset($address)) $this->address = $address; - if (isset($default_domain)) $this->default_domain = $default_domain; - if (isset($nest_groups)) $this->nestGroups = $nest_groups; - if (isset($validate)) $this->validate = $validate; - if (isset($limit)) $this->limit = $limit; - - $this->structure = array(); - $this->addresses = array(); - $this->error = null; - $this->index = null; - - while ($this->address = $this->_splitAddresses($this->address)) { - continue; - } - - if ($this->address === false || isset($this->error)) { - return false; - } - - // Reset timer since large amounts of addresses can take a long time to - // get here - set_time_limit(30); - - // Loop through all the addresses - for ($i = 0; $i < count($this->addresses); $i++){ - - if (($return = $this->_validateAddress($this->addresses[$i])) === false - || isset($this->error)) { - return false; - } - - if (!$this->nestGroups) { - $this->structure = array_merge($this->structure, $return); - } else { - $this->structure[] = $return; - } - } - - return $this->structure; - } - - /** - * Splits an address into seperate addresses. - * - * @access private - * @param string $address The addresses to split. - * @return boolean Success or failure. - */ - function _splitAddresses($address) - { - - if (!empty($this->limit) AND count($this->addresses) == $this->limit) { - return ''; - } - - if ($this->_isGroup($address) && !isset($this->error)) { - $split_char = ';'; - $is_group = true; - } elseif (!isset($this->error)) { - $split_char = ','; - $is_group = false; - } elseif (isset($this->error)) { - return false; - } - - // Split the string based on the above ten or so lines. - $parts = explode($split_char, $address); - $string = $this->_splitCheck($parts, $split_char); - - // If a group... - if ($is_group) { - // If $string does not contain a colon outside of - // brackets/quotes etc then something's fubar. - - // First check there's a colon at all: - if (strpos($string, ':') === false) { - $this->error = 'Invalid address: ' . $string; - return false; - } - - // Now check it's outside of brackets/quotes: - if (!$this->_splitCheck(explode(':', $string), ':')) - return false; - - // We must have a group at this point, so increase the counter: - $this->num_groups++; - } - - // $string now contains the first full address/group. - // Add to the addresses array. - $this->addresses[] = array( - 'address' => trim($string), - 'group' => $is_group - ); - - // Remove the now stored address from the initial line, the +1 - // is to account for the explode character. - $address = trim(substr($address, strlen($string) + 1)); - - // If the next char is a comma and this was a group, then - // there are more addresses, otherwise, if there are any more - // chars, then there is another address. - if ($is_group && substr($address, 0, 1) == ','){ - $address = trim(substr($address, 1)); - return $address; - - } elseif (strlen($address) > 0) { - return $address; - - } else { - return ''; - } - - // If you got here then something's off - return false; - } - - /** - * Checks for a group at the start of the string. - * - * @access private - * @param string $address The address to check. - * @return boolean Whether or not there is a group at the start of the string. - */ - function _isGroup($address) - { - // First comma not in quotes, angles or escaped: - $parts = explode(',', $address); - $string = $this->_splitCheck($parts, ','); - - // Now we have the first address, we can reliably check for a - // group by searching for a colon that's not escaped or in - // quotes or angle brackets. - if (count($parts = explode(':', $string)) > 1) { - $string2 = $this->_splitCheck($parts, ':'); - return ($string2 !== $string); - } else { - return false; - } - } - - /** - * A common function that will check an exploded string. - * - * @access private - * @param array $parts The exloded string. - * @param string $char The char that was exploded on. - * @return mixed False if the string contains unclosed quotes/brackets, or the string on success. - */ - function _splitCheck($parts, $char) - { - $string = $parts[0]; - - for ($i = 0; $i < count($parts); $i++) { - if ($this->_hasUnclosedQuotes($string) - || $this->_hasUnclosedBrackets($string, '<>') - || $this->_hasUnclosedBrackets($string, '[]') - || $this->_hasUnclosedBrackets($string, '()') - || substr($string, -1) == '\\') { - if (isset($parts[$i + 1])) { - $string = $string . $char . $parts[$i + 1]; - } else { - $this->error = 'Invalid address spec. Unclosed bracket or quotes'; - return false; - } - } else { - $this->index = $i; - break; - } - } - - return $string; - } - - /** - * Checks if a string has an unclosed quotes or not. - * - * @access private - * @param string $string The string to check. - * @return boolean True if there are unclosed quotes inside the string, false otherwise. - */ - function _hasUnclosedQuotes($string) - { - $string = explode('"', $string); - $string_cnt = count($string); - - for ($i = 0; $i < (count($string) - 1); $i++) - if (substr($string[$i], -1) == '\\') - $string_cnt--; - - return ($string_cnt % 2 === 0); - } - - /** - * Checks if a string has an unclosed brackets or not. IMPORTANT: - * This function handles both angle brackets and square brackets; - * - * @access private - * @param string $string The string to check. - * @param string $chars The characters to check for. - * @return boolean True if there are unclosed brackets inside the string, false otherwise. - */ - function _hasUnclosedBrackets($string, $chars) - { - $num_angle_start = substr_count($string, $chars[0]); - $num_angle_end = substr_count($string, $chars[1]); - - $this->_hasUnclosedBracketsSub($string, $num_angle_start, $chars[0]); - $this->_hasUnclosedBracketsSub($string, $num_angle_end, $chars[1]); - - if ($num_angle_start < $num_angle_end) { - $this->error = 'Invalid address spec. Unmatched quote or bracket (' . $chars . ')'; - return false; - } else { - return ($num_angle_start > $num_angle_end); - } - } - - /** - * Sub function that is used only by hasUnclosedBrackets(). - * - * @access private - * @param string $string The string to check. - * @param integer &$num The number of occurences. - * @param string $char The character to count. - * @return integer The number of occurences of $char in $string, adjusted for backslashes. - */ - function _hasUnclosedBracketsSub($string, &$num, $char) - { - $parts = explode($char, $string); - for ($i = 0; $i < count($parts); $i++){ - if (substr($parts[$i], -1) == '\\' || $this->_hasUnclosedQuotes($parts[$i])) - $num--; - if (isset($parts[$i + 1])) - $parts[$i + 1] = $parts[$i] . $char . $parts[$i + 1]; - } - - return $num; - } - - /** - * Function to begin checking the address. - * - * @access private - * @param string $address The address to validate. - * @return mixed False on failure, or a structured array of address information on success. - */ - function _validateAddress($address) - { - $is_group = false; - - if ($address['group']) { - $is_group = true; - - // Get the group part of the name - $parts = explode(':', $address['address']); - $groupname = $this->_splitCheck($parts, ':'); - $structure = array(); - - // And validate the group part of the name. - if (!$this->_validatePhrase($groupname)){ - $this->error = 'Group name did not validate.'; - return false; - } else { - // Don't include groups if we are not nesting - // them. This avoids returning invalid addresses. - if ($this->nestGroups) { - $structure = new stdClass; - $structure->groupname = $groupname; - } - } - - $address['address'] = ltrim(substr($address['address'], strlen($groupname . ':'))); - } - - // If a group then split on comma and put into an array. - // Otherwise, Just put the whole address in an array. - if ($is_group) { - while (strlen($address['address']) > 0) { - $parts = explode(',', $address['address']); - $addresses[] = $this->_splitCheck($parts, ','); - $address['address'] = trim(substr($address['address'], strlen(end($addresses) . ','))); - } - } else { - $addresses[] = $address['address']; - } - - // Check that $addresses is set, if address like this: - // Groupname:; - // Then errors were appearing. - if (!isset($addresses)){ - $this->error = 'Empty group.'; - return false; - } - - for ($i = 0; $i < count($addresses); $i++) { - $addresses[$i] = trim($addresses[$i]); - } - - // Validate each mailbox. - // Format could be one of: name - // geezer@domain.com - // geezer - // ... or any other format valid by RFC 822. - array_walk($addresses, array($this, 'validateMailbox')); - - // Nested format - if ($this->nestGroups) { - if ($is_group) { - $structure->addresses = $addresses; - } else { - $structure = $addresses[0]; - } - - // Flat format - } else { - if ($is_group) { - $structure = array_merge($structure, $addresses); - } else { - $structure = $addresses; - } - } - - return $structure; - } - - /** - * Function to validate a phrase. - * - * @access private - * @param string $phrase The phrase to check. - * @return boolean Success or failure. - */ - function _validatePhrase($phrase) - { - // Splits on one or more Tab or space. - $parts = preg_split('/[ \\x09]+/', $phrase, -1, PREG_SPLIT_NO_EMPTY); - - $phrase_parts = array(); - while (count($parts) > 0){ - $phrase_parts[] = $this->_splitCheck($parts, ' '); - for ($i = 0; $i < $this->index + 1; $i++) - array_shift($parts); - } - - for ($i = 0; $i < count($phrase_parts); $i++) { - // If quoted string: - if (substr($phrase_parts[$i], 0, 1) == '"') { - if (!$this->_validateQuotedString($phrase_parts[$i])) - return false; - continue; - } - - // Otherwise it's an atom: - if (!$this->_validateAtom($phrase_parts[$i])) return false; - } - - return true; - } - - /** - * Function to validate an atom which from rfc822 is: - * atom = 1* - * - * If validation ($this->validate) has been turned off, then - * validateAtom() doesn't actually check anything. This is so that you - * can split a list of addresses up before encoding personal names - * (umlauts, etc.), for example. - * - * @access private - * @param string $atom The string to check. - * @return boolean Success or failure. - */ - function _validateAtom($atom) - { - if (!$this->validate) { - // Validation has been turned off; assume the atom is okay. - return true; - } - - // Check for any char from ASCII 0 - ASCII 127 - if (!preg_match('/^[\\x00-\\x7E]+$/i', $atom, $matches)) { - return false; - } - - // Check for specials: - if (preg_match('/[][()<>@,;\\:". ]/', $atom)) { - return false; - } - - // Check for control characters (ASCII 0-31): - if (preg_match('/[\\x00-\\x1F]+/', $atom)) { - return false; - } - - return true; - } - - /** - * Function to validate quoted string, which is: - * quoted-string = <"> *(qtext/quoted-pair) <"> - * - * @access private - * @param string $qstring The string to check - * @return boolean Success or failure. - */ - function _validateQuotedString($qstring) - { - // Leading and trailing " - $qstring = substr($qstring, 1, -1); - - // Perform check. - return !(preg_match('/(.)[\x0D\\\\"]/', $qstring, $matches) && $matches[1] != '\\'); - } - - /** - * Function to validate a mailbox, which is: - * mailbox = addr-spec ; simple address - * / phrase route-addr ; name and route-addr - * - * @access public - * @param string &$mailbox The string to check. - * @return boolean Success or failure. - */ - function validateMailbox(&$mailbox) - { - // A couple of defaults. - $phrase = ''; - $comment = ''; - - // Catch any RFC822 comments and store them separately - $_mailbox = $mailbox; - while (strlen(trim($_mailbox)) > 0) { - $parts = explode('(', $_mailbox); - $before_comment = $this->_splitCheck($parts, '('); - if ($before_comment != $_mailbox) { - // First char should be a ( - $comment = substr(str_replace($before_comment, '', $_mailbox), 1); - $parts = explode(')', $comment); - $comment = $this->_splitCheck($parts, ')'); - $comments[] = $comment; - - // +1 is for the trailing ) - $_mailbox = substr($_mailbox, strpos($_mailbox, $comment)+strlen($comment)+1); - } else { - break; - } - } - - for($i=0; $i' && substr($mailbox, 0, 1) != '<') { - $parts = explode('<', $mailbox); - $name = $this->_splitCheck($parts, '<'); - - $phrase = trim($name); - $route_addr = trim(substr($mailbox, strlen($name.'<'), -1)); - - if ($this->_validatePhrase($phrase) === false || ($route_addr = $this->_validateRouteAddr($route_addr)) === false) - return false; - - // Only got addr-spec - } else { - // First snip angle brackets if present. - if (substr($mailbox,0,1) == '<' && substr($mailbox,-1) == '>') - $addr_spec = substr($mailbox,1,-1); - else - $addr_spec = $mailbox; - - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) - return false; - } - - // Construct the object that will be returned. - $mbox = new stdClass(); - - // Add the phrase (even if empty) and comments - $mbox->personal = $phrase; - $mbox->comment = isset($comments) ? $comments : array(); - - if (isset($route_addr)) { - $mbox->mailbox = $route_addr['local_part']; - $mbox->host = $route_addr['domain']; - $route_addr['adl'] !== '' ? $mbox->adl = $route_addr['adl'] : ''; - } else { - $mbox->mailbox = $addr_spec['local_part']; - $mbox->host = $addr_spec['domain']; - } - - $mailbox = $mbox; - return true; - } - - /** - * This function validates a route-addr which is: - * route-addr = "<" [route] addr-spec ">" - * - * Angle brackets have already been removed at the point of - * getting to this function. - * - * @access private - * @param string $route_addr The string to check. - * @return mixed False on failure, or an array containing validated address/route information on success. - */ - function _validateRouteAddr($route_addr) - { - // Check for colon. - if (strpos($route_addr, ':') !== false) { - $parts = explode(':', $route_addr); - $route = $this->_splitCheck($parts, ':'); - } else { - $route = $route_addr; - } - - // If $route is same as $route_addr then the colon was in - // quotes or brackets or, of course, non existent. - if ($route === $route_addr){ - unset($route); - $addr_spec = $route_addr; - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) { - return false; - } - } else { - // Validate route part. - if (($route = $this->_validateRoute($route)) === false) { - return false; - } - - $addr_spec = substr($route_addr, strlen($route . ':')); - - // Validate addr-spec part. - if (($addr_spec = $this->_validateAddrSpec($addr_spec)) === false) { - return false; - } - } - - if (isset($route)) { - $return['adl'] = $route; - } else { - $return['adl'] = ''; - } - - $return = array_merge($return, $addr_spec); - return $return; - } - - /** - * Function to validate a route, which is: - * route = 1#("@" domain) ":" - * - * @access private - * @param string $route The string to check. - * @return mixed False on failure, or the validated $route on success. - */ - function _validateRoute($route) - { - // Split on comma. - $domains = explode(',', trim($route)); - - for ($i = 0; $i < count($domains); $i++) { - $domains[$i] = str_replace('@', '', trim($domains[$i])); - if (!$this->_validateDomain($domains[$i])) return false; - } - - return $route; - } - - /** - * Function to validate a domain, though this is not quite what - * you expect of a strict internet domain. - * - * domain = sub-domain *("." sub-domain) - * - * @access private - * @param string $domain The string to check. - * @return mixed False on failure, or the validated domain on success. - */ - function _validateDomain($domain) - { - // Note the different use of $subdomains and $sub_domains - $subdomains = explode('.', $domain); - - while (count($subdomains) > 0) { - $sub_domains[] = $this->_splitCheck($subdomains, '.'); - for ($i = 0; $i < $this->index + 1; $i++) - array_shift($subdomains); - } - - for ($i = 0; $i < count($sub_domains); $i++) { - if (!$this->_validateSubdomain(trim($sub_domains[$i]))) - return false; - } - - // Managed to get here, so return input. - return $domain; - } - - /** - * Function to validate a subdomain: - * subdomain = domain-ref / domain-literal - * - * @access private - * @param string $subdomain The string to check. - * @return boolean Success or failure. - */ - function _validateSubdomain($subdomain) - { - if (preg_match('|^\[(.*)]$|', $subdomain, $arr)){ - if (!$this->_validateDliteral($arr[1])) return false; - } else { - if (!$this->_validateAtom($subdomain)) return false; - } - - // Got here, so return successful. - return true; - } - - /** - * Function to validate a domain literal: - * domain-literal = "[" *(dtext / quoted-pair) "]" - * - * @access private - * @param string $dliteral The string to check. - * @return boolean Success or failure. - */ - function _validateDliteral($dliteral) - { - return !preg_match('/(.)[][\x0D\\\\]/', $dliteral, $matches) && $matches[1] != '\\'; - } - - /** - * Function to validate an addr-spec. - * - * addr-spec = local-part "@" domain - * - * @access private - * @param string $addr_spec The string to check. - * @return mixed False on failure, or the validated addr-spec on success. - */ - function _validateAddrSpec($addr_spec) - { - $addr_spec = trim($addr_spec); - - // Split on @ sign if there is one. - if (strpos($addr_spec, '@') !== false) { - $parts = explode('@', $addr_spec); - $local_part = $this->_splitCheck($parts, '@'); - $domain = substr($addr_spec, strlen($local_part . '@')); - - // No @ sign so assume the default domain. - } else { - $local_part = $addr_spec; - $domain = $this->default_domain; - } - - if (($local_part = $this->_validateLocalPart($local_part)) === false) return false; - if (($domain = $this->_validateDomain($domain)) === false) return false; - - // Got here so return successful. - return array('local_part' => $local_part, 'domain' => $domain); - } - - /** - * Function to validate the local part of an address: - * local-part = word *("." word) - * - * @access private - * @param string $local_part - * @return mixed False on failure, or the validated local part on success. - */ - function _validateLocalPart($local_part) - { - $parts = explode('.', $local_part); - - // Split the local_part into words. - while (count($parts) > 0){ - $words[] = $this->_splitCheck($parts, '.'); - for ($i = 0; $i < $this->index + 1; $i++) { - array_shift($parts); - } - } - - // Validate each word. - for ($i = 0; $i < count($words); $i++) { - if ($this->_validatePhrase(trim($words[$i])) === false) return false; - } - - // Managed to get here, so return the input. - return $local_part; - } - - /** - * Returns an approximate count of how many addresses are - * in the given string. This is APPROXIMATE as it only splits - * based on a comma which has no preceding backslash. Could be - * useful as large amounts of addresses will end up producing - * *large* structures when used with parseAddressList(). - * - * @param string $data Addresses to count - * @return int Approximate count - */ - function approximateCount($data) - { - return count(preg_split('/(?@. This can be - * sufficient for most people. Optional stricter mode can - * be utilised which restricts mailbox characters allowed - * to alphanumeric, full stop, hyphen and underscore. - * - * @param string $data Address to check - * @param boolean $strict Optional stricter mode - * @return mixed False if it fails, an indexed array - * username/domain if it matches - */ - function isValidInetAddress($data, $strict = false) - { - $regex = $strict ? '/^([.0-9a-z_-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i' : '/^([*+!.&#$|\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i'; - if (preg_match($regex, trim($data), $matches)) { - return array($matches[1], $matches[2]); - } else { - return false; - } - } -} - -?> \ No newline at end of file diff --git a/1.2/library/framework/mail/htmlMimeMail5.php b/1.2/library/framework/mail/htmlMimeMail5.php deleted file mode 100644 index 5830e954..00000000 --- a/1.2/library/framework/mail/htmlMimeMail5.php +++ /dev/null @@ -1,1111 +0,0 @@ -attachments = array(); - $this->html_images = array(); - $this->headers = array(); - $this->is_built = false; - $this->text = ''; - $this->sendmail_path = '/usr/lib/sendmail -ti'; - - /** - * If you want the auto load functionality - * to find other image/file types, add the - * extension and content type here. - */ - $this->image_types = array('gif' => 'image/gif', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'bmp' => 'image/bmp', - 'png' => 'image/png', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'swf' => 'application/x-shockwave-flash'); - - /** - * Set these up - */ - $this->build_params['html_encoding'] = new QPrintEncoding(); - $this->build_params['text_encoding'] = new SevenBitEncoding(); - $this->build_params['html_charset'] = 'ISO-8859-1'; - $this->build_params['text_charset'] = 'ISO-8859-1'; - $this->build_params['head_charset'] = 'ISO-8859-1'; - $this->build_params['text_wrap'] = 998; - - /** - * Defaults for smtp sending - */ - if (!empty($_SERVER['HTTP_HOST'])) { - $helo = $_SERVER['HTTP_HOST']; - - } elseif (!empty($_SERVER['SERVER_NAME'])) { - $helo = $_SERVER['SERVER_NAME']; - - } else { - $helo = 'localhost'; - } - - $this->smtp_params['host'] = 'localhost'; - $this->smtp_params['port'] = 25; - $this->smtp_params['helo'] = $helo; - $this->smtp_params['auth'] = false; - $this->smtp_params['user'] = ''; - $this->smtp_params['pass'] = ''; - - /** - * Make sure the MIME version header is first. - */ - $this->headers['MIME-Version'] = '1.0'; - $this->headers['X-Mailer'] = 'htmlMimeMail5 '; - } - - /** - * Accessor to set the CRLF style - * - * @param string $crlf CRLF style to use. - * Use \r\n for SMTP, and \n - * for normal. - */ - public function setCRLF($crlf = "\n") - { - if (!defined('CRLF')) { - define('CRLF', $crlf, true); - } - - if (!defined('MAIL_MIMEPART_CRLF')) { - define('MAIL_MIMEPART_CRLF', $crlf, true); - } - } - - /** - * Accessor to set the SMTP parameters - * - * @param string $host Hostname - * @param string $port Port - * @param string $helo HELO string to use - * @param bool $auth User authentication or not - * @param string $user Username - * @param string $pass Password - */ - public function setSMTPParams($host = null, $port = null, $helo = null, $auth = null, $user = null, $pass = null) - { - if (!is_null($host)) $this->smtp_params['host'] = $host; - if (!is_null($port)) $this->smtp_params['port'] = $port; - if (!is_null($helo)) $this->smtp_params['helo'] = $helo; - if (!is_null($auth)) $this->smtp_params['auth'] = $auth; - if (!is_null($user)) $this->smtp_params['user'] = $user; - if (!is_null($pass)) $this->smtp_params['pass'] = $pass; - } - - /** - * Sets sendmail path and options (optionally) (when directly piping to sendmail) - * - * @param string $path Path and options for sendmail command - */ - public function setSendmailPath($path) - { - $this->sendmail_path = $path; - } - - /** - * Accessor function to set the text encoding - * - * @param object $encoding Text encoding to use - */ - public function setTextEncoding(iEncoding $encoding) - { - $this->build_params['text_encoding'] = $encoding; - } - - /** - * Accessor function to set the HTML encoding - * - * @param object $encoding HTML encoding to use - */ - public function setHTMLEncoding(iEncoding $encoding) - { - $this->build_params['html_encoding'] = $encoding; - } - - /** - * Accessor function to set the text charset - * - * @param string $charset Character set to use - */ - public function setTextCharset($charset = 'ISO-8859-1') - { - $this->build_params['text_charset'] = $charset; - } - - /** - * Accessor function to set the HTML charset - * - * @param string $charset Character set to use - */ - public function setHTMLCharset($charset = 'ISO-8859-1') - { - $this->build_params['html_charset'] = $charset; - } - - /** - * Accessor function to set the header encoding charset - * - * @param string $charset Character set to use - */ - public function setHeadCharset($charset = 'ISO-8859-1') - { - $this->build_params['head_charset'] = $charset; - } - - /** - * Accessor function to set the text wrap count - * - * @param integer $count Point at which to wrap text - */ - public function setTextWrap($count = 998) - { - $this->build_params['text_wrap'] = $count; - } - - /** - * Accessor to set a header - * - * @param string $name Name of header - * @param string $value Value of header - */ - public function setHeader($name, $value) - { - $this->headers[$name] = $value; - } - - /** - * Accessor to add a Subject: header - * - * @param string $subject Subject to set - */ - public function setSubject($subject) - { - $this->headers['Subject'] = $subject; - } - - /** - * Accessor to add a From: header - * - * @param string $from From address - */ - public function setFrom($from) - { - $this->headers['From'] = $from; - } - - /** - * Accessor to set priority. Priority given should be either - * high, normal or low. Can also be specified numerically, - * being 1, 3 or 5 (respectively). - * - * @param mixed $priority The priority to use. - */ - public function setPriority($priority = 'normal') - { - switch (strtolower($priority)) { - case 'high': - case '1': - $this->headers['X-Priority'] = '1'; - $this->headers['X-MSMail-Priority'] = 'High'; - break; - - case 'normal': - case '3': - $this->headers['X-Priority'] = '3'; - $this->headers['X-MSMail-Priority'] = 'Normal'; - break; - - case 'low': - case '5': - $this->headers['X-Priority'] = '5'; - $this->headers['X-MSMail-Priority'] = 'Low'; - break; - } - } - - /** - * Accessor to set the return path - * - * @param string $return_path Return path to use - */ - public function setReturnPath($return_path) - { - $this->return_path = $return_path; - } - - /** - * Accessor to add a Cc: header - * - * @param string $cc Carbon Copy address - */ - public function setCc($cc) - { - $this->headers['Cc'] = $cc; - } - - /** - * Accessor to add a Bcc: header - * - * @param string $bcc Blind Carbon Copy address - */ - public function setBcc($bcc) - { - $this->headers['Bcc'] = $bcc; - } - - /** - * Adds plain text. Use this function - * when NOT sending html email - * - * @param string $text Plain text of email - */ - public function setText($text) - { - $this->text = $text; - } - - /** - * Adds HTML to the emails, with an associated text part. - * If third part is given, images in the email will be loaded - * from this directory. - * - * @param string $html HTML part of email - * @param string $images_dir Images directory - */ - function setHTML($html, $images_dir = null) - { - $this->html = $html; - - if (!empty($images_dir)) { - $this->findHtmlImages($images_dir); - } - } - - /** - * Function for extracting images from - * html source. This function will look - * through the html code supplied by setHTML() - * and find any file that ends in one of the - * extensions defined in $obj->image_types. - * If the file exists it will read it in and - * embed it, (not an attachment). - * - * @param string $images_dir Images directory to look in - */ - private function findHtmlImages($images_dir) - { - // Build the list of image extensions - $extensions = array_keys($this->image_types); - - preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $matches); - - foreach ($matches[1] as $m) { - if (file_exists($images_dir . $m)) { - $html_images[] = $m; - $this->html = str_replace($m, basename($m), $this->html); - } - } - - /** - * Go thru found images - */ - if (!empty($html_images)) { - - // If duplicate images are embedded, they may show up as attachments, so remove them. - $html_images = array_unique($html_images); - sort($html_images); - - foreach ($html_images as $img) { - if ($image = file_get_contents($images_dir . $img)) { - $ext = preg_replace('#^.*\.(\w{3,4})$#e', 'strtolower("$1")', $img); - $content_type = $this->image_types[$ext]; - $this->addEmbeddedImage(new stringEmbeddedImage($image, basename($img), $content_type)); - } - } - } - } - - /** - * Adds an image to the list of embedded - * images. - * - * @param string $object Embedded image object - */ - public function addEmbeddedImage($embeddedImage) - { - $embeddedImage->cid = md5(uniqid(time())); - - $this->html_images[] = $embeddedImage; - } - - - /** - * Adds a file to the list of attachments. - * - * @param string $attachment Attachment object - */ - public function addAttachment($attachment) - { - $this->attachments[] = $attachment; - } - - /** - * Adds a text subpart to a mime_part object - * - * @param object $obj - * @return object Mime part object - */ - private function addTextPart(&$message) - { - $params['content_type'] = 'text/plain'; - $params['encoding'] = $this->build_params['text_encoding']->getType(); - $params['charset'] = $this->build_params['text_charset']; - - if (!empty($message)) { - $message->addSubpart($this->text, $params); - } else { - $message = new Mail_mimePart($this->text, $params); - } - } - - /** - * Adds a html subpart to a mime_part object - * - * @param object $obj - * @return object Mime part object - */ - private function addHtmlPart(&$message) - { - $params['content_type'] = 'text/html'; - $params['encoding'] = $this->build_params['html_encoding']->getType(); - $params['charset'] = $this->build_params['html_charset']; - - if (!empty($message)) { - $message->addSubpart($this->html, $params); - } else { - $message = new Mail_mimePart($this->html, $params); - } - } - - /** - * Starts a message with a mixed part - * - * @return object Mime part object - */ - private function addMixedPart(&$message) - { - $params['content_type'] = 'multipart/mixed'; - - $message = new Mail_mimePart('', $params); - } - - /** - * Adds an alternative part to a mime_part object - * - * @param object $obj - * @return object Mime part object - */ - private function addAlternativePart(&$message) - { - $params['content_type'] = 'multipart/alternative'; - - if (!empty($message)) { - return $message->addSubpart('', $params); - } else { - $message = new Mail_mimePart('', $params); - } - } - - /** - * Adds a html subpart to a mime_part object - * - * @param object $obj - * @return object Mime part object - */ - private function addRelatedPart(&$message) - { - $params['content_type'] = 'multipart/related'; - - if (!empty($message)) { - return $message->addSubpart('', $params); - } else { - $message = new Mail_mimePart('', $params); - } - } - - /** - * Adds all html images to a mime_part object - * - * @param object $obj Message object - */ - private function addHtmlImageParts(&$message) - { - foreach ($this->html_images as $value) { - $params['content_type'] = $value->contentType; - $params['encoding'] = $value->encoding->getType(); - $params['disposition'] = 'inline'; - $params['dfilename'] = $value->name; - $params['cid'] = $value->cid; - - $message->addSubpart($value->data, $params); - } - } - - /** - * Adds all attachments to a mime_part object - * - * @param object $obj Message object - */ - private function addAttachmentParts(&$message) - { - foreach ($this->attachments as $value) { - $params['content_type'] = $value->contentType; - $params['encoding'] = $value->encoding->getType(); - $params['disposition'] = 'attachment'; - $params['dfilename'] = $value->name; - - $message->addSubpart($value->data, $params); - } - } - - /** - * Builds the multipart message. - */ - private function build() - { - if (!empty($this->html_images)) { - foreach ($this->html_images as $value) { - $quoted = preg_quote($value->name); - $cid = preg_quote($value->cid); - - $this->html = preg_replace("#src=\"$quoted\"|src='$quoted'#", "src=\"cid:$cid\"", $this->html); - $this->html = preg_replace("#background=\"$quoted\"|background='$quoted'#", "background=\"cid:$cid\"", $this->html); - } - } - - $message = null; - $attachments = !empty($this->attachments); - $html_images = !empty($this->html_images); - $html = !empty($this->html); - $text = !$html; - - switch (true) { - case $text: - $message = null; - if ($attachments) { - $this->addMixedPart($message); - } - - $this->addTextPart($message); - - // Attachments - $this->addAttachmentParts($message); - break; - - case $html AND !$attachments AND !$html_images: - $this->addAlternativePart($message); - - $this->addTextPart($message); - $this->addHtmlPart($message); - break; - - case $html AND !$attachments AND $html_images: - $this->addRelatedPart($message); - $alt = $this->addAlternativePart($message); - - $this->addTextPart($alt); - $this->addHtmlPart($alt); - - // HTML images - $this->addHtmlImageParts($message); - break; - - case $html AND $attachments AND !$html_images: - $this->addMixedPart($message); - $alt = $this->addAlternativePart($message); - - $this->addTextPart($alt); - $this->addHtmlPart($alt); - - // Attachments - $this->addAttachmentParts($message); - break; - - case $html AND $attachments AND $html_images: - $this->addMixedPart($message); - $rel = $this->addRelatedPart($message); - $alt = $this->addAlternativePart($rel); - - $this->addTextPart($alt); - $this->addHtmlPart($alt); - - // HTML images - $this->addHtmlImageParts($rel); - - // Attachments - $this->addAttachmentParts($message); - break; - - } - - if (isset($message)) { - $output = $message->encode(); - $this->output = $output['body']; - $this->headers = array_merge($this->headers, $output['headers']); - - // Figure out hostname - if (!empty($_SERVER['HTTP_HOST'])) { - $hostname = $_SERVER['HTTP_HOST']; - - } else if (!empty($_SERVER['SERVER_NAME'])) { - $hostname = $_SERVER['SERVER_NAME']; - - } else if (!empty($_ENV['HOSTNAME'])) { - $hostname = $_ENV['HOSTNAME']; - - } else { - $hostname = 'localhost'; - } - - $message_id = sprintf('<%s.%s@%s>', base_convert(time(), 10, 36), base_convert(rand(), 10, 36), $hostname); - $this->headers['Message-ID'] = $message_id; - - $this->is_built = true; - return true; - } else { - return false; - } - } - - /** - * Function to encode a header if necessary - * according to RFC2047 - * - * @param string $input Value to encode - * @param string $charset Character set to use - * @return string Encoded value - */ - private function encodeHeader($input, $charset = 'ISO-8859-1') - { - preg_match_all('/(\w*[\x80-\xFF]+\w*)/', $input, $matches); - foreach ($matches[1] as $value) { - $replacement = preg_replace('/([\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value); - $input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input); - } - - return $input; - } - - /** - * Sends the mail. - * - * @param array $recipients Array of receipients to send the mail to - * @param string $type How to send the mail ('mail' or 'sendmail' or 'smtp') - * @return mixed - */ - public function send($recipients, $type = 'mail') - { - if (!defined('CRLF')) { - $this->setCRLF( ($type == 'mail' OR $type == 'sendmail') ? "\n" : "\r\n"); - } - - if (!$this->is_built) { - $this->build(); - } - - switch ($type) { - case 'mail': - $subject = ''; - if (!empty($this->headers['Subject'])) { - $subject = $this->encodeHeader($this->headers['Subject'], $this->build_params['head_charset']); - unset($this->headers['Subject']); - } - - // Get flat representation of headers - foreach ($this->headers as $name => $value) { - $headers[] = $name . ': ' . $this->encodeHeader($value, $this->build_params['head_charset']); - } - - $to = $this->encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']); - - if (!empty($this->return_path)) { - $result = mail($to, $subject, $this->output, implode(CRLF, $headers), '-f' . $this->return_path); - } else { - $result = mail($to, $subject, $this->output, implode(CRLF, $headers)); - } - - // Reset the subject in case mail is resent - if ($subject !== '') { - $this->headers['Subject'] = $subject; - } - - - // Return - return $result; - break; - - case 'sendmail': - // Get flat representation of headers - foreach ($this->headers as $name => $value) { - $headers[] = $name . ': ' . $this->encodeHeader($value, $this->build_params['head_charset']); - } - - // Encode To: - $headers[] = 'To: ' . $this->encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']); - - // Get return path arg for sendmail command if necessary - $returnPath = ''; - if (!empty($this->return_path)) { - $returnPath = '-f' . $this->return_path; - } - - $pipe = popen($this->sendmail_path . " " . $returnPath, 'w'); - $bytes = fputs($pipe, implode(CRLF, $headers) . CRLF . CRLF . $this->output); - $r = pclose($pipe); - - return $r; - break; - - case 'smtp': - require_once(dirname(__FILE__) . '/smtp.php'); - require_once(dirname(__FILE__) . '/RFC822.php'); - $smtp = &smtp::connect($this->smtp_params); - - // Parse recipients argument for internet addresses - foreach ($recipients as $recipient) { - $addresses = Mail_RFC822::parseAddressList($recipient, $this->smtp_params['helo'], null, false); - foreach ($addresses as $address) { - $smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host); - } - } - unset($addresses); // These are reused - unset($address); // These are reused - - // Get flat representation of headers, parsing - // Cc and Bcc as we go - foreach ($this->headers as $name => $value) { - if ($name == 'Cc' OR $name == 'Bcc') { - $addresses = Mail_RFC822::parseAddressList($value, $this->smtp_params['helo'], null, false); - foreach ($addresses as $address) { - $smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host); - } - } - if ($name == 'Bcc') { - continue; - } - $headers[] = $name . ': ' . $this->encodeHeader($value, $this->build_params['head_charset']); - } - // Add To header based on $recipients argument - $headers[] = 'To: ' . $this->encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']); - - // Add headers to send_params - $send_params['headers'] = $headers; - $send_params['recipients'] = array_values(array_unique($smtp_recipients)); - $send_params['body'] = $this->output; - - // Setup return path - if (isset($this->return_path)) { - $send_params['from'] = $this->return_path; - } elseif (!empty($this->headers['From'])) { - $from = Mail_RFC822::parseAddressList($this->headers['From']); - $send_params['from'] = sprintf('%s@%s', $from[0]->mailbox, $from[0]->host); - } else { - $send_params['from'] = 'postmaster@' . $this->smtp_params['helo']; - } - - // Send it - if (!$smtp->send($send_params)) { - $this->errors = $smtp->getErrors(); - return false; - } - return true; - break; - } - } - - /** - * Use this method to return the email - * in message/rfc822 format. Useful for - * adding an email to another email as - * an attachment. there's a commented - * out example in example.php. - * - * @param array $recipients Array of recipients - * @param string $type Method to be used to send the mail. - * Used to determine the line ending type. - */ - public function getRFC822($recipients, $type = 'mail') - { - // Make up the date header as according to RFC822 - $this->setHeader('Date', date('D, d M y H:i:s O')); - - if (!defined('CRLF')) { - $this->setCRLF($type == 'mail' ? "\n" : "\r\n"); - } - - if (!$this->is_built) { - $this->build(); - } - - // Return path ? - if (isset($this->return_path)) { - $headers[] = 'Return-Path: ' . $this->return_path; - } - - // Get flat representation of headers - foreach ($this->headers as $name => $value) { - $headers[] = $name . ': ' . $value; - } - $headers[] = 'To: ' . implode(', ', $recipients); - - return implode(CRLF, $headers) . CRLF . CRLF . $this->output; - } -} // End of class. - - -/** -* Attachment classes -*/ -class attachment -{ - /** - * Data of attachment - * @var string - */ - public $data; - - /** - * Name of attachment (filename) - * @var string - */ - public $name; - - /** - * Content type of attachment - * @var string - */ - public $contentType; - - /** - * Encoding type of attachment - * @var object - */ - public $encoding; - - /** - * Constructor - * - * @param string $data File data - * @param string $name Name of attachment (filename) - * @param string $contentType Content type of attachment - * @param object $encoding Encoding type to use - */ - public function __construct($data, $name, $contentType, iEncoding $encoding) - { - $this->data = $data; - $this->name = $name; - $this->contentType = $contentType; - $this->encoding = $encoding; - } -} - - -/** -* File based attachment class -*/ -class fileAttachment extends attachment -{ - /** - * Constructor - * - * @param string $filename Name of file - * @param string $contentType Content type of file - * @param string $encoding What encoding to use - */ - public function __construct($filename, $contentType = 'application/octet-stream', $encoding = null) - { - $encoding = is_null($encoding) ? new Base64Encoding() : $encoding; - - parent::__construct(file_get_contents($filename), basename($filename), $contentType, $encoding); - } -} - - -/** -* Attachment class to handle attachments which are contained -* in a variable. -*/ -class stringAttachment extends attachment -{ - /** - * Constructor - * - * @param string $data File data - * @param string $name Name of attachment (filename) - * @param string $contentType Content type of file - * @param string $encoding What encoding to use - */ - public function __construct($data, $name = '', $contentType = 'application/octet-stream', $encoding = null) - { - $encoding = is_null($encoding) ? new Base64Encoding() : $encoding; - - parent::__construct($data, $name, $contentType, $encoding); - } -} - - -/** -* File based embedded image class -*/ -class fileEmbeddedImage extends fileAttachment -{ -} - - -/** -* String based embedded image class -*/ -class stringEmbeddedImage extends stringAttachment -{ -} - - -/** -* -*/ -/** -* Encoding interface -*/ -interface iEncoding -{ - public function encode($input); - public function getType(); -} - - -/** -* Base64 Encoding class -*/ -class Base64Encoding implements iEncoding -{ - /* - * Function to encode data using - * base64 encoding. - * - * @param string $input Data to encode - */ - public function encode($input) - { - return rtrim(chunk_split(base64_encode($input), 76, defined('MAIL_MIME_PART_CRLF') ? MAIL_MIME_PART_CRLF : "\r\n")); - } - - /** - * Returns type - */ - public function getType() - { - return 'base64'; - } -} - - -/** -* Quoted Printable Encoding class -*/ -class QPrintEncoding implements iEncoding -{ - /* - * Function to encode data using - * quoted-printable encoding. - * - * @param string $input Data to encode - */ - public function encode($input) - { - // Replace non printables - $input = preg_replace('/([^\x20\x21-\x3C\x3E-\x7E\x0A\x0D])/e', 'sprintf("=%02X", ord("\1"))', $input); - $inputLen = strlen($input); - $outLines = array(); - $output = ''; - - $lines = preg_split('/\r?\n/', $input); - - // Walk through each line - for ($i=0; $i $lineMax) { - $outLines[] = substr($lines[$i], 0, $lineMax - 1) . "="; // \r\n Gets added when lines are imploded - $lines[$i] = substr($lines[$i], $lineMax - 1); - $i--; // Ensure this line gets redone as we just changed it - } else { - $outLines[] = $lines[$i]; - } - } - - // Convert trailing whitespace - $output = preg_replace('/(\x20+)$/me', 'str_replace(" ", "=20", "\1")', $outLines); - - return implode("\r\n", $output); - } - - /** - * Returns type - */ - public function getType() - { - return 'quoted-printable'; - } -} - - -/** -* 7Bit Encoding class -*/ -class SevenBitEncoding implements iEncoding -{ - /* - * Function to "encode" data using - * 7bit encoding. - * - * @param string $input Data to encode - */ - public function encode($input) - { - return $input; - } - - /** - * Returns type - */ - public function getType() - { - return '7bit'; - } -} - - -/** -* 8Bit Encoding class -*/ -class EightBitEncoding implements iEncoding -{ - /* - * Function to "encode" data using - * 8bit encoding. - * - * @param string $input Data to encode - */ - public function encode($input) - { - return $input; - } - - /** - * Returns type - */ - public function getType() - { - return '8bit'; - } -} -?> \ No newline at end of file diff --git a/1.2/library/framework/mail/mimePart.php b/1.2/library/framework/mail/mimePart.php deleted file mode 100644 index 3fa702c6..00000000 --- a/1.2/library/framework/mail/mimePart.php +++ /dev/null @@ -1,311 +0,0 @@ -addSubPart($body, $params); -* -* // Now add an attachment. Assume $attach is -* the contents of the attachment -* -* $params['content_type'] = 'application/zip'; -* $params['encoding'] = 'base64'; -* $params['disposition'] = 'attachment'; -* $params['dfilename'] = 'example.zip'; -* $attach =& $email->addSubPart($body, $params); -* -* // Now build the email. Note that the encode -* // function returns an associative array containing two -* // elements, body and headers. You will need to add extra -* // headers, (eg. Mime-Version) before sending. -* -* $email = $message->encode(); -* $email['headers'][] = 'Mime-Version: 1.0'; -* -* -* Further examples are available at http://www.phpguru.org -* -* TODO: -* - Set encode() to return the $obj->encoded if encode() -* has already been run. Unless a flag is passed to specifically -* re-build the message. -* -* @author Richard Heyes -* @version $Revision: 1.3 $ -* @package Mail -*/ - -class Mail_MIMEPart -{ - /** - * The encoding type of this part - * @var string - */ - private $encoding; - - /** - * An array of subparts - * @var array - */ - private $subparts; - - /** - * The output of this part after being built - * @var string - */ - private $encoded; - - /** - * Headers for this part - * @var array - */ - private $headers; - - /** - * The body of this part (not encoded) - * @var string - */ - private $body; - - /** - * Constructor. - * - * Sets up the object. - * - * @param $body - The body of the mime part if any. - * @param $params - An associative array of parameters: - * content_type - The content type for this part eg multipart/mixed - * encoding - The encoding to use, 7bit, 8bit, base64, or quoted-printable - * cid - Content ID to apply - * disposition - Content disposition, inline or attachment - * dfilename - Optional filename parameter for content disposition - * description - Content description - * charset - Character set to use - * @access public - */ - public function __construct($body = '', $params = array()) - { - if (!defined('MAIL_MIMEPART_CRLF')) { - define('MAIL_MIMEPART_CRLF', defined('MAIL_MIME_CRLF') ? MAIL_MIME_CRLF : "\r\n", true); - } - - foreach ($params as $key => $value) { - switch ($key) { - case 'content_type': - $headers['Content-Type'] = $value . (isset($charset) ? '; charset="' . $charset . '"' : ''); - break; - - case 'encoding': - $this->encoding = $value; - $headers['Content-Transfer-Encoding'] = $value; - break; - - case 'cid': - $headers['Content-ID'] = '<' . $value . '>'; - break; - - case 'disposition': - $headers['Content-Disposition'] = $value . (isset($dfilename) ? '; filename="' . $dfilename . '"' : ''); - break; - - case 'dfilename': - if (isset($headers['Content-Disposition'])) { - $headers['Content-Disposition'] .= '; filename="' . $value . '"'; - } else { - $dfilename = $value; - } - break; - - case 'description': - $headers['Content-Description'] = $value; - break; - - case 'charset': - if (isset($headers['Content-Type'])) { - $headers['Content-Type'] .= '; charset="' . $value . '"'; - } else { - $charset = $value; - } - break; - } - } - - // Default content-type - if (!isset($headers['Content-Type'])) { - $headers['Content-Type'] = 'text/plain'; - } - - // Default encoding - if (!isset($this->encoding)) { - $this->encoding = '7bit'; - } - - // Assign stuff to member variables - $this->encoded = array(); - $this->headers = $headers; - $this->body = $body; - } - - /** - * Encodes and returns the email. Also stores - * it in the encoded member variable - * - * @return An associative array containing two elements, - * body and headers. The headers element is itself - * an indexed array. - */ - public function encode() - { - $encoded =& $this->encoded; - - if (!empty($this->subparts)) { - srand((double)microtime()*1000000); - $boundary = '=_' . md5(uniqid(rand()) . microtime()); - $this->headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF . "\t" . 'boundary="' . $boundary . '"'; - - // Add body parts to $subparts - for ($i = 0; $i < count($this->subparts); $i++) { - $headers = array(); - $tmp = $this->subparts[$i]->encode(); - foreach ($tmp['headers'] as $key => $value) { - $headers[] = $key . ': ' . $value; - } - $subparts[] = implode(MAIL_MIMEPART_CRLF, $headers) . MAIL_MIMEPART_CRLF . MAIL_MIMEPART_CRLF . $tmp['body']; - } - - $encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF . - implode('--' . $boundary . MAIL_MIMEPART_CRLF, $subparts) . - '--' . $boundary.'--' . MAIL_MIMEPART_CRLF; - } else { - $encoded['body'] = $this->getEncodedData($this->body, $this->encoding) . MAIL_MIMEPART_CRLF; - } - - // Add headers to $encoded - $encoded['headers'] =& $this->headers; - - return $encoded; - } - - /** - * Adds a subpart to current mime part and returns - * a reference to it - * - * @param $body The body of the subpart, if any. - * @param $params The parameters for the subpart, same - * as the $params argument for constructor. - * @return A reference to the part you just added. - */ - public function addSubPart($body, $params) - { - $this->subparts[] = new Mail_MIMEPart($body, $params); - - return $this->subparts[count($this->subparts) - 1]; - } - - /** - * Returns encoded data based upon encoding passed to it - * - * @param $data The data to encode. - * @param $encoding The encoding type to use, 7bit, base64, - * or quoted-printable. - */ - private function getEncodedData($data, $encoding) - { - switch ($encoding) { - case '8bit': - case '7bit': - return $data; - break; - - case 'quoted-printable': - return $this->quotedPrintableEncode($data); - break; - - case 'base64': - return rtrim(chunk_split(base64_encode($data), 76, MAIL_MIMEPART_CRLF)); - break; - - default: - return $data; - } - } - - /** - * Encodes data to quoted-printable standard. - * - * @param $input The data to encode - * @param $line_max Optional max line length. Should - * not be more than 76 chars - */ - private function quotedPrintableEncode($input , $line_max = 76) - { - $lines = preg_split("/\r?\n/", $input); - $eol = MAIL_MIMEPART_CRLF; - $escape = '='; - $output = ''; - - while(list(, $line) = each($lines)){ - - $linlen = strlen($line); - $newline = ''; - - for ($i = 0; $i < $linlen; $i++) { - $char = substr($line, $i, 1); - $dec = ord($char); - - if (($dec == 32) AND ($i == ($linlen - 1))){ // convert space at eol only - $char = '=20'; - - } elseif($dec == 9) { - ; // Do nothing if a tab. - } elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) { - $char = $escape . strtoupper(sprintf('%02s', dechex($dec))); - } - - if ((strlen($newline) + strlen($char)) >= $line_max) { // MAIL_MIMEPART_CRLF is not counted - $output .= $newline . $escape . $eol; // soft line break; " =\r\n" is okay - $newline = ''; - } - $newline .= $char; - } // end of for - $output .= $newline . $eol; - } - $output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf - return $output; - } -} // End of class -?> \ No newline at end of file diff --git a/1.2/library/framework/mail/sendMail.php b/1.2/library/framework/mail/sendMail.php index 15adfd33..a725f6c4 100644 --- a/1.2/library/framework/mail/sendMail.php +++ b/1.2/library/framework/mail/sendMail.php @@ -1,103 +1,49 @@ -$from, - 'To'=>$to, - 'Subject'=>$subject, -// 'Reply-To'=>$from, -// 'Return-Path'=>$from, - 'Content-Transfer-Encoding'=>'8bit', - 'MIME-Version'=>'1.0', - 'Date'=>date('D, d M Y H:i:s O'), - 'Message-ID'=>'<'.md5(date('YmdHis')).'@mail.scores-decisions.com>', - 'X-Priority'=>3, - 'X-Mailer'=>'PHP v'.phpversion(), - ); -/* -# Boundry for marking the split & Multitype Headers -$mime_boundary=md5(time()); -$headers .= ''.$eol; -$headers .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"".$eol; -$msg = ""; - */ - $mime = new Mail_mime(); - $footer="";/* +'') $mime->setTXTBody($text.$footer); - if ($html<>'') $mime->setHTMLBody($html); - - foreach ($tabAttachedFiles as $file) - $mime->addAttachment($file); - - //do not ever try to call these lines in reverse order - $body = $mime->get(); - $headers = $mime->headers($headers); - - $params=array( 'host'=>'smtpauth.online.net', // SMTP_HOST - 'port'=>25, //SMTP_PORT, - ); - $params=array( 'host'=>SMTP_HOST, - 'port'=>SMTP_PORT, - //'debug'=>true, - //'persist'=>true, - ); - - if (SMTP_USER=='' && SMTP_PASS=='') - $params['auth'] = false; - else { - $params['username'] = SMTP_USER; - $params['password'] = SMTP_PASS; - }/* - $params['auth'] = true; - $params['username'] = 'buzuk@scores-decisions.com'; - $params['password'] = 'catsysyo92'; - */ - - $nbEssais=0; - while (1) { - // Create the mail object using the Mail::factory method - $mail_object = Mail::factory('smtp', $params); - // Trying to send the mail - $send = $mail_object->send($to, $headers, $body); - $nbEssais++; - if (PEAR::isError($send)) { - /** @todo tester les différents codes erreur **/ - echo date('Y-m-d H:i:s'). " sendMail.php - essai #$nbEssais : ".$send->getMessage().EOL; - if (preg_match('/too many connections|421/i', $send->getMessage())) - sleep($nbEssais); - else { - $strTo=implode(';', $to); - file_put_contents( LOG_PATH.'/sendMailError.log', - date('Y-m-d H:i:s')."\t#$nbEssais\t$strTo\t".$send->getMessage().EOL, - FILE_APPEND); - break; - } - - } else { - /** Si nous sommes en mode CLI, alors on fait en sorte de ne pas atteindre - la limite des 25 mails par minute (ramené à 100 / minute) - **/ - if (MODE_EXEC==MODE_CLI) usleep(500000); - break; - } - } - - return true; + $mail = new Zend_Mail('ISO-8859-15'); + $tr = new Zend_Mail_Transport_Smtp(SMTP_HOST, array('port'=>SMTP_PORT)); + $mail->setDefaultTransport($tr); + $mail->setFrom($from); + if ( count($to) > 0 ) { + foreach ( $to as $item ) { + $mail->addTo($item); + } } - - ?> \ No newline at end of file + $mail->setSubject($subject); + + if ($text!='') { + $mail->setBodyText(mb_convert_encoding($text, 'ISO-8859-15', 'UTF-8')); + } + + if ($html!='') { + $mail->setBodyHtml(mb_convert_encoding($html, 'ISO-8859-15', 'UTF-8')); + } + + if ( count($tabAttachedFiles) > 0 ) { + foreach ($tabAttachedFiles as $file) { + $at = new Zend_Mime_Part( file_get_contents( $file ) ); + $mail->addAttachment($at); + } + } + + try { + $mail->send(); + } catch (Zend_Mail_Transport_Exception $e) { + file_put_contents(LOG_PATH.'/sendMailError.log',date('Y-m-d H:i:s')." - ".$e->getMessage().PHP_EOL, FILE_APPEND); + } +} +?> \ No newline at end of file diff --git a/1.2/library/framework/mail/sendMailOld.php b/1.2/library/framework/mail/sendMailOld.php deleted file mode 100644 index 7d657edd..00000000 --- a/1.2/library/framework/mail/sendMailOld.php +++ /dev/null @@ -1,33 +0,0 @@ -send($to, $headers, $body); - - if (PEAR::isError($mail_object)) - return $mail_object->getMessage(); - - return true; - } - ?> \ No newline at end of file diff --git a/1.2/library/framework/mail/smtp.php b/1.2/library/framework/mail/smtp.php deleted file mode 100644 index 6e10dd7a..00000000 --- a/1.2/library/framework/mail/smtp.php +++ /dev/null @@ -1,369 +0,0 @@ - - * pass - Password for authentication Default: - * timeout - The timeout in seconds for the call Default: 5 - * to fsockopen() - */ - public function __construct($params = array()) - { - - if(!defined('CRLF')) - define('CRLF', "\r\n", TRUE); - - $this->authenticated = FALSE; - $this->timeout = 5; - $this->status = SMTP_STATUS_NOT_CONNECTED; - $this->host = 'smtp.free.fr'; - $this->port = 25; - $this->helo = 'srvsd01'; - $this->auth = FALSE; - $this->user = ''; - $this->pass = ''; - $this->errors = array(); - - foreach($params as $key => $value){ - $this->$key = $value; - } - } - - /** - * Connect function. This will, when called - * statically, create a new smtp object, - * call the connect function (ie this function) - * and return it. When not called statically, - * it will connect to the server and send - * the HELO command. - */ - public function connect($params = array()) - { - if (!isset($this->status)) { - $obj = new smtp($params); - if($obj->connect()){ - $obj->status = SMTP_STATUS_CONNECTED; - } - - return $obj; - - } else { - $this->connection = fsockopen($this->host, $this->port, $errno, $errstr, $this->timeout); - if (function_exists('socket_set_timeout')) { - @socket_set_timeout($this->connection, 5, 0); - } - - $greeting = $this->get_data(); - if (is_resource($this->connection)) { - return $this->auth ? $this->ehlo() : $this->helo(); - } else { - $this->errors[] = 'Failed to connect to server: '.$errstr; - return FALSE; - } - } - } - - /** - * Function which handles sending the mail. - * Arguments: - * $params - Optional assoc array of parameters. - * Can contain: - * recipients - Indexed array of recipients - * from - The from address. (used in MAIL FROM:), - * this will be the return path - * headers - Indexed array of headers, one header per array entry - * body - The body of the email - * It can also contain any of the parameters from the connect() - * function - */ - public function send($params = array()) - { - foreach ($params as $key => $value) { - $this->set($key, $value); - } - - if ($this->is_connected()) { - - // Do we auth or not? Note the distinction between the auth variable and auth() function - if ($this->auth AND !$this->authenticated) { - if(!$this->auth()) - return false; - } - - $this->mail($this->from); - - if (is_array($this->recipients)) { - foreach ($this->recipients as $value) { - $this->rcpt($value); - } - } else { - $this->rcpt($this->recipients); - } - - if (!$this->data()) { - return false; - } - - // Transparency - $headers = str_replace(CRLF.'.', CRLF.'..', trim(implode(CRLF, $this->headers))); - $body = str_replace(CRLF.'.', CRLF.'..', $this->body); - $body = substr($body, 0, 1) == '.' ? '.'.$body : $body; - - $this->send_data($headers); - $this->send_data(''); - $this->send_data($body); - $this->send_data('.'); - - $result = (substr(trim($this->get_data()), 0, 3) === '250'); - //$this->rset(); - return $result; - } else { - $this->errors[] = 'Not connected!'; - return FALSE; - } - } - - /** - * Function to implement HELO cmd - */ - private function helo() - { - if(is_resource($this->connection) - AND $this->send_data('HELO '.$this->helo) - AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){ - - return true; - - } else { - $this->errors[] = 'HELO command failed, output: ' . trim(substr(trim($error),3)); - return false; - } - } - - /** - * Function to implement EHLO cmd - */ - private function ehlo() - { - if (is_resource($this->connection) - AND $this->send_data('EHLO '.$this->helo) - AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){ - - return true; - - } else { - $this->errors[] = 'EHLO command failed, output: ' . trim(substr(trim($error),3)); - return false; - } - } - - /** - * Function to implement RSET cmd - */ - private function rset() - { - if (is_resource($this->connection) - AND $this->send_data('RSET') - AND substr(trim($error = $this->get_data()), 0, 3) === '250' ){ - - return true; - - } else { - $this->errors[] = 'RSET command failed, output: ' . trim(substr(trim($error),3)); - return false; - } - } - - /** - * Function to implement QUIT cmd - */ - private function quit() - { - if(is_resource($this->connection) - AND $this->send_data('QUIT') - AND substr(trim($error = $this->get_data()), 0, 3) === '221' ){ - - fclose($this->connection); - $this->status = SMTP_STATUS_NOT_CONNECTED; - return true; - - } else { - $this->errors[] = 'QUIT command failed, output: ' . trim(substr(trim($error),3)); - return false; - } - } - - /** - * Function to implement AUTH cmd - */ - private function auth() - { - if (is_resource($this->connection) - AND $this->send_data('AUTH LOGIN') - AND substr(trim($error = $this->get_data()), 0, 3) === '334' - AND $this->send_data(base64_encode($this->user)) // Send username - AND substr(trim($error = $this->get_data()),0,3) === '334' - AND $this->send_data(base64_encode($this->pass)) // Send password - AND substr(trim($error = $this->get_data()),0,3) === '235' ){ - - $this->authenticated = true; - return true; - - } else { - $this->errors[] = 'AUTH command failed: ' . trim(substr(trim($error),3)); - return false; - } - } - - /** - * Function that handles the MAIL FROM: cmd - */ - private function mail($from) - { - if ($this->is_connected() - AND $this->send_data('MAIL FROM:<'.$from.'>') - AND substr(trim($this->get_data()), 0, 2) === '250' ) { - - return true; - - } else { - return false; - } - } - - /** - * Function that handles the RCPT TO: cmd - */ - private function rcpt($to) - { - if($this->is_connected() - AND $this->send_data('RCPT TO:<'.$to.'>') - AND substr(trim($error = $this->get_data()), 0, 2) === '25' ){ - - return true; - - } else { - $this->errors[] = trim(substr(trim($error), 3)); - return false; - } - } - - /** - * Function that sends the DATA cmd - */ - private function data() - { - if($this->is_connected() - AND $this->send_data('DATA') - AND substr(trim($error = $this->get_data()), 0, 3) === '354' ) { - - return true; - - } else { - $this->errors[] = trim(substr(trim($error), 3)); - return false; - } - } - - /** - * Function to determine if this object - * is connected to the server or not. - */ - private function is_connected() - { - return (is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED)); - } - - /** - * Function to send a bit of data - */ - private function send_data($data) - { - if(is_resource($this->connection)){ - return fwrite($this->connection, $data.CRLF, strlen($data)+2); - - } else { - return false; - } - } - - /** - * Function to get data. - */ - private function get_data() - { - $return = ''; - $line = ''; - $loops = 0; - - if(is_resource($this->connection)){ - while((strpos($return, CRLF) === FALSE OR substr($line,3,1) !== ' ') AND $loops < 100){ - $line = fgets($this->connection, 512); - $return .= $line; - $loops++; - } - return $return; - - }else - return false; - } - - /** - * Sets a variable - */ - public function set($var, $value) - { - $this->$var = $value; - return true; - } - - /** - * Function to return the errors array - */ - public function getErrors() - { - return $this->errors; - } - - -} // End of class -?> \ No newline at end of file