diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCellGroup.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCellGroup.h
new file mode 100644
index 0000000000000000000000000000000000000000..e18f5262a8f835f84f00b63fa86e37fbeb15e978
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCellGroup.h
@@ -0,0 +1,81 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOCELLGROUP_H
+#define CALOCELLGROUP_H 
+#include "GaudiKernel/MsgStream.h"
+#include "CaloIdentifier/CaloCell_ID.h"
+#include <bitset>
+
+class CaloCellGroup {
+
+ public:
+  CaloCellGroup();
+
+  //Format: 
+  //[EMEC,EMB/A/Layer/Region/Eta/Phi] value1, value2, ...
+  bool setDefinition(const CaloCell_ID* caloCellId, const std::string& definition, MsgStream& logStr);
+  bool inGroup(const Identifier id) const;
+  const std::vector<float>& getValue() const {return m_values;}
+
+  void printDef() const;
+
+
+ private:
+  void complain(MsgStream&,std::string) const;
+
+  enum Fields {
+    LAYER,
+    REGION,
+    ETA,
+    PHI,
+    NFIELDS
+  };
+
+  /*
+  enum Calo {
+    EMB=0,
+    EMEC,
+    HEC,
+    FCAL
+  };
+  
+  //Group defintion:
+  std::bitset<4> m_subCalos;
+  //std::bitset<CaloCell_ID:SUBCALO> m_subCalos;
+  */
+
+
+  bool m_pos,m_neg;
+  bool m_emb,m_emecow,m_emeciw,m_hec,m_fcal;
+  std::vector<std::pair<int,int> > m_fieldBoundaries;
+  std::vector<float> m_values;
+
+  const CaloCell_ID *m_caloCellId;
+  
+};
+
+class CaloCellGroupList {
+ public:
+  CaloCellGroupList():m_initialized(false) {};
+
+  //Convention: First element of vector has default values, following elements as defined above
+  bool setDefinition(const CaloCell_ID* caloCellId, const std::vector<std::string>& definitions, MsgStream& logStr);
+
+  void dump(const CaloCell_ID* caloCellId); // for debugging
+
+   void printDef() const;
+  
+  const std::vector<float>& valuesForCell(const Identifier id);
+
+  const std::vector<float>& getDefaults() const {return m_defaults; }
+
+ private:
+  std::vector<CaloCellGroup> m_groups;
+  std::vector<float> m_defaults;
+  bool m_initialized;
+};
+
+
+#endif
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.h
new file mode 100644
index 0000000000000000000000000000000000000000..0b5331ccacf7d4df26d22c8bea449843030f385c
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.h
@@ -0,0 +1,402 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloCell_Base_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jul, 2012
+ * @brief Helper base class for offline cell identifiers
+ */
+
+
+#ifndef CALOIDENTIFIER_CALOCELL_BASE_ID_H
+#define CALOIDENTIFIER_CALOCELL_BASE_ID_H
+
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "CaloIdentifier/CaloID.h"
+#include "CaloIdentifier/LArNeighbours.h"
+#include "CaloGeoHelpers/CaloSampling.h"
+
+
+class CaloNeighbours;
+
+
+/**
+  * @class CaloCell_Base_ID
+  * @brief Helper base class for offline cell identifiers
+  *
+  * This class provides an interface to generate offline identifiers
+  * for the full calorimeter (LAr + Tile). <br>
+  * It factors out code common to both
+  * @c CaloCell_ID and @c CaloCell_SuperCell_ID.
+  * 
+  */  
+class CaloCell_Base_ID : public AtlasDetectorID, public CaloSampling
+{
+public:
+  typedef Identifier::size_type  size_type ;
+
+  /** enumeration of sub calorimeters*/
+  enum SUBCALO { LAREM = 0, LARHEC = 1, LARFCAL = 2, TILE = 3, LARMINIFCAL = 4, NSUBCALO = 5, NOT_VALID=CaloIDHelper::NOT_VALID /*999999*/ };
+
+  /** enumeration of samplings (i.e.layers) separately for various sub calorimeters */
+  //typedef CaloSampling::CaloSample CaloSample;
+  // enum CaloSample {
+  //   PreSamplerB=0, EMB1, EMB2, EMB3,              // LAr barrel
+  //   PreSamplerE, EME1, EME2, EME3,                // LAr EM endcap
+  //   HEC0, HEC1, HEC2, HEC3,                       // Hadronic end cap cal.
+  //   TileBar0, TileBar1, TileBar2,                 // Tile barrel
+  //   TileGap1, TileGap2, TileGap3,                 // Tile gap (ITC & scint)
+  //   TileExt0, TileExt1, TileExt2,                 // Tile extended barrel
+  //   FCAL0, FCAL1, FCAL2,                          // Forward EM endcap
+  //   MINIFCAL0, MINIFCAL1, MINIFCAL2, MINIFCAL3,   // MiniFCAL 
+  //   Unknown
+  // };
+
+
+  /** Constructor */
+  CaloCell_Base_ID(const LArEM_Base_ID*    em_id, 
+                   const LArHEC_Base_ID*   hec_id,
+                   const LArFCAL_Base_ID*  fcal_id, 
+                   const LArMiniFCAL_ID*   minifcal_id,
+                   const Tile_Base_ID*     tile_id,
+		   bool supercell);
+
+  ~CaloCell_Base_ID();
+
+
+  int GetSubCaloName( const std::string SubCaloName ) const;
+
+  bool do_checks(void) const;
+
+  void set_do_checks(bool do_checks) const;
+
+  /// Initialization from the identifier dictionary
+  virtual int         initialize_from_dictionary(const IdDictMgr& dict_mgr);
+
+  /** Make a region ID from constituting fields and subCalo index;
+      for (Mini)FCAL and Tiles, the last argument is not used  
+      for Tiles, 'barec_or_posneg' corresponds to 'section', 'sampling_or_fcalmodule' corresponds to 'side'  */
+  Identifier  region_id   	(const int subCalo, 
+				 const int barec_or_posneg, 
+                                 const int sampling_or_fcalmodule, 
+                                 const int region_or_dummy ) const;
+
+  /** Make a cell (== channel) ID from constituting fields and subCalo index;
+      for (Mini)FCAL,  'region_or_dummy' argument is not used 
+      for Tiles, 'barec_or_posneg' corresponds to 'section', 'sampling_or_fcalmodule' corresponds to 'side', 'region_or_dummy' corresponds to 'module',
+                 'eta' corresponds to 'tower' and 'phi' corresponds to 'sample'  */
+  Identifier  cell_id   	(const int subCalo, 
+				 const int barec_or_posneg, 
+                                 const int sampling_or_fcalmodule,
+                                 const int region_or_dummy,
+				 const int eta,    
+                                 const int phi ) const;
+				 
+  /** Make a region ID from a cell ID   */     
+  Identifier  region_id	(const Identifier cellId ) const;
+
+  /** not available for  Tile
+      depth is only used for miniFCAL */
+  Identifier  cell_id( const Identifier regionId,
+		       const int eta, const int phi,
+                       int depth = 0) const ;
+			     
+  /** create region id from 'global'(==full calo) hash id*/
+  Identifier region_id	(const IdentifierHash caloRegionHash) const;
+  /** create region id from 'local'(==internal to sub calo) hash id and sub calorimeter */
+  Identifier region_id	(const int subCalo, const IdentifierHash subCaloRegionHash) const; 
+
+  /** create cell id from  'global' hash id*/
+  Identifier cell_id	(const IdentifierHash caloCellHash) const;
+  /** create cell id from 'local'(==internal to sub calo) hash id and sub calorimeter */
+  Identifier cell_id	(const int subCalo, const IdentifierHash subCaloCellHash) const;
+
+  /** create hash id from 'global' region id*/
+  IdentifierHash calo_region_hash  (const Identifier regionId) const;
+  /** create hash id from 'global' region id
+      @return subCalo*/
+  IdentifierHash subcalo_region_hash  (const Identifier regionId, int& subCalo) const;  // subCalo is an output argument
+
+  /** create hash id from 'global' cell id */
+  IdentifierHash calo_cell_hash (const Identifier cellId) const; 
+  /** create hash id from 'global' cell id
+      @return subCalo*/
+  IdentifierHash subcalo_cell_hash (const Identifier cellId, int& subCalo) const;  // subCalo is an output argument
+
+  /**  cell 'global' hash table max size  */
+  size_type     calo_cell_hash_max (void) const;
+  /**  cell 'global' region table max size  */
+  size_type     calo_region_hash_max (void) const;
+
+  /**  to loop on 'global' cell hashes of one sub-calorimeter alone  
+       @param id
+       @return caloCellMin, CaloCellMax*/
+  void calo_cell_hash_range (const Identifier id, IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const;
+  /**  to loop on 'global' cell hashes of one sub-calorimeter alone  
+       @param subCalo
+       @return caloCellMin, CaloCellMax*/
+  void calo_cell_hash_range (const int subCalo,   IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const;
+  /**  to loop on 'global' region hashes of one sub-calorimeter alone  
+       @param id
+       @return caloCellMin, CaloCellMax*/
+  void calo_reg_hash_range (const Identifier id, IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const;
+  /**  to loop on 'global' region hashes of one sub-calorimeter alone  
+       @param subCalo
+       @return caloCellMin, CaloCellMax*/
+  void calo_reg_hash_range (const int subCalo,   IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const;
+
+  /** to translate a cell 'global' caloHash into a subCaloHash  @return subCalo */
+  IdentifierHash subcalo_cell_hash (const IdentifierHash caloHash, int& subCalo) const;
+  /** to translate a region 'global' caloHash into a subCaloHash  @return subCalo */
+  IdentifierHash subcalo_region_hash (const IdentifierHash caloHash, int& subCalo) const;
+
+  /** to translate a cell subCaloHash with its subCalo index into a 'global' caloHash  @param subCalo, subCaloHash */
+  IdentifierHash calo_cell_hash (const int subCalo, const IdentifierHash subCaloHash) const;
+  /** to translate a region subCaloHash with its subCalo index into a 'global' caloHash  @param subCalo, subCaloHash */
+  IdentifierHash calo_region_hash (const int subCalo, const IdentifierHash subCaloHash) const;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+  /** begin iterator over full set of Identifiers (LAr + Tiles) */
+  id_iterator cell_begin    (void) const;
+  /** end iterator over full set of Identifiers (LAr + Tiles) */
+  id_iterator cell_end      (void) const;
+  /** Range over full set of Identifiers (LAr + Tiles) */
+  id_range cell_range      (void) const;
+
+  /** begin iterator over subCalo sets of cell Identifiers @param subCalo */
+  id_iterator cell_begin    (const int subCalo) const;
+  /** end iterator over subCalo sets of cell Identifiers @param subCalo */
+  id_iterator cell_end      (const int subCalo) const;
+  /** Range over subCalo sets of cell Identifiers @param subCalo */
+  id_range cell_range      (const int subCalo) const;
+
+  /** begin iterator over set of region Identifiers (LAr + Tiles) */
+  id_iterator reg_begin    (void) const;
+  /** end iterator over set of region Identifiers (LAr + Tiles) */
+  id_iterator reg_end      (void) const;
+  /** Range over set of region Identifiers (LAr + Tiles) */
+  id_range reg_range      (void) const;
+
+  /** begin iterator over subCalo sets of region Identifiers  @param subCalo */
+  id_iterator reg_begin    (const int subCalo) const;
+  /** end iterator over subCalo sets of region Identifiers  @param subCalo */
+  id_iterator reg_end      (const int subCalo) const;
+  /** Range over subCalo sets of region Identifiers  @param subCalo */
+  id_range reg_range      (const int subCalo) const;
+
+  /** test if the id belongs to LArEM */
+  bool	is_em   	(const Identifier id) const;
+  /** test if the hash id belongs to LArEM */
+  bool	is_em   	(const IdentifierHash caloHash) const;
+  
+  /** test if the id belongs to the EM barrel */
+  bool	is_em_barrel   	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap */
+  bool	is_em_endcap	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap inner wheel */
+  bool	is_em_endcap_inner	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap outer wheel */
+  bool	is_em_endcap_outer	(const Identifier id) const;
+  
+  /** test if the id belongs to the HEC */
+  bool	is_hec   	(const Identifier id) const;
+  /** test if the hash id belongs to the HEC */
+  bool	is_hec   	(const IdentifierHash caloHash) const;
+  
+  /** test if the id belongs to the FCAL - true also for MiniFCAL */
+  bool	is_fcal   	(const Identifier id) const;
+  /** test if the hash id belongs to the FCAL - true also for MiniFCAL */
+  bool	is_fcal   	(const IdentifierHash caloHash) const;
+  
+  /** test if the id belongs to the MiniFCAL */
+  bool	is_minifcal   	(const Identifier id) const;
+  /** test if the hash id belongs to the FCAL */
+  bool	is_minifcal   	(const IdentifierHash caloHash) const;
+  
+  /** test if the id belongs to the Tiles */
+  bool	is_tile   	(const Identifier id) const;
+  /** test if the hash id belongs to the Tiles */
+  bool	is_tile   	(const IdentifierHash caloHash) const;
+  bool  is_tile		(const ExpandedIdentifier& id) const;
+
+  /** test if the id belongs to the Tiles barrel*/
+  bool	is_tile_barrel                  (const Identifier id) const;
+  /** test if the id belongs to the Tiles extended barrel */
+  bool	is_tile_extbarrel               (const Identifier id) const;
+  /** test if the id belongs to the Tiles gap */
+  bool	is_tile_gap                     (const Identifier id) const;
+  bool	is_tile_gapscin                 (const Identifier id) const;
+  /** test if the id belongs to the Tiles negative side*/
+  bool  is_tile_negative                (const Identifier id) const;
+  /** test if the id belongs to the Tiles positive side*/
+  bool  is_tile_positive                (const Identifier id) const;
+
+  /** returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs. */
+  int         sub_calo    (const Identifier         id)const;
+  /** returns an int taken from SUBCALO enum and describing the subCalo to which the hash Id belongs. */
+  int         sub_calo    (const IdentifierHash caloHash)const;
+
+  /** returns an int taken from Sampling enum and describing the subCalo to which the Id belongs. */
+  int         calo_sample    (const Identifier         id)const;
+  /** returns an int taken from Sampling enum and describing the subCalo to which the hash Id belongs. */
+  int         calo_sample    (const IdentifierHash caloHash)const;
+			     
+  
+  /* field values (proposal)*/
+  /*
+  int         first_field     (const Identifier id)const;  // corresponds to 'barrel_ec' for LArEM, 'pos_neg' for LArHEC and LArFCAL, 'section' for Tile
+  int         second_field    (const Identifier id)const;  // corresponds to 'sampling' for LArEM and LArHEC, 'module' for LArFCAL, 'side' for Tile
+  int         third_field     (const Identifier id)const;  // corresponds to 'region' for LArEM and LArHEC, nothing for LArFCAL, 'module' for Tile
+  int         fourth_field    (const Identifier id)const;  // corresponds to 'eta' for LAr, 'tower' for Tile
+  int         fifth_field     (const Identifier id)const;  // corresponds to 'phi' for LAr, 'sample' for Tile
+  */
+
+  /** LAr field values (NOT_VALID == invalid request) @warning  corresponds to 'barrel_ec' for LArEM */
+  int         pos_neg         (const Identifier id)const;        // corresponds to 'barrel_ec' for LArEM
+  /** LAr field values (NOT_VALID == invalid request) @warning  corresponds 'module' for FCAL/MiniFCAL*/
+  int         sampling        (const Identifier id)const;        // corresponds 'module' for FCAL/MiniFCAL
+  /** LAr field values (NOT_VALID == invalid request) @warning  no region for FCAL, is 'depth' for MiniFCAL*/
+  int         region          (const Identifier id)const;        // no region for FCAL, is 'depth' for MiniFCAL
+  /** LAr field values (NOT_VALID == invalid request) */
+  int         eta             (const Identifier id)const;       
+  /** LAr field values (NOT_VALID == invalid request) */
+  int         phi             (const Identifier id)const;       
+  /** Tile field values (NOT_VALID == invalid request) */
+  int         section         (const Identifier id)const;       
+  /** Tile field values (NOT_VALID == invalid request) */
+  int         side            (const Identifier id)const;
+  /** Tile field values (NOT_VALID == invalid request) */
+  int         module          (const Identifier id)const;      
+  /** Tile field values (NOT_VALID == invalid request) */
+  int         tower           (const Identifier id)const;       
+  /** Tile field values (NOT_VALID == invalid request) */
+  int         sample          (const Identifier id)const;       
+
+  /** Test if the identifier represents a supercell. */
+  bool        is_supercell    (const Identifier id)const;
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier regId) const;    // LAr only
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+
+  /** LAr eta granularity  (NOT_VALID == failure) 
+      @warning input = REGION ID !! */
+  float etaGranularity(const Identifier regId) const;
+  /** LAr phi granularity  (NOT_VALID == failure) 
+      @warning input = REGION ID !! */
+  float phiGranularity(const Identifier regId) const;
+  /** minimum LAr eta for this region
+      @warning input = REGION ID !! */
+  float eta0(const Identifier regId) const;
+  /** minimum LAr phi for this region
+      @warning input = REGION ID !! */
+  float phi0(const Identifier regId) const;
+
+    /** access to EM idHelper 
+     */
+    const LArEM_Base_ID*        em_idHelper() const 
+    {     return m_emHelper;
+      }
+    /** access to HEC idHelper 
+     */
+    const LArHEC_Base_ID*       hec_idHelper() const
+      {     return m_hecHelper;
+      }
+
+    /** access to FCAL idHelper 
+     */
+    const LArFCAL_Base_ID*      fcal_idHelper() const
+      {     return m_fcalHelper;
+      }
+
+    /** access to MiniFCAL idHelper 
+     */
+    const LArMiniFCAL_ID*      minifcal_idHelper() const
+      {     return m_minifcalHelper;
+      }
+
+    /** access to Tile idHelper 
+     */
+    const Tile_Base_ID*        tile_idHelper() const 
+      {     return m_tileHelper;
+      }
+      
+
+  /** access to hashes for neighbours      return == 0 for neighbours found  <br>
+       @warning !!! input and output hash indices are all meant as CALO !!! <br>
+      option = prevInPhi, nextInPhi, prevInEta, nextInEta, corners2D, prevInSamp, nextInSamp, upAndDown, prevSubDet, nextSubDet, corners3D, prevSuperCalo, nextSuperCalo<br>
+      and the composite options <br>
+      option = faces2D = prevInPhi|nextInPhi|prevInEta|nextInEta, <br>
+                all2D = corners2D|faces2D, <br>
+                all3D = all2D|prevInSamp|nextInSamp|upAndDown|prevSubDet|nextSubDet, <br>
+		all3DwithCorners = all3D|corners3D, <br>
+		super3D                = all3D|prevSuperCalo|nextSuperCalo<br>
+               in 'nextInEta', 'nextInSamp', 'nextSubDet', and 'nextSuperCalo', next means 'away from the centre of Atlas' <br>
+               in 'prevInEta', 'prevInSamp', 'prevSubDet', and 'prevSuperCalo', prev means 'towards   the centre of Atlas' <br> 
+               'all2D', 'all3D', and 'all3DwithCorners' return neighbours within one
+                sub detector, while 'super3D' returns neighbours also across
+                detector boundaries. <br>*/ 
+  int    get_neighbours(const IdentifierHash caloHash,
+                        const LArNeighbours::neighbourOption& option,
+                        std::vector<IdentifierHash>& neighbourList) const;
+
+
+
+private:
+  SUBCALO get_subcalo (Identifier id) const;
+
+  const LArEM_Base_ID*        m_emHelper;
+  const LArHEC_Base_ID*       m_hecHelper;
+  const LArFCAL_Base_ID*      m_fcalHelper;
+  const LArMiniFCAL_ID*       m_minifcalHelper;
+  const Tile_Base_ID*         m_tileHelper;
+  const CaloIDHelper*         m_helpers[NSUBCALO];
+
+  size_type                     m_cell_hash_max;
+  size_type                     m_region_hash_max;
+  size_type                     m_cell_min[NSUBCALO];
+  size_type                     m_cell_max[NSUBCALO];
+  size_type                     m_reg_min[NSUBCALO];
+  size_type                     m_reg_max[NSUBCALO];
+  std::vector<Identifier>       m_cell_vec;
+  std::vector<Identifier>       m_region_vec;
+
+private:
+  // Avoid coverity warnings.
+  CaloCell_Base_ID (const CaloCell_Base_ID&);
+  CaloCell_Base_ID& operator= (const CaloCell_Base_ID&);
+
+  CaloNeighbours*               m_caloNeighbours;
+
+  unsigned                      m_supercell;
+};
+
+
+
+#include "CaloIdentifier/CaloCell_Base_ID.icc"
+
+
+
+#endif // not CALOIDENTIFIER_CALOCELL_BASE_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.icc b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.icc
new file mode 100644
index 0000000000000000000000000000000000000000..99cae44d6ca57d89ef089fface8badf08248e7be
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_Base_ID.icc
@@ -0,0 +1,990 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloCell_Base_ID.icc
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jul, 2012
+ * @brief Helper base class for offline cell identifiers
+ */
+
+
+//--------------------
+// Inline definitions
+//--------------------
+
+//----------------------------------------------------------------------------
+inline  Identifier  
+CaloCell_Base_ID::region_id   	(const int subCalo, 
+				 const int barec_or_posneg, 
+                                 const int sampling_or_fcalmodule, 
+                                 const int region_or_dummy ) const
+{
+  Identifier result(0);  // this returns a pixel identifier [2.1.-2.0.0]
+  if( subCalo == LAREM ) {
+    return m_emHelper->region_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy);
+  } 
+  else if( subCalo == LARHEC ) {
+    return m_hecHelper->region_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy);
+  } 
+  else if( subCalo == LARFCAL ) {
+    return m_fcalHelper->module_id(barec_or_posneg, sampling_or_fcalmodule);
+  } 
+  else if( subCalo == LARMINIFCAL ) {
+    return m_minifcalHelper->module_id(barec_or_posneg, sampling_or_fcalmodule);
+  } 
+  else if( subCalo == TILE ) {
+    return m_tileHelper->region_id(barec_or_posneg, sampling_or_fcalmodule);
+  } 
+  else {
+    return(result);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::cell_id (const int subCalo, 
+                           const int barec_or_posneg, 
+                           const int sampling_or_fcalmodule,
+                           const int region_or_dummy,
+                           const int eta,
+                           const int phi) const
+{
+  Identifier result(0);
+  if( subCalo == LAREM ) {
+    return m_emHelper->channel_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy, eta, phi);
+  } 
+  else if( subCalo == LARHEC ) {
+    return m_hecHelper->channel_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy, eta, phi);
+  } 
+  else if( subCalo == LARFCAL ) {
+    return m_fcalHelper->channel_id(barec_or_posneg, sampling_or_fcalmodule, eta, phi);
+  } 
+  else if( subCalo == LARMINIFCAL ) {
+    return m_minifcalHelper->channel_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy, eta, phi);
+  } 
+  else if( subCalo == TILE ) {
+    return m_tileHelper->cell_id(barec_or_posneg, sampling_or_fcalmodule, region_or_dummy, eta, phi);
+  } 
+  else {
+    return(result);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::region_id ( const Identifier cellId ) const 
+{
+  Identifier result(0);
+  if(m_emHelper->is_lar_em(cellId)) {
+    return m_emHelper->region_id(cellId);
+  } 
+  else if(m_emHelper->is_lar_hec(cellId)) {
+    return m_hecHelper->region_id(cellId);
+  } 
+  else if(m_emHelper->is_lar_minifcal(cellId)) { 
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->module_id(cellId);
+  } 
+  else if(m_emHelper->is_lar_fcal(cellId)) {
+    return m_fcalHelper->module_id(cellId);
+  } 
+  else if(m_emHelper->is_tile(cellId)) {
+    return m_tileHelper->region_id(cellId);
+  } 
+  else {
+    return(result);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::cell_id (const Identifier regionId,
+                           const int eta,
+                           const int phi,
+                           int depth) const 
+{
+  Identifier result(0);
+  if(m_emHelper->is_lar_em(regionId)) {
+    return m_emHelper->channel_id(regionId,eta,phi);
+  } 
+  else if(m_emHelper->is_lar_hec(regionId)) {
+    return m_hecHelper->channel_id(regionId,eta,phi);
+  } 
+  else if(m_emHelper->is_lar_minifcal(regionId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->channel_id(regionId, depth,eta,phi);
+  } 
+  else if(m_emHelper->is_lar_fcal(regionId)) {
+    return m_fcalHelper->channel_id(regionId,eta,phi);
+  } 
+  else {
+    return(result);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::region_id    (const IdentifierHash caloRegionHash) const
+{
+  return(m_region_vec[caloRegionHash]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::region_id (const int subCalo,
+                             const IdentifierHash subCaloRegionHash) const
+{
+    return(m_region_vec[subCaloRegionHash + m_reg_min[subCalo]]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::cell_id    (const IdentifierHash caloCellHash) const
+{
+    return(m_cell_vec[caloCellHash]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloCell_Base_ID::cell_id    (const int subCalo, const IdentifierHash subCaloCellHash) const
+{
+    return(m_cell_vec[subCaloCellHash + m_cell_min[subCalo]]);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash 
+CaloCell_Base_ID::calo_region_hash (const Identifier regionId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_region_vec.begin(),m_region_vec.end(),regionId);
+    if ( it != m_region_vec.end() ){
+      return (it - m_region_vec.begin());
+    }
+    return (NOT_VALID);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash 
+CaloCell_Base_ID::subcalo_region_hash (const Identifier regionId, int& subCalo) const
+{
+  subCalo = LAREM ;
+  if(is_hec(regionId)) {
+    subCalo = LARHEC ;
+  } 
+  else     if (is_minifcal(regionId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    subCalo = LARMINIFCAL ;
+  }
+  else     if (is_fcal(regionId)) {
+    subCalo = LARFCAL ;
+  }
+  else     if (is_tile(regionId)) {
+    subCalo = TILE ;
+  }
+  std::vector<Identifier>::const_iterator it = std::lower_bound(m_region_vec.begin(),m_region_vec.end(),regionId);
+  if ( it != m_region_vec.end() ){
+    return (it - m_region_vec.begin() - m_reg_min[subCalo]);
+  }
+  return (NOT_VALID);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash 
+CaloCell_Base_ID::subcalo_cell_hash (const Identifier cellId, int& subCalo) const
+{
+  subCalo = get_subcalo (cellId);
+  switch (subCalo) {
+
+  // LArEM / HEC have subdetector-specific optimized methods.
+  case LAREM:
+    return m_emHelper->channel_hash (cellId);
+  case LARHEC:
+    return m_hecHelper->channel_hash (cellId);
+  case LARFCAL:
+  case TILE:
+  case LARMINIFCAL:
+    return m_helpers[subCalo]->channel_hash (cellId);
+  default:
+    return NOT_VALID;
+  }
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash 
+CaloCell_Base_ID::calo_cell_hash (const Identifier cellId) const
+{
+  int subcalo;
+  IdentifierHash hash = subcalo_cell_hash (cellId, subcalo);
+  if (hash != NOT_VALID)
+    return m_cell_min[subcalo] + hash;
+  return NOT_VALID;
+}
+
+//----------------------------------------------------------------------------
+inline CaloCell_Base_ID::size_type     CaloCell_Base_ID::calo_cell_hash_max (void) const
+{
+  return m_cell_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloCell_Base_ID::size_type     CaloCell_Base_ID::calo_region_hash_max (void) const
+{
+  return m_region_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline  void CaloCell_Base_ID::calo_cell_hash_range (const Identifier id, IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    caloCellMin = m_cell_min[LAREM];
+    caloCellMax = m_cell_max[LAREM];
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    caloCellMin = m_cell_min[LARHEC];
+    caloCellMax = m_cell_max[LARHEC];
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    caloCellMin = m_cell_min[LARMINIFCAL];
+    caloCellMax = m_cell_max[LARMINIFCAL];
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    caloCellMin = m_cell_min[LARFCAL];
+    caloCellMax = m_cell_max[LARFCAL];
+  } 
+  else if(m_emHelper->is_tile(id)) {
+    caloCellMin = m_cell_min[TILE];
+    caloCellMax = m_cell_max[TILE];
+  } 
+  else {
+    caloCellMin = NOT_VALID;
+    caloCellMax = NOT_VALID;
+  } 
+}
+
+//----------------------------------------------------------------------------
+inline  void CaloCell_Base_ID::calo_reg_hash_range (const Identifier id, IdentifierHash& caloRegMin, IdentifierHash& caloRegMax) const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    caloRegMin = m_reg_min[LAREM];
+    caloRegMax = m_reg_max[LAREM];
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    caloRegMin = m_reg_min[LARHEC];
+    caloRegMax = m_reg_max[LARHEC];
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    caloRegMin = m_reg_min[LARMINIFCAL];
+    caloRegMax = m_reg_max[LARMINIFCAL];
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    caloRegMin = m_reg_min[LARFCAL];
+    caloRegMax = m_reg_max[LARFCAL];
+  } 
+  else if(m_emHelper->is_tile(id)) {
+    caloRegMin = m_reg_min[TILE];
+    caloRegMax = m_reg_max[TILE];
+  } 
+  else {
+    caloRegMin = NOT_VALID;
+    caloRegMax = NOT_VALID;
+  } 
+}
+
+//----------------------------------------------------------------------------
+inline  void CaloCell_Base_ID::calo_cell_hash_range (const int subCalo, IdentifierHash& caloCellMin, IdentifierHash& caloCellMax) const
+{
+    caloCellMin = m_cell_min[subCalo];
+    caloCellMax = m_cell_max[subCalo];
+}
+
+//----------------------------------------------------------------------------
+inline  void CaloCell_Base_ID::calo_reg_hash_range (const int subCalo, IdentifierHash& caloRegMin, IdentifierHash& caloRegMax) const
+{
+    caloRegMin = m_reg_min[subCalo];
+    caloRegMax = m_reg_max[subCalo];
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloCell_Base_ID::subcalo_cell_hash   ( const IdentifierHash caloHash, int& subCalo) const
+{
+  if(caloHash < m_cell_max[LAREM]) {
+    subCalo = LAREM;
+  }
+  else if(caloHash < m_cell_max[LARHEC] ) {
+    subCalo = LARHEC;
+  }
+  else if(caloHash < m_cell_max[LARFCAL] ) {
+    subCalo = LARFCAL;
+  }
+  else if(caloHash < m_cell_max[TILE] ) {
+    subCalo = TILE;
+  }
+  else if(caloHash < m_cell_max[LARMINIFCAL] ) {
+    subCalo = LARMINIFCAL;
+  }
+  else {
+    subCalo = NOT_VALID;
+    return(NOT_VALID);
+  }
+  return( caloHash - m_cell_min[subCalo]) ;
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloCell_Base_ID::subcalo_region_hash   ( const IdentifierHash caloHash, int& subCalo) const
+{
+  if(caloHash < m_reg_max[LAREM]) {
+    subCalo = LAREM;
+  }
+  else if(caloHash < m_reg_max[LARHEC] ) {
+    subCalo = LARHEC;
+  }
+  else if(caloHash < m_reg_max[LARFCAL] ) {
+    subCalo = LARFCAL;
+  }
+  else if(caloHash < m_reg_max[TILE] ) {
+    subCalo = TILE;
+  }
+  else if(caloHash < m_reg_max[LARMINIFCAL] ) {
+    subCalo = LARMINIFCAL;
+  }
+  else {
+    subCalo = NOT_VALID;
+    return(NOT_VALID);
+  }
+  return( caloHash - m_reg_min[subCalo]) ;
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloCell_Base_ID::calo_cell_hash   (const int subCalo, const IdentifierHash subCaloHash) const
+{
+  return( subCaloHash + m_cell_min[subCalo]) ;
+}
+
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloCell_Base_ID::calo_region_hash   (const int subCalo, const IdentifierHash subCaloHash) const
+{
+  return( subCaloHash + m_reg_min[subCalo]) ;
+}
+
+//----------------------------------------------------------------------------
+inline CaloCell_Base_ID::id_iterator CaloCell_Base_ID::cell_begin   (void) const
+{
+  return(m_cell_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline CaloCell_Base_ID::id_iterator CaloCell_Base_ID::cell_end     (void) const
+{
+  return(m_cell_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline CaloCell_Base_ID::id_range CaloCell_Base_ID::cell_range     (void) const
+{
+  return id_range (cell_begin(), cell_end());
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::cell_begin    (const int subCalo) const
+{
+  return m_helpers[subCalo]->channels().begin();
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::cell_end    (const int subCalo) const
+{
+  return m_helpers[subCalo]->channels().end();
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_range
+CaloCell_Base_ID::cell_range    (const int subCalo) const
+{
+  return m_helpers[subCalo]->channels().range();
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::reg_begin    (void) const
+{
+  return(m_region_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::reg_end      (void) const
+{
+  return(m_region_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_range
+CaloCell_Base_ID::reg_range      (void) const
+{
+  return id_range (reg_begin(), reg_end());
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::reg_begin    (const int subCalo) const
+{
+  return m_helpers[subCalo]->regions().begin();
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_iterator
+CaloCell_Base_ID::reg_end    (const int subCalo) const
+{
+  return m_helpers[subCalo]->regions().end();
+}
+
+//----------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::id_range
+CaloCell_Base_ID::reg_range    (const int subCalo) const
+{
+  return m_helpers[subCalo]->regions().range();
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em(const Identifier id) const
+{
+  return m_emHelper->is_lar_em(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em(const IdentifierHash caloHash) const
+{
+  bool result=false;
+  if(caloHash < m_cell_max[LAREM]) result=true;
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em_barrel(const Identifier id) const
+{
+  return m_emHelper->is_em_barrel(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em_endcap(const Identifier id) const
+{
+  return m_emHelper->is_em_endcap(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em_endcap_inner(const Identifier id) const
+{
+  return m_emHelper->is_em_endcap_inner(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_em_endcap_outer(const Identifier id) const
+{
+  return m_emHelper->is_em_endcap_outer(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_hec(const Identifier id) const
+{
+  return m_emHelper->is_lar_hec(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_hec(const IdentifierHash caloHash) const
+{
+  bool result=false;
+  if(caloHash >= m_cell_min[LARHEC] && 
+     caloHash <  m_cell_max[LARHEC] ) result=true;
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_fcal(const Identifier id) const
+{
+  return m_emHelper->is_lar_fcal(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_fcal(const IdentifierHash caloHash) const
+{
+  bool result=false;
+  if(caloHash >= m_cell_min[LARFCAL] && caloHash < m_cell_max[LARFCAL] ) result=true;
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_minifcal(const Identifier id) const
+{
+  return m_emHelper->is_lar_minifcal(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_minifcal(const IdentifierHash caloHash) const
+{
+  bool result=false;
+  if(caloHash >= m_cell_min[LARMINIFCAL] && caloHash < m_cell_max[LARMINIFCAL] ) result=true;
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile(const ExpandedIdentifier& id) const
+{
+  return m_emHelper->is_tile(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile(const Identifier id) const
+{
+  return m_emHelper->is_tile(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile(const IdentifierHash caloHash) const
+{
+  bool result=false;
+  if(caloHash >= m_cell_min[TILE] && caloHash < m_cell_max[TILE] ) result=true;
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_barrel(const Identifier id) const
+{
+  return m_tileHelper->is_tile_barrel(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_extbarrel(const Identifier id) const
+{
+  return m_tileHelper->is_tile_extbarrel(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_gap(const Identifier id) const
+{
+  return m_tileHelper->is_tile_gap(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_gapscin(const Identifier id) const
+{
+  return m_tileHelper->is_tile_gapscin(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_positive(const Identifier id) const
+{
+  return m_tileHelper->is_positive(id);
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_tile_negative(const Identifier id) const
+{
+  return m_tileHelper->is_negative(id);
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::sub_calo         (const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return LAREM;
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return LARHEC;
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return LARMINIFCAL;
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return LARFCAL;
+  } 
+  else if(m_emHelper->is_tile(id)) {
+    return TILE;
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::sub_calo         (const IdentifierHash caloHash)const
+{
+  int result = NOT_VALID;
+  if(caloHash < m_cell_max[LAREM]) {
+    result = LAREM;
+  }
+  else if(caloHash < m_cell_max[LARHEC] ) {
+    result = LARHEC;
+  }
+  else if(caloHash < m_cell_max[LARFCAL] ) {
+    result = LARFCAL;
+  }
+  else if(caloHash < m_cell_max[TILE] ) {
+    result = TILE;
+  }
+  else if(caloHash < m_cell_max[LARMINIFCAL] ) {
+    result = LARMINIFCAL;
+  }
+  return result;
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::pos_neg         (const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->barrel_ec(id);
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return m_hecHelper->pos_neg(id);
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->pos_neg(id);
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return m_fcalHelper->pos_neg(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::section         (const Identifier id)const
+{
+  if(m_emHelper->is_tile(id)) {
+    return m_tileHelper->section(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::sampling             (const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->sampling(id);
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return m_hecHelper->sampling(id);
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->depth(id);
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return m_fcalHelper->module(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::side             (const Identifier id)const
+{
+  if(m_emHelper->is_tile(id)) {
+    return m_tileHelper->side(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::region              (const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->region(id);
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return m_hecHelper->region(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::module              (const Identifier id)const
+{
+  if(m_emHelper->is_tile(id)) {
+    return m_tileHelper->module(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::eta(const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->eta(id);
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return m_hecHelper->eta(id);
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->eta(id);
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return m_fcalHelper->eta(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::tower(const Identifier id)const
+{
+  if(m_emHelper->is_tile(id)) {
+    return m_tileHelper->tower(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::phi(const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->phi(id);
+  } 
+  else if(m_emHelper->is_lar_hec(id)) {
+    return m_hecHelper->phi(id);
+  } 
+  else if(m_emHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    return m_minifcalHelper->phi(id);
+  } 
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return m_fcalHelper->phi(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::sample(const Identifier id)const
+{
+  if(m_emHelper->is_tile(id)) {
+    return m_tileHelper->sample(id);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloCell_Base_ID::is_supercell(const Identifier id)const
+{
+  if(m_emHelper->is_lar_em(id)) {
+    return m_emHelper->is_supercell(id);
+  }
+  else if(is_hec(id)) {
+    return m_hecHelper->is_supercell(id);
+  }
+  else if(m_emHelper->is_lar_fcal(id)) {
+    return m_fcalHelper->is_supercell(id);
+  }
+  else if(is_tile(id)) {
+    return m_tileHelper->is_supercell(id);
+  }
+  
+  return false;
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::eta_min(const Identifier regId) const
+{
+  if(m_emHelper->is_lar_em(regId)) {
+    return m_emHelper->eta_min(regId);
+  } 
+  else if(m_emHelper->is_lar_hec(regId)) {
+    return m_hecHelper->eta_min(regId);
+  } 
+  else if(m_emHelper->is_lar_minifcal(regId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL 
+    return m_minifcalHelper->eta_min(regId);
+  } 
+  else if(m_emHelper->is_lar_fcal(regId)) {
+    return m_fcalHelper->eta_min(regId);
+  } 
+  else if(m_emHelper->is_tile(regId)) {
+    return m_tileHelper->eta_min(regId);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::eta_max(const Identifier regId) const
+{
+  if(m_emHelper->is_lar_em(regId)) {
+    return m_emHelper->eta_max(regId);
+  } 
+  else if(m_emHelper->is_lar_hec(regId)) {
+    return m_hecHelper->eta_max(regId);
+  } 
+  else if(m_emHelper->is_lar_minifcal(regId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL 
+    return m_minifcalHelper->eta_max(regId);
+  } 
+  else if(m_emHelper->is_lar_fcal(regId)) {
+    return m_fcalHelper->eta_max(regId);
+  } 
+  else if(m_emHelper->is_tile(regId)) {
+    return m_tileHelper->eta_max(regId);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::phi_min(const Identifier regId) const
+{
+  if(m_emHelper->is_lar_em(regId)) {
+    return m_emHelper->phi_min(regId);
+  } 
+  else if(m_emHelper->is_lar_hec(regId)) {
+    return m_hecHelper->phi_min(regId);
+  } 
+  else if(m_emHelper->is_lar_minifcal(regId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL 
+    return m_minifcalHelper->phi_min(regId);
+  } 
+  else if(m_emHelper->is_lar_fcal(regId)) {
+    return m_fcalHelper->phi_min(regId);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline int CaloCell_Base_ID::phi_max(const Identifier regId) const
+{
+  if(m_emHelper->is_lar_em(regId)) {
+    return m_emHelper->phi_max(regId);
+  } 
+  else if(m_emHelper->is_lar_hec(regId)) {
+    return m_hecHelper->phi_max(regId);
+  } 
+  else if(m_emHelper->is_lar_minifcal(regId)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL 
+    return m_minifcalHelper->phi_max(regId);
+  } 
+  else if(m_emHelper->is_lar_fcal(regId)) {
+    return m_fcalHelper->phi_max(regId);
+  } 
+  else if(m_emHelper->is_tile(regId)) {
+    return m_tileHelper->phi_max(regId);
+  } 
+  else {
+    return(NOT_VALID);
+  }
+}
+
+//----------------------------------------------------------------------------
+inline float CaloCell_Base_ID::etaGranularity(const Identifier regId) const
+{
+  int subcalo = 0;
+  IdentifierHash regHash = subcalo_region_hash (regId, subcalo);
+  if (regHash == NOT_VALID) return NOT_VALID;
+  return m_helpers[subcalo]->etaGranularity (regHash);
+}
+
+//----------------------------------------------------------------------------
+inline float CaloCell_Base_ID::phiGranularity(const Identifier regId) const
+{
+  int subcalo = 0;
+  IdentifierHash regHash = subcalo_region_hash (regId, subcalo);
+  if (regHash == NOT_VALID) return NOT_VALID;
+  return m_helpers[subcalo]->phiGranularity (regHash);
+}
+
+//----------------------------------------------------------------------------
+inline float CaloCell_Base_ID::eta0(const Identifier regId) const
+{
+  int subcalo = 0;
+  IdentifierHash regHash = subcalo_region_hash (regId, subcalo);
+  if (regHash == NOT_VALID) return NOT_VALID;
+  return m_helpers[subcalo]->eta0 (regHash);
+}
+
+//----------------------------------------------------------------------------
+inline float CaloCell_Base_ID::phi0(const Identifier regId) const
+{
+  int subcalo = 0;
+  IdentifierHash regHash = subcalo_region_hash (regId, subcalo);
+  if (regHash == NOT_VALID) return NOT_VALID;
+  return m_helpers[subcalo]->phi0 (regHash);
+}
+
+//---------------------------------------------------------------------------
+inline int CaloCell_Base_ID::GetSubCaloName(const std::string SubCaloName )const 
+{
+  if(SubCaloName=="LAREM"){
+    return(LAREM);
+  }
+  else if(SubCaloName=="LARHEC"){
+    return(LARHEC);
+  } 
+  else if(SubCaloName=="LARMINIFCAL"){
+    return(LARMINIFCAL);
+  }
+  else if(SubCaloName=="LARFCAL"){
+    return(LARFCAL);
+  }
+  else if(SubCaloName=="TILE"){
+    return(TILE);
+  }
+  else{
+    return(NOT_VALID);
+  }
+}
+
+
+//---------------------------------------------------------------------------
+inline
+CaloCell_Base_ID::SUBCALO
+CaloCell_Base_ID::get_subcalo (Identifier id) const
+{
+  if (m_emHelper->is_lar_em(id))
+    return LAREM;
+  else if (m_emHelper->is_lar_hec(id))
+    return LARHEC;
+  else if (m_emHelper->is_lar_minifcal (id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL 
+    return LARMINIFCAL;
+  }
+  else if (m_emHelper->is_lar_fcal (id))
+    return LARFCAL;
+  else if (m_emHelper->is_tile (id))
+    return TILE;
+  return NOT_VALID;
+}
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..16060f464b18facb4309071de67b08a70ae10b61
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_ID.h
@@ -0,0 +1,97 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOCELL_ID_H
+#define CALOCELL_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+
+#include "CaloIdentifier/CaloID.h"
+#include "CaloIdentifier/CaloCell_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+#include <vector>
+#include <iostream>
+
+
+
+class IdentifierHash;
+
+/**
+  * @class CaloCell_ID
+  * @brief Helper class for offline cell identifiers
+  *
+  * This class provides an interface to generate offline identifiers
+  * for the full calorimeter (LAr + Tile). <br>
+  * It is actually a wrapper of the specific helpers LArEM_ID,
+  * LArHEC_ID, LArFCAL_ID, LArMiniFCAL_ID and Tile_ID.
+  * 
+  */  
+class CaloCell_ID : public CaloCell_Base_ID
+{
+
+public:
+
+  typedef CaloCell_Base_ID::size_type size_type;
+        
+  /** Constructor */
+  CaloCell_ID(const LArEM_ID*         em_id, 
+              const LArHEC_ID*        hec_id,
+              const LArFCAL_ID*       fcal_id, 
+              const LArMiniFCAL_ID*   minifcal_id,
+              const TileID*           tile_id) ;
+        
+  ~CaloCell_ID(void);
+
+  // SUBCALO enumeration moved to CaloCell_Base_ID.
+  typedef CaloCell_Base_ID::SUBCALO SUBCALO;
+
+  // CaloSample enumeration moved to CaloGeoHelpers/CaloSampling
+  typedef CaloSampling::CaloSample CaloSample;
+   
+
+    /// Initialization from the identifier dictionary
+    virtual int         initialize_from_dictionary(const IdDictMgr& dict_mgr);
+    //@}
+
+
+    /** access to EM idHelper 
+     */
+    const LArEM_ID*        em_idHelper() const 
+    {
+      return static_cast<const LArEM_ID*> (CaloCell_Base_ID::em_idHelper());
+    }
+    /** access to HEC idHelper 
+     */
+    const LArHEC_ID*        hec_idHelper() const 
+    {
+      return static_cast<const LArHEC_ID*> (CaloCell_Base_ID::hec_idHelper());
+    }
+    /** access to FCAL idHelper 
+     */
+    const LArFCAL_ID*        fcal_idHelper() const 
+    {
+      return static_cast<const LArFCAL_ID*> (CaloCell_Base_ID::fcal_idHelper());
+    }
+    /** access to Tile idHelper 
+     */
+    const TileID*            tile_idHelper() const 
+    {
+      return static_cast<const TileID*> (CaloCell_Base_ID::tile_idHelper());
+    }
+
+
+private:    
+  // Avoid coverity warnings.
+  CaloCell_ID (const CaloCell_ID&);
+  CaloCell_ID& operator= (const CaloCell_ID&);
+};
+
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( CaloCell_ID , 123500438 , 1 )
+SG_BASE (CaloCell_ID, CaloCell_Base_ID);
+
+#endif // CALOCELL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_SuperCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_SuperCell_ID.h
new file mode 100644
index 0000000000000000000000000000000000000000..c4dcb4352b0189a85b72906db2bc1d43f6f90037
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_SuperCell_ID.h
@@ -0,0 +1,101 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloCell_SuperCell_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jul, 2012
+ * @brief Helper class for offline supercell identifiers
+ */
+
+
+#ifndef CALOIDENTIFIER_CALOCELL_SUPERCELL_ID_H
+#define CALOIDENTIFIER_CALOCELL_SUPERCELL_ID_H
+
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+
+#include "CaloIdentifier/CaloID.h"
+#include "CaloIdentifier/CaloCell_Base_ID.h"
+#include "CaloIdentifier/LArNeighbours.h"
+#include "SGTools/BaseInfo.h"
+
+#include <vector>
+#include <iostream>
+
+
+class IdentifierHash;
+class CaloNeighbours;
+
+/**
+  * @class CaloCell_SuperCell_ID
+  * @brief Helper class for offline supercell identifiers
+  *
+  * This class provides an interface to generate offline identifiers
+  * for the full calorimeter (LAr + Tile).
+  * Where defined, we use supercells rather
+  * than the basic calorimeter cells.<br>
+  * It is actually a wrapper of the specific helpers LArEM_SuperCell_ID,
+  * LArHEC_ID, LArFCAL_ID, LArMiniFCAL_ID and Tile_ID.
+  */  
+class CaloCell_SuperCell_ID : public CaloCell_Base_ID
+{
+
+public:
+
+  typedef CaloCell_Base_ID::size_type size_type;
+        
+  /** Constructor */
+  CaloCell_SuperCell_ID(const LArEM_SuperCell_ID*    em_id, 
+                        const LArHEC_SuperCell_ID*   hec_id,
+                        const LArFCAL_SuperCell_ID*  fcal_id, 
+                        const LArMiniFCAL_ID*        minifcal_id,
+                        const Tile_SuperCell_ID*     tile_id) ;
+        
+  ~CaloCell_SuperCell_ID(void);
+
+
+    /** access to EM idHelper 
+     */
+    const LArEM_SuperCell_ID* em_idHelper() const 
+    {
+      return static_cast<const LArEM_SuperCell_ID*>
+        (CaloCell_Base_ID::em_idHelper());
+    }
+    /** access to HEC idHelper 
+     */
+    const LArHEC_SuperCell_ID* hec_idHelper() const 
+    {
+      return static_cast<const LArHEC_SuperCell_ID*>
+        (CaloCell_Base_ID::hec_idHelper());
+    }
+    /** access to FCAL idHelper 
+     */
+    const LArFCAL_SuperCell_ID* fcal_idHelper() const 
+    {
+      return static_cast<const LArFCAL_SuperCell_ID*>
+        (CaloCell_Base_ID::fcal_idHelper());
+    }
+    /** access to FCAL idHelper 
+     */
+    const Tile_SuperCell_ID* tile_idHelper() const 
+    {
+      return static_cast<const Tile_SuperCell_ID*>
+        (CaloCell_Base_ID::tile_idHelper());
+    }
+};
+
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( CaloCell_SuperCell_ID , 128365736 , 1 )
+SG_BASE (CaloCell_SuperCell_ID, CaloCell_Base_ID);
+
+
+
+
+#endif // not CALOIDENTIFIER_CALOCELL_SUPERCELL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloDM_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloDM_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..956ee3856e7e0f96b5b2ed1a6dc222dc59991bde
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloDM_ID.h
@@ -0,0 +1,670 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALODM_ID_H
+#define CALODM_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "Identifier/Range.h"
+#include "IdDict/IdDictFieldImplementation.h"
+
+#include "CaloIdentifier/CaloID_Exception.h"
+
+#include <vector>
+#include <algorithm>
+
+
+/**
+*
+* @class CaloDM_ID
+* @brief Helper class for Calo Dead Material offline identifiers
+*  
+*  This class provides an interface to decode and generate offline identifiers
+*  for the Calo Dead Materials.  <p>
+* 
+* Definition and range of values for the elements of the
+* identifier are (ATL-SOFT-2001-004): <p>
+* <pre>
+* element           range              meaning
+* -------           -----              -------
+* 
+* DETZSIDE            +/-4         positive/negative LAr
+*                     +/-5         positive/negative Tile
+*
+* LAr:
+* ====
+* DeadMAT             [1,3]        1=outside accordion ....
+*                                  2=internal "cracks"
+*                                  3=beam test
+*
+* 
+* sampling         [0,3]     type 1 and type 2
+*                    ?       type 3      
+* 
+* region           [0,5]     type 1, sampling 0
+*                  [0,7]     type 1, sampling 1     
+*                  [0,5]     type 1, sampling 2     
+*                  [0,2]     type 1, sampling 3     
+*                  [0,3]     type 2, sampling [0,3]     
+*                    ?       type 3
+* 
+* eta              [0,49]    values and ranges depend on the DM type, the sampling, the region etc ....         
+*
+* phi              [0,63]         all except below
+* "                [0,31]    type 2, sampling [0,3], region 2     
+* "                  0       type 1, sampling 3, region 2        
+*
+* Tile
+* ====
+* DeadMAT          [1,3]     1=dead material around sensitive material
+*                            2=dead material in internal "cracks" (if any)
+*                            3=beam test
+* 
+* sampling         [0,3]     type 1
+*                    0       type 2,3      
+* 
+* region           [0,1]     type 1, sampling 0
+*                  [0,2]     type 1, sampling 1     
+*                  [0,2]     type 1, sampling 2     
+*                    0       type 1, sampling 3     
+*                    0       type 2,3   
+* 
+* eta              [0,9]     type 1, sampling 0, region 0
+*                  [0,4]     type 1, sampling 0, region 1
+*                  [0,3]     type 1, sampling 1, region 0
+*                  [0,2]     type 1, sampling 1, region 1
+*                  [0,3]     type 1, sampling 1, region 2
+*                  [0,7]     type 1, sampling 2, region 0
+*                  [0,4]     type 1, sampling 2, region 1
+*                  [0,1]     type 1, sampling 2, region 2
+*                  [0,16]    type 1, sampling 3, region 0
+*                    0       type 2,3   
+*
+* phi              [0,63]    in all regions
+*
+*
+*
+* region _id        DETZSIDE/DMTYPE/SAMPLING/REGION
+*
+*
+* zone_id           Region_ID+ETA+PHI
+*
+* </pre>
+* @author started by Fairouz Malek
+* @author maintained by Fabienne Ledroit
+*/
+class IdentifierHash;
+
+class CaloDM_ID : public AtlasDetectorID
+{
+public:        
+
+  typedef Identifier::size_type  size_type ;
+
+
+  CaloDM_ID(void);    
+
+  virtual ~CaloDM_ID();
+
+  /** build a region identifier valid for both LAr and Tiles  */
+  Identifier region_id  ( int pos_neg_z, int dmat, int sampling, int region )  const throw(CaloID_Exception);
+
+  /** build a region identifier valid for both LAr and Tiles  */
+  Identifier region_id  (const Identifier& zoneId ) const;
+
+  /** build a zone identifier valid for both LAr and Tiles  */
+  Identifier  zone_id   	(int pos_neg_z, int dat, int sampling, int region,
+				 int eta,       int phi )  const throw(CaloID_Exception);
+				 
+  /** build a zone identifier valid for both LAr and Tiles  */
+  Identifier  zone_id   	(const Identifier& regionId,
+    				 int eta,       int phi )  const ;
+
+  /** to disentangle between LAr and Tile dead material */
+  bool is_lar  (const Identifier& zoneId) const;
+  /** to disentangle between LAr and Tile dead material */
+  bool is_tile (const Identifier& zoneId) const;
+				 
+  /** create a lar region id from hash id*/
+  Identifier lar_region_id	(IdentifierHash lar_region_hash_id) const;
+  /** create a tile region id from hash id*/
+  Identifier tile_region_id	(IdentifierHash tile_region_hash_id) const;
+
+  /** create a lar zone id from hash id*/
+  Identifier lar_zone_id	(IdentifierHash lar_zone_hash_id) const;	
+  /** create a tile zone id from hash id*/
+  Identifier tile_zone_id	(IdentifierHash tile_zone_hash_id) const;	
+
+  /** create a lar hash id from region id*/
+  IdentifierHash lar_region_hash  (Identifier LArRegionId) const;
+  /** create a tile hash id from region id*/
+  IdentifierHash tile_region_hash  (Identifier TileRegionId) const;
+
+  /** create a lar hash id from zone id*/
+  IdentifierHash lar_zone_hash (Identifier LArZoneId) const;
+  /** create a tile hash id from zone id*/
+  IdentifierHash tile_zone_hash (Identifier TileZoneId) const;
+ 
+
+  /**  lar region hash table max size */
+   size_type     lar_region_hash_max (void) const;
+  /**  lar zone hash table max size */
+   size_type     lar_zone_hash_max (void) const;
+  /**  tile region hash table max size */
+   size_type     tile_region_hash_max (void) const;
+  /**  tile zone hash table max size */
+   size_type     tile_zone_hash_max (void) const;
+
+  /** begin iterator over lar regions */
+  std::vector<Identifier>::const_iterator lar_region_begin    (void) const;
+  /** end iterator over lar regions */
+  std::vector<Identifier>::const_iterator lar_region_end      (void) const;
+  /** begin iterator over tile regions */
+  std::vector<Identifier>::const_iterator tile_region_begin    (void) const;
+  /** end iterator over tile regions */
+  std::vector<Identifier>::const_iterator tile_region_end      (void) const;
+
+ /** begin iterator over full set of LAr identifiers */
+  std::vector<Identifier>::const_iterator lar_zone_begin    (void) const;
+ /** end iterator over full set of LAr identifiers */
+  std::vector<Identifier>::const_iterator lar_zone_end      (void) const;
+ /** begin iterator over full set of Tile identifiers */
+  std::vector<Identifier>::const_iterator tile_zone_begin    (void) const;
+ /** end iterator over full set of Tile identifiers */
+  std::vector<Identifier>::const_iterator tile_zone_end      (void) const;
+
+ 
+  /**
+   * return pos_neg_z according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * DETZSIDE           +/-4             positive/negative LAr
+   *                    +/-5             positive/negative Tile
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         pos_neg_z       (const Identifier& id)const;  
+
+   /**
+   * return DMtype according to : <br>
+   * 
+   * <pre>
+   * element           range             
+   * -------           -----             
+   * DeadMat             [1,3]       LAr
+   *                     [1,3]       Tile           
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         dmat             (const Identifier& id)const;
+
+  /**
+   * return sampling according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * sampling         [0,3]           type 1 and type 2 (LAr only)
+   *                    ?                type 3      
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         sampling        (const Identifier& id)const;  
+
+  /**
+   * return region according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * lar region         0            type 1, sampling 0
+   *                  [0,7]          type 1, sampling 1     
+   *                  [0,5]          type 1, sampling 2     
+   *                  [0,2]          type 1, sampling 3     
+   *                  [0,3]          type 2, sampling [0,3]     
+   *                    ?            type 3
+   * 
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         region          (const Identifier& id)const;  
+
+  /**
+   * return eta  <br>
+   * 
+   */
+  int         eta             (const Identifier& id)const; 
+
+  /**
+   * return phi <br>
+   * 
+   */
+  int         phi             (const Identifier& id)const;
+
+  
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier& id) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier& id) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier& id) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier& id) const;
+  
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+
+  /** access to IdContext's which define which levels of fields are contained in a region id */
+  IdContext    region_context   (void) const;
+
+  /** access to IdContext's which define which levels of fields are contained in a zone id */
+  IdContext    zone_context   (void) const;
+
+
+private:    
+
+     
+  enum {NOT_VALID_HASH = 128000};
+
+
+  IdentifierHash lar_zone_hash_binary_search (Identifier zoneId) const;
+  IdentifierHash tile_zone_hash_binary_search (Identifier zoneId) const;
+
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+
+  void lar_region_id_checks  ( int pos_neg_z, int dmat, int sampling, int region ) const throw(CaloID_Exception);
+
+  void tile_region_id_checks  ( int pos_neg_z, int dmat, int sampling, int region ) const throw(CaloID_Exception);
+
+  void lar_zone_id_checks   	(int pos_neg_z, int dat, int sampling, int region,
+				 int eta,       int phi ) const throw(CaloID_Exception);
+  void tile_zone_id_checks   	(int pos_neg_z, int dat, int sampling, int region,
+				 int eta,       int phi ) const throw(CaloID_Exception);
+  void  zone_id_checks   	(const Identifier& regionId,
+    				 int eta,       int phi )  const throw(CaloID_Exception);
+
+
+
+  int         initLevelsFromDict(void) ;
+
+  int         init_lar_hashes(void) ;
+  int         init_tile_hashes(void) ;
+
+
+  size_type                     m_calodm_region_index;
+  size_type                     m_CALO_INDEX;
+  size_type                     m_DETZSIDE_INDEX;
+  size_type                     m_DMAT_INDEX;
+  size_type                     m_SAMPLING_INDEX;
+  size_type                     m_REGION_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+ 
+  const IdDictDictionary*       m_dict;
+
+  MultiRange                    m_full_lar_region_range;
+  MultiRange                    m_full_lar_zone_range;
+  size_type                     m_lar_zone_hash_max;
+  size_type                     m_lar_region_hash_max;
+  std::vector<Identifier>       m_lar_zone_vec;
+  std::vector<Identifier>       m_lar_region_vec;
+
+  MultiRange                    m_full_tile_region_range;
+  MultiRange                    m_full_tile_zone_range;
+  size_type                     m_tile_zone_hash_max;
+  size_type                     m_tile_region_hash_max;
+  std::vector<Identifier>       m_tile_zone_vec;
+  std::vector<Identifier>       m_tile_region_vec;
+
+  /**
+     @brief small class holding the starting hash value, the min eta and the number of phi bins of each region 
+
+     used to CPU-optimize the conversion from an identifier to a hash index
+   */
+    class HashCalc
+    {
+    public:
+	HashCalc() :
+	    m_hash(0),
+	    m_etamin(0),
+	    m_nphi(0) {}
+	IdentifierHash m_hash;
+	size_type      m_etamin;
+	size_type      m_nphi;
+    };
+
+  std::vector<HashCalc>         m_lar_hash_calcs;
+  std::vector<HashCalc>         m_tile_hash_calcs;
+
+
+
+  IdDictFieldImplementation     m_calo_impl;
+  IdDictFieldImplementation  	m_calodm_impl;
+  IdDictFieldImplementation  	m_dmat_impl;
+  IdDictFieldImplementation  	m_sampling_impl;
+  IdDictFieldImplementation  	m_region_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+ 
+
+  IdDictFieldImplementation  	m_pnz_reg_impl;
+
+};
+
+//using the macros below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( CaloDM_ID , 167756483 , 1 )
+
+     
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::region_id (int pos_neg_z, int dmat, int sampling, int region)  const throw(CaloID_Exception)
+{
+    Identifier result(0);
+    // Pack fields independently
+    m_calo_impl.pack     (calo_field_value(),             result);
+    m_calodm_impl.pack   (pos_neg_z,                      result);
+    m_dmat_impl.pack     (dmat,                           result);
+    m_sampling_impl.pack (sampling,                       result);
+    m_region_impl.pack   (region,                         result);
+
+    // Do checks
+    if(m_do_checks) {
+      if(abs(pos_neg_z) == 4) {
+	lar_region_id_checks( pos_neg_z, dmat, sampling, region);
+      } else
+      if(abs(pos_neg_z) == 5) {
+	tile_region_id_checks( pos_neg_z, dmat, sampling, region);
+      }
+      else
+	{
+	  CaloID_Exception except("wrong value for pos_neg_z, only +-4 and +-5 allowed" , 99);
+	  throw except ;   
+	}
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+CaloDM_ID::region_id   ( const Identifier& zoneId ) const 
+{
+  Identifier result(zoneId);
+  //  reset eta/phi
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::zone_id   ( int pos_neg_z, int dmat, int sampling, int region,
+					 int eta,       int phi )  const throw(CaloID_Exception)
+{  
+    Identifier result(0);
+    // Pack fields independently
+    m_calo_impl.pack     (calo_field_value(),             result);
+    m_calodm_impl.pack   (pos_neg_z,                      result);
+    m_dmat_impl.pack     (dmat,                           result);
+    m_sampling_impl.pack (sampling,                       result);
+    m_region_impl.pack   (region,                         result);
+    m_eta_impl.pack      (eta,                            result);
+    m_phi_impl.pack      (phi,                            result);
+
+    // Do checks
+    if(m_do_checks) {
+      if(abs(pos_neg_z) == 4) {
+	lar_zone_id_checks( pos_neg_z, dmat, sampling, region, eta, phi );
+      } 
+      else if(abs(pos_neg_z) == 5) {
+	tile_zone_id_checks( pos_neg_z, dmat, sampling, region, eta, phi );
+      }
+      else {
+	CaloID_Exception except("wrong value for pos_neg_z, only +-4 and +-5 allowed" , 99);
+	throw except ;   
+      }
+    }
+
+    return result;
+}
+ 
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::zone_id   ( const Identifier& regionId,
+					 int eta,  int phi ) const 
+{
+    Identifier result(regionId);
+
+    // Reset the fields and then set the values
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+
+    // Do checks
+    if(m_do_checks) {
+	zone_id_checks( regionId, eta, phi );
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloDM_ID::is_lar(const Identifier& zoneId) const
+{
+    return ( abs(m_calodm_impl.unpack(zoneId)) == 4 );
+}
+
+//----------------------------------------------------------------------------
+inline bool CaloDM_ID::is_tile(const Identifier& zoneId) const
+{
+    return ( abs(m_calodm_impl.unpack(zoneId)) == 5 );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::lar_region_id    (IdentifierHash lar_region_hash_id) const
+{
+    return(m_lar_region_vec[lar_region_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::tile_region_id    (IdentifierHash tile_region_hash_id) const
+{
+    return(m_tile_region_vec[tile_region_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::lar_zone_id    (IdentifierHash lar_zone_hash_id) const
+{
+    return(m_lar_zone_vec[lar_zone_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloDM_ID::tile_zone_id    (IdentifierHash tile_zone_hash_id) const
+{
+    return(m_tile_zone_vec[tile_zone_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::lar_region_hash (Identifier LArRegionId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_lar_region_vec.begin(),m_lar_region_vec.end(),LArRegionId);
+    if ( it != m_lar_region_vec.end() ){
+	return (it - m_lar_region_vec.begin());
+    }
+    return (0);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::tile_region_hash (Identifier TileRegionId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_tile_region_vec.begin(),m_tile_region_vec.end(),TileRegionId);
+    if ( it != m_tile_region_vec.end() ){
+	return (it - m_tile_region_vec.begin());
+    }
+    return (0);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::lar_zone_hash (Identifier LArZoneId) const
+{
+    const HashCalc& hc = m_lar_hash_calcs[m_pnz_reg_impl.unpack(LArZoneId)];
+    return (hc.m_hash + (eta(LArZoneId)-hc.m_etamin)*hc.m_nphi + phi(LArZoneId));
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::tile_zone_hash (Identifier TileZoneId) const
+{
+    const HashCalc& hc = m_tile_hash_calcs[m_pnz_reg_impl.unpack(TileZoneId)];
+    return (hc.m_hash + (eta(TileZoneId)-hc.m_etamin)*hc.m_nphi + phi(TileZoneId));
+}
+
+//----------------------------------------------------------------------------
+inline CaloDM_ID::size_type   CaloDM_ID::lar_region_hash_max (void) const
+{
+  return m_lar_region_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloDM_ID::size_type   CaloDM_ID::lar_zone_hash_max (void) const
+{
+  return m_lar_zone_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloDM_ID::size_type   CaloDM_ID::tile_region_hash_max (void) const
+{
+  return m_tile_region_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloDM_ID::size_type   CaloDM_ID::tile_zone_hash_max (void) const
+{
+  return m_tile_zone_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::lar_region_begin    (void) const
+{
+  return(m_lar_region_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::lar_region_end      (void) const
+{
+  return(m_lar_region_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::lar_zone_begin    (void) const
+{
+  return(m_lar_zone_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::lar_zone_end      (void) const
+{
+  return(m_lar_zone_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::tile_region_begin    (void) const
+{
+  return(m_tile_region_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::tile_region_end      (void) const
+{
+  return(m_tile_region_vec.end());
+}
+
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::tile_zone_begin    (void) const
+{
+  return(m_tile_zone_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline std::vector<Identifier>::const_iterator CaloDM_ID::tile_zone_end      (void) const
+{
+  return(m_tile_zone_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::pos_neg_z(const Identifier& id) const
+{
+  return (m_calodm_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::sampling(const Identifier& id) const
+{
+  return (m_sampling_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::region(const Identifier& id) const
+{
+  return (m_region_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::eta(const Identifier& id) const
+{
+  return (m_eta_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::phi(const Identifier& id) const
+{
+  return (m_phi_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloDM_ID::dmat(const Identifier& id) const
+{
+  return (m_dmat_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::lar_zone_hash_binary_search  (Identifier zoneId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_lar_zone_vec.begin(),m_lar_zone_vec.end(),zoneId);
+    if ( it != m_lar_zone_vec.end() ){
+        return (it - m_lar_zone_vec.begin());
+    }
+    return (0);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloDM_ID::tile_zone_hash_binary_search  (Identifier zoneId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_tile_zone_vec.begin(),m_tile_zone_vec.end(),zoneId);
+    if ( it != m_tile_zone_vec.end() ){
+        return (it - m_tile_zone_vec.begin());
+    }
+    return (0);
+}
+
+#endif // CALODM_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloGain.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloGain.h
new file mode 100755
index 0000000000000000000000000000000000000000..2d7865d50fe41fda4bc8c88a1c6a54dc2654323d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloGain.h
@@ -0,0 +1,25 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/* date of creation : 27/01/2004 */
+
+#ifndef CALO_GAIN_H
+#define CALO_GAIN_H
+
+namespace CaloGain {
+  enum CaloGain {
+    TILELOWLOW =-16 ,
+    TILELOWHIGH =-15 ,
+    TILEHIGHLOW  = -12,
+    TILEHIGHHIGH = -11,
+    TILEONELOW   =-4,
+    TILEONEHIGH  =-3,
+    INVALIDGAIN = -1, LARHIGHGAIN = 0, LARMEDIUMGAIN = 1,  LARLOWGAIN = 2,
+    LARNGAIN =3,
+    UNKNOWNGAIN=4};
+}
+
+
+#endif //CALO_GAIN_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID.h
new file mode 100755
index 0000000000000000000000000000000000000000..aa28146b582cfeb6be262cf71560a2caf17534be
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID.h
@@ -0,0 +1,15 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArEM_ID.h"
+#include "CaloIdentifier/LArEM_SuperCell_ID.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArFCAL_SuperCell_ID.h"
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "CaloIdentifier/LArHEC_SuperCell_ID.h"
+#include "CaloIdentifier/TileID.h"
+#include "CaloIdentifier/Tile_SuperCell_ID.h"
+#include "CaloIdentifier/CaloLVL1_ID.h"
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.h
new file mode 100644
index 0000000000000000000000000000000000000000..2338b5566aa991fa0fbdedc1ff631852af5bb3fe
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.h
@@ -0,0 +1,351 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloIDHelper.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Base class to factor out code common among Calo ID helpers.
+ */
+
+
+#ifndef CALOIDENTIFIER_CALOIDHELPER_H
+#define CALOIDENTIFIER_CALOIDHELPER_H
+
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/Identifier.h"
+#include "Identifier/IdentifierHash.h"
+#include "boost/range/iterator_range.hpp"
+#include <vector>
+#include <set>
+class MultiRange;
+class IMessageSvc;
+class IdDictRegion;
+
+
+/**
+ * @brief Base class to factor out code common among Calo ID helpers.
+ */
+class CaloIDHelper
+  : public AtlasDetectorID
+{
+public:
+  enum { NOT_VALID=999999 };
+
+
+  typedef Identifier::size_type  size_type ;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+
+
+  /**
+   * @brief Manage a list of identifiers.
+   *        The identifiers are kept in sorted order, and the index
+   *        of an identifier in this list defines its hash value.
+   *        We supply methods for converting between identifiers
+   *        and the hash value; we also keep track of the corresponding
+   *        ID context.
+   *
+   *        Most calo ID helpers will use two of these: one for
+   *        channels (cells) and one for regiosn.
+   */
+  class HashGroup
+  {
+  public:
+    /**
+     * @brief Constructor.
+     *        Starts in an uninitialized state.
+     */
+    HashGroup();
+
+
+    /**
+     * @brief Initialize.
+     * @param parent The parent ID helper (in which @c idfunc is defined).
+     * @param type A string to add on to the name.
+     * @param full_range The @c MultiRange for to this group.
+     * @param idfunc Function to convert from an @c ExpandedIdentifier
+     *               to an @c Identifier for this group.
+     * @param end_index The ending index for the context for this group.
+     * @return 0 on success; non-zero on failure.
+     */
+    template <class T>
+    int init (const T& parent,
+              const std::string& type,
+              const MultiRange& full_range,
+              Identifier (T::*idfunc) (const ExpandedIdentifier&) const,
+              size_type end_index);
+              
+
+    /**
+     * @brief Initialize.
+     * @param name Name of this group (only for error reporting).
+     * @param ids Set of Identifiers comprising this group.
+     * @param end_index The ending index for the context for this group.
+     * @parma msgSvc The global message service
+     *               (may be 0, only for error reporting).
+     * @param full_range The @c MultiRange corresponding to this group.
+     *                   If supplied, the side of the @c ids set is checked
+     *                   against the range's cardinality.
+     * @return 0 on success; non-zero on failure.
+     */
+    int init (const std::string& name,
+              const std::set<Identifier>& ids,
+              size_type end_index,
+              IMessageSvc* msgSvc,
+              const MultiRange* full_range = 0);
+
+
+    /// Return one more than the largest hash code.
+    size_type hash_max() const;
+
+    /// Return a begin iterator over the group's Identifiers.
+    id_iterator begin() const;
+    /// Return an end iterator over the group's Identifiers.
+    id_iterator end()   const;
+    /// Return an iterator range over the group's Identifiers.
+    id_range    range() const;
+
+    /// Return the identifier for a given hash code (no checking).
+    Identifier id (IdentifierHash hashId) const;
+
+    
+    /**
+     * @brief Look up the hash code corresponding to an Identifier.
+     *        Uses binary search.
+     * @param id The identifier to look up.
+     * @param[out] hash_id The corresponding hash code.
+     * @return 0 if the Identifier was found; non-zero otherwise.
+     */
+    int get_hash (Identifier id, IdentifierHash& hash_id) const;
+
+
+    /**
+     * @brief Look up the hash code corresponding to an Identifier.
+     *        Uses binary search.
+     * @param id The identifier to look up.
+     * @return The corresponding hash code.
+     *         An invalid IdentifierHash will be returned if the Identifier
+     *         is not found.
+     */
+    IdentifierHash hash (Identifier id) const;
+
+    /// Return a vector of all Identifiers for this group.
+    const std::vector<Identifier>& ids() const;
+
+    /// Return the ending index of the context for this group.
+    size_type end_index() const;
+
+    /// Return the context for this group.
+    IdContext context() const;
+
+
+  private:
+    /// List of Identifiers for this group.
+    std::vector<Identifier> m_id_vec;
+
+    /// Ending index for this group's context.
+    size_type m_end_index;
+  };
+
+
+  /**
+   * @brief Constructor.  Makes an uninitialized helper.
+   *        To initialize, call @c initialize_base_from_dictionary,
+   *        followed by @c init_channels and @c init_regions,
+   *        and optionally @c fill_vec_of_dict_regions.
+   * @param name Name of this helper (for error reporting).
+   */
+  CaloIDHelper (const std::string& name);
+
+
+  /// Return the @c HashGroup for channels (cells).
+  const HashGroup& channels() const;
+
+  /// Return the @c HashGroup for regions.
+  const HashGroup& regions() const;
+
+  /// Return the channel (cell) Identifier for a given hash code (no checking).
+  Identifier channel_id (IdentifierHash hashId) const;
+  /// Return the region Identifier for a given hash code (no checking).
+  Identifier region_id (IdentifierHash hashId) const;
+
+
+  /**
+   * @brief Convert a connected channel (cell) Identifier to a hash code.
+   *        Some subdetector helpers may override this with a faster version.
+   */
+  IdentifierHash channel_hash (Identifier channelId) const;
+
+
+  /**
+   * @brief Convert a connected region Identifier to a hash code.
+   *        Some subdetector helpers may override this with a faster version.
+   */
+  IdentifierHash region_hash (Identifier regionId) const;
+
+
+  /**
+   * @brief Convert a hash code to an Identifier for either channels or regions,
+   *        depending on the context.
+   *        If you know the context at compile-time, @c channel_id and
+   *        @c region_id will be faster (but they don't do range checking).
+   * @param hash_id The hash code to convert.
+   * @param[out] id The resulting Identifier.  Will be invalid if there
+   *                was an error.
+   * @param context The context in which to do the conversion
+   *                (specifies whether we want channels or regions).
+   * @return 0 for success, non-zero for failure (unrecognized context,
+   *         or hash code out of range).
+   */
+  virtual int get_id (const IdentifierHash& hash_id,
+                      Identifier& id,
+                      const IdContext* context = 0 ) const;
+
+
+  /**
+   * @brief Convert an Identifier to a hash code for either channels or regions,
+   *        depending on the context.
+   *        Uses binary search.
+   *        Some of the subdetector-specific helpers define faster
+   *        versions of @c channel_hash and @c region_hash (that,
+   *        however, do less checking).
+   * @param id The identifier to convert.
+   * @param[out] hash_id The resulting hash code.  Will be invalid if there
+   *                was an error.
+   * @param context The context in which to do the conversion
+   *                (specifies whether we want channels or regions).
+   * @return 0 for success, non-zero for failure (unrecognized context
+   *         or Identifier.
+   */
+  virtual int  get_hash  (const Identifier& id,
+                          IdentifierHash& hash_id,
+                          const IdContext* context = 0 ) const;
+
+
+  /// One more than the largest channel (cell) hash code.
+  size_type channel_hash_max() const;
+  /// One more than the largest region hash code.
+  size_type region_hash_max() const;
+
+
+  /// Return the context for channels (cells).
+  IdContext channel_context() const;
+  /// Return the context for regions.
+  IdContext region_context() const;
+
+
+  /// Return the vector of @c IdDictRegion, accessed via region hash.
+  const std::vector<const IdDictRegion*>& dictRegions() const;
+
+
+  /**
+   * @brief Return the eta granularity of a region, or @c NOT_VALID.
+   * @param regHash REGION hash code.
+   */
+  float etaGranularity(const IdentifierHash regHash) const;
+
+
+  /**
+   * @brief Return the phi granularity of a region, or @c NOT_VALID.
+   * @param regHash REGION hash code.
+   */
+  float phiGranularity(const IdentifierHash regHash) const;
+
+
+  /**
+   * @brief Return the minimum eta of region, or @c NOT_VALID.
+   * @param regHash REGION hash code.
+   */
+  float eta0(const IdentifierHash regHash) const;
+
+
+  /**
+   * @brief Return the minimum phi of region, or @c NOT_VALID.
+   * @param regHash REGION hash code.
+   */
+  float phi0(const IdentifierHash regHash) const;
+
+
+  /// Return the name for this helper.
+  std::string name() const;
+
+  /// Return the message service for this helper (may be null).
+  IMessageSvc* msgSvc() const;
+
+
+
+protected:
+  /**
+   * @brief Do basic initialization of the helper.
+   * @param dict_mgr  The dictionary manager returned from the parser.
+   * @param dict_name The dictionary name (eg, `LArCalorimeter').
+   * @return 0 on success, non-zero on failure.
+   */
+  int initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                       const std::string& dict_name);
+
+
+  /// Return the @c HashGroup for channels (cells).  non-const.
+  HashGroup& channels();
+  /// Return the @c HashGroup for regions.  non-const.
+  HashGroup& regions();
+
+
+  /// Return the dictionary for this subdetector.
+  const IdDictDictionary* dict() const;
+
+
+  /**
+   * @brief Initialize the list of detector regions.
+   *        @c init_regions should have been called first.
+   * @param group_name The group for this helper.
+   * @return 0 on success; non-zero on failure.
+   */
+  int fill_vec_of_dict_regions (const std::string& group_name = "");
+
+
+  /**
+   * @brief Create an expanded Identifier from an Identifier.
+   * @return 0 on success; non-zero on failure.
+   * @param id Identifier to convert.
+   * @param[out] exp_id The expanded Identifier.
+   * @param context The context in which to do the conversion
+   *                (specifies whether we want channels or regions).
+   */
+  virtual int get_expanded_id (const Identifier& id,
+                               ExpandedIdentifier& exp_id,
+                               const IdContext* context) const = 0;
+
+
+private:
+  /// Name of this helper.
+  std::string m_name;
+
+  /// Group of channel (cell) Identifiers.
+  HashGroup m_channels;
+
+  /// Group of region Identifiers.
+  HashGroup m_regions;
+
+  /// The dictionary for this helper.
+  const IdDictDictionary* m_dict;
+
+  /// List of @c IdDictRegion objects.
+  std::vector<const IdDictRegion*> m_vecOfDictRegions;
+};
+
+
+#include "CaloIdentifier/CaloIDHelper.icc"
+
+
+#endif // not CALOIDENTIFIER_CALOIDHELPER_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.icc b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.icc
new file mode 100644
index 0000000000000000000000000000000000000000..0d592acebebe44ebb8190be785719286ce2884f4
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIDHelper.icc
@@ -0,0 +1,307 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloIDHelper.icc
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Base class to factor out code common among Calo ID helpers.
+ *        Inline implementations.
+ */
+
+
+/**
+ * @brief Initialize.
+ * @param parent The parent ID helper (in which @c idfunc is defined).
+ * @param type A string to add on to the name.
+ * @param full_range The @c MultiRange for to this group.
+ * @param idfunc Function to convert from an @c ExpandedIdentifier
+ *               to an @c Identifier for this group.
+ * @param end_index The ending index for the context for this group.
+ * @return 0 on success; non-zero on failure.
+ */
+template <class T>
+inline
+int
+CaloIDHelper::HashGroup::init (const T& parent,
+                               const std::string& type,
+                               const MultiRange& full_range,
+                               Identifier (T::*idfunc)
+                                 (const ExpandedIdentifier&) const,
+                               size_type end_index)
+{
+  std::set<Identifier> ids;
+  for (unsigned int i = 0; i < full_range.size(); ++i) {
+    const Range& range = full_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier id = (parent.*idfunc) (exp_id);
+      if(!(ids.insert(id)).second){
+        MsgStream log (parent.msgSvc(), "CaloIDHelper::HashGroup");
+        log << MSG::ERROR << parent.name() << "init_hashes "
+            << " duplicated id for channel id. nids= " << ids.size()
+            << " compact Id  " << parent.show_to_string(id)
+            << endreq;
+      }
+    }
+  }
+  return init (parent.name() + "." + type,
+               ids, end_index, parent.msgSvc(), &full_range);
+}
+
+
+/**
+ * @brief Return one more than the largest hash code.
+ */
+inline
+CaloIDHelper::size_type CaloIDHelper::HashGroup::hash_max() const
+{
+  return m_id_vec.size();
+}
+
+
+/**
+ * @brief Return a begin iterator over the group's Identifiers.
+ */
+inline
+CaloIDHelper::id_iterator CaloIDHelper::HashGroup::begin() const
+{
+  return m_id_vec.begin();
+}
+
+
+/**
+ * @brief Return an end iterator over the group's Identifiers.
+ */
+inline
+CaloIDHelper::id_iterator CaloIDHelper::HashGroup::end() const
+{
+  return m_id_vec.end();
+}
+
+
+/**
+ * @brief Return a iterator range over the group's Identifiers.
+ */
+inline
+CaloIDHelper::id_range CaloIDHelper::HashGroup::range() const
+{
+  return id_range(begin(), end());
+}
+
+
+/**
+ * @brief Return the identifier for a given hash code (no checking).
+ */
+inline
+Identifier CaloIDHelper::HashGroup::id (IdentifierHash hashId) const
+{
+  return m_id_vec[hashId];
+}
+
+
+/**
+ * @brief Look up the hash code corresponding to an Identifier.
+ *        Uses binary search.
+ * @param id The identifier to look up.
+ * @return The corresponding hash code.
+ *         An invalid IdentifierHash will be returned if the Identifier
+ *         is not found.
+ */
+inline
+IdentifierHash CaloIDHelper::HashGroup::hash (Identifier id) const
+{
+  IdentifierHash ret;
+  get_hash (id, ret);
+  return ret;
+}
+
+
+/**
+ * @brief Return a vector of all Identifiers for this group.
+ */
+inline
+const std::vector<Identifier>& CaloIDHelper::HashGroup::ids() const
+{
+  return m_id_vec;
+}
+
+
+/**
+ * @brief Return the ending index of the context for this group.
+ */
+inline
+CaloIDHelper::size_type CaloIDHelper::HashGroup::end_index() const
+{
+  return m_end_index;
+}
+
+
+//*************************************************************************
+
+
+/**
+ * @brief Return the @c HashGroup for channels (cells).
+ */
+inline
+const CaloIDHelper::HashGroup& CaloIDHelper::channels() const
+{
+  return m_channels;
+}
+
+
+/**
+ * @brief Return the @c HashGroup for regions.
+ */
+inline
+const CaloIDHelper::HashGroup& CaloIDHelper::regions() const
+{
+  return m_regions;
+}
+
+
+/**
+ * @brief Return the channel Identifier for a given hash code (no checking).
+ */
+inline
+Identifier CaloIDHelper::channel_id (IdentifierHash hashId) const
+{
+  return m_channels.id(hashId);
+}
+
+
+/**
+ * @brief Return the region Identifier for a given hash code (no checking).
+ */
+inline
+Identifier CaloIDHelper::region_id (IdentifierHash hashId) const
+{
+  return m_regions.id(hashId);
+}
+
+
+/**
+ * @brief Convert a connected channel (cell) Identifier to a hash code.
+ *        Some subdetector helpers may override this with a faster version.
+ */
+inline
+IdentifierHash CaloIDHelper::channel_hash (Identifier channelId) const
+{
+  return m_channels.hash (channelId);
+}
+
+
+/**
+ * @brief Convert a connected region Identifier to a hash code.
+ *        Some subdetector helpers may override this with a faster version.
+ */
+inline
+IdentifierHash CaloIDHelper::region_hash (Identifier regionId) const
+{
+  return m_regions.hash (regionId);
+}
+
+
+
+/**
+ * @brief One more than the largest channel (cell) hash code.
+ */
+inline
+CaloIDHelper::size_type CaloIDHelper::channel_hash_max() const
+{
+  return m_channels.hash_max();
+}
+
+
+/**
+ * @brief One more than the largest region hash code.
+ */
+inline
+CaloIDHelper::size_type CaloIDHelper::region_hash_max() const
+{
+  return m_regions.hash_max();
+}
+
+
+/**
+ * @brief Return the context for channels (cells).
+ */
+inline
+IdContext CaloIDHelper::channel_context() const
+{
+  return m_channels.context();
+}
+
+
+/**
+ * @brief Return the context for regions.
+ */
+inline
+IdContext CaloIDHelper::region_context() const
+{
+  return m_regions.context();
+}
+
+
+/**
+ * @brief Return the vector of @c IdDictRegion, accessed via region hash.
+ */
+inline
+const std::vector<const IdDictRegion*>& CaloIDHelper::dictRegions() const
+{
+  return m_vecOfDictRegions;
+}
+
+
+/**
+ * @brief Return the @c HashGroup for channels (cells).  non-const.
+ */
+inline
+CaloIDHelper::HashGroup& CaloIDHelper::channels()
+{
+  return m_channels;
+}
+
+
+/**
+ * @brief Return the @c HashGroup for regions.  non-const.
+ */
+inline
+CaloIDHelper::HashGroup& CaloIDHelper::regions()
+{
+  return m_regions;
+}
+
+
+/**
+ * @brief Return the dictionary for this subdetector.
+ */
+inline
+const IdDictDictionary* CaloIDHelper::dict() const
+{
+  return m_dict;
+}
+
+
+/**
+ * @brief Return the name for this helper.
+ */
+inline
+std::string CaloIDHelper::name() const
+{
+  return m_name;
+}
+
+
+/**
+ * @brief Return the message service for this helper.
+ */
+inline
+IMessageSvc* CaloIDHelper::msgSvc() const
+{
+  return m_msgSvc;
+}
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID_Exception.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID_Exception.h
new file mode 100755
index 0000000000000000000000000000000000000000..ed200e482754b35bb733afa6911e0f80cdb40efb
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloID_Exception.h
@@ -0,0 +1,82 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/* date of creation : 10/X/2002 */
+
+/* date of last modification : 10/X/2002 */
+
+#ifndef CALOID_EXCEPTION_H
+#define CALOID_EXCEPTION_H
+
+#include <string>
+
+/**
+ * @brief Exception class for Calo Identifiers 
+
+ * @author Johann Collot , Fabienne Ledroit (cloning  LArID_Exception)
+ */
+
+class CaloID_Exception {
+public:
+
+    /**
+     * default constructor 
+     */
+  CaloID_Exception() ;
+
+    /**
+     * constructor to be used 
+     */
+    CaloID_Exception(std::string  lMessage , int lCode) ;
+
+    /**
+     * set error message 
+     */
+    void message(std::string lMessage) ;
+
+    /**
+     * return error message <br> 
+     */
+    virtual std::string message() const ;
+
+    /**
+     * set error code number<br> 
+     */
+    void code(int lCode) ;
+
+    /**
+     * return error code <br><br>
+     * 
+     * error codes : <br>
+     * 0 : no error <br>
+     * 1 : CaloLVL1_ID::region_id Error <br>
+     * 2 : CaloLVL1_ID::channel_id Error <br>
+     * 3 : LArDM::region_id Error <br>
+     * 4 : LArDM::zone_id Error <br>
+     * 999 : undefined error <br>
+     */
+    virtual int code() const ;
+
+    virtual operator std::string();
+
+    /**
+     * destructor 
+     */
+    virtual ~CaloID_Exception() ;
+
+private:
+
+    /**
+     * error message 
+     */
+    std::string m_message;
+
+    /**
+     * error code 
+     */
+    int m_code;
+};
+
+
+#endif //CALOID_EXCEPTION_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdManager.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdManager.h
new file mode 100755
index 0000000000000000000000000000000000000000..dc979ddc9963ae90244769bb530b51501ddd7a74
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdManager.h
@@ -0,0 +1,115 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Calorimeter Identifier package
+ -----------------------------------------
+ Copyright (C) 2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>	$Id: CaloIdManager.h,v 1.4 2007-06-15 14:52:20 fledroit Exp $
+//<version>	$Name: not supported by cvs2svn $
+
+#ifndef CALOID_CALOIDMANAGER_H
+# define CALOID_CALOIDMANAGER_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+
+class CaloCell_ID;
+class CaloCell_SuperCell_ID;
+class CaloDM_ID;
+class CaloLVL1_ID;
+class LArEM_ID;
+class LArEM_SuperCell_ID;
+class LArFCAL_ID;
+class LArFCAL_SuperCell_ID;
+class LArMiniFCAL_ID;
+class LArHEC_ID;
+class LArHEC_SuperCell_ID;
+class TileID;
+class Tile_SuperCell_ID;
+class TTOnlineID;
+
+
+/**
+*  @brief This class initializes the Calo (LAr and Tile) offline identifiers.
+*
+*  For subdetector specific functionality (online identifiers and
+*  cabling for example, or Regions), one should use the LArIdManager and TileIdManager
+*
+*/
+class CaloIdManager
+{
+
+public:
+
+    CaloIdManager(void);
+    ~CaloIdManager(void);
+
+    ///  Access to singleton
+    static const CaloIdManager* instance          (void);
+
+    ///  Access to IdHelper
+    const CaloCell_ID*          getCaloCell_ID           (void) const;
+    const CaloDM_ID*            getDM_ID                 (void) const;
+    const CaloLVL1_ID*          getLVL1_ID               (void) const;
+    const LArEM_ID*             getEM_ID                 (void) const;
+    const LArFCAL_ID*           getFCAL_ID               (void) const;
+    const LArMiniFCAL_ID*       getMiniFCAL_ID           (void) const;
+    const LArHEC_ID*            getHEC_ID                (void) const;
+    const TileID*               getTileID                (void) const;
+    const TTOnlineID*           getTTOnlineID            (void) const;
+    const CaloCell_SuperCell_ID*getCaloCell_SuperCell_ID (void) const;
+    const LArEM_SuperCell_ID*   getEM_SuperCell_ID       (void) const;
+    const LArHEC_SuperCell_ID*  getHEC_SuperCell_ID      (void) const;
+    const LArFCAL_SuperCell_ID* getFCAL_SuperCell_ID     (void) const;
+    const Tile_SuperCell_ID*    getTile_SuperCell_ID     (void) const;
+
+    void                        initialize               (void);
+    bool                        isInitialized            (void) const;
+
+    /// these methods are used within Id initialisation, general public
+    /// should ignore them :
+
+    void set_helper (const CaloCell_ID* idHelper);
+    void set_helper (const CaloDM_ID* idHelper);
+    void set_helper (const CaloLVL1_ID* idHelper);
+    void set_helper (const LArEM_ID* idHelper);
+    void set_helper (const LArFCAL_ID* idHelper);
+    void set_helper (const LArMiniFCAL_ID* idHelper);
+    void set_helper (const LArHEC_ID* idHelper);
+    void set_helper (const TileID* idHelper);
+    void set_helper (const TTOnlineID* idHelper);
+    void set_helper (const CaloCell_SuperCell_ID* idHelper);
+    void set_helper (const LArEM_SuperCell_ID* idHelper);
+    void set_helper (const LArHEC_SuperCell_ID* idHelper);
+    void set_helper (const LArFCAL_SuperCell_ID* idHelper);
+    void set_helper (const Tile_SuperCell_ID* idHelper);
+
+private:
+
+    static CaloIdManager*  s_instance;
+    bool                   m_isInitialized;
+
+    const CaloCell_ID*     m_cell_id;
+    const CaloDM_ID*       m_dm_id;
+    const CaloLVL1_ID*     m_lvl1_id;
+    const LArEM_ID*        m_em_id;
+    const LArFCAL_ID*      m_fcal_id;
+    const LArMiniFCAL_ID*  m_minifcal_id;
+    const LArHEC_ID*       m_hec_id;
+    const TileID*          m_tile_id;
+    const TTOnlineID*      m_ttonline_id;
+    const CaloCell_SuperCell_ID*  m_cell_supercell_id;
+    const LArEM_SuperCell_ID*  m_em_supercell_id;
+    const LArHEC_SuperCell_ID*  m_hec_supercell_id;
+    const LArFCAL_SuperCell_ID*  m_fcal_supercell_id;
+    const Tile_SuperCell_ID*  m_tile_supercell_id;
+
+};
+
+CLASS_DEF( CaloIdManager , 125856940 , 1 )
+
+
+#endif // CALOID_CALOIDMANAGER_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdentifierDict.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdentifierDict.h
new file mode 100755
index 0000000000000000000000000000000000000000..c079bbdac6b47ceb8ad9989b145142ea485562a0
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloIdentifierDict.h
@@ -0,0 +1,42 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/**
+ * @file CaloIdentifierDict.h
+ *
+ * @brief This file includes the class for dictionary definitions
+ *
+ * @author RD Schaffer <R.D.Schaffer@cern.ch>
+ *
+ * $Id: CaloIdentifierDict.h,v 1.8 2009-03-30 11:19:27 tsulaia Exp $
+ */
+#ifndef CALOIDENTIFIER_CALOIDENTIFIERDICT_H
+#define CALOIDENTIFIER_CALOIDENTIFIERDICT_H
+
+#include "CaloIdentifier/CaloCell_ID.h"
+#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
+#include "CaloIdentifier/CaloDM_ID.h"
+#include "CaloIdentifier/CaloID.h"
+#include "CaloIdentifier/TTOnlineID.h"
+#include "CaloIdentifier/TileTBID.h"
+#include "CaloIdentifier/CaloIdManager.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArFCAL_SuperCell_ID.h"
+
+namespace CaloIdentifer
+{
+//   PyGate<CaloCell_ID> m_pyGate_CaloCell_ID ;
+//   LArEM_ID m_lar_em_id ;
+//   LArHEC_ID m_lar_hec_id;
+//   LArFCAL_ID m_lar_fcal_id;
+//   TileID m_tile_id;
+//   CaloLVL1_ID m_calo_lvl1_id;
+
+  bool instan_iterator_comp (const std::vector<Identifier>& v)
+  {
+    return v.begin() != v.end();
+  }
+}
+
+#endif // CALOIDENTIFIER_CALOIDENTIFIERDICT_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloLVL1_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloLVL1_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..d107b9f3f4aa8fae8559555c6ebae3fa817ac085
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloLVL1_ID.h
@@ -0,0 +1,728 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOLVL1_ID_H
+#define CALOLVL1_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "Identifier/Range.h"
+#include "IdDict/IdDictFieldImplementation.h"
+
+#include "CaloIdentifier/CaloID_Exception.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <vector>
+#include <algorithm>
+
+
+/**
+*  
+* @class CaloLVL1_ID
+* @brief Helper class for offline TT identifiers
+*
+*  This class provides an interface to decode and generate offline identifiers
+*  for the Calorimeter Trigger Towers.  <p>
+* 
+* Definition and range of values for the elements of the
+* identifier are (ATL-SOFT-2001-004): <p>
+* <pre>
+* element           range              meaning
+* -------           -----              -------
+* 
+* DETZSIDE            +/-1             positive/negative
+* 
+* LVL1sampling     0                EM
+* "                1                Hadronic
+* 
+* region           [0,3]            4 regions of different eta/phi granularity
+* 
+* eta              [0,24]         region 0(|eta|<2.5), granularity = 0.1
+* "                [0,2]          region 1(2.5<|eta|<3.1), granularity = 0.2
+* "                0              region 2(3.1<|eta|<3.2), granularity = 0.1
+* "                [0,3]          region 3(3.2<|eta|<4.9), granularity = 0.4
+*
+* phi              [0,63]         region 0(|eta|<2.5), granularity = 0.1
+* "                [0,31]         region 1(2.5<|eta|<3.1), granularity = 0.2
+* "                [0,31]         region 2(3.1<|eta|<3.2), granularity = 0.2
+* "                [0,15]         region 3(3.2<|eta|<4.9), granularity = 0.4
+*
+*
+* Added May 2003 : 'extended' identifiers include 'layer' information :
+*
+* element           range              meaning
+* -------           -----              -------
+* layer             [0,3]              0==PS 1==Front 2==Middle 3==Back in regions 0-2
+*                   [0,1]              0== FCAL2, 1== FCAL3             in region  3
+*
+* </pre>
+* @author F Ledroit
+*/
+class IdentifierHash;
+
+class CaloLVL1_ID : public AtlasDetectorID
+{
+public:        
+
+  typedef Identifier::size_type  size_type ;
+
+
+  CaloLVL1_ID(void);    
+
+  virtual ~CaloLVL1_ID();
+
+  /** build a tower identifier */
+  Identifier  tower_id   	(int pos_neg_z, int sampling, int region,
+				 int eta,       int phi ) const ;
+				 
+  /** build a tower identifier */
+  Identifier  tower_id   	(const Identifier regionId,
+    				 int eta,       int phi )  const ;
+  
+  /** build a tower identifier */
+  Identifier  tower_id   	(const Identifier layerId)  const;
+  
+  /** build a region (of towers) identifier */
+  Identifier region_id  ( int pos_neg_z, int sampling, int region ) const;
+
+  /** build a region (of towers) identifier */
+  Identifier region_id  ( const Identifier tower_or_layerId ) const;
+
+
+  /** build a layer identifier */
+  Identifier layer_id   ( int pos_neg_z, int sampling, int region,
+ 		          int eta,       int phi,      int layer ) const;
+
+  /** build a layer identifier */
+  Identifier layer_id   ( const Identifier towerId,   int layer ) const;
+
+
+  /** access to IdContext's which define which levels of fields are contained in the id */
+  /** id for towers ("reduced" id) */
+  IdContext    region_context   (void) const;
+
+  /** access to IdContext's which define which levels of fields are contained in the id */
+  /** id for towers ("normal" id) */
+  IdContext    tower_context   (void) const;
+
+  /** access to IdContext's which define which levels of fields are contained in the id */
+  /** id for towers with layers ("extended" id) */
+  IdContext    layer_context   (void) const;
+
+  /** create compact id from hash id (return == 0 for OK)*/
+  virtual int  get_id    (const IdentifierHash& hash_id, Identifier& id, const IdContext* context = 0 ) const;
+
+  /** create hash id from compact id (return == 0 for OK)*/
+  virtual int  get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context = 0 ) const;
+
+  /** create region id from hash id*/
+  Identifier region_id	(IdentifierHash region_hash_id) const;
+
+  /** create tower id from hash id*/
+  Identifier tower_id	(IdentifierHash tower_hash_id) const;	
+
+  /** create hash id from tower id*/
+  IdentifierHash tower_hash (Identifier towerId) const;
+  /** create hash id from tower id  -- method NOT optimised, please use tower_hash() above */
+  IdentifierHash tower_hash_binary_search (Identifier towerId) const;
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+
+  /**  tower hash table max size */
+  size_type     tower_hash_max (void) const;
+  /**  layer hash table max size */
+  size_type     layer_hash_max (void) const;
+  /**  region hash table max size */
+  size_type     region_hash_max (void) const;
+
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+
+  /** begin iterator over regions */
+  id_iterator region_begin    () const;
+  /** end iterator over regions */
+  id_iterator region_end      () const;
+  /** range over regions */
+  id_range    region_range    () const;
+
+  /** begin iterator over towers */
+  id_iterator tower_begin    () const;
+  /** end iterator over towers */
+  id_iterator tower_end      () const;
+  /** range over towers */
+  id_range    tower_range    () const;
+
+  /** begin iterators over layers */
+  id_iterator layer_begin    () const;
+  /** end iterators over layers */
+  id_iterator layer_end      () const;
+  /** range over layers */
+  id_range    layer_range    () const;
+
+  /** Test wether given tower or layer is part of the Tile Calorimeter
+      @warning does NOT take as input a REGION identifier   */
+  bool	is_tile	      (const Identifier id) const;
+  /** Test wether given tower or layer is part of the EM barrel
+      @warning does NOT take as input a REGION identifier   
+      @warning excluding 'barrel end'! */
+  bool	is_emb	      (const Identifier id) const;
+  /** Test wether given tower or layer is part of the EM barrel END
+      @warning does NOT take as input a REGION identifier   */
+  bool	is_barrel_end (const Identifier id) const;
+  /** Test wether given tower or layer is part of the EM end-cap
+      @warning does NOT take as input a REGION identifier   */
+  bool	is_emec	      (const Identifier id) const;
+  /** Test wether given tower or layer is part of the HEC
+      @warning does NOT take as input a REGION identifier   */
+  bool	is_hec	      (const Identifier id) const;
+  /** Test wether given tower or layer is part of the FCAL
+      @warning does NOT take as input a REGION identifier   */
+  bool	is_fcal	      (const Identifier id) const;
+
+  /**
+   * return pos_neg_z according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * DETZSIDE           +/-1             positive/negative
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         pos_neg_z       (const Identifier id)const;  
+
+  /**
+   * return sampling according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * LVL1sampling         0                EM
+   * "                    1                Hadronic
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         sampling        (const Identifier id)const;  
+
+  /**
+   * return region according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * region           [0,3]            4 regions of different eta/phi granularity
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         region          (const Identifier id)const;  
+
+  /**
+   * return eta according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * eta              [0,24]         region 0(|eta|<2.5), granularity = 0.1
+   * "                [0,2]          region 1(2.5<|eta|<3.1), granularity = 0.2
+   * "                0              region 2(3.1<|eta|<3.2), granularity = 0.1
+   * "                [0,3]          region 3(3.2<|eta|<4.9), granularity = 0.4
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         eta             (const Identifier id)const; 
+
+  /**
+   * return phi according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * phi              [0,63]         region 0(|eta|<2.5), granularity = 0.1
+   * "                [0,31]         region 1(2.5<|eta|<3.1), granularity = 0.2
+   * "                [0,31]         region 2(3.1<|eta|<3.2), granularity = 0.2
+   * "                [0,15]         region 3(3.2<|eta|<4.9), granularity = 0.4
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         phi             (const Identifier id)const;
+
+  /**
+   * return layer according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * layer             [0,3]         region 0, 1, 2 (|eta|<3.2) : 4 em samplings or 4 had samplings
+   * "                 [0,1]         region 3 (3.2<|eta|<4.9)   : 1 em sampling  or 2 had samplings
+   * 
+   * failure returns 0
+   * 
+   * </pre> 
+   */
+  int         layer             (const Identifier id)const;
+
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int layer_max(const Identifier regId) const;
+  
+  /** access to hashes for neighbours in phi -- towers only (no extended) 
+      return == 0 for neighbours found  */
+  int          get_prev_in_phi(const IdentifierHash& id, IdentifierHash& prev) const;
+  /** access to hashes for neighbours in phi -- towers only (no extended) 
+      return == 0 for neighbours found  */
+  int          get_next_in_phi(const IdentifierHash& id, IdentifierHash& next) const;
+  /** access to hashes for neighbours in eta -- towers only (no extended) 
+      return == 0 for neighbours found  */
+  int          get_prev_in_eta(const IdentifierHash& id, IdentifierHash& prev) const;
+  /** access to hashes for neighbours in eta -- towers only (no extended) 
+      return == 0 for neighbours found  */
+  int          get_next_in_eta(const IdentifierHash& id, IdentifierHash& next) const;
+
+private:    
+
+     
+  enum {NOT_VALID_HASH = 64000};
+
+
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+
+  void  tower_id_checks   	(int pos_neg_z, int sampling, int region,
+				 int eta,       int phi ) const throw(CaloID_Exception);
+  void  tower_id_checks   	(const Identifier regionId,
+    				 int eta,       int phi )  const throw(CaloID_Exception);
+  void region_id_checks  ( int pos_neg_z, int sampling, int region ) const throw(CaloID_Exception);
+
+  void layer_id_checks   ( int pos_neg_z, int sampling, int region,
+ 		          int eta,       int phi,      int layer ) const throw(CaloID_Exception);
+  void layer_id_checks   ( const Identifier towerId,
+ 		          int layer ) const throw(CaloID_Exception);
+
+
+  int         initLevelsFromDict(void) ;
+
+  int         init_hashes(void) ;
+
+  int         init_neighbors(void) ;
+
+
+  size_type                     m_lvl1_region_index;
+  size_type                     m_CALO_INDEX;
+  size_type                     m_DETZSIDE_INDEX;
+  size_type                     m_SAMPLING_INDEX;
+  size_type                     m_REGION_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+  size_type                     m_LAYER_INDEX;
+
+  const IdDictDictionary*       m_dict;
+
+  MultiRange                    m_full_region_range;
+  MultiRange                    m_full_tower_range;
+  MultiRange                    m_full_layer_range;
+  size_type                     m_tower_hash_max;
+  size_type                     m_layer_hash_max;
+  size_type                     m_region_hash_max;
+  std::vector<Identifier>       m_tower_vec;
+  std::vector<Identifier>       m_layer_vec;
+  std::vector<Identifier>       m_region_vec;
+  std::vector<unsigned short>   m_prev_phi_vec;
+  std::vector<unsigned short>   m_next_phi_vec;
+  std::vector<unsigned short>   m_prev_eta_vec;
+  std::vector<unsigned short>   m_next_eta_vec;
+
+  /**
+     @brief small class holding the starting hash value, the min eta and the number of phi bins of each region 
+
+     used to CPU-optimize the conversion from an identifier to a hash index
+   */
+    class HashCalc
+    {
+    public:
+	HashCalc() :
+	    m_hash(0),
+	    m_etamin(0),
+	    m_nphi(0) {}
+	IdentifierHash m_hash;
+	size_type      m_etamin;
+	size_type      m_nphi;
+    };
+  std::vector<HashCalc>         m_hash_calcs;
+
+
+
+  IdDictFieldImplementation     m_calo_impl;
+  IdDictFieldImplementation  	m_lvl1_impl;
+  IdDictFieldImplementation  	m_sampling_impl;
+  IdDictFieldImplementation  	m_region_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+  IdDictFieldImplementation  	m_layer_impl;
+
+  IdDictFieldImplementation  	m_pnz_reg_impl;
+
+};
+
+//using the macros below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( CaloLVL1_ID , 108133391 , 1 )
+
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::tower_id   ( int pos_neg_z, int sampling, int region,
+					    int eta,       int phi ) const 
+{  
+    Identifier result(0);
+    // Pack fields independently
+    m_calo_impl.pack     (calo_field_value(),    result);
+    m_lvl1_impl.pack     (pos_neg_z,             result);
+    m_sampling_impl.pack (sampling,              result);
+    m_region_impl.pack   (region,                result);
+    m_eta_impl.pack      (eta,                   result);
+    m_phi_impl.pack      (phi,                   result);
+
+    // Do checks
+    if(m_do_checks) {
+	tower_id_checks( pos_neg_z, sampling, region, eta, phi );
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::tower_id   ( const Identifier regionId,
+					    int eta,  int phi ) const 
+{
+    Identifier result(regionId);
+
+    // Reset the fields and then set the values
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+
+    // Do checks
+    if(m_do_checks) {
+	tower_id_checks( regionId, eta, phi );
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::region_id   ( const Identifier tower_or_layerId ) const 
+{
+  Identifier result(tower_or_layerId);
+  //  reset eta, phi, layer
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  m_layer_impl.reset(result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::tower_id   ( const Identifier layerId ) const 
+{
+  Identifier result(layerId);
+  //  reset layer
+  m_layer_impl.reset(result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::region_id (int pos_neg_z, int sampling, int region)const 
+{
+    Identifier result(0);
+    // Pack fields independently
+    m_calo_impl.pack     (calo_field_value(),    result);
+    m_lvl1_impl.pack     (pos_neg_z,             result);
+    m_sampling_impl.pack (sampling,              result);
+    m_region_impl.pack   (region,                result);
+
+    // Do checks
+    if(m_do_checks) {
+	region_id_checks( pos_neg_z, sampling, region);
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::layer_id   ( int pos_neg_z, int sampling, int region,
+					    int eta,       int phi,      int layer ) const 
+{  
+    Identifier result(0);
+    // Pack fields independently
+    m_calo_impl.pack     (calo_field_value(),    result);
+    m_lvl1_impl.pack     (pos_neg_z,             result);
+    m_sampling_impl.pack (sampling,              result);
+    m_region_impl.pack   (region,                result);
+    m_eta_impl.pack      (eta,                   result);
+    m_phi_impl.pack      (phi,                   result);
+    m_layer_impl.pack    (layer,                 result);
+
+    // Do checks
+    if(m_do_checks) {
+	layer_id_checks( pos_neg_z, sampling, region, eta, phi, layer );
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::layer_id   ( const Identifier towerId,
+					    int layer ) const
+{
+    Identifier result(towerId);
+
+    // Reset the fields and then set the values
+    m_layer_impl.reset     (result);
+    m_layer_impl.pack      (layer, result);
+    // Do checks
+    if(m_do_checks) {
+	layer_id_checks( towerId, layer );
+    }
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::size_type   CaloLVL1_ID::tower_hash_max (void) const
+{
+  return m_tower_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::size_type   CaloLVL1_ID::layer_hash_max (void) const
+{
+  return m_layer_hash_max;
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::size_type   CaloLVL1_ID::region_hash_max (void) const
+{
+  return m_region_hash_max;
+}
+
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::region_begin    (void) const
+{
+  return(m_region_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::region_end      (void) const
+{
+  return(m_region_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_range CaloLVL1_ID::region_range    () const
+{
+  return id_range (region_begin(), region_end());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::tower_begin    (void) const
+{
+  return(m_tower_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::tower_end      (void) const
+{
+  return(m_tower_vec.end());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_range CaloLVL1_ID::tower_range    () const
+{
+  return id_range (tower_begin(), tower_end());
+}
+
+//----------------------------------------------------------------------------  
+
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::layer_begin    (void) const
+{
+  return(m_layer_vec.begin());
+}
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_iterator CaloLVL1_ID::layer_end      (void) const
+{
+  return(m_layer_vec.end());
+}
+
+
+//----------------------------------------------------------------------------
+inline CaloLVL1_ID::id_range CaloLVL1_ID::layer_range    () const
+{
+  return id_range (layer_begin(), layer_end());
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::pos_neg_z(const Identifier id) const
+{
+  return (m_lvl1_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::sampling(const Identifier id) const
+{
+  return (m_sampling_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::region(const Identifier id) const
+{
+  return (m_region_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::eta(const Identifier id) const
+{
+  return (m_eta_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::phi(const Identifier id) const
+{
+  return (m_phi_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int CaloLVL1_ID::layer(const Identifier id) const
+{
+  return (m_layer_impl.unpack(id));
+}
+
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_tile	(const Identifier id) const
+{
+    // Must first check if this is a normal tile id
+    if (AtlasDetectorID::is_tile(id)) {
+	return (true);
+    }
+    else {
+	return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 1 && eta(id) < 15);
+    }
+}
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_emb	(const Identifier id) const
+{
+  return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 0 && eta(id) < 14);
+}
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_barrel_end	(const Identifier id) const
+{
+  return (is_lvl1_trig_towers(id) && region(id) == 0 && sampling(id) == 0 && eta(id) == 14);
+}
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_emec	(const Identifier id) const
+{
+  return (is_lvl1_trig_towers(id) && sampling(id) == 0 &&
+          ((region(id) == 0 &&  eta(id) > 14) || region(id) == 1 || region(id) == 2 ));
+}
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_hec	(const Identifier id) const
+{
+  return (is_lvl1_trig_towers(id) && sampling(id) == 1 &&
+          ((region(id) == 0 &&  eta(id) > 14) || region(id) == 1 || region(id) == 2 ));
+}
+
+//----------------------------------------------------------------------------
+inline bool	CaloLVL1_ID::is_fcal	(const Identifier id) const
+{
+  return (is_lvl1_trig_towers(id) && region(id) == 3 );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::region_id    (IdentifierHash region_hash_id) const
+{
+    return(m_region_vec[region_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier CaloLVL1_ID::tower_id    (IdentifierHash tower_hash_id) const
+{
+    return(m_tower_vec[tower_hash_id]);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloLVL1_ID::tower_hash (Identifier towerId) const
+{
+    const HashCalc& hc = m_hash_calcs[m_pnz_reg_impl.unpack(towerId)];
+    return (hc.m_hash + (eta(towerId)-hc.m_etamin)*hc.m_nphi + phi(towerId));
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash CaloLVL1_ID::tower_hash_binary_search  (Identifier towerId) const
+{
+    std::vector<Identifier>::const_iterator it = std::lower_bound(m_tower_vec.begin(),m_tower_vec.end(),towerId);
+    if ( it != m_tower_vec.end() ){
+	return (it - m_tower_vec.begin());
+    }
+    return (0);
+}
+
+
+
+#endif // CALOLVL1_ID_H
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/CaloNeighbours.h b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloNeighbours.h
new file mode 100755
index 0000000000000000000000000000000000000000..5f18578f929a897139cdfe5b1331ac80f4af2f72
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/CaloNeighbours.h
@@ -0,0 +1,117 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOIDENTIFIER_CALONEIGHBOURS_H
+#define CALOIDENTIFIER_CALONEIGHBOURS_H
+//-----------------------------------------------------------------------
+// File and Version Information:
+// 
+//$Id: CaloNeighbours.h,v 1.2 2008-12-13 04:57:11 ssnyder Exp $
+// 
+//
+// Description: Initialize and provide access to neighbours accross
+//              the calorimeter systems. The neighbours within a 
+//              a single system are provided by the individual helper.
+//   
+// Environment:
+//      Software developed for the ATLAS Detector at the CERN LHC
+//
+// Author List:
+//      Sven Menke
+//
+//-----------------------------------------------------------------------
+#include <string>
+#include <map>
+#include <vector>
+#include "CaloIdentifier/CaloCell_ID.h"
+#include "Identifier/Range.h"
+class ExpandedIdentifier;
+
+enum NEIGHBOURTYPE {nextInCalo,prevInCalo};
+
+struct ltIdHash{
+  bool operator()(const IdentifierHash& id1, const IdentifierHash& id2) const
+  {
+    return ((unsigned int)id1) < ((unsigned int)id2);
+  }
+};
+
+
+class CaloNeighbourRegion {
+ public:
+
+  enum {SIDE = 2, SAMPL = 3, REGION = 4, ETA = 5, PHI = 6, TILESECTION = 1, TILEPHI = 3, TILEETA = 4, TILESAMPL = 5, FCALETA = 4, FCALPHI = 5};
+ 
+  CaloNeighbourRegion(const std::string name,
+                      const CaloCell_Base_ID * theCaloId);
+
+  virtual ~CaloNeighbourRegion();
+
+  void setType(const NEIGHBOURTYPE type);
+  void setSourceRange(const Range & theRange);
+  void setTargetRange(const Range & theRange);
+  void setSide(const int side1, const int side2);
+  void setPhi(const int phi1, const int phi2);
+  int setNeighbours(ExpandedIdentifier& id1, std::vector<ExpandedIdentifier>& id2, std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapPlus, std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapMinus);
+
+  void initializeVectors(std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapPlus, std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapMinus);
+
+  int  getNeighbours(const IdentifierHash caloHash, std::vector<IdentifierHash>& neighbourList) const;
+
+  inline NEIGHBOURTYPE getType() const {
+    return m_type;
+  }
+
+  inline const std::string getName() const {
+    return m_name;
+  }
+
+ private:
+  
+  int getId(ExpandedIdentifier& id, Identifier &rID, const Range &theRange, const int side = +1, const int dphi = 0) const;
+
+  std::string m_name;
+  NEIGHBOURTYPE m_type;
+  const CaloCell_Base_ID * m_calo_id;
+
+  Range m_sourceRange,m_targetRange;
+
+  bool m_hasPhi;
+  int  m_iPhiSource,m_iPhiTarget;
+
+  bool m_hasSide;
+  int  m_iSideSource,m_iSideTarget;
+
+  bool m_isValidMinus,m_isValidPlus;
+
+  IdentifierHash m_minHashMinus,m_maxHashMinus,m_minHashPlus,m_maxHashPlus;
+  std::vector< std::vector<IdentifierHash>* > m_neighbours_plus;
+  std::vector< std::vector<IdentifierHash>* > m_neighbours_minus;
+};
+
+class CaloNeighbours {
+
+public:
+
+  // default constructor
+  CaloNeighbours();
+
+  // default destructor
+  virtual ~CaloNeighbours();
+
+  int initialize(const CaloCell_Base_ID* caloID, std::string filename);
+
+  int get_nextInCalo(const IdentifierHash &id,std::vector<IdentifierHash>& neighbourList) const;
+
+  int get_prevInCalo(const IdentifierHash &id,std::vector<IdentifierHash>& neighbourList) const;
+
+  int get_neighbours(const IdentifierHash &id, const std::vector<CaloNeighbourRegion*> &regions, std::vector<IdentifierHash>& neighbourList) const;
+
+ private:
+  const CaloCell_Base_ID * m_calo_id;
+
+  std::vector<CaloNeighbourRegion*> m_next_regions;
+  std::vector<CaloNeighbourRegion*> m_prev_regions;
+};
+#endif // CALOIDENTIFIER_CALONEIGHBOURS_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.h
new file mode 100644
index 0000000000000000000000000000000000000000..c14038831af2da6527d7068d44431f39c9d8a0f2
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.h
@@ -0,0 +1,522 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArEM_Base_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Aug, 2012
+ * @brief Factor out code common between LArEM_ID and LArEM_SuperCell_ID.
+ */
+
+
+#ifndef CALOIDENTIFIER_LAREM_BASE_ID_H
+#define CALOIDENTIFIER_LAREM_BASE_ID_H
+
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "CaloIdentifier/LArNeighbours.h"
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "boost/range/iterator_range.hpp"
+
+
+class IdDictRegion;
+class LArEM_region;
+
+
+
+/**
+ * This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
+ */
+class LArEM_Base_ID : public CaloIDHelper
+{
+public:
+  typedef Identifier::size_type  size_type ;
+
+  /** Constructor.  If SUPERCELL is true, this helper is for supercells. */
+  LArEM_Base_ID (const std::string& name, bool supercell);
+
+  ~LArEM_Base_ID(void);
+
+  /** Build a cell identifier from an expanded identifier. */
+  Identifier region_id (const ExpandedIdentifier& exp_id) const;
+				 
+  /** Build a cell identifier from an expanded identifier. */
+  Identifier channel_id (const ExpandedIdentifier& exp_id) const;
+				 
+  /** build a region identifier for a connected channel  */
+  Identifier  region_id   	(int barrel_ec, int sampling, int region ) const;
+
+  /** build a cell identifier for a connected channel  */
+  Identifier  channel_id   	(int barrel_ec, int sampling, int region,
+				 int eta,       int phi )  const;
+
+  /** build a cell identifier for disconnected channels  */
+  Identifier  disc_channel_id (const ExpandedIdentifier& exp_id) const;
+
+  /** build a region identifier for disconnected channels  */
+  Identifier  disc_region_id   	(int barrel_ec, int sampling, int region ) const;
+
+  /** build a cell identifier for disconnected channels  */
+  Identifier  disc_channel_id   	(int barrel_ec, int sampling, int region,
+					 int eta,       int phi ) const;
+				 
+
+  /** allows to know in which region is a channel/cell
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  region_id   	(const Identifier channelId) const ;
+
+  /** allows to build a cell id starting from a region id (e.g. from descriptors) 
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  channel_id   	(const Identifier regionId,
+				 int eta,       int phi ) const;
+
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const IdentifierHash hashId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const Identifier channelId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_connected (int barrel_ec, int sampling, int region, int eta, int phi)  const throw(LArID_Exception);
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_disconnected (int barrel_ec, int sampling, int region, int eta, int phi)  const throw(LArID_Exception);
+
+  /** create hash id from connected channel id  */
+  IdentifierHash channel_hash (Identifier channelId) const;
+  /** create hash id from connected channel id  -- method NOT optimised, please use channel_hash() above */
+  IdentifierHash channel_hash_binary_search (Identifier channelId) const;
+
+  /** create channel id from hash id (valid for all channels, connected + diconnected) */
+  Identifier disc_channel_id	(IdentifierHash disc_channel_hash_id) const;	
+
+  /** create hash id from disconnected channel id*/
+  IdentifierHash disc_channel_hash (Identifier disc_channel_id) const;
+
+  /** cell hash table max size (all channels: connected + disconnected) */
+  size_type     disc_channel_hash_max (void) const;
+  /** disconnected cell/channel hash table min index */
+  size_type     disc_channel_hash_min (void) const;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+  
+
+  /** begin iterator over set of Region Identifiers */
+  id_iterator reg_begin    (void) const;
+  /** end iterator over set of Region Identifiers */
+  id_iterator reg_end      (void) const;
+  /** Range over set of Region Identifiers. */
+  id_range reg_range () const;
+
+  /** begin iterator over full set of EM Identifiers */
+  id_iterator em_begin    (void) const;
+  /** end iterator over full set of EM Identifiers */
+  id_iterator em_end      (void) const;
+  /** Range over full set of EM Identifiers. */
+  id_range em_range () const;
+
+  /** begin iterator over full set of EM Identifiers for DISconnected channels (only) */
+  id_iterator disc_em_begin    (void) const;
+  /** end iterator over full set of EM Identifiers for disconnected channels (only) */
+  id_iterator disc_em_end      (void) const;
+  /** Range over full set of EM Identifiers for DISconnected channels (only) */
+  id_range disc_em_range () const;
+
+  /** provide access to connected channel id vector, accessed via hash */
+  const std::vector<Identifier>& channel_ids() const;
+
+  /** test if the id belongs to the EM barrel -- valid for both connected and disconnected channels */
+  bool	is_em_barrel   	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap -- valid for both connected and disconnected channels */
+  bool	is_em_endcap	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap inner wheel -- valid for both connected and disconnected channels */
+  bool	is_em_endcap_inner	(const Identifier id) const;
+  
+  /** test if the id belongs to the EM Endcap outer wheel -- valid for both connected and disconnected channels */
+  bool	is_em_endcap_outer	(const Identifier id) const;
+
+
+
+
+  /**
+   * return barrel_ec according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * barrel_ec        +/-1             positive/negative barrel - A/C side or P/M half barrel
+   * "                +/-2             positive/negative endcap outer wheel - A/C side 
+   * "                +/-3             positive/negative endcap inner wheel - A/C side
+   * 
+   * </pre> 
+   */
+  int         barrel_ec       (const Identifier id)const;  
+
+  /**
+   * return sampling according to : <br>
+   * 
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * sampling         0                both presamplers
+   * "                [1,3]            barrel and endcap outer wheel 
+   * "                [1,2]            endcap inner wheel
+   * 
+   * </pre> 
+   */
+  int         sampling        (const Identifier id)const;  
+  
+
+  /**
+   * return region according to : <br>
+   * 
+   * <pre>
+   * 
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * region           0               both presamplers
+   * "                [0,1]           barrel sampling 1 and 2 
+   * "                0               barrel sampling 3
+   * "
+   * "                [0,5]           endcap outer wheel sampling 1 (cells)
+   * "                0,[2,5]         endcap outer wheel sampling 1 (supercells)
+   * "                0               endcap inner wheel sampling 1 (cells)
+   * "                [0,1]           endcap inner wheel sampling 1 (supercells)
+   * "                [0,1]           endcap outer wheel sampling 2
+   * "                0               endcap inner wheel sampling 2 (cells)
+   * "                [0,1]           endcap inner wheel sampling 2 (supercells)
+   * "                0               endcap outer wheel sampling 3
+   * 
+   * </pre> 
+   */
+  int         region          (const Identifier id)const;  
+  
+  /**
+   * return eta according to : <br>
+   * 
+   * <pre>
+   * Cells:
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * eta for barrel   [0,60]         presampler - 0< eta <1.52 - deta is approximately equal to 0.025
+   * "                [0,447]        sampling 1 region 0  0   < eta < 1.4   - deta = 0.025/8 
+   * "                [0,2]          sampling 1 region 1  1.4 < eta < 1.475 - deta = 0.025
+   * "                [0,55]         sampling 2 region 0  0   < eta < 1.4   - deta = 0.025 
+   * "                0              sampling 2 region 1  1.4 < eta < 1.475 - deta = 0.075
+   * "                [0,26]         sampling 3 region 0  0   < eta < 1.35  - deta = 0.050 
+   * "
+   * 
+   * eta for endcap   [0,11]      presampler  sampling 0 region 0  1.5   < eta < 1.8   - deta = 0.025
+   * "                0           outer wheel sampling 1 region 0  1.375 < eta < 1.425 - deta = 0.05  
+   * "                [0,2]       outer wheel sampling 1 region 1  1.425 < eta < 1.5   - deta = 0.025
+   * "                [0,95]      outer wheel sampling 1 region 2  1.5   < eta < 1.8   - deta = 0.025/8
+   * "                [0,47]      outer wheel sampling 1 region 3  1.8   < eta < 2.0   - deta = 0.025/6
+   * "                [0,63]      outer wheel sampling 1 region 4  2.0   < eta < 2.4   - deta = 0.025/4 
+   * "                [0,3]       outer wheel sampling 1 region 5  2.4   < eta < 2.5   - deta = 0.025
+   * "                [0,6]       inner wheel sampling 1 region 0  2.5   < eta < 3.2   - deta = 0.1
+   * "                0           outer wheel sampling 2 region 0  1.375 < eta < 1.425 - deta = 0.05
+   * "                [0,42]      outer wheel sampling 2 region 1  1.425 < eta < 2.5   - deta = 0.025
+   * "                [0,6]       inner wheel sampling 2 region 0  2.5   < eta < 3.2   - deta = 0.1
+   * "                [0,19]      outer wheel sampling 3 region 0  1.5   < eta < 2.5   - deta = 0.05 
+   * 
+   * Supercells:
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * eta for barrel   [0,15]         presampler - 0< eta <1.52 - deta is approximately equal to 0.1
+   * "                [0,55]         sampling 1 region 0  0   < eta < 1.4   - deta = 0.025
+   * "                [0,2]          sampling 1 region 1  1.4 < eta < 1.475 - deta = 0.025
+   * "                [0,55]         sampling 2 region 0  0   < eta < 1.4   - deta = 0.025 
+   * "                0              sampling 2 region 1  1.4 < eta < 1.475 - deta = 0.075
+   * "                [0,13]         sampling 3 region 0  0   < eta < 1.35  - deta = 0.1
+   * "
+   * 
+   * eta for endcap   [0,2]       presampler  sampling 0 region 0  1.5   < eta < 1.8   - deta = 0.1
+   * "                0           outer wheel sampling 1 region 0  1.375 < eta < 1.425 - deta = 0.125
+   * "                [0,11]      outer wheel sampling 1 region 2  1.5   < eta < 1.8   - deta = 0.025
+   * "                [0,7]       outer wheel sampling 1 region 3  1.8   < eta < 2.0   - deta = 0.033
+   * "                [0,15]      outer wheel sampling 1 region 4  2.0   < eta < 2.4   - deta = 0.025
+   * "                0           outer wheel sampling 1 region 5  2.4   < eta < 2.5   - deta = 0.1
+   * "                [0,2]       inner wheel sampling 1 region 0  2.5   < eta < 3.1   - deta = 0.2
+   * "                0           inner wheel sampling 1 region 1  3.1   < eta < 3.2   - deta = 0.1
+   * "                0           outer wheel sampling 2 region 0  1.375 < eta < 1.425 - deta = 0.05
+   * "                [0,42]      outer wheel sampling 2 region 1  1.425 < eta < 2.5   - deta = 0.025
+   * "                [0,2]       inner wheel sampling 2 region 0  2.5   < eta < 3.1   - deta = 0.2
+   * "                0           inner wheel sampling 2 region 0  3.1   < eta < 3.2   - deta = 0.1
+   * "                [0,9]       outer wheel sampling 3 region 0  1.5   < eta < 2.5   - deta = 0.1
+   * 
+   *  -999 if disconnected channel
+   * </pre> 
+   */
+  int         eta             (const Identifier id)const; 
+  
+  /**
+   * return phi according to : <br>
+   * 
+   * <pre>
+   * element           range              meaning
+   * -------           -----              -------
+   * 
+   * 
+   * Cells:
+   * phi for barrel   [0,63]         barrel presampler   - dphi = 0.1
+   * "                [0,63]         sampling 1 region 0 - dphi = 0.1
+   * "                [0,255]        sampling 1 region 1 - dphi = 0.025
+   * "                [0,255]        sampling 2 region 0 - dphi = 0.025
+   * "                [0,255]        sampling 2 region 1 - dphi = 0.025
+   * "                [0,255]        sampling 3 region 1 - dphi = 0.025
+   * 
+   * 
+   * 
+   * phi for endcap   [0,63]      presampler  sampling 0 region 0       - dphi = 0.1
+   * "                [0,63]      outer wheel sampling 1 regions [0,5]  - dphi = 0.1 
+   * "                [0,63]      inner wheel sampling 1 regions 0      - dphi = 0.1 
+   * "                [0,255]     outer wheel sampling 2 regions [0,1]  - dphi = 0.025
+   * "                [0,63]      inner wheel sampling 2 region 0       - dphi = 0.1
+   * "                [0,255]     outer wheel sampling 3 region 0       - dphi = 0.025
+   * 
+   * Supercells:
+   * phi for barrel   [0,63]         barrel presampler   - dphi = 0.1
+   * "                [0,63]         sampling 1 region 0 - dphi = 0.1
+   * "                [0,63]         sampling 1 region 1 - dphi = 0.1
+   * "                [0,63]         sampling 2 region 0 - dphi = 0.1
+   * "                [0,63]         sampling 2 region 1 - dphi = 0.1
+   * "                [0,63]         sampling 3 region 1 - dphi = 0.1
+   * 
+   * 
+   * 
+   * phi for endcap   [0,63]      presampler  sampling 0 region 0       - dphi = 0.1
+   * "                [0,63]      outer wheel sampling 1 regions [0,5]  - dphi = 0.1 
+   * "                [0,31]      inner wheel sampling 1 regions 0      - dphi = 0.2
+   * "                [0,63]      outer wheel sampling 2 regions [0,1]  - dphi = 0.1
+   * "                [0,31]      inner wheel sampling 2 region 0       - dphi = 0.2
+   * "                [0,63]      outer wheel sampling 3 region 0       - dphi = 0.1
+   * 
+   *   -999 if disconnected channel
+   * </pre> 
+   */
+  int         phi             (const Identifier id)const;
+  
+
+  /** Test if the identifier represents a supercell. */
+  bool        is_supercell    (const Identifier id)const;
+
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier regId) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+  
+
+  /** eta index -- only for checks, since dummy for disconnected channels */
+  int         disc_eta             (const Identifier id)const; 
+  /** phi index -- only for checks, since dummy for disconnected channels */
+  int         disc_phi             (const Identifier id)const; 
+
+  /** initialization from the identifier dictionary*/
+  int initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                       const std::string& group_name);
+
+
+  /** True if the + and - sides of the calorimeter are identical (true layout).
+      False if they are mirror reflections (used in early MC). */
+  bool twoSymSides() const;
+
+
+  /** access to hashes for neighbours      return == 0 for neighbours found  <br>
+      option = prevInPhi, nextInPhi, prevInEta, nextInEta, faces2D, corners2D, all2D, 
+               prevInSamp, nextInSamp, upAndDown, prevSubDet, nextSubDet, all3D <br>
+
+               in 'nextInEta', 'nextInSamp', 'nextSubDet', next means 'away from the centre of Atlas' <br>
+               in 'prevInEta', 'prevInSamp', 'prevSubDet', prev means 'towards   the centre of Atlas' <br>
+	       faces2D means prevInPhi + nextInPhi + prevInEta + nextInEta <br>
+	       corners2D means corners in the same sampling, 
+	                       not only touching cells but all corner cells forming a square (in case of change in eta granularity ) <br>
+	       all2D means faces2D + corners2D <br>
+	       upAndDown means prevInSamp + nextInSamp <br>
+	       prevSubDet and nextSubDet mean across barrel/EC boundary <br>
+	       all3D means all2D + upAndDown + prevSubDet + nextSubDet <br>  */
+  int get_neighbours(const IdentifierHash id,
+                     const LArNeighbours::neighbourOption& option,
+                     std::vector<IdentifierHash>& neighbourList) const;
+
+
+  using CaloIDHelper::region_id;
+  using CaloIDHelper::region_hash;
+  using CaloIDHelper::channel_id;
+  // Inherited from CaloIDHelper:
+  // 
+  //Identifier channel_id (IdentifierHash hashId) const;
+  //Identifier region_id (IdentifierHash hashId) const;
+  //IdentifierHash region_hash (Identifier regionId) const;
+  //size_type channel_hash_max() const;
+  //size_type region_hash_max() const;
+  //IdContext channel_context() const;
+  //IdContext region_context() const;
+  //const std::vector<const IdDictRegion*>& dictRegions() const;
+  //float etaGranularity(const IdentifierHash regHash) const;
+  //float phiGranularity(const IdentifierHash regHash) const;
+  //float eta0(const IdentifierHash regHash) const;
+  //float phi0(const IdentifierHash regHash) const;
+  //virtual int get_id (const IdentifierHash& hash_id,
+  //                    Identifier& id,
+  //                    const IdContext* context = 0 ) const;
+  //virtual int  get_hash  (const Identifier& id,
+  //                        IdentifierHash& hash_id,
+  //                        const IdContext* context = 0 ) const;
+
+
+private:
+  enum {NOT_VALID_HASH = 256000};
+
+  // Check methods
+  void  region_id_checks   	(int barrel_ec, int sampling, int region ) const throw(LArID_Exception);
+  void  channel_id_checks   	(int barrel_ec, int sampling, int region,
+				 int eta,       int phi ) const throw(LArID_Exception);
+  void  channel_id_checks   	(const Identifier regionId,
+				 int eta,       int phi ) const throw(LArID_Exception);
+
+  void  disc_region_id_checks   (int barrel_ec, int sampling, int region ) const throw(LArID_Exception);
+  void  disc_channel_id_checks  (int barrel_ec, int sampling, int region,
+				 int eta,       int phi ) const throw(LArID_Exception);
+  void  disc_channel_id_checks  (const Identifier regionId,
+				 int eta,       int phi ) const throw(LArID_Exception);
+
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  virtual int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+  int  get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+  int phi_min_init(const Identifier regId) const;
+
+  int         initLevelsFromDict (const std::string& group_name);
+  int         init_hashes(void) ;
+  int         init_disc_hashes(void) ;
+
+
+  int   get_prevInPhi(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_nextInPhi(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_prevInEta(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const;
+
+  int   get_nextInEta(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, const unsigned int& maxHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const;
+
+  int   get_prevInSamp(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		       const double& gEta, const float& gPhi, const double& absEta,
+		       int& neighbourIndex, IdentifierHash* neighbList) const;
+  
+  int   get_nextInSamp(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		       const double& gEta, const float& gPhi, const double& absEta,
+		       int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_prevInSubdet(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+			 const double& gEta, const float& gPhi, const double& absEta,
+			 int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_nextInSubdet(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+			 const double& gEta, const float& gPhi, const double& absEta,
+			 int& neighbourIndex, IdentifierHash* neighbList) const;
+
+
+
+  int         init_neighbors(void) ;
+
+
+private:
+  unsigned                      m_slar;
+
+  bool                          m_two_sym_sides;
+
+  MultiRange                    m_full_region_range;
+  MultiRange                    m_full_em_range;
+  MultiRange                    m_full_disc_region_range;
+  MultiRange                    m_full_disc_em_range;
+
+  size_type                     m_em_region_index;
+  size_type                     m_LAR_INDEX;
+  size_type                     m_EM_INDEX;
+  size_type                     m_BEC_INDEX;
+  size_type                     m_SAMPLING_INDEX;
+  size_type                     m_REGION_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+  size_type                     m_SLAR_INDEX;
+
+  CaloIDHelper::HashGroup       m_disc_channels;
+
+  IdDictFieldImplementation     m_lar_impl;
+  IdDictFieldImplementation  	m_em_impl;
+  IdDictFieldImplementation  	m_bec_impl;
+  IdDictFieldImplementation  	m_sampling_impl;
+  IdDictFieldImplementation  	m_region_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+
+  IdDictFieldImplementation  	m_slar_impl;
+
+  std::vector<int>              m_vecOfPhiMin;
+
+  /**
+     @brief small class holding the starting hash value, the min eta and the number of phi bins of each region 
+
+     used to CPU-optimize the conversion from an identifier to a hash index
+   */
+    class HashCalc
+    {
+    public:
+	HashCalc() :
+	    m_hash(0),
+	    m_etamin(0),
+	    m_phimin(0),
+	    m_nphi(0) {}
+	IdentifierHash m_hash;
+	size_type      m_etamin;
+	size_type      m_phimin;
+	size_type      m_nphi;
+    };
+  std::vector<HashCalc>         m_hash_calcs;
+
+  IdDictFieldImplementation  	m_bec_reg_impl;
+
+  std::vector<Identifier>       m_disc_region_vec;
+  std::vector<LArEM_region*>    m_vecOfRegions;
+  std::vector<unsigned>         m_cells;          // stores starting hash number of each region, regions are ordered by hash so this array is ordered as well
+
+  LArEM_Base_ID (const LArEM_Base_ID&);
+  LArEM_Base_ID& operator= (const LArEM_Base_ID&);
+};
+
+
+#include "CaloIdentifier/LArEM_Base_ID.icc"
+
+
+#endif // not CALOIDENTIFIER_LAREM_BASE_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.icc b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.icc
new file mode 100644
index 0000000000000000000000000000000000000000..914d952bfefcbbe9a10ee22454089158fa638052
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_Base_ID.icc
@@ -0,0 +1,377 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArEM_Base_ID.icc
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Aug, 2012
+ * @brief Inline implementations for LArEM_Base_ID.
+ */
+
+
+//--------------------
+// Inline definitions
+//--------------------
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::region_id   ( const ExpandedIdentifier& exp_id) const
+{  
+  return this->region_id   ( exp_id[m_BEC_INDEX],
+                             exp_id[m_SAMPLING_INDEX], 
+                             exp_id[m_REGION_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::channel_id   ( const ExpandedIdentifier& exp_id) const
+{  
+  return this->channel_id (exp_id[m_BEC_INDEX],
+                           exp_id[m_SAMPLING_INDEX], 
+                           exp_id[m_REGION_INDEX],
+                           exp_id[m_ETA_INDEX],
+                           exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::region_id (int barrel_ec, int sampling, int region) const 
+{
+
+    // Do checks
+    if(m_do_checks) {
+      region_id_checks ( barrel_ec, sampling, region );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_em_impl.pack       (lar_em_field_value(), result);
+    m_bec_impl.pack      (barrel_ec,            result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::channel_id   ( int barrel_ec, int sampling, int region,
+                              int eta,       int phi )  const
+{  
+    // Do checks
+    if(m_do_checks) {
+      channel_id_checks( barrel_ec, sampling, region, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_em_impl.pack       (lar_em_field_value(), result);
+    m_bec_impl.pack      (barrel_ec,            result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_eta_impl.pack      (eta,                  result);
+    m_phi_impl.pack      (phi,                  result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::disc_region_id (int barrel_ec, int sampling, int region) const 
+{
+    // Do checks
+    if(m_do_checks) {
+      disc_region_id_checks ( barrel_ec, sampling, region );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_em_impl.pack       (-1,                   result);
+    m_bec_impl.pack      (barrel_ec,            result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::disc_channel_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->disc_channel_id (exp_id[m_BEC_INDEX],
+                                exp_id[m_SAMPLING_INDEX], 
+                                exp_id[m_REGION_INDEX],
+                                exp_id[m_ETA_INDEX],
+                                exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::disc_channel_id   ( int barrel_ec, int sampling, int region,
+                                   int eta,       int phi ) const 
+{  
+    // Do checks
+    if(m_do_checks) {
+      disc_channel_id_checks( barrel_ec, sampling, region, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_em_impl.pack       (-1,                   result);
+    m_bec_impl.pack      (barrel_ec,            result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_eta_impl.pack      (eta,                  result);
+    m_phi_impl.pack      (phi,                  result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::region_id   ( const Identifier channelId ) const 
+{
+  Identifier result(channelId);
+  //  reset eta/phi
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  m_slar_impl.pack(m_slar,result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArEM_Base_ID::channel_id   ( const Identifier regionId,
+                              int eta,       int phi ) const 
+{
+    // Do checks
+    if(m_do_checks) {
+      if(is_connected(regionId)) {
+	channel_id_checks( regionId, eta, phi );
+      } else {
+	disc_channel_id_checks( regionId, eta, phi );
+      }
+    }
+
+    Identifier result(regionId);
+
+    // Reset the fields and then set the values
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+    m_slar_impl.pack     (m_slar,   result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_connected(const IdentifierHash hashId) const
+{
+  return ( hashId < channels().hash_max() );
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_connected(const Identifier channelId) const
+{
+    return ( m_em_impl.unpack(channelId) == 1 );
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArEM_Base_ID::channel_hash (Identifier channelId) const
+{
+    const HashCalc& hc = m_hash_calcs[m_bec_reg_impl.unpack(channelId)];
+    return (hc.m_hash + (eta(channelId)-hc.m_etamin)*hc.m_nphi + (phi(channelId)-hc.m_phimin) );
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArEM_Base_ID::channel_hash_binary_search  (Identifier channelId) const
+{
+  return CaloIDHelper::channel_hash (channelId);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArEM_Base_ID::disc_channel_id    (IdentifierHash disc_channel_hash_id) const
+{
+  if(disc_channel_hash_id < channels().hash_max()) {
+    return channel_id (disc_channel_hash_id);
+  }
+  else {
+    return m_disc_channels.id (disc_channel_hash_id - channels().hash_max());
+  }
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArEM_Base_ID::disc_channel_hash (Identifier disc_channel_id) const
+{
+  if (is_connected(disc_channel_id)) {
+    const HashCalc& hc = m_hash_calcs[m_bec_reg_impl.unpack(disc_channel_id)];
+    return (hc.m_hash + (eta(disc_channel_id)-hc.m_etamin)*hc.m_nphi + phi(disc_channel_id)-hc.m_phimin );
+  }
+  else {
+    IdentifierHash hash = m_disc_channels.hash (disc_channel_id);
+    if (hash.is_valid())
+      hash += channels().hash_max();
+    return hash;
+  }
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::size_type     LArEM_Base_ID::disc_channel_hash_max (void) const
+{
+  return channels().hash_max() + m_disc_channels.hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::size_type     LArEM_Base_ID::disc_channel_hash_min (void) const
+{
+  return channels().hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::reg_begin    (void) const
+{
+  return regions().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::reg_end      (void) const
+{
+  return regions().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_range LArEM_Base_ID::reg_range      (void) const
+{
+  return regions().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::em_begin    (void) const
+{
+  return channels().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::em_end      (void) const
+{
+  return channels().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_range LArEM_Base_ID::em_range      (void) const
+{
+  return channels().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::disc_em_begin    (void) const
+{
+  return m_disc_channels.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_iterator LArEM_Base_ID::disc_em_end      (void) const
+{
+  return m_disc_channels.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArEM_Base_ID::id_range LArEM_Base_ID::disc_em_range      (void) const
+{
+  return m_disc_channels.range();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArEM_Base_ID::channel_ids() const
+{
+  return channels().ids();
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_em_barrel(const Identifier id) const
+{
+    return (is_lar_em(id) && (abs(barrel_ec(id)))==1);
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_em_endcap(const Identifier id) const
+{
+    return (is_lar_em(id) && (abs(barrel_ec(id)))>1);
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_em_endcap_outer(const Identifier id) const
+{
+    return (is_lar_em(id) && (abs(barrel_ec(id)))==2);
+}
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::is_em_endcap_inner(const Identifier id) const
+{
+    return (is_lar_em(id) && (abs(barrel_ec(id)))==3);
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::barrel_ec(const Identifier id)const
+{
+  return (m_bec_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::sampling(const Identifier id)const
+{
+  return (m_sampling_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::region(const Identifier id)const
+{
+  return (m_region_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::eta(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_eta_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::phi(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_phi_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArEM_Base_ID::phi_min(const Identifier regId) const
+{
+  IdentifierHash regHash = region_hash(regId);
+  unsigned int index = regHash;
+  return (m_vecOfPhiMin[index]);
+}
+
+
+//----------------------------------------------------------------------------
+inline bool LArEM_Base_ID::twoSymSides() const
+{
+  return m_two_sym_sides;
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..f6c44fb60a8bbbdd9e91e6dda82a7788817540fe
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_ID.h
@@ -0,0 +1,199 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LAREM_ID_H
+#define LAREM_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "CaloIdentifier/LArID_Exception.h"
+#include "CaloIdentifier/LArEM_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+#include <vector>
+#include <algorithm>
+
+/**
+*
+* @class LArEM_ID
+* @brief Helper class for LArEM offline identifiers
+*  
+*  This class provides an interface to decode and generate offline identifiers
+*  for the LAr EM detector subsystem.  <p>
+* 
+* Definition and range of values for the elements of the identifier are: <p>
+* <pre>
+*             Connected channels :
+*             ------------------
+* element           range              meaning
+* -------           -----              -------
+* 
+* barrel_ec        +/-1             positive/negative barrel - A/C side or P/M half barrel
+* "                +/-2             positive/negative endcap outer wheel - A/C side 
+* "                +/-3             positive/negative endcap inner wheel - A/C side
+* 
+* sampling         0                both presamplers
+* "                [1,3]            barrel and endcap outer wheel 
+* "                [1,2]            endcap inner wheel
+* 
+* region           0                both presamplers
+* "                [0,1]            barrel sampling 1 and 2 
+* "                0                barrel sampling 3
+* "
+* "                [0,5]            endcap outer wheel sampling 1
+* "                0                endcap inner wheel sampling 1
+* "                [0,1]            endcap outer wheel sampling 2
+* "                0                endcap inner wheel sampling 2
+* "                0                endcap outer wheel sampling 3
+* 
+* 
+* eta for barrel   [0,60]         presampler - 0< eta <1.52 - deta is approximately equal to 0.025
+* "                [0,447]        sampling 1 region 0  0   < eta < 1.4   - deta = 0.025/8 
+* "                [0,2]          sampling 1 region 1  1.4 < eta < 1.475 - deta = 0.025
+* "                [0,55]         sampling 2 region 0  0   < eta < 1.4   - deta = 0.025 
+* "                0              sampling 2 region 1  1.4 < eta < 1.475 - deta = 0.075
+* "                [0,26]         sampling 3 region 0  0   < eta < 1.35  - deta = 0.050 
+* "
+* phi for barrel   [0,63]         barrel presampler   - dphi = 0.1
+* "                [0,63]         sampling 1 region 0 - dphi = 0.1
+* "                [0,255]        sampling 1 region 1 - dphi = 0.025
+* "                [0,255]        sampling 2 region 0 - dphi = 0.025
+* "                [0,255]        sampling 2 region 1 - dphi = 0.025
+* "                [0,255]        sampling 3 region 0 - dphi = 0.025
+* 
+* number of cells in barrel :
+* presampler :  7808
+* sampling 1 : 58752
+* sampling 2 : 29184
+* sampling 3 : 13824
+* total      :109568
+* 
+* eta for endcap   [0,11]      presampler  sampling 0 region 0  1.5   < eta < 1.8   - deta = 0.025
+* "                0           outer wheel sampling 1 region 0  1.375 < eta < 1.425 - deta = 0.05  
+* "                [0,2]       outer wheel sampling 1 region 1  1.425 < eta < 1.5   - deta = 0.025
+* "                [0,95]      outer wheel sampling 1 region 2  1.5   < eta < 1.8   - deta = 0.025/8
+* "                [0,47]      outer wheel sampling 1 region 3  1.8   < eta < 2.0   - deta = 0.025/6
+* "                [0,63]      outer wheel sampling 1 region 4  2.0   < eta < 2.4   - deta = 0.025/4 
+* "                [0,3]       outer wheel sampling 1 region 5  2.4   < eta < 2.5   - deta = 0.025
+* "                [0,6]       inner wheel sampling 1 region 0  2.5   < eta < 3.2   - deta = 0.1
+* "                0           outer wheel sampling 2 region 0  1.375 < eta < 1.425 - deta = 0.05
+* "                [0,42]      outer wheel sampling 2 region 1  1.425 < eta < 2.5   - deta = 0.025
+* "                [0,6]       inner wheel sampling 2 region 0  2.5   < eta < 3.2   - deta = 0.1
+* "                [0,19]      outer wheel sampling 3 region 0  1.5   < eta < 2.5   - deta = 0.05 
+* 
+* phi for endcap   [0,63]      presampler  sampling 0 region 0       - dphi = 0.1
+* "                [0,63]      outer wheel sampling 1 regions [0,5]  - dphi = 0.1 
+* "                [0,63]      inner wheel sampling 1 region  0      - dphi = 0.1 
+* "                [0,255]     outer wheel sampling 2 regions [0,1]  - dphi = 0.025
+* "                [0,63]      inner wheel sampling 2 region 0       - dphi = 0.1
+* "                [0,255]     outer wheel sampling 3 region 0       - dphi = 0.025
+* 
+* number of cells in endcap :
+* presampler  :  1536
+* Outer wheel:
+* sampling 1  : 27648
+* sampling 2  : 22528
+* sampling 3  : 10240
+* total       : 60416
+* Inner wheel:
+* sampling 1  :   896
+* sampling 2  :   896
+* total       :  1792
+* 
+* Grand Total : 63744
+*
+*             Disconnected channels :
+*             ---------------------
+* barrel_ec        +/-1             positive/negative barrel - A/C side or P/M half barrel
+* "                +/-2             positive/negative endcap outer wheel - A/C side 
+* "                +/-3             positive/negative endcap inner wheel - A/C side
+* 
+* sampling         0                both presamplers
+* "                [1,3]            barrel and endcap outer wheel 
+* "                [1,2]            endcap inner wheel
+* 
+* region           0                both presamplers
+* "                0                barrel sampling 2 
+* "                0                barrel sampling 3
+* "
+* "                1,3,5            endcap outer wheel sampling 1
+* "                0                endcap inner wheel sampling 1
+* "                0                endcap inner wheel sampling 2
+* 
+* 
+* eta for barrel   [61,63]        presampler
+* "                [56,63]        sampling 2 region 0
+* "                27             sampling 3 region 0 
+* "
+* phi for barrel   [0,63]         barrel presampler 
+* "                [0,255]        sampling 2 region 0
+* "                [0,255]        sampling 3 region 0
+* 
+* number of disconnected cells in barrel :
+* presampler :  384
+* sampling 2 :  128
+* sampling 3 :  512
+* total      : 1024
+*
+* 
+* eta for endcap   [12,19]     presampler  sampling 0 region 0 
+* "                [0,2]       outer wheel sampling 1 region 1 
+* "                [0,47]      outer wheel sampling 1 region 3 
+* "                [0,3]       outer wheel sampling 1 region 5 
+* "                [0,6]       inner wheel sampling 1 region 0 
+* "                [0,6]       inner wheel sampling 2 region 0 
+* 
+* phi for endcap   [0,63]      presampler  sampling 0 region 0      
+* "                [0,63]      outer wheel sampling 1 regions 1,3,5
+* "                [0,63]      inner wheel sampling 1 region 0     
+* "                [0,63]      inner wheel sampling 2 region 0      
+* 
+* number of cells in endcap :
+* presampler  : 1024
+* Outer wheel:
+* sampling 1  : 3072
+* total       : 4096
+* Inner wheel:
+* sampling 1  : 128
+* sampling 2  : 128
+* total       : 256
+* 
+* Grand Total : 4352
+*
+* In the hash series, the diconnected channels are put at the end, after the connected channels.
+* channel_hash_min = 0 ; disc_channel_hash_min = channel_hash_max ;
+*
+* </pre>
+* @author started by RD Schaffer
+* @author maintained by Fabienne Ledroit
+*/
+
+class Range;
+
+class LArEM_ID : public LArEM_Base_ID
+{
+public:        
+
+  typedef Identifier::size_type  size_type ;
+
+  LArEM_ID(void);    
+  ~LArEM_ID(void);
+
+
+  
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArEM_ID , 163583365 , 1 )
+SG_BASE (LArEM_ID, LArEM_Base_ID);
+
+
+#endif // LAREM_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_SuperCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_SuperCell_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..cfd0a54fb842824c9c5dee6fa9f1371f3107d533
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArEM_SuperCell_ID.h
@@ -0,0 +1,137 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArEM_SuperCell_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Aug, 2012
+ * @brief Helper class for LArEM offline identifiers for supercells
+ */
+
+
+#ifndef CALOIDENTIFIER_LAREM_SUPERCELL_ID_H
+#define CALOIDENTIFIER_LAREM_SUPERCELL_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "CaloIdentifier/LArEM_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+
+/**
+*
+* @class LArEM_SuperCell_ID
+* @brief Helper class for LArEM offline identifiers for supercells
+*  
+*  This class provides an interface to decode and generate offline identifiers
+*  for the Supercell version of the LAr EM detector subsystem.  <p>
+*
+* Definition and range of values for the elements of the identifier are: <p>
+* <pre>
+*             Connected channels :
+*             ------------------
+* element           range              meaning
+* -------           -----              -------
+* 
+* barrel_ec        +/-1             positive/negative barrel - A/C side or P/M half barrel
+* "                +/-2             positive/negative endcap outer wheel - A/C side 
+* "                +/-3             positive/negative endcap inner wheel - A/C side
+* 
+* sampling         0                both presamplers
+* "                [1,3]            barrel and endcap outer wheel 
+* "                [1,2]            endcap inner wheel
+* 
+* region           0                both presamplers
+* "                [0,1]            barrel sampling 1 and 2 
+* "                0                barrel sampling 3
+* "
+* "                0,[2,5]          endcap outer wheel sampling 1
+* "                [0,1]            endcap inner wheel sampling 1
+* "                [0,1]            endcap outer wheel sampling 2
+* "                [0,1]            endcap inner wheel sampling 2
+* "                0                endcap outer wheel sampling 3
+* 
+* 
+* eta for barrel   [0,15]         presampler - 0< eta <1.52 - deta is approximately equal to 0.1
+* "                [0,55]         sampling 1 region 0  0   < eta < 1.4   - deta = 0.025
+* "                [0,2]          sampling 1 region 1  1.4 < eta < 1.475 - deta = 0.025
+* "                [0,55]         sampling 2 region 0  0   < eta < 1.4   - deta = 0.025 
+* "                0              sampling 2 region 1  1.4 < eta < 1.475 - deta = 0.075
+* "                [0,13]         sampling 3 region 0  0   < eta < 1.35  - deta = 0.1
+* "
+* phi for barrel   [0,63]         barrel presampler   - dphi = 0.1
+* "                [0,63]         sampling 1 region 0 - dphi = 0.1
+* "                [0,63]         sampling 1 region 1 - dphi = 0.1
+* "                [0,63]         sampling 2 region 0 - dphi = 0.1
+* "                [0,63]         sampling 2 region 1 - dphi = 0.1
+* "                [0,63]         sampling 3 region 0 - dphi = 0.1
+* 
+* number of cells in barrel :
+* presampler :  2048
+* sampling 1 :  7552
+* sampling 2 :  7296
+* sampling 3 :  1792
+* total      : 18688
+* 
+* eta for endcap   [0,2]       presampler  sampling 0 region 0  1.5   < eta < 1.8   - deta = 0.1
+* "                0           outer wheel sampling 1 region 0  1.375 < eta < 1.425 - deta = 0.125
+* "                [0,11]      outer wheel sampling 1 region 2  1.5   < eta < 1.8   - deta = 0.025
+* "                [0,11]      outer wheel sampling 1 region 3  1.8   < eta < 2.0   - deta = 0.1667
+* "                [0,15]      outer wheel sampling 1 region 4  2.0   < eta < 2.4   - deta = 0.025
+* "                0           outer wheel sampling 1 region 5  2.4   < eta < 2.5   - deta = 0.1
+* "                [0,2]       inner wheel sampling 1 region 0  2.5   < eta < 3.1   - deta = 0.2
+* "                0           inner wheel sampling 1 region 0  3.1   < eta < 3.2   - deta = 0.1
+* "                0           outer wheel sampling 2 region 0  1.375 < eta < 1.425 - deta = 0.05
+* "                [0,42]      outer wheel sampling 2 region 1  1.425 < eta < 2.5   - deta = 0.025
+* "                [0,2]       inner wheel sampling 2 region 0  2.5   < eta < 3.1   - deta = 0.2
+* "                0           inner wheel sampling 2 region 0  3.1   < eta < 3.2   - deta = 0.1
+* "                [0,9]       outer wheel sampling 3 region 0  1.5   < eta < 2.5   - deta = 0.1
+* 
+* phi for endcap   [0,63]      presampler  sampling 0 region 0       - dphi = 0.1
+* "                [0,63]      outer wheel sampling 1 regions [0,5]  - dphi = 0.1 
+* "                [0,31]      inner wheel sampling 1 region  0      - dphi = 0.2
+* "                [0,63]      outer wheel sampling 2 regions [0,1]  - dphi = 0.1
+* "                [0,31]      inner wheel sampling 2 region 0       - dphi = 0.2
+* "                [0,63]      outer wheel sampling 3 region 0       - dphi = 0.1
+* 
+* number of cells in endcap :
+* presampler  :   384
+* Outer wheel:
+* sampling 1  :  4864
+* sampling 2  :  5632
+* sampling 3  :  1280
+* total       : 11776
+* Inner wheel:
+* sampling 1  :   256
+* sampling 2  :   256
+* total       :   512
+* 
+* Grand Total : 12672
+*
+* No disconnected channels are defined for supercells.
+*
+* @author RD Schaffer, Denis Oliveira Damazio, scott snyder
+*/
+
+
+
+class LArEM_SuperCell_ID : public LArEM_Base_ID
+{
+public:        
+  LArEM_SuperCell_ID(void);    
+  ~LArEM_SuperCell_ID(void);
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArEM_SuperCell_ID , 99488227 , 1 )
+SG_BASE (LArEM_SuperCell_ID, LArEM_Base_ID);
+
+
+#endif // CALOIDENTIFIER_LAREM_SUPERCELL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..59507d79f1a6b7412343abcba92865347835f829
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.h
@@ -0,0 +1,303 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOIDENTIFIER_LARFCAL_BASE_ID_H
+#define CALOIDENTIFIER_LARFCAL_BASE_ID_H
+
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "CaloIdentifier/LArNeighbours.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "boost/range/iterator_range.hpp"
+
+class IdDictRegion;
+
+class LArFCAL_Base_ID : public CaloIDHelper
+{
+public:
+        
+  typedef Identifier::size_type  size_type ;
+
+  LArFCAL_Base_ID(const std::string& name, bool supercell);
+
+  /** module identifier for a connected channel from ExpandedIdentifier */
+  Identifier  module_id	(const ExpandedIdentifier& exp_id) const ;
+
+  /** cell identifier for a connected channel from ExpandedIdentifier */
+  Identifier  channel_id (const ExpandedIdentifier& exp_id) const ;
+
+  /** build a module identifier for a connected channel  */
+  Identifier  module_id	( int pos_neg, int module ) const ;
+
+  /** build a cell identifier for a connected channel  */
+  Identifier  channel_id( int pos_neg,  int module,
+			  int eta,      int phi ) const ;
+
+  /** module identifier for a disconnected channel from ExpandedIdentifier */
+  Identifier  disc_module_id (const ExpandedIdentifier& exp_id) const ;
+
+  /** cell identifier for a disconnected channel from ExpandedIdentifier */
+  Identifier  disc_channel_id (const ExpandedIdentifier& exp_id) const ;
+
+  /** build a module identifier for disconnected channels  */
+  Identifier  disc_module_id	( int pos_neg, int module ) const ;
+
+  /** build a cell identifier for disconnected channels  */
+  Identifier  disc_channel_id( int pos_neg,  int module,
+			       int eta,      int phi ) const ;
+
+  /** allows to know in which region is a channel/cell
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  module_id	(const Identifier id ) const;
+     
+  /** allows to build a channel id starting from a module id (e.g. from descriptors) 
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  channel_id( const Identifier moduleId,
+			  int eta, int phi) const ;
+			     
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const IdentifierHash hashId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const Identifier channelId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_connected ( int pos_neg,  int module, int eta, int phi )  const throw(LArID_Exception);
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_disconnected ( int pos_neg,  int module, int eta, int phi )  const throw(LArID_Exception);
+				 
+    /** create module id from hash id (connected channels only)*/
+  Identifier module_id	(IdentifierHash module_hash_id) const;
+
+    /** create hash id from module id*/
+  IdentifierHash module_hash  (Identifier module_id) const;
+
+  /** create hash id from connected channel id  -- method NOT optimised, please use channel_hash() above */
+  IdentifierHash channel_hash_binary_search (Identifier channelId) const;
+
+  /** create channel id from hash id  (all channels, connected + diconnected, together) */
+  Identifier disc_channel_id	(IdentifierHash disc_channel_hash_id) const;	
+
+    /** create hash id from disconnected channel id*/
+  IdentifierHash disc_channel_hash (Identifier disc_channelId) const;
+
+  /**  region hash table max size */
+  size_type     module_hash_max (void) const;
+  /** cell hash table max size (all channels: connected + disconnected) */
+  size_type     disc_channel_hash_max (void) const;
+  /** disconnected cell/channel hash table min index */
+  size_type     disc_channel_hash_min (void) const;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+  /** begin iterator over set of module Identifiers */
+  id_iterator mod_begin    (void) const;
+  /** end iterator over set of module Identifiers */
+  id_iterator mod_end      (void) const;
+  /** Range over full set of FCAL modules. */
+  id_range mod_range () const;
+
+  /** begin iterator over full set of Fcal Identifiers for connected channels */
+  id_iterator fcal_begin    (void) const;
+  /** end iterator over full set of Fcal Identifiers for connected channels */
+  id_iterator fcal_end      (void) const;
+  /** Range over full set of FCAL Identifiers. */
+  id_range fcal_range () const;
+
+  /** begin iterator over full set of Fcal Identifiers for DISconnected channels */
+  id_iterator disc_fcal_begin    (void) const;
+  /** end iterator over full set of Fcal Identifiers for DISconnected channels */
+  id_iterator disc_fcal_end      (void) const;
+  /** Range over full set of FCAL Identifiers for disconnected channels. */
+  id_range disc_fcal_range () const;
+
+  /** begin iterator over full set of Fcal Identifiers for DISconnected modules */
+  id_iterator disc_module_begin    (void) const;
+  /** end iterator over full set of Fcal Identifiers for DISconnected modules */
+  id_iterator disc_module_end      (void) const;
+  /** Range over full set of FCAL Identifiers for disconnected modules. */
+  id_range disc_module_range () const;
+
+  /** provide acces to channel id vector, accessed via hash */
+  const std::vector<Identifier>& channel_ids() const;
+
+			     
+  /** pos_neg : +/- 2 (A/C side) */
+  int         pos_neg         (const Identifier id)const; 
+  /** module [1,3] */
+  int         module          (const Identifier id)const;
+  /** eta [0,63] module 1 ; [0,31] module 2 ; [0,15] module 3, -999 if disconnected channel */
+  int         eta             (const Identifier id)const;
+  /** phi [0,15], -999 if disconnected channel */
+  int         phi             (const Identifier id)const; 
+
+  /** Test if the identifier represents a supercell. */
+  bool        is_supercell    (const Identifier id)const;
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier regId) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+  
+  /** eta index -- only for checks, since dummy for disconnected channels */
+  int         disc_eta             (const Identifier id)const; 
+  /** phi index -- only for checks, since dummy for disconnected channels */
+  int         disc_phi             (const Identifier id)const; 
+
+  /** context for modules --  method kept for backward compatibility. NOT optimised <br>
+      access to IdContext's which define which levels of fields are contained in the id */
+  IdContext    module_context   (void) const;
+
+
+
+  /** access to hashes for neighbours      return == 0 for neighbours found  <br>
+      option = all2D, prevInSamp, nextInSamp, all3D <br>
+               in 'nextInSamp', next means 'away from the centre of Atlas' <br>
+               in 'prevInSamp', prev means 'towards   the centre of Atlas' <br> 
+  Nota Bene = neighbours do not include diconnected channels */
+  int  get_neighbours(const IdentifierHash id,
+                      const LArNeighbours::neighbourOption& option,
+                      std::vector<IdentifierHash>& neighbourList) const;
+
+
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+						const std::string& group_name);
+
+
+  using CaloIDHelper::channel_id;
+  using CaloIDHelper::channel_hash;
+  // Inherited from CaloIDHelper:
+  // 
+  //Identifier channel_id (IdentifierHash hashId) const;
+  //Identifier region_id (IdentifierHash hashId) const;
+  //IdentifierHash channel_hash (Identifier channelId) const;
+  //IdentifierHash region_hash (Identifier regionId) const;
+  //size_type channel_hash_max() const;
+  //size_type region_hash_max() const;
+  //IdContext channel_context() const;
+  //IdContext region_context() const;
+  //const std::vector<const IdDictRegion*>& dictRegions() const;
+  //float etaGranularity(const IdentifierHash regHash) const;
+  //float phiGranularity(const IdentifierHash regHash) const;
+  //float eta0(const IdentifierHash regHash) const;
+  //float phi0(const IdentifierHash regHash) const;
+  //virtual int get_id (const IdentifierHash& hash_id,
+  //                    Identifier& id,
+  //                    const IdContext* context = 0 ) const;
+  //virtual int  get_hash  (const Identifier& id,
+  //                        IdentifierHash& hash_id,
+  //                        const IdContext* context = 0 ) const;
+
+
+private:    
+
+  enum {NOT_VALID_HASH = 64000};
+
+  int phi_min_init(const Identifier regId) const;
+
+  // Check methods
+
+  void  module_id_checks      ( int pos_neg, int module ) const throw(LArID_Exception);
+  void  channel_id_checks     ( int pos_neg,  int module,
+				int eta,      int phi ) const throw(LArID_Exception);
+  void  channel_id_checks     ( const Identifier moduleId,
+				int eta, int phi) const throw(LArID_Exception);
+  void  disc_module_id_checks      ( int pos_neg, int module ) const throw(LArID_Exception);
+  void  disc_channel_id_checks     ( int pos_neg,  int module,
+				     int eta,      int phi ) const throw(LArID_Exception);
+  void  disc_channel_id_checks     ( const Identifier moduleId,
+				     int eta, int phi) const throw(LArID_Exception);
+			     
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  virtual int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+  int  get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+
+  int         initLevelsFromDict(const std::string& group_name) ;
+  int         init_hashes(void) ;
+  int         init_disc_hashes(void) ;
+
+  int         init_neighbours_from_file(std::string filename, std::vector<std::set<IdentifierHash> > &vec);
+
+  int         init_neighbours_2d(std::string filename)
+    { 
+      return init_neighbours_from_file(filename, m_neighbours_2d_vec);
+    }
+
+  int         init_neighbours_3d_next(std::string filename)
+    { 
+      return init_neighbours_from_file(filename, m_neighbours_3d_next_vec);
+    }
+
+  int         init_neighbours_3d_prev(std::string filename)
+    { 
+      return init_neighbours_from_file(filename, m_neighbours_3d_prev_vec);
+    }
+
+  int         init_neighbours(const IdDictMgr& dict_mgr) ;
+
+
+private:
+  unsigned                      m_slar;
+
+  bool                          m_two_sym_sides;
+
+  size_type                     m_fcal_region_index;
+  size_type                     m_LAR_INDEX;
+  size_type                     m_SLAR_INDEX;
+  size_type                     m_FCAL_INDEX;
+  size_type                     m_POSNEG_INDEX;
+  size_type                     m_MODULE_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+
+  MultiRange                    m_full_channel_range;
+  MultiRange                    m_full_module_range;
+  MultiRange                    m_full_disc_channel_range;
+  MultiRange                    m_full_disc_module_range;
+
+  CaloIDHelper::HashGroup       m_disc_channels;
+  CaloIDHelper::HashGroup       m_disc_modules;
+
+  std::vector<short int>        m_vecOfPhiMin;
+
+  IdDictFieldImplementation     m_lar_impl;
+  IdDictFieldImplementation  	m_fcal_impl;
+  IdDictFieldImplementation  	m_pn_impl;
+  IdDictFieldImplementation  	m_module_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+  IdDictFieldImplementation  	m_pn_mod_impl;
+
+  IdDictFieldImplementation  	m_slar_impl;
+
+  LArFCAL_Base_ID (const LArFCAL_Base_ID&);
+  LArFCAL_Base_ID& operator= (const LArFCAL_Base_ID&);
+
+  std::vector<std::set<IdentifierHash> >  m_neighbours_2d_vec;
+  std::vector<std::set<IdentifierHash> >  m_neighbours_3d_next_vec;
+  std::vector<std::set<IdentifierHash> >  m_neighbours_3d_prev_vec;
+};
+
+#include "CaloIdentifier/LArFCAL_Base_ID.icc"
+
+
+#endif // not CALOIDENTIFIER_LARFCAL_BASE_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.icc b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.icc
new file mode 100644
index 0000000000000000000000000000000000000000..9bd8b6ad1e3bda585cfa37a958e0bed17aa3128b
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_Base_ID.icc
@@ -0,0 +1,369 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArFCAL_Base_ID.icc
+ * @author naoko kanaya <nkanaya@cern.ch>
+ * @date May, 2013
+ * @brief Inline implementations for LArFCAL_Base_ID.
+ */
+
+
+//--------------------
+// Inline definitions
+//--------------------
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::module_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->module_id   ( exp_id[m_POSNEG_INDEX],
+                             exp_id[m_MODULE_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->channel_id (exp_id[m_POSNEG_INDEX],
+                           exp_id[m_MODULE_INDEX], 
+                           exp_id[m_ETA_INDEX],
+                           exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::module_id (int pos_neg, int module) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+	module_id_checks ( pos_neg, module );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (lar_fcal_field_value(), result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::channel_id   ( int pos_neg, int module,
+			   int eta,     int phi ) const 
+{  
+    // Do checks 
+    if(m_do_checks) {
+	channel_id_checks( pos_neg, module, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (lar_fcal_field_value(), result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_eta_impl.pack      (eta,                    result);
+    m_phi_impl.pack      (phi,                    result);
+    m_slar_impl.pack     (m_slar,               result);
+    
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::disc_module_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_module_id ( exp_id[m_POSNEG_INDEX],
+                                exp_id[m_MODULE_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::disc_channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_channel_id (exp_id[m_POSNEG_INDEX],
+                                exp_id[m_MODULE_INDEX], 
+                                exp_id[m_ETA_INDEX],
+                                exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::disc_module_id (int pos_neg, int module) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+	disc_module_id_checks ( pos_neg, module );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (-3                    , result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_slar_impl.pack     (m_slar,                 result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::disc_channel_id   ( int pos_neg, int module,
+				int eta,     int phi ) const 
+{  
+    // Do checks 
+    if(m_do_checks) {
+	disc_channel_id_checks( pos_neg, module, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (-3                    , result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_eta_impl.pack      (eta,                    result);
+    m_phi_impl.pack      (phi,                    result);
+    m_slar_impl.pack     (m_slar,                 result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::module_id   ( const Identifier channelId ) const 
+{
+
+  Identifier result(channelId);
+  //  reset eta/phi
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  m_slar_impl.pack(m_slar,result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArFCAL_Base_ID::channel_id   ( const Identifier module_id,
+			   int eta,       int phi ) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+      if(is_connected(module_id)) {
+	channel_id_checks( module_id, eta, phi );
+      } else {
+	disc_channel_id_checks( module_id, eta, phi );
+      }
+    }
+
+    Identifier result(module_id);
+
+    // Reset the fields and then set the values
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+    m_slar_impl.pack     (m_slar, result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool LArFCAL_Base_ID::is_connected(const IdentifierHash hashId) const
+{
+  return ( hashId < channels().hash_max() );
+}
+
+//----------------------------------------------------------------------------
+inline bool LArFCAL_Base_ID::is_connected(const Identifier channelId) const
+{
+    return ( m_fcal_impl.unpack(channelId) == 3 );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArFCAL_Base_ID::module_id    (IdentifierHash module_hash_id) const
+{
+  return region_id (module_hash_id);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArFCAL_Base_ID::module_hash (Identifier module_id) const
+{
+  return region_hash (module_id);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArFCAL_Base_ID::channel_hash_binary_search  (Identifier channelId) const
+{
+  return channel_hash (channelId);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArFCAL_Base_ID::disc_channel_id    (IdentifierHash disc_channel_hash_id) const
+{
+  if(disc_channel_hash_id < channels().hash_max()) {
+    return channel_id (disc_channel_hash_id);
+  }
+  else {
+    return m_disc_channels.id (disc_channel_hash_id - channels().hash_max());
+  }
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArFCAL_Base_ID::disc_channel_hash (Identifier disc_channelId) const
+{
+  if (is_connected(disc_channelId)) {
+    return channel_hash (disc_channelId);
+  }
+  else {
+    IdentifierHash hash = m_disc_channels.hash (disc_channelId);
+    if (hash.is_valid())
+      hash += channels().hash_max();
+    return hash;
+  }
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::size_type     LArFCAL_Base_ID::module_hash_max (void) const
+{
+  return region_hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::size_type     LArFCAL_Base_ID::disc_channel_hash_max (void) const
+{
+  return channels().hash_max() + m_disc_channels.hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::size_type     LArFCAL_Base_ID::disc_channel_hash_min (void) const
+{
+  return channels().hash_max() ;
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_begin    (void) const
+{
+  return regions().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::mod_end      (void) const
+{
+  return regions().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::mod_range      (void) const
+{
+  return regions().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_begin    (void) const
+{
+  return channels().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::fcal_end      (void) const
+{
+  return channels().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::fcal_range      (void) const
+{
+  return channels().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::disc_fcal_begin    (void) const
+{
+  return m_disc_channels.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::disc_fcal_end      (void) const
+{
+  return m_disc_channels.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArFCAL_Base_ID::id_range LArFCAL_Base_ID::disc_fcal_range      (void) const
+{
+  return m_disc_channels.range();
+}
+
+//----------------------------------------------------------------------------
+inline
+LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::disc_module_begin (void) const
+{
+  return m_disc_modules.begin();
+}
+
+//----------------------------------------------------------------------------
+inline
+LArFCAL_Base_ID::id_iterator LArFCAL_Base_ID::disc_module_end (void) const
+{
+  return m_disc_modules.end();
+}
+
+//----------------------------------------------------------------------------
+inline
+LArFCAL_Base_ID::id_range LArFCAL_Base_ID::disc_module_range (void) const
+{
+  return m_disc_modules.range();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArFCAL_Base_ID::channel_ids() const
+{
+  return channels().ids();
+}
+
+//----------------------------------------------------------------------------
+inline int LArFCAL_Base_ID::pos_neg         (const Identifier id)const
+{
+  return (m_pn_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArFCAL_Base_ID::module              (const Identifier id)const
+{
+  return (m_module_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArFCAL_Base_ID::eta               (const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_eta_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArFCAL_Base_ID::phi(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_phi_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArFCAL_Base_ID::phi_min(const Identifier modId) const
+{
+  IdentifierHash modHash = module_hash(modId);
+  unsigned int index = modHash;
+  return (m_vecOfPhiMin[index]);
+}
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..086594017505e0e5e43cabe2e63807b08f966b48
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_ID.h
@@ -0,0 +1,95 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARFCAL_ID_H
+#define LARFCAL_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "CaloIdentifier/LArID_Exception.h"
+#include "CaloIdentifier/LArFCAL_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <vector>
+#include <algorithm>
+#include <set>
+
+
+/**
+*
+* @class LArFCAL_ID
+* @brief Helper class for LArFCAL offline identifiers
+*  
+  * 
+  * This class provides an interface to decode and generate offline identifiers
+  * for the LAr FCAL detector. <p>
+  * 
+  * Definition and range of values for the fields: <p>
+  * <pre>
+  *             Connected channels :
+  *             ------------------
+  * pos_neg = +/- 2 (A/C side)<br><br>
+  *
+  * module = [1,3] : 1 EM , 2-3 Hadronic <br><br>
+  *
+  * phi = [0,15] <br><br>
+  *
+  * eta = [0,62] module 1 ; <br>
+  * eta = [0,31] module 2, except phi=3,4,11,12: eta = [0,30] and phi=0,7,8,15: eta = [0,29] ; <br>
+  * eta = [0,15] module 3, except phi=2,10: eta = [0,14]   (old FCAL desciption) <br>
+  *                        except phi=5,13: eta = [0,14]   (new FCAL desciption) <br><br>
+  *
+  * 3524 connected cells in total  <br>
+  *
+  *             Disconnected channels :
+  *             ------------------
+  * pos_neg = +/- 2 (A/C side)<br><br>
+  *
+  * module = [1,3] : 1 EM , 2-3 Hadronic <br><br>
+  *
+  * phi = [0,15] <br><br>
+  *
+  * eta =  63     module 1 ;  <br>
+  * eta =  31     module 2  phi=3,4,11,12 <br>
+  *     = [30,31] module 2, phi=0,7,8,15 ;  <br>
+  * eta =  15     module 3, phi=2,10 (old FCAL description) <br>
+  *                         phi=3,15 (new FCAL description) <br><br>
+  *
+  * 60 disconnected cells in total <br>
+  * In the hash series, the diconnected channels are put at the end, after the connected channels.
+  * channel_hash_min = 0 ; disc_channel_hash_min = channel_hash_max ;
+  *
+  * @author started by RD Schaffer
+  * @author maintained by F Ledroit
+  * @author neighbour list/code provided by Sven Menke
+  */  
+
+class Range;
+class LArFCAL_region;
+
+class LArFCAL_ID : public LArFCAL_Base_ID
+{
+public:
+        
+  typedef Identifier::size_type  size_type ;
+
+  LArFCAL_ID(void);        
+  ~LArFCAL_ID(void);
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArFCAL_ID , 45738051 , 1 )
+SG_BASE (LArFCAL_ID, LArFCAL_Base_ID);
+
+
+#endif // LARFCAL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_SuperCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_SuperCell_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..6cbcd5576a9c449bbf4e1a49a59c398c4119cd3c
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArFCAL_SuperCell_ID.h
@@ -0,0 +1,65 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOIDENTIFIER_LARFCAL_SUPERCELL_ID_H
+#define CALOIDENTIFIER_LARFCAL_SUPERCELL_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "CaloIdentifier/LArFCAL_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+#include <vector>
+#include <algorithm>
+#include <set>
+
+
+/**
+*
+* @class LArFCAL_SuperCell_ID
+* @brief Helper class for LArFCAL offline identifiers for supercells
+*  
+* 
+* This class provides an interface to decode and generate offline identifiers
+* for the Supercell version of LAr FCAL detector. <p>
+* 
+* Definition and range of values for the fields: <p>
+* <pre>
+*             Connected channels :
+*             ------------------
+* pos_neg = +/- 2 (A/C side)<br><br>
+*
+* module = [1,3] : 1 EM , 2-3 Hadronic <br><br>
+*
+* phi = [0,15] <br><br>
+*
+* eta = [0,11] module 1 ; <br>
+* eta = [0,7]  module 2 ; <br>
+* eta = [0,3]  module 3 ; <br>
+*
+* 384 connected cells in total  <br>
+*
+* No disconnected channels are defined for supercells.
+*
+* @author RD Schaffer, Denis Oliveira Damazio, scott snyder, naoko kanaya
+*/  
+
+
+
+class LArFCAL_SuperCell_ID : public LArFCAL_Base_ID
+{
+public:        
+  LArFCAL_SuperCell_ID(void);    
+  ~LArFCAL_SuperCell_ID(void);
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArFCAL_SuperCell_ID , 12829437 , 1 )
+SG_BASE (LArFCAL_SuperCell_ID, LArFCAL_Base_ID);
+
+
+#endif // CALOIDENTIFIER_LARFCAL_SUPERCELL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..6eccb0e23eafc6486126c41e52b3efb43ee4cbf5
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.h
@@ -0,0 +1,373 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArHEC_Base_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Factor out code common between LArHEC_ID and LArHEC_SuperCell_ID.
+ */
+
+
+#ifndef CALOIDENTIFIER_LARHEC_BASE_ID_H
+#define CALOIDENTIFIER_LARHEC_BASE_ID_H
+
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "CaloIdentifier/LArNeighbours.h"
+#include "boost/range/iterator_range.hpp"
+
+#include <vector>
+#include <algorithm>
+
+
+class Range;
+class LArHEC_region;
+
+
+/**  
+ *
+ * This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
+ */
+class LArHEC_Base_ID : public CaloIDHelper
+{
+public:        
+
+  /** Constructor.  If SUPERCELL is true, this helper is for supercells. */
+  LArHEC_Base_ID (const std::string& name, bool supercell);
+
+  ~LArHEC_Base_ID();
+
+  /** region identifier for a connected channel from ExpandedIdentifier*/
+  Identifier  region_id (const ExpandedIdentifier& exp_id ) const ;
+
+  /** channel identifier for a connected channel from ExpandedIdentifier*/
+  Identifier  channel_id (const ExpandedIdentifier& exp_id ) const ;
+
+  /** build a region identifier for a connected channel  */
+  Identifier  region_id   	(int pos_neg, int sampling, int region ) const ;
+
+  /** build a cell identifier for a connected channel  */
+  Identifier  channel_id   	(int pos_neg, int sampling, int region,
+				 int eta,     int phi ) const ;
+				 
+  /** build a cell identifier for a connected channel  <br>
+      eta counting includes regions     */
+  Identifier  channel_id  ( int pos_neg, int sampling,
+			    int eta,     int phi ) const throw(LArID_Exception) ;
+
+  /** For a specific sector , eta, phi_sector 
+   * <pre>
+   * 
+   * sector       [0,31]
+   * 
+   * phi_sector   [0,1]            Outer part, dphi=0.1
+   * "            [0]              Inner part, dphi=0.2
+   * 
+   * </pre>
+   */
+  Identifier  channel_id  ( int pos_neg, int sampling, int sector, int region, 
+			    int eta,     int phi_sector ) const throw(LArID_Exception);
+
+
+  /** region identifier for disconnected channels, from ExpandedIdentifier */
+  Identifier  disc_region_id (const ExpandedIdentifier& exp_id) const;
+
+  /**  cell identifier for disconnected channels, from ExpandedIdentifier  */
+  Identifier  disc_channel_id (const ExpandedIdentifier& exp_id) const;
+
+  /** build a region identifier for disconnected channels  */
+  Identifier  disc_region_id   	(int pos_neg, int sampling, int region ) const ;
+
+  /** build a cell identifier for disconnected channels  */
+  Identifier  disc_channel_id 	(int pos_neg, int sampling, int region,
+				 int eta,     int phi ) const ;
+
+  /** allows to know in which region is a channel/cell
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  region_id   	(const Identifier channelId) const ;
+
+  /** allows to build a channel id starting from a region id (e.g. from descriptors) 
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  channel_id   	(const Identifier regionId,
+				 int eta,       int phi ) const ;
+
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const IdentifierHash hashId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const Identifier channelId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_connected ( int pos_neg,  int sampling, int region, int eta, int phi )  const throw(LArID_Exception);
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_disconnected ( int pos_neg,  int sampling, int region, int eta, int phi )  const throw(LArID_Exception);
+
+  /** Test if the identifier represents a supercell. */
+  bool        is_supercell    (const Identifier id)const;
+				 
+  /** create hash id from connected channel id  */
+  IdentifierHash channel_hash (Identifier channelId) const;
+  /** create hash id from connected channel id  -- method NOT optimised, please use channel_hash() above */
+  IdentifierHash channel_hash_binary_search (Identifier channelId) const;
+
+  /** create channel id from hash id (all channels, connected + diconnected, together) */
+  Identifier disc_channel_id	(IdentifierHash disc_channel_hash_id) const;	
+
+  /** create hash id from channel id*/
+  IdentifierHash disc_channel_hash (Identifier discChannelId) const;
+
+  /** cell hash table max size (all channels: connected + disconnected) */
+  size_type     disc_channel_hash_max (void) const;
+  /** disconnected cell/channel hash table min index */
+  size_type     disc_channel_hash_min (void) const;
+
+  /** begin iterator over set of region Identifiers */
+  id_iterator reg_begin    (void) const;
+  /** end iterator over set of region Identifiers */
+  id_iterator reg_end      (void) const;
+  /** Range over set of Region Identifiers. */
+  id_range reg_range () const;
+
+  /** begin iterator over full set of Hec Identifiers for connected channels */
+  id_iterator hec_begin    (void) const;
+  /** end iterator over full set of Hec Identifiers for connected channels */
+  id_iterator hec_end      (void) const;
+  /** Range over full set of HEC Identifiers. */
+  id_range hec_range () const;
+
+  /** begin iterator over full set of Hec Identifiers for DISconnected channels */
+  id_iterator disc_hec_begin    (void) const;
+  /** end iterator over full set of Hec Identifiers for DISconnected channels */
+  id_iterator disc_hec_end      (void) const;
+  /** Range over full set of HEC Identifiers for DISconnected channels (only) */
+  id_range disc_hec_range () const;
+
+  /** begin iterator over full set of Hec Identifiers for DISconnected regions */
+  id_iterator disc_reg_begin    (void) const;
+  /** end iterator over full set of Hec Identifiers for DISconnected channels */
+  id_iterator disc_reg_end      (void) const;
+  /** Range over full set of HEC Identifiers for DISconnected channels (only) */
+  id_range disc_reg_range () const;
+
+  /** provide access to channel id vector, accessed via hash */
+  const std::vector<Identifier>& channel_ids() const;
+  /** provide access to region id vector, accessed via hash */
+  const std::vector<Identifier>& region_ids() const;
+
+
+  /** return pos_neg -2 (C side) or 2 (A side)*/
+  int         pos_neg       (const Identifier id)const;  
+  
+  /** return sampling [0,3] (only 0 for supercells) */
+  int         sampling        (const Identifier id)const;  
+
+  /** return region [0,1] */
+  int         region          (const Identifier id)const;  
+
+  /** return eta [0,9] outer part [0,3] inner part, -999 if disconnected channel */
+  int         eta             (const Identifier id)const; 
+
+  /** return phi[0,63] outer part [0,31] inner part, -999 if disconnected channel */
+  int         phi             (const Identifier id)const;
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier regId) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+  
+
+  /** eta index -- only for checks, since dummy for disconnected channels */
+  int         disc_eta             (const Identifier id)const; 
+  /** phi index -- only for checks, since dummy for disconnected channels */
+  int         disc_phi             (const Identifier id)const; 
+
+
+  /** initialization from the identifier dictionary*/
+  int  initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                        const std::string& group_name);
+
+  /** True if the + and - sides of the calorimeter are identical (true layout).
+      False if they are mirror reflections (used in early MC). */
+  bool twoSymSides() const;
+
+
+  /** access to hashes for neighbours      return == 0 for neighbours found  <br>
+      option = prevInPhi, nextInPhi, prevInEta, nextInEta, faces 2D, corners2D, all2D, prevInSamp, nextInSamp, upAndDown, all3D <br>
+
+               in 'nextInEta' and 'nextInSamp', next means 'away from the centre of Atlas' <br>
+               in 'prevInEta' and 'prevInSamp', prev means 'towards   the centre of Atlas' <br>
+	       faces2D means prevInPhi + nextInPhi + prevInEta + nextInEta <br>
+	       corners2D means corners in the same sampling, 
+	                       not only touching cells but all corner cells forming a square (in case of change in eta granularity ) <br>
+	       all2D means faces2D + corners2D <br>
+	       upAndDown means prevInSamp + nextInSamp <br>
+	       all3D means all2D + upAndDown <br> 
+  Nota Bene = neighbours do not include disconnected channels */
+  int    get_neighbours(const IdentifierHash id,
+                        const LArNeighbours::neighbourOption& option,
+                        std::vector<IdentifierHash>& neighbourList) const;
+
+
+  using CaloIDHelper::channel_id;
+  using CaloIDHelper::region_id;
+  // Inherited from CaloIDHelper:
+  // 
+  //Identifier channel_id (IdentifierHash hashId) const;
+  //Identifier region_id (IdentifierHash hashId) const;
+  //IdentifierHash region_hash (Identifier regionId) const;
+  //size_type channel_hash_max() const;
+  //size_type region_hash_max() const;
+  //IdContext channel_context() const;
+  //IdContext region_context() const;
+  //const std::vector<const IdDictRegion*>& dictRegions() const;
+  //float etaGranularity(const IdentifierHash regHash) const;
+  //float phiGranularity(const IdentifierHash regHash) const;
+  //float eta0(const IdentifierHash regHash) const;
+  //float phi0(const IdentifierHash regHash) const;
+  //virtual int get_id (const IdentifierHash& hash_id,
+  //                    Identifier& id,
+  //                    const IdContext* context = 0 ) const;
+  //virtual int  get_hash  (const Identifier& id,
+  //                        IdentifierHash& hash_id,
+  //                        const IdContext* context = 0 ) const;
+
+
+private:    
+
+  enum {NOT_VALID_HASH = 64000};
+
+  int phi_min_init(const Identifier regId) const;
+
+  // Check methods
+
+  void  region_id_checks   	(int pos_neg, int sampling, int region ) const throw(LArID_Exception);
+  void  channel_id_checks   	(int pos_neg, int sampling, int region,
+				 int eta,       int phi ) const throw(LArID_Exception);
+  void  channel_id_checks   	(const Identifier regionId,
+				 int eta,       int phi ) const throw(LArID_Exception);
+  void  disc_region_id_checks   	(int pos_neg, int sampling, int region ) const throw(LArID_Exception);
+  void  disc_channel_id_checks   	(int pos_neg, int sampling, int region,
+					 int eta,       int phi ) const throw(LArID_Exception);
+  void  disc_channel_id_checks   	(const Identifier regionId,
+					 int eta,       int phi ) const throw(LArID_Exception);
+
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  virtual int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+  int  get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+  int         initLevelsFromDict (const std::string& group_name) ;
+
+  int         init_hashes(void) ;
+  int         init_disc_hashes(void) ;
+
+  int   get_prevInPhi(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList) const;
+  
+  int   get_nextInPhi(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_prevInEta(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, const unsigned int& minHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const;
+
+  int   get_nextInEta(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, const unsigned int& maxHash, 
+		      int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const;
+
+  int   get_prevInSamp(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		       const double& absEta,
+		       int& neighbourIndex, IdentifierHash* neighbList) const;
+
+  int   get_nextInSamp(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+		       const double& absEta,
+		       int& neighbourIndex, IdentifierHash* neighbList) const;
+
+
+  int         init_neighbors(void) ;
+
+
+  unsigned                      m_slar;
+
+  size_type                     m_hec_region_index;
+  size_type                     m_LAR_INDEX;
+  size_type                     m_HEC_INDEX;
+  size_type                     m_POSNEG_INDEX;
+  size_type                     m_SAMPLING_INDEX;
+  size_type                     m_REGION_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+  size_type                     m_SLAR_INDEX;
+
+  MultiRange                    m_full_channel_range;
+  MultiRange                    m_full_region_range;
+
+  MultiRange                    m_full_disc_channel_range;
+  MultiRange                    m_full_disc_region_range;
+
+  CaloIDHelper::HashGroup       m_disc_channels;
+  CaloIDHelper::HashGroup       m_disc_regions;
+
+  bool                          m_two_sym_sides;
+
+  std::vector<short int>        m_vecOfPhiMin;
+
+  /**
+     @brief small class holding the starting hash value, the min eta and the number of phi bins of each region 
+
+     used to CPU-optimize the conversion from an identifier to a hash index
+   */
+    class HashCalc
+    {
+    public:
+	HashCalc() :
+	    m_hash(0),
+	    m_etamin(0),
+	    m_phimin(0),
+	    m_nphi(0) {}
+	IdentifierHash m_hash;
+	size_type      m_etamin;
+	size_type      m_phimin;
+	size_type      m_nphi;
+    };
+  std::vector<HashCalc>         m_hash_calcs;
+
+
+  IdDictFieldImplementation     m_lar_impl;
+  IdDictFieldImplementation  	m_hec_impl;
+  IdDictFieldImplementation  	m_pn_impl;
+  IdDictFieldImplementation  	m_sampling_impl;
+  IdDictFieldImplementation  	m_region_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+  IdDictFieldImplementation  	m_slar_impl;
+
+  IdDictFieldImplementation  	m_pn_reg_impl;
+
+  std::vector<LArHEC_region*>   m_vecOfRegions;
+  std::vector<short int>        m_vecOfCellInfo;
+};
+
+
+#include "CaloIdentifier/LArHEC_Base_ID.icc"
+
+#endif // LARHEC_BASE_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.icc b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.icc
new file mode 100644
index 0000000000000000000000000000000000000000..a34418e7a93b3c6ec31e40c7f5e35f5d694e1a49
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_Base_ID.icc
@@ -0,0 +1,388 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArHEC_Base_ID.icc
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Inline implementations for LArHEC_Base_ID.
+ */
+
+//--------------------
+// Inline definitions
+//--------------------
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::region_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->region_id ( exp_id[m_POSNEG_INDEX],
+                           exp_id[m_SAMPLING_INDEX], 
+                           exp_id[m_REGION_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->channel_id (exp_id[m_POSNEG_INDEX],
+                           exp_id[m_SAMPLING_INDEX], 
+                           exp_id[m_REGION_INDEX],
+                           exp_id[m_ETA_INDEX],
+                           exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::region_id (int pos_neg, int sampling, int region) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+	region_id_checks ( pos_neg, sampling, region );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_hec_impl.pack      (lar_hec_field_value(),result);
+    m_pn_impl.pack       (pos_neg,              result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::channel_id   ( int pos_neg, int sampling, int region,
+                               int eta,     int phi ) const 
+{  
+    // Do checks 
+    if(m_do_checks) {
+	channel_id_checks( pos_neg, sampling, region, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_hec_impl.pack      (lar_hec_field_value(),result);
+    m_pn_impl.pack       (pos_neg,              result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_eta_impl.pack      (eta,                  result);
+    m_phi_impl.pack      (phi,                  result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::disc_region_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_region_id   ( exp_id[m_POSNEG_INDEX],
+                                  exp_id[m_SAMPLING_INDEX], 
+                                  exp_id[m_REGION_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::disc_channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_channel_id (exp_id[m_POSNEG_INDEX],
+                                exp_id[m_SAMPLING_INDEX], 
+                                exp_id[m_REGION_INDEX],
+                                exp_id[m_ETA_INDEX],
+                                exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::disc_region_id (int pos_neg, int sampling, int region) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+	disc_region_id_checks ( pos_neg, sampling, region );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_hec_impl.pack      (-2                   ,result);  // fix me !!!
+    m_pn_impl.pack       (pos_neg,              result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::disc_channel_id   ( int pos_neg, int sampling, int region,
+                                    int eta,     int phi ) const 
+{  
+    // Do checks 
+    if(m_do_checks) {
+	disc_channel_id_checks( pos_neg, sampling, region, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),    result);
+    m_hec_impl.pack      (-2                   ,result);  // fix me !!!
+    m_pn_impl.pack       (pos_neg,              result);
+    m_sampling_impl.pack (sampling,             result);
+    m_region_impl.pack   (region,               result);
+    m_eta_impl.pack      (eta,                  result);
+    m_phi_impl.pack      (phi,                  result);
+    m_slar_impl.pack     (m_slar,               result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::region_id   ( const Identifier channelId ) const 
+{
+
+  Identifier result(channelId);
+  //  reset eta/phi
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  m_slar_impl.pack(m_slar,result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArHEC_Base_ID::channel_id   ( const Identifier regionId,
+                               int eta,       int phi ) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+      if(is_connected(regionId)) {
+	channel_id_checks( regionId, eta, phi );
+      } else {
+	disc_channel_id_checks( regionId, eta, phi );
+      }
+    }
+
+    Identifier result(regionId);
+
+    // Reset the fields and then set the values
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+    m_slar_impl.pack     (m_slar,   result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool LArHEC_Base_ID::is_connected(const IdentifierHash hashId) const
+{
+  return ( hashId < channel_hash_max() );
+}
+
+//----------------------------------------------------------------------------
+inline bool LArHEC_Base_ID::is_connected(const Identifier channelId) const
+{
+    return ( m_hec_impl.unpack(channelId) == 2 );
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArHEC_Base_ID::channel_hash (Identifier channelId) const
+{
+    const HashCalc& hc = m_hash_calcs[m_pn_reg_impl.unpack(channelId)];
+    return (hc.m_hash + (eta(channelId)-hc.m_etamin)*hc.m_nphi + phi(channelId)-hc.m_phimin );
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArHEC_Base_ID::channel_hash_binary_search  (Identifier channelId) const
+{
+  return CaloIDHelper::channel_hash (channelId);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArHEC_Base_ID::disc_channel_id    (IdentifierHash disc_channel_hash_id) const
+{
+  if(disc_channel_hash_id < channels().hash_max()) {
+    return channel_id (disc_channel_hash_id);
+  }
+  else {
+    return m_disc_channels.id (disc_channel_hash_id - channels().hash_max());
+  }
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArHEC_Base_ID::disc_channel_hash (Identifier discChannelId) const
+{
+  if (is_connected(discChannelId)) {
+    const HashCalc& hc = m_hash_calcs[m_pn_reg_impl.unpack(discChannelId)];
+    return (hc.m_hash + (eta(discChannelId)-hc.m_etamin)*hc.m_nphi + phi(discChannelId)-hc.m_phimin);
+  }
+  else {
+    IdentifierHash hash = m_disc_channels.hash (discChannelId);
+    if (hash.is_valid())
+      hash += channels().hash_max();
+    return hash;
+  }
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::size_type LArHEC_Base_ID::disc_channel_hash_max () const
+{
+  return channel_hash_max() + m_disc_channels.hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::size_type LArHEC_Base_ID::disc_channel_hash_min () const
+{
+  return channel_hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::reg_begin () const
+{
+  return regions().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::reg_end      (void) const
+{
+  return regions().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_range LArHEC_Base_ID::reg_range      (void) const
+{
+  return regions().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::hec_begin    (void) const
+{
+  return channels().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::hec_end      (void) const
+{
+  return channels().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_range LArHEC_Base_ID::hec_range      (void) const
+{
+  return channels().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::disc_hec_begin () const
+{
+  return m_disc_channels.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::disc_hec_end () const
+{
+  return m_disc_channels.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_range LArHEC_Base_ID::disc_hec_range () const
+{
+  return m_disc_channels.range();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::disc_reg_begin () const
+{
+  return m_disc_regions.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_iterator LArHEC_Base_ID::disc_reg_end () const
+{
+  return m_disc_regions.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArHEC_Base_ID::id_range LArHEC_Base_ID::disc_reg_range () const
+{
+  return m_disc_regions.range();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArHEC_Base_ID::channel_ids() const
+{
+  return channels().ids();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArHEC_Base_ID::region_ids() const
+{
+  return regions().ids();
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::pos_neg(const Identifier id)const
+{
+    return (m_pn_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::sampling(const Identifier id)const
+{
+  return (m_sampling_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::region(const Identifier id)const
+{
+  return (m_region_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::eta(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_eta_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::phi(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_phi_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArHEC_Base_ID::phi_min(const Identifier regId) const
+{
+  IdentifierHash regHash = region_hash(regId);
+  unsigned int index = regHash;
+  return (m_vecOfPhiMin[index]);
+}
+
+
+//----------------------------------------------------------------------------
+inline bool LArHEC_Base_ID::is_supercell (Identifier id) const
+{
+  return(m_slar_impl.unpack(id)) != 0;
+}
+
+//----------------------------------------------------------------------------
+inline bool LArHEC_Base_ID::twoSymSides() const
+{
+  return m_two_sym_sides;
+}
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..cc4572279d2fc50f9088a8dfde175a2716d37d66
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_ID.h
@@ -0,0 +1,106 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARHEC_ID_H
+#define LARHEC_ID_H
+
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "CaloIdentifier/LArHEC_Base_ID.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "SGTools/BaseInfo.h"
+#include "boost/range/iterator_range.hpp"
+
+#include <vector>
+#include <algorithm>
+
+
+/**  
+*
+* @class LArHEC_ID
+* @brief Helper class for LArHEC offline identifiers
+*  
+*  This class provides an interface to decode and generate offline identifiers
+*  for the HEC detector subsystem. <p>
+* 
+* Definition and the range of values for the elements of the
+* identifier are: <p>
+* <pre>
+*             Connected channels :
+*             ------------------
+* element           range              meaning
+* -------           -----              -------
+* 
+* pos/neg          -2 or 2          -2 = negative HEC (C side), 2 = positive HEC  ( A side)
+* 
+* sampling         [0,3]            [0,1] = first wheel, [2,3] = second wheel 
+* 
+* region           [0,1]            0 : outer part, 1 : inner part
+* 
+* eta              [0,9]            Outer part region 0 , samplings 0 and 1 , 1.5< eta <2.5 , deta=0.1
+* "                [1,9]            Outer part region 0 , samplings 2       , 1.6< eta <2.5 , deta=0.1
+* "                [2,9]            Outer part region 0 , samplings 3       , 1.7< eta <2.5 , deta=0.1
+* "                [0,3]            Inner part region 1 , samplings 0 and 3 , 2.5< eta <3.3 , deta=0.2
+* "                [0,2]            Inner part region 1 , samplings 1 and 2 , 2.5< eta <3.1 , deta=0.2
+* 
+* phi              [0,63]           Outer part, dphi=0.1
+* "                [0,31]           Inner part, dphi=0.2
+* 
+* 5632 active cells in the full HEC 
+* 
+*             Disconnected channels :
+*             ---------------------
+* element           range              meaning
+* -------           -----              -------
+* 
+* pos/neg          -2 or 2          -2 = negative HEC (C side), 2 = positive HEC  ( A side)
+* 
+* sampling         [1,3]            [0,1] = first wheel, [2,3] = second wheel 
+* 
+* region           [0,1]            0 : outer part, 1 : inner part
+* 
+* eta               0               Outer part region 0 , sampling 2        , 1.5< eta <1.6 , deta=0.1
+* "                [0,1]            Outer part region 0 , sampling 3        , 1.5< eta <1.7 , deta=0.1
+* "                 3               Inner part region 1 , samplings 1 and 2 , 3.1< eta <3.3 , deta=0.2
+* 
+* phi              [0,63]           Outer part, dphi=0.1
+* "                [0,31]           Inner part, dphi=0.2
+* 
+* 512 disconnected channels in the full HEC 
+* In the hash series, the disconnected channels are put at the end, after the connected channels.
+* channel_hash_min = 0 ; disc_channel_hash_min = channel_hash_max ;
+* 
+* </pre>
+*
+* @author started by RD Schaffer
+* @author maintained by Fabienne Ledroit
+*/
+
+class Range;
+
+class LArHEC_ID
+  : public LArHEC_Base_ID
+{
+public:        
+
+  LArHEC_ID(void);    
+  ~LArHEC_ID(void);
+
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArHEC_ID , 3870484 , 1 )
+SG_BASE (LArHEC_ID, LArHEC_Base_ID);
+
+
+#endif // LARHEC_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_SuperCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_SuperCell_ID.h
new file mode 100644
index 0000000000000000000000000000000000000000..fef8b4109d57d1fcbf6af520e9d4d1c909d15fdd
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArHEC_SuperCell_ID.h
@@ -0,0 +1,76 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArHEC_SuperCell_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Helper class for LArHEC offline identifiers for supercells
+ */
+
+
+#ifndef CALOIDENTIFIER_LARHEC_SUPERCELL_ID_H
+#define CALOIDENTIFIER_LARHEC_SUPERCELL_ID_H
+
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "CaloIdentifier/LArHEC_Base_ID.h"
+#include "SGTools/BaseInfo.h"
+
+
+/**  
+*
+* @class LArHEC_SuperCell_ID
+* @brief Helper class for LArHEC offline identifiers for supercells
+*  
+*  This class provides an interface to decode and generate offline identifiers
+*  for the supercell version of the HEC detector subsystem. <p>
+* 
+* Definition and the range of values for the elements of the
+* identifier are: <p>
+* <pre>
+*             Connected channels :
+*             ------------------
+* element           range              meaning
+* -------           -----              -------
+* 
+* pos/neg          -2 or 2          -2 = negative HEC (C side), 2 = positive HEC  ( A side)
+* 
+* sampling         0                All samplings are summed
+* 
+* region           [0,1]            0 : outer part, 1 : inner part
+* 
+* eta              [0,9]            Outer part region 0, 1.5< eta <2.5 , deta=0.1
+* "                [0,3]            Inner part region 1, 2.5< eta <3.3 , deta=0.2
+* 
+* phi              [0,63]           Outer part, dphi=0.1
+* "                [0,31]           Inner part, dphi=0.2
+* 
+* 1536 active supercells in the full HEC
+*
+* No disconnected channels defined for supercells.
+* 
+* </pre>
+*/
+class LArHEC_SuperCell_ID
+  : public LArHEC_Base_ID
+{
+public:
+  LArHEC_SuperCell_ID ();
+
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+
+
+CLASS_DEF( LArHEC_SuperCell_ID , 254277678 , 1 )
+SG_BASE (LArHEC_SuperCell_ID, LArHEC_Base_ID);
+
+
+#endif // not CALOIDENTIFIER_LARHEC_SUPERCELL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArID.h
new file mode 100755
index 0000000000000000000000000000000000000000..010f1835bedb65cd98af12b727f636cee1c94d48
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArID.h
@@ -0,0 +1,7 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArEM_ID.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArHEC_ID.h"
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArID_Exception.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArID_Exception.h
new file mode 100755
index 0000000000000000000000000000000000000000..f24fe8b258fc32de8c40229ec9c528e76c5edcd8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArID_Exception.h
@@ -0,0 +1,83 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/* Generated by Together */
+
+/* date of creation : 12/06/2001 */
+
+#ifndef LAROFFLINEID_EXCEPTION_H
+#define LAROFFLINEID_EXCEPTION_H
+
+#include <string>
+
+/**
+ * @brief Exception class for LAr Identifiers 
+
+ * @author Johann Collot , Brinick Simmons
+ */
+
+class LArID_Exception {
+public:
+
+    /**
+     * default constructor 
+     */
+    LArID_Exception() : m_message("No error message") , m_code( 999 ) {  }
+
+    /**
+     * constructor to be used 
+     */
+    LArID_Exception(std::string  l_message , int l_code) : m_message ( l_message ) , m_code ( l_code ) { }
+
+    /**
+     * set error message 
+     */
+    void message(std::string l_message) { m_message = l_message ;}
+
+    /**
+     * return error message <br> 
+     */
+    virtual std::string message() const { return m_message;}
+
+    /**
+     * set error code number<br> 
+     */
+    void code(int l_code) { m_code = l_code ;}
+
+    /**
+     * return error code <br><br>
+     * 
+     * error codes : <br>
+     * 0 : no error <br>
+     * 5 : LArEM::region_id Error <br>
+     * 6 : LArEM::channel_id Error <br>
+     * 7 : LArHEC::region_id Error <br>
+     * 8 : LArHEC::channel_id Error <br>
+     * 9 : LArFCAL::region_id Error <br>
+     *10 : LArFCAL::channel_id Error <br>
+     * 999 : undefined error <br>
+     */
+    virtual int code() const { return m_code;}
+
+    virtual operator std::string();
+
+    /**
+     * destructor 
+     */
+    virtual ~LArID_Exception() {}
+
+private:
+
+    /**
+     * error message 
+     */
+    std::string m_message;
+
+    /**
+     * error code 
+     */
+    int m_code;
+};
+#endif //LAROFFLINEID_EXCEPTION_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArMiniFCAL_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArMiniFCAL_ID.h
new file mode 100644
index 0000000000000000000000000000000000000000..3d950f72b242d63507da82d67ea189506c00625c
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArMiniFCAL_ID.h
@@ -0,0 +1,742 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARMiniFCAL_ID_H
+#define LARMiniFCAL_ID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "CaloIdentifier/LArNeighbours.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <vector>
+#include <algorithm>
+#include <set>
+
+
+/**
+*
+* @class LArMiniFCAL_ID
+* @brief Helper class for LArMiniFCAL offline identifiers
+*  
+  * 
+  * This class provides an interface to decode and generate offline identifiers
+  * for the LAr MiniFCAL detector. <p>
+  * 
+  * Definition and range of values for the fields: <p>
+  * <pre>
+  *             Connected channels :
+  *             ------------------
+  * pos_neg = +/- 2 (A/C side)<br><br>
+  *
+  * module = [0] : Only one module <br><br>
+  *
+  * depth  = [0,3] 
+  *
+  * phi = [0,phimax] : depends on layout <br><br>
+  *
+  * eta = [0,8] depends on layout ; <br>
+  *
+  *
+  *             Disconnected channels :
+  *             ------------------
+  * pos_neg = +/- 2 (A/C side)<br><br>
+  *
+  * no disconnected channels yet <br><br>
+  *
+  *
+  * @author started by RD Schaffer
+  * @author maintained by F Ledroit
+  * @author neighbour list/code provided by Sven Menke
+  * @author adapted from Fcal for MiniFcal by M Fincke
+  */  
+
+class Range;
+class LArMiniFCAL_region;
+
+class LArMiniFCAL_ID : public CaloIDHelper
+{
+public:
+        
+  typedef Identifier::size_type  size_type ;
+
+  LArMiniFCAL_ID(void);
+        
+  ~LArMiniFCAL_ID(void);
+
+  /** check whether LArMiniFCAL ID helper has been initialized - 
+      returns false if description is not available    */
+  bool        is_initialized() const;
+
+  /** module identifier for a connected channel from ExpandedIdentifier  */
+  Identifier  module_id	(const ExpandedIdentifier& exp_id) const ;
+
+  /** cell identifier for a connected channel from ExpandedIdentifier */
+  Identifier  channel_id (const ExpandedIdentifier& exp_id) const ;
+
+  /** build a module identifier for a connected channel  */
+  Identifier  module_id	( int pos_neg, int module ) const ;
+
+  /** build a cell identifier for a connected channel  */
+  Identifier  channel_id( int pos_neg,  int module,  int depth,
+			  int eta,      int phi ) const ;
+
+  /** module identifier for a disconnected channel from ExpandedIdentifier  */
+  Identifier  disc_module_id	(const ExpandedIdentifier& exp_id) const ;
+
+  /** cell identifier for a disconnected channel from ExpandedIdentifier */
+  Identifier  disc_channel_id (const ExpandedIdentifier& exp_id) const ;
+
+  /** build a module identifier for disconnected channels  */
+  Identifier  disc_module_id	( int pos_neg, int module ) const ;
+
+  /** build a cell identifier for disconnected channels  */
+  Identifier  disc_channel_id( int pos_neg,  int module, int depth,
+			       int eta,      int phi ) const ;
+
+  /** allows to know in which region is a channel/cell
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  module_id	(const Identifier id ) const;
+     
+  /** allows to build a channel id starting from a module id (e.g. from descriptors) 
+      -- valid for both kinds of channels (connected or not) */
+  Identifier  channel_id( const Identifier moduleId, int depth,
+			  int eta, int phi) const ;
+			     
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const IdentifierHash hashId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU cheap */
+  bool is_connected (const Identifier channelId) const;
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_connected ( int pos_neg, int module, int depth, int eta, int phi )  const throw(LArID_Exception);
+  /** to disentangle between connected and disconnected channels 
+      this method is CPU expensive */
+  bool is_disconnected ( int pos_neg, int module, int depth, int eta, int phi )  const throw(LArID_Exception);
+
+  bool is_supercell (const Identifier channelId) const;
+				 
+    /** create module id from hash id (connected channels only)*/
+  Identifier module_id	(IdentifierHash module_hash_id) const;
+
+    /** create hash id from module id*/
+  IdentifierHash module_hash  (Identifier module_id) const;
+
+  /** create hash id from connected channel id  -- method NOT optimised, please use channel_hash() above */
+  IdentifierHash channel_hash_binary_search (Identifier channelId) const;
+
+  /** create channel id from hash id  (all channels, connected + diconnected, together) */
+  Identifier disc_channel_id	(IdentifierHash disc_channel_hash_id) const;	
+
+    /** create hash id from disconnected channel id*/
+  IdentifierHash disc_channel_hash (Identifier disc_channelId) const;
+
+  /**  region hash table max size */
+  size_type     module_hash_max (void) const;
+  /** cell hash table max size (all channels: connected + disconnected) */
+  size_type     disc_channel_hash_max (void) const;
+  /** disconnected cell/channel hash table min index */
+  size_type     disc_channel_hash_min (void) const;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+  /** begin iterator over set of module Identifiers */
+  id_iterator mod_begin    () const;
+  /** end iterator over set of module Identifiers */
+  id_iterator mod_end      () const;
+  /** range over set of module Identifiers */
+  id_range    mod_range    () const;
+
+  /** begin iterator over full set of Fcal Identifiers for connected channels */
+  id_iterator minifcal_begin    () const;
+  /** end iterator over full set of Fcal Identifiers for connected channels */
+  id_iterator minifcal_end      () const;
+  /** range over full set of Fcal Identifiers for connected channels */
+  id_range    minifcal_range    () const;
+
+  /** begin iterator over full set of Fcal Identifiers for DISconnected channels */
+  id_iterator disc_minifcal_begin    () const;
+  /** end iterator over full set of Fcal Identifiers for DISconnected channels */
+  id_iterator disc_minifcal_end      () const;
+  /** range over full set of Fcal Identifiers for DISconnected channels */
+  id_range    disc_minifcal_range    () const;
+
+  /** begin iterator over full set of Fcal Identifiers for DISconnected modules */
+  id_iterator disc_mod_begin    () const;
+  /** end iterator over full set of Fcal Identifiers for DISconnected modules */
+  id_iterator disc_mod_end      () const;
+  /** range over full set of Fcal Identifiers for DISconnected modules */
+  id_range    disc_mod_range    () const;
+
+  /** provide access to channel id vector, accessed via hash */
+  const std::vector<Identifier>& channel_ids() const;
+
+  /** provide access to module id vector, accessed via hash */
+  const std::vector<Identifier>& module_ids() const;
+
+			     
+  /** pos_neg : +/- 2 (A/C side) */
+  int         pos_neg         (const Identifier id)const; 
+  /** module [0] */
+  int         module          (const Identifier id)const;
+  /** depth [0,3], -999 if disconnected channel */
+  int         depth            (const Identifier id)const;
+  /** eta [0,63] module 1 ; [0,31] module 2 ; [0,15] module 3, -999 if disconnected channel */
+  int         eta             (const Identifier id)const;
+  /** phi [0,15], -999 if disconnected channel */
+  int         phi             (const Identifier id)const; 
+
+  /** min value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_min(const Identifier regId) const;
+  /** max value of eta index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int eta_max(const Identifier regId) const;
+  /** min value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_min(const Identifier regId) const;
+  /** max value of phi index (-999 == failure) 
+      @warning input = REGION ID !! */
+  int phi_max(const Identifier regId) const;
+  
+  /** access to hashes for neighbours      return == 0 for neighbours found  <br>
+      option = all2D, prevInSamp, nextInSamp, all3D <br>
+               in 'nextInSamp', next means 'away from the centre of Atlas' <br>
+               in 'prevInSamp', prev means 'towards   the centre of Atlas' <br> 
+  Nota Bene = neighbours do not include diconnected channels */
+  int    get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption& option, std::vector<IdentifierHash>& neighbourList) const;
+
+  /** eta index -- only for checks, since dummy for disconnected channels */
+  int         disc_eta             (const Identifier id)const; 
+  /** phi index -- only for checks, since dummy for disconnected channels */
+  int         disc_phi             (const Identifier id)const; 
+
+  /** context for modules --  method kept for backward compatibility. NOT optimised <br>
+      access to IdContext's which define which levels of fields are contained in the id */
+  IdContext    module_context   (void) const;
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+
+  using CaloIDHelper::channel_id;
+  using CaloIDHelper::channel_hash;
+  // Inherited from CaloIDHelper:
+  // 
+  //Identifier channel_id (IdentifierHash hashId) const;
+  //Identifier region_id (IdentifierHash hashId) const;
+  //IdentifierHash channel_hash (Identifier channelId) const;
+  //IdentifierHash region_hash (Identifier regionId) const;
+  //size_type channel_hash_max() const;
+  //size_type region_hash_max() const;
+  //IdContext channel_context() const;
+  //IdContext region_context() const;
+  //const std::vector<const IdDictRegion*>& dictRegions() const;
+  //float etaGranularity(const IdentifierHash regHash) const;
+  //float phiGranularity(const IdentifierHash regHash) const;
+  //float eta0(const IdentifierHash regHash) const;
+  //float phi0(const IdentifierHash regHash) const;
+  //virtual int get_id (const IdentifierHash& hash_id,
+  //                    Identifier& id,
+  //                    const IdContext* context = 0 ) const;
+  //virtual int  get_hash  (const Identifier& id,
+  //                        IdentifierHash& hash_id,
+  //                        const IdContext* context = 0 ) const;
+
+
+private:    
+
+	  
+  enum {NOT_VALID_HASH = 64000};
+
+  int phi_min_init(const Identifier regId) const;
+
+  std::vector<std::set<IdentifierHash> >  m_neighbors_2d_vec;
+  std::vector<std::set<IdentifierHash> >  m_neighbors_3d_next_vec;
+  std::vector<std::set<IdentifierHash> >  m_neighbors_3d_prev_vec;
+
+  // Check methods
+
+  void  module_id_checks      ( int pos_neg, int module ) const throw(LArID_Exception);
+  void  channel_id_checks     ( int pos_neg,  int module,
+				int depth,  int eta,      int phi ) const throw(LArID_Exception);
+  void  channel_id_checks     ( const Identifier moduleId,
+				int depth, int eta, int phi) const throw(LArID_Exception);
+  void  disc_module_id_checks      ( int pos_neg, int module ) const throw(LArID_Exception);
+  void  disc_channel_id_checks     ( int pos_neg,  int module,
+				     int depth,   int eta,      int phi ) const throw(LArID_Exception);
+  void  disc_channel_id_checks     ( const Identifier moduleId,
+				     int depth,  int eta, int phi) const throw(LArID_Exception);
+			     
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  virtual int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+  int  get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+
+  int         initLevelsFromDict(void) ;
+
+  int         init_hashes(void) ;
+  int         init_disc_hashes(void) ;
+
+  int         init_neighbors_from_file(std::string filename, std::vector<std::set<IdentifierHash> > &vec);
+
+  int         init_neighbors_2d(std::string filename)
+    { 
+      return init_neighbors_from_file(filename, m_neighbors_2d_vec);
+    }
+
+  int         init_neighbors_3d_next(std::string filename)
+    { 
+      return init_neighbors_from_file(filename, m_neighbors_3d_next_vec);
+    }
+
+  int         init_neighbors_3d_prev(std::string filename)
+    { 
+      return init_neighbors_from_file(filename, m_neighbors_3d_prev_vec);
+    }
+
+  int         init_neighbors(const IdDictMgr& dict_mgr) ;
+
+  // flag to protect for when helper hasn't been able to be
+  // initialized - no description in xml dictionary
+  bool                          m_is_initialized;  
+  size_type                     m_fcal_region_index;
+  size_type                     m_minifcal_region_index;
+  size_type                     m_LAR_INDEX;
+  size_type                     m_MiniFCAL_INDEX;
+  size_type                     m_POSNEG_INDEX;
+  size_type                     m_MODULE_INDEX;
+  size_type                     m_DEPTH_INDEX;
+  size_type                     m_ETA_INDEX;
+  size_type                     m_PHI_INDEX;
+
+  MultiRange                    m_full_channel_range;
+  MultiRange                    m_full_module_range;
+  MultiRange                    m_full_depth_range;
+  MultiRange                    m_full_disc_channel_range;
+  MultiRange                    m_full_disc_module_range;
+
+  CaloIDHelper::HashGroup       m_disc_channels;
+  CaloIDHelper::HashGroup       m_disc_modules;
+
+  bool                          m_two_sym_sides;
+
+  std::vector<short int>        m_vecOfCellInfo;
+  std::vector<short int>        m_vecOfPhiMin;
+
+
+  IdDictFieldImplementation     m_lar_impl;
+  IdDictFieldImplementation  	m_fcal_impl;
+  IdDictFieldImplementation  	m_pn_impl;
+  IdDictFieldImplementation  	m_module_impl;
+  IdDictFieldImplementation  	m_depth_impl;
+  IdDictFieldImplementation  	m_eta_impl;
+  IdDictFieldImplementation  	m_phi_impl;
+
+  IdDictFieldImplementation  	m_pn_mod_impl;
+
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( LArMiniFCAL_ID , 79264204  , 1 )
+
+
+//--------------------
+// Inline definitions
+//--------------------
+
+//----------------------------------------------------------------------------
+inline bool
+LArMiniFCAL_ID::is_initialized() const
+{
+    return m_is_initialized;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::module_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->module_id   ( exp_id[m_POSNEG_INDEX],
+                             exp_id[m_MODULE_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->channel_id (exp_id[m_POSNEG_INDEX],
+                           exp_id[m_MODULE_INDEX], 
+                           exp_id[m_DEPTH_INDEX],
+                           exp_id[m_ETA_INDEX],
+                           exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::module_id (int pos_neg, int module) const 
+{
+
+    Identifier result(0);
+
+    // Do checks 
+    if(m_do_checks) {
+	module_id_checks ( pos_neg, module );
+    }
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (lar_fcal_field_value(), result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::channel_id   ( int pos_neg, int module, int depth,
+			   int eta,     int phi ) const 
+{  
+
+    // Do checks 
+    if(m_do_checks) {
+	channel_id_checks( pos_neg, module, depth, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (lar_fcal_field_value(), result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_depth_impl.pack    (depth,                  result);
+    m_eta_impl.pack      (eta,                    result);
+    m_phi_impl.pack      (phi,                    result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::disc_module_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_module_id   ( exp_id[m_POSNEG_INDEX],
+                                  exp_id[m_MODULE_INDEX] );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::disc_channel_id (const ExpandedIdentifier& exp_id) const 
+{
+  return this->disc_channel_id (exp_id[m_POSNEG_INDEX],
+                                exp_id[m_MODULE_INDEX], 
+                                exp_id[m_DEPTH_INDEX],
+                                exp_id[m_ETA_INDEX],
+                                exp_id[m_PHI_INDEX]);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::disc_module_id (int pos_neg, int module) const 
+{
+
+    // Do checks 
+    if(m_do_checks) {
+	disc_module_id_checks ( pos_neg, module );
+    }
+
+    Identifier result(0);
+
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (-3                    , result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::disc_channel_id   ( int pos_neg, int module,  int depth,
+				int eta,     int phi ) const 
+{  
+
+    // Do checks 
+    if(m_do_checks) {
+	disc_channel_id_checks( pos_neg, module, depth, eta, phi );
+    }
+
+    Identifier result(0);
+    // Pack fields independently
+    m_lar_impl.pack      (lar_field_value(),      result);
+    m_fcal_impl.pack     (-3                    , result);
+    m_pn_impl.pack       (pos_neg,                result);
+    m_module_impl.pack   (module,                 result);
+    m_depth_impl.pack    (depth,                  result);
+    m_eta_impl.pack      (eta,                    result);
+    m_phi_impl.pack      (phi,                    result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::module_id   ( const Identifier channelId ) const 
+{
+
+  Identifier result(channelId);
+  //  reset depth/eta/phi
+  m_depth_impl.reset(result);
+  m_eta_impl.reset(result);
+  m_phi_impl.reset(result);
+  return (result);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier 
+LArMiniFCAL_ID::channel_id   ( const Identifier module_id, int depth,
+			   int eta,       int phi ) const 
+{
+    // Do checks 
+    if(m_do_checks) {
+      if(is_connected(module_id)) {
+	channel_id_checks( module_id, depth, eta, phi );
+      } else {
+	disc_channel_id_checks( module_id, depth, eta, phi );
+      }
+    }
+
+    Identifier result(module_id);
+
+    // Reset the fields and then set the values
+    m_depth_impl.reset   (result);
+    m_eta_impl.reset     (result);
+    m_phi_impl.reset     (result);
+    m_depth_impl.pack    (depth, result);
+    m_eta_impl.pack      (eta, result);
+    m_phi_impl.pack      (phi, result);
+
+    return result;
+}
+
+//----------------------------------------------------------------------------
+inline bool LArMiniFCAL_ID::is_connected(const IdentifierHash hashId) const
+{
+  return ( hashId < channels().hash_max() );
+}
+
+//----------------------------------------------------------------------------
+inline bool LArMiniFCAL_ID::is_connected(const Identifier channelId) const
+{
+    return ( m_fcal_impl.unpack(channelId) == 3 );
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArMiniFCAL_ID::module_id    (IdentifierHash module_hash_id) const
+{
+  return region_id(module_hash_id);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArMiniFCAL_ID::module_hash (Identifier module_id) const
+{
+  return region_hash (module_id);
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArMiniFCAL_ID::channel_hash_binary_search  (Identifier channelId) const
+{
+  return channel_hash (channelId);
+}
+
+//----------------------------------------------------------------------------
+inline Identifier LArMiniFCAL_ID::disc_channel_id    (IdentifierHash disc_channel_hash_id) const
+{
+  if(disc_channel_hash_id < channels().hash_max()) {
+    return channel_id (disc_channel_hash_id);
+  }
+  else {
+    return m_disc_channels.id (disc_channel_hash_id - channels().hash_max());
+  }
+}
+
+//----------------------------------------------------------------------------
+inline IdentifierHash LArMiniFCAL_ID::disc_channel_hash (Identifier disc_channelId) const
+{
+  if (is_connected(disc_channelId)) {
+    return channel_hash (disc_channelId);
+  }
+  else {
+    IdentifierHash hash = m_disc_channels.hash (disc_channelId);
+    if (hash.is_valid())
+      hash += channels().hash_max();
+    return hash;
+  }
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::size_type     LArMiniFCAL_ID::module_hash_max (void) const
+{
+  return region_hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::size_type     LArMiniFCAL_ID::disc_channel_hash_max (void) const
+{
+  return channels().hash_max() + m_disc_channels.hash_max();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::size_type     LArMiniFCAL_ID::disc_channel_hash_min (void) const
+{
+  return channels().hash_max() ;
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::mod_begin    (void) const
+{
+  return regions().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::mod_end      (void) const
+{
+  return regions().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_range LArMiniFCAL_ID::mod_range() const
+{
+  return regions().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::minifcal_begin    (void) const
+{
+  return channels().begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::minifcal_end      (void) const
+{
+  return channels().end();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_range LArMiniFCAL_ID::minifcal_range() const
+{
+  return channels().range();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::disc_minifcal_begin    (void) const
+{
+  return m_disc_channels.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::disc_minifcal_end      (void) const
+{
+  return m_disc_channels.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_range LArMiniFCAL_ID::disc_minifcal_range() const
+{
+  return m_disc_channels.range();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::disc_mod_begin    (void) const
+{
+  return m_disc_modules.begin();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_iterator LArMiniFCAL_ID::disc_mod_end      (void) const
+{
+  return m_disc_modules.end();
+}
+
+//----------------------------------------------------------------------------
+inline LArMiniFCAL_ID::id_range LArMiniFCAL_ID::disc_mod_range() const
+{
+  return m_disc_modules.range();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArMiniFCAL_ID::channel_ids() const
+{
+  return channels().ids();
+}
+
+//----------------------------------------------------------------------------
+inline const std::vector<Identifier>& LArMiniFCAL_ID::module_ids() const
+{
+  return regions().ids();
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::pos_neg         (const Identifier id)const
+{
+  return (m_pn_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::module              (const Identifier id)const
+{
+  return (m_module_impl.unpack(id));
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::depth             (const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_depth_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::eta               (const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_eta_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::phi(const Identifier id)const
+{
+  int result = -999 ;
+  if(is_connected(id)) result = m_phi_impl.unpack(id);
+  return(result);
+}
+
+//----------------------------------------------------------------------------
+inline int LArMiniFCAL_ID::phi_min(const Identifier modId) const
+{
+  IdentifierHash modHash = module_hash(modId);
+  unsigned int index = modHash;
+  return (m_vecOfPhiMin[index]);
+}
+
+//----------------------------------------------------------------------------
+inline bool LArMiniFCAL_ID::is_supercell(const Identifier /*channelId*/) const
+{
+  return false;
+}
+
+#endif // LARMiniFCAL_ID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/LArNeighbours.h b/Calorimeter/CaloIdentifier/CaloIdentifier/LArNeighbours.h
new file mode 100755
index 0000000000000000000000000000000000000000..289e9e408f837c03fe348da4260a3817b4607012
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/LArNeighbours.h
@@ -0,0 +1,33 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/* date of creation : 28/07/2003 */
+
+#ifndef LAR_NEIGHBOURS_H
+#define LAR_NEIGHBOURS_H
+
+
+namespace LArNeighbours {
+  enum neighbourOption { prevInPhi   		= 0x0001, 
+			 nextInPhi   		= 0x0002,
+			 prevInEta   		= 0x0004, 
+			 nextInEta   		= 0x0008, 
+			 faces2D     		= prevInPhi|nextInPhi|prevInEta|nextInEta, 
+			 corners2D   		= 0x0010, 
+			 all2D       		= corners2D|faces2D,
+			 prevInSamp  		= 0x0020,
+			 nextInSamp  		= 0x0040,
+			 upAndDown   		= prevInSamp|nextInSamp,
+			 prevSubDet  		= 0x0080,
+			 nextSubDet  		= 0x0100, 
+			 all3D                  = all2D|prevInSamp|nextInSamp|upAndDown|prevSubDet|nextSubDet,
+			 corners3D   		= 0x0200, 
+			 all3DwithCorners       = all3D|corners3D,
+			 prevSuperCalo          = 0x0400, 
+			 nextSuperCalo          = 0x0800, 
+			 super3D                = all3D|prevSuperCalo|nextSuperCalo};
+}
+
+#endif //LAR_NEIGHBOURS_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/TTOnlineID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/TTOnlineID.h
new file mode 100755
index 0000000000000000000000000000000000000000..6342fee3c7b9617b9f7061ce9a937d21438d1893
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/TTOnlineID.h
@@ -0,0 +1,465 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef CALOIDENTIFIER_TTONLINEID_H
+#define CALOIDENTIFIER_TTONLINEID_H
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "GaudiKernel/MsgStream.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/HWIdentifier.h"
+#include "Identifier/IdentifierHash.h"
+#include "Identifier/Range.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "IdDict/IdDictDefs.h"
+#include "CaloIdentifier/CaloID_Exception.h"
+#include <vector>
+#include <iostream>
+#include <algorithm>
+#include <map>
+
+//using namespace std;
+
+class IdentifierHash;
+class Range;
+
+/**
+*
+* @class TTOnlineID
+* @brief Helper class for Calo TT online identifiers
+*  
+*  This class provides an interface to decode and generate online identifiers
+*  for the Calorimeter Trigger Towers.  <p>
+* 
+*/
+class TTOnlineID : public AtlasDetectorID
+{
+ public:
+
+  typedef Identifier::size_type  size_type;
+
+  TTOnlineID(void);
+  ~TTOnlineID(void);
+
+
+  /* build towerId HWIdentifier */
+  /*=========================== */
+  /** (1) create towerId from fields */
+  HWIdentifier crateId( int crate ) const;
+  /** (2) create towerId from hash */
+  HWIdentifier crateId( IdentifierHash crate_hash ) const;
+  /** (3) create towerId from hash */
+  IdentifierHash crateHash( HWIdentifier crate_id ) const;
+  /** (4) iterator over towerId */
+  std::vector<HWIdentifier>::const_iterator crate_begin(void) const;
+  std::vector<HWIdentifier>::const_iterator crate_end(void) const;
+
+  /* build moduleId HWIdentifier */
+  /*=========================== */
+  /** (1) create towerId from fields */
+  HWIdentifier moduleId( int crate, int module) const;
+  /** (2) create towerId from hash */
+  HWIdentifier moduleId( IdentifierHash crate_hash ) const;
+  /** (3) create towerId from hash */
+  IdentifierHash moduleHash( HWIdentifier crate_id ) const;
+  /** (4) iterator over towerId */
+  std::vector<HWIdentifier>::const_iterator module_begin(void) const;
+  std::vector<HWIdentifier>::const_iterator module_end(void) const;
+
+  /* build submoduleId HWIdentifier */
+  /*=========================== */
+  /** (1) create towerId from fields */
+  HWIdentifier submoduleId( int crate, int module, int submodule) const;
+  /** (2) create towerId from hash */
+  HWIdentifier submoduleId( IdentifierHash crate_hash ) const;
+  /** (3) create towerId from hash */
+  IdentifierHash submoduleHash( HWIdentifier crate_id ) const;
+  /** (4) iterator over towerId */
+  std::vector<HWIdentifier>::const_iterator submodule_begin(void) const;
+  std::vector<HWIdentifier>::const_iterator submodule_end(void) const;
+
+  /* build moduleId HWIdentifier */
+  /*=========================== */
+  /** (1) create towerId from fields */
+  HWIdentifier channelId( int crate, int module, int submodule, int channel) const;
+  /** (2) create towerId from hash */
+  HWIdentifier channelId( IdentifierHash crate_hash ) const;
+  /** (3) create towerId from hash */
+  IdentifierHash channelHash( HWIdentifier crate_id ) const;
+  /** (4) iterator over towerId */
+  std::vector<HWIdentifier>::const_iterator channel_begin(void) const;
+  std::vector<HWIdentifier>::const_iterator channel_end(void) const;
+
+
+
+  /*  hash tables max size */
+  /*====================== */
+  size_type  crateHashMax (void) const;
+  size_type  moduleHashMax (void) const;
+  size_type  submoduleHashMax (void) const;
+  size_type  channelHashMax (void) const;
+
+
+  /** Initialization from the identifier dictionary*/
+  virtual int initialize_from_dictionary (const IdDictMgr& dict_mgr);
+
+
+  // HWIdentifier Fields for TTOnlineID
+  // ========================================
+  int crate( const HWIdentifier id )const;
+  int module( const HWIdentifier id )const;
+  int submodule( const HWIdentifier id )const;
+  int channel( const HWIdentifier id )const;
+
+
+  /** context for feedthroughs, feb  & channels */
+
+  IdContext    crateContext(void) const;
+  IdContext    moduleContext(void) const;
+  IdContext    submoduleContext(void) const;
+  IdContext    channelContext(void) const;
+
+
+private:
+
+  enum {NOT_VALID_HASH = 256000};
+
+  IdentifierHash channel_hash_binary_search(HWIdentifier channelId) const;
+
+  // Check methods
+  void  channel_Id_checks(int crate, int module, int submodule, int channel ) const throw(CaloID_Exception);
+  void  channel_Id_checks(const HWIdentifier crateId, int module, int submodule, int channel ) const throw(CaloID_Exception);
+  void  channel_Id_checks(const HWIdentifier moduleId, int submodule, int channel ) const throw(CaloID_Exception);
+  void  channel_Id_checks(const HWIdentifier submoduleId, int channel ) const throw(CaloID_Exception);
+
+  void  submodule_Id_checks(int crate, int module, int submodule ) const throw(CaloID_Exception);
+  void  module_Id_checks(int crate, int module ) const throw(CaloID_Exception);
+  void  crate_Id_checks( int crate ) const throw(CaloID_Exception);
+
+  /** create expanded HWIdentifier from HWIdentifier (return == 0 for OK) */
+  int  get_expanded_id (const HWIdentifier& id, ExpandedIdentifier& exp_id,
+			const IdContext* context) const;
+
+  /** return the value of the detzside field (initialized in initialize_from_dictionary())*/
+  int detzside_field_value() const;
+
+  /** init() hashes */
+  int  initLevelsFromDict(void) ;
+  int  init_hashes(void);
+
+  /** Member Data index */
+	size_type m_calo_index;
+	size_type m_detzside_index;
+	size_type m_l1online_regions_index;
+	size_type m_crate_index;
+	size_type m_module_index;
+	size_type m_submodule_index;
+	size_type m_channel_index;
+
+  const IdDictDictionary*       m_dict;
+  MultiRange                    m_full_crate_range;
+  MultiRange                    m_full_module_range;
+  MultiRange                    m_full_submodule_range;
+  MultiRange                    m_full_channel_range;
+
+  size_type                     m_crateHashMax;
+  size_type                     m_moduleHashMax;
+  size_type                     m_submoduleHashMax;
+  size_type                     m_channelHashMax;
+
+  std::vector<HWIdentifier>     m_crate_vec;
+  std::vector<HWIdentifier>     m_module_vec;
+  std::vector<HWIdentifier>     m_submodule_vec;
+  std::vector<HWIdentifier>     m_channel_vec;
+
+  int m_iDetZSideFieldValue;
+
+  /**
+     @brief small class holding the starting hash value, the min eta and the number of phi bins of each region <br>
+     used to CPU-optimize the conversion from an identifier to a hash index
+   */
+  class HashCalc
+  {
+  public:
+    HashCalc() :
+    m_hash(0),
+      m_channelmin(0) {}
+    IdentifierHash m_hash;
+    size_type      m_channelmin;
+  };
+  std::vector<HashCalc>         m_hash_calcs;
+
+
+  /** Field Implementation */
+  IdDictFieldImplementation   m_calo_impl;
+  IdDictFieldImplementation   m_calo_detzside_impl;
+  IdDictFieldImplementation   m_crate_impl;
+  IdDictFieldImplementation   m_module_impl;
+  IdDictFieldImplementation   m_submodule_impl;
+  IdDictFieldImplementation   m_channel_impl;
+};
+
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( TTOnlineID , 38321944 , 1 )
+
+
+//=====================
+// Inline Definitions
+//=====================
+
+/* Crates */
+
+//==========================================================================================================
+inline HWIdentifier TTOnlineID::crateId( int crate ) const
+//==========================================================================================================
+{
+  HWIdentifier result(0);
+  m_calo_impl.pack                (10   , result);
+  m_calo_detzside_impl.pack       (0   , result);
+  m_crate_impl.pack               (crate                , result);
+
+  /* Do checks */
+  if(m_do_checks) {
+    crate_Id_checks( crate );
+  }
+  return result;
+}
+
+//============================================================================== */
+inline HWIdentifier TTOnlineID::crateId(IdentifierHash cratehash_id) const
+//===============================================================================*/
+{
+    return(m_crate_vec[cratehash_id]);
+}
+
+//=============================================================================
+inline IdentifierHash TTOnlineID::crateHash  (HWIdentifier crate_id) const{
+//=============================================================================
+  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_crate_vec.begin(),m_crate_vec.end(),crate_id);
+  if ( it != m_crate_vec.end() ){
+    return (it - m_crate_vec.begin());
+  }
+  return (0);
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::crate_begin(void) const {
+//=============================================================================
+	return(m_crate_vec.begin());
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::crate_end(void) const {
+//=============================================================================
+	return(m_crate_vec.end());
+}
+
+/* Modules */
+
+//==========================================================================================================
+inline HWIdentifier TTOnlineID::moduleId( int crate, int module ) const
+//==========================================================================================================
+{
+  HWIdentifier result(0);
+  m_calo_impl.pack                (10   , result);
+  m_calo_detzside_impl.pack       (0   , result);
+  m_crate_impl.pack               (crate                , result);
+  m_module_impl.pack              (module               , result);
+
+  /* Do checks */
+  if(m_do_checks) {
+    module_Id_checks( crate, module );
+  }
+  return result;
+}
+
+//============================================================================== */
+inline HWIdentifier TTOnlineID::moduleId(IdentifierHash modulehash_id) const
+//===============================================================================*/
+{
+    return(m_module_vec[modulehash_id]);
+}
+
+//=============================================================================
+inline IdentifierHash TTOnlineID::moduleHash  (HWIdentifier module_id) const{
+//=============================================================================
+  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_module_vec.begin(),m_module_vec.end(),module_id);
+  if ( it != m_module_vec.end() ){
+    return (it - m_module_vec.begin());
+  }
+  return (0);
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::module_begin(void) const {
+//=============================================================================
+	return(m_module_vec.begin());
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::module_end(void) const {
+//=============================================================================
+	return(m_module_vec.end());
+}
+
+
+/* SubModules */
+
+//==========================================================================================================
+inline HWIdentifier TTOnlineID::submoduleId( int crate, int module, int submodule ) const
+//==========================================================================================================
+{
+  HWIdentifier result(0);
+  m_calo_impl.pack                (10   , result);
+  m_calo_detzside_impl.pack       (0   , result);
+  m_crate_impl.pack               (crate                , result);
+  m_module_impl.pack              (module               , result);
+  m_submodule_impl.pack           (submodule            , result);
+
+  /* Do checks */
+  if(m_do_checks) {
+    submodule_Id_checks( crate, module, submodule );
+  }
+  return result;
+}
+
+//============================================================================== */
+inline HWIdentifier TTOnlineID::submoduleId(IdentifierHash submodulehash_id) const
+//===============================================================================*/
+{
+    return(m_submodule_vec[submodulehash_id]);
+}
+
+//=============================================================================
+inline IdentifierHash TTOnlineID::submoduleHash  (HWIdentifier submodule_id) const{
+//=============================================================================
+  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_submodule_vec.begin(),m_submodule_vec.end(),submodule_id);
+  if ( it != m_submodule_vec.end() ){
+    return (it - m_submodule_vec.begin());
+  }
+  return (0);
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::submodule_begin(void) const {
+//=============================================================================
+	return(m_submodule_vec.begin());
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::submodule_end(void) const {
+//=============================================================================
+	return(m_submodule_vec.end());
+}
+
+
+/* Channels */
+
+//==========================================================================================================
+inline HWIdentifier TTOnlineID::channelId( int crate, int module, int submodule, int channel ) const
+//==========================================================================================================
+{
+  HWIdentifier result(0);
+  m_calo_impl.pack                (10   , result);
+  m_calo_detzside_impl.pack       (0   , result);
+  m_crate_impl.pack               (crate                , result);
+  m_module_impl.pack              (module               , result);
+  m_submodule_impl.pack           (submodule            , result);
+  m_channel_impl.pack             (channel              , result);
+
+  /* Do checks */
+  if(m_do_checks) {
+    channel_Id_checks( crate, module, submodule, channel );
+  }
+  return result;
+}
+
+//============================================================================== */
+inline HWIdentifier TTOnlineID::channelId(IdentifierHash channelhash_id) const
+//===============================================================================*/
+{
+    return(m_channel_vec[channelhash_id]);
+}
+
+//=============================================================================
+inline IdentifierHash TTOnlineID::channelHash  (HWIdentifier channel_id) const{
+//=============================================================================
+  std::vector<HWIdentifier>::const_iterator it = std::lower_bound(m_channel_vec.begin(),m_channel_vec.end(),channel_id);
+  if ( it != m_channel_vec.end() ){
+    return (it - m_channel_vec.begin());
+  }
+  return (0);
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::channel_begin(void) const {
+//=============================================================================
+	return(m_channel_vec.begin());
+}
+
+//=============================================================================
+inline std::vector<HWIdentifier>::const_iterator TTOnlineID::channel_end(void) const {
+//=============================================================================
+	return(m_channel_vec.end());
+}
+
+
+/* Hash indices */
+
+inline TTOnlineID::size_type TTOnlineID::crateHashMax (void) const
+/*====================================================================*/
+{
+  return m_crateHashMax;
+}
+
+inline TTOnlineID::size_type TTOnlineID::moduleHashMax (void) const
+/*====================================================================*/
+{
+  return m_moduleHashMax;
+}
+
+inline TTOnlineID::size_type TTOnlineID::submoduleHashMax (void) const
+/*====================================================================*/
+{
+  return m_submoduleHashMax;
+}
+
+inline TTOnlineID::size_type TTOnlineID::channelHashMax (void) const
+/*====================================================================*/
+{
+  return m_channelHashMax;
+}
+
+inline int TTOnlineID::crate(const HWIdentifier id)const
+/*===========================================================*/
+{
+  return (m_crate_impl.unpack(id));
+}
+
+inline int TTOnlineID::module(const HWIdentifier id)const
+/*===========================================================*/
+{
+  return (m_module_impl.unpack(id));
+}
+
+inline int TTOnlineID::submodule(const HWIdentifier id)const
+/*===========================================================*/
+{
+  return (m_submodule_impl.unpack(id));
+}
+
+inline int TTOnlineID::channel(const HWIdentifier id)const
+/*===========================================================*/
+{
+  return (m_channel_impl.unpack(id));
+}
+
+inline int TTOnlineID::detzside_field_value() const
+{
+  return m_iDetZSideFieldValue;
+}
+
+#endif // TTOnlineID_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/TileID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/TileID.h
new file mode 100755
index 0000000000000000000000000000000000000000..ded5865bc895305ff6ac111f0f52388e056dcdbb
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/TileID.h
@@ -0,0 +1,89 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Tile Calorimeter detector description package
+ -----------------------------------------
+ Copyright (C) 1998-2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>   $Id: TileID.h,v 1.14 2008-07-10 00:55:04 solodkov Exp $
+//<version>     $Name: not supported by cvs2svn $
+
+// TileID.h
+//
+// Atlas detector Identifier class for Tile Calorimeter
+//
+
+#ifndef CALOIDENTIFIER_TILEID_H
+#define CALOIDENTIFIER_TILEID_H
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+// #include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "CaloIdentifier/Tile_Base_ID.h"
+#include "CaloIdentifier/TileID_Exception.h"
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "SGTools/BaseInfo.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <string>
+#include <vector>
+#include <set>
+
+/**
+* 
+* @class TileID
+* @brief Helper class for TileCal offline identifiers
+* @author Alexander Solodkov
+*
+* This class provides an interface to generate an identifier or  a range
+* for the Tile Calorimeter detector subsystem.
+*
+* Definition and the range of values for the elements of the identifier:
+* <pre>
+*
+*  element     range       meaning
+*  -------     -----       -------
+*
+*  section     1 to 15     section number  ( 1 = Barrel
+*                                            2 = Extended Barrel
+*                                            3 = Gap Detector
+*                                                i.e. gap scin E1-E4 and ITC cells D4, C10
+*                                            4 = Ancillary detectors )
+*                           section codes 5 and 6 are used internally
+*                           for supercell barrel and extbarrel, respectively.
+*  side       -1 to 1      -1 = negative eta, 1 = positive eta, 0 = undefined (both sides) 
+*  module      0 to 63     module number by phi
+*  tower(eta)  0 to 15     0-15 = tower number by pseudorapidity with 0.1 increment in eta
+*                          Attention! in PhysTDR data last tower is 16
+*  sample      0 to 15     0 = A, 1 = B = BC = C, 2 = D, 3 = special gap scin cells E1-E4
+*                          4-15 = individual tiles, used in Cesium calibration data
+*  pmt         0 to 1      PMT number in the cell (0 = side close to module with smaller number)
+*  adc         0 to 1      ADC number for the PMT (0 = low gain, 1 = high gain)
+*
+* </pre>
+*/
+class TileID : public Tile_Base_ID {
+
+  friend class TileNeighbour;
+
+public:
+
+  // default constructor
+  TileID();
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( TileID , 2901 , 1 )
+SG_BASE (TileID, Tile_Base_ID);
+
+#endif // CALOIDENTIFIER_TILEID_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/TileID_Exception.h b/Calorimeter/CaloIdentifier/CaloIdentifier/TileID_Exception.h
new file mode 100755
index 0000000000000000000000000000000000000000..d7c6371dd5a89c0f407ac10de74ba49611aa9746
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/TileID_Exception.h
@@ -0,0 +1,81 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILEID_EXCEPTION_H
+#define TILEID_EXCEPTION_H
+
+#include <string>
+
+/**
+* @class TileID_Exception
+* @brief Exception class for Tile Identifiers 
+* @author Alexander Solodkov
+*/
+
+class TileID_Exception {
+public:
+
+    /**
+     * default constructor 
+     */
+    TileID_Exception() : m_message("No error message") , m_code( 999 ) {  }
+
+    /**
+     * constructor to be used 
+     */
+    TileID_Exception(std::string  l_message , int l_code) : m_message ( l_message ) , m_code ( l_code ) { }
+
+    /**
+     * set error message 
+     */
+    void message(std::string l_message) { m_message = l_message ;}
+
+    /**
+     * return error message  
+     */
+    virtual std::string message() const { return m_message;}
+
+    /**
+     * set error code number 
+     */
+    void code(int l_code) { m_code = l_code ;}
+
+    /**
+     * return error code 
+     * 
+     * error codes : 
+     * 0 : no error 
+     * 1 : Logical ID is out of range
+     * 2 : Hardware ID is out of range
+     * 3 : No PMT for this logical ID (invalid logical ID)
+     * 4 : No PMT for this channel (not connected)
+     * 9 : ID compactification Error 
+     *11 : id is not an TileCal logical identifier 
+     *12 : id is not an TileCal hardware identifier 
+     *19 : no IDCompactor available ( null pointer ) 
+     * 999 : undefined error
+     */
+    virtual int code() const { return m_code;}
+
+    virtual operator std::string();
+
+    /**
+     * destructor 
+     */
+    virtual ~TileID_Exception() {}
+
+private:
+
+    /**
+     * error message 
+     */
+    std::string m_message;
+
+    /**
+     * error code 
+     */
+    int m_code;
+};
+#endif //TILEID_EXCEPTION_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/TileNeighbour.h b/Calorimeter/CaloIdentifier/CaloIdentifier/TileNeighbour.h
new file mode 100755
index 0000000000000000000000000000000000000000..4ff62aa1d83e314028d69045b0208cc071ee4370
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/TileNeighbour.h
@@ -0,0 +1,100 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Tile Calorimeter detector description package
+ -----------------------------------------
+ Copyright (C) 2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>   $Id: TileNeighbour.h,v 1.6 2007-07-08 19:22:30 solodkov Exp $
+//<version>     $Name: not supported by cvs2svn $
+
+// TileNeighbour.h
+//
+// Helper for neighbour search in TileCalorimeter
+//
+// Aug-2003 by AS
+//
+
+#ifndef CALOIDENTIFIER_TILENEIGHBOUR_H
+#define CALOIDENTIFIER_TILENEIGHBOUR_H
+
+#include "CaloIdentifier/LArNeighbours.h"
+
+#include <string>
+#include <vector>
+#include <set>
+
+/** 
+* @class TileNeighbour
+* @brief This class return all neighbours for given hash ID of the cell
+* @author Alexander Solodkov
+*/
+
+class Tile_Base_ID;
+class Identifier;
+class IdentifierHash;
+class IdContext;
+class MsgStream;
+
+class TileNeighbour {
+
+public:
+
+  // default constructor
+  TileNeighbour(void);
+
+  // default destructor
+  virtual ~TileNeighbour(void);
+
+  int initialize(const Tile_Base_ID* tileID, std::string filename = "TileNeighbour.txt" );
+  int prev_phi  (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int next_phi  (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int prev_eta  (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int next_eta  (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int prev_samp (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int next_samp (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int prev_samp_wide (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+  int next_samp_wide (const IdentifierHash & id, std::vector<IdentifierHash> & neighbourList)    const;
+
+private:
+
+  unsigned int m_debug;
+  unsigned int m_length;
+  unsigned int m_maxHash;
+  
+  std::vector<std::vector<short int> > m_prev_eta;
+  std::vector<std::vector<short int> > m_next_eta;
+  std::vector<std::vector<short int> > m_prev_samp;
+  std::vector<std::vector<short int> > m_next_samp;
+  std::vector<std::vector<short int> > m_prev_samp_wide;
+  std::vector<std::vector<short int> > m_next_samp_wide;
+
+  std::vector<short int>      m_phid_index;
+  std::vector<short int>      m_cell_index;
+  std::vector<IdentifierHash> m_hashid_vec;
+
+  int initialize_prev_eta (unsigned int ind, const std::vector<short int> & all_cells);
+  int initialize_next_eta (unsigned int ind, const std::vector<short int> & all_cells);
+  int initialize_prev_samp(unsigned int ind, const std::vector<short int> & all_cells);
+  int initialize_next_samp(unsigned int ind, const std::vector<short int> & all_cells);
+  int initialize_prev_samp_wide(unsigned int ind, const std::vector<short int> & all_cells);
+  int initialize_next_samp_wide(unsigned int ind, const std::vector<short int> & all_cells);
+
+  int         fill_phi_vec  (std::set<std::pair<IdentifierHash,int> > & ids, 
+                             unsigned int hash_max, unsigned int max_phi, MsgStream & log);
+
+  void          get_id      (std::string & strName, Identifier & id, const Tile_Base_ID* tileID);
+
+  void          get_name    (Identifier & id, std::string & section, int & module,
+                             std::string & cell, const Tile_Base_ID* tileID, MsgStream & log,
+                             const char * end);
+
+  void          print_list  (std::vector<IdentifierHash> & nb_list, 
+                             const Tile_Base_ID* tileID, const IdContext* context,
+                             MsgStream & log, const char * pref, const char * suff);
+};
+
+#endif // CALOIDENTIFIER_TILENEIGHBOUR_H
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/TileTBID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/TileTBID.h
new file mode 100755
index 0000000000000000000000000000000000000000..eaf989febded7f6aa632cc7e4d4359b7c51594da
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/TileTBID.h
@@ -0,0 +1,308 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Tile Calorimeter detector description package
+ -----------------------------------------
+ Copyright (C) 1998-2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>	$Id: TileTBID.h,v 1.1 2009-03-30 11:19:27 tsulaia Exp $
+//<version>	$Name: not supported by cvs2svn $
+
+// TileTBID.h
+//
+// Atlas detector Identifier class for Tile Calorimeter
+//
+
+#ifndef TILEIDENTIFIER_TILETBID_H
+#define TILEIDENTIFIER_TILETBID_H
+
+#include "CaloIdentifier/TileID.h"
+
+/** 
+* @class TileTBID
+* @brief Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS
+* @author Alexander Solodkov
+*
+*
+* This class provides an interface to generate hardware identifier or
+* a range for the Tile Calorimeter detector subsystem.
+*
+* Definition and the range of values for the elements of the identifier:
+* <pre>
+*
+*  element     range       meaning
+*  -------     -----       -------
+*
+*  type         2 to 6     Readout type
+*                           2 - prototype modules (not used now)
+*                           3 - all detectors with ADC readout
+*                           4 - all detectors with TDC readout
+*                           5 - all detectors with flash ADC readout
+*                           6 - non-detectors
+*  module       0 to 6    For type=2 - just module number (0-4)
+*                         For type=5 - drawer number (0-5)
+*                         for (type=3)        | for (type=4)          | for (type=6)
+*                           0 - S1-S4         | beam ch1 (both X & Y) | CIS parameters
+*                           1 - Ch1-Ch2       | beam ch2 (both X & Y) | Pattern Unit
+*                           2 - Laser         | beam ch3 (both X & Y) |
+*                           3 - back mu-wall  | beam ch4 (both X & Y) |
+*                           4 - side mu-wall  | extra                 |
+*                           5 - crack counter |                       |
+*                           6 - phantom calo  |                       |
+*  channel     0 to 63    channel number
+*                        (for beam chambers: X=0, Y=1)
+*
+* if TileTBID is used for minimum bias scintillators, then
+*
+* type         -1 or +1  - eta side
+* module        0 to 7   - phi slice number
+* channel       0 to 1   - cell number along radius
+* </pre>
+*/
+
+class TileTBID : public AtlasDetectorID {
+
+public:
+
+  typedef Identifier::size_type  size_type ;
+      
+  /** 
+   * @brief Default constructor
+   */
+  TileTBID(void);
+
+  /** 
+   * @brief Default destructor
+   */
+  virtual ~TileTBID();
+
+  /** Identifier numbering */
+  enum        SECTION   { TILE_TESTBEAM = 4 /*TileID::TESTBEAM*/ };
+  enum        RO_TYPE   { PROTO_TYPE = 2,
+                          ADC_TYPE   = 3,
+                          TDC_TYPE   = 4,
+                          FADC_TYPE  = 5,
+                          INT_TYPE   = 6 };
+  enum        DET_NUM   { S_COUNTER  = 0, CIS_PAR = 0,
+                          CH_COUNTER = 1, PATTERN_UNIT = 1,
+                          LASER      = 2,
+                          BACK_WALL  = 3,
+                          SIDE_WALL  = 4,
+                          CRACK_WALL = 5,
+                          PHANTOM_CALO = 6 };
+  
+
+  /**
+   * @brief identifer for all Tile testbeam detectors
+   */
+  Identifier          tiletb_id               ( void )                        const;
+  /**
+   * @brief identifer for Tile testbeam detectors of a give type
+   */
+  Identifier          type_id                 ( int type)                     const throw(TileID_Exception);
+  /**
+   * @brief identifer for one module of a Tile testbeam detector
+   */
+  Identifier          module_id               ( int type, int module )        const throw(TileID_Exception);
+  /**
+   * @brief identifer for one channel of a Tile testbeam detector
+   */
+  Identifier          channel_id              ( int type, int module, 
+                                                int channel )                 const throw(TileID_Exception);
+
+  /**
+   * @brief extract module ID from channel ID
+   */
+  Identifier          module_id               ( const Identifier& id )        const; 
+  /**
+   * @brief create channel ID from module ID
+   */
+  Identifier          channel_id              ( const Identifier& id,
+                                                int channel )                 const throw(TileID_Exception); 
+
+  /**
+   * @brief Test ID if it is TileTBID
+   */
+  bool	        is_tiletb               ( const Identifier& id )        const;
+
+  /**
+   * @brief extract system field from TileTB identifier
+   */
+  inline int    system  ( const Identifier & id )  const    { return m_system_impl.unpack(id); }
+  /**
+   * @brief extract section field from TileTB identifier
+   */
+  inline int    section ( const Identifier & id )  const    { return m_section_impl.unpack(id); }
+  /**
+   * @brief extract type field from TileTB identifier
+   */
+  inline int    type    ( const Identifier & id )  const    { return m_type_impl.unpack(id); }
+  /**
+   * @brief extract module field from TileTB identifier
+   */
+  inline int    module  ( const Identifier & id )  const    { return m_module_impl.unpack(id); }
+  /**
+   * @brief extract channel field from TileTB identifier
+   */
+  inline int    channel ( const Identifier & id )  const    { return m_channel_impl.unpack(id); }
+
+  /** define synonyms for minimum bias scintillators */
+
+  /**
+   * @brief extract side field from MBTS identifier
+   */
+  inline int side  ( const Identifier & id )  const { return type(id); }
+  /**
+   * @brief extract phi field from MBTS identifier
+   */
+  inline int phi   ( const Identifier & id )  const { return module(id); }
+  /**
+   * @brief extract eta field from MBTS identifier
+   */
+  inline int eta   ( const Identifier & id )  const { return channel(id); }
+  
+
+  /**
+   * @brief extract all fields from TileTB identifier
+  Identifier          get_all_fields          ( const Identifier & id,
+                                                unsigned int last=99 )        const;
+  */
+  
+  /**
+   * @brief convert TileTB identifier to string
+   */
+  std::string         to_string               ( const Identifier & id, int level=0 )     const;
+
+  /** access to IdContext's which define which levels of fields are contained in the id */
+
+  /**
+   * @brief idContext for TYPEs
+   */
+  IdContext    type_context     (void) const;
+  /**
+   * @brief idContext for modules
+   */
+  IdContext    module_context   (void) const;
+  /**
+   * @brief idContext for channels
+   */
+  IdContext    channel_context  (void) const;
+
+
+  /**
+   * @brief create compact id from hash id (return == 0 for OK)
+   */
+  virtual int  get_id    (const IdentifierHash& hash_id, Identifier& id, const IdContext* context = 0 ) const;
+
+  /**
+   * @brief create hash id from compact id (return == 0 for OK)
+   */
+  virtual int  get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context = 0 ) const;
+
+  /**
+   * @brief initialization from the identifier dictionary
+   */
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+
+  /**
+   * @brief TYPE hash table max size
+   */
+  inline size_type      type_hash_max   (void) const    { return m_type_hash_max; }
+  /**
+   * @brief module hash table max size
+   */
+  inline size_type      module_hash_max (void) const    { return m_module_hash_max; }
+  /**
+   * @brief channel hash table max size
+   */
+  inline size_type      channel_hash_max(void) const    { return m_channel_hash_max; }
+
+  /**
+   * @brief begin iterator for TYPE Identifiers
+   */
+  std::vector<Identifier>::const_iterator type_begin     (void) const   { return(m_type_vec.begin()); }
+  /**
+   * @brief end iterator for TYPE Identifiers
+   */
+  std::vector<Identifier>::const_iterator type_end       (void) const   { return(m_type_vec.end()); }
+
+  /**
+   * @brief begin iterator for moulde Identifiers
+   */
+  std::vector<Identifier>::const_iterator module_begin  (void) const    { return(m_module_vec.begin()); }
+  /**
+   * @brief end iterator for moulde Identifiers
+   */
+  std::vector<Identifier>::const_iterator module_end    (void) const    { return(m_module_vec.end()); }
+
+  /**
+   * @brief begin iterator for channel Identifiers
+   */
+  std::vector<Identifier>::const_iterator channel_begin (void) const    { return(m_channel_vec.begin()); }
+  /**
+   * @brief begin iterator for channel Identifiers
+   */
+  std::vector<Identifier>::const_iterator channel_end   (void) const    { return(m_channel_vec.end()); }
+
+  enum {NOT_VALID_HASH = 64000};
+
+private:
+
+  /**
+   * @brief create expanded Identifier from Identifier (return == 0 for OK)
+   */
+  int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+  /**
+   * @brief unpack one field from Identifier
+   */
+  int                   get_field               ( const Identifier & id,
+                                                  size_type index )             const;
+
+  int         initLevelsFromDict(void) ;
+
+  int         init_hashes(void) ;
+
+  bool        module_id  (const Identifier& type_id,    int module,              Identifier& module_id  );
+  bool        channel_id (const Identifier& type_id,    int module, int channel, Identifier& channel_id );
+  bool        channel_id (const Identifier& module_id,  int channel,             Identifier& channel_id );
+  int         fill_vec      (std::set<Identifier> & ids, 
+                             unsigned int hash_max, std::vector<Identifier> & vec);
+
+  size_type                     m_tile_region_index;
+  size_type                     m_SYSTEM_INDEX;
+  size_type                     m_SECTION_INDEX;
+  size_type                     m_TYPE_INDEX;
+  size_type                     m_MODULE_INDEX;
+  size_type                     m_CHANNEL_INDEX;
+
+  const IdDictDictionary*       m_dict;
+
+  IdDictFieldImplementation     m_system_impl;
+  IdDictFieldImplementation     m_section_impl;
+  IdDictFieldImplementation     m_type_impl;
+  IdDictFieldImplementation     m_module_impl;
+  IdDictFieldImplementation     m_channel_impl;
+
+  MultiRange                    m_full_type_range;
+  MultiRange                    m_full_module_range;
+  MultiRange                    m_full_channel_range;
+  size_type                     m_type_hash_max;
+  size_type                     m_module_hash_max;
+  size_type                     m_channel_hash_max;
+  std::vector<Identifier>       m_type_vec;
+  std::vector<Identifier>       m_module_vec;
+  std::vector<Identifier>       m_channel_vec;
+
+  Identifier			m_base_tile_type;
+};
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( TileTBID , 2903 , 1 )
+
+#endif // TILEIDENTIFIER_TILETBID_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_Base_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_Base_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..8305944a5c6104b953d8748bfaf842620d14def4
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_Base_ID.h
@@ -0,0 +1,352 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/Tile_Base_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Factor out code common between TileID and Tile_SuperCell_ID.
+ */
+
+#ifndef CALOIDENTIFIER_TILE_BASE_ID_H
+#define CALOIDENTIFIER_TILE_BASE_ID_H
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+// #include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "CaloIdentifier/TileID_Exception.h"
+#include "CaloIdentifier/TileNeighbour.h"
+
+#include "CLIDSvc/CLASS_DEF.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <string>
+#include <vector>
+#include <set>
+
+class IdentifierHash;
+
+
+/**  
+ *
+ * This class factors out code common between TileID and Tile_SuperCell_ID.
+ */
+class Tile_Base_ID : public CaloIDHelper {
+
+  friend class TileNeighbour;
+
+public:
+
+    /** Constructor.  If SUPERCELL is true, this helper is for supercells. */
+    Tile_Base_ID (const std::string& name, bool supercell);
+
+    enum SECTION { ONLINE = 0, BARREL = 1, EXTBAR = 2, GAPDET = 3, AUXDET = 4 ,
+                   SBARREL = 5, SEXTBAR = 6,
+                   SECTION_MASK = 3,
+                   SUPERCELL_MASK = 4
+                 };
+    enum SAMPLE { SAMP_A = 0, 
+                  SAMP_B = 1, SAMP_BC = 1, SAMP_C = 1, // synonyms
+                  SAMP_D = 2, SAMP_E = 3, SAMP_X = 4 };
+    enum SIDE { NEGATIVE = -1, POSITIVE = 1, TWOSIDES = 0 };
+    enum GAIN { LOWGAIN = 0,   HIGHGAIN = 1 };
+    enum SIZE { NSIDES = 2, NSECTIONS = 3, NREGIONS = NSIDES * NSECTIONS };
+
+    /** build identifier for whole TileCal */
+    Identifier          tile_system             ()     const;
+
+    /** build identifier for Tile Barrel */
+    Identifier          tile_barrel             ()     const;
+
+    /** build identifier for Tile Extended Barrel */
+    Identifier          tile_extbarrel          ()     const;
+
+    /** build identifier for Tile Gap detector (ITC + gap/crack scintillators) */
+    Identifier          tile_gap                ()     const;
+
+    /** build identifier for any Tilecal section */
+    Identifier          tile_det                ( int section)                  const throw(TileID_Exception);
+
+    /** build single region, module, tower, cell, pmt, adc identifiers */
+    Identifier          region_id               ( int index)                    const throw(TileID_Exception);
+    Identifier          region_id               ( int section, int side)        const throw(TileID_Exception);
+    Identifier          region_id               ( const Identifier& any_id)     const;
+
+    Identifier          module_id               ( int section, int side,
+                                                  int module)                   const throw(TileID_Exception);
+    Identifier          module_id               ( const Identifier& any_id)     const;
+    Identifier          tower_id                ( int section,  int side,
+                                                  int module,   int tower)      const throw(TileID_Exception);
+    Identifier          tower_id               ( const Identifier& any_id)     const;
+    Identifier          cell_id                 ( const Identifier & any_id )   const;
+    Identifier          cell_id                 ( int section,  int side,
+                                                  int module,   int tower,
+                                                  int sample )                  const throw(TileID_Exception);
+    Identifier          pmt_id                  ( const Identifier & any_id )   const;
+    Identifier          pmt_id                  ( const Identifier & cell_id,
+                                                  int pmt )                     const throw(TileID_Exception);
+    Identifier          pmt_id                  ( int section,  int side,
+                                                  int module,   int tower,
+                                                  int sample,   int pmt )       const throw(TileID_Exception);
+    Identifier          adc_id                  ( const Identifier & cell_id,
+                                                  int pmt, int adc )            const throw(TileID_Exception);
+    Identifier          adc_id                  ( const Identifier & pmt_id,
+                                                  int adc )                     const throw(TileID_Exception);
+    Identifier          adc_id                  ( int section,  int side,
+                                                  int module,   int tower,
+                                                  int sample,   int pmt,
+                                                  int adc )                     const throw(TileID_Exception);
+
+    /** fast conversion from hash to ID for cells */
+    Identifier          cell_id                 (const IdentifierHash& hash_id) const throw(TileID_Exception);
+    /** fast conversion from ID to hash for cells */
+    IdentifierHash      cell_hash               (const Identifier& cell_id) const throw(TileID_Exception);
+
+    /** Test of an Identifier to see if it belongs to a particular part of the calorimeter */
+//    bool	is_tile                         (const Identifier& id) const;
+    bool	is_tile_barrel                  (const Identifier& id) const;
+    bool	is_tile_extbarrel               (const Identifier& id) const;
+    bool	is_tile_gap                     (const Identifier& id) const;
+    bool	is_tile_gapscin                 (const Identifier& id) const;
+    bool	is_tile_aux                     (const Identifier& id) const;
+
+    bool        is_negative                     (const Identifier& id) const;
+    bool        is_positive                     (const Identifier& id) const;
+    bool        is_twosides                     (const Identifier& id) const;
+
+    bool        is_low_gain                     (const Identifier& id) const;
+    bool        is_high_gain                    (const Identifier& id) const;
+
+    bool        is_supercell                    (const Identifier& id) const;
+  
+    int                 region                  ( int section, int side )       const;
+    int                 region                  ( const Identifier & id )       const;
+    int                 system                  ( const Identifier & id )       const;
+    int                 section                 ( const Identifier & id )       const;
+    int                 side                    ( const Identifier & id )       const;
+    int                 module                  ( const Identifier & id )       const;
+    int                 tower                   ( const Identifier & id )       const;
+    int                 sample                  ( const Identifier & id )       const;
+    int                 pmt                     ( const Identifier & id )       const;
+    int                 adc                     ( const Identifier & id )       const;
+
+    // fast way to get Tile sampling (be careful - doesn't work for MBTS)
+    int                 sampling                ( const Identifier & id )       const { return m_sample_impl.unpack(id); } 
+
+    std::string         to_string               (const Identifier & id, int level=0)      const;
+    std::string         to_string               (const IdentifierHash & hash_id, int level=0)      const;
+
+
+  /** access to IdContext's which define which levels of fields are contained in the id */
+  /** id for regions */
+  IdContext    region_context   (void) const;
+
+  /** id for modules */
+  IdContext    module_context   (void) const;
+
+  /** id for towers */
+  IdContext    tower_context    (void) const;
+
+  /** id for cells */
+  IdContext    cell_context     (void) const;
+
+  /** id for PMTs */
+  IdContext    pmt_context      (void) const;
+
+  /** id for ADCs */
+  IdContext    adc_context      (void) const;
+
+
+    /** create compact id from hash id (return == 0 for OK)*/
+  virtual int  get_id    (const IdentifierHash& hash_id, Identifier& id, const IdContext* context = 0 ) const;
+
+    /** create hash id from compact id (return == 0 for OK)*/
+  virtual int  get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context = 0 ) const;
+
+  /** initialization from the identifier dictionary*/
+  int  initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                        const std::string& group_name);
+
+  /**  hash tables max size */
+  size_type     region_hash_max (void) const;
+  size_type     module_hash_max (void) const;
+  size_type     tower_hash_max  (void) const;
+  size_type     cell_hash_max   (void) const;
+  size_type     pmt_hash_max    (void) const;
+  size_type     adc_hash_max    (void) const;
+
+  /** Type for iterators over identifiers. */
+  typedef std::vector<Identifier>::const_iterator id_iterator;
+  /** Type for range over identifiers. */
+  typedef boost::iterator_range<id_iterator> id_range;
+
+  /** iterator over set of region Identifiers */
+  id_iterator reg_begin    () const;
+  id_iterator reg_end      () const;
+  id_range    reg_range    () const;
+
+  /** iterator over set of region Identifiers (synonyms for naming consistency) */
+  id_iterator region_begin    () const { return reg_begin(); }
+  id_iterator region_end      () const { return reg_end(); }
+  id_range    region_range    () const { return  reg_range(); }
+
+  /** iterator over set of module Identifiers */
+  id_iterator module_begin () const;
+  id_iterator module_end   () const;
+  id_range    module_range () const;
+
+  /** iterator over set of tower Identifiers */
+  id_iterator tower_begin  () const;
+  id_iterator tower_end    () const;
+  id_range    tower_range  () const;
+
+  /** iterator over set of cell Identifiers */
+  id_iterator cell_begin   () const;
+  id_iterator cell_end     () const;
+  id_range    cell_range   () const;
+
+  /** iterator over set of pmt Identifiers */
+  id_iterator pmt_begin    () const;
+  id_iterator pmt_end      () const;
+  id_range    pmt_range    () const;
+
+  /** iterator over set of adc Identifiers */
+  id_iterator adc_begin    () const;
+  id_iterator adc_end      () const;
+  id_range    adc_range    () const;
+
+  /** provide access to id vectors, accessed via hash */
+  const std::vector<Identifier>& region_ids() const;
+  const std::vector<Identifier>& module_ids() const;
+  const std::vector<Identifier>& tower_ids() const;
+  const std::vector<Identifier>& cell_ids() const;
+  const std::vector<Identifier>& pmt_ids() const;
+  const std::vector<Identifier>& adc_ids() const;
+  
+
+  /** max values (-999 == failure) */
+  int eta_min(const Identifier& id) const;
+  int eta_max(const Identifier& id) const;
+  int region_eta_min(const Identifier& id) const;
+  int region_eta_max(const Identifier& id) const;
+  int phi_max(const Identifier& id) const;
+  
+  enum {NOT_VALID_HASH = 64000};
+
+  /** Construct identifiers with checking. */
+  bool        module_id (const Identifier& region_id,
+                         int module,
+                         Identifier& module_id ) const;
+  bool        tower_id  (const Identifier& region_id,
+                         int module, int tower,
+                         Identifier& tower_id ) const;
+  bool        cell_id   (const Identifier& region_id,
+                         int module, int tower, int sample,
+                         Identifier& cell_id ) const;
+  bool        pmt_id    (const Identifier& cell_id,
+                         int pmt,
+                         Identifier& pmt_id ) const;
+  bool        adc_id    (const Identifier& pmt_id,
+                         int adc,
+                         Identifier& adc_id ) const;
+  bool        adc_id    (const Identifier& cell_id,
+                         int pmt, int adc,
+                         Identifier& adc_id ) const;
+
+  /// Construct identifiers from ExpandedIdentifier's.
+  Identifier region_id (const ExpandedIdentifier& exp_id) const;
+  Identifier module_id (const ExpandedIdentifier& exp_id) const;
+  Identifier tower_id (const ExpandedIdentifier& exp_id) const;
+  Identifier cell_id (const ExpandedIdentifier& exp_id) const;
+  Identifier pmt_id (const ExpandedIdentifier& exp_id) const;
+  Identifier adc_id (const ExpandedIdentifier& exp_id) const;
+
+
+  /** access to hashes for neighbours      return == 0 for neighbours found 
+      option = prevInPhi, nextInPhi, prevInEta, nextInEta, ..., ..., all2D, prevInSamp, nextInSamp, ..., all3D
+
+               in 'nextInEta' next always means higher eta (i.e. smaller abs(eta) for negative eta)
+               in 'prevInEta' prev always means smaller eta
+               in 'nextInPhi' next always means higher phi (i.e. smaller abs(phi) for negative phi)
+               in 'prevInPhi' prev always means smaller phi
+               in 'nextInSamp', next means 'away from the centre of Atlas'
+               in 'prevInSamp', prev means 'towards   the centre of Atlas'
+	       all2D means PrevInEta and nextInEta for all cells obtained in prevInPhi and nextInPhi
+	       all3D means prevInSamp and nextInSamp for all cells obtained in all2D 
+      NOTA  neighbour is also returned across Barrel-ITC-Gap.Sin-Ext.Barrel boundaries */
+  int    get_neighbours(const IdentifierHash& id,
+                        const LArNeighbours::neighbourOption& option,
+                        std::vector<IdentifierHash>& neighbourList) const;
+
+
+private:
+
+  int decode_section (int section) const
+  {
+    return section >= SBARREL ? (section & SECTION_MASK) : section;
+  }
+
+  int encode_section (int section) const
+  {
+    return m_supercell ? (section | SUPERCELL_MASK) : section;
+  }
+
+  /** create expanded Identifier from Identifier (return == 0 for OK) */
+  virtual int  get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const;
+
+  /** unpack one field from Identifier */
+  int                   get_field               ( const Identifier & id,
+                                                  size_type index )             const;
+
+  int         initLevelsFromDict (const std::string& group_name) ;
+
+  int         init_hashes(void) ;
+
+  int eta_min(const Identifier& id, const IdContext& context) const;
+  int eta_max(const Identifier& id, const IdContext& context) const;
+
+  unsigned                      m_supercell;
+  
+  size_type                     m_tile_region_index;
+  size_type                     m_SYSTEM_INDEX;
+  size_type                     m_SECTION_INDEX;
+  size_type                     m_SIDE_INDEX;
+  size_type                     m_MODULE_INDEX;
+  size_type                     m_TOWER_INDEX;
+  size_type                     m_SAMPLE_INDEX;
+  size_type                     m_PMT_INDEX;
+  size_type                     m_ADC_INDEX;
+
+  IdDictFieldImplementation     m_system_impl;
+  IdDictFieldImplementation     m_section_impl;
+  IdDictFieldImplementation     m_side_impl;
+  IdDictFieldImplementation     m_module_impl;
+  IdDictFieldImplementation     m_tower_impl;
+  IdDictFieldImplementation     m_sample_impl;
+  IdDictFieldImplementation     m_pmt_impl;
+  IdDictFieldImplementation     m_adc_impl;
+  IdDictFieldImplementation     m_slar_impl;
+
+  MultiRange                    m_full_region_range;
+  MultiRange                    m_full_module_range;
+  MultiRange                    m_full_tower_range;
+  MultiRange                    m_full_cell_range;
+  MultiRange                    m_full_pmt_range;
+  MultiRange                    m_full_adc_range;
+
+  CaloIDHelper::HashGroup       m_modules;
+  CaloIDHelper::HashGroup       m_towers;
+  CaloIDHelper::HashGroup       m_pmts;
+  CaloIDHelper::HashGroup       m_adcs;
+
+  TileNeighbour                 m_neighbour;
+};
+
+
+#endif // not CALOIDENTIFIER_TILE_BASE_ID_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_SuperCell_ID.h b/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_SuperCell_ID.h
new file mode 100755
index 0000000000000000000000000000000000000000..245e9e8722672c73f38744d9967c8b2602a05ccc
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/Tile_SuperCell_ID.h
@@ -0,0 +1,81 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/Tile_SuperCell_ID.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Helper class for Tile offline identifiers for supercells
+ */
+
+
+#ifndef CALOIDENTIFIER_TILE_SUPERCELL_ID_H
+#define CALOIDENTIFIER_TILE_SUPERCELL_ID_H
+
+#include "AtlasDetDescr/AtlasDetectorID.h"
+// #include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictFieldImplementation.h"
+#include "CaloIdentifier/Tile_Base_ID.h"
+#include "CaloIdentifier/TileID_Exception.h"
+
+#include "CLIDSvc/CLASS_DEF.h"
+#include "SGTools/BaseInfo.h"
+
+#include "boost/range/iterator_range.hpp"
+#include <string>
+#include <vector>
+#include <set>
+
+/**
+* 
+* @class Tile_SuperCell_ID
+* @brief Helper class for Tile offline identifiers for supercells
+*
+* This class provides an interface to generate an identifier or  a range
+* for the Tile Calorimeter detector subsystem.
+*
+* Definition and the range of values for the elements of the identifier:
+* <pre>
+*
+*  element     range       meaning
+*  -------     -----       -------
+*
+*  section     1 to 2      section number  ( 1 = Barrel
+*                                            2 = Extended Barrel )
+*                           internally, these are stored as 5 and 6,
+*                           to distinguish the supercell case.
+*  side       -1 to 1      -1 = negative eta, 1 = positive eta, 0 = undefined (both sides) 
+*  module      0 to 63     module number by phi
+*  tower(eta)  0 to 15     0-15 = tower number by pseudorapidity with 0.1 increment in eta
+*                          Attention! in PhysTDR data last tower is 16
+*  sample      0 or 2      0 = sum over samplings, 2 = D only
+*
+* Total is 2752, of which 2048 are the tower sums and 704 are the 
+* D layer cells.  Note that the D layer cells both contribute to the
+* tower sums and are also represented separately.
+*
+* </pre>
+*/
+class Tile_SuperCell_ID : public Tile_Base_ID
+{
+public:
+
+  // default constructor
+  Tile_SuperCell_ID();
+
+  /** initialization from the identifier dictionary*/
+  virtual int  initialize_from_dictionary (const IdDictMgr& dict_mgr);
+};
+
+
+//using the macro below we can assign an identifier (and a version)
+//This is required and checked at compile time when you try to record/retrieve
+CLASS_DEF( Tile_SuperCell_ID, 49557789, 1 )
+SG_BASE (Tile_SuperCell_ID, Tile_Base_ID);
+
+#endif // CALOIDENTIFIER_TILE_SUPERCELL_ID_H
+
diff --git a/Calorimeter/CaloIdentifier/CaloIdentifier/selection.xml b/Calorimeter/CaloIdentifier/CaloIdentifier/selection.xml
new file mode 100755
index 0000000000000000000000000000000000000000..7bfb35e6409e04b3a5bae4e026a069880dc06f7a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/CaloIdentifier/selection.xml
@@ -0,0 +1,35 @@
+<lcgdict>
+
+  <class name="CaloCell_ID" />
+  <class name="CaloCell_Base_ID" />
+  <class name="CaloCell_SuperCell_ID" />
+  <class name="AtlasDetectorID" />
+  <class name="CaloDM_ID" />
+  <class name="CaloLVL1_ID" />
+  <class name="LArEM_ID" />
+  <class name="LArEM_Base_ID" />
+  <class name="LArEM_SuperCell_ID" />
+  <class name="LArFCAL_ID" />
+  <class name="LArFCAL_SuperCell_ID" />
+  <class name="LArFCAL_Base_ID" />
+  <class name="LArMiniFCAL_ID" />
+  <class name="LArHEC_ID" />
+  <class name="LArHEC_SuperCell_ID" />
+  <class name="LArHEC_Base_ID" />
+  <class name="TileID" />
+  <class name="Tile_SuperCell_ID" />
+  <class name="Tile_Base_ID" />
+  <class name="TTOnlineID" />
+  <class name="TileTBID" />
+  <class name="CaloIdManager" />
+  <class name="CaloIDHelper" />
+
+  <!-- should really be in DetDescrDictionary. -->
+  <class name="boost::iterator_range<std::vector<Identifier>::const_iterator>"/>
+  <class name="std::vector<Identifier>::const_iterator"/>
+  <function proto_pattern="*operator==*Identifier*"/>
+  <function proto_pattern="*operator!=*Identifier*"/>
+
+</lcgdict>
+
+
diff --git a/Calorimeter/CaloIdentifier/cmt/requirements b/Calorimeter/CaloIdentifier/cmt/requirements
new file mode 100755
index 0000000000000000000000000000000000000000..4dc943471bea70fd791b8511477d3747f1ed88cd
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/cmt/requirements
@@ -0,0 +1,64 @@
+package CaloIdentifier
+
+author Fabienne Ledroit <ledroit@lpsc.in2p3.fr>
+
+use AtlasPolicy      AtlasPolicy-* 
+use CLIDSvc          CLIDSvc-*           Control
+use SGTools          SGTools-*           Control
+use GaudiInterface   GaudiInterface-*    External
+use AtlasBoost       AtlasBoost-*        External
+use AtlasDetDescr    AtlasDetDescr-*     DetectorDescription
+use Identifier       Identifier-*        DetectorDescription
+use IdDict           IdDict-*            DetectorDescription
+
+use GaudiInterface   GaudiInterface-*    External
+
+use CaloGeoHelpers   CaloGeoHelpers-*    Calorimeter
+
+private
+use CxxUtils         CxxUtils-*          Control
+end_private
+
+library CaloIdentifier *.cxx
+apply_pattern installed_library
+
+apply_pattern declare_runtime_extras extras="SuperCaloNeighborsSuperCells-April2014.dat FCalSuperCells2DNeighborsNew-April2014.txt FCalSuperCells3DNeighborsPrevNew-April2014.txt FCalSuperCells3DNeighborsNextNew-April2014.txt TileSuperCellNeighbour.txt TileNeighbour.txt TileNeighbour_reduced.txt FCal2DNeighbors.txt FCal3DNeighborsPrev.txt FCal3DNeighborsNext.txt FCal2DNeighbors_H6.txt FCal3DNeighborsPrev_H6.txt FCal3DNeighborsNext_H6.txt SuperCaloNeighbours.dat SuperCaloNeighbours_H6.dat SuperCaloNeighbours_H8.dat FCal2DNeighbors-DC3-05-Comm-01.txt FCal3DNeighborsNext-DC3-05-Comm-01.txt FCal3DNeighborsPrev-DC3-05-Comm-01.txt SuperCaloNeighbours-DC3-05-Comm-01.dat FCal2DNeighbors-April2011.txt FCal3DNeighborsNext-April2011.txt FCal3DNeighborsPrev-April2011.txt SuperCaloNeighbours-April2011.dat"
+
+
+apply_pattern declare_python_modules files="*.py"
+
+
+private
+
+use IdDictParser   IdDictParser-*    DetectorDescription
+use StoreGate      StoreGate-*       Control
+use PathResolver   PathResolver-*    Tools
+
+application test_lar_id ../test/test_lar_id.cxx
+application test_calo_dm_id ../test/test_calo_dm_id.cxx
+application test_cell_id ../test/test_cell_id.cxx
+application test_lvl1_id ../test/test_lvl1_id.cxx
+macro_append test_lar_id_dependencies CaloIdentifier
+macro_append test_calo_dm_id_dependencies CaloIdentifier
+macro_append test_cell_id_dependencies CaloIdentifier
+macro_append test_lvl1_id_dependencies CaloIdentifier
+
+macro ep "mask/zero|Reading file|^AtlasDetectorID(Helper)?::"
+
+use TestTools      TestTools-*         AtlasTest 
+apply_pattern UnitTest_run unit_test=LArEM_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArEM_SuperCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArHEC_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArHEC_SuperCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArFCAL_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArFCAL_SuperCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=LArMiniFCAL_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=TileID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=Tile_SuperCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=CaloCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=CaloCell_SuperCell_ID extrapatterns="$(ep)"
+apply_pattern UnitTest_run unit_test=CaloIDHelper extrapatterns="$(ep)"
+
+# Make dict for idhelpers
+use AtlasReflex  AtlasReflex-* External -no_auto_imports
+apply_pattern lcgdict dict=CaloIdentifier selectionfile=selection.xml headerfiles="../CaloIdentifier/CaloIdentifierDict.h"
diff --git a/Calorimeter/CaloIdentifier/doc/mainpage.h b/Calorimeter/CaloIdentifier/doc/mainpage.h
new file mode 100644
index 0000000000000000000000000000000000000000..ea1e379c658c175af3856957889569e4e0b4ebff
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/doc/mainpage.h
@@ -0,0 +1,40 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/**
+
+@mainpage
+
+      There are two types of identifiers for the ATLAS calorimeters:<br>
+      offline identifiers (type= Identifier), and online identifiers (type= HWIdentifier). <br>
+ <br>
+      And there are two 'families' of identifiers: <br>
+      detector specific identifiers (for EM, HEC, FCAL and TILES) <br>
+      calorimeter-wide identifiers (for Trigger Towers, for Dead Material and for EM/HEC/FCAL/Tile wrapped together in CaloCell) <br>
+
+      All identifiers are decoded by specific classes called "Helpers", all deriving from base class AtlasDetectorID. <br>
+      The field content of the identifiers is described in xlm files called dictionaries which can be found in the data folder 
+      of the DetectorDescription/IdDictParser package.  <br>
+
+
+
+      The offline identifiers are decoded by the following helper classes:  LArEM_ID ,  LArHEC_ID ,  LArFCAL_ID ,  TileID
+      and CaloLVL1_ID , CaloDM_ID , CaloCell_ID of the present package. <br>
+      The corresponding dictionaries are IdDictLArCalorimeter_xxx.xml (LArEM_ID, LArHEC_ID, LArFCAL_ID), IdDictTileCalorimeter_yyy.xml (TileID), 
+      and IdDictCalorimeter_zzz.xml (CaloLVL1_ID, CaloDM_ID); there is no dictionary for CaloCell_ID. <br>
+
+      The online identifiers are decoded by the following helper classes (release 13 onwards): <br>
+      TTOnlineID of the present package <br>
+      LArOnlineID , LArReadoutModuleID of package LArCalorimeter/LArIdentifier <br>
+      and TileHWID of package TileCalorimeter/TileIdentifier. <br>
+      The corresponding dictionaries are IdDictLArCalorimeter_xxx.xml (LArOnline_ID,), IdDictTileCalorimeter_yyy.xml (TileHWID) 
+      and IdDictCalorimeter_zzz.xml (TTOnline_ID); there is no dictionary for LArReadoutModuleID. <br>
+      There are also identifiers/helpers for calibration lines and High Voltages, see package LArCalorimeter/LArIdentifier. <br>
+
+@htmlinclude used_packages.html
+
+@include requirements
+
+
+*/
diff --git a/Calorimeter/CaloIdentifier/python/SUBCALO.py b/Calorimeter/CaloIdentifier/python/SUBCALO.py
new file mode 100755
index 0000000000000000000000000000000000000000..388e0c471f01b0d7dfca8b48689f3017dcd58866
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/python/SUBCALO.py
@@ -0,0 +1,14 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+# python equivalent of the subcalo enum in 
+# Calorimeter/CaloIdentifier/CaloIdentifier/CaloCell_ID.h
+# to use it in a python script:
+# from CaloIdentifier import SUBCALO
+# print SUBCALO.LAREM to use it
+LAREM=0
+LARHEC=1
+LARFCAL=2
+TILE=3
+LARMINIFCAL = 4
+NSUBCALO=5
+NOT_VALID=999999
diff --git a/Calorimeter/CaloIdentifier/python/__init__.py b/Calorimeter/CaloIdentifier/python/__init__.py
new file mode 100755
index 0000000000000000000000000000000000000000..f215be4623e764a1bb5b768867f5c8a0ca1739f1
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/python/__init__.py
@@ -0,0 +1,9 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+# File: CaloIdentifier/python/__init__.py
+# Author: Wim Lavrijsen (WLavrijsen@lbl.gov)
+
+__version__ = '1.0.0'
+__author__  = 'David Rousseau (rousseau@lal.in2p3.fr) '
+
+
diff --git a/Calorimeter/CaloIdentifier/share/CaloCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/CaloCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..68880769bf02a94e167452983c8f11c78e419573
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/CaloCell_ID_test.ref
@@ -0,0 +1,271 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/1 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/2/0
+ channel range -> 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+ disconected region range -> 4/-1/-1,1/0/0 | 4/-1/-1,1/1/0 | 4/-1/-1,1/3/0 | 4/-1/-2,2/0/0 | 4/-1/-2,2/1/1 | 4/-1/-2,2/1/3 | 4/-1/-2,2/1/5 | 4/-1/-3,3/1/0 | 4/-1/-3,3/2/0
+ disconnected channel range -> 4/-1/-1,1/0/0/61:63/0:63 | 4/-1/-1,1/1/0/0/0:63 | 4/-1/-1,1/3/0/27/0:255 | 4/-1/-2,2/0/0/12:19/0:63 | 4/-1/-2,2/1/1/3:6/0:63 | 4/-1/-2,2/1/3/48:63/0:63 | 4/-1/-2,2/1/5/4:7/0:63 | 4/-1/-3,3/1/0/7/0:63 | 4/-1/-3,3/2/0/7/0:63
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/1/0 | 4/2/-2,2/2/0 | 4/2/-2,2/3/0 | 4/2/-2,2/0/1 | 4/2/-2,2/1/1 | 4/2/-2,2/2/1 | 4/2/-2,2/3/1
+ disconnected channel range -> 4/-2/-2,2/2/0/0/0:63 | 4/-2/-2,2/3/0/0:1/0:63 | 4/-2/-2,2/1/1/3/0:31 | 4/-2/-2,2/2/1/3/0:31
+ disconnected region range -> 4/-2/-2,2/2/0 | 4/-2/-2,2/3/0 | 4/-2/-2,2/1/1 | 4/-2/-2,2/2/1
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:62/0:15/0 | 4/3/-2,2/2/0:29/0,7,8,15/0 | 4/3/-2,2/2/0:30/3,4,11,12/0 | 4/3/-2,2/2/0:31/1,2,5,6,9,10,13,14/0 | 4/3/-2,2/3/0:14/2,10/0 | 4/3/-2,2/3/0:14/0,1,3,4,5,6,7,8,9,11,12,13,14,15/0 | 4/3/-2,2/3/15/0,1,2,3,4,6,7,8,9,10,11,12,14,15/0
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 4/-3/-2,2/1/63/0:15 | 4/-3/-2,2/2/30:31/0,7,8,15 | 4/-3/-2,2/2/31/3,4,11,12 | 4/-3/-2,2/3/15/5,13
+ disconnected module range -> 4/-3/-2,2/1 | 4/-3/-2,2/2 | 4/-3/-2,2/3
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+LArMiniFCAL_ID       INFO  initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/1 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/2/0
+ channel range -> 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+ disconected region range -> 4/-1/-1,1/0/0 | 4/-1/-1,1/1/0 | 4/-1/-1,1/3/0 | 4/-1/-2,2/0/0 | 4/-1/-2,2/1/1 | 4/-1/-2,2/1/3 | 4/-1/-2,2/1/5 | 4/-1/-3,3/1/0 | 4/-1/-3,3/2/0
+ disconnected channel range -> 4/-1/-1,1/0/0/61:63/0:63 | 4/-1/-1,1/1/0/0/0:63 | 4/-1/-1,1/3/0/27/0:255 | 4/-1/-2,2/0/0/12:19/0:63 | 4/-1/-2,2/1/1/3:6/0:63 | 4/-1/-2,2/1/3/48:63/0:63 | 4/-1/-2,2/1/5/4:7/0:63 | 4/-1/-3,3/1/0/7/0:63 | 4/-1/-3,3/2/0/7/0:63
+ LArEM_Base_ID::init_neighbors 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/1/0 | 4/2/-2,2/2/0 | 4/2/-2,2/3/0 | 4/2/-2,2/0/1 | 4/2/-2,2/1/1 | 4/2/-2,2/2/1 | 4/2/-2,2/3/1
+ disconnected channel range -> 4/-2/-2,2/2/0/0/0:63 | 4/-2/-2,2/3/0/0:1/0:63 | 4/-2/-2,2/1/1/3/0:31 | 4/-2/-2,2/2/1/3/0:31
+ disconnected region range -> 4/-2/-2,2/2/0 | 4/-2/-2,2/3/0 | 4/-2/-2,2/1/1 | 4/-2/-2,2/2/1
+ LArHEC_Base_ID::init_neighbors 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:62/0:15/0 | 4/3/-2,2/2/0:29/0,7,8,15/0 | 4/3/-2,2/2/0:30/3,4,11,12/0 | 4/3/-2,2/2/0:31/1,2,5,6,9,10,13,14/0 | 4/3/-2,2/3/0:14/2,10/0 | 4/3/-2,2/3/0:14/0,1,3,4,5,6,7,8,9,11,12,13,14,15/0 | 4/3/-2,2/3/15/0,1,2,3,4,6,7,8,9,10,11,12,14,15/0
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 4/-3/-2,2/1/63/0:15 | 4/-3/-2,2/2/30:31/0,7,8,15 | 4/-3/-2,2/2/31/3,4,11,12 | 4/-3/-2,2/3/15/5,13
+ disconnected module range -> 4/-3/-2,2/1 | 4/-3/-2,2/2 | 4/-3/-2,2/3
+LarFCal_Base_ID::init_neighbours 
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal2DNeighbors-DC3-05-Comm-01.txt
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt
+LarFCal_Base_ID::init_neighbours status: 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+LArMiniFCAL_ID       INFO  initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+TileNeighbour        INFO Reading file  /home/sss/atlas/supercell2/build/share/TileNeighbour_reduced.txt
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+test_cells
+[4.1.-3.1.0.0.0.0]
+======
+EM
+Sampling   Barrel   Outer wheel   Inner wheel
+0            7808          1536             0
+1           58752         27648           896
+2           29184         22528           896
+3           13824         10240             0
+Total      109568         61952          1792   Grand total: 173312
+
+======
+FCAL
+Sampling   Barrel   Outer wheel   Inner wheel
+0               0             0             0
+1               0          2016             0
+2               0          1000             0
+3               0           508             0
+Total           0          3524             0   Grand total:   3524
+
+======
+HEC
+Sampling   Barrel   Outer wheel   Inner wheel
+0               0          1536             0
+1               0          1472             0
+2               0          1344             0
+3               0          1280             0
+Total           0          5632             0   Grand total:   5632
+
+======
+Tile
+Side    Barrel   Extended Barrel   Gap     Ancillary
+0         1408      768               384       0   
+1         1472      768               384       0   
+Total     2880     1536               768       0   Grand total:   5184
+
+test_sample
+test_subcalo
+test_regions
+Region [4.1.-3.1.0.0.0.0] eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.-3.2.0.0.0.0] eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.-2.0.0.0.0.0] eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.0.0.0.0] eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.1.0.0.0] eta: 1.425000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.2.0.0.0] eta: 1.500000 0.003125 0  95 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.3.0.0.0] eta: 1.800000 0.004167 0  47 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.4.0.0.0] eta: 2.000000 0.006250 0  63 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.5.0.0.0] eta: 2.400000 0.025000 0   3 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.0.0.0.0] eta: 1.375000 0.050000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.-2.2.1.0.0.0] eta: 1.425000 0.025000 0  42 phi: 0.0 0.024544 0 255
+Region [4.1.-2.3.0.0.0.0] eta: 1.500000 0.050000 0  19 phi: 0.0 0.024544 0 255
+Region [4.1.-1.0.0.0.0.0] eta: 0.000000 0.025000 0  60 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.0.0.0]   eta: 0.003125 0.003125 1 447 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.1.0.0.0] eta: 1.400000 0.025000 0   2 phi: 0.0 0.024544 0 255
+Region [4.1.-1.2.0.0.0.0] eta: 0.000000 0.025000 0  55 phi: 0.0 0.024544 0 255
+Region [4.1.-1.2.1.0.0.0] eta: 1.400000 0.075000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.-1.3.0.0.0.0] eta: 0.000000 0.050000 0  26 phi: 0.0 0.024544 0 255
+Region [4.1.1.0.0.0.0.0]  eta: 0.000000 0.025000 0  60 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.0.0.0]    eta: 0.003125 0.003125 1 447 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.1.0.0.0]  eta: 1.400000 0.025000 0   2 phi: 0.0 0.024544 0 255
+Region [4.1.1.2.0.0.0.0]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.024544 0 255
+Region [4.1.1.2.1.0.0.0]  eta: 1.400000 0.075000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.1.3.0.0.0.0]  eta: 0.000000 0.050000 0  26 phi: 0.0 0.024544 0 255
+Region [4.1.2.0.0.0.0.0]  eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.0.0.0.0]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.1.0.0.0]  eta: 1.425000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.2.0.0.0]  eta: 1.500000 0.003125 0  95 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.3.0.0.0]  eta: 1.800000 0.004167 0  47 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.4.0.0.0]  eta: 2.000000 0.006250 0  63 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.5.0.0.0]  eta: 2.400000 0.025000 0   3 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.0.0.0.0]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.2.2.1.0.0.0]  eta: 1.425000 0.025000 0  42 phi: 0.0 0.024544 0 255
+Region [4.1.2.3.0.0.0.0]  eta: 1.500000 0.050000 0  19 phi: 0.0 0.024544 0 255
+Region [4.1.3.1.0.0.0.0]  eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.3.2.0.0.0.0]  eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.2.-2.0.0.0.0.0] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.0.1.0.0.0] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.-2.1.0.0.0.0] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.1.1.0.0.0] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.-2.2.0]       eta: 1.600000 0.100000 1   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.2.1.0.0.0] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.-2.3.0]       eta: 1.700000 0.100000 2   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.3.1.0.0.0] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.0.0.0.0.0]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.0.1.0.0.0]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.1.0.0.0.0]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.1.1.0.0.0]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.2.2.0]        eta: 1.600000 0.100000 1   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.2.1.0.0.0]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.2.3.0]        eta: 1.700000 0.100000 2   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.3.1.0.0.0]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.3.-2.1.0.0.0]   eta: 3.200000 0.025000 0  62 phi: 0.0 0.392699 0  15
+Region [4.3.-2.2.0.0.0]   eta: 3.200000 0.050000 0  31 phi: 0.0 0.392699 0  15
+Region [4.3.-2.3.0.0.0]   eta: 3.200000 0.100000 0  15 phi: 0.0 0.392699 0  15
+Region [4.3.2.1.0.0.0]    eta: 3.200000 0.025000 0  62 phi: 0.0 0.392699 0  15
+Region [4.3.2.2.0.0.0]    eta: 3.200000 0.050000 0  31 phi: 0.0 0.392699 0  15
+Region [4.3.2.3.0.0.0]    eta: 3.200000 0.100000 0  15 phi: 0.0 0.392699 0  15
+Region [5.1.-1.0.0.0.0.0] eta: 999999.000000 999999.000000 0   0 phi: 999999.0 999999.000000 999999  63
+Region [5.1.1.0.0.0.0.0]  eta: 999999.000000 999999.000000 0   0 phi: 999999.0 999999.000000 999999  63
+Region [5.2.-1.0]         eta: 999999.000000 999999.000000 10  15 phi: 999999.0 999999.000000 999999  63
+Region [5.2.1.0]          eta: 999999.000000 999999.000000 10  15 phi: 999999.0 999999.000000 999999  63
+Region [5.3.-1.0]         eta: 999999.000000 999999.000000 8  15 phi: 999999.0 999999.000000 999999  63
+Region [5.3.1.0]          eta: 999999.000000 999999.000000 8  15 phi: 999999.0 999999.000000 999999  63
+test_neighbours
+test_exceptions
+Exception 1: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks() result is not OK: ID, range = 4/1/99/0/0/0/0/0 , 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
diff --git a/Calorimeter/CaloIdentifier/share/CaloCell_SuperCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/CaloCell_SuperCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..2d9e18f6b07f7124f7890b273be83f9c57a70dd6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/CaloCell_SuperCell_ID_test.ref
@@ -0,0 +1,172 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/1/1 | 4/1/-3,3/2/0 | 4/1/-3,3/2/1
+ channel range -> 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
+ disconected region range -> 
+ disconnected channel range -> 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/1 | 4/2/-2,2/0/1/0:3/0:31/1
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/0/1
+ disconnected channel range -> 
+ disconnected region range -> 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:11/0:15/1 | 4/3/-2,2/2/0:7/0:15/1 | 4/3/-2,2/3/0:3/0:15/1
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 
+ disconnected module range -> 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+LArMiniFCAL_ID       INFO  initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+test_cells
+[4.1.-3.1.0.0.0.1]
+======
+EM
+Sampling   Barrel   Outer wheel   Inner wheel
+0            1920           384             0
+1            7552          5376           256
+2            7296          5632           256
+3            1792          1280             0
+Total       18560         12672           512   Grand total:  31744
+
+======
+FCAL
+Sampling   Barrel   Outer wheel   Inner wheel
+0               0             0             0
+1               0           384             0
+2               0           256             0
+3               0           128             0
+Total           0           768             0   Grand total:    768
+
+======
+HEC
+Sampling   Barrel   Outer wheel   Inner wheel
+0               0          1536             0
+1               0             0             0
+2               0             0             0
+3               0             0             0
+Total           0          1536             0   Grand total:   1536
+
+======
+Tile
+Side    Barrel   Extended Barrel   Gap     Ancillary
+0          768      576                 0       0   
+1          832      576                 0       0   
+Total     1600     1152                 0       0   Grand total:   2752
+
+test_sample
+test_subcalo
+test_regions
+Region [4.1.-3.1.0.0.0.1] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.-3.1.1.0.0.1] eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.-3.2.0.0.0.1] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.-3.2.1.0.0.1] eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.-2.0.0.0.0.1] eta: 1.500000 0.100000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.0.0.0.1] eta: 1.375000 0.125000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.2.0.0.1] eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.3.0.0.1] eta: 1.800000 0.016667 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.4.0.0.1] eta: 2.000000 0.025000 0  15 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.5.0.0.1] eta: 2.400000 0.100000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.0.0.0.1] eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.1.0.0.1] eta: 1.425000 0.025000 0  42 phi: 0.0 0.098175 0  63
+Region [4.1.-2.3.0.0.0.1] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.1.-1.0.0.0.0.1] eta: 0.000000 0.100000 0  14 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.0.0.0.1] eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.1.0.0.1] eta: 1.400000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-1.2.0.0.0.1] eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.-1.2.1.0.0.1] eta: 1.400000 0.075000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-1.3.0.0.0.1] eta: 0.000000 0.100000 0  13 phi: 0.0 0.098175 0  63
+Region [4.1.1.0.0.0.0.1]  eta: 0.000000 0.100000 0  14 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.0.0.0.1]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.1.0.0.1]  eta: 1.400000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.1.2.0.0.0.1]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.1.2.1.0.0.1]  eta: 1.400000 0.075000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.1.3.0.0.0.1]  eta: 0.000000 0.100000 0  13 phi: 0.0 0.098175 0  63
+Region [4.1.2.0.0.0.0.1]  eta: 1.500000 0.100000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.0.0.0.1]  eta: 1.375000 0.125000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.2.0.0.1]  eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.3.0.0.1]  eta: 1.800000 0.016667 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.4.0.0.1]  eta: 2.000000 0.025000 0  15 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.5.0.0.1]  eta: 2.400000 0.100000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.0.0.0.1]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.1.0.0.1]  eta: 1.425000 0.025000 0  42 phi: 0.0 0.098175 0  63
+Region [4.1.2.3.0.0.0.1]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.1.3.1.0.0.0.1]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.3.1.1.0.0.1]  eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.3.2.0.0.0.1]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.3.2.1.0.0.1]  eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.2.-2.0.0.0.0.1] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.0.1.0.0.1] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.0.0.0.0.1]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.0.1.0.0.1]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.3.-2.1.0.0.1]   eta: 3.200000 0.140000 0  11 phi: 0.0 0.392699 0  15
+Region [4.3.-2.2.0.0.1]   eta: 3.200000 0.160000 0   7 phi: 0.0 0.392699 0  15
+Region [4.3.-2.3.0.0.1]   eta: 3.200000 0.320000 0   3 phi: 0.0 0.392699 0  15
+Region [4.3.2.1.0.0.1]    eta: 3.200000 0.140000 0  11 phi: 0.0 0.392699 0  15
+Region [4.3.2.2.0.0.1]    eta: 3.200000 0.160000 0   7 phi: 0.0 0.392699 0  15
+Region [4.3.2.3.0.0.1]    eta: 3.200000 0.320000 0   3 phi: 0.0 0.392699 0  15
+Region [5.5.-1.0.0.0.0.0] eta: 999999.000000 999999.000000 0   0 phi: 999999.0 999999.000000 999999  63
+Region [5.5.1.0.0.0.0.0]  eta: 999999.000000 999999.000000 0   0 phi: 999999.0 999999.000000 999999  63
+Region [5.6.-1.0]         eta: 999999.000000 999999.000000 9  15 phi: 999999.0 999999.000000 999999  63
+Region [5.6.1.0]          eta: 999999.000000 999999.000000 9  15 phi: 999999.0 999999.000000 999999  63
+test_exceptions
+Exception 1: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks() result is not OK: ID, range = 4/1/99/0/0/0/0/1 , 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
diff --git a/Calorimeter/CaloIdentifier/share/CaloIDHelper_test.ref b/Calorimeter/CaloIdentifier/share/CaloIDHelper_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..a6c43c65a4250c7478a154d5613d9909815c362b
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/CaloIDHelper_test.ref
@@ -0,0 +1,19 @@
+test_hashgroup
+10
+CaloIDHelper::H...  ERROR helperinit_hashes  duplicated id for channel id. nids= 9 compact Id  Unable to decode id
+CaloIDHelper        ERROR helper. set size 9 not equal to hash max 10
+test_helper
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+100 0 0 0.025 0.0981748
+110 0.003125 0 0.003125 0.0981748
+120 0 0 0.025 0.0245437
+130 0 0 0.05 0.0245437
+140 1.4 0 0.025 0.0245437
+150 0 0 0.025 0.0981748
+160 0.003125 0 0.003125 0.0981748
+170 0 0 0.025 0.0245437
+180 0 0 0.05 0.0245437
+190 1.4 0 0.025 0.0245437
diff --git a/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-April2011.txt b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-April2011.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c6ab268e4c4bbf046e1da57f1de7e3dac9e8ee45
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-April2011.txt
@@ -0,0 +1,3533 @@
+# 2D FCal Neighbors
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Apr 20 10:35:58 2011
+#
+# 2d neighbors are all touching neighbors including corners.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+#
+A1.00.00 A1.00.07 A1.00.12
+A1.00.01 A1.00.02 A1.00.10 A1.00.11 A1.15.02 A1.15.12
+A1.00.02 A1.00.01 A1.00.03 A1.00.06 A1.00.09 A1.00.10
+A1.00.03 A1.00.02 A1.00.05 A1.00.06 A1.00.14 A1.00.15
+A1.00.04 A1.00.05 A1.00.12 A1.00.13 A1.00.14
+A1.00.05 A1.00.03 A1.00.04 A1.00.13 A1.00.14
+A1.00.06 A1.00.02 A1.00.03 A1.00.09 A1.00.14 A1.00.15
+A1.00.07 A1.00.00 A1.00.08 A1.00.12 A1.00.17 A1.00.18 A1.01.13
+A1.00.08 A1.00.07 A1.00.17 A1.01.02 A1.01.13
+A1.00.09 A1.00.02 A1.00.06 A1.00.10 A1.00.15 A1.00.16
+A1.00.10 A1.00.01 A1.00.02 A1.00.09 A1.00.11 A1.00.15 A1.00.16
+A1.00.11 A1.00.01 A1.00.10 A1.00.16 A1.15.02 A1.15.12 A1.15.17
+A1.00.12 A1.00.00 A1.00.04 A1.00.07 A1.00.13 A1.00.17 A1.00.18 A1.00.19
+A1.00.13 A1.00.04 A1.00.05 A1.00.12 A1.00.14 A1.00.18 A1.00.19 A1.00.20
+A1.00.14 A1.00.03 A1.00.04 A1.00.05 A1.00.06 A1.00.13 A1.00.15 A1.00.19 A1.00.20 A1.00.21
+A1.00.15 A1.00.03 A1.00.06 A1.00.09 A1.00.10 A1.00.14 A1.00.16 A1.00.20 A1.00.21 A1.00.22
+A1.00.16 A1.00.09 A1.00.10 A1.00.11 A1.00.15 A1.00.21 A1.00.22 A1.15.12 A1.15.17 A1.15.23
+A1.00.17 A1.00.07 A1.00.08 A1.00.12 A1.00.18 A1.00.23 A1.01.13 A1.01.19 A1.01.21
+A1.00.18 A1.00.07 A1.00.12 A1.00.13 A1.00.17 A1.00.19 A1.00.23 A1.00.24 A1.01.21
+A1.00.19 A1.00.12 A1.00.13 A1.00.14 A1.00.18 A1.00.20 A1.00.23 A1.00.24 A1.00.25
+A1.00.20 A1.00.13 A1.00.14 A1.00.15 A1.00.19 A1.00.21 A1.00.24 A1.00.25 A1.00.26
+A1.00.21 A1.00.14 A1.00.15 A1.00.16 A1.00.20 A1.00.22 A1.00.25 A1.00.26 A1.00.27
+A1.00.22 A1.00.15 A1.00.16 A1.00.21 A1.00.26 A1.00.27 A1.15.17 A1.15.23 A1.15.28
+A1.00.23 A1.00.17 A1.00.18 A1.00.19 A1.00.24 A1.00.28 A1.00.29 A1.01.21 A1.01.26
+A1.00.24 A1.00.18 A1.00.19 A1.00.20 A1.00.23 A1.00.25 A1.00.28 A1.00.29 A1.00.30
+A1.00.25 A1.00.19 A1.00.20 A1.00.21 A1.00.24 A1.00.26 A1.00.29 A1.00.30 A1.00.31
+A1.00.26 A1.00.20 A1.00.21 A1.00.22 A1.00.25 A1.00.27 A1.00.30 A1.00.31 A1.00.32
+A1.00.27 A1.00.21 A1.00.22 A1.00.26 A1.00.31 A1.00.32 A1.15.23 A1.15.28 A1.15.33
+A1.00.28 A1.00.23 A1.00.24 A1.00.29 A1.00.33 A1.01.21 A1.01.26 A1.01.31 A1.01.33
+A1.00.29 A1.00.23 A1.00.24 A1.00.25 A1.00.28 A1.00.30 A1.00.33 A1.00.34 A1.01.33
+A1.00.30 A1.00.24 A1.00.25 A1.00.26 A1.00.29 A1.00.31 A1.00.33 A1.00.34 A1.00.35
+A1.00.31 A1.00.25 A1.00.26 A1.00.27 A1.00.30 A1.00.32 A1.00.34 A1.00.35 A1.00.36
+A1.00.32 A1.00.26 A1.00.27 A1.00.31 A1.00.35 A1.00.36 A1.15.28 A1.15.33 A1.15.37
+A1.00.33 A1.00.28 A1.00.29 A1.00.30 A1.00.34 A1.00.37 A1.00.38 A1.01.33 A1.01.38
+A1.00.34 A1.00.29 A1.00.30 A1.00.31 A1.00.33 A1.00.35 A1.00.37 A1.00.38 A1.00.39
+A1.00.35 A1.00.30 A1.00.31 A1.00.32 A1.00.34 A1.00.36 A1.00.38 A1.00.39 A1.00.40
+A1.00.36 A1.00.31 A1.00.32 A1.00.35 A1.00.39 A1.00.40 A1.15.33 A1.15.37 A1.15.41
+A1.00.37 A1.00.33 A1.00.34 A1.00.38 A1.00.41 A1.00.42 A1.01.33 A1.01.38 A1.01.41
+A1.00.38 A1.00.33 A1.00.34 A1.00.35 A1.00.37 A1.00.39 A1.00.41 A1.00.42 A1.00.43
+A1.00.39 A1.00.34 A1.00.35 A1.00.36 A1.00.38 A1.00.40 A1.00.42 A1.00.43 A1.00.44
+A1.00.40 A1.00.35 A1.00.36 A1.00.39 A1.00.43 A1.00.44 A1.15.37 A1.15.41 A1.15.45
+A1.00.41 A1.00.37 A1.00.38 A1.00.42 A1.00.45 A1.01.38 A1.01.41 A1.01.43 A1.01.45
+A1.00.42 A1.00.37 A1.00.38 A1.00.39 A1.00.41 A1.00.43 A1.00.45 A1.00.46 A1.01.45
+A1.00.43 A1.00.38 A1.00.39 A1.00.40 A1.00.42 A1.00.44 A1.00.45 A1.00.46 A1.00.47
+A1.00.44 A1.00.39 A1.00.40 A1.00.43 A1.00.46 A1.00.47 A1.15.41 A1.15.45 A1.15.48
+A1.00.45 A1.00.41 A1.00.42 A1.00.43 A1.00.46 A1.00.48 A1.00.49 A1.01.45 A1.01.47
+A1.00.46 A1.00.42 A1.00.43 A1.00.44 A1.00.45 A1.00.47 A1.00.48 A1.00.49 A1.00.50
+A1.00.47 A1.00.43 A1.00.44 A1.00.46 A1.00.49 A1.00.50 A1.15.45 A1.15.48 A1.15.51
+A1.00.48 A1.00.45 A1.00.46 A1.00.49 A1.00.51 A1.01.45 A1.01.47 A1.01.49 A1.01.50
+A1.00.49 A1.00.45 A1.00.46 A1.00.47 A1.00.48 A1.00.50 A1.00.51 A1.00.52 A1.01.50
+A1.00.50 A1.00.46 A1.00.47 A1.00.49 A1.00.51 A1.00.52 A1.15.48 A1.15.51 A1.15.53
+A1.00.51 A1.00.48 A1.00.49 A1.00.50 A1.00.52 A1.00.53 A1.00.54 A1.00.55 A1.01.50 A1.01.53
+A1.00.52 A1.00.49 A1.00.50 A1.00.51 A1.00.54 A1.00.55 A1.00.56 A1.15.51 A1.15.53 A1.15.56
+A1.00.53 A1.00.51 A1.00.54 A1.00.57 A1.01.50 A1.01.53 A1.01.55 A1.01.57
+A1.00.54 A1.00.51 A1.00.52 A1.00.53 A1.00.55 A1.00.57 A1.00.58 A1.01.57
+A1.00.55 A1.00.51 A1.00.52 A1.00.54 A1.00.56 A1.00.57 A1.00.58 A1.00.59
+A1.00.56 A1.00.52 A1.00.55 A1.00.58 A1.00.59 A1.15.53 A1.15.56 A1.15.59
+A1.00.57 A1.00.53 A1.00.54 A1.00.55 A1.00.58 A1.00.60 A1.00.61 A1.01.57 A1.01.59
+A1.00.58 A1.00.54 A1.00.55 A1.00.56 A1.00.57 A1.00.59 A1.00.60 A1.00.61 A1.00.62
+A1.00.59 A1.00.55 A1.00.56 A1.00.58 A1.00.61 A1.00.62 A1.15.56 A1.15.59 A1.15.62
+A1.00.60 A1.00.57 A1.00.58 A1.00.61 A1.01.57 A1.01.59 A1.01.62
+A1.00.61 A1.00.57 A1.00.58 A1.00.59 A1.00.60 A1.00.62 A1.01.62
+A1.00.62 A1.00.58 A1.00.59 A1.00.61 A1.15.59 A1.15.62
+A1.01.00 A1.01.04 A1.01.06 A1.01.08 A1.01.12
+A1.01.01 A1.01.03 A1.01.05 A1.01.11
+A1.01.02 A1.00.08 A1.01.05 A1.01.13
+A1.01.03 A1.01.01 A1.01.07 A1.01.09 A1.01.11
+A1.01.04 A1.01.00 A1.01.08 A1.01.10
+A1.01.05 A1.01.01 A1.01.02 A1.01.11 A1.01.13
+A1.01.06 A1.01.00 A1.01.12 A1.01.17 A1.02.06 A1.02.13
+A1.01.07 A1.01.03 A1.01.09 A1.01.10 A1.01.14
+A1.01.08 A1.01.00 A1.01.04 A1.01.10 A1.01.12 A1.01.15
+A1.01.09 A1.01.03 A1.01.07 A1.01.11 A1.01.14 A1.01.16
+A1.01.10 A1.01.04 A1.01.07 A1.01.08 A1.01.12 A1.01.14 A1.01.15 A1.01.18
+A1.01.11 A1.01.01 A1.01.03 A1.01.05 A1.01.09 A1.01.13 A1.01.14 A1.01.16 A1.01.19
+A1.01.12 A1.01.00 A1.01.06 A1.01.08 A1.01.10 A1.01.15 A1.01.17 A1.01.20 A1.02.13
+A1.01.13 A1.00.07 A1.00.08 A1.00.17 A1.01.02 A1.01.05 A1.01.11 A1.01.16 A1.01.19 A1.01.21
+A1.01.14 A1.01.07 A1.01.09 A1.01.10 A1.01.11 A1.01.15 A1.01.16 A1.01.18 A1.01.22
+A1.01.15 A1.01.08 A1.01.10 A1.01.12 A1.01.14 A1.01.17 A1.01.18 A1.01.20 A1.01.23
+A1.01.16 A1.01.09 A1.01.11 A1.01.13 A1.01.14 A1.01.18 A1.01.19 A1.01.22 A1.01.24
+A1.01.17 A1.01.06 A1.01.12 A1.01.15 A1.01.20 A1.01.25 A1.02.13 A1.02.17 A1.02.21
+A1.01.18 A1.01.10 A1.01.14 A1.01.15 A1.01.16 A1.01.20 A1.01.22 A1.01.23 A1.01.27
+A1.01.19 A1.00.17 A1.01.11 A1.01.13 A1.01.16 A1.01.21 A1.01.22 A1.01.24 A1.01.26
+A1.01.20 A1.01.12 A1.01.15 A1.01.17 A1.01.18 A1.01.23 A1.01.25 A1.01.28 A1.02.21
+A1.01.21 A1.00.17 A1.00.18 A1.00.23 A1.00.28 A1.01.13 A1.01.19 A1.01.24 A1.01.26
+A1.01.22 A1.01.14 A1.01.16 A1.01.18 A1.01.19 A1.01.23 A1.01.24 A1.01.27 A1.01.29
+A1.01.23 A1.01.15 A1.01.18 A1.01.20 A1.01.22 A1.01.25 A1.01.27 A1.01.28 A1.01.30
+A1.01.24 A1.01.16 A1.01.19 A1.01.21 A1.01.22 A1.01.26 A1.01.27 A1.01.29 A1.01.31
+A1.01.25 A1.01.17 A1.01.20 A1.01.23 A1.01.28 A1.01.32 A1.02.21 A1.02.24 A1.02.28
+A1.01.26 A1.00.23 A1.00.28 A1.01.19 A1.01.21 A1.01.24 A1.01.29 A1.01.31 A1.01.33
+A1.01.27 A1.01.18 A1.01.22 A1.01.23 A1.01.24 A1.01.28 A1.01.29 A1.01.30 A1.01.34
+A1.01.28 A1.01.20 A1.01.23 A1.01.25 A1.01.27 A1.01.30 A1.01.32 A1.01.35 A1.02.28
+A1.01.29 A1.01.22 A1.01.24 A1.01.26 A1.01.27 A1.01.30 A1.01.31 A1.01.34 A1.01.36
+A1.01.30 A1.01.23 A1.01.27 A1.01.28 A1.01.29 A1.01.32 A1.01.34 A1.01.35 A1.01.37
+A1.01.31 A1.00.28 A1.01.24 A1.01.26 A1.01.29 A1.01.33 A1.01.34 A1.01.36 A1.01.38
+A1.01.32 A1.01.25 A1.01.28 A1.01.30 A1.01.35 A1.02.28 A1.02.31 A1.02.34 A1.02.37
+A1.01.33 A1.00.28 A1.00.29 A1.00.33 A1.00.37 A1.01.26 A1.01.31 A1.01.36 A1.01.38
+A1.01.34 A1.01.27 A1.01.29 A1.01.30 A1.01.31 A1.01.35 A1.01.36 A1.01.37 A1.01.39
+A1.01.35 A1.01.28 A1.01.30 A1.01.32 A1.01.34 A1.01.37 A1.01.40 A1.02.34 A1.02.37
+A1.01.36 A1.01.29 A1.01.31 A1.01.33 A1.01.34 A1.01.37 A1.01.38 A1.01.39 A1.01.41
+A1.01.37 A1.01.30 A1.01.34 A1.01.35 A1.01.36 A1.01.39 A1.01.40 A1.01.42 A1.02.37
+A1.01.38 A1.00.33 A1.00.37 A1.00.41 A1.01.31 A1.01.33 A1.01.36 A1.01.39 A1.01.41
+A1.01.39 A1.01.34 A1.01.36 A1.01.37 A1.01.38 A1.01.40 A1.01.41 A1.01.42 A1.01.43
+A1.01.40 A1.01.35 A1.01.37 A1.01.39 A1.01.42 A1.01.44 A1.02.37 A1.02.40 A1.02.43
+A1.01.41 A1.00.37 A1.00.41 A1.01.36 A1.01.38 A1.01.39 A1.01.42 A1.01.43 A1.01.45
+A1.01.42 A1.01.37 A1.01.39 A1.01.40 A1.01.41 A1.01.43 A1.01.44 A1.01.46 A1.02.43
+A1.01.43 A1.00.41 A1.01.39 A1.01.41 A1.01.42 A1.01.44 A1.01.45 A1.01.46 A1.01.47
+A1.01.44 A1.01.40 A1.01.42 A1.01.43 A1.01.46 A1.01.48 A1.02.43 A1.02.45 A1.02.47
+A1.01.45 A1.00.41 A1.00.42 A1.00.45 A1.00.48 A1.01.41 A1.01.43 A1.01.46 A1.01.47
+A1.01.46 A1.01.42 A1.01.43 A1.01.44 A1.01.45 A1.01.47 A1.01.48 A1.01.49 A1.02.47
+A1.01.47 A1.00.45 A1.00.48 A1.01.43 A1.01.45 A1.01.46 A1.01.48 A1.01.49 A1.01.50
+A1.01.48 A1.01.44 A1.01.46 A1.01.47 A1.01.49 A1.01.51 A1.02.47 A1.02.49 A1.02.51
+A1.01.49 A1.00.48 A1.01.46 A1.01.47 A1.01.48 A1.01.50 A1.01.51 A1.01.52 A1.02.51
+A1.01.50 A1.00.48 A1.00.49 A1.00.51 A1.00.53 A1.01.47 A1.01.49 A1.01.51 A1.01.52 A1.01.53
+A1.01.51 A1.01.48 A1.01.49 A1.01.50 A1.01.52 A1.01.54 A1.01.56 A1.02.51 A1.02.52 A1.02.53 A1.02.55
+A1.01.52 A1.01.49 A1.01.50 A1.01.51 A1.01.53 A1.01.54 A1.01.55
+A1.01.53 A1.00.51 A1.00.53 A1.01.50 A1.01.52 A1.01.54 A1.01.55 A1.01.57
+A1.01.54 A1.01.51 A1.01.52 A1.01.53 A1.01.55 A1.01.56 A1.01.58 A1.02.55
+A1.01.55 A1.00.53 A1.01.52 A1.01.53 A1.01.54 A1.01.56 A1.01.57 A1.01.58 A1.01.59
+A1.01.56 A1.01.51 A1.01.54 A1.01.55 A1.01.58 A1.01.60 A1.02.55 A1.02.57 A1.02.59
+A1.01.57 A1.00.53 A1.00.54 A1.00.57 A1.00.60 A1.01.53 A1.01.55 A1.01.58 A1.01.59
+A1.01.58 A1.01.54 A1.01.55 A1.01.56 A1.01.57 A1.01.59 A1.01.60 A1.01.61 A1.02.59
+A1.01.59 A1.00.57 A1.00.60 A1.01.55 A1.01.57 A1.01.58 A1.01.60 A1.01.61 A1.01.62
+A1.01.60 A1.01.56 A1.01.58 A1.01.59 A1.01.61 A1.02.59 A1.02.61
+A1.01.61 A1.01.58 A1.01.59 A1.01.60 A1.01.62 A1.02.59 A1.02.61
+A1.01.62 A1.00.60 A1.00.61 A1.01.59 A1.01.61
+A1.02.00 A1.02.03 A1.02.06
+A1.02.01 A1.02.02 A1.02.04 A1.02.10 A1.02.14
+A1.02.02 A1.02.01 A1.02.07 A1.02.10
+A1.02.03 A1.02.00 A1.02.06 A1.02.09 A1.02.12
+A1.02.04 A1.02.01 A1.02.05 A1.02.10 A1.02.14 A1.03.02
+A1.02.05 A1.02.04 A1.02.14 A1.03.02 A1.03.08
+A1.02.06 A1.01.06 A1.02.00 A1.02.03 A1.02.12 A1.02.13 A1.02.17
+A1.02.07 A1.02.02 A1.02.10 A1.02.11 A1.02.15
+A1.02.08 A1.02.09 A1.02.11
+A1.02.09 A1.02.03 A1.02.08 A1.02.11 A1.02.12 A1.02.16
+A1.02.10 A1.02.01 A1.02.02 A1.02.04 A1.02.07 A1.02.11 A1.02.14 A1.02.15 A1.02.18
+A1.02.11 A1.02.07 A1.02.08 A1.02.09 A1.02.10 A1.02.12 A1.02.15 A1.02.16 A1.02.19
+A1.02.12 A1.02.03 A1.02.06 A1.02.09 A1.02.11 A1.02.13 A1.02.16 A1.02.17 A1.02.20
+A1.02.13 A1.01.06 A1.01.12 A1.01.17 A1.02.06 A1.02.12 A1.02.17 A1.02.21
+A1.02.14 A1.02.01 A1.02.04 A1.02.05 A1.02.10 A1.02.15 A1.02.18 A1.03.08 A1.03.10 A1.03.15 A1.03.20
+A1.02.15 A1.02.07 A1.02.10 A1.02.11 A1.02.14 A1.02.16 A1.02.18 A1.02.19 A1.02.22
+A1.02.16 A1.02.09 A1.02.11 A1.02.12 A1.02.15 A1.02.17 A1.02.19 A1.02.20 A1.02.23
+A1.02.17 A1.01.17 A1.02.06 A1.02.12 A1.02.13 A1.02.16 A1.02.20 A1.02.21 A1.02.24
+A1.02.18 A1.02.10 A1.02.14 A1.02.15 A1.02.19 A1.02.22 A1.02.25 A1.03.15 A1.03.20
+A1.02.19 A1.02.11 A1.02.15 A1.02.16 A1.02.18 A1.02.20 A1.02.22 A1.02.23 A1.02.26
+A1.02.20 A1.02.12 A1.02.16 A1.02.17 A1.02.19 A1.02.21 A1.02.23 A1.02.24 A1.02.27
+A1.02.21 A1.01.17 A1.01.20 A1.01.25 A1.02.13 A1.02.17 A1.02.20 A1.02.24 A1.02.28
+A1.02.22 A1.02.15 A1.02.18 A1.02.19 A1.02.23 A1.02.25 A1.02.26 A1.02.29 A1.03.20
+A1.02.23 A1.02.16 A1.02.19 A1.02.20 A1.02.22 A1.02.24 A1.02.26 A1.02.27 A1.02.30
+A1.02.24 A1.01.25 A1.02.17 A1.02.20 A1.02.21 A1.02.23 A1.02.27 A1.02.28 A1.02.31
+A1.02.25 A1.02.18 A1.02.22 A1.02.26 A1.02.29 A1.03.20 A1.03.21 A1.03.25 A1.03.29
+A1.02.26 A1.02.19 A1.02.22 A1.02.23 A1.02.25 A1.02.27 A1.02.29 A1.02.30 A1.02.32
+A1.02.27 A1.02.20 A1.02.23 A1.02.24 A1.02.26 A1.02.28 A1.02.30 A1.02.31 A1.02.33
+A1.02.28 A1.01.25 A1.01.28 A1.01.32 A1.02.21 A1.02.24 A1.02.27 A1.02.31 A1.02.34
+A1.02.29 A1.02.22 A1.02.25 A1.02.26 A1.02.30 A1.02.32 A1.03.25 A1.03.29 A1.03.33
+A1.02.30 A1.02.23 A1.02.26 A1.02.27 A1.02.29 A1.02.31 A1.02.32 A1.02.33 A1.02.35
+A1.02.31 A1.01.32 A1.02.24 A1.02.27 A1.02.28 A1.02.30 A1.02.33 A1.02.34 A1.02.36
+A1.02.32 A1.02.26 A1.02.29 A1.02.30 A1.02.33 A1.02.35 A1.02.38 A1.03.29 A1.03.33
+A1.02.33 A1.02.27 A1.02.30 A1.02.31 A1.02.32 A1.02.34 A1.02.35 A1.02.36 A1.02.39
+A1.02.34 A1.01.32 A1.01.35 A1.02.28 A1.02.31 A1.02.33 A1.02.36 A1.02.37 A1.02.40
+A1.02.35 A1.02.30 A1.02.32 A1.02.33 A1.02.36 A1.02.38 A1.02.39 A1.02.41 A1.03.33
+A1.02.36 A1.02.31 A1.02.33 A1.02.34 A1.02.35 A1.02.37 A1.02.39 A1.02.40 A1.02.42
+A1.02.37 A1.01.32 A1.01.35 A1.01.37 A1.01.40 A1.02.34 A1.02.36 A1.02.40 A1.02.43
+A1.02.38 A1.02.32 A1.02.35 A1.02.39 A1.02.41 A1.03.33 A1.03.34 A1.03.37 A1.03.40
+A1.02.39 A1.02.33 A1.02.35 A1.02.36 A1.02.38 A1.02.40 A1.02.41 A1.02.42 A1.02.44
+A1.02.40 A1.01.40 A1.02.34 A1.02.36 A1.02.37 A1.02.39 A1.02.42 A1.02.43 A1.02.45
+A1.02.41 A1.02.35 A1.02.38 A1.02.39 A1.02.42 A1.02.44 A1.03.37 A1.03.40 A1.03.43
+A1.02.42 A1.02.36 A1.02.39 A1.02.40 A1.02.41 A1.02.43 A1.02.44 A1.02.45 A1.02.46
+A1.02.43 A1.01.40 A1.01.42 A1.01.44 A1.02.37 A1.02.40 A1.02.42 A1.02.45 A1.02.47
+A1.02.44 A1.02.39 A1.02.41 A1.02.42 A1.02.45 A1.02.46 A1.02.48 A1.03.40 A1.03.43
+A1.02.45 A1.01.44 A1.02.40 A1.02.42 A1.02.43 A1.02.44 A1.02.46 A1.02.47 A1.02.49
+A1.02.46 A1.02.42 A1.02.44 A1.02.45 A1.02.47 A1.02.48 A1.02.49 A1.02.50 A1.03.43
+A1.02.47 A1.01.44 A1.01.46 A1.01.48 A1.02.43 A1.02.45 A1.02.46 A1.02.49 A1.02.51
+A1.02.48 A1.02.44 A1.02.46 A1.02.49 A1.02.50 A1.03.43 A1.03.44 A1.03.46 A1.03.48
+A1.02.49 A1.01.48 A1.02.45 A1.02.46 A1.02.47 A1.02.48 A1.02.50 A1.02.51 A1.02.52
+A1.02.50 A1.02.46 A1.02.48 A1.02.49 A1.02.51 A1.02.52 A1.03.46 A1.03.48 A1.03.50
+A1.02.51 A1.01.48 A1.01.49 A1.01.51 A1.02.47 A1.02.49 A1.02.50 A1.02.52 A1.02.53
+A1.02.52 A1.01.51 A1.02.49 A1.02.50 A1.02.51 A1.02.53 A1.02.54 A1.02.56 A1.03.48 A1.03.50 A1.03.54
+A1.02.53 A1.01.51 A1.02.51 A1.02.52 A1.02.54 A1.02.55 A1.02.57
+A1.02.54 A1.02.52 A1.02.53 A1.02.55 A1.02.56 A1.02.57 A1.02.58 A1.03.54
+A1.02.55 A1.01.51 A1.01.54 A1.01.56 A1.02.53 A1.02.54 A1.02.57 A1.02.59
+A1.02.56 A1.02.52 A1.02.54 A1.02.57 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.58
+A1.02.57 A1.01.56 A1.02.53 A1.02.54 A1.02.55 A1.02.56 A1.02.58 A1.02.59 A1.02.61
+A1.02.58 A1.02.54 A1.02.56 A1.02.57 A1.02.59 A1.02.60 A1.02.61 A1.02.62 A1.03.58
+A1.02.59 A1.01.56 A1.01.58 A1.01.60 A1.01.61 A1.02.55 A1.02.57 A1.02.58 A1.02.61
+A1.02.60 A1.02.56 A1.02.58 A1.02.61 A1.02.62 A1.03.58 A1.03.59 A1.03.61
+A1.02.61 A1.01.60 A1.01.61 A1.02.57 A1.02.58 A1.02.59 A1.02.60 A1.02.62
+A1.02.62 A1.02.58 A1.02.60 A1.02.61 A1.03.61
+A1.03.00 A1.03.05 A1.03.07 A1.04.00 A1.04.08
+A1.03.01 A1.03.02 A1.03.03 A1.03.10
+A1.03.02 A1.02.04 A1.02.05 A1.03.01 A1.03.08 A1.03.10
+A1.03.03 A1.03.01 A1.03.04 A1.03.10 A1.03.11
+A1.03.04 A1.03.03 A1.03.06 A1.03.11 A1.03.12
+A1.03.05 A1.03.00 A1.03.07 A1.03.09 A1.03.12 A1.03.13 A1.03.14
+A1.03.06 A1.03.04 A1.03.09 A1.03.11 A1.03.12
+A1.03.07 A1.03.00 A1.03.05 A1.03.13 A1.03.14 A1.04.00 A1.04.08 A1.04.14
+A1.03.08 A1.02.05 A1.02.14 A1.03.02 A1.03.10 A1.03.15
+A1.03.09 A1.03.05 A1.03.06 A1.03.12 A1.03.13
+A1.03.10 A1.02.14 A1.03.01 A1.03.02 A1.03.03 A1.03.08 A1.03.11 A1.03.15 A1.03.16
+A1.03.11 A1.03.03 A1.03.04 A1.03.06 A1.03.10 A1.03.12 A1.03.15 A1.03.16 A1.03.17
+A1.03.12 A1.03.04 A1.03.05 A1.03.06 A1.03.09 A1.03.11 A1.03.13 A1.03.16 A1.03.17 A1.03.18
+A1.03.13 A1.03.05 A1.03.07 A1.03.09 A1.03.12 A1.03.14 A1.03.17 A1.03.18 A1.03.19
+A1.03.14 A1.03.05 A1.03.07 A1.03.13 A1.03.18 A1.03.19 A1.04.08 A1.04.14 A1.04.19
+A1.03.15 A1.02.14 A1.02.18 A1.03.08 A1.03.10 A1.03.11 A1.03.16 A1.03.20 A1.03.21
+A1.03.16 A1.03.10 A1.03.11 A1.03.12 A1.03.15 A1.03.17 A1.03.20 A1.03.21 A1.03.22
+A1.03.17 A1.03.11 A1.03.12 A1.03.13 A1.03.16 A1.03.18 A1.03.21 A1.03.22 A1.03.23
+A1.03.18 A1.03.12 A1.03.13 A1.03.14 A1.03.17 A1.03.19 A1.03.22 A1.03.23 A1.03.24
+A1.03.19 A1.03.13 A1.03.14 A1.03.18 A1.03.23 A1.03.24 A1.04.14 A1.04.19 A1.04.24
+A1.03.20 A1.02.14 A1.02.18 A1.02.22 A1.02.25 A1.03.15 A1.03.16 A1.03.21 A1.03.25
+A1.03.21 A1.02.25 A1.03.15 A1.03.16 A1.03.17 A1.03.20 A1.03.22 A1.03.25 A1.03.26
+A1.03.22 A1.03.16 A1.03.17 A1.03.18 A1.03.21 A1.03.23 A1.03.25 A1.03.26 A1.03.27
+A1.03.23 A1.03.17 A1.03.18 A1.03.19 A1.03.22 A1.03.24 A1.03.26 A1.03.27 A1.03.28
+A1.03.24 A1.03.18 A1.03.19 A1.03.23 A1.03.27 A1.03.28 A1.04.19 A1.04.24 A1.04.28
+A1.03.25 A1.02.25 A1.02.29 A1.03.20 A1.03.21 A1.03.22 A1.03.26 A1.03.29 A1.03.30
+A1.03.26 A1.03.21 A1.03.22 A1.03.23 A1.03.25 A1.03.27 A1.03.29 A1.03.30 A1.03.31
+A1.03.27 A1.03.22 A1.03.23 A1.03.24 A1.03.26 A1.03.28 A1.03.30 A1.03.31 A1.03.32
+A1.03.28 A1.03.23 A1.03.24 A1.03.27 A1.03.31 A1.03.32 A1.04.24 A1.04.28 A1.04.32
+A1.03.29 A1.02.25 A1.02.29 A1.02.32 A1.03.25 A1.03.26 A1.03.30 A1.03.33 A1.03.34
+A1.03.30 A1.03.25 A1.03.26 A1.03.27 A1.03.29 A1.03.31 A1.03.33 A1.03.34 A1.03.35
+A1.03.31 A1.03.26 A1.03.27 A1.03.28 A1.03.30 A1.03.32 A1.03.34 A1.03.35 A1.03.36
+A1.03.32 A1.03.27 A1.03.28 A1.03.31 A1.03.35 A1.03.36 A1.04.28 A1.04.32 A1.04.36
+A1.03.33 A1.02.29 A1.02.32 A1.02.35 A1.02.38 A1.03.29 A1.03.30 A1.03.34 A1.03.37
+A1.03.34 A1.02.38 A1.03.29 A1.03.30 A1.03.31 A1.03.33 A1.03.35 A1.03.37 A1.03.38
+A1.03.35 A1.03.30 A1.03.31 A1.03.32 A1.03.34 A1.03.36 A1.03.37 A1.03.38 A1.03.39
+A1.03.36 A1.03.31 A1.03.32 A1.03.35 A1.03.38 A1.03.39 A1.04.32 A1.04.36 A1.04.39
+A1.03.37 A1.02.38 A1.02.41 A1.03.33 A1.03.34 A1.03.35 A1.03.38 A1.03.40 A1.03.41
+A1.03.38 A1.03.34 A1.03.35 A1.03.36 A1.03.37 A1.03.39 A1.03.40 A1.03.41 A1.03.42
+A1.03.39 A1.03.35 A1.03.36 A1.03.38 A1.03.41 A1.03.42 A1.04.36 A1.04.39 A1.04.42
+A1.03.40 A1.02.38 A1.02.41 A1.02.44 A1.03.37 A1.03.38 A1.03.41 A1.03.43 A1.03.44
+A1.03.41 A1.03.37 A1.03.38 A1.03.39 A1.03.40 A1.03.42 A1.03.43 A1.03.44 A1.03.45
+A1.03.42 A1.03.38 A1.03.39 A1.03.41 A1.03.44 A1.03.45 A1.04.39 A1.04.42 A1.04.45
+A1.03.43 A1.02.41 A1.02.44 A1.02.46 A1.02.48 A1.03.40 A1.03.41 A1.03.44 A1.03.46
+A1.03.44 A1.02.48 A1.03.40 A1.03.41 A1.03.42 A1.03.43 A1.03.45 A1.03.46 A1.03.47
+A1.03.45 A1.03.41 A1.03.42 A1.03.44 A1.03.46 A1.03.47 A1.04.42 A1.04.45 A1.04.47
+A1.03.46 A1.02.48 A1.02.50 A1.03.43 A1.03.44 A1.03.45 A1.03.47 A1.03.48 A1.03.49
+A1.03.47 A1.03.44 A1.03.45 A1.03.46 A1.03.48 A1.03.49 A1.04.45 A1.04.47 A1.04.49
+A1.03.48 A1.02.48 A1.02.50 A1.02.52 A1.03.46 A1.03.47 A1.03.49 A1.03.50 A1.03.51 A1.03.52
+A1.03.49 A1.03.46 A1.03.47 A1.03.48 A1.03.51 A1.03.52 A1.03.53 A1.04.47 A1.04.49 A1.04.53
+A1.03.50 A1.02.50 A1.02.52 A1.03.48 A1.03.51 A1.03.54 A1.03.55
+A1.03.51 A1.03.48 A1.03.49 A1.03.50 A1.03.52 A1.03.54 A1.03.55 A1.03.56
+A1.03.52 A1.03.48 A1.03.49 A1.03.51 A1.03.53 A1.03.55 A1.03.56 A1.03.57
+A1.03.53 A1.03.49 A1.03.52 A1.03.56 A1.03.57 A1.04.49 A1.04.53 A1.04.57
+A1.03.54 A1.02.52 A1.02.54 A1.02.56 A1.03.50 A1.03.51 A1.03.55 A1.03.58
+A1.03.55 A1.02.56 A1.03.50 A1.03.51 A1.03.52 A1.03.54 A1.03.56 A1.03.58 A1.03.59
+A1.03.56 A1.03.51 A1.03.52 A1.03.53 A1.03.55 A1.03.57 A1.03.58 A1.03.59 A1.03.60
+A1.03.57 A1.03.52 A1.03.53 A1.03.56 A1.03.59 A1.03.60 A1.04.53 A1.04.57 A1.04.60
+A1.03.58 A1.02.56 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.56 A1.03.59 A1.03.61
+A1.03.59 A1.02.60 A1.03.55 A1.03.56 A1.03.57 A1.03.58 A1.03.60 A1.03.61 A1.03.62
+A1.03.60 A1.03.56 A1.03.57 A1.03.59 A1.03.61 A1.03.62 A1.04.57 A1.04.60 A1.04.62
+A1.03.61 A1.02.60 A1.02.62 A1.03.58 A1.03.59 A1.03.60 A1.03.62
+A1.03.62 A1.03.59 A1.03.60 A1.03.61 A1.04.60 A1.04.62
+A1.04.00 A1.03.00 A1.03.07 A1.04.06 A1.04.08
+A1.04.01 A1.04.02 A1.04.04 A1.04.10
+A1.04.02 A1.04.01 A1.04.03 A1.04.10 A1.04.11
+A1.04.03 A1.04.02 A1.04.05 A1.04.10 A1.04.11
+A1.04.04 A1.04.01 A1.04.10 A1.04.15 A1.05.02 A1.05.09 A1.05.13
+A1.04.05 A1.04.03 A1.04.07 A1.04.11 A1.04.12
+A1.04.06 A1.04.00 A1.04.08 A1.04.09 A1.04.12 A1.04.13 A1.04.14
+A1.04.07 A1.04.05 A1.04.09 A1.04.11 A1.04.12
+A1.04.08 A1.03.00 A1.03.07 A1.03.14 A1.04.00 A1.04.06 A1.04.13 A1.04.14
+A1.04.09 A1.04.06 A1.04.07 A1.04.12 A1.04.13
+A1.04.10 A1.04.01 A1.04.02 A1.04.03 A1.04.04 A1.04.11 A1.04.15 A1.04.16 A1.05.13
+A1.04.11 A1.04.02 A1.04.03 A1.04.05 A1.04.07 A1.04.10 A1.04.12 A1.04.15 A1.04.16 A1.04.17
+A1.04.12 A1.04.05 A1.04.06 A1.04.07 A1.04.09 A1.04.11 A1.04.13 A1.04.16 A1.04.17 A1.04.18
+A1.04.13 A1.04.06 A1.04.08 A1.04.09 A1.04.12 A1.04.14 A1.04.17 A1.04.18 A1.04.19
+A1.04.14 A1.03.07 A1.03.14 A1.03.19 A1.04.06 A1.04.08 A1.04.13 A1.04.18 A1.04.19
+A1.04.15 A1.04.04 A1.04.10 A1.04.11 A1.04.16 A1.04.20 A1.04.21 A1.05.13 A1.05.17
+A1.04.16 A1.04.10 A1.04.11 A1.04.12 A1.04.15 A1.04.17 A1.04.20 A1.04.21 A1.04.22
+A1.04.17 A1.04.11 A1.04.12 A1.04.13 A1.04.16 A1.04.18 A1.04.21 A1.04.22 A1.04.23
+A1.04.18 A1.04.12 A1.04.13 A1.04.14 A1.04.17 A1.04.19 A1.04.22 A1.04.23 A1.04.24
+A1.04.19 A1.03.14 A1.03.19 A1.03.24 A1.04.13 A1.04.14 A1.04.18 A1.04.23 A1.04.24
+A1.04.20 A1.04.15 A1.04.16 A1.04.21 A1.04.25 A1.05.13 A1.05.17 A1.05.21 A1.05.24
+A1.04.21 A1.04.15 A1.04.16 A1.04.17 A1.04.20 A1.04.22 A1.04.25 A1.04.26 A1.05.24
+A1.04.22 A1.04.16 A1.04.17 A1.04.18 A1.04.21 A1.04.23 A1.04.25 A1.04.26 A1.04.27
+A1.04.23 A1.04.17 A1.04.18 A1.04.19 A1.04.22 A1.04.24 A1.04.26 A1.04.27 A1.04.28
+A1.04.24 A1.03.19 A1.03.24 A1.03.28 A1.04.18 A1.04.19 A1.04.23 A1.04.27 A1.04.28
+A1.04.25 A1.04.20 A1.04.21 A1.04.22 A1.04.26 A1.04.29 A1.04.30 A1.05.24 A1.05.28
+A1.04.26 A1.04.21 A1.04.22 A1.04.23 A1.04.25 A1.04.27 A1.04.29 A1.04.30 A1.04.31
+A1.04.27 A1.04.22 A1.04.23 A1.04.24 A1.04.26 A1.04.28 A1.04.30 A1.04.31 A1.04.32
+A1.04.28 A1.03.24 A1.03.28 A1.03.32 A1.04.23 A1.04.24 A1.04.27 A1.04.31 A1.04.32
+A1.04.29 A1.04.25 A1.04.26 A1.04.30 A1.04.33 A1.04.34 A1.05.24 A1.05.28 A1.05.31
+A1.04.30 A1.04.25 A1.04.26 A1.04.27 A1.04.29 A1.04.31 A1.04.33 A1.04.34 A1.04.35
+A1.04.31 A1.04.26 A1.04.27 A1.04.28 A1.04.30 A1.04.32 A1.04.34 A1.04.35 A1.04.36
+A1.04.32 A1.03.28 A1.03.32 A1.03.36 A1.04.27 A1.04.28 A1.04.31 A1.04.35 A1.04.36
+A1.04.33 A1.04.29 A1.04.30 A1.04.34 A1.04.37 A1.05.28 A1.05.31 A1.05.34 A1.05.37
+A1.04.34 A1.04.29 A1.04.30 A1.04.31 A1.04.33 A1.04.35 A1.04.37 A1.04.38 A1.05.37
+A1.04.35 A1.04.30 A1.04.31 A1.04.32 A1.04.34 A1.04.36 A1.04.37 A1.04.38 A1.04.39
+A1.04.36 A1.03.32 A1.03.36 A1.03.39 A1.04.31 A1.04.32 A1.04.35 A1.04.38 A1.04.39
+A1.04.37 A1.04.33 A1.04.34 A1.04.35 A1.04.38 A1.04.40 A1.04.41 A1.05.37 A1.05.40
+A1.04.38 A1.04.34 A1.04.35 A1.04.36 A1.04.37 A1.04.39 A1.04.40 A1.04.41 A1.04.42
+A1.04.39 A1.03.36 A1.03.39 A1.03.42 A1.04.35 A1.04.36 A1.04.38 A1.04.41 A1.04.42
+A1.04.40 A1.04.37 A1.04.38 A1.04.41 A1.04.43 A1.04.44 A1.05.37 A1.05.40 A1.05.43
+A1.04.41 A1.04.37 A1.04.38 A1.04.39 A1.04.40 A1.04.42 A1.04.43 A1.04.44 A1.04.45
+A1.04.42 A1.03.39 A1.03.42 A1.03.45 A1.04.38 A1.04.39 A1.04.41 A1.04.44 A1.04.45
+A1.04.43 A1.04.40 A1.04.41 A1.04.44 A1.04.46 A1.05.40 A1.05.43 A1.05.45 A1.05.47
+A1.04.44 A1.04.40 A1.04.41 A1.04.42 A1.04.43 A1.04.45 A1.04.46 A1.04.47 A1.05.47
+A1.04.45 A1.03.42 A1.03.45 A1.03.47 A1.04.41 A1.04.42 A1.04.44 A1.04.46 A1.04.47
+A1.04.46 A1.04.43 A1.04.44 A1.04.45 A1.04.47 A1.04.48 A1.04.49 A1.05.47 A1.05.49
+A1.04.47 A1.03.45 A1.03.47 A1.03.49 A1.04.44 A1.04.45 A1.04.46 A1.04.48 A1.04.49
+A1.04.48 A1.04.46 A1.04.47 A1.04.49 A1.04.50 A1.04.51 A1.04.52 A1.05.47 A1.05.49 A1.05.51
+A1.04.49 A1.03.47 A1.03.49 A1.03.53 A1.04.46 A1.04.47 A1.04.48 A1.04.51 A1.04.52 A1.04.53
+A1.04.50 A1.04.48 A1.04.51 A1.04.54 A1.04.55 A1.05.49 A1.05.51
+A1.04.51 A1.04.48 A1.04.49 A1.04.50 A1.04.52 A1.04.54 A1.04.55 A1.04.56
+A1.04.52 A1.04.48 A1.04.49 A1.04.51 A1.04.53 A1.04.55 A1.04.56 A1.04.57
+A1.04.53 A1.03.49 A1.03.53 A1.03.57 A1.04.49 A1.04.52 A1.04.56 A1.04.57
+A1.04.54 A1.04.50 A1.04.51 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.55
+A1.04.55 A1.04.50 A1.04.51 A1.04.52 A1.04.54 A1.04.56 A1.04.58 A1.04.59 A1.05.55
+A1.04.56 A1.04.51 A1.04.52 A1.04.53 A1.04.55 A1.04.57 A1.04.58 A1.04.59 A1.04.60
+A1.04.57 A1.03.53 A1.03.57 A1.03.60 A1.04.52 A1.04.53 A1.04.56 A1.04.59 A1.04.60
+A1.04.58 A1.04.54 A1.04.55 A1.04.56 A1.04.59 A1.04.61 A1.05.55 A1.05.57 A1.05.59
+A1.04.59 A1.04.55 A1.04.56 A1.04.57 A1.04.58 A1.04.60 A1.04.61 A1.04.62 A1.05.59
+A1.04.60 A1.03.57 A1.03.60 A1.03.62 A1.04.56 A1.04.57 A1.04.59 A1.04.61 A1.04.62
+A1.04.61 A1.04.58 A1.04.59 A1.04.60 A1.04.62 A1.05.59 A1.05.62
+A1.04.62 A1.03.60 A1.03.62 A1.04.59 A1.04.60 A1.04.61 A1.05.62
+A1.05.00 A1.05.02 A1.05.05 A1.05.09
+A1.05.01 A1.05.03 A1.05.06 A1.05.12
+A1.05.02 A1.04.04 A1.05.00 A1.05.09 A1.05.13
+A1.05.03 A1.05.01 A1.05.06 A1.05.07 A1.05.08 A1.05.12
+A1.05.04 A1.05.05 A1.05.07 A1.05.10
+A1.05.05 A1.05.00 A1.05.04 A1.05.09 A1.05.10 A1.05.14
+A1.05.06 A1.05.01 A1.05.03 A1.05.11 A1.05.12 A1.05.16 A1.06.06
+A1.05.07 A1.05.03 A1.05.04 A1.05.08 A1.05.10
+A1.05.08 A1.05.03 A1.05.07 A1.05.10 A1.05.12 A1.05.15
+A1.05.09 A1.04.04 A1.05.00 A1.05.02 A1.05.05 A1.05.10 A1.05.13 A1.05.14 A1.05.17
+A1.05.10 A1.05.04 A1.05.05 A1.05.07 A1.05.08 A1.05.09 A1.05.12 A1.05.14 A1.05.15 A1.05.18
+A1.05.11 A1.05.06 A1.05.12 A1.05.16 A1.05.20 A1.06.06 A1.06.12 A1.06.17
+A1.05.12 A1.05.01 A1.05.03 A1.05.06 A1.05.08 A1.05.10 A1.05.11 A1.05.15 A1.05.16 A1.05.19
+A1.05.13 A1.04.04 A1.04.10 A1.04.15 A1.04.20 A1.05.02 A1.05.09 A1.05.14 A1.05.17
+A1.05.14 A1.05.05 A1.05.09 A1.05.10 A1.05.13 A1.05.15 A1.05.17 A1.05.18 A1.05.21
+A1.05.15 A1.05.08 A1.05.10 A1.05.12 A1.05.14 A1.05.16 A1.05.18 A1.05.19 A1.05.22
+A1.05.16 A1.05.06 A1.05.11 A1.05.12 A1.05.15 A1.05.19 A1.05.20 A1.05.23 A1.06.17
+A1.05.17 A1.04.15 A1.04.20 A1.05.09 A1.05.13 A1.05.14 A1.05.18 A1.05.21 A1.05.24
+A1.05.18 A1.05.10 A1.05.14 A1.05.15 A1.05.17 A1.05.19 A1.05.21 A1.05.22 A1.05.25
+A1.05.19 A1.05.12 A1.05.15 A1.05.16 A1.05.18 A1.05.20 A1.05.22 A1.05.23 A1.05.26
+A1.05.20 A1.05.11 A1.05.16 A1.05.19 A1.05.23 A1.05.27 A1.06.17 A1.06.20 A1.06.25
+A1.05.21 A1.04.20 A1.05.14 A1.05.17 A1.05.18 A1.05.22 A1.05.24 A1.05.25 A1.05.28
+A1.05.22 A1.05.15 A1.05.18 A1.05.19 A1.05.21 A1.05.23 A1.05.25 A1.05.26 A1.05.29
+A1.05.23 A1.05.16 A1.05.19 A1.05.20 A1.05.22 A1.05.26 A1.05.27 A1.05.30 A1.06.25
+A1.05.24 A1.04.20 A1.04.21 A1.04.25 A1.04.29 A1.05.17 A1.05.21 A1.05.25 A1.05.28
+A1.05.25 A1.05.18 A1.05.21 A1.05.22 A1.05.24 A1.05.26 A1.05.28 A1.05.29 A1.05.31
+A1.05.26 A1.05.19 A1.05.22 A1.05.23 A1.05.25 A1.05.27 A1.05.29 A1.05.30 A1.05.32
+A1.05.27 A1.05.20 A1.05.23 A1.05.26 A1.05.30 A1.05.33 A1.06.25 A1.06.28 A1.06.32
+A1.05.28 A1.04.25 A1.04.29 A1.04.33 A1.05.21 A1.05.24 A1.05.25 A1.05.29 A1.05.31
+A1.05.29 A1.05.22 A1.05.25 A1.05.26 A1.05.28 A1.05.30 A1.05.31 A1.05.32 A1.05.34
+A1.05.30 A1.05.23 A1.05.26 A1.05.27 A1.05.29 A1.05.32 A1.05.33 A1.05.36 A1.06.32
+A1.05.31 A1.04.29 A1.04.33 A1.05.25 A1.05.28 A1.05.29 A1.05.32 A1.05.34 A1.05.37
+A1.05.32 A1.05.26 A1.05.29 A1.05.30 A1.05.31 A1.05.33 A1.05.34 A1.05.36 A1.05.38
+A1.05.33 A1.05.27 A1.05.30 A1.05.32 A1.05.35 A1.05.36 A1.05.39 A1.06.32 A1.06.35
+A1.05.34 A1.04.33 A1.05.29 A1.05.31 A1.05.32 A1.05.36 A1.05.37 A1.05.38 A1.05.40
+A1.05.35 A1.05.33 A1.05.36 A1.05.39 A1.05.42 A1.06.32 A1.06.35 A1.06.37 A1.06.40
+A1.05.36 A1.05.30 A1.05.32 A1.05.33 A1.05.34 A1.05.35 A1.05.38 A1.05.39 A1.05.41
+A1.05.37 A1.04.33 A1.04.34 A1.04.37 A1.04.40 A1.05.31 A1.05.34 A1.05.38 A1.05.40
+A1.05.38 A1.05.32 A1.05.34 A1.05.36 A1.05.37 A1.05.39 A1.05.40 A1.05.41 A1.05.43
+A1.05.39 A1.05.33 A1.05.35 A1.05.36 A1.05.38 A1.05.41 A1.05.42 A1.05.44 A1.06.40
+A1.05.40 A1.04.37 A1.04.40 A1.04.43 A1.05.34 A1.05.37 A1.05.38 A1.05.41 A1.05.43
+A1.05.41 A1.05.36 A1.05.38 A1.05.39 A1.05.40 A1.05.42 A1.05.43 A1.05.44 A1.05.45
+A1.05.42 A1.05.35 A1.05.39 A1.05.41 A1.05.44 A1.05.46 A1.06.40 A1.06.42 A1.06.44
+A1.05.43 A1.04.40 A1.04.43 A1.05.38 A1.05.40 A1.05.41 A1.05.44 A1.05.45 A1.05.47
+A1.05.44 A1.05.39 A1.05.41 A1.05.42 A1.05.43 A1.05.45 A1.05.46 A1.05.48 A1.06.44
+A1.05.45 A1.04.43 A1.05.41 A1.05.43 A1.05.44 A1.05.46 A1.05.47 A1.05.48 A1.05.49
+A1.05.46 A1.05.42 A1.05.44 A1.05.45 A1.05.48 A1.05.50 A1.06.44 A1.06.46 A1.06.48
+A1.05.47 A1.04.43 A1.04.44 A1.04.46 A1.04.48 A1.05.43 A1.05.45 A1.05.48 A1.05.49
+A1.05.48 A1.05.44 A1.05.45 A1.05.46 A1.05.47 A1.05.49 A1.05.50 A1.05.51 A1.06.48
+A1.05.49 A1.04.46 A1.04.48 A1.04.50 A1.05.45 A1.05.47 A1.05.48 A1.05.50 A1.05.51
+A1.05.50 A1.05.46 A1.05.48 A1.05.49 A1.05.51 A1.05.52 A1.06.48 A1.06.49 A1.06.51
+A1.05.51 A1.04.48 A1.04.50 A1.04.54 A1.05.48 A1.05.49 A1.05.50 A1.05.52 A1.05.53 A1.05.55 A1.06.51
+A1.05.52 A1.05.50 A1.05.51 A1.05.53 A1.05.54 A1.05.56 A1.06.51
+A1.05.53 A1.04.54 A1.05.51 A1.05.52 A1.05.54 A1.05.55 A1.05.56 A1.05.57
+A1.05.54 A1.05.52 A1.05.53 A1.05.56 A1.05.58 A1.06.51 A1.06.55 A1.06.57
+A1.05.55 A1.04.54 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.56 A1.05.57 A1.05.59
+A1.05.56 A1.05.52 A1.05.53 A1.05.54 A1.05.55 A1.05.57 A1.05.58 A1.05.60 A1.06.57
+A1.05.57 A1.04.58 A1.05.53 A1.05.55 A1.05.56 A1.05.58 A1.05.59 A1.05.60
+A1.05.58 A1.05.54 A1.05.56 A1.05.57 A1.05.60 A1.05.61 A1.06.57 A1.06.59 A1.06.61
+A1.05.59 A1.04.58 A1.04.59 A1.04.61 A1.05.55 A1.05.57 A1.05.60 A1.05.62
+A1.05.60 A1.05.56 A1.05.57 A1.05.58 A1.05.59 A1.05.61 A1.05.62 A1.06.61
+A1.05.61 A1.05.58 A1.05.60 A1.05.62 A1.06.61 A1.06.62
+A1.05.62 A1.04.61 A1.04.62 A1.05.59 A1.05.60 A1.05.61
+A1.06.00 A1.06.02 A1.06.03 A1.06.11
+A1.06.01 A1.06.04 A1.06.06 A1.06.08 A1.06.12
+A1.06.02 A1.06.00 A1.06.05 A1.06.11 A1.06.13
+A1.06.03 A1.06.00 A1.06.07 A1.06.09 A1.06.11
+A1.06.04 A1.06.01 A1.06.08 A1.06.10
+A1.06.05 A1.06.02 A1.06.11 A1.06.13 A1.07.00 A1.07.08
+A1.06.06 A1.05.06 A1.05.11 A1.06.01 A1.06.12 A1.06.17
+A1.06.07 A1.06.03 A1.06.09 A1.06.10 A1.06.14
+A1.06.08 A1.06.01 A1.06.04 A1.06.10 A1.06.12 A1.06.15
+A1.06.09 A1.06.03 A1.06.07 A1.06.11 A1.06.14 A1.06.16
+A1.06.10 A1.06.04 A1.06.07 A1.06.08 A1.06.12 A1.06.14 A1.06.15 A1.06.18
+A1.06.11 A1.06.00 A1.06.02 A1.06.03 A1.06.05 A1.06.09 A1.06.13 A1.06.14 A1.06.16 A1.06.19
+A1.06.12 A1.05.11 A1.06.01 A1.06.06 A1.06.08 A1.06.10 A1.06.15 A1.06.17 A1.06.20
+A1.06.13 A1.06.02 A1.06.05 A1.06.11 A1.06.16 A1.06.19 A1.06.21 A1.07.07 A1.07.08 A1.07.18
+A1.06.14 A1.06.07 A1.06.09 A1.06.10 A1.06.11 A1.06.15 A1.06.16 A1.06.18 A1.06.22
+A1.06.15 A1.06.08 A1.06.10 A1.06.12 A1.06.14 A1.06.17 A1.06.18 A1.06.20 A1.06.23
+A1.06.16 A1.06.09 A1.06.11 A1.06.13 A1.06.14 A1.06.18 A1.06.19 A1.06.22 A1.06.24
+A1.06.17 A1.05.11 A1.05.16 A1.05.20 A1.06.06 A1.06.12 A1.06.15 A1.06.20 A1.06.25
+A1.06.18 A1.06.10 A1.06.14 A1.06.15 A1.06.16 A1.06.20 A1.06.22 A1.06.23 A1.06.27
+A1.06.19 A1.06.11 A1.06.13 A1.06.16 A1.06.21 A1.06.22 A1.06.24 A1.06.26 A1.07.18
+A1.06.20 A1.05.20 A1.06.12 A1.06.15 A1.06.17 A1.06.18 A1.06.23 A1.06.25 A1.06.28
+A1.06.21 A1.06.13 A1.06.19 A1.06.24 A1.06.26 A1.07.18 A1.07.19 A1.07.24 A1.07.29
+A1.06.22 A1.06.14 A1.06.16 A1.06.18 A1.06.19 A1.06.23 A1.06.24 A1.06.27 A1.06.29
+A1.06.23 A1.06.15 A1.06.18 A1.06.20 A1.06.22 A1.06.25 A1.06.27 A1.06.28 A1.06.30
+A1.06.24 A1.06.16 A1.06.19 A1.06.21 A1.06.22 A1.06.26 A1.06.27 A1.06.29 A1.06.31
+A1.06.25 A1.05.20 A1.05.23 A1.05.27 A1.06.17 A1.06.20 A1.06.23 A1.06.28 A1.06.32
+A1.06.26 A1.06.19 A1.06.21 A1.06.24 A1.06.29 A1.06.31 A1.06.33 A1.07.24 A1.07.29
+A1.06.27 A1.06.18 A1.06.22 A1.06.23 A1.06.24 A1.06.28 A1.06.29 A1.06.30 A1.06.34
+A1.06.28 A1.05.27 A1.06.20 A1.06.23 A1.06.25 A1.06.27 A1.06.30 A1.06.32 A1.06.35
+A1.06.29 A1.06.22 A1.06.24 A1.06.26 A1.06.27 A1.06.30 A1.06.31 A1.06.34 A1.06.36
+A1.06.30 A1.06.23 A1.06.27 A1.06.28 A1.06.29 A1.06.32 A1.06.34 A1.06.35 A1.06.37
+A1.06.31 A1.06.24 A1.06.26 A1.06.29 A1.06.33 A1.06.34 A1.06.36 A1.06.38 A1.07.29
+A1.06.32 A1.05.27 A1.05.30 A1.05.33 A1.05.35 A1.06.25 A1.06.28 A1.06.30 A1.06.35
+A1.06.33 A1.06.26 A1.06.31 A1.06.36 A1.06.38 A1.07.29 A1.07.30 A1.07.34 A1.07.38
+A1.06.34 A1.06.27 A1.06.29 A1.06.30 A1.06.31 A1.06.35 A1.06.36 A1.06.37 A1.06.39
+A1.06.35 A1.05.33 A1.05.35 A1.06.28 A1.06.30 A1.06.32 A1.06.34 A1.06.37 A1.06.40
+A1.06.36 A1.06.29 A1.06.31 A1.06.33 A1.06.34 A1.06.37 A1.06.38 A1.06.39 A1.06.41
+A1.06.37 A1.05.35 A1.06.30 A1.06.34 A1.06.35 A1.06.36 A1.06.39 A1.06.40 A1.06.42
+A1.06.38 A1.06.31 A1.06.33 A1.06.36 A1.06.39 A1.06.41 A1.07.34 A1.07.38 A1.07.42
+A1.06.39 A1.06.34 A1.06.36 A1.06.37 A1.06.38 A1.06.40 A1.06.41 A1.06.42 A1.06.43
+A1.06.40 A1.05.35 A1.05.39 A1.05.42 A1.06.35 A1.06.37 A1.06.39 A1.06.42 A1.06.44
+A1.06.41 A1.06.36 A1.06.38 A1.06.39 A1.06.42 A1.06.43 A1.06.45 A1.07.38 A1.07.42
+A1.06.42 A1.05.42 A1.06.37 A1.06.39 A1.06.40 A1.06.41 A1.06.43 A1.06.44 A1.06.46
+A1.06.43 A1.06.39 A1.06.41 A1.06.42 A1.06.44 A1.06.45 A1.06.46 A1.06.47 A1.07.42
+A1.06.44 A1.05.42 A1.05.44 A1.05.46 A1.06.40 A1.06.42 A1.06.43 A1.06.46 A1.06.48
+A1.06.45 A1.06.41 A1.06.43 A1.06.46 A1.06.47 A1.07.42 A1.07.43 A1.07.46 A1.07.49
+A1.06.46 A1.05.46 A1.06.42 A1.06.43 A1.06.44 A1.06.45 A1.06.47 A1.06.48 A1.06.49
+A1.06.47 A1.06.43 A1.06.45 A1.06.46 A1.06.48 A1.06.49 A1.06.50 A1.07.46 A1.07.49
+A1.06.48 A1.05.46 A1.05.48 A1.05.50 A1.06.44 A1.06.46 A1.06.47 A1.06.49 A1.06.51
+A1.06.49 A1.05.50 A1.06.46 A1.06.47 A1.06.48 A1.06.50 A1.06.51 A1.06.52 A1.07.49
+A1.06.50 A1.06.47 A1.06.49 A1.06.51 A1.06.52 A1.06.53 A1.06.54 A1.07.49 A1.07.50 A1.07.52
+A1.06.51 A1.05.50 A1.05.51 A1.05.52 A1.05.54 A1.06.48 A1.06.49 A1.06.50 A1.06.52 A1.06.55 A1.06.57
+A1.06.52 A1.06.49 A1.06.50 A1.06.51 A1.06.53 A1.06.55 A1.06.56
+A1.06.53 A1.06.50 A1.06.52 A1.06.54 A1.06.55 A1.06.56 A1.06.58 A1.07.52
+A1.06.54 A1.06.50 A1.06.53 A1.06.56 A1.06.58 A1.07.52 A1.07.54 A1.07.57
+A1.06.55 A1.05.54 A1.06.51 A1.06.52 A1.06.53 A1.06.56 A1.06.57 A1.06.59
+A1.06.56 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.57 A1.06.58 A1.06.59 A1.06.60
+A1.06.57 A1.05.54 A1.05.56 A1.05.58 A1.06.51 A1.06.55 A1.06.56 A1.06.59 A1.06.61
+A1.06.58 A1.06.53 A1.06.54 A1.06.56 A1.06.59 A1.06.60 A1.07.54 A1.07.57 A1.07.60
+A1.06.59 A1.05.58 A1.06.55 A1.06.56 A1.06.57 A1.06.58 A1.06.60 A1.06.61 A1.06.62
+A1.06.60 A1.06.56 A1.06.58 A1.06.59 A1.06.61 A1.06.62 A1.07.57 A1.07.60
+A1.06.61 A1.05.58 A1.05.60 A1.05.61 A1.06.57 A1.06.59 A1.06.60 A1.06.62
+A1.06.62 A1.05.61 A1.06.59 A1.06.60 A1.06.61 A1.07.60
+A1.07.00 A1.06.05 A1.07.07 A1.07.08
+A1.07.01 A1.07.02 A1.07.04 A1.07.06 A1.07.10 A1.07.11
+A1.07.02 A1.07.01 A1.07.11 A1.07.12 A1.08.01 A1.08.11
+A1.07.03 A1.07.07 A1.07.13 A1.07.14
+A1.07.04 A1.07.01 A1.07.05 A1.07.06 A1.07.09
+A1.07.05 A1.07.04 A1.07.09 A1.07.14 A1.07.15
+A1.07.06 A1.07.01 A1.07.04 A1.07.09 A1.07.10 A1.07.15 A1.07.16
+A1.07.07 A1.06.13 A1.07.00 A1.07.03 A1.07.08 A1.07.13 A1.07.18 A1.07.19
+A1.07.08 A1.06.05 A1.06.13 A1.07.00 A1.07.07 A1.07.18
+A1.07.09 A1.07.04 A1.07.05 A1.07.06 A1.07.15 A1.07.16
+A1.07.10 A1.07.01 A1.07.06 A1.07.11 A1.07.16 A1.07.17
+A1.07.11 A1.07.01 A1.07.02 A1.07.10 A1.07.12 A1.07.16 A1.07.17
+A1.07.12 A1.07.02 A1.07.11 A1.07.17 A1.08.01 A1.08.11 A1.08.16
+A1.07.13 A1.07.03 A1.07.07 A1.07.14 A1.07.18 A1.07.19 A1.07.20
+A1.07.14 A1.07.03 A1.07.05 A1.07.13 A1.07.15 A1.07.19 A1.07.20 A1.07.21
+A1.07.15 A1.07.05 A1.07.06 A1.07.09 A1.07.14 A1.07.16 A1.07.20 A1.07.21 A1.07.22
+A1.07.16 A1.07.06 A1.07.09 A1.07.10 A1.07.11 A1.07.15 A1.07.17 A1.07.21 A1.07.22 A1.07.23
+A1.07.17 A1.07.10 A1.07.11 A1.07.12 A1.07.16 A1.07.22 A1.07.23 A1.08.11 A1.08.16 A1.08.22
+A1.07.18 A1.06.13 A1.06.19 A1.06.21 A1.07.07 A1.07.08 A1.07.13 A1.07.19 A1.07.24
+A1.07.19 A1.06.21 A1.07.07 A1.07.13 A1.07.14 A1.07.18 A1.07.20 A1.07.24 A1.07.25
+A1.07.20 A1.07.13 A1.07.14 A1.07.15 A1.07.19 A1.07.21 A1.07.24 A1.07.25 A1.07.26
+A1.07.21 A1.07.14 A1.07.15 A1.07.16 A1.07.20 A1.07.22 A1.07.25 A1.07.26 A1.07.27
+A1.07.22 A1.07.15 A1.07.16 A1.07.17 A1.07.21 A1.07.23 A1.07.26 A1.07.27 A1.07.28
+A1.07.23 A1.07.16 A1.07.17 A1.07.22 A1.07.27 A1.07.28 A1.08.16 A1.08.22 A1.08.27
+A1.07.24 A1.06.21 A1.06.26 A1.07.18 A1.07.19 A1.07.20 A1.07.25 A1.07.29 A1.07.30
+A1.07.25 A1.07.19 A1.07.20 A1.07.21 A1.07.24 A1.07.26 A1.07.29 A1.07.30 A1.07.31
+A1.07.26 A1.07.20 A1.07.21 A1.07.22 A1.07.25 A1.07.27 A1.07.30 A1.07.31 A1.07.32
+A1.07.27 A1.07.21 A1.07.22 A1.07.23 A1.07.26 A1.07.28 A1.07.31 A1.07.32 A1.07.33
+A1.07.28 A1.07.22 A1.07.23 A1.07.27 A1.07.32 A1.07.33 A1.08.22 A1.08.27 A1.08.32
+A1.07.29 A1.06.21 A1.06.26 A1.06.31 A1.06.33 A1.07.24 A1.07.25 A1.07.30 A1.07.34
+A1.07.30 A1.06.33 A1.07.24 A1.07.25 A1.07.26 A1.07.29 A1.07.31 A1.07.34 A1.07.35
+A1.07.31 A1.07.25 A1.07.26 A1.07.27 A1.07.30 A1.07.32 A1.07.34 A1.07.35 A1.07.36
+A1.07.32 A1.07.26 A1.07.27 A1.07.28 A1.07.31 A1.07.33 A1.07.35 A1.07.36 A1.07.37
+A1.07.33 A1.07.27 A1.07.28 A1.07.32 A1.07.36 A1.07.37 A1.08.27 A1.08.32 A1.08.36
+A1.07.34 A1.06.33 A1.06.38 A1.07.29 A1.07.30 A1.07.31 A1.07.35 A1.07.38 A1.07.39
+A1.07.35 A1.07.30 A1.07.31 A1.07.32 A1.07.34 A1.07.36 A1.07.38 A1.07.39 A1.07.40
+A1.07.36 A1.07.31 A1.07.32 A1.07.33 A1.07.35 A1.07.37 A1.07.39 A1.07.40 A1.07.41
+A1.07.37 A1.07.32 A1.07.33 A1.07.36 A1.07.40 A1.07.41 A1.08.32 A1.08.36 A1.08.40
+A1.07.38 A1.06.33 A1.06.38 A1.06.41 A1.07.34 A1.07.35 A1.07.39 A1.07.42 A1.07.43
+A1.07.39 A1.07.34 A1.07.35 A1.07.36 A1.07.38 A1.07.40 A1.07.42 A1.07.43 A1.07.44
+A1.07.40 A1.07.35 A1.07.36 A1.07.37 A1.07.39 A1.07.41 A1.07.43 A1.07.44 A1.07.45
+A1.07.41 A1.07.36 A1.07.37 A1.07.40 A1.07.44 A1.07.45 A1.08.36 A1.08.40 A1.08.44
+A1.07.42 A1.06.38 A1.06.41 A1.06.43 A1.06.45 A1.07.38 A1.07.39 A1.07.43 A1.07.46
+A1.07.43 A1.06.45 A1.07.38 A1.07.39 A1.07.40 A1.07.42 A1.07.44 A1.07.46 A1.07.47
+A1.07.44 A1.07.39 A1.07.40 A1.07.41 A1.07.43 A1.07.45 A1.07.46 A1.07.47 A1.07.48
+A1.07.45 A1.07.40 A1.07.41 A1.07.44 A1.07.47 A1.07.48 A1.08.40 A1.08.44 A1.08.47
+A1.07.46 A1.06.45 A1.06.47 A1.07.42 A1.07.43 A1.07.44 A1.07.47 A1.07.49 A1.07.50
+A1.07.47 A1.07.43 A1.07.44 A1.07.45 A1.07.46 A1.07.48 A1.07.49 A1.07.50 A1.07.51
+A1.07.48 A1.07.44 A1.07.45 A1.07.47 A1.07.50 A1.07.51 A1.08.44 A1.08.47 A1.08.50
+A1.07.49 A1.06.45 A1.06.47 A1.06.49 A1.06.50 A1.07.46 A1.07.47 A1.07.50 A1.07.52
+A1.07.50 A1.06.50 A1.07.46 A1.07.47 A1.07.48 A1.07.49 A1.07.51 A1.07.52 A1.07.53
+A1.07.51 A1.07.47 A1.07.48 A1.07.50 A1.07.52 A1.07.53 A1.08.47 A1.08.50 A1.08.52
+A1.07.52 A1.06.50 A1.06.53 A1.06.54 A1.07.49 A1.07.50 A1.07.51 A1.07.53 A1.07.54 A1.07.55
+A1.07.53 A1.07.50 A1.07.51 A1.07.52 A1.07.54 A1.07.55 A1.07.56 A1.08.50 A1.08.52 A1.08.56
+A1.07.54 A1.06.54 A1.06.58 A1.07.52 A1.07.53 A1.07.55 A1.07.57 A1.07.58
+A1.07.55 A1.07.52 A1.07.53 A1.07.54 A1.07.56 A1.07.57 A1.07.58 A1.07.59
+A1.07.56 A1.07.53 A1.07.55 A1.07.58 A1.07.59 A1.08.52 A1.08.56 A1.08.59
+A1.07.57 A1.06.54 A1.06.58 A1.06.60 A1.07.54 A1.07.55 A1.07.58 A1.07.60 A1.07.61
+A1.07.58 A1.07.54 A1.07.55 A1.07.56 A1.07.57 A1.07.59 A1.07.60 A1.07.61 A1.07.62
+A1.07.59 A1.07.55 A1.07.56 A1.07.58 A1.07.61 A1.07.62 A1.08.56 A1.08.59 A1.08.62
+A1.07.60 A1.06.58 A1.06.60 A1.06.62 A1.07.57 A1.07.58 A1.07.61
+A1.07.61 A1.07.57 A1.07.58 A1.07.59 A1.07.60 A1.07.62
+A1.07.62 A1.07.58 A1.07.59 A1.07.61 A1.08.59 A1.08.62
+A1.08.00 A1.08.07 A1.08.12
+A1.08.01 A1.07.02 A1.07.12 A1.08.02 A1.08.10 A1.08.11
+A1.08.02 A1.08.01 A1.08.03 A1.08.06 A1.08.09 A1.08.10
+A1.08.03 A1.08.02 A1.08.05 A1.08.06 A1.08.14 A1.08.15
+A1.08.04 A1.08.05 A1.08.12 A1.08.13 A1.08.14
+A1.08.05 A1.08.03 A1.08.04 A1.08.13 A1.08.14
+A1.08.06 A1.08.02 A1.08.03 A1.08.09 A1.08.14 A1.08.15
+A1.08.07 A1.08.00 A1.08.08 A1.08.12 A1.08.17 A1.08.18 A1.09.13
+A1.08.08 A1.08.07 A1.08.17 A1.09.02 A1.09.13
+A1.08.09 A1.08.02 A1.08.06 A1.08.10 A1.08.15 A1.08.16
+A1.08.10 A1.08.01 A1.08.02 A1.08.09 A1.08.11 A1.08.15 A1.08.16
+A1.08.11 A1.07.02 A1.07.12 A1.07.17 A1.08.01 A1.08.10 A1.08.16
+A1.08.12 A1.08.00 A1.08.04 A1.08.07 A1.08.13 A1.08.17 A1.08.18 A1.08.19
+A1.08.13 A1.08.04 A1.08.05 A1.08.12 A1.08.14 A1.08.18 A1.08.19 A1.08.20
+A1.08.14 A1.08.03 A1.08.04 A1.08.05 A1.08.06 A1.08.13 A1.08.15 A1.08.19 A1.08.20 A1.08.21
+A1.08.15 A1.08.03 A1.08.06 A1.08.09 A1.08.10 A1.08.14 A1.08.16 A1.08.20 A1.08.21 A1.08.22
+A1.08.16 A1.07.12 A1.07.17 A1.07.23 A1.08.09 A1.08.10 A1.08.11 A1.08.15 A1.08.21 A1.08.22
+A1.08.17 A1.08.07 A1.08.08 A1.08.12 A1.08.18 A1.08.23 A1.09.13 A1.09.19 A1.09.21
+A1.08.18 A1.08.07 A1.08.12 A1.08.13 A1.08.17 A1.08.19 A1.08.23 A1.08.24 A1.09.21
+A1.08.19 A1.08.12 A1.08.13 A1.08.14 A1.08.18 A1.08.20 A1.08.23 A1.08.24 A1.08.25
+A1.08.20 A1.08.13 A1.08.14 A1.08.15 A1.08.19 A1.08.21 A1.08.24 A1.08.25 A1.08.26
+A1.08.21 A1.08.14 A1.08.15 A1.08.16 A1.08.20 A1.08.22 A1.08.25 A1.08.26 A1.08.27
+A1.08.22 A1.07.17 A1.07.23 A1.07.28 A1.08.15 A1.08.16 A1.08.21 A1.08.26 A1.08.27
+A1.08.23 A1.08.17 A1.08.18 A1.08.19 A1.08.24 A1.08.28 A1.08.29 A1.09.21 A1.09.26
+A1.08.24 A1.08.18 A1.08.19 A1.08.20 A1.08.23 A1.08.25 A1.08.28 A1.08.29 A1.08.30
+A1.08.25 A1.08.19 A1.08.20 A1.08.21 A1.08.24 A1.08.26 A1.08.29 A1.08.30 A1.08.31
+A1.08.26 A1.08.20 A1.08.21 A1.08.22 A1.08.25 A1.08.27 A1.08.30 A1.08.31 A1.08.32
+A1.08.27 A1.07.23 A1.07.28 A1.07.33 A1.08.21 A1.08.22 A1.08.26 A1.08.31 A1.08.32
+A1.08.28 A1.08.23 A1.08.24 A1.08.29 A1.08.33 A1.09.21 A1.09.26 A1.09.31 A1.09.33
+A1.08.29 A1.08.23 A1.08.24 A1.08.25 A1.08.28 A1.08.30 A1.08.33 A1.08.34 A1.09.33
+A1.08.30 A1.08.24 A1.08.25 A1.08.26 A1.08.29 A1.08.31 A1.08.33 A1.08.34 A1.08.35
+A1.08.31 A1.08.25 A1.08.26 A1.08.27 A1.08.30 A1.08.32 A1.08.34 A1.08.35 A1.08.36
+A1.08.32 A1.07.28 A1.07.33 A1.07.37 A1.08.26 A1.08.27 A1.08.31 A1.08.35 A1.08.36
+A1.08.33 A1.08.28 A1.08.29 A1.08.30 A1.08.34 A1.08.37 A1.08.38 A1.09.33 A1.09.38
+A1.08.34 A1.08.29 A1.08.30 A1.08.31 A1.08.33 A1.08.35 A1.08.37 A1.08.38 A1.08.39
+A1.08.35 A1.08.30 A1.08.31 A1.08.32 A1.08.34 A1.08.36 A1.08.38 A1.08.39 A1.08.40
+A1.08.36 A1.07.33 A1.07.37 A1.07.41 A1.08.31 A1.08.32 A1.08.35 A1.08.39 A1.08.40
+A1.08.37 A1.08.33 A1.08.34 A1.08.38 A1.08.41 A1.08.42 A1.09.33 A1.09.38 A1.09.41
+A1.08.38 A1.08.33 A1.08.34 A1.08.35 A1.08.37 A1.08.39 A1.08.41 A1.08.42 A1.08.43
+A1.08.39 A1.08.34 A1.08.35 A1.08.36 A1.08.38 A1.08.40 A1.08.42 A1.08.43 A1.08.44
+A1.08.40 A1.07.37 A1.07.41 A1.07.45 A1.08.35 A1.08.36 A1.08.39 A1.08.43 A1.08.44
+A1.08.41 A1.08.37 A1.08.38 A1.08.42 A1.08.45 A1.09.38 A1.09.41 A1.09.43 A1.09.45
+A1.08.42 A1.08.37 A1.08.38 A1.08.39 A1.08.41 A1.08.43 A1.08.45 A1.08.46 A1.09.45
+A1.08.43 A1.08.38 A1.08.39 A1.08.40 A1.08.42 A1.08.44 A1.08.45 A1.08.46 A1.08.47
+A1.08.44 A1.07.41 A1.07.45 A1.07.48 A1.08.39 A1.08.40 A1.08.43 A1.08.46 A1.08.47
+A1.08.45 A1.08.41 A1.08.42 A1.08.43 A1.08.46 A1.08.48 A1.08.49 A1.09.45 A1.09.47
+A1.08.46 A1.08.42 A1.08.43 A1.08.44 A1.08.45 A1.08.47 A1.08.48 A1.08.49 A1.08.50
+A1.08.47 A1.07.45 A1.07.48 A1.07.51 A1.08.43 A1.08.44 A1.08.46 A1.08.49 A1.08.50
+A1.08.48 A1.08.45 A1.08.46 A1.08.49 A1.08.51 A1.09.45 A1.09.47 A1.09.49 A1.09.50
+A1.08.49 A1.08.45 A1.08.46 A1.08.47 A1.08.48 A1.08.50 A1.08.51 A1.08.52 A1.09.50
+A1.08.50 A1.07.48 A1.07.51 A1.07.53 A1.08.46 A1.08.47 A1.08.49 A1.08.51 A1.08.52
+A1.08.51 A1.08.48 A1.08.49 A1.08.50 A1.08.52 A1.08.53 A1.08.54 A1.08.55 A1.09.50 A1.09.53
+A1.08.52 A1.07.51 A1.07.53 A1.07.56 A1.08.49 A1.08.50 A1.08.51 A1.08.54 A1.08.55 A1.08.56
+A1.08.53 A1.08.51 A1.08.54 A1.08.57 A1.09.50 A1.09.53 A1.09.55 A1.09.57
+A1.08.54 A1.08.51 A1.08.52 A1.08.53 A1.08.55 A1.08.57 A1.08.58 A1.09.57
+A1.08.55 A1.08.51 A1.08.52 A1.08.54 A1.08.56 A1.08.57 A1.08.58 A1.08.59
+A1.08.56 A1.07.53 A1.07.56 A1.07.59 A1.08.52 A1.08.55 A1.08.58 A1.08.59
+A1.08.57 A1.08.53 A1.08.54 A1.08.55 A1.08.58 A1.08.60 A1.08.61 A1.09.57 A1.09.59
+A1.08.58 A1.08.54 A1.08.55 A1.08.56 A1.08.57 A1.08.59 A1.08.60 A1.08.61 A1.08.62
+A1.08.59 A1.07.56 A1.07.59 A1.07.62 A1.08.55 A1.08.56 A1.08.58 A1.08.61 A1.08.62
+A1.08.60 A1.08.57 A1.08.58 A1.08.61 A1.09.57 A1.09.59 A1.09.62
+A1.08.61 A1.08.57 A1.08.58 A1.08.59 A1.08.60 A1.08.62 A1.09.62
+A1.08.62 A1.07.59 A1.07.62 A1.08.58 A1.08.59 A1.08.61
+A1.09.00 A1.09.04 A1.09.06 A1.09.08 A1.09.12
+A1.09.01 A1.09.03 A1.09.05 A1.09.11
+A1.09.02 A1.08.08 A1.09.05 A1.09.13
+A1.09.03 A1.09.01 A1.09.07 A1.09.09 A1.09.11
+A1.09.04 A1.09.00 A1.09.08 A1.09.10
+A1.09.05 A1.09.01 A1.09.02 A1.09.11 A1.09.13
+A1.09.06 A1.09.00 A1.09.12 A1.09.17 A1.10.06 A1.10.12
+A1.09.07 A1.09.03 A1.09.09 A1.09.10 A1.09.14
+A1.09.08 A1.09.00 A1.09.04 A1.09.10 A1.09.12 A1.09.15
+A1.09.09 A1.09.03 A1.09.07 A1.09.11 A1.09.14 A1.09.16
+A1.09.10 A1.09.04 A1.09.07 A1.09.08 A1.09.12 A1.09.14 A1.09.15 A1.09.18
+A1.09.11 A1.09.01 A1.09.03 A1.09.05 A1.09.09 A1.09.13 A1.09.14 A1.09.16 A1.09.19
+A1.09.12 A1.09.00 A1.09.06 A1.09.08 A1.09.10 A1.09.15 A1.09.17 A1.09.20 A1.10.12
+A1.09.13 A1.08.07 A1.08.08 A1.08.17 A1.09.02 A1.09.05 A1.09.11 A1.09.16 A1.09.19 A1.09.21
+A1.09.14 A1.09.07 A1.09.09 A1.09.10 A1.09.11 A1.09.15 A1.09.16 A1.09.18 A1.09.22
+A1.09.15 A1.09.08 A1.09.10 A1.09.12 A1.09.14 A1.09.17 A1.09.18 A1.09.20 A1.09.23
+A1.09.16 A1.09.09 A1.09.11 A1.09.13 A1.09.14 A1.09.18 A1.09.19 A1.09.22 A1.09.24
+A1.09.17 A1.09.06 A1.09.12 A1.09.15 A1.09.20 A1.09.25 A1.10.12 A1.10.17 A1.10.21
+A1.09.18 A1.09.10 A1.09.14 A1.09.15 A1.09.16 A1.09.20 A1.09.22 A1.09.23 A1.09.27
+A1.09.19 A1.08.17 A1.09.11 A1.09.13 A1.09.16 A1.09.21 A1.09.22 A1.09.24 A1.09.26
+A1.09.20 A1.09.12 A1.09.15 A1.09.17 A1.09.18 A1.09.23 A1.09.25 A1.09.28 A1.10.21
+A1.09.21 A1.08.17 A1.08.18 A1.08.23 A1.08.28 A1.09.13 A1.09.19 A1.09.24 A1.09.26
+A1.09.22 A1.09.14 A1.09.16 A1.09.18 A1.09.19 A1.09.23 A1.09.24 A1.09.27 A1.09.29
+A1.09.23 A1.09.15 A1.09.18 A1.09.20 A1.09.22 A1.09.25 A1.09.27 A1.09.28 A1.09.30
+A1.09.24 A1.09.16 A1.09.19 A1.09.21 A1.09.22 A1.09.26 A1.09.27 A1.09.29 A1.09.31
+A1.09.25 A1.09.17 A1.09.20 A1.09.23 A1.09.28 A1.09.32 A1.10.21 A1.10.24 A1.10.28
+A1.09.26 A1.08.23 A1.08.28 A1.09.19 A1.09.21 A1.09.24 A1.09.29 A1.09.31 A1.09.33
+A1.09.27 A1.09.18 A1.09.22 A1.09.23 A1.09.24 A1.09.28 A1.09.29 A1.09.30 A1.09.34
+A1.09.28 A1.09.20 A1.09.23 A1.09.25 A1.09.27 A1.09.30 A1.09.32 A1.09.35 A1.10.28
+A1.09.29 A1.09.22 A1.09.24 A1.09.26 A1.09.27 A1.09.30 A1.09.31 A1.09.34 A1.09.36
+A1.09.30 A1.09.23 A1.09.27 A1.09.28 A1.09.29 A1.09.32 A1.09.34 A1.09.35 A1.09.37
+A1.09.31 A1.08.28 A1.09.24 A1.09.26 A1.09.29 A1.09.33 A1.09.34 A1.09.36 A1.09.38
+A1.09.32 A1.09.25 A1.09.28 A1.09.30 A1.09.35 A1.10.28 A1.10.31 A1.10.34 A1.10.36
+A1.09.33 A1.08.28 A1.08.29 A1.08.33 A1.08.37 A1.09.26 A1.09.31 A1.09.36 A1.09.38
+A1.09.34 A1.09.27 A1.09.29 A1.09.30 A1.09.31 A1.09.35 A1.09.36 A1.09.37 A1.09.39
+A1.09.35 A1.09.28 A1.09.30 A1.09.32 A1.09.34 A1.09.37 A1.09.40 A1.10.34 A1.10.36
+A1.09.36 A1.09.29 A1.09.31 A1.09.33 A1.09.34 A1.09.37 A1.09.38 A1.09.39 A1.09.41
+A1.09.37 A1.09.30 A1.09.34 A1.09.35 A1.09.36 A1.09.39 A1.09.40 A1.09.42 A1.10.36
+A1.09.38 A1.08.33 A1.08.37 A1.08.41 A1.09.31 A1.09.33 A1.09.36 A1.09.39 A1.09.41
+A1.09.39 A1.09.34 A1.09.36 A1.09.37 A1.09.38 A1.09.40 A1.09.41 A1.09.42 A1.09.43
+A1.09.40 A1.09.35 A1.09.37 A1.09.39 A1.09.42 A1.09.44 A1.10.36 A1.10.40 A1.10.43
+A1.09.41 A1.08.37 A1.08.41 A1.09.36 A1.09.38 A1.09.39 A1.09.42 A1.09.43 A1.09.45
+A1.09.42 A1.09.37 A1.09.39 A1.09.40 A1.09.41 A1.09.43 A1.09.44 A1.09.46 A1.10.43
+A1.09.43 A1.08.41 A1.09.39 A1.09.41 A1.09.42 A1.09.44 A1.09.45 A1.09.46 A1.09.47
+A1.09.44 A1.09.40 A1.09.42 A1.09.43 A1.09.46 A1.09.48 A1.10.43 A1.10.45 A1.10.47
+A1.09.45 A1.08.41 A1.08.42 A1.08.45 A1.08.48 A1.09.41 A1.09.43 A1.09.46 A1.09.47
+A1.09.46 A1.09.42 A1.09.43 A1.09.44 A1.09.45 A1.09.47 A1.09.48 A1.09.49 A1.10.47
+A1.09.47 A1.08.45 A1.08.48 A1.09.43 A1.09.45 A1.09.46 A1.09.48 A1.09.49 A1.09.50
+A1.09.48 A1.09.44 A1.09.46 A1.09.47 A1.09.49 A1.09.51 A1.10.47 A1.10.49 A1.10.51
+A1.09.49 A1.08.48 A1.09.46 A1.09.47 A1.09.48 A1.09.50 A1.09.51 A1.09.52 A1.10.51
+A1.09.50 A1.08.48 A1.08.49 A1.08.51 A1.08.53 A1.09.47 A1.09.49 A1.09.51 A1.09.52 A1.09.53
+A1.09.51 A1.09.48 A1.09.49 A1.09.50 A1.09.52 A1.09.54 A1.09.56 A1.10.51 A1.10.52 A1.10.53 A1.10.55
+A1.09.52 A1.09.49 A1.09.50 A1.09.51 A1.09.53 A1.09.54 A1.09.55
+A1.09.53 A1.08.51 A1.08.53 A1.09.50 A1.09.52 A1.09.54 A1.09.55 A1.09.57
+A1.09.54 A1.09.51 A1.09.52 A1.09.53 A1.09.55 A1.09.56 A1.09.58 A1.10.55
+A1.09.55 A1.08.53 A1.09.52 A1.09.53 A1.09.54 A1.09.56 A1.09.57 A1.09.58 A1.09.59
+A1.09.56 A1.09.51 A1.09.54 A1.09.55 A1.09.58 A1.09.60 A1.10.55 A1.10.57 A1.10.59
+A1.09.57 A1.08.53 A1.08.54 A1.08.57 A1.08.60 A1.09.53 A1.09.55 A1.09.58 A1.09.59
+A1.09.58 A1.09.54 A1.09.55 A1.09.56 A1.09.57 A1.09.59 A1.09.60 A1.09.61 A1.10.59
+A1.09.59 A1.08.57 A1.08.60 A1.09.55 A1.09.57 A1.09.58 A1.09.60 A1.09.61 A1.09.62
+A1.09.60 A1.09.56 A1.09.58 A1.09.59 A1.09.61 A1.10.59 A1.10.61
+A1.09.61 A1.09.58 A1.09.59 A1.09.60 A1.09.62 A1.10.59 A1.10.61
+A1.09.62 A1.08.60 A1.08.61 A1.09.59 A1.09.61
+A1.10.00 A1.10.03 A1.10.06
+A1.10.01 A1.10.02 A1.10.04 A1.10.10 A1.10.14
+A1.10.02 A1.10.01 A1.10.07 A1.10.10
+A1.10.03 A1.10.00 A1.10.06 A1.10.09 A1.10.13
+A1.10.04 A1.10.01 A1.10.05 A1.10.10 A1.10.14 A1.11.02
+A1.10.05 A1.10.04 A1.10.14 A1.11.02 A1.11.08
+A1.10.06 A1.09.06 A1.10.00 A1.10.03 A1.10.12 A1.10.13 A1.10.17
+A1.10.07 A1.10.02 A1.10.10 A1.10.11 A1.10.15
+A1.10.08 A1.10.09 A1.10.11
+A1.10.09 A1.10.03 A1.10.08 A1.10.11 A1.10.13 A1.10.16
+A1.10.10 A1.10.01 A1.10.02 A1.10.04 A1.10.07 A1.10.11 A1.10.14 A1.10.15 A1.10.18
+A1.10.11 A1.10.07 A1.10.08 A1.10.09 A1.10.10 A1.10.13 A1.10.15 A1.10.16 A1.10.19
+A1.10.12 A1.09.06 A1.09.12 A1.09.17 A1.10.06 A1.10.13 A1.10.17 A1.10.21
+A1.10.13 A1.10.03 A1.10.06 A1.10.09 A1.10.11 A1.10.12 A1.10.16 A1.10.17 A1.10.20
+A1.10.14 A1.10.01 A1.10.04 A1.10.05 A1.10.10 A1.10.15 A1.10.18 A1.11.08 A1.11.10 A1.11.15 A1.11.20
+A1.10.15 A1.10.07 A1.10.10 A1.10.11 A1.10.14 A1.10.16 A1.10.18 A1.10.19 A1.10.22
+A1.10.16 A1.10.09 A1.10.11 A1.10.13 A1.10.15 A1.10.17 A1.10.19 A1.10.20 A1.10.23
+A1.10.17 A1.09.17 A1.10.06 A1.10.12 A1.10.13 A1.10.16 A1.10.20 A1.10.21 A1.10.24
+A1.10.18 A1.10.10 A1.10.14 A1.10.15 A1.10.19 A1.10.22 A1.10.25 A1.11.15 A1.11.20
+A1.10.19 A1.10.11 A1.10.15 A1.10.16 A1.10.18 A1.10.20 A1.10.22 A1.10.23 A1.10.26
+A1.10.20 A1.10.13 A1.10.16 A1.10.17 A1.10.19 A1.10.21 A1.10.23 A1.10.24 A1.10.27
+A1.10.21 A1.09.17 A1.09.20 A1.09.25 A1.10.12 A1.10.17 A1.10.20 A1.10.24 A1.10.28
+A1.10.22 A1.10.15 A1.10.18 A1.10.19 A1.10.23 A1.10.25 A1.10.26 A1.10.29 A1.11.20
+A1.10.23 A1.10.16 A1.10.19 A1.10.20 A1.10.22 A1.10.24 A1.10.26 A1.10.27 A1.10.30
+A1.10.24 A1.09.25 A1.10.17 A1.10.20 A1.10.21 A1.10.23 A1.10.27 A1.10.28 A1.10.31
+A1.10.25 A1.10.18 A1.10.22 A1.10.26 A1.10.29 A1.11.20 A1.11.21 A1.11.25 A1.11.29
+A1.10.26 A1.10.19 A1.10.22 A1.10.23 A1.10.25 A1.10.27 A1.10.29 A1.10.30 A1.10.32
+A1.10.27 A1.10.20 A1.10.23 A1.10.24 A1.10.26 A1.10.28 A1.10.30 A1.10.31 A1.10.33
+A1.10.28 A1.09.25 A1.09.28 A1.09.32 A1.10.21 A1.10.24 A1.10.27 A1.10.31 A1.10.34
+A1.10.29 A1.10.22 A1.10.25 A1.10.26 A1.10.30 A1.10.32 A1.11.25 A1.11.29 A1.11.33
+A1.10.30 A1.10.23 A1.10.26 A1.10.27 A1.10.29 A1.10.31 A1.10.32 A1.10.33 A1.10.35
+A1.10.31 A1.09.32 A1.10.24 A1.10.27 A1.10.28 A1.10.30 A1.10.33 A1.10.34 A1.10.37
+A1.10.32 A1.10.26 A1.10.29 A1.10.30 A1.10.33 A1.10.35 A1.10.38 A1.11.29 A1.11.33
+A1.10.33 A1.10.27 A1.10.30 A1.10.31 A1.10.32 A1.10.34 A1.10.35 A1.10.37 A1.10.39
+A1.10.34 A1.09.32 A1.09.35 A1.10.28 A1.10.31 A1.10.33 A1.10.36 A1.10.37 A1.10.40
+A1.10.35 A1.10.30 A1.10.32 A1.10.33 A1.10.37 A1.10.38 A1.10.39 A1.10.41 A1.11.33
+A1.10.36 A1.09.32 A1.09.35 A1.09.37 A1.09.40 A1.10.34 A1.10.37 A1.10.40 A1.10.43
+A1.10.37 A1.10.31 A1.10.33 A1.10.34 A1.10.35 A1.10.36 A1.10.39 A1.10.40 A1.10.42
+A1.10.38 A1.10.32 A1.10.35 A1.10.39 A1.10.41 A1.11.33 A1.11.34 A1.11.37 A1.11.40
+A1.10.39 A1.10.33 A1.10.35 A1.10.37 A1.10.38 A1.10.40 A1.10.41 A1.10.42 A1.10.44
+A1.10.40 A1.09.40 A1.10.34 A1.10.36 A1.10.37 A1.10.39 A1.10.42 A1.10.43 A1.10.45
+A1.10.41 A1.10.35 A1.10.38 A1.10.39 A1.10.42 A1.10.44 A1.11.37 A1.11.40 A1.11.43
+A1.10.42 A1.10.37 A1.10.39 A1.10.40 A1.10.41 A1.10.43 A1.10.44 A1.10.45 A1.10.46
+A1.10.43 A1.09.40 A1.09.42 A1.09.44 A1.10.36 A1.10.40 A1.10.42 A1.10.45 A1.10.47
+A1.10.44 A1.10.39 A1.10.41 A1.10.42 A1.10.45 A1.10.46 A1.10.48 A1.11.40 A1.11.43
+A1.10.45 A1.09.44 A1.10.40 A1.10.42 A1.10.43 A1.10.44 A1.10.46 A1.10.47 A1.10.49
+A1.10.46 A1.10.42 A1.10.44 A1.10.45 A1.10.47 A1.10.48 A1.10.49 A1.10.50 A1.11.43
+A1.10.47 A1.09.44 A1.09.46 A1.09.48 A1.10.43 A1.10.45 A1.10.46 A1.10.49 A1.10.51
+A1.10.48 A1.10.44 A1.10.46 A1.10.49 A1.10.50 A1.11.43 A1.11.44 A1.11.46 A1.11.48
+A1.10.49 A1.09.48 A1.10.45 A1.10.46 A1.10.47 A1.10.48 A1.10.50 A1.10.51 A1.10.52
+A1.10.50 A1.10.46 A1.10.48 A1.10.49 A1.10.51 A1.10.52 A1.11.46 A1.11.48 A1.11.50
+A1.10.51 A1.09.48 A1.09.49 A1.09.51 A1.10.47 A1.10.49 A1.10.50 A1.10.52 A1.10.53
+A1.10.52 A1.09.51 A1.10.49 A1.10.50 A1.10.51 A1.10.53 A1.10.54 A1.10.56 A1.11.48 A1.11.50 A1.11.54
+A1.10.53 A1.09.51 A1.10.51 A1.10.52 A1.10.54 A1.10.55 A1.10.57
+A1.10.54 A1.10.52 A1.10.53 A1.10.55 A1.10.56 A1.10.57 A1.10.58 A1.11.54
+A1.10.55 A1.09.51 A1.09.54 A1.09.56 A1.10.53 A1.10.54 A1.10.57 A1.10.59
+A1.10.56 A1.10.52 A1.10.54 A1.10.57 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.58
+A1.10.57 A1.09.56 A1.10.53 A1.10.54 A1.10.55 A1.10.56 A1.10.58 A1.10.59 A1.10.61
+A1.10.58 A1.10.54 A1.10.56 A1.10.57 A1.10.59 A1.10.60 A1.10.61 A1.10.62 A1.11.58
+A1.10.59 A1.09.56 A1.09.58 A1.09.60 A1.09.61 A1.10.55 A1.10.57 A1.10.58 A1.10.61
+A1.10.60 A1.10.56 A1.10.58 A1.10.61 A1.10.62 A1.11.58 A1.11.59 A1.11.61
+A1.10.61 A1.09.60 A1.09.61 A1.10.57 A1.10.58 A1.10.59 A1.10.60 A1.10.62
+A1.10.62 A1.10.58 A1.10.60 A1.10.61 A1.11.61
+A1.11.00 A1.11.05 A1.11.07 A1.12.00 A1.12.08
+A1.11.01 A1.11.02 A1.11.03 A1.11.10
+A1.11.02 A1.10.04 A1.10.05 A1.11.01 A1.11.08 A1.11.10
+A1.11.03 A1.11.01 A1.11.04 A1.11.10 A1.11.11
+A1.11.04 A1.11.03 A1.11.06 A1.11.11 A1.11.12
+A1.11.05 A1.11.00 A1.11.07 A1.11.09 A1.11.12 A1.11.13 A1.11.14
+A1.11.06 A1.11.04 A1.11.09 A1.11.11 A1.11.12
+A1.11.07 A1.11.00 A1.11.05 A1.11.13 A1.11.14 A1.12.00 A1.12.08 A1.12.14
+A1.11.08 A1.10.05 A1.10.14 A1.11.02 A1.11.10 A1.11.15
+A1.11.09 A1.11.05 A1.11.06 A1.11.12 A1.11.13
+A1.11.10 A1.10.14 A1.11.01 A1.11.02 A1.11.03 A1.11.08 A1.11.11 A1.11.15 A1.11.16
+A1.11.11 A1.11.03 A1.11.04 A1.11.06 A1.11.10 A1.11.12 A1.11.15 A1.11.16 A1.11.17
+A1.11.12 A1.11.04 A1.11.05 A1.11.06 A1.11.09 A1.11.11 A1.11.13 A1.11.16 A1.11.17 A1.11.18
+A1.11.13 A1.11.05 A1.11.07 A1.11.09 A1.11.12 A1.11.14 A1.11.17 A1.11.18 A1.11.19
+A1.11.14 A1.11.05 A1.11.07 A1.11.13 A1.11.18 A1.11.19 A1.12.08 A1.12.14 A1.12.19
+A1.11.15 A1.10.14 A1.10.18 A1.11.08 A1.11.10 A1.11.11 A1.11.16 A1.11.20 A1.11.21
+A1.11.16 A1.11.10 A1.11.11 A1.11.12 A1.11.15 A1.11.17 A1.11.20 A1.11.21 A1.11.22
+A1.11.17 A1.11.11 A1.11.12 A1.11.13 A1.11.16 A1.11.18 A1.11.21 A1.11.22 A1.11.23
+A1.11.18 A1.11.12 A1.11.13 A1.11.14 A1.11.17 A1.11.19 A1.11.22 A1.11.23 A1.11.24
+A1.11.19 A1.11.13 A1.11.14 A1.11.18 A1.11.23 A1.11.24 A1.12.14 A1.12.19 A1.12.24
+A1.11.20 A1.10.14 A1.10.18 A1.10.22 A1.10.25 A1.11.15 A1.11.16 A1.11.21 A1.11.25
+A1.11.21 A1.10.25 A1.11.15 A1.11.16 A1.11.17 A1.11.20 A1.11.22 A1.11.25 A1.11.26
+A1.11.22 A1.11.16 A1.11.17 A1.11.18 A1.11.21 A1.11.23 A1.11.25 A1.11.26 A1.11.27
+A1.11.23 A1.11.17 A1.11.18 A1.11.19 A1.11.22 A1.11.24 A1.11.26 A1.11.27 A1.11.28
+A1.11.24 A1.11.18 A1.11.19 A1.11.23 A1.11.27 A1.11.28 A1.12.19 A1.12.24 A1.12.28
+A1.11.25 A1.10.25 A1.10.29 A1.11.20 A1.11.21 A1.11.22 A1.11.26 A1.11.29 A1.11.30
+A1.11.26 A1.11.21 A1.11.22 A1.11.23 A1.11.25 A1.11.27 A1.11.29 A1.11.30 A1.11.31
+A1.11.27 A1.11.22 A1.11.23 A1.11.24 A1.11.26 A1.11.28 A1.11.30 A1.11.31 A1.11.32
+A1.11.28 A1.11.23 A1.11.24 A1.11.27 A1.11.31 A1.11.32 A1.12.24 A1.12.28 A1.12.32
+A1.11.29 A1.10.25 A1.10.29 A1.10.32 A1.11.25 A1.11.26 A1.11.30 A1.11.33 A1.11.34
+A1.11.30 A1.11.25 A1.11.26 A1.11.27 A1.11.29 A1.11.31 A1.11.33 A1.11.34 A1.11.35
+A1.11.31 A1.11.26 A1.11.27 A1.11.28 A1.11.30 A1.11.32 A1.11.34 A1.11.35 A1.11.36
+A1.11.32 A1.11.27 A1.11.28 A1.11.31 A1.11.35 A1.11.36 A1.12.28 A1.12.32 A1.12.36
+A1.11.33 A1.10.29 A1.10.32 A1.10.35 A1.10.38 A1.11.29 A1.11.30 A1.11.34 A1.11.37
+A1.11.34 A1.10.38 A1.11.29 A1.11.30 A1.11.31 A1.11.33 A1.11.35 A1.11.37 A1.11.38
+A1.11.35 A1.11.30 A1.11.31 A1.11.32 A1.11.34 A1.11.36 A1.11.37 A1.11.38 A1.11.39
+A1.11.36 A1.11.31 A1.11.32 A1.11.35 A1.11.38 A1.11.39 A1.12.32 A1.12.36 A1.12.39
+A1.11.37 A1.10.38 A1.10.41 A1.11.33 A1.11.34 A1.11.35 A1.11.38 A1.11.40 A1.11.41
+A1.11.38 A1.11.34 A1.11.35 A1.11.36 A1.11.37 A1.11.39 A1.11.40 A1.11.41 A1.11.42
+A1.11.39 A1.11.35 A1.11.36 A1.11.38 A1.11.41 A1.11.42 A1.12.36 A1.12.39 A1.12.42
+A1.11.40 A1.10.38 A1.10.41 A1.10.44 A1.11.37 A1.11.38 A1.11.41 A1.11.43 A1.11.44
+A1.11.41 A1.11.37 A1.11.38 A1.11.39 A1.11.40 A1.11.42 A1.11.43 A1.11.44 A1.11.45
+A1.11.42 A1.11.38 A1.11.39 A1.11.41 A1.11.44 A1.11.45 A1.12.39 A1.12.42 A1.12.45
+A1.11.43 A1.10.41 A1.10.44 A1.10.46 A1.10.48 A1.11.40 A1.11.41 A1.11.44 A1.11.46
+A1.11.44 A1.10.48 A1.11.40 A1.11.41 A1.11.42 A1.11.43 A1.11.45 A1.11.46 A1.11.47
+A1.11.45 A1.11.41 A1.11.42 A1.11.44 A1.11.46 A1.11.47 A1.12.42 A1.12.45 A1.12.47
+A1.11.46 A1.10.48 A1.10.50 A1.11.43 A1.11.44 A1.11.45 A1.11.47 A1.11.48 A1.11.49
+A1.11.47 A1.11.44 A1.11.45 A1.11.46 A1.11.48 A1.11.49 A1.12.45 A1.12.47 A1.12.49
+A1.11.48 A1.10.48 A1.10.50 A1.10.52 A1.11.46 A1.11.47 A1.11.49 A1.11.50 A1.11.51 A1.11.52
+A1.11.49 A1.11.46 A1.11.47 A1.11.48 A1.11.51 A1.11.52 A1.11.53 A1.12.47 A1.12.49 A1.12.53
+A1.11.50 A1.10.50 A1.10.52 A1.11.48 A1.11.51 A1.11.54 A1.11.55
+A1.11.51 A1.11.48 A1.11.49 A1.11.50 A1.11.52 A1.11.54 A1.11.55 A1.11.56
+A1.11.52 A1.11.48 A1.11.49 A1.11.51 A1.11.53 A1.11.55 A1.11.56 A1.11.57
+A1.11.53 A1.11.49 A1.11.52 A1.11.56 A1.11.57 A1.12.49 A1.12.53 A1.12.57
+A1.11.54 A1.10.52 A1.10.54 A1.10.56 A1.11.50 A1.11.51 A1.11.55 A1.11.58
+A1.11.55 A1.10.56 A1.11.50 A1.11.51 A1.11.52 A1.11.54 A1.11.56 A1.11.58 A1.11.59
+A1.11.56 A1.11.51 A1.11.52 A1.11.53 A1.11.55 A1.11.57 A1.11.58 A1.11.59 A1.11.60
+A1.11.57 A1.11.52 A1.11.53 A1.11.56 A1.11.59 A1.11.60 A1.12.53 A1.12.57 A1.12.60
+A1.11.58 A1.10.56 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.56 A1.11.59 A1.11.61
+A1.11.59 A1.10.60 A1.11.55 A1.11.56 A1.11.57 A1.11.58 A1.11.60 A1.11.61 A1.11.62
+A1.11.60 A1.11.56 A1.11.57 A1.11.59 A1.11.61 A1.11.62 A1.12.57 A1.12.60 A1.12.62
+A1.11.61 A1.10.60 A1.10.62 A1.11.58 A1.11.59 A1.11.60 A1.11.62
+A1.11.62 A1.11.59 A1.11.60 A1.11.61 A1.12.60 A1.12.62
+A1.12.00 A1.11.00 A1.11.07 A1.12.06 A1.12.08
+A1.12.01 A1.12.02 A1.12.04 A1.12.10
+A1.12.02 A1.12.01 A1.12.03 A1.12.10 A1.12.11
+A1.12.03 A1.12.02 A1.12.05 A1.12.10 A1.12.11
+A1.12.04 A1.12.01 A1.12.10 A1.12.15 A1.13.02 A1.13.09 A1.13.13
+A1.12.05 A1.12.03 A1.12.07 A1.12.11 A1.12.12
+A1.12.06 A1.12.00 A1.12.08 A1.12.09 A1.12.12 A1.12.13 A1.12.14
+A1.12.07 A1.12.05 A1.12.09 A1.12.11 A1.12.12
+A1.12.08 A1.11.00 A1.11.07 A1.11.14 A1.12.00 A1.12.06 A1.12.13 A1.12.14
+A1.12.09 A1.12.06 A1.12.07 A1.12.12 A1.12.13
+A1.12.10 A1.12.01 A1.12.02 A1.12.03 A1.12.04 A1.12.11 A1.12.15 A1.12.16 A1.13.13
+A1.12.11 A1.12.02 A1.12.03 A1.12.05 A1.12.07 A1.12.10 A1.12.12 A1.12.15 A1.12.16 A1.12.17
+A1.12.12 A1.12.05 A1.12.06 A1.12.07 A1.12.09 A1.12.11 A1.12.13 A1.12.16 A1.12.17 A1.12.18
+A1.12.13 A1.12.06 A1.12.08 A1.12.09 A1.12.12 A1.12.14 A1.12.17 A1.12.18 A1.12.19
+A1.12.14 A1.11.07 A1.11.14 A1.11.19 A1.12.06 A1.12.08 A1.12.13 A1.12.18 A1.12.19
+A1.12.15 A1.12.04 A1.12.10 A1.12.11 A1.12.16 A1.12.20 A1.12.21 A1.13.13 A1.13.17
+A1.12.16 A1.12.10 A1.12.11 A1.12.12 A1.12.15 A1.12.17 A1.12.20 A1.12.21 A1.12.22
+A1.12.17 A1.12.11 A1.12.12 A1.12.13 A1.12.16 A1.12.18 A1.12.21 A1.12.22 A1.12.23
+A1.12.18 A1.12.12 A1.12.13 A1.12.14 A1.12.17 A1.12.19 A1.12.22 A1.12.23 A1.12.24
+A1.12.19 A1.11.14 A1.11.19 A1.11.24 A1.12.13 A1.12.14 A1.12.18 A1.12.23 A1.12.24
+A1.12.20 A1.12.15 A1.12.16 A1.12.21 A1.12.25 A1.13.13 A1.13.17 A1.13.21 A1.13.24
+A1.12.21 A1.12.15 A1.12.16 A1.12.17 A1.12.20 A1.12.22 A1.12.25 A1.12.26 A1.13.24
+A1.12.22 A1.12.16 A1.12.17 A1.12.18 A1.12.21 A1.12.23 A1.12.25 A1.12.26 A1.12.27
+A1.12.23 A1.12.17 A1.12.18 A1.12.19 A1.12.22 A1.12.24 A1.12.26 A1.12.27 A1.12.28
+A1.12.24 A1.11.19 A1.11.24 A1.11.28 A1.12.18 A1.12.19 A1.12.23 A1.12.27 A1.12.28
+A1.12.25 A1.12.20 A1.12.21 A1.12.22 A1.12.26 A1.12.29 A1.12.30 A1.13.24 A1.13.28
+A1.12.26 A1.12.21 A1.12.22 A1.12.23 A1.12.25 A1.12.27 A1.12.29 A1.12.30 A1.12.31
+A1.12.27 A1.12.22 A1.12.23 A1.12.24 A1.12.26 A1.12.28 A1.12.30 A1.12.31 A1.12.32
+A1.12.28 A1.11.24 A1.11.28 A1.11.32 A1.12.23 A1.12.24 A1.12.27 A1.12.31 A1.12.32
+A1.12.29 A1.12.25 A1.12.26 A1.12.30 A1.12.33 A1.12.34 A1.13.24 A1.13.28 A1.13.31
+A1.12.30 A1.12.25 A1.12.26 A1.12.27 A1.12.29 A1.12.31 A1.12.33 A1.12.34 A1.12.35
+A1.12.31 A1.12.26 A1.12.27 A1.12.28 A1.12.30 A1.12.32 A1.12.34 A1.12.35 A1.12.36
+A1.12.32 A1.11.28 A1.11.32 A1.11.36 A1.12.27 A1.12.28 A1.12.31 A1.12.35 A1.12.36
+A1.12.33 A1.12.29 A1.12.30 A1.12.34 A1.12.37 A1.13.28 A1.13.31 A1.13.34 A1.13.37
+A1.12.34 A1.12.29 A1.12.30 A1.12.31 A1.12.33 A1.12.35 A1.12.37 A1.12.38 A1.13.37
+A1.12.35 A1.12.30 A1.12.31 A1.12.32 A1.12.34 A1.12.36 A1.12.37 A1.12.38 A1.12.39
+A1.12.36 A1.11.32 A1.11.36 A1.11.39 A1.12.31 A1.12.32 A1.12.35 A1.12.38 A1.12.39
+A1.12.37 A1.12.33 A1.12.34 A1.12.35 A1.12.38 A1.12.40 A1.12.41 A1.13.37 A1.13.40
+A1.12.38 A1.12.34 A1.12.35 A1.12.36 A1.12.37 A1.12.39 A1.12.40 A1.12.41 A1.12.42
+A1.12.39 A1.11.36 A1.11.39 A1.11.42 A1.12.35 A1.12.36 A1.12.38 A1.12.41 A1.12.42
+A1.12.40 A1.12.37 A1.12.38 A1.12.41 A1.12.43 A1.12.44 A1.13.37 A1.13.40 A1.13.43
+A1.12.41 A1.12.37 A1.12.38 A1.12.39 A1.12.40 A1.12.42 A1.12.43 A1.12.44 A1.12.45
+A1.12.42 A1.11.39 A1.11.42 A1.11.45 A1.12.38 A1.12.39 A1.12.41 A1.12.44 A1.12.45
+A1.12.43 A1.12.40 A1.12.41 A1.12.44 A1.12.46 A1.13.40 A1.13.43 A1.13.45 A1.13.47
+A1.12.44 A1.12.40 A1.12.41 A1.12.42 A1.12.43 A1.12.45 A1.12.46 A1.12.47 A1.13.47
+A1.12.45 A1.11.42 A1.11.45 A1.11.47 A1.12.41 A1.12.42 A1.12.44 A1.12.46 A1.12.47
+A1.12.46 A1.12.43 A1.12.44 A1.12.45 A1.12.47 A1.12.48 A1.12.49 A1.13.47 A1.13.49
+A1.12.47 A1.11.45 A1.11.47 A1.11.49 A1.12.44 A1.12.45 A1.12.46 A1.12.48 A1.12.49
+A1.12.48 A1.12.46 A1.12.47 A1.12.49 A1.12.50 A1.12.51 A1.12.52 A1.13.47 A1.13.49 A1.13.51
+A1.12.49 A1.11.47 A1.11.49 A1.11.53 A1.12.46 A1.12.47 A1.12.48 A1.12.51 A1.12.52 A1.12.53
+A1.12.50 A1.12.48 A1.12.51 A1.12.54 A1.12.55 A1.13.49 A1.13.51
+A1.12.51 A1.12.48 A1.12.49 A1.12.50 A1.12.52 A1.12.54 A1.12.55 A1.12.56
+A1.12.52 A1.12.48 A1.12.49 A1.12.51 A1.12.53 A1.12.55 A1.12.56 A1.12.57
+A1.12.53 A1.11.49 A1.11.53 A1.11.57 A1.12.49 A1.12.52 A1.12.56 A1.12.57
+A1.12.54 A1.12.50 A1.12.51 A1.12.55 A1.12.58 A1.13.51 A1.13.53 A1.13.55
+A1.12.55 A1.12.50 A1.12.51 A1.12.52 A1.12.54 A1.12.56 A1.12.58 A1.12.59 A1.13.55
+A1.12.56 A1.12.51 A1.12.52 A1.12.53 A1.12.55 A1.12.57 A1.12.58 A1.12.59 A1.12.60
+A1.12.57 A1.11.53 A1.11.57 A1.11.60 A1.12.52 A1.12.53 A1.12.56 A1.12.59 A1.12.60
+A1.12.58 A1.12.54 A1.12.55 A1.12.56 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.59
+A1.12.59 A1.12.55 A1.12.56 A1.12.57 A1.12.58 A1.12.60 A1.12.61 A1.12.62 A1.13.59
+A1.12.60 A1.11.57 A1.11.60 A1.11.62 A1.12.56 A1.12.57 A1.12.59 A1.12.61 A1.12.62
+A1.12.61 A1.12.58 A1.12.59 A1.12.60 A1.12.62 A1.13.59 A1.13.62
+A1.12.62 A1.11.60 A1.11.62 A1.12.59 A1.12.60 A1.12.61 A1.13.62
+A1.13.00 A1.13.02 A1.13.05 A1.13.09
+A1.13.01 A1.13.03 A1.13.06 A1.13.11
+A1.13.02 A1.12.04 A1.13.00 A1.13.09 A1.13.13
+A1.13.03 A1.13.01 A1.13.06 A1.13.07 A1.13.08 A1.13.11
+A1.13.04 A1.13.05 A1.13.07 A1.13.10
+A1.13.05 A1.13.00 A1.13.04 A1.13.09 A1.13.10 A1.13.14
+A1.13.06 A1.13.01 A1.13.03 A1.13.11 A1.13.12 A1.13.16 A1.14.06
+A1.13.07 A1.13.03 A1.13.04 A1.13.08 A1.13.10
+A1.13.08 A1.13.03 A1.13.07 A1.13.10 A1.13.11 A1.13.15
+A1.13.09 A1.12.04 A1.13.00 A1.13.02 A1.13.05 A1.13.10 A1.13.13 A1.13.14 A1.13.17
+A1.13.10 A1.13.04 A1.13.05 A1.13.07 A1.13.08 A1.13.09 A1.13.11 A1.13.14 A1.13.15 A1.13.18
+A1.13.11 A1.13.01 A1.13.03 A1.13.06 A1.13.08 A1.13.10 A1.13.12 A1.13.15 A1.13.16 A1.13.19
+A1.13.12 A1.13.06 A1.13.11 A1.13.16 A1.13.20 A1.14.06 A1.14.12 A1.14.17
+A1.13.13 A1.12.04 A1.12.10 A1.12.15 A1.12.20 A1.13.02 A1.13.09 A1.13.14 A1.13.17
+A1.13.14 A1.13.05 A1.13.09 A1.13.10 A1.13.13 A1.13.15 A1.13.17 A1.13.18 A1.13.21
+A1.13.15 A1.13.08 A1.13.10 A1.13.11 A1.13.14 A1.13.16 A1.13.18 A1.13.19 A1.13.22
+A1.13.16 A1.13.06 A1.13.11 A1.13.12 A1.13.15 A1.13.19 A1.13.20 A1.13.23 A1.14.17
+A1.13.17 A1.12.15 A1.12.20 A1.13.09 A1.13.13 A1.13.14 A1.13.18 A1.13.21 A1.13.24
+A1.13.18 A1.13.10 A1.13.14 A1.13.15 A1.13.17 A1.13.19 A1.13.21 A1.13.22 A1.13.25
+A1.13.19 A1.13.11 A1.13.15 A1.13.16 A1.13.18 A1.13.20 A1.13.22 A1.13.23 A1.13.26
+A1.13.20 A1.13.12 A1.13.16 A1.13.19 A1.13.23 A1.13.27 A1.14.17 A1.14.20 A1.14.25
+A1.13.21 A1.12.20 A1.13.14 A1.13.17 A1.13.18 A1.13.22 A1.13.24 A1.13.25 A1.13.28
+A1.13.22 A1.13.15 A1.13.18 A1.13.19 A1.13.21 A1.13.23 A1.13.25 A1.13.26 A1.13.29
+A1.13.23 A1.13.16 A1.13.19 A1.13.20 A1.13.22 A1.13.26 A1.13.27 A1.13.30 A1.14.25
+A1.13.24 A1.12.20 A1.12.21 A1.12.25 A1.12.29 A1.13.17 A1.13.21 A1.13.25 A1.13.28
+A1.13.25 A1.13.18 A1.13.21 A1.13.22 A1.13.24 A1.13.26 A1.13.28 A1.13.29 A1.13.31
+A1.13.26 A1.13.19 A1.13.22 A1.13.23 A1.13.25 A1.13.27 A1.13.29 A1.13.30 A1.13.32
+A1.13.27 A1.13.20 A1.13.23 A1.13.26 A1.13.30 A1.13.33 A1.14.25 A1.14.28 A1.14.32
+A1.13.28 A1.12.25 A1.12.29 A1.12.33 A1.13.21 A1.13.24 A1.13.25 A1.13.29 A1.13.31
+A1.13.29 A1.13.22 A1.13.25 A1.13.26 A1.13.28 A1.13.30 A1.13.31 A1.13.32 A1.13.34
+A1.13.30 A1.13.23 A1.13.26 A1.13.27 A1.13.29 A1.13.32 A1.13.33 A1.13.36 A1.14.32
+A1.13.31 A1.12.29 A1.12.33 A1.13.25 A1.13.28 A1.13.29 A1.13.32 A1.13.34 A1.13.37
+A1.13.32 A1.13.26 A1.13.29 A1.13.30 A1.13.31 A1.13.33 A1.13.34 A1.13.36 A1.13.38
+A1.13.33 A1.13.27 A1.13.30 A1.13.32 A1.13.35 A1.13.36 A1.13.39 A1.14.32 A1.14.35
+A1.13.34 A1.12.33 A1.13.29 A1.13.31 A1.13.32 A1.13.36 A1.13.37 A1.13.38 A1.13.40
+A1.13.35 A1.13.33 A1.13.36 A1.13.39 A1.13.42 A1.14.32 A1.14.35 A1.14.37 A1.14.40
+A1.13.36 A1.13.30 A1.13.32 A1.13.33 A1.13.34 A1.13.35 A1.13.38 A1.13.39 A1.13.41
+A1.13.37 A1.12.33 A1.12.34 A1.12.37 A1.12.40 A1.13.31 A1.13.34 A1.13.38 A1.13.40
+A1.13.38 A1.13.32 A1.13.34 A1.13.36 A1.13.37 A1.13.39 A1.13.40 A1.13.41 A1.13.43
+A1.13.39 A1.13.33 A1.13.35 A1.13.36 A1.13.38 A1.13.41 A1.13.42 A1.13.44 A1.14.40
+A1.13.40 A1.12.37 A1.12.40 A1.12.43 A1.13.34 A1.13.37 A1.13.38 A1.13.41 A1.13.43
+A1.13.41 A1.13.36 A1.13.38 A1.13.39 A1.13.40 A1.13.42 A1.13.43 A1.13.44 A1.13.45
+A1.13.42 A1.13.35 A1.13.39 A1.13.41 A1.13.44 A1.13.46 A1.14.40 A1.14.42 A1.14.44
+A1.13.43 A1.12.40 A1.12.43 A1.13.38 A1.13.40 A1.13.41 A1.13.44 A1.13.45 A1.13.47
+A1.13.44 A1.13.39 A1.13.41 A1.13.42 A1.13.43 A1.13.45 A1.13.46 A1.13.48 A1.14.44
+A1.13.45 A1.12.43 A1.13.41 A1.13.43 A1.13.44 A1.13.46 A1.13.47 A1.13.48 A1.13.49
+A1.13.46 A1.13.42 A1.13.44 A1.13.45 A1.13.48 A1.13.50 A1.14.44 A1.14.46 A1.14.48
+A1.13.47 A1.12.43 A1.12.44 A1.12.46 A1.12.48 A1.13.43 A1.13.45 A1.13.48 A1.13.49
+A1.13.48 A1.13.44 A1.13.45 A1.13.46 A1.13.47 A1.13.49 A1.13.50 A1.13.51 A1.14.48
+A1.13.49 A1.12.46 A1.12.48 A1.12.50 A1.13.45 A1.13.47 A1.13.48 A1.13.50 A1.13.51
+A1.13.50 A1.13.46 A1.13.48 A1.13.49 A1.13.51 A1.13.52 A1.14.48 A1.14.49 A1.14.51
+A1.13.51 A1.12.48 A1.12.50 A1.12.54 A1.13.48 A1.13.49 A1.13.50 A1.13.52 A1.13.53 A1.13.55 A1.14.51
+A1.13.52 A1.13.50 A1.13.51 A1.13.53 A1.13.54 A1.13.56 A1.14.51
+A1.13.53 A1.12.54 A1.13.51 A1.13.52 A1.13.54 A1.13.55 A1.13.56 A1.13.57
+A1.13.54 A1.13.52 A1.13.53 A1.13.56 A1.13.58 A1.14.51 A1.14.55 A1.14.57
+A1.13.55 A1.12.54 A1.12.55 A1.12.58 A1.13.51 A1.13.53 A1.13.56 A1.13.57 A1.13.59
+A1.13.56 A1.13.52 A1.13.53 A1.13.54 A1.13.55 A1.13.57 A1.13.58 A1.13.60 A1.14.57
+A1.13.57 A1.12.58 A1.13.53 A1.13.55 A1.13.56 A1.13.58 A1.13.59 A1.13.60
+A1.13.58 A1.13.54 A1.13.56 A1.13.57 A1.13.60 A1.13.61 A1.14.57 A1.14.59 A1.14.61
+A1.13.59 A1.12.58 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.60 A1.13.62
+A1.13.60 A1.13.56 A1.13.57 A1.13.58 A1.13.59 A1.13.61 A1.13.62 A1.14.61
+A1.13.61 A1.13.58 A1.13.60 A1.13.62 A1.14.61 A1.14.62
+A1.13.62 A1.12.61 A1.12.62 A1.13.59 A1.13.60 A1.13.61
+A1.14.00 A1.14.02 A1.14.03 A1.14.11
+A1.14.01 A1.14.04 A1.14.06 A1.14.08 A1.14.12
+A1.14.02 A1.14.00 A1.14.05 A1.14.11 A1.14.13
+A1.14.03 A1.14.00 A1.14.07 A1.14.09 A1.14.11
+A1.14.04 A1.14.01 A1.14.08 A1.14.10
+A1.14.05 A1.14.02 A1.14.11 A1.14.13 A1.15.00 A1.15.08
+A1.14.06 A1.13.06 A1.13.12 A1.14.01 A1.14.12 A1.14.17
+A1.14.07 A1.14.03 A1.14.09 A1.14.10 A1.14.14
+A1.14.08 A1.14.01 A1.14.04 A1.14.10 A1.14.12 A1.14.15
+A1.14.09 A1.14.03 A1.14.07 A1.14.11 A1.14.14 A1.14.16
+A1.14.10 A1.14.04 A1.14.07 A1.14.08 A1.14.12 A1.14.14 A1.14.15 A1.14.18
+A1.14.11 A1.14.00 A1.14.02 A1.14.03 A1.14.05 A1.14.09 A1.14.13 A1.14.14 A1.14.16 A1.14.19
+A1.14.12 A1.13.12 A1.14.01 A1.14.06 A1.14.08 A1.14.10 A1.14.15 A1.14.17 A1.14.20
+A1.14.13 A1.14.02 A1.14.05 A1.14.11 A1.14.16 A1.14.19 A1.14.21 A1.15.07 A1.15.08 A1.15.18
+A1.14.14 A1.14.07 A1.14.09 A1.14.10 A1.14.11 A1.14.15 A1.14.16 A1.14.18 A1.14.22
+A1.14.15 A1.14.08 A1.14.10 A1.14.12 A1.14.14 A1.14.17 A1.14.18 A1.14.20 A1.14.23
+A1.14.16 A1.14.09 A1.14.11 A1.14.13 A1.14.14 A1.14.18 A1.14.19 A1.14.22 A1.14.24
+A1.14.17 A1.13.12 A1.13.16 A1.13.20 A1.14.06 A1.14.12 A1.14.15 A1.14.20 A1.14.25
+A1.14.18 A1.14.10 A1.14.14 A1.14.15 A1.14.16 A1.14.20 A1.14.22 A1.14.23 A1.14.27
+A1.14.19 A1.14.11 A1.14.13 A1.14.16 A1.14.21 A1.14.22 A1.14.24 A1.14.26 A1.15.18
+A1.14.20 A1.13.20 A1.14.12 A1.14.15 A1.14.17 A1.14.18 A1.14.23 A1.14.25 A1.14.28
+A1.14.21 A1.14.13 A1.14.19 A1.14.24 A1.14.26 A1.15.18 A1.15.19 A1.15.24 A1.15.29
+A1.14.22 A1.14.14 A1.14.16 A1.14.18 A1.14.19 A1.14.23 A1.14.24 A1.14.27 A1.14.29
+A1.14.23 A1.14.15 A1.14.18 A1.14.20 A1.14.22 A1.14.25 A1.14.27 A1.14.28 A1.14.30
+A1.14.24 A1.14.16 A1.14.19 A1.14.21 A1.14.22 A1.14.26 A1.14.27 A1.14.29 A1.14.31
+A1.14.25 A1.13.20 A1.13.23 A1.13.27 A1.14.17 A1.14.20 A1.14.23 A1.14.28 A1.14.32
+A1.14.26 A1.14.19 A1.14.21 A1.14.24 A1.14.29 A1.14.31 A1.14.33 A1.15.24 A1.15.29
+A1.14.27 A1.14.18 A1.14.22 A1.14.23 A1.14.24 A1.14.28 A1.14.29 A1.14.30 A1.14.34
+A1.14.28 A1.13.27 A1.14.20 A1.14.23 A1.14.25 A1.14.27 A1.14.30 A1.14.32 A1.14.35
+A1.14.29 A1.14.22 A1.14.24 A1.14.26 A1.14.27 A1.14.30 A1.14.31 A1.14.34 A1.14.36
+A1.14.30 A1.14.23 A1.14.27 A1.14.28 A1.14.29 A1.14.32 A1.14.34 A1.14.35 A1.14.37
+A1.14.31 A1.14.24 A1.14.26 A1.14.29 A1.14.33 A1.14.34 A1.14.36 A1.14.38 A1.15.29
+A1.14.32 A1.13.27 A1.13.30 A1.13.33 A1.13.35 A1.14.25 A1.14.28 A1.14.30 A1.14.35
+A1.14.33 A1.14.26 A1.14.31 A1.14.36 A1.14.38 A1.15.29 A1.15.30 A1.15.34 A1.15.38
+A1.14.34 A1.14.27 A1.14.29 A1.14.30 A1.14.31 A1.14.35 A1.14.36 A1.14.37 A1.14.39
+A1.14.35 A1.13.33 A1.13.35 A1.14.28 A1.14.30 A1.14.32 A1.14.34 A1.14.37 A1.14.40
+A1.14.36 A1.14.29 A1.14.31 A1.14.33 A1.14.34 A1.14.37 A1.14.38 A1.14.39 A1.14.41
+A1.14.37 A1.13.35 A1.14.30 A1.14.34 A1.14.35 A1.14.36 A1.14.39 A1.14.40 A1.14.42
+A1.14.38 A1.14.31 A1.14.33 A1.14.36 A1.14.39 A1.14.41 A1.15.34 A1.15.38 A1.15.42
+A1.14.39 A1.14.34 A1.14.36 A1.14.37 A1.14.38 A1.14.40 A1.14.41 A1.14.42 A1.14.43
+A1.14.40 A1.13.35 A1.13.39 A1.13.42 A1.14.35 A1.14.37 A1.14.39 A1.14.42 A1.14.44
+A1.14.41 A1.14.36 A1.14.38 A1.14.39 A1.14.42 A1.14.43 A1.14.45 A1.15.38 A1.15.42
+A1.14.42 A1.13.42 A1.14.37 A1.14.39 A1.14.40 A1.14.41 A1.14.43 A1.14.44 A1.14.46
+A1.14.43 A1.14.39 A1.14.41 A1.14.42 A1.14.44 A1.14.45 A1.14.46 A1.14.47 A1.15.42
+A1.14.44 A1.13.42 A1.13.44 A1.13.46 A1.14.40 A1.14.42 A1.14.43 A1.14.46 A1.14.48
+A1.14.45 A1.14.41 A1.14.43 A1.14.46 A1.14.47 A1.15.42 A1.15.43 A1.15.46 A1.15.49
+A1.14.46 A1.13.46 A1.14.42 A1.14.43 A1.14.44 A1.14.45 A1.14.47 A1.14.48 A1.14.49
+A1.14.47 A1.14.43 A1.14.45 A1.14.46 A1.14.48 A1.14.49 A1.14.50 A1.15.46 A1.15.49
+A1.14.48 A1.13.46 A1.13.48 A1.13.50 A1.14.44 A1.14.46 A1.14.47 A1.14.49 A1.14.51
+A1.14.49 A1.13.50 A1.14.46 A1.14.47 A1.14.48 A1.14.50 A1.14.51 A1.14.52 A1.15.49
+A1.14.50 A1.14.47 A1.14.49 A1.14.51 A1.14.52 A1.14.53 A1.14.54 A1.15.49 A1.15.50 A1.15.52
+A1.14.51 A1.13.50 A1.13.51 A1.13.52 A1.13.54 A1.14.48 A1.14.49 A1.14.50 A1.14.52 A1.14.55 A1.14.57
+A1.14.52 A1.14.49 A1.14.50 A1.14.51 A1.14.53 A1.14.55 A1.14.56
+A1.14.53 A1.14.50 A1.14.52 A1.14.54 A1.14.55 A1.14.56 A1.14.58 A1.15.52
+A1.14.54 A1.14.50 A1.14.53 A1.14.56 A1.14.58 A1.15.52 A1.15.54 A1.15.57
+A1.14.55 A1.13.54 A1.14.51 A1.14.52 A1.14.53 A1.14.56 A1.14.57 A1.14.59
+A1.14.56 A1.14.52 A1.14.53 A1.14.54 A1.14.55 A1.14.57 A1.14.58 A1.14.59 A1.14.60
+A1.14.57 A1.13.54 A1.13.56 A1.13.58 A1.14.51 A1.14.55 A1.14.56 A1.14.59 A1.14.61
+A1.14.58 A1.14.53 A1.14.54 A1.14.56 A1.14.59 A1.14.60 A1.15.54 A1.15.57 A1.15.60
+A1.14.59 A1.13.58 A1.14.55 A1.14.56 A1.14.57 A1.14.58 A1.14.60 A1.14.61 A1.14.62
+A1.14.60 A1.14.56 A1.14.58 A1.14.59 A1.14.61 A1.14.62 A1.15.57 A1.15.60
+A1.14.61 A1.13.58 A1.13.60 A1.13.61 A1.14.57 A1.14.59 A1.14.60 A1.14.62
+A1.14.62 A1.13.61 A1.14.59 A1.14.60 A1.14.61 A1.15.60
+A1.15.00 A1.14.05 A1.15.07 A1.15.08
+A1.15.01 A1.15.02 A1.15.04 A1.15.06 A1.15.10 A1.15.11
+A1.15.02 A1.00.01 A1.00.11 A1.15.01 A1.15.11 A1.15.12
+A1.15.03 A1.15.07 A1.15.13 A1.15.14
+A1.15.04 A1.15.01 A1.15.05 A1.15.06 A1.15.09
+A1.15.05 A1.15.04 A1.15.09 A1.15.14 A1.15.15
+A1.15.06 A1.15.01 A1.15.04 A1.15.09 A1.15.10 A1.15.15 A1.15.16
+A1.15.07 A1.14.13 A1.15.00 A1.15.03 A1.15.08 A1.15.13 A1.15.18 A1.15.19
+A1.15.08 A1.14.05 A1.14.13 A1.15.00 A1.15.07 A1.15.18
+A1.15.09 A1.15.04 A1.15.05 A1.15.06 A1.15.15 A1.15.16
+A1.15.10 A1.15.01 A1.15.06 A1.15.11 A1.15.16 A1.15.17
+A1.15.11 A1.15.01 A1.15.02 A1.15.10 A1.15.12 A1.15.16 A1.15.17
+A1.15.12 A1.00.01 A1.00.11 A1.00.16 A1.15.02 A1.15.11 A1.15.17
+A1.15.13 A1.15.03 A1.15.07 A1.15.14 A1.15.18 A1.15.19 A1.15.20
+A1.15.14 A1.15.03 A1.15.05 A1.15.13 A1.15.15 A1.15.19 A1.15.20 A1.15.21
+A1.15.15 A1.15.05 A1.15.06 A1.15.09 A1.15.14 A1.15.16 A1.15.20 A1.15.21 A1.15.22
+A1.15.16 A1.15.06 A1.15.09 A1.15.10 A1.15.11 A1.15.15 A1.15.17 A1.15.21 A1.15.22 A1.15.23
+A1.15.17 A1.00.11 A1.00.16 A1.00.22 A1.15.10 A1.15.11 A1.15.12 A1.15.16 A1.15.22 A1.15.23
+A1.15.18 A1.14.13 A1.14.19 A1.14.21 A1.15.07 A1.15.08 A1.15.13 A1.15.19 A1.15.24
+A1.15.19 A1.14.21 A1.15.07 A1.15.13 A1.15.14 A1.15.18 A1.15.20 A1.15.24 A1.15.25
+A1.15.20 A1.15.13 A1.15.14 A1.15.15 A1.15.19 A1.15.21 A1.15.24 A1.15.25 A1.15.26
+A1.15.21 A1.15.14 A1.15.15 A1.15.16 A1.15.20 A1.15.22 A1.15.25 A1.15.26 A1.15.27
+A1.15.22 A1.15.15 A1.15.16 A1.15.17 A1.15.21 A1.15.23 A1.15.26 A1.15.27 A1.15.28
+A1.15.23 A1.00.16 A1.00.22 A1.00.27 A1.15.16 A1.15.17 A1.15.22 A1.15.27 A1.15.28
+A1.15.24 A1.14.21 A1.14.26 A1.15.18 A1.15.19 A1.15.20 A1.15.25 A1.15.29 A1.15.30
+A1.15.25 A1.15.19 A1.15.20 A1.15.21 A1.15.24 A1.15.26 A1.15.29 A1.15.30 A1.15.31
+A1.15.26 A1.15.20 A1.15.21 A1.15.22 A1.15.25 A1.15.27 A1.15.30 A1.15.31 A1.15.32
+A1.15.27 A1.15.21 A1.15.22 A1.15.23 A1.15.26 A1.15.28 A1.15.31 A1.15.32 A1.15.33
+A1.15.28 A1.00.22 A1.00.27 A1.00.32 A1.15.22 A1.15.23 A1.15.27 A1.15.32 A1.15.33
+A1.15.29 A1.14.21 A1.14.26 A1.14.31 A1.14.33 A1.15.24 A1.15.25 A1.15.30 A1.15.34
+A1.15.30 A1.14.33 A1.15.24 A1.15.25 A1.15.26 A1.15.29 A1.15.31 A1.15.34 A1.15.35
+A1.15.31 A1.15.25 A1.15.26 A1.15.27 A1.15.30 A1.15.32 A1.15.34 A1.15.35 A1.15.36
+A1.15.32 A1.15.26 A1.15.27 A1.15.28 A1.15.31 A1.15.33 A1.15.35 A1.15.36 A1.15.37
+A1.15.33 A1.00.27 A1.00.32 A1.00.36 A1.15.27 A1.15.28 A1.15.32 A1.15.36 A1.15.37
+A1.15.34 A1.14.33 A1.14.38 A1.15.29 A1.15.30 A1.15.31 A1.15.35 A1.15.38 A1.15.39
+A1.15.35 A1.15.30 A1.15.31 A1.15.32 A1.15.34 A1.15.36 A1.15.38 A1.15.39 A1.15.40
+A1.15.36 A1.15.31 A1.15.32 A1.15.33 A1.15.35 A1.15.37 A1.15.39 A1.15.40 A1.15.41
+A1.15.37 A1.00.32 A1.00.36 A1.00.40 A1.15.32 A1.15.33 A1.15.36 A1.15.40 A1.15.41
+A1.15.38 A1.14.33 A1.14.38 A1.14.41 A1.15.34 A1.15.35 A1.15.39 A1.15.42 A1.15.43
+A1.15.39 A1.15.34 A1.15.35 A1.15.36 A1.15.38 A1.15.40 A1.15.42 A1.15.43 A1.15.44
+A1.15.40 A1.15.35 A1.15.36 A1.15.37 A1.15.39 A1.15.41 A1.15.43 A1.15.44 A1.15.45
+A1.15.41 A1.00.36 A1.00.40 A1.00.44 A1.15.36 A1.15.37 A1.15.40 A1.15.44 A1.15.45
+A1.15.42 A1.14.38 A1.14.41 A1.14.43 A1.14.45 A1.15.38 A1.15.39 A1.15.43 A1.15.46
+A1.15.43 A1.14.45 A1.15.38 A1.15.39 A1.15.40 A1.15.42 A1.15.44 A1.15.46 A1.15.47
+A1.15.44 A1.15.39 A1.15.40 A1.15.41 A1.15.43 A1.15.45 A1.15.46 A1.15.47 A1.15.48
+A1.15.45 A1.00.40 A1.00.44 A1.00.47 A1.15.40 A1.15.41 A1.15.44 A1.15.47 A1.15.48
+A1.15.46 A1.14.45 A1.14.47 A1.15.42 A1.15.43 A1.15.44 A1.15.47 A1.15.49 A1.15.50
+A1.15.47 A1.15.43 A1.15.44 A1.15.45 A1.15.46 A1.15.48 A1.15.49 A1.15.50 A1.15.51
+A1.15.48 A1.00.44 A1.00.47 A1.00.50 A1.15.44 A1.15.45 A1.15.47 A1.15.50 A1.15.51
+A1.15.49 A1.14.45 A1.14.47 A1.14.49 A1.14.50 A1.15.46 A1.15.47 A1.15.50 A1.15.52
+A1.15.50 A1.14.50 A1.15.46 A1.15.47 A1.15.48 A1.15.49 A1.15.51 A1.15.52 A1.15.53
+A1.15.51 A1.00.47 A1.00.50 A1.00.52 A1.15.47 A1.15.48 A1.15.50 A1.15.52 A1.15.53
+A1.15.52 A1.14.50 A1.14.53 A1.14.54 A1.15.49 A1.15.50 A1.15.51 A1.15.53 A1.15.54 A1.15.55
+A1.15.53 A1.00.50 A1.00.52 A1.00.56 A1.15.50 A1.15.51 A1.15.52 A1.15.54 A1.15.55 A1.15.56
+A1.15.54 A1.14.54 A1.14.58 A1.15.52 A1.15.53 A1.15.55 A1.15.57 A1.15.58
+A1.15.55 A1.15.52 A1.15.53 A1.15.54 A1.15.56 A1.15.57 A1.15.58 A1.15.59
+A1.15.56 A1.00.52 A1.00.56 A1.00.59 A1.15.53 A1.15.55 A1.15.58 A1.15.59
+A1.15.57 A1.14.54 A1.14.58 A1.14.60 A1.15.54 A1.15.55 A1.15.58 A1.15.60 A1.15.61
+A1.15.58 A1.15.54 A1.15.55 A1.15.56 A1.15.57 A1.15.59 A1.15.60 A1.15.61 A1.15.62
+A1.15.59 A1.00.56 A1.00.59 A1.00.62 A1.15.55 A1.15.56 A1.15.58 A1.15.61 A1.15.62
+A1.15.60 A1.14.58 A1.14.60 A1.14.62 A1.15.57 A1.15.58 A1.15.61
+A1.15.61 A1.15.57 A1.15.58 A1.15.59 A1.15.60 A1.15.62
+A1.15.62 A1.00.59 A1.00.62 A1.15.58 A1.15.59 A1.15.61
+A2.00.00 A2.00.02 A2.00.05 A2.00.06
+A2.00.01 A2.00.02 A2.00.06 A2.15.00 A2.15.06
+A2.00.02 A2.00.00 A2.00.01 A2.00.05 A2.00.06
+A2.00.03 A2.00.04 A2.00.07 A2.00.08 A2.01.04
+A2.00.04 A2.00.03 A2.00.05 A2.00.07 A2.00.08 A2.00.09
+A2.00.05 A2.00.00 A2.00.02 A2.00.04 A2.00.06 A2.00.08 A2.00.09 A2.00.10
+A2.00.06 A2.00.00 A2.00.01 A2.00.02 A2.00.05 A2.00.09 A2.00.10 A2.15.00 A2.15.06 A2.15.10
+A2.00.07 A2.00.03 A2.00.04 A2.00.08 A2.00.11 A2.01.04 A2.01.07 A2.01.10
+A2.00.08 A2.00.03 A2.00.04 A2.00.05 A2.00.07 A2.00.09 A2.00.11 A2.00.12 A2.01.10
+A2.00.09 A2.00.04 A2.00.05 A2.00.06 A2.00.08 A2.00.10 A2.00.11 A2.00.12 A2.00.13
+A2.00.10 A2.00.05 A2.00.06 A2.00.09 A2.00.12 A2.00.13 A2.15.06 A2.15.10 A2.15.13
+A2.00.11 A2.00.07 A2.00.08 A2.00.09 A2.00.12 A2.00.14 A2.00.15 A2.01.10 A2.01.13
+A2.00.12 A2.00.08 A2.00.09 A2.00.10 A2.00.11 A2.00.13 A2.00.14 A2.00.15 A2.00.16
+A2.00.13 A2.00.09 A2.00.10 A2.00.12 A2.00.15 A2.00.16 A2.15.10 A2.15.13 A2.15.16
+A2.00.14 A2.00.11 A2.00.12 A2.00.15 A2.00.17 A2.00.18 A2.01.10 A2.01.13 A2.01.16
+A2.00.15 A2.00.11 A2.00.12 A2.00.13 A2.00.14 A2.00.16 A2.00.17 A2.00.18 A2.00.19
+A2.00.16 A2.00.12 A2.00.13 A2.00.15 A2.00.18 A2.00.19 A2.15.13 A2.15.16 A2.15.19
+A2.00.17 A2.00.14 A2.00.15 A2.00.18 A2.00.20 A2.01.13 A2.01.16 A2.01.18 A2.01.20
+A2.00.18 A2.00.14 A2.00.15 A2.00.16 A2.00.17 A2.00.19 A2.00.20 A2.00.21 A2.01.20
+A2.00.19 A2.00.15 A2.00.16 A2.00.18 A2.00.20 A2.00.21 A2.15.16 A2.15.19 A2.15.21
+A2.00.20 A2.00.17 A2.00.18 A2.00.19 A2.00.21 A2.00.22 A2.00.23 A2.01.20 A2.01.22
+A2.00.21 A2.00.18 A2.00.19 A2.00.20 A2.00.22 A2.00.23 A2.15.19 A2.15.21 A2.15.23
+A2.00.22 A2.00.20 A2.00.21 A2.00.23 A2.00.24 A2.00.25 A2.01.20 A2.01.22 A2.01.24
+A2.00.23 A2.00.20 A2.00.21 A2.00.22 A2.00.24 A2.00.25 A2.15.21 A2.15.23 A2.15.25
+A2.00.24 A2.00.22 A2.00.23 A2.00.25 A2.00.26 A2.01.22 A2.01.24 A2.01.25 A2.01.26
+A2.00.25 A2.00.22 A2.00.23 A2.00.24 A2.00.26 A2.01.26 A2.15.23 A2.15.25 A2.15.26
+A2.00.26 A2.00.24 A2.00.25 A2.00.27 A2.01.26 A2.01.28 A2.15.25 A2.15.26 A2.15.27
+A2.00.27 A2.00.26 A2.00.28 A2.00.29 A2.01.26 A2.01.28 A2.01.30 A2.15.26 A2.15.27 A2.15.29
+A2.00.28 A2.00.27 A2.00.29 A2.01.28 A2.01.30 A2.01.31
+A2.00.29 A2.00.27 A2.00.28 A2.15.27 A2.15.29
+A2.01.00 A2.01.03 A2.01.05 A2.02.01
+A2.01.01 A2.01.05 A2.01.06
+A2.01.02 A2.01.04 A2.01.06 A2.01.07
+A2.01.03 A2.01.00 A2.01.05 A2.01.08 A2.02.01 A2.02.06
+A2.01.04 A2.00.03 A2.00.07 A2.01.02 A2.01.06 A2.01.07 A2.01.10
+A2.01.05 A2.01.00 A2.01.01 A2.01.03 A2.01.06 A2.01.08 A2.01.09 A2.01.12
+A2.01.06 A2.01.01 A2.01.02 A2.01.04 A2.01.05 A2.01.07 A2.01.09 A2.01.11
+A2.01.07 A2.00.07 A2.01.02 A2.01.04 A2.01.06 A2.01.09 A2.01.10 A2.01.11 A2.01.13
+A2.01.08 A2.01.03 A2.01.05 A2.01.09 A2.01.12 A2.01.14 A2.02.06 A2.02.09 A2.02.11
+A2.01.09 A2.01.05 A2.01.06 A2.01.07 A2.01.08 A2.01.11 A2.01.12 A2.01.15
+A2.01.10 A2.00.07 A2.00.08 A2.00.11 A2.00.14 A2.01.04 A2.01.07 A2.01.11 A2.01.13
+A2.01.11 A2.01.06 A2.01.07 A2.01.09 A2.01.10 A2.01.12 A2.01.13 A2.01.15 A2.01.16
+A2.01.12 A2.01.05 A2.01.08 A2.01.09 A2.01.11 A2.01.14 A2.01.15 A2.01.17 A2.02.11
+A2.01.13 A2.00.11 A2.00.14 A2.00.17 A2.01.07 A2.01.10 A2.01.11 A2.01.15 A2.01.16
+A2.01.14 A2.01.08 A2.01.12 A2.01.15 A2.01.17 A2.01.19 A2.02.11 A2.02.14 A2.02.16
+A2.01.15 A2.01.09 A2.01.11 A2.01.12 A2.01.13 A2.01.14 A2.01.16 A2.01.17 A2.01.18
+A2.01.16 A2.00.14 A2.00.17 A2.01.11 A2.01.13 A2.01.15 A2.01.17 A2.01.18 A2.01.20
+A2.01.17 A2.01.12 A2.01.14 A2.01.15 A2.01.16 A2.01.18 A2.01.19 A2.01.21 A2.02.16
+A2.01.18 A2.00.17 A2.01.15 A2.01.16 A2.01.17 A2.01.19 A2.01.20 A2.01.21 A2.01.22
+A2.01.19 A2.01.14 A2.01.17 A2.01.18 A2.01.21 A2.01.23 A2.02.16 A2.02.18 A2.02.20
+A2.01.20 A2.00.17 A2.00.18 A2.00.20 A2.00.22 A2.01.16 A2.01.18 A2.01.21 A2.01.22
+A2.01.21 A2.01.17 A2.01.18 A2.01.19 A2.01.20 A2.01.22 A2.01.23 A2.01.24 A2.02.20
+A2.01.22 A2.00.20 A2.00.22 A2.00.24 A2.01.18 A2.01.20 A2.01.21 A2.01.23 A2.01.24
+A2.01.23 A2.01.19 A2.01.21 A2.01.22 A2.01.24 A2.01.25 A2.02.20 A2.02.22 A2.02.24
+A2.01.24 A2.00.22 A2.00.24 A2.01.21 A2.01.22 A2.01.23 A2.01.25 A2.01.26 A2.02.24
+A2.01.25 A2.00.24 A2.01.23 A2.01.24 A2.01.26 A2.01.27 A2.01.28 A2.02.24 A2.02.25
+A2.01.26 A2.00.24 A2.00.25 A2.00.26 A2.00.27 A2.01.24 A2.01.25 A2.01.27 A2.01.28
+A2.01.27 A2.01.25 A2.01.26 A2.01.28 A2.02.24 A2.02.25 A2.02.26 A2.02.27 A2.02.29
+A2.01.28 A2.00.26 A2.00.27 A2.00.28 A2.01.25 A2.01.26 A2.01.27 A2.01.29 A2.01.30 A2.02.27 A2.02.29
+A2.01.29 A2.01.28 A2.01.30 A2.01.31 A2.02.29 A2.02.30
+A2.01.30 A2.00.27 A2.00.28 A2.01.28 A2.01.29 A2.01.31
+A2.01.31 A2.00.28 A2.01.29 A2.01.30 A2.02.29 A2.02.30
+A2.02.00 A2.02.02 A2.02.07 A2.02.08
+A2.02.01 A2.01.00 A2.01.03 A2.02.06
+A2.02.02 A2.02.00 A2.02.04 A2.02.07 A2.02.08 A2.03.01
+A2.02.03 A2.02.05 A2.02.06 A2.02.09
+A2.02.04 A2.02.02 A2.02.08 A2.03.01 A2.03.06
+A2.02.05 A2.02.03 A2.02.07 A2.02.09 A2.02.10
+A2.02.06 A2.01.03 A2.01.08 A2.02.01 A2.02.03 A2.02.09 A2.02.11
+A2.02.07 A2.02.00 A2.02.02 A2.02.05 A2.02.08 A2.02.09 A2.02.10 A2.02.12
+A2.02.08 A2.02.00 A2.02.02 A2.02.04 A2.02.07 A2.02.10 A2.02.12 A2.02.13 A2.03.01 A2.03.06
+A2.02.09 A2.01.08 A2.02.03 A2.02.05 A2.02.06 A2.02.07 A2.02.10 A2.02.11 A2.02.14
+A2.02.10 A2.02.05 A2.02.07 A2.02.08 A2.02.09 A2.02.11 A2.02.12 A2.02.14 A2.02.15
+A2.02.11 A2.01.08 A2.01.12 A2.01.14 A2.02.06 A2.02.09 A2.02.10 A2.02.14 A2.02.16
+A2.02.12 A2.02.07 A2.02.08 A2.02.10 A2.02.13 A2.02.14 A2.02.15 A2.02.17 A2.03.06
+A2.02.13 A2.02.08 A2.02.12 A2.02.15 A2.02.17 A2.03.06 A2.03.07 A2.03.11 A2.03.15
+A2.02.14 A2.01.14 A2.02.09 A2.02.10 A2.02.11 A2.02.12 A2.02.15 A2.02.16 A2.02.18
+A2.02.15 A2.02.10 A2.02.12 A2.02.13 A2.02.14 A2.02.16 A2.02.17 A2.02.18 A2.02.19
+A2.02.16 A2.01.14 A2.01.17 A2.01.19 A2.02.11 A2.02.14 A2.02.15 A2.02.18 A2.02.20
+A2.02.17 A2.02.12 A2.02.13 A2.02.15 A2.02.18 A2.02.19 A2.02.21 A2.03.11 A2.03.15
+A2.02.18 A2.01.19 A2.02.14 A2.02.15 A2.02.16 A2.02.17 A2.02.19 A2.02.20 A2.02.22
+A2.02.19 A2.02.15 A2.02.17 A2.02.18 A2.02.20 A2.02.21 A2.02.22 A2.02.23 A2.03.15
+A2.02.20 A2.01.19 A2.01.21 A2.01.23 A2.02.16 A2.02.18 A2.02.19 A2.02.22 A2.02.24
+A2.02.21 A2.02.17 A2.02.19 A2.02.22 A2.02.23 A2.03.15 A2.03.16 A2.03.19 A2.03.22
+A2.02.22 A2.01.23 A2.02.18 A2.02.19 A2.02.20 A2.02.21 A2.02.23 A2.02.24 A2.02.25
+A2.02.23 A2.02.19 A2.02.21 A2.02.22 A2.02.24 A2.02.25 A2.02.26 A2.03.19 A2.03.22
+A2.02.24 A2.01.23 A2.01.24 A2.01.25 A2.01.27 A2.02.20 A2.02.22 A2.02.23 A2.02.25
+A2.02.25 A2.01.25 A2.01.27 A2.02.22 A2.02.23 A2.02.24 A2.02.26 A2.02.27 A2.03.22
+A2.02.26 A2.01.27 A2.02.23 A2.02.25 A2.02.27 A2.02.28 A2.03.22 A2.03.23 A2.03.25
+A2.02.27 A2.01.27 A2.01.28 A2.02.25 A2.02.26 A2.02.28 A2.02.29 A2.02.30 A2.03.25
+A2.02.28 A2.02.26 A2.02.27 A2.02.30 A2.02.31 A2.03.25 A2.03.26 A2.03.27 A2.03.29
+A2.02.29 A2.01.27 A2.01.28 A2.01.29 A2.01.31 A2.02.27 A2.02.30
+A2.02.30 A2.01.29 A2.01.31 A2.02.27 A2.02.28 A2.02.29 A2.02.31
+A2.02.31 A2.02.28 A2.02.30 A2.03.29
+A2.03.00 A2.03.03 A2.03.04 A2.03.05 A2.04.00 A2.04.05
+A2.03.01 A2.02.02 A2.02.04 A2.02.08 A2.03.02 A2.03.06 A2.03.07
+A2.03.02 A2.03.01 A2.03.03 A2.03.06 A2.03.07 A2.03.08
+A2.03.03 A2.03.00 A2.03.02 A2.03.04 A2.03.07 A2.03.08 A2.03.09
+A2.03.04 A2.03.00 A2.03.03 A2.03.05 A2.03.08 A2.03.09 A2.03.10
+A2.03.05 A2.03.00 A2.03.04 A2.03.09 A2.03.10 A2.04.00 A2.04.05 A2.04.10
+A2.03.06 A2.02.04 A2.02.08 A2.02.12 A2.02.13 A2.03.01 A2.03.02 A2.03.07 A2.03.11
+A2.03.07 A2.02.13 A2.03.01 A2.03.02 A2.03.03 A2.03.06 A2.03.08 A2.03.11 A2.03.12
+A2.03.08 A2.03.02 A2.03.03 A2.03.04 A2.03.07 A2.03.09 A2.03.11 A2.03.12 A2.03.13
+A2.03.09 A2.03.03 A2.03.04 A2.03.05 A2.03.08 A2.03.10 A2.03.12 A2.03.13 A2.03.14
+A2.03.10 A2.03.04 A2.03.05 A2.03.09 A2.03.13 A2.03.14 A2.04.05 A2.04.10 A2.04.14
+A2.03.11 A2.02.13 A2.02.17 A2.03.06 A2.03.07 A2.03.08 A2.03.12 A2.03.15 A2.03.16
+A2.03.12 A2.03.07 A2.03.08 A2.03.09 A2.03.11 A2.03.13 A2.03.15 A2.03.16 A2.03.17
+A2.03.13 A2.03.08 A2.03.09 A2.03.10 A2.03.12 A2.03.14 A2.03.16 A2.03.17 A2.03.18
+A2.03.14 A2.03.09 A2.03.10 A2.03.13 A2.03.17 A2.03.18 A2.04.10 A2.04.14 A2.04.18
+A2.03.15 A2.02.13 A2.02.17 A2.02.19 A2.02.21 A2.03.11 A2.03.12 A2.03.16 A2.03.19
+A2.03.16 A2.02.21 A2.03.11 A2.03.12 A2.03.13 A2.03.15 A2.03.17 A2.03.19 A2.03.20
+A2.03.17 A2.03.12 A2.03.13 A2.03.14 A2.03.16 A2.03.18 A2.03.19 A2.03.20 A2.03.21
+A2.03.18 A2.03.13 A2.03.14 A2.03.17 A2.03.20 A2.03.21 A2.04.14 A2.04.18 A2.04.21
+A2.03.19 A2.02.21 A2.02.23 A2.03.15 A2.03.16 A2.03.17 A2.03.20 A2.03.22 A2.03.23
+A2.03.20 A2.03.16 A2.03.17 A2.03.18 A2.03.19 A2.03.21 A2.03.22 A2.03.23 A2.03.24
+A2.03.21 A2.03.17 A2.03.18 A2.03.20 A2.03.23 A2.03.24 A2.04.18 A2.04.21 A2.04.24
+A2.03.22 A2.02.21 A2.02.23 A2.02.25 A2.02.26 A2.03.19 A2.03.20 A2.03.23 A2.03.25
+A2.03.23 A2.02.26 A2.03.19 A2.03.20 A2.03.21 A2.03.22 A2.03.24 A2.03.25 A2.03.26
+A2.03.24 A2.03.20 A2.03.21 A2.03.23 A2.03.25 A2.03.26 A2.04.21 A2.04.24 A2.04.26
+A2.03.25 A2.02.26 A2.02.27 A2.02.28 A2.03.22 A2.03.23 A2.03.24 A2.03.26 A2.03.27
+A2.03.26 A2.02.28 A2.03.23 A2.03.24 A2.03.25 A2.03.27 A2.03.28 A2.04.24 A2.04.26 A2.04.28
+A2.03.27 A2.02.28 A2.03.25 A2.03.26 A2.03.28 A2.03.29 A2.03.30
+A2.03.28 A2.03.26 A2.03.27 A2.03.29 A2.03.30 A2.04.26 A2.04.28 A2.04.30
+A2.03.29 A2.02.28 A2.02.31 A2.03.27 A2.03.28 A2.03.30
+A2.03.30 A2.03.27 A2.03.28 A2.03.29 A2.04.28 A2.04.30
+A2.04.00 A2.03.00 A2.03.05 A2.04.03 A2.04.04 A2.04.05
+A2.04.01 A2.04.02 A2.04.06 A2.04.07 A2.05.02 A2.05.04 A2.05.08
+A2.04.02 A2.04.01 A2.04.03 A2.04.06 A2.04.07 A2.04.08
+A2.04.03 A2.04.00 A2.04.02 A2.04.04 A2.04.07 A2.04.08 A2.04.09
+A2.04.04 A2.04.00 A2.04.03 A2.04.05 A2.04.08 A2.04.09 A2.04.10
+A2.04.05 A2.03.00 A2.03.05 A2.03.10 A2.04.00 A2.04.04 A2.04.09 A2.04.10
+A2.04.06 A2.04.01 A2.04.02 A2.04.07 A2.04.11 A2.05.04 A2.05.08 A2.05.12 A2.05.13
+A2.04.07 A2.04.01 A2.04.02 A2.04.03 A2.04.06 A2.04.08 A2.04.11 A2.04.12 A2.05.13
+A2.04.08 A2.04.02 A2.04.03 A2.04.04 A2.04.07 A2.04.09 A2.04.11 A2.04.12 A2.04.13
+A2.04.09 A2.04.03 A2.04.04 A2.04.05 A2.04.08 A2.04.10 A2.04.12 A2.04.13 A2.04.14
+A2.04.10 A2.03.05 A2.03.10 A2.03.14 A2.04.04 A2.04.05 A2.04.09 A2.04.13 A2.04.14
+A2.04.11 A2.04.06 A2.04.07 A2.04.08 A2.04.12 A2.04.15 A2.04.16 A2.05.13 A2.05.17
+A2.04.12 A2.04.07 A2.04.08 A2.04.09 A2.04.11 A2.04.13 A2.04.15 A2.04.16 A2.04.17
+A2.04.13 A2.04.08 A2.04.09 A2.04.10 A2.04.12 A2.04.14 A2.04.16 A2.04.17 A2.04.18
+A2.04.14 A2.03.10 A2.03.14 A2.03.18 A2.04.09 A2.04.10 A2.04.13 A2.04.17 A2.04.18
+A2.04.15 A2.04.11 A2.04.12 A2.04.16 A2.04.19 A2.05.13 A2.05.17 A2.05.19 A2.05.21
+A2.04.16 A2.04.11 A2.04.12 A2.04.13 A2.04.15 A2.04.17 A2.04.19 A2.04.20 A2.05.21
+A2.04.17 A2.04.12 A2.04.13 A2.04.14 A2.04.16 A2.04.18 A2.04.19 A2.04.20 A2.04.21
+A2.04.18 A2.03.14 A2.03.18 A2.03.21 A2.04.13 A2.04.14 A2.04.17 A2.04.20 A2.04.21
+A2.04.19 A2.04.15 A2.04.16 A2.04.17 A2.04.20 A2.04.22 A2.04.23 A2.05.21 A2.05.23
+A2.04.20 A2.04.16 A2.04.17 A2.04.18 A2.04.19 A2.04.21 A2.04.22 A2.04.23 A2.04.24
+A2.04.21 A2.03.18 A2.03.21 A2.03.24 A2.04.17 A2.04.18 A2.04.20 A2.04.23 A2.04.24
+A2.04.22 A2.04.19 A2.04.20 A2.04.23 A2.04.25 A2.05.21 A2.05.23 A2.05.25 A2.05.26
+A2.04.23 A2.04.19 A2.04.20 A2.04.21 A2.04.22 A2.04.24 A2.04.25 A2.04.26 A2.05.26
+A2.04.24 A2.03.21 A2.03.24 A2.03.26 A2.04.20 A2.04.21 A2.04.23 A2.04.25 A2.04.26
+A2.04.25 A2.04.22 A2.04.23 A2.04.24 A2.04.26 A2.04.27 A2.05.26 A2.05.27 A2.05.28
+A2.04.26 A2.03.24 A2.03.26 A2.03.28 A2.04.23 A2.04.24 A2.04.25 A2.04.27 A2.04.28 A2.05.28
+A2.04.27 A2.04.25 A2.04.26 A2.04.28 A2.04.29 A2.04.30 A2.05.28
+A2.04.28 A2.03.26 A2.03.28 A2.03.30 A2.04.26 A2.04.27 A2.04.29 A2.04.30
+A2.04.29 A2.04.27 A2.04.28 A2.04.30 A2.05.28 A2.05.31
+A2.04.30 A2.03.28 A2.03.30 A2.04.27 A2.04.28 A2.04.29 A2.05.31
+A2.05.00 A2.05.03 A2.05.06 A2.06.00
+A2.05.01 A2.05.02 A2.05.07 A2.05.08
+A2.05.02 A2.04.01 A2.05.01 A2.05.04 A2.05.07 A2.05.08
+A2.05.03 A2.05.00 A2.05.05 A2.05.06 A2.05.09
+A2.05.04 A2.04.01 A2.04.06 A2.05.02 A2.05.08
+A2.05.05 A2.05.03 A2.05.07 A2.05.09 A2.05.10
+A2.05.06 A2.05.00 A2.05.03 A2.05.09 A2.05.11 A2.06.00 A2.06.05 A2.06.08
+A2.05.07 A2.05.01 A2.05.02 A2.05.05 A2.05.08 A2.05.09 A2.05.10 A2.05.12
+A2.05.08 A2.04.01 A2.04.06 A2.05.01 A2.05.02 A2.05.04 A2.05.07 A2.05.10 A2.05.12 A2.05.13
+A2.05.09 A2.05.03 A2.05.05 A2.05.06 A2.05.07 A2.05.10 A2.05.11 A2.05.14 A2.06.08
+A2.05.10 A2.05.05 A2.05.07 A2.05.08 A2.05.09 A2.05.11 A2.05.12 A2.05.14 A2.05.15
+A2.05.11 A2.05.06 A2.05.09 A2.05.10 A2.05.14 A2.05.16 A2.06.08 A2.06.12 A2.06.14
+A2.05.12 A2.04.06 A2.05.07 A2.05.08 A2.05.10 A2.05.13 A2.05.14 A2.05.15 A2.05.17
+A2.05.13 A2.04.06 A2.04.07 A2.04.11 A2.04.15 A2.05.08 A2.05.12 A2.05.15 A2.05.17
+A2.05.14 A2.05.09 A2.05.10 A2.05.11 A2.05.12 A2.05.15 A2.05.16 A2.05.18 A2.06.14
+A2.05.15 A2.05.10 A2.05.12 A2.05.13 A2.05.14 A2.05.16 A2.05.17 A2.05.18 A2.05.19
+A2.05.16 A2.05.11 A2.05.14 A2.05.15 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.19
+A2.05.17 A2.04.11 A2.04.15 A2.05.12 A2.05.13 A2.05.15 A2.05.18 A2.05.19 A2.05.21
+A2.05.18 A2.05.14 A2.05.15 A2.05.16 A2.05.17 A2.05.19 A2.05.20 A2.05.22 A2.06.19
+A2.05.19 A2.04.15 A2.05.15 A2.05.17 A2.05.18 A2.05.20 A2.05.21 A2.05.22 A2.05.23
+A2.05.20 A2.05.16 A2.05.18 A2.05.19 A2.05.22 A2.05.24 A2.06.19 A2.06.21 A2.06.23
+A2.05.21 A2.04.15 A2.04.16 A2.04.19 A2.04.22 A2.05.17 A2.05.19 A2.05.22 A2.05.23
+A2.05.22 A2.05.18 A2.05.19 A2.05.20 A2.05.21 A2.05.23 A2.05.24 A2.05.25 A2.06.23
+A2.05.23 A2.04.19 A2.04.22 A2.05.19 A2.05.21 A2.05.22 A2.05.24 A2.05.25 A2.05.26
+A2.05.24 A2.05.20 A2.05.22 A2.05.23 A2.05.25 A2.06.23 A2.06.24 A2.06.25 A2.06.27
+A2.05.25 A2.04.22 A2.05.22 A2.05.23 A2.05.24 A2.05.26 A2.05.27 A2.06.25 A2.06.27
+A2.05.26 A2.04.22 A2.04.23 A2.04.25 A2.05.23 A2.05.25 A2.05.27 A2.05.28 A2.06.27
+A2.05.27 A2.04.25 A2.05.25 A2.05.26 A2.05.28 A2.05.29 A2.05.30 A2.06.27 A2.06.28 A2.06.29
+A2.05.28 A2.04.25 A2.04.26 A2.04.27 A2.04.29 A2.05.26 A2.05.27 A2.05.29 A2.05.30 A2.05.31
+A2.05.29 A2.05.27 A2.05.28 A2.05.30 A2.06.29 A2.06.30 A2.06.31
+A2.05.30 A2.05.27 A2.05.28 A2.05.29 A2.05.31 A2.06.31
+A2.05.31 A2.04.29 A2.04.30 A2.05.28 A2.05.30
+A2.06.00 A2.05.00 A2.05.06 A2.06.05
+A2.06.01 A2.06.03 A2.06.05
+A2.06.02 A2.06.04 A2.06.06 A2.06.07
+A2.06.03 A2.06.01 A2.06.05 A2.06.06 A2.06.09
+A2.06.04 A2.06.02 A2.06.06 A2.06.07 A2.06.10 A2.07.03 A2.07.07
+A2.06.05 A2.05.06 A2.06.00 A2.06.01 A2.06.03 A2.06.06 A2.06.08 A2.06.09 A2.06.12
+A2.06.06 A2.06.02 A2.06.03 A2.06.04 A2.06.05 A2.06.07 A2.06.09 A2.06.11
+A2.06.07 A2.06.02 A2.06.04 A2.06.06 A2.06.09 A2.06.10 A2.06.11 A2.06.13 A2.07.07
+A2.06.08 A2.05.06 A2.05.09 A2.05.11 A2.06.05 A2.06.09 A2.06.12 A2.06.14
+A2.06.09 A2.06.03 A2.06.05 A2.06.06 A2.06.07 A2.06.08 A2.06.11 A2.06.12 A2.06.15
+A2.06.10 A2.06.04 A2.06.07 A2.06.11 A2.06.13 A2.07.07 A2.07.08 A2.07.11 A2.07.14
+A2.06.11 A2.06.06 A2.06.07 A2.06.09 A2.06.10 A2.06.12 A2.06.13 A2.06.15 A2.06.16
+A2.06.12 A2.05.11 A2.06.05 A2.06.08 A2.06.09 A2.06.11 A2.06.14 A2.06.15 A2.06.17
+A2.06.13 A2.06.07 A2.06.10 A2.06.11 A2.06.15 A2.06.16 A2.07.11 A2.07.14 A2.07.17
+A2.06.14 A2.05.11 A2.05.14 A2.05.16 A2.06.08 A2.06.12 A2.06.15 A2.06.17 A2.06.19
+A2.06.15 A2.06.09 A2.06.11 A2.06.12 A2.06.13 A2.06.14 A2.06.16 A2.06.17 A2.06.18
+A2.06.16 A2.06.11 A2.06.13 A2.06.15 A2.06.17 A2.06.18 A2.06.20 A2.07.14 A2.07.17
+A2.06.17 A2.05.16 A2.06.12 A2.06.14 A2.06.15 A2.06.16 A2.06.18 A2.06.19 A2.06.21
+A2.06.18 A2.06.15 A2.06.16 A2.06.17 A2.06.19 A2.06.20 A2.06.21 A2.06.22 A2.07.17
+A2.06.19 A2.05.16 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.18 A2.06.21 A2.06.23
+A2.06.20 A2.06.16 A2.06.18 A2.06.21 A2.06.22 A2.07.17 A2.07.18 A2.07.20 A2.07.22
+A2.06.21 A2.05.20 A2.06.17 A2.06.18 A2.06.19 A2.06.20 A2.06.22 A2.06.23 A2.06.24
+A2.06.22 A2.06.18 A2.06.20 A2.06.21 A2.06.23 A2.06.24 A2.07.20 A2.07.22 A2.07.24
+A2.06.23 A2.05.20 A2.05.22 A2.05.24 A2.06.19 A2.06.21 A2.06.22 A2.06.24 A2.06.25
+A2.06.24 A2.05.24 A2.06.21 A2.06.22 A2.06.23 A2.06.25 A2.06.26 A2.07.22 A2.07.24
+A2.06.25 A2.05.24 A2.05.25 A2.06.23 A2.06.24 A2.06.26 A2.06.27 A2.06.28 A2.07.24
+A2.06.26 A2.06.24 A2.06.25 A2.06.27 A2.06.28 A2.07.24 A2.07.25 A2.07.26 A2.07.27
+A2.06.27 A2.05.24 A2.05.25 A2.05.26 A2.05.27 A2.06.25 A2.06.26 A2.06.28 A2.06.29
+A2.06.28 A2.05.27 A2.06.25 A2.06.26 A2.06.27 A2.06.29 A2.06.30 A2.07.26 A2.07.27 A2.07.28
+A2.06.29 A2.05.27 A2.05.29 A2.06.27 A2.06.28 A2.06.30 A2.06.31
+A2.06.30 A2.05.29 A2.06.28 A2.06.29 A2.06.31 A2.07.27 A2.07.28
+A2.06.31 A2.05.29 A2.05.30 A2.06.29 A2.06.30 A2.07.28
+A2.07.00 A2.07.01 A2.07.05 A2.07.06
+A2.07.01 A2.07.00 A2.07.02 A2.07.05 A2.07.06
+A2.07.02 A2.07.01 A2.07.06 A2.08.01 A2.08.06
+A2.07.03 A2.06.04 A2.07.04 A2.07.07 A2.07.08
+A2.07.04 A2.07.03 A2.07.05 A2.07.07 A2.07.08 A2.07.09
+A2.07.05 A2.07.00 A2.07.01 A2.07.04 A2.07.06 A2.07.08 A2.07.09 A2.07.10
+A2.07.06 A2.07.00 A2.07.01 A2.07.02 A2.07.05 A2.07.09 A2.07.10 A2.08.01 A2.08.06 A2.08.10
+A2.07.07 A2.06.04 A2.06.07 A2.06.10 A2.07.03 A2.07.04 A2.07.08 A2.07.11
+A2.07.08 A2.06.10 A2.07.03 A2.07.04 A2.07.05 A2.07.07 A2.07.09 A2.07.11 A2.07.12
+A2.07.09 A2.07.04 A2.07.05 A2.07.06 A2.07.08 A2.07.10 A2.07.11 A2.07.12 A2.07.13
+A2.07.10 A2.07.05 A2.07.06 A2.07.09 A2.07.12 A2.07.13 A2.08.06 A2.08.10 A2.08.13
+A2.07.11 A2.06.10 A2.06.13 A2.07.07 A2.07.08 A2.07.09 A2.07.12 A2.07.14 A2.07.15
+A2.07.12 A2.07.08 A2.07.09 A2.07.10 A2.07.11 A2.07.13 A2.07.14 A2.07.15 A2.07.16
+A2.07.13 A2.07.09 A2.07.10 A2.07.12 A2.07.15 A2.07.16 A2.08.10 A2.08.13 A2.08.16
+A2.07.14 A2.06.10 A2.06.13 A2.06.16 A2.07.11 A2.07.12 A2.07.15 A2.07.17 A2.07.18
+A2.07.15 A2.07.11 A2.07.12 A2.07.13 A2.07.14 A2.07.16 A2.07.17 A2.07.18 A2.07.19
+A2.07.16 A2.07.12 A2.07.13 A2.07.15 A2.07.18 A2.07.19 A2.08.13 A2.08.16 A2.08.19
+A2.07.17 A2.06.13 A2.06.16 A2.06.18 A2.06.20 A2.07.14 A2.07.15 A2.07.18 A2.07.20
+A2.07.18 A2.06.20 A2.07.14 A2.07.15 A2.07.16 A2.07.17 A2.07.19 A2.07.20 A2.07.21
+A2.07.19 A2.07.15 A2.07.16 A2.07.18 A2.07.20 A2.07.21 A2.08.16 A2.08.19 A2.08.21
+A2.07.20 A2.06.20 A2.06.22 A2.07.17 A2.07.18 A2.07.19 A2.07.21 A2.07.22 A2.07.23
+A2.07.21 A2.07.18 A2.07.19 A2.07.20 A2.07.22 A2.07.23 A2.08.19 A2.08.21 A2.08.23
+A2.07.22 A2.06.20 A2.06.22 A2.06.24 A2.07.20 A2.07.21 A2.07.23 A2.07.24 A2.07.25
+A2.07.23 A2.07.20 A2.07.21 A2.07.22 A2.07.24 A2.07.25 A2.08.21 A2.08.23 A2.08.25
+A2.07.24 A2.06.22 A2.06.24 A2.06.25 A2.06.26 A2.07.22 A2.07.23 A2.07.25 A2.07.26
+A2.07.25 A2.06.26 A2.07.22 A2.07.23 A2.07.24 A2.07.26 A2.08.23 A2.08.25 A2.08.26
+A2.07.26 A2.06.26 A2.06.28 A2.07.24 A2.07.25 A2.07.27 A2.08.25 A2.08.26 A2.08.27
+A2.07.27 A2.06.26 A2.06.28 A2.06.30 A2.07.26 A2.07.28 A2.07.29 A2.08.26 A2.08.27 A2.08.29
+A2.07.28 A2.06.28 A2.06.30 A2.06.31 A2.07.27 A2.07.29
+A2.07.29 A2.07.27 A2.07.28 A2.08.27 A2.08.29
+A2.08.00 A2.08.02 A2.08.05 A2.08.06
+A2.08.01 A2.07.02 A2.07.06 A2.08.02 A2.08.06
+A2.08.02 A2.08.00 A2.08.01 A2.08.05 A2.08.06
+A2.08.03 A2.08.04 A2.08.07 A2.08.08 A2.09.04
+A2.08.04 A2.08.03 A2.08.05 A2.08.07 A2.08.08 A2.08.09
+A2.08.05 A2.08.00 A2.08.02 A2.08.04 A2.08.06 A2.08.08 A2.08.09 A2.08.10
+A2.08.06 A2.07.02 A2.07.06 A2.07.10 A2.08.00 A2.08.01 A2.08.02 A2.08.05 A2.08.09 A2.08.10
+A2.08.07 A2.08.03 A2.08.04 A2.08.08 A2.08.11 A2.09.04 A2.09.07 A2.09.10
+A2.08.08 A2.08.03 A2.08.04 A2.08.05 A2.08.07 A2.08.09 A2.08.11 A2.08.12 A2.09.10
+A2.08.09 A2.08.04 A2.08.05 A2.08.06 A2.08.08 A2.08.10 A2.08.11 A2.08.12 A2.08.13
+A2.08.10 A2.07.06 A2.07.10 A2.07.13 A2.08.05 A2.08.06 A2.08.09 A2.08.12 A2.08.13
+A2.08.11 A2.08.07 A2.08.08 A2.08.09 A2.08.12 A2.08.14 A2.08.15 A2.09.10 A2.09.13
+A2.08.12 A2.08.08 A2.08.09 A2.08.10 A2.08.11 A2.08.13 A2.08.14 A2.08.15 A2.08.16
+A2.08.13 A2.07.10 A2.07.13 A2.07.16 A2.08.09 A2.08.10 A2.08.12 A2.08.15 A2.08.16
+A2.08.14 A2.08.11 A2.08.12 A2.08.15 A2.08.17 A2.08.18 A2.09.10 A2.09.13 A2.09.16
+A2.08.15 A2.08.11 A2.08.12 A2.08.13 A2.08.14 A2.08.16 A2.08.17 A2.08.18 A2.08.19
+A2.08.16 A2.07.13 A2.07.16 A2.07.19 A2.08.12 A2.08.13 A2.08.15 A2.08.18 A2.08.19
+A2.08.17 A2.08.14 A2.08.15 A2.08.18 A2.08.20 A2.09.13 A2.09.16 A2.09.18 A2.09.20
+A2.08.18 A2.08.14 A2.08.15 A2.08.16 A2.08.17 A2.08.19 A2.08.20 A2.08.21 A2.09.20
+A2.08.19 A2.07.16 A2.07.19 A2.07.21 A2.08.15 A2.08.16 A2.08.18 A2.08.20 A2.08.21
+A2.08.20 A2.08.17 A2.08.18 A2.08.19 A2.08.21 A2.08.22 A2.08.23 A2.09.20 A2.09.22
+A2.08.21 A2.07.19 A2.07.21 A2.07.23 A2.08.18 A2.08.19 A2.08.20 A2.08.22 A2.08.23
+A2.08.22 A2.08.20 A2.08.21 A2.08.23 A2.08.24 A2.08.25 A2.09.20 A2.09.22 A2.09.24
+A2.08.23 A2.07.21 A2.07.23 A2.07.25 A2.08.20 A2.08.21 A2.08.22 A2.08.24 A2.08.25
+A2.08.24 A2.08.22 A2.08.23 A2.08.25 A2.08.26 A2.09.22 A2.09.24 A2.09.25 A2.09.26
+A2.08.25 A2.07.23 A2.07.25 A2.07.26 A2.08.22 A2.08.23 A2.08.24 A2.08.26 A2.09.26
+A2.08.26 A2.07.25 A2.07.26 A2.07.27 A2.08.24 A2.08.25 A2.08.27 A2.09.26 A2.09.28
+A2.08.27 A2.07.26 A2.07.27 A2.07.29 A2.08.26 A2.08.28 A2.08.29 A2.09.26 A2.09.28 A2.09.30
+A2.08.28 A2.08.27 A2.08.29 A2.09.28 A2.09.30 A2.09.31
+A2.08.29 A2.07.27 A2.07.29 A2.08.27 A2.08.28
+A2.09.00 A2.09.03 A2.09.05 A2.10.01
+A2.09.01 A2.09.05 A2.09.06
+A2.09.02 A2.09.04 A2.09.06 A2.09.07
+A2.09.03 A2.09.00 A2.09.05 A2.09.08 A2.10.01 A2.10.06
+A2.09.04 A2.08.03 A2.08.07 A2.09.02 A2.09.06 A2.09.07 A2.09.10
+A2.09.05 A2.09.00 A2.09.01 A2.09.03 A2.09.06 A2.09.08 A2.09.09 A2.09.12
+A2.09.06 A2.09.01 A2.09.02 A2.09.04 A2.09.05 A2.09.07 A2.09.09 A2.09.11
+A2.09.07 A2.08.07 A2.09.02 A2.09.04 A2.09.06 A2.09.09 A2.09.10 A2.09.11 A2.09.13
+A2.09.08 A2.09.03 A2.09.05 A2.09.09 A2.09.12 A2.09.14 A2.10.06 A2.10.09 A2.10.11
+A2.09.09 A2.09.05 A2.09.06 A2.09.07 A2.09.08 A2.09.11 A2.09.12 A2.09.15
+A2.09.10 A2.08.07 A2.08.08 A2.08.11 A2.08.14 A2.09.04 A2.09.07 A2.09.11 A2.09.13
+A2.09.11 A2.09.06 A2.09.07 A2.09.09 A2.09.10 A2.09.12 A2.09.13 A2.09.15 A2.09.16
+A2.09.12 A2.09.05 A2.09.08 A2.09.09 A2.09.11 A2.09.14 A2.09.15 A2.09.17 A2.10.11
+A2.09.13 A2.08.11 A2.08.14 A2.08.17 A2.09.07 A2.09.10 A2.09.11 A2.09.15 A2.09.16
+A2.09.14 A2.09.08 A2.09.12 A2.09.15 A2.09.17 A2.09.19 A2.10.11 A2.10.14 A2.10.16
+A2.09.15 A2.09.09 A2.09.11 A2.09.12 A2.09.13 A2.09.14 A2.09.16 A2.09.17 A2.09.18
+A2.09.16 A2.08.14 A2.08.17 A2.09.11 A2.09.13 A2.09.15 A2.09.17 A2.09.18 A2.09.20
+A2.09.17 A2.09.12 A2.09.14 A2.09.15 A2.09.16 A2.09.18 A2.09.19 A2.09.21 A2.10.16
+A2.09.18 A2.08.17 A2.09.15 A2.09.16 A2.09.17 A2.09.19 A2.09.20 A2.09.21 A2.09.22
+A2.09.19 A2.09.14 A2.09.17 A2.09.18 A2.09.21 A2.09.23 A2.10.16 A2.10.18 A2.10.20
+A2.09.20 A2.08.17 A2.08.18 A2.08.20 A2.08.22 A2.09.16 A2.09.18 A2.09.21 A2.09.22
+A2.09.21 A2.09.17 A2.09.18 A2.09.19 A2.09.20 A2.09.22 A2.09.23 A2.09.24 A2.10.20
+A2.09.22 A2.08.20 A2.08.22 A2.08.24 A2.09.18 A2.09.20 A2.09.21 A2.09.23 A2.09.24
+A2.09.23 A2.09.19 A2.09.21 A2.09.22 A2.09.24 A2.09.25 A2.10.20 A2.10.22 A2.10.24
+A2.09.24 A2.08.22 A2.08.24 A2.09.21 A2.09.22 A2.09.23 A2.09.25 A2.09.26 A2.10.24
+A2.09.25 A2.08.24 A2.09.23 A2.09.24 A2.09.26 A2.09.27 A2.09.28 A2.10.24 A2.10.25
+A2.09.26 A2.08.24 A2.08.25 A2.08.26 A2.08.27 A2.09.24 A2.09.25 A2.09.27 A2.09.28
+A2.09.27 A2.09.25 A2.09.26 A2.09.28 A2.10.24 A2.10.25 A2.10.26 A2.10.27 A2.10.29
+A2.09.28 A2.08.26 A2.08.27 A2.08.28 A2.09.25 A2.09.26 A2.09.27 A2.09.29 A2.09.30 A2.10.27 A2.10.29
+A2.09.29 A2.09.28 A2.09.30 A2.09.31 A2.10.29 A2.10.30
+A2.09.30 A2.08.27 A2.08.28 A2.09.28 A2.09.29 A2.09.31
+A2.09.31 A2.08.28 A2.09.29 A2.09.30 A2.10.29 A2.10.30
+A2.10.00 A2.10.02 A2.10.07 A2.10.08
+A2.10.01 A2.09.00 A2.09.03 A2.10.06
+A2.10.02 A2.10.00 A2.10.04 A2.10.07 A2.10.08 A2.11.01
+A2.10.03 A2.10.05 A2.10.06 A2.10.09
+A2.10.04 A2.10.02 A2.10.08 A2.11.01 A2.11.06
+A2.10.05 A2.10.03 A2.10.07 A2.10.09 A2.10.10
+A2.10.06 A2.09.03 A2.09.08 A2.10.01 A2.10.03 A2.10.09 A2.10.11
+A2.10.07 A2.10.00 A2.10.02 A2.10.05 A2.10.08 A2.10.09 A2.10.10 A2.10.12
+A2.10.08 A2.10.00 A2.10.02 A2.10.04 A2.10.07 A2.10.10 A2.10.12 A2.10.13 A2.11.01 A2.11.06
+A2.10.09 A2.09.08 A2.10.03 A2.10.05 A2.10.06 A2.10.07 A2.10.10 A2.10.11 A2.10.14
+A2.10.10 A2.10.05 A2.10.07 A2.10.08 A2.10.09 A2.10.11 A2.10.12 A2.10.14 A2.10.15
+A2.10.11 A2.09.08 A2.09.12 A2.09.14 A2.10.06 A2.10.09 A2.10.10 A2.10.14 A2.10.16
+A2.10.12 A2.10.07 A2.10.08 A2.10.10 A2.10.13 A2.10.14 A2.10.15 A2.10.17 A2.11.06
+A2.10.13 A2.10.08 A2.10.12 A2.10.15 A2.10.17 A2.11.06 A2.11.07 A2.11.11 A2.11.15
+A2.10.14 A2.09.14 A2.10.09 A2.10.10 A2.10.11 A2.10.12 A2.10.15 A2.10.16 A2.10.18
+A2.10.15 A2.10.10 A2.10.12 A2.10.13 A2.10.14 A2.10.16 A2.10.17 A2.10.18 A2.10.19
+A2.10.16 A2.09.14 A2.09.17 A2.09.19 A2.10.11 A2.10.14 A2.10.15 A2.10.18 A2.10.20
+A2.10.17 A2.10.12 A2.10.13 A2.10.15 A2.10.18 A2.10.19 A2.10.21 A2.11.11 A2.11.15
+A2.10.18 A2.09.19 A2.10.14 A2.10.15 A2.10.16 A2.10.17 A2.10.19 A2.10.20 A2.10.22
+A2.10.19 A2.10.15 A2.10.17 A2.10.18 A2.10.20 A2.10.21 A2.10.22 A2.10.23 A2.11.15
+A2.10.20 A2.09.19 A2.09.21 A2.09.23 A2.10.16 A2.10.18 A2.10.19 A2.10.22 A2.10.24
+A2.10.21 A2.10.17 A2.10.19 A2.10.22 A2.10.23 A2.11.15 A2.11.16 A2.11.19 A2.11.22
+A2.10.22 A2.09.23 A2.10.18 A2.10.19 A2.10.20 A2.10.21 A2.10.23 A2.10.24 A2.10.25
+A2.10.23 A2.10.19 A2.10.21 A2.10.22 A2.10.24 A2.10.25 A2.10.26 A2.11.19 A2.11.22
+A2.10.24 A2.09.23 A2.09.24 A2.09.25 A2.09.27 A2.10.20 A2.10.22 A2.10.23 A2.10.25
+A2.10.25 A2.09.25 A2.09.27 A2.10.22 A2.10.23 A2.10.24 A2.10.26 A2.10.27 A2.11.22
+A2.10.26 A2.09.27 A2.10.23 A2.10.25 A2.10.27 A2.10.28 A2.11.22 A2.11.23 A2.11.25
+A2.10.27 A2.09.27 A2.09.28 A2.10.25 A2.10.26 A2.10.28 A2.10.29 A2.10.30 A2.11.25
+A2.10.28 A2.10.26 A2.10.27 A2.10.30 A2.10.31 A2.11.25 A2.11.26 A2.11.27 A2.11.29
+A2.10.29 A2.09.27 A2.09.28 A2.09.29 A2.09.31 A2.10.27 A2.10.30
+A2.10.30 A2.09.29 A2.09.31 A2.10.27 A2.10.28 A2.10.29 A2.10.31
+A2.10.31 A2.10.28 A2.10.30 A2.11.29
+A2.11.00 A2.11.03 A2.11.04 A2.11.05 A2.12.00 A2.12.05
+A2.11.01 A2.10.02 A2.10.04 A2.10.08 A2.11.02 A2.11.06 A2.11.07
+A2.11.02 A2.11.01 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A2.11.03 A2.11.00 A2.11.02 A2.11.04 A2.11.07 A2.11.08 A2.11.09
+A2.11.04 A2.11.00 A2.11.03 A2.11.05 A2.11.08 A2.11.09 A2.11.10
+A2.11.05 A2.11.00 A2.11.04 A2.11.09 A2.11.10 A2.12.00 A2.12.05 A2.12.10
+A2.11.06 A2.10.04 A2.10.08 A2.10.12 A2.10.13 A2.11.01 A2.11.02 A2.11.07 A2.11.11
+A2.11.07 A2.10.13 A2.11.01 A2.11.02 A2.11.03 A2.11.06 A2.11.08 A2.11.11 A2.11.12
+A2.11.08 A2.11.02 A2.11.03 A2.11.04 A2.11.07 A2.11.09 A2.11.11 A2.11.12 A2.11.13
+A2.11.09 A2.11.03 A2.11.04 A2.11.05 A2.11.08 A2.11.10 A2.11.12 A2.11.13 A2.11.14
+A2.11.10 A2.11.04 A2.11.05 A2.11.09 A2.11.13 A2.11.14 A2.12.05 A2.12.10 A2.12.14
+A2.11.11 A2.10.13 A2.10.17 A2.11.06 A2.11.07 A2.11.08 A2.11.12 A2.11.15 A2.11.16
+A2.11.12 A2.11.07 A2.11.08 A2.11.09 A2.11.11 A2.11.13 A2.11.15 A2.11.16 A2.11.17
+A2.11.13 A2.11.08 A2.11.09 A2.11.10 A2.11.12 A2.11.14 A2.11.16 A2.11.17 A2.11.18
+A2.11.14 A2.11.09 A2.11.10 A2.11.13 A2.11.17 A2.11.18 A2.12.10 A2.12.14 A2.12.18
+A2.11.15 A2.10.13 A2.10.17 A2.10.19 A2.10.21 A2.11.11 A2.11.12 A2.11.16 A2.11.19
+A2.11.16 A2.10.21 A2.11.11 A2.11.12 A2.11.13 A2.11.15 A2.11.17 A2.11.19 A2.11.20
+A2.11.17 A2.11.12 A2.11.13 A2.11.14 A2.11.16 A2.11.18 A2.11.19 A2.11.20 A2.11.21
+A2.11.18 A2.11.13 A2.11.14 A2.11.17 A2.11.20 A2.11.21 A2.12.14 A2.12.18 A2.12.21
+A2.11.19 A2.10.21 A2.10.23 A2.11.15 A2.11.16 A2.11.17 A2.11.20 A2.11.22 A2.11.23
+A2.11.20 A2.11.16 A2.11.17 A2.11.18 A2.11.19 A2.11.21 A2.11.22 A2.11.23 A2.11.24
+A2.11.21 A2.11.17 A2.11.18 A2.11.20 A2.11.23 A2.11.24 A2.12.18 A2.12.21 A2.12.24
+A2.11.22 A2.10.21 A2.10.23 A2.10.25 A2.10.26 A2.11.19 A2.11.20 A2.11.23 A2.11.25
+A2.11.23 A2.10.26 A2.11.19 A2.11.20 A2.11.21 A2.11.22 A2.11.24 A2.11.25 A2.11.26
+A2.11.24 A2.11.20 A2.11.21 A2.11.23 A2.11.25 A2.11.26 A2.12.21 A2.12.24 A2.12.26
+A2.11.25 A2.10.26 A2.10.27 A2.10.28 A2.11.22 A2.11.23 A2.11.24 A2.11.26 A2.11.27
+A2.11.26 A2.10.28 A2.11.23 A2.11.24 A2.11.25 A2.11.27 A2.11.28 A2.12.24 A2.12.26 A2.12.28
+A2.11.27 A2.10.28 A2.11.25 A2.11.26 A2.11.28 A2.11.29 A2.11.30
+A2.11.28 A2.11.26 A2.11.27 A2.11.29 A2.11.30 A2.12.26 A2.12.28 A2.12.30
+A2.11.29 A2.10.28 A2.10.31 A2.11.27 A2.11.28 A2.11.30
+A2.11.30 A2.11.27 A2.11.28 A2.11.29 A2.12.28 A2.12.30
+A2.12.00 A2.11.00 A2.11.05 A2.12.03 A2.12.04 A2.12.05
+A2.12.01 A2.12.02 A2.12.06 A2.12.07 A2.13.02 A2.13.04 A2.13.08
+A2.12.02 A2.12.01 A2.12.03 A2.12.06 A2.12.07 A2.12.08
+A2.12.03 A2.12.00 A2.12.02 A2.12.04 A2.12.07 A2.12.08 A2.12.09
+A2.12.04 A2.12.00 A2.12.03 A2.12.05 A2.12.08 A2.12.09 A2.12.10
+A2.12.05 A2.11.00 A2.11.05 A2.11.10 A2.12.00 A2.12.04 A2.12.09 A2.12.10
+A2.12.06 A2.12.01 A2.12.02 A2.12.07 A2.12.11 A2.13.04 A2.13.08 A2.13.12 A2.13.13
+A2.12.07 A2.12.01 A2.12.02 A2.12.03 A2.12.06 A2.12.08 A2.12.11 A2.12.12 A2.13.13
+A2.12.08 A2.12.02 A2.12.03 A2.12.04 A2.12.07 A2.12.09 A2.12.11 A2.12.12 A2.12.13
+A2.12.09 A2.12.03 A2.12.04 A2.12.05 A2.12.08 A2.12.10 A2.12.12 A2.12.13 A2.12.14
+A2.12.10 A2.11.05 A2.11.10 A2.11.14 A2.12.04 A2.12.05 A2.12.09 A2.12.13 A2.12.14
+A2.12.11 A2.12.06 A2.12.07 A2.12.08 A2.12.12 A2.12.15 A2.12.16 A2.13.13 A2.13.17
+A2.12.12 A2.12.07 A2.12.08 A2.12.09 A2.12.11 A2.12.13 A2.12.15 A2.12.16 A2.12.17
+A2.12.13 A2.12.08 A2.12.09 A2.12.10 A2.12.12 A2.12.14 A2.12.16 A2.12.17 A2.12.18
+A2.12.14 A2.11.10 A2.11.14 A2.11.18 A2.12.09 A2.12.10 A2.12.13 A2.12.17 A2.12.18
+A2.12.15 A2.12.11 A2.12.12 A2.12.16 A2.12.19 A2.13.13 A2.13.17 A2.13.19 A2.13.21
+A2.12.16 A2.12.11 A2.12.12 A2.12.13 A2.12.15 A2.12.17 A2.12.19 A2.12.20 A2.13.21
+A2.12.17 A2.12.12 A2.12.13 A2.12.14 A2.12.16 A2.12.18 A2.12.19 A2.12.20 A2.12.21
+A2.12.18 A2.11.14 A2.11.18 A2.11.21 A2.12.13 A2.12.14 A2.12.17 A2.12.20 A2.12.21
+A2.12.19 A2.12.15 A2.12.16 A2.12.17 A2.12.20 A2.12.22 A2.12.23 A2.13.21 A2.13.23
+A2.12.20 A2.12.16 A2.12.17 A2.12.18 A2.12.19 A2.12.21 A2.12.22 A2.12.23 A2.12.24
+A2.12.21 A2.11.18 A2.11.21 A2.11.24 A2.12.17 A2.12.18 A2.12.20 A2.12.23 A2.12.24
+A2.12.22 A2.12.19 A2.12.20 A2.12.23 A2.12.25 A2.13.21 A2.13.23 A2.13.25 A2.13.26
+A2.12.23 A2.12.19 A2.12.20 A2.12.21 A2.12.22 A2.12.24 A2.12.25 A2.12.26 A2.13.26
+A2.12.24 A2.11.21 A2.11.24 A2.11.26 A2.12.20 A2.12.21 A2.12.23 A2.12.25 A2.12.26
+A2.12.25 A2.12.22 A2.12.23 A2.12.24 A2.12.26 A2.12.27 A2.13.26 A2.13.27 A2.13.28
+A2.12.26 A2.11.24 A2.11.26 A2.11.28 A2.12.23 A2.12.24 A2.12.25 A2.12.27 A2.12.28 A2.13.28
+A2.12.27 A2.12.25 A2.12.26 A2.12.28 A2.12.29 A2.12.30 A2.13.28
+A2.12.28 A2.11.26 A2.11.28 A2.11.30 A2.12.26 A2.12.27 A2.12.29 A2.12.30
+A2.12.29 A2.12.27 A2.12.28 A2.12.30 A2.13.28 A2.13.31
+A2.12.30 A2.11.28 A2.11.30 A2.12.27 A2.12.28 A2.12.29 A2.13.31
+A2.13.00 A2.13.03 A2.13.06 A2.14.00
+A2.13.01 A2.13.02 A2.13.07 A2.13.08
+A2.13.02 A2.12.01 A2.13.01 A2.13.04 A2.13.07 A2.13.08
+A2.13.03 A2.13.00 A2.13.05 A2.13.06 A2.13.09
+A2.13.04 A2.12.01 A2.12.06 A2.13.02 A2.13.08
+A2.13.05 A2.13.03 A2.13.07 A2.13.09 A2.13.10
+A2.13.06 A2.13.00 A2.13.03 A2.13.09 A2.13.11 A2.14.00 A2.14.05 A2.14.08
+A2.13.07 A2.13.01 A2.13.02 A2.13.05 A2.13.08 A2.13.09 A2.13.10 A2.13.12
+A2.13.08 A2.12.01 A2.12.06 A2.13.01 A2.13.02 A2.13.04 A2.13.07 A2.13.10 A2.13.12 A2.13.13
+A2.13.09 A2.13.03 A2.13.05 A2.13.06 A2.13.07 A2.13.10 A2.13.11 A2.13.14 A2.14.08
+A2.13.10 A2.13.05 A2.13.07 A2.13.08 A2.13.09 A2.13.11 A2.13.12 A2.13.14 A2.13.15
+A2.13.11 A2.13.06 A2.13.09 A2.13.10 A2.13.14 A2.13.16 A2.14.08 A2.14.12 A2.14.14
+A2.13.12 A2.12.06 A2.13.07 A2.13.08 A2.13.10 A2.13.13 A2.13.14 A2.13.15 A2.13.17
+A2.13.13 A2.12.06 A2.12.07 A2.12.11 A2.12.15 A2.13.08 A2.13.12 A2.13.15 A2.13.17
+A2.13.14 A2.13.09 A2.13.10 A2.13.11 A2.13.12 A2.13.15 A2.13.16 A2.13.18 A2.14.14
+A2.13.15 A2.13.10 A2.13.12 A2.13.13 A2.13.14 A2.13.16 A2.13.17 A2.13.18 A2.13.19
+A2.13.16 A2.13.11 A2.13.14 A2.13.15 A2.13.18 A2.13.20 A2.14.14 A2.14.17 A2.14.19
+A2.13.17 A2.12.11 A2.12.15 A2.13.12 A2.13.13 A2.13.15 A2.13.18 A2.13.19 A2.13.21
+A2.13.18 A2.13.14 A2.13.15 A2.13.16 A2.13.17 A2.13.19 A2.13.20 A2.13.22 A2.14.19
+A2.13.19 A2.12.15 A2.13.15 A2.13.17 A2.13.18 A2.13.20 A2.13.21 A2.13.22 A2.13.23
+A2.13.20 A2.13.16 A2.13.18 A2.13.19 A2.13.22 A2.13.24 A2.14.19 A2.14.21 A2.14.23
+A2.13.21 A2.12.15 A2.12.16 A2.12.19 A2.12.22 A2.13.17 A2.13.19 A2.13.22 A2.13.23
+A2.13.22 A2.13.18 A2.13.19 A2.13.20 A2.13.21 A2.13.23 A2.13.24 A2.13.25 A2.14.23
+A2.13.23 A2.12.19 A2.12.22 A2.13.19 A2.13.21 A2.13.22 A2.13.24 A2.13.25 A2.13.26
+A2.13.24 A2.13.20 A2.13.22 A2.13.23 A2.13.25 A2.14.23 A2.14.24 A2.14.25 A2.14.27
+A2.13.25 A2.12.22 A2.13.22 A2.13.23 A2.13.24 A2.13.26 A2.13.27 A2.14.25 A2.14.27
+A2.13.26 A2.12.22 A2.12.23 A2.12.25 A2.13.23 A2.13.25 A2.13.27 A2.13.28 A2.14.27
+A2.13.27 A2.12.25 A2.13.25 A2.13.26 A2.13.28 A2.13.29 A2.13.30 A2.14.27 A2.14.28 A2.14.29
+A2.13.28 A2.12.25 A2.12.26 A2.12.27 A2.12.29 A2.13.26 A2.13.27 A2.13.29 A2.13.30 A2.13.31
+A2.13.29 A2.13.27 A2.13.28 A2.13.30 A2.14.29 A2.14.30 A2.14.31
+A2.13.30 A2.13.27 A2.13.28 A2.13.29 A2.13.31 A2.14.31
+A2.13.31 A2.12.29 A2.12.30 A2.13.28 A2.13.30
+A2.14.00 A2.13.00 A2.13.06 A2.14.05
+A2.14.01 A2.14.03 A2.14.05
+A2.14.02 A2.14.04 A2.14.06 A2.14.07
+A2.14.03 A2.14.01 A2.14.05 A2.14.06 A2.14.09
+A2.14.04 A2.14.02 A2.14.06 A2.14.07 A2.14.10 A2.15.03 A2.15.07
+A2.14.05 A2.13.06 A2.14.00 A2.14.01 A2.14.03 A2.14.06 A2.14.08 A2.14.09 A2.14.12
+A2.14.06 A2.14.02 A2.14.03 A2.14.04 A2.14.05 A2.14.07 A2.14.09 A2.14.11
+A2.14.07 A2.14.02 A2.14.04 A2.14.06 A2.14.09 A2.14.10 A2.14.11 A2.14.13 A2.15.07
+A2.14.08 A2.13.06 A2.13.09 A2.13.11 A2.14.05 A2.14.09 A2.14.12 A2.14.14
+A2.14.09 A2.14.03 A2.14.05 A2.14.06 A2.14.07 A2.14.08 A2.14.11 A2.14.12 A2.14.15
+A2.14.10 A2.14.04 A2.14.07 A2.14.11 A2.14.13 A2.15.07 A2.15.08 A2.15.11 A2.15.14
+A2.14.11 A2.14.06 A2.14.07 A2.14.09 A2.14.10 A2.14.12 A2.14.13 A2.14.15 A2.14.16
+A2.14.12 A2.13.11 A2.14.05 A2.14.08 A2.14.09 A2.14.11 A2.14.14 A2.14.15 A2.14.17
+A2.14.13 A2.14.07 A2.14.10 A2.14.11 A2.14.15 A2.14.16 A2.15.11 A2.15.14 A2.15.17
+A2.14.14 A2.13.11 A2.13.14 A2.13.16 A2.14.08 A2.14.12 A2.14.15 A2.14.17 A2.14.19
+A2.14.15 A2.14.09 A2.14.11 A2.14.12 A2.14.13 A2.14.14 A2.14.16 A2.14.17 A2.14.18
+A2.14.16 A2.14.11 A2.14.13 A2.14.15 A2.14.17 A2.14.18 A2.14.20 A2.15.14 A2.15.17
+A2.14.17 A2.13.16 A2.14.12 A2.14.14 A2.14.15 A2.14.16 A2.14.18 A2.14.19 A2.14.21
+A2.14.18 A2.14.15 A2.14.16 A2.14.17 A2.14.19 A2.14.20 A2.14.21 A2.14.22 A2.15.17
+A2.14.19 A2.13.16 A2.13.18 A2.13.20 A2.14.14 A2.14.17 A2.14.18 A2.14.21 A2.14.23
+A2.14.20 A2.14.16 A2.14.18 A2.14.21 A2.14.22 A2.15.17 A2.15.18 A2.15.20 A2.15.22
+A2.14.21 A2.13.20 A2.14.17 A2.14.18 A2.14.19 A2.14.20 A2.14.22 A2.14.23 A2.14.24
+A2.14.22 A2.14.18 A2.14.20 A2.14.21 A2.14.23 A2.14.24 A2.15.20 A2.15.22 A2.15.24
+A2.14.23 A2.13.20 A2.13.22 A2.13.24 A2.14.19 A2.14.21 A2.14.22 A2.14.24 A2.14.25
+A2.14.24 A2.13.24 A2.14.21 A2.14.22 A2.14.23 A2.14.25 A2.14.26 A2.15.22 A2.15.24
+A2.14.25 A2.13.24 A2.13.25 A2.14.23 A2.14.24 A2.14.26 A2.14.27 A2.14.28 A2.15.24
+A2.14.26 A2.14.24 A2.14.25 A2.14.27 A2.14.28 A2.15.24 A2.15.25 A2.15.26 A2.15.27
+A2.14.27 A2.13.24 A2.13.25 A2.13.26 A2.13.27 A2.14.25 A2.14.26 A2.14.28 A2.14.29
+A2.14.28 A2.13.27 A2.14.25 A2.14.26 A2.14.27 A2.14.29 A2.14.30 A2.15.26 A2.15.27 A2.15.28
+A2.14.29 A2.13.27 A2.13.29 A2.14.27 A2.14.28 A2.14.30 A2.14.31
+A2.14.30 A2.13.29 A2.14.28 A2.14.29 A2.14.31 A2.15.27 A2.15.28
+A2.14.31 A2.13.29 A2.13.30 A2.14.29 A2.14.30 A2.15.28
+A2.15.00 A2.00.01 A2.00.06 A2.15.01 A2.15.06
+A2.15.01 A2.15.00 A2.15.02 A2.15.05 A2.15.06
+A2.15.02 A2.15.01 A2.15.05 A2.15.06
+A2.15.03 A2.14.04 A2.15.04 A2.15.07 A2.15.08
+A2.15.04 A2.15.03 A2.15.05 A2.15.07 A2.15.08 A2.15.09
+A2.15.05 A2.15.01 A2.15.02 A2.15.04 A2.15.06 A2.15.08 A2.15.09 A2.15.10
+A2.15.06 A2.00.01 A2.00.06 A2.00.10 A2.15.00 A2.15.01 A2.15.02 A2.15.05 A2.15.09 A2.15.10
+A2.15.07 A2.14.04 A2.14.07 A2.14.10 A2.15.03 A2.15.04 A2.15.08 A2.15.11
+A2.15.08 A2.14.10 A2.15.03 A2.15.04 A2.15.05 A2.15.07 A2.15.09 A2.15.11 A2.15.12
+A2.15.09 A2.15.04 A2.15.05 A2.15.06 A2.15.08 A2.15.10 A2.15.11 A2.15.12 A2.15.13
+A2.15.10 A2.00.06 A2.00.10 A2.00.13 A2.15.05 A2.15.06 A2.15.09 A2.15.12 A2.15.13
+A2.15.11 A2.14.10 A2.14.13 A2.15.07 A2.15.08 A2.15.09 A2.15.12 A2.15.14 A2.15.15
+A2.15.12 A2.15.08 A2.15.09 A2.15.10 A2.15.11 A2.15.13 A2.15.14 A2.15.15 A2.15.16
+A2.15.13 A2.00.10 A2.00.13 A2.00.16 A2.15.09 A2.15.10 A2.15.12 A2.15.15 A2.15.16
+A2.15.14 A2.14.10 A2.14.13 A2.14.16 A2.15.11 A2.15.12 A2.15.15 A2.15.17 A2.15.18
+A2.15.15 A2.15.11 A2.15.12 A2.15.13 A2.15.14 A2.15.16 A2.15.17 A2.15.18 A2.15.19
+A2.15.16 A2.00.13 A2.00.16 A2.00.19 A2.15.12 A2.15.13 A2.15.15 A2.15.18 A2.15.19
+A2.15.17 A2.14.13 A2.14.16 A2.14.18 A2.14.20 A2.15.14 A2.15.15 A2.15.18 A2.15.20
+A2.15.18 A2.14.20 A2.15.14 A2.15.15 A2.15.16 A2.15.17 A2.15.19 A2.15.20 A2.15.21
+A2.15.19 A2.00.16 A2.00.19 A2.00.21 A2.15.15 A2.15.16 A2.15.18 A2.15.20 A2.15.21
+A2.15.20 A2.14.20 A2.14.22 A2.15.17 A2.15.18 A2.15.19 A2.15.21 A2.15.22 A2.15.23
+A2.15.21 A2.00.19 A2.00.21 A2.00.23 A2.15.18 A2.15.19 A2.15.20 A2.15.22 A2.15.23
+A2.15.22 A2.14.20 A2.14.22 A2.14.24 A2.15.20 A2.15.21 A2.15.23 A2.15.24 A2.15.25
+A2.15.23 A2.00.21 A2.00.23 A2.00.25 A2.15.20 A2.15.21 A2.15.22 A2.15.24 A2.15.25
+A2.15.24 A2.14.22 A2.14.24 A2.14.25 A2.14.26 A2.15.22 A2.15.23 A2.15.25 A2.15.26
+A2.15.25 A2.00.23 A2.00.25 A2.00.26 A2.14.26 A2.15.22 A2.15.23 A2.15.24 A2.15.26
+A2.15.26 A2.00.25 A2.00.26 A2.00.27 A2.14.26 A2.14.28 A2.15.24 A2.15.25 A2.15.27
+A2.15.27 A2.00.26 A2.00.27 A2.00.29 A2.14.26 A2.14.28 A2.14.30 A2.15.26 A2.15.28 A2.15.29
+A2.15.28 A2.14.28 A2.14.30 A2.14.31 A2.15.27 A2.15.29
+A2.15.29 A2.00.27 A2.00.29 A2.15.27 A2.15.28
+A3.00.00 A3.00.02 A3.00.03 A3.15.00 A3.15.03
+A3.00.01 A3.00.02 A3.00.04 A3.00.05 A3.01.00 A3.01.04
+A3.00.02 A3.00.00 A3.00.01 A3.00.03 A3.00.04 A3.00.05 A3.00.06
+A3.00.03 A3.00.00 A3.00.02 A3.00.05 A3.00.06 A3.15.00 A3.15.03 A3.15.06
+A3.00.04 A3.00.01 A3.00.02 A3.00.05 A3.00.07 A3.00.08 A3.01.04 A3.01.06
+A3.00.05 A3.00.01 A3.00.02 A3.00.03 A3.00.04 A3.00.06 A3.00.07 A3.00.08 A3.00.09
+A3.00.06 A3.00.02 A3.00.03 A3.00.05 A3.00.08 A3.00.09 A3.15.03 A3.15.06 A3.15.09
+A3.00.07 A3.00.04 A3.00.05 A3.00.08 A3.00.10 A3.01.04 A3.01.06 A3.01.08 A3.01.09
+A3.00.08 A3.00.04 A3.00.05 A3.00.06 A3.00.07 A3.00.09 A3.00.10 A3.00.11 A3.01.09
+A3.00.09 A3.00.05 A3.00.06 A3.00.08 A3.00.10 A3.00.11 A3.15.06 A3.15.09 A3.15.11
+A3.00.10 A3.00.07 A3.00.08 A3.00.09 A3.00.11 A3.00.12 A3.00.13 A3.01.09 A3.01.11
+A3.00.11 A3.00.08 A3.00.09 A3.00.10 A3.00.12 A3.00.13 A3.15.09 A3.15.11 A3.15.13
+A3.00.12 A3.00.10 A3.00.11 A3.00.13 A3.00.14 A3.01.09 A3.01.11 A3.01.12 A3.01.13
+A3.00.13 A3.00.10 A3.00.11 A3.00.12 A3.00.14 A3.01.13 A3.15.11 A3.15.13 A3.15.14
+A3.00.14 A3.00.12 A3.00.13 A3.00.15 A3.01.13 A3.01.15 A3.15.13 A3.15.14 A3.15.15
+A3.00.15 A3.00.14 A3.01.15 A3.15.14 A3.15.15
+A3.01.00 A3.00.01 A3.01.02 A3.01.04
+A3.01.01 A3.01.02 A3.01.03 A3.01.05 A3.02.00
+A3.01.02 A3.01.00 A3.01.01 A3.01.04 A3.01.05 A3.01.06
+A3.01.03 A3.01.01 A3.01.05 A3.01.07 A3.02.00 A3.02.03 A3.02.05
+A3.01.04 A3.00.01 A3.00.04 A3.00.07 A3.01.00 A3.01.02 A3.01.05 A3.01.06
+A3.01.05 A3.01.01 A3.01.02 A3.01.03 A3.01.04 A3.01.06 A3.01.07 A3.01.08 A3.02.05
+A3.01.06 A3.00.04 A3.00.07 A3.01.02 A3.01.04 A3.01.05 A3.01.07 A3.01.08 A3.01.09
+A3.01.07 A3.01.03 A3.01.05 A3.01.06 A3.01.08 A3.01.10 A3.02.05 A3.02.07 A3.02.09
+A3.01.08 A3.00.07 A3.01.05 A3.01.06 A3.01.07 A3.01.09 A3.01.10 A3.01.11 A3.02.09
+A3.01.09 A3.00.07 A3.00.08 A3.00.10 A3.00.12 A3.01.06 A3.01.08 A3.01.10 A3.01.11
+A3.01.10 A3.01.07 A3.01.08 A3.01.09 A3.01.11 A3.01.12 A3.02.09 A3.02.10 A3.02.11
+A3.01.11 A3.00.10 A3.00.12 A3.01.08 A3.01.09 A3.01.10 A3.01.12 A3.01.13 A3.02.11
+A3.01.12 A3.00.12 A3.01.10 A3.01.11 A3.01.13 A3.01.14 A3.02.11 A3.02.12 A3.02.13
+A3.01.13 A3.00.12 A3.00.13 A3.00.14 A3.01.11 A3.01.12 A3.01.14 A3.01.15 A3.02.13
+A3.01.14 A3.01.12 A3.01.13 A3.01.15 A3.02.13 A3.02.14
+A3.01.15 A3.00.14 A3.00.15 A3.01.13 A3.01.14 A3.02.14
+A3.02.00 A3.01.01 A3.01.03 A3.02.02 A3.02.03 A3.02.05
+A3.02.01 A3.02.02 A3.03.02 A3.03.05
+A3.02.02 A3.02.00 A3.02.01 A3.02.03 A3.02.04 A3.02.06 A3.03.05
+A3.02.03 A3.01.03 A3.02.00 A3.02.02 A3.02.04 A3.02.05 A3.02.07
+A3.02.04 A3.02.02 A3.02.03 A3.02.05 A3.02.06 A3.02.07 A3.02.08 A3.03.05
+A3.02.05 A3.01.03 A3.01.05 A3.01.07 A3.02.00 A3.02.03 A3.02.04 A3.02.07 A3.02.09
+A3.02.06 A3.02.02 A3.02.04 A3.02.07 A3.02.08 A3.03.05 A3.03.06 A3.03.08 A3.03.10
+A3.02.07 A3.01.07 A3.02.03 A3.02.04 A3.02.05 A3.02.06 A3.02.08 A3.02.09 A3.02.10
+A3.02.08 A3.02.04 A3.02.06 A3.02.07 A3.02.09 A3.02.10 A3.03.08 A3.03.10 A3.03.12
+A3.02.09 A3.01.07 A3.01.08 A3.01.10 A3.02.05 A3.02.07 A3.02.08 A3.02.10 A3.02.11
+A3.02.10 A3.01.10 A3.02.07 A3.02.08 A3.02.09 A3.02.11 A3.02.12 A3.03.10 A3.03.12
+A3.02.11 A3.01.10 A3.01.11 A3.01.12 A3.02.09 A3.02.10 A3.02.12 A3.02.13 A3.03.12
+A3.02.12 A3.01.12 A3.02.10 A3.02.11 A3.02.13 A3.03.12 A3.03.13 A3.03.14 A3.03.15
+A3.02.13 A3.01.12 A3.01.13 A3.01.14 A3.02.11 A3.02.12 A3.02.14 A3.02.15 A3.03.14 A3.03.15
+A3.02.14 A3.01.14 A3.01.15 A3.02.13 A3.02.15
+A3.02.15 A3.02.13 A3.02.14 A3.03.15
+A3.03.00 A3.03.01 A3.03.03 A3.03.04
+A3.03.01 A3.03.00 A3.03.04 A3.04.01 A3.04.04
+A3.03.02 A3.02.01 A3.03.03 A3.03.05 A3.03.06
+A3.03.03 A3.03.00 A3.03.02 A3.03.04 A3.03.05 A3.03.06 A3.03.07
+A3.03.04 A3.03.00 A3.03.01 A3.03.03 A3.03.06 A3.03.07 A3.04.01 A3.04.04 A3.04.07
+A3.03.05 A3.02.01 A3.02.02 A3.02.04 A3.02.06 A3.03.02 A3.03.03 A3.03.06 A3.03.08
+A3.03.06 A3.02.06 A3.03.02 A3.03.03 A3.03.04 A3.03.05 A3.03.07 A3.03.08 A3.03.09
+A3.03.07 A3.03.03 A3.03.04 A3.03.06 A3.03.08 A3.03.09 A3.04.04 A3.04.07 A3.04.09
+A3.03.08 A3.02.06 A3.02.08 A3.03.05 A3.03.06 A3.03.07 A3.03.09 A3.03.10 A3.03.11
+A3.03.09 A3.03.06 A3.03.07 A3.03.08 A3.03.10 A3.03.11 A3.04.07 A3.04.09 A3.04.11
+A3.03.10 A3.02.06 A3.02.08 A3.02.10 A3.03.08 A3.03.09 A3.03.11 A3.03.12 A3.03.13
+A3.03.11 A3.03.08 A3.03.09 A3.03.10 A3.03.12 A3.03.13 A3.04.09 A3.04.11 A3.04.13
+A3.03.12 A3.02.08 A3.02.10 A3.02.11 A3.02.12 A3.03.10 A3.03.11 A3.03.13 A3.03.14
+A3.03.13 A3.02.12 A3.03.10 A3.03.11 A3.03.12 A3.03.14 A3.04.11 A3.04.13 A3.04.14
+A3.03.14 A3.02.12 A3.02.13 A3.03.12 A3.03.13 A3.03.15 A3.04.13 A3.04.14 A3.04.15
+A3.03.15 A3.02.12 A3.02.13 A3.02.15 A3.03.14 A3.04.14 A3.04.15
+A3.04.00 A3.04.01 A3.04.03 A3.04.04
+A3.04.01 A3.03.01 A3.03.04 A3.04.00 A3.04.04
+A3.04.02 A3.04.03 A3.04.05 A3.04.06 A3.05.02
+A3.04.03 A3.04.00 A3.04.02 A3.04.04 A3.04.05 A3.04.06 A3.04.07
+A3.04.04 A3.03.01 A3.03.04 A3.03.07 A3.04.00 A3.04.01 A3.04.03 A3.04.06 A3.04.07
+A3.04.05 A3.04.02 A3.04.03 A3.04.06 A3.04.08 A3.05.02 A3.05.04 A3.05.06
+A3.04.06 A3.04.02 A3.04.03 A3.04.04 A3.04.05 A3.04.07 A3.04.08 A3.04.09 A3.05.06
+A3.04.07 A3.03.04 A3.03.07 A3.03.09 A3.04.03 A3.04.04 A3.04.06 A3.04.08 A3.04.09
+A3.04.08 A3.04.05 A3.04.06 A3.04.07 A3.04.09 A3.04.10 A3.04.11 A3.05.06 A3.05.08
+A3.04.09 A3.03.07 A3.03.09 A3.03.11 A3.04.06 A3.04.07 A3.04.08 A3.04.10 A3.04.11
+A3.04.10 A3.04.08 A3.04.09 A3.04.11 A3.04.12 A3.04.13 A3.05.06 A3.05.08 A3.05.10
+A3.04.11 A3.03.09 A3.03.11 A3.03.13 A3.04.08 A3.04.09 A3.04.10 A3.04.12 A3.04.13
+A3.04.12 A3.04.10 A3.04.11 A3.04.13 A3.04.14 A3.05.08 A3.05.10 A3.05.11 A3.05.12
+A3.04.13 A3.03.11 A3.03.13 A3.03.14 A3.04.10 A3.04.11 A3.04.12 A3.04.14 A3.05.12
+A3.04.14 A3.03.13 A3.03.14 A3.03.15 A3.04.12 A3.04.13 A3.04.15 A3.05.12 A3.05.13
+A3.04.15 A3.03.14 A3.03.15 A3.04.14 A3.05.12 A3.05.13 A3.05.14
+A3.05.00 A3.05.01 A3.05.03 A3.05.05 A3.06.00 A3.06.02
+A3.05.01 A3.05.00 A3.05.02 A3.05.03 A3.05.04
+A3.05.02 A3.04.02 A3.04.05 A3.05.01 A3.05.03 A3.05.04 A3.05.06
+A3.05.03 A3.05.00 A3.05.01 A3.05.02 A3.05.04 A3.05.05 A3.05.07 A3.06.02
+A3.05.04 A3.04.05 A3.05.01 A3.05.02 A3.05.03 A3.05.05 A3.05.06 A3.05.07 A3.05.08
+A3.05.05 A3.05.00 A3.05.03 A3.05.04 A3.05.07 A3.05.09 A3.06.02 A3.06.04 A3.06.06
+A3.05.06 A3.04.05 A3.04.06 A3.04.08 A3.04.10 A3.05.02 A3.05.04 A3.05.07 A3.05.08
+A3.05.07 A3.05.03 A3.05.04 A3.05.05 A3.05.06 A3.05.08 A3.05.09 A3.05.10 A3.06.06
+A3.05.08 A3.04.08 A3.04.10 A3.04.12 A3.05.04 A3.05.06 A3.05.07 A3.05.09 A3.05.10
+A3.05.09 A3.05.05 A3.05.07 A3.05.08 A3.05.10 A3.05.11 A3.06.06 A3.06.07 A3.06.09
+A3.05.10 A3.04.10 A3.04.12 A3.05.07 A3.05.08 A3.05.09 A3.05.11 A3.05.12 A3.06.09
+A3.05.11 A3.04.12 A3.05.09 A3.05.10 A3.05.12 A3.05.13 A3.06.09 A3.06.10 A3.06.11
+A3.05.12 A3.04.12 A3.04.13 A3.04.14 A3.04.15 A3.05.10 A3.05.11 A3.05.13 A3.06.11
+A3.05.13 A3.04.14 A3.04.15 A3.05.11 A3.05.12 A3.05.14 A3.06.11 A3.06.12 A3.06.13
+A3.05.14 A3.04.15 A3.05.13 A3.06.13 A3.06.15
+A3.06.00 A3.05.00 A3.06.01 A3.06.02 A3.06.04
+A3.06.01 A3.06.00 A3.06.03 A3.06.04 A3.06.05 A3.07.01
+A3.06.02 A3.05.00 A3.05.03 A3.05.05 A3.06.00 A3.06.04 A3.06.06
+A3.06.03 A3.06.01 A3.06.04 A3.06.05 A3.07.01 A3.07.04 A3.07.07
+A3.06.04 A3.05.05 A3.06.00 A3.06.01 A3.06.02 A3.06.03 A3.06.05 A3.06.06 A3.06.07
+A3.06.05 A3.06.01 A3.06.03 A3.06.04 A3.06.06 A3.06.07 A3.06.08 A3.07.04 A3.07.07
+A3.06.06 A3.05.05 A3.05.07 A3.05.09 A3.06.02 A3.06.04 A3.06.05 A3.06.07 A3.06.09
+A3.06.07 A3.05.09 A3.06.04 A3.06.05 A3.06.06 A3.06.08 A3.06.09 A3.06.10 A3.07.07
+A3.06.08 A3.06.05 A3.06.07 A3.06.09 A3.06.10 A3.07.07 A3.07.08 A3.07.10 A3.07.12
+A3.06.09 A3.05.09 A3.05.10 A3.05.11 A3.06.06 A3.06.07 A3.06.08 A3.06.10 A3.06.11
+A3.06.10 A3.05.11 A3.06.07 A3.06.08 A3.06.09 A3.06.11 A3.06.12 A3.07.10 A3.07.12
+A3.06.11 A3.05.11 A3.05.12 A3.05.13 A3.06.09 A3.06.10 A3.06.12 A3.06.13 A3.07.12
+A3.06.12 A3.05.13 A3.06.10 A3.06.11 A3.06.13 A3.06.14 A3.07.12 A3.07.13 A3.07.14
+A3.06.13 A3.05.13 A3.05.14 A3.06.11 A3.06.12 A3.06.14 A3.06.15
+A3.06.14 A3.06.12 A3.06.13 A3.06.15 A3.07.14 A3.07.15
+A3.06.15 A3.05.14 A3.06.13 A3.06.14
+A3.07.00 A3.07.02 A3.07.03 A3.08.00 A3.08.03
+A3.07.01 A3.06.01 A3.06.03 A3.07.02 A3.07.04 A3.07.05
+A3.07.02 A3.07.00 A3.07.01 A3.07.03 A3.07.04 A3.07.05 A3.07.06
+A3.07.03 A3.07.00 A3.07.02 A3.07.05 A3.07.06 A3.08.00 A3.08.03 A3.08.06
+A3.07.04 A3.06.03 A3.06.05 A3.07.01 A3.07.02 A3.07.05 A3.07.07 A3.07.08
+A3.07.05 A3.07.01 A3.07.02 A3.07.03 A3.07.04 A3.07.06 A3.07.07 A3.07.08 A3.07.09
+A3.07.06 A3.07.02 A3.07.03 A3.07.05 A3.07.08 A3.07.09 A3.08.03 A3.08.06 A3.08.09
+A3.07.07 A3.06.03 A3.06.05 A3.06.07 A3.06.08 A3.07.04 A3.07.05 A3.07.08 A3.07.10
+A3.07.08 A3.06.08 A3.07.04 A3.07.05 A3.07.06 A3.07.07 A3.07.09 A3.07.10 A3.07.11
+A3.07.09 A3.07.05 A3.07.06 A3.07.08 A3.07.10 A3.07.11 A3.08.06 A3.08.09 A3.08.11
+A3.07.10 A3.06.08 A3.06.10 A3.07.07 A3.07.08 A3.07.09 A3.07.11 A3.07.12 A3.07.13
+A3.07.11 A3.07.08 A3.07.09 A3.07.10 A3.07.12 A3.07.13 A3.08.09 A3.08.11 A3.08.13
+A3.07.12 A3.06.08 A3.06.10 A3.06.11 A3.06.12 A3.07.10 A3.07.11 A3.07.13 A3.07.14
+A3.07.13 A3.06.12 A3.07.10 A3.07.11 A3.07.12 A3.07.14 A3.08.11 A3.08.13 A3.08.14
+A3.07.14 A3.06.12 A3.06.14 A3.07.12 A3.07.13 A3.07.15 A3.08.13 A3.08.14 A3.08.15
+A3.07.15 A3.06.14 A3.07.14 A3.08.14 A3.08.15
+A3.08.00 A3.07.00 A3.07.03 A3.08.02 A3.08.03
+A3.08.01 A3.08.02 A3.08.04 A3.08.05 A3.09.00 A3.09.04
+A3.08.02 A3.08.00 A3.08.01 A3.08.03 A3.08.04 A3.08.05 A3.08.06
+A3.08.03 A3.07.00 A3.07.03 A3.07.06 A3.08.00 A3.08.02 A3.08.05 A3.08.06
+A3.08.04 A3.08.01 A3.08.02 A3.08.05 A3.08.07 A3.08.08 A3.09.04 A3.09.06
+A3.08.05 A3.08.01 A3.08.02 A3.08.03 A3.08.04 A3.08.06 A3.08.07 A3.08.08 A3.08.09
+A3.08.06 A3.07.03 A3.07.06 A3.07.09 A3.08.02 A3.08.03 A3.08.05 A3.08.08 A3.08.09
+A3.08.07 A3.08.04 A3.08.05 A3.08.08 A3.08.10 A3.09.04 A3.09.06 A3.09.08 A3.09.09
+A3.08.08 A3.08.04 A3.08.05 A3.08.06 A3.08.07 A3.08.09 A3.08.10 A3.08.11 A3.09.09
+A3.08.09 A3.07.06 A3.07.09 A3.07.11 A3.08.05 A3.08.06 A3.08.08 A3.08.10 A3.08.11
+A3.08.10 A3.08.07 A3.08.08 A3.08.09 A3.08.11 A3.08.12 A3.08.13 A3.09.09 A3.09.11
+A3.08.11 A3.07.09 A3.07.11 A3.07.13 A3.08.08 A3.08.09 A3.08.10 A3.08.12 A3.08.13
+A3.08.12 A3.08.10 A3.08.11 A3.08.13 A3.08.14 A3.09.09 A3.09.11 A3.09.12 A3.09.13
+A3.08.13 A3.07.11 A3.07.13 A3.07.14 A3.08.10 A3.08.11 A3.08.12 A3.08.14 A3.09.13
+A3.08.14 A3.07.13 A3.07.14 A3.07.15 A3.08.12 A3.08.13 A3.08.15 A3.09.13 A3.09.15
+A3.08.15 A3.07.14 A3.07.15 A3.08.14 A3.09.15
+A3.09.00 A3.08.01 A3.09.02 A3.09.04
+A3.09.01 A3.09.02 A3.09.03 A3.09.05 A3.10.00
+A3.09.02 A3.09.00 A3.09.01 A3.09.04 A3.09.05 A3.09.06
+A3.09.03 A3.09.01 A3.09.05 A3.09.07 A3.10.00 A3.10.03 A3.10.05
+A3.09.04 A3.08.01 A3.08.04 A3.08.07 A3.09.00 A3.09.02 A3.09.05 A3.09.06
+A3.09.05 A3.09.01 A3.09.02 A3.09.03 A3.09.04 A3.09.06 A3.09.07 A3.09.08 A3.10.05
+A3.09.06 A3.08.04 A3.08.07 A3.09.02 A3.09.04 A3.09.05 A3.09.07 A3.09.08 A3.09.09
+A3.09.07 A3.09.03 A3.09.05 A3.09.06 A3.09.08 A3.09.10 A3.10.05 A3.10.07 A3.10.09
+A3.09.08 A3.08.07 A3.09.05 A3.09.06 A3.09.07 A3.09.09 A3.09.10 A3.09.11 A3.10.09
+A3.09.09 A3.08.07 A3.08.08 A3.08.10 A3.08.12 A3.09.06 A3.09.08 A3.09.10 A3.09.11
+A3.09.10 A3.09.07 A3.09.08 A3.09.09 A3.09.11 A3.09.12 A3.10.09 A3.10.10 A3.10.11
+A3.09.11 A3.08.10 A3.08.12 A3.09.08 A3.09.09 A3.09.10 A3.09.12 A3.09.13 A3.10.11
+A3.09.12 A3.08.12 A3.09.10 A3.09.11 A3.09.13 A3.09.14 A3.10.11 A3.10.12 A3.10.13
+A3.09.13 A3.08.12 A3.08.13 A3.08.14 A3.09.11 A3.09.12 A3.09.14 A3.09.15 A3.10.13
+A3.09.14 A3.09.12 A3.09.13 A3.09.15 A3.10.13 A3.10.14
+A3.09.15 A3.08.14 A3.08.15 A3.09.13 A3.09.14 A3.10.14
+A3.10.00 A3.09.01 A3.09.03 A3.10.02 A3.10.03 A3.10.05
+A3.10.01 A3.10.02 A3.11.02 A3.11.05
+A3.10.02 A3.10.00 A3.10.01 A3.10.03 A3.10.04 A3.10.06 A3.11.05
+A3.10.03 A3.09.03 A3.10.00 A3.10.02 A3.10.04 A3.10.05 A3.10.07
+A3.10.04 A3.10.02 A3.10.03 A3.10.05 A3.10.06 A3.10.07 A3.10.08 A3.11.05
+A3.10.05 A3.09.03 A3.09.05 A3.09.07 A3.10.00 A3.10.03 A3.10.04 A3.10.07 A3.10.09
+A3.10.06 A3.10.02 A3.10.04 A3.10.07 A3.10.08 A3.11.05 A3.11.06 A3.11.08 A3.11.10
+A3.10.07 A3.09.07 A3.10.03 A3.10.04 A3.10.05 A3.10.06 A3.10.08 A3.10.09 A3.10.10
+A3.10.08 A3.10.04 A3.10.06 A3.10.07 A3.10.09 A3.10.10 A3.11.08 A3.11.10 A3.11.12
+A3.10.09 A3.09.07 A3.09.08 A3.09.10 A3.10.05 A3.10.07 A3.10.08 A3.10.10 A3.10.11
+A3.10.10 A3.09.10 A3.10.07 A3.10.08 A3.10.09 A3.10.11 A3.10.12 A3.11.10 A3.11.12
+A3.10.11 A3.09.10 A3.09.11 A3.09.12 A3.10.09 A3.10.10 A3.10.12 A3.10.13 A3.11.12
+A3.10.12 A3.09.12 A3.10.10 A3.10.11 A3.10.13 A3.11.12 A3.11.13 A3.11.14 A3.11.15
+A3.10.13 A3.09.12 A3.09.13 A3.09.14 A3.10.11 A3.10.12 A3.10.14 A3.10.15 A3.11.14 A3.11.15
+A3.10.14 A3.09.14 A3.09.15 A3.10.13 A3.10.15
+A3.10.15 A3.10.13 A3.10.14 A3.11.15
+A3.11.00 A3.11.01 A3.11.03 A3.11.04
+A3.11.01 A3.11.00 A3.11.04 A3.12.01 A3.12.04
+A3.11.02 A3.10.01 A3.11.03 A3.11.05 A3.11.06
+A3.11.03 A3.11.00 A3.11.02 A3.11.04 A3.11.05 A3.11.06 A3.11.07
+A3.11.04 A3.11.00 A3.11.01 A3.11.03 A3.11.06 A3.11.07 A3.12.01 A3.12.04 A3.12.07
+A3.11.05 A3.10.01 A3.10.02 A3.10.04 A3.10.06 A3.11.02 A3.11.03 A3.11.06 A3.11.08
+A3.11.06 A3.10.06 A3.11.02 A3.11.03 A3.11.04 A3.11.05 A3.11.07 A3.11.08 A3.11.09
+A3.11.07 A3.11.03 A3.11.04 A3.11.06 A3.11.08 A3.11.09 A3.12.04 A3.12.07 A3.12.09
+A3.11.08 A3.10.06 A3.10.08 A3.11.05 A3.11.06 A3.11.07 A3.11.09 A3.11.10 A3.11.11
+A3.11.09 A3.11.06 A3.11.07 A3.11.08 A3.11.10 A3.11.11 A3.12.07 A3.12.09 A3.12.11
+A3.11.10 A3.10.06 A3.10.08 A3.10.10 A3.11.08 A3.11.09 A3.11.11 A3.11.12 A3.11.13
+A3.11.11 A3.11.08 A3.11.09 A3.11.10 A3.11.12 A3.11.13 A3.12.09 A3.12.11 A3.12.13
+A3.11.12 A3.10.08 A3.10.10 A3.10.11 A3.10.12 A3.11.10 A3.11.11 A3.11.13 A3.11.14
+A3.11.13 A3.10.12 A3.11.10 A3.11.11 A3.11.12 A3.11.14 A3.12.11 A3.12.13 A3.12.14
+A3.11.14 A3.10.12 A3.10.13 A3.11.12 A3.11.13 A3.11.15 A3.12.13 A3.12.14 A3.12.15
+A3.11.15 A3.10.12 A3.10.13 A3.10.15 A3.11.14 A3.12.14 A3.12.15
+A3.12.00 A3.12.01 A3.12.03 A3.12.04
+A3.12.01 A3.11.01 A3.11.04 A3.12.00 A3.12.04
+A3.12.02 A3.12.03 A3.12.05 A3.12.06 A3.13.02
+A3.12.03 A3.12.00 A3.12.02 A3.12.04 A3.12.05 A3.12.06 A3.12.07
+A3.12.04 A3.11.01 A3.11.04 A3.11.07 A3.12.00 A3.12.01 A3.12.03 A3.12.06 A3.12.07
+A3.12.05 A3.12.02 A3.12.03 A3.12.06 A3.12.08 A3.13.02 A3.13.04 A3.13.06
+A3.12.06 A3.12.02 A3.12.03 A3.12.04 A3.12.05 A3.12.07 A3.12.08 A3.12.09 A3.13.06
+A3.12.07 A3.11.04 A3.11.07 A3.11.09 A3.12.03 A3.12.04 A3.12.06 A3.12.08 A3.12.09
+A3.12.08 A3.12.05 A3.12.06 A3.12.07 A3.12.09 A3.12.10 A3.12.11 A3.13.06 A3.13.08
+A3.12.09 A3.11.07 A3.11.09 A3.11.11 A3.12.06 A3.12.07 A3.12.08 A3.12.10 A3.12.11
+A3.12.10 A3.12.08 A3.12.09 A3.12.11 A3.12.12 A3.12.13 A3.13.06 A3.13.08 A3.13.10
+A3.12.11 A3.11.09 A3.11.11 A3.11.13 A3.12.08 A3.12.09 A3.12.10 A3.12.12 A3.12.13
+A3.12.12 A3.12.10 A3.12.11 A3.12.13 A3.12.14 A3.13.08 A3.13.10 A3.13.11 A3.13.12
+A3.12.13 A3.11.11 A3.11.13 A3.11.14 A3.12.10 A3.12.11 A3.12.12 A3.12.14 A3.13.12
+A3.12.14 A3.11.13 A3.11.14 A3.11.15 A3.12.12 A3.12.13 A3.12.15 A3.13.12 A3.13.13
+A3.12.15 A3.11.14 A3.11.15 A3.12.14 A3.13.12 A3.13.13 A3.13.14
+A3.13.00 A3.13.01 A3.13.03 A3.13.05 A3.14.00 A3.14.02
+A3.13.01 A3.13.00 A3.13.02 A3.13.03 A3.13.04
+A3.13.02 A3.12.02 A3.12.05 A3.13.01 A3.13.03 A3.13.04 A3.13.06
+A3.13.03 A3.13.00 A3.13.01 A3.13.02 A3.13.04 A3.13.05 A3.13.07 A3.14.02
+A3.13.04 A3.12.05 A3.13.01 A3.13.02 A3.13.03 A3.13.05 A3.13.06 A3.13.07 A3.13.08
+A3.13.05 A3.13.00 A3.13.03 A3.13.04 A3.13.07 A3.13.09 A3.14.02 A3.14.04 A3.14.06
+A3.13.06 A3.12.05 A3.12.06 A3.12.08 A3.12.10 A3.13.02 A3.13.04 A3.13.07 A3.13.08
+A3.13.07 A3.13.03 A3.13.04 A3.13.05 A3.13.06 A3.13.08 A3.13.09 A3.13.10 A3.14.06
+A3.13.08 A3.12.08 A3.12.10 A3.12.12 A3.13.04 A3.13.06 A3.13.07 A3.13.09 A3.13.10
+A3.13.09 A3.13.05 A3.13.07 A3.13.08 A3.13.10 A3.13.11 A3.14.06 A3.14.07 A3.14.09
+A3.13.10 A3.12.10 A3.12.12 A3.13.07 A3.13.08 A3.13.09 A3.13.11 A3.13.12 A3.14.09
+A3.13.11 A3.12.12 A3.13.09 A3.13.10 A3.13.12 A3.13.13 A3.14.09 A3.14.10 A3.14.11
+A3.13.12 A3.12.12 A3.12.13 A3.12.14 A3.12.15 A3.13.10 A3.13.11 A3.13.13 A3.14.11
+A3.13.13 A3.12.14 A3.12.15 A3.13.11 A3.13.12 A3.13.14 A3.14.11 A3.14.12 A3.14.13
+A3.13.14 A3.12.15 A3.13.13 A3.14.13 A3.14.15
+A3.14.00 A3.13.00 A3.14.01 A3.14.02 A3.14.04
+A3.14.01 A3.14.00 A3.14.03 A3.14.04 A3.14.05 A3.15.01
+A3.14.02 A3.13.00 A3.13.03 A3.13.05 A3.14.00 A3.14.04 A3.14.06
+A3.14.03 A3.14.01 A3.14.04 A3.14.05 A3.15.01 A3.15.04 A3.15.07
+A3.14.04 A3.13.05 A3.14.00 A3.14.01 A3.14.02 A3.14.03 A3.14.05 A3.14.06 A3.14.07
+A3.14.05 A3.14.01 A3.14.03 A3.14.04 A3.14.06 A3.14.07 A3.14.08 A3.15.04 A3.15.07
+A3.14.06 A3.13.05 A3.13.07 A3.13.09 A3.14.02 A3.14.04 A3.14.05 A3.14.07 A3.14.09
+A3.14.07 A3.13.09 A3.14.04 A3.14.05 A3.14.06 A3.14.08 A3.14.09 A3.14.10 A3.15.07
+A3.14.08 A3.14.05 A3.14.07 A3.14.09 A3.14.10 A3.15.07 A3.15.08 A3.15.10 A3.15.12
+A3.14.09 A3.13.09 A3.13.10 A3.13.11 A3.14.06 A3.14.07 A3.14.08 A3.14.10 A3.14.11
+A3.14.10 A3.13.11 A3.14.07 A3.14.08 A3.14.09 A3.14.11 A3.14.12 A3.15.10 A3.15.12
+A3.14.11 A3.13.11 A3.13.12 A3.13.13 A3.14.09 A3.14.10 A3.14.12 A3.14.13 A3.15.12
+A3.14.12 A3.13.13 A3.14.10 A3.14.11 A3.14.13 A3.14.14 A3.15.12 A3.15.13 A3.15.14
+A3.14.13 A3.13.13 A3.13.14 A3.14.11 A3.14.12 A3.14.14 A3.14.15
+A3.14.14 A3.14.12 A3.14.13 A3.14.15 A3.15.14 A3.15.15
+A3.14.15 A3.13.14 A3.14.13 A3.14.14
+A3.15.00 A3.00.00 A3.00.03 A3.15.02 A3.15.03
+A3.15.01 A3.14.01 A3.14.03 A3.15.02 A3.15.04 A3.15.05
+A3.15.02 A3.15.00 A3.15.01 A3.15.03 A3.15.04 A3.15.05 A3.15.06
+A3.15.03 A3.00.00 A3.00.03 A3.00.06 A3.15.00 A3.15.02 A3.15.05 A3.15.06
+A3.15.04 A3.14.03 A3.14.05 A3.15.01 A3.15.02 A3.15.05 A3.15.07 A3.15.08
+A3.15.05 A3.15.01 A3.15.02 A3.15.03 A3.15.04 A3.15.06 A3.15.07 A3.15.08 A3.15.09
+A3.15.06 A3.00.03 A3.00.06 A3.00.09 A3.15.02 A3.15.03 A3.15.05 A3.15.08 A3.15.09
+A3.15.07 A3.14.03 A3.14.05 A3.14.07 A3.14.08 A3.15.04 A3.15.05 A3.15.08 A3.15.10
+A3.15.08 A3.14.08 A3.15.04 A3.15.05 A3.15.06 A3.15.07 A3.15.09 A3.15.10 A3.15.11
+A3.15.09 A3.00.06 A3.00.09 A3.00.11 A3.15.05 A3.15.06 A3.15.08 A3.15.10 A3.15.11
+A3.15.10 A3.14.08 A3.14.10 A3.15.07 A3.15.08 A3.15.09 A3.15.11 A3.15.12 A3.15.13
+A3.15.11 A3.00.09 A3.00.11 A3.00.13 A3.15.08 A3.15.09 A3.15.10 A3.15.12 A3.15.13
+A3.15.12 A3.14.08 A3.14.10 A3.14.11 A3.14.12 A3.15.10 A3.15.11 A3.15.13 A3.15.14
+A3.15.13 A3.00.11 A3.00.13 A3.00.14 A3.14.12 A3.15.10 A3.15.11 A3.15.12 A3.15.14
+A3.15.14 A3.00.13 A3.00.14 A3.00.15 A3.14.12 A3.14.14 A3.15.12 A3.15.13 A3.15.15
+A3.15.15 A3.00.14 A3.00.15 A3.14.14 A3.15.14
+C1.00.00 C1.00.07 C1.00.12
+C1.00.01 C1.00.02 C1.00.10 C1.00.11 C1.15.02 C1.15.12
+C1.00.02 C1.00.01 C1.00.03 C1.00.06 C1.00.09 C1.00.10
+C1.00.03 C1.00.02 C1.00.05 C1.00.06 C1.00.14 C1.00.15
+C1.00.04 C1.00.05 C1.00.12 C1.00.13 C1.00.14
+C1.00.05 C1.00.03 C1.00.04 C1.00.13 C1.00.14
+C1.00.06 C1.00.02 C1.00.03 C1.00.09 C1.00.14 C1.00.15
+C1.00.07 C1.00.00 C1.00.08 C1.00.12 C1.00.17 C1.00.18 C1.01.13
+C1.00.08 C1.00.07 C1.00.17 C1.01.02 C1.01.13
+C1.00.09 C1.00.02 C1.00.06 C1.00.10 C1.00.15 C1.00.16
+C1.00.10 C1.00.01 C1.00.02 C1.00.09 C1.00.11 C1.00.15 C1.00.16
+C1.00.11 C1.00.01 C1.00.10 C1.00.16 C1.15.02 C1.15.12 C1.15.17
+C1.00.12 C1.00.00 C1.00.04 C1.00.07 C1.00.13 C1.00.17 C1.00.18 C1.00.19
+C1.00.13 C1.00.04 C1.00.05 C1.00.12 C1.00.14 C1.00.18 C1.00.19 C1.00.20
+C1.00.14 C1.00.03 C1.00.04 C1.00.05 C1.00.06 C1.00.13 C1.00.15 C1.00.19 C1.00.20 C1.00.21
+C1.00.15 C1.00.03 C1.00.06 C1.00.09 C1.00.10 C1.00.14 C1.00.16 C1.00.20 C1.00.21 C1.00.22
+C1.00.16 C1.00.09 C1.00.10 C1.00.11 C1.00.15 C1.00.21 C1.00.22 C1.15.12 C1.15.17 C1.15.23
+C1.00.17 C1.00.07 C1.00.08 C1.00.12 C1.00.18 C1.00.23 C1.01.13 C1.01.19 C1.01.21
+C1.00.18 C1.00.07 C1.00.12 C1.00.13 C1.00.17 C1.00.19 C1.00.23 C1.00.24 C1.01.21
+C1.00.19 C1.00.12 C1.00.13 C1.00.14 C1.00.18 C1.00.20 C1.00.23 C1.00.24 C1.00.25
+C1.00.20 C1.00.13 C1.00.14 C1.00.15 C1.00.19 C1.00.21 C1.00.24 C1.00.25 C1.00.26
+C1.00.21 C1.00.14 C1.00.15 C1.00.16 C1.00.20 C1.00.22 C1.00.25 C1.00.26 C1.00.27
+C1.00.22 C1.00.15 C1.00.16 C1.00.21 C1.00.26 C1.00.27 C1.15.17 C1.15.23 C1.15.28
+C1.00.23 C1.00.17 C1.00.18 C1.00.19 C1.00.24 C1.00.28 C1.00.29 C1.01.21 C1.01.26
+C1.00.24 C1.00.18 C1.00.19 C1.00.20 C1.00.23 C1.00.25 C1.00.28 C1.00.29 C1.00.30
+C1.00.25 C1.00.19 C1.00.20 C1.00.21 C1.00.24 C1.00.26 C1.00.29 C1.00.30 C1.00.31
+C1.00.26 C1.00.20 C1.00.21 C1.00.22 C1.00.25 C1.00.27 C1.00.30 C1.00.31 C1.00.32
+C1.00.27 C1.00.21 C1.00.22 C1.00.26 C1.00.31 C1.00.32 C1.15.23 C1.15.28 C1.15.33
+C1.00.28 C1.00.23 C1.00.24 C1.00.29 C1.00.33 C1.01.21 C1.01.26 C1.01.31 C1.01.33
+C1.00.29 C1.00.23 C1.00.24 C1.00.25 C1.00.28 C1.00.30 C1.00.33 C1.00.34 C1.01.33
+C1.00.30 C1.00.24 C1.00.25 C1.00.26 C1.00.29 C1.00.31 C1.00.33 C1.00.34 C1.00.35
+C1.00.31 C1.00.25 C1.00.26 C1.00.27 C1.00.30 C1.00.32 C1.00.34 C1.00.35 C1.00.36
+C1.00.32 C1.00.26 C1.00.27 C1.00.31 C1.00.35 C1.00.36 C1.15.28 C1.15.33 C1.15.37
+C1.00.33 C1.00.28 C1.00.29 C1.00.30 C1.00.34 C1.00.37 C1.00.38 C1.01.33 C1.01.38
+C1.00.34 C1.00.29 C1.00.30 C1.00.31 C1.00.33 C1.00.35 C1.00.37 C1.00.38 C1.00.39
+C1.00.35 C1.00.30 C1.00.31 C1.00.32 C1.00.34 C1.00.36 C1.00.38 C1.00.39 C1.00.40
+C1.00.36 C1.00.31 C1.00.32 C1.00.35 C1.00.39 C1.00.40 C1.15.33 C1.15.37 C1.15.41
+C1.00.37 C1.00.33 C1.00.34 C1.00.38 C1.00.41 C1.00.42 C1.01.33 C1.01.38 C1.01.41
+C1.00.38 C1.00.33 C1.00.34 C1.00.35 C1.00.37 C1.00.39 C1.00.41 C1.00.42 C1.00.43
+C1.00.39 C1.00.34 C1.00.35 C1.00.36 C1.00.38 C1.00.40 C1.00.42 C1.00.43 C1.00.44
+C1.00.40 C1.00.35 C1.00.36 C1.00.39 C1.00.43 C1.00.44 C1.15.37 C1.15.41 C1.15.45
+C1.00.41 C1.00.37 C1.00.38 C1.00.42 C1.00.45 C1.01.38 C1.01.41 C1.01.43 C1.01.45
+C1.00.42 C1.00.37 C1.00.38 C1.00.39 C1.00.41 C1.00.43 C1.00.45 C1.00.46 C1.01.45
+C1.00.43 C1.00.38 C1.00.39 C1.00.40 C1.00.42 C1.00.44 C1.00.45 C1.00.46 C1.00.47
+C1.00.44 C1.00.39 C1.00.40 C1.00.43 C1.00.46 C1.00.47 C1.15.41 C1.15.45 C1.15.48
+C1.00.45 C1.00.41 C1.00.42 C1.00.43 C1.00.46 C1.00.48 C1.00.49 C1.01.45 C1.01.47
+C1.00.46 C1.00.42 C1.00.43 C1.00.44 C1.00.45 C1.00.47 C1.00.48 C1.00.49 C1.00.50
+C1.00.47 C1.00.43 C1.00.44 C1.00.46 C1.00.49 C1.00.50 C1.15.45 C1.15.48 C1.15.51
+C1.00.48 C1.00.45 C1.00.46 C1.00.49 C1.00.51 C1.01.45 C1.01.47 C1.01.49 C1.01.50
+C1.00.49 C1.00.45 C1.00.46 C1.00.47 C1.00.48 C1.00.50 C1.00.51 C1.00.52 C1.01.50
+C1.00.50 C1.00.46 C1.00.47 C1.00.49 C1.00.51 C1.00.52 C1.15.48 C1.15.51 C1.15.53
+C1.00.51 C1.00.48 C1.00.49 C1.00.50 C1.00.52 C1.00.53 C1.00.54 C1.00.55 C1.01.50 C1.01.53
+C1.00.52 C1.00.49 C1.00.50 C1.00.51 C1.00.54 C1.00.55 C1.00.56 C1.15.51 C1.15.53 C1.15.56
+C1.00.53 C1.00.51 C1.00.54 C1.00.57 C1.01.50 C1.01.53 C1.01.55 C1.01.57
+C1.00.54 C1.00.51 C1.00.52 C1.00.53 C1.00.55 C1.00.57 C1.00.58 C1.01.57
+C1.00.55 C1.00.51 C1.00.52 C1.00.54 C1.00.56 C1.00.57 C1.00.58 C1.00.59
+C1.00.56 C1.00.52 C1.00.55 C1.00.58 C1.00.59 C1.15.53 C1.15.56 C1.15.59
+C1.00.57 C1.00.53 C1.00.54 C1.00.55 C1.00.58 C1.00.60 C1.00.61 C1.01.57 C1.01.59
+C1.00.58 C1.00.54 C1.00.55 C1.00.56 C1.00.57 C1.00.59 C1.00.60 C1.00.61 C1.00.62
+C1.00.59 C1.00.55 C1.00.56 C1.00.58 C1.00.61 C1.00.62 C1.15.56 C1.15.59 C1.15.62
+C1.00.60 C1.00.57 C1.00.58 C1.00.61 C1.01.57 C1.01.59 C1.01.62
+C1.00.61 C1.00.57 C1.00.58 C1.00.59 C1.00.60 C1.00.62 C1.01.62
+C1.00.62 C1.00.58 C1.00.59 C1.00.61 C1.15.59 C1.15.62
+C1.01.00 C1.01.04 C1.01.06 C1.01.08 C1.01.12
+C1.01.01 C1.01.03 C1.01.05 C1.01.11
+C1.01.02 C1.00.08 C1.01.05 C1.01.13
+C1.01.03 C1.01.01 C1.01.07 C1.01.09 C1.01.11
+C1.01.04 C1.01.00 C1.01.08 C1.01.10
+C1.01.05 C1.01.01 C1.01.02 C1.01.11 C1.01.13
+C1.01.06 C1.01.00 C1.01.12 C1.01.17 C1.02.06 C1.02.13
+C1.01.07 C1.01.03 C1.01.09 C1.01.10 C1.01.14
+C1.01.08 C1.01.00 C1.01.04 C1.01.10 C1.01.12 C1.01.15
+C1.01.09 C1.01.03 C1.01.07 C1.01.11 C1.01.14 C1.01.16
+C1.01.10 C1.01.04 C1.01.07 C1.01.08 C1.01.12 C1.01.14 C1.01.15 C1.01.18
+C1.01.11 C1.01.01 C1.01.03 C1.01.05 C1.01.09 C1.01.13 C1.01.14 C1.01.16 C1.01.19
+C1.01.12 C1.01.00 C1.01.06 C1.01.08 C1.01.10 C1.01.15 C1.01.17 C1.01.20 C1.02.13
+C1.01.13 C1.00.07 C1.00.08 C1.00.17 C1.01.02 C1.01.05 C1.01.11 C1.01.16 C1.01.19 C1.01.21
+C1.01.14 C1.01.07 C1.01.09 C1.01.10 C1.01.11 C1.01.15 C1.01.16 C1.01.18 C1.01.22
+C1.01.15 C1.01.08 C1.01.10 C1.01.12 C1.01.14 C1.01.17 C1.01.18 C1.01.20 C1.01.23
+C1.01.16 C1.01.09 C1.01.11 C1.01.13 C1.01.14 C1.01.18 C1.01.19 C1.01.22 C1.01.24
+C1.01.17 C1.01.06 C1.01.12 C1.01.15 C1.01.20 C1.01.25 C1.02.13 C1.02.17 C1.02.21
+C1.01.18 C1.01.10 C1.01.14 C1.01.15 C1.01.16 C1.01.20 C1.01.22 C1.01.23 C1.01.27
+C1.01.19 C1.00.17 C1.01.11 C1.01.13 C1.01.16 C1.01.21 C1.01.22 C1.01.24 C1.01.26
+C1.01.20 C1.01.12 C1.01.15 C1.01.17 C1.01.18 C1.01.23 C1.01.25 C1.01.28 C1.02.21
+C1.01.21 C1.00.17 C1.00.18 C1.00.23 C1.00.28 C1.01.13 C1.01.19 C1.01.24 C1.01.26
+C1.01.22 C1.01.14 C1.01.16 C1.01.18 C1.01.19 C1.01.23 C1.01.24 C1.01.27 C1.01.29
+C1.01.23 C1.01.15 C1.01.18 C1.01.20 C1.01.22 C1.01.25 C1.01.27 C1.01.28 C1.01.30
+C1.01.24 C1.01.16 C1.01.19 C1.01.21 C1.01.22 C1.01.26 C1.01.27 C1.01.29 C1.01.31
+C1.01.25 C1.01.17 C1.01.20 C1.01.23 C1.01.28 C1.01.32 C1.02.21 C1.02.24 C1.02.28
+C1.01.26 C1.00.23 C1.00.28 C1.01.19 C1.01.21 C1.01.24 C1.01.29 C1.01.31 C1.01.33
+C1.01.27 C1.01.18 C1.01.22 C1.01.23 C1.01.24 C1.01.28 C1.01.29 C1.01.30 C1.01.34
+C1.01.28 C1.01.20 C1.01.23 C1.01.25 C1.01.27 C1.01.30 C1.01.32 C1.01.35 C1.02.28
+C1.01.29 C1.01.22 C1.01.24 C1.01.26 C1.01.27 C1.01.30 C1.01.31 C1.01.34 C1.01.36
+C1.01.30 C1.01.23 C1.01.27 C1.01.28 C1.01.29 C1.01.32 C1.01.34 C1.01.35 C1.01.37
+C1.01.31 C1.00.28 C1.01.24 C1.01.26 C1.01.29 C1.01.33 C1.01.34 C1.01.36 C1.01.38
+C1.01.32 C1.01.25 C1.01.28 C1.01.30 C1.01.35 C1.02.28 C1.02.31 C1.02.34 C1.02.37
+C1.01.33 C1.00.28 C1.00.29 C1.00.33 C1.00.37 C1.01.26 C1.01.31 C1.01.36 C1.01.38
+C1.01.34 C1.01.27 C1.01.29 C1.01.30 C1.01.31 C1.01.35 C1.01.36 C1.01.37 C1.01.39
+C1.01.35 C1.01.28 C1.01.30 C1.01.32 C1.01.34 C1.01.37 C1.01.40 C1.02.34 C1.02.37
+C1.01.36 C1.01.29 C1.01.31 C1.01.33 C1.01.34 C1.01.37 C1.01.38 C1.01.39 C1.01.41
+C1.01.37 C1.01.30 C1.01.34 C1.01.35 C1.01.36 C1.01.39 C1.01.40 C1.01.42 C1.02.37
+C1.01.38 C1.00.33 C1.00.37 C1.00.41 C1.01.31 C1.01.33 C1.01.36 C1.01.39 C1.01.41
+C1.01.39 C1.01.34 C1.01.36 C1.01.37 C1.01.38 C1.01.40 C1.01.41 C1.01.42 C1.01.43
+C1.01.40 C1.01.35 C1.01.37 C1.01.39 C1.01.42 C1.01.44 C1.02.37 C1.02.40 C1.02.43
+C1.01.41 C1.00.37 C1.00.41 C1.01.36 C1.01.38 C1.01.39 C1.01.42 C1.01.43 C1.01.45
+C1.01.42 C1.01.37 C1.01.39 C1.01.40 C1.01.41 C1.01.43 C1.01.44 C1.01.46 C1.02.43
+C1.01.43 C1.00.41 C1.01.39 C1.01.41 C1.01.42 C1.01.44 C1.01.45 C1.01.46 C1.01.47
+C1.01.44 C1.01.40 C1.01.42 C1.01.43 C1.01.46 C1.01.48 C1.02.43 C1.02.45 C1.02.47
+C1.01.45 C1.00.41 C1.00.42 C1.00.45 C1.00.48 C1.01.41 C1.01.43 C1.01.46 C1.01.47
+C1.01.46 C1.01.42 C1.01.43 C1.01.44 C1.01.45 C1.01.47 C1.01.48 C1.01.49 C1.02.47
+C1.01.47 C1.00.45 C1.00.48 C1.01.43 C1.01.45 C1.01.46 C1.01.48 C1.01.49 C1.01.50
+C1.01.48 C1.01.44 C1.01.46 C1.01.47 C1.01.49 C1.01.51 C1.02.47 C1.02.49 C1.02.51
+C1.01.49 C1.00.48 C1.01.46 C1.01.47 C1.01.48 C1.01.50 C1.01.51 C1.01.52 C1.02.51
+C1.01.50 C1.00.48 C1.00.49 C1.00.51 C1.00.53 C1.01.47 C1.01.49 C1.01.51 C1.01.52 C1.01.53
+C1.01.51 C1.01.48 C1.01.49 C1.01.50 C1.01.52 C1.01.54 C1.01.56 C1.02.51 C1.02.52 C1.02.53 C1.02.55
+C1.01.52 C1.01.49 C1.01.50 C1.01.51 C1.01.53 C1.01.54 C1.01.55
+C1.01.53 C1.00.51 C1.00.53 C1.01.50 C1.01.52 C1.01.54 C1.01.55 C1.01.57
+C1.01.54 C1.01.51 C1.01.52 C1.01.53 C1.01.55 C1.01.56 C1.01.58 C1.02.55
+C1.01.55 C1.00.53 C1.01.52 C1.01.53 C1.01.54 C1.01.56 C1.01.57 C1.01.58 C1.01.59
+C1.01.56 C1.01.51 C1.01.54 C1.01.55 C1.01.58 C1.01.60 C1.02.55 C1.02.57 C1.02.59
+C1.01.57 C1.00.53 C1.00.54 C1.00.57 C1.00.60 C1.01.53 C1.01.55 C1.01.58 C1.01.59
+C1.01.58 C1.01.54 C1.01.55 C1.01.56 C1.01.57 C1.01.59 C1.01.60 C1.01.61 C1.02.59
+C1.01.59 C1.00.57 C1.00.60 C1.01.55 C1.01.57 C1.01.58 C1.01.60 C1.01.61 C1.01.62
+C1.01.60 C1.01.56 C1.01.58 C1.01.59 C1.01.61 C1.02.59 C1.02.61
+C1.01.61 C1.01.58 C1.01.59 C1.01.60 C1.01.62 C1.02.59 C1.02.61
+C1.01.62 C1.00.60 C1.00.61 C1.01.59 C1.01.61
+C1.02.00 C1.02.03 C1.02.06
+C1.02.01 C1.02.02 C1.02.04 C1.02.10 C1.02.14
+C1.02.02 C1.02.01 C1.02.07 C1.02.10
+C1.02.03 C1.02.00 C1.02.06 C1.02.09 C1.02.12
+C1.02.04 C1.02.01 C1.02.05 C1.02.10 C1.02.14 C1.03.02
+C1.02.05 C1.02.04 C1.02.14 C1.03.02 C1.03.08
+C1.02.06 C1.01.06 C1.02.00 C1.02.03 C1.02.12 C1.02.13 C1.02.17
+C1.02.07 C1.02.02 C1.02.10 C1.02.11 C1.02.15
+C1.02.08 C1.02.09 C1.02.11
+C1.02.09 C1.02.03 C1.02.08 C1.02.11 C1.02.12 C1.02.16
+C1.02.10 C1.02.01 C1.02.02 C1.02.04 C1.02.07 C1.02.11 C1.02.14 C1.02.15 C1.02.18
+C1.02.11 C1.02.07 C1.02.08 C1.02.09 C1.02.10 C1.02.12 C1.02.15 C1.02.16 C1.02.19
+C1.02.12 C1.02.03 C1.02.06 C1.02.09 C1.02.11 C1.02.13 C1.02.16 C1.02.17 C1.02.20
+C1.02.13 C1.01.06 C1.01.12 C1.01.17 C1.02.06 C1.02.12 C1.02.17 C1.02.21
+C1.02.14 C1.02.01 C1.02.04 C1.02.05 C1.02.10 C1.02.15 C1.02.18 C1.03.08 C1.03.10 C1.03.15 C1.03.20
+C1.02.15 C1.02.07 C1.02.10 C1.02.11 C1.02.14 C1.02.16 C1.02.18 C1.02.19 C1.02.22
+C1.02.16 C1.02.09 C1.02.11 C1.02.12 C1.02.15 C1.02.17 C1.02.19 C1.02.20 C1.02.23
+C1.02.17 C1.01.17 C1.02.06 C1.02.12 C1.02.13 C1.02.16 C1.02.20 C1.02.21 C1.02.24
+C1.02.18 C1.02.10 C1.02.14 C1.02.15 C1.02.19 C1.02.22 C1.02.25 C1.03.15 C1.03.20
+C1.02.19 C1.02.11 C1.02.15 C1.02.16 C1.02.18 C1.02.20 C1.02.22 C1.02.23 C1.02.26
+C1.02.20 C1.02.12 C1.02.16 C1.02.17 C1.02.19 C1.02.21 C1.02.23 C1.02.24 C1.02.27
+C1.02.21 C1.01.17 C1.01.20 C1.01.25 C1.02.13 C1.02.17 C1.02.20 C1.02.24 C1.02.28
+C1.02.22 C1.02.15 C1.02.18 C1.02.19 C1.02.23 C1.02.25 C1.02.26 C1.02.29 C1.03.20
+C1.02.23 C1.02.16 C1.02.19 C1.02.20 C1.02.22 C1.02.24 C1.02.26 C1.02.27 C1.02.30
+C1.02.24 C1.01.25 C1.02.17 C1.02.20 C1.02.21 C1.02.23 C1.02.27 C1.02.28 C1.02.31
+C1.02.25 C1.02.18 C1.02.22 C1.02.26 C1.02.29 C1.03.20 C1.03.21 C1.03.25 C1.03.29
+C1.02.26 C1.02.19 C1.02.22 C1.02.23 C1.02.25 C1.02.27 C1.02.29 C1.02.30 C1.02.32
+C1.02.27 C1.02.20 C1.02.23 C1.02.24 C1.02.26 C1.02.28 C1.02.30 C1.02.31 C1.02.33
+C1.02.28 C1.01.25 C1.01.28 C1.01.32 C1.02.21 C1.02.24 C1.02.27 C1.02.31 C1.02.34
+C1.02.29 C1.02.22 C1.02.25 C1.02.26 C1.02.30 C1.02.32 C1.03.25 C1.03.29 C1.03.33
+C1.02.30 C1.02.23 C1.02.26 C1.02.27 C1.02.29 C1.02.31 C1.02.32 C1.02.33 C1.02.35
+C1.02.31 C1.01.32 C1.02.24 C1.02.27 C1.02.28 C1.02.30 C1.02.33 C1.02.34 C1.02.36
+C1.02.32 C1.02.26 C1.02.29 C1.02.30 C1.02.33 C1.02.35 C1.02.38 C1.03.29 C1.03.33
+C1.02.33 C1.02.27 C1.02.30 C1.02.31 C1.02.32 C1.02.34 C1.02.35 C1.02.36 C1.02.39
+C1.02.34 C1.01.32 C1.01.35 C1.02.28 C1.02.31 C1.02.33 C1.02.36 C1.02.37 C1.02.40
+C1.02.35 C1.02.30 C1.02.32 C1.02.33 C1.02.36 C1.02.38 C1.02.39 C1.02.41 C1.03.33
+C1.02.36 C1.02.31 C1.02.33 C1.02.34 C1.02.35 C1.02.37 C1.02.39 C1.02.40 C1.02.42
+C1.02.37 C1.01.32 C1.01.35 C1.01.37 C1.01.40 C1.02.34 C1.02.36 C1.02.40 C1.02.43
+C1.02.38 C1.02.32 C1.02.35 C1.02.39 C1.02.41 C1.03.33 C1.03.34 C1.03.37 C1.03.40
+C1.02.39 C1.02.33 C1.02.35 C1.02.36 C1.02.38 C1.02.40 C1.02.41 C1.02.42 C1.02.44
+C1.02.40 C1.01.40 C1.02.34 C1.02.36 C1.02.37 C1.02.39 C1.02.42 C1.02.43 C1.02.45
+C1.02.41 C1.02.35 C1.02.38 C1.02.39 C1.02.42 C1.02.44 C1.03.37 C1.03.40 C1.03.43
+C1.02.42 C1.02.36 C1.02.39 C1.02.40 C1.02.41 C1.02.43 C1.02.44 C1.02.45 C1.02.46
+C1.02.43 C1.01.40 C1.01.42 C1.01.44 C1.02.37 C1.02.40 C1.02.42 C1.02.45 C1.02.47
+C1.02.44 C1.02.39 C1.02.41 C1.02.42 C1.02.45 C1.02.46 C1.02.48 C1.03.40 C1.03.43
+C1.02.45 C1.01.44 C1.02.40 C1.02.42 C1.02.43 C1.02.44 C1.02.46 C1.02.47 C1.02.49
+C1.02.46 C1.02.42 C1.02.44 C1.02.45 C1.02.47 C1.02.48 C1.02.49 C1.02.50 C1.03.43
+C1.02.47 C1.01.44 C1.01.46 C1.01.48 C1.02.43 C1.02.45 C1.02.46 C1.02.49 C1.02.51
+C1.02.48 C1.02.44 C1.02.46 C1.02.49 C1.02.50 C1.03.43 C1.03.44 C1.03.46 C1.03.48
+C1.02.49 C1.01.48 C1.02.45 C1.02.46 C1.02.47 C1.02.48 C1.02.50 C1.02.51 C1.02.52
+C1.02.50 C1.02.46 C1.02.48 C1.02.49 C1.02.51 C1.02.52 C1.03.46 C1.03.48 C1.03.50
+C1.02.51 C1.01.48 C1.01.49 C1.01.51 C1.02.47 C1.02.49 C1.02.50 C1.02.52 C1.02.53
+C1.02.52 C1.01.51 C1.02.49 C1.02.50 C1.02.51 C1.02.53 C1.02.54 C1.02.56 C1.03.48 C1.03.50 C1.03.54
+C1.02.53 C1.01.51 C1.02.51 C1.02.52 C1.02.54 C1.02.55 C1.02.57
+C1.02.54 C1.02.52 C1.02.53 C1.02.55 C1.02.56 C1.02.57 C1.02.58 C1.03.54
+C1.02.55 C1.01.51 C1.01.54 C1.01.56 C1.02.53 C1.02.54 C1.02.57 C1.02.59
+C1.02.56 C1.02.52 C1.02.54 C1.02.57 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.58
+C1.02.57 C1.01.56 C1.02.53 C1.02.54 C1.02.55 C1.02.56 C1.02.58 C1.02.59 C1.02.61
+C1.02.58 C1.02.54 C1.02.56 C1.02.57 C1.02.59 C1.02.60 C1.02.61 C1.02.62 C1.03.58
+C1.02.59 C1.01.56 C1.01.58 C1.01.60 C1.01.61 C1.02.55 C1.02.57 C1.02.58 C1.02.61
+C1.02.60 C1.02.56 C1.02.58 C1.02.61 C1.02.62 C1.03.58 C1.03.59 C1.03.61
+C1.02.61 C1.01.60 C1.01.61 C1.02.57 C1.02.58 C1.02.59 C1.02.60 C1.02.62
+C1.02.62 C1.02.58 C1.02.60 C1.02.61 C1.03.61
+C1.03.00 C1.03.05 C1.03.07 C1.04.00 C1.04.08
+C1.03.01 C1.03.02 C1.03.03 C1.03.10
+C1.03.02 C1.02.04 C1.02.05 C1.03.01 C1.03.08 C1.03.10
+C1.03.03 C1.03.01 C1.03.04 C1.03.10 C1.03.11
+C1.03.04 C1.03.03 C1.03.06 C1.03.11 C1.03.12
+C1.03.05 C1.03.00 C1.03.07 C1.03.09 C1.03.12 C1.03.13 C1.03.14
+C1.03.06 C1.03.04 C1.03.09 C1.03.11 C1.03.12
+C1.03.07 C1.03.00 C1.03.05 C1.03.13 C1.03.14 C1.04.00 C1.04.08 C1.04.14
+C1.03.08 C1.02.05 C1.02.14 C1.03.02 C1.03.10 C1.03.15
+C1.03.09 C1.03.05 C1.03.06 C1.03.12 C1.03.13
+C1.03.10 C1.02.14 C1.03.01 C1.03.02 C1.03.03 C1.03.08 C1.03.11 C1.03.15 C1.03.16
+C1.03.11 C1.03.03 C1.03.04 C1.03.06 C1.03.10 C1.03.12 C1.03.15 C1.03.16 C1.03.17
+C1.03.12 C1.03.04 C1.03.05 C1.03.06 C1.03.09 C1.03.11 C1.03.13 C1.03.16 C1.03.17 C1.03.18
+C1.03.13 C1.03.05 C1.03.07 C1.03.09 C1.03.12 C1.03.14 C1.03.17 C1.03.18 C1.03.19
+C1.03.14 C1.03.05 C1.03.07 C1.03.13 C1.03.18 C1.03.19 C1.04.08 C1.04.14 C1.04.19
+C1.03.15 C1.02.14 C1.02.18 C1.03.08 C1.03.10 C1.03.11 C1.03.16 C1.03.20 C1.03.21
+C1.03.16 C1.03.10 C1.03.11 C1.03.12 C1.03.15 C1.03.17 C1.03.20 C1.03.21 C1.03.22
+C1.03.17 C1.03.11 C1.03.12 C1.03.13 C1.03.16 C1.03.18 C1.03.21 C1.03.22 C1.03.23
+C1.03.18 C1.03.12 C1.03.13 C1.03.14 C1.03.17 C1.03.19 C1.03.22 C1.03.23 C1.03.24
+C1.03.19 C1.03.13 C1.03.14 C1.03.18 C1.03.23 C1.03.24 C1.04.14 C1.04.19 C1.04.24
+C1.03.20 C1.02.14 C1.02.18 C1.02.22 C1.02.25 C1.03.15 C1.03.16 C1.03.21 C1.03.25
+C1.03.21 C1.02.25 C1.03.15 C1.03.16 C1.03.17 C1.03.20 C1.03.22 C1.03.25 C1.03.26
+C1.03.22 C1.03.16 C1.03.17 C1.03.18 C1.03.21 C1.03.23 C1.03.25 C1.03.26 C1.03.27
+C1.03.23 C1.03.17 C1.03.18 C1.03.19 C1.03.22 C1.03.24 C1.03.26 C1.03.27 C1.03.28
+C1.03.24 C1.03.18 C1.03.19 C1.03.23 C1.03.27 C1.03.28 C1.04.19 C1.04.24 C1.04.28
+C1.03.25 C1.02.25 C1.02.29 C1.03.20 C1.03.21 C1.03.22 C1.03.26 C1.03.29 C1.03.30
+C1.03.26 C1.03.21 C1.03.22 C1.03.23 C1.03.25 C1.03.27 C1.03.29 C1.03.30 C1.03.31
+C1.03.27 C1.03.22 C1.03.23 C1.03.24 C1.03.26 C1.03.28 C1.03.30 C1.03.31 C1.03.32
+C1.03.28 C1.03.23 C1.03.24 C1.03.27 C1.03.31 C1.03.32 C1.04.24 C1.04.28 C1.04.32
+C1.03.29 C1.02.25 C1.02.29 C1.02.32 C1.03.25 C1.03.26 C1.03.30 C1.03.33 C1.03.34
+C1.03.30 C1.03.25 C1.03.26 C1.03.27 C1.03.29 C1.03.31 C1.03.33 C1.03.34 C1.03.35
+C1.03.31 C1.03.26 C1.03.27 C1.03.28 C1.03.30 C1.03.32 C1.03.34 C1.03.35 C1.03.36
+C1.03.32 C1.03.27 C1.03.28 C1.03.31 C1.03.35 C1.03.36 C1.04.28 C1.04.32 C1.04.36
+C1.03.33 C1.02.29 C1.02.32 C1.02.35 C1.02.38 C1.03.29 C1.03.30 C1.03.34 C1.03.37
+C1.03.34 C1.02.38 C1.03.29 C1.03.30 C1.03.31 C1.03.33 C1.03.35 C1.03.37 C1.03.38
+C1.03.35 C1.03.30 C1.03.31 C1.03.32 C1.03.34 C1.03.36 C1.03.37 C1.03.38 C1.03.39
+C1.03.36 C1.03.31 C1.03.32 C1.03.35 C1.03.38 C1.03.39 C1.04.32 C1.04.36 C1.04.39
+C1.03.37 C1.02.38 C1.02.41 C1.03.33 C1.03.34 C1.03.35 C1.03.38 C1.03.40 C1.03.41
+C1.03.38 C1.03.34 C1.03.35 C1.03.36 C1.03.37 C1.03.39 C1.03.40 C1.03.41 C1.03.42
+C1.03.39 C1.03.35 C1.03.36 C1.03.38 C1.03.41 C1.03.42 C1.04.36 C1.04.39 C1.04.42
+C1.03.40 C1.02.38 C1.02.41 C1.02.44 C1.03.37 C1.03.38 C1.03.41 C1.03.43 C1.03.44
+C1.03.41 C1.03.37 C1.03.38 C1.03.39 C1.03.40 C1.03.42 C1.03.43 C1.03.44 C1.03.45
+C1.03.42 C1.03.38 C1.03.39 C1.03.41 C1.03.44 C1.03.45 C1.04.39 C1.04.42 C1.04.45
+C1.03.43 C1.02.41 C1.02.44 C1.02.46 C1.02.48 C1.03.40 C1.03.41 C1.03.44 C1.03.46
+C1.03.44 C1.02.48 C1.03.40 C1.03.41 C1.03.42 C1.03.43 C1.03.45 C1.03.46 C1.03.47
+C1.03.45 C1.03.41 C1.03.42 C1.03.44 C1.03.46 C1.03.47 C1.04.42 C1.04.45 C1.04.47
+C1.03.46 C1.02.48 C1.02.50 C1.03.43 C1.03.44 C1.03.45 C1.03.47 C1.03.48 C1.03.49
+C1.03.47 C1.03.44 C1.03.45 C1.03.46 C1.03.48 C1.03.49 C1.04.45 C1.04.47 C1.04.49
+C1.03.48 C1.02.48 C1.02.50 C1.02.52 C1.03.46 C1.03.47 C1.03.49 C1.03.50 C1.03.51 C1.03.52
+C1.03.49 C1.03.46 C1.03.47 C1.03.48 C1.03.51 C1.03.52 C1.03.53 C1.04.47 C1.04.49 C1.04.53
+C1.03.50 C1.02.50 C1.02.52 C1.03.48 C1.03.51 C1.03.54 C1.03.55
+C1.03.51 C1.03.48 C1.03.49 C1.03.50 C1.03.52 C1.03.54 C1.03.55 C1.03.56
+C1.03.52 C1.03.48 C1.03.49 C1.03.51 C1.03.53 C1.03.55 C1.03.56 C1.03.57
+C1.03.53 C1.03.49 C1.03.52 C1.03.56 C1.03.57 C1.04.49 C1.04.53 C1.04.57
+C1.03.54 C1.02.52 C1.02.54 C1.02.56 C1.03.50 C1.03.51 C1.03.55 C1.03.58
+C1.03.55 C1.02.56 C1.03.50 C1.03.51 C1.03.52 C1.03.54 C1.03.56 C1.03.58 C1.03.59
+C1.03.56 C1.03.51 C1.03.52 C1.03.53 C1.03.55 C1.03.57 C1.03.58 C1.03.59 C1.03.60
+C1.03.57 C1.03.52 C1.03.53 C1.03.56 C1.03.59 C1.03.60 C1.04.53 C1.04.57 C1.04.60
+C1.03.58 C1.02.56 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.56 C1.03.59 C1.03.61
+C1.03.59 C1.02.60 C1.03.55 C1.03.56 C1.03.57 C1.03.58 C1.03.60 C1.03.61 C1.03.62
+C1.03.60 C1.03.56 C1.03.57 C1.03.59 C1.03.61 C1.03.62 C1.04.57 C1.04.60 C1.04.62
+C1.03.61 C1.02.60 C1.02.62 C1.03.58 C1.03.59 C1.03.60 C1.03.62
+C1.03.62 C1.03.59 C1.03.60 C1.03.61 C1.04.60 C1.04.62
+C1.04.00 C1.03.00 C1.03.07 C1.04.06 C1.04.08
+C1.04.01 C1.04.02 C1.04.04 C1.04.10
+C1.04.02 C1.04.01 C1.04.03 C1.04.10 C1.04.11
+C1.04.03 C1.04.02 C1.04.05 C1.04.10 C1.04.11
+C1.04.04 C1.04.01 C1.04.10 C1.04.15 C1.05.02 C1.05.09 C1.05.13
+C1.04.05 C1.04.03 C1.04.07 C1.04.11 C1.04.12
+C1.04.06 C1.04.00 C1.04.08 C1.04.09 C1.04.12 C1.04.13 C1.04.14
+C1.04.07 C1.04.05 C1.04.09 C1.04.11 C1.04.12
+C1.04.08 C1.03.00 C1.03.07 C1.03.14 C1.04.00 C1.04.06 C1.04.13 C1.04.14
+C1.04.09 C1.04.06 C1.04.07 C1.04.12 C1.04.13
+C1.04.10 C1.04.01 C1.04.02 C1.04.03 C1.04.04 C1.04.11 C1.04.15 C1.04.16 C1.05.13
+C1.04.11 C1.04.02 C1.04.03 C1.04.05 C1.04.07 C1.04.10 C1.04.12 C1.04.15 C1.04.16 C1.04.17
+C1.04.12 C1.04.05 C1.04.06 C1.04.07 C1.04.09 C1.04.11 C1.04.13 C1.04.16 C1.04.17 C1.04.18
+C1.04.13 C1.04.06 C1.04.08 C1.04.09 C1.04.12 C1.04.14 C1.04.17 C1.04.18 C1.04.19
+C1.04.14 C1.03.07 C1.03.14 C1.03.19 C1.04.06 C1.04.08 C1.04.13 C1.04.18 C1.04.19
+C1.04.15 C1.04.04 C1.04.10 C1.04.11 C1.04.16 C1.04.20 C1.04.21 C1.05.13 C1.05.17
+C1.04.16 C1.04.10 C1.04.11 C1.04.12 C1.04.15 C1.04.17 C1.04.20 C1.04.21 C1.04.22
+C1.04.17 C1.04.11 C1.04.12 C1.04.13 C1.04.16 C1.04.18 C1.04.21 C1.04.22 C1.04.23
+C1.04.18 C1.04.12 C1.04.13 C1.04.14 C1.04.17 C1.04.19 C1.04.22 C1.04.23 C1.04.24
+C1.04.19 C1.03.14 C1.03.19 C1.03.24 C1.04.13 C1.04.14 C1.04.18 C1.04.23 C1.04.24
+C1.04.20 C1.04.15 C1.04.16 C1.04.21 C1.04.25 C1.05.13 C1.05.17 C1.05.21 C1.05.24
+C1.04.21 C1.04.15 C1.04.16 C1.04.17 C1.04.20 C1.04.22 C1.04.25 C1.04.26 C1.05.24
+C1.04.22 C1.04.16 C1.04.17 C1.04.18 C1.04.21 C1.04.23 C1.04.25 C1.04.26 C1.04.27
+C1.04.23 C1.04.17 C1.04.18 C1.04.19 C1.04.22 C1.04.24 C1.04.26 C1.04.27 C1.04.28
+C1.04.24 C1.03.19 C1.03.24 C1.03.28 C1.04.18 C1.04.19 C1.04.23 C1.04.27 C1.04.28
+C1.04.25 C1.04.20 C1.04.21 C1.04.22 C1.04.26 C1.04.29 C1.04.30 C1.05.24 C1.05.28
+C1.04.26 C1.04.21 C1.04.22 C1.04.23 C1.04.25 C1.04.27 C1.04.29 C1.04.30 C1.04.31
+C1.04.27 C1.04.22 C1.04.23 C1.04.24 C1.04.26 C1.04.28 C1.04.30 C1.04.31 C1.04.32
+C1.04.28 C1.03.24 C1.03.28 C1.03.32 C1.04.23 C1.04.24 C1.04.27 C1.04.31 C1.04.32
+C1.04.29 C1.04.25 C1.04.26 C1.04.30 C1.04.33 C1.04.34 C1.05.24 C1.05.28 C1.05.31
+C1.04.30 C1.04.25 C1.04.26 C1.04.27 C1.04.29 C1.04.31 C1.04.33 C1.04.34 C1.04.35
+C1.04.31 C1.04.26 C1.04.27 C1.04.28 C1.04.30 C1.04.32 C1.04.34 C1.04.35 C1.04.36
+C1.04.32 C1.03.28 C1.03.32 C1.03.36 C1.04.27 C1.04.28 C1.04.31 C1.04.35 C1.04.36
+C1.04.33 C1.04.29 C1.04.30 C1.04.34 C1.04.37 C1.05.28 C1.05.31 C1.05.34 C1.05.37
+C1.04.34 C1.04.29 C1.04.30 C1.04.31 C1.04.33 C1.04.35 C1.04.37 C1.04.38 C1.05.37
+C1.04.35 C1.04.30 C1.04.31 C1.04.32 C1.04.34 C1.04.36 C1.04.37 C1.04.38 C1.04.39
+C1.04.36 C1.03.32 C1.03.36 C1.03.39 C1.04.31 C1.04.32 C1.04.35 C1.04.38 C1.04.39
+C1.04.37 C1.04.33 C1.04.34 C1.04.35 C1.04.38 C1.04.40 C1.04.41 C1.05.37 C1.05.40
+C1.04.38 C1.04.34 C1.04.35 C1.04.36 C1.04.37 C1.04.39 C1.04.40 C1.04.41 C1.04.42
+C1.04.39 C1.03.36 C1.03.39 C1.03.42 C1.04.35 C1.04.36 C1.04.38 C1.04.41 C1.04.42
+C1.04.40 C1.04.37 C1.04.38 C1.04.41 C1.04.43 C1.04.44 C1.05.37 C1.05.40 C1.05.43
+C1.04.41 C1.04.37 C1.04.38 C1.04.39 C1.04.40 C1.04.42 C1.04.43 C1.04.44 C1.04.45
+C1.04.42 C1.03.39 C1.03.42 C1.03.45 C1.04.38 C1.04.39 C1.04.41 C1.04.44 C1.04.45
+C1.04.43 C1.04.40 C1.04.41 C1.04.44 C1.04.46 C1.05.40 C1.05.43 C1.05.45 C1.05.47
+C1.04.44 C1.04.40 C1.04.41 C1.04.42 C1.04.43 C1.04.45 C1.04.46 C1.04.47 C1.05.47
+C1.04.45 C1.03.42 C1.03.45 C1.03.47 C1.04.41 C1.04.42 C1.04.44 C1.04.46 C1.04.47
+C1.04.46 C1.04.43 C1.04.44 C1.04.45 C1.04.47 C1.04.48 C1.04.49 C1.05.47 C1.05.49
+C1.04.47 C1.03.45 C1.03.47 C1.03.49 C1.04.44 C1.04.45 C1.04.46 C1.04.48 C1.04.49
+C1.04.48 C1.04.46 C1.04.47 C1.04.49 C1.04.50 C1.04.51 C1.04.52 C1.05.47 C1.05.49 C1.05.51
+C1.04.49 C1.03.47 C1.03.49 C1.03.53 C1.04.46 C1.04.47 C1.04.48 C1.04.51 C1.04.52 C1.04.53
+C1.04.50 C1.04.48 C1.04.51 C1.04.54 C1.04.55 C1.05.49 C1.05.51
+C1.04.51 C1.04.48 C1.04.49 C1.04.50 C1.04.52 C1.04.54 C1.04.55 C1.04.56
+C1.04.52 C1.04.48 C1.04.49 C1.04.51 C1.04.53 C1.04.55 C1.04.56 C1.04.57
+C1.04.53 C1.03.49 C1.03.53 C1.03.57 C1.04.49 C1.04.52 C1.04.56 C1.04.57
+C1.04.54 C1.04.50 C1.04.51 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.55
+C1.04.55 C1.04.50 C1.04.51 C1.04.52 C1.04.54 C1.04.56 C1.04.58 C1.04.59 C1.05.55
+C1.04.56 C1.04.51 C1.04.52 C1.04.53 C1.04.55 C1.04.57 C1.04.58 C1.04.59 C1.04.60
+C1.04.57 C1.03.53 C1.03.57 C1.03.60 C1.04.52 C1.04.53 C1.04.56 C1.04.59 C1.04.60
+C1.04.58 C1.04.54 C1.04.55 C1.04.56 C1.04.59 C1.04.61 C1.05.55 C1.05.57 C1.05.59
+C1.04.59 C1.04.55 C1.04.56 C1.04.57 C1.04.58 C1.04.60 C1.04.61 C1.04.62 C1.05.59
+C1.04.60 C1.03.57 C1.03.60 C1.03.62 C1.04.56 C1.04.57 C1.04.59 C1.04.61 C1.04.62
+C1.04.61 C1.04.58 C1.04.59 C1.04.60 C1.04.62 C1.05.59 C1.05.62
+C1.04.62 C1.03.60 C1.03.62 C1.04.59 C1.04.60 C1.04.61 C1.05.62
+C1.05.00 C1.05.02 C1.05.05 C1.05.09
+C1.05.01 C1.05.03 C1.05.06 C1.05.12
+C1.05.02 C1.04.04 C1.05.00 C1.05.09 C1.05.13
+C1.05.03 C1.05.01 C1.05.06 C1.05.07 C1.05.08 C1.05.12
+C1.05.04 C1.05.05 C1.05.07 C1.05.10
+C1.05.05 C1.05.00 C1.05.04 C1.05.09 C1.05.10 C1.05.14
+C1.05.06 C1.05.01 C1.05.03 C1.05.11 C1.05.12 C1.05.16 C1.06.06
+C1.05.07 C1.05.03 C1.05.04 C1.05.08 C1.05.10
+C1.05.08 C1.05.03 C1.05.07 C1.05.10 C1.05.12 C1.05.15
+C1.05.09 C1.04.04 C1.05.00 C1.05.02 C1.05.05 C1.05.10 C1.05.13 C1.05.14 C1.05.17
+C1.05.10 C1.05.04 C1.05.05 C1.05.07 C1.05.08 C1.05.09 C1.05.12 C1.05.14 C1.05.15 C1.05.18
+C1.05.11 C1.05.06 C1.05.12 C1.05.16 C1.05.20 C1.06.06 C1.06.12 C1.06.17
+C1.05.12 C1.05.01 C1.05.03 C1.05.06 C1.05.08 C1.05.10 C1.05.11 C1.05.15 C1.05.16 C1.05.19
+C1.05.13 C1.04.04 C1.04.10 C1.04.15 C1.04.20 C1.05.02 C1.05.09 C1.05.14 C1.05.17
+C1.05.14 C1.05.05 C1.05.09 C1.05.10 C1.05.13 C1.05.15 C1.05.17 C1.05.18 C1.05.21
+C1.05.15 C1.05.08 C1.05.10 C1.05.12 C1.05.14 C1.05.16 C1.05.18 C1.05.19 C1.05.22
+C1.05.16 C1.05.06 C1.05.11 C1.05.12 C1.05.15 C1.05.19 C1.05.20 C1.05.23 C1.06.17
+C1.05.17 C1.04.15 C1.04.20 C1.05.09 C1.05.13 C1.05.14 C1.05.18 C1.05.21 C1.05.24
+C1.05.18 C1.05.10 C1.05.14 C1.05.15 C1.05.17 C1.05.19 C1.05.21 C1.05.22 C1.05.25
+C1.05.19 C1.05.12 C1.05.15 C1.05.16 C1.05.18 C1.05.20 C1.05.22 C1.05.23 C1.05.26
+C1.05.20 C1.05.11 C1.05.16 C1.05.19 C1.05.23 C1.05.27 C1.06.17 C1.06.20 C1.06.25
+C1.05.21 C1.04.20 C1.05.14 C1.05.17 C1.05.18 C1.05.22 C1.05.24 C1.05.25 C1.05.28
+C1.05.22 C1.05.15 C1.05.18 C1.05.19 C1.05.21 C1.05.23 C1.05.25 C1.05.26 C1.05.29
+C1.05.23 C1.05.16 C1.05.19 C1.05.20 C1.05.22 C1.05.26 C1.05.27 C1.05.30 C1.06.25
+C1.05.24 C1.04.20 C1.04.21 C1.04.25 C1.04.29 C1.05.17 C1.05.21 C1.05.25 C1.05.28
+C1.05.25 C1.05.18 C1.05.21 C1.05.22 C1.05.24 C1.05.26 C1.05.28 C1.05.29 C1.05.31
+C1.05.26 C1.05.19 C1.05.22 C1.05.23 C1.05.25 C1.05.27 C1.05.29 C1.05.30 C1.05.32
+C1.05.27 C1.05.20 C1.05.23 C1.05.26 C1.05.30 C1.05.33 C1.06.25 C1.06.28 C1.06.32
+C1.05.28 C1.04.25 C1.04.29 C1.04.33 C1.05.21 C1.05.24 C1.05.25 C1.05.29 C1.05.31
+C1.05.29 C1.05.22 C1.05.25 C1.05.26 C1.05.28 C1.05.30 C1.05.31 C1.05.32 C1.05.34
+C1.05.30 C1.05.23 C1.05.26 C1.05.27 C1.05.29 C1.05.32 C1.05.33 C1.05.36 C1.06.32
+C1.05.31 C1.04.29 C1.04.33 C1.05.25 C1.05.28 C1.05.29 C1.05.32 C1.05.34 C1.05.37
+C1.05.32 C1.05.26 C1.05.29 C1.05.30 C1.05.31 C1.05.33 C1.05.34 C1.05.36 C1.05.38
+C1.05.33 C1.05.27 C1.05.30 C1.05.32 C1.05.35 C1.05.36 C1.05.39 C1.06.32 C1.06.35
+C1.05.34 C1.04.33 C1.05.29 C1.05.31 C1.05.32 C1.05.36 C1.05.37 C1.05.38 C1.05.40
+C1.05.35 C1.05.33 C1.05.36 C1.05.39 C1.05.42 C1.06.32 C1.06.35 C1.06.37 C1.06.40
+C1.05.36 C1.05.30 C1.05.32 C1.05.33 C1.05.34 C1.05.35 C1.05.38 C1.05.39 C1.05.41
+C1.05.37 C1.04.33 C1.04.34 C1.04.37 C1.04.40 C1.05.31 C1.05.34 C1.05.38 C1.05.40
+C1.05.38 C1.05.32 C1.05.34 C1.05.36 C1.05.37 C1.05.39 C1.05.40 C1.05.41 C1.05.43
+C1.05.39 C1.05.33 C1.05.35 C1.05.36 C1.05.38 C1.05.41 C1.05.42 C1.05.44 C1.06.40
+C1.05.40 C1.04.37 C1.04.40 C1.04.43 C1.05.34 C1.05.37 C1.05.38 C1.05.41 C1.05.43
+C1.05.41 C1.05.36 C1.05.38 C1.05.39 C1.05.40 C1.05.42 C1.05.43 C1.05.44 C1.05.45
+C1.05.42 C1.05.35 C1.05.39 C1.05.41 C1.05.44 C1.05.46 C1.06.40 C1.06.42 C1.06.44
+C1.05.43 C1.04.40 C1.04.43 C1.05.38 C1.05.40 C1.05.41 C1.05.44 C1.05.45 C1.05.47
+C1.05.44 C1.05.39 C1.05.41 C1.05.42 C1.05.43 C1.05.45 C1.05.46 C1.05.48 C1.06.44
+C1.05.45 C1.04.43 C1.05.41 C1.05.43 C1.05.44 C1.05.46 C1.05.47 C1.05.48 C1.05.49
+C1.05.46 C1.05.42 C1.05.44 C1.05.45 C1.05.48 C1.05.50 C1.06.44 C1.06.46 C1.06.48
+C1.05.47 C1.04.43 C1.04.44 C1.04.46 C1.04.48 C1.05.43 C1.05.45 C1.05.48 C1.05.49
+C1.05.48 C1.05.44 C1.05.45 C1.05.46 C1.05.47 C1.05.49 C1.05.50 C1.05.51 C1.06.48
+C1.05.49 C1.04.46 C1.04.48 C1.04.50 C1.05.45 C1.05.47 C1.05.48 C1.05.50 C1.05.51
+C1.05.50 C1.05.46 C1.05.48 C1.05.49 C1.05.51 C1.05.52 C1.06.48 C1.06.49 C1.06.51
+C1.05.51 C1.04.48 C1.04.50 C1.04.54 C1.05.48 C1.05.49 C1.05.50 C1.05.52 C1.05.53 C1.05.55 C1.06.51
+C1.05.52 C1.05.50 C1.05.51 C1.05.53 C1.05.54 C1.05.56 C1.06.51
+C1.05.53 C1.04.54 C1.05.51 C1.05.52 C1.05.54 C1.05.55 C1.05.56 C1.05.57
+C1.05.54 C1.05.52 C1.05.53 C1.05.56 C1.05.58 C1.06.51 C1.06.55 C1.06.57
+C1.05.55 C1.04.54 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.56 C1.05.57 C1.05.59
+C1.05.56 C1.05.52 C1.05.53 C1.05.54 C1.05.55 C1.05.57 C1.05.58 C1.05.60 C1.06.57
+C1.05.57 C1.04.58 C1.05.53 C1.05.55 C1.05.56 C1.05.58 C1.05.59 C1.05.60
+C1.05.58 C1.05.54 C1.05.56 C1.05.57 C1.05.60 C1.05.61 C1.06.57 C1.06.59 C1.06.61
+C1.05.59 C1.04.58 C1.04.59 C1.04.61 C1.05.55 C1.05.57 C1.05.60 C1.05.62
+C1.05.60 C1.05.56 C1.05.57 C1.05.58 C1.05.59 C1.05.61 C1.05.62 C1.06.61
+C1.05.61 C1.05.58 C1.05.60 C1.05.62 C1.06.61 C1.06.62
+C1.05.62 C1.04.61 C1.04.62 C1.05.59 C1.05.60 C1.05.61
+C1.06.00 C1.06.02 C1.06.03 C1.06.11
+C1.06.01 C1.06.04 C1.06.06 C1.06.08 C1.06.12
+C1.06.02 C1.06.00 C1.06.05 C1.06.11 C1.06.13
+C1.06.03 C1.06.00 C1.06.07 C1.06.09 C1.06.11
+C1.06.04 C1.06.01 C1.06.08 C1.06.10
+C1.06.05 C1.06.02 C1.06.11 C1.06.13 C1.07.00 C1.07.08
+C1.06.06 C1.05.06 C1.05.11 C1.06.01 C1.06.12 C1.06.17
+C1.06.07 C1.06.03 C1.06.09 C1.06.10 C1.06.14
+C1.06.08 C1.06.01 C1.06.04 C1.06.10 C1.06.12 C1.06.15
+C1.06.09 C1.06.03 C1.06.07 C1.06.11 C1.06.14 C1.06.16
+C1.06.10 C1.06.04 C1.06.07 C1.06.08 C1.06.12 C1.06.14 C1.06.15 C1.06.18
+C1.06.11 C1.06.00 C1.06.02 C1.06.03 C1.06.05 C1.06.09 C1.06.13 C1.06.14 C1.06.16 C1.06.19
+C1.06.12 C1.05.11 C1.06.01 C1.06.06 C1.06.08 C1.06.10 C1.06.15 C1.06.17 C1.06.20
+C1.06.13 C1.06.02 C1.06.05 C1.06.11 C1.06.16 C1.06.19 C1.06.21 C1.07.07 C1.07.08 C1.07.18
+C1.06.14 C1.06.07 C1.06.09 C1.06.10 C1.06.11 C1.06.15 C1.06.16 C1.06.18 C1.06.22
+C1.06.15 C1.06.08 C1.06.10 C1.06.12 C1.06.14 C1.06.17 C1.06.18 C1.06.20 C1.06.23
+C1.06.16 C1.06.09 C1.06.11 C1.06.13 C1.06.14 C1.06.18 C1.06.19 C1.06.22 C1.06.24
+C1.06.17 C1.05.11 C1.05.16 C1.05.20 C1.06.06 C1.06.12 C1.06.15 C1.06.20 C1.06.25
+C1.06.18 C1.06.10 C1.06.14 C1.06.15 C1.06.16 C1.06.20 C1.06.22 C1.06.23 C1.06.27
+C1.06.19 C1.06.11 C1.06.13 C1.06.16 C1.06.21 C1.06.22 C1.06.24 C1.06.26 C1.07.18
+C1.06.20 C1.05.20 C1.06.12 C1.06.15 C1.06.17 C1.06.18 C1.06.23 C1.06.25 C1.06.28
+C1.06.21 C1.06.13 C1.06.19 C1.06.24 C1.06.26 C1.07.18 C1.07.19 C1.07.24 C1.07.29
+C1.06.22 C1.06.14 C1.06.16 C1.06.18 C1.06.19 C1.06.23 C1.06.24 C1.06.27 C1.06.29
+C1.06.23 C1.06.15 C1.06.18 C1.06.20 C1.06.22 C1.06.25 C1.06.27 C1.06.28 C1.06.30
+C1.06.24 C1.06.16 C1.06.19 C1.06.21 C1.06.22 C1.06.26 C1.06.27 C1.06.29 C1.06.31
+C1.06.25 C1.05.20 C1.05.23 C1.05.27 C1.06.17 C1.06.20 C1.06.23 C1.06.28 C1.06.32
+C1.06.26 C1.06.19 C1.06.21 C1.06.24 C1.06.29 C1.06.31 C1.06.33 C1.07.24 C1.07.29
+C1.06.27 C1.06.18 C1.06.22 C1.06.23 C1.06.24 C1.06.28 C1.06.29 C1.06.30 C1.06.34
+C1.06.28 C1.05.27 C1.06.20 C1.06.23 C1.06.25 C1.06.27 C1.06.30 C1.06.32 C1.06.35
+C1.06.29 C1.06.22 C1.06.24 C1.06.26 C1.06.27 C1.06.30 C1.06.31 C1.06.34 C1.06.36
+C1.06.30 C1.06.23 C1.06.27 C1.06.28 C1.06.29 C1.06.32 C1.06.34 C1.06.35 C1.06.37
+C1.06.31 C1.06.24 C1.06.26 C1.06.29 C1.06.33 C1.06.34 C1.06.36 C1.06.38 C1.07.29
+C1.06.32 C1.05.27 C1.05.30 C1.05.33 C1.05.35 C1.06.25 C1.06.28 C1.06.30 C1.06.35
+C1.06.33 C1.06.26 C1.06.31 C1.06.36 C1.06.38 C1.07.29 C1.07.30 C1.07.34 C1.07.38
+C1.06.34 C1.06.27 C1.06.29 C1.06.30 C1.06.31 C1.06.35 C1.06.36 C1.06.37 C1.06.39
+C1.06.35 C1.05.33 C1.05.35 C1.06.28 C1.06.30 C1.06.32 C1.06.34 C1.06.37 C1.06.40
+C1.06.36 C1.06.29 C1.06.31 C1.06.33 C1.06.34 C1.06.37 C1.06.38 C1.06.39 C1.06.41
+C1.06.37 C1.05.35 C1.06.30 C1.06.34 C1.06.35 C1.06.36 C1.06.39 C1.06.40 C1.06.42
+C1.06.38 C1.06.31 C1.06.33 C1.06.36 C1.06.39 C1.06.41 C1.07.34 C1.07.38 C1.07.42
+C1.06.39 C1.06.34 C1.06.36 C1.06.37 C1.06.38 C1.06.40 C1.06.41 C1.06.42 C1.06.43
+C1.06.40 C1.05.35 C1.05.39 C1.05.42 C1.06.35 C1.06.37 C1.06.39 C1.06.42 C1.06.44
+C1.06.41 C1.06.36 C1.06.38 C1.06.39 C1.06.42 C1.06.43 C1.06.45 C1.07.38 C1.07.42
+C1.06.42 C1.05.42 C1.06.37 C1.06.39 C1.06.40 C1.06.41 C1.06.43 C1.06.44 C1.06.46
+C1.06.43 C1.06.39 C1.06.41 C1.06.42 C1.06.44 C1.06.45 C1.06.46 C1.06.47 C1.07.42
+C1.06.44 C1.05.42 C1.05.44 C1.05.46 C1.06.40 C1.06.42 C1.06.43 C1.06.46 C1.06.48
+C1.06.45 C1.06.41 C1.06.43 C1.06.46 C1.06.47 C1.07.42 C1.07.43 C1.07.46 C1.07.49
+C1.06.46 C1.05.46 C1.06.42 C1.06.43 C1.06.44 C1.06.45 C1.06.47 C1.06.48 C1.06.49
+C1.06.47 C1.06.43 C1.06.45 C1.06.46 C1.06.48 C1.06.49 C1.06.50 C1.07.46 C1.07.49
+C1.06.48 C1.05.46 C1.05.48 C1.05.50 C1.06.44 C1.06.46 C1.06.47 C1.06.49 C1.06.51
+C1.06.49 C1.05.50 C1.06.46 C1.06.47 C1.06.48 C1.06.50 C1.06.51 C1.06.52 C1.07.49
+C1.06.50 C1.06.47 C1.06.49 C1.06.51 C1.06.52 C1.06.53 C1.06.54 C1.07.49 C1.07.50 C1.07.52
+C1.06.51 C1.05.50 C1.05.51 C1.05.52 C1.05.54 C1.06.48 C1.06.49 C1.06.50 C1.06.52 C1.06.55 C1.06.57
+C1.06.52 C1.06.49 C1.06.50 C1.06.51 C1.06.53 C1.06.55 C1.06.56
+C1.06.53 C1.06.50 C1.06.52 C1.06.54 C1.06.55 C1.06.56 C1.06.58 C1.07.52
+C1.06.54 C1.06.50 C1.06.53 C1.06.56 C1.06.58 C1.07.52 C1.07.54 C1.07.57
+C1.06.55 C1.05.54 C1.06.51 C1.06.52 C1.06.53 C1.06.56 C1.06.57 C1.06.59
+C1.06.56 C1.06.52 C1.06.53 C1.06.54 C1.06.55 C1.06.57 C1.06.58 C1.06.59 C1.06.60
+C1.06.57 C1.05.54 C1.05.56 C1.05.58 C1.06.51 C1.06.55 C1.06.56 C1.06.59 C1.06.61
+C1.06.58 C1.06.53 C1.06.54 C1.06.56 C1.06.59 C1.06.60 C1.07.54 C1.07.57 C1.07.60
+C1.06.59 C1.05.58 C1.06.55 C1.06.56 C1.06.57 C1.06.58 C1.06.60 C1.06.61 C1.06.62
+C1.06.60 C1.06.56 C1.06.58 C1.06.59 C1.06.61 C1.06.62 C1.07.57 C1.07.60
+C1.06.61 C1.05.58 C1.05.60 C1.05.61 C1.06.57 C1.06.59 C1.06.60 C1.06.62
+C1.06.62 C1.05.61 C1.06.59 C1.06.60 C1.06.61 C1.07.60
+C1.07.00 C1.06.05 C1.07.07 C1.07.08
+C1.07.01 C1.07.02 C1.07.04 C1.07.06 C1.07.10 C1.07.11
+C1.07.02 C1.07.01 C1.07.11 C1.07.12 C1.08.01 C1.08.11
+C1.07.03 C1.07.07 C1.07.13 C1.07.14
+C1.07.04 C1.07.01 C1.07.05 C1.07.06 C1.07.09
+C1.07.05 C1.07.04 C1.07.09 C1.07.14 C1.07.15
+C1.07.06 C1.07.01 C1.07.04 C1.07.09 C1.07.10 C1.07.15 C1.07.16
+C1.07.07 C1.06.13 C1.07.00 C1.07.03 C1.07.08 C1.07.13 C1.07.18 C1.07.19
+C1.07.08 C1.06.05 C1.06.13 C1.07.00 C1.07.07 C1.07.18
+C1.07.09 C1.07.04 C1.07.05 C1.07.06 C1.07.15 C1.07.16
+C1.07.10 C1.07.01 C1.07.06 C1.07.11 C1.07.16 C1.07.17
+C1.07.11 C1.07.01 C1.07.02 C1.07.10 C1.07.12 C1.07.16 C1.07.17
+C1.07.12 C1.07.02 C1.07.11 C1.07.17 C1.08.01 C1.08.11 C1.08.16
+C1.07.13 C1.07.03 C1.07.07 C1.07.14 C1.07.18 C1.07.19 C1.07.20
+C1.07.14 C1.07.03 C1.07.05 C1.07.13 C1.07.15 C1.07.19 C1.07.20 C1.07.21
+C1.07.15 C1.07.05 C1.07.06 C1.07.09 C1.07.14 C1.07.16 C1.07.20 C1.07.21 C1.07.22
+C1.07.16 C1.07.06 C1.07.09 C1.07.10 C1.07.11 C1.07.15 C1.07.17 C1.07.21 C1.07.22 C1.07.23
+C1.07.17 C1.07.10 C1.07.11 C1.07.12 C1.07.16 C1.07.22 C1.07.23 C1.08.11 C1.08.16 C1.08.22
+C1.07.18 C1.06.13 C1.06.19 C1.06.21 C1.07.07 C1.07.08 C1.07.13 C1.07.19 C1.07.24
+C1.07.19 C1.06.21 C1.07.07 C1.07.13 C1.07.14 C1.07.18 C1.07.20 C1.07.24 C1.07.25
+C1.07.20 C1.07.13 C1.07.14 C1.07.15 C1.07.19 C1.07.21 C1.07.24 C1.07.25 C1.07.26
+C1.07.21 C1.07.14 C1.07.15 C1.07.16 C1.07.20 C1.07.22 C1.07.25 C1.07.26 C1.07.27
+C1.07.22 C1.07.15 C1.07.16 C1.07.17 C1.07.21 C1.07.23 C1.07.26 C1.07.27 C1.07.28
+C1.07.23 C1.07.16 C1.07.17 C1.07.22 C1.07.27 C1.07.28 C1.08.16 C1.08.22 C1.08.27
+C1.07.24 C1.06.21 C1.06.26 C1.07.18 C1.07.19 C1.07.20 C1.07.25 C1.07.29 C1.07.30
+C1.07.25 C1.07.19 C1.07.20 C1.07.21 C1.07.24 C1.07.26 C1.07.29 C1.07.30 C1.07.31
+C1.07.26 C1.07.20 C1.07.21 C1.07.22 C1.07.25 C1.07.27 C1.07.30 C1.07.31 C1.07.32
+C1.07.27 C1.07.21 C1.07.22 C1.07.23 C1.07.26 C1.07.28 C1.07.31 C1.07.32 C1.07.33
+C1.07.28 C1.07.22 C1.07.23 C1.07.27 C1.07.32 C1.07.33 C1.08.22 C1.08.27 C1.08.32
+C1.07.29 C1.06.21 C1.06.26 C1.06.31 C1.06.33 C1.07.24 C1.07.25 C1.07.30 C1.07.34
+C1.07.30 C1.06.33 C1.07.24 C1.07.25 C1.07.26 C1.07.29 C1.07.31 C1.07.34 C1.07.35
+C1.07.31 C1.07.25 C1.07.26 C1.07.27 C1.07.30 C1.07.32 C1.07.34 C1.07.35 C1.07.36
+C1.07.32 C1.07.26 C1.07.27 C1.07.28 C1.07.31 C1.07.33 C1.07.35 C1.07.36 C1.07.37
+C1.07.33 C1.07.27 C1.07.28 C1.07.32 C1.07.36 C1.07.37 C1.08.27 C1.08.32 C1.08.36
+C1.07.34 C1.06.33 C1.06.38 C1.07.29 C1.07.30 C1.07.31 C1.07.35 C1.07.38 C1.07.39
+C1.07.35 C1.07.30 C1.07.31 C1.07.32 C1.07.34 C1.07.36 C1.07.38 C1.07.39 C1.07.40
+C1.07.36 C1.07.31 C1.07.32 C1.07.33 C1.07.35 C1.07.37 C1.07.39 C1.07.40 C1.07.41
+C1.07.37 C1.07.32 C1.07.33 C1.07.36 C1.07.40 C1.07.41 C1.08.32 C1.08.36 C1.08.40
+C1.07.38 C1.06.33 C1.06.38 C1.06.41 C1.07.34 C1.07.35 C1.07.39 C1.07.42 C1.07.43
+C1.07.39 C1.07.34 C1.07.35 C1.07.36 C1.07.38 C1.07.40 C1.07.42 C1.07.43 C1.07.44
+C1.07.40 C1.07.35 C1.07.36 C1.07.37 C1.07.39 C1.07.41 C1.07.43 C1.07.44 C1.07.45
+C1.07.41 C1.07.36 C1.07.37 C1.07.40 C1.07.44 C1.07.45 C1.08.36 C1.08.40 C1.08.44
+C1.07.42 C1.06.38 C1.06.41 C1.06.43 C1.06.45 C1.07.38 C1.07.39 C1.07.43 C1.07.46
+C1.07.43 C1.06.45 C1.07.38 C1.07.39 C1.07.40 C1.07.42 C1.07.44 C1.07.46 C1.07.47
+C1.07.44 C1.07.39 C1.07.40 C1.07.41 C1.07.43 C1.07.45 C1.07.46 C1.07.47 C1.07.48
+C1.07.45 C1.07.40 C1.07.41 C1.07.44 C1.07.47 C1.07.48 C1.08.40 C1.08.44 C1.08.47
+C1.07.46 C1.06.45 C1.06.47 C1.07.42 C1.07.43 C1.07.44 C1.07.47 C1.07.49 C1.07.50
+C1.07.47 C1.07.43 C1.07.44 C1.07.45 C1.07.46 C1.07.48 C1.07.49 C1.07.50 C1.07.51
+C1.07.48 C1.07.44 C1.07.45 C1.07.47 C1.07.50 C1.07.51 C1.08.44 C1.08.47 C1.08.50
+C1.07.49 C1.06.45 C1.06.47 C1.06.49 C1.06.50 C1.07.46 C1.07.47 C1.07.50 C1.07.52
+C1.07.50 C1.06.50 C1.07.46 C1.07.47 C1.07.48 C1.07.49 C1.07.51 C1.07.52 C1.07.53
+C1.07.51 C1.07.47 C1.07.48 C1.07.50 C1.07.52 C1.07.53 C1.08.47 C1.08.50 C1.08.52
+C1.07.52 C1.06.50 C1.06.53 C1.06.54 C1.07.49 C1.07.50 C1.07.51 C1.07.53 C1.07.54 C1.07.55
+C1.07.53 C1.07.50 C1.07.51 C1.07.52 C1.07.54 C1.07.55 C1.07.56 C1.08.50 C1.08.52 C1.08.56
+C1.07.54 C1.06.54 C1.06.58 C1.07.52 C1.07.53 C1.07.55 C1.07.57 C1.07.58
+C1.07.55 C1.07.52 C1.07.53 C1.07.54 C1.07.56 C1.07.57 C1.07.58 C1.07.59
+C1.07.56 C1.07.53 C1.07.55 C1.07.58 C1.07.59 C1.08.52 C1.08.56 C1.08.59
+C1.07.57 C1.06.54 C1.06.58 C1.06.60 C1.07.54 C1.07.55 C1.07.58 C1.07.60 C1.07.61
+C1.07.58 C1.07.54 C1.07.55 C1.07.56 C1.07.57 C1.07.59 C1.07.60 C1.07.61 C1.07.62
+C1.07.59 C1.07.55 C1.07.56 C1.07.58 C1.07.61 C1.07.62 C1.08.56 C1.08.59 C1.08.62
+C1.07.60 C1.06.58 C1.06.60 C1.06.62 C1.07.57 C1.07.58 C1.07.61
+C1.07.61 C1.07.57 C1.07.58 C1.07.59 C1.07.60 C1.07.62
+C1.07.62 C1.07.58 C1.07.59 C1.07.61 C1.08.59 C1.08.62
+C1.08.00 C1.08.07 C1.08.12
+C1.08.01 C1.07.02 C1.07.12 C1.08.02 C1.08.10 C1.08.11
+C1.08.02 C1.08.01 C1.08.03 C1.08.06 C1.08.09 C1.08.10
+C1.08.03 C1.08.02 C1.08.05 C1.08.06 C1.08.14 C1.08.15
+C1.08.04 C1.08.05 C1.08.12 C1.08.13 C1.08.14
+C1.08.05 C1.08.03 C1.08.04 C1.08.13 C1.08.14
+C1.08.06 C1.08.02 C1.08.03 C1.08.09 C1.08.14 C1.08.15
+C1.08.07 C1.08.00 C1.08.08 C1.08.12 C1.08.17 C1.08.18 C1.09.13
+C1.08.08 C1.08.07 C1.08.17 C1.09.02 C1.09.13
+C1.08.09 C1.08.02 C1.08.06 C1.08.10 C1.08.15 C1.08.16
+C1.08.10 C1.08.01 C1.08.02 C1.08.09 C1.08.11 C1.08.15 C1.08.16
+C1.08.11 C1.07.02 C1.07.12 C1.07.17 C1.08.01 C1.08.10 C1.08.16
+C1.08.12 C1.08.00 C1.08.04 C1.08.07 C1.08.13 C1.08.17 C1.08.18 C1.08.19
+C1.08.13 C1.08.04 C1.08.05 C1.08.12 C1.08.14 C1.08.18 C1.08.19 C1.08.20
+C1.08.14 C1.08.03 C1.08.04 C1.08.05 C1.08.06 C1.08.13 C1.08.15 C1.08.19 C1.08.20 C1.08.21
+C1.08.15 C1.08.03 C1.08.06 C1.08.09 C1.08.10 C1.08.14 C1.08.16 C1.08.20 C1.08.21 C1.08.22
+C1.08.16 C1.07.12 C1.07.17 C1.07.23 C1.08.09 C1.08.10 C1.08.11 C1.08.15 C1.08.21 C1.08.22
+C1.08.17 C1.08.07 C1.08.08 C1.08.12 C1.08.18 C1.08.23 C1.09.13 C1.09.19 C1.09.21
+C1.08.18 C1.08.07 C1.08.12 C1.08.13 C1.08.17 C1.08.19 C1.08.23 C1.08.24 C1.09.21
+C1.08.19 C1.08.12 C1.08.13 C1.08.14 C1.08.18 C1.08.20 C1.08.23 C1.08.24 C1.08.25
+C1.08.20 C1.08.13 C1.08.14 C1.08.15 C1.08.19 C1.08.21 C1.08.24 C1.08.25 C1.08.26
+C1.08.21 C1.08.14 C1.08.15 C1.08.16 C1.08.20 C1.08.22 C1.08.25 C1.08.26 C1.08.27
+C1.08.22 C1.07.17 C1.07.23 C1.07.28 C1.08.15 C1.08.16 C1.08.21 C1.08.26 C1.08.27
+C1.08.23 C1.08.17 C1.08.18 C1.08.19 C1.08.24 C1.08.28 C1.08.29 C1.09.21 C1.09.26
+C1.08.24 C1.08.18 C1.08.19 C1.08.20 C1.08.23 C1.08.25 C1.08.28 C1.08.29 C1.08.30
+C1.08.25 C1.08.19 C1.08.20 C1.08.21 C1.08.24 C1.08.26 C1.08.29 C1.08.30 C1.08.31
+C1.08.26 C1.08.20 C1.08.21 C1.08.22 C1.08.25 C1.08.27 C1.08.30 C1.08.31 C1.08.32
+C1.08.27 C1.07.23 C1.07.28 C1.07.33 C1.08.21 C1.08.22 C1.08.26 C1.08.31 C1.08.32
+C1.08.28 C1.08.23 C1.08.24 C1.08.29 C1.08.33 C1.09.21 C1.09.26 C1.09.31 C1.09.33
+C1.08.29 C1.08.23 C1.08.24 C1.08.25 C1.08.28 C1.08.30 C1.08.33 C1.08.34 C1.09.33
+C1.08.30 C1.08.24 C1.08.25 C1.08.26 C1.08.29 C1.08.31 C1.08.33 C1.08.34 C1.08.35
+C1.08.31 C1.08.25 C1.08.26 C1.08.27 C1.08.30 C1.08.32 C1.08.34 C1.08.35 C1.08.36
+C1.08.32 C1.07.28 C1.07.33 C1.07.37 C1.08.26 C1.08.27 C1.08.31 C1.08.35 C1.08.36
+C1.08.33 C1.08.28 C1.08.29 C1.08.30 C1.08.34 C1.08.37 C1.08.38 C1.09.33 C1.09.38
+C1.08.34 C1.08.29 C1.08.30 C1.08.31 C1.08.33 C1.08.35 C1.08.37 C1.08.38 C1.08.39
+C1.08.35 C1.08.30 C1.08.31 C1.08.32 C1.08.34 C1.08.36 C1.08.38 C1.08.39 C1.08.40
+C1.08.36 C1.07.33 C1.07.37 C1.07.41 C1.08.31 C1.08.32 C1.08.35 C1.08.39 C1.08.40
+C1.08.37 C1.08.33 C1.08.34 C1.08.38 C1.08.41 C1.08.42 C1.09.33 C1.09.38 C1.09.41
+C1.08.38 C1.08.33 C1.08.34 C1.08.35 C1.08.37 C1.08.39 C1.08.41 C1.08.42 C1.08.43
+C1.08.39 C1.08.34 C1.08.35 C1.08.36 C1.08.38 C1.08.40 C1.08.42 C1.08.43 C1.08.44
+C1.08.40 C1.07.37 C1.07.41 C1.07.45 C1.08.35 C1.08.36 C1.08.39 C1.08.43 C1.08.44
+C1.08.41 C1.08.37 C1.08.38 C1.08.42 C1.08.45 C1.09.38 C1.09.41 C1.09.43 C1.09.45
+C1.08.42 C1.08.37 C1.08.38 C1.08.39 C1.08.41 C1.08.43 C1.08.45 C1.08.46 C1.09.45
+C1.08.43 C1.08.38 C1.08.39 C1.08.40 C1.08.42 C1.08.44 C1.08.45 C1.08.46 C1.08.47
+C1.08.44 C1.07.41 C1.07.45 C1.07.48 C1.08.39 C1.08.40 C1.08.43 C1.08.46 C1.08.47
+C1.08.45 C1.08.41 C1.08.42 C1.08.43 C1.08.46 C1.08.48 C1.08.49 C1.09.45 C1.09.47
+C1.08.46 C1.08.42 C1.08.43 C1.08.44 C1.08.45 C1.08.47 C1.08.48 C1.08.49 C1.08.50
+C1.08.47 C1.07.45 C1.07.48 C1.07.51 C1.08.43 C1.08.44 C1.08.46 C1.08.49 C1.08.50
+C1.08.48 C1.08.45 C1.08.46 C1.08.49 C1.08.51 C1.09.45 C1.09.47 C1.09.49 C1.09.50
+C1.08.49 C1.08.45 C1.08.46 C1.08.47 C1.08.48 C1.08.50 C1.08.51 C1.08.52 C1.09.50
+C1.08.50 C1.07.48 C1.07.51 C1.07.53 C1.08.46 C1.08.47 C1.08.49 C1.08.51 C1.08.52
+C1.08.51 C1.08.48 C1.08.49 C1.08.50 C1.08.52 C1.08.53 C1.08.54 C1.08.55 C1.09.50 C1.09.53
+C1.08.52 C1.07.51 C1.07.53 C1.07.56 C1.08.49 C1.08.50 C1.08.51 C1.08.54 C1.08.55 C1.08.56
+C1.08.53 C1.08.51 C1.08.54 C1.08.57 C1.09.50 C1.09.53 C1.09.55 C1.09.57
+C1.08.54 C1.08.51 C1.08.52 C1.08.53 C1.08.55 C1.08.57 C1.08.58 C1.09.57
+C1.08.55 C1.08.51 C1.08.52 C1.08.54 C1.08.56 C1.08.57 C1.08.58 C1.08.59
+C1.08.56 C1.07.53 C1.07.56 C1.07.59 C1.08.52 C1.08.55 C1.08.58 C1.08.59
+C1.08.57 C1.08.53 C1.08.54 C1.08.55 C1.08.58 C1.08.60 C1.08.61 C1.09.57 C1.09.59
+C1.08.58 C1.08.54 C1.08.55 C1.08.56 C1.08.57 C1.08.59 C1.08.60 C1.08.61 C1.08.62
+C1.08.59 C1.07.56 C1.07.59 C1.07.62 C1.08.55 C1.08.56 C1.08.58 C1.08.61 C1.08.62
+C1.08.60 C1.08.57 C1.08.58 C1.08.61 C1.09.57 C1.09.59 C1.09.62
+C1.08.61 C1.08.57 C1.08.58 C1.08.59 C1.08.60 C1.08.62 C1.09.62
+C1.08.62 C1.07.59 C1.07.62 C1.08.58 C1.08.59 C1.08.61
+C1.09.00 C1.09.04 C1.09.06 C1.09.08 C1.09.12
+C1.09.01 C1.09.03 C1.09.05 C1.09.11
+C1.09.02 C1.08.08 C1.09.05 C1.09.13
+C1.09.03 C1.09.01 C1.09.07 C1.09.09 C1.09.11
+C1.09.04 C1.09.00 C1.09.08 C1.09.10
+C1.09.05 C1.09.01 C1.09.02 C1.09.11 C1.09.13
+C1.09.06 C1.09.00 C1.09.12 C1.09.17 C1.10.06 C1.10.12
+C1.09.07 C1.09.03 C1.09.09 C1.09.10 C1.09.14
+C1.09.08 C1.09.00 C1.09.04 C1.09.10 C1.09.12 C1.09.15
+C1.09.09 C1.09.03 C1.09.07 C1.09.11 C1.09.14 C1.09.16
+C1.09.10 C1.09.04 C1.09.07 C1.09.08 C1.09.12 C1.09.14 C1.09.15 C1.09.18
+C1.09.11 C1.09.01 C1.09.03 C1.09.05 C1.09.09 C1.09.13 C1.09.14 C1.09.16 C1.09.19
+C1.09.12 C1.09.00 C1.09.06 C1.09.08 C1.09.10 C1.09.15 C1.09.17 C1.09.20 C1.10.12
+C1.09.13 C1.08.07 C1.08.08 C1.08.17 C1.09.02 C1.09.05 C1.09.11 C1.09.16 C1.09.19 C1.09.21
+C1.09.14 C1.09.07 C1.09.09 C1.09.10 C1.09.11 C1.09.15 C1.09.16 C1.09.18 C1.09.22
+C1.09.15 C1.09.08 C1.09.10 C1.09.12 C1.09.14 C1.09.17 C1.09.18 C1.09.20 C1.09.23
+C1.09.16 C1.09.09 C1.09.11 C1.09.13 C1.09.14 C1.09.18 C1.09.19 C1.09.22 C1.09.24
+C1.09.17 C1.09.06 C1.09.12 C1.09.15 C1.09.20 C1.09.25 C1.10.12 C1.10.17 C1.10.21
+C1.09.18 C1.09.10 C1.09.14 C1.09.15 C1.09.16 C1.09.20 C1.09.22 C1.09.23 C1.09.27
+C1.09.19 C1.08.17 C1.09.11 C1.09.13 C1.09.16 C1.09.21 C1.09.22 C1.09.24 C1.09.26
+C1.09.20 C1.09.12 C1.09.15 C1.09.17 C1.09.18 C1.09.23 C1.09.25 C1.09.28 C1.10.21
+C1.09.21 C1.08.17 C1.08.18 C1.08.23 C1.08.28 C1.09.13 C1.09.19 C1.09.24 C1.09.26
+C1.09.22 C1.09.14 C1.09.16 C1.09.18 C1.09.19 C1.09.23 C1.09.24 C1.09.27 C1.09.29
+C1.09.23 C1.09.15 C1.09.18 C1.09.20 C1.09.22 C1.09.25 C1.09.27 C1.09.28 C1.09.30
+C1.09.24 C1.09.16 C1.09.19 C1.09.21 C1.09.22 C1.09.26 C1.09.27 C1.09.29 C1.09.31
+C1.09.25 C1.09.17 C1.09.20 C1.09.23 C1.09.28 C1.09.32 C1.10.21 C1.10.24 C1.10.28
+C1.09.26 C1.08.23 C1.08.28 C1.09.19 C1.09.21 C1.09.24 C1.09.29 C1.09.31 C1.09.33
+C1.09.27 C1.09.18 C1.09.22 C1.09.23 C1.09.24 C1.09.28 C1.09.29 C1.09.30 C1.09.34
+C1.09.28 C1.09.20 C1.09.23 C1.09.25 C1.09.27 C1.09.30 C1.09.32 C1.09.35 C1.10.28
+C1.09.29 C1.09.22 C1.09.24 C1.09.26 C1.09.27 C1.09.30 C1.09.31 C1.09.34 C1.09.36
+C1.09.30 C1.09.23 C1.09.27 C1.09.28 C1.09.29 C1.09.32 C1.09.34 C1.09.35 C1.09.37
+C1.09.31 C1.08.28 C1.09.24 C1.09.26 C1.09.29 C1.09.33 C1.09.34 C1.09.36 C1.09.38
+C1.09.32 C1.09.25 C1.09.28 C1.09.30 C1.09.35 C1.10.28 C1.10.31 C1.10.34 C1.10.36
+C1.09.33 C1.08.28 C1.08.29 C1.08.33 C1.08.37 C1.09.26 C1.09.31 C1.09.36 C1.09.38
+C1.09.34 C1.09.27 C1.09.29 C1.09.30 C1.09.31 C1.09.35 C1.09.36 C1.09.37 C1.09.39
+C1.09.35 C1.09.28 C1.09.30 C1.09.32 C1.09.34 C1.09.37 C1.09.40 C1.10.34 C1.10.36
+C1.09.36 C1.09.29 C1.09.31 C1.09.33 C1.09.34 C1.09.37 C1.09.38 C1.09.39 C1.09.41
+C1.09.37 C1.09.30 C1.09.34 C1.09.35 C1.09.36 C1.09.39 C1.09.40 C1.09.42 C1.10.36
+C1.09.38 C1.08.33 C1.08.37 C1.08.41 C1.09.31 C1.09.33 C1.09.36 C1.09.39 C1.09.41
+C1.09.39 C1.09.34 C1.09.36 C1.09.37 C1.09.38 C1.09.40 C1.09.41 C1.09.42 C1.09.43
+C1.09.40 C1.09.35 C1.09.37 C1.09.39 C1.09.42 C1.09.44 C1.10.36 C1.10.40 C1.10.43
+C1.09.41 C1.08.37 C1.08.41 C1.09.36 C1.09.38 C1.09.39 C1.09.42 C1.09.43 C1.09.45
+C1.09.42 C1.09.37 C1.09.39 C1.09.40 C1.09.41 C1.09.43 C1.09.44 C1.09.46 C1.10.43
+C1.09.43 C1.08.41 C1.09.39 C1.09.41 C1.09.42 C1.09.44 C1.09.45 C1.09.46 C1.09.47
+C1.09.44 C1.09.40 C1.09.42 C1.09.43 C1.09.46 C1.09.48 C1.10.43 C1.10.45 C1.10.47
+C1.09.45 C1.08.41 C1.08.42 C1.08.45 C1.08.48 C1.09.41 C1.09.43 C1.09.46 C1.09.47
+C1.09.46 C1.09.42 C1.09.43 C1.09.44 C1.09.45 C1.09.47 C1.09.48 C1.09.49 C1.10.47
+C1.09.47 C1.08.45 C1.08.48 C1.09.43 C1.09.45 C1.09.46 C1.09.48 C1.09.49 C1.09.50
+C1.09.48 C1.09.44 C1.09.46 C1.09.47 C1.09.49 C1.09.51 C1.10.47 C1.10.49 C1.10.51
+C1.09.49 C1.08.48 C1.09.46 C1.09.47 C1.09.48 C1.09.50 C1.09.51 C1.09.52 C1.10.51
+C1.09.50 C1.08.48 C1.08.49 C1.08.51 C1.08.53 C1.09.47 C1.09.49 C1.09.51 C1.09.52 C1.09.53
+C1.09.51 C1.09.48 C1.09.49 C1.09.50 C1.09.52 C1.09.54 C1.09.56 C1.10.51 C1.10.52 C1.10.53 C1.10.55
+C1.09.52 C1.09.49 C1.09.50 C1.09.51 C1.09.53 C1.09.54 C1.09.55
+C1.09.53 C1.08.51 C1.08.53 C1.09.50 C1.09.52 C1.09.54 C1.09.55 C1.09.57
+C1.09.54 C1.09.51 C1.09.52 C1.09.53 C1.09.55 C1.09.56 C1.09.58 C1.10.55
+C1.09.55 C1.08.53 C1.09.52 C1.09.53 C1.09.54 C1.09.56 C1.09.57 C1.09.58 C1.09.59
+C1.09.56 C1.09.51 C1.09.54 C1.09.55 C1.09.58 C1.09.60 C1.10.55 C1.10.57 C1.10.59
+C1.09.57 C1.08.53 C1.08.54 C1.08.57 C1.08.60 C1.09.53 C1.09.55 C1.09.58 C1.09.59
+C1.09.58 C1.09.54 C1.09.55 C1.09.56 C1.09.57 C1.09.59 C1.09.60 C1.09.61 C1.10.59
+C1.09.59 C1.08.57 C1.08.60 C1.09.55 C1.09.57 C1.09.58 C1.09.60 C1.09.61 C1.09.62
+C1.09.60 C1.09.56 C1.09.58 C1.09.59 C1.09.61 C1.10.59 C1.10.61
+C1.09.61 C1.09.58 C1.09.59 C1.09.60 C1.09.62 C1.10.59 C1.10.61
+C1.09.62 C1.08.60 C1.08.61 C1.09.59 C1.09.61
+C1.10.00 C1.10.03 C1.10.06
+C1.10.01 C1.10.02 C1.10.04 C1.10.10 C1.10.14
+C1.10.02 C1.10.01 C1.10.07 C1.10.10
+C1.10.03 C1.10.00 C1.10.06 C1.10.09 C1.10.13
+C1.10.04 C1.10.01 C1.10.05 C1.10.10 C1.10.14 C1.11.02
+C1.10.05 C1.10.04 C1.10.14 C1.11.02 C1.11.08
+C1.10.06 C1.09.06 C1.10.00 C1.10.03 C1.10.12 C1.10.13 C1.10.17
+C1.10.07 C1.10.02 C1.10.10 C1.10.11 C1.10.15
+C1.10.08 C1.10.09 C1.10.11
+C1.10.09 C1.10.03 C1.10.08 C1.10.11 C1.10.13 C1.10.16
+C1.10.10 C1.10.01 C1.10.02 C1.10.04 C1.10.07 C1.10.11 C1.10.14 C1.10.15 C1.10.18
+C1.10.11 C1.10.07 C1.10.08 C1.10.09 C1.10.10 C1.10.13 C1.10.15 C1.10.16 C1.10.19
+C1.10.12 C1.09.06 C1.09.12 C1.09.17 C1.10.06 C1.10.13 C1.10.17 C1.10.21
+C1.10.13 C1.10.03 C1.10.06 C1.10.09 C1.10.11 C1.10.12 C1.10.16 C1.10.17 C1.10.20
+C1.10.14 C1.10.01 C1.10.04 C1.10.05 C1.10.10 C1.10.15 C1.10.18 C1.11.08 C1.11.10 C1.11.15 C1.11.20
+C1.10.15 C1.10.07 C1.10.10 C1.10.11 C1.10.14 C1.10.16 C1.10.18 C1.10.19 C1.10.22
+C1.10.16 C1.10.09 C1.10.11 C1.10.13 C1.10.15 C1.10.17 C1.10.19 C1.10.20 C1.10.23
+C1.10.17 C1.09.17 C1.10.06 C1.10.12 C1.10.13 C1.10.16 C1.10.20 C1.10.21 C1.10.24
+C1.10.18 C1.10.10 C1.10.14 C1.10.15 C1.10.19 C1.10.22 C1.10.25 C1.11.15 C1.11.20
+C1.10.19 C1.10.11 C1.10.15 C1.10.16 C1.10.18 C1.10.20 C1.10.22 C1.10.23 C1.10.26
+C1.10.20 C1.10.13 C1.10.16 C1.10.17 C1.10.19 C1.10.21 C1.10.23 C1.10.24 C1.10.27
+C1.10.21 C1.09.17 C1.09.20 C1.09.25 C1.10.12 C1.10.17 C1.10.20 C1.10.24 C1.10.28
+C1.10.22 C1.10.15 C1.10.18 C1.10.19 C1.10.23 C1.10.25 C1.10.26 C1.10.29 C1.11.20
+C1.10.23 C1.10.16 C1.10.19 C1.10.20 C1.10.22 C1.10.24 C1.10.26 C1.10.27 C1.10.30
+C1.10.24 C1.09.25 C1.10.17 C1.10.20 C1.10.21 C1.10.23 C1.10.27 C1.10.28 C1.10.31
+C1.10.25 C1.10.18 C1.10.22 C1.10.26 C1.10.29 C1.11.20 C1.11.21 C1.11.25 C1.11.29
+C1.10.26 C1.10.19 C1.10.22 C1.10.23 C1.10.25 C1.10.27 C1.10.29 C1.10.30 C1.10.32
+C1.10.27 C1.10.20 C1.10.23 C1.10.24 C1.10.26 C1.10.28 C1.10.30 C1.10.31 C1.10.33
+C1.10.28 C1.09.25 C1.09.28 C1.09.32 C1.10.21 C1.10.24 C1.10.27 C1.10.31 C1.10.34
+C1.10.29 C1.10.22 C1.10.25 C1.10.26 C1.10.30 C1.10.32 C1.11.25 C1.11.29 C1.11.33
+C1.10.30 C1.10.23 C1.10.26 C1.10.27 C1.10.29 C1.10.31 C1.10.32 C1.10.33 C1.10.35
+C1.10.31 C1.09.32 C1.10.24 C1.10.27 C1.10.28 C1.10.30 C1.10.33 C1.10.34 C1.10.37
+C1.10.32 C1.10.26 C1.10.29 C1.10.30 C1.10.33 C1.10.35 C1.10.38 C1.11.29 C1.11.33
+C1.10.33 C1.10.27 C1.10.30 C1.10.31 C1.10.32 C1.10.34 C1.10.35 C1.10.37 C1.10.39
+C1.10.34 C1.09.32 C1.09.35 C1.10.28 C1.10.31 C1.10.33 C1.10.36 C1.10.37 C1.10.40
+C1.10.35 C1.10.30 C1.10.32 C1.10.33 C1.10.37 C1.10.38 C1.10.39 C1.10.41 C1.11.33
+C1.10.36 C1.09.32 C1.09.35 C1.09.37 C1.09.40 C1.10.34 C1.10.37 C1.10.40 C1.10.43
+C1.10.37 C1.10.31 C1.10.33 C1.10.34 C1.10.35 C1.10.36 C1.10.39 C1.10.40 C1.10.42
+C1.10.38 C1.10.32 C1.10.35 C1.10.39 C1.10.41 C1.11.33 C1.11.34 C1.11.37 C1.11.40
+C1.10.39 C1.10.33 C1.10.35 C1.10.37 C1.10.38 C1.10.40 C1.10.41 C1.10.42 C1.10.44
+C1.10.40 C1.09.40 C1.10.34 C1.10.36 C1.10.37 C1.10.39 C1.10.42 C1.10.43 C1.10.45
+C1.10.41 C1.10.35 C1.10.38 C1.10.39 C1.10.42 C1.10.44 C1.11.37 C1.11.40 C1.11.43
+C1.10.42 C1.10.37 C1.10.39 C1.10.40 C1.10.41 C1.10.43 C1.10.44 C1.10.45 C1.10.46
+C1.10.43 C1.09.40 C1.09.42 C1.09.44 C1.10.36 C1.10.40 C1.10.42 C1.10.45 C1.10.47
+C1.10.44 C1.10.39 C1.10.41 C1.10.42 C1.10.45 C1.10.46 C1.10.48 C1.11.40 C1.11.43
+C1.10.45 C1.09.44 C1.10.40 C1.10.42 C1.10.43 C1.10.44 C1.10.46 C1.10.47 C1.10.49
+C1.10.46 C1.10.42 C1.10.44 C1.10.45 C1.10.47 C1.10.48 C1.10.49 C1.10.50 C1.11.43
+C1.10.47 C1.09.44 C1.09.46 C1.09.48 C1.10.43 C1.10.45 C1.10.46 C1.10.49 C1.10.51
+C1.10.48 C1.10.44 C1.10.46 C1.10.49 C1.10.50 C1.11.43 C1.11.44 C1.11.46 C1.11.48
+C1.10.49 C1.09.48 C1.10.45 C1.10.46 C1.10.47 C1.10.48 C1.10.50 C1.10.51 C1.10.52
+C1.10.50 C1.10.46 C1.10.48 C1.10.49 C1.10.51 C1.10.52 C1.11.46 C1.11.48 C1.11.50
+C1.10.51 C1.09.48 C1.09.49 C1.09.51 C1.10.47 C1.10.49 C1.10.50 C1.10.52 C1.10.53
+C1.10.52 C1.09.51 C1.10.49 C1.10.50 C1.10.51 C1.10.53 C1.10.54 C1.10.56 C1.11.48 C1.11.50 C1.11.54
+C1.10.53 C1.09.51 C1.10.51 C1.10.52 C1.10.54 C1.10.55 C1.10.57
+C1.10.54 C1.10.52 C1.10.53 C1.10.55 C1.10.56 C1.10.57 C1.10.58 C1.11.54
+C1.10.55 C1.09.51 C1.09.54 C1.09.56 C1.10.53 C1.10.54 C1.10.57 C1.10.59
+C1.10.56 C1.10.52 C1.10.54 C1.10.57 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.58
+C1.10.57 C1.09.56 C1.10.53 C1.10.54 C1.10.55 C1.10.56 C1.10.58 C1.10.59 C1.10.61
+C1.10.58 C1.10.54 C1.10.56 C1.10.57 C1.10.59 C1.10.60 C1.10.61 C1.10.62 C1.11.58
+C1.10.59 C1.09.56 C1.09.58 C1.09.60 C1.09.61 C1.10.55 C1.10.57 C1.10.58 C1.10.61
+C1.10.60 C1.10.56 C1.10.58 C1.10.61 C1.10.62 C1.11.58 C1.11.59 C1.11.61
+C1.10.61 C1.09.60 C1.09.61 C1.10.57 C1.10.58 C1.10.59 C1.10.60 C1.10.62
+C1.10.62 C1.10.58 C1.10.60 C1.10.61 C1.11.61
+C1.11.00 C1.11.05 C1.11.07 C1.12.00 C1.12.08
+C1.11.01 C1.11.02 C1.11.03 C1.11.10
+C1.11.02 C1.10.04 C1.10.05 C1.11.01 C1.11.08 C1.11.10
+C1.11.03 C1.11.01 C1.11.04 C1.11.10 C1.11.11
+C1.11.04 C1.11.03 C1.11.06 C1.11.11 C1.11.12
+C1.11.05 C1.11.00 C1.11.07 C1.11.09 C1.11.12 C1.11.13 C1.11.14
+C1.11.06 C1.11.04 C1.11.09 C1.11.11 C1.11.12
+C1.11.07 C1.11.00 C1.11.05 C1.11.13 C1.11.14 C1.12.00 C1.12.08 C1.12.14
+C1.11.08 C1.10.05 C1.10.14 C1.11.02 C1.11.10 C1.11.15
+C1.11.09 C1.11.05 C1.11.06 C1.11.12 C1.11.13
+C1.11.10 C1.10.14 C1.11.01 C1.11.02 C1.11.03 C1.11.08 C1.11.11 C1.11.15 C1.11.16
+C1.11.11 C1.11.03 C1.11.04 C1.11.06 C1.11.10 C1.11.12 C1.11.15 C1.11.16 C1.11.17
+C1.11.12 C1.11.04 C1.11.05 C1.11.06 C1.11.09 C1.11.11 C1.11.13 C1.11.16 C1.11.17 C1.11.18
+C1.11.13 C1.11.05 C1.11.07 C1.11.09 C1.11.12 C1.11.14 C1.11.17 C1.11.18 C1.11.19
+C1.11.14 C1.11.05 C1.11.07 C1.11.13 C1.11.18 C1.11.19 C1.12.08 C1.12.14 C1.12.19
+C1.11.15 C1.10.14 C1.10.18 C1.11.08 C1.11.10 C1.11.11 C1.11.16 C1.11.20 C1.11.21
+C1.11.16 C1.11.10 C1.11.11 C1.11.12 C1.11.15 C1.11.17 C1.11.20 C1.11.21 C1.11.22
+C1.11.17 C1.11.11 C1.11.12 C1.11.13 C1.11.16 C1.11.18 C1.11.21 C1.11.22 C1.11.23
+C1.11.18 C1.11.12 C1.11.13 C1.11.14 C1.11.17 C1.11.19 C1.11.22 C1.11.23 C1.11.24
+C1.11.19 C1.11.13 C1.11.14 C1.11.18 C1.11.23 C1.11.24 C1.12.14 C1.12.19 C1.12.24
+C1.11.20 C1.10.14 C1.10.18 C1.10.22 C1.10.25 C1.11.15 C1.11.16 C1.11.21 C1.11.25
+C1.11.21 C1.10.25 C1.11.15 C1.11.16 C1.11.17 C1.11.20 C1.11.22 C1.11.25 C1.11.26
+C1.11.22 C1.11.16 C1.11.17 C1.11.18 C1.11.21 C1.11.23 C1.11.25 C1.11.26 C1.11.27
+C1.11.23 C1.11.17 C1.11.18 C1.11.19 C1.11.22 C1.11.24 C1.11.26 C1.11.27 C1.11.28
+C1.11.24 C1.11.18 C1.11.19 C1.11.23 C1.11.27 C1.11.28 C1.12.19 C1.12.24 C1.12.28
+C1.11.25 C1.10.25 C1.10.29 C1.11.20 C1.11.21 C1.11.22 C1.11.26 C1.11.29 C1.11.30
+C1.11.26 C1.11.21 C1.11.22 C1.11.23 C1.11.25 C1.11.27 C1.11.29 C1.11.30 C1.11.31
+C1.11.27 C1.11.22 C1.11.23 C1.11.24 C1.11.26 C1.11.28 C1.11.30 C1.11.31 C1.11.32
+C1.11.28 C1.11.23 C1.11.24 C1.11.27 C1.11.31 C1.11.32 C1.12.24 C1.12.28 C1.12.32
+C1.11.29 C1.10.25 C1.10.29 C1.10.32 C1.11.25 C1.11.26 C1.11.30 C1.11.33 C1.11.34
+C1.11.30 C1.11.25 C1.11.26 C1.11.27 C1.11.29 C1.11.31 C1.11.33 C1.11.34 C1.11.35
+C1.11.31 C1.11.26 C1.11.27 C1.11.28 C1.11.30 C1.11.32 C1.11.34 C1.11.35 C1.11.36
+C1.11.32 C1.11.27 C1.11.28 C1.11.31 C1.11.35 C1.11.36 C1.12.28 C1.12.32 C1.12.36
+C1.11.33 C1.10.29 C1.10.32 C1.10.35 C1.10.38 C1.11.29 C1.11.30 C1.11.34 C1.11.37
+C1.11.34 C1.10.38 C1.11.29 C1.11.30 C1.11.31 C1.11.33 C1.11.35 C1.11.37 C1.11.38
+C1.11.35 C1.11.30 C1.11.31 C1.11.32 C1.11.34 C1.11.36 C1.11.37 C1.11.38 C1.11.39
+C1.11.36 C1.11.31 C1.11.32 C1.11.35 C1.11.38 C1.11.39 C1.12.32 C1.12.36 C1.12.39
+C1.11.37 C1.10.38 C1.10.41 C1.11.33 C1.11.34 C1.11.35 C1.11.38 C1.11.40 C1.11.41
+C1.11.38 C1.11.34 C1.11.35 C1.11.36 C1.11.37 C1.11.39 C1.11.40 C1.11.41 C1.11.42
+C1.11.39 C1.11.35 C1.11.36 C1.11.38 C1.11.41 C1.11.42 C1.12.36 C1.12.39 C1.12.42
+C1.11.40 C1.10.38 C1.10.41 C1.10.44 C1.11.37 C1.11.38 C1.11.41 C1.11.43 C1.11.44
+C1.11.41 C1.11.37 C1.11.38 C1.11.39 C1.11.40 C1.11.42 C1.11.43 C1.11.44 C1.11.45
+C1.11.42 C1.11.38 C1.11.39 C1.11.41 C1.11.44 C1.11.45 C1.12.39 C1.12.42 C1.12.45
+C1.11.43 C1.10.41 C1.10.44 C1.10.46 C1.10.48 C1.11.40 C1.11.41 C1.11.44 C1.11.46
+C1.11.44 C1.10.48 C1.11.40 C1.11.41 C1.11.42 C1.11.43 C1.11.45 C1.11.46 C1.11.47
+C1.11.45 C1.11.41 C1.11.42 C1.11.44 C1.11.46 C1.11.47 C1.12.42 C1.12.45 C1.12.47
+C1.11.46 C1.10.48 C1.10.50 C1.11.43 C1.11.44 C1.11.45 C1.11.47 C1.11.48 C1.11.49
+C1.11.47 C1.11.44 C1.11.45 C1.11.46 C1.11.48 C1.11.49 C1.12.45 C1.12.47 C1.12.49
+C1.11.48 C1.10.48 C1.10.50 C1.10.52 C1.11.46 C1.11.47 C1.11.49 C1.11.50 C1.11.51 C1.11.52
+C1.11.49 C1.11.46 C1.11.47 C1.11.48 C1.11.51 C1.11.52 C1.11.53 C1.12.47 C1.12.49 C1.12.53
+C1.11.50 C1.10.50 C1.10.52 C1.11.48 C1.11.51 C1.11.54 C1.11.55
+C1.11.51 C1.11.48 C1.11.49 C1.11.50 C1.11.52 C1.11.54 C1.11.55 C1.11.56
+C1.11.52 C1.11.48 C1.11.49 C1.11.51 C1.11.53 C1.11.55 C1.11.56 C1.11.57
+C1.11.53 C1.11.49 C1.11.52 C1.11.56 C1.11.57 C1.12.49 C1.12.53 C1.12.57
+C1.11.54 C1.10.52 C1.10.54 C1.10.56 C1.11.50 C1.11.51 C1.11.55 C1.11.58
+C1.11.55 C1.10.56 C1.11.50 C1.11.51 C1.11.52 C1.11.54 C1.11.56 C1.11.58 C1.11.59
+C1.11.56 C1.11.51 C1.11.52 C1.11.53 C1.11.55 C1.11.57 C1.11.58 C1.11.59 C1.11.60
+C1.11.57 C1.11.52 C1.11.53 C1.11.56 C1.11.59 C1.11.60 C1.12.53 C1.12.57 C1.12.60
+C1.11.58 C1.10.56 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.56 C1.11.59 C1.11.61
+C1.11.59 C1.10.60 C1.11.55 C1.11.56 C1.11.57 C1.11.58 C1.11.60 C1.11.61 C1.11.62
+C1.11.60 C1.11.56 C1.11.57 C1.11.59 C1.11.61 C1.11.62 C1.12.57 C1.12.60 C1.12.62
+C1.11.61 C1.10.60 C1.10.62 C1.11.58 C1.11.59 C1.11.60 C1.11.62
+C1.11.62 C1.11.59 C1.11.60 C1.11.61 C1.12.60 C1.12.62
+C1.12.00 C1.11.00 C1.11.07 C1.12.06 C1.12.08
+C1.12.01 C1.12.02 C1.12.04 C1.12.10
+C1.12.02 C1.12.01 C1.12.03 C1.12.10 C1.12.11
+C1.12.03 C1.12.02 C1.12.05 C1.12.10 C1.12.11
+C1.12.04 C1.12.01 C1.12.10 C1.12.15 C1.13.02 C1.13.09 C1.13.13
+C1.12.05 C1.12.03 C1.12.07 C1.12.11 C1.12.12
+C1.12.06 C1.12.00 C1.12.08 C1.12.09 C1.12.12 C1.12.13 C1.12.14
+C1.12.07 C1.12.05 C1.12.09 C1.12.11 C1.12.12
+C1.12.08 C1.11.00 C1.11.07 C1.11.14 C1.12.00 C1.12.06 C1.12.13 C1.12.14
+C1.12.09 C1.12.06 C1.12.07 C1.12.12 C1.12.13
+C1.12.10 C1.12.01 C1.12.02 C1.12.03 C1.12.04 C1.12.11 C1.12.15 C1.12.16 C1.13.13
+C1.12.11 C1.12.02 C1.12.03 C1.12.05 C1.12.07 C1.12.10 C1.12.12 C1.12.15 C1.12.16 C1.12.17
+C1.12.12 C1.12.05 C1.12.06 C1.12.07 C1.12.09 C1.12.11 C1.12.13 C1.12.16 C1.12.17 C1.12.18
+C1.12.13 C1.12.06 C1.12.08 C1.12.09 C1.12.12 C1.12.14 C1.12.17 C1.12.18 C1.12.19
+C1.12.14 C1.11.07 C1.11.14 C1.11.19 C1.12.06 C1.12.08 C1.12.13 C1.12.18 C1.12.19
+C1.12.15 C1.12.04 C1.12.10 C1.12.11 C1.12.16 C1.12.20 C1.12.21 C1.13.13 C1.13.17
+C1.12.16 C1.12.10 C1.12.11 C1.12.12 C1.12.15 C1.12.17 C1.12.20 C1.12.21 C1.12.22
+C1.12.17 C1.12.11 C1.12.12 C1.12.13 C1.12.16 C1.12.18 C1.12.21 C1.12.22 C1.12.23
+C1.12.18 C1.12.12 C1.12.13 C1.12.14 C1.12.17 C1.12.19 C1.12.22 C1.12.23 C1.12.24
+C1.12.19 C1.11.14 C1.11.19 C1.11.24 C1.12.13 C1.12.14 C1.12.18 C1.12.23 C1.12.24
+C1.12.20 C1.12.15 C1.12.16 C1.12.21 C1.12.25 C1.13.13 C1.13.17 C1.13.21 C1.13.24
+C1.12.21 C1.12.15 C1.12.16 C1.12.17 C1.12.20 C1.12.22 C1.12.25 C1.12.26 C1.13.24
+C1.12.22 C1.12.16 C1.12.17 C1.12.18 C1.12.21 C1.12.23 C1.12.25 C1.12.26 C1.12.27
+C1.12.23 C1.12.17 C1.12.18 C1.12.19 C1.12.22 C1.12.24 C1.12.26 C1.12.27 C1.12.28
+C1.12.24 C1.11.19 C1.11.24 C1.11.28 C1.12.18 C1.12.19 C1.12.23 C1.12.27 C1.12.28
+C1.12.25 C1.12.20 C1.12.21 C1.12.22 C1.12.26 C1.12.29 C1.12.30 C1.13.24 C1.13.28
+C1.12.26 C1.12.21 C1.12.22 C1.12.23 C1.12.25 C1.12.27 C1.12.29 C1.12.30 C1.12.31
+C1.12.27 C1.12.22 C1.12.23 C1.12.24 C1.12.26 C1.12.28 C1.12.30 C1.12.31 C1.12.32
+C1.12.28 C1.11.24 C1.11.28 C1.11.32 C1.12.23 C1.12.24 C1.12.27 C1.12.31 C1.12.32
+C1.12.29 C1.12.25 C1.12.26 C1.12.30 C1.12.33 C1.12.34 C1.13.24 C1.13.28 C1.13.31
+C1.12.30 C1.12.25 C1.12.26 C1.12.27 C1.12.29 C1.12.31 C1.12.33 C1.12.34 C1.12.35
+C1.12.31 C1.12.26 C1.12.27 C1.12.28 C1.12.30 C1.12.32 C1.12.34 C1.12.35 C1.12.36
+C1.12.32 C1.11.28 C1.11.32 C1.11.36 C1.12.27 C1.12.28 C1.12.31 C1.12.35 C1.12.36
+C1.12.33 C1.12.29 C1.12.30 C1.12.34 C1.12.37 C1.13.28 C1.13.31 C1.13.34 C1.13.37
+C1.12.34 C1.12.29 C1.12.30 C1.12.31 C1.12.33 C1.12.35 C1.12.37 C1.12.38 C1.13.37
+C1.12.35 C1.12.30 C1.12.31 C1.12.32 C1.12.34 C1.12.36 C1.12.37 C1.12.38 C1.12.39
+C1.12.36 C1.11.32 C1.11.36 C1.11.39 C1.12.31 C1.12.32 C1.12.35 C1.12.38 C1.12.39
+C1.12.37 C1.12.33 C1.12.34 C1.12.35 C1.12.38 C1.12.40 C1.12.41 C1.13.37 C1.13.40
+C1.12.38 C1.12.34 C1.12.35 C1.12.36 C1.12.37 C1.12.39 C1.12.40 C1.12.41 C1.12.42
+C1.12.39 C1.11.36 C1.11.39 C1.11.42 C1.12.35 C1.12.36 C1.12.38 C1.12.41 C1.12.42
+C1.12.40 C1.12.37 C1.12.38 C1.12.41 C1.12.43 C1.12.44 C1.13.37 C1.13.40 C1.13.43
+C1.12.41 C1.12.37 C1.12.38 C1.12.39 C1.12.40 C1.12.42 C1.12.43 C1.12.44 C1.12.45
+C1.12.42 C1.11.39 C1.11.42 C1.11.45 C1.12.38 C1.12.39 C1.12.41 C1.12.44 C1.12.45
+C1.12.43 C1.12.40 C1.12.41 C1.12.44 C1.12.46 C1.13.40 C1.13.43 C1.13.45 C1.13.47
+C1.12.44 C1.12.40 C1.12.41 C1.12.42 C1.12.43 C1.12.45 C1.12.46 C1.12.47 C1.13.47
+C1.12.45 C1.11.42 C1.11.45 C1.11.47 C1.12.41 C1.12.42 C1.12.44 C1.12.46 C1.12.47
+C1.12.46 C1.12.43 C1.12.44 C1.12.45 C1.12.47 C1.12.48 C1.12.49 C1.13.47 C1.13.49
+C1.12.47 C1.11.45 C1.11.47 C1.11.49 C1.12.44 C1.12.45 C1.12.46 C1.12.48 C1.12.49
+C1.12.48 C1.12.46 C1.12.47 C1.12.49 C1.12.50 C1.12.51 C1.12.52 C1.13.47 C1.13.49 C1.13.51
+C1.12.49 C1.11.47 C1.11.49 C1.11.53 C1.12.46 C1.12.47 C1.12.48 C1.12.51 C1.12.52 C1.12.53
+C1.12.50 C1.12.48 C1.12.51 C1.12.54 C1.12.55 C1.13.49 C1.13.51
+C1.12.51 C1.12.48 C1.12.49 C1.12.50 C1.12.52 C1.12.54 C1.12.55 C1.12.56
+C1.12.52 C1.12.48 C1.12.49 C1.12.51 C1.12.53 C1.12.55 C1.12.56 C1.12.57
+C1.12.53 C1.11.49 C1.11.53 C1.11.57 C1.12.49 C1.12.52 C1.12.56 C1.12.57
+C1.12.54 C1.12.50 C1.12.51 C1.12.55 C1.12.58 C1.13.51 C1.13.53 C1.13.55
+C1.12.55 C1.12.50 C1.12.51 C1.12.52 C1.12.54 C1.12.56 C1.12.58 C1.12.59 C1.13.55
+C1.12.56 C1.12.51 C1.12.52 C1.12.53 C1.12.55 C1.12.57 C1.12.58 C1.12.59 C1.12.60
+C1.12.57 C1.11.53 C1.11.57 C1.11.60 C1.12.52 C1.12.53 C1.12.56 C1.12.59 C1.12.60
+C1.12.58 C1.12.54 C1.12.55 C1.12.56 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.59
+C1.12.59 C1.12.55 C1.12.56 C1.12.57 C1.12.58 C1.12.60 C1.12.61 C1.12.62 C1.13.59
+C1.12.60 C1.11.57 C1.11.60 C1.11.62 C1.12.56 C1.12.57 C1.12.59 C1.12.61 C1.12.62
+C1.12.61 C1.12.58 C1.12.59 C1.12.60 C1.12.62 C1.13.59 C1.13.62
+C1.12.62 C1.11.60 C1.11.62 C1.12.59 C1.12.60 C1.12.61 C1.13.62
+C1.13.00 C1.13.02 C1.13.05 C1.13.09
+C1.13.01 C1.13.03 C1.13.06 C1.13.11
+C1.13.02 C1.12.04 C1.13.00 C1.13.09 C1.13.13
+C1.13.03 C1.13.01 C1.13.06 C1.13.07 C1.13.08 C1.13.11
+C1.13.04 C1.13.05 C1.13.07 C1.13.10
+C1.13.05 C1.13.00 C1.13.04 C1.13.09 C1.13.10 C1.13.14
+C1.13.06 C1.13.01 C1.13.03 C1.13.11 C1.13.12 C1.13.16 C1.14.06
+C1.13.07 C1.13.03 C1.13.04 C1.13.08 C1.13.10
+C1.13.08 C1.13.03 C1.13.07 C1.13.10 C1.13.11 C1.13.15
+C1.13.09 C1.12.04 C1.13.00 C1.13.02 C1.13.05 C1.13.10 C1.13.13 C1.13.14 C1.13.17
+C1.13.10 C1.13.04 C1.13.05 C1.13.07 C1.13.08 C1.13.09 C1.13.11 C1.13.14 C1.13.15 C1.13.18
+C1.13.11 C1.13.01 C1.13.03 C1.13.06 C1.13.08 C1.13.10 C1.13.12 C1.13.15 C1.13.16 C1.13.19
+C1.13.12 C1.13.06 C1.13.11 C1.13.16 C1.13.20 C1.14.06 C1.14.12 C1.14.17
+C1.13.13 C1.12.04 C1.12.10 C1.12.15 C1.12.20 C1.13.02 C1.13.09 C1.13.14 C1.13.17
+C1.13.14 C1.13.05 C1.13.09 C1.13.10 C1.13.13 C1.13.15 C1.13.17 C1.13.18 C1.13.21
+C1.13.15 C1.13.08 C1.13.10 C1.13.11 C1.13.14 C1.13.16 C1.13.18 C1.13.19 C1.13.22
+C1.13.16 C1.13.06 C1.13.11 C1.13.12 C1.13.15 C1.13.19 C1.13.20 C1.13.23 C1.14.17
+C1.13.17 C1.12.15 C1.12.20 C1.13.09 C1.13.13 C1.13.14 C1.13.18 C1.13.21 C1.13.24
+C1.13.18 C1.13.10 C1.13.14 C1.13.15 C1.13.17 C1.13.19 C1.13.21 C1.13.22 C1.13.25
+C1.13.19 C1.13.11 C1.13.15 C1.13.16 C1.13.18 C1.13.20 C1.13.22 C1.13.23 C1.13.26
+C1.13.20 C1.13.12 C1.13.16 C1.13.19 C1.13.23 C1.13.27 C1.14.17 C1.14.20 C1.14.25
+C1.13.21 C1.12.20 C1.13.14 C1.13.17 C1.13.18 C1.13.22 C1.13.24 C1.13.25 C1.13.28
+C1.13.22 C1.13.15 C1.13.18 C1.13.19 C1.13.21 C1.13.23 C1.13.25 C1.13.26 C1.13.29
+C1.13.23 C1.13.16 C1.13.19 C1.13.20 C1.13.22 C1.13.26 C1.13.27 C1.13.30 C1.14.25
+C1.13.24 C1.12.20 C1.12.21 C1.12.25 C1.12.29 C1.13.17 C1.13.21 C1.13.25 C1.13.28
+C1.13.25 C1.13.18 C1.13.21 C1.13.22 C1.13.24 C1.13.26 C1.13.28 C1.13.29 C1.13.31
+C1.13.26 C1.13.19 C1.13.22 C1.13.23 C1.13.25 C1.13.27 C1.13.29 C1.13.30 C1.13.32
+C1.13.27 C1.13.20 C1.13.23 C1.13.26 C1.13.30 C1.13.33 C1.14.25 C1.14.28 C1.14.32
+C1.13.28 C1.12.25 C1.12.29 C1.12.33 C1.13.21 C1.13.24 C1.13.25 C1.13.29 C1.13.31
+C1.13.29 C1.13.22 C1.13.25 C1.13.26 C1.13.28 C1.13.30 C1.13.31 C1.13.32 C1.13.34
+C1.13.30 C1.13.23 C1.13.26 C1.13.27 C1.13.29 C1.13.32 C1.13.33 C1.13.36 C1.14.32
+C1.13.31 C1.12.29 C1.12.33 C1.13.25 C1.13.28 C1.13.29 C1.13.32 C1.13.34 C1.13.37
+C1.13.32 C1.13.26 C1.13.29 C1.13.30 C1.13.31 C1.13.33 C1.13.34 C1.13.36 C1.13.38
+C1.13.33 C1.13.27 C1.13.30 C1.13.32 C1.13.35 C1.13.36 C1.13.39 C1.14.32 C1.14.35
+C1.13.34 C1.12.33 C1.13.29 C1.13.31 C1.13.32 C1.13.36 C1.13.37 C1.13.38 C1.13.40
+C1.13.35 C1.13.33 C1.13.36 C1.13.39 C1.13.42 C1.14.32 C1.14.35 C1.14.37 C1.14.40
+C1.13.36 C1.13.30 C1.13.32 C1.13.33 C1.13.34 C1.13.35 C1.13.38 C1.13.39 C1.13.41
+C1.13.37 C1.12.33 C1.12.34 C1.12.37 C1.12.40 C1.13.31 C1.13.34 C1.13.38 C1.13.40
+C1.13.38 C1.13.32 C1.13.34 C1.13.36 C1.13.37 C1.13.39 C1.13.40 C1.13.41 C1.13.43
+C1.13.39 C1.13.33 C1.13.35 C1.13.36 C1.13.38 C1.13.41 C1.13.42 C1.13.44 C1.14.40
+C1.13.40 C1.12.37 C1.12.40 C1.12.43 C1.13.34 C1.13.37 C1.13.38 C1.13.41 C1.13.43
+C1.13.41 C1.13.36 C1.13.38 C1.13.39 C1.13.40 C1.13.42 C1.13.43 C1.13.44 C1.13.45
+C1.13.42 C1.13.35 C1.13.39 C1.13.41 C1.13.44 C1.13.46 C1.14.40 C1.14.42 C1.14.44
+C1.13.43 C1.12.40 C1.12.43 C1.13.38 C1.13.40 C1.13.41 C1.13.44 C1.13.45 C1.13.47
+C1.13.44 C1.13.39 C1.13.41 C1.13.42 C1.13.43 C1.13.45 C1.13.46 C1.13.48 C1.14.44
+C1.13.45 C1.12.43 C1.13.41 C1.13.43 C1.13.44 C1.13.46 C1.13.47 C1.13.48 C1.13.49
+C1.13.46 C1.13.42 C1.13.44 C1.13.45 C1.13.48 C1.13.50 C1.14.44 C1.14.46 C1.14.48
+C1.13.47 C1.12.43 C1.12.44 C1.12.46 C1.12.48 C1.13.43 C1.13.45 C1.13.48 C1.13.49
+C1.13.48 C1.13.44 C1.13.45 C1.13.46 C1.13.47 C1.13.49 C1.13.50 C1.13.51 C1.14.48
+C1.13.49 C1.12.46 C1.12.48 C1.12.50 C1.13.45 C1.13.47 C1.13.48 C1.13.50 C1.13.51
+C1.13.50 C1.13.46 C1.13.48 C1.13.49 C1.13.51 C1.13.52 C1.14.48 C1.14.49 C1.14.51
+C1.13.51 C1.12.48 C1.12.50 C1.12.54 C1.13.48 C1.13.49 C1.13.50 C1.13.52 C1.13.53 C1.13.55 C1.14.51
+C1.13.52 C1.13.50 C1.13.51 C1.13.53 C1.13.54 C1.13.56 C1.14.51
+C1.13.53 C1.12.54 C1.13.51 C1.13.52 C1.13.54 C1.13.55 C1.13.56 C1.13.57
+C1.13.54 C1.13.52 C1.13.53 C1.13.56 C1.13.58 C1.14.51 C1.14.55 C1.14.57
+C1.13.55 C1.12.54 C1.12.55 C1.12.58 C1.13.51 C1.13.53 C1.13.56 C1.13.57 C1.13.59
+C1.13.56 C1.13.52 C1.13.53 C1.13.54 C1.13.55 C1.13.57 C1.13.58 C1.13.60 C1.14.57
+C1.13.57 C1.12.58 C1.13.53 C1.13.55 C1.13.56 C1.13.58 C1.13.59 C1.13.60
+C1.13.58 C1.13.54 C1.13.56 C1.13.57 C1.13.60 C1.13.61 C1.14.57 C1.14.59 C1.14.61
+C1.13.59 C1.12.58 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.60 C1.13.62
+C1.13.60 C1.13.56 C1.13.57 C1.13.58 C1.13.59 C1.13.61 C1.13.62 C1.14.61
+C1.13.61 C1.13.58 C1.13.60 C1.13.62 C1.14.61 C1.14.62
+C1.13.62 C1.12.61 C1.12.62 C1.13.59 C1.13.60 C1.13.61
+C1.14.00 C1.14.02 C1.14.03 C1.14.11
+C1.14.01 C1.14.04 C1.14.06 C1.14.08 C1.14.12
+C1.14.02 C1.14.00 C1.14.05 C1.14.11 C1.14.13
+C1.14.03 C1.14.00 C1.14.07 C1.14.09 C1.14.11
+C1.14.04 C1.14.01 C1.14.08 C1.14.10
+C1.14.05 C1.14.02 C1.14.11 C1.14.13 C1.15.00 C1.15.08
+C1.14.06 C1.13.06 C1.13.12 C1.14.01 C1.14.12 C1.14.17
+C1.14.07 C1.14.03 C1.14.09 C1.14.10 C1.14.14
+C1.14.08 C1.14.01 C1.14.04 C1.14.10 C1.14.12 C1.14.15
+C1.14.09 C1.14.03 C1.14.07 C1.14.11 C1.14.14 C1.14.16
+C1.14.10 C1.14.04 C1.14.07 C1.14.08 C1.14.12 C1.14.14 C1.14.15 C1.14.18
+C1.14.11 C1.14.00 C1.14.02 C1.14.03 C1.14.05 C1.14.09 C1.14.13 C1.14.14 C1.14.16 C1.14.19
+C1.14.12 C1.13.12 C1.14.01 C1.14.06 C1.14.08 C1.14.10 C1.14.15 C1.14.17 C1.14.20
+C1.14.13 C1.14.02 C1.14.05 C1.14.11 C1.14.16 C1.14.19 C1.14.21 C1.15.07 C1.15.08 C1.15.18
+C1.14.14 C1.14.07 C1.14.09 C1.14.10 C1.14.11 C1.14.15 C1.14.16 C1.14.18 C1.14.22
+C1.14.15 C1.14.08 C1.14.10 C1.14.12 C1.14.14 C1.14.17 C1.14.18 C1.14.20 C1.14.23
+C1.14.16 C1.14.09 C1.14.11 C1.14.13 C1.14.14 C1.14.18 C1.14.19 C1.14.22 C1.14.24
+C1.14.17 C1.13.12 C1.13.16 C1.13.20 C1.14.06 C1.14.12 C1.14.15 C1.14.20 C1.14.25
+C1.14.18 C1.14.10 C1.14.14 C1.14.15 C1.14.16 C1.14.20 C1.14.22 C1.14.23 C1.14.27
+C1.14.19 C1.14.11 C1.14.13 C1.14.16 C1.14.21 C1.14.22 C1.14.24 C1.14.26 C1.15.18
+C1.14.20 C1.13.20 C1.14.12 C1.14.15 C1.14.17 C1.14.18 C1.14.23 C1.14.25 C1.14.28
+C1.14.21 C1.14.13 C1.14.19 C1.14.24 C1.14.26 C1.15.18 C1.15.19 C1.15.24 C1.15.29
+C1.14.22 C1.14.14 C1.14.16 C1.14.18 C1.14.19 C1.14.23 C1.14.24 C1.14.27 C1.14.29
+C1.14.23 C1.14.15 C1.14.18 C1.14.20 C1.14.22 C1.14.25 C1.14.27 C1.14.28 C1.14.30
+C1.14.24 C1.14.16 C1.14.19 C1.14.21 C1.14.22 C1.14.26 C1.14.27 C1.14.29 C1.14.31
+C1.14.25 C1.13.20 C1.13.23 C1.13.27 C1.14.17 C1.14.20 C1.14.23 C1.14.28 C1.14.32
+C1.14.26 C1.14.19 C1.14.21 C1.14.24 C1.14.29 C1.14.31 C1.14.33 C1.15.24 C1.15.29
+C1.14.27 C1.14.18 C1.14.22 C1.14.23 C1.14.24 C1.14.28 C1.14.29 C1.14.30 C1.14.34
+C1.14.28 C1.13.27 C1.14.20 C1.14.23 C1.14.25 C1.14.27 C1.14.30 C1.14.32 C1.14.35
+C1.14.29 C1.14.22 C1.14.24 C1.14.26 C1.14.27 C1.14.30 C1.14.31 C1.14.34 C1.14.36
+C1.14.30 C1.14.23 C1.14.27 C1.14.28 C1.14.29 C1.14.32 C1.14.34 C1.14.35 C1.14.37
+C1.14.31 C1.14.24 C1.14.26 C1.14.29 C1.14.33 C1.14.34 C1.14.36 C1.14.38 C1.15.29
+C1.14.32 C1.13.27 C1.13.30 C1.13.33 C1.13.35 C1.14.25 C1.14.28 C1.14.30 C1.14.35
+C1.14.33 C1.14.26 C1.14.31 C1.14.36 C1.14.38 C1.15.29 C1.15.30 C1.15.34 C1.15.38
+C1.14.34 C1.14.27 C1.14.29 C1.14.30 C1.14.31 C1.14.35 C1.14.36 C1.14.37 C1.14.39
+C1.14.35 C1.13.33 C1.13.35 C1.14.28 C1.14.30 C1.14.32 C1.14.34 C1.14.37 C1.14.40
+C1.14.36 C1.14.29 C1.14.31 C1.14.33 C1.14.34 C1.14.37 C1.14.38 C1.14.39 C1.14.41
+C1.14.37 C1.13.35 C1.14.30 C1.14.34 C1.14.35 C1.14.36 C1.14.39 C1.14.40 C1.14.42
+C1.14.38 C1.14.31 C1.14.33 C1.14.36 C1.14.39 C1.14.41 C1.15.34 C1.15.38 C1.15.42
+C1.14.39 C1.14.34 C1.14.36 C1.14.37 C1.14.38 C1.14.40 C1.14.41 C1.14.42 C1.14.43
+C1.14.40 C1.13.35 C1.13.39 C1.13.42 C1.14.35 C1.14.37 C1.14.39 C1.14.42 C1.14.44
+C1.14.41 C1.14.36 C1.14.38 C1.14.39 C1.14.42 C1.14.43 C1.14.45 C1.15.38 C1.15.42
+C1.14.42 C1.13.42 C1.14.37 C1.14.39 C1.14.40 C1.14.41 C1.14.43 C1.14.44 C1.14.46
+C1.14.43 C1.14.39 C1.14.41 C1.14.42 C1.14.44 C1.14.45 C1.14.46 C1.14.47 C1.15.42
+C1.14.44 C1.13.42 C1.13.44 C1.13.46 C1.14.40 C1.14.42 C1.14.43 C1.14.46 C1.14.48
+C1.14.45 C1.14.41 C1.14.43 C1.14.46 C1.14.47 C1.15.42 C1.15.43 C1.15.46 C1.15.49
+C1.14.46 C1.13.46 C1.14.42 C1.14.43 C1.14.44 C1.14.45 C1.14.47 C1.14.48 C1.14.49
+C1.14.47 C1.14.43 C1.14.45 C1.14.46 C1.14.48 C1.14.49 C1.14.50 C1.15.46 C1.15.49
+C1.14.48 C1.13.46 C1.13.48 C1.13.50 C1.14.44 C1.14.46 C1.14.47 C1.14.49 C1.14.51
+C1.14.49 C1.13.50 C1.14.46 C1.14.47 C1.14.48 C1.14.50 C1.14.51 C1.14.52 C1.15.49
+C1.14.50 C1.14.47 C1.14.49 C1.14.51 C1.14.52 C1.14.53 C1.14.54 C1.15.49 C1.15.50 C1.15.52
+C1.14.51 C1.13.50 C1.13.51 C1.13.52 C1.13.54 C1.14.48 C1.14.49 C1.14.50 C1.14.52 C1.14.55 C1.14.57
+C1.14.52 C1.14.49 C1.14.50 C1.14.51 C1.14.53 C1.14.55 C1.14.56
+C1.14.53 C1.14.50 C1.14.52 C1.14.54 C1.14.55 C1.14.56 C1.14.58 C1.15.52
+C1.14.54 C1.14.50 C1.14.53 C1.14.56 C1.14.58 C1.15.52 C1.15.54 C1.15.57
+C1.14.55 C1.13.54 C1.14.51 C1.14.52 C1.14.53 C1.14.56 C1.14.57 C1.14.59
+C1.14.56 C1.14.52 C1.14.53 C1.14.54 C1.14.55 C1.14.57 C1.14.58 C1.14.59 C1.14.60
+C1.14.57 C1.13.54 C1.13.56 C1.13.58 C1.14.51 C1.14.55 C1.14.56 C1.14.59 C1.14.61
+C1.14.58 C1.14.53 C1.14.54 C1.14.56 C1.14.59 C1.14.60 C1.15.54 C1.15.57 C1.15.60
+C1.14.59 C1.13.58 C1.14.55 C1.14.56 C1.14.57 C1.14.58 C1.14.60 C1.14.61 C1.14.62
+C1.14.60 C1.14.56 C1.14.58 C1.14.59 C1.14.61 C1.14.62 C1.15.57 C1.15.60
+C1.14.61 C1.13.58 C1.13.60 C1.13.61 C1.14.57 C1.14.59 C1.14.60 C1.14.62
+C1.14.62 C1.13.61 C1.14.59 C1.14.60 C1.14.61 C1.15.60
+C1.15.00 C1.14.05 C1.15.07 C1.15.08
+C1.15.01 C1.15.02 C1.15.04 C1.15.06 C1.15.10 C1.15.11
+C1.15.02 C1.00.01 C1.00.11 C1.15.01 C1.15.11 C1.15.12
+C1.15.03 C1.15.07 C1.15.13 C1.15.14
+C1.15.04 C1.15.01 C1.15.05 C1.15.06 C1.15.09
+C1.15.05 C1.15.04 C1.15.09 C1.15.14 C1.15.15
+C1.15.06 C1.15.01 C1.15.04 C1.15.09 C1.15.10 C1.15.15 C1.15.16
+C1.15.07 C1.14.13 C1.15.00 C1.15.03 C1.15.08 C1.15.13 C1.15.18 C1.15.19
+C1.15.08 C1.14.05 C1.14.13 C1.15.00 C1.15.07 C1.15.18
+C1.15.09 C1.15.04 C1.15.05 C1.15.06 C1.15.15 C1.15.16
+C1.15.10 C1.15.01 C1.15.06 C1.15.11 C1.15.16 C1.15.17
+C1.15.11 C1.15.01 C1.15.02 C1.15.10 C1.15.12 C1.15.16 C1.15.17
+C1.15.12 C1.00.01 C1.00.11 C1.00.16 C1.15.02 C1.15.11 C1.15.17
+C1.15.13 C1.15.03 C1.15.07 C1.15.14 C1.15.18 C1.15.19 C1.15.20
+C1.15.14 C1.15.03 C1.15.05 C1.15.13 C1.15.15 C1.15.19 C1.15.20 C1.15.21
+C1.15.15 C1.15.05 C1.15.06 C1.15.09 C1.15.14 C1.15.16 C1.15.20 C1.15.21 C1.15.22
+C1.15.16 C1.15.06 C1.15.09 C1.15.10 C1.15.11 C1.15.15 C1.15.17 C1.15.21 C1.15.22 C1.15.23
+C1.15.17 C1.00.11 C1.00.16 C1.00.22 C1.15.10 C1.15.11 C1.15.12 C1.15.16 C1.15.22 C1.15.23
+C1.15.18 C1.14.13 C1.14.19 C1.14.21 C1.15.07 C1.15.08 C1.15.13 C1.15.19 C1.15.24
+C1.15.19 C1.14.21 C1.15.07 C1.15.13 C1.15.14 C1.15.18 C1.15.20 C1.15.24 C1.15.25
+C1.15.20 C1.15.13 C1.15.14 C1.15.15 C1.15.19 C1.15.21 C1.15.24 C1.15.25 C1.15.26
+C1.15.21 C1.15.14 C1.15.15 C1.15.16 C1.15.20 C1.15.22 C1.15.25 C1.15.26 C1.15.27
+C1.15.22 C1.15.15 C1.15.16 C1.15.17 C1.15.21 C1.15.23 C1.15.26 C1.15.27 C1.15.28
+C1.15.23 C1.00.16 C1.00.22 C1.00.27 C1.15.16 C1.15.17 C1.15.22 C1.15.27 C1.15.28
+C1.15.24 C1.14.21 C1.14.26 C1.15.18 C1.15.19 C1.15.20 C1.15.25 C1.15.29 C1.15.30
+C1.15.25 C1.15.19 C1.15.20 C1.15.21 C1.15.24 C1.15.26 C1.15.29 C1.15.30 C1.15.31
+C1.15.26 C1.15.20 C1.15.21 C1.15.22 C1.15.25 C1.15.27 C1.15.30 C1.15.31 C1.15.32
+C1.15.27 C1.15.21 C1.15.22 C1.15.23 C1.15.26 C1.15.28 C1.15.31 C1.15.32 C1.15.33
+C1.15.28 C1.00.22 C1.00.27 C1.00.32 C1.15.22 C1.15.23 C1.15.27 C1.15.32 C1.15.33
+C1.15.29 C1.14.21 C1.14.26 C1.14.31 C1.14.33 C1.15.24 C1.15.25 C1.15.30 C1.15.34
+C1.15.30 C1.14.33 C1.15.24 C1.15.25 C1.15.26 C1.15.29 C1.15.31 C1.15.34 C1.15.35
+C1.15.31 C1.15.25 C1.15.26 C1.15.27 C1.15.30 C1.15.32 C1.15.34 C1.15.35 C1.15.36
+C1.15.32 C1.15.26 C1.15.27 C1.15.28 C1.15.31 C1.15.33 C1.15.35 C1.15.36 C1.15.37
+C1.15.33 C1.00.27 C1.00.32 C1.00.36 C1.15.27 C1.15.28 C1.15.32 C1.15.36 C1.15.37
+C1.15.34 C1.14.33 C1.14.38 C1.15.29 C1.15.30 C1.15.31 C1.15.35 C1.15.38 C1.15.39
+C1.15.35 C1.15.30 C1.15.31 C1.15.32 C1.15.34 C1.15.36 C1.15.38 C1.15.39 C1.15.40
+C1.15.36 C1.15.31 C1.15.32 C1.15.33 C1.15.35 C1.15.37 C1.15.39 C1.15.40 C1.15.41
+C1.15.37 C1.00.32 C1.00.36 C1.00.40 C1.15.32 C1.15.33 C1.15.36 C1.15.40 C1.15.41
+C1.15.38 C1.14.33 C1.14.38 C1.14.41 C1.15.34 C1.15.35 C1.15.39 C1.15.42 C1.15.43
+C1.15.39 C1.15.34 C1.15.35 C1.15.36 C1.15.38 C1.15.40 C1.15.42 C1.15.43 C1.15.44
+C1.15.40 C1.15.35 C1.15.36 C1.15.37 C1.15.39 C1.15.41 C1.15.43 C1.15.44 C1.15.45
+C1.15.41 C1.00.36 C1.00.40 C1.00.44 C1.15.36 C1.15.37 C1.15.40 C1.15.44 C1.15.45
+C1.15.42 C1.14.38 C1.14.41 C1.14.43 C1.14.45 C1.15.38 C1.15.39 C1.15.43 C1.15.46
+C1.15.43 C1.14.45 C1.15.38 C1.15.39 C1.15.40 C1.15.42 C1.15.44 C1.15.46 C1.15.47
+C1.15.44 C1.15.39 C1.15.40 C1.15.41 C1.15.43 C1.15.45 C1.15.46 C1.15.47 C1.15.48
+C1.15.45 C1.00.40 C1.00.44 C1.00.47 C1.15.40 C1.15.41 C1.15.44 C1.15.47 C1.15.48
+C1.15.46 C1.14.45 C1.14.47 C1.15.42 C1.15.43 C1.15.44 C1.15.47 C1.15.49 C1.15.50
+C1.15.47 C1.15.43 C1.15.44 C1.15.45 C1.15.46 C1.15.48 C1.15.49 C1.15.50 C1.15.51
+C1.15.48 C1.00.44 C1.00.47 C1.00.50 C1.15.44 C1.15.45 C1.15.47 C1.15.50 C1.15.51
+C1.15.49 C1.14.45 C1.14.47 C1.14.49 C1.14.50 C1.15.46 C1.15.47 C1.15.50 C1.15.52
+C1.15.50 C1.14.50 C1.15.46 C1.15.47 C1.15.48 C1.15.49 C1.15.51 C1.15.52 C1.15.53
+C1.15.51 C1.00.47 C1.00.50 C1.00.52 C1.15.47 C1.15.48 C1.15.50 C1.15.52 C1.15.53
+C1.15.52 C1.14.50 C1.14.53 C1.14.54 C1.15.49 C1.15.50 C1.15.51 C1.15.53 C1.15.54 C1.15.55
+C1.15.53 C1.00.50 C1.00.52 C1.00.56 C1.15.50 C1.15.51 C1.15.52 C1.15.54 C1.15.55 C1.15.56
+C1.15.54 C1.14.54 C1.14.58 C1.15.52 C1.15.53 C1.15.55 C1.15.57 C1.15.58
+C1.15.55 C1.15.52 C1.15.53 C1.15.54 C1.15.56 C1.15.57 C1.15.58 C1.15.59
+C1.15.56 C1.00.52 C1.00.56 C1.00.59 C1.15.53 C1.15.55 C1.15.58 C1.15.59
+C1.15.57 C1.14.54 C1.14.58 C1.14.60 C1.15.54 C1.15.55 C1.15.58 C1.15.60 C1.15.61
+C1.15.58 C1.15.54 C1.15.55 C1.15.56 C1.15.57 C1.15.59 C1.15.60 C1.15.61 C1.15.62
+C1.15.59 C1.00.56 C1.00.59 C1.00.62 C1.15.55 C1.15.56 C1.15.58 C1.15.61 C1.15.62
+C1.15.60 C1.14.58 C1.14.60 C1.14.62 C1.15.57 C1.15.58 C1.15.61
+C1.15.61 C1.15.57 C1.15.58 C1.15.59 C1.15.60 C1.15.62
+C1.15.62 C1.00.59 C1.00.62 C1.15.58 C1.15.59 C1.15.61
+C2.00.00 C2.00.02 C2.00.05 C2.00.06
+C2.00.01 C2.00.02 C2.00.06 C2.15.00 C2.15.06
+C2.00.02 C2.00.00 C2.00.01 C2.00.05 C2.00.06
+C2.00.03 C2.00.04 C2.00.07 C2.00.08 C2.01.04
+C2.00.04 C2.00.03 C2.00.05 C2.00.07 C2.00.08 C2.00.09
+C2.00.05 C2.00.00 C2.00.02 C2.00.04 C2.00.06 C2.00.08 C2.00.09 C2.00.10
+C2.00.06 C2.00.00 C2.00.01 C2.00.02 C2.00.05 C2.00.09 C2.00.10 C2.15.00 C2.15.06 C2.15.10
+C2.00.07 C2.00.03 C2.00.04 C2.00.08 C2.00.11 C2.01.04 C2.01.07 C2.01.10
+C2.00.08 C2.00.03 C2.00.04 C2.00.05 C2.00.07 C2.00.09 C2.00.11 C2.00.12 C2.01.10
+C2.00.09 C2.00.04 C2.00.05 C2.00.06 C2.00.08 C2.00.10 C2.00.11 C2.00.12 C2.00.13
+C2.00.10 C2.00.05 C2.00.06 C2.00.09 C2.00.12 C2.00.13 C2.15.06 C2.15.10 C2.15.13
+C2.00.11 C2.00.07 C2.00.08 C2.00.09 C2.00.12 C2.00.14 C2.00.15 C2.01.10 C2.01.13
+C2.00.12 C2.00.08 C2.00.09 C2.00.10 C2.00.11 C2.00.13 C2.00.14 C2.00.15 C2.00.16
+C2.00.13 C2.00.09 C2.00.10 C2.00.12 C2.00.15 C2.00.16 C2.15.10 C2.15.13 C2.15.16
+C2.00.14 C2.00.11 C2.00.12 C2.00.15 C2.00.17 C2.00.18 C2.01.10 C2.01.13 C2.01.16
+C2.00.15 C2.00.11 C2.00.12 C2.00.13 C2.00.14 C2.00.16 C2.00.17 C2.00.18 C2.00.19
+C2.00.16 C2.00.12 C2.00.13 C2.00.15 C2.00.18 C2.00.19 C2.15.13 C2.15.16 C2.15.19
+C2.00.17 C2.00.14 C2.00.15 C2.00.18 C2.00.20 C2.01.13 C2.01.16 C2.01.18 C2.01.20
+C2.00.18 C2.00.14 C2.00.15 C2.00.16 C2.00.17 C2.00.19 C2.00.20 C2.00.21 C2.01.20
+C2.00.19 C2.00.15 C2.00.16 C2.00.18 C2.00.20 C2.00.21 C2.15.16 C2.15.19 C2.15.21
+C2.00.20 C2.00.17 C2.00.18 C2.00.19 C2.00.21 C2.00.22 C2.00.23 C2.01.20 C2.01.22
+C2.00.21 C2.00.18 C2.00.19 C2.00.20 C2.00.22 C2.00.23 C2.15.19 C2.15.21 C2.15.23
+C2.00.22 C2.00.20 C2.00.21 C2.00.23 C2.00.24 C2.00.25 C2.01.20 C2.01.22 C2.01.24
+C2.00.23 C2.00.20 C2.00.21 C2.00.22 C2.00.24 C2.00.25 C2.15.21 C2.15.23 C2.15.25
+C2.00.24 C2.00.22 C2.00.23 C2.00.25 C2.00.26 C2.01.22 C2.01.24 C2.01.25 C2.01.26
+C2.00.25 C2.00.22 C2.00.23 C2.00.24 C2.00.26 C2.01.26 C2.15.23 C2.15.25 C2.15.26
+C2.00.26 C2.00.24 C2.00.25 C2.00.27 C2.01.26 C2.01.28 C2.15.25 C2.15.26 C2.15.27
+C2.00.27 C2.00.26 C2.00.28 C2.00.29 C2.01.26 C2.01.28 C2.01.30 C2.15.26 C2.15.27 C2.15.29
+C2.00.28 C2.00.27 C2.00.29 C2.01.28 C2.01.30 C2.01.31
+C2.00.29 C2.00.27 C2.00.28 C2.15.27 C2.15.29
+C2.01.00 C2.01.03 C2.01.05 C2.02.01
+C2.01.01 C2.01.05 C2.01.06
+C2.01.02 C2.01.04 C2.01.06 C2.01.07
+C2.01.03 C2.01.00 C2.01.05 C2.01.08 C2.02.01 C2.02.06
+C2.01.04 C2.00.03 C2.00.07 C2.01.02 C2.01.06 C2.01.07 C2.01.10
+C2.01.05 C2.01.00 C2.01.01 C2.01.03 C2.01.06 C2.01.08 C2.01.09 C2.01.12
+C2.01.06 C2.01.01 C2.01.02 C2.01.04 C2.01.05 C2.01.07 C2.01.09 C2.01.11
+C2.01.07 C2.00.07 C2.01.02 C2.01.04 C2.01.06 C2.01.09 C2.01.10 C2.01.11 C2.01.13
+C2.01.08 C2.01.03 C2.01.05 C2.01.09 C2.01.12 C2.01.14 C2.02.06 C2.02.09 C2.02.11
+C2.01.09 C2.01.05 C2.01.06 C2.01.07 C2.01.08 C2.01.11 C2.01.12 C2.01.15
+C2.01.10 C2.00.07 C2.00.08 C2.00.11 C2.00.14 C2.01.04 C2.01.07 C2.01.11 C2.01.13
+C2.01.11 C2.01.06 C2.01.07 C2.01.09 C2.01.10 C2.01.12 C2.01.13 C2.01.15 C2.01.16
+C2.01.12 C2.01.05 C2.01.08 C2.01.09 C2.01.11 C2.01.14 C2.01.15 C2.01.17 C2.02.11
+C2.01.13 C2.00.11 C2.00.14 C2.00.17 C2.01.07 C2.01.10 C2.01.11 C2.01.15 C2.01.16
+C2.01.14 C2.01.08 C2.01.12 C2.01.15 C2.01.17 C2.01.19 C2.02.11 C2.02.14 C2.02.16
+C2.01.15 C2.01.09 C2.01.11 C2.01.12 C2.01.13 C2.01.14 C2.01.16 C2.01.17 C2.01.18
+C2.01.16 C2.00.14 C2.00.17 C2.01.11 C2.01.13 C2.01.15 C2.01.17 C2.01.18 C2.01.20
+C2.01.17 C2.01.12 C2.01.14 C2.01.15 C2.01.16 C2.01.18 C2.01.19 C2.01.21 C2.02.16
+C2.01.18 C2.00.17 C2.01.15 C2.01.16 C2.01.17 C2.01.19 C2.01.20 C2.01.21 C2.01.22
+C2.01.19 C2.01.14 C2.01.17 C2.01.18 C2.01.21 C2.01.23 C2.02.16 C2.02.18 C2.02.20
+C2.01.20 C2.00.17 C2.00.18 C2.00.20 C2.00.22 C2.01.16 C2.01.18 C2.01.21 C2.01.22
+C2.01.21 C2.01.17 C2.01.18 C2.01.19 C2.01.20 C2.01.22 C2.01.23 C2.01.24 C2.02.20
+C2.01.22 C2.00.20 C2.00.22 C2.00.24 C2.01.18 C2.01.20 C2.01.21 C2.01.23 C2.01.24
+C2.01.23 C2.01.19 C2.01.21 C2.01.22 C2.01.24 C2.01.25 C2.02.20 C2.02.22 C2.02.24
+C2.01.24 C2.00.22 C2.00.24 C2.01.21 C2.01.22 C2.01.23 C2.01.25 C2.01.26 C2.02.24
+C2.01.25 C2.00.24 C2.01.23 C2.01.24 C2.01.26 C2.01.27 C2.01.28 C2.02.24 C2.02.25
+C2.01.26 C2.00.24 C2.00.25 C2.00.26 C2.00.27 C2.01.24 C2.01.25 C2.01.27 C2.01.28
+C2.01.27 C2.01.25 C2.01.26 C2.01.28 C2.02.24 C2.02.25 C2.02.26 C2.02.27 C2.02.29
+C2.01.28 C2.00.26 C2.00.27 C2.00.28 C2.01.25 C2.01.26 C2.01.27 C2.01.29 C2.01.30 C2.02.27 C2.02.29
+C2.01.29 C2.01.28 C2.01.30 C2.01.31 C2.02.29 C2.02.30
+C2.01.30 C2.00.27 C2.00.28 C2.01.28 C2.01.29 C2.01.31
+C2.01.31 C2.00.28 C2.01.29 C2.01.30 C2.02.29 C2.02.30
+C2.02.00 C2.02.02 C2.02.07 C2.02.08
+C2.02.01 C2.01.00 C2.01.03 C2.02.06
+C2.02.02 C2.02.00 C2.02.04 C2.02.07 C2.02.08 C2.03.01
+C2.02.03 C2.02.05 C2.02.06 C2.02.09
+C2.02.04 C2.02.02 C2.02.08 C2.03.01 C2.03.06
+C2.02.05 C2.02.03 C2.02.07 C2.02.09 C2.02.10
+C2.02.06 C2.01.03 C2.01.08 C2.02.01 C2.02.03 C2.02.09 C2.02.11
+C2.02.07 C2.02.00 C2.02.02 C2.02.05 C2.02.08 C2.02.09 C2.02.10 C2.02.12
+C2.02.08 C2.02.00 C2.02.02 C2.02.04 C2.02.07 C2.02.10 C2.02.12 C2.02.13 C2.03.01 C2.03.06
+C2.02.09 C2.01.08 C2.02.03 C2.02.05 C2.02.06 C2.02.07 C2.02.10 C2.02.11 C2.02.14
+C2.02.10 C2.02.05 C2.02.07 C2.02.08 C2.02.09 C2.02.11 C2.02.12 C2.02.14 C2.02.15
+C2.02.11 C2.01.08 C2.01.12 C2.01.14 C2.02.06 C2.02.09 C2.02.10 C2.02.14 C2.02.16
+C2.02.12 C2.02.07 C2.02.08 C2.02.10 C2.02.13 C2.02.14 C2.02.15 C2.02.17 C2.03.06
+C2.02.13 C2.02.08 C2.02.12 C2.02.15 C2.02.17 C2.03.06 C2.03.07 C2.03.11 C2.03.15
+C2.02.14 C2.01.14 C2.02.09 C2.02.10 C2.02.11 C2.02.12 C2.02.15 C2.02.16 C2.02.18
+C2.02.15 C2.02.10 C2.02.12 C2.02.13 C2.02.14 C2.02.16 C2.02.17 C2.02.18 C2.02.19
+C2.02.16 C2.01.14 C2.01.17 C2.01.19 C2.02.11 C2.02.14 C2.02.15 C2.02.18 C2.02.20
+C2.02.17 C2.02.12 C2.02.13 C2.02.15 C2.02.18 C2.02.19 C2.02.21 C2.03.11 C2.03.15
+C2.02.18 C2.01.19 C2.02.14 C2.02.15 C2.02.16 C2.02.17 C2.02.19 C2.02.20 C2.02.22
+C2.02.19 C2.02.15 C2.02.17 C2.02.18 C2.02.20 C2.02.21 C2.02.22 C2.02.23 C2.03.15
+C2.02.20 C2.01.19 C2.01.21 C2.01.23 C2.02.16 C2.02.18 C2.02.19 C2.02.22 C2.02.24
+C2.02.21 C2.02.17 C2.02.19 C2.02.22 C2.02.23 C2.03.15 C2.03.16 C2.03.19 C2.03.22
+C2.02.22 C2.01.23 C2.02.18 C2.02.19 C2.02.20 C2.02.21 C2.02.23 C2.02.24 C2.02.25
+C2.02.23 C2.02.19 C2.02.21 C2.02.22 C2.02.24 C2.02.25 C2.02.26 C2.03.19 C2.03.22
+C2.02.24 C2.01.23 C2.01.24 C2.01.25 C2.01.27 C2.02.20 C2.02.22 C2.02.23 C2.02.25
+C2.02.25 C2.01.25 C2.01.27 C2.02.22 C2.02.23 C2.02.24 C2.02.26 C2.02.27 C2.03.22
+C2.02.26 C2.01.27 C2.02.23 C2.02.25 C2.02.27 C2.02.28 C2.03.22 C2.03.23 C2.03.25
+C2.02.27 C2.01.27 C2.01.28 C2.02.25 C2.02.26 C2.02.28 C2.02.29 C2.02.30 C2.03.25
+C2.02.28 C2.02.26 C2.02.27 C2.02.30 C2.02.31 C2.03.25 C2.03.26 C2.03.27 C2.03.29
+C2.02.29 C2.01.27 C2.01.28 C2.01.29 C2.01.31 C2.02.27 C2.02.30
+C2.02.30 C2.01.29 C2.01.31 C2.02.27 C2.02.28 C2.02.29 C2.02.31
+C2.02.31 C2.02.28 C2.02.30 C2.03.29
+C2.03.00 C2.03.03 C2.03.04 C2.03.05 C2.04.00 C2.04.05
+C2.03.01 C2.02.02 C2.02.04 C2.02.08 C2.03.02 C2.03.06 C2.03.07
+C2.03.02 C2.03.01 C2.03.03 C2.03.06 C2.03.07 C2.03.08
+C2.03.03 C2.03.00 C2.03.02 C2.03.04 C2.03.07 C2.03.08 C2.03.09
+C2.03.04 C2.03.00 C2.03.03 C2.03.05 C2.03.08 C2.03.09 C2.03.10
+C2.03.05 C2.03.00 C2.03.04 C2.03.09 C2.03.10 C2.04.00 C2.04.05 C2.04.10
+C2.03.06 C2.02.04 C2.02.08 C2.02.12 C2.02.13 C2.03.01 C2.03.02 C2.03.07 C2.03.11
+C2.03.07 C2.02.13 C2.03.01 C2.03.02 C2.03.03 C2.03.06 C2.03.08 C2.03.11 C2.03.12
+C2.03.08 C2.03.02 C2.03.03 C2.03.04 C2.03.07 C2.03.09 C2.03.11 C2.03.12 C2.03.13
+C2.03.09 C2.03.03 C2.03.04 C2.03.05 C2.03.08 C2.03.10 C2.03.12 C2.03.13 C2.03.14
+C2.03.10 C2.03.04 C2.03.05 C2.03.09 C2.03.13 C2.03.14 C2.04.05 C2.04.10 C2.04.14
+C2.03.11 C2.02.13 C2.02.17 C2.03.06 C2.03.07 C2.03.08 C2.03.12 C2.03.15 C2.03.16
+C2.03.12 C2.03.07 C2.03.08 C2.03.09 C2.03.11 C2.03.13 C2.03.15 C2.03.16 C2.03.17
+C2.03.13 C2.03.08 C2.03.09 C2.03.10 C2.03.12 C2.03.14 C2.03.16 C2.03.17 C2.03.18
+C2.03.14 C2.03.09 C2.03.10 C2.03.13 C2.03.17 C2.03.18 C2.04.10 C2.04.14 C2.04.18
+C2.03.15 C2.02.13 C2.02.17 C2.02.19 C2.02.21 C2.03.11 C2.03.12 C2.03.16 C2.03.19
+C2.03.16 C2.02.21 C2.03.11 C2.03.12 C2.03.13 C2.03.15 C2.03.17 C2.03.19 C2.03.20
+C2.03.17 C2.03.12 C2.03.13 C2.03.14 C2.03.16 C2.03.18 C2.03.19 C2.03.20 C2.03.21
+C2.03.18 C2.03.13 C2.03.14 C2.03.17 C2.03.20 C2.03.21 C2.04.14 C2.04.18 C2.04.21
+C2.03.19 C2.02.21 C2.02.23 C2.03.15 C2.03.16 C2.03.17 C2.03.20 C2.03.22 C2.03.23
+C2.03.20 C2.03.16 C2.03.17 C2.03.18 C2.03.19 C2.03.21 C2.03.22 C2.03.23 C2.03.24
+C2.03.21 C2.03.17 C2.03.18 C2.03.20 C2.03.23 C2.03.24 C2.04.18 C2.04.21 C2.04.24
+C2.03.22 C2.02.21 C2.02.23 C2.02.25 C2.02.26 C2.03.19 C2.03.20 C2.03.23 C2.03.25
+C2.03.23 C2.02.26 C2.03.19 C2.03.20 C2.03.21 C2.03.22 C2.03.24 C2.03.25 C2.03.26
+C2.03.24 C2.03.20 C2.03.21 C2.03.23 C2.03.25 C2.03.26 C2.04.21 C2.04.24 C2.04.26
+C2.03.25 C2.02.26 C2.02.27 C2.02.28 C2.03.22 C2.03.23 C2.03.24 C2.03.26 C2.03.27
+C2.03.26 C2.02.28 C2.03.23 C2.03.24 C2.03.25 C2.03.27 C2.03.28 C2.04.24 C2.04.26 C2.04.28
+C2.03.27 C2.02.28 C2.03.25 C2.03.26 C2.03.28 C2.03.29 C2.03.30
+C2.03.28 C2.03.26 C2.03.27 C2.03.29 C2.03.30 C2.04.26 C2.04.28 C2.04.30
+C2.03.29 C2.02.28 C2.02.31 C2.03.27 C2.03.28 C2.03.30
+C2.03.30 C2.03.27 C2.03.28 C2.03.29 C2.04.28 C2.04.30
+C2.04.00 C2.03.00 C2.03.05 C2.04.03 C2.04.04 C2.04.05
+C2.04.01 C2.04.02 C2.04.06 C2.04.07 C2.05.02 C2.05.04 C2.05.08
+C2.04.02 C2.04.01 C2.04.03 C2.04.06 C2.04.07 C2.04.08
+C2.04.03 C2.04.00 C2.04.02 C2.04.04 C2.04.07 C2.04.08 C2.04.09
+C2.04.04 C2.04.00 C2.04.03 C2.04.05 C2.04.08 C2.04.09 C2.04.10
+C2.04.05 C2.03.00 C2.03.05 C2.03.10 C2.04.00 C2.04.04 C2.04.09 C2.04.10
+C2.04.06 C2.04.01 C2.04.02 C2.04.07 C2.04.11 C2.05.04 C2.05.08 C2.05.12 C2.05.13
+C2.04.07 C2.04.01 C2.04.02 C2.04.03 C2.04.06 C2.04.08 C2.04.11 C2.04.12 C2.05.13
+C2.04.08 C2.04.02 C2.04.03 C2.04.04 C2.04.07 C2.04.09 C2.04.11 C2.04.12 C2.04.13
+C2.04.09 C2.04.03 C2.04.04 C2.04.05 C2.04.08 C2.04.10 C2.04.12 C2.04.13 C2.04.14
+C2.04.10 C2.03.05 C2.03.10 C2.03.14 C2.04.04 C2.04.05 C2.04.09 C2.04.13 C2.04.14
+C2.04.11 C2.04.06 C2.04.07 C2.04.08 C2.04.12 C2.04.15 C2.04.16 C2.05.13 C2.05.17
+C2.04.12 C2.04.07 C2.04.08 C2.04.09 C2.04.11 C2.04.13 C2.04.15 C2.04.16 C2.04.17
+C2.04.13 C2.04.08 C2.04.09 C2.04.10 C2.04.12 C2.04.14 C2.04.16 C2.04.17 C2.04.18
+C2.04.14 C2.03.10 C2.03.14 C2.03.18 C2.04.09 C2.04.10 C2.04.13 C2.04.17 C2.04.18
+C2.04.15 C2.04.11 C2.04.12 C2.04.16 C2.04.19 C2.05.13 C2.05.17 C2.05.19 C2.05.21
+C2.04.16 C2.04.11 C2.04.12 C2.04.13 C2.04.15 C2.04.17 C2.04.19 C2.04.20 C2.05.21
+C2.04.17 C2.04.12 C2.04.13 C2.04.14 C2.04.16 C2.04.18 C2.04.19 C2.04.20 C2.04.21
+C2.04.18 C2.03.14 C2.03.18 C2.03.21 C2.04.13 C2.04.14 C2.04.17 C2.04.20 C2.04.21
+C2.04.19 C2.04.15 C2.04.16 C2.04.17 C2.04.20 C2.04.22 C2.04.23 C2.05.21 C2.05.23
+C2.04.20 C2.04.16 C2.04.17 C2.04.18 C2.04.19 C2.04.21 C2.04.22 C2.04.23 C2.04.24
+C2.04.21 C2.03.18 C2.03.21 C2.03.24 C2.04.17 C2.04.18 C2.04.20 C2.04.23 C2.04.24
+C2.04.22 C2.04.19 C2.04.20 C2.04.23 C2.04.25 C2.05.21 C2.05.23 C2.05.25 C2.05.26
+C2.04.23 C2.04.19 C2.04.20 C2.04.21 C2.04.22 C2.04.24 C2.04.25 C2.04.26 C2.05.26
+C2.04.24 C2.03.21 C2.03.24 C2.03.26 C2.04.20 C2.04.21 C2.04.23 C2.04.25 C2.04.26
+C2.04.25 C2.04.22 C2.04.23 C2.04.24 C2.04.26 C2.04.27 C2.05.26 C2.05.27 C2.05.28
+C2.04.26 C2.03.24 C2.03.26 C2.03.28 C2.04.23 C2.04.24 C2.04.25 C2.04.27 C2.04.28 C2.05.28
+C2.04.27 C2.04.25 C2.04.26 C2.04.28 C2.04.29 C2.04.30 C2.05.28
+C2.04.28 C2.03.26 C2.03.28 C2.03.30 C2.04.26 C2.04.27 C2.04.29 C2.04.30
+C2.04.29 C2.04.27 C2.04.28 C2.04.30 C2.05.28 C2.05.31
+C2.04.30 C2.03.28 C2.03.30 C2.04.27 C2.04.28 C2.04.29 C2.05.31
+C2.05.00 C2.05.03 C2.05.06 C2.06.00
+C2.05.01 C2.05.02 C2.05.07 C2.05.08
+C2.05.02 C2.04.01 C2.05.01 C2.05.04 C2.05.07 C2.05.08
+C2.05.03 C2.05.00 C2.05.05 C2.05.06 C2.05.09
+C2.05.04 C2.04.01 C2.04.06 C2.05.02 C2.05.08
+C2.05.05 C2.05.03 C2.05.07 C2.05.09 C2.05.10
+C2.05.06 C2.05.00 C2.05.03 C2.05.09 C2.05.11 C2.06.00 C2.06.05 C2.06.08
+C2.05.07 C2.05.01 C2.05.02 C2.05.05 C2.05.08 C2.05.09 C2.05.10 C2.05.12
+C2.05.08 C2.04.01 C2.04.06 C2.05.01 C2.05.02 C2.05.04 C2.05.07 C2.05.10 C2.05.12 C2.05.13
+C2.05.09 C2.05.03 C2.05.05 C2.05.06 C2.05.07 C2.05.10 C2.05.11 C2.05.14 C2.06.08
+C2.05.10 C2.05.05 C2.05.07 C2.05.08 C2.05.09 C2.05.11 C2.05.12 C2.05.14 C2.05.15
+C2.05.11 C2.05.06 C2.05.09 C2.05.10 C2.05.14 C2.05.16 C2.06.08 C2.06.12 C2.06.14
+C2.05.12 C2.04.06 C2.05.07 C2.05.08 C2.05.10 C2.05.13 C2.05.14 C2.05.15 C2.05.17
+C2.05.13 C2.04.06 C2.04.07 C2.04.11 C2.04.15 C2.05.08 C2.05.12 C2.05.15 C2.05.17
+C2.05.14 C2.05.09 C2.05.10 C2.05.11 C2.05.12 C2.05.15 C2.05.16 C2.05.18 C2.06.14
+C2.05.15 C2.05.10 C2.05.12 C2.05.13 C2.05.14 C2.05.16 C2.05.17 C2.05.18 C2.05.19
+C2.05.16 C2.05.11 C2.05.14 C2.05.15 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.19
+C2.05.17 C2.04.11 C2.04.15 C2.05.12 C2.05.13 C2.05.15 C2.05.18 C2.05.19 C2.05.21
+C2.05.18 C2.05.14 C2.05.15 C2.05.16 C2.05.17 C2.05.19 C2.05.20 C2.05.22 C2.06.19
+C2.05.19 C2.04.15 C2.05.15 C2.05.17 C2.05.18 C2.05.20 C2.05.21 C2.05.22 C2.05.23
+C2.05.20 C2.05.16 C2.05.18 C2.05.19 C2.05.22 C2.05.24 C2.06.19 C2.06.21 C2.06.23
+C2.05.21 C2.04.15 C2.04.16 C2.04.19 C2.04.22 C2.05.17 C2.05.19 C2.05.22 C2.05.23
+C2.05.22 C2.05.18 C2.05.19 C2.05.20 C2.05.21 C2.05.23 C2.05.24 C2.05.25 C2.06.23
+C2.05.23 C2.04.19 C2.04.22 C2.05.19 C2.05.21 C2.05.22 C2.05.24 C2.05.25 C2.05.26
+C2.05.24 C2.05.20 C2.05.22 C2.05.23 C2.05.25 C2.06.23 C2.06.24 C2.06.25 C2.06.27
+C2.05.25 C2.04.22 C2.05.22 C2.05.23 C2.05.24 C2.05.26 C2.05.27 C2.06.25 C2.06.27
+C2.05.26 C2.04.22 C2.04.23 C2.04.25 C2.05.23 C2.05.25 C2.05.27 C2.05.28 C2.06.27
+C2.05.27 C2.04.25 C2.05.25 C2.05.26 C2.05.28 C2.05.29 C2.05.30 C2.06.27 C2.06.28 C2.06.29
+C2.05.28 C2.04.25 C2.04.26 C2.04.27 C2.04.29 C2.05.26 C2.05.27 C2.05.29 C2.05.30 C2.05.31
+C2.05.29 C2.05.27 C2.05.28 C2.05.30 C2.06.29 C2.06.30 C2.06.31
+C2.05.30 C2.05.27 C2.05.28 C2.05.29 C2.05.31 C2.06.31
+C2.05.31 C2.04.29 C2.04.30 C2.05.28 C2.05.30
+C2.06.00 C2.05.00 C2.05.06 C2.06.05
+C2.06.01 C2.06.03 C2.06.05
+C2.06.02 C2.06.04 C2.06.06 C2.06.07
+C2.06.03 C2.06.01 C2.06.05 C2.06.06 C2.06.09
+C2.06.04 C2.06.02 C2.06.06 C2.06.07 C2.06.10 C2.07.03 C2.07.07
+C2.06.05 C2.05.06 C2.06.00 C2.06.01 C2.06.03 C2.06.06 C2.06.08 C2.06.09 C2.06.12
+C2.06.06 C2.06.02 C2.06.03 C2.06.04 C2.06.05 C2.06.07 C2.06.09 C2.06.11
+C2.06.07 C2.06.02 C2.06.04 C2.06.06 C2.06.09 C2.06.10 C2.06.11 C2.06.13 C2.07.07
+C2.06.08 C2.05.06 C2.05.09 C2.05.11 C2.06.05 C2.06.09 C2.06.12 C2.06.14
+C2.06.09 C2.06.03 C2.06.05 C2.06.06 C2.06.07 C2.06.08 C2.06.11 C2.06.12 C2.06.15
+C2.06.10 C2.06.04 C2.06.07 C2.06.11 C2.06.13 C2.07.07 C2.07.08 C2.07.11 C2.07.14
+C2.06.11 C2.06.06 C2.06.07 C2.06.09 C2.06.10 C2.06.12 C2.06.13 C2.06.15 C2.06.16
+C2.06.12 C2.05.11 C2.06.05 C2.06.08 C2.06.09 C2.06.11 C2.06.14 C2.06.15 C2.06.17
+C2.06.13 C2.06.07 C2.06.10 C2.06.11 C2.06.15 C2.06.16 C2.07.11 C2.07.14 C2.07.17
+C2.06.14 C2.05.11 C2.05.14 C2.05.16 C2.06.08 C2.06.12 C2.06.15 C2.06.17 C2.06.19
+C2.06.15 C2.06.09 C2.06.11 C2.06.12 C2.06.13 C2.06.14 C2.06.16 C2.06.17 C2.06.18
+C2.06.16 C2.06.11 C2.06.13 C2.06.15 C2.06.17 C2.06.18 C2.06.20 C2.07.14 C2.07.17
+C2.06.17 C2.05.16 C2.06.12 C2.06.14 C2.06.15 C2.06.16 C2.06.18 C2.06.19 C2.06.21
+C2.06.18 C2.06.15 C2.06.16 C2.06.17 C2.06.19 C2.06.20 C2.06.21 C2.06.22 C2.07.17
+C2.06.19 C2.05.16 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.18 C2.06.21 C2.06.23
+C2.06.20 C2.06.16 C2.06.18 C2.06.21 C2.06.22 C2.07.17 C2.07.18 C2.07.20 C2.07.22
+C2.06.21 C2.05.20 C2.06.17 C2.06.18 C2.06.19 C2.06.20 C2.06.22 C2.06.23 C2.06.24
+C2.06.22 C2.06.18 C2.06.20 C2.06.21 C2.06.23 C2.06.24 C2.07.20 C2.07.22 C2.07.24
+C2.06.23 C2.05.20 C2.05.22 C2.05.24 C2.06.19 C2.06.21 C2.06.22 C2.06.24 C2.06.25
+C2.06.24 C2.05.24 C2.06.21 C2.06.22 C2.06.23 C2.06.25 C2.06.26 C2.07.22 C2.07.24
+C2.06.25 C2.05.24 C2.05.25 C2.06.23 C2.06.24 C2.06.26 C2.06.27 C2.06.28 C2.07.24
+C2.06.26 C2.06.24 C2.06.25 C2.06.27 C2.06.28 C2.07.24 C2.07.25 C2.07.26 C2.07.27
+C2.06.27 C2.05.24 C2.05.25 C2.05.26 C2.05.27 C2.06.25 C2.06.26 C2.06.28 C2.06.29
+C2.06.28 C2.05.27 C2.06.25 C2.06.26 C2.06.27 C2.06.29 C2.06.30 C2.07.26 C2.07.27 C2.07.28
+C2.06.29 C2.05.27 C2.05.29 C2.06.27 C2.06.28 C2.06.30 C2.06.31
+C2.06.30 C2.05.29 C2.06.28 C2.06.29 C2.06.31 C2.07.27 C2.07.28
+C2.06.31 C2.05.29 C2.05.30 C2.06.29 C2.06.30 C2.07.28
+C2.07.00 C2.07.01 C2.07.05 C2.07.06
+C2.07.01 C2.07.00 C2.07.02 C2.07.05 C2.07.06
+C2.07.02 C2.07.01 C2.07.06 C2.08.01 C2.08.06
+C2.07.03 C2.06.04 C2.07.04 C2.07.07 C2.07.08
+C2.07.04 C2.07.03 C2.07.05 C2.07.07 C2.07.08 C2.07.09
+C2.07.05 C2.07.00 C2.07.01 C2.07.04 C2.07.06 C2.07.08 C2.07.09 C2.07.10
+C2.07.06 C2.07.00 C2.07.01 C2.07.02 C2.07.05 C2.07.09 C2.07.10 C2.08.01 C2.08.06 C2.08.10
+C2.07.07 C2.06.04 C2.06.07 C2.06.10 C2.07.03 C2.07.04 C2.07.08 C2.07.11
+C2.07.08 C2.06.10 C2.07.03 C2.07.04 C2.07.05 C2.07.07 C2.07.09 C2.07.11 C2.07.12
+C2.07.09 C2.07.04 C2.07.05 C2.07.06 C2.07.08 C2.07.10 C2.07.11 C2.07.12 C2.07.13
+C2.07.10 C2.07.05 C2.07.06 C2.07.09 C2.07.12 C2.07.13 C2.08.06 C2.08.10 C2.08.13
+C2.07.11 C2.06.10 C2.06.13 C2.07.07 C2.07.08 C2.07.09 C2.07.12 C2.07.14 C2.07.15
+C2.07.12 C2.07.08 C2.07.09 C2.07.10 C2.07.11 C2.07.13 C2.07.14 C2.07.15 C2.07.16
+C2.07.13 C2.07.09 C2.07.10 C2.07.12 C2.07.15 C2.07.16 C2.08.10 C2.08.13 C2.08.16
+C2.07.14 C2.06.10 C2.06.13 C2.06.16 C2.07.11 C2.07.12 C2.07.15 C2.07.17 C2.07.18
+C2.07.15 C2.07.11 C2.07.12 C2.07.13 C2.07.14 C2.07.16 C2.07.17 C2.07.18 C2.07.19
+C2.07.16 C2.07.12 C2.07.13 C2.07.15 C2.07.18 C2.07.19 C2.08.13 C2.08.16 C2.08.19
+C2.07.17 C2.06.13 C2.06.16 C2.06.18 C2.06.20 C2.07.14 C2.07.15 C2.07.18 C2.07.20
+C2.07.18 C2.06.20 C2.07.14 C2.07.15 C2.07.16 C2.07.17 C2.07.19 C2.07.20 C2.07.21
+C2.07.19 C2.07.15 C2.07.16 C2.07.18 C2.07.20 C2.07.21 C2.08.16 C2.08.19 C2.08.21
+C2.07.20 C2.06.20 C2.06.22 C2.07.17 C2.07.18 C2.07.19 C2.07.21 C2.07.22 C2.07.23
+C2.07.21 C2.07.18 C2.07.19 C2.07.20 C2.07.22 C2.07.23 C2.08.19 C2.08.21 C2.08.23
+C2.07.22 C2.06.20 C2.06.22 C2.06.24 C2.07.20 C2.07.21 C2.07.23 C2.07.24 C2.07.25
+C2.07.23 C2.07.20 C2.07.21 C2.07.22 C2.07.24 C2.07.25 C2.08.21 C2.08.23 C2.08.25
+C2.07.24 C2.06.22 C2.06.24 C2.06.25 C2.06.26 C2.07.22 C2.07.23 C2.07.25 C2.07.26
+C2.07.25 C2.06.26 C2.07.22 C2.07.23 C2.07.24 C2.07.26 C2.08.23 C2.08.25 C2.08.26
+C2.07.26 C2.06.26 C2.06.28 C2.07.24 C2.07.25 C2.07.27 C2.08.25 C2.08.26 C2.08.27
+C2.07.27 C2.06.26 C2.06.28 C2.06.30 C2.07.26 C2.07.28 C2.07.29 C2.08.26 C2.08.27 C2.08.29
+C2.07.28 C2.06.28 C2.06.30 C2.06.31 C2.07.27 C2.07.29
+C2.07.29 C2.07.27 C2.07.28 C2.08.27 C2.08.29
+C2.08.00 C2.08.02 C2.08.05 C2.08.06
+C2.08.01 C2.07.02 C2.07.06 C2.08.02 C2.08.06
+C2.08.02 C2.08.00 C2.08.01 C2.08.05 C2.08.06
+C2.08.03 C2.08.04 C2.08.07 C2.08.08 C2.09.04
+C2.08.04 C2.08.03 C2.08.05 C2.08.07 C2.08.08 C2.08.09
+C2.08.05 C2.08.00 C2.08.02 C2.08.04 C2.08.06 C2.08.08 C2.08.09 C2.08.10
+C2.08.06 C2.07.02 C2.07.06 C2.07.10 C2.08.00 C2.08.01 C2.08.02 C2.08.05 C2.08.09 C2.08.10
+C2.08.07 C2.08.03 C2.08.04 C2.08.08 C2.08.11 C2.09.04 C2.09.07 C2.09.10
+C2.08.08 C2.08.03 C2.08.04 C2.08.05 C2.08.07 C2.08.09 C2.08.11 C2.08.12 C2.09.10
+C2.08.09 C2.08.04 C2.08.05 C2.08.06 C2.08.08 C2.08.10 C2.08.11 C2.08.12 C2.08.13
+C2.08.10 C2.07.06 C2.07.10 C2.07.13 C2.08.05 C2.08.06 C2.08.09 C2.08.12 C2.08.13
+C2.08.11 C2.08.07 C2.08.08 C2.08.09 C2.08.12 C2.08.14 C2.08.15 C2.09.10 C2.09.13
+C2.08.12 C2.08.08 C2.08.09 C2.08.10 C2.08.11 C2.08.13 C2.08.14 C2.08.15 C2.08.16
+C2.08.13 C2.07.10 C2.07.13 C2.07.16 C2.08.09 C2.08.10 C2.08.12 C2.08.15 C2.08.16
+C2.08.14 C2.08.11 C2.08.12 C2.08.15 C2.08.17 C2.08.18 C2.09.10 C2.09.13 C2.09.16
+C2.08.15 C2.08.11 C2.08.12 C2.08.13 C2.08.14 C2.08.16 C2.08.17 C2.08.18 C2.08.19
+C2.08.16 C2.07.13 C2.07.16 C2.07.19 C2.08.12 C2.08.13 C2.08.15 C2.08.18 C2.08.19
+C2.08.17 C2.08.14 C2.08.15 C2.08.18 C2.08.20 C2.09.13 C2.09.16 C2.09.18 C2.09.20
+C2.08.18 C2.08.14 C2.08.15 C2.08.16 C2.08.17 C2.08.19 C2.08.20 C2.08.21 C2.09.20
+C2.08.19 C2.07.16 C2.07.19 C2.07.21 C2.08.15 C2.08.16 C2.08.18 C2.08.20 C2.08.21
+C2.08.20 C2.08.17 C2.08.18 C2.08.19 C2.08.21 C2.08.22 C2.08.23 C2.09.20 C2.09.22
+C2.08.21 C2.07.19 C2.07.21 C2.07.23 C2.08.18 C2.08.19 C2.08.20 C2.08.22 C2.08.23
+C2.08.22 C2.08.20 C2.08.21 C2.08.23 C2.08.24 C2.08.25 C2.09.20 C2.09.22 C2.09.24
+C2.08.23 C2.07.21 C2.07.23 C2.07.25 C2.08.20 C2.08.21 C2.08.22 C2.08.24 C2.08.25
+C2.08.24 C2.08.22 C2.08.23 C2.08.25 C2.08.26 C2.09.22 C2.09.24 C2.09.25 C2.09.26
+C2.08.25 C2.07.23 C2.07.25 C2.07.26 C2.08.22 C2.08.23 C2.08.24 C2.08.26 C2.09.26
+C2.08.26 C2.07.25 C2.07.26 C2.07.27 C2.08.24 C2.08.25 C2.08.27 C2.09.26 C2.09.28
+C2.08.27 C2.07.26 C2.07.27 C2.07.29 C2.08.26 C2.08.28 C2.08.29 C2.09.26 C2.09.28 C2.09.30
+C2.08.28 C2.08.27 C2.08.29 C2.09.28 C2.09.30 C2.09.31
+C2.08.29 C2.07.27 C2.07.29 C2.08.27 C2.08.28
+C2.09.00 C2.09.03 C2.09.05 C2.10.01
+C2.09.01 C2.09.05 C2.09.06
+C2.09.02 C2.09.04 C2.09.06 C2.09.07
+C2.09.03 C2.09.00 C2.09.05 C2.09.08 C2.10.01 C2.10.06
+C2.09.04 C2.08.03 C2.08.07 C2.09.02 C2.09.06 C2.09.07 C2.09.10
+C2.09.05 C2.09.00 C2.09.01 C2.09.03 C2.09.06 C2.09.08 C2.09.09 C2.09.12
+C2.09.06 C2.09.01 C2.09.02 C2.09.04 C2.09.05 C2.09.07 C2.09.09 C2.09.11
+C2.09.07 C2.08.07 C2.09.02 C2.09.04 C2.09.06 C2.09.09 C2.09.10 C2.09.11 C2.09.13
+C2.09.08 C2.09.03 C2.09.05 C2.09.09 C2.09.12 C2.09.14 C2.10.06 C2.10.09 C2.10.11
+C2.09.09 C2.09.05 C2.09.06 C2.09.07 C2.09.08 C2.09.11 C2.09.12 C2.09.15
+C2.09.10 C2.08.07 C2.08.08 C2.08.11 C2.08.14 C2.09.04 C2.09.07 C2.09.11 C2.09.13
+C2.09.11 C2.09.06 C2.09.07 C2.09.09 C2.09.10 C2.09.12 C2.09.13 C2.09.15 C2.09.16
+C2.09.12 C2.09.05 C2.09.08 C2.09.09 C2.09.11 C2.09.14 C2.09.15 C2.09.17 C2.10.11
+C2.09.13 C2.08.11 C2.08.14 C2.08.17 C2.09.07 C2.09.10 C2.09.11 C2.09.15 C2.09.16
+C2.09.14 C2.09.08 C2.09.12 C2.09.15 C2.09.17 C2.09.19 C2.10.11 C2.10.14 C2.10.16
+C2.09.15 C2.09.09 C2.09.11 C2.09.12 C2.09.13 C2.09.14 C2.09.16 C2.09.17 C2.09.18
+C2.09.16 C2.08.14 C2.08.17 C2.09.11 C2.09.13 C2.09.15 C2.09.17 C2.09.18 C2.09.20
+C2.09.17 C2.09.12 C2.09.14 C2.09.15 C2.09.16 C2.09.18 C2.09.19 C2.09.21 C2.10.16
+C2.09.18 C2.08.17 C2.09.15 C2.09.16 C2.09.17 C2.09.19 C2.09.20 C2.09.21 C2.09.22
+C2.09.19 C2.09.14 C2.09.17 C2.09.18 C2.09.21 C2.09.23 C2.10.16 C2.10.18 C2.10.20
+C2.09.20 C2.08.17 C2.08.18 C2.08.20 C2.08.22 C2.09.16 C2.09.18 C2.09.21 C2.09.22
+C2.09.21 C2.09.17 C2.09.18 C2.09.19 C2.09.20 C2.09.22 C2.09.23 C2.09.24 C2.10.20
+C2.09.22 C2.08.20 C2.08.22 C2.08.24 C2.09.18 C2.09.20 C2.09.21 C2.09.23 C2.09.24
+C2.09.23 C2.09.19 C2.09.21 C2.09.22 C2.09.24 C2.09.25 C2.10.20 C2.10.22 C2.10.24
+C2.09.24 C2.08.22 C2.08.24 C2.09.21 C2.09.22 C2.09.23 C2.09.25 C2.09.26 C2.10.24
+C2.09.25 C2.08.24 C2.09.23 C2.09.24 C2.09.26 C2.09.27 C2.09.28 C2.10.24 C2.10.25
+C2.09.26 C2.08.24 C2.08.25 C2.08.26 C2.08.27 C2.09.24 C2.09.25 C2.09.27 C2.09.28
+C2.09.27 C2.09.25 C2.09.26 C2.09.28 C2.10.24 C2.10.25 C2.10.26 C2.10.27 C2.10.29
+C2.09.28 C2.08.26 C2.08.27 C2.08.28 C2.09.25 C2.09.26 C2.09.27 C2.09.29 C2.09.30 C2.10.27 C2.10.29
+C2.09.29 C2.09.28 C2.09.30 C2.09.31 C2.10.29 C2.10.30
+C2.09.30 C2.08.27 C2.08.28 C2.09.28 C2.09.29 C2.09.31
+C2.09.31 C2.08.28 C2.09.29 C2.09.30 C2.10.29 C2.10.30
+C2.10.00 C2.10.02 C2.10.07 C2.10.08
+C2.10.01 C2.09.00 C2.09.03 C2.10.06
+C2.10.02 C2.10.00 C2.10.04 C2.10.07 C2.10.08 C2.11.01
+C2.10.03 C2.10.05 C2.10.06 C2.10.09
+C2.10.04 C2.10.02 C2.10.08 C2.11.01 C2.11.06
+C2.10.05 C2.10.03 C2.10.07 C2.10.09 C2.10.10
+C2.10.06 C2.09.03 C2.09.08 C2.10.01 C2.10.03 C2.10.09 C2.10.11
+C2.10.07 C2.10.00 C2.10.02 C2.10.05 C2.10.08 C2.10.09 C2.10.10 C2.10.12
+C2.10.08 C2.10.00 C2.10.02 C2.10.04 C2.10.07 C2.10.10 C2.10.12 C2.10.13 C2.11.01 C2.11.06
+C2.10.09 C2.09.08 C2.10.03 C2.10.05 C2.10.06 C2.10.07 C2.10.10 C2.10.11 C2.10.14
+C2.10.10 C2.10.05 C2.10.07 C2.10.08 C2.10.09 C2.10.11 C2.10.12 C2.10.14 C2.10.15
+C2.10.11 C2.09.08 C2.09.12 C2.09.14 C2.10.06 C2.10.09 C2.10.10 C2.10.14 C2.10.16
+C2.10.12 C2.10.07 C2.10.08 C2.10.10 C2.10.13 C2.10.14 C2.10.15 C2.10.17 C2.11.06
+C2.10.13 C2.10.08 C2.10.12 C2.10.15 C2.10.17 C2.11.06 C2.11.07 C2.11.11 C2.11.15
+C2.10.14 C2.09.14 C2.10.09 C2.10.10 C2.10.11 C2.10.12 C2.10.15 C2.10.16 C2.10.18
+C2.10.15 C2.10.10 C2.10.12 C2.10.13 C2.10.14 C2.10.16 C2.10.17 C2.10.18 C2.10.19
+C2.10.16 C2.09.14 C2.09.17 C2.09.19 C2.10.11 C2.10.14 C2.10.15 C2.10.18 C2.10.20
+C2.10.17 C2.10.12 C2.10.13 C2.10.15 C2.10.18 C2.10.19 C2.10.21 C2.11.11 C2.11.15
+C2.10.18 C2.09.19 C2.10.14 C2.10.15 C2.10.16 C2.10.17 C2.10.19 C2.10.20 C2.10.22
+C2.10.19 C2.10.15 C2.10.17 C2.10.18 C2.10.20 C2.10.21 C2.10.22 C2.10.23 C2.11.15
+C2.10.20 C2.09.19 C2.09.21 C2.09.23 C2.10.16 C2.10.18 C2.10.19 C2.10.22 C2.10.24
+C2.10.21 C2.10.17 C2.10.19 C2.10.22 C2.10.23 C2.11.15 C2.11.16 C2.11.19 C2.11.22
+C2.10.22 C2.09.23 C2.10.18 C2.10.19 C2.10.20 C2.10.21 C2.10.23 C2.10.24 C2.10.25
+C2.10.23 C2.10.19 C2.10.21 C2.10.22 C2.10.24 C2.10.25 C2.10.26 C2.11.19 C2.11.22
+C2.10.24 C2.09.23 C2.09.24 C2.09.25 C2.09.27 C2.10.20 C2.10.22 C2.10.23 C2.10.25
+C2.10.25 C2.09.25 C2.09.27 C2.10.22 C2.10.23 C2.10.24 C2.10.26 C2.10.27 C2.11.22
+C2.10.26 C2.09.27 C2.10.23 C2.10.25 C2.10.27 C2.10.28 C2.11.22 C2.11.23 C2.11.25
+C2.10.27 C2.09.27 C2.09.28 C2.10.25 C2.10.26 C2.10.28 C2.10.29 C2.10.30 C2.11.25
+C2.10.28 C2.10.26 C2.10.27 C2.10.30 C2.10.31 C2.11.25 C2.11.26 C2.11.27 C2.11.29
+C2.10.29 C2.09.27 C2.09.28 C2.09.29 C2.09.31 C2.10.27 C2.10.30
+C2.10.30 C2.09.29 C2.09.31 C2.10.27 C2.10.28 C2.10.29 C2.10.31
+C2.10.31 C2.10.28 C2.10.30 C2.11.29
+C2.11.00 C2.11.03 C2.11.04 C2.11.05 C2.12.00 C2.12.05
+C2.11.01 C2.10.02 C2.10.04 C2.10.08 C2.11.02 C2.11.06 C2.11.07
+C2.11.02 C2.11.01 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C2.11.03 C2.11.00 C2.11.02 C2.11.04 C2.11.07 C2.11.08 C2.11.09
+C2.11.04 C2.11.00 C2.11.03 C2.11.05 C2.11.08 C2.11.09 C2.11.10
+C2.11.05 C2.11.00 C2.11.04 C2.11.09 C2.11.10 C2.12.00 C2.12.05 C2.12.10
+C2.11.06 C2.10.04 C2.10.08 C2.10.12 C2.10.13 C2.11.01 C2.11.02 C2.11.07 C2.11.11
+C2.11.07 C2.10.13 C2.11.01 C2.11.02 C2.11.03 C2.11.06 C2.11.08 C2.11.11 C2.11.12
+C2.11.08 C2.11.02 C2.11.03 C2.11.04 C2.11.07 C2.11.09 C2.11.11 C2.11.12 C2.11.13
+C2.11.09 C2.11.03 C2.11.04 C2.11.05 C2.11.08 C2.11.10 C2.11.12 C2.11.13 C2.11.14
+C2.11.10 C2.11.04 C2.11.05 C2.11.09 C2.11.13 C2.11.14 C2.12.05 C2.12.10 C2.12.14
+C2.11.11 C2.10.13 C2.10.17 C2.11.06 C2.11.07 C2.11.08 C2.11.12 C2.11.15 C2.11.16
+C2.11.12 C2.11.07 C2.11.08 C2.11.09 C2.11.11 C2.11.13 C2.11.15 C2.11.16 C2.11.17
+C2.11.13 C2.11.08 C2.11.09 C2.11.10 C2.11.12 C2.11.14 C2.11.16 C2.11.17 C2.11.18
+C2.11.14 C2.11.09 C2.11.10 C2.11.13 C2.11.17 C2.11.18 C2.12.10 C2.12.14 C2.12.18
+C2.11.15 C2.10.13 C2.10.17 C2.10.19 C2.10.21 C2.11.11 C2.11.12 C2.11.16 C2.11.19
+C2.11.16 C2.10.21 C2.11.11 C2.11.12 C2.11.13 C2.11.15 C2.11.17 C2.11.19 C2.11.20
+C2.11.17 C2.11.12 C2.11.13 C2.11.14 C2.11.16 C2.11.18 C2.11.19 C2.11.20 C2.11.21
+C2.11.18 C2.11.13 C2.11.14 C2.11.17 C2.11.20 C2.11.21 C2.12.14 C2.12.18 C2.12.21
+C2.11.19 C2.10.21 C2.10.23 C2.11.15 C2.11.16 C2.11.17 C2.11.20 C2.11.22 C2.11.23
+C2.11.20 C2.11.16 C2.11.17 C2.11.18 C2.11.19 C2.11.21 C2.11.22 C2.11.23 C2.11.24
+C2.11.21 C2.11.17 C2.11.18 C2.11.20 C2.11.23 C2.11.24 C2.12.18 C2.12.21 C2.12.24
+C2.11.22 C2.10.21 C2.10.23 C2.10.25 C2.10.26 C2.11.19 C2.11.20 C2.11.23 C2.11.25
+C2.11.23 C2.10.26 C2.11.19 C2.11.20 C2.11.21 C2.11.22 C2.11.24 C2.11.25 C2.11.26
+C2.11.24 C2.11.20 C2.11.21 C2.11.23 C2.11.25 C2.11.26 C2.12.21 C2.12.24 C2.12.26
+C2.11.25 C2.10.26 C2.10.27 C2.10.28 C2.11.22 C2.11.23 C2.11.24 C2.11.26 C2.11.27
+C2.11.26 C2.10.28 C2.11.23 C2.11.24 C2.11.25 C2.11.27 C2.11.28 C2.12.24 C2.12.26 C2.12.28
+C2.11.27 C2.10.28 C2.11.25 C2.11.26 C2.11.28 C2.11.29 C2.11.30
+C2.11.28 C2.11.26 C2.11.27 C2.11.29 C2.11.30 C2.12.26 C2.12.28 C2.12.30
+C2.11.29 C2.10.28 C2.10.31 C2.11.27 C2.11.28 C2.11.30
+C2.11.30 C2.11.27 C2.11.28 C2.11.29 C2.12.28 C2.12.30
+C2.12.00 C2.11.00 C2.11.05 C2.12.03 C2.12.04 C2.12.05
+C2.12.01 C2.12.02 C2.12.06 C2.12.07 C2.13.02 C2.13.04 C2.13.08
+C2.12.02 C2.12.01 C2.12.03 C2.12.06 C2.12.07 C2.12.08
+C2.12.03 C2.12.00 C2.12.02 C2.12.04 C2.12.07 C2.12.08 C2.12.09
+C2.12.04 C2.12.00 C2.12.03 C2.12.05 C2.12.08 C2.12.09 C2.12.10
+C2.12.05 C2.11.00 C2.11.05 C2.11.10 C2.12.00 C2.12.04 C2.12.09 C2.12.10
+C2.12.06 C2.12.01 C2.12.02 C2.12.07 C2.12.11 C2.13.04 C2.13.08 C2.13.12 C2.13.13
+C2.12.07 C2.12.01 C2.12.02 C2.12.03 C2.12.06 C2.12.08 C2.12.11 C2.12.12 C2.13.13
+C2.12.08 C2.12.02 C2.12.03 C2.12.04 C2.12.07 C2.12.09 C2.12.11 C2.12.12 C2.12.13
+C2.12.09 C2.12.03 C2.12.04 C2.12.05 C2.12.08 C2.12.10 C2.12.12 C2.12.13 C2.12.14
+C2.12.10 C2.11.05 C2.11.10 C2.11.14 C2.12.04 C2.12.05 C2.12.09 C2.12.13 C2.12.14
+C2.12.11 C2.12.06 C2.12.07 C2.12.08 C2.12.12 C2.12.15 C2.12.16 C2.13.13 C2.13.17
+C2.12.12 C2.12.07 C2.12.08 C2.12.09 C2.12.11 C2.12.13 C2.12.15 C2.12.16 C2.12.17
+C2.12.13 C2.12.08 C2.12.09 C2.12.10 C2.12.12 C2.12.14 C2.12.16 C2.12.17 C2.12.18
+C2.12.14 C2.11.10 C2.11.14 C2.11.18 C2.12.09 C2.12.10 C2.12.13 C2.12.17 C2.12.18
+C2.12.15 C2.12.11 C2.12.12 C2.12.16 C2.12.19 C2.13.13 C2.13.17 C2.13.19 C2.13.21
+C2.12.16 C2.12.11 C2.12.12 C2.12.13 C2.12.15 C2.12.17 C2.12.19 C2.12.20 C2.13.21
+C2.12.17 C2.12.12 C2.12.13 C2.12.14 C2.12.16 C2.12.18 C2.12.19 C2.12.20 C2.12.21
+C2.12.18 C2.11.14 C2.11.18 C2.11.21 C2.12.13 C2.12.14 C2.12.17 C2.12.20 C2.12.21
+C2.12.19 C2.12.15 C2.12.16 C2.12.17 C2.12.20 C2.12.22 C2.12.23 C2.13.21 C2.13.23
+C2.12.20 C2.12.16 C2.12.17 C2.12.18 C2.12.19 C2.12.21 C2.12.22 C2.12.23 C2.12.24
+C2.12.21 C2.11.18 C2.11.21 C2.11.24 C2.12.17 C2.12.18 C2.12.20 C2.12.23 C2.12.24
+C2.12.22 C2.12.19 C2.12.20 C2.12.23 C2.12.25 C2.13.21 C2.13.23 C2.13.25 C2.13.26
+C2.12.23 C2.12.19 C2.12.20 C2.12.21 C2.12.22 C2.12.24 C2.12.25 C2.12.26 C2.13.26
+C2.12.24 C2.11.21 C2.11.24 C2.11.26 C2.12.20 C2.12.21 C2.12.23 C2.12.25 C2.12.26
+C2.12.25 C2.12.22 C2.12.23 C2.12.24 C2.12.26 C2.12.27 C2.13.26 C2.13.27 C2.13.28
+C2.12.26 C2.11.24 C2.11.26 C2.11.28 C2.12.23 C2.12.24 C2.12.25 C2.12.27 C2.12.28 C2.13.28
+C2.12.27 C2.12.25 C2.12.26 C2.12.28 C2.12.29 C2.12.30 C2.13.28
+C2.12.28 C2.11.26 C2.11.28 C2.11.30 C2.12.26 C2.12.27 C2.12.29 C2.12.30
+C2.12.29 C2.12.27 C2.12.28 C2.12.30 C2.13.28 C2.13.31
+C2.12.30 C2.11.28 C2.11.30 C2.12.27 C2.12.28 C2.12.29 C2.13.31
+C2.13.00 C2.13.03 C2.13.06 C2.14.00
+C2.13.01 C2.13.02 C2.13.07 C2.13.08
+C2.13.02 C2.12.01 C2.13.01 C2.13.04 C2.13.07 C2.13.08
+C2.13.03 C2.13.00 C2.13.05 C2.13.06 C2.13.09
+C2.13.04 C2.12.01 C2.12.06 C2.13.02 C2.13.08
+C2.13.05 C2.13.03 C2.13.07 C2.13.09 C2.13.10
+C2.13.06 C2.13.00 C2.13.03 C2.13.09 C2.13.11 C2.14.00 C2.14.05 C2.14.08
+C2.13.07 C2.13.01 C2.13.02 C2.13.05 C2.13.08 C2.13.09 C2.13.10 C2.13.12
+C2.13.08 C2.12.01 C2.12.06 C2.13.01 C2.13.02 C2.13.04 C2.13.07 C2.13.10 C2.13.12 C2.13.13
+C2.13.09 C2.13.03 C2.13.05 C2.13.06 C2.13.07 C2.13.10 C2.13.11 C2.13.14 C2.14.08
+C2.13.10 C2.13.05 C2.13.07 C2.13.08 C2.13.09 C2.13.11 C2.13.12 C2.13.14 C2.13.15
+C2.13.11 C2.13.06 C2.13.09 C2.13.10 C2.13.14 C2.13.16 C2.14.08 C2.14.12 C2.14.14
+C2.13.12 C2.12.06 C2.13.07 C2.13.08 C2.13.10 C2.13.13 C2.13.14 C2.13.15 C2.13.17
+C2.13.13 C2.12.06 C2.12.07 C2.12.11 C2.12.15 C2.13.08 C2.13.12 C2.13.15 C2.13.17
+C2.13.14 C2.13.09 C2.13.10 C2.13.11 C2.13.12 C2.13.15 C2.13.16 C2.13.18 C2.14.14
+C2.13.15 C2.13.10 C2.13.12 C2.13.13 C2.13.14 C2.13.16 C2.13.17 C2.13.18 C2.13.19
+C2.13.16 C2.13.11 C2.13.14 C2.13.15 C2.13.18 C2.13.20 C2.14.14 C2.14.17 C2.14.19
+C2.13.17 C2.12.11 C2.12.15 C2.13.12 C2.13.13 C2.13.15 C2.13.18 C2.13.19 C2.13.21
+C2.13.18 C2.13.14 C2.13.15 C2.13.16 C2.13.17 C2.13.19 C2.13.20 C2.13.22 C2.14.19
+C2.13.19 C2.12.15 C2.13.15 C2.13.17 C2.13.18 C2.13.20 C2.13.21 C2.13.22 C2.13.23
+C2.13.20 C2.13.16 C2.13.18 C2.13.19 C2.13.22 C2.13.24 C2.14.19 C2.14.21 C2.14.23
+C2.13.21 C2.12.15 C2.12.16 C2.12.19 C2.12.22 C2.13.17 C2.13.19 C2.13.22 C2.13.23
+C2.13.22 C2.13.18 C2.13.19 C2.13.20 C2.13.21 C2.13.23 C2.13.24 C2.13.25 C2.14.23
+C2.13.23 C2.12.19 C2.12.22 C2.13.19 C2.13.21 C2.13.22 C2.13.24 C2.13.25 C2.13.26
+C2.13.24 C2.13.20 C2.13.22 C2.13.23 C2.13.25 C2.14.23 C2.14.24 C2.14.25 C2.14.27
+C2.13.25 C2.12.22 C2.13.22 C2.13.23 C2.13.24 C2.13.26 C2.13.27 C2.14.25 C2.14.27
+C2.13.26 C2.12.22 C2.12.23 C2.12.25 C2.13.23 C2.13.25 C2.13.27 C2.13.28 C2.14.27
+C2.13.27 C2.12.25 C2.13.25 C2.13.26 C2.13.28 C2.13.29 C2.13.30 C2.14.27 C2.14.28 C2.14.29
+C2.13.28 C2.12.25 C2.12.26 C2.12.27 C2.12.29 C2.13.26 C2.13.27 C2.13.29 C2.13.30 C2.13.31
+C2.13.29 C2.13.27 C2.13.28 C2.13.30 C2.14.29 C2.14.30 C2.14.31
+C2.13.30 C2.13.27 C2.13.28 C2.13.29 C2.13.31 C2.14.31
+C2.13.31 C2.12.29 C2.12.30 C2.13.28 C2.13.30
+C2.14.00 C2.13.00 C2.13.06 C2.14.05
+C2.14.01 C2.14.03 C2.14.05
+C2.14.02 C2.14.04 C2.14.06 C2.14.07
+C2.14.03 C2.14.01 C2.14.05 C2.14.06 C2.14.09
+C2.14.04 C2.14.02 C2.14.06 C2.14.07 C2.14.10 C2.15.03 C2.15.07
+C2.14.05 C2.13.06 C2.14.00 C2.14.01 C2.14.03 C2.14.06 C2.14.08 C2.14.09 C2.14.12
+C2.14.06 C2.14.02 C2.14.03 C2.14.04 C2.14.05 C2.14.07 C2.14.09 C2.14.11
+C2.14.07 C2.14.02 C2.14.04 C2.14.06 C2.14.09 C2.14.10 C2.14.11 C2.14.13 C2.15.07
+C2.14.08 C2.13.06 C2.13.09 C2.13.11 C2.14.05 C2.14.09 C2.14.12 C2.14.14
+C2.14.09 C2.14.03 C2.14.05 C2.14.06 C2.14.07 C2.14.08 C2.14.11 C2.14.12 C2.14.15
+C2.14.10 C2.14.04 C2.14.07 C2.14.11 C2.14.13 C2.15.07 C2.15.08 C2.15.11 C2.15.14
+C2.14.11 C2.14.06 C2.14.07 C2.14.09 C2.14.10 C2.14.12 C2.14.13 C2.14.15 C2.14.16
+C2.14.12 C2.13.11 C2.14.05 C2.14.08 C2.14.09 C2.14.11 C2.14.14 C2.14.15 C2.14.17
+C2.14.13 C2.14.07 C2.14.10 C2.14.11 C2.14.15 C2.14.16 C2.15.11 C2.15.14 C2.15.17
+C2.14.14 C2.13.11 C2.13.14 C2.13.16 C2.14.08 C2.14.12 C2.14.15 C2.14.17 C2.14.19
+C2.14.15 C2.14.09 C2.14.11 C2.14.12 C2.14.13 C2.14.14 C2.14.16 C2.14.17 C2.14.18
+C2.14.16 C2.14.11 C2.14.13 C2.14.15 C2.14.17 C2.14.18 C2.14.20 C2.15.14 C2.15.17
+C2.14.17 C2.13.16 C2.14.12 C2.14.14 C2.14.15 C2.14.16 C2.14.18 C2.14.19 C2.14.21
+C2.14.18 C2.14.15 C2.14.16 C2.14.17 C2.14.19 C2.14.20 C2.14.21 C2.14.22 C2.15.17
+C2.14.19 C2.13.16 C2.13.18 C2.13.20 C2.14.14 C2.14.17 C2.14.18 C2.14.21 C2.14.23
+C2.14.20 C2.14.16 C2.14.18 C2.14.21 C2.14.22 C2.15.17 C2.15.18 C2.15.20 C2.15.22
+C2.14.21 C2.13.20 C2.14.17 C2.14.18 C2.14.19 C2.14.20 C2.14.22 C2.14.23 C2.14.24
+C2.14.22 C2.14.18 C2.14.20 C2.14.21 C2.14.23 C2.14.24 C2.15.20 C2.15.22 C2.15.24
+C2.14.23 C2.13.20 C2.13.22 C2.13.24 C2.14.19 C2.14.21 C2.14.22 C2.14.24 C2.14.25
+C2.14.24 C2.13.24 C2.14.21 C2.14.22 C2.14.23 C2.14.25 C2.14.26 C2.15.22 C2.15.24
+C2.14.25 C2.13.24 C2.13.25 C2.14.23 C2.14.24 C2.14.26 C2.14.27 C2.14.28 C2.15.24
+C2.14.26 C2.14.24 C2.14.25 C2.14.27 C2.14.28 C2.15.24 C2.15.25 C2.15.26 C2.15.27
+C2.14.27 C2.13.24 C2.13.25 C2.13.26 C2.13.27 C2.14.25 C2.14.26 C2.14.28 C2.14.29
+C2.14.28 C2.13.27 C2.14.25 C2.14.26 C2.14.27 C2.14.29 C2.14.30 C2.15.26 C2.15.27 C2.15.28
+C2.14.29 C2.13.27 C2.13.29 C2.14.27 C2.14.28 C2.14.30 C2.14.31
+C2.14.30 C2.13.29 C2.14.28 C2.14.29 C2.14.31 C2.15.27 C2.15.28
+C2.14.31 C2.13.29 C2.13.30 C2.14.29 C2.14.30 C2.15.28
+C2.15.00 C2.00.01 C2.00.06 C2.15.01 C2.15.06
+C2.15.01 C2.15.00 C2.15.02 C2.15.05 C2.15.06
+C2.15.02 C2.15.01 C2.15.05 C2.15.06
+C2.15.03 C2.14.04 C2.15.04 C2.15.07 C2.15.08
+C2.15.04 C2.15.03 C2.15.05 C2.15.07 C2.15.08 C2.15.09
+C2.15.05 C2.15.01 C2.15.02 C2.15.04 C2.15.06 C2.15.08 C2.15.09 C2.15.10
+C2.15.06 C2.00.01 C2.00.06 C2.00.10 C2.15.00 C2.15.01 C2.15.02 C2.15.05 C2.15.09 C2.15.10
+C2.15.07 C2.14.04 C2.14.07 C2.14.10 C2.15.03 C2.15.04 C2.15.08 C2.15.11
+C2.15.08 C2.14.10 C2.15.03 C2.15.04 C2.15.05 C2.15.07 C2.15.09 C2.15.11 C2.15.12
+C2.15.09 C2.15.04 C2.15.05 C2.15.06 C2.15.08 C2.15.10 C2.15.11 C2.15.12 C2.15.13
+C2.15.10 C2.00.06 C2.00.10 C2.00.13 C2.15.05 C2.15.06 C2.15.09 C2.15.12 C2.15.13
+C2.15.11 C2.14.10 C2.14.13 C2.15.07 C2.15.08 C2.15.09 C2.15.12 C2.15.14 C2.15.15
+C2.15.12 C2.15.08 C2.15.09 C2.15.10 C2.15.11 C2.15.13 C2.15.14 C2.15.15 C2.15.16
+C2.15.13 C2.00.10 C2.00.13 C2.00.16 C2.15.09 C2.15.10 C2.15.12 C2.15.15 C2.15.16
+C2.15.14 C2.14.10 C2.14.13 C2.14.16 C2.15.11 C2.15.12 C2.15.15 C2.15.17 C2.15.18
+C2.15.15 C2.15.11 C2.15.12 C2.15.13 C2.15.14 C2.15.16 C2.15.17 C2.15.18 C2.15.19
+C2.15.16 C2.00.13 C2.00.16 C2.00.19 C2.15.12 C2.15.13 C2.15.15 C2.15.18 C2.15.19
+C2.15.17 C2.14.13 C2.14.16 C2.14.18 C2.14.20 C2.15.14 C2.15.15 C2.15.18 C2.15.20
+C2.15.18 C2.14.20 C2.15.14 C2.15.15 C2.15.16 C2.15.17 C2.15.19 C2.15.20 C2.15.21
+C2.15.19 C2.00.16 C2.00.19 C2.00.21 C2.15.15 C2.15.16 C2.15.18 C2.15.20 C2.15.21
+C2.15.20 C2.14.20 C2.14.22 C2.15.17 C2.15.18 C2.15.19 C2.15.21 C2.15.22 C2.15.23
+C2.15.21 C2.00.19 C2.00.21 C2.00.23 C2.15.18 C2.15.19 C2.15.20 C2.15.22 C2.15.23
+C2.15.22 C2.14.20 C2.14.22 C2.14.24 C2.15.20 C2.15.21 C2.15.23 C2.15.24 C2.15.25
+C2.15.23 C2.00.21 C2.00.23 C2.00.25 C2.15.20 C2.15.21 C2.15.22 C2.15.24 C2.15.25
+C2.15.24 C2.14.22 C2.14.24 C2.14.25 C2.14.26 C2.15.22 C2.15.23 C2.15.25 C2.15.26
+C2.15.25 C2.00.23 C2.00.25 C2.00.26 C2.14.26 C2.15.22 C2.15.23 C2.15.24 C2.15.26
+C2.15.26 C2.00.25 C2.00.26 C2.00.27 C2.14.26 C2.14.28 C2.15.24 C2.15.25 C2.15.27
+C2.15.27 C2.00.26 C2.00.27 C2.00.29 C2.14.26 C2.14.28 C2.14.30 C2.15.26 C2.15.28 C2.15.29
+C2.15.28 C2.14.28 C2.14.30 C2.14.31 C2.15.27 C2.15.29
+C2.15.29 C2.00.27 C2.00.29 C2.15.27 C2.15.28
+C3.00.00 C3.00.02 C3.00.03 C3.15.00 C3.15.03
+C3.00.01 C3.00.02 C3.00.04 C3.00.05 C3.01.00 C3.01.04
+C3.00.02 C3.00.00 C3.00.01 C3.00.03 C3.00.04 C3.00.05 C3.00.06
+C3.00.03 C3.00.00 C3.00.02 C3.00.05 C3.00.06 C3.15.00 C3.15.03 C3.15.06
+C3.00.04 C3.00.01 C3.00.02 C3.00.05 C3.00.07 C3.00.08 C3.01.04 C3.01.06
+C3.00.05 C3.00.01 C3.00.02 C3.00.03 C3.00.04 C3.00.06 C3.00.07 C3.00.08 C3.00.09
+C3.00.06 C3.00.02 C3.00.03 C3.00.05 C3.00.08 C3.00.09 C3.15.03 C3.15.06 C3.15.09
+C3.00.07 C3.00.04 C3.00.05 C3.00.08 C3.00.10 C3.01.04 C3.01.06 C3.01.08 C3.01.09
+C3.00.08 C3.00.04 C3.00.05 C3.00.06 C3.00.07 C3.00.09 C3.00.10 C3.00.11 C3.01.09
+C3.00.09 C3.00.05 C3.00.06 C3.00.08 C3.00.10 C3.00.11 C3.15.06 C3.15.09 C3.15.11
+C3.00.10 C3.00.07 C3.00.08 C3.00.09 C3.00.11 C3.00.12 C3.00.13 C3.01.09 C3.01.11
+C3.00.11 C3.00.08 C3.00.09 C3.00.10 C3.00.12 C3.00.13 C3.15.09 C3.15.11 C3.15.13
+C3.00.12 C3.00.10 C3.00.11 C3.00.13 C3.00.14 C3.01.09 C3.01.11 C3.01.12 C3.01.13
+C3.00.13 C3.00.10 C3.00.11 C3.00.12 C3.00.14 C3.01.13 C3.15.11 C3.15.13 C3.15.14
+C3.00.14 C3.00.12 C3.00.13 C3.00.15 C3.01.13 C3.01.15 C3.15.13 C3.15.14 C3.15.15
+C3.00.15 C3.00.14 C3.01.15 C3.15.14 C3.15.15
+C3.01.00 C3.00.01 C3.01.02 C3.01.04
+C3.01.01 C3.01.02 C3.01.03 C3.01.05 C3.02.00
+C3.01.02 C3.01.00 C3.01.01 C3.01.04 C3.01.05 C3.01.06
+C3.01.03 C3.01.01 C3.01.05 C3.01.07 C3.02.00 C3.02.03 C3.02.05
+C3.01.04 C3.00.01 C3.00.04 C3.00.07 C3.01.00 C3.01.02 C3.01.05 C3.01.06
+C3.01.05 C3.01.01 C3.01.02 C3.01.03 C3.01.04 C3.01.06 C3.01.07 C3.01.08 C3.02.05
+C3.01.06 C3.00.04 C3.00.07 C3.01.02 C3.01.04 C3.01.05 C3.01.07 C3.01.08 C3.01.09
+C3.01.07 C3.01.03 C3.01.05 C3.01.06 C3.01.08 C3.01.10 C3.02.05 C3.02.07 C3.02.09
+C3.01.08 C3.00.07 C3.01.05 C3.01.06 C3.01.07 C3.01.09 C3.01.10 C3.01.11 C3.02.09
+C3.01.09 C3.00.07 C3.00.08 C3.00.10 C3.00.12 C3.01.06 C3.01.08 C3.01.10 C3.01.11
+C3.01.10 C3.01.07 C3.01.08 C3.01.09 C3.01.11 C3.01.12 C3.02.09 C3.02.10 C3.02.11
+C3.01.11 C3.00.10 C3.00.12 C3.01.08 C3.01.09 C3.01.10 C3.01.12 C3.01.13 C3.02.11
+C3.01.12 C3.00.12 C3.01.10 C3.01.11 C3.01.13 C3.01.14 C3.02.11 C3.02.12 C3.02.13
+C3.01.13 C3.00.12 C3.00.13 C3.00.14 C3.01.11 C3.01.12 C3.01.14 C3.01.15 C3.02.13
+C3.01.14 C3.01.12 C3.01.13 C3.01.15 C3.02.13 C3.02.14
+C3.01.15 C3.00.14 C3.00.15 C3.01.13 C3.01.14 C3.02.14
+C3.02.00 C3.01.01 C3.01.03 C3.02.02 C3.02.03 C3.02.05
+C3.02.01 C3.02.02 C3.03.02 C3.03.05
+C3.02.02 C3.02.00 C3.02.01 C3.02.03 C3.02.04 C3.02.06 C3.03.05
+C3.02.03 C3.01.03 C3.02.00 C3.02.02 C3.02.04 C3.02.05 C3.02.07
+C3.02.04 C3.02.02 C3.02.03 C3.02.05 C3.02.06 C3.02.07 C3.02.08 C3.03.05
+C3.02.05 C3.01.03 C3.01.05 C3.01.07 C3.02.00 C3.02.03 C3.02.04 C3.02.07 C3.02.09
+C3.02.06 C3.02.02 C3.02.04 C3.02.07 C3.02.08 C3.03.05 C3.03.06 C3.03.08 C3.03.10
+C3.02.07 C3.01.07 C3.02.03 C3.02.04 C3.02.05 C3.02.06 C3.02.08 C3.02.09 C3.02.10
+C3.02.08 C3.02.04 C3.02.06 C3.02.07 C3.02.09 C3.02.10 C3.03.08 C3.03.10 C3.03.12
+C3.02.09 C3.01.07 C3.01.08 C3.01.10 C3.02.05 C3.02.07 C3.02.08 C3.02.10 C3.02.11
+C3.02.10 C3.01.10 C3.02.07 C3.02.08 C3.02.09 C3.02.11 C3.02.12 C3.03.10 C3.03.12
+C3.02.11 C3.01.10 C3.01.11 C3.01.12 C3.02.09 C3.02.10 C3.02.12 C3.02.13 C3.03.12
+C3.02.12 C3.01.12 C3.02.10 C3.02.11 C3.02.13 C3.03.12 C3.03.13 C3.03.14 C3.03.15
+C3.02.13 C3.01.12 C3.01.13 C3.01.14 C3.02.11 C3.02.12 C3.02.14 C3.02.15 C3.03.14 C3.03.15
+C3.02.14 C3.01.14 C3.01.15 C3.02.13 C3.02.15
+C3.02.15 C3.02.13 C3.02.14 C3.03.15
+C3.03.00 C3.03.01 C3.03.03 C3.03.04
+C3.03.01 C3.03.00 C3.03.04 C3.04.01 C3.04.04
+C3.03.02 C3.02.01 C3.03.03 C3.03.05 C3.03.06
+C3.03.03 C3.03.00 C3.03.02 C3.03.04 C3.03.05 C3.03.06 C3.03.07
+C3.03.04 C3.03.00 C3.03.01 C3.03.03 C3.03.06 C3.03.07 C3.04.01 C3.04.04 C3.04.07
+C3.03.05 C3.02.01 C3.02.02 C3.02.04 C3.02.06 C3.03.02 C3.03.03 C3.03.06 C3.03.08
+C3.03.06 C3.02.06 C3.03.02 C3.03.03 C3.03.04 C3.03.05 C3.03.07 C3.03.08 C3.03.09
+C3.03.07 C3.03.03 C3.03.04 C3.03.06 C3.03.08 C3.03.09 C3.04.04 C3.04.07 C3.04.09
+C3.03.08 C3.02.06 C3.02.08 C3.03.05 C3.03.06 C3.03.07 C3.03.09 C3.03.10 C3.03.11
+C3.03.09 C3.03.06 C3.03.07 C3.03.08 C3.03.10 C3.03.11 C3.04.07 C3.04.09 C3.04.11
+C3.03.10 C3.02.06 C3.02.08 C3.02.10 C3.03.08 C3.03.09 C3.03.11 C3.03.12 C3.03.13
+C3.03.11 C3.03.08 C3.03.09 C3.03.10 C3.03.12 C3.03.13 C3.04.09 C3.04.11 C3.04.13
+C3.03.12 C3.02.08 C3.02.10 C3.02.11 C3.02.12 C3.03.10 C3.03.11 C3.03.13 C3.03.14
+C3.03.13 C3.02.12 C3.03.10 C3.03.11 C3.03.12 C3.03.14 C3.04.11 C3.04.13 C3.04.14
+C3.03.14 C3.02.12 C3.02.13 C3.03.12 C3.03.13 C3.03.15 C3.04.13 C3.04.14 C3.04.15
+C3.03.15 C3.02.12 C3.02.13 C3.02.15 C3.03.14 C3.04.14 C3.04.15
+C3.04.00 C3.04.01 C3.04.03 C3.04.04
+C3.04.01 C3.03.01 C3.03.04 C3.04.00 C3.04.04
+C3.04.02 C3.04.03 C3.04.05 C3.04.06 C3.05.02
+C3.04.03 C3.04.00 C3.04.02 C3.04.04 C3.04.05 C3.04.06 C3.04.07
+C3.04.04 C3.03.01 C3.03.04 C3.03.07 C3.04.00 C3.04.01 C3.04.03 C3.04.06 C3.04.07
+C3.04.05 C3.04.02 C3.04.03 C3.04.06 C3.04.08 C3.05.02 C3.05.04 C3.05.06
+C3.04.06 C3.04.02 C3.04.03 C3.04.04 C3.04.05 C3.04.07 C3.04.08 C3.04.09 C3.05.06
+C3.04.07 C3.03.04 C3.03.07 C3.03.09 C3.04.03 C3.04.04 C3.04.06 C3.04.08 C3.04.09
+C3.04.08 C3.04.05 C3.04.06 C3.04.07 C3.04.09 C3.04.10 C3.04.11 C3.05.06 C3.05.08
+C3.04.09 C3.03.07 C3.03.09 C3.03.11 C3.04.06 C3.04.07 C3.04.08 C3.04.10 C3.04.11
+C3.04.10 C3.04.08 C3.04.09 C3.04.11 C3.04.12 C3.04.13 C3.05.06 C3.05.08 C3.05.10
+C3.04.11 C3.03.09 C3.03.11 C3.03.13 C3.04.08 C3.04.09 C3.04.10 C3.04.12 C3.04.13
+C3.04.12 C3.04.10 C3.04.11 C3.04.13 C3.04.14 C3.05.08 C3.05.10 C3.05.11 C3.05.12
+C3.04.13 C3.03.11 C3.03.13 C3.03.14 C3.04.10 C3.04.11 C3.04.12 C3.04.14 C3.05.12
+C3.04.14 C3.03.13 C3.03.14 C3.03.15 C3.04.12 C3.04.13 C3.04.15 C3.05.12 C3.05.13
+C3.04.15 C3.03.14 C3.03.15 C3.04.14 C3.05.12 C3.05.13 C3.05.14
+C3.05.00 C3.05.01 C3.05.03 C3.05.05 C3.06.00 C3.06.02
+C3.05.01 C3.05.00 C3.05.02 C3.05.03 C3.05.04
+C3.05.02 C3.04.02 C3.04.05 C3.05.01 C3.05.03 C3.05.04 C3.05.06
+C3.05.03 C3.05.00 C3.05.01 C3.05.02 C3.05.04 C3.05.05 C3.05.07 C3.06.02
+C3.05.04 C3.04.05 C3.05.01 C3.05.02 C3.05.03 C3.05.05 C3.05.06 C3.05.07 C3.05.08
+C3.05.05 C3.05.00 C3.05.03 C3.05.04 C3.05.07 C3.05.09 C3.06.02 C3.06.04 C3.06.06
+C3.05.06 C3.04.05 C3.04.06 C3.04.08 C3.04.10 C3.05.02 C3.05.04 C3.05.07 C3.05.08
+C3.05.07 C3.05.03 C3.05.04 C3.05.05 C3.05.06 C3.05.08 C3.05.09 C3.05.10 C3.06.06
+C3.05.08 C3.04.08 C3.04.10 C3.04.12 C3.05.04 C3.05.06 C3.05.07 C3.05.09 C3.05.10
+C3.05.09 C3.05.05 C3.05.07 C3.05.08 C3.05.10 C3.05.11 C3.06.06 C3.06.07 C3.06.09
+C3.05.10 C3.04.10 C3.04.12 C3.05.07 C3.05.08 C3.05.09 C3.05.11 C3.05.12 C3.06.09
+C3.05.11 C3.04.12 C3.05.09 C3.05.10 C3.05.12 C3.05.13 C3.06.09 C3.06.10 C3.06.11
+C3.05.12 C3.04.12 C3.04.13 C3.04.14 C3.04.15 C3.05.10 C3.05.11 C3.05.13 C3.06.11
+C3.05.13 C3.04.14 C3.04.15 C3.05.11 C3.05.12 C3.05.14 C3.06.11 C3.06.12 C3.06.13
+C3.05.14 C3.04.15 C3.05.13 C3.06.13 C3.06.15
+C3.06.00 C3.05.00 C3.06.01 C3.06.02 C3.06.04
+C3.06.01 C3.06.00 C3.06.03 C3.06.04 C3.06.05 C3.07.01
+C3.06.02 C3.05.00 C3.05.03 C3.05.05 C3.06.00 C3.06.04 C3.06.06
+C3.06.03 C3.06.01 C3.06.04 C3.06.05 C3.07.01 C3.07.04 C3.07.07
+C3.06.04 C3.05.05 C3.06.00 C3.06.01 C3.06.02 C3.06.03 C3.06.05 C3.06.06 C3.06.07
+C3.06.05 C3.06.01 C3.06.03 C3.06.04 C3.06.06 C3.06.07 C3.06.08 C3.07.04 C3.07.07
+C3.06.06 C3.05.05 C3.05.07 C3.05.09 C3.06.02 C3.06.04 C3.06.05 C3.06.07 C3.06.09
+C3.06.07 C3.05.09 C3.06.04 C3.06.05 C3.06.06 C3.06.08 C3.06.09 C3.06.10 C3.07.07
+C3.06.08 C3.06.05 C3.06.07 C3.06.09 C3.06.10 C3.07.07 C3.07.08 C3.07.10 C3.07.12
+C3.06.09 C3.05.09 C3.05.10 C3.05.11 C3.06.06 C3.06.07 C3.06.08 C3.06.10 C3.06.11
+C3.06.10 C3.05.11 C3.06.07 C3.06.08 C3.06.09 C3.06.11 C3.06.12 C3.07.10 C3.07.12
+C3.06.11 C3.05.11 C3.05.12 C3.05.13 C3.06.09 C3.06.10 C3.06.12 C3.06.13 C3.07.12
+C3.06.12 C3.05.13 C3.06.10 C3.06.11 C3.06.13 C3.06.14 C3.07.12 C3.07.13 C3.07.14
+C3.06.13 C3.05.13 C3.05.14 C3.06.11 C3.06.12 C3.06.14 C3.06.15
+C3.06.14 C3.06.12 C3.06.13 C3.06.15 C3.07.14 C3.07.15
+C3.06.15 C3.05.14 C3.06.13 C3.06.14
+C3.07.00 C3.07.02 C3.07.03 C3.08.00 C3.08.03
+C3.07.01 C3.06.01 C3.06.03 C3.07.02 C3.07.04 C3.07.05
+C3.07.02 C3.07.00 C3.07.01 C3.07.03 C3.07.04 C3.07.05 C3.07.06
+C3.07.03 C3.07.00 C3.07.02 C3.07.05 C3.07.06 C3.08.00 C3.08.03 C3.08.06
+C3.07.04 C3.06.03 C3.06.05 C3.07.01 C3.07.02 C3.07.05 C3.07.07 C3.07.08
+C3.07.05 C3.07.01 C3.07.02 C3.07.03 C3.07.04 C3.07.06 C3.07.07 C3.07.08 C3.07.09
+C3.07.06 C3.07.02 C3.07.03 C3.07.05 C3.07.08 C3.07.09 C3.08.03 C3.08.06 C3.08.09
+C3.07.07 C3.06.03 C3.06.05 C3.06.07 C3.06.08 C3.07.04 C3.07.05 C3.07.08 C3.07.10
+C3.07.08 C3.06.08 C3.07.04 C3.07.05 C3.07.06 C3.07.07 C3.07.09 C3.07.10 C3.07.11
+C3.07.09 C3.07.05 C3.07.06 C3.07.08 C3.07.10 C3.07.11 C3.08.06 C3.08.09 C3.08.11
+C3.07.10 C3.06.08 C3.06.10 C3.07.07 C3.07.08 C3.07.09 C3.07.11 C3.07.12 C3.07.13
+C3.07.11 C3.07.08 C3.07.09 C3.07.10 C3.07.12 C3.07.13 C3.08.09 C3.08.11 C3.08.13
+C3.07.12 C3.06.08 C3.06.10 C3.06.11 C3.06.12 C3.07.10 C3.07.11 C3.07.13 C3.07.14
+C3.07.13 C3.06.12 C3.07.10 C3.07.11 C3.07.12 C3.07.14 C3.08.11 C3.08.13 C3.08.14
+C3.07.14 C3.06.12 C3.06.14 C3.07.12 C3.07.13 C3.07.15 C3.08.13 C3.08.14 C3.08.15
+C3.07.15 C3.06.14 C3.07.14 C3.08.14 C3.08.15
+C3.08.00 C3.07.00 C3.07.03 C3.08.02 C3.08.03
+C3.08.01 C3.08.02 C3.08.04 C3.08.05 C3.09.00 C3.09.04
+C3.08.02 C3.08.00 C3.08.01 C3.08.03 C3.08.04 C3.08.05 C3.08.06
+C3.08.03 C3.07.00 C3.07.03 C3.07.06 C3.08.00 C3.08.02 C3.08.05 C3.08.06
+C3.08.04 C3.08.01 C3.08.02 C3.08.05 C3.08.07 C3.08.08 C3.09.04 C3.09.06
+C3.08.05 C3.08.01 C3.08.02 C3.08.03 C3.08.04 C3.08.06 C3.08.07 C3.08.08 C3.08.09
+C3.08.06 C3.07.03 C3.07.06 C3.07.09 C3.08.02 C3.08.03 C3.08.05 C3.08.08 C3.08.09
+C3.08.07 C3.08.04 C3.08.05 C3.08.08 C3.08.10 C3.09.04 C3.09.06 C3.09.08 C3.09.09
+C3.08.08 C3.08.04 C3.08.05 C3.08.06 C3.08.07 C3.08.09 C3.08.10 C3.08.11 C3.09.09
+C3.08.09 C3.07.06 C3.07.09 C3.07.11 C3.08.05 C3.08.06 C3.08.08 C3.08.10 C3.08.11
+C3.08.10 C3.08.07 C3.08.08 C3.08.09 C3.08.11 C3.08.12 C3.08.13 C3.09.09 C3.09.11
+C3.08.11 C3.07.09 C3.07.11 C3.07.13 C3.08.08 C3.08.09 C3.08.10 C3.08.12 C3.08.13
+C3.08.12 C3.08.10 C3.08.11 C3.08.13 C3.08.14 C3.09.09 C3.09.11 C3.09.12 C3.09.13
+C3.08.13 C3.07.11 C3.07.13 C3.07.14 C3.08.10 C3.08.11 C3.08.12 C3.08.14 C3.09.13
+C3.08.14 C3.07.13 C3.07.14 C3.07.15 C3.08.12 C3.08.13 C3.08.15 C3.09.13 C3.09.15
+C3.08.15 C3.07.14 C3.07.15 C3.08.14 C3.09.15
+C3.09.00 C3.08.01 C3.09.02 C3.09.04
+C3.09.01 C3.09.02 C3.09.03 C3.09.05 C3.10.00
+C3.09.02 C3.09.00 C3.09.01 C3.09.04 C3.09.05 C3.09.06
+C3.09.03 C3.09.01 C3.09.05 C3.09.07 C3.10.00 C3.10.03 C3.10.05
+C3.09.04 C3.08.01 C3.08.04 C3.08.07 C3.09.00 C3.09.02 C3.09.05 C3.09.06
+C3.09.05 C3.09.01 C3.09.02 C3.09.03 C3.09.04 C3.09.06 C3.09.07 C3.09.08 C3.10.05
+C3.09.06 C3.08.04 C3.08.07 C3.09.02 C3.09.04 C3.09.05 C3.09.07 C3.09.08 C3.09.09
+C3.09.07 C3.09.03 C3.09.05 C3.09.06 C3.09.08 C3.09.10 C3.10.05 C3.10.07 C3.10.09
+C3.09.08 C3.08.07 C3.09.05 C3.09.06 C3.09.07 C3.09.09 C3.09.10 C3.09.11 C3.10.09
+C3.09.09 C3.08.07 C3.08.08 C3.08.10 C3.08.12 C3.09.06 C3.09.08 C3.09.10 C3.09.11
+C3.09.10 C3.09.07 C3.09.08 C3.09.09 C3.09.11 C3.09.12 C3.10.09 C3.10.10 C3.10.11
+C3.09.11 C3.08.10 C3.08.12 C3.09.08 C3.09.09 C3.09.10 C3.09.12 C3.09.13 C3.10.11
+C3.09.12 C3.08.12 C3.09.10 C3.09.11 C3.09.13 C3.09.14 C3.10.11 C3.10.12 C3.10.13
+C3.09.13 C3.08.12 C3.08.13 C3.08.14 C3.09.11 C3.09.12 C3.09.14 C3.09.15 C3.10.13
+C3.09.14 C3.09.12 C3.09.13 C3.09.15 C3.10.13 C3.10.14
+C3.09.15 C3.08.14 C3.08.15 C3.09.13 C3.09.14 C3.10.14
+C3.10.00 C3.09.01 C3.09.03 C3.10.02 C3.10.03 C3.10.05
+C3.10.01 C3.10.02 C3.11.02 C3.11.05
+C3.10.02 C3.10.00 C3.10.01 C3.10.03 C3.10.04 C3.10.06 C3.11.05
+C3.10.03 C3.09.03 C3.10.00 C3.10.02 C3.10.04 C3.10.05 C3.10.07
+C3.10.04 C3.10.02 C3.10.03 C3.10.05 C3.10.06 C3.10.07 C3.10.08 C3.11.05
+C3.10.05 C3.09.03 C3.09.05 C3.09.07 C3.10.00 C3.10.03 C3.10.04 C3.10.07 C3.10.09
+C3.10.06 C3.10.02 C3.10.04 C3.10.07 C3.10.08 C3.11.05 C3.11.06 C3.11.08 C3.11.10
+C3.10.07 C3.09.07 C3.10.03 C3.10.04 C3.10.05 C3.10.06 C3.10.08 C3.10.09 C3.10.10
+C3.10.08 C3.10.04 C3.10.06 C3.10.07 C3.10.09 C3.10.10 C3.11.08 C3.11.10 C3.11.12
+C3.10.09 C3.09.07 C3.09.08 C3.09.10 C3.10.05 C3.10.07 C3.10.08 C3.10.10 C3.10.11
+C3.10.10 C3.09.10 C3.10.07 C3.10.08 C3.10.09 C3.10.11 C3.10.12 C3.11.10 C3.11.12
+C3.10.11 C3.09.10 C3.09.11 C3.09.12 C3.10.09 C3.10.10 C3.10.12 C3.10.13 C3.11.12
+C3.10.12 C3.09.12 C3.10.10 C3.10.11 C3.10.13 C3.11.12 C3.11.13 C3.11.14 C3.11.15
+C3.10.13 C3.09.12 C3.09.13 C3.09.14 C3.10.11 C3.10.12 C3.10.14 C3.10.15 C3.11.14 C3.11.15
+C3.10.14 C3.09.14 C3.09.15 C3.10.13 C3.10.15
+C3.10.15 C3.10.13 C3.10.14 C3.11.15
+C3.11.00 C3.11.01 C3.11.03 C3.11.04
+C3.11.01 C3.11.00 C3.11.04 C3.12.01 C3.12.04
+C3.11.02 C3.10.01 C3.11.03 C3.11.05 C3.11.06
+C3.11.03 C3.11.00 C3.11.02 C3.11.04 C3.11.05 C3.11.06 C3.11.07
+C3.11.04 C3.11.00 C3.11.01 C3.11.03 C3.11.06 C3.11.07 C3.12.01 C3.12.04 C3.12.07
+C3.11.05 C3.10.01 C3.10.02 C3.10.04 C3.10.06 C3.11.02 C3.11.03 C3.11.06 C3.11.08
+C3.11.06 C3.10.06 C3.11.02 C3.11.03 C3.11.04 C3.11.05 C3.11.07 C3.11.08 C3.11.09
+C3.11.07 C3.11.03 C3.11.04 C3.11.06 C3.11.08 C3.11.09 C3.12.04 C3.12.07 C3.12.09
+C3.11.08 C3.10.06 C3.10.08 C3.11.05 C3.11.06 C3.11.07 C3.11.09 C3.11.10 C3.11.11
+C3.11.09 C3.11.06 C3.11.07 C3.11.08 C3.11.10 C3.11.11 C3.12.07 C3.12.09 C3.12.11
+C3.11.10 C3.10.06 C3.10.08 C3.10.10 C3.11.08 C3.11.09 C3.11.11 C3.11.12 C3.11.13
+C3.11.11 C3.11.08 C3.11.09 C3.11.10 C3.11.12 C3.11.13 C3.12.09 C3.12.11 C3.12.13
+C3.11.12 C3.10.08 C3.10.10 C3.10.11 C3.10.12 C3.11.10 C3.11.11 C3.11.13 C3.11.14
+C3.11.13 C3.10.12 C3.11.10 C3.11.11 C3.11.12 C3.11.14 C3.12.11 C3.12.13 C3.12.14
+C3.11.14 C3.10.12 C3.10.13 C3.11.12 C3.11.13 C3.11.15 C3.12.13 C3.12.14 C3.12.15
+C3.11.15 C3.10.12 C3.10.13 C3.10.15 C3.11.14 C3.12.14 C3.12.15
+C3.12.00 C3.12.01 C3.12.03 C3.12.04
+C3.12.01 C3.11.01 C3.11.04 C3.12.00 C3.12.04
+C3.12.02 C3.12.03 C3.12.05 C3.12.06 C3.13.02
+C3.12.03 C3.12.00 C3.12.02 C3.12.04 C3.12.05 C3.12.06 C3.12.07
+C3.12.04 C3.11.01 C3.11.04 C3.11.07 C3.12.00 C3.12.01 C3.12.03 C3.12.06 C3.12.07
+C3.12.05 C3.12.02 C3.12.03 C3.12.06 C3.12.08 C3.13.02 C3.13.04 C3.13.06
+C3.12.06 C3.12.02 C3.12.03 C3.12.04 C3.12.05 C3.12.07 C3.12.08 C3.12.09 C3.13.06
+C3.12.07 C3.11.04 C3.11.07 C3.11.09 C3.12.03 C3.12.04 C3.12.06 C3.12.08 C3.12.09
+C3.12.08 C3.12.05 C3.12.06 C3.12.07 C3.12.09 C3.12.10 C3.12.11 C3.13.06 C3.13.08
+C3.12.09 C3.11.07 C3.11.09 C3.11.11 C3.12.06 C3.12.07 C3.12.08 C3.12.10 C3.12.11
+C3.12.10 C3.12.08 C3.12.09 C3.12.11 C3.12.12 C3.12.13 C3.13.06 C3.13.08 C3.13.10
+C3.12.11 C3.11.09 C3.11.11 C3.11.13 C3.12.08 C3.12.09 C3.12.10 C3.12.12 C3.12.13
+C3.12.12 C3.12.10 C3.12.11 C3.12.13 C3.12.14 C3.13.08 C3.13.10 C3.13.11 C3.13.12
+C3.12.13 C3.11.11 C3.11.13 C3.11.14 C3.12.10 C3.12.11 C3.12.12 C3.12.14 C3.13.12
+C3.12.14 C3.11.13 C3.11.14 C3.11.15 C3.12.12 C3.12.13 C3.12.15 C3.13.12 C3.13.13
+C3.12.15 C3.11.14 C3.11.15 C3.12.14 C3.13.12 C3.13.13 C3.13.14
+C3.13.00 C3.13.01 C3.13.03 C3.13.05 C3.14.00 C3.14.02
+C3.13.01 C3.13.00 C3.13.02 C3.13.03 C3.13.04
+C3.13.02 C3.12.02 C3.12.05 C3.13.01 C3.13.03 C3.13.04 C3.13.06
+C3.13.03 C3.13.00 C3.13.01 C3.13.02 C3.13.04 C3.13.05 C3.13.07 C3.14.02
+C3.13.04 C3.12.05 C3.13.01 C3.13.02 C3.13.03 C3.13.05 C3.13.06 C3.13.07 C3.13.08
+C3.13.05 C3.13.00 C3.13.03 C3.13.04 C3.13.07 C3.13.09 C3.14.02 C3.14.04 C3.14.06
+C3.13.06 C3.12.05 C3.12.06 C3.12.08 C3.12.10 C3.13.02 C3.13.04 C3.13.07 C3.13.08
+C3.13.07 C3.13.03 C3.13.04 C3.13.05 C3.13.06 C3.13.08 C3.13.09 C3.13.10 C3.14.06
+C3.13.08 C3.12.08 C3.12.10 C3.12.12 C3.13.04 C3.13.06 C3.13.07 C3.13.09 C3.13.10
+C3.13.09 C3.13.05 C3.13.07 C3.13.08 C3.13.10 C3.13.11 C3.14.06 C3.14.07 C3.14.09
+C3.13.10 C3.12.10 C3.12.12 C3.13.07 C3.13.08 C3.13.09 C3.13.11 C3.13.12 C3.14.09
+C3.13.11 C3.12.12 C3.13.09 C3.13.10 C3.13.12 C3.13.13 C3.14.09 C3.14.10 C3.14.11
+C3.13.12 C3.12.12 C3.12.13 C3.12.14 C3.12.15 C3.13.10 C3.13.11 C3.13.13 C3.14.11
+C3.13.13 C3.12.14 C3.12.15 C3.13.11 C3.13.12 C3.13.14 C3.14.11 C3.14.12 C3.14.13
+C3.13.14 C3.12.15 C3.13.13 C3.14.13 C3.14.15
+C3.14.00 C3.13.00 C3.14.01 C3.14.02 C3.14.04
+C3.14.01 C3.14.00 C3.14.03 C3.14.04 C3.14.05 C3.15.01
+C3.14.02 C3.13.00 C3.13.03 C3.13.05 C3.14.00 C3.14.04 C3.14.06
+C3.14.03 C3.14.01 C3.14.04 C3.14.05 C3.15.01 C3.15.04 C3.15.07
+C3.14.04 C3.13.05 C3.14.00 C3.14.01 C3.14.02 C3.14.03 C3.14.05 C3.14.06 C3.14.07
+C3.14.05 C3.14.01 C3.14.03 C3.14.04 C3.14.06 C3.14.07 C3.14.08 C3.15.04 C3.15.07
+C3.14.06 C3.13.05 C3.13.07 C3.13.09 C3.14.02 C3.14.04 C3.14.05 C3.14.07 C3.14.09
+C3.14.07 C3.13.09 C3.14.04 C3.14.05 C3.14.06 C3.14.08 C3.14.09 C3.14.10 C3.15.07
+C3.14.08 C3.14.05 C3.14.07 C3.14.09 C3.14.10 C3.15.07 C3.15.08 C3.15.10 C3.15.12
+C3.14.09 C3.13.09 C3.13.10 C3.13.11 C3.14.06 C3.14.07 C3.14.08 C3.14.10 C3.14.11
+C3.14.10 C3.13.11 C3.14.07 C3.14.08 C3.14.09 C3.14.11 C3.14.12 C3.15.10 C3.15.12
+C3.14.11 C3.13.11 C3.13.12 C3.13.13 C3.14.09 C3.14.10 C3.14.12 C3.14.13 C3.15.12
+C3.14.12 C3.13.13 C3.14.10 C3.14.11 C3.14.13 C3.14.14 C3.15.12 C3.15.13 C3.15.14
+C3.14.13 C3.13.13 C3.13.14 C3.14.11 C3.14.12 C3.14.14 C3.14.15
+C3.14.14 C3.14.12 C3.14.13 C3.14.15 C3.15.14 C3.15.15
+C3.14.15 C3.13.14 C3.14.13 C3.14.14
+C3.15.00 C3.00.00 C3.00.03 C3.15.02 C3.15.03
+C3.15.01 C3.14.01 C3.14.03 C3.15.02 C3.15.04 C3.15.05
+C3.15.02 C3.15.00 C3.15.01 C3.15.03 C3.15.04 C3.15.05 C3.15.06
+C3.15.03 C3.00.00 C3.00.03 C3.00.06 C3.15.00 C3.15.02 C3.15.05 C3.15.06
+C3.15.04 C3.14.03 C3.14.05 C3.15.01 C3.15.02 C3.15.05 C3.15.07 C3.15.08
+C3.15.05 C3.15.01 C3.15.02 C3.15.03 C3.15.04 C3.15.06 C3.15.07 C3.15.08 C3.15.09
+C3.15.06 C3.00.03 C3.00.06 C3.00.09 C3.15.02 C3.15.03 C3.15.05 C3.15.08 C3.15.09
+C3.15.07 C3.14.03 C3.14.05 C3.14.07 C3.14.08 C3.15.04 C3.15.05 C3.15.08 C3.15.10
+C3.15.08 C3.14.08 C3.15.04 C3.15.05 C3.15.06 C3.15.07 C3.15.09 C3.15.10 C3.15.11
+C3.15.09 C3.00.06 C3.00.09 C3.00.11 C3.15.05 C3.15.06 C3.15.08 C3.15.10 C3.15.11
+C3.15.10 C3.14.08 C3.14.10 C3.15.07 C3.15.08 C3.15.09 C3.15.11 C3.15.12 C3.15.13
+C3.15.11 C3.00.09 C3.00.11 C3.00.13 C3.15.08 C3.15.09 C3.15.10 C3.15.12 C3.15.13
+C3.15.12 C3.14.08 C3.14.10 C3.14.11 C3.14.12 C3.15.10 C3.15.11 C3.15.13 C3.15.14
+C3.15.13 C3.00.11 C3.00.13 C3.00.14 C3.14.12 C3.15.10 C3.15.11 C3.15.12 C3.15.14
+C3.15.14 C3.00.13 C3.00.14 C3.00.15 C3.14.12 C3.14.14 C3.15.12 C3.15.13 C3.15.15
+C3.15.15 C3.00.14 C3.00.15 C3.14.14 C3.15.14
diff --git a/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-DC3-05-Comm-01.txt b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-DC3-05-Comm-01.txt
new file mode 100755
index 0000000000000000000000000000000000000000..90ea9427d8fab04cde2312de6210cd04b5386414
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors-DC3-05-Comm-01.txt
@@ -0,0 +1,3533 @@
+# 2D FCal Neighbors
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Thu Nov 30 16:09:58 2006
+#
+# 2d neighbors are all touching neighbors including corners.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+#
+A1.00.00 A1.00.07 A1.00.12
+A1.00.01 A1.00.02 A1.00.10 A1.00.11 A1.15.02 A1.15.12
+A1.00.02 A1.00.01 A1.00.03 A1.00.06 A1.00.09 A1.00.10
+A1.00.03 A1.00.02 A1.00.05 A1.00.06 A1.00.14 A1.00.15
+A1.00.04 A1.00.05 A1.00.12 A1.00.13 A1.00.14
+A1.00.05 A1.00.03 A1.00.04 A1.00.13 A1.00.14
+A1.00.06 A1.00.02 A1.00.03 A1.00.09 A1.00.14 A1.00.15
+A1.00.07 A1.00.00 A1.00.08 A1.00.12 A1.00.17 A1.00.18 A1.01.13
+A1.00.08 A1.00.07 A1.00.17 A1.01.02 A1.01.13
+A1.00.09 A1.00.02 A1.00.06 A1.00.10 A1.00.15 A1.00.16
+A1.00.10 A1.00.01 A1.00.02 A1.00.09 A1.00.11 A1.00.15 A1.00.16
+A1.00.11 A1.00.01 A1.00.10 A1.00.16 A1.15.02 A1.15.12 A1.15.17
+A1.00.12 A1.00.00 A1.00.04 A1.00.07 A1.00.13 A1.00.17 A1.00.18 A1.00.19
+A1.00.13 A1.00.04 A1.00.05 A1.00.12 A1.00.14 A1.00.18 A1.00.19 A1.00.20
+A1.00.14 A1.00.03 A1.00.04 A1.00.05 A1.00.06 A1.00.13 A1.00.15 A1.00.19 A1.00.20 A1.00.21
+A1.00.15 A1.00.03 A1.00.06 A1.00.09 A1.00.10 A1.00.14 A1.00.16 A1.00.20 A1.00.21 A1.00.22
+A1.00.16 A1.00.09 A1.00.10 A1.00.11 A1.00.15 A1.00.21 A1.00.22 A1.15.12 A1.15.17 A1.15.23
+A1.00.17 A1.00.07 A1.00.08 A1.00.12 A1.00.18 A1.00.23 A1.01.13 A1.01.19 A1.01.21
+A1.00.18 A1.00.07 A1.00.12 A1.00.13 A1.00.17 A1.00.19 A1.00.23 A1.00.24 A1.01.21
+A1.00.19 A1.00.12 A1.00.13 A1.00.14 A1.00.18 A1.00.20 A1.00.23 A1.00.24 A1.00.25
+A1.00.20 A1.00.13 A1.00.14 A1.00.15 A1.00.19 A1.00.21 A1.00.24 A1.00.25 A1.00.26
+A1.00.21 A1.00.14 A1.00.15 A1.00.16 A1.00.20 A1.00.22 A1.00.25 A1.00.26 A1.00.27
+A1.00.22 A1.00.15 A1.00.16 A1.00.21 A1.00.26 A1.00.27 A1.15.17 A1.15.23 A1.15.28
+A1.00.23 A1.00.17 A1.00.18 A1.00.19 A1.00.24 A1.00.28 A1.00.29 A1.01.21 A1.01.26
+A1.00.24 A1.00.18 A1.00.19 A1.00.20 A1.00.23 A1.00.25 A1.00.28 A1.00.29 A1.00.30
+A1.00.25 A1.00.19 A1.00.20 A1.00.21 A1.00.24 A1.00.26 A1.00.29 A1.00.30 A1.00.31
+A1.00.26 A1.00.20 A1.00.21 A1.00.22 A1.00.25 A1.00.27 A1.00.30 A1.00.31 A1.00.32
+A1.00.27 A1.00.21 A1.00.22 A1.00.26 A1.00.31 A1.00.32 A1.15.23 A1.15.28 A1.15.33
+A1.00.28 A1.00.23 A1.00.24 A1.00.29 A1.00.33 A1.01.21 A1.01.26 A1.01.31 A1.01.33
+A1.00.29 A1.00.23 A1.00.24 A1.00.25 A1.00.28 A1.00.30 A1.00.33 A1.00.34 A1.01.33
+A1.00.30 A1.00.24 A1.00.25 A1.00.26 A1.00.29 A1.00.31 A1.00.33 A1.00.34 A1.00.35
+A1.00.31 A1.00.25 A1.00.26 A1.00.27 A1.00.30 A1.00.32 A1.00.34 A1.00.35 A1.00.36
+A1.00.32 A1.00.26 A1.00.27 A1.00.31 A1.00.35 A1.00.36 A1.15.28 A1.15.33 A1.15.37
+A1.00.33 A1.00.28 A1.00.29 A1.00.30 A1.00.34 A1.00.37 A1.00.38 A1.01.33 A1.01.38
+A1.00.34 A1.00.29 A1.00.30 A1.00.31 A1.00.33 A1.00.35 A1.00.37 A1.00.38 A1.00.39
+A1.00.35 A1.00.30 A1.00.31 A1.00.32 A1.00.34 A1.00.36 A1.00.38 A1.00.39 A1.00.40
+A1.00.36 A1.00.31 A1.00.32 A1.00.35 A1.00.39 A1.00.40 A1.15.33 A1.15.37 A1.15.41
+A1.00.37 A1.00.33 A1.00.34 A1.00.38 A1.00.41 A1.00.42 A1.01.33 A1.01.38 A1.01.41
+A1.00.38 A1.00.33 A1.00.34 A1.00.35 A1.00.37 A1.00.39 A1.00.41 A1.00.42 A1.00.43
+A1.00.39 A1.00.34 A1.00.35 A1.00.36 A1.00.38 A1.00.40 A1.00.42 A1.00.43 A1.00.44
+A1.00.40 A1.00.35 A1.00.36 A1.00.39 A1.00.43 A1.00.44 A1.15.37 A1.15.41 A1.15.45
+A1.00.41 A1.00.37 A1.00.38 A1.00.42 A1.00.45 A1.01.38 A1.01.41 A1.01.43 A1.01.45
+A1.00.42 A1.00.37 A1.00.38 A1.00.39 A1.00.41 A1.00.43 A1.00.45 A1.00.46 A1.01.45
+A1.00.43 A1.00.38 A1.00.39 A1.00.40 A1.00.42 A1.00.44 A1.00.45 A1.00.46 A1.00.47
+A1.00.44 A1.00.39 A1.00.40 A1.00.43 A1.00.46 A1.00.47 A1.15.41 A1.15.45 A1.15.48
+A1.00.45 A1.00.41 A1.00.42 A1.00.43 A1.00.46 A1.00.48 A1.00.49 A1.01.45 A1.01.47
+A1.00.46 A1.00.42 A1.00.43 A1.00.44 A1.00.45 A1.00.47 A1.00.48 A1.00.49 A1.00.50
+A1.00.47 A1.00.43 A1.00.44 A1.00.46 A1.00.49 A1.00.50 A1.15.45 A1.15.48 A1.15.51
+A1.00.48 A1.00.45 A1.00.46 A1.00.49 A1.00.51 A1.01.45 A1.01.47 A1.01.49 A1.01.50
+A1.00.49 A1.00.45 A1.00.46 A1.00.47 A1.00.48 A1.00.50 A1.00.51 A1.00.52 A1.01.50
+A1.00.50 A1.00.46 A1.00.47 A1.00.49 A1.00.51 A1.00.52 A1.15.48 A1.15.51 A1.15.53
+A1.00.51 A1.00.48 A1.00.49 A1.00.50 A1.00.52 A1.00.53 A1.00.54 A1.00.55 A1.01.50 A1.01.53
+A1.00.52 A1.00.49 A1.00.50 A1.00.51 A1.00.54 A1.00.55 A1.00.56 A1.15.51 A1.15.53 A1.15.56
+A1.00.53 A1.00.51 A1.00.54 A1.00.57 A1.01.50 A1.01.53 A1.01.55 A1.01.57
+A1.00.54 A1.00.51 A1.00.52 A1.00.53 A1.00.55 A1.00.57 A1.00.58 A1.01.57
+A1.00.55 A1.00.51 A1.00.52 A1.00.54 A1.00.56 A1.00.57 A1.00.58 A1.00.59
+A1.00.56 A1.00.52 A1.00.55 A1.00.58 A1.00.59 A1.15.53 A1.15.56 A1.15.59
+A1.00.57 A1.00.53 A1.00.54 A1.00.55 A1.00.58 A1.00.60 A1.00.61 A1.01.57 A1.01.59
+A1.00.58 A1.00.54 A1.00.55 A1.00.56 A1.00.57 A1.00.59 A1.00.60 A1.00.61 A1.00.62
+A1.00.59 A1.00.55 A1.00.56 A1.00.58 A1.00.61 A1.00.62 A1.15.56 A1.15.59 A1.15.62
+A1.00.60 A1.00.57 A1.00.58 A1.00.61 A1.01.57 A1.01.59 A1.01.62
+A1.00.61 A1.00.57 A1.00.58 A1.00.59 A1.00.60 A1.00.62 A1.01.62
+A1.00.62 A1.00.58 A1.00.59 A1.00.61 A1.15.59 A1.15.62
+A1.01.00 A1.01.04 A1.01.06 A1.01.08 A1.01.12
+A1.01.01 A1.01.03 A1.01.05 A1.01.11
+A1.01.02 A1.00.08 A1.01.05 A1.01.13
+A1.01.03 A1.01.01 A1.01.07 A1.01.09 A1.01.11
+A1.01.04 A1.01.00 A1.01.08 A1.01.10
+A1.01.05 A1.01.01 A1.01.02 A1.01.11 A1.01.13
+A1.01.06 A1.01.00 A1.01.12 A1.01.17 A1.02.06 A1.02.13
+A1.01.07 A1.01.03 A1.01.09 A1.01.10 A1.01.14
+A1.01.08 A1.01.00 A1.01.04 A1.01.10 A1.01.12 A1.01.15
+A1.01.09 A1.01.03 A1.01.07 A1.01.11 A1.01.14 A1.01.16
+A1.01.10 A1.01.04 A1.01.07 A1.01.08 A1.01.12 A1.01.14 A1.01.15 A1.01.18
+A1.01.11 A1.01.01 A1.01.03 A1.01.05 A1.01.09 A1.01.13 A1.01.14 A1.01.16 A1.01.19
+A1.01.12 A1.01.00 A1.01.06 A1.01.08 A1.01.10 A1.01.15 A1.01.17 A1.01.20 A1.02.13
+A1.01.13 A1.00.07 A1.00.08 A1.00.17 A1.01.02 A1.01.05 A1.01.11 A1.01.16 A1.01.19 A1.01.21
+A1.01.14 A1.01.07 A1.01.09 A1.01.10 A1.01.11 A1.01.15 A1.01.16 A1.01.18 A1.01.22
+A1.01.15 A1.01.08 A1.01.10 A1.01.12 A1.01.14 A1.01.17 A1.01.18 A1.01.20 A1.01.23
+A1.01.16 A1.01.09 A1.01.11 A1.01.13 A1.01.14 A1.01.18 A1.01.19 A1.01.22 A1.01.24
+A1.01.17 A1.01.06 A1.01.12 A1.01.15 A1.01.20 A1.01.25 A1.02.13 A1.02.17 A1.02.21
+A1.01.18 A1.01.10 A1.01.14 A1.01.15 A1.01.16 A1.01.20 A1.01.22 A1.01.23 A1.01.27
+A1.01.19 A1.00.17 A1.01.11 A1.01.13 A1.01.16 A1.01.21 A1.01.22 A1.01.24 A1.01.26
+A1.01.20 A1.01.12 A1.01.15 A1.01.17 A1.01.18 A1.01.23 A1.01.25 A1.01.28 A1.02.21
+A1.01.21 A1.00.17 A1.00.18 A1.00.23 A1.00.28 A1.01.13 A1.01.19 A1.01.24 A1.01.26
+A1.01.22 A1.01.14 A1.01.16 A1.01.18 A1.01.19 A1.01.23 A1.01.24 A1.01.27 A1.01.29
+A1.01.23 A1.01.15 A1.01.18 A1.01.20 A1.01.22 A1.01.25 A1.01.27 A1.01.28 A1.01.30
+A1.01.24 A1.01.16 A1.01.19 A1.01.21 A1.01.22 A1.01.26 A1.01.27 A1.01.29 A1.01.31
+A1.01.25 A1.01.17 A1.01.20 A1.01.23 A1.01.28 A1.01.32 A1.02.21 A1.02.24 A1.02.28
+A1.01.26 A1.00.23 A1.00.28 A1.01.19 A1.01.21 A1.01.24 A1.01.29 A1.01.31 A1.01.33
+A1.01.27 A1.01.18 A1.01.22 A1.01.23 A1.01.24 A1.01.28 A1.01.29 A1.01.30 A1.01.34
+A1.01.28 A1.01.20 A1.01.23 A1.01.25 A1.01.27 A1.01.30 A1.01.32 A1.01.35 A1.02.28
+A1.01.29 A1.01.22 A1.01.24 A1.01.26 A1.01.27 A1.01.30 A1.01.31 A1.01.34 A1.01.36
+A1.01.30 A1.01.23 A1.01.27 A1.01.28 A1.01.29 A1.01.32 A1.01.34 A1.01.35 A1.01.37
+A1.01.31 A1.00.28 A1.01.24 A1.01.26 A1.01.29 A1.01.33 A1.01.34 A1.01.36 A1.01.38
+A1.01.32 A1.01.25 A1.01.28 A1.01.30 A1.01.35 A1.02.28 A1.02.31 A1.02.34 A1.02.37
+A1.01.33 A1.00.28 A1.00.29 A1.00.33 A1.00.37 A1.01.26 A1.01.31 A1.01.36 A1.01.38
+A1.01.34 A1.01.27 A1.01.29 A1.01.30 A1.01.31 A1.01.35 A1.01.36 A1.01.37 A1.01.39
+A1.01.35 A1.01.28 A1.01.30 A1.01.32 A1.01.34 A1.01.37 A1.01.40 A1.02.34 A1.02.37
+A1.01.36 A1.01.29 A1.01.31 A1.01.33 A1.01.34 A1.01.37 A1.01.38 A1.01.39 A1.01.41
+A1.01.37 A1.01.30 A1.01.34 A1.01.35 A1.01.36 A1.01.39 A1.01.40 A1.01.42 A1.02.37
+A1.01.38 A1.00.33 A1.00.37 A1.00.41 A1.01.31 A1.01.33 A1.01.36 A1.01.39 A1.01.41
+A1.01.39 A1.01.34 A1.01.36 A1.01.37 A1.01.38 A1.01.40 A1.01.41 A1.01.42 A1.01.43
+A1.01.40 A1.01.35 A1.01.37 A1.01.39 A1.01.42 A1.01.44 A1.02.37 A1.02.40 A1.02.43
+A1.01.41 A1.00.37 A1.00.41 A1.01.36 A1.01.38 A1.01.39 A1.01.42 A1.01.43 A1.01.45
+A1.01.42 A1.01.37 A1.01.39 A1.01.40 A1.01.41 A1.01.43 A1.01.44 A1.01.46 A1.02.43
+A1.01.43 A1.00.41 A1.01.39 A1.01.41 A1.01.42 A1.01.44 A1.01.45 A1.01.46 A1.01.47
+A1.01.44 A1.01.40 A1.01.42 A1.01.43 A1.01.46 A1.01.48 A1.02.43 A1.02.45 A1.02.47
+A1.01.45 A1.00.41 A1.00.42 A1.00.45 A1.00.48 A1.01.41 A1.01.43 A1.01.46 A1.01.47
+A1.01.46 A1.01.42 A1.01.43 A1.01.44 A1.01.45 A1.01.47 A1.01.48 A1.01.49 A1.02.47
+A1.01.47 A1.00.45 A1.00.48 A1.01.43 A1.01.45 A1.01.46 A1.01.48 A1.01.49 A1.01.50
+A1.01.48 A1.01.44 A1.01.46 A1.01.47 A1.01.49 A1.01.51 A1.02.47 A1.02.49 A1.02.51
+A1.01.49 A1.00.48 A1.01.46 A1.01.47 A1.01.48 A1.01.50 A1.01.51 A1.01.52 A1.02.51
+A1.01.50 A1.00.48 A1.00.49 A1.00.51 A1.00.53 A1.01.47 A1.01.49 A1.01.51 A1.01.52 A1.01.53
+A1.01.51 A1.01.48 A1.01.49 A1.01.50 A1.01.52 A1.01.54 A1.01.56 A1.02.51 A1.02.52 A1.02.53 A1.02.55
+A1.01.52 A1.01.49 A1.01.50 A1.01.51 A1.01.53 A1.01.54 A1.01.55
+A1.01.53 A1.00.51 A1.00.53 A1.01.50 A1.01.52 A1.01.54 A1.01.55 A1.01.57
+A1.01.54 A1.01.51 A1.01.52 A1.01.53 A1.01.55 A1.01.56 A1.01.58 A1.02.55
+A1.01.55 A1.00.53 A1.01.52 A1.01.53 A1.01.54 A1.01.56 A1.01.57 A1.01.58 A1.01.59
+A1.01.56 A1.01.51 A1.01.54 A1.01.55 A1.01.58 A1.01.60 A1.02.55 A1.02.57 A1.02.59
+A1.01.57 A1.00.53 A1.00.54 A1.00.57 A1.00.60 A1.01.53 A1.01.55 A1.01.58 A1.01.59
+A1.01.58 A1.01.54 A1.01.55 A1.01.56 A1.01.57 A1.01.59 A1.01.60 A1.01.61 A1.02.59
+A1.01.59 A1.00.57 A1.00.60 A1.01.55 A1.01.57 A1.01.58 A1.01.60 A1.01.61 A1.01.62
+A1.01.60 A1.01.56 A1.01.58 A1.01.59 A1.01.61 A1.02.59 A1.02.61
+A1.01.61 A1.01.58 A1.01.59 A1.01.60 A1.01.62 A1.02.59 A1.02.61
+A1.01.62 A1.00.60 A1.00.61 A1.01.59 A1.01.61
+A1.02.00 A1.02.03 A1.02.06
+A1.02.01 A1.02.02 A1.02.04 A1.02.10 A1.02.14
+A1.02.02 A1.02.01 A1.02.07 A1.02.10
+A1.02.03 A1.02.00 A1.02.06 A1.02.09 A1.02.12
+A1.02.04 A1.02.01 A1.02.05 A1.02.10 A1.02.14 A1.03.02
+A1.02.05 A1.02.04 A1.02.14 A1.03.02 A1.03.08
+A1.02.06 A1.01.06 A1.02.00 A1.02.03 A1.02.12 A1.02.13 A1.02.17
+A1.02.07 A1.02.02 A1.02.10 A1.02.11 A1.02.15
+A1.02.08 A1.02.09 A1.02.11
+A1.02.09 A1.02.03 A1.02.08 A1.02.11 A1.02.12 A1.02.16
+A1.02.10 A1.02.01 A1.02.02 A1.02.04 A1.02.07 A1.02.11 A1.02.14 A1.02.15 A1.02.18
+A1.02.11 A1.02.07 A1.02.08 A1.02.09 A1.02.10 A1.02.12 A1.02.15 A1.02.16 A1.02.19
+A1.02.12 A1.02.03 A1.02.06 A1.02.09 A1.02.11 A1.02.13 A1.02.16 A1.02.17 A1.02.20
+A1.02.13 A1.01.06 A1.01.12 A1.01.17 A1.02.06 A1.02.12 A1.02.17 A1.02.21
+A1.02.14 A1.02.01 A1.02.04 A1.02.05 A1.02.10 A1.02.15 A1.02.18 A1.03.08 A1.03.10 A1.03.15 A1.03.20
+A1.02.15 A1.02.07 A1.02.10 A1.02.11 A1.02.14 A1.02.16 A1.02.18 A1.02.19 A1.02.22
+A1.02.16 A1.02.09 A1.02.11 A1.02.12 A1.02.15 A1.02.17 A1.02.19 A1.02.20 A1.02.23
+A1.02.17 A1.01.17 A1.02.06 A1.02.12 A1.02.13 A1.02.16 A1.02.20 A1.02.21 A1.02.24
+A1.02.18 A1.02.10 A1.02.14 A1.02.15 A1.02.19 A1.02.22 A1.02.25 A1.03.15 A1.03.20
+A1.02.19 A1.02.11 A1.02.15 A1.02.16 A1.02.18 A1.02.20 A1.02.22 A1.02.23 A1.02.26
+A1.02.20 A1.02.12 A1.02.16 A1.02.17 A1.02.19 A1.02.21 A1.02.23 A1.02.24 A1.02.27
+A1.02.21 A1.01.17 A1.01.20 A1.01.25 A1.02.13 A1.02.17 A1.02.20 A1.02.24 A1.02.28
+A1.02.22 A1.02.15 A1.02.18 A1.02.19 A1.02.23 A1.02.25 A1.02.26 A1.02.29 A1.03.20
+A1.02.23 A1.02.16 A1.02.19 A1.02.20 A1.02.22 A1.02.24 A1.02.26 A1.02.27 A1.02.30
+A1.02.24 A1.01.25 A1.02.17 A1.02.20 A1.02.21 A1.02.23 A1.02.27 A1.02.28 A1.02.31
+A1.02.25 A1.02.18 A1.02.22 A1.02.26 A1.02.29 A1.03.20 A1.03.21 A1.03.25 A1.03.29
+A1.02.26 A1.02.19 A1.02.22 A1.02.23 A1.02.25 A1.02.27 A1.02.29 A1.02.30 A1.02.32
+A1.02.27 A1.02.20 A1.02.23 A1.02.24 A1.02.26 A1.02.28 A1.02.30 A1.02.31 A1.02.33
+A1.02.28 A1.01.25 A1.01.28 A1.01.32 A1.02.21 A1.02.24 A1.02.27 A1.02.31 A1.02.34
+A1.02.29 A1.02.22 A1.02.25 A1.02.26 A1.02.30 A1.02.32 A1.03.25 A1.03.29 A1.03.33
+A1.02.30 A1.02.23 A1.02.26 A1.02.27 A1.02.29 A1.02.31 A1.02.32 A1.02.33 A1.02.35
+A1.02.31 A1.01.32 A1.02.24 A1.02.27 A1.02.28 A1.02.30 A1.02.33 A1.02.34 A1.02.36
+A1.02.32 A1.02.26 A1.02.29 A1.02.30 A1.02.33 A1.02.35 A1.02.38 A1.03.29 A1.03.33
+A1.02.33 A1.02.27 A1.02.30 A1.02.31 A1.02.32 A1.02.34 A1.02.35 A1.02.36 A1.02.39
+A1.02.34 A1.01.32 A1.01.35 A1.02.28 A1.02.31 A1.02.33 A1.02.36 A1.02.37 A1.02.40
+A1.02.35 A1.02.30 A1.02.32 A1.02.33 A1.02.36 A1.02.38 A1.02.39 A1.02.41 A1.03.33
+A1.02.36 A1.02.31 A1.02.33 A1.02.34 A1.02.35 A1.02.37 A1.02.39 A1.02.40 A1.02.42
+A1.02.37 A1.01.32 A1.01.35 A1.01.37 A1.01.40 A1.02.34 A1.02.36 A1.02.40 A1.02.43
+A1.02.38 A1.02.32 A1.02.35 A1.02.39 A1.02.41 A1.03.33 A1.03.34 A1.03.37 A1.03.40
+A1.02.39 A1.02.33 A1.02.35 A1.02.36 A1.02.38 A1.02.40 A1.02.41 A1.02.42 A1.02.44
+A1.02.40 A1.01.40 A1.02.34 A1.02.36 A1.02.37 A1.02.39 A1.02.42 A1.02.43 A1.02.45
+A1.02.41 A1.02.35 A1.02.38 A1.02.39 A1.02.42 A1.02.44 A1.03.37 A1.03.40 A1.03.43
+A1.02.42 A1.02.36 A1.02.39 A1.02.40 A1.02.41 A1.02.43 A1.02.44 A1.02.45 A1.02.46
+A1.02.43 A1.01.40 A1.01.42 A1.01.44 A1.02.37 A1.02.40 A1.02.42 A1.02.45 A1.02.47
+A1.02.44 A1.02.39 A1.02.41 A1.02.42 A1.02.45 A1.02.46 A1.02.48 A1.03.40 A1.03.43
+A1.02.45 A1.01.44 A1.02.40 A1.02.42 A1.02.43 A1.02.44 A1.02.46 A1.02.47 A1.02.49
+A1.02.46 A1.02.42 A1.02.44 A1.02.45 A1.02.47 A1.02.48 A1.02.49 A1.02.50 A1.03.43
+A1.02.47 A1.01.44 A1.01.46 A1.01.48 A1.02.43 A1.02.45 A1.02.46 A1.02.49 A1.02.51
+A1.02.48 A1.02.44 A1.02.46 A1.02.49 A1.02.50 A1.03.43 A1.03.44 A1.03.46 A1.03.48
+A1.02.49 A1.01.48 A1.02.45 A1.02.46 A1.02.47 A1.02.48 A1.02.50 A1.02.51 A1.02.52
+A1.02.50 A1.02.46 A1.02.48 A1.02.49 A1.02.51 A1.02.52 A1.03.46 A1.03.48 A1.03.50
+A1.02.51 A1.01.48 A1.01.49 A1.01.51 A1.02.47 A1.02.49 A1.02.50 A1.02.52 A1.02.53
+A1.02.52 A1.01.51 A1.02.49 A1.02.50 A1.02.51 A1.02.53 A1.02.54 A1.02.56 A1.03.48 A1.03.50 A1.03.54
+A1.02.53 A1.01.51 A1.02.51 A1.02.52 A1.02.54 A1.02.55 A1.02.57
+A1.02.54 A1.02.52 A1.02.53 A1.02.55 A1.02.56 A1.02.57 A1.02.58 A1.03.54
+A1.02.55 A1.01.51 A1.01.54 A1.01.56 A1.02.53 A1.02.54 A1.02.57 A1.02.59
+A1.02.56 A1.02.52 A1.02.54 A1.02.57 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.58
+A1.02.57 A1.01.56 A1.02.53 A1.02.54 A1.02.55 A1.02.56 A1.02.58 A1.02.59 A1.02.61
+A1.02.58 A1.02.54 A1.02.56 A1.02.57 A1.02.59 A1.02.60 A1.02.61 A1.02.62 A1.03.58
+A1.02.59 A1.01.56 A1.01.58 A1.01.60 A1.01.61 A1.02.55 A1.02.57 A1.02.58 A1.02.61
+A1.02.60 A1.02.56 A1.02.58 A1.02.61 A1.02.62 A1.03.58 A1.03.59 A1.03.61
+A1.02.61 A1.01.60 A1.01.61 A1.02.57 A1.02.58 A1.02.59 A1.02.60 A1.02.62
+A1.02.62 A1.02.58 A1.02.60 A1.02.61 A1.03.61
+A1.03.00 A1.03.05 A1.03.07 A1.04.00 A1.04.08
+A1.03.01 A1.03.02 A1.03.03 A1.03.10
+A1.03.02 A1.02.04 A1.02.05 A1.03.01 A1.03.08 A1.03.10
+A1.03.03 A1.03.01 A1.03.04 A1.03.10 A1.03.11
+A1.03.04 A1.03.03 A1.03.06 A1.03.11 A1.03.12
+A1.03.05 A1.03.00 A1.03.07 A1.03.09 A1.03.12 A1.03.13 A1.03.14
+A1.03.06 A1.03.04 A1.03.09 A1.03.11 A1.03.12
+A1.03.07 A1.03.00 A1.03.05 A1.03.13 A1.03.14 A1.04.00 A1.04.08 A1.04.14
+A1.03.08 A1.02.05 A1.02.14 A1.03.02 A1.03.10 A1.03.15
+A1.03.09 A1.03.05 A1.03.06 A1.03.12 A1.03.13
+A1.03.10 A1.02.14 A1.03.01 A1.03.02 A1.03.03 A1.03.08 A1.03.11 A1.03.15 A1.03.16
+A1.03.11 A1.03.03 A1.03.04 A1.03.06 A1.03.10 A1.03.12 A1.03.15 A1.03.16 A1.03.17
+A1.03.12 A1.03.04 A1.03.05 A1.03.06 A1.03.09 A1.03.11 A1.03.13 A1.03.16 A1.03.17 A1.03.18
+A1.03.13 A1.03.05 A1.03.07 A1.03.09 A1.03.12 A1.03.14 A1.03.17 A1.03.18 A1.03.19
+A1.03.14 A1.03.05 A1.03.07 A1.03.13 A1.03.18 A1.03.19 A1.04.08 A1.04.14 A1.04.19
+A1.03.15 A1.02.14 A1.02.18 A1.03.08 A1.03.10 A1.03.11 A1.03.16 A1.03.20 A1.03.21
+A1.03.16 A1.03.10 A1.03.11 A1.03.12 A1.03.15 A1.03.17 A1.03.20 A1.03.21 A1.03.22
+A1.03.17 A1.03.11 A1.03.12 A1.03.13 A1.03.16 A1.03.18 A1.03.21 A1.03.22 A1.03.23
+A1.03.18 A1.03.12 A1.03.13 A1.03.14 A1.03.17 A1.03.19 A1.03.22 A1.03.23 A1.03.24
+A1.03.19 A1.03.13 A1.03.14 A1.03.18 A1.03.23 A1.03.24 A1.04.14 A1.04.19 A1.04.24
+A1.03.20 A1.02.14 A1.02.18 A1.02.22 A1.02.25 A1.03.15 A1.03.16 A1.03.21 A1.03.25
+A1.03.21 A1.02.25 A1.03.15 A1.03.16 A1.03.17 A1.03.20 A1.03.22 A1.03.25 A1.03.26
+A1.03.22 A1.03.16 A1.03.17 A1.03.18 A1.03.21 A1.03.23 A1.03.25 A1.03.26 A1.03.27
+A1.03.23 A1.03.17 A1.03.18 A1.03.19 A1.03.22 A1.03.24 A1.03.26 A1.03.27 A1.03.28
+A1.03.24 A1.03.18 A1.03.19 A1.03.23 A1.03.27 A1.03.28 A1.04.19 A1.04.24 A1.04.28
+A1.03.25 A1.02.25 A1.02.29 A1.03.20 A1.03.21 A1.03.22 A1.03.26 A1.03.29 A1.03.30
+A1.03.26 A1.03.21 A1.03.22 A1.03.23 A1.03.25 A1.03.27 A1.03.29 A1.03.30 A1.03.31
+A1.03.27 A1.03.22 A1.03.23 A1.03.24 A1.03.26 A1.03.28 A1.03.30 A1.03.31 A1.03.32
+A1.03.28 A1.03.23 A1.03.24 A1.03.27 A1.03.31 A1.03.32 A1.04.24 A1.04.28 A1.04.32
+A1.03.29 A1.02.25 A1.02.29 A1.02.32 A1.03.25 A1.03.26 A1.03.30 A1.03.33 A1.03.34
+A1.03.30 A1.03.25 A1.03.26 A1.03.27 A1.03.29 A1.03.31 A1.03.33 A1.03.34 A1.03.35
+A1.03.31 A1.03.26 A1.03.27 A1.03.28 A1.03.30 A1.03.32 A1.03.34 A1.03.35 A1.03.36
+A1.03.32 A1.03.27 A1.03.28 A1.03.31 A1.03.35 A1.03.36 A1.04.28 A1.04.32 A1.04.36
+A1.03.33 A1.02.29 A1.02.32 A1.02.35 A1.02.38 A1.03.29 A1.03.30 A1.03.34 A1.03.37
+A1.03.34 A1.02.38 A1.03.29 A1.03.30 A1.03.31 A1.03.33 A1.03.35 A1.03.37 A1.03.38
+A1.03.35 A1.03.30 A1.03.31 A1.03.32 A1.03.34 A1.03.36 A1.03.37 A1.03.38 A1.03.39
+A1.03.36 A1.03.31 A1.03.32 A1.03.35 A1.03.38 A1.03.39 A1.04.32 A1.04.36 A1.04.39
+A1.03.37 A1.02.38 A1.02.41 A1.03.33 A1.03.34 A1.03.35 A1.03.38 A1.03.40 A1.03.41
+A1.03.38 A1.03.34 A1.03.35 A1.03.36 A1.03.37 A1.03.39 A1.03.40 A1.03.41 A1.03.42
+A1.03.39 A1.03.35 A1.03.36 A1.03.38 A1.03.41 A1.03.42 A1.04.36 A1.04.39 A1.04.42
+A1.03.40 A1.02.38 A1.02.41 A1.02.44 A1.03.37 A1.03.38 A1.03.41 A1.03.43 A1.03.44
+A1.03.41 A1.03.37 A1.03.38 A1.03.39 A1.03.40 A1.03.42 A1.03.43 A1.03.44 A1.03.45
+A1.03.42 A1.03.38 A1.03.39 A1.03.41 A1.03.44 A1.03.45 A1.04.39 A1.04.42 A1.04.45
+A1.03.43 A1.02.41 A1.02.44 A1.02.46 A1.02.48 A1.03.40 A1.03.41 A1.03.44 A1.03.46
+A1.03.44 A1.02.48 A1.03.40 A1.03.41 A1.03.42 A1.03.43 A1.03.45 A1.03.46 A1.03.47
+A1.03.45 A1.03.41 A1.03.42 A1.03.44 A1.03.46 A1.03.47 A1.04.42 A1.04.45 A1.04.47
+A1.03.46 A1.02.48 A1.02.50 A1.03.43 A1.03.44 A1.03.45 A1.03.47 A1.03.48 A1.03.49
+A1.03.47 A1.03.44 A1.03.45 A1.03.46 A1.03.48 A1.03.49 A1.04.45 A1.04.47 A1.04.49
+A1.03.48 A1.02.48 A1.02.50 A1.02.52 A1.03.46 A1.03.47 A1.03.49 A1.03.50 A1.03.51 A1.03.52
+A1.03.49 A1.03.46 A1.03.47 A1.03.48 A1.03.51 A1.03.52 A1.03.53 A1.04.47 A1.04.49 A1.04.53
+A1.03.50 A1.02.50 A1.02.52 A1.03.48 A1.03.51 A1.03.54 A1.03.55
+A1.03.51 A1.03.48 A1.03.49 A1.03.50 A1.03.52 A1.03.54 A1.03.55 A1.03.56
+A1.03.52 A1.03.48 A1.03.49 A1.03.51 A1.03.53 A1.03.55 A1.03.56 A1.03.57
+A1.03.53 A1.03.49 A1.03.52 A1.03.56 A1.03.57 A1.04.49 A1.04.53 A1.04.57
+A1.03.54 A1.02.52 A1.02.54 A1.02.56 A1.03.50 A1.03.51 A1.03.55 A1.03.58
+A1.03.55 A1.02.56 A1.03.50 A1.03.51 A1.03.52 A1.03.54 A1.03.56 A1.03.58 A1.03.59
+A1.03.56 A1.03.51 A1.03.52 A1.03.53 A1.03.55 A1.03.57 A1.03.58 A1.03.59 A1.03.60
+A1.03.57 A1.03.52 A1.03.53 A1.03.56 A1.03.59 A1.03.60 A1.04.53 A1.04.57 A1.04.60
+A1.03.58 A1.02.56 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.56 A1.03.59 A1.03.61
+A1.03.59 A1.02.60 A1.03.55 A1.03.56 A1.03.57 A1.03.58 A1.03.60 A1.03.61 A1.03.62
+A1.03.60 A1.03.56 A1.03.57 A1.03.59 A1.03.61 A1.03.62 A1.04.57 A1.04.60 A1.04.62
+A1.03.61 A1.02.60 A1.02.62 A1.03.58 A1.03.59 A1.03.60 A1.03.62
+A1.03.62 A1.03.59 A1.03.60 A1.03.61 A1.04.60 A1.04.62
+A1.04.00 A1.03.00 A1.03.07 A1.04.06 A1.04.08
+A1.04.01 A1.04.02 A1.04.04 A1.04.10
+A1.04.02 A1.04.01 A1.04.03 A1.04.10 A1.04.11
+A1.04.03 A1.04.02 A1.04.05 A1.04.10 A1.04.11
+A1.04.04 A1.04.01 A1.04.10 A1.04.15 A1.05.02 A1.05.09 A1.05.13
+A1.04.05 A1.04.03 A1.04.07 A1.04.11 A1.04.12
+A1.04.06 A1.04.00 A1.04.08 A1.04.09 A1.04.12 A1.04.13 A1.04.14
+A1.04.07 A1.04.05 A1.04.09 A1.04.11 A1.04.12
+A1.04.08 A1.03.00 A1.03.07 A1.03.14 A1.04.00 A1.04.06 A1.04.13 A1.04.14
+A1.04.09 A1.04.06 A1.04.07 A1.04.12 A1.04.13
+A1.04.10 A1.04.01 A1.04.02 A1.04.03 A1.04.04 A1.04.11 A1.04.15 A1.04.16 A1.05.13
+A1.04.11 A1.04.02 A1.04.03 A1.04.05 A1.04.07 A1.04.10 A1.04.12 A1.04.15 A1.04.16 A1.04.17
+A1.04.12 A1.04.05 A1.04.06 A1.04.07 A1.04.09 A1.04.11 A1.04.13 A1.04.16 A1.04.17 A1.04.18
+A1.04.13 A1.04.06 A1.04.08 A1.04.09 A1.04.12 A1.04.14 A1.04.17 A1.04.18 A1.04.19
+A1.04.14 A1.03.07 A1.03.14 A1.03.19 A1.04.06 A1.04.08 A1.04.13 A1.04.18 A1.04.19
+A1.04.15 A1.04.04 A1.04.10 A1.04.11 A1.04.16 A1.04.20 A1.04.21 A1.05.13 A1.05.17
+A1.04.16 A1.04.10 A1.04.11 A1.04.12 A1.04.15 A1.04.17 A1.04.20 A1.04.21 A1.04.22
+A1.04.17 A1.04.11 A1.04.12 A1.04.13 A1.04.16 A1.04.18 A1.04.21 A1.04.22 A1.04.23
+A1.04.18 A1.04.12 A1.04.13 A1.04.14 A1.04.17 A1.04.19 A1.04.22 A1.04.23 A1.04.24
+A1.04.19 A1.03.14 A1.03.19 A1.03.24 A1.04.13 A1.04.14 A1.04.18 A1.04.23 A1.04.24
+A1.04.20 A1.04.15 A1.04.16 A1.04.21 A1.04.25 A1.05.13 A1.05.17 A1.05.21 A1.05.24
+A1.04.21 A1.04.15 A1.04.16 A1.04.17 A1.04.20 A1.04.22 A1.04.25 A1.04.26 A1.05.24
+A1.04.22 A1.04.16 A1.04.17 A1.04.18 A1.04.21 A1.04.23 A1.04.25 A1.04.26 A1.04.27
+A1.04.23 A1.04.17 A1.04.18 A1.04.19 A1.04.22 A1.04.24 A1.04.26 A1.04.27 A1.04.28
+A1.04.24 A1.03.19 A1.03.24 A1.03.28 A1.04.18 A1.04.19 A1.04.23 A1.04.27 A1.04.28
+A1.04.25 A1.04.20 A1.04.21 A1.04.22 A1.04.26 A1.04.29 A1.04.30 A1.05.24 A1.05.28
+A1.04.26 A1.04.21 A1.04.22 A1.04.23 A1.04.25 A1.04.27 A1.04.29 A1.04.30 A1.04.31
+A1.04.27 A1.04.22 A1.04.23 A1.04.24 A1.04.26 A1.04.28 A1.04.30 A1.04.31 A1.04.32
+A1.04.28 A1.03.24 A1.03.28 A1.03.32 A1.04.23 A1.04.24 A1.04.27 A1.04.31 A1.04.32
+A1.04.29 A1.04.25 A1.04.26 A1.04.30 A1.04.33 A1.04.34 A1.05.24 A1.05.28 A1.05.31
+A1.04.30 A1.04.25 A1.04.26 A1.04.27 A1.04.29 A1.04.31 A1.04.33 A1.04.34 A1.04.35
+A1.04.31 A1.04.26 A1.04.27 A1.04.28 A1.04.30 A1.04.32 A1.04.34 A1.04.35 A1.04.36
+A1.04.32 A1.03.28 A1.03.32 A1.03.36 A1.04.27 A1.04.28 A1.04.31 A1.04.35 A1.04.36
+A1.04.33 A1.04.29 A1.04.30 A1.04.34 A1.04.37 A1.05.28 A1.05.31 A1.05.34 A1.05.37
+A1.04.34 A1.04.29 A1.04.30 A1.04.31 A1.04.33 A1.04.35 A1.04.37 A1.04.38 A1.05.37
+A1.04.35 A1.04.30 A1.04.31 A1.04.32 A1.04.34 A1.04.36 A1.04.37 A1.04.38 A1.04.39
+A1.04.36 A1.03.32 A1.03.36 A1.03.39 A1.04.31 A1.04.32 A1.04.35 A1.04.38 A1.04.39
+A1.04.37 A1.04.33 A1.04.34 A1.04.35 A1.04.38 A1.04.40 A1.04.41 A1.05.37 A1.05.40
+A1.04.38 A1.04.34 A1.04.35 A1.04.36 A1.04.37 A1.04.39 A1.04.40 A1.04.41 A1.04.42
+A1.04.39 A1.03.36 A1.03.39 A1.03.42 A1.04.35 A1.04.36 A1.04.38 A1.04.41 A1.04.42
+A1.04.40 A1.04.37 A1.04.38 A1.04.41 A1.04.43 A1.04.44 A1.05.37 A1.05.40 A1.05.43
+A1.04.41 A1.04.37 A1.04.38 A1.04.39 A1.04.40 A1.04.42 A1.04.43 A1.04.44 A1.04.45
+A1.04.42 A1.03.39 A1.03.42 A1.03.45 A1.04.38 A1.04.39 A1.04.41 A1.04.44 A1.04.45
+A1.04.43 A1.04.40 A1.04.41 A1.04.44 A1.04.46 A1.05.40 A1.05.43 A1.05.45 A1.05.47
+A1.04.44 A1.04.40 A1.04.41 A1.04.42 A1.04.43 A1.04.45 A1.04.46 A1.04.47 A1.05.47
+A1.04.45 A1.03.42 A1.03.45 A1.03.47 A1.04.41 A1.04.42 A1.04.44 A1.04.46 A1.04.47
+A1.04.46 A1.04.43 A1.04.44 A1.04.45 A1.04.47 A1.04.48 A1.04.49 A1.05.47 A1.05.49
+A1.04.47 A1.03.45 A1.03.47 A1.03.49 A1.04.44 A1.04.45 A1.04.46 A1.04.48 A1.04.49
+A1.04.48 A1.04.46 A1.04.47 A1.04.49 A1.04.50 A1.04.51 A1.04.52 A1.05.47 A1.05.49 A1.05.51
+A1.04.49 A1.03.47 A1.03.49 A1.03.53 A1.04.46 A1.04.47 A1.04.48 A1.04.51 A1.04.52 A1.04.53
+A1.04.50 A1.04.48 A1.04.51 A1.04.54 A1.04.55 A1.05.49 A1.05.51
+A1.04.51 A1.04.48 A1.04.49 A1.04.50 A1.04.52 A1.04.54 A1.04.55 A1.04.56
+A1.04.52 A1.04.48 A1.04.49 A1.04.51 A1.04.53 A1.04.55 A1.04.56 A1.04.57
+A1.04.53 A1.03.49 A1.03.53 A1.03.57 A1.04.49 A1.04.52 A1.04.56 A1.04.57
+A1.04.54 A1.04.50 A1.04.51 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.55
+A1.04.55 A1.04.50 A1.04.51 A1.04.52 A1.04.54 A1.04.56 A1.04.58 A1.04.59 A1.05.55
+A1.04.56 A1.04.51 A1.04.52 A1.04.53 A1.04.55 A1.04.57 A1.04.58 A1.04.59 A1.04.60
+A1.04.57 A1.03.53 A1.03.57 A1.03.60 A1.04.52 A1.04.53 A1.04.56 A1.04.59 A1.04.60
+A1.04.58 A1.04.54 A1.04.55 A1.04.56 A1.04.59 A1.04.61 A1.05.55 A1.05.57 A1.05.59
+A1.04.59 A1.04.55 A1.04.56 A1.04.57 A1.04.58 A1.04.60 A1.04.61 A1.04.62 A1.05.59
+A1.04.60 A1.03.57 A1.03.60 A1.03.62 A1.04.56 A1.04.57 A1.04.59 A1.04.61 A1.04.62
+A1.04.61 A1.04.58 A1.04.59 A1.04.60 A1.04.62 A1.05.59 A1.05.62
+A1.04.62 A1.03.60 A1.03.62 A1.04.59 A1.04.60 A1.04.61 A1.05.62
+A1.05.00 A1.05.02 A1.05.05 A1.05.09
+A1.05.01 A1.05.03 A1.05.06 A1.05.12
+A1.05.02 A1.04.04 A1.05.00 A1.05.09 A1.05.13
+A1.05.03 A1.05.01 A1.05.06 A1.05.07 A1.05.08 A1.05.12
+A1.05.04 A1.05.05 A1.05.07 A1.05.10
+A1.05.05 A1.05.00 A1.05.04 A1.05.09 A1.05.10 A1.05.14
+A1.05.06 A1.05.01 A1.05.03 A1.05.11 A1.05.12 A1.05.16 A1.06.06
+A1.05.07 A1.05.03 A1.05.04 A1.05.08 A1.05.10
+A1.05.08 A1.05.03 A1.05.07 A1.05.10 A1.05.12 A1.05.15
+A1.05.09 A1.04.04 A1.05.00 A1.05.02 A1.05.05 A1.05.10 A1.05.13 A1.05.14 A1.05.17
+A1.05.10 A1.05.04 A1.05.05 A1.05.07 A1.05.08 A1.05.09 A1.05.12 A1.05.14 A1.05.15 A1.05.18
+A1.05.11 A1.05.06 A1.05.12 A1.05.16 A1.05.20 A1.06.06 A1.06.12 A1.06.17
+A1.05.12 A1.05.01 A1.05.03 A1.05.06 A1.05.08 A1.05.10 A1.05.11 A1.05.15 A1.05.16 A1.05.19
+A1.05.13 A1.04.04 A1.04.10 A1.04.15 A1.04.20 A1.05.02 A1.05.09 A1.05.14 A1.05.17
+A1.05.14 A1.05.05 A1.05.09 A1.05.10 A1.05.13 A1.05.15 A1.05.17 A1.05.18 A1.05.21
+A1.05.15 A1.05.08 A1.05.10 A1.05.12 A1.05.14 A1.05.16 A1.05.18 A1.05.19 A1.05.22
+A1.05.16 A1.05.06 A1.05.11 A1.05.12 A1.05.15 A1.05.19 A1.05.20 A1.05.23 A1.06.17
+A1.05.17 A1.04.15 A1.04.20 A1.05.09 A1.05.13 A1.05.14 A1.05.18 A1.05.21 A1.05.24
+A1.05.18 A1.05.10 A1.05.14 A1.05.15 A1.05.17 A1.05.19 A1.05.21 A1.05.22 A1.05.25
+A1.05.19 A1.05.12 A1.05.15 A1.05.16 A1.05.18 A1.05.20 A1.05.22 A1.05.23 A1.05.26
+A1.05.20 A1.05.11 A1.05.16 A1.05.19 A1.05.23 A1.05.27 A1.06.17 A1.06.20 A1.06.25
+A1.05.21 A1.04.20 A1.05.14 A1.05.17 A1.05.18 A1.05.22 A1.05.24 A1.05.25 A1.05.28
+A1.05.22 A1.05.15 A1.05.18 A1.05.19 A1.05.21 A1.05.23 A1.05.25 A1.05.26 A1.05.29
+A1.05.23 A1.05.16 A1.05.19 A1.05.20 A1.05.22 A1.05.26 A1.05.27 A1.05.30 A1.06.25
+A1.05.24 A1.04.20 A1.04.21 A1.04.25 A1.04.29 A1.05.17 A1.05.21 A1.05.25 A1.05.28
+A1.05.25 A1.05.18 A1.05.21 A1.05.22 A1.05.24 A1.05.26 A1.05.28 A1.05.29 A1.05.31
+A1.05.26 A1.05.19 A1.05.22 A1.05.23 A1.05.25 A1.05.27 A1.05.29 A1.05.30 A1.05.32
+A1.05.27 A1.05.20 A1.05.23 A1.05.26 A1.05.30 A1.05.33 A1.06.25 A1.06.28 A1.06.32
+A1.05.28 A1.04.25 A1.04.29 A1.04.33 A1.05.21 A1.05.24 A1.05.25 A1.05.29 A1.05.31
+A1.05.29 A1.05.22 A1.05.25 A1.05.26 A1.05.28 A1.05.30 A1.05.31 A1.05.32 A1.05.34
+A1.05.30 A1.05.23 A1.05.26 A1.05.27 A1.05.29 A1.05.32 A1.05.33 A1.05.36 A1.06.32
+A1.05.31 A1.04.29 A1.04.33 A1.05.25 A1.05.28 A1.05.29 A1.05.32 A1.05.34 A1.05.37
+A1.05.32 A1.05.26 A1.05.29 A1.05.30 A1.05.31 A1.05.33 A1.05.34 A1.05.36 A1.05.38
+A1.05.33 A1.05.27 A1.05.30 A1.05.32 A1.05.35 A1.05.36 A1.05.39 A1.06.32 A1.06.35
+A1.05.34 A1.04.33 A1.05.29 A1.05.31 A1.05.32 A1.05.36 A1.05.37 A1.05.38 A1.05.40
+A1.05.35 A1.05.33 A1.05.36 A1.05.39 A1.05.42 A1.06.32 A1.06.35 A1.06.37 A1.06.40
+A1.05.36 A1.05.30 A1.05.32 A1.05.33 A1.05.34 A1.05.35 A1.05.38 A1.05.39 A1.05.41
+A1.05.37 A1.04.33 A1.04.34 A1.04.37 A1.04.40 A1.05.31 A1.05.34 A1.05.38 A1.05.40
+A1.05.38 A1.05.32 A1.05.34 A1.05.36 A1.05.37 A1.05.39 A1.05.40 A1.05.41 A1.05.43
+A1.05.39 A1.05.33 A1.05.35 A1.05.36 A1.05.38 A1.05.41 A1.05.42 A1.05.44 A1.06.40
+A1.05.40 A1.04.37 A1.04.40 A1.04.43 A1.05.34 A1.05.37 A1.05.38 A1.05.41 A1.05.43
+A1.05.41 A1.05.36 A1.05.38 A1.05.39 A1.05.40 A1.05.42 A1.05.43 A1.05.44 A1.05.45
+A1.05.42 A1.05.35 A1.05.39 A1.05.41 A1.05.44 A1.05.46 A1.06.40 A1.06.42 A1.06.44
+A1.05.43 A1.04.40 A1.04.43 A1.05.38 A1.05.40 A1.05.41 A1.05.44 A1.05.45 A1.05.47
+A1.05.44 A1.05.39 A1.05.41 A1.05.42 A1.05.43 A1.05.45 A1.05.46 A1.05.48 A1.06.44
+A1.05.45 A1.04.43 A1.05.41 A1.05.43 A1.05.44 A1.05.46 A1.05.47 A1.05.48 A1.05.49
+A1.05.46 A1.05.42 A1.05.44 A1.05.45 A1.05.48 A1.05.50 A1.06.44 A1.06.46 A1.06.48
+A1.05.47 A1.04.43 A1.04.44 A1.04.46 A1.04.48 A1.05.43 A1.05.45 A1.05.48 A1.05.49
+A1.05.48 A1.05.44 A1.05.45 A1.05.46 A1.05.47 A1.05.49 A1.05.50 A1.05.51 A1.06.48
+A1.05.49 A1.04.46 A1.04.48 A1.04.50 A1.05.45 A1.05.47 A1.05.48 A1.05.50 A1.05.51
+A1.05.50 A1.05.46 A1.05.48 A1.05.49 A1.05.51 A1.05.52 A1.06.48 A1.06.49 A1.06.51
+A1.05.51 A1.04.48 A1.04.50 A1.04.54 A1.05.48 A1.05.49 A1.05.50 A1.05.52 A1.05.53 A1.05.55 A1.06.51
+A1.05.52 A1.05.50 A1.05.51 A1.05.53 A1.05.54 A1.05.56 A1.06.51
+A1.05.53 A1.04.54 A1.05.51 A1.05.52 A1.05.54 A1.05.55 A1.05.56 A1.05.57
+A1.05.54 A1.05.52 A1.05.53 A1.05.56 A1.05.58 A1.06.51 A1.06.55 A1.06.57
+A1.05.55 A1.04.54 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.56 A1.05.57 A1.05.59
+A1.05.56 A1.05.52 A1.05.53 A1.05.54 A1.05.55 A1.05.57 A1.05.58 A1.05.60 A1.06.57
+A1.05.57 A1.04.58 A1.05.53 A1.05.55 A1.05.56 A1.05.58 A1.05.59 A1.05.60
+A1.05.58 A1.05.54 A1.05.56 A1.05.57 A1.05.60 A1.05.61 A1.06.57 A1.06.59 A1.06.61
+A1.05.59 A1.04.58 A1.04.59 A1.04.61 A1.05.55 A1.05.57 A1.05.60 A1.05.62
+A1.05.60 A1.05.56 A1.05.57 A1.05.58 A1.05.59 A1.05.61 A1.05.62 A1.06.61
+A1.05.61 A1.05.58 A1.05.60 A1.05.62 A1.06.61 A1.06.62
+A1.05.62 A1.04.61 A1.04.62 A1.05.59 A1.05.60 A1.05.61
+A1.06.00 A1.06.02 A1.06.03 A1.06.11
+A1.06.01 A1.06.04 A1.06.06 A1.06.08 A1.06.12
+A1.06.02 A1.06.00 A1.06.05 A1.06.11 A1.06.13
+A1.06.03 A1.06.00 A1.06.07 A1.06.09 A1.06.11
+A1.06.04 A1.06.01 A1.06.08 A1.06.10
+A1.06.05 A1.06.02 A1.06.11 A1.06.13 A1.07.00 A1.07.08
+A1.06.06 A1.05.06 A1.05.11 A1.06.01 A1.06.12 A1.06.17
+A1.06.07 A1.06.03 A1.06.09 A1.06.10 A1.06.14
+A1.06.08 A1.06.01 A1.06.04 A1.06.10 A1.06.12 A1.06.15
+A1.06.09 A1.06.03 A1.06.07 A1.06.11 A1.06.14 A1.06.16
+A1.06.10 A1.06.04 A1.06.07 A1.06.08 A1.06.12 A1.06.14 A1.06.15 A1.06.18
+A1.06.11 A1.06.00 A1.06.02 A1.06.03 A1.06.05 A1.06.09 A1.06.13 A1.06.14 A1.06.16 A1.06.19
+A1.06.12 A1.05.11 A1.06.01 A1.06.06 A1.06.08 A1.06.10 A1.06.15 A1.06.17 A1.06.20
+A1.06.13 A1.06.02 A1.06.05 A1.06.11 A1.06.16 A1.06.19 A1.06.21 A1.07.07 A1.07.08 A1.07.18
+A1.06.14 A1.06.07 A1.06.09 A1.06.10 A1.06.11 A1.06.15 A1.06.16 A1.06.18 A1.06.22
+A1.06.15 A1.06.08 A1.06.10 A1.06.12 A1.06.14 A1.06.17 A1.06.18 A1.06.20 A1.06.23
+A1.06.16 A1.06.09 A1.06.11 A1.06.13 A1.06.14 A1.06.18 A1.06.19 A1.06.22 A1.06.24
+A1.06.17 A1.05.11 A1.05.16 A1.05.20 A1.06.06 A1.06.12 A1.06.15 A1.06.20 A1.06.25
+A1.06.18 A1.06.10 A1.06.14 A1.06.15 A1.06.16 A1.06.20 A1.06.22 A1.06.23 A1.06.27
+A1.06.19 A1.06.11 A1.06.13 A1.06.16 A1.06.21 A1.06.22 A1.06.24 A1.06.26 A1.07.18
+A1.06.20 A1.05.20 A1.06.12 A1.06.15 A1.06.17 A1.06.18 A1.06.23 A1.06.25 A1.06.28
+A1.06.21 A1.06.13 A1.06.19 A1.06.24 A1.06.26 A1.07.18 A1.07.19 A1.07.24 A1.07.29
+A1.06.22 A1.06.14 A1.06.16 A1.06.18 A1.06.19 A1.06.23 A1.06.24 A1.06.27 A1.06.29
+A1.06.23 A1.06.15 A1.06.18 A1.06.20 A1.06.22 A1.06.25 A1.06.27 A1.06.28 A1.06.30
+A1.06.24 A1.06.16 A1.06.19 A1.06.21 A1.06.22 A1.06.26 A1.06.27 A1.06.29 A1.06.31
+A1.06.25 A1.05.20 A1.05.23 A1.05.27 A1.06.17 A1.06.20 A1.06.23 A1.06.28 A1.06.32
+A1.06.26 A1.06.19 A1.06.21 A1.06.24 A1.06.29 A1.06.31 A1.06.33 A1.07.24 A1.07.29
+A1.06.27 A1.06.18 A1.06.22 A1.06.23 A1.06.24 A1.06.28 A1.06.29 A1.06.30 A1.06.34
+A1.06.28 A1.05.27 A1.06.20 A1.06.23 A1.06.25 A1.06.27 A1.06.30 A1.06.32 A1.06.35
+A1.06.29 A1.06.22 A1.06.24 A1.06.26 A1.06.27 A1.06.30 A1.06.31 A1.06.34 A1.06.36
+A1.06.30 A1.06.23 A1.06.27 A1.06.28 A1.06.29 A1.06.32 A1.06.34 A1.06.35 A1.06.37
+A1.06.31 A1.06.24 A1.06.26 A1.06.29 A1.06.33 A1.06.34 A1.06.36 A1.06.38 A1.07.29
+A1.06.32 A1.05.27 A1.05.30 A1.05.33 A1.05.35 A1.06.25 A1.06.28 A1.06.30 A1.06.35
+A1.06.33 A1.06.26 A1.06.31 A1.06.36 A1.06.38 A1.07.29 A1.07.30 A1.07.34 A1.07.38
+A1.06.34 A1.06.27 A1.06.29 A1.06.30 A1.06.31 A1.06.35 A1.06.36 A1.06.37 A1.06.39
+A1.06.35 A1.05.33 A1.05.35 A1.06.28 A1.06.30 A1.06.32 A1.06.34 A1.06.37 A1.06.40
+A1.06.36 A1.06.29 A1.06.31 A1.06.33 A1.06.34 A1.06.37 A1.06.38 A1.06.39 A1.06.41
+A1.06.37 A1.05.35 A1.06.30 A1.06.34 A1.06.35 A1.06.36 A1.06.39 A1.06.40 A1.06.42
+A1.06.38 A1.06.31 A1.06.33 A1.06.36 A1.06.39 A1.06.41 A1.07.34 A1.07.38 A1.07.42
+A1.06.39 A1.06.34 A1.06.36 A1.06.37 A1.06.38 A1.06.40 A1.06.41 A1.06.42 A1.06.43
+A1.06.40 A1.05.35 A1.05.39 A1.05.42 A1.06.35 A1.06.37 A1.06.39 A1.06.42 A1.06.44
+A1.06.41 A1.06.36 A1.06.38 A1.06.39 A1.06.42 A1.06.43 A1.06.45 A1.07.38 A1.07.42
+A1.06.42 A1.05.42 A1.06.37 A1.06.39 A1.06.40 A1.06.41 A1.06.43 A1.06.44 A1.06.46
+A1.06.43 A1.06.39 A1.06.41 A1.06.42 A1.06.44 A1.06.45 A1.06.46 A1.06.47 A1.07.42
+A1.06.44 A1.05.42 A1.05.44 A1.05.46 A1.06.40 A1.06.42 A1.06.43 A1.06.46 A1.06.48
+A1.06.45 A1.06.41 A1.06.43 A1.06.46 A1.06.47 A1.07.42 A1.07.43 A1.07.46 A1.07.49
+A1.06.46 A1.05.46 A1.06.42 A1.06.43 A1.06.44 A1.06.45 A1.06.47 A1.06.48 A1.06.49
+A1.06.47 A1.06.43 A1.06.45 A1.06.46 A1.06.48 A1.06.49 A1.06.50 A1.07.46 A1.07.49
+A1.06.48 A1.05.46 A1.05.48 A1.05.50 A1.06.44 A1.06.46 A1.06.47 A1.06.49 A1.06.51
+A1.06.49 A1.05.50 A1.06.46 A1.06.47 A1.06.48 A1.06.50 A1.06.51 A1.06.52 A1.07.49
+A1.06.50 A1.06.47 A1.06.49 A1.06.51 A1.06.52 A1.06.53 A1.06.54 A1.07.49 A1.07.50 A1.07.52
+A1.06.51 A1.05.50 A1.05.51 A1.05.52 A1.05.54 A1.06.48 A1.06.49 A1.06.50 A1.06.52 A1.06.55 A1.06.57
+A1.06.52 A1.06.49 A1.06.50 A1.06.51 A1.06.53 A1.06.55 A1.06.56
+A1.06.53 A1.06.50 A1.06.52 A1.06.54 A1.06.55 A1.06.56 A1.06.58 A1.07.52
+A1.06.54 A1.06.50 A1.06.53 A1.06.56 A1.06.58 A1.07.52 A1.07.54 A1.07.57
+A1.06.55 A1.05.54 A1.06.51 A1.06.52 A1.06.53 A1.06.56 A1.06.57 A1.06.59
+A1.06.56 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.57 A1.06.58 A1.06.59 A1.06.60
+A1.06.57 A1.05.54 A1.05.56 A1.05.58 A1.06.51 A1.06.55 A1.06.56 A1.06.59 A1.06.61
+A1.06.58 A1.06.53 A1.06.54 A1.06.56 A1.06.59 A1.06.60 A1.07.54 A1.07.57 A1.07.60
+A1.06.59 A1.05.58 A1.06.55 A1.06.56 A1.06.57 A1.06.58 A1.06.60 A1.06.61 A1.06.62
+A1.06.60 A1.06.56 A1.06.58 A1.06.59 A1.06.61 A1.06.62 A1.07.57 A1.07.60
+A1.06.61 A1.05.58 A1.05.60 A1.05.61 A1.06.57 A1.06.59 A1.06.60 A1.06.62
+A1.06.62 A1.05.61 A1.06.59 A1.06.60 A1.06.61 A1.07.60
+A1.07.00 A1.06.05 A1.07.07 A1.07.08
+A1.07.01 A1.07.02 A1.07.04 A1.07.06 A1.07.10 A1.07.11
+A1.07.02 A1.07.01 A1.07.11 A1.07.12 A1.08.01 A1.08.11
+A1.07.03 A1.07.07 A1.07.13 A1.07.14
+A1.07.04 A1.07.01 A1.07.05 A1.07.06 A1.07.09
+A1.07.05 A1.07.04 A1.07.09 A1.07.14 A1.07.15
+A1.07.06 A1.07.01 A1.07.04 A1.07.09 A1.07.10 A1.07.15 A1.07.16
+A1.07.07 A1.06.13 A1.07.00 A1.07.03 A1.07.08 A1.07.13 A1.07.18 A1.07.19
+A1.07.08 A1.06.05 A1.06.13 A1.07.00 A1.07.07 A1.07.18
+A1.07.09 A1.07.04 A1.07.05 A1.07.06 A1.07.15 A1.07.16
+A1.07.10 A1.07.01 A1.07.06 A1.07.11 A1.07.16 A1.07.17
+A1.07.11 A1.07.01 A1.07.02 A1.07.10 A1.07.12 A1.07.16 A1.07.17
+A1.07.12 A1.07.02 A1.07.11 A1.07.17 A1.08.01 A1.08.11 A1.08.16
+A1.07.13 A1.07.03 A1.07.07 A1.07.14 A1.07.18 A1.07.19 A1.07.20
+A1.07.14 A1.07.03 A1.07.05 A1.07.13 A1.07.15 A1.07.19 A1.07.20 A1.07.21
+A1.07.15 A1.07.05 A1.07.06 A1.07.09 A1.07.14 A1.07.16 A1.07.20 A1.07.21 A1.07.22
+A1.07.16 A1.07.06 A1.07.09 A1.07.10 A1.07.11 A1.07.15 A1.07.17 A1.07.21 A1.07.22 A1.07.23
+A1.07.17 A1.07.10 A1.07.11 A1.07.12 A1.07.16 A1.07.22 A1.07.23 A1.08.11 A1.08.16 A1.08.22
+A1.07.18 A1.06.13 A1.06.19 A1.06.21 A1.07.07 A1.07.08 A1.07.13 A1.07.19 A1.07.24
+A1.07.19 A1.06.21 A1.07.07 A1.07.13 A1.07.14 A1.07.18 A1.07.20 A1.07.24 A1.07.25
+A1.07.20 A1.07.13 A1.07.14 A1.07.15 A1.07.19 A1.07.21 A1.07.24 A1.07.25 A1.07.26
+A1.07.21 A1.07.14 A1.07.15 A1.07.16 A1.07.20 A1.07.22 A1.07.25 A1.07.26 A1.07.27
+A1.07.22 A1.07.15 A1.07.16 A1.07.17 A1.07.21 A1.07.23 A1.07.26 A1.07.27 A1.07.28
+A1.07.23 A1.07.16 A1.07.17 A1.07.22 A1.07.27 A1.07.28 A1.08.16 A1.08.22 A1.08.27
+A1.07.24 A1.06.21 A1.06.26 A1.07.18 A1.07.19 A1.07.20 A1.07.25 A1.07.29 A1.07.30
+A1.07.25 A1.07.19 A1.07.20 A1.07.21 A1.07.24 A1.07.26 A1.07.29 A1.07.30 A1.07.31
+A1.07.26 A1.07.20 A1.07.21 A1.07.22 A1.07.25 A1.07.27 A1.07.30 A1.07.31 A1.07.32
+A1.07.27 A1.07.21 A1.07.22 A1.07.23 A1.07.26 A1.07.28 A1.07.31 A1.07.32 A1.07.33
+A1.07.28 A1.07.22 A1.07.23 A1.07.27 A1.07.32 A1.07.33 A1.08.22 A1.08.27 A1.08.32
+A1.07.29 A1.06.21 A1.06.26 A1.06.31 A1.06.33 A1.07.24 A1.07.25 A1.07.30 A1.07.34
+A1.07.30 A1.06.33 A1.07.24 A1.07.25 A1.07.26 A1.07.29 A1.07.31 A1.07.34 A1.07.35
+A1.07.31 A1.07.25 A1.07.26 A1.07.27 A1.07.30 A1.07.32 A1.07.34 A1.07.35 A1.07.36
+A1.07.32 A1.07.26 A1.07.27 A1.07.28 A1.07.31 A1.07.33 A1.07.35 A1.07.36 A1.07.37
+A1.07.33 A1.07.27 A1.07.28 A1.07.32 A1.07.36 A1.07.37 A1.08.27 A1.08.32 A1.08.36
+A1.07.34 A1.06.33 A1.06.38 A1.07.29 A1.07.30 A1.07.31 A1.07.35 A1.07.38 A1.07.39
+A1.07.35 A1.07.30 A1.07.31 A1.07.32 A1.07.34 A1.07.36 A1.07.38 A1.07.39 A1.07.40
+A1.07.36 A1.07.31 A1.07.32 A1.07.33 A1.07.35 A1.07.37 A1.07.39 A1.07.40 A1.07.41
+A1.07.37 A1.07.32 A1.07.33 A1.07.36 A1.07.40 A1.07.41 A1.08.32 A1.08.36 A1.08.40
+A1.07.38 A1.06.33 A1.06.38 A1.06.41 A1.07.34 A1.07.35 A1.07.39 A1.07.42 A1.07.43
+A1.07.39 A1.07.34 A1.07.35 A1.07.36 A1.07.38 A1.07.40 A1.07.42 A1.07.43 A1.07.44
+A1.07.40 A1.07.35 A1.07.36 A1.07.37 A1.07.39 A1.07.41 A1.07.43 A1.07.44 A1.07.45
+A1.07.41 A1.07.36 A1.07.37 A1.07.40 A1.07.44 A1.07.45 A1.08.36 A1.08.40 A1.08.44
+A1.07.42 A1.06.38 A1.06.41 A1.06.43 A1.06.45 A1.07.38 A1.07.39 A1.07.43 A1.07.46
+A1.07.43 A1.06.45 A1.07.38 A1.07.39 A1.07.40 A1.07.42 A1.07.44 A1.07.46 A1.07.47
+A1.07.44 A1.07.39 A1.07.40 A1.07.41 A1.07.43 A1.07.45 A1.07.46 A1.07.47 A1.07.48
+A1.07.45 A1.07.40 A1.07.41 A1.07.44 A1.07.47 A1.07.48 A1.08.40 A1.08.44 A1.08.47
+A1.07.46 A1.06.45 A1.06.47 A1.07.42 A1.07.43 A1.07.44 A1.07.47 A1.07.49 A1.07.50
+A1.07.47 A1.07.43 A1.07.44 A1.07.45 A1.07.46 A1.07.48 A1.07.49 A1.07.50 A1.07.51
+A1.07.48 A1.07.44 A1.07.45 A1.07.47 A1.07.50 A1.07.51 A1.08.44 A1.08.47 A1.08.50
+A1.07.49 A1.06.45 A1.06.47 A1.06.49 A1.06.50 A1.07.46 A1.07.47 A1.07.50 A1.07.52
+A1.07.50 A1.06.50 A1.07.46 A1.07.47 A1.07.48 A1.07.49 A1.07.51 A1.07.52 A1.07.53
+A1.07.51 A1.07.47 A1.07.48 A1.07.50 A1.07.52 A1.07.53 A1.08.47 A1.08.50 A1.08.52
+A1.07.52 A1.06.50 A1.06.53 A1.06.54 A1.07.49 A1.07.50 A1.07.51 A1.07.53 A1.07.54 A1.07.55
+A1.07.53 A1.07.50 A1.07.51 A1.07.52 A1.07.54 A1.07.55 A1.07.56 A1.08.50 A1.08.52 A1.08.56
+A1.07.54 A1.06.54 A1.06.58 A1.07.52 A1.07.53 A1.07.55 A1.07.57 A1.07.58
+A1.07.55 A1.07.52 A1.07.53 A1.07.54 A1.07.56 A1.07.57 A1.07.58 A1.07.59
+A1.07.56 A1.07.53 A1.07.55 A1.07.58 A1.07.59 A1.08.52 A1.08.56 A1.08.59
+A1.07.57 A1.06.54 A1.06.58 A1.06.60 A1.07.54 A1.07.55 A1.07.58 A1.07.60 A1.07.61
+A1.07.58 A1.07.54 A1.07.55 A1.07.56 A1.07.57 A1.07.59 A1.07.60 A1.07.61 A1.07.62
+A1.07.59 A1.07.55 A1.07.56 A1.07.58 A1.07.61 A1.07.62 A1.08.56 A1.08.59 A1.08.62
+A1.07.60 A1.06.58 A1.06.60 A1.06.62 A1.07.57 A1.07.58 A1.07.61
+A1.07.61 A1.07.57 A1.07.58 A1.07.59 A1.07.60 A1.07.62
+A1.07.62 A1.07.58 A1.07.59 A1.07.61 A1.08.59 A1.08.62
+A1.08.00 A1.08.07 A1.08.12
+A1.08.01 A1.07.02 A1.07.12 A1.08.02 A1.08.10 A1.08.11
+A1.08.02 A1.08.01 A1.08.03 A1.08.06 A1.08.09 A1.08.10
+A1.08.03 A1.08.02 A1.08.05 A1.08.06 A1.08.14 A1.08.15
+A1.08.04 A1.08.05 A1.08.12 A1.08.13 A1.08.14
+A1.08.05 A1.08.03 A1.08.04 A1.08.13 A1.08.14
+A1.08.06 A1.08.02 A1.08.03 A1.08.09 A1.08.14 A1.08.15
+A1.08.07 A1.08.00 A1.08.08 A1.08.12 A1.08.17 A1.08.18 A1.09.13
+A1.08.08 A1.08.07 A1.08.17 A1.09.02 A1.09.13
+A1.08.09 A1.08.02 A1.08.06 A1.08.10 A1.08.15 A1.08.16
+A1.08.10 A1.08.01 A1.08.02 A1.08.09 A1.08.11 A1.08.15 A1.08.16
+A1.08.11 A1.07.02 A1.07.12 A1.07.17 A1.08.01 A1.08.10 A1.08.16
+A1.08.12 A1.08.00 A1.08.04 A1.08.07 A1.08.13 A1.08.17 A1.08.18 A1.08.19
+A1.08.13 A1.08.04 A1.08.05 A1.08.12 A1.08.14 A1.08.18 A1.08.19 A1.08.20
+A1.08.14 A1.08.03 A1.08.04 A1.08.05 A1.08.06 A1.08.13 A1.08.15 A1.08.19 A1.08.20 A1.08.21
+A1.08.15 A1.08.03 A1.08.06 A1.08.09 A1.08.10 A1.08.14 A1.08.16 A1.08.20 A1.08.21 A1.08.22
+A1.08.16 A1.07.12 A1.07.17 A1.07.23 A1.08.09 A1.08.10 A1.08.11 A1.08.15 A1.08.21 A1.08.22
+A1.08.17 A1.08.07 A1.08.08 A1.08.12 A1.08.18 A1.08.23 A1.09.13 A1.09.19 A1.09.21
+A1.08.18 A1.08.07 A1.08.12 A1.08.13 A1.08.17 A1.08.19 A1.08.23 A1.08.24 A1.09.21
+A1.08.19 A1.08.12 A1.08.13 A1.08.14 A1.08.18 A1.08.20 A1.08.23 A1.08.24 A1.08.25
+A1.08.20 A1.08.13 A1.08.14 A1.08.15 A1.08.19 A1.08.21 A1.08.24 A1.08.25 A1.08.26
+A1.08.21 A1.08.14 A1.08.15 A1.08.16 A1.08.20 A1.08.22 A1.08.25 A1.08.26 A1.08.27
+A1.08.22 A1.07.17 A1.07.23 A1.07.28 A1.08.15 A1.08.16 A1.08.21 A1.08.26 A1.08.27
+A1.08.23 A1.08.17 A1.08.18 A1.08.19 A1.08.24 A1.08.28 A1.08.29 A1.09.21 A1.09.26
+A1.08.24 A1.08.18 A1.08.19 A1.08.20 A1.08.23 A1.08.25 A1.08.28 A1.08.29 A1.08.30
+A1.08.25 A1.08.19 A1.08.20 A1.08.21 A1.08.24 A1.08.26 A1.08.29 A1.08.30 A1.08.31
+A1.08.26 A1.08.20 A1.08.21 A1.08.22 A1.08.25 A1.08.27 A1.08.30 A1.08.31 A1.08.32
+A1.08.27 A1.07.23 A1.07.28 A1.07.33 A1.08.21 A1.08.22 A1.08.26 A1.08.31 A1.08.32
+A1.08.28 A1.08.23 A1.08.24 A1.08.29 A1.08.33 A1.09.21 A1.09.26 A1.09.31 A1.09.33
+A1.08.29 A1.08.23 A1.08.24 A1.08.25 A1.08.28 A1.08.30 A1.08.33 A1.08.34 A1.09.33
+A1.08.30 A1.08.24 A1.08.25 A1.08.26 A1.08.29 A1.08.31 A1.08.33 A1.08.34 A1.08.35
+A1.08.31 A1.08.25 A1.08.26 A1.08.27 A1.08.30 A1.08.32 A1.08.34 A1.08.35 A1.08.36
+A1.08.32 A1.07.28 A1.07.33 A1.07.37 A1.08.26 A1.08.27 A1.08.31 A1.08.35 A1.08.36
+A1.08.33 A1.08.28 A1.08.29 A1.08.30 A1.08.34 A1.08.37 A1.08.38 A1.09.33 A1.09.38
+A1.08.34 A1.08.29 A1.08.30 A1.08.31 A1.08.33 A1.08.35 A1.08.37 A1.08.38 A1.08.39
+A1.08.35 A1.08.30 A1.08.31 A1.08.32 A1.08.34 A1.08.36 A1.08.38 A1.08.39 A1.08.40
+A1.08.36 A1.07.33 A1.07.37 A1.07.41 A1.08.31 A1.08.32 A1.08.35 A1.08.39 A1.08.40
+A1.08.37 A1.08.33 A1.08.34 A1.08.38 A1.08.41 A1.08.42 A1.09.33 A1.09.38 A1.09.41
+A1.08.38 A1.08.33 A1.08.34 A1.08.35 A1.08.37 A1.08.39 A1.08.41 A1.08.42 A1.08.43
+A1.08.39 A1.08.34 A1.08.35 A1.08.36 A1.08.38 A1.08.40 A1.08.42 A1.08.43 A1.08.44
+A1.08.40 A1.07.37 A1.07.41 A1.07.45 A1.08.35 A1.08.36 A1.08.39 A1.08.43 A1.08.44
+A1.08.41 A1.08.37 A1.08.38 A1.08.42 A1.08.45 A1.09.38 A1.09.41 A1.09.43 A1.09.45
+A1.08.42 A1.08.37 A1.08.38 A1.08.39 A1.08.41 A1.08.43 A1.08.45 A1.08.46 A1.09.45
+A1.08.43 A1.08.38 A1.08.39 A1.08.40 A1.08.42 A1.08.44 A1.08.45 A1.08.46 A1.08.47
+A1.08.44 A1.07.41 A1.07.45 A1.07.48 A1.08.39 A1.08.40 A1.08.43 A1.08.46 A1.08.47
+A1.08.45 A1.08.41 A1.08.42 A1.08.43 A1.08.46 A1.08.48 A1.08.49 A1.09.45 A1.09.47
+A1.08.46 A1.08.42 A1.08.43 A1.08.44 A1.08.45 A1.08.47 A1.08.48 A1.08.49 A1.08.50
+A1.08.47 A1.07.45 A1.07.48 A1.07.51 A1.08.43 A1.08.44 A1.08.46 A1.08.49 A1.08.50
+A1.08.48 A1.08.45 A1.08.46 A1.08.49 A1.08.51 A1.09.45 A1.09.47 A1.09.49 A1.09.50
+A1.08.49 A1.08.45 A1.08.46 A1.08.47 A1.08.48 A1.08.50 A1.08.51 A1.08.52 A1.09.50
+A1.08.50 A1.07.48 A1.07.51 A1.07.53 A1.08.46 A1.08.47 A1.08.49 A1.08.51 A1.08.52
+A1.08.51 A1.08.48 A1.08.49 A1.08.50 A1.08.52 A1.08.53 A1.08.54 A1.08.55 A1.09.50 A1.09.53
+A1.08.52 A1.07.51 A1.07.53 A1.07.56 A1.08.49 A1.08.50 A1.08.51 A1.08.54 A1.08.55 A1.08.56
+A1.08.53 A1.08.51 A1.08.54 A1.08.57 A1.09.50 A1.09.53 A1.09.55 A1.09.57
+A1.08.54 A1.08.51 A1.08.52 A1.08.53 A1.08.55 A1.08.57 A1.08.58 A1.09.57
+A1.08.55 A1.08.51 A1.08.52 A1.08.54 A1.08.56 A1.08.57 A1.08.58 A1.08.59
+A1.08.56 A1.07.53 A1.07.56 A1.07.59 A1.08.52 A1.08.55 A1.08.58 A1.08.59
+A1.08.57 A1.08.53 A1.08.54 A1.08.55 A1.08.58 A1.08.60 A1.08.61 A1.09.57 A1.09.59
+A1.08.58 A1.08.54 A1.08.55 A1.08.56 A1.08.57 A1.08.59 A1.08.60 A1.08.61 A1.08.62
+A1.08.59 A1.07.56 A1.07.59 A1.07.62 A1.08.55 A1.08.56 A1.08.58 A1.08.61 A1.08.62
+A1.08.60 A1.08.57 A1.08.58 A1.08.61 A1.09.57 A1.09.59 A1.09.62
+A1.08.61 A1.08.57 A1.08.58 A1.08.59 A1.08.60 A1.08.62 A1.09.62
+A1.08.62 A1.07.59 A1.07.62 A1.08.58 A1.08.59 A1.08.61
+A1.09.00 A1.09.04 A1.09.06 A1.09.08 A1.09.12
+A1.09.01 A1.09.03 A1.09.05 A1.09.11
+A1.09.02 A1.08.08 A1.09.05 A1.09.13
+A1.09.03 A1.09.01 A1.09.07 A1.09.09 A1.09.11
+A1.09.04 A1.09.00 A1.09.08 A1.09.10
+A1.09.05 A1.09.01 A1.09.02 A1.09.11 A1.09.13
+A1.09.06 A1.09.00 A1.09.12 A1.09.17 A1.10.06 A1.10.12
+A1.09.07 A1.09.03 A1.09.09 A1.09.10 A1.09.14
+A1.09.08 A1.09.00 A1.09.04 A1.09.10 A1.09.12 A1.09.15
+A1.09.09 A1.09.03 A1.09.07 A1.09.11 A1.09.14 A1.09.16
+A1.09.10 A1.09.04 A1.09.07 A1.09.08 A1.09.12 A1.09.14 A1.09.15 A1.09.18
+A1.09.11 A1.09.01 A1.09.03 A1.09.05 A1.09.09 A1.09.13 A1.09.14 A1.09.16 A1.09.19
+A1.09.12 A1.09.00 A1.09.06 A1.09.08 A1.09.10 A1.09.15 A1.09.17 A1.09.20 A1.10.12
+A1.09.13 A1.08.07 A1.08.08 A1.08.17 A1.09.02 A1.09.05 A1.09.11 A1.09.16 A1.09.19 A1.09.21
+A1.09.14 A1.09.07 A1.09.09 A1.09.10 A1.09.11 A1.09.15 A1.09.16 A1.09.18 A1.09.22
+A1.09.15 A1.09.08 A1.09.10 A1.09.12 A1.09.14 A1.09.17 A1.09.18 A1.09.20 A1.09.23
+A1.09.16 A1.09.09 A1.09.11 A1.09.13 A1.09.14 A1.09.18 A1.09.19 A1.09.22 A1.09.24
+A1.09.17 A1.09.06 A1.09.12 A1.09.15 A1.09.20 A1.09.25 A1.10.12 A1.10.17 A1.10.21
+A1.09.18 A1.09.10 A1.09.14 A1.09.15 A1.09.16 A1.09.20 A1.09.22 A1.09.23 A1.09.27
+A1.09.19 A1.08.17 A1.09.11 A1.09.13 A1.09.16 A1.09.21 A1.09.22 A1.09.24 A1.09.26
+A1.09.20 A1.09.12 A1.09.15 A1.09.17 A1.09.18 A1.09.23 A1.09.25 A1.09.28 A1.10.21
+A1.09.21 A1.08.17 A1.08.18 A1.08.23 A1.08.28 A1.09.13 A1.09.19 A1.09.24 A1.09.26
+A1.09.22 A1.09.14 A1.09.16 A1.09.18 A1.09.19 A1.09.23 A1.09.24 A1.09.27 A1.09.29
+A1.09.23 A1.09.15 A1.09.18 A1.09.20 A1.09.22 A1.09.25 A1.09.27 A1.09.28 A1.09.30
+A1.09.24 A1.09.16 A1.09.19 A1.09.21 A1.09.22 A1.09.26 A1.09.27 A1.09.29 A1.09.31
+A1.09.25 A1.09.17 A1.09.20 A1.09.23 A1.09.28 A1.09.32 A1.10.21 A1.10.24 A1.10.28
+A1.09.26 A1.08.23 A1.08.28 A1.09.19 A1.09.21 A1.09.24 A1.09.29 A1.09.31 A1.09.33
+A1.09.27 A1.09.18 A1.09.22 A1.09.23 A1.09.24 A1.09.28 A1.09.29 A1.09.30 A1.09.34
+A1.09.28 A1.09.20 A1.09.23 A1.09.25 A1.09.27 A1.09.30 A1.09.32 A1.09.35 A1.10.28
+A1.09.29 A1.09.22 A1.09.24 A1.09.26 A1.09.27 A1.09.30 A1.09.31 A1.09.34 A1.09.36
+A1.09.30 A1.09.23 A1.09.27 A1.09.28 A1.09.29 A1.09.32 A1.09.34 A1.09.35 A1.09.37
+A1.09.31 A1.08.28 A1.09.24 A1.09.26 A1.09.29 A1.09.33 A1.09.34 A1.09.36 A1.09.38
+A1.09.32 A1.09.25 A1.09.28 A1.09.30 A1.09.35 A1.10.28 A1.10.31 A1.10.34 A1.10.36
+A1.09.33 A1.08.28 A1.08.29 A1.08.33 A1.08.37 A1.09.26 A1.09.31 A1.09.36 A1.09.38
+A1.09.34 A1.09.27 A1.09.29 A1.09.30 A1.09.31 A1.09.35 A1.09.36 A1.09.37 A1.09.39
+A1.09.35 A1.09.28 A1.09.30 A1.09.32 A1.09.34 A1.09.37 A1.09.40 A1.10.34 A1.10.36
+A1.09.36 A1.09.29 A1.09.31 A1.09.33 A1.09.34 A1.09.37 A1.09.38 A1.09.39 A1.09.41
+A1.09.37 A1.09.30 A1.09.34 A1.09.35 A1.09.36 A1.09.39 A1.09.40 A1.09.42 A1.10.36
+A1.09.38 A1.08.33 A1.08.37 A1.08.41 A1.09.31 A1.09.33 A1.09.36 A1.09.39 A1.09.41
+A1.09.39 A1.09.34 A1.09.36 A1.09.37 A1.09.38 A1.09.40 A1.09.41 A1.09.42 A1.09.43
+A1.09.40 A1.09.35 A1.09.37 A1.09.39 A1.09.42 A1.09.44 A1.10.36 A1.10.40 A1.10.43
+A1.09.41 A1.08.37 A1.08.41 A1.09.36 A1.09.38 A1.09.39 A1.09.42 A1.09.43 A1.09.45
+A1.09.42 A1.09.37 A1.09.39 A1.09.40 A1.09.41 A1.09.43 A1.09.44 A1.09.46 A1.10.43
+A1.09.43 A1.08.41 A1.09.39 A1.09.41 A1.09.42 A1.09.44 A1.09.45 A1.09.46 A1.09.47
+A1.09.44 A1.09.40 A1.09.42 A1.09.43 A1.09.46 A1.09.48 A1.10.43 A1.10.45 A1.10.47
+A1.09.45 A1.08.41 A1.08.42 A1.08.45 A1.08.48 A1.09.41 A1.09.43 A1.09.46 A1.09.47
+A1.09.46 A1.09.42 A1.09.43 A1.09.44 A1.09.45 A1.09.47 A1.09.48 A1.09.49 A1.10.47
+A1.09.47 A1.08.45 A1.08.48 A1.09.43 A1.09.45 A1.09.46 A1.09.48 A1.09.49 A1.09.50
+A1.09.48 A1.09.44 A1.09.46 A1.09.47 A1.09.49 A1.09.51 A1.10.47 A1.10.49 A1.10.51
+A1.09.49 A1.08.48 A1.09.46 A1.09.47 A1.09.48 A1.09.50 A1.09.51 A1.09.52 A1.10.51
+A1.09.50 A1.08.48 A1.08.49 A1.08.51 A1.08.53 A1.09.47 A1.09.49 A1.09.51 A1.09.52 A1.09.53
+A1.09.51 A1.09.48 A1.09.49 A1.09.50 A1.09.52 A1.09.54 A1.09.56 A1.10.51 A1.10.52 A1.10.53 A1.10.55
+A1.09.52 A1.09.49 A1.09.50 A1.09.51 A1.09.53 A1.09.54 A1.09.55
+A1.09.53 A1.08.51 A1.08.53 A1.09.50 A1.09.52 A1.09.54 A1.09.55 A1.09.57
+A1.09.54 A1.09.51 A1.09.52 A1.09.53 A1.09.55 A1.09.56 A1.09.58 A1.10.55
+A1.09.55 A1.08.53 A1.09.52 A1.09.53 A1.09.54 A1.09.56 A1.09.57 A1.09.58 A1.09.59
+A1.09.56 A1.09.51 A1.09.54 A1.09.55 A1.09.58 A1.09.60 A1.10.55 A1.10.57 A1.10.59
+A1.09.57 A1.08.53 A1.08.54 A1.08.57 A1.08.60 A1.09.53 A1.09.55 A1.09.58 A1.09.59
+A1.09.58 A1.09.54 A1.09.55 A1.09.56 A1.09.57 A1.09.59 A1.09.60 A1.09.61 A1.10.59
+A1.09.59 A1.08.57 A1.08.60 A1.09.55 A1.09.57 A1.09.58 A1.09.60 A1.09.61 A1.09.62
+A1.09.60 A1.09.56 A1.09.58 A1.09.59 A1.09.61 A1.10.59 A1.10.61
+A1.09.61 A1.09.58 A1.09.59 A1.09.60 A1.09.62 A1.10.59 A1.10.61
+A1.09.62 A1.08.60 A1.08.61 A1.09.59 A1.09.61
+A1.10.00 A1.10.03 A1.10.06
+A1.10.01 A1.10.02 A1.10.04 A1.10.10 A1.10.14
+A1.10.02 A1.10.01 A1.10.07 A1.10.10
+A1.10.03 A1.10.00 A1.10.06 A1.10.09 A1.10.13
+A1.10.04 A1.10.01 A1.10.05 A1.10.10 A1.10.14 A1.11.02
+A1.10.05 A1.10.04 A1.10.14 A1.11.02 A1.11.08
+A1.10.06 A1.09.06 A1.10.00 A1.10.03 A1.10.12 A1.10.13 A1.10.17
+A1.10.07 A1.10.02 A1.10.10 A1.10.11 A1.10.15
+A1.10.08 A1.10.09 A1.10.11
+A1.10.09 A1.10.03 A1.10.08 A1.10.11 A1.10.13 A1.10.16
+A1.10.10 A1.10.01 A1.10.02 A1.10.04 A1.10.07 A1.10.11 A1.10.14 A1.10.15 A1.10.18
+A1.10.11 A1.10.07 A1.10.08 A1.10.09 A1.10.10 A1.10.13 A1.10.15 A1.10.16 A1.10.19
+A1.10.12 A1.09.06 A1.09.12 A1.09.17 A1.10.06 A1.10.13 A1.10.17 A1.10.21
+A1.10.13 A1.10.03 A1.10.06 A1.10.09 A1.10.11 A1.10.12 A1.10.16 A1.10.17 A1.10.20
+A1.10.14 A1.10.01 A1.10.04 A1.10.05 A1.10.10 A1.10.15 A1.10.18 A1.11.08 A1.11.10 A1.11.15 A1.11.20
+A1.10.15 A1.10.07 A1.10.10 A1.10.11 A1.10.14 A1.10.16 A1.10.18 A1.10.19 A1.10.22
+A1.10.16 A1.10.09 A1.10.11 A1.10.13 A1.10.15 A1.10.17 A1.10.19 A1.10.20 A1.10.23
+A1.10.17 A1.09.17 A1.10.06 A1.10.12 A1.10.13 A1.10.16 A1.10.20 A1.10.21 A1.10.24
+A1.10.18 A1.10.10 A1.10.14 A1.10.15 A1.10.19 A1.10.22 A1.10.25 A1.11.15 A1.11.20
+A1.10.19 A1.10.11 A1.10.15 A1.10.16 A1.10.18 A1.10.20 A1.10.22 A1.10.23 A1.10.26
+A1.10.20 A1.10.13 A1.10.16 A1.10.17 A1.10.19 A1.10.21 A1.10.23 A1.10.24 A1.10.27
+A1.10.21 A1.09.17 A1.09.20 A1.09.25 A1.10.12 A1.10.17 A1.10.20 A1.10.24 A1.10.28
+A1.10.22 A1.10.15 A1.10.18 A1.10.19 A1.10.23 A1.10.25 A1.10.26 A1.10.29 A1.11.20
+A1.10.23 A1.10.16 A1.10.19 A1.10.20 A1.10.22 A1.10.24 A1.10.26 A1.10.27 A1.10.30
+A1.10.24 A1.09.25 A1.10.17 A1.10.20 A1.10.21 A1.10.23 A1.10.27 A1.10.28 A1.10.31
+A1.10.25 A1.10.18 A1.10.22 A1.10.26 A1.10.29 A1.11.20 A1.11.21 A1.11.25 A1.11.29
+A1.10.26 A1.10.19 A1.10.22 A1.10.23 A1.10.25 A1.10.27 A1.10.29 A1.10.30 A1.10.32
+A1.10.27 A1.10.20 A1.10.23 A1.10.24 A1.10.26 A1.10.28 A1.10.30 A1.10.31 A1.10.33
+A1.10.28 A1.09.25 A1.09.28 A1.09.32 A1.10.21 A1.10.24 A1.10.27 A1.10.31 A1.10.34
+A1.10.29 A1.10.22 A1.10.25 A1.10.26 A1.10.30 A1.10.32 A1.11.25 A1.11.29 A1.11.33
+A1.10.30 A1.10.23 A1.10.26 A1.10.27 A1.10.29 A1.10.31 A1.10.32 A1.10.33 A1.10.35
+A1.10.31 A1.09.32 A1.10.24 A1.10.27 A1.10.28 A1.10.30 A1.10.33 A1.10.34 A1.10.37
+A1.10.32 A1.10.26 A1.10.29 A1.10.30 A1.10.33 A1.10.35 A1.10.38 A1.11.29 A1.11.33
+A1.10.33 A1.10.27 A1.10.30 A1.10.31 A1.10.32 A1.10.34 A1.10.35 A1.10.37 A1.10.39
+A1.10.34 A1.09.32 A1.09.35 A1.10.28 A1.10.31 A1.10.33 A1.10.36 A1.10.37 A1.10.40
+A1.10.35 A1.10.30 A1.10.32 A1.10.33 A1.10.37 A1.10.38 A1.10.39 A1.10.41 A1.11.33
+A1.10.36 A1.09.32 A1.09.35 A1.09.37 A1.09.40 A1.10.34 A1.10.37 A1.10.40 A1.10.43
+A1.10.37 A1.10.31 A1.10.33 A1.10.34 A1.10.35 A1.10.36 A1.10.39 A1.10.40 A1.10.42
+A1.10.38 A1.10.32 A1.10.35 A1.10.39 A1.10.41 A1.11.33 A1.11.34 A1.11.37 A1.11.40
+A1.10.39 A1.10.33 A1.10.35 A1.10.37 A1.10.38 A1.10.40 A1.10.41 A1.10.42 A1.10.44
+A1.10.40 A1.09.40 A1.10.34 A1.10.36 A1.10.37 A1.10.39 A1.10.42 A1.10.43 A1.10.45
+A1.10.41 A1.10.35 A1.10.38 A1.10.39 A1.10.42 A1.10.44 A1.11.37 A1.11.40 A1.11.43
+A1.10.42 A1.10.37 A1.10.39 A1.10.40 A1.10.41 A1.10.43 A1.10.44 A1.10.45 A1.10.46
+A1.10.43 A1.09.40 A1.09.42 A1.09.44 A1.10.36 A1.10.40 A1.10.42 A1.10.45 A1.10.47
+A1.10.44 A1.10.39 A1.10.41 A1.10.42 A1.10.45 A1.10.46 A1.10.48 A1.11.40 A1.11.43
+A1.10.45 A1.09.44 A1.10.40 A1.10.42 A1.10.43 A1.10.44 A1.10.46 A1.10.47 A1.10.49
+A1.10.46 A1.10.42 A1.10.44 A1.10.45 A1.10.47 A1.10.48 A1.10.49 A1.10.50 A1.11.43
+A1.10.47 A1.09.44 A1.09.46 A1.09.48 A1.10.43 A1.10.45 A1.10.46 A1.10.49 A1.10.51
+A1.10.48 A1.10.44 A1.10.46 A1.10.49 A1.10.50 A1.11.43 A1.11.44 A1.11.46 A1.11.48
+A1.10.49 A1.09.48 A1.10.45 A1.10.46 A1.10.47 A1.10.48 A1.10.50 A1.10.51 A1.10.52
+A1.10.50 A1.10.46 A1.10.48 A1.10.49 A1.10.51 A1.10.52 A1.11.46 A1.11.48 A1.11.50
+A1.10.51 A1.09.48 A1.09.49 A1.09.51 A1.10.47 A1.10.49 A1.10.50 A1.10.52 A1.10.53
+A1.10.52 A1.09.51 A1.10.49 A1.10.50 A1.10.51 A1.10.53 A1.10.54 A1.10.56 A1.11.48 A1.11.50 A1.11.54
+A1.10.53 A1.09.51 A1.10.51 A1.10.52 A1.10.54 A1.10.55 A1.10.57
+A1.10.54 A1.10.52 A1.10.53 A1.10.55 A1.10.56 A1.10.57 A1.10.58 A1.11.54
+A1.10.55 A1.09.51 A1.09.54 A1.09.56 A1.10.53 A1.10.54 A1.10.57 A1.10.59
+A1.10.56 A1.10.52 A1.10.54 A1.10.57 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.58
+A1.10.57 A1.09.56 A1.10.53 A1.10.54 A1.10.55 A1.10.56 A1.10.58 A1.10.59 A1.10.61
+A1.10.58 A1.10.54 A1.10.56 A1.10.57 A1.10.59 A1.10.60 A1.10.61 A1.10.62 A1.11.58
+A1.10.59 A1.09.56 A1.09.58 A1.09.60 A1.09.61 A1.10.55 A1.10.57 A1.10.58 A1.10.61
+A1.10.60 A1.10.56 A1.10.58 A1.10.61 A1.10.62 A1.11.58 A1.11.59 A1.11.61
+A1.10.61 A1.09.60 A1.09.61 A1.10.57 A1.10.58 A1.10.59 A1.10.60 A1.10.62
+A1.10.62 A1.10.58 A1.10.60 A1.10.61 A1.11.61
+A1.11.00 A1.11.05 A1.11.07 A1.12.00 A1.12.08
+A1.11.01 A1.11.02 A1.11.03 A1.11.10
+A1.11.02 A1.10.04 A1.10.05 A1.11.01 A1.11.08 A1.11.10
+A1.11.03 A1.11.01 A1.11.04 A1.11.10 A1.11.11
+A1.11.04 A1.11.03 A1.11.06 A1.11.11 A1.11.12
+A1.11.05 A1.11.00 A1.11.07 A1.11.09 A1.11.12 A1.11.13 A1.11.14
+A1.11.06 A1.11.04 A1.11.09 A1.11.11 A1.11.12
+A1.11.07 A1.11.00 A1.11.05 A1.11.13 A1.11.14 A1.12.00 A1.12.08 A1.12.14
+A1.11.08 A1.10.05 A1.10.14 A1.11.02 A1.11.10 A1.11.15
+A1.11.09 A1.11.05 A1.11.06 A1.11.12 A1.11.13
+A1.11.10 A1.10.14 A1.11.01 A1.11.02 A1.11.03 A1.11.08 A1.11.11 A1.11.15 A1.11.16
+A1.11.11 A1.11.03 A1.11.04 A1.11.06 A1.11.10 A1.11.12 A1.11.15 A1.11.16 A1.11.17
+A1.11.12 A1.11.04 A1.11.05 A1.11.06 A1.11.09 A1.11.11 A1.11.13 A1.11.16 A1.11.17 A1.11.18
+A1.11.13 A1.11.05 A1.11.07 A1.11.09 A1.11.12 A1.11.14 A1.11.17 A1.11.18 A1.11.19
+A1.11.14 A1.11.05 A1.11.07 A1.11.13 A1.11.18 A1.11.19 A1.12.08 A1.12.14 A1.12.19
+A1.11.15 A1.10.14 A1.10.18 A1.11.08 A1.11.10 A1.11.11 A1.11.16 A1.11.20 A1.11.21
+A1.11.16 A1.11.10 A1.11.11 A1.11.12 A1.11.15 A1.11.17 A1.11.20 A1.11.21 A1.11.22
+A1.11.17 A1.11.11 A1.11.12 A1.11.13 A1.11.16 A1.11.18 A1.11.21 A1.11.22 A1.11.23
+A1.11.18 A1.11.12 A1.11.13 A1.11.14 A1.11.17 A1.11.19 A1.11.22 A1.11.23 A1.11.24
+A1.11.19 A1.11.13 A1.11.14 A1.11.18 A1.11.23 A1.11.24 A1.12.14 A1.12.19 A1.12.24
+A1.11.20 A1.10.14 A1.10.18 A1.10.22 A1.10.25 A1.11.15 A1.11.16 A1.11.21 A1.11.25
+A1.11.21 A1.10.25 A1.11.15 A1.11.16 A1.11.17 A1.11.20 A1.11.22 A1.11.25 A1.11.26
+A1.11.22 A1.11.16 A1.11.17 A1.11.18 A1.11.21 A1.11.23 A1.11.25 A1.11.26 A1.11.27
+A1.11.23 A1.11.17 A1.11.18 A1.11.19 A1.11.22 A1.11.24 A1.11.26 A1.11.27 A1.11.28
+A1.11.24 A1.11.18 A1.11.19 A1.11.23 A1.11.27 A1.11.28 A1.12.19 A1.12.24 A1.12.28
+A1.11.25 A1.10.25 A1.10.29 A1.11.20 A1.11.21 A1.11.22 A1.11.26 A1.11.29 A1.11.30
+A1.11.26 A1.11.21 A1.11.22 A1.11.23 A1.11.25 A1.11.27 A1.11.29 A1.11.30 A1.11.31
+A1.11.27 A1.11.22 A1.11.23 A1.11.24 A1.11.26 A1.11.28 A1.11.30 A1.11.31 A1.11.32
+A1.11.28 A1.11.23 A1.11.24 A1.11.27 A1.11.31 A1.11.32 A1.12.24 A1.12.28 A1.12.32
+A1.11.29 A1.10.25 A1.10.29 A1.10.32 A1.11.25 A1.11.26 A1.11.30 A1.11.33 A1.11.34
+A1.11.30 A1.11.25 A1.11.26 A1.11.27 A1.11.29 A1.11.31 A1.11.33 A1.11.34 A1.11.35
+A1.11.31 A1.11.26 A1.11.27 A1.11.28 A1.11.30 A1.11.32 A1.11.34 A1.11.35 A1.11.36
+A1.11.32 A1.11.27 A1.11.28 A1.11.31 A1.11.35 A1.11.36 A1.12.28 A1.12.32 A1.12.36
+A1.11.33 A1.10.29 A1.10.32 A1.10.35 A1.10.38 A1.11.29 A1.11.30 A1.11.34 A1.11.37
+A1.11.34 A1.10.38 A1.11.29 A1.11.30 A1.11.31 A1.11.33 A1.11.35 A1.11.37 A1.11.38
+A1.11.35 A1.11.30 A1.11.31 A1.11.32 A1.11.34 A1.11.36 A1.11.37 A1.11.38 A1.11.39
+A1.11.36 A1.11.31 A1.11.32 A1.11.35 A1.11.38 A1.11.39 A1.12.32 A1.12.36 A1.12.39
+A1.11.37 A1.10.38 A1.10.41 A1.11.33 A1.11.34 A1.11.35 A1.11.38 A1.11.40 A1.11.41
+A1.11.38 A1.11.34 A1.11.35 A1.11.36 A1.11.37 A1.11.39 A1.11.40 A1.11.41 A1.11.42
+A1.11.39 A1.11.35 A1.11.36 A1.11.38 A1.11.41 A1.11.42 A1.12.36 A1.12.39 A1.12.42
+A1.11.40 A1.10.38 A1.10.41 A1.10.44 A1.11.37 A1.11.38 A1.11.41 A1.11.43 A1.11.44
+A1.11.41 A1.11.37 A1.11.38 A1.11.39 A1.11.40 A1.11.42 A1.11.43 A1.11.44 A1.11.45
+A1.11.42 A1.11.38 A1.11.39 A1.11.41 A1.11.44 A1.11.45 A1.12.39 A1.12.42 A1.12.45
+A1.11.43 A1.10.41 A1.10.44 A1.10.46 A1.10.48 A1.11.40 A1.11.41 A1.11.44 A1.11.46
+A1.11.44 A1.10.48 A1.11.40 A1.11.41 A1.11.42 A1.11.43 A1.11.45 A1.11.46 A1.11.47
+A1.11.45 A1.11.41 A1.11.42 A1.11.44 A1.11.46 A1.11.47 A1.12.42 A1.12.45 A1.12.47
+A1.11.46 A1.10.48 A1.10.50 A1.11.43 A1.11.44 A1.11.45 A1.11.47 A1.11.48 A1.11.49
+A1.11.47 A1.11.44 A1.11.45 A1.11.46 A1.11.48 A1.11.49 A1.12.45 A1.12.47 A1.12.49
+A1.11.48 A1.10.48 A1.10.50 A1.10.52 A1.11.46 A1.11.47 A1.11.49 A1.11.50 A1.11.51 A1.11.52
+A1.11.49 A1.11.46 A1.11.47 A1.11.48 A1.11.51 A1.11.52 A1.11.53 A1.12.47 A1.12.49 A1.12.53
+A1.11.50 A1.10.50 A1.10.52 A1.11.48 A1.11.51 A1.11.54 A1.11.55
+A1.11.51 A1.11.48 A1.11.49 A1.11.50 A1.11.52 A1.11.54 A1.11.55 A1.11.56
+A1.11.52 A1.11.48 A1.11.49 A1.11.51 A1.11.53 A1.11.55 A1.11.56 A1.11.57
+A1.11.53 A1.11.49 A1.11.52 A1.11.56 A1.11.57 A1.12.49 A1.12.53 A1.12.57
+A1.11.54 A1.10.52 A1.10.54 A1.10.56 A1.11.50 A1.11.51 A1.11.55 A1.11.58
+A1.11.55 A1.10.56 A1.11.50 A1.11.51 A1.11.52 A1.11.54 A1.11.56 A1.11.58 A1.11.59
+A1.11.56 A1.11.51 A1.11.52 A1.11.53 A1.11.55 A1.11.57 A1.11.58 A1.11.59 A1.11.60
+A1.11.57 A1.11.52 A1.11.53 A1.11.56 A1.11.59 A1.11.60 A1.12.53 A1.12.57 A1.12.60
+A1.11.58 A1.10.56 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.56 A1.11.59 A1.11.61
+A1.11.59 A1.10.60 A1.11.55 A1.11.56 A1.11.57 A1.11.58 A1.11.60 A1.11.61 A1.11.62
+A1.11.60 A1.11.56 A1.11.57 A1.11.59 A1.11.61 A1.11.62 A1.12.57 A1.12.60 A1.12.62
+A1.11.61 A1.10.60 A1.10.62 A1.11.58 A1.11.59 A1.11.60 A1.11.62
+A1.11.62 A1.11.59 A1.11.60 A1.11.61 A1.12.60 A1.12.62
+A1.12.00 A1.11.00 A1.11.07 A1.12.06 A1.12.08
+A1.12.01 A1.12.02 A1.12.04 A1.12.10
+A1.12.02 A1.12.01 A1.12.03 A1.12.10 A1.12.11
+A1.12.03 A1.12.02 A1.12.05 A1.12.10 A1.12.11
+A1.12.04 A1.12.01 A1.12.10 A1.12.15 A1.13.02 A1.13.09 A1.13.13
+A1.12.05 A1.12.03 A1.12.07 A1.12.11 A1.12.12
+A1.12.06 A1.12.00 A1.12.08 A1.12.09 A1.12.12 A1.12.13 A1.12.14
+A1.12.07 A1.12.05 A1.12.09 A1.12.11 A1.12.12
+A1.12.08 A1.11.00 A1.11.07 A1.11.14 A1.12.00 A1.12.06 A1.12.13 A1.12.14
+A1.12.09 A1.12.06 A1.12.07 A1.12.12 A1.12.13
+A1.12.10 A1.12.01 A1.12.02 A1.12.03 A1.12.04 A1.12.11 A1.12.15 A1.12.16 A1.13.13
+A1.12.11 A1.12.02 A1.12.03 A1.12.05 A1.12.07 A1.12.10 A1.12.12 A1.12.15 A1.12.16 A1.12.17
+A1.12.12 A1.12.05 A1.12.06 A1.12.07 A1.12.09 A1.12.11 A1.12.13 A1.12.16 A1.12.17 A1.12.18
+A1.12.13 A1.12.06 A1.12.08 A1.12.09 A1.12.12 A1.12.14 A1.12.17 A1.12.18 A1.12.19
+A1.12.14 A1.11.07 A1.11.14 A1.11.19 A1.12.06 A1.12.08 A1.12.13 A1.12.18 A1.12.19
+A1.12.15 A1.12.04 A1.12.10 A1.12.11 A1.12.16 A1.12.20 A1.12.21 A1.13.13 A1.13.17
+A1.12.16 A1.12.10 A1.12.11 A1.12.12 A1.12.15 A1.12.17 A1.12.20 A1.12.21 A1.12.22
+A1.12.17 A1.12.11 A1.12.12 A1.12.13 A1.12.16 A1.12.18 A1.12.21 A1.12.22 A1.12.23
+A1.12.18 A1.12.12 A1.12.13 A1.12.14 A1.12.17 A1.12.19 A1.12.22 A1.12.23 A1.12.24
+A1.12.19 A1.11.14 A1.11.19 A1.11.24 A1.12.13 A1.12.14 A1.12.18 A1.12.23 A1.12.24
+A1.12.20 A1.12.15 A1.12.16 A1.12.21 A1.12.25 A1.13.13 A1.13.17 A1.13.21 A1.13.24
+A1.12.21 A1.12.15 A1.12.16 A1.12.17 A1.12.20 A1.12.22 A1.12.25 A1.12.26 A1.13.24
+A1.12.22 A1.12.16 A1.12.17 A1.12.18 A1.12.21 A1.12.23 A1.12.25 A1.12.26 A1.12.27
+A1.12.23 A1.12.17 A1.12.18 A1.12.19 A1.12.22 A1.12.24 A1.12.26 A1.12.27 A1.12.28
+A1.12.24 A1.11.19 A1.11.24 A1.11.28 A1.12.18 A1.12.19 A1.12.23 A1.12.27 A1.12.28
+A1.12.25 A1.12.20 A1.12.21 A1.12.22 A1.12.26 A1.12.29 A1.12.30 A1.13.24 A1.13.28
+A1.12.26 A1.12.21 A1.12.22 A1.12.23 A1.12.25 A1.12.27 A1.12.29 A1.12.30 A1.12.31
+A1.12.27 A1.12.22 A1.12.23 A1.12.24 A1.12.26 A1.12.28 A1.12.30 A1.12.31 A1.12.32
+A1.12.28 A1.11.24 A1.11.28 A1.11.32 A1.12.23 A1.12.24 A1.12.27 A1.12.31 A1.12.32
+A1.12.29 A1.12.25 A1.12.26 A1.12.30 A1.12.33 A1.12.34 A1.13.24 A1.13.28 A1.13.31
+A1.12.30 A1.12.25 A1.12.26 A1.12.27 A1.12.29 A1.12.31 A1.12.33 A1.12.34 A1.12.35
+A1.12.31 A1.12.26 A1.12.27 A1.12.28 A1.12.30 A1.12.32 A1.12.34 A1.12.35 A1.12.36
+A1.12.32 A1.11.28 A1.11.32 A1.11.36 A1.12.27 A1.12.28 A1.12.31 A1.12.35 A1.12.36
+A1.12.33 A1.12.29 A1.12.30 A1.12.34 A1.12.37 A1.13.28 A1.13.31 A1.13.34 A1.13.37
+A1.12.34 A1.12.29 A1.12.30 A1.12.31 A1.12.33 A1.12.35 A1.12.37 A1.12.38 A1.13.37
+A1.12.35 A1.12.30 A1.12.31 A1.12.32 A1.12.34 A1.12.36 A1.12.37 A1.12.38 A1.12.39
+A1.12.36 A1.11.32 A1.11.36 A1.11.39 A1.12.31 A1.12.32 A1.12.35 A1.12.38 A1.12.39
+A1.12.37 A1.12.33 A1.12.34 A1.12.35 A1.12.38 A1.12.40 A1.12.41 A1.13.37 A1.13.40
+A1.12.38 A1.12.34 A1.12.35 A1.12.36 A1.12.37 A1.12.39 A1.12.40 A1.12.41 A1.12.42
+A1.12.39 A1.11.36 A1.11.39 A1.11.42 A1.12.35 A1.12.36 A1.12.38 A1.12.41 A1.12.42
+A1.12.40 A1.12.37 A1.12.38 A1.12.41 A1.12.43 A1.12.44 A1.13.37 A1.13.40 A1.13.43
+A1.12.41 A1.12.37 A1.12.38 A1.12.39 A1.12.40 A1.12.42 A1.12.43 A1.12.44 A1.12.45
+A1.12.42 A1.11.39 A1.11.42 A1.11.45 A1.12.38 A1.12.39 A1.12.41 A1.12.44 A1.12.45
+A1.12.43 A1.12.40 A1.12.41 A1.12.44 A1.12.46 A1.13.40 A1.13.43 A1.13.45 A1.13.47
+A1.12.44 A1.12.40 A1.12.41 A1.12.42 A1.12.43 A1.12.45 A1.12.46 A1.12.47 A1.13.47
+A1.12.45 A1.11.42 A1.11.45 A1.11.47 A1.12.41 A1.12.42 A1.12.44 A1.12.46 A1.12.47
+A1.12.46 A1.12.43 A1.12.44 A1.12.45 A1.12.47 A1.12.48 A1.12.49 A1.13.47 A1.13.49
+A1.12.47 A1.11.45 A1.11.47 A1.11.49 A1.12.44 A1.12.45 A1.12.46 A1.12.48 A1.12.49
+A1.12.48 A1.12.46 A1.12.47 A1.12.49 A1.12.50 A1.12.51 A1.12.52 A1.13.47 A1.13.49 A1.13.51
+A1.12.49 A1.11.47 A1.11.49 A1.11.53 A1.12.46 A1.12.47 A1.12.48 A1.12.51 A1.12.52 A1.12.53
+A1.12.50 A1.12.48 A1.12.51 A1.12.54 A1.12.55 A1.13.49 A1.13.51
+A1.12.51 A1.12.48 A1.12.49 A1.12.50 A1.12.52 A1.12.54 A1.12.55 A1.12.56
+A1.12.52 A1.12.48 A1.12.49 A1.12.51 A1.12.53 A1.12.55 A1.12.56 A1.12.57
+A1.12.53 A1.11.49 A1.11.53 A1.11.57 A1.12.49 A1.12.52 A1.12.56 A1.12.57
+A1.12.54 A1.12.50 A1.12.51 A1.12.55 A1.12.58 A1.13.51 A1.13.53 A1.13.55
+A1.12.55 A1.12.50 A1.12.51 A1.12.52 A1.12.54 A1.12.56 A1.12.58 A1.12.59 A1.13.55
+A1.12.56 A1.12.51 A1.12.52 A1.12.53 A1.12.55 A1.12.57 A1.12.58 A1.12.59 A1.12.60
+A1.12.57 A1.11.53 A1.11.57 A1.11.60 A1.12.52 A1.12.53 A1.12.56 A1.12.59 A1.12.60
+A1.12.58 A1.12.54 A1.12.55 A1.12.56 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.59
+A1.12.59 A1.12.55 A1.12.56 A1.12.57 A1.12.58 A1.12.60 A1.12.61 A1.12.62 A1.13.59
+A1.12.60 A1.11.57 A1.11.60 A1.11.62 A1.12.56 A1.12.57 A1.12.59 A1.12.61 A1.12.62
+A1.12.61 A1.12.58 A1.12.59 A1.12.60 A1.12.62 A1.13.59 A1.13.62
+A1.12.62 A1.11.60 A1.11.62 A1.12.59 A1.12.60 A1.12.61 A1.13.62
+A1.13.00 A1.13.02 A1.13.05 A1.13.09
+A1.13.01 A1.13.03 A1.13.06 A1.13.11
+A1.13.02 A1.12.04 A1.13.00 A1.13.09 A1.13.13
+A1.13.03 A1.13.01 A1.13.06 A1.13.07 A1.13.08 A1.13.11
+A1.13.04 A1.13.05 A1.13.07 A1.13.10
+A1.13.05 A1.13.00 A1.13.04 A1.13.09 A1.13.10 A1.13.14
+A1.13.06 A1.13.01 A1.13.03 A1.13.11 A1.13.12 A1.13.16 A1.14.06
+A1.13.07 A1.13.03 A1.13.04 A1.13.08 A1.13.10
+A1.13.08 A1.13.03 A1.13.07 A1.13.10 A1.13.11 A1.13.15
+A1.13.09 A1.12.04 A1.13.00 A1.13.02 A1.13.05 A1.13.10 A1.13.13 A1.13.14 A1.13.17
+A1.13.10 A1.13.04 A1.13.05 A1.13.07 A1.13.08 A1.13.09 A1.13.11 A1.13.14 A1.13.15 A1.13.18
+A1.13.11 A1.13.01 A1.13.03 A1.13.06 A1.13.08 A1.13.10 A1.13.12 A1.13.15 A1.13.16 A1.13.19
+A1.13.12 A1.13.06 A1.13.11 A1.13.16 A1.13.20 A1.14.06 A1.14.12 A1.14.17
+A1.13.13 A1.12.04 A1.12.10 A1.12.15 A1.12.20 A1.13.02 A1.13.09 A1.13.14 A1.13.17
+A1.13.14 A1.13.05 A1.13.09 A1.13.10 A1.13.13 A1.13.15 A1.13.17 A1.13.18 A1.13.21
+A1.13.15 A1.13.08 A1.13.10 A1.13.11 A1.13.14 A1.13.16 A1.13.18 A1.13.19 A1.13.22
+A1.13.16 A1.13.06 A1.13.11 A1.13.12 A1.13.15 A1.13.19 A1.13.20 A1.13.23 A1.14.17
+A1.13.17 A1.12.15 A1.12.20 A1.13.09 A1.13.13 A1.13.14 A1.13.18 A1.13.21 A1.13.24
+A1.13.18 A1.13.10 A1.13.14 A1.13.15 A1.13.17 A1.13.19 A1.13.21 A1.13.22 A1.13.25
+A1.13.19 A1.13.11 A1.13.15 A1.13.16 A1.13.18 A1.13.20 A1.13.22 A1.13.23 A1.13.26
+A1.13.20 A1.13.12 A1.13.16 A1.13.19 A1.13.23 A1.13.27 A1.14.17 A1.14.20 A1.14.25
+A1.13.21 A1.12.20 A1.13.14 A1.13.17 A1.13.18 A1.13.22 A1.13.24 A1.13.25 A1.13.28
+A1.13.22 A1.13.15 A1.13.18 A1.13.19 A1.13.21 A1.13.23 A1.13.25 A1.13.26 A1.13.29
+A1.13.23 A1.13.16 A1.13.19 A1.13.20 A1.13.22 A1.13.26 A1.13.27 A1.13.30 A1.14.25
+A1.13.24 A1.12.20 A1.12.21 A1.12.25 A1.12.29 A1.13.17 A1.13.21 A1.13.25 A1.13.28
+A1.13.25 A1.13.18 A1.13.21 A1.13.22 A1.13.24 A1.13.26 A1.13.28 A1.13.29 A1.13.31
+A1.13.26 A1.13.19 A1.13.22 A1.13.23 A1.13.25 A1.13.27 A1.13.29 A1.13.30 A1.13.32
+A1.13.27 A1.13.20 A1.13.23 A1.13.26 A1.13.30 A1.13.33 A1.14.25 A1.14.28 A1.14.32
+A1.13.28 A1.12.25 A1.12.29 A1.12.33 A1.13.21 A1.13.24 A1.13.25 A1.13.29 A1.13.31
+A1.13.29 A1.13.22 A1.13.25 A1.13.26 A1.13.28 A1.13.30 A1.13.31 A1.13.32 A1.13.34
+A1.13.30 A1.13.23 A1.13.26 A1.13.27 A1.13.29 A1.13.32 A1.13.33 A1.13.36 A1.14.32
+A1.13.31 A1.12.29 A1.12.33 A1.13.25 A1.13.28 A1.13.29 A1.13.32 A1.13.34 A1.13.37
+A1.13.32 A1.13.26 A1.13.29 A1.13.30 A1.13.31 A1.13.33 A1.13.34 A1.13.36 A1.13.38
+A1.13.33 A1.13.27 A1.13.30 A1.13.32 A1.13.35 A1.13.36 A1.13.39 A1.14.32 A1.14.35
+A1.13.34 A1.12.33 A1.13.29 A1.13.31 A1.13.32 A1.13.36 A1.13.37 A1.13.38 A1.13.40
+A1.13.35 A1.13.33 A1.13.36 A1.13.39 A1.13.42 A1.14.32 A1.14.35 A1.14.37 A1.14.40
+A1.13.36 A1.13.30 A1.13.32 A1.13.33 A1.13.34 A1.13.35 A1.13.38 A1.13.39 A1.13.41
+A1.13.37 A1.12.33 A1.12.34 A1.12.37 A1.12.40 A1.13.31 A1.13.34 A1.13.38 A1.13.40
+A1.13.38 A1.13.32 A1.13.34 A1.13.36 A1.13.37 A1.13.39 A1.13.40 A1.13.41 A1.13.43
+A1.13.39 A1.13.33 A1.13.35 A1.13.36 A1.13.38 A1.13.41 A1.13.42 A1.13.44 A1.14.40
+A1.13.40 A1.12.37 A1.12.40 A1.12.43 A1.13.34 A1.13.37 A1.13.38 A1.13.41 A1.13.43
+A1.13.41 A1.13.36 A1.13.38 A1.13.39 A1.13.40 A1.13.42 A1.13.43 A1.13.44 A1.13.45
+A1.13.42 A1.13.35 A1.13.39 A1.13.41 A1.13.44 A1.13.46 A1.14.40 A1.14.42 A1.14.44
+A1.13.43 A1.12.40 A1.12.43 A1.13.38 A1.13.40 A1.13.41 A1.13.44 A1.13.45 A1.13.47
+A1.13.44 A1.13.39 A1.13.41 A1.13.42 A1.13.43 A1.13.45 A1.13.46 A1.13.48 A1.14.44
+A1.13.45 A1.12.43 A1.13.41 A1.13.43 A1.13.44 A1.13.46 A1.13.47 A1.13.48 A1.13.49
+A1.13.46 A1.13.42 A1.13.44 A1.13.45 A1.13.48 A1.13.50 A1.14.44 A1.14.46 A1.14.48
+A1.13.47 A1.12.43 A1.12.44 A1.12.46 A1.12.48 A1.13.43 A1.13.45 A1.13.48 A1.13.49
+A1.13.48 A1.13.44 A1.13.45 A1.13.46 A1.13.47 A1.13.49 A1.13.50 A1.13.51 A1.14.48
+A1.13.49 A1.12.46 A1.12.48 A1.12.50 A1.13.45 A1.13.47 A1.13.48 A1.13.50 A1.13.51
+A1.13.50 A1.13.46 A1.13.48 A1.13.49 A1.13.51 A1.13.52 A1.14.48 A1.14.49 A1.14.51
+A1.13.51 A1.12.48 A1.12.50 A1.12.54 A1.13.48 A1.13.49 A1.13.50 A1.13.52 A1.13.53 A1.13.55 A1.14.51
+A1.13.52 A1.13.50 A1.13.51 A1.13.53 A1.13.54 A1.13.56 A1.14.51
+A1.13.53 A1.12.54 A1.13.51 A1.13.52 A1.13.54 A1.13.55 A1.13.56 A1.13.57
+A1.13.54 A1.13.52 A1.13.53 A1.13.56 A1.13.58 A1.14.51 A1.14.55 A1.14.57
+A1.13.55 A1.12.54 A1.12.55 A1.12.58 A1.13.51 A1.13.53 A1.13.56 A1.13.57 A1.13.59
+A1.13.56 A1.13.52 A1.13.53 A1.13.54 A1.13.55 A1.13.57 A1.13.58 A1.13.60 A1.14.57
+A1.13.57 A1.12.58 A1.13.53 A1.13.55 A1.13.56 A1.13.58 A1.13.59 A1.13.60
+A1.13.58 A1.13.54 A1.13.56 A1.13.57 A1.13.60 A1.13.61 A1.14.57 A1.14.59 A1.14.61
+A1.13.59 A1.12.58 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.60 A1.13.62
+A1.13.60 A1.13.56 A1.13.57 A1.13.58 A1.13.59 A1.13.61 A1.13.62 A1.14.61
+A1.13.61 A1.13.58 A1.13.60 A1.13.62 A1.14.61 A1.14.62
+A1.13.62 A1.12.61 A1.12.62 A1.13.59 A1.13.60 A1.13.61
+A1.14.00 A1.14.02 A1.14.03 A1.14.11
+A1.14.01 A1.14.04 A1.14.06 A1.14.08 A1.14.12
+A1.14.02 A1.14.00 A1.14.05 A1.14.11 A1.14.13
+A1.14.03 A1.14.00 A1.14.07 A1.14.09 A1.14.11
+A1.14.04 A1.14.01 A1.14.08 A1.14.10
+A1.14.05 A1.14.02 A1.14.11 A1.14.13 A1.15.00 A1.15.08
+A1.14.06 A1.13.06 A1.13.12 A1.14.01 A1.14.12 A1.14.17
+A1.14.07 A1.14.03 A1.14.09 A1.14.10 A1.14.14
+A1.14.08 A1.14.01 A1.14.04 A1.14.10 A1.14.12 A1.14.15
+A1.14.09 A1.14.03 A1.14.07 A1.14.11 A1.14.14 A1.14.16
+A1.14.10 A1.14.04 A1.14.07 A1.14.08 A1.14.12 A1.14.14 A1.14.15 A1.14.18
+A1.14.11 A1.14.00 A1.14.02 A1.14.03 A1.14.05 A1.14.09 A1.14.13 A1.14.14 A1.14.16 A1.14.19
+A1.14.12 A1.13.12 A1.14.01 A1.14.06 A1.14.08 A1.14.10 A1.14.15 A1.14.17 A1.14.20
+A1.14.13 A1.14.02 A1.14.05 A1.14.11 A1.14.16 A1.14.19 A1.14.21 A1.15.07 A1.15.08 A1.15.18
+A1.14.14 A1.14.07 A1.14.09 A1.14.10 A1.14.11 A1.14.15 A1.14.16 A1.14.18 A1.14.22
+A1.14.15 A1.14.08 A1.14.10 A1.14.12 A1.14.14 A1.14.17 A1.14.18 A1.14.20 A1.14.23
+A1.14.16 A1.14.09 A1.14.11 A1.14.13 A1.14.14 A1.14.18 A1.14.19 A1.14.22 A1.14.24
+A1.14.17 A1.13.12 A1.13.16 A1.13.20 A1.14.06 A1.14.12 A1.14.15 A1.14.20 A1.14.25
+A1.14.18 A1.14.10 A1.14.14 A1.14.15 A1.14.16 A1.14.20 A1.14.22 A1.14.23 A1.14.27
+A1.14.19 A1.14.11 A1.14.13 A1.14.16 A1.14.21 A1.14.22 A1.14.24 A1.14.26 A1.15.18
+A1.14.20 A1.13.20 A1.14.12 A1.14.15 A1.14.17 A1.14.18 A1.14.23 A1.14.25 A1.14.28
+A1.14.21 A1.14.13 A1.14.19 A1.14.24 A1.14.26 A1.15.18 A1.15.19 A1.15.24 A1.15.29
+A1.14.22 A1.14.14 A1.14.16 A1.14.18 A1.14.19 A1.14.23 A1.14.24 A1.14.27 A1.14.29
+A1.14.23 A1.14.15 A1.14.18 A1.14.20 A1.14.22 A1.14.25 A1.14.27 A1.14.28 A1.14.30
+A1.14.24 A1.14.16 A1.14.19 A1.14.21 A1.14.22 A1.14.26 A1.14.27 A1.14.29 A1.14.31
+A1.14.25 A1.13.20 A1.13.23 A1.13.27 A1.14.17 A1.14.20 A1.14.23 A1.14.28 A1.14.32
+A1.14.26 A1.14.19 A1.14.21 A1.14.24 A1.14.29 A1.14.31 A1.14.33 A1.15.24 A1.15.29
+A1.14.27 A1.14.18 A1.14.22 A1.14.23 A1.14.24 A1.14.28 A1.14.29 A1.14.30 A1.14.34
+A1.14.28 A1.13.27 A1.14.20 A1.14.23 A1.14.25 A1.14.27 A1.14.30 A1.14.32 A1.14.35
+A1.14.29 A1.14.22 A1.14.24 A1.14.26 A1.14.27 A1.14.30 A1.14.31 A1.14.34 A1.14.36
+A1.14.30 A1.14.23 A1.14.27 A1.14.28 A1.14.29 A1.14.32 A1.14.34 A1.14.35 A1.14.37
+A1.14.31 A1.14.24 A1.14.26 A1.14.29 A1.14.33 A1.14.34 A1.14.36 A1.14.38 A1.15.29
+A1.14.32 A1.13.27 A1.13.30 A1.13.33 A1.13.35 A1.14.25 A1.14.28 A1.14.30 A1.14.35
+A1.14.33 A1.14.26 A1.14.31 A1.14.36 A1.14.38 A1.15.29 A1.15.30 A1.15.34 A1.15.38
+A1.14.34 A1.14.27 A1.14.29 A1.14.30 A1.14.31 A1.14.35 A1.14.36 A1.14.37 A1.14.39
+A1.14.35 A1.13.33 A1.13.35 A1.14.28 A1.14.30 A1.14.32 A1.14.34 A1.14.37 A1.14.40
+A1.14.36 A1.14.29 A1.14.31 A1.14.33 A1.14.34 A1.14.37 A1.14.38 A1.14.39 A1.14.41
+A1.14.37 A1.13.35 A1.14.30 A1.14.34 A1.14.35 A1.14.36 A1.14.39 A1.14.40 A1.14.42
+A1.14.38 A1.14.31 A1.14.33 A1.14.36 A1.14.39 A1.14.41 A1.15.34 A1.15.38 A1.15.42
+A1.14.39 A1.14.34 A1.14.36 A1.14.37 A1.14.38 A1.14.40 A1.14.41 A1.14.42 A1.14.43
+A1.14.40 A1.13.35 A1.13.39 A1.13.42 A1.14.35 A1.14.37 A1.14.39 A1.14.42 A1.14.44
+A1.14.41 A1.14.36 A1.14.38 A1.14.39 A1.14.42 A1.14.43 A1.14.45 A1.15.38 A1.15.42
+A1.14.42 A1.13.42 A1.14.37 A1.14.39 A1.14.40 A1.14.41 A1.14.43 A1.14.44 A1.14.46
+A1.14.43 A1.14.39 A1.14.41 A1.14.42 A1.14.44 A1.14.45 A1.14.46 A1.14.47 A1.15.42
+A1.14.44 A1.13.42 A1.13.44 A1.13.46 A1.14.40 A1.14.42 A1.14.43 A1.14.46 A1.14.48
+A1.14.45 A1.14.41 A1.14.43 A1.14.46 A1.14.47 A1.15.42 A1.15.43 A1.15.46 A1.15.49
+A1.14.46 A1.13.46 A1.14.42 A1.14.43 A1.14.44 A1.14.45 A1.14.47 A1.14.48 A1.14.49
+A1.14.47 A1.14.43 A1.14.45 A1.14.46 A1.14.48 A1.14.49 A1.14.50 A1.15.46 A1.15.49
+A1.14.48 A1.13.46 A1.13.48 A1.13.50 A1.14.44 A1.14.46 A1.14.47 A1.14.49 A1.14.51
+A1.14.49 A1.13.50 A1.14.46 A1.14.47 A1.14.48 A1.14.50 A1.14.51 A1.14.52 A1.15.49
+A1.14.50 A1.14.47 A1.14.49 A1.14.51 A1.14.52 A1.14.53 A1.14.54 A1.15.49 A1.15.50 A1.15.52
+A1.14.51 A1.13.50 A1.13.51 A1.13.52 A1.13.54 A1.14.48 A1.14.49 A1.14.50 A1.14.52 A1.14.55 A1.14.57
+A1.14.52 A1.14.49 A1.14.50 A1.14.51 A1.14.53 A1.14.55 A1.14.56
+A1.14.53 A1.14.50 A1.14.52 A1.14.54 A1.14.55 A1.14.56 A1.14.58 A1.15.52
+A1.14.54 A1.14.50 A1.14.53 A1.14.56 A1.14.58 A1.15.52 A1.15.54 A1.15.57
+A1.14.55 A1.13.54 A1.14.51 A1.14.52 A1.14.53 A1.14.56 A1.14.57 A1.14.59
+A1.14.56 A1.14.52 A1.14.53 A1.14.54 A1.14.55 A1.14.57 A1.14.58 A1.14.59 A1.14.60
+A1.14.57 A1.13.54 A1.13.56 A1.13.58 A1.14.51 A1.14.55 A1.14.56 A1.14.59 A1.14.61
+A1.14.58 A1.14.53 A1.14.54 A1.14.56 A1.14.59 A1.14.60 A1.15.54 A1.15.57 A1.15.60
+A1.14.59 A1.13.58 A1.14.55 A1.14.56 A1.14.57 A1.14.58 A1.14.60 A1.14.61 A1.14.62
+A1.14.60 A1.14.56 A1.14.58 A1.14.59 A1.14.61 A1.14.62 A1.15.57 A1.15.60
+A1.14.61 A1.13.58 A1.13.60 A1.13.61 A1.14.57 A1.14.59 A1.14.60 A1.14.62
+A1.14.62 A1.13.61 A1.14.59 A1.14.60 A1.14.61 A1.15.60
+A1.15.00 A1.14.05 A1.15.07 A1.15.08
+A1.15.01 A1.15.02 A1.15.04 A1.15.06 A1.15.10 A1.15.11
+A1.15.02 A1.00.01 A1.00.11 A1.15.01 A1.15.11 A1.15.12
+A1.15.03 A1.15.07 A1.15.13 A1.15.14
+A1.15.04 A1.15.01 A1.15.05 A1.15.06 A1.15.09
+A1.15.05 A1.15.04 A1.15.09 A1.15.14 A1.15.15
+A1.15.06 A1.15.01 A1.15.04 A1.15.09 A1.15.10 A1.15.15 A1.15.16
+A1.15.07 A1.14.13 A1.15.00 A1.15.03 A1.15.08 A1.15.13 A1.15.18 A1.15.19
+A1.15.08 A1.14.05 A1.14.13 A1.15.00 A1.15.07 A1.15.18
+A1.15.09 A1.15.04 A1.15.05 A1.15.06 A1.15.15 A1.15.16
+A1.15.10 A1.15.01 A1.15.06 A1.15.11 A1.15.16 A1.15.17
+A1.15.11 A1.15.01 A1.15.02 A1.15.10 A1.15.12 A1.15.16 A1.15.17
+A1.15.12 A1.00.01 A1.00.11 A1.00.16 A1.15.02 A1.15.11 A1.15.17
+A1.15.13 A1.15.03 A1.15.07 A1.15.14 A1.15.18 A1.15.19 A1.15.20
+A1.15.14 A1.15.03 A1.15.05 A1.15.13 A1.15.15 A1.15.19 A1.15.20 A1.15.21
+A1.15.15 A1.15.05 A1.15.06 A1.15.09 A1.15.14 A1.15.16 A1.15.20 A1.15.21 A1.15.22
+A1.15.16 A1.15.06 A1.15.09 A1.15.10 A1.15.11 A1.15.15 A1.15.17 A1.15.21 A1.15.22 A1.15.23
+A1.15.17 A1.00.11 A1.00.16 A1.00.22 A1.15.10 A1.15.11 A1.15.12 A1.15.16 A1.15.22 A1.15.23
+A1.15.18 A1.14.13 A1.14.19 A1.14.21 A1.15.07 A1.15.08 A1.15.13 A1.15.19 A1.15.24
+A1.15.19 A1.14.21 A1.15.07 A1.15.13 A1.15.14 A1.15.18 A1.15.20 A1.15.24 A1.15.25
+A1.15.20 A1.15.13 A1.15.14 A1.15.15 A1.15.19 A1.15.21 A1.15.24 A1.15.25 A1.15.26
+A1.15.21 A1.15.14 A1.15.15 A1.15.16 A1.15.20 A1.15.22 A1.15.25 A1.15.26 A1.15.27
+A1.15.22 A1.15.15 A1.15.16 A1.15.17 A1.15.21 A1.15.23 A1.15.26 A1.15.27 A1.15.28
+A1.15.23 A1.00.16 A1.00.22 A1.00.27 A1.15.16 A1.15.17 A1.15.22 A1.15.27 A1.15.28
+A1.15.24 A1.14.21 A1.14.26 A1.15.18 A1.15.19 A1.15.20 A1.15.25 A1.15.29 A1.15.30
+A1.15.25 A1.15.19 A1.15.20 A1.15.21 A1.15.24 A1.15.26 A1.15.29 A1.15.30 A1.15.31
+A1.15.26 A1.15.20 A1.15.21 A1.15.22 A1.15.25 A1.15.27 A1.15.30 A1.15.31 A1.15.32
+A1.15.27 A1.15.21 A1.15.22 A1.15.23 A1.15.26 A1.15.28 A1.15.31 A1.15.32 A1.15.33
+A1.15.28 A1.00.22 A1.00.27 A1.00.32 A1.15.22 A1.15.23 A1.15.27 A1.15.32 A1.15.33
+A1.15.29 A1.14.21 A1.14.26 A1.14.31 A1.14.33 A1.15.24 A1.15.25 A1.15.30 A1.15.34
+A1.15.30 A1.14.33 A1.15.24 A1.15.25 A1.15.26 A1.15.29 A1.15.31 A1.15.34 A1.15.35
+A1.15.31 A1.15.25 A1.15.26 A1.15.27 A1.15.30 A1.15.32 A1.15.34 A1.15.35 A1.15.36
+A1.15.32 A1.15.26 A1.15.27 A1.15.28 A1.15.31 A1.15.33 A1.15.35 A1.15.36 A1.15.37
+A1.15.33 A1.00.27 A1.00.32 A1.00.36 A1.15.27 A1.15.28 A1.15.32 A1.15.36 A1.15.37
+A1.15.34 A1.14.33 A1.14.38 A1.15.29 A1.15.30 A1.15.31 A1.15.35 A1.15.38 A1.15.39
+A1.15.35 A1.15.30 A1.15.31 A1.15.32 A1.15.34 A1.15.36 A1.15.38 A1.15.39 A1.15.40
+A1.15.36 A1.15.31 A1.15.32 A1.15.33 A1.15.35 A1.15.37 A1.15.39 A1.15.40 A1.15.41
+A1.15.37 A1.00.32 A1.00.36 A1.00.40 A1.15.32 A1.15.33 A1.15.36 A1.15.40 A1.15.41
+A1.15.38 A1.14.33 A1.14.38 A1.14.41 A1.15.34 A1.15.35 A1.15.39 A1.15.42 A1.15.43
+A1.15.39 A1.15.34 A1.15.35 A1.15.36 A1.15.38 A1.15.40 A1.15.42 A1.15.43 A1.15.44
+A1.15.40 A1.15.35 A1.15.36 A1.15.37 A1.15.39 A1.15.41 A1.15.43 A1.15.44 A1.15.45
+A1.15.41 A1.00.36 A1.00.40 A1.00.44 A1.15.36 A1.15.37 A1.15.40 A1.15.44 A1.15.45
+A1.15.42 A1.14.38 A1.14.41 A1.14.43 A1.14.45 A1.15.38 A1.15.39 A1.15.43 A1.15.46
+A1.15.43 A1.14.45 A1.15.38 A1.15.39 A1.15.40 A1.15.42 A1.15.44 A1.15.46 A1.15.47
+A1.15.44 A1.15.39 A1.15.40 A1.15.41 A1.15.43 A1.15.45 A1.15.46 A1.15.47 A1.15.48
+A1.15.45 A1.00.40 A1.00.44 A1.00.47 A1.15.40 A1.15.41 A1.15.44 A1.15.47 A1.15.48
+A1.15.46 A1.14.45 A1.14.47 A1.15.42 A1.15.43 A1.15.44 A1.15.47 A1.15.49 A1.15.50
+A1.15.47 A1.15.43 A1.15.44 A1.15.45 A1.15.46 A1.15.48 A1.15.49 A1.15.50 A1.15.51
+A1.15.48 A1.00.44 A1.00.47 A1.00.50 A1.15.44 A1.15.45 A1.15.47 A1.15.50 A1.15.51
+A1.15.49 A1.14.45 A1.14.47 A1.14.49 A1.14.50 A1.15.46 A1.15.47 A1.15.50 A1.15.52
+A1.15.50 A1.14.50 A1.15.46 A1.15.47 A1.15.48 A1.15.49 A1.15.51 A1.15.52 A1.15.53
+A1.15.51 A1.00.47 A1.00.50 A1.00.52 A1.15.47 A1.15.48 A1.15.50 A1.15.52 A1.15.53
+A1.15.52 A1.14.50 A1.14.53 A1.14.54 A1.15.49 A1.15.50 A1.15.51 A1.15.53 A1.15.54 A1.15.55
+A1.15.53 A1.00.50 A1.00.52 A1.00.56 A1.15.50 A1.15.51 A1.15.52 A1.15.54 A1.15.55 A1.15.56
+A1.15.54 A1.14.54 A1.14.58 A1.15.52 A1.15.53 A1.15.55 A1.15.57 A1.15.58
+A1.15.55 A1.15.52 A1.15.53 A1.15.54 A1.15.56 A1.15.57 A1.15.58 A1.15.59
+A1.15.56 A1.00.52 A1.00.56 A1.00.59 A1.15.53 A1.15.55 A1.15.58 A1.15.59
+A1.15.57 A1.14.54 A1.14.58 A1.14.60 A1.15.54 A1.15.55 A1.15.58 A1.15.60 A1.15.61
+A1.15.58 A1.15.54 A1.15.55 A1.15.56 A1.15.57 A1.15.59 A1.15.60 A1.15.61 A1.15.62
+A1.15.59 A1.00.56 A1.00.59 A1.00.62 A1.15.55 A1.15.56 A1.15.58 A1.15.61 A1.15.62
+A1.15.60 A1.14.58 A1.14.60 A1.14.62 A1.15.57 A1.15.58 A1.15.61
+A1.15.61 A1.15.57 A1.15.58 A1.15.59 A1.15.60 A1.15.62
+A1.15.62 A1.00.59 A1.00.62 A1.15.58 A1.15.59 A1.15.61
+A2.00.00 A2.00.01 A2.00.05 A2.00.06
+A2.00.01 A2.00.00 A2.00.02 A2.00.05 A2.00.06
+A2.00.02 A2.00.01 A2.00.06 A2.15.01 A2.15.06
+A2.00.03 A2.00.04 A2.00.07 A2.00.08 A2.01.04
+A2.00.04 A2.00.03 A2.00.05 A2.00.07 A2.00.08 A2.00.09
+A2.00.05 A2.00.00 A2.00.01 A2.00.04 A2.00.06 A2.00.08 A2.00.09 A2.00.10
+A2.00.06 A2.00.00 A2.00.01 A2.00.02 A2.00.05 A2.00.09 A2.00.10 A2.15.01 A2.15.06 A2.15.10
+A2.00.07 A2.00.03 A2.00.04 A2.00.08 A2.00.11 A2.01.04 A2.01.07 A2.01.10
+A2.00.08 A2.00.03 A2.00.04 A2.00.05 A2.00.07 A2.00.09 A2.00.11 A2.00.12 A2.01.10
+A2.00.09 A2.00.04 A2.00.05 A2.00.06 A2.00.08 A2.00.10 A2.00.11 A2.00.12 A2.00.13
+A2.00.10 A2.00.05 A2.00.06 A2.00.09 A2.00.12 A2.00.13 A2.15.06 A2.15.10 A2.15.13
+A2.00.11 A2.00.07 A2.00.08 A2.00.09 A2.00.12 A2.00.14 A2.00.15 A2.01.10 A2.01.13
+A2.00.12 A2.00.08 A2.00.09 A2.00.10 A2.00.11 A2.00.13 A2.00.14 A2.00.15 A2.00.16
+A2.00.13 A2.00.09 A2.00.10 A2.00.12 A2.00.15 A2.00.16 A2.15.10 A2.15.13 A2.15.16
+A2.00.14 A2.00.11 A2.00.12 A2.00.15 A2.00.17 A2.00.18 A2.01.10 A2.01.13 A2.01.16
+A2.00.15 A2.00.11 A2.00.12 A2.00.13 A2.00.14 A2.00.16 A2.00.17 A2.00.18 A2.00.19
+A2.00.16 A2.00.12 A2.00.13 A2.00.15 A2.00.18 A2.00.19 A2.15.13 A2.15.16 A2.15.19
+A2.00.17 A2.00.14 A2.00.15 A2.00.18 A2.00.20 A2.01.13 A2.01.16 A2.01.18 A2.01.20
+A2.00.18 A2.00.14 A2.00.15 A2.00.16 A2.00.17 A2.00.19 A2.00.20 A2.00.21 A2.01.20
+A2.00.19 A2.00.15 A2.00.16 A2.00.18 A2.00.20 A2.00.21 A2.15.16 A2.15.19 A2.15.21
+A2.00.20 A2.00.17 A2.00.18 A2.00.19 A2.00.21 A2.00.22 A2.00.23 A2.01.20 A2.01.22
+A2.00.21 A2.00.18 A2.00.19 A2.00.20 A2.00.22 A2.00.23 A2.15.19 A2.15.21 A2.15.23
+A2.00.22 A2.00.20 A2.00.21 A2.00.23 A2.00.24 A2.00.25 A2.01.20 A2.01.22 A2.01.24
+A2.00.23 A2.00.20 A2.00.21 A2.00.22 A2.00.24 A2.00.25 A2.15.21 A2.15.23 A2.15.25
+A2.00.24 A2.00.22 A2.00.23 A2.00.25 A2.00.26 A2.01.22 A2.01.24 A2.01.25 A2.01.26
+A2.00.25 A2.00.22 A2.00.23 A2.00.24 A2.00.26 A2.01.26 A2.15.23 A2.15.25 A2.15.26
+A2.00.26 A2.00.24 A2.00.25 A2.00.27 A2.01.26 A2.01.28 A2.15.25 A2.15.26 A2.15.27
+A2.00.27 A2.00.26 A2.00.28 A2.00.29 A2.01.26 A2.01.28 A2.01.30 A2.15.26 A2.15.27 A2.15.29
+A2.00.28 A2.00.27 A2.00.29 A2.01.28 A2.01.30 A2.01.31
+A2.00.29 A2.00.27 A2.00.28 A2.15.27 A2.15.29
+A2.01.00 A2.01.05 A2.02.00 A2.02.06
+A2.01.01 A2.01.03 A2.01.05
+A2.01.02 A2.01.04 A2.01.06 A2.01.07
+A2.01.03 A2.01.01 A2.01.05 A2.01.06 A2.01.09
+A2.01.04 A2.00.03 A2.00.07 A2.01.02 A2.01.06 A2.01.07 A2.01.10
+A2.01.05 A2.01.00 A2.01.01 A2.01.03 A2.01.06 A2.01.08 A2.01.09 A2.01.12 A2.02.06
+A2.01.06 A2.01.02 A2.01.03 A2.01.04 A2.01.05 A2.01.07 A2.01.09 A2.01.11
+A2.01.07 A2.00.07 A2.01.02 A2.01.04 A2.01.06 A2.01.09 A2.01.10 A2.01.11 A2.01.13
+A2.01.08 A2.01.05 A2.01.09 A2.01.12 A2.01.14 A2.02.06 A2.02.09 A2.02.11
+A2.01.09 A2.01.03 A2.01.05 A2.01.06 A2.01.07 A2.01.08 A2.01.11 A2.01.12 A2.01.15
+A2.01.10 A2.00.07 A2.00.08 A2.00.11 A2.00.14 A2.01.04 A2.01.07 A2.01.11 A2.01.13
+A2.01.11 A2.01.06 A2.01.07 A2.01.09 A2.01.10 A2.01.12 A2.01.13 A2.01.15 A2.01.16
+A2.01.12 A2.01.05 A2.01.08 A2.01.09 A2.01.11 A2.01.14 A2.01.15 A2.01.17 A2.02.11
+A2.01.13 A2.00.11 A2.00.14 A2.00.17 A2.01.07 A2.01.10 A2.01.11 A2.01.15 A2.01.16
+A2.01.14 A2.01.08 A2.01.12 A2.01.15 A2.01.17 A2.01.19 A2.02.11 A2.02.14 A2.02.16
+A2.01.15 A2.01.09 A2.01.11 A2.01.12 A2.01.13 A2.01.14 A2.01.16 A2.01.17 A2.01.18
+A2.01.16 A2.00.14 A2.00.17 A2.01.11 A2.01.13 A2.01.15 A2.01.17 A2.01.18 A2.01.20
+A2.01.17 A2.01.12 A2.01.14 A2.01.15 A2.01.16 A2.01.18 A2.01.19 A2.01.21 A2.02.16
+A2.01.18 A2.00.17 A2.01.15 A2.01.16 A2.01.17 A2.01.19 A2.01.20 A2.01.21 A2.01.22
+A2.01.19 A2.01.14 A2.01.17 A2.01.18 A2.01.21 A2.01.23 A2.02.16 A2.02.18 A2.02.20
+A2.01.20 A2.00.17 A2.00.18 A2.00.20 A2.00.22 A2.01.16 A2.01.18 A2.01.21 A2.01.22
+A2.01.21 A2.01.17 A2.01.18 A2.01.19 A2.01.20 A2.01.22 A2.01.23 A2.01.24 A2.02.20
+A2.01.22 A2.00.20 A2.00.22 A2.00.24 A2.01.18 A2.01.20 A2.01.21 A2.01.23 A2.01.24
+A2.01.23 A2.01.19 A2.01.21 A2.01.22 A2.01.24 A2.01.25 A2.02.20 A2.02.22 A2.02.24
+A2.01.24 A2.00.22 A2.00.24 A2.01.21 A2.01.22 A2.01.23 A2.01.25 A2.01.26 A2.02.24
+A2.01.25 A2.00.24 A2.01.23 A2.01.24 A2.01.26 A2.01.27 A2.01.28 A2.02.24 A2.02.25
+A2.01.26 A2.00.24 A2.00.25 A2.00.26 A2.00.27 A2.01.24 A2.01.25 A2.01.27 A2.01.28
+A2.01.27 A2.01.25 A2.01.26 A2.01.28 A2.01.29 A2.02.24 A2.02.25 A2.02.26 A2.02.27
+A2.01.28 A2.00.26 A2.00.27 A2.00.28 A2.01.25 A2.01.26 A2.01.27 A2.01.29 A2.01.30 A2.02.27
+A2.01.29 A2.01.27 A2.01.28 A2.01.30 A2.01.31 A2.02.27 A2.02.29
+A2.01.30 A2.00.27 A2.00.28 A2.01.28 A2.01.29 A2.01.31 A2.02.29
+A2.01.31 A2.00.28 A2.01.29 A2.01.30 A2.02.29 A2.02.30
+A2.02.00 A2.01.00 A2.02.03 A2.02.06
+A2.02.01 A2.02.02 A2.02.07 A2.02.08
+A2.02.02 A2.02.01 A2.02.04 A2.02.07 A2.02.08 A2.03.01
+A2.02.03 A2.02.00 A2.02.05 A2.02.06 A2.02.09
+A2.02.04 A2.02.02 A2.02.08 A2.03.01 A2.03.06
+A2.02.05 A2.02.03 A2.02.07 A2.02.09 A2.02.10
+A2.02.06 A2.01.00 A2.01.05 A2.01.08 A2.02.00 A2.02.03 A2.02.09 A2.02.11
+A2.02.07 A2.02.01 A2.02.02 A2.02.05 A2.02.08 A2.02.09 A2.02.10 A2.02.12
+A2.02.08 A2.02.01 A2.02.02 A2.02.04 A2.02.07 A2.02.10 A2.02.12 A2.02.13 A2.03.01 A2.03.06
+A2.02.09 A2.01.08 A2.02.03 A2.02.05 A2.02.06 A2.02.07 A2.02.10 A2.02.11 A2.02.14
+A2.02.10 A2.02.05 A2.02.07 A2.02.08 A2.02.09 A2.02.11 A2.02.12 A2.02.14 A2.02.15
+A2.02.11 A2.01.08 A2.01.12 A2.01.14 A2.02.06 A2.02.09 A2.02.10 A2.02.14 A2.02.16
+A2.02.12 A2.02.07 A2.02.08 A2.02.10 A2.02.13 A2.02.14 A2.02.15 A2.02.17 A2.03.06
+A2.02.13 A2.02.08 A2.02.12 A2.02.15 A2.02.17 A2.03.06 A2.03.07 A2.03.11 A2.03.15
+A2.02.14 A2.01.14 A2.02.09 A2.02.10 A2.02.11 A2.02.12 A2.02.15 A2.02.16 A2.02.18
+A2.02.15 A2.02.10 A2.02.12 A2.02.13 A2.02.14 A2.02.16 A2.02.17 A2.02.18 A2.02.19
+A2.02.16 A2.01.14 A2.01.17 A2.01.19 A2.02.11 A2.02.14 A2.02.15 A2.02.18 A2.02.20
+A2.02.17 A2.02.12 A2.02.13 A2.02.15 A2.02.18 A2.02.19 A2.02.21 A2.03.11 A2.03.15
+A2.02.18 A2.01.19 A2.02.14 A2.02.15 A2.02.16 A2.02.17 A2.02.19 A2.02.20 A2.02.22
+A2.02.19 A2.02.15 A2.02.17 A2.02.18 A2.02.20 A2.02.21 A2.02.22 A2.02.23 A2.03.15
+A2.02.20 A2.01.19 A2.01.21 A2.01.23 A2.02.16 A2.02.18 A2.02.19 A2.02.22 A2.02.24
+A2.02.21 A2.02.17 A2.02.19 A2.02.22 A2.02.23 A2.03.15 A2.03.16 A2.03.19 A2.03.22
+A2.02.22 A2.01.23 A2.02.18 A2.02.19 A2.02.20 A2.02.21 A2.02.23 A2.02.24 A2.02.25
+A2.02.23 A2.02.19 A2.02.21 A2.02.22 A2.02.24 A2.02.25 A2.02.26 A2.03.19 A2.03.22
+A2.02.24 A2.01.23 A2.01.24 A2.01.25 A2.01.27 A2.02.20 A2.02.22 A2.02.23 A2.02.25
+A2.02.25 A2.01.25 A2.01.27 A2.02.22 A2.02.23 A2.02.24 A2.02.26 A2.02.27 A2.03.22
+A2.02.26 A2.01.27 A2.02.23 A2.02.25 A2.02.27 A2.02.28 A2.03.22 A2.03.23 A2.03.25
+A2.02.27 A2.01.27 A2.01.28 A2.01.29 A2.02.25 A2.02.26 A2.02.28 A2.02.29 A2.02.30 A2.03.25
+A2.02.28 A2.02.26 A2.02.27 A2.02.29 A2.02.30 A2.02.31 A2.03.25 A2.03.26 A2.03.27 A2.03.29
+A2.02.29 A2.01.29 A2.01.30 A2.01.31 A2.02.27 A2.02.28 A2.02.30
+A2.02.30 A2.01.31 A2.02.27 A2.02.28 A2.02.29 A2.02.31
+A2.02.31 A2.02.28 A2.02.30 A2.03.29 A2.03.30
+A2.03.00 A2.03.03 A2.03.04 A2.03.05 A2.04.00 A2.04.05
+A2.03.01 A2.02.02 A2.02.04 A2.02.08 A2.03.02 A2.03.06 A2.03.07
+A2.03.02 A2.03.01 A2.03.03 A2.03.06 A2.03.07 A2.03.08
+A2.03.03 A2.03.00 A2.03.02 A2.03.04 A2.03.07 A2.03.08 A2.03.09
+A2.03.04 A2.03.00 A2.03.03 A2.03.05 A2.03.08 A2.03.09 A2.03.10
+A2.03.05 A2.03.00 A2.03.04 A2.03.09 A2.03.10 A2.04.00 A2.04.05 A2.04.10
+A2.03.06 A2.02.04 A2.02.08 A2.02.12 A2.02.13 A2.03.01 A2.03.02 A2.03.07 A2.03.11
+A2.03.07 A2.02.13 A2.03.01 A2.03.02 A2.03.03 A2.03.06 A2.03.08 A2.03.11 A2.03.12
+A2.03.08 A2.03.02 A2.03.03 A2.03.04 A2.03.07 A2.03.09 A2.03.11 A2.03.12 A2.03.13
+A2.03.09 A2.03.03 A2.03.04 A2.03.05 A2.03.08 A2.03.10 A2.03.12 A2.03.13 A2.03.14
+A2.03.10 A2.03.04 A2.03.05 A2.03.09 A2.03.13 A2.03.14 A2.04.05 A2.04.10 A2.04.14
+A2.03.11 A2.02.13 A2.02.17 A2.03.06 A2.03.07 A2.03.08 A2.03.12 A2.03.15 A2.03.16
+A2.03.12 A2.03.07 A2.03.08 A2.03.09 A2.03.11 A2.03.13 A2.03.15 A2.03.16 A2.03.17
+A2.03.13 A2.03.08 A2.03.09 A2.03.10 A2.03.12 A2.03.14 A2.03.16 A2.03.17 A2.03.18
+A2.03.14 A2.03.09 A2.03.10 A2.03.13 A2.03.17 A2.03.18 A2.04.10 A2.04.14 A2.04.18
+A2.03.15 A2.02.13 A2.02.17 A2.02.19 A2.02.21 A2.03.11 A2.03.12 A2.03.16 A2.03.19
+A2.03.16 A2.02.21 A2.03.11 A2.03.12 A2.03.13 A2.03.15 A2.03.17 A2.03.19 A2.03.20
+A2.03.17 A2.03.12 A2.03.13 A2.03.14 A2.03.16 A2.03.18 A2.03.19 A2.03.20 A2.03.21
+A2.03.18 A2.03.13 A2.03.14 A2.03.17 A2.03.20 A2.03.21 A2.04.14 A2.04.18 A2.04.21
+A2.03.19 A2.02.21 A2.02.23 A2.03.15 A2.03.16 A2.03.17 A2.03.20 A2.03.22 A2.03.23
+A2.03.20 A2.03.16 A2.03.17 A2.03.18 A2.03.19 A2.03.21 A2.03.22 A2.03.23 A2.03.24
+A2.03.21 A2.03.17 A2.03.18 A2.03.20 A2.03.23 A2.03.24 A2.04.18 A2.04.21 A2.04.24
+A2.03.22 A2.02.21 A2.02.23 A2.02.25 A2.02.26 A2.03.19 A2.03.20 A2.03.23 A2.03.25
+A2.03.23 A2.02.26 A2.03.19 A2.03.20 A2.03.21 A2.03.22 A2.03.24 A2.03.25 A2.03.26
+A2.03.24 A2.03.20 A2.03.21 A2.03.23 A2.03.25 A2.03.26 A2.04.21 A2.04.24 A2.04.26
+A2.03.25 A2.02.26 A2.02.27 A2.02.28 A2.03.22 A2.03.23 A2.03.24 A2.03.26 A2.03.27
+A2.03.26 A2.02.28 A2.03.23 A2.03.24 A2.03.25 A2.03.27 A2.03.28 A2.04.24 A2.04.26 A2.04.28
+A2.03.27 A2.02.28 A2.03.25 A2.03.26 A2.03.28 A2.03.29 A2.03.30
+A2.03.28 A2.03.26 A2.03.27 A2.03.29 A2.03.30 A2.04.26 A2.04.28 A2.04.30
+A2.03.29 A2.02.28 A2.02.31 A2.03.27 A2.03.28 A2.03.30
+A2.03.30 A2.02.31 A2.03.27 A2.03.28 A2.03.29 A2.04.28 A2.04.30
+A2.04.00 A2.03.00 A2.03.05 A2.04.03 A2.04.04 A2.04.05
+A2.04.01 A2.04.02 A2.04.06 A2.04.07 A2.05.02 A2.05.04 A2.05.08
+A2.04.02 A2.04.01 A2.04.03 A2.04.06 A2.04.07 A2.04.08
+A2.04.03 A2.04.00 A2.04.02 A2.04.04 A2.04.07 A2.04.08 A2.04.09
+A2.04.04 A2.04.00 A2.04.03 A2.04.05 A2.04.08 A2.04.09 A2.04.10
+A2.04.05 A2.03.00 A2.03.05 A2.03.10 A2.04.00 A2.04.04 A2.04.09 A2.04.10
+A2.04.06 A2.04.01 A2.04.02 A2.04.07 A2.04.11 A2.05.04 A2.05.08 A2.05.12 A2.05.13
+A2.04.07 A2.04.01 A2.04.02 A2.04.03 A2.04.06 A2.04.08 A2.04.11 A2.04.12 A2.05.13
+A2.04.08 A2.04.02 A2.04.03 A2.04.04 A2.04.07 A2.04.09 A2.04.11 A2.04.12 A2.04.13
+A2.04.09 A2.04.03 A2.04.04 A2.04.05 A2.04.08 A2.04.10 A2.04.12 A2.04.13 A2.04.14
+A2.04.10 A2.03.05 A2.03.10 A2.03.14 A2.04.04 A2.04.05 A2.04.09 A2.04.13 A2.04.14
+A2.04.11 A2.04.06 A2.04.07 A2.04.08 A2.04.12 A2.04.15 A2.04.16 A2.05.13 A2.05.17
+A2.04.12 A2.04.07 A2.04.08 A2.04.09 A2.04.11 A2.04.13 A2.04.15 A2.04.16 A2.04.17
+A2.04.13 A2.04.08 A2.04.09 A2.04.10 A2.04.12 A2.04.14 A2.04.16 A2.04.17 A2.04.18
+A2.04.14 A2.03.10 A2.03.14 A2.03.18 A2.04.09 A2.04.10 A2.04.13 A2.04.17 A2.04.18
+A2.04.15 A2.04.11 A2.04.12 A2.04.16 A2.04.19 A2.05.13 A2.05.17 A2.05.19 A2.05.21
+A2.04.16 A2.04.11 A2.04.12 A2.04.13 A2.04.15 A2.04.17 A2.04.19 A2.04.20 A2.05.21
+A2.04.17 A2.04.12 A2.04.13 A2.04.14 A2.04.16 A2.04.18 A2.04.19 A2.04.20 A2.04.21
+A2.04.18 A2.03.14 A2.03.18 A2.03.21 A2.04.13 A2.04.14 A2.04.17 A2.04.20 A2.04.21
+A2.04.19 A2.04.15 A2.04.16 A2.04.17 A2.04.20 A2.04.22 A2.04.23 A2.05.21 A2.05.23
+A2.04.20 A2.04.16 A2.04.17 A2.04.18 A2.04.19 A2.04.21 A2.04.22 A2.04.23 A2.04.24
+A2.04.21 A2.03.18 A2.03.21 A2.03.24 A2.04.17 A2.04.18 A2.04.20 A2.04.23 A2.04.24
+A2.04.22 A2.04.19 A2.04.20 A2.04.23 A2.04.25 A2.05.21 A2.05.23 A2.05.25 A2.05.26
+A2.04.23 A2.04.19 A2.04.20 A2.04.21 A2.04.22 A2.04.24 A2.04.25 A2.04.26 A2.05.26
+A2.04.24 A2.03.21 A2.03.24 A2.03.26 A2.04.20 A2.04.21 A2.04.23 A2.04.25 A2.04.26
+A2.04.25 A2.04.22 A2.04.23 A2.04.24 A2.04.26 A2.04.27 A2.05.26 A2.05.27 A2.05.28
+A2.04.26 A2.03.24 A2.03.26 A2.03.28 A2.04.23 A2.04.24 A2.04.25 A2.04.27 A2.04.28 A2.05.28
+A2.04.27 A2.04.25 A2.04.26 A2.04.28 A2.04.29 A2.04.30 A2.05.28
+A2.04.28 A2.03.26 A2.03.28 A2.03.30 A2.04.26 A2.04.27 A2.04.29 A2.04.30
+A2.04.29 A2.04.27 A2.04.28 A2.04.30 A2.05.28 A2.05.31
+A2.04.30 A2.03.28 A2.03.30 A2.04.27 A2.04.28 A2.04.29
+A2.05.00 A2.05.02 A2.05.07 A2.05.08
+A2.05.01 A2.05.06 A2.06.00 A2.06.03
+A2.05.02 A2.04.01 A2.05.00 A2.05.04 A2.05.07 A2.05.08
+A2.05.03 A2.05.05 A2.05.06 A2.05.09
+A2.05.04 A2.04.01 A2.04.06 A2.05.02 A2.05.08
+A2.05.05 A2.05.03 A2.05.07 A2.05.09 A2.05.10
+A2.05.06 A2.05.01 A2.05.03 A2.05.09 A2.05.11 A2.06.03 A2.06.08
+A2.05.07 A2.05.00 A2.05.02 A2.05.05 A2.05.08 A2.05.09 A2.05.10 A2.05.12
+A2.05.08 A2.04.01 A2.04.06 A2.05.00 A2.05.02 A2.05.04 A2.05.07 A2.05.10 A2.05.12 A2.05.13
+A2.05.09 A2.05.03 A2.05.05 A2.05.06 A2.05.07 A2.05.10 A2.05.11 A2.05.14 A2.06.08
+A2.05.10 A2.05.05 A2.05.07 A2.05.08 A2.05.09 A2.05.11 A2.05.12 A2.05.14 A2.05.15
+A2.05.11 A2.05.06 A2.05.09 A2.05.10 A2.05.14 A2.05.16 A2.06.08 A2.06.12 A2.06.14
+A2.05.12 A2.04.06 A2.05.07 A2.05.08 A2.05.10 A2.05.13 A2.05.14 A2.05.15 A2.05.17
+A2.05.13 A2.04.06 A2.04.07 A2.04.11 A2.04.15 A2.05.08 A2.05.12 A2.05.15 A2.05.17
+A2.05.14 A2.05.09 A2.05.10 A2.05.11 A2.05.12 A2.05.15 A2.05.16 A2.05.18 A2.06.14
+A2.05.15 A2.05.10 A2.05.12 A2.05.13 A2.05.14 A2.05.16 A2.05.17 A2.05.18 A2.05.19
+A2.05.16 A2.05.11 A2.05.14 A2.05.15 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.19
+A2.05.17 A2.04.11 A2.04.15 A2.05.12 A2.05.13 A2.05.15 A2.05.18 A2.05.19 A2.05.21
+A2.05.18 A2.05.14 A2.05.15 A2.05.16 A2.05.17 A2.05.19 A2.05.20 A2.05.22 A2.06.19
+A2.05.19 A2.04.15 A2.05.15 A2.05.17 A2.05.18 A2.05.20 A2.05.21 A2.05.22 A2.05.23
+A2.05.20 A2.05.16 A2.05.18 A2.05.19 A2.05.22 A2.05.24 A2.06.19 A2.06.21 A2.06.23
+A2.05.21 A2.04.15 A2.04.16 A2.04.19 A2.04.22 A2.05.17 A2.05.19 A2.05.22 A2.05.23
+A2.05.22 A2.05.18 A2.05.19 A2.05.20 A2.05.21 A2.05.23 A2.05.24 A2.05.25 A2.06.23
+A2.05.23 A2.04.19 A2.04.22 A2.05.19 A2.05.21 A2.05.22 A2.05.24 A2.05.25 A2.05.26
+A2.05.24 A2.05.20 A2.05.22 A2.05.23 A2.05.25 A2.06.23 A2.06.24 A2.06.25 A2.06.27
+A2.05.25 A2.04.22 A2.05.22 A2.05.23 A2.05.24 A2.05.26 A2.05.27 A2.06.25 A2.06.27
+A2.05.26 A2.04.22 A2.04.23 A2.04.25 A2.05.23 A2.05.25 A2.05.27 A2.05.28 A2.06.27
+A2.05.27 A2.04.25 A2.05.25 A2.05.26 A2.05.28 A2.05.29 A2.05.30 A2.06.27 A2.06.28
+A2.05.28 A2.04.25 A2.04.26 A2.04.27 A2.04.29 A2.05.26 A2.05.27 A2.05.30 A2.05.31
+A2.05.29 A2.05.27 A2.05.30 A2.06.27 A2.06.28 A2.06.29 A2.06.31
+A2.05.30 A2.05.27 A2.05.28 A2.05.29 A2.05.31 A2.06.29 A2.06.31
+A2.05.31 A2.04.29 A2.05.28 A2.05.30
+A2.06.00 A2.05.01 A2.06.03 A2.06.05
+A2.06.01 A2.06.05 A2.06.06
+A2.06.02 A2.06.04 A2.06.06 A2.06.07
+A2.06.03 A2.05.01 A2.05.06 A2.06.00 A2.06.05 A2.06.08
+A2.06.04 A2.06.02 A2.06.06 A2.06.07 A2.06.10 A2.07.03 A2.07.07
+A2.06.05 A2.06.00 A2.06.01 A2.06.03 A2.06.06 A2.06.08 A2.06.09 A2.06.12
+A2.06.06 A2.06.01 A2.06.02 A2.06.04 A2.06.05 A2.06.07 A2.06.09 A2.06.11
+A2.06.07 A2.06.02 A2.06.04 A2.06.06 A2.06.09 A2.06.10 A2.06.11 A2.06.13 A2.07.07
+A2.06.08 A2.05.06 A2.05.09 A2.05.11 A2.06.03 A2.06.05 A2.06.09 A2.06.12 A2.06.14
+A2.06.09 A2.06.05 A2.06.06 A2.06.07 A2.06.08 A2.06.11 A2.06.12 A2.06.15
+A2.06.10 A2.06.04 A2.06.07 A2.06.11 A2.06.13 A2.07.07 A2.07.08 A2.07.11 A2.07.14
+A2.06.11 A2.06.06 A2.06.07 A2.06.09 A2.06.10 A2.06.12 A2.06.13 A2.06.15 A2.06.16
+A2.06.12 A2.05.11 A2.06.05 A2.06.08 A2.06.09 A2.06.11 A2.06.14 A2.06.15 A2.06.17
+A2.06.13 A2.06.07 A2.06.10 A2.06.11 A2.06.15 A2.06.16 A2.07.11 A2.07.14 A2.07.17
+A2.06.14 A2.05.11 A2.05.14 A2.05.16 A2.06.08 A2.06.12 A2.06.15 A2.06.17 A2.06.19
+A2.06.15 A2.06.09 A2.06.11 A2.06.12 A2.06.13 A2.06.14 A2.06.16 A2.06.17 A2.06.18
+A2.06.16 A2.06.11 A2.06.13 A2.06.15 A2.06.17 A2.06.18 A2.06.20 A2.07.14 A2.07.17
+A2.06.17 A2.05.16 A2.06.12 A2.06.14 A2.06.15 A2.06.16 A2.06.18 A2.06.19 A2.06.21
+A2.06.18 A2.06.15 A2.06.16 A2.06.17 A2.06.19 A2.06.20 A2.06.21 A2.06.22 A2.07.17
+A2.06.19 A2.05.16 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.18 A2.06.21 A2.06.23
+A2.06.20 A2.06.16 A2.06.18 A2.06.21 A2.06.22 A2.07.17 A2.07.18 A2.07.20 A2.07.22
+A2.06.21 A2.05.20 A2.06.17 A2.06.18 A2.06.19 A2.06.20 A2.06.22 A2.06.23 A2.06.24
+A2.06.22 A2.06.18 A2.06.20 A2.06.21 A2.06.23 A2.06.24 A2.07.20 A2.07.22 A2.07.24
+A2.06.23 A2.05.20 A2.05.22 A2.05.24 A2.06.19 A2.06.21 A2.06.22 A2.06.24 A2.06.25
+A2.06.24 A2.05.24 A2.06.21 A2.06.22 A2.06.23 A2.06.25 A2.06.26 A2.07.22 A2.07.24
+A2.06.25 A2.05.24 A2.05.25 A2.06.23 A2.06.24 A2.06.26 A2.06.27 A2.06.28 A2.07.24
+A2.06.26 A2.06.24 A2.06.25 A2.06.27 A2.06.28 A2.07.24 A2.07.25 A2.07.26 A2.07.27
+A2.06.27 A2.05.24 A2.05.25 A2.05.26 A2.05.27 A2.05.29 A2.06.25 A2.06.26 A2.06.28
+A2.06.28 A2.05.27 A2.05.29 A2.06.25 A2.06.26 A2.06.27 A2.06.29 A2.06.30 A2.07.26 A2.07.27 A2.07.28
+A2.06.29 A2.05.29 A2.05.30 A2.06.28 A2.06.30 A2.06.31
+A2.06.30 A2.06.28 A2.06.29 A2.06.31 A2.07.27 A2.07.28
+A2.06.31 A2.05.29 A2.05.30 A2.06.29 A2.06.30 A2.07.28
+A2.07.00 A2.07.02 A2.07.05 A2.07.06
+A2.07.01 A2.07.02 A2.07.06 A2.08.00 A2.08.06
+A2.07.02 A2.07.00 A2.07.01 A2.07.05 A2.07.06
+A2.07.03 A2.06.04 A2.07.04 A2.07.07 A2.07.08
+A2.07.04 A2.07.03 A2.07.05 A2.07.07 A2.07.08 A2.07.09
+A2.07.05 A2.07.00 A2.07.02 A2.07.04 A2.07.06 A2.07.08 A2.07.09 A2.07.10
+A2.07.06 A2.07.00 A2.07.01 A2.07.02 A2.07.05 A2.07.09 A2.07.10 A2.08.00 A2.08.06 A2.08.10
+A2.07.07 A2.06.04 A2.06.07 A2.06.10 A2.07.03 A2.07.04 A2.07.08 A2.07.11
+A2.07.08 A2.06.10 A2.07.03 A2.07.04 A2.07.05 A2.07.07 A2.07.09 A2.07.11 A2.07.12
+A2.07.09 A2.07.04 A2.07.05 A2.07.06 A2.07.08 A2.07.10 A2.07.11 A2.07.12 A2.07.13
+A2.07.10 A2.07.05 A2.07.06 A2.07.09 A2.07.12 A2.07.13 A2.08.06 A2.08.10 A2.08.13
+A2.07.11 A2.06.10 A2.06.13 A2.07.07 A2.07.08 A2.07.09 A2.07.12 A2.07.14 A2.07.15
+A2.07.12 A2.07.08 A2.07.09 A2.07.10 A2.07.11 A2.07.13 A2.07.14 A2.07.15 A2.07.16
+A2.07.13 A2.07.09 A2.07.10 A2.07.12 A2.07.15 A2.07.16 A2.08.10 A2.08.13 A2.08.16
+A2.07.14 A2.06.10 A2.06.13 A2.06.16 A2.07.11 A2.07.12 A2.07.15 A2.07.17 A2.07.18
+A2.07.15 A2.07.11 A2.07.12 A2.07.13 A2.07.14 A2.07.16 A2.07.17 A2.07.18 A2.07.19
+A2.07.16 A2.07.12 A2.07.13 A2.07.15 A2.07.18 A2.07.19 A2.08.13 A2.08.16 A2.08.19
+A2.07.17 A2.06.13 A2.06.16 A2.06.18 A2.06.20 A2.07.14 A2.07.15 A2.07.18 A2.07.20
+A2.07.18 A2.06.20 A2.07.14 A2.07.15 A2.07.16 A2.07.17 A2.07.19 A2.07.20 A2.07.21
+A2.07.19 A2.07.15 A2.07.16 A2.07.18 A2.07.20 A2.07.21 A2.08.16 A2.08.19 A2.08.21
+A2.07.20 A2.06.20 A2.06.22 A2.07.17 A2.07.18 A2.07.19 A2.07.21 A2.07.22 A2.07.23
+A2.07.21 A2.07.18 A2.07.19 A2.07.20 A2.07.22 A2.07.23 A2.08.19 A2.08.21 A2.08.23
+A2.07.22 A2.06.20 A2.06.22 A2.06.24 A2.07.20 A2.07.21 A2.07.23 A2.07.24 A2.07.25
+A2.07.23 A2.07.20 A2.07.21 A2.07.22 A2.07.24 A2.07.25 A2.08.21 A2.08.23 A2.08.25
+A2.07.24 A2.06.22 A2.06.24 A2.06.25 A2.06.26 A2.07.22 A2.07.23 A2.07.25 A2.07.26
+A2.07.25 A2.06.26 A2.07.22 A2.07.23 A2.07.24 A2.07.26 A2.08.23 A2.08.25 A2.08.26
+A2.07.26 A2.06.26 A2.06.28 A2.07.24 A2.07.25 A2.07.27 A2.08.25 A2.08.26 A2.08.27
+A2.07.27 A2.06.26 A2.06.28 A2.06.30 A2.07.26 A2.07.28 A2.07.29 A2.08.26 A2.08.27 A2.08.29
+A2.07.28 A2.06.28 A2.06.30 A2.06.31 A2.07.27 A2.07.29
+A2.07.29 A2.07.27 A2.07.28 A2.08.27 A2.08.29
+A2.08.00 A2.07.01 A2.07.06 A2.08.01 A2.08.06
+A2.08.01 A2.08.00 A2.08.02 A2.08.05 A2.08.06
+A2.08.02 A2.08.01 A2.08.05 A2.08.06
+A2.08.03 A2.08.04 A2.08.07 A2.08.08 A2.09.04
+A2.08.04 A2.08.03 A2.08.05 A2.08.07 A2.08.08 A2.08.09
+A2.08.05 A2.08.01 A2.08.02 A2.08.04 A2.08.06 A2.08.08 A2.08.09 A2.08.10
+A2.08.06 A2.07.01 A2.07.06 A2.07.10 A2.08.00 A2.08.01 A2.08.02 A2.08.05 A2.08.09 A2.08.10
+A2.08.07 A2.08.03 A2.08.04 A2.08.08 A2.08.11 A2.09.04 A2.09.07 A2.09.10
+A2.08.08 A2.08.03 A2.08.04 A2.08.05 A2.08.07 A2.08.09 A2.08.11 A2.08.12 A2.09.10
+A2.08.09 A2.08.04 A2.08.05 A2.08.06 A2.08.08 A2.08.10 A2.08.11 A2.08.12 A2.08.13
+A2.08.10 A2.07.06 A2.07.10 A2.07.13 A2.08.05 A2.08.06 A2.08.09 A2.08.12 A2.08.13
+A2.08.11 A2.08.07 A2.08.08 A2.08.09 A2.08.12 A2.08.14 A2.08.15 A2.09.10 A2.09.13
+A2.08.12 A2.08.08 A2.08.09 A2.08.10 A2.08.11 A2.08.13 A2.08.14 A2.08.15 A2.08.16
+A2.08.13 A2.07.10 A2.07.13 A2.07.16 A2.08.09 A2.08.10 A2.08.12 A2.08.15 A2.08.16
+A2.08.14 A2.08.11 A2.08.12 A2.08.15 A2.08.17 A2.08.18 A2.09.10 A2.09.13 A2.09.16
+A2.08.15 A2.08.11 A2.08.12 A2.08.13 A2.08.14 A2.08.16 A2.08.17 A2.08.18 A2.08.19
+A2.08.16 A2.07.13 A2.07.16 A2.07.19 A2.08.12 A2.08.13 A2.08.15 A2.08.18 A2.08.19
+A2.08.17 A2.08.14 A2.08.15 A2.08.18 A2.08.20 A2.09.13 A2.09.16 A2.09.18 A2.09.20
+A2.08.18 A2.08.14 A2.08.15 A2.08.16 A2.08.17 A2.08.19 A2.08.20 A2.08.21 A2.09.20
+A2.08.19 A2.07.16 A2.07.19 A2.07.21 A2.08.15 A2.08.16 A2.08.18 A2.08.20 A2.08.21
+A2.08.20 A2.08.17 A2.08.18 A2.08.19 A2.08.21 A2.08.22 A2.08.23 A2.09.20 A2.09.22
+A2.08.21 A2.07.19 A2.07.21 A2.07.23 A2.08.18 A2.08.19 A2.08.20 A2.08.22 A2.08.23
+A2.08.22 A2.08.20 A2.08.21 A2.08.23 A2.08.24 A2.08.25 A2.09.20 A2.09.22 A2.09.24
+A2.08.23 A2.07.21 A2.07.23 A2.07.25 A2.08.20 A2.08.21 A2.08.22 A2.08.24 A2.08.25
+A2.08.24 A2.08.22 A2.08.23 A2.08.25 A2.08.26 A2.09.22 A2.09.24 A2.09.25 A2.09.26
+A2.08.25 A2.07.23 A2.07.25 A2.07.26 A2.08.22 A2.08.23 A2.08.24 A2.08.26 A2.09.26
+A2.08.26 A2.07.25 A2.07.26 A2.07.27 A2.08.24 A2.08.25 A2.08.27 A2.09.26 A2.09.28
+A2.08.27 A2.07.26 A2.07.27 A2.07.29 A2.08.26 A2.08.28 A2.08.29 A2.09.26 A2.09.28 A2.09.30
+A2.08.28 A2.08.27 A2.08.29 A2.09.28 A2.09.30 A2.09.31
+A2.08.29 A2.07.27 A2.07.29 A2.08.27 A2.08.28
+A2.09.00 A2.09.05 A2.10.00 A2.10.06
+A2.09.01 A2.09.03 A2.09.05
+A2.09.02 A2.09.04 A2.09.06 A2.09.07
+A2.09.03 A2.09.01 A2.09.05 A2.09.06 A2.09.09
+A2.09.04 A2.08.03 A2.08.07 A2.09.02 A2.09.06 A2.09.07 A2.09.10
+A2.09.05 A2.09.00 A2.09.01 A2.09.03 A2.09.06 A2.09.08 A2.09.09 A2.09.12 A2.10.06
+A2.09.06 A2.09.02 A2.09.03 A2.09.04 A2.09.05 A2.09.07 A2.09.09 A2.09.11
+A2.09.07 A2.08.07 A2.09.02 A2.09.04 A2.09.06 A2.09.09 A2.09.10 A2.09.11 A2.09.13
+A2.09.08 A2.09.05 A2.09.09 A2.09.12 A2.09.14 A2.10.06 A2.10.09 A2.10.11
+A2.09.09 A2.09.03 A2.09.05 A2.09.06 A2.09.07 A2.09.08 A2.09.11 A2.09.12 A2.09.15
+A2.09.10 A2.08.07 A2.08.08 A2.08.11 A2.08.14 A2.09.04 A2.09.07 A2.09.11 A2.09.13
+A2.09.11 A2.09.06 A2.09.07 A2.09.09 A2.09.10 A2.09.12 A2.09.13 A2.09.15 A2.09.16
+A2.09.12 A2.09.05 A2.09.08 A2.09.09 A2.09.11 A2.09.14 A2.09.15 A2.09.17 A2.10.11
+A2.09.13 A2.08.11 A2.08.14 A2.08.17 A2.09.07 A2.09.10 A2.09.11 A2.09.15 A2.09.16
+A2.09.14 A2.09.08 A2.09.12 A2.09.15 A2.09.17 A2.09.19 A2.10.11 A2.10.14 A2.10.16
+A2.09.15 A2.09.09 A2.09.11 A2.09.12 A2.09.13 A2.09.14 A2.09.16 A2.09.17 A2.09.18
+A2.09.16 A2.08.14 A2.08.17 A2.09.11 A2.09.13 A2.09.15 A2.09.17 A2.09.18 A2.09.20
+A2.09.17 A2.09.12 A2.09.14 A2.09.15 A2.09.16 A2.09.18 A2.09.19 A2.09.21 A2.10.16
+A2.09.18 A2.08.17 A2.09.15 A2.09.16 A2.09.17 A2.09.19 A2.09.20 A2.09.21 A2.09.22
+A2.09.19 A2.09.14 A2.09.17 A2.09.18 A2.09.21 A2.09.23 A2.10.16 A2.10.18 A2.10.20
+A2.09.20 A2.08.17 A2.08.18 A2.08.20 A2.08.22 A2.09.16 A2.09.18 A2.09.21 A2.09.22
+A2.09.21 A2.09.17 A2.09.18 A2.09.19 A2.09.20 A2.09.22 A2.09.23 A2.09.24 A2.10.20
+A2.09.22 A2.08.20 A2.08.22 A2.08.24 A2.09.18 A2.09.20 A2.09.21 A2.09.23 A2.09.24
+A2.09.23 A2.09.19 A2.09.21 A2.09.22 A2.09.24 A2.09.25 A2.10.20 A2.10.22 A2.10.24
+A2.09.24 A2.08.22 A2.08.24 A2.09.21 A2.09.22 A2.09.23 A2.09.25 A2.09.26 A2.10.24
+A2.09.25 A2.08.24 A2.09.23 A2.09.24 A2.09.26 A2.09.27 A2.09.28 A2.10.24 A2.10.25
+A2.09.26 A2.08.24 A2.08.25 A2.08.26 A2.08.27 A2.09.24 A2.09.25 A2.09.27 A2.09.28
+A2.09.27 A2.09.25 A2.09.26 A2.09.28 A2.09.29 A2.10.24 A2.10.25 A2.10.26 A2.10.27
+A2.09.28 A2.08.26 A2.08.27 A2.08.28 A2.09.25 A2.09.26 A2.09.27 A2.09.29 A2.09.30 A2.10.27
+A2.09.29 A2.09.27 A2.09.28 A2.09.30 A2.09.31 A2.10.27 A2.10.29
+A2.09.30 A2.08.27 A2.08.28 A2.09.28 A2.09.29 A2.09.31 A2.10.29
+A2.09.31 A2.08.28 A2.09.29 A2.09.30 A2.10.29 A2.10.30
+A2.10.00 A2.09.00 A2.10.03 A2.10.06
+A2.10.01 A2.10.02 A2.10.07 A2.10.08
+A2.10.02 A2.10.01 A2.10.04 A2.10.07 A2.10.08 A2.11.01
+A2.10.03 A2.10.00 A2.10.05 A2.10.06 A2.10.09
+A2.10.04 A2.10.02 A2.10.08 A2.11.01 A2.11.06
+A2.10.05 A2.10.03 A2.10.07 A2.10.09 A2.10.10
+A2.10.06 A2.09.00 A2.09.05 A2.09.08 A2.10.00 A2.10.03 A2.10.09 A2.10.11
+A2.10.07 A2.10.01 A2.10.02 A2.10.05 A2.10.08 A2.10.09 A2.10.10 A2.10.12
+A2.10.08 A2.10.01 A2.10.02 A2.10.04 A2.10.07 A2.10.10 A2.10.12 A2.10.13 A2.11.01 A2.11.06
+A2.10.09 A2.09.08 A2.10.03 A2.10.05 A2.10.06 A2.10.07 A2.10.10 A2.10.11 A2.10.14
+A2.10.10 A2.10.05 A2.10.07 A2.10.08 A2.10.09 A2.10.11 A2.10.12 A2.10.14 A2.10.15
+A2.10.11 A2.09.08 A2.09.12 A2.09.14 A2.10.06 A2.10.09 A2.10.10 A2.10.14 A2.10.16
+A2.10.12 A2.10.07 A2.10.08 A2.10.10 A2.10.13 A2.10.14 A2.10.15 A2.10.17 A2.11.06
+A2.10.13 A2.10.08 A2.10.12 A2.10.15 A2.10.17 A2.11.06 A2.11.07 A2.11.11 A2.11.15
+A2.10.14 A2.09.14 A2.10.09 A2.10.10 A2.10.11 A2.10.12 A2.10.15 A2.10.16 A2.10.18
+A2.10.15 A2.10.10 A2.10.12 A2.10.13 A2.10.14 A2.10.16 A2.10.17 A2.10.18 A2.10.19
+A2.10.16 A2.09.14 A2.09.17 A2.09.19 A2.10.11 A2.10.14 A2.10.15 A2.10.18 A2.10.20
+A2.10.17 A2.10.12 A2.10.13 A2.10.15 A2.10.18 A2.10.19 A2.10.21 A2.11.11 A2.11.15
+A2.10.18 A2.09.19 A2.10.14 A2.10.15 A2.10.16 A2.10.17 A2.10.19 A2.10.20 A2.10.22
+A2.10.19 A2.10.15 A2.10.17 A2.10.18 A2.10.20 A2.10.21 A2.10.22 A2.10.23 A2.11.15
+A2.10.20 A2.09.19 A2.09.21 A2.09.23 A2.10.16 A2.10.18 A2.10.19 A2.10.22 A2.10.24
+A2.10.21 A2.10.17 A2.10.19 A2.10.22 A2.10.23 A2.11.15 A2.11.16 A2.11.19 A2.11.22
+A2.10.22 A2.09.23 A2.10.18 A2.10.19 A2.10.20 A2.10.21 A2.10.23 A2.10.24 A2.10.25
+A2.10.23 A2.10.19 A2.10.21 A2.10.22 A2.10.24 A2.10.25 A2.10.26 A2.11.19 A2.11.22
+A2.10.24 A2.09.23 A2.09.24 A2.09.25 A2.09.27 A2.10.20 A2.10.22 A2.10.23 A2.10.25
+A2.10.25 A2.09.25 A2.09.27 A2.10.22 A2.10.23 A2.10.24 A2.10.26 A2.10.27 A2.11.22
+A2.10.26 A2.09.27 A2.10.23 A2.10.25 A2.10.27 A2.10.28 A2.11.22 A2.11.23 A2.11.25
+A2.10.27 A2.09.27 A2.09.28 A2.09.29 A2.10.25 A2.10.26 A2.10.28 A2.10.29 A2.10.30 A2.11.25
+A2.10.28 A2.10.26 A2.10.27 A2.10.29 A2.10.30 A2.10.31 A2.11.25 A2.11.26 A2.11.27 A2.11.29
+A2.10.29 A2.09.29 A2.09.30 A2.09.31 A2.10.27 A2.10.28 A2.10.30
+A2.10.30 A2.09.31 A2.10.27 A2.10.28 A2.10.29 A2.10.31
+A2.10.31 A2.10.28 A2.10.30 A2.11.29 A2.11.30
+A2.11.00 A2.11.03 A2.11.04 A2.11.05 A2.12.00 A2.12.05
+A2.11.01 A2.10.02 A2.10.04 A2.10.08 A2.11.02 A2.11.06 A2.11.07
+A2.11.02 A2.11.01 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A2.11.03 A2.11.00 A2.11.02 A2.11.04 A2.11.07 A2.11.08 A2.11.09
+A2.11.04 A2.11.00 A2.11.03 A2.11.05 A2.11.08 A2.11.09 A2.11.10
+A2.11.05 A2.11.00 A2.11.04 A2.11.09 A2.11.10 A2.12.00 A2.12.05 A2.12.10
+A2.11.06 A2.10.04 A2.10.08 A2.10.12 A2.10.13 A2.11.01 A2.11.02 A2.11.07 A2.11.11
+A2.11.07 A2.10.13 A2.11.01 A2.11.02 A2.11.03 A2.11.06 A2.11.08 A2.11.11 A2.11.12
+A2.11.08 A2.11.02 A2.11.03 A2.11.04 A2.11.07 A2.11.09 A2.11.11 A2.11.12 A2.11.13
+A2.11.09 A2.11.03 A2.11.04 A2.11.05 A2.11.08 A2.11.10 A2.11.12 A2.11.13 A2.11.14
+A2.11.10 A2.11.04 A2.11.05 A2.11.09 A2.11.13 A2.11.14 A2.12.05 A2.12.10 A2.12.14
+A2.11.11 A2.10.13 A2.10.17 A2.11.06 A2.11.07 A2.11.08 A2.11.12 A2.11.15 A2.11.16
+A2.11.12 A2.11.07 A2.11.08 A2.11.09 A2.11.11 A2.11.13 A2.11.15 A2.11.16 A2.11.17
+A2.11.13 A2.11.08 A2.11.09 A2.11.10 A2.11.12 A2.11.14 A2.11.16 A2.11.17 A2.11.18
+A2.11.14 A2.11.09 A2.11.10 A2.11.13 A2.11.17 A2.11.18 A2.12.10 A2.12.14 A2.12.18
+A2.11.15 A2.10.13 A2.10.17 A2.10.19 A2.10.21 A2.11.11 A2.11.12 A2.11.16 A2.11.19
+A2.11.16 A2.10.21 A2.11.11 A2.11.12 A2.11.13 A2.11.15 A2.11.17 A2.11.19 A2.11.20
+A2.11.17 A2.11.12 A2.11.13 A2.11.14 A2.11.16 A2.11.18 A2.11.19 A2.11.20 A2.11.21
+A2.11.18 A2.11.13 A2.11.14 A2.11.17 A2.11.20 A2.11.21 A2.12.14 A2.12.18 A2.12.21
+A2.11.19 A2.10.21 A2.10.23 A2.11.15 A2.11.16 A2.11.17 A2.11.20 A2.11.22 A2.11.23
+A2.11.20 A2.11.16 A2.11.17 A2.11.18 A2.11.19 A2.11.21 A2.11.22 A2.11.23 A2.11.24
+A2.11.21 A2.11.17 A2.11.18 A2.11.20 A2.11.23 A2.11.24 A2.12.18 A2.12.21 A2.12.24
+A2.11.22 A2.10.21 A2.10.23 A2.10.25 A2.10.26 A2.11.19 A2.11.20 A2.11.23 A2.11.25
+A2.11.23 A2.10.26 A2.11.19 A2.11.20 A2.11.21 A2.11.22 A2.11.24 A2.11.25 A2.11.26
+A2.11.24 A2.11.20 A2.11.21 A2.11.23 A2.11.25 A2.11.26 A2.12.21 A2.12.24 A2.12.26
+A2.11.25 A2.10.26 A2.10.27 A2.10.28 A2.11.22 A2.11.23 A2.11.24 A2.11.26 A2.11.27
+A2.11.26 A2.10.28 A2.11.23 A2.11.24 A2.11.25 A2.11.27 A2.11.28 A2.12.24 A2.12.26 A2.12.28
+A2.11.27 A2.10.28 A2.11.25 A2.11.26 A2.11.28 A2.11.29 A2.11.30
+A2.11.28 A2.11.26 A2.11.27 A2.11.29 A2.11.30 A2.12.26 A2.12.28 A2.12.30
+A2.11.29 A2.10.28 A2.10.31 A2.11.27 A2.11.28 A2.11.30
+A2.11.30 A2.10.31 A2.11.27 A2.11.28 A2.11.29 A2.12.28 A2.12.30
+A2.12.00 A2.11.00 A2.11.05 A2.12.03 A2.12.04 A2.12.05
+A2.12.01 A2.12.02 A2.12.06 A2.12.07 A2.13.02 A2.13.04 A2.13.08
+A2.12.02 A2.12.01 A2.12.03 A2.12.06 A2.12.07 A2.12.08
+A2.12.03 A2.12.00 A2.12.02 A2.12.04 A2.12.07 A2.12.08 A2.12.09
+A2.12.04 A2.12.00 A2.12.03 A2.12.05 A2.12.08 A2.12.09 A2.12.10
+A2.12.05 A2.11.00 A2.11.05 A2.11.10 A2.12.00 A2.12.04 A2.12.09 A2.12.10
+A2.12.06 A2.12.01 A2.12.02 A2.12.07 A2.12.11 A2.13.04 A2.13.08 A2.13.12 A2.13.13
+A2.12.07 A2.12.01 A2.12.02 A2.12.03 A2.12.06 A2.12.08 A2.12.11 A2.12.12 A2.13.13
+A2.12.08 A2.12.02 A2.12.03 A2.12.04 A2.12.07 A2.12.09 A2.12.11 A2.12.12 A2.12.13
+A2.12.09 A2.12.03 A2.12.04 A2.12.05 A2.12.08 A2.12.10 A2.12.12 A2.12.13 A2.12.14
+A2.12.10 A2.11.05 A2.11.10 A2.11.14 A2.12.04 A2.12.05 A2.12.09 A2.12.13 A2.12.14
+A2.12.11 A2.12.06 A2.12.07 A2.12.08 A2.12.12 A2.12.15 A2.12.16 A2.13.13 A2.13.17
+A2.12.12 A2.12.07 A2.12.08 A2.12.09 A2.12.11 A2.12.13 A2.12.15 A2.12.16 A2.12.17
+A2.12.13 A2.12.08 A2.12.09 A2.12.10 A2.12.12 A2.12.14 A2.12.16 A2.12.17 A2.12.18
+A2.12.14 A2.11.10 A2.11.14 A2.11.18 A2.12.09 A2.12.10 A2.12.13 A2.12.17 A2.12.18
+A2.12.15 A2.12.11 A2.12.12 A2.12.16 A2.12.19 A2.13.13 A2.13.17 A2.13.19 A2.13.21
+A2.12.16 A2.12.11 A2.12.12 A2.12.13 A2.12.15 A2.12.17 A2.12.19 A2.12.20 A2.13.21
+A2.12.17 A2.12.12 A2.12.13 A2.12.14 A2.12.16 A2.12.18 A2.12.19 A2.12.20 A2.12.21
+A2.12.18 A2.11.14 A2.11.18 A2.11.21 A2.12.13 A2.12.14 A2.12.17 A2.12.20 A2.12.21
+A2.12.19 A2.12.15 A2.12.16 A2.12.17 A2.12.20 A2.12.22 A2.12.23 A2.13.21 A2.13.23
+A2.12.20 A2.12.16 A2.12.17 A2.12.18 A2.12.19 A2.12.21 A2.12.22 A2.12.23 A2.12.24
+A2.12.21 A2.11.18 A2.11.21 A2.11.24 A2.12.17 A2.12.18 A2.12.20 A2.12.23 A2.12.24
+A2.12.22 A2.12.19 A2.12.20 A2.12.23 A2.12.25 A2.13.21 A2.13.23 A2.13.25 A2.13.26
+A2.12.23 A2.12.19 A2.12.20 A2.12.21 A2.12.22 A2.12.24 A2.12.25 A2.12.26 A2.13.26
+A2.12.24 A2.11.21 A2.11.24 A2.11.26 A2.12.20 A2.12.21 A2.12.23 A2.12.25 A2.12.26
+A2.12.25 A2.12.22 A2.12.23 A2.12.24 A2.12.26 A2.12.27 A2.13.26 A2.13.27 A2.13.28
+A2.12.26 A2.11.24 A2.11.26 A2.11.28 A2.12.23 A2.12.24 A2.12.25 A2.12.27 A2.12.28 A2.13.28
+A2.12.27 A2.12.25 A2.12.26 A2.12.28 A2.12.29 A2.12.30 A2.13.28
+A2.12.28 A2.11.26 A2.11.28 A2.11.30 A2.12.26 A2.12.27 A2.12.29 A2.12.30
+A2.12.29 A2.12.27 A2.12.28 A2.12.30 A2.13.28 A2.13.31
+A2.12.30 A2.11.28 A2.11.30 A2.12.27 A2.12.28 A2.12.29
+A2.13.00 A2.13.02 A2.13.07
+A2.13.01 A2.13.06 A2.14.00 A2.14.03
+A2.13.02 A2.12.01 A2.13.00 A2.13.04 A2.13.07 A2.13.08
+A2.13.03 A2.13.05 A2.13.06 A2.13.09
+A2.13.04 A2.12.01 A2.12.06 A2.13.02 A2.13.08
+A2.13.05 A2.13.03 A2.13.07 A2.13.09 A2.13.10
+A2.13.06 A2.13.01 A2.13.03 A2.13.09 A2.13.11 A2.14.03 A2.14.08
+A2.13.07 A2.13.00 A2.13.02 A2.13.05 A2.13.08 A2.13.09 A2.13.10 A2.13.12
+A2.13.08 A2.12.01 A2.12.06 A2.13.02 A2.13.04 A2.13.07 A2.13.10 A2.13.12 A2.13.13
+A2.13.09 A2.13.03 A2.13.05 A2.13.06 A2.13.07 A2.13.10 A2.13.11 A2.13.14 A2.14.08
+A2.13.10 A2.13.05 A2.13.07 A2.13.08 A2.13.09 A2.13.11 A2.13.12 A2.13.14 A2.13.15
+A2.13.11 A2.13.06 A2.13.09 A2.13.10 A2.13.14 A2.13.16 A2.14.08 A2.14.12 A2.14.14
+A2.13.12 A2.12.06 A2.13.07 A2.13.08 A2.13.10 A2.13.13 A2.13.14 A2.13.15 A2.13.17
+A2.13.13 A2.12.06 A2.12.07 A2.12.11 A2.12.15 A2.13.08 A2.13.12 A2.13.15 A2.13.17
+A2.13.14 A2.13.09 A2.13.10 A2.13.11 A2.13.12 A2.13.15 A2.13.16 A2.13.18 A2.14.14
+A2.13.15 A2.13.10 A2.13.12 A2.13.13 A2.13.14 A2.13.16 A2.13.17 A2.13.18 A2.13.19
+A2.13.16 A2.13.11 A2.13.14 A2.13.15 A2.13.18 A2.13.20 A2.14.14 A2.14.17 A2.14.19
+A2.13.17 A2.12.11 A2.12.15 A2.13.12 A2.13.13 A2.13.15 A2.13.18 A2.13.19 A2.13.21
+A2.13.18 A2.13.14 A2.13.15 A2.13.16 A2.13.17 A2.13.19 A2.13.20 A2.13.22 A2.14.19
+A2.13.19 A2.12.15 A2.13.15 A2.13.17 A2.13.18 A2.13.20 A2.13.21 A2.13.22 A2.13.23
+A2.13.20 A2.13.16 A2.13.18 A2.13.19 A2.13.22 A2.13.24 A2.14.19 A2.14.21 A2.14.23
+A2.13.21 A2.12.15 A2.12.16 A2.12.19 A2.12.22 A2.13.17 A2.13.19 A2.13.22 A2.13.23
+A2.13.22 A2.13.18 A2.13.19 A2.13.20 A2.13.21 A2.13.23 A2.13.24 A2.13.25 A2.14.23
+A2.13.23 A2.12.19 A2.12.22 A2.13.19 A2.13.21 A2.13.22 A2.13.24 A2.13.25 A2.13.26
+A2.13.24 A2.13.20 A2.13.22 A2.13.23 A2.13.25 A2.14.23 A2.14.24 A2.14.25 A2.14.27
+A2.13.25 A2.12.22 A2.13.22 A2.13.23 A2.13.24 A2.13.26 A2.13.27 A2.14.25 A2.14.27
+A2.13.26 A2.12.22 A2.12.23 A2.12.25 A2.13.23 A2.13.25 A2.13.27 A2.13.28 A2.14.27
+A2.13.27 A2.12.25 A2.13.25 A2.13.26 A2.13.28 A2.13.29 A2.13.30 A2.14.27 A2.14.28
+A2.13.28 A2.12.25 A2.12.26 A2.12.27 A2.12.29 A2.13.26 A2.13.27 A2.13.30 A2.13.31
+A2.13.29 A2.13.27 A2.13.30 A2.14.27 A2.14.28 A2.14.29 A2.14.31
+A2.13.30 A2.13.27 A2.13.28 A2.13.29 A2.13.31 A2.14.29 A2.14.31
+A2.13.31 A2.12.29 A2.13.28 A2.13.30
+A2.14.00 A2.13.01 A2.14.03 A2.14.05
+A2.14.01 A2.14.05 A2.14.06
+A2.14.02 A2.14.04 A2.14.06 A2.14.07
+A2.14.03 A2.13.01 A2.13.06 A2.14.00 A2.14.05 A2.14.08
+A2.14.04 A2.14.02 A2.14.06 A2.14.07 A2.14.10 A2.15.03 A2.15.07
+A2.14.05 A2.14.00 A2.14.01 A2.14.03 A2.14.06 A2.14.08 A2.14.09 A2.14.12
+A2.14.06 A2.14.01 A2.14.02 A2.14.04 A2.14.05 A2.14.07 A2.14.09 A2.14.11
+A2.14.07 A2.14.02 A2.14.04 A2.14.06 A2.14.09 A2.14.10 A2.14.11 A2.14.13 A2.15.07
+A2.14.08 A2.13.06 A2.13.09 A2.13.11 A2.14.03 A2.14.05 A2.14.09 A2.14.12 A2.14.14
+A2.14.09 A2.14.05 A2.14.06 A2.14.07 A2.14.08 A2.14.11 A2.14.12 A2.14.15
+A2.14.10 A2.14.04 A2.14.07 A2.14.11 A2.14.13 A2.15.07 A2.15.08 A2.15.11 A2.15.14
+A2.14.11 A2.14.06 A2.14.07 A2.14.09 A2.14.10 A2.14.12 A2.14.13 A2.14.15 A2.14.16
+A2.14.12 A2.13.11 A2.14.05 A2.14.08 A2.14.09 A2.14.11 A2.14.14 A2.14.15 A2.14.17
+A2.14.13 A2.14.07 A2.14.10 A2.14.11 A2.14.15 A2.14.16 A2.15.11 A2.15.14 A2.15.17
+A2.14.14 A2.13.11 A2.13.14 A2.13.16 A2.14.08 A2.14.12 A2.14.15 A2.14.17 A2.14.19
+A2.14.15 A2.14.09 A2.14.11 A2.14.12 A2.14.13 A2.14.14 A2.14.16 A2.14.17 A2.14.18
+A2.14.16 A2.14.11 A2.14.13 A2.14.15 A2.14.17 A2.14.18 A2.14.20 A2.15.14 A2.15.17
+A2.14.17 A2.13.16 A2.14.12 A2.14.14 A2.14.15 A2.14.16 A2.14.18 A2.14.19 A2.14.21
+A2.14.18 A2.14.15 A2.14.16 A2.14.17 A2.14.19 A2.14.20 A2.14.21 A2.14.22 A2.15.17
+A2.14.19 A2.13.16 A2.13.18 A2.13.20 A2.14.14 A2.14.17 A2.14.18 A2.14.21 A2.14.23
+A2.14.20 A2.14.16 A2.14.18 A2.14.21 A2.14.22 A2.15.17 A2.15.18 A2.15.20 A2.15.22
+A2.14.21 A2.13.20 A2.14.17 A2.14.18 A2.14.19 A2.14.20 A2.14.22 A2.14.23 A2.14.24
+A2.14.22 A2.14.18 A2.14.20 A2.14.21 A2.14.23 A2.14.24 A2.15.20 A2.15.22 A2.15.24
+A2.14.23 A2.13.20 A2.13.22 A2.13.24 A2.14.19 A2.14.21 A2.14.22 A2.14.24 A2.14.25
+A2.14.24 A2.13.24 A2.14.21 A2.14.22 A2.14.23 A2.14.25 A2.14.26 A2.15.22 A2.15.24
+A2.14.25 A2.13.24 A2.13.25 A2.14.23 A2.14.24 A2.14.26 A2.14.27 A2.14.28 A2.15.24
+A2.14.26 A2.14.24 A2.14.25 A2.14.27 A2.14.28 A2.15.24 A2.15.25 A2.15.26 A2.15.27
+A2.14.27 A2.13.24 A2.13.25 A2.13.26 A2.13.27 A2.13.29 A2.14.25 A2.14.26 A2.14.28
+A2.14.28 A2.13.27 A2.13.29 A2.14.25 A2.14.26 A2.14.27 A2.14.29 A2.14.30 A2.15.26 A2.15.27 A2.15.28
+A2.14.29 A2.13.29 A2.13.30 A2.14.28 A2.14.30 A2.14.31
+A2.14.30 A2.14.28 A2.14.29 A2.14.31 A2.15.27 A2.15.28
+A2.14.31 A2.13.29 A2.13.30 A2.14.29 A2.14.30 A2.15.28
+A2.15.00 A2.15.02 A2.15.05 A2.15.06
+A2.15.01 A2.00.02 A2.00.06 A2.15.02 A2.15.06
+A2.15.02 A2.15.00 A2.15.01 A2.15.05 A2.15.06
+A2.15.03 A2.14.04 A2.15.04 A2.15.07 A2.15.08
+A2.15.04 A2.15.03 A2.15.05 A2.15.07 A2.15.08 A2.15.09
+A2.15.05 A2.15.00 A2.15.02 A2.15.04 A2.15.06 A2.15.08 A2.15.09 A2.15.10
+A2.15.06 A2.00.02 A2.00.06 A2.00.10 A2.15.00 A2.15.01 A2.15.02 A2.15.05 A2.15.09 A2.15.10
+A2.15.07 A2.14.04 A2.14.07 A2.14.10 A2.15.03 A2.15.04 A2.15.08 A2.15.11
+A2.15.08 A2.14.10 A2.15.03 A2.15.04 A2.15.05 A2.15.07 A2.15.09 A2.15.11 A2.15.12
+A2.15.09 A2.15.04 A2.15.05 A2.15.06 A2.15.08 A2.15.10 A2.15.11 A2.15.12 A2.15.13
+A2.15.10 A2.00.06 A2.00.10 A2.00.13 A2.15.05 A2.15.06 A2.15.09 A2.15.12 A2.15.13
+A2.15.11 A2.14.10 A2.14.13 A2.15.07 A2.15.08 A2.15.09 A2.15.12 A2.15.14 A2.15.15
+A2.15.12 A2.15.08 A2.15.09 A2.15.10 A2.15.11 A2.15.13 A2.15.14 A2.15.15 A2.15.16
+A2.15.13 A2.00.10 A2.00.13 A2.00.16 A2.15.09 A2.15.10 A2.15.12 A2.15.15 A2.15.16
+A2.15.14 A2.14.10 A2.14.13 A2.14.16 A2.15.11 A2.15.12 A2.15.15 A2.15.17 A2.15.18
+A2.15.15 A2.15.11 A2.15.12 A2.15.13 A2.15.14 A2.15.16 A2.15.17 A2.15.18 A2.15.19
+A2.15.16 A2.00.13 A2.00.16 A2.00.19 A2.15.12 A2.15.13 A2.15.15 A2.15.18 A2.15.19
+A2.15.17 A2.14.13 A2.14.16 A2.14.18 A2.14.20 A2.15.14 A2.15.15 A2.15.18 A2.15.20
+A2.15.18 A2.14.20 A2.15.14 A2.15.15 A2.15.16 A2.15.17 A2.15.19 A2.15.20 A2.15.21
+A2.15.19 A2.00.16 A2.00.19 A2.00.21 A2.15.15 A2.15.16 A2.15.18 A2.15.20 A2.15.21
+A2.15.20 A2.14.20 A2.14.22 A2.15.17 A2.15.18 A2.15.19 A2.15.21 A2.15.22 A2.15.23
+A2.15.21 A2.00.19 A2.00.21 A2.00.23 A2.15.18 A2.15.19 A2.15.20 A2.15.22 A2.15.23
+A2.15.22 A2.14.20 A2.14.22 A2.14.24 A2.15.20 A2.15.21 A2.15.23 A2.15.24 A2.15.25
+A2.15.23 A2.00.21 A2.00.23 A2.00.25 A2.15.20 A2.15.21 A2.15.22 A2.15.24 A2.15.25
+A2.15.24 A2.14.22 A2.14.24 A2.14.25 A2.14.26 A2.15.22 A2.15.23 A2.15.25 A2.15.26
+A2.15.25 A2.00.23 A2.00.25 A2.00.26 A2.14.26 A2.15.22 A2.15.23 A2.15.24 A2.15.26
+A2.15.26 A2.00.25 A2.00.26 A2.00.27 A2.14.26 A2.14.28 A2.15.24 A2.15.25 A2.15.27
+A2.15.27 A2.00.26 A2.00.27 A2.00.29 A2.14.26 A2.14.28 A2.14.30 A2.15.26 A2.15.28 A2.15.29
+A2.15.28 A2.14.28 A2.14.30 A2.14.31 A2.15.27 A2.15.29
+A2.15.29 A2.00.27 A2.00.29 A2.15.27 A2.15.28
+A3.00.00 A3.00.02 A3.00.03 A3.15.00 A3.15.03
+A3.00.01 A3.00.02 A3.00.04 A3.00.05 A3.01.00 A3.01.04
+A3.00.02 A3.00.00 A3.00.01 A3.00.03 A3.00.04 A3.00.05 A3.00.06
+A3.00.03 A3.00.00 A3.00.02 A3.00.05 A3.00.06 A3.15.00 A3.15.03 A3.15.06
+A3.00.04 A3.00.01 A3.00.02 A3.00.05 A3.00.07 A3.00.08 A3.01.04 A3.01.06
+A3.00.05 A3.00.01 A3.00.02 A3.00.03 A3.00.04 A3.00.06 A3.00.07 A3.00.08 A3.00.09
+A3.00.06 A3.00.02 A3.00.03 A3.00.05 A3.00.08 A3.00.09 A3.15.03 A3.15.06 A3.15.09
+A3.00.07 A3.00.04 A3.00.05 A3.00.08 A3.00.10 A3.01.04 A3.01.06 A3.01.08 A3.01.09
+A3.00.08 A3.00.04 A3.00.05 A3.00.06 A3.00.07 A3.00.09 A3.00.10 A3.00.11 A3.01.09
+A3.00.09 A3.00.05 A3.00.06 A3.00.08 A3.00.10 A3.00.11 A3.15.06 A3.15.09 A3.15.11
+A3.00.10 A3.00.07 A3.00.08 A3.00.09 A3.00.11 A3.00.12 A3.00.13 A3.01.09 A3.01.11
+A3.00.11 A3.00.08 A3.00.09 A3.00.10 A3.00.12 A3.00.13 A3.15.09 A3.15.11 A3.15.13
+A3.00.12 A3.00.10 A3.00.11 A3.00.13 A3.00.14 A3.01.09 A3.01.11 A3.01.12 A3.01.13
+A3.00.13 A3.00.10 A3.00.11 A3.00.12 A3.00.14 A3.01.13 A3.15.11 A3.15.13 A3.15.14
+A3.00.14 A3.00.12 A3.00.13 A3.00.15 A3.01.13 A3.01.15 A3.15.13 A3.15.14 A3.15.15
+A3.00.15 A3.00.14 A3.01.15 A3.15.14 A3.15.15
+A3.01.00 A3.00.01 A3.01.02 A3.01.04
+A3.01.01 A3.01.02 A3.01.03 A3.01.05 A3.02.00
+A3.01.02 A3.01.00 A3.01.01 A3.01.04 A3.01.05 A3.01.06
+A3.01.03 A3.01.01 A3.01.05 A3.01.07 A3.02.00 A3.02.03 A3.02.05
+A3.01.04 A3.00.01 A3.00.04 A3.00.07 A3.01.00 A3.01.02 A3.01.05 A3.01.06
+A3.01.05 A3.01.01 A3.01.02 A3.01.03 A3.01.04 A3.01.06 A3.01.07 A3.01.08 A3.02.05
+A3.01.06 A3.00.04 A3.00.07 A3.01.02 A3.01.04 A3.01.05 A3.01.07 A3.01.08 A3.01.09
+A3.01.07 A3.01.03 A3.01.05 A3.01.06 A3.01.08 A3.01.10 A3.02.05 A3.02.07 A3.02.09
+A3.01.08 A3.00.07 A3.01.05 A3.01.06 A3.01.07 A3.01.09 A3.01.10 A3.01.11 A3.02.09
+A3.01.09 A3.00.07 A3.00.08 A3.00.10 A3.00.12 A3.01.06 A3.01.08 A3.01.10 A3.01.11
+A3.01.10 A3.01.07 A3.01.08 A3.01.09 A3.01.11 A3.01.12 A3.02.09 A3.02.10 A3.02.11
+A3.01.11 A3.00.10 A3.00.12 A3.01.08 A3.01.09 A3.01.10 A3.01.12 A3.01.13 A3.02.11
+A3.01.12 A3.00.12 A3.01.10 A3.01.11 A3.01.13 A3.01.14 A3.02.11 A3.02.12 A3.02.13
+A3.01.13 A3.00.12 A3.00.13 A3.00.14 A3.01.11 A3.01.12 A3.01.14 A3.01.15 A3.02.13
+A3.01.14 A3.01.12 A3.01.13 A3.01.15 A3.02.13 A3.02.14
+A3.01.15 A3.00.14 A3.00.15 A3.01.13 A3.01.14 A3.02.14
+A3.02.00 A3.01.01 A3.01.03 A3.02.02 A3.02.03 A3.02.05
+A3.02.01 A3.02.02 A3.03.02 A3.03.05
+A3.02.02 A3.02.00 A3.02.01 A3.02.03 A3.02.04 A3.02.06 A3.03.05
+A3.02.03 A3.01.03 A3.02.00 A3.02.02 A3.02.04 A3.02.05 A3.02.07
+A3.02.04 A3.02.02 A3.02.03 A3.02.05 A3.02.06 A3.02.07 A3.02.08 A3.03.05
+A3.02.05 A3.01.03 A3.01.05 A3.01.07 A3.02.00 A3.02.03 A3.02.04 A3.02.07 A3.02.09
+A3.02.06 A3.02.02 A3.02.04 A3.02.07 A3.02.08 A3.03.05 A3.03.06 A3.03.08 A3.03.10
+A3.02.07 A3.01.07 A3.02.03 A3.02.04 A3.02.05 A3.02.06 A3.02.08 A3.02.09 A3.02.10
+A3.02.08 A3.02.04 A3.02.06 A3.02.07 A3.02.09 A3.02.10 A3.03.08 A3.03.10 A3.03.12
+A3.02.09 A3.01.07 A3.01.08 A3.01.10 A3.02.05 A3.02.07 A3.02.08 A3.02.10 A3.02.11
+A3.02.10 A3.01.10 A3.02.07 A3.02.08 A3.02.09 A3.02.11 A3.02.12 A3.03.10 A3.03.12
+A3.02.11 A3.01.10 A3.01.11 A3.01.12 A3.02.09 A3.02.10 A3.02.12 A3.02.13 A3.03.12
+A3.02.12 A3.01.12 A3.02.10 A3.02.11 A3.02.13 A3.03.12 A3.03.13 A3.03.14 A3.03.15
+A3.02.13 A3.01.12 A3.01.13 A3.01.14 A3.02.11 A3.02.12 A3.02.14 A3.02.15 A3.03.14 A3.03.15
+A3.02.14 A3.01.14 A3.01.15 A3.02.13 A3.02.15
+A3.02.15 A3.02.13 A3.02.14 A3.03.15
+A3.03.00 A3.03.01 A3.03.03 A3.03.04
+A3.03.01 A3.03.00 A3.03.04 A3.04.01 A3.04.04
+A3.03.02 A3.02.01 A3.03.03 A3.03.05 A3.03.06
+A3.03.03 A3.03.00 A3.03.02 A3.03.04 A3.03.05 A3.03.06 A3.03.07
+A3.03.04 A3.03.00 A3.03.01 A3.03.03 A3.03.06 A3.03.07 A3.04.01 A3.04.04 A3.04.07
+A3.03.05 A3.02.01 A3.02.02 A3.02.04 A3.02.06 A3.03.02 A3.03.03 A3.03.06 A3.03.08
+A3.03.06 A3.02.06 A3.03.02 A3.03.03 A3.03.04 A3.03.05 A3.03.07 A3.03.08 A3.03.09
+A3.03.07 A3.03.03 A3.03.04 A3.03.06 A3.03.08 A3.03.09 A3.04.04 A3.04.07 A3.04.09
+A3.03.08 A3.02.06 A3.02.08 A3.03.05 A3.03.06 A3.03.07 A3.03.09 A3.03.10 A3.03.11
+A3.03.09 A3.03.06 A3.03.07 A3.03.08 A3.03.10 A3.03.11 A3.04.07 A3.04.09 A3.04.11
+A3.03.10 A3.02.06 A3.02.08 A3.02.10 A3.03.08 A3.03.09 A3.03.11 A3.03.12 A3.03.13
+A3.03.11 A3.03.08 A3.03.09 A3.03.10 A3.03.12 A3.03.13 A3.04.09 A3.04.11 A3.04.13
+A3.03.12 A3.02.08 A3.02.10 A3.02.11 A3.02.12 A3.03.10 A3.03.11 A3.03.13 A3.03.14
+A3.03.13 A3.02.12 A3.03.10 A3.03.11 A3.03.12 A3.03.14 A3.04.11 A3.04.13 A3.04.14
+A3.03.14 A3.02.12 A3.02.13 A3.03.12 A3.03.13 A3.03.15 A3.04.13 A3.04.14 A3.04.15
+A3.03.15 A3.02.12 A3.02.13 A3.02.15 A3.03.14 A3.04.14 A3.04.15
+A3.04.00 A3.04.01 A3.04.03 A3.04.04
+A3.04.01 A3.03.01 A3.03.04 A3.04.00 A3.04.04
+A3.04.02 A3.04.03 A3.04.05 A3.04.06 A3.05.02
+A3.04.03 A3.04.00 A3.04.02 A3.04.04 A3.04.05 A3.04.06 A3.04.07
+A3.04.04 A3.03.01 A3.03.04 A3.03.07 A3.04.00 A3.04.01 A3.04.03 A3.04.06 A3.04.07
+A3.04.05 A3.04.02 A3.04.03 A3.04.06 A3.04.08 A3.05.02 A3.05.04 A3.05.06
+A3.04.06 A3.04.02 A3.04.03 A3.04.04 A3.04.05 A3.04.07 A3.04.08 A3.04.09 A3.05.06
+A3.04.07 A3.03.04 A3.03.07 A3.03.09 A3.04.03 A3.04.04 A3.04.06 A3.04.08 A3.04.09
+A3.04.08 A3.04.05 A3.04.06 A3.04.07 A3.04.09 A3.04.10 A3.04.11 A3.05.06 A3.05.08
+A3.04.09 A3.03.07 A3.03.09 A3.03.11 A3.04.06 A3.04.07 A3.04.08 A3.04.10 A3.04.11
+A3.04.10 A3.04.08 A3.04.09 A3.04.11 A3.04.12 A3.04.13 A3.05.06 A3.05.08 A3.05.10
+A3.04.11 A3.03.09 A3.03.11 A3.03.13 A3.04.08 A3.04.09 A3.04.10 A3.04.12 A3.04.13
+A3.04.12 A3.04.10 A3.04.11 A3.04.13 A3.04.14 A3.05.08 A3.05.10 A3.05.11 A3.05.12
+A3.04.13 A3.03.11 A3.03.13 A3.03.14 A3.04.10 A3.04.11 A3.04.12 A3.04.14 A3.05.12
+A3.04.14 A3.03.13 A3.03.14 A3.03.15 A3.04.12 A3.04.13 A3.04.15 A3.05.12 A3.05.13
+A3.04.15 A3.03.14 A3.03.15 A3.04.14 A3.05.12 A3.05.13 A3.05.14
+A3.05.00 A3.05.01 A3.05.03 A3.05.05 A3.06.00 A3.06.02
+A3.05.01 A3.05.00 A3.05.02 A3.05.03 A3.05.04
+A3.05.02 A3.04.02 A3.04.05 A3.05.01 A3.05.03 A3.05.04 A3.05.06
+A3.05.03 A3.05.00 A3.05.01 A3.05.02 A3.05.04 A3.05.05 A3.05.07 A3.06.02
+A3.05.04 A3.04.05 A3.05.01 A3.05.02 A3.05.03 A3.05.05 A3.05.06 A3.05.07 A3.05.08
+A3.05.05 A3.05.00 A3.05.03 A3.05.04 A3.05.07 A3.05.09 A3.06.02 A3.06.04 A3.06.06
+A3.05.06 A3.04.05 A3.04.06 A3.04.08 A3.04.10 A3.05.02 A3.05.04 A3.05.07 A3.05.08
+A3.05.07 A3.05.03 A3.05.04 A3.05.05 A3.05.06 A3.05.08 A3.05.09 A3.05.10 A3.06.06
+A3.05.08 A3.04.08 A3.04.10 A3.04.12 A3.05.04 A3.05.06 A3.05.07 A3.05.09 A3.05.10
+A3.05.09 A3.05.05 A3.05.07 A3.05.08 A3.05.10 A3.05.11 A3.06.06 A3.06.07 A3.06.09
+A3.05.10 A3.04.10 A3.04.12 A3.05.07 A3.05.08 A3.05.09 A3.05.11 A3.05.12 A3.06.09
+A3.05.11 A3.04.12 A3.05.09 A3.05.10 A3.05.12 A3.05.13 A3.06.09 A3.06.10 A3.06.11
+A3.05.12 A3.04.12 A3.04.13 A3.04.14 A3.04.15 A3.05.10 A3.05.11 A3.05.13 A3.06.11
+A3.05.13 A3.04.14 A3.04.15 A3.05.11 A3.05.12 A3.05.14 A3.06.11 A3.06.12 A3.06.13
+A3.05.14 A3.04.15 A3.05.13 A3.06.13 A3.06.15
+A3.06.00 A3.05.00 A3.06.01 A3.06.02 A3.06.04
+A3.06.01 A3.06.00 A3.06.03 A3.06.04 A3.06.05 A3.07.01
+A3.06.02 A3.05.00 A3.05.03 A3.05.05 A3.06.00 A3.06.04 A3.06.06
+A3.06.03 A3.06.01 A3.06.04 A3.06.05 A3.07.01 A3.07.04 A3.07.07
+A3.06.04 A3.05.05 A3.06.00 A3.06.01 A3.06.02 A3.06.03 A3.06.05 A3.06.06 A3.06.07
+A3.06.05 A3.06.01 A3.06.03 A3.06.04 A3.06.06 A3.06.07 A3.06.08 A3.07.04 A3.07.07
+A3.06.06 A3.05.05 A3.05.07 A3.05.09 A3.06.02 A3.06.04 A3.06.05 A3.06.07 A3.06.09
+A3.06.07 A3.05.09 A3.06.04 A3.06.05 A3.06.06 A3.06.08 A3.06.09 A3.06.10 A3.07.07
+A3.06.08 A3.06.05 A3.06.07 A3.06.09 A3.06.10 A3.07.07 A3.07.08 A3.07.10 A3.07.12
+A3.06.09 A3.05.09 A3.05.10 A3.05.11 A3.06.06 A3.06.07 A3.06.08 A3.06.10 A3.06.11
+A3.06.10 A3.05.11 A3.06.07 A3.06.08 A3.06.09 A3.06.11 A3.06.12 A3.07.10 A3.07.12
+A3.06.11 A3.05.11 A3.05.12 A3.05.13 A3.06.09 A3.06.10 A3.06.12 A3.06.13 A3.07.12
+A3.06.12 A3.05.13 A3.06.10 A3.06.11 A3.06.13 A3.06.14 A3.07.12 A3.07.13 A3.07.14
+A3.06.13 A3.05.13 A3.05.14 A3.06.11 A3.06.12 A3.06.14 A3.06.15
+A3.06.14 A3.06.12 A3.06.13 A3.06.15 A3.07.14 A3.07.15
+A3.06.15 A3.05.14 A3.06.13 A3.06.14
+A3.07.00 A3.07.02 A3.07.03 A3.08.00 A3.08.03
+A3.07.01 A3.06.01 A3.06.03 A3.07.02 A3.07.04 A3.07.05
+A3.07.02 A3.07.00 A3.07.01 A3.07.03 A3.07.04 A3.07.05 A3.07.06
+A3.07.03 A3.07.00 A3.07.02 A3.07.05 A3.07.06 A3.08.00 A3.08.03 A3.08.06
+A3.07.04 A3.06.03 A3.06.05 A3.07.01 A3.07.02 A3.07.05 A3.07.07 A3.07.08
+A3.07.05 A3.07.01 A3.07.02 A3.07.03 A3.07.04 A3.07.06 A3.07.07 A3.07.08 A3.07.09
+A3.07.06 A3.07.02 A3.07.03 A3.07.05 A3.07.08 A3.07.09 A3.08.03 A3.08.06 A3.08.09
+A3.07.07 A3.06.03 A3.06.05 A3.06.07 A3.06.08 A3.07.04 A3.07.05 A3.07.08 A3.07.10
+A3.07.08 A3.06.08 A3.07.04 A3.07.05 A3.07.06 A3.07.07 A3.07.09 A3.07.10 A3.07.11
+A3.07.09 A3.07.05 A3.07.06 A3.07.08 A3.07.10 A3.07.11 A3.08.06 A3.08.09 A3.08.11
+A3.07.10 A3.06.08 A3.06.10 A3.07.07 A3.07.08 A3.07.09 A3.07.11 A3.07.12 A3.07.13
+A3.07.11 A3.07.08 A3.07.09 A3.07.10 A3.07.12 A3.07.13 A3.08.09 A3.08.11 A3.08.13
+A3.07.12 A3.06.08 A3.06.10 A3.06.11 A3.06.12 A3.07.10 A3.07.11 A3.07.13 A3.07.14
+A3.07.13 A3.06.12 A3.07.10 A3.07.11 A3.07.12 A3.07.14 A3.08.11 A3.08.13 A3.08.14
+A3.07.14 A3.06.12 A3.06.14 A3.07.12 A3.07.13 A3.07.15 A3.08.13 A3.08.14 A3.08.15
+A3.07.15 A3.06.14 A3.07.14 A3.08.14 A3.08.15
+A3.08.00 A3.07.00 A3.07.03 A3.08.02 A3.08.03
+A3.08.01 A3.08.02 A3.08.04 A3.08.05 A3.09.00 A3.09.04
+A3.08.02 A3.08.00 A3.08.01 A3.08.03 A3.08.04 A3.08.05 A3.08.06
+A3.08.03 A3.07.00 A3.07.03 A3.07.06 A3.08.00 A3.08.02 A3.08.05 A3.08.06
+A3.08.04 A3.08.01 A3.08.02 A3.08.05 A3.08.07 A3.08.08 A3.09.04 A3.09.06
+A3.08.05 A3.08.01 A3.08.02 A3.08.03 A3.08.04 A3.08.06 A3.08.07 A3.08.08 A3.08.09
+A3.08.06 A3.07.03 A3.07.06 A3.07.09 A3.08.02 A3.08.03 A3.08.05 A3.08.08 A3.08.09
+A3.08.07 A3.08.04 A3.08.05 A3.08.08 A3.08.10 A3.09.04 A3.09.06 A3.09.08 A3.09.09
+A3.08.08 A3.08.04 A3.08.05 A3.08.06 A3.08.07 A3.08.09 A3.08.10 A3.08.11 A3.09.09
+A3.08.09 A3.07.06 A3.07.09 A3.07.11 A3.08.05 A3.08.06 A3.08.08 A3.08.10 A3.08.11
+A3.08.10 A3.08.07 A3.08.08 A3.08.09 A3.08.11 A3.08.12 A3.08.13 A3.09.09 A3.09.11
+A3.08.11 A3.07.09 A3.07.11 A3.07.13 A3.08.08 A3.08.09 A3.08.10 A3.08.12 A3.08.13
+A3.08.12 A3.08.10 A3.08.11 A3.08.13 A3.08.14 A3.09.09 A3.09.11 A3.09.12 A3.09.13
+A3.08.13 A3.07.11 A3.07.13 A3.07.14 A3.08.10 A3.08.11 A3.08.12 A3.08.14 A3.09.13
+A3.08.14 A3.07.13 A3.07.14 A3.07.15 A3.08.12 A3.08.13 A3.08.15 A3.09.13 A3.09.15
+A3.08.15 A3.07.14 A3.07.15 A3.08.14 A3.09.15
+A3.09.00 A3.08.01 A3.09.02 A3.09.04
+A3.09.01 A3.09.02 A3.09.03 A3.09.05 A3.10.00
+A3.09.02 A3.09.00 A3.09.01 A3.09.04 A3.09.05 A3.09.06
+A3.09.03 A3.09.01 A3.09.05 A3.09.07 A3.10.00 A3.10.03 A3.10.05
+A3.09.04 A3.08.01 A3.08.04 A3.08.07 A3.09.00 A3.09.02 A3.09.05 A3.09.06
+A3.09.05 A3.09.01 A3.09.02 A3.09.03 A3.09.04 A3.09.06 A3.09.07 A3.09.08 A3.10.05
+A3.09.06 A3.08.04 A3.08.07 A3.09.02 A3.09.04 A3.09.05 A3.09.07 A3.09.08 A3.09.09
+A3.09.07 A3.09.03 A3.09.05 A3.09.06 A3.09.08 A3.09.10 A3.10.05 A3.10.07 A3.10.09
+A3.09.08 A3.08.07 A3.09.05 A3.09.06 A3.09.07 A3.09.09 A3.09.10 A3.09.11 A3.10.09
+A3.09.09 A3.08.07 A3.08.08 A3.08.10 A3.08.12 A3.09.06 A3.09.08 A3.09.10 A3.09.11
+A3.09.10 A3.09.07 A3.09.08 A3.09.09 A3.09.11 A3.09.12 A3.10.09 A3.10.10 A3.10.11
+A3.09.11 A3.08.10 A3.08.12 A3.09.08 A3.09.09 A3.09.10 A3.09.12 A3.09.13 A3.10.11
+A3.09.12 A3.08.12 A3.09.10 A3.09.11 A3.09.13 A3.09.14 A3.10.11 A3.10.12 A3.10.13
+A3.09.13 A3.08.12 A3.08.13 A3.08.14 A3.09.11 A3.09.12 A3.09.14 A3.09.15 A3.10.13
+A3.09.14 A3.09.12 A3.09.13 A3.09.15 A3.10.13 A3.10.14
+A3.09.15 A3.08.14 A3.08.15 A3.09.13 A3.09.14 A3.10.14
+A3.10.00 A3.09.01 A3.09.03 A3.10.02 A3.10.03 A3.10.05
+A3.10.01 A3.10.02 A3.11.02 A3.11.05
+A3.10.02 A3.10.00 A3.10.01 A3.10.03 A3.10.04 A3.10.06 A3.11.05
+A3.10.03 A3.09.03 A3.10.00 A3.10.02 A3.10.04 A3.10.05 A3.10.07
+A3.10.04 A3.10.02 A3.10.03 A3.10.05 A3.10.06 A3.10.07 A3.10.08 A3.11.05
+A3.10.05 A3.09.03 A3.09.05 A3.09.07 A3.10.00 A3.10.03 A3.10.04 A3.10.07 A3.10.09
+A3.10.06 A3.10.02 A3.10.04 A3.10.07 A3.10.08 A3.11.05 A3.11.06 A3.11.08 A3.11.10
+A3.10.07 A3.09.07 A3.10.03 A3.10.04 A3.10.05 A3.10.06 A3.10.08 A3.10.09 A3.10.10
+A3.10.08 A3.10.04 A3.10.06 A3.10.07 A3.10.09 A3.10.10 A3.11.08 A3.11.10 A3.11.12
+A3.10.09 A3.09.07 A3.09.08 A3.09.10 A3.10.05 A3.10.07 A3.10.08 A3.10.10 A3.10.11
+A3.10.10 A3.09.10 A3.10.07 A3.10.08 A3.10.09 A3.10.11 A3.10.12 A3.11.10 A3.11.12
+A3.10.11 A3.09.10 A3.09.11 A3.09.12 A3.10.09 A3.10.10 A3.10.12 A3.10.13 A3.11.12
+A3.10.12 A3.09.12 A3.10.10 A3.10.11 A3.10.13 A3.11.12 A3.11.13 A3.11.14 A3.11.15
+A3.10.13 A3.09.12 A3.09.13 A3.09.14 A3.10.11 A3.10.12 A3.10.14 A3.10.15 A3.11.14 A3.11.15
+A3.10.14 A3.09.14 A3.09.15 A3.10.13 A3.10.15
+A3.10.15 A3.10.13 A3.10.14 A3.11.15
+A3.11.00 A3.11.01 A3.11.03 A3.11.04
+A3.11.01 A3.11.00 A3.11.04 A3.12.01 A3.12.04
+A3.11.02 A3.10.01 A3.11.03 A3.11.05 A3.11.06
+A3.11.03 A3.11.00 A3.11.02 A3.11.04 A3.11.05 A3.11.06 A3.11.07
+A3.11.04 A3.11.00 A3.11.01 A3.11.03 A3.11.06 A3.11.07 A3.12.01 A3.12.04 A3.12.07
+A3.11.05 A3.10.01 A3.10.02 A3.10.04 A3.10.06 A3.11.02 A3.11.03 A3.11.06 A3.11.08
+A3.11.06 A3.10.06 A3.11.02 A3.11.03 A3.11.04 A3.11.05 A3.11.07 A3.11.08 A3.11.09
+A3.11.07 A3.11.03 A3.11.04 A3.11.06 A3.11.08 A3.11.09 A3.12.04 A3.12.07 A3.12.09
+A3.11.08 A3.10.06 A3.10.08 A3.11.05 A3.11.06 A3.11.07 A3.11.09 A3.11.10 A3.11.11
+A3.11.09 A3.11.06 A3.11.07 A3.11.08 A3.11.10 A3.11.11 A3.12.07 A3.12.09 A3.12.11
+A3.11.10 A3.10.06 A3.10.08 A3.10.10 A3.11.08 A3.11.09 A3.11.11 A3.11.12 A3.11.13
+A3.11.11 A3.11.08 A3.11.09 A3.11.10 A3.11.12 A3.11.13 A3.12.09 A3.12.11 A3.12.13
+A3.11.12 A3.10.08 A3.10.10 A3.10.11 A3.10.12 A3.11.10 A3.11.11 A3.11.13 A3.11.14
+A3.11.13 A3.10.12 A3.11.10 A3.11.11 A3.11.12 A3.11.14 A3.12.11 A3.12.13 A3.12.14
+A3.11.14 A3.10.12 A3.10.13 A3.11.12 A3.11.13 A3.11.15 A3.12.13 A3.12.14 A3.12.15
+A3.11.15 A3.10.12 A3.10.13 A3.10.15 A3.11.14 A3.12.14 A3.12.15
+A3.12.00 A3.12.01 A3.12.03 A3.12.04
+A3.12.01 A3.11.01 A3.11.04 A3.12.00 A3.12.04
+A3.12.02 A3.12.03 A3.12.05 A3.12.06 A3.13.02
+A3.12.03 A3.12.00 A3.12.02 A3.12.04 A3.12.05 A3.12.06 A3.12.07
+A3.12.04 A3.11.01 A3.11.04 A3.11.07 A3.12.00 A3.12.01 A3.12.03 A3.12.06 A3.12.07
+A3.12.05 A3.12.02 A3.12.03 A3.12.06 A3.12.08 A3.13.02 A3.13.04 A3.13.06
+A3.12.06 A3.12.02 A3.12.03 A3.12.04 A3.12.05 A3.12.07 A3.12.08 A3.12.09 A3.13.06
+A3.12.07 A3.11.04 A3.11.07 A3.11.09 A3.12.03 A3.12.04 A3.12.06 A3.12.08 A3.12.09
+A3.12.08 A3.12.05 A3.12.06 A3.12.07 A3.12.09 A3.12.10 A3.12.11 A3.13.06 A3.13.08
+A3.12.09 A3.11.07 A3.11.09 A3.11.11 A3.12.06 A3.12.07 A3.12.08 A3.12.10 A3.12.11
+A3.12.10 A3.12.08 A3.12.09 A3.12.11 A3.12.12 A3.12.13 A3.13.06 A3.13.08 A3.13.10
+A3.12.11 A3.11.09 A3.11.11 A3.11.13 A3.12.08 A3.12.09 A3.12.10 A3.12.12 A3.12.13
+A3.12.12 A3.12.10 A3.12.11 A3.12.13 A3.12.14 A3.13.08 A3.13.10 A3.13.11 A3.13.12
+A3.12.13 A3.11.11 A3.11.13 A3.11.14 A3.12.10 A3.12.11 A3.12.12 A3.12.14 A3.13.12
+A3.12.14 A3.11.13 A3.11.14 A3.11.15 A3.12.12 A3.12.13 A3.12.15 A3.13.12 A3.13.13
+A3.12.15 A3.11.14 A3.11.15 A3.12.14 A3.13.12 A3.13.13 A3.13.14
+A3.13.00 A3.13.01 A3.13.03 A3.13.05 A3.14.00 A3.14.02
+A3.13.01 A3.13.00 A3.13.02 A3.13.03 A3.13.04
+A3.13.02 A3.12.02 A3.12.05 A3.13.01 A3.13.03 A3.13.04 A3.13.06
+A3.13.03 A3.13.00 A3.13.01 A3.13.02 A3.13.04 A3.13.05 A3.13.07 A3.14.02
+A3.13.04 A3.12.05 A3.13.01 A3.13.02 A3.13.03 A3.13.05 A3.13.06 A3.13.07 A3.13.08
+A3.13.05 A3.13.00 A3.13.03 A3.13.04 A3.13.07 A3.13.09 A3.14.02 A3.14.04 A3.14.06
+A3.13.06 A3.12.05 A3.12.06 A3.12.08 A3.12.10 A3.13.02 A3.13.04 A3.13.07 A3.13.08
+A3.13.07 A3.13.03 A3.13.04 A3.13.05 A3.13.06 A3.13.08 A3.13.09 A3.13.10 A3.14.06
+A3.13.08 A3.12.08 A3.12.10 A3.12.12 A3.13.04 A3.13.06 A3.13.07 A3.13.09 A3.13.10
+A3.13.09 A3.13.05 A3.13.07 A3.13.08 A3.13.10 A3.13.11 A3.14.06 A3.14.07 A3.14.09
+A3.13.10 A3.12.10 A3.12.12 A3.13.07 A3.13.08 A3.13.09 A3.13.11 A3.13.12 A3.14.09
+A3.13.11 A3.12.12 A3.13.09 A3.13.10 A3.13.12 A3.13.13 A3.14.09 A3.14.10 A3.14.11
+A3.13.12 A3.12.12 A3.12.13 A3.12.14 A3.12.15 A3.13.10 A3.13.11 A3.13.13 A3.14.11
+A3.13.13 A3.12.14 A3.12.15 A3.13.11 A3.13.12 A3.13.14 A3.14.11 A3.14.12 A3.14.13
+A3.13.14 A3.12.15 A3.13.13 A3.14.13 A3.14.15
+A3.14.00 A3.13.00 A3.14.01 A3.14.02 A3.14.04
+A3.14.01 A3.14.00 A3.14.03 A3.14.04 A3.14.05 A3.15.01
+A3.14.02 A3.13.00 A3.13.03 A3.13.05 A3.14.00 A3.14.04 A3.14.06
+A3.14.03 A3.14.01 A3.14.04 A3.14.05 A3.15.01 A3.15.04 A3.15.07
+A3.14.04 A3.13.05 A3.14.00 A3.14.01 A3.14.02 A3.14.03 A3.14.05 A3.14.06 A3.14.07
+A3.14.05 A3.14.01 A3.14.03 A3.14.04 A3.14.06 A3.14.07 A3.14.08 A3.15.04 A3.15.07
+A3.14.06 A3.13.05 A3.13.07 A3.13.09 A3.14.02 A3.14.04 A3.14.05 A3.14.07 A3.14.09
+A3.14.07 A3.13.09 A3.14.04 A3.14.05 A3.14.06 A3.14.08 A3.14.09 A3.14.10 A3.15.07
+A3.14.08 A3.14.05 A3.14.07 A3.14.09 A3.14.10 A3.15.07 A3.15.08 A3.15.10 A3.15.12
+A3.14.09 A3.13.09 A3.13.10 A3.13.11 A3.14.06 A3.14.07 A3.14.08 A3.14.10 A3.14.11
+A3.14.10 A3.13.11 A3.14.07 A3.14.08 A3.14.09 A3.14.11 A3.14.12 A3.15.10 A3.15.12
+A3.14.11 A3.13.11 A3.13.12 A3.13.13 A3.14.09 A3.14.10 A3.14.12 A3.14.13 A3.15.12
+A3.14.12 A3.13.13 A3.14.10 A3.14.11 A3.14.13 A3.14.14 A3.15.12 A3.15.13 A3.15.14
+A3.14.13 A3.13.13 A3.13.14 A3.14.11 A3.14.12 A3.14.14 A3.14.15
+A3.14.14 A3.14.12 A3.14.13 A3.14.15 A3.15.14 A3.15.15
+A3.14.15 A3.13.14 A3.14.13 A3.14.14
+A3.15.00 A3.00.00 A3.00.03 A3.15.02 A3.15.03
+A3.15.01 A3.14.01 A3.14.03 A3.15.02 A3.15.04 A3.15.05
+A3.15.02 A3.15.00 A3.15.01 A3.15.03 A3.15.04 A3.15.05 A3.15.06
+A3.15.03 A3.00.00 A3.00.03 A3.00.06 A3.15.00 A3.15.02 A3.15.05 A3.15.06
+A3.15.04 A3.14.03 A3.14.05 A3.15.01 A3.15.02 A3.15.05 A3.15.07 A3.15.08
+A3.15.05 A3.15.01 A3.15.02 A3.15.03 A3.15.04 A3.15.06 A3.15.07 A3.15.08 A3.15.09
+A3.15.06 A3.00.03 A3.00.06 A3.00.09 A3.15.02 A3.15.03 A3.15.05 A3.15.08 A3.15.09
+A3.15.07 A3.14.03 A3.14.05 A3.14.07 A3.14.08 A3.15.04 A3.15.05 A3.15.08 A3.15.10
+A3.15.08 A3.14.08 A3.15.04 A3.15.05 A3.15.06 A3.15.07 A3.15.09 A3.15.10 A3.15.11
+A3.15.09 A3.00.06 A3.00.09 A3.00.11 A3.15.05 A3.15.06 A3.15.08 A3.15.10 A3.15.11
+A3.15.10 A3.14.08 A3.14.10 A3.15.07 A3.15.08 A3.15.09 A3.15.11 A3.15.12 A3.15.13
+A3.15.11 A3.00.09 A3.00.11 A3.00.13 A3.15.08 A3.15.09 A3.15.10 A3.15.12 A3.15.13
+A3.15.12 A3.14.08 A3.14.10 A3.14.11 A3.14.12 A3.15.10 A3.15.11 A3.15.13 A3.15.14
+A3.15.13 A3.00.11 A3.00.13 A3.00.14 A3.14.12 A3.15.10 A3.15.11 A3.15.12 A3.15.14
+A3.15.14 A3.00.13 A3.00.14 A3.00.15 A3.14.12 A3.14.14 A3.15.12 A3.15.13 A3.15.15
+A3.15.15 A3.00.14 A3.00.15 A3.14.14 A3.15.14
+C1.00.00 C1.00.07 C1.00.12
+C1.00.01 C1.00.02 C1.00.10 C1.00.11 C1.15.02 C1.15.12
+C1.00.02 C1.00.01 C1.00.03 C1.00.06 C1.00.09 C1.00.10
+C1.00.03 C1.00.02 C1.00.05 C1.00.06 C1.00.14 C1.00.15
+C1.00.04 C1.00.05 C1.00.12 C1.00.13 C1.00.14
+C1.00.05 C1.00.03 C1.00.04 C1.00.13 C1.00.14
+C1.00.06 C1.00.02 C1.00.03 C1.00.09 C1.00.14 C1.00.15
+C1.00.07 C1.00.00 C1.00.08 C1.00.12 C1.00.17 C1.00.18 C1.01.13
+C1.00.08 C1.00.07 C1.00.17 C1.01.02 C1.01.13
+C1.00.09 C1.00.02 C1.00.06 C1.00.10 C1.00.15 C1.00.16
+C1.00.10 C1.00.01 C1.00.02 C1.00.09 C1.00.11 C1.00.15 C1.00.16
+C1.00.11 C1.00.01 C1.00.10 C1.00.16 C1.15.02 C1.15.12 C1.15.17
+C1.00.12 C1.00.00 C1.00.04 C1.00.07 C1.00.13 C1.00.17 C1.00.18 C1.00.19
+C1.00.13 C1.00.04 C1.00.05 C1.00.12 C1.00.14 C1.00.18 C1.00.19 C1.00.20
+C1.00.14 C1.00.03 C1.00.04 C1.00.05 C1.00.06 C1.00.13 C1.00.15 C1.00.19 C1.00.20 C1.00.21
+C1.00.15 C1.00.03 C1.00.06 C1.00.09 C1.00.10 C1.00.14 C1.00.16 C1.00.20 C1.00.21 C1.00.22
+C1.00.16 C1.00.09 C1.00.10 C1.00.11 C1.00.15 C1.00.21 C1.00.22 C1.15.12 C1.15.17 C1.15.23
+C1.00.17 C1.00.07 C1.00.08 C1.00.12 C1.00.18 C1.00.23 C1.01.13 C1.01.19 C1.01.21
+C1.00.18 C1.00.07 C1.00.12 C1.00.13 C1.00.17 C1.00.19 C1.00.23 C1.00.24 C1.01.21
+C1.00.19 C1.00.12 C1.00.13 C1.00.14 C1.00.18 C1.00.20 C1.00.23 C1.00.24 C1.00.25
+C1.00.20 C1.00.13 C1.00.14 C1.00.15 C1.00.19 C1.00.21 C1.00.24 C1.00.25 C1.00.26
+C1.00.21 C1.00.14 C1.00.15 C1.00.16 C1.00.20 C1.00.22 C1.00.25 C1.00.26 C1.00.27
+C1.00.22 C1.00.15 C1.00.16 C1.00.21 C1.00.26 C1.00.27 C1.15.17 C1.15.23 C1.15.28
+C1.00.23 C1.00.17 C1.00.18 C1.00.19 C1.00.24 C1.00.28 C1.00.29 C1.01.21 C1.01.26
+C1.00.24 C1.00.18 C1.00.19 C1.00.20 C1.00.23 C1.00.25 C1.00.28 C1.00.29 C1.00.30
+C1.00.25 C1.00.19 C1.00.20 C1.00.21 C1.00.24 C1.00.26 C1.00.29 C1.00.30 C1.00.31
+C1.00.26 C1.00.20 C1.00.21 C1.00.22 C1.00.25 C1.00.27 C1.00.30 C1.00.31 C1.00.32
+C1.00.27 C1.00.21 C1.00.22 C1.00.26 C1.00.31 C1.00.32 C1.15.23 C1.15.28 C1.15.33
+C1.00.28 C1.00.23 C1.00.24 C1.00.29 C1.00.33 C1.01.21 C1.01.26 C1.01.31 C1.01.33
+C1.00.29 C1.00.23 C1.00.24 C1.00.25 C1.00.28 C1.00.30 C1.00.33 C1.00.34 C1.01.33
+C1.00.30 C1.00.24 C1.00.25 C1.00.26 C1.00.29 C1.00.31 C1.00.33 C1.00.34 C1.00.35
+C1.00.31 C1.00.25 C1.00.26 C1.00.27 C1.00.30 C1.00.32 C1.00.34 C1.00.35 C1.00.36
+C1.00.32 C1.00.26 C1.00.27 C1.00.31 C1.00.35 C1.00.36 C1.15.28 C1.15.33 C1.15.37
+C1.00.33 C1.00.28 C1.00.29 C1.00.30 C1.00.34 C1.00.37 C1.00.38 C1.01.33 C1.01.38
+C1.00.34 C1.00.29 C1.00.30 C1.00.31 C1.00.33 C1.00.35 C1.00.37 C1.00.38 C1.00.39
+C1.00.35 C1.00.30 C1.00.31 C1.00.32 C1.00.34 C1.00.36 C1.00.38 C1.00.39 C1.00.40
+C1.00.36 C1.00.31 C1.00.32 C1.00.35 C1.00.39 C1.00.40 C1.15.33 C1.15.37 C1.15.41
+C1.00.37 C1.00.33 C1.00.34 C1.00.38 C1.00.41 C1.00.42 C1.01.33 C1.01.38 C1.01.41
+C1.00.38 C1.00.33 C1.00.34 C1.00.35 C1.00.37 C1.00.39 C1.00.41 C1.00.42 C1.00.43
+C1.00.39 C1.00.34 C1.00.35 C1.00.36 C1.00.38 C1.00.40 C1.00.42 C1.00.43 C1.00.44
+C1.00.40 C1.00.35 C1.00.36 C1.00.39 C1.00.43 C1.00.44 C1.15.37 C1.15.41 C1.15.45
+C1.00.41 C1.00.37 C1.00.38 C1.00.42 C1.00.45 C1.01.38 C1.01.41 C1.01.43 C1.01.45
+C1.00.42 C1.00.37 C1.00.38 C1.00.39 C1.00.41 C1.00.43 C1.00.45 C1.00.46 C1.01.45
+C1.00.43 C1.00.38 C1.00.39 C1.00.40 C1.00.42 C1.00.44 C1.00.45 C1.00.46 C1.00.47
+C1.00.44 C1.00.39 C1.00.40 C1.00.43 C1.00.46 C1.00.47 C1.15.41 C1.15.45 C1.15.48
+C1.00.45 C1.00.41 C1.00.42 C1.00.43 C1.00.46 C1.00.48 C1.00.49 C1.01.45 C1.01.47
+C1.00.46 C1.00.42 C1.00.43 C1.00.44 C1.00.45 C1.00.47 C1.00.48 C1.00.49 C1.00.50
+C1.00.47 C1.00.43 C1.00.44 C1.00.46 C1.00.49 C1.00.50 C1.15.45 C1.15.48 C1.15.51
+C1.00.48 C1.00.45 C1.00.46 C1.00.49 C1.00.51 C1.01.45 C1.01.47 C1.01.49 C1.01.50
+C1.00.49 C1.00.45 C1.00.46 C1.00.47 C1.00.48 C1.00.50 C1.00.51 C1.00.52 C1.01.50
+C1.00.50 C1.00.46 C1.00.47 C1.00.49 C1.00.51 C1.00.52 C1.15.48 C1.15.51 C1.15.53
+C1.00.51 C1.00.48 C1.00.49 C1.00.50 C1.00.52 C1.00.53 C1.00.54 C1.00.55 C1.01.50 C1.01.53
+C1.00.52 C1.00.49 C1.00.50 C1.00.51 C1.00.54 C1.00.55 C1.00.56 C1.15.51 C1.15.53 C1.15.56
+C1.00.53 C1.00.51 C1.00.54 C1.00.57 C1.01.50 C1.01.53 C1.01.55 C1.01.57
+C1.00.54 C1.00.51 C1.00.52 C1.00.53 C1.00.55 C1.00.57 C1.00.58 C1.01.57
+C1.00.55 C1.00.51 C1.00.52 C1.00.54 C1.00.56 C1.00.57 C1.00.58 C1.00.59
+C1.00.56 C1.00.52 C1.00.55 C1.00.58 C1.00.59 C1.15.53 C1.15.56 C1.15.59
+C1.00.57 C1.00.53 C1.00.54 C1.00.55 C1.00.58 C1.00.60 C1.00.61 C1.01.57 C1.01.59
+C1.00.58 C1.00.54 C1.00.55 C1.00.56 C1.00.57 C1.00.59 C1.00.60 C1.00.61 C1.00.62
+C1.00.59 C1.00.55 C1.00.56 C1.00.58 C1.00.61 C1.00.62 C1.15.56 C1.15.59 C1.15.62
+C1.00.60 C1.00.57 C1.00.58 C1.00.61 C1.01.57 C1.01.59 C1.01.62
+C1.00.61 C1.00.57 C1.00.58 C1.00.59 C1.00.60 C1.00.62 C1.01.62
+C1.00.62 C1.00.58 C1.00.59 C1.00.61 C1.15.59 C1.15.62
+C1.01.00 C1.01.04 C1.01.06 C1.01.08 C1.01.12
+C1.01.01 C1.01.03 C1.01.05 C1.01.11
+C1.01.02 C1.00.08 C1.01.05 C1.01.13
+C1.01.03 C1.01.01 C1.01.07 C1.01.09 C1.01.11
+C1.01.04 C1.01.00 C1.01.08 C1.01.10
+C1.01.05 C1.01.01 C1.01.02 C1.01.11 C1.01.13
+C1.01.06 C1.01.00 C1.01.12 C1.01.17 C1.02.06 C1.02.13
+C1.01.07 C1.01.03 C1.01.09 C1.01.10 C1.01.14
+C1.01.08 C1.01.00 C1.01.04 C1.01.10 C1.01.12 C1.01.15
+C1.01.09 C1.01.03 C1.01.07 C1.01.11 C1.01.14 C1.01.16
+C1.01.10 C1.01.04 C1.01.07 C1.01.08 C1.01.12 C1.01.14 C1.01.15 C1.01.18
+C1.01.11 C1.01.01 C1.01.03 C1.01.05 C1.01.09 C1.01.13 C1.01.14 C1.01.16 C1.01.19
+C1.01.12 C1.01.00 C1.01.06 C1.01.08 C1.01.10 C1.01.15 C1.01.17 C1.01.20 C1.02.13
+C1.01.13 C1.00.07 C1.00.08 C1.00.17 C1.01.02 C1.01.05 C1.01.11 C1.01.16 C1.01.19 C1.01.21
+C1.01.14 C1.01.07 C1.01.09 C1.01.10 C1.01.11 C1.01.15 C1.01.16 C1.01.18 C1.01.22
+C1.01.15 C1.01.08 C1.01.10 C1.01.12 C1.01.14 C1.01.17 C1.01.18 C1.01.20 C1.01.23
+C1.01.16 C1.01.09 C1.01.11 C1.01.13 C1.01.14 C1.01.18 C1.01.19 C1.01.22 C1.01.24
+C1.01.17 C1.01.06 C1.01.12 C1.01.15 C1.01.20 C1.01.25 C1.02.13 C1.02.17 C1.02.21
+C1.01.18 C1.01.10 C1.01.14 C1.01.15 C1.01.16 C1.01.20 C1.01.22 C1.01.23 C1.01.27
+C1.01.19 C1.00.17 C1.01.11 C1.01.13 C1.01.16 C1.01.21 C1.01.22 C1.01.24 C1.01.26
+C1.01.20 C1.01.12 C1.01.15 C1.01.17 C1.01.18 C1.01.23 C1.01.25 C1.01.28 C1.02.21
+C1.01.21 C1.00.17 C1.00.18 C1.00.23 C1.00.28 C1.01.13 C1.01.19 C1.01.24 C1.01.26
+C1.01.22 C1.01.14 C1.01.16 C1.01.18 C1.01.19 C1.01.23 C1.01.24 C1.01.27 C1.01.29
+C1.01.23 C1.01.15 C1.01.18 C1.01.20 C1.01.22 C1.01.25 C1.01.27 C1.01.28 C1.01.30
+C1.01.24 C1.01.16 C1.01.19 C1.01.21 C1.01.22 C1.01.26 C1.01.27 C1.01.29 C1.01.31
+C1.01.25 C1.01.17 C1.01.20 C1.01.23 C1.01.28 C1.01.32 C1.02.21 C1.02.24 C1.02.28
+C1.01.26 C1.00.23 C1.00.28 C1.01.19 C1.01.21 C1.01.24 C1.01.29 C1.01.31 C1.01.33
+C1.01.27 C1.01.18 C1.01.22 C1.01.23 C1.01.24 C1.01.28 C1.01.29 C1.01.30 C1.01.34
+C1.01.28 C1.01.20 C1.01.23 C1.01.25 C1.01.27 C1.01.30 C1.01.32 C1.01.35 C1.02.28
+C1.01.29 C1.01.22 C1.01.24 C1.01.26 C1.01.27 C1.01.30 C1.01.31 C1.01.34 C1.01.36
+C1.01.30 C1.01.23 C1.01.27 C1.01.28 C1.01.29 C1.01.32 C1.01.34 C1.01.35 C1.01.37
+C1.01.31 C1.00.28 C1.01.24 C1.01.26 C1.01.29 C1.01.33 C1.01.34 C1.01.36 C1.01.38
+C1.01.32 C1.01.25 C1.01.28 C1.01.30 C1.01.35 C1.02.28 C1.02.31 C1.02.34 C1.02.37
+C1.01.33 C1.00.28 C1.00.29 C1.00.33 C1.00.37 C1.01.26 C1.01.31 C1.01.36 C1.01.38
+C1.01.34 C1.01.27 C1.01.29 C1.01.30 C1.01.31 C1.01.35 C1.01.36 C1.01.37 C1.01.39
+C1.01.35 C1.01.28 C1.01.30 C1.01.32 C1.01.34 C1.01.37 C1.01.40 C1.02.34 C1.02.37
+C1.01.36 C1.01.29 C1.01.31 C1.01.33 C1.01.34 C1.01.37 C1.01.38 C1.01.39 C1.01.41
+C1.01.37 C1.01.30 C1.01.34 C1.01.35 C1.01.36 C1.01.39 C1.01.40 C1.01.42 C1.02.37
+C1.01.38 C1.00.33 C1.00.37 C1.00.41 C1.01.31 C1.01.33 C1.01.36 C1.01.39 C1.01.41
+C1.01.39 C1.01.34 C1.01.36 C1.01.37 C1.01.38 C1.01.40 C1.01.41 C1.01.42 C1.01.43
+C1.01.40 C1.01.35 C1.01.37 C1.01.39 C1.01.42 C1.01.44 C1.02.37 C1.02.40 C1.02.43
+C1.01.41 C1.00.37 C1.00.41 C1.01.36 C1.01.38 C1.01.39 C1.01.42 C1.01.43 C1.01.45
+C1.01.42 C1.01.37 C1.01.39 C1.01.40 C1.01.41 C1.01.43 C1.01.44 C1.01.46 C1.02.43
+C1.01.43 C1.00.41 C1.01.39 C1.01.41 C1.01.42 C1.01.44 C1.01.45 C1.01.46 C1.01.47
+C1.01.44 C1.01.40 C1.01.42 C1.01.43 C1.01.46 C1.01.48 C1.02.43 C1.02.45 C1.02.47
+C1.01.45 C1.00.41 C1.00.42 C1.00.45 C1.00.48 C1.01.41 C1.01.43 C1.01.46 C1.01.47
+C1.01.46 C1.01.42 C1.01.43 C1.01.44 C1.01.45 C1.01.47 C1.01.48 C1.01.49 C1.02.47
+C1.01.47 C1.00.45 C1.00.48 C1.01.43 C1.01.45 C1.01.46 C1.01.48 C1.01.49 C1.01.50
+C1.01.48 C1.01.44 C1.01.46 C1.01.47 C1.01.49 C1.01.51 C1.02.47 C1.02.49 C1.02.51
+C1.01.49 C1.00.48 C1.01.46 C1.01.47 C1.01.48 C1.01.50 C1.01.51 C1.01.52 C1.02.51
+C1.01.50 C1.00.48 C1.00.49 C1.00.51 C1.00.53 C1.01.47 C1.01.49 C1.01.51 C1.01.52 C1.01.53
+C1.01.51 C1.01.48 C1.01.49 C1.01.50 C1.01.52 C1.01.54 C1.01.56 C1.02.51 C1.02.52 C1.02.53 C1.02.55
+C1.01.52 C1.01.49 C1.01.50 C1.01.51 C1.01.53 C1.01.54 C1.01.55
+C1.01.53 C1.00.51 C1.00.53 C1.01.50 C1.01.52 C1.01.54 C1.01.55 C1.01.57
+C1.01.54 C1.01.51 C1.01.52 C1.01.53 C1.01.55 C1.01.56 C1.01.58 C1.02.55
+C1.01.55 C1.00.53 C1.01.52 C1.01.53 C1.01.54 C1.01.56 C1.01.57 C1.01.58 C1.01.59
+C1.01.56 C1.01.51 C1.01.54 C1.01.55 C1.01.58 C1.01.60 C1.02.55 C1.02.57 C1.02.59
+C1.01.57 C1.00.53 C1.00.54 C1.00.57 C1.00.60 C1.01.53 C1.01.55 C1.01.58 C1.01.59
+C1.01.58 C1.01.54 C1.01.55 C1.01.56 C1.01.57 C1.01.59 C1.01.60 C1.01.61 C1.02.59
+C1.01.59 C1.00.57 C1.00.60 C1.01.55 C1.01.57 C1.01.58 C1.01.60 C1.01.61 C1.01.62
+C1.01.60 C1.01.56 C1.01.58 C1.01.59 C1.01.61 C1.02.59 C1.02.61
+C1.01.61 C1.01.58 C1.01.59 C1.01.60 C1.01.62 C1.02.59 C1.02.61
+C1.01.62 C1.00.60 C1.00.61 C1.01.59 C1.01.61
+C1.02.00 C1.02.03 C1.02.06
+C1.02.01 C1.02.02 C1.02.04 C1.02.10 C1.02.14
+C1.02.02 C1.02.01 C1.02.07 C1.02.10
+C1.02.03 C1.02.00 C1.02.06 C1.02.09 C1.02.12
+C1.02.04 C1.02.01 C1.02.05 C1.02.10 C1.02.14 C1.03.02
+C1.02.05 C1.02.04 C1.02.14 C1.03.02 C1.03.08
+C1.02.06 C1.01.06 C1.02.00 C1.02.03 C1.02.12 C1.02.13 C1.02.17
+C1.02.07 C1.02.02 C1.02.10 C1.02.11 C1.02.15
+C1.02.08 C1.02.09 C1.02.11
+C1.02.09 C1.02.03 C1.02.08 C1.02.11 C1.02.12 C1.02.16
+C1.02.10 C1.02.01 C1.02.02 C1.02.04 C1.02.07 C1.02.11 C1.02.14 C1.02.15 C1.02.18
+C1.02.11 C1.02.07 C1.02.08 C1.02.09 C1.02.10 C1.02.12 C1.02.15 C1.02.16 C1.02.19
+C1.02.12 C1.02.03 C1.02.06 C1.02.09 C1.02.11 C1.02.13 C1.02.16 C1.02.17 C1.02.20
+C1.02.13 C1.01.06 C1.01.12 C1.01.17 C1.02.06 C1.02.12 C1.02.17 C1.02.21
+C1.02.14 C1.02.01 C1.02.04 C1.02.05 C1.02.10 C1.02.15 C1.02.18 C1.03.08 C1.03.10 C1.03.15 C1.03.20
+C1.02.15 C1.02.07 C1.02.10 C1.02.11 C1.02.14 C1.02.16 C1.02.18 C1.02.19 C1.02.22
+C1.02.16 C1.02.09 C1.02.11 C1.02.12 C1.02.15 C1.02.17 C1.02.19 C1.02.20 C1.02.23
+C1.02.17 C1.01.17 C1.02.06 C1.02.12 C1.02.13 C1.02.16 C1.02.20 C1.02.21 C1.02.24
+C1.02.18 C1.02.10 C1.02.14 C1.02.15 C1.02.19 C1.02.22 C1.02.25 C1.03.15 C1.03.20
+C1.02.19 C1.02.11 C1.02.15 C1.02.16 C1.02.18 C1.02.20 C1.02.22 C1.02.23 C1.02.26
+C1.02.20 C1.02.12 C1.02.16 C1.02.17 C1.02.19 C1.02.21 C1.02.23 C1.02.24 C1.02.27
+C1.02.21 C1.01.17 C1.01.20 C1.01.25 C1.02.13 C1.02.17 C1.02.20 C1.02.24 C1.02.28
+C1.02.22 C1.02.15 C1.02.18 C1.02.19 C1.02.23 C1.02.25 C1.02.26 C1.02.29 C1.03.20
+C1.02.23 C1.02.16 C1.02.19 C1.02.20 C1.02.22 C1.02.24 C1.02.26 C1.02.27 C1.02.30
+C1.02.24 C1.01.25 C1.02.17 C1.02.20 C1.02.21 C1.02.23 C1.02.27 C1.02.28 C1.02.31
+C1.02.25 C1.02.18 C1.02.22 C1.02.26 C1.02.29 C1.03.20 C1.03.21 C1.03.25 C1.03.29
+C1.02.26 C1.02.19 C1.02.22 C1.02.23 C1.02.25 C1.02.27 C1.02.29 C1.02.30 C1.02.32
+C1.02.27 C1.02.20 C1.02.23 C1.02.24 C1.02.26 C1.02.28 C1.02.30 C1.02.31 C1.02.33
+C1.02.28 C1.01.25 C1.01.28 C1.01.32 C1.02.21 C1.02.24 C1.02.27 C1.02.31 C1.02.34
+C1.02.29 C1.02.22 C1.02.25 C1.02.26 C1.02.30 C1.02.32 C1.03.25 C1.03.29 C1.03.33
+C1.02.30 C1.02.23 C1.02.26 C1.02.27 C1.02.29 C1.02.31 C1.02.32 C1.02.33 C1.02.35
+C1.02.31 C1.01.32 C1.02.24 C1.02.27 C1.02.28 C1.02.30 C1.02.33 C1.02.34 C1.02.36
+C1.02.32 C1.02.26 C1.02.29 C1.02.30 C1.02.33 C1.02.35 C1.02.38 C1.03.29 C1.03.33
+C1.02.33 C1.02.27 C1.02.30 C1.02.31 C1.02.32 C1.02.34 C1.02.35 C1.02.36 C1.02.39
+C1.02.34 C1.01.32 C1.01.35 C1.02.28 C1.02.31 C1.02.33 C1.02.36 C1.02.37 C1.02.40
+C1.02.35 C1.02.30 C1.02.32 C1.02.33 C1.02.36 C1.02.38 C1.02.39 C1.02.41 C1.03.33
+C1.02.36 C1.02.31 C1.02.33 C1.02.34 C1.02.35 C1.02.37 C1.02.39 C1.02.40 C1.02.42
+C1.02.37 C1.01.32 C1.01.35 C1.01.37 C1.01.40 C1.02.34 C1.02.36 C1.02.40 C1.02.43
+C1.02.38 C1.02.32 C1.02.35 C1.02.39 C1.02.41 C1.03.33 C1.03.34 C1.03.37 C1.03.40
+C1.02.39 C1.02.33 C1.02.35 C1.02.36 C1.02.38 C1.02.40 C1.02.41 C1.02.42 C1.02.44
+C1.02.40 C1.01.40 C1.02.34 C1.02.36 C1.02.37 C1.02.39 C1.02.42 C1.02.43 C1.02.45
+C1.02.41 C1.02.35 C1.02.38 C1.02.39 C1.02.42 C1.02.44 C1.03.37 C1.03.40 C1.03.43
+C1.02.42 C1.02.36 C1.02.39 C1.02.40 C1.02.41 C1.02.43 C1.02.44 C1.02.45 C1.02.46
+C1.02.43 C1.01.40 C1.01.42 C1.01.44 C1.02.37 C1.02.40 C1.02.42 C1.02.45 C1.02.47
+C1.02.44 C1.02.39 C1.02.41 C1.02.42 C1.02.45 C1.02.46 C1.02.48 C1.03.40 C1.03.43
+C1.02.45 C1.01.44 C1.02.40 C1.02.42 C1.02.43 C1.02.44 C1.02.46 C1.02.47 C1.02.49
+C1.02.46 C1.02.42 C1.02.44 C1.02.45 C1.02.47 C1.02.48 C1.02.49 C1.02.50 C1.03.43
+C1.02.47 C1.01.44 C1.01.46 C1.01.48 C1.02.43 C1.02.45 C1.02.46 C1.02.49 C1.02.51
+C1.02.48 C1.02.44 C1.02.46 C1.02.49 C1.02.50 C1.03.43 C1.03.44 C1.03.46 C1.03.48
+C1.02.49 C1.01.48 C1.02.45 C1.02.46 C1.02.47 C1.02.48 C1.02.50 C1.02.51 C1.02.52
+C1.02.50 C1.02.46 C1.02.48 C1.02.49 C1.02.51 C1.02.52 C1.03.46 C1.03.48 C1.03.50
+C1.02.51 C1.01.48 C1.01.49 C1.01.51 C1.02.47 C1.02.49 C1.02.50 C1.02.52 C1.02.53
+C1.02.52 C1.01.51 C1.02.49 C1.02.50 C1.02.51 C1.02.53 C1.02.54 C1.02.56 C1.03.48 C1.03.50 C1.03.54
+C1.02.53 C1.01.51 C1.02.51 C1.02.52 C1.02.54 C1.02.55 C1.02.57
+C1.02.54 C1.02.52 C1.02.53 C1.02.55 C1.02.56 C1.02.57 C1.02.58 C1.03.54
+C1.02.55 C1.01.51 C1.01.54 C1.01.56 C1.02.53 C1.02.54 C1.02.57 C1.02.59
+C1.02.56 C1.02.52 C1.02.54 C1.02.57 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.58
+C1.02.57 C1.01.56 C1.02.53 C1.02.54 C1.02.55 C1.02.56 C1.02.58 C1.02.59 C1.02.61
+C1.02.58 C1.02.54 C1.02.56 C1.02.57 C1.02.59 C1.02.60 C1.02.61 C1.02.62 C1.03.58
+C1.02.59 C1.01.56 C1.01.58 C1.01.60 C1.01.61 C1.02.55 C1.02.57 C1.02.58 C1.02.61
+C1.02.60 C1.02.56 C1.02.58 C1.02.61 C1.02.62 C1.03.58 C1.03.59 C1.03.61
+C1.02.61 C1.01.60 C1.01.61 C1.02.57 C1.02.58 C1.02.59 C1.02.60 C1.02.62
+C1.02.62 C1.02.58 C1.02.60 C1.02.61 C1.03.61
+C1.03.00 C1.03.05 C1.03.07 C1.04.00 C1.04.08
+C1.03.01 C1.03.02 C1.03.03 C1.03.10
+C1.03.02 C1.02.04 C1.02.05 C1.03.01 C1.03.08 C1.03.10
+C1.03.03 C1.03.01 C1.03.04 C1.03.10 C1.03.11
+C1.03.04 C1.03.03 C1.03.06 C1.03.11 C1.03.12
+C1.03.05 C1.03.00 C1.03.07 C1.03.09 C1.03.12 C1.03.13 C1.03.14
+C1.03.06 C1.03.04 C1.03.09 C1.03.11 C1.03.12
+C1.03.07 C1.03.00 C1.03.05 C1.03.13 C1.03.14 C1.04.00 C1.04.08 C1.04.14
+C1.03.08 C1.02.05 C1.02.14 C1.03.02 C1.03.10 C1.03.15
+C1.03.09 C1.03.05 C1.03.06 C1.03.12 C1.03.13
+C1.03.10 C1.02.14 C1.03.01 C1.03.02 C1.03.03 C1.03.08 C1.03.11 C1.03.15 C1.03.16
+C1.03.11 C1.03.03 C1.03.04 C1.03.06 C1.03.10 C1.03.12 C1.03.15 C1.03.16 C1.03.17
+C1.03.12 C1.03.04 C1.03.05 C1.03.06 C1.03.09 C1.03.11 C1.03.13 C1.03.16 C1.03.17 C1.03.18
+C1.03.13 C1.03.05 C1.03.07 C1.03.09 C1.03.12 C1.03.14 C1.03.17 C1.03.18 C1.03.19
+C1.03.14 C1.03.05 C1.03.07 C1.03.13 C1.03.18 C1.03.19 C1.04.08 C1.04.14 C1.04.19
+C1.03.15 C1.02.14 C1.02.18 C1.03.08 C1.03.10 C1.03.11 C1.03.16 C1.03.20 C1.03.21
+C1.03.16 C1.03.10 C1.03.11 C1.03.12 C1.03.15 C1.03.17 C1.03.20 C1.03.21 C1.03.22
+C1.03.17 C1.03.11 C1.03.12 C1.03.13 C1.03.16 C1.03.18 C1.03.21 C1.03.22 C1.03.23
+C1.03.18 C1.03.12 C1.03.13 C1.03.14 C1.03.17 C1.03.19 C1.03.22 C1.03.23 C1.03.24
+C1.03.19 C1.03.13 C1.03.14 C1.03.18 C1.03.23 C1.03.24 C1.04.14 C1.04.19 C1.04.24
+C1.03.20 C1.02.14 C1.02.18 C1.02.22 C1.02.25 C1.03.15 C1.03.16 C1.03.21 C1.03.25
+C1.03.21 C1.02.25 C1.03.15 C1.03.16 C1.03.17 C1.03.20 C1.03.22 C1.03.25 C1.03.26
+C1.03.22 C1.03.16 C1.03.17 C1.03.18 C1.03.21 C1.03.23 C1.03.25 C1.03.26 C1.03.27
+C1.03.23 C1.03.17 C1.03.18 C1.03.19 C1.03.22 C1.03.24 C1.03.26 C1.03.27 C1.03.28
+C1.03.24 C1.03.18 C1.03.19 C1.03.23 C1.03.27 C1.03.28 C1.04.19 C1.04.24 C1.04.28
+C1.03.25 C1.02.25 C1.02.29 C1.03.20 C1.03.21 C1.03.22 C1.03.26 C1.03.29 C1.03.30
+C1.03.26 C1.03.21 C1.03.22 C1.03.23 C1.03.25 C1.03.27 C1.03.29 C1.03.30 C1.03.31
+C1.03.27 C1.03.22 C1.03.23 C1.03.24 C1.03.26 C1.03.28 C1.03.30 C1.03.31 C1.03.32
+C1.03.28 C1.03.23 C1.03.24 C1.03.27 C1.03.31 C1.03.32 C1.04.24 C1.04.28 C1.04.32
+C1.03.29 C1.02.25 C1.02.29 C1.02.32 C1.03.25 C1.03.26 C1.03.30 C1.03.33 C1.03.34
+C1.03.30 C1.03.25 C1.03.26 C1.03.27 C1.03.29 C1.03.31 C1.03.33 C1.03.34 C1.03.35
+C1.03.31 C1.03.26 C1.03.27 C1.03.28 C1.03.30 C1.03.32 C1.03.34 C1.03.35 C1.03.36
+C1.03.32 C1.03.27 C1.03.28 C1.03.31 C1.03.35 C1.03.36 C1.04.28 C1.04.32 C1.04.36
+C1.03.33 C1.02.29 C1.02.32 C1.02.35 C1.02.38 C1.03.29 C1.03.30 C1.03.34 C1.03.37
+C1.03.34 C1.02.38 C1.03.29 C1.03.30 C1.03.31 C1.03.33 C1.03.35 C1.03.37 C1.03.38
+C1.03.35 C1.03.30 C1.03.31 C1.03.32 C1.03.34 C1.03.36 C1.03.37 C1.03.38 C1.03.39
+C1.03.36 C1.03.31 C1.03.32 C1.03.35 C1.03.38 C1.03.39 C1.04.32 C1.04.36 C1.04.39
+C1.03.37 C1.02.38 C1.02.41 C1.03.33 C1.03.34 C1.03.35 C1.03.38 C1.03.40 C1.03.41
+C1.03.38 C1.03.34 C1.03.35 C1.03.36 C1.03.37 C1.03.39 C1.03.40 C1.03.41 C1.03.42
+C1.03.39 C1.03.35 C1.03.36 C1.03.38 C1.03.41 C1.03.42 C1.04.36 C1.04.39 C1.04.42
+C1.03.40 C1.02.38 C1.02.41 C1.02.44 C1.03.37 C1.03.38 C1.03.41 C1.03.43 C1.03.44
+C1.03.41 C1.03.37 C1.03.38 C1.03.39 C1.03.40 C1.03.42 C1.03.43 C1.03.44 C1.03.45
+C1.03.42 C1.03.38 C1.03.39 C1.03.41 C1.03.44 C1.03.45 C1.04.39 C1.04.42 C1.04.45
+C1.03.43 C1.02.41 C1.02.44 C1.02.46 C1.02.48 C1.03.40 C1.03.41 C1.03.44 C1.03.46
+C1.03.44 C1.02.48 C1.03.40 C1.03.41 C1.03.42 C1.03.43 C1.03.45 C1.03.46 C1.03.47
+C1.03.45 C1.03.41 C1.03.42 C1.03.44 C1.03.46 C1.03.47 C1.04.42 C1.04.45 C1.04.47
+C1.03.46 C1.02.48 C1.02.50 C1.03.43 C1.03.44 C1.03.45 C1.03.47 C1.03.48 C1.03.49
+C1.03.47 C1.03.44 C1.03.45 C1.03.46 C1.03.48 C1.03.49 C1.04.45 C1.04.47 C1.04.49
+C1.03.48 C1.02.48 C1.02.50 C1.02.52 C1.03.46 C1.03.47 C1.03.49 C1.03.50 C1.03.51 C1.03.52
+C1.03.49 C1.03.46 C1.03.47 C1.03.48 C1.03.51 C1.03.52 C1.03.53 C1.04.47 C1.04.49 C1.04.53
+C1.03.50 C1.02.50 C1.02.52 C1.03.48 C1.03.51 C1.03.54 C1.03.55
+C1.03.51 C1.03.48 C1.03.49 C1.03.50 C1.03.52 C1.03.54 C1.03.55 C1.03.56
+C1.03.52 C1.03.48 C1.03.49 C1.03.51 C1.03.53 C1.03.55 C1.03.56 C1.03.57
+C1.03.53 C1.03.49 C1.03.52 C1.03.56 C1.03.57 C1.04.49 C1.04.53 C1.04.57
+C1.03.54 C1.02.52 C1.02.54 C1.02.56 C1.03.50 C1.03.51 C1.03.55 C1.03.58
+C1.03.55 C1.02.56 C1.03.50 C1.03.51 C1.03.52 C1.03.54 C1.03.56 C1.03.58 C1.03.59
+C1.03.56 C1.03.51 C1.03.52 C1.03.53 C1.03.55 C1.03.57 C1.03.58 C1.03.59 C1.03.60
+C1.03.57 C1.03.52 C1.03.53 C1.03.56 C1.03.59 C1.03.60 C1.04.53 C1.04.57 C1.04.60
+C1.03.58 C1.02.56 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.56 C1.03.59 C1.03.61
+C1.03.59 C1.02.60 C1.03.55 C1.03.56 C1.03.57 C1.03.58 C1.03.60 C1.03.61 C1.03.62
+C1.03.60 C1.03.56 C1.03.57 C1.03.59 C1.03.61 C1.03.62 C1.04.57 C1.04.60 C1.04.62
+C1.03.61 C1.02.60 C1.02.62 C1.03.58 C1.03.59 C1.03.60 C1.03.62
+C1.03.62 C1.03.59 C1.03.60 C1.03.61 C1.04.60 C1.04.62
+C1.04.00 C1.03.00 C1.03.07 C1.04.06 C1.04.08
+C1.04.01 C1.04.02 C1.04.04 C1.04.10
+C1.04.02 C1.04.01 C1.04.03 C1.04.10 C1.04.11
+C1.04.03 C1.04.02 C1.04.05 C1.04.10 C1.04.11
+C1.04.04 C1.04.01 C1.04.10 C1.04.15 C1.05.02 C1.05.09 C1.05.13
+C1.04.05 C1.04.03 C1.04.07 C1.04.11 C1.04.12
+C1.04.06 C1.04.00 C1.04.08 C1.04.09 C1.04.12 C1.04.13 C1.04.14
+C1.04.07 C1.04.05 C1.04.09 C1.04.11 C1.04.12
+C1.04.08 C1.03.00 C1.03.07 C1.03.14 C1.04.00 C1.04.06 C1.04.13 C1.04.14
+C1.04.09 C1.04.06 C1.04.07 C1.04.12 C1.04.13
+C1.04.10 C1.04.01 C1.04.02 C1.04.03 C1.04.04 C1.04.11 C1.04.15 C1.04.16 C1.05.13
+C1.04.11 C1.04.02 C1.04.03 C1.04.05 C1.04.07 C1.04.10 C1.04.12 C1.04.15 C1.04.16 C1.04.17
+C1.04.12 C1.04.05 C1.04.06 C1.04.07 C1.04.09 C1.04.11 C1.04.13 C1.04.16 C1.04.17 C1.04.18
+C1.04.13 C1.04.06 C1.04.08 C1.04.09 C1.04.12 C1.04.14 C1.04.17 C1.04.18 C1.04.19
+C1.04.14 C1.03.07 C1.03.14 C1.03.19 C1.04.06 C1.04.08 C1.04.13 C1.04.18 C1.04.19
+C1.04.15 C1.04.04 C1.04.10 C1.04.11 C1.04.16 C1.04.20 C1.04.21 C1.05.13 C1.05.17
+C1.04.16 C1.04.10 C1.04.11 C1.04.12 C1.04.15 C1.04.17 C1.04.20 C1.04.21 C1.04.22
+C1.04.17 C1.04.11 C1.04.12 C1.04.13 C1.04.16 C1.04.18 C1.04.21 C1.04.22 C1.04.23
+C1.04.18 C1.04.12 C1.04.13 C1.04.14 C1.04.17 C1.04.19 C1.04.22 C1.04.23 C1.04.24
+C1.04.19 C1.03.14 C1.03.19 C1.03.24 C1.04.13 C1.04.14 C1.04.18 C1.04.23 C1.04.24
+C1.04.20 C1.04.15 C1.04.16 C1.04.21 C1.04.25 C1.05.13 C1.05.17 C1.05.21 C1.05.24
+C1.04.21 C1.04.15 C1.04.16 C1.04.17 C1.04.20 C1.04.22 C1.04.25 C1.04.26 C1.05.24
+C1.04.22 C1.04.16 C1.04.17 C1.04.18 C1.04.21 C1.04.23 C1.04.25 C1.04.26 C1.04.27
+C1.04.23 C1.04.17 C1.04.18 C1.04.19 C1.04.22 C1.04.24 C1.04.26 C1.04.27 C1.04.28
+C1.04.24 C1.03.19 C1.03.24 C1.03.28 C1.04.18 C1.04.19 C1.04.23 C1.04.27 C1.04.28
+C1.04.25 C1.04.20 C1.04.21 C1.04.22 C1.04.26 C1.04.29 C1.04.30 C1.05.24 C1.05.28
+C1.04.26 C1.04.21 C1.04.22 C1.04.23 C1.04.25 C1.04.27 C1.04.29 C1.04.30 C1.04.31
+C1.04.27 C1.04.22 C1.04.23 C1.04.24 C1.04.26 C1.04.28 C1.04.30 C1.04.31 C1.04.32
+C1.04.28 C1.03.24 C1.03.28 C1.03.32 C1.04.23 C1.04.24 C1.04.27 C1.04.31 C1.04.32
+C1.04.29 C1.04.25 C1.04.26 C1.04.30 C1.04.33 C1.04.34 C1.05.24 C1.05.28 C1.05.31
+C1.04.30 C1.04.25 C1.04.26 C1.04.27 C1.04.29 C1.04.31 C1.04.33 C1.04.34 C1.04.35
+C1.04.31 C1.04.26 C1.04.27 C1.04.28 C1.04.30 C1.04.32 C1.04.34 C1.04.35 C1.04.36
+C1.04.32 C1.03.28 C1.03.32 C1.03.36 C1.04.27 C1.04.28 C1.04.31 C1.04.35 C1.04.36
+C1.04.33 C1.04.29 C1.04.30 C1.04.34 C1.04.37 C1.05.28 C1.05.31 C1.05.34 C1.05.37
+C1.04.34 C1.04.29 C1.04.30 C1.04.31 C1.04.33 C1.04.35 C1.04.37 C1.04.38 C1.05.37
+C1.04.35 C1.04.30 C1.04.31 C1.04.32 C1.04.34 C1.04.36 C1.04.37 C1.04.38 C1.04.39
+C1.04.36 C1.03.32 C1.03.36 C1.03.39 C1.04.31 C1.04.32 C1.04.35 C1.04.38 C1.04.39
+C1.04.37 C1.04.33 C1.04.34 C1.04.35 C1.04.38 C1.04.40 C1.04.41 C1.05.37 C1.05.40
+C1.04.38 C1.04.34 C1.04.35 C1.04.36 C1.04.37 C1.04.39 C1.04.40 C1.04.41 C1.04.42
+C1.04.39 C1.03.36 C1.03.39 C1.03.42 C1.04.35 C1.04.36 C1.04.38 C1.04.41 C1.04.42
+C1.04.40 C1.04.37 C1.04.38 C1.04.41 C1.04.43 C1.04.44 C1.05.37 C1.05.40 C1.05.43
+C1.04.41 C1.04.37 C1.04.38 C1.04.39 C1.04.40 C1.04.42 C1.04.43 C1.04.44 C1.04.45
+C1.04.42 C1.03.39 C1.03.42 C1.03.45 C1.04.38 C1.04.39 C1.04.41 C1.04.44 C1.04.45
+C1.04.43 C1.04.40 C1.04.41 C1.04.44 C1.04.46 C1.05.40 C1.05.43 C1.05.45 C1.05.47
+C1.04.44 C1.04.40 C1.04.41 C1.04.42 C1.04.43 C1.04.45 C1.04.46 C1.04.47 C1.05.47
+C1.04.45 C1.03.42 C1.03.45 C1.03.47 C1.04.41 C1.04.42 C1.04.44 C1.04.46 C1.04.47
+C1.04.46 C1.04.43 C1.04.44 C1.04.45 C1.04.47 C1.04.48 C1.04.49 C1.05.47 C1.05.49
+C1.04.47 C1.03.45 C1.03.47 C1.03.49 C1.04.44 C1.04.45 C1.04.46 C1.04.48 C1.04.49
+C1.04.48 C1.04.46 C1.04.47 C1.04.49 C1.04.50 C1.04.51 C1.04.52 C1.05.47 C1.05.49 C1.05.51
+C1.04.49 C1.03.47 C1.03.49 C1.03.53 C1.04.46 C1.04.47 C1.04.48 C1.04.51 C1.04.52 C1.04.53
+C1.04.50 C1.04.48 C1.04.51 C1.04.54 C1.04.55 C1.05.49 C1.05.51
+C1.04.51 C1.04.48 C1.04.49 C1.04.50 C1.04.52 C1.04.54 C1.04.55 C1.04.56
+C1.04.52 C1.04.48 C1.04.49 C1.04.51 C1.04.53 C1.04.55 C1.04.56 C1.04.57
+C1.04.53 C1.03.49 C1.03.53 C1.03.57 C1.04.49 C1.04.52 C1.04.56 C1.04.57
+C1.04.54 C1.04.50 C1.04.51 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.55
+C1.04.55 C1.04.50 C1.04.51 C1.04.52 C1.04.54 C1.04.56 C1.04.58 C1.04.59 C1.05.55
+C1.04.56 C1.04.51 C1.04.52 C1.04.53 C1.04.55 C1.04.57 C1.04.58 C1.04.59 C1.04.60
+C1.04.57 C1.03.53 C1.03.57 C1.03.60 C1.04.52 C1.04.53 C1.04.56 C1.04.59 C1.04.60
+C1.04.58 C1.04.54 C1.04.55 C1.04.56 C1.04.59 C1.04.61 C1.05.55 C1.05.57 C1.05.59
+C1.04.59 C1.04.55 C1.04.56 C1.04.57 C1.04.58 C1.04.60 C1.04.61 C1.04.62 C1.05.59
+C1.04.60 C1.03.57 C1.03.60 C1.03.62 C1.04.56 C1.04.57 C1.04.59 C1.04.61 C1.04.62
+C1.04.61 C1.04.58 C1.04.59 C1.04.60 C1.04.62 C1.05.59 C1.05.62
+C1.04.62 C1.03.60 C1.03.62 C1.04.59 C1.04.60 C1.04.61 C1.05.62
+C1.05.00 C1.05.02 C1.05.05 C1.05.09
+C1.05.01 C1.05.03 C1.05.06 C1.05.12
+C1.05.02 C1.04.04 C1.05.00 C1.05.09 C1.05.13
+C1.05.03 C1.05.01 C1.05.06 C1.05.07 C1.05.08 C1.05.12
+C1.05.04 C1.05.05 C1.05.07 C1.05.10
+C1.05.05 C1.05.00 C1.05.04 C1.05.09 C1.05.10 C1.05.14
+C1.05.06 C1.05.01 C1.05.03 C1.05.11 C1.05.12 C1.05.16 C1.06.06
+C1.05.07 C1.05.03 C1.05.04 C1.05.08 C1.05.10
+C1.05.08 C1.05.03 C1.05.07 C1.05.10 C1.05.12 C1.05.15
+C1.05.09 C1.04.04 C1.05.00 C1.05.02 C1.05.05 C1.05.10 C1.05.13 C1.05.14 C1.05.17
+C1.05.10 C1.05.04 C1.05.05 C1.05.07 C1.05.08 C1.05.09 C1.05.12 C1.05.14 C1.05.15 C1.05.18
+C1.05.11 C1.05.06 C1.05.12 C1.05.16 C1.05.20 C1.06.06 C1.06.12 C1.06.17
+C1.05.12 C1.05.01 C1.05.03 C1.05.06 C1.05.08 C1.05.10 C1.05.11 C1.05.15 C1.05.16 C1.05.19
+C1.05.13 C1.04.04 C1.04.10 C1.04.15 C1.04.20 C1.05.02 C1.05.09 C1.05.14 C1.05.17
+C1.05.14 C1.05.05 C1.05.09 C1.05.10 C1.05.13 C1.05.15 C1.05.17 C1.05.18 C1.05.21
+C1.05.15 C1.05.08 C1.05.10 C1.05.12 C1.05.14 C1.05.16 C1.05.18 C1.05.19 C1.05.22
+C1.05.16 C1.05.06 C1.05.11 C1.05.12 C1.05.15 C1.05.19 C1.05.20 C1.05.23 C1.06.17
+C1.05.17 C1.04.15 C1.04.20 C1.05.09 C1.05.13 C1.05.14 C1.05.18 C1.05.21 C1.05.24
+C1.05.18 C1.05.10 C1.05.14 C1.05.15 C1.05.17 C1.05.19 C1.05.21 C1.05.22 C1.05.25
+C1.05.19 C1.05.12 C1.05.15 C1.05.16 C1.05.18 C1.05.20 C1.05.22 C1.05.23 C1.05.26
+C1.05.20 C1.05.11 C1.05.16 C1.05.19 C1.05.23 C1.05.27 C1.06.17 C1.06.20 C1.06.25
+C1.05.21 C1.04.20 C1.05.14 C1.05.17 C1.05.18 C1.05.22 C1.05.24 C1.05.25 C1.05.28
+C1.05.22 C1.05.15 C1.05.18 C1.05.19 C1.05.21 C1.05.23 C1.05.25 C1.05.26 C1.05.29
+C1.05.23 C1.05.16 C1.05.19 C1.05.20 C1.05.22 C1.05.26 C1.05.27 C1.05.30 C1.06.25
+C1.05.24 C1.04.20 C1.04.21 C1.04.25 C1.04.29 C1.05.17 C1.05.21 C1.05.25 C1.05.28
+C1.05.25 C1.05.18 C1.05.21 C1.05.22 C1.05.24 C1.05.26 C1.05.28 C1.05.29 C1.05.31
+C1.05.26 C1.05.19 C1.05.22 C1.05.23 C1.05.25 C1.05.27 C1.05.29 C1.05.30 C1.05.32
+C1.05.27 C1.05.20 C1.05.23 C1.05.26 C1.05.30 C1.05.33 C1.06.25 C1.06.28 C1.06.32
+C1.05.28 C1.04.25 C1.04.29 C1.04.33 C1.05.21 C1.05.24 C1.05.25 C1.05.29 C1.05.31
+C1.05.29 C1.05.22 C1.05.25 C1.05.26 C1.05.28 C1.05.30 C1.05.31 C1.05.32 C1.05.34
+C1.05.30 C1.05.23 C1.05.26 C1.05.27 C1.05.29 C1.05.32 C1.05.33 C1.05.36 C1.06.32
+C1.05.31 C1.04.29 C1.04.33 C1.05.25 C1.05.28 C1.05.29 C1.05.32 C1.05.34 C1.05.37
+C1.05.32 C1.05.26 C1.05.29 C1.05.30 C1.05.31 C1.05.33 C1.05.34 C1.05.36 C1.05.38
+C1.05.33 C1.05.27 C1.05.30 C1.05.32 C1.05.35 C1.05.36 C1.05.39 C1.06.32 C1.06.35
+C1.05.34 C1.04.33 C1.05.29 C1.05.31 C1.05.32 C1.05.36 C1.05.37 C1.05.38 C1.05.40
+C1.05.35 C1.05.33 C1.05.36 C1.05.39 C1.05.42 C1.06.32 C1.06.35 C1.06.37 C1.06.40
+C1.05.36 C1.05.30 C1.05.32 C1.05.33 C1.05.34 C1.05.35 C1.05.38 C1.05.39 C1.05.41
+C1.05.37 C1.04.33 C1.04.34 C1.04.37 C1.04.40 C1.05.31 C1.05.34 C1.05.38 C1.05.40
+C1.05.38 C1.05.32 C1.05.34 C1.05.36 C1.05.37 C1.05.39 C1.05.40 C1.05.41 C1.05.43
+C1.05.39 C1.05.33 C1.05.35 C1.05.36 C1.05.38 C1.05.41 C1.05.42 C1.05.44 C1.06.40
+C1.05.40 C1.04.37 C1.04.40 C1.04.43 C1.05.34 C1.05.37 C1.05.38 C1.05.41 C1.05.43
+C1.05.41 C1.05.36 C1.05.38 C1.05.39 C1.05.40 C1.05.42 C1.05.43 C1.05.44 C1.05.45
+C1.05.42 C1.05.35 C1.05.39 C1.05.41 C1.05.44 C1.05.46 C1.06.40 C1.06.42 C1.06.44
+C1.05.43 C1.04.40 C1.04.43 C1.05.38 C1.05.40 C1.05.41 C1.05.44 C1.05.45 C1.05.47
+C1.05.44 C1.05.39 C1.05.41 C1.05.42 C1.05.43 C1.05.45 C1.05.46 C1.05.48 C1.06.44
+C1.05.45 C1.04.43 C1.05.41 C1.05.43 C1.05.44 C1.05.46 C1.05.47 C1.05.48 C1.05.49
+C1.05.46 C1.05.42 C1.05.44 C1.05.45 C1.05.48 C1.05.50 C1.06.44 C1.06.46 C1.06.48
+C1.05.47 C1.04.43 C1.04.44 C1.04.46 C1.04.48 C1.05.43 C1.05.45 C1.05.48 C1.05.49
+C1.05.48 C1.05.44 C1.05.45 C1.05.46 C1.05.47 C1.05.49 C1.05.50 C1.05.51 C1.06.48
+C1.05.49 C1.04.46 C1.04.48 C1.04.50 C1.05.45 C1.05.47 C1.05.48 C1.05.50 C1.05.51
+C1.05.50 C1.05.46 C1.05.48 C1.05.49 C1.05.51 C1.05.52 C1.06.48 C1.06.49 C1.06.51
+C1.05.51 C1.04.48 C1.04.50 C1.04.54 C1.05.48 C1.05.49 C1.05.50 C1.05.52 C1.05.53 C1.05.55 C1.06.51
+C1.05.52 C1.05.50 C1.05.51 C1.05.53 C1.05.54 C1.05.56 C1.06.51
+C1.05.53 C1.04.54 C1.05.51 C1.05.52 C1.05.54 C1.05.55 C1.05.56 C1.05.57
+C1.05.54 C1.05.52 C1.05.53 C1.05.56 C1.05.58 C1.06.51 C1.06.55 C1.06.57
+C1.05.55 C1.04.54 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.56 C1.05.57 C1.05.59
+C1.05.56 C1.05.52 C1.05.53 C1.05.54 C1.05.55 C1.05.57 C1.05.58 C1.05.60 C1.06.57
+C1.05.57 C1.04.58 C1.05.53 C1.05.55 C1.05.56 C1.05.58 C1.05.59 C1.05.60
+C1.05.58 C1.05.54 C1.05.56 C1.05.57 C1.05.60 C1.05.61 C1.06.57 C1.06.59 C1.06.61
+C1.05.59 C1.04.58 C1.04.59 C1.04.61 C1.05.55 C1.05.57 C1.05.60 C1.05.62
+C1.05.60 C1.05.56 C1.05.57 C1.05.58 C1.05.59 C1.05.61 C1.05.62 C1.06.61
+C1.05.61 C1.05.58 C1.05.60 C1.05.62 C1.06.61 C1.06.62
+C1.05.62 C1.04.61 C1.04.62 C1.05.59 C1.05.60 C1.05.61
+C1.06.00 C1.06.02 C1.06.03 C1.06.11
+C1.06.01 C1.06.04 C1.06.06 C1.06.08 C1.06.12
+C1.06.02 C1.06.00 C1.06.05 C1.06.11 C1.06.13
+C1.06.03 C1.06.00 C1.06.07 C1.06.09 C1.06.11
+C1.06.04 C1.06.01 C1.06.08 C1.06.10
+C1.06.05 C1.06.02 C1.06.11 C1.06.13 C1.07.00 C1.07.08
+C1.06.06 C1.05.06 C1.05.11 C1.06.01 C1.06.12 C1.06.17
+C1.06.07 C1.06.03 C1.06.09 C1.06.10 C1.06.14
+C1.06.08 C1.06.01 C1.06.04 C1.06.10 C1.06.12 C1.06.15
+C1.06.09 C1.06.03 C1.06.07 C1.06.11 C1.06.14 C1.06.16
+C1.06.10 C1.06.04 C1.06.07 C1.06.08 C1.06.12 C1.06.14 C1.06.15 C1.06.18
+C1.06.11 C1.06.00 C1.06.02 C1.06.03 C1.06.05 C1.06.09 C1.06.13 C1.06.14 C1.06.16 C1.06.19
+C1.06.12 C1.05.11 C1.06.01 C1.06.06 C1.06.08 C1.06.10 C1.06.15 C1.06.17 C1.06.20
+C1.06.13 C1.06.02 C1.06.05 C1.06.11 C1.06.16 C1.06.19 C1.06.21 C1.07.07 C1.07.08 C1.07.18
+C1.06.14 C1.06.07 C1.06.09 C1.06.10 C1.06.11 C1.06.15 C1.06.16 C1.06.18 C1.06.22
+C1.06.15 C1.06.08 C1.06.10 C1.06.12 C1.06.14 C1.06.17 C1.06.18 C1.06.20 C1.06.23
+C1.06.16 C1.06.09 C1.06.11 C1.06.13 C1.06.14 C1.06.18 C1.06.19 C1.06.22 C1.06.24
+C1.06.17 C1.05.11 C1.05.16 C1.05.20 C1.06.06 C1.06.12 C1.06.15 C1.06.20 C1.06.25
+C1.06.18 C1.06.10 C1.06.14 C1.06.15 C1.06.16 C1.06.20 C1.06.22 C1.06.23 C1.06.27
+C1.06.19 C1.06.11 C1.06.13 C1.06.16 C1.06.21 C1.06.22 C1.06.24 C1.06.26 C1.07.18
+C1.06.20 C1.05.20 C1.06.12 C1.06.15 C1.06.17 C1.06.18 C1.06.23 C1.06.25 C1.06.28
+C1.06.21 C1.06.13 C1.06.19 C1.06.24 C1.06.26 C1.07.18 C1.07.19 C1.07.24 C1.07.29
+C1.06.22 C1.06.14 C1.06.16 C1.06.18 C1.06.19 C1.06.23 C1.06.24 C1.06.27 C1.06.29
+C1.06.23 C1.06.15 C1.06.18 C1.06.20 C1.06.22 C1.06.25 C1.06.27 C1.06.28 C1.06.30
+C1.06.24 C1.06.16 C1.06.19 C1.06.21 C1.06.22 C1.06.26 C1.06.27 C1.06.29 C1.06.31
+C1.06.25 C1.05.20 C1.05.23 C1.05.27 C1.06.17 C1.06.20 C1.06.23 C1.06.28 C1.06.32
+C1.06.26 C1.06.19 C1.06.21 C1.06.24 C1.06.29 C1.06.31 C1.06.33 C1.07.24 C1.07.29
+C1.06.27 C1.06.18 C1.06.22 C1.06.23 C1.06.24 C1.06.28 C1.06.29 C1.06.30 C1.06.34
+C1.06.28 C1.05.27 C1.06.20 C1.06.23 C1.06.25 C1.06.27 C1.06.30 C1.06.32 C1.06.35
+C1.06.29 C1.06.22 C1.06.24 C1.06.26 C1.06.27 C1.06.30 C1.06.31 C1.06.34 C1.06.36
+C1.06.30 C1.06.23 C1.06.27 C1.06.28 C1.06.29 C1.06.32 C1.06.34 C1.06.35 C1.06.37
+C1.06.31 C1.06.24 C1.06.26 C1.06.29 C1.06.33 C1.06.34 C1.06.36 C1.06.38 C1.07.29
+C1.06.32 C1.05.27 C1.05.30 C1.05.33 C1.05.35 C1.06.25 C1.06.28 C1.06.30 C1.06.35
+C1.06.33 C1.06.26 C1.06.31 C1.06.36 C1.06.38 C1.07.29 C1.07.30 C1.07.34 C1.07.38
+C1.06.34 C1.06.27 C1.06.29 C1.06.30 C1.06.31 C1.06.35 C1.06.36 C1.06.37 C1.06.39
+C1.06.35 C1.05.33 C1.05.35 C1.06.28 C1.06.30 C1.06.32 C1.06.34 C1.06.37 C1.06.40
+C1.06.36 C1.06.29 C1.06.31 C1.06.33 C1.06.34 C1.06.37 C1.06.38 C1.06.39 C1.06.41
+C1.06.37 C1.05.35 C1.06.30 C1.06.34 C1.06.35 C1.06.36 C1.06.39 C1.06.40 C1.06.42
+C1.06.38 C1.06.31 C1.06.33 C1.06.36 C1.06.39 C1.06.41 C1.07.34 C1.07.38 C1.07.42
+C1.06.39 C1.06.34 C1.06.36 C1.06.37 C1.06.38 C1.06.40 C1.06.41 C1.06.42 C1.06.43
+C1.06.40 C1.05.35 C1.05.39 C1.05.42 C1.06.35 C1.06.37 C1.06.39 C1.06.42 C1.06.44
+C1.06.41 C1.06.36 C1.06.38 C1.06.39 C1.06.42 C1.06.43 C1.06.45 C1.07.38 C1.07.42
+C1.06.42 C1.05.42 C1.06.37 C1.06.39 C1.06.40 C1.06.41 C1.06.43 C1.06.44 C1.06.46
+C1.06.43 C1.06.39 C1.06.41 C1.06.42 C1.06.44 C1.06.45 C1.06.46 C1.06.47 C1.07.42
+C1.06.44 C1.05.42 C1.05.44 C1.05.46 C1.06.40 C1.06.42 C1.06.43 C1.06.46 C1.06.48
+C1.06.45 C1.06.41 C1.06.43 C1.06.46 C1.06.47 C1.07.42 C1.07.43 C1.07.46 C1.07.49
+C1.06.46 C1.05.46 C1.06.42 C1.06.43 C1.06.44 C1.06.45 C1.06.47 C1.06.48 C1.06.49
+C1.06.47 C1.06.43 C1.06.45 C1.06.46 C1.06.48 C1.06.49 C1.06.50 C1.07.46 C1.07.49
+C1.06.48 C1.05.46 C1.05.48 C1.05.50 C1.06.44 C1.06.46 C1.06.47 C1.06.49 C1.06.51
+C1.06.49 C1.05.50 C1.06.46 C1.06.47 C1.06.48 C1.06.50 C1.06.51 C1.06.52 C1.07.49
+C1.06.50 C1.06.47 C1.06.49 C1.06.51 C1.06.52 C1.06.53 C1.06.54 C1.07.49 C1.07.50 C1.07.52
+C1.06.51 C1.05.50 C1.05.51 C1.05.52 C1.05.54 C1.06.48 C1.06.49 C1.06.50 C1.06.52 C1.06.55 C1.06.57
+C1.06.52 C1.06.49 C1.06.50 C1.06.51 C1.06.53 C1.06.55 C1.06.56
+C1.06.53 C1.06.50 C1.06.52 C1.06.54 C1.06.55 C1.06.56 C1.06.58 C1.07.52
+C1.06.54 C1.06.50 C1.06.53 C1.06.56 C1.06.58 C1.07.52 C1.07.54 C1.07.57
+C1.06.55 C1.05.54 C1.06.51 C1.06.52 C1.06.53 C1.06.56 C1.06.57 C1.06.59
+C1.06.56 C1.06.52 C1.06.53 C1.06.54 C1.06.55 C1.06.57 C1.06.58 C1.06.59 C1.06.60
+C1.06.57 C1.05.54 C1.05.56 C1.05.58 C1.06.51 C1.06.55 C1.06.56 C1.06.59 C1.06.61
+C1.06.58 C1.06.53 C1.06.54 C1.06.56 C1.06.59 C1.06.60 C1.07.54 C1.07.57 C1.07.60
+C1.06.59 C1.05.58 C1.06.55 C1.06.56 C1.06.57 C1.06.58 C1.06.60 C1.06.61 C1.06.62
+C1.06.60 C1.06.56 C1.06.58 C1.06.59 C1.06.61 C1.06.62 C1.07.57 C1.07.60
+C1.06.61 C1.05.58 C1.05.60 C1.05.61 C1.06.57 C1.06.59 C1.06.60 C1.06.62
+C1.06.62 C1.05.61 C1.06.59 C1.06.60 C1.06.61 C1.07.60
+C1.07.00 C1.06.05 C1.07.07 C1.07.08
+C1.07.01 C1.07.02 C1.07.04 C1.07.06 C1.07.10 C1.07.11
+C1.07.02 C1.07.01 C1.07.11 C1.07.12 C1.08.01 C1.08.11
+C1.07.03 C1.07.07 C1.07.13 C1.07.14
+C1.07.04 C1.07.01 C1.07.05 C1.07.06 C1.07.09
+C1.07.05 C1.07.04 C1.07.09 C1.07.14 C1.07.15
+C1.07.06 C1.07.01 C1.07.04 C1.07.09 C1.07.10 C1.07.15 C1.07.16
+C1.07.07 C1.06.13 C1.07.00 C1.07.03 C1.07.08 C1.07.13 C1.07.18 C1.07.19
+C1.07.08 C1.06.05 C1.06.13 C1.07.00 C1.07.07 C1.07.18
+C1.07.09 C1.07.04 C1.07.05 C1.07.06 C1.07.15 C1.07.16
+C1.07.10 C1.07.01 C1.07.06 C1.07.11 C1.07.16 C1.07.17
+C1.07.11 C1.07.01 C1.07.02 C1.07.10 C1.07.12 C1.07.16 C1.07.17
+C1.07.12 C1.07.02 C1.07.11 C1.07.17 C1.08.01 C1.08.11 C1.08.16
+C1.07.13 C1.07.03 C1.07.07 C1.07.14 C1.07.18 C1.07.19 C1.07.20
+C1.07.14 C1.07.03 C1.07.05 C1.07.13 C1.07.15 C1.07.19 C1.07.20 C1.07.21
+C1.07.15 C1.07.05 C1.07.06 C1.07.09 C1.07.14 C1.07.16 C1.07.20 C1.07.21 C1.07.22
+C1.07.16 C1.07.06 C1.07.09 C1.07.10 C1.07.11 C1.07.15 C1.07.17 C1.07.21 C1.07.22 C1.07.23
+C1.07.17 C1.07.10 C1.07.11 C1.07.12 C1.07.16 C1.07.22 C1.07.23 C1.08.11 C1.08.16 C1.08.22
+C1.07.18 C1.06.13 C1.06.19 C1.06.21 C1.07.07 C1.07.08 C1.07.13 C1.07.19 C1.07.24
+C1.07.19 C1.06.21 C1.07.07 C1.07.13 C1.07.14 C1.07.18 C1.07.20 C1.07.24 C1.07.25
+C1.07.20 C1.07.13 C1.07.14 C1.07.15 C1.07.19 C1.07.21 C1.07.24 C1.07.25 C1.07.26
+C1.07.21 C1.07.14 C1.07.15 C1.07.16 C1.07.20 C1.07.22 C1.07.25 C1.07.26 C1.07.27
+C1.07.22 C1.07.15 C1.07.16 C1.07.17 C1.07.21 C1.07.23 C1.07.26 C1.07.27 C1.07.28
+C1.07.23 C1.07.16 C1.07.17 C1.07.22 C1.07.27 C1.07.28 C1.08.16 C1.08.22 C1.08.27
+C1.07.24 C1.06.21 C1.06.26 C1.07.18 C1.07.19 C1.07.20 C1.07.25 C1.07.29 C1.07.30
+C1.07.25 C1.07.19 C1.07.20 C1.07.21 C1.07.24 C1.07.26 C1.07.29 C1.07.30 C1.07.31
+C1.07.26 C1.07.20 C1.07.21 C1.07.22 C1.07.25 C1.07.27 C1.07.30 C1.07.31 C1.07.32
+C1.07.27 C1.07.21 C1.07.22 C1.07.23 C1.07.26 C1.07.28 C1.07.31 C1.07.32 C1.07.33
+C1.07.28 C1.07.22 C1.07.23 C1.07.27 C1.07.32 C1.07.33 C1.08.22 C1.08.27 C1.08.32
+C1.07.29 C1.06.21 C1.06.26 C1.06.31 C1.06.33 C1.07.24 C1.07.25 C1.07.30 C1.07.34
+C1.07.30 C1.06.33 C1.07.24 C1.07.25 C1.07.26 C1.07.29 C1.07.31 C1.07.34 C1.07.35
+C1.07.31 C1.07.25 C1.07.26 C1.07.27 C1.07.30 C1.07.32 C1.07.34 C1.07.35 C1.07.36
+C1.07.32 C1.07.26 C1.07.27 C1.07.28 C1.07.31 C1.07.33 C1.07.35 C1.07.36 C1.07.37
+C1.07.33 C1.07.27 C1.07.28 C1.07.32 C1.07.36 C1.07.37 C1.08.27 C1.08.32 C1.08.36
+C1.07.34 C1.06.33 C1.06.38 C1.07.29 C1.07.30 C1.07.31 C1.07.35 C1.07.38 C1.07.39
+C1.07.35 C1.07.30 C1.07.31 C1.07.32 C1.07.34 C1.07.36 C1.07.38 C1.07.39 C1.07.40
+C1.07.36 C1.07.31 C1.07.32 C1.07.33 C1.07.35 C1.07.37 C1.07.39 C1.07.40 C1.07.41
+C1.07.37 C1.07.32 C1.07.33 C1.07.36 C1.07.40 C1.07.41 C1.08.32 C1.08.36 C1.08.40
+C1.07.38 C1.06.33 C1.06.38 C1.06.41 C1.07.34 C1.07.35 C1.07.39 C1.07.42 C1.07.43
+C1.07.39 C1.07.34 C1.07.35 C1.07.36 C1.07.38 C1.07.40 C1.07.42 C1.07.43 C1.07.44
+C1.07.40 C1.07.35 C1.07.36 C1.07.37 C1.07.39 C1.07.41 C1.07.43 C1.07.44 C1.07.45
+C1.07.41 C1.07.36 C1.07.37 C1.07.40 C1.07.44 C1.07.45 C1.08.36 C1.08.40 C1.08.44
+C1.07.42 C1.06.38 C1.06.41 C1.06.43 C1.06.45 C1.07.38 C1.07.39 C1.07.43 C1.07.46
+C1.07.43 C1.06.45 C1.07.38 C1.07.39 C1.07.40 C1.07.42 C1.07.44 C1.07.46 C1.07.47
+C1.07.44 C1.07.39 C1.07.40 C1.07.41 C1.07.43 C1.07.45 C1.07.46 C1.07.47 C1.07.48
+C1.07.45 C1.07.40 C1.07.41 C1.07.44 C1.07.47 C1.07.48 C1.08.40 C1.08.44 C1.08.47
+C1.07.46 C1.06.45 C1.06.47 C1.07.42 C1.07.43 C1.07.44 C1.07.47 C1.07.49 C1.07.50
+C1.07.47 C1.07.43 C1.07.44 C1.07.45 C1.07.46 C1.07.48 C1.07.49 C1.07.50 C1.07.51
+C1.07.48 C1.07.44 C1.07.45 C1.07.47 C1.07.50 C1.07.51 C1.08.44 C1.08.47 C1.08.50
+C1.07.49 C1.06.45 C1.06.47 C1.06.49 C1.06.50 C1.07.46 C1.07.47 C1.07.50 C1.07.52
+C1.07.50 C1.06.50 C1.07.46 C1.07.47 C1.07.48 C1.07.49 C1.07.51 C1.07.52 C1.07.53
+C1.07.51 C1.07.47 C1.07.48 C1.07.50 C1.07.52 C1.07.53 C1.08.47 C1.08.50 C1.08.52
+C1.07.52 C1.06.50 C1.06.53 C1.06.54 C1.07.49 C1.07.50 C1.07.51 C1.07.53 C1.07.54 C1.07.55
+C1.07.53 C1.07.50 C1.07.51 C1.07.52 C1.07.54 C1.07.55 C1.07.56 C1.08.50 C1.08.52 C1.08.56
+C1.07.54 C1.06.54 C1.06.58 C1.07.52 C1.07.53 C1.07.55 C1.07.57 C1.07.58
+C1.07.55 C1.07.52 C1.07.53 C1.07.54 C1.07.56 C1.07.57 C1.07.58 C1.07.59
+C1.07.56 C1.07.53 C1.07.55 C1.07.58 C1.07.59 C1.08.52 C1.08.56 C1.08.59
+C1.07.57 C1.06.54 C1.06.58 C1.06.60 C1.07.54 C1.07.55 C1.07.58 C1.07.60 C1.07.61
+C1.07.58 C1.07.54 C1.07.55 C1.07.56 C1.07.57 C1.07.59 C1.07.60 C1.07.61 C1.07.62
+C1.07.59 C1.07.55 C1.07.56 C1.07.58 C1.07.61 C1.07.62 C1.08.56 C1.08.59 C1.08.62
+C1.07.60 C1.06.58 C1.06.60 C1.06.62 C1.07.57 C1.07.58 C1.07.61
+C1.07.61 C1.07.57 C1.07.58 C1.07.59 C1.07.60 C1.07.62
+C1.07.62 C1.07.58 C1.07.59 C1.07.61 C1.08.59 C1.08.62
+C1.08.00 C1.08.07 C1.08.12
+C1.08.01 C1.07.02 C1.07.12 C1.08.02 C1.08.10 C1.08.11
+C1.08.02 C1.08.01 C1.08.03 C1.08.06 C1.08.09 C1.08.10
+C1.08.03 C1.08.02 C1.08.05 C1.08.06 C1.08.14 C1.08.15
+C1.08.04 C1.08.05 C1.08.12 C1.08.13 C1.08.14
+C1.08.05 C1.08.03 C1.08.04 C1.08.13 C1.08.14
+C1.08.06 C1.08.02 C1.08.03 C1.08.09 C1.08.14 C1.08.15
+C1.08.07 C1.08.00 C1.08.08 C1.08.12 C1.08.17 C1.08.18 C1.09.13
+C1.08.08 C1.08.07 C1.08.17 C1.09.02 C1.09.13
+C1.08.09 C1.08.02 C1.08.06 C1.08.10 C1.08.15 C1.08.16
+C1.08.10 C1.08.01 C1.08.02 C1.08.09 C1.08.11 C1.08.15 C1.08.16
+C1.08.11 C1.07.02 C1.07.12 C1.07.17 C1.08.01 C1.08.10 C1.08.16
+C1.08.12 C1.08.00 C1.08.04 C1.08.07 C1.08.13 C1.08.17 C1.08.18 C1.08.19
+C1.08.13 C1.08.04 C1.08.05 C1.08.12 C1.08.14 C1.08.18 C1.08.19 C1.08.20
+C1.08.14 C1.08.03 C1.08.04 C1.08.05 C1.08.06 C1.08.13 C1.08.15 C1.08.19 C1.08.20 C1.08.21
+C1.08.15 C1.08.03 C1.08.06 C1.08.09 C1.08.10 C1.08.14 C1.08.16 C1.08.20 C1.08.21 C1.08.22
+C1.08.16 C1.07.12 C1.07.17 C1.07.23 C1.08.09 C1.08.10 C1.08.11 C1.08.15 C1.08.21 C1.08.22
+C1.08.17 C1.08.07 C1.08.08 C1.08.12 C1.08.18 C1.08.23 C1.09.13 C1.09.19 C1.09.21
+C1.08.18 C1.08.07 C1.08.12 C1.08.13 C1.08.17 C1.08.19 C1.08.23 C1.08.24 C1.09.21
+C1.08.19 C1.08.12 C1.08.13 C1.08.14 C1.08.18 C1.08.20 C1.08.23 C1.08.24 C1.08.25
+C1.08.20 C1.08.13 C1.08.14 C1.08.15 C1.08.19 C1.08.21 C1.08.24 C1.08.25 C1.08.26
+C1.08.21 C1.08.14 C1.08.15 C1.08.16 C1.08.20 C1.08.22 C1.08.25 C1.08.26 C1.08.27
+C1.08.22 C1.07.17 C1.07.23 C1.07.28 C1.08.15 C1.08.16 C1.08.21 C1.08.26 C1.08.27
+C1.08.23 C1.08.17 C1.08.18 C1.08.19 C1.08.24 C1.08.28 C1.08.29 C1.09.21 C1.09.26
+C1.08.24 C1.08.18 C1.08.19 C1.08.20 C1.08.23 C1.08.25 C1.08.28 C1.08.29 C1.08.30
+C1.08.25 C1.08.19 C1.08.20 C1.08.21 C1.08.24 C1.08.26 C1.08.29 C1.08.30 C1.08.31
+C1.08.26 C1.08.20 C1.08.21 C1.08.22 C1.08.25 C1.08.27 C1.08.30 C1.08.31 C1.08.32
+C1.08.27 C1.07.23 C1.07.28 C1.07.33 C1.08.21 C1.08.22 C1.08.26 C1.08.31 C1.08.32
+C1.08.28 C1.08.23 C1.08.24 C1.08.29 C1.08.33 C1.09.21 C1.09.26 C1.09.31 C1.09.33
+C1.08.29 C1.08.23 C1.08.24 C1.08.25 C1.08.28 C1.08.30 C1.08.33 C1.08.34 C1.09.33
+C1.08.30 C1.08.24 C1.08.25 C1.08.26 C1.08.29 C1.08.31 C1.08.33 C1.08.34 C1.08.35
+C1.08.31 C1.08.25 C1.08.26 C1.08.27 C1.08.30 C1.08.32 C1.08.34 C1.08.35 C1.08.36
+C1.08.32 C1.07.28 C1.07.33 C1.07.37 C1.08.26 C1.08.27 C1.08.31 C1.08.35 C1.08.36
+C1.08.33 C1.08.28 C1.08.29 C1.08.30 C1.08.34 C1.08.37 C1.08.38 C1.09.33 C1.09.38
+C1.08.34 C1.08.29 C1.08.30 C1.08.31 C1.08.33 C1.08.35 C1.08.37 C1.08.38 C1.08.39
+C1.08.35 C1.08.30 C1.08.31 C1.08.32 C1.08.34 C1.08.36 C1.08.38 C1.08.39 C1.08.40
+C1.08.36 C1.07.33 C1.07.37 C1.07.41 C1.08.31 C1.08.32 C1.08.35 C1.08.39 C1.08.40
+C1.08.37 C1.08.33 C1.08.34 C1.08.38 C1.08.41 C1.08.42 C1.09.33 C1.09.38 C1.09.41
+C1.08.38 C1.08.33 C1.08.34 C1.08.35 C1.08.37 C1.08.39 C1.08.41 C1.08.42 C1.08.43
+C1.08.39 C1.08.34 C1.08.35 C1.08.36 C1.08.38 C1.08.40 C1.08.42 C1.08.43 C1.08.44
+C1.08.40 C1.07.37 C1.07.41 C1.07.45 C1.08.35 C1.08.36 C1.08.39 C1.08.43 C1.08.44
+C1.08.41 C1.08.37 C1.08.38 C1.08.42 C1.08.45 C1.09.38 C1.09.41 C1.09.43 C1.09.45
+C1.08.42 C1.08.37 C1.08.38 C1.08.39 C1.08.41 C1.08.43 C1.08.45 C1.08.46 C1.09.45
+C1.08.43 C1.08.38 C1.08.39 C1.08.40 C1.08.42 C1.08.44 C1.08.45 C1.08.46 C1.08.47
+C1.08.44 C1.07.41 C1.07.45 C1.07.48 C1.08.39 C1.08.40 C1.08.43 C1.08.46 C1.08.47
+C1.08.45 C1.08.41 C1.08.42 C1.08.43 C1.08.46 C1.08.48 C1.08.49 C1.09.45 C1.09.47
+C1.08.46 C1.08.42 C1.08.43 C1.08.44 C1.08.45 C1.08.47 C1.08.48 C1.08.49 C1.08.50
+C1.08.47 C1.07.45 C1.07.48 C1.07.51 C1.08.43 C1.08.44 C1.08.46 C1.08.49 C1.08.50
+C1.08.48 C1.08.45 C1.08.46 C1.08.49 C1.08.51 C1.09.45 C1.09.47 C1.09.49 C1.09.50
+C1.08.49 C1.08.45 C1.08.46 C1.08.47 C1.08.48 C1.08.50 C1.08.51 C1.08.52 C1.09.50
+C1.08.50 C1.07.48 C1.07.51 C1.07.53 C1.08.46 C1.08.47 C1.08.49 C1.08.51 C1.08.52
+C1.08.51 C1.08.48 C1.08.49 C1.08.50 C1.08.52 C1.08.53 C1.08.54 C1.08.55 C1.09.50 C1.09.53
+C1.08.52 C1.07.51 C1.07.53 C1.07.56 C1.08.49 C1.08.50 C1.08.51 C1.08.54 C1.08.55 C1.08.56
+C1.08.53 C1.08.51 C1.08.54 C1.08.57 C1.09.50 C1.09.53 C1.09.55 C1.09.57
+C1.08.54 C1.08.51 C1.08.52 C1.08.53 C1.08.55 C1.08.57 C1.08.58 C1.09.57
+C1.08.55 C1.08.51 C1.08.52 C1.08.54 C1.08.56 C1.08.57 C1.08.58 C1.08.59
+C1.08.56 C1.07.53 C1.07.56 C1.07.59 C1.08.52 C1.08.55 C1.08.58 C1.08.59
+C1.08.57 C1.08.53 C1.08.54 C1.08.55 C1.08.58 C1.08.60 C1.08.61 C1.09.57 C1.09.59
+C1.08.58 C1.08.54 C1.08.55 C1.08.56 C1.08.57 C1.08.59 C1.08.60 C1.08.61 C1.08.62
+C1.08.59 C1.07.56 C1.07.59 C1.07.62 C1.08.55 C1.08.56 C1.08.58 C1.08.61 C1.08.62
+C1.08.60 C1.08.57 C1.08.58 C1.08.61 C1.09.57 C1.09.59 C1.09.62
+C1.08.61 C1.08.57 C1.08.58 C1.08.59 C1.08.60 C1.08.62 C1.09.62
+C1.08.62 C1.07.59 C1.07.62 C1.08.58 C1.08.59 C1.08.61
+C1.09.00 C1.09.04 C1.09.06 C1.09.08 C1.09.12
+C1.09.01 C1.09.03 C1.09.05 C1.09.11
+C1.09.02 C1.08.08 C1.09.05 C1.09.13
+C1.09.03 C1.09.01 C1.09.07 C1.09.09 C1.09.11
+C1.09.04 C1.09.00 C1.09.08 C1.09.10
+C1.09.05 C1.09.01 C1.09.02 C1.09.11 C1.09.13
+C1.09.06 C1.09.00 C1.09.12 C1.09.17 C1.10.06 C1.10.12
+C1.09.07 C1.09.03 C1.09.09 C1.09.10 C1.09.14
+C1.09.08 C1.09.00 C1.09.04 C1.09.10 C1.09.12 C1.09.15
+C1.09.09 C1.09.03 C1.09.07 C1.09.11 C1.09.14 C1.09.16
+C1.09.10 C1.09.04 C1.09.07 C1.09.08 C1.09.12 C1.09.14 C1.09.15 C1.09.18
+C1.09.11 C1.09.01 C1.09.03 C1.09.05 C1.09.09 C1.09.13 C1.09.14 C1.09.16 C1.09.19
+C1.09.12 C1.09.00 C1.09.06 C1.09.08 C1.09.10 C1.09.15 C1.09.17 C1.09.20 C1.10.12
+C1.09.13 C1.08.07 C1.08.08 C1.08.17 C1.09.02 C1.09.05 C1.09.11 C1.09.16 C1.09.19 C1.09.21
+C1.09.14 C1.09.07 C1.09.09 C1.09.10 C1.09.11 C1.09.15 C1.09.16 C1.09.18 C1.09.22
+C1.09.15 C1.09.08 C1.09.10 C1.09.12 C1.09.14 C1.09.17 C1.09.18 C1.09.20 C1.09.23
+C1.09.16 C1.09.09 C1.09.11 C1.09.13 C1.09.14 C1.09.18 C1.09.19 C1.09.22 C1.09.24
+C1.09.17 C1.09.06 C1.09.12 C1.09.15 C1.09.20 C1.09.25 C1.10.12 C1.10.17 C1.10.21
+C1.09.18 C1.09.10 C1.09.14 C1.09.15 C1.09.16 C1.09.20 C1.09.22 C1.09.23 C1.09.27
+C1.09.19 C1.08.17 C1.09.11 C1.09.13 C1.09.16 C1.09.21 C1.09.22 C1.09.24 C1.09.26
+C1.09.20 C1.09.12 C1.09.15 C1.09.17 C1.09.18 C1.09.23 C1.09.25 C1.09.28 C1.10.21
+C1.09.21 C1.08.17 C1.08.18 C1.08.23 C1.08.28 C1.09.13 C1.09.19 C1.09.24 C1.09.26
+C1.09.22 C1.09.14 C1.09.16 C1.09.18 C1.09.19 C1.09.23 C1.09.24 C1.09.27 C1.09.29
+C1.09.23 C1.09.15 C1.09.18 C1.09.20 C1.09.22 C1.09.25 C1.09.27 C1.09.28 C1.09.30
+C1.09.24 C1.09.16 C1.09.19 C1.09.21 C1.09.22 C1.09.26 C1.09.27 C1.09.29 C1.09.31
+C1.09.25 C1.09.17 C1.09.20 C1.09.23 C1.09.28 C1.09.32 C1.10.21 C1.10.24 C1.10.28
+C1.09.26 C1.08.23 C1.08.28 C1.09.19 C1.09.21 C1.09.24 C1.09.29 C1.09.31 C1.09.33
+C1.09.27 C1.09.18 C1.09.22 C1.09.23 C1.09.24 C1.09.28 C1.09.29 C1.09.30 C1.09.34
+C1.09.28 C1.09.20 C1.09.23 C1.09.25 C1.09.27 C1.09.30 C1.09.32 C1.09.35 C1.10.28
+C1.09.29 C1.09.22 C1.09.24 C1.09.26 C1.09.27 C1.09.30 C1.09.31 C1.09.34 C1.09.36
+C1.09.30 C1.09.23 C1.09.27 C1.09.28 C1.09.29 C1.09.32 C1.09.34 C1.09.35 C1.09.37
+C1.09.31 C1.08.28 C1.09.24 C1.09.26 C1.09.29 C1.09.33 C1.09.34 C1.09.36 C1.09.38
+C1.09.32 C1.09.25 C1.09.28 C1.09.30 C1.09.35 C1.10.28 C1.10.31 C1.10.34 C1.10.36
+C1.09.33 C1.08.28 C1.08.29 C1.08.33 C1.08.37 C1.09.26 C1.09.31 C1.09.36 C1.09.38
+C1.09.34 C1.09.27 C1.09.29 C1.09.30 C1.09.31 C1.09.35 C1.09.36 C1.09.37 C1.09.39
+C1.09.35 C1.09.28 C1.09.30 C1.09.32 C1.09.34 C1.09.37 C1.09.40 C1.10.34 C1.10.36
+C1.09.36 C1.09.29 C1.09.31 C1.09.33 C1.09.34 C1.09.37 C1.09.38 C1.09.39 C1.09.41
+C1.09.37 C1.09.30 C1.09.34 C1.09.35 C1.09.36 C1.09.39 C1.09.40 C1.09.42 C1.10.36
+C1.09.38 C1.08.33 C1.08.37 C1.08.41 C1.09.31 C1.09.33 C1.09.36 C1.09.39 C1.09.41
+C1.09.39 C1.09.34 C1.09.36 C1.09.37 C1.09.38 C1.09.40 C1.09.41 C1.09.42 C1.09.43
+C1.09.40 C1.09.35 C1.09.37 C1.09.39 C1.09.42 C1.09.44 C1.10.36 C1.10.40 C1.10.43
+C1.09.41 C1.08.37 C1.08.41 C1.09.36 C1.09.38 C1.09.39 C1.09.42 C1.09.43 C1.09.45
+C1.09.42 C1.09.37 C1.09.39 C1.09.40 C1.09.41 C1.09.43 C1.09.44 C1.09.46 C1.10.43
+C1.09.43 C1.08.41 C1.09.39 C1.09.41 C1.09.42 C1.09.44 C1.09.45 C1.09.46 C1.09.47
+C1.09.44 C1.09.40 C1.09.42 C1.09.43 C1.09.46 C1.09.48 C1.10.43 C1.10.45 C1.10.47
+C1.09.45 C1.08.41 C1.08.42 C1.08.45 C1.08.48 C1.09.41 C1.09.43 C1.09.46 C1.09.47
+C1.09.46 C1.09.42 C1.09.43 C1.09.44 C1.09.45 C1.09.47 C1.09.48 C1.09.49 C1.10.47
+C1.09.47 C1.08.45 C1.08.48 C1.09.43 C1.09.45 C1.09.46 C1.09.48 C1.09.49 C1.09.50
+C1.09.48 C1.09.44 C1.09.46 C1.09.47 C1.09.49 C1.09.51 C1.10.47 C1.10.49 C1.10.51
+C1.09.49 C1.08.48 C1.09.46 C1.09.47 C1.09.48 C1.09.50 C1.09.51 C1.09.52 C1.10.51
+C1.09.50 C1.08.48 C1.08.49 C1.08.51 C1.08.53 C1.09.47 C1.09.49 C1.09.51 C1.09.52 C1.09.53
+C1.09.51 C1.09.48 C1.09.49 C1.09.50 C1.09.52 C1.09.54 C1.09.56 C1.10.51 C1.10.52 C1.10.53 C1.10.55
+C1.09.52 C1.09.49 C1.09.50 C1.09.51 C1.09.53 C1.09.54 C1.09.55
+C1.09.53 C1.08.51 C1.08.53 C1.09.50 C1.09.52 C1.09.54 C1.09.55 C1.09.57
+C1.09.54 C1.09.51 C1.09.52 C1.09.53 C1.09.55 C1.09.56 C1.09.58 C1.10.55
+C1.09.55 C1.08.53 C1.09.52 C1.09.53 C1.09.54 C1.09.56 C1.09.57 C1.09.58 C1.09.59
+C1.09.56 C1.09.51 C1.09.54 C1.09.55 C1.09.58 C1.09.60 C1.10.55 C1.10.57 C1.10.59
+C1.09.57 C1.08.53 C1.08.54 C1.08.57 C1.08.60 C1.09.53 C1.09.55 C1.09.58 C1.09.59
+C1.09.58 C1.09.54 C1.09.55 C1.09.56 C1.09.57 C1.09.59 C1.09.60 C1.09.61 C1.10.59
+C1.09.59 C1.08.57 C1.08.60 C1.09.55 C1.09.57 C1.09.58 C1.09.60 C1.09.61 C1.09.62
+C1.09.60 C1.09.56 C1.09.58 C1.09.59 C1.09.61 C1.10.59 C1.10.61
+C1.09.61 C1.09.58 C1.09.59 C1.09.60 C1.09.62 C1.10.59 C1.10.61
+C1.09.62 C1.08.60 C1.08.61 C1.09.59 C1.09.61
+C1.10.00 C1.10.03 C1.10.06
+C1.10.01 C1.10.02 C1.10.04 C1.10.10 C1.10.14
+C1.10.02 C1.10.01 C1.10.07 C1.10.10
+C1.10.03 C1.10.00 C1.10.06 C1.10.09 C1.10.13
+C1.10.04 C1.10.01 C1.10.05 C1.10.10 C1.10.14 C1.11.02
+C1.10.05 C1.10.04 C1.10.14 C1.11.02 C1.11.08
+C1.10.06 C1.09.06 C1.10.00 C1.10.03 C1.10.12 C1.10.13 C1.10.17
+C1.10.07 C1.10.02 C1.10.10 C1.10.11 C1.10.15
+C1.10.08 C1.10.09 C1.10.11
+C1.10.09 C1.10.03 C1.10.08 C1.10.11 C1.10.13 C1.10.16
+C1.10.10 C1.10.01 C1.10.02 C1.10.04 C1.10.07 C1.10.11 C1.10.14 C1.10.15 C1.10.18
+C1.10.11 C1.10.07 C1.10.08 C1.10.09 C1.10.10 C1.10.13 C1.10.15 C1.10.16 C1.10.19
+C1.10.12 C1.09.06 C1.09.12 C1.09.17 C1.10.06 C1.10.13 C1.10.17 C1.10.21
+C1.10.13 C1.10.03 C1.10.06 C1.10.09 C1.10.11 C1.10.12 C1.10.16 C1.10.17 C1.10.20
+C1.10.14 C1.10.01 C1.10.04 C1.10.05 C1.10.10 C1.10.15 C1.10.18 C1.11.08 C1.11.10 C1.11.15 C1.11.20
+C1.10.15 C1.10.07 C1.10.10 C1.10.11 C1.10.14 C1.10.16 C1.10.18 C1.10.19 C1.10.22
+C1.10.16 C1.10.09 C1.10.11 C1.10.13 C1.10.15 C1.10.17 C1.10.19 C1.10.20 C1.10.23
+C1.10.17 C1.09.17 C1.10.06 C1.10.12 C1.10.13 C1.10.16 C1.10.20 C1.10.21 C1.10.24
+C1.10.18 C1.10.10 C1.10.14 C1.10.15 C1.10.19 C1.10.22 C1.10.25 C1.11.15 C1.11.20
+C1.10.19 C1.10.11 C1.10.15 C1.10.16 C1.10.18 C1.10.20 C1.10.22 C1.10.23 C1.10.26
+C1.10.20 C1.10.13 C1.10.16 C1.10.17 C1.10.19 C1.10.21 C1.10.23 C1.10.24 C1.10.27
+C1.10.21 C1.09.17 C1.09.20 C1.09.25 C1.10.12 C1.10.17 C1.10.20 C1.10.24 C1.10.28
+C1.10.22 C1.10.15 C1.10.18 C1.10.19 C1.10.23 C1.10.25 C1.10.26 C1.10.29 C1.11.20
+C1.10.23 C1.10.16 C1.10.19 C1.10.20 C1.10.22 C1.10.24 C1.10.26 C1.10.27 C1.10.30
+C1.10.24 C1.09.25 C1.10.17 C1.10.20 C1.10.21 C1.10.23 C1.10.27 C1.10.28 C1.10.31
+C1.10.25 C1.10.18 C1.10.22 C1.10.26 C1.10.29 C1.11.20 C1.11.21 C1.11.25 C1.11.29
+C1.10.26 C1.10.19 C1.10.22 C1.10.23 C1.10.25 C1.10.27 C1.10.29 C1.10.30 C1.10.32
+C1.10.27 C1.10.20 C1.10.23 C1.10.24 C1.10.26 C1.10.28 C1.10.30 C1.10.31 C1.10.33
+C1.10.28 C1.09.25 C1.09.28 C1.09.32 C1.10.21 C1.10.24 C1.10.27 C1.10.31 C1.10.34
+C1.10.29 C1.10.22 C1.10.25 C1.10.26 C1.10.30 C1.10.32 C1.11.25 C1.11.29 C1.11.33
+C1.10.30 C1.10.23 C1.10.26 C1.10.27 C1.10.29 C1.10.31 C1.10.32 C1.10.33 C1.10.35
+C1.10.31 C1.09.32 C1.10.24 C1.10.27 C1.10.28 C1.10.30 C1.10.33 C1.10.34 C1.10.37
+C1.10.32 C1.10.26 C1.10.29 C1.10.30 C1.10.33 C1.10.35 C1.10.38 C1.11.29 C1.11.33
+C1.10.33 C1.10.27 C1.10.30 C1.10.31 C1.10.32 C1.10.34 C1.10.35 C1.10.37 C1.10.39
+C1.10.34 C1.09.32 C1.09.35 C1.10.28 C1.10.31 C1.10.33 C1.10.36 C1.10.37 C1.10.40
+C1.10.35 C1.10.30 C1.10.32 C1.10.33 C1.10.37 C1.10.38 C1.10.39 C1.10.41 C1.11.33
+C1.10.36 C1.09.32 C1.09.35 C1.09.37 C1.09.40 C1.10.34 C1.10.37 C1.10.40 C1.10.43
+C1.10.37 C1.10.31 C1.10.33 C1.10.34 C1.10.35 C1.10.36 C1.10.39 C1.10.40 C1.10.42
+C1.10.38 C1.10.32 C1.10.35 C1.10.39 C1.10.41 C1.11.33 C1.11.34 C1.11.37 C1.11.40
+C1.10.39 C1.10.33 C1.10.35 C1.10.37 C1.10.38 C1.10.40 C1.10.41 C1.10.42 C1.10.44
+C1.10.40 C1.09.40 C1.10.34 C1.10.36 C1.10.37 C1.10.39 C1.10.42 C1.10.43 C1.10.45
+C1.10.41 C1.10.35 C1.10.38 C1.10.39 C1.10.42 C1.10.44 C1.11.37 C1.11.40 C1.11.43
+C1.10.42 C1.10.37 C1.10.39 C1.10.40 C1.10.41 C1.10.43 C1.10.44 C1.10.45 C1.10.46
+C1.10.43 C1.09.40 C1.09.42 C1.09.44 C1.10.36 C1.10.40 C1.10.42 C1.10.45 C1.10.47
+C1.10.44 C1.10.39 C1.10.41 C1.10.42 C1.10.45 C1.10.46 C1.10.48 C1.11.40 C1.11.43
+C1.10.45 C1.09.44 C1.10.40 C1.10.42 C1.10.43 C1.10.44 C1.10.46 C1.10.47 C1.10.49
+C1.10.46 C1.10.42 C1.10.44 C1.10.45 C1.10.47 C1.10.48 C1.10.49 C1.10.50 C1.11.43
+C1.10.47 C1.09.44 C1.09.46 C1.09.48 C1.10.43 C1.10.45 C1.10.46 C1.10.49 C1.10.51
+C1.10.48 C1.10.44 C1.10.46 C1.10.49 C1.10.50 C1.11.43 C1.11.44 C1.11.46 C1.11.48
+C1.10.49 C1.09.48 C1.10.45 C1.10.46 C1.10.47 C1.10.48 C1.10.50 C1.10.51 C1.10.52
+C1.10.50 C1.10.46 C1.10.48 C1.10.49 C1.10.51 C1.10.52 C1.11.46 C1.11.48 C1.11.50
+C1.10.51 C1.09.48 C1.09.49 C1.09.51 C1.10.47 C1.10.49 C1.10.50 C1.10.52 C1.10.53
+C1.10.52 C1.09.51 C1.10.49 C1.10.50 C1.10.51 C1.10.53 C1.10.54 C1.10.56 C1.11.48 C1.11.50 C1.11.54
+C1.10.53 C1.09.51 C1.10.51 C1.10.52 C1.10.54 C1.10.55 C1.10.57
+C1.10.54 C1.10.52 C1.10.53 C1.10.55 C1.10.56 C1.10.57 C1.10.58 C1.11.54
+C1.10.55 C1.09.51 C1.09.54 C1.09.56 C1.10.53 C1.10.54 C1.10.57 C1.10.59
+C1.10.56 C1.10.52 C1.10.54 C1.10.57 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.58
+C1.10.57 C1.09.56 C1.10.53 C1.10.54 C1.10.55 C1.10.56 C1.10.58 C1.10.59 C1.10.61
+C1.10.58 C1.10.54 C1.10.56 C1.10.57 C1.10.59 C1.10.60 C1.10.61 C1.10.62 C1.11.58
+C1.10.59 C1.09.56 C1.09.58 C1.09.60 C1.09.61 C1.10.55 C1.10.57 C1.10.58 C1.10.61
+C1.10.60 C1.10.56 C1.10.58 C1.10.61 C1.10.62 C1.11.58 C1.11.59 C1.11.61
+C1.10.61 C1.09.60 C1.09.61 C1.10.57 C1.10.58 C1.10.59 C1.10.60 C1.10.62
+C1.10.62 C1.10.58 C1.10.60 C1.10.61 C1.11.61
+C1.11.00 C1.11.05 C1.11.07 C1.12.00 C1.12.08
+C1.11.01 C1.11.02 C1.11.03 C1.11.10
+C1.11.02 C1.10.04 C1.10.05 C1.11.01 C1.11.08 C1.11.10
+C1.11.03 C1.11.01 C1.11.04 C1.11.10 C1.11.11
+C1.11.04 C1.11.03 C1.11.06 C1.11.11 C1.11.12
+C1.11.05 C1.11.00 C1.11.07 C1.11.09 C1.11.12 C1.11.13 C1.11.14
+C1.11.06 C1.11.04 C1.11.09 C1.11.11 C1.11.12
+C1.11.07 C1.11.00 C1.11.05 C1.11.13 C1.11.14 C1.12.00 C1.12.08 C1.12.14
+C1.11.08 C1.10.05 C1.10.14 C1.11.02 C1.11.10 C1.11.15
+C1.11.09 C1.11.05 C1.11.06 C1.11.12 C1.11.13
+C1.11.10 C1.10.14 C1.11.01 C1.11.02 C1.11.03 C1.11.08 C1.11.11 C1.11.15 C1.11.16
+C1.11.11 C1.11.03 C1.11.04 C1.11.06 C1.11.10 C1.11.12 C1.11.15 C1.11.16 C1.11.17
+C1.11.12 C1.11.04 C1.11.05 C1.11.06 C1.11.09 C1.11.11 C1.11.13 C1.11.16 C1.11.17 C1.11.18
+C1.11.13 C1.11.05 C1.11.07 C1.11.09 C1.11.12 C1.11.14 C1.11.17 C1.11.18 C1.11.19
+C1.11.14 C1.11.05 C1.11.07 C1.11.13 C1.11.18 C1.11.19 C1.12.08 C1.12.14 C1.12.19
+C1.11.15 C1.10.14 C1.10.18 C1.11.08 C1.11.10 C1.11.11 C1.11.16 C1.11.20 C1.11.21
+C1.11.16 C1.11.10 C1.11.11 C1.11.12 C1.11.15 C1.11.17 C1.11.20 C1.11.21 C1.11.22
+C1.11.17 C1.11.11 C1.11.12 C1.11.13 C1.11.16 C1.11.18 C1.11.21 C1.11.22 C1.11.23
+C1.11.18 C1.11.12 C1.11.13 C1.11.14 C1.11.17 C1.11.19 C1.11.22 C1.11.23 C1.11.24
+C1.11.19 C1.11.13 C1.11.14 C1.11.18 C1.11.23 C1.11.24 C1.12.14 C1.12.19 C1.12.24
+C1.11.20 C1.10.14 C1.10.18 C1.10.22 C1.10.25 C1.11.15 C1.11.16 C1.11.21 C1.11.25
+C1.11.21 C1.10.25 C1.11.15 C1.11.16 C1.11.17 C1.11.20 C1.11.22 C1.11.25 C1.11.26
+C1.11.22 C1.11.16 C1.11.17 C1.11.18 C1.11.21 C1.11.23 C1.11.25 C1.11.26 C1.11.27
+C1.11.23 C1.11.17 C1.11.18 C1.11.19 C1.11.22 C1.11.24 C1.11.26 C1.11.27 C1.11.28
+C1.11.24 C1.11.18 C1.11.19 C1.11.23 C1.11.27 C1.11.28 C1.12.19 C1.12.24 C1.12.28
+C1.11.25 C1.10.25 C1.10.29 C1.11.20 C1.11.21 C1.11.22 C1.11.26 C1.11.29 C1.11.30
+C1.11.26 C1.11.21 C1.11.22 C1.11.23 C1.11.25 C1.11.27 C1.11.29 C1.11.30 C1.11.31
+C1.11.27 C1.11.22 C1.11.23 C1.11.24 C1.11.26 C1.11.28 C1.11.30 C1.11.31 C1.11.32
+C1.11.28 C1.11.23 C1.11.24 C1.11.27 C1.11.31 C1.11.32 C1.12.24 C1.12.28 C1.12.32
+C1.11.29 C1.10.25 C1.10.29 C1.10.32 C1.11.25 C1.11.26 C1.11.30 C1.11.33 C1.11.34
+C1.11.30 C1.11.25 C1.11.26 C1.11.27 C1.11.29 C1.11.31 C1.11.33 C1.11.34 C1.11.35
+C1.11.31 C1.11.26 C1.11.27 C1.11.28 C1.11.30 C1.11.32 C1.11.34 C1.11.35 C1.11.36
+C1.11.32 C1.11.27 C1.11.28 C1.11.31 C1.11.35 C1.11.36 C1.12.28 C1.12.32 C1.12.36
+C1.11.33 C1.10.29 C1.10.32 C1.10.35 C1.10.38 C1.11.29 C1.11.30 C1.11.34 C1.11.37
+C1.11.34 C1.10.38 C1.11.29 C1.11.30 C1.11.31 C1.11.33 C1.11.35 C1.11.37 C1.11.38
+C1.11.35 C1.11.30 C1.11.31 C1.11.32 C1.11.34 C1.11.36 C1.11.37 C1.11.38 C1.11.39
+C1.11.36 C1.11.31 C1.11.32 C1.11.35 C1.11.38 C1.11.39 C1.12.32 C1.12.36 C1.12.39
+C1.11.37 C1.10.38 C1.10.41 C1.11.33 C1.11.34 C1.11.35 C1.11.38 C1.11.40 C1.11.41
+C1.11.38 C1.11.34 C1.11.35 C1.11.36 C1.11.37 C1.11.39 C1.11.40 C1.11.41 C1.11.42
+C1.11.39 C1.11.35 C1.11.36 C1.11.38 C1.11.41 C1.11.42 C1.12.36 C1.12.39 C1.12.42
+C1.11.40 C1.10.38 C1.10.41 C1.10.44 C1.11.37 C1.11.38 C1.11.41 C1.11.43 C1.11.44
+C1.11.41 C1.11.37 C1.11.38 C1.11.39 C1.11.40 C1.11.42 C1.11.43 C1.11.44 C1.11.45
+C1.11.42 C1.11.38 C1.11.39 C1.11.41 C1.11.44 C1.11.45 C1.12.39 C1.12.42 C1.12.45
+C1.11.43 C1.10.41 C1.10.44 C1.10.46 C1.10.48 C1.11.40 C1.11.41 C1.11.44 C1.11.46
+C1.11.44 C1.10.48 C1.11.40 C1.11.41 C1.11.42 C1.11.43 C1.11.45 C1.11.46 C1.11.47
+C1.11.45 C1.11.41 C1.11.42 C1.11.44 C1.11.46 C1.11.47 C1.12.42 C1.12.45 C1.12.47
+C1.11.46 C1.10.48 C1.10.50 C1.11.43 C1.11.44 C1.11.45 C1.11.47 C1.11.48 C1.11.49
+C1.11.47 C1.11.44 C1.11.45 C1.11.46 C1.11.48 C1.11.49 C1.12.45 C1.12.47 C1.12.49
+C1.11.48 C1.10.48 C1.10.50 C1.10.52 C1.11.46 C1.11.47 C1.11.49 C1.11.50 C1.11.51 C1.11.52
+C1.11.49 C1.11.46 C1.11.47 C1.11.48 C1.11.51 C1.11.52 C1.11.53 C1.12.47 C1.12.49 C1.12.53
+C1.11.50 C1.10.50 C1.10.52 C1.11.48 C1.11.51 C1.11.54 C1.11.55
+C1.11.51 C1.11.48 C1.11.49 C1.11.50 C1.11.52 C1.11.54 C1.11.55 C1.11.56
+C1.11.52 C1.11.48 C1.11.49 C1.11.51 C1.11.53 C1.11.55 C1.11.56 C1.11.57
+C1.11.53 C1.11.49 C1.11.52 C1.11.56 C1.11.57 C1.12.49 C1.12.53 C1.12.57
+C1.11.54 C1.10.52 C1.10.54 C1.10.56 C1.11.50 C1.11.51 C1.11.55 C1.11.58
+C1.11.55 C1.10.56 C1.11.50 C1.11.51 C1.11.52 C1.11.54 C1.11.56 C1.11.58 C1.11.59
+C1.11.56 C1.11.51 C1.11.52 C1.11.53 C1.11.55 C1.11.57 C1.11.58 C1.11.59 C1.11.60
+C1.11.57 C1.11.52 C1.11.53 C1.11.56 C1.11.59 C1.11.60 C1.12.53 C1.12.57 C1.12.60
+C1.11.58 C1.10.56 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.56 C1.11.59 C1.11.61
+C1.11.59 C1.10.60 C1.11.55 C1.11.56 C1.11.57 C1.11.58 C1.11.60 C1.11.61 C1.11.62
+C1.11.60 C1.11.56 C1.11.57 C1.11.59 C1.11.61 C1.11.62 C1.12.57 C1.12.60 C1.12.62
+C1.11.61 C1.10.60 C1.10.62 C1.11.58 C1.11.59 C1.11.60 C1.11.62
+C1.11.62 C1.11.59 C1.11.60 C1.11.61 C1.12.60 C1.12.62
+C1.12.00 C1.11.00 C1.11.07 C1.12.06 C1.12.08
+C1.12.01 C1.12.02 C1.12.04 C1.12.10
+C1.12.02 C1.12.01 C1.12.03 C1.12.10 C1.12.11
+C1.12.03 C1.12.02 C1.12.05 C1.12.10 C1.12.11
+C1.12.04 C1.12.01 C1.12.10 C1.12.15 C1.13.02 C1.13.09 C1.13.13
+C1.12.05 C1.12.03 C1.12.07 C1.12.11 C1.12.12
+C1.12.06 C1.12.00 C1.12.08 C1.12.09 C1.12.12 C1.12.13 C1.12.14
+C1.12.07 C1.12.05 C1.12.09 C1.12.11 C1.12.12
+C1.12.08 C1.11.00 C1.11.07 C1.11.14 C1.12.00 C1.12.06 C1.12.13 C1.12.14
+C1.12.09 C1.12.06 C1.12.07 C1.12.12 C1.12.13
+C1.12.10 C1.12.01 C1.12.02 C1.12.03 C1.12.04 C1.12.11 C1.12.15 C1.12.16 C1.13.13
+C1.12.11 C1.12.02 C1.12.03 C1.12.05 C1.12.07 C1.12.10 C1.12.12 C1.12.15 C1.12.16 C1.12.17
+C1.12.12 C1.12.05 C1.12.06 C1.12.07 C1.12.09 C1.12.11 C1.12.13 C1.12.16 C1.12.17 C1.12.18
+C1.12.13 C1.12.06 C1.12.08 C1.12.09 C1.12.12 C1.12.14 C1.12.17 C1.12.18 C1.12.19
+C1.12.14 C1.11.07 C1.11.14 C1.11.19 C1.12.06 C1.12.08 C1.12.13 C1.12.18 C1.12.19
+C1.12.15 C1.12.04 C1.12.10 C1.12.11 C1.12.16 C1.12.20 C1.12.21 C1.13.13 C1.13.17
+C1.12.16 C1.12.10 C1.12.11 C1.12.12 C1.12.15 C1.12.17 C1.12.20 C1.12.21 C1.12.22
+C1.12.17 C1.12.11 C1.12.12 C1.12.13 C1.12.16 C1.12.18 C1.12.21 C1.12.22 C1.12.23
+C1.12.18 C1.12.12 C1.12.13 C1.12.14 C1.12.17 C1.12.19 C1.12.22 C1.12.23 C1.12.24
+C1.12.19 C1.11.14 C1.11.19 C1.11.24 C1.12.13 C1.12.14 C1.12.18 C1.12.23 C1.12.24
+C1.12.20 C1.12.15 C1.12.16 C1.12.21 C1.12.25 C1.13.13 C1.13.17 C1.13.21 C1.13.24
+C1.12.21 C1.12.15 C1.12.16 C1.12.17 C1.12.20 C1.12.22 C1.12.25 C1.12.26 C1.13.24
+C1.12.22 C1.12.16 C1.12.17 C1.12.18 C1.12.21 C1.12.23 C1.12.25 C1.12.26 C1.12.27
+C1.12.23 C1.12.17 C1.12.18 C1.12.19 C1.12.22 C1.12.24 C1.12.26 C1.12.27 C1.12.28
+C1.12.24 C1.11.19 C1.11.24 C1.11.28 C1.12.18 C1.12.19 C1.12.23 C1.12.27 C1.12.28
+C1.12.25 C1.12.20 C1.12.21 C1.12.22 C1.12.26 C1.12.29 C1.12.30 C1.13.24 C1.13.28
+C1.12.26 C1.12.21 C1.12.22 C1.12.23 C1.12.25 C1.12.27 C1.12.29 C1.12.30 C1.12.31
+C1.12.27 C1.12.22 C1.12.23 C1.12.24 C1.12.26 C1.12.28 C1.12.30 C1.12.31 C1.12.32
+C1.12.28 C1.11.24 C1.11.28 C1.11.32 C1.12.23 C1.12.24 C1.12.27 C1.12.31 C1.12.32
+C1.12.29 C1.12.25 C1.12.26 C1.12.30 C1.12.33 C1.12.34 C1.13.24 C1.13.28 C1.13.31
+C1.12.30 C1.12.25 C1.12.26 C1.12.27 C1.12.29 C1.12.31 C1.12.33 C1.12.34 C1.12.35
+C1.12.31 C1.12.26 C1.12.27 C1.12.28 C1.12.30 C1.12.32 C1.12.34 C1.12.35 C1.12.36
+C1.12.32 C1.11.28 C1.11.32 C1.11.36 C1.12.27 C1.12.28 C1.12.31 C1.12.35 C1.12.36
+C1.12.33 C1.12.29 C1.12.30 C1.12.34 C1.12.37 C1.13.28 C1.13.31 C1.13.34 C1.13.37
+C1.12.34 C1.12.29 C1.12.30 C1.12.31 C1.12.33 C1.12.35 C1.12.37 C1.12.38 C1.13.37
+C1.12.35 C1.12.30 C1.12.31 C1.12.32 C1.12.34 C1.12.36 C1.12.37 C1.12.38 C1.12.39
+C1.12.36 C1.11.32 C1.11.36 C1.11.39 C1.12.31 C1.12.32 C1.12.35 C1.12.38 C1.12.39
+C1.12.37 C1.12.33 C1.12.34 C1.12.35 C1.12.38 C1.12.40 C1.12.41 C1.13.37 C1.13.40
+C1.12.38 C1.12.34 C1.12.35 C1.12.36 C1.12.37 C1.12.39 C1.12.40 C1.12.41 C1.12.42
+C1.12.39 C1.11.36 C1.11.39 C1.11.42 C1.12.35 C1.12.36 C1.12.38 C1.12.41 C1.12.42
+C1.12.40 C1.12.37 C1.12.38 C1.12.41 C1.12.43 C1.12.44 C1.13.37 C1.13.40 C1.13.43
+C1.12.41 C1.12.37 C1.12.38 C1.12.39 C1.12.40 C1.12.42 C1.12.43 C1.12.44 C1.12.45
+C1.12.42 C1.11.39 C1.11.42 C1.11.45 C1.12.38 C1.12.39 C1.12.41 C1.12.44 C1.12.45
+C1.12.43 C1.12.40 C1.12.41 C1.12.44 C1.12.46 C1.13.40 C1.13.43 C1.13.45 C1.13.47
+C1.12.44 C1.12.40 C1.12.41 C1.12.42 C1.12.43 C1.12.45 C1.12.46 C1.12.47 C1.13.47
+C1.12.45 C1.11.42 C1.11.45 C1.11.47 C1.12.41 C1.12.42 C1.12.44 C1.12.46 C1.12.47
+C1.12.46 C1.12.43 C1.12.44 C1.12.45 C1.12.47 C1.12.48 C1.12.49 C1.13.47 C1.13.49
+C1.12.47 C1.11.45 C1.11.47 C1.11.49 C1.12.44 C1.12.45 C1.12.46 C1.12.48 C1.12.49
+C1.12.48 C1.12.46 C1.12.47 C1.12.49 C1.12.50 C1.12.51 C1.12.52 C1.13.47 C1.13.49 C1.13.51
+C1.12.49 C1.11.47 C1.11.49 C1.11.53 C1.12.46 C1.12.47 C1.12.48 C1.12.51 C1.12.52 C1.12.53
+C1.12.50 C1.12.48 C1.12.51 C1.12.54 C1.12.55 C1.13.49 C1.13.51
+C1.12.51 C1.12.48 C1.12.49 C1.12.50 C1.12.52 C1.12.54 C1.12.55 C1.12.56
+C1.12.52 C1.12.48 C1.12.49 C1.12.51 C1.12.53 C1.12.55 C1.12.56 C1.12.57
+C1.12.53 C1.11.49 C1.11.53 C1.11.57 C1.12.49 C1.12.52 C1.12.56 C1.12.57
+C1.12.54 C1.12.50 C1.12.51 C1.12.55 C1.12.58 C1.13.51 C1.13.53 C1.13.55
+C1.12.55 C1.12.50 C1.12.51 C1.12.52 C1.12.54 C1.12.56 C1.12.58 C1.12.59 C1.13.55
+C1.12.56 C1.12.51 C1.12.52 C1.12.53 C1.12.55 C1.12.57 C1.12.58 C1.12.59 C1.12.60
+C1.12.57 C1.11.53 C1.11.57 C1.11.60 C1.12.52 C1.12.53 C1.12.56 C1.12.59 C1.12.60
+C1.12.58 C1.12.54 C1.12.55 C1.12.56 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.59
+C1.12.59 C1.12.55 C1.12.56 C1.12.57 C1.12.58 C1.12.60 C1.12.61 C1.12.62 C1.13.59
+C1.12.60 C1.11.57 C1.11.60 C1.11.62 C1.12.56 C1.12.57 C1.12.59 C1.12.61 C1.12.62
+C1.12.61 C1.12.58 C1.12.59 C1.12.60 C1.12.62 C1.13.59 C1.13.62
+C1.12.62 C1.11.60 C1.11.62 C1.12.59 C1.12.60 C1.12.61 C1.13.62
+C1.13.00 C1.13.02 C1.13.05 C1.13.09
+C1.13.01 C1.13.03 C1.13.06 C1.13.11
+C1.13.02 C1.12.04 C1.13.00 C1.13.09 C1.13.13
+C1.13.03 C1.13.01 C1.13.06 C1.13.07 C1.13.08 C1.13.11
+C1.13.04 C1.13.05 C1.13.07 C1.13.10
+C1.13.05 C1.13.00 C1.13.04 C1.13.09 C1.13.10 C1.13.14
+C1.13.06 C1.13.01 C1.13.03 C1.13.11 C1.13.12 C1.13.16 C1.14.06
+C1.13.07 C1.13.03 C1.13.04 C1.13.08 C1.13.10
+C1.13.08 C1.13.03 C1.13.07 C1.13.10 C1.13.11 C1.13.15
+C1.13.09 C1.12.04 C1.13.00 C1.13.02 C1.13.05 C1.13.10 C1.13.13 C1.13.14 C1.13.17
+C1.13.10 C1.13.04 C1.13.05 C1.13.07 C1.13.08 C1.13.09 C1.13.11 C1.13.14 C1.13.15 C1.13.18
+C1.13.11 C1.13.01 C1.13.03 C1.13.06 C1.13.08 C1.13.10 C1.13.12 C1.13.15 C1.13.16 C1.13.19
+C1.13.12 C1.13.06 C1.13.11 C1.13.16 C1.13.20 C1.14.06 C1.14.12 C1.14.17
+C1.13.13 C1.12.04 C1.12.10 C1.12.15 C1.12.20 C1.13.02 C1.13.09 C1.13.14 C1.13.17
+C1.13.14 C1.13.05 C1.13.09 C1.13.10 C1.13.13 C1.13.15 C1.13.17 C1.13.18 C1.13.21
+C1.13.15 C1.13.08 C1.13.10 C1.13.11 C1.13.14 C1.13.16 C1.13.18 C1.13.19 C1.13.22
+C1.13.16 C1.13.06 C1.13.11 C1.13.12 C1.13.15 C1.13.19 C1.13.20 C1.13.23 C1.14.17
+C1.13.17 C1.12.15 C1.12.20 C1.13.09 C1.13.13 C1.13.14 C1.13.18 C1.13.21 C1.13.24
+C1.13.18 C1.13.10 C1.13.14 C1.13.15 C1.13.17 C1.13.19 C1.13.21 C1.13.22 C1.13.25
+C1.13.19 C1.13.11 C1.13.15 C1.13.16 C1.13.18 C1.13.20 C1.13.22 C1.13.23 C1.13.26
+C1.13.20 C1.13.12 C1.13.16 C1.13.19 C1.13.23 C1.13.27 C1.14.17 C1.14.20 C1.14.25
+C1.13.21 C1.12.20 C1.13.14 C1.13.17 C1.13.18 C1.13.22 C1.13.24 C1.13.25 C1.13.28
+C1.13.22 C1.13.15 C1.13.18 C1.13.19 C1.13.21 C1.13.23 C1.13.25 C1.13.26 C1.13.29
+C1.13.23 C1.13.16 C1.13.19 C1.13.20 C1.13.22 C1.13.26 C1.13.27 C1.13.30 C1.14.25
+C1.13.24 C1.12.20 C1.12.21 C1.12.25 C1.12.29 C1.13.17 C1.13.21 C1.13.25 C1.13.28
+C1.13.25 C1.13.18 C1.13.21 C1.13.22 C1.13.24 C1.13.26 C1.13.28 C1.13.29 C1.13.31
+C1.13.26 C1.13.19 C1.13.22 C1.13.23 C1.13.25 C1.13.27 C1.13.29 C1.13.30 C1.13.32
+C1.13.27 C1.13.20 C1.13.23 C1.13.26 C1.13.30 C1.13.33 C1.14.25 C1.14.28 C1.14.32
+C1.13.28 C1.12.25 C1.12.29 C1.12.33 C1.13.21 C1.13.24 C1.13.25 C1.13.29 C1.13.31
+C1.13.29 C1.13.22 C1.13.25 C1.13.26 C1.13.28 C1.13.30 C1.13.31 C1.13.32 C1.13.34
+C1.13.30 C1.13.23 C1.13.26 C1.13.27 C1.13.29 C1.13.32 C1.13.33 C1.13.36 C1.14.32
+C1.13.31 C1.12.29 C1.12.33 C1.13.25 C1.13.28 C1.13.29 C1.13.32 C1.13.34 C1.13.37
+C1.13.32 C1.13.26 C1.13.29 C1.13.30 C1.13.31 C1.13.33 C1.13.34 C1.13.36 C1.13.38
+C1.13.33 C1.13.27 C1.13.30 C1.13.32 C1.13.35 C1.13.36 C1.13.39 C1.14.32 C1.14.35
+C1.13.34 C1.12.33 C1.13.29 C1.13.31 C1.13.32 C1.13.36 C1.13.37 C1.13.38 C1.13.40
+C1.13.35 C1.13.33 C1.13.36 C1.13.39 C1.13.42 C1.14.32 C1.14.35 C1.14.37 C1.14.40
+C1.13.36 C1.13.30 C1.13.32 C1.13.33 C1.13.34 C1.13.35 C1.13.38 C1.13.39 C1.13.41
+C1.13.37 C1.12.33 C1.12.34 C1.12.37 C1.12.40 C1.13.31 C1.13.34 C1.13.38 C1.13.40
+C1.13.38 C1.13.32 C1.13.34 C1.13.36 C1.13.37 C1.13.39 C1.13.40 C1.13.41 C1.13.43
+C1.13.39 C1.13.33 C1.13.35 C1.13.36 C1.13.38 C1.13.41 C1.13.42 C1.13.44 C1.14.40
+C1.13.40 C1.12.37 C1.12.40 C1.12.43 C1.13.34 C1.13.37 C1.13.38 C1.13.41 C1.13.43
+C1.13.41 C1.13.36 C1.13.38 C1.13.39 C1.13.40 C1.13.42 C1.13.43 C1.13.44 C1.13.45
+C1.13.42 C1.13.35 C1.13.39 C1.13.41 C1.13.44 C1.13.46 C1.14.40 C1.14.42 C1.14.44
+C1.13.43 C1.12.40 C1.12.43 C1.13.38 C1.13.40 C1.13.41 C1.13.44 C1.13.45 C1.13.47
+C1.13.44 C1.13.39 C1.13.41 C1.13.42 C1.13.43 C1.13.45 C1.13.46 C1.13.48 C1.14.44
+C1.13.45 C1.12.43 C1.13.41 C1.13.43 C1.13.44 C1.13.46 C1.13.47 C1.13.48 C1.13.49
+C1.13.46 C1.13.42 C1.13.44 C1.13.45 C1.13.48 C1.13.50 C1.14.44 C1.14.46 C1.14.48
+C1.13.47 C1.12.43 C1.12.44 C1.12.46 C1.12.48 C1.13.43 C1.13.45 C1.13.48 C1.13.49
+C1.13.48 C1.13.44 C1.13.45 C1.13.46 C1.13.47 C1.13.49 C1.13.50 C1.13.51 C1.14.48
+C1.13.49 C1.12.46 C1.12.48 C1.12.50 C1.13.45 C1.13.47 C1.13.48 C1.13.50 C1.13.51
+C1.13.50 C1.13.46 C1.13.48 C1.13.49 C1.13.51 C1.13.52 C1.14.48 C1.14.49 C1.14.51
+C1.13.51 C1.12.48 C1.12.50 C1.12.54 C1.13.48 C1.13.49 C1.13.50 C1.13.52 C1.13.53 C1.13.55 C1.14.51
+C1.13.52 C1.13.50 C1.13.51 C1.13.53 C1.13.54 C1.13.56 C1.14.51
+C1.13.53 C1.12.54 C1.13.51 C1.13.52 C1.13.54 C1.13.55 C1.13.56 C1.13.57
+C1.13.54 C1.13.52 C1.13.53 C1.13.56 C1.13.58 C1.14.51 C1.14.55 C1.14.57
+C1.13.55 C1.12.54 C1.12.55 C1.12.58 C1.13.51 C1.13.53 C1.13.56 C1.13.57 C1.13.59
+C1.13.56 C1.13.52 C1.13.53 C1.13.54 C1.13.55 C1.13.57 C1.13.58 C1.13.60 C1.14.57
+C1.13.57 C1.12.58 C1.13.53 C1.13.55 C1.13.56 C1.13.58 C1.13.59 C1.13.60
+C1.13.58 C1.13.54 C1.13.56 C1.13.57 C1.13.60 C1.13.61 C1.14.57 C1.14.59 C1.14.61
+C1.13.59 C1.12.58 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.60 C1.13.62
+C1.13.60 C1.13.56 C1.13.57 C1.13.58 C1.13.59 C1.13.61 C1.13.62 C1.14.61
+C1.13.61 C1.13.58 C1.13.60 C1.13.62 C1.14.61 C1.14.62
+C1.13.62 C1.12.61 C1.12.62 C1.13.59 C1.13.60 C1.13.61
+C1.14.00 C1.14.02 C1.14.03 C1.14.11
+C1.14.01 C1.14.04 C1.14.06 C1.14.08 C1.14.12
+C1.14.02 C1.14.00 C1.14.05 C1.14.11 C1.14.13
+C1.14.03 C1.14.00 C1.14.07 C1.14.09 C1.14.11
+C1.14.04 C1.14.01 C1.14.08 C1.14.10
+C1.14.05 C1.14.02 C1.14.11 C1.14.13 C1.15.00 C1.15.08
+C1.14.06 C1.13.06 C1.13.12 C1.14.01 C1.14.12 C1.14.17
+C1.14.07 C1.14.03 C1.14.09 C1.14.10 C1.14.14
+C1.14.08 C1.14.01 C1.14.04 C1.14.10 C1.14.12 C1.14.15
+C1.14.09 C1.14.03 C1.14.07 C1.14.11 C1.14.14 C1.14.16
+C1.14.10 C1.14.04 C1.14.07 C1.14.08 C1.14.12 C1.14.14 C1.14.15 C1.14.18
+C1.14.11 C1.14.00 C1.14.02 C1.14.03 C1.14.05 C1.14.09 C1.14.13 C1.14.14 C1.14.16 C1.14.19
+C1.14.12 C1.13.12 C1.14.01 C1.14.06 C1.14.08 C1.14.10 C1.14.15 C1.14.17 C1.14.20
+C1.14.13 C1.14.02 C1.14.05 C1.14.11 C1.14.16 C1.14.19 C1.14.21 C1.15.07 C1.15.08 C1.15.18
+C1.14.14 C1.14.07 C1.14.09 C1.14.10 C1.14.11 C1.14.15 C1.14.16 C1.14.18 C1.14.22
+C1.14.15 C1.14.08 C1.14.10 C1.14.12 C1.14.14 C1.14.17 C1.14.18 C1.14.20 C1.14.23
+C1.14.16 C1.14.09 C1.14.11 C1.14.13 C1.14.14 C1.14.18 C1.14.19 C1.14.22 C1.14.24
+C1.14.17 C1.13.12 C1.13.16 C1.13.20 C1.14.06 C1.14.12 C1.14.15 C1.14.20 C1.14.25
+C1.14.18 C1.14.10 C1.14.14 C1.14.15 C1.14.16 C1.14.20 C1.14.22 C1.14.23 C1.14.27
+C1.14.19 C1.14.11 C1.14.13 C1.14.16 C1.14.21 C1.14.22 C1.14.24 C1.14.26 C1.15.18
+C1.14.20 C1.13.20 C1.14.12 C1.14.15 C1.14.17 C1.14.18 C1.14.23 C1.14.25 C1.14.28
+C1.14.21 C1.14.13 C1.14.19 C1.14.24 C1.14.26 C1.15.18 C1.15.19 C1.15.24 C1.15.29
+C1.14.22 C1.14.14 C1.14.16 C1.14.18 C1.14.19 C1.14.23 C1.14.24 C1.14.27 C1.14.29
+C1.14.23 C1.14.15 C1.14.18 C1.14.20 C1.14.22 C1.14.25 C1.14.27 C1.14.28 C1.14.30
+C1.14.24 C1.14.16 C1.14.19 C1.14.21 C1.14.22 C1.14.26 C1.14.27 C1.14.29 C1.14.31
+C1.14.25 C1.13.20 C1.13.23 C1.13.27 C1.14.17 C1.14.20 C1.14.23 C1.14.28 C1.14.32
+C1.14.26 C1.14.19 C1.14.21 C1.14.24 C1.14.29 C1.14.31 C1.14.33 C1.15.24 C1.15.29
+C1.14.27 C1.14.18 C1.14.22 C1.14.23 C1.14.24 C1.14.28 C1.14.29 C1.14.30 C1.14.34
+C1.14.28 C1.13.27 C1.14.20 C1.14.23 C1.14.25 C1.14.27 C1.14.30 C1.14.32 C1.14.35
+C1.14.29 C1.14.22 C1.14.24 C1.14.26 C1.14.27 C1.14.30 C1.14.31 C1.14.34 C1.14.36
+C1.14.30 C1.14.23 C1.14.27 C1.14.28 C1.14.29 C1.14.32 C1.14.34 C1.14.35 C1.14.37
+C1.14.31 C1.14.24 C1.14.26 C1.14.29 C1.14.33 C1.14.34 C1.14.36 C1.14.38 C1.15.29
+C1.14.32 C1.13.27 C1.13.30 C1.13.33 C1.13.35 C1.14.25 C1.14.28 C1.14.30 C1.14.35
+C1.14.33 C1.14.26 C1.14.31 C1.14.36 C1.14.38 C1.15.29 C1.15.30 C1.15.34 C1.15.38
+C1.14.34 C1.14.27 C1.14.29 C1.14.30 C1.14.31 C1.14.35 C1.14.36 C1.14.37 C1.14.39
+C1.14.35 C1.13.33 C1.13.35 C1.14.28 C1.14.30 C1.14.32 C1.14.34 C1.14.37 C1.14.40
+C1.14.36 C1.14.29 C1.14.31 C1.14.33 C1.14.34 C1.14.37 C1.14.38 C1.14.39 C1.14.41
+C1.14.37 C1.13.35 C1.14.30 C1.14.34 C1.14.35 C1.14.36 C1.14.39 C1.14.40 C1.14.42
+C1.14.38 C1.14.31 C1.14.33 C1.14.36 C1.14.39 C1.14.41 C1.15.34 C1.15.38 C1.15.42
+C1.14.39 C1.14.34 C1.14.36 C1.14.37 C1.14.38 C1.14.40 C1.14.41 C1.14.42 C1.14.43
+C1.14.40 C1.13.35 C1.13.39 C1.13.42 C1.14.35 C1.14.37 C1.14.39 C1.14.42 C1.14.44
+C1.14.41 C1.14.36 C1.14.38 C1.14.39 C1.14.42 C1.14.43 C1.14.45 C1.15.38 C1.15.42
+C1.14.42 C1.13.42 C1.14.37 C1.14.39 C1.14.40 C1.14.41 C1.14.43 C1.14.44 C1.14.46
+C1.14.43 C1.14.39 C1.14.41 C1.14.42 C1.14.44 C1.14.45 C1.14.46 C1.14.47 C1.15.42
+C1.14.44 C1.13.42 C1.13.44 C1.13.46 C1.14.40 C1.14.42 C1.14.43 C1.14.46 C1.14.48
+C1.14.45 C1.14.41 C1.14.43 C1.14.46 C1.14.47 C1.15.42 C1.15.43 C1.15.46 C1.15.49
+C1.14.46 C1.13.46 C1.14.42 C1.14.43 C1.14.44 C1.14.45 C1.14.47 C1.14.48 C1.14.49
+C1.14.47 C1.14.43 C1.14.45 C1.14.46 C1.14.48 C1.14.49 C1.14.50 C1.15.46 C1.15.49
+C1.14.48 C1.13.46 C1.13.48 C1.13.50 C1.14.44 C1.14.46 C1.14.47 C1.14.49 C1.14.51
+C1.14.49 C1.13.50 C1.14.46 C1.14.47 C1.14.48 C1.14.50 C1.14.51 C1.14.52 C1.15.49
+C1.14.50 C1.14.47 C1.14.49 C1.14.51 C1.14.52 C1.14.53 C1.14.54 C1.15.49 C1.15.50 C1.15.52
+C1.14.51 C1.13.50 C1.13.51 C1.13.52 C1.13.54 C1.14.48 C1.14.49 C1.14.50 C1.14.52 C1.14.55 C1.14.57
+C1.14.52 C1.14.49 C1.14.50 C1.14.51 C1.14.53 C1.14.55 C1.14.56
+C1.14.53 C1.14.50 C1.14.52 C1.14.54 C1.14.55 C1.14.56 C1.14.58 C1.15.52
+C1.14.54 C1.14.50 C1.14.53 C1.14.56 C1.14.58 C1.15.52 C1.15.54 C1.15.57
+C1.14.55 C1.13.54 C1.14.51 C1.14.52 C1.14.53 C1.14.56 C1.14.57 C1.14.59
+C1.14.56 C1.14.52 C1.14.53 C1.14.54 C1.14.55 C1.14.57 C1.14.58 C1.14.59 C1.14.60
+C1.14.57 C1.13.54 C1.13.56 C1.13.58 C1.14.51 C1.14.55 C1.14.56 C1.14.59 C1.14.61
+C1.14.58 C1.14.53 C1.14.54 C1.14.56 C1.14.59 C1.14.60 C1.15.54 C1.15.57 C1.15.60
+C1.14.59 C1.13.58 C1.14.55 C1.14.56 C1.14.57 C1.14.58 C1.14.60 C1.14.61 C1.14.62
+C1.14.60 C1.14.56 C1.14.58 C1.14.59 C1.14.61 C1.14.62 C1.15.57 C1.15.60
+C1.14.61 C1.13.58 C1.13.60 C1.13.61 C1.14.57 C1.14.59 C1.14.60 C1.14.62
+C1.14.62 C1.13.61 C1.14.59 C1.14.60 C1.14.61 C1.15.60
+C1.15.00 C1.14.05 C1.15.07 C1.15.08
+C1.15.01 C1.15.02 C1.15.04 C1.15.06 C1.15.10 C1.15.11
+C1.15.02 C1.00.01 C1.00.11 C1.15.01 C1.15.11 C1.15.12
+C1.15.03 C1.15.07 C1.15.13 C1.15.14
+C1.15.04 C1.15.01 C1.15.05 C1.15.06 C1.15.09
+C1.15.05 C1.15.04 C1.15.09 C1.15.14 C1.15.15
+C1.15.06 C1.15.01 C1.15.04 C1.15.09 C1.15.10 C1.15.15 C1.15.16
+C1.15.07 C1.14.13 C1.15.00 C1.15.03 C1.15.08 C1.15.13 C1.15.18 C1.15.19
+C1.15.08 C1.14.05 C1.14.13 C1.15.00 C1.15.07 C1.15.18
+C1.15.09 C1.15.04 C1.15.05 C1.15.06 C1.15.15 C1.15.16
+C1.15.10 C1.15.01 C1.15.06 C1.15.11 C1.15.16 C1.15.17
+C1.15.11 C1.15.01 C1.15.02 C1.15.10 C1.15.12 C1.15.16 C1.15.17
+C1.15.12 C1.00.01 C1.00.11 C1.00.16 C1.15.02 C1.15.11 C1.15.17
+C1.15.13 C1.15.03 C1.15.07 C1.15.14 C1.15.18 C1.15.19 C1.15.20
+C1.15.14 C1.15.03 C1.15.05 C1.15.13 C1.15.15 C1.15.19 C1.15.20 C1.15.21
+C1.15.15 C1.15.05 C1.15.06 C1.15.09 C1.15.14 C1.15.16 C1.15.20 C1.15.21 C1.15.22
+C1.15.16 C1.15.06 C1.15.09 C1.15.10 C1.15.11 C1.15.15 C1.15.17 C1.15.21 C1.15.22 C1.15.23
+C1.15.17 C1.00.11 C1.00.16 C1.00.22 C1.15.10 C1.15.11 C1.15.12 C1.15.16 C1.15.22 C1.15.23
+C1.15.18 C1.14.13 C1.14.19 C1.14.21 C1.15.07 C1.15.08 C1.15.13 C1.15.19 C1.15.24
+C1.15.19 C1.14.21 C1.15.07 C1.15.13 C1.15.14 C1.15.18 C1.15.20 C1.15.24 C1.15.25
+C1.15.20 C1.15.13 C1.15.14 C1.15.15 C1.15.19 C1.15.21 C1.15.24 C1.15.25 C1.15.26
+C1.15.21 C1.15.14 C1.15.15 C1.15.16 C1.15.20 C1.15.22 C1.15.25 C1.15.26 C1.15.27
+C1.15.22 C1.15.15 C1.15.16 C1.15.17 C1.15.21 C1.15.23 C1.15.26 C1.15.27 C1.15.28
+C1.15.23 C1.00.16 C1.00.22 C1.00.27 C1.15.16 C1.15.17 C1.15.22 C1.15.27 C1.15.28
+C1.15.24 C1.14.21 C1.14.26 C1.15.18 C1.15.19 C1.15.20 C1.15.25 C1.15.29 C1.15.30
+C1.15.25 C1.15.19 C1.15.20 C1.15.21 C1.15.24 C1.15.26 C1.15.29 C1.15.30 C1.15.31
+C1.15.26 C1.15.20 C1.15.21 C1.15.22 C1.15.25 C1.15.27 C1.15.30 C1.15.31 C1.15.32
+C1.15.27 C1.15.21 C1.15.22 C1.15.23 C1.15.26 C1.15.28 C1.15.31 C1.15.32 C1.15.33
+C1.15.28 C1.00.22 C1.00.27 C1.00.32 C1.15.22 C1.15.23 C1.15.27 C1.15.32 C1.15.33
+C1.15.29 C1.14.21 C1.14.26 C1.14.31 C1.14.33 C1.15.24 C1.15.25 C1.15.30 C1.15.34
+C1.15.30 C1.14.33 C1.15.24 C1.15.25 C1.15.26 C1.15.29 C1.15.31 C1.15.34 C1.15.35
+C1.15.31 C1.15.25 C1.15.26 C1.15.27 C1.15.30 C1.15.32 C1.15.34 C1.15.35 C1.15.36
+C1.15.32 C1.15.26 C1.15.27 C1.15.28 C1.15.31 C1.15.33 C1.15.35 C1.15.36 C1.15.37
+C1.15.33 C1.00.27 C1.00.32 C1.00.36 C1.15.27 C1.15.28 C1.15.32 C1.15.36 C1.15.37
+C1.15.34 C1.14.33 C1.14.38 C1.15.29 C1.15.30 C1.15.31 C1.15.35 C1.15.38 C1.15.39
+C1.15.35 C1.15.30 C1.15.31 C1.15.32 C1.15.34 C1.15.36 C1.15.38 C1.15.39 C1.15.40
+C1.15.36 C1.15.31 C1.15.32 C1.15.33 C1.15.35 C1.15.37 C1.15.39 C1.15.40 C1.15.41
+C1.15.37 C1.00.32 C1.00.36 C1.00.40 C1.15.32 C1.15.33 C1.15.36 C1.15.40 C1.15.41
+C1.15.38 C1.14.33 C1.14.38 C1.14.41 C1.15.34 C1.15.35 C1.15.39 C1.15.42 C1.15.43
+C1.15.39 C1.15.34 C1.15.35 C1.15.36 C1.15.38 C1.15.40 C1.15.42 C1.15.43 C1.15.44
+C1.15.40 C1.15.35 C1.15.36 C1.15.37 C1.15.39 C1.15.41 C1.15.43 C1.15.44 C1.15.45
+C1.15.41 C1.00.36 C1.00.40 C1.00.44 C1.15.36 C1.15.37 C1.15.40 C1.15.44 C1.15.45
+C1.15.42 C1.14.38 C1.14.41 C1.14.43 C1.14.45 C1.15.38 C1.15.39 C1.15.43 C1.15.46
+C1.15.43 C1.14.45 C1.15.38 C1.15.39 C1.15.40 C1.15.42 C1.15.44 C1.15.46 C1.15.47
+C1.15.44 C1.15.39 C1.15.40 C1.15.41 C1.15.43 C1.15.45 C1.15.46 C1.15.47 C1.15.48
+C1.15.45 C1.00.40 C1.00.44 C1.00.47 C1.15.40 C1.15.41 C1.15.44 C1.15.47 C1.15.48
+C1.15.46 C1.14.45 C1.14.47 C1.15.42 C1.15.43 C1.15.44 C1.15.47 C1.15.49 C1.15.50
+C1.15.47 C1.15.43 C1.15.44 C1.15.45 C1.15.46 C1.15.48 C1.15.49 C1.15.50 C1.15.51
+C1.15.48 C1.00.44 C1.00.47 C1.00.50 C1.15.44 C1.15.45 C1.15.47 C1.15.50 C1.15.51
+C1.15.49 C1.14.45 C1.14.47 C1.14.49 C1.14.50 C1.15.46 C1.15.47 C1.15.50 C1.15.52
+C1.15.50 C1.14.50 C1.15.46 C1.15.47 C1.15.48 C1.15.49 C1.15.51 C1.15.52 C1.15.53
+C1.15.51 C1.00.47 C1.00.50 C1.00.52 C1.15.47 C1.15.48 C1.15.50 C1.15.52 C1.15.53
+C1.15.52 C1.14.50 C1.14.53 C1.14.54 C1.15.49 C1.15.50 C1.15.51 C1.15.53 C1.15.54 C1.15.55
+C1.15.53 C1.00.50 C1.00.52 C1.00.56 C1.15.50 C1.15.51 C1.15.52 C1.15.54 C1.15.55 C1.15.56
+C1.15.54 C1.14.54 C1.14.58 C1.15.52 C1.15.53 C1.15.55 C1.15.57 C1.15.58
+C1.15.55 C1.15.52 C1.15.53 C1.15.54 C1.15.56 C1.15.57 C1.15.58 C1.15.59
+C1.15.56 C1.00.52 C1.00.56 C1.00.59 C1.15.53 C1.15.55 C1.15.58 C1.15.59
+C1.15.57 C1.14.54 C1.14.58 C1.14.60 C1.15.54 C1.15.55 C1.15.58 C1.15.60 C1.15.61
+C1.15.58 C1.15.54 C1.15.55 C1.15.56 C1.15.57 C1.15.59 C1.15.60 C1.15.61 C1.15.62
+C1.15.59 C1.00.56 C1.00.59 C1.00.62 C1.15.55 C1.15.56 C1.15.58 C1.15.61 C1.15.62
+C1.15.60 C1.14.58 C1.14.60 C1.14.62 C1.15.57 C1.15.58 C1.15.61
+C1.15.61 C1.15.57 C1.15.58 C1.15.59 C1.15.60 C1.15.62
+C1.15.62 C1.00.59 C1.00.62 C1.15.58 C1.15.59 C1.15.61
+C2.00.00 C2.00.01 C2.00.05 C2.00.06
+C2.00.01 C2.00.00 C2.00.02 C2.00.05 C2.00.06
+C2.00.02 C2.00.01 C2.00.06 C2.15.01 C2.15.06
+C2.00.03 C2.00.04 C2.00.07 C2.00.08 C2.01.04
+C2.00.04 C2.00.03 C2.00.05 C2.00.07 C2.00.08 C2.00.09
+C2.00.05 C2.00.00 C2.00.01 C2.00.04 C2.00.06 C2.00.08 C2.00.09 C2.00.10
+C2.00.06 C2.00.00 C2.00.01 C2.00.02 C2.00.05 C2.00.09 C2.00.10 C2.15.01 C2.15.06 C2.15.10
+C2.00.07 C2.00.03 C2.00.04 C2.00.08 C2.00.11 C2.01.04 C2.01.07 C2.01.10
+C2.00.08 C2.00.03 C2.00.04 C2.00.05 C2.00.07 C2.00.09 C2.00.11 C2.00.12 C2.01.10
+C2.00.09 C2.00.04 C2.00.05 C2.00.06 C2.00.08 C2.00.10 C2.00.11 C2.00.12 C2.00.13
+C2.00.10 C2.00.05 C2.00.06 C2.00.09 C2.00.12 C2.00.13 C2.15.06 C2.15.10 C2.15.13
+C2.00.11 C2.00.07 C2.00.08 C2.00.09 C2.00.12 C2.00.14 C2.00.15 C2.01.10 C2.01.13
+C2.00.12 C2.00.08 C2.00.09 C2.00.10 C2.00.11 C2.00.13 C2.00.14 C2.00.15 C2.00.16
+C2.00.13 C2.00.09 C2.00.10 C2.00.12 C2.00.15 C2.00.16 C2.15.10 C2.15.13 C2.15.16
+C2.00.14 C2.00.11 C2.00.12 C2.00.15 C2.00.17 C2.00.18 C2.01.10 C2.01.13 C2.01.16
+C2.00.15 C2.00.11 C2.00.12 C2.00.13 C2.00.14 C2.00.16 C2.00.17 C2.00.18 C2.00.19
+C2.00.16 C2.00.12 C2.00.13 C2.00.15 C2.00.18 C2.00.19 C2.15.13 C2.15.16 C2.15.19
+C2.00.17 C2.00.14 C2.00.15 C2.00.18 C2.00.20 C2.01.13 C2.01.16 C2.01.18 C2.01.20
+C2.00.18 C2.00.14 C2.00.15 C2.00.16 C2.00.17 C2.00.19 C2.00.20 C2.00.21 C2.01.20
+C2.00.19 C2.00.15 C2.00.16 C2.00.18 C2.00.20 C2.00.21 C2.15.16 C2.15.19 C2.15.21
+C2.00.20 C2.00.17 C2.00.18 C2.00.19 C2.00.21 C2.00.22 C2.00.23 C2.01.20 C2.01.22
+C2.00.21 C2.00.18 C2.00.19 C2.00.20 C2.00.22 C2.00.23 C2.15.19 C2.15.21 C2.15.23
+C2.00.22 C2.00.20 C2.00.21 C2.00.23 C2.00.24 C2.00.25 C2.01.20 C2.01.22 C2.01.24
+C2.00.23 C2.00.20 C2.00.21 C2.00.22 C2.00.24 C2.00.25 C2.15.21 C2.15.23 C2.15.25
+C2.00.24 C2.00.22 C2.00.23 C2.00.25 C2.00.26 C2.01.22 C2.01.24 C2.01.25 C2.01.26
+C2.00.25 C2.00.22 C2.00.23 C2.00.24 C2.00.26 C2.01.26 C2.15.23 C2.15.25 C2.15.26
+C2.00.26 C2.00.24 C2.00.25 C2.00.27 C2.01.26 C2.01.28 C2.15.25 C2.15.26 C2.15.27
+C2.00.27 C2.00.26 C2.00.28 C2.00.29 C2.01.26 C2.01.28 C2.01.30 C2.15.26 C2.15.27 C2.15.29
+C2.00.28 C2.00.27 C2.00.29 C2.01.28 C2.01.30 C2.01.31
+C2.00.29 C2.00.27 C2.00.28 C2.15.27 C2.15.29
+C2.01.00 C2.01.05 C2.02.00 C2.02.06
+C2.01.01 C2.01.03 C2.01.05
+C2.01.02 C2.01.04 C2.01.06 C2.01.07
+C2.01.03 C2.01.01 C2.01.05 C2.01.06 C2.01.09
+C2.01.04 C2.00.03 C2.00.07 C2.01.02 C2.01.06 C2.01.07 C2.01.10
+C2.01.05 C2.01.00 C2.01.01 C2.01.03 C2.01.06 C2.01.08 C2.01.09 C2.01.12 C2.02.06
+C2.01.06 C2.01.02 C2.01.03 C2.01.04 C2.01.05 C2.01.07 C2.01.09 C2.01.11
+C2.01.07 C2.00.07 C2.01.02 C2.01.04 C2.01.06 C2.01.09 C2.01.10 C2.01.11 C2.01.13
+C2.01.08 C2.01.05 C2.01.09 C2.01.12 C2.01.14 C2.02.06 C2.02.09 C2.02.11
+C2.01.09 C2.01.03 C2.01.05 C2.01.06 C2.01.07 C2.01.08 C2.01.11 C2.01.12 C2.01.15
+C2.01.10 C2.00.07 C2.00.08 C2.00.11 C2.00.14 C2.01.04 C2.01.07 C2.01.11 C2.01.13
+C2.01.11 C2.01.06 C2.01.07 C2.01.09 C2.01.10 C2.01.12 C2.01.13 C2.01.15 C2.01.16
+C2.01.12 C2.01.05 C2.01.08 C2.01.09 C2.01.11 C2.01.14 C2.01.15 C2.01.17 C2.02.11
+C2.01.13 C2.00.11 C2.00.14 C2.00.17 C2.01.07 C2.01.10 C2.01.11 C2.01.15 C2.01.16
+C2.01.14 C2.01.08 C2.01.12 C2.01.15 C2.01.17 C2.01.19 C2.02.11 C2.02.14 C2.02.16
+C2.01.15 C2.01.09 C2.01.11 C2.01.12 C2.01.13 C2.01.14 C2.01.16 C2.01.17 C2.01.18
+C2.01.16 C2.00.14 C2.00.17 C2.01.11 C2.01.13 C2.01.15 C2.01.17 C2.01.18 C2.01.20
+C2.01.17 C2.01.12 C2.01.14 C2.01.15 C2.01.16 C2.01.18 C2.01.19 C2.01.21 C2.02.16
+C2.01.18 C2.00.17 C2.01.15 C2.01.16 C2.01.17 C2.01.19 C2.01.20 C2.01.21 C2.01.22
+C2.01.19 C2.01.14 C2.01.17 C2.01.18 C2.01.21 C2.01.23 C2.02.16 C2.02.18 C2.02.20
+C2.01.20 C2.00.17 C2.00.18 C2.00.20 C2.00.22 C2.01.16 C2.01.18 C2.01.21 C2.01.22
+C2.01.21 C2.01.17 C2.01.18 C2.01.19 C2.01.20 C2.01.22 C2.01.23 C2.01.24 C2.02.20
+C2.01.22 C2.00.20 C2.00.22 C2.00.24 C2.01.18 C2.01.20 C2.01.21 C2.01.23 C2.01.24
+C2.01.23 C2.01.19 C2.01.21 C2.01.22 C2.01.24 C2.01.25 C2.02.20 C2.02.22 C2.02.24
+C2.01.24 C2.00.22 C2.00.24 C2.01.21 C2.01.22 C2.01.23 C2.01.25 C2.01.26 C2.02.24
+C2.01.25 C2.00.24 C2.01.23 C2.01.24 C2.01.26 C2.01.27 C2.01.28 C2.02.24 C2.02.25
+C2.01.26 C2.00.24 C2.00.25 C2.00.26 C2.00.27 C2.01.24 C2.01.25 C2.01.27 C2.01.28
+C2.01.27 C2.01.25 C2.01.26 C2.01.28 C2.01.29 C2.02.24 C2.02.25 C2.02.26 C2.02.27
+C2.01.28 C2.00.26 C2.00.27 C2.00.28 C2.01.25 C2.01.26 C2.01.27 C2.01.29 C2.01.30 C2.02.27
+C2.01.29 C2.01.27 C2.01.28 C2.01.30 C2.01.31 C2.02.27 C2.02.29
+C2.01.30 C2.00.27 C2.00.28 C2.01.28 C2.01.29 C2.01.31 C2.02.29
+C2.01.31 C2.00.28 C2.01.29 C2.01.30 C2.02.29 C2.02.30
+C2.02.00 C2.01.00 C2.02.03 C2.02.06
+C2.02.01 C2.02.02 C2.02.07 C2.02.08
+C2.02.02 C2.02.01 C2.02.04 C2.02.07 C2.02.08 C2.03.01
+C2.02.03 C2.02.00 C2.02.05 C2.02.06 C2.02.09
+C2.02.04 C2.02.02 C2.02.08 C2.03.01 C2.03.06
+C2.02.05 C2.02.03 C2.02.07 C2.02.09 C2.02.10
+C2.02.06 C2.01.00 C2.01.05 C2.01.08 C2.02.00 C2.02.03 C2.02.09 C2.02.11
+C2.02.07 C2.02.01 C2.02.02 C2.02.05 C2.02.08 C2.02.09 C2.02.10 C2.02.12
+C2.02.08 C2.02.01 C2.02.02 C2.02.04 C2.02.07 C2.02.10 C2.02.12 C2.02.13 C2.03.01 C2.03.06
+C2.02.09 C2.01.08 C2.02.03 C2.02.05 C2.02.06 C2.02.07 C2.02.10 C2.02.11 C2.02.14
+C2.02.10 C2.02.05 C2.02.07 C2.02.08 C2.02.09 C2.02.11 C2.02.12 C2.02.14 C2.02.15
+C2.02.11 C2.01.08 C2.01.12 C2.01.14 C2.02.06 C2.02.09 C2.02.10 C2.02.14 C2.02.16
+C2.02.12 C2.02.07 C2.02.08 C2.02.10 C2.02.13 C2.02.14 C2.02.15 C2.02.17 C2.03.06
+C2.02.13 C2.02.08 C2.02.12 C2.02.15 C2.02.17 C2.03.06 C2.03.07 C2.03.11 C2.03.15
+C2.02.14 C2.01.14 C2.02.09 C2.02.10 C2.02.11 C2.02.12 C2.02.15 C2.02.16 C2.02.18
+C2.02.15 C2.02.10 C2.02.12 C2.02.13 C2.02.14 C2.02.16 C2.02.17 C2.02.18 C2.02.19
+C2.02.16 C2.01.14 C2.01.17 C2.01.19 C2.02.11 C2.02.14 C2.02.15 C2.02.18 C2.02.20
+C2.02.17 C2.02.12 C2.02.13 C2.02.15 C2.02.18 C2.02.19 C2.02.21 C2.03.11 C2.03.15
+C2.02.18 C2.01.19 C2.02.14 C2.02.15 C2.02.16 C2.02.17 C2.02.19 C2.02.20 C2.02.22
+C2.02.19 C2.02.15 C2.02.17 C2.02.18 C2.02.20 C2.02.21 C2.02.22 C2.02.23 C2.03.15
+C2.02.20 C2.01.19 C2.01.21 C2.01.23 C2.02.16 C2.02.18 C2.02.19 C2.02.22 C2.02.24
+C2.02.21 C2.02.17 C2.02.19 C2.02.22 C2.02.23 C2.03.15 C2.03.16 C2.03.19 C2.03.22
+C2.02.22 C2.01.23 C2.02.18 C2.02.19 C2.02.20 C2.02.21 C2.02.23 C2.02.24 C2.02.25
+C2.02.23 C2.02.19 C2.02.21 C2.02.22 C2.02.24 C2.02.25 C2.02.26 C2.03.19 C2.03.22
+C2.02.24 C2.01.23 C2.01.24 C2.01.25 C2.01.27 C2.02.20 C2.02.22 C2.02.23 C2.02.25
+C2.02.25 C2.01.25 C2.01.27 C2.02.22 C2.02.23 C2.02.24 C2.02.26 C2.02.27 C2.03.22
+C2.02.26 C2.01.27 C2.02.23 C2.02.25 C2.02.27 C2.02.28 C2.03.22 C2.03.23 C2.03.25
+C2.02.27 C2.01.27 C2.01.28 C2.01.29 C2.02.25 C2.02.26 C2.02.28 C2.02.29 C2.02.30 C2.03.25
+C2.02.28 C2.02.26 C2.02.27 C2.02.29 C2.02.30 C2.02.31 C2.03.25 C2.03.26 C2.03.27 C2.03.29
+C2.02.29 C2.01.29 C2.01.30 C2.01.31 C2.02.27 C2.02.28 C2.02.30
+C2.02.30 C2.01.31 C2.02.27 C2.02.28 C2.02.29 C2.02.31
+C2.02.31 C2.02.28 C2.02.30 C2.03.29 C2.03.30
+C2.03.00 C2.03.03 C2.03.04 C2.03.05 C2.04.00 C2.04.05
+C2.03.01 C2.02.02 C2.02.04 C2.02.08 C2.03.02 C2.03.06 C2.03.07
+C2.03.02 C2.03.01 C2.03.03 C2.03.06 C2.03.07 C2.03.08
+C2.03.03 C2.03.00 C2.03.02 C2.03.04 C2.03.07 C2.03.08 C2.03.09
+C2.03.04 C2.03.00 C2.03.03 C2.03.05 C2.03.08 C2.03.09 C2.03.10
+C2.03.05 C2.03.00 C2.03.04 C2.03.09 C2.03.10 C2.04.00 C2.04.05 C2.04.10
+C2.03.06 C2.02.04 C2.02.08 C2.02.12 C2.02.13 C2.03.01 C2.03.02 C2.03.07 C2.03.11
+C2.03.07 C2.02.13 C2.03.01 C2.03.02 C2.03.03 C2.03.06 C2.03.08 C2.03.11 C2.03.12
+C2.03.08 C2.03.02 C2.03.03 C2.03.04 C2.03.07 C2.03.09 C2.03.11 C2.03.12 C2.03.13
+C2.03.09 C2.03.03 C2.03.04 C2.03.05 C2.03.08 C2.03.10 C2.03.12 C2.03.13 C2.03.14
+C2.03.10 C2.03.04 C2.03.05 C2.03.09 C2.03.13 C2.03.14 C2.04.05 C2.04.10 C2.04.14
+C2.03.11 C2.02.13 C2.02.17 C2.03.06 C2.03.07 C2.03.08 C2.03.12 C2.03.15 C2.03.16
+C2.03.12 C2.03.07 C2.03.08 C2.03.09 C2.03.11 C2.03.13 C2.03.15 C2.03.16 C2.03.17
+C2.03.13 C2.03.08 C2.03.09 C2.03.10 C2.03.12 C2.03.14 C2.03.16 C2.03.17 C2.03.18
+C2.03.14 C2.03.09 C2.03.10 C2.03.13 C2.03.17 C2.03.18 C2.04.10 C2.04.14 C2.04.18
+C2.03.15 C2.02.13 C2.02.17 C2.02.19 C2.02.21 C2.03.11 C2.03.12 C2.03.16 C2.03.19
+C2.03.16 C2.02.21 C2.03.11 C2.03.12 C2.03.13 C2.03.15 C2.03.17 C2.03.19 C2.03.20
+C2.03.17 C2.03.12 C2.03.13 C2.03.14 C2.03.16 C2.03.18 C2.03.19 C2.03.20 C2.03.21
+C2.03.18 C2.03.13 C2.03.14 C2.03.17 C2.03.20 C2.03.21 C2.04.14 C2.04.18 C2.04.21
+C2.03.19 C2.02.21 C2.02.23 C2.03.15 C2.03.16 C2.03.17 C2.03.20 C2.03.22 C2.03.23
+C2.03.20 C2.03.16 C2.03.17 C2.03.18 C2.03.19 C2.03.21 C2.03.22 C2.03.23 C2.03.24
+C2.03.21 C2.03.17 C2.03.18 C2.03.20 C2.03.23 C2.03.24 C2.04.18 C2.04.21 C2.04.24
+C2.03.22 C2.02.21 C2.02.23 C2.02.25 C2.02.26 C2.03.19 C2.03.20 C2.03.23 C2.03.25
+C2.03.23 C2.02.26 C2.03.19 C2.03.20 C2.03.21 C2.03.22 C2.03.24 C2.03.25 C2.03.26
+C2.03.24 C2.03.20 C2.03.21 C2.03.23 C2.03.25 C2.03.26 C2.04.21 C2.04.24 C2.04.26
+C2.03.25 C2.02.26 C2.02.27 C2.02.28 C2.03.22 C2.03.23 C2.03.24 C2.03.26 C2.03.27
+C2.03.26 C2.02.28 C2.03.23 C2.03.24 C2.03.25 C2.03.27 C2.03.28 C2.04.24 C2.04.26 C2.04.28
+C2.03.27 C2.02.28 C2.03.25 C2.03.26 C2.03.28 C2.03.29 C2.03.30
+C2.03.28 C2.03.26 C2.03.27 C2.03.29 C2.03.30 C2.04.26 C2.04.28 C2.04.30
+C2.03.29 C2.02.28 C2.02.31 C2.03.27 C2.03.28 C2.03.30
+C2.03.30 C2.02.31 C2.03.27 C2.03.28 C2.03.29 C2.04.28 C2.04.30
+C2.04.00 C2.03.00 C2.03.05 C2.04.03 C2.04.04 C2.04.05
+C2.04.01 C2.04.02 C2.04.06 C2.04.07 C2.05.02 C2.05.04 C2.05.08
+C2.04.02 C2.04.01 C2.04.03 C2.04.06 C2.04.07 C2.04.08
+C2.04.03 C2.04.00 C2.04.02 C2.04.04 C2.04.07 C2.04.08 C2.04.09
+C2.04.04 C2.04.00 C2.04.03 C2.04.05 C2.04.08 C2.04.09 C2.04.10
+C2.04.05 C2.03.00 C2.03.05 C2.03.10 C2.04.00 C2.04.04 C2.04.09 C2.04.10
+C2.04.06 C2.04.01 C2.04.02 C2.04.07 C2.04.11 C2.05.04 C2.05.08 C2.05.12 C2.05.13
+C2.04.07 C2.04.01 C2.04.02 C2.04.03 C2.04.06 C2.04.08 C2.04.11 C2.04.12 C2.05.13
+C2.04.08 C2.04.02 C2.04.03 C2.04.04 C2.04.07 C2.04.09 C2.04.11 C2.04.12 C2.04.13
+C2.04.09 C2.04.03 C2.04.04 C2.04.05 C2.04.08 C2.04.10 C2.04.12 C2.04.13 C2.04.14
+C2.04.10 C2.03.05 C2.03.10 C2.03.14 C2.04.04 C2.04.05 C2.04.09 C2.04.13 C2.04.14
+C2.04.11 C2.04.06 C2.04.07 C2.04.08 C2.04.12 C2.04.15 C2.04.16 C2.05.13 C2.05.17
+C2.04.12 C2.04.07 C2.04.08 C2.04.09 C2.04.11 C2.04.13 C2.04.15 C2.04.16 C2.04.17
+C2.04.13 C2.04.08 C2.04.09 C2.04.10 C2.04.12 C2.04.14 C2.04.16 C2.04.17 C2.04.18
+C2.04.14 C2.03.10 C2.03.14 C2.03.18 C2.04.09 C2.04.10 C2.04.13 C2.04.17 C2.04.18
+C2.04.15 C2.04.11 C2.04.12 C2.04.16 C2.04.19 C2.05.13 C2.05.17 C2.05.19 C2.05.21
+C2.04.16 C2.04.11 C2.04.12 C2.04.13 C2.04.15 C2.04.17 C2.04.19 C2.04.20 C2.05.21
+C2.04.17 C2.04.12 C2.04.13 C2.04.14 C2.04.16 C2.04.18 C2.04.19 C2.04.20 C2.04.21
+C2.04.18 C2.03.14 C2.03.18 C2.03.21 C2.04.13 C2.04.14 C2.04.17 C2.04.20 C2.04.21
+C2.04.19 C2.04.15 C2.04.16 C2.04.17 C2.04.20 C2.04.22 C2.04.23 C2.05.21 C2.05.23
+C2.04.20 C2.04.16 C2.04.17 C2.04.18 C2.04.19 C2.04.21 C2.04.22 C2.04.23 C2.04.24
+C2.04.21 C2.03.18 C2.03.21 C2.03.24 C2.04.17 C2.04.18 C2.04.20 C2.04.23 C2.04.24
+C2.04.22 C2.04.19 C2.04.20 C2.04.23 C2.04.25 C2.05.21 C2.05.23 C2.05.25 C2.05.26
+C2.04.23 C2.04.19 C2.04.20 C2.04.21 C2.04.22 C2.04.24 C2.04.25 C2.04.26 C2.05.26
+C2.04.24 C2.03.21 C2.03.24 C2.03.26 C2.04.20 C2.04.21 C2.04.23 C2.04.25 C2.04.26
+C2.04.25 C2.04.22 C2.04.23 C2.04.24 C2.04.26 C2.04.27 C2.05.26 C2.05.27 C2.05.28
+C2.04.26 C2.03.24 C2.03.26 C2.03.28 C2.04.23 C2.04.24 C2.04.25 C2.04.27 C2.04.28 C2.05.28
+C2.04.27 C2.04.25 C2.04.26 C2.04.28 C2.04.29 C2.04.30 C2.05.28
+C2.04.28 C2.03.26 C2.03.28 C2.03.30 C2.04.26 C2.04.27 C2.04.29 C2.04.30
+C2.04.29 C2.04.27 C2.04.28 C2.04.30 C2.05.28 C2.05.31
+C2.04.30 C2.03.28 C2.03.30 C2.04.27 C2.04.28 C2.04.29
+C2.05.00 C2.05.02 C2.05.07 C2.05.08
+C2.05.01 C2.05.06 C2.06.00 C2.06.03
+C2.05.02 C2.04.01 C2.05.00 C2.05.04 C2.05.07 C2.05.08
+C2.05.03 C2.05.05 C2.05.06 C2.05.09
+C2.05.04 C2.04.01 C2.04.06 C2.05.02 C2.05.08
+C2.05.05 C2.05.03 C2.05.07 C2.05.09 C2.05.10
+C2.05.06 C2.05.01 C2.05.03 C2.05.09 C2.05.11 C2.06.03 C2.06.08
+C2.05.07 C2.05.00 C2.05.02 C2.05.05 C2.05.08 C2.05.09 C2.05.10 C2.05.12
+C2.05.08 C2.04.01 C2.04.06 C2.05.00 C2.05.02 C2.05.04 C2.05.07 C2.05.10 C2.05.12 C2.05.13
+C2.05.09 C2.05.03 C2.05.05 C2.05.06 C2.05.07 C2.05.10 C2.05.11 C2.05.14 C2.06.08
+C2.05.10 C2.05.05 C2.05.07 C2.05.08 C2.05.09 C2.05.11 C2.05.12 C2.05.14 C2.05.15
+C2.05.11 C2.05.06 C2.05.09 C2.05.10 C2.05.14 C2.05.16 C2.06.08 C2.06.12 C2.06.14
+C2.05.12 C2.04.06 C2.05.07 C2.05.08 C2.05.10 C2.05.13 C2.05.14 C2.05.15 C2.05.17
+C2.05.13 C2.04.06 C2.04.07 C2.04.11 C2.04.15 C2.05.08 C2.05.12 C2.05.15 C2.05.17
+C2.05.14 C2.05.09 C2.05.10 C2.05.11 C2.05.12 C2.05.15 C2.05.16 C2.05.18 C2.06.14
+C2.05.15 C2.05.10 C2.05.12 C2.05.13 C2.05.14 C2.05.16 C2.05.17 C2.05.18 C2.05.19
+C2.05.16 C2.05.11 C2.05.14 C2.05.15 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.19
+C2.05.17 C2.04.11 C2.04.15 C2.05.12 C2.05.13 C2.05.15 C2.05.18 C2.05.19 C2.05.21
+C2.05.18 C2.05.14 C2.05.15 C2.05.16 C2.05.17 C2.05.19 C2.05.20 C2.05.22 C2.06.19
+C2.05.19 C2.04.15 C2.05.15 C2.05.17 C2.05.18 C2.05.20 C2.05.21 C2.05.22 C2.05.23
+C2.05.20 C2.05.16 C2.05.18 C2.05.19 C2.05.22 C2.05.24 C2.06.19 C2.06.21 C2.06.23
+C2.05.21 C2.04.15 C2.04.16 C2.04.19 C2.04.22 C2.05.17 C2.05.19 C2.05.22 C2.05.23
+C2.05.22 C2.05.18 C2.05.19 C2.05.20 C2.05.21 C2.05.23 C2.05.24 C2.05.25 C2.06.23
+C2.05.23 C2.04.19 C2.04.22 C2.05.19 C2.05.21 C2.05.22 C2.05.24 C2.05.25 C2.05.26
+C2.05.24 C2.05.20 C2.05.22 C2.05.23 C2.05.25 C2.06.23 C2.06.24 C2.06.25 C2.06.27
+C2.05.25 C2.04.22 C2.05.22 C2.05.23 C2.05.24 C2.05.26 C2.05.27 C2.06.25 C2.06.27
+C2.05.26 C2.04.22 C2.04.23 C2.04.25 C2.05.23 C2.05.25 C2.05.27 C2.05.28 C2.06.27
+C2.05.27 C2.04.25 C2.05.25 C2.05.26 C2.05.28 C2.05.29 C2.05.30 C2.06.27 C2.06.28
+C2.05.28 C2.04.25 C2.04.26 C2.04.27 C2.04.29 C2.05.26 C2.05.27 C2.05.30 C2.05.31
+C2.05.29 C2.05.27 C2.05.30 C2.06.27 C2.06.28 C2.06.29 C2.06.31
+C2.05.30 C2.05.27 C2.05.28 C2.05.29 C2.05.31 C2.06.29 C2.06.31
+C2.05.31 C2.04.29 C2.05.28 C2.05.30
+C2.06.00 C2.05.01 C2.06.03 C2.06.05
+C2.06.01 C2.06.05 C2.06.06
+C2.06.02 C2.06.04 C2.06.06 C2.06.07
+C2.06.03 C2.05.01 C2.05.06 C2.06.00 C2.06.05 C2.06.08
+C2.06.04 C2.06.02 C2.06.06 C2.06.07 C2.06.10 C2.07.03 C2.07.07
+C2.06.05 C2.06.00 C2.06.01 C2.06.03 C2.06.06 C2.06.08 C2.06.09 C2.06.12
+C2.06.06 C2.06.01 C2.06.02 C2.06.04 C2.06.05 C2.06.07 C2.06.09 C2.06.11
+C2.06.07 C2.06.02 C2.06.04 C2.06.06 C2.06.09 C2.06.10 C2.06.11 C2.06.13 C2.07.07
+C2.06.08 C2.05.06 C2.05.09 C2.05.11 C2.06.03 C2.06.05 C2.06.09 C2.06.12 C2.06.14
+C2.06.09 C2.06.05 C2.06.06 C2.06.07 C2.06.08 C2.06.11 C2.06.12 C2.06.15
+C2.06.10 C2.06.04 C2.06.07 C2.06.11 C2.06.13 C2.07.07 C2.07.08 C2.07.11 C2.07.14
+C2.06.11 C2.06.06 C2.06.07 C2.06.09 C2.06.10 C2.06.12 C2.06.13 C2.06.15 C2.06.16
+C2.06.12 C2.05.11 C2.06.05 C2.06.08 C2.06.09 C2.06.11 C2.06.14 C2.06.15 C2.06.17
+C2.06.13 C2.06.07 C2.06.10 C2.06.11 C2.06.15 C2.06.16 C2.07.11 C2.07.14 C2.07.17
+C2.06.14 C2.05.11 C2.05.14 C2.05.16 C2.06.08 C2.06.12 C2.06.15 C2.06.17 C2.06.19
+C2.06.15 C2.06.09 C2.06.11 C2.06.12 C2.06.13 C2.06.14 C2.06.16 C2.06.17 C2.06.18
+C2.06.16 C2.06.11 C2.06.13 C2.06.15 C2.06.17 C2.06.18 C2.06.20 C2.07.14 C2.07.17
+C2.06.17 C2.05.16 C2.06.12 C2.06.14 C2.06.15 C2.06.16 C2.06.18 C2.06.19 C2.06.21
+C2.06.18 C2.06.15 C2.06.16 C2.06.17 C2.06.19 C2.06.20 C2.06.21 C2.06.22 C2.07.17
+C2.06.19 C2.05.16 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.18 C2.06.21 C2.06.23
+C2.06.20 C2.06.16 C2.06.18 C2.06.21 C2.06.22 C2.07.17 C2.07.18 C2.07.20 C2.07.22
+C2.06.21 C2.05.20 C2.06.17 C2.06.18 C2.06.19 C2.06.20 C2.06.22 C2.06.23 C2.06.24
+C2.06.22 C2.06.18 C2.06.20 C2.06.21 C2.06.23 C2.06.24 C2.07.20 C2.07.22 C2.07.24
+C2.06.23 C2.05.20 C2.05.22 C2.05.24 C2.06.19 C2.06.21 C2.06.22 C2.06.24 C2.06.25
+C2.06.24 C2.05.24 C2.06.21 C2.06.22 C2.06.23 C2.06.25 C2.06.26 C2.07.22 C2.07.24
+C2.06.25 C2.05.24 C2.05.25 C2.06.23 C2.06.24 C2.06.26 C2.06.27 C2.06.28 C2.07.24
+C2.06.26 C2.06.24 C2.06.25 C2.06.27 C2.06.28 C2.07.24 C2.07.25 C2.07.26 C2.07.27
+C2.06.27 C2.05.24 C2.05.25 C2.05.26 C2.05.27 C2.05.29 C2.06.25 C2.06.26 C2.06.28
+C2.06.28 C2.05.27 C2.05.29 C2.06.25 C2.06.26 C2.06.27 C2.06.29 C2.06.30 C2.07.26 C2.07.27 C2.07.28
+C2.06.29 C2.05.29 C2.05.30 C2.06.28 C2.06.30 C2.06.31
+C2.06.30 C2.06.28 C2.06.29 C2.06.31 C2.07.27 C2.07.28
+C2.06.31 C2.05.29 C2.05.30 C2.06.29 C2.06.30 C2.07.28
+C2.07.00 C2.07.02 C2.07.05 C2.07.06
+C2.07.01 C2.07.02 C2.07.06 C2.08.00 C2.08.06
+C2.07.02 C2.07.00 C2.07.01 C2.07.05 C2.07.06
+C2.07.03 C2.06.04 C2.07.04 C2.07.07 C2.07.08
+C2.07.04 C2.07.03 C2.07.05 C2.07.07 C2.07.08 C2.07.09
+C2.07.05 C2.07.00 C2.07.02 C2.07.04 C2.07.06 C2.07.08 C2.07.09 C2.07.10
+C2.07.06 C2.07.00 C2.07.01 C2.07.02 C2.07.05 C2.07.09 C2.07.10 C2.08.00 C2.08.06 C2.08.10
+C2.07.07 C2.06.04 C2.06.07 C2.06.10 C2.07.03 C2.07.04 C2.07.08 C2.07.11
+C2.07.08 C2.06.10 C2.07.03 C2.07.04 C2.07.05 C2.07.07 C2.07.09 C2.07.11 C2.07.12
+C2.07.09 C2.07.04 C2.07.05 C2.07.06 C2.07.08 C2.07.10 C2.07.11 C2.07.12 C2.07.13
+C2.07.10 C2.07.05 C2.07.06 C2.07.09 C2.07.12 C2.07.13 C2.08.06 C2.08.10 C2.08.13
+C2.07.11 C2.06.10 C2.06.13 C2.07.07 C2.07.08 C2.07.09 C2.07.12 C2.07.14 C2.07.15
+C2.07.12 C2.07.08 C2.07.09 C2.07.10 C2.07.11 C2.07.13 C2.07.14 C2.07.15 C2.07.16
+C2.07.13 C2.07.09 C2.07.10 C2.07.12 C2.07.15 C2.07.16 C2.08.10 C2.08.13 C2.08.16
+C2.07.14 C2.06.10 C2.06.13 C2.06.16 C2.07.11 C2.07.12 C2.07.15 C2.07.17 C2.07.18
+C2.07.15 C2.07.11 C2.07.12 C2.07.13 C2.07.14 C2.07.16 C2.07.17 C2.07.18 C2.07.19
+C2.07.16 C2.07.12 C2.07.13 C2.07.15 C2.07.18 C2.07.19 C2.08.13 C2.08.16 C2.08.19
+C2.07.17 C2.06.13 C2.06.16 C2.06.18 C2.06.20 C2.07.14 C2.07.15 C2.07.18 C2.07.20
+C2.07.18 C2.06.20 C2.07.14 C2.07.15 C2.07.16 C2.07.17 C2.07.19 C2.07.20 C2.07.21
+C2.07.19 C2.07.15 C2.07.16 C2.07.18 C2.07.20 C2.07.21 C2.08.16 C2.08.19 C2.08.21
+C2.07.20 C2.06.20 C2.06.22 C2.07.17 C2.07.18 C2.07.19 C2.07.21 C2.07.22 C2.07.23
+C2.07.21 C2.07.18 C2.07.19 C2.07.20 C2.07.22 C2.07.23 C2.08.19 C2.08.21 C2.08.23
+C2.07.22 C2.06.20 C2.06.22 C2.06.24 C2.07.20 C2.07.21 C2.07.23 C2.07.24 C2.07.25
+C2.07.23 C2.07.20 C2.07.21 C2.07.22 C2.07.24 C2.07.25 C2.08.21 C2.08.23 C2.08.25
+C2.07.24 C2.06.22 C2.06.24 C2.06.25 C2.06.26 C2.07.22 C2.07.23 C2.07.25 C2.07.26
+C2.07.25 C2.06.26 C2.07.22 C2.07.23 C2.07.24 C2.07.26 C2.08.23 C2.08.25 C2.08.26
+C2.07.26 C2.06.26 C2.06.28 C2.07.24 C2.07.25 C2.07.27 C2.08.25 C2.08.26 C2.08.27
+C2.07.27 C2.06.26 C2.06.28 C2.06.30 C2.07.26 C2.07.28 C2.07.29 C2.08.26 C2.08.27 C2.08.29
+C2.07.28 C2.06.28 C2.06.30 C2.06.31 C2.07.27 C2.07.29
+C2.07.29 C2.07.27 C2.07.28 C2.08.27 C2.08.29
+C2.08.00 C2.07.01 C2.07.06 C2.08.01 C2.08.06
+C2.08.01 C2.08.00 C2.08.02 C2.08.05 C2.08.06
+C2.08.02 C2.08.01 C2.08.05 C2.08.06
+C2.08.03 C2.08.04 C2.08.07 C2.08.08 C2.09.04
+C2.08.04 C2.08.03 C2.08.05 C2.08.07 C2.08.08 C2.08.09
+C2.08.05 C2.08.01 C2.08.02 C2.08.04 C2.08.06 C2.08.08 C2.08.09 C2.08.10
+C2.08.06 C2.07.01 C2.07.06 C2.07.10 C2.08.00 C2.08.01 C2.08.02 C2.08.05 C2.08.09 C2.08.10
+C2.08.07 C2.08.03 C2.08.04 C2.08.08 C2.08.11 C2.09.04 C2.09.07 C2.09.10
+C2.08.08 C2.08.03 C2.08.04 C2.08.05 C2.08.07 C2.08.09 C2.08.11 C2.08.12 C2.09.10
+C2.08.09 C2.08.04 C2.08.05 C2.08.06 C2.08.08 C2.08.10 C2.08.11 C2.08.12 C2.08.13
+C2.08.10 C2.07.06 C2.07.10 C2.07.13 C2.08.05 C2.08.06 C2.08.09 C2.08.12 C2.08.13
+C2.08.11 C2.08.07 C2.08.08 C2.08.09 C2.08.12 C2.08.14 C2.08.15 C2.09.10 C2.09.13
+C2.08.12 C2.08.08 C2.08.09 C2.08.10 C2.08.11 C2.08.13 C2.08.14 C2.08.15 C2.08.16
+C2.08.13 C2.07.10 C2.07.13 C2.07.16 C2.08.09 C2.08.10 C2.08.12 C2.08.15 C2.08.16
+C2.08.14 C2.08.11 C2.08.12 C2.08.15 C2.08.17 C2.08.18 C2.09.10 C2.09.13 C2.09.16
+C2.08.15 C2.08.11 C2.08.12 C2.08.13 C2.08.14 C2.08.16 C2.08.17 C2.08.18 C2.08.19
+C2.08.16 C2.07.13 C2.07.16 C2.07.19 C2.08.12 C2.08.13 C2.08.15 C2.08.18 C2.08.19
+C2.08.17 C2.08.14 C2.08.15 C2.08.18 C2.08.20 C2.09.13 C2.09.16 C2.09.18 C2.09.20
+C2.08.18 C2.08.14 C2.08.15 C2.08.16 C2.08.17 C2.08.19 C2.08.20 C2.08.21 C2.09.20
+C2.08.19 C2.07.16 C2.07.19 C2.07.21 C2.08.15 C2.08.16 C2.08.18 C2.08.20 C2.08.21
+C2.08.20 C2.08.17 C2.08.18 C2.08.19 C2.08.21 C2.08.22 C2.08.23 C2.09.20 C2.09.22
+C2.08.21 C2.07.19 C2.07.21 C2.07.23 C2.08.18 C2.08.19 C2.08.20 C2.08.22 C2.08.23
+C2.08.22 C2.08.20 C2.08.21 C2.08.23 C2.08.24 C2.08.25 C2.09.20 C2.09.22 C2.09.24
+C2.08.23 C2.07.21 C2.07.23 C2.07.25 C2.08.20 C2.08.21 C2.08.22 C2.08.24 C2.08.25
+C2.08.24 C2.08.22 C2.08.23 C2.08.25 C2.08.26 C2.09.22 C2.09.24 C2.09.25 C2.09.26
+C2.08.25 C2.07.23 C2.07.25 C2.07.26 C2.08.22 C2.08.23 C2.08.24 C2.08.26 C2.09.26
+C2.08.26 C2.07.25 C2.07.26 C2.07.27 C2.08.24 C2.08.25 C2.08.27 C2.09.26 C2.09.28
+C2.08.27 C2.07.26 C2.07.27 C2.07.29 C2.08.26 C2.08.28 C2.08.29 C2.09.26 C2.09.28 C2.09.30
+C2.08.28 C2.08.27 C2.08.29 C2.09.28 C2.09.30 C2.09.31
+C2.08.29 C2.07.27 C2.07.29 C2.08.27 C2.08.28
+C2.09.00 C2.09.05 C2.10.00 C2.10.06
+C2.09.01 C2.09.03 C2.09.05
+C2.09.02 C2.09.04 C2.09.06 C2.09.07
+C2.09.03 C2.09.01 C2.09.05 C2.09.06 C2.09.09
+C2.09.04 C2.08.03 C2.08.07 C2.09.02 C2.09.06 C2.09.07 C2.09.10
+C2.09.05 C2.09.00 C2.09.01 C2.09.03 C2.09.06 C2.09.08 C2.09.09 C2.09.12 C2.10.06
+C2.09.06 C2.09.02 C2.09.03 C2.09.04 C2.09.05 C2.09.07 C2.09.09 C2.09.11
+C2.09.07 C2.08.07 C2.09.02 C2.09.04 C2.09.06 C2.09.09 C2.09.10 C2.09.11 C2.09.13
+C2.09.08 C2.09.05 C2.09.09 C2.09.12 C2.09.14 C2.10.06 C2.10.09 C2.10.11
+C2.09.09 C2.09.03 C2.09.05 C2.09.06 C2.09.07 C2.09.08 C2.09.11 C2.09.12 C2.09.15
+C2.09.10 C2.08.07 C2.08.08 C2.08.11 C2.08.14 C2.09.04 C2.09.07 C2.09.11 C2.09.13
+C2.09.11 C2.09.06 C2.09.07 C2.09.09 C2.09.10 C2.09.12 C2.09.13 C2.09.15 C2.09.16
+C2.09.12 C2.09.05 C2.09.08 C2.09.09 C2.09.11 C2.09.14 C2.09.15 C2.09.17 C2.10.11
+C2.09.13 C2.08.11 C2.08.14 C2.08.17 C2.09.07 C2.09.10 C2.09.11 C2.09.15 C2.09.16
+C2.09.14 C2.09.08 C2.09.12 C2.09.15 C2.09.17 C2.09.19 C2.10.11 C2.10.14 C2.10.16
+C2.09.15 C2.09.09 C2.09.11 C2.09.12 C2.09.13 C2.09.14 C2.09.16 C2.09.17 C2.09.18
+C2.09.16 C2.08.14 C2.08.17 C2.09.11 C2.09.13 C2.09.15 C2.09.17 C2.09.18 C2.09.20
+C2.09.17 C2.09.12 C2.09.14 C2.09.15 C2.09.16 C2.09.18 C2.09.19 C2.09.21 C2.10.16
+C2.09.18 C2.08.17 C2.09.15 C2.09.16 C2.09.17 C2.09.19 C2.09.20 C2.09.21 C2.09.22
+C2.09.19 C2.09.14 C2.09.17 C2.09.18 C2.09.21 C2.09.23 C2.10.16 C2.10.18 C2.10.20
+C2.09.20 C2.08.17 C2.08.18 C2.08.20 C2.08.22 C2.09.16 C2.09.18 C2.09.21 C2.09.22
+C2.09.21 C2.09.17 C2.09.18 C2.09.19 C2.09.20 C2.09.22 C2.09.23 C2.09.24 C2.10.20
+C2.09.22 C2.08.20 C2.08.22 C2.08.24 C2.09.18 C2.09.20 C2.09.21 C2.09.23 C2.09.24
+C2.09.23 C2.09.19 C2.09.21 C2.09.22 C2.09.24 C2.09.25 C2.10.20 C2.10.22 C2.10.24
+C2.09.24 C2.08.22 C2.08.24 C2.09.21 C2.09.22 C2.09.23 C2.09.25 C2.09.26 C2.10.24
+C2.09.25 C2.08.24 C2.09.23 C2.09.24 C2.09.26 C2.09.27 C2.09.28 C2.10.24 C2.10.25
+C2.09.26 C2.08.24 C2.08.25 C2.08.26 C2.08.27 C2.09.24 C2.09.25 C2.09.27 C2.09.28
+C2.09.27 C2.09.25 C2.09.26 C2.09.28 C2.09.29 C2.10.24 C2.10.25 C2.10.26 C2.10.27
+C2.09.28 C2.08.26 C2.08.27 C2.08.28 C2.09.25 C2.09.26 C2.09.27 C2.09.29 C2.09.30 C2.10.27
+C2.09.29 C2.09.27 C2.09.28 C2.09.30 C2.09.31 C2.10.27 C2.10.29
+C2.09.30 C2.08.27 C2.08.28 C2.09.28 C2.09.29 C2.09.31 C2.10.29
+C2.09.31 C2.08.28 C2.09.29 C2.09.30 C2.10.29 C2.10.30
+C2.10.00 C2.09.00 C2.10.03 C2.10.06
+C2.10.01 C2.10.02 C2.10.07 C2.10.08
+C2.10.02 C2.10.01 C2.10.04 C2.10.07 C2.10.08 C2.11.01
+C2.10.03 C2.10.00 C2.10.05 C2.10.06 C2.10.09
+C2.10.04 C2.10.02 C2.10.08 C2.11.01 C2.11.06
+C2.10.05 C2.10.03 C2.10.07 C2.10.09 C2.10.10
+C2.10.06 C2.09.00 C2.09.05 C2.09.08 C2.10.00 C2.10.03 C2.10.09 C2.10.11
+C2.10.07 C2.10.01 C2.10.02 C2.10.05 C2.10.08 C2.10.09 C2.10.10 C2.10.12
+C2.10.08 C2.10.01 C2.10.02 C2.10.04 C2.10.07 C2.10.10 C2.10.12 C2.10.13 C2.11.01 C2.11.06
+C2.10.09 C2.09.08 C2.10.03 C2.10.05 C2.10.06 C2.10.07 C2.10.10 C2.10.11 C2.10.14
+C2.10.10 C2.10.05 C2.10.07 C2.10.08 C2.10.09 C2.10.11 C2.10.12 C2.10.14 C2.10.15
+C2.10.11 C2.09.08 C2.09.12 C2.09.14 C2.10.06 C2.10.09 C2.10.10 C2.10.14 C2.10.16
+C2.10.12 C2.10.07 C2.10.08 C2.10.10 C2.10.13 C2.10.14 C2.10.15 C2.10.17 C2.11.06
+C2.10.13 C2.10.08 C2.10.12 C2.10.15 C2.10.17 C2.11.06 C2.11.07 C2.11.11 C2.11.15
+C2.10.14 C2.09.14 C2.10.09 C2.10.10 C2.10.11 C2.10.12 C2.10.15 C2.10.16 C2.10.18
+C2.10.15 C2.10.10 C2.10.12 C2.10.13 C2.10.14 C2.10.16 C2.10.17 C2.10.18 C2.10.19
+C2.10.16 C2.09.14 C2.09.17 C2.09.19 C2.10.11 C2.10.14 C2.10.15 C2.10.18 C2.10.20
+C2.10.17 C2.10.12 C2.10.13 C2.10.15 C2.10.18 C2.10.19 C2.10.21 C2.11.11 C2.11.15
+C2.10.18 C2.09.19 C2.10.14 C2.10.15 C2.10.16 C2.10.17 C2.10.19 C2.10.20 C2.10.22
+C2.10.19 C2.10.15 C2.10.17 C2.10.18 C2.10.20 C2.10.21 C2.10.22 C2.10.23 C2.11.15
+C2.10.20 C2.09.19 C2.09.21 C2.09.23 C2.10.16 C2.10.18 C2.10.19 C2.10.22 C2.10.24
+C2.10.21 C2.10.17 C2.10.19 C2.10.22 C2.10.23 C2.11.15 C2.11.16 C2.11.19 C2.11.22
+C2.10.22 C2.09.23 C2.10.18 C2.10.19 C2.10.20 C2.10.21 C2.10.23 C2.10.24 C2.10.25
+C2.10.23 C2.10.19 C2.10.21 C2.10.22 C2.10.24 C2.10.25 C2.10.26 C2.11.19 C2.11.22
+C2.10.24 C2.09.23 C2.09.24 C2.09.25 C2.09.27 C2.10.20 C2.10.22 C2.10.23 C2.10.25
+C2.10.25 C2.09.25 C2.09.27 C2.10.22 C2.10.23 C2.10.24 C2.10.26 C2.10.27 C2.11.22
+C2.10.26 C2.09.27 C2.10.23 C2.10.25 C2.10.27 C2.10.28 C2.11.22 C2.11.23 C2.11.25
+C2.10.27 C2.09.27 C2.09.28 C2.09.29 C2.10.25 C2.10.26 C2.10.28 C2.10.29 C2.10.30 C2.11.25
+C2.10.28 C2.10.26 C2.10.27 C2.10.29 C2.10.30 C2.10.31 C2.11.25 C2.11.26 C2.11.27 C2.11.29
+C2.10.29 C2.09.29 C2.09.30 C2.09.31 C2.10.27 C2.10.28 C2.10.30
+C2.10.30 C2.09.31 C2.10.27 C2.10.28 C2.10.29 C2.10.31
+C2.10.31 C2.10.28 C2.10.30 C2.11.29 C2.11.30
+C2.11.00 C2.11.03 C2.11.04 C2.11.05 C2.12.00 C2.12.05
+C2.11.01 C2.10.02 C2.10.04 C2.10.08 C2.11.02 C2.11.06 C2.11.07
+C2.11.02 C2.11.01 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C2.11.03 C2.11.00 C2.11.02 C2.11.04 C2.11.07 C2.11.08 C2.11.09
+C2.11.04 C2.11.00 C2.11.03 C2.11.05 C2.11.08 C2.11.09 C2.11.10
+C2.11.05 C2.11.00 C2.11.04 C2.11.09 C2.11.10 C2.12.00 C2.12.05 C2.12.10
+C2.11.06 C2.10.04 C2.10.08 C2.10.12 C2.10.13 C2.11.01 C2.11.02 C2.11.07 C2.11.11
+C2.11.07 C2.10.13 C2.11.01 C2.11.02 C2.11.03 C2.11.06 C2.11.08 C2.11.11 C2.11.12
+C2.11.08 C2.11.02 C2.11.03 C2.11.04 C2.11.07 C2.11.09 C2.11.11 C2.11.12 C2.11.13
+C2.11.09 C2.11.03 C2.11.04 C2.11.05 C2.11.08 C2.11.10 C2.11.12 C2.11.13 C2.11.14
+C2.11.10 C2.11.04 C2.11.05 C2.11.09 C2.11.13 C2.11.14 C2.12.05 C2.12.10 C2.12.14
+C2.11.11 C2.10.13 C2.10.17 C2.11.06 C2.11.07 C2.11.08 C2.11.12 C2.11.15 C2.11.16
+C2.11.12 C2.11.07 C2.11.08 C2.11.09 C2.11.11 C2.11.13 C2.11.15 C2.11.16 C2.11.17
+C2.11.13 C2.11.08 C2.11.09 C2.11.10 C2.11.12 C2.11.14 C2.11.16 C2.11.17 C2.11.18
+C2.11.14 C2.11.09 C2.11.10 C2.11.13 C2.11.17 C2.11.18 C2.12.10 C2.12.14 C2.12.18
+C2.11.15 C2.10.13 C2.10.17 C2.10.19 C2.10.21 C2.11.11 C2.11.12 C2.11.16 C2.11.19
+C2.11.16 C2.10.21 C2.11.11 C2.11.12 C2.11.13 C2.11.15 C2.11.17 C2.11.19 C2.11.20
+C2.11.17 C2.11.12 C2.11.13 C2.11.14 C2.11.16 C2.11.18 C2.11.19 C2.11.20 C2.11.21
+C2.11.18 C2.11.13 C2.11.14 C2.11.17 C2.11.20 C2.11.21 C2.12.14 C2.12.18 C2.12.21
+C2.11.19 C2.10.21 C2.10.23 C2.11.15 C2.11.16 C2.11.17 C2.11.20 C2.11.22 C2.11.23
+C2.11.20 C2.11.16 C2.11.17 C2.11.18 C2.11.19 C2.11.21 C2.11.22 C2.11.23 C2.11.24
+C2.11.21 C2.11.17 C2.11.18 C2.11.20 C2.11.23 C2.11.24 C2.12.18 C2.12.21 C2.12.24
+C2.11.22 C2.10.21 C2.10.23 C2.10.25 C2.10.26 C2.11.19 C2.11.20 C2.11.23 C2.11.25
+C2.11.23 C2.10.26 C2.11.19 C2.11.20 C2.11.21 C2.11.22 C2.11.24 C2.11.25 C2.11.26
+C2.11.24 C2.11.20 C2.11.21 C2.11.23 C2.11.25 C2.11.26 C2.12.21 C2.12.24 C2.12.26
+C2.11.25 C2.10.26 C2.10.27 C2.10.28 C2.11.22 C2.11.23 C2.11.24 C2.11.26 C2.11.27
+C2.11.26 C2.10.28 C2.11.23 C2.11.24 C2.11.25 C2.11.27 C2.11.28 C2.12.24 C2.12.26 C2.12.28
+C2.11.27 C2.10.28 C2.11.25 C2.11.26 C2.11.28 C2.11.29 C2.11.30
+C2.11.28 C2.11.26 C2.11.27 C2.11.29 C2.11.30 C2.12.26 C2.12.28 C2.12.30
+C2.11.29 C2.10.28 C2.10.31 C2.11.27 C2.11.28 C2.11.30
+C2.11.30 C2.10.31 C2.11.27 C2.11.28 C2.11.29 C2.12.28 C2.12.30
+C2.12.00 C2.11.00 C2.11.05 C2.12.03 C2.12.04 C2.12.05
+C2.12.01 C2.12.02 C2.12.06 C2.12.07 C2.13.02 C2.13.04 C2.13.08
+C2.12.02 C2.12.01 C2.12.03 C2.12.06 C2.12.07 C2.12.08
+C2.12.03 C2.12.00 C2.12.02 C2.12.04 C2.12.07 C2.12.08 C2.12.09
+C2.12.04 C2.12.00 C2.12.03 C2.12.05 C2.12.08 C2.12.09 C2.12.10
+C2.12.05 C2.11.00 C2.11.05 C2.11.10 C2.12.00 C2.12.04 C2.12.09 C2.12.10
+C2.12.06 C2.12.01 C2.12.02 C2.12.07 C2.12.11 C2.13.04 C2.13.08 C2.13.12 C2.13.13
+C2.12.07 C2.12.01 C2.12.02 C2.12.03 C2.12.06 C2.12.08 C2.12.11 C2.12.12 C2.13.13
+C2.12.08 C2.12.02 C2.12.03 C2.12.04 C2.12.07 C2.12.09 C2.12.11 C2.12.12 C2.12.13
+C2.12.09 C2.12.03 C2.12.04 C2.12.05 C2.12.08 C2.12.10 C2.12.12 C2.12.13 C2.12.14
+C2.12.10 C2.11.05 C2.11.10 C2.11.14 C2.12.04 C2.12.05 C2.12.09 C2.12.13 C2.12.14
+C2.12.11 C2.12.06 C2.12.07 C2.12.08 C2.12.12 C2.12.15 C2.12.16 C2.13.13 C2.13.17
+C2.12.12 C2.12.07 C2.12.08 C2.12.09 C2.12.11 C2.12.13 C2.12.15 C2.12.16 C2.12.17
+C2.12.13 C2.12.08 C2.12.09 C2.12.10 C2.12.12 C2.12.14 C2.12.16 C2.12.17 C2.12.18
+C2.12.14 C2.11.10 C2.11.14 C2.11.18 C2.12.09 C2.12.10 C2.12.13 C2.12.17 C2.12.18
+C2.12.15 C2.12.11 C2.12.12 C2.12.16 C2.12.19 C2.13.13 C2.13.17 C2.13.19 C2.13.21
+C2.12.16 C2.12.11 C2.12.12 C2.12.13 C2.12.15 C2.12.17 C2.12.19 C2.12.20 C2.13.21
+C2.12.17 C2.12.12 C2.12.13 C2.12.14 C2.12.16 C2.12.18 C2.12.19 C2.12.20 C2.12.21
+C2.12.18 C2.11.14 C2.11.18 C2.11.21 C2.12.13 C2.12.14 C2.12.17 C2.12.20 C2.12.21
+C2.12.19 C2.12.15 C2.12.16 C2.12.17 C2.12.20 C2.12.22 C2.12.23 C2.13.21 C2.13.23
+C2.12.20 C2.12.16 C2.12.17 C2.12.18 C2.12.19 C2.12.21 C2.12.22 C2.12.23 C2.12.24
+C2.12.21 C2.11.18 C2.11.21 C2.11.24 C2.12.17 C2.12.18 C2.12.20 C2.12.23 C2.12.24
+C2.12.22 C2.12.19 C2.12.20 C2.12.23 C2.12.25 C2.13.21 C2.13.23 C2.13.25 C2.13.26
+C2.12.23 C2.12.19 C2.12.20 C2.12.21 C2.12.22 C2.12.24 C2.12.25 C2.12.26 C2.13.26
+C2.12.24 C2.11.21 C2.11.24 C2.11.26 C2.12.20 C2.12.21 C2.12.23 C2.12.25 C2.12.26
+C2.12.25 C2.12.22 C2.12.23 C2.12.24 C2.12.26 C2.12.27 C2.13.26 C2.13.27 C2.13.28
+C2.12.26 C2.11.24 C2.11.26 C2.11.28 C2.12.23 C2.12.24 C2.12.25 C2.12.27 C2.12.28 C2.13.28
+C2.12.27 C2.12.25 C2.12.26 C2.12.28 C2.12.29 C2.12.30 C2.13.28
+C2.12.28 C2.11.26 C2.11.28 C2.11.30 C2.12.26 C2.12.27 C2.12.29 C2.12.30
+C2.12.29 C2.12.27 C2.12.28 C2.12.30 C2.13.28 C2.13.31
+C2.12.30 C2.11.28 C2.11.30 C2.12.27 C2.12.28 C2.12.29
+C2.13.00 C2.13.02 C2.13.07
+C2.13.01 C2.13.06 C2.14.00 C2.14.03
+C2.13.02 C2.12.01 C2.13.00 C2.13.04 C2.13.07 C2.13.08
+C2.13.03 C2.13.05 C2.13.06 C2.13.09
+C2.13.04 C2.12.01 C2.12.06 C2.13.02 C2.13.08
+C2.13.05 C2.13.03 C2.13.07 C2.13.09 C2.13.10
+C2.13.06 C2.13.01 C2.13.03 C2.13.09 C2.13.11 C2.14.03 C2.14.08
+C2.13.07 C2.13.00 C2.13.02 C2.13.05 C2.13.08 C2.13.09 C2.13.10 C2.13.12
+C2.13.08 C2.12.01 C2.12.06 C2.13.02 C2.13.04 C2.13.07 C2.13.10 C2.13.12 C2.13.13
+C2.13.09 C2.13.03 C2.13.05 C2.13.06 C2.13.07 C2.13.10 C2.13.11 C2.13.14 C2.14.08
+C2.13.10 C2.13.05 C2.13.07 C2.13.08 C2.13.09 C2.13.11 C2.13.12 C2.13.14 C2.13.15
+C2.13.11 C2.13.06 C2.13.09 C2.13.10 C2.13.14 C2.13.16 C2.14.08 C2.14.12 C2.14.14
+C2.13.12 C2.12.06 C2.13.07 C2.13.08 C2.13.10 C2.13.13 C2.13.14 C2.13.15 C2.13.17
+C2.13.13 C2.12.06 C2.12.07 C2.12.11 C2.12.15 C2.13.08 C2.13.12 C2.13.15 C2.13.17
+C2.13.14 C2.13.09 C2.13.10 C2.13.11 C2.13.12 C2.13.15 C2.13.16 C2.13.18 C2.14.14
+C2.13.15 C2.13.10 C2.13.12 C2.13.13 C2.13.14 C2.13.16 C2.13.17 C2.13.18 C2.13.19
+C2.13.16 C2.13.11 C2.13.14 C2.13.15 C2.13.18 C2.13.20 C2.14.14 C2.14.17 C2.14.19
+C2.13.17 C2.12.11 C2.12.15 C2.13.12 C2.13.13 C2.13.15 C2.13.18 C2.13.19 C2.13.21
+C2.13.18 C2.13.14 C2.13.15 C2.13.16 C2.13.17 C2.13.19 C2.13.20 C2.13.22 C2.14.19
+C2.13.19 C2.12.15 C2.13.15 C2.13.17 C2.13.18 C2.13.20 C2.13.21 C2.13.22 C2.13.23
+C2.13.20 C2.13.16 C2.13.18 C2.13.19 C2.13.22 C2.13.24 C2.14.19 C2.14.21 C2.14.23
+C2.13.21 C2.12.15 C2.12.16 C2.12.19 C2.12.22 C2.13.17 C2.13.19 C2.13.22 C2.13.23
+C2.13.22 C2.13.18 C2.13.19 C2.13.20 C2.13.21 C2.13.23 C2.13.24 C2.13.25 C2.14.23
+C2.13.23 C2.12.19 C2.12.22 C2.13.19 C2.13.21 C2.13.22 C2.13.24 C2.13.25 C2.13.26
+C2.13.24 C2.13.20 C2.13.22 C2.13.23 C2.13.25 C2.14.23 C2.14.24 C2.14.25 C2.14.27
+C2.13.25 C2.12.22 C2.13.22 C2.13.23 C2.13.24 C2.13.26 C2.13.27 C2.14.25 C2.14.27
+C2.13.26 C2.12.22 C2.12.23 C2.12.25 C2.13.23 C2.13.25 C2.13.27 C2.13.28 C2.14.27
+C2.13.27 C2.12.25 C2.13.25 C2.13.26 C2.13.28 C2.13.29 C2.13.30 C2.14.27 C2.14.28
+C2.13.28 C2.12.25 C2.12.26 C2.12.27 C2.12.29 C2.13.26 C2.13.27 C2.13.30 C2.13.31
+C2.13.29 C2.13.27 C2.13.30 C2.14.27 C2.14.28 C2.14.29 C2.14.31
+C2.13.30 C2.13.27 C2.13.28 C2.13.29 C2.13.31 C2.14.29 C2.14.31
+C2.13.31 C2.12.29 C2.13.28 C2.13.30
+C2.14.00 C2.13.01 C2.14.03 C2.14.05
+C2.14.01 C2.14.05 C2.14.06
+C2.14.02 C2.14.04 C2.14.06 C2.14.07
+C2.14.03 C2.13.01 C2.13.06 C2.14.00 C2.14.05 C2.14.08
+C2.14.04 C2.14.02 C2.14.06 C2.14.07 C2.14.10 C2.15.03 C2.15.07
+C2.14.05 C2.14.00 C2.14.01 C2.14.03 C2.14.06 C2.14.08 C2.14.09 C2.14.12
+C2.14.06 C2.14.01 C2.14.02 C2.14.04 C2.14.05 C2.14.07 C2.14.09 C2.14.11
+C2.14.07 C2.14.02 C2.14.04 C2.14.06 C2.14.09 C2.14.10 C2.14.11 C2.14.13 C2.15.07
+C2.14.08 C2.13.06 C2.13.09 C2.13.11 C2.14.03 C2.14.05 C2.14.09 C2.14.12 C2.14.14
+C2.14.09 C2.14.05 C2.14.06 C2.14.07 C2.14.08 C2.14.11 C2.14.12 C2.14.15
+C2.14.10 C2.14.04 C2.14.07 C2.14.11 C2.14.13 C2.15.07 C2.15.08 C2.15.11 C2.15.14
+C2.14.11 C2.14.06 C2.14.07 C2.14.09 C2.14.10 C2.14.12 C2.14.13 C2.14.15 C2.14.16
+C2.14.12 C2.13.11 C2.14.05 C2.14.08 C2.14.09 C2.14.11 C2.14.14 C2.14.15 C2.14.17
+C2.14.13 C2.14.07 C2.14.10 C2.14.11 C2.14.15 C2.14.16 C2.15.11 C2.15.14 C2.15.17
+C2.14.14 C2.13.11 C2.13.14 C2.13.16 C2.14.08 C2.14.12 C2.14.15 C2.14.17 C2.14.19
+C2.14.15 C2.14.09 C2.14.11 C2.14.12 C2.14.13 C2.14.14 C2.14.16 C2.14.17 C2.14.18
+C2.14.16 C2.14.11 C2.14.13 C2.14.15 C2.14.17 C2.14.18 C2.14.20 C2.15.14 C2.15.17
+C2.14.17 C2.13.16 C2.14.12 C2.14.14 C2.14.15 C2.14.16 C2.14.18 C2.14.19 C2.14.21
+C2.14.18 C2.14.15 C2.14.16 C2.14.17 C2.14.19 C2.14.20 C2.14.21 C2.14.22 C2.15.17
+C2.14.19 C2.13.16 C2.13.18 C2.13.20 C2.14.14 C2.14.17 C2.14.18 C2.14.21 C2.14.23
+C2.14.20 C2.14.16 C2.14.18 C2.14.21 C2.14.22 C2.15.17 C2.15.18 C2.15.20 C2.15.22
+C2.14.21 C2.13.20 C2.14.17 C2.14.18 C2.14.19 C2.14.20 C2.14.22 C2.14.23 C2.14.24
+C2.14.22 C2.14.18 C2.14.20 C2.14.21 C2.14.23 C2.14.24 C2.15.20 C2.15.22 C2.15.24
+C2.14.23 C2.13.20 C2.13.22 C2.13.24 C2.14.19 C2.14.21 C2.14.22 C2.14.24 C2.14.25
+C2.14.24 C2.13.24 C2.14.21 C2.14.22 C2.14.23 C2.14.25 C2.14.26 C2.15.22 C2.15.24
+C2.14.25 C2.13.24 C2.13.25 C2.14.23 C2.14.24 C2.14.26 C2.14.27 C2.14.28 C2.15.24
+C2.14.26 C2.14.24 C2.14.25 C2.14.27 C2.14.28 C2.15.24 C2.15.25 C2.15.26 C2.15.27
+C2.14.27 C2.13.24 C2.13.25 C2.13.26 C2.13.27 C2.13.29 C2.14.25 C2.14.26 C2.14.28
+C2.14.28 C2.13.27 C2.13.29 C2.14.25 C2.14.26 C2.14.27 C2.14.29 C2.14.30 C2.15.26 C2.15.27 C2.15.28
+C2.14.29 C2.13.29 C2.13.30 C2.14.28 C2.14.30 C2.14.31
+C2.14.30 C2.14.28 C2.14.29 C2.14.31 C2.15.27 C2.15.28
+C2.14.31 C2.13.29 C2.13.30 C2.14.29 C2.14.30 C2.15.28
+C2.15.00 C2.15.02 C2.15.05 C2.15.06
+C2.15.01 C2.00.02 C2.00.06 C2.15.02 C2.15.06
+C2.15.02 C2.15.00 C2.15.01 C2.15.05 C2.15.06
+C2.15.03 C2.14.04 C2.15.04 C2.15.07 C2.15.08
+C2.15.04 C2.15.03 C2.15.05 C2.15.07 C2.15.08 C2.15.09
+C2.15.05 C2.15.00 C2.15.02 C2.15.04 C2.15.06 C2.15.08 C2.15.09 C2.15.10
+C2.15.06 C2.00.02 C2.00.06 C2.00.10 C2.15.00 C2.15.01 C2.15.02 C2.15.05 C2.15.09 C2.15.10
+C2.15.07 C2.14.04 C2.14.07 C2.14.10 C2.15.03 C2.15.04 C2.15.08 C2.15.11
+C2.15.08 C2.14.10 C2.15.03 C2.15.04 C2.15.05 C2.15.07 C2.15.09 C2.15.11 C2.15.12
+C2.15.09 C2.15.04 C2.15.05 C2.15.06 C2.15.08 C2.15.10 C2.15.11 C2.15.12 C2.15.13
+C2.15.10 C2.00.06 C2.00.10 C2.00.13 C2.15.05 C2.15.06 C2.15.09 C2.15.12 C2.15.13
+C2.15.11 C2.14.10 C2.14.13 C2.15.07 C2.15.08 C2.15.09 C2.15.12 C2.15.14 C2.15.15
+C2.15.12 C2.15.08 C2.15.09 C2.15.10 C2.15.11 C2.15.13 C2.15.14 C2.15.15 C2.15.16
+C2.15.13 C2.00.10 C2.00.13 C2.00.16 C2.15.09 C2.15.10 C2.15.12 C2.15.15 C2.15.16
+C2.15.14 C2.14.10 C2.14.13 C2.14.16 C2.15.11 C2.15.12 C2.15.15 C2.15.17 C2.15.18
+C2.15.15 C2.15.11 C2.15.12 C2.15.13 C2.15.14 C2.15.16 C2.15.17 C2.15.18 C2.15.19
+C2.15.16 C2.00.13 C2.00.16 C2.00.19 C2.15.12 C2.15.13 C2.15.15 C2.15.18 C2.15.19
+C2.15.17 C2.14.13 C2.14.16 C2.14.18 C2.14.20 C2.15.14 C2.15.15 C2.15.18 C2.15.20
+C2.15.18 C2.14.20 C2.15.14 C2.15.15 C2.15.16 C2.15.17 C2.15.19 C2.15.20 C2.15.21
+C2.15.19 C2.00.16 C2.00.19 C2.00.21 C2.15.15 C2.15.16 C2.15.18 C2.15.20 C2.15.21
+C2.15.20 C2.14.20 C2.14.22 C2.15.17 C2.15.18 C2.15.19 C2.15.21 C2.15.22 C2.15.23
+C2.15.21 C2.00.19 C2.00.21 C2.00.23 C2.15.18 C2.15.19 C2.15.20 C2.15.22 C2.15.23
+C2.15.22 C2.14.20 C2.14.22 C2.14.24 C2.15.20 C2.15.21 C2.15.23 C2.15.24 C2.15.25
+C2.15.23 C2.00.21 C2.00.23 C2.00.25 C2.15.20 C2.15.21 C2.15.22 C2.15.24 C2.15.25
+C2.15.24 C2.14.22 C2.14.24 C2.14.25 C2.14.26 C2.15.22 C2.15.23 C2.15.25 C2.15.26
+C2.15.25 C2.00.23 C2.00.25 C2.00.26 C2.14.26 C2.15.22 C2.15.23 C2.15.24 C2.15.26
+C2.15.26 C2.00.25 C2.00.26 C2.00.27 C2.14.26 C2.14.28 C2.15.24 C2.15.25 C2.15.27
+C2.15.27 C2.00.26 C2.00.27 C2.00.29 C2.14.26 C2.14.28 C2.14.30 C2.15.26 C2.15.28 C2.15.29
+C2.15.28 C2.14.28 C2.14.30 C2.14.31 C2.15.27 C2.15.29
+C2.15.29 C2.00.27 C2.00.29 C2.15.27 C2.15.28
+C3.00.00 C3.00.02 C3.00.03 C3.15.00 C3.15.03
+C3.00.01 C3.00.02 C3.00.04 C3.00.05 C3.01.00 C3.01.04
+C3.00.02 C3.00.00 C3.00.01 C3.00.03 C3.00.04 C3.00.05 C3.00.06
+C3.00.03 C3.00.00 C3.00.02 C3.00.05 C3.00.06 C3.15.00 C3.15.03 C3.15.06
+C3.00.04 C3.00.01 C3.00.02 C3.00.05 C3.00.07 C3.00.08 C3.01.04 C3.01.06
+C3.00.05 C3.00.01 C3.00.02 C3.00.03 C3.00.04 C3.00.06 C3.00.07 C3.00.08 C3.00.09
+C3.00.06 C3.00.02 C3.00.03 C3.00.05 C3.00.08 C3.00.09 C3.15.03 C3.15.06 C3.15.09
+C3.00.07 C3.00.04 C3.00.05 C3.00.08 C3.00.10 C3.01.04 C3.01.06 C3.01.08 C3.01.09
+C3.00.08 C3.00.04 C3.00.05 C3.00.06 C3.00.07 C3.00.09 C3.00.10 C3.00.11 C3.01.09
+C3.00.09 C3.00.05 C3.00.06 C3.00.08 C3.00.10 C3.00.11 C3.15.06 C3.15.09 C3.15.11
+C3.00.10 C3.00.07 C3.00.08 C3.00.09 C3.00.11 C3.00.12 C3.00.13 C3.01.09 C3.01.11
+C3.00.11 C3.00.08 C3.00.09 C3.00.10 C3.00.12 C3.00.13 C3.15.09 C3.15.11 C3.15.13
+C3.00.12 C3.00.10 C3.00.11 C3.00.13 C3.00.14 C3.01.09 C3.01.11 C3.01.12 C3.01.13
+C3.00.13 C3.00.10 C3.00.11 C3.00.12 C3.00.14 C3.01.13 C3.15.11 C3.15.13 C3.15.14
+C3.00.14 C3.00.12 C3.00.13 C3.00.15 C3.01.13 C3.01.15 C3.15.13 C3.15.14 C3.15.15
+C3.00.15 C3.00.14 C3.01.15 C3.15.14 C3.15.15
+C3.01.00 C3.00.01 C3.01.02 C3.01.04
+C3.01.01 C3.01.02 C3.01.03 C3.01.05 C3.02.00
+C3.01.02 C3.01.00 C3.01.01 C3.01.04 C3.01.05 C3.01.06
+C3.01.03 C3.01.01 C3.01.05 C3.01.07 C3.02.00 C3.02.03 C3.02.05
+C3.01.04 C3.00.01 C3.00.04 C3.00.07 C3.01.00 C3.01.02 C3.01.05 C3.01.06
+C3.01.05 C3.01.01 C3.01.02 C3.01.03 C3.01.04 C3.01.06 C3.01.07 C3.01.08 C3.02.05
+C3.01.06 C3.00.04 C3.00.07 C3.01.02 C3.01.04 C3.01.05 C3.01.07 C3.01.08 C3.01.09
+C3.01.07 C3.01.03 C3.01.05 C3.01.06 C3.01.08 C3.01.10 C3.02.05 C3.02.07 C3.02.09
+C3.01.08 C3.00.07 C3.01.05 C3.01.06 C3.01.07 C3.01.09 C3.01.10 C3.01.11 C3.02.09
+C3.01.09 C3.00.07 C3.00.08 C3.00.10 C3.00.12 C3.01.06 C3.01.08 C3.01.10 C3.01.11
+C3.01.10 C3.01.07 C3.01.08 C3.01.09 C3.01.11 C3.01.12 C3.02.09 C3.02.10 C3.02.11
+C3.01.11 C3.00.10 C3.00.12 C3.01.08 C3.01.09 C3.01.10 C3.01.12 C3.01.13 C3.02.11
+C3.01.12 C3.00.12 C3.01.10 C3.01.11 C3.01.13 C3.01.14 C3.02.11 C3.02.12 C3.02.13
+C3.01.13 C3.00.12 C3.00.13 C3.00.14 C3.01.11 C3.01.12 C3.01.14 C3.01.15 C3.02.13
+C3.01.14 C3.01.12 C3.01.13 C3.01.15 C3.02.13 C3.02.14
+C3.01.15 C3.00.14 C3.00.15 C3.01.13 C3.01.14 C3.02.14
+C3.02.00 C3.01.01 C3.01.03 C3.02.02 C3.02.03 C3.02.05
+C3.02.01 C3.02.02 C3.03.02 C3.03.05
+C3.02.02 C3.02.00 C3.02.01 C3.02.03 C3.02.04 C3.02.06 C3.03.05
+C3.02.03 C3.01.03 C3.02.00 C3.02.02 C3.02.04 C3.02.05 C3.02.07
+C3.02.04 C3.02.02 C3.02.03 C3.02.05 C3.02.06 C3.02.07 C3.02.08 C3.03.05
+C3.02.05 C3.01.03 C3.01.05 C3.01.07 C3.02.00 C3.02.03 C3.02.04 C3.02.07 C3.02.09
+C3.02.06 C3.02.02 C3.02.04 C3.02.07 C3.02.08 C3.03.05 C3.03.06 C3.03.08 C3.03.10
+C3.02.07 C3.01.07 C3.02.03 C3.02.04 C3.02.05 C3.02.06 C3.02.08 C3.02.09 C3.02.10
+C3.02.08 C3.02.04 C3.02.06 C3.02.07 C3.02.09 C3.02.10 C3.03.08 C3.03.10 C3.03.12
+C3.02.09 C3.01.07 C3.01.08 C3.01.10 C3.02.05 C3.02.07 C3.02.08 C3.02.10 C3.02.11
+C3.02.10 C3.01.10 C3.02.07 C3.02.08 C3.02.09 C3.02.11 C3.02.12 C3.03.10 C3.03.12
+C3.02.11 C3.01.10 C3.01.11 C3.01.12 C3.02.09 C3.02.10 C3.02.12 C3.02.13 C3.03.12
+C3.02.12 C3.01.12 C3.02.10 C3.02.11 C3.02.13 C3.03.12 C3.03.13 C3.03.14 C3.03.15
+C3.02.13 C3.01.12 C3.01.13 C3.01.14 C3.02.11 C3.02.12 C3.02.14 C3.02.15 C3.03.14 C3.03.15
+C3.02.14 C3.01.14 C3.01.15 C3.02.13 C3.02.15
+C3.02.15 C3.02.13 C3.02.14 C3.03.15
+C3.03.00 C3.03.01 C3.03.03 C3.03.04
+C3.03.01 C3.03.00 C3.03.04 C3.04.01 C3.04.04
+C3.03.02 C3.02.01 C3.03.03 C3.03.05 C3.03.06
+C3.03.03 C3.03.00 C3.03.02 C3.03.04 C3.03.05 C3.03.06 C3.03.07
+C3.03.04 C3.03.00 C3.03.01 C3.03.03 C3.03.06 C3.03.07 C3.04.01 C3.04.04 C3.04.07
+C3.03.05 C3.02.01 C3.02.02 C3.02.04 C3.02.06 C3.03.02 C3.03.03 C3.03.06 C3.03.08
+C3.03.06 C3.02.06 C3.03.02 C3.03.03 C3.03.04 C3.03.05 C3.03.07 C3.03.08 C3.03.09
+C3.03.07 C3.03.03 C3.03.04 C3.03.06 C3.03.08 C3.03.09 C3.04.04 C3.04.07 C3.04.09
+C3.03.08 C3.02.06 C3.02.08 C3.03.05 C3.03.06 C3.03.07 C3.03.09 C3.03.10 C3.03.11
+C3.03.09 C3.03.06 C3.03.07 C3.03.08 C3.03.10 C3.03.11 C3.04.07 C3.04.09 C3.04.11
+C3.03.10 C3.02.06 C3.02.08 C3.02.10 C3.03.08 C3.03.09 C3.03.11 C3.03.12 C3.03.13
+C3.03.11 C3.03.08 C3.03.09 C3.03.10 C3.03.12 C3.03.13 C3.04.09 C3.04.11 C3.04.13
+C3.03.12 C3.02.08 C3.02.10 C3.02.11 C3.02.12 C3.03.10 C3.03.11 C3.03.13 C3.03.14
+C3.03.13 C3.02.12 C3.03.10 C3.03.11 C3.03.12 C3.03.14 C3.04.11 C3.04.13 C3.04.14
+C3.03.14 C3.02.12 C3.02.13 C3.03.12 C3.03.13 C3.03.15 C3.04.13 C3.04.14 C3.04.15
+C3.03.15 C3.02.12 C3.02.13 C3.02.15 C3.03.14 C3.04.14 C3.04.15
+C3.04.00 C3.04.01 C3.04.03 C3.04.04
+C3.04.01 C3.03.01 C3.03.04 C3.04.00 C3.04.04
+C3.04.02 C3.04.03 C3.04.05 C3.04.06 C3.05.02
+C3.04.03 C3.04.00 C3.04.02 C3.04.04 C3.04.05 C3.04.06 C3.04.07
+C3.04.04 C3.03.01 C3.03.04 C3.03.07 C3.04.00 C3.04.01 C3.04.03 C3.04.06 C3.04.07
+C3.04.05 C3.04.02 C3.04.03 C3.04.06 C3.04.08 C3.05.02 C3.05.04 C3.05.06
+C3.04.06 C3.04.02 C3.04.03 C3.04.04 C3.04.05 C3.04.07 C3.04.08 C3.04.09 C3.05.06
+C3.04.07 C3.03.04 C3.03.07 C3.03.09 C3.04.03 C3.04.04 C3.04.06 C3.04.08 C3.04.09
+C3.04.08 C3.04.05 C3.04.06 C3.04.07 C3.04.09 C3.04.10 C3.04.11 C3.05.06 C3.05.08
+C3.04.09 C3.03.07 C3.03.09 C3.03.11 C3.04.06 C3.04.07 C3.04.08 C3.04.10 C3.04.11
+C3.04.10 C3.04.08 C3.04.09 C3.04.11 C3.04.12 C3.04.13 C3.05.06 C3.05.08 C3.05.10
+C3.04.11 C3.03.09 C3.03.11 C3.03.13 C3.04.08 C3.04.09 C3.04.10 C3.04.12 C3.04.13
+C3.04.12 C3.04.10 C3.04.11 C3.04.13 C3.04.14 C3.05.08 C3.05.10 C3.05.11 C3.05.12
+C3.04.13 C3.03.11 C3.03.13 C3.03.14 C3.04.10 C3.04.11 C3.04.12 C3.04.14 C3.05.12
+C3.04.14 C3.03.13 C3.03.14 C3.03.15 C3.04.12 C3.04.13 C3.04.15 C3.05.12 C3.05.13
+C3.04.15 C3.03.14 C3.03.15 C3.04.14 C3.05.12 C3.05.13 C3.05.14
+C3.05.00 C3.05.01 C3.05.03 C3.05.05 C3.06.00 C3.06.02
+C3.05.01 C3.05.00 C3.05.02 C3.05.03 C3.05.04
+C3.05.02 C3.04.02 C3.04.05 C3.05.01 C3.05.03 C3.05.04 C3.05.06
+C3.05.03 C3.05.00 C3.05.01 C3.05.02 C3.05.04 C3.05.05 C3.05.07 C3.06.02
+C3.05.04 C3.04.05 C3.05.01 C3.05.02 C3.05.03 C3.05.05 C3.05.06 C3.05.07 C3.05.08
+C3.05.05 C3.05.00 C3.05.03 C3.05.04 C3.05.07 C3.05.09 C3.06.02 C3.06.04 C3.06.06
+C3.05.06 C3.04.05 C3.04.06 C3.04.08 C3.04.10 C3.05.02 C3.05.04 C3.05.07 C3.05.08
+C3.05.07 C3.05.03 C3.05.04 C3.05.05 C3.05.06 C3.05.08 C3.05.09 C3.05.10 C3.06.06
+C3.05.08 C3.04.08 C3.04.10 C3.04.12 C3.05.04 C3.05.06 C3.05.07 C3.05.09 C3.05.10
+C3.05.09 C3.05.05 C3.05.07 C3.05.08 C3.05.10 C3.05.11 C3.06.06 C3.06.07 C3.06.09
+C3.05.10 C3.04.10 C3.04.12 C3.05.07 C3.05.08 C3.05.09 C3.05.11 C3.05.12 C3.06.09
+C3.05.11 C3.04.12 C3.05.09 C3.05.10 C3.05.12 C3.05.13 C3.06.09 C3.06.10 C3.06.11
+C3.05.12 C3.04.12 C3.04.13 C3.04.14 C3.04.15 C3.05.10 C3.05.11 C3.05.13 C3.06.11
+C3.05.13 C3.04.14 C3.04.15 C3.05.11 C3.05.12 C3.05.14 C3.06.11 C3.06.12 C3.06.13
+C3.05.14 C3.04.15 C3.05.13 C3.06.13 C3.06.15
+C3.06.00 C3.05.00 C3.06.01 C3.06.02 C3.06.04
+C3.06.01 C3.06.00 C3.06.03 C3.06.04 C3.06.05 C3.07.01
+C3.06.02 C3.05.00 C3.05.03 C3.05.05 C3.06.00 C3.06.04 C3.06.06
+C3.06.03 C3.06.01 C3.06.04 C3.06.05 C3.07.01 C3.07.04 C3.07.07
+C3.06.04 C3.05.05 C3.06.00 C3.06.01 C3.06.02 C3.06.03 C3.06.05 C3.06.06 C3.06.07
+C3.06.05 C3.06.01 C3.06.03 C3.06.04 C3.06.06 C3.06.07 C3.06.08 C3.07.04 C3.07.07
+C3.06.06 C3.05.05 C3.05.07 C3.05.09 C3.06.02 C3.06.04 C3.06.05 C3.06.07 C3.06.09
+C3.06.07 C3.05.09 C3.06.04 C3.06.05 C3.06.06 C3.06.08 C3.06.09 C3.06.10 C3.07.07
+C3.06.08 C3.06.05 C3.06.07 C3.06.09 C3.06.10 C3.07.07 C3.07.08 C3.07.10 C3.07.12
+C3.06.09 C3.05.09 C3.05.10 C3.05.11 C3.06.06 C3.06.07 C3.06.08 C3.06.10 C3.06.11
+C3.06.10 C3.05.11 C3.06.07 C3.06.08 C3.06.09 C3.06.11 C3.06.12 C3.07.10 C3.07.12
+C3.06.11 C3.05.11 C3.05.12 C3.05.13 C3.06.09 C3.06.10 C3.06.12 C3.06.13 C3.07.12
+C3.06.12 C3.05.13 C3.06.10 C3.06.11 C3.06.13 C3.06.14 C3.07.12 C3.07.13 C3.07.14
+C3.06.13 C3.05.13 C3.05.14 C3.06.11 C3.06.12 C3.06.14 C3.06.15
+C3.06.14 C3.06.12 C3.06.13 C3.06.15 C3.07.14 C3.07.15
+C3.06.15 C3.05.14 C3.06.13 C3.06.14
+C3.07.00 C3.07.02 C3.07.03 C3.08.00 C3.08.03
+C3.07.01 C3.06.01 C3.06.03 C3.07.02 C3.07.04 C3.07.05
+C3.07.02 C3.07.00 C3.07.01 C3.07.03 C3.07.04 C3.07.05 C3.07.06
+C3.07.03 C3.07.00 C3.07.02 C3.07.05 C3.07.06 C3.08.00 C3.08.03 C3.08.06
+C3.07.04 C3.06.03 C3.06.05 C3.07.01 C3.07.02 C3.07.05 C3.07.07 C3.07.08
+C3.07.05 C3.07.01 C3.07.02 C3.07.03 C3.07.04 C3.07.06 C3.07.07 C3.07.08 C3.07.09
+C3.07.06 C3.07.02 C3.07.03 C3.07.05 C3.07.08 C3.07.09 C3.08.03 C3.08.06 C3.08.09
+C3.07.07 C3.06.03 C3.06.05 C3.06.07 C3.06.08 C3.07.04 C3.07.05 C3.07.08 C3.07.10
+C3.07.08 C3.06.08 C3.07.04 C3.07.05 C3.07.06 C3.07.07 C3.07.09 C3.07.10 C3.07.11
+C3.07.09 C3.07.05 C3.07.06 C3.07.08 C3.07.10 C3.07.11 C3.08.06 C3.08.09 C3.08.11
+C3.07.10 C3.06.08 C3.06.10 C3.07.07 C3.07.08 C3.07.09 C3.07.11 C3.07.12 C3.07.13
+C3.07.11 C3.07.08 C3.07.09 C3.07.10 C3.07.12 C3.07.13 C3.08.09 C3.08.11 C3.08.13
+C3.07.12 C3.06.08 C3.06.10 C3.06.11 C3.06.12 C3.07.10 C3.07.11 C3.07.13 C3.07.14
+C3.07.13 C3.06.12 C3.07.10 C3.07.11 C3.07.12 C3.07.14 C3.08.11 C3.08.13 C3.08.14
+C3.07.14 C3.06.12 C3.06.14 C3.07.12 C3.07.13 C3.07.15 C3.08.13 C3.08.14 C3.08.15
+C3.07.15 C3.06.14 C3.07.14 C3.08.14 C3.08.15
+C3.08.00 C3.07.00 C3.07.03 C3.08.02 C3.08.03
+C3.08.01 C3.08.02 C3.08.04 C3.08.05 C3.09.00 C3.09.04
+C3.08.02 C3.08.00 C3.08.01 C3.08.03 C3.08.04 C3.08.05 C3.08.06
+C3.08.03 C3.07.00 C3.07.03 C3.07.06 C3.08.00 C3.08.02 C3.08.05 C3.08.06
+C3.08.04 C3.08.01 C3.08.02 C3.08.05 C3.08.07 C3.08.08 C3.09.04 C3.09.06
+C3.08.05 C3.08.01 C3.08.02 C3.08.03 C3.08.04 C3.08.06 C3.08.07 C3.08.08 C3.08.09
+C3.08.06 C3.07.03 C3.07.06 C3.07.09 C3.08.02 C3.08.03 C3.08.05 C3.08.08 C3.08.09
+C3.08.07 C3.08.04 C3.08.05 C3.08.08 C3.08.10 C3.09.04 C3.09.06 C3.09.08 C3.09.09
+C3.08.08 C3.08.04 C3.08.05 C3.08.06 C3.08.07 C3.08.09 C3.08.10 C3.08.11 C3.09.09
+C3.08.09 C3.07.06 C3.07.09 C3.07.11 C3.08.05 C3.08.06 C3.08.08 C3.08.10 C3.08.11
+C3.08.10 C3.08.07 C3.08.08 C3.08.09 C3.08.11 C3.08.12 C3.08.13 C3.09.09 C3.09.11
+C3.08.11 C3.07.09 C3.07.11 C3.07.13 C3.08.08 C3.08.09 C3.08.10 C3.08.12 C3.08.13
+C3.08.12 C3.08.10 C3.08.11 C3.08.13 C3.08.14 C3.09.09 C3.09.11 C3.09.12 C3.09.13
+C3.08.13 C3.07.11 C3.07.13 C3.07.14 C3.08.10 C3.08.11 C3.08.12 C3.08.14 C3.09.13
+C3.08.14 C3.07.13 C3.07.14 C3.07.15 C3.08.12 C3.08.13 C3.08.15 C3.09.13 C3.09.15
+C3.08.15 C3.07.14 C3.07.15 C3.08.14 C3.09.15
+C3.09.00 C3.08.01 C3.09.02 C3.09.04
+C3.09.01 C3.09.02 C3.09.03 C3.09.05 C3.10.00
+C3.09.02 C3.09.00 C3.09.01 C3.09.04 C3.09.05 C3.09.06
+C3.09.03 C3.09.01 C3.09.05 C3.09.07 C3.10.00 C3.10.03 C3.10.05
+C3.09.04 C3.08.01 C3.08.04 C3.08.07 C3.09.00 C3.09.02 C3.09.05 C3.09.06
+C3.09.05 C3.09.01 C3.09.02 C3.09.03 C3.09.04 C3.09.06 C3.09.07 C3.09.08 C3.10.05
+C3.09.06 C3.08.04 C3.08.07 C3.09.02 C3.09.04 C3.09.05 C3.09.07 C3.09.08 C3.09.09
+C3.09.07 C3.09.03 C3.09.05 C3.09.06 C3.09.08 C3.09.10 C3.10.05 C3.10.07 C3.10.09
+C3.09.08 C3.08.07 C3.09.05 C3.09.06 C3.09.07 C3.09.09 C3.09.10 C3.09.11 C3.10.09
+C3.09.09 C3.08.07 C3.08.08 C3.08.10 C3.08.12 C3.09.06 C3.09.08 C3.09.10 C3.09.11
+C3.09.10 C3.09.07 C3.09.08 C3.09.09 C3.09.11 C3.09.12 C3.10.09 C3.10.10 C3.10.11
+C3.09.11 C3.08.10 C3.08.12 C3.09.08 C3.09.09 C3.09.10 C3.09.12 C3.09.13 C3.10.11
+C3.09.12 C3.08.12 C3.09.10 C3.09.11 C3.09.13 C3.09.14 C3.10.11 C3.10.12 C3.10.13
+C3.09.13 C3.08.12 C3.08.13 C3.08.14 C3.09.11 C3.09.12 C3.09.14 C3.09.15 C3.10.13
+C3.09.14 C3.09.12 C3.09.13 C3.09.15 C3.10.13 C3.10.14
+C3.09.15 C3.08.14 C3.08.15 C3.09.13 C3.09.14 C3.10.14
+C3.10.00 C3.09.01 C3.09.03 C3.10.02 C3.10.03 C3.10.05
+C3.10.01 C3.10.02 C3.11.02 C3.11.05
+C3.10.02 C3.10.00 C3.10.01 C3.10.03 C3.10.04 C3.10.06 C3.11.05
+C3.10.03 C3.09.03 C3.10.00 C3.10.02 C3.10.04 C3.10.05 C3.10.07
+C3.10.04 C3.10.02 C3.10.03 C3.10.05 C3.10.06 C3.10.07 C3.10.08 C3.11.05
+C3.10.05 C3.09.03 C3.09.05 C3.09.07 C3.10.00 C3.10.03 C3.10.04 C3.10.07 C3.10.09
+C3.10.06 C3.10.02 C3.10.04 C3.10.07 C3.10.08 C3.11.05 C3.11.06 C3.11.08 C3.11.10
+C3.10.07 C3.09.07 C3.10.03 C3.10.04 C3.10.05 C3.10.06 C3.10.08 C3.10.09 C3.10.10
+C3.10.08 C3.10.04 C3.10.06 C3.10.07 C3.10.09 C3.10.10 C3.11.08 C3.11.10 C3.11.12
+C3.10.09 C3.09.07 C3.09.08 C3.09.10 C3.10.05 C3.10.07 C3.10.08 C3.10.10 C3.10.11
+C3.10.10 C3.09.10 C3.10.07 C3.10.08 C3.10.09 C3.10.11 C3.10.12 C3.11.10 C3.11.12
+C3.10.11 C3.09.10 C3.09.11 C3.09.12 C3.10.09 C3.10.10 C3.10.12 C3.10.13 C3.11.12
+C3.10.12 C3.09.12 C3.10.10 C3.10.11 C3.10.13 C3.11.12 C3.11.13 C3.11.14 C3.11.15
+C3.10.13 C3.09.12 C3.09.13 C3.09.14 C3.10.11 C3.10.12 C3.10.14 C3.10.15 C3.11.14 C3.11.15
+C3.10.14 C3.09.14 C3.09.15 C3.10.13 C3.10.15
+C3.10.15 C3.10.13 C3.10.14 C3.11.15
+C3.11.00 C3.11.01 C3.11.03 C3.11.04
+C3.11.01 C3.11.00 C3.11.04 C3.12.01 C3.12.04
+C3.11.02 C3.10.01 C3.11.03 C3.11.05 C3.11.06
+C3.11.03 C3.11.00 C3.11.02 C3.11.04 C3.11.05 C3.11.06 C3.11.07
+C3.11.04 C3.11.00 C3.11.01 C3.11.03 C3.11.06 C3.11.07 C3.12.01 C3.12.04 C3.12.07
+C3.11.05 C3.10.01 C3.10.02 C3.10.04 C3.10.06 C3.11.02 C3.11.03 C3.11.06 C3.11.08
+C3.11.06 C3.10.06 C3.11.02 C3.11.03 C3.11.04 C3.11.05 C3.11.07 C3.11.08 C3.11.09
+C3.11.07 C3.11.03 C3.11.04 C3.11.06 C3.11.08 C3.11.09 C3.12.04 C3.12.07 C3.12.09
+C3.11.08 C3.10.06 C3.10.08 C3.11.05 C3.11.06 C3.11.07 C3.11.09 C3.11.10 C3.11.11
+C3.11.09 C3.11.06 C3.11.07 C3.11.08 C3.11.10 C3.11.11 C3.12.07 C3.12.09 C3.12.11
+C3.11.10 C3.10.06 C3.10.08 C3.10.10 C3.11.08 C3.11.09 C3.11.11 C3.11.12 C3.11.13
+C3.11.11 C3.11.08 C3.11.09 C3.11.10 C3.11.12 C3.11.13 C3.12.09 C3.12.11 C3.12.13
+C3.11.12 C3.10.08 C3.10.10 C3.10.11 C3.10.12 C3.11.10 C3.11.11 C3.11.13 C3.11.14
+C3.11.13 C3.10.12 C3.11.10 C3.11.11 C3.11.12 C3.11.14 C3.12.11 C3.12.13 C3.12.14
+C3.11.14 C3.10.12 C3.10.13 C3.11.12 C3.11.13 C3.11.15 C3.12.13 C3.12.14 C3.12.15
+C3.11.15 C3.10.12 C3.10.13 C3.10.15 C3.11.14 C3.12.14 C3.12.15
+C3.12.00 C3.12.01 C3.12.03 C3.12.04
+C3.12.01 C3.11.01 C3.11.04 C3.12.00 C3.12.04
+C3.12.02 C3.12.03 C3.12.05 C3.12.06 C3.13.02
+C3.12.03 C3.12.00 C3.12.02 C3.12.04 C3.12.05 C3.12.06 C3.12.07
+C3.12.04 C3.11.01 C3.11.04 C3.11.07 C3.12.00 C3.12.01 C3.12.03 C3.12.06 C3.12.07
+C3.12.05 C3.12.02 C3.12.03 C3.12.06 C3.12.08 C3.13.02 C3.13.04 C3.13.06
+C3.12.06 C3.12.02 C3.12.03 C3.12.04 C3.12.05 C3.12.07 C3.12.08 C3.12.09 C3.13.06
+C3.12.07 C3.11.04 C3.11.07 C3.11.09 C3.12.03 C3.12.04 C3.12.06 C3.12.08 C3.12.09
+C3.12.08 C3.12.05 C3.12.06 C3.12.07 C3.12.09 C3.12.10 C3.12.11 C3.13.06 C3.13.08
+C3.12.09 C3.11.07 C3.11.09 C3.11.11 C3.12.06 C3.12.07 C3.12.08 C3.12.10 C3.12.11
+C3.12.10 C3.12.08 C3.12.09 C3.12.11 C3.12.12 C3.12.13 C3.13.06 C3.13.08 C3.13.10
+C3.12.11 C3.11.09 C3.11.11 C3.11.13 C3.12.08 C3.12.09 C3.12.10 C3.12.12 C3.12.13
+C3.12.12 C3.12.10 C3.12.11 C3.12.13 C3.12.14 C3.13.08 C3.13.10 C3.13.11 C3.13.12
+C3.12.13 C3.11.11 C3.11.13 C3.11.14 C3.12.10 C3.12.11 C3.12.12 C3.12.14 C3.13.12
+C3.12.14 C3.11.13 C3.11.14 C3.11.15 C3.12.12 C3.12.13 C3.12.15 C3.13.12 C3.13.13
+C3.12.15 C3.11.14 C3.11.15 C3.12.14 C3.13.12 C3.13.13 C3.13.14
+C3.13.00 C3.13.01 C3.13.03 C3.13.05 C3.14.00 C3.14.02
+C3.13.01 C3.13.00 C3.13.02 C3.13.03 C3.13.04
+C3.13.02 C3.12.02 C3.12.05 C3.13.01 C3.13.03 C3.13.04 C3.13.06
+C3.13.03 C3.13.00 C3.13.01 C3.13.02 C3.13.04 C3.13.05 C3.13.07 C3.14.02
+C3.13.04 C3.12.05 C3.13.01 C3.13.02 C3.13.03 C3.13.05 C3.13.06 C3.13.07 C3.13.08
+C3.13.05 C3.13.00 C3.13.03 C3.13.04 C3.13.07 C3.13.09 C3.14.02 C3.14.04 C3.14.06
+C3.13.06 C3.12.05 C3.12.06 C3.12.08 C3.12.10 C3.13.02 C3.13.04 C3.13.07 C3.13.08
+C3.13.07 C3.13.03 C3.13.04 C3.13.05 C3.13.06 C3.13.08 C3.13.09 C3.13.10 C3.14.06
+C3.13.08 C3.12.08 C3.12.10 C3.12.12 C3.13.04 C3.13.06 C3.13.07 C3.13.09 C3.13.10
+C3.13.09 C3.13.05 C3.13.07 C3.13.08 C3.13.10 C3.13.11 C3.14.06 C3.14.07 C3.14.09
+C3.13.10 C3.12.10 C3.12.12 C3.13.07 C3.13.08 C3.13.09 C3.13.11 C3.13.12 C3.14.09
+C3.13.11 C3.12.12 C3.13.09 C3.13.10 C3.13.12 C3.13.13 C3.14.09 C3.14.10 C3.14.11
+C3.13.12 C3.12.12 C3.12.13 C3.12.14 C3.12.15 C3.13.10 C3.13.11 C3.13.13 C3.14.11
+C3.13.13 C3.12.14 C3.12.15 C3.13.11 C3.13.12 C3.13.14 C3.14.11 C3.14.12 C3.14.13
+C3.13.14 C3.12.15 C3.13.13 C3.14.13 C3.14.15
+C3.14.00 C3.13.00 C3.14.01 C3.14.02 C3.14.04
+C3.14.01 C3.14.00 C3.14.03 C3.14.04 C3.14.05 C3.15.01
+C3.14.02 C3.13.00 C3.13.03 C3.13.05 C3.14.00 C3.14.04 C3.14.06
+C3.14.03 C3.14.01 C3.14.04 C3.14.05 C3.15.01 C3.15.04 C3.15.07
+C3.14.04 C3.13.05 C3.14.00 C3.14.01 C3.14.02 C3.14.03 C3.14.05 C3.14.06 C3.14.07
+C3.14.05 C3.14.01 C3.14.03 C3.14.04 C3.14.06 C3.14.07 C3.14.08 C3.15.04 C3.15.07
+C3.14.06 C3.13.05 C3.13.07 C3.13.09 C3.14.02 C3.14.04 C3.14.05 C3.14.07 C3.14.09
+C3.14.07 C3.13.09 C3.14.04 C3.14.05 C3.14.06 C3.14.08 C3.14.09 C3.14.10 C3.15.07
+C3.14.08 C3.14.05 C3.14.07 C3.14.09 C3.14.10 C3.15.07 C3.15.08 C3.15.10 C3.15.12
+C3.14.09 C3.13.09 C3.13.10 C3.13.11 C3.14.06 C3.14.07 C3.14.08 C3.14.10 C3.14.11
+C3.14.10 C3.13.11 C3.14.07 C3.14.08 C3.14.09 C3.14.11 C3.14.12 C3.15.10 C3.15.12
+C3.14.11 C3.13.11 C3.13.12 C3.13.13 C3.14.09 C3.14.10 C3.14.12 C3.14.13 C3.15.12
+C3.14.12 C3.13.13 C3.14.10 C3.14.11 C3.14.13 C3.14.14 C3.15.12 C3.15.13 C3.15.14
+C3.14.13 C3.13.13 C3.13.14 C3.14.11 C3.14.12 C3.14.14 C3.14.15
+C3.14.14 C3.14.12 C3.14.13 C3.14.15 C3.15.14 C3.15.15
+C3.14.15 C3.13.14 C3.14.13 C3.14.14
+C3.15.00 C3.00.00 C3.00.03 C3.15.02 C3.15.03
+C3.15.01 C3.14.01 C3.14.03 C3.15.02 C3.15.04 C3.15.05
+C3.15.02 C3.15.00 C3.15.01 C3.15.03 C3.15.04 C3.15.05 C3.15.06
+C3.15.03 C3.00.00 C3.00.03 C3.00.06 C3.15.00 C3.15.02 C3.15.05 C3.15.06
+C3.15.04 C3.14.03 C3.14.05 C3.15.01 C3.15.02 C3.15.05 C3.15.07 C3.15.08
+C3.15.05 C3.15.01 C3.15.02 C3.15.03 C3.15.04 C3.15.06 C3.15.07 C3.15.08 C3.15.09
+C3.15.06 C3.00.03 C3.00.06 C3.00.09 C3.15.02 C3.15.03 C3.15.05 C3.15.08 C3.15.09
+C3.15.07 C3.14.03 C3.14.05 C3.14.07 C3.14.08 C3.15.04 C3.15.05 C3.15.08 C3.15.10
+C3.15.08 C3.14.08 C3.15.04 C3.15.05 C3.15.06 C3.15.07 C3.15.09 C3.15.10 C3.15.11
+C3.15.09 C3.00.06 C3.00.09 C3.00.11 C3.15.05 C3.15.06 C3.15.08 C3.15.10 C3.15.11
+C3.15.10 C3.14.08 C3.14.10 C3.15.07 C3.15.08 C3.15.09 C3.15.11 C3.15.12 C3.15.13
+C3.15.11 C3.00.09 C3.00.11 C3.00.13 C3.15.08 C3.15.09 C3.15.10 C3.15.12 C3.15.13
+C3.15.12 C3.14.08 C3.14.10 C3.14.11 C3.14.12 C3.15.10 C3.15.11 C3.15.13 C3.15.14
+C3.15.13 C3.00.11 C3.00.13 C3.00.14 C3.14.12 C3.15.10 C3.15.11 C3.15.12 C3.15.14
+C3.15.14 C3.00.13 C3.00.14 C3.00.15 C3.14.12 C3.14.14 C3.15.12 C3.15.13 C3.15.15
+C3.15.15 C3.00.14 C3.00.15 C3.14.14 C3.15.14
diff --git a/Calorimeter/CaloIdentifier/share/FCal2DNeighbors.txt b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors.txt
new file mode 100755
index 0000000000000000000000000000000000000000..901206acc8e1efb92487103f4ea2dc2502554082
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors.txt
@@ -0,0 +1,3533 @@
+# 2D FCal Neighbors
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:15:50 2004
+#
+# 2d neighbors are all touching neighbors including corners.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+#
+A1.00.00 A1.00.07 A1.00.08 A1.01.05
+A1.00.01 A1.00.02 A1.00.11 A1.00.10 A1.00.06 A1.00.04
+A1.00.02 A1.15.01 A1.15.11 A1.00.12 A1.00.11 A1.00.01
+A1.00.03 A1.00.14 A1.00.13 A1.00.07
+A1.00.04 A1.00.01 A1.00.06 A1.00.09 A1.00.05
+A1.00.05 A1.00.04 A1.00.15 A1.00.09 A1.00.14
+A1.00.06 A1.00.01 A1.00.16 A1.00.10 A1.00.04 A1.00.15 A1.00.09
+A1.00.07 A1.00.19 A1.00.13 A1.00.03 A1.00.18 A1.01.13 A1.00.08 A1.00.00
+A1.00.08 A1.00.18 A1.00.07 A1.01.13 A1.00.00 A1.01.05
+A1.00.09 A1.00.16 A1.00.06 A1.00.04 A1.00.15 A1.00.05
+A1.00.10 A1.00.17 A1.00.11 A1.00.01 A1.00.16 A1.00.06
+A1.00.11 A1.00.17 A1.00.12 A1.00.02 A1.00.01 A1.00.16 A1.00.10
+A1.00.12 A1.15.16 A1.15.01 A1.15.11 A1.00.17 A1.00.02 A1.00.11
+A1.00.13 A1.00.20 A1.00.14 A1.00.19 A1.00.03 A1.00.18 A1.00.07
+A1.00.14 A1.00.21 A1.00.15 A1.00.05 A1.00.20 A1.00.19 A1.00.13 A1.00.03
+A1.00.15 A1.00.22 A1.00.16 A1.00.06 A1.00.21 A1.00.09 A1.00.05 A1.00.20 A1.00.14
+A1.00.16 A1.00.23 A1.00.17 A1.00.11 A1.00.22 A1.00.10 A1.00.06 A1.00.21 A1.00.15 A1.00.09
+A1.00.17 A1.15.22 A1.15.16 A1.15.11 A1.00.23 A1.00.12 A1.00.11 A1.00.22 A1.00.16 A1.00.10
+A1.00.18 A1.00.24 A1.00.19 A1.00.13 A1.01.21 A1.00.07 A1.01.19 A1.01.13 A1.00.08
+A1.00.19 A1.00.25 A1.00.20 A1.00.14 A1.00.24 A1.00.13 A1.01.21 A1.00.18 A1.00.07
+A1.00.20 A1.00.26 A1.00.21 A1.00.15 A1.00.25 A1.00.14 A1.00.24 A1.00.19 A1.00.13
+A1.00.21 A1.00.27 A1.00.22 A1.00.16 A1.00.26 A1.00.15 A1.00.25 A1.00.20 A1.00.14
+A1.00.22 A1.00.28 A1.00.23 A1.00.17 A1.00.27 A1.00.16 A1.00.26 A1.00.21 A1.00.15
+A1.00.23 A1.15.27 A1.15.22 A1.15.16 A1.00.28 A1.00.17 A1.00.27 A1.00.22 A1.00.16
+A1.00.24 A1.00.30 A1.00.25 A1.00.20 A1.00.29 A1.00.19 A1.01.26 A1.01.21 A1.00.18
+A1.00.25 A1.00.31 A1.00.26 A1.00.21 A1.00.30 A1.00.20 A1.00.29 A1.00.24 A1.00.19
+A1.00.26 A1.00.32 A1.00.27 A1.00.22 A1.00.31 A1.00.21 A1.00.30 A1.00.25 A1.00.20
+A1.00.27 A1.00.33 A1.00.28 A1.00.23 A1.00.32 A1.00.22 A1.00.31 A1.00.26 A1.00.21
+A1.00.28 A1.15.32 A1.15.27 A1.15.22 A1.00.33 A1.00.23 A1.00.32 A1.00.27 A1.00.22
+A1.00.29 A1.00.34 A1.00.30 A1.00.25 A1.01.33 A1.00.24 A1.01.31 A1.01.26 A1.01.21
+A1.00.30 A1.00.35 A1.00.31 A1.00.26 A1.00.34 A1.00.25 A1.01.33 A1.00.29 A1.00.24
+A1.00.31 A1.00.36 A1.00.32 A1.00.27 A1.00.35 A1.00.26 A1.00.34 A1.00.30 A1.00.25
+A1.00.32 A1.00.37 A1.00.33 A1.00.28 A1.00.36 A1.00.27 A1.00.35 A1.00.31 A1.00.26
+A1.00.33 A1.15.36 A1.15.32 A1.15.27 A1.00.37 A1.00.28 A1.00.36 A1.00.32 A1.00.27
+A1.00.34 A1.00.39 A1.00.35 A1.00.31 A1.00.38 A1.00.30 A1.01.38 A1.01.33 A1.00.29
+A1.00.35 A1.00.40 A1.00.36 A1.00.32 A1.00.39 A1.00.31 A1.00.38 A1.00.34 A1.00.30
+A1.00.36 A1.00.41 A1.00.37 A1.00.33 A1.00.40 A1.00.32 A1.00.39 A1.00.35 A1.00.31
+A1.00.37 A1.15.40 A1.15.36 A1.15.32 A1.00.41 A1.00.33 A1.00.40 A1.00.36 A1.00.32
+A1.00.38 A1.00.43 A1.00.39 A1.00.35 A1.00.42 A1.00.34 A1.01.41 A1.01.38 A1.01.33
+A1.00.39 A1.00.44 A1.00.40 A1.00.36 A1.00.43 A1.00.35 A1.00.42 A1.00.38 A1.00.34
+A1.00.40 A1.00.45 A1.00.41 A1.00.37 A1.00.44 A1.00.36 A1.00.43 A1.00.39 A1.00.35
+A1.00.41 A1.15.44 A1.15.40 A1.15.36 A1.00.45 A1.00.37 A1.00.44 A1.00.40 A1.00.36
+A1.00.42 A1.00.46 A1.00.43 A1.00.39 A1.01.45 A1.00.38 A1.01.43 A1.01.41 A1.01.38
+A1.00.43 A1.00.47 A1.00.44 A1.00.40 A1.00.46 A1.00.39 A1.01.45 A1.00.42 A1.00.38
+A1.00.44 A1.00.48 A1.00.45 A1.00.41 A1.00.47 A1.00.40 A1.00.46 A1.00.43 A1.00.39
+A1.00.45 A1.15.47 A1.15.44 A1.15.40 A1.00.48 A1.00.41 A1.00.47 A1.00.44 A1.00.40
+A1.00.46 A1.00.50 A1.00.47 A1.00.44 A1.00.49 A1.00.43 A1.01.47 A1.01.45 A1.00.42
+A1.00.47 A1.00.51 A1.00.48 A1.00.45 A1.00.50 A1.00.44 A1.00.49 A1.00.46 A1.00.43
+A1.00.48 A1.15.50 A1.15.47 A1.15.44 A1.00.51 A1.00.45 A1.00.50 A1.00.47 A1.00.44
+A1.00.49 A1.00.52 A1.00.50 A1.00.47 A1.01.50 A1.00.46 A1.01.49 A1.01.47 A1.01.45
+A1.00.50 A1.00.53 A1.00.51 A1.00.48 A1.00.52 A1.00.47 A1.01.50 A1.00.49 A1.00.46
+A1.00.51 A1.15.52 A1.15.50 A1.15.47 A1.00.53 A1.00.48 A1.00.52 A1.00.50 A1.00.47
+A1.00.52 A1.00.53 A1.00.51 A1.00.55 A1.00.54 A1.00.50 A1.01.54 A1.01.53 A1.01.50 A1.00.49
+A1.00.53 A1.15.52 A1.15.50 A1.15.56 A1.00.56 A1.00.51 A1.00.55 A1.00.54 A1.00.52 A1.00.50
+A1.00.54 A1.00.53 A1.00.58 A1.00.55 A1.00.57 A1.00.52 A1.01.58 A1.01.54
+A1.00.55 A1.00.59 A1.00.56 A1.00.53 A1.00.58 A1.00.57 A1.00.54 A1.00.52
+A1.00.56 A1.15.52 A1.15.59 A1.15.56 A1.00.59 A1.00.53 A1.00.58 A1.00.55
+A1.00.57 A1.00.61 A1.00.58 A1.00.55 A1.00.60 A1.00.54 A1.01.60 A1.01.58 A1.01.54
+A1.00.58 A1.00.62 A1.00.59 A1.00.56 A1.00.61 A1.00.55 A1.00.60 A1.00.57 A1.00.54
+A1.00.59 A1.15.62 A1.15.59 A1.15.56 A1.00.62 A1.00.56 A1.00.61 A1.00.58 A1.00.55
+A1.00.60 A1.00.61 A1.00.58 A1.00.57 A1.01.62 A1.01.60 A1.01.58
+A1.00.61 A1.00.62 A1.00.59 A1.00.58 A1.00.60 A1.00.57
+A1.00.62 A1.15.62 A1.15.59 A1.00.59 A1.00.61 A1.00.58
+A1.01.00 A1.01.11 A1.01.02 A1.01.03
+A1.01.01 A1.01.12 A1.01.08 A1.01.04 A1.01.06
+A1.01.02 A1.01.13 A1.01.05 A1.01.11 A1.01.00
+A1.01.03 A1.01.11 A1.01.00 A1.01.09 A1.01.07
+A1.01.04 A1.01.10 A1.01.08 A1.01.01
+A1.01.05 A1.01.13 A1.00.08 A1.00.00 A1.01.11 A1.01.02
+A1.01.06 A1.01.17 A1.01.12 A1.01.01 A1.02.11 A1.02.06
+A1.01.07 A1.01.14 A1.01.09 A1.01.03 A1.01.10
+A1.01.08 A1.01.15 A1.01.10 A1.01.12 A1.01.04 A1.01.01
+A1.01.09 A1.01.16 A1.01.11 A1.01.14 A1.01.03 A1.01.07
+A1.01.10 A1.01.18 A1.01.14 A1.01.07 A1.01.15 A1.01.12 A1.01.08 A1.01.04
+A1.01.11 A1.01.19 A1.01.13 A1.01.05 A1.01.16 A1.01.02 A1.01.00 A1.01.14 A1.01.09 A1.01.03
+A1.01.12 A1.01.20 A1.01.15 A1.01.10 A1.01.17 A1.01.08 A1.01.01 A1.02.11 A1.01.06
+A1.01.13 A1.01.21 A1.00.18 A1.00.07 A1.01.19 A1.00.08 A1.01.05 A1.01.16 A1.01.11 A1.01.02
+A1.01.14 A1.01.22 A1.01.16 A1.01.11 A1.01.18 A1.01.09 A1.01.07 A1.01.15 A1.01.10
+A1.01.15 A1.01.23 A1.01.18 A1.01.14 A1.01.20 A1.01.10 A1.01.17 A1.01.12 A1.01.08
+A1.01.16 A1.01.24 A1.01.19 A1.01.13 A1.01.22 A1.01.11 A1.01.18 A1.01.14 A1.01.09
+A1.01.17 A1.01.25 A1.01.20 A1.01.15 A1.02.20 A1.01.12 A1.02.16 A1.02.11 A1.01.06
+A1.01.18 A1.01.27 A1.01.22 A1.01.16 A1.01.23 A1.01.14 A1.01.20 A1.01.15 A1.01.10
+A1.01.19 A1.01.26 A1.01.21 A1.00.18 A1.01.24 A1.01.13 A1.01.22 A1.01.16 A1.01.11
+A1.01.20 A1.01.28 A1.01.23 A1.01.18 A1.01.25 A1.01.15 A1.02.20 A1.01.17 A1.01.12
+A1.01.21 A1.00.29 A1.00.24 A1.00.19 A1.01.26 A1.00.18 A1.01.24 A1.01.19 A1.01.13
+A1.01.22 A1.01.29 A1.01.24 A1.01.19 A1.01.27 A1.01.16 A1.01.23 A1.01.18 A1.01.14
+A1.01.23 A1.01.30 A1.01.27 A1.01.22 A1.01.28 A1.01.18 A1.01.25 A1.01.20 A1.01.15
+A1.01.24 A1.01.31 A1.01.26 A1.01.21 A1.01.29 A1.01.19 A1.01.27 A1.01.22 A1.01.16
+A1.01.25 A1.01.32 A1.01.28 A1.01.23 A1.02.27 A1.01.20 A1.02.23 A1.02.20 A1.01.17
+A1.01.26 A1.01.33 A1.00.29 A1.00.24 A1.01.31 A1.01.21 A1.01.29 A1.01.24 A1.01.19
+A1.01.27 A1.01.34 A1.01.29 A1.01.24 A1.01.30 A1.01.22 A1.01.28 A1.01.23 A1.01.18
+A1.01.28 A1.01.35 A1.01.30 A1.01.27 A1.01.32 A1.01.23 A1.02.27 A1.01.25 A1.01.20
+A1.01.29 A1.01.36 A1.01.31 A1.01.26 A1.01.34 A1.01.24 A1.01.30 A1.01.27 A1.01.22
+A1.01.30 A1.01.37 A1.01.34 A1.01.29 A1.01.35 A1.01.27 A1.01.32 A1.01.28 A1.01.23
+A1.01.31 A1.01.38 A1.01.33 A1.00.29 A1.01.36 A1.01.26 A1.01.34 A1.01.29 A1.01.24
+A1.01.32 A1.02.35 A1.01.35 A1.01.30 A1.02.33 A1.01.28 A1.02.30 A1.02.27 A1.01.25
+A1.01.33 A1.00.38 A1.00.34 A1.00.30 A1.01.38 A1.00.29 A1.01.36 A1.01.31 A1.01.26
+A1.01.34 A1.01.39 A1.01.36 A1.01.31 A1.01.37 A1.01.29 A1.01.35 A1.01.30 A1.01.27
+A1.01.35 A1.01.40 A1.01.37 A1.01.34 A1.02.35 A1.01.30 A1.02.33 A1.01.32 A1.01.28
+A1.01.36 A1.01.41 A1.01.38 A1.01.33 A1.01.39 A1.01.31 A1.01.37 A1.01.34 A1.01.29
+A1.01.37 A1.01.42 A1.01.39 A1.01.36 A1.01.40 A1.01.34 A1.02.35 A1.01.35 A1.01.30
+A1.01.38 A1.00.42 A1.00.38 A1.00.34 A1.01.41 A1.01.33 A1.01.39 A1.01.36 A1.01.31
+A1.01.39 A1.01.43 A1.01.41 A1.01.38 A1.01.42 A1.01.36 A1.01.40 A1.01.37 A1.01.34
+A1.01.40 A1.01.44 A1.01.42 A1.01.39 A1.02.42 A1.01.37 A1.02.39 A1.02.35 A1.01.35
+A1.01.41 A1.01.45 A1.00.42 A1.00.38 A1.01.43 A1.01.38 A1.01.42 A1.01.39 A1.01.36
+A1.01.42 A1.01.46 A1.01.43 A1.01.41 A1.01.44 A1.01.39 A1.02.42 A1.01.40 A1.01.37
+A1.01.43 A1.01.47 A1.01.45 A1.00.42 A1.01.46 A1.01.41 A1.01.44 A1.01.42 A1.01.39
+A1.01.44 A1.01.48 A1.01.46 A1.01.43 A1.02.46 A1.01.42 A1.02.44 A1.02.42 A1.01.40
+A1.01.45 A1.00.49 A1.00.46 A1.00.43 A1.01.47 A1.00.42 A1.01.46 A1.01.43 A1.01.41
+A1.01.46 A1.01.49 A1.01.47 A1.01.45 A1.01.48 A1.01.43 A1.02.46 A1.01.44 A1.01.42
+A1.01.47 A1.01.50 A1.00.49 A1.00.46 A1.01.49 A1.01.45 A1.01.48 A1.01.46 A1.01.43
+A1.01.48 A1.01.51 A1.01.49 A1.01.47 A1.02.50 A1.01.46 A1.02.48 A1.02.46 A1.01.44
+A1.01.49 A1.01.50 A1.00.49 A1.01.52 A1.01.51 A1.01.47 A1.02.50 A1.01.48 A1.01.46
+A1.01.50 A1.00.52 A1.00.50 A1.01.54 A1.01.53 A1.00.49 A1.01.52 A1.01.51 A1.01.49 A1.01.47
+A1.01.51 A1.01.50 A1.01.57 A1.01.55 A1.01.52 A1.02.54 A1.01.49 A1.02.52 A1.02.51 A1.02.50 A1.01.48
+A1.01.52 A1.01.56 A1.01.53 A1.01.50 A1.01.55 A1.01.51 A1.01.49
+A1.01.53 A1.00.52 A1.01.58 A1.01.54 A1.01.56 A1.01.50 A1.01.55 A1.01.52
+A1.01.54 A1.00.57 A1.00.54 A1.00.52 A1.01.58 A1.01.56 A1.01.53 A1.01.50
+A1.01.55 A1.01.59 A1.01.56 A1.01.53 A1.01.57 A1.01.52 A1.02.54 A1.01.51
+A1.01.56 A1.01.60 A1.01.58 A1.01.54 A1.01.59 A1.01.53 A1.01.57 A1.01.55 A1.01.52
+A1.01.57 A1.01.61 A1.01.59 A1.01.56 A1.02.58 A1.01.55 A1.02.56 A1.02.54 A1.01.51
+A1.01.58 A1.00.60 A1.00.57 A1.00.54 A1.01.60 A1.01.54 A1.01.59 A1.01.56 A1.01.53
+A1.01.59 A1.01.62 A1.01.60 A1.01.58 A1.01.61 A1.01.56 A1.02.58 A1.01.57 A1.01.55
+A1.01.60 A1.00.60 A1.00.57 A1.01.62 A1.01.58 A1.01.61 A1.01.59 A1.01.56
+A1.01.61 A1.01.62 A1.01.60 A1.02.61 A1.01.59 A1.02.60 A1.02.58 A1.01.57
+A1.01.62 A1.00.60 A1.01.60 A1.02.61 A1.01.61 A1.01.59
+A1.02.00 A1.02.09 A1.02.05 A1.02.02
+A1.02.01 A1.02.12 A1.02.06 A1.02.03
+A1.02.02 A1.02.13 A1.02.09 A1.02.00 A1.03.04
+A1.02.03 A1.02.12 A1.02.06 A1.02.08 A1.02.01 A1.02.07
+A1.02.04 A1.02.10 A1.02.07 A1.02.05
+A1.02.05 A1.02.14 A1.02.10 A1.02.09 A1.02.04 A1.02.00
+A1.02.06 A1.02.16 A1.02.11 A1.01.06 A1.02.12 A1.02.03 A1.02.01
+A1.02.07 A1.02.10 A1.02.08 A1.02.03 A1.02.04
+A1.02.08 A1.02.15 A1.02.12 A1.02.10 A1.02.03 A1.02.07
+A1.02.09 A1.02.17 A1.02.14 A1.02.10 A1.02.13 A1.02.05 A1.02.00 A1.03.04 A1.02.02
+A1.02.10 A1.02.18 A1.02.15 A1.02.12 A1.02.14 A1.02.08 A1.02.07 A1.02.09 A1.02.05 A1.02.04
+A1.02.11 A1.02.20 A1.01.17 A1.01.12 A1.02.16 A1.01.06 A1.02.12 A1.02.06
+A1.02.12 A1.02.19 A1.02.16 A1.02.11 A1.02.15 A1.02.06 A1.02.10 A1.02.08 A1.02.03 A1.02.01
+A1.02.13 A1.03.20 A1.02.17 A1.02.14 A1.03.15 A1.02.09 A1.03.10 A1.03.04 A1.02.02
+A1.02.14 A1.02.21 A1.02.18 A1.02.15 A1.02.17 A1.02.10 A1.02.13 A1.02.09 A1.02.05
+A1.02.15 A1.02.22 A1.02.19 A1.02.16 A1.02.18 A1.02.12 A1.02.14 A1.02.10 A1.02.08
+A1.02.16 A1.02.23 A1.02.20 A1.01.17 A1.02.19 A1.02.11 A1.02.15 A1.02.12 A1.02.06
+A1.02.17 A1.02.24 A1.02.21 A1.02.18 A1.03.20 A1.02.14 A1.03.15 A1.02.13 A1.02.09
+A1.02.18 A1.02.25 A1.02.22 A1.02.19 A1.02.21 A1.02.15 A1.02.17 A1.02.14 A1.02.10
+A1.02.19 A1.02.26 A1.02.23 A1.02.20 A1.02.22 A1.02.16 A1.02.18 A1.02.15 A1.02.12
+A1.02.20 A1.02.27 A1.01.25 A1.01.20 A1.02.23 A1.01.17 A1.02.19 A1.02.16 A1.02.11
+A1.02.21 A1.02.28 A1.02.25 A1.02.22 A1.02.24 A1.02.18 A1.03.20 A1.02.17 A1.02.14
+A1.02.22 A1.02.29 A1.02.26 A1.02.23 A1.02.25 A1.02.19 A1.02.21 A1.02.18 A1.02.15
+A1.02.23 A1.02.30 A1.02.27 A1.01.25 A1.02.26 A1.02.20 A1.02.22 A1.02.19 A1.02.16
+A1.02.24 A1.03.29 A1.02.28 A1.02.25 A1.03.25 A1.02.21 A1.03.21 A1.03.20 A1.02.17
+A1.02.25 A1.02.31 A1.02.29 A1.02.26 A1.02.28 A1.02.22 A1.02.24 A1.02.21 A1.02.18
+A1.02.26 A1.02.32 A1.02.30 A1.02.27 A1.02.29 A1.02.23 A1.02.25 A1.02.22 A1.02.19
+A1.02.27 A1.02.33 A1.01.32 A1.01.28 A1.02.30 A1.01.25 A1.02.26 A1.02.23 A1.02.20
+A1.02.28 A1.03.33 A1.02.31 A1.02.29 A1.03.29 A1.02.25 A1.03.25 A1.02.24 A1.02.21
+A1.02.29 A1.02.34 A1.02.32 A1.02.30 A1.02.31 A1.02.26 A1.02.28 A1.02.25 A1.02.22
+A1.02.30 A1.02.36 A1.02.33 A1.01.32 A1.02.32 A1.02.27 A1.02.29 A1.02.26 A1.02.23
+A1.02.31 A1.02.37 A1.02.34 A1.02.32 A1.03.33 A1.02.29 A1.03.29 A1.02.28 A1.02.25
+A1.02.32 A1.02.38 A1.02.36 A1.02.33 A1.02.34 A1.02.30 A1.02.31 A1.02.29 A1.02.26
+A1.02.33 A1.02.39 A1.02.35 A1.01.35 A1.02.36 A1.01.32 A1.02.32 A1.02.30 A1.02.27
+A1.02.34 A1.02.40 A1.02.38 A1.02.36 A1.02.37 A1.02.32 A1.03.33 A1.02.31 A1.02.29
+A1.02.35 A1.02.42 A1.01.40 A1.01.37 A1.02.39 A1.01.35 A1.02.36 A1.02.33 A1.01.32
+A1.02.36 A1.02.41 A1.02.39 A1.02.35 A1.02.38 A1.02.33 A1.02.34 A1.02.32 A1.02.30
+A1.02.37 A1.03.40 A1.02.40 A1.02.38 A1.03.37 A1.02.34 A1.03.34 A1.03.33 A1.02.31
+A1.02.38 A1.02.43 A1.02.41 A1.02.39 A1.02.40 A1.02.36 A1.02.37 A1.02.34 A1.02.32
+A1.02.39 A1.02.44 A1.02.42 A1.01.40 A1.02.41 A1.02.35 A1.02.38 A1.02.36 A1.02.33
+A1.02.40 A1.03.43 A1.02.43 A1.02.41 A1.03.40 A1.02.38 A1.03.37 A1.02.37 A1.02.34
+A1.02.41 A1.02.45 A1.02.44 A1.02.42 A1.02.43 A1.02.39 A1.02.40 A1.02.38 A1.02.36
+A1.02.42 A1.02.46 A1.01.44 A1.01.42 A1.02.44 A1.01.40 A1.02.41 A1.02.39 A1.02.35
+A1.02.43 A1.02.47 A1.02.45 A1.02.44 A1.03.43 A1.02.41 A1.03.40 A1.02.40 A1.02.38
+A1.02.44 A1.02.48 A1.02.46 A1.01.44 A1.02.45 A1.02.42 A1.02.43 A1.02.41 A1.02.39
+A1.02.45 A1.02.49 A1.02.48 A1.02.46 A1.02.47 A1.02.44 A1.03.43 A1.02.43 A1.02.41
+A1.02.46 A1.02.50 A1.01.48 A1.01.46 A1.02.48 A1.01.44 A1.02.45 A1.02.44 A1.02.42
+A1.02.47 A1.03.48 A1.02.49 A1.02.48 A1.03.46 A1.02.45 A1.03.44 A1.03.43 A1.02.43
+A1.02.48 A1.02.51 A1.02.50 A1.01.48 A1.02.49 A1.02.46 A1.02.47 A1.02.45 A1.02.44
+A1.02.49 A1.02.51 A1.02.50 A1.03.50 A1.03.48 A1.02.48 A1.03.46 A1.02.47 A1.02.45
+A1.02.50 A1.01.51 A1.01.49 A1.02.52 A1.02.51 A1.01.48 A1.02.49 A1.02.48 A1.02.46
+A1.02.51 A1.01.51 A1.02.55 A1.02.53 A1.02.52 A1.03.54 A1.02.50 A1.03.50 A1.03.48 A1.02.49 A1.02.48
+A1.02.52 A1.02.56 A1.02.54 A1.01.51 A1.02.53 A1.02.51 A1.02.50
+A1.02.53 A1.02.57 A1.02.56 A1.02.54 A1.02.55 A1.02.52 A1.03.54 A1.02.51
+A1.02.54 A1.02.58 A1.01.57 A1.01.55 A1.02.56 A1.01.51 A1.02.53 A1.02.52
+A1.02.55 A1.02.59 A1.02.57 A1.02.56 A1.03.58 A1.02.53 A1.03.55 A1.03.54 A1.02.51
+A1.02.56 A1.02.60 A1.02.58 A1.01.57 A1.02.57 A1.02.54 A1.02.55 A1.02.53 A1.02.52
+A1.02.57 A1.02.60 A1.02.58 A1.02.59 A1.02.56 A1.03.58 A1.02.55 A1.02.53
+A1.02.58 A1.02.61 A1.01.61 A1.01.59 A1.02.60 A1.01.57 A1.02.57 A1.02.56 A1.02.54
+A1.02.59 A1.02.62 A1.02.60 A1.03.61 A1.02.57 A1.03.59 A1.03.58 A1.02.55
+A1.02.60 A1.02.61 A1.01.61 A1.02.62 A1.02.58 A1.02.59 A1.02.57 A1.02.56
+A1.02.61 A1.01.62 A1.01.61 A1.02.62 A1.02.60 A1.02.58
+A1.02.62 A1.02.61 A1.02.60 A1.03.62 A1.03.61 A1.02.59
+A1.03.00 A1.04.07 A1.03.08 A1.03.06 A1.04.00
+A1.03.01 A1.03.10 A1.03.04 A1.03.02
+A1.03.02 A1.03.11 A1.03.10 A1.03.03 A1.03.01
+A1.03.03 A1.03.11 A1.03.10 A1.03.05 A1.03.02
+A1.03.04 A1.03.15 A1.02.13 A1.02.09 A1.03.10 A1.02.02 A1.03.01
+A1.03.05 A1.03.12 A1.03.11 A1.03.07 A1.03.03
+A1.03.06 A1.03.14 A1.03.13 A1.03.12 A1.03.08 A1.03.09 A1.03.00
+A1.03.07 A1.03.12 A1.03.11 A1.03.09 A1.03.05
+A1.03.08 A1.04.14 A1.03.14 A1.03.13 A1.04.07 A1.03.06 A1.04.00 A1.03.00
+A1.03.09 A1.03.13 A1.03.12 A1.03.06 A1.03.07
+A1.03.10 A1.03.16 A1.03.15 A1.02.13 A1.03.11 A1.03.04 A1.03.03 A1.03.02 A1.03.01
+A1.03.11 A1.03.17 A1.03.16 A1.03.15 A1.03.12 A1.03.10 A1.03.07 A1.03.05 A1.03.03 A1.03.02
+A1.03.12 A1.03.18 A1.03.17 A1.03.16 A1.03.13 A1.03.11 A1.03.06 A1.03.09 A1.03.07 A1.03.05
+A1.03.13 A1.03.19 A1.03.18 A1.03.17 A1.03.14 A1.03.12 A1.03.08 A1.03.06 A1.03.09
+A1.03.14 A1.04.19 A1.03.19 A1.03.18 A1.04.14 A1.03.13 A1.04.07 A1.03.08 A1.03.06
+A1.03.15 A1.03.21 A1.03.20 A1.02.17 A1.03.16 A1.02.13 A1.03.11 A1.03.10 A1.03.04
+A1.03.16 A1.03.22 A1.03.21 A1.03.20 A1.03.17 A1.03.15 A1.03.12 A1.03.11 A1.03.10
+A1.03.17 A1.03.23 A1.03.22 A1.03.21 A1.03.18 A1.03.16 A1.03.13 A1.03.12 A1.03.11
+A1.03.18 A1.03.24 A1.03.23 A1.03.22 A1.03.19 A1.03.17 A1.03.14 A1.03.13 A1.03.12
+A1.03.19 A1.04.24 A1.03.24 A1.03.23 A1.04.19 A1.03.18 A1.04.14 A1.03.14 A1.03.13
+A1.03.20 A1.03.25 A1.02.24 A1.02.21 A1.03.21 A1.02.17 A1.03.16 A1.03.15 A1.02.13
+A1.03.21 A1.03.26 A1.03.25 A1.02.24 A1.03.22 A1.03.20 A1.03.17 A1.03.16 A1.03.15
+A1.03.22 A1.03.27 A1.03.26 A1.03.25 A1.03.23 A1.03.21 A1.03.18 A1.03.17 A1.03.16
+A1.03.23 A1.03.28 A1.03.27 A1.03.26 A1.03.24 A1.03.22 A1.03.19 A1.03.18 A1.03.17
+A1.03.24 A1.04.28 A1.03.28 A1.03.27 A1.04.24 A1.03.23 A1.04.19 A1.03.19 A1.03.18
+A1.03.25 A1.03.30 A1.03.29 A1.02.28 A1.03.26 A1.02.24 A1.03.22 A1.03.21 A1.03.20
+A1.03.26 A1.03.31 A1.03.30 A1.03.29 A1.03.27 A1.03.25 A1.03.23 A1.03.22 A1.03.21
+A1.03.27 A1.03.32 A1.03.31 A1.03.30 A1.03.28 A1.03.26 A1.03.24 A1.03.23 A1.03.22
+A1.03.28 A1.04.32 A1.03.32 A1.03.31 A1.04.28 A1.03.27 A1.04.24 A1.03.24 A1.03.23
+A1.03.29 A1.03.34 A1.03.33 A1.02.31 A1.03.30 A1.02.28 A1.03.26 A1.03.25 A1.02.24
+A1.03.30 A1.03.35 A1.03.34 A1.03.33 A1.03.31 A1.03.29 A1.03.27 A1.03.26 A1.03.25
+A1.03.31 A1.03.36 A1.03.35 A1.03.34 A1.03.32 A1.03.30 A1.03.28 A1.03.27 A1.03.26
+A1.03.32 A1.04.36 A1.03.36 A1.03.35 A1.04.32 A1.03.31 A1.04.28 A1.03.28 A1.03.27
+A1.03.33 A1.03.37 A1.02.37 A1.02.34 A1.03.34 A1.02.31 A1.03.30 A1.03.29 A1.02.28
+A1.03.34 A1.03.38 A1.03.37 A1.02.37 A1.03.35 A1.03.33 A1.03.31 A1.03.30 A1.03.29
+A1.03.35 A1.03.39 A1.03.38 A1.03.37 A1.03.36 A1.03.34 A1.03.32 A1.03.31 A1.03.30
+A1.03.36 A1.04.39 A1.03.39 A1.03.38 A1.04.36 A1.03.35 A1.04.32 A1.03.32 A1.03.31
+A1.03.37 A1.03.41 A1.03.40 A1.02.40 A1.03.38 A1.02.37 A1.03.35 A1.03.34 A1.03.33
+A1.03.38 A1.03.42 A1.03.41 A1.03.40 A1.03.39 A1.03.37 A1.03.36 A1.03.35 A1.03.34
+A1.03.39 A1.04.42 A1.03.42 A1.03.41 A1.04.39 A1.03.38 A1.04.36 A1.03.36 A1.03.35
+A1.03.40 A1.03.44 A1.03.43 A1.02.43 A1.03.41 A1.02.40 A1.03.38 A1.03.37 A1.02.37
+A1.03.41 A1.03.45 A1.03.44 A1.03.43 A1.03.42 A1.03.40 A1.03.39 A1.03.38 A1.03.37
+A1.03.42 A1.04.45 A1.03.45 A1.03.44 A1.04.42 A1.03.41 A1.04.39 A1.03.39 A1.03.38
+A1.03.43 A1.03.46 A1.02.47 A1.02.45 A1.03.44 A1.02.43 A1.03.41 A1.03.40 A1.02.40
+A1.03.44 A1.03.47 A1.03.46 A1.02.47 A1.03.45 A1.03.43 A1.03.42 A1.03.41 A1.03.40
+A1.03.45 A1.04.47 A1.03.47 A1.03.46 A1.04.45 A1.03.44 A1.04.42 A1.03.42 A1.03.41
+A1.03.46 A1.03.49 A1.03.48 A1.02.49 A1.03.47 A1.02.47 A1.03.45 A1.03.44 A1.03.43
+A1.03.47 A1.04.49 A1.03.49 A1.03.48 A1.04.47 A1.03.46 A1.04.45 A1.03.45 A1.03.44
+A1.03.48 A1.02.51 A1.03.52 A1.03.51 A1.03.50 A1.03.49 A1.02.49 A1.03.47 A1.03.46 A1.02.47
+A1.03.49 A1.04.53 A1.03.53 A1.03.52 A1.03.51 A1.04.49 A1.03.48 A1.04.47 A1.03.47 A1.03.46
+A1.03.50 A1.03.55 A1.03.54 A1.02.51 A1.03.51 A1.03.48 A1.02.49
+A1.03.51 A1.03.56 A1.03.55 A1.03.54 A1.03.52 A1.03.50 A1.03.49 A1.03.48
+A1.03.52 A1.03.57 A1.03.56 A1.03.55 A1.03.53 A1.03.51 A1.03.49 A1.03.48
+A1.03.53 A1.04.57 A1.03.57 A1.03.56 A1.04.53 A1.03.52 A1.04.49 A1.03.49
+A1.03.54 A1.03.58 A1.02.55 A1.02.53 A1.03.55 A1.02.51 A1.03.51 A1.03.50
+A1.03.55 A1.03.59 A1.03.58 A1.02.55 A1.03.56 A1.03.54 A1.03.52 A1.03.51 A1.03.50
+A1.03.56 A1.03.60 A1.03.59 A1.03.58 A1.03.57 A1.03.55 A1.03.53 A1.03.52 A1.03.51
+A1.03.57 A1.04.60 A1.03.60 A1.03.59 A1.04.57 A1.03.56 A1.04.53 A1.03.53 A1.03.52
+A1.03.58 A1.03.61 A1.02.59 A1.02.57 A1.03.59 A1.02.55 A1.03.56 A1.03.55 A1.03.54
+A1.03.59 A1.03.62 A1.03.61 A1.02.59 A1.03.60 A1.03.58 A1.03.57 A1.03.56 A1.03.55
+A1.03.60 A1.04.62 A1.03.62 A1.03.61 A1.04.60 A1.03.59 A1.04.57 A1.03.57 A1.03.56
+A1.03.61 A1.02.62 A1.03.62 A1.02.59 A1.03.60 A1.03.59 A1.03.58
+A1.03.62 A1.02.62 A1.04.62 A1.03.61 A1.04.60 A1.03.60 A1.03.59
+A1.04.00 A1.04.05 A1.04.07 A1.03.08 A1.03.00
+A1.04.01 A1.04.10 A1.04.02 A1.04.03
+A1.04.02 A1.05.04 A1.05.05 A1.04.08 A1.04.10 A1.04.01
+A1.04.03 A1.04.10 A1.04.11 A1.04.01 A1.04.04
+A1.04.04 A1.04.11 A1.04.12 A1.04.03 A1.04.06
+A1.04.05 A1.04.12 A1.04.13 A1.04.14 A1.04.09 A1.04.07 A1.04.00
+A1.04.06 A1.04.11 A1.04.12 A1.04.04 A1.04.09
+A1.04.07 A1.04.13 A1.04.14 A1.03.14 A1.04.05 A1.03.08 A1.04.00 A1.03.00
+A1.04.08 A1.05.14 A1.04.15 A1.05.05 A1.04.10 A1.04.02
+A1.04.09 A1.04.12 A1.04.13 A1.04.06 A1.04.05
+A1.04.10 A1.05.14 A1.04.15 A1.04.16 A1.04.08 A1.04.11 A1.04.02 A1.04.01 A1.04.03
+A1.04.11 A1.04.15 A1.04.16 A1.04.17 A1.04.10 A1.04.12 A1.04.03 A1.04.04 A1.04.06
+A1.04.12 A1.04.16 A1.04.17 A1.04.18 A1.04.11 A1.04.13 A1.04.04 A1.04.06 A1.04.09 A1.04.05
+A1.04.13 A1.04.17 A1.04.18 A1.04.19 A1.04.12 A1.04.14 A1.04.09 A1.04.05 A1.04.07
+A1.04.14 A1.04.18 A1.04.19 A1.03.19 A1.04.13 A1.03.14 A1.04.05 A1.04.07 A1.03.08
+A1.04.15 A1.05.18 A1.04.20 A1.04.21 A1.05.14 A1.04.16 A1.04.08 A1.04.10 A1.04.11
+A1.04.16 A1.04.20 A1.04.21 A1.04.22 A1.04.15 A1.04.17 A1.04.10 A1.04.11 A1.04.12
+A1.04.17 A1.04.21 A1.04.22 A1.04.23 A1.04.16 A1.04.18 A1.04.11 A1.04.12 A1.04.13
+A1.04.18 A1.04.22 A1.04.23 A1.04.24 A1.04.17 A1.04.19 A1.04.12 A1.04.13 A1.04.14
+A1.04.19 A1.04.23 A1.04.24 A1.03.24 A1.04.18 A1.03.19 A1.04.13 A1.04.14 A1.03.14
+A1.04.20 A1.05.22 A1.05.25 A1.04.25 A1.05.18 A1.04.21 A1.05.14 A1.04.15 A1.04.16
+A1.04.21 A1.05.25 A1.04.25 A1.04.26 A1.04.20 A1.04.22 A1.04.15 A1.04.16 A1.04.17
+A1.04.22 A1.04.25 A1.04.26 A1.04.27 A1.04.21 A1.04.23 A1.04.16 A1.04.17 A1.04.18
+A1.04.23 A1.04.26 A1.04.27 A1.04.28 A1.04.22 A1.04.24 A1.04.17 A1.04.18 A1.04.19
+A1.04.24 A1.04.27 A1.04.28 A1.03.28 A1.04.23 A1.03.24 A1.04.18 A1.04.19 A1.03.19
+A1.04.25 A1.05.29 A1.04.29 A1.04.30 A1.05.25 A1.04.26 A1.04.20 A1.04.21 A1.04.22
+A1.04.26 A1.04.29 A1.04.30 A1.04.31 A1.04.25 A1.04.27 A1.04.21 A1.04.22 A1.04.23
+A1.04.27 A1.04.30 A1.04.31 A1.04.32 A1.04.26 A1.04.28 A1.04.22 A1.04.23 A1.04.24
+A1.04.28 A1.04.31 A1.04.32 A1.03.32 A1.04.27 A1.03.28 A1.04.23 A1.04.24 A1.03.24
+A1.04.29 A1.05.32 A1.04.33 A1.04.34 A1.05.29 A1.04.30 A1.05.25 A1.04.25 A1.04.26
+A1.04.30 A1.04.33 A1.04.34 A1.04.35 A1.04.29 A1.04.31 A1.04.25 A1.04.26 A1.04.27
+A1.04.31 A1.04.34 A1.04.35 A1.04.36 A1.04.30 A1.04.32 A1.04.26 A1.04.27 A1.04.28
+A1.04.32 A1.04.35 A1.04.36 A1.03.36 A1.04.31 A1.03.32 A1.04.27 A1.04.28 A1.03.28
+A1.04.33 A1.05.35 A1.05.38 A1.04.37 A1.05.32 A1.04.34 A1.05.29 A1.04.29 A1.04.30
+A1.04.34 A1.05.38 A1.04.37 A1.04.38 A1.04.33 A1.04.35 A1.04.29 A1.04.30 A1.04.31
+A1.04.35 A1.04.37 A1.04.38 A1.04.39 A1.04.34 A1.04.36 A1.04.30 A1.04.31 A1.04.32
+A1.04.36 A1.04.38 A1.04.39 A1.03.39 A1.04.35 A1.03.36 A1.04.31 A1.04.32 A1.03.32
+A1.04.37 A1.05.41 A1.04.40 A1.04.41 A1.05.38 A1.04.38 A1.04.33 A1.04.34 A1.04.35
+A1.04.38 A1.04.40 A1.04.41 A1.04.42 A1.04.37 A1.04.39 A1.04.34 A1.04.35 A1.04.36
+A1.04.39 A1.04.41 A1.04.42 A1.03.42 A1.04.38 A1.03.39 A1.04.35 A1.04.36 A1.03.36
+A1.04.40 A1.05.44 A1.04.43 A1.04.44 A1.05.41 A1.04.41 A1.05.38 A1.04.37 A1.04.38
+A1.04.41 A1.04.43 A1.04.44 A1.04.45 A1.04.40 A1.04.42 A1.04.37 A1.04.38 A1.04.39
+A1.04.42 A1.04.44 A1.04.45 A1.03.45 A1.04.41 A1.03.42 A1.04.38 A1.04.39 A1.03.39
+A1.04.43 A1.05.46 A1.05.48 A1.04.46 A1.05.44 A1.04.44 A1.05.41 A1.04.40 A1.04.41
+A1.04.44 A1.05.48 A1.04.46 A1.04.47 A1.04.43 A1.04.45 A1.04.40 A1.04.41 A1.04.42
+A1.04.45 A1.04.46 A1.04.47 A1.03.47 A1.04.44 A1.03.45 A1.04.41 A1.04.42 A1.03.42
+A1.04.46 A1.05.50 A1.04.48 A1.04.49 A1.05.48 A1.04.47 A1.04.43 A1.04.44 A1.04.45
+A1.04.47 A1.04.48 A1.04.49 A1.03.49 A1.04.46 A1.03.47 A1.04.44 A1.04.45 A1.03.45
+A1.04.48 A1.05.52 A1.04.50 A1.04.51 A1.04.52 A1.05.50 A1.04.49 A1.05.48 A1.04.46 A1.04.47
+A1.04.49 A1.04.51 A1.04.52 A1.04.53 A1.03.53 A1.04.48 A1.03.49 A1.04.46 A1.04.47 A1.03.47
+A1.04.50 A1.05.52 A1.04.54 A1.04.55 A1.04.51 A1.05.50 A1.04.48
+A1.04.51 A1.04.54 A1.04.55 A1.04.56 A1.04.50 A1.04.52 A1.04.48 A1.04.49
+A1.04.52 A1.04.55 A1.04.56 A1.04.57 A1.04.51 A1.04.53 A1.04.48 A1.04.49
+A1.04.53 A1.04.56 A1.04.57 A1.03.57 A1.04.52 A1.03.53 A1.04.49 A1.03.49
+A1.04.54 A1.05.54 A1.05.56 A1.04.58 A1.05.52 A1.04.55 A1.04.50 A1.04.51
+A1.04.55 A1.05.56 A1.04.58 A1.04.59 A1.04.54 A1.04.56 A1.04.50 A1.04.51 A1.04.52
+A1.04.56 A1.04.58 A1.04.59 A1.04.60 A1.04.55 A1.04.57 A1.04.51 A1.04.52 A1.04.53
+A1.04.57 A1.04.59 A1.04.60 A1.03.60 A1.04.56 A1.03.57 A1.04.52 A1.04.53 A1.03.53
+A1.04.58 A1.05.58 A1.05.60 A1.04.61 A1.05.56 A1.04.59 A1.04.54 A1.04.55 A1.04.56
+A1.04.59 A1.05.60 A1.04.61 A1.04.62 A1.04.58 A1.04.60 A1.04.55 A1.04.56 A1.04.57
+A1.04.60 A1.04.61 A1.04.62 A1.03.62 A1.04.59 A1.03.60 A1.04.56 A1.04.57 A1.03.57
+A1.04.61 A1.05.62 A1.05.60 A1.04.62 A1.04.58 A1.04.59 A1.04.60
+A1.04.62 A1.04.61 A1.03.62 A1.04.59 A1.04.60 A1.03.60
+A1.05.00 A1.05.08 A1.05.03
+A1.05.01 A1.05.10 A1.05.14 A1.05.02 A1.05.04
+A1.05.02 A1.05.07 A1.05.10 A1.05.01
+A1.05.03 A1.05.08 A1.05.12 A1.05.00 A1.05.09
+A1.05.04 A1.05.10 A1.05.14 A1.05.01 A1.05.05 A1.04.02
+A1.05.05 A1.05.14 A1.05.04 A1.04.08 A1.04.02
+A1.05.06 A1.05.09 A1.05.11
+A1.05.07 A1.05.11 A1.05.15 A1.05.10 A1.05.02
+A1.05.08 A1.06.06 A1.05.13 A1.05.17 A1.05.12 A1.05.00 A1.05.03
+A1.05.09 A1.05.12 A1.05.16 A1.05.03 A1.05.11 A1.05.06
+A1.05.10 A1.05.11 A1.05.15 A1.05.18 A1.05.07 A1.05.14 A1.05.02 A1.05.01 A1.05.04
+A1.05.11 A1.05.12 A1.05.16 A1.05.19 A1.05.09 A1.05.15 A1.05.06 A1.05.07 A1.05.10
+A1.05.12 A1.05.13 A1.05.17 A1.05.20 A1.05.08 A1.05.16 A1.05.03 A1.05.09 A1.05.11
+A1.05.13 A1.06.12 A1.06.17 A1.05.21 A1.06.06 A1.05.17 A1.05.08 A1.05.12
+A1.05.14 A1.05.15 A1.05.18 A1.04.20 A1.05.10 A1.04.15 A1.05.01 A1.05.04 A1.05.05 A1.04.08 A1.04.10
+A1.05.15 A1.05.16 A1.05.19 A1.05.22 A1.05.11 A1.05.18 A1.05.07 A1.05.10 A1.05.14
+A1.05.16 A1.05.17 A1.05.20 A1.05.23 A1.05.12 A1.05.19 A1.05.09 A1.05.11 A1.05.15
+A1.05.17 A1.06.17 A1.05.21 A1.05.24 A1.05.13 A1.05.20 A1.05.08 A1.05.12 A1.05.16
+A1.05.18 A1.05.19 A1.05.22 A1.05.25 A1.05.15 A1.04.20 A1.05.10 A1.05.14 A1.04.15
+A1.05.19 A1.05.20 A1.05.23 A1.05.26 A1.05.16 A1.05.22 A1.05.11 A1.05.15 A1.05.18
+A1.05.20 A1.05.21 A1.05.24 A1.05.27 A1.05.17 A1.05.23 A1.05.12 A1.05.16 A1.05.19
+A1.05.21 A1.06.20 A1.06.25 A1.05.28 A1.06.17 A1.05.24 A1.05.13 A1.05.17 A1.05.20
+A1.05.22 A1.05.23 A1.05.26 A1.05.29 A1.05.19 A1.05.25 A1.05.15 A1.05.18 A1.04.20
+A1.05.23 A1.05.24 A1.05.27 A1.05.30 A1.05.20 A1.05.26 A1.05.16 A1.05.19 A1.05.22
+A1.05.24 A1.06.25 A1.05.28 A1.05.31 A1.05.21 A1.05.27 A1.05.17 A1.05.20 A1.05.23
+A1.05.25 A1.05.26 A1.05.29 A1.04.29 A1.05.22 A1.04.25 A1.05.18 A1.04.20 A1.04.21
+A1.05.26 A1.05.27 A1.05.30 A1.05.32 A1.05.23 A1.05.29 A1.05.19 A1.05.22 A1.05.25
+A1.05.27 A1.05.28 A1.05.31 A1.05.33 A1.05.24 A1.05.30 A1.05.20 A1.05.23 A1.05.26
+A1.05.28 A1.06.28 A1.06.32 A1.05.34 A1.06.25 A1.05.31 A1.05.21 A1.05.24 A1.05.27
+A1.05.29 A1.05.30 A1.05.32 A1.04.33 A1.05.26 A1.04.29 A1.05.22 A1.05.25 A1.04.25
+A1.05.30 A1.05.31 A1.05.33 A1.05.35 A1.05.27 A1.05.32 A1.05.23 A1.05.26 A1.05.29
+A1.05.31 A1.06.32 A1.05.34 A1.05.36 A1.05.28 A1.05.33 A1.05.24 A1.05.27 A1.05.30
+A1.05.32 A1.05.33 A1.05.35 A1.05.38 A1.05.30 A1.04.33 A1.05.26 A1.05.29 A1.04.29
+A1.05.33 A1.05.34 A1.05.36 A1.05.39 A1.05.31 A1.05.35 A1.05.27 A1.05.30 A1.05.32
+A1.05.34 A1.06.35 A1.05.37 A1.05.40 A1.06.32 A1.05.36 A1.05.28 A1.05.31 A1.05.33
+A1.05.35 A1.05.36 A1.05.39 A1.05.41 A1.05.33 A1.05.38 A1.05.30 A1.05.32 A1.04.33
+A1.05.36 A1.05.37 A1.05.40 A1.05.42 A1.05.34 A1.05.39 A1.05.31 A1.05.33 A1.05.35
+A1.05.37 A1.06.37 A1.06.40 A1.05.43 A1.06.35 A1.05.40 A1.06.32 A1.05.34 A1.05.36
+A1.05.38 A1.05.39 A1.05.41 A1.04.40 A1.05.35 A1.04.37 A1.05.32 A1.04.33 A1.04.34
+A1.05.39 A1.05.40 A1.05.42 A1.05.44 A1.05.36 A1.05.41 A1.05.33 A1.05.35 A1.05.38
+A1.05.40 A1.06.40 A1.05.43 A1.05.45 A1.05.37 A1.05.42 A1.05.34 A1.05.36 A1.05.39
+A1.05.41 A1.05.42 A1.05.44 A1.04.43 A1.05.39 A1.04.40 A1.05.35 A1.05.38 A1.04.37
+A1.05.42 A1.05.43 A1.05.45 A1.05.46 A1.05.40 A1.05.44 A1.05.36 A1.05.39 A1.05.41
+A1.05.43 A1.06.42 A1.06.44 A1.05.47 A1.06.40 A1.05.45 A1.05.37 A1.05.40 A1.05.42
+A1.05.44 A1.05.45 A1.05.46 A1.05.48 A1.05.42 A1.04.43 A1.05.39 A1.05.41 A1.04.40
+A1.05.45 A1.06.44 A1.05.47 A1.05.49 A1.05.43 A1.05.46 A1.05.40 A1.05.42 A1.05.44
+A1.05.46 A1.05.47 A1.05.49 A1.05.50 A1.05.45 A1.05.48 A1.05.42 A1.05.44 A1.04.43
+A1.05.47 A1.06.46 A1.06.48 A1.05.51 A1.06.44 A1.05.49 A1.05.43 A1.05.45 A1.05.46
+A1.05.48 A1.05.49 A1.05.50 A1.04.48 A1.05.46 A1.04.46 A1.05.44 A1.04.43 A1.04.44
+A1.05.49 A1.06.48 A1.05.51 A1.05.52 A1.05.47 A1.05.50 A1.05.45 A1.05.46 A1.05.48
+A1.05.50 A1.05.51 A1.05.52 A1.04.50 A1.05.49 A1.04.48 A1.05.46 A1.05.48 A1.04.46
+A1.05.51 A1.06.49 A1.06.51 A1.05.53 A1.06.48 A1.05.52 A1.05.47 A1.05.49 A1.05.50
+A1.05.52 A1.06.51 A1.05.53 A1.05.54 A1.05.56 A1.05.51 A1.04.54 A1.04.50 A1.05.49 A1.05.50 A1.04.48
+A1.05.53 A1.06.51 A1.05.55 A1.05.57 A1.05.54 A1.05.51 A1.05.52
+A1.05.54 A1.05.55 A1.05.57 A1.05.58 A1.05.53 A1.05.56 A1.05.52 A1.04.54
+A1.05.55 A1.06.54 A1.06.56 A1.05.59 A1.06.51 A1.05.57 A1.05.53 A1.05.54
+A1.05.56 A1.05.57 A1.05.58 A1.05.60 A1.05.54 A1.04.58 A1.05.52 A1.04.54 A1.04.55
+A1.05.57 A1.06.56 A1.05.59 A1.05.61 A1.05.55 A1.05.58 A1.05.53 A1.05.54 A1.05.56
+A1.05.58 A1.05.59 A1.05.61 A1.05.62 A1.05.57 A1.05.60 A1.05.54 A1.05.56 A1.04.58
+A1.05.59 A1.06.61 A1.06.58 A1.06.60 A1.06.56 A1.05.61 A1.05.55 A1.05.57 A1.05.58
+A1.05.60 A1.05.61 A1.05.62 A1.05.58 A1.04.61 A1.05.56 A1.04.58 A1.04.59
+A1.05.61 A1.06.61 A1.06.60 A1.05.59 A1.05.62 A1.05.57 A1.05.58 A1.05.60
+A1.05.62 A1.05.61 A1.05.58 A1.05.60 A1.04.61
+A1.06.00 A1.06.04 A1.06.08 A1.06.12 A1.06.06
+A1.06.01 A1.06.05 A1.06.11 A1.06.03
+A1.06.02 A1.07.08 A1.06.13 A1.06.05
+A1.06.03 A1.06.11 A1.06.01 A1.06.09 A1.06.07
+A1.06.04 A1.06.10 A1.06.08 A1.06.00
+A1.06.05 A1.06.13 A1.06.02 A1.06.11 A1.06.01
+A1.06.06 A1.06.12 A1.06.17 A1.06.00 A1.05.13 A1.05.08
+A1.06.07 A1.06.03 A1.06.09 A1.06.14 A1.06.10
+A1.06.08 A1.06.10 A1.06.15 A1.06.04 A1.06.12 A1.06.00
+A1.06.09 A1.06.11 A1.06.16 A1.06.03 A1.06.14 A1.06.07
+A1.06.10 A1.06.14 A1.06.18 A1.06.07 A1.06.15 A1.06.04 A1.06.08 A1.06.12
+A1.06.11 A1.06.13 A1.06.19 A1.06.05 A1.06.16 A1.06.01 A1.06.03 A1.06.09 A1.06.14
+A1.06.12 A1.06.10 A1.06.15 A1.06.20 A1.06.08 A1.06.17 A1.06.00 A1.06.06 A1.05.13
+A1.06.13 A1.07.07 A1.07.17 A1.06.21 A1.07.08 A1.06.19 A1.06.02 A1.06.05 A1.06.11 A1.06.16
+A1.06.14 A1.06.11 A1.06.16 A1.06.22 A1.06.09 A1.06.18 A1.06.07 A1.06.10 A1.06.15
+A1.06.15 A1.06.14 A1.06.18 A1.06.23 A1.06.10 A1.06.20 A1.06.08 A1.06.12 A1.06.17
+A1.06.16 A1.06.13 A1.06.19 A1.06.24 A1.06.11 A1.06.22 A1.06.09 A1.06.14 A1.06.18
+A1.06.17 A1.06.15 A1.06.20 A1.06.25 A1.06.12 A1.05.21 A1.06.06 A1.05.13 A1.05.17
+A1.06.18 A1.06.16 A1.06.22 A1.06.27 A1.06.14 A1.06.23 A1.06.10 A1.06.15 A1.06.20
+A1.06.19 A1.07.17 A1.06.21 A1.06.26 A1.06.13 A1.06.24 A1.06.11 A1.06.16 A1.06.22
+A1.06.20 A1.06.18 A1.06.23 A1.06.28 A1.06.15 A1.06.25 A1.06.12 A1.06.17 A1.05.21
+A1.06.21 A1.07.18 A1.07.23 A1.07.28 A1.07.17 A1.06.26 A1.06.13 A1.06.19 A1.06.24
+A1.06.22 A1.06.19 A1.06.24 A1.06.29 A1.06.16 A1.06.27 A1.06.14 A1.06.18 A1.06.23
+A1.06.23 A1.06.22 A1.06.27 A1.06.30 A1.06.18 A1.06.28 A1.06.15 A1.06.20 A1.06.25
+A1.06.24 A1.06.21 A1.06.26 A1.06.31 A1.06.19 A1.06.29 A1.06.16 A1.06.22 A1.06.27
+A1.06.25 A1.06.23 A1.06.28 A1.06.32 A1.06.20 A1.05.28 A1.06.17 A1.05.21 A1.05.24
+A1.06.26 A1.07.23 A1.07.28 A1.06.33 A1.06.21 A1.06.31 A1.06.19 A1.06.24 A1.06.29
+A1.06.27 A1.06.24 A1.06.29 A1.06.34 A1.06.22 A1.06.30 A1.06.18 A1.06.23 A1.06.28
+A1.06.28 A1.06.27 A1.06.30 A1.06.35 A1.06.23 A1.06.32 A1.06.20 A1.06.25 A1.05.28
+A1.06.29 A1.06.26 A1.06.31 A1.06.36 A1.06.24 A1.06.34 A1.06.22 A1.06.27 A1.06.30
+A1.06.30 A1.06.29 A1.06.34 A1.06.37 A1.06.27 A1.06.35 A1.06.23 A1.06.28 A1.06.32
+A1.06.31 A1.07.28 A1.06.33 A1.06.38 A1.06.26 A1.06.36 A1.06.24 A1.06.29 A1.06.34
+A1.06.32 A1.06.30 A1.06.35 A1.05.37 A1.06.28 A1.05.34 A1.06.25 A1.05.28 A1.05.31
+A1.06.33 A1.07.29 A1.07.33 A1.07.37 A1.07.28 A1.06.38 A1.06.26 A1.06.31 A1.06.36
+A1.06.34 A1.06.31 A1.06.36 A1.06.39 A1.06.29 A1.06.37 A1.06.27 A1.06.30 A1.06.35
+A1.06.35 A1.06.34 A1.06.37 A1.06.40 A1.06.30 A1.05.37 A1.06.28 A1.06.32 A1.05.34
+A1.06.36 A1.06.33 A1.06.38 A1.06.41 A1.06.31 A1.06.39 A1.06.29 A1.06.34 A1.06.37
+A1.06.37 A1.06.36 A1.06.39 A1.06.42 A1.06.34 A1.06.40 A1.06.30 A1.06.35 A1.05.37
+A1.06.38 A1.07.33 A1.07.37 A1.07.41 A1.06.33 A1.06.41 A1.06.31 A1.06.36 A1.06.39
+A1.06.39 A1.06.38 A1.06.41 A1.06.43 A1.06.36 A1.06.42 A1.06.34 A1.06.37 A1.06.40
+A1.06.40 A1.06.39 A1.06.42 A1.06.44 A1.06.37 A1.05.43 A1.06.35 A1.05.37 A1.05.40
+A1.06.41 A1.07.37 A1.07.41 A1.06.45 A1.06.38 A1.06.43 A1.06.36 A1.06.39 A1.06.42
+A1.06.42 A1.06.41 A1.06.43 A1.06.46 A1.06.39 A1.06.44 A1.06.37 A1.06.40 A1.05.43
+A1.06.43 A1.07.41 A1.06.45 A1.06.47 A1.06.41 A1.06.46 A1.06.39 A1.06.42 A1.06.44
+A1.06.44 A1.06.43 A1.06.46 A1.06.48 A1.06.42 A1.05.47 A1.06.40 A1.05.43 A1.05.45
+A1.06.45 A1.07.42 A1.07.45 A1.07.48 A1.07.41 A1.06.47 A1.06.41 A1.06.43 A1.06.46
+A1.06.46 A1.06.45 A1.06.47 A1.06.49 A1.06.43 A1.06.48 A1.06.42 A1.06.44 A1.05.47
+A1.06.47 A1.07.45 A1.07.48 A1.06.50 A1.06.45 A1.06.49 A1.06.43 A1.06.46 A1.06.48
+A1.06.48 A1.06.47 A1.06.49 A1.06.51 A1.06.46 A1.05.51 A1.06.44 A1.05.47 A1.05.49
+A1.06.49 A1.07.48 A1.06.50 A1.06.52 A1.06.47 A1.06.51 A1.06.46 A1.06.48 A1.05.51
+A1.06.50 A1.07.49 A1.07.51 A1.07.53 A1.07.48 A1.06.53 A1.06.52 A1.06.47 A1.06.49 A1.06.51
+A1.06.51 A1.06.50 A1.06.52 A1.06.54 A1.06.56 A1.06.49 A1.05.55 A1.05.53 A1.06.48 A1.05.51 A1.05.52
+A1.06.52 A1.06.50 A1.06.53 A1.06.55 A1.06.54 A1.06.49 A1.06.51
+A1.06.53 A1.07.51 A1.07.53 A1.06.57 A1.06.50 A1.06.55 A1.06.52 A1.06.54
+A1.06.54 A1.06.53 A1.06.55 A1.06.58 A1.06.52 A1.06.56 A1.06.51 A1.05.55
+A1.06.55 A1.07.53 A1.06.57 A1.06.59 A1.06.53 A1.06.58 A1.06.52 A1.06.54 A1.06.56
+A1.06.56 A1.06.55 A1.06.58 A1.06.60 A1.06.54 A1.05.59 A1.06.51 A1.05.55 A1.05.57
+A1.06.57 A1.07.54 A1.07.57 A1.07.60 A1.07.53 A1.06.59 A1.06.53 A1.06.55 A1.06.58
+A1.06.58 A1.06.57 A1.06.59 A1.06.61 A1.06.55 A1.06.60 A1.06.54 A1.06.56 A1.05.59
+A1.06.59 A1.07.57 A1.07.60 A1.06.62 A1.06.57 A1.06.61 A1.06.55 A1.06.58 A1.06.60
+A1.06.60 A1.06.59 A1.06.61 A1.06.58 A1.06.56 A1.05.59 A1.05.61
+A1.06.61 A1.06.62 A1.06.59 A1.06.58 A1.06.60 A1.05.59 A1.05.61
+A1.06.62 A1.07.61 A1.07.60 A1.06.59 A1.06.61
+A1.07.00 A1.07.12 A1.07.07
+A1.07.01 A1.08.02 A1.08.12 A1.07.11 A1.07.10 A1.07.02
+A1.07.02 A1.07.01 A1.07.10 A1.07.09 A1.07.06 A1.07.03
+A1.07.03 A1.07.02 A1.07.15 A1.07.06 A1.07.14 A1.07.05
+A1.07.04 A1.07.14 A1.07.05 A1.07.13 A1.07.12
+A1.07.05 A1.07.03 A1.07.14 A1.07.04 A1.07.13
+A1.07.06 A1.07.02 A1.07.09 A1.07.15 A1.07.03 A1.07.14
+A1.07.07 A1.07.12 A1.07.18 A1.07.00 A1.07.17 A1.07.08 A1.06.13
+A1.07.08 A1.07.07 A1.07.17 A1.06.13 A1.06.02
+A1.07.09 A1.07.16 A1.07.10 A1.07.02 A1.07.15 A1.07.06
+A1.07.10 A1.07.01 A1.07.11 A1.07.16 A1.07.02 A1.07.09 A1.07.15
+A1.07.11 A1.08.17 A1.08.02 A1.08.12 A1.07.01 A1.07.16 A1.07.10
+A1.07.12 A1.07.04 A1.07.13 A1.07.19 A1.07.18 A1.07.00 A1.07.07 A1.07.17
+A1.07.13 A1.07.14 A1.07.20 A1.07.05 A1.07.04 A1.07.19 A1.07.12 A1.07.18
+A1.07.14 A1.07.15 A1.07.21 A1.07.06 A1.07.03 A1.07.20 A1.07.05 A1.07.04 A1.07.13 A1.07.19
+A1.07.15 A1.07.16 A1.07.22 A1.07.10 A1.07.09 A1.07.21 A1.07.06 A1.07.03 A1.07.14 A1.07.20
+A1.07.16 A1.08.17 A1.08.23 A1.08.12 A1.07.11 A1.07.22 A1.07.10 A1.07.09 A1.07.15 A1.07.21
+A1.07.17 A1.07.12 A1.07.18 A1.07.23 A1.07.07 A1.06.21 A1.07.08 A1.06.13 A1.06.19
+A1.07.18 A1.07.13 A1.07.19 A1.07.24 A1.07.12 A1.07.23 A1.07.07 A1.07.17 A1.06.21
+A1.07.19 A1.07.14 A1.07.20 A1.07.25 A1.07.13 A1.07.24 A1.07.12 A1.07.18 A1.07.23
+A1.07.20 A1.07.15 A1.07.21 A1.07.26 A1.07.14 A1.07.25 A1.07.13 A1.07.19 A1.07.24
+A1.07.21 A1.07.16 A1.07.22 A1.07.27 A1.07.15 A1.07.26 A1.07.14 A1.07.20 A1.07.25
+A1.07.22 A1.08.17 A1.08.23 A1.08.28 A1.07.16 A1.07.27 A1.07.15 A1.07.21 A1.07.26
+A1.07.23 A1.07.19 A1.07.24 A1.07.29 A1.07.18 A1.07.28 A1.07.17 A1.06.21 A1.06.26
+A1.07.24 A1.07.20 A1.07.25 A1.07.30 A1.07.19 A1.07.29 A1.07.18 A1.07.23 A1.07.28
+A1.07.25 A1.07.21 A1.07.26 A1.07.31 A1.07.20 A1.07.30 A1.07.19 A1.07.24 A1.07.29
+A1.07.26 A1.07.22 A1.07.27 A1.07.32 A1.07.21 A1.07.31 A1.07.20 A1.07.25 A1.07.30
+A1.07.27 A1.08.23 A1.08.28 A1.08.33 A1.07.22 A1.07.32 A1.07.21 A1.07.26 A1.07.31
+A1.07.28 A1.07.24 A1.07.29 A1.07.33 A1.07.23 A1.06.33 A1.06.21 A1.06.26 A1.06.31
+A1.07.29 A1.07.25 A1.07.30 A1.07.34 A1.07.24 A1.07.33 A1.07.23 A1.07.28 A1.06.33
+A1.07.30 A1.07.26 A1.07.31 A1.07.35 A1.07.25 A1.07.34 A1.07.24 A1.07.29 A1.07.33
+A1.07.31 A1.07.27 A1.07.32 A1.07.36 A1.07.26 A1.07.35 A1.07.25 A1.07.30 A1.07.34
+A1.07.32 A1.08.28 A1.08.33 A1.08.37 A1.07.27 A1.07.36 A1.07.26 A1.07.31 A1.07.35
+A1.07.33 A1.07.30 A1.07.34 A1.07.38 A1.07.29 A1.07.37 A1.07.28 A1.06.33 A1.06.38
+A1.07.34 A1.07.31 A1.07.35 A1.07.39 A1.07.30 A1.07.38 A1.07.29 A1.07.33 A1.07.37
+A1.07.35 A1.07.32 A1.07.36 A1.07.40 A1.07.31 A1.07.39 A1.07.30 A1.07.34 A1.07.38
+A1.07.36 A1.08.33 A1.08.37 A1.08.41 A1.07.32 A1.07.40 A1.07.31 A1.07.35 A1.07.39
+A1.07.37 A1.07.34 A1.07.38 A1.07.42 A1.07.33 A1.07.41 A1.06.33 A1.06.38 A1.06.41
+A1.07.38 A1.07.35 A1.07.39 A1.07.43 A1.07.34 A1.07.42 A1.07.33 A1.07.37 A1.07.41
+A1.07.39 A1.07.36 A1.07.40 A1.07.44 A1.07.35 A1.07.43 A1.07.34 A1.07.38 A1.07.42
+A1.07.40 A1.08.37 A1.08.41 A1.08.45 A1.07.36 A1.07.44 A1.07.35 A1.07.39 A1.07.43
+A1.07.41 A1.07.38 A1.07.42 A1.07.45 A1.07.37 A1.06.45 A1.06.38 A1.06.41 A1.06.43
+A1.07.42 A1.07.39 A1.07.43 A1.07.46 A1.07.38 A1.07.45 A1.07.37 A1.07.41 A1.06.45
+A1.07.43 A1.07.40 A1.07.44 A1.07.47 A1.07.39 A1.07.46 A1.07.38 A1.07.42 A1.07.45
+A1.07.44 A1.08.41 A1.08.45 A1.08.48 A1.07.40 A1.07.47 A1.07.39 A1.07.43 A1.07.46
+A1.07.45 A1.07.43 A1.07.46 A1.07.49 A1.07.42 A1.07.48 A1.07.41 A1.06.45 A1.06.47
+A1.07.46 A1.07.44 A1.07.47 A1.07.50 A1.07.43 A1.07.49 A1.07.42 A1.07.45 A1.07.48
+A1.07.47 A1.08.45 A1.08.48 A1.08.51 A1.07.44 A1.07.50 A1.07.43 A1.07.46 A1.07.49
+A1.07.48 A1.07.46 A1.07.49 A1.07.51 A1.07.45 A1.06.50 A1.06.45 A1.06.47 A1.06.49
+A1.07.49 A1.07.47 A1.07.50 A1.07.52 A1.07.46 A1.07.51 A1.07.45 A1.07.48 A1.06.50
+A1.07.50 A1.08.48 A1.08.51 A1.08.53 A1.07.47 A1.07.52 A1.07.46 A1.07.49 A1.07.51
+A1.07.51 A1.07.50 A1.07.52 A1.07.55 A1.07.49 A1.07.54 A1.07.53 A1.07.48 A1.06.50 A1.06.53
+A1.07.52 A1.08.51 A1.08.53 A1.08.56 A1.07.50 A1.07.56 A1.07.55 A1.07.49 A1.07.51 A1.07.54
+A1.07.53 A1.07.51 A1.07.54 A1.07.57 A1.06.57 A1.06.50 A1.06.53 A1.06.55
+A1.07.54 A1.07.52 A1.07.55 A1.07.58 A1.07.51 A1.07.57 A1.07.53 A1.06.57
+A1.07.55 A1.07.52 A1.07.56 A1.07.59 A1.07.58 A1.07.51 A1.07.54 A1.07.57
+A1.07.56 A1.08.53 A1.08.56 A1.08.59 A1.07.52 A1.07.59 A1.07.55 A1.07.58
+A1.07.57 A1.07.55 A1.07.58 A1.07.61 A1.07.54 A1.07.60 A1.07.53 A1.06.57 A1.06.59
+A1.07.58 A1.07.56 A1.07.59 A1.07.62 A1.07.55 A1.07.61 A1.07.54 A1.07.57 A1.07.60
+A1.07.59 A1.08.56 A1.08.59 A1.08.62 A1.07.56 A1.07.62 A1.07.55 A1.07.58 A1.07.61
+A1.07.60 A1.07.58 A1.07.61 A1.07.57 A1.06.62 A1.06.57 A1.06.59
+A1.07.61 A1.07.59 A1.07.62 A1.07.58 A1.07.57 A1.07.60 A1.06.62
+A1.07.62 A1.08.59 A1.08.62 A1.07.59 A1.07.58 A1.07.61
+A1.08.00 A1.09.05 A1.08.08 A1.08.07
+A1.08.01 A1.08.04 A1.08.06 A1.08.10 A1.08.11 A1.08.02
+A1.08.02 A1.08.01 A1.08.11 A1.08.12 A1.07.01 A1.07.11
+A1.08.03 A1.08.07 A1.08.13 A1.08.14
+A1.08.04 A1.08.05 A1.08.09 A1.08.06 A1.08.01
+A1.08.05 A1.08.14 A1.08.15 A1.08.04 A1.08.09
+A1.08.06 A1.08.15 A1.08.04 A1.08.09 A1.08.16 A1.08.01 A1.08.10
+A1.08.07 A1.09.13 A1.08.00 A1.08.08 A1.08.18 A1.08.03 A1.08.13 A1.08.19
+A1.08.08 A1.09.05 A1.09.13 A1.08.00 A1.08.07 A1.08.18
+A1.08.09 A1.08.05 A1.08.15 A1.08.04 A1.08.06 A1.08.16
+A1.08.10 A1.08.06 A1.08.16 A1.08.01 A1.08.11 A1.08.17
+A1.08.11 A1.08.16 A1.08.01 A1.08.10 A1.08.17 A1.08.02 A1.08.12
+A1.08.12 A1.08.11 A1.08.17 A1.08.02 A1.07.01 A1.07.11 A1.07.16
+A1.08.13 A1.08.07 A1.08.18 A1.08.03 A1.08.19 A1.08.14 A1.08.20
+A1.08.14 A1.08.03 A1.08.13 A1.08.19 A1.08.20 A1.08.05 A1.08.15 A1.08.21
+A1.08.15 A1.08.14 A1.08.20 A1.08.05 A1.08.21 A1.08.09 A1.08.06 A1.08.16 A1.08.22
+A1.08.16 A1.08.15 A1.08.21 A1.08.09 A1.08.06 A1.08.22 A1.08.10 A1.08.11 A1.08.17 A1.08.23
+A1.08.17 A1.08.16 A1.08.22 A1.08.10 A1.08.11 A1.08.23 A1.08.12 A1.07.11 A1.07.16 A1.07.22
+A1.08.18 A1.09.13 A1.09.19 A1.08.08 A1.08.07 A1.09.21 A1.08.13 A1.08.19 A1.08.24
+A1.08.19 A1.08.07 A1.08.18 A1.09.21 A1.08.13 A1.08.24 A1.08.14 A1.08.20 A1.08.25
+A1.08.20 A1.08.13 A1.08.19 A1.08.24 A1.08.14 A1.08.25 A1.08.15 A1.08.21 A1.08.26
+A1.08.21 A1.08.14 A1.08.20 A1.08.25 A1.08.15 A1.08.26 A1.08.16 A1.08.22 A1.08.27
+A1.08.22 A1.08.15 A1.08.21 A1.08.26 A1.08.16 A1.08.27 A1.08.17 A1.08.23 A1.08.28
+A1.08.23 A1.08.16 A1.08.22 A1.08.27 A1.08.17 A1.08.28 A1.07.16 A1.07.22 A1.07.27
+A1.08.24 A1.08.18 A1.09.21 A1.09.26 A1.08.19 A1.08.29 A1.08.20 A1.08.25 A1.08.30
+A1.08.25 A1.08.19 A1.08.24 A1.08.29 A1.08.20 A1.08.30 A1.08.21 A1.08.26 A1.08.31
+A1.08.26 A1.08.20 A1.08.25 A1.08.30 A1.08.21 A1.08.31 A1.08.22 A1.08.27 A1.08.32
+A1.08.27 A1.08.21 A1.08.26 A1.08.31 A1.08.22 A1.08.32 A1.08.23 A1.08.28 A1.08.33
+A1.08.28 A1.08.22 A1.08.27 A1.08.32 A1.08.23 A1.08.33 A1.07.22 A1.07.27 A1.07.32
+A1.08.29 A1.09.21 A1.09.26 A1.09.31 A1.08.24 A1.09.33 A1.08.25 A1.08.30 A1.08.34
+A1.08.30 A1.08.24 A1.08.29 A1.09.33 A1.08.25 A1.08.34 A1.08.26 A1.08.31 A1.08.35
+A1.08.31 A1.08.25 A1.08.30 A1.08.34 A1.08.26 A1.08.35 A1.08.27 A1.08.32 A1.08.36
+A1.08.32 A1.08.26 A1.08.31 A1.08.35 A1.08.27 A1.08.36 A1.08.28 A1.08.33 A1.08.37
+A1.08.33 A1.08.27 A1.08.32 A1.08.36 A1.08.28 A1.08.37 A1.07.27 A1.07.32 A1.07.36
+A1.08.34 A1.08.29 A1.09.33 A1.09.38 A1.08.30 A1.08.38 A1.08.31 A1.08.35 A1.08.39
+A1.08.35 A1.08.30 A1.08.34 A1.08.38 A1.08.31 A1.08.39 A1.08.32 A1.08.36 A1.08.40
+A1.08.36 A1.08.31 A1.08.35 A1.08.39 A1.08.32 A1.08.40 A1.08.33 A1.08.37 A1.08.41
+A1.08.37 A1.08.32 A1.08.36 A1.08.40 A1.08.33 A1.08.41 A1.07.32 A1.07.36 A1.07.40
+A1.08.38 A1.09.33 A1.09.38 A1.09.41 A1.08.34 A1.08.42 A1.08.35 A1.08.39 A1.08.43
+A1.08.39 A1.08.34 A1.08.38 A1.08.42 A1.08.35 A1.08.43 A1.08.36 A1.08.40 A1.08.44
+A1.08.40 A1.08.35 A1.08.39 A1.08.43 A1.08.36 A1.08.44 A1.08.37 A1.08.41 A1.08.45
+A1.08.41 A1.08.36 A1.08.40 A1.08.44 A1.08.37 A1.08.45 A1.07.36 A1.07.40 A1.07.44
+A1.08.42 A1.09.38 A1.09.41 A1.09.43 A1.08.38 A1.09.45 A1.08.39 A1.08.43 A1.08.46
+A1.08.43 A1.08.38 A1.08.42 A1.09.45 A1.08.39 A1.08.46 A1.08.40 A1.08.44 A1.08.47
+A1.08.44 A1.08.39 A1.08.43 A1.08.46 A1.08.40 A1.08.47 A1.08.41 A1.08.45 A1.08.48
+A1.08.45 A1.08.40 A1.08.44 A1.08.47 A1.08.41 A1.08.48 A1.07.40 A1.07.44 A1.07.47
+A1.08.46 A1.08.42 A1.09.45 A1.09.47 A1.08.43 A1.08.49 A1.08.44 A1.08.47 A1.08.50
+A1.08.47 A1.08.43 A1.08.46 A1.08.49 A1.08.44 A1.08.50 A1.08.45 A1.08.48 A1.08.51
+A1.08.48 A1.08.44 A1.08.47 A1.08.50 A1.08.45 A1.08.51 A1.07.44 A1.07.47 A1.07.50
+A1.08.49 A1.09.45 A1.09.47 A1.09.49 A1.08.46 A1.09.50 A1.08.47 A1.08.50 A1.08.52
+A1.08.50 A1.08.46 A1.08.49 A1.09.50 A1.08.47 A1.08.52 A1.08.48 A1.08.51 A1.08.53
+A1.08.51 A1.08.47 A1.08.50 A1.08.52 A1.08.48 A1.08.53 A1.07.47 A1.07.50 A1.07.52
+A1.08.52 A1.08.49 A1.09.50 A1.09.53 A1.08.50 A1.09.54 A1.08.54 A1.08.51 A1.08.53 A1.08.55
+A1.08.53 A1.08.50 A1.08.52 A1.08.54 A1.08.51 A1.08.55 A1.08.56 A1.07.50 A1.07.52 A1.07.56
+A1.08.54 A1.08.52 A1.09.54 A1.09.58 A1.08.57 A1.08.53 A1.08.55 A1.08.58
+A1.08.55 A1.08.52 A1.08.54 A1.08.57 A1.08.53 A1.08.58 A1.08.56 A1.08.59
+A1.08.56 A1.08.53 A1.08.55 A1.08.58 A1.08.59 A1.07.52 A1.07.56 A1.07.59
+A1.08.57 A1.09.54 A1.09.58 A1.09.60 A1.08.54 A1.08.60 A1.08.55 A1.08.58 A1.08.61
+A1.08.58 A1.08.54 A1.08.57 A1.08.60 A1.08.55 A1.08.61 A1.08.56 A1.08.59 A1.08.62
+A1.08.59 A1.08.55 A1.08.58 A1.08.61 A1.08.56 A1.08.62 A1.07.56 A1.07.59 A1.07.62
+A1.08.60 A1.09.58 A1.09.60 A1.09.62 A1.08.57 A1.08.58 A1.08.61
+A1.08.61 A1.08.57 A1.08.60 A1.08.58 A1.08.59 A1.08.62
+A1.08.62 A1.08.58 A1.08.61 A1.08.59 A1.07.59 A1.07.62
+A1.09.00 A1.09.03 A1.09.11 A1.09.02
+A1.09.01 A1.09.06 A1.09.12 A1.09.08 A1.09.04
+A1.09.02 A1.09.00 A1.09.11 A1.09.05 A1.09.13
+A1.09.03 A1.09.07 A1.09.09 A1.09.00 A1.09.11
+A1.09.04 A1.09.01 A1.09.08 A1.09.10
+A1.09.05 A1.09.11 A1.09.02 A1.09.13 A1.08.00 A1.08.08
+A1.09.06 A1.10.06 A1.10.12 A1.09.01 A1.09.12 A1.09.17
+A1.09.07 A1.09.10 A1.09.14 A1.09.03 A1.09.09
+A1.09.08 A1.09.01 A1.09.12 A1.09.04 A1.09.10 A1.09.15
+A1.09.09 A1.09.07 A1.09.14 A1.09.03 A1.09.11 A1.09.16
+A1.09.10 A1.09.12 A1.09.08 A1.09.04 A1.09.15 A1.09.07 A1.09.14 A1.09.18
+A1.09.11 A1.09.14 A1.09.03 A1.09.09 A1.09.00 A1.09.16 A1.09.02 A1.09.05 A1.09.13 A1.09.19
+A1.09.12 A1.09.06 A1.10.12 A1.09.01 A1.09.17 A1.09.08 A1.09.10 A1.09.15 A1.09.20
+A1.09.13 A1.09.11 A1.09.16 A1.09.02 A1.09.05 A1.09.19 A1.08.08 A1.08.07 A1.08.18 A1.09.21
+A1.09.14 A1.09.10 A1.09.15 A1.09.07 A1.09.18 A1.09.09 A1.09.11 A1.09.16 A1.09.22
+A1.09.15 A1.09.12 A1.09.17 A1.09.08 A1.09.10 A1.09.20 A1.09.14 A1.09.18 A1.09.23
+A1.09.16 A1.09.14 A1.09.18 A1.09.09 A1.09.11 A1.09.22 A1.09.13 A1.09.19 A1.09.24
+A1.09.17 A1.09.06 A1.10.12 A1.10.16 A1.09.12 A1.10.20 A1.09.15 A1.09.20 A1.09.25
+A1.09.18 A1.09.10 A1.09.15 A1.09.20 A1.09.14 A1.09.23 A1.09.16 A1.09.22 A1.09.27
+A1.09.19 A1.09.11 A1.09.16 A1.09.22 A1.09.13 A1.09.24 A1.08.18 A1.09.21 A1.09.26
+A1.09.20 A1.09.12 A1.09.17 A1.10.20 A1.09.15 A1.09.25 A1.09.18 A1.09.23 A1.09.28
+A1.09.21 A1.09.13 A1.09.19 A1.09.24 A1.08.18 A1.09.26 A1.08.19 A1.08.24 A1.08.29
+A1.09.22 A1.09.14 A1.09.18 A1.09.23 A1.09.16 A1.09.27 A1.09.19 A1.09.24 A1.09.29
+A1.09.23 A1.09.15 A1.09.20 A1.09.25 A1.09.18 A1.09.28 A1.09.22 A1.09.27 A1.09.30
+A1.09.24 A1.09.16 A1.09.22 A1.09.27 A1.09.19 A1.09.29 A1.09.21 A1.09.26 A1.09.31
+A1.09.25 A1.09.17 A1.10.20 A1.10.23 A1.09.20 A1.10.27 A1.09.23 A1.09.28 A1.09.32
+A1.09.26 A1.09.19 A1.09.24 A1.09.29 A1.09.21 A1.09.31 A1.08.24 A1.08.29 A1.09.33
+A1.09.27 A1.09.18 A1.09.23 A1.09.28 A1.09.22 A1.09.30 A1.09.24 A1.09.29 A1.09.34
+A1.09.28 A1.09.20 A1.09.25 A1.10.27 A1.09.23 A1.09.32 A1.09.27 A1.09.30 A1.09.35
+A1.09.29 A1.09.22 A1.09.27 A1.09.30 A1.09.24 A1.09.34 A1.09.26 A1.09.31 A1.09.36
+A1.09.30 A1.09.23 A1.09.28 A1.09.32 A1.09.27 A1.09.35 A1.09.29 A1.09.34 A1.09.37
+A1.09.31 A1.09.24 A1.09.29 A1.09.34 A1.09.26 A1.09.36 A1.08.29 A1.09.33 A1.09.38
+A1.09.32 A1.09.25 A1.10.27 A1.10.30 A1.09.28 A1.10.33 A1.09.30 A1.09.35 A1.10.35
+A1.09.33 A1.09.26 A1.09.31 A1.09.36 A1.08.29 A1.09.38 A1.08.30 A1.08.34 A1.08.38
+A1.09.34 A1.09.27 A1.09.30 A1.09.35 A1.09.29 A1.09.37 A1.09.31 A1.09.36 A1.09.39
+A1.09.35 A1.09.28 A1.09.32 A1.10.33 A1.09.30 A1.10.35 A1.09.34 A1.09.37 A1.09.40
+A1.09.36 A1.09.29 A1.09.34 A1.09.37 A1.09.31 A1.09.39 A1.09.33 A1.09.38 A1.09.41
+A1.09.37 A1.09.30 A1.09.35 A1.10.35 A1.09.34 A1.09.40 A1.09.36 A1.09.39 A1.09.42
+A1.09.38 A1.09.31 A1.09.36 A1.09.39 A1.09.33 A1.09.41 A1.08.34 A1.08.38 A1.08.42
+A1.09.39 A1.09.34 A1.09.37 A1.09.40 A1.09.36 A1.09.42 A1.09.38 A1.09.41 A1.09.43
+A1.09.40 A1.09.35 A1.10.35 A1.10.39 A1.09.37 A1.10.42 A1.09.39 A1.09.42 A1.09.44
+A1.09.41 A1.09.36 A1.09.39 A1.09.42 A1.09.38 A1.09.43 A1.08.38 A1.08.42 A1.09.45
+A1.09.42 A1.09.37 A1.09.40 A1.10.42 A1.09.39 A1.09.44 A1.09.41 A1.09.43 A1.09.46
+A1.09.43 A1.09.39 A1.09.42 A1.09.44 A1.09.41 A1.09.46 A1.08.42 A1.09.45 A1.09.47
+A1.09.44 A1.09.40 A1.10.42 A1.10.44 A1.09.42 A1.10.46 A1.09.43 A1.09.46 A1.09.48
+A1.09.45 A1.09.41 A1.09.43 A1.09.46 A1.08.42 A1.09.47 A1.08.43 A1.08.46 A1.08.49
+A1.09.46 A1.09.42 A1.09.44 A1.10.46 A1.09.43 A1.09.48 A1.09.45 A1.09.47 A1.09.49
+A1.09.47 A1.09.43 A1.09.46 A1.09.48 A1.09.45 A1.09.49 A1.08.46 A1.08.49 A1.09.50
+A1.09.48 A1.09.44 A1.10.46 A1.10.48 A1.09.46 A1.10.50 A1.09.47 A1.09.49 A1.09.51
+A1.09.49 A1.09.46 A1.09.48 A1.10.50 A1.09.47 A1.09.51 A1.08.49 A1.09.50 A1.09.52
+A1.09.50 A1.09.47 A1.09.49 A1.09.51 A1.08.49 A1.09.52 A1.09.53 A1.08.50 A1.08.52 A1.09.54
+A1.09.51 A1.09.48 A1.10.50 A1.10.51 A1.09.49 A1.10.52 A1.10.54 A1.09.50 A1.09.52 A1.09.55 A1.09.57
+A1.09.52 A1.09.49 A1.09.51 A1.09.50 A1.09.55 A1.09.53 A1.09.56
+A1.09.53 A1.09.50 A1.09.52 A1.09.55 A1.09.56 A1.08.52 A1.09.54 A1.09.58
+A1.09.54 A1.09.50 A1.09.53 A1.09.56 A1.08.52 A1.09.58 A1.08.54 A1.08.57
+A1.09.55 A1.09.51 A1.10.54 A1.09.52 A1.09.57 A1.09.53 A1.09.56 A1.09.59
+A1.09.56 A1.09.52 A1.09.55 A1.09.57 A1.09.53 A1.09.59 A1.09.54 A1.09.58 A1.09.60
+A1.09.57 A1.09.51 A1.10.54 A1.10.56 A1.09.55 A1.10.58 A1.09.56 A1.09.59 A1.09.61
+A1.09.58 A1.09.53 A1.09.56 A1.09.59 A1.09.54 A1.09.60 A1.08.54 A1.08.57 A1.08.60
+A1.09.59 A1.09.55 A1.09.57 A1.10.58 A1.09.56 A1.09.61 A1.09.58 A1.09.60 A1.09.62
+A1.09.60 A1.09.56 A1.09.59 A1.09.61 A1.09.58 A1.09.62 A1.08.57 A1.08.60
+A1.09.61 A1.09.57 A1.10.58 A1.10.60 A1.10.61 A1.09.59 A1.09.60 A1.09.62
+A1.09.62 A1.10.61 A1.09.59 A1.09.61 A1.09.60 A1.08.60
+A1.10.00 A1.10.02 A1.10.09 A1.10.05
+A1.10.01 A1.10.03 A1.10.06 A1.10.11
+A1.10.02 A1.11.04 A1.10.00 A1.10.09 A1.10.13
+A1.10.03 A1.10.07 A1.10.08 A1.10.01 A1.10.06 A1.10.11
+A1.10.04 A1.10.05 A1.10.07 A1.10.10
+A1.10.05 A1.10.00 A1.10.09 A1.10.04 A1.10.10 A1.10.14
+A1.10.06 A1.10.03 A1.10.01 A1.10.11 A1.09.06 A1.10.12 A1.10.16
+A1.10.07 A1.10.04 A1.10.10 A1.10.03 A1.10.08
+A1.10.08 A1.10.07 A1.10.10 A1.10.03 A1.10.11 A1.10.15
+A1.10.09 A1.11.04 A1.10.02 A1.10.00 A1.10.13 A1.10.05 A1.10.10 A1.10.14 A1.10.17
+A1.10.10 A1.10.09 A1.10.05 A1.10.04 A1.10.07 A1.10.14 A1.10.08 A1.10.11 A1.10.15 A1.10.18
+A1.10.11 A1.10.10 A1.10.03 A1.10.08 A1.10.01 A1.10.06 A1.10.15 A1.10.12 A1.10.16 A1.10.19
+A1.10.12 A1.10.06 A1.10.11 A1.09.06 A1.10.16 A1.09.12 A1.09.17 A1.10.20
+A1.10.13 A1.11.04 A1.11.10 A1.10.02 A1.10.09 A1.11.15 A1.10.14 A1.10.17 A1.11.20
+A1.10.14 A1.10.09 A1.10.13 A1.10.05 A1.10.10 A1.10.17 A1.10.15 A1.10.18 A1.10.21
+A1.10.15 A1.10.10 A1.10.14 A1.10.08 A1.10.11 A1.10.18 A1.10.16 A1.10.19 A1.10.22
+A1.10.16 A1.10.06 A1.10.11 A1.10.15 A1.10.12 A1.10.19 A1.09.17 A1.10.20 A1.10.23
+A1.10.17 A1.10.09 A1.10.13 A1.11.15 A1.10.14 A1.11.20 A1.10.18 A1.10.21 A1.10.24
+A1.10.18 A1.10.10 A1.10.14 A1.10.17 A1.10.15 A1.10.21 A1.10.19 A1.10.22 A1.10.25
+A1.10.19 A1.10.11 A1.10.15 A1.10.18 A1.10.16 A1.10.22 A1.10.20 A1.10.23 A1.10.26
+A1.10.20 A1.10.12 A1.10.16 A1.10.19 A1.09.17 A1.10.23 A1.09.20 A1.09.25 A1.10.27
+A1.10.21 A1.10.14 A1.10.17 A1.11.20 A1.10.18 A1.10.24 A1.10.22 A1.10.25 A1.10.28
+A1.10.22 A1.10.15 A1.10.18 A1.10.21 A1.10.19 A1.10.25 A1.10.23 A1.10.26 A1.10.29
+A1.10.23 A1.10.16 A1.10.19 A1.10.22 A1.10.20 A1.10.26 A1.09.25 A1.10.27 A1.10.30
+A1.10.24 A1.10.17 A1.11.20 A1.11.21 A1.10.21 A1.11.25 A1.10.25 A1.10.28 A1.11.29
+A1.10.25 A1.10.18 A1.10.21 A1.10.24 A1.10.22 A1.10.28 A1.10.26 A1.10.29 A1.10.31
+A1.10.26 A1.10.19 A1.10.22 A1.10.25 A1.10.23 A1.10.29 A1.10.27 A1.10.30 A1.10.32
+A1.10.27 A1.10.20 A1.10.23 A1.10.26 A1.09.25 A1.10.30 A1.09.28 A1.09.32 A1.10.33
+A1.10.28 A1.10.21 A1.10.24 A1.11.25 A1.10.25 A1.11.29 A1.10.29 A1.10.31 A1.11.33
+A1.10.29 A1.10.22 A1.10.25 A1.10.28 A1.10.26 A1.10.31 A1.10.30 A1.10.32 A1.10.34
+A1.10.30 A1.10.23 A1.10.26 A1.10.29 A1.10.27 A1.10.32 A1.09.32 A1.10.33 A1.10.36
+A1.10.31 A1.10.25 A1.10.28 A1.11.29 A1.10.29 A1.11.33 A1.10.32 A1.10.34 A1.10.37
+A1.10.32 A1.10.26 A1.10.29 A1.10.31 A1.10.30 A1.10.34 A1.10.33 A1.10.36 A1.10.38
+A1.10.33 A1.10.27 A1.10.30 A1.10.32 A1.09.32 A1.10.36 A1.09.35 A1.10.35 A1.10.39
+A1.10.34 A1.10.29 A1.10.31 A1.11.33 A1.10.32 A1.10.37 A1.10.36 A1.10.38 A1.10.40
+A1.10.35 A1.09.32 A1.10.33 A1.10.36 A1.09.35 A1.10.39 A1.09.37 A1.09.40 A1.10.42
+A1.10.36 A1.10.30 A1.10.32 A1.10.34 A1.10.33 A1.10.38 A1.10.35 A1.10.39 A1.10.41
+A1.10.37 A1.10.31 A1.11.33 A1.11.34 A1.10.34 A1.11.37 A1.10.38 A1.10.40 A1.11.40
+A1.10.38 A1.10.32 A1.10.34 A1.10.37 A1.10.36 A1.10.40 A1.10.39 A1.10.41 A1.10.43
+A1.10.39 A1.10.33 A1.10.36 A1.10.38 A1.10.35 A1.10.41 A1.09.40 A1.10.42 A1.10.44
+A1.10.40 A1.10.34 A1.10.37 A1.11.37 A1.10.38 A1.11.40 A1.10.41 A1.10.43 A1.11.43
+A1.10.41 A1.10.36 A1.10.38 A1.10.40 A1.10.39 A1.10.43 A1.10.42 A1.10.44 A1.10.45
+A1.10.42 A1.10.35 A1.10.39 A1.10.41 A1.09.40 A1.10.44 A1.09.42 A1.09.44 A1.10.46
+A1.10.43 A1.10.38 A1.10.40 A1.11.40 A1.10.41 A1.11.43 A1.10.44 A1.10.45 A1.10.47
+A1.10.44 A1.10.39 A1.10.41 A1.10.43 A1.10.42 A1.10.45 A1.09.44 A1.10.46 A1.10.48
+A1.10.45 A1.10.41 A1.10.43 A1.11.43 A1.10.44 A1.10.47 A1.10.46 A1.10.48 A1.10.49
+A1.10.46 A1.10.42 A1.10.44 A1.10.45 A1.09.44 A1.10.48 A1.09.46 A1.09.48 A1.10.50
+A1.10.47 A1.10.43 A1.11.43 A1.11.44 A1.10.45 A1.11.46 A1.10.48 A1.10.49 A1.11.48
+A1.10.48 A1.10.44 A1.10.45 A1.10.47 A1.10.46 A1.10.49 A1.09.48 A1.10.50 A1.10.51
+A1.10.49 A1.10.45 A1.10.47 A1.11.46 A1.10.48 A1.11.48 A1.10.50 A1.10.51 A1.11.50
+A1.10.50 A1.10.46 A1.10.48 A1.10.49 A1.09.48 A1.10.51 A1.09.49 A1.09.51 A1.10.52
+A1.10.51 A1.10.48 A1.10.49 A1.11.48 A1.10.50 A1.11.50 A1.11.54 A1.09.51 A1.10.52 A1.10.53 A1.10.55
+A1.10.52 A1.10.50 A1.10.51 A1.09.51 A1.10.53 A1.10.54 A1.10.56
+A1.10.53 A1.10.51 A1.11.54 A1.10.52 A1.10.55 A1.10.54 A1.10.56 A1.10.57
+A1.10.54 A1.09.51 A1.10.52 A1.10.53 A1.10.56 A1.09.55 A1.09.57 A1.10.58
+A1.10.55 A1.10.51 A1.11.54 A1.11.55 A1.10.53 A1.11.58 A1.10.56 A1.10.57 A1.10.59
+A1.10.56 A1.10.52 A1.10.53 A1.10.55 A1.10.54 A1.10.57 A1.09.57 A1.10.58 A1.10.60
+A1.10.57 A1.10.53 A1.10.55 A1.11.58 A1.10.56 A1.10.59 A1.10.58 A1.10.60
+A1.10.58 A1.10.54 A1.10.56 A1.10.57 A1.09.57 A1.10.60 A1.10.61 A1.09.59 A1.09.61
+A1.10.59 A1.10.55 A1.11.58 A1.11.59 A1.10.57 A1.11.61 A1.10.60 A1.10.62
+A1.10.60 A1.10.56 A1.10.57 A1.10.59 A1.10.58 A1.10.62 A1.10.61 A1.09.61
+A1.10.61 A1.10.58 A1.10.60 A1.10.62 A1.09.61 A1.09.62
+A1.10.62 A1.10.59 A1.11.61 A1.11.62 A1.10.60 A1.10.61
+A1.11.00 A1.12.00 A1.11.06 A1.11.08 A1.12.07
+A1.11.01 A1.11.02 A1.11.04 A1.11.10
+A1.11.02 A1.11.03 A1.11.01 A1.11.10 A1.11.11
+A1.11.03 A1.11.02 A1.11.05 A1.11.10 A1.11.11
+A1.11.04 A1.11.01 A1.11.10 A1.10.02 A1.10.09 A1.10.13 A1.11.15
+A1.11.05 A1.11.03 A1.11.07 A1.11.11 A1.11.12
+A1.11.06 A1.11.00 A1.11.08 A1.11.09 A1.11.12 A1.11.13 A1.11.14
+A1.11.07 A1.11.09 A1.11.05 A1.11.11 A1.11.12
+A1.11.08 A1.11.00 A1.12.00 A1.11.06 A1.12.07 A1.11.13 A1.11.14 A1.12.14
+A1.11.09 A1.11.06 A1.11.07 A1.11.12 A1.11.13
+A1.11.10 A1.11.02 A1.11.03 A1.11.01 A1.11.04 A1.11.11 A1.10.13 A1.11.15 A1.11.16
+A1.11.11 A1.11.02 A1.11.03 A1.11.05 A1.11.07 A1.11.10 A1.11.12 A1.11.15 A1.11.16 A1.11.17
+A1.11.12 A1.11.06 A1.11.09 A1.11.05 A1.11.07 A1.11.11 A1.11.13 A1.11.16 A1.11.17 A1.11.18
+A1.11.13 A1.11.06 A1.11.08 A1.11.09 A1.11.12 A1.11.14 A1.11.17 A1.11.18 A1.11.19
+A1.11.14 A1.11.06 A1.11.08 A1.12.07 A1.11.13 A1.12.14 A1.11.18 A1.11.19 A1.12.19
+A1.11.15 A1.11.04 A1.11.10 A1.11.11 A1.10.13 A1.11.16 A1.10.17 A1.11.20 A1.11.21
+A1.11.16 A1.11.10 A1.11.11 A1.11.12 A1.11.15 A1.11.17 A1.11.20 A1.11.21 A1.11.22
+A1.11.17 A1.11.11 A1.11.12 A1.11.13 A1.11.16 A1.11.18 A1.11.21 A1.11.22 A1.11.23
+A1.11.18 A1.11.12 A1.11.13 A1.11.14 A1.11.17 A1.11.19 A1.11.22 A1.11.23 A1.11.24
+A1.11.19 A1.11.13 A1.11.14 A1.12.14 A1.11.18 A1.12.19 A1.11.23 A1.11.24 A1.12.24
+A1.11.20 A1.10.13 A1.11.15 A1.11.16 A1.10.17 A1.11.21 A1.10.21 A1.10.24 A1.11.25
+A1.11.21 A1.11.15 A1.11.16 A1.11.17 A1.11.20 A1.11.22 A1.10.24 A1.11.25 A1.11.26
+A1.11.22 A1.11.16 A1.11.17 A1.11.18 A1.11.21 A1.11.23 A1.11.25 A1.11.26 A1.11.27
+A1.11.23 A1.11.17 A1.11.18 A1.11.19 A1.11.22 A1.11.24 A1.11.26 A1.11.27 A1.11.28
+A1.11.24 A1.11.18 A1.11.19 A1.12.19 A1.11.23 A1.12.24 A1.11.27 A1.11.28 A1.12.28
+A1.11.25 A1.11.20 A1.11.21 A1.11.22 A1.10.24 A1.11.26 A1.10.28 A1.11.29 A1.11.30
+A1.11.26 A1.11.21 A1.11.22 A1.11.23 A1.11.25 A1.11.27 A1.11.29 A1.11.30 A1.11.31
+A1.11.27 A1.11.22 A1.11.23 A1.11.24 A1.11.26 A1.11.28 A1.11.30 A1.11.31 A1.11.32
+A1.11.28 A1.11.23 A1.11.24 A1.12.24 A1.11.27 A1.12.28 A1.11.31 A1.11.32 A1.12.32
+A1.11.29 A1.10.24 A1.11.25 A1.11.26 A1.10.28 A1.11.30 A1.10.31 A1.11.33 A1.11.34
+A1.11.30 A1.11.25 A1.11.26 A1.11.27 A1.11.29 A1.11.31 A1.11.33 A1.11.34 A1.11.35
+A1.11.31 A1.11.26 A1.11.27 A1.11.28 A1.11.30 A1.11.32 A1.11.34 A1.11.35 A1.11.36
+A1.11.32 A1.11.27 A1.11.28 A1.12.28 A1.11.31 A1.12.32 A1.11.35 A1.11.36 A1.12.36
+A1.11.33 A1.10.28 A1.11.29 A1.11.30 A1.10.31 A1.11.34 A1.10.34 A1.10.37 A1.11.37
+A1.11.34 A1.11.29 A1.11.30 A1.11.31 A1.11.33 A1.11.35 A1.10.37 A1.11.37 A1.11.38
+A1.11.35 A1.11.30 A1.11.31 A1.11.32 A1.11.34 A1.11.36 A1.11.37 A1.11.38 A1.11.39
+A1.11.36 A1.11.31 A1.11.32 A1.12.32 A1.11.35 A1.12.36 A1.11.38 A1.11.39 A1.12.39
+A1.11.37 A1.11.33 A1.11.34 A1.11.35 A1.10.37 A1.11.38 A1.10.40 A1.11.40 A1.11.41
+A1.11.38 A1.11.34 A1.11.35 A1.11.36 A1.11.37 A1.11.39 A1.11.40 A1.11.41 A1.11.42
+A1.11.39 A1.11.35 A1.11.36 A1.12.36 A1.11.38 A1.12.39 A1.11.41 A1.11.42 A1.12.42
+A1.11.40 A1.10.37 A1.11.37 A1.11.38 A1.10.40 A1.11.41 A1.10.43 A1.11.43 A1.11.44
+A1.11.41 A1.11.37 A1.11.38 A1.11.39 A1.11.40 A1.11.42 A1.11.43 A1.11.44 A1.11.45
+A1.11.42 A1.11.38 A1.11.39 A1.12.39 A1.11.41 A1.12.42 A1.11.44 A1.11.45 A1.12.45
+A1.11.43 A1.10.40 A1.11.40 A1.11.41 A1.10.43 A1.11.44 A1.10.45 A1.10.47 A1.11.46
+A1.11.44 A1.11.40 A1.11.41 A1.11.42 A1.11.43 A1.11.45 A1.10.47 A1.11.46 A1.11.47
+A1.11.45 A1.11.41 A1.11.42 A1.12.42 A1.11.44 A1.12.45 A1.11.46 A1.11.47 A1.12.47
+A1.11.46 A1.11.43 A1.11.44 A1.11.45 A1.10.47 A1.11.47 A1.10.49 A1.11.48 A1.11.49
+A1.11.47 A1.11.44 A1.11.45 A1.12.45 A1.11.46 A1.12.47 A1.11.48 A1.11.49 A1.12.49
+A1.11.48 A1.10.47 A1.11.46 A1.11.47 A1.10.49 A1.11.49 A1.10.51 A1.11.50 A1.11.51 A1.11.52
+A1.11.49 A1.11.46 A1.11.47 A1.12.47 A1.11.48 A1.12.49 A1.11.51 A1.11.52 A1.11.53 A1.12.53
+A1.11.50 A1.10.49 A1.11.48 A1.10.51 A1.11.51 A1.11.54 A1.11.55
+A1.11.51 A1.11.48 A1.11.49 A1.11.50 A1.11.52 A1.11.54 A1.11.55 A1.11.56
+A1.11.52 A1.11.48 A1.11.49 A1.11.51 A1.11.53 A1.11.55 A1.11.56 A1.11.57
+A1.11.53 A1.11.49 A1.12.49 A1.11.52 A1.12.53 A1.11.56 A1.11.57 A1.12.57
+A1.11.54 A1.10.51 A1.11.50 A1.11.51 A1.11.55 A1.10.53 A1.10.55 A1.11.58
+A1.11.55 A1.11.50 A1.11.51 A1.11.52 A1.11.54 A1.11.56 A1.10.55 A1.11.58 A1.11.59
+A1.11.56 A1.11.51 A1.11.52 A1.11.53 A1.11.55 A1.11.57 A1.11.58 A1.11.59 A1.11.60
+A1.11.57 A1.11.52 A1.11.53 A1.12.53 A1.11.56 A1.12.57 A1.11.59 A1.11.60 A1.12.60
+A1.11.58 A1.11.54 A1.11.55 A1.11.56 A1.10.55 A1.11.59 A1.10.57 A1.10.59 A1.11.61
+A1.11.59 A1.11.55 A1.11.56 A1.11.57 A1.11.58 A1.11.60 A1.10.59 A1.11.61 A1.11.62
+A1.11.60 A1.11.56 A1.11.57 A1.12.57 A1.11.59 A1.12.60 A1.11.61 A1.11.62 A1.12.62
+A1.11.61 A1.11.58 A1.11.59 A1.11.60 A1.10.59 A1.11.62 A1.10.62
+A1.11.62 A1.11.59 A1.11.60 A1.12.60 A1.11.61 A1.12.62 A1.10.62
+A1.12.00 A1.11.00 A1.11.08 A1.12.07 A1.12.05
+A1.12.01 A1.12.03 A1.12.10 A1.12.02
+A1.12.02 A1.12.01 A1.12.10 A1.12.08 A1.13.05 A1.13.04
+A1.12.03 A1.12.04 A1.12.01 A1.12.11 A1.12.10
+A1.12.04 A1.12.06 A1.12.03 A1.12.12 A1.12.11
+A1.12.05 A1.12.00 A1.12.07 A1.12.09 A1.12.14 A1.12.13 A1.12.12
+A1.12.06 A1.12.09 A1.12.04 A1.12.12 A1.12.11
+A1.12.07 A1.11.00 A1.12.00 A1.11.08 A1.12.05 A1.11.14 A1.12.14 A1.12.13
+A1.12.08 A1.12.10 A1.12.02 A1.13.05 A1.12.15 A1.13.14
+A1.12.09 A1.12.05 A1.12.06 A1.12.13 A1.12.12
+A1.12.10 A1.12.03 A1.12.01 A1.12.11 A1.12.02 A1.12.08 A1.12.16 A1.12.15 A1.13.14
+A1.12.11 A1.12.06 A1.12.04 A1.12.03 A1.12.12 A1.12.10 A1.12.17 A1.12.16 A1.12.15
+A1.12.12 A1.12.05 A1.12.09 A1.12.06 A1.12.04 A1.12.13 A1.12.11 A1.12.18 A1.12.17 A1.12.16
+A1.12.13 A1.12.07 A1.12.05 A1.12.09 A1.12.14 A1.12.12 A1.12.19 A1.12.18 A1.12.17
+A1.12.14 A1.11.08 A1.12.07 A1.12.05 A1.11.14 A1.12.13 A1.11.19 A1.12.19 A1.12.18
+A1.12.15 A1.12.11 A1.12.10 A1.12.08 A1.12.16 A1.13.14 A1.12.21 A1.12.20 A1.13.18
+A1.12.16 A1.12.12 A1.12.11 A1.12.10 A1.12.17 A1.12.15 A1.12.22 A1.12.21 A1.12.20
+A1.12.17 A1.12.13 A1.12.12 A1.12.11 A1.12.18 A1.12.16 A1.12.23 A1.12.22 A1.12.21
+A1.12.18 A1.12.14 A1.12.13 A1.12.12 A1.12.19 A1.12.17 A1.12.24 A1.12.23 A1.12.22
+A1.12.19 A1.11.14 A1.12.14 A1.12.13 A1.11.19 A1.12.18 A1.11.24 A1.12.24 A1.12.23
+A1.12.20 A1.12.16 A1.12.15 A1.13.14 A1.12.21 A1.13.18 A1.12.25 A1.13.25 A1.13.22
+A1.12.21 A1.12.17 A1.12.16 A1.12.15 A1.12.22 A1.12.20 A1.12.26 A1.12.25 A1.13.25
+A1.12.22 A1.12.18 A1.12.17 A1.12.16 A1.12.23 A1.12.21 A1.12.27 A1.12.26 A1.12.25
+A1.12.23 A1.12.19 A1.12.18 A1.12.17 A1.12.24 A1.12.22 A1.12.28 A1.12.27 A1.12.26
+A1.12.24 A1.11.19 A1.12.19 A1.12.18 A1.11.24 A1.12.23 A1.11.28 A1.12.28 A1.12.27
+A1.12.25 A1.12.22 A1.12.21 A1.12.20 A1.12.26 A1.13.25 A1.12.30 A1.12.29 A1.13.29
+A1.12.26 A1.12.23 A1.12.22 A1.12.21 A1.12.27 A1.12.25 A1.12.31 A1.12.30 A1.12.29
+A1.12.27 A1.12.24 A1.12.23 A1.12.22 A1.12.28 A1.12.26 A1.12.32 A1.12.31 A1.12.30
+A1.12.28 A1.11.24 A1.12.24 A1.12.23 A1.11.28 A1.12.27 A1.11.32 A1.12.32 A1.12.31
+A1.12.29 A1.12.26 A1.12.25 A1.13.25 A1.12.30 A1.13.29 A1.12.34 A1.12.33 A1.13.32
+A1.12.30 A1.12.27 A1.12.26 A1.12.25 A1.12.31 A1.12.29 A1.12.35 A1.12.34 A1.12.33
+A1.12.31 A1.12.28 A1.12.27 A1.12.26 A1.12.32 A1.12.30 A1.12.36 A1.12.35 A1.12.34
+A1.12.32 A1.11.28 A1.12.28 A1.12.27 A1.11.32 A1.12.31 A1.11.36 A1.12.36 A1.12.35
+A1.12.33 A1.12.30 A1.12.29 A1.13.29 A1.12.34 A1.13.32 A1.12.37 A1.13.38 A1.13.35
+A1.12.34 A1.12.31 A1.12.30 A1.12.29 A1.12.35 A1.12.33 A1.12.38 A1.12.37 A1.13.38
+A1.12.35 A1.12.32 A1.12.31 A1.12.30 A1.12.36 A1.12.34 A1.12.39 A1.12.38 A1.12.37
+A1.12.36 A1.11.32 A1.12.32 A1.12.31 A1.11.36 A1.12.35 A1.11.39 A1.12.39 A1.12.38
+A1.12.37 A1.12.35 A1.12.34 A1.12.33 A1.12.38 A1.13.38 A1.12.41 A1.12.40 A1.13.41
+A1.12.38 A1.12.36 A1.12.35 A1.12.34 A1.12.39 A1.12.37 A1.12.42 A1.12.41 A1.12.40
+A1.12.39 A1.11.36 A1.12.36 A1.12.35 A1.11.39 A1.12.38 A1.11.42 A1.12.42 A1.12.41
+A1.12.40 A1.12.38 A1.12.37 A1.13.38 A1.12.41 A1.13.41 A1.12.44 A1.12.43 A1.13.44
+A1.12.41 A1.12.39 A1.12.38 A1.12.37 A1.12.42 A1.12.40 A1.12.45 A1.12.44 A1.12.43
+A1.12.42 A1.11.39 A1.12.39 A1.12.38 A1.11.42 A1.12.41 A1.11.45 A1.12.45 A1.12.44
+A1.12.43 A1.12.41 A1.12.40 A1.13.41 A1.12.44 A1.13.44 A1.12.46 A1.13.48 A1.13.46
+A1.12.44 A1.12.42 A1.12.41 A1.12.40 A1.12.45 A1.12.43 A1.12.47 A1.12.46 A1.13.48
+A1.12.45 A1.11.42 A1.12.42 A1.12.41 A1.11.45 A1.12.44 A1.11.47 A1.12.47 A1.12.46
+A1.12.46 A1.12.45 A1.12.44 A1.12.43 A1.12.47 A1.13.48 A1.12.49 A1.12.48 A1.13.50
+A1.12.47 A1.11.45 A1.12.45 A1.12.44 A1.11.47 A1.12.46 A1.11.49 A1.12.49 A1.12.48
+A1.12.48 A1.12.47 A1.12.46 A1.13.48 A1.12.49 A1.13.50 A1.12.52 A1.12.51 A1.12.50 A1.13.52
+A1.12.49 A1.11.47 A1.12.47 A1.12.46 A1.11.49 A1.12.48 A1.11.53 A1.12.53 A1.12.52 A1.12.51
+A1.12.50 A1.12.48 A1.13.50 A1.12.51 A1.13.52 A1.12.55 A1.12.54
+A1.12.51 A1.12.49 A1.12.48 A1.12.52 A1.12.50 A1.12.56 A1.12.55 A1.12.54
+A1.12.52 A1.12.49 A1.12.48 A1.12.53 A1.12.51 A1.12.57 A1.12.56 A1.12.55
+A1.12.53 A1.11.49 A1.12.49 A1.11.53 A1.12.52 A1.11.57 A1.12.57 A1.12.56
+A1.12.54 A1.12.51 A1.12.50 A1.13.52 A1.12.55 A1.12.58 A1.13.56 A1.13.54
+A1.12.55 A1.12.52 A1.12.51 A1.12.50 A1.12.56 A1.12.54 A1.12.59 A1.12.58 A1.13.56
+A1.12.56 A1.12.53 A1.12.52 A1.12.51 A1.12.57 A1.12.55 A1.12.60 A1.12.59 A1.12.58
+A1.12.57 A1.11.53 A1.12.53 A1.12.52 A1.11.57 A1.12.56 A1.11.60 A1.12.60 A1.12.59
+A1.12.58 A1.12.56 A1.12.55 A1.12.54 A1.12.59 A1.13.56 A1.12.61 A1.13.60 A1.13.58
+A1.12.59 A1.12.57 A1.12.56 A1.12.55 A1.12.60 A1.12.58 A1.12.62 A1.12.61 A1.13.60
+A1.12.60 A1.11.57 A1.12.57 A1.12.56 A1.11.60 A1.12.59 A1.11.62 A1.12.62 A1.12.61
+A1.12.61 A1.12.60 A1.12.59 A1.12.58 A1.12.62 A1.13.60 A1.13.62
+A1.12.62 A1.11.60 A1.12.60 A1.12.59 A1.11.62 A1.12.61
+A1.13.00 A1.13.03 A1.13.06
+A1.13.01 A1.13.04 A1.13.02 A1.13.14 A1.13.10
+A1.13.02 A1.13.01 A1.13.10 A1.13.07
+A1.13.03 A1.13.09 A1.13.00 A1.13.13 A1.13.06
+A1.13.04 A1.12.02 A1.13.05 A1.13.01 A1.13.14 A1.13.10
+A1.13.05 A1.12.02 A1.12.08 A1.13.04 A1.13.14
+A1.13.06 A1.13.03 A1.13.00 A1.13.13 A1.14.06 A1.13.17 A1.13.12
+A1.13.07 A1.13.02 A1.13.10 A1.13.15 A1.13.11
+A1.13.08 A1.13.11 A1.13.09
+A1.13.09 A1.13.11 A1.13.08 A1.13.03 A1.13.16 A1.13.13
+A1.13.10 A1.13.04 A1.13.01 A1.13.02 A1.13.14 A1.13.07 A1.13.18 A1.13.15 A1.13.11
+A1.13.11 A1.13.10 A1.13.07 A1.13.15 A1.13.08 A1.13.09 A1.13.19 A1.13.16 A1.13.13
+A1.13.12 A1.13.13 A1.13.06 A1.14.06 A1.13.17 A1.13.21 A1.14.17 A1.14.12
+A1.13.13 A1.13.11 A1.13.09 A1.13.03 A1.13.16 A1.13.06 A1.13.20 A1.13.17 A1.13.12
+A1.13.14 A1.12.10 A1.12.08 A1.13.05 A1.13.04 A1.13.01 A1.12.15 A1.13.10 A1.12.20 A1.13.18 A1.13.15
+A1.13.15 A1.13.14 A1.13.10 A1.13.07 A1.13.18 A1.13.11 A1.13.22 A1.13.19 A1.13.16
+A1.13.16 A1.13.15 A1.13.11 A1.13.09 A1.13.19 A1.13.13 A1.13.23 A1.13.20 A1.13.17
+A1.13.17 A1.13.16 A1.13.13 A1.13.06 A1.13.20 A1.13.12 A1.13.24 A1.13.21 A1.14.17
+A1.13.18 A1.12.15 A1.13.14 A1.13.10 A1.12.20 A1.13.15 A1.13.25 A1.13.22 A1.13.19
+A1.13.19 A1.13.18 A1.13.15 A1.13.11 A1.13.22 A1.13.16 A1.13.26 A1.13.23 A1.13.20
+A1.13.20 A1.13.19 A1.13.16 A1.13.13 A1.13.23 A1.13.17 A1.13.27 A1.13.24 A1.13.21
+A1.13.21 A1.13.20 A1.13.17 A1.13.12 A1.13.24 A1.14.17 A1.13.28 A1.14.25 A1.14.20
+A1.13.22 A1.12.20 A1.13.18 A1.13.15 A1.13.25 A1.13.19 A1.13.29 A1.13.26 A1.13.23
+A1.13.23 A1.13.22 A1.13.19 A1.13.16 A1.13.26 A1.13.20 A1.13.30 A1.13.27 A1.13.24
+A1.13.24 A1.13.23 A1.13.20 A1.13.17 A1.13.27 A1.13.21 A1.13.31 A1.13.28 A1.14.25
+A1.13.25 A1.12.21 A1.12.20 A1.13.18 A1.12.25 A1.13.22 A1.12.29 A1.13.29 A1.13.26
+A1.13.26 A1.13.25 A1.13.22 A1.13.19 A1.13.29 A1.13.23 A1.13.32 A1.13.30 A1.13.27
+A1.13.27 A1.13.26 A1.13.23 A1.13.20 A1.13.30 A1.13.24 A1.13.33 A1.13.31 A1.13.28
+A1.13.28 A1.13.27 A1.13.24 A1.13.21 A1.13.31 A1.14.25 A1.13.34 A1.14.32 A1.14.28
+A1.13.29 A1.12.25 A1.13.25 A1.13.22 A1.12.29 A1.13.26 A1.12.33 A1.13.32 A1.13.30
+A1.13.30 A1.13.29 A1.13.26 A1.13.23 A1.13.32 A1.13.27 A1.13.35 A1.13.33 A1.13.31
+A1.13.31 A1.13.30 A1.13.27 A1.13.24 A1.13.33 A1.13.28 A1.13.37 A1.13.34 A1.14.32
+A1.13.32 A1.12.29 A1.13.29 A1.13.26 A1.12.33 A1.13.30 A1.13.38 A1.13.35 A1.13.33
+A1.13.33 A1.13.32 A1.13.30 A1.13.27 A1.13.35 A1.13.31 A1.13.39 A1.13.37 A1.13.34
+A1.13.34 A1.13.33 A1.13.31 A1.13.28 A1.13.37 A1.14.32 A1.13.40 A1.13.36 A1.14.35
+A1.13.35 A1.12.33 A1.13.32 A1.13.30 A1.13.38 A1.13.33 A1.13.41 A1.13.39 A1.13.37
+A1.13.36 A1.13.37 A1.13.34 A1.14.32 A1.13.40 A1.14.35 A1.13.43 A1.14.40 A1.14.37
+A1.13.37 A1.13.35 A1.13.33 A1.13.31 A1.13.39 A1.13.34 A1.13.42 A1.13.40 A1.13.36
+A1.13.38 A1.12.34 A1.12.33 A1.13.32 A1.12.37 A1.13.35 A1.12.40 A1.13.41 A1.13.39
+A1.13.39 A1.13.38 A1.13.35 A1.13.33 A1.13.41 A1.13.37 A1.13.44 A1.13.42 A1.13.40
+A1.13.40 A1.13.39 A1.13.37 A1.13.34 A1.13.42 A1.13.36 A1.13.45 A1.13.43 A1.14.40
+A1.13.41 A1.12.37 A1.13.38 A1.13.35 A1.12.40 A1.13.39 A1.12.43 A1.13.44 A1.13.42
+A1.13.42 A1.13.41 A1.13.39 A1.13.37 A1.13.44 A1.13.40 A1.13.46 A1.13.45 A1.13.43
+A1.13.43 A1.13.42 A1.13.40 A1.13.36 A1.13.45 A1.14.40 A1.13.47 A1.14.44 A1.14.42
+A1.13.44 A1.12.40 A1.13.41 A1.13.39 A1.12.43 A1.13.42 A1.13.48 A1.13.46 A1.13.45
+A1.13.45 A1.13.44 A1.13.42 A1.13.40 A1.13.46 A1.13.43 A1.13.49 A1.13.47 A1.14.44
+A1.13.46 A1.12.43 A1.13.44 A1.13.42 A1.13.48 A1.13.45 A1.13.50 A1.13.49 A1.13.47
+A1.13.47 A1.13.46 A1.13.45 A1.13.43 A1.13.49 A1.14.44 A1.13.51 A1.14.48 A1.14.46
+A1.13.48 A1.12.44 A1.12.43 A1.13.44 A1.12.46 A1.13.46 A1.12.48 A1.13.50 A1.13.49
+A1.13.49 A1.13.48 A1.13.46 A1.13.45 A1.13.50 A1.13.47 A1.13.52 A1.13.51 A1.14.48
+A1.13.50 A1.12.46 A1.13.48 A1.13.46 A1.12.48 A1.13.49 A1.12.50 A1.13.52 A1.13.51
+A1.13.51 A1.13.50 A1.13.49 A1.13.47 A1.13.52 A1.14.48 A1.13.53 A1.14.51 A1.14.49
+A1.13.52 A1.12.48 A1.13.50 A1.13.49 A1.12.50 A1.13.51 A1.12.54 A1.13.56 A1.13.54 A1.13.53 A1.14.51
+A1.13.53 A1.13.52 A1.13.51 A1.13.54 A1.14.51 A1.13.57 A1.13.55
+A1.13.54 A1.13.52 A1.12.54 A1.13.56 A1.13.53 A1.13.58 A1.13.57 A1.13.55
+A1.13.55 A1.13.54 A1.13.53 A1.14.51 A1.13.57 A1.13.59 A1.14.56 A1.14.54
+A1.13.56 A1.13.52 A1.12.55 A1.12.54 A1.12.58 A1.13.54 A1.13.60 A1.13.58 A1.13.57
+A1.13.57 A1.13.56 A1.13.54 A1.13.53 A1.13.58 A1.13.55 A1.13.61 A1.13.59 A1.14.56
+A1.13.58 A1.12.58 A1.13.56 A1.13.54 A1.13.60 A1.13.57 A1.13.62 A1.13.61 A1.13.59
+A1.13.59 A1.13.58 A1.13.57 A1.13.55 A1.13.61 A1.14.56 A1.14.61 A1.14.60 A1.14.58
+A1.13.60 A1.12.59 A1.12.58 A1.13.56 A1.12.61 A1.13.58 A1.13.62 A1.13.61
+A1.13.61 A1.13.60 A1.13.58 A1.13.57 A1.13.62 A1.13.59 A1.14.61 A1.14.60
+A1.13.62 A1.12.61 A1.13.60 A1.13.58 A1.13.61
+A1.14.00 A1.14.06 A1.14.12 A1.14.08 A1.14.04
+A1.14.01 A1.14.03 A1.14.11 A1.14.05
+A1.14.02 A1.14.05 A1.14.13 A1.15.08
+A1.14.03 A1.14.07 A1.14.09 A1.14.11 A1.14.01
+A1.14.04 A1.14.00 A1.14.08 A1.14.10
+A1.14.05 A1.14.11 A1.14.01 A1.14.13 A1.14.02
+A1.14.06 A1.13.06 A1.13.12 A1.14.00 A1.14.17 A1.14.12
+A1.14.07 A1.14.10 A1.14.14 A1.14.09 A1.14.03
+A1.14.08 A1.14.00 A1.14.12 A1.14.04 A1.14.15 A1.14.10
+A1.14.09 A1.14.14 A1.14.07 A1.14.03 A1.14.16 A1.14.11
+A1.14.10 A1.14.12 A1.14.08 A1.14.04 A1.14.15 A1.14.18 A1.14.14 A1.14.07
+A1.14.11 A1.14.14 A1.14.09 A1.14.03 A1.14.16 A1.14.01 A1.14.05 A1.14.19 A1.14.13
+A1.14.12 A1.14.06 A1.13.12 A1.14.00 A1.14.17 A1.14.08 A1.14.20 A1.14.15 A1.14.10
+A1.14.13 A1.14.16 A1.14.11 A1.14.05 A1.14.19 A1.14.02 A1.15.08 A1.14.21 A1.15.17 A1.15.07
+A1.14.14 A1.14.15 A1.14.10 A1.14.18 A1.14.07 A1.14.09 A1.14.22 A1.14.16 A1.14.11
+A1.14.15 A1.14.17 A1.14.12 A1.14.08 A1.14.20 A1.14.10 A1.14.23 A1.14.18 A1.14.14
+A1.14.16 A1.14.18 A1.14.14 A1.14.09 A1.14.22 A1.14.11 A1.14.24 A1.14.19 A1.14.13
+A1.14.17 A1.14.06 A1.13.17 A1.13.12 A1.13.21 A1.14.12 A1.14.25 A1.14.20 A1.14.15
+A1.14.18 A1.14.20 A1.14.15 A1.14.10 A1.14.23 A1.14.14 A1.14.27 A1.14.22 A1.14.16
+A1.14.19 A1.14.22 A1.14.16 A1.14.11 A1.14.24 A1.14.13 A1.14.26 A1.14.21 A1.15.17
+A1.14.20 A1.13.21 A1.14.17 A1.14.12 A1.14.25 A1.14.15 A1.14.28 A1.14.23 A1.14.18
+A1.14.21 A1.14.24 A1.14.19 A1.14.13 A1.14.26 A1.15.17 A1.15.28 A1.15.23 A1.15.18
+A1.14.22 A1.14.23 A1.14.18 A1.14.14 A1.14.27 A1.14.16 A1.14.29 A1.14.24 A1.14.19
+A1.14.23 A1.14.25 A1.14.20 A1.14.15 A1.14.28 A1.14.18 A1.14.30 A1.14.27 A1.14.22
+A1.14.24 A1.14.27 A1.14.22 A1.14.16 A1.14.29 A1.14.19 A1.14.31 A1.14.26 A1.14.21
+A1.14.25 A1.13.24 A1.13.21 A1.14.17 A1.13.28 A1.14.20 A1.14.32 A1.14.28 A1.14.23
+A1.14.26 A1.14.29 A1.14.24 A1.14.19 A1.14.31 A1.14.21 A1.14.33 A1.15.28 A1.15.23
+A1.14.27 A1.14.28 A1.14.23 A1.14.18 A1.14.30 A1.14.22 A1.14.34 A1.14.29 A1.14.24
+A1.14.28 A1.13.28 A1.14.25 A1.14.20 A1.14.32 A1.14.23 A1.14.35 A1.14.30 A1.14.27
+A1.14.29 A1.14.30 A1.14.27 A1.14.22 A1.14.34 A1.14.24 A1.14.36 A1.14.31 A1.14.26
+A1.14.30 A1.14.32 A1.14.28 A1.14.23 A1.14.35 A1.14.27 A1.14.37 A1.14.34 A1.14.29
+A1.14.31 A1.14.34 A1.14.29 A1.14.24 A1.14.36 A1.14.26 A1.14.38 A1.14.33 A1.15.28
+A1.14.32 A1.13.31 A1.13.28 A1.14.25 A1.13.34 A1.14.28 A1.13.36 A1.14.35 A1.14.30
+A1.14.33 A1.14.36 A1.14.31 A1.14.26 A1.14.38 A1.15.28 A1.15.37 A1.15.33 A1.15.29
+A1.14.34 A1.14.35 A1.14.30 A1.14.27 A1.14.37 A1.14.29 A1.14.39 A1.14.36 A1.14.31
+A1.14.35 A1.13.34 A1.14.32 A1.14.28 A1.13.36 A1.14.30 A1.14.40 A1.14.37 A1.14.34
+A1.14.36 A1.14.37 A1.14.34 A1.14.29 A1.14.39 A1.14.31 A1.14.41 A1.14.38 A1.14.33
+A1.14.37 A1.13.36 A1.14.35 A1.14.30 A1.14.40 A1.14.34 A1.14.42 A1.14.39 A1.14.36
+A1.14.38 A1.14.39 A1.14.36 A1.14.31 A1.14.41 A1.14.33 A1.15.41 A1.15.37 A1.15.33
+A1.14.39 A1.14.40 A1.14.37 A1.14.34 A1.14.42 A1.14.36 A1.14.43 A1.14.41 A1.14.38
+A1.14.40 A1.13.40 A1.13.36 A1.14.35 A1.13.43 A1.14.37 A1.14.44 A1.14.42 A1.14.39
+A1.14.41 A1.14.42 A1.14.39 A1.14.36 A1.14.43 A1.14.38 A1.14.45 A1.15.41 A1.15.37
+A1.14.42 A1.13.43 A1.14.40 A1.14.37 A1.14.44 A1.14.39 A1.14.46 A1.14.43 A1.14.41
+A1.14.43 A1.14.44 A1.14.42 A1.14.39 A1.14.46 A1.14.41 A1.14.47 A1.14.45 A1.15.41
+A1.14.44 A1.13.45 A1.13.43 A1.14.40 A1.13.47 A1.14.42 A1.14.48 A1.14.46 A1.14.43
+A1.14.45 A1.14.46 A1.14.43 A1.14.41 A1.14.47 A1.15.41 A1.15.48 A1.15.45 A1.15.42
+A1.14.46 A1.13.47 A1.14.44 A1.14.42 A1.14.48 A1.14.43 A1.14.49 A1.14.47 A1.14.45
+A1.14.47 A1.14.48 A1.14.46 A1.14.43 A1.14.49 A1.14.45 A1.14.50 A1.15.48 A1.15.45
+A1.14.48 A1.13.49 A1.13.47 A1.14.44 A1.13.51 A1.14.46 A1.14.51 A1.14.49 A1.14.47
+A1.14.49 A1.13.51 A1.14.48 A1.14.46 A1.14.51 A1.14.47 A1.14.52 A1.14.50 A1.15.48
+A1.14.50 A1.14.51 A1.14.49 A1.14.47 A1.14.52 A1.15.48 A1.14.53 A1.15.53 A1.15.51 A1.15.49
+A1.14.51 A1.13.52 A1.13.51 A1.14.48 A1.13.53 A1.14.49 A1.13.55 A1.14.56 A1.14.54 A1.14.52 A1.14.50
+A1.14.52 A1.14.51 A1.14.49 A1.14.54 A1.14.50 A1.14.55 A1.14.53
+A1.14.53 A1.14.54 A1.14.52 A1.14.50 A1.14.55 A1.14.57 A1.15.53 A1.15.51
+A1.14.54 A1.14.51 A1.13.55 A1.14.56 A1.14.52 A1.14.58 A1.14.55 A1.14.53
+A1.14.55 A1.14.56 A1.14.54 A1.14.52 A1.14.58 A1.14.53 A1.14.59 A1.14.57 A1.15.53
+A1.14.56 A1.14.51 A1.13.57 A1.13.55 A1.13.59 A1.14.54 A1.14.60 A1.14.58 A1.14.55
+A1.14.57 A1.14.58 A1.14.55 A1.14.53 A1.14.59 A1.15.53 A1.15.60 A1.15.57 A1.15.54
+A1.14.58 A1.13.59 A1.14.56 A1.14.54 A1.14.61 A1.14.60 A1.14.55 A1.14.59 A1.14.57
+A1.14.59 A1.14.61 A1.14.60 A1.14.58 A1.14.55 A1.14.57 A1.14.62 A1.15.60 A1.15.57
+A1.14.60 A1.13.61 A1.13.59 A1.14.56 A1.14.61 A1.14.58 A1.14.59
+A1.14.61 A1.13.61 A1.13.59 A1.14.60 A1.14.58 A1.14.59 A1.14.62
+A1.14.62 A1.14.61 A1.14.59 A1.15.60 A1.15.61
+A1.15.00 A1.15.07 A1.15.12
+A1.15.01 A1.15.02 A1.15.10 A1.15.11 A1.00.12 A1.00.02
+A1.15.02 A1.15.03 A1.15.06 A1.15.09 A1.15.10 A1.15.01
+A1.15.03 A1.15.14 A1.15.05 A1.15.15 A1.15.06 A1.15.02
+A1.15.04 A1.15.12 A1.15.13 A1.15.14 A1.15.05
+A1.15.05 A1.15.13 A1.15.04 A1.15.14 A1.15.03
+A1.15.06 A1.15.14 A1.15.03 A1.15.15 A1.15.02 A1.15.09
+A1.15.07 A1.14.13 A1.15.08 A1.15.17 A1.15.00 A1.15.18 A1.15.12
+A1.15.08 A1.14.13 A1.14.02 A1.15.17 A1.15.07
+A1.15.09 A1.15.15 A1.15.06 A1.15.02 A1.15.16 A1.15.10
+A1.15.10 A1.15.15 A1.15.02 A1.15.09 A1.15.16 A1.15.01 A1.15.11
+A1.15.11 A1.15.16 A1.15.10 A1.15.01 A1.00.17 A1.00.12 A1.00.02
+A1.15.12 A1.15.17 A1.15.07 A1.15.00 A1.15.18 A1.15.19 A1.15.13 A1.15.04
+A1.15.13 A1.15.18 A1.15.12 A1.15.19 A1.15.04 A1.15.20 A1.15.14 A1.15.05
+A1.15.14 A1.15.19 A1.15.13 A1.15.04 A1.15.20 A1.15.05 A1.15.03 A1.15.21 A1.15.15 A1.15.06
+A1.15.15 A1.15.20 A1.15.14 A1.15.03 A1.15.21 A1.15.06 A1.15.09 A1.15.22 A1.15.16 A1.15.10
+A1.15.16 A1.15.21 A1.15.15 A1.15.09 A1.15.22 A1.15.10 A1.15.11 A1.00.23 A1.00.17 A1.00.12
+A1.15.17 A1.14.19 A1.14.13 A1.15.08 A1.14.21 A1.15.07 A1.15.23 A1.15.18 A1.15.12
+A1.15.18 A1.14.21 A1.15.17 A1.15.07 A1.15.23 A1.15.12 A1.15.24 A1.15.19 A1.15.13
+A1.15.19 A1.15.23 A1.15.18 A1.15.12 A1.15.24 A1.15.13 A1.15.25 A1.15.20 A1.15.14
+A1.15.20 A1.15.24 A1.15.19 A1.15.13 A1.15.25 A1.15.14 A1.15.26 A1.15.21 A1.15.15
+A1.15.21 A1.15.25 A1.15.20 A1.15.14 A1.15.26 A1.15.15 A1.15.27 A1.15.22 A1.15.16
+A1.15.22 A1.15.26 A1.15.21 A1.15.15 A1.15.27 A1.15.16 A1.00.28 A1.00.23 A1.00.17
+A1.15.23 A1.14.26 A1.14.21 A1.15.17 A1.15.28 A1.15.18 A1.15.29 A1.15.24 A1.15.19
+A1.15.24 A1.15.28 A1.15.23 A1.15.18 A1.15.29 A1.15.19 A1.15.30 A1.15.25 A1.15.20
+A1.15.25 A1.15.29 A1.15.24 A1.15.19 A1.15.30 A1.15.20 A1.15.31 A1.15.26 A1.15.21
+A1.15.26 A1.15.30 A1.15.25 A1.15.20 A1.15.31 A1.15.21 A1.15.32 A1.15.27 A1.15.22
+A1.15.27 A1.15.31 A1.15.26 A1.15.21 A1.15.32 A1.15.22 A1.00.33 A1.00.28 A1.00.23
+A1.15.28 A1.14.31 A1.14.26 A1.14.21 A1.14.33 A1.15.23 A1.15.33 A1.15.29 A1.15.24
+A1.15.29 A1.14.33 A1.15.28 A1.15.23 A1.15.33 A1.15.24 A1.15.34 A1.15.30 A1.15.25
+A1.15.30 A1.15.33 A1.15.29 A1.15.24 A1.15.34 A1.15.25 A1.15.35 A1.15.31 A1.15.26
+A1.15.31 A1.15.34 A1.15.30 A1.15.25 A1.15.35 A1.15.26 A1.15.36 A1.15.32 A1.15.27
+A1.15.32 A1.15.35 A1.15.31 A1.15.26 A1.15.36 A1.15.27 A1.00.37 A1.00.33 A1.00.28
+A1.15.33 A1.14.38 A1.14.33 A1.15.28 A1.15.37 A1.15.29 A1.15.38 A1.15.34 A1.15.30
+A1.15.34 A1.15.37 A1.15.33 A1.15.29 A1.15.38 A1.15.30 A1.15.39 A1.15.35 A1.15.31
+A1.15.35 A1.15.38 A1.15.34 A1.15.30 A1.15.39 A1.15.31 A1.15.40 A1.15.36 A1.15.32
+A1.15.36 A1.15.39 A1.15.35 A1.15.31 A1.15.40 A1.15.32 A1.00.41 A1.00.37 A1.00.33
+A1.15.37 A1.14.41 A1.14.38 A1.14.33 A1.15.41 A1.15.33 A1.15.42 A1.15.38 A1.15.34
+A1.15.38 A1.15.41 A1.15.37 A1.15.33 A1.15.42 A1.15.34 A1.15.43 A1.15.39 A1.15.35
+A1.15.39 A1.15.42 A1.15.38 A1.15.34 A1.15.43 A1.15.35 A1.15.44 A1.15.40 A1.15.36
+A1.15.40 A1.15.43 A1.15.39 A1.15.35 A1.15.44 A1.15.36 A1.00.45 A1.00.41 A1.00.37
+A1.15.41 A1.14.43 A1.14.41 A1.14.38 A1.14.45 A1.15.37 A1.15.45 A1.15.42 A1.15.38
+A1.15.42 A1.14.45 A1.15.41 A1.15.37 A1.15.45 A1.15.38 A1.15.46 A1.15.43 A1.15.39
+A1.15.43 A1.15.45 A1.15.42 A1.15.38 A1.15.46 A1.15.39 A1.15.47 A1.15.44 A1.15.40
+A1.15.44 A1.15.46 A1.15.43 A1.15.39 A1.15.47 A1.15.40 A1.00.48 A1.00.45 A1.00.41
+A1.15.45 A1.14.47 A1.14.45 A1.15.41 A1.15.48 A1.15.42 A1.15.49 A1.15.46 A1.15.43
+A1.15.46 A1.15.48 A1.15.45 A1.15.42 A1.15.49 A1.15.43 A1.15.50 A1.15.47 A1.15.44
+A1.15.47 A1.15.49 A1.15.46 A1.15.43 A1.15.50 A1.15.44 A1.00.51 A1.00.48 A1.00.45
+A1.15.48 A1.14.49 A1.14.47 A1.14.45 A1.14.50 A1.15.45 A1.15.51 A1.15.49 A1.15.46
+A1.15.49 A1.14.50 A1.15.48 A1.15.45 A1.15.51 A1.15.46 A1.15.52 A1.15.50 A1.15.47
+A1.15.50 A1.15.51 A1.15.49 A1.15.46 A1.15.52 A1.15.47 A1.00.53 A1.00.51 A1.00.48
+A1.15.51 A1.14.50 A1.15.48 A1.14.53 A1.15.53 A1.15.49 A1.15.54 A1.15.55 A1.15.52 A1.15.50
+A1.15.52 A1.15.51 A1.15.49 A1.15.54 A1.15.55 A1.15.50 A1.15.56 A1.00.56 A1.00.53 A1.00.51
+A1.15.53 A1.14.50 A1.14.55 A1.14.53 A1.14.57 A1.15.51 A1.15.57 A1.15.54
+A1.15.54 A1.14.57 A1.15.53 A1.15.51 A1.15.57 A1.15.58 A1.15.55 A1.15.52
+A1.15.55 A1.15.51 A1.15.57 A1.15.54 A1.15.58 A1.15.52 A1.15.59 A1.15.56
+A1.15.56 A1.15.58 A1.15.55 A1.15.52 A1.15.59 A1.00.59 A1.00.56 A1.00.53
+A1.15.57 A1.14.59 A1.14.57 A1.15.53 A1.15.60 A1.15.54 A1.15.61 A1.15.58 A1.15.55
+A1.15.58 A1.15.60 A1.15.57 A1.15.54 A1.15.61 A1.15.55 A1.15.62 A1.15.59 A1.15.56
+A1.15.59 A1.15.61 A1.15.58 A1.15.55 A1.15.62 A1.15.56 A1.00.62 A1.00.59 A1.00.56
+A1.15.60 A1.14.59 A1.14.57 A1.14.62 A1.15.57 A1.15.61 A1.15.58
+A1.15.61 A1.14.62 A1.15.60 A1.15.57 A1.15.58 A1.15.62 A1.15.59
+A1.15.62 A1.15.61 A1.15.58 A1.15.59 A1.00.62 A1.00.59
+A2.00.00 A2.00.06 A2.00.01 A2.00.05
+A2.00.01 A2.00.06 A2.00.02 A2.00.05 A2.00.00
+A2.00.02 A2.15.06 A2.15.01 A2.00.06 A2.00.01
+A2.00.03 A2.00.08 A2.00.04 A2.00.07 A2.01.04
+A2.00.04 A2.00.09 A2.00.05 A2.00.08 A2.00.07 A2.00.03
+A2.00.05 A2.00.10 A2.00.06 A2.00.01 A2.00.09 A2.00.00 A2.00.08 A2.00.04
+A2.00.06 A2.15.10 A2.15.06 A2.15.01 A2.00.10 A2.00.02 A2.00.01 A2.00.09 A2.00.05 A2.00.00
+A2.00.07 A2.00.11 A2.00.08 A2.00.04 A2.01.10 A2.00.03 A2.01.07 A2.01.04
+A2.00.08 A2.00.12 A2.00.09 A2.00.05 A2.00.11 A2.00.04 A2.01.10 A2.00.07 A2.00.03
+A2.00.09 A2.00.13 A2.00.10 A2.00.06 A2.00.12 A2.00.05 A2.00.11 A2.00.08 A2.00.04
+A2.00.10 A2.15.13 A2.15.10 A2.15.06 A2.00.13 A2.00.06 A2.00.12 A2.00.09 A2.00.05
+A2.00.11 A2.00.15 A2.00.12 A2.00.09 A2.00.14 A2.00.08 A2.01.13 A2.01.10 A2.00.07
+A2.00.12 A2.00.16 A2.00.13 A2.00.10 A2.00.15 A2.00.09 A2.00.14 A2.00.11 A2.00.08
+A2.00.13 A2.15.16 A2.15.13 A2.15.10 A2.00.16 A2.00.10 A2.00.15 A2.00.12 A2.00.09
+A2.00.14 A2.00.18 A2.00.15 A2.00.12 A2.00.17 A2.00.11 A2.01.16 A2.01.13 A2.01.10
+A2.00.15 A2.00.19 A2.00.16 A2.00.13 A2.00.18 A2.00.12 A2.00.17 A2.00.14 A2.00.11
+A2.00.16 A2.15.19 A2.15.16 A2.15.13 A2.00.19 A2.00.13 A2.00.18 A2.00.15 A2.00.12
+A2.00.17 A2.00.20 A2.00.18 A2.00.15 A2.01.20 A2.00.14 A2.01.18 A2.01.16 A2.01.13
+A2.00.18 A2.00.21 A2.00.19 A2.00.16 A2.00.20 A2.00.15 A2.01.20 A2.00.17 A2.00.14
+A2.00.19 A2.15.21 A2.15.19 A2.15.16 A2.00.21 A2.00.16 A2.00.20 A2.00.18 A2.00.15
+A2.00.20 A2.00.23 A2.00.21 A2.00.19 A2.00.22 A2.00.18 A2.01.22 A2.01.20 A2.00.17
+A2.00.21 A2.15.23 A2.15.21 A2.15.19 A2.00.23 A2.00.19 A2.00.22 A2.00.20 A2.00.18
+A2.00.22 A2.00.25 A2.00.23 A2.00.21 A2.00.24 A2.00.20 A2.01.24 A2.01.22 A2.01.20
+A2.00.23 A2.15.25 A2.15.23 A2.15.21 A2.00.25 A2.00.21 A2.00.24 A2.00.22 A2.00.20
+A2.00.24 A2.00.26 A2.00.25 A2.00.23 A2.01.26 A2.00.22 A2.01.25 A2.01.24 A2.01.22
+A2.00.25 A2.15.26 A2.15.25 A2.15.23 A2.00.26 A2.00.23 A2.01.26 A2.00.24 A2.00.22
+A2.00.26 A2.15.27 A2.15.26 A2.15.25 A2.00.27 A2.00.25 A2.01.28 A2.01.26 A2.00.24
+A2.00.27 A2.15.27 A2.15.26 A2.15.29 A2.00.29 A2.00.26 A2.00.28 A2.01.30 A2.01.28 A2.01.26
+A2.00.28 A2.00.29 A2.00.27 A2.01.31 A2.01.30 A2.01.28
+A2.00.29 A2.15.27 A2.15.29 A2.00.27 A2.00.28
+A2.01.00 A2.01.05 A2.02.06 A2.02.00
+A2.01.01 A2.01.05 A2.01.03
+A2.01.02 A2.01.07 A2.01.04 A2.01.06
+A2.01.03 A2.01.09 A2.01.06 A2.01.05 A2.01.01
+A2.01.04 A2.01.10 A2.00.07 A2.00.03 A2.01.07 A2.01.06 A2.01.02
+A2.01.05 A2.01.12 A2.01.09 A2.01.06 A2.01.08 A2.01.03 A2.01.01 A2.02.06 A2.01.00
+A2.01.06 A2.01.11 A2.01.07 A2.01.04 A2.01.09 A2.01.02 A2.01.05 A2.01.03
+A2.01.07 A2.01.13 A2.01.10 A2.00.07 A2.01.11 A2.01.04 A2.01.09 A2.01.06 A2.01.02
+A2.01.08 A2.01.14 A2.01.12 A2.01.09 A2.02.11 A2.01.05 A2.02.09 A2.02.06
+A2.01.09 A2.01.15 A2.01.11 A2.01.07 A2.01.12 A2.01.06 A2.01.08 A2.01.05 A2.01.03
+A2.01.10 A2.00.14 A2.00.11 A2.00.08 A2.01.13 A2.00.07 A2.01.11 A2.01.07 A2.01.04
+A2.01.11 A2.01.16 A2.01.13 A2.01.10 A2.01.15 A2.01.07 A2.01.12 A2.01.09 A2.01.06
+A2.01.12 A2.01.17 A2.01.15 A2.01.11 A2.01.14 A2.01.09 A2.02.11 A2.01.08 A2.01.05
+A2.01.13 A2.00.17 A2.00.14 A2.00.11 A2.01.16 A2.01.10 A2.01.15 A2.01.11 A2.01.07
+A2.01.14 A2.01.19 A2.01.17 A2.01.15 A2.02.16 A2.01.12 A2.02.14 A2.02.11 A2.01.08
+A2.01.15 A2.01.18 A2.01.16 A2.01.13 A2.01.17 A2.01.11 A2.01.14 A2.01.12 A2.01.09
+A2.01.16 A2.01.20 A2.00.17 A2.00.14 A2.01.18 A2.01.13 A2.01.17 A2.01.15 A2.01.11
+A2.01.17 A2.01.21 A2.01.18 A2.01.16 A2.01.19 A2.01.15 A2.02.16 A2.01.14 A2.01.12
+A2.01.18 A2.01.22 A2.01.20 A2.00.17 A2.01.21 A2.01.16 A2.01.19 A2.01.17 A2.01.15
+A2.01.19 A2.01.23 A2.01.21 A2.01.18 A2.02.20 A2.01.17 A2.02.18 A2.02.16 A2.01.14
+A2.01.20 A2.00.22 A2.00.20 A2.00.18 A2.01.22 A2.00.17 A2.01.21 A2.01.18 A2.01.16
+A2.01.21 A2.01.24 A2.01.22 A2.01.20 A2.01.23 A2.01.18 A2.02.20 A2.01.19 A2.01.17
+A2.01.22 A2.00.24 A2.00.22 A2.00.20 A2.01.24 A2.01.20 A2.01.23 A2.01.21 A2.01.18
+A2.01.23 A2.01.25 A2.01.24 A2.01.22 A2.02.24 A2.01.21 A2.02.22 A2.02.20 A2.01.19
+A2.01.24 A2.01.26 A2.00.24 A2.00.22 A2.01.25 A2.01.22 A2.02.24 A2.01.23 A2.01.21
+A2.01.25 A2.01.28 A2.01.26 A2.00.24 A2.01.27 A2.01.24 A2.02.25 A2.02.24 A2.01.23
+A2.01.26 A2.00.27 A2.00.26 A2.00.25 A2.01.28 A2.00.24 A2.01.27 A2.01.25 A2.01.24
+A2.01.27 A2.01.28 A2.01.26 A2.01.29 A2.02.27 A2.01.25 A2.02.26 A2.02.25 A2.02.24
+A2.01.28 A2.00.27 A2.00.26 A2.00.28 A2.01.30 A2.01.26 A2.01.29 A2.02.27 A2.01.27 A2.01.25
+A2.01.29 A2.01.31 A2.01.30 A2.01.28 A2.02.29 A2.02.27 A2.01.27
+A2.01.30 A2.00.27 A2.00.28 A2.01.31 A2.01.28 A2.02.29 A2.01.29
+A2.01.31 A2.00.28 A2.01.30 A2.02.30 A2.02.29 A2.01.29
+A2.02.00 A2.02.06 A2.01.00 A2.02.03
+A2.02.01 A2.02.08 A2.02.07 A2.02.02
+A2.02.02 A2.02.08 A2.02.07 A2.02.01 A2.03.01 A2.02.04
+A2.02.03 A2.02.09 A2.02.06 A2.02.00 A2.02.05
+A2.02.04 A2.03.06 A2.02.08 A2.03.01 A2.02.02
+A2.02.05 A2.02.10 A2.02.09 A2.02.07 A2.02.03
+A2.02.06 A2.02.11 A2.01.08 A2.01.05 A2.02.09 A2.01.00 A2.02.00 A2.02.03
+A2.02.07 A2.02.12 A2.02.10 A2.02.09 A2.02.08 A2.02.05 A2.02.01 A2.02.02
+A2.02.08 A2.02.13 A2.02.12 A2.02.10 A2.03.06 A2.02.07 A2.02.01 A2.03.01 A2.02.04 A2.02.02
+A2.02.09 A2.02.14 A2.02.11 A2.01.08 A2.02.10 A2.02.06 A2.02.07 A2.02.05 A2.02.03
+A2.02.10 A2.02.15 A2.02.14 A2.02.11 A2.02.12 A2.02.09 A2.02.08 A2.02.07 A2.02.05
+A2.02.11 A2.02.16 A2.01.14 A2.01.12 A2.02.14 A2.01.08 A2.02.10 A2.02.09 A2.02.06
+A2.02.12 A2.02.17 A2.02.15 A2.02.14 A2.02.13 A2.02.10 A2.03.06 A2.02.08 A2.02.07
+A2.02.13 A2.03.15 A2.02.17 A2.02.15 A2.03.11 A2.02.12 A2.03.07 A2.03.06 A2.02.08
+A2.02.14 A2.02.18 A2.02.16 A2.01.14 A2.02.15 A2.02.11 A2.02.12 A2.02.10 A2.02.09
+A2.02.15 A2.02.19 A2.02.18 A2.02.16 A2.02.17 A2.02.14 A2.02.13 A2.02.12 A2.02.10
+A2.02.16 A2.02.20 A2.01.19 A2.01.17 A2.02.18 A2.01.14 A2.02.15 A2.02.14 A2.02.11
+A2.02.17 A2.02.21 A2.02.19 A2.02.18 A2.03.15 A2.02.15 A2.03.11 A2.02.13 A2.02.12
+A2.02.18 A2.02.22 A2.02.20 A2.01.19 A2.02.19 A2.02.16 A2.02.17 A2.02.15 A2.02.14
+A2.02.19 A2.02.23 A2.02.22 A2.02.20 A2.02.21 A2.02.18 A2.03.15 A2.02.17 A2.02.15
+A2.02.20 A2.02.24 A2.01.23 A2.01.21 A2.02.22 A2.01.19 A2.02.19 A2.02.18 A2.02.16
+A2.02.21 A2.03.22 A2.02.23 A2.02.22 A2.03.19 A2.02.19 A2.03.16 A2.03.15 A2.02.17
+A2.02.22 A2.02.25 A2.02.24 A2.01.23 A2.02.23 A2.02.20 A2.02.21 A2.02.19 A2.02.18
+A2.02.23 A2.02.26 A2.02.25 A2.02.24 A2.03.22 A2.02.22 A2.03.19 A2.02.21 A2.02.19
+A2.02.24 A2.01.27 A2.01.25 A2.01.24 A2.02.25 A2.01.23 A2.02.23 A2.02.22 A2.02.20
+A2.02.25 A2.02.27 A2.01.27 A2.01.25 A2.02.26 A2.02.24 A2.03.22 A2.02.23 A2.02.22
+A2.02.26 A2.02.28 A2.02.27 A2.01.27 A2.03.25 A2.02.25 A2.03.23 A2.03.22 A2.02.23
+A2.02.27 A2.01.28 A2.02.30 A2.02.29 A2.01.29 A2.02.28 A2.01.27 A2.03.25 A2.02.26 A2.02.25
+A2.02.28 A2.02.30 A2.02.29 A2.02.31 A2.03.29 A2.02.27 A2.03.27 A2.03.26 A2.03.25 A2.02.26
+A2.02.29 A2.01.31 A2.01.30 A2.02.30 A2.01.29 A2.02.28 A2.02.27
+A2.02.30 A2.01.31 A2.02.29 A2.02.31 A2.02.28 A2.02.27
+A2.02.31 A2.02.30 A2.03.30 A2.03.29 A2.02.28
+A2.03.00 A2.04.05 A2.03.05 A2.03.04 A2.03.03 A2.04.00
+A2.03.01 A2.03.07 A2.03.06 A2.02.08 A2.03.02 A2.02.04 A2.02.02
+A2.03.02 A2.03.08 A2.03.07 A2.03.06 A2.03.03 A2.03.01
+A2.03.03 A2.03.09 A2.03.08 A2.03.07 A2.03.04 A2.03.02 A2.03.00
+A2.03.04 A2.03.10 A2.03.09 A2.03.08 A2.03.05 A2.03.03 A2.03.00
+A2.03.05 A2.04.10 A2.03.10 A2.03.09 A2.04.05 A2.03.04 A2.04.00 A2.03.00
+A2.03.06 A2.03.11 A2.02.13 A2.02.12 A2.03.07 A2.02.08 A2.03.02 A2.03.01 A2.02.04
+A2.03.07 A2.03.12 A2.03.11 A2.02.13 A2.03.08 A2.03.06 A2.03.03 A2.03.02 A2.03.01
+A2.03.08 A2.03.13 A2.03.12 A2.03.11 A2.03.09 A2.03.07 A2.03.04 A2.03.03 A2.03.02
+A2.03.09 A2.03.14 A2.03.13 A2.03.12 A2.03.10 A2.03.08 A2.03.05 A2.03.04 A2.03.03
+A2.03.10 A2.04.14 A2.03.14 A2.03.13 A2.04.10 A2.03.09 A2.04.05 A2.03.05 A2.03.04
+A2.03.11 A2.03.16 A2.03.15 A2.02.17 A2.03.12 A2.02.13 A2.03.08 A2.03.07 A2.03.06
+A2.03.12 A2.03.17 A2.03.16 A2.03.15 A2.03.13 A2.03.11 A2.03.09 A2.03.08 A2.03.07
+A2.03.13 A2.03.18 A2.03.17 A2.03.16 A2.03.14 A2.03.12 A2.03.10 A2.03.09 A2.03.08
+A2.03.14 A2.04.18 A2.03.18 A2.03.17 A2.04.14 A2.03.13 A2.04.10 A2.03.10 A2.03.09
+A2.03.15 A2.03.19 A2.02.21 A2.02.19 A2.03.16 A2.02.17 A2.03.12 A2.03.11 A2.02.13
+A2.03.16 A2.03.20 A2.03.19 A2.02.21 A2.03.17 A2.03.15 A2.03.13 A2.03.12 A2.03.11
+A2.03.17 A2.03.21 A2.03.20 A2.03.19 A2.03.18 A2.03.16 A2.03.14 A2.03.13 A2.03.12
+A2.03.18 A2.04.21 A2.03.21 A2.03.20 A2.04.18 A2.03.17 A2.04.14 A2.03.14 A2.03.13
+A2.03.19 A2.03.23 A2.03.22 A2.02.23 A2.03.20 A2.02.21 A2.03.17 A2.03.16 A2.03.15
+A2.03.20 A2.03.24 A2.03.23 A2.03.22 A2.03.21 A2.03.19 A2.03.18 A2.03.17 A2.03.16
+A2.03.21 A2.04.24 A2.03.24 A2.03.23 A2.04.21 A2.03.20 A2.04.18 A2.03.18 A2.03.17
+A2.03.22 A2.03.25 A2.02.26 A2.02.25 A2.03.23 A2.02.23 A2.03.20 A2.03.19 A2.02.21
+A2.03.23 A2.03.26 A2.03.25 A2.02.26 A2.03.24 A2.03.22 A2.03.21 A2.03.20 A2.03.19
+A2.03.24 A2.04.26 A2.03.26 A2.03.25 A2.04.24 A2.03.23 A2.04.21 A2.03.21 A2.03.20
+A2.03.25 A2.02.28 A2.02.27 A2.03.27 A2.03.26 A2.02.26 A2.03.24 A2.03.23 A2.03.22
+A2.03.26 A2.02.28 A2.04.28 A2.03.28 A2.03.27 A2.04.26 A2.03.25 A2.04.24 A2.03.24 A2.03.23
+A2.03.27 A2.03.30 A2.03.29 A2.02.28 A2.03.28 A2.03.26 A2.03.25
+A2.03.28 A2.04.30 A2.03.30 A2.03.29 A2.04.28 A2.03.27 A2.04.26 A2.03.26
+A2.03.29 A2.02.31 A2.03.30 A2.02.28 A2.03.28 A2.03.27
+A2.03.30 A2.02.31 A2.04.30 A2.03.29 A2.04.28 A2.03.28 A2.03.27
+A2.04.00 A2.04.03 A2.04.04 A2.04.05 A2.03.05 A2.03.00
+A2.04.01 A2.05.08 A2.04.06 A2.04.07 A2.05.02 A2.05.04 A2.04.02
+A2.04.02 A2.04.06 A2.04.07 A2.04.08 A2.04.01 A2.04.03
+A2.04.03 A2.04.07 A2.04.08 A2.04.09 A2.04.02 A2.04.04 A2.04.00
+A2.04.04 A2.04.08 A2.04.09 A2.04.10 A2.04.03 A2.04.05 A2.04.00
+A2.04.05 A2.04.09 A2.04.10 A2.03.10 A2.04.04 A2.03.05 A2.04.00 A2.03.00
+A2.04.06 A2.05.12 A2.05.13 A2.04.11 A2.05.08 A2.04.07 A2.05.04 A2.04.01 A2.04.02
+A2.04.07 A2.05.13 A2.04.11 A2.04.12 A2.04.06 A2.04.08 A2.04.01 A2.04.02 A2.04.03
+A2.04.08 A2.04.11 A2.04.12 A2.04.13 A2.04.07 A2.04.09 A2.04.02 A2.04.03 A2.04.04
+A2.04.09 A2.04.12 A2.04.13 A2.04.14 A2.04.08 A2.04.10 A2.04.03 A2.04.04 A2.04.05
+A2.04.10 A2.04.13 A2.04.14 A2.03.14 A2.04.09 A2.03.10 A2.04.04 A2.04.05 A2.03.05
+A2.04.11 A2.05.17 A2.04.15 A2.04.16 A2.05.13 A2.04.12 A2.04.06 A2.04.07 A2.04.08
+A2.04.12 A2.04.15 A2.04.16 A2.04.17 A2.04.11 A2.04.13 A2.04.07 A2.04.08 A2.04.09
+A2.04.13 A2.04.16 A2.04.17 A2.04.18 A2.04.12 A2.04.14 A2.04.08 A2.04.09 A2.04.10
+A2.04.14 A2.04.17 A2.04.18 A2.03.18 A2.04.13 A2.03.14 A2.04.09 A2.04.10 A2.03.10
+A2.04.15 A2.05.19 A2.05.21 A2.04.19 A2.05.17 A2.04.16 A2.05.13 A2.04.11 A2.04.12
+A2.04.16 A2.05.21 A2.04.19 A2.04.20 A2.04.15 A2.04.17 A2.04.11 A2.04.12 A2.04.13
+A2.04.17 A2.04.19 A2.04.20 A2.04.21 A2.04.16 A2.04.18 A2.04.12 A2.04.13 A2.04.14
+A2.04.18 A2.04.20 A2.04.21 A2.03.21 A2.04.17 A2.03.18 A2.04.13 A2.04.14 A2.03.14
+A2.04.19 A2.05.23 A2.04.22 A2.04.23 A2.05.21 A2.04.20 A2.04.15 A2.04.16 A2.04.17
+A2.04.20 A2.04.22 A2.04.23 A2.04.24 A2.04.19 A2.04.21 A2.04.16 A2.04.17 A2.04.18
+A2.04.21 A2.04.23 A2.04.24 A2.03.24 A2.04.20 A2.03.21 A2.04.17 A2.04.18 A2.03.18
+A2.04.22 A2.05.25 A2.05.26 A2.04.25 A2.05.23 A2.04.23 A2.05.21 A2.04.19 A2.04.20
+A2.04.23 A2.05.26 A2.04.25 A2.04.26 A2.04.22 A2.04.24 A2.04.19 A2.04.20 A2.04.21
+A2.04.24 A2.04.25 A2.04.26 A2.03.26 A2.04.23 A2.03.24 A2.04.20 A2.04.21 A2.03.21
+A2.04.25 A2.05.27 A2.05.28 A2.04.27 A2.05.26 A2.04.26 A2.04.22 A2.04.23 A2.04.24
+A2.04.26 A2.05.28 A2.04.27 A2.04.28 A2.03.28 A2.04.25 A2.03.26 A2.04.23 A2.04.24 A2.03.24
+A2.04.27 A2.05.28 A2.04.29 A2.04.30 A2.04.28 A2.04.25 A2.04.26
+A2.04.28 A2.04.29 A2.04.30 A2.03.30 A2.04.27 A2.03.28 A2.04.26 A2.03.26
+A2.04.29 A2.05.31 A2.05.28 A2.04.30 A2.04.27 A2.04.28
+A2.04.30 A2.04.29 A2.03.30 A2.04.27 A2.04.28 A2.03.28
+A2.05.00 A2.05.07 A2.05.08 A2.05.02
+A2.05.01 A2.06.03 A2.06.00 A2.05.06
+A2.05.02 A2.05.07 A2.05.08 A2.05.00 A2.05.04 A2.04.01
+A2.05.03 A2.05.06 A2.05.09 A2.05.05
+A2.05.04 A2.05.08 A2.04.06 A2.05.02 A2.04.01
+A2.05.05 A2.05.09 A2.05.10 A2.05.03 A2.05.07
+A2.05.06 A2.06.08 A2.05.11 A2.06.03 A2.05.09 A2.05.01 A2.05.03
+A2.05.07 A2.05.09 A2.05.10 A2.05.12 A2.05.05 A2.05.08 A2.05.00 A2.05.02
+A2.05.08 A2.05.10 A2.05.12 A2.05.13 A2.05.07 A2.04.06 A2.05.00 A2.05.02 A2.05.04 A2.04.01
+A2.05.09 A2.06.08 A2.05.11 A2.05.14 A2.05.06 A2.05.10 A2.05.03 A2.05.05 A2.05.07
+A2.05.10 A2.05.11 A2.05.14 A2.05.15 A2.05.09 A2.05.12 A2.05.05 A2.05.07 A2.05.08
+A2.05.11 A2.06.12 A2.06.14 A2.05.16 A2.06.08 A2.05.14 A2.05.06 A2.05.09 A2.05.10
+A2.05.12 A2.05.14 A2.05.15 A2.05.17 A2.05.10 A2.05.13 A2.05.07 A2.05.08 A2.04.06
+A2.05.13 A2.05.15 A2.05.17 A2.04.15 A2.05.12 A2.04.11 A2.05.08 A2.04.06 A2.04.07
+A2.05.14 A2.06.14 A2.05.16 A2.05.18 A2.05.11 A2.05.15 A2.05.09 A2.05.10 A2.05.12
+A2.05.15 A2.05.16 A2.05.18 A2.05.19 A2.05.14 A2.05.17 A2.05.10 A2.05.12 A2.05.13
+A2.05.16 A2.06.17 A2.06.19 A2.05.20 A2.06.14 A2.05.18 A2.05.11 A2.05.14 A2.05.15
+A2.05.17 A2.05.18 A2.05.19 A2.05.21 A2.05.15 A2.04.15 A2.05.12 A2.05.13 A2.04.11
+A2.05.18 A2.06.19 A2.05.20 A2.05.22 A2.05.16 A2.05.19 A2.05.14 A2.05.15 A2.05.17
+A2.05.19 A2.05.20 A2.05.22 A2.05.23 A2.05.18 A2.05.21 A2.05.15 A2.05.17 A2.04.15
+A2.05.20 A2.06.21 A2.06.23 A2.05.24 A2.06.19 A2.05.22 A2.05.16 A2.05.18 A2.05.19
+A2.05.21 A2.05.22 A2.05.23 A2.04.22 A2.05.19 A2.04.19 A2.05.17 A2.04.15 A2.04.16
+A2.05.22 A2.06.23 A2.05.24 A2.05.25 A2.05.20 A2.05.23 A2.05.18 A2.05.19 A2.05.21
+A2.05.23 A2.05.24 A2.05.25 A2.05.26 A2.05.22 A2.04.22 A2.05.19 A2.05.21 A2.04.19
+A2.05.24 A2.06.24 A2.06.25 A2.06.27 A2.06.23 A2.05.25 A2.05.20 A2.05.22 A2.05.23
+A2.05.25 A2.06.25 A2.06.27 A2.05.27 A2.05.24 A2.05.26 A2.05.22 A2.05.23 A2.04.22
+A2.05.26 A2.06.27 A2.05.27 A2.05.28 A2.05.25 A2.04.25 A2.05.23 A2.04.22 A2.04.23
+A2.05.27 A2.06.28 A2.05.30 A2.05.29 A2.06.27 A2.05.28 A2.05.25 A2.05.26 A2.04.25
+A2.05.28 A2.05.30 A2.05.31 A2.05.27 A2.04.29 A2.04.27 A2.05.26 A2.04.25 A2.04.26
+A2.05.29 A2.06.31 A2.06.28 A2.06.29 A2.05.30 A2.06.27 A2.05.27
+A2.05.30 A2.06.31 A2.06.29 A2.05.29 A2.05.31 A2.05.27 A2.05.28
+A2.05.31 A2.05.30 A2.05.28 A2.04.29
+A2.06.00 A2.06.05 A2.06.03 A2.05.01
+A2.06.01 A2.06.06 A2.06.05
+A2.06.02 A2.06.04 A2.06.07 A2.06.06
+A2.06.03 A2.06.05 A2.06.08 A2.06.00 A2.05.06 A2.05.01
+A2.06.04 A2.07.03 A2.07.07 A2.06.10 A2.06.07 A2.06.02 A2.06.06
+A2.06.05 A2.06.06 A2.06.09 A2.06.12 A2.06.01 A2.06.08 A2.06.03 A2.06.00
+A2.06.06 A2.06.04 A2.06.07 A2.06.11 A2.06.02 A2.06.09 A2.06.01 A2.06.05
+A2.06.07 A2.07.07 A2.06.10 A2.06.13 A2.06.04 A2.06.11 A2.06.02 A2.06.06 A2.06.09
+A2.06.08 A2.06.09 A2.06.12 A2.06.14 A2.06.05 A2.05.11 A2.06.03 A2.05.06 A2.05.09
+A2.06.09 A2.06.07 A2.06.11 A2.06.15 A2.06.06 A2.06.12 A2.06.05 A2.06.08
+A2.06.10 A2.07.08 A2.07.11 A2.07.14 A2.07.07 A2.06.13 A2.06.04 A2.06.07 A2.06.11
+A2.06.11 A2.06.10 A2.06.13 A2.06.16 A2.06.07 A2.06.15 A2.06.06 A2.06.09 A2.06.12
+A2.06.12 A2.06.11 A2.06.15 A2.06.17 A2.06.09 A2.06.14 A2.06.05 A2.06.08 A2.05.11
+A2.06.13 A2.07.11 A2.07.14 A2.07.17 A2.06.10 A2.06.16 A2.06.07 A2.06.11 A2.06.15
+A2.06.14 A2.06.15 A2.06.17 A2.06.19 A2.06.12 A2.05.16 A2.06.08 A2.05.11 A2.05.14
+A2.06.15 A2.06.13 A2.06.16 A2.06.18 A2.06.11 A2.06.17 A2.06.09 A2.06.12 A2.06.14
+A2.06.16 A2.07.14 A2.07.17 A2.06.20 A2.06.13 A2.06.18 A2.06.11 A2.06.15 A2.06.17
+A2.06.17 A2.06.16 A2.06.18 A2.06.21 A2.06.15 A2.06.19 A2.06.12 A2.06.14 A2.05.16
+A2.06.18 A2.07.17 A2.06.20 A2.06.22 A2.06.16 A2.06.21 A2.06.15 A2.06.17 A2.06.19
+A2.06.19 A2.06.18 A2.06.21 A2.06.23 A2.06.17 A2.05.20 A2.06.14 A2.05.16 A2.05.18
+A2.06.20 A2.07.18 A2.07.20 A2.07.22 A2.07.17 A2.06.22 A2.06.16 A2.06.18 A2.06.21
+A2.06.21 A2.06.20 A2.06.22 A2.06.24 A2.06.18 A2.06.23 A2.06.17 A2.06.19 A2.05.20
+A2.06.22 A2.07.20 A2.07.22 A2.07.24 A2.06.20 A2.06.24 A2.06.18 A2.06.21 A2.06.23
+A2.06.23 A2.06.22 A2.06.24 A2.06.25 A2.06.21 A2.05.24 A2.06.19 A2.05.20 A2.05.22
+A2.06.24 A2.07.22 A2.07.24 A2.06.26 A2.06.22 A2.06.25 A2.06.21 A2.06.23 A2.05.24
+A2.06.25 A2.07.24 A2.06.26 A2.06.28 A2.06.24 A2.06.27 A2.06.23 A2.05.24 A2.05.25
+A2.06.26 A2.07.25 A2.07.26 A2.07.27 A2.07.24 A2.06.28 A2.06.24 A2.06.25 A2.06.27
+A2.06.27 A2.06.26 A2.06.28 A2.05.29 A2.06.25 A2.05.27 A2.05.24 A2.05.25 A2.05.26
+A2.06.28 A2.07.26 A2.07.27 A2.07.28 A2.06.26 A2.06.30 A2.06.29 A2.05.29 A2.06.25 A2.06.27 A2.05.27
+A2.06.29 A2.06.31 A2.06.28 A2.06.30 A2.05.30 A2.05.29
+A2.06.30 A2.07.27 A2.07.28 A2.06.31 A2.06.28 A2.06.29
+A2.06.31 A2.07.28 A2.06.30 A2.06.29 A2.05.30 A2.05.29
+A2.07.00 A2.07.06 A2.07.02 A2.07.05
+A2.07.01 A2.08.06 A2.08.00 A2.07.06 A2.07.02
+A2.07.02 A2.07.01 A2.07.06 A2.07.00 A2.07.05
+A2.07.03 A2.07.04 A2.07.08 A2.07.07 A2.06.04
+A2.07.04 A2.07.05 A2.07.09 A2.07.08 A2.07.03 A2.07.07
+A2.07.05 A2.07.06 A2.07.10 A2.07.02 A2.07.00 A2.07.09 A2.07.04 A2.07.08
+A2.07.06 A2.08.06 A2.08.10 A2.08.00 A2.07.01 A2.07.10 A2.07.02 A2.07.00 A2.07.05 A2.07.09
+A2.07.07 A2.07.04 A2.07.08 A2.07.11 A2.07.03 A2.06.10 A2.06.04 A2.06.07
+A2.07.08 A2.07.05 A2.07.09 A2.07.12 A2.07.04 A2.07.11 A2.07.03 A2.07.07 A2.06.10
+A2.07.09 A2.07.06 A2.07.10 A2.07.13 A2.07.05 A2.07.12 A2.07.04 A2.07.08 A2.07.11
+A2.07.10 A2.08.06 A2.08.10 A2.08.13 A2.07.06 A2.07.13 A2.07.05 A2.07.09 A2.07.12
+A2.07.11 A2.07.09 A2.07.12 A2.07.15 A2.07.08 A2.07.14 A2.07.07 A2.06.10 A2.06.13
+A2.07.12 A2.07.10 A2.07.13 A2.07.16 A2.07.09 A2.07.15 A2.07.08 A2.07.11 A2.07.14
+A2.07.13 A2.08.10 A2.08.13 A2.08.16 A2.07.10 A2.07.16 A2.07.09 A2.07.12 A2.07.15
+A2.07.14 A2.07.12 A2.07.15 A2.07.18 A2.07.11 A2.07.17 A2.06.10 A2.06.13 A2.06.16
+A2.07.15 A2.07.13 A2.07.16 A2.07.19 A2.07.12 A2.07.18 A2.07.11 A2.07.14 A2.07.17
+A2.07.16 A2.08.13 A2.08.16 A2.08.19 A2.07.13 A2.07.19 A2.07.12 A2.07.15 A2.07.18
+A2.07.17 A2.07.15 A2.07.18 A2.07.20 A2.07.14 A2.06.20 A2.06.13 A2.06.16 A2.06.18
+A2.07.18 A2.07.16 A2.07.19 A2.07.21 A2.07.15 A2.07.20 A2.07.14 A2.07.17 A2.06.20
+A2.07.19 A2.08.16 A2.08.19 A2.08.21 A2.07.16 A2.07.21 A2.07.15 A2.07.18 A2.07.20
+A2.07.20 A2.07.19 A2.07.21 A2.07.23 A2.07.18 A2.07.22 A2.07.17 A2.06.20 A2.06.22
+A2.07.21 A2.08.19 A2.08.21 A2.08.23 A2.07.19 A2.07.23 A2.07.18 A2.07.20 A2.07.22
+A2.07.22 A2.07.21 A2.07.23 A2.07.25 A2.07.20 A2.07.24 A2.06.20 A2.06.22 A2.06.24
+A2.07.23 A2.08.21 A2.08.23 A2.08.25 A2.07.21 A2.07.25 A2.07.20 A2.07.22 A2.07.24
+A2.07.24 A2.07.23 A2.07.25 A2.07.26 A2.07.22 A2.06.26 A2.06.22 A2.06.24 A2.06.25
+A2.07.25 A2.08.23 A2.08.25 A2.08.26 A2.07.23 A2.07.26 A2.07.22 A2.07.24 A2.06.26
+A2.07.26 A2.08.25 A2.08.26 A2.08.27 A2.07.25 A2.07.27 A2.07.24 A2.06.26 A2.06.28
+A2.07.27 A2.08.26 A2.08.27 A2.08.29 A2.07.26 A2.07.29 A2.07.28 A2.06.26 A2.06.28 A2.06.30
+A2.07.28 A2.07.27 A2.07.29 A2.06.31 A2.06.28 A2.06.30
+A2.07.29 A2.08.27 A2.08.29 A2.07.27 A2.07.28
+A2.08.00 A2.08.01 A2.08.06 A2.07.01 A2.07.06
+A2.08.01 A2.08.05 A2.08.02 A2.08.06 A2.08.00
+A2.08.02 A2.08.05 A2.08.01 A2.08.06
+A2.08.03 A2.09.04 A2.08.07 A2.08.04 A2.08.08
+A2.08.04 A2.08.03 A2.08.07 A2.08.08 A2.08.05 A2.08.09
+A2.08.05 A2.08.04 A2.08.08 A2.08.09 A2.08.02 A2.08.01 A2.08.06 A2.08.10
+A2.08.06 A2.08.05 A2.08.09 A2.08.02 A2.08.01 A2.08.10 A2.08.00 A2.07.01 A2.07.06 A2.07.10
+A2.08.07 A2.09.04 A2.09.07 A2.08.03 A2.09.10 A2.08.04 A2.08.08 A2.08.11
+A2.08.08 A2.08.03 A2.08.07 A2.09.10 A2.08.04 A2.08.11 A2.08.05 A2.08.09 A2.08.12
+A2.08.09 A2.08.04 A2.08.08 A2.08.11 A2.08.05 A2.08.12 A2.08.06 A2.08.10 A2.08.13
+A2.08.10 A2.08.05 A2.08.09 A2.08.12 A2.08.06 A2.08.13 A2.07.06 A2.07.10 A2.07.13
+A2.08.11 A2.08.07 A2.09.10 A2.09.13 A2.08.08 A2.08.14 A2.08.09 A2.08.12 A2.08.15
+A2.08.12 A2.08.08 A2.08.11 A2.08.14 A2.08.09 A2.08.15 A2.08.10 A2.08.13 A2.08.16
+A2.08.13 A2.08.09 A2.08.12 A2.08.15 A2.08.10 A2.08.16 A2.07.10 A2.07.13 A2.07.16
+A2.08.14 A2.09.10 A2.09.13 A2.09.16 A2.08.11 A2.08.17 A2.08.12 A2.08.15 A2.08.18
+A2.08.15 A2.08.11 A2.08.14 A2.08.17 A2.08.12 A2.08.18 A2.08.13 A2.08.16 A2.08.19
+A2.08.16 A2.08.12 A2.08.15 A2.08.18 A2.08.13 A2.08.19 A2.07.13 A2.07.16 A2.07.19
+A2.08.17 A2.09.13 A2.09.16 A2.09.18 A2.08.14 A2.09.20 A2.08.15 A2.08.18 A2.08.20
+A2.08.18 A2.08.14 A2.08.17 A2.09.20 A2.08.15 A2.08.20 A2.08.16 A2.08.19 A2.08.21
+A2.08.19 A2.08.15 A2.08.18 A2.08.20 A2.08.16 A2.08.21 A2.07.16 A2.07.19 A2.07.21
+A2.08.20 A2.08.17 A2.09.20 A2.09.22 A2.08.18 A2.08.22 A2.08.19 A2.08.21 A2.08.23
+A2.08.21 A2.08.18 A2.08.20 A2.08.22 A2.08.19 A2.08.23 A2.07.19 A2.07.21 A2.07.23
+A2.08.22 A2.09.20 A2.09.22 A2.09.24 A2.08.20 A2.08.24 A2.08.21 A2.08.23 A2.08.25
+A2.08.23 A2.08.20 A2.08.22 A2.08.24 A2.08.21 A2.08.25 A2.07.21 A2.07.23 A2.07.25
+A2.08.24 A2.09.22 A2.09.24 A2.09.25 A2.08.22 A2.09.26 A2.08.23 A2.08.25 A2.08.26
+A2.08.25 A2.08.22 A2.08.24 A2.09.26 A2.08.23 A2.08.26 A2.07.23 A2.07.25 A2.07.26
+A2.08.26 A2.08.24 A2.09.26 A2.09.28 A2.08.25 A2.08.27 A2.07.25 A2.07.26 A2.07.27
+A2.08.27 A2.09.26 A2.09.28 A2.09.30 A2.08.26 A2.08.28 A2.08.29 A2.07.26 A2.07.27 A2.07.29
+A2.08.28 A2.09.28 A2.09.30 A2.09.31 A2.08.27 A2.08.29
+A2.08.29 A2.08.27 A2.08.28 A2.07.27 A2.07.29
+A2.09.00 A2.10.00 A2.10.06 A2.09.05
+A2.09.01 A2.09.05 A2.09.03
+A2.09.02 A2.09.06 A2.09.04 A2.09.07
+A2.09.03 A2.09.05 A2.09.01 A2.09.06 A2.09.09
+A2.09.04 A2.09.06 A2.09.02 A2.09.07 A2.08.03 A2.08.07 A2.09.10
+A2.09.05 A2.10.06 A2.09.00 A2.09.08 A2.09.01 A2.09.03 A2.09.06 A2.09.09 A2.09.12
+A2.09.06 A2.09.05 A2.09.03 A2.09.09 A2.09.02 A2.09.04 A2.09.07 A2.09.11
+A2.09.07 A2.09.06 A2.09.09 A2.09.02 A2.09.04 A2.09.11 A2.08.07 A2.09.10 A2.09.13
+A2.09.08 A2.10.06 A2.10.09 A2.09.05 A2.10.11 A2.09.09 A2.09.12 A2.09.14
+A2.09.09 A2.09.05 A2.09.08 A2.09.03 A2.09.06 A2.09.12 A2.09.07 A2.09.11 A2.09.15
+A2.09.10 A2.09.04 A2.09.07 A2.09.11 A2.08.07 A2.09.13 A2.08.08 A2.08.11 A2.08.14
+A2.09.11 A2.09.06 A2.09.09 A2.09.12 A2.09.07 A2.09.15 A2.09.10 A2.09.13 A2.09.16
+A2.09.12 A2.09.05 A2.09.08 A2.10.11 A2.09.09 A2.09.14 A2.09.11 A2.09.15 A2.09.17
+A2.09.13 A2.09.07 A2.09.11 A2.09.15 A2.09.10 A2.09.16 A2.08.11 A2.08.14 A2.08.17
+A2.09.14 A2.09.08 A2.10.11 A2.10.14 A2.09.12 A2.10.16 A2.09.15 A2.09.17 A2.09.19
+A2.09.15 A2.09.09 A2.09.12 A2.09.14 A2.09.11 A2.09.17 A2.09.13 A2.09.16 A2.09.18
+A2.09.16 A2.09.11 A2.09.15 A2.09.17 A2.09.13 A2.09.18 A2.08.14 A2.08.17 A2.09.20
+A2.09.17 A2.09.12 A2.09.14 A2.10.16 A2.09.15 A2.09.19 A2.09.16 A2.09.18 A2.09.21
+A2.09.18 A2.09.15 A2.09.17 A2.09.19 A2.09.16 A2.09.21 A2.08.17 A2.09.20 A2.09.22
+A2.09.19 A2.09.14 A2.10.16 A2.10.18 A2.09.17 A2.10.20 A2.09.18 A2.09.21 A2.09.23
+A2.09.20 A2.09.16 A2.09.18 A2.09.21 A2.08.17 A2.09.22 A2.08.18 A2.08.20 A2.08.22
+A2.09.21 A2.09.17 A2.09.19 A2.10.20 A2.09.18 A2.09.23 A2.09.20 A2.09.22 A2.09.24
+A2.09.22 A2.09.18 A2.09.21 A2.09.23 A2.09.20 A2.09.24 A2.08.20 A2.08.22 A2.08.24
+A2.09.23 A2.09.19 A2.10.20 A2.10.22 A2.09.21 A2.10.24 A2.09.22 A2.09.24 A2.09.25
+A2.09.24 A2.09.21 A2.09.23 A2.10.24 A2.09.22 A2.09.25 A2.08.22 A2.08.24 A2.09.26
+A2.09.25 A2.09.23 A2.10.24 A2.10.25 A2.09.24 A2.09.27 A2.08.24 A2.09.26 A2.09.28
+A2.09.26 A2.09.24 A2.09.25 A2.09.27 A2.08.24 A2.09.28 A2.08.25 A2.08.26 A2.08.27
+A2.09.27 A2.10.24 A2.10.25 A2.10.26 A2.09.25 A2.10.27 A2.09.26 A2.09.28 A2.09.29
+A2.09.28 A2.09.25 A2.09.27 A2.10.27 A2.09.26 A2.09.29 A2.09.30 A2.08.26 A2.08.27 A2.08.28
+A2.09.29 A2.09.27 A2.10.27 A2.09.28 A2.10.29 A2.09.30 A2.09.31
+A2.09.30 A2.09.28 A2.09.29 A2.10.29 A2.09.31 A2.08.27 A2.08.28
+A2.09.31 A2.09.29 A2.10.29 A2.10.30 A2.09.30 A2.08.28
+A2.10.00 A2.10.03 A2.10.06 A2.09.00
+A2.10.01 A2.10.02 A2.10.07 A2.10.08
+A2.10.02 A2.11.01 A2.10.04 A2.10.01 A2.10.07 A2.10.08
+A2.10.03 A2.10.05 A2.10.00 A2.10.06 A2.10.09
+A2.10.04 A2.11.01 A2.10.02 A2.10.08 A2.11.06
+A2.10.05 A2.10.07 A2.10.03 A2.10.09 A2.10.10
+A2.10.06 A2.10.03 A2.10.00 A2.10.09 A2.09.00 A2.09.05 A2.09.08 A2.10.11
+A2.10.07 A2.10.02 A2.10.01 A2.10.08 A2.10.05 A2.10.09 A2.10.10 A2.10.12
+A2.10.08 A2.11.01 A2.10.02 A2.10.04 A2.10.01 A2.10.07 A2.11.06 A2.10.10 A2.10.12 A2.10.13
+A2.10.09 A2.10.07 A2.10.05 A2.10.03 A2.10.06 A2.10.10 A2.09.08 A2.10.11 A2.10.14
+A2.10.10 A2.10.07 A2.10.08 A2.10.05 A2.10.09 A2.10.12 A2.10.11 A2.10.14 A2.10.15
+A2.10.11 A2.10.06 A2.10.09 A2.10.10 A2.09.08 A2.10.14 A2.09.12 A2.09.14 A2.10.16
+A2.10.12 A2.10.07 A2.10.08 A2.11.06 A2.10.10 A2.10.13 A2.10.14 A2.10.15 A2.10.17
+A2.10.13 A2.10.08 A2.11.06 A2.11.07 A2.10.12 A2.11.11 A2.10.15 A2.10.17 A2.11.15
+A2.10.14 A2.10.09 A2.10.10 A2.10.12 A2.10.11 A2.10.15 A2.09.14 A2.10.16 A2.10.18
+A2.10.15 A2.10.10 A2.10.12 A2.10.13 A2.10.14 A2.10.17 A2.10.16 A2.10.18 A2.10.19
+A2.10.16 A2.10.11 A2.10.14 A2.10.15 A2.09.14 A2.10.18 A2.09.17 A2.09.19 A2.10.20
+A2.10.17 A2.10.12 A2.10.13 A2.11.11 A2.10.15 A2.11.15 A2.10.18 A2.10.19 A2.10.21
+A2.10.18 A2.10.14 A2.10.15 A2.10.17 A2.10.16 A2.10.19 A2.09.19 A2.10.20 A2.10.22
+A2.10.19 A2.10.15 A2.10.17 A2.11.15 A2.10.18 A2.10.21 A2.10.20 A2.10.22 A2.10.23
+A2.10.20 A2.10.16 A2.10.18 A2.10.19 A2.09.19 A2.10.22 A2.09.21 A2.09.23 A2.10.24
+A2.10.21 A2.10.17 A2.11.15 A2.11.16 A2.10.19 A2.11.19 A2.10.22 A2.10.23 A2.11.22
+A2.10.22 A2.10.18 A2.10.19 A2.10.21 A2.10.20 A2.10.23 A2.09.23 A2.10.24 A2.10.25
+A2.10.23 A2.10.19 A2.10.21 A2.11.19 A2.10.22 A2.11.22 A2.10.24 A2.10.25 A2.10.26
+A2.10.24 A2.10.20 A2.10.22 A2.10.23 A2.09.23 A2.10.25 A2.09.24 A2.09.25 A2.09.27
+A2.10.25 A2.10.22 A2.10.23 A2.11.22 A2.10.24 A2.10.26 A2.09.25 A2.09.27 A2.10.27
+A2.10.26 A2.10.23 A2.11.22 A2.11.23 A2.10.25 A2.11.25 A2.09.27 A2.10.27 A2.10.28
+A2.10.27 A2.10.25 A2.10.26 A2.11.25 A2.09.27 A2.10.28 A2.09.28 A2.09.29 A2.10.29 A2.10.30
+A2.10.28 A2.10.26 A2.11.25 A2.11.26 A2.10.27 A2.11.27 A2.11.29 A2.10.29 A2.10.30 A2.10.31
+A2.10.29 A2.10.27 A2.10.28 A2.09.29 A2.10.30 A2.09.30 A2.09.31
+A2.10.30 A2.10.27 A2.10.28 A2.10.29 A2.10.31 A2.09.31
+A2.10.31 A2.10.28 A2.11.29 A2.11.30 A2.10.30
+A2.11.00 A2.12.00 A2.11.03 A2.11.04 A2.11.05 A2.12.05
+A2.11.01 A2.11.02 A2.10.02 A2.10.04 A2.10.08 A2.11.06 A2.11.07
+A2.11.02 A2.11.01 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A2.11.03 A2.11.00 A2.11.02 A2.11.04 A2.11.07 A2.11.08 A2.11.09
+A2.11.04 A2.11.00 A2.11.03 A2.11.05 A2.11.08 A2.11.09 A2.11.10
+A2.11.05 A2.11.00 A2.12.00 A2.11.04 A2.12.05 A2.11.09 A2.11.10 A2.12.10
+A2.11.06 A2.11.01 A2.11.02 A2.10.04 A2.10.08 A2.11.07 A2.10.12 A2.10.13 A2.11.11
+A2.11.07 A2.11.01 A2.11.02 A2.11.03 A2.11.06 A2.11.08 A2.10.13 A2.11.11 A2.11.12
+A2.11.08 A2.11.02 A2.11.03 A2.11.04 A2.11.07 A2.11.09 A2.11.11 A2.11.12 A2.11.13
+A2.11.09 A2.11.03 A2.11.04 A2.11.05 A2.11.08 A2.11.10 A2.11.12 A2.11.13 A2.11.14
+A2.11.10 A2.11.04 A2.11.05 A2.12.05 A2.11.09 A2.12.10 A2.11.13 A2.11.14 A2.12.14
+A2.11.11 A2.11.06 A2.11.07 A2.11.08 A2.10.13 A2.11.12 A2.10.17 A2.11.15 A2.11.16
+A2.11.12 A2.11.07 A2.11.08 A2.11.09 A2.11.11 A2.11.13 A2.11.15 A2.11.16 A2.11.17
+A2.11.13 A2.11.08 A2.11.09 A2.11.10 A2.11.12 A2.11.14 A2.11.16 A2.11.17 A2.11.18
+A2.11.14 A2.11.09 A2.11.10 A2.12.10 A2.11.13 A2.12.14 A2.11.17 A2.11.18 A2.12.18
+A2.11.15 A2.10.13 A2.11.11 A2.11.12 A2.10.17 A2.11.16 A2.10.19 A2.10.21 A2.11.19
+A2.11.16 A2.11.11 A2.11.12 A2.11.13 A2.11.15 A2.11.17 A2.10.21 A2.11.19 A2.11.20
+A2.11.17 A2.11.12 A2.11.13 A2.11.14 A2.11.16 A2.11.18 A2.11.19 A2.11.20 A2.11.21
+A2.11.18 A2.11.13 A2.11.14 A2.12.14 A2.11.17 A2.12.18 A2.11.20 A2.11.21 A2.12.21
+A2.11.19 A2.11.15 A2.11.16 A2.11.17 A2.10.21 A2.11.20 A2.10.23 A2.11.22 A2.11.23
+A2.11.20 A2.11.16 A2.11.17 A2.11.18 A2.11.19 A2.11.21 A2.11.22 A2.11.23 A2.11.24
+A2.11.21 A2.11.17 A2.11.18 A2.12.18 A2.11.20 A2.12.21 A2.11.23 A2.11.24 A2.12.24
+A2.11.22 A2.10.21 A2.11.19 A2.11.20 A2.10.23 A2.11.23 A2.10.25 A2.10.26 A2.11.25
+A2.11.23 A2.11.19 A2.11.20 A2.11.21 A2.11.22 A2.11.24 A2.10.26 A2.11.25 A2.11.26
+A2.11.24 A2.11.20 A2.11.21 A2.12.21 A2.11.23 A2.12.24 A2.11.25 A2.11.26 A2.12.26
+A2.11.25 A2.11.22 A2.11.23 A2.11.24 A2.10.26 A2.11.26 A2.10.27 A2.10.28 A2.11.27
+A2.11.26 A2.11.23 A2.11.24 A2.12.24 A2.11.25 A2.12.26 A2.10.28 A2.11.27 A2.11.28 A2.12.28
+A2.11.27 A2.11.25 A2.11.26 A2.10.28 A2.11.28 A2.11.29 A2.11.30
+A2.11.28 A2.11.26 A2.12.26 A2.11.27 A2.12.28 A2.11.29 A2.11.30 A2.12.30
+A2.11.29 A2.10.28 A2.11.27 A2.11.28 A2.11.30 A2.10.31
+A2.11.30 A2.11.27 A2.11.28 A2.12.28 A2.11.29 A2.12.30 A2.10.31
+A2.12.00 A2.11.00 A2.11.05 A2.12.05 A2.12.04 A2.12.03
+A2.12.01 A2.12.02 A2.13.04 A2.13.02 A2.12.07 A2.12.06 A2.13.08
+A2.12.02 A2.12.03 A2.12.01 A2.12.08 A2.12.07 A2.12.06
+A2.12.03 A2.12.00 A2.12.04 A2.12.02 A2.12.09 A2.12.08 A2.12.07
+A2.12.04 A2.12.00 A2.12.05 A2.12.03 A2.12.10 A2.12.09 A2.12.08
+A2.12.05 A2.11.00 A2.12.00 A2.11.05 A2.12.04 A2.11.10 A2.12.10 A2.12.09
+A2.12.06 A2.12.02 A2.12.01 A2.13.04 A2.12.07 A2.13.08 A2.12.11 A2.13.13 A2.13.12
+A2.12.07 A2.12.03 A2.12.02 A2.12.01 A2.12.08 A2.12.06 A2.12.12 A2.12.11 A2.13.13
+A2.12.08 A2.12.04 A2.12.03 A2.12.02 A2.12.09 A2.12.07 A2.12.13 A2.12.12 A2.12.11
+A2.12.09 A2.12.05 A2.12.04 A2.12.03 A2.12.10 A2.12.08 A2.12.14 A2.12.13 A2.12.12
+A2.12.10 A2.11.05 A2.12.05 A2.12.04 A2.11.10 A2.12.09 A2.11.14 A2.12.14 A2.12.13
+A2.12.11 A2.12.08 A2.12.07 A2.12.06 A2.12.12 A2.13.13 A2.12.16 A2.12.15 A2.13.17
+A2.12.12 A2.12.09 A2.12.08 A2.12.07 A2.12.13 A2.12.11 A2.12.17 A2.12.16 A2.12.15
+A2.12.13 A2.12.10 A2.12.09 A2.12.08 A2.12.14 A2.12.12 A2.12.18 A2.12.17 A2.12.16
+A2.12.14 A2.11.10 A2.12.10 A2.12.09 A2.11.14 A2.12.13 A2.11.18 A2.12.18 A2.12.17
+A2.12.15 A2.12.12 A2.12.11 A2.13.13 A2.12.16 A2.13.17 A2.12.19 A2.13.21 A2.13.19
+A2.12.16 A2.12.13 A2.12.12 A2.12.11 A2.12.17 A2.12.15 A2.12.20 A2.12.19 A2.13.21
+A2.12.17 A2.12.14 A2.12.13 A2.12.12 A2.12.18 A2.12.16 A2.12.21 A2.12.20 A2.12.19
+A2.12.18 A2.11.14 A2.12.14 A2.12.13 A2.11.18 A2.12.17 A2.11.21 A2.12.21 A2.12.20
+A2.12.19 A2.12.17 A2.12.16 A2.12.15 A2.12.20 A2.13.21 A2.12.23 A2.12.22 A2.13.23
+A2.12.20 A2.12.18 A2.12.17 A2.12.16 A2.12.21 A2.12.19 A2.12.24 A2.12.23 A2.12.22
+A2.12.21 A2.11.18 A2.12.18 A2.12.17 A2.11.21 A2.12.20 A2.11.24 A2.12.24 A2.12.23
+A2.12.22 A2.12.20 A2.12.19 A2.13.21 A2.12.23 A2.13.23 A2.12.25 A2.13.26 A2.13.25
+A2.12.23 A2.12.21 A2.12.20 A2.12.19 A2.12.24 A2.12.22 A2.12.26 A2.12.25 A2.13.26
+A2.12.24 A2.11.21 A2.12.21 A2.12.20 A2.11.24 A2.12.23 A2.11.26 A2.12.26 A2.12.25
+A2.12.25 A2.12.24 A2.12.23 A2.12.22 A2.12.26 A2.13.26 A2.12.27 A2.13.28 A2.13.27
+A2.12.26 A2.11.24 A2.12.24 A2.12.23 A2.11.26 A2.12.25 A2.11.28 A2.12.28 A2.12.27 A2.13.28
+A2.12.27 A2.12.26 A2.12.25 A2.12.28 A2.13.28 A2.12.30 A2.12.29
+A2.12.28 A2.11.26 A2.12.26 A2.11.28 A2.12.27 A2.11.30 A2.12.30 A2.12.29
+A2.12.29 A2.12.28 A2.12.27 A2.13.28 A2.12.30 A2.13.31
+A2.12.30 A2.11.28 A2.12.28 A2.12.27 A2.11.30 A2.12.29
+A2.13.00 A2.13.02 A2.13.08 A2.13.07
+A2.13.01 A2.13.06 A2.14.00 A2.14.03
+A2.13.02 A2.12.01 A2.13.04 A2.13.00 A2.13.08 A2.13.07
+A2.13.03 A2.13.05 A2.13.09 A2.13.06
+A2.13.04 A2.12.01 A2.13.02 A2.12.06 A2.13.08
+A2.13.05 A2.13.07 A2.13.03 A2.13.10 A2.13.09
+A2.13.06 A2.13.03 A2.13.09 A2.13.01 A2.14.03 A2.13.11 A2.14.08
+A2.13.07 A2.13.02 A2.13.00 A2.13.08 A2.13.05 A2.13.12 A2.13.10 A2.13.09
+A2.13.08 A2.12.01 A2.13.04 A2.13.02 A2.13.00 A2.12.06 A2.13.07 A2.13.13 A2.13.12 A2.13.10
+A2.13.09 A2.13.07 A2.13.05 A2.13.03 A2.13.10 A2.13.06 A2.13.14 A2.13.11 A2.14.08
+A2.13.10 A2.13.08 A2.13.07 A2.13.05 A2.13.12 A2.13.09 A2.13.15 A2.13.14 A2.13.11
+A2.13.11 A2.13.10 A2.13.09 A2.13.06 A2.13.14 A2.14.08 A2.13.16 A2.14.14 A2.14.12
+A2.13.12 A2.12.06 A2.13.08 A2.13.07 A2.13.13 A2.13.10 A2.13.17 A2.13.15 A2.13.14
+A2.13.13 A2.12.07 A2.12.06 A2.13.08 A2.12.11 A2.13.12 A2.12.15 A2.13.17 A2.13.15
+A2.13.14 A2.13.12 A2.13.10 A2.13.09 A2.13.15 A2.13.11 A2.13.18 A2.13.16 A2.14.14
+A2.13.15 A2.13.13 A2.13.12 A2.13.10 A2.13.17 A2.13.14 A2.13.19 A2.13.18 A2.13.16
+A2.13.16 A2.13.15 A2.13.14 A2.13.11 A2.13.18 A2.14.14 A2.13.20 A2.14.19 A2.14.17
+A2.13.17 A2.12.11 A2.13.13 A2.13.12 A2.12.15 A2.13.15 A2.13.21 A2.13.19 A2.13.18
+A2.13.18 A2.13.17 A2.13.15 A2.13.14 A2.13.19 A2.13.16 A2.13.22 A2.13.20 A2.14.19
+A2.13.19 A2.12.15 A2.13.17 A2.13.15 A2.13.21 A2.13.18 A2.13.23 A2.13.22 A2.13.20
+A2.13.20 A2.13.19 A2.13.18 A2.13.16 A2.13.22 A2.14.19 A2.13.24 A2.14.23 A2.14.21
+A2.13.21 A2.12.16 A2.12.15 A2.13.17 A2.12.19 A2.13.19 A2.12.22 A2.13.23 A2.13.22
+A2.13.22 A2.13.21 A2.13.19 A2.13.18 A2.13.23 A2.13.20 A2.13.25 A2.13.24 A2.14.23
+A2.13.23 A2.12.19 A2.13.21 A2.13.19 A2.12.22 A2.13.22 A2.13.26 A2.13.25 A2.13.24
+A2.13.24 A2.13.23 A2.13.22 A2.13.20 A2.13.25 A2.14.23 A2.14.27 A2.14.25 A2.14.24
+A2.13.25 A2.12.22 A2.13.23 A2.13.22 A2.13.26 A2.13.24 A2.13.27 A2.14.27 A2.14.25
+A2.13.26 A2.12.23 A2.12.22 A2.13.23 A2.12.25 A2.13.25 A2.13.28 A2.13.27 A2.14.27
+A2.13.27 A2.12.25 A2.13.26 A2.13.25 A2.13.28 A2.14.27 A2.13.30 A2.13.29 A2.14.28
+A2.13.28 A2.12.26 A2.12.25 A2.13.26 A2.12.27 A2.13.27 A2.12.29 A2.13.31 A2.13.30
+A2.13.29 A2.13.27 A2.14.27 A2.13.30 A2.14.28 A2.14.31 A2.14.29
+A2.13.30 A2.13.28 A2.13.27 A2.13.31 A2.13.29 A2.14.31 A2.14.29
+A2.13.31 A2.13.28 A2.12.29 A2.13.30
+A2.14.00 A2.13.01 A2.14.03 A2.14.05
+A2.14.01 A2.14.05 A2.14.06
+A2.14.02 A2.14.06 A2.14.07 A2.14.04
+A2.14.03 A2.13.06 A2.13.01 A2.14.00 A2.14.08 A2.14.05
+A2.14.04 A2.14.06 A2.14.02 A2.14.07 A2.15.03 A2.14.10 A2.15.07
+A2.14.05 A2.14.00 A2.14.03 A2.14.08 A2.14.01 A2.14.12 A2.14.09 A2.14.06
+A2.14.06 A2.14.05 A2.14.01 A2.14.09 A2.14.02 A2.14.11 A2.14.07 A2.14.04
+A2.14.07 A2.14.09 A2.14.06 A2.14.02 A2.14.11 A2.14.04 A2.14.13 A2.14.10 A2.15.07
+A2.14.08 A2.13.09 A2.13.06 A2.14.03 A2.13.11 A2.14.05 A2.14.14 A2.14.12 A2.14.09
+A2.14.09 A2.14.08 A2.14.05 A2.14.12 A2.14.06 A2.14.15 A2.14.11 A2.14.07
+A2.14.10 A2.14.11 A2.14.07 A2.14.04 A2.14.13 A2.15.07 A2.15.14 A2.15.11 A2.15.08
+A2.14.11 A2.14.12 A2.14.09 A2.14.06 A2.14.15 A2.14.07 A2.14.16 A2.14.13 A2.14.10
+A2.14.12 A2.13.11 A2.14.08 A2.14.05 A2.14.14 A2.14.09 A2.14.17 A2.14.15 A2.14.11
+A2.14.13 A2.14.15 A2.14.11 A2.14.07 A2.14.16 A2.14.10 A2.15.17 A2.15.14 A2.15.11
+A2.14.14 A2.13.14 A2.13.11 A2.14.08 A2.13.16 A2.14.12 A2.14.19 A2.14.17 A2.14.15
+A2.14.15 A2.14.14 A2.14.12 A2.14.09 A2.14.17 A2.14.11 A2.14.18 A2.14.16 A2.14.13
+A2.14.16 A2.14.17 A2.14.15 A2.14.11 A2.14.18 A2.14.13 A2.14.20 A2.15.17 A2.15.14
+A2.14.17 A2.13.16 A2.14.14 A2.14.12 A2.14.19 A2.14.15 A2.14.21 A2.14.18 A2.14.16
+A2.14.18 A2.14.19 A2.14.17 A2.14.15 A2.14.21 A2.14.16 A2.14.22 A2.14.20 A2.15.17
+A2.14.19 A2.13.18 A2.13.16 A2.14.14 A2.13.20 A2.14.17 A2.14.23 A2.14.21 A2.14.18
+A2.14.20 A2.14.21 A2.14.18 A2.14.16 A2.14.22 A2.15.17 A2.15.22 A2.15.20 A2.15.18
+A2.14.21 A2.13.20 A2.14.19 A2.14.17 A2.14.23 A2.14.18 A2.14.24 A2.14.22 A2.14.20
+A2.14.22 A2.14.23 A2.14.21 A2.14.18 A2.14.24 A2.14.20 A2.15.24 A2.15.22 A2.15.20
+A2.14.23 A2.13.22 A2.13.20 A2.14.19 A2.13.24 A2.14.21 A2.14.25 A2.14.24 A2.14.22
+A2.14.24 A2.13.24 A2.14.23 A2.14.21 A2.14.25 A2.14.22 A2.14.26 A2.15.24 A2.15.22
+A2.14.25 A2.13.25 A2.13.24 A2.14.23 A2.14.27 A2.14.24 A2.14.28 A2.14.26 A2.15.24
+A2.14.26 A2.14.27 A2.14.25 A2.14.24 A2.14.28 A2.15.24 A2.15.27 A2.15.26 A2.15.25
+A2.14.27 A2.13.26 A2.13.25 A2.13.24 A2.13.27 A2.14.25 A2.13.29 A2.14.28 A2.14.26
+A2.14.28 A2.13.27 A2.14.27 A2.14.25 A2.13.29 A2.14.26 A2.14.29 A2.14.30 A2.15.28 A2.15.27 A2.15.26
+A2.14.29 A2.13.30 A2.13.29 A2.14.28 A2.14.31 A2.14.30
+A2.14.30 A2.14.28 A2.14.31 A2.14.29 A2.15.28 A2.15.27
+A2.14.31 A2.13.30 A2.13.29 A2.14.29 A2.14.30 A2.15.28
+A2.15.00 A2.15.05 A2.15.06 A2.15.02
+A2.15.01 A2.15.06 A2.15.02 A2.00.06 A2.00.02
+A2.15.02 A2.15.05 A2.15.00 A2.15.06 A2.15.01
+A2.15.03 A2.14.04 A2.15.07 A2.15.08 A2.15.04
+A2.15.04 A2.15.03 A2.15.07 A2.15.08 A2.15.09 A2.15.05
+A2.15.05 A2.15.08 A2.15.04 A2.15.09 A2.15.00 A2.15.10 A2.15.06 A2.15.02
+A2.15.06 A2.15.09 A2.15.05 A2.15.00 A2.15.10 A2.15.02 A2.15.01 A2.00.10 A2.00.06 A2.00.02
+A2.15.07 A2.14.07 A2.14.04 A2.15.03 A2.14.10 A2.15.11 A2.15.08 A2.15.04
+A2.15.08 A2.15.03 A2.14.10 A2.15.07 A2.15.11 A2.15.04 A2.15.12 A2.15.09 A2.15.05
+A2.15.09 A2.15.11 A2.15.08 A2.15.04 A2.15.12 A2.15.05 A2.15.13 A2.15.10 A2.15.06
+A2.15.10 A2.15.12 A2.15.09 A2.15.05 A2.15.13 A2.15.06 A2.00.13 A2.00.10 A2.00.06
+A2.15.11 A2.14.13 A2.14.10 A2.15.07 A2.15.14 A2.15.08 A2.15.15 A2.15.12 A2.15.09
+A2.15.12 A2.15.14 A2.15.11 A2.15.08 A2.15.15 A2.15.09 A2.15.16 A2.15.13 A2.15.10
+A2.15.13 A2.15.15 A2.15.12 A2.15.09 A2.15.16 A2.15.10 A2.00.16 A2.00.13 A2.00.10
+A2.15.14 A2.14.16 A2.14.13 A2.14.10 A2.15.17 A2.15.11 A2.15.18 A2.15.15 A2.15.12
+A2.15.15 A2.15.17 A2.15.14 A2.15.11 A2.15.18 A2.15.12 A2.15.19 A2.15.16 A2.15.13
+A2.15.16 A2.15.18 A2.15.15 A2.15.12 A2.15.19 A2.15.13 A2.00.19 A2.00.16 A2.00.13
+A2.15.17 A2.14.18 A2.14.16 A2.14.13 A2.14.20 A2.15.14 A2.15.20 A2.15.18 A2.15.15
+A2.15.18 A2.14.20 A2.15.17 A2.15.14 A2.15.20 A2.15.15 A2.15.21 A2.15.19 A2.15.16
+A2.15.19 A2.15.20 A2.15.18 A2.15.15 A2.15.21 A2.15.16 A2.00.21 A2.00.19 A2.00.16
+A2.15.20 A2.14.22 A2.14.20 A2.15.17 A2.15.22 A2.15.18 A2.15.23 A2.15.21 A2.15.19
+A2.15.21 A2.15.22 A2.15.20 A2.15.18 A2.15.23 A2.15.19 A2.00.23 A2.00.21 A2.00.19
+A2.15.22 A2.14.24 A2.14.22 A2.14.20 A2.15.24 A2.15.20 A2.15.25 A2.15.23 A2.15.21
+A2.15.23 A2.15.24 A2.15.22 A2.15.20 A2.15.25 A2.15.21 A2.00.25 A2.00.23 A2.00.21
+A2.15.24 A2.14.25 A2.14.24 A2.14.22 A2.14.26 A2.15.22 A2.15.26 A2.15.25 A2.15.23
+A2.15.25 A2.14.26 A2.15.24 A2.15.22 A2.15.26 A2.15.23 A2.00.26 A2.00.25 A2.00.23
+A2.15.26 A2.14.28 A2.14.26 A2.15.24 A2.15.27 A2.15.25 A2.00.27 A2.00.26 A2.00.25
+A2.15.27 A2.14.28 A2.14.26 A2.14.30 A2.15.28 A2.15.26 A2.15.29 A2.00.29 A2.00.27 A2.00.26
+A2.15.28 A2.14.28 A2.14.31 A2.14.30 A2.15.27 A2.15.29
+A2.15.29 A2.15.28 A2.15.27 A2.00.29 A2.00.27
+A3.00.00 A3.15.03 A3.15.00 A3.00.03 A3.00.02
+A3.00.01 A3.00.05 A3.00.02 A3.00.04 A3.01.03 A3.01.01
+A3.00.02 A3.00.06 A3.00.03 A3.00.00 A3.00.05 A3.00.04 A3.00.01
+A3.00.03 A3.15.06 A3.15.03 A3.15.00 A3.00.06 A3.00.00 A3.00.05 A3.00.02
+A3.00.04 A3.00.08 A3.00.05 A3.00.02 A3.00.07 A3.00.01 A3.01.05 A3.01.03
+A3.00.05 A3.00.09 A3.00.06 A3.00.03 A3.00.08 A3.00.02 A3.00.07 A3.00.04 A3.00.01
+A3.00.06 A3.15.09 A3.15.06 A3.15.03 A3.00.09 A3.00.03 A3.00.08 A3.00.05 A3.00.02
+A3.00.07 A3.00.10 A3.00.08 A3.00.05 A3.01.08 A3.00.04 A3.01.07 A3.01.05 A3.01.03
+A3.00.08 A3.00.11 A3.00.09 A3.00.06 A3.00.10 A3.00.05 A3.01.08 A3.00.07 A3.00.04
+A3.00.09 A3.15.11 A3.15.09 A3.15.06 A3.00.11 A3.00.06 A3.00.10 A3.00.08 A3.00.05
+A3.00.10 A3.00.13 A3.00.11 A3.00.09 A3.00.12 A3.00.08 A3.01.10 A3.01.08 A3.00.07
+A3.00.11 A3.15.13 A3.15.11 A3.15.09 A3.00.13 A3.00.09 A3.00.12 A3.00.10 A3.00.08
+A3.00.12 A3.00.14 A3.00.13 A3.00.11 A3.01.12 A3.00.10 A3.01.11 A3.01.10 A3.01.08
+A3.00.13 A3.15.14 A3.15.13 A3.15.11 A3.00.14 A3.00.11 A3.01.12 A3.00.12 A3.00.10
+A3.00.14 A3.15.14 A3.15.13 A3.15.15 A3.00.15 A3.00.13 A3.01.14 A3.01.12 A3.00.12
+A3.00.15 A3.15.14 A3.15.15 A3.00.14 A3.01.14
+A3.01.00 A3.01.01 A3.01.04 A3.01.02 A3.02.00
+A3.01.01 A3.00.01 A3.01.05 A3.01.03 A3.01.04 A3.01.00
+A3.01.02 A3.01.06 A3.01.04 A3.01.00 A3.02.05 A3.02.03 A3.02.00
+A3.01.03 A3.00.07 A3.00.04 A3.00.01 A3.01.05 A3.01.01 A3.01.04
+A3.01.04 A3.01.07 A3.01.05 A3.01.03 A3.01.01 A3.01.06 A3.01.00 A3.02.05 A3.01.02
+A3.01.05 A3.01.08 A3.00.07 A3.00.04 A3.01.07 A3.01.03 A3.01.01 A3.01.06 A3.01.04
+A3.01.06 A3.01.09 A3.01.07 A3.01.05 A3.02.09 A3.01.04 A3.02.07 A3.02.05 A3.01.02
+A3.01.07 A3.01.10 A3.01.08 A3.00.07 A3.01.09 A3.01.05 A3.02.09 A3.01.06 A3.01.04
+A3.01.08 A3.00.12 A3.00.10 A3.00.08 A3.01.10 A3.00.07 A3.01.09 A3.01.07 A3.01.05
+A3.01.09 A3.01.11 A3.01.10 A3.01.08 A3.02.11 A3.01.07 A3.02.10 A3.02.09 A3.01.06
+A3.01.10 A3.01.12 A3.00.12 A3.00.10 A3.01.11 A3.01.08 A3.02.11 A3.01.09 A3.01.07
+A3.01.11 A3.01.12 A3.00.12 A3.01.13 A3.02.13 A3.01.10 A3.02.12 A3.02.11 A3.01.09
+A3.01.12 A3.00.14 A3.00.13 A3.01.14 A3.00.12 A3.01.13 A3.02.13 A3.01.11 A3.01.10
+A3.01.13 A3.01.14 A3.01.12 A3.01.15 A3.02.14 A3.02.13 A3.01.11
+A3.01.14 A3.00.15 A3.00.14 A3.01.12 A3.01.15 A3.01.13
+A3.01.15 A3.01.14 A3.01.13 A3.02.14
+A3.02.00 A3.01.00 A3.02.05 A3.01.02 A3.02.03 A3.02.01
+A3.02.01 A3.02.04 A3.02.03 A3.02.00 A3.02.02
+A3.02.02 A3.02.06 A3.02.04 A3.02.03 A3.03.05 A3.02.01 A3.03.02
+A3.02.03 A3.02.07 A3.02.05 A3.01.02 A3.02.04 A3.02.00 A3.02.02 A3.02.01
+A3.02.04 A3.02.08 A3.02.07 A3.02.05 A3.02.06 A3.02.03 A3.03.05 A3.02.02 A3.02.01
+A3.02.05 A3.02.09 A3.01.06 A3.01.04 A3.02.07 A3.01.02 A3.02.04 A3.02.03 A3.02.00
+A3.02.06 A3.03.10 A3.02.08 A3.02.07 A3.03.08 A3.02.04 A3.03.06 A3.03.05 A3.02.02
+A3.02.07 A3.02.10 A3.02.09 A3.01.06 A3.02.08 A3.02.05 A3.02.06 A3.02.04 A3.02.03
+A3.02.08 A3.03.12 A3.02.10 A3.02.09 A3.03.10 A3.02.07 A3.03.08 A3.02.06 A3.02.04
+A3.02.09 A3.02.11 A3.01.09 A3.01.07 A3.02.10 A3.01.06 A3.02.08 A3.02.07 A3.02.05
+A3.02.10 A3.02.12 A3.02.11 A3.01.09 A3.03.12 A3.02.09 A3.03.10 A3.02.08 A3.02.07
+A3.02.11 A3.02.13 A3.01.11 A3.01.10 A3.02.12 A3.01.09 A3.03.12 A3.02.10 A3.02.09
+A3.02.12 A3.03.15 A3.02.13 A3.01.11 A3.03.14 A3.02.11 A3.03.13 A3.03.12 A3.02.10
+A3.02.13 A3.01.12 A3.01.13 A3.02.14 A3.03.15 A3.01.11 A3.03.14 A3.02.12 A3.02.11
+A3.02.14 A3.01.15 A3.01.13 A3.03.15 A3.02.13
+A3.03.00 A3.03.04 A3.03.03 A3.03.01
+A3.03.01 A3.04.04 A3.03.04 A3.04.01 A3.03.00
+A3.03.02 A3.03.06 A3.03.05 A3.02.02 A3.03.03
+A3.03.03 A3.03.07 A3.03.06 A3.03.05 A3.03.04 A3.03.02 A3.03.00
+A3.03.04 A3.04.07 A3.03.07 A3.03.06 A3.04.04 A3.03.03 A3.04.01 A3.03.01 A3.03.00
+A3.03.05 A3.03.08 A3.02.06 A3.02.04 A3.03.06 A3.02.02 A3.03.03 A3.03.02
+A3.03.06 A3.03.09 A3.03.08 A3.02.06 A3.03.07 A3.03.05 A3.03.04 A3.03.03 A3.03.02
+A3.03.07 A3.04.09 A3.03.09 A3.03.08 A3.04.07 A3.03.06 A3.04.04 A3.03.04 A3.03.03
+A3.03.08 A3.03.11 A3.03.10 A3.02.08 A3.03.09 A3.02.06 A3.03.07 A3.03.06 A3.03.05
+A3.03.09 A3.04.11 A3.03.11 A3.03.10 A3.04.09 A3.03.08 A3.04.07 A3.03.07 A3.03.06
+A3.03.10 A3.03.13 A3.03.12 A3.02.10 A3.03.11 A3.02.08 A3.03.09 A3.03.08 A3.02.06
+A3.03.11 A3.04.13 A3.03.13 A3.03.12 A3.04.11 A3.03.10 A3.04.09 A3.03.09 A3.03.08
+A3.03.12 A3.03.14 A3.02.12 A3.02.11 A3.03.13 A3.02.10 A3.03.11 A3.03.10 A3.02.08
+A3.03.13 A3.04.14 A3.03.14 A3.02.12 A3.04.13 A3.03.12 A3.04.11 A3.03.11 A3.03.10
+A3.03.14 A3.04.15 A3.03.15 A3.02.13 A3.04.14 A3.02.12 A3.04.13 A3.03.13 A3.03.12
+A3.03.15 A3.02.14 A3.04.15 A3.02.13 A3.04.14 A3.03.14 A3.02.12
+A3.04.00 A3.04.03 A3.04.04 A3.04.01
+A3.04.01 A3.04.04 A3.03.04 A3.04.00 A3.03.01
+A3.04.02 A3.04.05 A3.04.06 A3.05.01 A3.04.03
+A3.04.03 A3.04.05 A3.04.06 A3.04.07 A3.04.02 A3.04.04 A3.04.00
+A3.04.04 A3.04.06 A3.04.07 A3.03.07 A3.04.03 A3.03.04 A3.04.00 A3.04.01 A3.03.01
+A3.04.05 A3.05.04 A3.05.06 A3.04.08 A3.05.02 A3.04.06 A3.05.01 A3.04.02 A3.04.03
+A3.04.06 A3.05.06 A3.04.08 A3.04.09 A3.04.05 A3.04.07 A3.04.02 A3.04.03 A3.04.04
+A3.04.07 A3.04.08 A3.04.09 A3.03.09 A3.04.06 A3.03.07 A3.04.03 A3.04.04 A3.03.04
+A3.04.08 A3.05.08 A3.04.10 A3.04.11 A3.05.06 A3.04.09 A3.04.05 A3.04.06 A3.04.07
+A3.04.09 A3.04.10 A3.04.11 A3.03.11 A3.04.08 A3.03.09 A3.04.06 A3.04.07 A3.03.07
+A3.04.10 A3.05.10 A3.04.12 A3.04.13 A3.05.08 A3.04.11 A3.05.06 A3.04.08 A3.04.09
+A3.04.11 A3.04.12 A3.04.13 A3.03.13 A3.04.10 A3.03.11 A3.04.08 A3.04.09 A3.03.09
+A3.04.12 A3.05.11 A3.05.12 A3.04.14 A3.05.10 A3.04.13 A3.05.08 A3.04.10 A3.04.11
+A3.04.13 A3.05.12 A3.04.14 A3.03.14 A3.04.12 A3.03.13 A3.04.10 A3.04.11 A3.03.11
+A3.04.14 A3.05.13 A3.04.15 A3.03.15 A3.05.12 A3.03.14 A3.04.12 A3.04.13 A3.03.13
+A3.04.15 A3.05.15 A3.05.13 A3.03.15 A3.05.12 A3.04.14 A3.03.14
+A3.05.00 A3.06.01 A3.06.03 A3.05.05 A3.05.03 A3.05.02
+A3.05.01 A3.05.02 A3.04.05 A3.04.02
+A3.05.02 A3.05.00 A3.05.03 A3.05.04 A3.05.06 A3.04.05 A3.05.01
+A3.05.03 A3.06.03 A3.05.05 A3.05.07 A3.05.00 A3.05.04 A3.05.02
+A3.05.04 A3.05.05 A3.05.07 A3.05.08 A3.05.03 A3.05.06 A3.05.02 A3.04.05
+A3.05.05 A3.06.05 A3.06.07 A3.05.09 A3.06.03 A3.05.07 A3.05.00 A3.05.03 A3.05.04
+A3.05.06 A3.05.07 A3.05.08 A3.04.10 A3.05.04 A3.04.08 A3.05.02 A3.04.05 A3.04.06
+A3.05.07 A3.06.07 A3.05.09 A3.05.10 A3.05.05 A3.05.08 A3.05.03 A3.05.04 A3.05.06
+A3.05.08 A3.05.09 A3.05.10 A3.04.12 A3.05.07 A3.04.10 A3.05.04 A3.05.06 A3.04.08
+A3.05.09 A3.06.08 A3.06.10 A3.05.11 A3.06.07 A3.05.10 A3.05.05 A3.05.07 A3.05.08
+A3.05.10 A3.06.10 A3.05.11 A3.05.12 A3.05.09 A3.04.12 A3.05.07 A3.05.08 A3.04.10
+A3.05.11 A3.06.11 A3.06.12 A3.05.13 A3.06.10 A3.05.12 A3.05.09 A3.05.10 A3.04.12
+A3.05.12 A3.06.12 A3.05.13 A3.04.15 A3.05.11 A3.04.14 A3.05.10 A3.04.12 A3.04.13
+A3.05.13 A3.06.13 A3.06.14 A3.05.14 A3.05.15 A3.06.12 A3.04.15 A3.05.11 A3.05.12 A3.04.14
+A3.05.14 A3.06.15 A3.06.14 A3.05.15 A3.05.13
+A3.05.15 A3.05.14 A3.05.13 A3.04.15
+A3.06.00 A3.07.01 A3.06.04 A3.06.02
+A3.06.01 A3.06.02 A3.06.05 A3.06.03 A3.05.00
+A3.06.02 A3.06.04 A3.06.06 A3.06.00 A3.06.05 A3.06.01
+A3.06.03 A3.06.05 A3.06.07 A3.06.01 A3.05.05 A3.05.00 A3.05.03
+A3.06.04 A3.07.01 A3.07.04 A3.07.07 A3.06.06 A3.06.00 A3.06.02 A3.06.05
+A3.06.05 A3.06.04 A3.06.06 A3.06.08 A3.06.02 A3.06.07 A3.06.01 A3.06.03 A3.05.05
+A3.06.06 A3.07.04 A3.07.07 A3.06.09 A3.06.04 A3.06.08 A3.06.02 A3.06.05 A3.06.07
+A3.06.07 A3.06.06 A3.06.08 A3.06.10 A3.06.05 A3.05.09 A3.06.03 A3.05.05 A3.05.07
+A3.06.08 A3.07.07 A3.06.09 A3.06.11 A3.06.06 A3.06.10 A3.06.05 A3.06.07 A3.05.09
+A3.06.09 A3.07.08 A3.07.10 A3.07.12 A3.07.07 A3.06.11 A3.06.06 A3.06.08 A3.06.10
+A3.06.10 A3.06.09 A3.06.11 A3.06.12 A3.06.08 A3.05.11 A3.06.07 A3.05.09 A3.05.10
+A3.06.11 A3.07.10 A3.07.12 A3.06.13 A3.06.09 A3.06.12 A3.06.08 A3.06.10 A3.05.11
+A3.06.12 A3.07.12 A3.06.13 A3.06.14 A3.06.11 A3.05.13 A3.06.10 A3.05.11 A3.05.12
+A3.06.13 A3.07.13 A3.07.14 A3.06.15 A3.07.12 A3.06.14 A3.06.11 A3.06.12 A3.05.13
+A3.06.14 A3.06.15 A3.06.13 A3.05.14 A3.06.12 A3.05.13
+A3.06.15 A3.07.14 A3.07.15 A3.06.13 A3.06.14 A3.05.14
+A3.07.00 A3.08.00 A3.08.03 A3.07.03 A3.07.02
+A3.07.01 A3.07.02 A3.07.05 A3.07.04 A3.06.04 A3.06.00
+A3.07.02 A3.07.00 A3.07.03 A3.07.06 A3.07.05 A3.07.01 A3.07.04
+A3.07.03 A3.08.00 A3.08.03 A3.08.06 A3.07.00 A3.07.06 A3.07.02 A3.07.05
+A3.07.04 A3.07.02 A3.07.05 A3.07.08 A3.07.01 A3.07.07 A3.06.04 A3.06.06
+A3.07.05 A3.07.03 A3.07.06 A3.07.09 A3.07.02 A3.07.08 A3.07.01 A3.07.04 A3.07.07
+A3.07.06 A3.08.03 A3.08.06 A3.08.09 A3.07.03 A3.07.09 A3.07.02 A3.07.05 A3.07.08
+A3.07.07 A3.07.05 A3.07.08 A3.07.10 A3.07.04 A3.06.09 A3.06.04 A3.06.06 A3.06.08
+A3.07.08 A3.07.06 A3.07.09 A3.07.11 A3.07.05 A3.07.10 A3.07.04 A3.07.07 A3.06.09
+A3.07.09 A3.08.06 A3.08.09 A3.08.11 A3.07.06 A3.07.11 A3.07.05 A3.07.08 A3.07.10
+A3.07.10 A3.07.09 A3.07.11 A3.07.13 A3.07.08 A3.07.12 A3.07.07 A3.06.09 A3.06.11
+A3.07.11 A3.08.09 A3.08.11 A3.08.13 A3.07.09 A3.07.13 A3.07.08 A3.07.10 A3.07.12
+A3.07.12 A3.07.11 A3.07.13 A3.07.14 A3.07.10 A3.06.13 A3.06.09 A3.06.11 A3.06.12
+A3.07.13 A3.08.11 A3.08.13 A3.08.14 A3.07.11 A3.07.14 A3.07.10 A3.07.12 A3.06.13
+A3.07.14 A3.08.13 A3.08.14 A3.08.15 A3.07.13 A3.07.15 A3.06.15 A3.07.12 A3.06.13
+A3.07.15 A3.08.14 A3.08.15 A3.07.14 A3.06.15
+A3.08.00 A3.08.02 A3.08.03 A3.07.00 A3.07.03
+A3.08.01 A3.09.01 A3.09.03 A3.08.04 A3.08.02 A3.08.05
+A3.08.02 A3.08.01 A3.08.04 A3.08.05 A3.08.00 A3.08.03 A3.08.06
+A3.08.03 A3.08.02 A3.08.05 A3.08.00 A3.08.06 A3.07.00 A3.07.03 A3.07.06
+A3.08.04 A3.09.03 A3.09.05 A3.08.01 A3.08.07 A3.08.02 A3.08.05 A3.08.08
+A3.08.05 A3.08.01 A3.08.04 A3.08.07 A3.08.02 A3.08.08 A3.08.03 A3.08.06 A3.08.09
+A3.08.06 A3.08.02 A3.08.05 A3.08.08 A3.08.03 A3.08.09 A3.07.03 A3.07.06 A3.07.09
+A3.08.07 A3.09.03 A3.09.05 A3.09.07 A3.08.04 A3.09.08 A3.08.05 A3.08.08 A3.08.10
+A3.08.08 A3.08.04 A3.08.07 A3.09.08 A3.08.05 A3.08.10 A3.08.06 A3.08.09 A3.08.11
+A3.08.09 A3.08.05 A3.08.08 A3.08.10 A3.08.06 A3.08.11 A3.07.06 A3.07.09 A3.07.11
+A3.08.10 A3.08.07 A3.09.08 A3.09.10 A3.08.08 A3.08.12 A3.08.09 A3.08.11 A3.08.13
+A3.08.11 A3.08.08 A3.08.10 A3.08.12 A3.08.09 A3.08.13 A3.07.09 A3.07.11 A3.07.13
+A3.08.12 A3.09.08 A3.09.10 A3.09.11 A3.08.10 A3.09.12 A3.08.11 A3.08.13 A3.08.14
+A3.08.13 A3.08.10 A3.08.12 A3.09.12 A3.08.11 A3.08.14 A3.07.11 A3.07.13 A3.07.14
+A3.08.14 A3.08.12 A3.09.12 A3.09.14 A3.08.13 A3.08.15 A3.07.13 A3.07.14 A3.07.15
+A3.08.15 A3.09.14 A3.08.14 A3.07.14 A3.07.15
+A3.09.00 A3.10.00 A3.09.02 A3.09.04 A3.09.01
+A3.09.01 A3.09.00 A3.09.04 A3.09.03 A3.09.05 A3.08.01
+A3.09.02 A3.10.00 A3.10.03 A3.09.00 A3.10.05 A3.09.04 A3.09.06
+A3.09.03 A3.09.04 A3.09.01 A3.09.05 A3.08.01 A3.08.04 A3.08.07
+A3.09.04 A3.09.00 A3.09.02 A3.10.05 A3.09.06 A3.09.01 A3.09.03 A3.09.05 A3.09.07
+A3.09.05 A3.09.04 A3.09.06 A3.09.01 A3.09.03 A3.09.07 A3.08.04 A3.08.07 A3.09.08
+A3.09.06 A3.09.02 A3.10.05 A3.10.07 A3.09.04 A3.10.09 A3.09.05 A3.09.07 A3.09.09
+A3.09.07 A3.09.04 A3.09.06 A3.10.09 A3.09.05 A3.09.09 A3.08.07 A3.09.08 A3.09.10
+A3.09.08 A3.09.05 A3.09.07 A3.09.09 A3.08.07 A3.09.10 A3.08.08 A3.08.10 A3.08.12
+A3.09.09 A3.09.06 A3.10.09 A3.10.10 A3.09.07 A3.10.11 A3.09.08 A3.09.10 A3.09.11
+A3.09.10 A3.09.07 A3.09.09 A3.10.11 A3.09.08 A3.09.11 A3.08.10 A3.08.12 A3.09.12
+A3.09.11 A3.09.09 A3.10.11 A3.10.12 A3.09.10 A3.10.13 A3.08.12 A3.09.12 A3.09.13
+A3.09.12 A3.09.10 A3.09.11 A3.10.13 A3.08.12 A3.09.13 A3.09.14 A3.08.13 A3.08.14
+A3.09.13 A3.09.11 A3.10.13 A3.09.12 A3.10.14 A3.09.15 A3.09.14
+A3.09.14 A3.09.12 A3.09.13 A3.09.15 A3.08.14 A3.08.15
+A3.09.15 A3.09.13 A3.10.14 A3.09.14
+A3.10.00 A3.10.01 A3.10.03 A3.09.00 A3.09.02 A3.10.05
+A3.10.01 A3.10.02 A3.10.00 A3.10.03 A3.10.04
+A3.10.02 A3.11.02 A3.10.01 A3.11.05 A3.10.03 A3.10.04 A3.10.06
+A3.10.03 A3.10.02 A3.10.01 A3.10.00 A3.10.04 A3.09.02 A3.10.05 A3.10.07
+A3.10.04 A3.10.02 A3.10.01 A3.11.05 A3.10.03 A3.10.06 A3.10.05 A3.10.07 A3.10.08
+A3.10.05 A3.10.00 A3.10.03 A3.10.04 A3.09.02 A3.10.07 A3.09.04 A3.09.06 A3.10.09
+A3.10.06 A3.10.02 A3.11.05 A3.11.06 A3.10.04 A3.11.08 A3.10.07 A3.10.08 A3.11.10
+A3.10.07 A3.10.03 A3.10.04 A3.10.06 A3.10.05 A3.10.08 A3.09.06 A3.10.09 A3.10.10
+A3.10.08 A3.10.04 A3.10.06 A3.11.08 A3.10.07 A3.11.10 A3.10.09 A3.10.10 A3.11.12
+A3.10.09 A3.10.05 A3.10.07 A3.10.08 A3.09.06 A3.10.10 A3.09.07 A3.09.09 A3.10.11
+A3.10.10 A3.10.07 A3.10.08 A3.11.10 A3.10.09 A3.11.12 A3.09.09 A3.10.11 A3.10.12
+A3.10.11 A3.10.09 A3.10.10 A3.11.12 A3.09.09 A3.10.12 A3.09.10 A3.09.11 A3.10.13
+A3.10.12 A3.10.10 A3.11.12 A3.11.13 A3.10.11 A3.11.14 A3.09.11 A3.10.13 A3.11.15
+A3.10.13 A3.10.11 A3.10.12 A3.11.14 A3.09.11 A3.11.15 A3.09.12 A3.09.13 A3.10.14
+A3.10.14 A3.10.13 A3.11.15 A3.09.13 A3.09.15
+A3.11.00 A3.11.01 A3.11.03 A3.11.04
+A3.11.01 A3.11.00 A3.12.01 A3.11.04 A3.12.04
+A3.11.02 A3.11.03 A3.10.02 A3.11.05 A3.11.06
+A3.11.03 A3.11.00 A3.11.02 A3.11.04 A3.11.05 A3.11.06 A3.11.07
+A3.11.04 A3.11.00 A3.11.01 A3.12.01 A3.11.03 A3.12.04 A3.11.06 A3.11.07 A3.12.07
+A3.11.05 A3.11.03 A3.11.02 A3.10.02 A3.11.06 A3.10.04 A3.10.06 A3.11.08
+A3.11.06 A3.11.03 A3.11.02 A3.11.04 A3.11.05 A3.11.07 A3.10.06 A3.11.08 A3.11.09
+A3.11.07 A3.11.03 A3.11.04 A3.12.04 A3.11.06 A3.12.07 A3.11.08 A3.11.09 A3.12.09
+A3.11.08 A3.11.05 A3.11.06 A3.11.07 A3.10.06 A3.11.09 A3.10.08 A3.11.10 A3.11.11
+A3.11.09 A3.11.06 A3.11.07 A3.12.07 A3.11.08 A3.12.09 A3.11.10 A3.11.11 A3.12.11
+A3.11.10 A3.10.06 A3.11.08 A3.11.09 A3.10.08 A3.11.11 A3.10.10 A3.11.12 A3.11.13
+A3.11.11 A3.11.08 A3.11.09 A3.12.09 A3.11.10 A3.12.11 A3.11.12 A3.11.13 A3.12.13
+A3.11.12 A3.10.08 A3.11.10 A3.11.11 A3.10.10 A3.11.13 A3.10.11 A3.10.12 A3.11.14
+A3.11.13 A3.11.10 A3.11.11 A3.12.11 A3.11.12 A3.12.13 A3.10.12 A3.11.14 A3.12.14
+A3.11.14 A3.11.12 A3.11.13 A3.12.13 A3.10.12 A3.12.14 A3.10.13 A3.11.15 A3.12.15
+A3.11.15 A3.10.12 A3.11.14 A3.12.14 A3.10.13 A3.12.15 A3.10.14
+A3.12.00 A3.12.01 A3.12.03 A3.12.04
+A3.12.01 A3.11.01 A3.12.00 A3.11.04 A3.12.04
+A3.12.02 A3.12.03 A3.13.01 A3.12.06 A3.12.05
+A3.12.03 A3.12.00 A3.12.04 A3.12.02 A3.12.07 A3.12.06 A3.12.05
+A3.12.04 A3.11.01 A3.12.01 A3.12.00 A3.12.03 A3.11.04 A3.11.07 A3.12.07 A3.12.06
+A3.12.05 A3.12.03 A3.12.02 A3.13.01 A3.12.06 A3.13.02 A3.12.08 A3.13.06 A3.13.04
+A3.12.06 A3.12.03 A3.12.04 A3.12.02 A3.12.07 A3.12.05 A3.12.09 A3.12.08 A3.13.06
+A3.12.07 A3.12.03 A3.11.04 A3.12.04 A3.11.07 A3.12.06 A3.11.09 A3.12.09 A3.12.08
+A3.12.08 A3.12.07 A3.12.06 A3.12.05 A3.12.09 A3.13.06 A3.12.11 A3.12.10 A3.13.08
+A3.12.09 A3.11.07 A3.12.07 A3.12.06 A3.11.09 A3.12.08 A3.11.11 A3.12.11 A3.12.10
+A3.12.10 A3.12.09 A3.12.08 A3.13.06 A3.12.11 A3.13.08 A3.12.13 A3.12.12 A3.13.10
+A3.12.11 A3.11.09 A3.12.09 A3.12.08 A3.11.11 A3.12.10 A3.11.13 A3.12.13 A3.12.12
+A3.12.12 A3.12.11 A3.12.10 A3.13.08 A3.12.13 A3.13.10 A3.12.14 A3.13.12 A3.13.11
+A3.12.13 A3.11.11 A3.12.11 A3.12.10 A3.11.13 A3.12.12 A3.11.14 A3.12.14 A3.13.12
+A3.12.14 A3.11.13 A3.12.13 A3.12.12 A3.11.14 A3.13.12 A3.11.15 A3.12.15 A3.13.13
+A3.12.15 A3.11.14 A3.12.14 A3.13.12 A3.11.15 A3.13.13 A3.13.15
+A3.13.00 A3.13.02 A3.13.03 A3.14.01 A3.13.05 A3.14.03
+A3.13.01 A3.12.02 A3.12.05 A3.13.02
+A3.13.02 A3.13.01 A3.12.05 A3.13.00 A3.13.06 A3.13.04 A3.13.03
+A3.13.03 A3.13.02 A3.13.00 A3.13.04 A3.13.07 A3.13.05 A3.14.03
+A3.13.04 A3.12.05 A3.13.02 A3.13.06 A3.13.03 A3.13.08 A3.13.07 A3.13.05
+A3.13.05 A3.13.00 A3.13.04 A3.13.03 A3.13.07 A3.14.03 A3.13.09 A3.14.07 A3.14.05
+A3.13.06 A3.12.06 A3.12.05 A3.13.02 A3.12.08 A3.13.04 A3.12.10 A3.13.08 A3.13.07
+A3.13.07 A3.13.06 A3.13.04 A3.13.03 A3.13.08 A3.13.05 A3.13.10 A3.13.09 A3.14.07
+A3.13.08 A3.12.08 A3.13.06 A3.13.04 A3.12.10 A3.13.07 A3.12.12 A3.13.10 A3.13.09
+A3.13.09 A3.13.08 A3.13.07 A3.13.05 A3.13.10 A3.14.07 A3.13.11 A3.14.10 A3.14.08
+A3.13.10 A3.12.10 A3.13.08 A3.13.07 A3.12.12 A3.13.09 A3.13.12 A3.13.11 A3.14.10
+A3.13.11 A3.12.12 A3.13.10 A3.13.09 A3.13.12 A3.14.10 A3.13.13 A3.14.12 A3.14.11
+A3.13.12 A3.12.13 A3.12.12 A3.13.10 A3.12.14 A3.13.11 A3.12.15 A3.13.13 A3.14.12
+A3.13.13 A3.12.14 A3.13.12 A3.13.11 A3.12.15 A3.14.12 A3.13.15 A3.13.14 A3.14.14 A3.14.13
+A3.13.14 A3.13.13 A3.13.15 A3.14.14 A3.14.15
+A3.13.15 A3.12.15 A3.13.13 A3.13.14
+A3.14.00 A3.14.02 A3.14.04 A3.15.01
+A3.14.01 A3.13.00 A3.14.03 A3.14.02 A3.14.05
+A3.14.02 A3.14.01 A3.14.05 A3.14.06 A3.14.04 A3.14.00
+A3.14.03 A3.13.00 A3.13.03 A3.14.01 A3.13.05 A3.14.07 A3.14.05
+A3.14.04 A3.14.02 A3.14.05 A3.14.06 A3.14.00 A3.15.01 A3.15.07 A3.15.04
+A3.14.05 A3.14.01 A3.13.05 A3.14.03 A3.14.02 A3.14.07 A3.14.08 A3.14.06 A3.14.04
+A3.14.06 A3.14.02 A3.14.07 A3.14.05 A3.14.08 A3.14.04 A3.14.09 A3.15.07 A3.15.04
+A3.14.07 A3.13.07 A3.13.05 A3.14.03 A3.13.09 A3.14.05 A3.14.10 A3.14.08 A3.14.06
+A3.14.08 A3.13.09 A3.14.07 A3.14.05 A3.14.10 A3.14.06 A3.14.11 A3.14.09 A3.15.07
+A3.14.09 A3.14.10 A3.14.08 A3.14.06 A3.14.11 A3.15.07 A3.15.12 A3.15.10 A3.15.08
+A3.14.10 A3.13.10 A3.13.09 A3.14.07 A3.13.11 A3.14.08 A3.14.12 A3.14.11 A3.14.09
+A3.14.11 A3.13.11 A3.14.10 A3.14.08 A3.14.12 A3.14.09 A3.14.13 A3.15.12 A3.15.10
+A3.14.12 A3.13.12 A3.13.11 A3.14.10 A3.13.13 A3.14.11 A3.14.14 A3.14.13 A3.15.12
+A3.14.13 A3.13.13 A3.14.12 A3.14.11 A3.14.14 A3.15.12 A3.14.15 A3.15.14 A3.15.13
+A3.14.14 A3.13.13 A3.14.12 A3.13.14 A3.14.13 A3.14.15
+A3.14.15 A3.13.14 A3.14.14 A3.14.13 A3.15.14 A3.15.15
+A3.15.00 A3.15.02 A3.15.03 A3.00.03 A3.00.00
+A3.15.01 A3.14.04 A3.14.00 A3.15.04 A3.15.05 A3.15.02
+A3.15.02 A3.15.01 A3.15.04 A3.15.05 A3.15.06 A3.15.03 A3.15.00
+A3.15.03 A3.15.05 A3.15.02 A3.15.06 A3.15.00 A3.00.06 A3.00.03 A3.00.00
+A3.15.04 A3.14.06 A3.14.04 A3.15.01 A3.15.07 A3.15.08 A3.15.05 A3.15.02
+A3.15.05 A3.15.01 A3.15.07 A3.15.04 A3.15.08 A3.15.02 A3.15.09 A3.15.06 A3.15.03
+A3.15.06 A3.15.08 A3.15.05 A3.15.02 A3.15.09 A3.15.03 A3.00.09 A3.00.06 A3.00.03
+A3.15.07 A3.14.08 A3.14.06 A3.14.04 A3.14.09 A3.15.04 A3.15.10 A3.15.08 A3.15.05
+A3.15.08 A3.14.09 A3.15.07 A3.15.04 A3.15.10 A3.15.05 A3.15.11 A3.15.09 A3.15.06
+A3.15.09 A3.15.10 A3.15.08 A3.15.05 A3.15.11 A3.15.06 A3.00.11 A3.00.09 A3.00.06
+A3.15.10 A3.14.11 A3.14.09 A3.15.07 A3.15.12 A3.15.08 A3.15.13 A3.15.11 A3.15.09
+A3.15.11 A3.15.12 A3.15.10 A3.15.08 A3.15.13 A3.15.09 A3.00.13 A3.00.11 A3.00.09
+A3.15.12 A3.14.12 A3.14.11 A3.14.09 A3.14.13 A3.15.10 A3.15.14 A3.15.13 A3.15.11
+A3.15.13 A3.14.13 A3.15.12 A3.15.10 A3.15.14 A3.15.11 A3.00.14 A3.00.13 A3.00.11
+A3.15.14 A3.14.13 A3.15.12 A3.14.15 A3.15.13 A3.15.15 A3.00.15 A3.00.14 A3.00.13
+A3.15.15 A3.14.15 A3.15.14 A3.00.15 A3.00.14
+C1.00.00 C1.00.07 C1.00.08 C1.01.05
+C1.00.01 C1.00.02 C1.00.11 C1.00.10 C1.00.06 C1.00.04
+C1.00.02 C1.15.01 C1.15.11 C1.00.12 C1.00.11 C1.00.01
+C1.00.03 C1.00.14 C1.00.13 C1.00.07
+C1.00.04 C1.00.01 C1.00.06 C1.00.09 C1.00.05
+C1.00.05 C1.00.04 C1.00.15 C1.00.09 C1.00.14
+C1.00.06 C1.00.01 C1.00.16 C1.00.10 C1.00.04 C1.00.15 C1.00.09
+C1.00.07 C1.00.19 C1.00.13 C1.00.03 C1.00.18 C1.01.13 C1.00.08 C1.00.00
+C1.00.08 C1.00.18 C1.00.07 C1.01.13 C1.00.00 C1.01.05
+C1.00.09 C1.00.16 C1.00.06 C1.00.04 C1.00.15 C1.00.05
+C1.00.10 C1.00.17 C1.00.11 C1.00.01 C1.00.16 C1.00.06
+C1.00.11 C1.00.17 C1.00.12 C1.00.02 C1.00.01 C1.00.16 C1.00.10
+C1.00.12 C1.15.16 C1.15.01 C1.15.11 C1.00.17 C1.00.02 C1.00.11
+C1.00.13 C1.00.20 C1.00.14 C1.00.19 C1.00.03 C1.00.18 C1.00.07
+C1.00.14 C1.00.21 C1.00.15 C1.00.05 C1.00.20 C1.00.19 C1.00.13 C1.00.03
+C1.00.15 C1.00.22 C1.00.16 C1.00.06 C1.00.21 C1.00.09 C1.00.05 C1.00.20 C1.00.14
+C1.00.16 C1.00.23 C1.00.17 C1.00.11 C1.00.22 C1.00.10 C1.00.06 C1.00.21 C1.00.15 C1.00.09
+C1.00.17 C1.15.22 C1.15.16 C1.15.11 C1.00.23 C1.00.12 C1.00.11 C1.00.22 C1.00.16 C1.00.10
+C1.00.18 C1.00.24 C1.00.19 C1.00.13 C1.01.21 C1.00.07 C1.01.19 C1.01.13 C1.00.08
+C1.00.19 C1.00.25 C1.00.20 C1.00.14 C1.00.24 C1.00.13 C1.01.21 C1.00.18 C1.00.07
+C1.00.20 C1.00.26 C1.00.21 C1.00.15 C1.00.25 C1.00.14 C1.00.24 C1.00.19 C1.00.13
+C1.00.21 C1.00.27 C1.00.22 C1.00.16 C1.00.26 C1.00.15 C1.00.25 C1.00.20 C1.00.14
+C1.00.22 C1.00.28 C1.00.23 C1.00.17 C1.00.27 C1.00.16 C1.00.26 C1.00.21 C1.00.15
+C1.00.23 C1.15.27 C1.15.22 C1.15.16 C1.00.28 C1.00.17 C1.00.27 C1.00.22 C1.00.16
+C1.00.24 C1.00.30 C1.00.25 C1.00.20 C1.00.29 C1.00.19 C1.01.26 C1.01.21 C1.00.18
+C1.00.25 C1.00.31 C1.00.26 C1.00.21 C1.00.30 C1.00.20 C1.00.29 C1.00.24 C1.00.19
+C1.00.26 C1.00.32 C1.00.27 C1.00.22 C1.00.31 C1.00.21 C1.00.30 C1.00.25 C1.00.20
+C1.00.27 C1.00.33 C1.00.28 C1.00.23 C1.00.32 C1.00.22 C1.00.31 C1.00.26 C1.00.21
+C1.00.28 C1.15.32 C1.15.27 C1.15.22 C1.00.33 C1.00.23 C1.00.32 C1.00.27 C1.00.22
+C1.00.29 C1.00.34 C1.00.30 C1.00.25 C1.01.33 C1.00.24 C1.01.31 C1.01.26 C1.01.21
+C1.00.30 C1.00.35 C1.00.31 C1.00.26 C1.00.34 C1.00.25 C1.01.33 C1.00.29 C1.00.24
+C1.00.31 C1.00.36 C1.00.32 C1.00.27 C1.00.35 C1.00.26 C1.00.34 C1.00.30 C1.00.25
+C1.00.32 C1.00.37 C1.00.33 C1.00.28 C1.00.36 C1.00.27 C1.00.35 C1.00.31 C1.00.26
+C1.00.33 C1.15.36 C1.15.32 C1.15.27 C1.00.37 C1.00.28 C1.00.36 C1.00.32 C1.00.27
+C1.00.34 C1.00.39 C1.00.35 C1.00.31 C1.00.38 C1.00.30 C1.01.38 C1.01.33 C1.00.29
+C1.00.35 C1.00.40 C1.00.36 C1.00.32 C1.00.39 C1.00.31 C1.00.38 C1.00.34 C1.00.30
+C1.00.36 C1.00.41 C1.00.37 C1.00.33 C1.00.40 C1.00.32 C1.00.39 C1.00.35 C1.00.31
+C1.00.37 C1.15.40 C1.15.36 C1.15.32 C1.00.41 C1.00.33 C1.00.40 C1.00.36 C1.00.32
+C1.00.38 C1.00.43 C1.00.39 C1.00.35 C1.00.42 C1.00.34 C1.01.41 C1.01.38 C1.01.33
+C1.00.39 C1.00.44 C1.00.40 C1.00.36 C1.00.43 C1.00.35 C1.00.42 C1.00.38 C1.00.34
+C1.00.40 C1.00.45 C1.00.41 C1.00.37 C1.00.44 C1.00.36 C1.00.43 C1.00.39 C1.00.35
+C1.00.41 C1.15.44 C1.15.40 C1.15.36 C1.00.45 C1.00.37 C1.00.44 C1.00.40 C1.00.36
+C1.00.42 C1.00.46 C1.00.43 C1.00.39 C1.01.45 C1.00.38 C1.01.43 C1.01.41 C1.01.38
+C1.00.43 C1.00.47 C1.00.44 C1.00.40 C1.00.46 C1.00.39 C1.01.45 C1.00.42 C1.00.38
+C1.00.44 C1.00.48 C1.00.45 C1.00.41 C1.00.47 C1.00.40 C1.00.46 C1.00.43 C1.00.39
+C1.00.45 C1.15.47 C1.15.44 C1.15.40 C1.00.48 C1.00.41 C1.00.47 C1.00.44 C1.00.40
+C1.00.46 C1.00.50 C1.00.47 C1.00.44 C1.00.49 C1.00.43 C1.01.47 C1.01.45 C1.00.42
+C1.00.47 C1.00.51 C1.00.48 C1.00.45 C1.00.50 C1.00.44 C1.00.49 C1.00.46 C1.00.43
+C1.00.48 C1.15.50 C1.15.47 C1.15.44 C1.00.51 C1.00.45 C1.00.50 C1.00.47 C1.00.44
+C1.00.49 C1.00.52 C1.00.50 C1.00.47 C1.01.50 C1.00.46 C1.01.49 C1.01.47 C1.01.45
+C1.00.50 C1.00.53 C1.00.51 C1.00.48 C1.00.52 C1.00.47 C1.01.50 C1.00.49 C1.00.46
+C1.00.51 C1.15.52 C1.15.50 C1.15.47 C1.00.53 C1.00.48 C1.00.52 C1.00.50 C1.00.47
+C1.00.52 C1.00.53 C1.00.51 C1.00.55 C1.00.54 C1.00.50 C1.01.54 C1.01.53 C1.01.50 C1.00.49
+C1.00.53 C1.15.52 C1.15.50 C1.15.56 C1.00.56 C1.00.51 C1.00.55 C1.00.54 C1.00.52 C1.00.50
+C1.00.54 C1.00.53 C1.00.58 C1.00.55 C1.00.57 C1.00.52 C1.01.58 C1.01.54
+C1.00.55 C1.00.59 C1.00.56 C1.00.53 C1.00.58 C1.00.57 C1.00.54 C1.00.52
+C1.00.56 C1.15.52 C1.15.59 C1.15.56 C1.00.59 C1.00.53 C1.00.58 C1.00.55
+C1.00.57 C1.00.61 C1.00.58 C1.00.55 C1.00.60 C1.00.54 C1.01.60 C1.01.58 C1.01.54
+C1.00.58 C1.00.62 C1.00.59 C1.00.56 C1.00.61 C1.00.55 C1.00.60 C1.00.57 C1.00.54
+C1.00.59 C1.15.62 C1.15.59 C1.15.56 C1.00.62 C1.00.56 C1.00.61 C1.00.58 C1.00.55
+C1.00.60 C1.00.61 C1.00.58 C1.00.57 C1.01.62 C1.01.60 C1.01.58
+C1.00.61 C1.00.62 C1.00.59 C1.00.58 C1.00.60 C1.00.57
+C1.00.62 C1.15.62 C1.15.59 C1.00.59 C1.00.61 C1.00.58
+C1.01.00 C1.01.11 C1.01.02 C1.01.03
+C1.01.01 C1.01.12 C1.01.08 C1.01.04 C1.01.06
+C1.01.02 C1.01.13 C1.01.05 C1.01.11 C1.01.00
+C1.01.03 C1.01.11 C1.01.00 C1.01.09 C1.01.07
+C1.01.04 C1.01.10 C1.01.08 C1.01.01
+C1.01.05 C1.01.13 C1.00.08 C1.00.00 C1.01.11 C1.01.02
+C1.01.06 C1.01.17 C1.01.12 C1.01.01 C1.02.11 C1.02.06
+C1.01.07 C1.01.14 C1.01.09 C1.01.03 C1.01.10
+C1.01.08 C1.01.15 C1.01.10 C1.01.12 C1.01.04 C1.01.01
+C1.01.09 C1.01.16 C1.01.11 C1.01.14 C1.01.03 C1.01.07
+C1.01.10 C1.01.18 C1.01.14 C1.01.07 C1.01.15 C1.01.12 C1.01.08 C1.01.04
+C1.01.11 C1.01.19 C1.01.13 C1.01.05 C1.01.16 C1.01.02 C1.01.00 C1.01.14 C1.01.09 C1.01.03
+C1.01.12 C1.01.20 C1.01.15 C1.01.10 C1.01.17 C1.01.08 C1.01.01 C1.02.11 C1.01.06
+C1.01.13 C1.01.21 C1.00.18 C1.00.07 C1.01.19 C1.00.08 C1.01.05 C1.01.16 C1.01.11 C1.01.02
+C1.01.14 C1.01.22 C1.01.16 C1.01.11 C1.01.18 C1.01.09 C1.01.07 C1.01.15 C1.01.10
+C1.01.15 C1.01.23 C1.01.18 C1.01.14 C1.01.20 C1.01.10 C1.01.17 C1.01.12 C1.01.08
+C1.01.16 C1.01.24 C1.01.19 C1.01.13 C1.01.22 C1.01.11 C1.01.18 C1.01.14 C1.01.09
+C1.01.17 C1.01.25 C1.01.20 C1.01.15 C1.02.20 C1.01.12 C1.02.16 C1.02.11 C1.01.06
+C1.01.18 C1.01.27 C1.01.22 C1.01.16 C1.01.23 C1.01.14 C1.01.20 C1.01.15 C1.01.10
+C1.01.19 C1.01.26 C1.01.21 C1.00.18 C1.01.24 C1.01.13 C1.01.22 C1.01.16 C1.01.11
+C1.01.20 C1.01.28 C1.01.23 C1.01.18 C1.01.25 C1.01.15 C1.02.20 C1.01.17 C1.01.12
+C1.01.21 C1.00.29 C1.00.24 C1.00.19 C1.01.26 C1.00.18 C1.01.24 C1.01.19 C1.01.13
+C1.01.22 C1.01.29 C1.01.24 C1.01.19 C1.01.27 C1.01.16 C1.01.23 C1.01.18 C1.01.14
+C1.01.23 C1.01.30 C1.01.27 C1.01.22 C1.01.28 C1.01.18 C1.01.25 C1.01.20 C1.01.15
+C1.01.24 C1.01.31 C1.01.26 C1.01.21 C1.01.29 C1.01.19 C1.01.27 C1.01.22 C1.01.16
+C1.01.25 C1.01.32 C1.01.28 C1.01.23 C1.02.27 C1.01.20 C1.02.23 C1.02.20 C1.01.17
+C1.01.26 C1.01.33 C1.00.29 C1.00.24 C1.01.31 C1.01.21 C1.01.29 C1.01.24 C1.01.19
+C1.01.27 C1.01.34 C1.01.29 C1.01.24 C1.01.30 C1.01.22 C1.01.28 C1.01.23 C1.01.18
+C1.01.28 C1.01.35 C1.01.30 C1.01.27 C1.01.32 C1.01.23 C1.02.27 C1.01.25 C1.01.20
+C1.01.29 C1.01.36 C1.01.31 C1.01.26 C1.01.34 C1.01.24 C1.01.30 C1.01.27 C1.01.22
+C1.01.30 C1.01.37 C1.01.34 C1.01.29 C1.01.35 C1.01.27 C1.01.32 C1.01.28 C1.01.23
+C1.01.31 C1.01.38 C1.01.33 C1.00.29 C1.01.36 C1.01.26 C1.01.34 C1.01.29 C1.01.24
+C1.01.32 C1.02.35 C1.01.35 C1.01.30 C1.02.33 C1.01.28 C1.02.30 C1.02.27 C1.01.25
+C1.01.33 C1.00.38 C1.00.34 C1.00.30 C1.01.38 C1.00.29 C1.01.36 C1.01.31 C1.01.26
+C1.01.34 C1.01.39 C1.01.36 C1.01.31 C1.01.37 C1.01.29 C1.01.35 C1.01.30 C1.01.27
+C1.01.35 C1.01.40 C1.01.37 C1.01.34 C1.02.35 C1.01.30 C1.02.33 C1.01.32 C1.01.28
+C1.01.36 C1.01.41 C1.01.38 C1.01.33 C1.01.39 C1.01.31 C1.01.37 C1.01.34 C1.01.29
+C1.01.37 C1.01.42 C1.01.39 C1.01.36 C1.01.40 C1.01.34 C1.02.35 C1.01.35 C1.01.30
+C1.01.38 C1.00.42 C1.00.38 C1.00.34 C1.01.41 C1.01.33 C1.01.39 C1.01.36 C1.01.31
+C1.01.39 C1.01.43 C1.01.41 C1.01.38 C1.01.42 C1.01.36 C1.01.40 C1.01.37 C1.01.34
+C1.01.40 C1.01.44 C1.01.42 C1.01.39 C1.02.42 C1.01.37 C1.02.39 C1.02.35 C1.01.35
+C1.01.41 C1.01.45 C1.00.42 C1.00.38 C1.01.43 C1.01.38 C1.01.42 C1.01.39 C1.01.36
+C1.01.42 C1.01.46 C1.01.43 C1.01.41 C1.01.44 C1.01.39 C1.02.42 C1.01.40 C1.01.37
+C1.01.43 C1.01.47 C1.01.45 C1.00.42 C1.01.46 C1.01.41 C1.01.44 C1.01.42 C1.01.39
+C1.01.44 C1.01.48 C1.01.46 C1.01.43 C1.02.46 C1.01.42 C1.02.44 C1.02.42 C1.01.40
+C1.01.45 C1.00.49 C1.00.46 C1.00.43 C1.01.47 C1.00.42 C1.01.46 C1.01.43 C1.01.41
+C1.01.46 C1.01.49 C1.01.47 C1.01.45 C1.01.48 C1.01.43 C1.02.46 C1.01.44 C1.01.42
+C1.01.47 C1.01.50 C1.00.49 C1.00.46 C1.01.49 C1.01.45 C1.01.48 C1.01.46 C1.01.43
+C1.01.48 C1.01.51 C1.01.49 C1.01.47 C1.02.50 C1.01.46 C1.02.48 C1.02.46 C1.01.44
+C1.01.49 C1.01.50 C1.00.49 C1.01.52 C1.01.51 C1.01.47 C1.02.50 C1.01.48 C1.01.46
+C1.01.50 C1.00.52 C1.00.50 C1.01.54 C1.01.53 C1.00.49 C1.01.52 C1.01.51 C1.01.49 C1.01.47
+C1.01.51 C1.01.50 C1.01.57 C1.01.55 C1.01.52 C1.02.54 C1.01.49 C1.02.52 C1.02.51 C1.02.50 C1.01.48
+C1.01.52 C1.01.56 C1.01.53 C1.01.50 C1.01.55 C1.01.51 C1.01.49
+C1.01.53 C1.00.52 C1.01.58 C1.01.54 C1.01.56 C1.01.50 C1.01.55 C1.01.52
+C1.01.54 C1.00.57 C1.00.54 C1.00.52 C1.01.58 C1.01.56 C1.01.53 C1.01.50
+C1.01.55 C1.01.59 C1.01.56 C1.01.53 C1.01.57 C1.01.52 C1.02.54 C1.01.51
+C1.01.56 C1.01.60 C1.01.58 C1.01.54 C1.01.59 C1.01.53 C1.01.57 C1.01.55 C1.01.52
+C1.01.57 C1.01.61 C1.01.59 C1.01.56 C1.02.58 C1.01.55 C1.02.56 C1.02.54 C1.01.51
+C1.01.58 C1.00.60 C1.00.57 C1.00.54 C1.01.60 C1.01.54 C1.01.59 C1.01.56 C1.01.53
+C1.01.59 C1.01.62 C1.01.60 C1.01.58 C1.01.61 C1.01.56 C1.02.58 C1.01.57 C1.01.55
+C1.01.60 C1.00.60 C1.00.57 C1.01.62 C1.01.58 C1.01.61 C1.01.59 C1.01.56
+C1.01.61 C1.01.62 C1.01.60 C1.02.61 C1.01.59 C1.02.60 C1.02.58 C1.01.57
+C1.01.62 C1.00.60 C1.01.60 C1.02.61 C1.01.61 C1.01.59
+C1.02.00 C1.02.09 C1.02.05 C1.02.02
+C1.02.01 C1.02.12 C1.02.06 C1.02.03
+C1.02.02 C1.02.13 C1.02.09 C1.02.00 C1.03.04
+C1.02.03 C1.02.12 C1.02.06 C1.02.08 C1.02.01 C1.02.07
+C1.02.04 C1.02.10 C1.02.07 C1.02.05
+C1.02.05 C1.02.14 C1.02.10 C1.02.09 C1.02.04 C1.02.00
+C1.02.06 C1.02.16 C1.02.11 C1.01.06 C1.02.12 C1.02.03 C1.02.01
+C1.02.07 C1.02.10 C1.02.08 C1.02.03 C1.02.04
+C1.02.08 C1.02.15 C1.02.12 C1.02.10 C1.02.03 C1.02.07
+C1.02.09 C1.02.17 C1.02.14 C1.02.10 C1.02.13 C1.02.05 C1.02.00 C1.03.04 C1.02.02
+C1.02.10 C1.02.18 C1.02.15 C1.02.12 C1.02.14 C1.02.08 C1.02.07 C1.02.09 C1.02.05 C1.02.04
+C1.02.11 C1.02.20 C1.01.17 C1.01.12 C1.02.16 C1.01.06 C1.02.12 C1.02.06
+C1.02.12 C1.02.19 C1.02.16 C1.02.11 C1.02.15 C1.02.06 C1.02.10 C1.02.08 C1.02.03 C1.02.01
+C1.02.13 C1.03.20 C1.02.17 C1.02.14 C1.03.15 C1.02.09 C1.03.10 C1.03.04 C1.02.02
+C1.02.14 C1.02.21 C1.02.18 C1.02.15 C1.02.17 C1.02.10 C1.02.13 C1.02.09 C1.02.05
+C1.02.15 C1.02.22 C1.02.19 C1.02.16 C1.02.18 C1.02.12 C1.02.14 C1.02.10 C1.02.08
+C1.02.16 C1.02.23 C1.02.20 C1.01.17 C1.02.19 C1.02.11 C1.02.15 C1.02.12 C1.02.06
+C1.02.17 C1.02.24 C1.02.21 C1.02.18 C1.03.20 C1.02.14 C1.03.15 C1.02.13 C1.02.09
+C1.02.18 C1.02.25 C1.02.22 C1.02.19 C1.02.21 C1.02.15 C1.02.17 C1.02.14 C1.02.10
+C1.02.19 C1.02.26 C1.02.23 C1.02.20 C1.02.22 C1.02.16 C1.02.18 C1.02.15 C1.02.12
+C1.02.20 C1.02.27 C1.01.25 C1.01.20 C1.02.23 C1.01.17 C1.02.19 C1.02.16 C1.02.11
+C1.02.21 C1.02.28 C1.02.25 C1.02.22 C1.02.24 C1.02.18 C1.03.20 C1.02.17 C1.02.14
+C1.02.22 C1.02.29 C1.02.26 C1.02.23 C1.02.25 C1.02.19 C1.02.21 C1.02.18 C1.02.15
+C1.02.23 C1.02.30 C1.02.27 C1.01.25 C1.02.26 C1.02.20 C1.02.22 C1.02.19 C1.02.16
+C1.02.24 C1.03.29 C1.02.28 C1.02.25 C1.03.25 C1.02.21 C1.03.21 C1.03.20 C1.02.17
+C1.02.25 C1.02.31 C1.02.29 C1.02.26 C1.02.28 C1.02.22 C1.02.24 C1.02.21 C1.02.18
+C1.02.26 C1.02.32 C1.02.30 C1.02.27 C1.02.29 C1.02.23 C1.02.25 C1.02.22 C1.02.19
+C1.02.27 C1.02.33 C1.01.32 C1.01.28 C1.02.30 C1.01.25 C1.02.26 C1.02.23 C1.02.20
+C1.02.28 C1.03.33 C1.02.31 C1.02.29 C1.03.29 C1.02.25 C1.03.25 C1.02.24 C1.02.21
+C1.02.29 C1.02.34 C1.02.32 C1.02.30 C1.02.31 C1.02.26 C1.02.28 C1.02.25 C1.02.22
+C1.02.30 C1.02.36 C1.02.33 C1.01.32 C1.02.32 C1.02.27 C1.02.29 C1.02.26 C1.02.23
+C1.02.31 C1.02.37 C1.02.34 C1.02.32 C1.03.33 C1.02.29 C1.03.29 C1.02.28 C1.02.25
+C1.02.32 C1.02.38 C1.02.36 C1.02.33 C1.02.34 C1.02.30 C1.02.31 C1.02.29 C1.02.26
+C1.02.33 C1.02.39 C1.02.35 C1.01.35 C1.02.36 C1.01.32 C1.02.32 C1.02.30 C1.02.27
+C1.02.34 C1.02.40 C1.02.38 C1.02.36 C1.02.37 C1.02.32 C1.03.33 C1.02.31 C1.02.29
+C1.02.35 C1.02.42 C1.01.40 C1.01.37 C1.02.39 C1.01.35 C1.02.36 C1.02.33 C1.01.32
+C1.02.36 C1.02.41 C1.02.39 C1.02.35 C1.02.38 C1.02.33 C1.02.34 C1.02.32 C1.02.30
+C1.02.37 C1.03.40 C1.02.40 C1.02.38 C1.03.37 C1.02.34 C1.03.34 C1.03.33 C1.02.31
+C1.02.38 C1.02.43 C1.02.41 C1.02.39 C1.02.40 C1.02.36 C1.02.37 C1.02.34 C1.02.32
+C1.02.39 C1.02.44 C1.02.42 C1.01.40 C1.02.41 C1.02.35 C1.02.38 C1.02.36 C1.02.33
+C1.02.40 C1.03.43 C1.02.43 C1.02.41 C1.03.40 C1.02.38 C1.03.37 C1.02.37 C1.02.34
+C1.02.41 C1.02.45 C1.02.44 C1.02.42 C1.02.43 C1.02.39 C1.02.40 C1.02.38 C1.02.36
+C1.02.42 C1.02.46 C1.01.44 C1.01.42 C1.02.44 C1.01.40 C1.02.41 C1.02.39 C1.02.35
+C1.02.43 C1.02.47 C1.02.45 C1.02.44 C1.03.43 C1.02.41 C1.03.40 C1.02.40 C1.02.38
+C1.02.44 C1.02.48 C1.02.46 C1.01.44 C1.02.45 C1.02.42 C1.02.43 C1.02.41 C1.02.39
+C1.02.45 C1.02.49 C1.02.48 C1.02.46 C1.02.47 C1.02.44 C1.03.43 C1.02.43 C1.02.41
+C1.02.46 C1.02.50 C1.01.48 C1.01.46 C1.02.48 C1.01.44 C1.02.45 C1.02.44 C1.02.42
+C1.02.47 C1.03.48 C1.02.49 C1.02.48 C1.03.46 C1.02.45 C1.03.44 C1.03.43 C1.02.43
+C1.02.48 C1.02.51 C1.02.50 C1.01.48 C1.02.49 C1.02.46 C1.02.47 C1.02.45 C1.02.44
+C1.02.49 C1.02.51 C1.02.50 C1.03.50 C1.03.48 C1.02.48 C1.03.46 C1.02.47 C1.02.45
+C1.02.50 C1.01.51 C1.01.49 C1.02.52 C1.02.51 C1.01.48 C1.02.49 C1.02.48 C1.02.46
+C1.02.51 C1.01.51 C1.02.55 C1.02.53 C1.02.52 C1.03.54 C1.02.50 C1.03.50 C1.03.48 C1.02.49 C1.02.48
+C1.02.52 C1.02.56 C1.02.54 C1.01.51 C1.02.53 C1.02.51 C1.02.50
+C1.02.53 C1.02.57 C1.02.56 C1.02.54 C1.02.55 C1.02.52 C1.03.54 C1.02.51
+C1.02.54 C1.02.58 C1.01.57 C1.01.55 C1.02.56 C1.01.51 C1.02.53 C1.02.52
+C1.02.55 C1.02.59 C1.02.57 C1.02.56 C1.03.58 C1.02.53 C1.03.55 C1.03.54 C1.02.51
+C1.02.56 C1.02.60 C1.02.58 C1.01.57 C1.02.57 C1.02.54 C1.02.55 C1.02.53 C1.02.52
+C1.02.57 C1.02.60 C1.02.58 C1.02.59 C1.02.56 C1.03.58 C1.02.55 C1.02.53
+C1.02.58 C1.02.61 C1.01.61 C1.01.59 C1.02.60 C1.01.57 C1.02.57 C1.02.56 C1.02.54
+C1.02.59 C1.02.62 C1.02.60 C1.03.61 C1.02.57 C1.03.59 C1.03.58 C1.02.55
+C1.02.60 C1.02.61 C1.01.61 C1.02.62 C1.02.58 C1.02.59 C1.02.57 C1.02.56
+C1.02.61 C1.01.62 C1.01.61 C1.02.62 C1.02.60 C1.02.58
+C1.02.62 C1.02.61 C1.02.60 C1.03.62 C1.03.61 C1.02.59
+C1.03.00 C1.04.07 C1.03.08 C1.03.06 C1.04.00
+C1.03.01 C1.03.10 C1.03.04 C1.03.02
+C1.03.02 C1.03.11 C1.03.10 C1.03.03 C1.03.01
+C1.03.03 C1.03.11 C1.03.10 C1.03.05 C1.03.02
+C1.03.04 C1.03.15 C1.02.13 C1.02.09 C1.03.10 C1.02.02 C1.03.01
+C1.03.05 C1.03.12 C1.03.11 C1.03.07 C1.03.03
+C1.03.06 C1.03.14 C1.03.13 C1.03.12 C1.03.08 C1.03.09 C1.03.00
+C1.03.07 C1.03.12 C1.03.11 C1.03.09 C1.03.05
+C1.03.08 C1.04.14 C1.03.14 C1.03.13 C1.04.07 C1.03.06 C1.04.00 C1.03.00
+C1.03.09 C1.03.13 C1.03.12 C1.03.06 C1.03.07
+C1.03.10 C1.03.16 C1.03.15 C1.02.13 C1.03.11 C1.03.04 C1.03.03 C1.03.02 C1.03.01
+C1.03.11 C1.03.17 C1.03.16 C1.03.15 C1.03.12 C1.03.10 C1.03.07 C1.03.05 C1.03.03 C1.03.02
+C1.03.12 C1.03.18 C1.03.17 C1.03.16 C1.03.13 C1.03.11 C1.03.06 C1.03.09 C1.03.07 C1.03.05
+C1.03.13 C1.03.19 C1.03.18 C1.03.17 C1.03.14 C1.03.12 C1.03.08 C1.03.06 C1.03.09
+C1.03.14 C1.04.19 C1.03.19 C1.03.18 C1.04.14 C1.03.13 C1.04.07 C1.03.08 C1.03.06
+C1.03.15 C1.03.21 C1.03.20 C1.02.17 C1.03.16 C1.02.13 C1.03.11 C1.03.10 C1.03.04
+C1.03.16 C1.03.22 C1.03.21 C1.03.20 C1.03.17 C1.03.15 C1.03.12 C1.03.11 C1.03.10
+C1.03.17 C1.03.23 C1.03.22 C1.03.21 C1.03.18 C1.03.16 C1.03.13 C1.03.12 C1.03.11
+C1.03.18 C1.03.24 C1.03.23 C1.03.22 C1.03.19 C1.03.17 C1.03.14 C1.03.13 C1.03.12
+C1.03.19 C1.04.24 C1.03.24 C1.03.23 C1.04.19 C1.03.18 C1.04.14 C1.03.14 C1.03.13
+C1.03.20 C1.03.25 C1.02.24 C1.02.21 C1.03.21 C1.02.17 C1.03.16 C1.03.15 C1.02.13
+C1.03.21 C1.03.26 C1.03.25 C1.02.24 C1.03.22 C1.03.20 C1.03.17 C1.03.16 C1.03.15
+C1.03.22 C1.03.27 C1.03.26 C1.03.25 C1.03.23 C1.03.21 C1.03.18 C1.03.17 C1.03.16
+C1.03.23 C1.03.28 C1.03.27 C1.03.26 C1.03.24 C1.03.22 C1.03.19 C1.03.18 C1.03.17
+C1.03.24 C1.04.28 C1.03.28 C1.03.27 C1.04.24 C1.03.23 C1.04.19 C1.03.19 C1.03.18
+C1.03.25 C1.03.30 C1.03.29 C1.02.28 C1.03.26 C1.02.24 C1.03.22 C1.03.21 C1.03.20
+C1.03.26 C1.03.31 C1.03.30 C1.03.29 C1.03.27 C1.03.25 C1.03.23 C1.03.22 C1.03.21
+C1.03.27 C1.03.32 C1.03.31 C1.03.30 C1.03.28 C1.03.26 C1.03.24 C1.03.23 C1.03.22
+C1.03.28 C1.04.32 C1.03.32 C1.03.31 C1.04.28 C1.03.27 C1.04.24 C1.03.24 C1.03.23
+C1.03.29 C1.03.34 C1.03.33 C1.02.31 C1.03.30 C1.02.28 C1.03.26 C1.03.25 C1.02.24
+C1.03.30 C1.03.35 C1.03.34 C1.03.33 C1.03.31 C1.03.29 C1.03.27 C1.03.26 C1.03.25
+C1.03.31 C1.03.36 C1.03.35 C1.03.34 C1.03.32 C1.03.30 C1.03.28 C1.03.27 C1.03.26
+C1.03.32 C1.04.36 C1.03.36 C1.03.35 C1.04.32 C1.03.31 C1.04.28 C1.03.28 C1.03.27
+C1.03.33 C1.03.37 C1.02.37 C1.02.34 C1.03.34 C1.02.31 C1.03.30 C1.03.29 C1.02.28
+C1.03.34 C1.03.38 C1.03.37 C1.02.37 C1.03.35 C1.03.33 C1.03.31 C1.03.30 C1.03.29
+C1.03.35 C1.03.39 C1.03.38 C1.03.37 C1.03.36 C1.03.34 C1.03.32 C1.03.31 C1.03.30
+C1.03.36 C1.04.39 C1.03.39 C1.03.38 C1.04.36 C1.03.35 C1.04.32 C1.03.32 C1.03.31
+C1.03.37 C1.03.41 C1.03.40 C1.02.40 C1.03.38 C1.02.37 C1.03.35 C1.03.34 C1.03.33
+C1.03.38 C1.03.42 C1.03.41 C1.03.40 C1.03.39 C1.03.37 C1.03.36 C1.03.35 C1.03.34
+C1.03.39 C1.04.42 C1.03.42 C1.03.41 C1.04.39 C1.03.38 C1.04.36 C1.03.36 C1.03.35
+C1.03.40 C1.03.44 C1.03.43 C1.02.43 C1.03.41 C1.02.40 C1.03.38 C1.03.37 C1.02.37
+C1.03.41 C1.03.45 C1.03.44 C1.03.43 C1.03.42 C1.03.40 C1.03.39 C1.03.38 C1.03.37
+C1.03.42 C1.04.45 C1.03.45 C1.03.44 C1.04.42 C1.03.41 C1.04.39 C1.03.39 C1.03.38
+C1.03.43 C1.03.46 C1.02.47 C1.02.45 C1.03.44 C1.02.43 C1.03.41 C1.03.40 C1.02.40
+C1.03.44 C1.03.47 C1.03.46 C1.02.47 C1.03.45 C1.03.43 C1.03.42 C1.03.41 C1.03.40
+C1.03.45 C1.04.47 C1.03.47 C1.03.46 C1.04.45 C1.03.44 C1.04.42 C1.03.42 C1.03.41
+C1.03.46 C1.03.49 C1.03.48 C1.02.49 C1.03.47 C1.02.47 C1.03.45 C1.03.44 C1.03.43
+C1.03.47 C1.04.49 C1.03.49 C1.03.48 C1.04.47 C1.03.46 C1.04.45 C1.03.45 C1.03.44
+C1.03.48 C1.02.51 C1.03.52 C1.03.51 C1.03.50 C1.03.49 C1.02.49 C1.03.47 C1.03.46 C1.02.47
+C1.03.49 C1.04.53 C1.03.53 C1.03.52 C1.03.51 C1.04.49 C1.03.48 C1.04.47 C1.03.47 C1.03.46
+C1.03.50 C1.03.55 C1.03.54 C1.02.51 C1.03.51 C1.03.48 C1.02.49
+C1.03.51 C1.03.56 C1.03.55 C1.03.54 C1.03.52 C1.03.50 C1.03.49 C1.03.48
+C1.03.52 C1.03.57 C1.03.56 C1.03.55 C1.03.53 C1.03.51 C1.03.49 C1.03.48
+C1.03.53 C1.04.57 C1.03.57 C1.03.56 C1.04.53 C1.03.52 C1.04.49 C1.03.49
+C1.03.54 C1.03.58 C1.02.55 C1.02.53 C1.03.55 C1.02.51 C1.03.51 C1.03.50
+C1.03.55 C1.03.59 C1.03.58 C1.02.55 C1.03.56 C1.03.54 C1.03.52 C1.03.51 C1.03.50
+C1.03.56 C1.03.60 C1.03.59 C1.03.58 C1.03.57 C1.03.55 C1.03.53 C1.03.52 C1.03.51
+C1.03.57 C1.04.60 C1.03.60 C1.03.59 C1.04.57 C1.03.56 C1.04.53 C1.03.53 C1.03.52
+C1.03.58 C1.03.61 C1.02.59 C1.02.57 C1.03.59 C1.02.55 C1.03.56 C1.03.55 C1.03.54
+C1.03.59 C1.03.62 C1.03.61 C1.02.59 C1.03.60 C1.03.58 C1.03.57 C1.03.56 C1.03.55
+C1.03.60 C1.04.62 C1.03.62 C1.03.61 C1.04.60 C1.03.59 C1.04.57 C1.03.57 C1.03.56
+C1.03.61 C1.02.62 C1.03.62 C1.02.59 C1.03.60 C1.03.59 C1.03.58
+C1.03.62 C1.02.62 C1.04.62 C1.03.61 C1.04.60 C1.03.60 C1.03.59
+C1.04.00 C1.04.05 C1.04.07 C1.03.08 C1.03.00
+C1.04.01 C1.04.10 C1.04.02 C1.04.03
+C1.04.02 C1.05.04 C1.05.05 C1.04.08 C1.04.10 C1.04.01
+C1.04.03 C1.04.10 C1.04.11 C1.04.01 C1.04.04
+C1.04.04 C1.04.11 C1.04.12 C1.04.03 C1.04.06
+C1.04.05 C1.04.12 C1.04.13 C1.04.14 C1.04.09 C1.04.07 C1.04.00
+C1.04.06 C1.04.11 C1.04.12 C1.04.04 C1.04.09
+C1.04.07 C1.04.13 C1.04.14 C1.03.14 C1.04.05 C1.03.08 C1.04.00 C1.03.00
+C1.04.08 C1.05.14 C1.04.15 C1.05.05 C1.04.10 C1.04.02
+C1.04.09 C1.04.12 C1.04.13 C1.04.06 C1.04.05
+C1.04.10 C1.05.14 C1.04.15 C1.04.16 C1.04.08 C1.04.11 C1.04.02 C1.04.01 C1.04.03
+C1.04.11 C1.04.15 C1.04.16 C1.04.17 C1.04.10 C1.04.12 C1.04.03 C1.04.04 C1.04.06
+C1.04.12 C1.04.16 C1.04.17 C1.04.18 C1.04.11 C1.04.13 C1.04.04 C1.04.06 C1.04.09 C1.04.05
+C1.04.13 C1.04.17 C1.04.18 C1.04.19 C1.04.12 C1.04.14 C1.04.09 C1.04.05 C1.04.07
+C1.04.14 C1.04.18 C1.04.19 C1.03.19 C1.04.13 C1.03.14 C1.04.05 C1.04.07 C1.03.08
+C1.04.15 C1.05.18 C1.04.20 C1.04.21 C1.05.14 C1.04.16 C1.04.08 C1.04.10 C1.04.11
+C1.04.16 C1.04.20 C1.04.21 C1.04.22 C1.04.15 C1.04.17 C1.04.10 C1.04.11 C1.04.12
+C1.04.17 C1.04.21 C1.04.22 C1.04.23 C1.04.16 C1.04.18 C1.04.11 C1.04.12 C1.04.13
+C1.04.18 C1.04.22 C1.04.23 C1.04.24 C1.04.17 C1.04.19 C1.04.12 C1.04.13 C1.04.14
+C1.04.19 C1.04.23 C1.04.24 C1.03.24 C1.04.18 C1.03.19 C1.04.13 C1.04.14 C1.03.14
+C1.04.20 C1.05.22 C1.05.25 C1.04.25 C1.05.18 C1.04.21 C1.05.14 C1.04.15 C1.04.16
+C1.04.21 C1.05.25 C1.04.25 C1.04.26 C1.04.20 C1.04.22 C1.04.15 C1.04.16 C1.04.17
+C1.04.22 C1.04.25 C1.04.26 C1.04.27 C1.04.21 C1.04.23 C1.04.16 C1.04.17 C1.04.18
+C1.04.23 C1.04.26 C1.04.27 C1.04.28 C1.04.22 C1.04.24 C1.04.17 C1.04.18 C1.04.19
+C1.04.24 C1.04.27 C1.04.28 C1.03.28 C1.04.23 C1.03.24 C1.04.18 C1.04.19 C1.03.19
+C1.04.25 C1.05.29 C1.04.29 C1.04.30 C1.05.25 C1.04.26 C1.04.20 C1.04.21 C1.04.22
+C1.04.26 C1.04.29 C1.04.30 C1.04.31 C1.04.25 C1.04.27 C1.04.21 C1.04.22 C1.04.23
+C1.04.27 C1.04.30 C1.04.31 C1.04.32 C1.04.26 C1.04.28 C1.04.22 C1.04.23 C1.04.24
+C1.04.28 C1.04.31 C1.04.32 C1.03.32 C1.04.27 C1.03.28 C1.04.23 C1.04.24 C1.03.24
+C1.04.29 C1.05.32 C1.04.33 C1.04.34 C1.05.29 C1.04.30 C1.05.25 C1.04.25 C1.04.26
+C1.04.30 C1.04.33 C1.04.34 C1.04.35 C1.04.29 C1.04.31 C1.04.25 C1.04.26 C1.04.27
+C1.04.31 C1.04.34 C1.04.35 C1.04.36 C1.04.30 C1.04.32 C1.04.26 C1.04.27 C1.04.28
+C1.04.32 C1.04.35 C1.04.36 C1.03.36 C1.04.31 C1.03.32 C1.04.27 C1.04.28 C1.03.28
+C1.04.33 C1.05.35 C1.05.38 C1.04.37 C1.05.32 C1.04.34 C1.05.29 C1.04.29 C1.04.30
+C1.04.34 C1.05.38 C1.04.37 C1.04.38 C1.04.33 C1.04.35 C1.04.29 C1.04.30 C1.04.31
+C1.04.35 C1.04.37 C1.04.38 C1.04.39 C1.04.34 C1.04.36 C1.04.30 C1.04.31 C1.04.32
+C1.04.36 C1.04.38 C1.04.39 C1.03.39 C1.04.35 C1.03.36 C1.04.31 C1.04.32 C1.03.32
+C1.04.37 C1.05.41 C1.04.40 C1.04.41 C1.05.38 C1.04.38 C1.04.33 C1.04.34 C1.04.35
+C1.04.38 C1.04.40 C1.04.41 C1.04.42 C1.04.37 C1.04.39 C1.04.34 C1.04.35 C1.04.36
+C1.04.39 C1.04.41 C1.04.42 C1.03.42 C1.04.38 C1.03.39 C1.04.35 C1.04.36 C1.03.36
+C1.04.40 C1.05.44 C1.04.43 C1.04.44 C1.05.41 C1.04.41 C1.05.38 C1.04.37 C1.04.38
+C1.04.41 C1.04.43 C1.04.44 C1.04.45 C1.04.40 C1.04.42 C1.04.37 C1.04.38 C1.04.39
+C1.04.42 C1.04.44 C1.04.45 C1.03.45 C1.04.41 C1.03.42 C1.04.38 C1.04.39 C1.03.39
+C1.04.43 C1.05.46 C1.05.48 C1.04.46 C1.05.44 C1.04.44 C1.05.41 C1.04.40 C1.04.41
+C1.04.44 C1.05.48 C1.04.46 C1.04.47 C1.04.43 C1.04.45 C1.04.40 C1.04.41 C1.04.42
+C1.04.45 C1.04.46 C1.04.47 C1.03.47 C1.04.44 C1.03.45 C1.04.41 C1.04.42 C1.03.42
+C1.04.46 C1.05.50 C1.04.48 C1.04.49 C1.05.48 C1.04.47 C1.04.43 C1.04.44 C1.04.45
+C1.04.47 C1.04.48 C1.04.49 C1.03.49 C1.04.46 C1.03.47 C1.04.44 C1.04.45 C1.03.45
+C1.04.48 C1.05.52 C1.04.50 C1.04.51 C1.04.52 C1.05.50 C1.04.49 C1.05.48 C1.04.46 C1.04.47
+C1.04.49 C1.04.51 C1.04.52 C1.04.53 C1.03.53 C1.04.48 C1.03.49 C1.04.46 C1.04.47 C1.03.47
+C1.04.50 C1.05.52 C1.04.54 C1.04.55 C1.04.51 C1.05.50 C1.04.48
+C1.04.51 C1.04.54 C1.04.55 C1.04.56 C1.04.50 C1.04.52 C1.04.48 C1.04.49
+C1.04.52 C1.04.55 C1.04.56 C1.04.57 C1.04.51 C1.04.53 C1.04.48 C1.04.49
+C1.04.53 C1.04.56 C1.04.57 C1.03.57 C1.04.52 C1.03.53 C1.04.49 C1.03.49
+C1.04.54 C1.05.54 C1.05.56 C1.04.58 C1.05.52 C1.04.55 C1.04.50 C1.04.51
+C1.04.55 C1.05.56 C1.04.58 C1.04.59 C1.04.54 C1.04.56 C1.04.50 C1.04.51 C1.04.52
+C1.04.56 C1.04.58 C1.04.59 C1.04.60 C1.04.55 C1.04.57 C1.04.51 C1.04.52 C1.04.53
+C1.04.57 C1.04.59 C1.04.60 C1.03.60 C1.04.56 C1.03.57 C1.04.52 C1.04.53 C1.03.53
+C1.04.58 C1.05.58 C1.05.60 C1.04.61 C1.05.56 C1.04.59 C1.04.54 C1.04.55 C1.04.56
+C1.04.59 C1.05.60 C1.04.61 C1.04.62 C1.04.58 C1.04.60 C1.04.55 C1.04.56 C1.04.57
+C1.04.60 C1.04.61 C1.04.62 C1.03.62 C1.04.59 C1.03.60 C1.04.56 C1.04.57 C1.03.57
+C1.04.61 C1.05.62 C1.05.60 C1.04.62 C1.04.58 C1.04.59 C1.04.60
+C1.04.62 C1.04.61 C1.03.62 C1.04.59 C1.04.60 C1.03.60
+C1.05.00 C1.05.08 C1.05.03
+C1.05.01 C1.05.10 C1.05.14 C1.05.02 C1.05.04
+C1.05.02 C1.05.07 C1.05.10 C1.05.01
+C1.05.03 C1.05.08 C1.05.12 C1.05.00 C1.05.09
+C1.05.04 C1.05.10 C1.05.14 C1.05.01 C1.05.05 C1.04.02
+C1.05.05 C1.05.14 C1.05.04 C1.04.08 C1.04.02
+C1.05.06 C1.05.09 C1.05.11
+C1.05.07 C1.05.11 C1.05.15 C1.05.10 C1.05.02
+C1.05.08 C1.06.06 C1.05.13 C1.05.17 C1.05.12 C1.05.00 C1.05.03
+C1.05.09 C1.05.12 C1.05.16 C1.05.03 C1.05.11 C1.05.06
+C1.05.10 C1.05.11 C1.05.15 C1.05.18 C1.05.07 C1.05.14 C1.05.02 C1.05.01 C1.05.04
+C1.05.11 C1.05.12 C1.05.16 C1.05.19 C1.05.09 C1.05.15 C1.05.06 C1.05.07 C1.05.10
+C1.05.12 C1.05.13 C1.05.17 C1.05.20 C1.05.08 C1.05.16 C1.05.03 C1.05.09 C1.05.11
+C1.05.13 C1.06.12 C1.06.17 C1.05.21 C1.06.06 C1.05.17 C1.05.08 C1.05.12
+C1.05.14 C1.05.15 C1.05.18 C1.04.20 C1.05.10 C1.04.15 C1.05.01 C1.05.04 C1.05.05 C1.04.08 C1.04.10
+C1.05.15 C1.05.16 C1.05.19 C1.05.22 C1.05.11 C1.05.18 C1.05.07 C1.05.10 C1.05.14
+C1.05.16 C1.05.17 C1.05.20 C1.05.23 C1.05.12 C1.05.19 C1.05.09 C1.05.11 C1.05.15
+C1.05.17 C1.06.17 C1.05.21 C1.05.24 C1.05.13 C1.05.20 C1.05.08 C1.05.12 C1.05.16
+C1.05.18 C1.05.19 C1.05.22 C1.05.25 C1.05.15 C1.04.20 C1.05.10 C1.05.14 C1.04.15
+C1.05.19 C1.05.20 C1.05.23 C1.05.26 C1.05.16 C1.05.22 C1.05.11 C1.05.15 C1.05.18
+C1.05.20 C1.05.21 C1.05.24 C1.05.27 C1.05.17 C1.05.23 C1.05.12 C1.05.16 C1.05.19
+C1.05.21 C1.06.20 C1.06.25 C1.05.28 C1.06.17 C1.05.24 C1.05.13 C1.05.17 C1.05.20
+C1.05.22 C1.05.23 C1.05.26 C1.05.29 C1.05.19 C1.05.25 C1.05.15 C1.05.18 C1.04.20
+C1.05.23 C1.05.24 C1.05.27 C1.05.30 C1.05.20 C1.05.26 C1.05.16 C1.05.19 C1.05.22
+C1.05.24 C1.06.25 C1.05.28 C1.05.31 C1.05.21 C1.05.27 C1.05.17 C1.05.20 C1.05.23
+C1.05.25 C1.05.26 C1.05.29 C1.04.29 C1.05.22 C1.04.25 C1.05.18 C1.04.20 C1.04.21
+C1.05.26 C1.05.27 C1.05.30 C1.05.32 C1.05.23 C1.05.29 C1.05.19 C1.05.22 C1.05.25
+C1.05.27 C1.05.28 C1.05.31 C1.05.33 C1.05.24 C1.05.30 C1.05.20 C1.05.23 C1.05.26
+C1.05.28 C1.06.28 C1.06.32 C1.05.34 C1.06.25 C1.05.31 C1.05.21 C1.05.24 C1.05.27
+C1.05.29 C1.05.30 C1.05.32 C1.04.33 C1.05.26 C1.04.29 C1.05.22 C1.05.25 C1.04.25
+C1.05.30 C1.05.31 C1.05.33 C1.05.35 C1.05.27 C1.05.32 C1.05.23 C1.05.26 C1.05.29
+C1.05.31 C1.06.32 C1.05.34 C1.05.36 C1.05.28 C1.05.33 C1.05.24 C1.05.27 C1.05.30
+C1.05.32 C1.05.33 C1.05.35 C1.05.38 C1.05.30 C1.04.33 C1.05.26 C1.05.29 C1.04.29
+C1.05.33 C1.05.34 C1.05.36 C1.05.39 C1.05.31 C1.05.35 C1.05.27 C1.05.30 C1.05.32
+C1.05.34 C1.06.35 C1.05.37 C1.05.40 C1.06.32 C1.05.36 C1.05.28 C1.05.31 C1.05.33
+C1.05.35 C1.05.36 C1.05.39 C1.05.41 C1.05.33 C1.05.38 C1.05.30 C1.05.32 C1.04.33
+C1.05.36 C1.05.37 C1.05.40 C1.05.42 C1.05.34 C1.05.39 C1.05.31 C1.05.33 C1.05.35
+C1.05.37 C1.06.37 C1.06.40 C1.05.43 C1.06.35 C1.05.40 C1.06.32 C1.05.34 C1.05.36
+C1.05.38 C1.05.39 C1.05.41 C1.04.40 C1.05.35 C1.04.37 C1.05.32 C1.04.33 C1.04.34
+C1.05.39 C1.05.40 C1.05.42 C1.05.44 C1.05.36 C1.05.41 C1.05.33 C1.05.35 C1.05.38
+C1.05.40 C1.06.40 C1.05.43 C1.05.45 C1.05.37 C1.05.42 C1.05.34 C1.05.36 C1.05.39
+C1.05.41 C1.05.42 C1.05.44 C1.04.43 C1.05.39 C1.04.40 C1.05.35 C1.05.38 C1.04.37
+C1.05.42 C1.05.43 C1.05.45 C1.05.46 C1.05.40 C1.05.44 C1.05.36 C1.05.39 C1.05.41
+C1.05.43 C1.06.42 C1.06.44 C1.05.47 C1.06.40 C1.05.45 C1.05.37 C1.05.40 C1.05.42
+C1.05.44 C1.05.45 C1.05.46 C1.05.48 C1.05.42 C1.04.43 C1.05.39 C1.05.41 C1.04.40
+C1.05.45 C1.06.44 C1.05.47 C1.05.49 C1.05.43 C1.05.46 C1.05.40 C1.05.42 C1.05.44
+C1.05.46 C1.05.47 C1.05.49 C1.05.50 C1.05.45 C1.05.48 C1.05.42 C1.05.44 C1.04.43
+C1.05.47 C1.06.46 C1.06.48 C1.05.51 C1.06.44 C1.05.49 C1.05.43 C1.05.45 C1.05.46
+C1.05.48 C1.05.49 C1.05.50 C1.04.48 C1.05.46 C1.04.46 C1.05.44 C1.04.43 C1.04.44
+C1.05.49 C1.06.48 C1.05.51 C1.05.52 C1.05.47 C1.05.50 C1.05.45 C1.05.46 C1.05.48
+C1.05.50 C1.05.51 C1.05.52 C1.04.50 C1.05.49 C1.04.48 C1.05.46 C1.05.48 C1.04.46
+C1.05.51 C1.06.49 C1.06.51 C1.05.53 C1.06.48 C1.05.52 C1.05.47 C1.05.49 C1.05.50
+C1.05.52 C1.06.51 C1.05.53 C1.05.54 C1.05.56 C1.05.51 C1.04.54 C1.04.50 C1.05.49 C1.05.50 C1.04.48
+C1.05.53 C1.06.51 C1.05.55 C1.05.57 C1.05.54 C1.05.51 C1.05.52
+C1.05.54 C1.05.55 C1.05.57 C1.05.58 C1.05.53 C1.05.56 C1.05.52 C1.04.54
+C1.05.55 C1.06.54 C1.06.56 C1.05.59 C1.06.51 C1.05.57 C1.05.53 C1.05.54
+C1.05.56 C1.05.57 C1.05.58 C1.05.60 C1.05.54 C1.04.58 C1.05.52 C1.04.54 C1.04.55
+C1.05.57 C1.06.56 C1.05.59 C1.05.61 C1.05.55 C1.05.58 C1.05.53 C1.05.54 C1.05.56
+C1.05.58 C1.05.59 C1.05.61 C1.05.62 C1.05.57 C1.05.60 C1.05.54 C1.05.56 C1.04.58
+C1.05.59 C1.06.61 C1.06.58 C1.06.60 C1.06.56 C1.05.61 C1.05.55 C1.05.57 C1.05.58
+C1.05.60 C1.05.61 C1.05.62 C1.05.58 C1.04.61 C1.05.56 C1.04.58 C1.04.59
+C1.05.61 C1.06.61 C1.06.60 C1.05.59 C1.05.62 C1.05.57 C1.05.58 C1.05.60
+C1.05.62 C1.05.61 C1.05.58 C1.05.60 C1.04.61
+C1.06.00 C1.06.04 C1.06.08 C1.06.12 C1.06.06
+C1.06.01 C1.06.05 C1.06.11 C1.06.03
+C1.06.02 C1.07.08 C1.06.13 C1.06.05
+C1.06.03 C1.06.11 C1.06.01 C1.06.09 C1.06.07
+C1.06.04 C1.06.10 C1.06.08 C1.06.00
+C1.06.05 C1.06.13 C1.06.02 C1.06.11 C1.06.01
+C1.06.06 C1.06.12 C1.06.17 C1.06.00 C1.05.13 C1.05.08
+C1.06.07 C1.06.03 C1.06.09 C1.06.14 C1.06.10
+C1.06.08 C1.06.10 C1.06.15 C1.06.04 C1.06.12 C1.06.00
+C1.06.09 C1.06.11 C1.06.16 C1.06.03 C1.06.14 C1.06.07
+C1.06.10 C1.06.14 C1.06.18 C1.06.07 C1.06.15 C1.06.04 C1.06.08 C1.06.12
+C1.06.11 C1.06.13 C1.06.19 C1.06.05 C1.06.16 C1.06.01 C1.06.03 C1.06.09 C1.06.14
+C1.06.12 C1.06.10 C1.06.15 C1.06.20 C1.06.08 C1.06.17 C1.06.00 C1.06.06 C1.05.13
+C1.06.13 C1.07.07 C1.07.17 C1.06.21 C1.07.08 C1.06.19 C1.06.02 C1.06.05 C1.06.11 C1.06.16
+C1.06.14 C1.06.11 C1.06.16 C1.06.22 C1.06.09 C1.06.18 C1.06.07 C1.06.10 C1.06.15
+C1.06.15 C1.06.14 C1.06.18 C1.06.23 C1.06.10 C1.06.20 C1.06.08 C1.06.12 C1.06.17
+C1.06.16 C1.06.13 C1.06.19 C1.06.24 C1.06.11 C1.06.22 C1.06.09 C1.06.14 C1.06.18
+C1.06.17 C1.06.15 C1.06.20 C1.06.25 C1.06.12 C1.05.21 C1.06.06 C1.05.13 C1.05.17
+C1.06.18 C1.06.16 C1.06.22 C1.06.27 C1.06.14 C1.06.23 C1.06.10 C1.06.15 C1.06.20
+C1.06.19 C1.07.17 C1.06.21 C1.06.26 C1.06.13 C1.06.24 C1.06.11 C1.06.16 C1.06.22
+C1.06.20 C1.06.18 C1.06.23 C1.06.28 C1.06.15 C1.06.25 C1.06.12 C1.06.17 C1.05.21
+C1.06.21 C1.07.18 C1.07.23 C1.07.28 C1.07.17 C1.06.26 C1.06.13 C1.06.19 C1.06.24
+C1.06.22 C1.06.19 C1.06.24 C1.06.29 C1.06.16 C1.06.27 C1.06.14 C1.06.18 C1.06.23
+C1.06.23 C1.06.22 C1.06.27 C1.06.30 C1.06.18 C1.06.28 C1.06.15 C1.06.20 C1.06.25
+C1.06.24 C1.06.21 C1.06.26 C1.06.31 C1.06.19 C1.06.29 C1.06.16 C1.06.22 C1.06.27
+C1.06.25 C1.06.23 C1.06.28 C1.06.32 C1.06.20 C1.05.28 C1.06.17 C1.05.21 C1.05.24
+C1.06.26 C1.07.23 C1.07.28 C1.06.33 C1.06.21 C1.06.31 C1.06.19 C1.06.24 C1.06.29
+C1.06.27 C1.06.24 C1.06.29 C1.06.34 C1.06.22 C1.06.30 C1.06.18 C1.06.23 C1.06.28
+C1.06.28 C1.06.27 C1.06.30 C1.06.35 C1.06.23 C1.06.32 C1.06.20 C1.06.25 C1.05.28
+C1.06.29 C1.06.26 C1.06.31 C1.06.36 C1.06.24 C1.06.34 C1.06.22 C1.06.27 C1.06.30
+C1.06.30 C1.06.29 C1.06.34 C1.06.37 C1.06.27 C1.06.35 C1.06.23 C1.06.28 C1.06.32
+C1.06.31 C1.07.28 C1.06.33 C1.06.38 C1.06.26 C1.06.36 C1.06.24 C1.06.29 C1.06.34
+C1.06.32 C1.06.30 C1.06.35 C1.05.37 C1.06.28 C1.05.34 C1.06.25 C1.05.28 C1.05.31
+C1.06.33 C1.07.29 C1.07.33 C1.07.37 C1.07.28 C1.06.38 C1.06.26 C1.06.31 C1.06.36
+C1.06.34 C1.06.31 C1.06.36 C1.06.39 C1.06.29 C1.06.37 C1.06.27 C1.06.30 C1.06.35
+C1.06.35 C1.06.34 C1.06.37 C1.06.40 C1.06.30 C1.05.37 C1.06.28 C1.06.32 C1.05.34
+C1.06.36 C1.06.33 C1.06.38 C1.06.41 C1.06.31 C1.06.39 C1.06.29 C1.06.34 C1.06.37
+C1.06.37 C1.06.36 C1.06.39 C1.06.42 C1.06.34 C1.06.40 C1.06.30 C1.06.35 C1.05.37
+C1.06.38 C1.07.33 C1.07.37 C1.07.41 C1.06.33 C1.06.41 C1.06.31 C1.06.36 C1.06.39
+C1.06.39 C1.06.38 C1.06.41 C1.06.43 C1.06.36 C1.06.42 C1.06.34 C1.06.37 C1.06.40
+C1.06.40 C1.06.39 C1.06.42 C1.06.44 C1.06.37 C1.05.43 C1.06.35 C1.05.37 C1.05.40
+C1.06.41 C1.07.37 C1.07.41 C1.06.45 C1.06.38 C1.06.43 C1.06.36 C1.06.39 C1.06.42
+C1.06.42 C1.06.41 C1.06.43 C1.06.46 C1.06.39 C1.06.44 C1.06.37 C1.06.40 C1.05.43
+C1.06.43 C1.07.41 C1.06.45 C1.06.47 C1.06.41 C1.06.46 C1.06.39 C1.06.42 C1.06.44
+C1.06.44 C1.06.43 C1.06.46 C1.06.48 C1.06.42 C1.05.47 C1.06.40 C1.05.43 C1.05.45
+C1.06.45 C1.07.42 C1.07.45 C1.07.48 C1.07.41 C1.06.47 C1.06.41 C1.06.43 C1.06.46
+C1.06.46 C1.06.45 C1.06.47 C1.06.49 C1.06.43 C1.06.48 C1.06.42 C1.06.44 C1.05.47
+C1.06.47 C1.07.45 C1.07.48 C1.06.50 C1.06.45 C1.06.49 C1.06.43 C1.06.46 C1.06.48
+C1.06.48 C1.06.47 C1.06.49 C1.06.51 C1.06.46 C1.05.51 C1.06.44 C1.05.47 C1.05.49
+C1.06.49 C1.07.48 C1.06.50 C1.06.52 C1.06.47 C1.06.51 C1.06.46 C1.06.48 C1.05.51
+C1.06.50 C1.07.49 C1.07.51 C1.07.53 C1.07.48 C1.06.53 C1.06.52 C1.06.47 C1.06.49 C1.06.51
+C1.06.51 C1.06.50 C1.06.52 C1.06.54 C1.06.56 C1.06.49 C1.05.55 C1.05.53 C1.06.48 C1.05.51 C1.05.52
+C1.06.52 C1.06.50 C1.06.53 C1.06.55 C1.06.54 C1.06.49 C1.06.51
+C1.06.53 C1.07.51 C1.07.53 C1.06.57 C1.06.50 C1.06.55 C1.06.52 C1.06.54
+C1.06.54 C1.06.53 C1.06.55 C1.06.58 C1.06.52 C1.06.56 C1.06.51 C1.05.55
+C1.06.55 C1.07.53 C1.06.57 C1.06.59 C1.06.53 C1.06.58 C1.06.52 C1.06.54 C1.06.56
+C1.06.56 C1.06.55 C1.06.58 C1.06.60 C1.06.54 C1.05.59 C1.06.51 C1.05.55 C1.05.57
+C1.06.57 C1.07.54 C1.07.57 C1.07.60 C1.07.53 C1.06.59 C1.06.53 C1.06.55 C1.06.58
+C1.06.58 C1.06.57 C1.06.59 C1.06.61 C1.06.55 C1.06.60 C1.06.54 C1.06.56 C1.05.59
+C1.06.59 C1.07.57 C1.07.60 C1.06.62 C1.06.57 C1.06.61 C1.06.55 C1.06.58 C1.06.60
+C1.06.60 C1.06.59 C1.06.61 C1.06.58 C1.06.56 C1.05.59 C1.05.61
+C1.06.61 C1.06.62 C1.06.59 C1.06.58 C1.06.60 C1.05.59 C1.05.61
+C1.06.62 C1.07.61 C1.07.60 C1.06.59 C1.06.61
+C1.07.00 C1.07.12 C1.07.07
+C1.07.01 C1.08.02 C1.08.12 C1.07.11 C1.07.10 C1.07.02
+C1.07.02 C1.07.01 C1.07.10 C1.07.09 C1.07.06 C1.07.03
+C1.07.03 C1.07.02 C1.07.15 C1.07.06 C1.07.14 C1.07.05
+C1.07.04 C1.07.14 C1.07.05 C1.07.13 C1.07.12
+C1.07.05 C1.07.03 C1.07.14 C1.07.04 C1.07.13
+C1.07.06 C1.07.02 C1.07.09 C1.07.15 C1.07.03 C1.07.14
+C1.07.07 C1.07.12 C1.07.18 C1.07.00 C1.07.17 C1.07.08 C1.06.13
+C1.07.08 C1.07.07 C1.07.17 C1.06.13 C1.06.02
+C1.07.09 C1.07.16 C1.07.10 C1.07.02 C1.07.15 C1.07.06
+C1.07.10 C1.07.01 C1.07.11 C1.07.16 C1.07.02 C1.07.09 C1.07.15
+C1.07.11 C1.08.17 C1.08.02 C1.08.12 C1.07.01 C1.07.16 C1.07.10
+C1.07.12 C1.07.04 C1.07.13 C1.07.19 C1.07.18 C1.07.00 C1.07.07 C1.07.17
+C1.07.13 C1.07.14 C1.07.20 C1.07.05 C1.07.04 C1.07.19 C1.07.12 C1.07.18
+C1.07.14 C1.07.15 C1.07.21 C1.07.06 C1.07.03 C1.07.20 C1.07.05 C1.07.04 C1.07.13 C1.07.19
+C1.07.15 C1.07.16 C1.07.22 C1.07.10 C1.07.09 C1.07.21 C1.07.06 C1.07.03 C1.07.14 C1.07.20
+C1.07.16 C1.08.17 C1.08.23 C1.08.12 C1.07.11 C1.07.22 C1.07.10 C1.07.09 C1.07.15 C1.07.21
+C1.07.17 C1.07.12 C1.07.18 C1.07.23 C1.07.07 C1.06.21 C1.07.08 C1.06.13 C1.06.19
+C1.07.18 C1.07.13 C1.07.19 C1.07.24 C1.07.12 C1.07.23 C1.07.07 C1.07.17 C1.06.21
+C1.07.19 C1.07.14 C1.07.20 C1.07.25 C1.07.13 C1.07.24 C1.07.12 C1.07.18 C1.07.23
+C1.07.20 C1.07.15 C1.07.21 C1.07.26 C1.07.14 C1.07.25 C1.07.13 C1.07.19 C1.07.24
+C1.07.21 C1.07.16 C1.07.22 C1.07.27 C1.07.15 C1.07.26 C1.07.14 C1.07.20 C1.07.25
+C1.07.22 C1.08.17 C1.08.23 C1.08.28 C1.07.16 C1.07.27 C1.07.15 C1.07.21 C1.07.26
+C1.07.23 C1.07.19 C1.07.24 C1.07.29 C1.07.18 C1.07.28 C1.07.17 C1.06.21 C1.06.26
+C1.07.24 C1.07.20 C1.07.25 C1.07.30 C1.07.19 C1.07.29 C1.07.18 C1.07.23 C1.07.28
+C1.07.25 C1.07.21 C1.07.26 C1.07.31 C1.07.20 C1.07.30 C1.07.19 C1.07.24 C1.07.29
+C1.07.26 C1.07.22 C1.07.27 C1.07.32 C1.07.21 C1.07.31 C1.07.20 C1.07.25 C1.07.30
+C1.07.27 C1.08.23 C1.08.28 C1.08.33 C1.07.22 C1.07.32 C1.07.21 C1.07.26 C1.07.31
+C1.07.28 C1.07.24 C1.07.29 C1.07.33 C1.07.23 C1.06.33 C1.06.21 C1.06.26 C1.06.31
+C1.07.29 C1.07.25 C1.07.30 C1.07.34 C1.07.24 C1.07.33 C1.07.23 C1.07.28 C1.06.33
+C1.07.30 C1.07.26 C1.07.31 C1.07.35 C1.07.25 C1.07.34 C1.07.24 C1.07.29 C1.07.33
+C1.07.31 C1.07.27 C1.07.32 C1.07.36 C1.07.26 C1.07.35 C1.07.25 C1.07.30 C1.07.34
+C1.07.32 C1.08.28 C1.08.33 C1.08.37 C1.07.27 C1.07.36 C1.07.26 C1.07.31 C1.07.35
+C1.07.33 C1.07.30 C1.07.34 C1.07.38 C1.07.29 C1.07.37 C1.07.28 C1.06.33 C1.06.38
+C1.07.34 C1.07.31 C1.07.35 C1.07.39 C1.07.30 C1.07.38 C1.07.29 C1.07.33 C1.07.37
+C1.07.35 C1.07.32 C1.07.36 C1.07.40 C1.07.31 C1.07.39 C1.07.30 C1.07.34 C1.07.38
+C1.07.36 C1.08.33 C1.08.37 C1.08.41 C1.07.32 C1.07.40 C1.07.31 C1.07.35 C1.07.39
+C1.07.37 C1.07.34 C1.07.38 C1.07.42 C1.07.33 C1.07.41 C1.06.33 C1.06.38 C1.06.41
+C1.07.38 C1.07.35 C1.07.39 C1.07.43 C1.07.34 C1.07.42 C1.07.33 C1.07.37 C1.07.41
+C1.07.39 C1.07.36 C1.07.40 C1.07.44 C1.07.35 C1.07.43 C1.07.34 C1.07.38 C1.07.42
+C1.07.40 C1.08.37 C1.08.41 C1.08.45 C1.07.36 C1.07.44 C1.07.35 C1.07.39 C1.07.43
+C1.07.41 C1.07.38 C1.07.42 C1.07.45 C1.07.37 C1.06.45 C1.06.38 C1.06.41 C1.06.43
+C1.07.42 C1.07.39 C1.07.43 C1.07.46 C1.07.38 C1.07.45 C1.07.37 C1.07.41 C1.06.45
+C1.07.43 C1.07.40 C1.07.44 C1.07.47 C1.07.39 C1.07.46 C1.07.38 C1.07.42 C1.07.45
+C1.07.44 C1.08.41 C1.08.45 C1.08.48 C1.07.40 C1.07.47 C1.07.39 C1.07.43 C1.07.46
+C1.07.45 C1.07.43 C1.07.46 C1.07.49 C1.07.42 C1.07.48 C1.07.41 C1.06.45 C1.06.47
+C1.07.46 C1.07.44 C1.07.47 C1.07.50 C1.07.43 C1.07.49 C1.07.42 C1.07.45 C1.07.48
+C1.07.47 C1.08.45 C1.08.48 C1.08.51 C1.07.44 C1.07.50 C1.07.43 C1.07.46 C1.07.49
+C1.07.48 C1.07.46 C1.07.49 C1.07.51 C1.07.45 C1.06.50 C1.06.45 C1.06.47 C1.06.49
+C1.07.49 C1.07.47 C1.07.50 C1.07.52 C1.07.46 C1.07.51 C1.07.45 C1.07.48 C1.06.50
+C1.07.50 C1.08.48 C1.08.51 C1.08.53 C1.07.47 C1.07.52 C1.07.46 C1.07.49 C1.07.51
+C1.07.51 C1.07.50 C1.07.52 C1.07.55 C1.07.49 C1.07.54 C1.07.53 C1.07.48 C1.06.50 C1.06.53
+C1.07.52 C1.08.51 C1.08.53 C1.08.56 C1.07.50 C1.07.56 C1.07.55 C1.07.49 C1.07.51 C1.07.54
+C1.07.53 C1.07.51 C1.07.54 C1.07.57 C1.06.57 C1.06.50 C1.06.53 C1.06.55
+C1.07.54 C1.07.52 C1.07.55 C1.07.58 C1.07.51 C1.07.57 C1.07.53 C1.06.57
+C1.07.55 C1.07.52 C1.07.56 C1.07.59 C1.07.58 C1.07.51 C1.07.54 C1.07.57
+C1.07.56 C1.08.53 C1.08.56 C1.08.59 C1.07.52 C1.07.59 C1.07.55 C1.07.58
+C1.07.57 C1.07.55 C1.07.58 C1.07.61 C1.07.54 C1.07.60 C1.07.53 C1.06.57 C1.06.59
+C1.07.58 C1.07.56 C1.07.59 C1.07.62 C1.07.55 C1.07.61 C1.07.54 C1.07.57 C1.07.60
+C1.07.59 C1.08.56 C1.08.59 C1.08.62 C1.07.56 C1.07.62 C1.07.55 C1.07.58 C1.07.61
+C1.07.60 C1.07.58 C1.07.61 C1.07.57 C1.06.62 C1.06.57 C1.06.59
+C1.07.61 C1.07.59 C1.07.62 C1.07.58 C1.07.57 C1.07.60 C1.06.62
+C1.07.62 C1.08.59 C1.08.62 C1.07.59 C1.07.58 C1.07.61
+C1.08.00 C1.09.05 C1.08.08 C1.08.07
+C1.08.01 C1.08.04 C1.08.06 C1.08.10 C1.08.11 C1.08.02
+C1.08.02 C1.08.01 C1.08.11 C1.08.12 C1.07.01 C1.07.11
+C1.08.03 C1.08.07 C1.08.13 C1.08.14
+C1.08.04 C1.08.05 C1.08.09 C1.08.06 C1.08.01
+C1.08.05 C1.08.14 C1.08.15 C1.08.04 C1.08.09
+C1.08.06 C1.08.15 C1.08.04 C1.08.09 C1.08.16 C1.08.01 C1.08.10
+C1.08.07 C1.09.13 C1.08.00 C1.08.08 C1.08.18 C1.08.03 C1.08.13 C1.08.19
+C1.08.08 C1.09.05 C1.09.13 C1.08.00 C1.08.07 C1.08.18
+C1.08.09 C1.08.05 C1.08.15 C1.08.04 C1.08.06 C1.08.16
+C1.08.10 C1.08.06 C1.08.16 C1.08.01 C1.08.11 C1.08.17
+C1.08.11 C1.08.16 C1.08.01 C1.08.10 C1.08.17 C1.08.02 C1.08.12
+C1.08.12 C1.08.11 C1.08.17 C1.08.02 C1.07.01 C1.07.11 C1.07.16
+C1.08.13 C1.08.07 C1.08.18 C1.08.03 C1.08.19 C1.08.14 C1.08.20
+C1.08.14 C1.08.03 C1.08.13 C1.08.19 C1.08.20 C1.08.05 C1.08.15 C1.08.21
+C1.08.15 C1.08.14 C1.08.20 C1.08.05 C1.08.21 C1.08.09 C1.08.06 C1.08.16 C1.08.22
+C1.08.16 C1.08.15 C1.08.21 C1.08.09 C1.08.06 C1.08.22 C1.08.10 C1.08.11 C1.08.17 C1.08.23
+C1.08.17 C1.08.16 C1.08.22 C1.08.10 C1.08.11 C1.08.23 C1.08.12 C1.07.11 C1.07.16 C1.07.22
+C1.08.18 C1.09.13 C1.09.19 C1.08.08 C1.08.07 C1.09.21 C1.08.13 C1.08.19 C1.08.24
+C1.08.19 C1.08.07 C1.08.18 C1.09.21 C1.08.13 C1.08.24 C1.08.14 C1.08.20 C1.08.25
+C1.08.20 C1.08.13 C1.08.19 C1.08.24 C1.08.14 C1.08.25 C1.08.15 C1.08.21 C1.08.26
+C1.08.21 C1.08.14 C1.08.20 C1.08.25 C1.08.15 C1.08.26 C1.08.16 C1.08.22 C1.08.27
+C1.08.22 C1.08.15 C1.08.21 C1.08.26 C1.08.16 C1.08.27 C1.08.17 C1.08.23 C1.08.28
+C1.08.23 C1.08.16 C1.08.22 C1.08.27 C1.08.17 C1.08.28 C1.07.16 C1.07.22 C1.07.27
+C1.08.24 C1.08.18 C1.09.21 C1.09.26 C1.08.19 C1.08.29 C1.08.20 C1.08.25 C1.08.30
+C1.08.25 C1.08.19 C1.08.24 C1.08.29 C1.08.20 C1.08.30 C1.08.21 C1.08.26 C1.08.31
+C1.08.26 C1.08.20 C1.08.25 C1.08.30 C1.08.21 C1.08.31 C1.08.22 C1.08.27 C1.08.32
+C1.08.27 C1.08.21 C1.08.26 C1.08.31 C1.08.22 C1.08.32 C1.08.23 C1.08.28 C1.08.33
+C1.08.28 C1.08.22 C1.08.27 C1.08.32 C1.08.23 C1.08.33 C1.07.22 C1.07.27 C1.07.32
+C1.08.29 C1.09.21 C1.09.26 C1.09.31 C1.08.24 C1.09.33 C1.08.25 C1.08.30 C1.08.34
+C1.08.30 C1.08.24 C1.08.29 C1.09.33 C1.08.25 C1.08.34 C1.08.26 C1.08.31 C1.08.35
+C1.08.31 C1.08.25 C1.08.30 C1.08.34 C1.08.26 C1.08.35 C1.08.27 C1.08.32 C1.08.36
+C1.08.32 C1.08.26 C1.08.31 C1.08.35 C1.08.27 C1.08.36 C1.08.28 C1.08.33 C1.08.37
+C1.08.33 C1.08.27 C1.08.32 C1.08.36 C1.08.28 C1.08.37 C1.07.27 C1.07.32 C1.07.36
+C1.08.34 C1.08.29 C1.09.33 C1.09.38 C1.08.30 C1.08.38 C1.08.31 C1.08.35 C1.08.39
+C1.08.35 C1.08.30 C1.08.34 C1.08.38 C1.08.31 C1.08.39 C1.08.32 C1.08.36 C1.08.40
+C1.08.36 C1.08.31 C1.08.35 C1.08.39 C1.08.32 C1.08.40 C1.08.33 C1.08.37 C1.08.41
+C1.08.37 C1.08.32 C1.08.36 C1.08.40 C1.08.33 C1.08.41 C1.07.32 C1.07.36 C1.07.40
+C1.08.38 C1.09.33 C1.09.38 C1.09.41 C1.08.34 C1.08.42 C1.08.35 C1.08.39 C1.08.43
+C1.08.39 C1.08.34 C1.08.38 C1.08.42 C1.08.35 C1.08.43 C1.08.36 C1.08.40 C1.08.44
+C1.08.40 C1.08.35 C1.08.39 C1.08.43 C1.08.36 C1.08.44 C1.08.37 C1.08.41 C1.08.45
+C1.08.41 C1.08.36 C1.08.40 C1.08.44 C1.08.37 C1.08.45 C1.07.36 C1.07.40 C1.07.44
+C1.08.42 C1.09.38 C1.09.41 C1.09.43 C1.08.38 C1.09.45 C1.08.39 C1.08.43 C1.08.46
+C1.08.43 C1.08.38 C1.08.42 C1.09.45 C1.08.39 C1.08.46 C1.08.40 C1.08.44 C1.08.47
+C1.08.44 C1.08.39 C1.08.43 C1.08.46 C1.08.40 C1.08.47 C1.08.41 C1.08.45 C1.08.48
+C1.08.45 C1.08.40 C1.08.44 C1.08.47 C1.08.41 C1.08.48 C1.07.40 C1.07.44 C1.07.47
+C1.08.46 C1.08.42 C1.09.45 C1.09.47 C1.08.43 C1.08.49 C1.08.44 C1.08.47 C1.08.50
+C1.08.47 C1.08.43 C1.08.46 C1.08.49 C1.08.44 C1.08.50 C1.08.45 C1.08.48 C1.08.51
+C1.08.48 C1.08.44 C1.08.47 C1.08.50 C1.08.45 C1.08.51 C1.07.44 C1.07.47 C1.07.50
+C1.08.49 C1.09.45 C1.09.47 C1.09.49 C1.08.46 C1.09.50 C1.08.47 C1.08.50 C1.08.52
+C1.08.50 C1.08.46 C1.08.49 C1.09.50 C1.08.47 C1.08.52 C1.08.48 C1.08.51 C1.08.53
+C1.08.51 C1.08.47 C1.08.50 C1.08.52 C1.08.48 C1.08.53 C1.07.47 C1.07.50 C1.07.52
+C1.08.52 C1.08.49 C1.09.50 C1.09.53 C1.08.50 C1.09.54 C1.08.54 C1.08.51 C1.08.53 C1.08.55
+C1.08.53 C1.08.50 C1.08.52 C1.08.54 C1.08.51 C1.08.55 C1.08.56 C1.07.50 C1.07.52 C1.07.56
+C1.08.54 C1.08.52 C1.09.54 C1.09.58 C1.08.57 C1.08.53 C1.08.55 C1.08.58
+C1.08.55 C1.08.52 C1.08.54 C1.08.57 C1.08.53 C1.08.58 C1.08.56 C1.08.59
+C1.08.56 C1.08.53 C1.08.55 C1.08.58 C1.08.59 C1.07.52 C1.07.56 C1.07.59
+C1.08.57 C1.09.54 C1.09.58 C1.09.60 C1.08.54 C1.08.60 C1.08.55 C1.08.58 C1.08.61
+C1.08.58 C1.08.54 C1.08.57 C1.08.60 C1.08.55 C1.08.61 C1.08.56 C1.08.59 C1.08.62
+C1.08.59 C1.08.55 C1.08.58 C1.08.61 C1.08.56 C1.08.62 C1.07.56 C1.07.59 C1.07.62
+C1.08.60 C1.09.58 C1.09.60 C1.09.62 C1.08.57 C1.08.58 C1.08.61
+C1.08.61 C1.08.57 C1.08.60 C1.08.58 C1.08.59 C1.08.62
+C1.08.62 C1.08.58 C1.08.61 C1.08.59 C1.07.59 C1.07.62
+C1.09.00 C1.09.03 C1.09.11 C1.09.02
+C1.09.01 C1.09.06 C1.09.12 C1.09.08 C1.09.04
+C1.09.02 C1.09.00 C1.09.11 C1.09.05 C1.09.13
+C1.09.03 C1.09.07 C1.09.09 C1.09.00 C1.09.11
+C1.09.04 C1.09.01 C1.09.08 C1.09.10
+C1.09.05 C1.09.11 C1.09.02 C1.09.13 C1.08.00 C1.08.08
+C1.09.06 C1.10.06 C1.10.12 C1.09.01 C1.09.12 C1.09.17
+C1.09.07 C1.09.10 C1.09.14 C1.09.03 C1.09.09
+C1.09.08 C1.09.01 C1.09.12 C1.09.04 C1.09.10 C1.09.15
+C1.09.09 C1.09.07 C1.09.14 C1.09.03 C1.09.11 C1.09.16
+C1.09.10 C1.09.12 C1.09.08 C1.09.04 C1.09.15 C1.09.07 C1.09.14 C1.09.18
+C1.09.11 C1.09.14 C1.09.03 C1.09.09 C1.09.00 C1.09.16 C1.09.02 C1.09.05 C1.09.13 C1.09.19
+C1.09.12 C1.09.06 C1.10.12 C1.09.01 C1.09.17 C1.09.08 C1.09.10 C1.09.15 C1.09.20
+C1.09.13 C1.09.11 C1.09.16 C1.09.02 C1.09.05 C1.09.19 C1.08.08 C1.08.07 C1.08.18 C1.09.21
+C1.09.14 C1.09.10 C1.09.15 C1.09.07 C1.09.18 C1.09.09 C1.09.11 C1.09.16 C1.09.22
+C1.09.15 C1.09.12 C1.09.17 C1.09.08 C1.09.10 C1.09.20 C1.09.14 C1.09.18 C1.09.23
+C1.09.16 C1.09.14 C1.09.18 C1.09.09 C1.09.11 C1.09.22 C1.09.13 C1.09.19 C1.09.24
+C1.09.17 C1.09.06 C1.10.12 C1.10.16 C1.09.12 C1.10.20 C1.09.15 C1.09.20 C1.09.25
+C1.09.18 C1.09.10 C1.09.15 C1.09.20 C1.09.14 C1.09.23 C1.09.16 C1.09.22 C1.09.27
+C1.09.19 C1.09.11 C1.09.16 C1.09.22 C1.09.13 C1.09.24 C1.08.18 C1.09.21 C1.09.26
+C1.09.20 C1.09.12 C1.09.17 C1.10.20 C1.09.15 C1.09.25 C1.09.18 C1.09.23 C1.09.28
+C1.09.21 C1.09.13 C1.09.19 C1.09.24 C1.08.18 C1.09.26 C1.08.19 C1.08.24 C1.08.29
+C1.09.22 C1.09.14 C1.09.18 C1.09.23 C1.09.16 C1.09.27 C1.09.19 C1.09.24 C1.09.29
+C1.09.23 C1.09.15 C1.09.20 C1.09.25 C1.09.18 C1.09.28 C1.09.22 C1.09.27 C1.09.30
+C1.09.24 C1.09.16 C1.09.22 C1.09.27 C1.09.19 C1.09.29 C1.09.21 C1.09.26 C1.09.31
+C1.09.25 C1.09.17 C1.10.20 C1.10.23 C1.09.20 C1.10.27 C1.09.23 C1.09.28 C1.09.32
+C1.09.26 C1.09.19 C1.09.24 C1.09.29 C1.09.21 C1.09.31 C1.08.24 C1.08.29 C1.09.33
+C1.09.27 C1.09.18 C1.09.23 C1.09.28 C1.09.22 C1.09.30 C1.09.24 C1.09.29 C1.09.34
+C1.09.28 C1.09.20 C1.09.25 C1.10.27 C1.09.23 C1.09.32 C1.09.27 C1.09.30 C1.09.35
+C1.09.29 C1.09.22 C1.09.27 C1.09.30 C1.09.24 C1.09.34 C1.09.26 C1.09.31 C1.09.36
+C1.09.30 C1.09.23 C1.09.28 C1.09.32 C1.09.27 C1.09.35 C1.09.29 C1.09.34 C1.09.37
+C1.09.31 C1.09.24 C1.09.29 C1.09.34 C1.09.26 C1.09.36 C1.08.29 C1.09.33 C1.09.38
+C1.09.32 C1.09.25 C1.10.27 C1.10.30 C1.09.28 C1.10.33 C1.09.30 C1.09.35 C1.10.35
+C1.09.33 C1.09.26 C1.09.31 C1.09.36 C1.08.29 C1.09.38 C1.08.30 C1.08.34 C1.08.38
+C1.09.34 C1.09.27 C1.09.30 C1.09.35 C1.09.29 C1.09.37 C1.09.31 C1.09.36 C1.09.39
+C1.09.35 C1.09.28 C1.09.32 C1.10.33 C1.09.30 C1.10.35 C1.09.34 C1.09.37 C1.09.40
+C1.09.36 C1.09.29 C1.09.34 C1.09.37 C1.09.31 C1.09.39 C1.09.33 C1.09.38 C1.09.41
+C1.09.37 C1.09.30 C1.09.35 C1.10.35 C1.09.34 C1.09.40 C1.09.36 C1.09.39 C1.09.42
+C1.09.38 C1.09.31 C1.09.36 C1.09.39 C1.09.33 C1.09.41 C1.08.34 C1.08.38 C1.08.42
+C1.09.39 C1.09.34 C1.09.37 C1.09.40 C1.09.36 C1.09.42 C1.09.38 C1.09.41 C1.09.43
+C1.09.40 C1.09.35 C1.10.35 C1.10.39 C1.09.37 C1.10.42 C1.09.39 C1.09.42 C1.09.44
+C1.09.41 C1.09.36 C1.09.39 C1.09.42 C1.09.38 C1.09.43 C1.08.38 C1.08.42 C1.09.45
+C1.09.42 C1.09.37 C1.09.40 C1.10.42 C1.09.39 C1.09.44 C1.09.41 C1.09.43 C1.09.46
+C1.09.43 C1.09.39 C1.09.42 C1.09.44 C1.09.41 C1.09.46 C1.08.42 C1.09.45 C1.09.47
+C1.09.44 C1.09.40 C1.10.42 C1.10.44 C1.09.42 C1.10.46 C1.09.43 C1.09.46 C1.09.48
+C1.09.45 C1.09.41 C1.09.43 C1.09.46 C1.08.42 C1.09.47 C1.08.43 C1.08.46 C1.08.49
+C1.09.46 C1.09.42 C1.09.44 C1.10.46 C1.09.43 C1.09.48 C1.09.45 C1.09.47 C1.09.49
+C1.09.47 C1.09.43 C1.09.46 C1.09.48 C1.09.45 C1.09.49 C1.08.46 C1.08.49 C1.09.50
+C1.09.48 C1.09.44 C1.10.46 C1.10.48 C1.09.46 C1.10.50 C1.09.47 C1.09.49 C1.09.51
+C1.09.49 C1.09.46 C1.09.48 C1.10.50 C1.09.47 C1.09.51 C1.08.49 C1.09.50 C1.09.52
+C1.09.50 C1.09.47 C1.09.49 C1.09.51 C1.08.49 C1.09.52 C1.09.53 C1.08.50 C1.08.52 C1.09.54
+C1.09.51 C1.09.48 C1.10.50 C1.10.51 C1.09.49 C1.10.52 C1.10.54 C1.09.50 C1.09.52 C1.09.55 C1.09.57
+C1.09.52 C1.09.49 C1.09.51 C1.09.50 C1.09.55 C1.09.53 C1.09.56
+C1.09.53 C1.09.50 C1.09.52 C1.09.55 C1.09.56 C1.08.52 C1.09.54 C1.09.58
+C1.09.54 C1.09.50 C1.09.53 C1.09.56 C1.08.52 C1.09.58 C1.08.54 C1.08.57
+C1.09.55 C1.09.51 C1.10.54 C1.09.52 C1.09.57 C1.09.53 C1.09.56 C1.09.59
+C1.09.56 C1.09.52 C1.09.55 C1.09.57 C1.09.53 C1.09.59 C1.09.54 C1.09.58 C1.09.60
+C1.09.57 C1.09.51 C1.10.54 C1.10.56 C1.09.55 C1.10.58 C1.09.56 C1.09.59 C1.09.61
+C1.09.58 C1.09.53 C1.09.56 C1.09.59 C1.09.54 C1.09.60 C1.08.54 C1.08.57 C1.08.60
+C1.09.59 C1.09.55 C1.09.57 C1.10.58 C1.09.56 C1.09.61 C1.09.58 C1.09.60 C1.09.62
+C1.09.60 C1.09.56 C1.09.59 C1.09.61 C1.09.58 C1.09.62 C1.08.57 C1.08.60
+C1.09.61 C1.09.57 C1.10.58 C1.10.60 C1.10.61 C1.09.59 C1.09.60 C1.09.62
+C1.09.62 C1.10.61 C1.09.59 C1.09.61 C1.09.60 C1.08.60
+C1.10.00 C1.10.02 C1.10.09 C1.10.05
+C1.10.01 C1.10.03 C1.10.06 C1.10.11
+C1.10.02 C1.11.04 C1.10.00 C1.10.09 C1.10.13
+C1.10.03 C1.10.07 C1.10.08 C1.10.01 C1.10.06 C1.10.11
+C1.10.04 C1.10.05 C1.10.07 C1.10.10
+C1.10.05 C1.10.00 C1.10.09 C1.10.04 C1.10.10 C1.10.14
+C1.10.06 C1.10.03 C1.10.01 C1.10.11 C1.09.06 C1.10.12 C1.10.16
+C1.10.07 C1.10.04 C1.10.10 C1.10.03 C1.10.08
+C1.10.08 C1.10.07 C1.10.10 C1.10.03 C1.10.11 C1.10.15
+C1.10.09 C1.11.04 C1.10.02 C1.10.00 C1.10.13 C1.10.05 C1.10.10 C1.10.14 C1.10.17
+C1.10.10 C1.10.09 C1.10.05 C1.10.04 C1.10.07 C1.10.14 C1.10.08 C1.10.11 C1.10.15 C1.10.18
+C1.10.11 C1.10.10 C1.10.03 C1.10.08 C1.10.01 C1.10.06 C1.10.15 C1.10.12 C1.10.16 C1.10.19
+C1.10.12 C1.10.06 C1.10.11 C1.09.06 C1.10.16 C1.09.12 C1.09.17 C1.10.20
+C1.10.13 C1.11.04 C1.11.10 C1.10.02 C1.10.09 C1.11.15 C1.10.14 C1.10.17 C1.11.20
+C1.10.14 C1.10.09 C1.10.13 C1.10.05 C1.10.10 C1.10.17 C1.10.15 C1.10.18 C1.10.21
+C1.10.15 C1.10.10 C1.10.14 C1.10.08 C1.10.11 C1.10.18 C1.10.16 C1.10.19 C1.10.22
+C1.10.16 C1.10.06 C1.10.11 C1.10.15 C1.10.12 C1.10.19 C1.09.17 C1.10.20 C1.10.23
+C1.10.17 C1.10.09 C1.10.13 C1.11.15 C1.10.14 C1.11.20 C1.10.18 C1.10.21 C1.10.24
+C1.10.18 C1.10.10 C1.10.14 C1.10.17 C1.10.15 C1.10.21 C1.10.19 C1.10.22 C1.10.25
+C1.10.19 C1.10.11 C1.10.15 C1.10.18 C1.10.16 C1.10.22 C1.10.20 C1.10.23 C1.10.26
+C1.10.20 C1.10.12 C1.10.16 C1.10.19 C1.09.17 C1.10.23 C1.09.20 C1.09.25 C1.10.27
+C1.10.21 C1.10.14 C1.10.17 C1.11.20 C1.10.18 C1.10.24 C1.10.22 C1.10.25 C1.10.28
+C1.10.22 C1.10.15 C1.10.18 C1.10.21 C1.10.19 C1.10.25 C1.10.23 C1.10.26 C1.10.29
+C1.10.23 C1.10.16 C1.10.19 C1.10.22 C1.10.20 C1.10.26 C1.09.25 C1.10.27 C1.10.30
+C1.10.24 C1.10.17 C1.11.20 C1.11.21 C1.10.21 C1.11.25 C1.10.25 C1.10.28 C1.11.29
+C1.10.25 C1.10.18 C1.10.21 C1.10.24 C1.10.22 C1.10.28 C1.10.26 C1.10.29 C1.10.31
+C1.10.26 C1.10.19 C1.10.22 C1.10.25 C1.10.23 C1.10.29 C1.10.27 C1.10.30 C1.10.32
+C1.10.27 C1.10.20 C1.10.23 C1.10.26 C1.09.25 C1.10.30 C1.09.28 C1.09.32 C1.10.33
+C1.10.28 C1.10.21 C1.10.24 C1.11.25 C1.10.25 C1.11.29 C1.10.29 C1.10.31 C1.11.33
+C1.10.29 C1.10.22 C1.10.25 C1.10.28 C1.10.26 C1.10.31 C1.10.30 C1.10.32 C1.10.34
+C1.10.30 C1.10.23 C1.10.26 C1.10.29 C1.10.27 C1.10.32 C1.09.32 C1.10.33 C1.10.36
+C1.10.31 C1.10.25 C1.10.28 C1.11.29 C1.10.29 C1.11.33 C1.10.32 C1.10.34 C1.10.37
+C1.10.32 C1.10.26 C1.10.29 C1.10.31 C1.10.30 C1.10.34 C1.10.33 C1.10.36 C1.10.38
+C1.10.33 C1.10.27 C1.10.30 C1.10.32 C1.09.32 C1.10.36 C1.09.35 C1.10.35 C1.10.39
+C1.10.34 C1.10.29 C1.10.31 C1.11.33 C1.10.32 C1.10.37 C1.10.36 C1.10.38 C1.10.40
+C1.10.35 C1.09.32 C1.10.33 C1.10.36 C1.09.35 C1.10.39 C1.09.37 C1.09.40 C1.10.42
+C1.10.36 C1.10.30 C1.10.32 C1.10.34 C1.10.33 C1.10.38 C1.10.35 C1.10.39 C1.10.41
+C1.10.37 C1.10.31 C1.11.33 C1.11.34 C1.10.34 C1.11.37 C1.10.38 C1.10.40 C1.11.40
+C1.10.38 C1.10.32 C1.10.34 C1.10.37 C1.10.36 C1.10.40 C1.10.39 C1.10.41 C1.10.43
+C1.10.39 C1.10.33 C1.10.36 C1.10.38 C1.10.35 C1.10.41 C1.09.40 C1.10.42 C1.10.44
+C1.10.40 C1.10.34 C1.10.37 C1.11.37 C1.10.38 C1.11.40 C1.10.41 C1.10.43 C1.11.43
+C1.10.41 C1.10.36 C1.10.38 C1.10.40 C1.10.39 C1.10.43 C1.10.42 C1.10.44 C1.10.45
+C1.10.42 C1.10.35 C1.10.39 C1.10.41 C1.09.40 C1.10.44 C1.09.42 C1.09.44 C1.10.46
+C1.10.43 C1.10.38 C1.10.40 C1.11.40 C1.10.41 C1.11.43 C1.10.44 C1.10.45 C1.10.47
+C1.10.44 C1.10.39 C1.10.41 C1.10.43 C1.10.42 C1.10.45 C1.09.44 C1.10.46 C1.10.48
+C1.10.45 C1.10.41 C1.10.43 C1.11.43 C1.10.44 C1.10.47 C1.10.46 C1.10.48 C1.10.49
+C1.10.46 C1.10.42 C1.10.44 C1.10.45 C1.09.44 C1.10.48 C1.09.46 C1.09.48 C1.10.50
+C1.10.47 C1.10.43 C1.11.43 C1.11.44 C1.10.45 C1.11.46 C1.10.48 C1.10.49 C1.11.48
+C1.10.48 C1.10.44 C1.10.45 C1.10.47 C1.10.46 C1.10.49 C1.09.48 C1.10.50 C1.10.51
+C1.10.49 C1.10.45 C1.10.47 C1.11.46 C1.10.48 C1.11.48 C1.10.50 C1.10.51 C1.11.50
+C1.10.50 C1.10.46 C1.10.48 C1.10.49 C1.09.48 C1.10.51 C1.09.49 C1.09.51 C1.10.52
+C1.10.51 C1.10.48 C1.10.49 C1.11.48 C1.10.50 C1.11.50 C1.11.54 C1.09.51 C1.10.52 C1.10.53 C1.10.55
+C1.10.52 C1.10.50 C1.10.51 C1.09.51 C1.10.53 C1.10.54 C1.10.56
+C1.10.53 C1.10.51 C1.11.54 C1.10.52 C1.10.55 C1.10.54 C1.10.56 C1.10.57
+C1.10.54 C1.09.51 C1.10.52 C1.10.53 C1.10.56 C1.09.55 C1.09.57 C1.10.58
+C1.10.55 C1.10.51 C1.11.54 C1.11.55 C1.10.53 C1.11.58 C1.10.56 C1.10.57 C1.10.59
+C1.10.56 C1.10.52 C1.10.53 C1.10.55 C1.10.54 C1.10.57 C1.09.57 C1.10.58 C1.10.60
+C1.10.57 C1.10.53 C1.10.55 C1.11.58 C1.10.56 C1.10.59 C1.10.58 C1.10.60
+C1.10.58 C1.10.54 C1.10.56 C1.10.57 C1.09.57 C1.10.60 C1.10.61 C1.09.59 C1.09.61
+C1.10.59 C1.10.55 C1.11.58 C1.11.59 C1.10.57 C1.11.61 C1.10.60 C1.10.62
+C1.10.60 C1.10.56 C1.10.57 C1.10.59 C1.10.58 C1.10.62 C1.10.61 C1.09.61
+C1.10.61 C1.10.58 C1.10.60 C1.10.62 C1.09.61 C1.09.62
+C1.10.62 C1.10.59 C1.11.61 C1.11.62 C1.10.60 C1.10.61
+C1.11.00 C1.12.00 C1.11.06 C1.11.08 C1.12.07
+C1.11.01 C1.11.02 C1.11.04 C1.11.10
+C1.11.02 C1.11.03 C1.11.01 C1.11.10 C1.11.11
+C1.11.03 C1.11.02 C1.11.05 C1.11.10 C1.11.11
+C1.11.04 C1.11.01 C1.11.10 C1.10.02 C1.10.09 C1.10.13 C1.11.15
+C1.11.05 C1.11.03 C1.11.07 C1.11.11 C1.11.12
+C1.11.06 C1.11.00 C1.11.08 C1.11.09 C1.11.12 C1.11.13 C1.11.14
+C1.11.07 C1.11.09 C1.11.05 C1.11.11 C1.11.12
+C1.11.08 C1.11.00 C1.12.00 C1.11.06 C1.12.07 C1.11.13 C1.11.14 C1.12.14
+C1.11.09 C1.11.06 C1.11.07 C1.11.12 C1.11.13
+C1.11.10 C1.11.02 C1.11.03 C1.11.01 C1.11.04 C1.11.11 C1.10.13 C1.11.15 C1.11.16
+C1.11.11 C1.11.02 C1.11.03 C1.11.05 C1.11.07 C1.11.10 C1.11.12 C1.11.15 C1.11.16 C1.11.17
+C1.11.12 C1.11.06 C1.11.09 C1.11.05 C1.11.07 C1.11.11 C1.11.13 C1.11.16 C1.11.17 C1.11.18
+C1.11.13 C1.11.06 C1.11.08 C1.11.09 C1.11.12 C1.11.14 C1.11.17 C1.11.18 C1.11.19
+C1.11.14 C1.11.06 C1.11.08 C1.12.07 C1.11.13 C1.12.14 C1.11.18 C1.11.19 C1.12.19
+C1.11.15 C1.11.04 C1.11.10 C1.11.11 C1.10.13 C1.11.16 C1.10.17 C1.11.20 C1.11.21
+C1.11.16 C1.11.10 C1.11.11 C1.11.12 C1.11.15 C1.11.17 C1.11.20 C1.11.21 C1.11.22
+C1.11.17 C1.11.11 C1.11.12 C1.11.13 C1.11.16 C1.11.18 C1.11.21 C1.11.22 C1.11.23
+C1.11.18 C1.11.12 C1.11.13 C1.11.14 C1.11.17 C1.11.19 C1.11.22 C1.11.23 C1.11.24
+C1.11.19 C1.11.13 C1.11.14 C1.12.14 C1.11.18 C1.12.19 C1.11.23 C1.11.24 C1.12.24
+C1.11.20 C1.10.13 C1.11.15 C1.11.16 C1.10.17 C1.11.21 C1.10.21 C1.10.24 C1.11.25
+C1.11.21 C1.11.15 C1.11.16 C1.11.17 C1.11.20 C1.11.22 C1.10.24 C1.11.25 C1.11.26
+C1.11.22 C1.11.16 C1.11.17 C1.11.18 C1.11.21 C1.11.23 C1.11.25 C1.11.26 C1.11.27
+C1.11.23 C1.11.17 C1.11.18 C1.11.19 C1.11.22 C1.11.24 C1.11.26 C1.11.27 C1.11.28
+C1.11.24 C1.11.18 C1.11.19 C1.12.19 C1.11.23 C1.12.24 C1.11.27 C1.11.28 C1.12.28
+C1.11.25 C1.11.20 C1.11.21 C1.11.22 C1.10.24 C1.11.26 C1.10.28 C1.11.29 C1.11.30
+C1.11.26 C1.11.21 C1.11.22 C1.11.23 C1.11.25 C1.11.27 C1.11.29 C1.11.30 C1.11.31
+C1.11.27 C1.11.22 C1.11.23 C1.11.24 C1.11.26 C1.11.28 C1.11.30 C1.11.31 C1.11.32
+C1.11.28 C1.11.23 C1.11.24 C1.12.24 C1.11.27 C1.12.28 C1.11.31 C1.11.32 C1.12.32
+C1.11.29 C1.10.24 C1.11.25 C1.11.26 C1.10.28 C1.11.30 C1.10.31 C1.11.33 C1.11.34
+C1.11.30 C1.11.25 C1.11.26 C1.11.27 C1.11.29 C1.11.31 C1.11.33 C1.11.34 C1.11.35
+C1.11.31 C1.11.26 C1.11.27 C1.11.28 C1.11.30 C1.11.32 C1.11.34 C1.11.35 C1.11.36
+C1.11.32 C1.11.27 C1.11.28 C1.12.28 C1.11.31 C1.12.32 C1.11.35 C1.11.36 C1.12.36
+C1.11.33 C1.10.28 C1.11.29 C1.11.30 C1.10.31 C1.11.34 C1.10.34 C1.10.37 C1.11.37
+C1.11.34 C1.11.29 C1.11.30 C1.11.31 C1.11.33 C1.11.35 C1.10.37 C1.11.37 C1.11.38
+C1.11.35 C1.11.30 C1.11.31 C1.11.32 C1.11.34 C1.11.36 C1.11.37 C1.11.38 C1.11.39
+C1.11.36 C1.11.31 C1.11.32 C1.12.32 C1.11.35 C1.12.36 C1.11.38 C1.11.39 C1.12.39
+C1.11.37 C1.11.33 C1.11.34 C1.11.35 C1.10.37 C1.11.38 C1.10.40 C1.11.40 C1.11.41
+C1.11.38 C1.11.34 C1.11.35 C1.11.36 C1.11.37 C1.11.39 C1.11.40 C1.11.41 C1.11.42
+C1.11.39 C1.11.35 C1.11.36 C1.12.36 C1.11.38 C1.12.39 C1.11.41 C1.11.42 C1.12.42
+C1.11.40 C1.10.37 C1.11.37 C1.11.38 C1.10.40 C1.11.41 C1.10.43 C1.11.43 C1.11.44
+C1.11.41 C1.11.37 C1.11.38 C1.11.39 C1.11.40 C1.11.42 C1.11.43 C1.11.44 C1.11.45
+C1.11.42 C1.11.38 C1.11.39 C1.12.39 C1.11.41 C1.12.42 C1.11.44 C1.11.45 C1.12.45
+C1.11.43 C1.10.40 C1.11.40 C1.11.41 C1.10.43 C1.11.44 C1.10.45 C1.10.47 C1.11.46
+C1.11.44 C1.11.40 C1.11.41 C1.11.42 C1.11.43 C1.11.45 C1.10.47 C1.11.46 C1.11.47
+C1.11.45 C1.11.41 C1.11.42 C1.12.42 C1.11.44 C1.12.45 C1.11.46 C1.11.47 C1.12.47
+C1.11.46 C1.11.43 C1.11.44 C1.11.45 C1.10.47 C1.11.47 C1.10.49 C1.11.48 C1.11.49
+C1.11.47 C1.11.44 C1.11.45 C1.12.45 C1.11.46 C1.12.47 C1.11.48 C1.11.49 C1.12.49
+C1.11.48 C1.10.47 C1.11.46 C1.11.47 C1.10.49 C1.11.49 C1.10.51 C1.11.50 C1.11.51 C1.11.52
+C1.11.49 C1.11.46 C1.11.47 C1.12.47 C1.11.48 C1.12.49 C1.11.51 C1.11.52 C1.11.53 C1.12.53
+C1.11.50 C1.10.49 C1.11.48 C1.10.51 C1.11.51 C1.11.54 C1.11.55
+C1.11.51 C1.11.48 C1.11.49 C1.11.50 C1.11.52 C1.11.54 C1.11.55 C1.11.56
+C1.11.52 C1.11.48 C1.11.49 C1.11.51 C1.11.53 C1.11.55 C1.11.56 C1.11.57
+C1.11.53 C1.11.49 C1.12.49 C1.11.52 C1.12.53 C1.11.56 C1.11.57 C1.12.57
+C1.11.54 C1.10.51 C1.11.50 C1.11.51 C1.11.55 C1.10.53 C1.10.55 C1.11.58
+C1.11.55 C1.11.50 C1.11.51 C1.11.52 C1.11.54 C1.11.56 C1.10.55 C1.11.58 C1.11.59
+C1.11.56 C1.11.51 C1.11.52 C1.11.53 C1.11.55 C1.11.57 C1.11.58 C1.11.59 C1.11.60
+C1.11.57 C1.11.52 C1.11.53 C1.12.53 C1.11.56 C1.12.57 C1.11.59 C1.11.60 C1.12.60
+C1.11.58 C1.11.54 C1.11.55 C1.11.56 C1.10.55 C1.11.59 C1.10.57 C1.10.59 C1.11.61
+C1.11.59 C1.11.55 C1.11.56 C1.11.57 C1.11.58 C1.11.60 C1.10.59 C1.11.61 C1.11.62
+C1.11.60 C1.11.56 C1.11.57 C1.12.57 C1.11.59 C1.12.60 C1.11.61 C1.11.62 C1.12.62
+C1.11.61 C1.11.58 C1.11.59 C1.11.60 C1.10.59 C1.11.62 C1.10.62
+C1.11.62 C1.11.59 C1.11.60 C1.12.60 C1.11.61 C1.12.62 C1.10.62
+C1.12.00 C1.11.00 C1.11.08 C1.12.07 C1.12.05
+C1.12.01 C1.12.03 C1.12.10 C1.12.02
+C1.12.02 C1.12.01 C1.12.10 C1.12.08 C1.13.05 C1.13.04
+C1.12.03 C1.12.04 C1.12.01 C1.12.11 C1.12.10
+C1.12.04 C1.12.06 C1.12.03 C1.12.12 C1.12.11
+C1.12.05 C1.12.00 C1.12.07 C1.12.09 C1.12.14 C1.12.13 C1.12.12
+C1.12.06 C1.12.09 C1.12.04 C1.12.12 C1.12.11
+C1.12.07 C1.11.00 C1.12.00 C1.11.08 C1.12.05 C1.11.14 C1.12.14 C1.12.13
+C1.12.08 C1.12.10 C1.12.02 C1.13.05 C1.12.15 C1.13.14
+C1.12.09 C1.12.05 C1.12.06 C1.12.13 C1.12.12
+C1.12.10 C1.12.03 C1.12.01 C1.12.11 C1.12.02 C1.12.08 C1.12.16 C1.12.15 C1.13.14
+C1.12.11 C1.12.06 C1.12.04 C1.12.03 C1.12.12 C1.12.10 C1.12.17 C1.12.16 C1.12.15
+C1.12.12 C1.12.05 C1.12.09 C1.12.06 C1.12.04 C1.12.13 C1.12.11 C1.12.18 C1.12.17 C1.12.16
+C1.12.13 C1.12.07 C1.12.05 C1.12.09 C1.12.14 C1.12.12 C1.12.19 C1.12.18 C1.12.17
+C1.12.14 C1.11.08 C1.12.07 C1.12.05 C1.11.14 C1.12.13 C1.11.19 C1.12.19 C1.12.18
+C1.12.15 C1.12.11 C1.12.10 C1.12.08 C1.12.16 C1.13.14 C1.12.21 C1.12.20 C1.13.18
+C1.12.16 C1.12.12 C1.12.11 C1.12.10 C1.12.17 C1.12.15 C1.12.22 C1.12.21 C1.12.20
+C1.12.17 C1.12.13 C1.12.12 C1.12.11 C1.12.18 C1.12.16 C1.12.23 C1.12.22 C1.12.21
+C1.12.18 C1.12.14 C1.12.13 C1.12.12 C1.12.19 C1.12.17 C1.12.24 C1.12.23 C1.12.22
+C1.12.19 C1.11.14 C1.12.14 C1.12.13 C1.11.19 C1.12.18 C1.11.24 C1.12.24 C1.12.23
+C1.12.20 C1.12.16 C1.12.15 C1.13.14 C1.12.21 C1.13.18 C1.12.25 C1.13.25 C1.13.22
+C1.12.21 C1.12.17 C1.12.16 C1.12.15 C1.12.22 C1.12.20 C1.12.26 C1.12.25 C1.13.25
+C1.12.22 C1.12.18 C1.12.17 C1.12.16 C1.12.23 C1.12.21 C1.12.27 C1.12.26 C1.12.25
+C1.12.23 C1.12.19 C1.12.18 C1.12.17 C1.12.24 C1.12.22 C1.12.28 C1.12.27 C1.12.26
+C1.12.24 C1.11.19 C1.12.19 C1.12.18 C1.11.24 C1.12.23 C1.11.28 C1.12.28 C1.12.27
+C1.12.25 C1.12.22 C1.12.21 C1.12.20 C1.12.26 C1.13.25 C1.12.30 C1.12.29 C1.13.29
+C1.12.26 C1.12.23 C1.12.22 C1.12.21 C1.12.27 C1.12.25 C1.12.31 C1.12.30 C1.12.29
+C1.12.27 C1.12.24 C1.12.23 C1.12.22 C1.12.28 C1.12.26 C1.12.32 C1.12.31 C1.12.30
+C1.12.28 C1.11.24 C1.12.24 C1.12.23 C1.11.28 C1.12.27 C1.11.32 C1.12.32 C1.12.31
+C1.12.29 C1.12.26 C1.12.25 C1.13.25 C1.12.30 C1.13.29 C1.12.34 C1.12.33 C1.13.32
+C1.12.30 C1.12.27 C1.12.26 C1.12.25 C1.12.31 C1.12.29 C1.12.35 C1.12.34 C1.12.33
+C1.12.31 C1.12.28 C1.12.27 C1.12.26 C1.12.32 C1.12.30 C1.12.36 C1.12.35 C1.12.34
+C1.12.32 C1.11.28 C1.12.28 C1.12.27 C1.11.32 C1.12.31 C1.11.36 C1.12.36 C1.12.35
+C1.12.33 C1.12.30 C1.12.29 C1.13.29 C1.12.34 C1.13.32 C1.12.37 C1.13.38 C1.13.35
+C1.12.34 C1.12.31 C1.12.30 C1.12.29 C1.12.35 C1.12.33 C1.12.38 C1.12.37 C1.13.38
+C1.12.35 C1.12.32 C1.12.31 C1.12.30 C1.12.36 C1.12.34 C1.12.39 C1.12.38 C1.12.37
+C1.12.36 C1.11.32 C1.12.32 C1.12.31 C1.11.36 C1.12.35 C1.11.39 C1.12.39 C1.12.38
+C1.12.37 C1.12.35 C1.12.34 C1.12.33 C1.12.38 C1.13.38 C1.12.41 C1.12.40 C1.13.41
+C1.12.38 C1.12.36 C1.12.35 C1.12.34 C1.12.39 C1.12.37 C1.12.42 C1.12.41 C1.12.40
+C1.12.39 C1.11.36 C1.12.36 C1.12.35 C1.11.39 C1.12.38 C1.11.42 C1.12.42 C1.12.41
+C1.12.40 C1.12.38 C1.12.37 C1.13.38 C1.12.41 C1.13.41 C1.12.44 C1.12.43 C1.13.44
+C1.12.41 C1.12.39 C1.12.38 C1.12.37 C1.12.42 C1.12.40 C1.12.45 C1.12.44 C1.12.43
+C1.12.42 C1.11.39 C1.12.39 C1.12.38 C1.11.42 C1.12.41 C1.11.45 C1.12.45 C1.12.44
+C1.12.43 C1.12.41 C1.12.40 C1.13.41 C1.12.44 C1.13.44 C1.12.46 C1.13.48 C1.13.46
+C1.12.44 C1.12.42 C1.12.41 C1.12.40 C1.12.45 C1.12.43 C1.12.47 C1.12.46 C1.13.48
+C1.12.45 C1.11.42 C1.12.42 C1.12.41 C1.11.45 C1.12.44 C1.11.47 C1.12.47 C1.12.46
+C1.12.46 C1.12.45 C1.12.44 C1.12.43 C1.12.47 C1.13.48 C1.12.49 C1.12.48 C1.13.50
+C1.12.47 C1.11.45 C1.12.45 C1.12.44 C1.11.47 C1.12.46 C1.11.49 C1.12.49 C1.12.48
+C1.12.48 C1.12.47 C1.12.46 C1.13.48 C1.12.49 C1.13.50 C1.12.52 C1.12.51 C1.12.50 C1.13.52
+C1.12.49 C1.11.47 C1.12.47 C1.12.46 C1.11.49 C1.12.48 C1.11.53 C1.12.53 C1.12.52 C1.12.51
+C1.12.50 C1.12.48 C1.13.50 C1.12.51 C1.13.52 C1.12.55 C1.12.54
+C1.12.51 C1.12.49 C1.12.48 C1.12.52 C1.12.50 C1.12.56 C1.12.55 C1.12.54
+C1.12.52 C1.12.49 C1.12.48 C1.12.53 C1.12.51 C1.12.57 C1.12.56 C1.12.55
+C1.12.53 C1.11.49 C1.12.49 C1.11.53 C1.12.52 C1.11.57 C1.12.57 C1.12.56
+C1.12.54 C1.12.51 C1.12.50 C1.13.52 C1.12.55 C1.12.58 C1.13.56 C1.13.54
+C1.12.55 C1.12.52 C1.12.51 C1.12.50 C1.12.56 C1.12.54 C1.12.59 C1.12.58 C1.13.56
+C1.12.56 C1.12.53 C1.12.52 C1.12.51 C1.12.57 C1.12.55 C1.12.60 C1.12.59 C1.12.58
+C1.12.57 C1.11.53 C1.12.53 C1.12.52 C1.11.57 C1.12.56 C1.11.60 C1.12.60 C1.12.59
+C1.12.58 C1.12.56 C1.12.55 C1.12.54 C1.12.59 C1.13.56 C1.12.61 C1.13.60 C1.13.58
+C1.12.59 C1.12.57 C1.12.56 C1.12.55 C1.12.60 C1.12.58 C1.12.62 C1.12.61 C1.13.60
+C1.12.60 C1.11.57 C1.12.57 C1.12.56 C1.11.60 C1.12.59 C1.11.62 C1.12.62 C1.12.61
+C1.12.61 C1.12.60 C1.12.59 C1.12.58 C1.12.62 C1.13.60 C1.13.62
+C1.12.62 C1.11.60 C1.12.60 C1.12.59 C1.11.62 C1.12.61
+C1.13.00 C1.13.03 C1.13.06
+C1.13.01 C1.13.04 C1.13.02 C1.13.14 C1.13.10
+C1.13.02 C1.13.01 C1.13.10 C1.13.07
+C1.13.03 C1.13.09 C1.13.00 C1.13.13 C1.13.06
+C1.13.04 C1.12.02 C1.13.05 C1.13.01 C1.13.14 C1.13.10
+C1.13.05 C1.12.02 C1.12.08 C1.13.04 C1.13.14
+C1.13.06 C1.13.03 C1.13.00 C1.13.13 C1.14.06 C1.13.17 C1.13.12
+C1.13.07 C1.13.02 C1.13.10 C1.13.15 C1.13.11
+C1.13.08 C1.13.11 C1.13.09
+C1.13.09 C1.13.11 C1.13.08 C1.13.03 C1.13.16 C1.13.13
+C1.13.10 C1.13.04 C1.13.01 C1.13.02 C1.13.14 C1.13.07 C1.13.18 C1.13.15 C1.13.11
+C1.13.11 C1.13.10 C1.13.07 C1.13.15 C1.13.08 C1.13.09 C1.13.19 C1.13.16 C1.13.13
+C1.13.12 C1.13.13 C1.13.06 C1.14.06 C1.13.17 C1.13.21 C1.14.17 C1.14.12
+C1.13.13 C1.13.11 C1.13.09 C1.13.03 C1.13.16 C1.13.06 C1.13.20 C1.13.17 C1.13.12
+C1.13.14 C1.12.10 C1.12.08 C1.13.05 C1.13.04 C1.13.01 C1.12.15 C1.13.10 C1.12.20 C1.13.18 C1.13.15
+C1.13.15 C1.13.14 C1.13.10 C1.13.07 C1.13.18 C1.13.11 C1.13.22 C1.13.19 C1.13.16
+C1.13.16 C1.13.15 C1.13.11 C1.13.09 C1.13.19 C1.13.13 C1.13.23 C1.13.20 C1.13.17
+C1.13.17 C1.13.16 C1.13.13 C1.13.06 C1.13.20 C1.13.12 C1.13.24 C1.13.21 C1.14.17
+C1.13.18 C1.12.15 C1.13.14 C1.13.10 C1.12.20 C1.13.15 C1.13.25 C1.13.22 C1.13.19
+C1.13.19 C1.13.18 C1.13.15 C1.13.11 C1.13.22 C1.13.16 C1.13.26 C1.13.23 C1.13.20
+C1.13.20 C1.13.19 C1.13.16 C1.13.13 C1.13.23 C1.13.17 C1.13.27 C1.13.24 C1.13.21
+C1.13.21 C1.13.20 C1.13.17 C1.13.12 C1.13.24 C1.14.17 C1.13.28 C1.14.25 C1.14.20
+C1.13.22 C1.12.20 C1.13.18 C1.13.15 C1.13.25 C1.13.19 C1.13.29 C1.13.26 C1.13.23
+C1.13.23 C1.13.22 C1.13.19 C1.13.16 C1.13.26 C1.13.20 C1.13.30 C1.13.27 C1.13.24
+C1.13.24 C1.13.23 C1.13.20 C1.13.17 C1.13.27 C1.13.21 C1.13.31 C1.13.28 C1.14.25
+C1.13.25 C1.12.21 C1.12.20 C1.13.18 C1.12.25 C1.13.22 C1.12.29 C1.13.29 C1.13.26
+C1.13.26 C1.13.25 C1.13.22 C1.13.19 C1.13.29 C1.13.23 C1.13.32 C1.13.30 C1.13.27
+C1.13.27 C1.13.26 C1.13.23 C1.13.20 C1.13.30 C1.13.24 C1.13.33 C1.13.31 C1.13.28
+C1.13.28 C1.13.27 C1.13.24 C1.13.21 C1.13.31 C1.14.25 C1.13.34 C1.14.32 C1.14.28
+C1.13.29 C1.12.25 C1.13.25 C1.13.22 C1.12.29 C1.13.26 C1.12.33 C1.13.32 C1.13.30
+C1.13.30 C1.13.29 C1.13.26 C1.13.23 C1.13.32 C1.13.27 C1.13.35 C1.13.33 C1.13.31
+C1.13.31 C1.13.30 C1.13.27 C1.13.24 C1.13.33 C1.13.28 C1.13.37 C1.13.34 C1.14.32
+C1.13.32 C1.12.29 C1.13.29 C1.13.26 C1.12.33 C1.13.30 C1.13.38 C1.13.35 C1.13.33
+C1.13.33 C1.13.32 C1.13.30 C1.13.27 C1.13.35 C1.13.31 C1.13.39 C1.13.37 C1.13.34
+C1.13.34 C1.13.33 C1.13.31 C1.13.28 C1.13.37 C1.14.32 C1.13.40 C1.13.36 C1.14.35
+C1.13.35 C1.12.33 C1.13.32 C1.13.30 C1.13.38 C1.13.33 C1.13.41 C1.13.39 C1.13.37
+C1.13.36 C1.13.37 C1.13.34 C1.14.32 C1.13.40 C1.14.35 C1.13.43 C1.14.40 C1.14.37
+C1.13.37 C1.13.35 C1.13.33 C1.13.31 C1.13.39 C1.13.34 C1.13.42 C1.13.40 C1.13.36
+C1.13.38 C1.12.34 C1.12.33 C1.13.32 C1.12.37 C1.13.35 C1.12.40 C1.13.41 C1.13.39
+C1.13.39 C1.13.38 C1.13.35 C1.13.33 C1.13.41 C1.13.37 C1.13.44 C1.13.42 C1.13.40
+C1.13.40 C1.13.39 C1.13.37 C1.13.34 C1.13.42 C1.13.36 C1.13.45 C1.13.43 C1.14.40
+C1.13.41 C1.12.37 C1.13.38 C1.13.35 C1.12.40 C1.13.39 C1.12.43 C1.13.44 C1.13.42
+C1.13.42 C1.13.41 C1.13.39 C1.13.37 C1.13.44 C1.13.40 C1.13.46 C1.13.45 C1.13.43
+C1.13.43 C1.13.42 C1.13.40 C1.13.36 C1.13.45 C1.14.40 C1.13.47 C1.14.44 C1.14.42
+C1.13.44 C1.12.40 C1.13.41 C1.13.39 C1.12.43 C1.13.42 C1.13.48 C1.13.46 C1.13.45
+C1.13.45 C1.13.44 C1.13.42 C1.13.40 C1.13.46 C1.13.43 C1.13.49 C1.13.47 C1.14.44
+C1.13.46 C1.12.43 C1.13.44 C1.13.42 C1.13.48 C1.13.45 C1.13.50 C1.13.49 C1.13.47
+C1.13.47 C1.13.46 C1.13.45 C1.13.43 C1.13.49 C1.14.44 C1.13.51 C1.14.48 C1.14.46
+C1.13.48 C1.12.44 C1.12.43 C1.13.44 C1.12.46 C1.13.46 C1.12.48 C1.13.50 C1.13.49
+C1.13.49 C1.13.48 C1.13.46 C1.13.45 C1.13.50 C1.13.47 C1.13.52 C1.13.51 C1.14.48
+C1.13.50 C1.12.46 C1.13.48 C1.13.46 C1.12.48 C1.13.49 C1.12.50 C1.13.52 C1.13.51
+C1.13.51 C1.13.50 C1.13.49 C1.13.47 C1.13.52 C1.14.48 C1.13.53 C1.14.51 C1.14.49
+C1.13.52 C1.12.48 C1.13.50 C1.13.49 C1.12.50 C1.13.51 C1.12.54 C1.13.56 C1.13.54 C1.13.53 C1.14.51
+C1.13.53 C1.13.52 C1.13.51 C1.13.54 C1.14.51 C1.13.57 C1.13.55
+C1.13.54 C1.13.52 C1.12.54 C1.13.56 C1.13.53 C1.13.58 C1.13.57 C1.13.55
+C1.13.55 C1.13.54 C1.13.53 C1.14.51 C1.13.57 C1.13.59 C1.14.56 C1.14.54
+C1.13.56 C1.13.52 C1.12.55 C1.12.54 C1.12.58 C1.13.54 C1.13.60 C1.13.58 C1.13.57
+C1.13.57 C1.13.56 C1.13.54 C1.13.53 C1.13.58 C1.13.55 C1.13.61 C1.13.59 C1.14.56
+C1.13.58 C1.12.58 C1.13.56 C1.13.54 C1.13.60 C1.13.57 C1.13.62 C1.13.61 C1.13.59
+C1.13.59 C1.13.58 C1.13.57 C1.13.55 C1.13.61 C1.14.56 C1.14.61 C1.14.60 C1.14.58
+C1.13.60 C1.12.59 C1.12.58 C1.13.56 C1.12.61 C1.13.58 C1.13.62 C1.13.61
+C1.13.61 C1.13.60 C1.13.58 C1.13.57 C1.13.62 C1.13.59 C1.14.61 C1.14.60
+C1.13.62 C1.12.61 C1.13.60 C1.13.58 C1.13.61
+C1.14.00 C1.14.06 C1.14.12 C1.14.08 C1.14.04
+C1.14.01 C1.14.03 C1.14.11 C1.14.05
+C1.14.02 C1.14.05 C1.14.13 C1.15.08
+C1.14.03 C1.14.07 C1.14.09 C1.14.11 C1.14.01
+C1.14.04 C1.14.00 C1.14.08 C1.14.10
+C1.14.05 C1.14.11 C1.14.01 C1.14.13 C1.14.02
+C1.14.06 C1.13.06 C1.13.12 C1.14.00 C1.14.17 C1.14.12
+C1.14.07 C1.14.10 C1.14.14 C1.14.09 C1.14.03
+C1.14.08 C1.14.00 C1.14.12 C1.14.04 C1.14.15 C1.14.10
+C1.14.09 C1.14.14 C1.14.07 C1.14.03 C1.14.16 C1.14.11
+C1.14.10 C1.14.12 C1.14.08 C1.14.04 C1.14.15 C1.14.18 C1.14.14 C1.14.07
+C1.14.11 C1.14.14 C1.14.09 C1.14.03 C1.14.16 C1.14.01 C1.14.05 C1.14.19 C1.14.13
+C1.14.12 C1.14.06 C1.13.12 C1.14.00 C1.14.17 C1.14.08 C1.14.20 C1.14.15 C1.14.10
+C1.14.13 C1.14.16 C1.14.11 C1.14.05 C1.14.19 C1.14.02 C1.15.08 C1.14.21 C1.15.17 C1.15.07
+C1.14.14 C1.14.15 C1.14.10 C1.14.18 C1.14.07 C1.14.09 C1.14.22 C1.14.16 C1.14.11
+C1.14.15 C1.14.17 C1.14.12 C1.14.08 C1.14.20 C1.14.10 C1.14.23 C1.14.18 C1.14.14
+C1.14.16 C1.14.18 C1.14.14 C1.14.09 C1.14.22 C1.14.11 C1.14.24 C1.14.19 C1.14.13
+C1.14.17 C1.14.06 C1.13.17 C1.13.12 C1.13.21 C1.14.12 C1.14.25 C1.14.20 C1.14.15
+C1.14.18 C1.14.20 C1.14.15 C1.14.10 C1.14.23 C1.14.14 C1.14.27 C1.14.22 C1.14.16
+C1.14.19 C1.14.22 C1.14.16 C1.14.11 C1.14.24 C1.14.13 C1.14.26 C1.14.21 C1.15.17
+C1.14.20 C1.13.21 C1.14.17 C1.14.12 C1.14.25 C1.14.15 C1.14.28 C1.14.23 C1.14.18
+C1.14.21 C1.14.24 C1.14.19 C1.14.13 C1.14.26 C1.15.17 C1.15.28 C1.15.23 C1.15.18
+C1.14.22 C1.14.23 C1.14.18 C1.14.14 C1.14.27 C1.14.16 C1.14.29 C1.14.24 C1.14.19
+C1.14.23 C1.14.25 C1.14.20 C1.14.15 C1.14.28 C1.14.18 C1.14.30 C1.14.27 C1.14.22
+C1.14.24 C1.14.27 C1.14.22 C1.14.16 C1.14.29 C1.14.19 C1.14.31 C1.14.26 C1.14.21
+C1.14.25 C1.13.24 C1.13.21 C1.14.17 C1.13.28 C1.14.20 C1.14.32 C1.14.28 C1.14.23
+C1.14.26 C1.14.29 C1.14.24 C1.14.19 C1.14.31 C1.14.21 C1.14.33 C1.15.28 C1.15.23
+C1.14.27 C1.14.28 C1.14.23 C1.14.18 C1.14.30 C1.14.22 C1.14.34 C1.14.29 C1.14.24
+C1.14.28 C1.13.28 C1.14.25 C1.14.20 C1.14.32 C1.14.23 C1.14.35 C1.14.30 C1.14.27
+C1.14.29 C1.14.30 C1.14.27 C1.14.22 C1.14.34 C1.14.24 C1.14.36 C1.14.31 C1.14.26
+C1.14.30 C1.14.32 C1.14.28 C1.14.23 C1.14.35 C1.14.27 C1.14.37 C1.14.34 C1.14.29
+C1.14.31 C1.14.34 C1.14.29 C1.14.24 C1.14.36 C1.14.26 C1.14.38 C1.14.33 C1.15.28
+C1.14.32 C1.13.31 C1.13.28 C1.14.25 C1.13.34 C1.14.28 C1.13.36 C1.14.35 C1.14.30
+C1.14.33 C1.14.36 C1.14.31 C1.14.26 C1.14.38 C1.15.28 C1.15.37 C1.15.33 C1.15.29
+C1.14.34 C1.14.35 C1.14.30 C1.14.27 C1.14.37 C1.14.29 C1.14.39 C1.14.36 C1.14.31
+C1.14.35 C1.13.34 C1.14.32 C1.14.28 C1.13.36 C1.14.30 C1.14.40 C1.14.37 C1.14.34
+C1.14.36 C1.14.37 C1.14.34 C1.14.29 C1.14.39 C1.14.31 C1.14.41 C1.14.38 C1.14.33
+C1.14.37 C1.13.36 C1.14.35 C1.14.30 C1.14.40 C1.14.34 C1.14.42 C1.14.39 C1.14.36
+C1.14.38 C1.14.39 C1.14.36 C1.14.31 C1.14.41 C1.14.33 C1.15.41 C1.15.37 C1.15.33
+C1.14.39 C1.14.40 C1.14.37 C1.14.34 C1.14.42 C1.14.36 C1.14.43 C1.14.41 C1.14.38
+C1.14.40 C1.13.40 C1.13.36 C1.14.35 C1.13.43 C1.14.37 C1.14.44 C1.14.42 C1.14.39
+C1.14.41 C1.14.42 C1.14.39 C1.14.36 C1.14.43 C1.14.38 C1.14.45 C1.15.41 C1.15.37
+C1.14.42 C1.13.43 C1.14.40 C1.14.37 C1.14.44 C1.14.39 C1.14.46 C1.14.43 C1.14.41
+C1.14.43 C1.14.44 C1.14.42 C1.14.39 C1.14.46 C1.14.41 C1.14.47 C1.14.45 C1.15.41
+C1.14.44 C1.13.45 C1.13.43 C1.14.40 C1.13.47 C1.14.42 C1.14.48 C1.14.46 C1.14.43
+C1.14.45 C1.14.46 C1.14.43 C1.14.41 C1.14.47 C1.15.41 C1.15.48 C1.15.45 C1.15.42
+C1.14.46 C1.13.47 C1.14.44 C1.14.42 C1.14.48 C1.14.43 C1.14.49 C1.14.47 C1.14.45
+C1.14.47 C1.14.48 C1.14.46 C1.14.43 C1.14.49 C1.14.45 C1.14.50 C1.15.48 C1.15.45
+C1.14.48 C1.13.49 C1.13.47 C1.14.44 C1.13.51 C1.14.46 C1.14.51 C1.14.49 C1.14.47
+C1.14.49 C1.13.51 C1.14.48 C1.14.46 C1.14.51 C1.14.47 C1.14.52 C1.14.50 C1.15.48
+C1.14.50 C1.14.51 C1.14.49 C1.14.47 C1.14.52 C1.15.48 C1.14.53 C1.15.53 C1.15.51 C1.15.49
+C1.14.51 C1.13.52 C1.13.51 C1.14.48 C1.13.53 C1.14.49 C1.13.55 C1.14.56 C1.14.54 C1.14.52 C1.14.50
+C1.14.52 C1.14.51 C1.14.49 C1.14.54 C1.14.50 C1.14.55 C1.14.53
+C1.14.53 C1.14.54 C1.14.52 C1.14.50 C1.14.55 C1.14.57 C1.15.53 C1.15.51
+C1.14.54 C1.14.51 C1.13.55 C1.14.56 C1.14.52 C1.14.58 C1.14.55 C1.14.53
+C1.14.55 C1.14.56 C1.14.54 C1.14.52 C1.14.58 C1.14.53 C1.14.59 C1.14.57 C1.15.53
+C1.14.56 C1.14.51 C1.13.57 C1.13.55 C1.13.59 C1.14.54 C1.14.60 C1.14.58 C1.14.55
+C1.14.57 C1.14.58 C1.14.55 C1.14.53 C1.14.59 C1.15.53 C1.15.60 C1.15.57 C1.15.54
+C1.14.58 C1.13.59 C1.14.56 C1.14.54 C1.14.61 C1.14.60 C1.14.55 C1.14.59 C1.14.57
+C1.14.59 C1.14.61 C1.14.60 C1.14.58 C1.14.55 C1.14.57 C1.14.62 C1.15.60 C1.15.57
+C1.14.60 C1.13.61 C1.13.59 C1.14.56 C1.14.61 C1.14.58 C1.14.59
+C1.14.61 C1.13.61 C1.13.59 C1.14.60 C1.14.58 C1.14.59 C1.14.62
+C1.14.62 C1.14.61 C1.14.59 C1.15.60 C1.15.61
+C1.15.00 C1.15.07 C1.15.12
+C1.15.01 C1.15.02 C1.15.10 C1.15.11 C1.00.12 C1.00.02
+C1.15.02 C1.15.03 C1.15.06 C1.15.09 C1.15.10 C1.15.01
+C1.15.03 C1.15.14 C1.15.05 C1.15.15 C1.15.06 C1.15.02
+C1.15.04 C1.15.12 C1.15.13 C1.15.14 C1.15.05
+C1.15.05 C1.15.13 C1.15.04 C1.15.14 C1.15.03
+C1.15.06 C1.15.14 C1.15.03 C1.15.15 C1.15.02 C1.15.09
+C1.15.07 C1.14.13 C1.15.08 C1.15.17 C1.15.00 C1.15.18 C1.15.12
+C1.15.08 C1.14.13 C1.14.02 C1.15.17 C1.15.07
+C1.15.09 C1.15.15 C1.15.06 C1.15.02 C1.15.16 C1.15.10
+C1.15.10 C1.15.15 C1.15.02 C1.15.09 C1.15.16 C1.15.01 C1.15.11
+C1.15.11 C1.15.16 C1.15.10 C1.15.01 C1.00.17 C1.00.12 C1.00.02
+C1.15.12 C1.15.17 C1.15.07 C1.15.00 C1.15.18 C1.15.19 C1.15.13 C1.15.04
+C1.15.13 C1.15.18 C1.15.12 C1.15.19 C1.15.04 C1.15.20 C1.15.14 C1.15.05
+C1.15.14 C1.15.19 C1.15.13 C1.15.04 C1.15.20 C1.15.05 C1.15.03 C1.15.21 C1.15.15 C1.15.06
+C1.15.15 C1.15.20 C1.15.14 C1.15.03 C1.15.21 C1.15.06 C1.15.09 C1.15.22 C1.15.16 C1.15.10
+C1.15.16 C1.15.21 C1.15.15 C1.15.09 C1.15.22 C1.15.10 C1.15.11 C1.00.23 C1.00.17 C1.00.12
+C1.15.17 C1.14.19 C1.14.13 C1.15.08 C1.14.21 C1.15.07 C1.15.23 C1.15.18 C1.15.12
+C1.15.18 C1.14.21 C1.15.17 C1.15.07 C1.15.23 C1.15.12 C1.15.24 C1.15.19 C1.15.13
+C1.15.19 C1.15.23 C1.15.18 C1.15.12 C1.15.24 C1.15.13 C1.15.25 C1.15.20 C1.15.14
+C1.15.20 C1.15.24 C1.15.19 C1.15.13 C1.15.25 C1.15.14 C1.15.26 C1.15.21 C1.15.15
+C1.15.21 C1.15.25 C1.15.20 C1.15.14 C1.15.26 C1.15.15 C1.15.27 C1.15.22 C1.15.16
+C1.15.22 C1.15.26 C1.15.21 C1.15.15 C1.15.27 C1.15.16 C1.00.28 C1.00.23 C1.00.17
+C1.15.23 C1.14.26 C1.14.21 C1.15.17 C1.15.28 C1.15.18 C1.15.29 C1.15.24 C1.15.19
+C1.15.24 C1.15.28 C1.15.23 C1.15.18 C1.15.29 C1.15.19 C1.15.30 C1.15.25 C1.15.20
+C1.15.25 C1.15.29 C1.15.24 C1.15.19 C1.15.30 C1.15.20 C1.15.31 C1.15.26 C1.15.21
+C1.15.26 C1.15.30 C1.15.25 C1.15.20 C1.15.31 C1.15.21 C1.15.32 C1.15.27 C1.15.22
+C1.15.27 C1.15.31 C1.15.26 C1.15.21 C1.15.32 C1.15.22 C1.00.33 C1.00.28 C1.00.23
+C1.15.28 C1.14.31 C1.14.26 C1.14.21 C1.14.33 C1.15.23 C1.15.33 C1.15.29 C1.15.24
+C1.15.29 C1.14.33 C1.15.28 C1.15.23 C1.15.33 C1.15.24 C1.15.34 C1.15.30 C1.15.25
+C1.15.30 C1.15.33 C1.15.29 C1.15.24 C1.15.34 C1.15.25 C1.15.35 C1.15.31 C1.15.26
+C1.15.31 C1.15.34 C1.15.30 C1.15.25 C1.15.35 C1.15.26 C1.15.36 C1.15.32 C1.15.27
+C1.15.32 C1.15.35 C1.15.31 C1.15.26 C1.15.36 C1.15.27 C1.00.37 C1.00.33 C1.00.28
+C1.15.33 C1.14.38 C1.14.33 C1.15.28 C1.15.37 C1.15.29 C1.15.38 C1.15.34 C1.15.30
+C1.15.34 C1.15.37 C1.15.33 C1.15.29 C1.15.38 C1.15.30 C1.15.39 C1.15.35 C1.15.31
+C1.15.35 C1.15.38 C1.15.34 C1.15.30 C1.15.39 C1.15.31 C1.15.40 C1.15.36 C1.15.32
+C1.15.36 C1.15.39 C1.15.35 C1.15.31 C1.15.40 C1.15.32 C1.00.41 C1.00.37 C1.00.33
+C1.15.37 C1.14.41 C1.14.38 C1.14.33 C1.15.41 C1.15.33 C1.15.42 C1.15.38 C1.15.34
+C1.15.38 C1.15.41 C1.15.37 C1.15.33 C1.15.42 C1.15.34 C1.15.43 C1.15.39 C1.15.35
+C1.15.39 C1.15.42 C1.15.38 C1.15.34 C1.15.43 C1.15.35 C1.15.44 C1.15.40 C1.15.36
+C1.15.40 C1.15.43 C1.15.39 C1.15.35 C1.15.44 C1.15.36 C1.00.45 C1.00.41 C1.00.37
+C1.15.41 C1.14.43 C1.14.41 C1.14.38 C1.14.45 C1.15.37 C1.15.45 C1.15.42 C1.15.38
+C1.15.42 C1.14.45 C1.15.41 C1.15.37 C1.15.45 C1.15.38 C1.15.46 C1.15.43 C1.15.39
+C1.15.43 C1.15.45 C1.15.42 C1.15.38 C1.15.46 C1.15.39 C1.15.47 C1.15.44 C1.15.40
+C1.15.44 C1.15.46 C1.15.43 C1.15.39 C1.15.47 C1.15.40 C1.00.48 C1.00.45 C1.00.41
+C1.15.45 C1.14.47 C1.14.45 C1.15.41 C1.15.48 C1.15.42 C1.15.49 C1.15.46 C1.15.43
+C1.15.46 C1.15.48 C1.15.45 C1.15.42 C1.15.49 C1.15.43 C1.15.50 C1.15.47 C1.15.44
+C1.15.47 C1.15.49 C1.15.46 C1.15.43 C1.15.50 C1.15.44 C1.00.51 C1.00.48 C1.00.45
+C1.15.48 C1.14.49 C1.14.47 C1.14.45 C1.14.50 C1.15.45 C1.15.51 C1.15.49 C1.15.46
+C1.15.49 C1.14.50 C1.15.48 C1.15.45 C1.15.51 C1.15.46 C1.15.52 C1.15.50 C1.15.47
+C1.15.50 C1.15.51 C1.15.49 C1.15.46 C1.15.52 C1.15.47 C1.00.53 C1.00.51 C1.00.48
+C1.15.51 C1.14.50 C1.15.48 C1.14.53 C1.15.53 C1.15.49 C1.15.54 C1.15.55 C1.15.52 C1.15.50
+C1.15.52 C1.15.51 C1.15.49 C1.15.54 C1.15.55 C1.15.50 C1.15.56 C1.00.56 C1.00.53 C1.00.51
+C1.15.53 C1.14.50 C1.14.55 C1.14.53 C1.14.57 C1.15.51 C1.15.57 C1.15.54
+C1.15.54 C1.14.57 C1.15.53 C1.15.51 C1.15.57 C1.15.58 C1.15.55 C1.15.52
+C1.15.55 C1.15.51 C1.15.57 C1.15.54 C1.15.58 C1.15.52 C1.15.59 C1.15.56
+C1.15.56 C1.15.58 C1.15.55 C1.15.52 C1.15.59 C1.00.59 C1.00.56 C1.00.53
+C1.15.57 C1.14.59 C1.14.57 C1.15.53 C1.15.60 C1.15.54 C1.15.61 C1.15.58 C1.15.55
+C1.15.58 C1.15.60 C1.15.57 C1.15.54 C1.15.61 C1.15.55 C1.15.62 C1.15.59 C1.15.56
+C1.15.59 C1.15.61 C1.15.58 C1.15.55 C1.15.62 C1.15.56 C1.00.62 C1.00.59 C1.00.56
+C1.15.60 C1.14.59 C1.14.57 C1.14.62 C1.15.57 C1.15.61 C1.15.58
+C1.15.61 C1.14.62 C1.15.60 C1.15.57 C1.15.58 C1.15.62 C1.15.59
+C1.15.62 C1.15.61 C1.15.58 C1.15.59 C1.00.62 C1.00.59
+C2.00.00 C2.00.06 C2.00.01 C2.00.05
+C2.00.01 C2.00.06 C2.00.02 C2.00.05 C2.00.00
+C2.00.02 C2.15.06 C2.15.01 C2.00.06 C2.00.01
+C2.00.03 C2.00.08 C2.00.04 C2.00.07 C2.01.04
+C2.00.04 C2.00.09 C2.00.05 C2.00.08 C2.00.07 C2.00.03
+C2.00.05 C2.00.10 C2.00.06 C2.00.01 C2.00.09 C2.00.00 C2.00.08 C2.00.04
+C2.00.06 C2.15.10 C2.15.06 C2.15.01 C2.00.10 C2.00.02 C2.00.01 C2.00.09 C2.00.05 C2.00.00
+C2.00.07 C2.00.11 C2.00.08 C2.00.04 C2.01.10 C2.00.03 C2.01.07 C2.01.04
+C2.00.08 C2.00.12 C2.00.09 C2.00.05 C2.00.11 C2.00.04 C2.01.10 C2.00.07 C2.00.03
+C2.00.09 C2.00.13 C2.00.10 C2.00.06 C2.00.12 C2.00.05 C2.00.11 C2.00.08 C2.00.04
+C2.00.10 C2.15.13 C2.15.10 C2.15.06 C2.00.13 C2.00.06 C2.00.12 C2.00.09 C2.00.05
+C2.00.11 C2.00.15 C2.00.12 C2.00.09 C2.00.14 C2.00.08 C2.01.13 C2.01.10 C2.00.07
+C2.00.12 C2.00.16 C2.00.13 C2.00.10 C2.00.15 C2.00.09 C2.00.14 C2.00.11 C2.00.08
+C2.00.13 C2.15.16 C2.15.13 C2.15.10 C2.00.16 C2.00.10 C2.00.15 C2.00.12 C2.00.09
+C2.00.14 C2.00.18 C2.00.15 C2.00.12 C2.00.17 C2.00.11 C2.01.16 C2.01.13 C2.01.10
+C2.00.15 C2.00.19 C2.00.16 C2.00.13 C2.00.18 C2.00.12 C2.00.17 C2.00.14 C2.00.11
+C2.00.16 C2.15.19 C2.15.16 C2.15.13 C2.00.19 C2.00.13 C2.00.18 C2.00.15 C2.00.12
+C2.00.17 C2.00.20 C2.00.18 C2.00.15 C2.01.20 C2.00.14 C2.01.18 C2.01.16 C2.01.13
+C2.00.18 C2.00.21 C2.00.19 C2.00.16 C2.00.20 C2.00.15 C2.01.20 C2.00.17 C2.00.14
+C2.00.19 C2.15.21 C2.15.19 C2.15.16 C2.00.21 C2.00.16 C2.00.20 C2.00.18 C2.00.15
+C2.00.20 C2.00.23 C2.00.21 C2.00.19 C2.00.22 C2.00.18 C2.01.22 C2.01.20 C2.00.17
+C2.00.21 C2.15.23 C2.15.21 C2.15.19 C2.00.23 C2.00.19 C2.00.22 C2.00.20 C2.00.18
+C2.00.22 C2.00.25 C2.00.23 C2.00.21 C2.00.24 C2.00.20 C2.01.24 C2.01.22 C2.01.20
+C2.00.23 C2.15.25 C2.15.23 C2.15.21 C2.00.25 C2.00.21 C2.00.24 C2.00.22 C2.00.20
+C2.00.24 C2.00.26 C2.00.25 C2.00.23 C2.01.26 C2.00.22 C2.01.25 C2.01.24 C2.01.22
+C2.00.25 C2.15.26 C2.15.25 C2.15.23 C2.00.26 C2.00.23 C2.01.26 C2.00.24 C2.00.22
+C2.00.26 C2.15.27 C2.15.26 C2.15.25 C2.00.27 C2.00.25 C2.01.28 C2.01.26 C2.00.24
+C2.00.27 C2.15.27 C2.15.26 C2.15.29 C2.00.29 C2.00.26 C2.00.28 C2.01.30 C2.01.28 C2.01.26
+C2.00.28 C2.00.29 C2.00.27 C2.01.31 C2.01.30 C2.01.28
+C2.00.29 C2.15.27 C2.15.29 C2.00.27 C2.00.28
+C2.01.00 C2.01.05 C2.02.06 C2.02.00
+C2.01.01 C2.01.05 C2.01.03
+C2.01.02 C2.01.07 C2.01.04 C2.01.06
+C2.01.03 C2.01.09 C2.01.06 C2.01.05 C2.01.01
+C2.01.04 C2.01.10 C2.00.07 C2.00.03 C2.01.07 C2.01.06 C2.01.02
+C2.01.05 C2.01.12 C2.01.09 C2.01.06 C2.01.08 C2.01.03 C2.01.01 C2.02.06 C2.01.00
+C2.01.06 C2.01.11 C2.01.07 C2.01.04 C2.01.09 C2.01.02 C2.01.05 C2.01.03
+C2.01.07 C2.01.13 C2.01.10 C2.00.07 C2.01.11 C2.01.04 C2.01.09 C2.01.06 C2.01.02
+C2.01.08 C2.01.14 C2.01.12 C2.01.09 C2.02.11 C2.01.05 C2.02.09 C2.02.06
+C2.01.09 C2.01.15 C2.01.11 C2.01.07 C2.01.12 C2.01.06 C2.01.08 C2.01.05 C2.01.03
+C2.01.10 C2.00.14 C2.00.11 C2.00.08 C2.01.13 C2.00.07 C2.01.11 C2.01.07 C2.01.04
+C2.01.11 C2.01.16 C2.01.13 C2.01.10 C2.01.15 C2.01.07 C2.01.12 C2.01.09 C2.01.06
+C2.01.12 C2.01.17 C2.01.15 C2.01.11 C2.01.14 C2.01.09 C2.02.11 C2.01.08 C2.01.05
+C2.01.13 C2.00.17 C2.00.14 C2.00.11 C2.01.16 C2.01.10 C2.01.15 C2.01.11 C2.01.07
+C2.01.14 C2.01.19 C2.01.17 C2.01.15 C2.02.16 C2.01.12 C2.02.14 C2.02.11 C2.01.08
+C2.01.15 C2.01.18 C2.01.16 C2.01.13 C2.01.17 C2.01.11 C2.01.14 C2.01.12 C2.01.09
+C2.01.16 C2.01.20 C2.00.17 C2.00.14 C2.01.18 C2.01.13 C2.01.17 C2.01.15 C2.01.11
+C2.01.17 C2.01.21 C2.01.18 C2.01.16 C2.01.19 C2.01.15 C2.02.16 C2.01.14 C2.01.12
+C2.01.18 C2.01.22 C2.01.20 C2.00.17 C2.01.21 C2.01.16 C2.01.19 C2.01.17 C2.01.15
+C2.01.19 C2.01.23 C2.01.21 C2.01.18 C2.02.20 C2.01.17 C2.02.18 C2.02.16 C2.01.14
+C2.01.20 C2.00.22 C2.00.20 C2.00.18 C2.01.22 C2.00.17 C2.01.21 C2.01.18 C2.01.16
+C2.01.21 C2.01.24 C2.01.22 C2.01.20 C2.01.23 C2.01.18 C2.02.20 C2.01.19 C2.01.17
+C2.01.22 C2.00.24 C2.00.22 C2.00.20 C2.01.24 C2.01.20 C2.01.23 C2.01.21 C2.01.18
+C2.01.23 C2.01.25 C2.01.24 C2.01.22 C2.02.24 C2.01.21 C2.02.22 C2.02.20 C2.01.19
+C2.01.24 C2.01.26 C2.00.24 C2.00.22 C2.01.25 C2.01.22 C2.02.24 C2.01.23 C2.01.21
+C2.01.25 C2.01.28 C2.01.26 C2.00.24 C2.01.27 C2.01.24 C2.02.25 C2.02.24 C2.01.23
+C2.01.26 C2.00.27 C2.00.26 C2.00.25 C2.01.28 C2.00.24 C2.01.27 C2.01.25 C2.01.24
+C2.01.27 C2.01.28 C2.01.26 C2.01.29 C2.02.27 C2.01.25 C2.02.26 C2.02.25 C2.02.24
+C2.01.28 C2.00.27 C2.00.26 C2.00.28 C2.01.30 C2.01.26 C2.01.29 C2.02.27 C2.01.27 C2.01.25
+C2.01.29 C2.01.31 C2.01.30 C2.01.28 C2.02.29 C2.02.27 C2.01.27
+C2.01.30 C2.00.27 C2.00.28 C2.01.31 C2.01.28 C2.02.29 C2.01.29
+C2.01.31 C2.00.28 C2.01.30 C2.02.30 C2.02.29 C2.01.29
+C2.02.00 C2.02.06 C2.01.00 C2.02.03
+C2.02.01 C2.02.08 C2.02.07 C2.02.02
+C2.02.02 C2.02.08 C2.02.07 C2.02.01 C2.03.01 C2.02.04
+C2.02.03 C2.02.09 C2.02.06 C2.02.00 C2.02.05
+C2.02.04 C2.03.06 C2.02.08 C2.03.01 C2.02.02
+C2.02.05 C2.02.10 C2.02.09 C2.02.07 C2.02.03
+C2.02.06 C2.02.11 C2.01.08 C2.01.05 C2.02.09 C2.01.00 C2.02.00 C2.02.03
+C2.02.07 C2.02.12 C2.02.10 C2.02.09 C2.02.08 C2.02.05 C2.02.01 C2.02.02
+C2.02.08 C2.02.13 C2.02.12 C2.02.10 C2.03.06 C2.02.07 C2.02.01 C2.03.01 C2.02.04 C2.02.02
+C2.02.09 C2.02.14 C2.02.11 C2.01.08 C2.02.10 C2.02.06 C2.02.07 C2.02.05 C2.02.03
+C2.02.10 C2.02.15 C2.02.14 C2.02.11 C2.02.12 C2.02.09 C2.02.08 C2.02.07 C2.02.05
+C2.02.11 C2.02.16 C2.01.14 C2.01.12 C2.02.14 C2.01.08 C2.02.10 C2.02.09 C2.02.06
+C2.02.12 C2.02.17 C2.02.15 C2.02.14 C2.02.13 C2.02.10 C2.03.06 C2.02.08 C2.02.07
+C2.02.13 C2.03.15 C2.02.17 C2.02.15 C2.03.11 C2.02.12 C2.03.07 C2.03.06 C2.02.08
+C2.02.14 C2.02.18 C2.02.16 C2.01.14 C2.02.15 C2.02.11 C2.02.12 C2.02.10 C2.02.09
+C2.02.15 C2.02.19 C2.02.18 C2.02.16 C2.02.17 C2.02.14 C2.02.13 C2.02.12 C2.02.10
+C2.02.16 C2.02.20 C2.01.19 C2.01.17 C2.02.18 C2.01.14 C2.02.15 C2.02.14 C2.02.11
+C2.02.17 C2.02.21 C2.02.19 C2.02.18 C2.03.15 C2.02.15 C2.03.11 C2.02.13 C2.02.12
+C2.02.18 C2.02.22 C2.02.20 C2.01.19 C2.02.19 C2.02.16 C2.02.17 C2.02.15 C2.02.14
+C2.02.19 C2.02.23 C2.02.22 C2.02.20 C2.02.21 C2.02.18 C2.03.15 C2.02.17 C2.02.15
+C2.02.20 C2.02.24 C2.01.23 C2.01.21 C2.02.22 C2.01.19 C2.02.19 C2.02.18 C2.02.16
+C2.02.21 C2.03.22 C2.02.23 C2.02.22 C2.03.19 C2.02.19 C2.03.16 C2.03.15 C2.02.17
+C2.02.22 C2.02.25 C2.02.24 C2.01.23 C2.02.23 C2.02.20 C2.02.21 C2.02.19 C2.02.18
+C2.02.23 C2.02.26 C2.02.25 C2.02.24 C2.03.22 C2.02.22 C2.03.19 C2.02.21 C2.02.19
+C2.02.24 C2.01.27 C2.01.25 C2.01.24 C2.02.25 C2.01.23 C2.02.23 C2.02.22 C2.02.20
+C2.02.25 C2.02.27 C2.01.27 C2.01.25 C2.02.26 C2.02.24 C2.03.22 C2.02.23 C2.02.22
+C2.02.26 C2.02.28 C2.02.27 C2.01.27 C2.03.25 C2.02.25 C2.03.23 C2.03.22 C2.02.23
+C2.02.27 C2.01.28 C2.02.30 C2.02.29 C2.01.29 C2.02.28 C2.01.27 C2.03.25 C2.02.26 C2.02.25
+C2.02.28 C2.02.30 C2.02.29 C2.02.31 C2.03.29 C2.02.27 C2.03.27 C2.03.26 C2.03.25 C2.02.26
+C2.02.29 C2.01.31 C2.01.30 C2.02.30 C2.01.29 C2.02.28 C2.02.27
+C2.02.30 C2.01.31 C2.02.29 C2.02.31 C2.02.28 C2.02.27
+C2.02.31 C2.02.30 C2.03.30 C2.03.29 C2.02.28
+C2.03.00 C2.04.05 C2.03.05 C2.03.04 C2.03.03 C2.04.00
+C2.03.01 C2.03.07 C2.03.06 C2.02.08 C2.03.02 C2.02.04 C2.02.02
+C2.03.02 C2.03.08 C2.03.07 C2.03.06 C2.03.03 C2.03.01
+C2.03.03 C2.03.09 C2.03.08 C2.03.07 C2.03.04 C2.03.02 C2.03.00
+C2.03.04 C2.03.10 C2.03.09 C2.03.08 C2.03.05 C2.03.03 C2.03.00
+C2.03.05 C2.04.10 C2.03.10 C2.03.09 C2.04.05 C2.03.04 C2.04.00 C2.03.00
+C2.03.06 C2.03.11 C2.02.13 C2.02.12 C2.03.07 C2.02.08 C2.03.02 C2.03.01 C2.02.04
+C2.03.07 C2.03.12 C2.03.11 C2.02.13 C2.03.08 C2.03.06 C2.03.03 C2.03.02 C2.03.01
+C2.03.08 C2.03.13 C2.03.12 C2.03.11 C2.03.09 C2.03.07 C2.03.04 C2.03.03 C2.03.02
+C2.03.09 C2.03.14 C2.03.13 C2.03.12 C2.03.10 C2.03.08 C2.03.05 C2.03.04 C2.03.03
+C2.03.10 C2.04.14 C2.03.14 C2.03.13 C2.04.10 C2.03.09 C2.04.05 C2.03.05 C2.03.04
+C2.03.11 C2.03.16 C2.03.15 C2.02.17 C2.03.12 C2.02.13 C2.03.08 C2.03.07 C2.03.06
+C2.03.12 C2.03.17 C2.03.16 C2.03.15 C2.03.13 C2.03.11 C2.03.09 C2.03.08 C2.03.07
+C2.03.13 C2.03.18 C2.03.17 C2.03.16 C2.03.14 C2.03.12 C2.03.10 C2.03.09 C2.03.08
+C2.03.14 C2.04.18 C2.03.18 C2.03.17 C2.04.14 C2.03.13 C2.04.10 C2.03.10 C2.03.09
+C2.03.15 C2.03.19 C2.02.21 C2.02.19 C2.03.16 C2.02.17 C2.03.12 C2.03.11 C2.02.13
+C2.03.16 C2.03.20 C2.03.19 C2.02.21 C2.03.17 C2.03.15 C2.03.13 C2.03.12 C2.03.11
+C2.03.17 C2.03.21 C2.03.20 C2.03.19 C2.03.18 C2.03.16 C2.03.14 C2.03.13 C2.03.12
+C2.03.18 C2.04.21 C2.03.21 C2.03.20 C2.04.18 C2.03.17 C2.04.14 C2.03.14 C2.03.13
+C2.03.19 C2.03.23 C2.03.22 C2.02.23 C2.03.20 C2.02.21 C2.03.17 C2.03.16 C2.03.15
+C2.03.20 C2.03.24 C2.03.23 C2.03.22 C2.03.21 C2.03.19 C2.03.18 C2.03.17 C2.03.16
+C2.03.21 C2.04.24 C2.03.24 C2.03.23 C2.04.21 C2.03.20 C2.04.18 C2.03.18 C2.03.17
+C2.03.22 C2.03.25 C2.02.26 C2.02.25 C2.03.23 C2.02.23 C2.03.20 C2.03.19 C2.02.21
+C2.03.23 C2.03.26 C2.03.25 C2.02.26 C2.03.24 C2.03.22 C2.03.21 C2.03.20 C2.03.19
+C2.03.24 C2.04.26 C2.03.26 C2.03.25 C2.04.24 C2.03.23 C2.04.21 C2.03.21 C2.03.20
+C2.03.25 C2.02.28 C2.02.27 C2.03.27 C2.03.26 C2.02.26 C2.03.24 C2.03.23 C2.03.22
+C2.03.26 C2.02.28 C2.04.28 C2.03.28 C2.03.27 C2.04.26 C2.03.25 C2.04.24 C2.03.24 C2.03.23
+C2.03.27 C2.03.30 C2.03.29 C2.02.28 C2.03.28 C2.03.26 C2.03.25
+C2.03.28 C2.04.30 C2.03.30 C2.03.29 C2.04.28 C2.03.27 C2.04.26 C2.03.26
+C2.03.29 C2.02.31 C2.03.30 C2.02.28 C2.03.28 C2.03.27
+C2.03.30 C2.02.31 C2.04.30 C2.03.29 C2.04.28 C2.03.28 C2.03.27
+C2.04.00 C2.04.03 C2.04.04 C2.04.05 C2.03.05 C2.03.00
+C2.04.01 C2.05.08 C2.04.06 C2.04.07 C2.05.02 C2.05.04 C2.04.02
+C2.04.02 C2.04.06 C2.04.07 C2.04.08 C2.04.01 C2.04.03
+C2.04.03 C2.04.07 C2.04.08 C2.04.09 C2.04.02 C2.04.04 C2.04.00
+C2.04.04 C2.04.08 C2.04.09 C2.04.10 C2.04.03 C2.04.05 C2.04.00
+C2.04.05 C2.04.09 C2.04.10 C2.03.10 C2.04.04 C2.03.05 C2.04.00 C2.03.00
+C2.04.06 C2.05.12 C2.05.13 C2.04.11 C2.05.08 C2.04.07 C2.05.04 C2.04.01 C2.04.02
+C2.04.07 C2.05.13 C2.04.11 C2.04.12 C2.04.06 C2.04.08 C2.04.01 C2.04.02 C2.04.03
+C2.04.08 C2.04.11 C2.04.12 C2.04.13 C2.04.07 C2.04.09 C2.04.02 C2.04.03 C2.04.04
+C2.04.09 C2.04.12 C2.04.13 C2.04.14 C2.04.08 C2.04.10 C2.04.03 C2.04.04 C2.04.05
+C2.04.10 C2.04.13 C2.04.14 C2.03.14 C2.04.09 C2.03.10 C2.04.04 C2.04.05 C2.03.05
+C2.04.11 C2.05.17 C2.04.15 C2.04.16 C2.05.13 C2.04.12 C2.04.06 C2.04.07 C2.04.08
+C2.04.12 C2.04.15 C2.04.16 C2.04.17 C2.04.11 C2.04.13 C2.04.07 C2.04.08 C2.04.09
+C2.04.13 C2.04.16 C2.04.17 C2.04.18 C2.04.12 C2.04.14 C2.04.08 C2.04.09 C2.04.10
+C2.04.14 C2.04.17 C2.04.18 C2.03.18 C2.04.13 C2.03.14 C2.04.09 C2.04.10 C2.03.10
+C2.04.15 C2.05.19 C2.05.21 C2.04.19 C2.05.17 C2.04.16 C2.05.13 C2.04.11 C2.04.12
+C2.04.16 C2.05.21 C2.04.19 C2.04.20 C2.04.15 C2.04.17 C2.04.11 C2.04.12 C2.04.13
+C2.04.17 C2.04.19 C2.04.20 C2.04.21 C2.04.16 C2.04.18 C2.04.12 C2.04.13 C2.04.14
+C2.04.18 C2.04.20 C2.04.21 C2.03.21 C2.04.17 C2.03.18 C2.04.13 C2.04.14 C2.03.14
+C2.04.19 C2.05.23 C2.04.22 C2.04.23 C2.05.21 C2.04.20 C2.04.15 C2.04.16 C2.04.17
+C2.04.20 C2.04.22 C2.04.23 C2.04.24 C2.04.19 C2.04.21 C2.04.16 C2.04.17 C2.04.18
+C2.04.21 C2.04.23 C2.04.24 C2.03.24 C2.04.20 C2.03.21 C2.04.17 C2.04.18 C2.03.18
+C2.04.22 C2.05.25 C2.05.26 C2.04.25 C2.05.23 C2.04.23 C2.05.21 C2.04.19 C2.04.20
+C2.04.23 C2.05.26 C2.04.25 C2.04.26 C2.04.22 C2.04.24 C2.04.19 C2.04.20 C2.04.21
+C2.04.24 C2.04.25 C2.04.26 C2.03.26 C2.04.23 C2.03.24 C2.04.20 C2.04.21 C2.03.21
+C2.04.25 C2.05.27 C2.05.28 C2.04.27 C2.05.26 C2.04.26 C2.04.22 C2.04.23 C2.04.24
+C2.04.26 C2.05.28 C2.04.27 C2.04.28 C2.03.28 C2.04.25 C2.03.26 C2.04.23 C2.04.24 C2.03.24
+C2.04.27 C2.05.28 C2.04.29 C2.04.30 C2.04.28 C2.04.25 C2.04.26
+C2.04.28 C2.04.29 C2.04.30 C2.03.30 C2.04.27 C2.03.28 C2.04.26 C2.03.26
+C2.04.29 C2.05.31 C2.05.28 C2.04.30 C2.04.27 C2.04.28
+C2.04.30 C2.04.29 C2.03.30 C2.04.27 C2.04.28 C2.03.28
+C2.05.00 C2.05.07 C2.05.08 C2.05.02
+C2.05.01 C2.06.03 C2.06.00 C2.05.06
+C2.05.02 C2.05.07 C2.05.08 C2.05.00 C2.05.04 C2.04.01
+C2.05.03 C2.05.06 C2.05.09 C2.05.05
+C2.05.04 C2.05.08 C2.04.06 C2.05.02 C2.04.01
+C2.05.05 C2.05.09 C2.05.10 C2.05.03 C2.05.07
+C2.05.06 C2.06.08 C2.05.11 C2.06.03 C2.05.09 C2.05.01 C2.05.03
+C2.05.07 C2.05.09 C2.05.10 C2.05.12 C2.05.05 C2.05.08 C2.05.00 C2.05.02
+C2.05.08 C2.05.10 C2.05.12 C2.05.13 C2.05.07 C2.04.06 C2.05.00 C2.05.02 C2.05.04 C2.04.01
+C2.05.09 C2.06.08 C2.05.11 C2.05.14 C2.05.06 C2.05.10 C2.05.03 C2.05.05 C2.05.07
+C2.05.10 C2.05.11 C2.05.14 C2.05.15 C2.05.09 C2.05.12 C2.05.05 C2.05.07 C2.05.08
+C2.05.11 C2.06.12 C2.06.14 C2.05.16 C2.06.08 C2.05.14 C2.05.06 C2.05.09 C2.05.10
+C2.05.12 C2.05.14 C2.05.15 C2.05.17 C2.05.10 C2.05.13 C2.05.07 C2.05.08 C2.04.06
+C2.05.13 C2.05.15 C2.05.17 C2.04.15 C2.05.12 C2.04.11 C2.05.08 C2.04.06 C2.04.07
+C2.05.14 C2.06.14 C2.05.16 C2.05.18 C2.05.11 C2.05.15 C2.05.09 C2.05.10 C2.05.12
+C2.05.15 C2.05.16 C2.05.18 C2.05.19 C2.05.14 C2.05.17 C2.05.10 C2.05.12 C2.05.13
+C2.05.16 C2.06.17 C2.06.19 C2.05.20 C2.06.14 C2.05.18 C2.05.11 C2.05.14 C2.05.15
+C2.05.17 C2.05.18 C2.05.19 C2.05.21 C2.05.15 C2.04.15 C2.05.12 C2.05.13 C2.04.11
+C2.05.18 C2.06.19 C2.05.20 C2.05.22 C2.05.16 C2.05.19 C2.05.14 C2.05.15 C2.05.17
+C2.05.19 C2.05.20 C2.05.22 C2.05.23 C2.05.18 C2.05.21 C2.05.15 C2.05.17 C2.04.15
+C2.05.20 C2.06.21 C2.06.23 C2.05.24 C2.06.19 C2.05.22 C2.05.16 C2.05.18 C2.05.19
+C2.05.21 C2.05.22 C2.05.23 C2.04.22 C2.05.19 C2.04.19 C2.05.17 C2.04.15 C2.04.16
+C2.05.22 C2.06.23 C2.05.24 C2.05.25 C2.05.20 C2.05.23 C2.05.18 C2.05.19 C2.05.21
+C2.05.23 C2.05.24 C2.05.25 C2.05.26 C2.05.22 C2.04.22 C2.05.19 C2.05.21 C2.04.19
+C2.05.24 C2.06.24 C2.06.25 C2.06.27 C2.06.23 C2.05.25 C2.05.20 C2.05.22 C2.05.23
+C2.05.25 C2.06.25 C2.06.27 C2.05.27 C2.05.24 C2.05.26 C2.05.22 C2.05.23 C2.04.22
+C2.05.26 C2.06.27 C2.05.27 C2.05.28 C2.05.25 C2.04.25 C2.05.23 C2.04.22 C2.04.23
+C2.05.27 C2.06.28 C2.05.30 C2.05.29 C2.06.27 C2.05.28 C2.05.25 C2.05.26 C2.04.25
+C2.05.28 C2.05.30 C2.05.31 C2.05.27 C2.04.29 C2.04.27 C2.05.26 C2.04.25 C2.04.26
+C2.05.29 C2.06.31 C2.06.28 C2.06.29 C2.05.30 C2.06.27 C2.05.27
+C2.05.30 C2.06.31 C2.06.29 C2.05.29 C2.05.31 C2.05.27 C2.05.28
+C2.05.31 C2.05.30 C2.05.28 C2.04.29
+C2.06.00 C2.06.05 C2.06.03 C2.05.01
+C2.06.01 C2.06.06 C2.06.05
+C2.06.02 C2.06.04 C2.06.07 C2.06.06
+C2.06.03 C2.06.05 C2.06.08 C2.06.00 C2.05.06 C2.05.01
+C2.06.04 C2.07.03 C2.07.07 C2.06.10 C2.06.07 C2.06.02 C2.06.06
+C2.06.05 C2.06.06 C2.06.09 C2.06.12 C2.06.01 C2.06.08 C2.06.03 C2.06.00
+C2.06.06 C2.06.04 C2.06.07 C2.06.11 C2.06.02 C2.06.09 C2.06.01 C2.06.05
+C2.06.07 C2.07.07 C2.06.10 C2.06.13 C2.06.04 C2.06.11 C2.06.02 C2.06.06 C2.06.09
+C2.06.08 C2.06.09 C2.06.12 C2.06.14 C2.06.05 C2.05.11 C2.06.03 C2.05.06 C2.05.09
+C2.06.09 C2.06.07 C2.06.11 C2.06.15 C2.06.06 C2.06.12 C2.06.05 C2.06.08
+C2.06.10 C2.07.08 C2.07.11 C2.07.14 C2.07.07 C2.06.13 C2.06.04 C2.06.07 C2.06.11
+C2.06.11 C2.06.10 C2.06.13 C2.06.16 C2.06.07 C2.06.15 C2.06.06 C2.06.09 C2.06.12
+C2.06.12 C2.06.11 C2.06.15 C2.06.17 C2.06.09 C2.06.14 C2.06.05 C2.06.08 C2.05.11
+C2.06.13 C2.07.11 C2.07.14 C2.07.17 C2.06.10 C2.06.16 C2.06.07 C2.06.11 C2.06.15
+C2.06.14 C2.06.15 C2.06.17 C2.06.19 C2.06.12 C2.05.16 C2.06.08 C2.05.11 C2.05.14
+C2.06.15 C2.06.13 C2.06.16 C2.06.18 C2.06.11 C2.06.17 C2.06.09 C2.06.12 C2.06.14
+C2.06.16 C2.07.14 C2.07.17 C2.06.20 C2.06.13 C2.06.18 C2.06.11 C2.06.15 C2.06.17
+C2.06.17 C2.06.16 C2.06.18 C2.06.21 C2.06.15 C2.06.19 C2.06.12 C2.06.14 C2.05.16
+C2.06.18 C2.07.17 C2.06.20 C2.06.22 C2.06.16 C2.06.21 C2.06.15 C2.06.17 C2.06.19
+C2.06.19 C2.06.18 C2.06.21 C2.06.23 C2.06.17 C2.05.20 C2.06.14 C2.05.16 C2.05.18
+C2.06.20 C2.07.18 C2.07.20 C2.07.22 C2.07.17 C2.06.22 C2.06.16 C2.06.18 C2.06.21
+C2.06.21 C2.06.20 C2.06.22 C2.06.24 C2.06.18 C2.06.23 C2.06.17 C2.06.19 C2.05.20
+C2.06.22 C2.07.20 C2.07.22 C2.07.24 C2.06.20 C2.06.24 C2.06.18 C2.06.21 C2.06.23
+C2.06.23 C2.06.22 C2.06.24 C2.06.25 C2.06.21 C2.05.24 C2.06.19 C2.05.20 C2.05.22
+C2.06.24 C2.07.22 C2.07.24 C2.06.26 C2.06.22 C2.06.25 C2.06.21 C2.06.23 C2.05.24
+C2.06.25 C2.07.24 C2.06.26 C2.06.28 C2.06.24 C2.06.27 C2.06.23 C2.05.24 C2.05.25
+C2.06.26 C2.07.25 C2.07.26 C2.07.27 C2.07.24 C2.06.28 C2.06.24 C2.06.25 C2.06.27
+C2.06.27 C2.06.26 C2.06.28 C2.05.29 C2.06.25 C2.05.27 C2.05.24 C2.05.25 C2.05.26
+C2.06.28 C2.07.26 C2.07.27 C2.07.28 C2.06.26 C2.06.30 C2.06.29 C2.05.29 C2.06.25 C2.06.27 C2.05.27
+C2.06.29 C2.06.31 C2.06.28 C2.06.30 C2.05.30 C2.05.29
+C2.06.30 C2.07.27 C2.07.28 C2.06.31 C2.06.28 C2.06.29
+C2.06.31 C2.07.28 C2.06.30 C2.06.29 C2.05.30 C2.05.29
+C2.07.00 C2.07.06 C2.07.02 C2.07.05
+C2.07.01 C2.08.06 C2.08.00 C2.07.06 C2.07.02
+C2.07.02 C2.07.01 C2.07.06 C2.07.00 C2.07.05
+C2.07.03 C2.07.04 C2.07.08 C2.07.07 C2.06.04
+C2.07.04 C2.07.05 C2.07.09 C2.07.08 C2.07.03 C2.07.07
+C2.07.05 C2.07.06 C2.07.10 C2.07.02 C2.07.00 C2.07.09 C2.07.04 C2.07.08
+C2.07.06 C2.08.06 C2.08.10 C2.08.00 C2.07.01 C2.07.10 C2.07.02 C2.07.00 C2.07.05 C2.07.09
+C2.07.07 C2.07.04 C2.07.08 C2.07.11 C2.07.03 C2.06.10 C2.06.04 C2.06.07
+C2.07.08 C2.07.05 C2.07.09 C2.07.12 C2.07.04 C2.07.11 C2.07.03 C2.07.07 C2.06.10
+C2.07.09 C2.07.06 C2.07.10 C2.07.13 C2.07.05 C2.07.12 C2.07.04 C2.07.08 C2.07.11
+C2.07.10 C2.08.06 C2.08.10 C2.08.13 C2.07.06 C2.07.13 C2.07.05 C2.07.09 C2.07.12
+C2.07.11 C2.07.09 C2.07.12 C2.07.15 C2.07.08 C2.07.14 C2.07.07 C2.06.10 C2.06.13
+C2.07.12 C2.07.10 C2.07.13 C2.07.16 C2.07.09 C2.07.15 C2.07.08 C2.07.11 C2.07.14
+C2.07.13 C2.08.10 C2.08.13 C2.08.16 C2.07.10 C2.07.16 C2.07.09 C2.07.12 C2.07.15
+C2.07.14 C2.07.12 C2.07.15 C2.07.18 C2.07.11 C2.07.17 C2.06.10 C2.06.13 C2.06.16
+C2.07.15 C2.07.13 C2.07.16 C2.07.19 C2.07.12 C2.07.18 C2.07.11 C2.07.14 C2.07.17
+C2.07.16 C2.08.13 C2.08.16 C2.08.19 C2.07.13 C2.07.19 C2.07.12 C2.07.15 C2.07.18
+C2.07.17 C2.07.15 C2.07.18 C2.07.20 C2.07.14 C2.06.20 C2.06.13 C2.06.16 C2.06.18
+C2.07.18 C2.07.16 C2.07.19 C2.07.21 C2.07.15 C2.07.20 C2.07.14 C2.07.17 C2.06.20
+C2.07.19 C2.08.16 C2.08.19 C2.08.21 C2.07.16 C2.07.21 C2.07.15 C2.07.18 C2.07.20
+C2.07.20 C2.07.19 C2.07.21 C2.07.23 C2.07.18 C2.07.22 C2.07.17 C2.06.20 C2.06.22
+C2.07.21 C2.08.19 C2.08.21 C2.08.23 C2.07.19 C2.07.23 C2.07.18 C2.07.20 C2.07.22
+C2.07.22 C2.07.21 C2.07.23 C2.07.25 C2.07.20 C2.07.24 C2.06.20 C2.06.22 C2.06.24
+C2.07.23 C2.08.21 C2.08.23 C2.08.25 C2.07.21 C2.07.25 C2.07.20 C2.07.22 C2.07.24
+C2.07.24 C2.07.23 C2.07.25 C2.07.26 C2.07.22 C2.06.26 C2.06.22 C2.06.24 C2.06.25
+C2.07.25 C2.08.23 C2.08.25 C2.08.26 C2.07.23 C2.07.26 C2.07.22 C2.07.24 C2.06.26
+C2.07.26 C2.08.25 C2.08.26 C2.08.27 C2.07.25 C2.07.27 C2.07.24 C2.06.26 C2.06.28
+C2.07.27 C2.08.26 C2.08.27 C2.08.29 C2.07.26 C2.07.29 C2.07.28 C2.06.26 C2.06.28 C2.06.30
+C2.07.28 C2.07.27 C2.07.29 C2.06.31 C2.06.28 C2.06.30
+C2.07.29 C2.08.27 C2.08.29 C2.07.27 C2.07.28
+C2.08.00 C2.08.01 C2.08.06 C2.07.01 C2.07.06
+C2.08.01 C2.08.05 C2.08.02 C2.08.06 C2.08.00
+C2.08.02 C2.08.05 C2.08.01 C2.08.06
+C2.08.03 C2.09.04 C2.08.07 C2.08.04 C2.08.08
+C2.08.04 C2.08.03 C2.08.07 C2.08.08 C2.08.05 C2.08.09
+C2.08.05 C2.08.04 C2.08.08 C2.08.09 C2.08.02 C2.08.01 C2.08.06 C2.08.10
+C2.08.06 C2.08.05 C2.08.09 C2.08.02 C2.08.01 C2.08.10 C2.08.00 C2.07.01 C2.07.06 C2.07.10
+C2.08.07 C2.09.04 C2.09.07 C2.08.03 C2.09.10 C2.08.04 C2.08.08 C2.08.11
+C2.08.08 C2.08.03 C2.08.07 C2.09.10 C2.08.04 C2.08.11 C2.08.05 C2.08.09 C2.08.12
+C2.08.09 C2.08.04 C2.08.08 C2.08.11 C2.08.05 C2.08.12 C2.08.06 C2.08.10 C2.08.13
+C2.08.10 C2.08.05 C2.08.09 C2.08.12 C2.08.06 C2.08.13 C2.07.06 C2.07.10 C2.07.13
+C2.08.11 C2.08.07 C2.09.10 C2.09.13 C2.08.08 C2.08.14 C2.08.09 C2.08.12 C2.08.15
+C2.08.12 C2.08.08 C2.08.11 C2.08.14 C2.08.09 C2.08.15 C2.08.10 C2.08.13 C2.08.16
+C2.08.13 C2.08.09 C2.08.12 C2.08.15 C2.08.10 C2.08.16 C2.07.10 C2.07.13 C2.07.16
+C2.08.14 C2.09.10 C2.09.13 C2.09.16 C2.08.11 C2.08.17 C2.08.12 C2.08.15 C2.08.18
+C2.08.15 C2.08.11 C2.08.14 C2.08.17 C2.08.12 C2.08.18 C2.08.13 C2.08.16 C2.08.19
+C2.08.16 C2.08.12 C2.08.15 C2.08.18 C2.08.13 C2.08.19 C2.07.13 C2.07.16 C2.07.19
+C2.08.17 C2.09.13 C2.09.16 C2.09.18 C2.08.14 C2.09.20 C2.08.15 C2.08.18 C2.08.20
+C2.08.18 C2.08.14 C2.08.17 C2.09.20 C2.08.15 C2.08.20 C2.08.16 C2.08.19 C2.08.21
+C2.08.19 C2.08.15 C2.08.18 C2.08.20 C2.08.16 C2.08.21 C2.07.16 C2.07.19 C2.07.21
+C2.08.20 C2.08.17 C2.09.20 C2.09.22 C2.08.18 C2.08.22 C2.08.19 C2.08.21 C2.08.23
+C2.08.21 C2.08.18 C2.08.20 C2.08.22 C2.08.19 C2.08.23 C2.07.19 C2.07.21 C2.07.23
+C2.08.22 C2.09.20 C2.09.22 C2.09.24 C2.08.20 C2.08.24 C2.08.21 C2.08.23 C2.08.25
+C2.08.23 C2.08.20 C2.08.22 C2.08.24 C2.08.21 C2.08.25 C2.07.21 C2.07.23 C2.07.25
+C2.08.24 C2.09.22 C2.09.24 C2.09.25 C2.08.22 C2.09.26 C2.08.23 C2.08.25 C2.08.26
+C2.08.25 C2.08.22 C2.08.24 C2.09.26 C2.08.23 C2.08.26 C2.07.23 C2.07.25 C2.07.26
+C2.08.26 C2.08.24 C2.09.26 C2.09.28 C2.08.25 C2.08.27 C2.07.25 C2.07.26 C2.07.27
+C2.08.27 C2.09.26 C2.09.28 C2.09.30 C2.08.26 C2.08.28 C2.08.29 C2.07.26 C2.07.27 C2.07.29
+C2.08.28 C2.09.28 C2.09.30 C2.09.31 C2.08.27 C2.08.29
+C2.08.29 C2.08.27 C2.08.28 C2.07.27 C2.07.29
+C2.09.00 C2.10.00 C2.10.06 C2.09.05
+C2.09.01 C2.09.05 C2.09.03
+C2.09.02 C2.09.06 C2.09.04 C2.09.07
+C2.09.03 C2.09.05 C2.09.01 C2.09.06 C2.09.09
+C2.09.04 C2.09.06 C2.09.02 C2.09.07 C2.08.03 C2.08.07 C2.09.10
+C2.09.05 C2.10.06 C2.09.00 C2.09.08 C2.09.01 C2.09.03 C2.09.06 C2.09.09 C2.09.12
+C2.09.06 C2.09.05 C2.09.03 C2.09.09 C2.09.02 C2.09.04 C2.09.07 C2.09.11
+C2.09.07 C2.09.06 C2.09.09 C2.09.02 C2.09.04 C2.09.11 C2.08.07 C2.09.10 C2.09.13
+C2.09.08 C2.10.06 C2.10.09 C2.09.05 C2.10.11 C2.09.09 C2.09.12 C2.09.14
+C2.09.09 C2.09.05 C2.09.08 C2.09.03 C2.09.06 C2.09.12 C2.09.07 C2.09.11 C2.09.15
+C2.09.10 C2.09.04 C2.09.07 C2.09.11 C2.08.07 C2.09.13 C2.08.08 C2.08.11 C2.08.14
+C2.09.11 C2.09.06 C2.09.09 C2.09.12 C2.09.07 C2.09.15 C2.09.10 C2.09.13 C2.09.16
+C2.09.12 C2.09.05 C2.09.08 C2.10.11 C2.09.09 C2.09.14 C2.09.11 C2.09.15 C2.09.17
+C2.09.13 C2.09.07 C2.09.11 C2.09.15 C2.09.10 C2.09.16 C2.08.11 C2.08.14 C2.08.17
+C2.09.14 C2.09.08 C2.10.11 C2.10.14 C2.09.12 C2.10.16 C2.09.15 C2.09.17 C2.09.19
+C2.09.15 C2.09.09 C2.09.12 C2.09.14 C2.09.11 C2.09.17 C2.09.13 C2.09.16 C2.09.18
+C2.09.16 C2.09.11 C2.09.15 C2.09.17 C2.09.13 C2.09.18 C2.08.14 C2.08.17 C2.09.20
+C2.09.17 C2.09.12 C2.09.14 C2.10.16 C2.09.15 C2.09.19 C2.09.16 C2.09.18 C2.09.21
+C2.09.18 C2.09.15 C2.09.17 C2.09.19 C2.09.16 C2.09.21 C2.08.17 C2.09.20 C2.09.22
+C2.09.19 C2.09.14 C2.10.16 C2.10.18 C2.09.17 C2.10.20 C2.09.18 C2.09.21 C2.09.23
+C2.09.20 C2.09.16 C2.09.18 C2.09.21 C2.08.17 C2.09.22 C2.08.18 C2.08.20 C2.08.22
+C2.09.21 C2.09.17 C2.09.19 C2.10.20 C2.09.18 C2.09.23 C2.09.20 C2.09.22 C2.09.24
+C2.09.22 C2.09.18 C2.09.21 C2.09.23 C2.09.20 C2.09.24 C2.08.20 C2.08.22 C2.08.24
+C2.09.23 C2.09.19 C2.10.20 C2.10.22 C2.09.21 C2.10.24 C2.09.22 C2.09.24 C2.09.25
+C2.09.24 C2.09.21 C2.09.23 C2.10.24 C2.09.22 C2.09.25 C2.08.22 C2.08.24 C2.09.26
+C2.09.25 C2.09.23 C2.10.24 C2.10.25 C2.09.24 C2.09.27 C2.08.24 C2.09.26 C2.09.28
+C2.09.26 C2.09.24 C2.09.25 C2.09.27 C2.08.24 C2.09.28 C2.08.25 C2.08.26 C2.08.27
+C2.09.27 C2.10.24 C2.10.25 C2.10.26 C2.09.25 C2.10.27 C2.09.26 C2.09.28 C2.09.29
+C2.09.28 C2.09.25 C2.09.27 C2.10.27 C2.09.26 C2.09.29 C2.09.30 C2.08.26 C2.08.27 C2.08.28
+C2.09.29 C2.09.27 C2.10.27 C2.09.28 C2.10.29 C2.09.30 C2.09.31
+C2.09.30 C2.09.28 C2.09.29 C2.10.29 C2.09.31 C2.08.27 C2.08.28
+C2.09.31 C2.09.29 C2.10.29 C2.10.30 C2.09.30 C2.08.28
+C2.10.00 C2.10.03 C2.10.06 C2.09.00
+C2.10.01 C2.10.02 C2.10.07 C2.10.08
+C2.10.02 C2.11.01 C2.10.04 C2.10.01 C2.10.07 C2.10.08
+C2.10.03 C2.10.05 C2.10.00 C2.10.06 C2.10.09
+C2.10.04 C2.11.01 C2.10.02 C2.10.08 C2.11.06
+C2.10.05 C2.10.07 C2.10.03 C2.10.09 C2.10.10
+C2.10.06 C2.10.03 C2.10.00 C2.10.09 C2.09.00 C2.09.05 C2.09.08 C2.10.11
+C2.10.07 C2.10.02 C2.10.01 C2.10.08 C2.10.05 C2.10.09 C2.10.10 C2.10.12
+C2.10.08 C2.11.01 C2.10.02 C2.10.04 C2.10.01 C2.10.07 C2.11.06 C2.10.10 C2.10.12 C2.10.13
+C2.10.09 C2.10.07 C2.10.05 C2.10.03 C2.10.06 C2.10.10 C2.09.08 C2.10.11 C2.10.14
+C2.10.10 C2.10.07 C2.10.08 C2.10.05 C2.10.09 C2.10.12 C2.10.11 C2.10.14 C2.10.15
+C2.10.11 C2.10.06 C2.10.09 C2.10.10 C2.09.08 C2.10.14 C2.09.12 C2.09.14 C2.10.16
+C2.10.12 C2.10.07 C2.10.08 C2.11.06 C2.10.10 C2.10.13 C2.10.14 C2.10.15 C2.10.17
+C2.10.13 C2.10.08 C2.11.06 C2.11.07 C2.10.12 C2.11.11 C2.10.15 C2.10.17 C2.11.15
+C2.10.14 C2.10.09 C2.10.10 C2.10.12 C2.10.11 C2.10.15 C2.09.14 C2.10.16 C2.10.18
+C2.10.15 C2.10.10 C2.10.12 C2.10.13 C2.10.14 C2.10.17 C2.10.16 C2.10.18 C2.10.19
+C2.10.16 C2.10.11 C2.10.14 C2.10.15 C2.09.14 C2.10.18 C2.09.17 C2.09.19 C2.10.20
+C2.10.17 C2.10.12 C2.10.13 C2.11.11 C2.10.15 C2.11.15 C2.10.18 C2.10.19 C2.10.21
+C2.10.18 C2.10.14 C2.10.15 C2.10.17 C2.10.16 C2.10.19 C2.09.19 C2.10.20 C2.10.22
+C2.10.19 C2.10.15 C2.10.17 C2.11.15 C2.10.18 C2.10.21 C2.10.20 C2.10.22 C2.10.23
+C2.10.20 C2.10.16 C2.10.18 C2.10.19 C2.09.19 C2.10.22 C2.09.21 C2.09.23 C2.10.24
+C2.10.21 C2.10.17 C2.11.15 C2.11.16 C2.10.19 C2.11.19 C2.10.22 C2.10.23 C2.11.22
+C2.10.22 C2.10.18 C2.10.19 C2.10.21 C2.10.20 C2.10.23 C2.09.23 C2.10.24 C2.10.25
+C2.10.23 C2.10.19 C2.10.21 C2.11.19 C2.10.22 C2.11.22 C2.10.24 C2.10.25 C2.10.26
+C2.10.24 C2.10.20 C2.10.22 C2.10.23 C2.09.23 C2.10.25 C2.09.24 C2.09.25 C2.09.27
+C2.10.25 C2.10.22 C2.10.23 C2.11.22 C2.10.24 C2.10.26 C2.09.25 C2.09.27 C2.10.27
+C2.10.26 C2.10.23 C2.11.22 C2.11.23 C2.10.25 C2.11.25 C2.09.27 C2.10.27 C2.10.28
+C2.10.27 C2.10.25 C2.10.26 C2.11.25 C2.09.27 C2.10.28 C2.09.28 C2.09.29 C2.10.29 C2.10.30
+C2.10.28 C2.10.26 C2.11.25 C2.11.26 C2.10.27 C2.11.27 C2.11.29 C2.10.29 C2.10.30 C2.10.31
+C2.10.29 C2.10.27 C2.10.28 C2.09.29 C2.10.30 C2.09.30 C2.09.31
+C2.10.30 C2.10.27 C2.10.28 C2.10.29 C2.10.31 C2.09.31
+C2.10.31 C2.10.28 C2.11.29 C2.11.30 C2.10.30
+C2.11.00 C2.12.00 C2.11.03 C2.11.04 C2.11.05 C2.12.05
+C2.11.01 C2.11.02 C2.10.02 C2.10.04 C2.10.08 C2.11.06 C2.11.07
+C2.11.02 C2.11.01 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C2.11.03 C2.11.00 C2.11.02 C2.11.04 C2.11.07 C2.11.08 C2.11.09
+C2.11.04 C2.11.00 C2.11.03 C2.11.05 C2.11.08 C2.11.09 C2.11.10
+C2.11.05 C2.11.00 C2.12.00 C2.11.04 C2.12.05 C2.11.09 C2.11.10 C2.12.10
+C2.11.06 C2.11.01 C2.11.02 C2.10.04 C2.10.08 C2.11.07 C2.10.12 C2.10.13 C2.11.11
+C2.11.07 C2.11.01 C2.11.02 C2.11.03 C2.11.06 C2.11.08 C2.10.13 C2.11.11 C2.11.12
+C2.11.08 C2.11.02 C2.11.03 C2.11.04 C2.11.07 C2.11.09 C2.11.11 C2.11.12 C2.11.13
+C2.11.09 C2.11.03 C2.11.04 C2.11.05 C2.11.08 C2.11.10 C2.11.12 C2.11.13 C2.11.14
+C2.11.10 C2.11.04 C2.11.05 C2.12.05 C2.11.09 C2.12.10 C2.11.13 C2.11.14 C2.12.14
+C2.11.11 C2.11.06 C2.11.07 C2.11.08 C2.10.13 C2.11.12 C2.10.17 C2.11.15 C2.11.16
+C2.11.12 C2.11.07 C2.11.08 C2.11.09 C2.11.11 C2.11.13 C2.11.15 C2.11.16 C2.11.17
+C2.11.13 C2.11.08 C2.11.09 C2.11.10 C2.11.12 C2.11.14 C2.11.16 C2.11.17 C2.11.18
+C2.11.14 C2.11.09 C2.11.10 C2.12.10 C2.11.13 C2.12.14 C2.11.17 C2.11.18 C2.12.18
+C2.11.15 C2.10.13 C2.11.11 C2.11.12 C2.10.17 C2.11.16 C2.10.19 C2.10.21 C2.11.19
+C2.11.16 C2.11.11 C2.11.12 C2.11.13 C2.11.15 C2.11.17 C2.10.21 C2.11.19 C2.11.20
+C2.11.17 C2.11.12 C2.11.13 C2.11.14 C2.11.16 C2.11.18 C2.11.19 C2.11.20 C2.11.21
+C2.11.18 C2.11.13 C2.11.14 C2.12.14 C2.11.17 C2.12.18 C2.11.20 C2.11.21 C2.12.21
+C2.11.19 C2.11.15 C2.11.16 C2.11.17 C2.10.21 C2.11.20 C2.10.23 C2.11.22 C2.11.23
+C2.11.20 C2.11.16 C2.11.17 C2.11.18 C2.11.19 C2.11.21 C2.11.22 C2.11.23 C2.11.24
+C2.11.21 C2.11.17 C2.11.18 C2.12.18 C2.11.20 C2.12.21 C2.11.23 C2.11.24 C2.12.24
+C2.11.22 C2.10.21 C2.11.19 C2.11.20 C2.10.23 C2.11.23 C2.10.25 C2.10.26 C2.11.25
+C2.11.23 C2.11.19 C2.11.20 C2.11.21 C2.11.22 C2.11.24 C2.10.26 C2.11.25 C2.11.26
+C2.11.24 C2.11.20 C2.11.21 C2.12.21 C2.11.23 C2.12.24 C2.11.25 C2.11.26 C2.12.26
+C2.11.25 C2.11.22 C2.11.23 C2.11.24 C2.10.26 C2.11.26 C2.10.27 C2.10.28 C2.11.27
+C2.11.26 C2.11.23 C2.11.24 C2.12.24 C2.11.25 C2.12.26 C2.10.28 C2.11.27 C2.11.28 C2.12.28
+C2.11.27 C2.11.25 C2.11.26 C2.10.28 C2.11.28 C2.11.29 C2.11.30
+C2.11.28 C2.11.26 C2.12.26 C2.11.27 C2.12.28 C2.11.29 C2.11.30 C2.12.30
+C2.11.29 C2.10.28 C2.11.27 C2.11.28 C2.11.30 C2.10.31
+C2.11.30 C2.11.27 C2.11.28 C2.12.28 C2.11.29 C2.12.30 C2.10.31
+C2.12.00 C2.11.00 C2.11.05 C2.12.05 C2.12.04 C2.12.03
+C2.12.01 C2.12.02 C2.13.04 C2.13.02 C2.12.07 C2.12.06 C2.13.08
+C2.12.02 C2.12.03 C2.12.01 C2.12.08 C2.12.07 C2.12.06
+C2.12.03 C2.12.00 C2.12.04 C2.12.02 C2.12.09 C2.12.08 C2.12.07
+C2.12.04 C2.12.00 C2.12.05 C2.12.03 C2.12.10 C2.12.09 C2.12.08
+C2.12.05 C2.11.00 C2.12.00 C2.11.05 C2.12.04 C2.11.10 C2.12.10 C2.12.09
+C2.12.06 C2.12.02 C2.12.01 C2.13.04 C2.12.07 C2.13.08 C2.12.11 C2.13.13 C2.13.12
+C2.12.07 C2.12.03 C2.12.02 C2.12.01 C2.12.08 C2.12.06 C2.12.12 C2.12.11 C2.13.13
+C2.12.08 C2.12.04 C2.12.03 C2.12.02 C2.12.09 C2.12.07 C2.12.13 C2.12.12 C2.12.11
+C2.12.09 C2.12.05 C2.12.04 C2.12.03 C2.12.10 C2.12.08 C2.12.14 C2.12.13 C2.12.12
+C2.12.10 C2.11.05 C2.12.05 C2.12.04 C2.11.10 C2.12.09 C2.11.14 C2.12.14 C2.12.13
+C2.12.11 C2.12.08 C2.12.07 C2.12.06 C2.12.12 C2.13.13 C2.12.16 C2.12.15 C2.13.17
+C2.12.12 C2.12.09 C2.12.08 C2.12.07 C2.12.13 C2.12.11 C2.12.17 C2.12.16 C2.12.15
+C2.12.13 C2.12.10 C2.12.09 C2.12.08 C2.12.14 C2.12.12 C2.12.18 C2.12.17 C2.12.16
+C2.12.14 C2.11.10 C2.12.10 C2.12.09 C2.11.14 C2.12.13 C2.11.18 C2.12.18 C2.12.17
+C2.12.15 C2.12.12 C2.12.11 C2.13.13 C2.12.16 C2.13.17 C2.12.19 C2.13.21 C2.13.19
+C2.12.16 C2.12.13 C2.12.12 C2.12.11 C2.12.17 C2.12.15 C2.12.20 C2.12.19 C2.13.21
+C2.12.17 C2.12.14 C2.12.13 C2.12.12 C2.12.18 C2.12.16 C2.12.21 C2.12.20 C2.12.19
+C2.12.18 C2.11.14 C2.12.14 C2.12.13 C2.11.18 C2.12.17 C2.11.21 C2.12.21 C2.12.20
+C2.12.19 C2.12.17 C2.12.16 C2.12.15 C2.12.20 C2.13.21 C2.12.23 C2.12.22 C2.13.23
+C2.12.20 C2.12.18 C2.12.17 C2.12.16 C2.12.21 C2.12.19 C2.12.24 C2.12.23 C2.12.22
+C2.12.21 C2.11.18 C2.12.18 C2.12.17 C2.11.21 C2.12.20 C2.11.24 C2.12.24 C2.12.23
+C2.12.22 C2.12.20 C2.12.19 C2.13.21 C2.12.23 C2.13.23 C2.12.25 C2.13.26 C2.13.25
+C2.12.23 C2.12.21 C2.12.20 C2.12.19 C2.12.24 C2.12.22 C2.12.26 C2.12.25 C2.13.26
+C2.12.24 C2.11.21 C2.12.21 C2.12.20 C2.11.24 C2.12.23 C2.11.26 C2.12.26 C2.12.25
+C2.12.25 C2.12.24 C2.12.23 C2.12.22 C2.12.26 C2.13.26 C2.12.27 C2.13.28 C2.13.27
+C2.12.26 C2.11.24 C2.12.24 C2.12.23 C2.11.26 C2.12.25 C2.11.28 C2.12.28 C2.12.27 C2.13.28
+C2.12.27 C2.12.26 C2.12.25 C2.12.28 C2.13.28 C2.12.30 C2.12.29
+C2.12.28 C2.11.26 C2.12.26 C2.11.28 C2.12.27 C2.11.30 C2.12.30 C2.12.29
+C2.12.29 C2.12.28 C2.12.27 C2.13.28 C2.12.30 C2.13.31
+C2.12.30 C2.11.28 C2.12.28 C2.12.27 C2.11.30 C2.12.29
+C2.13.00 C2.13.02 C2.13.08 C2.13.07
+C2.13.01 C2.13.06 C2.14.00 C2.14.03
+C2.13.02 C2.12.01 C2.13.04 C2.13.00 C2.13.08 C2.13.07
+C2.13.03 C2.13.05 C2.13.09 C2.13.06
+C2.13.04 C2.12.01 C2.13.02 C2.12.06 C2.13.08
+C2.13.05 C2.13.07 C2.13.03 C2.13.10 C2.13.09
+C2.13.06 C2.13.03 C2.13.09 C2.13.01 C2.14.03 C2.13.11 C2.14.08
+C2.13.07 C2.13.02 C2.13.00 C2.13.08 C2.13.05 C2.13.12 C2.13.10 C2.13.09
+C2.13.08 C2.12.01 C2.13.04 C2.13.02 C2.13.00 C2.12.06 C2.13.07 C2.13.13 C2.13.12 C2.13.10
+C2.13.09 C2.13.07 C2.13.05 C2.13.03 C2.13.10 C2.13.06 C2.13.14 C2.13.11 C2.14.08
+C2.13.10 C2.13.08 C2.13.07 C2.13.05 C2.13.12 C2.13.09 C2.13.15 C2.13.14 C2.13.11
+C2.13.11 C2.13.10 C2.13.09 C2.13.06 C2.13.14 C2.14.08 C2.13.16 C2.14.14 C2.14.12
+C2.13.12 C2.12.06 C2.13.08 C2.13.07 C2.13.13 C2.13.10 C2.13.17 C2.13.15 C2.13.14
+C2.13.13 C2.12.07 C2.12.06 C2.13.08 C2.12.11 C2.13.12 C2.12.15 C2.13.17 C2.13.15
+C2.13.14 C2.13.12 C2.13.10 C2.13.09 C2.13.15 C2.13.11 C2.13.18 C2.13.16 C2.14.14
+C2.13.15 C2.13.13 C2.13.12 C2.13.10 C2.13.17 C2.13.14 C2.13.19 C2.13.18 C2.13.16
+C2.13.16 C2.13.15 C2.13.14 C2.13.11 C2.13.18 C2.14.14 C2.13.20 C2.14.19 C2.14.17
+C2.13.17 C2.12.11 C2.13.13 C2.13.12 C2.12.15 C2.13.15 C2.13.21 C2.13.19 C2.13.18
+C2.13.18 C2.13.17 C2.13.15 C2.13.14 C2.13.19 C2.13.16 C2.13.22 C2.13.20 C2.14.19
+C2.13.19 C2.12.15 C2.13.17 C2.13.15 C2.13.21 C2.13.18 C2.13.23 C2.13.22 C2.13.20
+C2.13.20 C2.13.19 C2.13.18 C2.13.16 C2.13.22 C2.14.19 C2.13.24 C2.14.23 C2.14.21
+C2.13.21 C2.12.16 C2.12.15 C2.13.17 C2.12.19 C2.13.19 C2.12.22 C2.13.23 C2.13.22
+C2.13.22 C2.13.21 C2.13.19 C2.13.18 C2.13.23 C2.13.20 C2.13.25 C2.13.24 C2.14.23
+C2.13.23 C2.12.19 C2.13.21 C2.13.19 C2.12.22 C2.13.22 C2.13.26 C2.13.25 C2.13.24
+C2.13.24 C2.13.23 C2.13.22 C2.13.20 C2.13.25 C2.14.23 C2.14.27 C2.14.25 C2.14.24
+C2.13.25 C2.12.22 C2.13.23 C2.13.22 C2.13.26 C2.13.24 C2.13.27 C2.14.27 C2.14.25
+C2.13.26 C2.12.23 C2.12.22 C2.13.23 C2.12.25 C2.13.25 C2.13.28 C2.13.27 C2.14.27
+C2.13.27 C2.12.25 C2.13.26 C2.13.25 C2.13.28 C2.14.27 C2.13.30 C2.13.29 C2.14.28
+C2.13.28 C2.12.26 C2.12.25 C2.13.26 C2.12.27 C2.13.27 C2.12.29 C2.13.31 C2.13.30
+C2.13.29 C2.13.27 C2.14.27 C2.13.30 C2.14.28 C2.14.31 C2.14.29
+C2.13.30 C2.13.28 C2.13.27 C2.13.31 C2.13.29 C2.14.31 C2.14.29
+C2.13.31 C2.13.28 C2.12.29 C2.13.30
+C2.14.00 C2.13.01 C2.14.03 C2.14.05
+C2.14.01 C2.14.05 C2.14.06
+C2.14.02 C2.14.06 C2.14.07 C2.14.04
+C2.14.03 C2.13.06 C2.13.01 C2.14.00 C2.14.08 C2.14.05
+C2.14.04 C2.14.06 C2.14.02 C2.14.07 C2.15.03 C2.14.10 C2.15.07
+C2.14.05 C2.14.00 C2.14.03 C2.14.08 C2.14.01 C2.14.12 C2.14.09 C2.14.06
+C2.14.06 C2.14.05 C2.14.01 C2.14.09 C2.14.02 C2.14.11 C2.14.07 C2.14.04
+C2.14.07 C2.14.09 C2.14.06 C2.14.02 C2.14.11 C2.14.04 C2.14.13 C2.14.10 C2.15.07
+C2.14.08 C2.13.09 C2.13.06 C2.14.03 C2.13.11 C2.14.05 C2.14.14 C2.14.12 C2.14.09
+C2.14.09 C2.14.08 C2.14.05 C2.14.12 C2.14.06 C2.14.15 C2.14.11 C2.14.07
+C2.14.10 C2.14.11 C2.14.07 C2.14.04 C2.14.13 C2.15.07 C2.15.14 C2.15.11 C2.15.08
+C2.14.11 C2.14.12 C2.14.09 C2.14.06 C2.14.15 C2.14.07 C2.14.16 C2.14.13 C2.14.10
+C2.14.12 C2.13.11 C2.14.08 C2.14.05 C2.14.14 C2.14.09 C2.14.17 C2.14.15 C2.14.11
+C2.14.13 C2.14.15 C2.14.11 C2.14.07 C2.14.16 C2.14.10 C2.15.17 C2.15.14 C2.15.11
+C2.14.14 C2.13.14 C2.13.11 C2.14.08 C2.13.16 C2.14.12 C2.14.19 C2.14.17 C2.14.15
+C2.14.15 C2.14.14 C2.14.12 C2.14.09 C2.14.17 C2.14.11 C2.14.18 C2.14.16 C2.14.13
+C2.14.16 C2.14.17 C2.14.15 C2.14.11 C2.14.18 C2.14.13 C2.14.20 C2.15.17 C2.15.14
+C2.14.17 C2.13.16 C2.14.14 C2.14.12 C2.14.19 C2.14.15 C2.14.21 C2.14.18 C2.14.16
+C2.14.18 C2.14.19 C2.14.17 C2.14.15 C2.14.21 C2.14.16 C2.14.22 C2.14.20 C2.15.17
+C2.14.19 C2.13.18 C2.13.16 C2.14.14 C2.13.20 C2.14.17 C2.14.23 C2.14.21 C2.14.18
+C2.14.20 C2.14.21 C2.14.18 C2.14.16 C2.14.22 C2.15.17 C2.15.22 C2.15.20 C2.15.18
+C2.14.21 C2.13.20 C2.14.19 C2.14.17 C2.14.23 C2.14.18 C2.14.24 C2.14.22 C2.14.20
+C2.14.22 C2.14.23 C2.14.21 C2.14.18 C2.14.24 C2.14.20 C2.15.24 C2.15.22 C2.15.20
+C2.14.23 C2.13.22 C2.13.20 C2.14.19 C2.13.24 C2.14.21 C2.14.25 C2.14.24 C2.14.22
+C2.14.24 C2.13.24 C2.14.23 C2.14.21 C2.14.25 C2.14.22 C2.14.26 C2.15.24 C2.15.22
+C2.14.25 C2.13.25 C2.13.24 C2.14.23 C2.14.27 C2.14.24 C2.14.28 C2.14.26 C2.15.24
+C2.14.26 C2.14.27 C2.14.25 C2.14.24 C2.14.28 C2.15.24 C2.15.27 C2.15.26 C2.15.25
+C2.14.27 C2.13.26 C2.13.25 C2.13.24 C2.13.27 C2.14.25 C2.13.29 C2.14.28 C2.14.26
+C2.14.28 C2.13.27 C2.14.27 C2.14.25 C2.13.29 C2.14.26 C2.14.29 C2.14.30 C2.15.28 C2.15.27 C2.15.26
+C2.14.29 C2.13.30 C2.13.29 C2.14.28 C2.14.31 C2.14.30
+C2.14.30 C2.14.28 C2.14.31 C2.14.29 C2.15.28 C2.15.27
+C2.14.31 C2.13.30 C2.13.29 C2.14.29 C2.14.30 C2.15.28
+C2.15.00 C2.15.05 C2.15.06 C2.15.02
+C2.15.01 C2.15.06 C2.15.02 C2.00.06 C2.00.02
+C2.15.02 C2.15.05 C2.15.00 C2.15.06 C2.15.01
+C2.15.03 C2.14.04 C2.15.07 C2.15.08 C2.15.04
+C2.15.04 C2.15.03 C2.15.07 C2.15.08 C2.15.09 C2.15.05
+C2.15.05 C2.15.08 C2.15.04 C2.15.09 C2.15.00 C2.15.10 C2.15.06 C2.15.02
+C2.15.06 C2.15.09 C2.15.05 C2.15.00 C2.15.10 C2.15.02 C2.15.01 C2.00.10 C2.00.06 C2.00.02
+C2.15.07 C2.14.07 C2.14.04 C2.15.03 C2.14.10 C2.15.11 C2.15.08 C2.15.04
+C2.15.08 C2.15.03 C2.14.10 C2.15.07 C2.15.11 C2.15.04 C2.15.12 C2.15.09 C2.15.05
+C2.15.09 C2.15.11 C2.15.08 C2.15.04 C2.15.12 C2.15.05 C2.15.13 C2.15.10 C2.15.06
+C2.15.10 C2.15.12 C2.15.09 C2.15.05 C2.15.13 C2.15.06 C2.00.13 C2.00.10 C2.00.06
+C2.15.11 C2.14.13 C2.14.10 C2.15.07 C2.15.14 C2.15.08 C2.15.15 C2.15.12 C2.15.09
+C2.15.12 C2.15.14 C2.15.11 C2.15.08 C2.15.15 C2.15.09 C2.15.16 C2.15.13 C2.15.10
+C2.15.13 C2.15.15 C2.15.12 C2.15.09 C2.15.16 C2.15.10 C2.00.16 C2.00.13 C2.00.10
+C2.15.14 C2.14.16 C2.14.13 C2.14.10 C2.15.17 C2.15.11 C2.15.18 C2.15.15 C2.15.12
+C2.15.15 C2.15.17 C2.15.14 C2.15.11 C2.15.18 C2.15.12 C2.15.19 C2.15.16 C2.15.13
+C2.15.16 C2.15.18 C2.15.15 C2.15.12 C2.15.19 C2.15.13 C2.00.19 C2.00.16 C2.00.13
+C2.15.17 C2.14.18 C2.14.16 C2.14.13 C2.14.20 C2.15.14 C2.15.20 C2.15.18 C2.15.15
+C2.15.18 C2.14.20 C2.15.17 C2.15.14 C2.15.20 C2.15.15 C2.15.21 C2.15.19 C2.15.16
+C2.15.19 C2.15.20 C2.15.18 C2.15.15 C2.15.21 C2.15.16 C2.00.21 C2.00.19 C2.00.16
+C2.15.20 C2.14.22 C2.14.20 C2.15.17 C2.15.22 C2.15.18 C2.15.23 C2.15.21 C2.15.19
+C2.15.21 C2.15.22 C2.15.20 C2.15.18 C2.15.23 C2.15.19 C2.00.23 C2.00.21 C2.00.19
+C2.15.22 C2.14.24 C2.14.22 C2.14.20 C2.15.24 C2.15.20 C2.15.25 C2.15.23 C2.15.21
+C2.15.23 C2.15.24 C2.15.22 C2.15.20 C2.15.25 C2.15.21 C2.00.25 C2.00.23 C2.00.21
+C2.15.24 C2.14.25 C2.14.24 C2.14.22 C2.14.26 C2.15.22 C2.15.26 C2.15.25 C2.15.23
+C2.15.25 C2.14.26 C2.15.24 C2.15.22 C2.15.26 C2.15.23 C2.00.26 C2.00.25 C2.00.23
+C2.15.26 C2.14.28 C2.14.26 C2.15.24 C2.15.27 C2.15.25 C2.00.27 C2.00.26 C2.00.25
+C2.15.27 C2.14.28 C2.14.26 C2.14.30 C2.15.28 C2.15.26 C2.15.29 C2.00.29 C2.00.27 C2.00.26
+C2.15.28 C2.14.28 C2.14.31 C2.14.30 C2.15.27 C2.15.29
+C2.15.29 C2.15.28 C2.15.27 C2.00.29 C2.00.27
+C3.00.00 C3.15.03 C3.15.00 C3.00.03 C3.00.02
+C3.00.01 C3.00.05 C3.00.02 C3.00.04 C3.01.03 C3.01.01
+C3.00.02 C3.00.06 C3.00.03 C3.00.00 C3.00.05 C3.00.04 C3.00.01
+C3.00.03 C3.15.06 C3.15.03 C3.15.00 C3.00.06 C3.00.00 C3.00.05 C3.00.02
+C3.00.04 C3.00.08 C3.00.05 C3.00.02 C3.00.07 C3.00.01 C3.01.05 C3.01.03
+C3.00.05 C3.00.09 C3.00.06 C3.00.03 C3.00.08 C3.00.02 C3.00.07 C3.00.04 C3.00.01
+C3.00.06 C3.15.09 C3.15.06 C3.15.03 C3.00.09 C3.00.03 C3.00.08 C3.00.05 C3.00.02
+C3.00.07 C3.00.10 C3.00.08 C3.00.05 C3.01.08 C3.00.04 C3.01.07 C3.01.05 C3.01.03
+C3.00.08 C3.00.11 C3.00.09 C3.00.06 C3.00.10 C3.00.05 C3.01.08 C3.00.07 C3.00.04
+C3.00.09 C3.15.11 C3.15.09 C3.15.06 C3.00.11 C3.00.06 C3.00.10 C3.00.08 C3.00.05
+C3.00.10 C3.00.13 C3.00.11 C3.00.09 C3.00.12 C3.00.08 C3.01.10 C3.01.08 C3.00.07
+C3.00.11 C3.15.13 C3.15.11 C3.15.09 C3.00.13 C3.00.09 C3.00.12 C3.00.10 C3.00.08
+C3.00.12 C3.00.14 C3.00.13 C3.00.11 C3.01.12 C3.00.10 C3.01.11 C3.01.10 C3.01.08
+C3.00.13 C3.15.14 C3.15.13 C3.15.11 C3.00.14 C3.00.11 C3.01.12 C3.00.12 C3.00.10
+C3.00.14 C3.15.14 C3.15.13 C3.15.15 C3.00.15 C3.00.13 C3.01.14 C3.01.12 C3.00.12
+C3.00.15 C3.15.14 C3.15.15 C3.00.14 C3.01.14
+C3.01.00 C3.01.01 C3.01.04 C3.01.02 C3.02.00
+C3.01.01 C3.00.01 C3.01.05 C3.01.03 C3.01.04 C3.01.00
+C3.01.02 C3.01.06 C3.01.04 C3.01.00 C3.02.05 C3.02.03 C3.02.00
+C3.01.03 C3.00.07 C3.00.04 C3.00.01 C3.01.05 C3.01.01 C3.01.04
+C3.01.04 C3.01.07 C3.01.05 C3.01.03 C3.01.01 C3.01.06 C3.01.00 C3.02.05 C3.01.02
+C3.01.05 C3.01.08 C3.00.07 C3.00.04 C3.01.07 C3.01.03 C3.01.01 C3.01.06 C3.01.04
+C3.01.06 C3.01.09 C3.01.07 C3.01.05 C3.02.09 C3.01.04 C3.02.07 C3.02.05 C3.01.02
+C3.01.07 C3.01.10 C3.01.08 C3.00.07 C3.01.09 C3.01.05 C3.02.09 C3.01.06 C3.01.04
+C3.01.08 C3.00.12 C3.00.10 C3.00.08 C3.01.10 C3.00.07 C3.01.09 C3.01.07 C3.01.05
+C3.01.09 C3.01.11 C3.01.10 C3.01.08 C3.02.11 C3.01.07 C3.02.10 C3.02.09 C3.01.06
+C3.01.10 C3.01.12 C3.00.12 C3.00.10 C3.01.11 C3.01.08 C3.02.11 C3.01.09 C3.01.07
+C3.01.11 C3.01.12 C3.00.12 C3.01.13 C3.02.13 C3.01.10 C3.02.12 C3.02.11 C3.01.09
+C3.01.12 C3.00.14 C3.00.13 C3.01.14 C3.00.12 C3.01.13 C3.02.13 C3.01.11 C3.01.10
+C3.01.13 C3.01.14 C3.01.12 C3.01.15 C3.02.14 C3.02.13 C3.01.11
+C3.01.14 C3.00.15 C3.00.14 C3.01.12 C3.01.15 C3.01.13
+C3.01.15 C3.01.14 C3.01.13 C3.02.14
+C3.02.00 C3.01.00 C3.02.05 C3.01.02 C3.02.03 C3.02.01
+C3.02.01 C3.02.04 C3.02.03 C3.02.00 C3.02.02
+C3.02.02 C3.02.06 C3.02.04 C3.02.03 C3.03.05 C3.02.01 C3.03.02
+C3.02.03 C3.02.07 C3.02.05 C3.01.02 C3.02.04 C3.02.00 C3.02.02 C3.02.01
+C3.02.04 C3.02.08 C3.02.07 C3.02.05 C3.02.06 C3.02.03 C3.03.05 C3.02.02 C3.02.01
+C3.02.05 C3.02.09 C3.01.06 C3.01.04 C3.02.07 C3.01.02 C3.02.04 C3.02.03 C3.02.00
+C3.02.06 C3.03.10 C3.02.08 C3.02.07 C3.03.08 C3.02.04 C3.03.06 C3.03.05 C3.02.02
+C3.02.07 C3.02.10 C3.02.09 C3.01.06 C3.02.08 C3.02.05 C3.02.06 C3.02.04 C3.02.03
+C3.02.08 C3.03.12 C3.02.10 C3.02.09 C3.03.10 C3.02.07 C3.03.08 C3.02.06 C3.02.04
+C3.02.09 C3.02.11 C3.01.09 C3.01.07 C3.02.10 C3.01.06 C3.02.08 C3.02.07 C3.02.05
+C3.02.10 C3.02.12 C3.02.11 C3.01.09 C3.03.12 C3.02.09 C3.03.10 C3.02.08 C3.02.07
+C3.02.11 C3.02.13 C3.01.11 C3.01.10 C3.02.12 C3.01.09 C3.03.12 C3.02.10 C3.02.09
+C3.02.12 C3.03.15 C3.02.13 C3.01.11 C3.03.14 C3.02.11 C3.03.13 C3.03.12 C3.02.10
+C3.02.13 C3.01.12 C3.01.13 C3.02.14 C3.03.15 C3.01.11 C3.03.14 C3.02.12 C3.02.11
+C3.02.14 C3.01.15 C3.01.13 C3.03.15 C3.02.13
+C3.03.00 C3.03.04 C3.03.03 C3.03.01
+C3.03.01 C3.04.04 C3.03.04 C3.04.01 C3.03.00
+C3.03.02 C3.03.06 C3.03.05 C3.02.02 C3.03.03
+C3.03.03 C3.03.07 C3.03.06 C3.03.05 C3.03.04 C3.03.02 C3.03.00
+C3.03.04 C3.04.07 C3.03.07 C3.03.06 C3.04.04 C3.03.03 C3.04.01 C3.03.01 C3.03.00
+C3.03.05 C3.03.08 C3.02.06 C3.02.04 C3.03.06 C3.02.02 C3.03.03 C3.03.02
+C3.03.06 C3.03.09 C3.03.08 C3.02.06 C3.03.07 C3.03.05 C3.03.04 C3.03.03 C3.03.02
+C3.03.07 C3.04.09 C3.03.09 C3.03.08 C3.04.07 C3.03.06 C3.04.04 C3.03.04 C3.03.03
+C3.03.08 C3.03.11 C3.03.10 C3.02.08 C3.03.09 C3.02.06 C3.03.07 C3.03.06 C3.03.05
+C3.03.09 C3.04.11 C3.03.11 C3.03.10 C3.04.09 C3.03.08 C3.04.07 C3.03.07 C3.03.06
+C3.03.10 C3.03.13 C3.03.12 C3.02.10 C3.03.11 C3.02.08 C3.03.09 C3.03.08 C3.02.06
+C3.03.11 C3.04.13 C3.03.13 C3.03.12 C3.04.11 C3.03.10 C3.04.09 C3.03.09 C3.03.08
+C3.03.12 C3.03.14 C3.02.12 C3.02.11 C3.03.13 C3.02.10 C3.03.11 C3.03.10 C3.02.08
+C3.03.13 C3.04.14 C3.03.14 C3.02.12 C3.04.13 C3.03.12 C3.04.11 C3.03.11 C3.03.10
+C3.03.14 C3.04.15 C3.03.15 C3.02.13 C3.04.14 C3.02.12 C3.04.13 C3.03.13 C3.03.12
+C3.03.15 C3.02.14 C3.04.15 C3.02.13 C3.04.14 C3.03.14 C3.02.12
+C3.04.00 C3.04.03 C3.04.04 C3.04.01
+C3.04.01 C3.04.04 C3.03.04 C3.04.00 C3.03.01
+C3.04.02 C3.04.05 C3.04.06 C3.05.01 C3.04.03
+C3.04.03 C3.04.05 C3.04.06 C3.04.07 C3.04.02 C3.04.04 C3.04.00
+C3.04.04 C3.04.06 C3.04.07 C3.03.07 C3.04.03 C3.03.04 C3.04.00 C3.04.01 C3.03.01
+C3.04.05 C3.05.04 C3.05.06 C3.04.08 C3.05.02 C3.04.06 C3.05.01 C3.04.02 C3.04.03
+C3.04.06 C3.05.06 C3.04.08 C3.04.09 C3.04.05 C3.04.07 C3.04.02 C3.04.03 C3.04.04
+C3.04.07 C3.04.08 C3.04.09 C3.03.09 C3.04.06 C3.03.07 C3.04.03 C3.04.04 C3.03.04
+C3.04.08 C3.05.08 C3.04.10 C3.04.11 C3.05.06 C3.04.09 C3.04.05 C3.04.06 C3.04.07
+C3.04.09 C3.04.10 C3.04.11 C3.03.11 C3.04.08 C3.03.09 C3.04.06 C3.04.07 C3.03.07
+C3.04.10 C3.05.10 C3.04.12 C3.04.13 C3.05.08 C3.04.11 C3.05.06 C3.04.08 C3.04.09
+C3.04.11 C3.04.12 C3.04.13 C3.03.13 C3.04.10 C3.03.11 C3.04.08 C3.04.09 C3.03.09
+C3.04.12 C3.05.11 C3.05.12 C3.04.14 C3.05.10 C3.04.13 C3.05.08 C3.04.10 C3.04.11
+C3.04.13 C3.05.12 C3.04.14 C3.03.14 C3.04.12 C3.03.13 C3.04.10 C3.04.11 C3.03.11
+C3.04.14 C3.05.13 C3.04.15 C3.03.15 C3.05.12 C3.03.14 C3.04.12 C3.04.13 C3.03.13
+C3.04.15 C3.05.15 C3.05.13 C3.03.15 C3.05.12 C3.04.14 C3.03.14
+C3.05.00 C3.06.01 C3.06.03 C3.05.05 C3.05.03 C3.05.02
+C3.05.01 C3.05.02 C3.04.05 C3.04.02
+C3.05.02 C3.05.00 C3.05.03 C3.05.04 C3.05.06 C3.04.05 C3.05.01
+C3.05.03 C3.06.03 C3.05.05 C3.05.07 C3.05.00 C3.05.04 C3.05.02
+C3.05.04 C3.05.05 C3.05.07 C3.05.08 C3.05.03 C3.05.06 C3.05.02 C3.04.05
+C3.05.05 C3.06.05 C3.06.07 C3.05.09 C3.06.03 C3.05.07 C3.05.00 C3.05.03 C3.05.04
+C3.05.06 C3.05.07 C3.05.08 C3.04.10 C3.05.04 C3.04.08 C3.05.02 C3.04.05 C3.04.06
+C3.05.07 C3.06.07 C3.05.09 C3.05.10 C3.05.05 C3.05.08 C3.05.03 C3.05.04 C3.05.06
+C3.05.08 C3.05.09 C3.05.10 C3.04.12 C3.05.07 C3.04.10 C3.05.04 C3.05.06 C3.04.08
+C3.05.09 C3.06.08 C3.06.10 C3.05.11 C3.06.07 C3.05.10 C3.05.05 C3.05.07 C3.05.08
+C3.05.10 C3.06.10 C3.05.11 C3.05.12 C3.05.09 C3.04.12 C3.05.07 C3.05.08 C3.04.10
+C3.05.11 C3.06.11 C3.06.12 C3.05.13 C3.06.10 C3.05.12 C3.05.09 C3.05.10 C3.04.12
+C3.05.12 C3.06.12 C3.05.13 C3.04.15 C3.05.11 C3.04.14 C3.05.10 C3.04.12 C3.04.13
+C3.05.13 C3.06.13 C3.06.14 C3.05.14 C3.05.15 C3.06.12 C3.04.15 C3.05.11 C3.05.12 C3.04.14
+C3.05.14 C3.06.15 C3.06.14 C3.05.15 C3.05.13
+C3.05.15 C3.05.14 C3.05.13 C3.04.15
+C3.06.00 C3.07.01 C3.06.04 C3.06.02
+C3.06.01 C3.06.02 C3.06.05 C3.06.03 C3.05.00
+C3.06.02 C3.06.04 C3.06.06 C3.06.00 C3.06.05 C3.06.01
+C3.06.03 C3.06.05 C3.06.07 C3.06.01 C3.05.05 C3.05.00 C3.05.03
+C3.06.04 C3.07.01 C3.07.04 C3.07.07 C3.06.06 C3.06.00 C3.06.02 C3.06.05
+C3.06.05 C3.06.04 C3.06.06 C3.06.08 C3.06.02 C3.06.07 C3.06.01 C3.06.03 C3.05.05
+C3.06.06 C3.07.04 C3.07.07 C3.06.09 C3.06.04 C3.06.08 C3.06.02 C3.06.05 C3.06.07
+C3.06.07 C3.06.06 C3.06.08 C3.06.10 C3.06.05 C3.05.09 C3.06.03 C3.05.05 C3.05.07
+C3.06.08 C3.07.07 C3.06.09 C3.06.11 C3.06.06 C3.06.10 C3.06.05 C3.06.07 C3.05.09
+C3.06.09 C3.07.08 C3.07.10 C3.07.12 C3.07.07 C3.06.11 C3.06.06 C3.06.08 C3.06.10
+C3.06.10 C3.06.09 C3.06.11 C3.06.12 C3.06.08 C3.05.11 C3.06.07 C3.05.09 C3.05.10
+C3.06.11 C3.07.10 C3.07.12 C3.06.13 C3.06.09 C3.06.12 C3.06.08 C3.06.10 C3.05.11
+C3.06.12 C3.07.12 C3.06.13 C3.06.14 C3.06.11 C3.05.13 C3.06.10 C3.05.11 C3.05.12
+C3.06.13 C3.07.13 C3.07.14 C3.06.15 C3.07.12 C3.06.14 C3.06.11 C3.06.12 C3.05.13
+C3.06.14 C3.06.15 C3.06.13 C3.05.14 C3.06.12 C3.05.13
+C3.06.15 C3.07.14 C3.07.15 C3.06.13 C3.06.14 C3.05.14
+C3.07.00 C3.08.00 C3.08.03 C3.07.03 C3.07.02
+C3.07.01 C3.07.02 C3.07.05 C3.07.04 C3.06.04 C3.06.00
+C3.07.02 C3.07.00 C3.07.03 C3.07.06 C3.07.05 C3.07.01 C3.07.04
+C3.07.03 C3.08.00 C3.08.03 C3.08.06 C3.07.00 C3.07.06 C3.07.02 C3.07.05
+C3.07.04 C3.07.02 C3.07.05 C3.07.08 C3.07.01 C3.07.07 C3.06.04 C3.06.06
+C3.07.05 C3.07.03 C3.07.06 C3.07.09 C3.07.02 C3.07.08 C3.07.01 C3.07.04 C3.07.07
+C3.07.06 C3.08.03 C3.08.06 C3.08.09 C3.07.03 C3.07.09 C3.07.02 C3.07.05 C3.07.08
+C3.07.07 C3.07.05 C3.07.08 C3.07.10 C3.07.04 C3.06.09 C3.06.04 C3.06.06 C3.06.08
+C3.07.08 C3.07.06 C3.07.09 C3.07.11 C3.07.05 C3.07.10 C3.07.04 C3.07.07 C3.06.09
+C3.07.09 C3.08.06 C3.08.09 C3.08.11 C3.07.06 C3.07.11 C3.07.05 C3.07.08 C3.07.10
+C3.07.10 C3.07.09 C3.07.11 C3.07.13 C3.07.08 C3.07.12 C3.07.07 C3.06.09 C3.06.11
+C3.07.11 C3.08.09 C3.08.11 C3.08.13 C3.07.09 C3.07.13 C3.07.08 C3.07.10 C3.07.12
+C3.07.12 C3.07.11 C3.07.13 C3.07.14 C3.07.10 C3.06.13 C3.06.09 C3.06.11 C3.06.12
+C3.07.13 C3.08.11 C3.08.13 C3.08.14 C3.07.11 C3.07.14 C3.07.10 C3.07.12 C3.06.13
+C3.07.14 C3.08.13 C3.08.14 C3.08.15 C3.07.13 C3.07.15 C3.06.15 C3.07.12 C3.06.13
+C3.07.15 C3.08.14 C3.08.15 C3.07.14 C3.06.15
+C3.08.00 C3.08.02 C3.08.03 C3.07.00 C3.07.03
+C3.08.01 C3.09.01 C3.09.03 C3.08.04 C3.08.02 C3.08.05
+C3.08.02 C3.08.01 C3.08.04 C3.08.05 C3.08.00 C3.08.03 C3.08.06
+C3.08.03 C3.08.02 C3.08.05 C3.08.00 C3.08.06 C3.07.00 C3.07.03 C3.07.06
+C3.08.04 C3.09.03 C3.09.05 C3.08.01 C3.08.07 C3.08.02 C3.08.05 C3.08.08
+C3.08.05 C3.08.01 C3.08.04 C3.08.07 C3.08.02 C3.08.08 C3.08.03 C3.08.06 C3.08.09
+C3.08.06 C3.08.02 C3.08.05 C3.08.08 C3.08.03 C3.08.09 C3.07.03 C3.07.06 C3.07.09
+C3.08.07 C3.09.03 C3.09.05 C3.09.07 C3.08.04 C3.09.08 C3.08.05 C3.08.08 C3.08.10
+C3.08.08 C3.08.04 C3.08.07 C3.09.08 C3.08.05 C3.08.10 C3.08.06 C3.08.09 C3.08.11
+C3.08.09 C3.08.05 C3.08.08 C3.08.10 C3.08.06 C3.08.11 C3.07.06 C3.07.09 C3.07.11
+C3.08.10 C3.08.07 C3.09.08 C3.09.10 C3.08.08 C3.08.12 C3.08.09 C3.08.11 C3.08.13
+C3.08.11 C3.08.08 C3.08.10 C3.08.12 C3.08.09 C3.08.13 C3.07.09 C3.07.11 C3.07.13
+C3.08.12 C3.09.08 C3.09.10 C3.09.11 C3.08.10 C3.09.12 C3.08.11 C3.08.13 C3.08.14
+C3.08.13 C3.08.10 C3.08.12 C3.09.12 C3.08.11 C3.08.14 C3.07.11 C3.07.13 C3.07.14
+C3.08.14 C3.08.12 C3.09.12 C3.09.14 C3.08.13 C3.08.15 C3.07.13 C3.07.14 C3.07.15
+C3.08.15 C3.09.14 C3.08.14 C3.07.14 C3.07.15
+C3.09.00 C3.10.00 C3.09.02 C3.09.04 C3.09.01
+C3.09.01 C3.09.00 C3.09.04 C3.09.03 C3.09.05 C3.08.01
+C3.09.02 C3.10.00 C3.10.03 C3.09.00 C3.10.05 C3.09.04 C3.09.06
+C3.09.03 C3.09.04 C3.09.01 C3.09.05 C3.08.01 C3.08.04 C3.08.07
+C3.09.04 C3.09.00 C3.09.02 C3.10.05 C3.09.06 C3.09.01 C3.09.03 C3.09.05 C3.09.07
+C3.09.05 C3.09.04 C3.09.06 C3.09.01 C3.09.03 C3.09.07 C3.08.04 C3.08.07 C3.09.08
+C3.09.06 C3.09.02 C3.10.05 C3.10.07 C3.09.04 C3.10.09 C3.09.05 C3.09.07 C3.09.09
+C3.09.07 C3.09.04 C3.09.06 C3.10.09 C3.09.05 C3.09.09 C3.08.07 C3.09.08 C3.09.10
+C3.09.08 C3.09.05 C3.09.07 C3.09.09 C3.08.07 C3.09.10 C3.08.08 C3.08.10 C3.08.12
+C3.09.09 C3.09.06 C3.10.09 C3.10.10 C3.09.07 C3.10.11 C3.09.08 C3.09.10 C3.09.11
+C3.09.10 C3.09.07 C3.09.09 C3.10.11 C3.09.08 C3.09.11 C3.08.10 C3.08.12 C3.09.12
+C3.09.11 C3.09.09 C3.10.11 C3.10.12 C3.09.10 C3.10.13 C3.08.12 C3.09.12 C3.09.13
+C3.09.12 C3.09.10 C3.09.11 C3.10.13 C3.08.12 C3.09.13 C3.09.14 C3.08.13 C3.08.14
+C3.09.13 C3.09.11 C3.10.13 C3.09.12 C3.10.14 C3.09.15 C3.09.14
+C3.09.14 C3.09.12 C3.09.13 C3.09.15 C3.08.14 C3.08.15
+C3.09.15 C3.09.13 C3.10.14 C3.09.14
+C3.10.00 C3.10.01 C3.10.03 C3.09.00 C3.09.02 C3.10.05
+C3.10.01 C3.10.02 C3.10.00 C3.10.03 C3.10.04
+C3.10.02 C3.11.02 C3.10.01 C3.11.05 C3.10.03 C3.10.04 C3.10.06
+C3.10.03 C3.10.02 C3.10.01 C3.10.00 C3.10.04 C3.09.02 C3.10.05 C3.10.07
+C3.10.04 C3.10.02 C3.10.01 C3.11.05 C3.10.03 C3.10.06 C3.10.05 C3.10.07 C3.10.08
+C3.10.05 C3.10.00 C3.10.03 C3.10.04 C3.09.02 C3.10.07 C3.09.04 C3.09.06 C3.10.09
+C3.10.06 C3.10.02 C3.11.05 C3.11.06 C3.10.04 C3.11.08 C3.10.07 C3.10.08 C3.11.10
+C3.10.07 C3.10.03 C3.10.04 C3.10.06 C3.10.05 C3.10.08 C3.09.06 C3.10.09 C3.10.10
+C3.10.08 C3.10.04 C3.10.06 C3.11.08 C3.10.07 C3.11.10 C3.10.09 C3.10.10 C3.11.12
+C3.10.09 C3.10.05 C3.10.07 C3.10.08 C3.09.06 C3.10.10 C3.09.07 C3.09.09 C3.10.11
+C3.10.10 C3.10.07 C3.10.08 C3.11.10 C3.10.09 C3.11.12 C3.09.09 C3.10.11 C3.10.12
+C3.10.11 C3.10.09 C3.10.10 C3.11.12 C3.09.09 C3.10.12 C3.09.10 C3.09.11 C3.10.13
+C3.10.12 C3.10.10 C3.11.12 C3.11.13 C3.10.11 C3.11.14 C3.09.11 C3.10.13 C3.11.15
+C3.10.13 C3.10.11 C3.10.12 C3.11.14 C3.09.11 C3.11.15 C3.09.12 C3.09.13 C3.10.14
+C3.10.14 C3.10.13 C3.11.15 C3.09.13 C3.09.15
+C3.11.00 C3.11.01 C3.11.03 C3.11.04
+C3.11.01 C3.11.00 C3.12.01 C3.11.04 C3.12.04
+C3.11.02 C3.11.03 C3.10.02 C3.11.05 C3.11.06
+C3.11.03 C3.11.00 C3.11.02 C3.11.04 C3.11.05 C3.11.06 C3.11.07
+C3.11.04 C3.11.00 C3.11.01 C3.12.01 C3.11.03 C3.12.04 C3.11.06 C3.11.07 C3.12.07
+C3.11.05 C3.11.03 C3.11.02 C3.10.02 C3.11.06 C3.10.04 C3.10.06 C3.11.08
+C3.11.06 C3.11.03 C3.11.02 C3.11.04 C3.11.05 C3.11.07 C3.10.06 C3.11.08 C3.11.09
+C3.11.07 C3.11.03 C3.11.04 C3.12.04 C3.11.06 C3.12.07 C3.11.08 C3.11.09 C3.12.09
+C3.11.08 C3.11.05 C3.11.06 C3.11.07 C3.10.06 C3.11.09 C3.10.08 C3.11.10 C3.11.11
+C3.11.09 C3.11.06 C3.11.07 C3.12.07 C3.11.08 C3.12.09 C3.11.10 C3.11.11 C3.12.11
+C3.11.10 C3.10.06 C3.11.08 C3.11.09 C3.10.08 C3.11.11 C3.10.10 C3.11.12 C3.11.13
+C3.11.11 C3.11.08 C3.11.09 C3.12.09 C3.11.10 C3.12.11 C3.11.12 C3.11.13 C3.12.13
+C3.11.12 C3.10.08 C3.11.10 C3.11.11 C3.10.10 C3.11.13 C3.10.11 C3.10.12 C3.11.14
+C3.11.13 C3.11.10 C3.11.11 C3.12.11 C3.11.12 C3.12.13 C3.10.12 C3.11.14 C3.12.14
+C3.11.14 C3.11.12 C3.11.13 C3.12.13 C3.10.12 C3.12.14 C3.10.13 C3.11.15 C3.12.15
+C3.11.15 C3.10.12 C3.11.14 C3.12.14 C3.10.13 C3.12.15 C3.10.14
+C3.12.00 C3.12.01 C3.12.03 C3.12.04
+C3.12.01 C3.11.01 C3.12.00 C3.11.04 C3.12.04
+C3.12.02 C3.12.03 C3.13.01 C3.12.06 C3.12.05
+C3.12.03 C3.12.00 C3.12.04 C3.12.02 C3.12.07 C3.12.06 C3.12.05
+C3.12.04 C3.11.01 C3.12.01 C3.12.00 C3.12.03 C3.11.04 C3.11.07 C3.12.07 C3.12.06
+C3.12.05 C3.12.03 C3.12.02 C3.13.01 C3.12.06 C3.13.02 C3.12.08 C3.13.06 C3.13.04
+C3.12.06 C3.12.03 C3.12.04 C3.12.02 C3.12.07 C3.12.05 C3.12.09 C3.12.08 C3.13.06
+C3.12.07 C3.12.03 C3.11.04 C3.12.04 C3.11.07 C3.12.06 C3.11.09 C3.12.09 C3.12.08
+C3.12.08 C3.12.07 C3.12.06 C3.12.05 C3.12.09 C3.13.06 C3.12.11 C3.12.10 C3.13.08
+C3.12.09 C3.11.07 C3.12.07 C3.12.06 C3.11.09 C3.12.08 C3.11.11 C3.12.11 C3.12.10
+C3.12.10 C3.12.09 C3.12.08 C3.13.06 C3.12.11 C3.13.08 C3.12.13 C3.12.12 C3.13.10
+C3.12.11 C3.11.09 C3.12.09 C3.12.08 C3.11.11 C3.12.10 C3.11.13 C3.12.13 C3.12.12
+C3.12.12 C3.12.11 C3.12.10 C3.13.08 C3.12.13 C3.13.10 C3.12.14 C3.13.12 C3.13.11
+C3.12.13 C3.11.11 C3.12.11 C3.12.10 C3.11.13 C3.12.12 C3.11.14 C3.12.14 C3.13.12
+C3.12.14 C3.11.13 C3.12.13 C3.12.12 C3.11.14 C3.13.12 C3.11.15 C3.12.15 C3.13.13
+C3.12.15 C3.11.14 C3.12.14 C3.13.12 C3.11.15 C3.13.13 C3.13.15
+C3.13.00 C3.13.02 C3.13.03 C3.14.01 C3.13.05 C3.14.03
+C3.13.01 C3.12.02 C3.12.05 C3.13.02
+C3.13.02 C3.13.01 C3.12.05 C3.13.00 C3.13.06 C3.13.04 C3.13.03
+C3.13.03 C3.13.02 C3.13.00 C3.13.04 C3.13.07 C3.13.05 C3.14.03
+C3.13.04 C3.12.05 C3.13.02 C3.13.06 C3.13.03 C3.13.08 C3.13.07 C3.13.05
+C3.13.05 C3.13.00 C3.13.04 C3.13.03 C3.13.07 C3.14.03 C3.13.09 C3.14.07 C3.14.05
+C3.13.06 C3.12.06 C3.12.05 C3.13.02 C3.12.08 C3.13.04 C3.12.10 C3.13.08 C3.13.07
+C3.13.07 C3.13.06 C3.13.04 C3.13.03 C3.13.08 C3.13.05 C3.13.10 C3.13.09 C3.14.07
+C3.13.08 C3.12.08 C3.13.06 C3.13.04 C3.12.10 C3.13.07 C3.12.12 C3.13.10 C3.13.09
+C3.13.09 C3.13.08 C3.13.07 C3.13.05 C3.13.10 C3.14.07 C3.13.11 C3.14.10 C3.14.08
+C3.13.10 C3.12.10 C3.13.08 C3.13.07 C3.12.12 C3.13.09 C3.13.12 C3.13.11 C3.14.10
+C3.13.11 C3.12.12 C3.13.10 C3.13.09 C3.13.12 C3.14.10 C3.13.13 C3.14.12 C3.14.11
+C3.13.12 C3.12.13 C3.12.12 C3.13.10 C3.12.14 C3.13.11 C3.12.15 C3.13.13 C3.14.12
+C3.13.13 C3.12.14 C3.13.12 C3.13.11 C3.12.15 C3.14.12 C3.13.15 C3.13.14 C3.14.14 C3.14.13
+C3.13.14 C3.13.13 C3.13.15 C3.14.14 C3.14.15
+C3.13.15 C3.12.15 C3.13.13 C3.13.14
+C3.14.00 C3.14.02 C3.14.04 C3.15.01
+C3.14.01 C3.13.00 C3.14.03 C3.14.02 C3.14.05
+C3.14.02 C3.14.01 C3.14.05 C3.14.06 C3.14.04 C3.14.00
+C3.14.03 C3.13.00 C3.13.03 C3.14.01 C3.13.05 C3.14.07 C3.14.05
+C3.14.04 C3.14.02 C3.14.05 C3.14.06 C3.14.00 C3.15.01 C3.15.07 C3.15.04
+C3.14.05 C3.14.01 C3.13.05 C3.14.03 C3.14.02 C3.14.07 C3.14.08 C3.14.06 C3.14.04
+C3.14.06 C3.14.02 C3.14.07 C3.14.05 C3.14.08 C3.14.04 C3.14.09 C3.15.07 C3.15.04
+C3.14.07 C3.13.07 C3.13.05 C3.14.03 C3.13.09 C3.14.05 C3.14.10 C3.14.08 C3.14.06
+C3.14.08 C3.13.09 C3.14.07 C3.14.05 C3.14.10 C3.14.06 C3.14.11 C3.14.09 C3.15.07
+C3.14.09 C3.14.10 C3.14.08 C3.14.06 C3.14.11 C3.15.07 C3.15.12 C3.15.10 C3.15.08
+C3.14.10 C3.13.10 C3.13.09 C3.14.07 C3.13.11 C3.14.08 C3.14.12 C3.14.11 C3.14.09
+C3.14.11 C3.13.11 C3.14.10 C3.14.08 C3.14.12 C3.14.09 C3.14.13 C3.15.12 C3.15.10
+C3.14.12 C3.13.12 C3.13.11 C3.14.10 C3.13.13 C3.14.11 C3.14.14 C3.14.13 C3.15.12
+C3.14.13 C3.13.13 C3.14.12 C3.14.11 C3.14.14 C3.15.12 C3.14.15 C3.15.14 C3.15.13
+C3.14.14 C3.13.13 C3.14.12 C3.13.14 C3.14.13 C3.14.15
+C3.14.15 C3.13.14 C3.14.14 C3.14.13 C3.15.14 C3.15.15
+C3.15.00 C3.15.02 C3.15.03 C3.00.03 C3.00.00
+C3.15.01 C3.14.04 C3.14.00 C3.15.04 C3.15.05 C3.15.02
+C3.15.02 C3.15.01 C3.15.04 C3.15.05 C3.15.06 C3.15.03 C3.15.00
+C3.15.03 C3.15.05 C3.15.02 C3.15.06 C3.15.00 C3.00.06 C3.00.03 C3.00.00
+C3.15.04 C3.14.06 C3.14.04 C3.15.01 C3.15.07 C3.15.08 C3.15.05 C3.15.02
+C3.15.05 C3.15.01 C3.15.07 C3.15.04 C3.15.08 C3.15.02 C3.15.09 C3.15.06 C3.15.03
+C3.15.06 C3.15.08 C3.15.05 C3.15.02 C3.15.09 C3.15.03 C3.00.09 C3.00.06 C3.00.03
+C3.15.07 C3.14.08 C3.14.06 C3.14.04 C3.14.09 C3.15.04 C3.15.10 C3.15.08 C3.15.05
+C3.15.08 C3.14.09 C3.15.07 C3.15.04 C3.15.10 C3.15.05 C3.15.11 C3.15.09 C3.15.06
+C3.15.09 C3.15.10 C3.15.08 C3.15.05 C3.15.11 C3.15.06 C3.00.11 C3.00.09 C3.00.06
+C3.15.10 C3.14.11 C3.14.09 C3.15.07 C3.15.12 C3.15.08 C3.15.13 C3.15.11 C3.15.09
+C3.15.11 C3.15.12 C3.15.10 C3.15.08 C3.15.13 C3.15.09 C3.00.13 C3.00.11 C3.00.09
+C3.15.12 C3.14.12 C3.14.11 C3.14.09 C3.14.13 C3.15.10 C3.15.14 C3.15.13 C3.15.11
+C3.15.13 C3.14.13 C3.15.12 C3.15.10 C3.15.14 C3.15.11 C3.00.14 C3.00.13 C3.00.11
+C3.15.14 C3.14.13 C3.15.12 C3.14.15 C3.15.13 C3.15.15 C3.00.15 C3.00.14 C3.00.13
+C3.15.15 C3.14.15 C3.15.14 C3.00.15 C3.00.14
diff --git a/Calorimeter/CaloIdentifier/share/FCal2DNeighbors_H6.txt b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors_H6.txt
new file mode 100755
index 0000000000000000000000000000000000000000..7db84c5877e4fa8144db204b0c133061512a2df6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal2DNeighbors_H6.txt
@@ -0,0 +1,323 @@
+# 2D FCal Neighbors for the H6 Beam Test 2004
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:16:32 2004
+#
+# 2d neighbors are all touching neighbors including corners.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+#
+A1.04.00 A1.04.01 A1.04.04 A1.04.05
+A1.04.01 A1.04.00 A1.04.02 A1.04.05 A1.04.06
+A1.04.02 A1.04.01 A1.04.03 A1.04.05 A1.04.06
+A1.04.03 A1.04.02 A1.04.06
+A1.04.04 A1.04.00 A1.05.01 A1.04.05 A1.04.07 A1.05.09 A1.05.13
+A1.04.05 A1.04.00 A1.04.01 A1.04.02 A1.04.04 A1.04.06 A1.04.07 A1.04.08 A1.05.13
+A1.04.06 A1.04.01 A1.04.02 A1.04.03 A1.04.05 A1.04.07 A1.04.08 A1.04.09
+A1.04.07 A1.04.04 A1.04.05 A1.04.06 A1.04.08 A1.04.10 A1.04.11 A1.05.13 A1.05.18
+A1.04.08 A1.04.05 A1.04.06 A1.04.07 A1.04.09 A1.04.10 A1.04.11 A1.04.12
+A1.04.09 A1.04.06 A1.04.08 A1.04.11 A1.04.12
+A1.04.10 A1.04.07 A1.04.08 A1.04.11 A1.04.13 A1.05.13 A1.05.18 A1.05.22 A1.05.25
+A1.04.11 A1.04.07 A1.04.08 A1.04.09 A1.04.10 A1.04.12 A1.04.13 A1.04.14 A1.05.25
+A1.04.12 A1.04.08 A1.04.09 A1.04.11 A1.04.13 A1.04.14
+A1.04.13 A1.04.10 A1.04.11 A1.04.12 A1.04.14 A1.04.15 A1.04.16 A1.05.25 A1.05.29
+A1.04.14 A1.04.11 A1.04.12 A1.04.13 A1.04.15 A1.04.16
+A1.04.15 A1.04.13 A1.04.14 A1.04.16 A1.04.17 A1.04.18 A1.05.25 A1.05.29 A1.05.32
+A1.04.16 A1.04.13 A1.04.14 A1.04.15 A1.04.17 A1.04.18
+A1.04.17 A1.04.15 A1.04.16 A1.04.18 A1.04.19 A1.05.29 A1.05.32 A1.05.35 A1.05.38
+A1.04.18 A1.04.15 A1.04.16 A1.04.17 A1.04.19 A1.05.38
+A1.04.19 A1.04.17 A1.04.18 A1.04.20 A1.04.21 A1.05.38 A1.05.41
+A1.04.20 A1.04.19 A1.04.21 A1.04.22 A1.04.23 A1.05.38 A1.05.41 A1.05.44
+A1.04.21 A1.04.19 A1.04.20 A1.04.22 A1.04.23
+A1.04.22 A1.04.20 A1.04.21 A1.04.23 A1.04.24 A1.05.41 A1.05.44 A1.05.46 A1.05.48
+A1.04.23 A1.04.20 A1.04.21 A1.04.22 A1.04.24 A1.05.48
+A1.04.24 A1.04.22 A1.04.23 A1.04.25 A1.05.48 A1.05.50
+A1.04.25 A1.04.24 A1.04.26 A1.05.48 A1.05.50 A1.05.52
+A1.04.26 A1.04.25 A1.04.27 A1.04.28 A1.05.50 A1.05.52 A1.05.54 A1.05.56
+A1.04.27 A1.04.26 A1.04.28 A1.04.29 A1.05.56 A1.05.58 A1.05.60
+A1.04.28 A1.04.26 A1.04.27 A1.04.29 A1.05.60
+A1.04.29 A1.04.27 A1.04.28 A1.05.60 A1.05.63
+A1.05.00 A1.05.01 A1.05.02 A1.05.09
+A1.05.01 A1.05.00 A1.04.04 A1.05.09
+A1.05.02 A1.05.00 A1.05.03 A1.05.09
+A1.05.03 A1.05.02 A1.05.09 A1.05.10 A1.05.15
+A1.05.04 A1.05.05 A1.05.06 A1.05.10
+A1.05.05 A1.05.04 A1.05.06 A1.05.07 A1.05.11 A1.05.12
+A1.05.06 A1.05.04 A1.05.05 A1.05.10 A1.05.12 A1.05.16
+A1.05.07 A1.05.05 A1.05.11 A1.05.12
+A1.05.08 A1.06.09 A1.05.11
+A1.05.09 A1.05.00 A1.05.01 A1.05.02 A1.05.03 A1.04.04 A1.05.10 A1.05.13 A1.05.15 A1.05.18
+A1.05.10 A1.05.03 A1.05.04 A1.05.06 A1.05.09 A1.05.12 A1.05.15 A1.05.16 A1.05.19
+A1.05.11 A1.05.05 A1.05.07 A1.05.08 A1.06.09 A1.05.12 A1.05.14 A1.05.17
+A1.05.12 A1.05.05 A1.05.06 A1.05.07 A1.05.10 A1.05.11 A1.05.14 A1.05.16 A1.05.17 A1.05.20
+A1.05.13 A1.04.04 A1.04.05 A1.04.07 A1.05.09 A1.04.10 A1.05.15 A1.05.18
+A1.05.14 A1.06.09 A1.05.11 A1.05.12 A1.06.12 A1.05.17 A1.06.17 A1.05.21
+A1.05.15 A1.05.03 A1.05.09 A1.05.10 A1.05.13 A1.05.16 A1.05.18 A1.05.19 A1.05.22
+A1.05.16 A1.05.06 A1.05.10 A1.05.12 A1.05.15 A1.05.17 A1.05.19 A1.05.20 A1.05.23
+A1.05.17 A1.05.11 A1.05.12 A1.05.14 A1.05.16 A1.06.17 A1.05.20 A1.05.21 A1.05.24
+A1.05.18 A1.04.07 A1.05.09 A1.04.10 A1.05.13 A1.05.15 A1.05.19 A1.05.22 A1.05.25
+A1.05.19 A1.05.10 A1.05.15 A1.05.16 A1.05.18 A1.05.20 A1.05.22 A1.05.23 A1.05.26
+A1.05.20 A1.05.12 A1.05.16 A1.05.17 A1.05.19 A1.05.21 A1.05.23 A1.05.24 A1.05.27
+A1.05.21 A1.05.14 A1.05.17 A1.06.17 A1.05.20 A1.06.20 A1.05.24 A1.06.25 A1.05.28
+A1.05.22 A1.04.10 A1.05.15 A1.05.18 A1.05.19 A1.05.23 A1.05.25 A1.05.26 A1.05.29
+A1.05.23 A1.05.16 A1.05.19 A1.05.20 A1.05.22 A1.05.24 A1.05.26 A1.05.27 A1.05.30
+A1.05.24 A1.05.17 A1.05.20 A1.05.21 A1.05.23 A1.06.25 A1.05.27 A1.05.28 A1.05.31
+A1.05.25 A1.04.10 A1.04.11 A1.04.13 A1.04.15 A1.05.18 A1.05.22 A1.05.26 A1.05.29
+A1.05.26 A1.05.19 A1.05.22 A1.05.23 A1.05.25 A1.05.27 A1.05.29 A1.05.30 A1.05.32
+A1.05.27 A1.05.20 A1.05.23 A1.05.24 A1.05.26 A1.05.28 A1.05.30 A1.05.31 A1.05.33
+A1.05.28 A1.05.21 A1.05.24 A1.06.25 A1.05.27 A1.06.28 A1.05.31 A1.06.32 A1.05.34
+A1.05.29 A1.04.13 A1.04.15 A1.04.17 A1.05.22 A1.05.25 A1.05.26 A1.05.30 A1.05.32
+A1.05.30 A1.05.23 A1.05.26 A1.05.27 A1.05.29 A1.05.31 A1.05.32 A1.05.33 A1.05.35
+A1.05.31 A1.05.24 A1.05.27 A1.05.28 A1.05.30 A1.06.32 A1.05.33 A1.05.34 A1.05.37
+A1.05.32 A1.04.15 A1.04.17 A1.05.26 A1.05.29 A1.05.30 A1.05.33 A1.05.35 A1.05.38
+A1.05.33 A1.05.27 A1.05.30 A1.05.31 A1.05.32 A1.05.34 A1.05.35 A1.05.37 A1.05.39
+A1.05.34 A1.05.28 A1.05.31 A1.06.32 A1.05.33 A1.06.35 A1.05.36 A1.05.37 A1.05.40
+A1.05.35 A1.04.17 A1.05.30 A1.05.32 A1.05.33 A1.05.37 A1.05.38 A1.05.39 A1.05.41
+A1.05.36 A1.06.32 A1.05.34 A1.06.35 A1.05.37 A1.06.37 A1.05.40 A1.06.40 A1.05.43
+A1.05.37 A1.05.31 A1.05.33 A1.05.34 A1.05.35 A1.05.36 A1.05.39 A1.05.40 A1.05.42
+A1.05.38 A1.04.17 A1.04.18 A1.04.19 A1.04.20 A1.05.32 A1.05.35 A1.05.39 A1.05.41
+A1.05.39 A1.05.33 A1.05.35 A1.05.37 A1.05.38 A1.05.40 A1.05.41 A1.05.42 A1.05.44
+A1.05.40 A1.05.34 A1.05.36 A1.05.37 A1.05.39 A1.06.40 A1.05.42 A1.05.43 A1.05.45
+A1.05.41 A1.04.19 A1.04.20 A1.04.22 A1.05.35 A1.05.38 A1.05.39 A1.05.42 A1.05.44
+A1.05.42 A1.05.37 A1.05.39 A1.05.40 A1.05.41 A1.05.43 A1.05.44 A1.05.45 A1.05.46
+A1.05.43 A1.05.36 A1.05.40 A1.06.40 A1.05.42 A1.06.42 A1.06.44 A1.05.45 A1.05.47
+A1.05.44 A1.04.20 A1.04.22 A1.05.39 A1.05.41 A1.05.42 A1.05.45 A1.05.46 A1.05.48
+A1.05.45 A1.05.40 A1.05.42 A1.05.43 A1.05.44 A1.06.44 A1.05.46 A1.05.47 A1.05.49
+A1.05.46 A1.04.22 A1.05.42 A1.05.44 A1.05.45 A1.05.47 A1.05.48 A1.05.49 A1.05.50
+A1.05.47 A1.05.43 A1.06.44 A1.05.45 A1.05.46 A1.06.46 A1.06.48 A1.05.49 A1.05.51
+A1.05.48 A1.04.22 A1.04.23 A1.04.24 A1.04.25 A1.05.44 A1.05.46 A1.05.49 A1.05.50
+A1.05.49 A1.05.45 A1.05.46 A1.05.47 A1.05.48 A1.06.48 A1.05.50 A1.05.51 A1.05.52
+A1.05.50 A1.04.24 A1.04.25 A1.04.26 A1.05.46 A1.05.48 A1.05.49 A1.05.51 A1.05.52
+A1.05.51 A1.05.47 A1.06.48 A1.05.49 A1.06.49 A1.05.50 A1.06.51 A1.05.52 A1.05.53
+A1.05.52 A1.04.25 A1.04.26 A1.05.49 A1.05.50 A1.05.51 A1.06.51 A1.05.53 A1.05.54 A1.05.56
+A1.05.53 A1.05.51 A1.06.51 A1.05.52 A1.05.54 A1.05.55 A1.05.57
+A1.05.54 A1.04.26 A1.05.52 A1.05.53 A1.05.55 A1.05.56 A1.05.57 A1.05.58
+A1.05.55 A1.06.51 A1.05.53 A1.05.54 A1.06.55 A1.05.57 A1.06.57 A1.05.59
+A1.05.56 A1.04.26 A1.04.27 A1.05.52 A1.05.54 A1.05.57 A1.05.58 A1.05.60
+A1.05.57 A1.05.53 A1.05.54 A1.05.55 A1.05.56 A1.06.57 A1.05.58 A1.05.59 A1.05.61
+A1.05.58 A1.04.27 A1.05.54 A1.05.56 A1.05.57 A1.05.59 A1.05.60 A1.05.61
+A1.05.59 A1.05.55 A1.05.57 A1.06.57 A1.05.58 A1.06.59 A1.05.61 A1.06.61 A1.05.62
+A1.05.60 A1.04.27 A1.04.28 A1.04.29 A1.05.56 A1.05.58 A1.05.61 A1.05.63
+A1.05.61 A1.05.57 A1.05.58 A1.05.59 A1.05.60 A1.06.61 A1.05.62 A1.05.63
+A1.05.62 A1.05.59 A1.05.61 A1.06.61 A1.06.62 A1.05.63
+A1.05.63 A1.04.29 A1.05.60 A1.05.61 A1.05.62
+A1.06.00 A1.06.01 A1.06.02 A1.06.09 A1.06.12
+A1.06.01 A1.06.00 A1.06.02 A1.06.10 A1.06.12 A1.06.15
+A1.06.02 A1.06.00 A1.06.01 A1.06.10
+A1.06.03 A1.06.04 A1.06.05 A1.06.10 A1.06.14
+A1.06.04 A1.06.03 A1.06.05 A1.06.11 A1.06.14 A1.06.16
+A1.06.05 A1.06.03 A1.06.04 A1.06.06 A1.06.11
+A1.06.06 A1.06.05 A1.06.07 A1.06.11
+A1.06.07 A1.06.06 A1.06.08 A1.06.11 A1.06.13
+A1.06.08 A1.07.00 A1.07.03 A1.06.07 A1.06.11 A1.06.13
+A1.06.09 A1.06.00 A1.05.08 A1.05.11 A1.06.12 A1.05.14 A1.06.17
+A1.06.10 A1.06.01 A1.06.02 A1.06.03 A1.06.12 A1.06.14 A1.06.15 A1.06.18
+A1.06.11 A1.06.04 A1.06.05 A1.06.06 A1.06.07 A1.06.08 A1.06.13 A1.06.14 A1.06.16 A1.06.19
+A1.06.12 A1.06.00 A1.06.01 A1.06.09 A1.06.10 A1.05.14 A1.06.15 A1.06.17 A1.06.20
+A1.06.13 A1.07.03 A1.07.04 A1.06.07 A1.07.07 A1.06.08 A1.06.11 A1.06.16 A1.06.19 A1.06.21
+A1.06.14 A1.06.03 A1.06.04 A1.06.10 A1.06.11 A1.06.15 A1.06.16 A1.06.18 A1.06.22
+A1.06.15 A1.06.01 A1.06.10 A1.06.12 A1.06.14 A1.06.17 A1.06.18 A1.06.20 A1.06.23
+A1.06.16 A1.06.04 A1.06.11 A1.06.13 A1.06.14 A1.06.18 A1.06.19 A1.06.22 A1.06.24
+A1.06.17 A1.06.09 A1.06.12 A1.05.14 A1.06.15 A1.05.17 A1.06.20 A1.05.21 A1.06.25
+A1.06.18 A1.06.10 A1.06.14 A1.06.15 A1.06.16 A1.06.20 A1.06.22 A1.06.23 A1.06.27
+A1.06.19 A1.07.07 A1.06.11 A1.06.13 A1.06.16 A1.06.21 A1.06.22 A1.06.24 A1.06.26
+A1.06.20 A1.06.12 A1.06.15 A1.06.17 A1.06.18 A1.05.21 A1.06.23 A1.06.25 A1.06.28
+A1.06.21 A1.07.07 A1.07.08 A1.07.10 A1.06.13 A1.07.13 A1.06.19 A1.06.24 A1.06.26
+A1.06.22 A1.06.14 A1.06.16 A1.06.18 A1.06.19 A1.06.23 A1.06.24 A1.06.27 A1.06.29
+A1.06.23 A1.06.15 A1.06.18 A1.06.20 A1.06.22 A1.06.25 A1.06.27 A1.06.28 A1.06.30
+A1.06.24 A1.06.16 A1.06.19 A1.06.21 A1.06.22 A1.06.26 A1.06.27 A1.06.29 A1.06.31
+A1.06.25 A1.06.17 A1.06.20 A1.05.21 A1.06.23 A1.05.24 A1.05.28 A1.06.28 A1.06.32
+A1.06.26 A1.07.10 A1.07.13 A1.06.19 A1.06.21 A1.06.24 A1.06.29 A1.06.31 A1.06.33
+A1.06.27 A1.06.18 A1.06.22 A1.06.23 A1.06.24 A1.06.28 A1.06.29 A1.06.30 A1.06.34
+A1.06.28 A1.06.20 A1.06.23 A1.06.25 A1.06.27 A1.05.28 A1.06.30 A1.06.32 A1.06.35
+A1.06.29 A1.06.22 A1.06.24 A1.06.26 A1.06.27 A1.06.30 A1.06.31 A1.06.34 A1.06.36
+A1.06.30 A1.06.23 A1.06.27 A1.06.28 A1.06.29 A1.06.32 A1.06.34 A1.06.35 A1.06.37
+A1.06.31 A1.07.13 A1.06.24 A1.06.26 A1.06.29 A1.06.33 A1.06.34 A1.06.36 A1.06.38
+A1.06.32 A1.06.25 A1.05.28 A1.06.28 A1.06.30 A1.05.31 A1.05.34 A1.06.35 A1.05.36
+A1.06.33 A1.07.13 A1.07.14 A1.07.16 A1.07.18 A1.06.26 A1.06.31 A1.06.36 A1.06.38
+A1.06.34 A1.06.27 A1.06.29 A1.06.30 A1.06.31 A1.06.35 A1.06.36 A1.06.37 A1.06.39
+A1.06.35 A1.06.28 A1.06.30 A1.06.32 A1.05.34 A1.06.34 A1.05.36 A1.06.37 A1.06.40
+A1.06.36 A1.06.29 A1.06.31 A1.06.33 A1.06.34 A1.06.37 A1.06.38 A1.06.39 A1.06.41
+A1.06.37 A1.06.30 A1.06.34 A1.06.35 A1.05.36 A1.06.36 A1.06.39 A1.06.40 A1.06.42
+A1.06.38 A1.07.16 A1.07.18 A1.07.20 A1.06.31 A1.06.33 A1.06.36 A1.06.39 A1.06.41
+A1.06.39 A1.06.34 A1.06.36 A1.06.37 A1.06.38 A1.06.40 A1.06.41 A1.06.42 A1.06.43
+A1.06.40 A1.06.35 A1.05.36 A1.06.37 A1.06.39 A1.05.40 A1.06.42 A1.05.43 A1.06.44
+A1.06.41 A1.07.18 A1.07.20 A1.06.36 A1.06.38 A1.06.39 A1.06.42 A1.06.43 A1.06.45
+A1.06.42 A1.06.37 A1.06.39 A1.06.40 A1.06.41 A1.05.43 A1.06.43 A1.06.44 A1.06.46
+A1.06.43 A1.07.20 A1.06.39 A1.06.41 A1.06.42 A1.06.44 A1.06.45 A1.06.46 A1.06.47
+A1.06.44 A1.06.40 A1.06.42 A1.05.43 A1.06.43 A1.05.45 A1.06.46 A1.05.47 A1.06.48
+A1.06.45 A1.07.20 A1.07.21 A1.07.22 A1.07.24 A1.06.41 A1.06.43 A1.06.46 A1.06.47
+A1.06.46 A1.06.42 A1.06.43 A1.06.44 A1.06.45 A1.05.47 A1.06.47 A1.06.48 A1.06.49
+A1.06.47 A1.07.22 A1.07.24 A1.06.43 A1.06.45 A1.06.46 A1.06.48 A1.06.49 A1.06.50
+A1.06.48 A1.06.44 A1.06.46 A1.05.47 A1.06.47 A1.05.49 A1.06.49 A1.05.51 A1.06.51
+A1.06.49 A1.07.24 A1.06.46 A1.06.47 A1.06.48 A1.06.50 A1.05.51 A1.06.51 A1.06.52
+A1.06.50 A1.07.24 A1.07.25 A1.07.26 A1.06.47 A1.06.49 A1.06.51 A1.06.52 A1.06.53 A1.06.54
+A1.06.51 A1.06.48 A1.06.49 A1.06.50 A1.05.51 A1.05.52 A1.06.52 A1.05.53 A1.05.55 A1.06.55 A1.06.57
+A1.06.52 A1.06.49 A1.06.50 A1.06.51 A1.06.53 A1.06.55 A1.06.56
+A1.06.53 A1.07.26 A1.06.50 A1.06.52 A1.06.54 A1.06.55 A1.06.56 A1.06.58
+A1.06.54 A1.07.26 A1.07.27 A1.07.28 A1.06.50 A1.06.53 A1.06.56 A1.06.58
+A1.06.55 A1.06.51 A1.06.52 A1.06.53 A1.05.55 A1.06.56 A1.06.57 A1.06.59
+A1.06.56 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.57 A1.06.58 A1.06.59 A1.06.60
+A1.06.57 A1.06.51 A1.05.55 A1.06.55 A1.06.56 A1.05.57 A1.05.59 A1.06.59 A1.06.61
+A1.06.58 A1.07.27 A1.07.28 A1.07.30 A1.06.53 A1.06.54 A1.06.56 A1.06.59 A1.06.60
+A1.06.59 A1.06.55 A1.06.56 A1.06.57 A1.06.58 A1.05.59 A1.06.60 A1.06.61 A1.06.62
+A1.06.60 A1.07.28 A1.07.30 A1.06.56 A1.06.58 A1.06.59 A1.06.61 A1.06.62
+A1.06.61 A1.06.57 A1.05.59 A1.06.59 A1.06.60 A1.05.61 A1.05.62 A1.06.62
+A1.06.62 A1.07.30 A1.06.59 A1.06.60 A1.06.61 A1.05.62
+A1.07.00 A1.07.03 A1.07.04 A1.06.08
+A1.07.01 A1.07.04 A1.07.05 A1.07.06
+A1.07.02 A1.07.06
+A1.07.03 A1.07.00 A1.07.04 A1.07.07 A1.06.08 A1.06.13
+A1.07.04 A1.07.00 A1.07.01 A1.07.03 A1.07.05 A1.07.07 A1.07.08 A1.06.13
+A1.07.05 A1.07.01 A1.07.04 A1.07.06 A1.07.07 A1.07.08 A1.07.09
+A1.07.06 A1.07.01 A1.07.02 A1.07.05 A1.07.08 A1.07.09
+A1.07.07 A1.07.03 A1.07.04 A1.07.05 A1.07.08 A1.07.10 A1.06.13 A1.06.19 A1.06.21
+A1.07.08 A1.07.04 A1.07.05 A1.07.06 A1.07.07 A1.07.09 A1.07.10 A1.07.11 A1.06.21
+A1.07.09 A1.07.05 A1.07.06 A1.07.08 A1.07.10 A1.07.11 A1.07.12
+A1.07.10 A1.07.07 A1.07.08 A1.07.09 A1.07.11 A1.07.13 A1.07.14 A1.06.21 A1.06.26
+A1.07.11 A1.07.08 A1.07.09 A1.07.10 A1.07.12 A1.07.13 A1.07.14 A1.07.15
+A1.07.12 A1.07.09 A1.07.11 A1.07.14 A1.07.15
+A1.07.13 A1.07.10 A1.07.11 A1.07.14 A1.07.16 A1.06.21 A1.06.26 A1.06.31 A1.06.33
+A1.07.14 A1.07.10 A1.07.11 A1.07.12 A1.07.13 A1.07.15 A1.07.16 A1.07.17 A1.06.33
+A1.07.15 A1.07.11 A1.07.12 A1.07.14 A1.07.16 A1.07.17
+A1.07.16 A1.07.13 A1.07.14 A1.07.15 A1.07.17 A1.07.18 A1.07.19 A1.06.33 A1.06.38
+A1.07.17 A1.07.14 A1.07.15 A1.07.16 A1.07.18 A1.07.19
+A1.07.18 A1.07.16 A1.07.17 A1.07.19 A1.07.20 A1.07.21 A1.06.33 A1.06.38 A1.06.41
+A1.07.19 A1.07.16 A1.07.17 A1.07.18 A1.07.20 A1.07.21
+A1.07.20 A1.07.18 A1.07.19 A1.07.21 A1.07.22 A1.06.38 A1.06.41 A1.06.43 A1.06.45
+A1.07.21 A1.07.18 A1.07.19 A1.07.20 A1.07.22 A1.07.23 A1.06.45
+A1.07.22 A1.07.20 A1.07.21 A1.07.23 A1.07.24 A1.07.25 A1.06.45 A1.06.47
+A1.07.23 A1.07.21 A1.07.22 A1.07.24 A1.07.25
+A1.07.24 A1.07.22 A1.07.23 A1.07.25 A1.07.26 A1.06.45 A1.06.47 A1.06.49 A1.06.50
+A1.07.25 A1.07.22 A1.07.23 A1.07.24 A1.07.26 A1.06.50
+A1.07.26 A1.07.24 A1.07.25 A1.07.27 A1.06.50 A1.06.53 A1.06.54
+A1.07.27 A1.07.26 A1.07.28 A1.07.29 A1.06.54 A1.06.58
+A1.07.28 A1.07.27 A1.07.29 A1.07.30 A1.07.31 A1.06.54 A1.06.58 A1.06.60
+A1.07.29 A1.07.27 A1.07.28 A1.07.30 A1.07.31
+A1.07.30 A1.07.28 A1.07.29 A1.07.31 A1.06.58 A1.06.60 A1.06.62
+A1.07.31 A1.07.28 A1.07.29 A1.07.30
+A2.04.00 A2.04.06 A2.04.07 A2.04.08
+A2.04.01 A2.04.02 A2.04.03 A2.04.04 A2.04.09
+A2.04.02 A2.05.00 A2.04.01 A2.04.03 A2.04.04 A2.04.05
+A2.04.03 A2.04.01 A2.04.02 A2.04.04 A2.04.09 A2.04.13 A2.04.14
+A2.04.04 A2.04.01 A2.04.02 A2.04.03 A2.04.05 A2.05.08 A2.04.14
+A2.04.05 A2.05.00 A2.04.02 A2.04.04 A2.05.08 A2.04.14
+A2.04.06 A2.04.00 A2.04.07 A2.04.10 A2.04.11
+A2.04.07 A2.04.00 A2.04.06 A2.04.08 A2.04.10 A2.04.11 A2.04.12
+A2.04.08 A2.04.00 A2.04.07 A2.04.09 A2.04.11 A2.04.12 A2.04.13
+A2.04.09 A2.04.01 A2.04.03 A2.04.08 A2.04.12 A2.04.13 A2.04.14
+A2.04.10 A2.04.06 A2.04.07 A2.04.11 A2.04.15 A2.04.16
+A2.04.11 A2.04.06 A2.04.07 A2.04.08 A2.04.10 A2.04.12 A2.04.15 A2.04.16 A2.04.17
+A2.04.12 A2.04.07 A2.04.08 A2.04.09 A2.04.11 A2.04.13 A2.04.16 A2.04.17 A2.04.18
+A2.04.13 A2.04.03 A2.04.08 A2.04.09 A2.05.09 A2.04.12 A2.04.14 A2.04.17 A2.04.18
+A2.04.14 A2.04.03 A2.04.04 A2.04.05 A2.05.08 A2.04.09 A2.05.09 A2.05.10 A2.04.13 A2.04.18
+A2.04.15 A2.04.10 A2.04.11 A2.04.16 A2.04.19 A2.04.20
+A2.04.16 A2.04.10 A2.04.11 A2.04.12 A2.04.15 A2.04.17 A2.04.19 A2.04.20 A2.04.21
+A2.04.17 A2.04.11 A2.04.12 A2.04.13 A2.04.16 A2.04.18 A2.04.20 A2.04.21 A2.04.22
+A2.04.18 A2.05.09 A2.04.12 A2.04.13 A2.04.14 A2.05.16 A2.04.17 A2.04.21 A2.04.22
+A2.04.19 A2.04.15 A2.04.16 A2.04.20 A2.04.23 A2.04.24
+A2.04.20 A2.04.15 A2.04.16 A2.04.17 A2.04.19 A2.04.21 A2.04.23 A2.04.24 A2.04.25
+A2.04.21 A2.04.16 A2.04.17 A2.04.18 A2.05.18 A2.04.20 A2.04.22 A2.04.24 A2.04.25
+A2.04.22 A2.05.09 A2.05.16 A2.04.17 A2.04.18 A2.05.18 A2.05.19 A2.04.21 A2.04.25
+A2.04.23 A2.04.19 A2.04.20 A2.04.24 A2.04.26 A2.04.27
+A2.04.24 A2.04.19 A2.04.20 A2.04.21 A2.04.23 A2.04.25 A2.04.26 A2.04.27 A2.04.28
+A2.04.25 A2.05.18 A2.04.20 A2.04.21 A2.04.22 A2.05.22 A2.04.24 A2.04.27 A2.04.28
+A2.04.26 A2.04.23 A2.04.24 A2.04.27 A2.04.29 A2.04.30
+A2.04.27 A2.04.23 A2.04.24 A2.04.25 A2.05.25 A2.04.26 A2.04.28 A2.04.29 A2.04.30
+A2.04.28 A2.05.18 A2.05.22 A2.04.24 A2.04.25 A2.05.25 A2.05.26 A2.04.27 A2.04.30
+A2.04.29 A2.04.26 A2.04.27 A2.05.28 A2.04.30 A2.04.31
+A2.04.30 A2.05.25 A2.04.26 A2.04.27 A2.04.28 A2.05.28 A2.04.29 A2.05.29 A2.04.31
+A2.04.31 A2.05.28 A2.04.29 A2.04.30 A2.05.30
+A2.05.00 A2.05.01 A2.04.02 A2.05.02 A2.04.05 A2.05.08
+A2.05.01 A2.05.00 A2.05.02 A2.05.03 A2.05.08
+A2.05.02 A2.05.00 A2.05.01 A2.05.03 A2.05.04 A2.05.05 A2.05.08
+A2.05.03 A2.05.01 A2.05.02 A2.05.04 A2.05.05 A2.05.06
+A2.05.04 A2.05.02 A2.05.03 A2.05.05 A2.05.08 A2.05.10 A2.05.11
+A2.05.05 A2.05.02 A2.05.03 A2.05.04 A2.05.06 A2.05.11 A2.05.12
+A2.05.06 A2.05.03 A2.05.05 A2.05.07 A2.05.11 A2.05.12
+A2.05.07 A2.05.06 A2.05.12 A2.05.13
+A2.05.08 A2.05.00 A2.05.01 A2.05.02 A2.04.04 A2.05.04 A2.04.05 A2.05.09 A2.05.10 A2.05.11 A2.04.14
+A2.05.09 A2.05.08 A2.05.10 A2.04.13 A2.04.14 A2.05.16 A2.05.17 A2.04.18 A2.04.22
+A2.05.10 A2.05.04 A2.05.08 A2.05.09 A2.05.11 A2.04.14 A2.05.14 A2.05.16 A2.05.17
+A2.05.11 A2.05.04 A2.05.05 A2.05.06 A2.05.08 A2.05.10 A2.05.12 A2.05.14 A2.05.15 A2.05.17
+A2.05.12 A2.05.05 A2.06.05 A2.05.06 A2.05.07 A2.05.11 A2.05.13 A2.05.14 A2.05.15
+A2.05.13 A2.06.00 A2.06.01 A2.06.05 A2.06.06 A2.05.07 A2.05.12 A2.05.15
+A2.05.14 A2.06.07 A2.05.10 A2.05.11 A2.05.12 A2.05.15 A2.05.17 A2.05.20 A2.05.21
+A2.05.15 A2.06.05 A2.06.07 A2.06.08 A2.05.11 A2.05.12 A2.05.13 A2.05.14 A2.05.21
+A2.05.16 A2.05.09 A2.05.10 A2.05.17 A2.04.18 A2.05.18 A2.05.19 A2.05.20 A2.04.22
+A2.05.17 A2.05.09 A2.05.10 A2.05.11 A2.05.14 A2.05.16 A2.05.19 A2.05.20 A2.05.21
+A2.05.18 A2.05.16 A2.05.19 A2.04.21 A2.04.22 A2.05.22 A2.05.23 A2.04.25 A2.04.28
+A2.05.19 A2.05.16 A2.05.17 A2.05.18 A2.05.20 A2.04.22 A2.05.22 A2.05.23 A2.05.24
+A2.05.20 A2.05.14 A2.05.16 A2.06.16 A2.05.17 A2.05.19 A2.05.21 A2.05.23 A2.05.24
+A2.05.21 A2.06.07 A2.05.14 A2.05.15 A2.06.16 A2.05.17 A2.06.17 A2.05.20 A2.05.24
+A2.05.22 A2.05.18 A2.05.19 A2.05.23 A2.04.25 A2.05.25 A2.05.26 A2.05.27 A2.04.28
+A2.05.23 A2.05.18 A2.06.18 A2.05.19 A2.05.20 A2.05.22 A2.05.24 A2.05.26 A2.05.27
+A2.05.24 A2.06.16 A2.06.18 A2.05.19 A2.06.19 A2.05.20 A2.05.21 A2.05.23 A2.05.27
+A2.05.25 A2.05.22 A2.06.23 A2.05.26 A2.04.27 A2.04.28 A2.05.28 A2.05.29 A2.04.30
+A2.05.26 A2.05.22 A2.05.23 A2.06.23 A2.06.24 A2.05.25 A2.05.27 A2.04.28 A2.05.29
+A2.05.27 A2.06.18 A2.05.22 A2.05.23 A2.06.23 A2.05.24 A2.06.24 A2.06.25 A2.05.26
+A2.05.28 A2.05.25 A2.06.28 A2.04.29 A2.05.29 A2.04.30 A2.05.30 A2.04.31 A2.05.31
+A2.05.29 A2.06.23 A2.05.25 A2.05.26 A2.05.28 A2.06.28 A2.06.29 A2.04.30 A2.05.31
+A2.05.30 A2.05.28 A2.04.31 A2.05.31
+A2.05.31 A2.05.28 A2.06.28 A2.05.29 A2.05.30
+A2.06.00 A2.06.01 A2.05.13
+A2.06.01 A2.06.00 A2.06.05 A2.06.06 A2.05.13
+A2.06.02 A2.06.03 A2.06.06
+A2.06.03 A2.06.02 A2.06.06 A2.06.09 A2.06.10
+A2.06.04 A2.06.10 A2.06.13 A2.06.14
+A2.06.05 A2.06.01 A2.06.06 A2.06.07 A2.06.08 A2.06.09 A2.05.12 A2.05.13 A2.05.15
+A2.06.06 A2.06.01 A2.06.02 A2.06.03 A2.06.05 A2.06.08 A2.06.09 A2.06.10 A2.05.13
+A2.06.07 A2.06.05 A2.06.08 A2.06.11 A2.05.14 A2.05.15 A2.06.16 A2.06.17 A2.05.21
+A2.06.08 A2.06.05 A2.06.06 A2.06.07 A2.06.09 A2.06.11 A2.06.12 A2.05.15 A2.06.17
+A2.06.09 A2.06.03 A2.06.05 A2.06.06 A2.06.08 A2.06.10 A2.06.11 A2.06.12 A2.06.13
+A2.06.10 A2.06.03 A2.06.04 A2.06.06 A2.06.09 A2.06.12 A2.06.13 A2.06.14
+A2.06.11 A2.06.07 A2.06.08 A2.06.09 A2.06.12 A2.06.17 A2.06.20 A2.06.21 A2.06.22
+A2.06.12 A2.06.08 A2.06.09 A2.06.10 A2.06.11 A2.06.13 A2.06.15 A2.06.21 A2.06.22
+A2.06.13 A2.06.04 A2.07.07 A2.06.09 A2.06.10 A2.06.12 A2.06.14 A2.06.15 A2.06.22
+A2.06.14 A2.07.03 A2.06.04 A2.07.07 A2.06.10 A2.06.13 A2.06.15
+A2.06.15 A2.07.07 A2.07.08 A2.07.11 A2.06.12 A2.06.13 A2.06.14 A2.07.14 A2.06.22
+A2.06.16 A2.06.07 A2.06.17 A2.06.18 A2.06.19 A2.05.20 A2.06.20 A2.05.21 A2.05.24
+A2.06.17 A2.06.07 A2.06.08 A2.06.11 A2.06.16 A2.06.19 A2.06.20 A2.05.21 A2.06.21
+A2.06.18 A2.06.16 A2.06.19 A2.05.23 A2.05.24 A2.06.24 A2.06.25 A2.06.26 A2.05.27
+A2.06.19 A2.06.16 A2.06.17 A2.06.18 A2.06.20 A2.05.24 A2.06.25 A2.06.26 A2.06.27
+A2.06.20 A2.06.11 A2.06.16 A2.06.17 A2.07.17 A2.06.19 A2.06.21 A2.06.26 A2.06.27
+A2.06.21 A2.06.11 A2.06.12 A2.07.14 A2.06.17 A2.07.17 A2.06.20 A2.06.22 A2.06.27
+A2.06.22 A2.06.11 A2.07.11 A2.06.12 A2.06.13 A2.07.14 A2.06.15 A2.07.17 A2.06.21
+A2.06.23 A2.06.24 A2.05.25 A2.05.26 A2.05.27 A2.06.28 A2.05.29 A2.06.29 A2.06.30
+A2.06.24 A2.06.18 A2.06.23 A2.07.24 A2.06.25 A2.05.26 A2.05.27 A2.06.29 A2.06.30
+A2.06.25 A2.06.18 A2.06.19 A2.07.22 A2.06.24 A2.07.24 A2.06.26 A2.05.27 A2.06.30
+A2.06.26 A2.06.18 A2.06.19 A2.06.20 A2.07.20 A2.07.22 A2.07.24 A2.06.25 A2.06.27
+A2.06.27 A2.07.17 A2.07.18 A2.06.19 A2.06.20 A2.07.20 A2.06.21 A2.07.22 A2.06.26
+A2.06.28 A2.06.23 A2.07.27 A2.05.28 A2.07.28 A2.05.29 A2.06.29 A2.05.31
+A2.06.29 A2.06.23 A2.06.24 A2.07.26 A2.07.27 A2.06.28 A2.07.28 A2.05.29 A2.06.30
+A2.06.30 A2.06.23 A2.06.24 A2.07.24 A2.06.25 A2.07.25 A2.07.26 A2.07.27 A2.06.29
+A2.07.00 A2.07.01 A2.07.05 A2.07.06
+A2.07.01 A2.07.00 A2.07.02 A2.07.05 A2.07.06
+A2.07.02 A2.07.01 A2.07.06
+A2.07.03 A2.07.04 A2.07.07 A2.07.08 A2.06.14
+A2.07.04 A2.07.03 A2.07.05 A2.07.07 A2.07.08 A2.07.09
+A2.07.05 A2.07.00 A2.07.01 A2.07.04 A2.07.06 A2.07.08 A2.07.09 A2.07.10
+A2.07.06 A2.07.00 A2.07.01 A2.07.02 A2.07.05 A2.07.09 A2.07.10
+A2.07.07 A2.07.03 A2.07.04 A2.07.08 A2.07.11 A2.06.13 A2.06.14 A2.06.15
+A2.07.08 A2.07.03 A2.07.04 A2.07.05 A2.07.07 A2.07.09 A2.07.11 A2.07.12 A2.06.15
+A2.07.09 A2.07.04 A2.07.05 A2.07.06 A2.07.08 A2.07.10 A2.07.11 A2.07.12 A2.07.13
+A2.07.10 A2.07.05 A2.07.06 A2.07.09 A2.07.12 A2.07.13
+A2.07.11 A2.07.07 A2.07.08 A2.07.09 A2.07.12 A2.07.14 A2.06.15 A2.07.15 A2.06.22
+A2.07.12 A2.07.08 A2.07.09 A2.07.10 A2.07.11 A2.07.13 A2.07.14 A2.07.15 A2.07.16
+A2.07.13 A2.07.09 A2.07.10 A2.07.12 A2.07.15 A2.07.16
+A2.07.14 A2.07.11 A2.07.12 A2.06.15 A2.07.15 A2.07.17 A2.07.18 A2.06.21 A2.06.22
+A2.07.15 A2.07.11 A2.07.12 A2.07.13 A2.07.14 A2.07.16 A2.07.17 A2.07.18 A2.07.19
+A2.07.16 A2.07.12 A2.07.13 A2.07.15 A2.07.18 A2.07.19
+A2.07.17 A2.07.14 A2.07.15 A2.07.18 A2.06.20 A2.07.20 A2.06.21 A2.06.22 A2.06.27
+A2.07.18 A2.07.14 A2.07.15 A2.07.16 A2.07.17 A2.07.19 A2.07.20 A2.07.21 A2.06.27
+A2.07.19 A2.07.15 A2.07.16 A2.07.18 A2.07.20 A2.07.21
+A2.07.20 A2.07.17 A2.07.18 A2.07.19 A2.07.21 A2.07.22 A2.07.23 A2.06.26 A2.06.27
+A2.07.21 A2.07.18 A2.07.19 A2.07.20 A2.07.22 A2.07.23
+A2.07.22 A2.07.20 A2.07.21 A2.07.23 A2.07.24 A2.06.25 A2.07.25 A2.06.26 A2.06.27
+A2.07.23 A2.07.20 A2.07.21 A2.07.22 A2.07.24 A2.07.25
+A2.07.24 A2.07.22 A2.07.23 A2.06.24 A2.06.25 A2.07.25 A2.06.26 A2.07.26 A2.06.30
+A2.07.25 A2.07.22 A2.07.23 A2.07.24 A2.07.26 A2.06.30
+A2.07.26 A2.07.24 A2.07.25 A2.07.27 A2.06.29 A2.06.30
+A2.07.27 A2.07.26 A2.06.28 A2.07.28 A2.06.29 A2.07.29 A2.06.30
+A2.07.28 A2.07.27 A2.06.28 A2.06.29 A2.07.29
+A2.07.29 A2.07.27 A2.07.28
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-April2011.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-April2011.txt
new file mode 100644
index 0000000000000000000000000000000000000000..81600dfc06c7fa6e93cd1d2640f23bf9a7f5ea7d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-April2011.txt
@@ -0,0 +1,2509 @@
+# 3D FCal Neighbors Next in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Apr 20 10:35:58 2011
+#
+# 3d neighbors next in sampling are all cells touching the same
+# eta phi area in the next sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without next sampling neighbors are not listed.
+#
+A1.00.14 A2.00.00
+A1.00.15 A2.00.00 A2.00.02
+A1.00.16 A2.00.01 A2.00.02
+A1.00.17 A2.00.03
+A1.00.18 A2.00.03 A2.00.04
+A1.00.19 A2.00.04
+A1.00.20 A2.00.05
+A1.00.21 A2.00.05 A2.00.06
+A1.00.22 A2.00.06
+A1.00.23 A2.00.07 A2.00.08
+A1.00.24 A2.00.08
+A1.00.25 A2.00.09
+A1.00.26 A2.00.09 A2.00.10
+A1.00.27 A2.00.10
+A1.00.28 A2.00.11 A2.01.10
+A1.00.29 A2.00.11
+A1.00.30 A2.00.12
+A1.00.31 A2.00.12 A2.00.13
+A1.00.32 A2.00.13
+A1.00.33 A2.00.14
+A1.00.34 A2.00.15
+A1.00.35 A2.00.15 A2.00.16
+A1.00.36 A2.00.16
+A1.00.37 A2.00.17
+A1.00.38 A2.00.18
+A1.00.39 A2.00.18 A2.00.19
+A1.00.40 A2.00.19
+A1.00.41 A2.01.20
+A1.00.42 A2.00.20
+A1.00.43 A2.00.20 A2.00.21
+A1.00.44 A2.00.21
+A1.00.45 A2.00.22
+A1.00.46 A2.00.22 A2.00.23
+A1.00.47 A2.00.23
+A1.00.48 A2.00.24
+A1.00.49 A2.00.24 A2.00.25
+A1.00.50 A2.00.25
+A1.00.51 A2.00.24 A2.00.25 A2.00.26 A2.01.26
+A1.00.52 A2.00.25 A2.00.26
+A1.00.53 A2.01.26 A2.01.28
+A1.00.54 A2.00.26 A2.00.27
+A1.00.55 A2.00.26 A2.00.27
+A1.00.56 A2.00.26 A2.00.27
+A1.00.57 A2.00.27
+A1.00.58 A2.00.27
+A1.00.59 A2.00.27
+A1.00.60 A2.00.27 A2.00.28
+A1.00.61 A2.00.27 A2.00.28 A2.00.29
+A1.00.62 A2.00.27 A2.00.29
+A1.01.12 A2.01.05
+A1.01.13 A2.00.03
+A1.01.14 A2.01.02
+A1.01.15 A2.01.01 A2.01.05
+A1.01.16 A2.01.02 A2.01.04
+A1.01.17 A2.01.00 A2.01.03 A2.01.05 A2.02.01
+A1.01.18 A2.01.06
+A1.01.19 A2.01.04
+A1.01.20 A2.01.05
+A1.01.21 A2.00.07
+A1.01.22 A2.01.06 A2.01.07
+A1.01.23 A2.01.09
+A1.01.24 A2.01.07
+A1.01.25 A2.01.08
+A1.01.26 A2.01.10
+A1.01.27 A2.01.09 A2.01.11
+A1.01.28 A2.01.12
+A1.01.29 A2.01.11
+A1.01.30 A2.01.12 A2.01.15
+A1.01.31 A2.01.13
+A1.01.32 A2.01.14
+A1.01.33 A2.00.14 A2.01.13
+A1.01.34 A2.01.15
+A1.01.35 A2.01.14 A2.01.17
+A1.01.36 A2.01.16
+A1.01.37 A2.01.17
+A1.01.38 A2.00.17 A2.01.16
+A1.01.39 A2.01.18
+A1.01.40 A2.01.19
+A1.01.41 A2.01.18 A2.01.20
+A1.01.42 A2.01.21
+A1.01.43 A2.01.21 A2.01.22
+A1.01.44 A2.01.23
+A1.01.45 A2.01.22
+A1.01.46 A2.01.23 A2.01.24
+A1.01.47 A2.01.24
+A1.01.48 A2.01.23 A2.01.24 A2.01.25 A2.02.24
+A1.01.49 A2.01.24 A2.01.25
+A1.01.50 A2.00.24 A2.01.26
+A1.01.51 A2.01.25 A2.01.27
+A1.01.52 A2.01.26 A2.01.28
+A1.01.53 A2.01.26 A2.01.28
+A1.01.54 A2.01.28
+A1.01.55 A2.01.28
+A1.01.56 A2.01.28 A2.02.29
+A1.01.57 A2.01.28
+A1.01.58 A2.01.28 A2.01.29
+A1.01.59 A2.01.28 A2.01.30
+A1.01.60 A2.01.29 A2.01.31
+A1.01.61 A2.01.30 A2.01.31 A2.02.30
+A1.01.62 A2.00.28 A2.01.30 A2.01.31
+A1.02.12 A2.02.03
+A1.02.13 A2.02.01
+A1.02.14 A2.02.02 A2.02.04 A2.03.01
+A1.02.15 A2.02.00 A2.02.07
+A1.02.16 A2.02.03 A2.02.05 A2.02.07
+A1.02.17 A2.02.06
+A1.02.18 A2.02.02 A2.02.04 A2.02.08
+A1.02.19 A2.02.07
+A1.02.20 A2.02.09
+A1.02.21 A2.01.08 A2.02.06
+A1.02.22 A2.02.08
+A1.02.23 A2.02.10
+A1.02.24 A2.02.09 A2.02.11
+A1.02.25 A2.02.08 A2.03.06
+A1.02.26 A2.02.12
+A1.02.27 A2.02.10 A2.02.14
+A1.02.28 A2.02.11
+A1.02.29 A2.02.12 A2.02.13
+A1.02.30 A2.02.12 A2.02.15
+A1.02.31 A2.02.14
+A1.02.32 A2.02.12 A2.02.13 A2.02.15 A2.02.17
+A1.02.33 A2.02.15
+A1.02.34 A2.02.16
+A1.02.35 A2.02.15 A2.02.17
+A1.02.36 A2.02.18
+A1.02.37 A2.01.19 A2.02.16
+A1.02.38 A2.02.17 A2.03.15
+A1.02.39 A2.02.18 A2.02.19
+A1.02.40 A2.02.18 A2.02.20
+A1.02.41 A2.02.19 A2.02.21
+A1.02.42 A2.02.18 A2.02.19 A2.02.20 A2.02.22
+A1.02.43 A2.02.20
+A1.02.44 A2.02.19 A2.02.21 A2.02.22 A2.02.23
+A1.02.45 A2.02.20 A2.02.22
+A1.02.46 A2.02.22 A2.02.23
+A1.02.47 A2.01.23 A2.02.24
+A1.02.48 A2.02.23 A2.03.22
+A1.02.49 A2.02.24 A2.02.25
+A1.02.50 A2.02.25 A2.02.26
+A1.02.51 A2.01.25 A2.01.27 A2.02.24 A2.02.25
+A1.02.52 A2.01.27 A2.02.25 A2.02.26 A2.02.27
+A1.02.53 A2.01.27 A2.02.27
+A1.02.54 A2.02.27
+A1.02.55 A2.01.27 A2.02.27
+A1.02.56 A2.02.27 A2.02.28
+A1.02.57 A2.02.27
+A1.02.58 A2.02.27 A2.02.28
+A1.02.59 A2.02.29 A2.02.30
+A1.02.60 A2.02.28
+A1.02.61 A2.02.30 A2.02.31
+A1.02.62 A2.02.30 A2.02.31
+A1.03.12 A2.03.00
+A1.03.13 A2.03.00
+A1.03.14 A2.03.00
+A1.03.15 A2.02.04 A2.03.01
+A1.03.16 A2.03.01 A2.03.02
+A1.03.17 A2.03.02 A2.03.03
+A1.03.18 A2.03.03 A2.03.04
+A1.03.19 A2.03.04 A2.03.05
+A1.03.20 A2.02.04 A2.02.08 A2.03.01 A2.03.06
+A1.03.21 A2.03.01 A2.03.02 A2.03.06 A2.03.07
+A1.03.22 A2.03.02 A2.03.03 A2.03.07 A2.03.08
+A1.03.23 A2.03.03 A2.03.04 A2.03.08 A2.03.09
+A1.03.24 A2.03.04 A2.03.05 A2.03.09 A2.03.10
+A1.03.25 A2.03.06 A2.03.07
+A1.03.26 A2.03.07 A2.03.08
+A1.03.27 A2.03.08 A2.03.09
+A1.03.28 A2.03.09 A2.03.10
+A1.03.29 A2.02.13 A2.03.11
+A1.03.30 A2.03.11 A2.03.12
+A1.03.31 A2.03.12 A2.03.13
+A1.03.32 A2.03.13 A2.03.14
+A1.03.33 A2.02.13 A2.02.17 A2.03.11 A2.03.15
+A1.03.34 A2.03.11 A2.03.12 A2.03.15 A2.03.16
+A1.03.35 A2.03.12 A2.03.13 A2.03.16 A2.03.17
+A1.03.36 A2.03.13 A2.03.14 A2.03.17 A2.03.18
+A1.03.37 A2.03.15 A2.03.16
+A1.03.38 A2.03.16 A2.03.17
+A1.03.39 A2.03.17 A2.03.18
+A1.03.40 A2.02.21 A2.03.19
+A1.03.41 A2.03.19 A2.03.20
+A1.03.42 A2.03.20 A2.03.21
+A1.03.43 A2.02.21 A2.02.23 A2.03.19 A2.03.22
+A1.03.44 A2.03.19 A2.03.20 A2.03.22 A2.03.23
+A1.03.45 A2.03.20 A2.03.21 A2.03.23 A2.03.24
+A1.03.46 A2.03.22 A2.03.23
+A1.03.47 A2.03.23 A2.03.24
+A1.03.48 A2.02.26 A2.03.25
+A1.03.49 A2.03.25 A2.03.26
+A1.03.50 A2.02.26 A2.03.25
+A1.03.51 A2.03.25
+A1.03.52 A2.03.25 A2.03.26
+A1.03.53 A2.03.26
+A1.03.54 A2.02.27 A2.02.28
+A1.03.55 A2.02.28
+A1.03.56 A2.02.28 A2.03.27
+A1.03.57 A2.03.27 A2.03.28
+A1.03.58 A2.02.28
+A1.03.59 A2.02.28 A2.03.27 A2.03.29
+A1.03.60 A2.03.27 A2.03.28 A2.03.29 A2.03.30
+A1.03.61 A2.02.28 A2.03.29
+A1.03.62 A2.03.29 A2.03.30
+A1.04.12 A2.04.00
+A1.04.13 A2.04.00
+A1.04.14 A2.03.00 A2.04.00
+A1.04.15 A2.04.01 A2.04.02
+A1.04.16 A2.04.02 A2.04.03
+A1.04.17 A2.04.03 A2.04.04
+A1.04.18 A2.04.04 A2.04.05
+A1.04.19 A2.03.05 A2.04.05
+A1.04.20 A2.04.01 A2.04.02 A2.04.06 A2.04.07
+A1.04.21 A2.04.02 A2.04.03 A2.04.07 A2.04.08
+A1.04.22 A2.04.03 A2.04.04 A2.04.08 A2.04.09
+A1.04.23 A2.04.04 A2.04.05 A2.04.09 A2.04.10
+A1.04.24 A2.03.05 A2.03.10 A2.04.05 A2.04.10
+A1.04.25 A2.04.07 A2.04.08
+A1.04.26 A2.04.08 A2.04.09
+A1.04.27 A2.04.09 A2.04.10
+A1.04.28 A2.03.10 A2.04.10
+A1.04.29 A2.04.11 A2.04.12
+A1.04.30 A2.04.12 A2.04.13
+A1.04.31 A2.04.13 A2.04.14
+A1.04.32 A2.03.14 A2.04.14
+A1.04.33 A2.04.11 A2.04.12 A2.04.15 A2.04.16
+A1.04.34 A2.04.12 A2.04.13 A2.04.16 A2.04.17
+A1.04.35 A2.04.13 A2.04.14 A2.04.17 A2.04.18
+A1.04.36 A2.03.14 A2.03.18 A2.04.14 A2.04.18
+A1.04.37 A2.04.16 A2.04.17
+A1.04.38 A2.04.17 A2.04.18
+A1.04.39 A2.03.18 A2.04.18
+A1.04.40 A2.04.19 A2.04.20
+A1.04.41 A2.04.20 A2.04.21
+A1.04.42 A2.03.21 A2.04.21
+A1.04.43 A2.04.19 A2.04.20 A2.04.22 A2.04.23
+A1.04.44 A2.04.20 A2.04.21 A2.04.23 A2.04.24
+A1.04.45 A2.03.21 A2.03.24 A2.04.21 A2.04.24
+A1.04.46 A2.04.23 A2.04.24
+A1.04.47 A2.03.24 A2.04.24
+A1.04.48 A2.04.25 A2.04.26
+A1.04.49 A2.03.26 A2.04.26
+A1.04.50 A2.04.25
+A1.04.51 A2.04.25 A2.04.26
+A1.04.52 A2.04.26
+A1.04.53 A2.03.26 A2.04.26
+A1.04.54 A2.05.28
+A1.04.55 A2.04.27 A2.05.28
+A1.04.56 A2.04.27 A2.04.28
+A1.04.57 A2.03.28 A2.04.28
+A1.04.58 A2.04.27 A2.04.29 A2.05.28
+A1.04.59 A2.04.27 A2.04.28 A2.04.29 A2.04.30
+A1.04.60 A2.03.28 A2.03.30 A2.04.28 A2.04.30
+A1.04.61 A2.04.29 A2.04.30
+A1.04.62 A2.03.30 A2.04.30
+A1.05.09 A2.05.02
+A1.05.10 A2.05.07
+A1.05.11 A2.05.00 A2.05.06 A2.06.00
+A1.05.12 A2.05.03
+A1.05.13 A2.04.01 A2.05.02 A2.05.04
+A1.05.14 A2.05.01 A2.05.02 A2.05.07 A2.05.08
+A1.05.15 A2.05.03 A2.05.05 A2.05.07
+A1.05.16 A2.05.06 A2.05.09
+A1.05.17 A2.04.01 A2.04.06 A2.05.02 A2.05.04 A2.05.08
+A1.05.18 A2.05.07 A2.05.08
+A1.05.19 A2.05.09 A2.05.10
+A1.05.20 A2.05.06 A2.05.09 A2.05.11 A2.06.08
+A1.05.21 A2.04.06 A2.05.08
+A1.05.22 A2.05.10 A2.05.12
+A1.05.23 A2.05.09 A2.05.10 A2.05.11 A2.05.14
+A1.05.24 A2.04.06 A2.04.07
+A1.05.25 A2.05.12 A2.05.13
+A1.05.26 A2.05.10 A2.05.12 A2.05.14 A2.05.15
+A1.05.27 A2.05.11 A2.05.14
+A1.05.28 A2.04.11 A2.05.13
+A1.05.29 A2.05.12 A2.05.13 A2.05.15 A2.05.17
+A1.05.30 A2.05.14 A2.05.15
+A1.05.31 A2.04.11 A2.04.15 A2.05.13 A2.05.17
+A1.05.32 A2.05.15 A2.05.17
+A1.05.33 A2.05.16 A2.05.18
+A1.05.34 A2.04.15 A2.05.17
+A1.05.35 A2.05.16 A2.05.18 A2.05.20 A2.06.19
+A1.05.36 A2.05.18 A2.05.19
+A1.05.37 A2.04.15 A2.04.16
+A1.05.38 A2.05.19 A2.05.21
+A1.05.39 A2.05.18 A2.05.19 A2.05.20 A2.05.22
+A1.05.40 A2.04.19 A2.05.21
+A1.05.41 A2.05.19 A2.05.21 A2.05.22 A2.05.23
+A1.05.42 A2.05.20 A2.05.22
+A1.05.43 A2.04.19 A2.04.22 A2.05.21 A2.05.23
+A1.05.44 A2.05.22 A2.05.23
+A1.05.45 A2.04.22 A2.05.23
+A1.05.46 A2.05.24 A2.05.25
+A1.05.47 A2.04.22 A2.04.23
+A1.05.48 A2.05.25 A2.05.26
+A1.05.49 A2.04.25 A2.05.26
+A1.05.50 A2.05.25 A2.05.26 A2.05.27 A2.06.27
+A1.05.51 A2.04.25 A2.05.26 A2.05.27 A2.05.28
+A1.05.52 A2.05.27
+A1.05.53 A2.05.27 A2.05.28
+A1.05.54 A2.05.27
+A1.05.55 A2.05.28
+A1.05.56 A2.05.27 A2.05.28
+A1.05.57 A2.05.28
+A1.05.58 A2.05.29 A2.05.30
+A1.05.59 A2.04.29 A2.05.28
+A1.05.60 A2.05.30 A2.05.31
+A1.05.61 A2.05.30 A2.05.31
+A1.05.62 A2.05.31
+A1.06.11 A2.06.02 A2.06.04
+A1.06.12 A2.06.00 A2.06.01 A2.06.05
+A1.06.13 A2.06.04 A2.07.03
+A1.06.14 A2.06.06
+A1.06.15 A2.06.01 A2.06.03 A2.06.05
+A1.06.16 A2.06.02 A2.06.04 A2.06.06 A2.06.07
+A1.06.17 A2.05.06 A2.06.00 A2.06.05 A2.06.08
+A1.06.18 A2.06.06 A2.06.09
+A1.06.19 A2.06.04 A2.06.07
+A1.06.20 A2.06.05 A2.06.08
+A1.06.21 A2.06.10 A2.07.07
+A1.06.22 A2.06.06 A2.06.07 A2.06.09 A2.06.11
+A1.06.23 A2.06.09 A2.06.12
+A1.06.24 A2.06.07 A2.06.11
+A1.06.25 A2.05.11 A2.06.08
+A1.06.26 A2.06.10 A2.06.13
+A1.06.27 A2.06.09 A2.06.11 A2.06.12 A2.06.15
+A1.06.28 A2.06.12 A2.06.14
+A1.06.29 A2.06.11 A2.06.15
+A1.06.30 A2.06.12 A2.06.14 A2.06.15 A2.06.17
+A1.06.31 A2.06.13 A2.06.16
+A1.06.32 A2.05.16 A2.06.14
+A1.06.33 A2.06.13 A2.06.16 A2.07.14 A2.07.17
+A1.06.34 A2.06.15 A2.06.17
+A1.06.35 A2.05.16 A2.06.14 A2.06.17 A2.06.19
+A1.06.36 A2.06.16 A2.06.18
+A1.06.37 A2.06.17 A2.06.19
+A1.06.38 A2.06.16 A2.06.18 A2.06.20 A2.07.17
+A1.06.39 A2.06.18 A2.06.21
+A1.06.40 A2.05.20 A2.06.19
+A1.06.41 A2.06.18 A2.06.20 A2.06.21 A2.06.22
+A1.06.42 A2.06.21 A2.06.23
+A1.06.43 A2.06.21 A2.06.22 A2.06.23 A2.06.24
+A1.06.44 A2.05.24 A2.06.23
+A1.06.45 A2.06.22 A2.06.24
+A1.06.46 A2.05.24 A2.06.23 A2.06.24 A2.06.25
+A1.06.47 A2.06.24 A2.06.25
+A1.06.48 A2.05.24 A2.05.25 A2.06.25 A2.06.27
+A1.06.49 A2.06.25 A2.06.27
+A1.06.50 A2.06.26 A2.06.28
+A1.06.51 A2.05.27 A2.06.27
+A1.06.52 A2.06.28
+A1.06.53 A2.06.28
+A1.06.54 A2.06.28
+A1.06.55 A2.06.28 A2.06.29
+A1.06.56 A2.06.28 A2.06.29 A2.06.30
+A1.06.57 A2.05.29 A2.06.29
+A1.06.58 A2.06.28 A2.06.30
+A1.06.59 A2.05.29 A2.06.29 A2.06.30 A2.06.31
+A1.06.60 A2.06.30 A2.06.31
+A1.06.61 A2.05.29 A2.05.30 A2.06.31
+A1.06.62 A2.06.31
+A1.07.07 A2.07.03
+A1.07.13 A2.07.03 A2.07.04
+A1.07.14 A2.07.04
+A1.07.15 A2.07.00 A2.07.05
+A1.07.16 A2.07.00 A2.07.01 A2.07.05 A2.07.06
+A1.07.17 A2.07.01 A2.07.02 A2.07.06
+A1.07.18 A2.07.03 A2.07.07
+A1.07.19 A2.07.03 A2.07.04 A2.07.07 A2.07.08
+A1.07.20 A2.07.04 A2.07.08
+A1.07.21 A2.07.05 A2.07.09
+A1.07.22 A2.07.05 A2.07.06 A2.07.09 A2.07.10
+A1.07.23 A2.07.06 A2.07.10
+A1.07.24 A2.06.10 A2.07.07 A2.07.08 A2.07.11
+A1.07.25 A2.07.08 A2.07.11
+A1.07.26 A2.07.09 A2.07.12
+A1.07.27 A2.07.09 A2.07.10 A2.07.12 A2.07.13
+A1.07.28 A2.07.10 A2.07.13
+A1.07.29 A2.06.10 A2.06.13 A2.07.11 A2.07.14
+A1.07.30 A2.07.11 A2.07.14
+A1.07.31 A2.07.12 A2.07.15
+A1.07.32 A2.07.12 A2.07.13 A2.07.15 A2.07.16
+A1.07.33 A2.07.13 A2.07.16
+A1.07.34 A2.07.14 A2.07.17
+A1.07.35 A2.07.15 A2.07.18
+A1.07.36 A2.07.15 A2.07.16 A2.07.18 A2.07.19
+A1.07.37 A2.07.16 A2.07.19
+A1.07.38 A2.06.20 A2.07.17
+A1.07.39 A2.07.18 A2.07.20
+A1.07.40 A2.07.18 A2.07.19 A2.07.20 A2.07.21
+A1.07.41 A2.07.19 A2.07.21
+A1.07.42 A2.06.20 A2.06.22
+A1.07.43 A2.07.20 A2.07.22
+A1.07.44 A2.07.20 A2.07.21 A2.07.22 A2.07.23
+A1.07.45 A2.07.21 A2.07.23
+A1.07.46 A2.07.22 A2.07.24
+A1.07.47 A2.07.22 A2.07.23 A2.07.24 A2.07.25
+A1.07.48 A2.07.23 A2.07.25
+A1.07.49 A2.06.26 A2.07.24
+A1.07.50 A2.06.26 A2.07.24 A2.07.25 A2.07.26
+A1.07.51 A2.07.25 A2.07.26
+A1.07.52 A2.06.26 A2.06.28 A2.07.26 A2.07.27
+A1.07.53 A2.07.26 A2.07.27
+A1.07.54 A2.07.27
+A1.07.55 A2.07.27
+A1.07.56 A2.07.27
+A1.07.57 A2.07.27 A2.07.28
+A1.07.58 A2.07.27 A2.07.28 A2.07.29
+A1.07.59 A2.07.27 A2.07.29
+A1.07.60 A2.06.31 A2.07.28
+A1.07.61 A2.07.28 A2.07.29
+A1.07.62 A2.07.29
+A1.08.12 A2.08.03 A2.08.04
+A1.08.13 A2.08.04
+A1.08.14 A2.08.00 A2.08.05
+A1.08.15 A2.08.00 A2.08.02 A2.08.05 A2.08.06
+A1.08.16 A2.08.01 A2.08.02 A2.08.06
+A1.08.17 A2.08.03 A2.08.07
+A1.08.18 A2.08.03 A2.08.04 A2.08.07 A2.08.08
+A1.08.19 A2.08.04 A2.08.08
+A1.08.20 A2.08.05 A2.08.09
+A1.08.21 A2.08.05 A2.08.06 A2.08.09 A2.08.10
+A1.08.22 A2.08.06 A2.08.10
+A1.08.23 A2.08.07 A2.08.08 A2.08.11 A2.09.10
+A1.08.24 A2.08.08 A2.08.11
+A1.08.25 A2.08.09 A2.08.12
+A1.08.26 A2.08.09 A2.08.10 A2.08.12 A2.08.13
+A1.08.27 A2.08.10 A2.08.13
+A1.08.28 A2.08.11 A2.08.14 A2.09.10 A2.09.13
+A1.08.29 A2.08.11 A2.08.14
+A1.08.30 A2.08.12 A2.08.15
+A1.08.31 A2.08.12 A2.08.13 A2.08.15 A2.08.16
+A1.08.32 A2.08.13 A2.08.16
+A1.08.33 A2.08.14 A2.08.17
+A1.08.34 A2.08.15 A2.08.18
+A1.08.35 A2.08.15 A2.08.16 A2.08.18 A2.08.19
+A1.08.36 A2.08.16 A2.08.19
+A1.08.37 A2.08.17 A2.09.20
+A1.08.38 A2.08.18 A2.08.20
+A1.08.39 A2.08.18 A2.08.19 A2.08.20 A2.08.21
+A1.08.40 A2.08.19 A2.08.21
+A1.08.41 A2.09.20 A2.09.22
+A1.08.42 A2.08.20 A2.08.22
+A1.08.43 A2.08.20 A2.08.21 A2.08.22 A2.08.23
+A1.08.44 A2.08.21 A2.08.23
+A1.08.45 A2.08.22 A2.08.24
+A1.08.46 A2.08.22 A2.08.23 A2.08.24 A2.08.25
+A1.08.47 A2.08.23 A2.08.25
+A1.08.48 A2.08.24 A2.09.26
+A1.08.49 A2.08.24 A2.08.25 A2.08.26 A2.09.26
+A1.08.50 A2.08.25 A2.08.26
+A1.08.51 A2.08.26 A2.08.27 A2.09.26 A2.09.28
+A1.08.52 A2.08.26 A2.08.27
+A1.08.53 A2.09.28
+A1.08.54 A2.08.27
+A1.08.55 A2.08.27
+A1.08.56 A2.08.27
+A1.08.57 A2.08.27 A2.08.28
+A1.08.58 A2.08.27 A2.08.28 A2.08.29
+A1.08.59 A2.08.27 A2.08.29
+A1.08.60 A2.08.28 A2.09.31
+A1.08.61 A2.08.28 A2.08.29
+A1.08.62 A2.08.29
+A1.09.11 A2.09.04
+A1.09.12 A2.09.00 A2.09.05
+A1.09.13 A2.08.03 A2.09.04
+A1.09.14 A2.09.02 A2.09.06
+A1.09.15 A2.09.01 A2.09.05
+A1.09.16 A2.09.02 A2.09.04 A2.09.06 A2.09.07
+A1.09.17 A2.09.00 A2.09.03 A2.09.05 A2.09.08 A2.10.01 A2.10.06
+A1.09.18 A2.09.06 A2.09.09
+A1.09.19 A2.09.04 A2.09.07
+A1.09.20 A2.09.05 A2.09.08
+A1.09.21 A2.08.07 A2.09.10
+A1.09.22 A2.09.06 A2.09.07 A2.09.09 A2.09.11
+A1.09.23 A2.09.09 A2.09.12
+A1.09.24 A2.09.07 A2.09.11
+A1.09.25 A2.09.08 A2.10.11
+A1.09.26 A2.09.10 A2.09.13
+A1.09.27 A2.09.09 A2.09.11 A2.09.12 A2.09.15
+A1.09.28 A2.09.12 A2.09.14
+A1.09.29 A2.09.11 A2.09.15
+A1.09.30 A2.09.12 A2.09.14 A2.09.15 A2.09.17
+A1.09.31 A2.09.13 A2.09.16
+A1.09.32 A2.09.14 A2.10.16
+A1.09.33 A2.08.14 A2.08.17 A2.09.13 A2.09.16
+A1.09.34 A2.09.15 A2.09.17
+A1.09.35 A2.09.14 A2.09.17 A2.09.19 A2.10.16
+A1.09.36 A2.09.16 A2.09.18
+A1.09.37 A2.09.17 A2.09.19
+A1.09.38 A2.08.17 A2.09.16 A2.09.18 A2.09.20
+A1.09.39 A2.09.18 A2.09.21
+A1.09.40 A2.09.19 A2.10.20
+A1.09.41 A2.09.18 A2.09.20 A2.09.21 A2.09.22
+A1.09.42 A2.09.21 A2.09.23
+A1.09.43 A2.09.21 A2.09.22 A2.09.23 A2.09.24
+A1.09.44 A2.09.23 A2.10.24
+A1.09.45 A2.09.22 A2.09.24
+A1.09.46 A2.09.23 A2.09.24 A2.09.25 A2.10.24
+A1.09.47 A2.09.24 A2.09.25
+A1.09.48 A2.09.25 A2.09.27 A2.10.24 A2.10.25
+A1.09.49 A2.09.25 A2.09.27
+A1.09.50 A2.09.26 A2.09.28
+A1.09.51 A2.09.27 A2.10.27
+A1.09.52 A2.09.28
+A1.09.53 A2.09.28
+A1.09.54 A2.09.28 A2.10.29
+A1.09.55 A2.09.28 A2.09.29
+A1.09.56 A2.10.29
+A1.09.57 A2.09.28 A2.09.30
+A1.09.58 A2.09.29
+A1.09.59 A2.09.30
+A1.09.60 A2.09.29 A2.09.31 A2.10.30
+A1.09.61 A2.09.30 A2.09.31 A2.10.30
+A1.09.62 A2.09.30 A2.09.31
+A1.10.10 A2.10.02
+A1.10.11 A2.10.07
+A1.10.12 A2.10.01 A2.10.06
+A1.10.13 A2.10.03
+A1.10.14 A2.10.02 A2.10.04 A2.11.01
+A1.10.15 A2.10.00 A2.10.02 A2.10.07 A2.10.08
+A1.10.16 A2.10.03 A2.10.05 A2.10.07
+A1.10.17 A2.10.06 A2.10.09
+A1.10.18 A2.10.02 A2.10.04 A2.10.08 A2.11.01 A2.11.06
+A1.10.19 A2.10.07 A2.10.08
+A1.10.20 A2.10.09 A2.10.10
+A1.10.21 A2.09.08 A2.10.06 A2.10.09 A2.10.11
+A1.10.22 A2.10.08 A2.11.06
+A1.10.23 A2.10.10 A2.10.12
+A1.10.24 A2.10.09 A2.10.10 A2.10.11 A2.10.14
+A1.10.25 A2.11.06 A2.11.07
+A1.10.26 A2.10.12 A2.10.13
+A1.10.27 A2.10.10 A2.10.12 A2.10.14 A2.10.15
+A1.10.28 A2.10.11 A2.10.14
+A1.10.29 A2.10.13 A2.11.11
+A1.10.30 A2.10.12 A2.10.13 A2.10.15 A2.10.17
+A1.10.31 A2.10.14 A2.10.15
+A1.10.32 A2.10.13 A2.10.17 A2.11.11 A2.11.15
+A1.10.33 A2.10.15 A2.10.17
+A1.10.34 A2.10.16 A2.10.18
+A1.10.35 A2.10.17 A2.11.15
+A1.10.36 A2.09.19 A2.10.16 A2.10.18 A2.10.20
+A1.10.37 A2.10.18 A2.10.19
+A1.10.38 A2.11.15 A2.11.16
+A1.10.39 A2.10.19 A2.10.21
+A1.10.40 A2.10.18 A2.10.19 A2.10.20 A2.10.22
+A1.10.41 A2.10.21 A2.11.19
+A1.10.42 A2.10.19 A2.10.21 A2.10.22 A2.10.23
+A1.10.43 A2.10.20 A2.10.22
+A1.10.44 A2.10.21 A2.10.23 A2.11.19 A2.11.22
+A1.10.45 A2.10.22 A2.10.23
+A1.10.46 A2.10.23 A2.11.22
+A1.10.47 A2.10.24 A2.10.25
+A1.10.48 A2.11.22 A2.11.23
+A1.10.49 A2.10.25 A2.10.26
+A1.10.50 A2.10.26 A2.11.25
+A1.10.51 A2.09.27 A2.10.25 A2.10.26 A2.10.27
+A1.10.52 A2.10.26 A2.10.27 A2.10.28 A2.11.25
+A1.10.53 A2.10.27
+A1.10.54 A2.10.27 A2.10.28
+A1.10.55 A2.10.27
+A1.10.56 A2.10.28
+A1.10.57 A2.10.27 A2.10.28
+A1.10.58 A2.10.28
+A1.10.59 A2.10.29 A2.10.30
+A1.10.60 A2.10.28 A2.11.29
+A1.10.61 A2.10.30 A2.10.31
+A1.10.62 A2.10.31
+A1.11.12 A2.11.00
+A1.11.13 A2.11.00
+A1.11.14 A2.11.00 A2.12.00
+A1.11.15 A2.11.01 A2.11.02
+A1.11.16 A2.11.02 A2.11.03
+A1.11.17 A2.11.03 A2.11.04
+A1.11.18 A2.11.04 A2.11.05
+A1.11.19 A2.11.05 A2.12.05
+A1.11.20 A2.11.01 A2.11.02 A2.11.06 A2.11.07
+A1.11.21 A2.11.02 A2.11.03 A2.11.07 A2.11.08
+A1.11.22 A2.11.03 A2.11.04 A2.11.08 A2.11.09
+A1.11.23 A2.11.04 A2.11.05 A2.11.09 A2.11.10
+A1.11.24 A2.11.05 A2.11.10 A2.12.05 A2.12.10
+A1.11.25 A2.11.07 A2.11.08
+A1.11.26 A2.11.08 A2.11.09
+A1.11.27 A2.11.09 A2.11.10
+A1.11.28 A2.11.10 A2.12.10
+A1.11.29 A2.11.11 A2.11.12
+A1.11.30 A2.11.12 A2.11.13
+A1.11.31 A2.11.13 A2.11.14
+A1.11.32 A2.11.14 A2.12.14
+A1.11.33 A2.11.11 A2.11.12 A2.11.15 A2.11.16
+A1.11.34 A2.11.12 A2.11.13 A2.11.16 A2.11.17
+A1.11.35 A2.11.13 A2.11.14 A2.11.17 A2.11.18
+A1.11.36 A2.11.14 A2.11.18 A2.12.14 A2.12.18
+A1.11.37 A2.11.16 A2.11.17
+A1.11.38 A2.11.17 A2.11.18
+A1.11.39 A2.11.18 A2.12.18
+A1.11.40 A2.11.19 A2.11.20
+A1.11.41 A2.11.20 A2.11.21
+A1.11.42 A2.11.21 A2.12.21
+A1.11.43 A2.11.19 A2.11.20 A2.11.22 A2.11.23
+A1.11.44 A2.11.20 A2.11.21 A2.11.23 A2.11.24
+A1.11.45 A2.11.21 A2.11.24 A2.12.21 A2.12.24
+A1.11.46 A2.11.23 A2.11.24
+A1.11.47 A2.11.24 A2.12.24
+A1.11.48 A2.11.25 A2.11.26
+A1.11.49 A2.11.26 A2.12.26
+A1.11.50 A2.11.25
+A1.11.51 A2.11.25 A2.11.26
+A1.11.52 A2.11.26
+A1.11.53 A2.11.26 A2.12.26
+A1.11.54 A2.10.28
+A1.11.55 A2.10.28 A2.11.27
+A1.11.56 A2.11.27 A2.11.28
+A1.11.57 A2.11.28 A2.12.28
+A1.11.58 A2.10.28 A2.11.27 A2.11.29
+A1.11.59 A2.11.27 A2.11.28 A2.11.29 A2.11.30
+A1.11.60 A2.11.28 A2.11.30 A2.12.28 A2.12.30
+A1.11.61 A2.11.29 A2.11.30
+A1.11.62 A2.11.30 A2.12.30
+A1.12.12 A2.12.00
+A1.12.13 A2.12.00
+A1.12.14 A2.12.00
+A1.12.15 A2.12.01
+A1.12.16 A2.12.01 A2.12.02
+A1.12.17 A2.12.02 A2.12.03
+A1.12.18 A2.12.03 A2.12.04
+A1.12.19 A2.12.04 A2.12.05
+A1.12.20 A2.12.01 A2.12.06 A2.13.04 A2.13.08
+A1.12.21 A2.12.01 A2.12.02 A2.12.06 A2.12.07
+A1.12.22 A2.12.02 A2.12.03 A2.12.07 A2.12.08
+A1.12.23 A2.12.03 A2.12.04 A2.12.08 A2.12.09
+A1.12.24 A2.12.04 A2.12.05 A2.12.09 A2.12.10
+A1.12.25 A2.12.06 A2.12.07
+A1.12.26 A2.12.07 A2.12.08
+A1.12.27 A2.12.08 A2.12.09
+A1.12.28 A2.12.09 A2.12.10
+A1.12.29 A2.12.11 A2.13.13
+A1.12.30 A2.12.11 A2.12.12
+A1.12.31 A2.12.12 A2.12.13
+A1.12.32 A2.12.13 A2.12.14
+A1.12.33 A2.12.11 A2.12.15 A2.13.13 A2.13.17
+A1.12.34 A2.12.11 A2.12.12 A2.12.15 A2.12.16
+A1.12.35 A2.12.12 A2.12.13 A2.12.16 A2.12.17
+A1.12.36 A2.12.13 A2.12.14 A2.12.17 A2.12.18
+A1.12.37 A2.12.15 A2.12.16
+A1.12.38 A2.12.16 A2.12.17
+A1.12.39 A2.12.17 A2.12.18
+A1.12.40 A2.12.19 A2.13.21
+A1.12.41 A2.12.19 A2.12.20
+A1.12.42 A2.12.20 A2.12.21
+A1.12.43 A2.12.19 A2.12.22 A2.13.21 A2.13.23
+A1.12.44 A2.12.19 A2.12.20 A2.12.22 A2.12.23
+A1.12.45 A2.12.20 A2.12.21 A2.12.23 A2.12.24
+A1.12.46 A2.12.22 A2.12.23
+A1.12.47 A2.12.23 A2.12.24
+A1.12.48 A2.12.25 A2.13.26
+A1.12.49 A2.12.25 A2.12.26
+A1.12.50 A2.12.25 A2.13.26
+A1.12.51 A2.12.25
+A1.12.52 A2.12.25 A2.12.26
+A1.12.53 A2.12.26
+A1.12.54 A2.13.27 A2.13.28
+A1.12.55 A2.13.28
+A1.12.56 A2.12.27 A2.13.28
+A1.12.57 A2.12.27 A2.12.28
+A1.12.58 A2.13.28
+A1.12.59 A2.12.27 A2.12.29 A2.13.28
+A1.12.60 A2.12.27 A2.12.28 A2.12.29 A2.12.30
+A1.12.61 A2.12.29 A2.13.28
+A1.12.62 A2.12.29 A2.12.30
+A1.13.11 A2.13.03
+A1.13.12 A2.13.00 A2.13.06 A2.14.00
+A1.13.13 A2.12.01 A2.13.02 A2.13.04
+A1.13.14 A2.13.01 A2.13.07
+A1.13.15 A2.13.03 A2.13.05 A2.13.07
+A1.13.16 A2.13.00 A2.13.06
+A1.13.17 A2.13.02 A2.13.04 A2.13.08
+A1.13.18 A2.13.07
+A1.13.19 A2.13.09
+A1.13.20 A2.13.06 A2.14.08
+A1.13.21 A2.13.08
+A1.13.22 A2.13.10
+A1.13.23 A2.13.09 A2.13.11
+A1.13.24 A2.12.06 A2.13.08
+A1.13.25 A2.13.12
+A1.13.26 A2.13.10 A2.13.14
+A1.13.27 A2.13.11
+A1.13.28 A2.13.12 A2.13.13
+A1.13.29 A2.13.12 A2.13.15
+A1.13.30 A2.13.14
+A1.13.31 A2.13.12 A2.13.13 A2.13.15 A2.13.17
+A1.13.32 A2.13.15
+A1.13.33 A2.13.16
+A1.13.34 A2.13.15 A2.13.17
+A1.13.35 A2.13.16 A2.14.19
+A1.13.36 A2.13.18
+A1.13.37 A2.12.15 A2.13.17
+A1.13.38 A2.13.18 A2.13.19
+A1.13.39 A2.13.18 A2.13.20
+A1.13.40 A2.13.19 A2.13.21
+A1.13.41 A2.13.18 A2.13.19 A2.13.20 A2.13.22
+A1.13.42 A2.13.20
+A1.13.43 A2.13.19 A2.13.21 A2.13.22 A2.13.23
+A1.13.44 A2.13.20 A2.13.22
+A1.13.45 A2.13.22 A2.13.23
+A1.13.46 A2.13.24 A2.14.23
+A1.13.47 A2.12.22 A2.13.23
+A1.13.48 A2.13.24 A2.13.25
+A1.13.49 A2.13.25 A2.13.26
+A1.13.50 A2.13.24 A2.13.25 A2.14.25 A2.14.27
+A1.13.51 A2.13.25 A2.13.26 A2.13.27 A2.14.27
+A1.13.52 A2.13.27 A2.14.27
+A1.13.53 A2.13.27
+A1.13.54 A2.13.27 A2.14.27
+A1.13.55 A2.13.27 A2.13.28
+A1.13.56 A2.13.27
+A1.13.57 A2.13.27 A2.13.28
+A1.13.58 A2.13.29 A2.14.29
+A1.13.59 A2.13.28
+A1.13.60 A2.13.29 A2.13.30 A2.13.31
+A1.13.61 A2.13.29 A2.13.30 A2.13.31 A2.14.31
+A1.13.62 A2.13.31
+A1.14.12 A2.14.01
+A1.14.13 A2.15.03
+A1.14.14 A2.14.06
+A1.14.15 A2.14.01 A2.14.03
+A1.14.16 A2.14.02 A2.14.04
+A1.14.17 A2.13.06 A2.14.00 A2.14.05
+A1.14.18 A2.14.06
+A1.14.19 A2.14.04
+A1.14.20 A2.14.05
+A1.14.21 A2.15.07
+A1.14.22 A2.14.06 A2.14.07
+A1.14.23 A2.14.09
+A1.14.24 A2.14.07
+A1.14.25 A2.14.08
+A1.14.26 A2.14.10
+A1.14.27 A2.14.09 A2.14.11
+A1.14.28 A2.14.12
+A1.14.29 A2.14.11
+A1.14.30 A2.14.12 A2.14.15
+A1.14.31 A2.14.13
+A1.14.32 A2.14.14
+A1.14.33 A2.14.13 A2.15.14
+A1.14.34 A2.14.15
+A1.14.35 A2.14.14 A2.14.17
+A1.14.36 A2.14.16
+A1.14.37 A2.14.17
+A1.14.38 A2.14.16 A2.15.17
+A1.14.39 A2.14.18
+A1.14.40 A2.14.19
+A1.14.41 A2.14.18 A2.14.20
+A1.14.42 A2.14.21
+A1.14.43 A2.14.21 A2.14.22
+A1.14.44 A2.14.23
+A1.14.45 A2.14.22
+A1.14.46 A2.14.23 A2.14.24
+A1.14.47 A2.14.24
+A1.14.48 A2.13.24 A2.14.23 A2.14.24 A2.14.25
+A1.14.49 A2.14.24 A2.14.25
+A1.14.50 A2.14.26 A2.15.24
+A1.14.51 A2.14.25 A2.14.27
+A1.14.52 A2.14.26 A2.14.28
+A1.14.53 A2.14.26 A2.14.28
+A1.14.54 A2.14.26 A2.14.28
+A1.14.55 A2.14.28
+A1.14.56 A2.14.28
+A1.14.57 A2.14.28 A2.14.29
+A1.14.58 A2.14.28
+A1.14.59 A2.14.28 A2.14.29 A2.14.30
+A1.14.60 A2.14.28 A2.14.30
+A1.14.61 A2.13.29 A2.14.29 A2.14.30 A2.14.31
+A1.14.62 A2.14.30 A2.14.31 A2.15.28
+A1.15.15 A2.15.02
+A1.15.16 A2.15.01 A2.15.02
+A1.15.17 A2.15.00 A2.15.01
+A1.15.18 A2.15.03
+A1.15.19 A2.15.03 A2.15.04
+A1.15.20 A2.15.04
+A1.15.21 A2.15.05
+A1.15.22 A2.15.05 A2.15.06
+A1.15.23 A2.15.06
+A1.15.24 A2.15.07 A2.15.08
+A1.15.25 A2.15.08
+A1.15.26 A2.15.09
+A1.15.27 A2.15.09 A2.15.10
+A1.15.28 A2.15.10
+A1.15.29 A2.14.10 A2.15.11
+A1.15.30 A2.15.11
+A1.15.31 A2.15.12
+A1.15.32 A2.15.12 A2.15.13
+A1.15.33 A2.15.13
+A1.15.34 A2.15.14
+A1.15.35 A2.15.15
+A1.15.36 A2.15.15 A2.15.16
+A1.15.37 A2.15.16
+A1.15.38 A2.15.17
+A1.15.39 A2.15.18
+A1.15.40 A2.15.18 A2.15.19
+A1.15.41 A2.15.19
+A1.15.42 A2.14.20
+A1.15.43 A2.15.20
+A1.15.44 A2.15.20 A2.15.21
+A1.15.45 A2.15.21
+A1.15.46 A2.15.22
+A1.15.47 A2.15.22 A2.15.23
+A1.15.48 A2.15.23
+A1.15.49 A2.15.24
+A1.15.50 A2.15.24 A2.15.25
+A1.15.51 A2.15.25
+A1.15.52 A2.14.26 A2.15.24 A2.15.25 A2.15.26
+A1.15.53 A2.15.25 A2.15.26
+A1.15.54 A2.15.26 A2.15.27
+A1.15.55 A2.15.26 A2.15.27
+A1.15.56 A2.15.26 A2.15.27
+A1.15.57 A2.15.27
+A1.15.58 A2.15.27
+A1.15.59 A2.15.27
+A1.15.60 A2.15.27 A2.15.28
+A1.15.61 A2.15.27 A2.15.28 A2.15.29
+A1.15.62 A2.15.27 A2.15.29
+A2.00.05 A3.00.02
+A2.00.06 A3.00.00
+A2.00.07 A3.00.01 A3.01.00 A3.01.02
+A2.00.08 A3.00.01
+A2.00.09 A3.00.02
+A2.00.10 A3.00.03
+A2.00.11 A3.00.01 A3.00.04
+A2.00.12 A3.00.02 A3.00.05
+A2.00.13 A3.00.03 A3.00.06
+A2.00.14 A3.00.04 A3.00.07
+A2.00.15 A3.00.05 A3.00.08
+A2.00.16 A3.00.06 A3.00.09
+A2.00.17 A3.00.07
+A2.00.18 A3.00.08
+A2.00.19 A3.00.09
+A2.00.20 A3.00.08 A3.00.10
+A2.00.21 A3.00.09 A3.00.11
+A2.00.22 A3.00.10 A3.00.12
+A2.00.23 A3.00.11 A3.00.13
+A2.00.24 A3.00.12
+A2.00.25 A3.00.13
+A2.00.26 A3.00.13 A3.00.14
+A2.00.27 A3.00.14 A3.00.15 A3.01.15
+A2.00.28 A3.00.15 A3.01.15
+A2.00.29 A3.00.15
+A2.01.03 A3.02.00
+A2.01.04 A3.01.02
+A2.01.05 A3.01.01 A3.01.03
+A2.01.06 A3.01.01 A3.01.02
+A2.01.07 A3.01.02
+A2.01.08 A3.01.01 A3.01.03 A3.02.00
+A2.01.09 A3.01.01 A3.01.02 A3.01.03 A3.01.05
+A2.01.10 A3.00.01 A3.01.00 A3.01.02 A3.01.04
+A2.01.11 A3.01.01 A3.01.02 A3.01.05
+A2.01.12 A3.01.03 A3.01.05
+A2.01.13 A3.01.04 A3.01.06
+A2.01.14 A3.01.03 A3.01.05 A3.01.07 A3.02.05
+A2.01.15 A3.01.05
+A2.01.16 A3.01.06
+A2.01.17 A3.01.05 A3.01.07
+A2.01.18 A3.01.06 A3.01.08
+A2.01.19 A3.01.07 A3.02.09
+A2.01.20 A3.00.07 A3.01.09
+A2.01.21 A3.01.08 A3.01.10
+A2.01.22 A3.01.09 A3.01.11
+A2.01.23 A3.01.10
+A2.01.24 A3.01.11
+A2.01.25 A3.01.11 A3.01.12
+A2.01.26 A3.00.12 A3.01.13
+A2.01.27 A3.01.12 A3.02.13
+A2.01.28 A3.01.13 A3.01.14 A3.01.15
+A2.01.29 A3.01.14 A3.02.14
+A2.01.30 A3.01.14 A3.01.15
+A2.01.31 A3.01.15 A3.02.14
+A2.02.06 A3.02.00
+A2.02.07 A3.02.01 A3.02.02
+A2.02.08 A3.02.01
+A2.02.09 A3.02.00 A3.02.02 A3.02.03
+A2.02.10 A3.02.00 A3.02.01 A3.02.02 A3.02.03 A3.02.04
+A2.02.11 A3.01.03 A3.02.00 A3.02.03 A3.02.05
+A2.02.12 A3.02.01 A3.02.02 A3.02.04
+A2.02.13 A3.02.01 A3.02.02 A3.02.04 A3.02.06 A3.03.05
+A2.02.14 A3.02.03 A3.02.04 A3.02.05 A3.02.07
+A2.02.15 A3.02.04 A3.02.07
+A2.02.16 A3.01.07 A3.02.05 A3.02.07 A3.02.09
+A2.02.17 A3.02.04 A3.02.06 A3.02.07 A3.02.08
+A2.02.18 A3.02.07 A3.02.09
+A2.02.19 A3.02.07 A3.02.08 A3.02.09 A3.02.10
+A2.02.20 A3.02.09
+A2.02.21 A3.02.08 A3.02.10 A3.03.10 A3.03.12
+A2.02.22 A3.02.09 A3.02.10
+A2.02.23 A3.02.10 A3.03.12
+A2.02.24 A3.01.10 A3.02.11
+A2.02.25 A3.02.11 A3.02.12
+A2.02.26 A3.02.12
+A2.02.27 A3.02.13
+A2.02.28 A3.02.13 A3.03.15
+A2.02.29 A3.01.14 A3.02.14 A3.02.15
+A2.02.30 A3.02.14 A3.02.15
+A2.02.31 A3.02.15
+A2.03.01 A3.03.02
+A2.03.02 A3.03.02
+A2.03.03 A3.03.02 A3.03.03
+A2.03.04 A3.03.00 A3.03.03 A3.03.04
+A2.03.05 A3.03.00 A3.03.01 A3.03.04 A3.04.01 A3.04.04
+A2.03.06 A3.02.01 A3.03.02 A3.03.05
+A2.03.07 A3.03.02 A3.03.03 A3.03.05 A3.03.06
+A2.03.08 A3.03.02 A3.03.03 A3.03.06
+A2.03.09 A3.03.03 A3.03.04 A3.03.06 A3.03.07
+A2.03.10 A3.03.04 A3.03.07 A3.04.04 A3.04.07
+A2.03.11 A3.02.06 A3.03.05 A3.03.06 A3.03.08
+A2.03.12 A3.03.06 A3.03.08
+A2.03.13 A3.03.06 A3.03.07 A3.03.08 A3.03.09
+A2.03.14 A3.03.07 A3.03.09 A3.04.07 A3.04.09
+A2.03.15 A3.02.06 A3.02.08 A3.03.08 A3.03.10
+A2.03.16 A3.03.08 A3.03.10
+A2.03.17 A3.03.08 A3.03.09 A3.03.10 A3.03.11
+A2.03.18 A3.03.09 A3.03.11 A3.04.09 A3.04.11
+A2.03.19 A3.03.10 A3.03.12
+A2.03.20 A3.03.10 A3.03.11 A3.03.12 A3.03.13
+A2.03.21 A3.03.11 A3.03.13 A3.04.11 A3.04.13
+A2.03.22 A3.03.12
+A2.03.23 A3.03.12 A3.03.13
+A2.03.24 A3.03.13 A3.04.13
+A2.03.25 A3.02.12 A3.03.14
+A2.03.26 A3.03.14 A3.04.14
+A2.03.27 A3.03.15
+A2.03.28 A3.03.15 A3.04.15
+A2.03.29 A3.03.15
+A2.03.30 A3.03.15 A3.04.15
+A2.04.02 A3.04.02
+A2.04.03 A3.04.02 A3.04.03
+A2.04.04 A3.04.00 A3.04.03 A3.04.04
+A2.04.05 A3.04.00 A3.04.01 A3.04.04
+A2.04.06 A3.04.02 A3.04.05 A3.05.02
+A2.04.07 A3.04.02 A3.04.05
+A2.04.08 A3.04.02 A3.04.03 A3.04.05 A3.04.06
+A2.04.09 A3.04.03 A3.04.04 A3.04.06 A3.04.07
+A2.04.10 A3.04.04 A3.04.07
+A2.04.11 A3.04.05 A3.05.06
+A2.04.12 A3.04.05 A3.04.06 A3.04.08 A3.05.06
+A2.04.13 A3.04.06 A3.04.07 A3.04.08 A3.04.09
+A2.04.14 A3.04.07 A3.04.09
+A2.04.15 A3.05.06 A3.05.08
+A2.04.16 A3.04.08 A3.04.10 A3.05.06 A3.05.08
+A2.04.17 A3.04.08 A3.04.09 A3.04.10 A3.04.11
+A2.04.18 A3.04.09 A3.04.11
+A2.04.19 A3.04.10 A3.04.12 A3.05.08 A3.05.10
+A2.04.20 A3.04.10 A3.04.11 A3.04.12 A3.04.13
+A2.04.21 A3.04.11 A3.04.13
+A2.04.22 A3.04.12 A3.05.10
+A2.04.23 A3.04.12 A3.04.13
+A2.04.24 A3.04.13
+A2.04.25 A3.04.14 A3.05.12
+A2.04.26 A3.04.14
+A2.04.27 A3.04.15
+A2.04.28 A3.04.15
+A2.04.29 A3.04.15
+A2.04.30 A3.04.15
+A2.05.06 A3.05.00
+A2.05.07 A3.05.01
+A2.05.08 A3.05.01 A3.05.02
+A2.05.09 A3.05.00 A3.05.01 A3.05.03
+A2.05.10 A3.05.01 A3.05.03
+A2.05.11 A3.05.00 A3.05.03 A3.05.05 A3.06.02
+A2.05.12 A3.05.01 A3.05.02 A3.05.03 A3.05.04
+A2.05.13 A3.04.05 A3.05.02 A3.05.04 A3.05.06
+A2.05.14 A3.05.03 A3.05.05
+A2.05.15 A3.05.03 A3.05.04 A3.05.05 A3.05.07
+A2.05.16 A3.05.05 A3.06.06
+A2.05.17 A3.05.04 A3.05.06 A3.05.07 A3.05.08
+A2.05.18 A3.05.05 A3.05.07 A3.05.09 A3.06.06
+A2.05.19 A3.05.07 A3.05.08 A3.05.09 A3.05.10
+A2.05.20 A3.05.09 A3.06.06
+A2.05.21 A3.05.08 A3.05.10
+A2.05.22 A3.05.09 A3.05.10
+A2.05.23 A3.05.10
+A2.05.24 A3.05.11 A3.06.09
+A2.05.25 A3.05.11
+A2.05.26 A3.05.11 A3.05.12
+A2.05.27 A3.05.13 A3.06.11
+A2.05.28 A3.04.15 A3.05.13
+A2.05.29 A3.05.14 A3.06.13 A3.06.15
+A2.05.30 A3.05.14 A3.06.15
+A2.05.31 A3.05.14
+A2.06.05 A3.06.00
+A2.06.06 A3.06.00
+A2.06.07 A3.06.00 A3.06.01
+A2.06.08 A3.05.00 A3.06.00 A3.06.02
+A2.06.09 A3.06.00
+A2.06.10 A3.06.01 A3.06.03 A3.07.01
+A2.06.11 A3.06.00 A3.06.01
+A2.06.12 A3.06.00 A3.06.02 A3.06.04
+A2.06.13 A3.06.03
+A2.06.14 A3.05.05 A3.06.02 A3.06.04 A3.06.06
+A2.06.15 A3.06.00 A3.06.01 A3.06.04
+A2.06.16 A3.06.03 A3.06.05
+A2.06.17 A3.06.04 A3.06.06
+A2.06.18 A3.06.05 A3.06.07
+A2.06.19 A3.06.06
+A2.06.20 A3.06.08 A3.07.07
+A2.06.21 A3.06.07
+A2.06.22 A3.06.08
+A2.06.23 A3.06.07 A3.06.09
+A2.06.24 A3.06.08 A3.06.10
+A2.06.25 A3.06.10 A3.06.11
+A2.06.26 A3.06.12 A3.07.12
+A2.06.27 A3.06.11
+A2.06.28 A3.06.12
+A2.06.29 A3.06.12 A3.06.13
+A2.06.30 A3.06.12 A3.06.14 A3.06.15
+A2.06.31 A3.06.14 A3.06.15
+A2.07.06 A3.07.00
+A2.07.07 A3.07.01
+A2.07.08 A3.07.01 A3.07.02
+A2.07.09 A3.07.02
+A2.07.10 A3.07.00 A3.07.03
+A2.07.11 A3.07.01 A3.07.04
+A2.07.12 A3.07.02 A3.07.05
+A2.07.13 A3.07.03 A3.07.06
+A2.07.14 A3.07.04
+A2.07.15 A3.07.05
+A2.07.16 A3.07.06
+A2.07.17 A3.07.04 A3.07.07
+A2.07.18 A3.07.05 A3.07.08
+A2.07.19 A3.07.06 A3.07.09
+A2.07.20 A3.07.08 A3.07.10
+A2.07.21 A3.07.09 A3.07.11
+A2.07.22 A3.07.10
+A2.07.23 A3.07.11
+A2.07.24 A3.07.10 A3.07.12
+A2.07.25 A3.07.11 A3.07.13
+A2.07.26 A3.07.13 A3.07.14
+A2.07.27 A3.07.14
+A2.07.28 A3.06.14 A3.07.14 A3.07.15
+A2.07.29 A3.07.14 A3.07.15
+A2.08.06 A3.08.00
+A2.08.07 A3.08.01 A3.09.00
+A2.08.08 A3.08.01
+A2.08.09 A3.08.02
+A2.08.10 A3.08.00 A3.08.03
+A2.08.11 A3.08.01 A3.08.04
+A2.08.12 A3.08.02 A3.08.05
+A2.08.13 A3.08.03 A3.08.06
+A2.08.14 A3.08.04
+A2.08.15 A3.08.05
+A2.08.16 A3.08.06
+A2.08.17 A3.08.04 A3.08.07
+A2.08.18 A3.08.05 A3.08.08
+A2.08.19 A3.08.06 A3.08.09
+A2.08.20 A3.08.08 A3.08.10
+A2.08.21 A3.08.09 A3.08.11
+A2.08.22 A3.08.10
+A2.08.23 A3.08.11
+A2.08.24 A3.08.10 A3.08.12
+A2.08.25 A3.08.11 A3.08.13
+A2.08.26 A3.08.13 A3.08.14
+A2.08.27 A3.08.14
+A2.08.28 A3.08.14 A3.08.15 A3.09.15
+A2.08.29 A3.08.14 A3.08.15
+A2.09.05 A3.09.01
+A2.09.06 A3.09.02
+A2.09.07 A3.09.02
+A2.09.08 A3.09.01 A3.09.03 A3.10.00
+A2.09.09 A3.09.01 A3.09.02
+A2.09.10 A3.08.01 A3.09.00 A3.09.02 A3.09.04
+A2.09.11 A3.09.01 A3.09.02
+A2.09.12 A3.09.01 A3.09.03 A3.09.05
+A2.09.13 A3.09.04
+A2.09.14 A3.09.03 A3.09.05 A3.09.07 A3.10.05
+A2.09.15 A3.09.01 A3.09.02 A3.09.05
+A2.09.16 A3.09.04 A3.09.06
+A2.09.17 A3.09.05 A3.09.07
+A2.09.18 A3.09.06 A3.09.08
+A2.09.19 A3.09.07
+A2.09.20 A3.08.07 A3.09.09
+A2.09.21 A3.09.08
+A2.09.22 A3.09.09
+A2.09.23 A3.09.08 A3.09.10
+A2.09.24 A3.09.09 A3.09.11
+A2.09.25 A3.09.11 A3.09.12
+A2.09.26 A3.08.12 A3.09.13
+A2.09.27 A3.09.12
+A2.09.28 A3.09.13
+A2.09.29 A3.09.13 A3.09.14 A3.10.14
+A2.09.30 A3.09.13 A3.09.14 A3.09.15
+A2.09.31 A3.09.14 A3.09.15 A3.10.14
+A2.10.06 A3.10.00
+A2.10.07 A3.10.01 A3.10.02
+A2.10.08 A3.10.01 A3.10.02
+A2.10.09 A3.10.00 A3.10.03
+A2.10.10 A3.10.00 A3.10.02 A3.10.03
+A2.10.11 A3.09.03 A3.10.00 A3.10.03 A3.10.05
+A2.10.12 A3.10.01 A3.10.02 A3.10.03 A3.10.04
+A2.10.13 A3.10.01 A3.10.02 A3.10.04 A3.10.06 A3.11.05
+A2.10.14 A3.10.03 A3.10.05
+A2.10.15 A3.10.03 A3.10.04 A3.10.05 A3.10.07
+A2.10.16 A3.09.07 A3.10.05
+A2.10.17 A3.10.04 A3.10.06 A3.10.07 A3.10.08
+A2.10.18 A3.09.07 A3.10.05 A3.10.07 A3.10.09
+A2.10.19 A3.10.07 A3.10.08 A3.10.09 A3.10.10
+A2.10.20 A3.09.07 A3.10.09
+A2.10.21 A3.10.08 A3.10.10
+A2.10.22 A3.10.09 A3.10.10
+A2.10.23 A3.10.10
+A2.10.24 A3.09.10 A3.10.11
+A2.10.25 A3.10.11
+A2.10.26 A3.10.11 A3.10.12
+A2.10.27 A3.09.12 A3.10.13
+A2.10.28 A3.10.13 A3.11.15
+A2.10.29 A3.09.13 A3.09.14 A3.10.14
+A2.10.30 A3.10.14 A3.10.15
+A2.10.31 A3.10.15
+A2.11.02 A3.11.02
+A2.11.03 A3.11.02 A3.11.03
+A2.11.04 A3.11.00 A3.11.03 A3.11.04
+A2.11.05 A3.11.00 A3.11.01 A3.11.04
+A2.11.06 A3.10.01 A3.11.02 A3.11.05
+A2.11.07 A3.11.02 A3.11.05
+A2.11.08 A3.11.02 A3.11.03 A3.11.05 A3.11.06
+A2.11.09 A3.11.03 A3.11.04 A3.11.06 A3.11.07
+A2.11.10 A3.11.04 A3.11.07
+A2.11.11 A3.10.06 A3.11.05
+A2.11.12 A3.10.06 A3.11.05 A3.11.06 A3.11.08
+A2.11.13 A3.11.06 A3.11.07 A3.11.08 A3.11.09
+A2.11.14 A3.11.07 A3.11.09
+A2.11.15 A3.10.06 A3.10.08
+A2.11.16 A3.10.06 A3.10.08 A3.11.08 A3.11.10
+A2.11.17 A3.11.08 A3.11.09 A3.11.10 A3.11.11
+A2.11.18 A3.11.09 A3.11.11
+A2.11.19 A3.10.08 A3.10.10 A3.11.10 A3.11.12
+A2.11.20 A3.11.10 A3.11.11 A3.11.12 A3.11.13
+A2.11.21 A3.11.11 A3.11.13
+A2.11.22 A3.10.10 A3.11.12
+A2.11.23 A3.11.12 A3.11.13
+A2.11.24 A3.11.13
+A2.11.25 A3.10.12 A3.11.14
+A2.11.26 A3.11.14
+A2.11.27 A3.11.15
+A2.11.28 A3.11.15
+A2.11.29 A3.11.15
+A2.11.30 A3.11.15
+A2.12.02 A3.12.02
+A2.12.03 A3.12.02 A3.12.03
+A2.12.04 A3.12.00 A3.12.03 A3.12.04
+A2.12.05 A3.11.01 A3.11.04 A3.12.00 A3.12.01 A3.12.04
+A2.12.06 A3.12.02 A3.12.05 A3.13.02
+A2.12.07 A3.12.02 A3.12.03 A3.12.05 A3.12.06
+A2.12.08 A3.12.02 A3.12.03 A3.12.06
+A2.12.09 A3.12.03 A3.12.04 A3.12.06 A3.12.07
+A2.12.10 A3.11.04 A3.11.07 A3.12.04 A3.12.07
+A2.12.11 A3.12.05 A3.12.06 A3.12.08 A3.13.06
+A2.12.12 A3.12.06 A3.12.08
+A2.12.13 A3.12.06 A3.12.07 A3.12.08 A3.12.09
+A2.12.14 A3.11.07 A3.11.09 A3.12.07 A3.12.09
+A2.12.15 A3.12.08 A3.12.10 A3.13.06 A3.13.08
+A2.12.16 A3.12.08 A3.12.10
+A2.12.17 A3.12.08 A3.12.09 A3.12.10 A3.12.11
+A2.12.18 A3.11.09 A3.11.11 A3.12.09 A3.12.11
+A2.12.19 A3.12.10 A3.12.12
+A2.12.20 A3.12.10 A3.12.11 A3.12.12 A3.12.13
+A2.12.21 A3.11.11 A3.11.13 A3.12.11 A3.12.13
+A2.12.22 A3.12.12
+A2.12.23 A3.12.12 A3.12.13
+A2.12.24 A3.11.13 A3.12.13
+A2.12.25 A3.12.14 A3.13.12
+A2.12.26 A3.11.14 A3.12.14
+A2.12.27 A3.12.15
+A2.12.28 A3.11.15 A3.12.15
+A2.12.29 A3.12.15
+A2.12.30 A3.11.15 A3.12.15
+A2.13.06 A3.13.00
+A2.13.07 A3.13.01
+A2.13.08 A3.13.01 A3.13.02
+A2.13.09 A3.13.00 A3.13.01 A3.13.03
+A2.13.10 A3.13.01 A3.13.02 A3.13.03 A3.13.04
+A2.13.11 A3.13.00 A3.13.03 A3.13.05 A3.14.02
+A2.13.12 A3.13.01 A3.13.02 A3.13.04
+A2.13.13 A3.12.05 A3.13.02 A3.13.04 A3.13.06
+A2.13.14 A3.13.03 A3.13.04 A3.13.05 A3.13.07
+A2.13.15 A3.13.04 A3.13.07
+A2.13.16 A3.13.05 A3.13.07 A3.13.09 A3.14.06
+A2.13.17 A3.13.04 A3.13.06 A3.13.07 A3.13.08
+A2.13.18 A3.13.07 A3.13.09
+A2.13.19 A3.13.07 A3.13.08 A3.13.09 A3.13.10
+A2.13.20 A3.13.09
+A2.13.21 A3.12.10 A3.12.12 A3.13.08 A3.13.10
+A2.13.22 A3.13.09 A3.13.10
+A2.13.23 A3.12.12 A3.13.10
+A2.13.24 A3.13.11 A3.14.09
+A2.13.25 A3.13.11 A3.13.12
+A2.13.26 A3.13.12
+A2.13.27 A3.13.13
+A2.13.28 A3.12.15 A3.13.13
+A2.13.29 A3.13.14 A3.14.13 A3.14.15
+A2.13.30 A3.13.14 A3.14.15
+A2.13.31 A3.13.14
+A2.14.04 A3.14.01
+A2.14.05 A3.13.00 A3.14.00 A3.14.02
+A2.14.06 A3.14.00
+A2.14.07 A3.14.00 A3.14.01
+A2.14.08 A3.13.00 A3.14.00 A3.14.02
+A2.14.09 A3.14.00 A3.14.02 A3.14.04
+A2.14.10 A3.14.01 A3.14.03 A3.15.01
+A2.14.11 A3.14.00 A3.14.01 A3.14.04
+A2.14.12 A3.14.02 A3.14.04
+A2.14.13 A3.14.03 A3.14.05
+A2.14.14 A3.13.05 A3.14.02 A3.14.04 A3.14.06
+A2.14.15 A3.14.04
+A2.14.16 A3.14.05
+A2.14.17 A3.14.04 A3.14.06
+A2.14.18 A3.14.05 A3.14.07
+A2.14.19 A3.13.09 A3.14.06
+A2.14.20 A3.14.08 A3.15.07
+A2.14.21 A3.14.07 A3.14.09
+A2.14.22 A3.14.08 A3.14.10
+A2.14.23 A3.14.09
+A2.14.24 A3.14.10
+A2.14.25 A3.14.10 A3.14.11
+A2.14.26 A3.14.12 A3.15.12
+A2.14.27 A3.13.13 A3.14.11
+A2.14.28 A3.14.12 A3.14.13 A3.14.14
+A2.14.29 A3.14.13
+A2.14.30 A3.14.14 A3.14.15
+A2.14.31 A3.14.14 A3.14.15
+A2.15.05 A3.15.02
+A2.15.06 A3.15.00
+A2.15.07 A3.14.01 A3.15.01
+A2.15.08 A3.15.01 A3.15.02
+A2.15.09 A3.15.02
+A2.15.10 A3.15.03
+A2.15.11 A3.15.01 A3.15.04
+A2.15.12 A3.15.02 A3.15.05
+A2.15.13 A3.15.03 A3.15.06
+A2.15.14 A3.15.04 A3.15.07
+A2.15.15 A3.15.05 A3.15.08
+A2.15.16 A3.15.06 A3.15.09
+A2.15.17 A3.15.07
+A2.15.18 A3.15.08
+A2.15.19 A3.15.09
+A2.15.20 A3.15.08 A3.15.10
+A2.15.21 A3.15.09 A3.15.11
+A2.15.22 A3.15.10 A3.15.12
+A2.15.23 A3.15.11 A3.15.13
+A2.15.24 A3.15.12
+A2.15.25 A3.15.13
+A2.15.26 A3.15.13 A3.15.14
+A2.15.27 A3.14.14 A3.15.14 A3.15.15
+A2.15.28 A3.14.14 A3.15.15
+A2.15.29 A3.15.15
+C1.00.14 C2.00.00
+C1.00.15 C2.00.00 C2.00.02
+C1.00.16 C2.00.01 C2.00.02
+C1.00.17 C2.00.03
+C1.00.18 C2.00.03 C2.00.04
+C1.00.19 C2.00.04
+C1.00.20 C2.00.05
+C1.00.21 C2.00.05 C2.00.06
+C1.00.22 C2.00.06
+C1.00.23 C2.00.07 C2.00.08
+C1.00.24 C2.00.08
+C1.00.25 C2.00.09
+C1.00.26 C2.00.09 C2.00.10
+C1.00.27 C2.00.10
+C1.00.28 C2.00.11 C2.01.10
+C1.00.29 C2.00.11
+C1.00.30 C2.00.12
+C1.00.31 C2.00.12 C2.00.13
+C1.00.32 C2.00.13
+C1.00.33 C2.00.14
+C1.00.34 C2.00.15
+C1.00.35 C2.00.15 C2.00.16
+C1.00.36 C2.00.16
+C1.00.37 C2.00.17
+C1.00.38 C2.00.18
+C1.00.39 C2.00.18 C2.00.19
+C1.00.40 C2.00.19
+C1.00.41 C2.01.20
+C1.00.42 C2.00.20
+C1.00.43 C2.00.20 C2.00.21
+C1.00.44 C2.00.21
+C1.00.45 C2.00.22
+C1.00.46 C2.00.22 C2.00.23
+C1.00.47 C2.00.23
+C1.00.48 C2.00.24
+C1.00.49 C2.00.24 C2.00.25
+C1.00.50 C2.00.25
+C1.00.51 C2.00.24 C2.00.25 C2.00.26 C2.01.26
+C1.00.52 C2.00.25 C2.00.26
+C1.00.53 C2.01.26 C2.01.28
+C1.00.54 C2.00.26 C2.00.27
+C1.00.55 C2.00.26 C2.00.27
+C1.00.56 C2.00.26 C2.00.27
+C1.00.57 C2.00.27
+C1.00.58 C2.00.27
+C1.00.59 C2.00.27
+C1.00.60 C2.00.27 C2.00.28
+C1.00.61 C2.00.27 C2.00.28 C2.00.29
+C1.00.62 C2.00.27 C2.00.29
+C1.01.12 C2.01.05
+C1.01.13 C2.00.03
+C1.01.14 C2.01.02
+C1.01.15 C2.01.01 C2.01.05
+C1.01.16 C2.01.02 C2.01.04
+C1.01.17 C2.01.00 C2.01.03 C2.01.05 C2.02.01
+C1.01.18 C2.01.06
+C1.01.19 C2.01.04
+C1.01.20 C2.01.05
+C1.01.21 C2.00.07
+C1.01.22 C2.01.06 C2.01.07
+C1.01.23 C2.01.09
+C1.01.24 C2.01.07
+C1.01.25 C2.01.08
+C1.01.26 C2.01.10
+C1.01.27 C2.01.09 C2.01.11
+C1.01.28 C2.01.12
+C1.01.29 C2.01.11
+C1.01.30 C2.01.12 C2.01.15
+C1.01.31 C2.01.13
+C1.01.32 C2.01.14
+C1.01.33 C2.00.14 C2.01.13
+C1.01.34 C2.01.15
+C1.01.35 C2.01.14 C2.01.17
+C1.01.36 C2.01.16
+C1.01.37 C2.01.17
+C1.01.38 C2.00.17 C2.01.16
+C1.01.39 C2.01.18
+C1.01.40 C2.01.19
+C1.01.41 C2.01.18 C2.01.20
+C1.01.42 C2.01.21
+C1.01.43 C2.01.21 C2.01.22
+C1.01.44 C2.01.23
+C1.01.45 C2.01.22
+C1.01.46 C2.01.23 C2.01.24
+C1.01.47 C2.01.24
+C1.01.48 C2.01.23 C2.01.24 C2.01.25 C2.02.24
+C1.01.49 C2.01.24 C2.01.25
+C1.01.50 C2.00.24 C2.01.26
+C1.01.51 C2.01.25 C2.01.27
+C1.01.52 C2.01.26 C2.01.28
+C1.01.53 C2.01.26 C2.01.28
+C1.01.54 C2.01.28
+C1.01.55 C2.01.28
+C1.01.56 C2.01.28 C2.02.29
+C1.01.57 C2.01.28
+C1.01.58 C2.01.28 C2.01.29
+C1.01.59 C2.01.28 C2.01.30
+C1.01.60 C2.01.29 C2.01.31
+C1.01.61 C2.01.30 C2.01.31 C2.02.30
+C1.01.62 C2.00.28 C2.01.30 C2.01.31
+C1.02.12 C2.02.03
+C1.02.13 C2.02.01
+C1.02.14 C2.02.02 C2.02.04 C2.03.01
+C1.02.15 C2.02.00 C2.02.07
+C1.02.16 C2.02.03 C2.02.05 C2.02.07
+C1.02.17 C2.02.06
+C1.02.18 C2.02.02 C2.02.04 C2.02.08
+C1.02.19 C2.02.07
+C1.02.20 C2.02.09
+C1.02.21 C2.01.08 C2.02.06
+C1.02.22 C2.02.08
+C1.02.23 C2.02.10
+C1.02.24 C2.02.09 C2.02.11
+C1.02.25 C2.02.08 C2.03.06
+C1.02.26 C2.02.12
+C1.02.27 C2.02.10 C2.02.14
+C1.02.28 C2.02.11
+C1.02.29 C2.02.12 C2.02.13
+C1.02.30 C2.02.12 C2.02.15
+C1.02.31 C2.02.14
+C1.02.32 C2.02.12 C2.02.13 C2.02.15 C2.02.17
+C1.02.33 C2.02.15
+C1.02.34 C2.02.16
+C1.02.35 C2.02.15 C2.02.17
+C1.02.36 C2.02.18
+C1.02.37 C2.01.19 C2.02.16
+C1.02.38 C2.02.17 C2.03.15
+C1.02.39 C2.02.18 C2.02.19
+C1.02.40 C2.02.18 C2.02.20
+C1.02.41 C2.02.19 C2.02.21
+C1.02.42 C2.02.18 C2.02.19 C2.02.20 C2.02.22
+C1.02.43 C2.02.20
+C1.02.44 C2.02.19 C2.02.21 C2.02.22 C2.02.23
+C1.02.45 C2.02.20 C2.02.22
+C1.02.46 C2.02.22 C2.02.23
+C1.02.47 C2.01.23 C2.02.24
+C1.02.48 C2.02.23 C2.03.22
+C1.02.49 C2.02.24 C2.02.25
+C1.02.50 C2.02.25 C2.02.26
+C1.02.51 C2.01.25 C2.01.27 C2.02.24 C2.02.25
+C1.02.52 C2.01.27 C2.02.25 C2.02.26 C2.02.27
+C1.02.53 C2.01.27 C2.02.27
+C1.02.54 C2.02.27
+C1.02.55 C2.01.27 C2.02.27
+C1.02.56 C2.02.27 C2.02.28
+C1.02.57 C2.02.27
+C1.02.58 C2.02.27 C2.02.28
+C1.02.59 C2.02.29 C2.02.30
+C1.02.60 C2.02.28
+C1.02.61 C2.02.30 C2.02.31
+C1.02.62 C2.02.30 C2.02.31
+C1.03.12 C2.03.00
+C1.03.13 C2.03.00
+C1.03.14 C2.03.00
+C1.03.15 C2.02.04 C2.03.01
+C1.03.16 C2.03.01 C2.03.02
+C1.03.17 C2.03.02 C2.03.03
+C1.03.18 C2.03.03 C2.03.04
+C1.03.19 C2.03.04 C2.03.05
+C1.03.20 C2.02.04 C2.02.08 C2.03.01 C2.03.06
+C1.03.21 C2.03.01 C2.03.02 C2.03.06 C2.03.07
+C1.03.22 C2.03.02 C2.03.03 C2.03.07 C2.03.08
+C1.03.23 C2.03.03 C2.03.04 C2.03.08 C2.03.09
+C1.03.24 C2.03.04 C2.03.05 C2.03.09 C2.03.10
+C1.03.25 C2.03.06 C2.03.07
+C1.03.26 C2.03.07 C2.03.08
+C1.03.27 C2.03.08 C2.03.09
+C1.03.28 C2.03.09 C2.03.10
+C1.03.29 C2.02.13 C2.03.11
+C1.03.30 C2.03.11 C2.03.12
+C1.03.31 C2.03.12 C2.03.13
+C1.03.32 C2.03.13 C2.03.14
+C1.03.33 C2.02.13 C2.02.17 C2.03.11 C2.03.15
+C1.03.34 C2.03.11 C2.03.12 C2.03.15 C2.03.16
+C1.03.35 C2.03.12 C2.03.13 C2.03.16 C2.03.17
+C1.03.36 C2.03.13 C2.03.14 C2.03.17 C2.03.18
+C1.03.37 C2.03.15 C2.03.16
+C1.03.38 C2.03.16 C2.03.17
+C1.03.39 C2.03.17 C2.03.18
+C1.03.40 C2.02.21 C2.03.19
+C1.03.41 C2.03.19 C2.03.20
+C1.03.42 C2.03.20 C2.03.21
+C1.03.43 C2.02.21 C2.02.23 C2.03.19 C2.03.22
+C1.03.44 C2.03.19 C2.03.20 C2.03.22 C2.03.23
+C1.03.45 C2.03.20 C2.03.21 C2.03.23 C2.03.24
+C1.03.46 C2.03.22 C2.03.23
+C1.03.47 C2.03.23 C2.03.24
+C1.03.48 C2.02.26 C2.03.25
+C1.03.49 C2.03.25 C2.03.26
+C1.03.50 C2.02.26 C2.03.25
+C1.03.51 C2.03.25
+C1.03.52 C2.03.25 C2.03.26
+C1.03.53 C2.03.26
+C1.03.54 C2.02.27 C2.02.28
+C1.03.55 C2.02.28
+C1.03.56 C2.02.28 C2.03.27
+C1.03.57 C2.03.27 C2.03.28
+C1.03.58 C2.02.28
+C1.03.59 C2.02.28 C2.03.27 C2.03.29
+C1.03.60 C2.03.27 C2.03.28 C2.03.29 C2.03.30
+C1.03.61 C2.02.28 C2.03.29
+C1.03.62 C2.03.29 C2.03.30
+C1.04.12 C2.04.00
+C1.04.13 C2.04.00
+C1.04.14 C2.03.00 C2.04.00
+C1.04.15 C2.04.01 C2.04.02
+C1.04.16 C2.04.02 C2.04.03
+C1.04.17 C2.04.03 C2.04.04
+C1.04.18 C2.04.04 C2.04.05
+C1.04.19 C2.03.05 C2.04.05
+C1.04.20 C2.04.01 C2.04.02 C2.04.06 C2.04.07
+C1.04.21 C2.04.02 C2.04.03 C2.04.07 C2.04.08
+C1.04.22 C2.04.03 C2.04.04 C2.04.08 C2.04.09
+C1.04.23 C2.04.04 C2.04.05 C2.04.09 C2.04.10
+C1.04.24 C2.03.05 C2.03.10 C2.04.05 C2.04.10
+C1.04.25 C2.04.07 C2.04.08
+C1.04.26 C2.04.08 C2.04.09
+C1.04.27 C2.04.09 C2.04.10
+C1.04.28 C2.03.10 C2.04.10
+C1.04.29 C2.04.11 C2.04.12
+C1.04.30 C2.04.12 C2.04.13
+C1.04.31 C2.04.13 C2.04.14
+C1.04.32 C2.03.14 C2.04.14
+C1.04.33 C2.04.11 C2.04.12 C2.04.15 C2.04.16
+C1.04.34 C2.04.12 C2.04.13 C2.04.16 C2.04.17
+C1.04.35 C2.04.13 C2.04.14 C2.04.17 C2.04.18
+C1.04.36 C2.03.14 C2.03.18 C2.04.14 C2.04.18
+C1.04.37 C2.04.16 C2.04.17
+C1.04.38 C2.04.17 C2.04.18
+C1.04.39 C2.03.18 C2.04.18
+C1.04.40 C2.04.19 C2.04.20
+C1.04.41 C2.04.20 C2.04.21
+C1.04.42 C2.03.21 C2.04.21
+C1.04.43 C2.04.19 C2.04.20 C2.04.22 C2.04.23
+C1.04.44 C2.04.20 C2.04.21 C2.04.23 C2.04.24
+C1.04.45 C2.03.21 C2.03.24 C2.04.21 C2.04.24
+C1.04.46 C2.04.23 C2.04.24
+C1.04.47 C2.03.24 C2.04.24
+C1.04.48 C2.04.25 C2.04.26
+C1.04.49 C2.03.26 C2.04.26
+C1.04.50 C2.04.25
+C1.04.51 C2.04.25 C2.04.26
+C1.04.52 C2.04.26
+C1.04.53 C2.03.26 C2.04.26
+C1.04.54 C2.05.28
+C1.04.55 C2.04.27 C2.05.28
+C1.04.56 C2.04.27 C2.04.28
+C1.04.57 C2.03.28 C2.04.28
+C1.04.58 C2.04.27 C2.04.29 C2.05.28
+C1.04.59 C2.04.27 C2.04.28 C2.04.29 C2.04.30
+C1.04.60 C2.03.28 C2.03.30 C2.04.28 C2.04.30
+C1.04.61 C2.04.29 C2.04.30
+C1.04.62 C2.03.30 C2.04.30
+C1.05.09 C2.05.02
+C1.05.10 C2.05.07
+C1.05.11 C2.05.00 C2.05.06 C2.06.00
+C1.05.12 C2.05.03
+C1.05.13 C2.04.01 C2.05.02 C2.05.04
+C1.05.14 C2.05.01 C2.05.02 C2.05.07 C2.05.08
+C1.05.15 C2.05.03 C2.05.05 C2.05.07
+C1.05.16 C2.05.06 C2.05.09
+C1.05.17 C2.04.01 C2.04.06 C2.05.02 C2.05.04 C2.05.08
+C1.05.18 C2.05.07 C2.05.08
+C1.05.19 C2.05.09 C2.05.10
+C1.05.20 C2.05.06 C2.05.09 C2.05.11 C2.06.08
+C1.05.21 C2.04.06 C2.05.08
+C1.05.22 C2.05.10 C2.05.12
+C1.05.23 C2.05.09 C2.05.10 C2.05.11 C2.05.14
+C1.05.24 C2.04.06 C2.04.07
+C1.05.25 C2.05.12 C2.05.13
+C1.05.26 C2.05.10 C2.05.12 C2.05.14 C2.05.15
+C1.05.27 C2.05.11 C2.05.14
+C1.05.28 C2.04.11 C2.05.13
+C1.05.29 C2.05.12 C2.05.13 C2.05.15 C2.05.17
+C1.05.30 C2.05.14 C2.05.15
+C1.05.31 C2.04.11 C2.04.15 C2.05.13 C2.05.17
+C1.05.32 C2.05.15 C2.05.17
+C1.05.33 C2.05.16 C2.05.18
+C1.05.34 C2.04.15 C2.05.17
+C1.05.35 C2.05.16 C2.05.18 C2.05.20 C2.06.19
+C1.05.36 C2.05.18 C2.05.19
+C1.05.37 C2.04.15 C2.04.16
+C1.05.38 C2.05.19 C2.05.21
+C1.05.39 C2.05.18 C2.05.19 C2.05.20 C2.05.22
+C1.05.40 C2.04.19 C2.05.21
+C1.05.41 C2.05.19 C2.05.21 C2.05.22 C2.05.23
+C1.05.42 C2.05.20 C2.05.22
+C1.05.43 C2.04.19 C2.04.22 C2.05.21 C2.05.23
+C1.05.44 C2.05.22 C2.05.23
+C1.05.45 C2.04.22 C2.05.23
+C1.05.46 C2.05.24 C2.05.25
+C1.05.47 C2.04.22 C2.04.23
+C1.05.48 C2.05.25 C2.05.26
+C1.05.49 C2.04.25 C2.05.26
+C1.05.50 C2.05.25 C2.05.26 C2.05.27 C2.06.27
+C1.05.51 C2.04.25 C2.05.26 C2.05.27 C2.05.28
+C1.05.52 C2.05.27
+C1.05.53 C2.05.27 C2.05.28
+C1.05.54 C2.05.27
+C1.05.55 C2.05.28
+C1.05.56 C2.05.27 C2.05.28
+C1.05.57 C2.05.28
+C1.05.58 C2.05.29 C2.05.30
+C1.05.59 C2.04.29 C2.05.28
+C1.05.60 C2.05.30 C2.05.31
+C1.05.61 C2.05.30 C2.05.31
+C1.05.62 C2.05.31
+C1.06.11 C2.06.02 C2.06.04
+C1.06.12 C2.06.00 C2.06.01 C2.06.05
+C1.06.13 C2.06.04 C2.07.03
+C1.06.14 C2.06.06
+C1.06.15 C2.06.01 C2.06.03 C2.06.05
+C1.06.16 C2.06.02 C2.06.04 C2.06.06 C2.06.07
+C1.06.17 C2.05.06 C2.06.00 C2.06.05 C2.06.08
+C1.06.18 C2.06.06 C2.06.09
+C1.06.19 C2.06.04 C2.06.07
+C1.06.20 C2.06.05 C2.06.08
+C1.06.21 C2.06.10 C2.07.07
+C1.06.22 C2.06.06 C2.06.07 C2.06.09 C2.06.11
+C1.06.23 C2.06.09 C2.06.12
+C1.06.24 C2.06.07 C2.06.11
+C1.06.25 C2.05.11 C2.06.08
+C1.06.26 C2.06.10 C2.06.13
+C1.06.27 C2.06.09 C2.06.11 C2.06.12 C2.06.15
+C1.06.28 C2.06.12 C2.06.14
+C1.06.29 C2.06.11 C2.06.15
+C1.06.30 C2.06.12 C2.06.14 C2.06.15 C2.06.17
+C1.06.31 C2.06.13 C2.06.16
+C1.06.32 C2.05.16 C2.06.14
+C1.06.33 C2.06.13 C2.06.16 C2.07.14 C2.07.17
+C1.06.34 C2.06.15 C2.06.17
+C1.06.35 C2.05.16 C2.06.14 C2.06.17 C2.06.19
+C1.06.36 C2.06.16 C2.06.18
+C1.06.37 C2.06.17 C2.06.19
+C1.06.38 C2.06.16 C2.06.18 C2.06.20 C2.07.17
+C1.06.39 C2.06.18 C2.06.21
+C1.06.40 C2.05.20 C2.06.19
+C1.06.41 C2.06.18 C2.06.20 C2.06.21 C2.06.22
+C1.06.42 C2.06.21 C2.06.23
+C1.06.43 C2.06.21 C2.06.22 C2.06.23 C2.06.24
+C1.06.44 C2.05.24 C2.06.23
+C1.06.45 C2.06.22 C2.06.24
+C1.06.46 C2.05.24 C2.06.23 C2.06.24 C2.06.25
+C1.06.47 C2.06.24 C2.06.25
+C1.06.48 C2.05.24 C2.05.25 C2.06.25 C2.06.27
+C1.06.49 C2.06.25 C2.06.27
+C1.06.50 C2.06.26 C2.06.28
+C1.06.51 C2.05.27 C2.06.27
+C1.06.52 C2.06.28
+C1.06.53 C2.06.28
+C1.06.54 C2.06.28
+C1.06.55 C2.06.28 C2.06.29
+C1.06.56 C2.06.28 C2.06.29 C2.06.30
+C1.06.57 C2.05.29 C2.06.29
+C1.06.58 C2.06.28 C2.06.30
+C1.06.59 C2.05.29 C2.06.29 C2.06.30 C2.06.31
+C1.06.60 C2.06.30 C2.06.31
+C1.06.61 C2.05.29 C2.05.30 C2.06.31
+C1.06.62 C2.06.31
+C1.07.07 C2.07.03
+C1.07.13 C2.07.03 C2.07.04
+C1.07.14 C2.07.04
+C1.07.15 C2.07.00 C2.07.05
+C1.07.16 C2.07.00 C2.07.01 C2.07.05 C2.07.06
+C1.07.17 C2.07.01 C2.07.02 C2.07.06
+C1.07.18 C2.07.03 C2.07.07
+C1.07.19 C2.07.03 C2.07.04 C2.07.07 C2.07.08
+C1.07.20 C2.07.04 C2.07.08
+C1.07.21 C2.07.05 C2.07.09
+C1.07.22 C2.07.05 C2.07.06 C2.07.09 C2.07.10
+C1.07.23 C2.07.06 C2.07.10
+C1.07.24 C2.06.10 C2.07.07 C2.07.08 C2.07.11
+C1.07.25 C2.07.08 C2.07.11
+C1.07.26 C2.07.09 C2.07.12
+C1.07.27 C2.07.09 C2.07.10 C2.07.12 C2.07.13
+C1.07.28 C2.07.10 C2.07.13
+C1.07.29 C2.06.10 C2.06.13 C2.07.11 C2.07.14
+C1.07.30 C2.07.11 C2.07.14
+C1.07.31 C2.07.12 C2.07.15
+C1.07.32 C2.07.12 C2.07.13 C2.07.15 C2.07.16
+C1.07.33 C2.07.13 C2.07.16
+C1.07.34 C2.07.14 C2.07.17
+C1.07.35 C2.07.15 C2.07.18
+C1.07.36 C2.07.15 C2.07.16 C2.07.18 C2.07.19
+C1.07.37 C2.07.16 C2.07.19
+C1.07.38 C2.06.20 C2.07.17
+C1.07.39 C2.07.18 C2.07.20
+C1.07.40 C2.07.18 C2.07.19 C2.07.20 C2.07.21
+C1.07.41 C2.07.19 C2.07.21
+C1.07.42 C2.06.20 C2.06.22
+C1.07.43 C2.07.20 C2.07.22
+C1.07.44 C2.07.20 C2.07.21 C2.07.22 C2.07.23
+C1.07.45 C2.07.21 C2.07.23
+C1.07.46 C2.07.22 C2.07.24
+C1.07.47 C2.07.22 C2.07.23 C2.07.24 C2.07.25
+C1.07.48 C2.07.23 C2.07.25
+C1.07.49 C2.06.26 C2.07.24
+C1.07.50 C2.06.26 C2.07.24 C2.07.25 C2.07.26
+C1.07.51 C2.07.25 C2.07.26
+C1.07.52 C2.06.26 C2.06.28 C2.07.26 C2.07.27
+C1.07.53 C2.07.26 C2.07.27
+C1.07.54 C2.07.27
+C1.07.55 C2.07.27
+C1.07.56 C2.07.27
+C1.07.57 C2.07.27 C2.07.28
+C1.07.58 C2.07.27 C2.07.28 C2.07.29
+C1.07.59 C2.07.27 C2.07.29
+C1.07.60 C2.06.31 C2.07.28
+C1.07.61 C2.07.28 C2.07.29
+C1.07.62 C2.07.29
+C1.08.12 C2.08.03 C2.08.04
+C1.08.13 C2.08.04
+C1.08.14 C2.08.00 C2.08.05
+C1.08.15 C2.08.00 C2.08.02 C2.08.05 C2.08.06
+C1.08.16 C2.08.01 C2.08.02 C2.08.06
+C1.08.17 C2.08.03 C2.08.07
+C1.08.18 C2.08.03 C2.08.04 C2.08.07 C2.08.08
+C1.08.19 C2.08.04 C2.08.08
+C1.08.20 C2.08.05 C2.08.09
+C1.08.21 C2.08.05 C2.08.06 C2.08.09 C2.08.10
+C1.08.22 C2.08.06 C2.08.10
+C1.08.23 C2.08.07 C2.08.08 C2.08.11 C2.09.10
+C1.08.24 C2.08.08 C2.08.11
+C1.08.25 C2.08.09 C2.08.12
+C1.08.26 C2.08.09 C2.08.10 C2.08.12 C2.08.13
+C1.08.27 C2.08.10 C2.08.13
+C1.08.28 C2.08.11 C2.08.14 C2.09.10 C2.09.13
+C1.08.29 C2.08.11 C2.08.14
+C1.08.30 C2.08.12 C2.08.15
+C1.08.31 C2.08.12 C2.08.13 C2.08.15 C2.08.16
+C1.08.32 C2.08.13 C2.08.16
+C1.08.33 C2.08.14 C2.08.17
+C1.08.34 C2.08.15 C2.08.18
+C1.08.35 C2.08.15 C2.08.16 C2.08.18 C2.08.19
+C1.08.36 C2.08.16 C2.08.19
+C1.08.37 C2.08.17 C2.09.20
+C1.08.38 C2.08.18 C2.08.20
+C1.08.39 C2.08.18 C2.08.19 C2.08.20 C2.08.21
+C1.08.40 C2.08.19 C2.08.21
+C1.08.41 C2.09.20 C2.09.22
+C1.08.42 C2.08.20 C2.08.22
+C1.08.43 C2.08.20 C2.08.21 C2.08.22 C2.08.23
+C1.08.44 C2.08.21 C2.08.23
+C1.08.45 C2.08.22 C2.08.24
+C1.08.46 C2.08.22 C2.08.23 C2.08.24 C2.08.25
+C1.08.47 C2.08.23 C2.08.25
+C1.08.48 C2.08.24 C2.09.26
+C1.08.49 C2.08.24 C2.08.25 C2.08.26 C2.09.26
+C1.08.50 C2.08.25 C2.08.26
+C1.08.51 C2.08.26 C2.08.27 C2.09.26 C2.09.28
+C1.08.52 C2.08.26 C2.08.27
+C1.08.53 C2.09.28
+C1.08.54 C2.08.27
+C1.08.55 C2.08.27
+C1.08.56 C2.08.27
+C1.08.57 C2.08.27 C2.08.28
+C1.08.58 C2.08.27 C2.08.28 C2.08.29
+C1.08.59 C2.08.27 C2.08.29
+C1.08.60 C2.08.28 C2.09.31
+C1.08.61 C2.08.28 C2.08.29
+C1.08.62 C2.08.29
+C1.09.11 C2.09.04
+C1.09.12 C2.09.00 C2.09.05
+C1.09.13 C2.08.03 C2.09.04
+C1.09.14 C2.09.02 C2.09.06
+C1.09.15 C2.09.01 C2.09.05
+C1.09.16 C2.09.02 C2.09.04 C2.09.06 C2.09.07
+C1.09.17 C2.09.00 C2.09.03 C2.09.05 C2.09.08 C2.10.01 C2.10.06
+C1.09.18 C2.09.06 C2.09.09
+C1.09.19 C2.09.04 C2.09.07
+C1.09.20 C2.09.05 C2.09.08
+C1.09.21 C2.08.07 C2.09.10
+C1.09.22 C2.09.06 C2.09.07 C2.09.09 C2.09.11
+C1.09.23 C2.09.09 C2.09.12
+C1.09.24 C2.09.07 C2.09.11
+C1.09.25 C2.09.08 C2.10.11
+C1.09.26 C2.09.10 C2.09.13
+C1.09.27 C2.09.09 C2.09.11 C2.09.12 C2.09.15
+C1.09.28 C2.09.12 C2.09.14
+C1.09.29 C2.09.11 C2.09.15
+C1.09.30 C2.09.12 C2.09.14 C2.09.15 C2.09.17
+C1.09.31 C2.09.13 C2.09.16
+C1.09.32 C2.09.14 C2.10.16
+C1.09.33 C2.08.14 C2.08.17 C2.09.13 C2.09.16
+C1.09.34 C2.09.15 C2.09.17
+C1.09.35 C2.09.14 C2.09.17 C2.09.19 C2.10.16
+C1.09.36 C2.09.16 C2.09.18
+C1.09.37 C2.09.17 C2.09.19
+C1.09.38 C2.08.17 C2.09.16 C2.09.18 C2.09.20
+C1.09.39 C2.09.18 C2.09.21
+C1.09.40 C2.09.19 C2.10.20
+C1.09.41 C2.09.18 C2.09.20 C2.09.21 C2.09.22
+C1.09.42 C2.09.21 C2.09.23
+C1.09.43 C2.09.21 C2.09.22 C2.09.23 C2.09.24
+C1.09.44 C2.09.23 C2.10.24
+C1.09.45 C2.09.22 C2.09.24
+C1.09.46 C2.09.23 C2.09.24 C2.09.25 C2.10.24
+C1.09.47 C2.09.24 C2.09.25
+C1.09.48 C2.09.25 C2.09.27 C2.10.24 C2.10.25
+C1.09.49 C2.09.25 C2.09.27
+C1.09.50 C2.09.26 C2.09.28
+C1.09.51 C2.09.27 C2.10.27
+C1.09.52 C2.09.28
+C1.09.53 C2.09.28
+C1.09.54 C2.09.28 C2.10.29
+C1.09.55 C2.09.28 C2.09.29
+C1.09.56 C2.10.29
+C1.09.57 C2.09.28 C2.09.30
+C1.09.58 C2.09.29
+C1.09.59 C2.09.30
+C1.09.60 C2.09.29 C2.09.31 C2.10.30
+C1.09.61 C2.09.30 C2.09.31 C2.10.30
+C1.09.62 C2.09.30 C2.09.31
+C1.10.10 C2.10.02
+C1.10.11 C2.10.07
+C1.10.12 C2.10.01 C2.10.06
+C1.10.13 C2.10.03
+C1.10.14 C2.10.02 C2.10.04 C2.11.01
+C1.10.15 C2.10.00 C2.10.02 C2.10.07 C2.10.08
+C1.10.16 C2.10.03 C2.10.05 C2.10.07
+C1.10.17 C2.10.06 C2.10.09
+C1.10.18 C2.10.02 C2.10.04 C2.10.08 C2.11.01 C2.11.06
+C1.10.19 C2.10.07 C2.10.08
+C1.10.20 C2.10.09 C2.10.10
+C1.10.21 C2.09.08 C2.10.06 C2.10.09 C2.10.11
+C1.10.22 C2.10.08 C2.11.06
+C1.10.23 C2.10.10 C2.10.12
+C1.10.24 C2.10.09 C2.10.10 C2.10.11 C2.10.14
+C1.10.25 C2.11.06 C2.11.07
+C1.10.26 C2.10.12 C2.10.13
+C1.10.27 C2.10.10 C2.10.12 C2.10.14 C2.10.15
+C1.10.28 C2.10.11 C2.10.14
+C1.10.29 C2.10.13 C2.11.11
+C1.10.30 C2.10.12 C2.10.13 C2.10.15 C2.10.17
+C1.10.31 C2.10.14 C2.10.15
+C1.10.32 C2.10.13 C2.10.17 C2.11.11 C2.11.15
+C1.10.33 C2.10.15 C2.10.17
+C1.10.34 C2.10.16 C2.10.18
+C1.10.35 C2.10.17 C2.11.15
+C1.10.36 C2.09.19 C2.10.16 C2.10.18 C2.10.20
+C1.10.37 C2.10.18 C2.10.19
+C1.10.38 C2.11.15 C2.11.16
+C1.10.39 C2.10.19 C2.10.21
+C1.10.40 C2.10.18 C2.10.19 C2.10.20 C2.10.22
+C1.10.41 C2.10.21 C2.11.19
+C1.10.42 C2.10.19 C2.10.21 C2.10.22 C2.10.23
+C1.10.43 C2.10.20 C2.10.22
+C1.10.44 C2.10.21 C2.10.23 C2.11.19 C2.11.22
+C1.10.45 C2.10.22 C2.10.23
+C1.10.46 C2.10.23 C2.11.22
+C1.10.47 C2.10.24 C2.10.25
+C1.10.48 C2.11.22 C2.11.23
+C1.10.49 C2.10.25 C2.10.26
+C1.10.50 C2.10.26 C2.11.25
+C1.10.51 C2.09.27 C2.10.25 C2.10.26 C2.10.27
+C1.10.52 C2.10.26 C2.10.27 C2.10.28 C2.11.25
+C1.10.53 C2.10.27
+C1.10.54 C2.10.27 C2.10.28
+C1.10.55 C2.10.27
+C1.10.56 C2.10.28
+C1.10.57 C2.10.27 C2.10.28
+C1.10.58 C2.10.28
+C1.10.59 C2.10.29 C2.10.30
+C1.10.60 C2.10.28 C2.11.29
+C1.10.61 C2.10.30 C2.10.31
+C1.10.62 C2.10.31
+C1.11.12 C2.11.00
+C1.11.13 C2.11.00
+C1.11.14 C2.11.00 C2.12.00
+C1.11.15 C2.11.01 C2.11.02
+C1.11.16 C2.11.02 C2.11.03
+C1.11.17 C2.11.03 C2.11.04
+C1.11.18 C2.11.04 C2.11.05
+C1.11.19 C2.11.05 C2.12.05
+C1.11.20 C2.11.01 C2.11.02 C2.11.06 C2.11.07
+C1.11.21 C2.11.02 C2.11.03 C2.11.07 C2.11.08
+C1.11.22 C2.11.03 C2.11.04 C2.11.08 C2.11.09
+C1.11.23 C2.11.04 C2.11.05 C2.11.09 C2.11.10
+C1.11.24 C2.11.05 C2.11.10 C2.12.05 C2.12.10
+C1.11.25 C2.11.07 C2.11.08
+C1.11.26 C2.11.08 C2.11.09
+C1.11.27 C2.11.09 C2.11.10
+C1.11.28 C2.11.10 C2.12.10
+C1.11.29 C2.11.11 C2.11.12
+C1.11.30 C2.11.12 C2.11.13
+C1.11.31 C2.11.13 C2.11.14
+C1.11.32 C2.11.14 C2.12.14
+C1.11.33 C2.11.11 C2.11.12 C2.11.15 C2.11.16
+C1.11.34 C2.11.12 C2.11.13 C2.11.16 C2.11.17
+C1.11.35 C2.11.13 C2.11.14 C2.11.17 C2.11.18
+C1.11.36 C2.11.14 C2.11.18 C2.12.14 C2.12.18
+C1.11.37 C2.11.16 C2.11.17
+C1.11.38 C2.11.17 C2.11.18
+C1.11.39 C2.11.18 C2.12.18
+C1.11.40 C2.11.19 C2.11.20
+C1.11.41 C2.11.20 C2.11.21
+C1.11.42 C2.11.21 C2.12.21
+C1.11.43 C2.11.19 C2.11.20 C2.11.22 C2.11.23
+C1.11.44 C2.11.20 C2.11.21 C2.11.23 C2.11.24
+C1.11.45 C2.11.21 C2.11.24 C2.12.21 C2.12.24
+C1.11.46 C2.11.23 C2.11.24
+C1.11.47 C2.11.24 C2.12.24
+C1.11.48 C2.11.25 C2.11.26
+C1.11.49 C2.11.26 C2.12.26
+C1.11.50 C2.11.25
+C1.11.51 C2.11.25 C2.11.26
+C1.11.52 C2.11.26
+C1.11.53 C2.11.26 C2.12.26
+C1.11.54 C2.10.28
+C1.11.55 C2.10.28 C2.11.27
+C1.11.56 C2.11.27 C2.11.28
+C1.11.57 C2.11.28 C2.12.28
+C1.11.58 C2.10.28 C2.11.27 C2.11.29
+C1.11.59 C2.11.27 C2.11.28 C2.11.29 C2.11.30
+C1.11.60 C2.11.28 C2.11.30 C2.12.28 C2.12.30
+C1.11.61 C2.11.29 C2.11.30
+C1.11.62 C2.11.30 C2.12.30
+C1.12.12 C2.12.00
+C1.12.13 C2.12.00
+C1.12.14 C2.12.00
+C1.12.15 C2.12.01
+C1.12.16 C2.12.01 C2.12.02
+C1.12.17 C2.12.02 C2.12.03
+C1.12.18 C2.12.03 C2.12.04
+C1.12.19 C2.12.04 C2.12.05
+C1.12.20 C2.12.01 C2.12.06 C2.13.04 C2.13.08
+C1.12.21 C2.12.01 C2.12.02 C2.12.06 C2.12.07
+C1.12.22 C2.12.02 C2.12.03 C2.12.07 C2.12.08
+C1.12.23 C2.12.03 C2.12.04 C2.12.08 C2.12.09
+C1.12.24 C2.12.04 C2.12.05 C2.12.09 C2.12.10
+C1.12.25 C2.12.06 C2.12.07
+C1.12.26 C2.12.07 C2.12.08
+C1.12.27 C2.12.08 C2.12.09
+C1.12.28 C2.12.09 C2.12.10
+C1.12.29 C2.12.11 C2.13.13
+C1.12.30 C2.12.11 C2.12.12
+C1.12.31 C2.12.12 C2.12.13
+C1.12.32 C2.12.13 C2.12.14
+C1.12.33 C2.12.11 C2.12.15 C2.13.13 C2.13.17
+C1.12.34 C2.12.11 C2.12.12 C2.12.15 C2.12.16
+C1.12.35 C2.12.12 C2.12.13 C2.12.16 C2.12.17
+C1.12.36 C2.12.13 C2.12.14 C2.12.17 C2.12.18
+C1.12.37 C2.12.15 C2.12.16
+C1.12.38 C2.12.16 C2.12.17
+C1.12.39 C2.12.17 C2.12.18
+C1.12.40 C2.12.19 C2.13.21
+C1.12.41 C2.12.19 C2.12.20
+C1.12.42 C2.12.20 C2.12.21
+C1.12.43 C2.12.19 C2.12.22 C2.13.21 C2.13.23
+C1.12.44 C2.12.19 C2.12.20 C2.12.22 C2.12.23
+C1.12.45 C2.12.20 C2.12.21 C2.12.23 C2.12.24
+C1.12.46 C2.12.22 C2.12.23
+C1.12.47 C2.12.23 C2.12.24
+C1.12.48 C2.12.25 C2.13.26
+C1.12.49 C2.12.25 C2.12.26
+C1.12.50 C2.12.25 C2.13.26
+C1.12.51 C2.12.25
+C1.12.52 C2.12.25 C2.12.26
+C1.12.53 C2.12.26
+C1.12.54 C2.13.27 C2.13.28
+C1.12.55 C2.13.28
+C1.12.56 C2.12.27 C2.13.28
+C1.12.57 C2.12.27 C2.12.28
+C1.12.58 C2.13.28
+C1.12.59 C2.12.27 C2.12.29 C2.13.28
+C1.12.60 C2.12.27 C2.12.28 C2.12.29 C2.12.30
+C1.12.61 C2.12.29 C2.13.28
+C1.12.62 C2.12.29 C2.12.30
+C1.13.11 C2.13.03
+C1.13.12 C2.13.00 C2.13.06 C2.14.00
+C1.13.13 C2.12.01 C2.13.02 C2.13.04
+C1.13.14 C2.13.01 C2.13.07
+C1.13.15 C2.13.03 C2.13.05 C2.13.07
+C1.13.16 C2.13.00 C2.13.06
+C1.13.17 C2.13.02 C2.13.04 C2.13.08
+C1.13.18 C2.13.07
+C1.13.19 C2.13.09
+C1.13.20 C2.13.06 C2.14.08
+C1.13.21 C2.13.08
+C1.13.22 C2.13.10
+C1.13.23 C2.13.09 C2.13.11
+C1.13.24 C2.12.06 C2.13.08
+C1.13.25 C2.13.12
+C1.13.26 C2.13.10 C2.13.14
+C1.13.27 C2.13.11
+C1.13.28 C2.13.12 C2.13.13
+C1.13.29 C2.13.12 C2.13.15
+C1.13.30 C2.13.14
+C1.13.31 C2.13.12 C2.13.13 C2.13.15 C2.13.17
+C1.13.32 C2.13.15
+C1.13.33 C2.13.16
+C1.13.34 C2.13.15 C2.13.17
+C1.13.35 C2.13.16 C2.14.19
+C1.13.36 C2.13.18
+C1.13.37 C2.12.15 C2.13.17
+C1.13.38 C2.13.18 C2.13.19
+C1.13.39 C2.13.18 C2.13.20
+C1.13.40 C2.13.19 C2.13.21
+C1.13.41 C2.13.18 C2.13.19 C2.13.20 C2.13.22
+C1.13.42 C2.13.20
+C1.13.43 C2.13.19 C2.13.21 C2.13.22 C2.13.23
+C1.13.44 C2.13.20 C2.13.22
+C1.13.45 C2.13.22 C2.13.23
+C1.13.46 C2.13.24 C2.14.23
+C1.13.47 C2.12.22 C2.13.23
+C1.13.48 C2.13.24 C2.13.25
+C1.13.49 C2.13.25 C2.13.26
+C1.13.50 C2.13.24 C2.13.25 C2.14.25 C2.14.27
+C1.13.51 C2.13.25 C2.13.26 C2.13.27 C2.14.27
+C1.13.52 C2.13.27 C2.14.27
+C1.13.53 C2.13.27
+C1.13.54 C2.13.27 C2.14.27
+C1.13.55 C2.13.27 C2.13.28
+C1.13.56 C2.13.27
+C1.13.57 C2.13.27 C2.13.28
+C1.13.58 C2.13.29 C2.14.29
+C1.13.59 C2.13.28
+C1.13.60 C2.13.29 C2.13.30 C2.13.31
+C1.13.61 C2.13.29 C2.13.30 C2.13.31 C2.14.31
+C1.13.62 C2.13.31
+C1.14.12 C2.14.01
+C1.14.13 C2.15.03
+C1.14.14 C2.14.06
+C1.14.15 C2.14.01 C2.14.03
+C1.14.16 C2.14.02 C2.14.04
+C1.14.17 C2.13.06 C2.14.00 C2.14.05
+C1.14.18 C2.14.06
+C1.14.19 C2.14.04
+C1.14.20 C2.14.05
+C1.14.21 C2.15.07
+C1.14.22 C2.14.06 C2.14.07
+C1.14.23 C2.14.09
+C1.14.24 C2.14.07
+C1.14.25 C2.14.08
+C1.14.26 C2.14.10
+C1.14.27 C2.14.09 C2.14.11
+C1.14.28 C2.14.12
+C1.14.29 C2.14.11
+C1.14.30 C2.14.12 C2.14.15
+C1.14.31 C2.14.13
+C1.14.32 C2.14.14
+C1.14.33 C2.14.13 C2.15.14
+C1.14.34 C2.14.15
+C1.14.35 C2.14.14 C2.14.17
+C1.14.36 C2.14.16
+C1.14.37 C2.14.17
+C1.14.38 C2.14.16 C2.15.17
+C1.14.39 C2.14.18
+C1.14.40 C2.14.19
+C1.14.41 C2.14.18 C2.14.20
+C1.14.42 C2.14.21
+C1.14.43 C2.14.21 C2.14.22
+C1.14.44 C2.14.23
+C1.14.45 C2.14.22
+C1.14.46 C2.14.23 C2.14.24
+C1.14.47 C2.14.24
+C1.14.48 C2.13.24 C2.14.23 C2.14.24 C2.14.25
+C1.14.49 C2.14.24 C2.14.25
+C1.14.50 C2.14.26 C2.15.24
+C1.14.51 C2.14.25 C2.14.27
+C1.14.52 C2.14.26 C2.14.28
+C1.14.53 C2.14.26 C2.14.28
+C1.14.54 C2.14.26 C2.14.28
+C1.14.55 C2.14.28
+C1.14.56 C2.14.28
+C1.14.57 C2.14.28 C2.14.29
+C1.14.58 C2.14.28
+C1.14.59 C2.14.28 C2.14.29 C2.14.30
+C1.14.60 C2.14.28 C2.14.30
+C1.14.61 C2.13.29 C2.14.29 C2.14.30 C2.14.31
+C1.14.62 C2.14.30 C2.14.31 C2.15.28
+C1.15.15 C2.15.02
+C1.15.16 C2.15.01 C2.15.02
+C1.15.17 C2.15.00 C2.15.01
+C1.15.18 C2.15.03
+C1.15.19 C2.15.03 C2.15.04
+C1.15.20 C2.15.04
+C1.15.21 C2.15.05
+C1.15.22 C2.15.05 C2.15.06
+C1.15.23 C2.15.06
+C1.15.24 C2.15.07 C2.15.08
+C1.15.25 C2.15.08
+C1.15.26 C2.15.09
+C1.15.27 C2.15.09 C2.15.10
+C1.15.28 C2.15.10
+C1.15.29 C2.14.10 C2.15.11
+C1.15.30 C2.15.11
+C1.15.31 C2.15.12
+C1.15.32 C2.15.12 C2.15.13
+C1.15.33 C2.15.13
+C1.15.34 C2.15.14
+C1.15.35 C2.15.15
+C1.15.36 C2.15.15 C2.15.16
+C1.15.37 C2.15.16
+C1.15.38 C2.15.17
+C1.15.39 C2.15.18
+C1.15.40 C2.15.18 C2.15.19
+C1.15.41 C2.15.19
+C1.15.42 C2.14.20
+C1.15.43 C2.15.20
+C1.15.44 C2.15.20 C2.15.21
+C1.15.45 C2.15.21
+C1.15.46 C2.15.22
+C1.15.47 C2.15.22 C2.15.23
+C1.15.48 C2.15.23
+C1.15.49 C2.15.24
+C1.15.50 C2.15.24 C2.15.25
+C1.15.51 C2.15.25
+C1.15.52 C2.14.26 C2.15.24 C2.15.25 C2.15.26
+C1.15.53 C2.15.25 C2.15.26
+C1.15.54 C2.15.26 C2.15.27
+C1.15.55 C2.15.26 C2.15.27
+C1.15.56 C2.15.26 C2.15.27
+C1.15.57 C2.15.27
+C1.15.58 C2.15.27
+C1.15.59 C2.15.27
+C1.15.60 C2.15.27 C2.15.28
+C1.15.61 C2.15.27 C2.15.28 C2.15.29
+C1.15.62 C2.15.27 C2.15.29
+C2.00.05 C3.00.02
+C2.00.06 C3.00.00
+C2.00.07 C3.00.01 C3.01.00 C3.01.02
+C2.00.08 C3.00.01
+C2.00.09 C3.00.02
+C2.00.10 C3.00.03
+C2.00.11 C3.00.01 C3.00.04
+C2.00.12 C3.00.02 C3.00.05
+C2.00.13 C3.00.03 C3.00.06
+C2.00.14 C3.00.04 C3.00.07
+C2.00.15 C3.00.05 C3.00.08
+C2.00.16 C3.00.06 C3.00.09
+C2.00.17 C3.00.07
+C2.00.18 C3.00.08
+C2.00.19 C3.00.09
+C2.00.20 C3.00.08 C3.00.10
+C2.00.21 C3.00.09 C3.00.11
+C2.00.22 C3.00.10 C3.00.12
+C2.00.23 C3.00.11 C3.00.13
+C2.00.24 C3.00.12
+C2.00.25 C3.00.13
+C2.00.26 C3.00.13 C3.00.14
+C2.00.27 C3.00.14 C3.00.15 C3.01.15
+C2.00.28 C3.00.15 C3.01.15
+C2.00.29 C3.00.15
+C2.01.03 C3.02.00
+C2.01.04 C3.01.02
+C2.01.05 C3.01.01 C3.01.03
+C2.01.06 C3.01.01 C3.01.02
+C2.01.07 C3.01.02
+C2.01.08 C3.01.01 C3.01.03 C3.02.00
+C2.01.09 C3.01.01 C3.01.02 C3.01.03 C3.01.05
+C2.01.10 C3.00.01 C3.01.00 C3.01.02 C3.01.04
+C2.01.11 C3.01.01 C3.01.02 C3.01.05
+C2.01.12 C3.01.03 C3.01.05
+C2.01.13 C3.01.04 C3.01.06
+C2.01.14 C3.01.03 C3.01.05 C3.01.07 C3.02.05
+C2.01.15 C3.01.05
+C2.01.16 C3.01.06
+C2.01.17 C3.01.05 C3.01.07
+C2.01.18 C3.01.06 C3.01.08
+C2.01.19 C3.01.07 C3.02.09
+C2.01.20 C3.00.07 C3.01.09
+C2.01.21 C3.01.08 C3.01.10
+C2.01.22 C3.01.09 C3.01.11
+C2.01.23 C3.01.10
+C2.01.24 C3.01.11
+C2.01.25 C3.01.11 C3.01.12
+C2.01.26 C3.00.12 C3.01.13
+C2.01.27 C3.01.12 C3.02.13
+C2.01.28 C3.01.13 C3.01.14 C3.01.15
+C2.01.29 C3.01.14 C3.02.14
+C2.01.30 C3.01.14 C3.01.15
+C2.01.31 C3.01.15 C3.02.14
+C2.02.06 C3.02.00
+C2.02.07 C3.02.01 C3.02.02
+C2.02.08 C3.02.01
+C2.02.09 C3.02.00 C3.02.02 C3.02.03
+C2.02.10 C3.02.00 C3.02.01 C3.02.02 C3.02.03 C3.02.04
+C2.02.11 C3.01.03 C3.02.00 C3.02.03 C3.02.05
+C2.02.12 C3.02.01 C3.02.02 C3.02.04
+C2.02.13 C3.02.01 C3.02.02 C3.02.04 C3.02.06 C3.03.05
+C2.02.14 C3.02.03 C3.02.04 C3.02.05 C3.02.07
+C2.02.15 C3.02.04 C3.02.07
+C2.02.16 C3.01.07 C3.02.05 C3.02.07 C3.02.09
+C2.02.17 C3.02.04 C3.02.06 C3.02.07 C3.02.08
+C2.02.18 C3.02.07 C3.02.09
+C2.02.19 C3.02.07 C3.02.08 C3.02.09 C3.02.10
+C2.02.20 C3.02.09
+C2.02.21 C3.02.08 C3.02.10 C3.03.10 C3.03.12
+C2.02.22 C3.02.09 C3.02.10
+C2.02.23 C3.02.10 C3.03.12
+C2.02.24 C3.01.10 C3.02.11
+C2.02.25 C3.02.11 C3.02.12
+C2.02.26 C3.02.12
+C2.02.27 C3.02.13
+C2.02.28 C3.02.13 C3.03.15
+C2.02.29 C3.01.14 C3.02.14 C3.02.15
+C2.02.30 C3.02.14 C3.02.15
+C2.02.31 C3.02.15
+C2.03.01 C3.03.02
+C2.03.02 C3.03.02
+C2.03.03 C3.03.02 C3.03.03
+C2.03.04 C3.03.00 C3.03.03 C3.03.04
+C2.03.05 C3.03.00 C3.03.01 C3.03.04 C3.04.01 C3.04.04
+C2.03.06 C3.02.01 C3.03.02 C3.03.05
+C2.03.07 C3.03.02 C3.03.03 C3.03.05 C3.03.06
+C2.03.08 C3.03.02 C3.03.03 C3.03.06
+C2.03.09 C3.03.03 C3.03.04 C3.03.06 C3.03.07
+C2.03.10 C3.03.04 C3.03.07 C3.04.04 C3.04.07
+C2.03.11 C3.02.06 C3.03.05 C3.03.06 C3.03.08
+C2.03.12 C3.03.06 C3.03.08
+C2.03.13 C3.03.06 C3.03.07 C3.03.08 C3.03.09
+C2.03.14 C3.03.07 C3.03.09 C3.04.07 C3.04.09
+C2.03.15 C3.02.06 C3.02.08 C3.03.08 C3.03.10
+C2.03.16 C3.03.08 C3.03.10
+C2.03.17 C3.03.08 C3.03.09 C3.03.10 C3.03.11
+C2.03.18 C3.03.09 C3.03.11 C3.04.09 C3.04.11
+C2.03.19 C3.03.10 C3.03.12
+C2.03.20 C3.03.10 C3.03.11 C3.03.12 C3.03.13
+C2.03.21 C3.03.11 C3.03.13 C3.04.11 C3.04.13
+C2.03.22 C3.03.12
+C2.03.23 C3.03.12 C3.03.13
+C2.03.24 C3.03.13 C3.04.13
+C2.03.25 C3.02.12 C3.03.14
+C2.03.26 C3.03.14 C3.04.14
+C2.03.27 C3.03.15
+C2.03.28 C3.03.15 C3.04.15
+C2.03.29 C3.03.15
+C2.03.30 C3.03.15 C3.04.15
+C2.04.02 C3.04.02
+C2.04.03 C3.04.02 C3.04.03
+C2.04.04 C3.04.00 C3.04.03 C3.04.04
+C2.04.05 C3.04.00 C3.04.01 C3.04.04
+C2.04.06 C3.04.02 C3.04.05 C3.05.02
+C2.04.07 C3.04.02 C3.04.05
+C2.04.08 C3.04.02 C3.04.03 C3.04.05 C3.04.06
+C2.04.09 C3.04.03 C3.04.04 C3.04.06 C3.04.07
+C2.04.10 C3.04.04 C3.04.07
+C2.04.11 C3.04.05 C3.05.06
+C2.04.12 C3.04.05 C3.04.06 C3.04.08 C3.05.06
+C2.04.13 C3.04.06 C3.04.07 C3.04.08 C3.04.09
+C2.04.14 C3.04.07 C3.04.09
+C2.04.15 C3.05.06 C3.05.08
+C2.04.16 C3.04.08 C3.04.10 C3.05.06 C3.05.08
+C2.04.17 C3.04.08 C3.04.09 C3.04.10 C3.04.11
+C2.04.18 C3.04.09 C3.04.11
+C2.04.19 C3.04.10 C3.04.12 C3.05.08 C3.05.10
+C2.04.20 C3.04.10 C3.04.11 C3.04.12 C3.04.13
+C2.04.21 C3.04.11 C3.04.13
+C2.04.22 C3.04.12 C3.05.10
+C2.04.23 C3.04.12 C3.04.13
+C2.04.24 C3.04.13
+C2.04.25 C3.04.14 C3.05.12
+C2.04.26 C3.04.14
+C2.04.27 C3.04.15
+C2.04.28 C3.04.15
+C2.04.29 C3.04.15
+C2.04.30 C3.04.15
+C2.05.06 C3.05.00
+C2.05.07 C3.05.01
+C2.05.08 C3.05.01 C3.05.02
+C2.05.09 C3.05.00 C3.05.01 C3.05.03
+C2.05.10 C3.05.01 C3.05.03
+C2.05.11 C3.05.00 C3.05.03 C3.05.05 C3.06.02
+C2.05.12 C3.05.01 C3.05.02 C3.05.03 C3.05.04
+C2.05.13 C3.04.05 C3.05.02 C3.05.04 C3.05.06
+C2.05.14 C3.05.03 C3.05.05
+C2.05.15 C3.05.03 C3.05.04 C3.05.05 C3.05.07
+C2.05.16 C3.05.05 C3.06.06
+C2.05.17 C3.05.04 C3.05.06 C3.05.07 C3.05.08
+C2.05.18 C3.05.05 C3.05.07 C3.05.09 C3.06.06
+C2.05.19 C3.05.07 C3.05.08 C3.05.09 C3.05.10
+C2.05.20 C3.05.09 C3.06.06
+C2.05.21 C3.05.08 C3.05.10
+C2.05.22 C3.05.09 C3.05.10
+C2.05.23 C3.05.10
+C2.05.24 C3.05.11 C3.06.09
+C2.05.25 C3.05.11
+C2.05.26 C3.05.11 C3.05.12
+C2.05.27 C3.05.13 C3.06.11
+C2.05.28 C3.04.15 C3.05.13
+C2.05.29 C3.05.14 C3.06.13 C3.06.15
+C2.05.30 C3.05.14 C3.06.15
+C2.05.31 C3.05.14
+C2.06.05 C3.06.00
+C2.06.06 C3.06.00
+C2.06.07 C3.06.00 C3.06.01
+C2.06.08 C3.05.00 C3.06.00 C3.06.02
+C2.06.09 C3.06.00
+C2.06.10 C3.06.01 C3.06.03 C3.07.01
+C2.06.11 C3.06.00 C3.06.01
+C2.06.12 C3.06.00 C3.06.02 C3.06.04
+C2.06.13 C3.06.03
+C2.06.14 C3.05.05 C3.06.02 C3.06.04 C3.06.06
+C2.06.15 C3.06.00 C3.06.01 C3.06.04
+C2.06.16 C3.06.03 C3.06.05
+C2.06.17 C3.06.04 C3.06.06
+C2.06.18 C3.06.05 C3.06.07
+C2.06.19 C3.06.06
+C2.06.20 C3.06.08 C3.07.07
+C2.06.21 C3.06.07
+C2.06.22 C3.06.08
+C2.06.23 C3.06.07 C3.06.09
+C2.06.24 C3.06.08 C3.06.10
+C2.06.25 C3.06.10 C3.06.11
+C2.06.26 C3.06.12 C3.07.12
+C2.06.27 C3.06.11
+C2.06.28 C3.06.12
+C2.06.29 C3.06.12 C3.06.13
+C2.06.30 C3.06.12 C3.06.14 C3.06.15
+C2.06.31 C3.06.14 C3.06.15
+C2.07.06 C3.07.00
+C2.07.07 C3.07.01
+C2.07.08 C3.07.01 C3.07.02
+C2.07.09 C3.07.02
+C2.07.10 C3.07.00 C3.07.03
+C2.07.11 C3.07.01 C3.07.04
+C2.07.12 C3.07.02 C3.07.05
+C2.07.13 C3.07.03 C3.07.06
+C2.07.14 C3.07.04
+C2.07.15 C3.07.05
+C2.07.16 C3.07.06
+C2.07.17 C3.07.04 C3.07.07
+C2.07.18 C3.07.05 C3.07.08
+C2.07.19 C3.07.06 C3.07.09
+C2.07.20 C3.07.08 C3.07.10
+C2.07.21 C3.07.09 C3.07.11
+C2.07.22 C3.07.10
+C2.07.23 C3.07.11
+C2.07.24 C3.07.10 C3.07.12
+C2.07.25 C3.07.11 C3.07.13
+C2.07.26 C3.07.13 C3.07.14
+C2.07.27 C3.07.14
+C2.07.28 C3.06.14 C3.07.14 C3.07.15
+C2.07.29 C3.07.14 C3.07.15
+C2.08.06 C3.08.00
+C2.08.07 C3.08.01 C3.09.00
+C2.08.08 C3.08.01
+C2.08.09 C3.08.02
+C2.08.10 C3.08.00 C3.08.03
+C2.08.11 C3.08.01 C3.08.04
+C2.08.12 C3.08.02 C3.08.05
+C2.08.13 C3.08.03 C3.08.06
+C2.08.14 C3.08.04
+C2.08.15 C3.08.05
+C2.08.16 C3.08.06
+C2.08.17 C3.08.04 C3.08.07
+C2.08.18 C3.08.05 C3.08.08
+C2.08.19 C3.08.06 C3.08.09
+C2.08.20 C3.08.08 C3.08.10
+C2.08.21 C3.08.09 C3.08.11
+C2.08.22 C3.08.10
+C2.08.23 C3.08.11
+C2.08.24 C3.08.10 C3.08.12
+C2.08.25 C3.08.11 C3.08.13
+C2.08.26 C3.08.13 C3.08.14
+C2.08.27 C3.08.14
+C2.08.28 C3.08.14 C3.08.15 C3.09.15
+C2.08.29 C3.08.14 C3.08.15
+C2.09.05 C3.09.01
+C2.09.06 C3.09.02
+C2.09.07 C3.09.02
+C2.09.08 C3.09.01 C3.09.03 C3.10.00
+C2.09.09 C3.09.01 C3.09.02
+C2.09.10 C3.08.01 C3.09.00 C3.09.02 C3.09.04
+C2.09.11 C3.09.01 C3.09.02
+C2.09.12 C3.09.01 C3.09.03 C3.09.05
+C2.09.13 C3.09.04
+C2.09.14 C3.09.03 C3.09.05 C3.09.07 C3.10.05
+C2.09.15 C3.09.01 C3.09.02 C3.09.05
+C2.09.16 C3.09.04 C3.09.06
+C2.09.17 C3.09.05 C3.09.07
+C2.09.18 C3.09.06 C3.09.08
+C2.09.19 C3.09.07
+C2.09.20 C3.08.07 C3.09.09
+C2.09.21 C3.09.08
+C2.09.22 C3.09.09
+C2.09.23 C3.09.08 C3.09.10
+C2.09.24 C3.09.09 C3.09.11
+C2.09.25 C3.09.11 C3.09.12
+C2.09.26 C3.08.12 C3.09.13
+C2.09.27 C3.09.12
+C2.09.28 C3.09.13
+C2.09.29 C3.09.13 C3.09.14 C3.10.14
+C2.09.30 C3.09.13 C3.09.14 C3.09.15
+C2.09.31 C3.09.14 C3.09.15 C3.10.14
+C2.10.06 C3.10.00
+C2.10.07 C3.10.01 C3.10.02
+C2.10.08 C3.10.01 C3.10.02
+C2.10.09 C3.10.00 C3.10.03
+C2.10.10 C3.10.00 C3.10.02 C3.10.03
+C2.10.11 C3.09.03 C3.10.00 C3.10.03 C3.10.05
+C2.10.12 C3.10.01 C3.10.02 C3.10.03 C3.10.04
+C2.10.13 C3.10.01 C3.10.02 C3.10.04 C3.10.06 C3.11.05
+C2.10.14 C3.10.03 C3.10.05
+C2.10.15 C3.10.03 C3.10.04 C3.10.05 C3.10.07
+C2.10.16 C3.09.07 C3.10.05
+C2.10.17 C3.10.04 C3.10.06 C3.10.07 C3.10.08
+C2.10.18 C3.09.07 C3.10.05 C3.10.07 C3.10.09
+C2.10.19 C3.10.07 C3.10.08 C3.10.09 C3.10.10
+C2.10.20 C3.09.07 C3.10.09
+C2.10.21 C3.10.08 C3.10.10
+C2.10.22 C3.10.09 C3.10.10
+C2.10.23 C3.10.10
+C2.10.24 C3.09.10 C3.10.11
+C2.10.25 C3.10.11
+C2.10.26 C3.10.11 C3.10.12
+C2.10.27 C3.09.12 C3.10.13
+C2.10.28 C3.10.13 C3.11.15
+C2.10.29 C3.09.13 C3.09.14 C3.10.14
+C2.10.30 C3.10.14 C3.10.15
+C2.10.31 C3.10.15
+C2.11.02 C3.11.02
+C2.11.03 C3.11.02 C3.11.03
+C2.11.04 C3.11.00 C3.11.03 C3.11.04
+C2.11.05 C3.11.00 C3.11.01 C3.11.04
+C2.11.06 C3.10.01 C3.11.02 C3.11.05
+C2.11.07 C3.11.02 C3.11.05
+C2.11.08 C3.11.02 C3.11.03 C3.11.05 C3.11.06
+C2.11.09 C3.11.03 C3.11.04 C3.11.06 C3.11.07
+C2.11.10 C3.11.04 C3.11.07
+C2.11.11 C3.10.06 C3.11.05
+C2.11.12 C3.10.06 C3.11.05 C3.11.06 C3.11.08
+C2.11.13 C3.11.06 C3.11.07 C3.11.08 C3.11.09
+C2.11.14 C3.11.07 C3.11.09
+C2.11.15 C3.10.06 C3.10.08
+C2.11.16 C3.10.06 C3.10.08 C3.11.08 C3.11.10
+C2.11.17 C3.11.08 C3.11.09 C3.11.10 C3.11.11
+C2.11.18 C3.11.09 C3.11.11
+C2.11.19 C3.10.08 C3.10.10 C3.11.10 C3.11.12
+C2.11.20 C3.11.10 C3.11.11 C3.11.12 C3.11.13
+C2.11.21 C3.11.11 C3.11.13
+C2.11.22 C3.10.10 C3.11.12
+C2.11.23 C3.11.12 C3.11.13
+C2.11.24 C3.11.13
+C2.11.25 C3.10.12 C3.11.14
+C2.11.26 C3.11.14
+C2.11.27 C3.11.15
+C2.11.28 C3.11.15
+C2.11.29 C3.11.15
+C2.11.30 C3.11.15
+C2.12.02 C3.12.02
+C2.12.03 C3.12.02 C3.12.03
+C2.12.04 C3.12.00 C3.12.03 C3.12.04
+C2.12.05 C3.11.01 C3.11.04 C3.12.00 C3.12.01 C3.12.04
+C2.12.06 C3.12.02 C3.12.05 C3.13.02
+C2.12.07 C3.12.02 C3.12.03 C3.12.05 C3.12.06
+C2.12.08 C3.12.02 C3.12.03 C3.12.06
+C2.12.09 C3.12.03 C3.12.04 C3.12.06 C3.12.07
+C2.12.10 C3.11.04 C3.11.07 C3.12.04 C3.12.07
+C2.12.11 C3.12.05 C3.12.06 C3.12.08 C3.13.06
+C2.12.12 C3.12.06 C3.12.08
+C2.12.13 C3.12.06 C3.12.07 C3.12.08 C3.12.09
+C2.12.14 C3.11.07 C3.11.09 C3.12.07 C3.12.09
+C2.12.15 C3.12.08 C3.12.10 C3.13.06 C3.13.08
+C2.12.16 C3.12.08 C3.12.10
+C2.12.17 C3.12.08 C3.12.09 C3.12.10 C3.12.11
+C2.12.18 C3.11.09 C3.11.11 C3.12.09 C3.12.11
+C2.12.19 C3.12.10 C3.12.12
+C2.12.20 C3.12.10 C3.12.11 C3.12.12 C3.12.13
+C2.12.21 C3.11.11 C3.11.13 C3.12.11 C3.12.13
+C2.12.22 C3.12.12
+C2.12.23 C3.12.12 C3.12.13
+C2.12.24 C3.11.13 C3.12.13
+C2.12.25 C3.12.14 C3.13.12
+C2.12.26 C3.11.14 C3.12.14
+C2.12.27 C3.12.15
+C2.12.28 C3.11.15 C3.12.15
+C2.12.29 C3.12.15
+C2.12.30 C3.11.15 C3.12.15
+C2.13.06 C3.13.00
+C2.13.07 C3.13.01
+C2.13.08 C3.13.01 C3.13.02
+C2.13.09 C3.13.00 C3.13.01 C3.13.03
+C2.13.10 C3.13.01 C3.13.02 C3.13.03 C3.13.04
+C2.13.11 C3.13.00 C3.13.03 C3.13.05 C3.14.02
+C2.13.12 C3.13.01 C3.13.02 C3.13.04
+C2.13.13 C3.12.05 C3.13.02 C3.13.04 C3.13.06
+C2.13.14 C3.13.03 C3.13.04 C3.13.05 C3.13.07
+C2.13.15 C3.13.04 C3.13.07
+C2.13.16 C3.13.05 C3.13.07 C3.13.09 C3.14.06
+C2.13.17 C3.13.04 C3.13.06 C3.13.07 C3.13.08
+C2.13.18 C3.13.07 C3.13.09
+C2.13.19 C3.13.07 C3.13.08 C3.13.09 C3.13.10
+C2.13.20 C3.13.09
+C2.13.21 C3.12.10 C3.12.12 C3.13.08 C3.13.10
+C2.13.22 C3.13.09 C3.13.10
+C2.13.23 C3.12.12 C3.13.10
+C2.13.24 C3.13.11 C3.14.09
+C2.13.25 C3.13.11 C3.13.12
+C2.13.26 C3.13.12
+C2.13.27 C3.13.13
+C2.13.28 C3.12.15 C3.13.13
+C2.13.29 C3.13.14 C3.14.13 C3.14.15
+C2.13.30 C3.13.14 C3.14.15
+C2.13.31 C3.13.14
+C2.14.04 C3.14.01
+C2.14.05 C3.13.00 C3.14.00 C3.14.02
+C2.14.06 C3.14.00
+C2.14.07 C3.14.00 C3.14.01
+C2.14.08 C3.13.00 C3.14.00 C3.14.02
+C2.14.09 C3.14.00 C3.14.02 C3.14.04
+C2.14.10 C3.14.01 C3.14.03 C3.15.01
+C2.14.11 C3.14.00 C3.14.01 C3.14.04
+C2.14.12 C3.14.02 C3.14.04
+C2.14.13 C3.14.03 C3.14.05
+C2.14.14 C3.13.05 C3.14.02 C3.14.04 C3.14.06
+C2.14.15 C3.14.04
+C2.14.16 C3.14.05
+C2.14.17 C3.14.04 C3.14.06
+C2.14.18 C3.14.05 C3.14.07
+C2.14.19 C3.13.09 C3.14.06
+C2.14.20 C3.14.08 C3.15.07
+C2.14.21 C3.14.07 C3.14.09
+C2.14.22 C3.14.08 C3.14.10
+C2.14.23 C3.14.09
+C2.14.24 C3.14.10
+C2.14.25 C3.14.10 C3.14.11
+C2.14.26 C3.14.12 C3.15.12
+C2.14.27 C3.13.13 C3.14.11
+C2.14.28 C3.14.12 C3.14.13 C3.14.14
+C2.14.29 C3.14.13
+C2.14.30 C3.14.14 C3.14.15
+C2.14.31 C3.14.14 C3.14.15
+C2.15.05 C3.15.02
+C2.15.06 C3.15.00
+C2.15.07 C3.14.01 C3.15.01
+C2.15.08 C3.15.01 C3.15.02
+C2.15.09 C3.15.02
+C2.15.10 C3.15.03
+C2.15.11 C3.15.01 C3.15.04
+C2.15.12 C3.15.02 C3.15.05
+C2.15.13 C3.15.03 C3.15.06
+C2.15.14 C3.15.04 C3.15.07
+C2.15.15 C3.15.05 C3.15.08
+C2.15.16 C3.15.06 C3.15.09
+C2.15.17 C3.15.07
+C2.15.18 C3.15.08
+C2.15.19 C3.15.09
+C2.15.20 C3.15.08 C3.15.10
+C2.15.21 C3.15.09 C3.15.11
+C2.15.22 C3.15.10 C3.15.12
+C2.15.23 C3.15.11 C3.15.13
+C2.15.24 C3.15.12
+C2.15.25 C3.15.13
+C2.15.26 C3.15.13 C3.15.14
+C2.15.27 C3.14.14 C3.15.14 C3.15.15
+C2.15.28 C3.14.14 C3.15.15
+C2.15.29 C3.15.15
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt
new file mode 100755
index 0000000000000000000000000000000000000000..805bfd45c8fb927e7faf8117a50b7455fef37758
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt
@@ -0,0 +1,2507 @@
+# 3D FCal Neighbors Next in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Thu Nov 30 16:09:58 2006
+#
+# 3d neighbors next in sampling are all cells touching the same
+# eta phi area in the next sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without next sampling neighbors are not listed.
+#
+A1.00.14 A2.00.00
+A1.00.15 A2.00.00 A2.00.01
+A1.00.16 A2.00.01 A2.00.02
+A1.00.17 A2.00.03
+A1.00.18 A2.00.03 A2.00.04
+A1.00.19 A2.00.04
+A1.00.20 A2.00.05
+A1.00.21 A2.00.05 A2.00.06
+A1.00.22 A2.00.06
+A1.00.23 A2.00.07 A2.00.08
+A1.00.24 A2.00.08
+A1.00.25 A2.00.09
+A1.00.26 A2.00.09 A2.00.10
+A1.00.27 A2.00.10
+A1.00.28 A2.00.11 A2.01.10
+A1.00.29 A2.00.11
+A1.00.30 A2.00.12
+A1.00.31 A2.00.12 A2.00.13
+A1.00.32 A2.00.13
+A1.00.33 A2.00.14
+A1.00.34 A2.00.15
+A1.00.35 A2.00.15 A2.00.16
+A1.00.36 A2.00.16
+A1.00.37 A2.00.17
+A1.00.38 A2.00.18
+A1.00.39 A2.00.18 A2.00.19
+A1.00.40 A2.00.19
+A1.00.41 A2.01.20
+A1.00.42 A2.00.20
+A1.00.43 A2.00.20 A2.00.21
+A1.00.44 A2.00.21
+A1.00.45 A2.00.22
+A1.00.46 A2.00.22 A2.00.23
+A1.00.47 A2.00.23
+A1.00.48 A2.00.24
+A1.00.49 A2.00.24 A2.00.25
+A1.00.50 A2.00.25
+A1.00.51 A2.00.24 A2.00.25 A2.00.26 A2.01.26
+A1.00.52 A2.00.25 A2.00.26
+A1.00.53 A2.01.26 A2.01.28
+A1.00.54 A2.00.26 A2.00.27
+A1.00.55 A2.00.26 A2.00.27
+A1.00.56 A2.00.26 A2.00.27
+A1.00.57 A2.00.27
+A1.00.58 A2.00.27
+A1.00.59 A2.00.27
+A1.00.60 A2.00.27 A2.00.28
+A1.00.61 A2.00.27 A2.00.28 A2.00.29
+A1.00.62 A2.00.27 A2.00.29
+A1.01.12 A2.01.01
+A1.01.13 A2.00.03
+A1.01.14 A2.01.06
+A1.01.15 A2.01.01 A2.01.03
+A1.01.16 A2.01.02 A2.01.04
+A1.01.17 A2.01.00 A2.01.05 A2.02.06
+A1.01.18 A2.01.06
+A1.01.19 A2.01.04
+A1.01.20 A2.01.05
+A1.01.21 A2.00.07
+A1.01.22 A2.01.06 A2.01.07
+A1.01.23 A2.01.09
+A1.01.24 A2.01.07
+A1.01.25 A2.01.08
+A1.01.26 A2.01.10
+A1.01.27 A2.01.09 A2.01.11
+A1.01.28 A2.01.12
+A1.01.29 A2.01.11
+A1.01.30 A2.01.12 A2.01.15
+A1.01.31 A2.01.13
+A1.01.32 A2.01.14
+A1.01.33 A2.00.14 A2.01.13
+A1.01.34 A2.01.15
+A1.01.35 A2.01.14 A2.01.17
+A1.01.36 A2.01.16
+A1.01.37 A2.01.17
+A1.01.38 A2.00.17 A2.01.16
+A1.01.39 A2.01.18
+A1.01.40 A2.01.19
+A1.01.41 A2.01.18 A2.01.20
+A1.01.42 A2.01.21
+A1.01.43 A2.01.21 A2.01.22
+A1.01.44 A2.01.23
+A1.01.45 A2.01.22
+A1.01.46 A2.01.23 A2.01.24
+A1.01.47 A2.01.24
+A1.01.48 A2.01.23 A2.01.24 A2.01.25 A2.02.24
+A1.01.49 A2.01.24 A2.01.25
+A1.01.50 A2.00.24 A2.01.26
+A1.01.51 A2.01.25 A2.01.27
+A1.01.52 A2.01.26 A2.01.28
+A1.01.53 A2.01.26 A2.01.28
+A1.01.54 A2.01.28
+A1.01.55 A2.01.28
+A1.01.56 A2.01.28 A2.01.29
+A1.01.57 A2.01.28
+A1.01.58 A2.01.28 A2.01.29 A2.01.30
+A1.01.59 A2.01.28 A2.01.30
+A1.01.60 A2.01.29 A2.01.30 A2.01.31 A2.02.29
+A1.01.61 A2.01.30 A2.01.31 A2.02.29 A2.02.30
+A1.01.62 A2.00.28 A2.01.30 A2.01.31
+A1.02.12 A2.02.03
+A1.02.13 A2.01.00 A2.02.00 A2.02.06
+A1.02.14 A2.02.02 A2.02.04 A2.03.01
+A1.02.15 A2.02.01 A2.02.07
+A1.02.16 A2.02.03 A2.02.05 A2.02.07
+A1.02.17 A2.02.00 A2.02.06
+A1.02.18 A2.02.02 A2.02.04 A2.02.08
+A1.02.19 A2.02.07
+A1.02.20 A2.02.09
+A1.02.21 A2.01.08 A2.02.06
+A1.02.22 A2.02.08
+A1.02.23 A2.02.10
+A1.02.24 A2.02.09 A2.02.11
+A1.02.25 A2.02.08 A2.03.06
+A1.02.26 A2.02.12
+A1.02.27 A2.02.10 A2.02.14
+A1.02.28 A2.02.11
+A1.02.29 A2.02.12 A2.02.13
+A1.02.30 A2.02.12 A2.02.15
+A1.02.31 A2.02.14
+A1.02.32 A2.02.12 A2.02.13 A2.02.15 A2.02.17
+A1.02.33 A2.02.15
+A1.02.34 A2.02.16
+A1.02.35 A2.02.15 A2.02.17
+A1.02.36 A2.02.18
+A1.02.37 A2.01.19 A2.02.16
+A1.02.38 A2.02.17 A2.03.15
+A1.02.39 A2.02.18 A2.02.19
+A1.02.40 A2.02.18 A2.02.20
+A1.02.41 A2.02.19 A2.02.21
+A1.02.42 A2.02.18 A2.02.19 A2.02.20 A2.02.22
+A1.02.43 A2.02.20
+A1.02.44 A2.02.19 A2.02.21 A2.02.22 A2.02.23
+A1.02.45 A2.02.20 A2.02.22
+A1.02.46 A2.02.22 A2.02.23
+A1.02.47 A2.01.23 A2.02.24
+A1.02.48 A2.02.23 A2.03.22
+A1.02.49 A2.02.24 A2.02.25
+A1.02.50 A2.02.25 A2.02.26
+A1.02.51 A2.01.25 A2.01.27 A2.02.24 A2.02.25
+A1.02.52 A2.01.27 A2.02.25 A2.02.26 A2.02.27
+A1.02.53 A2.01.27 A2.02.27
+A1.02.54 A2.02.27
+A1.02.55 A2.01.27 A2.02.27
+A1.02.56 A2.02.27 A2.02.28
+A1.02.57 A2.02.27
+A1.02.58 A2.02.27 A2.02.28
+A1.02.59 A2.01.29 A2.02.29
+A1.02.60 A2.02.28
+A1.02.61 A2.02.29 A2.02.30 A2.02.31
+A1.02.62 A2.02.30 A2.02.31
+A1.03.12 A2.03.00
+A1.03.13 A2.03.00
+A1.03.14 A2.03.00
+A1.03.15 A2.03.01
+A1.03.16 A2.03.01 A2.03.02
+A1.03.17 A2.03.02 A2.03.03
+A1.03.18 A2.03.03 A2.03.04
+A1.03.19 A2.03.04 A2.03.05
+A1.03.20 A2.02.04 A2.02.08 A2.03.01 A2.03.06
+A1.03.21 A2.03.01 A2.03.02 A2.03.06 A2.03.07
+A1.03.22 A2.03.02 A2.03.03 A2.03.07 A2.03.08
+A1.03.23 A2.03.03 A2.03.04 A2.03.08 A2.03.09
+A1.03.24 A2.03.04 A2.03.05 A2.03.09 A2.03.10
+A1.03.25 A2.03.06 A2.03.07
+A1.03.26 A2.03.07 A2.03.08
+A1.03.27 A2.03.08 A2.03.09
+A1.03.28 A2.03.09 A2.03.10
+A1.03.29 A2.02.13 A2.03.11
+A1.03.30 A2.03.11 A2.03.12
+A1.03.31 A2.03.12 A2.03.13
+A1.03.32 A2.03.13 A2.03.14
+A1.03.33 A2.02.13 A2.02.17 A2.03.11 A2.03.15
+A1.03.34 A2.03.11 A2.03.12 A2.03.15 A2.03.16
+A1.03.35 A2.03.12 A2.03.13 A2.03.16 A2.03.17
+A1.03.36 A2.03.13 A2.03.14 A2.03.17 A2.03.18
+A1.03.37 A2.03.15 A2.03.16
+A1.03.38 A2.03.16 A2.03.17
+A1.03.39 A2.03.17 A2.03.18
+A1.03.40 A2.02.21 A2.03.19
+A1.03.41 A2.03.19 A2.03.20
+A1.03.42 A2.03.20 A2.03.21
+A1.03.43 A2.02.21 A2.02.23 A2.03.19 A2.03.22
+A1.03.44 A2.03.19 A2.03.20 A2.03.22 A2.03.23
+A1.03.45 A2.03.20 A2.03.21 A2.03.23 A2.03.24
+A1.03.46 A2.03.22 A2.03.23
+A1.03.47 A2.03.23 A2.03.24
+A1.03.48 A2.02.26 A2.03.25
+A1.03.49 A2.03.25 A2.03.26
+A1.03.50 A2.02.26 A2.03.25
+A1.03.51 A2.03.25
+A1.03.52 A2.03.25 A2.03.26
+A1.03.53 A2.03.26
+A1.03.54 A2.02.27 A2.02.28
+A1.03.55 A2.02.28
+A1.03.56 A2.02.28 A2.03.27
+A1.03.57 A2.03.27 A2.03.28
+A1.03.58 A2.02.28
+A1.03.59 A2.02.28 A2.03.27 A2.03.29
+A1.03.60 A2.03.27 A2.03.28 A2.03.29 A2.03.30
+A1.03.61 A2.02.28 A2.03.29
+A1.03.62 A2.03.29 A2.03.30
+A1.04.12 A2.04.00
+A1.04.13 A2.04.00
+A1.04.14 A2.03.00 A2.04.00
+A1.04.15 A2.04.01 A2.04.02
+A1.04.16 A2.04.02 A2.04.03
+A1.04.17 A2.04.03 A2.04.04
+A1.04.18 A2.04.04 A2.04.05
+A1.04.19 A2.03.05 A2.04.05
+A1.04.20 A2.04.01 A2.04.02 A2.04.06 A2.04.07
+A1.04.21 A2.04.02 A2.04.03 A2.04.07 A2.04.08
+A1.04.22 A2.04.03 A2.04.04 A2.04.08 A2.04.09
+A1.04.23 A2.04.04 A2.04.05 A2.04.09 A2.04.10
+A1.04.24 A2.03.05 A2.03.10 A2.04.05 A2.04.10
+A1.04.25 A2.04.07 A2.04.08
+A1.04.26 A2.04.08 A2.04.09
+A1.04.27 A2.04.09 A2.04.10
+A1.04.28 A2.03.10 A2.04.10
+A1.04.29 A2.04.11 A2.04.12
+A1.04.30 A2.04.12 A2.04.13
+A1.04.31 A2.04.13 A2.04.14
+A1.04.32 A2.03.14 A2.04.14
+A1.04.33 A2.04.11 A2.04.12 A2.04.15 A2.04.16
+A1.04.34 A2.04.12 A2.04.13 A2.04.16 A2.04.17
+A1.04.35 A2.04.13 A2.04.14 A2.04.17 A2.04.18
+A1.04.36 A2.03.14 A2.03.18 A2.04.14 A2.04.18
+A1.04.37 A2.04.16 A2.04.17
+A1.04.38 A2.04.17 A2.04.18
+A1.04.39 A2.03.18 A2.04.18
+A1.04.40 A2.04.19 A2.04.20
+A1.04.41 A2.04.20 A2.04.21
+A1.04.42 A2.03.21 A2.04.21
+A1.04.43 A2.04.19 A2.04.20 A2.04.22 A2.04.23
+A1.04.44 A2.04.20 A2.04.21 A2.04.23 A2.04.24
+A1.04.45 A2.03.21 A2.03.24 A2.04.21 A2.04.24
+A1.04.46 A2.04.23 A2.04.24
+A1.04.47 A2.03.24 A2.04.24
+A1.04.48 A2.04.25 A2.04.26
+A1.04.49 A2.03.26 A2.04.26
+A1.04.50 A2.04.25
+A1.04.51 A2.04.25 A2.04.26
+A1.04.52 A2.04.26
+A1.04.53 A2.03.26 A2.04.26
+A1.04.54 A2.05.28
+A1.04.55 A2.04.27 A2.05.28
+A1.04.56 A2.04.27 A2.04.28
+A1.04.57 A2.03.28 A2.04.28
+A1.04.58 A2.04.27 A2.04.29 A2.05.28
+A1.04.59 A2.04.27 A2.04.28 A2.04.29 A2.04.30
+A1.04.60 A2.03.28 A2.03.30 A2.04.28 A2.04.30
+A1.04.61 A2.04.29 A2.04.30
+A1.04.62 A2.03.30 A2.04.30
+A1.05.09 A2.05.02
+A1.05.10 A2.05.07
+A1.05.11 A2.05.01 A2.05.06
+A1.05.12 A2.05.03
+A1.05.13 A2.04.01 A2.05.02 A2.05.04
+A1.05.14 A2.05.00 A2.05.02 A2.05.07 A2.05.08
+A1.05.15 A2.05.03 A2.05.05 A2.05.07
+A1.05.16 A2.05.06 A2.05.09
+A1.05.17 A2.04.01 A2.04.06 A2.05.02 A2.05.04 A2.05.08
+A1.05.18 A2.05.07 A2.05.08
+A1.05.19 A2.05.09 A2.05.10
+A1.05.20 A2.05.06 A2.05.09 A2.05.11 A2.06.08
+A1.05.21 A2.04.06 A2.05.08
+A1.05.22 A2.05.10 A2.05.12
+A1.05.23 A2.05.09 A2.05.10 A2.05.11 A2.05.14
+A1.05.24 A2.04.06 A2.04.07
+A1.05.25 A2.05.12 A2.05.13
+A1.05.26 A2.05.10 A2.05.12 A2.05.14 A2.05.15
+A1.05.27 A2.05.11 A2.05.14
+A1.05.28 A2.04.11 A2.05.13
+A1.05.29 A2.05.12 A2.05.13 A2.05.15 A2.05.17
+A1.05.30 A2.05.14 A2.05.15
+A1.05.31 A2.04.11 A2.04.15 A2.05.13 A2.05.17
+A1.05.32 A2.05.15 A2.05.17
+A1.05.33 A2.05.16 A2.05.18
+A1.05.34 A2.04.15 A2.05.17
+A1.05.35 A2.05.16 A2.05.18 A2.05.20 A2.06.19
+A1.05.36 A2.05.18 A2.05.19
+A1.05.37 A2.04.15 A2.04.16
+A1.05.38 A2.05.19 A2.05.21
+A1.05.39 A2.05.18 A2.05.19 A2.05.20 A2.05.22
+A1.05.40 A2.04.19 A2.05.21
+A1.05.41 A2.05.19 A2.05.21 A2.05.22 A2.05.23
+A1.05.42 A2.05.20 A2.05.22
+A1.05.43 A2.04.19 A2.04.22 A2.05.21 A2.05.23
+A1.05.44 A2.05.22 A2.05.23
+A1.05.45 A2.04.22 A2.05.23
+A1.05.46 A2.05.24 A2.05.25
+A1.05.47 A2.04.22 A2.04.23
+A1.05.48 A2.05.25 A2.05.26
+A1.05.49 A2.04.25 A2.05.26
+A1.05.50 A2.05.25 A2.05.26 A2.05.27 A2.06.27
+A1.05.51 A2.04.25 A2.05.26 A2.05.27 A2.05.28
+A1.05.52 A2.05.27
+A1.05.53 A2.05.27 A2.05.28
+A1.05.54 A2.05.27
+A1.05.55 A2.05.28
+A1.05.56 A2.05.27 A2.05.28
+A1.05.57 A2.05.28
+A1.05.58 A2.05.29 A2.05.30
+A1.05.59 A2.04.29 A2.05.28
+A1.05.60 A2.05.30 A2.05.31
+A1.05.61 A2.05.30 A2.05.31 A2.06.31
+A1.05.62 A2.05.31
+A1.06.11 A2.06.04
+A1.06.12 A2.06.00 A2.06.05
+A1.06.13 A2.06.04 A2.07.03
+A1.06.14 A2.06.02 A2.06.06
+A1.06.15 A2.06.01 A2.06.05
+A1.06.16 A2.06.02 A2.06.04 A2.06.06 A2.06.07
+A1.06.17 A2.05.01 A2.05.06 A2.06.00 A2.06.03 A2.06.05 A2.06.08
+A1.06.18 A2.06.06 A2.06.09
+A1.06.19 A2.06.04 A2.06.07
+A1.06.20 A2.06.05 A2.06.08
+A1.06.21 A2.06.10 A2.07.07
+A1.06.22 A2.06.06 A2.06.07 A2.06.09 A2.06.11
+A1.06.23 A2.06.09 A2.06.12
+A1.06.24 A2.06.07 A2.06.11
+A1.06.25 A2.05.11 A2.06.08
+A1.06.26 A2.06.10 A2.06.13
+A1.06.27 A2.06.09 A2.06.11 A2.06.12 A2.06.15
+A1.06.28 A2.06.12 A2.06.14
+A1.06.29 A2.06.11 A2.06.15
+A1.06.30 A2.06.12 A2.06.14 A2.06.15 A2.06.17
+A1.06.31 A2.06.13 A2.06.16
+A1.06.32 A2.05.16 A2.06.14
+A1.06.33 A2.06.13 A2.06.16 A2.07.14 A2.07.17
+A1.06.34 A2.06.15 A2.06.17
+A1.06.35 A2.05.16 A2.06.14 A2.06.17 A2.06.19
+A1.06.36 A2.06.16 A2.06.18
+A1.06.37 A2.06.17 A2.06.19
+A1.06.38 A2.06.16 A2.06.18 A2.06.20 A2.07.17
+A1.06.39 A2.06.18 A2.06.21
+A1.06.40 A2.05.20 A2.06.19
+A1.06.41 A2.06.18 A2.06.20 A2.06.21 A2.06.22
+A1.06.42 A2.06.21 A2.06.23
+A1.06.43 A2.06.21 A2.06.22 A2.06.23 A2.06.24
+A1.06.44 A2.05.24 A2.06.23
+A1.06.45 A2.06.22 A2.06.24
+A1.06.46 A2.05.24 A2.06.23 A2.06.24 A2.06.25
+A1.06.47 A2.06.24 A2.06.25
+A1.06.48 A2.05.24 A2.05.25 A2.06.25 A2.06.27
+A1.06.49 A2.06.25 A2.06.27
+A1.06.50 A2.06.26 A2.06.28
+A1.06.51 A2.05.27 A2.06.27
+A1.06.52 A2.06.28
+A1.06.53 A2.06.28
+A1.06.54 A2.06.28
+A1.06.55 A2.05.29 A2.06.28
+A1.06.56 A2.06.28 A2.06.29
+A1.06.57 A2.05.29
+A1.06.58 A2.06.28 A2.06.30
+A1.06.59 A2.06.29
+A1.06.60 A2.06.30
+A1.06.61 A2.05.30 A2.06.29 A2.06.31
+A1.06.62 A2.06.30 A2.06.31
+A1.07.13 A2.07.03 A2.07.04
+A1.07.14 A2.07.04
+A1.07.15 A2.07.00 A2.07.05
+A1.07.16 A2.07.00 A2.07.02 A2.07.05 A2.07.06
+A1.07.17 A2.07.01 A2.07.02 A2.07.06
+A1.07.18 A2.07.03 A2.07.07
+A1.07.19 A2.07.03 A2.07.04 A2.07.07 A2.07.08
+A1.07.20 A2.07.04 A2.07.08
+A1.07.21 A2.07.05 A2.07.09
+A1.07.22 A2.07.05 A2.07.06 A2.07.09 A2.07.10
+A1.07.23 A2.07.06 A2.07.10
+A1.07.24 A2.06.10 A2.07.07 A2.07.08 A2.07.11
+A1.07.25 A2.07.08 A2.07.11
+A1.07.26 A2.07.09 A2.07.12
+A1.07.27 A2.07.09 A2.07.10 A2.07.12 A2.07.13
+A1.07.28 A2.07.10 A2.07.13
+A1.07.29 A2.06.10 A2.06.13 A2.07.11 A2.07.14
+A1.07.30 A2.07.11 A2.07.14
+A1.07.31 A2.07.12 A2.07.15
+A1.07.32 A2.07.12 A2.07.13 A2.07.15 A2.07.16
+A1.07.33 A2.07.13 A2.07.16
+A1.07.34 A2.07.14 A2.07.17
+A1.07.35 A2.07.15 A2.07.18
+A1.07.36 A2.07.15 A2.07.16 A2.07.18 A2.07.19
+A1.07.37 A2.07.16 A2.07.19
+A1.07.38 A2.06.20 A2.07.17
+A1.07.39 A2.07.18 A2.07.20
+A1.07.40 A2.07.18 A2.07.19 A2.07.20 A2.07.21
+A1.07.41 A2.07.19 A2.07.21
+A1.07.42 A2.06.20 A2.06.22
+A1.07.43 A2.07.20 A2.07.22
+A1.07.44 A2.07.20 A2.07.21 A2.07.22 A2.07.23
+A1.07.45 A2.07.21 A2.07.23
+A1.07.46 A2.07.22 A2.07.24
+A1.07.47 A2.07.22 A2.07.23 A2.07.24 A2.07.25
+A1.07.48 A2.07.23 A2.07.25
+A1.07.49 A2.06.26 A2.07.24
+A1.07.50 A2.06.26 A2.07.24 A2.07.25 A2.07.26
+A1.07.51 A2.07.25 A2.07.26
+A1.07.52 A2.06.26 A2.06.28 A2.07.26 A2.07.27
+A1.07.53 A2.07.26 A2.07.27
+A1.07.54 A2.07.27
+A1.07.55 A2.07.27
+A1.07.56 A2.07.27
+A1.07.57 A2.07.27 A2.07.28
+A1.07.58 A2.07.27 A2.07.28 A2.07.29
+A1.07.59 A2.07.27 A2.07.29
+A1.07.60 A2.06.31 A2.07.28
+A1.07.61 A2.07.28 A2.07.29
+A1.07.62 A2.07.29
+A1.08.07 A2.08.03
+A1.08.12 A2.08.03 A2.08.04
+A1.08.13 A2.08.04
+A1.08.14 A2.08.02 A2.08.05
+A1.08.15 A2.08.01 A2.08.02 A2.08.05 A2.08.06
+A1.08.16 A2.08.00 A2.08.01 A2.08.06
+A1.08.17 A2.08.03 A2.08.07
+A1.08.18 A2.08.03 A2.08.04 A2.08.07 A2.08.08
+A1.08.19 A2.08.04 A2.08.08
+A1.08.20 A2.08.05 A2.08.09
+A1.08.21 A2.08.05 A2.08.06 A2.08.09 A2.08.10
+A1.08.22 A2.08.06 A2.08.10
+A1.08.23 A2.08.07 A2.08.08 A2.08.11 A2.09.10
+A1.08.24 A2.08.08 A2.08.11
+A1.08.25 A2.08.09 A2.08.12
+A1.08.26 A2.08.09 A2.08.10 A2.08.12 A2.08.13
+A1.08.27 A2.08.10 A2.08.13
+A1.08.28 A2.08.11 A2.08.14 A2.09.10 A2.09.13
+A1.08.29 A2.08.11 A2.08.14
+A1.08.30 A2.08.12 A2.08.15
+A1.08.31 A2.08.12 A2.08.13 A2.08.15 A2.08.16
+A1.08.32 A2.08.13 A2.08.16
+A1.08.33 A2.08.14 A2.08.17
+A1.08.34 A2.08.15 A2.08.18
+A1.08.35 A2.08.15 A2.08.16 A2.08.18 A2.08.19
+A1.08.36 A2.08.16 A2.08.19
+A1.08.37 A2.08.17 A2.09.20
+A1.08.38 A2.08.18 A2.08.20
+A1.08.39 A2.08.18 A2.08.19 A2.08.20 A2.08.21
+A1.08.40 A2.08.19 A2.08.21
+A1.08.41 A2.09.20 A2.09.22
+A1.08.42 A2.08.20 A2.08.22
+A1.08.43 A2.08.20 A2.08.21 A2.08.22 A2.08.23
+A1.08.44 A2.08.21 A2.08.23
+A1.08.45 A2.08.22 A2.08.24
+A1.08.46 A2.08.22 A2.08.23 A2.08.24 A2.08.25
+A1.08.47 A2.08.23 A2.08.25
+A1.08.48 A2.08.24 A2.09.26
+A1.08.49 A2.08.24 A2.08.25 A2.08.26 A2.09.26
+A1.08.50 A2.08.25 A2.08.26
+A1.08.51 A2.08.26 A2.08.27 A2.09.26 A2.09.28
+A1.08.52 A2.08.26 A2.08.27
+A1.08.53 A2.09.28
+A1.08.54 A2.08.27
+A1.08.55 A2.08.27
+A1.08.56 A2.08.27
+A1.08.57 A2.08.27 A2.08.28
+A1.08.58 A2.08.27 A2.08.28 A2.08.29
+A1.08.59 A2.08.27 A2.08.29
+A1.08.60 A2.08.28 A2.09.31
+A1.08.61 A2.08.28 A2.08.29
+A1.08.62 A2.08.29
+A1.09.11 A2.09.02 A2.09.04
+A1.09.12 A2.09.00 A2.09.01 A2.09.05
+A1.09.13 A2.08.03 A2.09.04
+A1.09.14 A2.09.06
+A1.09.15 A2.09.01 A2.09.03 A2.09.05
+A1.09.16 A2.09.02 A2.09.04 A2.09.06 A2.09.07
+A1.09.17 A2.09.00 A2.09.05 A2.09.08 A2.10.06
+A1.09.18 A2.09.06 A2.09.09
+A1.09.19 A2.09.04 A2.09.07
+A1.09.20 A2.09.05 A2.09.08
+A1.09.21 A2.08.07 A2.09.10
+A1.09.22 A2.09.06 A2.09.07 A2.09.09 A2.09.11
+A1.09.23 A2.09.09 A2.09.12
+A1.09.24 A2.09.07 A2.09.11
+A1.09.25 A2.09.08 A2.10.11
+A1.09.26 A2.09.10 A2.09.13
+A1.09.27 A2.09.09 A2.09.11 A2.09.12 A2.09.15
+A1.09.28 A2.09.12 A2.09.14
+A1.09.29 A2.09.11 A2.09.15
+A1.09.30 A2.09.12 A2.09.14 A2.09.15 A2.09.17
+A1.09.31 A2.09.13 A2.09.16
+A1.09.32 A2.09.14 A2.10.16
+A1.09.33 A2.08.14 A2.08.17 A2.09.13 A2.09.16
+A1.09.34 A2.09.15 A2.09.17
+A1.09.35 A2.09.14 A2.09.17 A2.09.19 A2.10.16
+A1.09.36 A2.09.16 A2.09.18
+A1.09.37 A2.09.17 A2.09.19
+A1.09.38 A2.08.17 A2.09.16 A2.09.18 A2.09.20
+A1.09.39 A2.09.18 A2.09.21
+A1.09.40 A2.09.19 A2.10.20
+A1.09.41 A2.09.18 A2.09.20 A2.09.21 A2.09.22
+A1.09.42 A2.09.21 A2.09.23
+A1.09.43 A2.09.21 A2.09.22 A2.09.23 A2.09.24
+A1.09.44 A2.09.23 A2.10.24
+A1.09.45 A2.09.22 A2.09.24
+A1.09.46 A2.09.23 A2.09.24 A2.09.25 A2.10.24
+A1.09.47 A2.09.24 A2.09.25
+A1.09.48 A2.09.25 A2.09.27 A2.10.24 A2.10.25
+A1.09.49 A2.09.25 A2.09.27
+A1.09.50 A2.09.26 A2.09.28
+A1.09.51 A2.09.27 A2.10.27
+A1.09.52 A2.09.28
+A1.09.53 A2.09.28
+A1.09.54 A2.09.28 A2.09.29
+A1.09.55 A2.09.28 A2.09.29 A2.09.30
+A1.09.56 A2.09.29 A2.10.29
+A1.09.57 A2.09.28 A2.09.30
+A1.09.58 A2.09.29 A2.09.30 A2.09.31 A2.10.29
+A1.09.59 A2.09.30 A2.09.31
+A1.09.60 A2.09.31 A2.10.29 A2.10.30
+A1.09.61 A2.09.31 A2.10.30
+A1.09.62 A2.09.31
+A1.10.10 A2.10.02
+A1.10.11 A2.10.07
+A1.10.12 A2.09.00 A2.10.00 A2.10.06
+A1.10.13 A2.10.03
+A1.10.14 A2.10.02 A2.10.04 A2.11.01
+A1.10.15 A2.10.01 A2.10.02 A2.10.07 A2.10.08
+A1.10.16 A2.10.03 A2.10.05 A2.10.07
+A1.10.17 A2.10.06 A2.10.09
+A1.10.18 A2.10.02 A2.10.04 A2.10.08 A2.11.01 A2.11.06
+A1.10.19 A2.10.07 A2.10.08
+A1.10.20 A2.10.09 A2.10.10
+A1.10.21 A2.09.08 A2.10.06 A2.10.09 A2.10.11
+A1.10.22 A2.10.08 A2.11.06
+A1.10.23 A2.10.10 A2.10.12
+A1.10.24 A2.10.09 A2.10.10 A2.10.11 A2.10.14
+A1.10.25 A2.11.06 A2.11.07
+A1.10.26 A2.10.12 A2.10.13
+A1.10.27 A2.10.10 A2.10.12 A2.10.14 A2.10.15
+A1.10.28 A2.10.11 A2.10.14
+A1.10.29 A2.10.13 A2.11.11
+A1.10.30 A2.10.12 A2.10.13 A2.10.15 A2.10.17
+A1.10.31 A2.10.14 A2.10.15
+A1.10.32 A2.10.13 A2.10.17 A2.11.11 A2.11.15
+A1.10.33 A2.10.15 A2.10.17
+A1.10.34 A2.10.16 A2.10.18
+A1.10.35 A2.10.17 A2.11.15
+A1.10.36 A2.09.19 A2.10.16 A2.10.18 A2.10.20
+A1.10.37 A2.10.18 A2.10.19
+A1.10.38 A2.11.15 A2.11.16
+A1.10.39 A2.10.19 A2.10.21
+A1.10.40 A2.10.18 A2.10.19 A2.10.20 A2.10.22
+A1.10.41 A2.10.21 A2.11.19
+A1.10.42 A2.10.19 A2.10.21 A2.10.22 A2.10.23
+A1.10.43 A2.10.20 A2.10.22
+A1.10.44 A2.10.21 A2.10.23 A2.11.19 A2.11.22
+A1.10.45 A2.10.22 A2.10.23
+A1.10.46 A2.10.23 A2.11.22
+A1.10.47 A2.10.24 A2.10.25
+A1.10.48 A2.11.22 A2.11.23
+A1.10.49 A2.10.25 A2.10.26
+A1.10.50 A2.10.26 A2.11.25
+A1.10.51 A2.09.27 A2.10.25 A2.10.26 A2.10.27
+A1.10.52 A2.10.26 A2.10.27 A2.10.28 A2.11.25
+A1.10.53 A2.10.27
+A1.10.54 A2.10.27 A2.10.28
+A1.10.55 A2.10.27
+A1.10.56 A2.10.28
+A1.10.57 A2.10.27 A2.10.28
+A1.10.58 A2.10.28
+A1.10.59 A2.10.29 A2.10.30
+A1.10.60 A2.10.28 A2.11.29
+A1.10.61 A2.10.30 A2.10.31
+A1.10.62 A2.10.31
+A1.11.12 A2.11.00
+A1.11.13 A2.11.00
+A1.11.14 A2.11.00 A2.12.00
+A1.11.15 A2.11.01 A2.11.02
+A1.11.16 A2.11.02 A2.11.03
+A1.11.17 A2.11.03 A2.11.04
+A1.11.18 A2.11.04 A2.11.05
+A1.11.19 A2.11.05 A2.12.05
+A1.11.20 A2.11.01 A2.11.02 A2.11.06 A2.11.07
+A1.11.21 A2.11.02 A2.11.03 A2.11.07 A2.11.08
+A1.11.22 A2.11.03 A2.11.04 A2.11.08 A2.11.09
+A1.11.23 A2.11.04 A2.11.05 A2.11.09 A2.11.10
+A1.11.24 A2.11.05 A2.11.10 A2.12.05 A2.12.10
+A1.11.25 A2.11.07 A2.11.08
+A1.11.26 A2.11.08 A2.11.09
+A1.11.27 A2.11.09 A2.11.10
+A1.11.28 A2.11.10 A2.12.10
+A1.11.29 A2.11.11 A2.11.12
+A1.11.30 A2.11.12 A2.11.13
+A1.11.31 A2.11.13 A2.11.14
+A1.11.32 A2.11.14 A2.12.14
+A1.11.33 A2.11.11 A2.11.12 A2.11.15 A2.11.16
+A1.11.34 A2.11.12 A2.11.13 A2.11.16 A2.11.17
+A1.11.35 A2.11.13 A2.11.14 A2.11.17 A2.11.18
+A1.11.36 A2.11.14 A2.11.18 A2.12.14 A2.12.18
+A1.11.37 A2.11.16 A2.11.17
+A1.11.38 A2.11.17 A2.11.18
+A1.11.39 A2.11.18 A2.12.18
+A1.11.40 A2.11.19 A2.11.20
+A1.11.41 A2.11.20 A2.11.21
+A1.11.42 A2.11.21 A2.12.21
+A1.11.43 A2.11.19 A2.11.20 A2.11.22 A2.11.23
+A1.11.44 A2.11.20 A2.11.21 A2.11.23 A2.11.24
+A1.11.45 A2.11.21 A2.11.24 A2.12.21 A2.12.24
+A1.11.46 A2.11.23 A2.11.24
+A1.11.47 A2.11.24 A2.12.24
+A1.11.48 A2.11.25 A2.11.26
+A1.11.49 A2.11.26 A2.12.26
+A1.11.50 A2.11.25
+A1.11.51 A2.11.25 A2.11.26
+A1.11.52 A2.11.26
+A1.11.53 A2.11.26 A2.12.26
+A1.11.54 A2.10.28
+A1.11.55 A2.10.28 A2.11.27
+A1.11.56 A2.11.27 A2.11.28
+A1.11.57 A2.11.28 A2.12.28
+A1.11.58 A2.10.28 A2.11.27 A2.11.29
+A1.11.59 A2.11.27 A2.11.28 A2.11.29 A2.11.30
+A1.11.60 A2.11.28 A2.11.30 A2.12.28 A2.12.30
+A1.11.61 A2.11.29 A2.11.30
+A1.11.62 A2.11.30 A2.12.30
+A1.12.12 A2.12.00
+A1.12.13 A2.12.00
+A1.12.14 A2.12.00
+A1.12.15 A2.12.01 A2.13.04
+A1.12.16 A2.12.01 A2.12.02
+A1.12.17 A2.12.02 A2.12.03
+A1.12.18 A2.12.03 A2.12.04
+A1.12.19 A2.12.04 A2.12.05
+A1.12.20 A2.12.01 A2.12.06 A2.13.04 A2.13.08
+A1.12.21 A2.12.01 A2.12.02 A2.12.06 A2.12.07
+A1.12.22 A2.12.02 A2.12.03 A2.12.07 A2.12.08
+A1.12.23 A2.12.03 A2.12.04 A2.12.08 A2.12.09
+A1.12.24 A2.12.04 A2.12.05 A2.12.09 A2.12.10
+A1.12.25 A2.12.06 A2.12.07
+A1.12.26 A2.12.07 A2.12.08
+A1.12.27 A2.12.08 A2.12.09
+A1.12.28 A2.12.09 A2.12.10
+A1.12.29 A2.12.11 A2.13.13
+A1.12.30 A2.12.11 A2.12.12
+A1.12.31 A2.12.12 A2.12.13
+A1.12.32 A2.12.13 A2.12.14
+A1.12.33 A2.12.11 A2.12.15 A2.13.13 A2.13.17
+A1.12.34 A2.12.11 A2.12.12 A2.12.15 A2.12.16
+A1.12.35 A2.12.12 A2.12.13 A2.12.16 A2.12.17
+A1.12.36 A2.12.13 A2.12.14 A2.12.17 A2.12.18
+A1.12.37 A2.12.15 A2.12.16
+A1.12.38 A2.12.16 A2.12.17
+A1.12.39 A2.12.17 A2.12.18
+A1.12.40 A2.12.19 A2.13.21
+A1.12.41 A2.12.19 A2.12.20
+A1.12.42 A2.12.20 A2.12.21
+A1.12.43 A2.12.19 A2.12.22 A2.13.21 A2.13.23
+A1.12.44 A2.12.19 A2.12.20 A2.12.22 A2.12.23
+A1.12.45 A2.12.20 A2.12.21 A2.12.23 A2.12.24
+A1.12.46 A2.12.22 A2.12.23
+A1.12.47 A2.12.23 A2.12.24
+A1.12.48 A2.12.25 A2.13.26
+A1.12.49 A2.12.25 A2.12.26
+A1.12.50 A2.12.25 A2.13.26
+A1.12.51 A2.12.25
+A1.12.52 A2.12.25 A2.12.26
+A1.12.53 A2.12.26
+A1.12.54 A2.13.27 A2.13.28
+A1.12.55 A2.13.28
+A1.12.56 A2.12.27 A2.13.28
+A1.12.57 A2.12.27 A2.12.28
+A1.12.58 A2.13.28
+A1.12.59 A2.12.27 A2.12.29 A2.13.28
+A1.12.60 A2.12.27 A2.12.28 A2.12.29 A2.12.30
+A1.12.61 A2.12.29 A2.13.28
+A1.12.62 A2.12.29 A2.12.30
+A1.13.11 A2.13.03
+A1.13.12 A2.13.01
+A1.13.13 A2.12.01 A2.13.02 A2.13.04
+A1.13.14 A2.13.00 A2.13.07
+A1.13.15 A2.13.03 A2.13.05 A2.13.07
+A1.13.16 A2.13.06
+A1.13.17 A2.13.02 A2.13.04 A2.13.08
+A1.13.18 A2.13.07
+A1.13.19 A2.13.09
+A1.13.20 A2.13.06 A2.14.08
+A1.13.21 A2.13.08
+A1.13.22 A2.13.10
+A1.13.23 A2.13.09 A2.13.11
+A1.13.24 A2.12.06 A2.13.08
+A1.13.25 A2.13.12
+A1.13.26 A2.13.10 A2.13.14
+A1.13.27 A2.13.11
+A1.13.28 A2.13.12 A2.13.13
+A1.13.29 A2.13.12 A2.13.15
+A1.13.30 A2.13.14
+A1.13.31 A2.13.12 A2.13.13 A2.13.15 A2.13.17
+A1.13.32 A2.13.15
+A1.13.33 A2.13.16
+A1.13.34 A2.13.15 A2.13.17
+A1.13.35 A2.13.16 A2.14.19
+A1.13.36 A2.13.18
+A1.13.37 A2.12.15 A2.13.17
+A1.13.38 A2.13.18 A2.13.19
+A1.13.39 A2.13.18 A2.13.20
+A1.13.40 A2.13.19 A2.13.21
+A1.13.41 A2.13.18 A2.13.19 A2.13.20 A2.13.22
+A1.13.42 A2.13.20
+A1.13.43 A2.13.19 A2.13.21 A2.13.22 A2.13.23
+A1.13.44 A2.13.20 A2.13.22
+A1.13.45 A2.13.22 A2.13.23
+A1.13.46 A2.13.24 A2.14.23
+A1.13.47 A2.12.22 A2.13.23
+A1.13.48 A2.13.24 A2.13.25
+A1.13.49 A2.13.25 A2.13.26
+A1.13.50 A2.13.24 A2.13.25 A2.14.25 A2.14.27
+A1.13.51 A2.13.25 A2.13.26 A2.13.27 A2.14.27
+A1.13.52 A2.13.27 A2.14.27
+A1.13.53 A2.13.27
+A1.13.54 A2.13.27 A2.14.27
+A1.13.55 A2.13.27 A2.13.28
+A1.13.56 A2.13.27
+A1.13.57 A2.13.27 A2.13.28
+A1.13.58 A2.13.29 A2.13.30
+A1.13.59 A2.13.28
+A1.13.60 A2.13.30 A2.13.31
+A1.13.61 A2.13.30 A2.14.31
+A1.13.62 A2.13.30 A2.13.31
+A1.14.12 A2.14.05
+A1.14.13 A2.15.03
+A1.14.14 A2.14.02
+A1.14.15 A2.14.01 A2.14.05
+A1.14.16 A2.14.02 A2.14.04
+A1.14.17 A2.13.01 A2.14.00 A2.14.03 A2.14.05
+A1.14.18 A2.14.06
+A1.14.19 A2.14.04
+A1.14.20 A2.14.05
+A1.14.21 A2.15.07
+A1.14.22 A2.14.06 A2.14.07
+A1.14.23 A2.14.09
+A1.14.24 A2.14.07
+A1.14.25 A2.14.08
+A1.14.26 A2.14.10
+A1.14.27 A2.14.09 A2.14.11
+A1.14.28 A2.14.12
+A1.14.29 A2.14.11
+A1.14.30 A2.14.12 A2.14.15
+A1.14.31 A2.14.13
+A1.14.32 A2.14.14
+A1.14.33 A2.14.13 A2.15.14
+A1.14.34 A2.14.15
+A1.14.35 A2.14.14 A2.14.17
+A1.14.36 A2.14.16
+A1.14.37 A2.14.17
+A1.14.38 A2.14.16 A2.15.17
+A1.14.39 A2.14.18
+A1.14.40 A2.14.19
+A1.14.41 A2.14.18 A2.14.20
+A1.14.42 A2.14.21
+A1.14.43 A2.14.21 A2.14.22
+A1.14.44 A2.14.23
+A1.14.45 A2.14.22
+A1.14.46 A2.14.23 A2.14.24
+A1.14.47 A2.14.24
+A1.14.48 A2.13.24 A2.14.23 A2.14.24 A2.14.25
+A1.14.49 A2.14.24 A2.14.25
+A1.14.50 A2.14.26 A2.15.24
+A1.14.51 A2.14.25 A2.14.27
+A1.14.52 A2.14.26 A2.14.28
+A1.14.53 A2.14.26 A2.14.28
+A1.14.54 A2.14.26 A2.14.28
+A1.14.55 A2.14.28
+A1.14.56 A2.14.28
+A1.14.57 A2.13.29 A2.14.28
+A1.14.58 A2.14.28
+A1.14.59 A2.14.28 A2.14.29
+A1.14.60 A2.14.28 A2.14.30
+A1.14.61 A2.14.29 A2.14.31
+A1.14.62 A2.14.30 A2.14.31 A2.15.28
+A1.15.15 A2.15.00
+A1.15.16 A2.15.00 A2.15.02
+A1.15.17 A2.15.01 A2.15.02
+A1.15.18 A2.15.03
+A1.15.19 A2.15.03 A2.15.04
+A1.15.20 A2.15.04
+A1.15.21 A2.15.05
+A1.15.22 A2.15.05 A2.15.06
+A1.15.23 A2.15.06
+A1.15.24 A2.15.07 A2.15.08
+A1.15.25 A2.15.08
+A1.15.26 A2.15.09
+A1.15.27 A2.15.09 A2.15.10
+A1.15.28 A2.15.10
+A1.15.29 A2.14.10 A2.15.11
+A1.15.30 A2.15.11
+A1.15.31 A2.15.12
+A1.15.32 A2.15.12 A2.15.13
+A1.15.33 A2.15.13
+A1.15.34 A2.15.14
+A1.15.35 A2.15.15
+A1.15.36 A2.15.15 A2.15.16
+A1.15.37 A2.15.16
+A1.15.38 A2.15.17
+A1.15.39 A2.15.18
+A1.15.40 A2.15.18 A2.15.19
+A1.15.41 A2.15.19
+A1.15.42 A2.14.20
+A1.15.43 A2.15.20
+A1.15.44 A2.15.20 A2.15.21
+A1.15.45 A2.15.21
+A1.15.46 A2.15.22
+A1.15.47 A2.15.22 A2.15.23
+A1.15.48 A2.15.23
+A1.15.49 A2.15.24
+A1.15.50 A2.15.24 A2.15.25
+A1.15.51 A2.15.25
+A1.15.52 A2.14.26 A2.15.24 A2.15.25 A2.15.26
+A1.15.53 A2.15.25 A2.15.26
+A1.15.54 A2.15.26 A2.15.27
+A1.15.55 A2.15.26 A2.15.27
+A1.15.56 A2.15.26 A2.15.27
+A1.15.57 A2.15.27
+A1.15.58 A2.15.27
+A1.15.59 A2.15.27
+A1.15.60 A2.15.27 A2.15.28
+A1.15.61 A2.15.27 A2.15.28 A2.15.29
+A1.15.62 A2.15.27 A2.15.29
+A2.00.05 A3.00.02
+A2.00.06 A3.00.00
+A2.00.07 A3.00.01 A3.01.00 A3.01.02
+A2.00.08 A3.00.01
+A2.00.09 A3.00.02
+A2.00.10 A3.00.03
+A2.00.11 A3.00.01 A3.00.04
+A2.00.12 A3.00.02 A3.00.05
+A2.00.13 A3.00.03 A3.00.06
+A2.00.14 A3.00.04 A3.00.07
+A2.00.15 A3.00.05 A3.00.08
+A2.00.16 A3.00.06 A3.00.09
+A2.00.17 A3.00.07
+A2.00.18 A3.00.08
+A2.00.19 A3.00.09
+A2.00.20 A3.00.08 A3.00.10
+A2.00.21 A3.00.09 A3.00.11
+A2.00.22 A3.00.10 A3.00.12
+A2.00.23 A3.00.11 A3.00.13
+A2.00.24 A3.00.12
+A2.00.25 A3.00.13
+A2.00.26 A3.00.13 A3.00.14
+A2.00.27 A3.00.14 A3.00.15 A3.01.15
+A2.00.28 A3.00.15 A3.01.15
+A2.00.29 A3.00.15
+A2.01.04 A3.01.02
+A2.01.05 A3.01.01 A3.01.03 A3.02.00
+A2.01.06 A3.01.01 A3.01.02
+A2.01.07 A3.01.02
+A2.01.08 A3.01.01 A3.01.03 A3.02.00
+A2.01.09 A3.01.01 A3.01.02 A3.01.03 A3.01.05
+A2.01.10 A3.00.01 A3.01.00 A3.01.02 A3.01.04
+A2.01.11 A3.01.01 A3.01.02 A3.01.05
+A2.01.12 A3.01.03 A3.01.05
+A2.01.13 A3.01.04 A3.01.06
+A2.01.14 A3.01.03 A3.01.05 A3.01.07 A3.02.05
+A2.01.15 A3.01.05
+A2.01.16 A3.01.06
+A2.01.17 A3.01.05 A3.01.07
+A2.01.18 A3.01.06 A3.01.08
+A2.01.19 A3.01.07 A3.02.09
+A2.01.20 A3.00.07 A3.01.09
+A2.01.21 A3.01.08 A3.01.10
+A2.01.22 A3.01.09 A3.01.11
+A2.01.23 A3.01.10
+A2.01.24 A3.01.11
+A2.01.25 A3.01.11 A3.01.12
+A2.01.26 A3.00.12 A3.01.13
+A2.01.27 A3.01.12 A3.02.13
+A2.01.28 A3.01.13 A3.01.14 A3.01.15
+A2.01.29 A3.01.14 A3.02.14
+A2.01.30 A3.01.14 A3.01.15
+A2.01.31 A3.01.14 A3.01.15 A3.02.14
+A2.02.06 A3.02.00
+A2.02.07 A3.02.01 A3.02.02
+A2.02.08 A3.02.01
+A2.02.09 A3.02.00 A3.02.02 A3.02.03
+A2.02.10 A3.02.00 A3.02.01 A3.02.02 A3.02.03 A3.02.04
+A2.02.11 A3.01.03 A3.02.00 A3.02.03 A3.02.05
+A2.02.12 A3.02.01 A3.02.02 A3.02.04
+A2.02.13 A3.02.01 A3.02.02 A3.02.04 A3.02.06 A3.03.05
+A2.02.14 A3.02.03 A3.02.04 A3.02.05 A3.02.07
+A2.02.15 A3.02.04 A3.02.07
+A2.02.16 A3.01.07 A3.02.05 A3.02.07 A3.02.09
+A2.02.17 A3.02.04 A3.02.06 A3.02.07 A3.02.08
+A2.02.18 A3.02.07 A3.02.09
+A2.02.19 A3.02.07 A3.02.08 A3.02.09 A3.02.10
+A2.02.20 A3.02.09
+A2.02.21 A3.02.08 A3.02.10 A3.03.10 A3.03.12
+A2.02.22 A3.02.09 A3.02.10
+A2.02.23 A3.02.10 A3.03.12
+A2.02.24 A3.01.10 A3.02.11
+A2.02.25 A3.02.11 A3.02.12
+A2.02.26 A3.02.12
+A2.02.27 A3.02.13
+A2.02.28 A3.02.13 A3.03.15
+A2.02.29 A3.02.14 A3.02.15
+A2.02.30 A3.02.14 A3.02.15
+A2.02.31 A3.02.15
+A2.03.01 A3.03.02
+A2.03.02 A3.03.02
+A2.03.03 A3.03.02 A3.03.03
+A2.03.04 A3.03.00 A3.03.03 A3.03.04
+A2.03.05 A3.03.00 A3.03.01 A3.03.04 A3.04.01 A3.04.04
+A2.03.06 A3.02.01 A3.03.02 A3.03.05
+A2.03.07 A3.03.02 A3.03.03 A3.03.05 A3.03.06
+A2.03.08 A3.03.02 A3.03.03 A3.03.06
+A2.03.09 A3.03.03 A3.03.04 A3.03.06 A3.03.07
+A2.03.10 A3.03.04 A3.03.07 A3.04.04 A3.04.07
+A2.03.11 A3.02.06 A3.03.05 A3.03.06 A3.03.08
+A2.03.12 A3.03.06 A3.03.08
+A2.03.13 A3.03.06 A3.03.07 A3.03.08 A3.03.09
+A2.03.14 A3.03.07 A3.03.09 A3.04.07 A3.04.09
+A2.03.15 A3.02.06 A3.02.08 A3.03.08 A3.03.10
+A2.03.16 A3.03.08 A3.03.10
+A2.03.17 A3.03.08 A3.03.09 A3.03.10 A3.03.11
+A2.03.18 A3.03.09 A3.03.11 A3.04.09 A3.04.11
+A2.03.19 A3.03.10 A3.03.12
+A2.03.20 A3.03.10 A3.03.11 A3.03.12 A3.03.13
+A2.03.21 A3.03.11 A3.03.13 A3.04.11 A3.04.13
+A2.03.22 A3.03.12
+A2.03.23 A3.03.12 A3.03.13
+A2.03.24 A3.03.13 A3.04.13
+A2.03.25 A3.02.12 A3.03.14
+A2.03.26 A3.03.14 A3.04.14
+A2.03.27 A3.03.15
+A2.03.28 A3.03.15 A3.04.15
+A2.03.29 A3.03.15
+A2.03.30 A3.03.15 A3.04.15
+A2.04.02 A3.04.02
+A2.04.03 A3.04.02 A3.04.03
+A2.04.04 A3.04.00 A3.04.03 A3.04.04
+A2.04.05 A3.04.00 A3.04.01 A3.04.04
+A2.04.06 A3.04.02 A3.04.05 A3.05.02
+A2.04.07 A3.04.02 A3.04.05
+A2.04.08 A3.04.02 A3.04.03 A3.04.05 A3.04.06
+A2.04.09 A3.04.03 A3.04.04 A3.04.06 A3.04.07
+A2.04.10 A3.04.04 A3.04.07
+A2.04.11 A3.04.05 A3.05.06
+A2.04.12 A3.04.05 A3.04.06 A3.04.08 A3.05.06
+A2.04.13 A3.04.06 A3.04.07 A3.04.08 A3.04.09
+A2.04.14 A3.04.07 A3.04.09
+A2.04.15 A3.05.06 A3.05.08
+A2.04.16 A3.04.08 A3.04.10 A3.05.06 A3.05.08
+A2.04.17 A3.04.08 A3.04.09 A3.04.10 A3.04.11
+A2.04.18 A3.04.09 A3.04.11
+A2.04.19 A3.04.10 A3.04.12 A3.05.08 A3.05.10
+A2.04.20 A3.04.10 A3.04.11 A3.04.12 A3.04.13
+A2.04.21 A3.04.11 A3.04.13
+A2.04.22 A3.04.12 A3.05.10
+A2.04.23 A3.04.12 A3.04.13
+A2.04.24 A3.04.13
+A2.04.25 A3.04.14 A3.05.12
+A2.04.26 A3.04.14
+A2.04.27 A3.04.15
+A2.04.28 A3.04.15
+A2.04.29 A3.04.15
+A2.04.30 A3.04.15
+A2.05.06 A3.05.00
+A2.05.07 A3.05.01
+A2.05.08 A3.05.01 A3.05.02
+A2.05.09 A3.05.00 A3.05.01 A3.05.03
+A2.05.10 A3.05.01 A3.05.03
+A2.05.11 A3.05.00 A3.05.03 A3.05.05 A3.06.02
+A2.05.12 A3.05.01 A3.05.02 A3.05.03 A3.05.04
+A2.05.13 A3.04.05 A3.05.02 A3.05.04 A3.05.06
+A2.05.14 A3.05.03 A3.05.05
+A2.05.15 A3.05.03 A3.05.04 A3.05.05 A3.05.07
+A2.05.16 A3.05.05 A3.06.06
+A2.05.17 A3.05.04 A3.05.06 A3.05.07 A3.05.08
+A2.05.18 A3.05.05 A3.05.07 A3.05.09 A3.06.06
+A2.05.19 A3.05.07 A3.05.08 A3.05.09 A3.05.10
+A2.05.20 A3.05.09 A3.06.06
+A2.05.21 A3.05.08 A3.05.10
+A2.05.22 A3.05.09 A3.05.10
+A2.05.23 A3.05.10
+A2.05.24 A3.05.11 A3.06.09
+A2.05.25 A3.05.11
+A2.05.26 A3.05.11 A3.05.12
+A2.05.27 A3.05.13 A3.06.11
+A2.05.28 A3.04.15 A3.05.13
+A2.05.29 A3.06.12 A3.06.13
+A2.05.30 A3.05.14 A3.06.13 A3.06.15
+A2.05.31 A3.05.14
+A2.06.05 A3.06.00
+A2.06.06 A3.06.00
+A2.06.07 A3.06.00 A3.06.01
+A2.06.08 A3.05.00 A3.06.00 A3.06.02
+A2.06.09 A3.06.00
+A2.06.10 A3.06.01 A3.06.03 A3.07.01
+A2.06.11 A3.06.00 A3.06.01
+A2.06.12 A3.06.00 A3.06.02 A3.06.04
+A2.06.13 A3.06.03
+A2.06.14 A3.05.05 A3.06.02 A3.06.04 A3.06.06
+A2.06.15 A3.06.00 A3.06.01 A3.06.04
+A2.06.16 A3.06.03 A3.06.05
+A2.06.17 A3.06.04 A3.06.06
+A2.06.18 A3.06.05 A3.06.07
+A2.06.19 A3.06.06
+A2.06.20 A3.06.08 A3.07.07
+A2.06.21 A3.06.07
+A2.06.22 A3.06.08
+A2.06.23 A3.06.07 A3.06.09
+A2.06.24 A3.06.08 A3.06.10
+A2.06.25 A3.06.10 A3.06.11
+A2.06.26 A3.06.12 A3.07.12
+A2.06.27 A3.06.11
+A2.06.28 A3.06.12
+A2.06.29 A3.06.12 A3.06.13 A3.06.14 A3.06.15
+A2.06.30 A3.06.12 A3.06.14 A3.06.15
+A2.06.31 A3.06.13 A3.06.14 A3.06.15
+A2.07.06 A3.07.00
+A2.07.07 A3.07.01
+A2.07.08 A3.07.01 A3.07.02
+A2.07.09 A3.07.02
+A2.07.10 A3.07.00 A3.07.03
+A2.07.11 A3.07.01 A3.07.04
+A2.07.12 A3.07.02 A3.07.05
+A2.07.13 A3.07.03 A3.07.06
+A2.07.14 A3.07.04
+A2.07.15 A3.07.05
+A2.07.16 A3.07.06
+A2.07.17 A3.07.04 A3.07.07
+A2.07.18 A3.07.05 A3.07.08
+A2.07.19 A3.07.06 A3.07.09
+A2.07.20 A3.07.08 A3.07.10
+A2.07.21 A3.07.09 A3.07.11
+A2.07.22 A3.07.10
+A2.07.23 A3.07.11
+A2.07.24 A3.07.10 A3.07.12
+A2.07.25 A3.07.11 A3.07.13
+A2.07.26 A3.07.13 A3.07.14
+A2.07.27 A3.07.14
+A2.07.28 A3.06.14 A3.07.14 A3.07.15
+A2.07.29 A3.07.14 A3.07.15
+A2.08.06 A3.08.00
+A2.08.07 A3.08.01 A3.09.00
+A2.08.08 A3.08.01
+A2.08.09 A3.08.02
+A2.08.10 A3.08.00 A3.08.03
+A2.08.11 A3.08.01 A3.08.04
+A2.08.12 A3.08.02 A3.08.05
+A2.08.13 A3.08.03 A3.08.06
+A2.08.14 A3.08.04
+A2.08.15 A3.08.05
+A2.08.16 A3.08.06
+A2.08.17 A3.08.04 A3.08.07
+A2.08.18 A3.08.05 A3.08.08
+A2.08.19 A3.08.06 A3.08.09
+A2.08.20 A3.08.08 A3.08.10
+A2.08.21 A3.08.09 A3.08.11
+A2.08.22 A3.08.10
+A2.08.23 A3.08.11
+A2.08.24 A3.08.10 A3.08.12
+A2.08.25 A3.08.11 A3.08.13
+A2.08.26 A3.08.13 A3.08.14
+A2.08.27 A3.08.14
+A2.08.28 A3.08.14 A3.08.15 A3.09.15
+A2.08.29 A3.08.14 A3.08.15
+A2.09.05 A3.09.01
+A2.09.06 A3.09.02
+A2.09.07 A3.09.02
+A2.09.08 A3.09.01 A3.09.03 A3.10.00
+A2.09.09 A3.09.01 A3.09.02
+A2.09.10 A3.08.01 A3.09.00 A3.09.02 A3.09.04
+A2.09.11 A3.09.01 A3.09.02
+A2.09.12 A3.09.01 A3.09.03 A3.09.05
+A2.09.13 A3.09.04
+A2.09.14 A3.09.03 A3.09.05 A3.09.07 A3.10.05
+A2.09.15 A3.09.01 A3.09.02 A3.09.05
+A2.09.16 A3.09.04 A3.09.06
+A2.09.17 A3.09.05 A3.09.07
+A2.09.18 A3.09.06 A3.09.08
+A2.09.19 A3.09.07
+A2.09.20 A3.08.07 A3.09.09
+A2.09.21 A3.09.08
+A2.09.22 A3.09.09
+A2.09.23 A3.09.08 A3.09.10
+A2.09.24 A3.09.09 A3.09.11
+A2.09.25 A3.09.11 A3.09.12
+A2.09.26 A3.08.12 A3.09.13
+A2.09.27 A3.09.12
+A2.09.28 A3.09.13
+A2.09.29 A3.09.13 A3.09.14 A3.10.14
+A2.09.30 A3.09.13 A3.09.14 A3.09.15
+A2.09.31 A3.09.14 A3.09.15 A3.10.14
+A2.10.06 A3.10.00
+A2.10.07 A3.10.01 A3.10.02
+A2.10.08 A3.10.01 A3.10.02
+A2.10.09 A3.10.00 A3.10.03
+A2.10.10 A3.10.00 A3.10.02 A3.10.03
+A2.10.11 A3.09.03 A3.10.00 A3.10.03 A3.10.05
+A2.10.12 A3.10.01 A3.10.02 A3.10.03 A3.10.04
+A2.10.13 A3.10.01 A3.10.02 A3.10.04 A3.10.06 A3.11.05
+A2.10.14 A3.10.03 A3.10.05
+A2.10.15 A3.10.03 A3.10.04 A3.10.05 A3.10.07
+A2.10.16 A3.09.07 A3.10.05
+A2.10.17 A3.10.04 A3.10.06 A3.10.07 A3.10.08
+A2.10.18 A3.09.07 A3.10.05 A3.10.07 A3.10.09
+A2.10.19 A3.10.07 A3.10.08 A3.10.09 A3.10.10
+A2.10.20 A3.09.07 A3.10.09
+A2.10.21 A3.10.08 A3.10.10
+A2.10.22 A3.10.09 A3.10.10
+A2.10.23 A3.10.10
+A2.10.24 A3.09.10 A3.10.11
+A2.10.25 A3.10.11
+A2.10.26 A3.10.11 A3.10.12
+A2.10.27 A3.09.12 A3.10.13
+A2.10.28 A3.10.13 A3.11.15
+A2.10.29 A3.09.14 A3.10.14 A3.10.15
+A2.10.30 A3.10.14 A3.10.15
+A2.10.31 A3.10.15
+A2.11.02 A3.11.02
+A2.11.03 A3.11.02 A3.11.03
+A2.11.04 A3.11.00 A3.11.03 A3.11.04
+A2.11.05 A3.11.00 A3.11.01 A3.11.04
+A2.11.06 A3.10.01 A3.11.02 A3.11.05
+A2.11.07 A3.11.02 A3.11.05
+A2.11.08 A3.11.02 A3.11.03 A3.11.05 A3.11.06
+A2.11.09 A3.11.03 A3.11.04 A3.11.06 A3.11.07
+A2.11.10 A3.11.04 A3.11.07
+A2.11.11 A3.10.06 A3.11.05
+A2.11.12 A3.10.06 A3.11.05 A3.11.06 A3.11.08
+A2.11.13 A3.11.06 A3.11.07 A3.11.08 A3.11.09
+A2.11.14 A3.11.07 A3.11.09
+A2.11.15 A3.10.06 A3.10.08
+A2.11.16 A3.10.06 A3.10.08 A3.11.08 A3.11.10
+A2.11.17 A3.11.08 A3.11.09 A3.11.10 A3.11.11
+A2.11.18 A3.11.09 A3.11.11
+A2.11.19 A3.10.08 A3.10.10 A3.11.10 A3.11.12
+A2.11.20 A3.11.10 A3.11.11 A3.11.12 A3.11.13
+A2.11.21 A3.11.11 A3.11.13
+A2.11.22 A3.10.10 A3.11.12
+A2.11.23 A3.11.12 A3.11.13
+A2.11.24 A3.11.13
+A2.11.25 A3.10.12 A3.11.14
+A2.11.26 A3.11.14
+A2.11.27 A3.11.15
+A2.11.28 A3.11.15
+A2.11.29 A3.11.15
+A2.11.30 A3.11.15
+A2.12.02 A3.12.02
+A2.12.03 A3.12.02 A3.12.03
+A2.12.04 A3.12.00 A3.12.03 A3.12.04
+A2.12.05 A3.11.01 A3.11.04 A3.12.00 A3.12.01 A3.12.04
+A2.12.06 A3.12.02 A3.12.05 A3.13.02
+A2.12.07 A3.12.02 A3.12.03 A3.12.05 A3.12.06
+A2.12.08 A3.12.02 A3.12.03 A3.12.06
+A2.12.09 A3.12.03 A3.12.04 A3.12.06 A3.12.07
+A2.12.10 A3.11.04 A3.11.07 A3.12.04 A3.12.07
+A2.12.11 A3.12.05 A3.12.06 A3.12.08 A3.13.06
+A2.12.12 A3.12.06 A3.12.08
+A2.12.13 A3.12.06 A3.12.07 A3.12.08 A3.12.09
+A2.12.14 A3.11.07 A3.11.09 A3.12.07 A3.12.09
+A2.12.15 A3.12.08 A3.12.10 A3.13.06 A3.13.08
+A2.12.16 A3.12.08 A3.12.10
+A2.12.17 A3.12.08 A3.12.09 A3.12.10 A3.12.11
+A2.12.18 A3.11.09 A3.11.11 A3.12.09 A3.12.11
+A2.12.19 A3.12.10 A3.12.12
+A2.12.20 A3.12.10 A3.12.11 A3.12.12 A3.12.13
+A2.12.21 A3.11.11 A3.11.13 A3.12.11 A3.12.13
+A2.12.22 A3.12.12
+A2.12.23 A3.12.12 A3.12.13
+A2.12.24 A3.11.13 A3.12.13
+A2.12.25 A3.12.14 A3.13.12
+A2.12.26 A3.11.14 A3.12.14
+A2.12.27 A3.12.15
+A2.12.28 A3.11.15 A3.12.15
+A2.12.29 A3.12.15
+A2.12.30 A3.11.15 A3.12.15
+A2.13.06 A3.13.00
+A2.13.07 A3.13.01
+A2.13.08 A3.13.01 A3.13.02
+A2.13.09 A3.13.00 A3.13.01 A3.13.03
+A2.13.10 A3.13.01 A3.13.02 A3.13.03 A3.13.04
+A2.13.11 A3.13.00 A3.13.03 A3.13.05 A3.14.02
+A2.13.12 A3.13.01 A3.13.02 A3.13.04
+A2.13.13 A3.12.05 A3.13.02 A3.13.04 A3.13.06
+A2.13.14 A3.13.03 A3.13.04 A3.13.05 A3.13.07
+A2.13.15 A3.13.04 A3.13.07
+A2.13.16 A3.13.05 A3.13.07 A3.13.09 A3.14.06
+A2.13.17 A3.13.04 A3.13.06 A3.13.07 A3.13.08
+A2.13.18 A3.13.07 A3.13.09
+A2.13.19 A3.13.07 A3.13.08 A3.13.09 A3.13.10
+A2.13.20 A3.13.09
+A2.13.21 A3.12.10 A3.12.12 A3.13.08 A3.13.10
+A2.13.22 A3.13.09 A3.13.10
+A2.13.23 A3.12.12 A3.13.10
+A2.13.24 A3.13.11 A3.14.09
+A2.13.25 A3.13.11 A3.13.12
+A2.13.26 A3.13.12
+A2.13.27 A3.13.13
+A2.13.28 A3.12.15 A3.13.13
+A2.13.29 A3.13.14 A3.14.13
+A2.13.30 A3.13.14 A3.14.15
+A2.13.31 A3.13.14
+A2.14.04 A3.14.01
+A2.14.05 A3.13.00 A3.14.00 A3.14.02
+A2.14.06 A3.14.00
+A2.14.07 A3.14.00 A3.14.01
+A2.14.08 A3.13.00 A3.14.00 A3.14.02
+A2.14.09 A3.14.00 A3.14.02 A3.14.04
+A2.14.10 A3.14.01 A3.14.03 A3.15.01
+A2.14.11 A3.14.00 A3.14.01 A3.14.04
+A2.14.12 A3.14.02 A3.14.04
+A2.14.13 A3.14.03 A3.14.05
+A2.14.14 A3.13.05 A3.14.02 A3.14.04 A3.14.06
+A2.14.15 A3.14.04
+A2.14.16 A3.14.05
+A2.14.17 A3.14.04 A3.14.06
+A2.14.18 A3.14.05 A3.14.07
+A2.14.19 A3.13.09 A3.14.06
+A2.14.20 A3.14.08 A3.15.07
+A2.14.21 A3.14.07 A3.14.09
+A2.14.22 A3.14.08 A3.14.10
+A2.14.23 A3.14.09
+A2.14.24 A3.14.10
+A2.14.25 A3.14.10 A3.14.11
+A2.14.26 A3.14.12 A3.15.12
+A2.14.27 A3.13.13 A3.14.11
+A2.14.28 A3.14.12 A3.14.13 A3.14.14
+A2.14.29 A3.14.13 A3.14.14 A3.14.15
+A2.14.30 A3.14.14 A3.14.15
+A2.14.31 A3.14.14 A3.14.15
+A2.15.05 A3.15.02
+A2.15.06 A3.15.00
+A2.15.07 A3.14.01 A3.15.01
+A2.15.08 A3.15.01 A3.15.02
+A2.15.09 A3.15.02
+A2.15.10 A3.15.03
+A2.15.11 A3.15.01 A3.15.04
+A2.15.12 A3.15.02 A3.15.05
+A2.15.13 A3.15.03 A3.15.06
+A2.15.14 A3.15.04 A3.15.07
+A2.15.15 A3.15.05 A3.15.08
+A2.15.16 A3.15.06 A3.15.09
+A2.15.17 A3.15.07
+A2.15.18 A3.15.08
+A2.15.19 A3.15.09
+A2.15.20 A3.15.08 A3.15.10
+A2.15.21 A3.15.09 A3.15.11
+A2.15.22 A3.15.10 A3.15.12
+A2.15.23 A3.15.11 A3.15.13
+A2.15.24 A3.15.12
+A2.15.25 A3.15.13
+A2.15.26 A3.15.13 A3.15.14
+A2.15.27 A3.14.14 A3.15.14 A3.15.15
+A2.15.28 A3.14.14 A3.15.15
+A2.15.29 A3.15.15
+C1.00.14 C2.00.00
+C1.00.15 C2.00.00 C2.00.01
+C1.00.16 C2.00.01 C2.00.02
+C1.00.17 C2.00.03
+C1.00.18 C2.00.03 C2.00.04
+C1.00.19 C2.00.04
+C1.00.20 C2.00.05
+C1.00.21 C2.00.05 C2.00.06
+C1.00.22 C2.00.06
+C1.00.23 C2.00.07 C2.00.08
+C1.00.24 C2.00.08
+C1.00.25 C2.00.09
+C1.00.26 C2.00.09 C2.00.10
+C1.00.27 C2.00.10
+C1.00.28 C2.00.11 C2.01.10
+C1.00.29 C2.00.11
+C1.00.30 C2.00.12
+C1.00.31 C2.00.12 C2.00.13
+C1.00.32 C2.00.13
+C1.00.33 C2.00.14
+C1.00.34 C2.00.15
+C1.00.35 C2.00.15 C2.00.16
+C1.00.36 C2.00.16
+C1.00.37 C2.00.17
+C1.00.38 C2.00.18
+C1.00.39 C2.00.18 C2.00.19
+C1.00.40 C2.00.19
+C1.00.41 C2.01.20
+C1.00.42 C2.00.20
+C1.00.43 C2.00.20 C2.00.21
+C1.00.44 C2.00.21
+C1.00.45 C2.00.22
+C1.00.46 C2.00.22 C2.00.23
+C1.00.47 C2.00.23
+C1.00.48 C2.00.24
+C1.00.49 C2.00.24 C2.00.25
+C1.00.50 C2.00.25
+C1.00.51 C2.00.24 C2.00.25 C2.00.26 C2.01.26
+C1.00.52 C2.00.25 C2.00.26
+C1.00.53 C2.01.26 C2.01.28
+C1.00.54 C2.00.26 C2.00.27
+C1.00.55 C2.00.26 C2.00.27
+C1.00.56 C2.00.26 C2.00.27
+C1.00.57 C2.00.27
+C1.00.58 C2.00.27
+C1.00.59 C2.00.27
+C1.00.60 C2.00.27 C2.00.28
+C1.00.61 C2.00.27 C2.00.28 C2.00.29
+C1.00.62 C2.00.27 C2.00.29
+C1.01.12 C2.01.01
+C1.01.13 C2.00.03
+C1.01.14 C2.01.06
+C1.01.15 C2.01.01 C2.01.03
+C1.01.16 C2.01.02 C2.01.04
+C1.01.17 C2.01.00 C2.01.05 C2.02.06
+C1.01.18 C2.01.06
+C1.01.19 C2.01.04
+C1.01.20 C2.01.05
+C1.01.21 C2.00.07
+C1.01.22 C2.01.06 C2.01.07
+C1.01.23 C2.01.09
+C1.01.24 C2.01.07
+C1.01.25 C2.01.08
+C1.01.26 C2.01.10
+C1.01.27 C2.01.09 C2.01.11
+C1.01.28 C2.01.12
+C1.01.29 C2.01.11
+C1.01.30 C2.01.12 C2.01.15
+C1.01.31 C2.01.13
+C1.01.32 C2.01.14
+C1.01.33 C2.00.14 C2.01.13
+C1.01.34 C2.01.15
+C1.01.35 C2.01.14 C2.01.17
+C1.01.36 C2.01.16
+C1.01.37 C2.01.17
+C1.01.38 C2.00.17 C2.01.16
+C1.01.39 C2.01.18
+C1.01.40 C2.01.19
+C1.01.41 C2.01.18 C2.01.20
+C1.01.42 C2.01.21
+C1.01.43 C2.01.21 C2.01.22
+C1.01.44 C2.01.23
+C1.01.45 C2.01.22
+C1.01.46 C2.01.23 C2.01.24
+C1.01.47 C2.01.24
+C1.01.48 C2.01.23 C2.01.24 C2.01.25 C2.02.24
+C1.01.49 C2.01.24 C2.01.25
+C1.01.50 C2.00.24 C2.01.26
+C1.01.51 C2.01.25 C2.01.27
+C1.01.52 C2.01.26 C2.01.28
+C1.01.53 C2.01.26 C2.01.28
+C1.01.54 C2.01.28
+C1.01.55 C2.01.28
+C1.01.56 C2.01.28 C2.01.29
+C1.01.57 C2.01.28
+C1.01.58 C2.01.28 C2.01.29 C2.01.30
+C1.01.59 C2.01.28 C2.01.30
+C1.01.60 C2.01.29 C2.01.30 C2.01.31 C2.02.29
+C1.01.61 C2.01.30 C2.01.31 C2.02.29 C2.02.30
+C1.01.62 C2.00.28 C2.01.30 C2.01.31
+C1.02.12 C2.02.03
+C1.02.13 C2.01.00 C2.02.00 C2.02.06
+C1.02.14 C2.02.02 C2.02.04 C2.03.01
+C1.02.15 C2.02.01 C2.02.07
+C1.02.16 C2.02.03 C2.02.05 C2.02.07
+C1.02.17 C2.02.00 C2.02.06
+C1.02.18 C2.02.02 C2.02.04 C2.02.08
+C1.02.19 C2.02.07
+C1.02.20 C2.02.09
+C1.02.21 C2.01.08 C2.02.06
+C1.02.22 C2.02.08
+C1.02.23 C2.02.10
+C1.02.24 C2.02.09 C2.02.11
+C1.02.25 C2.02.08 C2.03.06
+C1.02.26 C2.02.12
+C1.02.27 C2.02.10 C2.02.14
+C1.02.28 C2.02.11
+C1.02.29 C2.02.12 C2.02.13
+C1.02.30 C2.02.12 C2.02.15
+C1.02.31 C2.02.14
+C1.02.32 C2.02.12 C2.02.13 C2.02.15 C2.02.17
+C1.02.33 C2.02.15
+C1.02.34 C2.02.16
+C1.02.35 C2.02.15 C2.02.17
+C1.02.36 C2.02.18
+C1.02.37 C2.01.19 C2.02.16
+C1.02.38 C2.02.17 C2.03.15
+C1.02.39 C2.02.18 C2.02.19
+C1.02.40 C2.02.18 C2.02.20
+C1.02.41 C2.02.19 C2.02.21
+C1.02.42 C2.02.18 C2.02.19 C2.02.20 C2.02.22
+C1.02.43 C2.02.20
+C1.02.44 C2.02.19 C2.02.21 C2.02.22 C2.02.23
+C1.02.45 C2.02.20 C2.02.22
+C1.02.46 C2.02.22 C2.02.23
+C1.02.47 C2.01.23 C2.02.24
+C1.02.48 C2.02.23 C2.03.22
+C1.02.49 C2.02.24 C2.02.25
+C1.02.50 C2.02.25 C2.02.26
+C1.02.51 C2.01.25 C2.01.27 C2.02.24 C2.02.25
+C1.02.52 C2.01.27 C2.02.25 C2.02.26 C2.02.27
+C1.02.53 C2.01.27 C2.02.27
+C1.02.54 C2.02.27
+C1.02.55 C2.01.27 C2.02.27
+C1.02.56 C2.02.27 C2.02.28
+C1.02.57 C2.02.27
+C1.02.58 C2.02.27 C2.02.28
+C1.02.59 C2.01.29 C2.02.29
+C1.02.60 C2.02.28
+C1.02.61 C2.02.29 C2.02.30 C2.02.31
+C1.02.62 C2.02.30 C2.02.31
+C1.03.12 C2.03.00
+C1.03.13 C2.03.00
+C1.03.14 C2.03.00
+C1.03.15 C2.03.01
+C1.03.16 C2.03.01 C2.03.02
+C1.03.17 C2.03.02 C2.03.03
+C1.03.18 C2.03.03 C2.03.04
+C1.03.19 C2.03.04 C2.03.05
+C1.03.20 C2.02.04 C2.02.08 C2.03.01 C2.03.06
+C1.03.21 C2.03.01 C2.03.02 C2.03.06 C2.03.07
+C1.03.22 C2.03.02 C2.03.03 C2.03.07 C2.03.08
+C1.03.23 C2.03.03 C2.03.04 C2.03.08 C2.03.09
+C1.03.24 C2.03.04 C2.03.05 C2.03.09 C2.03.10
+C1.03.25 C2.03.06 C2.03.07
+C1.03.26 C2.03.07 C2.03.08
+C1.03.27 C2.03.08 C2.03.09
+C1.03.28 C2.03.09 C2.03.10
+C1.03.29 C2.02.13 C2.03.11
+C1.03.30 C2.03.11 C2.03.12
+C1.03.31 C2.03.12 C2.03.13
+C1.03.32 C2.03.13 C2.03.14
+C1.03.33 C2.02.13 C2.02.17 C2.03.11 C2.03.15
+C1.03.34 C2.03.11 C2.03.12 C2.03.15 C2.03.16
+C1.03.35 C2.03.12 C2.03.13 C2.03.16 C2.03.17
+C1.03.36 C2.03.13 C2.03.14 C2.03.17 C2.03.18
+C1.03.37 C2.03.15 C2.03.16
+C1.03.38 C2.03.16 C2.03.17
+C1.03.39 C2.03.17 C2.03.18
+C1.03.40 C2.02.21 C2.03.19
+C1.03.41 C2.03.19 C2.03.20
+C1.03.42 C2.03.20 C2.03.21
+C1.03.43 C2.02.21 C2.02.23 C2.03.19 C2.03.22
+C1.03.44 C2.03.19 C2.03.20 C2.03.22 C2.03.23
+C1.03.45 C2.03.20 C2.03.21 C2.03.23 C2.03.24
+C1.03.46 C2.03.22 C2.03.23
+C1.03.47 C2.03.23 C2.03.24
+C1.03.48 C2.02.26 C2.03.25
+C1.03.49 C2.03.25 C2.03.26
+C1.03.50 C2.02.26 C2.03.25
+C1.03.51 C2.03.25
+C1.03.52 C2.03.25 C2.03.26
+C1.03.53 C2.03.26
+C1.03.54 C2.02.27 C2.02.28
+C1.03.55 C2.02.28
+C1.03.56 C2.02.28 C2.03.27
+C1.03.57 C2.03.27 C2.03.28
+C1.03.58 C2.02.28
+C1.03.59 C2.02.28 C2.03.27 C2.03.29
+C1.03.60 C2.03.27 C2.03.28 C2.03.29 C2.03.30
+C1.03.61 C2.02.28 C2.03.29
+C1.03.62 C2.03.29 C2.03.30
+C1.04.12 C2.04.00
+C1.04.13 C2.04.00
+C1.04.14 C2.03.00 C2.04.00
+C1.04.15 C2.04.01 C2.04.02
+C1.04.16 C2.04.02 C2.04.03
+C1.04.17 C2.04.03 C2.04.04
+C1.04.18 C2.04.04 C2.04.05
+C1.04.19 C2.03.05 C2.04.05
+C1.04.20 C2.04.01 C2.04.02 C2.04.06 C2.04.07
+C1.04.21 C2.04.02 C2.04.03 C2.04.07 C2.04.08
+C1.04.22 C2.04.03 C2.04.04 C2.04.08 C2.04.09
+C1.04.23 C2.04.04 C2.04.05 C2.04.09 C2.04.10
+C1.04.24 C2.03.05 C2.03.10 C2.04.05 C2.04.10
+C1.04.25 C2.04.07 C2.04.08
+C1.04.26 C2.04.08 C2.04.09
+C1.04.27 C2.04.09 C2.04.10
+C1.04.28 C2.03.10 C2.04.10
+C1.04.29 C2.04.11 C2.04.12
+C1.04.30 C2.04.12 C2.04.13
+C1.04.31 C2.04.13 C2.04.14
+C1.04.32 C2.03.14 C2.04.14
+C1.04.33 C2.04.11 C2.04.12 C2.04.15 C2.04.16
+C1.04.34 C2.04.12 C2.04.13 C2.04.16 C2.04.17
+C1.04.35 C2.04.13 C2.04.14 C2.04.17 C2.04.18
+C1.04.36 C2.03.14 C2.03.18 C2.04.14 C2.04.18
+C1.04.37 C2.04.16 C2.04.17
+C1.04.38 C2.04.17 C2.04.18
+C1.04.39 C2.03.18 C2.04.18
+C1.04.40 C2.04.19 C2.04.20
+C1.04.41 C2.04.20 C2.04.21
+C1.04.42 C2.03.21 C2.04.21
+C1.04.43 C2.04.19 C2.04.20 C2.04.22 C2.04.23
+C1.04.44 C2.04.20 C2.04.21 C2.04.23 C2.04.24
+C1.04.45 C2.03.21 C2.03.24 C2.04.21 C2.04.24
+C1.04.46 C2.04.23 C2.04.24
+C1.04.47 C2.03.24 C2.04.24
+C1.04.48 C2.04.25 C2.04.26
+C1.04.49 C2.03.26 C2.04.26
+C1.04.50 C2.04.25
+C1.04.51 C2.04.25 C2.04.26
+C1.04.52 C2.04.26
+C1.04.53 C2.03.26 C2.04.26
+C1.04.54 C2.05.28
+C1.04.55 C2.04.27 C2.05.28
+C1.04.56 C2.04.27 C2.04.28
+C1.04.57 C2.03.28 C2.04.28
+C1.04.58 C2.04.27 C2.04.29 C2.05.28
+C1.04.59 C2.04.27 C2.04.28 C2.04.29 C2.04.30
+C1.04.60 C2.03.28 C2.03.30 C2.04.28 C2.04.30
+C1.04.61 C2.04.29 C2.04.30
+C1.04.62 C2.03.30 C2.04.30
+C1.05.09 C2.05.02
+C1.05.10 C2.05.07
+C1.05.11 C2.05.01 C2.05.06
+C1.05.12 C2.05.03
+C1.05.13 C2.04.01 C2.05.02 C2.05.04
+C1.05.14 C2.05.00 C2.05.02 C2.05.07 C2.05.08
+C1.05.15 C2.05.03 C2.05.05 C2.05.07
+C1.05.16 C2.05.06 C2.05.09
+C1.05.17 C2.04.01 C2.04.06 C2.05.02 C2.05.04 C2.05.08
+C1.05.18 C2.05.07 C2.05.08
+C1.05.19 C2.05.09 C2.05.10
+C1.05.20 C2.05.06 C2.05.09 C2.05.11 C2.06.08
+C1.05.21 C2.04.06 C2.05.08
+C1.05.22 C2.05.10 C2.05.12
+C1.05.23 C2.05.09 C2.05.10 C2.05.11 C2.05.14
+C1.05.24 C2.04.06 C2.04.07
+C1.05.25 C2.05.12 C2.05.13
+C1.05.26 C2.05.10 C2.05.12 C2.05.14 C2.05.15
+C1.05.27 C2.05.11 C2.05.14
+C1.05.28 C2.04.11 C2.05.13
+C1.05.29 C2.05.12 C2.05.13 C2.05.15 C2.05.17
+C1.05.30 C2.05.14 C2.05.15
+C1.05.31 C2.04.11 C2.04.15 C2.05.13 C2.05.17
+C1.05.32 C2.05.15 C2.05.17
+C1.05.33 C2.05.16 C2.05.18
+C1.05.34 C2.04.15 C2.05.17
+C1.05.35 C2.05.16 C2.05.18 C2.05.20 C2.06.19
+C1.05.36 C2.05.18 C2.05.19
+C1.05.37 C2.04.15 C2.04.16
+C1.05.38 C2.05.19 C2.05.21
+C1.05.39 C2.05.18 C2.05.19 C2.05.20 C2.05.22
+C1.05.40 C2.04.19 C2.05.21
+C1.05.41 C2.05.19 C2.05.21 C2.05.22 C2.05.23
+C1.05.42 C2.05.20 C2.05.22
+C1.05.43 C2.04.19 C2.04.22 C2.05.21 C2.05.23
+C1.05.44 C2.05.22 C2.05.23
+C1.05.45 C2.04.22 C2.05.23
+C1.05.46 C2.05.24 C2.05.25
+C1.05.47 C2.04.22 C2.04.23
+C1.05.48 C2.05.25 C2.05.26
+C1.05.49 C2.04.25 C2.05.26
+C1.05.50 C2.05.25 C2.05.26 C2.05.27 C2.06.27
+C1.05.51 C2.04.25 C2.05.26 C2.05.27 C2.05.28
+C1.05.52 C2.05.27
+C1.05.53 C2.05.27 C2.05.28
+C1.05.54 C2.05.27
+C1.05.55 C2.05.28
+C1.05.56 C2.05.27 C2.05.28
+C1.05.57 C2.05.28
+C1.05.58 C2.05.29 C2.05.30
+C1.05.59 C2.04.29 C2.05.28
+C1.05.60 C2.05.30 C2.05.31
+C1.05.61 C2.05.30 C2.05.31 C2.06.31
+C1.05.62 C2.05.31
+C1.06.11 C2.06.04
+C1.06.12 C2.06.00 C2.06.05
+C1.06.13 C2.06.04 C2.07.03
+C1.06.14 C2.06.02 C2.06.06
+C1.06.15 C2.06.01 C2.06.05
+C1.06.16 C2.06.02 C2.06.04 C2.06.06 C2.06.07
+C1.06.17 C2.05.01 C2.05.06 C2.06.00 C2.06.03 C2.06.05 C2.06.08
+C1.06.18 C2.06.06 C2.06.09
+C1.06.19 C2.06.04 C2.06.07
+C1.06.20 C2.06.05 C2.06.08
+C1.06.21 C2.06.10 C2.07.07
+C1.06.22 C2.06.06 C2.06.07 C2.06.09 C2.06.11
+C1.06.23 C2.06.09 C2.06.12
+C1.06.24 C2.06.07 C2.06.11
+C1.06.25 C2.05.11 C2.06.08
+C1.06.26 C2.06.10 C2.06.13
+C1.06.27 C2.06.09 C2.06.11 C2.06.12 C2.06.15
+C1.06.28 C2.06.12 C2.06.14
+C1.06.29 C2.06.11 C2.06.15
+C1.06.30 C2.06.12 C2.06.14 C2.06.15 C2.06.17
+C1.06.31 C2.06.13 C2.06.16
+C1.06.32 C2.05.16 C2.06.14
+C1.06.33 C2.06.13 C2.06.16 C2.07.14 C2.07.17
+C1.06.34 C2.06.15 C2.06.17
+C1.06.35 C2.05.16 C2.06.14 C2.06.17 C2.06.19
+C1.06.36 C2.06.16 C2.06.18
+C1.06.37 C2.06.17 C2.06.19
+C1.06.38 C2.06.16 C2.06.18 C2.06.20 C2.07.17
+C1.06.39 C2.06.18 C2.06.21
+C1.06.40 C2.05.20 C2.06.19
+C1.06.41 C2.06.18 C2.06.20 C2.06.21 C2.06.22
+C1.06.42 C2.06.21 C2.06.23
+C1.06.43 C2.06.21 C2.06.22 C2.06.23 C2.06.24
+C1.06.44 C2.05.24 C2.06.23
+C1.06.45 C2.06.22 C2.06.24
+C1.06.46 C2.05.24 C2.06.23 C2.06.24 C2.06.25
+C1.06.47 C2.06.24 C2.06.25
+C1.06.48 C2.05.24 C2.05.25 C2.06.25 C2.06.27
+C1.06.49 C2.06.25 C2.06.27
+C1.06.50 C2.06.26 C2.06.28
+C1.06.51 C2.05.27 C2.06.27
+C1.06.52 C2.06.28
+C1.06.53 C2.06.28
+C1.06.54 C2.06.28
+C1.06.55 C2.05.29 C2.06.28
+C1.06.56 C2.06.28 C2.06.29
+C1.06.57 C2.05.29
+C1.06.58 C2.06.28 C2.06.30
+C1.06.59 C2.06.29
+C1.06.60 C2.06.30
+C1.06.61 C2.05.30 C2.06.29 C2.06.31
+C1.06.62 C2.06.30 C2.06.31
+C1.07.13 C2.07.03 C2.07.04
+C1.07.14 C2.07.04
+C1.07.15 C2.07.00 C2.07.05
+C1.07.16 C2.07.00 C2.07.02 C2.07.05 C2.07.06
+C1.07.17 C2.07.01 C2.07.02 C2.07.06
+C1.07.18 C2.07.03 C2.07.07
+C1.07.19 C2.07.03 C2.07.04 C2.07.07 C2.07.08
+C1.07.20 C2.07.04 C2.07.08
+C1.07.21 C2.07.05 C2.07.09
+C1.07.22 C2.07.05 C2.07.06 C2.07.09 C2.07.10
+C1.07.23 C2.07.06 C2.07.10
+C1.07.24 C2.06.10 C2.07.07 C2.07.08 C2.07.11
+C1.07.25 C2.07.08 C2.07.11
+C1.07.26 C2.07.09 C2.07.12
+C1.07.27 C2.07.09 C2.07.10 C2.07.12 C2.07.13
+C1.07.28 C2.07.10 C2.07.13
+C1.07.29 C2.06.10 C2.06.13 C2.07.11 C2.07.14
+C1.07.30 C2.07.11 C2.07.14
+C1.07.31 C2.07.12 C2.07.15
+C1.07.32 C2.07.12 C2.07.13 C2.07.15 C2.07.16
+C1.07.33 C2.07.13 C2.07.16
+C1.07.34 C2.07.14 C2.07.17
+C1.07.35 C2.07.15 C2.07.18
+C1.07.36 C2.07.15 C2.07.16 C2.07.18 C2.07.19
+C1.07.37 C2.07.16 C2.07.19
+C1.07.38 C2.06.20 C2.07.17
+C1.07.39 C2.07.18 C2.07.20
+C1.07.40 C2.07.18 C2.07.19 C2.07.20 C2.07.21
+C1.07.41 C2.07.19 C2.07.21
+C1.07.42 C2.06.20 C2.06.22
+C1.07.43 C2.07.20 C2.07.22
+C1.07.44 C2.07.20 C2.07.21 C2.07.22 C2.07.23
+C1.07.45 C2.07.21 C2.07.23
+C1.07.46 C2.07.22 C2.07.24
+C1.07.47 C2.07.22 C2.07.23 C2.07.24 C2.07.25
+C1.07.48 C2.07.23 C2.07.25
+C1.07.49 C2.06.26 C2.07.24
+C1.07.50 C2.06.26 C2.07.24 C2.07.25 C2.07.26
+C1.07.51 C2.07.25 C2.07.26
+C1.07.52 C2.06.26 C2.06.28 C2.07.26 C2.07.27
+C1.07.53 C2.07.26 C2.07.27
+C1.07.54 C2.07.27
+C1.07.55 C2.07.27
+C1.07.56 C2.07.27
+C1.07.57 C2.07.27 C2.07.28
+C1.07.58 C2.07.27 C2.07.28 C2.07.29
+C1.07.59 C2.07.27 C2.07.29
+C1.07.60 C2.06.31 C2.07.28
+C1.07.61 C2.07.28 C2.07.29
+C1.07.62 C2.07.29
+C1.08.07 C2.08.03
+C1.08.12 C2.08.03 C2.08.04
+C1.08.13 C2.08.04
+C1.08.14 C2.08.02 C2.08.05
+C1.08.15 C2.08.01 C2.08.02 C2.08.05 C2.08.06
+C1.08.16 C2.08.00 C2.08.01 C2.08.06
+C1.08.17 C2.08.03 C2.08.07
+C1.08.18 C2.08.03 C2.08.04 C2.08.07 C2.08.08
+C1.08.19 C2.08.04 C2.08.08
+C1.08.20 C2.08.05 C2.08.09
+C1.08.21 C2.08.05 C2.08.06 C2.08.09 C2.08.10
+C1.08.22 C2.08.06 C2.08.10
+C1.08.23 C2.08.07 C2.08.08 C2.08.11 C2.09.10
+C1.08.24 C2.08.08 C2.08.11
+C1.08.25 C2.08.09 C2.08.12
+C1.08.26 C2.08.09 C2.08.10 C2.08.12 C2.08.13
+C1.08.27 C2.08.10 C2.08.13
+C1.08.28 C2.08.11 C2.08.14 C2.09.10 C2.09.13
+C1.08.29 C2.08.11 C2.08.14
+C1.08.30 C2.08.12 C2.08.15
+C1.08.31 C2.08.12 C2.08.13 C2.08.15 C2.08.16
+C1.08.32 C2.08.13 C2.08.16
+C1.08.33 C2.08.14 C2.08.17
+C1.08.34 C2.08.15 C2.08.18
+C1.08.35 C2.08.15 C2.08.16 C2.08.18 C2.08.19
+C1.08.36 C2.08.16 C2.08.19
+C1.08.37 C2.08.17 C2.09.20
+C1.08.38 C2.08.18 C2.08.20
+C1.08.39 C2.08.18 C2.08.19 C2.08.20 C2.08.21
+C1.08.40 C2.08.19 C2.08.21
+C1.08.41 C2.09.20 C2.09.22
+C1.08.42 C2.08.20 C2.08.22
+C1.08.43 C2.08.20 C2.08.21 C2.08.22 C2.08.23
+C1.08.44 C2.08.21 C2.08.23
+C1.08.45 C2.08.22 C2.08.24
+C1.08.46 C2.08.22 C2.08.23 C2.08.24 C2.08.25
+C1.08.47 C2.08.23 C2.08.25
+C1.08.48 C2.08.24 C2.09.26
+C1.08.49 C2.08.24 C2.08.25 C2.08.26 C2.09.26
+C1.08.50 C2.08.25 C2.08.26
+C1.08.51 C2.08.26 C2.08.27 C2.09.26 C2.09.28
+C1.08.52 C2.08.26 C2.08.27
+C1.08.53 C2.09.28
+C1.08.54 C2.08.27
+C1.08.55 C2.08.27
+C1.08.56 C2.08.27
+C1.08.57 C2.08.27 C2.08.28
+C1.08.58 C2.08.27 C2.08.28 C2.08.29
+C1.08.59 C2.08.27 C2.08.29
+C1.08.60 C2.08.28 C2.09.31
+C1.08.61 C2.08.28 C2.08.29
+C1.08.62 C2.08.29
+C1.09.11 C2.09.02 C2.09.04
+C1.09.12 C2.09.00 C2.09.01 C2.09.05
+C1.09.13 C2.08.03 C2.09.04
+C1.09.14 C2.09.06
+C1.09.15 C2.09.01 C2.09.03 C2.09.05
+C1.09.16 C2.09.02 C2.09.04 C2.09.06 C2.09.07
+C1.09.17 C2.09.00 C2.09.05 C2.09.08 C2.10.06
+C1.09.18 C2.09.06 C2.09.09
+C1.09.19 C2.09.04 C2.09.07
+C1.09.20 C2.09.05 C2.09.08
+C1.09.21 C2.08.07 C2.09.10
+C1.09.22 C2.09.06 C2.09.07 C2.09.09 C2.09.11
+C1.09.23 C2.09.09 C2.09.12
+C1.09.24 C2.09.07 C2.09.11
+C1.09.25 C2.09.08 C2.10.11
+C1.09.26 C2.09.10 C2.09.13
+C1.09.27 C2.09.09 C2.09.11 C2.09.12 C2.09.15
+C1.09.28 C2.09.12 C2.09.14
+C1.09.29 C2.09.11 C2.09.15
+C1.09.30 C2.09.12 C2.09.14 C2.09.15 C2.09.17
+C1.09.31 C2.09.13 C2.09.16
+C1.09.32 C2.09.14 C2.10.16
+C1.09.33 C2.08.14 C2.08.17 C2.09.13 C2.09.16
+C1.09.34 C2.09.15 C2.09.17
+C1.09.35 C2.09.14 C2.09.17 C2.09.19 C2.10.16
+C1.09.36 C2.09.16 C2.09.18
+C1.09.37 C2.09.17 C2.09.19
+C1.09.38 C2.08.17 C2.09.16 C2.09.18 C2.09.20
+C1.09.39 C2.09.18 C2.09.21
+C1.09.40 C2.09.19 C2.10.20
+C1.09.41 C2.09.18 C2.09.20 C2.09.21 C2.09.22
+C1.09.42 C2.09.21 C2.09.23
+C1.09.43 C2.09.21 C2.09.22 C2.09.23 C2.09.24
+C1.09.44 C2.09.23 C2.10.24
+C1.09.45 C2.09.22 C2.09.24
+C1.09.46 C2.09.23 C2.09.24 C2.09.25 C2.10.24
+C1.09.47 C2.09.24 C2.09.25
+C1.09.48 C2.09.25 C2.09.27 C2.10.24 C2.10.25
+C1.09.49 C2.09.25 C2.09.27
+C1.09.50 C2.09.26 C2.09.28
+C1.09.51 C2.09.27 C2.10.27
+C1.09.52 C2.09.28
+C1.09.53 C2.09.28
+C1.09.54 C2.09.28 C2.09.29
+C1.09.55 C2.09.28 C2.09.29 C2.09.30
+C1.09.56 C2.09.29 C2.10.29
+C1.09.57 C2.09.28 C2.09.30
+C1.09.58 C2.09.29 C2.09.30 C2.09.31 C2.10.29
+C1.09.59 C2.09.30 C2.09.31
+C1.09.60 C2.09.31 C2.10.29 C2.10.30
+C1.09.61 C2.09.31 C2.10.30
+C1.09.62 C2.09.31
+C1.10.10 C2.10.02
+C1.10.11 C2.10.07
+C1.10.12 C2.09.00 C2.10.00 C2.10.06
+C1.10.13 C2.10.03
+C1.10.14 C2.10.02 C2.10.04 C2.11.01
+C1.10.15 C2.10.01 C2.10.02 C2.10.07 C2.10.08
+C1.10.16 C2.10.03 C2.10.05 C2.10.07
+C1.10.17 C2.10.06 C2.10.09
+C1.10.18 C2.10.02 C2.10.04 C2.10.08 C2.11.01 C2.11.06
+C1.10.19 C2.10.07 C2.10.08
+C1.10.20 C2.10.09 C2.10.10
+C1.10.21 C2.09.08 C2.10.06 C2.10.09 C2.10.11
+C1.10.22 C2.10.08 C2.11.06
+C1.10.23 C2.10.10 C2.10.12
+C1.10.24 C2.10.09 C2.10.10 C2.10.11 C2.10.14
+C1.10.25 C2.11.06 C2.11.07
+C1.10.26 C2.10.12 C2.10.13
+C1.10.27 C2.10.10 C2.10.12 C2.10.14 C2.10.15
+C1.10.28 C2.10.11 C2.10.14
+C1.10.29 C2.10.13 C2.11.11
+C1.10.30 C2.10.12 C2.10.13 C2.10.15 C2.10.17
+C1.10.31 C2.10.14 C2.10.15
+C1.10.32 C2.10.13 C2.10.17 C2.11.11 C2.11.15
+C1.10.33 C2.10.15 C2.10.17
+C1.10.34 C2.10.16 C2.10.18
+C1.10.35 C2.10.17 C2.11.15
+C1.10.36 C2.09.19 C2.10.16 C2.10.18 C2.10.20
+C1.10.37 C2.10.18 C2.10.19
+C1.10.38 C2.11.15 C2.11.16
+C1.10.39 C2.10.19 C2.10.21
+C1.10.40 C2.10.18 C2.10.19 C2.10.20 C2.10.22
+C1.10.41 C2.10.21 C2.11.19
+C1.10.42 C2.10.19 C2.10.21 C2.10.22 C2.10.23
+C1.10.43 C2.10.20 C2.10.22
+C1.10.44 C2.10.21 C2.10.23 C2.11.19 C2.11.22
+C1.10.45 C2.10.22 C2.10.23
+C1.10.46 C2.10.23 C2.11.22
+C1.10.47 C2.10.24 C2.10.25
+C1.10.48 C2.11.22 C2.11.23
+C1.10.49 C2.10.25 C2.10.26
+C1.10.50 C2.10.26 C2.11.25
+C1.10.51 C2.09.27 C2.10.25 C2.10.26 C2.10.27
+C1.10.52 C2.10.26 C2.10.27 C2.10.28 C2.11.25
+C1.10.53 C2.10.27
+C1.10.54 C2.10.27 C2.10.28
+C1.10.55 C2.10.27
+C1.10.56 C2.10.28
+C1.10.57 C2.10.27 C2.10.28
+C1.10.58 C2.10.28
+C1.10.59 C2.10.29 C2.10.30
+C1.10.60 C2.10.28 C2.11.29
+C1.10.61 C2.10.30 C2.10.31
+C1.10.62 C2.10.31
+C1.11.12 C2.11.00
+C1.11.13 C2.11.00
+C1.11.14 C2.11.00 C2.12.00
+C1.11.15 C2.11.01 C2.11.02
+C1.11.16 C2.11.02 C2.11.03
+C1.11.17 C2.11.03 C2.11.04
+C1.11.18 C2.11.04 C2.11.05
+C1.11.19 C2.11.05 C2.12.05
+C1.11.20 C2.11.01 C2.11.02 C2.11.06 C2.11.07
+C1.11.21 C2.11.02 C2.11.03 C2.11.07 C2.11.08
+C1.11.22 C2.11.03 C2.11.04 C2.11.08 C2.11.09
+C1.11.23 C2.11.04 C2.11.05 C2.11.09 C2.11.10
+C1.11.24 C2.11.05 C2.11.10 C2.12.05 C2.12.10
+C1.11.25 C2.11.07 C2.11.08
+C1.11.26 C2.11.08 C2.11.09
+C1.11.27 C2.11.09 C2.11.10
+C1.11.28 C2.11.10 C2.12.10
+C1.11.29 C2.11.11 C2.11.12
+C1.11.30 C2.11.12 C2.11.13
+C1.11.31 C2.11.13 C2.11.14
+C1.11.32 C2.11.14 C2.12.14
+C1.11.33 C2.11.11 C2.11.12 C2.11.15 C2.11.16
+C1.11.34 C2.11.12 C2.11.13 C2.11.16 C2.11.17
+C1.11.35 C2.11.13 C2.11.14 C2.11.17 C2.11.18
+C1.11.36 C2.11.14 C2.11.18 C2.12.14 C2.12.18
+C1.11.37 C2.11.16 C2.11.17
+C1.11.38 C2.11.17 C2.11.18
+C1.11.39 C2.11.18 C2.12.18
+C1.11.40 C2.11.19 C2.11.20
+C1.11.41 C2.11.20 C2.11.21
+C1.11.42 C2.11.21 C2.12.21
+C1.11.43 C2.11.19 C2.11.20 C2.11.22 C2.11.23
+C1.11.44 C2.11.20 C2.11.21 C2.11.23 C2.11.24
+C1.11.45 C2.11.21 C2.11.24 C2.12.21 C2.12.24
+C1.11.46 C2.11.23 C2.11.24
+C1.11.47 C2.11.24 C2.12.24
+C1.11.48 C2.11.25 C2.11.26
+C1.11.49 C2.11.26 C2.12.26
+C1.11.50 C2.11.25
+C1.11.51 C2.11.25 C2.11.26
+C1.11.52 C2.11.26
+C1.11.53 C2.11.26 C2.12.26
+C1.11.54 C2.10.28
+C1.11.55 C2.10.28 C2.11.27
+C1.11.56 C2.11.27 C2.11.28
+C1.11.57 C2.11.28 C2.12.28
+C1.11.58 C2.10.28 C2.11.27 C2.11.29
+C1.11.59 C2.11.27 C2.11.28 C2.11.29 C2.11.30
+C1.11.60 C2.11.28 C2.11.30 C2.12.28 C2.12.30
+C1.11.61 C2.11.29 C2.11.30
+C1.11.62 C2.11.30 C2.12.30
+C1.12.12 C2.12.00
+C1.12.13 C2.12.00
+C1.12.14 C2.12.00
+C1.12.15 C2.12.01 C2.13.04
+C1.12.16 C2.12.01 C2.12.02
+C1.12.17 C2.12.02 C2.12.03
+C1.12.18 C2.12.03 C2.12.04
+C1.12.19 C2.12.04 C2.12.05
+C1.12.20 C2.12.01 C2.12.06 C2.13.04 C2.13.08
+C1.12.21 C2.12.01 C2.12.02 C2.12.06 C2.12.07
+C1.12.22 C2.12.02 C2.12.03 C2.12.07 C2.12.08
+C1.12.23 C2.12.03 C2.12.04 C2.12.08 C2.12.09
+C1.12.24 C2.12.04 C2.12.05 C2.12.09 C2.12.10
+C1.12.25 C2.12.06 C2.12.07
+C1.12.26 C2.12.07 C2.12.08
+C1.12.27 C2.12.08 C2.12.09
+C1.12.28 C2.12.09 C2.12.10
+C1.12.29 C2.12.11 C2.13.13
+C1.12.30 C2.12.11 C2.12.12
+C1.12.31 C2.12.12 C2.12.13
+C1.12.32 C2.12.13 C2.12.14
+C1.12.33 C2.12.11 C2.12.15 C2.13.13 C2.13.17
+C1.12.34 C2.12.11 C2.12.12 C2.12.15 C2.12.16
+C1.12.35 C2.12.12 C2.12.13 C2.12.16 C2.12.17
+C1.12.36 C2.12.13 C2.12.14 C2.12.17 C2.12.18
+C1.12.37 C2.12.15 C2.12.16
+C1.12.38 C2.12.16 C2.12.17
+C1.12.39 C2.12.17 C2.12.18
+C1.12.40 C2.12.19 C2.13.21
+C1.12.41 C2.12.19 C2.12.20
+C1.12.42 C2.12.20 C2.12.21
+C1.12.43 C2.12.19 C2.12.22 C2.13.21 C2.13.23
+C1.12.44 C2.12.19 C2.12.20 C2.12.22 C2.12.23
+C1.12.45 C2.12.20 C2.12.21 C2.12.23 C2.12.24
+C1.12.46 C2.12.22 C2.12.23
+C1.12.47 C2.12.23 C2.12.24
+C1.12.48 C2.12.25 C2.13.26
+C1.12.49 C2.12.25 C2.12.26
+C1.12.50 C2.12.25 C2.13.26
+C1.12.51 C2.12.25
+C1.12.52 C2.12.25 C2.12.26
+C1.12.53 C2.12.26
+C1.12.54 C2.13.27 C2.13.28
+C1.12.55 C2.13.28
+C1.12.56 C2.12.27 C2.13.28
+C1.12.57 C2.12.27 C2.12.28
+C1.12.58 C2.13.28
+C1.12.59 C2.12.27 C2.12.29 C2.13.28
+C1.12.60 C2.12.27 C2.12.28 C2.12.29 C2.12.30
+C1.12.61 C2.12.29 C2.13.28
+C1.12.62 C2.12.29 C2.12.30
+C1.13.11 C2.13.03
+C1.13.12 C2.13.01
+C1.13.13 C2.12.01 C2.13.02 C2.13.04
+C1.13.14 C2.13.00 C2.13.07
+C1.13.15 C2.13.03 C2.13.05 C2.13.07
+C1.13.16 C2.13.06
+C1.13.17 C2.13.02 C2.13.04 C2.13.08
+C1.13.18 C2.13.07
+C1.13.19 C2.13.09
+C1.13.20 C2.13.06 C2.14.08
+C1.13.21 C2.13.08
+C1.13.22 C2.13.10
+C1.13.23 C2.13.09 C2.13.11
+C1.13.24 C2.12.06 C2.13.08
+C1.13.25 C2.13.12
+C1.13.26 C2.13.10 C2.13.14
+C1.13.27 C2.13.11
+C1.13.28 C2.13.12 C2.13.13
+C1.13.29 C2.13.12 C2.13.15
+C1.13.30 C2.13.14
+C1.13.31 C2.13.12 C2.13.13 C2.13.15 C2.13.17
+C1.13.32 C2.13.15
+C1.13.33 C2.13.16
+C1.13.34 C2.13.15 C2.13.17
+C1.13.35 C2.13.16 C2.14.19
+C1.13.36 C2.13.18
+C1.13.37 C2.12.15 C2.13.17
+C1.13.38 C2.13.18 C2.13.19
+C1.13.39 C2.13.18 C2.13.20
+C1.13.40 C2.13.19 C2.13.21
+C1.13.41 C2.13.18 C2.13.19 C2.13.20 C2.13.22
+C1.13.42 C2.13.20
+C1.13.43 C2.13.19 C2.13.21 C2.13.22 C2.13.23
+C1.13.44 C2.13.20 C2.13.22
+C1.13.45 C2.13.22 C2.13.23
+C1.13.46 C2.13.24 C2.14.23
+C1.13.47 C2.12.22 C2.13.23
+C1.13.48 C2.13.24 C2.13.25
+C1.13.49 C2.13.25 C2.13.26
+C1.13.50 C2.13.24 C2.13.25 C2.14.25 C2.14.27
+C1.13.51 C2.13.25 C2.13.26 C2.13.27 C2.14.27
+C1.13.52 C2.13.27 C2.14.27
+C1.13.53 C2.13.27
+C1.13.54 C2.13.27 C2.14.27
+C1.13.55 C2.13.27 C2.13.28
+C1.13.56 C2.13.27
+C1.13.57 C2.13.27 C2.13.28
+C1.13.58 C2.13.29 C2.13.30
+C1.13.59 C2.13.28
+C1.13.60 C2.13.30 C2.13.31
+C1.13.61 C2.13.30 C2.14.31
+C1.13.62 C2.13.30 C2.13.31
+C1.14.12 C2.14.05
+C1.14.13 C2.15.03
+C1.14.14 C2.14.02
+C1.14.15 C2.14.01 C2.14.05
+C1.14.16 C2.14.02 C2.14.04
+C1.14.17 C2.13.01 C2.14.00 C2.14.03 C2.14.05
+C1.14.18 C2.14.06
+C1.14.19 C2.14.04
+C1.14.20 C2.14.05
+C1.14.21 C2.15.07
+C1.14.22 C2.14.06 C2.14.07
+C1.14.23 C2.14.09
+C1.14.24 C2.14.07
+C1.14.25 C2.14.08
+C1.14.26 C2.14.10
+C1.14.27 C2.14.09 C2.14.11
+C1.14.28 C2.14.12
+C1.14.29 C2.14.11
+C1.14.30 C2.14.12 C2.14.15
+C1.14.31 C2.14.13
+C1.14.32 C2.14.14
+C1.14.33 C2.14.13 C2.15.14
+C1.14.34 C2.14.15
+C1.14.35 C2.14.14 C2.14.17
+C1.14.36 C2.14.16
+C1.14.37 C2.14.17
+C1.14.38 C2.14.16 C2.15.17
+C1.14.39 C2.14.18
+C1.14.40 C2.14.19
+C1.14.41 C2.14.18 C2.14.20
+C1.14.42 C2.14.21
+C1.14.43 C2.14.21 C2.14.22
+C1.14.44 C2.14.23
+C1.14.45 C2.14.22
+C1.14.46 C2.14.23 C2.14.24
+C1.14.47 C2.14.24
+C1.14.48 C2.13.24 C2.14.23 C2.14.24 C2.14.25
+C1.14.49 C2.14.24 C2.14.25
+C1.14.50 C2.14.26 C2.15.24
+C1.14.51 C2.14.25 C2.14.27
+C1.14.52 C2.14.26 C2.14.28
+C1.14.53 C2.14.26 C2.14.28
+C1.14.54 C2.14.26 C2.14.28
+C1.14.55 C2.14.28
+C1.14.56 C2.14.28
+C1.14.57 C2.13.29 C2.14.28
+C1.14.58 C2.14.28
+C1.14.59 C2.14.28 C2.14.29
+C1.14.60 C2.14.28 C2.14.30
+C1.14.61 C2.14.29 C2.14.31
+C1.14.62 C2.14.30 C2.14.31 C2.15.28
+C1.15.15 C2.15.00
+C1.15.16 C2.15.00 C2.15.02
+C1.15.17 C2.15.01 C2.15.02
+C1.15.18 C2.15.03
+C1.15.19 C2.15.03 C2.15.04
+C1.15.20 C2.15.04
+C1.15.21 C2.15.05
+C1.15.22 C2.15.05 C2.15.06
+C1.15.23 C2.15.06
+C1.15.24 C2.15.07 C2.15.08
+C1.15.25 C2.15.08
+C1.15.26 C2.15.09
+C1.15.27 C2.15.09 C2.15.10
+C1.15.28 C2.15.10
+C1.15.29 C2.14.10 C2.15.11
+C1.15.30 C2.15.11
+C1.15.31 C2.15.12
+C1.15.32 C2.15.12 C2.15.13
+C1.15.33 C2.15.13
+C1.15.34 C2.15.14
+C1.15.35 C2.15.15
+C1.15.36 C2.15.15 C2.15.16
+C1.15.37 C2.15.16
+C1.15.38 C2.15.17
+C1.15.39 C2.15.18
+C1.15.40 C2.15.18 C2.15.19
+C1.15.41 C2.15.19
+C1.15.42 C2.14.20
+C1.15.43 C2.15.20
+C1.15.44 C2.15.20 C2.15.21
+C1.15.45 C2.15.21
+C1.15.46 C2.15.22
+C1.15.47 C2.15.22 C2.15.23
+C1.15.48 C2.15.23
+C1.15.49 C2.15.24
+C1.15.50 C2.15.24 C2.15.25
+C1.15.51 C2.15.25
+C1.15.52 C2.14.26 C2.15.24 C2.15.25 C2.15.26
+C1.15.53 C2.15.25 C2.15.26
+C1.15.54 C2.15.26 C2.15.27
+C1.15.55 C2.15.26 C2.15.27
+C1.15.56 C2.15.26 C2.15.27
+C1.15.57 C2.15.27
+C1.15.58 C2.15.27
+C1.15.59 C2.15.27
+C1.15.60 C2.15.27 C2.15.28
+C1.15.61 C2.15.27 C2.15.28 C2.15.29
+C1.15.62 C2.15.27 C2.15.29
+C2.00.05 C3.00.02
+C2.00.06 C3.00.00
+C2.00.07 C3.00.01 C3.01.00 C3.01.02
+C2.00.08 C3.00.01
+C2.00.09 C3.00.02
+C2.00.10 C3.00.03
+C2.00.11 C3.00.01 C3.00.04
+C2.00.12 C3.00.02 C3.00.05
+C2.00.13 C3.00.03 C3.00.06
+C2.00.14 C3.00.04 C3.00.07
+C2.00.15 C3.00.05 C3.00.08
+C2.00.16 C3.00.06 C3.00.09
+C2.00.17 C3.00.07
+C2.00.18 C3.00.08
+C2.00.19 C3.00.09
+C2.00.20 C3.00.08 C3.00.10
+C2.00.21 C3.00.09 C3.00.11
+C2.00.22 C3.00.10 C3.00.12
+C2.00.23 C3.00.11 C3.00.13
+C2.00.24 C3.00.12
+C2.00.25 C3.00.13
+C2.00.26 C3.00.13 C3.00.14
+C2.00.27 C3.00.14 C3.00.15 C3.01.15
+C2.00.28 C3.00.15 C3.01.15
+C2.00.29 C3.00.15
+C2.01.04 C3.01.02
+C2.01.05 C3.01.01 C3.01.03 C3.02.00
+C2.01.06 C3.01.01 C3.01.02
+C2.01.07 C3.01.02
+C2.01.08 C3.01.01 C3.01.03 C3.02.00
+C2.01.09 C3.01.01 C3.01.02 C3.01.03 C3.01.05
+C2.01.10 C3.00.01 C3.01.00 C3.01.02 C3.01.04
+C2.01.11 C3.01.01 C3.01.02 C3.01.05
+C2.01.12 C3.01.03 C3.01.05
+C2.01.13 C3.01.04 C3.01.06
+C2.01.14 C3.01.03 C3.01.05 C3.01.07 C3.02.05
+C2.01.15 C3.01.05
+C2.01.16 C3.01.06
+C2.01.17 C3.01.05 C3.01.07
+C2.01.18 C3.01.06 C3.01.08
+C2.01.19 C3.01.07 C3.02.09
+C2.01.20 C3.00.07 C3.01.09
+C2.01.21 C3.01.08 C3.01.10
+C2.01.22 C3.01.09 C3.01.11
+C2.01.23 C3.01.10
+C2.01.24 C3.01.11
+C2.01.25 C3.01.11 C3.01.12
+C2.01.26 C3.00.12 C3.01.13
+C2.01.27 C3.01.12 C3.02.13
+C2.01.28 C3.01.13 C3.01.14 C3.01.15
+C2.01.29 C3.01.14 C3.02.14
+C2.01.30 C3.01.14 C3.01.15
+C2.01.31 C3.01.14 C3.01.15 C3.02.14
+C2.02.06 C3.02.00
+C2.02.07 C3.02.01 C3.02.02
+C2.02.08 C3.02.01
+C2.02.09 C3.02.00 C3.02.02 C3.02.03
+C2.02.10 C3.02.00 C3.02.01 C3.02.02 C3.02.03 C3.02.04
+C2.02.11 C3.01.03 C3.02.00 C3.02.03 C3.02.05
+C2.02.12 C3.02.01 C3.02.02 C3.02.04
+C2.02.13 C3.02.01 C3.02.02 C3.02.04 C3.02.06 C3.03.05
+C2.02.14 C3.02.03 C3.02.04 C3.02.05 C3.02.07
+C2.02.15 C3.02.04 C3.02.07
+C2.02.16 C3.01.07 C3.02.05 C3.02.07 C3.02.09
+C2.02.17 C3.02.04 C3.02.06 C3.02.07 C3.02.08
+C2.02.18 C3.02.07 C3.02.09
+C2.02.19 C3.02.07 C3.02.08 C3.02.09 C3.02.10
+C2.02.20 C3.02.09
+C2.02.21 C3.02.08 C3.02.10 C3.03.10 C3.03.12
+C2.02.22 C3.02.09 C3.02.10
+C2.02.23 C3.02.10 C3.03.12
+C2.02.24 C3.01.10 C3.02.11
+C2.02.25 C3.02.11 C3.02.12
+C2.02.26 C3.02.12
+C2.02.27 C3.02.13
+C2.02.28 C3.02.13 C3.03.15
+C2.02.29 C3.02.14 C3.02.15
+C2.02.30 C3.02.14 C3.02.15
+C2.02.31 C3.02.15
+C2.03.01 C3.03.02
+C2.03.02 C3.03.02
+C2.03.03 C3.03.02 C3.03.03
+C2.03.04 C3.03.00 C3.03.03 C3.03.04
+C2.03.05 C3.03.00 C3.03.01 C3.03.04 C3.04.01 C3.04.04
+C2.03.06 C3.02.01 C3.03.02 C3.03.05
+C2.03.07 C3.03.02 C3.03.03 C3.03.05 C3.03.06
+C2.03.08 C3.03.02 C3.03.03 C3.03.06
+C2.03.09 C3.03.03 C3.03.04 C3.03.06 C3.03.07
+C2.03.10 C3.03.04 C3.03.07 C3.04.04 C3.04.07
+C2.03.11 C3.02.06 C3.03.05 C3.03.06 C3.03.08
+C2.03.12 C3.03.06 C3.03.08
+C2.03.13 C3.03.06 C3.03.07 C3.03.08 C3.03.09
+C2.03.14 C3.03.07 C3.03.09 C3.04.07 C3.04.09
+C2.03.15 C3.02.06 C3.02.08 C3.03.08 C3.03.10
+C2.03.16 C3.03.08 C3.03.10
+C2.03.17 C3.03.08 C3.03.09 C3.03.10 C3.03.11
+C2.03.18 C3.03.09 C3.03.11 C3.04.09 C3.04.11
+C2.03.19 C3.03.10 C3.03.12
+C2.03.20 C3.03.10 C3.03.11 C3.03.12 C3.03.13
+C2.03.21 C3.03.11 C3.03.13 C3.04.11 C3.04.13
+C2.03.22 C3.03.12
+C2.03.23 C3.03.12 C3.03.13
+C2.03.24 C3.03.13 C3.04.13
+C2.03.25 C3.02.12 C3.03.14
+C2.03.26 C3.03.14 C3.04.14
+C2.03.27 C3.03.15
+C2.03.28 C3.03.15 C3.04.15
+C2.03.29 C3.03.15
+C2.03.30 C3.03.15 C3.04.15
+C2.04.02 C3.04.02
+C2.04.03 C3.04.02 C3.04.03
+C2.04.04 C3.04.00 C3.04.03 C3.04.04
+C2.04.05 C3.04.00 C3.04.01 C3.04.04
+C2.04.06 C3.04.02 C3.04.05 C3.05.02
+C2.04.07 C3.04.02 C3.04.05
+C2.04.08 C3.04.02 C3.04.03 C3.04.05 C3.04.06
+C2.04.09 C3.04.03 C3.04.04 C3.04.06 C3.04.07
+C2.04.10 C3.04.04 C3.04.07
+C2.04.11 C3.04.05 C3.05.06
+C2.04.12 C3.04.05 C3.04.06 C3.04.08 C3.05.06
+C2.04.13 C3.04.06 C3.04.07 C3.04.08 C3.04.09
+C2.04.14 C3.04.07 C3.04.09
+C2.04.15 C3.05.06 C3.05.08
+C2.04.16 C3.04.08 C3.04.10 C3.05.06 C3.05.08
+C2.04.17 C3.04.08 C3.04.09 C3.04.10 C3.04.11
+C2.04.18 C3.04.09 C3.04.11
+C2.04.19 C3.04.10 C3.04.12 C3.05.08 C3.05.10
+C2.04.20 C3.04.10 C3.04.11 C3.04.12 C3.04.13
+C2.04.21 C3.04.11 C3.04.13
+C2.04.22 C3.04.12 C3.05.10
+C2.04.23 C3.04.12 C3.04.13
+C2.04.24 C3.04.13
+C2.04.25 C3.04.14 C3.05.12
+C2.04.26 C3.04.14
+C2.04.27 C3.04.15
+C2.04.28 C3.04.15
+C2.04.29 C3.04.15
+C2.04.30 C3.04.15
+C2.05.06 C3.05.00
+C2.05.07 C3.05.01
+C2.05.08 C3.05.01 C3.05.02
+C2.05.09 C3.05.00 C3.05.01 C3.05.03
+C2.05.10 C3.05.01 C3.05.03
+C2.05.11 C3.05.00 C3.05.03 C3.05.05 C3.06.02
+C2.05.12 C3.05.01 C3.05.02 C3.05.03 C3.05.04
+C2.05.13 C3.04.05 C3.05.02 C3.05.04 C3.05.06
+C2.05.14 C3.05.03 C3.05.05
+C2.05.15 C3.05.03 C3.05.04 C3.05.05 C3.05.07
+C2.05.16 C3.05.05 C3.06.06
+C2.05.17 C3.05.04 C3.05.06 C3.05.07 C3.05.08
+C2.05.18 C3.05.05 C3.05.07 C3.05.09 C3.06.06
+C2.05.19 C3.05.07 C3.05.08 C3.05.09 C3.05.10
+C2.05.20 C3.05.09 C3.06.06
+C2.05.21 C3.05.08 C3.05.10
+C2.05.22 C3.05.09 C3.05.10
+C2.05.23 C3.05.10
+C2.05.24 C3.05.11 C3.06.09
+C2.05.25 C3.05.11
+C2.05.26 C3.05.11 C3.05.12
+C2.05.27 C3.05.13 C3.06.11
+C2.05.28 C3.04.15 C3.05.13
+C2.05.29 C3.06.12 C3.06.13
+C2.05.30 C3.05.14 C3.06.13 C3.06.15
+C2.05.31 C3.05.14
+C2.06.05 C3.06.00
+C2.06.06 C3.06.00
+C2.06.07 C3.06.00 C3.06.01
+C2.06.08 C3.05.00 C3.06.00 C3.06.02
+C2.06.09 C3.06.00
+C2.06.10 C3.06.01 C3.06.03 C3.07.01
+C2.06.11 C3.06.00 C3.06.01
+C2.06.12 C3.06.00 C3.06.02 C3.06.04
+C2.06.13 C3.06.03
+C2.06.14 C3.05.05 C3.06.02 C3.06.04 C3.06.06
+C2.06.15 C3.06.00 C3.06.01 C3.06.04
+C2.06.16 C3.06.03 C3.06.05
+C2.06.17 C3.06.04 C3.06.06
+C2.06.18 C3.06.05 C3.06.07
+C2.06.19 C3.06.06
+C2.06.20 C3.06.08 C3.07.07
+C2.06.21 C3.06.07
+C2.06.22 C3.06.08
+C2.06.23 C3.06.07 C3.06.09
+C2.06.24 C3.06.08 C3.06.10
+C2.06.25 C3.06.10 C3.06.11
+C2.06.26 C3.06.12 C3.07.12
+C2.06.27 C3.06.11
+C2.06.28 C3.06.12
+C2.06.29 C3.06.12 C3.06.13 C3.06.14 C3.06.15
+C2.06.30 C3.06.12 C3.06.14 C3.06.15
+C2.06.31 C3.06.13 C3.06.14 C3.06.15
+C2.07.06 C3.07.00
+C2.07.07 C3.07.01
+C2.07.08 C3.07.01 C3.07.02
+C2.07.09 C3.07.02
+C2.07.10 C3.07.00 C3.07.03
+C2.07.11 C3.07.01 C3.07.04
+C2.07.12 C3.07.02 C3.07.05
+C2.07.13 C3.07.03 C3.07.06
+C2.07.14 C3.07.04
+C2.07.15 C3.07.05
+C2.07.16 C3.07.06
+C2.07.17 C3.07.04 C3.07.07
+C2.07.18 C3.07.05 C3.07.08
+C2.07.19 C3.07.06 C3.07.09
+C2.07.20 C3.07.08 C3.07.10
+C2.07.21 C3.07.09 C3.07.11
+C2.07.22 C3.07.10
+C2.07.23 C3.07.11
+C2.07.24 C3.07.10 C3.07.12
+C2.07.25 C3.07.11 C3.07.13
+C2.07.26 C3.07.13 C3.07.14
+C2.07.27 C3.07.14
+C2.07.28 C3.06.14 C3.07.14 C3.07.15
+C2.07.29 C3.07.14 C3.07.15
+C2.08.06 C3.08.00
+C2.08.07 C3.08.01 C3.09.00
+C2.08.08 C3.08.01
+C2.08.09 C3.08.02
+C2.08.10 C3.08.00 C3.08.03
+C2.08.11 C3.08.01 C3.08.04
+C2.08.12 C3.08.02 C3.08.05
+C2.08.13 C3.08.03 C3.08.06
+C2.08.14 C3.08.04
+C2.08.15 C3.08.05
+C2.08.16 C3.08.06
+C2.08.17 C3.08.04 C3.08.07
+C2.08.18 C3.08.05 C3.08.08
+C2.08.19 C3.08.06 C3.08.09
+C2.08.20 C3.08.08 C3.08.10
+C2.08.21 C3.08.09 C3.08.11
+C2.08.22 C3.08.10
+C2.08.23 C3.08.11
+C2.08.24 C3.08.10 C3.08.12
+C2.08.25 C3.08.11 C3.08.13
+C2.08.26 C3.08.13 C3.08.14
+C2.08.27 C3.08.14
+C2.08.28 C3.08.14 C3.08.15 C3.09.15
+C2.08.29 C3.08.14 C3.08.15
+C2.09.05 C3.09.01
+C2.09.06 C3.09.02
+C2.09.07 C3.09.02
+C2.09.08 C3.09.01 C3.09.03 C3.10.00
+C2.09.09 C3.09.01 C3.09.02
+C2.09.10 C3.08.01 C3.09.00 C3.09.02 C3.09.04
+C2.09.11 C3.09.01 C3.09.02
+C2.09.12 C3.09.01 C3.09.03 C3.09.05
+C2.09.13 C3.09.04
+C2.09.14 C3.09.03 C3.09.05 C3.09.07 C3.10.05
+C2.09.15 C3.09.01 C3.09.02 C3.09.05
+C2.09.16 C3.09.04 C3.09.06
+C2.09.17 C3.09.05 C3.09.07
+C2.09.18 C3.09.06 C3.09.08
+C2.09.19 C3.09.07
+C2.09.20 C3.08.07 C3.09.09
+C2.09.21 C3.09.08
+C2.09.22 C3.09.09
+C2.09.23 C3.09.08 C3.09.10
+C2.09.24 C3.09.09 C3.09.11
+C2.09.25 C3.09.11 C3.09.12
+C2.09.26 C3.08.12 C3.09.13
+C2.09.27 C3.09.12
+C2.09.28 C3.09.13
+C2.09.29 C3.09.13 C3.09.14 C3.10.14
+C2.09.30 C3.09.13 C3.09.14 C3.09.15
+C2.09.31 C3.09.14 C3.09.15 C3.10.14
+C2.10.06 C3.10.00
+C2.10.07 C3.10.01 C3.10.02
+C2.10.08 C3.10.01 C3.10.02
+C2.10.09 C3.10.00 C3.10.03
+C2.10.10 C3.10.00 C3.10.02 C3.10.03
+C2.10.11 C3.09.03 C3.10.00 C3.10.03 C3.10.05
+C2.10.12 C3.10.01 C3.10.02 C3.10.03 C3.10.04
+C2.10.13 C3.10.01 C3.10.02 C3.10.04 C3.10.06 C3.11.05
+C2.10.14 C3.10.03 C3.10.05
+C2.10.15 C3.10.03 C3.10.04 C3.10.05 C3.10.07
+C2.10.16 C3.09.07 C3.10.05
+C2.10.17 C3.10.04 C3.10.06 C3.10.07 C3.10.08
+C2.10.18 C3.09.07 C3.10.05 C3.10.07 C3.10.09
+C2.10.19 C3.10.07 C3.10.08 C3.10.09 C3.10.10
+C2.10.20 C3.09.07 C3.10.09
+C2.10.21 C3.10.08 C3.10.10
+C2.10.22 C3.10.09 C3.10.10
+C2.10.23 C3.10.10
+C2.10.24 C3.09.10 C3.10.11
+C2.10.25 C3.10.11
+C2.10.26 C3.10.11 C3.10.12
+C2.10.27 C3.09.12 C3.10.13
+C2.10.28 C3.10.13 C3.11.15
+C2.10.29 C3.09.14 C3.10.14 C3.10.15
+C2.10.30 C3.10.14 C3.10.15
+C2.10.31 C3.10.15
+C2.11.02 C3.11.02
+C2.11.03 C3.11.02 C3.11.03
+C2.11.04 C3.11.00 C3.11.03 C3.11.04
+C2.11.05 C3.11.00 C3.11.01 C3.11.04
+C2.11.06 C3.10.01 C3.11.02 C3.11.05
+C2.11.07 C3.11.02 C3.11.05
+C2.11.08 C3.11.02 C3.11.03 C3.11.05 C3.11.06
+C2.11.09 C3.11.03 C3.11.04 C3.11.06 C3.11.07
+C2.11.10 C3.11.04 C3.11.07
+C2.11.11 C3.10.06 C3.11.05
+C2.11.12 C3.10.06 C3.11.05 C3.11.06 C3.11.08
+C2.11.13 C3.11.06 C3.11.07 C3.11.08 C3.11.09
+C2.11.14 C3.11.07 C3.11.09
+C2.11.15 C3.10.06 C3.10.08
+C2.11.16 C3.10.06 C3.10.08 C3.11.08 C3.11.10
+C2.11.17 C3.11.08 C3.11.09 C3.11.10 C3.11.11
+C2.11.18 C3.11.09 C3.11.11
+C2.11.19 C3.10.08 C3.10.10 C3.11.10 C3.11.12
+C2.11.20 C3.11.10 C3.11.11 C3.11.12 C3.11.13
+C2.11.21 C3.11.11 C3.11.13
+C2.11.22 C3.10.10 C3.11.12
+C2.11.23 C3.11.12 C3.11.13
+C2.11.24 C3.11.13
+C2.11.25 C3.10.12 C3.11.14
+C2.11.26 C3.11.14
+C2.11.27 C3.11.15
+C2.11.28 C3.11.15
+C2.11.29 C3.11.15
+C2.11.30 C3.11.15
+C2.12.02 C3.12.02
+C2.12.03 C3.12.02 C3.12.03
+C2.12.04 C3.12.00 C3.12.03 C3.12.04
+C2.12.05 C3.11.01 C3.11.04 C3.12.00 C3.12.01 C3.12.04
+C2.12.06 C3.12.02 C3.12.05 C3.13.02
+C2.12.07 C3.12.02 C3.12.03 C3.12.05 C3.12.06
+C2.12.08 C3.12.02 C3.12.03 C3.12.06
+C2.12.09 C3.12.03 C3.12.04 C3.12.06 C3.12.07
+C2.12.10 C3.11.04 C3.11.07 C3.12.04 C3.12.07
+C2.12.11 C3.12.05 C3.12.06 C3.12.08 C3.13.06
+C2.12.12 C3.12.06 C3.12.08
+C2.12.13 C3.12.06 C3.12.07 C3.12.08 C3.12.09
+C2.12.14 C3.11.07 C3.11.09 C3.12.07 C3.12.09
+C2.12.15 C3.12.08 C3.12.10 C3.13.06 C3.13.08
+C2.12.16 C3.12.08 C3.12.10
+C2.12.17 C3.12.08 C3.12.09 C3.12.10 C3.12.11
+C2.12.18 C3.11.09 C3.11.11 C3.12.09 C3.12.11
+C2.12.19 C3.12.10 C3.12.12
+C2.12.20 C3.12.10 C3.12.11 C3.12.12 C3.12.13
+C2.12.21 C3.11.11 C3.11.13 C3.12.11 C3.12.13
+C2.12.22 C3.12.12
+C2.12.23 C3.12.12 C3.12.13
+C2.12.24 C3.11.13 C3.12.13
+C2.12.25 C3.12.14 C3.13.12
+C2.12.26 C3.11.14 C3.12.14
+C2.12.27 C3.12.15
+C2.12.28 C3.11.15 C3.12.15
+C2.12.29 C3.12.15
+C2.12.30 C3.11.15 C3.12.15
+C2.13.06 C3.13.00
+C2.13.07 C3.13.01
+C2.13.08 C3.13.01 C3.13.02
+C2.13.09 C3.13.00 C3.13.01 C3.13.03
+C2.13.10 C3.13.01 C3.13.02 C3.13.03 C3.13.04
+C2.13.11 C3.13.00 C3.13.03 C3.13.05 C3.14.02
+C2.13.12 C3.13.01 C3.13.02 C3.13.04
+C2.13.13 C3.12.05 C3.13.02 C3.13.04 C3.13.06
+C2.13.14 C3.13.03 C3.13.04 C3.13.05 C3.13.07
+C2.13.15 C3.13.04 C3.13.07
+C2.13.16 C3.13.05 C3.13.07 C3.13.09 C3.14.06
+C2.13.17 C3.13.04 C3.13.06 C3.13.07 C3.13.08
+C2.13.18 C3.13.07 C3.13.09
+C2.13.19 C3.13.07 C3.13.08 C3.13.09 C3.13.10
+C2.13.20 C3.13.09
+C2.13.21 C3.12.10 C3.12.12 C3.13.08 C3.13.10
+C2.13.22 C3.13.09 C3.13.10
+C2.13.23 C3.12.12 C3.13.10
+C2.13.24 C3.13.11 C3.14.09
+C2.13.25 C3.13.11 C3.13.12
+C2.13.26 C3.13.12
+C2.13.27 C3.13.13
+C2.13.28 C3.12.15 C3.13.13
+C2.13.29 C3.13.14 C3.14.13
+C2.13.30 C3.13.14 C3.14.15
+C2.13.31 C3.13.14
+C2.14.04 C3.14.01
+C2.14.05 C3.13.00 C3.14.00 C3.14.02
+C2.14.06 C3.14.00
+C2.14.07 C3.14.00 C3.14.01
+C2.14.08 C3.13.00 C3.14.00 C3.14.02
+C2.14.09 C3.14.00 C3.14.02 C3.14.04
+C2.14.10 C3.14.01 C3.14.03 C3.15.01
+C2.14.11 C3.14.00 C3.14.01 C3.14.04
+C2.14.12 C3.14.02 C3.14.04
+C2.14.13 C3.14.03 C3.14.05
+C2.14.14 C3.13.05 C3.14.02 C3.14.04 C3.14.06
+C2.14.15 C3.14.04
+C2.14.16 C3.14.05
+C2.14.17 C3.14.04 C3.14.06
+C2.14.18 C3.14.05 C3.14.07
+C2.14.19 C3.13.09 C3.14.06
+C2.14.20 C3.14.08 C3.15.07
+C2.14.21 C3.14.07 C3.14.09
+C2.14.22 C3.14.08 C3.14.10
+C2.14.23 C3.14.09
+C2.14.24 C3.14.10
+C2.14.25 C3.14.10 C3.14.11
+C2.14.26 C3.14.12 C3.15.12
+C2.14.27 C3.13.13 C3.14.11
+C2.14.28 C3.14.12 C3.14.13 C3.14.14
+C2.14.29 C3.14.13 C3.14.14 C3.14.15
+C2.14.30 C3.14.14 C3.14.15
+C2.14.31 C3.14.14 C3.14.15
+C2.15.05 C3.15.02
+C2.15.06 C3.15.00
+C2.15.07 C3.14.01 C3.15.01
+C2.15.08 C3.15.01 C3.15.02
+C2.15.09 C3.15.02
+C2.15.10 C3.15.03
+C2.15.11 C3.15.01 C3.15.04
+C2.15.12 C3.15.02 C3.15.05
+C2.15.13 C3.15.03 C3.15.06
+C2.15.14 C3.15.04 C3.15.07
+C2.15.15 C3.15.05 C3.15.08
+C2.15.16 C3.15.06 C3.15.09
+C2.15.17 C3.15.07
+C2.15.18 C3.15.08
+C2.15.19 C3.15.09
+C2.15.20 C3.15.08 C3.15.10
+C2.15.21 C3.15.09 C3.15.11
+C2.15.22 C3.15.10 C3.15.12
+C2.15.23 C3.15.11 C3.15.13
+C2.15.24 C3.15.12
+C2.15.25 C3.15.13
+C2.15.26 C3.15.13 C3.15.14
+C2.15.27 C3.14.14 C3.15.14 C3.15.15
+C2.15.28 C3.14.14 C3.15.15
+C2.15.29 C3.15.15
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext.txt
new file mode 100755
index 0000000000000000000000000000000000000000..8526b47881f25cd595b372a15f14cdc7d2c2a070
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext.txt
@@ -0,0 +1,2483 @@
+# 3D FCal Neighbors Next in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:15:50 2004
+#
+# 3d neighbors next in sampling are all cells touching the same
+# eta phi area in the next sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without next sampling neighbors are not listed.
+#
+A1.00.15 A2.00.00
+A1.00.16 A2.00.01 A2.00.00
+A1.00.17 A2.00.02 A2.00.01
+A1.00.18 A2.00.03
+A1.00.19 A2.00.04 A2.00.03
+A1.00.20 A2.00.04
+A1.00.21 A2.00.05
+A1.00.22 A2.00.06 A2.00.05
+A1.00.23 A2.00.06
+A1.00.24 A2.00.08 A2.00.07
+A1.00.25 A2.00.08
+A1.00.26 A2.00.09
+A1.00.27 A2.00.10 A2.00.09
+A1.00.28 A2.00.10
+A1.00.29 A2.00.11 A2.01.10
+A1.00.30 A2.00.11
+A1.00.31 A2.00.12
+A1.00.32 A2.00.13 A2.00.12
+A1.00.33 A2.00.13
+A1.00.34 A2.00.14
+A1.00.35 A2.00.15
+A1.00.36 A2.00.16 A2.00.15
+A1.00.37 A2.00.16
+A1.00.38 A2.00.17
+A1.00.39 A2.00.18
+A1.00.40 A2.00.19 A2.00.18
+A1.00.41 A2.00.19
+A1.00.42 A2.01.20
+A1.00.43 A2.00.20
+A1.00.44 A2.00.21 A2.00.20
+A1.00.45 A2.00.21
+A1.00.46 A2.00.22
+A1.00.47 A2.00.23 A2.00.22
+A1.00.48 A2.00.23
+A1.00.49 A2.00.24
+A1.00.50 A2.00.25 A2.00.24
+A1.00.51 A2.00.25
+A1.00.52 A2.00.26 A2.01.26
+A1.00.53 A2.00.26
+A1.00.54 A2.00.27
+A1.00.55 A2.00.27
+A1.00.56 A2.00.27
+A1.00.57 A2.00.27
+A1.00.58 A2.00.27
+A1.00.59 A2.00.27
+A1.00.60 A2.00.28
+A1.00.61 A2.00.29 A2.00.28
+A1.00.62 A2.00.29
+A1.01.12 A2.01.01
+A1.01.13 A2.00.03
+A1.01.14 A2.01.06
+A1.01.15 A2.01.03 A2.01.01
+A1.01.16 A2.01.04 A2.01.02
+A1.01.17 A2.01.05 A2.02.06 A2.01.00
+A1.01.18 A2.01.06
+A1.01.19 A2.01.04
+A1.01.20 A2.01.05
+A1.01.21 A2.00.07
+A1.01.22 A2.01.07 A2.01.06
+A1.01.23 A2.01.09
+A1.01.24 A2.01.07
+A1.01.25 A2.01.08
+A1.01.26 A2.01.10
+A1.01.27 A2.01.11 A2.01.09
+A1.01.28 A2.01.12
+A1.01.29 A2.01.11
+A1.01.30 A2.01.15 A2.01.12
+A1.01.31 A2.01.13
+A1.01.32 A2.01.14
+A1.01.33 A2.00.14 A2.01.13
+A1.01.34 A2.01.15
+A1.01.35 A2.01.17 A2.01.14
+A1.01.36 A2.01.16
+A1.01.37 A2.01.17
+A1.01.38 A2.00.17 A2.01.16
+A1.01.39 A2.01.18
+A1.01.40 A2.01.19
+A1.01.41 A2.01.20 A2.01.18
+A1.01.42 A2.01.21
+A1.01.43 A2.01.22 A2.01.21
+A1.01.44 A2.01.23
+A1.01.45 A2.01.22
+A1.01.46 A2.01.24 A2.01.23
+A1.01.47 A2.01.24
+A1.01.48 A2.01.25 A2.02.24
+A1.01.49 A2.01.25
+A1.01.50 A2.01.26
+A1.01.51 A2.01.27
+A1.01.52 A2.01.28
+A1.01.53 A2.01.28
+A1.01.54 A2.01.28
+A1.01.55 A2.01.28
+A1.01.56 A2.01.28
+A1.01.57 A2.01.29
+A1.01.58 A2.01.28
+A1.01.59 A2.01.30 A2.01.29
+A1.01.60 A2.01.30
+A1.01.61 A2.01.31 A2.02.29
+A1.01.62 A2.01.31
+A1.02.11 A2.02.06 A2.01.00 A2.02.00
+A1.02.12 A2.02.03
+A1.02.13 A2.03.01 A2.02.04 A2.02.02
+A1.02.14 A2.02.07 A2.02.01
+A1.02.15 A2.02.07 A2.02.05 A2.02.03
+A1.02.16 A2.02.06 A2.02.00
+A1.02.17 A2.02.08 A2.02.04 A2.02.02
+A1.02.18 A2.02.07
+A1.02.19 A2.02.09
+A1.02.20 A2.01.08 A2.02.06
+A1.02.21 A2.02.08
+A1.02.22 A2.02.10
+A1.02.23 A2.02.11 A2.02.09
+A1.02.24 A2.03.06
+A1.02.25 A2.02.12
+A1.02.26 A2.02.14 A2.02.10
+A1.02.27 A2.02.11
+A1.02.28 A2.02.13
+A1.02.29 A2.02.15 A2.02.12
+A1.02.30 A2.02.14
+A1.02.31 A2.02.17 A2.02.13
+A1.02.32 A2.02.15
+A1.02.33 A2.02.16
+A1.02.34 A2.02.17
+A1.02.35 A2.01.19 A2.02.16
+A1.02.36 A2.02.18
+A1.02.37 A2.03.15
+A1.02.38 A2.02.19
+A1.02.39 A2.02.20 A2.02.18
+A1.02.40 A2.02.21
+A1.02.41 A2.02.22 A2.02.19
+A1.02.42 A2.02.20
+A1.02.43 A2.02.23 A2.02.21
+A1.02.44 A2.02.22
+A1.02.45 A2.02.23
+A1.02.46 A2.02.24
+A1.02.47 A2.03.22
+A1.02.48 A2.02.25
+A1.02.49 A2.02.26
+A1.02.50 A2.01.27 A2.02.25
+A1.02.51 A2.02.27 A2.02.26
+A1.02.52 A2.02.27
+A1.02.53 A2.02.27
+A1.02.54 A2.02.27
+A1.02.55 A2.02.28
+A1.02.56 A2.02.27
+A1.02.57 A2.02.28
+A1.02.58 A2.02.29
+A1.02.59 A2.02.28
+A1.02.60 A2.02.30 A2.02.31
+A1.02.61 A2.02.30 A2.02.31
+A1.02.62 A2.02.31
+A1.03.12 A2.03.00
+A1.03.13 A2.03.00
+A1.03.14 A2.03.00
+A1.03.15 A2.03.01
+A1.03.16 A2.03.02
+A1.03.17 A2.03.03
+A1.03.18 A2.03.04
+A1.03.19 A2.03.05
+A1.03.20 A2.03.06 A2.03.01
+A1.03.21 A2.03.07 A2.03.02
+A1.03.22 A2.03.08 A2.03.03
+A1.03.23 A2.03.09 A2.03.04
+A1.03.24 A2.03.10 A2.03.05
+A1.03.25 A2.03.07
+A1.03.26 A2.03.08
+A1.03.27 A2.03.09
+A1.03.28 A2.03.10
+A1.03.29 A2.03.11
+A1.03.30 A2.03.12
+A1.03.31 A2.03.13
+A1.03.32 A2.03.14
+A1.03.33 A2.03.15 A2.03.11
+A1.03.34 A2.03.16 A2.03.12
+A1.03.35 A2.03.17 A2.03.13
+A1.03.36 A2.03.18 A2.03.14
+A1.03.37 A2.03.16
+A1.03.38 A2.03.17
+A1.03.39 A2.03.18
+A1.03.40 A2.03.19
+A1.03.41 A2.03.20
+A1.03.42 A2.03.21
+A1.03.43 A2.03.22 A2.03.19
+A1.03.44 A2.03.23 A2.03.20
+A1.03.45 A2.03.24 A2.03.21
+A1.03.46 A2.03.23
+A1.03.47 A2.03.24
+A1.03.48 A2.03.25
+A1.03.49 A2.03.26
+A1.03.50 A2.03.25
+A1.03.51 A2.03.25
+A1.03.52 A2.03.26
+A1.03.53 A2.03.26
+A1.03.54 A2.02.28
+A1.03.55 A2.02.28
+A1.03.56 A2.03.27
+A1.03.57 A2.03.28
+A1.03.58 A2.02.28
+A1.03.59 A2.03.29 A2.03.27
+A1.03.60 A2.03.30 A2.03.28
+A1.03.61 A2.03.29
+A1.03.62 A2.03.30
+A1.04.12 A2.04.00
+A1.04.13 A2.04.00
+A1.04.14 A2.04.00
+A1.04.15 A2.04.01
+A1.04.16 A2.04.02
+A1.04.17 A2.04.03
+A1.04.18 A2.04.04
+A1.04.19 A2.04.05
+A1.04.20 A2.04.06 A2.04.01
+A1.04.21 A2.04.07 A2.04.02
+A1.04.22 A2.04.08 A2.04.03
+A1.04.23 A2.04.09 A2.04.04
+A1.04.24 A2.04.10 A2.04.05
+A1.04.25 A2.04.07
+A1.04.26 A2.04.08
+A1.04.27 A2.04.09
+A1.04.28 A2.04.10
+A1.04.29 A2.04.11
+A1.04.30 A2.04.12
+A1.04.31 A2.04.13
+A1.04.32 A2.04.14
+A1.04.33 A2.04.15 A2.04.11
+A1.04.34 A2.04.16 A2.04.12
+A1.04.35 A2.04.17 A2.04.13
+A1.04.36 A2.04.18 A2.04.14
+A1.04.37 A2.04.16
+A1.04.38 A2.04.17
+A1.04.39 A2.04.18
+A1.04.40 A2.04.19
+A1.04.41 A2.04.20
+A1.04.42 A2.04.21
+A1.04.43 A2.04.22 A2.04.19
+A1.04.44 A2.04.23 A2.04.20
+A1.04.45 A2.04.24 A2.04.21
+A1.04.46 A2.04.23
+A1.04.47 A2.04.24
+A1.04.48 A2.04.25
+A1.04.49 A2.04.26
+A1.04.50 A2.04.25
+A1.04.51 A2.04.25
+A1.04.52 A2.04.26
+A1.04.53 A2.04.26
+A1.04.54 A2.05.28
+A1.04.55 A2.05.28
+A1.04.56 A2.04.27
+A1.04.57 A2.04.28
+A1.04.58 A2.05.28
+A1.04.59 A2.04.29 A2.04.27
+A1.04.60 A2.04.30 A2.04.28
+A1.04.61 A2.04.29
+A1.04.62 A2.04.30
+A1.05.12 A2.05.03
+A1.05.13 A2.05.01
+A1.05.14 A2.05.02 A2.05.04 A2.04.01
+A1.05.15 A2.05.07 A2.05.00
+A1.05.16 A2.05.03 A2.05.05 A2.05.07
+A1.05.17 A2.05.06
+A1.05.18 A2.05.08 A2.05.02 A2.05.04
+A1.05.19 A2.05.07
+A1.05.20 A2.05.09
+A1.05.21 A2.06.08 A2.05.06
+A1.05.22 A2.05.08
+A1.05.23 A2.05.10
+A1.05.24 A2.05.11 A2.05.09
+A1.05.25 A2.04.06
+A1.05.26 A2.05.12
+A1.05.27 A2.05.14 A2.05.10
+A1.05.28 A2.05.11
+A1.05.29 A2.05.13
+A1.05.30 A2.05.15 A2.05.12
+A1.05.31 A2.05.14
+A1.05.32 A2.05.17 A2.05.13
+A1.05.33 A2.05.15
+A1.05.34 A2.05.16
+A1.05.35 A2.05.17
+A1.05.36 A2.05.18
+A1.05.37 A2.06.19 A2.05.16
+A1.05.38 A2.04.15
+A1.05.39 A2.05.19
+A1.05.40 A2.05.20 A2.05.18
+A1.05.41 A2.05.21
+A1.05.42 A2.05.22 A2.05.19
+A1.05.43 A2.05.20
+A1.05.44 A2.05.23 A2.05.21
+A1.05.45 A2.05.22
+A1.05.46 A2.05.23
+A1.05.47 A2.05.24
+A1.05.48 A2.04.22
+A1.05.49 A2.05.25
+A1.05.50 A2.05.26
+A1.05.51 A2.06.27 A2.05.25
+A1.05.52 A2.05.27 A2.05.26
+A1.05.53 A2.05.27
+A1.05.54 A2.05.27
+A1.05.55 A2.05.27
+A1.05.56 A2.05.28
+A1.05.57 A2.05.27
+A1.05.58 A2.05.28
+A1.05.59 A2.05.30 A2.05.29
+A1.05.60 A2.05.28
+A1.05.61 A2.05.30 A2.05.31
+A1.05.62 A2.05.31
+A1.06.12 A2.06.05
+A1.06.13 A2.07.03
+A1.06.14 A2.06.02
+A1.06.15 A2.06.01 A2.06.05
+A1.06.16 A2.06.04 A2.06.02
+A1.06.17 A2.06.05 A2.06.03 A2.06.00 A2.05.01
+A1.06.18 A2.06.06
+A1.06.19 A2.06.04
+A1.06.20 A2.06.05
+A1.06.21 A2.07.07
+A1.06.22 A2.06.07 A2.06.06
+A1.06.23 A2.06.09
+A1.06.24 A2.06.07
+A1.06.25 A2.06.08
+A1.06.26 A2.06.10
+A1.06.27 A2.06.11 A2.06.09
+A1.06.28 A2.06.12
+A1.06.29 A2.06.11
+A1.06.30 A2.06.15 A2.06.12
+A1.06.31 A2.06.13
+A1.06.32 A2.06.14
+A1.06.33 A2.07.14 A2.06.13
+A1.06.34 A2.06.15
+A1.06.35 A2.06.17 A2.06.14
+A1.06.36 A2.06.16
+A1.06.37 A2.06.17
+A1.06.38 A2.07.17 A2.06.16
+A1.06.39 A2.06.18
+A1.06.40 A2.06.19
+A1.06.41 A2.06.20 A2.06.18
+A1.06.42 A2.06.21
+A1.06.43 A2.06.22 A2.06.21
+A1.06.44 A2.06.23
+A1.06.45 A2.06.22
+A1.06.46 A2.06.24 A2.06.23
+A1.06.47 A2.06.24
+A1.06.48 A2.06.25 A2.05.24
+A1.06.49 A2.06.25
+A1.06.50 A2.06.26
+A1.06.51 A2.06.27
+A1.06.52 A2.06.28
+A1.06.53 A2.06.28
+A1.06.54 A2.06.28
+A1.06.55 A2.06.28
+A1.06.56 A2.05.29
+A1.06.57 A2.06.28
+A1.06.58 A2.06.29
+A1.06.59 A2.06.30
+A1.06.60 A2.06.31 A2.06.29
+A1.06.61 A2.06.31 A2.06.30 A2.05.30
+A1.06.62 A2.06.31 A2.06.30
+A1.07.14 A2.07.00
+A1.07.15 A2.07.02 A2.07.00
+A1.07.16 A2.07.01 A2.07.02
+A1.07.17 A2.07.03
+A1.07.18 A2.07.04 A2.07.03
+A1.07.19 A2.07.04
+A1.07.20 A2.07.05
+A1.07.21 A2.07.06 A2.07.05
+A1.07.22 A2.07.06
+A1.07.23 A2.07.08 A2.07.07
+A1.07.24 A2.07.08
+A1.07.25 A2.07.09
+A1.07.26 A2.07.10 A2.07.09
+A1.07.27 A2.07.10
+A1.07.28 A2.07.11 A2.06.10
+A1.07.29 A2.07.11
+A1.07.30 A2.07.12
+A1.07.31 A2.07.13 A2.07.12
+A1.07.32 A2.07.13
+A1.07.33 A2.07.14
+A1.07.34 A2.07.15
+A1.07.35 A2.07.16 A2.07.15
+A1.07.36 A2.07.16
+A1.07.37 A2.07.17
+A1.07.38 A2.07.18
+A1.07.39 A2.07.19 A2.07.18
+A1.07.40 A2.07.19
+A1.07.41 A2.06.20
+A1.07.42 A2.07.20
+A1.07.43 A2.07.21 A2.07.20
+A1.07.44 A2.07.21
+A1.07.45 A2.07.22
+A1.07.46 A2.07.23 A2.07.22
+A1.07.47 A2.07.23
+A1.07.48 A2.07.24
+A1.07.49 A2.07.25 A2.07.24
+A1.07.50 A2.07.25
+A1.07.51 A2.07.26 A2.06.26
+A1.07.52 A2.07.26
+A1.07.53 A2.06.28
+A1.07.54 A2.07.27
+A1.07.55 A2.07.27
+A1.07.56 A2.07.27
+A1.07.57 A2.07.27
+A1.07.58 A2.07.27
+A1.07.59 A2.07.27
+A1.07.60 A2.07.28
+A1.07.61 A2.07.29 A2.07.28
+A1.07.62 A2.07.29
+A1.08.15 A2.08.02
+A1.08.16 A2.08.02 A2.08.01
+A1.08.17 A2.08.01 A2.08.00
+A1.08.18 A2.08.03
+A1.08.19 A2.08.03 A2.08.04
+A1.08.20 A2.08.04
+A1.08.21 A2.08.05
+A1.08.22 A2.08.05 A2.08.06
+A1.08.23 A2.08.06
+A1.08.24 A2.08.07 A2.08.08
+A1.08.25 A2.08.08
+A1.08.26 A2.08.09
+A1.08.27 A2.08.09 A2.08.10
+A1.08.28 A2.08.10
+A1.08.29 A2.09.10 A2.08.11
+A1.08.30 A2.08.11
+A1.08.31 A2.08.12
+A1.08.32 A2.08.12 A2.08.13
+A1.08.33 A2.08.13
+A1.08.34 A2.08.14
+A1.08.35 A2.08.15
+A1.08.36 A2.08.15 A2.08.16
+A1.08.37 A2.08.16
+A1.08.38 A2.08.17
+A1.08.39 A2.08.18
+A1.08.40 A2.08.18 A2.08.19
+A1.08.41 A2.08.19
+A1.08.42 A2.09.20
+A1.08.43 A2.08.20
+A1.08.44 A2.08.20 A2.08.21
+A1.08.45 A2.08.21
+A1.08.46 A2.08.22
+A1.08.47 A2.08.22 A2.08.23
+A1.08.48 A2.08.23
+A1.08.49 A2.08.24
+A1.08.50 A2.08.24 A2.08.25
+A1.08.51 A2.08.25
+A1.08.52 A2.09.26 A2.08.26
+A1.08.53 A2.08.26
+A1.08.54 A2.08.27
+A1.08.55 A2.08.27
+A1.08.56 A2.08.27
+A1.08.57 A2.08.27
+A1.08.58 A2.08.27
+A1.08.59 A2.08.27
+A1.08.60 A2.08.28
+A1.08.61 A2.08.28 A2.08.29
+A1.08.62 A2.08.29
+A1.09.12 A2.09.01
+A1.09.13 A2.08.03
+A1.09.14 A2.09.06
+A1.09.15 A2.09.01 A2.09.03
+A1.09.16 A2.09.02 A2.09.04
+A1.09.17 A2.10.06 A2.09.00 A2.09.05
+A1.09.18 A2.09.06
+A1.09.19 A2.09.04
+A1.09.20 A2.09.05
+A1.09.21 A2.08.07
+A1.09.22 A2.09.06 A2.09.07
+A1.09.23 A2.09.09
+A1.09.24 A2.09.07
+A1.09.25 A2.09.08
+A1.09.26 A2.09.10
+A1.09.27 A2.09.09 A2.09.11
+A1.09.28 A2.09.12
+A1.09.29 A2.09.11
+A1.09.30 A2.09.12 A2.09.15
+A1.09.31 A2.09.13
+A1.09.32 A2.09.14
+A1.09.33 A2.09.13 A2.08.14
+A1.09.34 A2.09.15
+A1.09.35 A2.09.14 A2.09.17
+A1.09.36 A2.09.16
+A1.09.37 A2.09.17
+A1.09.38 A2.09.16 A2.08.17
+A1.09.39 A2.09.18
+A1.09.40 A2.09.19
+A1.09.41 A2.09.18 A2.09.20
+A1.09.42 A2.09.21
+A1.09.43 A2.09.21 A2.09.22
+A1.09.44 A2.09.23
+A1.09.45 A2.09.22
+A1.09.46 A2.09.23 A2.09.24
+A1.09.47 A2.09.24
+A1.09.48 A2.10.24 A2.09.25
+A1.09.49 A2.09.25
+A1.09.50 A2.09.26
+A1.09.51 A2.09.27
+A1.09.52 A2.09.28
+A1.09.53 A2.09.28
+A1.09.54 A2.09.28
+A1.09.55 A2.09.28
+A1.09.56 A2.09.28
+A1.09.57 A2.09.29
+A1.09.58 A2.09.28
+A1.09.59 A2.09.29 A2.09.30
+A1.09.60 A2.09.30
+A1.09.61 A2.10.29 A2.09.31
+A1.09.62 A2.09.31
+A1.10.11 A2.10.03
+A1.10.12 A2.10.00 A2.10.06 A2.09.00
+A1.10.13 A2.11.01 A2.10.02 A2.10.04
+A1.10.14 A2.10.01 A2.10.07
+A1.10.15 A2.10.07 A2.10.05 A2.10.03
+A1.10.16 A2.10.00 A2.10.06
+A1.10.17 A2.10.02 A2.10.04 A2.10.08
+A1.10.18 A2.10.07
+A1.10.19 A2.10.09
+A1.10.20 A2.10.06 A2.09.08
+A1.10.21 A2.10.08
+A1.10.22 A2.10.10
+A1.10.23 A2.10.09 A2.10.11
+A1.10.24 A2.11.06
+A1.10.25 A2.10.12
+A1.10.26 A2.10.10 A2.10.14
+A1.10.27 A2.10.11
+A1.10.28 A2.10.13
+A1.10.29 A2.10.12 A2.10.15
+A1.10.30 A2.10.14
+A1.10.31 A2.10.13 A2.10.17
+A1.10.32 A2.10.15
+A1.10.33 A2.10.16
+A1.10.34 A2.10.17
+A1.10.35 A2.10.16 A2.09.19
+A1.10.36 A2.10.18
+A1.10.37 A2.11.15
+A1.10.38 A2.10.19
+A1.10.39 A2.10.18 A2.10.20
+A1.10.40 A2.10.21
+A1.10.41 A2.10.19 A2.10.22
+A1.10.42 A2.10.20
+A1.10.43 A2.10.21 A2.10.23
+A1.10.44 A2.10.22
+A1.10.45 A2.10.23
+A1.10.46 A2.10.24
+A1.10.47 A2.11.22
+A1.10.48 A2.10.25
+A1.10.49 A2.10.26
+A1.10.50 A2.10.25 A2.09.27
+A1.10.51 A2.10.26 A2.10.27
+A1.10.52 A2.10.27
+A1.10.53 A2.10.27
+A1.10.54 A2.10.27
+A1.10.55 A2.10.28
+A1.10.56 A2.10.27
+A1.10.57 A2.10.28
+A1.10.58 A2.10.29
+A1.10.59 A2.10.28
+A1.10.60 A2.10.30 A2.10.31
+A1.10.61 A2.10.30 A2.10.31
+A1.10.62 A2.10.31
+A1.11.12 A2.11.00
+A1.11.13 A2.11.00
+A1.11.14 A2.11.00
+A1.11.15 A2.11.01
+A1.11.16 A2.11.02
+A1.11.17 A2.11.03
+A1.11.18 A2.11.04
+A1.11.19 A2.11.05
+A1.11.20 A2.11.01 A2.11.06
+A1.11.21 A2.11.02 A2.11.07
+A1.11.22 A2.11.03 A2.11.08
+A1.11.23 A2.11.04 A2.11.09
+A1.11.24 A2.11.05 A2.11.10
+A1.11.25 A2.11.07
+A1.11.26 A2.11.08
+A1.11.27 A2.11.09
+A1.11.28 A2.11.10
+A1.11.29 A2.11.11
+A1.11.30 A2.11.12
+A1.11.31 A2.11.13
+A1.11.32 A2.11.14
+A1.11.33 A2.11.11 A2.11.15
+A1.11.34 A2.11.12 A2.11.16
+A1.11.35 A2.11.13 A2.11.17
+A1.11.36 A2.11.14 A2.11.18
+A1.11.37 A2.11.16
+A1.11.38 A2.11.17
+A1.11.39 A2.11.18
+A1.11.40 A2.11.19
+A1.11.41 A2.11.20
+A1.11.42 A2.11.21
+A1.11.43 A2.11.19 A2.11.22
+A1.11.44 A2.11.20 A2.11.23
+A1.11.45 A2.11.21 A2.11.24
+A1.11.46 A2.11.23
+A1.11.47 A2.11.24
+A1.11.48 A2.11.25
+A1.11.49 A2.11.26
+A1.11.50 A2.11.25
+A1.11.51 A2.11.25
+A1.11.52 A2.11.26
+A1.11.53 A2.11.26
+A1.11.54 A2.10.28
+A1.11.55 A2.10.28
+A1.11.56 A2.11.27
+A1.11.57 A2.11.28
+A1.11.58 A2.10.28
+A1.11.59 A2.11.27 A2.11.29
+A1.11.60 A2.11.28 A2.11.30
+A1.11.61 A2.11.29
+A1.11.62 A2.11.30
+A1.12.12 A2.12.00
+A1.12.13 A2.12.00
+A1.12.14 A2.12.00
+A1.12.15 A2.12.01
+A1.12.16 A2.12.02
+A1.12.17 A2.12.03
+A1.12.18 A2.12.04
+A1.12.19 A2.12.05
+A1.12.20 A2.12.01 A2.12.06
+A1.12.21 A2.12.02 A2.12.07
+A1.12.22 A2.12.03 A2.12.08
+A1.12.23 A2.12.04 A2.12.09
+A1.12.24 A2.12.05 A2.12.10
+A1.12.25 A2.12.07
+A1.12.26 A2.12.08
+A1.12.27 A2.12.09
+A1.12.28 A2.12.10
+A1.12.29 A2.12.11
+A1.12.30 A2.12.12
+A1.12.31 A2.12.13
+A1.12.32 A2.12.14
+A1.12.33 A2.12.11 A2.12.15
+A1.12.34 A2.12.12 A2.12.16
+A1.12.35 A2.12.13 A2.12.17
+A1.12.36 A2.12.14 A2.12.18
+A1.12.37 A2.12.16
+A1.12.38 A2.12.17
+A1.12.39 A2.12.18
+A1.12.40 A2.12.19
+A1.12.41 A2.12.20
+A1.12.42 A2.12.21
+A1.12.43 A2.12.19 A2.12.22
+A1.12.44 A2.12.20 A2.12.23
+A1.12.45 A2.12.21 A2.12.24
+A1.12.46 A2.12.23
+A1.12.47 A2.12.24
+A1.12.48 A2.12.25
+A1.12.49 A2.12.26
+A1.12.50 A2.12.25
+A1.12.51 A2.12.25
+A1.12.52 A2.12.26
+A1.12.53 A2.12.26
+A1.12.54 A2.13.28
+A1.12.55 A2.13.28
+A1.12.56 A2.12.27
+A1.12.57 A2.12.28
+A1.12.58 A2.13.28
+A1.12.59 A2.12.27 A2.12.29
+A1.12.60 A2.12.28 A2.12.30
+A1.12.61 A2.12.29
+A1.12.62 A2.12.30
+A1.13.12 A2.13.01
+A1.13.13 A2.13.03
+A1.13.14 A2.12.01 A2.13.04 A2.13.02
+A1.13.15 A2.13.00 A2.13.07
+A1.13.16 A2.13.07 A2.13.05 A2.13.03
+A1.13.17 A2.13.06
+A1.13.18 A2.13.04 A2.13.02 A2.13.08
+A1.13.19 A2.13.07
+A1.13.20 A2.13.09
+A1.13.21 A2.13.06 A2.14.08
+A1.13.22 A2.13.08
+A1.13.23 A2.13.10
+A1.13.24 A2.13.09 A2.13.11
+A1.13.25 A2.12.06
+A1.13.26 A2.13.12
+A1.13.27 A2.13.10 A2.13.14
+A1.13.28 A2.13.11
+A1.13.29 A2.13.13
+A1.13.30 A2.13.12 A2.13.15
+A1.13.31 A2.13.14
+A1.13.32 A2.13.13 A2.13.17
+A1.13.33 A2.13.15
+A1.13.34 A2.13.16
+A1.13.35 A2.13.17
+A1.13.36 A2.13.16 A2.14.19
+A1.13.37 A2.13.18
+A1.13.38 A2.12.15
+A1.13.39 A2.13.19
+A1.13.40 A2.13.18 A2.13.20
+A1.13.41 A2.13.21
+A1.13.42 A2.13.19 A2.13.22
+A1.13.43 A2.13.20
+A1.13.44 A2.13.21 A2.13.23
+A1.13.45 A2.13.22
+A1.13.46 A2.13.23
+A1.13.47 A2.13.24
+A1.13.48 A2.12.22
+A1.13.49 A2.13.25
+A1.13.50 A2.13.26
+A1.13.51 A2.13.25 A2.14.27
+A1.13.52 A2.13.26 A2.13.27
+A1.13.53 A2.13.27
+A1.13.54 A2.13.27
+A1.13.55 A2.13.27
+A1.13.56 A2.13.28
+A1.13.57 A2.13.27
+A1.13.58 A2.13.28
+A1.13.59 A2.13.30 A2.13.29
+A1.13.60 A2.13.28
+A1.13.61 A2.13.31 A2.13.30
+A1.13.62 A2.13.31
+A1.14.12 A2.14.05
+A1.14.13 A2.15.03
+A1.14.14 A2.14.02
+A1.14.15 A2.14.05 A2.14.01
+A1.14.16 A2.14.02 A2.14.04
+A1.14.17 A2.13.01 A2.14.00 A2.14.03 A2.14.05
+A1.14.18 A2.14.06
+A1.14.19 A2.14.04
+A1.14.20 A2.14.05
+A1.14.21 A2.15.07
+A1.14.22 A2.14.06 A2.14.07
+A1.14.23 A2.14.09
+A1.14.24 A2.14.07
+A1.14.25 A2.14.08
+A1.14.26 A2.14.10
+A1.14.27 A2.14.09 A2.14.11
+A1.14.28 A2.14.12
+A1.14.29 A2.14.11
+A1.14.30 A2.14.12 A2.14.15
+A1.14.31 A2.14.13
+A1.14.32 A2.14.14
+A1.14.33 A2.14.13 A2.15.14
+A1.14.34 A2.14.15
+A1.14.35 A2.14.14 A2.14.17
+A1.14.36 A2.14.16
+A1.14.37 A2.14.17
+A1.14.38 A2.14.16 A2.15.17
+A1.14.39 A2.14.18
+A1.14.40 A2.14.19
+A1.14.41 A2.14.18 A2.14.20
+A1.14.42 A2.14.21
+A1.14.43 A2.14.21 A2.14.22
+A1.14.44 A2.14.23
+A1.14.45 A2.14.22
+A1.14.46 A2.14.23 A2.14.24
+A1.14.47 A2.14.24
+A1.14.48 A2.13.24 A2.14.25
+A1.14.49 A2.14.25
+A1.14.50 A2.14.26
+A1.14.51 A2.14.27
+A1.14.52 A2.14.28
+A1.14.53 A2.14.28
+A1.14.54 A2.14.28
+A1.14.55 A2.14.28
+A1.14.56 A2.13.29
+A1.14.57 A2.14.28
+A1.14.58 A2.14.29
+A1.14.59 A2.14.30
+A1.14.60 A2.14.31 A2.14.29
+A1.14.61 A2.13.30 A2.14.31 A2.14.30
+A1.14.62 A2.14.31 A2.14.30
+A1.15.14 A2.15.00
+A1.15.15 A2.15.00 A2.15.02
+A1.15.16 A2.15.02 A2.15.01
+A1.15.17 A2.15.03
+A1.15.18 A2.15.03 A2.15.04
+A1.15.19 A2.15.04
+A1.15.20 A2.15.05
+A1.15.21 A2.15.05 A2.15.06
+A1.15.22 A2.15.06
+A1.15.23 A2.15.07 A2.15.08
+A1.15.24 A2.15.08
+A1.15.25 A2.15.09
+A1.15.26 A2.15.09 A2.15.10
+A1.15.27 A2.15.10
+A1.15.28 A2.14.10 A2.15.11
+A1.15.29 A2.15.11
+A1.15.30 A2.15.12
+A1.15.31 A2.15.12 A2.15.13
+A1.15.32 A2.15.13
+A1.15.33 A2.15.14
+A1.15.34 A2.15.15
+A1.15.35 A2.15.15 A2.15.16
+A1.15.36 A2.15.16
+A1.15.37 A2.15.17
+A1.15.38 A2.15.18
+A1.15.39 A2.15.18 A2.15.19
+A1.15.40 A2.15.19
+A1.15.41 A2.14.20
+A1.15.42 A2.15.20
+A1.15.43 A2.15.20 A2.15.21
+A1.15.44 A2.15.21
+A1.15.45 A2.15.22
+A1.15.46 A2.15.22 A2.15.23
+A1.15.47 A2.15.23
+A1.15.48 A2.15.24
+A1.15.49 A2.15.24 A2.15.25
+A1.15.50 A2.15.25
+A1.15.51 A2.14.26 A2.15.26
+A1.15.52 A2.15.26
+A1.15.53 A2.14.28
+A1.15.54 A2.15.27
+A1.15.55 A2.15.27
+A1.15.56 A2.15.27
+A1.15.57 A2.15.27
+A1.15.58 A2.15.27
+A1.15.59 A2.15.27
+A1.15.60 A2.15.28
+A1.15.61 A2.15.28 A2.15.29
+A1.15.62 A2.15.29
+A2.00.05 A3.00.02
+A2.00.06 A3.00.00
+A2.00.07 A3.00.01
+A2.00.08 A3.00.02 A3.00.01
+A2.00.09 A3.00.02
+A2.00.10 A3.00.03
+A2.00.11 A3.00.04 A3.00.01
+A2.00.12 A3.00.05 A3.00.02
+A2.00.13 A3.00.06 A3.00.03
+A2.00.14 A3.00.04
+A2.00.15 A3.00.05
+A2.00.16 A3.00.06
+A2.00.17 A3.00.07
+A2.00.18 A3.00.08
+A2.00.19 A3.00.09
+A2.00.20 A3.00.10 A3.00.08
+A2.00.21 A3.00.11 A3.00.09
+A2.00.22 A3.00.10
+A2.00.23 A3.00.11
+A2.00.24 A3.00.12
+A2.00.25 A3.00.13
+A2.00.26 A3.00.14 A3.00.13
+A2.00.27 A3.00.14
+A2.00.28 A3.00.15 A3.01.14
+A2.00.29 A3.00.15
+A2.01.05 A3.01.00
+A2.01.06 A3.01.00
+A2.01.07 A3.01.01 A3.01.00
+A2.01.08 A3.01.00 A3.01.02 A3.02.00
+A2.01.09 A3.01.00
+A2.01.10 A3.00.01 A3.01.03 A3.01.01
+A2.01.11 A3.01.01 A3.01.00
+A2.01.12 A3.01.04 A3.01.02
+A2.01.13 A3.01.03
+A2.01.14 A3.01.06 A3.01.04 A3.02.05 A3.01.02
+A2.01.15 A3.01.04
+A2.01.16 A3.01.05
+A2.01.17 A3.01.06 A3.01.04
+A2.01.18 A3.01.07 A3.01.05
+A2.01.19 A3.01.06
+A2.01.20 A3.01.08 A3.00.07
+A2.01.21 A3.01.07
+A2.01.22 A3.01.08
+A2.01.23 A3.01.09
+A2.01.24 A3.01.10
+A2.01.25 A3.01.11 A3.01.10
+A2.01.26 A3.01.12 A3.00.12
+A2.01.27 A3.01.11
+A2.01.28 A3.01.12
+A2.01.29 A3.01.13
+A2.01.30 A3.01.14 A3.01.15
+A2.01.31 A3.01.14 A3.01.15
+A2.02.06 A3.02.00
+A2.02.07 A3.02.01
+A2.02.08 A3.02.02 A3.02.01
+A2.02.09 A3.02.03 A3.02.00 A3.02.01
+A2.02.10 A3.02.03 A3.02.01
+A2.02.11 A3.02.05 A3.01.02 A3.02.03 A3.02.00
+A2.02.12 A3.02.04 A3.02.02 A3.02.01
+A2.02.13 A3.02.06 A3.02.04 A3.03.05 A3.02.02
+A2.02.14 A3.02.05 A3.02.03
+A2.02.15 A3.02.07 A3.02.04
+A2.02.16 A3.01.06 A3.02.05
+A2.02.17 A3.02.08 A3.02.07 A3.02.06 A3.02.04
+A2.02.18 A3.02.09 A3.02.07
+A2.02.19 A3.02.10 A3.02.09 A3.02.08 A3.02.07
+A2.02.20 A3.02.09
+A2.02.21 A3.02.10 A3.02.08
+A2.02.22 A3.02.10 A3.02.09
+A2.02.23 A3.02.10
+A2.02.24 A3.02.11 A3.01.09
+A2.02.25 A3.02.11
+A2.02.26 A3.02.12
+A2.02.27 A3.02.13
+A2.02.28 A3.03.15 A3.02.13
+A2.02.29 A3.01.15 A3.01.13 A3.02.14
+A2.02.30 A3.01.15 A3.02.14
+A2.02.31 A3.02.14
+A2.03.02 A3.03.02
+A2.03.03 A3.03.03 A3.03.02
+A2.03.04 A3.03.04 A3.03.03 A3.03.00
+A2.03.05 A3.03.04 A3.03.01 A3.03.00
+A2.03.06 A3.03.05 A3.02.02 A3.03.02
+A2.03.07 A3.03.05 A3.03.02
+A2.03.08 A3.03.06 A3.03.03 A3.03.02
+A2.03.09 A3.03.07 A3.03.06 A3.03.04 A3.03.03
+A2.03.10 A3.03.07 A3.03.04
+A2.03.11 A3.02.06 A3.03.05
+A2.03.12 A3.03.08 A3.03.06
+A2.03.13 A3.03.09 A3.03.08 A3.03.07 A3.03.06
+A2.03.14 A3.03.09 A3.03.07
+A2.03.15 A3.02.08 A3.02.06
+A2.03.16 A3.03.10 A3.03.08
+A2.03.17 A3.03.11 A3.03.10 A3.03.09 A3.03.08
+A2.03.18 A3.03.11 A3.03.09
+A2.03.19 A3.03.12 A3.03.10
+A2.03.20 A3.03.13 A3.03.12 A3.03.11 A3.03.10
+A2.03.21 A3.03.13 A3.03.11
+A2.03.22 A3.03.12
+A2.03.23 A3.03.13 A3.03.12
+A2.03.24 A3.03.13
+A2.03.25 A3.03.14 A3.02.12
+A2.03.26 A3.03.14
+A2.03.27 A3.03.15
+A2.03.28 A3.03.15
+A2.03.29 A3.03.15
+A2.03.30 A3.03.15
+A2.04.02 A3.04.02
+A2.04.03 A3.04.02 A3.04.03
+A2.04.04 A3.04.03 A3.04.04 A3.04.00
+A2.04.05 A3.04.04 A3.04.00 A3.04.01
+A2.04.06 A3.04.05 A3.05.01 A3.04.02
+A2.04.07 A3.04.05 A3.04.02
+A2.04.08 A3.04.06 A3.04.02 A3.04.03
+A2.04.09 A3.04.06 A3.04.07 A3.04.03 A3.04.04
+A2.04.10 A3.04.07 A3.04.04
+A2.04.11 A3.05.06 A3.04.05
+A2.04.12 A3.04.08 A3.04.06
+A2.04.13 A3.04.08 A3.04.09 A3.04.06 A3.04.07
+A2.04.14 A3.04.09 A3.04.07
+A2.04.15 A3.05.08 A3.05.06
+A2.04.16 A3.04.10 A3.04.08
+A2.04.17 A3.04.10 A3.04.11 A3.04.08 A3.04.09
+A2.04.18 A3.04.11 A3.04.09
+A2.04.19 A3.04.12 A3.04.10
+A2.04.20 A3.04.12 A3.04.13 A3.04.10 A3.04.11
+A2.04.21 A3.04.13 A3.04.11
+A2.04.22 A3.04.12
+A2.04.23 A3.04.12 A3.04.13
+A2.04.24 A3.04.13
+A2.04.25 A3.05.12 A3.04.14
+A2.04.26 A3.04.14
+A2.04.27 A3.04.15
+A2.04.28 A3.04.15
+A2.04.29 A3.04.15
+A2.04.30 A3.04.15
+A2.05.06 A3.05.00
+A2.05.07 A3.05.02 A3.05.01
+A2.05.08 A3.05.01
+A2.05.09 A3.05.00 A3.05.03
+A2.05.10 A3.05.00 A3.05.03 A3.05.02
+A2.05.11 A3.06.03 A3.05.05 A3.05.00 A3.05.03
+A2.05.12 A3.05.04 A3.05.02 A3.05.01
+A2.05.13 A3.05.04 A3.05.06 A3.05.02 A3.04.05 A3.05.01
+A2.05.14 A3.05.05 A3.05.03
+A2.05.15 A3.05.07 A3.05.04
+A2.05.16 A3.06.07 A3.05.05
+A2.05.17 A3.05.07 A3.05.08 A3.05.04 A3.05.06
+A2.05.18 A3.05.09 A3.05.07
+A2.05.19 A3.05.09 A3.05.10 A3.05.07 A3.05.08
+A2.05.20 A3.05.09
+A2.05.21 A3.05.10 A3.05.08
+A2.05.22 A3.05.09 A3.05.10
+A2.05.23 A3.05.10
+A2.05.24 A3.06.10 A3.05.11
+A2.05.25 A3.05.11
+A2.05.26 A3.05.12
+A2.05.27 A3.05.13
+A2.05.28 A3.05.13 A3.04.15
+A2.05.29 A3.06.14 A3.05.14
+A2.05.30 A3.05.14 A3.05.15
+A2.05.31 A3.05.15
+A2.06.05 A3.06.01
+A2.06.06 A3.06.02
+A2.06.07 A3.06.02
+A2.06.08 A3.06.01 A3.06.03 A3.05.00
+A2.06.09 A3.06.02 A3.06.01
+A2.06.10 A3.07.01 A3.06.04 A3.06.00 A3.06.02
+A2.06.11 A3.06.02 A3.06.01
+A2.06.12 A3.06.05 A3.06.03
+A2.06.13 A3.06.04
+A2.06.14 A3.06.05 A3.06.07 A3.06.03 A3.05.05
+A2.06.15 A3.06.05
+A2.06.16 A3.06.06
+A2.06.17 A3.06.05 A3.06.07
+A2.06.18 A3.06.06 A3.06.08
+A2.06.19 A3.06.07
+A2.06.20 A3.07.07 A3.06.09
+A2.06.21 A3.06.08
+A2.06.22 A3.06.09
+A2.06.23 A3.06.10
+A2.06.24 A3.06.11
+A2.06.25 A3.06.11 A3.06.12
+A2.06.26 A3.07.12 A3.06.13
+A2.06.27 A3.06.12
+A2.06.28 A3.06.13
+A2.06.29 A3.06.14 A3.05.14
+A2.06.30 A3.06.15 A3.06.14
+A2.06.31 A3.06.15 A3.05.14
+A2.07.05 A3.07.02
+A2.07.06 A3.07.00
+A2.07.07 A3.07.01 A3.06.00
+A2.07.08 A3.07.01
+A2.07.09 A3.07.02
+A2.07.10 A3.07.03
+A2.07.11 A3.07.01 A3.07.04
+A2.07.12 A3.07.02 A3.07.05
+A2.07.13 A3.07.03 A3.07.06
+A2.07.14 A3.07.04
+A2.07.15 A3.07.05
+A2.07.16 A3.07.06
+A2.07.17 A3.07.07
+A2.07.18 A3.07.08
+A2.07.19 A3.07.09
+A2.07.20 A3.07.08 A3.07.10
+A2.07.21 A3.07.09 A3.07.11
+A2.07.22 A3.07.10
+A2.07.23 A3.07.11
+A2.07.24 A3.07.12
+A2.07.25 A3.07.13
+A2.07.26 A3.07.13 A3.07.14
+A2.07.27 A3.07.14
+A2.07.28 A3.07.15 A3.06.15
+A2.07.29 A3.07.15
+A2.08.05 A3.08.02
+A2.08.06 A3.08.00
+A2.08.07 A3.08.01
+A2.08.08 A3.08.01 A3.08.02
+A2.08.09 A3.08.02
+A2.08.10 A3.08.03
+A2.08.11 A3.08.01 A3.08.04
+A2.08.12 A3.08.02 A3.08.05
+A2.08.13 A3.08.03 A3.08.06
+A2.08.14 A3.08.04
+A2.08.15 A3.08.05
+A2.08.16 A3.08.06
+A2.08.17 A3.08.07
+A2.08.18 A3.08.08
+A2.08.19 A3.08.09
+A2.08.20 A3.08.08 A3.08.10
+A2.08.21 A3.08.09 A3.08.11
+A2.08.22 A3.08.10
+A2.08.23 A3.08.11
+A2.08.24 A3.08.12
+A2.08.25 A3.08.13
+A2.08.26 A3.08.13 A3.08.14
+A2.08.27 A3.08.14
+A2.08.28 A3.09.14 A3.08.15
+A2.08.29 A3.08.15
+A2.09.05 A3.09.00
+A2.09.06 A3.09.00
+A2.09.07 A3.09.00 A3.09.01
+A2.09.08 A3.10.00 A3.09.00 A3.09.02
+A2.09.09 A3.09.00
+A2.09.10 A3.09.01 A3.09.03 A3.08.01
+A2.09.11 A3.09.00 A3.09.01
+A2.09.12 A3.09.02 A3.09.04
+A2.09.13 A3.09.03
+A2.09.14 A3.09.02 A3.10.05 A3.09.04 A3.09.06
+A2.09.15 A3.09.04
+A2.09.16 A3.09.05
+A2.09.17 A3.09.04 A3.09.06
+A2.09.18 A3.09.05 A3.09.07
+A2.09.19 A3.09.06
+A2.09.20 A3.08.07 A3.09.08
+A2.09.21 A3.09.07
+A2.09.22 A3.09.08
+A2.09.23 A3.09.09
+A2.09.24 A3.09.10
+A2.09.25 A3.09.10 A3.09.11
+A2.09.26 A3.08.12 A3.09.12
+A2.09.27 A3.09.11
+A2.09.28 A3.09.12
+A2.09.29 A3.09.13
+A2.09.30 A3.09.15 A3.09.14
+A2.09.31 A3.09.15 A3.09.14
+A2.10.06 A3.10.00
+A2.10.07 A3.10.01
+A2.10.08 A3.10.02 A3.10.01
+A2.10.09 A3.10.01 A3.10.00 A3.10.03
+A2.10.10 A3.10.01 A3.10.03
+A2.10.11 A3.10.00 A3.10.03 A3.09.02 A3.10.05
+A2.10.12 A3.10.02 A3.10.01 A3.10.04
+A2.10.13 A3.10.02 A3.11.05 A3.10.04 A3.10.06
+A2.10.14 A3.10.03 A3.10.05
+A2.10.15 A3.10.04 A3.10.07
+A2.10.16 A3.10.05 A3.09.06
+A2.10.17 A3.10.04 A3.10.06 A3.10.07 A3.10.08
+A2.10.18 A3.10.07 A3.10.09
+A2.10.19 A3.10.07 A3.10.08 A3.10.09 A3.10.10
+A2.10.20 A3.10.09
+A2.10.21 A3.10.08 A3.10.10
+A2.10.22 A3.10.09 A3.10.10
+A2.10.23 A3.10.10
+A2.10.24 A3.09.09 A3.10.11
+A2.10.25 A3.10.11
+A2.10.26 A3.10.12
+A2.10.27 A3.10.13
+A2.10.28 A3.10.13 A3.11.15
+A2.10.29 A3.09.13 A3.10.14 A3.09.15
+A2.10.30 A3.10.14 A3.09.15
+A2.10.31 A3.10.14
+A2.11.02 A3.11.02
+A2.11.03 A3.11.03 A3.11.02
+A2.11.04 A3.11.00 A3.11.03 A3.11.04
+A2.11.05 A3.11.00 A3.11.01 A3.11.04
+A2.11.06 A3.11.02 A3.10.02 A3.11.05
+A2.11.07 A3.11.02 A3.11.05
+A2.11.08 A3.11.03 A3.11.02 A3.11.06
+A2.11.09 A3.11.03 A3.11.04 A3.11.06 A3.11.07
+A2.11.10 A3.11.04 A3.11.07
+A2.11.11 A3.11.05 A3.10.06
+A2.11.12 A3.11.06 A3.11.08
+A2.11.13 A3.11.06 A3.11.07 A3.11.08 A3.11.09
+A2.11.14 A3.11.07 A3.11.09
+A2.11.15 A3.10.06 A3.10.08
+A2.11.16 A3.11.08 A3.11.10
+A2.11.17 A3.11.08 A3.11.09 A3.11.10 A3.11.11
+A2.11.18 A3.11.09 A3.11.11
+A2.11.19 A3.11.10 A3.11.12
+A2.11.20 A3.11.10 A3.11.11 A3.11.12 A3.11.13
+A2.11.21 A3.11.11 A3.11.13
+A2.11.22 A3.11.12
+A2.11.23 A3.11.12 A3.11.13
+A2.11.24 A3.11.13
+A2.11.25 A3.10.12 A3.11.14
+A2.11.26 A3.11.14
+A2.11.27 A3.11.15
+A2.11.28 A3.11.15
+A2.11.29 A3.11.15
+A2.11.30 A3.11.15
+A2.12.02 A3.12.02
+A2.12.03 A3.12.03 A3.12.02
+A2.12.04 A3.12.00 A3.12.03 A3.12.04
+A2.12.05 A3.12.01 A3.12.00 A3.12.04
+A2.12.06 A3.12.02 A3.13.01 A3.12.05
+A2.12.07 A3.12.02 A3.12.05
+A2.12.08 A3.12.03 A3.12.02 A3.12.06
+A2.12.09 A3.12.03 A3.12.04 A3.12.07 A3.12.06
+A2.12.10 A3.12.04 A3.12.07
+A2.12.11 A3.12.05 A3.13.06
+A2.12.12 A3.12.06 A3.12.08
+A2.12.13 A3.12.07 A3.12.06 A3.12.09 A3.12.08
+A2.12.14 A3.12.07 A3.12.09
+A2.12.15 A3.13.06 A3.13.08
+A2.12.16 A3.12.08 A3.12.10
+A2.12.17 A3.12.09 A3.12.08 A3.12.11 A3.12.10
+A2.12.18 A3.12.09 A3.12.11
+A2.12.19 A3.12.10 A3.12.12
+A2.12.20 A3.12.11 A3.12.10 A3.12.13 A3.12.12
+A2.12.21 A3.12.11 A3.12.13
+A2.12.22 A3.12.12
+A2.12.23 A3.12.13 A3.12.12
+A2.12.24 A3.12.13
+A2.12.25 A3.12.14 A3.13.12
+A2.12.26 A3.12.14
+A2.12.27 A3.12.15
+A2.12.28 A3.12.15
+A2.12.29 A3.12.15
+A2.12.30 A3.12.15
+A2.13.06 A3.13.00
+A2.13.07 A3.13.01 A3.13.02
+A2.13.08 A3.13.01
+A2.13.09 A3.13.00 A3.13.03
+A2.13.10 A3.13.02 A3.13.00 A3.13.03
+A2.13.11 A3.13.00 A3.13.03 A3.13.05 A3.14.03
+A2.13.12 A3.13.01 A3.13.02 A3.13.04
+A2.13.13 A3.13.01 A3.12.05 A3.13.02 A3.13.06 A3.13.04
+A2.13.14 A3.13.03 A3.13.05
+A2.13.15 A3.13.04 A3.13.07
+A2.13.16 A3.13.05 A3.14.07
+A2.13.17 A3.13.06 A3.13.04 A3.13.08 A3.13.07
+A2.13.18 A3.13.07 A3.13.09
+A2.13.19 A3.13.08 A3.13.07 A3.13.10 A3.13.09
+A2.13.20 A3.13.09
+A2.13.21 A3.13.08 A3.13.10
+A2.13.22 A3.13.10 A3.13.09
+A2.13.23 A3.13.10
+A2.13.24 A3.13.11 A3.14.10
+A2.13.25 A3.13.11
+A2.13.26 A3.13.12
+A2.13.27 A3.13.13
+A2.13.28 A3.12.15 A3.13.13
+A2.13.29 A3.13.14 A3.14.14
+A2.13.30 A3.13.15 A3.13.14
+A2.13.31 A3.13.15
+A2.14.05 A3.14.01
+A2.14.06 A3.14.02
+A2.14.07 A3.14.02
+A2.14.08 A3.13.00 A3.14.01 A3.14.03
+A2.14.09 A3.14.01 A3.14.02
+A2.14.10 A3.14.02 A3.14.04 A3.14.00 A3.15.01
+A2.14.11 A3.14.01 A3.14.02
+A2.14.12 A3.14.03 A3.14.05
+A2.14.13 A3.14.04
+A2.14.14 A3.13.05 A3.14.03 A3.14.07 A3.14.05
+A2.14.15 A3.14.05
+A2.14.16 A3.14.06
+A2.14.17 A3.14.07 A3.14.05
+A2.14.18 A3.14.08 A3.14.06
+A2.14.19 A3.14.07
+A2.14.20 A3.14.09 A3.15.07
+A2.14.21 A3.14.08
+A2.14.22 A3.14.09
+A2.14.23 A3.14.10
+A2.14.24 A3.14.11
+A2.14.25 A3.14.12 A3.14.11
+A2.14.26 A3.14.13 A3.15.12
+A2.14.27 A3.14.12
+A2.14.28 A3.14.13
+A2.14.29 A3.13.14 A3.14.14
+A2.14.30 A3.14.14 A3.14.15
+A2.14.31 A3.13.14 A3.14.15
+A2.15.05 A3.15.02
+A2.15.06 A3.15.00
+A2.15.07 A3.14.00 A3.15.01
+A2.15.08 A3.15.01
+A2.15.09 A3.15.02
+A2.15.10 A3.15.03
+A2.15.11 A3.15.01 A3.15.04
+A2.15.12 A3.15.05 A3.15.02
+A2.15.13 A3.15.06 A3.15.03
+A2.15.14 A3.15.04
+A2.15.15 A3.15.05
+A2.15.16 A3.15.06
+A2.15.17 A3.15.07
+A2.15.18 A3.15.08
+A2.15.19 A3.15.09
+A2.15.20 A3.15.10 A3.15.08
+A2.15.21 A3.15.11 A3.15.09
+A2.15.22 A3.15.10
+A2.15.23 A3.15.11
+A2.15.24 A3.15.12
+A2.15.25 A3.15.13
+A2.15.26 A3.15.14 A3.15.13
+A2.15.27 A3.15.14
+A2.15.28 A3.14.15 A3.15.15
+A2.15.29 A3.15.15
+C1.00.15 C2.00.00
+C1.00.16 C2.00.01 C2.00.00
+C1.00.17 C2.00.02 C2.00.01
+C1.00.18 C2.00.03
+C1.00.19 C2.00.04 C2.00.03
+C1.00.20 C2.00.04
+C1.00.21 C2.00.05
+C1.00.22 C2.00.06 C2.00.05
+C1.00.23 C2.00.06
+C1.00.24 C2.00.08 C2.00.07
+C1.00.25 C2.00.08
+C1.00.26 C2.00.09
+C1.00.27 C2.00.10 C2.00.09
+C1.00.28 C2.00.10
+C1.00.29 C2.00.11 C2.01.10
+C1.00.30 C2.00.11
+C1.00.31 C2.00.12
+C1.00.32 C2.00.13 C2.00.12
+C1.00.33 C2.00.13
+C1.00.34 C2.00.14
+C1.00.35 C2.00.15
+C1.00.36 C2.00.16 C2.00.15
+C1.00.37 C2.00.16
+C1.00.38 C2.00.17
+C1.00.39 C2.00.18
+C1.00.40 C2.00.19 C2.00.18
+C1.00.41 C2.00.19
+C1.00.42 C2.01.20
+C1.00.43 C2.00.20
+C1.00.44 C2.00.21 C2.00.20
+C1.00.45 C2.00.21
+C1.00.46 C2.00.22
+C1.00.47 C2.00.23 C2.00.22
+C1.00.48 C2.00.23
+C1.00.49 C2.00.24
+C1.00.50 C2.00.25 C2.00.24
+C1.00.51 C2.00.25
+C1.00.52 C2.00.26 C2.01.26
+C1.00.53 C2.00.26
+C1.00.54 C2.00.27
+C1.00.55 C2.00.27
+C1.00.56 C2.00.27
+C1.00.57 C2.00.27
+C1.00.58 C2.00.27
+C1.00.59 C2.00.27
+C1.00.60 C2.00.28
+C1.00.61 C2.00.29 C2.00.28
+C1.00.62 C2.00.29
+C1.01.12 C2.01.01
+C1.01.13 C2.00.03
+C1.01.14 C2.01.06
+C1.01.15 C2.01.03 C2.01.01
+C1.01.16 C2.01.04 C2.01.02
+C1.01.17 C2.01.05 C2.02.06 C2.01.00
+C1.01.18 C2.01.06
+C1.01.19 C2.01.04
+C1.01.20 C2.01.05
+C1.01.21 C2.00.07
+C1.01.22 C2.01.07 C2.01.06
+C1.01.23 C2.01.09
+C1.01.24 C2.01.07
+C1.01.25 C2.01.08
+C1.01.26 C2.01.10
+C1.01.27 C2.01.11 C2.01.09
+C1.01.28 C2.01.12
+C1.01.29 C2.01.11
+C1.01.30 C2.01.15 C2.01.12
+C1.01.31 C2.01.13
+C1.01.32 C2.01.14
+C1.01.33 C2.00.14 C2.01.13
+C1.01.34 C2.01.15
+C1.01.35 C2.01.17 C2.01.14
+C1.01.36 C2.01.16
+C1.01.37 C2.01.17
+C1.01.38 C2.00.17 C2.01.16
+C1.01.39 C2.01.18
+C1.01.40 C2.01.19
+C1.01.41 C2.01.20 C2.01.18
+C1.01.42 C2.01.21
+C1.01.43 C2.01.22 C2.01.21
+C1.01.44 C2.01.23
+C1.01.45 C2.01.22
+C1.01.46 C2.01.24 C2.01.23
+C1.01.47 C2.01.24
+C1.01.48 C2.01.25 C2.02.24
+C1.01.49 C2.01.25
+C1.01.50 C2.01.26
+C1.01.51 C2.01.27
+C1.01.52 C2.01.28
+C1.01.53 C2.01.28
+C1.01.54 C2.01.28
+C1.01.55 C2.01.28
+C1.01.56 C2.01.28
+C1.01.57 C2.01.29
+C1.01.58 C2.01.28
+C1.01.59 C2.01.30 C2.01.29
+C1.01.60 C2.01.30
+C1.01.61 C2.01.31 C2.02.29
+C1.01.62 C2.01.31
+C1.02.11 C2.02.06 C2.01.00 C2.02.00
+C1.02.12 C2.02.03
+C1.02.13 C2.03.01 C2.02.04 C2.02.02
+C1.02.14 C2.02.07 C2.02.01
+C1.02.15 C2.02.07 C2.02.05 C2.02.03
+C1.02.16 C2.02.06 C2.02.00
+C1.02.17 C2.02.08 C2.02.04 C2.02.02
+C1.02.18 C2.02.07
+C1.02.19 C2.02.09
+C1.02.20 C2.01.08 C2.02.06
+C1.02.21 C2.02.08
+C1.02.22 C2.02.10
+C1.02.23 C2.02.11 C2.02.09
+C1.02.24 C2.03.06
+C1.02.25 C2.02.12
+C1.02.26 C2.02.14 C2.02.10
+C1.02.27 C2.02.11
+C1.02.28 C2.02.13
+C1.02.29 C2.02.15 C2.02.12
+C1.02.30 C2.02.14
+C1.02.31 C2.02.17 C2.02.13
+C1.02.32 C2.02.15
+C1.02.33 C2.02.16
+C1.02.34 C2.02.17
+C1.02.35 C2.01.19 C2.02.16
+C1.02.36 C2.02.18
+C1.02.37 C2.03.15
+C1.02.38 C2.02.19
+C1.02.39 C2.02.20 C2.02.18
+C1.02.40 C2.02.21
+C1.02.41 C2.02.22 C2.02.19
+C1.02.42 C2.02.20
+C1.02.43 C2.02.23 C2.02.21
+C1.02.44 C2.02.22
+C1.02.45 C2.02.23
+C1.02.46 C2.02.24
+C1.02.47 C2.03.22
+C1.02.48 C2.02.25
+C1.02.49 C2.02.26
+C1.02.50 C2.01.27 C2.02.25
+C1.02.51 C2.02.27 C2.02.26
+C1.02.52 C2.02.27
+C1.02.53 C2.02.27
+C1.02.54 C2.02.27
+C1.02.55 C2.02.28
+C1.02.56 C2.02.27
+C1.02.57 C2.02.28
+C1.02.58 C2.02.29
+C1.02.59 C2.02.28
+C1.02.60 C2.02.30 C2.02.31
+C1.02.61 C2.02.30 C2.02.31
+C1.02.62 C2.02.31
+C1.03.12 C2.03.00
+C1.03.13 C2.03.00
+C1.03.14 C2.03.00
+C1.03.15 C2.03.01
+C1.03.16 C2.03.02
+C1.03.17 C2.03.03
+C1.03.18 C2.03.04
+C1.03.19 C2.03.05
+C1.03.20 C2.03.06 C2.03.01
+C1.03.21 C2.03.07 C2.03.02
+C1.03.22 C2.03.08 C2.03.03
+C1.03.23 C2.03.09 C2.03.04
+C1.03.24 C2.03.10 C2.03.05
+C1.03.25 C2.03.07
+C1.03.26 C2.03.08
+C1.03.27 C2.03.09
+C1.03.28 C2.03.10
+C1.03.29 C2.03.11
+C1.03.30 C2.03.12
+C1.03.31 C2.03.13
+C1.03.32 C2.03.14
+C1.03.33 C2.03.15 C2.03.11
+C1.03.34 C2.03.16 C2.03.12
+C1.03.35 C2.03.17 C2.03.13
+C1.03.36 C2.03.18 C2.03.14
+C1.03.37 C2.03.16
+C1.03.38 C2.03.17
+C1.03.39 C2.03.18
+C1.03.40 C2.03.19
+C1.03.41 C2.03.20
+C1.03.42 C2.03.21
+C1.03.43 C2.03.22 C2.03.19
+C1.03.44 C2.03.23 C2.03.20
+C1.03.45 C2.03.24 C2.03.21
+C1.03.46 C2.03.23
+C1.03.47 C2.03.24
+C1.03.48 C2.03.25
+C1.03.49 C2.03.26
+C1.03.50 C2.03.25
+C1.03.51 C2.03.25
+C1.03.52 C2.03.26
+C1.03.53 C2.03.26
+C1.03.54 C2.02.28
+C1.03.55 C2.02.28
+C1.03.56 C2.03.27
+C1.03.57 C2.03.28
+C1.03.58 C2.02.28
+C1.03.59 C2.03.29 C2.03.27
+C1.03.60 C2.03.30 C2.03.28
+C1.03.61 C2.03.29
+C1.03.62 C2.03.30
+C1.04.12 C2.04.00
+C1.04.13 C2.04.00
+C1.04.14 C2.04.00
+C1.04.15 C2.04.01
+C1.04.16 C2.04.02
+C1.04.17 C2.04.03
+C1.04.18 C2.04.04
+C1.04.19 C2.04.05
+C1.04.20 C2.04.06 C2.04.01
+C1.04.21 C2.04.07 C2.04.02
+C1.04.22 C2.04.08 C2.04.03
+C1.04.23 C2.04.09 C2.04.04
+C1.04.24 C2.04.10 C2.04.05
+C1.04.25 C2.04.07
+C1.04.26 C2.04.08
+C1.04.27 C2.04.09
+C1.04.28 C2.04.10
+C1.04.29 C2.04.11
+C1.04.30 C2.04.12
+C1.04.31 C2.04.13
+C1.04.32 C2.04.14
+C1.04.33 C2.04.15 C2.04.11
+C1.04.34 C2.04.16 C2.04.12
+C1.04.35 C2.04.17 C2.04.13
+C1.04.36 C2.04.18 C2.04.14
+C1.04.37 C2.04.16
+C1.04.38 C2.04.17
+C1.04.39 C2.04.18
+C1.04.40 C2.04.19
+C1.04.41 C2.04.20
+C1.04.42 C2.04.21
+C1.04.43 C2.04.22 C2.04.19
+C1.04.44 C2.04.23 C2.04.20
+C1.04.45 C2.04.24 C2.04.21
+C1.04.46 C2.04.23
+C1.04.47 C2.04.24
+C1.04.48 C2.04.25
+C1.04.49 C2.04.26
+C1.04.50 C2.04.25
+C1.04.51 C2.04.25
+C1.04.52 C2.04.26
+C1.04.53 C2.04.26
+C1.04.54 C2.05.28
+C1.04.55 C2.05.28
+C1.04.56 C2.04.27
+C1.04.57 C2.04.28
+C1.04.58 C2.05.28
+C1.04.59 C2.04.29 C2.04.27
+C1.04.60 C2.04.30 C2.04.28
+C1.04.61 C2.04.29
+C1.04.62 C2.04.30
+C1.05.12 C2.05.03
+C1.05.13 C2.05.01
+C1.05.14 C2.05.02 C2.05.04 C2.04.01
+C1.05.15 C2.05.07 C2.05.00
+C1.05.16 C2.05.03 C2.05.05 C2.05.07
+C1.05.17 C2.05.06
+C1.05.18 C2.05.08 C2.05.02 C2.05.04
+C1.05.19 C2.05.07
+C1.05.20 C2.05.09
+C1.05.21 C2.06.08 C2.05.06
+C1.05.22 C2.05.08
+C1.05.23 C2.05.10
+C1.05.24 C2.05.11 C2.05.09
+C1.05.25 C2.04.06
+C1.05.26 C2.05.12
+C1.05.27 C2.05.14 C2.05.10
+C1.05.28 C2.05.11
+C1.05.29 C2.05.13
+C1.05.30 C2.05.15 C2.05.12
+C1.05.31 C2.05.14
+C1.05.32 C2.05.17 C2.05.13
+C1.05.33 C2.05.15
+C1.05.34 C2.05.16
+C1.05.35 C2.05.17
+C1.05.36 C2.05.18
+C1.05.37 C2.06.19 C2.05.16
+C1.05.38 C2.04.15
+C1.05.39 C2.05.19
+C1.05.40 C2.05.20 C2.05.18
+C1.05.41 C2.05.21
+C1.05.42 C2.05.22 C2.05.19
+C1.05.43 C2.05.20
+C1.05.44 C2.05.23 C2.05.21
+C1.05.45 C2.05.22
+C1.05.46 C2.05.23
+C1.05.47 C2.05.24
+C1.05.48 C2.04.22
+C1.05.49 C2.05.25
+C1.05.50 C2.05.26
+C1.05.51 C2.06.27 C2.05.25
+C1.05.52 C2.05.27 C2.05.26
+C1.05.53 C2.05.27
+C1.05.54 C2.05.27
+C1.05.55 C2.05.27
+C1.05.56 C2.05.28
+C1.05.57 C2.05.27
+C1.05.58 C2.05.28
+C1.05.59 C2.05.30 C2.05.29
+C1.05.60 C2.05.28
+C1.05.61 C2.05.30 C2.05.31
+C1.05.62 C2.05.31
+C1.06.12 C2.06.05
+C1.06.13 C2.07.03
+C1.06.14 C2.06.02
+C1.06.15 C2.06.01 C2.06.05
+C1.06.16 C2.06.04 C2.06.02
+C1.06.17 C2.06.05 C2.06.03 C2.06.00 C2.05.01
+C1.06.18 C2.06.06
+C1.06.19 C2.06.04
+C1.06.20 C2.06.05
+C1.06.21 C2.07.07
+C1.06.22 C2.06.07 C2.06.06
+C1.06.23 C2.06.09
+C1.06.24 C2.06.07
+C1.06.25 C2.06.08
+C1.06.26 C2.06.10
+C1.06.27 C2.06.11 C2.06.09
+C1.06.28 C2.06.12
+C1.06.29 C2.06.11
+C1.06.30 C2.06.15 C2.06.12
+C1.06.31 C2.06.13
+C1.06.32 C2.06.14
+C1.06.33 C2.07.14 C2.06.13
+C1.06.34 C2.06.15
+C1.06.35 C2.06.17 C2.06.14
+C1.06.36 C2.06.16
+C1.06.37 C2.06.17
+C1.06.38 C2.07.17 C2.06.16
+C1.06.39 C2.06.18
+C1.06.40 C2.06.19
+C1.06.41 C2.06.20 C2.06.18
+C1.06.42 C2.06.21
+C1.06.43 C2.06.22 C2.06.21
+C1.06.44 C2.06.23
+C1.06.45 C2.06.22
+C1.06.46 C2.06.24 C2.06.23
+C1.06.47 C2.06.24
+C1.06.48 C2.06.25 C2.05.24
+C1.06.49 C2.06.25
+C1.06.50 C2.06.26
+C1.06.51 C2.06.27
+C1.06.52 C2.06.28
+C1.06.53 C2.06.28
+C1.06.54 C2.06.28
+C1.06.55 C2.06.28
+C1.06.56 C2.05.29
+C1.06.57 C2.06.28
+C1.06.58 C2.06.29
+C1.06.59 C2.06.30
+C1.06.60 C2.06.31 C2.06.29
+C1.06.61 C2.06.31 C2.06.30 C2.05.30
+C1.06.62 C2.06.31 C2.06.30
+C1.07.14 C2.07.00
+C1.07.15 C2.07.02 C2.07.00
+C1.07.16 C2.07.01 C2.07.02
+C1.07.17 C2.07.03
+C1.07.18 C2.07.04 C2.07.03
+C1.07.19 C2.07.04
+C1.07.20 C2.07.05
+C1.07.21 C2.07.06 C2.07.05
+C1.07.22 C2.07.06
+C1.07.23 C2.07.08 C2.07.07
+C1.07.24 C2.07.08
+C1.07.25 C2.07.09
+C1.07.26 C2.07.10 C2.07.09
+C1.07.27 C2.07.10
+C1.07.28 C2.07.11 C2.06.10
+C1.07.29 C2.07.11
+C1.07.30 C2.07.12
+C1.07.31 C2.07.13 C2.07.12
+C1.07.32 C2.07.13
+C1.07.33 C2.07.14
+C1.07.34 C2.07.15
+C1.07.35 C2.07.16 C2.07.15
+C1.07.36 C2.07.16
+C1.07.37 C2.07.17
+C1.07.38 C2.07.18
+C1.07.39 C2.07.19 C2.07.18
+C1.07.40 C2.07.19
+C1.07.41 C2.06.20
+C1.07.42 C2.07.20
+C1.07.43 C2.07.21 C2.07.20
+C1.07.44 C2.07.21
+C1.07.45 C2.07.22
+C1.07.46 C2.07.23 C2.07.22
+C1.07.47 C2.07.23
+C1.07.48 C2.07.24
+C1.07.49 C2.07.25 C2.07.24
+C1.07.50 C2.07.25
+C1.07.51 C2.07.26 C2.06.26
+C1.07.52 C2.07.26
+C1.07.53 C2.06.28
+C1.07.54 C2.07.27
+C1.07.55 C2.07.27
+C1.07.56 C2.07.27
+C1.07.57 C2.07.27
+C1.07.58 C2.07.27
+C1.07.59 C2.07.27
+C1.07.60 C2.07.28
+C1.07.61 C2.07.29 C2.07.28
+C1.07.62 C2.07.29
+C1.08.15 C2.08.02
+C1.08.16 C2.08.02 C2.08.01
+C1.08.17 C2.08.01 C2.08.00
+C1.08.18 C2.08.03
+C1.08.19 C2.08.03 C2.08.04
+C1.08.20 C2.08.04
+C1.08.21 C2.08.05
+C1.08.22 C2.08.05 C2.08.06
+C1.08.23 C2.08.06
+C1.08.24 C2.08.07 C2.08.08
+C1.08.25 C2.08.08
+C1.08.26 C2.08.09
+C1.08.27 C2.08.09 C2.08.10
+C1.08.28 C2.08.10
+C1.08.29 C2.09.10 C2.08.11
+C1.08.30 C2.08.11
+C1.08.31 C2.08.12
+C1.08.32 C2.08.12 C2.08.13
+C1.08.33 C2.08.13
+C1.08.34 C2.08.14
+C1.08.35 C2.08.15
+C1.08.36 C2.08.15 C2.08.16
+C1.08.37 C2.08.16
+C1.08.38 C2.08.17
+C1.08.39 C2.08.18
+C1.08.40 C2.08.18 C2.08.19
+C1.08.41 C2.08.19
+C1.08.42 C2.09.20
+C1.08.43 C2.08.20
+C1.08.44 C2.08.20 C2.08.21
+C1.08.45 C2.08.21
+C1.08.46 C2.08.22
+C1.08.47 C2.08.22 C2.08.23
+C1.08.48 C2.08.23
+C1.08.49 C2.08.24
+C1.08.50 C2.08.24 C2.08.25
+C1.08.51 C2.08.25
+C1.08.52 C2.09.26 C2.08.26
+C1.08.53 C2.08.26
+C1.08.54 C2.08.27
+C1.08.55 C2.08.27
+C1.08.56 C2.08.27
+C1.08.57 C2.08.27
+C1.08.58 C2.08.27
+C1.08.59 C2.08.27
+C1.08.60 C2.08.28
+C1.08.61 C2.08.28 C2.08.29
+C1.08.62 C2.08.29
+C1.09.12 C2.09.01
+C1.09.13 C2.08.03
+C1.09.14 C2.09.06
+C1.09.15 C2.09.01 C2.09.03
+C1.09.16 C2.09.02 C2.09.04
+C1.09.17 C2.10.06 C2.09.00 C2.09.05
+C1.09.18 C2.09.06
+C1.09.19 C2.09.04
+C1.09.20 C2.09.05
+C1.09.21 C2.08.07
+C1.09.22 C2.09.06 C2.09.07
+C1.09.23 C2.09.09
+C1.09.24 C2.09.07
+C1.09.25 C2.09.08
+C1.09.26 C2.09.10
+C1.09.27 C2.09.09 C2.09.11
+C1.09.28 C2.09.12
+C1.09.29 C2.09.11
+C1.09.30 C2.09.12 C2.09.15
+C1.09.31 C2.09.13
+C1.09.32 C2.09.14
+C1.09.33 C2.09.13 C2.08.14
+C1.09.34 C2.09.15
+C1.09.35 C2.09.14 C2.09.17
+C1.09.36 C2.09.16
+C1.09.37 C2.09.17
+C1.09.38 C2.09.16 C2.08.17
+C1.09.39 C2.09.18
+C1.09.40 C2.09.19
+C1.09.41 C2.09.18 C2.09.20
+C1.09.42 C2.09.21
+C1.09.43 C2.09.21 C2.09.22
+C1.09.44 C2.09.23
+C1.09.45 C2.09.22
+C1.09.46 C2.09.23 C2.09.24
+C1.09.47 C2.09.24
+C1.09.48 C2.10.24 C2.09.25
+C1.09.49 C2.09.25
+C1.09.50 C2.09.26
+C1.09.51 C2.09.27
+C1.09.52 C2.09.28
+C1.09.53 C2.09.28
+C1.09.54 C2.09.28
+C1.09.55 C2.09.28
+C1.09.56 C2.09.28
+C1.09.57 C2.09.29
+C1.09.58 C2.09.28
+C1.09.59 C2.09.29 C2.09.30
+C1.09.60 C2.09.30
+C1.09.61 C2.10.29 C2.09.31
+C1.09.62 C2.09.31
+C1.10.11 C2.10.03
+C1.10.12 C2.10.00 C2.10.06 C2.09.00
+C1.10.13 C2.11.01 C2.10.02 C2.10.04
+C1.10.14 C2.10.01 C2.10.07
+C1.10.15 C2.10.07 C2.10.05 C2.10.03
+C1.10.16 C2.10.00 C2.10.06
+C1.10.17 C2.10.02 C2.10.04 C2.10.08
+C1.10.18 C2.10.07
+C1.10.19 C2.10.09
+C1.10.20 C2.10.06 C2.09.08
+C1.10.21 C2.10.08
+C1.10.22 C2.10.10
+C1.10.23 C2.10.09 C2.10.11
+C1.10.24 C2.11.06
+C1.10.25 C2.10.12
+C1.10.26 C2.10.10 C2.10.14
+C1.10.27 C2.10.11
+C1.10.28 C2.10.13
+C1.10.29 C2.10.12 C2.10.15
+C1.10.30 C2.10.14
+C1.10.31 C2.10.13 C2.10.17
+C1.10.32 C2.10.15
+C1.10.33 C2.10.16
+C1.10.34 C2.10.17
+C1.10.35 C2.10.16 C2.09.19
+C1.10.36 C2.10.18
+C1.10.37 C2.11.15
+C1.10.38 C2.10.19
+C1.10.39 C2.10.18 C2.10.20
+C1.10.40 C2.10.21
+C1.10.41 C2.10.19 C2.10.22
+C1.10.42 C2.10.20
+C1.10.43 C2.10.21 C2.10.23
+C1.10.44 C2.10.22
+C1.10.45 C2.10.23
+C1.10.46 C2.10.24
+C1.10.47 C2.11.22
+C1.10.48 C2.10.25
+C1.10.49 C2.10.26
+C1.10.50 C2.10.25 C2.09.27
+C1.10.51 C2.10.26 C2.10.27
+C1.10.52 C2.10.27
+C1.10.53 C2.10.27
+C1.10.54 C2.10.27
+C1.10.55 C2.10.28
+C1.10.56 C2.10.27
+C1.10.57 C2.10.28
+C1.10.58 C2.10.29
+C1.10.59 C2.10.28
+C1.10.60 C2.10.30 C2.10.31
+C1.10.61 C2.10.30 C2.10.31
+C1.10.62 C2.10.31
+C1.11.12 C2.11.00
+C1.11.13 C2.11.00
+C1.11.14 C2.11.00
+C1.11.15 C2.11.01
+C1.11.16 C2.11.02
+C1.11.17 C2.11.03
+C1.11.18 C2.11.04
+C1.11.19 C2.11.05
+C1.11.20 C2.11.01 C2.11.06
+C1.11.21 C2.11.02 C2.11.07
+C1.11.22 C2.11.03 C2.11.08
+C1.11.23 C2.11.04 C2.11.09
+C1.11.24 C2.11.05 C2.11.10
+C1.11.25 C2.11.07
+C1.11.26 C2.11.08
+C1.11.27 C2.11.09
+C1.11.28 C2.11.10
+C1.11.29 C2.11.11
+C1.11.30 C2.11.12
+C1.11.31 C2.11.13
+C1.11.32 C2.11.14
+C1.11.33 C2.11.11 C2.11.15
+C1.11.34 C2.11.12 C2.11.16
+C1.11.35 C2.11.13 C2.11.17
+C1.11.36 C2.11.14 C2.11.18
+C1.11.37 C2.11.16
+C1.11.38 C2.11.17
+C1.11.39 C2.11.18
+C1.11.40 C2.11.19
+C1.11.41 C2.11.20
+C1.11.42 C2.11.21
+C1.11.43 C2.11.19 C2.11.22
+C1.11.44 C2.11.20 C2.11.23
+C1.11.45 C2.11.21 C2.11.24
+C1.11.46 C2.11.23
+C1.11.47 C2.11.24
+C1.11.48 C2.11.25
+C1.11.49 C2.11.26
+C1.11.50 C2.11.25
+C1.11.51 C2.11.25
+C1.11.52 C2.11.26
+C1.11.53 C2.11.26
+C1.11.54 C2.10.28
+C1.11.55 C2.10.28
+C1.11.56 C2.11.27
+C1.11.57 C2.11.28
+C1.11.58 C2.10.28
+C1.11.59 C2.11.27 C2.11.29
+C1.11.60 C2.11.28 C2.11.30
+C1.11.61 C2.11.29
+C1.11.62 C2.11.30
+C1.12.12 C2.12.00
+C1.12.13 C2.12.00
+C1.12.14 C2.12.00
+C1.12.15 C2.12.01
+C1.12.16 C2.12.02
+C1.12.17 C2.12.03
+C1.12.18 C2.12.04
+C1.12.19 C2.12.05
+C1.12.20 C2.12.01 C2.12.06
+C1.12.21 C2.12.02 C2.12.07
+C1.12.22 C2.12.03 C2.12.08
+C1.12.23 C2.12.04 C2.12.09
+C1.12.24 C2.12.05 C2.12.10
+C1.12.25 C2.12.07
+C1.12.26 C2.12.08
+C1.12.27 C2.12.09
+C1.12.28 C2.12.10
+C1.12.29 C2.12.11
+C1.12.30 C2.12.12
+C1.12.31 C2.12.13
+C1.12.32 C2.12.14
+C1.12.33 C2.12.11 C2.12.15
+C1.12.34 C2.12.12 C2.12.16
+C1.12.35 C2.12.13 C2.12.17
+C1.12.36 C2.12.14 C2.12.18
+C1.12.37 C2.12.16
+C1.12.38 C2.12.17
+C1.12.39 C2.12.18
+C1.12.40 C2.12.19
+C1.12.41 C2.12.20
+C1.12.42 C2.12.21
+C1.12.43 C2.12.19 C2.12.22
+C1.12.44 C2.12.20 C2.12.23
+C1.12.45 C2.12.21 C2.12.24
+C1.12.46 C2.12.23
+C1.12.47 C2.12.24
+C1.12.48 C2.12.25
+C1.12.49 C2.12.26
+C1.12.50 C2.12.25
+C1.12.51 C2.12.25
+C1.12.52 C2.12.26
+C1.12.53 C2.12.26
+C1.12.54 C2.13.28
+C1.12.55 C2.13.28
+C1.12.56 C2.12.27
+C1.12.57 C2.12.28
+C1.12.58 C2.13.28
+C1.12.59 C2.12.27 C2.12.29
+C1.12.60 C2.12.28 C2.12.30
+C1.12.61 C2.12.29
+C1.12.62 C2.12.30
+C1.13.12 C2.13.01
+C1.13.13 C2.13.03
+C1.13.14 C2.12.01 C2.13.04 C2.13.02
+C1.13.15 C2.13.00 C2.13.07
+C1.13.16 C2.13.07 C2.13.05 C2.13.03
+C1.13.17 C2.13.06
+C1.13.18 C2.13.04 C2.13.02 C2.13.08
+C1.13.19 C2.13.07
+C1.13.20 C2.13.09
+C1.13.21 C2.13.06 C2.14.08
+C1.13.22 C2.13.08
+C1.13.23 C2.13.10
+C1.13.24 C2.13.09 C2.13.11
+C1.13.25 C2.12.06
+C1.13.26 C2.13.12
+C1.13.27 C2.13.10 C2.13.14
+C1.13.28 C2.13.11
+C1.13.29 C2.13.13
+C1.13.30 C2.13.12 C2.13.15
+C1.13.31 C2.13.14
+C1.13.32 C2.13.13 C2.13.17
+C1.13.33 C2.13.15
+C1.13.34 C2.13.16
+C1.13.35 C2.13.17
+C1.13.36 C2.13.16 C2.14.19
+C1.13.37 C2.13.18
+C1.13.38 C2.12.15
+C1.13.39 C2.13.19
+C1.13.40 C2.13.18 C2.13.20
+C1.13.41 C2.13.21
+C1.13.42 C2.13.19 C2.13.22
+C1.13.43 C2.13.20
+C1.13.44 C2.13.21 C2.13.23
+C1.13.45 C2.13.22
+C1.13.46 C2.13.23
+C1.13.47 C2.13.24
+C1.13.48 C2.12.22
+C1.13.49 C2.13.25
+C1.13.50 C2.13.26
+C1.13.51 C2.13.25 C2.14.27
+C1.13.52 C2.13.26 C2.13.27
+C1.13.53 C2.13.27
+C1.13.54 C2.13.27
+C1.13.55 C2.13.27
+C1.13.56 C2.13.28
+C1.13.57 C2.13.27
+C1.13.58 C2.13.28
+C1.13.59 C2.13.30 C2.13.29
+C1.13.60 C2.13.28
+C1.13.61 C2.13.31 C2.13.30
+C1.13.62 C2.13.31
+C1.14.12 C2.14.05
+C1.14.13 C2.15.03
+C1.14.14 C2.14.02
+C1.14.15 C2.14.05 C2.14.01
+C1.14.16 C2.14.02 C2.14.04
+C1.14.17 C2.13.01 C2.14.00 C2.14.03 C2.14.05
+C1.14.18 C2.14.06
+C1.14.19 C2.14.04
+C1.14.20 C2.14.05
+C1.14.21 C2.15.07
+C1.14.22 C2.14.06 C2.14.07
+C1.14.23 C2.14.09
+C1.14.24 C2.14.07
+C1.14.25 C2.14.08
+C1.14.26 C2.14.10
+C1.14.27 C2.14.09 C2.14.11
+C1.14.28 C2.14.12
+C1.14.29 C2.14.11
+C1.14.30 C2.14.12 C2.14.15
+C1.14.31 C2.14.13
+C1.14.32 C2.14.14
+C1.14.33 C2.14.13 C2.15.14
+C1.14.34 C2.14.15
+C1.14.35 C2.14.14 C2.14.17
+C1.14.36 C2.14.16
+C1.14.37 C2.14.17
+C1.14.38 C2.14.16 C2.15.17
+C1.14.39 C2.14.18
+C1.14.40 C2.14.19
+C1.14.41 C2.14.18 C2.14.20
+C1.14.42 C2.14.21
+C1.14.43 C2.14.21 C2.14.22
+C1.14.44 C2.14.23
+C1.14.45 C2.14.22
+C1.14.46 C2.14.23 C2.14.24
+C1.14.47 C2.14.24
+C1.14.48 C2.13.24 C2.14.25
+C1.14.49 C2.14.25
+C1.14.50 C2.14.26
+C1.14.51 C2.14.27
+C1.14.52 C2.14.28
+C1.14.53 C2.14.28
+C1.14.54 C2.14.28
+C1.14.55 C2.14.28
+C1.14.56 C2.13.29
+C1.14.57 C2.14.28
+C1.14.58 C2.14.29
+C1.14.59 C2.14.30
+C1.14.60 C2.14.31 C2.14.29
+C1.14.61 C2.13.30 C2.14.31 C2.14.30
+C1.14.62 C2.14.31 C2.14.30
+C1.15.14 C2.15.00
+C1.15.15 C2.15.00 C2.15.02
+C1.15.16 C2.15.02 C2.15.01
+C1.15.17 C2.15.03
+C1.15.18 C2.15.03 C2.15.04
+C1.15.19 C2.15.04
+C1.15.20 C2.15.05
+C1.15.21 C2.15.05 C2.15.06
+C1.15.22 C2.15.06
+C1.15.23 C2.15.07 C2.15.08
+C1.15.24 C2.15.08
+C1.15.25 C2.15.09
+C1.15.26 C2.15.09 C2.15.10
+C1.15.27 C2.15.10
+C1.15.28 C2.14.10 C2.15.11
+C1.15.29 C2.15.11
+C1.15.30 C2.15.12
+C1.15.31 C2.15.12 C2.15.13
+C1.15.32 C2.15.13
+C1.15.33 C2.15.14
+C1.15.34 C2.15.15
+C1.15.35 C2.15.15 C2.15.16
+C1.15.36 C2.15.16
+C1.15.37 C2.15.17
+C1.15.38 C2.15.18
+C1.15.39 C2.15.18 C2.15.19
+C1.15.40 C2.15.19
+C1.15.41 C2.14.20
+C1.15.42 C2.15.20
+C1.15.43 C2.15.20 C2.15.21
+C1.15.44 C2.15.21
+C1.15.45 C2.15.22
+C1.15.46 C2.15.22 C2.15.23
+C1.15.47 C2.15.23
+C1.15.48 C2.15.24
+C1.15.49 C2.15.24 C2.15.25
+C1.15.50 C2.15.25
+C1.15.51 C2.14.26 C2.15.26
+C1.15.52 C2.15.26
+C1.15.53 C2.14.28
+C1.15.54 C2.15.27
+C1.15.55 C2.15.27
+C1.15.56 C2.15.27
+C1.15.57 C2.15.27
+C1.15.58 C2.15.27
+C1.15.59 C2.15.27
+C1.15.60 C2.15.28
+C1.15.61 C2.15.28 C2.15.29
+C1.15.62 C2.15.29
+C2.00.05 C3.00.02
+C2.00.06 C3.00.00
+C2.00.07 C3.00.01
+C2.00.08 C3.00.02 C3.00.01
+C2.00.09 C3.00.02
+C2.00.10 C3.00.03
+C2.00.11 C3.00.04 C3.00.01
+C2.00.12 C3.00.05 C3.00.02
+C2.00.13 C3.00.06 C3.00.03
+C2.00.14 C3.00.04
+C2.00.15 C3.00.05
+C2.00.16 C3.00.06
+C2.00.17 C3.00.07
+C2.00.18 C3.00.08
+C2.00.19 C3.00.09
+C2.00.20 C3.00.10 C3.00.08
+C2.00.21 C3.00.11 C3.00.09
+C2.00.22 C3.00.10
+C2.00.23 C3.00.11
+C2.00.24 C3.00.12
+C2.00.25 C3.00.13
+C2.00.26 C3.00.14 C3.00.13
+C2.00.27 C3.00.14
+C2.00.28 C3.00.15 C3.01.14
+C2.00.29 C3.00.15
+C2.01.05 C3.01.00
+C2.01.06 C3.01.00
+C2.01.07 C3.01.01 C3.01.00
+C2.01.08 C3.01.00 C3.01.02 C3.02.00
+C2.01.09 C3.01.00
+C2.01.10 C3.00.01 C3.01.03 C3.01.01
+C2.01.11 C3.01.01 C3.01.00
+C2.01.12 C3.01.04 C3.01.02
+C2.01.13 C3.01.03
+C2.01.14 C3.01.06 C3.01.04 C3.02.05 C3.01.02
+C2.01.15 C3.01.04
+C2.01.16 C3.01.05
+C2.01.17 C3.01.06 C3.01.04
+C2.01.18 C3.01.07 C3.01.05
+C2.01.19 C3.01.06
+C2.01.20 C3.01.08 C3.00.07
+C2.01.21 C3.01.07
+C2.01.22 C3.01.08
+C2.01.23 C3.01.09
+C2.01.24 C3.01.10
+C2.01.25 C3.01.11 C3.01.10
+C2.01.26 C3.01.12 C3.00.12
+C2.01.27 C3.01.11
+C2.01.28 C3.01.12
+C2.01.29 C3.01.13
+C2.01.30 C3.01.14 C3.01.15
+C2.01.31 C3.01.14 C3.01.15
+C2.02.06 C3.02.00
+C2.02.07 C3.02.01
+C2.02.08 C3.02.02 C3.02.01
+C2.02.09 C3.02.03 C3.02.00 C3.02.01
+C2.02.10 C3.02.03 C3.02.01
+C2.02.11 C3.02.05 C3.01.02 C3.02.03 C3.02.00
+C2.02.12 C3.02.04 C3.02.02 C3.02.01
+C2.02.13 C3.02.06 C3.02.04 C3.03.05 C3.02.02
+C2.02.14 C3.02.05 C3.02.03
+C2.02.15 C3.02.07 C3.02.04
+C2.02.16 C3.01.06 C3.02.05
+C2.02.17 C3.02.08 C3.02.07 C3.02.06 C3.02.04
+C2.02.18 C3.02.09 C3.02.07
+C2.02.19 C3.02.10 C3.02.09 C3.02.08 C3.02.07
+C2.02.20 C3.02.09
+C2.02.21 C3.02.10 C3.02.08
+C2.02.22 C3.02.10 C3.02.09
+C2.02.23 C3.02.10
+C2.02.24 C3.02.11 C3.01.09
+C2.02.25 C3.02.11
+C2.02.26 C3.02.12
+C2.02.27 C3.02.13
+C2.02.28 C3.03.15 C3.02.13
+C2.02.29 C3.01.15 C3.01.13 C3.02.14
+C2.02.30 C3.01.15 C3.02.14
+C2.02.31 C3.02.14
+C2.03.02 C3.03.02
+C2.03.03 C3.03.03 C3.03.02
+C2.03.04 C3.03.04 C3.03.03 C3.03.00
+C2.03.05 C3.03.04 C3.03.01 C3.03.00
+C2.03.06 C3.03.05 C3.02.02 C3.03.02
+C2.03.07 C3.03.05 C3.03.02
+C2.03.08 C3.03.06 C3.03.03 C3.03.02
+C2.03.09 C3.03.07 C3.03.06 C3.03.04 C3.03.03
+C2.03.10 C3.03.07 C3.03.04
+C2.03.11 C3.02.06 C3.03.05
+C2.03.12 C3.03.08 C3.03.06
+C2.03.13 C3.03.09 C3.03.08 C3.03.07 C3.03.06
+C2.03.14 C3.03.09 C3.03.07
+C2.03.15 C3.02.08 C3.02.06
+C2.03.16 C3.03.10 C3.03.08
+C2.03.17 C3.03.11 C3.03.10 C3.03.09 C3.03.08
+C2.03.18 C3.03.11 C3.03.09
+C2.03.19 C3.03.12 C3.03.10
+C2.03.20 C3.03.13 C3.03.12 C3.03.11 C3.03.10
+C2.03.21 C3.03.13 C3.03.11
+C2.03.22 C3.03.12
+C2.03.23 C3.03.13 C3.03.12
+C2.03.24 C3.03.13
+C2.03.25 C3.03.14 C3.02.12
+C2.03.26 C3.03.14
+C2.03.27 C3.03.15
+C2.03.28 C3.03.15
+C2.03.29 C3.03.15
+C2.03.30 C3.03.15
+C2.04.02 C3.04.02
+C2.04.03 C3.04.02 C3.04.03
+C2.04.04 C3.04.03 C3.04.04 C3.04.00
+C2.04.05 C3.04.04 C3.04.00 C3.04.01
+C2.04.06 C3.04.05 C3.05.01 C3.04.02
+C2.04.07 C3.04.05 C3.04.02
+C2.04.08 C3.04.06 C3.04.02 C3.04.03
+C2.04.09 C3.04.06 C3.04.07 C3.04.03 C3.04.04
+C2.04.10 C3.04.07 C3.04.04
+C2.04.11 C3.05.06 C3.04.05
+C2.04.12 C3.04.08 C3.04.06
+C2.04.13 C3.04.08 C3.04.09 C3.04.06 C3.04.07
+C2.04.14 C3.04.09 C3.04.07
+C2.04.15 C3.05.08 C3.05.06
+C2.04.16 C3.04.10 C3.04.08
+C2.04.17 C3.04.10 C3.04.11 C3.04.08 C3.04.09
+C2.04.18 C3.04.11 C3.04.09
+C2.04.19 C3.04.12 C3.04.10
+C2.04.20 C3.04.12 C3.04.13 C3.04.10 C3.04.11
+C2.04.21 C3.04.13 C3.04.11
+C2.04.22 C3.04.12
+C2.04.23 C3.04.12 C3.04.13
+C2.04.24 C3.04.13
+C2.04.25 C3.05.12 C3.04.14
+C2.04.26 C3.04.14
+C2.04.27 C3.04.15
+C2.04.28 C3.04.15
+C2.04.29 C3.04.15
+C2.04.30 C3.04.15
+C2.05.06 C3.05.00
+C2.05.07 C3.05.02 C3.05.01
+C2.05.08 C3.05.01
+C2.05.09 C3.05.00 C3.05.03
+C2.05.10 C3.05.00 C3.05.03 C3.05.02
+C2.05.11 C3.06.03 C3.05.05 C3.05.00 C3.05.03
+C2.05.12 C3.05.04 C3.05.02 C3.05.01
+C2.05.13 C3.05.04 C3.05.06 C3.05.02 C3.04.05 C3.05.01
+C2.05.14 C3.05.05 C3.05.03
+C2.05.15 C3.05.07 C3.05.04
+C2.05.16 C3.06.07 C3.05.05
+C2.05.17 C3.05.07 C3.05.08 C3.05.04 C3.05.06
+C2.05.18 C3.05.09 C3.05.07
+C2.05.19 C3.05.09 C3.05.10 C3.05.07 C3.05.08
+C2.05.20 C3.05.09
+C2.05.21 C3.05.10 C3.05.08
+C2.05.22 C3.05.09 C3.05.10
+C2.05.23 C3.05.10
+C2.05.24 C3.06.10 C3.05.11
+C2.05.25 C3.05.11
+C2.05.26 C3.05.12
+C2.05.27 C3.05.13
+C2.05.28 C3.05.13 C3.04.15
+C2.05.29 C3.06.14 C3.05.14
+C2.05.30 C3.05.14 C3.05.15
+C2.05.31 C3.05.15
+C2.06.05 C3.06.01
+C2.06.06 C3.06.02
+C2.06.07 C3.06.02
+C2.06.08 C3.06.01 C3.06.03 C3.05.00
+C2.06.09 C3.06.02 C3.06.01
+C2.06.10 C3.07.01 C3.06.04 C3.06.00 C3.06.02
+C2.06.11 C3.06.02 C3.06.01
+C2.06.12 C3.06.05 C3.06.03
+C2.06.13 C3.06.04
+C2.06.14 C3.06.05 C3.06.07 C3.06.03 C3.05.05
+C2.06.15 C3.06.05
+C2.06.16 C3.06.06
+C2.06.17 C3.06.05 C3.06.07
+C2.06.18 C3.06.06 C3.06.08
+C2.06.19 C3.06.07
+C2.06.20 C3.07.07 C3.06.09
+C2.06.21 C3.06.08
+C2.06.22 C3.06.09
+C2.06.23 C3.06.10
+C2.06.24 C3.06.11
+C2.06.25 C3.06.11 C3.06.12
+C2.06.26 C3.07.12 C3.06.13
+C2.06.27 C3.06.12
+C2.06.28 C3.06.13
+C2.06.29 C3.06.14 C3.05.14
+C2.06.30 C3.06.15 C3.06.14
+C2.06.31 C3.06.15 C3.05.14
+C2.07.05 C3.07.02
+C2.07.06 C3.07.00
+C2.07.07 C3.07.01 C3.06.00
+C2.07.08 C3.07.01
+C2.07.09 C3.07.02
+C2.07.10 C3.07.03
+C2.07.11 C3.07.01 C3.07.04
+C2.07.12 C3.07.02 C3.07.05
+C2.07.13 C3.07.03 C3.07.06
+C2.07.14 C3.07.04
+C2.07.15 C3.07.05
+C2.07.16 C3.07.06
+C2.07.17 C3.07.07
+C2.07.18 C3.07.08
+C2.07.19 C3.07.09
+C2.07.20 C3.07.08 C3.07.10
+C2.07.21 C3.07.09 C3.07.11
+C2.07.22 C3.07.10
+C2.07.23 C3.07.11
+C2.07.24 C3.07.12
+C2.07.25 C3.07.13
+C2.07.26 C3.07.13 C3.07.14
+C2.07.27 C3.07.14
+C2.07.28 C3.07.15 C3.06.15
+C2.07.29 C3.07.15
+C2.08.05 C3.08.02
+C2.08.06 C3.08.00
+C2.08.07 C3.08.01
+C2.08.08 C3.08.01 C3.08.02
+C2.08.09 C3.08.02
+C2.08.10 C3.08.03
+C2.08.11 C3.08.01 C3.08.04
+C2.08.12 C3.08.02 C3.08.05
+C2.08.13 C3.08.03 C3.08.06
+C2.08.14 C3.08.04
+C2.08.15 C3.08.05
+C2.08.16 C3.08.06
+C2.08.17 C3.08.07
+C2.08.18 C3.08.08
+C2.08.19 C3.08.09
+C2.08.20 C3.08.08 C3.08.10
+C2.08.21 C3.08.09 C3.08.11
+C2.08.22 C3.08.10
+C2.08.23 C3.08.11
+C2.08.24 C3.08.12
+C2.08.25 C3.08.13
+C2.08.26 C3.08.13 C3.08.14
+C2.08.27 C3.08.14
+C2.08.28 C3.09.14 C3.08.15
+C2.08.29 C3.08.15
+C2.09.05 C3.09.00
+C2.09.06 C3.09.00
+C2.09.07 C3.09.00 C3.09.01
+C2.09.08 C3.10.00 C3.09.00 C3.09.02
+C2.09.09 C3.09.00
+C2.09.10 C3.09.01 C3.09.03 C3.08.01
+C2.09.11 C3.09.00 C3.09.01
+C2.09.12 C3.09.02 C3.09.04
+C2.09.13 C3.09.03
+C2.09.14 C3.09.02 C3.10.05 C3.09.04 C3.09.06
+C2.09.15 C3.09.04
+C2.09.16 C3.09.05
+C2.09.17 C3.09.04 C3.09.06
+C2.09.18 C3.09.05 C3.09.07
+C2.09.19 C3.09.06
+C2.09.20 C3.08.07 C3.09.08
+C2.09.21 C3.09.07
+C2.09.22 C3.09.08
+C2.09.23 C3.09.09
+C2.09.24 C3.09.10
+C2.09.25 C3.09.10 C3.09.11
+C2.09.26 C3.08.12 C3.09.12
+C2.09.27 C3.09.11
+C2.09.28 C3.09.12
+C2.09.29 C3.09.13
+C2.09.30 C3.09.15 C3.09.14
+C2.09.31 C3.09.15 C3.09.14
+C2.10.06 C3.10.00
+C2.10.07 C3.10.01
+C2.10.08 C3.10.02 C3.10.01
+C2.10.09 C3.10.01 C3.10.00 C3.10.03
+C2.10.10 C3.10.01 C3.10.03
+C2.10.11 C3.10.00 C3.10.03 C3.09.02 C3.10.05
+C2.10.12 C3.10.02 C3.10.01 C3.10.04
+C2.10.13 C3.10.02 C3.11.05 C3.10.04 C3.10.06
+C2.10.14 C3.10.03 C3.10.05
+C2.10.15 C3.10.04 C3.10.07
+C2.10.16 C3.10.05 C3.09.06
+C2.10.17 C3.10.04 C3.10.06 C3.10.07 C3.10.08
+C2.10.18 C3.10.07 C3.10.09
+C2.10.19 C3.10.07 C3.10.08 C3.10.09 C3.10.10
+C2.10.20 C3.10.09
+C2.10.21 C3.10.08 C3.10.10
+C2.10.22 C3.10.09 C3.10.10
+C2.10.23 C3.10.10
+C2.10.24 C3.09.09 C3.10.11
+C2.10.25 C3.10.11
+C2.10.26 C3.10.12
+C2.10.27 C3.10.13
+C2.10.28 C3.10.13 C3.11.15
+C2.10.29 C3.09.13 C3.10.14 C3.09.15
+C2.10.30 C3.10.14 C3.09.15
+C2.10.31 C3.10.14
+C2.11.02 C3.11.02
+C2.11.03 C3.11.03 C3.11.02
+C2.11.04 C3.11.00 C3.11.03 C3.11.04
+C2.11.05 C3.11.00 C3.11.01 C3.11.04
+C2.11.06 C3.11.02 C3.10.02 C3.11.05
+C2.11.07 C3.11.02 C3.11.05
+C2.11.08 C3.11.03 C3.11.02 C3.11.06
+C2.11.09 C3.11.03 C3.11.04 C3.11.06 C3.11.07
+C2.11.10 C3.11.04 C3.11.07
+C2.11.11 C3.11.05 C3.10.06
+C2.11.12 C3.11.06 C3.11.08
+C2.11.13 C3.11.06 C3.11.07 C3.11.08 C3.11.09
+C2.11.14 C3.11.07 C3.11.09
+C2.11.15 C3.10.06 C3.10.08
+C2.11.16 C3.11.08 C3.11.10
+C2.11.17 C3.11.08 C3.11.09 C3.11.10 C3.11.11
+C2.11.18 C3.11.09 C3.11.11
+C2.11.19 C3.11.10 C3.11.12
+C2.11.20 C3.11.10 C3.11.11 C3.11.12 C3.11.13
+C2.11.21 C3.11.11 C3.11.13
+C2.11.22 C3.11.12
+C2.11.23 C3.11.12 C3.11.13
+C2.11.24 C3.11.13
+C2.11.25 C3.10.12 C3.11.14
+C2.11.26 C3.11.14
+C2.11.27 C3.11.15
+C2.11.28 C3.11.15
+C2.11.29 C3.11.15
+C2.11.30 C3.11.15
+C2.12.02 C3.12.02
+C2.12.03 C3.12.03 C3.12.02
+C2.12.04 C3.12.00 C3.12.03 C3.12.04
+C2.12.05 C3.12.01 C3.12.00 C3.12.04
+C2.12.06 C3.12.02 C3.13.01 C3.12.05
+C2.12.07 C3.12.02 C3.12.05
+C2.12.08 C3.12.03 C3.12.02 C3.12.06
+C2.12.09 C3.12.03 C3.12.04 C3.12.07 C3.12.06
+C2.12.10 C3.12.04 C3.12.07
+C2.12.11 C3.12.05 C3.13.06
+C2.12.12 C3.12.06 C3.12.08
+C2.12.13 C3.12.07 C3.12.06 C3.12.09 C3.12.08
+C2.12.14 C3.12.07 C3.12.09
+C2.12.15 C3.13.06 C3.13.08
+C2.12.16 C3.12.08 C3.12.10
+C2.12.17 C3.12.09 C3.12.08 C3.12.11 C3.12.10
+C2.12.18 C3.12.09 C3.12.11
+C2.12.19 C3.12.10 C3.12.12
+C2.12.20 C3.12.11 C3.12.10 C3.12.13 C3.12.12
+C2.12.21 C3.12.11 C3.12.13
+C2.12.22 C3.12.12
+C2.12.23 C3.12.13 C3.12.12
+C2.12.24 C3.12.13
+C2.12.25 C3.12.14 C3.13.12
+C2.12.26 C3.12.14
+C2.12.27 C3.12.15
+C2.12.28 C3.12.15
+C2.12.29 C3.12.15
+C2.12.30 C3.12.15
+C2.13.06 C3.13.00
+C2.13.07 C3.13.01 C3.13.02
+C2.13.08 C3.13.01
+C2.13.09 C3.13.00 C3.13.03
+C2.13.10 C3.13.02 C3.13.00 C3.13.03
+C2.13.11 C3.13.00 C3.13.03 C3.13.05 C3.14.03
+C2.13.12 C3.13.01 C3.13.02 C3.13.04
+C2.13.13 C3.13.01 C3.12.05 C3.13.02 C3.13.06 C3.13.04
+C2.13.14 C3.13.03 C3.13.05
+C2.13.15 C3.13.04 C3.13.07
+C2.13.16 C3.13.05 C3.14.07
+C2.13.17 C3.13.06 C3.13.04 C3.13.08 C3.13.07
+C2.13.18 C3.13.07 C3.13.09
+C2.13.19 C3.13.08 C3.13.07 C3.13.10 C3.13.09
+C2.13.20 C3.13.09
+C2.13.21 C3.13.08 C3.13.10
+C2.13.22 C3.13.10 C3.13.09
+C2.13.23 C3.13.10
+C2.13.24 C3.13.11 C3.14.10
+C2.13.25 C3.13.11
+C2.13.26 C3.13.12
+C2.13.27 C3.13.13
+C2.13.28 C3.12.15 C3.13.13
+C2.13.29 C3.13.14 C3.14.14
+C2.13.30 C3.13.15 C3.13.14
+C2.13.31 C3.13.15
+C2.14.05 C3.14.01
+C2.14.06 C3.14.02
+C2.14.07 C3.14.02
+C2.14.08 C3.13.00 C3.14.01 C3.14.03
+C2.14.09 C3.14.01 C3.14.02
+C2.14.10 C3.14.02 C3.14.04 C3.14.00 C3.15.01
+C2.14.11 C3.14.01 C3.14.02
+C2.14.12 C3.14.03 C3.14.05
+C2.14.13 C3.14.04
+C2.14.14 C3.13.05 C3.14.03 C3.14.07 C3.14.05
+C2.14.15 C3.14.05
+C2.14.16 C3.14.06
+C2.14.17 C3.14.07 C3.14.05
+C2.14.18 C3.14.08 C3.14.06
+C2.14.19 C3.14.07
+C2.14.20 C3.14.09 C3.15.07
+C2.14.21 C3.14.08
+C2.14.22 C3.14.09
+C2.14.23 C3.14.10
+C2.14.24 C3.14.11
+C2.14.25 C3.14.12 C3.14.11
+C2.14.26 C3.14.13 C3.15.12
+C2.14.27 C3.14.12
+C2.14.28 C3.14.13
+C2.14.29 C3.13.14 C3.14.14
+C2.14.30 C3.14.14 C3.14.15
+C2.14.31 C3.13.14 C3.14.15
+C2.15.05 C3.15.02
+C2.15.06 C3.15.00
+C2.15.07 C3.14.00 C3.15.01
+C2.15.08 C3.15.01
+C2.15.09 C3.15.02
+C2.15.10 C3.15.03
+C2.15.11 C3.15.01 C3.15.04
+C2.15.12 C3.15.05 C3.15.02
+C2.15.13 C3.15.06 C3.15.03
+C2.15.14 C3.15.04
+C2.15.15 C3.15.05
+C2.15.16 C3.15.06
+C2.15.17 C3.15.07
+C2.15.18 C3.15.08
+C2.15.19 C3.15.09
+C2.15.20 C3.15.10 C3.15.08
+C2.15.21 C3.15.11 C3.15.09
+C2.15.22 C3.15.10
+C2.15.23 C3.15.11
+C2.15.24 C3.15.12
+C2.15.25 C3.15.13
+C2.15.26 C3.15.14 C3.15.13
+C2.15.27 C3.15.14
+C2.15.28 C3.14.15 C3.15.15
+C2.15.29 C3.15.15
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext_H6.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext_H6.txt
new file mode 100755
index 0000000000000000000000000000000000000000..cbba3509981ad946ed8a3cbda2c6c177a643a973
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsNext_H6.txt
@@ -0,0 +1,165 @@
+# 3D FCal Neighbors Next in Sampling for the H6 Beam Test 2004
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:16:32 2004
+#
+# 3d neighbors next in sampling are all cells touching the same
+# eta phi area in the next sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without next sampling neighbors are not listed.
+#
+A1.04.07 A2.04.01 A2.04.02
+A1.04.08 A2.04.09
+A1.04.09 A2.04.00 A2.04.08
+A1.04.10 A2.04.03 A2.04.04 A2.04.14
+A1.04.11 A2.04.09 A2.04.13
+A1.04.12 A2.04.08 A2.04.12
+A1.04.13 A2.04.13
+A1.04.14 A2.04.12
+A1.04.15 A2.04.13 A2.04.18
+A1.04.16 A2.04.12 A2.04.17
+A1.04.17 A2.04.18 A2.04.22
+A1.04.18 A2.04.17 A2.04.21
+A1.04.19 A2.04.21
+A1.04.20 A2.04.25
+A1.04.21 A2.04.24
+A1.04.22 A2.04.25 A2.04.28
+A1.04.23 A2.04.24 A2.04.27
+A1.04.24 A2.04.27
+A1.04.25 A2.04.30
+A1.04.26 A2.05.28 A2.04.30
+A1.04.27 A2.05.28
+A1.04.28 A2.04.31
+A1.04.29 A2.04.31
+A1.05.13 A2.04.02
+A1.05.14 A2.06.00
+A1.05.15 A2.05.01 A2.05.02 A2.05.03
+A1.05.16 A2.05.03 A2.05.06 A2.05.07
+A1.05.17 A2.05.07 A2.05.13
+A1.05.18 A2.05.00 A2.04.05 A2.05.08
+A1.05.19 A2.05.02 A2.05.03 A2.05.04 A2.05.05
+A1.05.20 A2.05.06 A2.05.07 A2.05.12
+A1.05.21 A2.06.05 A2.05.13
+A1.05.22 A2.05.08
+A1.05.23 A2.05.04 A2.05.05 A2.05.11
+A1.05.24 A2.05.12 A2.05.15
+A1.05.25 A2.04.14
+A1.05.26 A2.05.08 A2.05.10
+A1.05.27 A2.05.11 A2.05.14
+A1.05.28 A2.05.15
+A1.05.29 A2.05.09 A2.04.14
+A1.05.30 A2.05.10 A2.05.17
+A1.05.31 A2.05.14
+A1.05.32 A2.05.09 A2.05.16
+A1.05.33 A2.05.17
+A1.05.34 A2.05.21
+A1.05.35 A2.05.16
+A1.05.36 A2.06.16 A2.05.21
+A1.05.37 A2.05.20
+A1.05.38 A2.04.22
+A1.05.39 A2.05.19
+A1.05.40 A2.05.20 A2.05.24
+A1.05.41 A2.05.18
+A1.05.42 A2.05.19 A2.05.23
+A1.05.43 A2.05.24
+A1.05.44 A2.05.18 A2.05.22
+A1.05.45 A2.05.23
+A1.05.46 A2.05.22
+A1.05.47 A2.05.27
+A1.05.48 A2.04.28
+A1.05.49 A2.05.26
+A1.05.50 A2.05.25
+A1.05.51 A2.06.23 A2.05.26
+A1.05.52 A2.05.25 A2.05.29
+A1.05.53 A2.05.29
+A1.05.54 A2.05.29
+A1.05.55 A2.05.29
+A1.05.56 A2.05.28
+A1.05.57 A2.05.29
+A1.05.58 A2.05.28
+A1.05.59 A2.06.28
+A1.05.60 A2.05.28
+A1.05.61 A2.05.30 A2.05.31
+A1.05.62 A2.05.30 A2.05.31
+A1.05.63 A2.05.30
+A1.06.11 A2.06.04 A2.06.14
+A1.06.12 A2.06.02
+A1.06.13 A2.07.03 A2.06.14
+A1.06.14 A2.06.10
+A1.06.15 A2.06.02 A2.06.03
+A1.06.16 A2.06.04 A2.06.14
+A1.06.17 A2.06.01 A2.06.06
+A1.06.18 A2.06.10
+A1.06.19 A2.06.14
+A1.06.20 A2.06.06
+A1.06.21 A2.07.07
+A1.06.22 A2.06.10 A2.06.13
+A1.06.23 A2.06.09
+A1.06.24 A2.06.13
+A1.06.25 A2.06.05
+A1.06.26 A2.06.15
+A1.06.27 A2.06.09 A2.06.12
+A1.06.28 A2.06.08
+A1.06.29 A2.06.12
+A1.06.30 A2.06.08 A2.06.11
+A1.06.31 A2.06.22
+A1.06.32 A2.06.07
+A1.06.33 A2.07.14 A2.06.22
+A1.06.34 A2.06.11
+A1.06.35 A2.06.07 A2.06.17
+A1.06.36 A2.06.21
+A1.06.37 A2.06.17
+A1.06.38 A2.07.17 A2.06.21
+A1.06.39 A2.06.20
+A1.06.40 A2.06.16
+A1.06.41 A2.06.20 A2.06.27
+A1.06.42 A2.06.19
+A1.06.43 A2.06.19 A2.06.26
+A1.06.44 A2.06.18
+A1.06.45 A2.06.26
+A1.06.46 A2.06.18 A2.06.25
+A1.06.47 A2.06.25
+A1.06.48 A2.06.24 A2.05.27
+A1.06.49 A2.06.24
+A1.06.50 A2.06.30
+A1.06.51 A2.06.23
+A1.06.52 A2.06.29
+A1.06.53 A2.06.29
+A1.06.54 A2.06.29
+A1.06.55 A2.06.29
+A1.06.56 A2.06.29
+A1.06.57 A2.06.28
+A1.06.58 A2.06.29
+A1.06.59 A2.06.28
+A1.06.60 A2.06.28
+A1.06.61 A2.06.28
+A1.06.62 A2.06.28
+A1.07.04 A2.07.03
+A1.07.05 A2.07.03 A2.07.04
+A1.07.06 A2.07.04
+A1.07.07 A2.07.03 A2.07.07
+A1.07.08 A2.07.03 A2.07.04 A2.07.07 A2.07.08
+A1.07.09 A2.07.04 A2.07.08
+A1.07.10 A2.07.07 A2.07.08
+A1.07.11 A2.07.08
+A1.07.12 A2.07.09
+A1.07.13 A2.07.11 A2.06.15
+A1.07.14 A2.07.11
+A1.07.15 A2.07.12
+A1.07.16 A2.07.14
+A1.07.17 A2.07.15
+A1.07.18 A2.07.17
+A1.07.19 A2.07.18
+A1.07.20 A2.06.27
+A1.07.21 A2.07.20
+A1.07.22 A2.07.22
+A1.07.23 A2.07.22 A2.07.23
+A1.07.24 A2.07.24
+A1.07.25 A2.07.24 A2.07.25
+A1.07.26 A2.07.26 A2.06.30
+A1.07.27 A2.07.27
+A1.07.28 A2.07.27
+A1.07.29 A2.07.27
+A1.07.30 A2.07.28
+A1.07.31 A2.07.28 A2.07.29
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-April2011.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-April2011.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2ba4c397e4fa89c5506e7336d0e741a84ce047e1
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-April2011.txt
@@ -0,0 +1,1519 @@
+# 3D FCal Neighbors Prev in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Apr 20 10:35:58 2011
+#
+# 3d neighbors prev in sampling are all cells touching the same
+# eta phi area in the prev sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without prev sampling neighbors are not listed.
+#
+A2.00.00 A1.00.14 A1.00.15
+A2.00.01 A1.00.16
+A2.00.02 A1.00.15 A1.00.16
+A2.00.03 A1.00.17 A1.00.18 A1.01.13
+A2.00.04 A1.00.18 A1.00.19
+A2.00.05 A1.00.20 A1.00.21
+A2.00.06 A1.00.21 A1.00.22
+A2.00.07 A1.00.23 A1.01.21
+A2.00.08 A1.00.23 A1.00.24
+A2.00.09 A1.00.25 A1.00.26
+A2.00.10 A1.00.26 A1.00.27
+A2.00.11 A1.00.28 A1.00.29
+A2.00.12 A1.00.30 A1.00.31
+A2.00.13 A1.00.31 A1.00.32
+A2.00.14 A1.00.33 A1.01.33
+A2.00.15 A1.00.34 A1.00.35
+A2.00.16 A1.00.35 A1.00.36
+A2.00.17 A1.00.37 A1.01.38
+A2.00.18 A1.00.38 A1.00.39
+A2.00.19 A1.00.39 A1.00.40
+A2.00.20 A1.00.42 A1.00.43
+A2.00.21 A1.00.43 A1.00.44
+A2.00.22 A1.00.45 A1.00.46
+A2.00.23 A1.00.46 A1.00.47
+A2.00.24 A1.00.48 A1.00.49 A1.00.51 A1.01.50
+A2.00.25 A1.00.49 A1.00.50 A1.00.51 A1.00.52
+A2.00.26 A1.00.51 A1.00.52 A1.00.54 A1.00.55 A1.00.56
+A2.00.27 A1.00.54 A1.00.55 A1.00.56 A1.00.57 A1.00.58 A1.00.59 A1.00.60 A1.00.61 A1.00.62
+A2.00.28 A1.00.60 A1.00.61 A1.01.62
+A2.00.29 A1.00.61 A1.00.62
+A2.01.00 A1.01.17
+A2.01.01 A1.01.15
+A2.01.02 A1.01.14 A1.01.16
+A2.01.03 A1.01.17
+A2.01.04 A1.01.16 A1.01.19
+A2.01.05 A1.01.12 A1.01.15 A1.01.17 A1.01.20
+A2.01.06 A1.01.18 A1.01.22
+A2.01.07 A1.01.22 A1.01.24
+A2.01.08 A1.01.25 A1.02.21
+A2.01.09 A1.01.23 A1.01.27
+A2.01.10 A1.00.28 A1.01.26
+A2.01.11 A1.01.27 A1.01.29
+A2.01.12 A1.01.28 A1.01.30
+A2.01.13 A1.01.31 A1.01.33
+A2.01.14 A1.01.32 A1.01.35
+A2.01.15 A1.01.30 A1.01.34
+A2.01.16 A1.01.36 A1.01.38
+A2.01.17 A1.01.35 A1.01.37
+A2.01.18 A1.01.39 A1.01.41
+A2.01.19 A1.01.40 A1.02.37
+A2.01.20 A1.00.41 A1.01.41
+A2.01.21 A1.01.42 A1.01.43
+A2.01.22 A1.01.43 A1.01.45
+A2.01.23 A1.01.44 A1.01.46 A1.01.48 A1.02.47
+A2.01.24 A1.01.46 A1.01.47 A1.01.48 A1.01.49
+A2.01.25 A1.01.48 A1.01.49 A1.01.51 A1.02.51
+A2.01.26 A1.00.51 A1.00.53 A1.01.50 A1.01.52 A1.01.53
+A2.01.27 A1.01.51 A1.02.51 A1.02.52 A1.02.53 A1.02.55
+A2.01.28 A1.00.53 A1.01.52 A1.01.53 A1.01.54 A1.01.55 A1.01.56 A1.01.57 A1.01.58 A1.01.59
+A2.01.29 A1.01.58 A1.01.60
+A2.01.30 A1.01.59 A1.01.61 A1.01.62
+A2.01.31 A1.01.60 A1.01.61 A1.01.62
+A2.02.00 A1.02.15
+A2.02.01 A1.01.17 A1.02.13
+A2.02.02 A1.02.14 A1.02.18
+A2.02.03 A1.02.12 A1.02.16
+A2.02.04 A1.02.14 A1.02.18 A1.03.15 A1.03.20
+A2.02.05 A1.02.16
+A2.02.06 A1.02.17 A1.02.21
+A2.02.07 A1.02.15 A1.02.16 A1.02.19
+A2.02.08 A1.02.18 A1.02.22 A1.02.25 A1.03.20
+A2.02.09 A1.02.20 A1.02.24
+A2.02.10 A1.02.23 A1.02.27
+A2.02.11 A1.02.24 A1.02.28
+A2.02.12 A1.02.26 A1.02.29 A1.02.30 A1.02.32
+A2.02.13 A1.02.29 A1.02.32 A1.03.29 A1.03.33
+A2.02.14 A1.02.27 A1.02.31
+A2.02.15 A1.02.30 A1.02.32 A1.02.33 A1.02.35
+A2.02.16 A1.02.34 A1.02.37
+A2.02.17 A1.02.32 A1.02.35 A1.02.38 A1.03.33
+A2.02.18 A1.02.36 A1.02.39 A1.02.40 A1.02.42
+A2.02.19 A1.02.39 A1.02.41 A1.02.42 A1.02.44
+A2.02.20 A1.02.40 A1.02.42 A1.02.43 A1.02.45
+A2.02.21 A1.02.41 A1.02.44 A1.03.40 A1.03.43
+A2.02.22 A1.02.42 A1.02.44 A1.02.45 A1.02.46
+A2.02.23 A1.02.44 A1.02.46 A1.02.48 A1.03.43
+A2.02.24 A1.01.48 A1.02.47 A1.02.49 A1.02.51
+A2.02.25 A1.02.49 A1.02.50 A1.02.51 A1.02.52
+A2.02.26 A1.02.50 A1.02.52 A1.03.48 A1.03.50
+A2.02.27 A1.02.52 A1.02.53 A1.02.54 A1.02.55 A1.02.56 A1.02.57 A1.02.58 A1.03.54
+A2.02.28 A1.02.56 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.56 A1.03.58 A1.03.59 A1.03.61
+A2.02.29 A1.01.56 A1.02.59
+A2.02.30 A1.01.61 A1.02.59 A1.02.61 A1.02.62
+A2.02.31 A1.02.61 A1.02.62
+A2.03.00 A1.03.12 A1.03.13 A1.03.14 A1.04.14
+A2.03.01 A1.02.14 A1.03.15 A1.03.16 A1.03.20 A1.03.21
+A2.03.02 A1.03.16 A1.03.17 A1.03.21 A1.03.22
+A2.03.03 A1.03.17 A1.03.18 A1.03.22 A1.03.23
+A2.03.04 A1.03.18 A1.03.19 A1.03.23 A1.03.24
+A2.03.05 A1.03.19 A1.03.24 A1.04.19 A1.04.24
+A2.03.06 A1.02.25 A1.03.20 A1.03.21 A1.03.25
+A2.03.07 A1.03.21 A1.03.22 A1.03.25 A1.03.26
+A2.03.08 A1.03.22 A1.03.23 A1.03.26 A1.03.27
+A2.03.09 A1.03.23 A1.03.24 A1.03.27 A1.03.28
+A2.03.10 A1.03.24 A1.03.28 A1.04.24 A1.04.28
+A2.03.11 A1.03.29 A1.03.30 A1.03.33 A1.03.34
+A2.03.12 A1.03.30 A1.03.31 A1.03.34 A1.03.35
+A2.03.13 A1.03.31 A1.03.32 A1.03.35 A1.03.36
+A2.03.14 A1.03.32 A1.03.36 A1.04.32 A1.04.36
+A2.03.15 A1.02.38 A1.03.33 A1.03.34 A1.03.37
+A2.03.16 A1.03.34 A1.03.35 A1.03.37 A1.03.38
+A2.03.17 A1.03.35 A1.03.36 A1.03.38 A1.03.39
+A2.03.18 A1.03.36 A1.03.39 A1.04.36 A1.04.39
+A2.03.19 A1.03.40 A1.03.41 A1.03.43 A1.03.44
+A2.03.20 A1.03.41 A1.03.42 A1.03.44 A1.03.45
+A2.03.21 A1.03.42 A1.03.45 A1.04.42 A1.04.45
+A2.03.22 A1.02.48 A1.03.43 A1.03.44 A1.03.46
+A2.03.23 A1.03.44 A1.03.45 A1.03.46 A1.03.47
+A2.03.24 A1.03.45 A1.03.47 A1.04.45 A1.04.47
+A2.03.25 A1.03.48 A1.03.49 A1.03.50 A1.03.51 A1.03.52
+A2.03.26 A1.03.49 A1.03.52 A1.03.53 A1.04.49 A1.04.53
+A2.03.27 A1.03.56 A1.03.57 A1.03.59 A1.03.60
+A2.03.28 A1.03.57 A1.03.60 A1.04.57 A1.04.60
+A2.03.29 A1.03.59 A1.03.60 A1.03.61 A1.03.62
+A2.03.30 A1.03.60 A1.03.62 A1.04.60 A1.04.62
+A2.04.00 A1.04.12 A1.04.13 A1.04.14
+A2.04.01 A1.04.15 A1.04.20 A1.05.13 A1.05.17
+A2.04.02 A1.04.15 A1.04.16 A1.04.20 A1.04.21
+A2.04.03 A1.04.16 A1.04.17 A1.04.21 A1.04.22
+A2.04.04 A1.04.17 A1.04.18 A1.04.22 A1.04.23
+A2.04.05 A1.04.18 A1.04.19 A1.04.23 A1.04.24
+A2.04.06 A1.04.20 A1.05.17 A1.05.21 A1.05.24
+A2.04.07 A1.04.20 A1.04.21 A1.04.25 A1.05.24
+A2.04.08 A1.04.21 A1.04.22 A1.04.25 A1.04.26
+A2.04.09 A1.04.22 A1.04.23 A1.04.26 A1.04.27
+A2.04.10 A1.04.23 A1.04.24 A1.04.27 A1.04.28
+A2.04.11 A1.04.29 A1.04.33 A1.05.28 A1.05.31
+A2.04.12 A1.04.29 A1.04.30 A1.04.33 A1.04.34
+A2.04.13 A1.04.30 A1.04.31 A1.04.34 A1.04.35
+A2.04.14 A1.04.31 A1.04.32 A1.04.35 A1.04.36
+A2.04.15 A1.04.33 A1.05.31 A1.05.34 A1.05.37
+A2.04.16 A1.04.33 A1.04.34 A1.04.37 A1.05.37
+A2.04.17 A1.04.34 A1.04.35 A1.04.37 A1.04.38
+A2.04.18 A1.04.35 A1.04.36 A1.04.38 A1.04.39
+A2.04.19 A1.04.40 A1.04.43 A1.05.40 A1.05.43
+A2.04.20 A1.04.40 A1.04.41 A1.04.43 A1.04.44
+A2.04.21 A1.04.41 A1.04.42 A1.04.44 A1.04.45
+A2.04.22 A1.04.43 A1.05.43 A1.05.45 A1.05.47
+A2.04.23 A1.04.43 A1.04.44 A1.04.46 A1.05.47
+A2.04.24 A1.04.44 A1.04.45 A1.04.46 A1.04.47
+A2.04.25 A1.04.48 A1.04.50 A1.04.51 A1.05.49 A1.05.51
+A2.04.26 A1.04.48 A1.04.49 A1.04.51 A1.04.52 A1.04.53
+A2.04.27 A1.04.55 A1.04.56 A1.04.58 A1.04.59
+A2.04.28 A1.04.56 A1.04.57 A1.04.59 A1.04.60
+A2.04.29 A1.04.58 A1.04.59 A1.04.61 A1.05.59
+A2.04.30 A1.04.59 A1.04.60 A1.04.61 A1.04.62
+A2.05.00 A1.05.11
+A2.05.01 A1.05.14
+A2.05.02 A1.05.09 A1.05.13 A1.05.14 A1.05.17
+A2.05.03 A1.05.12 A1.05.15
+A2.05.04 A1.05.13 A1.05.17
+A2.05.05 A1.05.15
+A2.05.06 A1.05.11 A1.05.16 A1.05.20 A1.06.17
+A2.05.07 A1.05.10 A1.05.14 A1.05.15 A1.05.18
+A2.05.08 A1.05.14 A1.05.17 A1.05.18 A1.05.21
+A2.05.09 A1.05.16 A1.05.19 A1.05.20 A1.05.23
+A2.05.10 A1.05.19 A1.05.22 A1.05.23 A1.05.26
+A2.05.11 A1.05.20 A1.05.23 A1.05.27 A1.06.25
+A2.05.12 A1.05.22 A1.05.25 A1.05.26 A1.05.29
+A2.05.13 A1.05.25 A1.05.28 A1.05.29 A1.05.31
+A2.05.14 A1.05.23 A1.05.26 A1.05.27 A1.05.30
+A2.05.15 A1.05.26 A1.05.29 A1.05.30 A1.05.32
+A2.05.16 A1.05.33 A1.05.35 A1.06.32 A1.06.35
+A2.05.17 A1.05.29 A1.05.31 A1.05.32 A1.05.34
+A2.05.18 A1.05.33 A1.05.35 A1.05.36 A1.05.39
+A2.05.19 A1.05.36 A1.05.38 A1.05.39 A1.05.41
+A2.05.20 A1.05.35 A1.05.39 A1.05.42 A1.06.40
+A2.05.21 A1.05.38 A1.05.40 A1.05.41 A1.05.43
+A2.05.22 A1.05.39 A1.05.41 A1.05.42 A1.05.44
+A2.05.23 A1.05.41 A1.05.43 A1.05.44 A1.05.45
+A2.05.24 A1.05.46 A1.06.44 A1.06.46 A1.06.48
+A2.05.25 A1.05.46 A1.05.48 A1.05.50 A1.06.48
+A2.05.26 A1.05.48 A1.05.49 A1.05.50 A1.05.51
+A2.05.27 A1.05.50 A1.05.51 A1.05.52 A1.05.53 A1.05.54 A1.05.56 A1.06.51
+A2.05.28 A1.04.54 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.55 A1.05.56 A1.05.57 A1.05.59
+A2.05.29 A1.05.58 A1.06.57 A1.06.59 A1.06.61
+A2.05.30 A1.05.58 A1.05.60 A1.05.61 A1.06.61
+A2.05.31 A1.05.60 A1.05.61 A1.05.62
+A2.06.00 A1.05.11 A1.06.12 A1.06.17
+A2.06.01 A1.06.12 A1.06.15
+A2.06.02 A1.06.11 A1.06.16
+A2.06.03 A1.06.15
+A2.06.04 A1.06.11 A1.06.13 A1.06.16 A1.06.19
+A2.06.05 A1.06.12 A1.06.15 A1.06.17 A1.06.20
+A2.06.06 A1.06.14 A1.06.16 A1.06.18 A1.06.22
+A2.06.07 A1.06.16 A1.06.19 A1.06.22 A1.06.24
+A2.06.08 A1.05.20 A1.06.17 A1.06.20 A1.06.25
+A2.06.09 A1.06.18 A1.06.22 A1.06.23 A1.06.27
+A2.06.10 A1.06.21 A1.06.26 A1.07.24 A1.07.29
+A2.06.11 A1.06.22 A1.06.24 A1.06.27 A1.06.29
+A2.06.12 A1.06.23 A1.06.27 A1.06.28 A1.06.30
+A2.06.13 A1.06.26 A1.06.31 A1.06.33 A1.07.29
+A2.06.14 A1.06.28 A1.06.30 A1.06.32 A1.06.35
+A2.06.15 A1.06.27 A1.06.29 A1.06.30 A1.06.34
+A2.06.16 A1.06.31 A1.06.33 A1.06.36 A1.06.38
+A2.06.17 A1.06.30 A1.06.34 A1.06.35 A1.06.37
+A2.06.18 A1.06.36 A1.06.38 A1.06.39 A1.06.41
+A2.06.19 A1.05.35 A1.06.35 A1.06.37 A1.06.40
+A2.06.20 A1.06.38 A1.06.41 A1.07.38 A1.07.42
+A2.06.21 A1.06.39 A1.06.41 A1.06.42 A1.06.43
+A2.06.22 A1.06.41 A1.06.43 A1.06.45 A1.07.42
+A2.06.23 A1.06.42 A1.06.43 A1.06.44 A1.06.46
+A2.06.24 A1.06.43 A1.06.45 A1.06.46 A1.06.47
+A2.06.25 A1.06.46 A1.06.47 A1.06.48 A1.06.49
+A2.06.26 A1.06.50 A1.07.49 A1.07.50 A1.07.52
+A2.06.27 A1.05.50 A1.06.48 A1.06.49 A1.06.51
+A2.06.28 A1.06.50 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.56 A1.06.58 A1.07.52
+A2.06.29 A1.06.55 A1.06.56 A1.06.57 A1.06.59
+A2.06.30 A1.06.56 A1.06.58 A1.06.59 A1.06.60
+A2.06.31 A1.06.59 A1.06.60 A1.06.61 A1.06.62 A1.07.60
+A2.07.00 A1.07.15 A1.07.16
+A2.07.01 A1.07.16 A1.07.17
+A2.07.02 A1.07.17
+A2.07.03 A1.06.13 A1.07.07 A1.07.13 A1.07.18 A1.07.19
+A2.07.04 A1.07.13 A1.07.14 A1.07.19 A1.07.20
+A2.07.05 A1.07.15 A1.07.16 A1.07.21 A1.07.22
+A2.07.06 A1.07.16 A1.07.17 A1.07.22 A1.07.23
+A2.07.07 A1.06.21 A1.07.18 A1.07.19 A1.07.24
+A2.07.08 A1.07.19 A1.07.20 A1.07.24 A1.07.25
+A2.07.09 A1.07.21 A1.07.22 A1.07.26 A1.07.27
+A2.07.10 A1.07.22 A1.07.23 A1.07.27 A1.07.28
+A2.07.11 A1.07.24 A1.07.25 A1.07.29 A1.07.30
+A2.07.12 A1.07.26 A1.07.27 A1.07.31 A1.07.32
+A2.07.13 A1.07.27 A1.07.28 A1.07.32 A1.07.33
+A2.07.14 A1.06.33 A1.07.29 A1.07.30 A1.07.34
+A2.07.15 A1.07.31 A1.07.32 A1.07.35 A1.07.36
+A2.07.16 A1.07.32 A1.07.33 A1.07.36 A1.07.37
+A2.07.17 A1.06.33 A1.06.38 A1.07.34 A1.07.38
+A2.07.18 A1.07.35 A1.07.36 A1.07.39 A1.07.40
+A2.07.19 A1.07.36 A1.07.37 A1.07.40 A1.07.41
+A2.07.20 A1.07.39 A1.07.40 A1.07.43 A1.07.44
+A2.07.21 A1.07.40 A1.07.41 A1.07.44 A1.07.45
+A2.07.22 A1.07.43 A1.07.44 A1.07.46 A1.07.47
+A2.07.23 A1.07.44 A1.07.45 A1.07.47 A1.07.48
+A2.07.24 A1.07.46 A1.07.47 A1.07.49 A1.07.50
+A2.07.25 A1.07.47 A1.07.48 A1.07.50 A1.07.51
+A2.07.26 A1.07.50 A1.07.51 A1.07.52 A1.07.53
+A2.07.27 A1.07.52 A1.07.53 A1.07.54 A1.07.55 A1.07.56 A1.07.57 A1.07.58 A1.07.59
+A2.07.28 A1.07.57 A1.07.58 A1.07.60 A1.07.61
+A2.07.29 A1.07.58 A1.07.59 A1.07.61 A1.07.62
+A2.08.00 A1.08.14 A1.08.15
+A2.08.01 A1.08.16
+A2.08.02 A1.08.15 A1.08.16
+A2.08.03 A1.08.12 A1.08.17 A1.08.18 A1.09.13
+A2.08.04 A1.08.12 A1.08.13 A1.08.18 A1.08.19
+A2.08.05 A1.08.14 A1.08.15 A1.08.20 A1.08.21
+A2.08.06 A1.08.15 A1.08.16 A1.08.21 A1.08.22
+A2.08.07 A1.08.17 A1.08.18 A1.08.23 A1.09.21
+A2.08.08 A1.08.18 A1.08.19 A1.08.23 A1.08.24
+A2.08.09 A1.08.20 A1.08.21 A1.08.25 A1.08.26
+A2.08.10 A1.08.21 A1.08.22 A1.08.26 A1.08.27
+A2.08.11 A1.08.23 A1.08.24 A1.08.28 A1.08.29
+A2.08.12 A1.08.25 A1.08.26 A1.08.30 A1.08.31
+A2.08.13 A1.08.26 A1.08.27 A1.08.31 A1.08.32
+A2.08.14 A1.08.28 A1.08.29 A1.08.33 A1.09.33
+A2.08.15 A1.08.30 A1.08.31 A1.08.34 A1.08.35
+A2.08.16 A1.08.31 A1.08.32 A1.08.35 A1.08.36
+A2.08.17 A1.08.33 A1.08.37 A1.09.33 A1.09.38
+A2.08.18 A1.08.34 A1.08.35 A1.08.38 A1.08.39
+A2.08.19 A1.08.35 A1.08.36 A1.08.39 A1.08.40
+A2.08.20 A1.08.38 A1.08.39 A1.08.42 A1.08.43
+A2.08.21 A1.08.39 A1.08.40 A1.08.43 A1.08.44
+A2.08.22 A1.08.42 A1.08.43 A1.08.45 A1.08.46
+A2.08.23 A1.08.43 A1.08.44 A1.08.46 A1.08.47
+A2.08.24 A1.08.45 A1.08.46 A1.08.48 A1.08.49
+A2.08.25 A1.08.46 A1.08.47 A1.08.49 A1.08.50
+A2.08.26 A1.08.49 A1.08.50 A1.08.51 A1.08.52
+A2.08.27 A1.08.51 A1.08.52 A1.08.54 A1.08.55 A1.08.56 A1.08.57 A1.08.58 A1.08.59
+A2.08.28 A1.08.57 A1.08.58 A1.08.60 A1.08.61
+A2.08.29 A1.08.58 A1.08.59 A1.08.61 A1.08.62
+A2.09.00 A1.09.12 A1.09.17
+A2.09.01 A1.09.15
+A2.09.02 A1.09.14 A1.09.16
+A2.09.03 A1.09.17
+A2.09.04 A1.09.11 A1.09.13 A1.09.16 A1.09.19
+A2.09.05 A1.09.12 A1.09.15 A1.09.17 A1.09.20
+A2.09.06 A1.09.14 A1.09.16 A1.09.18 A1.09.22
+A2.09.07 A1.09.16 A1.09.19 A1.09.22 A1.09.24
+A2.09.08 A1.09.17 A1.09.20 A1.09.25 A1.10.21
+A2.09.09 A1.09.18 A1.09.22 A1.09.23 A1.09.27
+A2.09.10 A1.08.23 A1.08.28 A1.09.21 A1.09.26
+A2.09.11 A1.09.22 A1.09.24 A1.09.27 A1.09.29
+A2.09.12 A1.09.23 A1.09.27 A1.09.28 A1.09.30
+A2.09.13 A1.08.28 A1.09.26 A1.09.31 A1.09.33
+A2.09.14 A1.09.28 A1.09.30 A1.09.32 A1.09.35
+A2.09.15 A1.09.27 A1.09.29 A1.09.30 A1.09.34
+A2.09.16 A1.09.31 A1.09.33 A1.09.36 A1.09.38
+A2.09.17 A1.09.30 A1.09.34 A1.09.35 A1.09.37
+A2.09.18 A1.09.36 A1.09.38 A1.09.39 A1.09.41
+A2.09.19 A1.09.35 A1.09.37 A1.09.40 A1.10.36
+A2.09.20 A1.08.37 A1.08.41 A1.09.38 A1.09.41
+A2.09.21 A1.09.39 A1.09.41 A1.09.42 A1.09.43
+A2.09.22 A1.08.41 A1.09.41 A1.09.43 A1.09.45
+A2.09.23 A1.09.42 A1.09.43 A1.09.44 A1.09.46
+A2.09.24 A1.09.43 A1.09.45 A1.09.46 A1.09.47
+A2.09.25 A1.09.46 A1.09.47 A1.09.48 A1.09.49
+A2.09.26 A1.08.48 A1.08.49 A1.08.51 A1.09.50
+A2.09.27 A1.09.48 A1.09.49 A1.09.51 A1.10.51
+A2.09.28 A1.08.51 A1.08.53 A1.09.50 A1.09.52 A1.09.53 A1.09.54 A1.09.55 A1.09.57
+A2.09.29 A1.09.55 A1.09.58 A1.09.60
+A2.09.30 A1.09.57 A1.09.59 A1.09.61 A1.09.62
+A2.09.31 A1.08.60 A1.09.60 A1.09.61 A1.09.62
+A2.10.00 A1.10.15
+A2.10.01 A1.09.17 A1.10.12
+A2.10.02 A1.10.10 A1.10.14 A1.10.15 A1.10.18
+A2.10.03 A1.10.13 A1.10.16
+A2.10.04 A1.10.14 A1.10.18
+A2.10.05 A1.10.16
+A2.10.06 A1.09.17 A1.10.12 A1.10.17 A1.10.21
+A2.10.07 A1.10.11 A1.10.15 A1.10.16 A1.10.19
+A2.10.08 A1.10.15 A1.10.18 A1.10.19 A1.10.22
+A2.10.09 A1.10.17 A1.10.20 A1.10.21 A1.10.24
+A2.10.10 A1.10.20 A1.10.23 A1.10.24 A1.10.27
+A2.10.11 A1.09.25 A1.10.21 A1.10.24 A1.10.28
+A2.10.12 A1.10.23 A1.10.26 A1.10.27 A1.10.30
+A2.10.13 A1.10.26 A1.10.29 A1.10.30 A1.10.32
+A2.10.14 A1.10.24 A1.10.27 A1.10.28 A1.10.31
+A2.10.15 A1.10.27 A1.10.30 A1.10.31 A1.10.33
+A2.10.16 A1.09.32 A1.09.35 A1.10.34 A1.10.36
+A2.10.17 A1.10.30 A1.10.32 A1.10.33 A1.10.35
+A2.10.18 A1.10.34 A1.10.36 A1.10.37 A1.10.40
+A2.10.19 A1.10.37 A1.10.39 A1.10.40 A1.10.42
+A2.10.20 A1.09.40 A1.10.36 A1.10.40 A1.10.43
+A2.10.21 A1.10.39 A1.10.41 A1.10.42 A1.10.44
+A2.10.22 A1.10.40 A1.10.42 A1.10.43 A1.10.45
+A2.10.23 A1.10.42 A1.10.44 A1.10.45 A1.10.46
+A2.10.24 A1.09.44 A1.09.46 A1.09.48 A1.10.47
+A2.10.25 A1.09.48 A1.10.47 A1.10.49 A1.10.51
+A2.10.26 A1.10.49 A1.10.50 A1.10.51 A1.10.52
+A2.10.27 A1.09.51 A1.10.51 A1.10.52 A1.10.53 A1.10.54 A1.10.55 A1.10.57
+A2.10.28 A1.10.52 A1.10.54 A1.10.56 A1.10.57 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.58
+A2.10.29 A1.09.54 A1.09.56 A1.10.59
+A2.10.30 A1.09.60 A1.09.61 A1.10.59 A1.10.61
+A2.10.31 A1.10.61 A1.10.62
+A2.11.00 A1.11.12 A1.11.13 A1.11.14
+A2.11.01 A1.10.14 A1.10.18 A1.11.15 A1.11.20
+A2.11.02 A1.11.15 A1.11.16 A1.11.20 A1.11.21
+A2.11.03 A1.11.16 A1.11.17 A1.11.21 A1.11.22
+A2.11.04 A1.11.17 A1.11.18 A1.11.22 A1.11.23
+A2.11.05 A1.11.18 A1.11.19 A1.11.23 A1.11.24
+A2.11.06 A1.10.18 A1.10.22 A1.10.25 A1.11.20
+A2.11.07 A1.10.25 A1.11.20 A1.11.21 A1.11.25
+A2.11.08 A1.11.21 A1.11.22 A1.11.25 A1.11.26
+A2.11.09 A1.11.22 A1.11.23 A1.11.26 A1.11.27
+A2.11.10 A1.11.23 A1.11.24 A1.11.27 A1.11.28
+A2.11.11 A1.10.29 A1.10.32 A1.11.29 A1.11.33
+A2.11.12 A1.11.29 A1.11.30 A1.11.33 A1.11.34
+A2.11.13 A1.11.30 A1.11.31 A1.11.34 A1.11.35
+A2.11.14 A1.11.31 A1.11.32 A1.11.35 A1.11.36
+A2.11.15 A1.10.32 A1.10.35 A1.10.38 A1.11.33
+A2.11.16 A1.10.38 A1.11.33 A1.11.34 A1.11.37
+A2.11.17 A1.11.34 A1.11.35 A1.11.37 A1.11.38
+A2.11.18 A1.11.35 A1.11.36 A1.11.38 A1.11.39
+A2.11.19 A1.10.41 A1.10.44 A1.11.40 A1.11.43
+A2.11.20 A1.11.40 A1.11.41 A1.11.43 A1.11.44
+A2.11.21 A1.11.41 A1.11.42 A1.11.44 A1.11.45
+A2.11.22 A1.10.44 A1.10.46 A1.10.48 A1.11.43
+A2.11.23 A1.10.48 A1.11.43 A1.11.44 A1.11.46
+A2.11.24 A1.11.44 A1.11.45 A1.11.46 A1.11.47
+A2.11.25 A1.10.50 A1.10.52 A1.11.48 A1.11.50 A1.11.51
+A2.11.26 A1.11.48 A1.11.49 A1.11.51 A1.11.52 A1.11.53
+A2.11.27 A1.11.55 A1.11.56 A1.11.58 A1.11.59
+A2.11.28 A1.11.56 A1.11.57 A1.11.59 A1.11.60
+A2.11.29 A1.10.60 A1.11.58 A1.11.59 A1.11.61
+A2.11.30 A1.11.59 A1.11.60 A1.11.61 A1.11.62
+A2.12.00 A1.11.14 A1.12.12 A1.12.13 A1.12.14
+A2.12.01 A1.12.15 A1.12.16 A1.12.20 A1.12.21 A1.13.13
+A2.12.02 A1.12.16 A1.12.17 A1.12.21 A1.12.22
+A2.12.03 A1.12.17 A1.12.18 A1.12.22 A1.12.23
+A2.12.04 A1.12.18 A1.12.19 A1.12.23 A1.12.24
+A2.12.05 A1.11.19 A1.11.24 A1.12.19 A1.12.24
+A2.12.06 A1.12.20 A1.12.21 A1.12.25 A1.13.24
+A2.12.07 A1.12.21 A1.12.22 A1.12.25 A1.12.26
+A2.12.08 A1.12.22 A1.12.23 A1.12.26 A1.12.27
+A2.12.09 A1.12.23 A1.12.24 A1.12.27 A1.12.28
+A2.12.10 A1.11.24 A1.11.28 A1.12.24 A1.12.28
+A2.12.11 A1.12.29 A1.12.30 A1.12.33 A1.12.34
+A2.12.12 A1.12.30 A1.12.31 A1.12.34 A1.12.35
+A2.12.13 A1.12.31 A1.12.32 A1.12.35 A1.12.36
+A2.12.14 A1.11.32 A1.11.36 A1.12.32 A1.12.36
+A2.12.15 A1.12.33 A1.12.34 A1.12.37 A1.13.37
+A2.12.16 A1.12.34 A1.12.35 A1.12.37 A1.12.38
+A2.12.17 A1.12.35 A1.12.36 A1.12.38 A1.12.39
+A2.12.18 A1.11.36 A1.11.39 A1.12.36 A1.12.39
+A2.12.19 A1.12.40 A1.12.41 A1.12.43 A1.12.44
+A2.12.20 A1.12.41 A1.12.42 A1.12.44 A1.12.45
+A2.12.21 A1.11.42 A1.11.45 A1.12.42 A1.12.45
+A2.12.22 A1.12.43 A1.12.44 A1.12.46 A1.13.47
+A2.12.23 A1.12.44 A1.12.45 A1.12.46 A1.12.47
+A2.12.24 A1.11.45 A1.11.47 A1.12.45 A1.12.47
+A2.12.25 A1.12.48 A1.12.49 A1.12.50 A1.12.51 A1.12.52
+A2.12.26 A1.11.49 A1.11.53 A1.12.49 A1.12.52 A1.12.53
+A2.12.27 A1.12.56 A1.12.57 A1.12.59 A1.12.60
+A2.12.28 A1.11.57 A1.11.60 A1.12.57 A1.12.60
+A2.12.29 A1.12.59 A1.12.60 A1.12.61 A1.12.62
+A2.12.30 A1.11.60 A1.11.62 A1.12.60 A1.12.62
+A2.13.00 A1.13.12 A1.13.16
+A2.13.01 A1.13.14
+A2.13.02 A1.13.13 A1.13.17
+A2.13.03 A1.13.11 A1.13.15
+A2.13.04 A1.12.20 A1.13.13 A1.13.17
+A2.13.05 A1.13.15
+A2.13.06 A1.13.12 A1.13.16 A1.13.20 A1.14.17
+A2.13.07 A1.13.14 A1.13.15 A1.13.18
+A2.13.08 A1.12.20 A1.13.17 A1.13.21 A1.13.24
+A2.13.09 A1.13.19 A1.13.23
+A2.13.10 A1.13.22 A1.13.26
+A2.13.11 A1.13.23 A1.13.27
+A2.13.12 A1.13.25 A1.13.28 A1.13.29 A1.13.31
+A2.13.13 A1.12.29 A1.12.33 A1.13.28 A1.13.31
+A2.13.14 A1.13.26 A1.13.30
+A2.13.15 A1.13.29 A1.13.31 A1.13.32 A1.13.34
+A2.13.16 A1.13.33 A1.13.35
+A2.13.17 A1.12.33 A1.13.31 A1.13.34 A1.13.37
+A2.13.18 A1.13.36 A1.13.38 A1.13.39 A1.13.41
+A2.13.19 A1.13.38 A1.13.40 A1.13.41 A1.13.43
+A2.13.20 A1.13.39 A1.13.41 A1.13.42 A1.13.44
+A2.13.21 A1.12.40 A1.12.43 A1.13.40 A1.13.43
+A2.13.22 A1.13.41 A1.13.43 A1.13.44 A1.13.45
+A2.13.23 A1.12.43 A1.13.43 A1.13.45 A1.13.47
+A2.13.24 A1.13.46 A1.13.48 A1.13.50 A1.14.48
+A2.13.25 A1.13.48 A1.13.49 A1.13.50 A1.13.51
+A2.13.26 A1.12.48 A1.12.50 A1.13.49 A1.13.51
+A2.13.27 A1.12.54 A1.13.51 A1.13.52 A1.13.53 A1.13.54 A1.13.55 A1.13.56 A1.13.57
+A2.13.28 A1.12.54 A1.12.55 A1.12.56 A1.12.58 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.59
+A2.13.29 A1.13.58 A1.13.60 A1.13.61 A1.14.61
+A2.13.30 A1.13.60 A1.13.61
+A2.13.31 A1.13.60 A1.13.61 A1.13.62
+A2.14.00 A1.13.12 A1.14.17
+A2.14.01 A1.14.12 A1.14.15
+A2.14.02 A1.14.16
+A2.14.03 A1.14.15
+A2.14.04 A1.14.16 A1.14.19
+A2.14.05 A1.14.17 A1.14.20
+A2.14.06 A1.14.14 A1.14.18 A1.14.22
+A2.14.07 A1.14.22 A1.14.24
+A2.14.08 A1.13.20 A1.14.25
+A2.14.09 A1.14.23 A1.14.27
+A2.14.10 A1.14.26 A1.15.29
+A2.14.11 A1.14.27 A1.14.29
+A2.14.12 A1.14.28 A1.14.30
+A2.14.13 A1.14.31 A1.14.33
+A2.14.14 A1.14.32 A1.14.35
+A2.14.15 A1.14.30 A1.14.34
+A2.14.16 A1.14.36 A1.14.38
+A2.14.17 A1.14.35 A1.14.37
+A2.14.18 A1.14.39 A1.14.41
+A2.14.19 A1.13.35 A1.14.40
+A2.14.20 A1.14.41 A1.15.42
+A2.14.21 A1.14.42 A1.14.43
+A2.14.22 A1.14.43 A1.14.45
+A2.14.23 A1.13.46 A1.14.44 A1.14.46 A1.14.48
+A2.14.24 A1.14.46 A1.14.47 A1.14.48 A1.14.49
+A2.14.25 A1.13.50 A1.14.48 A1.14.49 A1.14.51
+A2.14.26 A1.14.50 A1.14.52 A1.14.53 A1.14.54 A1.15.52
+A2.14.27 A1.13.50 A1.13.51 A1.13.52 A1.13.54 A1.14.51
+A2.14.28 A1.14.52 A1.14.53 A1.14.54 A1.14.55 A1.14.56 A1.14.57 A1.14.58 A1.14.59 A1.14.60
+A2.14.29 A1.13.58 A1.14.57 A1.14.59 A1.14.61
+A2.14.30 A1.14.59 A1.14.60 A1.14.61 A1.14.62
+A2.14.31 A1.13.61 A1.14.61 A1.14.62
+A2.15.00 A1.15.17
+A2.15.01 A1.15.16 A1.15.17
+A2.15.02 A1.15.15 A1.15.16
+A2.15.03 A1.14.13 A1.15.18 A1.15.19
+A2.15.04 A1.15.19 A1.15.20
+A2.15.05 A1.15.21 A1.15.22
+A2.15.06 A1.15.22 A1.15.23
+A2.15.07 A1.14.21 A1.15.24
+A2.15.08 A1.15.24 A1.15.25
+A2.15.09 A1.15.26 A1.15.27
+A2.15.10 A1.15.27 A1.15.28
+A2.15.11 A1.15.29 A1.15.30
+A2.15.12 A1.15.31 A1.15.32
+A2.15.13 A1.15.32 A1.15.33
+A2.15.14 A1.14.33 A1.15.34
+A2.15.15 A1.15.35 A1.15.36
+A2.15.16 A1.15.36 A1.15.37
+A2.15.17 A1.14.38 A1.15.38
+A2.15.18 A1.15.39 A1.15.40
+A2.15.19 A1.15.40 A1.15.41
+A2.15.20 A1.15.43 A1.15.44
+A2.15.21 A1.15.44 A1.15.45
+A2.15.22 A1.15.46 A1.15.47
+A2.15.23 A1.15.47 A1.15.48
+A2.15.24 A1.14.50 A1.15.49 A1.15.50 A1.15.52
+A2.15.25 A1.15.50 A1.15.51 A1.15.52 A1.15.53
+A2.15.26 A1.15.52 A1.15.53 A1.15.54 A1.15.55 A1.15.56
+A2.15.27 A1.15.54 A1.15.55 A1.15.56 A1.15.57 A1.15.58 A1.15.59 A1.15.60 A1.15.61 A1.15.62
+A2.15.28 A1.14.62 A1.15.60 A1.15.61
+A2.15.29 A1.15.61 A1.15.62
+A3.00.00 A2.00.06
+A3.00.01 A2.00.07 A2.00.08 A2.00.11 A2.01.10
+A3.00.02 A2.00.05 A2.00.09 A2.00.12
+A3.00.03 A2.00.10 A2.00.13
+A3.00.04 A2.00.11 A2.00.14
+A3.00.05 A2.00.12 A2.00.15
+A3.00.06 A2.00.13 A2.00.16
+A3.00.07 A2.00.14 A2.00.17 A2.01.20
+A3.00.08 A2.00.15 A2.00.18 A2.00.20
+A3.00.09 A2.00.16 A2.00.19 A2.00.21
+A3.00.10 A2.00.20 A2.00.22
+A3.00.11 A2.00.21 A2.00.23
+A3.00.12 A2.00.22 A2.00.24 A2.01.26
+A3.00.13 A2.00.23 A2.00.25 A2.00.26
+A3.00.14 A2.00.26 A2.00.27
+A3.00.15 A2.00.27 A2.00.28 A2.00.29
+A3.01.00 A2.00.07 A2.01.10
+A3.01.01 A2.01.05 A2.01.06 A2.01.08 A2.01.09 A2.01.11
+A3.01.02 A2.00.07 A2.01.04 A2.01.06 A2.01.07 A2.01.09 A2.01.10 A2.01.11
+A3.01.03 A2.01.05 A2.01.08 A2.01.09 A2.01.12 A2.01.14 A2.02.11
+A3.01.04 A2.01.10 A2.01.13
+A3.01.05 A2.01.09 A2.01.11 A2.01.12 A2.01.14 A2.01.15 A2.01.17
+A3.01.06 A2.01.13 A2.01.16 A2.01.18
+A3.01.07 A2.01.14 A2.01.17 A2.01.19 A2.02.16
+A3.01.08 A2.01.18 A2.01.21
+A3.01.09 A2.01.20 A2.01.22
+A3.01.10 A2.01.21 A2.01.23 A2.02.24
+A3.01.11 A2.01.22 A2.01.24 A2.01.25
+A3.01.12 A2.01.25 A2.01.27
+A3.01.13 A2.01.26 A2.01.28
+A3.01.14 A2.01.28 A2.01.29 A2.01.30 A2.02.29
+A3.01.15 A2.00.27 A2.00.28 A2.01.28 A2.01.30 A2.01.31
+A3.02.00 A2.01.03 A2.01.08 A2.02.06 A2.02.09 A2.02.10 A2.02.11
+A3.02.01 A2.02.07 A2.02.08 A2.02.10 A2.02.12 A2.02.13 A2.03.06
+A3.02.02 A2.02.07 A2.02.09 A2.02.10 A2.02.12 A2.02.13
+A3.02.03 A2.02.09 A2.02.10 A2.02.11 A2.02.14
+A3.02.04 A2.02.10 A2.02.12 A2.02.13 A2.02.14 A2.02.15 A2.02.17
+A3.02.05 A2.01.14 A2.02.11 A2.02.14 A2.02.16
+A3.02.06 A2.02.13 A2.02.17 A2.03.11 A2.03.15
+A3.02.07 A2.02.14 A2.02.15 A2.02.16 A2.02.17 A2.02.18 A2.02.19
+A3.02.08 A2.02.17 A2.02.19 A2.02.21 A2.03.15
+A3.02.09 A2.01.19 A2.02.16 A2.02.18 A2.02.19 A2.02.20 A2.02.22
+A3.02.10 A2.02.19 A2.02.21 A2.02.22 A2.02.23
+A3.02.11 A2.02.24 A2.02.25
+A3.02.12 A2.02.25 A2.02.26 A2.03.25
+A3.02.13 A2.01.27 A2.02.27 A2.02.28
+A3.02.14 A2.01.29 A2.01.31 A2.02.29 A2.02.30
+A3.02.15 A2.02.29 A2.02.30 A2.02.31
+A3.03.00 A2.03.04 A2.03.05
+A3.03.01 A2.03.05
+A3.03.02 A2.03.01 A2.03.02 A2.03.03 A2.03.06 A2.03.07 A2.03.08
+A3.03.03 A2.03.03 A2.03.04 A2.03.07 A2.03.08 A2.03.09
+A3.03.04 A2.03.04 A2.03.05 A2.03.09 A2.03.10
+A3.03.05 A2.02.13 A2.03.06 A2.03.07 A2.03.11
+A3.03.06 A2.03.07 A2.03.08 A2.03.09 A2.03.11 A2.03.12 A2.03.13
+A3.03.07 A2.03.09 A2.03.10 A2.03.13 A2.03.14
+A3.03.08 A2.03.11 A2.03.12 A2.03.13 A2.03.15 A2.03.16 A2.03.17
+A3.03.09 A2.03.13 A2.03.14 A2.03.17 A2.03.18
+A3.03.10 A2.02.21 A2.03.15 A2.03.16 A2.03.17 A2.03.19 A2.03.20
+A3.03.11 A2.03.17 A2.03.18 A2.03.20 A2.03.21
+A3.03.12 A2.02.21 A2.02.23 A2.03.19 A2.03.20 A2.03.22 A2.03.23
+A3.03.13 A2.03.20 A2.03.21 A2.03.23 A2.03.24
+A3.03.14 A2.03.25 A2.03.26
+A3.03.15 A2.02.28 A2.03.27 A2.03.28 A2.03.29 A2.03.30
+A3.04.00 A2.04.04 A2.04.05
+A3.04.01 A2.03.05 A2.04.05
+A3.04.02 A2.04.02 A2.04.03 A2.04.06 A2.04.07 A2.04.08
+A3.04.03 A2.04.03 A2.04.04 A2.04.08 A2.04.09
+A3.04.04 A2.03.05 A2.03.10 A2.04.04 A2.04.05 A2.04.09 A2.04.10
+A3.04.05 A2.04.06 A2.04.07 A2.04.08 A2.04.11 A2.04.12 A2.05.13
+A3.04.06 A2.04.08 A2.04.09 A2.04.12 A2.04.13
+A3.04.07 A2.03.10 A2.03.14 A2.04.09 A2.04.10 A2.04.13 A2.04.14
+A3.04.08 A2.04.12 A2.04.13 A2.04.16 A2.04.17
+A3.04.09 A2.03.14 A2.03.18 A2.04.13 A2.04.14 A2.04.17 A2.04.18
+A3.04.10 A2.04.16 A2.04.17 A2.04.19 A2.04.20
+A3.04.11 A2.03.18 A2.03.21 A2.04.17 A2.04.18 A2.04.20 A2.04.21
+A3.04.12 A2.04.19 A2.04.20 A2.04.22 A2.04.23
+A3.04.13 A2.03.21 A2.03.24 A2.04.20 A2.04.21 A2.04.23 A2.04.24
+A3.04.14 A2.03.26 A2.04.25 A2.04.26
+A3.04.15 A2.03.28 A2.03.30 A2.04.27 A2.04.28 A2.04.29 A2.04.30 A2.05.28
+A3.05.00 A2.05.06 A2.05.09 A2.05.11 A2.06.08
+A3.05.01 A2.05.07 A2.05.08 A2.05.09 A2.05.10 A2.05.12
+A3.05.02 A2.04.06 A2.05.08 A2.05.12 A2.05.13
+A3.05.03 A2.05.09 A2.05.10 A2.05.11 A2.05.12 A2.05.14 A2.05.15
+A3.05.04 A2.05.12 A2.05.13 A2.05.15 A2.05.17
+A3.05.05 A2.05.11 A2.05.14 A2.05.15 A2.05.16 A2.05.18 A2.06.14
+A3.05.06 A2.04.11 A2.04.12 A2.04.15 A2.04.16 A2.05.13 A2.05.17
+A3.05.07 A2.05.15 A2.05.17 A2.05.18 A2.05.19
+A3.05.08 A2.04.15 A2.04.16 A2.04.19 A2.05.17 A2.05.19 A2.05.21
+A3.05.09 A2.05.18 A2.05.19 A2.05.20 A2.05.22
+A3.05.10 A2.04.19 A2.04.22 A2.05.19 A2.05.21 A2.05.22 A2.05.23
+A3.05.11 A2.05.24 A2.05.25 A2.05.26
+A3.05.12 A2.04.25 A2.05.26
+A3.05.13 A2.05.27 A2.05.28
+A3.05.14 A2.05.29 A2.05.30 A2.05.31
+A3.06.00 A2.06.05 A2.06.06 A2.06.07 A2.06.08 A2.06.09 A2.06.11 A2.06.12 A2.06.15
+A3.06.01 A2.06.07 A2.06.10 A2.06.11 A2.06.15
+A3.06.02 A2.05.11 A2.06.08 A2.06.12 A2.06.14
+A3.06.03 A2.06.10 A2.06.13 A2.06.16
+A3.06.04 A2.06.12 A2.06.14 A2.06.15 A2.06.17
+A3.06.05 A2.06.16 A2.06.18
+A3.06.06 A2.05.16 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.19
+A3.06.07 A2.06.18 A2.06.21 A2.06.23
+A3.06.08 A2.06.20 A2.06.22 A2.06.24
+A3.06.09 A2.05.24 A2.06.23
+A3.06.10 A2.06.24 A2.06.25
+A3.06.11 A2.05.27 A2.06.25 A2.06.27
+A3.06.12 A2.06.26 A2.06.28 A2.06.29 A2.06.30
+A3.06.13 A2.05.29 A2.06.29
+A3.06.14 A2.06.30 A2.06.31 A2.07.28
+A3.06.15 A2.05.29 A2.05.30 A2.06.30 A2.06.31
+A3.07.00 A2.07.06 A2.07.10
+A3.07.01 A2.06.10 A2.07.07 A2.07.08 A2.07.11
+A3.07.02 A2.07.08 A2.07.09 A2.07.12
+A3.07.03 A2.07.10 A2.07.13
+A3.07.04 A2.07.11 A2.07.14 A2.07.17
+A3.07.05 A2.07.12 A2.07.15 A2.07.18
+A3.07.06 A2.07.13 A2.07.16 A2.07.19
+A3.07.07 A2.06.20 A2.07.17
+A3.07.08 A2.07.18 A2.07.20
+A3.07.09 A2.07.19 A2.07.21
+A3.07.10 A2.07.20 A2.07.22 A2.07.24
+A3.07.11 A2.07.21 A2.07.23 A2.07.25
+A3.07.12 A2.06.26 A2.07.24
+A3.07.13 A2.07.25 A2.07.26
+A3.07.14 A2.07.26 A2.07.27 A2.07.28 A2.07.29
+A3.07.15 A2.07.28 A2.07.29
+A3.08.00 A2.08.06 A2.08.10
+A3.08.01 A2.08.07 A2.08.08 A2.08.11 A2.09.10
+A3.08.02 A2.08.09 A2.08.12
+A3.08.03 A2.08.10 A2.08.13
+A3.08.04 A2.08.11 A2.08.14 A2.08.17
+A3.08.05 A2.08.12 A2.08.15 A2.08.18
+A3.08.06 A2.08.13 A2.08.16 A2.08.19
+A3.08.07 A2.08.17 A2.09.20
+A3.08.08 A2.08.18 A2.08.20
+A3.08.09 A2.08.19 A2.08.21
+A3.08.10 A2.08.20 A2.08.22 A2.08.24
+A3.08.11 A2.08.21 A2.08.23 A2.08.25
+A3.08.12 A2.08.24 A2.09.26
+A3.08.13 A2.08.25 A2.08.26
+A3.08.14 A2.08.26 A2.08.27 A2.08.28 A2.08.29
+A3.08.15 A2.08.28 A2.08.29
+A3.09.00 A2.08.07 A2.09.10
+A3.09.01 A2.09.05 A2.09.08 A2.09.09 A2.09.11 A2.09.12 A2.09.15
+A3.09.02 A2.09.06 A2.09.07 A2.09.09 A2.09.10 A2.09.11 A2.09.15
+A3.09.03 A2.09.08 A2.09.12 A2.09.14 A2.10.11
+A3.09.04 A2.09.10 A2.09.13 A2.09.16
+A3.09.05 A2.09.12 A2.09.14 A2.09.15 A2.09.17
+A3.09.06 A2.09.16 A2.09.18
+A3.09.07 A2.09.14 A2.09.17 A2.09.19 A2.10.16 A2.10.18 A2.10.20
+A3.09.08 A2.09.18 A2.09.21 A2.09.23
+A3.09.09 A2.09.20 A2.09.22 A2.09.24
+A3.09.10 A2.09.23 A2.10.24
+A3.09.11 A2.09.24 A2.09.25
+A3.09.12 A2.09.25 A2.09.27 A2.10.27
+A3.09.13 A2.09.26 A2.09.28 A2.09.29 A2.09.30 A2.10.29
+A3.09.14 A2.09.29 A2.09.30 A2.09.31 A2.10.29
+A3.09.15 A2.08.28 A2.09.30 A2.09.31
+A3.10.00 A2.09.08 A2.10.06 A2.10.09 A2.10.10 A2.10.11
+A3.10.01 A2.10.07 A2.10.08 A2.10.12 A2.10.13 A2.11.06
+A3.10.02 A2.10.07 A2.10.08 A2.10.10 A2.10.12 A2.10.13
+A3.10.03 A2.10.09 A2.10.10 A2.10.11 A2.10.12 A2.10.14 A2.10.15
+A3.10.04 A2.10.12 A2.10.13 A2.10.15 A2.10.17
+A3.10.05 A2.09.14 A2.10.11 A2.10.14 A2.10.15 A2.10.16 A2.10.18
+A3.10.06 A2.10.13 A2.10.17 A2.11.11 A2.11.12 A2.11.15 A2.11.16
+A3.10.07 A2.10.15 A2.10.17 A2.10.18 A2.10.19
+A3.10.08 A2.10.17 A2.10.19 A2.10.21 A2.11.15 A2.11.16 A2.11.19
+A3.10.09 A2.10.18 A2.10.19 A2.10.20 A2.10.22
+A3.10.10 A2.10.19 A2.10.21 A2.10.22 A2.10.23 A2.11.19 A2.11.22
+A3.10.11 A2.10.24 A2.10.25 A2.10.26
+A3.10.12 A2.10.26 A2.11.25
+A3.10.13 A2.10.27 A2.10.28
+A3.10.14 A2.09.29 A2.09.31 A2.10.29 A2.10.30
+A3.10.15 A2.10.30 A2.10.31
+A3.11.00 A2.11.04 A2.11.05
+A3.11.01 A2.11.05 A2.12.05
+A3.11.02 A2.11.02 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A3.11.03 A2.11.03 A2.11.04 A2.11.08 A2.11.09
+A3.11.04 A2.11.04 A2.11.05 A2.11.09 A2.11.10 A2.12.05 A2.12.10
+A3.11.05 A2.10.13 A2.11.06 A2.11.07 A2.11.08 A2.11.11 A2.11.12
+A3.11.06 A2.11.08 A2.11.09 A2.11.12 A2.11.13
+A3.11.07 A2.11.09 A2.11.10 A2.11.13 A2.11.14 A2.12.10 A2.12.14
+A3.11.08 A2.11.12 A2.11.13 A2.11.16 A2.11.17
+A3.11.09 A2.11.13 A2.11.14 A2.11.17 A2.11.18 A2.12.14 A2.12.18
+A3.11.10 A2.11.16 A2.11.17 A2.11.19 A2.11.20
+A3.11.11 A2.11.17 A2.11.18 A2.11.20 A2.11.21 A2.12.18 A2.12.21
+A3.11.12 A2.11.19 A2.11.20 A2.11.22 A2.11.23
+A3.11.13 A2.11.20 A2.11.21 A2.11.23 A2.11.24 A2.12.21 A2.12.24
+A3.11.14 A2.11.25 A2.11.26 A2.12.26
+A3.11.15 A2.10.28 A2.11.27 A2.11.28 A2.11.29 A2.11.30 A2.12.28 A2.12.30
+A3.12.00 A2.12.04 A2.12.05
+A3.12.01 A2.12.05
+A3.12.02 A2.12.02 A2.12.03 A2.12.06 A2.12.07 A2.12.08
+A3.12.03 A2.12.03 A2.12.04 A2.12.07 A2.12.08 A2.12.09
+A3.12.04 A2.12.04 A2.12.05 A2.12.09 A2.12.10
+A3.12.05 A2.12.06 A2.12.07 A2.12.11 A2.13.13
+A3.12.06 A2.12.07 A2.12.08 A2.12.09 A2.12.11 A2.12.12 A2.12.13
+A3.12.07 A2.12.09 A2.12.10 A2.12.13 A2.12.14
+A3.12.08 A2.12.11 A2.12.12 A2.12.13 A2.12.15 A2.12.16 A2.12.17
+A3.12.09 A2.12.13 A2.12.14 A2.12.17 A2.12.18
+A3.12.10 A2.12.15 A2.12.16 A2.12.17 A2.12.19 A2.12.20 A2.13.21
+A3.12.11 A2.12.17 A2.12.18 A2.12.20 A2.12.21
+A3.12.12 A2.12.19 A2.12.20 A2.12.22 A2.12.23 A2.13.21 A2.13.23
+A3.12.13 A2.12.20 A2.12.21 A2.12.23 A2.12.24
+A3.12.14 A2.12.25 A2.12.26
+A3.12.15 A2.12.27 A2.12.28 A2.12.29 A2.12.30 A2.13.28
+A3.13.00 A2.13.06 A2.13.09 A2.13.11 A2.14.05 A2.14.08
+A3.13.01 A2.13.07 A2.13.08 A2.13.09 A2.13.10 A2.13.12
+A3.13.02 A2.12.06 A2.13.08 A2.13.10 A2.13.12 A2.13.13
+A3.13.03 A2.13.09 A2.13.10 A2.13.11 A2.13.14
+A3.13.04 A2.13.10 A2.13.12 A2.13.13 A2.13.14 A2.13.15 A2.13.17
+A3.13.05 A2.13.11 A2.13.14 A2.13.16 A2.14.14
+A3.13.06 A2.12.11 A2.12.15 A2.13.13 A2.13.17
+A3.13.07 A2.13.14 A2.13.15 A2.13.16 A2.13.17 A2.13.18 A2.13.19
+A3.13.08 A2.12.15 A2.13.17 A2.13.19 A2.13.21
+A3.13.09 A2.13.16 A2.13.18 A2.13.19 A2.13.20 A2.13.22 A2.14.19
+A3.13.10 A2.13.19 A2.13.21 A2.13.22 A2.13.23
+A3.13.11 A2.13.24 A2.13.25
+A3.13.12 A2.12.25 A2.13.25 A2.13.26
+A3.13.13 A2.13.27 A2.13.28 A2.14.27
+A3.13.14 A2.13.29 A2.13.30 A2.13.31
+A3.14.00 A2.14.05 A2.14.06 A2.14.07 A2.14.08 A2.14.09 A2.14.11
+A3.14.01 A2.14.04 A2.14.07 A2.14.10 A2.14.11 A2.15.07
+A3.14.02 A2.13.11 A2.14.05 A2.14.08 A2.14.09 A2.14.12 A2.14.14
+A3.14.03 A2.14.10 A2.14.13
+A3.14.04 A2.14.09 A2.14.11 A2.14.12 A2.14.14 A2.14.15 A2.14.17
+A3.14.05 A2.14.13 A2.14.16 A2.14.18
+A3.14.06 A2.13.16 A2.14.14 A2.14.17 A2.14.19
+A3.14.07 A2.14.18 A2.14.21
+A3.14.08 A2.14.20 A2.14.22
+A3.14.09 A2.13.24 A2.14.21 A2.14.23
+A3.14.10 A2.14.22 A2.14.24 A2.14.25
+A3.14.11 A2.14.25 A2.14.27
+A3.14.12 A2.14.26 A2.14.28
+A3.14.13 A2.13.29 A2.14.28 A2.14.29
+A3.14.14 A2.14.28 A2.14.30 A2.14.31 A2.15.27 A2.15.28
+A3.14.15 A2.13.29 A2.13.30 A2.14.30 A2.14.31
+A3.15.00 A2.15.06
+A3.15.01 A2.14.10 A2.15.07 A2.15.08 A2.15.11
+A3.15.02 A2.15.05 A2.15.08 A2.15.09 A2.15.12
+A3.15.03 A2.15.10 A2.15.13
+A3.15.04 A2.15.11 A2.15.14
+A3.15.05 A2.15.12 A2.15.15
+A3.15.06 A2.15.13 A2.15.16
+A3.15.07 A2.14.20 A2.15.14 A2.15.17
+A3.15.08 A2.15.15 A2.15.18 A2.15.20
+A3.15.09 A2.15.16 A2.15.19 A2.15.21
+A3.15.10 A2.15.20 A2.15.22
+A3.15.11 A2.15.21 A2.15.23
+A3.15.12 A2.14.26 A2.15.22 A2.15.24
+A3.15.13 A2.15.23 A2.15.25 A2.15.26
+A3.15.14 A2.15.26 A2.15.27
+A3.15.15 A2.15.27 A2.15.28 A2.15.29
+C2.00.00 C1.00.14 C1.00.15
+C2.00.01 C1.00.16
+C2.00.02 C1.00.15 C1.00.16
+C2.00.03 C1.00.17 C1.00.18 C1.01.13
+C2.00.04 C1.00.18 C1.00.19
+C2.00.05 C1.00.20 C1.00.21
+C2.00.06 C1.00.21 C1.00.22
+C2.00.07 C1.00.23 C1.01.21
+C2.00.08 C1.00.23 C1.00.24
+C2.00.09 C1.00.25 C1.00.26
+C2.00.10 C1.00.26 C1.00.27
+C2.00.11 C1.00.28 C1.00.29
+C2.00.12 C1.00.30 C1.00.31
+C2.00.13 C1.00.31 C1.00.32
+C2.00.14 C1.00.33 C1.01.33
+C2.00.15 C1.00.34 C1.00.35
+C2.00.16 C1.00.35 C1.00.36
+C2.00.17 C1.00.37 C1.01.38
+C2.00.18 C1.00.38 C1.00.39
+C2.00.19 C1.00.39 C1.00.40
+C2.00.20 C1.00.42 C1.00.43
+C2.00.21 C1.00.43 C1.00.44
+C2.00.22 C1.00.45 C1.00.46
+C2.00.23 C1.00.46 C1.00.47
+C2.00.24 C1.00.48 C1.00.49 C1.00.51 C1.01.50
+C2.00.25 C1.00.49 C1.00.50 C1.00.51 C1.00.52
+C2.00.26 C1.00.51 C1.00.52 C1.00.54 C1.00.55 C1.00.56
+C2.00.27 C1.00.54 C1.00.55 C1.00.56 C1.00.57 C1.00.58 C1.00.59 C1.00.60 C1.00.61 C1.00.62
+C2.00.28 C1.00.60 C1.00.61 C1.01.62
+C2.00.29 C1.00.61 C1.00.62
+C2.01.00 C1.01.17
+C2.01.01 C1.01.15
+C2.01.02 C1.01.14 C1.01.16
+C2.01.03 C1.01.17
+C2.01.04 C1.01.16 C1.01.19
+C2.01.05 C1.01.12 C1.01.15 C1.01.17 C1.01.20
+C2.01.06 C1.01.18 C1.01.22
+C2.01.07 C1.01.22 C1.01.24
+C2.01.08 C1.01.25 C1.02.21
+C2.01.09 C1.01.23 C1.01.27
+C2.01.10 C1.00.28 C1.01.26
+C2.01.11 C1.01.27 C1.01.29
+C2.01.12 C1.01.28 C1.01.30
+C2.01.13 C1.01.31 C1.01.33
+C2.01.14 C1.01.32 C1.01.35
+C2.01.15 C1.01.30 C1.01.34
+C2.01.16 C1.01.36 C1.01.38
+C2.01.17 C1.01.35 C1.01.37
+C2.01.18 C1.01.39 C1.01.41
+C2.01.19 C1.01.40 C1.02.37
+C2.01.20 C1.00.41 C1.01.41
+C2.01.21 C1.01.42 C1.01.43
+C2.01.22 C1.01.43 C1.01.45
+C2.01.23 C1.01.44 C1.01.46 C1.01.48 C1.02.47
+C2.01.24 C1.01.46 C1.01.47 C1.01.48 C1.01.49
+C2.01.25 C1.01.48 C1.01.49 C1.01.51 C1.02.51
+C2.01.26 C1.00.51 C1.00.53 C1.01.50 C1.01.52 C1.01.53
+C2.01.27 C1.01.51 C1.02.51 C1.02.52 C1.02.53 C1.02.55
+C2.01.28 C1.00.53 C1.01.52 C1.01.53 C1.01.54 C1.01.55 C1.01.56 C1.01.57 C1.01.58 C1.01.59
+C2.01.29 C1.01.58 C1.01.60
+C2.01.30 C1.01.59 C1.01.61 C1.01.62
+C2.01.31 C1.01.60 C1.01.61 C1.01.62
+C2.02.00 C1.02.15
+C2.02.01 C1.01.17 C1.02.13
+C2.02.02 C1.02.14 C1.02.18
+C2.02.03 C1.02.12 C1.02.16
+C2.02.04 C1.02.14 C1.02.18 C1.03.15 C1.03.20
+C2.02.05 C1.02.16
+C2.02.06 C1.02.17 C1.02.21
+C2.02.07 C1.02.15 C1.02.16 C1.02.19
+C2.02.08 C1.02.18 C1.02.22 C1.02.25 C1.03.20
+C2.02.09 C1.02.20 C1.02.24
+C2.02.10 C1.02.23 C1.02.27
+C2.02.11 C1.02.24 C1.02.28
+C2.02.12 C1.02.26 C1.02.29 C1.02.30 C1.02.32
+C2.02.13 C1.02.29 C1.02.32 C1.03.29 C1.03.33
+C2.02.14 C1.02.27 C1.02.31
+C2.02.15 C1.02.30 C1.02.32 C1.02.33 C1.02.35
+C2.02.16 C1.02.34 C1.02.37
+C2.02.17 C1.02.32 C1.02.35 C1.02.38 C1.03.33
+C2.02.18 C1.02.36 C1.02.39 C1.02.40 C1.02.42
+C2.02.19 C1.02.39 C1.02.41 C1.02.42 C1.02.44
+C2.02.20 C1.02.40 C1.02.42 C1.02.43 C1.02.45
+C2.02.21 C1.02.41 C1.02.44 C1.03.40 C1.03.43
+C2.02.22 C1.02.42 C1.02.44 C1.02.45 C1.02.46
+C2.02.23 C1.02.44 C1.02.46 C1.02.48 C1.03.43
+C2.02.24 C1.01.48 C1.02.47 C1.02.49 C1.02.51
+C2.02.25 C1.02.49 C1.02.50 C1.02.51 C1.02.52
+C2.02.26 C1.02.50 C1.02.52 C1.03.48 C1.03.50
+C2.02.27 C1.02.52 C1.02.53 C1.02.54 C1.02.55 C1.02.56 C1.02.57 C1.02.58 C1.03.54
+C2.02.28 C1.02.56 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.56 C1.03.58 C1.03.59 C1.03.61
+C2.02.29 C1.01.56 C1.02.59
+C2.02.30 C1.01.61 C1.02.59 C1.02.61 C1.02.62
+C2.02.31 C1.02.61 C1.02.62
+C2.03.00 C1.03.12 C1.03.13 C1.03.14 C1.04.14
+C2.03.01 C1.02.14 C1.03.15 C1.03.16 C1.03.20 C1.03.21
+C2.03.02 C1.03.16 C1.03.17 C1.03.21 C1.03.22
+C2.03.03 C1.03.17 C1.03.18 C1.03.22 C1.03.23
+C2.03.04 C1.03.18 C1.03.19 C1.03.23 C1.03.24
+C2.03.05 C1.03.19 C1.03.24 C1.04.19 C1.04.24
+C2.03.06 C1.02.25 C1.03.20 C1.03.21 C1.03.25
+C2.03.07 C1.03.21 C1.03.22 C1.03.25 C1.03.26
+C2.03.08 C1.03.22 C1.03.23 C1.03.26 C1.03.27
+C2.03.09 C1.03.23 C1.03.24 C1.03.27 C1.03.28
+C2.03.10 C1.03.24 C1.03.28 C1.04.24 C1.04.28
+C2.03.11 C1.03.29 C1.03.30 C1.03.33 C1.03.34
+C2.03.12 C1.03.30 C1.03.31 C1.03.34 C1.03.35
+C2.03.13 C1.03.31 C1.03.32 C1.03.35 C1.03.36
+C2.03.14 C1.03.32 C1.03.36 C1.04.32 C1.04.36
+C2.03.15 C1.02.38 C1.03.33 C1.03.34 C1.03.37
+C2.03.16 C1.03.34 C1.03.35 C1.03.37 C1.03.38
+C2.03.17 C1.03.35 C1.03.36 C1.03.38 C1.03.39
+C2.03.18 C1.03.36 C1.03.39 C1.04.36 C1.04.39
+C2.03.19 C1.03.40 C1.03.41 C1.03.43 C1.03.44
+C2.03.20 C1.03.41 C1.03.42 C1.03.44 C1.03.45
+C2.03.21 C1.03.42 C1.03.45 C1.04.42 C1.04.45
+C2.03.22 C1.02.48 C1.03.43 C1.03.44 C1.03.46
+C2.03.23 C1.03.44 C1.03.45 C1.03.46 C1.03.47
+C2.03.24 C1.03.45 C1.03.47 C1.04.45 C1.04.47
+C2.03.25 C1.03.48 C1.03.49 C1.03.50 C1.03.51 C1.03.52
+C2.03.26 C1.03.49 C1.03.52 C1.03.53 C1.04.49 C1.04.53
+C2.03.27 C1.03.56 C1.03.57 C1.03.59 C1.03.60
+C2.03.28 C1.03.57 C1.03.60 C1.04.57 C1.04.60
+C2.03.29 C1.03.59 C1.03.60 C1.03.61 C1.03.62
+C2.03.30 C1.03.60 C1.03.62 C1.04.60 C1.04.62
+C2.04.00 C1.04.12 C1.04.13 C1.04.14
+C2.04.01 C1.04.15 C1.04.20 C1.05.13 C1.05.17
+C2.04.02 C1.04.15 C1.04.16 C1.04.20 C1.04.21
+C2.04.03 C1.04.16 C1.04.17 C1.04.21 C1.04.22
+C2.04.04 C1.04.17 C1.04.18 C1.04.22 C1.04.23
+C2.04.05 C1.04.18 C1.04.19 C1.04.23 C1.04.24
+C2.04.06 C1.04.20 C1.05.17 C1.05.21 C1.05.24
+C2.04.07 C1.04.20 C1.04.21 C1.04.25 C1.05.24
+C2.04.08 C1.04.21 C1.04.22 C1.04.25 C1.04.26
+C2.04.09 C1.04.22 C1.04.23 C1.04.26 C1.04.27
+C2.04.10 C1.04.23 C1.04.24 C1.04.27 C1.04.28
+C2.04.11 C1.04.29 C1.04.33 C1.05.28 C1.05.31
+C2.04.12 C1.04.29 C1.04.30 C1.04.33 C1.04.34
+C2.04.13 C1.04.30 C1.04.31 C1.04.34 C1.04.35
+C2.04.14 C1.04.31 C1.04.32 C1.04.35 C1.04.36
+C2.04.15 C1.04.33 C1.05.31 C1.05.34 C1.05.37
+C2.04.16 C1.04.33 C1.04.34 C1.04.37 C1.05.37
+C2.04.17 C1.04.34 C1.04.35 C1.04.37 C1.04.38
+C2.04.18 C1.04.35 C1.04.36 C1.04.38 C1.04.39
+C2.04.19 C1.04.40 C1.04.43 C1.05.40 C1.05.43
+C2.04.20 C1.04.40 C1.04.41 C1.04.43 C1.04.44
+C2.04.21 C1.04.41 C1.04.42 C1.04.44 C1.04.45
+C2.04.22 C1.04.43 C1.05.43 C1.05.45 C1.05.47
+C2.04.23 C1.04.43 C1.04.44 C1.04.46 C1.05.47
+C2.04.24 C1.04.44 C1.04.45 C1.04.46 C1.04.47
+C2.04.25 C1.04.48 C1.04.50 C1.04.51 C1.05.49 C1.05.51
+C2.04.26 C1.04.48 C1.04.49 C1.04.51 C1.04.52 C1.04.53
+C2.04.27 C1.04.55 C1.04.56 C1.04.58 C1.04.59
+C2.04.28 C1.04.56 C1.04.57 C1.04.59 C1.04.60
+C2.04.29 C1.04.58 C1.04.59 C1.04.61 C1.05.59
+C2.04.30 C1.04.59 C1.04.60 C1.04.61 C1.04.62
+C2.05.00 C1.05.11
+C2.05.01 C1.05.14
+C2.05.02 C1.05.09 C1.05.13 C1.05.14 C1.05.17
+C2.05.03 C1.05.12 C1.05.15
+C2.05.04 C1.05.13 C1.05.17
+C2.05.05 C1.05.15
+C2.05.06 C1.05.11 C1.05.16 C1.05.20 C1.06.17
+C2.05.07 C1.05.10 C1.05.14 C1.05.15 C1.05.18
+C2.05.08 C1.05.14 C1.05.17 C1.05.18 C1.05.21
+C2.05.09 C1.05.16 C1.05.19 C1.05.20 C1.05.23
+C2.05.10 C1.05.19 C1.05.22 C1.05.23 C1.05.26
+C2.05.11 C1.05.20 C1.05.23 C1.05.27 C1.06.25
+C2.05.12 C1.05.22 C1.05.25 C1.05.26 C1.05.29
+C2.05.13 C1.05.25 C1.05.28 C1.05.29 C1.05.31
+C2.05.14 C1.05.23 C1.05.26 C1.05.27 C1.05.30
+C2.05.15 C1.05.26 C1.05.29 C1.05.30 C1.05.32
+C2.05.16 C1.05.33 C1.05.35 C1.06.32 C1.06.35
+C2.05.17 C1.05.29 C1.05.31 C1.05.32 C1.05.34
+C2.05.18 C1.05.33 C1.05.35 C1.05.36 C1.05.39
+C2.05.19 C1.05.36 C1.05.38 C1.05.39 C1.05.41
+C2.05.20 C1.05.35 C1.05.39 C1.05.42 C1.06.40
+C2.05.21 C1.05.38 C1.05.40 C1.05.41 C1.05.43
+C2.05.22 C1.05.39 C1.05.41 C1.05.42 C1.05.44
+C2.05.23 C1.05.41 C1.05.43 C1.05.44 C1.05.45
+C2.05.24 C1.05.46 C1.06.44 C1.06.46 C1.06.48
+C2.05.25 C1.05.46 C1.05.48 C1.05.50 C1.06.48
+C2.05.26 C1.05.48 C1.05.49 C1.05.50 C1.05.51
+C2.05.27 C1.05.50 C1.05.51 C1.05.52 C1.05.53 C1.05.54 C1.05.56 C1.06.51
+C2.05.28 C1.04.54 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.55 C1.05.56 C1.05.57 C1.05.59
+C2.05.29 C1.05.58 C1.06.57 C1.06.59 C1.06.61
+C2.05.30 C1.05.58 C1.05.60 C1.05.61 C1.06.61
+C2.05.31 C1.05.60 C1.05.61 C1.05.62
+C2.06.00 C1.05.11 C1.06.12 C1.06.17
+C2.06.01 C1.06.12 C1.06.15
+C2.06.02 C1.06.11 C1.06.16
+C2.06.03 C1.06.15
+C2.06.04 C1.06.11 C1.06.13 C1.06.16 C1.06.19
+C2.06.05 C1.06.12 C1.06.15 C1.06.17 C1.06.20
+C2.06.06 C1.06.14 C1.06.16 C1.06.18 C1.06.22
+C2.06.07 C1.06.16 C1.06.19 C1.06.22 C1.06.24
+C2.06.08 C1.05.20 C1.06.17 C1.06.20 C1.06.25
+C2.06.09 C1.06.18 C1.06.22 C1.06.23 C1.06.27
+C2.06.10 C1.06.21 C1.06.26 C1.07.24 C1.07.29
+C2.06.11 C1.06.22 C1.06.24 C1.06.27 C1.06.29
+C2.06.12 C1.06.23 C1.06.27 C1.06.28 C1.06.30
+C2.06.13 C1.06.26 C1.06.31 C1.06.33 C1.07.29
+C2.06.14 C1.06.28 C1.06.30 C1.06.32 C1.06.35
+C2.06.15 C1.06.27 C1.06.29 C1.06.30 C1.06.34
+C2.06.16 C1.06.31 C1.06.33 C1.06.36 C1.06.38
+C2.06.17 C1.06.30 C1.06.34 C1.06.35 C1.06.37
+C2.06.18 C1.06.36 C1.06.38 C1.06.39 C1.06.41
+C2.06.19 C1.05.35 C1.06.35 C1.06.37 C1.06.40
+C2.06.20 C1.06.38 C1.06.41 C1.07.38 C1.07.42
+C2.06.21 C1.06.39 C1.06.41 C1.06.42 C1.06.43
+C2.06.22 C1.06.41 C1.06.43 C1.06.45 C1.07.42
+C2.06.23 C1.06.42 C1.06.43 C1.06.44 C1.06.46
+C2.06.24 C1.06.43 C1.06.45 C1.06.46 C1.06.47
+C2.06.25 C1.06.46 C1.06.47 C1.06.48 C1.06.49
+C2.06.26 C1.06.50 C1.07.49 C1.07.50 C1.07.52
+C2.06.27 C1.05.50 C1.06.48 C1.06.49 C1.06.51
+C2.06.28 C1.06.50 C1.06.52 C1.06.53 C1.06.54 C1.06.55 C1.06.56 C1.06.58 C1.07.52
+C2.06.29 C1.06.55 C1.06.56 C1.06.57 C1.06.59
+C2.06.30 C1.06.56 C1.06.58 C1.06.59 C1.06.60
+C2.06.31 C1.06.59 C1.06.60 C1.06.61 C1.06.62 C1.07.60
+C2.07.00 C1.07.15 C1.07.16
+C2.07.01 C1.07.16 C1.07.17
+C2.07.02 C1.07.17
+C2.07.03 C1.06.13 C1.07.07 C1.07.13 C1.07.18 C1.07.19
+C2.07.04 C1.07.13 C1.07.14 C1.07.19 C1.07.20
+C2.07.05 C1.07.15 C1.07.16 C1.07.21 C1.07.22
+C2.07.06 C1.07.16 C1.07.17 C1.07.22 C1.07.23
+C2.07.07 C1.06.21 C1.07.18 C1.07.19 C1.07.24
+C2.07.08 C1.07.19 C1.07.20 C1.07.24 C1.07.25
+C2.07.09 C1.07.21 C1.07.22 C1.07.26 C1.07.27
+C2.07.10 C1.07.22 C1.07.23 C1.07.27 C1.07.28
+C2.07.11 C1.07.24 C1.07.25 C1.07.29 C1.07.30
+C2.07.12 C1.07.26 C1.07.27 C1.07.31 C1.07.32
+C2.07.13 C1.07.27 C1.07.28 C1.07.32 C1.07.33
+C2.07.14 C1.06.33 C1.07.29 C1.07.30 C1.07.34
+C2.07.15 C1.07.31 C1.07.32 C1.07.35 C1.07.36
+C2.07.16 C1.07.32 C1.07.33 C1.07.36 C1.07.37
+C2.07.17 C1.06.33 C1.06.38 C1.07.34 C1.07.38
+C2.07.18 C1.07.35 C1.07.36 C1.07.39 C1.07.40
+C2.07.19 C1.07.36 C1.07.37 C1.07.40 C1.07.41
+C2.07.20 C1.07.39 C1.07.40 C1.07.43 C1.07.44
+C2.07.21 C1.07.40 C1.07.41 C1.07.44 C1.07.45
+C2.07.22 C1.07.43 C1.07.44 C1.07.46 C1.07.47
+C2.07.23 C1.07.44 C1.07.45 C1.07.47 C1.07.48
+C2.07.24 C1.07.46 C1.07.47 C1.07.49 C1.07.50
+C2.07.25 C1.07.47 C1.07.48 C1.07.50 C1.07.51
+C2.07.26 C1.07.50 C1.07.51 C1.07.52 C1.07.53
+C2.07.27 C1.07.52 C1.07.53 C1.07.54 C1.07.55 C1.07.56 C1.07.57 C1.07.58 C1.07.59
+C2.07.28 C1.07.57 C1.07.58 C1.07.60 C1.07.61
+C2.07.29 C1.07.58 C1.07.59 C1.07.61 C1.07.62
+C2.08.00 C1.08.14 C1.08.15
+C2.08.01 C1.08.16
+C2.08.02 C1.08.15 C1.08.16
+C2.08.03 C1.08.12 C1.08.17 C1.08.18 C1.09.13
+C2.08.04 C1.08.12 C1.08.13 C1.08.18 C1.08.19
+C2.08.05 C1.08.14 C1.08.15 C1.08.20 C1.08.21
+C2.08.06 C1.08.15 C1.08.16 C1.08.21 C1.08.22
+C2.08.07 C1.08.17 C1.08.18 C1.08.23 C1.09.21
+C2.08.08 C1.08.18 C1.08.19 C1.08.23 C1.08.24
+C2.08.09 C1.08.20 C1.08.21 C1.08.25 C1.08.26
+C2.08.10 C1.08.21 C1.08.22 C1.08.26 C1.08.27
+C2.08.11 C1.08.23 C1.08.24 C1.08.28 C1.08.29
+C2.08.12 C1.08.25 C1.08.26 C1.08.30 C1.08.31
+C2.08.13 C1.08.26 C1.08.27 C1.08.31 C1.08.32
+C2.08.14 C1.08.28 C1.08.29 C1.08.33 C1.09.33
+C2.08.15 C1.08.30 C1.08.31 C1.08.34 C1.08.35
+C2.08.16 C1.08.31 C1.08.32 C1.08.35 C1.08.36
+C2.08.17 C1.08.33 C1.08.37 C1.09.33 C1.09.38
+C2.08.18 C1.08.34 C1.08.35 C1.08.38 C1.08.39
+C2.08.19 C1.08.35 C1.08.36 C1.08.39 C1.08.40
+C2.08.20 C1.08.38 C1.08.39 C1.08.42 C1.08.43
+C2.08.21 C1.08.39 C1.08.40 C1.08.43 C1.08.44
+C2.08.22 C1.08.42 C1.08.43 C1.08.45 C1.08.46
+C2.08.23 C1.08.43 C1.08.44 C1.08.46 C1.08.47
+C2.08.24 C1.08.45 C1.08.46 C1.08.48 C1.08.49
+C2.08.25 C1.08.46 C1.08.47 C1.08.49 C1.08.50
+C2.08.26 C1.08.49 C1.08.50 C1.08.51 C1.08.52
+C2.08.27 C1.08.51 C1.08.52 C1.08.54 C1.08.55 C1.08.56 C1.08.57 C1.08.58 C1.08.59
+C2.08.28 C1.08.57 C1.08.58 C1.08.60 C1.08.61
+C2.08.29 C1.08.58 C1.08.59 C1.08.61 C1.08.62
+C2.09.00 C1.09.12 C1.09.17
+C2.09.01 C1.09.15
+C2.09.02 C1.09.14 C1.09.16
+C2.09.03 C1.09.17
+C2.09.04 C1.09.11 C1.09.13 C1.09.16 C1.09.19
+C2.09.05 C1.09.12 C1.09.15 C1.09.17 C1.09.20
+C2.09.06 C1.09.14 C1.09.16 C1.09.18 C1.09.22
+C2.09.07 C1.09.16 C1.09.19 C1.09.22 C1.09.24
+C2.09.08 C1.09.17 C1.09.20 C1.09.25 C1.10.21
+C2.09.09 C1.09.18 C1.09.22 C1.09.23 C1.09.27
+C2.09.10 C1.08.23 C1.08.28 C1.09.21 C1.09.26
+C2.09.11 C1.09.22 C1.09.24 C1.09.27 C1.09.29
+C2.09.12 C1.09.23 C1.09.27 C1.09.28 C1.09.30
+C2.09.13 C1.08.28 C1.09.26 C1.09.31 C1.09.33
+C2.09.14 C1.09.28 C1.09.30 C1.09.32 C1.09.35
+C2.09.15 C1.09.27 C1.09.29 C1.09.30 C1.09.34
+C2.09.16 C1.09.31 C1.09.33 C1.09.36 C1.09.38
+C2.09.17 C1.09.30 C1.09.34 C1.09.35 C1.09.37
+C2.09.18 C1.09.36 C1.09.38 C1.09.39 C1.09.41
+C2.09.19 C1.09.35 C1.09.37 C1.09.40 C1.10.36
+C2.09.20 C1.08.37 C1.08.41 C1.09.38 C1.09.41
+C2.09.21 C1.09.39 C1.09.41 C1.09.42 C1.09.43
+C2.09.22 C1.08.41 C1.09.41 C1.09.43 C1.09.45
+C2.09.23 C1.09.42 C1.09.43 C1.09.44 C1.09.46
+C2.09.24 C1.09.43 C1.09.45 C1.09.46 C1.09.47
+C2.09.25 C1.09.46 C1.09.47 C1.09.48 C1.09.49
+C2.09.26 C1.08.48 C1.08.49 C1.08.51 C1.09.50
+C2.09.27 C1.09.48 C1.09.49 C1.09.51 C1.10.51
+C2.09.28 C1.08.51 C1.08.53 C1.09.50 C1.09.52 C1.09.53 C1.09.54 C1.09.55 C1.09.57
+C2.09.29 C1.09.55 C1.09.58 C1.09.60
+C2.09.30 C1.09.57 C1.09.59 C1.09.61 C1.09.62
+C2.09.31 C1.08.60 C1.09.60 C1.09.61 C1.09.62
+C2.10.00 C1.10.15
+C2.10.01 C1.09.17 C1.10.12
+C2.10.02 C1.10.10 C1.10.14 C1.10.15 C1.10.18
+C2.10.03 C1.10.13 C1.10.16
+C2.10.04 C1.10.14 C1.10.18
+C2.10.05 C1.10.16
+C2.10.06 C1.09.17 C1.10.12 C1.10.17 C1.10.21
+C2.10.07 C1.10.11 C1.10.15 C1.10.16 C1.10.19
+C2.10.08 C1.10.15 C1.10.18 C1.10.19 C1.10.22
+C2.10.09 C1.10.17 C1.10.20 C1.10.21 C1.10.24
+C2.10.10 C1.10.20 C1.10.23 C1.10.24 C1.10.27
+C2.10.11 C1.09.25 C1.10.21 C1.10.24 C1.10.28
+C2.10.12 C1.10.23 C1.10.26 C1.10.27 C1.10.30
+C2.10.13 C1.10.26 C1.10.29 C1.10.30 C1.10.32
+C2.10.14 C1.10.24 C1.10.27 C1.10.28 C1.10.31
+C2.10.15 C1.10.27 C1.10.30 C1.10.31 C1.10.33
+C2.10.16 C1.09.32 C1.09.35 C1.10.34 C1.10.36
+C2.10.17 C1.10.30 C1.10.32 C1.10.33 C1.10.35
+C2.10.18 C1.10.34 C1.10.36 C1.10.37 C1.10.40
+C2.10.19 C1.10.37 C1.10.39 C1.10.40 C1.10.42
+C2.10.20 C1.09.40 C1.10.36 C1.10.40 C1.10.43
+C2.10.21 C1.10.39 C1.10.41 C1.10.42 C1.10.44
+C2.10.22 C1.10.40 C1.10.42 C1.10.43 C1.10.45
+C2.10.23 C1.10.42 C1.10.44 C1.10.45 C1.10.46
+C2.10.24 C1.09.44 C1.09.46 C1.09.48 C1.10.47
+C2.10.25 C1.09.48 C1.10.47 C1.10.49 C1.10.51
+C2.10.26 C1.10.49 C1.10.50 C1.10.51 C1.10.52
+C2.10.27 C1.09.51 C1.10.51 C1.10.52 C1.10.53 C1.10.54 C1.10.55 C1.10.57
+C2.10.28 C1.10.52 C1.10.54 C1.10.56 C1.10.57 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.58
+C2.10.29 C1.09.54 C1.09.56 C1.10.59
+C2.10.30 C1.09.60 C1.09.61 C1.10.59 C1.10.61
+C2.10.31 C1.10.61 C1.10.62
+C2.11.00 C1.11.12 C1.11.13 C1.11.14
+C2.11.01 C1.10.14 C1.10.18 C1.11.15 C1.11.20
+C2.11.02 C1.11.15 C1.11.16 C1.11.20 C1.11.21
+C2.11.03 C1.11.16 C1.11.17 C1.11.21 C1.11.22
+C2.11.04 C1.11.17 C1.11.18 C1.11.22 C1.11.23
+C2.11.05 C1.11.18 C1.11.19 C1.11.23 C1.11.24
+C2.11.06 C1.10.18 C1.10.22 C1.10.25 C1.11.20
+C2.11.07 C1.10.25 C1.11.20 C1.11.21 C1.11.25
+C2.11.08 C1.11.21 C1.11.22 C1.11.25 C1.11.26
+C2.11.09 C1.11.22 C1.11.23 C1.11.26 C1.11.27
+C2.11.10 C1.11.23 C1.11.24 C1.11.27 C1.11.28
+C2.11.11 C1.10.29 C1.10.32 C1.11.29 C1.11.33
+C2.11.12 C1.11.29 C1.11.30 C1.11.33 C1.11.34
+C2.11.13 C1.11.30 C1.11.31 C1.11.34 C1.11.35
+C2.11.14 C1.11.31 C1.11.32 C1.11.35 C1.11.36
+C2.11.15 C1.10.32 C1.10.35 C1.10.38 C1.11.33
+C2.11.16 C1.10.38 C1.11.33 C1.11.34 C1.11.37
+C2.11.17 C1.11.34 C1.11.35 C1.11.37 C1.11.38
+C2.11.18 C1.11.35 C1.11.36 C1.11.38 C1.11.39
+C2.11.19 C1.10.41 C1.10.44 C1.11.40 C1.11.43
+C2.11.20 C1.11.40 C1.11.41 C1.11.43 C1.11.44
+C2.11.21 C1.11.41 C1.11.42 C1.11.44 C1.11.45
+C2.11.22 C1.10.44 C1.10.46 C1.10.48 C1.11.43
+C2.11.23 C1.10.48 C1.11.43 C1.11.44 C1.11.46
+C2.11.24 C1.11.44 C1.11.45 C1.11.46 C1.11.47
+C2.11.25 C1.10.50 C1.10.52 C1.11.48 C1.11.50 C1.11.51
+C2.11.26 C1.11.48 C1.11.49 C1.11.51 C1.11.52 C1.11.53
+C2.11.27 C1.11.55 C1.11.56 C1.11.58 C1.11.59
+C2.11.28 C1.11.56 C1.11.57 C1.11.59 C1.11.60
+C2.11.29 C1.10.60 C1.11.58 C1.11.59 C1.11.61
+C2.11.30 C1.11.59 C1.11.60 C1.11.61 C1.11.62
+C2.12.00 C1.11.14 C1.12.12 C1.12.13 C1.12.14
+C2.12.01 C1.12.15 C1.12.16 C1.12.20 C1.12.21 C1.13.13
+C2.12.02 C1.12.16 C1.12.17 C1.12.21 C1.12.22
+C2.12.03 C1.12.17 C1.12.18 C1.12.22 C1.12.23
+C2.12.04 C1.12.18 C1.12.19 C1.12.23 C1.12.24
+C2.12.05 C1.11.19 C1.11.24 C1.12.19 C1.12.24
+C2.12.06 C1.12.20 C1.12.21 C1.12.25 C1.13.24
+C2.12.07 C1.12.21 C1.12.22 C1.12.25 C1.12.26
+C2.12.08 C1.12.22 C1.12.23 C1.12.26 C1.12.27
+C2.12.09 C1.12.23 C1.12.24 C1.12.27 C1.12.28
+C2.12.10 C1.11.24 C1.11.28 C1.12.24 C1.12.28
+C2.12.11 C1.12.29 C1.12.30 C1.12.33 C1.12.34
+C2.12.12 C1.12.30 C1.12.31 C1.12.34 C1.12.35
+C2.12.13 C1.12.31 C1.12.32 C1.12.35 C1.12.36
+C2.12.14 C1.11.32 C1.11.36 C1.12.32 C1.12.36
+C2.12.15 C1.12.33 C1.12.34 C1.12.37 C1.13.37
+C2.12.16 C1.12.34 C1.12.35 C1.12.37 C1.12.38
+C2.12.17 C1.12.35 C1.12.36 C1.12.38 C1.12.39
+C2.12.18 C1.11.36 C1.11.39 C1.12.36 C1.12.39
+C2.12.19 C1.12.40 C1.12.41 C1.12.43 C1.12.44
+C2.12.20 C1.12.41 C1.12.42 C1.12.44 C1.12.45
+C2.12.21 C1.11.42 C1.11.45 C1.12.42 C1.12.45
+C2.12.22 C1.12.43 C1.12.44 C1.12.46 C1.13.47
+C2.12.23 C1.12.44 C1.12.45 C1.12.46 C1.12.47
+C2.12.24 C1.11.45 C1.11.47 C1.12.45 C1.12.47
+C2.12.25 C1.12.48 C1.12.49 C1.12.50 C1.12.51 C1.12.52
+C2.12.26 C1.11.49 C1.11.53 C1.12.49 C1.12.52 C1.12.53
+C2.12.27 C1.12.56 C1.12.57 C1.12.59 C1.12.60
+C2.12.28 C1.11.57 C1.11.60 C1.12.57 C1.12.60
+C2.12.29 C1.12.59 C1.12.60 C1.12.61 C1.12.62
+C2.12.30 C1.11.60 C1.11.62 C1.12.60 C1.12.62
+C2.13.00 C1.13.12 C1.13.16
+C2.13.01 C1.13.14
+C2.13.02 C1.13.13 C1.13.17
+C2.13.03 C1.13.11 C1.13.15
+C2.13.04 C1.12.20 C1.13.13 C1.13.17
+C2.13.05 C1.13.15
+C2.13.06 C1.13.12 C1.13.16 C1.13.20 C1.14.17
+C2.13.07 C1.13.14 C1.13.15 C1.13.18
+C2.13.08 C1.12.20 C1.13.17 C1.13.21 C1.13.24
+C2.13.09 C1.13.19 C1.13.23
+C2.13.10 C1.13.22 C1.13.26
+C2.13.11 C1.13.23 C1.13.27
+C2.13.12 C1.13.25 C1.13.28 C1.13.29 C1.13.31
+C2.13.13 C1.12.29 C1.12.33 C1.13.28 C1.13.31
+C2.13.14 C1.13.26 C1.13.30
+C2.13.15 C1.13.29 C1.13.31 C1.13.32 C1.13.34
+C2.13.16 C1.13.33 C1.13.35
+C2.13.17 C1.12.33 C1.13.31 C1.13.34 C1.13.37
+C2.13.18 C1.13.36 C1.13.38 C1.13.39 C1.13.41
+C2.13.19 C1.13.38 C1.13.40 C1.13.41 C1.13.43
+C2.13.20 C1.13.39 C1.13.41 C1.13.42 C1.13.44
+C2.13.21 C1.12.40 C1.12.43 C1.13.40 C1.13.43
+C2.13.22 C1.13.41 C1.13.43 C1.13.44 C1.13.45
+C2.13.23 C1.12.43 C1.13.43 C1.13.45 C1.13.47
+C2.13.24 C1.13.46 C1.13.48 C1.13.50 C1.14.48
+C2.13.25 C1.13.48 C1.13.49 C1.13.50 C1.13.51
+C2.13.26 C1.12.48 C1.12.50 C1.13.49 C1.13.51
+C2.13.27 C1.12.54 C1.13.51 C1.13.52 C1.13.53 C1.13.54 C1.13.55 C1.13.56 C1.13.57
+C2.13.28 C1.12.54 C1.12.55 C1.12.56 C1.12.58 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.59
+C2.13.29 C1.13.58 C1.13.60 C1.13.61 C1.14.61
+C2.13.30 C1.13.60 C1.13.61
+C2.13.31 C1.13.60 C1.13.61 C1.13.62
+C2.14.00 C1.13.12 C1.14.17
+C2.14.01 C1.14.12 C1.14.15
+C2.14.02 C1.14.16
+C2.14.03 C1.14.15
+C2.14.04 C1.14.16 C1.14.19
+C2.14.05 C1.14.17 C1.14.20
+C2.14.06 C1.14.14 C1.14.18 C1.14.22
+C2.14.07 C1.14.22 C1.14.24
+C2.14.08 C1.13.20 C1.14.25
+C2.14.09 C1.14.23 C1.14.27
+C2.14.10 C1.14.26 C1.15.29
+C2.14.11 C1.14.27 C1.14.29
+C2.14.12 C1.14.28 C1.14.30
+C2.14.13 C1.14.31 C1.14.33
+C2.14.14 C1.14.32 C1.14.35
+C2.14.15 C1.14.30 C1.14.34
+C2.14.16 C1.14.36 C1.14.38
+C2.14.17 C1.14.35 C1.14.37
+C2.14.18 C1.14.39 C1.14.41
+C2.14.19 C1.13.35 C1.14.40
+C2.14.20 C1.14.41 C1.15.42
+C2.14.21 C1.14.42 C1.14.43
+C2.14.22 C1.14.43 C1.14.45
+C2.14.23 C1.13.46 C1.14.44 C1.14.46 C1.14.48
+C2.14.24 C1.14.46 C1.14.47 C1.14.48 C1.14.49
+C2.14.25 C1.13.50 C1.14.48 C1.14.49 C1.14.51
+C2.14.26 C1.14.50 C1.14.52 C1.14.53 C1.14.54 C1.15.52
+C2.14.27 C1.13.50 C1.13.51 C1.13.52 C1.13.54 C1.14.51
+C2.14.28 C1.14.52 C1.14.53 C1.14.54 C1.14.55 C1.14.56 C1.14.57 C1.14.58 C1.14.59 C1.14.60
+C2.14.29 C1.13.58 C1.14.57 C1.14.59 C1.14.61
+C2.14.30 C1.14.59 C1.14.60 C1.14.61 C1.14.62
+C2.14.31 C1.13.61 C1.14.61 C1.14.62
+C2.15.00 C1.15.17
+C2.15.01 C1.15.16 C1.15.17
+C2.15.02 C1.15.15 C1.15.16
+C2.15.03 C1.14.13 C1.15.18 C1.15.19
+C2.15.04 C1.15.19 C1.15.20
+C2.15.05 C1.15.21 C1.15.22
+C2.15.06 C1.15.22 C1.15.23
+C2.15.07 C1.14.21 C1.15.24
+C2.15.08 C1.15.24 C1.15.25
+C2.15.09 C1.15.26 C1.15.27
+C2.15.10 C1.15.27 C1.15.28
+C2.15.11 C1.15.29 C1.15.30
+C2.15.12 C1.15.31 C1.15.32
+C2.15.13 C1.15.32 C1.15.33
+C2.15.14 C1.14.33 C1.15.34
+C2.15.15 C1.15.35 C1.15.36
+C2.15.16 C1.15.36 C1.15.37
+C2.15.17 C1.14.38 C1.15.38
+C2.15.18 C1.15.39 C1.15.40
+C2.15.19 C1.15.40 C1.15.41
+C2.15.20 C1.15.43 C1.15.44
+C2.15.21 C1.15.44 C1.15.45
+C2.15.22 C1.15.46 C1.15.47
+C2.15.23 C1.15.47 C1.15.48
+C2.15.24 C1.14.50 C1.15.49 C1.15.50 C1.15.52
+C2.15.25 C1.15.50 C1.15.51 C1.15.52 C1.15.53
+C2.15.26 C1.15.52 C1.15.53 C1.15.54 C1.15.55 C1.15.56
+C2.15.27 C1.15.54 C1.15.55 C1.15.56 C1.15.57 C1.15.58 C1.15.59 C1.15.60 C1.15.61 C1.15.62
+C2.15.28 C1.14.62 C1.15.60 C1.15.61
+C2.15.29 C1.15.61 C1.15.62
+C3.00.00 C2.00.06
+C3.00.01 C2.00.07 C2.00.08 C2.00.11 C2.01.10
+C3.00.02 C2.00.05 C2.00.09 C2.00.12
+C3.00.03 C2.00.10 C2.00.13
+C3.00.04 C2.00.11 C2.00.14
+C3.00.05 C2.00.12 C2.00.15
+C3.00.06 C2.00.13 C2.00.16
+C3.00.07 C2.00.14 C2.00.17 C2.01.20
+C3.00.08 C2.00.15 C2.00.18 C2.00.20
+C3.00.09 C2.00.16 C2.00.19 C2.00.21
+C3.00.10 C2.00.20 C2.00.22
+C3.00.11 C2.00.21 C2.00.23
+C3.00.12 C2.00.22 C2.00.24 C2.01.26
+C3.00.13 C2.00.23 C2.00.25 C2.00.26
+C3.00.14 C2.00.26 C2.00.27
+C3.00.15 C2.00.27 C2.00.28 C2.00.29
+C3.01.00 C2.00.07 C2.01.10
+C3.01.01 C2.01.05 C2.01.06 C2.01.08 C2.01.09 C2.01.11
+C3.01.02 C2.00.07 C2.01.04 C2.01.06 C2.01.07 C2.01.09 C2.01.10 C2.01.11
+C3.01.03 C2.01.05 C2.01.08 C2.01.09 C2.01.12 C2.01.14 C2.02.11
+C3.01.04 C2.01.10 C2.01.13
+C3.01.05 C2.01.09 C2.01.11 C2.01.12 C2.01.14 C2.01.15 C2.01.17
+C3.01.06 C2.01.13 C2.01.16 C2.01.18
+C3.01.07 C2.01.14 C2.01.17 C2.01.19 C2.02.16
+C3.01.08 C2.01.18 C2.01.21
+C3.01.09 C2.01.20 C2.01.22
+C3.01.10 C2.01.21 C2.01.23 C2.02.24
+C3.01.11 C2.01.22 C2.01.24 C2.01.25
+C3.01.12 C2.01.25 C2.01.27
+C3.01.13 C2.01.26 C2.01.28
+C3.01.14 C2.01.28 C2.01.29 C2.01.30 C2.02.29
+C3.01.15 C2.00.27 C2.00.28 C2.01.28 C2.01.30 C2.01.31
+C3.02.00 C2.01.03 C2.01.08 C2.02.06 C2.02.09 C2.02.10 C2.02.11
+C3.02.01 C2.02.07 C2.02.08 C2.02.10 C2.02.12 C2.02.13 C2.03.06
+C3.02.02 C2.02.07 C2.02.09 C2.02.10 C2.02.12 C2.02.13
+C3.02.03 C2.02.09 C2.02.10 C2.02.11 C2.02.14
+C3.02.04 C2.02.10 C2.02.12 C2.02.13 C2.02.14 C2.02.15 C2.02.17
+C3.02.05 C2.01.14 C2.02.11 C2.02.14 C2.02.16
+C3.02.06 C2.02.13 C2.02.17 C2.03.11 C2.03.15
+C3.02.07 C2.02.14 C2.02.15 C2.02.16 C2.02.17 C2.02.18 C2.02.19
+C3.02.08 C2.02.17 C2.02.19 C2.02.21 C2.03.15
+C3.02.09 C2.01.19 C2.02.16 C2.02.18 C2.02.19 C2.02.20 C2.02.22
+C3.02.10 C2.02.19 C2.02.21 C2.02.22 C2.02.23
+C3.02.11 C2.02.24 C2.02.25
+C3.02.12 C2.02.25 C2.02.26 C2.03.25
+C3.02.13 C2.01.27 C2.02.27 C2.02.28
+C3.02.14 C2.01.29 C2.01.31 C2.02.29 C2.02.30
+C3.02.15 C2.02.29 C2.02.30 C2.02.31
+C3.03.00 C2.03.04 C2.03.05
+C3.03.01 C2.03.05
+C3.03.02 C2.03.01 C2.03.02 C2.03.03 C2.03.06 C2.03.07 C2.03.08
+C3.03.03 C2.03.03 C2.03.04 C2.03.07 C2.03.08 C2.03.09
+C3.03.04 C2.03.04 C2.03.05 C2.03.09 C2.03.10
+C3.03.05 C2.02.13 C2.03.06 C2.03.07 C2.03.11
+C3.03.06 C2.03.07 C2.03.08 C2.03.09 C2.03.11 C2.03.12 C2.03.13
+C3.03.07 C2.03.09 C2.03.10 C2.03.13 C2.03.14
+C3.03.08 C2.03.11 C2.03.12 C2.03.13 C2.03.15 C2.03.16 C2.03.17
+C3.03.09 C2.03.13 C2.03.14 C2.03.17 C2.03.18
+C3.03.10 C2.02.21 C2.03.15 C2.03.16 C2.03.17 C2.03.19 C2.03.20
+C3.03.11 C2.03.17 C2.03.18 C2.03.20 C2.03.21
+C3.03.12 C2.02.21 C2.02.23 C2.03.19 C2.03.20 C2.03.22 C2.03.23
+C3.03.13 C2.03.20 C2.03.21 C2.03.23 C2.03.24
+C3.03.14 C2.03.25 C2.03.26
+C3.03.15 C2.02.28 C2.03.27 C2.03.28 C2.03.29 C2.03.30
+C3.04.00 C2.04.04 C2.04.05
+C3.04.01 C2.03.05 C2.04.05
+C3.04.02 C2.04.02 C2.04.03 C2.04.06 C2.04.07 C2.04.08
+C3.04.03 C2.04.03 C2.04.04 C2.04.08 C2.04.09
+C3.04.04 C2.03.05 C2.03.10 C2.04.04 C2.04.05 C2.04.09 C2.04.10
+C3.04.05 C2.04.06 C2.04.07 C2.04.08 C2.04.11 C2.04.12 C2.05.13
+C3.04.06 C2.04.08 C2.04.09 C2.04.12 C2.04.13
+C3.04.07 C2.03.10 C2.03.14 C2.04.09 C2.04.10 C2.04.13 C2.04.14
+C3.04.08 C2.04.12 C2.04.13 C2.04.16 C2.04.17
+C3.04.09 C2.03.14 C2.03.18 C2.04.13 C2.04.14 C2.04.17 C2.04.18
+C3.04.10 C2.04.16 C2.04.17 C2.04.19 C2.04.20
+C3.04.11 C2.03.18 C2.03.21 C2.04.17 C2.04.18 C2.04.20 C2.04.21
+C3.04.12 C2.04.19 C2.04.20 C2.04.22 C2.04.23
+C3.04.13 C2.03.21 C2.03.24 C2.04.20 C2.04.21 C2.04.23 C2.04.24
+C3.04.14 C2.03.26 C2.04.25 C2.04.26
+C3.04.15 C2.03.28 C2.03.30 C2.04.27 C2.04.28 C2.04.29 C2.04.30 C2.05.28
+C3.05.00 C2.05.06 C2.05.09 C2.05.11 C2.06.08
+C3.05.01 C2.05.07 C2.05.08 C2.05.09 C2.05.10 C2.05.12
+C3.05.02 C2.04.06 C2.05.08 C2.05.12 C2.05.13
+C3.05.03 C2.05.09 C2.05.10 C2.05.11 C2.05.12 C2.05.14 C2.05.15
+C3.05.04 C2.05.12 C2.05.13 C2.05.15 C2.05.17
+C3.05.05 C2.05.11 C2.05.14 C2.05.15 C2.05.16 C2.05.18 C2.06.14
+C3.05.06 C2.04.11 C2.04.12 C2.04.15 C2.04.16 C2.05.13 C2.05.17
+C3.05.07 C2.05.15 C2.05.17 C2.05.18 C2.05.19
+C3.05.08 C2.04.15 C2.04.16 C2.04.19 C2.05.17 C2.05.19 C2.05.21
+C3.05.09 C2.05.18 C2.05.19 C2.05.20 C2.05.22
+C3.05.10 C2.04.19 C2.04.22 C2.05.19 C2.05.21 C2.05.22 C2.05.23
+C3.05.11 C2.05.24 C2.05.25 C2.05.26
+C3.05.12 C2.04.25 C2.05.26
+C3.05.13 C2.05.27 C2.05.28
+C3.05.14 C2.05.29 C2.05.30 C2.05.31
+C3.06.00 C2.06.05 C2.06.06 C2.06.07 C2.06.08 C2.06.09 C2.06.11 C2.06.12 C2.06.15
+C3.06.01 C2.06.07 C2.06.10 C2.06.11 C2.06.15
+C3.06.02 C2.05.11 C2.06.08 C2.06.12 C2.06.14
+C3.06.03 C2.06.10 C2.06.13 C2.06.16
+C3.06.04 C2.06.12 C2.06.14 C2.06.15 C2.06.17
+C3.06.05 C2.06.16 C2.06.18
+C3.06.06 C2.05.16 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.19
+C3.06.07 C2.06.18 C2.06.21 C2.06.23
+C3.06.08 C2.06.20 C2.06.22 C2.06.24
+C3.06.09 C2.05.24 C2.06.23
+C3.06.10 C2.06.24 C2.06.25
+C3.06.11 C2.05.27 C2.06.25 C2.06.27
+C3.06.12 C2.06.26 C2.06.28 C2.06.29 C2.06.30
+C3.06.13 C2.05.29 C2.06.29
+C3.06.14 C2.06.30 C2.06.31 C2.07.28
+C3.06.15 C2.05.29 C2.05.30 C2.06.30 C2.06.31
+C3.07.00 C2.07.06 C2.07.10
+C3.07.01 C2.06.10 C2.07.07 C2.07.08 C2.07.11
+C3.07.02 C2.07.08 C2.07.09 C2.07.12
+C3.07.03 C2.07.10 C2.07.13
+C3.07.04 C2.07.11 C2.07.14 C2.07.17
+C3.07.05 C2.07.12 C2.07.15 C2.07.18
+C3.07.06 C2.07.13 C2.07.16 C2.07.19
+C3.07.07 C2.06.20 C2.07.17
+C3.07.08 C2.07.18 C2.07.20
+C3.07.09 C2.07.19 C2.07.21
+C3.07.10 C2.07.20 C2.07.22 C2.07.24
+C3.07.11 C2.07.21 C2.07.23 C2.07.25
+C3.07.12 C2.06.26 C2.07.24
+C3.07.13 C2.07.25 C2.07.26
+C3.07.14 C2.07.26 C2.07.27 C2.07.28 C2.07.29
+C3.07.15 C2.07.28 C2.07.29
+C3.08.00 C2.08.06 C2.08.10
+C3.08.01 C2.08.07 C2.08.08 C2.08.11 C2.09.10
+C3.08.02 C2.08.09 C2.08.12
+C3.08.03 C2.08.10 C2.08.13
+C3.08.04 C2.08.11 C2.08.14 C2.08.17
+C3.08.05 C2.08.12 C2.08.15 C2.08.18
+C3.08.06 C2.08.13 C2.08.16 C2.08.19
+C3.08.07 C2.08.17 C2.09.20
+C3.08.08 C2.08.18 C2.08.20
+C3.08.09 C2.08.19 C2.08.21
+C3.08.10 C2.08.20 C2.08.22 C2.08.24
+C3.08.11 C2.08.21 C2.08.23 C2.08.25
+C3.08.12 C2.08.24 C2.09.26
+C3.08.13 C2.08.25 C2.08.26
+C3.08.14 C2.08.26 C2.08.27 C2.08.28 C2.08.29
+C3.08.15 C2.08.28 C2.08.29
+C3.09.00 C2.08.07 C2.09.10
+C3.09.01 C2.09.05 C2.09.08 C2.09.09 C2.09.11 C2.09.12 C2.09.15
+C3.09.02 C2.09.06 C2.09.07 C2.09.09 C2.09.10 C2.09.11 C2.09.15
+C3.09.03 C2.09.08 C2.09.12 C2.09.14 C2.10.11
+C3.09.04 C2.09.10 C2.09.13 C2.09.16
+C3.09.05 C2.09.12 C2.09.14 C2.09.15 C2.09.17
+C3.09.06 C2.09.16 C2.09.18
+C3.09.07 C2.09.14 C2.09.17 C2.09.19 C2.10.16 C2.10.18 C2.10.20
+C3.09.08 C2.09.18 C2.09.21 C2.09.23
+C3.09.09 C2.09.20 C2.09.22 C2.09.24
+C3.09.10 C2.09.23 C2.10.24
+C3.09.11 C2.09.24 C2.09.25
+C3.09.12 C2.09.25 C2.09.27 C2.10.27
+C3.09.13 C2.09.26 C2.09.28 C2.09.29 C2.09.30 C2.10.29
+C3.09.14 C2.09.29 C2.09.30 C2.09.31 C2.10.29
+C3.09.15 C2.08.28 C2.09.30 C2.09.31
+C3.10.00 C2.09.08 C2.10.06 C2.10.09 C2.10.10 C2.10.11
+C3.10.01 C2.10.07 C2.10.08 C2.10.12 C2.10.13 C2.11.06
+C3.10.02 C2.10.07 C2.10.08 C2.10.10 C2.10.12 C2.10.13
+C3.10.03 C2.10.09 C2.10.10 C2.10.11 C2.10.12 C2.10.14 C2.10.15
+C3.10.04 C2.10.12 C2.10.13 C2.10.15 C2.10.17
+C3.10.05 C2.09.14 C2.10.11 C2.10.14 C2.10.15 C2.10.16 C2.10.18
+C3.10.06 C2.10.13 C2.10.17 C2.11.11 C2.11.12 C2.11.15 C2.11.16
+C3.10.07 C2.10.15 C2.10.17 C2.10.18 C2.10.19
+C3.10.08 C2.10.17 C2.10.19 C2.10.21 C2.11.15 C2.11.16 C2.11.19
+C3.10.09 C2.10.18 C2.10.19 C2.10.20 C2.10.22
+C3.10.10 C2.10.19 C2.10.21 C2.10.22 C2.10.23 C2.11.19 C2.11.22
+C3.10.11 C2.10.24 C2.10.25 C2.10.26
+C3.10.12 C2.10.26 C2.11.25
+C3.10.13 C2.10.27 C2.10.28
+C3.10.14 C2.09.29 C2.09.31 C2.10.29 C2.10.30
+C3.10.15 C2.10.30 C2.10.31
+C3.11.00 C2.11.04 C2.11.05
+C3.11.01 C2.11.05 C2.12.05
+C3.11.02 C2.11.02 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C3.11.03 C2.11.03 C2.11.04 C2.11.08 C2.11.09
+C3.11.04 C2.11.04 C2.11.05 C2.11.09 C2.11.10 C2.12.05 C2.12.10
+C3.11.05 C2.10.13 C2.11.06 C2.11.07 C2.11.08 C2.11.11 C2.11.12
+C3.11.06 C2.11.08 C2.11.09 C2.11.12 C2.11.13
+C3.11.07 C2.11.09 C2.11.10 C2.11.13 C2.11.14 C2.12.10 C2.12.14
+C3.11.08 C2.11.12 C2.11.13 C2.11.16 C2.11.17
+C3.11.09 C2.11.13 C2.11.14 C2.11.17 C2.11.18 C2.12.14 C2.12.18
+C3.11.10 C2.11.16 C2.11.17 C2.11.19 C2.11.20
+C3.11.11 C2.11.17 C2.11.18 C2.11.20 C2.11.21 C2.12.18 C2.12.21
+C3.11.12 C2.11.19 C2.11.20 C2.11.22 C2.11.23
+C3.11.13 C2.11.20 C2.11.21 C2.11.23 C2.11.24 C2.12.21 C2.12.24
+C3.11.14 C2.11.25 C2.11.26 C2.12.26
+C3.11.15 C2.10.28 C2.11.27 C2.11.28 C2.11.29 C2.11.30 C2.12.28 C2.12.30
+C3.12.00 C2.12.04 C2.12.05
+C3.12.01 C2.12.05
+C3.12.02 C2.12.02 C2.12.03 C2.12.06 C2.12.07 C2.12.08
+C3.12.03 C2.12.03 C2.12.04 C2.12.07 C2.12.08 C2.12.09
+C3.12.04 C2.12.04 C2.12.05 C2.12.09 C2.12.10
+C3.12.05 C2.12.06 C2.12.07 C2.12.11 C2.13.13
+C3.12.06 C2.12.07 C2.12.08 C2.12.09 C2.12.11 C2.12.12 C2.12.13
+C3.12.07 C2.12.09 C2.12.10 C2.12.13 C2.12.14
+C3.12.08 C2.12.11 C2.12.12 C2.12.13 C2.12.15 C2.12.16 C2.12.17
+C3.12.09 C2.12.13 C2.12.14 C2.12.17 C2.12.18
+C3.12.10 C2.12.15 C2.12.16 C2.12.17 C2.12.19 C2.12.20 C2.13.21
+C3.12.11 C2.12.17 C2.12.18 C2.12.20 C2.12.21
+C3.12.12 C2.12.19 C2.12.20 C2.12.22 C2.12.23 C2.13.21 C2.13.23
+C3.12.13 C2.12.20 C2.12.21 C2.12.23 C2.12.24
+C3.12.14 C2.12.25 C2.12.26
+C3.12.15 C2.12.27 C2.12.28 C2.12.29 C2.12.30 C2.13.28
+C3.13.00 C2.13.06 C2.13.09 C2.13.11 C2.14.05 C2.14.08
+C3.13.01 C2.13.07 C2.13.08 C2.13.09 C2.13.10 C2.13.12
+C3.13.02 C2.12.06 C2.13.08 C2.13.10 C2.13.12 C2.13.13
+C3.13.03 C2.13.09 C2.13.10 C2.13.11 C2.13.14
+C3.13.04 C2.13.10 C2.13.12 C2.13.13 C2.13.14 C2.13.15 C2.13.17
+C3.13.05 C2.13.11 C2.13.14 C2.13.16 C2.14.14
+C3.13.06 C2.12.11 C2.12.15 C2.13.13 C2.13.17
+C3.13.07 C2.13.14 C2.13.15 C2.13.16 C2.13.17 C2.13.18 C2.13.19
+C3.13.08 C2.12.15 C2.13.17 C2.13.19 C2.13.21
+C3.13.09 C2.13.16 C2.13.18 C2.13.19 C2.13.20 C2.13.22 C2.14.19
+C3.13.10 C2.13.19 C2.13.21 C2.13.22 C2.13.23
+C3.13.11 C2.13.24 C2.13.25
+C3.13.12 C2.12.25 C2.13.25 C2.13.26
+C3.13.13 C2.13.27 C2.13.28 C2.14.27
+C3.13.14 C2.13.29 C2.13.30 C2.13.31
+C3.14.00 C2.14.05 C2.14.06 C2.14.07 C2.14.08 C2.14.09 C2.14.11
+C3.14.01 C2.14.04 C2.14.07 C2.14.10 C2.14.11 C2.15.07
+C3.14.02 C2.13.11 C2.14.05 C2.14.08 C2.14.09 C2.14.12 C2.14.14
+C3.14.03 C2.14.10 C2.14.13
+C3.14.04 C2.14.09 C2.14.11 C2.14.12 C2.14.14 C2.14.15 C2.14.17
+C3.14.05 C2.14.13 C2.14.16 C2.14.18
+C3.14.06 C2.13.16 C2.14.14 C2.14.17 C2.14.19
+C3.14.07 C2.14.18 C2.14.21
+C3.14.08 C2.14.20 C2.14.22
+C3.14.09 C2.13.24 C2.14.21 C2.14.23
+C3.14.10 C2.14.22 C2.14.24 C2.14.25
+C3.14.11 C2.14.25 C2.14.27
+C3.14.12 C2.14.26 C2.14.28
+C3.14.13 C2.13.29 C2.14.28 C2.14.29
+C3.14.14 C2.14.28 C2.14.30 C2.14.31 C2.15.27 C2.15.28
+C3.14.15 C2.13.29 C2.13.30 C2.14.30 C2.14.31
+C3.15.00 C2.15.06
+C3.15.01 C2.14.10 C2.15.07 C2.15.08 C2.15.11
+C3.15.02 C2.15.05 C2.15.08 C2.15.09 C2.15.12
+C3.15.03 C2.15.10 C2.15.13
+C3.15.04 C2.15.11 C2.15.14
+C3.15.05 C2.15.12 C2.15.15
+C3.15.06 C2.15.13 C2.15.16
+C3.15.07 C2.14.20 C2.15.14 C2.15.17
+C3.15.08 C2.15.15 C2.15.18 C2.15.20
+C3.15.09 C2.15.16 C2.15.19 C2.15.21
+C3.15.10 C2.15.20 C2.15.22
+C3.15.11 C2.15.21 C2.15.23
+C3.15.12 C2.14.26 C2.15.22 C2.15.24
+C3.15.13 C2.15.23 C2.15.25 C2.15.26
+C3.15.14 C2.15.26 C2.15.27
+C3.15.15 C2.15.27 C2.15.28 C2.15.29
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt
new file mode 100755
index 0000000000000000000000000000000000000000..217e2f7d4091e34c829916dede9444d314a6a6ca
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt
@@ -0,0 +1,1519 @@
+# 3D FCal Neighbors Prev in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Thu Nov 30 16:09:58 2006
+#
+# 3d neighbors prev in sampling are all cells touching the same
+# eta phi area in the prev sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without prev sampling neighbors are not listed.
+#
+A2.00.00 A1.00.14 A1.00.15
+A2.00.01 A1.00.15 A1.00.16
+A2.00.02 A1.00.16
+A2.00.03 A1.00.17 A1.00.18 A1.01.13
+A2.00.04 A1.00.18 A1.00.19
+A2.00.05 A1.00.20 A1.00.21
+A2.00.06 A1.00.21 A1.00.22
+A2.00.07 A1.00.23 A1.01.21
+A2.00.08 A1.00.23 A1.00.24
+A2.00.09 A1.00.25 A1.00.26
+A2.00.10 A1.00.26 A1.00.27
+A2.00.11 A1.00.28 A1.00.29
+A2.00.12 A1.00.30 A1.00.31
+A2.00.13 A1.00.31 A1.00.32
+A2.00.14 A1.00.33 A1.01.33
+A2.00.15 A1.00.34 A1.00.35
+A2.00.16 A1.00.35 A1.00.36
+A2.00.17 A1.00.37 A1.01.38
+A2.00.18 A1.00.38 A1.00.39
+A2.00.19 A1.00.39 A1.00.40
+A2.00.20 A1.00.42 A1.00.43
+A2.00.21 A1.00.43 A1.00.44
+A2.00.22 A1.00.45 A1.00.46
+A2.00.23 A1.00.46 A1.00.47
+A2.00.24 A1.00.48 A1.00.49 A1.00.51 A1.01.50
+A2.00.25 A1.00.49 A1.00.50 A1.00.51 A1.00.52
+A2.00.26 A1.00.51 A1.00.52 A1.00.54 A1.00.55 A1.00.56
+A2.00.27 A1.00.54 A1.00.55 A1.00.56 A1.00.57 A1.00.58 A1.00.59 A1.00.60 A1.00.61 A1.00.62
+A2.00.28 A1.00.60 A1.00.61 A1.01.62
+A2.00.29 A1.00.61 A1.00.62
+A2.01.00 A1.01.17 A1.02.13
+A2.01.01 A1.01.12 A1.01.15
+A2.01.02 A1.01.16
+A2.01.03 A1.01.15
+A2.01.04 A1.01.16 A1.01.19
+A2.01.05 A1.01.17 A1.01.20
+A2.01.06 A1.01.14 A1.01.18 A1.01.22
+A2.01.07 A1.01.22 A1.01.24
+A2.01.08 A1.01.25 A1.02.21
+A2.01.09 A1.01.23 A1.01.27
+A2.01.10 A1.00.28 A1.01.26
+A2.01.11 A1.01.27 A1.01.29
+A2.01.12 A1.01.28 A1.01.30
+A2.01.13 A1.01.31 A1.01.33
+A2.01.14 A1.01.32 A1.01.35
+A2.01.15 A1.01.30 A1.01.34
+A2.01.16 A1.01.36 A1.01.38
+A2.01.17 A1.01.35 A1.01.37
+A2.01.18 A1.01.39 A1.01.41
+A2.01.19 A1.01.40 A1.02.37
+A2.01.20 A1.00.41 A1.01.41
+A2.01.21 A1.01.42 A1.01.43
+A2.01.22 A1.01.43 A1.01.45
+A2.01.23 A1.01.44 A1.01.46 A1.01.48 A1.02.47
+A2.01.24 A1.01.46 A1.01.47 A1.01.48 A1.01.49
+A2.01.25 A1.01.48 A1.01.49 A1.01.51 A1.02.51
+A2.01.26 A1.00.51 A1.00.53 A1.01.50 A1.01.52 A1.01.53
+A2.01.27 A1.01.51 A1.02.51 A1.02.52 A1.02.53 A1.02.55
+A2.01.28 A1.00.53 A1.01.52 A1.01.53 A1.01.54 A1.01.55 A1.01.56 A1.01.57 A1.01.58 A1.01.59
+A2.01.29 A1.01.56 A1.01.58 A1.01.60 A1.02.59
+A2.01.30 A1.01.58 A1.01.59 A1.01.60 A1.01.61 A1.01.62
+A2.01.31 A1.01.60 A1.01.61 A1.01.62
+A2.02.00 A1.02.13 A1.02.17
+A2.02.01 A1.02.15
+A2.02.02 A1.02.14 A1.02.18
+A2.02.03 A1.02.12 A1.02.16
+A2.02.04 A1.02.14 A1.02.18 A1.03.20
+A2.02.05 A1.02.16
+A2.02.06 A1.01.17 A1.02.13 A1.02.17 A1.02.21
+A2.02.07 A1.02.15 A1.02.16 A1.02.19
+A2.02.08 A1.02.18 A1.02.22 A1.02.25 A1.03.20
+A2.02.09 A1.02.20 A1.02.24
+A2.02.10 A1.02.23 A1.02.27
+A2.02.11 A1.02.24 A1.02.28
+A2.02.12 A1.02.26 A1.02.29 A1.02.30 A1.02.32
+A2.02.13 A1.02.29 A1.02.32 A1.03.29 A1.03.33
+A2.02.14 A1.02.27 A1.02.31
+A2.02.15 A1.02.30 A1.02.32 A1.02.33 A1.02.35
+A2.02.16 A1.02.34 A1.02.37
+A2.02.17 A1.02.32 A1.02.35 A1.02.38 A1.03.33
+A2.02.18 A1.02.36 A1.02.39 A1.02.40 A1.02.42
+A2.02.19 A1.02.39 A1.02.41 A1.02.42 A1.02.44
+A2.02.20 A1.02.40 A1.02.42 A1.02.43 A1.02.45
+A2.02.21 A1.02.41 A1.02.44 A1.03.40 A1.03.43
+A2.02.22 A1.02.42 A1.02.44 A1.02.45 A1.02.46
+A2.02.23 A1.02.44 A1.02.46 A1.02.48 A1.03.43
+A2.02.24 A1.01.48 A1.02.47 A1.02.49 A1.02.51
+A2.02.25 A1.02.49 A1.02.50 A1.02.51 A1.02.52
+A2.02.26 A1.02.50 A1.02.52 A1.03.48 A1.03.50
+A2.02.27 A1.02.52 A1.02.53 A1.02.54 A1.02.55 A1.02.56 A1.02.57 A1.02.58 A1.03.54
+A2.02.28 A1.02.56 A1.02.58 A1.02.60 A1.03.54 A1.03.55 A1.03.56 A1.03.58 A1.03.59 A1.03.61
+A2.02.29 A1.01.60 A1.01.61 A1.02.59 A1.02.61
+A2.02.30 A1.01.61 A1.02.61 A1.02.62
+A2.02.31 A1.02.61 A1.02.62
+A2.03.00 A1.03.12 A1.03.13 A1.03.14 A1.04.14
+A2.03.01 A1.02.14 A1.03.15 A1.03.16 A1.03.20 A1.03.21
+A2.03.02 A1.03.16 A1.03.17 A1.03.21 A1.03.22
+A2.03.03 A1.03.17 A1.03.18 A1.03.22 A1.03.23
+A2.03.04 A1.03.18 A1.03.19 A1.03.23 A1.03.24
+A2.03.05 A1.03.19 A1.03.24 A1.04.19 A1.04.24
+A2.03.06 A1.02.25 A1.03.20 A1.03.21 A1.03.25
+A2.03.07 A1.03.21 A1.03.22 A1.03.25 A1.03.26
+A2.03.08 A1.03.22 A1.03.23 A1.03.26 A1.03.27
+A2.03.09 A1.03.23 A1.03.24 A1.03.27 A1.03.28
+A2.03.10 A1.03.24 A1.03.28 A1.04.24 A1.04.28
+A2.03.11 A1.03.29 A1.03.30 A1.03.33 A1.03.34
+A2.03.12 A1.03.30 A1.03.31 A1.03.34 A1.03.35
+A2.03.13 A1.03.31 A1.03.32 A1.03.35 A1.03.36
+A2.03.14 A1.03.32 A1.03.36 A1.04.32 A1.04.36
+A2.03.15 A1.02.38 A1.03.33 A1.03.34 A1.03.37
+A2.03.16 A1.03.34 A1.03.35 A1.03.37 A1.03.38
+A2.03.17 A1.03.35 A1.03.36 A1.03.38 A1.03.39
+A2.03.18 A1.03.36 A1.03.39 A1.04.36 A1.04.39
+A2.03.19 A1.03.40 A1.03.41 A1.03.43 A1.03.44
+A2.03.20 A1.03.41 A1.03.42 A1.03.44 A1.03.45
+A2.03.21 A1.03.42 A1.03.45 A1.04.42 A1.04.45
+A2.03.22 A1.02.48 A1.03.43 A1.03.44 A1.03.46
+A2.03.23 A1.03.44 A1.03.45 A1.03.46 A1.03.47
+A2.03.24 A1.03.45 A1.03.47 A1.04.45 A1.04.47
+A2.03.25 A1.03.48 A1.03.49 A1.03.50 A1.03.51 A1.03.52
+A2.03.26 A1.03.49 A1.03.52 A1.03.53 A1.04.49 A1.04.53
+A2.03.27 A1.03.56 A1.03.57 A1.03.59 A1.03.60
+A2.03.28 A1.03.57 A1.03.60 A1.04.57 A1.04.60
+A2.03.29 A1.03.59 A1.03.60 A1.03.61 A1.03.62
+A2.03.30 A1.03.60 A1.03.62 A1.04.60 A1.04.62
+A2.04.00 A1.04.12 A1.04.13 A1.04.14
+A2.04.01 A1.04.15 A1.04.20 A1.05.13 A1.05.17
+A2.04.02 A1.04.15 A1.04.16 A1.04.20 A1.04.21
+A2.04.03 A1.04.16 A1.04.17 A1.04.21 A1.04.22
+A2.04.04 A1.04.17 A1.04.18 A1.04.22 A1.04.23
+A2.04.05 A1.04.18 A1.04.19 A1.04.23 A1.04.24
+A2.04.06 A1.04.20 A1.05.17 A1.05.21 A1.05.24
+A2.04.07 A1.04.20 A1.04.21 A1.04.25 A1.05.24
+A2.04.08 A1.04.21 A1.04.22 A1.04.25 A1.04.26
+A2.04.09 A1.04.22 A1.04.23 A1.04.26 A1.04.27
+A2.04.10 A1.04.23 A1.04.24 A1.04.27 A1.04.28
+A2.04.11 A1.04.29 A1.04.33 A1.05.28 A1.05.31
+A2.04.12 A1.04.29 A1.04.30 A1.04.33 A1.04.34
+A2.04.13 A1.04.30 A1.04.31 A1.04.34 A1.04.35
+A2.04.14 A1.04.31 A1.04.32 A1.04.35 A1.04.36
+A2.04.15 A1.04.33 A1.05.31 A1.05.34 A1.05.37
+A2.04.16 A1.04.33 A1.04.34 A1.04.37 A1.05.37
+A2.04.17 A1.04.34 A1.04.35 A1.04.37 A1.04.38
+A2.04.18 A1.04.35 A1.04.36 A1.04.38 A1.04.39
+A2.04.19 A1.04.40 A1.04.43 A1.05.40 A1.05.43
+A2.04.20 A1.04.40 A1.04.41 A1.04.43 A1.04.44
+A2.04.21 A1.04.41 A1.04.42 A1.04.44 A1.04.45
+A2.04.22 A1.04.43 A1.05.43 A1.05.45 A1.05.47
+A2.04.23 A1.04.43 A1.04.44 A1.04.46 A1.05.47
+A2.04.24 A1.04.44 A1.04.45 A1.04.46 A1.04.47
+A2.04.25 A1.04.48 A1.04.50 A1.04.51 A1.05.49 A1.05.51
+A2.04.26 A1.04.48 A1.04.49 A1.04.51 A1.04.52 A1.04.53
+A2.04.27 A1.04.55 A1.04.56 A1.04.58 A1.04.59
+A2.04.28 A1.04.56 A1.04.57 A1.04.59 A1.04.60
+A2.04.29 A1.04.58 A1.04.59 A1.04.61 A1.05.59
+A2.04.30 A1.04.59 A1.04.60 A1.04.61 A1.04.62
+A2.05.00 A1.05.14
+A2.05.01 A1.05.11 A1.06.17
+A2.05.02 A1.05.09 A1.05.13 A1.05.14 A1.05.17
+A2.05.03 A1.05.12 A1.05.15
+A2.05.04 A1.05.13 A1.05.17
+A2.05.05 A1.05.15
+A2.05.06 A1.05.11 A1.05.16 A1.05.20 A1.06.17
+A2.05.07 A1.05.10 A1.05.14 A1.05.15 A1.05.18
+A2.05.08 A1.05.14 A1.05.17 A1.05.18 A1.05.21
+A2.05.09 A1.05.16 A1.05.19 A1.05.20 A1.05.23
+A2.05.10 A1.05.19 A1.05.22 A1.05.23 A1.05.26
+A2.05.11 A1.05.20 A1.05.23 A1.05.27 A1.06.25
+A2.05.12 A1.05.22 A1.05.25 A1.05.26 A1.05.29
+A2.05.13 A1.05.25 A1.05.28 A1.05.29 A1.05.31
+A2.05.14 A1.05.23 A1.05.26 A1.05.27 A1.05.30
+A2.05.15 A1.05.26 A1.05.29 A1.05.30 A1.05.32
+A2.05.16 A1.05.33 A1.05.35 A1.06.32 A1.06.35
+A2.05.17 A1.05.29 A1.05.31 A1.05.32 A1.05.34
+A2.05.18 A1.05.33 A1.05.35 A1.05.36 A1.05.39
+A2.05.19 A1.05.36 A1.05.38 A1.05.39 A1.05.41
+A2.05.20 A1.05.35 A1.05.39 A1.05.42 A1.06.40
+A2.05.21 A1.05.38 A1.05.40 A1.05.41 A1.05.43
+A2.05.22 A1.05.39 A1.05.41 A1.05.42 A1.05.44
+A2.05.23 A1.05.41 A1.05.43 A1.05.44 A1.05.45
+A2.05.24 A1.05.46 A1.06.44 A1.06.46 A1.06.48
+A2.05.25 A1.05.46 A1.05.48 A1.05.50 A1.06.48
+A2.05.26 A1.05.48 A1.05.49 A1.05.50 A1.05.51
+A2.05.27 A1.05.50 A1.05.51 A1.05.52 A1.05.53 A1.05.54 A1.05.56 A1.06.51
+A2.05.28 A1.04.54 A1.04.55 A1.04.58 A1.05.51 A1.05.53 A1.05.55 A1.05.56 A1.05.57 A1.05.59
+A2.05.29 A1.05.58 A1.06.55 A1.06.57
+A2.05.30 A1.05.58 A1.05.60 A1.05.61 A1.06.61
+A2.05.31 A1.05.60 A1.05.61 A1.05.62
+A2.06.00 A1.06.12 A1.06.17
+A2.06.01 A1.06.15
+A2.06.02 A1.06.14 A1.06.16
+A2.06.03 A1.06.17
+A2.06.04 A1.06.11 A1.06.13 A1.06.16 A1.06.19
+A2.06.05 A1.06.12 A1.06.15 A1.06.17 A1.06.20
+A2.06.06 A1.06.14 A1.06.16 A1.06.18 A1.06.22
+A2.06.07 A1.06.16 A1.06.19 A1.06.22 A1.06.24
+A2.06.08 A1.05.20 A1.06.17 A1.06.20 A1.06.25
+A2.06.09 A1.06.18 A1.06.22 A1.06.23 A1.06.27
+A2.06.10 A1.06.21 A1.06.26 A1.07.24 A1.07.29
+A2.06.11 A1.06.22 A1.06.24 A1.06.27 A1.06.29
+A2.06.12 A1.06.23 A1.06.27 A1.06.28 A1.06.30
+A2.06.13 A1.06.26 A1.06.31 A1.06.33 A1.07.29
+A2.06.14 A1.06.28 A1.06.30 A1.06.32 A1.06.35
+A2.06.15 A1.06.27 A1.06.29 A1.06.30 A1.06.34
+A2.06.16 A1.06.31 A1.06.33 A1.06.36 A1.06.38
+A2.06.17 A1.06.30 A1.06.34 A1.06.35 A1.06.37
+A2.06.18 A1.06.36 A1.06.38 A1.06.39 A1.06.41
+A2.06.19 A1.05.35 A1.06.35 A1.06.37 A1.06.40
+A2.06.20 A1.06.38 A1.06.41 A1.07.38 A1.07.42
+A2.06.21 A1.06.39 A1.06.41 A1.06.42 A1.06.43
+A2.06.22 A1.06.41 A1.06.43 A1.06.45 A1.07.42
+A2.06.23 A1.06.42 A1.06.43 A1.06.44 A1.06.46
+A2.06.24 A1.06.43 A1.06.45 A1.06.46 A1.06.47
+A2.06.25 A1.06.46 A1.06.47 A1.06.48 A1.06.49
+A2.06.26 A1.06.50 A1.07.49 A1.07.50 A1.07.52
+A2.06.27 A1.05.50 A1.06.48 A1.06.49 A1.06.51
+A2.06.28 A1.06.50 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.56 A1.06.58 A1.07.52
+A2.06.29 A1.06.56 A1.06.59 A1.06.61
+A2.06.30 A1.06.58 A1.06.60 A1.06.62
+A2.06.31 A1.05.61 A1.06.61 A1.06.62 A1.07.60
+A2.07.00 A1.07.15 A1.07.16
+A2.07.01 A1.07.17
+A2.07.02 A1.07.16 A1.07.17
+A2.07.03 A1.06.13 A1.07.13 A1.07.18 A1.07.19
+A2.07.04 A1.07.13 A1.07.14 A1.07.19 A1.07.20
+A2.07.05 A1.07.15 A1.07.16 A1.07.21 A1.07.22
+A2.07.06 A1.07.16 A1.07.17 A1.07.22 A1.07.23
+A2.07.07 A1.06.21 A1.07.18 A1.07.19 A1.07.24
+A2.07.08 A1.07.19 A1.07.20 A1.07.24 A1.07.25
+A2.07.09 A1.07.21 A1.07.22 A1.07.26 A1.07.27
+A2.07.10 A1.07.22 A1.07.23 A1.07.27 A1.07.28
+A2.07.11 A1.07.24 A1.07.25 A1.07.29 A1.07.30
+A2.07.12 A1.07.26 A1.07.27 A1.07.31 A1.07.32
+A2.07.13 A1.07.27 A1.07.28 A1.07.32 A1.07.33
+A2.07.14 A1.06.33 A1.07.29 A1.07.30 A1.07.34
+A2.07.15 A1.07.31 A1.07.32 A1.07.35 A1.07.36
+A2.07.16 A1.07.32 A1.07.33 A1.07.36 A1.07.37
+A2.07.17 A1.06.33 A1.06.38 A1.07.34 A1.07.38
+A2.07.18 A1.07.35 A1.07.36 A1.07.39 A1.07.40
+A2.07.19 A1.07.36 A1.07.37 A1.07.40 A1.07.41
+A2.07.20 A1.07.39 A1.07.40 A1.07.43 A1.07.44
+A2.07.21 A1.07.40 A1.07.41 A1.07.44 A1.07.45
+A2.07.22 A1.07.43 A1.07.44 A1.07.46 A1.07.47
+A2.07.23 A1.07.44 A1.07.45 A1.07.47 A1.07.48
+A2.07.24 A1.07.46 A1.07.47 A1.07.49 A1.07.50
+A2.07.25 A1.07.47 A1.07.48 A1.07.50 A1.07.51
+A2.07.26 A1.07.50 A1.07.51 A1.07.52 A1.07.53
+A2.07.27 A1.07.52 A1.07.53 A1.07.54 A1.07.55 A1.07.56 A1.07.57 A1.07.58 A1.07.59
+A2.07.28 A1.07.57 A1.07.58 A1.07.60 A1.07.61
+A2.07.29 A1.07.58 A1.07.59 A1.07.61 A1.07.62
+A2.08.00 A1.08.16
+A2.08.01 A1.08.15 A1.08.16
+A2.08.02 A1.08.14 A1.08.15
+A2.08.03 A1.08.07 A1.08.12 A1.08.17 A1.08.18 A1.09.13
+A2.08.04 A1.08.12 A1.08.13 A1.08.18 A1.08.19
+A2.08.05 A1.08.14 A1.08.15 A1.08.20 A1.08.21
+A2.08.06 A1.08.15 A1.08.16 A1.08.21 A1.08.22
+A2.08.07 A1.08.17 A1.08.18 A1.08.23 A1.09.21
+A2.08.08 A1.08.18 A1.08.19 A1.08.23 A1.08.24
+A2.08.09 A1.08.20 A1.08.21 A1.08.25 A1.08.26
+A2.08.10 A1.08.21 A1.08.22 A1.08.26 A1.08.27
+A2.08.11 A1.08.23 A1.08.24 A1.08.28 A1.08.29
+A2.08.12 A1.08.25 A1.08.26 A1.08.30 A1.08.31
+A2.08.13 A1.08.26 A1.08.27 A1.08.31 A1.08.32
+A2.08.14 A1.08.28 A1.08.29 A1.08.33 A1.09.33
+A2.08.15 A1.08.30 A1.08.31 A1.08.34 A1.08.35
+A2.08.16 A1.08.31 A1.08.32 A1.08.35 A1.08.36
+A2.08.17 A1.08.33 A1.08.37 A1.09.33 A1.09.38
+A2.08.18 A1.08.34 A1.08.35 A1.08.38 A1.08.39
+A2.08.19 A1.08.35 A1.08.36 A1.08.39 A1.08.40
+A2.08.20 A1.08.38 A1.08.39 A1.08.42 A1.08.43
+A2.08.21 A1.08.39 A1.08.40 A1.08.43 A1.08.44
+A2.08.22 A1.08.42 A1.08.43 A1.08.45 A1.08.46
+A2.08.23 A1.08.43 A1.08.44 A1.08.46 A1.08.47
+A2.08.24 A1.08.45 A1.08.46 A1.08.48 A1.08.49
+A2.08.25 A1.08.46 A1.08.47 A1.08.49 A1.08.50
+A2.08.26 A1.08.49 A1.08.50 A1.08.51 A1.08.52
+A2.08.27 A1.08.51 A1.08.52 A1.08.54 A1.08.55 A1.08.56 A1.08.57 A1.08.58 A1.08.59
+A2.08.28 A1.08.57 A1.08.58 A1.08.60 A1.08.61
+A2.08.29 A1.08.58 A1.08.59 A1.08.61 A1.08.62
+A2.09.00 A1.09.12 A1.09.17 A1.10.12
+A2.09.01 A1.09.12 A1.09.15
+A2.09.02 A1.09.11 A1.09.16
+A2.09.03 A1.09.15
+A2.09.04 A1.09.11 A1.09.13 A1.09.16 A1.09.19
+A2.09.05 A1.09.12 A1.09.15 A1.09.17 A1.09.20
+A2.09.06 A1.09.14 A1.09.16 A1.09.18 A1.09.22
+A2.09.07 A1.09.16 A1.09.19 A1.09.22 A1.09.24
+A2.09.08 A1.09.17 A1.09.20 A1.09.25 A1.10.21
+A2.09.09 A1.09.18 A1.09.22 A1.09.23 A1.09.27
+A2.09.10 A1.08.23 A1.08.28 A1.09.21 A1.09.26
+A2.09.11 A1.09.22 A1.09.24 A1.09.27 A1.09.29
+A2.09.12 A1.09.23 A1.09.27 A1.09.28 A1.09.30
+A2.09.13 A1.08.28 A1.09.26 A1.09.31 A1.09.33
+A2.09.14 A1.09.28 A1.09.30 A1.09.32 A1.09.35
+A2.09.15 A1.09.27 A1.09.29 A1.09.30 A1.09.34
+A2.09.16 A1.09.31 A1.09.33 A1.09.36 A1.09.38
+A2.09.17 A1.09.30 A1.09.34 A1.09.35 A1.09.37
+A2.09.18 A1.09.36 A1.09.38 A1.09.39 A1.09.41
+A2.09.19 A1.09.35 A1.09.37 A1.09.40 A1.10.36
+A2.09.20 A1.08.37 A1.08.41 A1.09.38 A1.09.41
+A2.09.21 A1.09.39 A1.09.41 A1.09.42 A1.09.43
+A2.09.22 A1.08.41 A1.09.41 A1.09.43 A1.09.45
+A2.09.23 A1.09.42 A1.09.43 A1.09.44 A1.09.46
+A2.09.24 A1.09.43 A1.09.45 A1.09.46 A1.09.47
+A2.09.25 A1.09.46 A1.09.47 A1.09.48 A1.09.49
+A2.09.26 A1.08.48 A1.08.49 A1.08.51 A1.09.50
+A2.09.27 A1.09.48 A1.09.49 A1.09.51 A1.10.51
+A2.09.28 A1.08.51 A1.08.53 A1.09.50 A1.09.52 A1.09.53 A1.09.54 A1.09.55 A1.09.57
+A2.09.29 A1.09.54 A1.09.55 A1.09.56 A1.09.58
+A2.09.30 A1.09.55 A1.09.57 A1.09.58 A1.09.59
+A2.09.31 A1.08.60 A1.09.58 A1.09.59 A1.09.60 A1.09.61 A1.09.62
+A2.10.00 A1.10.12
+A2.10.01 A1.10.15
+A2.10.02 A1.10.10 A1.10.14 A1.10.15 A1.10.18
+A2.10.03 A1.10.13 A1.10.16
+A2.10.04 A1.10.14 A1.10.18
+A2.10.05 A1.10.16
+A2.10.06 A1.09.17 A1.10.12 A1.10.17 A1.10.21
+A2.10.07 A1.10.11 A1.10.15 A1.10.16 A1.10.19
+A2.10.08 A1.10.15 A1.10.18 A1.10.19 A1.10.22
+A2.10.09 A1.10.17 A1.10.20 A1.10.21 A1.10.24
+A2.10.10 A1.10.20 A1.10.23 A1.10.24 A1.10.27
+A2.10.11 A1.09.25 A1.10.21 A1.10.24 A1.10.28
+A2.10.12 A1.10.23 A1.10.26 A1.10.27 A1.10.30
+A2.10.13 A1.10.26 A1.10.29 A1.10.30 A1.10.32
+A2.10.14 A1.10.24 A1.10.27 A1.10.28 A1.10.31
+A2.10.15 A1.10.27 A1.10.30 A1.10.31 A1.10.33
+A2.10.16 A1.09.32 A1.09.35 A1.10.34 A1.10.36
+A2.10.17 A1.10.30 A1.10.32 A1.10.33 A1.10.35
+A2.10.18 A1.10.34 A1.10.36 A1.10.37 A1.10.40
+A2.10.19 A1.10.37 A1.10.39 A1.10.40 A1.10.42
+A2.10.20 A1.09.40 A1.10.36 A1.10.40 A1.10.43
+A2.10.21 A1.10.39 A1.10.41 A1.10.42 A1.10.44
+A2.10.22 A1.10.40 A1.10.42 A1.10.43 A1.10.45
+A2.10.23 A1.10.42 A1.10.44 A1.10.45 A1.10.46
+A2.10.24 A1.09.44 A1.09.46 A1.09.48 A1.10.47
+A2.10.25 A1.09.48 A1.10.47 A1.10.49 A1.10.51
+A2.10.26 A1.10.49 A1.10.50 A1.10.51 A1.10.52
+A2.10.27 A1.09.51 A1.10.51 A1.10.52 A1.10.53 A1.10.54 A1.10.55 A1.10.57
+A2.10.28 A1.10.52 A1.10.54 A1.10.56 A1.10.57 A1.10.58 A1.10.60 A1.11.54 A1.11.55 A1.11.58
+A2.10.29 A1.09.56 A1.09.58 A1.09.60 A1.10.59
+A2.10.30 A1.09.60 A1.09.61 A1.10.59 A1.10.61
+A2.10.31 A1.10.61 A1.10.62
+A2.11.00 A1.11.12 A1.11.13 A1.11.14
+A2.11.01 A1.10.14 A1.10.18 A1.11.15 A1.11.20
+A2.11.02 A1.11.15 A1.11.16 A1.11.20 A1.11.21
+A2.11.03 A1.11.16 A1.11.17 A1.11.21 A1.11.22
+A2.11.04 A1.11.17 A1.11.18 A1.11.22 A1.11.23
+A2.11.05 A1.11.18 A1.11.19 A1.11.23 A1.11.24
+A2.11.06 A1.10.18 A1.10.22 A1.10.25 A1.11.20
+A2.11.07 A1.10.25 A1.11.20 A1.11.21 A1.11.25
+A2.11.08 A1.11.21 A1.11.22 A1.11.25 A1.11.26
+A2.11.09 A1.11.22 A1.11.23 A1.11.26 A1.11.27
+A2.11.10 A1.11.23 A1.11.24 A1.11.27 A1.11.28
+A2.11.11 A1.10.29 A1.10.32 A1.11.29 A1.11.33
+A2.11.12 A1.11.29 A1.11.30 A1.11.33 A1.11.34
+A2.11.13 A1.11.30 A1.11.31 A1.11.34 A1.11.35
+A2.11.14 A1.11.31 A1.11.32 A1.11.35 A1.11.36
+A2.11.15 A1.10.32 A1.10.35 A1.10.38 A1.11.33
+A2.11.16 A1.10.38 A1.11.33 A1.11.34 A1.11.37
+A2.11.17 A1.11.34 A1.11.35 A1.11.37 A1.11.38
+A2.11.18 A1.11.35 A1.11.36 A1.11.38 A1.11.39
+A2.11.19 A1.10.41 A1.10.44 A1.11.40 A1.11.43
+A2.11.20 A1.11.40 A1.11.41 A1.11.43 A1.11.44
+A2.11.21 A1.11.41 A1.11.42 A1.11.44 A1.11.45
+A2.11.22 A1.10.44 A1.10.46 A1.10.48 A1.11.43
+A2.11.23 A1.10.48 A1.11.43 A1.11.44 A1.11.46
+A2.11.24 A1.11.44 A1.11.45 A1.11.46 A1.11.47
+A2.11.25 A1.10.50 A1.10.52 A1.11.48 A1.11.50 A1.11.51
+A2.11.26 A1.11.48 A1.11.49 A1.11.51 A1.11.52 A1.11.53
+A2.11.27 A1.11.55 A1.11.56 A1.11.58 A1.11.59
+A2.11.28 A1.11.56 A1.11.57 A1.11.59 A1.11.60
+A2.11.29 A1.10.60 A1.11.58 A1.11.59 A1.11.61
+A2.11.30 A1.11.59 A1.11.60 A1.11.61 A1.11.62
+A2.12.00 A1.11.14 A1.12.12 A1.12.13 A1.12.14
+A2.12.01 A1.12.15 A1.12.16 A1.12.20 A1.12.21 A1.13.13
+A2.12.02 A1.12.16 A1.12.17 A1.12.21 A1.12.22
+A2.12.03 A1.12.17 A1.12.18 A1.12.22 A1.12.23
+A2.12.04 A1.12.18 A1.12.19 A1.12.23 A1.12.24
+A2.12.05 A1.11.19 A1.11.24 A1.12.19 A1.12.24
+A2.12.06 A1.12.20 A1.12.21 A1.12.25 A1.13.24
+A2.12.07 A1.12.21 A1.12.22 A1.12.25 A1.12.26
+A2.12.08 A1.12.22 A1.12.23 A1.12.26 A1.12.27
+A2.12.09 A1.12.23 A1.12.24 A1.12.27 A1.12.28
+A2.12.10 A1.11.24 A1.11.28 A1.12.24 A1.12.28
+A2.12.11 A1.12.29 A1.12.30 A1.12.33 A1.12.34
+A2.12.12 A1.12.30 A1.12.31 A1.12.34 A1.12.35
+A2.12.13 A1.12.31 A1.12.32 A1.12.35 A1.12.36
+A2.12.14 A1.11.32 A1.11.36 A1.12.32 A1.12.36
+A2.12.15 A1.12.33 A1.12.34 A1.12.37 A1.13.37
+A2.12.16 A1.12.34 A1.12.35 A1.12.37 A1.12.38
+A2.12.17 A1.12.35 A1.12.36 A1.12.38 A1.12.39
+A2.12.18 A1.11.36 A1.11.39 A1.12.36 A1.12.39
+A2.12.19 A1.12.40 A1.12.41 A1.12.43 A1.12.44
+A2.12.20 A1.12.41 A1.12.42 A1.12.44 A1.12.45
+A2.12.21 A1.11.42 A1.11.45 A1.12.42 A1.12.45
+A2.12.22 A1.12.43 A1.12.44 A1.12.46 A1.13.47
+A2.12.23 A1.12.44 A1.12.45 A1.12.46 A1.12.47
+A2.12.24 A1.11.45 A1.11.47 A1.12.45 A1.12.47
+A2.12.25 A1.12.48 A1.12.49 A1.12.50 A1.12.51 A1.12.52
+A2.12.26 A1.11.49 A1.11.53 A1.12.49 A1.12.52 A1.12.53
+A2.12.27 A1.12.56 A1.12.57 A1.12.59 A1.12.60
+A2.12.28 A1.11.57 A1.11.60 A1.12.57 A1.12.60
+A2.12.29 A1.12.59 A1.12.60 A1.12.61 A1.12.62
+A2.12.30 A1.11.60 A1.11.62 A1.12.60 A1.12.62
+A2.13.00 A1.13.14
+A2.13.01 A1.13.12 A1.14.17
+A2.13.02 A1.13.13 A1.13.17
+A2.13.03 A1.13.11 A1.13.15
+A2.13.04 A1.12.15 A1.12.20 A1.13.13 A1.13.17
+A2.13.05 A1.13.15
+A2.13.06 A1.13.16 A1.13.20
+A2.13.07 A1.13.14 A1.13.15 A1.13.18
+A2.13.08 A1.12.20 A1.13.17 A1.13.21 A1.13.24
+A2.13.09 A1.13.19 A1.13.23
+A2.13.10 A1.13.22 A1.13.26
+A2.13.11 A1.13.23 A1.13.27
+A2.13.12 A1.13.25 A1.13.28 A1.13.29 A1.13.31
+A2.13.13 A1.12.29 A1.12.33 A1.13.28 A1.13.31
+A2.13.14 A1.13.26 A1.13.30
+A2.13.15 A1.13.29 A1.13.31 A1.13.32 A1.13.34
+A2.13.16 A1.13.33 A1.13.35
+A2.13.17 A1.12.33 A1.13.31 A1.13.34 A1.13.37
+A2.13.18 A1.13.36 A1.13.38 A1.13.39 A1.13.41
+A2.13.19 A1.13.38 A1.13.40 A1.13.41 A1.13.43
+A2.13.20 A1.13.39 A1.13.41 A1.13.42 A1.13.44
+A2.13.21 A1.12.40 A1.12.43 A1.13.40 A1.13.43
+A2.13.22 A1.13.41 A1.13.43 A1.13.44 A1.13.45
+A2.13.23 A1.12.43 A1.13.43 A1.13.45 A1.13.47
+A2.13.24 A1.13.46 A1.13.48 A1.13.50 A1.14.48
+A2.13.25 A1.13.48 A1.13.49 A1.13.50 A1.13.51
+A2.13.26 A1.12.48 A1.12.50 A1.13.49 A1.13.51
+A2.13.27 A1.12.54 A1.13.51 A1.13.52 A1.13.53 A1.13.54 A1.13.55 A1.13.56 A1.13.57
+A2.13.28 A1.12.54 A1.12.55 A1.12.56 A1.12.58 A1.12.59 A1.12.61 A1.13.55 A1.13.57 A1.13.59
+A2.13.29 A1.13.58 A1.14.57
+A2.13.30 A1.13.58 A1.13.60 A1.13.61 A1.13.62
+A2.13.31 A1.13.60 A1.13.62
+A2.14.00 A1.14.17
+A2.14.01 A1.14.15
+A2.14.02 A1.14.14 A1.14.16
+A2.14.03 A1.14.17
+A2.14.04 A1.14.16 A1.14.19
+A2.14.05 A1.14.12 A1.14.15 A1.14.17 A1.14.20
+A2.14.06 A1.14.18 A1.14.22
+A2.14.07 A1.14.22 A1.14.24
+A2.14.08 A1.13.20 A1.14.25
+A2.14.09 A1.14.23 A1.14.27
+A2.14.10 A1.14.26 A1.15.29
+A2.14.11 A1.14.27 A1.14.29
+A2.14.12 A1.14.28 A1.14.30
+A2.14.13 A1.14.31 A1.14.33
+A2.14.14 A1.14.32 A1.14.35
+A2.14.15 A1.14.30 A1.14.34
+A2.14.16 A1.14.36 A1.14.38
+A2.14.17 A1.14.35 A1.14.37
+A2.14.18 A1.14.39 A1.14.41
+A2.14.19 A1.13.35 A1.14.40
+A2.14.20 A1.14.41 A1.15.42
+A2.14.21 A1.14.42 A1.14.43
+A2.14.22 A1.14.43 A1.14.45
+A2.14.23 A1.13.46 A1.14.44 A1.14.46 A1.14.48
+A2.14.24 A1.14.46 A1.14.47 A1.14.48 A1.14.49
+A2.14.25 A1.13.50 A1.14.48 A1.14.49 A1.14.51
+A2.14.26 A1.14.50 A1.14.52 A1.14.53 A1.14.54 A1.15.52
+A2.14.27 A1.13.50 A1.13.51 A1.13.52 A1.13.54 A1.14.51
+A2.14.28 A1.14.52 A1.14.53 A1.14.54 A1.14.55 A1.14.56 A1.14.57 A1.14.58 A1.14.59 A1.14.60
+A2.14.29 A1.14.59 A1.14.61
+A2.14.30 A1.14.60 A1.14.62
+A2.14.31 A1.13.61 A1.14.61 A1.14.62
+A2.15.00 A1.15.15 A1.15.16
+A2.15.01 A1.15.17
+A2.15.02 A1.15.16 A1.15.17
+A2.15.03 A1.14.13 A1.15.18 A1.15.19
+A2.15.04 A1.15.19 A1.15.20
+A2.15.05 A1.15.21 A1.15.22
+A2.15.06 A1.15.22 A1.15.23
+A2.15.07 A1.14.21 A1.15.24
+A2.15.08 A1.15.24 A1.15.25
+A2.15.09 A1.15.26 A1.15.27
+A2.15.10 A1.15.27 A1.15.28
+A2.15.11 A1.15.29 A1.15.30
+A2.15.12 A1.15.31 A1.15.32
+A2.15.13 A1.15.32 A1.15.33
+A2.15.14 A1.14.33 A1.15.34
+A2.15.15 A1.15.35 A1.15.36
+A2.15.16 A1.15.36 A1.15.37
+A2.15.17 A1.14.38 A1.15.38
+A2.15.18 A1.15.39 A1.15.40
+A2.15.19 A1.15.40 A1.15.41
+A2.15.20 A1.15.43 A1.15.44
+A2.15.21 A1.15.44 A1.15.45
+A2.15.22 A1.15.46 A1.15.47
+A2.15.23 A1.15.47 A1.15.48
+A2.15.24 A1.14.50 A1.15.49 A1.15.50 A1.15.52
+A2.15.25 A1.15.50 A1.15.51 A1.15.52 A1.15.53
+A2.15.26 A1.15.52 A1.15.53 A1.15.54 A1.15.55 A1.15.56
+A2.15.27 A1.15.54 A1.15.55 A1.15.56 A1.15.57 A1.15.58 A1.15.59 A1.15.60 A1.15.61 A1.15.62
+A2.15.28 A1.14.62 A1.15.60 A1.15.61
+A2.15.29 A1.15.61 A1.15.62
+A3.00.00 A2.00.06
+A3.00.01 A2.00.07 A2.00.08 A2.00.11 A2.01.10
+A3.00.02 A2.00.05 A2.00.09 A2.00.12
+A3.00.03 A2.00.10 A2.00.13
+A3.00.04 A2.00.11 A2.00.14
+A3.00.05 A2.00.12 A2.00.15
+A3.00.06 A2.00.13 A2.00.16
+A3.00.07 A2.00.14 A2.00.17 A2.01.20
+A3.00.08 A2.00.15 A2.00.18 A2.00.20
+A3.00.09 A2.00.16 A2.00.19 A2.00.21
+A3.00.10 A2.00.20 A2.00.22
+A3.00.11 A2.00.21 A2.00.23
+A3.00.12 A2.00.22 A2.00.24 A2.01.26
+A3.00.13 A2.00.23 A2.00.25 A2.00.26
+A3.00.14 A2.00.26 A2.00.27
+A3.00.15 A2.00.27 A2.00.28 A2.00.29
+A3.01.00 A2.00.07 A2.01.10
+A3.01.01 A2.01.05 A2.01.06 A2.01.08 A2.01.09 A2.01.11
+A3.01.02 A2.00.07 A2.01.04 A2.01.06 A2.01.07 A2.01.09 A2.01.10 A2.01.11
+A3.01.03 A2.01.05 A2.01.08 A2.01.09 A2.01.12 A2.01.14 A2.02.11
+A3.01.04 A2.01.10 A2.01.13
+A3.01.05 A2.01.09 A2.01.11 A2.01.12 A2.01.14 A2.01.15 A2.01.17
+A3.01.06 A2.01.13 A2.01.16 A2.01.18
+A3.01.07 A2.01.14 A2.01.17 A2.01.19 A2.02.16
+A3.01.08 A2.01.18 A2.01.21
+A3.01.09 A2.01.20 A2.01.22
+A3.01.10 A2.01.21 A2.01.23 A2.02.24
+A3.01.11 A2.01.22 A2.01.24 A2.01.25
+A3.01.12 A2.01.25 A2.01.27
+A3.01.13 A2.01.26 A2.01.28
+A3.01.14 A2.01.28 A2.01.29 A2.01.30 A2.01.31
+A3.01.15 A2.00.27 A2.00.28 A2.01.28 A2.01.30 A2.01.31
+A3.02.00 A2.01.05 A2.01.08 A2.02.06 A2.02.09 A2.02.10 A2.02.11
+A3.02.01 A2.02.07 A2.02.08 A2.02.10 A2.02.12 A2.02.13 A2.03.06
+A3.02.02 A2.02.07 A2.02.09 A2.02.10 A2.02.12 A2.02.13
+A3.02.03 A2.02.09 A2.02.10 A2.02.11 A2.02.14
+A3.02.04 A2.02.10 A2.02.12 A2.02.13 A2.02.14 A2.02.15 A2.02.17
+A3.02.05 A2.01.14 A2.02.11 A2.02.14 A2.02.16
+A3.02.06 A2.02.13 A2.02.17 A2.03.11 A2.03.15
+A3.02.07 A2.02.14 A2.02.15 A2.02.16 A2.02.17 A2.02.18 A2.02.19
+A3.02.08 A2.02.17 A2.02.19 A2.02.21 A2.03.15
+A3.02.09 A2.01.19 A2.02.16 A2.02.18 A2.02.19 A2.02.20 A2.02.22
+A3.02.10 A2.02.19 A2.02.21 A2.02.22 A2.02.23
+A3.02.11 A2.02.24 A2.02.25
+A3.02.12 A2.02.25 A2.02.26 A2.03.25
+A3.02.13 A2.01.27 A2.02.27 A2.02.28
+A3.02.14 A2.01.29 A2.01.31 A2.02.29 A2.02.30
+A3.02.15 A2.02.29 A2.02.30 A2.02.31
+A3.03.00 A2.03.04 A2.03.05
+A3.03.01 A2.03.05
+A3.03.02 A2.03.01 A2.03.02 A2.03.03 A2.03.06 A2.03.07 A2.03.08
+A3.03.03 A2.03.03 A2.03.04 A2.03.07 A2.03.08 A2.03.09
+A3.03.04 A2.03.04 A2.03.05 A2.03.09 A2.03.10
+A3.03.05 A2.02.13 A2.03.06 A2.03.07 A2.03.11
+A3.03.06 A2.03.07 A2.03.08 A2.03.09 A2.03.11 A2.03.12 A2.03.13
+A3.03.07 A2.03.09 A2.03.10 A2.03.13 A2.03.14
+A3.03.08 A2.03.11 A2.03.12 A2.03.13 A2.03.15 A2.03.16 A2.03.17
+A3.03.09 A2.03.13 A2.03.14 A2.03.17 A2.03.18
+A3.03.10 A2.02.21 A2.03.15 A2.03.16 A2.03.17 A2.03.19 A2.03.20
+A3.03.11 A2.03.17 A2.03.18 A2.03.20 A2.03.21
+A3.03.12 A2.02.21 A2.02.23 A2.03.19 A2.03.20 A2.03.22 A2.03.23
+A3.03.13 A2.03.20 A2.03.21 A2.03.23 A2.03.24
+A3.03.14 A2.03.25 A2.03.26
+A3.03.15 A2.02.28 A2.03.27 A2.03.28 A2.03.29 A2.03.30
+A3.04.00 A2.04.04 A2.04.05
+A3.04.01 A2.03.05 A2.04.05
+A3.04.02 A2.04.02 A2.04.03 A2.04.06 A2.04.07 A2.04.08
+A3.04.03 A2.04.03 A2.04.04 A2.04.08 A2.04.09
+A3.04.04 A2.03.05 A2.03.10 A2.04.04 A2.04.05 A2.04.09 A2.04.10
+A3.04.05 A2.04.06 A2.04.07 A2.04.08 A2.04.11 A2.04.12 A2.05.13
+A3.04.06 A2.04.08 A2.04.09 A2.04.12 A2.04.13
+A3.04.07 A2.03.10 A2.03.14 A2.04.09 A2.04.10 A2.04.13 A2.04.14
+A3.04.08 A2.04.12 A2.04.13 A2.04.16 A2.04.17
+A3.04.09 A2.03.14 A2.03.18 A2.04.13 A2.04.14 A2.04.17 A2.04.18
+A3.04.10 A2.04.16 A2.04.17 A2.04.19 A2.04.20
+A3.04.11 A2.03.18 A2.03.21 A2.04.17 A2.04.18 A2.04.20 A2.04.21
+A3.04.12 A2.04.19 A2.04.20 A2.04.22 A2.04.23
+A3.04.13 A2.03.21 A2.03.24 A2.04.20 A2.04.21 A2.04.23 A2.04.24
+A3.04.14 A2.03.26 A2.04.25 A2.04.26
+A3.04.15 A2.03.28 A2.03.30 A2.04.27 A2.04.28 A2.04.29 A2.04.30 A2.05.28
+A3.05.00 A2.05.06 A2.05.09 A2.05.11 A2.06.08
+A3.05.01 A2.05.07 A2.05.08 A2.05.09 A2.05.10 A2.05.12
+A3.05.02 A2.04.06 A2.05.08 A2.05.12 A2.05.13
+A3.05.03 A2.05.09 A2.05.10 A2.05.11 A2.05.12 A2.05.14 A2.05.15
+A3.05.04 A2.05.12 A2.05.13 A2.05.15 A2.05.17
+A3.05.05 A2.05.11 A2.05.14 A2.05.15 A2.05.16 A2.05.18 A2.06.14
+A3.05.06 A2.04.11 A2.04.12 A2.04.15 A2.04.16 A2.05.13 A2.05.17
+A3.05.07 A2.05.15 A2.05.17 A2.05.18 A2.05.19
+A3.05.08 A2.04.15 A2.04.16 A2.04.19 A2.05.17 A2.05.19 A2.05.21
+A3.05.09 A2.05.18 A2.05.19 A2.05.20 A2.05.22
+A3.05.10 A2.04.19 A2.04.22 A2.05.19 A2.05.21 A2.05.22 A2.05.23
+A3.05.11 A2.05.24 A2.05.25 A2.05.26
+A3.05.12 A2.04.25 A2.05.26
+A3.05.13 A2.05.27 A2.05.28
+A3.05.14 A2.05.30 A2.05.31
+A3.06.00 A2.06.05 A2.06.06 A2.06.07 A2.06.08 A2.06.09 A2.06.11 A2.06.12 A2.06.15
+A3.06.01 A2.06.07 A2.06.10 A2.06.11 A2.06.15
+A3.06.02 A2.05.11 A2.06.08 A2.06.12 A2.06.14
+A3.06.03 A2.06.10 A2.06.13 A2.06.16
+A3.06.04 A2.06.12 A2.06.14 A2.06.15 A2.06.17
+A3.06.05 A2.06.16 A2.06.18
+A3.06.06 A2.05.16 A2.05.18 A2.05.20 A2.06.14 A2.06.17 A2.06.19
+A3.06.07 A2.06.18 A2.06.21 A2.06.23
+A3.06.08 A2.06.20 A2.06.22 A2.06.24
+A3.06.09 A2.05.24 A2.06.23
+A3.06.10 A2.06.24 A2.06.25
+A3.06.11 A2.05.27 A2.06.25 A2.06.27
+A3.06.12 A2.05.29 A2.06.26 A2.06.28 A2.06.29 A2.06.30
+A3.06.13 A2.05.29 A2.05.30 A2.06.29 A2.06.31
+A3.06.14 A2.06.29 A2.06.30 A2.06.31 A2.07.28
+A3.06.15 A2.05.30 A2.06.29 A2.06.30 A2.06.31
+A3.07.00 A2.07.06 A2.07.10
+A3.07.01 A2.06.10 A2.07.07 A2.07.08 A2.07.11
+A3.07.02 A2.07.08 A2.07.09 A2.07.12
+A3.07.03 A2.07.10 A2.07.13
+A3.07.04 A2.07.11 A2.07.14 A2.07.17
+A3.07.05 A2.07.12 A2.07.15 A2.07.18
+A3.07.06 A2.07.13 A2.07.16 A2.07.19
+A3.07.07 A2.06.20 A2.07.17
+A3.07.08 A2.07.18 A2.07.20
+A3.07.09 A2.07.19 A2.07.21
+A3.07.10 A2.07.20 A2.07.22 A2.07.24
+A3.07.11 A2.07.21 A2.07.23 A2.07.25
+A3.07.12 A2.06.26 A2.07.24
+A3.07.13 A2.07.25 A2.07.26
+A3.07.14 A2.07.26 A2.07.27 A2.07.28 A2.07.29
+A3.07.15 A2.07.28 A2.07.29
+A3.08.00 A2.08.06 A2.08.10
+A3.08.01 A2.08.07 A2.08.08 A2.08.11 A2.09.10
+A3.08.02 A2.08.09 A2.08.12
+A3.08.03 A2.08.10 A2.08.13
+A3.08.04 A2.08.11 A2.08.14 A2.08.17
+A3.08.05 A2.08.12 A2.08.15 A2.08.18
+A3.08.06 A2.08.13 A2.08.16 A2.08.19
+A3.08.07 A2.08.17 A2.09.20
+A3.08.08 A2.08.18 A2.08.20
+A3.08.09 A2.08.19 A2.08.21
+A3.08.10 A2.08.20 A2.08.22 A2.08.24
+A3.08.11 A2.08.21 A2.08.23 A2.08.25
+A3.08.12 A2.08.24 A2.09.26
+A3.08.13 A2.08.25 A2.08.26
+A3.08.14 A2.08.26 A2.08.27 A2.08.28 A2.08.29
+A3.08.15 A2.08.28 A2.08.29
+A3.09.00 A2.08.07 A2.09.10
+A3.09.01 A2.09.05 A2.09.08 A2.09.09 A2.09.11 A2.09.12 A2.09.15
+A3.09.02 A2.09.06 A2.09.07 A2.09.09 A2.09.10 A2.09.11 A2.09.15
+A3.09.03 A2.09.08 A2.09.12 A2.09.14 A2.10.11
+A3.09.04 A2.09.10 A2.09.13 A2.09.16
+A3.09.05 A2.09.12 A2.09.14 A2.09.15 A2.09.17
+A3.09.06 A2.09.16 A2.09.18
+A3.09.07 A2.09.14 A2.09.17 A2.09.19 A2.10.16 A2.10.18 A2.10.20
+A3.09.08 A2.09.18 A2.09.21 A2.09.23
+A3.09.09 A2.09.20 A2.09.22 A2.09.24
+A3.09.10 A2.09.23 A2.10.24
+A3.09.11 A2.09.24 A2.09.25
+A3.09.12 A2.09.25 A2.09.27 A2.10.27
+A3.09.13 A2.09.26 A2.09.28 A2.09.29 A2.09.30
+A3.09.14 A2.09.29 A2.09.30 A2.09.31 A2.10.29
+A3.09.15 A2.08.28 A2.09.30 A2.09.31
+A3.10.00 A2.09.08 A2.10.06 A2.10.09 A2.10.10 A2.10.11
+A3.10.01 A2.10.07 A2.10.08 A2.10.12 A2.10.13 A2.11.06
+A3.10.02 A2.10.07 A2.10.08 A2.10.10 A2.10.12 A2.10.13
+A3.10.03 A2.10.09 A2.10.10 A2.10.11 A2.10.12 A2.10.14 A2.10.15
+A3.10.04 A2.10.12 A2.10.13 A2.10.15 A2.10.17
+A3.10.05 A2.09.14 A2.10.11 A2.10.14 A2.10.15 A2.10.16 A2.10.18
+A3.10.06 A2.10.13 A2.10.17 A2.11.11 A2.11.12 A2.11.15 A2.11.16
+A3.10.07 A2.10.15 A2.10.17 A2.10.18 A2.10.19
+A3.10.08 A2.10.17 A2.10.19 A2.10.21 A2.11.15 A2.11.16 A2.11.19
+A3.10.09 A2.10.18 A2.10.19 A2.10.20 A2.10.22
+A3.10.10 A2.10.19 A2.10.21 A2.10.22 A2.10.23 A2.11.19 A2.11.22
+A3.10.11 A2.10.24 A2.10.25 A2.10.26
+A3.10.12 A2.10.26 A2.11.25
+A3.10.13 A2.10.27 A2.10.28
+A3.10.14 A2.09.29 A2.09.31 A2.10.29 A2.10.30
+A3.10.15 A2.10.29 A2.10.30 A2.10.31
+A3.11.00 A2.11.04 A2.11.05
+A3.11.01 A2.11.05 A2.12.05
+A3.11.02 A2.11.02 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A3.11.03 A2.11.03 A2.11.04 A2.11.08 A2.11.09
+A3.11.04 A2.11.04 A2.11.05 A2.11.09 A2.11.10 A2.12.05 A2.12.10
+A3.11.05 A2.10.13 A2.11.06 A2.11.07 A2.11.08 A2.11.11 A2.11.12
+A3.11.06 A2.11.08 A2.11.09 A2.11.12 A2.11.13
+A3.11.07 A2.11.09 A2.11.10 A2.11.13 A2.11.14 A2.12.10 A2.12.14
+A3.11.08 A2.11.12 A2.11.13 A2.11.16 A2.11.17
+A3.11.09 A2.11.13 A2.11.14 A2.11.17 A2.11.18 A2.12.14 A2.12.18
+A3.11.10 A2.11.16 A2.11.17 A2.11.19 A2.11.20
+A3.11.11 A2.11.17 A2.11.18 A2.11.20 A2.11.21 A2.12.18 A2.12.21
+A3.11.12 A2.11.19 A2.11.20 A2.11.22 A2.11.23
+A3.11.13 A2.11.20 A2.11.21 A2.11.23 A2.11.24 A2.12.21 A2.12.24
+A3.11.14 A2.11.25 A2.11.26 A2.12.26
+A3.11.15 A2.10.28 A2.11.27 A2.11.28 A2.11.29 A2.11.30 A2.12.28 A2.12.30
+A3.12.00 A2.12.04 A2.12.05
+A3.12.01 A2.12.05
+A3.12.02 A2.12.02 A2.12.03 A2.12.06 A2.12.07 A2.12.08
+A3.12.03 A2.12.03 A2.12.04 A2.12.07 A2.12.08 A2.12.09
+A3.12.04 A2.12.04 A2.12.05 A2.12.09 A2.12.10
+A3.12.05 A2.12.06 A2.12.07 A2.12.11 A2.13.13
+A3.12.06 A2.12.07 A2.12.08 A2.12.09 A2.12.11 A2.12.12 A2.12.13
+A3.12.07 A2.12.09 A2.12.10 A2.12.13 A2.12.14
+A3.12.08 A2.12.11 A2.12.12 A2.12.13 A2.12.15 A2.12.16 A2.12.17
+A3.12.09 A2.12.13 A2.12.14 A2.12.17 A2.12.18
+A3.12.10 A2.12.15 A2.12.16 A2.12.17 A2.12.19 A2.12.20 A2.13.21
+A3.12.11 A2.12.17 A2.12.18 A2.12.20 A2.12.21
+A3.12.12 A2.12.19 A2.12.20 A2.12.22 A2.12.23 A2.13.21 A2.13.23
+A3.12.13 A2.12.20 A2.12.21 A2.12.23 A2.12.24
+A3.12.14 A2.12.25 A2.12.26
+A3.12.15 A2.12.27 A2.12.28 A2.12.29 A2.12.30 A2.13.28
+A3.13.00 A2.13.06 A2.13.09 A2.13.11 A2.14.05 A2.14.08
+A3.13.01 A2.13.07 A2.13.08 A2.13.09 A2.13.10 A2.13.12
+A3.13.02 A2.12.06 A2.13.08 A2.13.10 A2.13.12 A2.13.13
+A3.13.03 A2.13.09 A2.13.10 A2.13.11 A2.13.14
+A3.13.04 A2.13.10 A2.13.12 A2.13.13 A2.13.14 A2.13.15 A2.13.17
+A3.13.05 A2.13.11 A2.13.14 A2.13.16 A2.14.14
+A3.13.06 A2.12.11 A2.12.15 A2.13.13 A2.13.17
+A3.13.07 A2.13.14 A2.13.15 A2.13.16 A2.13.17 A2.13.18 A2.13.19
+A3.13.08 A2.12.15 A2.13.17 A2.13.19 A2.13.21
+A3.13.09 A2.13.16 A2.13.18 A2.13.19 A2.13.20 A2.13.22 A2.14.19
+A3.13.10 A2.13.19 A2.13.21 A2.13.22 A2.13.23
+A3.13.11 A2.13.24 A2.13.25
+A3.13.12 A2.12.25 A2.13.25 A2.13.26
+A3.13.13 A2.13.27 A2.13.28 A2.14.27
+A3.13.14 A2.13.29 A2.13.30 A2.13.31
+A3.14.00 A2.14.05 A2.14.06 A2.14.07 A2.14.08 A2.14.09 A2.14.11
+A3.14.01 A2.14.04 A2.14.07 A2.14.10 A2.14.11 A2.15.07
+A3.14.02 A2.13.11 A2.14.05 A2.14.08 A2.14.09 A2.14.12 A2.14.14
+A3.14.03 A2.14.10 A2.14.13
+A3.14.04 A2.14.09 A2.14.11 A2.14.12 A2.14.14 A2.14.15 A2.14.17
+A3.14.05 A2.14.13 A2.14.16 A2.14.18
+A3.14.06 A2.13.16 A2.14.14 A2.14.17 A2.14.19
+A3.14.07 A2.14.18 A2.14.21
+A3.14.08 A2.14.20 A2.14.22
+A3.14.09 A2.13.24 A2.14.21 A2.14.23
+A3.14.10 A2.14.22 A2.14.24 A2.14.25
+A3.14.11 A2.14.25 A2.14.27
+A3.14.12 A2.14.26 A2.14.28
+A3.14.13 A2.13.29 A2.14.28 A2.14.29
+A3.14.14 A2.14.28 A2.14.29 A2.14.30 A2.14.31 A2.15.27 A2.15.28
+A3.14.15 A2.13.30 A2.14.29 A2.14.30 A2.14.31
+A3.15.00 A2.15.06
+A3.15.01 A2.14.10 A2.15.07 A2.15.08 A2.15.11
+A3.15.02 A2.15.05 A2.15.08 A2.15.09 A2.15.12
+A3.15.03 A2.15.10 A2.15.13
+A3.15.04 A2.15.11 A2.15.14
+A3.15.05 A2.15.12 A2.15.15
+A3.15.06 A2.15.13 A2.15.16
+A3.15.07 A2.14.20 A2.15.14 A2.15.17
+A3.15.08 A2.15.15 A2.15.18 A2.15.20
+A3.15.09 A2.15.16 A2.15.19 A2.15.21
+A3.15.10 A2.15.20 A2.15.22
+A3.15.11 A2.15.21 A2.15.23
+A3.15.12 A2.14.26 A2.15.22 A2.15.24
+A3.15.13 A2.15.23 A2.15.25 A2.15.26
+A3.15.14 A2.15.26 A2.15.27
+A3.15.15 A2.15.27 A2.15.28 A2.15.29
+C2.00.00 C1.00.14 C1.00.15
+C2.00.01 C1.00.15 C1.00.16
+C2.00.02 C1.00.16
+C2.00.03 C1.00.17 C1.00.18 C1.01.13
+C2.00.04 C1.00.18 C1.00.19
+C2.00.05 C1.00.20 C1.00.21
+C2.00.06 C1.00.21 C1.00.22
+C2.00.07 C1.00.23 C1.01.21
+C2.00.08 C1.00.23 C1.00.24
+C2.00.09 C1.00.25 C1.00.26
+C2.00.10 C1.00.26 C1.00.27
+C2.00.11 C1.00.28 C1.00.29
+C2.00.12 C1.00.30 C1.00.31
+C2.00.13 C1.00.31 C1.00.32
+C2.00.14 C1.00.33 C1.01.33
+C2.00.15 C1.00.34 C1.00.35
+C2.00.16 C1.00.35 C1.00.36
+C2.00.17 C1.00.37 C1.01.38
+C2.00.18 C1.00.38 C1.00.39
+C2.00.19 C1.00.39 C1.00.40
+C2.00.20 C1.00.42 C1.00.43
+C2.00.21 C1.00.43 C1.00.44
+C2.00.22 C1.00.45 C1.00.46
+C2.00.23 C1.00.46 C1.00.47
+C2.00.24 C1.00.48 C1.00.49 C1.00.51 C1.01.50
+C2.00.25 C1.00.49 C1.00.50 C1.00.51 C1.00.52
+C2.00.26 C1.00.51 C1.00.52 C1.00.54 C1.00.55 C1.00.56
+C2.00.27 C1.00.54 C1.00.55 C1.00.56 C1.00.57 C1.00.58 C1.00.59 C1.00.60 C1.00.61 C1.00.62
+C2.00.28 C1.00.60 C1.00.61 C1.01.62
+C2.00.29 C1.00.61 C1.00.62
+C2.01.00 C1.01.17 C1.02.13
+C2.01.01 C1.01.12 C1.01.15
+C2.01.02 C1.01.16
+C2.01.03 C1.01.15
+C2.01.04 C1.01.16 C1.01.19
+C2.01.05 C1.01.17 C1.01.20
+C2.01.06 C1.01.14 C1.01.18 C1.01.22
+C2.01.07 C1.01.22 C1.01.24
+C2.01.08 C1.01.25 C1.02.21
+C2.01.09 C1.01.23 C1.01.27
+C2.01.10 C1.00.28 C1.01.26
+C2.01.11 C1.01.27 C1.01.29
+C2.01.12 C1.01.28 C1.01.30
+C2.01.13 C1.01.31 C1.01.33
+C2.01.14 C1.01.32 C1.01.35
+C2.01.15 C1.01.30 C1.01.34
+C2.01.16 C1.01.36 C1.01.38
+C2.01.17 C1.01.35 C1.01.37
+C2.01.18 C1.01.39 C1.01.41
+C2.01.19 C1.01.40 C1.02.37
+C2.01.20 C1.00.41 C1.01.41
+C2.01.21 C1.01.42 C1.01.43
+C2.01.22 C1.01.43 C1.01.45
+C2.01.23 C1.01.44 C1.01.46 C1.01.48 C1.02.47
+C2.01.24 C1.01.46 C1.01.47 C1.01.48 C1.01.49
+C2.01.25 C1.01.48 C1.01.49 C1.01.51 C1.02.51
+C2.01.26 C1.00.51 C1.00.53 C1.01.50 C1.01.52 C1.01.53
+C2.01.27 C1.01.51 C1.02.51 C1.02.52 C1.02.53 C1.02.55
+C2.01.28 C1.00.53 C1.01.52 C1.01.53 C1.01.54 C1.01.55 C1.01.56 C1.01.57 C1.01.58 C1.01.59
+C2.01.29 C1.01.56 C1.01.58 C1.01.60 C1.02.59
+C2.01.30 C1.01.58 C1.01.59 C1.01.60 C1.01.61 C1.01.62
+C2.01.31 C1.01.60 C1.01.61 C1.01.62
+C2.02.00 C1.02.13 C1.02.17
+C2.02.01 C1.02.15
+C2.02.02 C1.02.14 C1.02.18
+C2.02.03 C1.02.12 C1.02.16
+C2.02.04 C1.02.14 C1.02.18 C1.03.20
+C2.02.05 C1.02.16
+C2.02.06 C1.01.17 C1.02.13 C1.02.17 C1.02.21
+C2.02.07 C1.02.15 C1.02.16 C1.02.19
+C2.02.08 C1.02.18 C1.02.22 C1.02.25 C1.03.20
+C2.02.09 C1.02.20 C1.02.24
+C2.02.10 C1.02.23 C1.02.27
+C2.02.11 C1.02.24 C1.02.28
+C2.02.12 C1.02.26 C1.02.29 C1.02.30 C1.02.32
+C2.02.13 C1.02.29 C1.02.32 C1.03.29 C1.03.33
+C2.02.14 C1.02.27 C1.02.31
+C2.02.15 C1.02.30 C1.02.32 C1.02.33 C1.02.35
+C2.02.16 C1.02.34 C1.02.37
+C2.02.17 C1.02.32 C1.02.35 C1.02.38 C1.03.33
+C2.02.18 C1.02.36 C1.02.39 C1.02.40 C1.02.42
+C2.02.19 C1.02.39 C1.02.41 C1.02.42 C1.02.44
+C2.02.20 C1.02.40 C1.02.42 C1.02.43 C1.02.45
+C2.02.21 C1.02.41 C1.02.44 C1.03.40 C1.03.43
+C2.02.22 C1.02.42 C1.02.44 C1.02.45 C1.02.46
+C2.02.23 C1.02.44 C1.02.46 C1.02.48 C1.03.43
+C2.02.24 C1.01.48 C1.02.47 C1.02.49 C1.02.51
+C2.02.25 C1.02.49 C1.02.50 C1.02.51 C1.02.52
+C2.02.26 C1.02.50 C1.02.52 C1.03.48 C1.03.50
+C2.02.27 C1.02.52 C1.02.53 C1.02.54 C1.02.55 C1.02.56 C1.02.57 C1.02.58 C1.03.54
+C2.02.28 C1.02.56 C1.02.58 C1.02.60 C1.03.54 C1.03.55 C1.03.56 C1.03.58 C1.03.59 C1.03.61
+C2.02.29 C1.01.60 C1.01.61 C1.02.59 C1.02.61
+C2.02.30 C1.01.61 C1.02.61 C1.02.62
+C2.02.31 C1.02.61 C1.02.62
+C2.03.00 C1.03.12 C1.03.13 C1.03.14 C1.04.14
+C2.03.01 C1.02.14 C1.03.15 C1.03.16 C1.03.20 C1.03.21
+C2.03.02 C1.03.16 C1.03.17 C1.03.21 C1.03.22
+C2.03.03 C1.03.17 C1.03.18 C1.03.22 C1.03.23
+C2.03.04 C1.03.18 C1.03.19 C1.03.23 C1.03.24
+C2.03.05 C1.03.19 C1.03.24 C1.04.19 C1.04.24
+C2.03.06 C1.02.25 C1.03.20 C1.03.21 C1.03.25
+C2.03.07 C1.03.21 C1.03.22 C1.03.25 C1.03.26
+C2.03.08 C1.03.22 C1.03.23 C1.03.26 C1.03.27
+C2.03.09 C1.03.23 C1.03.24 C1.03.27 C1.03.28
+C2.03.10 C1.03.24 C1.03.28 C1.04.24 C1.04.28
+C2.03.11 C1.03.29 C1.03.30 C1.03.33 C1.03.34
+C2.03.12 C1.03.30 C1.03.31 C1.03.34 C1.03.35
+C2.03.13 C1.03.31 C1.03.32 C1.03.35 C1.03.36
+C2.03.14 C1.03.32 C1.03.36 C1.04.32 C1.04.36
+C2.03.15 C1.02.38 C1.03.33 C1.03.34 C1.03.37
+C2.03.16 C1.03.34 C1.03.35 C1.03.37 C1.03.38
+C2.03.17 C1.03.35 C1.03.36 C1.03.38 C1.03.39
+C2.03.18 C1.03.36 C1.03.39 C1.04.36 C1.04.39
+C2.03.19 C1.03.40 C1.03.41 C1.03.43 C1.03.44
+C2.03.20 C1.03.41 C1.03.42 C1.03.44 C1.03.45
+C2.03.21 C1.03.42 C1.03.45 C1.04.42 C1.04.45
+C2.03.22 C1.02.48 C1.03.43 C1.03.44 C1.03.46
+C2.03.23 C1.03.44 C1.03.45 C1.03.46 C1.03.47
+C2.03.24 C1.03.45 C1.03.47 C1.04.45 C1.04.47
+C2.03.25 C1.03.48 C1.03.49 C1.03.50 C1.03.51 C1.03.52
+C2.03.26 C1.03.49 C1.03.52 C1.03.53 C1.04.49 C1.04.53
+C2.03.27 C1.03.56 C1.03.57 C1.03.59 C1.03.60
+C2.03.28 C1.03.57 C1.03.60 C1.04.57 C1.04.60
+C2.03.29 C1.03.59 C1.03.60 C1.03.61 C1.03.62
+C2.03.30 C1.03.60 C1.03.62 C1.04.60 C1.04.62
+C2.04.00 C1.04.12 C1.04.13 C1.04.14
+C2.04.01 C1.04.15 C1.04.20 C1.05.13 C1.05.17
+C2.04.02 C1.04.15 C1.04.16 C1.04.20 C1.04.21
+C2.04.03 C1.04.16 C1.04.17 C1.04.21 C1.04.22
+C2.04.04 C1.04.17 C1.04.18 C1.04.22 C1.04.23
+C2.04.05 C1.04.18 C1.04.19 C1.04.23 C1.04.24
+C2.04.06 C1.04.20 C1.05.17 C1.05.21 C1.05.24
+C2.04.07 C1.04.20 C1.04.21 C1.04.25 C1.05.24
+C2.04.08 C1.04.21 C1.04.22 C1.04.25 C1.04.26
+C2.04.09 C1.04.22 C1.04.23 C1.04.26 C1.04.27
+C2.04.10 C1.04.23 C1.04.24 C1.04.27 C1.04.28
+C2.04.11 C1.04.29 C1.04.33 C1.05.28 C1.05.31
+C2.04.12 C1.04.29 C1.04.30 C1.04.33 C1.04.34
+C2.04.13 C1.04.30 C1.04.31 C1.04.34 C1.04.35
+C2.04.14 C1.04.31 C1.04.32 C1.04.35 C1.04.36
+C2.04.15 C1.04.33 C1.05.31 C1.05.34 C1.05.37
+C2.04.16 C1.04.33 C1.04.34 C1.04.37 C1.05.37
+C2.04.17 C1.04.34 C1.04.35 C1.04.37 C1.04.38
+C2.04.18 C1.04.35 C1.04.36 C1.04.38 C1.04.39
+C2.04.19 C1.04.40 C1.04.43 C1.05.40 C1.05.43
+C2.04.20 C1.04.40 C1.04.41 C1.04.43 C1.04.44
+C2.04.21 C1.04.41 C1.04.42 C1.04.44 C1.04.45
+C2.04.22 C1.04.43 C1.05.43 C1.05.45 C1.05.47
+C2.04.23 C1.04.43 C1.04.44 C1.04.46 C1.05.47
+C2.04.24 C1.04.44 C1.04.45 C1.04.46 C1.04.47
+C2.04.25 C1.04.48 C1.04.50 C1.04.51 C1.05.49 C1.05.51
+C2.04.26 C1.04.48 C1.04.49 C1.04.51 C1.04.52 C1.04.53
+C2.04.27 C1.04.55 C1.04.56 C1.04.58 C1.04.59
+C2.04.28 C1.04.56 C1.04.57 C1.04.59 C1.04.60
+C2.04.29 C1.04.58 C1.04.59 C1.04.61 C1.05.59
+C2.04.30 C1.04.59 C1.04.60 C1.04.61 C1.04.62
+C2.05.00 C1.05.14
+C2.05.01 C1.05.11 C1.06.17
+C2.05.02 C1.05.09 C1.05.13 C1.05.14 C1.05.17
+C2.05.03 C1.05.12 C1.05.15
+C2.05.04 C1.05.13 C1.05.17
+C2.05.05 C1.05.15
+C2.05.06 C1.05.11 C1.05.16 C1.05.20 C1.06.17
+C2.05.07 C1.05.10 C1.05.14 C1.05.15 C1.05.18
+C2.05.08 C1.05.14 C1.05.17 C1.05.18 C1.05.21
+C2.05.09 C1.05.16 C1.05.19 C1.05.20 C1.05.23
+C2.05.10 C1.05.19 C1.05.22 C1.05.23 C1.05.26
+C2.05.11 C1.05.20 C1.05.23 C1.05.27 C1.06.25
+C2.05.12 C1.05.22 C1.05.25 C1.05.26 C1.05.29
+C2.05.13 C1.05.25 C1.05.28 C1.05.29 C1.05.31
+C2.05.14 C1.05.23 C1.05.26 C1.05.27 C1.05.30
+C2.05.15 C1.05.26 C1.05.29 C1.05.30 C1.05.32
+C2.05.16 C1.05.33 C1.05.35 C1.06.32 C1.06.35
+C2.05.17 C1.05.29 C1.05.31 C1.05.32 C1.05.34
+C2.05.18 C1.05.33 C1.05.35 C1.05.36 C1.05.39
+C2.05.19 C1.05.36 C1.05.38 C1.05.39 C1.05.41
+C2.05.20 C1.05.35 C1.05.39 C1.05.42 C1.06.40
+C2.05.21 C1.05.38 C1.05.40 C1.05.41 C1.05.43
+C2.05.22 C1.05.39 C1.05.41 C1.05.42 C1.05.44
+C2.05.23 C1.05.41 C1.05.43 C1.05.44 C1.05.45
+C2.05.24 C1.05.46 C1.06.44 C1.06.46 C1.06.48
+C2.05.25 C1.05.46 C1.05.48 C1.05.50 C1.06.48
+C2.05.26 C1.05.48 C1.05.49 C1.05.50 C1.05.51
+C2.05.27 C1.05.50 C1.05.51 C1.05.52 C1.05.53 C1.05.54 C1.05.56 C1.06.51
+C2.05.28 C1.04.54 C1.04.55 C1.04.58 C1.05.51 C1.05.53 C1.05.55 C1.05.56 C1.05.57 C1.05.59
+C2.05.29 C1.05.58 C1.06.55 C1.06.57
+C2.05.30 C1.05.58 C1.05.60 C1.05.61 C1.06.61
+C2.05.31 C1.05.60 C1.05.61 C1.05.62
+C2.06.00 C1.06.12 C1.06.17
+C2.06.01 C1.06.15
+C2.06.02 C1.06.14 C1.06.16
+C2.06.03 C1.06.17
+C2.06.04 C1.06.11 C1.06.13 C1.06.16 C1.06.19
+C2.06.05 C1.06.12 C1.06.15 C1.06.17 C1.06.20
+C2.06.06 C1.06.14 C1.06.16 C1.06.18 C1.06.22
+C2.06.07 C1.06.16 C1.06.19 C1.06.22 C1.06.24
+C2.06.08 C1.05.20 C1.06.17 C1.06.20 C1.06.25
+C2.06.09 C1.06.18 C1.06.22 C1.06.23 C1.06.27
+C2.06.10 C1.06.21 C1.06.26 C1.07.24 C1.07.29
+C2.06.11 C1.06.22 C1.06.24 C1.06.27 C1.06.29
+C2.06.12 C1.06.23 C1.06.27 C1.06.28 C1.06.30
+C2.06.13 C1.06.26 C1.06.31 C1.06.33 C1.07.29
+C2.06.14 C1.06.28 C1.06.30 C1.06.32 C1.06.35
+C2.06.15 C1.06.27 C1.06.29 C1.06.30 C1.06.34
+C2.06.16 C1.06.31 C1.06.33 C1.06.36 C1.06.38
+C2.06.17 C1.06.30 C1.06.34 C1.06.35 C1.06.37
+C2.06.18 C1.06.36 C1.06.38 C1.06.39 C1.06.41
+C2.06.19 C1.05.35 C1.06.35 C1.06.37 C1.06.40
+C2.06.20 C1.06.38 C1.06.41 C1.07.38 C1.07.42
+C2.06.21 C1.06.39 C1.06.41 C1.06.42 C1.06.43
+C2.06.22 C1.06.41 C1.06.43 C1.06.45 C1.07.42
+C2.06.23 C1.06.42 C1.06.43 C1.06.44 C1.06.46
+C2.06.24 C1.06.43 C1.06.45 C1.06.46 C1.06.47
+C2.06.25 C1.06.46 C1.06.47 C1.06.48 C1.06.49
+C2.06.26 C1.06.50 C1.07.49 C1.07.50 C1.07.52
+C2.06.27 C1.05.50 C1.06.48 C1.06.49 C1.06.51
+C2.06.28 C1.06.50 C1.06.52 C1.06.53 C1.06.54 C1.06.55 C1.06.56 C1.06.58 C1.07.52
+C2.06.29 C1.06.56 C1.06.59 C1.06.61
+C2.06.30 C1.06.58 C1.06.60 C1.06.62
+C2.06.31 C1.05.61 C1.06.61 C1.06.62 C1.07.60
+C2.07.00 C1.07.15 C1.07.16
+C2.07.01 C1.07.17
+C2.07.02 C1.07.16 C1.07.17
+C2.07.03 C1.06.13 C1.07.13 C1.07.18 C1.07.19
+C2.07.04 C1.07.13 C1.07.14 C1.07.19 C1.07.20
+C2.07.05 C1.07.15 C1.07.16 C1.07.21 C1.07.22
+C2.07.06 C1.07.16 C1.07.17 C1.07.22 C1.07.23
+C2.07.07 C1.06.21 C1.07.18 C1.07.19 C1.07.24
+C2.07.08 C1.07.19 C1.07.20 C1.07.24 C1.07.25
+C2.07.09 C1.07.21 C1.07.22 C1.07.26 C1.07.27
+C2.07.10 C1.07.22 C1.07.23 C1.07.27 C1.07.28
+C2.07.11 C1.07.24 C1.07.25 C1.07.29 C1.07.30
+C2.07.12 C1.07.26 C1.07.27 C1.07.31 C1.07.32
+C2.07.13 C1.07.27 C1.07.28 C1.07.32 C1.07.33
+C2.07.14 C1.06.33 C1.07.29 C1.07.30 C1.07.34
+C2.07.15 C1.07.31 C1.07.32 C1.07.35 C1.07.36
+C2.07.16 C1.07.32 C1.07.33 C1.07.36 C1.07.37
+C2.07.17 C1.06.33 C1.06.38 C1.07.34 C1.07.38
+C2.07.18 C1.07.35 C1.07.36 C1.07.39 C1.07.40
+C2.07.19 C1.07.36 C1.07.37 C1.07.40 C1.07.41
+C2.07.20 C1.07.39 C1.07.40 C1.07.43 C1.07.44
+C2.07.21 C1.07.40 C1.07.41 C1.07.44 C1.07.45
+C2.07.22 C1.07.43 C1.07.44 C1.07.46 C1.07.47
+C2.07.23 C1.07.44 C1.07.45 C1.07.47 C1.07.48
+C2.07.24 C1.07.46 C1.07.47 C1.07.49 C1.07.50
+C2.07.25 C1.07.47 C1.07.48 C1.07.50 C1.07.51
+C2.07.26 C1.07.50 C1.07.51 C1.07.52 C1.07.53
+C2.07.27 C1.07.52 C1.07.53 C1.07.54 C1.07.55 C1.07.56 C1.07.57 C1.07.58 C1.07.59
+C2.07.28 C1.07.57 C1.07.58 C1.07.60 C1.07.61
+C2.07.29 C1.07.58 C1.07.59 C1.07.61 C1.07.62
+C2.08.00 C1.08.16
+C2.08.01 C1.08.15 C1.08.16
+C2.08.02 C1.08.14 C1.08.15
+C2.08.03 C1.08.07 C1.08.12 C1.08.17 C1.08.18 C1.09.13
+C2.08.04 C1.08.12 C1.08.13 C1.08.18 C1.08.19
+C2.08.05 C1.08.14 C1.08.15 C1.08.20 C1.08.21
+C2.08.06 C1.08.15 C1.08.16 C1.08.21 C1.08.22
+C2.08.07 C1.08.17 C1.08.18 C1.08.23 C1.09.21
+C2.08.08 C1.08.18 C1.08.19 C1.08.23 C1.08.24
+C2.08.09 C1.08.20 C1.08.21 C1.08.25 C1.08.26
+C2.08.10 C1.08.21 C1.08.22 C1.08.26 C1.08.27
+C2.08.11 C1.08.23 C1.08.24 C1.08.28 C1.08.29
+C2.08.12 C1.08.25 C1.08.26 C1.08.30 C1.08.31
+C2.08.13 C1.08.26 C1.08.27 C1.08.31 C1.08.32
+C2.08.14 C1.08.28 C1.08.29 C1.08.33 C1.09.33
+C2.08.15 C1.08.30 C1.08.31 C1.08.34 C1.08.35
+C2.08.16 C1.08.31 C1.08.32 C1.08.35 C1.08.36
+C2.08.17 C1.08.33 C1.08.37 C1.09.33 C1.09.38
+C2.08.18 C1.08.34 C1.08.35 C1.08.38 C1.08.39
+C2.08.19 C1.08.35 C1.08.36 C1.08.39 C1.08.40
+C2.08.20 C1.08.38 C1.08.39 C1.08.42 C1.08.43
+C2.08.21 C1.08.39 C1.08.40 C1.08.43 C1.08.44
+C2.08.22 C1.08.42 C1.08.43 C1.08.45 C1.08.46
+C2.08.23 C1.08.43 C1.08.44 C1.08.46 C1.08.47
+C2.08.24 C1.08.45 C1.08.46 C1.08.48 C1.08.49
+C2.08.25 C1.08.46 C1.08.47 C1.08.49 C1.08.50
+C2.08.26 C1.08.49 C1.08.50 C1.08.51 C1.08.52
+C2.08.27 C1.08.51 C1.08.52 C1.08.54 C1.08.55 C1.08.56 C1.08.57 C1.08.58 C1.08.59
+C2.08.28 C1.08.57 C1.08.58 C1.08.60 C1.08.61
+C2.08.29 C1.08.58 C1.08.59 C1.08.61 C1.08.62
+C2.09.00 C1.09.12 C1.09.17 C1.10.12
+C2.09.01 C1.09.12 C1.09.15
+C2.09.02 C1.09.11 C1.09.16
+C2.09.03 C1.09.15
+C2.09.04 C1.09.11 C1.09.13 C1.09.16 C1.09.19
+C2.09.05 C1.09.12 C1.09.15 C1.09.17 C1.09.20
+C2.09.06 C1.09.14 C1.09.16 C1.09.18 C1.09.22
+C2.09.07 C1.09.16 C1.09.19 C1.09.22 C1.09.24
+C2.09.08 C1.09.17 C1.09.20 C1.09.25 C1.10.21
+C2.09.09 C1.09.18 C1.09.22 C1.09.23 C1.09.27
+C2.09.10 C1.08.23 C1.08.28 C1.09.21 C1.09.26
+C2.09.11 C1.09.22 C1.09.24 C1.09.27 C1.09.29
+C2.09.12 C1.09.23 C1.09.27 C1.09.28 C1.09.30
+C2.09.13 C1.08.28 C1.09.26 C1.09.31 C1.09.33
+C2.09.14 C1.09.28 C1.09.30 C1.09.32 C1.09.35
+C2.09.15 C1.09.27 C1.09.29 C1.09.30 C1.09.34
+C2.09.16 C1.09.31 C1.09.33 C1.09.36 C1.09.38
+C2.09.17 C1.09.30 C1.09.34 C1.09.35 C1.09.37
+C2.09.18 C1.09.36 C1.09.38 C1.09.39 C1.09.41
+C2.09.19 C1.09.35 C1.09.37 C1.09.40 C1.10.36
+C2.09.20 C1.08.37 C1.08.41 C1.09.38 C1.09.41
+C2.09.21 C1.09.39 C1.09.41 C1.09.42 C1.09.43
+C2.09.22 C1.08.41 C1.09.41 C1.09.43 C1.09.45
+C2.09.23 C1.09.42 C1.09.43 C1.09.44 C1.09.46
+C2.09.24 C1.09.43 C1.09.45 C1.09.46 C1.09.47
+C2.09.25 C1.09.46 C1.09.47 C1.09.48 C1.09.49
+C2.09.26 C1.08.48 C1.08.49 C1.08.51 C1.09.50
+C2.09.27 C1.09.48 C1.09.49 C1.09.51 C1.10.51
+C2.09.28 C1.08.51 C1.08.53 C1.09.50 C1.09.52 C1.09.53 C1.09.54 C1.09.55 C1.09.57
+C2.09.29 C1.09.54 C1.09.55 C1.09.56 C1.09.58
+C2.09.30 C1.09.55 C1.09.57 C1.09.58 C1.09.59
+C2.09.31 C1.08.60 C1.09.58 C1.09.59 C1.09.60 C1.09.61 C1.09.62
+C2.10.00 C1.10.12
+C2.10.01 C1.10.15
+C2.10.02 C1.10.10 C1.10.14 C1.10.15 C1.10.18
+C2.10.03 C1.10.13 C1.10.16
+C2.10.04 C1.10.14 C1.10.18
+C2.10.05 C1.10.16
+C2.10.06 C1.09.17 C1.10.12 C1.10.17 C1.10.21
+C2.10.07 C1.10.11 C1.10.15 C1.10.16 C1.10.19
+C2.10.08 C1.10.15 C1.10.18 C1.10.19 C1.10.22
+C2.10.09 C1.10.17 C1.10.20 C1.10.21 C1.10.24
+C2.10.10 C1.10.20 C1.10.23 C1.10.24 C1.10.27
+C2.10.11 C1.09.25 C1.10.21 C1.10.24 C1.10.28
+C2.10.12 C1.10.23 C1.10.26 C1.10.27 C1.10.30
+C2.10.13 C1.10.26 C1.10.29 C1.10.30 C1.10.32
+C2.10.14 C1.10.24 C1.10.27 C1.10.28 C1.10.31
+C2.10.15 C1.10.27 C1.10.30 C1.10.31 C1.10.33
+C2.10.16 C1.09.32 C1.09.35 C1.10.34 C1.10.36
+C2.10.17 C1.10.30 C1.10.32 C1.10.33 C1.10.35
+C2.10.18 C1.10.34 C1.10.36 C1.10.37 C1.10.40
+C2.10.19 C1.10.37 C1.10.39 C1.10.40 C1.10.42
+C2.10.20 C1.09.40 C1.10.36 C1.10.40 C1.10.43
+C2.10.21 C1.10.39 C1.10.41 C1.10.42 C1.10.44
+C2.10.22 C1.10.40 C1.10.42 C1.10.43 C1.10.45
+C2.10.23 C1.10.42 C1.10.44 C1.10.45 C1.10.46
+C2.10.24 C1.09.44 C1.09.46 C1.09.48 C1.10.47
+C2.10.25 C1.09.48 C1.10.47 C1.10.49 C1.10.51
+C2.10.26 C1.10.49 C1.10.50 C1.10.51 C1.10.52
+C2.10.27 C1.09.51 C1.10.51 C1.10.52 C1.10.53 C1.10.54 C1.10.55 C1.10.57
+C2.10.28 C1.10.52 C1.10.54 C1.10.56 C1.10.57 C1.10.58 C1.10.60 C1.11.54 C1.11.55 C1.11.58
+C2.10.29 C1.09.56 C1.09.58 C1.09.60 C1.10.59
+C2.10.30 C1.09.60 C1.09.61 C1.10.59 C1.10.61
+C2.10.31 C1.10.61 C1.10.62
+C2.11.00 C1.11.12 C1.11.13 C1.11.14
+C2.11.01 C1.10.14 C1.10.18 C1.11.15 C1.11.20
+C2.11.02 C1.11.15 C1.11.16 C1.11.20 C1.11.21
+C2.11.03 C1.11.16 C1.11.17 C1.11.21 C1.11.22
+C2.11.04 C1.11.17 C1.11.18 C1.11.22 C1.11.23
+C2.11.05 C1.11.18 C1.11.19 C1.11.23 C1.11.24
+C2.11.06 C1.10.18 C1.10.22 C1.10.25 C1.11.20
+C2.11.07 C1.10.25 C1.11.20 C1.11.21 C1.11.25
+C2.11.08 C1.11.21 C1.11.22 C1.11.25 C1.11.26
+C2.11.09 C1.11.22 C1.11.23 C1.11.26 C1.11.27
+C2.11.10 C1.11.23 C1.11.24 C1.11.27 C1.11.28
+C2.11.11 C1.10.29 C1.10.32 C1.11.29 C1.11.33
+C2.11.12 C1.11.29 C1.11.30 C1.11.33 C1.11.34
+C2.11.13 C1.11.30 C1.11.31 C1.11.34 C1.11.35
+C2.11.14 C1.11.31 C1.11.32 C1.11.35 C1.11.36
+C2.11.15 C1.10.32 C1.10.35 C1.10.38 C1.11.33
+C2.11.16 C1.10.38 C1.11.33 C1.11.34 C1.11.37
+C2.11.17 C1.11.34 C1.11.35 C1.11.37 C1.11.38
+C2.11.18 C1.11.35 C1.11.36 C1.11.38 C1.11.39
+C2.11.19 C1.10.41 C1.10.44 C1.11.40 C1.11.43
+C2.11.20 C1.11.40 C1.11.41 C1.11.43 C1.11.44
+C2.11.21 C1.11.41 C1.11.42 C1.11.44 C1.11.45
+C2.11.22 C1.10.44 C1.10.46 C1.10.48 C1.11.43
+C2.11.23 C1.10.48 C1.11.43 C1.11.44 C1.11.46
+C2.11.24 C1.11.44 C1.11.45 C1.11.46 C1.11.47
+C2.11.25 C1.10.50 C1.10.52 C1.11.48 C1.11.50 C1.11.51
+C2.11.26 C1.11.48 C1.11.49 C1.11.51 C1.11.52 C1.11.53
+C2.11.27 C1.11.55 C1.11.56 C1.11.58 C1.11.59
+C2.11.28 C1.11.56 C1.11.57 C1.11.59 C1.11.60
+C2.11.29 C1.10.60 C1.11.58 C1.11.59 C1.11.61
+C2.11.30 C1.11.59 C1.11.60 C1.11.61 C1.11.62
+C2.12.00 C1.11.14 C1.12.12 C1.12.13 C1.12.14
+C2.12.01 C1.12.15 C1.12.16 C1.12.20 C1.12.21 C1.13.13
+C2.12.02 C1.12.16 C1.12.17 C1.12.21 C1.12.22
+C2.12.03 C1.12.17 C1.12.18 C1.12.22 C1.12.23
+C2.12.04 C1.12.18 C1.12.19 C1.12.23 C1.12.24
+C2.12.05 C1.11.19 C1.11.24 C1.12.19 C1.12.24
+C2.12.06 C1.12.20 C1.12.21 C1.12.25 C1.13.24
+C2.12.07 C1.12.21 C1.12.22 C1.12.25 C1.12.26
+C2.12.08 C1.12.22 C1.12.23 C1.12.26 C1.12.27
+C2.12.09 C1.12.23 C1.12.24 C1.12.27 C1.12.28
+C2.12.10 C1.11.24 C1.11.28 C1.12.24 C1.12.28
+C2.12.11 C1.12.29 C1.12.30 C1.12.33 C1.12.34
+C2.12.12 C1.12.30 C1.12.31 C1.12.34 C1.12.35
+C2.12.13 C1.12.31 C1.12.32 C1.12.35 C1.12.36
+C2.12.14 C1.11.32 C1.11.36 C1.12.32 C1.12.36
+C2.12.15 C1.12.33 C1.12.34 C1.12.37 C1.13.37
+C2.12.16 C1.12.34 C1.12.35 C1.12.37 C1.12.38
+C2.12.17 C1.12.35 C1.12.36 C1.12.38 C1.12.39
+C2.12.18 C1.11.36 C1.11.39 C1.12.36 C1.12.39
+C2.12.19 C1.12.40 C1.12.41 C1.12.43 C1.12.44
+C2.12.20 C1.12.41 C1.12.42 C1.12.44 C1.12.45
+C2.12.21 C1.11.42 C1.11.45 C1.12.42 C1.12.45
+C2.12.22 C1.12.43 C1.12.44 C1.12.46 C1.13.47
+C2.12.23 C1.12.44 C1.12.45 C1.12.46 C1.12.47
+C2.12.24 C1.11.45 C1.11.47 C1.12.45 C1.12.47
+C2.12.25 C1.12.48 C1.12.49 C1.12.50 C1.12.51 C1.12.52
+C2.12.26 C1.11.49 C1.11.53 C1.12.49 C1.12.52 C1.12.53
+C2.12.27 C1.12.56 C1.12.57 C1.12.59 C1.12.60
+C2.12.28 C1.11.57 C1.11.60 C1.12.57 C1.12.60
+C2.12.29 C1.12.59 C1.12.60 C1.12.61 C1.12.62
+C2.12.30 C1.11.60 C1.11.62 C1.12.60 C1.12.62
+C2.13.00 C1.13.14
+C2.13.01 C1.13.12 C1.14.17
+C2.13.02 C1.13.13 C1.13.17
+C2.13.03 C1.13.11 C1.13.15
+C2.13.04 C1.12.15 C1.12.20 C1.13.13 C1.13.17
+C2.13.05 C1.13.15
+C2.13.06 C1.13.16 C1.13.20
+C2.13.07 C1.13.14 C1.13.15 C1.13.18
+C2.13.08 C1.12.20 C1.13.17 C1.13.21 C1.13.24
+C2.13.09 C1.13.19 C1.13.23
+C2.13.10 C1.13.22 C1.13.26
+C2.13.11 C1.13.23 C1.13.27
+C2.13.12 C1.13.25 C1.13.28 C1.13.29 C1.13.31
+C2.13.13 C1.12.29 C1.12.33 C1.13.28 C1.13.31
+C2.13.14 C1.13.26 C1.13.30
+C2.13.15 C1.13.29 C1.13.31 C1.13.32 C1.13.34
+C2.13.16 C1.13.33 C1.13.35
+C2.13.17 C1.12.33 C1.13.31 C1.13.34 C1.13.37
+C2.13.18 C1.13.36 C1.13.38 C1.13.39 C1.13.41
+C2.13.19 C1.13.38 C1.13.40 C1.13.41 C1.13.43
+C2.13.20 C1.13.39 C1.13.41 C1.13.42 C1.13.44
+C2.13.21 C1.12.40 C1.12.43 C1.13.40 C1.13.43
+C2.13.22 C1.13.41 C1.13.43 C1.13.44 C1.13.45
+C2.13.23 C1.12.43 C1.13.43 C1.13.45 C1.13.47
+C2.13.24 C1.13.46 C1.13.48 C1.13.50 C1.14.48
+C2.13.25 C1.13.48 C1.13.49 C1.13.50 C1.13.51
+C2.13.26 C1.12.48 C1.12.50 C1.13.49 C1.13.51
+C2.13.27 C1.12.54 C1.13.51 C1.13.52 C1.13.53 C1.13.54 C1.13.55 C1.13.56 C1.13.57
+C2.13.28 C1.12.54 C1.12.55 C1.12.56 C1.12.58 C1.12.59 C1.12.61 C1.13.55 C1.13.57 C1.13.59
+C2.13.29 C1.13.58 C1.14.57
+C2.13.30 C1.13.58 C1.13.60 C1.13.61 C1.13.62
+C2.13.31 C1.13.60 C1.13.62
+C2.14.00 C1.14.17
+C2.14.01 C1.14.15
+C2.14.02 C1.14.14 C1.14.16
+C2.14.03 C1.14.17
+C2.14.04 C1.14.16 C1.14.19
+C2.14.05 C1.14.12 C1.14.15 C1.14.17 C1.14.20
+C2.14.06 C1.14.18 C1.14.22
+C2.14.07 C1.14.22 C1.14.24
+C2.14.08 C1.13.20 C1.14.25
+C2.14.09 C1.14.23 C1.14.27
+C2.14.10 C1.14.26 C1.15.29
+C2.14.11 C1.14.27 C1.14.29
+C2.14.12 C1.14.28 C1.14.30
+C2.14.13 C1.14.31 C1.14.33
+C2.14.14 C1.14.32 C1.14.35
+C2.14.15 C1.14.30 C1.14.34
+C2.14.16 C1.14.36 C1.14.38
+C2.14.17 C1.14.35 C1.14.37
+C2.14.18 C1.14.39 C1.14.41
+C2.14.19 C1.13.35 C1.14.40
+C2.14.20 C1.14.41 C1.15.42
+C2.14.21 C1.14.42 C1.14.43
+C2.14.22 C1.14.43 C1.14.45
+C2.14.23 C1.13.46 C1.14.44 C1.14.46 C1.14.48
+C2.14.24 C1.14.46 C1.14.47 C1.14.48 C1.14.49
+C2.14.25 C1.13.50 C1.14.48 C1.14.49 C1.14.51
+C2.14.26 C1.14.50 C1.14.52 C1.14.53 C1.14.54 C1.15.52
+C2.14.27 C1.13.50 C1.13.51 C1.13.52 C1.13.54 C1.14.51
+C2.14.28 C1.14.52 C1.14.53 C1.14.54 C1.14.55 C1.14.56 C1.14.57 C1.14.58 C1.14.59 C1.14.60
+C2.14.29 C1.14.59 C1.14.61
+C2.14.30 C1.14.60 C1.14.62
+C2.14.31 C1.13.61 C1.14.61 C1.14.62
+C2.15.00 C1.15.15 C1.15.16
+C2.15.01 C1.15.17
+C2.15.02 C1.15.16 C1.15.17
+C2.15.03 C1.14.13 C1.15.18 C1.15.19
+C2.15.04 C1.15.19 C1.15.20
+C2.15.05 C1.15.21 C1.15.22
+C2.15.06 C1.15.22 C1.15.23
+C2.15.07 C1.14.21 C1.15.24
+C2.15.08 C1.15.24 C1.15.25
+C2.15.09 C1.15.26 C1.15.27
+C2.15.10 C1.15.27 C1.15.28
+C2.15.11 C1.15.29 C1.15.30
+C2.15.12 C1.15.31 C1.15.32
+C2.15.13 C1.15.32 C1.15.33
+C2.15.14 C1.14.33 C1.15.34
+C2.15.15 C1.15.35 C1.15.36
+C2.15.16 C1.15.36 C1.15.37
+C2.15.17 C1.14.38 C1.15.38
+C2.15.18 C1.15.39 C1.15.40
+C2.15.19 C1.15.40 C1.15.41
+C2.15.20 C1.15.43 C1.15.44
+C2.15.21 C1.15.44 C1.15.45
+C2.15.22 C1.15.46 C1.15.47
+C2.15.23 C1.15.47 C1.15.48
+C2.15.24 C1.14.50 C1.15.49 C1.15.50 C1.15.52
+C2.15.25 C1.15.50 C1.15.51 C1.15.52 C1.15.53
+C2.15.26 C1.15.52 C1.15.53 C1.15.54 C1.15.55 C1.15.56
+C2.15.27 C1.15.54 C1.15.55 C1.15.56 C1.15.57 C1.15.58 C1.15.59 C1.15.60 C1.15.61 C1.15.62
+C2.15.28 C1.14.62 C1.15.60 C1.15.61
+C2.15.29 C1.15.61 C1.15.62
+C3.00.00 C2.00.06
+C3.00.01 C2.00.07 C2.00.08 C2.00.11 C2.01.10
+C3.00.02 C2.00.05 C2.00.09 C2.00.12
+C3.00.03 C2.00.10 C2.00.13
+C3.00.04 C2.00.11 C2.00.14
+C3.00.05 C2.00.12 C2.00.15
+C3.00.06 C2.00.13 C2.00.16
+C3.00.07 C2.00.14 C2.00.17 C2.01.20
+C3.00.08 C2.00.15 C2.00.18 C2.00.20
+C3.00.09 C2.00.16 C2.00.19 C2.00.21
+C3.00.10 C2.00.20 C2.00.22
+C3.00.11 C2.00.21 C2.00.23
+C3.00.12 C2.00.22 C2.00.24 C2.01.26
+C3.00.13 C2.00.23 C2.00.25 C2.00.26
+C3.00.14 C2.00.26 C2.00.27
+C3.00.15 C2.00.27 C2.00.28 C2.00.29
+C3.01.00 C2.00.07 C2.01.10
+C3.01.01 C2.01.05 C2.01.06 C2.01.08 C2.01.09 C2.01.11
+C3.01.02 C2.00.07 C2.01.04 C2.01.06 C2.01.07 C2.01.09 C2.01.10 C2.01.11
+C3.01.03 C2.01.05 C2.01.08 C2.01.09 C2.01.12 C2.01.14 C2.02.11
+C3.01.04 C2.01.10 C2.01.13
+C3.01.05 C2.01.09 C2.01.11 C2.01.12 C2.01.14 C2.01.15 C2.01.17
+C3.01.06 C2.01.13 C2.01.16 C2.01.18
+C3.01.07 C2.01.14 C2.01.17 C2.01.19 C2.02.16
+C3.01.08 C2.01.18 C2.01.21
+C3.01.09 C2.01.20 C2.01.22
+C3.01.10 C2.01.21 C2.01.23 C2.02.24
+C3.01.11 C2.01.22 C2.01.24 C2.01.25
+C3.01.12 C2.01.25 C2.01.27
+C3.01.13 C2.01.26 C2.01.28
+C3.01.14 C2.01.28 C2.01.29 C2.01.30 C2.01.31
+C3.01.15 C2.00.27 C2.00.28 C2.01.28 C2.01.30 C2.01.31
+C3.02.00 C2.01.05 C2.01.08 C2.02.06 C2.02.09 C2.02.10 C2.02.11
+C3.02.01 C2.02.07 C2.02.08 C2.02.10 C2.02.12 C2.02.13 C2.03.06
+C3.02.02 C2.02.07 C2.02.09 C2.02.10 C2.02.12 C2.02.13
+C3.02.03 C2.02.09 C2.02.10 C2.02.11 C2.02.14
+C3.02.04 C2.02.10 C2.02.12 C2.02.13 C2.02.14 C2.02.15 C2.02.17
+C3.02.05 C2.01.14 C2.02.11 C2.02.14 C2.02.16
+C3.02.06 C2.02.13 C2.02.17 C2.03.11 C2.03.15
+C3.02.07 C2.02.14 C2.02.15 C2.02.16 C2.02.17 C2.02.18 C2.02.19
+C3.02.08 C2.02.17 C2.02.19 C2.02.21 C2.03.15
+C3.02.09 C2.01.19 C2.02.16 C2.02.18 C2.02.19 C2.02.20 C2.02.22
+C3.02.10 C2.02.19 C2.02.21 C2.02.22 C2.02.23
+C3.02.11 C2.02.24 C2.02.25
+C3.02.12 C2.02.25 C2.02.26 C2.03.25
+C3.02.13 C2.01.27 C2.02.27 C2.02.28
+C3.02.14 C2.01.29 C2.01.31 C2.02.29 C2.02.30
+C3.02.15 C2.02.29 C2.02.30 C2.02.31
+C3.03.00 C2.03.04 C2.03.05
+C3.03.01 C2.03.05
+C3.03.02 C2.03.01 C2.03.02 C2.03.03 C2.03.06 C2.03.07 C2.03.08
+C3.03.03 C2.03.03 C2.03.04 C2.03.07 C2.03.08 C2.03.09
+C3.03.04 C2.03.04 C2.03.05 C2.03.09 C2.03.10
+C3.03.05 C2.02.13 C2.03.06 C2.03.07 C2.03.11
+C3.03.06 C2.03.07 C2.03.08 C2.03.09 C2.03.11 C2.03.12 C2.03.13
+C3.03.07 C2.03.09 C2.03.10 C2.03.13 C2.03.14
+C3.03.08 C2.03.11 C2.03.12 C2.03.13 C2.03.15 C2.03.16 C2.03.17
+C3.03.09 C2.03.13 C2.03.14 C2.03.17 C2.03.18
+C3.03.10 C2.02.21 C2.03.15 C2.03.16 C2.03.17 C2.03.19 C2.03.20
+C3.03.11 C2.03.17 C2.03.18 C2.03.20 C2.03.21
+C3.03.12 C2.02.21 C2.02.23 C2.03.19 C2.03.20 C2.03.22 C2.03.23
+C3.03.13 C2.03.20 C2.03.21 C2.03.23 C2.03.24
+C3.03.14 C2.03.25 C2.03.26
+C3.03.15 C2.02.28 C2.03.27 C2.03.28 C2.03.29 C2.03.30
+C3.04.00 C2.04.04 C2.04.05
+C3.04.01 C2.03.05 C2.04.05
+C3.04.02 C2.04.02 C2.04.03 C2.04.06 C2.04.07 C2.04.08
+C3.04.03 C2.04.03 C2.04.04 C2.04.08 C2.04.09
+C3.04.04 C2.03.05 C2.03.10 C2.04.04 C2.04.05 C2.04.09 C2.04.10
+C3.04.05 C2.04.06 C2.04.07 C2.04.08 C2.04.11 C2.04.12 C2.05.13
+C3.04.06 C2.04.08 C2.04.09 C2.04.12 C2.04.13
+C3.04.07 C2.03.10 C2.03.14 C2.04.09 C2.04.10 C2.04.13 C2.04.14
+C3.04.08 C2.04.12 C2.04.13 C2.04.16 C2.04.17
+C3.04.09 C2.03.14 C2.03.18 C2.04.13 C2.04.14 C2.04.17 C2.04.18
+C3.04.10 C2.04.16 C2.04.17 C2.04.19 C2.04.20
+C3.04.11 C2.03.18 C2.03.21 C2.04.17 C2.04.18 C2.04.20 C2.04.21
+C3.04.12 C2.04.19 C2.04.20 C2.04.22 C2.04.23
+C3.04.13 C2.03.21 C2.03.24 C2.04.20 C2.04.21 C2.04.23 C2.04.24
+C3.04.14 C2.03.26 C2.04.25 C2.04.26
+C3.04.15 C2.03.28 C2.03.30 C2.04.27 C2.04.28 C2.04.29 C2.04.30 C2.05.28
+C3.05.00 C2.05.06 C2.05.09 C2.05.11 C2.06.08
+C3.05.01 C2.05.07 C2.05.08 C2.05.09 C2.05.10 C2.05.12
+C3.05.02 C2.04.06 C2.05.08 C2.05.12 C2.05.13
+C3.05.03 C2.05.09 C2.05.10 C2.05.11 C2.05.12 C2.05.14 C2.05.15
+C3.05.04 C2.05.12 C2.05.13 C2.05.15 C2.05.17
+C3.05.05 C2.05.11 C2.05.14 C2.05.15 C2.05.16 C2.05.18 C2.06.14
+C3.05.06 C2.04.11 C2.04.12 C2.04.15 C2.04.16 C2.05.13 C2.05.17
+C3.05.07 C2.05.15 C2.05.17 C2.05.18 C2.05.19
+C3.05.08 C2.04.15 C2.04.16 C2.04.19 C2.05.17 C2.05.19 C2.05.21
+C3.05.09 C2.05.18 C2.05.19 C2.05.20 C2.05.22
+C3.05.10 C2.04.19 C2.04.22 C2.05.19 C2.05.21 C2.05.22 C2.05.23
+C3.05.11 C2.05.24 C2.05.25 C2.05.26
+C3.05.12 C2.04.25 C2.05.26
+C3.05.13 C2.05.27 C2.05.28
+C3.05.14 C2.05.30 C2.05.31
+C3.06.00 C2.06.05 C2.06.06 C2.06.07 C2.06.08 C2.06.09 C2.06.11 C2.06.12 C2.06.15
+C3.06.01 C2.06.07 C2.06.10 C2.06.11 C2.06.15
+C3.06.02 C2.05.11 C2.06.08 C2.06.12 C2.06.14
+C3.06.03 C2.06.10 C2.06.13 C2.06.16
+C3.06.04 C2.06.12 C2.06.14 C2.06.15 C2.06.17
+C3.06.05 C2.06.16 C2.06.18
+C3.06.06 C2.05.16 C2.05.18 C2.05.20 C2.06.14 C2.06.17 C2.06.19
+C3.06.07 C2.06.18 C2.06.21 C2.06.23
+C3.06.08 C2.06.20 C2.06.22 C2.06.24
+C3.06.09 C2.05.24 C2.06.23
+C3.06.10 C2.06.24 C2.06.25
+C3.06.11 C2.05.27 C2.06.25 C2.06.27
+C3.06.12 C2.05.29 C2.06.26 C2.06.28 C2.06.29 C2.06.30
+C3.06.13 C2.05.29 C2.05.30 C2.06.29 C2.06.31
+C3.06.14 C2.06.29 C2.06.30 C2.06.31 C2.07.28
+C3.06.15 C2.05.30 C2.06.29 C2.06.30 C2.06.31
+C3.07.00 C2.07.06 C2.07.10
+C3.07.01 C2.06.10 C2.07.07 C2.07.08 C2.07.11
+C3.07.02 C2.07.08 C2.07.09 C2.07.12
+C3.07.03 C2.07.10 C2.07.13
+C3.07.04 C2.07.11 C2.07.14 C2.07.17
+C3.07.05 C2.07.12 C2.07.15 C2.07.18
+C3.07.06 C2.07.13 C2.07.16 C2.07.19
+C3.07.07 C2.06.20 C2.07.17
+C3.07.08 C2.07.18 C2.07.20
+C3.07.09 C2.07.19 C2.07.21
+C3.07.10 C2.07.20 C2.07.22 C2.07.24
+C3.07.11 C2.07.21 C2.07.23 C2.07.25
+C3.07.12 C2.06.26 C2.07.24
+C3.07.13 C2.07.25 C2.07.26
+C3.07.14 C2.07.26 C2.07.27 C2.07.28 C2.07.29
+C3.07.15 C2.07.28 C2.07.29
+C3.08.00 C2.08.06 C2.08.10
+C3.08.01 C2.08.07 C2.08.08 C2.08.11 C2.09.10
+C3.08.02 C2.08.09 C2.08.12
+C3.08.03 C2.08.10 C2.08.13
+C3.08.04 C2.08.11 C2.08.14 C2.08.17
+C3.08.05 C2.08.12 C2.08.15 C2.08.18
+C3.08.06 C2.08.13 C2.08.16 C2.08.19
+C3.08.07 C2.08.17 C2.09.20
+C3.08.08 C2.08.18 C2.08.20
+C3.08.09 C2.08.19 C2.08.21
+C3.08.10 C2.08.20 C2.08.22 C2.08.24
+C3.08.11 C2.08.21 C2.08.23 C2.08.25
+C3.08.12 C2.08.24 C2.09.26
+C3.08.13 C2.08.25 C2.08.26
+C3.08.14 C2.08.26 C2.08.27 C2.08.28 C2.08.29
+C3.08.15 C2.08.28 C2.08.29
+C3.09.00 C2.08.07 C2.09.10
+C3.09.01 C2.09.05 C2.09.08 C2.09.09 C2.09.11 C2.09.12 C2.09.15
+C3.09.02 C2.09.06 C2.09.07 C2.09.09 C2.09.10 C2.09.11 C2.09.15
+C3.09.03 C2.09.08 C2.09.12 C2.09.14 C2.10.11
+C3.09.04 C2.09.10 C2.09.13 C2.09.16
+C3.09.05 C2.09.12 C2.09.14 C2.09.15 C2.09.17
+C3.09.06 C2.09.16 C2.09.18
+C3.09.07 C2.09.14 C2.09.17 C2.09.19 C2.10.16 C2.10.18 C2.10.20
+C3.09.08 C2.09.18 C2.09.21 C2.09.23
+C3.09.09 C2.09.20 C2.09.22 C2.09.24
+C3.09.10 C2.09.23 C2.10.24
+C3.09.11 C2.09.24 C2.09.25
+C3.09.12 C2.09.25 C2.09.27 C2.10.27
+C3.09.13 C2.09.26 C2.09.28 C2.09.29 C2.09.30
+C3.09.14 C2.09.29 C2.09.30 C2.09.31 C2.10.29
+C3.09.15 C2.08.28 C2.09.30 C2.09.31
+C3.10.00 C2.09.08 C2.10.06 C2.10.09 C2.10.10 C2.10.11
+C3.10.01 C2.10.07 C2.10.08 C2.10.12 C2.10.13 C2.11.06
+C3.10.02 C2.10.07 C2.10.08 C2.10.10 C2.10.12 C2.10.13
+C3.10.03 C2.10.09 C2.10.10 C2.10.11 C2.10.12 C2.10.14 C2.10.15
+C3.10.04 C2.10.12 C2.10.13 C2.10.15 C2.10.17
+C3.10.05 C2.09.14 C2.10.11 C2.10.14 C2.10.15 C2.10.16 C2.10.18
+C3.10.06 C2.10.13 C2.10.17 C2.11.11 C2.11.12 C2.11.15 C2.11.16
+C3.10.07 C2.10.15 C2.10.17 C2.10.18 C2.10.19
+C3.10.08 C2.10.17 C2.10.19 C2.10.21 C2.11.15 C2.11.16 C2.11.19
+C3.10.09 C2.10.18 C2.10.19 C2.10.20 C2.10.22
+C3.10.10 C2.10.19 C2.10.21 C2.10.22 C2.10.23 C2.11.19 C2.11.22
+C3.10.11 C2.10.24 C2.10.25 C2.10.26
+C3.10.12 C2.10.26 C2.11.25
+C3.10.13 C2.10.27 C2.10.28
+C3.10.14 C2.09.29 C2.09.31 C2.10.29 C2.10.30
+C3.10.15 C2.10.29 C2.10.30 C2.10.31
+C3.11.00 C2.11.04 C2.11.05
+C3.11.01 C2.11.05 C2.12.05
+C3.11.02 C2.11.02 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C3.11.03 C2.11.03 C2.11.04 C2.11.08 C2.11.09
+C3.11.04 C2.11.04 C2.11.05 C2.11.09 C2.11.10 C2.12.05 C2.12.10
+C3.11.05 C2.10.13 C2.11.06 C2.11.07 C2.11.08 C2.11.11 C2.11.12
+C3.11.06 C2.11.08 C2.11.09 C2.11.12 C2.11.13
+C3.11.07 C2.11.09 C2.11.10 C2.11.13 C2.11.14 C2.12.10 C2.12.14
+C3.11.08 C2.11.12 C2.11.13 C2.11.16 C2.11.17
+C3.11.09 C2.11.13 C2.11.14 C2.11.17 C2.11.18 C2.12.14 C2.12.18
+C3.11.10 C2.11.16 C2.11.17 C2.11.19 C2.11.20
+C3.11.11 C2.11.17 C2.11.18 C2.11.20 C2.11.21 C2.12.18 C2.12.21
+C3.11.12 C2.11.19 C2.11.20 C2.11.22 C2.11.23
+C3.11.13 C2.11.20 C2.11.21 C2.11.23 C2.11.24 C2.12.21 C2.12.24
+C3.11.14 C2.11.25 C2.11.26 C2.12.26
+C3.11.15 C2.10.28 C2.11.27 C2.11.28 C2.11.29 C2.11.30 C2.12.28 C2.12.30
+C3.12.00 C2.12.04 C2.12.05
+C3.12.01 C2.12.05
+C3.12.02 C2.12.02 C2.12.03 C2.12.06 C2.12.07 C2.12.08
+C3.12.03 C2.12.03 C2.12.04 C2.12.07 C2.12.08 C2.12.09
+C3.12.04 C2.12.04 C2.12.05 C2.12.09 C2.12.10
+C3.12.05 C2.12.06 C2.12.07 C2.12.11 C2.13.13
+C3.12.06 C2.12.07 C2.12.08 C2.12.09 C2.12.11 C2.12.12 C2.12.13
+C3.12.07 C2.12.09 C2.12.10 C2.12.13 C2.12.14
+C3.12.08 C2.12.11 C2.12.12 C2.12.13 C2.12.15 C2.12.16 C2.12.17
+C3.12.09 C2.12.13 C2.12.14 C2.12.17 C2.12.18
+C3.12.10 C2.12.15 C2.12.16 C2.12.17 C2.12.19 C2.12.20 C2.13.21
+C3.12.11 C2.12.17 C2.12.18 C2.12.20 C2.12.21
+C3.12.12 C2.12.19 C2.12.20 C2.12.22 C2.12.23 C2.13.21 C2.13.23
+C3.12.13 C2.12.20 C2.12.21 C2.12.23 C2.12.24
+C3.12.14 C2.12.25 C2.12.26
+C3.12.15 C2.12.27 C2.12.28 C2.12.29 C2.12.30 C2.13.28
+C3.13.00 C2.13.06 C2.13.09 C2.13.11 C2.14.05 C2.14.08
+C3.13.01 C2.13.07 C2.13.08 C2.13.09 C2.13.10 C2.13.12
+C3.13.02 C2.12.06 C2.13.08 C2.13.10 C2.13.12 C2.13.13
+C3.13.03 C2.13.09 C2.13.10 C2.13.11 C2.13.14
+C3.13.04 C2.13.10 C2.13.12 C2.13.13 C2.13.14 C2.13.15 C2.13.17
+C3.13.05 C2.13.11 C2.13.14 C2.13.16 C2.14.14
+C3.13.06 C2.12.11 C2.12.15 C2.13.13 C2.13.17
+C3.13.07 C2.13.14 C2.13.15 C2.13.16 C2.13.17 C2.13.18 C2.13.19
+C3.13.08 C2.12.15 C2.13.17 C2.13.19 C2.13.21
+C3.13.09 C2.13.16 C2.13.18 C2.13.19 C2.13.20 C2.13.22 C2.14.19
+C3.13.10 C2.13.19 C2.13.21 C2.13.22 C2.13.23
+C3.13.11 C2.13.24 C2.13.25
+C3.13.12 C2.12.25 C2.13.25 C2.13.26
+C3.13.13 C2.13.27 C2.13.28 C2.14.27
+C3.13.14 C2.13.29 C2.13.30 C2.13.31
+C3.14.00 C2.14.05 C2.14.06 C2.14.07 C2.14.08 C2.14.09 C2.14.11
+C3.14.01 C2.14.04 C2.14.07 C2.14.10 C2.14.11 C2.15.07
+C3.14.02 C2.13.11 C2.14.05 C2.14.08 C2.14.09 C2.14.12 C2.14.14
+C3.14.03 C2.14.10 C2.14.13
+C3.14.04 C2.14.09 C2.14.11 C2.14.12 C2.14.14 C2.14.15 C2.14.17
+C3.14.05 C2.14.13 C2.14.16 C2.14.18
+C3.14.06 C2.13.16 C2.14.14 C2.14.17 C2.14.19
+C3.14.07 C2.14.18 C2.14.21
+C3.14.08 C2.14.20 C2.14.22
+C3.14.09 C2.13.24 C2.14.21 C2.14.23
+C3.14.10 C2.14.22 C2.14.24 C2.14.25
+C3.14.11 C2.14.25 C2.14.27
+C3.14.12 C2.14.26 C2.14.28
+C3.14.13 C2.13.29 C2.14.28 C2.14.29
+C3.14.14 C2.14.28 C2.14.29 C2.14.30 C2.14.31 C2.15.27 C2.15.28
+C3.14.15 C2.13.30 C2.14.29 C2.14.30 C2.14.31
+C3.15.00 C2.15.06
+C3.15.01 C2.14.10 C2.15.07 C2.15.08 C2.15.11
+C3.15.02 C2.15.05 C2.15.08 C2.15.09 C2.15.12
+C3.15.03 C2.15.10 C2.15.13
+C3.15.04 C2.15.11 C2.15.14
+C3.15.05 C2.15.12 C2.15.15
+C3.15.06 C2.15.13 C2.15.16
+C3.15.07 C2.14.20 C2.15.14 C2.15.17
+C3.15.08 C2.15.15 C2.15.18 C2.15.20
+C3.15.09 C2.15.16 C2.15.19 C2.15.21
+C3.15.10 C2.15.20 C2.15.22
+C3.15.11 C2.15.21 C2.15.23
+C3.15.12 C2.14.26 C2.15.22 C2.15.24
+C3.15.13 C2.15.23 C2.15.25 C2.15.26
+C3.15.14 C2.15.26 C2.15.27
+C3.15.15 C2.15.27 C2.15.28 C2.15.29
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev.txt
new file mode 100755
index 0000000000000000000000000000000000000000..3cccbd4addb4d766d711b7a0dce5dce2f8128c0e
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev.txt
@@ -0,0 +1,1519 @@
+# 3D FCal Neighbors Prev in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:15:50 2004
+#
+# 3d neighbors prev in sampling are all cells touching the same
+# eta phi area in the prev sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without prev sampling neighbors are not listed.
+#
+A2.00.00 A1.00.16 A1.00.15
+A2.00.01 A1.00.17 A1.00.16
+A2.00.02 A1.00.17
+A2.00.03 A1.00.19 A1.00.18 A1.01.13
+A2.00.04 A1.00.20 A1.00.19
+A2.00.05 A1.00.22 A1.00.21
+A2.00.06 A1.00.23 A1.00.22
+A2.00.07 A1.00.24 A1.01.21
+A2.00.08 A1.00.25 A1.00.24
+A2.00.09 A1.00.27 A1.00.26
+A2.00.10 A1.00.28 A1.00.27
+A2.00.11 A1.00.30 A1.00.29
+A2.00.12 A1.00.32 A1.00.31
+A2.00.13 A1.00.33 A1.00.32
+A2.00.14 A1.00.34 A1.01.33
+A2.00.15 A1.00.36 A1.00.35
+A2.00.16 A1.00.37 A1.00.36
+A2.00.17 A1.00.38 A1.01.38
+A2.00.18 A1.00.40 A1.00.39
+A2.00.19 A1.00.41 A1.00.40
+A2.00.20 A1.00.44 A1.00.43
+A2.00.21 A1.00.45 A1.00.44
+A2.00.22 A1.00.47 A1.00.46
+A2.00.23 A1.00.48 A1.00.47
+A2.00.24 A1.00.50 A1.00.49
+A2.00.25 A1.00.51 A1.00.50
+A2.00.26 A1.00.53 A1.00.52
+A2.00.27 A1.00.59 A1.00.56 A1.00.58 A1.00.55 A1.00.57 A1.00.54
+A2.00.28 A1.00.61 A1.00.60
+A2.00.29 A1.00.62 A1.00.61
+A2.01.00 A1.01.17 A1.02.11
+A2.01.01 A1.01.15 A1.01.12
+A2.01.02 A1.01.16
+A2.01.03 A1.01.15
+A2.01.04 A1.01.19 A1.01.16
+A2.01.05 A1.01.20 A1.01.17
+A2.01.06 A1.01.22 A1.01.18 A1.01.14
+A2.01.07 A1.01.24 A1.01.22
+A2.01.08 A1.01.25 A1.02.20
+A2.01.09 A1.01.27 A1.01.23
+A2.01.10 A1.00.29 A1.01.26
+A2.01.11 A1.01.29 A1.01.27
+A2.01.12 A1.01.30 A1.01.28
+A2.01.13 A1.01.33 A1.01.31
+A2.01.14 A1.01.35 A1.01.32
+A2.01.15 A1.01.34 A1.01.30
+A2.01.16 A1.01.38 A1.01.36
+A2.01.17 A1.01.37 A1.01.35
+A2.01.18 A1.01.41 A1.01.39
+A2.01.19 A1.01.40 A1.02.35
+A2.01.20 A1.00.42 A1.01.41
+A2.01.21 A1.01.43 A1.01.42
+A2.01.22 A1.01.45 A1.01.43
+A2.01.23 A1.01.46 A1.01.44
+A2.01.24 A1.01.47 A1.01.46
+A2.01.25 A1.01.49 A1.01.48
+A2.01.26 A1.00.52 A1.01.50
+A2.01.27 A1.01.51 A1.02.50
+A2.01.28 A1.01.58 A1.01.54 A1.01.56 A1.01.53 A1.01.55 A1.01.52
+A2.01.29 A1.01.59 A1.01.57
+A2.01.30 A1.01.60 A1.01.59
+A2.01.31 A1.01.62 A1.01.61
+A2.02.00 A1.02.16 A1.02.11
+A2.02.01 A1.02.14
+A2.02.02 A1.02.17 A1.02.13
+A2.02.03 A1.02.15 A1.02.12
+A2.02.04 A1.02.17 A1.02.13
+A2.02.05 A1.02.15
+A2.02.06 A1.02.20 A1.01.17 A1.02.16 A1.02.11
+A2.02.07 A1.02.18 A1.02.15 A1.02.14
+A2.02.08 A1.02.21 A1.02.17
+A2.02.09 A1.02.23 A1.02.19
+A2.02.10 A1.02.26 A1.02.22
+A2.02.11 A1.02.27 A1.02.23
+A2.02.12 A1.02.29 A1.02.25
+A2.02.13 A1.02.31 A1.02.28
+A2.02.14 A1.02.30 A1.02.26
+A2.02.15 A1.02.32 A1.02.29
+A2.02.16 A1.02.35 A1.02.33
+A2.02.17 A1.02.34 A1.02.31
+A2.02.18 A1.02.39 A1.02.36
+A2.02.19 A1.02.41 A1.02.38
+A2.02.20 A1.02.42 A1.02.39
+A2.02.21 A1.02.43 A1.02.40
+A2.02.22 A1.02.44 A1.02.41
+A2.02.23 A1.02.45 A1.02.43
+A2.02.24 A1.01.48 A1.02.46
+A2.02.25 A1.02.50 A1.02.48
+A2.02.26 A1.02.51 A1.02.49
+A2.02.27 A1.02.56 A1.02.54 A1.02.53 A1.02.52 A1.02.51
+A2.02.28 A1.02.59 A1.02.57 A1.03.58 A1.02.55 A1.03.55 A1.03.54
+A2.02.29 A1.01.61 A1.02.58
+A2.02.30 A1.02.61 A1.02.60
+A2.02.31 A1.02.61 A1.02.62 A1.02.60
+A2.03.00 A1.03.14 A1.03.13 A1.03.12
+A2.03.01 A1.03.20 A1.03.15 A1.02.13
+A2.03.02 A1.03.21 A1.03.16
+A2.03.03 A1.03.22 A1.03.17
+A2.03.04 A1.03.23 A1.03.18
+A2.03.05 A1.03.24 A1.03.19
+A2.03.06 A1.02.24 A1.03.20
+A2.03.07 A1.03.25 A1.03.21
+A2.03.08 A1.03.26 A1.03.22
+A2.03.09 A1.03.27 A1.03.23
+A2.03.10 A1.03.28 A1.03.24
+A2.03.11 A1.03.33 A1.03.29
+A2.03.12 A1.03.34 A1.03.30
+A2.03.13 A1.03.35 A1.03.31
+A2.03.14 A1.03.36 A1.03.32
+A2.03.15 A1.02.37 A1.03.33
+A2.03.16 A1.03.37 A1.03.34
+A2.03.17 A1.03.38 A1.03.35
+A2.03.18 A1.03.39 A1.03.36
+A2.03.19 A1.03.43 A1.03.40
+A2.03.20 A1.03.44 A1.03.41
+A2.03.21 A1.03.45 A1.03.42
+A2.03.22 A1.02.47 A1.03.43
+A2.03.23 A1.03.46 A1.03.44
+A2.03.24 A1.03.47 A1.03.45
+A2.03.25 A1.03.51 A1.03.50 A1.03.48
+A2.03.26 A1.03.53 A1.03.52 A1.03.49
+A2.03.27 A1.03.59 A1.03.56
+A2.03.28 A1.03.60 A1.03.57
+A2.03.29 A1.03.61 A1.03.59
+A2.03.30 A1.03.62 A1.03.60
+A2.04.00 A1.04.12 A1.04.13 A1.04.14
+A2.04.01 A1.04.20 A1.05.14 A1.04.15
+A2.04.02 A1.04.21 A1.04.16
+A2.04.03 A1.04.22 A1.04.17
+A2.04.04 A1.04.23 A1.04.18
+A2.04.05 A1.04.24 A1.04.19
+A2.04.06 A1.05.25 A1.04.20
+A2.04.07 A1.04.25 A1.04.21
+A2.04.08 A1.04.26 A1.04.22
+A2.04.09 A1.04.27 A1.04.23
+A2.04.10 A1.04.28 A1.04.24
+A2.04.11 A1.04.33 A1.04.29
+A2.04.12 A1.04.34 A1.04.30
+A2.04.13 A1.04.35 A1.04.31
+A2.04.14 A1.04.36 A1.04.32
+A2.04.15 A1.05.38 A1.04.33
+A2.04.16 A1.04.37 A1.04.34
+A2.04.17 A1.04.38 A1.04.35
+A2.04.18 A1.04.39 A1.04.36
+A2.04.19 A1.04.43 A1.04.40
+A2.04.20 A1.04.44 A1.04.41
+A2.04.21 A1.04.45 A1.04.42
+A2.04.22 A1.05.48 A1.04.43
+A2.04.23 A1.04.46 A1.04.44
+A2.04.24 A1.04.47 A1.04.45
+A2.04.25 A1.04.50 A1.04.51 A1.04.48
+A2.04.26 A1.04.52 A1.04.53 A1.04.49
+A2.04.27 A1.04.59 A1.04.56
+A2.04.28 A1.04.60 A1.04.57
+A2.04.29 A1.04.61 A1.04.59
+A2.04.30 A1.04.62 A1.04.60
+A2.05.00 A1.05.15
+A2.05.01 A1.06.17 A1.05.13
+A2.05.02 A1.05.18 A1.05.14
+A2.05.03 A1.05.12 A1.05.16
+A2.05.04 A1.05.18 A1.05.14
+A2.05.05 A1.05.16
+A2.05.06 A1.05.21 A1.05.17
+A2.05.07 A1.05.16 A1.05.19 A1.05.15
+A2.05.08 A1.05.22 A1.05.18
+A2.05.09 A1.05.24 A1.05.20
+A2.05.10 A1.05.27 A1.05.23
+A2.05.11 A1.05.28 A1.05.24
+A2.05.12 A1.05.30 A1.05.26
+A2.05.13 A1.05.32 A1.05.29
+A2.05.14 A1.05.31 A1.05.27
+A2.05.15 A1.05.33 A1.05.30
+A2.05.16 A1.05.37 A1.05.34
+A2.05.17 A1.05.35 A1.05.32
+A2.05.18 A1.05.40 A1.05.36
+A2.05.19 A1.05.42 A1.05.39
+A2.05.20 A1.05.43 A1.05.40
+A2.05.21 A1.05.44 A1.05.41
+A2.05.22 A1.05.45 A1.05.42
+A2.05.23 A1.05.46 A1.05.44
+A2.05.24 A1.06.48 A1.05.47
+A2.05.25 A1.05.51 A1.05.49
+A2.05.26 A1.05.52 A1.05.50
+A2.05.27 A1.05.55 A1.05.57 A1.05.53 A1.05.54 A1.05.52
+A2.05.28 A1.05.58 A1.05.60 A1.05.56 A1.04.58 A1.04.54 A1.04.55
+A2.05.29 A1.06.56 A1.05.59
+A2.05.30 A1.06.61 A1.05.59 A1.05.61
+A2.05.31 A1.05.61 A1.05.62
+A2.06.00 A1.06.17
+A2.06.01 A1.06.15
+A2.06.02 A1.06.16 A1.06.14
+A2.06.03 A1.06.17
+A2.06.04 A1.06.19 A1.06.16
+A2.06.05 A1.06.15 A1.06.20 A1.06.12 A1.06.17
+A2.06.06 A1.06.22 A1.06.18
+A2.06.07 A1.06.24 A1.06.22
+A2.06.08 A1.06.25 A1.05.21
+A2.06.09 A1.06.27 A1.06.23
+A2.06.10 A1.07.28 A1.06.26
+A2.06.11 A1.06.29 A1.06.27
+A2.06.12 A1.06.30 A1.06.28
+A2.06.13 A1.06.33 A1.06.31
+A2.06.14 A1.06.35 A1.06.32
+A2.06.15 A1.06.34 A1.06.30
+A2.06.16 A1.06.38 A1.06.36
+A2.06.17 A1.06.37 A1.06.35
+A2.06.18 A1.06.41 A1.06.39
+A2.06.19 A1.06.40 A1.05.37
+A2.06.20 A1.07.41 A1.06.41
+A2.06.21 A1.06.43 A1.06.42
+A2.06.22 A1.06.45 A1.06.43
+A2.06.23 A1.06.46 A1.06.44
+A2.06.24 A1.06.47 A1.06.46
+A2.06.25 A1.06.49 A1.06.48
+A2.06.26 A1.07.51 A1.06.50
+A2.06.27 A1.06.51 A1.05.51
+A2.06.28 A1.07.53 A1.06.57 A1.06.53 A1.06.55 A1.06.52 A1.06.54
+A2.06.29 A1.06.58 A1.06.60
+A2.06.30 A1.06.62 A1.06.59 A1.06.61
+A2.06.31 A1.06.62 A1.06.61 A1.06.60
+A2.07.00 A1.07.15 A1.07.14
+A2.07.01 A1.07.16
+A2.07.02 A1.07.16 A1.07.15
+A2.07.03 A1.07.18 A1.07.17 A1.06.13
+A2.07.04 A1.07.19 A1.07.18
+A2.07.05 A1.07.21 A1.07.20
+A2.07.06 A1.07.22 A1.07.21
+A2.07.07 A1.07.23 A1.06.21
+A2.07.08 A1.07.24 A1.07.23
+A2.07.09 A1.07.26 A1.07.25
+A2.07.10 A1.07.27 A1.07.26
+A2.07.11 A1.07.29 A1.07.28
+A2.07.12 A1.07.31 A1.07.30
+A2.07.13 A1.07.32 A1.07.31
+A2.07.14 A1.07.33 A1.06.33
+A2.07.15 A1.07.35 A1.07.34
+A2.07.16 A1.07.36 A1.07.35
+A2.07.17 A1.07.37 A1.06.38
+A2.07.18 A1.07.39 A1.07.38
+A2.07.19 A1.07.40 A1.07.39
+A2.07.20 A1.07.43 A1.07.42
+A2.07.21 A1.07.44 A1.07.43
+A2.07.22 A1.07.46 A1.07.45
+A2.07.23 A1.07.47 A1.07.46
+A2.07.24 A1.07.49 A1.07.48
+A2.07.25 A1.07.50 A1.07.49
+A2.07.26 A1.07.52 A1.07.51
+A2.07.27 A1.07.56 A1.07.59 A1.07.55 A1.07.58 A1.07.54 A1.07.57
+A2.07.28 A1.07.61 A1.07.60
+A2.07.29 A1.07.62 A1.07.61
+A2.08.00 A1.08.17
+A2.08.01 A1.08.16 A1.08.17
+A2.08.02 A1.08.15 A1.08.16
+A2.08.03 A1.09.13 A1.08.18 A1.08.19
+A2.08.04 A1.08.19 A1.08.20
+A2.08.05 A1.08.21 A1.08.22
+A2.08.06 A1.08.22 A1.08.23
+A2.08.07 A1.09.21 A1.08.24
+A2.08.08 A1.08.24 A1.08.25
+A2.08.09 A1.08.26 A1.08.27
+A2.08.10 A1.08.27 A1.08.28
+A2.08.11 A1.08.29 A1.08.30
+A2.08.12 A1.08.31 A1.08.32
+A2.08.13 A1.08.32 A1.08.33
+A2.08.14 A1.09.33 A1.08.34
+A2.08.15 A1.08.35 A1.08.36
+A2.08.16 A1.08.36 A1.08.37
+A2.08.17 A1.09.38 A1.08.38
+A2.08.18 A1.08.39 A1.08.40
+A2.08.19 A1.08.40 A1.08.41
+A2.08.20 A1.08.43 A1.08.44
+A2.08.21 A1.08.44 A1.08.45
+A2.08.22 A1.08.46 A1.08.47
+A2.08.23 A1.08.47 A1.08.48
+A2.08.24 A1.08.49 A1.08.50
+A2.08.25 A1.08.50 A1.08.51
+A2.08.26 A1.08.52 A1.08.53
+A2.08.27 A1.08.54 A1.08.57 A1.08.55 A1.08.58 A1.08.56 A1.08.59
+A2.08.28 A1.08.60 A1.08.61
+A2.08.29 A1.08.61 A1.08.62
+A2.09.00 A1.10.12 A1.09.17
+A2.09.01 A1.09.12 A1.09.15
+A2.09.02 A1.09.16
+A2.09.03 A1.09.15
+A2.09.04 A1.09.16 A1.09.19
+A2.09.05 A1.09.17 A1.09.20
+A2.09.06 A1.09.14 A1.09.18 A1.09.22
+A2.09.07 A1.09.22 A1.09.24
+A2.09.08 A1.10.20 A1.09.25
+A2.09.09 A1.09.23 A1.09.27
+A2.09.10 A1.09.26 A1.08.29
+A2.09.11 A1.09.27 A1.09.29
+A2.09.12 A1.09.28 A1.09.30
+A2.09.13 A1.09.31 A1.09.33
+A2.09.14 A1.09.32 A1.09.35
+A2.09.15 A1.09.30 A1.09.34
+A2.09.16 A1.09.36 A1.09.38
+A2.09.17 A1.09.35 A1.09.37
+A2.09.18 A1.09.39 A1.09.41
+A2.09.19 A1.10.35 A1.09.40
+A2.09.20 A1.09.41 A1.08.42
+A2.09.21 A1.09.42 A1.09.43
+A2.09.22 A1.09.43 A1.09.45
+A2.09.23 A1.09.44 A1.09.46
+A2.09.24 A1.09.46 A1.09.47
+A2.09.25 A1.09.48 A1.09.49
+A2.09.26 A1.09.50 A1.08.52
+A2.09.27 A1.10.50 A1.09.51
+A2.09.28 A1.09.52 A1.09.55 A1.09.53 A1.09.56 A1.09.54 A1.09.58
+A2.09.29 A1.09.57 A1.09.59
+A2.09.30 A1.09.59 A1.09.60
+A2.09.31 A1.09.61 A1.09.62
+A2.10.00 A1.10.12 A1.10.16
+A2.10.01 A1.10.14
+A2.10.02 A1.10.13 A1.10.17
+A2.10.03 A1.10.11 A1.10.15
+A2.10.04 A1.10.13 A1.10.17
+A2.10.05 A1.10.15
+A2.10.06 A1.10.12 A1.10.16 A1.09.17 A1.10.20
+A2.10.07 A1.10.14 A1.10.15 A1.10.18
+A2.10.08 A1.10.17 A1.10.21
+A2.10.09 A1.10.19 A1.10.23
+A2.10.10 A1.10.22 A1.10.26
+A2.10.11 A1.10.23 A1.10.27
+A2.10.12 A1.10.25 A1.10.29
+A2.10.13 A1.10.28 A1.10.31
+A2.10.14 A1.10.26 A1.10.30
+A2.10.15 A1.10.29 A1.10.32
+A2.10.16 A1.10.33 A1.10.35
+A2.10.17 A1.10.31 A1.10.34
+A2.10.18 A1.10.36 A1.10.39
+A2.10.19 A1.10.38 A1.10.41
+A2.10.20 A1.10.39 A1.10.42
+A2.10.21 A1.10.40 A1.10.43
+A2.10.22 A1.10.41 A1.10.44
+A2.10.23 A1.10.43 A1.10.45
+A2.10.24 A1.10.46 A1.09.48
+A2.10.25 A1.10.48 A1.10.50
+A2.10.26 A1.10.49 A1.10.51
+A2.10.27 A1.10.51 A1.10.52 A1.10.53 A1.10.54 A1.10.56
+A2.10.28 A1.11.54 A1.11.55 A1.10.55 A1.11.58 A1.10.57 A1.10.59
+A2.10.29 A1.10.58 A1.09.61
+A2.10.30 A1.10.60 A1.10.61
+A2.10.31 A1.10.60 A1.10.62 A1.10.61
+A2.11.00 A1.11.12 A1.11.13 A1.11.14
+A2.11.01 A1.10.13 A1.11.15 A1.11.20
+A2.11.02 A1.11.16 A1.11.21
+A2.11.03 A1.11.17 A1.11.22
+A2.11.04 A1.11.18 A1.11.23
+A2.11.05 A1.11.19 A1.11.24
+A2.11.06 A1.11.20 A1.10.24
+A2.11.07 A1.11.21 A1.11.25
+A2.11.08 A1.11.22 A1.11.26
+A2.11.09 A1.11.23 A1.11.27
+A2.11.10 A1.11.24 A1.11.28
+A2.11.11 A1.11.29 A1.11.33
+A2.11.12 A1.11.30 A1.11.34
+A2.11.13 A1.11.31 A1.11.35
+A2.11.14 A1.11.32 A1.11.36
+A2.11.15 A1.11.33 A1.10.37
+A2.11.16 A1.11.34 A1.11.37
+A2.11.17 A1.11.35 A1.11.38
+A2.11.18 A1.11.36 A1.11.39
+A2.11.19 A1.11.40 A1.11.43
+A2.11.20 A1.11.41 A1.11.44
+A2.11.21 A1.11.42 A1.11.45
+A2.11.22 A1.11.43 A1.10.47
+A2.11.23 A1.11.44 A1.11.46
+A2.11.24 A1.11.45 A1.11.47
+A2.11.25 A1.11.48 A1.11.50 A1.11.51
+A2.11.26 A1.11.49 A1.11.52 A1.11.53
+A2.11.27 A1.11.56 A1.11.59
+A2.11.28 A1.11.57 A1.11.60
+A2.11.29 A1.11.59 A1.11.61
+A2.11.30 A1.11.60 A1.11.62
+A2.12.00 A1.12.14 A1.12.13 A1.12.12
+A2.12.01 A1.12.15 A1.13.14 A1.12.20
+A2.12.02 A1.12.16 A1.12.21
+A2.12.03 A1.12.17 A1.12.22
+A2.12.04 A1.12.18 A1.12.23
+A2.12.05 A1.12.19 A1.12.24
+A2.12.06 A1.12.20 A1.13.25
+A2.12.07 A1.12.21 A1.12.25
+A2.12.08 A1.12.22 A1.12.26
+A2.12.09 A1.12.23 A1.12.27
+A2.12.10 A1.12.24 A1.12.28
+A2.12.11 A1.12.29 A1.12.33
+A2.12.12 A1.12.30 A1.12.34
+A2.12.13 A1.12.31 A1.12.35
+A2.12.14 A1.12.32 A1.12.36
+A2.12.15 A1.12.33 A1.13.38
+A2.12.16 A1.12.34 A1.12.37
+A2.12.17 A1.12.35 A1.12.38
+A2.12.18 A1.12.36 A1.12.39
+A2.12.19 A1.12.40 A1.12.43
+A2.12.20 A1.12.41 A1.12.44
+A2.12.21 A1.12.42 A1.12.45
+A2.12.22 A1.12.43 A1.13.48
+A2.12.23 A1.12.44 A1.12.46
+A2.12.24 A1.12.45 A1.12.47
+A2.12.25 A1.12.48 A1.12.51 A1.12.50
+A2.12.26 A1.12.49 A1.12.53 A1.12.52
+A2.12.27 A1.12.56 A1.12.59
+A2.12.28 A1.12.57 A1.12.60
+A2.12.29 A1.12.59 A1.12.61
+A2.12.30 A1.12.60 A1.12.62
+A2.13.00 A1.13.15
+A2.13.01 A1.13.12 A1.14.17
+A2.13.02 A1.13.14 A1.13.18
+A2.13.03 A1.13.16 A1.13.13
+A2.13.04 A1.13.14 A1.13.18
+A2.13.05 A1.13.16
+A2.13.06 A1.13.17 A1.13.21
+A2.13.07 A1.13.15 A1.13.19 A1.13.16
+A2.13.08 A1.13.18 A1.13.22
+A2.13.09 A1.13.20 A1.13.24
+A2.13.10 A1.13.23 A1.13.27
+A2.13.11 A1.13.24 A1.13.28
+A2.13.12 A1.13.26 A1.13.30
+A2.13.13 A1.13.29 A1.13.32
+A2.13.14 A1.13.27 A1.13.31
+A2.13.15 A1.13.30 A1.13.33
+A2.13.16 A1.13.34 A1.13.36
+A2.13.17 A1.13.32 A1.13.35
+A2.13.18 A1.13.37 A1.13.40
+A2.13.19 A1.13.39 A1.13.42
+A2.13.20 A1.13.40 A1.13.43
+A2.13.21 A1.13.41 A1.13.44
+A2.13.22 A1.13.42 A1.13.45
+A2.13.23 A1.13.44 A1.13.46
+A2.13.24 A1.13.47 A1.14.48
+A2.13.25 A1.13.49 A1.13.51
+A2.13.26 A1.13.50 A1.13.52
+A2.13.27 A1.13.52 A1.13.54 A1.13.53 A1.13.57 A1.13.55
+A2.13.28 A1.12.55 A1.12.54 A1.12.58 A1.13.56 A1.13.60 A1.13.58
+A2.13.29 A1.13.59 A1.14.56
+A2.13.30 A1.13.61 A1.13.59 A1.14.61
+A2.13.31 A1.13.62 A1.13.61
+A2.14.00 A1.14.17
+A2.14.01 A1.14.15
+A2.14.02 A1.14.14 A1.14.16
+A2.14.03 A1.14.17
+A2.14.04 A1.14.16 A1.14.19
+A2.14.05 A1.14.17 A1.14.12 A1.14.20 A1.14.15
+A2.14.06 A1.14.18 A1.14.22
+A2.14.07 A1.14.22 A1.14.24
+A2.14.08 A1.13.21 A1.14.25
+A2.14.09 A1.14.23 A1.14.27
+A2.14.10 A1.14.26 A1.15.28
+A2.14.11 A1.14.27 A1.14.29
+A2.14.12 A1.14.28 A1.14.30
+A2.14.13 A1.14.31 A1.14.33
+A2.14.14 A1.14.32 A1.14.35
+A2.14.15 A1.14.30 A1.14.34
+A2.14.16 A1.14.36 A1.14.38
+A2.14.17 A1.14.35 A1.14.37
+A2.14.18 A1.14.39 A1.14.41
+A2.14.19 A1.13.36 A1.14.40
+A2.14.20 A1.14.41 A1.15.41
+A2.14.21 A1.14.42 A1.14.43
+A2.14.22 A1.14.43 A1.14.45
+A2.14.23 A1.14.44 A1.14.46
+A2.14.24 A1.14.46 A1.14.47
+A2.14.25 A1.14.48 A1.14.49
+A2.14.26 A1.14.50 A1.15.51
+A2.14.27 A1.13.51 A1.14.51
+A2.14.28 A1.14.54 A1.14.52 A1.14.55 A1.14.53 A1.14.57 A1.15.53
+A2.14.29 A1.14.60 A1.14.58
+A2.14.30 A1.14.61 A1.14.59 A1.14.62
+A2.14.31 A1.14.61 A1.14.60 A1.14.62
+A2.15.00 A1.15.14 A1.15.15
+A2.15.01 A1.15.16
+A2.15.02 A1.15.15 A1.15.16
+A2.15.03 A1.14.13 A1.15.17 A1.15.18
+A2.15.04 A1.15.18 A1.15.19
+A2.15.05 A1.15.20 A1.15.21
+A2.15.06 A1.15.21 A1.15.22
+A2.15.07 A1.14.21 A1.15.23
+A2.15.08 A1.15.23 A1.15.24
+A2.15.09 A1.15.25 A1.15.26
+A2.15.10 A1.15.26 A1.15.27
+A2.15.11 A1.15.28 A1.15.29
+A2.15.12 A1.15.30 A1.15.31
+A2.15.13 A1.15.31 A1.15.32
+A2.15.14 A1.14.33 A1.15.33
+A2.15.15 A1.15.34 A1.15.35
+A2.15.16 A1.15.35 A1.15.36
+A2.15.17 A1.14.38 A1.15.37
+A2.15.18 A1.15.38 A1.15.39
+A2.15.19 A1.15.39 A1.15.40
+A2.15.20 A1.15.42 A1.15.43
+A2.15.21 A1.15.43 A1.15.44
+A2.15.22 A1.15.45 A1.15.46
+A2.15.23 A1.15.46 A1.15.47
+A2.15.24 A1.15.48 A1.15.49
+A2.15.25 A1.15.49 A1.15.50
+A2.15.26 A1.15.51 A1.15.52
+A2.15.27 A1.15.57 A1.15.54 A1.15.58 A1.15.55 A1.15.59 A1.15.56
+A2.15.28 A1.15.60 A1.15.61
+A2.15.29 A1.15.61 A1.15.62
+A3.00.00 A2.00.06
+A3.00.01 A2.00.11 A2.00.08 A2.01.10 A2.00.07
+A3.00.02 A2.00.12 A2.00.09 A2.00.05 A2.00.08
+A3.00.03 A2.00.13 A2.00.10
+A3.00.04 A2.00.14 A2.00.11
+A3.00.05 A2.00.15 A2.00.12
+A3.00.06 A2.00.16 A2.00.13
+A3.00.07 A2.01.20 A2.00.17
+A3.00.08 A2.00.20 A2.00.18
+A3.00.09 A2.00.21 A2.00.19
+A3.00.10 A2.00.22 A2.00.20
+A3.00.11 A2.00.23 A2.00.21
+A3.00.12 A2.01.26 A2.00.24
+A3.00.13 A2.00.26 A2.00.25
+A3.00.14 A2.00.27 A2.00.26
+A3.00.15 A2.00.29 A2.00.28
+A3.01.00 A2.01.11 A2.01.07 A2.01.09 A2.01.06 A2.01.08 A2.01.05
+A3.01.01 A2.01.10 A2.01.11 A2.01.07
+A3.01.02 A2.01.14 A2.01.12 A2.02.11 A2.01.08
+A3.01.03 A2.01.13 A2.01.10
+A3.01.04 A2.01.17 A2.01.15 A2.01.14 A2.01.12
+A3.01.05 A2.01.18 A2.01.16
+A3.01.06 A2.01.19 A2.01.17 A2.02.16 A2.01.14
+A3.01.07 A2.01.21 A2.01.18
+A3.01.08 A2.01.22 A2.01.20
+A3.01.09 A2.02.24 A2.01.23
+A3.01.10 A2.01.25 A2.01.24
+A3.01.11 A2.01.27 A2.01.25
+A3.01.12 A2.01.28 A2.01.26
+A3.01.13 A2.02.29 A2.01.29
+A3.01.14 A2.00.28 A2.01.31 A2.01.30
+A3.01.15 A2.01.31 A2.01.30 A2.02.30 A2.02.29
+A3.02.00 A2.02.11 A2.01.08 A2.02.09 A2.02.06
+A3.02.01 A2.02.12 A2.02.10 A2.02.09 A2.02.08 A2.02.07
+A3.02.02 A2.02.13 A2.02.12 A2.03.06 A2.02.08
+A3.02.03 A2.02.14 A2.02.11 A2.02.10 A2.02.09
+A3.02.04 A2.02.17 A2.02.15 A2.02.13 A2.02.12
+A3.02.05 A2.02.16 A2.01.14 A2.02.14 A2.02.11
+A3.02.06 A2.03.15 A2.02.17 A2.03.11 A2.02.13
+A3.02.07 A2.02.19 A2.02.18 A2.02.17 A2.02.15
+A3.02.08 A2.02.21 A2.02.19 A2.03.15 A2.02.17
+A3.02.09 A2.02.22 A2.02.20 A2.02.19 A2.02.18
+A3.02.10 A2.02.23 A2.02.22 A2.02.21 A2.02.19
+A3.02.11 A2.02.25 A2.02.24
+A3.02.12 A2.03.25 A2.02.26
+A3.02.13 A2.02.28 A2.02.27
+A3.02.14 A2.02.30 A2.02.29 A2.02.31
+A3.03.00 A2.03.05 A2.03.04
+A3.03.01 A2.03.05
+A3.03.02 A2.03.08 A2.03.07 A2.03.06 A2.03.03 A2.03.02
+A3.03.03 A2.03.09 A2.03.08 A2.03.04 A2.03.03
+A3.03.04 A2.03.10 A2.03.09 A2.03.05 A2.03.04
+A3.03.05 A2.03.11 A2.02.13 A2.03.07 A2.03.06
+A3.03.06 A2.03.13 A2.03.12 A2.03.09 A2.03.08
+A3.03.07 A2.03.14 A2.03.13 A2.03.10 A2.03.09
+A3.03.08 A2.03.17 A2.03.16 A2.03.13 A2.03.12
+A3.03.09 A2.03.18 A2.03.17 A2.03.14 A2.03.13
+A3.03.10 A2.03.20 A2.03.19 A2.03.17 A2.03.16
+A3.03.11 A2.03.21 A2.03.20 A2.03.18 A2.03.17
+A3.03.12 A2.03.23 A2.03.22 A2.03.20 A2.03.19
+A3.03.13 A2.03.24 A2.03.23 A2.03.21 A2.03.20
+A3.03.14 A2.03.26 A2.03.25
+A3.03.15 A2.03.30 A2.03.29 A2.02.28 A2.03.28 A2.03.27
+A3.04.00 A2.04.04 A2.04.05
+A3.04.01 A2.04.05
+A3.04.02 A2.04.06 A2.04.07 A2.04.08 A2.04.02 A2.04.03
+A3.04.03 A2.04.08 A2.04.09 A2.04.03 A2.04.04
+A3.04.04 A2.04.09 A2.04.10 A2.04.04 A2.04.05
+A3.04.05 A2.05.13 A2.04.11 A2.04.06 A2.04.07
+A3.04.06 A2.04.12 A2.04.13 A2.04.08 A2.04.09
+A3.04.07 A2.04.13 A2.04.14 A2.04.09 A2.04.10
+A3.04.08 A2.04.16 A2.04.17 A2.04.12 A2.04.13
+A3.04.09 A2.04.17 A2.04.18 A2.04.13 A2.04.14
+A3.04.10 A2.04.19 A2.04.20 A2.04.16 A2.04.17
+A3.04.11 A2.04.20 A2.04.21 A2.04.17 A2.04.18
+A3.04.12 A2.04.22 A2.04.23 A2.04.19 A2.04.20
+A3.04.13 A2.04.23 A2.04.24 A2.04.20 A2.04.21
+A3.04.14 A2.04.25 A2.04.26
+A3.04.15 A2.05.28 A2.04.29 A2.04.30 A2.04.27 A2.04.28
+A3.05.00 A2.06.08 A2.05.11 A2.05.06 A2.05.09 A2.05.10
+A3.05.01 A2.05.12 A2.05.13 A2.05.07 A2.05.08 A2.04.06
+A3.05.02 A2.05.10 A2.05.12 A2.05.13 A2.05.07
+A3.05.03 A2.05.11 A2.05.14 A2.05.09 A2.05.10
+A3.05.04 A2.05.15 A2.05.17 A2.05.12 A2.05.13
+A3.05.05 A2.06.14 A2.05.16 A2.05.11 A2.05.14
+A3.05.06 A2.05.17 A2.04.15 A2.05.13 A2.04.11
+A3.05.07 A2.05.18 A2.05.19 A2.05.15 A2.05.17
+A3.05.08 A2.05.19 A2.05.21 A2.05.17 A2.04.15
+A3.05.09 A2.05.20 A2.05.22 A2.05.18 A2.05.19
+A3.05.10 A2.05.22 A2.05.23 A2.05.19 A2.05.21
+A3.05.11 A2.05.24 A2.05.25
+A3.05.12 A2.05.26 A2.04.25
+A3.05.13 A2.05.27 A2.05.28
+A3.05.14 A2.06.31 A2.06.29 A2.05.30 A2.05.29
+A3.05.15 A2.05.30 A2.05.31
+A3.06.00 A2.07.07 A2.06.10
+A3.06.01 A2.06.11 A2.06.09 A2.06.05 A2.06.08
+A3.06.02 A2.06.10 A2.06.07 A2.06.11 A2.06.06 A2.06.09
+A3.06.03 A2.06.12 A2.06.14 A2.06.08 A2.05.11
+A3.06.04 A2.06.10 A2.06.13
+A3.06.05 A2.06.15 A2.06.17 A2.06.12 A2.06.14
+A3.06.06 A2.06.16 A2.06.18
+A3.06.07 A2.06.17 A2.06.19 A2.06.14 A2.05.16
+A3.06.08 A2.06.18 A2.06.21
+A3.06.09 A2.06.20 A2.06.22
+A3.06.10 A2.06.23 A2.05.24
+A3.06.11 A2.06.24 A2.06.25
+A3.06.12 A2.06.25 A2.06.27
+A3.06.13 A2.06.26 A2.06.28
+A3.06.14 A2.06.30 A2.06.29 A2.05.29
+A3.06.15 A2.07.28 A2.06.31 A2.06.30
+A3.07.00 A2.07.06
+A3.07.01 A2.07.08 A2.07.11 A2.07.07 A2.06.10
+A3.07.02 A2.07.05 A2.07.09 A2.07.12
+A3.07.03 A2.07.10 A2.07.13
+A3.07.04 A2.07.11 A2.07.14
+A3.07.05 A2.07.12 A2.07.15
+A3.07.06 A2.07.13 A2.07.16
+A3.07.07 A2.07.17 A2.06.20
+A3.07.08 A2.07.18 A2.07.20
+A3.07.09 A2.07.19 A2.07.21
+A3.07.10 A2.07.20 A2.07.22
+A3.07.11 A2.07.21 A2.07.23
+A3.07.12 A2.07.24 A2.06.26
+A3.07.13 A2.07.25 A2.07.26
+A3.07.14 A2.07.26 A2.07.27
+A3.07.15 A2.07.29 A2.07.28
+A3.08.00 A2.08.06
+A3.08.01 A2.08.07 A2.09.10 A2.08.08 A2.08.11
+A3.08.02 A2.08.08 A2.08.05 A2.08.09 A2.08.12
+A3.08.03 A2.08.10 A2.08.13
+A3.08.04 A2.08.11 A2.08.14
+A3.08.05 A2.08.12 A2.08.15
+A3.08.06 A2.08.13 A2.08.16
+A3.08.07 A2.08.17 A2.09.20
+A3.08.08 A2.08.18 A2.08.20
+A3.08.09 A2.08.19 A2.08.21
+A3.08.10 A2.08.20 A2.08.22
+A3.08.11 A2.08.21 A2.08.23
+A3.08.12 A2.08.24 A2.09.26
+A3.08.13 A2.08.25 A2.08.26
+A3.08.14 A2.08.26 A2.08.27
+A3.08.15 A2.08.28 A2.08.29
+A3.09.00 A2.09.05 A2.09.08 A2.09.06 A2.09.09 A2.09.07 A2.09.11
+A3.09.01 A2.09.07 A2.09.11 A2.09.10
+A3.09.02 A2.09.08 A2.10.11 A2.09.12 A2.09.14
+A3.09.03 A2.09.10 A2.09.13
+A3.09.04 A2.09.12 A2.09.14 A2.09.15 A2.09.17
+A3.09.05 A2.09.16 A2.09.18
+A3.09.06 A2.09.14 A2.10.16 A2.09.17 A2.09.19
+A3.09.07 A2.09.18 A2.09.21
+A3.09.08 A2.09.20 A2.09.22
+A3.09.09 A2.09.23 A2.10.24
+A3.09.10 A2.09.24 A2.09.25
+A3.09.11 A2.09.25 A2.09.27
+A3.09.12 A2.09.26 A2.09.28
+A3.09.13 A2.09.29 A2.10.29
+A3.09.14 A2.09.30 A2.09.31 A2.08.28
+A3.09.15 A2.10.29 A2.10.30 A2.09.30 A2.09.31
+A3.10.00 A2.10.06 A2.10.09 A2.09.08 A2.10.11
+A3.10.01 A2.10.07 A2.10.08 A2.10.09 A2.10.10 A2.10.12
+A3.10.02 A2.10.08 A2.11.06 A2.10.12 A2.10.13
+A3.10.03 A2.10.09 A2.10.10 A2.10.11 A2.10.14
+A3.10.04 A2.10.12 A2.10.13 A2.10.15 A2.10.17
+A3.10.05 A2.10.11 A2.10.14 A2.09.14 A2.10.16
+A3.10.06 A2.10.13 A2.11.11 A2.10.17 A2.11.15
+A3.10.07 A2.10.15 A2.10.17 A2.10.18 A2.10.19
+A3.10.08 A2.10.17 A2.11.15 A2.10.19 A2.10.21
+A3.10.09 A2.10.18 A2.10.19 A2.10.20 A2.10.22
+A3.10.10 A2.10.19 A2.10.21 A2.10.22 A2.10.23
+A3.10.11 A2.10.24 A2.10.25
+A3.10.12 A2.10.26 A2.11.25
+A3.10.13 A2.10.27 A2.10.28
+A3.10.14 A2.10.29 A2.10.30 A2.10.31
+A3.11.00 A2.11.04 A2.11.05
+A3.11.01 A2.11.05
+A3.11.02 A2.11.02 A2.11.03 A2.11.06 A2.11.07 A2.11.08
+A3.11.03 A2.11.03 A2.11.04 A2.11.08 A2.11.09
+A3.11.04 A2.11.04 A2.11.05 A2.11.09 A2.11.10
+A3.11.05 A2.11.06 A2.11.07 A2.10.13 A2.11.11
+A3.11.06 A2.11.08 A2.11.09 A2.11.12 A2.11.13
+A3.11.07 A2.11.09 A2.11.10 A2.11.13 A2.11.14
+A3.11.08 A2.11.12 A2.11.13 A2.11.16 A2.11.17
+A3.11.09 A2.11.13 A2.11.14 A2.11.17 A2.11.18
+A3.11.10 A2.11.16 A2.11.17 A2.11.19 A2.11.20
+A3.11.11 A2.11.17 A2.11.18 A2.11.20 A2.11.21
+A3.11.12 A2.11.19 A2.11.20 A2.11.22 A2.11.23
+A3.11.13 A2.11.20 A2.11.21 A2.11.23 A2.11.24
+A3.11.14 A2.11.25 A2.11.26
+A3.11.15 A2.10.28 A2.11.27 A2.11.28 A2.11.29 A2.11.30
+A3.12.00 A2.12.05 A2.12.04
+A3.12.01 A2.12.05
+A3.12.02 A2.12.03 A2.12.02 A2.12.08 A2.12.07 A2.12.06
+A3.12.03 A2.12.04 A2.12.03 A2.12.09 A2.12.08
+A3.12.04 A2.12.05 A2.12.04 A2.12.10 A2.12.09
+A3.12.05 A2.12.07 A2.12.06 A2.12.11 A2.13.13
+A3.12.06 A2.12.09 A2.12.08 A2.12.13 A2.12.12
+A3.12.07 A2.12.10 A2.12.09 A2.12.14 A2.12.13
+A3.12.08 A2.12.13 A2.12.12 A2.12.17 A2.12.16
+A3.12.09 A2.12.14 A2.12.13 A2.12.18 A2.12.17
+A3.12.10 A2.12.17 A2.12.16 A2.12.20 A2.12.19
+A3.12.11 A2.12.18 A2.12.17 A2.12.21 A2.12.20
+A3.12.12 A2.12.20 A2.12.19 A2.12.23 A2.12.22
+A3.12.13 A2.12.21 A2.12.20 A2.12.24 A2.12.23
+A3.12.14 A2.12.26 A2.12.25
+A3.12.15 A2.12.28 A2.12.27 A2.13.28 A2.12.30 A2.12.29
+A3.13.00 A2.13.10 A2.13.09 A2.13.06 A2.13.11 A2.14.08
+A3.13.01 A2.12.06 A2.13.08 A2.13.07 A2.13.13 A2.13.12
+A3.13.02 A2.13.07 A2.13.13 A2.13.12 A2.13.10
+A3.13.03 A2.13.10 A2.13.09 A2.13.14 A2.13.11
+A3.13.04 A2.13.13 A2.13.12 A2.13.17 A2.13.15
+A3.13.05 A2.13.14 A2.13.11 A2.13.16 A2.14.14
+A3.13.06 A2.12.11 A2.13.13 A2.12.15 A2.13.17
+A3.13.07 A2.13.17 A2.13.15 A2.13.19 A2.13.18
+A3.13.08 A2.12.15 A2.13.17 A2.13.21 A2.13.19
+A3.13.09 A2.13.19 A2.13.18 A2.13.22 A2.13.20
+A3.13.10 A2.13.21 A2.13.19 A2.13.23 A2.13.22
+A3.13.11 A2.13.25 A2.13.24
+A3.13.12 A2.12.25 A2.13.26
+A3.13.13 A2.13.28 A2.13.27
+A3.13.14 A2.13.30 A2.13.29 A2.14.31 A2.14.29
+A3.13.15 A2.13.31 A2.13.30
+A3.14.00 A2.14.10 A2.15.07
+A3.14.01 A2.14.08 A2.14.05 A2.14.09 A2.14.11
+A3.14.02 A2.14.09 A2.14.06 A2.14.11 A2.14.07 A2.14.10
+A3.14.03 A2.13.11 A2.14.08 A2.14.14 A2.14.12
+A3.14.04 A2.14.13 A2.14.10
+A3.14.05 A2.14.14 A2.14.12 A2.14.17 A2.14.15
+A3.14.06 A2.14.18 A2.14.16
+A3.14.07 A2.13.16 A2.14.14 A2.14.19 A2.14.17
+A3.14.08 A2.14.21 A2.14.18
+A3.14.09 A2.14.22 A2.14.20
+A3.14.10 A2.13.24 A2.14.23
+A3.14.11 A2.14.25 A2.14.24
+A3.14.12 A2.14.27 A2.14.25
+A3.14.13 A2.14.28 A2.14.26
+A3.14.14 A2.13.29 A2.14.29 A2.14.30
+A3.14.15 A2.14.31 A2.14.30 A2.15.28
+A3.15.00 A2.15.06
+A3.15.01 A2.14.10 A2.15.07 A2.15.11 A2.15.08
+A3.15.02 A2.15.12 A2.15.09 A2.15.05
+A3.15.03 A2.15.13 A2.15.10
+A3.15.04 A2.15.14 A2.15.11
+A3.15.05 A2.15.15 A2.15.12
+A3.15.06 A2.15.16 A2.15.13
+A3.15.07 A2.14.20 A2.15.17
+A3.15.08 A2.15.20 A2.15.18
+A3.15.09 A2.15.21 A2.15.19
+A3.15.10 A2.15.22 A2.15.20
+A3.15.11 A2.15.23 A2.15.21
+A3.15.12 A2.14.26 A2.15.24
+A3.15.13 A2.15.26 A2.15.25
+A3.15.14 A2.15.27 A2.15.26
+A3.15.15 A2.15.28 A2.15.29
+C2.00.00 C1.00.16 C1.00.15
+C2.00.01 C1.00.17 C1.00.16
+C2.00.02 C1.00.17
+C2.00.03 C1.00.19 C1.00.18 C1.01.13
+C2.00.04 C1.00.20 C1.00.19
+C2.00.05 C1.00.22 C1.00.21
+C2.00.06 C1.00.23 C1.00.22
+C2.00.07 C1.00.24 C1.01.21
+C2.00.08 C1.00.25 C1.00.24
+C2.00.09 C1.00.27 C1.00.26
+C2.00.10 C1.00.28 C1.00.27
+C2.00.11 C1.00.30 C1.00.29
+C2.00.12 C1.00.32 C1.00.31
+C2.00.13 C1.00.33 C1.00.32
+C2.00.14 C1.00.34 C1.01.33
+C2.00.15 C1.00.36 C1.00.35
+C2.00.16 C1.00.37 C1.00.36
+C2.00.17 C1.00.38 C1.01.38
+C2.00.18 C1.00.40 C1.00.39
+C2.00.19 C1.00.41 C1.00.40
+C2.00.20 C1.00.44 C1.00.43
+C2.00.21 C1.00.45 C1.00.44
+C2.00.22 C1.00.47 C1.00.46
+C2.00.23 C1.00.48 C1.00.47
+C2.00.24 C1.00.50 C1.00.49
+C2.00.25 C1.00.51 C1.00.50
+C2.00.26 C1.00.53 C1.00.52
+C2.00.27 C1.00.59 C1.00.56 C1.00.58 C1.00.55 C1.00.57 C1.00.54
+C2.00.28 C1.00.61 C1.00.60
+C2.00.29 C1.00.62 C1.00.61
+C2.01.00 C1.01.17 C1.02.11
+C2.01.01 C1.01.15 C1.01.12
+C2.01.02 C1.01.16
+C2.01.03 C1.01.15
+C2.01.04 C1.01.19 C1.01.16
+C2.01.05 C1.01.20 C1.01.17
+C2.01.06 C1.01.22 C1.01.18 C1.01.14
+C2.01.07 C1.01.24 C1.01.22
+C2.01.08 C1.01.25 C1.02.20
+C2.01.09 C1.01.27 C1.01.23
+C2.01.10 C1.00.29 C1.01.26
+C2.01.11 C1.01.29 C1.01.27
+C2.01.12 C1.01.30 C1.01.28
+C2.01.13 C1.01.33 C1.01.31
+C2.01.14 C1.01.35 C1.01.32
+C2.01.15 C1.01.34 C1.01.30
+C2.01.16 C1.01.38 C1.01.36
+C2.01.17 C1.01.37 C1.01.35
+C2.01.18 C1.01.41 C1.01.39
+C2.01.19 C1.01.40 C1.02.35
+C2.01.20 C1.00.42 C1.01.41
+C2.01.21 C1.01.43 C1.01.42
+C2.01.22 C1.01.45 C1.01.43
+C2.01.23 C1.01.46 C1.01.44
+C2.01.24 C1.01.47 C1.01.46
+C2.01.25 C1.01.49 C1.01.48
+C2.01.26 C1.00.52 C1.01.50
+C2.01.27 C1.01.51 C1.02.50
+C2.01.28 C1.01.58 C1.01.54 C1.01.56 C1.01.53 C1.01.55 C1.01.52
+C2.01.29 C1.01.59 C1.01.57
+C2.01.30 C1.01.60 C1.01.59
+C2.01.31 C1.01.62 C1.01.61
+C2.02.00 C1.02.16 C1.02.11
+C2.02.01 C1.02.14
+C2.02.02 C1.02.17 C1.02.13
+C2.02.03 C1.02.15 C1.02.12
+C2.02.04 C1.02.17 C1.02.13
+C2.02.05 C1.02.15
+C2.02.06 C1.02.20 C1.01.17 C1.02.16 C1.02.11
+C2.02.07 C1.02.18 C1.02.15 C1.02.14
+C2.02.08 C1.02.21 C1.02.17
+C2.02.09 C1.02.23 C1.02.19
+C2.02.10 C1.02.26 C1.02.22
+C2.02.11 C1.02.27 C1.02.23
+C2.02.12 C1.02.29 C1.02.25
+C2.02.13 C1.02.31 C1.02.28
+C2.02.14 C1.02.30 C1.02.26
+C2.02.15 C1.02.32 C1.02.29
+C2.02.16 C1.02.35 C1.02.33
+C2.02.17 C1.02.34 C1.02.31
+C2.02.18 C1.02.39 C1.02.36
+C2.02.19 C1.02.41 C1.02.38
+C2.02.20 C1.02.42 C1.02.39
+C2.02.21 C1.02.43 C1.02.40
+C2.02.22 C1.02.44 C1.02.41
+C2.02.23 C1.02.45 C1.02.43
+C2.02.24 C1.01.48 C1.02.46
+C2.02.25 C1.02.50 C1.02.48
+C2.02.26 C1.02.51 C1.02.49
+C2.02.27 C1.02.56 C1.02.54 C1.02.53 C1.02.52 C1.02.51
+C2.02.28 C1.02.59 C1.02.57 C1.03.58 C1.02.55 C1.03.55 C1.03.54
+C2.02.29 C1.01.61 C1.02.58
+C2.02.30 C1.02.61 C1.02.60
+C2.02.31 C1.02.61 C1.02.62 C1.02.60
+C2.03.00 C1.03.14 C1.03.13 C1.03.12
+C2.03.01 C1.03.20 C1.03.15 C1.02.13
+C2.03.02 C1.03.21 C1.03.16
+C2.03.03 C1.03.22 C1.03.17
+C2.03.04 C1.03.23 C1.03.18
+C2.03.05 C1.03.24 C1.03.19
+C2.03.06 C1.02.24 C1.03.20
+C2.03.07 C1.03.25 C1.03.21
+C2.03.08 C1.03.26 C1.03.22
+C2.03.09 C1.03.27 C1.03.23
+C2.03.10 C1.03.28 C1.03.24
+C2.03.11 C1.03.33 C1.03.29
+C2.03.12 C1.03.34 C1.03.30
+C2.03.13 C1.03.35 C1.03.31
+C2.03.14 C1.03.36 C1.03.32
+C2.03.15 C1.02.37 C1.03.33
+C2.03.16 C1.03.37 C1.03.34
+C2.03.17 C1.03.38 C1.03.35
+C2.03.18 C1.03.39 C1.03.36
+C2.03.19 C1.03.43 C1.03.40
+C2.03.20 C1.03.44 C1.03.41
+C2.03.21 C1.03.45 C1.03.42
+C2.03.22 C1.02.47 C1.03.43
+C2.03.23 C1.03.46 C1.03.44
+C2.03.24 C1.03.47 C1.03.45
+C2.03.25 C1.03.51 C1.03.50 C1.03.48
+C2.03.26 C1.03.53 C1.03.52 C1.03.49
+C2.03.27 C1.03.59 C1.03.56
+C2.03.28 C1.03.60 C1.03.57
+C2.03.29 C1.03.61 C1.03.59
+C2.03.30 C1.03.62 C1.03.60
+C2.04.00 C1.04.12 C1.04.13 C1.04.14
+C2.04.01 C1.04.20 C1.05.14 C1.04.15
+C2.04.02 C1.04.21 C1.04.16
+C2.04.03 C1.04.22 C1.04.17
+C2.04.04 C1.04.23 C1.04.18
+C2.04.05 C1.04.24 C1.04.19
+C2.04.06 C1.05.25 C1.04.20
+C2.04.07 C1.04.25 C1.04.21
+C2.04.08 C1.04.26 C1.04.22
+C2.04.09 C1.04.27 C1.04.23
+C2.04.10 C1.04.28 C1.04.24
+C2.04.11 C1.04.33 C1.04.29
+C2.04.12 C1.04.34 C1.04.30
+C2.04.13 C1.04.35 C1.04.31
+C2.04.14 C1.04.36 C1.04.32
+C2.04.15 C1.05.38 C1.04.33
+C2.04.16 C1.04.37 C1.04.34
+C2.04.17 C1.04.38 C1.04.35
+C2.04.18 C1.04.39 C1.04.36
+C2.04.19 C1.04.43 C1.04.40
+C2.04.20 C1.04.44 C1.04.41
+C2.04.21 C1.04.45 C1.04.42
+C2.04.22 C1.05.48 C1.04.43
+C2.04.23 C1.04.46 C1.04.44
+C2.04.24 C1.04.47 C1.04.45
+C2.04.25 C1.04.50 C1.04.51 C1.04.48
+C2.04.26 C1.04.52 C1.04.53 C1.04.49
+C2.04.27 C1.04.59 C1.04.56
+C2.04.28 C1.04.60 C1.04.57
+C2.04.29 C1.04.61 C1.04.59
+C2.04.30 C1.04.62 C1.04.60
+C2.05.00 C1.05.15
+C2.05.01 C1.06.17 C1.05.13
+C2.05.02 C1.05.18 C1.05.14
+C2.05.03 C1.05.12 C1.05.16
+C2.05.04 C1.05.18 C1.05.14
+C2.05.05 C1.05.16
+C2.05.06 C1.05.21 C1.05.17
+C2.05.07 C1.05.16 C1.05.19 C1.05.15
+C2.05.08 C1.05.22 C1.05.18
+C2.05.09 C1.05.24 C1.05.20
+C2.05.10 C1.05.27 C1.05.23
+C2.05.11 C1.05.28 C1.05.24
+C2.05.12 C1.05.30 C1.05.26
+C2.05.13 C1.05.32 C1.05.29
+C2.05.14 C1.05.31 C1.05.27
+C2.05.15 C1.05.33 C1.05.30
+C2.05.16 C1.05.37 C1.05.34
+C2.05.17 C1.05.35 C1.05.32
+C2.05.18 C1.05.40 C1.05.36
+C2.05.19 C1.05.42 C1.05.39
+C2.05.20 C1.05.43 C1.05.40
+C2.05.21 C1.05.44 C1.05.41
+C2.05.22 C1.05.45 C1.05.42
+C2.05.23 C1.05.46 C1.05.44
+C2.05.24 C1.06.48 C1.05.47
+C2.05.25 C1.05.51 C1.05.49
+C2.05.26 C1.05.52 C1.05.50
+C2.05.27 C1.05.55 C1.05.57 C1.05.53 C1.05.54 C1.05.52
+C2.05.28 C1.05.58 C1.05.60 C1.05.56 C1.04.58 C1.04.54 C1.04.55
+C2.05.29 C1.06.56 C1.05.59
+C2.05.30 C1.06.61 C1.05.59 C1.05.61
+C2.05.31 C1.05.61 C1.05.62
+C2.06.00 C1.06.17
+C2.06.01 C1.06.15
+C2.06.02 C1.06.16 C1.06.14
+C2.06.03 C1.06.17
+C2.06.04 C1.06.19 C1.06.16
+C2.06.05 C1.06.15 C1.06.20 C1.06.12 C1.06.17
+C2.06.06 C1.06.22 C1.06.18
+C2.06.07 C1.06.24 C1.06.22
+C2.06.08 C1.06.25 C1.05.21
+C2.06.09 C1.06.27 C1.06.23
+C2.06.10 C1.07.28 C1.06.26
+C2.06.11 C1.06.29 C1.06.27
+C2.06.12 C1.06.30 C1.06.28
+C2.06.13 C1.06.33 C1.06.31
+C2.06.14 C1.06.35 C1.06.32
+C2.06.15 C1.06.34 C1.06.30
+C2.06.16 C1.06.38 C1.06.36
+C2.06.17 C1.06.37 C1.06.35
+C2.06.18 C1.06.41 C1.06.39
+C2.06.19 C1.06.40 C1.05.37
+C2.06.20 C1.07.41 C1.06.41
+C2.06.21 C1.06.43 C1.06.42
+C2.06.22 C1.06.45 C1.06.43
+C2.06.23 C1.06.46 C1.06.44
+C2.06.24 C1.06.47 C1.06.46
+C2.06.25 C1.06.49 C1.06.48
+C2.06.26 C1.07.51 C1.06.50
+C2.06.27 C1.06.51 C1.05.51
+C2.06.28 C1.07.53 C1.06.57 C1.06.53 C1.06.55 C1.06.52 C1.06.54
+C2.06.29 C1.06.58 C1.06.60
+C2.06.30 C1.06.62 C1.06.59 C1.06.61
+C2.06.31 C1.06.62 C1.06.61 C1.06.60
+C2.07.00 C1.07.15 C1.07.14
+C2.07.01 C1.07.16
+C2.07.02 C1.07.16 C1.07.15
+C2.07.03 C1.07.18 C1.07.17 C1.06.13
+C2.07.04 C1.07.19 C1.07.18
+C2.07.05 C1.07.21 C1.07.20
+C2.07.06 C1.07.22 C1.07.21
+C2.07.07 C1.07.23 C1.06.21
+C2.07.08 C1.07.24 C1.07.23
+C2.07.09 C1.07.26 C1.07.25
+C2.07.10 C1.07.27 C1.07.26
+C2.07.11 C1.07.29 C1.07.28
+C2.07.12 C1.07.31 C1.07.30
+C2.07.13 C1.07.32 C1.07.31
+C2.07.14 C1.07.33 C1.06.33
+C2.07.15 C1.07.35 C1.07.34
+C2.07.16 C1.07.36 C1.07.35
+C2.07.17 C1.07.37 C1.06.38
+C2.07.18 C1.07.39 C1.07.38
+C2.07.19 C1.07.40 C1.07.39
+C2.07.20 C1.07.43 C1.07.42
+C2.07.21 C1.07.44 C1.07.43
+C2.07.22 C1.07.46 C1.07.45
+C2.07.23 C1.07.47 C1.07.46
+C2.07.24 C1.07.49 C1.07.48
+C2.07.25 C1.07.50 C1.07.49
+C2.07.26 C1.07.52 C1.07.51
+C2.07.27 C1.07.56 C1.07.59 C1.07.55 C1.07.58 C1.07.54 C1.07.57
+C2.07.28 C1.07.61 C1.07.60
+C2.07.29 C1.07.62 C1.07.61
+C2.08.00 C1.08.17
+C2.08.01 C1.08.16 C1.08.17
+C2.08.02 C1.08.15 C1.08.16
+C2.08.03 C1.09.13 C1.08.18 C1.08.19
+C2.08.04 C1.08.19 C1.08.20
+C2.08.05 C1.08.21 C1.08.22
+C2.08.06 C1.08.22 C1.08.23
+C2.08.07 C1.09.21 C1.08.24
+C2.08.08 C1.08.24 C1.08.25
+C2.08.09 C1.08.26 C1.08.27
+C2.08.10 C1.08.27 C1.08.28
+C2.08.11 C1.08.29 C1.08.30
+C2.08.12 C1.08.31 C1.08.32
+C2.08.13 C1.08.32 C1.08.33
+C2.08.14 C1.09.33 C1.08.34
+C2.08.15 C1.08.35 C1.08.36
+C2.08.16 C1.08.36 C1.08.37
+C2.08.17 C1.09.38 C1.08.38
+C2.08.18 C1.08.39 C1.08.40
+C2.08.19 C1.08.40 C1.08.41
+C2.08.20 C1.08.43 C1.08.44
+C2.08.21 C1.08.44 C1.08.45
+C2.08.22 C1.08.46 C1.08.47
+C2.08.23 C1.08.47 C1.08.48
+C2.08.24 C1.08.49 C1.08.50
+C2.08.25 C1.08.50 C1.08.51
+C2.08.26 C1.08.52 C1.08.53
+C2.08.27 C1.08.54 C1.08.57 C1.08.55 C1.08.58 C1.08.56 C1.08.59
+C2.08.28 C1.08.60 C1.08.61
+C2.08.29 C1.08.61 C1.08.62
+C2.09.00 C1.10.12 C1.09.17
+C2.09.01 C1.09.12 C1.09.15
+C2.09.02 C1.09.16
+C2.09.03 C1.09.15
+C2.09.04 C1.09.16 C1.09.19
+C2.09.05 C1.09.17 C1.09.20
+C2.09.06 C1.09.14 C1.09.18 C1.09.22
+C2.09.07 C1.09.22 C1.09.24
+C2.09.08 C1.10.20 C1.09.25
+C2.09.09 C1.09.23 C1.09.27
+C2.09.10 C1.09.26 C1.08.29
+C2.09.11 C1.09.27 C1.09.29
+C2.09.12 C1.09.28 C1.09.30
+C2.09.13 C1.09.31 C1.09.33
+C2.09.14 C1.09.32 C1.09.35
+C2.09.15 C1.09.30 C1.09.34
+C2.09.16 C1.09.36 C1.09.38
+C2.09.17 C1.09.35 C1.09.37
+C2.09.18 C1.09.39 C1.09.41
+C2.09.19 C1.10.35 C1.09.40
+C2.09.20 C1.09.41 C1.08.42
+C2.09.21 C1.09.42 C1.09.43
+C2.09.22 C1.09.43 C1.09.45
+C2.09.23 C1.09.44 C1.09.46
+C2.09.24 C1.09.46 C1.09.47
+C2.09.25 C1.09.48 C1.09.49
+C2.09.26 C1.09.50 C1.08.52
+C2.09.27 C1.10.50 C1.09.51
+C2.09.28 C1.09.52 C1.09.55 C1.09.53 C1.09.56 C1.09.54 C1.09.58
+C2.09.29 C1.09.57 C1.09.59
+C2.09.30 C1.09.59 C1.09.60
+C2.09.31 C1.09.61 C1.09.62
+C2.10.00 C1.10.12 C1.10.16
+C2.10.01 C1.10.14
+C2.10.02 C1.10.13 C1.10.17
+C2.10.03 C1.10.11 C1.10.15
+C2.10.04 C1.10.13 C1.10.17
+C2.10.05 C1.10.15
+C2.10.06 C1.10.12 C1.10.16 C1.09.17 C1.10.20
+C2.10.07 C1.10.14 C1.10.15 C1.10.18
+C2.10.08 C1.10.17 C1.10.21
+C2.10.09 C1.10.19 C1.10.23
+C2.10.10 C1.10.22 C1.10.26
+C2.10.11 C1.10.23 C1.10.27
+C2.10.12 C1.10.25 C1.10.29
+C2.10.13 C1.10.28 C1.10.31
+C2.10.14 C1.10.26 C1.10.30
+C2.10.15 C1.10.29 C1.10.32
+C2.10.16 C1.10.33 C1.10.35
+C2.10.17 C1.10.31 C1.10.34
+C2.10.18 C1.10.36 C1.10.39
+C2.10.19 C1.10.38 C1.10.41
+C2.10.20 C1.10.39 C1.10.42
+C2.10.21 C1.10.40 C1.10.43
+C2.10.22 C1.10.41 C1.10.44
+C2.10.23 C1.10.43 C1.10.45
+C2.10.24 C1.10.46 C1.09.48
+C2.10.25 C1.10.48 C1.10.50
+C2.10.26 C1.10.49 C1.10.51
+C2.10.27 C1.10.51 C1.10.52 C1.10.53 C1.10.54 C1.10.56
+C2.10.28 C1.11.54 C1.11.55 C1.10.55 C1.11.58 C1.10.57 C1.10.59
+C2.10.29 C1.10.58 C1.09.61
+C2.10.30 C1.10.60 C1.10.61
+C2.10.31 C1.10.60 C1.10.62 C1.10.61
+C2.11.00 C1.11.12 C1.11.13 C1.11.14
+C2.11.01 C1.10.13 C1.11.15 C1.11.20
+C2.11.02 C1.11.16 C1.11.21
+C2.11.03 C1.11.17 C1.11.22
+C2.11.04 C1.11.18 C1.11.23
+C2.11.05 C1.11.19 C1.11.24
+C2.11.06 C1.11.20 C1.10.24
+C2.11.07 C1.11.21 C1.11.25
+C2.11.08 C1.11.22 C1.11.26
+C2.11.09 C1.11.23 C1.11.27
+C2.11.10 C1.11.24 C1.11.28
+C2.11.11 C1.11.29 C1.11.33
+C2.11.12 C1.11.30 C1.11.34
+C2.11.13 C1.11.31 C1.11.35
+C2.11.14 C1.11.32 C1.11.36
+C2.11.15 C1.11.33 C1.10.37
+C2.11.16 C1.11.34 C1.11.37
+C2.11.17 C1.11.35 C1.11.38
+C2.11.18 C1.11.36 C1.11.39
+C2.11.19 C1.11.40 C1.11.43
+C2.11.20 C1.11.41 C1.11.44
+C2.11.21 C1.11.42 C1.11.45
+C2.11.22 C1.11.43 C1.10.47
+C2.11.23 C1.11.44 C1.11.46
+C2.11.24 C1.11.45 C1.11.47
+C2.11.25 C1.11.48 C1.11.50 C1.11.51
+C2.11.26 C1.11.49 C1.11.52 C1.11.53
+C2.11.27 C1.11.56 C1.11.59
+C2.11.28 C1.11.57 C1.11.60
+C2.11.29 C1.11.59 C1.11.61
+C2.11.30 C1.11.60 C1.11.62
+C2.12.00 C1.12.14 C1.12.13 C1.12.12
+C2.12.01 C1.12.15 C1.13.14 C1.12.20
+C2.12.02 C1.12.16 C1.12.21
+C2.12.03 C1.12.17 C1.12.22
+C2.12.04 C1.12.18 C1.12.23
+C2.12.05 C1.12.19 C1.12.24
+C2.12.06 C1.12.20 C1.13.25
+C2.12.07 C1.12.21 C1.12.25
+C2.12.08 C1.12.22 C1.12.26
+C2.12.09 C1.12.23 C1.12.27
+C2.12.10 C1.12.24 C1.12.28
+C2.12.11 C1.12.29 C1.12.33
+C2.12.12 C1.12.30 C1.12.34
+C2.12.13 C1.12.31 C1.12.35
+C2.12.14 C1.12.32 C1.12.36
+C2.12.15 C1.12.33 C1.13.38
+C2.12.16 C1.12.34 C1.12.37
+C2.12.17 C1.12.35 C1.12.38
+C2.12.18 C1.12.36 C1.12.39
+C2.12.19 C1.12.40 C1.12.43
+C2.12.20 C1.12.41 C1.12.44
+C2.12.21 C1.12.42 C1.12.45
+C2.12.22 C1.12.43 C1.13.48
+C2.12.23 C1.12.44 C1.12.46
+C2.12.24 C1.12.45 C1.12.47
+C2.12.25 C1.12.48 C1.12.51 C1.12.50
+C2.12.26 C1.12.49 C1.12.53 C1.12.52
+C2.12.27 C1.12.56 C1.12.59
+C2.12.28 C1.12.57 C1.12.60
+C2.12.29 C1.12.59 C1.12.61
+C2.12.30 C1.12.60 C1.12.62
+C2.13.00 C1.13.15
+C2.13.01 C1.13.12 C1.14.17
+C2.13.02 C1.13.14 C1.13.18
+C2.13.03 C1.13.16 C1.13.13
+C2.13.04 C1.13.14 C1.13.18
+C2.13.05 C1.13.16
+C2.13.06 C1.13.17 C1.13.21
+C2.13.07 C1.13.15 C1.13.19 C1.13.16
+C2.13.08 C1.13.18 C1.13.22
+C2.13.09 C1.13.20 C1.13.24
+C2.13.10 C1.13.23 C1.13.27
+C2.13.11 C1.13.24 C1.13.28
+C2.13.12 C1.13.26 C1.13.30
+C2.13.13 C1.13.29 C1.13.32
+C2.13.14 C1.13.27 C1.13.31
+C2.13.15 C1.13.30 C1.13.33
+C2.13.16 C1.13.34 C1.13.36
+C2.13.17 C1.13.32 C1.13.35
+C2.13.18 C1.13.37 C1.13.40
+C2.13.19 C1.13.39 C1.13.42
+C2.13.20 C1.13.40 C1.13.43
+C2.13.21 C1.13.41 C1.13.44
+C2.13.22 C1.13.42 C1.13.45
+C2.13.23 C1.13.44 C1.13.46
+C2.13.24 C1.13.47 C1.14.48
+C2.13.25 C1.13.49 C1.13.51
+C2.13.26 C1.13.50 C1.13.52
+C2.13.27 C1.13.52 C1.13.54 C1.13.53 C1.13.57 C1.13.55
+C2.13.28 C1.12.55 C1.12.54 C1.12.58 C1.13.56 C1.13.60 C1.13.58
+C2.13.29 C1.13.59 C1.14.56
+C2.13.30 C1.13.61 C1.13.59 C1.14.61
+C2.13.31 C1.13.62 C1.13.61
+C2.14.00 C1.14.17
+C2.14.01 C1.14.15
+C2.14.02 C1.14.14 C1.14.16
+C2.14.03 C1.14.17
+C2.14.04 C1.14.16 C1.14.19
+C2.14.05 C1.14.17 C1.14.12 C1.14.20 C1.14.15
+C2.14.06 C1.14.18 C1.14.22
+C2.14.07 C1.14.22 C1.14.24
+C2.14.08 C1.13.21 C1.14.25
+C2.14.09 C1.14.23 C1.14.27
+C2.14.10 C1.14.26 C1.15.28
+C2.14.11 C1.14.27 C1.14.29
+C2.14.12 C1.14.28 C1.14.30
+C2.14.13 C1.14.31 C1.14.33
+C2.14.14 C1.14.32 C1.14.35
+C2.14.15 C1.14.30 C1.14.34
+C2.14.16 C1.14.36 C1.14.38
+C2.14.17 C1.14.35 C1.14.37
+C2.14.18 C1.14.39 C1.14.41
+C2.14.19 C1.13.36 C1.14.40
+C2.14.20 C1.14.41 C1.15.41
+C2.14.21 C1.14.42 C1.14.43
+C2.14.22 C1.14.43 C1.14.45
+C2.14.23 C1.14.44 C1.14.46
+C2.14.24 C1.14.46 C1.14.47
+C2.14.25 C1.14.48 C1.14.49
+C2.14.26 C1.14.50 C1.15.51
+C2.14.27 C1.13.51 C1.14.51
+C2.14.28 C1.14.54 C1.14.52 C1.14.55 C1.14.53 C1.14.57 C1.15.53
+C2.14.29 C1.14.60 C1.14.58
+C2.14.30 C1.14.61 C1.14.59 C1.14.62
+C2.14.31 C1.14.61 C1.14.60 C1.14.62
+C2.15.00 C1.15.14 C1.15.15
+C2.15.01 C1.15.16
+C2.15.02 C1.15.15 C1.15.16
+C2.15.03 C1.14.13 C1.15.17 C1.15.18
+C2.15.04 C1.15.18 C1.15.19
+C2.15.05 C1.15.20 C1.15.21
+C2.15.06 C1.15.21 C1.15.22
+C2.15.07 C1.14.21 C1.15.23
+C2.15.08 C1.15.23 C1.15.24
+C2.15.09 C1.15.25 C1.15.26
+C2.15.10 C1.15.26 C1.15.27
+C2.15.11 C1.15.28 C1.15.29
+C2.15.12 C1.15.30 C1.15.31
+C2.15.13 C1.15.31 C1.15.32
+C2.15.14 C1.14.33 C1.15.33
+C2.15.15 C1.15.34 C1.15.35
+C2.15.16 C1.15.35 C1.15.36
+C2.15.17 C1.14.38 C1.15.37
+C2.15.18 C1.15.38 C1.15.39
+C2.15.19 C1.15.39 C1.15.40
+C2.15.20 C1.15.42 C1.15.43
+C2.15.21 C1.15.43 C1.15.44
+C2.15.22 C1.15.45 C1.15.46
+C2.15.23 C1.15.46 C1.15.47
+C2.15.24 C1.15.48 C1.15.49
+C2.15.25 C1.15.49 C1.15.50
+C2.15.26 C1.15.51 C1.15.52
+C2.15.27 C1.15.57 C1.15.54 C1.15.58 C1.15.55 C1.15.59 C1.15.56
+C2.15.28 C1.15.60 C1.15.61
+C2.15.29 C1.15.61 C1.15.62
+C3.00.00 C2.00.06
+C3.00.01 C2.00.11 C2.00.08 C2.01.10 C2.00.07
+C3.00.02 C2.00.12 C2.00.09 C2.00.05 C2.00.08
+C3.00.03 C2.00.13 C2.00.10
+C3.00.04 C2.00.14 C2.00.11
+C3.00.05 C2.00.15 C2.00.12
+C3.00.06 C2.00.16 C2.00.13
+C3.00.07 C2.01.20 C2.00.17
+C3.00.08 C2.00.20 C2.00.18
+C3.00.09 C2.00.21 C2.00.19
+C3.00.10 C2.00.22 C2.00.20
+C3.00.11 C2.00.23 C2.00.21
+C3.00.12 C2.01.26 C2.00.24
+C3.00.13 C2.00.26 C2.00.25
+C3.00.14 C2.00.27 C2.00.26
+C3.00.15 C2.00.29 C2.00.28
+C3.01.00 C2.01.11 C2.01.07 C2.01.09 C2.01.06 C2.01.08 C2.01.05
+C3.01.01 C2.01.10 C2.01.11 C2.01.07
+C3.01.02 C2.01.14 C2.01.12 C2.02.11 C2.01.08
+C3.01.03 C2.01.13 C2.01.10
+C3.01.04 C2.01.17 C2.01.15 C2.01.14 C2.01.12
+C3.01.05 C2.01.18 C2.01.16
+C3.01.06 C2.01.19 C2.01.17 C2.02.16 C2.01.14
+C3.01.07 C2.01.21 C2.01.18
+C3.01.08 C2.01.22 C2.01.20
+C3.01.09 C2.02.24 C2.01.23
+C3.01.10 C2.01.25 C2.01.24
+C3.01.11 C2.01.27 C2.01.25
+C3.01.12 C2.01.28 C2.01.26
+C3.01.13 C2.02.29 C2.01.29
+C3.01.14 C2.00.28 C2.01.31 C2.01.30
+C3.01.15 C2.01.31 C2.01.30 C2.02.30 C2.02.29
+C3.02.00 C2.02.11 C2.01.08 C2.02.09 C2.02.06
+C3.02.01 C2.02.12 C2.02.10 C2.02.09 C2.02.08 C2.02.07
+C3.02.02 C2.02.13 C2.02.12 C2.03.06 C2.02.08
+C3.02.03 C2.02.14 C2.02.11 C2.02.10 C2.02.09
+C3.02.04 C2.02.17 C2.02.15 C2.02.13 C2.02.12
+C3.02.05 C2.02.16 C2.01.14 C2.02.14 C2.02.11
+C3.02.06 C2.03.15 C2.02.17 C2.03.11 C2.02.13
+C3.02.07 C2.02.19 C2.02.18 C2.02.17 C2.02.15
+C3.02.08 C2.02.21 C2.02.19 C2.03.15 C2.02.17
+C3.02.09 C2.02.22 C2.02.20 C2.02.19 C2.02.18
+C3.02.10 C2.02.23 C2.02.22 C2.02.21 C2.02.19
+C3.02.11 C2.02.25 C2.02.24
+C3.02.12 C2.03.25 C2.02.26
+C3.02.13 C2.02.28 C2.02.27
+C3.02.14 C2.02.30 C2.02.29 C2.02.31
+C3.03.00 C2.03.05 C2.03.04
+C3.03.01 C2.03.05
+C3.03.02 C2.03.08 C2.03.07 C2.03.06 C2.03.03 C2.03.02
+C3.03.03 C2.03.09 C2.03.08 C2.03.04 C2.03.03
+C3.03.04 C2.03.10 C2.03.09 C2.03.05 C2.03.04
+C3.03.05 C2.03.11 C2.02.13 C2.03.07 C2.03.06
+C3.03.06 C2.03.13 C2.03.12 C2.03.09 C2.03.08
+C3.03.07 C2.03.14 C2.03.13 C2.03.10 C2.03.09
+C3.03.08 C2.03.17 C2.03.16 C2.03.13 C2.03.12
+C3.03.09 C2.03.18 C2.03.17 C2.03.14 C2.03.13
+C3.03.10 C2.03.20 C2.03.19 C2.03.17 C2.03.16
+C3.03.11 C2.03.21 C2.03.20 C2.03.18 C2.03.17
+C3.03.12 C2.03.23 C2.03.22 C2.03.20 C2.03.19
+C3.03.13 C2.03.24 C2.03.23 C2.03.21 C2.03.20
+C3.03.14 C2.03.26 C2.03.25
+C3.03.15 C2.03.30 C2.03.29 C2.02.28 C2.03.28 C2.03.27
+C3.04.00 C2.04.04 C2.04.05
+C3.04.01 C2.04.05
+C3.04.02 C2.04.06 C2.04.07 C2.04.08 C2.04.02 C2.04.03
+C3.04.03 C2.04.08 C2.04.09 C2.04.03 C2.04.04
+C3.04.04 C2.04.09 C2.04.10 C2.04.04 C2.04.05
+C3.04.05 C2.05.13 C2.04.11 C2.04.06 C2.04.07
+C3.04.06 C2.04.12 C2.04.13 C2.04.08 C2.04.09
+C3.04.07 C2.04.13 C2.04.14 C2.04.09 C2.04.10
+C3.04.08 C2.04.16 C2.04.17 C2.04.12 C2.04.13
+C3.04.09 C2.04.17 C2.04.18 C2.04.13 C2.04.14
+C3.04.10 C2.04.19 C2.04.20 C2.04.16 C2.04.17
+C3.04.11 C2.04.20 C2.04.21 C2.04.17 C2.04.18
+C3.04.12 C2.04.22 C2.04.23 C2.04.19 C2.04.20
+C3.04.13 C2.04.23 C2.04.24 C2.04.20 C2.04.21
+C3.04.14 C2.04.25 C2.04.26
+C3.04.15 C2.05.28 C2.04.29 C2.04.30 C2.04.27 C2.04.28
+C3.05.00 C2.06.08 C2.05.11 C2.05.06 C2.05.09 C2.05.10
+C3.05.01 C2.05.12 C2.05.13 C2.05.07 C2.05.08 C2.04.06
+C3.05.02 C2.05.10 C2.05.12 C2.05.13 C2.05.07
+C3.05.03 C2.05.11 C2.05.14 C2.05.09 C2.05.10
+C3.05.04 C2.05.15 C2.05.17 C2.05.12 C2.05.13
+C3.05.05 C2.06.14 C2.05.16 C2.05.11 C2.05.14
+C3.05.06 C2.05.17 C2.04.15 C2.05.13 C2.04.11
+C3.05.07 C2.05.18 C2.05.19 C2.05.15 C2.05.17
+C3.05.08 C2.05.19 C2.05.21 C2.05.17 C2.04.15
+C3.05.09 C2.05.20 C2.05.22 C2.05.18 C2.05.19
+C3.05.10 C2.05.22 C2.05.23 C2.05.19 C2.05.21
+C3.05.11 C2.05.24 C2.05.25
+C3.05.12 C2.05.26 C2.04.25
+C3.05.13 C2.05.27 C2.05.28
+C3.05.14 C2.06.31 C2.06.29 C2.05.30 C2.05.29
+C3.05.15 C2.05.30 C2.05.31
+C3.06.00 C2.07.07 C2.06.10
+C3.06.01 C2.06.11 C2.06.09 C2.06.05 C2.06.08
+C3.06.02 C2.06.10 C2.06.07 C2.06.11 C2.06.06 C2.06.09
+C3.06.03 C2.06.12 C2.06.14 C2.06.08 C2.05.11
+C3.06.04 C2.06.10 C2.06.13
+C3.06.05 C2.06.15 C2.06.17 C2.06.12 C2.06.14
+C3.06.06 C2.06.16 C2.06.18
+C3.06.07 C2.06.17 C2.06.19 C2.06.14 C2.05.16
+C3.06.08 C2.06.18 C2.06.21
+C3.06.09 C2.06.20 C2.06.22
+C3.06.10 C2.06.23 C2.05.24
+C3.06.11 C2.06.24 C2.06.25
+C3.06.12 C2.06.25 C2.06.27
+C3.06.13 C2.06.26 C2.06.28
+C3.06.14 C2.06.30 C2.06.29 C2.05.29
+C3.06.15 C2.07.28 C2.06.31 C2.06.30
+C3.07.00 C2.07.06
+C3.07.01 C2.07.08 C2.07.11 C2.07.07 C2.06.10
+C3.07.02 C2.07.05 C2.07.09 C2.07.12
+C3.07.03 C2.07.10 C2.07.13
+C3.07.04 C2.07.11 C2.07.14
+C3.07.05 C2.07.12 C2.07.15
+C3.07.06 C2.07.13 C2.07.16
+C3.07.07 C2.07.17 C2.06.20
+C3.07.08 C2.07.18 C2.07.20
+C3.07.09 C2.07.19 C2.07.21
+C3.07.10 C2.07.20 C2.07.22
+C3.07.11 C2.07.21 C2.07.23
+C3.07.12 C2.07.24 C2.06.26
+C3.07.13 C2.07.25 C2.07.26
+C3.07.14 C2.07.26 C2.07.27
+C3.07.15 C2.07.29 C2.07.28
+C3.08.00 C2.08.06
+C3.08.01 C2.08.07 C2.09.10 C2.08.08 C2.08.11
+C3.08.02 C2.08.08 C2.08.05 C2.08.09 C2.08.12
+C3.08.03 C2.08.10 C2.08.13
+C3.08.04 C2.08.11 C2.08.14
+C3.08.05 C2.08.12 C2.08.15
+C3.08.06 C2.08.13 C2.08.16
+C3.08.07 C2.08.17 C2.09.20
+C3.08.08 C2.08.18 C2.08.20
+C3.08.09 C2.08.19 C2.08.21
+C3.08.10 C2.08.20 C2.08.22
+C3.08.11 C2.08.21 C2.08.23
+C3.08.12 C2.08.24 C2.09.26
+C3.08.13 C2.08.25 C2.08.26
+C3.08.14 C2.08.26 C2.08.27
+C3.08.15 C2.08.28 C2.08.29
+C3.09.00 C2.09.05 C2.09.08 C2.09.06 C2.09.09 C2.09.07 C2.09.11
+C3.09.01 C2.09.07 C2.09.11 C2.09.10
+C3.09.02 C2.09.08 C2.10.11 C2.09.12 C2.09.14
+C3.09.03 C2.09.10 C2.09.13
+C3.09.04 C2.09.12 C2.09.14 C2.09.15 C2.09.17
+C3.09.05 C2.09.16 C2.09.18
+C3.09.06 C2.09.14 C2.10.16 C2.09.17 C2.09.19
+C3.09.07 C2.09.18 C2.09.21
+C3.09.08 C2.09.20 C2.09.22
+C3.09.09 C2.09.23 C2.10.24
+C3.09.10 C2.09.24 C2.09.25
+C3.09.11 C2.09.25 C2.09.27
+C3.09.12 C2.09.26 C2.09.28
+C3.09.13 C2.09.29 C2.10.29
+C3.09.14 C2.09.30 C2.09.31 C2.08.28
+C3.09.15 C2.10.29 C2.10.30 C2.09.30 C2.09.31
+C3.10.00 C2.10.06 C2.10.09 C2.09.08 C2.10.11
+C3.10.01 C2.10.07 C2.10.08 C2.10.09 C2.10.10 C2.10.12
+C3.10.02 C2.10.08 C2.11.06 C2.10.12 C2.10.13
+C3.10.03 C2.10.09 C2.10.10 C2.10.11 C2.10.14
+C3.10.04 C2.10.12 C2.10.13 C2.10.15 C2.10.17
+C3.10.05 C2.10.11 C2.10.14 C2.09.14 C2.10.16
+C3.10.06 C2.10.13 C2.11.11 C2.10.17 C2.11.15
+C3.10.07 C2.10.15 C2.10.17 C2.10.18 C2.10.19
+C3.10.08 C2.10.17 C2.11.15 C2.10.19 C2.10.21
+C3.10.09 C2.10.18 C2.10.19 C2.10.20 C2.10.22
+C3.10.10 C2.10.19 C2.10.21 C2.10.22 C2.10.23
+C3.10.11 C2.10.24 C2.10.25
+C3.10.12 C2.10.26 C2.11.25
+C3.10.13 C2.10.27 C2.10.28
+C3.10.14 C2.10.29 C2.10.30 C2.10.31
+C3.11.00 C2.11.04 C2.11.05
+C3.11.01 C2.11.05
+C3.11.02 C2.11.02 C2.11.03 C2.11.06 C2.11.07 C2.11.08
+C3.11.03 C2.11.03 C2.11.04 C2.11.08 C2.11.09
+C3.11.04 C2.11.04 C2.11.05 C2.11.09 C2.11.10
+C3.11.05 C2.11.06 C2.11.07 C2.10.13 C2.11.11
+C3.11.06 C2.11.08 C2.11.09 C2.11.12 C2.11.13
+C3.11.07 C2.11.09 C2.11.10 C2.11.13 C2.11.14
+C3.11.08 C2.11.12 C2.11.13 C2.11.16 C2.11.17
+C3.11.09 C2.11.13 C2.11.14 C2.11.17 C2.11.18
+C3.11.10 C2.11.16 C2.11.17 C2.11.19 C2.11.20
+C3.11.11 C2.11.17 C2.11.18 C2.11.20 C2.11.21
+C3.11.12 C2.11.19 C2.11.20 C2.11.22 C2.11.23
+C3.11.13 C2.11.20 C2.11.21 C2.11.23 C2.11.24
+C3.11.14 C2.11.25 C2.11.26
+C3.11.15 C2.10.28 C2.11.27 C2.11.28 C2.11.29 C2.11.30
+C3.12.00 C2.12.05 C2.12.04
+C3.12.01 C2.12.05
+C3.12.02 C2.12.03 C2.12.02 C2.12.08 C2.12.07 C2.12.06
+C3.12.03 C2.12.04 C2.12.03 C2.12.09 C2.12.08
+C3.12.04 C2.12.05 C2.12.04 C2.12.10 C2.12.09
+C3.12.05 C2.12.07 C2.12.06 C2.12.11 C2.13.13
+C3.12.06 C2.12.09 C2.12.08 C2.12.13 C2.12.12
+C3.12.07 C2.12.10 C2.12.09 C2.12.14 C2.12.13
+C3.12.08 C2.12.13 C2.12.12 C2.12.17 C2.12.16
+C3.12.09 C2.12.14 C2.12.13 C2.12.18 C2.12.17
+C3.12.10 C2.12.17 C2.12.16 C2.12.20 C2.12.19
+C3.12.11 C2.12.18 C2.12.17 C2.12.21 C2.12.20
+C3.12.12 C2.12.20 C2.12.19 C2.12.23 C2.12.22
+C3.12.13 C2.12.21 C2.12.20 C2.12.24 C2.12.23
+C3.12.14 C2.12.26 C2.12.25
+C3.12.15 C2.12.28 C2.12.27 C2.13.28 C2.12.30 C2.12.29
+C3.13.00 C2.13.10 C2.13.09 C2.13.06 C2.13.11 C2.14.08
+C3.13.01 C2.12.06 C2.13.08 C2.13.07 C2.13.13 C2.13.12
+C3.13.02 C2.13.07 C2.13.13 C2.13.12 C2.13.10
+C3.13.03 C2.13.10 C2.13.09 C2.13.14 C2.13.11
+C3.13.04 C2.13.13 C2.13.12 C2.13.17 C2.13.15
+C3.13.05 C2.13.14 C2.13.11 C2.13.16 C2.14.14
+C3.13.06 C2.12.11 C2.13.13 C2.12.15 C2.13.17
+C3.13.07 C2.13.17 C2.13.15 C2.13.19 C2.13.18
+C3.13.08 C2.12.15 C2.13.17 C2.13.21 C2.13.19
+C3.13.09 C2.13.19 C2.13.18 C2.13.22 C2.13.20
+C3.13.10 C2.13.21 C2.13.19 C2.13.23 C2.13.22
+C3.13.11 C2.13.25 C2.13.24
+C3.13.12 C2.12.25 C2.13.26
+C3.13.13 C2.13.28 C2.13.27
+C3.13.14 C2.13.30 C2.13.29 C2.14.31 C2.14.29
+C3.13.15 C2.13.31 C2.13.30
+C3.14.00 C2.14.10 C2.15.07
+C3.14.01 C2.14.08 C2.14.05 C2.14.09 C2.14.11
+C3.14.02 C2.14.09 C2.14.06 C2.14.11 C2.14.07 C2.14.10
+C3.14.03 C2.13.11 C2.14.08 C2.14.14 C2.14.12
+C3.14.04 C2.14.13 C2.14.10
+C3.14.05 C2.14.14 C2.14.12 C2.14.17 C2.14.15
+C3.14.06 C2.14.18 C2.14.16
+C3.14.07 C2.13.16 C2.14.14 C2.14.19 C2.14.17
+C3.14.08 C2.14.21 C2.14.18
+C3.14.09 C2.14.22 C2.14.20
+C3.14.10 C2.13.24 C2.14.23
+C3.14.11 C2.14.25 C2.14.24
+C3.14.12 C2.14.27 C2.14.25
+C3.14.13 C2.14.28 C2.14.26
+C3.14.14 C2.13.29 C2.14.29 C2.14.30
+C3.14.15 C2.14.31 C2.14.30 C2.15.28
+C3.15.00 C2.15.06
+C3.15.01 C2.14.10 C2.15.07 C2.15.11 C2.15.08
+C3.15.02 C2.15.12 C2.15.09 C2.15.05
+C3.15.03 C2.15.13 C2.15.10
+C3.15.04 C2.15.14 C2.15.11
+C3.15.05 C2.15.15 C2.15.12
+C3.15.06 C2.15.16 C2.15.13
+C3.15.07 C2.14.20 C2.15.17
+C3.15.08 C2.15.20 C2.15.18
+C3.15.09 C2.15.21 C2.15.19
+C3.15.10 C2.15.22 C2.15.20
+C3.15.11 C2.15.23 C2.15.21
+C3.15.12 C2.14.26 C2.15.24
+C3.15.13 C2.15.26 C2.15.25
+C3.15.14 C2.15.27 C2.15.26
+C3.15.15 C2.15.28 C2.15.29
diff --git a/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev_H6.txt b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev_H6.txt
new file mode 100755
index 0000000000000000000000000000000000000000..ee97bcf6c64390b3112a9f425317dc2345e58290
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCal3DNeighborsPrev_H6.txt
@@ -0,0 +1,115 @@
+# 3D FCal Neighbors Prev in Sampling for the H6 Beam Test 2004
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Mar 10 11:16:32 2004
+#
+# 3d neighbors prev in sampling are all cells touching the same
+# eta phi area in the prev sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without prev sampling neighbors are not listed.
+#
+A2.04.00 A1.04.09
+A2.04.01 A1.04.07
+A2.04.02 A1.04.07 A1.05.13
+A2.04.03 A1.04.10
+A2.04.04 A1.04.10
+A2.04.05 A1.05.18
+A2.04.08 A1.04.09 A1.04.12
+A2.04.09 A1.04.08 A1.04.11
+A2.04.12 A1.04.12 A1.04.14 A1.04.16
+A2.04.13 A1.04.11 A1.04.13 A1.04.15
+A2.04.14 A1.04.10 A1.05.25 A1.05.29
+A2.04.17 A1.04.16 A1.04.18
+A2.04.18 A1.04.15 A1.04.17
+A2.04.21 A1.04.18 A1.04.19
+A2.04.22 A1.04.17 A1.05.38
+A2.04.24 A1.04.21 A1.04.23
+A2.04.25 A1.04.20 A1.04.22
+A2.04.27 A1.04.23 A1.04.24
+A2.04.28 A1.04.22 A1.05.48
+A2.04.30 A1.04.25 A1.04.26
+A2.04.31 A1.04.28 A1.04.29
+A2.05.00 A1.05.18
+A2.05.01 A1.05.15
+A2.05.02 A1.05.15 A1.05.19
+A2.05.03 A1.05.15 A1.05.16 A1.05.19
+A2.05.04 A1.05.19 A1.05.23
+A2.05.05 A1.05.19 A1.05.23
+A2.05.06 A1.05.16 A1.05.20
+A2.05.07 A1.05.16 A1.05.17 A1.05.20
+A2.05.08 A1.05.18 A1.05.22 A1.05.26
+A2.05.09 A1.05.29 A1.05.32
+A2.05.10 A1.05.26 A1.05.30
+A2.05.11 A1.05.23 A1.05.27
+A2.05.12 A1.05.20 A1.05.24
+A2.05.13 A1.05.17 A1.05.21
+A2.05.14 A1.05.27 A1.05.31
+A2.05.15 A1.05.24 A1.05.28
+A2.05.16 A1.05.32 A1.05.35
+A2.05.17 A1.05.30 A1.05.33
+A2.05.18 A1.05.41 A1.05.44
+A2.05.19 A1.05.39 A1.05.42
+A2.05.20 A1.05.37 A1.05.40
+A2.05.21 A1.05.34 A1.05.36
+A2.05.22 A1.05.44 A1.05.46
+A2.05.23 A1.05.42 A1.05.45
+A2.05.24 A1.05.40 A1.05.43
+A2.05.25 A1.05.50 A1.05.52
+A2.05.26 A1.05.49 A1.05.51
+A2.05.27 A1.05.47 A1.06.48
+A2.05.28 A1.04.26 A1.04.27 A1.05.56 A1.05.58 A1.05.60
+A2.05.29 A1.05.52 A1.05.53 A1.05.54 A1.05.55 A1.05.57
+A2.05.30 A1.05.61 A1.05.62 A1.05.63
+A2.05.31 A1.05.61 A1.05.62
+A2.06.00 A1.05.14
+A2.06.01 A1.06.17
+A2.06.02 A1.06.12 A1.06.15
+A2.06.03 A1.06.15
+A2.06.04 A1.06.11 A1.06.16
+A2.06.05 A1.05.21 A1.06.25
+A2.06.06 A1.06.17 A1.06.20
+A2.06.07 A1.06.32 A1.06.35
+A2.06.08 A1.06.28 A1.06.30
+A2.06.09 A1.06.23 A1.06.27
+A2.06.10 A1.06.14 A1.06.18 A1.06.22
+A2.06.11 A1.06.30 A1.06.34
+A2.06.12 A1.06.27 A1.06.29
+A2.06.13 A1.06.22 A1.06.24
+A2.06.14 A1.06.11 A1.06.13 A1.06.16 A1.06.19
+A2.06.15 A1.07.13 A1.06.26
+A2.06.16 A1.05.36 A1.06.40
+A2.06.17 A1.06.35 A1.06.37
+A2.06.18 A1.06.44 A1.06.46
+A2.06.19 A1.06.42 A1.06.43
+A2.06.20 A1.06.39 A1.06.41
+A2.06.21 A1.06.36 A1.06.38
+A2.06.22 A1.06.31 A1.06.33
+A2.06.23 A1.05.51 A1.06.51
+A2.06.24 A1.06.48 A1.06.49
+A2.06.25 A1.06.46 A1.06.47
+A2.06.26 A1.06.43 A1.06.45
+A2.06.27 A1.07.20 A1.06.41
+A2.06.28 A1.06.57 A1.05.59 A1.06.59 A1.06.60 A1.06.61 A1.06.62
+A2.06.29 A1.06.52 A1.06.53 A1.06.54 A1.06.55 A1.06.56 A1.06.58
+A2.06.30 A1.07.26 A1.06.50
+A2.07.03 A1.07.04 A1.07.05 A1.07.07 A1.07.08 A1.06.13
+A2.07.04 A1.07.05 A1.07.06 A1.07.08 A1.07.09
+A2.07.07 A1.07.07 A1.07.08 A1.07.10 A1.06.21
+A2.07.08 A1.07.08 A1.07.09 A1.07.10 A1.07.11
+A2.07.09 A1.07.12
+A2.07.11 A1.07.13 A1.07.14
+A2.07.12 A1.07.15
+A2.07.14 A1.07.16 A1.06.33
+A2.07.15 A1.07.17
+A2.07.17 A1.07.18 A1.06.38
+A2.07.18 A1.07.19
+A2.07.20 A1.07.21
+A2.07.22 A1.07.22 A1.07.23
+A2.07.23 A1.07.23
+A2.07.24 A1.07.24 A1.07.25
+A2.07.25 A1.07.25
+A2.07.26 A1.07.26
+A2.07.27 A1.07.27 A1.07.28 A1.07.29
+A2.07.28 A1.07.30 A1.07.31
+A2.07.29 A1.07.31
diff --git a/Calorimeter/CaloIdentifier/share/FCalSuperCells2DNeighborsNew-April2014.txt b/Calorimeter/CaloIdentifier/share/FCalSuperCells2DNeighborsNew-April2014.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7b13972534e60b8b01ae4ca8cf0d39ee8118198d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCalSuperCells2DNeighborsNew-April2014.txt
@@ -0,0 +1,779 @@
+# 2D SuperCell FCal Neighbors
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Mon Apr 21 14:47:12 2014
+#
+# 2d neighbors are all touching neighbors including corners.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cell names are similar to normal cells with 'S' instead of 'A'
+# for the A-side super cells and 'U' = 'S'+2 for C-side cells.
+#
+U1.00.00 U1.00.01 U1.01.00 U1.15.00 U1.15.01
+U1.00.01 U1.00.00 U1.00.02 U1.00.03 U1.01.00 U1.01.01 U1.01.02 U1.15.00 U1.15.01 U1.15.03
+U1.00.02 U1.00.01 U1.00.03 U1.00.04 U1.15.01 U1.15.03 U1.15.04
+U1.00.03 U1.00.01 U1.00.02 U1.00.04 U1.00.05 U1.01.01 U1.01.02 U1.01.03 U1.01.04
+U1.00.04 U1.00.02 U1.00.03 U1.00.05 U1.00.06 U1.01.04 U1.01.05 U1.15.03 U1.15.04 U1.15.05
+U1.00.05 U1.00.03 U1.00.04 U1.00.06 U1.00.07 U1.01.04 U1.01.05 U1.01.06 U1.15.04 U1.15.05 U1.15.06
+U1.00.06 U1.00.04 U1.00.05 U1.00.07 U1.01.05 U1.01.06 U1.01.07 U1.15.05 U1.15.06 U1.15.07
+U1.00.07 U1.00.05 U1.00.06 U1.00.08 U1.01.07 U1.15.06 U1.15.07 U1.15.08
+U1.00.08 U1.00.07 U1.00.09 U1.01.07 U1.01.08 U1.01.09 U1.15.08 U1.15.09
+U1.00.09 U1.00.08 U1.00.10 U1.01.08 U1.01.09 U1.01.10 U1.15.08 U1.15.09 U1.15.10
+U1.00.10 U1.00.09 U1.00.11 U1.01.10 U1.15.09 U1.15.10 U1.15.11
+U1.00.11 U1.00.10 U1.01.10 U1.01.11 U1.15.10 U1.15.11
+U1.01.00 U1.00.00 U1.00.01 U1.01.01 U1.02.00
+U1.01.01 U1.00.01 U1.00.03 U1.01.00 U1.01.02 U1.01.03 U1.02.00 U1.02.01
+U1.01.02 U1.00.01 U1.00.03 U1.01.01 U1.01.03 U1.01.04 U1.02.01 U1.02.02 U1.02.03
+U1.01.03 U1.00.03 U1.01.01 U1.01.02 U1.01.04 U1.01.05 U1.02.03
+U1.01.04 U1.00.03 U1.00.04 U1.00.05 U1.01.02 U1.01.03 U1.01.05 U1.01.06 U1.02.03 U1.02.04 U1.02.05
+U1.01.05 U1.00.04 U1.00.05 U1.00.06 U1.01.03 U1.01.04 U1.01.06 U1.02.05
+U1.01.06 U1.00.05 U1.00.06 U1.01.04 U1.01.05 U1.01.07 U1.02.05 U1.02.06
+U1.01.07 U1.00.06 U1.00.07 U1.00.08 U1.01.06 U1.01.08 U1.02.06 U1.02.07
+U1.01.08 U1.00.08 U1.00.09 U1.01.07 U1.01.09 U1.01.10 U1.02.07 U1.02.08 U1.02.09
+U1.01.09 U1.00.08 U1.00.09 U1.01.08 U1.01.10 U1.02.09
+U1.01.10 U1.00.09 U1.00.10 U1.00.11 U1.01.08 U1.01.09 U1.01.11 U1.02.09 U1.02.10
+U1.01.11 U1.00.11 U1.01.10 U1.02.10 U1.02.11
+U1.02.00 U1.01.00 U1.01.01 U1.02.01 U1.03.00 U1.03.01
+U1.02.01 U1.01.01 U1.01.02 U1.02.00 U1.02.02 U1.02.03 U1.03.00 U1.03.01
+U1.02.02 U1.01.02 U1.02.01 U1.02.03 U1.02.04 U1.03.01 U1.03.02 U1.03.03
+U1.02.03 U1.01.02 U1.01.03 U1.01.04 U1.02.01 U1.02.02 U1.02.04 U1.02.05 U1.03.02 U1.03.03 U1.03.04
+U1.02.04 U1.01.04 U1.02.02 U1.02.03 U1.02.05 U1.02.06 U1.03.03 U1.03.04
+U1.02.05 U1.01.04 U1.01.05 U1.01.06 U1.02.03 U1.02.04 U1.02.06 U1.02.07 U1.03.04 U1.03.05 U1.03.06
+U1.02.06 U1.01.06 U1.01.07 U1.02.04 U1.02.05 U1.02.07 U1.03.05 U1.03.06
+U1.02.07 U1.01.07 U1.01.08 U1.02.05 U1.02.06 U1.02.08 U1.03.06
+U1.02.08 U1.01.08 U1.02.07 U1.02.09 U1.03.06 U1.03.07 U1.03.08
+U1.02.09 U1.01.08 U1.01.09 U1.01.10 U1.02.08 U1.02.10 U1.03.08 U1.03.09
+U1.02.10 U1.01.10 U1.01.11 U1.02.09 U1.02.11 U1.03.09 U1.03.10
+U1.02.11 U1.01.11 U1.02.10 U1.03.10 U1.03.11
+U1.03.00 U1.02.00 U1.02.01 U1.03.01 U1.04.00 U1.04.01
+U1.03.01 U1.02.00 U1.02.01 U1.02.02 U1.03.00 U1.03.02 U1.03.03 U1.04.00 U1.04.01 U1.04.02
+U1.03.02 U1.02.02 U1.02.03 U1.03.01 U1.03.03 U1.03.04 U1.04.01 U1.04.02 U1.04.03
+U1.03.03 U1.02.02 U1.02.03 U1.02.04 U1.03.01 U1.03.02 U1.03.04 U1.03.05 U1.04.02 U1.04.03 U1.04.04
+U1.03.04 U1.02.03 U1.02.04 U1.02.05 U1.03.02 U1.03.03 U1.03.05 U1.04.03 U1.04.04 U1.04.05
+U1.03.05 U1.02.05 U1.02.06 U1.03.03 U1.03.04 U1.03.06 U1.04.04 U1.04.05 U1.04.06
+U1.03.06 U1.02.05 U1.02.06 U1.02.07 U1.02.08 U1.03.05 U1.03.07 U1.04.05 U1.04.06 U1.04.07
+U1.03.07 U1.02.08 U1.03.06 U1.03.08 U1.04.06 U1.04.07 U1.04.08
+U1.03.08 U1.02.08 U1.02.09 U1.03.07 U1.03.09 U1.03.10 U1.04.07 U1.04.08 U1.04.09
+U1.03.09 U1.02.09 U1.02.10 U1.03.08 U1.03.10 U1.04.08 U1.04.09 U1.04.10
+U1.03.10 U1.02.10 U1.02.11 U1.03.08 U1.03.09 U1.03.11 U1.04.09 U1.04.10 U1.04.11
+U1.03.11 U1.02.11 U1.03.10 U1.04.10 U1.04.11
+U1.04.00 U1.03.00 U1.03.01 U1.04.01 U1.05.00 U1.05.01
+U1.04.01 U1.03.00 U1.03.01 U1.03.02 U1.04.00 U1.04.02 U1.04.03 U1.05.00 U1.05.01 U1.05.02
+U1.04.02 U1.03.01 U1.03.02 U1.03.03 U1.04.01 U1.04.03 U1.04.04 U1.05.02 U1.05.03
+U1.04.03 U1.03.02 U1.03.03 U1.03.04 U1.04.01 U1.04.02 U1.04.04 U1.04.05 U1.05.02 U1.05.03
+U1.04.04 U1.03.03 U1.03.04 U1.03.05 U1.04.02 U1.04.03 U1.04.05 U1.05.03 U1.05.04 U1.05.05
+U1.04.05 U1.03.04 U1.03.05 U1.03.06 U1.04.03 U1.04.04 U1.04.06 U1.05.05 U1.05.06
+U1.04.06 U1.03.05 U1.03.06 U1.03.07 U1.04.05 U1.04.07 U1.05.05 U1.05.06 U1.05.07
+U1.04.07 U1.03.06 U1.03.07 U1.03.08 U1.04.06 U1.04.08 U1.05.07 U1.05.08
+U1.04.08 U1.03.07 U1.03.08 U1.03.09 U1.04.07 U1.04.09 U1.04.10 U1.05.07 U1.05.08
+U1.04.09 U1.03.08 U1.03.09 U1.03.10 U1.04.08 U1.04.10 U1.05.08 U1.05.09
+U1.04.10 U1.03.09 U1.03.10 U1.03.11 U1.04.08 U1.04.09 U1.04.11 U1.05.09 U1.05.10
+U1.04.11 U1.03.10 U1.03.11 U1.04.10 U1.05.10 U1.05.11
+U1.05.00 U1.04.00 U1.04.01 U1.05.01 U1.06.00 U1.06.01
+U1.05.01 U1.04.00 U1.04.01 U1.05.00 U1.05.02 U1.05.03 U1.06.01 U1.06.02
+U1.05.02 U1.04.01 U1.04.02 U1.04.03 U1.05.01 U1.05.03 U1.05.04 U1.06.02 U1.06.03 U1.06.04
+U1.05.03 U1.04.02 U1.04.03 U1.04.04 U1.05.01 U1.05.02 U1.05.04 U1.05.05 U1.06.04
+U1.05.04 U1.04.04 U1.05.02 U1.05.03 U1.05.05 U1.05.06 U1.06.04 U1.06.05 U1.06.06
+U1.05.05 U1.04.04 U1.04.05 U1.04.06 U1.05.03 U1.05.04 U1.05.06 U1.05.07 U1.06.06
+U1.05.06 U1.04.05 U1.04.06 U1.05.04 U1.05.05 U1.05.07 U1.06.06 U1.06.07
+U1.05.07 U1.04.06 U1.04.07 U1.04.08 U1.05.05 U1.05.06 U1.05.08 U1.06.07 U1.06.08
+U1.05.08 U1.04.07 U1.04.08 U1.04.09 U1.05.07 U1.05.09 U1.06.08
+U1.05.09 U1.04.09 U1.04.10 U1.05.08 U1.05.10 U1.06.08 U1.06.09 U1.06.10
+U1.05.10 U1.04.10 U1.04.11 U1.05.09 U1.05.11 U1.06.10 U1.06.11
+U1.05.11 U1.04.11 U1.05.10 U1.06.11
+U1.06.00 U1.05.00 U1.06.01 U1.07.00 U1.07.01
+U1.06.01 U1.05.00 U1.05.01 U1.06.00 U1.06.02 U1.06.03 U1.07.01 U1.07.02 U1.07.03
+U1.06.02 U1.05.01 U1.05.02 U1.06.01 U1.06.03 U1.06.04 U1.07.02 U1.07.03
+U1.06.03 U1.05.02 U1.06.01 U1.06.02 U1.06.04 U1.06.05 U1.07.03
+U1.06.04 U1.05.02 U1.05.03 U1.05.04 U1.06.02 U1.06.03 U1.06.05 U1.06.06 U1.07.03 U1.07.04 U1.07.05
+U1.06.05 U1.05.04 U1.06.03 U1.06.04 U1.06.06 U1.07.04 U1.07.05 U1.07.06
+U1.06.06 U1.05.04 U1.05.05 U1.05.06 U1.06.04 U1.06.05 U1.06.07 U1.07.05 U1.07.06
+U1.06.07 U1.05.06 U1.05.07 U1.06.06 U1.06.08 U1.07.06 U1.07.07 U1.07.08
+U1.06.08 U1.05.07 U1.05.08 U1.05.09 U1.06.07 U1.06.09 U1.06.10 U1.07.08 U1.07.09
+U1.06.09 U1.05.09 U1.06.08 U1.06.10 U1.07.09 U1.07.10
+U1.06.10 U1.05.09 U1.05.10 U1.06.08 U1.06.09 U1.06.11 U1.07.09 U1.07.10 U1.07.11
+U1.06.11 U1.05.10 U1.05.11 U1.06.10 U1.07.10 U1.07.11
+U1.07.00 U1.06.00 U1.07.01 U1.08.00 U1.08.01
+U1.07.01 U1.06.00 U1.06.01 U1.07.00 U1.07.02 U1.07.03 U1.08.00 U1.08.01 U1.08.02
+U1.07.02 U1.06.01 U1.06.02 U1.07.01 U1.07.03 U1.07.04
+U1.07.03 U1.06.01 U1.06.02 U1.06.03 U1.06.04 U1.07.01 U1.07.02 U1.07.04 U1.07.05 U1.08.01 U1.08.02 U1.08.04
+U1.07.04 U1.06.04 U1.06.05 U1.07.02 U1.07.03 U1.07.05 U1.07.06 U1.08.02 U1.08.04 U1.08.05
+U1.07.05 U1.06.04 U1.06.05 U1.06.06 U1.07.03 U1.07.04 U1.07.06 U1.07.07 U1.08.04 U1.08.05 U1.08.06
+U1.07.06 U1.06.05 U1.06.06 U1.06.07 U1.07.04 U1.07.05 U1.07.07 U1.08.05 U1.08.06 U1.08.07
+U1.07.07 U1.06.07 U1.07.05 U1.07.06 U1.07.08 U1.08.06 U1.08.07
+U1.07.08 U1.06.07 U1.06.08 U1.07.07 U1.07.09 U1.08.07 U1.08.08 U1.08.09
+U1.07.09 U1.06.08 U1.06.09 U1.06.10 U1.07.08 U1.07.10 U1.08.08 U1.08.09 U1.08.10
+U1.07.10 U1.06.09 U1.06.10 U1.06.11 U1.07.09 U1.07.11 U1.08.09 U1.08.10 U1.08.11
+U1.07.11 U1.06.10 U1.06.11 U1.07.10 U1.08.10 U1.08.11
+U1.08.00 U1.07.00 U1.07.01 U1.08.01 U1.09.00
+U1.08.01 U1.07.00 U1.07.01 U1.07.03 U1.08.00 U1.08.02 U1.08.03 U1.09.00 U1.09.01 U1.09.02
+U1.08.02 U1.07.01 U1.07.03 U1.07.04 U1.08.01 U1.08.03 U1.08.04
+U1.08.03 U1.08.01 U1.08.02 U1.08.04 U1.08.05 U1.09.01 U1.09.02 U1.09.03 U1.09.04
+U1.08.04 U1.07.03 U1.07.04 U1.07.05 U1.08.02 U1.08.03 U1.08.05 U1.08.06 U1.09.04 U1.09.05
+U1.08.05 U1.07.04 U1.07.05 U1.07.06 U1.08.03 U1.08.04 U1.08.06 U1.08.07 U1.09.04 U1.09.05 U1.09.06
+U1.08.06 U1.07.05 U1.07.06 U1.07.07 U1.08.04 U1.08.05 U1.08.07 U1.09.05 U1.09.06 U1.09.07
+U1.08.07 U1.07.06 U1.07.07 U1.07.08 U1.08.05 U1.08.06 U1.08.08 U1.09.07
+U1.08.08 U1.07.08 U1.07.09 U1.08.07 U1.08.09 U1.09.07 U1.09.08 U1.09.09
+U1.08.09 U1.07.08 U1.07.09 U1.07.10 U1.08.08 U1.08.10 U1.09.08 U1.09.09 U1.09.10
+U1.08.10 U1.07.09 U1.07.10 U1.07.11 U1.08.09 U1.08.11 U1.09.10
+U1.08.11 U1.07.10 U1.07.11 U1.08.10 U1.09.10 U1.09.11
+U1.09.00 U1.08.00 U1.08.01 U1.09.01 U1.10.00
+U1.09.01 U1.08.01 U1.08.03 U1.09.00 U1.09.02 U1.09.03 U1.10.00 U1.10.01
+U1.09.02 U1.08.01 U1.08.03 U1.09.01 U1.09.03 U1.09.04 U1.10.01 U1.10.02 U1.10.03
+U1.09.03 U1.08.03 U1.09.01 U1.09.02 U1.09.04 U1.09.05 U1.10.03
+U1.09.04 U1.08.03 U1.08.04 U1.08.05 U1.09.02 U1.09.03 U1.09.05 U1.09.06 U1.10.03 U1.10.04 U1.10.05
+U1.09.05 U1.08.04 U1.08.05 U1.08.06 U1.09.03 U1.09.04 U1.09.06 U1.10.05
+U1.09.06 U1.08.05 U1.08.06 U1.09.04 U1.09.05 U1.09.07 U1.10.05 U1.10.06
+U1.09.07 U1.08.06 U1.08.07 U1.08.08 U1.09.06 U1.09.08 U1.10.06 U1.10.07
+U1.09.08 U1.08.08 U1.08.09 U1.09.07 U1.09.09 U1.09.10 U1.10.07 U1.10.08 U1.10.09
+U1.09.09 U1.08.08 U1.08.09 U1.09.08 U1.09.10 U1.10.09
+U1.09.10 U1.08.09 U1.08.10 U1.08.11 U1.09.08 U1.09.09 U1.09.11 U1.10.09 U1.10.10
+U1.09.11 U1.08.11 U1.09.10 U1.10.10 U1.10.11
+U1.10.00 U1.09.00 U1.09.01 U1.10.01 U1.11.00 U1.11.01
+U1.10.01 U1.09.01 U1.09.02 U1.10.00 U1.10.02 U1.10.03 U1.11.00 U1.11.01
+U1.10.02 U1.09.02 U1.10.01 U1.10.03 U1.10.04 U1.11.01 U1.11.02 U1.11.03
+U1.10.03 U1.09.02 U1.09.03 U1.09.04 U1.10.01 U1.10.02 U1.10.04 U1.10.05 U1.11.02 U1.11.03 U1.11.04
+U1.10.04 U1.09.04 U1.10.02 U1.10.03 U1.10.05 U1.10.06 U1.11.03 U1.11.04
+U1.10.05 U1.09.04 U1.09.05 U1.09.06 U1.10.03 U1.10.04 U1.10.06 U1.10.07 U1.11.04 U1.11.05 U1.11.06
+U1.10.06 U1.09.06 U1.09.07 U1.10.04 U1.10.05 U1.10.07 U1.11.05 U1.11.06
+U1.10.07 U1.09.07 U1.09.08 U1.10.05 U1.10.06 U1.10.08 U1.11.06
+U1.10.08 U1.09.08 U1.10.07 U1.10.09 U1.11.06 U1.11.07 U1.11.08
+U1.10.09 U1.09.08 U1.09.09 U1.09.10 U1.10.08 U1.10.10 U1.11.08 U1.11.09
+U1.10.10 U1.09.10 U1.09.11 U1.10.09 U1.10.11 U1.11.09 U1.11.10
+U1.10.11 U1.09.11 U1.10.10 U1.11.10 U1.11.11
+U1.11.00 U1.10.00 U1.10.01 U1.11.01 U1.12.00 U1.12.01
+U1.11.01 U1.10.00 U1.10.01 U1.10.02 U1.11.00 U1.11.02 U1.11.03 U1.12.00 U1.12.01 U1.12.02
+U1.11.02 U1.10.02 U1.10.03 U1.11.01 U1.11.03 U1.11.04 U1.12.01 U1.12.02 U1.12.03
+U1.11.03 U1.10.02 U1.10.03 U1.10.04 U1.11.01 U1.11.02 U1.11.04 U1.11.05 U1.12.02 U1.12.03 U1.12.04
+U1.11.04 U1.10.03 U1.10.04 U1.10.05 U1.11.02 U1.11.03 U1.11.05 U1.12.03 U1.12.04 U1.12.05
+U1.11.05 U1.10.05 U1.10.06 U1.11.03 U1.11.04 U1.11.06 U1.12.04 U1.12.05 U1.12.06
+U1.11.06 U1.10.05 U1.10.06 U1.10.07 U1.10.08 U1.11.05 U1.11.07 U1.12.05 U1.12.06 U1.12.07
+U1.11.07 U1.10.08 U1.11.06 U1.11.08 U1.12.06 U1.12.07 U1.12.08
+U1.11.08 U1.10.08 U1.10.09 U1.11.07 U1.11.09 U1.11.10 U1.12.07 U1.12.08 U1.12.09
+U1.11.09 U1.10.09 U1.10.10 U1.11.08 U1.11.10 U1.12.08 U1.12.09 U1.12.10
+U1.11.10 U1.10.10 U1.10.11 U1.11.08 U1.11.09 U1.11.11 U1.12.09 U1.12.10 U1.12.11
+U1.11.11 U1.10.11 U1.11.10 U1.12.10 U1.12.11
+U1.12.00 U1.11.00 U1.11.01 U1.12.01 U1.13.00 U1.13.01
+U1.12.01 U1.11.00 U1.11.01 U1.11.02 U1.12.00 U1.12.02 U1.12.03 U1.13.00 U1.13.01 U1.13.02
+U1.12.02 U1.11.01 U1.11.02 U1.11.03 U1.12.01 U1.12.03 U1.12.04 U1.13.02 U1.13.03
+U1.12.03 U1.11.02 U1.11.03 U1.11.04 U1.12.01 U1.12.02 U1.12.04 U1.12.05 U1.13.02 U1.13.03
+U1.12.04 U1.11.03 U1.11.04 U1.11.05 U1.12.02 U1.12.03 U1.12.05 U1.13.03 U1.13.04 U1.13.05
+U1.12.05 U1.11.04 U1.11.05 U1.11.06 U1.12.03 U1.12.04 U1.12.06 U1.13.05 U1.13.06
+U1.12.06 U1.11.05 U1.11.06 U1.11.07 U1.12.05 U1.12.07 U1.13.05 U1.13.06 U1.13.07
+U1.12.07 U1.11.06 U1.11.07 U1.11.08 U1.12.06 U1.12.08 U1.13.07 U1.13.08
+U1.12.08 U1.11.07 U1.11.08 U1.11.09 U1.12.07 U1.12.09 U1.12.10 U1.13.07 U1.13.08
+U1.12.09 U1.11.08 U1.11.09 U1.11.10 U1.12.08 U1.12.10 U1.13.08 U1.13.09
+U1.12.10 U1.11.09 U1.11.10 U1.11.11 U1.12.08 U1.12.09 U1.12.11 U1.13.09 U1.13.10
+U1.12.11 U1.11.10 U1.11.11 U1.12.10 U1.13.10 U1.13.11
+U1.13.00 U1.12.00 U1.12.01 U1.13.01 U1.14.00 U1.14.01
+U1.13.01 U1.12.00 U1.12.01 U1.13.00 U1.13.02 U1.13.03 U1.14.01 U1.14.02
+U1.13.02 U1.12.01 U1.12.02 U1.12.03 U1.13.01 U1.13.03 U1.13.04 U1.14.02 U1.14.03 U1.14.04
+U1.13.03 U1.12.02 U1.12.03 U1.12.04 U1.13.01 U1.13.02 U1.13.04 U1.13.05 U1.14.04
+U1.13.04 U1.12.04 U1.13.02 U1.13.03 U1.13.05 U1.13.06 U1.14.04 U1.14.05 U1.14.06
+U1.13.05 U1.12.04 U1.12.05 U1.12.06 U1.13.03 U1.13.04 U1.13.06 U1.13.07 U1.14.06
+U1.13.06 U1.12.05 U1.12.06 U1.13.04 U1.13.05 U1.13.07 U1.14.06 U1.14.07
+U1.13.07 U1.12.06 U1.12.07 U1.12.08 U1.13.05 U1.13.06 U1.13.08 U1.14.07 U1.14.08
+U1.13.08 U1.12.07 U1.12.08 U1.12.09 U1.13.07 U1.13.09 U1.14.08
+U1.13.09 U1.12.09 U1.12.10 U1.13.08 U1.13.10 U1.14.08 U1.14.09 U1.14.10
+U1.13.10 U1.12.10 U1.12.11 U1.13.09 U1.13.11 U1.14.10 U1.14.11
+U1.13.11 U1.12.11 U1.13.10 U1.14.11
+U1.14.00 U1.13.00 U1.14.01 U1.15.00 U1.15.01
+U1.14.01 U1.13.00 U1.13.01 U1.14.00 U1.14.02 U1.14.03 U1.15.01 U1.15.02 U1.15.03
+U1.14.02 U1.13.01 U1.13.02 U1.14.01 U1.14.03 U1.14.04 U1.15.02 U1.15.03
+U1.14.03 U1.13.02 U1.14.01 U1.14.02 U1.14.04 U1.14.05 U1.15.03
+U1.14.04 U1.13.02 U1.13.03 U1.13.04 U1.14.02 U1.14.03 U1.14.05 U1.14.06 U1.15.03 U1.15.04 U1.15.05
+U1.14.05 U1.13.04 U1.14.03 U1.14.04 U1.14.06 U1.15.04 U1.15.05 U1.15.06
+U1.14.06 U1.13.04 U1.13.05 U1.13.06 U1.14.04 U1.14.05 U1.14.07 U1.15.05 U1.15.06
+U1.14.07 U1.13.06 U1.13.07 U1.14.06 U1.14.08 U1.15.06 U1.15.07 U1.15.08
+U1.14.08 U1.13.07 U1.13.08 U1.13.09 U1.14.07 U1.14.09 U1.14.10 U1.15.08 U1.15.09
+U1.14.09 U1.13.09 U1.14.08 U1.14.10 U1.15.09 U1.15.10
+U1.14.10 U1.13.09 U1.13.10 U1.14.08 U1.14.09 U1.14.11 U1.15.09 U1.15.10 U1.15.11
+U1.14.11 U1.13.10 U1.13.11 U1.14.10 U1.15.10 U1.15.11
+U1.15.00 U1.00.00 U1.00.01 U1.14.00 U1.15.01
+U1.15.01 U1.00.00 U1.00.01 U1.00.02 U1.14.00 U1.14.01 U1.15.00 U1.15.02 U1.15.03
+U1.15.02 U1.14.01 U1.14.02 U1.15.01 U1.15.03 U1.15.04
+U1.15.03 U1.00.01 U1.00.02 U1.00.04 U1.14.01 U1.14.02 U1.14.03 U1.14.04 U1.15.01 U1.15.02 U1.15.04 U1.15.05
+U1.15.04 U1.00.02 U1.00.04 U1.00.05 U1.14.04 U1.14.05 U1.15.02 U1.15.03 U1.15.05 U1.15.06
+U1.15.05 U1.00.04 U1.00.05 U1.00.06 U1.14.04 U1.14.05 U1.14.06 U1.15.03 U1.15.04 U1.15.06 U1.15.07
+U1.15.06 U1.00.05 U1.00.06 U1.00.07 U1.14.05 U1.14.06 U1.14.07 U1.15.04 U1.15.05 U1.15.07
+U1.15.07 U1.00.06 U1.00.07 U1.14.07 U1.15.05 U1.15.06 U1.15.08
+U1.15.08 U1.00.07 U1.00.08 U1.00.09 U1.14.07 U1.14.08 U1.15.07 U1.15.09
+U1.15.09 U1.00.08 U1.00.09 U1.00.10 U1.14.08 U1.14.09 U1.14.10 U1.15.08 U1.15.10
+U1.15.10 U1.00.09 U1.00.10 U1.00.11 U1.14.09 U1.14.10 U1.14.11 U1.15.09 U1.15.11
+U1.15.11 U1.00.10 U1.00.11 U1.14.10 U1.14.11 U1.15.10
+U2.00.00 U2.00.01 U2.00.02 U2.01.01 U2.15.00 U2.15.01
+U2.00.01 U2.00.00 U2.00.02 U2.01.01 U2.01.02 U2.15.00 U2.15.01 U2.15.02
+U2.00.02 U2.00.00 U2.00.01 U2.00.03 U2.01.02 U2.01.03 U2.15.01 U2.15.02 U2.15.03
+U2.00.03 U2.00.02 U2.00.04 U2.01.02 U2.01.03 U2.01.04 U2.15.02 U2.15.03 U2.15.04
+U2.00.04 U2.00.03 U2.00.05 U2.01.03 U2.01.04 U2.01.05 U2.15.03 U2.15.04 U2.15.05
+U2.00.05 U2.00.04 U2.00.06 U2.01.05 U2.01.06 U2.15.04 U2.15.05 U2.15.06
+U2.00.06 U2.00.05 U2.00.07 U2.01.05 U2.01.06 U2.01.07 U2.15.05 U2.15.06 U2.15.07
+U2.00.07 U2.00.06 U2.01.07 U2.15.06 U2.15.07
+U2.01.00 U2.01.01 U2.01.02 U2.02.00 U2.02.01
+U2.01.01 U2.00.00 U2.00.01 U2.01.00 U2.01.02 U2.01.03
+U2.01.02 U2.00.01 U2.00.02 U2.00.03 U2.01.00 U2.01.01 U2.01.03 U2.01.04 U2.02.01 U2.02.02
+U2.01.03 U2.00.02 U2.00.03 U2.00.04 U2.01.01 U2.01.02 U2.01.04 U2.02.02 U2.02.03 U2.02.04
+U2.01.04 U2.00.03 U2.00.04 U2.01.02 U2.01.03 U2.01.05 U2.02.04 U2.02.05
+U2.01.05 U2.00.04 U2.00.05 U2.00.06 U2.01.04 U2.01.06 U2.02.05 U2.02.06
+U2.01.06 U2.00.05 U2.00.06 U2.01.05 U2.01.07 U2.02.06 U2.02.07
+U2.01.07 U2.00.06 U2.00.07 U2.01.06 U2.02.06 U2.02.07
+U2.02.00 U2.01.00 U2.02.01 U2.02.02 U2.03.00
+U2.02.01 U2.01.00 U2.01.02 U2.02.00 U2.02.02 U2.02.03 U2.03.00 U2.03.01
+U2.02.02 U2.01.02 U2.01.03 U2.02.00 U2.02.01 U2.02.03 U2.02.04 U2.03.00 U2.03.01
+U2.02.03 U2.01.03 U2.02.01 U2.02.02 U2.02.04 U2.03.01 U2.03.02 U2.03.03
+U2.02.04 U2.01.03 U2.01.04 U2.02.02 U2.02.03 U2.02.05 U2.03.02 U2.03.03
+U2.02.05 U2.01.04 U2.01.05 U2.02.04 U2.02.06 U2.03.03 U2.03.04 U2.03.05
+U2.02.06 U2.01.05 U2.01.06 U2.01.07 U2.02.05 U2.02.07 U2.03.05 U2.03.06
+U2.02.07 U2.01.06 U2.01.07 U2.02.06 U2.03.06 U2.03.07
+U2.03.00 U2.02.00 U2.02.01 U2.02.02 U2.03.01 U2.03.02 U2.04.00 U2.04.01
+U2.03.01 U2.02.01 U2.02.02 U2.02.03 U2.03.00 U2.03.02 U2.03.03 U2.04.00 U2.04.01 U2.04.02
+U2.03.02 U2.02.03 U2.02.04 U2.03.00 U2.03.01 U2.03.03 U2.03.04 U2.04.01 U2.04.02 U2.04.03
+U2.03.03 U2.02.03 U2.02.04 U2.02.05 U2.03.01 U2.03.02 U2.03.04 U2.04.02 U2.04.03 U2.04.04
+U2.03.04 U2.02.05 U2.03.02 U2.03.03 U2.03.05 U2.04.03 U2.04.04 U2.04.05
+U2.03.05 U2.02.05 U2.02.06 U2.03.04 U2.03.06 U2.04.04 U2.04.05 U2.04.06
+U2.03.06 U2.02.06 U2.02.07 U2.03.05 U2.03.07 U2.04.05 U2.04.06 U2.04.07
+U2.03.07 U2.02.07 U2.03.06 U2.04.06 U2.04.07
+U2.04.00 U2.03.00 U2.03.01 U2.04.01 U2.04.02 U2.05.00 U2.05.01 U2.05.02
+U2.04.01 U2.03.00 U2.03.01 U2.03.02 U2.04.00 U2.04.02 U2.04.03 U2.05.01 U2.05.02 U2.05.03
+U2.04.02 U2.03.01 U2.03.02 U2.03.03 U2.04.00 U2.04.01 U2.04.03 U2.04.04 U2.05.03 U2.05.04
+U2.04.03 U2.03.02 U2.03.03 U2.03.04 U2.04.01 U2.04.02 U2.04.04 U2.05.03 U2.05.04 U2.05.05
+U2.04.04 U2.03.03 U2.03.04 U2.03.05 U2.04.02 U2.04.03 U2.04.05 U2.05.05
+U2.04.05 U2.03.04 U2.03.05 U2.03.06 U2.04.04 U2.04.06 U2.05.05 U2.05.06
+U2.04.06 U2.03.05 U2.03.06 U2.03.07 U2.04.05 U2.04.07 U2.05.06 U2.05.07
+U2.04.07 U2.03.06 U2.03.07 U2.04.06 U2.05.07
+U2.05.00 U2.04.00 U2.05.01 U2.05.02 U2.06.00
+U2.05.01 U2.04.00 U2.04.01 U2.05.00 U2.05.02 U2.05.03 U2.06.00 U2.06.01 U2.06.02
+U2.05.02 U2.04.00 U2.04.01 U2.05.00 U2.05.01 U2.05.03 U2.05.04 U2.06.02 U2.06.03
+U2.05.03 U2.04.01 U2.04.02 U2.04.03 U2.05.01 U2.05.02 U2.05.04 U2.06.03
+U2.05.04 U2.04.02 U2.04.03 U2.05.02 U2.05.03 U2.05.05 U2.06.03 U2.06.04
+U2.05.05 U2.04.03 U2.04.04 U2.04.05 U2.05.04 U2.05.06 U2.06.04 U2.06.05
+U2.05.06 U2.04.05 U2.04.06 U2.05.05 U2.05.07 U2.06.05 U2.06.06 U2.06.07
+U2.05.07 U2.04.06 U2.04.07 U2.05.06 U2.06.07
+U2.06.00 U2.05.00 U2.05.01 U2.06.01 U2.06.02
+U2.06.01 U2.05.01 U2.06.00 U2.06.02 U2.06.03 U2.07.00 U2.07.01
+U2.06.02 U2.05.01 U2.05.02 U2.06.00 U2.06.01 U2.06.03 U2.06.04 U2.07.01 U2.07.02 U2.07.03
+U2.06.03 U2.05.02 U2.05.03 U2.05.04 U2.06.01 U2.06.02 U2.06.04 U2.07.02 U2.07.03 U2.07.04
+U2.06.04 U2.05.04 U2.05.05 U2.06.02 U2.06.03 U2.06.05 U2.07.03 U2.07.04
+U2.06.05 U2.05.05 U2.05.06 U2.06.04 U2.06.06 U2.07.04 U2.07.05 U2.07.06
+U2.06.06 U2.05.06 U2.06.05 U2.06.07 U2.07.05 U2.07.06
+U2.06.07 U2.05.06 U2.05.07 U2.06.06 U2.07.06 U2.07.07
+U2.07.00 U2.06.01 U2.07.01 U2.07.02 U2.08.00 U2.08.01
+U2.07.01 U2.06.01 U2.06.02 U2.07.00 U2.07.02 U2.08.00 U2.08.01 U2.08.02
+U2.07.02 U2.06.02 U2.06.03 U2.07.00 U2.07.01 U2.07.03 U2.08.01 U2.08.02 U2.08.03
+U2.07.03 U2.06.02 U2.06.03 U2.06.04 U2.07.02 U2.07.04 U2.08.02 U2.08.03 U2.08.04
+U2.07.04 U2.06.03 U2.06.04 U2.06.05 U2.07.03 U2.07.05 U2.08.03 U2.08.04 U2.08.05
+U2.07.05 U2.06.05 U2.06.06 U2.07.04 U2.07.06 U2.08.04 U2.08.05 U2.08.06
+U2.07.06 U2.06.05 U2.06.06 U2.06.07 U2.07.05 U2.07.07 U2.08.05 U2.08.06 U2.08.07
+U2.07.07 U2.06.07 U2.07.06 U2.08.06 U2.08.07
+U2.08.00 U2.07.00 U2.07.01 U2.08.01 U2.08.02 U2.09.01
+U2.08.01 U2.07.00 U2.07.01 U2.07.02 U2.08.00 U2.08.02 U2.09.01 U2.09.02
+U2.08.02 U2.07.01 U2.07.02 U2.07.03 U2.08.00 U2.08.01 U2.08.03 U2.09.02 U2.09.03
+U2.08.03 U2.07.02 U2.07.03 U2.07.04 U2.08.02 U2.08.04 U2.09.02 U2.09.03 U2.09.04
+U2.08.04 U2.07.03 U2.07.04 U2.07.05 U2.08.03 U2.08.05 U2.09.03 U2.09.04 U2.09.05
+U2.08.05 U2.07.04 U2.07.05 U2.07.06 U2.08.04 U2.08.06 U2.09.05 U2.09.06
+U2.08.06 U2.07.05 U2.07.06 U2.07.07 U2.08.05 U2.08.07 U2.09.05 U2.09.06 U2.09.07
+U2.08.07 U2.07.06 U2.07.07 U2.08.06 U2.09.07
+U2.09.00 U2.09.01 U2.09.02 U2.10.00 U2.10.01
+U2.09.01 U2.08.00 U2.08.01 U2.09.00 U2.09.02 U2.09.03
+U2.09.02 U2.08.01 U2.08.02 U2.08.03 U2.09.00 U2.09.01 U2.09.03 U2.09.04 U2.10.01 U2.10.02
+U2.09.03 U2.08.02 U2.08.03 U2.08.04 U2.09.01 U2.09.02 U2.09.04 U2.10.02 U2.10.03 U2.10.04
+U2.09.04 U2.08.03 U2.08.04 U2.09.02 U2.09.03 U2.09.05 U2.10.04 U2.10.05
+U2.09.05 U2.08.04 U2.08.05 U2.08.06 U2.09.04 U2.09.06 U2.10.05 U2.10.06
+U2.09.06 U2.08.05 U2.08.06 U2.09.05 U2.09.07 U2.10.06 U2.10.07
+U2.09.07 U2.08.06 U2.08.07 U2.09.06 U2.10.06 U2.10.07
+U2.10.00 U2.09.00 U2.10.01 U2.10.02 U2.11.00
+U2.10.01 U2.09.00 U2.09.02 U2.10.00 U2.10.02 U2.10.03 U2.11.00 U2.11.01
+U2.10.02 U2.09.02 U2.09.03 U2.10.00 U2.10.01 U2.10.03 U2.10.04 U2.11.00 U2.11.01
+U2.10.03 U2.09.03 U2.10.01 U2.10.02 U2.10.04 U2.11.01 U2.11.02 U2.11.03
+U2.10.04 U2.09.03 U2.09.04 U2.10.02 U2.10.03 U2.10.05 U2.11.02 U2.11.03
+U2.10.05 U2.09.04 U2.09.05 U2.10.04 U2.10.06 U2.11.03 U2.11.04 U2.11.05
+U2.10.06 U2.09.05 U2.09.06 U2.09.07 U2.10.05 U2.10.07 U2.11.05 U2.11.06
+U2.10.07 U2.09.06 U2.09.07 U2.10.06 U2.11.06 U2.11.07
+U2.11.00 U2.10.00 U2.10.01 U2.10.02 U2.11.01 U2.11.02 U2.12.00 U2.12.01
+U2.11.01 U2.10.01 U2.10.02 U2.10.03 U2.11.00 U2.11.02 U2.11.03 U2.12.00 U2.12.01 U2.12.02
+U2.11.02 U2.10.03 U2.10.04 U2.11.00 U2.11.01 U2.11.03 U2.11.04 U2.12.01 U2.12.02 U2.12.03
+U2.11.03 U2.10.03 U2.10.04 U2.10.05 U2.11.01 U2.11.02 U2.11.04 U2.12.02 U2.12.03 U2.12.04
+U2.11.04 U2.10.05 U2.11.02 U2.11.03 U2.11.05 U2.12.03 U2.12.04 U2.12.05
+U2.11.05 U2.10.05 U2.10.06 U2.11.04 U2.11.06 U2.12.04 U2.12.05 U2.12.06
+U2.11.06 U2.10.06 U2.10.07 U2.11.05 U2.11.07 U2.12.05 U2.12.06 U2.12.07
+U2.11.07 U2.10.07 U2.11.06 U2.12.06 U2.12.07
+U2.12.00 U2.11.00 U2.11.01 U2.12.01 U2.12.02 U2.13.00 U2.13.01 U2.13.02
+U2.12.01 U2.11.00 U2.11.01 U2.11.02 U2.12.00 U2.12.02 U2.12.03 U2.13.01 U2.13.02 U2.13.03
+U2.12.02 U2.11.01 U2.11.02 U2.11.03 U2.12.00 U2.12.01 U2.12.03 U2.12.04 U2.13.03 U2.13.04
+U2.12.03 U2.11.02 U2.11.03 U2.11.04 U2.12.01 U2.12.02 U2.12.04 U2.13.03 U2.13.04 U2.13.05
+U2.12.04 U2.11.03 U2.11.04 U2.11.05 U2.12.02 U2.12.03 U2.12.05 U2.13.05
+U2.12.05 U2.11.04 U2.11.05 U2.11.06 U2.12.04 U2.12.06 U2.13.05 U2.13.06
+U2.12.06 U2.11.05 U2.11.06 U2.11.07 U2.12.05 U2.12.07 U2.13.06 U2.13.07
+U2.12.07 U2.11.06 U2.11.07 U2.12.06 U2.13.07
+U2.13.00 U2.12.00 U2.13.01 U2.13.02 U2.14.00
+U2.13.01 U2.12.00 U2.12.01 U2.13.00 U2.13.02 U2.13.03 U2.14.00 U2.14.01 U2.14.02
+U2.13.02 U2.12.00 U2.12.01 U2.13.00 U2.13.01 U2.13.03 U2.13.04 U2.14.02 U2.14.03
+U2.13.03 U2.12.01 U2.12.02 U2.12.03 U2.13.01 U2.13.02 U2.13.04 U2.14.03
+U2.13.04 U2.12.02 U2.12.03 U2.13.02 U2.13.03 U2.13.05 U2.14.03 U2.14.04
+U2.13.05 U2.12.03 U2.12.04 U2.12.05 U2.13.04 U2.13.06 U2.14.04 U2.14.05
+U2.13.06 U2.12.05 U2.12.06 U2.13.05 U2.13.07 U2.14.05 U2.14.06 U2.14.07
+U2.13.07 U2.12.06 U2.12.07 U2.13.06 U2.14.07
+U2.14.00 U2.13.00 U2.13.01 U2.14.01 U2.14.02
+U2.14.01 U2.13.01 U2.14.00 U2.14.02 U2.14.03 U2.15.00 U2.15.01
+U2.14.02 U2.13.01 U2.13.02 U2.14.00 U2.14.01 U2.14.03 U2.14.04 U2.15.01 U2.15.02 U2.15.03
+U2.14.03 U2.13.02 U2.13.03 U2.13.04 U2.14.01 U2.14.02 U2.14.04 U2.15.02 U2.15.03 U2.15.04
+U2.14.04 U2.13.04 U2.13.05 U2.14.02 U2.14.03 U2.14.05 U2.15.03 U2.15.04
+U2.14.05 U2.13.05 U2.13.06 U2.14.04 U2.14.06 U2.15.04 U2.15.05 U2.15.06
+U2.14.06 U2.13.06 U2.14.05 U2.14.07 U2.15.05 U2.15.06
+U2.14.07 U2.13.06 U2.13.07 U2.14.06 U2.15.06 U2.15.07
+U2.15.00 U2.00.00 U2.00.01 U2.14.01 U2.15.01 U2.15.02
+U2.15.01 U2.00.00 U2.00.01 U2.00.02 U2.14.01 U2.14.02 U2.15.00 U2.15.02
+U2.15.02 U2.00.01 U2.00.02 U2.00.03 U2.14.02 U2.14.03 U2.15.00 U2.15.01 U2.15.03
+U2.15.03 U2.00.02 U2.00.03 U2.00.04 U2.14.02 U2.14.03 U2.14.04 U2.15.02 U2.15.04
+U2.15.04 U2.00.03 U2.00.04 U2.00.05 U2.14.03 U2.14.04 U2.14.05 U2.15.03 U2.15.05
+U2.15.05 U2.00.04 U2.00.05 U2.00.06 U2.14.05 U2.14.06 U2.15.04 U2.15.06
+U2.15.06 U2.00.05 U2.00.06 U2.00.07 U2.14.05 U2.14.06 U2.14.07 U2.15.05 U2.15.07
+U2.15.07 U2.00.06 U2.00.07 U2.14.07 U2.15.06
+U3.00.00 U3.00.01 U3.01.00 U3.01.01 U3.15.00 U3.15.01
+U3.00.01 U3.00.00 U3.00.02 U3.01.01 U3.01.02 U3.15.00 U3.15.01 U3.15.02
+U3.00.02 U3.00.01 U3.00.03 U3.01.02 U3.15.01 U3.15.02 U3.15.03
+U3.00.03 U3.00.02 U3.01.02 U3.01.03 U3.15.02 U3.15.03
+U3.01.00 U3.00.00 U3.01.01 U3.02.00 U3.02.01
+U3.01.01 U3.00.00 U3.00.01 U3.01.00 U3.01.02 U3.02.01 U3.02.02
+U3.01.02 U3.00.01 U3.00.02 U3.00.03 U3.01.01 U3.01.03 U3.02.02
+U3.01.03 U3.00.03 U3.01.02 U3.02.02 U3.02.03
+U3.02.00 U3.01.00 U3.02.01 U3.03.00 U3.03.01
+U3.02.01 U3.01.00 U3.01.01 U3.02.00 U3.02.02 U3.03.01 U3.03.02
+U3.02.02 U3.01.01 U3.01.02 U3.01.03 U3.02.01 U3.02.03 U3.03.02 U3.03.03
+U3.02.03 U3.01.03 U3.02.02 U3.03.03
+U3.03.00 U3.02.00 U3.03.01 U3.04.00 U3.04.01
+U3.03.01 U3.02.00 U3.02.01 U3.03.00 U3.03.02 U3.04.00 U3.04.01 U3.04.02
+U3.03.02 U3.02.01 U3.02.02 U3.03.01 U3.03.03 U3.04.01 U3.04.02 U3.04.03
+U3.03.03 U3.02.02 U3.02.03 U3.03.02 U3.04.02 U3.04.03
+U3.04.00 U3.03.00 U3.03.01 U3.04.01 U3.05.00
+U3.04.01 U3.03.00 U3.03.01 U3.03.02 U3.04.00 U3.04.02 U3.05.00 U3.05.01
+U3.04.02 U3.03.01 U3.03.02 U3.03.03 U3.04.01 U3.04.03 U3.05.01 U3.05.02
+U3.04.03 U3.03.02 U3.03.03 U3.04.02 U3.05.02 U3.05.03
+U3.05.00 U3.04.00 U3.04.01 U3.05.01 U3.06.00
+U3.05.01 U3.04.01 U3.04.02 U3.05.00 U3.05.02 U3.06.00 U3.06.01
+U3.05.02 U3.04.02 U3.04.03 U3.05.01 U3.05.03 U3.06.01 U3.06.02
+U3.05.03 U3.04.03 U3.05.02 U3.06.02 U3.06.03
+U3.06.00 U3.05.00 U3.05.01 U3.06.01 U3.07.00 U3.07.01
+U3.06.01 U3.05.01 U3.05.02 U3.06.00 U3.06.02 U3.07.01
+U3.06.02 U3.05.02 U3.05.03 U3.06.01 U3.06.03 U3.07.01 U3.07.02 U3.07.03
+U3.06.03 U3.05.03 U3.06.02 U3.07.03
+U3.07.00 U3.06.00 U3.07.01 U3.08.00 U3.08.01
+U3.07.01 U3.06.00 U3.06.01 U3.06.02 U3.07.00 U3.07.02 U3.08.00 U3.08.01 U3.08.02
+U3.07.02 U3.06.02 U3.07.01 U3.07.03 U3.08.01 U3.08.02 U3.08.03
+U3.07.03 U3.06.02 U3.06.03 U3.07.02 U3.08.02 U3.08.03
+U3.08.00 U3.07.00 U3.07.01 U3.08.01 U3.09.00 U3.09.01
+U3.08.01 U3.07.00 U3.07.01 U3.07.02 U3.08.00 U3.08.02 U3.09.01 U3.09.02
+U3.08.02 U3.07.01 U3.07.02 U3.07.03 U3.08.01 U3.08.03 U3.09.02
+U3.08.03 U3.07.02 U3.07.03 U3.08.02 U3.09.02 U3.09.03
+U3.09.00 U3.08.00 U3.09.01 U3.10.00 U3.10.01
+U3.09.01 U3.08.00 U3.08.01 U3.09.00 U3.09.02 U3.10.01 U3.10.02
+U3.09.02 U3.08.01 U3.08.02 U3.08.03 U3.09.01 U3.09.03 U3.10.02
+U3.09.03 U3.08.03 U3.09.02 U3.10.02 U3.10.03
+U3.10.00 U3.09.00 U3.10.01 U3.11.00 U3.11.01
+U3.10.01 U3.09.00 U3.09.01 U3.10.00 U3.10.02 U3.11.01 U3.11.02
+U3.10.02 U3.09.01 U3.09.02 U3.09.03 U3.10.01 U3.10.03 U3.11.02 U3.11.03
+U3.10.03 U3.09.03 U3.10.02 U3.11.03
+U3.11.00 U3.10.00 U3.11.01 U3.12.00 U3.12.01
+U3.11.01 U3.10.00 U3.10.01 U3.11.00 U3.11.02 U3.12.00 U3.12.01 U3.12.02
+U3.11.02 U3.10.01 U3.10.02 U3.11.01 U3.11.03 U3.12.01 U3.12.02 U3.12.03
+U3.11.03 U3.10.02 U3.10.03 U3.11.02 U3.12.02 U3.12.03
+U3.12.00 U3.11.00 U3.11.01 U3.12.01 U3.13.00
+U3.12.01 U3.11.00 U3.11.01 U3.11.02 U3.12.00 U3.12.02 U3.13.00 U3.13.01
+U3.12.02 U3.11.01 U3.11.02 U3.11.03 U3.12.01 U3.12.03 U3.13.01 U3.13.02
+U3.12.03 U3.11.02 U3.11.03 U3.12.02 U3.13.02 U3.13.03
+U3.13.00 U3.12.00 U3.12.01 U3.13.01 U3.14.00
+U3.13.01 U3.12.01 U3.12.02 U3.13.00 U3.13.02 U3.14.00 U3.14.01
+U3.13.02 U3.12.02 U3.12.03 U3.13.01 U3.13.03 U3.14.01 U3.14.02
+U3.13.03 U3.12.03 U3.13.02 U3.14.02 U3.14.03
+U3.14.00 U3.13.00 U3.13.01 U3.14.01 U3.15.00 U3.15.01
+U3.14.01 U3.13.01 U3.13.02 U3.14.00 U3.14.02 U3.15.01
+U3.14.02 U3.13.02 U3.13.03 U3.14.01 U3.14.03 U3.15.01 U3.15.02 U3.15.03
+U3.14.03 U3.13.03 U3.14.02 U3.15.03
+U3.15.00 U3.00.00 U3.00.01 U3.14.00 U3.15.01
+U3.15.01 U3.00.00 U3.00.01 U3.00.02 U3.14.00 U3.14.01 U3.14.02 U3.15.00 U3.15.02
+U3.15.02 U3.00.01 U3.00.02 U3.00.03 U3.14.02 U3.15.01 U3.15.03
+U3.15.03 U3.00.02 U3.00.03 U3.14.02 U3.14.03 U3.15.02
+S1.00.00 S1.00.01 S1.01.00 S1.15.00 S1.15.01
+S1.00.01 S1.00.00 S1.00.02 S1.00.03 S1.01.00 S1.01.01 S1.01.02 S1.15.00 S1.15.01 S1.15.03
+S1.00.02 S1.00.01 S1.00.03 S1.00.04 S1.15.01 S1.15.03 S1.15.04
+S1.00.03 S1.00.01 S1.00.02 S1.00.04 S1.00.05 S1.01.01 S1.01.02 S1.01.03 S1.01.04
+S1.00.04 S1.00.02 S1.00.03 S1.00.05 S1.00.06 S1.01.04 S1.01.05 S1.15.03 S1.15.04 S1.15.05
+S1.00.05 S1.00.03 S1.00.04 S1.00.06 S1.00.07 S1.01.04 S1.01.05 S1.01.06 S1.15.04 S1.15.05 S1.15.06
+S1.00.06 S1.00.04 S1.00.05 S1.00.07 S1.01.05 S1.01.06 S1.01.07 S1.15.05 S1.15.06 S1.15.07
+S1.00.07 S1.00.05 S1.00.06 S1.00.08 S1.01.07 S1.15.06 S1.15.07 S1.15.08
+S1.00.08 S1.00.07 S1.00.09 S1.01.07 S1.01.08 S1.01.09 S1.15.08 S1.15.09
+S1.00.09 S1.00.08 S1.00.10 S1.01.08 S1.01.09 S1.01.10 S1.15.08 S1.15.09 S1.15.10
+S1.00.10 S1.00.09 S1.00.11 S1.01.10 S1.15.09 S1.15.10 S1.15.11
+S1.00.11 S1.00.10 S1.01.10 S1.01.11 S1.15.10 S1.15.11
+S1.01.00 S1.00.00 S1.00.01 S1.01.01 S1.02.00
+S1.01.01 S1.00.01 S1.00.03 S1.01.00 S1.01.02 S1.01.03 S1.02.00 S1.02.01
+S1.01.02 S1.00.01 S1.00.03 S1.01.01 S1.01.03 S1.01.04 S1.02.01 S1.02.02 S1.02.03
+S1.01.03 S1.00.03 S1.01.01 S1.01.02 S1.01.04 S1.01.05 S1.02.03
+S1.01.04 S1.00.03 S1.00.04 S1.00.05 S1.01.02 S1.01.03 S1.01.05 S1.01.06 S1.02.03 S1.02.04 S1.02.05
+S1.01.05 S1.00.04 S1.00.05 S1.00.06 S1.01.03 S1.01.04 S1.01.06 S1.02.05
+S1.01.06 S1.00.05 S1.00.06 S1.01.04 S1.01.05 S1.01.07 S1.02.05 S1.02.06
+S1.01.07 S1.00.06 S1.00.07 S1.00.08 S1.01.06 S1.01.08 S1.02.06 S1.02.07
+S1.01.08 S1.00.08 S1.00.09 S1.01.07 S1.01.09 S1.01.10 S1.02.07 S1.02.08 S1.02.09
+S1.01.09 S1.00.08 S1.00.09 S1.01.08 S1.01.10 S1.02.09
+S1.01.10 S1.00.09 S1.00.10 S1.00.11 S1.01.08 S1.01.09 S1.01.11 S1.02.09 S1.02.10
+S1.01.11 S1.00.11 S1.01.10 S1.02.10 S1.02.11
+S1.02.00 S1.01.00 S1.01.01 S1.02.01 S1.03.00 S1.03.01
+S1.02.01 S1.01.01 S1.01.02 S1.02.00 S1.02.02 S1.02.03 S1.03.00 S1.03.01
+S1.02.02 S1.01.02 S1.02.01 S1.02.03 S1.02.04 S1.03.01 S1.03.02 S1.03.03
+S1.02.03 S1.01.02 S1.01.03 S1.01.04 S1.02.01 S1.02.02 S1.02.04 S1.02.05 S1.03.02 S1.03.03 S1.03.04
+S1.02.04 S1.01.04 S1.02.02 S1.02.03 S1.02.05 S1.02.06 S1.03.03 S1.03.04
+S1.02.05 S1.01.04 S1.01.05 S1.01.06 S1.02.03 S1.02.04 S1.02.06 S1.02.07 S1.03.04 S1.03.05 S1.03.06
+S1.02.06 S1.01.06 S1.01.07 S1.02.04 S1.02.05 S1.02.07 S1.03.05 S1.03.06
+S1.02.07 S1.01.07 S1.01.08 S1.02.05 S1.02.06 S1.02.08 S1.03.06
+S1.02.08 S1.01.08 S1.02.07 S1.02.09 S1.03.06 S1.03.07 S1.03.08
+S1.02.09 S1.01.08 S1.01.09 S1.01.10 S1.02.08 S1.02.10 S1.03.08 S1.03.09
+S1.02.10 S1.01.10 S1.01.11 S1.02.09 S1.02.11 S1.03.09 S1.03.10
+S1.02.11 S1.01.11 S1.02.10 S1.03.10 S1.03.11
+S1.03.00 S1.02.00 S1.02.01 S1.03.01 S1.04.00 S1.04.01
+S1.03.01 S1.02.00 S1.02.01 S1.02.02 S1.03.00 S1.03.02 S1.03.03 S1.04.00 S1.04.01 S1.04.02
+S1.03.02 S1.02.02 S1.02.03 S1.03.01 S1.03.03 S1.03.04 S1.04.01 S1.04.02 S1.04.03
+S1.03.03 S1.02.02 S1.02.03 S1.02.04 S1.03.01 S1.03.02 S1.03.04 S1.03.05 S1.04.02 S1.04.03 S1.04.04
+S1.03.04 S1.02.03 S1.02.04 S1.02.05 S1.03.02 S1.03.03 S1.03.05 S1.04.03 S1.04.04 S1.04.05
+S1.03.05 S1.02.05 S1.02.06 S1.03.03 S1.03.04 S1.03.06 S1.04.04 S1.04.05 S1.04.06
+S1.03.06 S1.02.05 S1.02.06 S1.02.07 S1.02.08 S1.03.05 S1.03.07 S1.04.05 S1.04.06 S1.04.07
+S1.03.07 S1.02.08 S1.03.06 S1.03.08 S1.04.06 S1.04.07 S1.04.08
+S1.03.08 S1.02.08 S1.02.09 S1.03.07 S1.03.09 S1.03.10 S1.04.07 S1.04.08 S1.04.09
+S1.03.09 S1.02.09 S1.02.10 S1.03.08 S1.03.10 S1.04.08 S1.04.09 S1.04.10
+S1.03.10 S1.02.10 S1.02.11 S1.03.08 S1.03.09 S1.03.11 S1.04.09 S1.04.10 S1.04.11
+S1.03.11 S1.02.11 S1.03.10 S1.04.10 S1.04.11
+S1.04.00 S1.03.00 S1.03.01 S1.04.01 S1.05.00 S1.05.01
+S1.04.01 S1.03.00 S1.03.01 S1.03.02 S1.04.00 S1.04.02 S1.04.03 S1.05.00 S1.05.01 S1.05.02
+S1.04.02 S1.03.01 S1.03.02 S1.03.03 S1.04.01 S1.04.03 S1.04.04 S1.05.02 S1.05.03
+S1.04.03 S1.03.02 S1.03.03 S1.03.04 S1.04.01 S1.04.02 S1.04.04 S1.04.05 S1.05.02 S1.05.03
+S1.04.04 S1.03.03 S1.03.04 S1.03.05 S1.04.02 S1.04.03 S1.04.05 S1.05.03 S1.05.04 S1.05.05
+S1.04.05 S1.03.04 S1.03.05 S1.03.06 S1.04.03 S1.04.04 S1.04.06 S1.05.05 S1.05.06
+S1.04.06 S1.03.05 S1.03.06 S1.03.07 S1.04.05 S1.04.07 S1.05.05 S1.05.06 S1.05.07
+S1.04.07 S1.03.06 S1.03.07 S1.03.08 S1.04.06 S1.04.08 S1.05.07 S1.05.08
+S1.04.08 S1.03.07 S1.03.08 S1.03.09 S1.04.07 S1.04.09 S1.04.10 S1.05.07 S1.05.08
+S1.04.09 S1.03.08 S1.03.09 S1.03.10 S1.04.08 S1.04.10 S1.05.08 S1.05.09
+S1.04.10 S1.03.09 S1.03.10 S1.03.11 S1.04.08 S1.04.09 S1.04.11 S1.05.09 S1.05.10
+S1.04.11 S1.03.10 S1.03.11 S1.04.10 S1.05.10 S1.05.11
+S1.05.00 S1.04.00 S1.04.01 S1.05.01 S1.06.00 S1.06.01
+S1.05.01 S1.04.00 S1.04.01 S1.05.00 S1.05.02 S1.05.03 S1.06.01 S1.06.02
+S1.05.02 S1.04.01 S1.04.02 S1.04.03 S1.05.01 S1.05.03 S1.05.04 S1.06.02 S1.06.03 S1.06.04
+S1.05.03 S1.04.02 S1.04.03 S1.04.04 S1.05.01 S1.05.02 S1.05.04 S1.05.05 S1.06.04
+S1.05.04 S1.04.04 S1.05.02 S1.05.03 S1.05.05 S1.05.06 S1.06.04 S1.06.05 S1.06.06
+S1.05.05 S1.04.04 S1.04.05 S1.04.06 S1.05.03 S1.05.04 S1.05.06 S1.05.07 S1.06.06
+S1.05.06 S1.04.05 S1.04.06 S1.05.04 S1.05.05 S1.05.07 S1.06.06 S1.06.07
+S1.05.07 S1.04.06 S1.04.07 S1.04.08 S1.05.05 S1.05.06 S1.05.08 S1.06.07 S1.06.08
+S1.05.08 S1.04.07 S1.04.08 S1.04.09 S1.05.07 S1.05.09 S1.06.08
+S1.05.09 S1.04.09 S1.04.10 S1.05.08 S1.05.10 S1.06.08 S1.06.09 S1.06.10
+S1.05.10 S1.04.10 S1.04.11 S1.05.09 S1.05.11 S1.06.10 S1.06.11
+S1.05.11 S1.04.11 S1.05.10 S1.06.11
+S1.06.00 S1.05.00 S1.06.01 S1.07.00 S1.07.01
+S1.06.01 S1.05.00 S1.05.01 S1.06.00 S1.06.02 S1.06.03 S1.07.01 S1.07.02 S1.07.03
+S1.06.02 S1.05.01 S1.05.02 S1.06.01 S1.06.03 S1.06.04 S1.07.02 S1.07.03
+S1.06.03 S1.05.02 S1.06.01 S1.06.02 S1.06.04 S1.06.05 S1.07.03
+S1.06.04 S1.05.02 S1.05.03 S1.05.04 S1.06.02 S1.06.03 S1.06.05 S1.06.06 S1.07.03 S1.07.04 S1.07.05
+S1.06.05 S1.05.04 S1.06.03 S1.06.04 S1.06.06 S1.07.04 S1.07.05 S1.07.06
+S1.06.06 S1.05.04 S1.05.05 S1.05.06 S1.06.04 S1.06.05 S1.06.07 S1.07.05 S1.07.06
+S1.06.07 S1.05.06 S1.05.07 S1.06.06 S1.06.08 S1.07.06 S1.07.07 S1.07.08
+S1.06.08 S1.05.07 S1.05.08 S1.05.09 S1.06.07 S1.06.09 S1.06.10 S1.07.08 S1.07.09
+S1.06.09 S1.05.09 S1.06.08 S1.06.10 S1.07.09 S1.07.10
+S1.06.10 S1.05.09 S1.05.10 S1.06.08 S1.06.09 S1.06.11 S1.07.09 S1.07.10 S1.07.11
+S1.06.11 S1.05.10 S1.05.11 S1.06.10 S1.07.10 S1.07.11
+S1.07.00 S1.06.00 S1.07.01 S1.08.00 S1.08.01
+S1.07.01 S1.06.00 S1.06.01 S1.07.00 S1.07.02 S1.07.03 S1.08.00 S1.08.01 S1.08.02
+S1.07.02 S1.06.01 S1.06.02 S1.07.01 S1.07.03 S1.07.04
+S1.07.03 S1.06.01 S1.06.02 S1.06.03 S1.06.04 S1.07.01 S1.07.02 S1.07.04 S1.07.05 S1.08.01 S1.08.02 S1.08.04
+S1.07.04 S1.06.04 S1.06.05 S1.07.02 S1.07.03 S1.07.05 S1.07.06 S1.08.02 S1.08.04 S1.08.05
+S1.07.05 S1.06.04 S1.06.05 S1.06.06 S1.07.03 S1.07.04 S1.07.06 S1.07.07 S1.08.04 S1.08.05 S1.08.06
+S1.07.06 S1.06.05 S1.06.06 S1.06.07 S1.07.04 S1.07.05 S1.07.07 S1.08.05 S1.08.06 S1.08.07
+S1.07.07 S1.06.07 S1.07.05 S1.07.06 S1.07.08 S1.08.06 S1.08.07
+S1.07.08 S1.06.07 S1.06.08 S1.07.07 S1.07.09 S1.08.07 S1.08.08 S1.08.09
+S1.07.09 S1.06.08 S1.06.09 S1.06.10 S1.07.08 S1.07.10 S1.08.08 S1.08.09 S1.08.10
+S1.07.10 S1.06.09 S1.06.10 S1.06.11 S1.07.09 S1.07.11 S1.08.09 S1.08.10 S1.08.11
+S1.07.11 S1.06.10 S1.06.11 S1.07.10 S1.08.10 S1.08.11
+S1.08.00 S1.07.00 S1.07.01 S1.08.01 S1.09.00
+S1.08.01 S1.07.00 S1.07.01 S1.07.03 S1.08.00 S1.08.02 S1.08.03 S1.09.00 S1.09.01 S1.09.02
+S1.08.02 S1.07.01 S1.07.03 S1.07.04 S1.08.01 S1.08.03 S1.08.04
+S1.08.03 S1.08.01 S1.08.02 S1.08.04 S1.08.05 S1.09.01 S1.09.02 S1.09.03 S1.09.04
+S1.08.04 S1.07.03 S1.07.04 S1.07.05 S1.08.02 S1.08.03 S1.08.05 S1.08.06 S1.09.04 S1.09.05
+S1.08.05 S1.07.04 S1.07.05 S1.07.06 S1.08.03 S1.08.04 S1.08.06 S1.08.07 S1.09.04 S1.09.05 S1.09.06
+S1.08.06 S1.07.05 S1.07.06 S1.07.07 S1.08.04 S1.08.05 S1.08.07 S1.09.05 S1.09.06 S1.09.07
+S1.08.07 S1.07.06 S1.07.07 S1.07.08 S1.08.05 S1.08.06 S1.08.08 S1.09.07
+S1.08.08 S1.07.08 S1.07.09 S1.08.07 S1.08.09 S1.09.07 S1.09.08 S1.09.09
+S1.08.09 S1.07.08 S1.07.09 S1.07.10 S1.08.08 S1.08.10 S1.09.08 S1.09.09 S1.09.10
+S1.08.10 S1.07.09 S1.07.10 S1.07.11 S1.08.09 S1.08.11 S1.09.10
+S1.08.11 S1.07.10 S1.07.11 S1.08.10 S1.09.10 S1.09.11
+S1.09.00 S1.08.00 S1.08.01 S1.09.01 S1.10.00
+S1.09.01 S1.08.01 S1.08.03 S1.09.00 S1.09.02 S1.09.03 S1.10.00 S1.10.01
+S1.09.02 S1.08.01 S1.08.03 S1.09.01 S1.09.03 S1.09.04 S1.10.01 S1.10.02 S1.10.03
+S1.09.03 S1.08.03 S1.09.01 S1.09.02 S1.09.04 S1.09.05 S1.10.03
+S1.09.04 S1.08.03 S1.08.04 S1.08.05 S1.09.02 S1.09.03 S1.09.05 S1.09.06 S1.10.03 S1.10.04 S1.10.05
+S1.09.05 S1.08.04 S1.08.05 S1.08.06 S1.09.03 S1.09.04 S1.09.06 S1.10.05
+S1.09.06 S1.08.05 S1.08.06 S1.09.04 S1.09.05 S1.09.07 S1.10.05 S1.10.06
+S1.09.07 S1.08.06 S1.08.07 S1.08.08 S1.09.06 S1.09.08 S1.10.06 S1.10.07
+S1.09.08 S1.08.08 S1.08.09 S1.09.07 S1.09.09 S1.09.10 S1.10.07 S1.10.08 S1.10.09
+S1.09.09 S1.08.08 S1.08.09 S1.09.08 S1.09.10 S1.10.09
+S1.09.10 S1.08.09 S1.08.10 S1.08.11 S1.09.08 S1.09.09 S1.09.11 S1.10.09 S1.10.10
+S1.09.11 S1.08.11 S1.09.10 S1.10.10 S1.10.11
+S1.10.00 S1.09.00 S1.09.01 S1.10.01 S1.11.00 S1.11.01
+S1.10.01 S1.09.01 S1.09.02 S1.10.00 S1.10.02 S1.10.03 S1.11.00 S1.11.01
+S1.10.02 S1.09.02 S1.10.01 S1.10.03 S1.10.04 S1.11.01 S1.11.02 S1.11.03
+S1.10.03 S1.09.02 S1.09.03 S1.09.04 S1.10.01 S1.10.02 S1.10.04 S1.10.05 S1.11.02 S1.11.03 S1.11.04
+S1.10.04 S1.09.04 S1.10.02 S1.10.03 S1.10.05 S1.10.06 S1.11.03 S1.11.04
+S1.10.05 S1.09.04 S1.09.05 S1.09.06 S1.10.03 S1.10.04 S1.10.06 S1.10.07 S1.11.04 S1.11.05 S1.11.06
+S1.10.06 S1.09.06 S1.09.07 S1.10.04 S1.10.05 S1.10.07 S1.11.05 S1.11.06
+S1.10.07 S1.09.07 S1.09.08 S1.10.05 S1.10.06 S1.10.08 S1.11.06
+S1.10.08 S1.09.08 S1.10.07 S1.10.09 S1.11.06 S1.11.07 S1.11.08
+S1.10.09 S1.09.08 S1.09.09 S1.09.10 S1.10.08 S1.10.10 S1.11.08 S1.11.09
+S1.10.10 S1.09.10 S1.09.11 S1.10.09 S1.10.11 S1.11.09 S1.11.10
+S1.10.11 S1.09.11 S1.10.10 S1.11.10 S1.11.11
+S1.11.00 S1.10.00 S1.10.01 S1.11.01 S1.12.00 S1.12.01
+S1.11.01 S1.10.00 S1.10.01 S1.10.02 S1.11.00 S1.11.02 S1.11.03 S1.12.00 S1.12.01 S1.12.02
+S1.11.02 S1.10.02 S1.10.03 S1.11.01 S1.11.03 S1.11.04 S1.12.01 S1.12.02 S1.12.03
+S1.11.03 S1.10.02 S1.10.03 S1.10.04 S1.11.01 S1.11.02 S1.11.04 S1.11.05 S1.12.02 S1.12.03 S1.12.04
+S1.11.04 S1.10.03 S1.10.04 S1.10.05 S1.11.02 S1.11.03 S1.11.05 S1.12.03 S1.12.04 S1.12.05
+S1.11.05 S1.10.05 S1.10.06 S1.11.03 S1.11.04 S1.11.06 S1.12.04 S1.12.05 S1.12.06
+S1.11.06 S1.10.05 S1.10.06 S1.10.07 S1.10.08 S1.11.05 S1.11.07 S1.12.05 S1.12.06 S1.12.07
+S1.11.07 S1.10.08 S1.11.06 S1.11.08 S1.12.06 S1.12.07 S1.12.08
+S1.11.08 S1.10.08 S1.10.09 S1.11.07 S1.11.09 S1.11.10 S1.12.07 S1.12.08 S1.12.09
+S1.11.09 S1.10.09 S1.10.10 S1.11.08 S1.11.10 S1.12.08 S1.12.09 S1.12.10
+S1.11.10 S1.10.10 S1.10.11 S1.11.08 S1.11.09 S1.11.11 S1.12.09 S1.12.10 S1.12.11
+S1.11.11 S1.10.11 S1.11.10 S1.12.10 S1.12.11
+S1.12.00 S1.11.00 S1.11.01 S1.12.01 S1.13.00 S1.13.01
+S1.12.01 S1.11.00 S1.11.01 S1.11.02 S1.12.00 S1.12.02 S1.12.03 S1.13.00 S1.13.01 S1.13.02
+S1.12.02 S1.11.01 S1.11.02 S1.11.03 S1.12.01 S1.12.03 S1.12.04 S1.13.02 S1.13.03
+S1.12.03 S1.11.02 S1.11.03 S1.11.04 S1.12.01 S1.12.02 S1.12.04 S1.12.05 S1.13.02 S1.13.03
+S1.12.04 S1.11.03 S1.11.04 S1.11.05 S1.12.02 S1.12.03 S1.12.05 S1.13.03 S1.13.04 S1.13.05
+S1.12.05 S1.11.04 S1.11.05 S1.11.06 S1.12.03 S1.12.04 S1.12.06 S1.13.05 S1.13.06
+S1.12.06 S1.11.05 S1.11.06 S1.11.07 S1.12.05 S1.12.07 S1.13.05 S1.13.06 S1.13.07
+S1.12.07 S1.11.06 S1.11.07 S1.11.08 S1.12.06 S1.12.08 S1.13.07 S1.13.08
+S1.12.08 S1.11.07 S1.11.08 S1.11.09 S1.12.07 S1.12.09 S1.12.10 S1.13.07 S1.13.08
+S1.12.09 S1.11.08 S1.11.09 S1.11.10 S1.12.08 S1.12.10 S1.13.08 S1.13.09
+S1.12.10 S1.11.09 S1.11.10 S1.11.11 S1.12.08 S1.12.09 S1.12.11 S1.13.09 S1.13.10
+S1.12.11 S1.11.10 S1.11.11 S1.12.10 S1.13.10 S1.13.11
+S1.13.00 S1.12.00 S1.12.01 S1.13.01 S1.14.00 S1.14.01
+S1.13.01 S1.12.00 S1.12.01 S1.13.00 S1.13.02 S1.13.03 S1.14.01 S1.14.02
+S1.13.02 S1.12.01 S1.12.02 S1.12.03 S1.13.01 S1.13.03 S1.13.04 S1.14.02 S1.14.03 S1.14.04
+S1.13.03 S1.12.02 S1.12.03 S1.12.04 S1.13.01 S1.13.02 S1.13.04 S1.13.05 S1.14.04
+S1.13.04 S1.12.04 S1.13.02 S1.13.03 S1.13.05 S1.13.06 S1.14.04 S1.14.05 S1.14.06
+S1.13.05 S1.12.04 S1.12.05 S1.12.06 S1.13.03 S1.13.04 S1.13.06 S1.13.07 S1.14.06
+S1.13.06 S1.12.05 S1.12.06 S1.13.04 S1.13.05 S1.13.07 S1.14.06 S1.14.07
+S1.13.07 S1.12.06 S1.12.07 S1.12.08 S1.13.05 S1.13.06 S1.13.08 S1.14.07 S1.14.08
+S1.13.08 S1.12.07 S1.12.08 S1.12.09 S1.13.07 S1.13.09 S1.14.08
+S1.13.09 S1.12.09 S1.12.10 S1.13.08 S1.13.10 S1.14.08 S1.14.09 S1.14.10
+S1.13.10 S1.12.10 S1.12.11 S1.13.09 S1.13.11 S1.14.10 S1.14.11
+S1.13.11 S1.12.11 S1.13.10 S1.14.11
+S1.14.00 S1.13.00 S1.14.01 S1.15.00 S1.15.01
+S1.14.01 S1.13.00 S1.13.01 S1.14.00 S1.14.02 S1.14.03 S1.15.01 S1.15.02 S1.15.03
+S1.14.02 S1.13.01 S1.13.02 S1.14.01 S1.14.03 S1.14.04 S1.15.02 S1.15.03
+S1.14.03 S1.13.02 S1.14.01 S1.14.02 S1.14.04 S1.14.05 S1.15.03
+S1.14.04 S1.13.02 S1.13.03 S1.13.04 S1.14.02 S1.14.03 S1.14.05 S1.14.06 S1.15.03 S1.15.04 S1.15.05
+S1.14.05 S1.13.04 S1.14.03 S1.14.04 S1.14.06 S1.15.04 S1.15.05 S1.15.06
+S1.14.06 S1.13.04 S1.13.05 S1.13.06 S1.14.04 S1.14.05 S1.14.07 S1.15.05 S1.15.06
+S1.14.07 S1.13.06 S1.13.07 S1.14.06 S1.14.08 S1.15.06 S1.15.07 S1.15.08
+S1.14.08 S1.13.07 S1.13.08 S1.13.09 S1.14.07 S1.14.09 S1.14.10 S1.15.08 S1.15.09
+S1.14.09 S1.13.09 S1.14.08 S1.14.10 S1.15.09 S1.15.10
+S1.14.10 S1.13.09 S1.13.10 S1.14.08 S1.14.09 S1.14.11 S1.15.09 S1.15.10 S1.15.11
+S1.14.11 S1.13.10 S1.13.11 S1.14.10 S1.15.10 S1.15.11
+S1.15.00 S1.00.00 S1.00.01 S1.14.00 S1.15.01
+S1.15.01 S1.00.00 S1.00.01 S1.00.02 S1.14.00 S1.14.01 S1.15.00 S1.15.02 S1.15.03
+S1.15.02 S1.14.01 S1.14.02 S1.15.01 S1.15.03 S1.15.04
+S1.15.03 S1.00.01 S1.00.02 S1.00.04 S1.14.01 S1.14.02 S1.14.03 S1.14.04 S1.15.01 S1.15.02 S1.15.04 S1.15.05
+S1.15.04 S1.00.02 S1.00.04 S1.00.05 S1.14.04 S1.14.05 S1.15.02 S1.15.03 S1.15.05 S1.15.06
+S1.15.05 S1.00.04 S1.00.05 S1.00.06 S1.14.04 S1.14.05 S1.14.06 S1.15.03 S1.15.04 S1.15.06 S1.15.07
+S1.15.06 S1.00.05 S1.00.06 S1.00.07 S1.14.05 S1.14.06 S1.14.07 S1.15.04 S1.15.05 S1.15.07
+S1.15.07 S1.00.06 S1.00.07 S1.14.07 S1.15.05 S1.15.06 S1.15.08
+S1.15.08 S1.00.07 S1.00.08 S1.00.09 S1.14.07 S1.14.08 S1.15.07 S1.15.09
+S1.15.09 S1.00.08 S1.00.09 S1.00.10 S1.14.08 S1.14.09 S1.14.10 S1.15.08 S1.15.10
+S1.15.10 S1.00.09 S1.00.10 S1.00.11 S1.14.09 S1.14.10 S1.14.11 S1.15.09 S1.15.11
+S1.15.11 S1.00.10 S1.00.11 S1.14.10 S1.14.11 S1.15.10
+S2.00.00 S2.00.01 S2.00.02 S2.01.01 S2.15.00 S2.15.01
+S2.00.01 S2.00.00 S2.00.02 S2.01.01 S2.01.02 S2.15.00 S2.15.01 S2.15.02
+S2.00.02 S2.00.00 S2.00.01 S2.00.03 S2.01.02 S2.01.03 S2.15.01 S2.15.02 S2.15.03
+S2.00.03 S2.00.02 S2.00.04 S2.01.02 S2.01.03 S2.01.04 S2.15.02 S2.15.03 S2.15.04
+S2.00.04 S2.00.03 S2.00.05 S2.01.03 S2.01.04 S2.01.05 S2.15.03 S2.15.04 S2.15.05
+S2.00.05 S2.00.04 S2.00.06 S2.01.05 S2.01.06 S2.15.04 S2.15.05 S2.15.06
+S2.00.06 S2.00.05 S2.00.07 S2.01.05 S2.01.06 S2.01.07 S2.15.05 S2.15.06 S2.15.07
+S2.00.07 S2.00.06 S2.01.07 S2.15.06 S2.15.07
+S2.01.00 S2.01.01 S2.01.02 S2.02.00 S2.02.01
+S2.01.01 S2.00.00 S2.00.01 S2.01.00 S2.01.02 S2.01.03
+S2.01.02 S2.00.01 S2.00.02 S2.00.03 S2.01.00 S2.01.01 S2.01.03 S2.01.04 S2.02.01 S2.02.02
+S2.01.03 S2.00.02 S2.00.03 S2.00.04 S2.01.01 S2.01.02 S2.01.04 S2.02.02 S2.02.03 S2.02.04
+S2.01.04 S2.00.03 S2.00.04 S2.01.02 S2.01.03 S2.01.05 S2.02.04 S2.02.05
+S2.01.05 S2.00.04 S2.00.05 S2.00.06 S2.01.04 S2.01.06 S2.02.05 S2.02.06
+S2.01.06 S2.00.05 S2.00.06 S2.01.05 S2.01.07 S2.02.06 S2.02.07
+S2.01.07 S2.00.06 S2.00.07 S2.01.06 S2.02.06 S2.02.07
+S2.02.00 S2.01.00 S2.02.01 S2.02.02 S2.03.00
+S2.02.01 S2.01.00 S2.01.02 S2.02.00 S2.02.02 S2.02.03 S2.03.00 S2.03.01
+S2.02.02 S2.01.02 S2.01.03 S2.02.00 S2.02.01 S2.02.03 S2.02.04 S2.03.00 S2.03.01
+S2.02.03 S2.01.03 S2.02.01 S2.02.02 S2.02.04 S2.03.01 S2.03.02 S2.03.03
+S2.02.04 S2.01.03 S2.01.04 S2.02.02 S2.02.03 S2.02.05 S2.03.02 S2.03.03
+S2.02.05 S2.01.04 S2.01.05 S2.02.04 S2.02.06 S2.03.03 S2.03.04 S2.03.05
+S2.02.06 S2.01.05 S2.01.06 S2.01.07 S2.02.05 S2.02.07 S2.03.05 S2.03.06
+S2.02.07 S2.01.06 S2.01.07 S2.02.06 S2.03.06 S2.03.07
+S2.03.00 S2.02.00 S2.02.01 S2.02.02 S2.03.01 S2.03.02 S2.04.00 S2.04.01
+S2.03.01 S2.02.01 S2.02.02 S2.02.03 S2.03.00 S2.03.02 S2.03.03 S2.04.00 S2.04.01 S2.04.02
+S2.03.02 S2.02.03 S2.02.04 S2.03.00 S2.03.01 S2.03.03 S2.03.04 S2.04.01 S2.04.02 S2.04.03
+S2.03.03 S2.02.03 S2.02.04 S2.02.05 S2.03.01 S2.03.02 S2.03.04 S2.04.02 S2.04.03 S2.04.04
+S2.03.04 S2.02.05 S2.03.02 S2.03.03 S2.03.05 S2.04.03 S2.04.04 S2.04.05
+S2.03.05 S2.02.05 S2.02.06 S2.03.04 S2.03.06 S2.04.04 S2.04.05 S2.04.06
+S2.03.06 S2.02.06 S2.02.07 S2.03.05 S2.03.07 S2.04.05 S2.04.06 S2.04.07
+S2.03.07 S2.02.07 S2.03.06 S2.04.06 S2.04.07
+S2.04.00 S2.03.00 S2.03.01 S2.04.01 S2.04.02 S2.05.00 S2.05.01 S2.05.02
+S2.04.01 S2.03.00 S2.03.01 S2.03.02 S2.04.00 S2.04.02 S2.04.03 S2.05.01 S2.05.02 S2.05.03
+S2.04.02 S2.03.01 S2.03.02 S2.03.03 S2.04.00 S2.04.01 S2.04.03 S2.04.04 S2.05.03 S2.05.04
+S2.04.03 S2.03.02 S2.03.03 S2.03.04 S2.04.01 S2.04.02 S2.04.04 S2.05.03 S2.05.04 S2.05.05
+S2.04.04 S2.03.03 S2.03.04 S2.03.05 S2.04.02 S2.04.03 S2.04.05 S2.05.05
+S2.04.05 S2.03.04 S2.03.05 S2.03.06 S2.04.04 S2.04.06 S2.05.05 S2.05.06
+S2.04.06 S2.03.05 S2.03.06 S2.03.07 S2.04.05 S2.04.07 S2.05.06 S2.05.07
+S2.04.07 S2.03.06 S2.03.07 S2.04.06 S2.05.07
+S2.05.00 S2.04.00 S2.05.01 S2.05.02 S2.06.00
+S2.05.01 S2.04.00 S2.04.01 S2.05.00 S2.05.02 S2.05.03 S2.06.00 S2.06.01 S2.06.02
+S2.05.02 S2.04.00 S2.04.01 S2.05.00 S2.05.01 S2.05.03 S2.05.04 S2.06.02 S2.06.03
+S2.05.03 S2.04.01 S2.04.02 S2.04.03 S2.05.01 S2.05.02 S2.05.04 S2.06.03
+S2.05.04 S2.04.02 S2.04.03 S2.05.02 S2.05.03 S2.05.05 S2.06.03 S2.06.04
+S2.05.05 S2.04.03 S2.04.04 S2.04.05 S2.05.04 S2.05.06 S2.06.04 S2.06.05
+S2.05.06 S2.04.05 S2.04.06 S2.05.05 S2.05.07 S2.06.05 S2.06.06 S2.06.07
+S2.05.07 S2.04.06 S2.04.07 S2.05.06 S2.06.07
+S2.06.00 S2.05.00 S2.05.01 S2.06.01 S2.06.02
+S2.06.01 S2.05.01 S2.06.00 S2.06.02 S2.06.03 S2.07.00 S2.07.01
+S2.06.02 S2.05.01 S2.05.02 S2.06.00 S2.06.01 S2.06.03 S2.06.04 S2.07.01 S2.07.02 S2.07.03
+S2.06.03 S2.05.02 S2.05.03 S2.05.04 S2.06.01 S2.06.02 S2.06.04 S2.07.02 S2.07.03 S2.07.04
+S2.06.04 S2.05.04 S2.05.05 S2.06.02 S2.06.03 S2.06.05 S2.07.03 S2.07.04
+S2.06.05 S2.05.05 S2.05.06 S2.06.04 S2.06.06 S2.07.04 S2.07.05 S2.07.06
+S2.06.06 S2.05.06 S2.06.05 S2.06.07 S2.07.05 S2.07.06
+S2.06.07 S2.05.06 S2.05.07 S2.06.06 S2.07.06 S2.07.07
+S2.07.00 S2.06.01 S2.07.01 S2.07.02 S2.08.00 S2.08.01
+S2.07.01 S2.06.01 S2.06.02 S2.07.00 S2.07.02 S2.08.00 S2.08.01 S2.08.02
+S2.07.02 S2.06.02 S2.06.03 S2.07.00 S2.07.01 S2.07.03 S2.08.01 S2.08.02 S2.08.03
+S2.07.03 S2.06.02 S2.06.03 S2.06.04 S2.07.02 S2.07.04 S2.08.02 S2.08.03 S2.08.04
+S2.07.04 S2.06.03 S2.06.04 S2.06.05 S2.07.03 S2.07.05 S2.08.03 S2.08.04 S2.08.05
+S2.07.05 S2.06.05 S2.06.06 S2.07.04 S2.07.06 S2.08.04 S2.08.05 S2.08.06
+S2.07.06 S2.06.05 S2.06.06 S2.06.07 S2.07.05 S2.07.07 S2.08.05 S2.08.06 S2.08.07
+S2.07.07 S2.06.07 S2.07.06 S2.08.06 S2.08.07
+S2.08.00 S2.07.00 S2.07.01 S2.08.01 S2.08.02 S2.09.01
+S2.08.01 S2.07.00 S2.07.01 S2.07.02 S2.08.00 S2.08.02 S2.09.01 S2.09.02
+S2.08.02 S2.07.01 S2.07.02 S2.07.03 S2.08.00 S2.08.01 S2.08.03 S2.09.02 S2.09.03
+S2.08.03 S2.07.02 S2.07.03 S2.07.04 S2.08.02 S2.08.04 S2.09.02 S2.09.03 S2.09.04
+S2.08.04 S2.07.03 S2.07.04 S2.07.05 S2.08.03 S2.08.05 S2.09.03 S2.09.04 S2.09.05
+S2.08.05 S2.07.04 S2.07.05 S2.07.06 S2.08.04 S2.08.06 S2.09.05 S2.09.06
+S2.08.06 S2.07.05 S2.07.06 S2.07.07 S2.08.05 S2.08.07 S2.09.05 S2.09.06 S2.09.07
+S2.08.07 S2.07.06 S2.07.07 S2.08.06 S2.09.07
+S2.09.00 S2.09.01 S2.09.02 S2.10.00 S2.10.01
+S2.09.01 S2.08.00 S2.08.01 S2.09.00 S2.09.02 S2.09.03
+S2.09.02 S2.08.01 S2.08.02 S2.08.03 S2.09.00 S2.09.01 S2.09.03 S2.09.04 S2.10.01 S2.10.02
+S2.09.03 S2.08.02 S2.08.03 S2.08.04 S2.09.01 S2.09.02 S2.09.04 S2.10.02 S2.10.03 S2.10.04
+S2.09.04 S2.08.03 S2.08.04 S2.09.02 S2.09.03 S2.09.05 S2.10.04 S2.10.05
+S2.09.05 S2.08.04 S2.08.05 S2.08.06 S2.09.04 S2.09.06 S2.10.05 S2.10.06
+S2.09.06 S2.08.05 S2.08.06 S2.09.05 S2.09.07 S2.10.06 S2.10.07
+S2.09.07 S2.08.06 S2.08.07 S2.09.06 S2.10.06 S2.10.07
+S2.10.00 S2.09.00 S2.10.01 S2.10.02 S2.11.00
+S2.10.01 S2.09.00 S2.09.02 S2.10.00 S2.10.02 S2.10.03 S2.11.00 S2.11.01
+S2.10.02 S2.09.02 S2.09.03 S2.10.00 S2.10.01 S2.10.03 S2.10.04 S2.11.00 S2.11.01
+S2.10.03 S2.09.03 S2.10.01 S2.10.02 S2.10.04 S2.11.01 S2.11.02 S2.11.03
+S2.10.04 S2.09.03 S2.09.04 S2.10.02 S2.10.03 S2.10.05 S2.11.02 S2.11.03
+S2.10.05 S2.09.04 S2.09.05 S2.10.04 S2.10.06 S2.11.03 S2.11.04 S2.11.05
+S2.10.06 S2.09.05 S2.09.06 S2.09.07 S2.10.05 S2.10.07 S2.11.05 S2.11.06
+S2.10.07 S2.09.06 S2.09.07 S2.10.06 S2.11.06 S2.11.07
+S2.11.00 S2.10.00 S2.10.01 S2.10.02 S2.11.01 S2.11.02 S2.12.00 S2.12.01
+S2.11.01 S2.10.01 S2.10.02 S2.10.03 S2.11.00 S2.11.02 S2.11.03 S2.12.00 S2.12.01 S2.12.02
+S2.11.02 S2.10.03 S2.10.04 S2.11.00 S2.11.01 S2.11.03 S2.11.04 S2.12.01 S2.12.02 S2.12.03
+S2.11.03 S2.10.03 S2.10.04 S2.10.05 S2.11.01 S2.11.02 S2.11.04 S2.12.02 S2.12.03 S2.12.04
+S2.11.04 S2.10.05 S2.11.02 S2.11.03 S2.11.05 S2.12.03 S2.12.04 S2.12.05
+S2.11.05 S2.10.05 S2.10.06 S2.11.04 S2.11.06 S2.12.04 S2.12.05 S2.12.06
+S2.11.06 S2.10.06 S2.10.07 S2.11.05 S2.11.07 S2.12.05 S2.12.06 S2.12.07
+S2.11.07 S2.10.07 S2.11.06 S2.12.06 S2.12.07
+S2.12.00 S2.11.00 S2.11.01 S2.12.01 S2.12.02 S2.13.00 S2.13.01 S2.13.02
+S2.12.01 S2.11.00 S2.11.01 S2.11.02 S2.12.00 S2.12.02 S2.12.03 S2.13.01 S2.13.02 S2.13.03
+S2.12.02 S2.11.01 S2.11.02 S2.11.03 S2.12.00 S2.12.01 S2.12.03 S2.12.04 S2.13.03 S2.13.04
+S2.12.03 S2.11.02 S2.11.03 S2.11.04 S2.12.01 S2.12.02 S2.12.04 S2.13.03 S2.13.04 S2.13.05
+S2.12.04 S2.11.03 S2.11.04 S2.11.05 S2.12.02 S2.12.03 S2.12.05 S2.13.05
+S2.12.05 S2.11.04 S2.11.05 S2.11.06 S2.12.04 S2.12.06 S2.13.05 S2.13.06
+S2.12.06 S2.11.05 S2.11.06 S2.11.07 S2.12.05 S2.12.07 S2.13.06 S2.13.07
+S2.12.07 S2.11.06 S2.11.07 S2.12.06 S2.13.07
+S2.13.00 S2.12.00 S2.13.01 S2.13.02 S2.14.00
+S2.13.01 S2.12.00 S2.12.01 S2.13.00 S2.13.02 S2.13.03 S2.14.00 S2.14.01 S2.14.02
+S2.13.02 S2.12.00 S2.12.01 S2.13.00 S2.13.01 S2.13.03 S2.13.04 S2.14.02 S2.14.03
+S2.13.03 S2.12.01 S2.12.02 S2.12.03 S2.13.01 S2.13.02 S2.13.04 S2.14.03
+S2.13.04 S2.12.02 S2.12.03 S2.13.02 S2.13.03 S2.13.05 S2.14.03 S2.14.04
+S2.13.05 S2.12.03 S2.12.04 S2.12.05 S2.13.04 S2.13.06 S2.14.04 S2.14.05
+S2.13.06 S2.12.05 S2.12.06 S2.13.05 S2.13.07 S2.14.05 S2.14.06 S2.14.07
+S2.13.07 S2.12.06 S2.12.07 S2.13.06 S2.14.07
+S2.14.00 S2.13.00 S2.13.01 S2.14.01 S2.14.02
+S2.14.01 S2.13.01 S2.14.00 S2.14.02 S2.14.03 S2.15.00 S2.15.01
+S2.14.02 S2.13.01 S2.13.02 S2.14.00 S2.14.01 S2.14.03 S2.14.04 S2.15.01 S2.15.02 S2.15.03
+S2.14.03 S2.13.02 S2.13.03 S2.13.04 S2.14.01 S2.14.02 S2.14.04 S2.15.02 S2.15.03 S2.15.04
+S2.14.04 S2.13.04 S2.13.05 S2.14.02 S2.14.03 S2.14.05 S2.15.03 S2.15.04
+S2.14.05 S2.13.05 S2.13.06 S2.14.04 S2.14.06 S2.15.04 S2.15.05 S2.15.06
+S2.14.06 S2.13.06 S2.14.05 S2.14.07 S2.15.05 S2.15.06
+S2.14.07 S2.13.06 S2.13.07 S2.14.06 S2.15.06 S2.15.07
+S2.15.00 S2.00.00 S2.00.01 S2.14.01 S2.15.01 S2.15.02
+S2.15.01 S2.00.00 S2.00.01 S2.00.02 S2.14.01 S2.14.02 S2.15.00 S2.15.02
+S2.15.02 S2.00.01 S2.00.02 S2.00.03 S2.14.02 S2.14.03 S2.15.00 S2.15.01 S2.15.03
+S2.15.03 S2.00.02 S2.00.03 S2.00.04 S2.14.02 S2.14.03 S2.14.04 S2.15.02 S2.15.04
+S2.15.04 S2.00.03 S2.00.04 S2.00.05 S2.14.03 S2.14.04 S2.14.05 S2.15.03 S2.15.05
+S2.15.05 S2.00.04 S2.00.05 S2.00.06 S2.14.05 S2.14.06 S2.15.04 S2.15.06
+S2.15.06 S2.00.05 S2.00.06 S2.00.07 S2.14.05 S2.14.06 S2.14.07 S2.15.05 S2.15.07
+S2.15.07 S2.00.06 S2.00.07 S2.14.07 S2.15.06
+S3.00.00 S3.00.01 S3.01.00 S3.01.01 S3.15.00 S3.15.01
+S3.00.01 S3.00.00 S3.00.02 S3.01.01 S3.01.02 S3.15.00 S3.15.01 S3.15.02
+S3.00.02 S3.00.01 S3.00.03 S3.01.02 S3.15.01 S3.15.02 S3.15.03
+S3.00.03 S3.00.02 S3.01.02 S3.01.03 S3.15.02 S3.15.03
+S3.01.00 S3.00.00 S3.01.01 S3.02.00 S3.02.01
+S3.01.01 S3.00.00 S3.00.01 S3.01.00 S3.01.02 S3.02.01 S3.02.02
+S3.01.02 S3.00.01 S3.00.02 S3.00.03 S3.01.01 S3.01.03 S3.02.02
+S3.01.03 S3.00.03 S3.01.02 S3.02.02 S3.02.03
+S3.02.00 S3.01.00 S3.02.01 S3.03.00 S3.03.01
+S3.02.01 S3.01.00 S3.01.01 S3.02.00 S3.02.02 S3.03.01 S3.03.02
+S3.02.02 S3.01.01 S3.01.02 S3.01.03 S3.02.01 S3.02.03 S3.03.02 S3.03.03
+S3.02.03 S3.01.03 S3.02.02 S3.03.03
+S3.03.00 S3.02.00 S3.03.01 S3.04.00 S3.04.01
+S3.03.01 S3.02.00 S3.02.01 S3.03.00 S3.03.02 S3.04.00 S3.04.01 S3.04.02
+S3.03.02 S3.02.01 S3.02.02 S3.03.01 S3.03.03 S3.04.01 S3.04.02 S3.04.03
+S3.03.03 S3.02.02 S3.02.03 S3.03.02 S3.04.02 S3.04.03
+S3.04.00 S3.03.00 S3.03.01 S3.04.01 S3.05.00
+S3.04.01 S3.03.00 S3.03.01 S3.03.02 S3.04.00 S3.04.02 S3.05.00 S3.05.01
+S3.04.02 S3.03.01 S3.03.02 S3.03.03 S3.04.01 S3.04.03 S3.05.01 S3.05.02
+S3.04.03 S3.03.02 S3.03.03 S3.04.02 S3.05.02 S3.05.03
+S3.05.00 S3.04.00 S3.04.01 S3.05.01 S3.06.00
+S3.05.01 S3.04.01 S3.04.02 S3.05.00 S3.05.02 S3.06.00 S3.06.01
+S3.05.02 S3.04.02 S3.04.03 S3.05.01 S3.05.03 S3.06.01 S3.06.02
+S3.05.03 S3.04.03 S3.05.02 S3.06.02 S3.06.03
+S3.06.00 S3.05.00 S3.05.01 S3.06.01 S3.07.00 S3.07.01
+S3.06.01 S3.05.01 S3.05.02 S3.06.00 S3.06.02 S3.07.01
+S3.06.02 S3.05.02 S3.05.03 S3.06.01 S3.06.03 S3.07.01 S3.07.02 S3.07.03
+S3.06.03 S3.05.03 S3.06.02 S3.07.03
+S3.07.00 S3.06.00 S3.07.01 S3.08.00 S3.08.01
+S3.07.01 S3.06.00 S3.06.01 S3.06.02 S3.07.00 S3.07.02 S3.08.00 S3.08.01 S3.08.02
+S3.07.02 S3.06.02 S3.07.01 S3.07.03 S3.08.01 S3.08.02 S3.08.03
+S3.07.03 S3.06.02 S3.06.03 S3.07.02 S3.08.02 S3.08.03
+S3.08.00 S3.07.00 S3.07.01 S3.08.01 S3.09.00 S3.09.01
+S3.08.01 S3.07.00 S3.07.01 S3.07.02 S3.08.00 S3.08.02 S3.09.01 S3.09.02
+S3.08.02 S3.07.01 S3.07.02 S3.07.03 S3.08.01 S3.08.03 S3.09.02
+S3.08.03 S3.07.02 S3.07.03 S3.08.02 S3.09.02 S3.09.03
+S3.09.00 S3.08.00 S3.09.01 S3.10.00 S3.10.01
+S3.09.01 S3.08.00 S3.08.01 S3.09.00 S3.09.02 S3.10.01 S3.10.02
+S3.09.02 S3.08.01 S3.08.02 S3.08.03 S3.09.01 S3.09.03 S3.10.02
+S3.09.03 S3.08.03 S3.09.02 S3.10.02 S3.10.03
+S3.10.00 S3.09.00 S3.10.01 S3.11.00 S3.11.01
+S3.10.01 S3.09.00 S3.09.01 S3.10.00 S3.10.02 S3.11.01 S3.11.02
+S3.10.02 S3.09.01 S3.09.02 S3.09.03 S3.10.01 S3.10.03 S3.11.02 S3.11.03
+S3.10.03 S3.09.03 S3.10.02 S3.11.03
+S3.11.00 S3.10.00 S3.11.01 S3.12.00 S3.12.01
+S3.11.01 S3.10.00 S3.10.01 S3.11.00 S3.11.02 S3.12.00 S3.12.01 S3.12.02
+S3.11.02 S3.10.01 S3.10.02 S3.11.01 S3.11.03 S3.12.01 S3.12.02 S3.12.03
+S3.11.03 S3.10.02 S3.10.03 S3.11.02 S3.12.02 S3.12.03
+S3.12.00 S3.11.00 S3.11.01 S3.12.01 S3.13.00
+S3.12.01 S3.11.00 S3.11.01 S3.11.02 S3.12.00 S3.12.02 S3.13.00 S3.13.01
+S3.12.02 S3.11.01 S3.11.02 S3.11.03 S3.12.01 S3.12.03 S3.13.01 S3.13.02
+S3.12.03 S3.11.02 S3.11.03 S3.12.02 S3.13.02 S3.13.03
+S3.13.00 S3.12.00 S3.12.01 S3.13.01 S3.14.00
+S3.13.01 S3.12.01 S3.12.02 S3.13.00 S3.13.02 S3.14.00 S3.14.01
+S3.13.02 S3.12.02 S3.12.03 S3.13.01 S3.13.03 S3.14.01 S3.14.02
+S3.13.03 S3.12.03 S3.13.02 S3.14.02 S3.14.03
+S3.14.00 S3.13.00 S3.13.01 S3.14.01 S3.15.00 S3.15.01
+S3.14.01 S3.13.01 S3.13.02 S3.14.00 S3.14.02 S3.15.01
+S3.14.02 S3.13.02 S3.13.03 S3.14.01 S3.14.03 S3.15.01 S3.15.02 S3.15.03
+S3.14.03 S3.13.03 S3.14.02 S3.15.03
+S3.15.00 S3.00.00 S3.00.01 S3.14.00 S3.15.01
+S3.15.01 S3.00.00 S3.00.01 S3.00.02 S3.14.00 S3.14.01 S3.14.02 S3.15.00 S3.15.02
+S3.15.02 S3.00.01 S3.00.02 S3.00.03 S3.14.02 S3.15.01 S3.15.03
+S3.15.03 S3.00.02 S3.00.03 S3.14.02 S3.14.03 S3.15.02
diff --git a/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsNextNew-April2014.txt b/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsNextNew-April2014.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d8c62b6ce5f6765478814c0c8f102c0fab07631f
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsNextNew-April2014.txt
@@ -0,0 +1,631 @@
+# 3D SuperCell FCal Neighbors Next in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Mon Apr 21 14:47:12 2014
+#
+# 3d neighbors next in sampling are all cells touching the same
+# eta phi area in the next sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without next sampling neighbors are not listed.
+# Cell names are similar to normal cells with 'S' instead of 'A'
+# for the A-side super cells and 'U' = 'S'+2 for C-side cells.
+#
+U1.00.00 U2.00.00
+U1.00.01 U2.00.00 U2.00.01 U2.00.02
+U1.00.02 U2.00.02
+U1.00.03 U2.00.02 U2.00.03 U2.01.02
+U1.00.04 U2.00.03 U2.00.04
+U1.00.05 U2.00.04
+U1.00.06 U2.00.04 U2.00.05 U2.01.05
+U1.00.07 U2.00.05
+U1.00.08 U2.00.06 U2.01.06
+U1.00.09 U2.00.06 U2.01.06 U2.01.07
+U1.00.10 U2.00.06
+U1.00.11 U2.00.06 U2.00.07
+U1.01.00 U2.00.00 U2.01.00 U2.01.01
+U1.01.01 U2.00.01 U2.01.00 U2.01.01 U2.01.02 U2.02.00
+U1.01.02 U2.01.01 U2.01.02
+U1.01.03 U2.01.02 U2.01.03
+U1.01.04 U2.00.03 U2.01.03 U2.01.04
+U1.01.05 U2.00.04 U2.01.04
+U1.01.06 U2.01.04 U2.01.05
+U1.01.07 U2.01.05 U2.01.06
+U1.01.08 U2.00.06 U2.01.05 U2.01.06 U2.02.06
+U1.01.09 U2.01.06 U2.01.07
+U1.01.10 U2.01.07 U2.02.07
+U1.01.11 U2.00.07 U2.01.07 U2.02.07
+U1.02.00 U2.02.00 U2.02.01 U2.03.00
+U1.02.01 U2.01.02 U2.02.00 U2.02.01 U2.02.02
+U1.02.02 U2.02.02 U2.02.03 U2.03.01
+U1.02.03 U2.02.02 U2.02.03
+U1.02.04 U2.02.03 U2.02.04
+U1.02.05 U2.01.04 U2.02.04 U2.03.03
+U1.02.06 U2.02.04 U2.02.05
+U1.02.07 U2.01.05 U2.02.04 U2.02.05 U2.02.06
+U1.02.08 U2.01.06 U2.02.05 U2.02.06 U2.03.05
+U1.02.09 U2.01.06 U2.02.06
+U1.02.10 U2.02.06 U2.02.07
+U1.02.11 U2.02.07
+U1.03.00 U2.02.01 U2.03.00
+U1.03.01 U2.02.01 U2.02.02 U2.03.00 U2.03.01 U2.03.02
+U1.03.02 U2.03.01 U2.03.02
+U1.03.03 U2.02.03 U2.03.02 U2.03.03
+U1.03.04 U2.02.03 U2.02.04 U2.03.02 U2.03.03 U2.03.04
+U1.03.05 U2.03.03 U2.03.04
+U1.03.06 U2.02.05 U2.03.04 U2.03.05
+U1.03.07 U2.03.04 U2.03.05 U2.03.06
+U1.03.08 U2.02.06 U2.03.06
+U1.03.09 U2.02.06 U2.02.07 U2.03.06
+U1.03.10 U2.02.07 U2.03.06 U2.03.07
+U1.03.11 U2.02.07 U2.03.06 U2.03.07
+U1.04.00 U2.03.00 U2.04.00
+U1.04.01 U2.03.01 U2.04.00 U2.04.01 U2.04.02
+U1.04.02 U2.03.01 U2.03.02 U2.04.01 U2.04.02
+U1.04.03 U2.03.02 U2.04.02 U2.04.03
+U1.04.04 U2.03.03 U2.04.02 U2.04.03 U2.04.04
+U1.04.05 U2.03.03 U2.03.04 U2.04.03 U2.04.04
+U1.04.06 U2.03.05 U2.04.04 U2.04.05
+U1.04.07 U2.03.05 U2.03.06 U2.04.05 U2.04.06
+U1.04.08 U2.03.06 U2.04.06
+U1.04.09 U2.03.06 U2.04.06 U2.05.07
+U1.04.10 U2.03.07 U2.04.06 U2.04.07 U2.05.07
+U1.04.11 U2.03.07 U2.04.07
+U1.05.00 U2.04.00 U2.05.00 U2.05.01 U2.05.02 U2.06.00
+U1.05.01 U2.04.00 U2.04.01 U2.05.00 U2.05.01 U2.05.02 U2.05.03 U2.06.02
+U1.05.02 U2.04.01 U2.05.02 U2.05.03
+U1.05.03 U2.04.02 U2.04.03 U2.05.03 U2.05.04
+U1.05.04 U2.04.03 U2.05.03 U2.05.04 U2.05.05 U2.06.04
+U1.05.05 U2.04.03 U2.04.04 U2.05.04 U2.05.05
+U1.05.06 U2.04.04 U2.04.05 U2.05.04 U2.05.05
+U1.05.07 U2.04.05 U2.05.05 U2.05.06
+U1.05.08 U2.04.06 U2.05.06 U2.05.07 U2.06.06
+U1.05.09 U2.05.06 U2.05.07
+U1.05.10 U2.04.07 U2.05.06 U2.05.07
+U1.05.11 U2.05.07
+U1.06.00 U2.06.00 U2.06.01 U2.07.00
+U1.06.01 U2.05.01 U2.06.00 U2.06.01 U2.06.02 U2.06.03 U2.07.01
+U1.06.02 U2.05.02 U2.06.01 U2.06.02 U2.06.03
+U1.06.03 U2.06.02 U2.06.03 U2.06.04
+U1.06.04 U2.05.04 U2.06.03 U2.06.04 U2.07.03 U2.07.04
+U1.06.05 U2.06.04 U2.06.05 U2.07.04
+U1.06.06 U2.05.05 U2.06.04 U2.06.05 U2.06.06
+U1.06.07 U2.05.06 U2.06.05 U2.06.06
+U1.06.08 U2.05.06 U2.06.06 U2.06.07
+U1.06.09 U2.06.07
+U1.06.10 U2.05.07 U2.06.07
+U1.06.11 U2.05.07 U2.06.07
+U1.07.00 U2.07.00 U2.07.01
+U1.07.01 U2.07.00 U2.07.01 U2.07.02
+U1.07.02 U2.06.02 U2.07.01 U2.07.02 U2.07.03
+U1.07.03 U2.06.02 U2.06.03 U2.07.02 U2.07.03
+U1.07.04 U2.07.03 U2.07.04
+U1.07.05 U2.06.05 U2.07.03 U2.07.04 U2.07.05
+U1.07.06 U2.06.05 U2.07.04 U2.07.05
+U1.07.07 U2.07.05 U2.07.06
+U1.07.08 U2.06.06 U2.07.05 U2.07.06
+U1.07.09 U2.06.06 U2.06.07 U2.07.06
+U1.07.10 U2.07.06 U2.07.07
+U1.07.11 U2.06.07 U2.07.07
+U1.08.00 U2.08.00 U2.08.01
+U1.08.01 U2.08.00 U2.08.01 U2.08.02 U2.09.02
+U1.08.02 U2.08.02 U2.08.03
+U1.08.03 U2.08.02 U2.08.03 U2.08.04 U2.09.02 U2.09.03
+U1.08.04 U2.08.03 U2.08.04
+U1.08.05 U2.08.04 U2.08.05 U2.09.05
+U1.08.06 U2.08.04 U2.08.05 U2.09.05
+U1.08.07 U2.08.05 U2.08.06
+U1.08.08 U2.08.06 U2.09.06 U2.09.07
+U1.08.09 U2.08.06 U2.09.07
+U1.08.10 U2.08.06 U2.08.07
+U1.08.11 U2.08.07 U2.09.07
+U1.09.00 U2.08.00 U2.09.00 U2.09.01
+U1.09.01 U2.08.01 U2.09.00 U2.09.01 U2.09.02 U2.09.03 U2.10.00 U2.10.01
+U1.09.02 U2.09.01 U2.09.02 U2.09.03 U2.10.02
+U1.09.03 U2.09.02 U2.09.03 U2.09.04
+U1.09.04 U2.08.03 U2.08.04 U2.09.03 U2.09.04 U2.10.04
+U1.09.05 U2.08.04 U2.09.04 U2.09.05
+U1.09.06 U2.09.04 U2.09.05 U2.09.06 U2.10.05
+U1.09.07 U2.09.05 U2.09.06 U2.10.06
+U1.09.08 U2.09.06 U2.09.07 U2.10.06
+U1.09.09 U2.09.07 U2.10.07
+U1.09.10 U2.09.07 U2.10.07
+U1.09.11 U2.09.07 U2.10.07
+U1.10.00 U2.10.00 U2.10.01 U2.10.02 U2.11.00
+U1.10.01 U2.09.02 U2.10.00 U2.10.01 U2.10.02 U2.10.03 U2.11.00 U2.11.01
+U1.10.02 U2.10.02 U2.10.03 U2.11.01
+U1.10.03 U2.10.02 U2.10.03 U2.10.04 U2.11.02
+U1.10.04 U2.10.03 U2.10.04 U2.11.02 U2.11.03
+U1.10.05 U2.09.04 U2.10.04 U2.10.05 U2.11.03 U2.11.04
+U1.10.06 U2.10.04 U2.10.05 U2.11.04
+U1.10.07 U2.10.05 U2.10.06 U2.11.04 U2.11.05
+U1.10.08 U2.09.06 U2.10.06 U2.11.05 U2.11.06
+U1.10.09 U2.10.06 U2.10.07 U2.11.06
+U1.10.10 U2.10.06 U2.10.07
+U1.10.11 U2.10.07 U2.11.07
+U1.11.00 U2.11.00 U2.12.00
+U1.11.01 U2.11.00 U2.11.01 U2.11.02 U2.12.01
+U1.11.02 U2.11.01 U2.11.02 U2.12.01 U2.12.02
+U1.11.03 U2.11.02 U2.11.03 U2.12.02
+U1.11.04 U2.11.02 U2.11.03 U2.11.04 U2.12.03
+U1.11.05 U2.11.03 U2.11.04 U2.12.03 U2.12.04
+U1.11.06 U2.11.04 U2.11.05 U2.12.05
+U1.11.07 U2.11.05 U2.11.06 U2.12.05 U2.12.06
+U1.11.08 U2.11.06 U2.12.06
+U1.11.09 U2.10.07 U2.11.06 U2.12.06
+U1.11.10 U2.10.07 U2.11.06 U2.11.07 U2.12.07
+U1.11.11 U2.11.07 U2.12.07
+U1.12.00 U2.12.00
+U1.12.01 U2.12.00 U2.12.01 U2.12.02 U2.13.01 U2.13.02
+U1.12.02 U2.12.01 U2.12.02
+U1.12.03 U2.12.02 U2.12.03 U2.13.03
+U1.12.04 U2.12.02 U2.12.03 U2.12.04 U2.13.03 U2.13.04
+U1.12.05 U2.12.03 U2.12.04
+U1.12.06 U2.12.04 U2.12.05 U2.13.05
+U1.12.07 U2.12.04 U2.12.05 U2.12.06
+U1.12.08 U2.12.06 U2.13.06
+U1.12.09 U2.12.06 U2.13.06 U2.13.07
+U1.12.10 U2.12.06 U2.12.07 U2.13.07
+U1.12.11 U2.12.06 U2.12.07 U2.13.07
+U1.13.00 U2.12.00 U2.13.00 U2.13.01 U2.14.00
+U1.13.01 U2.13.00 U2.13.01 U2.13.02 U2.14.02
+U1.13.02 U2.12.01 U2.13.02 U2.13.03
+U1.13.03 U2.13.03 U2.13.04
+U1.13.04 U2.13.03 U2.13.04 U2.14.04
+U1.13.05 U2.12.03 U2.13.04 U2.13.05
+U1.13.06 U2.13.04 U2.13.05
+U1.13.07 U2.12.05 U2.13.05 U2.13.06 U2.14.05
+U1.13.08 U2.13.06 U2.14.06
+U1.13.09 U2.13.06 U2.13.07 U2.14.06
+U1.13.10 U2.13.06 U2.13.07 U2.14.07
+U1.13.11 U2.13.07 U2.14.07
+U1.14.00 U2.14.00 U2.14.01 U2.15.00
+U1.14.01 U2.13.01 U2.14.00 U2.14.01 U2.14.02 U2.15.01
+U1.14.02 U2.14.01 U2.14.02
+U1.14.03 U2.14.02 U2.14.03
+U1.14.04 U2.14.03 U2.14.04 U2.15.03
+U1.14.05 U2.14.04 U2.15.04
+U1.14.06 U2.14.04 U2.14.05
+U1.14.07 U2.14.05 U2.14.06
+U1.14.08 U2.13.06 U2.14.05 U2.14.06 U2.15.06
+U1.14.09 U2.14.06 U2.14.07
+U1.14.10 U2.14.07
+U1.14.11 U2.13.07 U2.14.07 U2.15.07
+U1.15.00 U2.15.00
+U1.15.01 U2.15.00 U2.15.01
+U1.15.02 U2.15.01 U2.15.02
+U1.15.03 U2.14.02 U2.15.02 U2.15.03
+U1.15.04 U2.15.03
+U1.15.05 U2.15.03 U2.15.04
+U1.15.06 U2.14.05 U2.15.04 U2.15.05
+U1.15.07 U2.15.05
+U1.15.08 U2.15.05 U2.15.06
+U1.15.09 U2.14.06 U2.15.06
+U1.15.10 U2.15.06
+U1.15.11 U2.15.06 U2.15.07
+U2.00.01 U3.00.00 U3.01.00
+U2.00.02 U3.00.00 U3.00.01
+U2.00.03 U3.00.00 U3.00.01 U3.00.02
+U2.00.04 U3.00.01 U3.00.02
+U2.00.05 U3.00.02 U3.00.03
+U2.00.06 U3.00.03 U3.01.03
+U2.00.07 U3.00.03 U3.01.03
+U2.01.00 U3.02.00
+U2.01.01 U3.01.00
+U2.01.02 U3.00.00 U3.01.00 U3.01.01 U3.02.00
+U2.01.03 U3.01.00 U3.01.01 U3.02.01
+U2.01.04 U3.01.01 U3.01.02 U3.02.02
+U2.01.05 U3.00.01 U3.01.02
+U2.01.06 U3.00.03 U3.01.02 U3.01.03 U3.02.03
+U2.01.07 U3.01.03 U3.02.03
+U2.02.01 U3.02.00
+U2.02.02 U3.01.00 U3.02.00 U3.02.01
+U2.02.03 U3.02.00 U3.02.01 U3.03.01
+U2.02.04 U3.01.01 U3.02.01 U3.02.02
+U2.02.05 U3.02.02 U3.03.02 U3.03.03
+U2.02.06 U3.01.02 U3.02.02 U3.02.03
+U2.02.07 U3.01.03 U3.02.03 U3.03.03
+U2.03.00 U3.03.00
+U2.03.01 U3.02.00 U3.03.00 U3.03.01 U3.04.00 U3.04.01
+U2.03.02 U3.02.01 U3.03.00 U3.03.01 U3.03.02 U3.04.01
+U2.03.03 U3.02.01 U3.02.02 U3.03.01 U3.03.02 U3.04.01 U3.04.02
+U2.03.04 U3.03.02 U3.03.03 U3.04.02
+U2.03.05 U3.03.02 U3.03.03 U3.04.02 U3.04.03
+U2.03.06 U3.02.03 U3.03.03 U3.04.03
+U2.03.07 U3.03.03 U3.04.03
+U2.04.00 U3.04.00
+U2.04.01 U3.04.00 U3.04.01 U3.05.00
+U2.04.02 U3.04.00 U3.04.01 U3.05.01
+U2.04.03 U3.04.01 U3.04.02 U3.05.01 U3.05.02
+U2.04.04 U3.04.02 U3.04.03 U3.05.01 U3.05.02
+U2.04.05 U3.04.02 U3.04.03 U3.05.02
+U2.04.06 U3.04.03 U3.05.03
+U2.04.07 U3.04.03
+U2.05.01 U3.05.00
+U2.05.02 U3.05.00 U3.05.01 U3.06.00
+U2.05.03 U3.04.01 U3.05.00 U3.05.01
+U2.05.04 U3.05.01 U3.05.02 U3.06.01
+U2.05.05 U3.05.02 U3.06.01
+U2.05.06 U3.05.02 U3.05.03 U3.06.02
+U2.05.07 U3.04.03 U3.05.03 U3.06.03
+U2.06.01 U3.06.00
+U2.06.02 U3.05.00 U3.06.00 U3.07.00
+U2.06.03 U3.05.01 U3.06.00 U3.06.01
+U2.06.04 U3.06.00 U3.06.01
+U2.06.05 U3.06.01 U3.06.02 U3.07.01
+U2.06.06 U3.06.02 U3.06.03 U3.07.03
+U2.06.07 U3.06.03
+U2.07.01 U3.07.00
+U2.07.02 U3.07.00 U3.07.01
+U2.07.03 U3.07.00 U3.07.01
+U2.07.04 U3.07.01 U3.07.02
+U2.07.05 U3.07.02
+U2.07.06 U3.07.02 U3.07.03
+U2.07.07 U3.06.03 U3.07.03
+U2.08.01 U3.08.00 U3.09.00
+U2.08.02 U3.08.00 U3.08.01
+U2.08.03 U3.08.00 U3.08.01
+U2.08.04 U3.08.01 U3.08.02
+U2.08.05 U3.08.02
+U2.08.06 U3.08.02 U3.08.03
+U2.08.07 U3.08.03 U3.09.03
+U2.09.01 U3.09.00
+U2.09.02 U3.08.00 U3.09.00 U3.09.01 U3.10.00
+U2.09.03 U3.09.00 U3.09.01 U3.10.01
+U2.09.04 U3.09.01 U3.09.02
+U2.09.05 U3.08.01 U3.09.02
+U2.09.06 U3.08.03 U3.09.02 U3.09.03
+U2.09.07 U3.09.03 U3.10.03
+U2.10.01 U3.10.00
+U2.10.02 U3.09.00 U3.10.00 U3.10.01
+U2.10.03 U3.10.00 U3.10.01 U3.11.01
+U2.10.04 U3.09.01 U3.10.01 U3.10.02
+U2.10.05 U3.09.01 U3.10.02
+U2.10.06 U3.09.02 U3.09.03 U3.10.02 U3.10.03
+U2.10.07 U3.09.03 U3.10.03 U3.11.03
+U2.11.00 U3.11.00
+U2.11.01 U3.10.00 U3.11.00 U3.11.01
+U2.11.02 U3.10.01 U3.11.00 U3.11.01
+U2.11.03 U3.10.01 U3.10.02 U3.11.01 U3.11.02
+U2.11.04 U3.10.01 U3.10.02 U3.11.02 U3.11.03
+U2.11.05 U3.10.02 U3.11.02 U3.11.03
+U2.11.06 U3.10.03 U3.11.03
+U2.11.07 U3.11.03
+U2.12.00 U3.12.00
+U2.12.01 U3.11.00 U3.11.01 U3.12.00 U3.12.01 U3.13.00
+U2.12.02 U3.11.01 U3.12.00 U3.12.01 U3.12.02 U3.13.01
+U2.12.03 U3.11.01 U3.11.02 U3.12.01 U3.12.02 U3.13.01 U3.13.02
+U2.12.04 U3.11.02 U3.12.02 U3.12.03
+U2.12.05 U3.11.02 U3.11.03 U3.12.02 U3.12.03
+U2.12.06 U3.11.03 U3.12.03 U3.13.03
+U2.12.07 U3.11.03 U3.12.03
+U2.13.01 U3.13.00
+U2.13.02 U3.13.00 U3.13.01 U3.14.00
+U2.13.03 U3.12.01 U3.13.00 U3.13.01
+U2.13.04 U3.13.01 U3.13.02 U3.14.01
+U2.13.05 U3.12.02 U3.12.03 U3.13.02
+U2.13.06 U3.13.02 U3.13.03 U3.14.02
+U2.13.07 U3.12.03 U3.13.03 U3.14.03
+U2.14.01 U3.13.00 U3.14.00
+U2.14.02 U3.13.00 U3.14.00 U3.14.01 U3.15.00
+U2.14.03 U3.13.01 U3.14.00 U3.14.01
+U2.14.04 U3.13.02 U3.14.01
+U2.14.05 U3.14.01 U3.14.02 U3.15.01
+U2.14.06 U3.13.03 U3.14.02 U3.14.03 U3.15.03
+U2.14.07 U3.14.03
+U2.15.01 U3.14.00 U3.15.00
+U2.15.02 U3.15.00 U3.15.01
+U2.15.03 U3.15.00 U3.15.01 U3.15.02
+U2.15.04 U3.15.01 U3.15.02
+U2.15.05 U3.15.02 U3.15.03
+U2.15.06 U3.14.03 U3.15.03
+U2.15.07 U3.14.03 U3.15.03
+S1.00.00 S2.00.00
+S1.00.01 S2.00.00 S2.00.01 S2.00.02
+S1.00.02 S2.00.02
+S1.00.03 S2.00.02 S2.00.03 S2.01.02
+S1.00.04 S2.00.03 S2.00.04
+S1.00.05 S2.00.04
+S1.00.06 S2.00.04 S2.00.05 S2.01.05
+S1.00.07 S2.00.05
+S1.00.08 S2.00.06 S2.01.06
+S1.00.09 S2.00.06 S2.01.06 S2.01.07
+S1.00.10 S2.00.06
+S1.00.11 S2.00.06 S2.00.07
+S1.01.00 S2.00.00 S2.01.00 S2.01.01
+S1.01.01 S2.00.01 S2.01.00 S2.01.01 S2.01.02 S2.02.00
+S1.01.02 S2.01.01 S2.01.02
+S1.01.03 S2.01.02 S2.01.03
+S1.01.04 S2.00.03 S2.01.03 S2.01.04
+S1.01.05 S2.00.04 S2.01.04
+S1.01.06 S2.01.04 S2.01.05
+S1.01.07 S2.01.05 S2.01.06
+S1.01.08 S2.00.06 S2.01.05 S2.01.06 S2.02.06
+S1.01.09 S2.01.06 S2.01.07
+S1.01.10 S2.01.07 S2.02.07
+S1.01.11 S2.00.07 S2.01.07 S2.02.07
+S1.02.00 S2.02.00 S2.02.01 S2.03.00
+S1.02.01 S2.01.02 S2.02.00 S2.02.01 S2.02.02
+S1.02.02 S2.02.02 S2.02.03 S2.03.01
+S1.02.03 S2.02.02 S2.02.03
+S1.02.04 S2.02.03 S2.02.04
+S1.02.05 S2.01.04 S2.02.04 S2.03.03
+S1.02.06 S2.02.04 S2.02.05
+S1.02.07 S2.01.05 S2.02.04 S2.02.05 S2.02.06
+S1.02.08 S2.01.06 S2.02.05 S2.02.06 S2.03.05
+S1.02.09 S2.01.06 S2.02.06
+S1.02.10 S2.02.06 S2.02.07
+S1.02.11 S2.02.07
+S1.03.00 S2.02.01 S2.03.00
+S1.03.01 S2.02.01 S2.02.02 S2.03.00 S2.03.01 S2.03.02
+S1.03.02 S2.03.01 S2.03.02
+S1.03.03 S2.02.03 S2.03.02 S2.03.03
+S1.03.04 S2.02.03 S2.02.04 S2.03.02 S2.03.03 S2.03.04
+S1.03.05 S2.03.03 S2.03.04
+S1.03.06 S2.02.05 S2.03.04 S2.03.05
+S1.03.07 S2.03.04 S2.03.05 S2.03.06
+S1.03.08 S2.02.06 S2.03.06
+S1.03.09 S2.02.06 S2.02.07 S2.03.06
+S1.03.10 S2.02.07 S2.03.06 S2.03.07
+S1.03.11 S2.02.07 S2.03.06 S2.03.07
+S1.04.00 S2.03.00 S2.04.00
+S1.04.01 S2.03.01 S2.04.00 S2.04.01 S2.04.02
+S1.04.02 S2.03.01 S2.03.02 S2.04.01 S2.04.02
+S1.04.03 S2.03.02 S2.04.02 S2.04.03
+S1.04.04 S2.03.03 S2.04.02 S2.04.03 S2.04.04
+S1.04.05 S2.03.03 S2.03.04 S2.04.03 S2.04.04
+S1.04.06 S2.03.05 S2.04.04 S2.04.05
+S1.04.07 S2.03.05 S2.03.06 S2.04.05 S2.04.06
+S1.04.08 S2.03.06 S2.04.06
+S1.04.09 S2.03.06 S2.04.06 S2.05.07
+S1.04.10 S2.03.07 S2.04.06 S2.04.07 S2.05.07
+S1.04.11 S2.03.07 S2.04.07
+S1.05.00 S2.04.00 S2.05.00 S2.05.01 S2.05.02 S2.06.00
+S1.05.01 S2.04.00 S2.04.01 S2.05.00 S2.05.01 S2.05.02 S2.05.03 S2.06.02
+S1.05.02 S2.04.01 S2.05.02 S2.05.03
+S1.05.03 S2.04.02 S2.04.03 S2.05.03 S2.05.04
+S1.05.04 S2.04.03 S2.05.03 S2.05.04 S2.05.05 S2.06.04
+S1.05.05 S2.04.03 S2.04.04 S2.05.04 S2.05.05
+S1.05.06 S2.04.04 S2.04.05 S2.05.04 S2.05.05
+S1.05.07 S2.04.05 S2.05.05 S2.05.06
+S1.05.08 S2.04.06 S2.05.06 S2.05.07 S2.06.06
+S1.05.09 S2.05.06 S2.05.07
+S1.05.10 S2.04.07 S2.05.06 S2.05.07
+S1.05.11 S2.05.07
+S1.06.00 S2.06.00 S2.06.01 S2.07.00
+S1.06.01 S2.05.01 S2.06.00 S2.06.01 S2.06.02 S2.06.03 S2.07.01
+S1.06.02 S2.05.02 S2.06.01 S2.06.02 S2.06.03
+S1.06.03 S2.06.02 S2.06.03 S2.06.04
+S1.06.04 S2.05.04 S2.06.03 S2.06.04 S2.07.03 S2.07.04
+S1.06.05 S2.06.04 S2.06.05 S2.07.04
+S1.06.06 S2.05.05 S2.06.04 S2.06.05 S2.06.06
+S1.06.07 S2.05.06 S2.06.05 S2.06.06
+S1.06.08 S2.05.06 S2.06.06 S2.06.07
+S1.06.09 S2.06.07
+S1.06.10 S2.05.07 S2.06.07
+S1.06.11 S2.05.07 S2.06.07
+S1.07.00 S2.07.00 S2.07.01
+S1.07.01 S2.07.00 S2.07.01 S2.07.02
+S1.07.02 S2.06.02 S2.07.01 S2.07.02 S2.07.03
+S1.07.03 S2.06.02 S2.06.03 S2.07.02 S2.07.03
+S1.07.04 S2.07.03 S2.07.04
+S1.07.05 S2.06.05 S2.07.03 S2.07.04 S2.07.05
+S1.07.06 S2.06.05 S2.07.04 S2.07.05
+S1.07.07 S2.07.05 S2.07.06
+S1.07.08 S2.06.06 S2.07.05 S2.07.06
+S1.07.09 S2.06.06 S2.06.07 S2.07.06
+S1.07.10 S2.07.06 S2.07.07
+S1.07.11 S2.06.07 S2.07.07
+S1.08.00 S2.08.00 S2.08.01
+S1.08.01 S2.08.00 S2.08.01 S2.08.02 S2.09.02
+S1.08.02 S2.08.02 S2.08.03
+S1.08.03 S2.08.02 S2.08.03 S2.08.04 S2.09.02 S2.09.03
+S1.08.04 S2.08.03 S2.08.04
+S1.08.05 S2.08.04 S2.08.05 S2.09.05
+S1.08.06 S2.08.04 S2.08.05 S2.09.05
+S1.08.07 S2.08.05 S2.08.06
+S1.08.08 S2.08.06 S2.09.06 S2.09.07
+S1.08.09 S2.08.06 S2.09.07
+S1.08.10 S2.08.06 S2.08.07
+S1.08.11 S2.08.07 S2.09.07
+S1.09.00 S2.08.00 S2.09.00 S2.09.01
+S1.09.01 S2.08.01 S2.09.00 S2.09.01 S2.09.02 S2.09.03 S2.10.00 S2.10.01
+S1.09.02 S2.09.01 S2.09.02 S2.09.03 S2.10.02
+S1.09.03 S2.09.02 S2.09.03 S2.09.04
+S1.09.04 S2.08.03 S2.08.04 S2.09.03 S2.09.04 S2.10.04
+S1.09.05 S2.08.04 S2.09.04 S2.09.05
+S1.09.06 S2.09.04 S2.09.05 S2.09.06 S2.10.05
+S1.09.07 S2.09.05 S2.09.06 S2.10.06
+S1.09.08 S2.09.06 S2.09.07 S2.10.06
+S1.09.09 S2.09.07 S2.10.07
+S1.09.10 S2.09.07 S2.10.07
+S1.09.11 S2.09.07 S2.10.07
+S1.10.00 S2.10.00 S2.10.01 S2.10.02 S2.11.00
+S1.10.01 S2.09.02 S2.10.00 S2.10.01 S2.10.02 S2.10.03 S2.11.00 S2.11.01
+S1.10.02 S2.10.02 S2.10.03 S2.11.01
+S1.10.03 S2.10.02 S2.10.03 S2.10.04 S2.11.02
+S1.10.04 S2.10.03 S2.10.04 S2.11.02 S2.11.03
+S1.10.05 S2.09.04 S2.10.04 S2.10.05 S2.11.03 S2.11.04
+S1.10.06 S2.10.04 S2.10.05 S2.11.04
+S1.10.07 S2.10.05 S2.10.06 S2.11.04 S2.11.05
+S1.10.08 S2.09.06 S2.10.06 S2.11.05 S2.11.06
+S1.10.09 S2.10.06 S2.10.07 S2.11.06
+S1.10.10 S2.10.06 S2.10.07
+S1.10.11 S2.10.07 S2.11.07
+S1.11.00 S2.11.00 S2.12.00
+S1.11.01 S2.11.00 S2.11.01 S2.11.02 S2.12.01
+S1.11.02 S2.11.01 S2.11.02 S2.12.01 S2.12.02
+S1.11.03 S2.11.02 S2.11.03 S2.12.02
+S1.11.04 S2.11.02 S2.11.03 S2.11.04 S2.12.03
+S1.11.05 S2.11.03 S2.11.04 S2.12.03 S2.12.04
+S1.11.06 S2.11.04 S2.11.05 S2.12.05
+S1.11.07 S2.11.05 S2.11.06 S2.12.05 S2.12.06
+S1.11.08 S2.11.06 S2.12.06
+S1.11.09 S2.10.07 S2.11.06 S2.12.06
+S1.11.10 S2.10.07 S2.11.06 S2.11.07 S2.12.07
+S1.11.11 S2.11.07 S2.12.07
+S1.12.00 S2.12.00
+S1.12.01 S2.12.00 S2.12.01 S2.12.02 S2.13.01 S2.13.02
+S1.12.02 S2.12.01 S2.12.02
+S1.12.03 S2.12.02 S2.12.03 S2.13.03
+S1.12.04 S2.12.02 S2.12.03 S2.12.04 S2.13.03 S2.13.04
+S1.12.05 S2.12.03 S2.12.04
+S1.12.06 S2.12.04 S2.12.05 S2.13.05
+S1.12.07 S2.12.04 S2.12.05 S2.12.06
+S1.12.08 S2.12.06 S2.13.06
+S1.12.09 S2.12.06 S2.13.06 S2.13.07
+S1.12.10 S2.12.06 S2.12.07 S2.13.07
+S1.12.11 S2.12.06 S2.12.07 S2.13.07
+S1.13.00 S2.12.00 S2.13.00 S2.13.01 S2.14.00
+S1.13.01 S2.13.00 S2.13.01 S2.13.02 S2.14.02
+S1.13.02 S2.12.01 S2.13.02 S2.13.03
+S1.13.03 S2.13.03 S2.13.04
+S1.13.04 S2.13.03 S2.13.04 S2.14.04
+S1.13.05 S2.12.03 S2.13.04 S2.13.05
+S1.13.06 S2.13.04 S2.13.05
+S1.13.07 S2.12.05 S2.13.05 S2.13.06 S2.14.05
+S1.13.08 S2.13.06 S2.14.06
+S1.13.09 S2.13.06 S2.13.07 S2.14.06
+S1.13.10 S2.13.06 S2.13.07 S2.14.07
+S1.13.11 S2.13.07 S2.14.07
+S1.14.00 S2.14.00 S2.14.01 S2.15.00
+S1.14.01 S2.13.01 S2.14.00 S2.14.01 S2.14.02 S2.15.01
+S1.14.02 S2.14.01 S2.14.02
+S1.14.03 S2.14.02 S2.14.03
+S1.14.04 S2.14.03 S2.14.04 S2.15.03
+S1.14.05 S2.14.04 S2.15.04
+S1.14.06 S2.14.04 S2.14.05
+S1.14.07 S2.14.05 S2.14.06
+S1.14.08 S2.13.06 S2.14.05 S2.14.06 S2.15.06
+S1.14.09 S2.14.06 S2.14.07
+S1.14.10 S2.14.07
+S1.14.11 S2.13.07 S2.14.07 S2.15.07
+S1.15.00 S2.15.00
+S1.15.01 S2.15.00 S2.15.01
+S1.15.02 S2.15.01 S2.15.02
+S1.15.03 S2.14.02 S2.15.02 S2.15.03
+S1.15.04 S2.15.03
+S1.15.05 S2.15.03 S2.15.04
+S1.15.06 S2.14.05 S2.15.04 S2.15.05
+S1.15.07 S2.15.05
+S1.15.08 S2.15.05 S2.15.06
+S1.15.09 S2.14.06 S2.15.06
+S1.15.10 S2.15.06
+S1.15.11 S2.15.06 S2.15.07
+S2.00.01 S3.00.00 S3.01.00
+S2.00.02 S3.00.00 S3.00.01
+S2.00.03 S3.00.00 S3.00.01 S3.00.02
+S2.00.04 S3.00.01 S3.00.02
+S2.00.05 S3.00.02 S3.00.03
+S2.00.06 S3.00.03 S3.01.03
+S2.00.07 S3.00.03 S3.01.03
+S2.01.00 S3.02.00
+S2.01.01 S3.01.00
+S2.01.02 S3.00.00 S3.01.00 S3.01.01 S3.02.00
+S2.01.03 S3.01.00 S3.01.01 S3.02.01
+S2.01.04 S3.01.01 S3.01.02 S3.02.02
+S2.01.05 S3.00.01 S3.01.02
+S2.01.06 S3.00.03 S3.01.02 S3.01.03 S3.02.03
+S2.01.07 S3.01.03 S3.02.03
+S2.02.01 S3.02.00
+S2.02.02 S3.01.00 S3.02.00 S3.02.01
+S2.02.03 S3.02.00 S3.02.01 S3.03.01
+S2.02.04 S3.01.01 S3.02.01 S3.02.02
+S2.02.05 S3.02.02 S3.03.02 S3.03.03
+S2.02.06 S3.01.02 S3.02.02 S3.02.03
+S2.02.07 S3.01.03 S3.02.03 S3.03.03
+S2.03.00 S3.03.00
+S2.03.01 S3.02.00 S3.03.00 S3.03.01 S3.04.00 S3.04.01
+S2.03.02 S3.02.01 S3.03.00 S3.03.01 S3.03.02 S3.04.01
+S2.03.03 S3.02.01 S3.02.02 S3.03.01 S3.03.02 S3.04.01 S3.04.02
+S2.03.04 S3.03.02 S3.03.03 S3.04.02
+S2.03.05 S3.03.02 S3.03.03 S3.04.02 S3.04.03
+S2.03.06 S3.02.03 S3.03.03 S3.04.03
+S2.03.07 S3.03.03 S3.04.03
+S2.04.00 S3.04.00
+S2.04.01 S3.04.00 S3.04.01 S3.05.00
+S2.04.02 S3.04.00 S3.04.01 S3.05.01
+S2.04.03 S3.04.01 S3.04.02 S3.05.01 S3.05.02
+S2.04.04 S3.04.02 S3.04.03 S3.05.01 S3.05.02
+S2.04.05 S3.04.02 S3.04.03 S3.05.02
+S2.04.06 S3.04.03 S3.05.03
+S2.04.07 S3.04.03
+S2.05.01 S3.05.00
+S2.05.02 S3.05.00 S3.05.01 S3.06.00
+S2.05.03 S3.04.01 S3.05.00 S3.05.01
+S2.05.04 S3.05.01 S3.05.02 S3.06.01
+S2.05.05 S3.05.02 S3.06.01
+S2.05.06 S3.05.02 S3.05.03 S3.06.02
+S2.05.07 S3.04.03 S3.05.03 S3.06.03
+S2.06.01 S3.06.00
+S2.06.02 S3.05.00 S3.06.00 S3.07.00
+S2.06.03 S3.05.01 S3.06.00 S3.06.01
+S2.06.04 S3.06.00 S3.06.01
+S2.06.05 S3.06.01 S3.06.02 S3.07.01
+S2.06.06 S3.06.02 S3.06.03 S3.07.03
+S2.06.07 S3.06.03
+S2.07.01 S3.07.00
+S2.07.02 S3.07.00 S3.07.01
+S2.07.03 S3.07.00 S3.07.01
+S2.07.04 S3.07.01 S3.07.02
+S2.07.05 S3.07.02
+S2.07.06 S3.07.02 S3.07.03
+S2.07.07 S3.06.03 S3.07.03
+S2.08.01 S3.08.00 S3.09.00
+S2.08.02 S3.08.00 S3.08.01
+S2.08.03 S3.08.00 S3.08.01
+S2.08.04 S3.08.01 S3.08.02
+S2.08.05 S3.08.02
+S2.08.06 S3.08.02 S3.08.03
+S2.08.07 S3.08.03 S3.09.03
+S2.09.01 S3.09.00
+S2.09.02 S3.08.00 S3.09.00 S3.09.01 S3.10.00
+S2.09.03 S3.09.00 S3.09.01 S3.10.01
+S2.09.04 S3.09.01 S3.09.02
+S2.09.05 S3.08.01 S3.09.02
+S2.09.06 S3.08.03 S3.09.02 S3.09.03
+S2.09.07 S3.09.03 S3.10.03
+S2.10.01 S3.10.00
+S2.10.02 S3.09.00 S3.10.00 S3.10.01
+S2.10.03 S3.10.00 S3.10.01 S3.11.01
+S2.10.04 S3.09.01 S3.10.01 S3.10.02
+S2.10.05 S3.09.01 S3.10.02
+S2.10.06 S3.09.02 S3.09.03 S3.10.02 S3.10.03
+S2.10.07 S3.09.03 S3.10.03 S3.11.03
+S2.11.00 S3.11.00
+S2.11.01 S3.10.00 S3.11.00 S3.11.01
+S2.11.02 S3.10.01 S3.11.00 S3.11.01
+S2.11.03 S3.10.01 S3.10.02 S3.11.01 S3.11.02
+S2.11.04 S3.10.01 S3.10.02 S3.11.02 S3.11.03
+S2.11.05 S3.10.02 S3.11.02 S3.11.03
+S2.11.06 S3.10.03 S3.11.03
+S2.11.07 S3.11.03
+S2.12.00 S3.12.00
+S2.12.01 S3.11.00 S3.11.01 S3.12.00 S3.12.01 S3.13.00
+S2.12.02 S3.11.01 S3.12.00 S3.12.01 S3.12.02 S3.13.01
+S2.12.03 S3.11.01 S3.11.02 S3.12.01 S3.12.02 S3.13.01 S3.13.02
+S2.12.04 S3.11.02 S3.12.02 S3.12.03
+S2.12.05 S3.11.02 S3.11.03 S3.12.02 S3.12.03
+S2.12.06 S3.11.03 S3.12.03 S3.13.03
+S2.12.07 S3.11.03 S3.12.03
+S2.13.01 S3.13.00
+S2.13.02 S3.13.00 S3.13.01 S3.14.00
+S2.13.03 S3.12.01 S3.13.00 S3.13.01
+S2.13.04 S3.13.01 S3.13.02 S3.14.01
+S2.13.05 S3.12.02 S3.12.03 S3.13.02
+S2.13.06 S3.13.02 S3.13.03 S3.14.02
+S2.13.07 S3.12.03 S3.13.03 S3.14.03
+S2.14.01 S3.13.00 S3.14.00
+S2.14.02 S3.13.00 S3.14.00 S3.14.01 S3.15.00
+S2.14.03 S3.13.01 S3.14.00 S3.14.01
+S2.14.04 S3.13.02 S3.14.01
+S2.14.05 S3.14.01 S3.14.02 S3.15.01
+S2.14.06 S3.13.03 S3.14.02 S3.14.03 S3.15.03
+S2.14.07 S3.14.03
+S2.15.01 S3.14.00 S3.15.00
+S2.15.02 S3.15.00 S3.15.01
+S2.15.03 S3.15.00 S3.15.01 S3.15.02
+S2.15.04 S3.15.01 S3.15.02
+S2.15.05 S3.15.02 S3.15.03
+S2.15.06 S3.14.03 S3.15.03
+S2.15.07 S3.14.03 S3.15.03
diff --git a/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt b/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt
new file mode 100644
index 0000000000000000000000000000000000000000..69f08af0cbab94230fdf2538a988fee9abe00a08
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/FCalSuperCells3DNeighborsPrevNew-April2014.txt
@@ -0,0 +1,397 @@
+# 3D SuperCell FCal Neighbors Prev in Sampling
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Mon Apr 21 14:47:12 2014
+#
+# 3d neighbors prev in sampling are all cells touching the same
+# eta phi area in the prev sampling.
+# The list contains the cell name of the current cell and the 
+# names of all neigbor cells on one line separated by a space.
+# Cells without prev sampling neighbors are not listed.
+# Cell names are similar to normal cells with 'S' instead of 'A'
+# for the A-side super cells and 'U' = 'S'+2 for C-side cells.
+#
+U2.00.00 U1.00.00 U1.00.01 U1.01.00
+U2.00.01 U1.00.01 U1.01.01
+U2.00.02 U1.00.01 U1.00.02 U1.00.03
+U2.00.03 U1.00.03 U1.00.04 U1.01.04
+U2.00.04 U1.00.04 U1.00.05 U1.00.06 U1.01.05
+U2.00.05 U1.00.06 U1.00.07
+U2.00.06 U1.00.08 U1.00.09 U1.00.10 U1.00.11 U1.01.08
+U2.00.07 U1.00.11 U1.01.11
+U2.01.00 U1.01.00 U1.01.01
+U2.01.01 U1.01.00 U1.01.01 U1.01.02
+U2.01.02 U1.00.03 U1.01.01 U1.01.02 U1.01.03 U1.02.01
+U2.01.03 U1.01.03 U1.01.04
+U2.01.04 U1.01.04 U1.01.05 U1.01.06 U1.02.05
+U2.01.05 U1.00.06 U1.01.06 U1.01.07 U1.01.08 U1.02.07
+U2.01.06 U1.00.08 U1.00.09 U1.01.07 U1.01.08 U1.01.09 U1.02.08 U1.02.09
+U2.01.07 U1.00.09 U1.01.09 U1.01.10 U1.01.11
+U2.02.00 U1.01.01 U1.02.00 U1.02.01
+U2.02.01 U1.02.00 U1.02.01 U1.03.00 U1.03.01
+U2.02.02 U1.02.01 U1.02.02 U1.02.03 U1.03.01
+U2.02.03 U1.02.02 U1.02.03 U1.02.04 U1.03.03 U1.03.04
+U2.02.04 U1.02.04 U1.02.05 U1.02.06 U1.02.07 U1.03.04
+U2.02.05 U1.02.06 U1.02.07 U1.02.08 U1.03.06
+U2.02.06 U1.01.08 U1.02.07 U1.02.08 U1.02.09 U1.02.10 U1.03.08 U1.03.09
+U2.02.07 U1.01.10 U1.01.11 U1.02.10 U1.02.11 U1.03.09 U1.03.10 U1.03.11
+U2.03.00 U1.02.00 U1.03.00 U1.03.01 U1.04.00
+U2.03.01 U1.02.02 U1.03.01 U1.03.02 U1.04.01 U1.04.02
+U2.03.02 U1.03.01 U1.03.02 U1.03.03 U1.03.04 U1.04.02 U1.04.03
+U2.03.03 U1.02.05 U1.03.03 U1.03.04 U1.03.05 U1.04.04 U1.04.05
+U2.03.04 U1.03.04 U1.03.05 U1.03.06 U1.03.07 U1.04.05
+U2.03.05 U1.02.08 U1.03.06 U1.03.07 U1.04.06 U1.04.07
+U2.03.06 U1.03.07 U1.03.08 U1.03.09 U1.03.10 U1.03.11 U1.04.07 U1.04.08 U1.04.09
+U2.03.07 U1.03.10 U1.03.11 U1.04.10 U1.04.11
+U2.04.00 U1.04.00 U1.04.01 U1.05.00 U1.05.01
+U2.04.01 U1.04.01 U1.04.02 U1.05.01 U1.05.02
+U2.04.02 U1.04.01 U1.04.02 U1.04.03 U1.04.04 U1.05.03
+U2.04.03 U1.04.03 U1.04.04 U1.04.05 U1.05.03 U1.05.04 U1.05.05
+U2.04.04 U1.04.04 U1.04.05 U1.04.06 U1.05.05 U1.05.06
+U2.04.05 U1.04.06 U1.04.07 U1.05.06 U1.05.07
+U2.04.06 U1.04.07 U1.04.08 U1.04.09 U1.04.10 U1.05.08
+U2.04.07 U1.04.10 U1.04.11 U1.05.10
+U2.05.00 U1.05.00 U1.05.01
+U2.05.01 U1.05.00 U1.05.01 U1.06.01
+U2.05.02 U1.05.00 U1.05.01 U1.05.02 U1.06.02
+U2.05.03 U1.05.01 U1.05.02 U1.05.03 U1.05.04
+U2.05.04 U1.05.03 U1.05.04 U1.05.05 U1.05.06 U1.06.04
+U2.05.05 U1.05.04 U1.05.05 U1.05.06 U1.05.07 U1.06.06
+U2.05.06 U1.05.07 U1.05.08 U1.05.09 U1.05.10 U1.06.07 U1.06.08
+U2.05.07 U1.04.09 U1.04.10 U1.05.08 U1.05.09 U1.05.10 U1.05.11 U1.06.10 U1.06.11
+U2.06.00 U1.05.00 U1.06.00 U1.06.01
+U2.06.01 U1.06.00 U1.06.01 U1.06.02
+U2.06.02 U1.05.01 U1.06.01 U1.06.02 U1.06.03 U1.07.02 U1.07.03
+U2.06.03 U1.06.01 U1.06.02 U1.06.03 U1.06.04 U1.07.03
+U2.06.04 U1.05.04 U1.06.03 U1.06.04 U1.06.05 U1.06.06
+U2.06.05 U1.06.05 U1.06.06 U1.06.07 U1.07.05 U1.07.06
+U2.06.06 U1.05.08 U1.06.06 U1.06.07 U1.06.08 U1.07.08 U1.07.09
+U2.06.07 U1.06.08 U1.06.09 U1.06.10 U1.06.11 U1.07.09 U1.07.11
+U2.07.00 U1.06.00 U1.07.00 U1.07.01
+U2.07.01 U1.06.01 U1.07.00 U1.07.01 U1.07.02
+U2.07.02 U1.07.01 U1.07.02 U1.07.03
+U2.07.03 U1.06.04 U1.07.02 U1.07.03 U1.07.04 U1.07.05
+U2.07.04 U1.06.04 U1.06.05 U1.07.04 U1.07.05 U1.07.06
+U2.07.05 U1.07.05 U1.07.06 U1.07.07 U1.07.08
+U2.07.06 U1.07.07 U1.07.08 U1.07.09 U1.07.10
+U2.07.07 U1.07.10 U1.07.11
+U2.08.00 U1.08.00 U1.08.01 U1.09.00
+U2.08.01 U1.08.00 U1.08.01 U1.09.01
+U2.08.02 U1.08.01 U1.08.02 U1.08.03
+U2.08.03 U1.08.02 U1.08.03 U1.08.04 U1.09.04
+U2.08.04 U1.08.03 U1.08.04 U1.08.05 U1.08.06 U1.09.04 U1.09.05
+U2.08.05 U1.08.05 U1.08.06 U1.08.07
+U2.08.06 U1.08.07 U1.08.08 U1.08.09 U1.08.10
+U2.08.07 U1.08.10 U1.08.11
+U2.09.00 U1.09.00 U1.09.01
+U2.09.01 U1.09.00 U1.09.01 U1.09.02
+U2.09.02 U1.08.01 U1.08.03 U1.09.01 U1.09.02 U1.09.03 U1.10.01
+U2.09.03 U1.08.03 U1.09.01 U1.09.02 U1.09.03 U1.09.04
+U2.09.04 U1.09.03 U1.09.04 U1.09.05 U1.09.06 U1.10.05
+U2.09.05 U1.08.05 U1.08.06 U1.09.05 U1.09.06 U1.09.07
+U2.09.06 U1.08.08 U1.09.06 U1.09.07 U1.09.08 U1.10.08
+U2.09.07 U1.08.08 U1.08.09 U1.08.11 U1.09.08 U1.09.09 U1.09.10 U1.09.11
+U2.10.00 U1.09.01 U1.10.00 U1.10.01
+U2.10.01 U1.09.01 U1.10.00 U1.10.01
+U2.10.02 U1.09.02 U1.10.00 U1.10.01 U1.10.02 U1.10.03
+U2.10.03 U1.10.01 U1.10.02 U1.10.03 U1.10.04
+U2.10.04 U1.09.04 U1.10.03 U1.10.04 U1.10.05 U1.10.06
+U2.10.05 U1.09.06 U1.10.05 U1.10.06 U1.10.07
+U2.10.06 U1.09.07 U1.09.08 U1.10.07 U1.10.08 U1.10.09 U1.10.10
+U2.10.07 U1.09.09 U1.09.10 U1.09.11 U1.10.09 U1.10.10 U1.10.11 U1.11.09 U1.11.10
+U2.11.00 U1.10.00 U1.10.01 U1.11.00 U1.11.01
+U2.11.01 U1.10.01 U1.10.02 U1.11.01 U1.11.02
+U2.11.02 U1.10.03 U1.10.04 U1.11.01 U1.11.02 U1.11.03 U1.11.04
+U2.11.03 U1.10.04 U1.10.05 U1.11.03 U1.11.04 U1.11.05
+U2.11.04 U1.10.05 U1.10.06 U1.10.07 U1.11.04 U1.11.05 U1.11.06
+U2.11.05 U1.10.07 U1.10.08 U1.11.06 U1.11.07
+U2.11.06 U1.10.08 U1.10.09 U1.11.07 U1.11.08 U1.11.09 U1.11.10
+U2.11.07 U1.10.11 U1.11.10 U1.11.11
+U2.12.00 U1.11.00 U1.12.00 U1.12.01 U1.13.00
+U2.12.01 U1.11.01 U1.11.02 U1.12.01 U1.12.02 U1.13.02
+U2.12.02 U1.11.02 U1.11.03 U1.12.01 U1.12.02 U1.12.03 U1.12.04
+U2.12.03 U1.11.04 U1.11.05 U1.12.03 U1.12.04 U1.12.05 U1.13.05
+U2.12.04 U1.11.05 U1.12.04 U1.12.05 U1.12.06 U1.12.07
+U2.12.05 U1.11.06 U1.11.07 U1.12.06 U1.12.07 U1.13.07
+U2.12.06 U1.11.07 U1.11.08 U1.11.09 U1.12.07 U1.12.08 U1.12.09 U1.12.10 U1.12.11
+U2.12.07 U1.11.10 U1.11.11 U1.12.10 U1.12.11
+U2.13.00 U1.13.00 U1.13.01
+U2.13.01 U1.12.01 U1.13.00 U1.13.01 U1.14.01
+U2.13.02 U1.12.01 U1.13.01 U1.13.02
+U2.13.03 U1.12.03 U1.12.04 U1.13.02 U1.13.03 U1.13.04
+U2.13.04 U1.12.04 U1.13.03 U1.13.04 U1.13.05 U1.13.06
+U2.13.05 U1.12.06 U1.13.05 U1.13.06 U1.13.07
+U2.13.06 U1.12.08 U1.12.09 U1.13.07 U1.13.08 U1.13.09 U1.13.10 U1.14.08
+U2.13.07 U1.12.09 U1.12.10 U1.12.11 U1.13.09 U1.13.10 U1.13.11 U1.14.11
+U2.14.00 U1.13.00 U1.14.00 U1.14.01
+U2.14.01 U1.14.00 U1.14.01 U1.14.02
+U2.14.02 U1.13.01 U1.14.01 U1.14.02 U1.14.03 U1.15.03
+U2.14.03 U1.14.03 U1.14.04
+U2.14.04 U1.13.04 U1.14.04 U1.14.05 U1.14.06
+U2.14.05 U1.13.07 U1.14.06 U1.14.07 U1.14.08 U1.15.06
+U2.14.06 U1.13.08 U1.13.09 U1.14.07 U1.14.08 U1.14.09 U1.15.09
+U2.14.07 U1.13.10 U1.13.11 U1.14.09 U1.14.10 U1.14.11
+U2.15.00 U1.14.00 U1.15.00 U1.15.01
+U2.15.01 U1.14.01 U1.15.01 U1.15.02
+U2.15.02 U1.15.02 U1.15.03
+U2.15.03 U1.14.04 U1.15.03 U1.15.04 U1.15.05
+U2.15.04 U1.14.05 U1.15.05 U1.15.06
+U2.15.05 U1.15.06 U1.15.07 U1.15.08
+U2.15.06 U1.14.08 U1.15.08 U1.15.09 U1.15.10 U1.15.11
+U2.15.07 U1.14.11 U1.15.11
+U3.00.00 U2.00.01 U2.00.02 U2.00.03 U2.01.02
+U3.00.01 U2.00.02 U2.00.03 U2.00.04 U2.01.05
+U3.00.02 U2.00.03 U2.00.04 U2.00.05
+U3.00.03 U2.00.05 U2.00.06 U2.00.07 U2.01.06
+U3.01.00 U2.00.01 U2.01.01 U2.01.02 U2.01.03 U2.02.02
+U3.01.01 U2.01.02 U2.01.03 U2.01.04 U2.02.04
+U3.01.02 U2.01.04 U2.01.05 U2.01.06 U2.02.06
+U3.01.03 U2.00.06 U2.00.07 U2.01.06 U2.01.07 U2.02.07
+U3.02.00 U2.01.00 U2.01.02 U2.02.01 U2.02.02 U2.02.03 U2.03.01
+U3.02.01 U2.01.03 U2.02.02 U2.02.03 U2.02.04 U2.03.02 U2.03.03
+U3.02.02 U2.01.04 U2.02.04 U2.02.05 U2.02.06 U2.03.03
+U3.02.03 U2.01.06 U2.01.07 U2.02.06 U2.02.07 U2.03.06
+U3.03.00 U2.03.00 U2.03.01 U2.03.02
+U3.03.01 U2.02.03 U2.03.01 U2.03.02 U2.03.03
+U3.03.02 U2.02.05 U2.03.02 U2.03.03 U2.03.04 U2.03.05
+U3.03.03 U2.02.05 U2.02.07 U2.03.04 U2.03.05 U2.03.06 U2.03.07
+U3.04.00 U2.03.01 U2.04.00 U2.04.01 U2.04.02
+U3.04.01 U2.03.01 U2.03.02 U2.03.03 U2.04.01 U2.04.02 U2.04.03 U2.05.03
+U3.04.02 U2.03.03 U2.03.04 U2.03.05 U2.04.03 U2.04.04 U2.04.05
+U3.04.03 U2.03.05 U2.03.06 U2.03.07 U2.04.04 U2.04.05 U2.04.06 U2.04.07 U2.05.07
+U3.05.00 U2.04.01 U2.05.01 U2.05.02 U2.05.03 U2.06.02
+U3.05.01 U2.04.02 U2.04.03 U2.04.04 U2.05.02 U2.05.03 U2.05.04 U2.06.03
+U3.05.02 U2.04.03 U2.04.04 U2.04.05 U2.05.04 U2.05.05 U2.05.06
+U3.05.03 U2.04.06 U2.05.06 U2.05.07
+U3.06.00 U2.05.02 U2.06.01 U2.06.02 U2.06.03 U2.06.04
+U3.06.01 U2.05.04 U2.05.05 U2.06.03 U2.06.04 U2.06.05
+U3.06.02 U2.05.06 U2.06.05 U2.06.06
+U3.06.03 U2.05.07 U2.06.06 U2.06.07 U2.07.07
+U3.07.00 U2.06.02 U2.07.01 U2.07.02 U2.07.03
+U3.07.01 U2.06.05 U2.07.02 U2.07.03 U2.07.04
+U3.07.02 U2.07.04 U2.07.05 U2.07.06
+U3.07.03 U2.06.06 U2.07.06 U2.07.07
+U3.08.00 U2.08.01 U2.08.02 U2.08.03 U2.09.02
+U3.08.01 U2.08.02 U2.08.03 U2.08.04 U2.09.05
+U3.08.02 U2.08.04 U2.08.05 U2.08.06
+U3.08.03 U2.08.06 U2.08.07 U2.09.06
+U3.09.00 U2.08.01 U2.09.01 U2.09.02 U2.09.03 U2.10.02
+U3.09.01 U2.09.02 U2.09.03 U2.09.04 U2.10.04 U2.10.05
+U3.09.02 U2.09.04 U2.09.05 U2.09.06 U2.10.06
+U3.09.03 U2.08.07 U2.09.06 U2.09.07 U2.10.06 U2.10.07
+U3.10.00 U2.09.02 U2.10.01 U2.10.02 U2.10.03 U2.11.01
+U3.10.01 U2.09.03 U2.10.02 U2.10.03 U2.10.04 U2.11.02 U2.11.03 U2.11.04
+U3.10.02 U2.10.04 U2.10.05 U2.10.06 U2.11.03 U2.11.04 U2.11.05
+U3.10.03 U2.09.07 U2.10.06 U2.10.07 U2.11.06
+U3.11.00 U2.11.00 U2.11.01 U2.11.02 U2.12.01
+U3.11.01 U2.10.03 U2.11.01 U2.11.02 U2.11.03 U2.12.01 U2.12.02 U2.12.03
+U3.11.02 U2.11.03 U2.11.04 U2.11.05 U2.12.03 U2.12.04 U2.12.05
+U3.11.03 U2.10.07 U2.11.04 U2.11.05 U2.11.06 U2.11.07 U2.12.05 U2.12.06 U2.12.07
+U3.12.00 U2.12.00 U2.12.01 U2.12.02
+U3.12.01 U2.12.01 U2.12.02 U2.12.03 U2.13.03
+U3.12.02 U2.12.02 U2.12.03 U2.12.04 U2.12.05 U2.13.05
+U3.12.03 U2.12.04 U2.12.05 U2.12.06 U2.12.07 U2.13.05 U2.13.07
+U3.13.00 U2.12.01 U2.13.01 U2.13.02 U2.13.03 U2.14.01 U2.14.02
+U3.13.01 U2.12.02 U2.12.03 U2.13.02 U2.13.03 U2.13.04 U2.14.03
+U3.13.02 U2.12.03 U2.13.04 U2.13.05 U2.13.06 U2.14.04
+U3.13.03 U2.12.06 U2.13.06 U2.13.07 U2.14.06
+U3.14.00 U2.13.02 U2.14.01 U2.14.02 U2.14.03 U2.15.01
+U3.14.01 U2.13.04 U2.14.02 U2.14.03 U2.14.04 U2.14.05
+U3.14.02 U2.13.06 U2.14.05 U2.14.06
+U3.14.03 U2.13.07 U2.14.06 U2.14.07 U2.15.06 U2.15.07
+U3.15.00 U2.14.02 U2.15.01 U2.15.02 U2.15.03
+U3.15.01 U2.14.05 U2.15.02 U2.15.03 U2.15.04
+U3.15.02 U2.15.03 U2.15.04 U2.15.05
+U3.15.03 U2.14.06 U2.15.05 U2.15.06 U2.15.07
+S2.00.00 S1.00.00 S1.00.01 S1.01.00
+S2.00.01 S1.00.01 S1.01.01
+S2.00.02 S1.00.01 S1.00.02 S1.00.03
+S2.00.03 S1.00.03 S1.00.04 S1.01.04
+S2.00.04 S1.00.04 S1.00.05 S1.00.06 S1.01.05
+S2.00.05 S1.00.06 S1.00.07
+S2.00.06 S1.00.08 S1.00.09 S1.00.10 S1.00.11 S1.01.08
+S2.00.07 S1.00.11 S1.01.11
+S2.01.00 S1.01.00 S1.01.01
+S2.01.01 S1.01.00 S1.01.01 S1.01.02
+S2.01.02 S1.00.03 S1.01.01 S1.01.02 S1.01.03 S1.02.01
+S2.01.03 S1.01.03 S1.01.04
+S2.01.04 S1.01.04 S1.01.05 S1.01.06 S1.02.05
+S2.01.05 S1.00.06 S1.01.06 S1.01.07 S1.01.08 S1.02.07
+S2.01.06 S1.00.08 S1.00.09 S1.01.07 S1.01.08 S1.01.09 S1.02.08 S1.02.09
+S2.01.07 S1.00.09 S1.01.09 S1.01.10 S1.01.11
+S2.02.00 S1.01.01 S1.02.00 S1.02.01
+S2.02.01 S1.02.00 S1.02.01 S1.03.00 S1.03.01
+S2.02.02 S1.02.01 S1.02.02 S1.02.03 S1.03.01
+S2.02.03 S1.02.02 S1.02.03 S1.02.04 S1.03.03 S1.03.04
+S2.02.04 S1.02.04 S1.02.05 S1.02.06 S1.02.07 S1.03.04
+S2.02.05 S1.02.06 S1.02.07 S1.02.08 S1.03.06
+S2.02.06 S1.01.08 S1.02.07 S1.02.08 S1.02.09 S1.02.10 S1.03.08 S1.03.09
+S2.02.07 S1.01.10 S1.01.11 S1.02.10 S1.02.11 S1.03.09 S1.03.10 S1.03.11
+S2.03.00 S1.02.00 S1.03.00 S1.03.01 S1.04.00
+S2.03.01 S1.02.02 S1.03.01 S1.03.02 S1.04.01 S1.04.02
+S2.03.02 S1.03.01 S1.03.02 S1.03.03 S1.03.04 S1.04.02 S1.04.03
+S2.03.03 S1.02.05 S1.03.03 S1.03.04 S1.03.05 S1.04.04 S1.04.05
+S2.03.04 S1.03.04 S1.03.05 S1.03.06 S1.03.07 S1.04.05
+S2.03.05 S1.02.08 S1.03.06 S1.03.07 S1.04.06 S1.04.07
+S2.03.06 S1.03.07 S1.03.08 S1.03.09 S1.03.10 S1.03.11 S1.04.07 S1.04.08 S1.04.09
+S2.03.07 S1.03.10 S1.03.11 S1.04.10 S1.04.11
+S2.04.00 S1.04.00 S1.04.01 S1.05.00 S1.05.01
+S2.04.01 S1.04.01 S1.04.02 S1.05.01 S1.05.02
+S2.04.02 S1.04.01 S1.04.02 S1.04.03 S1.04.04 S1.05.03
+S2.04.03 S1.04.03 S1.04.04 S1.04.05 S1.05.03 S1.05.04 S1.05.05
+S2.04.04 S1.04.04 S1.04.05 S1.04.06 S1.05.05 S1.05.06
+S2.04.05 S1.04.06 S1.04.07 S1.05.06 S1.05.07
+S2.04.06 S1.04.07 S1.04.08 S1.04.09 S1.04.10 S1.05.08
+S2.04.07 S1.04.10 S1.04.11 S1.05.10
+S2.05.00 S1.05.00 S1.05.01
+S2.05.01 S1.05.00 S1.05.01 S1.06.01
+S2.05.02 S1.05.00 S1.05.01 S1.05.02 S1.06.02
+S2.05.03 S1.05.01 S1.05.02 S1.05.03 S1.05.04
+S2.05.04 S1.05.03 S1.05.04 S1.05.05 S1.05.06 S1.06.04
+S2.05.05 S1.05.04 S1.05.05 S1.05.06 S1.05.07 S1.06.06
+S2.05.06 S1.05.07 S1.05.08 S1.05.09 S1.05.10 S1.06.07 S1.06.08
+S2.05.07 S1.04.09 S1.04.10 S1.05.08 S1.05.09 S1.05.10 S1.05.11 S1.06.10 S1.06.11
+S2.06.00 S1.05.00 S1.06.00 S1.06.01
+S2.06.01 S1.06.00 S1.06.01 S1.06.02
+S2.06.02 S1.05.01 S1.06.01 S1.06.02 S1.06.03 S1.07.02 S1.07.03
+S2.06.03 S1.06.01 S1.06.02 S1.06.03 S1.06.04 S1.07.03
+S2.06.04 S1.05.04 S1.06.03 S1.06.04 S1.06.05 S1.06.06
+S2.06.05 S1.06.05 S1.06.06 S1.06.07 S1.07.05 S1.07.06
+S2.06.06 S1.05.08 S1.06.06 S1.06.07 S1.06.08 S1.07.08 S1.07.09
+S2.06.07 S1.06.08 S1.06.09 S1.06.10 S1.06.11 S1.07.09 S1.07.11
+S2.07.00 S1.06.00 S1.07.00 S1.07.01
+S2.07.01 S1.06.01 S1.07.00 S1.07.01 S1.07.02
+S2.07.02 S1.07.01 S1.07.02 S1.07.03
+S2.07.03 S1.06.04 S1.07.02 S1.07.03 S1.07.04 S1.07.05
+S2.07.04 S1.06.04 S1.06.05 S1.07.04 S1.07.05 S1.07.06
+S2.07.05 S1.07.05 S1.07.06 S1.07.07 S1.07.08
+S2.07.06 S1.07.07 S1.07.08 S1.07.09 S1.07.10
+S2.07.07 S1.07.10 S1.07.11
+S2.08.00 S1.08.00 S1.08.01 S1.09.00
+S2.08.01 S1.08.00 S1.08.01 S1.09.01
+S2.08.02 S1.08.01 S1.08.02 S1.08.03
+S2.08.03 S1.08.02 S1.08.03 S1.08.04 S1.09.04
+S2.08.04 S1.08.03 S1.08.04 S1.08.05 S1.08.06 S1.09.04 S1.09.05
+S2.08.05 S1.08.05 S1.08.06 S1.08.07
+S2.08.06 S1.08.07 S1.08.08 S1.08.09 S1.08.10
+S2.08.07 S1.08.10 S1.08.11
+S2.09.00 S1.09.00 S1.09.01
+S2.09.01 S1.09.00 S1.09.01 S1.09.02
+S2.09.02 S1.08.01 S1.08.03 S1.09.01 S1.09.02 S1.09.03 S1.10.01
+S2.09.03 S1.08.03 S1.09.01 S1.09.02 S1.09.03 S1.09.04
+S2.09.04 S1.09.03 S1.09.04 S1.09.05 S1.09.06 S1.10.05
+S2.09.05 S1.08.05 S1.08.06 S1.09.05 S1.09.06 S1.09.07
+S2.09.06 S1.08.08 S1.09.06 S1.09.07 S1.09.08 S1.10.08
+S2.09.07 S1.08.08 S1.08.09 S1.08.11 S1.09.08 S1.09.09 S1.09.10 S1.09.11
+S2.10.00 S1.09.01 S1.10.00 S1.10.01
+S2.10.01 S1.09.01 S1.10.00 S1.10.01
+S2.10.02 S1.09.02 S1.10.00 S1.10.01 S1.10.02 S1.10.03
+S2.10.03 S1.10.01 S1.10.02 S1.10.03 S1.10.04
+S2.10.04 S1.09.04 S1.10.03 S1.10.04 S1.10.05 S1.10.06
+S2.10.05 S1.09.06 S1.10.05 S1.10.06 S1.10.07
+S2.10.06 S1.09.07 S1.09.08 S1.10.07 S1.10.08 S1.10.09 S1.10.10
+S2.10.07 S1.09.09 S1.09.10 S1.09.11 S1.10.09 S1.10.10 S1.10.11 S1.11.09 S1.11.10
+S2.11.00 S1.10.00 S1.10.01 S1.11.00 S1.11.01
+S2.11.01 S1.10.01 S1.10.02 S1.11.01 S1.11.02
+S2.11.02 S1.10.03 S1.10.04 S1.11.01 S1.11.02 S1.11.03 S1.11.04
+S2.11.03 S1.10.04 S1.10.05 S1.11.03 S1.11.04 S1.11.05
+S2.11.04 S1.10.05 S1.10.06 S1.10.07 S1.11.04 S1.11.05 S1.11.06
+S2.11.05 S1.10.07 S1.10.08 S1.11.06 S1.11.07
+S2.11.06 S1.10.08 S1.10.09 S1.11.07 S1.11.08 S1.11.09 S1.11.10
+S2.11.07 S1.10.11 S1.11.10 S1.11.11
+S2.12.00 S1.11.00 S1.12.00 S1.12.01 S1.13.00
+S2.12.01 S1.11.01 S1.11.02 S1.12.01 S1.12.02 S1.13.02
+S2.12.02 S1.11.02 S1.11.03 S1.12.01 S1.12.02 S1.12.03 S1.12.04
+S2.12.03 S1.11.04 S1.11.05 S1.12.03 S1.12.04 S1.12.05 S1.13.05
+S2.12.04 S1.11.05 S1.12.04 S1.12.05 S1.12.06 S1.12.07
+S2.12.05 S1.11.06 S1.11.07 S1.12.06 S1.12.07 S1.13.07
+S2.12.06 S1.11.07 S1.11.08 S1.11.09 S1.12.07 S1.12.08 S1.12.09 S1.12.10 S1.12.11
+S2.12.07 S1.11.10 S1.11.11 S1.12.10 S1.12.11
+S2.13.00 S1.13.00 S1.13.01
+S2.13.01 S1.12.01 S1.13.00 S1.13.01 S1.14.01
+S2.13.02 S1.12.01 S1.13.01 S1.13.02
+S2.13.03 S1.12.03 S1.12.04 S1.13.02 S1.13.03 S1.13.04
+S2.13.04 S1.12.04 S1.13.03 S1.13.04 S1.13.05 S1.13.06
+S2.13.05 S1.12.06 S1.13.05 S1.13.06 S1.13.07
+S2.13.06 S1.12.08 S1.12.09 S1.13.07 S1.13.08 S1.13.09 S1.13.10 S1.14.08
+S2.13.07 S1.12.09 S1.12.10 S1.12.11 S1.13.09 S1.13.10 S1.13.11 S1.14.11
+S2.14.00 S1.13.00 S1.14.00 S1.14.01
+S2.14.01 S1.14.00 S1.14.01 S1.14.02
+S2.14.02 S1.13.01 S1.14.01 S1.14.02 S1.14.03 S1.15.03
+S2.14.03 S1.14.03 S1.14.04
+S2.14.04 S1.13.04 S1.14.04 S1.14.05 S1.14.06
+S2.14.05 S1.13.07 S1.14.06 S1.14.07 S1.14.08 S1.15.06
+S2.14.06 S1.13.08 S1.13.09 S1.14.07 S1.14.08 S1.14.09 S1.15.09
+S2.14.07 S1.13.10 S1.13.11 S1.14.09 S1.14.10 S1.14.11
+S2.15.00 S1.14.00 S1.15.00 S1.15.01
+S2.15.01 S1.14.01 S1.15.01 S1.15.02
+S2.15.02 S1.15.02 S1.15.03
+S2.15.03 S1.14.04 S1.15.03 S1.15.04 S1.15.05
+S2.15.04 S1.14.05 S1.15.05 S1.15.06
+S2.15.05 S1.15.06 S1.15.07 S1.15.08
+S2.15.06 S1.14.08 S1.15.08 S1.15.09 S1.15.10 S1.15.11
+S2.15.07 S1.14.11 S1.15.11
+S3.00.00 S2.00.01 S2.00.02 S2.00.03 S2.01.02
+S3.00.01 S2.00.02 S2.00.03 S2.00.04 S2.01.05
+S3.00.02 S2.00.03 S2.00.04 S2.00.05
+S3.00.03 S2.00.05 S2.00.06 S2.00.07 S2.01.06
+S3.01.00 S2.00.01 S2.01.01 S2.01.02 S2.01.03 S2.02.02
+S3.01.01 S2.01.02 S2.01.03 S2.01.04 S2.02.04
+S3.01.02 S2.01.04 S2.01.05 S2.01.06 S2.02.06
+S3.01.03 S2.00.06 S2.00.07 S2.01.06 S2.01.07 S2.02.07
+S3.02.00 S2.01.00 S2.01.02 S2.02.01 S2.02.02 S2.02.03 S2.03.01
+S3.02.01 S2.01.03 S2.02.02 S2.02.03 S2.02.04 S2.03.02 S2.03.03
+S3.02.02 S2.01.04 S2.02.04 S2.02.05 S2.02.06 S2.03.03
+S3.02.03 S2.01.06 S2.01.07 S2.02.06 S2.02.07 S2.03.06
+S3.03.00 S2.03.00 S2.03.01 S2.03.02
+S3.03.01 S2.02.03 S2.03.01 S2.03.02 S2.03.03
+S3.03.02 S2.02.05 S2.03.02 S2.03.03 S2.03.04 S2.03.05
+S3.03.03 S2.02.05 S2.02.07 S2.03.04 S2.03.05 S2.03.06 S2.03.07
+S3.04.00 S2.03.01 S2.04.00 S2.04.01 S2.04.02
+S3.04.01 S2.03.01 S2.03.02 S2.03.03 S2.04.01 S2.04.02 S2.04.03 S2.05.03
+S3.04.02 S2.03.03 S2.03.04 S2.03.05 S2.04.03 S2.04.04 S2.04.05
+S3.04.03 S2.03.05 S2.03.06 S2.03.07 S2.04.04 S2.04.05 S2.04.06 S2.04.07 S2.05.07
+S3.05.00 S2.04.01 S2.05.01 S2.05.02 S2.05.03 S2.06.02
+S3.05.01 S2.04.02 S2.04.03 S2.04.04 S2.05.02 S2.05.03 S2.05.04 S2.06.03
+S3.05.02 S2.04.03 S2.04.04 S2.04.05 S2.05.04 S2.05.05 S2.05.06
+S3.05.03 S2.04.06 S2.05.06 S2.05.07
+S3.06.00 S2.05.02 S2.06.01 S2.06.02 S2.06.03 S2.06.04
+S3.06.01 S2.05.04 S2.05.05 S2.06.03 S2.06.04 S2.06.05
+S3.06.02 S2.05.06 S2.06.05 S2.06.06
+S3.06.03 S2.05.07 S2.06.06 S2.06.07 S2.07.07
+S3.07.00 S2.06.02 S2.07.01 S2.07.02 S2.07.03
+S3.07.01 S2.06.05 S2.07.02 S2.07.03 S2.07.04
+S3.07.02 S2.07.04 S2.07.05 S2.07.06
+S3.07.03 S2.06.06 S2.07.06 S2.07.07
+S3.08.00 S2.08.01 S2.08.02 S2.08.03 S2.09.02
+S3.08.01 S2.08.02 S2.08.03 S2.08.04 S2.09.05
+S3.08.02 S2.08.04 S2.08.05 S2.08.06
+S3.08.03 S2.08.06 S2.08.07 S2.09.06
+S3.09.00 S2.08.01 S2.09.01 S2.09.02 S2.09.03 S2.10.02
+S3.09.01 S2.09.02 S2.09.03 S2.09.04 S2.10.04 S2.10.05
+S3.09.02 S2.09.04 S2.09.05 S2.09.06 S2.10.06
+S3.09.03 S2.08.07 S2.09.06 S2.09.07 S2.10.06 S2.10.07
+S3.10.00 S2.09.02 S2.10.01 S2.10.02 S2.10.03 S2.11.01
+S3.10.01 S2.09.03 S2.10.02 S2.10.03 S2.10.04 S2.11.02 S2.11.03 S2.11.04
+S3.10.02 S2.10.04 S2.10.05 S2.10.06 S2.11.03 S2.11.04 S2.11.05
+S3.10.03 S2.09.07 S2.10.06 S2.10.07 S2.11.06
+S3.11.00 S2.11.00 S2.11.01 S2.11.02 S2.12.01
+S3.11.01 S2.10.03 S2.11.01 S2.11.02 S2.11.03 S2.12.01 S2.12.02 S2.12.03
+S3.11.02 S2.11.03 S2.11.04 S2.11.05 S2.12.03 S2.12.04 S2.12.05
+S3.11.03 S2.10.07 S2.11.04 S2.11.05 S2.11.06 S2.11.07 S2.12.05 S2.12.06 S2.12.07
+S3.12.00 S2.12.00 S2.12.01 S2.12.02
+S3.12.01 S2.12.01 S2.12.02 S2.12.03 S2.13.03
+S3.12.02 S2.12.02 S2.12.03 S2.12.04 S2.12.05 S2.13.05
+S3.12.03 S2.12.04 S2.12.05 S2.12.06 S2.12.07 S2.13.05 S2.13.07
+S3.13.00 S2.12.01 S2.13.01 S2.13.02 S2.13.03 S2.14.01 S2.14.02
+S3.13.01 S2.12.02 S2.12.03 S2.13.02 S2.13.03 S2.13.04 S2.14.03
+S3.13.02 S2.12.03 S2.13.04 S2.13.05 S2.13.06 S2.14.04
+S3.13.03 S2.12.06 S2.13.06 S2.13.07 S2.14.06
+S3.14.00 S2.13.02 S2.14.01 S2.14.02 S2.14.03 S2.15.01
+S3.14.01 S2.13.04 S2.14.02 S2.14.03 S2.14.04 S2.14.05
+S3.14.02 S2.13.06 S2.14.05 S2.14.06
+S3.14.03 S2.13.07 S2.14.06 S2.14.07 S2.15.06 S2.15.07
+S3.15.00 S2.14.02 S2.15.01 S2.15.02 S2.15.03
+S3.15.01 S2.14.05 S2.15.02 S2.15.03 S2.15.04
+S3.15.02 S2.15.03 S2.15.04 S2.15.05
+S3.15.03 S2.14.06 S2.15.05 S2.15.06 S2.15.07
diff --git a/Calorimeter/CaloIdentifier/share/LArEM_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArEM_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..67bc308c49553032105f0a9e255af6c79534c16b
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArEM_ID_test.ref
@@ -0,0 +1,109 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/1 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/2/0
+ channel range -> 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+ disconected region range -> 4/-1/-1,1/0/0 | 4/-1/-1,1/1/0 | 4/-1/-1,1/3/0 | 4/-1/-2,2/0/0 | 4/-1/-2,2/1/1 | 4/-1/-2,2/1/3 | 4/-1/-2,2/1/5 | 4/-1/-3,3/1/0 | 4/-1/-3,3/2/0
+ disconnected channel range -> 4/-1/-1,1/0/0/61:63/0:63 | 4/-1/-1,1/1/0/0/0:63 | 4/-1/-1,1/3/0/27/0:255 | 4/-1/-2,2/0/0/12:19/0:63 | 4/-1/-2,2/1/1/3:6/0:63 | 4/-1/-2,2/1/3/48:63/0:63 | 4/-1/-2,2/1/5/4:7/0:63 | 4/-1/-3,3/1/0/7/0:63 | 4/-1/-3,3/2/0/7/0:63
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/1 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/2/0
+ channel range -> 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+ disconected region range -> 4/-1/-1,1/0/0 | 4/-1/-1,1/1/0 | 4/-1/-1,1/3/0 | 4/-1/-2,2/0/0 | 4/-1/-2,2/1/1 | 4/-1/-2,2/1/3 | 4/-1/-2,2/1/5 | 4/-1/-3,3/1/0 | 4/-1/-3,3/2/0
+ disconnected channel range -> 4/-1/-1,1/0/0/61:63/0:63 | 4/-1/-1,1/1/0/0/0:63 | 4/-1/-1,1/3/0/27/0:255 | 4/-1/-2,2/0/0/12:19/0:63 | 4/-1/-2,2/1/1/3:6/0:63 | 4/-1/-2,2/1/3/48:63/0:63 | 4/-1/-2,2/1/5/4:7/0:63 | 4/-1/-3,3/1/0/7/0:63 | 4/-1/-3,3/2/0/7/0:63
+ LArEM_Base_ID::init_neighbors 
+test_basic
+[4.1.1.1.1.0.1.0] hex(2da4000200000000)
+[4.1.2.1.1.2.10.0] hex(2e24041400000000)
+[4.1.3.2.0.0.20.0] hex(2ec0002800000000)
+[4.1.-1.1.1.0.1.0] hex(2d24000200000000)
+[4.1.-2.1.1.2.10.0] hex(2ca4041400000000)
+[4.1.-3.2.0.0.20.0] hex(2c40002800000000)
+test_connected
+  nchan 173312
+  nreg 36
+Region [4.1.-3.1.0.0.0.0] eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.-3.2.0.0.0.0] eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.-2.0.0.0.0.0] eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.0.0.0.0] eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.1.0.0.0] eta: 1.425000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.2.0.0.0] eta: 1.500000 0.003125 0  95 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.3.0.0.0] eta: 1.800000 0.004167 0  47 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.4.0.0.0] eta: 2.000000 0.006250 0  63 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.5.0.0.0] eta: 2.400000 0.025000 0   3 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.0.0.0.0] eta: 1.375000 0.050000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.-2.2.1.0.0.0] eta: 1.425000 0.025000 0  42 phi: 0.0 0.024544 0 255
+Region [4.1.-2.3.0.0.0.0] eta: 1.500000 0.050000 0  19 phi: 0.0 0.024544 0 255
+Region [4.1.-1.0.0.0.0.0] eta: 0.000000 0.025000 0  60 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.0.0.0]   eta: 0.003125 0.003125 1 447 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.1.0.0.0] eta: 1.400000 0.025000 0   2 phi: 0.0 0.024544 0 255
+Region [4.1.-1.2.0.0.0.0] eta: 0.000000 0.025000 0  55 phi: 0.0 0.024544 0 255
+Region [4.1.-1.2.1.0.0.0] eta: 1.400000 0.075000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.-1.3.0.0.0.0] eta: 0.000000 0.050000 0  26 phi: 0.0 0.024544 0 255
+Region [4.1.1.0.0.0.0.0]  eta: 0.000000 0.025000 0  60 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.0.0.0]    eta: 0.003125 0.003125 1 447 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.1.0.0.0]  eta: 1.400000 0.025000 0   2 phi: 0.0 0.024544 0 255
+Region [4.1.1.2.0.0.0.0]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.024544 0 255
+Region [4.1.1.2.1.0.0.0]  eta: 1.400000 0.075000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.1.3.0.0.0.0]  eta: 0.000000 0.050000 0  26 phi: 0.0 0.024544 0 255
+Region [4.1.2.0.0.0.0.0]  eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.0.0.0.0]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.1.0.0.0]  eta: 1.425000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.2.0.0.0]  eta: 1.500000 0.003125 0  95 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.3.0.0.0]  eta: 1.800000 0.004167 0  47 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.4.0.0.0]  eta: 2.000000 0.006250 0  63 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.5.0.0.0]  eta: 2.400000 0.025000 0   3 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.0.0.0.0]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.024544 0 255
+Region [4.1.2.2.1.0.0.0]  eta: 1.425000 0.025000 0  42 phi: 0.0 0.024544 0 255
+Region [4.1.2.3.0.0.0.0]  eta: 1.500000 0.050000 0  19 phi: 0.0 0.024544 0 255
+Region [4.1.3.1.0.0.0.0]  eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Region [4.1.3.2.0.0.0.0]  eta: 2.500000 0.100000 0   6 phi: 0.0 0.098175 0  63
+Sampling   Barrel   Outer wheel   Inner wheel
+0            7808          1536             0
+1           58752         27648           896
+2           29184         22528           896
+3           13824         10240             0
+Total      109568         61952          1792   Grand total: 173312
+test_disco
+  nchan 5376
+Sampling   Barrel   Outer wheel   Inner wheel
+0             384          1024             0
+1             128          3072           128
+2               0             0           128
+3             512             0             0
+Total        1024          4096           256   Grand total:   5376
+test_exceptions
+Exception 1: LArID_Exception - Error code: 5 
+ LArEM_Base_ID::region_id_checks() result is not OK: ID, range = 4/1/0/99/0 , 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/1 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/2/0
+Exception 2: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks() result is not OK: ID, range = 4/1/0/99/0/0/0/0 , 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+Exception 3: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks(regId) result is not OK: ID, range = 4/1/1/0/0/0/-99/0 , 4/1/-1,1/0/0/0:60/0:63/0 | 4/1/-1,1/1/0/1:447/0:63/0 | 4/1/-1,1/1/1/0:2/0:255/0 | 4/1/-1,1/2/0/0:55/0:255/0 | 4/1/-1,1/2/1/0/0:255/0 | 4/1/-1,1/3/0/0:26/0:255/0 | 4/1/-2,2/0/0/0:11/0:63/0 | 4/1/-2,2/1/0/0/0:63/0 | 4/1/-2,2/1/1/0:2/0:63/0 | 4/1/-2,2/1/2/0:95/0:63/0 | 4/1/-2,2/1/3/0:47/0:63/0 | 4/1/-2,2/1/4/0:63/0:63/0 | 4/1/-2,2/1/5/0:3/0:63/0 | 4/1/-2,2/2/0/0/0:255/0 | 4/1/-2,2/2/1/0:42/0:255/0 | 4/1/-2,2/3/0/0:19/0:255/0 | 4/1/-3,3/1/0/0:6/0:63/0 | 4/1/-3,3/2/0/0:6/0:63/0
+test4
diff --git a/Calorimeter/CaloIdentifier/share/LArEM_SuperCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArEM_SuperCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..a8fec4fd52ca54f9ee8a3f2018962099c1ecff01
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArEM_SuperCell_ID_test.ref
@@ -0,0 +1,111 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/1/1 | 4/1/-3,3/2/0 | 4/1/-3,3/2/1
+ channel range -> 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
+ disconected region range -> 
+ disconnected channel range -> 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+em   decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+bec  decode 1 vals -3,-2,-1,1,2,3  mask/zero mask/shift/bits/offset 7   fc7fffffffffffff 55 3  6  indexes 0 1 2 0 3 4 5       mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:5             mask/zero mask/shift/bits/offset 7   ffe3ffffffffffff 50 3  11 indexes                     mode  both_bounded  
+eta  decode 0 vals 0:447           mask/zero mask/shift/bits/offset 1ff fffc01ffffffffff 41 9  14 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:255           mask/zero mask/shift/bits/offset ff  fffffe01ffffffff 33 8  23 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffffffeffffffff 32 1  31 indexes                     mode  both_bounded  
+ LArEM_Base_ID::initialize_from_dict : 
+ region range -> 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/1/1 | 4/1/-3,3/2/0 | 4/1/-3,3/2/1
+ channel range -> 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
+ disconected region range -> 
+ disconnected channel range -> 
+ LArEM_Base_ID::init_neighbors 
+test_basic
+[4.1.1.1.1.0.1.1] hex(2da4000300000000)
+[4.1.2.2.1.0.10.1] hex(2e44001500000000)
+[4.1.3.2.0.0.20.1] hex(2ec0002900000000)
+[4.1.-1.1.1.0.1.1] hex(2d24000300000000)
+[4.1.-2.2.1.0.10.1] hex(2cc4001500000000)
+[4.1.-3.2.0.0.20.1] hex(2c40002900000000)
+test_connected
+  nchan 31744
+  nreg 38
+Region [4.1.-3.1.0.0.0.1] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.-3.1.1.0.0.1] eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.-3.2.0.0.0.1] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.-3.2.1.0.0.1] eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.-2.0.0.0.0.1] eta: 1.500000 0.100000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.0.0.0.1] eta: 1.375000 0.125000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.2.0.0.1] eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.3.0.0.1] eta: 1.800000 0.016667 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.4.0.0.1] eta: 2.000000 0.025000 0  15 phi: 0.0 0.098175 0  63
+Region [4.1.-2.1.5.0.0.1] eta: 2.400000 0.100000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.0.0.0.1] eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-2.2.1.0.0.1] eta: 1.425000 0.025000 0  42 phi: 0.0 0.098175 0  63
+Region [4.1.-2.3.0.0.0.1] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.1.-1.0.0.0.0.1] eta: 0.000000 0.100000 0  14 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.0.0.0.1] eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.-1.1.1.0.0.1] eta: 1.400000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.-1.2.0.0.0.1] eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.-1.2.1.0.0.1] eta: 1.400000 0.075000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.-1.3.0.0.0.1] eta: 0.000000 0.100000 0  13 phi: 0.0 0.098175 0  63
+Region [4.1.1.0.0.0.0.1]  eta: 0.000000 0.100000 0  14 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.0.0.0.1]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.1.1.1.0.0.1]  eta: 1.400000 0.025000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.1.2.0.0.0.1]  eta: 0.000000 0.025000 0  55 phi: 0.0 0.098175 0  63
+Region [4.1.1.2.1.0.0.1]  eta: 1.400000 0.075000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.1.3.0.0.0.1]  eta: 0.000000 0.100000 0  13 phi: 0.0 0.098175 0  63
+Region [4.1.2.0.0.0.0.1]  eta: 1.500000 0.100000 0   2 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.0.0.0.1]  eta: 1.375000 0.125000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.2.0.0.1]  eta: 1.500000 0.025000 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.3.0.0.1]  eta: 1.800000 0.016667 0  11 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.4.0.0.1]  eta: 2.000000 0.025000 0  15 phi: 0.0 0.098175 0  63
+Region [4.1.2.1.5.0.0.1]  eta: 2.400000 0.100000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.0.0.0.1]  eta: 1.375000 0.050000 0   0 phi: 0.0 0.098175 0  63
+Region [4.1.2.2.1.0.0.1]  eta: 1.425000 0.025000 0  42 phi: 0.0 0.098175 0  63
+Region [4.1.2.3.0.0.0.1]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.1.3.1.0.0.0.1]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.3.1.1.0.0.1]  eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Region [4.1.3.2.0.0.0.1]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.1.3.2.1.0.0.1]  eta: 3.100000 0.100000 0   0 phi: 0.0 0.196350 0  31
+Sampling   Barrel   Outer wheel   Inner wheel
+0            1920           384             0
+1            7552          5376           256
+2            7296          5632           256
+3            1792          1280             0
+Total       18560         12672           512   Grand total:  31744
+test_disco
+  nchan 0
+Sampling   Barrel   Outer wheel   Inner wheel
+0               0             0             0
+1               0             0             0
+2               0             0             0
+3               0             0             0
+Total           0             0             0   Grand total:      0
+test_exceptions
+Exception 1: LArID_Exception - Error code: 5 
+ LArEM_Base_ID::region_id_checks() result is not OK: ID, range = 4/1/0/99/0 , 4/1/-1,1/0/0 | 4/1/-1,1/1/0 | 4/1/-1,1/1/1 | 4/1/-1,1/2/0 | 4/1/-1,1/2/1 | 4/1/-1,1/3/0 | 4/1/-2,2/0/0 | 4/1/-2,2/1/0 | 4/1/-2,2/1/2 | 4/1/-2,2/1/3 | 4/1/-2,2/1/4 | 4/1/-2,2/1/5 | 4/1/-2,2/2/0 | 4/1/-2,2/2/1 | 4/1/-2,2/3/0 | 4/1/-3,3/1/0 | 4/1/-3,3/1/1 | 4/1/-3,3/2/0 | 4/1/-3,3/2/1
+Exception 2: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks() result is not OK: ID, range = 4/1/0/99/0/0/0/1 , 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
+Exception 3: LArID_Exception - Error code: 6 
+ LArEM_Base_ID::channel_id_checks(regId) result is not OK: ID, range = 4/1/1/0/0/0/-99/1 , 4/1/-1,1/0/0/0:14/0:63/1 | 4/1/-1,1/1/0/0:55/0:63/1 | 4/1/-1,1/1/1/0:2/0:63/1 | 4/1/-1,1/2/0/0:55/0:63/1 | 4/1/-1,1/2/1/0/0:63/1 | 4/1/-1,1/3/0/0:13/0:63/1 | 4/1/-2,2/0/0/0:2/0:63/1 | 4/1/-2,2/1/0/0/0:63/1 | 4/1/-2,2/1/2/0:11/0:63/1 | 4/1/-2,2/1/3/0:11/0:63/1 | 4/1/-2,2/1/4/0:15/0:63/1 | 4/1/-2,2/1/5/0/0:63/1 | 4/1/-2,2/2/0/0/0:63/1 | 4/1/-2,2/2/1/0:42/0:63/1 | 4/1/-2,2/3/0/0:9/0:63/1 | 4/1/-3,3/1/0/0:2/0:31/1 | 4/1/-3,3/1/1/0/0:31/1 | 4/1/-3,3/2/0/0:2/0:31/1 | 4/1/-3,3/2/1/0/0:31/1
+test4
diff --git a/Calorimeter/CaloIdentifier/share/LArFCAL_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArFCAL_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..2ba3552e02e96a2472715ab6f530a86e0ca3e2a2
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArFCAL_ID_test.ref
@@ -0,0 +1,71 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:62/0:15/0 | 4/3/-2,2/2/0:29/0,7,8,15/0 | 4/3/-2,2/2/0:30/3,4,11,12/0 | 4/3/-2,2/2/0:31/1,2,5,6,9,10,13,14/0 | 4/3/-2,2/3/0:14/2,10/0 | 4/3/-2,2/3/0:14/0,1,3,4,5,6,7,8,9,11,12,13,14,15/0 | 4/3/-2,2/3/15/0,1,2,3,4,6,7,8,9,10,11,12,14,15/0
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 4/-3/-2,2/1/63/0:15 | 4/-3/-2,2/2/30:31/0,7,8,15 | 4/-3/-2,2/2/31/3,4,11,12 | 4/-3/-2,2/3/15/5,13
+ disconnected module range -> 4/-3/-2,2/1 | 4/-3/-2,2/2 | 4/-3/-2,2/3
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:62/0:15/0 | 4/3/-2,2/2/0:29/0,7,8,15/0 | 4/3/-2,2/2/0:30/3,4,11,12/0 | 4/3/-2,2/2/0:31/1,2,5,6,9,10,13,14/0 | 4/3/-2,2/3/0:14/2,10/0 | 4/3/-2,2/3/0:14/0,1,3,4,5,6,7,8,9,11,12,13,14,15/0 | 4/3/-2,2/3/15/0,1,2,3,4,6,7,8,9,10,11,12,14,15/0
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 4/-3/-2,2/1/63/0:15 | 4/-3/-2,2/2/30:31/0,7,8,15 | 4/-3/-2,2/2/31/3,4,11,12 | 4/-3/-2,2/3/15/5,13
+ disconnected module range -> 4/-3/-2,2/1 | 4/-3/-2,2/2 | 4/-3/-2,2/3
+LarFCal_Base_ID::init_neighbours 
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal2DNeighbors-DC3-05-Comm-01.txt
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt
+LArFCAL_Base_ID      INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt
+LarFCal_Base_ID::init_neighbours status: 0
+test_basic
+[4.3.2.1.1.1.0] hex(3602200000000000)
+[4.3.2.2.1.1.0] hex(3682200000000000)
+[4.3.2.3.1.1.0] hex(3702200000000000)
+[4.3.-2.1.1.1.0] hex(3402200000000000)
+[4.3.-2.2.1.1.0] hex(3482200000000000)
+[4.3.-2.3.1.1.0] hex(3502200000000000)
+test_connected
+  nchan 3524
+  nreg 6
+Module [4.3.-2.1.0.0.0]   eta: 3.200000 0.025000 0  62 phi: 0.0 0.392699 0  15
+Module [4.3.-2.2.0.0.0]   eta: 3.200000 0.050000 0  31 phi: 0.0 0.392699 0  15
+Module [4.3.-2.3.0.0.0]   eta: 3.200000 0.100000 0  15 phi: 0.0 0.392699 0  15
+Module [4.3.2.1.0.0.0]    eta: 3.200000 0.025000 0  62 phi: 0.0 0.392699 0  15
+Module [4.3.2.2.0.0.0]    eta: 3.200000 0.050000 0  31 phi: 0.0 0.392699 0  15
+Module [4.3.2.3.0.0.0]    eta: 3.200000 0.100000 0  15 phi: 0.0 0.392699 0  15
+  Module counts: 2016 1000 508 ; total: 3524
+test_disco
+  nchan 60
+  Module counts: 32 24 4 ; total: 60
+test_exeptions
+Exception 1: LArID_Exception - Error code: 6 
+ LArFCAL_Base_ID::module_id() result is not OK: ID, range = 4/3/0/99 , 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+Exception 2: LArID_Exception - Error code: 10 
+ LArFCAL_Base_ID::channel_id() result is not OK: ID, range = 4/3/0/99/0/0/0 , 4/3/-2,2/1/0:62/0:15/0 | 4/3/-2,2/2/0:29/0,7,8,15/0 | 4/3/-2,2/2/0:30/3,4,11,12/0 | 4/3/-2,2/2/0:31/1,2,5,6,9,10,13,14/0 | 4/3/-2,2/3/0:14/2,10/0 | 4/3/-2,2/3/0:14/0,1,3,4,5,6,7,8,9,11,12,13,14,15/0 | 4/3/-2,2/3/15/0,1,2,3,4,6,7,8,9,10,11,12,14,15/0
+Exception 3: LArID_Exception - Error code: 6 
+ LArFCAL_Base_ID::module_id() result is not OK: ID, range = 4/3/1/1 , 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+test4
diff --git a/Calorimeter/CaloIdentifier/share/LArFCAL_SuperCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArFCAL_SuperCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..c1db10738e5c70ad291d4f66bc6f2e74f059a0f5
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArFCAL_SuperCell_ID_test.ref
@@ -0,0 +1,42 @@
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod  decode 1 vals 1:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  ff81ffffffffffff 49 6  9  indexes                     mode  both_bounded  
+phi  decode 0 vals 0:15            mask/zero mask/shift/bits/offset f   fffe1fffffffffff 45 4  15 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffffefffffffffff 44 1  19 indexes                     mode  both_bounded  
+ initialize_from_dict : 
+ channel range -> 4/3/-2,2/1/0:11/0:15/1 | 4/3/-2,2/2/0:7/0:15/1 | 4/3/-2,2/3/0:3/0:15/1
+ module range -> 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+ disconnected channel range -> 
+ disconnected module range -> 
+test_basic
+[4.3.2.1.1.1.1] hex(3602300000000000)
+[4.3.2.2.1.1.1] hex(3682300000000000)
+[4.3.2.3.1.1.1] hex(3702300000000000)
+[4.3.-2.1.1.1.1] hex(3402300000000000)
+[4.3.-2.2.1.1.1] hex(3482300000000000)
+[4.3.-2.3.1.1.1] hex(3502300000000000)
+test_connected
+  nchan 768
+  nreg 6
+Module [4.3.-2.1.0.0.1]   eta: 3.200000 0.140000 0  11 phi: 0.0 0.392699 0  15
+Module [4.3.-2.2.0.0.1]   eta: 3.200000 0.160000 0   7 phi: 0.0 0.392699 0  15
+Module [4.3.-2.3.0.0.1]   eta: 3.200000 0.320000 0   3 phi: 0.0 0.392699 0  15
+Module [4.3.2.1.0.0.1]    eta: 3.200000 0.140000 0  11 phi: 0.0 0.392699 0  15
+Module [4.3.2.2.0.0.1]    eta: 3.200000 0.160000 0   7 phi: 0.0 0.392699 0  15
+Module [4.3.2.3.0.0.1]    eta: 3.200000 0.320000 0   3 phi: 0.0 0.392699 0  15
+  Module counts: 384 256 128 ; total: 768
+test_disco
+  nchan 0
+  Module counts: 0 0 0 ; total: 0
+test_exeptions
+Exception 1: LArID_Exception - Error code: 6 
+ LArFCAL_Base_ID::module_id() result is not OK: ID, range = 4/3/0/99 , 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
+Exception 2: LArID_Exception - Error code: 10 
+ LArFCAL_Base_ID::channel_id() result is not OK: ID, range = 4/3/0/99/0/0/1 , 4/3/-2,2/1/0:11/0:15/1 | 4/3/-2,2/2/0:7/0:15/1 | 4/3/-2,2/3/0:3/0:15/1
+Exception 3: LArID_Exception - Error code: 6 
+ LArFCAL_Base_ID::module_id() result is not OK: ID, range = 4/3/1/1 , 4/3/-2,2/1 | 4/3/-2,2/2 | 4/3/-2,2/3
diff --git a/Calorimeter/CaloIdentifier/share/LArHEC_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArHEC_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..90b65c64ad99f1e1f995d0f27ee1d81b52dccf1f
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArHEC_ID_test.ref
@@ -0,0 +1,90 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/1/0 | 4/2/-2,2/2/0 | 4/2/-2,2/3/0 | 4/2/-2,2/0/1 | 4/2/-2,2/1/1 | 4/2/-2,2/2/1 | 4/2/-2,2/3/1
+ disconnected channel range -> 4/-2/-2,2/2/0/0/0:63 | 4/-2/-2,2/3/0/0:1/0:63 | 4/-2/-2,2/1/1/3/0:31 | 4/-2/-2,2/2/1/3/0:31
+ disconnected region range -> 4/-2/-2,2/2/0 | 4/-2/-2,2/3/0 | 4/-2/-2,2/1/1 | 4/-2/-2,2/2/1
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/1/0 | 4/2/-2,2/2/0 | 4/2/-2,2/3/0 | 4/2/-2,2/0/1 | 4/2/-2,2/1/1 | 4/2/-2,2/2/1 | 4/2/-2,2/3/1
+ disconnected channel range -> 4/-2/-2,2/2/0/0/0:63 | 4/-2/-2,2/3/0/0:1/0:63 | 4/-2/-2,2/1/1/3/0:31 | 4/-2/-2,2/2/1/3/0:31
+ disconnected region range -> 4/-2/-2,2/2/0 | 4/-2/-2,2/3/0 | 4/-2/-2,2/1/1 | 4/-2/-2,2/2/1
+ LArHEC_Base_ID::init_neighbors 
+test_basic
+[4.2.2.1.0.0.1.0] hex(3280100000000000)
+[4.2.2.2.0.2.10.0] hex(3308a00000000000)
+[4.2.2.3.1.0.20.0] hex(33c1400000000000)
+[4.2.-2.1.0.0.1.0] hex(3080100000000000)
+[4.2.-2.2.0.2.10.0] hex(3108a00000000000)
+[4.2.-2.3.1.0.20.0] hex(31c1400000000000)
+test_connected
+  nchannel 5632
+  nregion 16
+Sampling   Outer         Inner
+0            1280           256
+1            1280           192
+2            1152           192
+3            1024           256
+Total        4736           896   Grand total:   5632
+Region [4.2.-2.0.0.0.0.0] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.0.1.0.0.0] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.-2.1.0.0.0.0] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.1.1.0.0.0] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.-2.2.0]       eta: 1.600000 0.100000 1   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.2.1.0.0.0] eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.-2.3.0]       eta: 1.700000 0.100000 2   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.3.1.0.0.0] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.0.0.0.0.0]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.0.1.0.0.0]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.1.0.0.0.0]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.1.1.0.0.0]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.2.2.0]        eta: 1.600000 0.100000 1   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.2.1.0.0.0]  eta: 2.500000 0.200000 0   2 phi: 0.0 0.196350 0  31
+Region [4.2.2.3.0]        eta: 1.700000 0.100000 2   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.3.1.0.0.0]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+test_disco
+  nchan 512
+Sampling   Outer         Inner
+0               0             0
+1               0            64
+2             128            64
+3             256             0
+Total         384           128   Grand total:    512
+test_exceptions
+Exception 1: LArID_Exception - Error code: 7 
+ LArHEC_Base_ID::region_id() result is not OK: ID, range = 4/2/0/99/0 , 4/2/-2,2/0/0 | 4/2/-2,2/1/0 | 4/2/-2,2/2/0 | 4/2/-2,2/3/0 | 4/2/-2,2/0/1 | 4/2/-2,2/1/1 | 4/2/-2,2/2/1 | 4/2/-2,2/3/1
+Exception 2: LArID_Exception - Error code: 8 
+ LArHEC_Base_ID::channel_id() result is not OK: ID, range = 4/2/0/99/0/0/0/0 , 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+Exception 3: LArID_Exception - Error code: 8 
+ LArHEC_Base_ID::channel_id(regId) result is not OK: ID, range = 4/2/2/0/0/0/-99/0 , 4/2/-2,2/0/0/0:9/0:63/0 | 4/2/-2,2/1/0/0:9/0:63/0 | 4/2/-2,2/2/0/1:9/0:63/0 | 4/2/-2,2/3/0/2:9/0:63/0 | 4/2/-2,2/0/1/0:3/0:31/0 | 4/2/-2,2/1/1/0:2/0:31/0 | 4/2/-2,2/2/1/0:2/0:31/0 | 4/2/-2,2/3/1/0:3/0:31/0
+test_neighbors
+test_hec
diff --git a/Calorimeter/CaloIdentifier/share/LArHEC_SuperCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArHEC_SuperCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..466b8433b83af904458f95d6019f803aaf198c8a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArHEC_SuperCell_ID_test.ref
@@ -0,0 +1,76 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/1 | 4/2/-2,2/0/1/0:3/0:31/1
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/0/1
+ disconnected channel range -> 
+ disconnected region range -> 
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar  decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+hec  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn   decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+samp decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+reg  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   ffbfffffffffffff 54 1  9  indexes                     mode  both_bounded  
+eta  decode 0 vals 0:9             mask/zero mask/shift/bits/offset f   ffc3ffffffffffff 50 4  10 indexes                     mode  both_bounded  
+phi  decode 0 vals 0:63            mask/zero mask/shift/bits/offset 3f  fffc0fffffffffff 44 6  14 indexes                     mode  both_bounded  
+is-slar  decode 0 vals 0:1             mask/zero mask/shift/bits/offset 1   fffff7ffffffffff 43 1  20 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/2/-2,2/0/0/0:9/0:63/1 | 4/2/-2,2/0/1/0:3/0:31/1
+ region range -> 4/2/-2,2/0/0 | 4/2/-2,2/0/1
+ disconnected channel range -> 
+ disconnected region range -> 
+ LArHEC_Base_ID::init_neighbors 
+test_basic
+[4.2.2.0.0.0.1.1] hex(3200180000000000)
+[4.2.2.0.1.3.2.1] hex(324c280000000000)
+[4.2.-2.0.0.0.1.1] hex(3000180000000000)
+[4.2.-2.0.1.3.2.1] hex(304c280000000000)
+test_connected
+  nchannel 1536
+  nregion 4
+Sampling   Outer         Inner
+0            1280           256
+1               0             0
+2               0             0
+3               0             0
+Total        1280           256   Grand total:   1536
+Region [4.2.-2.0.0.0.0.1] eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.-2.0.1.0.0.1] eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+Region [4.2.2.0.0.0.0.1]  eta: 1.500000 0.100000 0   9 phi: 0.0 0.098175 0  63
+Region [4.2.2.0.1.0.0.1]  eta: 2.500000 0.200000 0   3 phi: 0.0 0.196350 0  31
+test_disco
+  nchan 0
+Sampling   Outer         Inner
+0               0             0
+1               0             0
+2               0             0
+3               0             0
+Total           0             0   Grand total:      0
+test_exceptions
+Exception 1: LArID_Exception - Error code: 7 
+ LArHEC_Base_ID::region_id() result is not OK: ID, range = 4/2/0/99/0 , 4/2/-2,2/0/0 | 4/2/-2,2/0/1
+Exception 2: LArID_Exception - Error code: 8 
+ LArHEC_Base_ID::channel_id() result is not OK: ID, range = 4/2/0/99/0/0/0/1 , 4/2/-2,2/0/0/0:9/0:63/1 | 4/2/-2,2/0/1/0:3/0:31/1
+Exception 3: LArID_Exception - Error code: 8 
+ LArHEC_Base_ID::channel_id(regId) result is not OK: ID, range = 4/2/2/0/0/0/-99/1 , 4/2/-2,2/0/0/0:9/0:63/1 | 4/2/-2,2/0/1/0:3/0:31/1
+test_neighbors
+test_hec
diff --git a/Calorimeter/CaloIdentifier/share/LArMiniFCAL_ID_test.ref b/Calorimeter/CaloIdentifier/share/LArMiniFCAL_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..0affe4d4fef91e33460cb0d8fe4a1570e20998e5
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/LArMiniFCAL_ID_test.ref
@@ -0,0 +1,64 @@
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar   decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn    decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod   decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+depth decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+eta   decode 0 vals 0:8             mask/zero mask/shift/bits/offset f   ffe1ffffffffffff 49 4  11 indexes                     mode  both_bounded  
+phi   decode 0 vals 0:85            mask/zero mask/shift/bits/offset 7f  fffe03ffffffffff 42 7  15 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/3/-2,2/0/0:3/0/0:85 | 4/3/-2,2/0/0:3/1/0:79 | 4/3/-2,2/0/0:3/2/0:73 | 4/3/-2,2/0/0:3/3/0:66 | 4/3/-2,2/0/0:3/4/0:60 | 4/3/-2,2/0/0:3/5/0:54 | 4/3/-2,2/0/0:3/6/0:47 | 4/3/-2,2/0/0:3/7/0:41 | 4/3/-2,2/0/0:3/8/0:35
+ module range -> 4/3/-2,2/0
+ depth range -> 4/3/-2,2/0/0:3
+ disconnected channel range -> 
+ disconnected module range -> 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+decode index and bit fields for each level: 
+lar   decode 1 vals 2,4,5,7,10,11,12,13 mask/zero mask/shift/bits/offset 7   1fffffffffffffff 61 3  0  indexes 0 0 1 2 0 3 0 0 4 5 6 7 mode  enumerated  
+fcal  decode 1 vals -3,-2,-1,1,2,3,4,5 mask/zero mask/shift/bits/offset 7   e3ffffffffffffff 58 3  3  indexes 0 1 2 0 3 4 5 6 7   mode  enumerated  
+pn    decode 1 vals -2,2            mask/zero mask/shift/bits/offset 1   fdffffffffffffff 57 1  6  indexes 0 0 0 0 1           mode  enumerated  
+mod   decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   fe7fffffffffffff 55 2  7  indexes                     mode  both_bounded  
+depth decode 0 vals 0:3             mask/zero mask/shift/bits/offset 3   ff9fffffffffffff 53 2  9  indexes                     mode  both_bounded  
+eta   decode 0 vals 0:8             mask/zero mask/shift/bits/offset f   ffe1ffffffffffff 49 4  11 indexes                     mode  both_bounded  
+phi   decode 0 vals 0:85            mask/zero mask/shift/bits/offset 7f  fffe03ffffffffff 42 7  15 indexes                     mode  both_bounded  
+initialize_from_dict : 
+ channel range -> 4/3/-2,2/0/0:3/0/0:85 | 4/3/-2,2/0/0:3/1/0:79 | 4/3/-2,2/0/0:3/2/0:73 | 4/3/-2,2/0/0:3/3/0:66 | 4/3/-2,2/0/0:3/4/0:60 | 4/3/-2,2/0/0:3/5/0:54 | 4/3/-2,2/0/0:3/6/0:47 | 4/3/-2,2/0/0:3/7/0:41 | 4/3/-2,2/0/0:3/8/0:35
+ module range -> 4/3/-2,2/0
+ depth range -> 4/3/-2,2/0/0:3
+ disconnected channel range -> 
+ disconnected module range -> 
+LArMiniFCAL_ID::init_neighbors 
+LArMiniFCAL_ID::init_neighbors_from_file 
+LArMiniFCAL_ID       INFO Reading file /home/sss/atlas/supercell2/build/share/FCal2DNeighbors-DC3-05-Comm-01.txt
+LArMiniFCAL_ID::init_neighbors_from_file 
+LArMiniFCAL_ID       INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsNext-DC3-05-Comm-01.txt
+LArMiniFCAL_ID::init_neighbors_from_file 
+LArMiniFCAL_ID       INFO Reading file /home/sss/atlas/supercell2/build/share/FCal3DNeighborsPrev-DC3-05-Comm-01.txt
+test_basic
+[4.3.2.0.0.0.0] hex(3600000000000000)
+[4.3.2.0.1.0.0] hex(3620000000000000)
+[4.3.2.0.2.0.0] hex(3640000000000000)
+[4.3.-2.0.0.0.0] hex(3400000000000000)
+[4.3.-2.0.1.0.0] hex(3420000000000000)
+[4.3.-2.0.2.0.0] hex(3440000000000000)
+test_connected
+  nchannel 4392
+  nmodule 2
+Sampling
+0            1098
+1            1098
+2            1098
+3            1098
+Total        4392
+Region [4.3.-2.0.0.0.0]   eta: 4.750000 0.150000 0   8 phi: 0.0 0.174533 0  85
+Region [4.3.2.0.0.0.0]    eta: 4.750000 0.150000 0   8 phi: 0.0 0.174533 0  85
+test_disco
+test_exceptions
+Exception 1: LArID_Exception - Error code: 6 
+ LArMiniFCAL_ID::module_id() result is not OK: ID, range = 4/3/99/0 , 4/3/-2,2/0
+Exception 2: LArID_Exception - Error code: 10 
+ LArMiniFCAL_ID::channel_id() result is not OK: ID, range = 4/3/2/0/0/0/999 , 4/3/-2,2/0/0:3/0/0:85 | 4/3/-2,2/0/0:3/1/0:79 | 4/3/-2,2/0/0:3/2/0:73 | 4/3/-2,2/0/0:3/3/0:66 | 4/3/-2,2/0/0:3/4/0:60 | 4/3/-2,2/0/0:3/5/0:54 | 4/3/-2,2/0/0:3/6/0:47 | 4/3/-2,2/0/0:3/7/0:41 | 4/3/-2,2/0/0:3/8/0:35
+test_neighbors
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighborsSuperCells-April2014.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighborsSuperCells-April2014.dat
new file mode 100644
index 0000000000000000000000000000000000000000..0f6b804abe4f5b898f2a753dd83965736f3ed8c1
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighborsSuperCells-April2014.dat
@@ -0,0 +1,297 @@
+# File and Version Information:
+# $Id: SuperCaloNeighboursSuperCells-April2014.dat,v 1.0 2014-05-06 15:36:00 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Tue May 06 15:36:00 2014
+#
+# ranges of expanded calorimeter super cell identifiers are mapped to create 
+# lookup tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges.
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EMB3/TileB 4/1/-1,1/3/0/0:9/0:63 5/1/-1,1/0:63/0:8 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/0/0 5/1/1/0/0
+4/1/1/3/0/1/0 5/1/1/0/1
+4/1/1/3/0/2/0 5/1/1/0/2
+4/1/1/3/0/3/0 5/1/1/0/3
+4/1/1/3/0/4/0 5/1/1/0/4
+4/1/1/3/0/5/0 5/1/1/0/5
+4/1/1/3/0/6/0 5/1/1/0/6
+4/1/1/3/0/7/0 5/1/1/0/7
+4/1/1/3/0/8/0 5/1/1/0/8
+4/1/1/3/0/9/0 5/1/1/0/8 
+
+prevSuperCalo TileB/EMB3 5/1/-1,1/0:63/0:8 4/1/-1,1/3/0/0:9/0:63 calcSide(2,2) calcPhi(3,6)
+5/1/1/0/0 4/1/1/3/0/0/0
+5/1/1/0/1 4/1/1/3/0/1/0
+5/1/1/0/2 4/1/1/3/0/2/0
+5/1/1/0/3 4/1/1/3/0/3/0
+5/1/1/0/4 4/1/1/3/0/4/0
+5/1/1/0/5 4/1/1/3/0/5/0
+5/1/1/0/6 4/1/1/3/0/6/0
+5/1/1/0/7 4/1/1/3/0/7/0
+5/1/1/0/8 4/1/1/3/0/8/0 4/1/1/3/0/9/0
+
+nextSuperCalo EMB3/TileE 4/1/-1,1/3/0/9:13/0:63 5/2/-1,1/0:63/9:13 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/9/0 5/2/1/0/9
+4/1/1/3/0/10/0 5/2/1/0/10
+4/1/1/3/0/11/0 5/2/1/0/11
+4/1/1/3/0/12/0 5/2/1/0/12
+4/1/1/3/0/13/0 5/2/1/0/13
+
+prevSuperCalo TileE/EMB3 5/2/-1,1/0:63/9:13 4/1/-1,1/3/0/9:13/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/9 4/1/1/3/0/9/0
+5/2/1/0/10 4/1/1/3/0/10/0
+5/2/1/0/11 4/1/1/3/0/11/0
+5/2/1/0/12 4/1/1/3/0/12/0
+5/2/1/0/13 4/1/1/3/0/13/0
+
+nextSuperCalo EMEC3/TileE 4/1/-2,2/3/0/0/0:63 5/2/-1,1/0:63/15 calcSide(2,2) calcPhi(6,3)
+4/1/2/3/0/0/0 5/2/1/0/15
+
+prevSuperCalo TileE/EME3 5/2/-1,1/0:63/15 4/1/-2,2/3/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15 4/1/2/3/0/0/0
+
+nextSuperCalo EMEC2/TileE 4/1/-2,2/2/1/0:3/0:63 5/2/-1,1/0:63/14:15 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/1/0/0 5/2/1/0/14
+4/1/2/2/1/1/0 5/2/1/0/14
+4/1/2/2/1/2/0 5/2/1/0/14
+4/1/2/2/1/3/0 5/2/1/0/15
+
+prevSuperCalo TileE/EME2 5/2/-1,1/0:63/14:15 4/1/-2,2/2/1/0:3/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14 4/1/2/2/1/0/0 4/1/2/2/1/1/0 4/1/2/2/1/2/0
+5/2/1/0/15 4/1/2/2/1/3/0
+
+nextSuperCalo EMEC3/HECOW 4/1/-2,2/3/0/0:9/0:63 4/2/-2,2/0/0/0:9/0:63 calcSide(2,2) calcPhi(6,6)
+4/1/2/3/0/0/0 4/2/2/0/0/0/0
+4/1/2/3/0/1/0 4/2/2/0/0/1/0
+4/1/2/3/0/2/0 4/2/2/0/0/2/0
+4/1/2/3/0/3/0 4/2/2/0/0/3/0
+4/1/2/3/0/4/0 4/2/2/0/0/4/0
+4/1/2/3/0/5/0 4/2/2/0/0/5/0
+4/1/2/3/0/6/0 4/2/2/0/0/6/0
+4/1/2/3/0/7/0 4/2/2/0/0/7/0
+4/1/2/3/0/8/0 4/2/2/0/0/8/0
+4/1/2/3/0/9/0 4/2/2/0/0/9/0
+
+prevSuperCalo HECOW/EMEC3 4/2/-2,2/0/0/0:9/0:63 4/1/-2,2/3/0/0:9/0:63 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/0/0/0 4/1/2/3/0/0/0
+4/2/2/0/0/1/0 4/1/2/3/0/1/0
+4/2/2/0/0/2/0 4/1/2/3/0/2/0
+4/2/2/0/0/3/0 4/1/2/3/0/3/0
+4/2/2/0/0/4/0 4/1/2/3/0/4/0
+4/2/2/0/0/5/0 4/1/2/3/0/5/0
+4/2/2/0/0/6/0 4/1/2/3/0/6/0
+4/2/2/0/0/7/0 4/1/2/3/0/7/0
+4/2/2/0/0/8/0 4/1/2/3/0/8/0
+4/2/2/0/0/9/0 4/1/2/3/0/9/0
+
+nextSuperCalo EMEC20/HECIW 4/1/-3,3/2/0/0:2/0:31 4/2/-2,2/0/1/0:2/0:31 calcSide(2,2) calcPhi(6,6)
+4/1/3/2/0/0/0 4/2/2/0/1/0/0
+4/1/3/2/0/1/0 4/2/2/0/1/1/0
+4/1/3/2/0/2/0 4/2/2/0/1/2/0
+
+prevSuperCalo HECIW/EMEC20 4/2/-2,2/0/1/0:2/0:31 4/1/-3,3/2/0/0:2/0:31 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/1/0/0 4/1/3/2/0/0/0
+4/2/2/0/1/1/0 4/1/3/2/0/1/0
+4/2/2/0/1/2/0 4/1/3/2/0/2/0
+
+nextSuperCalo EMEC21/HECIW 4/1/-3,3/2/1/0/0:31 4/2/-2,2/0/1/3/0:31 calcSide(2,2) calcPhi(6,6)
+4/1/3/2/1/0/0 4/2/2/0/1/3/0
+
+prevSuperCalo HECIW/EMEC21 4/2/-2,2/0/1/3/0:31 4/1/-3,3/2/1/0/0:31 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/1/3/0 4/1/3/2/1/0/0 
+
+nextSuperCalo HEC/TileE 4/2/-2,2/0/0/0/0:63 5/2/-1,1/0:63/15 calcSide(2,2) calcPhi(6,3)
+4/2/2/0/0/0/0 5/2/1/0/15
+
+prevSuperCalo TileE/HEC 5/2/-1,1/0:63/15 4/2/-2,2/0/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15 4/2/2/0/0/0/0
+
+nextSuperCalo HECIW/FCal1 4/2/-2,2/0/1/2:3/0:31 4/3/-2,2/1/0:2/0:15 calcSide(2,2)
+4/2/2/0/1/2/1 4/3/2/1/0/0
+4/2/2/0/1/2/2 4/3/2/1/0/1
+4/2/2/0/1/2/3 4/3/2/1/0/1
+4/2/2/0/1/2/4 4/3/2/1/0/2
+4/2/2/0/1/2/5 4/3/2/1/0/3
+4/2/2/0/1/2/6 4/3/2/1/0/3
+4/2/2/0/1/2/7 4/3/2/1/0/3
+4/2/2/0/1/2/8 4/3/2/1/0/4
+4/2/2/0/1/2/23 4/3/2/1/0/11
+4/2/2/0/1/2/24 4/3/2/1/0/12
+4/2/2/0/1/2/25 4/3/2/1/0/12
+4/2/2/0/1/2/26 4/3/2/1/0/12 4/3/2/1/0/13
+4/2/2/0/1/2/27 4/3/2/1/0/13
+4/2/2/0/1/2/28 4/3/2/1/0/14
+4/2/2/0/1/2/29 4/3/2/1/0/14 4/3/2/1/0/15
+4/2/2/0/1/2/30 4/3/2/1/0/15
+4/2/2/0/1/3/0 4/3/2/1/0/0 4/3/2/1/1/0 4/3/2/1/2/0
+4/2/2/0/1/3/1 4/3/2/1/0/0 4/3/2/1/1/0 4/3/2/1/2/0 4/3/2/1/0/1 4/3/2/1/1/1
+4/2/2/0/1/3/2 4/3/2/1/0/0 4/3/2/1/1/0 4/3/2/1/0/1 4/3/2/1/1/1 4/3/2/1/2/1
+4/2/2/0/1/3/3 4/3/2/1/0/1 4/3/2/1/1/1 4/3/2/1/2/1 4/3/2/1/0/2 4/3/2/1/1/2
+4/2/2/0/1/3/4 4/3/2/1/0/1 4/3/2/1/1/1 4/3/2/1/0/2 4/3/2/1/1/2 4/3/2/1/2/2
+4/2/2/0/1/3/5 4/3/2/1/0/2 4/3/2/1/1/2 4/3/2/1/2/2 4/3/2/1/0/3 4/3/2/1/1/3
+4/2/2/0/1/3/6 4/3/2/1/0/2 4/3/2/1/0/3 4/3/2/1/1/3
+4/2/2/0/1/3/7 4/3/2/1/0/3 4/3/2/1/1/3 4/3/2/1/0/4 4/3/2/1/1/4
+4/2/2/0/1/3/8 4/3/2/1/0/4 4/3/2/1/1/4
+4/2/2/0/1/3/9 4/3/2/1/0/4 4/3/2/1/1/4 4/3/2/1/0/5 4/3/2/1/1/5
+4/2/2/0/1/3/10 4/3/2/1/0/4 4/3/2/1/1/4 4/3/2/1/0/5 4/3/2/1/1/5 4/3/2/1/2/5
+4/2/2/0/1/3/11 4/3/2/1/0/5 4/3/2/1/1/5 4/3/2/1/0/6 4/3/2/1/1/6
+4/2/2/0/1/3/12 4/3/2/1/0/5 4/3/2/1/1/5 4/3/2/1/0/6 4/3/2/1/1/6 4/3/2/1/2/6
+4/2/2/0/1/3/13 4/3/2/1/0/6 4/3/2/1/1/6 4/3/2/1/2/6 4/3/2/1/0/7 4/3/2/1/1/7
+4/2/2/0/1/3/14 4/3/2/1/0/6 4/3/2/1/1/6 4/3/2/1/0/7 4/3/2/1/1/7 4/3/2/1/2/7
+4/2/2/0/1/3/15 4/3/2/1/0/7 4/3/2/1/1/7
+4/2/2/0/1/3/16 4/3/2/1/0/8 4/3/2/1/1/8
+4/2/2/0/1/3/17 4/3/2/1/0/8 4/3/2/1/1/8 4/3/2/1/2/8 4/3/2/1/0/9 4/3/2/1/1/9
+4/2/2/0/1/3/18 4/3/2/1/0/8 4/3/2/1/1/8 4/3/2/1/0/9 4/3/2/1/1/9 4/3/2/1/2/9
+4/2/2/0/1/3/19 4/3/2/1/0/9 4/3/2/1/1/9 4/3/2/1/2/9 4/3/2/1/0/10 4/3/2/1/1/10
+4/2/2/0/1/3/20 4/3/2/1/0/9 4/3/2/1/1/9 4/3/2/1/0/10 4/3/2/1/1/10 4/3/2/1/2/10
+4/2/2/0/1/3/21 4/3/2/1/0/10 4/3/2/1/1/10 4/3/2/1/2/10 4/3/2/1/1/11
+4/2/2/0/1/3/22 4/3/2/1/0/10 4/3/2/1/1/10 4/3/2/1/0/11 4/3/2/1/1/11
+4/2/2/0/1/3/23 4/3/2/1/0/11 4/3/2/1/1/11
+4/2/2/0/1/3/24 4/3/2/1/0/11 4/3/2/1/1/11 4/3/2/1/0/12 4/3/2/1/1/12
+4/2/2/0/1/3/25 4/3/2/1/0/12 4/3/2/1/1/12 4/3/2/1/0/13
+4/2/2/0/1/3/26 4/3/2/1/0/12 4/3/2/1/1/12 4/3/2/1/0/13 4/3/2/1/1/13 4/3/2/1/2/13
+4/2/2/0/1/3/27 4/3/2/1/0/13 4/3/2/1/1/13 4/3/2/1/0/14 4/3/2/1/1/14
+4/2/2/0/1/3/28 4/3/2/1/0/13 4/3/2/1/1/13 4/3/2/1/0/14 4/3/2/1/1/14 4/3/2/1/2/14
+4/2/2/0/1/3/29 4/3/2/1/0/14 4/3/2/1/1/14 4/3/2/1/2/14 4/3/2/1/0/15 4/3/2/1/1/15
+4/2/2/0/1/3/30 4/3/2/1/0/14 4/3/2/1/1/14 4/3/2/1/0/15 4/3/2/1/1/15 4/3/2/1/2/15
+4/2/2/0/1/3/31 4/3/2/1/0/15 4/3/2/1/1/15 4/3/2/1/2/15
+
+prevSuperCalo FCal1/HECIW 4/3/-2,2/1/0:2/0:15 4/2/-2,2/0/1/2:3/0:31 calcSide(2,2)
+4/3/2/1/0/0  4/2/2/0/1/3/0 4/2/2/0/1/2/1 4/2/2/0/1/3/1 4/2/2/0/1/3/2
+4/3/2/1/1/0  4/2/2/0/1/3/0 4/2/2/0/1/3/1 4/2/2/0/1/3/2
+4/3/2/1/2/0  4/2/2/0/1/3/0 4/2/2/0/1/3/1
+4/3/2/1/0/1  4/2/2/0/1/3/1 4/2/2/0/1/2/2 4/2/2/0/1/3/2 4/2/2/0/1/2/3 4/2/2/0/1/3/3 4/2/2/0/1/3/4
+4/3/2/1/1/1  4/2/2/0/1/3/1 4/2/2/0/1/3/2 4/2/2/0/1/3/3 4/2/2/0/1/3/4
+4/3/2/1/2/1  4/2/2/0/1/3/2 4/2/2/0/1/3/3
+4/3/2/1/0/2  4/2/2/0/1/3/3 4/2/2/0/1/2/4 4/2/2/0/1/3/4 4/2/2/0/1/3/5 4/2/2/0/1/3/6
+4/3/2/1/1/2  4/2/2/0/1/3/3 4/2/2/0/1/3/4 4/2/2/0/1/3/5
+4/3/2/1/2/2  4/2/2/0/1/3/4 4/2/2/0/1/3/5
+4/3/2/1/0/3  4/2/2/0/1/2/5 4/2/2/0/1/3/5 4/2/2/0/1/2/6 4/2/2/0/1/3/6 4/2/2/0/1/2/7 4/2/2/0/1/3/7
+4/3/2/1/1/3  4/2/2/0/1/3/5 4/2/2/0/1/3/6 4/2/2/0/1/3/7
+4/3/2/1/0/4  4/2/2/0/1/3/7 4/2/2/0/1/2/8 4/2/2/0/1/3/8 4/2/2/0/1/3/9 4/2/2/0/1/3/10
+4/3/2/1/1/4  4/2/2/0/1/3/7 4/2/2/0/1/3/8 4/2/2/0/1/3/9 4/2/2/0/1/3/10
+4/3/2/1/0/5  4/2/2/0/1/3/9 4/2/2/0/1/3/10 4/2/2/0/1/3/11 4/2/2/0/1/3/12
+4/3/2/1/1/5  4/2/2/0/1/3/9 4/2/2/0/1/3/10 4/2/2/0/1/3/11 4/2/2/0/1/3/12
+4/3/2/1/2/5  4/2/2/0/1/3/10
+4/3/2/1/0/6  4/2/2/0/1/3/11 4/2/2/0/1/3/12 4/2/2/0/1/3/13 4/2/2/0/1/3/14
+4/3/2/1/1/6  4/2/2/0/1/3/11 4/2/2/0/1/3/12 4/2/2/0/1/3/13 4/2/2/0/1/3/14
+4/3/2/1/2/6  4/2/2/0/1/3/12 4/2/2/0/1/3/13
+4/3/2/1/0/7  4/2/2/0/1/3/13 4/2/2/0/1/3/14 4/2/2/0/1/3/15
+4/3/2/1/1/7  4/2/2/0/1/3/13 4/2/2/0/1/3/14 4/2/2/0/1/3/15
+4/3/2/1/2/7  4/2/2/0/1/3/14
+4/3/2/1/0/8  4/2/2/0/1/3/16 4/2/2/0/1/3/17 4/2/2/0/1/3/18
+4/3/2/1/1/8  4/2/2/0/1/3/16 4/2/2/0/1/3/17 4/2/2/0/1/3/18
+4/3/2/1/2/8  4/2/2/0/1/3/17
+4/3/2/1/0/9  4/2/2/0/1/3/17 4/2/2/0/1/3/18 4/2/2/0/1/3/19 4/2/2/0/1/3/20
+4/3/2/1/1/9  4/2/2/0/1/3/17 4/2/2/0/1/3/18 4/2/2/0/1/3/19 4/2/2/0/1/3/20
+4/3/2/1/2/9  4/2/2/0/1/3/18 4/2/2/0/1/3/19
+4/3/2/1/0/10  4/2/2/0/1/3/19 4/2/2/0/1/3/20 4/2/2/0/1/3/21 4/2/2/0/1/3/22
+4/3/2/1/1/10  4/2/2/0/1/3/19 4/2/2/0/1/3/20 4/2/2/0/1/3/21 4/2/2/0/1/3/22
+4/3/2/1/2/10  4/2/2/0/1/3/20 4/2/2/0/1/3/21
+4/3/2/1/0/11  4/2/2/0/1/3/22 4/2/2/0/1/2/23 4/2/2/0/1/3/23 4/2/2/0/1/3/24
+4/3/2/1/1/11  4/2/2/0/1/3/21 4/2/2/0/1/3/22 4/2/2/0/1/3/23 4/2/2/0/1/3/24
+4/3/2/1/0/12  4/2/2/0/1/2/24 4/2/2/0/1/3/24 4/2/2/0/1/2/25 4/2/2/0/1/3/25 4/2/2/0/1/2/26 4/2/2/0/1/3/26
+4/3/2/1/1/12  4/2/2/0/1/3/24 4/2/2/0/1/3/25 4/2/2/0/1/3/26
+4/3/2/1/0/13  4/2/2/0/1/3/25 4/2/2/0/1/2/26 4/2/2/0/1/3/26 4/2/2/0/1/2/27 4/2/2/0/1/3/27 4/2/2/0/1/3/28
+4/3/2/1/1/13  4/2/2/0/1/3/26 4/2/2/0/1/3/27 4/2/2/0/1/3/28
+4/3/2/1/2/13  4/2/2/0/1/3/26
+4/3/2/1/0/14  4/2/2/0/1/3/27 4/2/2/0/1/2/28 4/2/2/0/1/3/28 4/2/2/0/1/2/29 4/2/2/0/1/3/29 4/2/2/0/1/3/30
+4/3/2/1/1/14  4/2/2/0/1/3/27 4/2/2/0/1/3/28 4/2/2/0/1/3/29 4/2/2/0/1/3/30
+4/3/2/1/2/14  4/2/2/0/1/3/28 4/2/2/0/1/3/29
+4/3/2/1/0/15  4/2/2/0/1/2/29 4/2/2/0/1/3/29 4/2/2/0/1/2/30 4/2/2/0/1/3/30 4/2/2/0/1/3/31
+4/3/2/1/1/15  4/2/2/0/1/3/29 4/2/2/0/1/3/30 4/2/2/0/1/3/31
+4/3/2/1/2/15  4/2/2/0/1/3/30 4/2/2/0/1/3/31
+
+nextSuperCalo FCal2/HECIW 4/3/-2,2/2/0:2/0:15 4/2/-2,2/0/1/3/0:31 calcSide(2,2)
+4/3/2/2/0/0  4/2/2/0/1/3/0 4/2/2/0/1/3/1 4/2/2/0/1/3/2
+4/3/2/2/1/0  4/2/2/0/1/3/0 4/2/2/0/1/3/1 4/2/2/0/1/3/2
+4/3/2/2/2/0  4/2/2/0/1/3/0 4/2/2/0/1/3/1
+4/3/2/2/0/1  4/2/2/0/1/3/2 4/2/2/0/1/3/3 4/2/2/0/1/3/4
+4/3/2/2/1/1  4/2/2/0/1/3/2 4/2/2/0/1/3/3
+4/3/2/2/2/1  4/2/2/0/1/3/2 4/2/2/0/1/3/3 4/2/2/0/1/3/4
+4/3/2/2/0/2  4/2/2/0/1/3/3 4/2/2/0/1/3/4 4/2/2/0/1/3/5
+4/3/2/2/1/2  4/2/2/0/1/3/4 4/2/2/0/1/3/5
+4/3/2/2/2/2  4/2/2/0/1/3/4 4/2/2/0/1/3/5
+4/3/2/2/0/3  4/2/2/0/1/3/5 4/2/2/0/1/3/6 4/2/2/0/1/3/7
+4/3/2/2/1/3  4/2/2/0/1/3/5 4/2/2/0/1/3/6 4/2/2/0/1/3/7
+4/3/2/2/0/4  4/2/2/0/1/3/8 4/2/2/0/1/3/9 4/2/2/0/1/3/10
+4/3/2/2/1/4  4/2/2/0/1/3/8 4/2/2/0/1/3/9 4/2/2/0/1/3/10
+4/3/2/2/0/5  4/2/2/0/1/3/10 4/2/2/0/1/3/11
+4/3/2/2/1/5  4/2/2/0/1/3/10 4/2/2/0/1/3/11 4/2/2/0/1/3/12
+4/3/2/2/2/5  4/2/2/0/1/3/10 4/2/2/0/1/3/11
+4/3/2/2/0/6  4/2/2/0/1/3/11 4/2/2/0/1/3/12 4/2/2/0/1/3/13
+4/3/2/2/1/6  4/2/2/0/1/3/12 4/2/2/0/1/3/13
+4/3/2/2/2/6  4/2/2/0/1/3/11 4/2/2/0/1/3/12 4/2/2/0/1/3/13
+4/3/2/2/0/7  4/2/2/0/1/3/13 4/2/2/0/1/3/14 4/2/2/0/1/3/15
+4/3/2/2/1/7  4/2/2/0/1/3/13 4/2/2/0/1/3/14 4/2/2/0/1/3/15
+4/3/2/2/2/7  4/2/2/0/1/3/14 4/2/2/0/1/3/15
+4/3/2/2/0/8  4/2/2/0/1/3/16 4/2/2/0/1/3/17 4/2/2/0/1/3/18
+4/3/2/2/1/8  4/2/2/0/1/3/16 4/2/2/0/1/3/17 4/2/2/0/1/3/18
+4/3/2/2/2/8  4/2/2/0/1/3/16 4/2/2/0/1/3/17
+4/3/2/2/0/9  4/2/2/0/1/3/18 4/2/2/0/1/3/19 4/2/2/0/1/3/20
+4/3/2/2/1/9  4/2/2/0/1/3/18 4/2/2/0/1/3/19
+4/3/2/2/2/9  4/2/2/0/1/3/18 4/2/2/0/1/3/19 4/2/2/0/1/3/20
+4/3/2/2/0/10  4/2/2/0/1/3/19 4/2/2/0/1/3/20 4/2/2/0/1/3/21
+4/3/2/2/1/10  4/2/2/0/1/3/20 4/2/2/0/1/3/21
+4/3/2/2/2/10  4/2/2/0/1/3/20 4/2/2/0/1/3/21
+4/3/2/2/0/11  4/2/2/0/1/3/21 4/2/2/0/1/3/22 4/2/2/0/1/3/23
+4/3/2/2/1/11  4/2/2/0/1/3/21 4/2/2/0/1/3/22 4/2/2/0/1/3/23
+4/3/2/2/0/12  4/2/2/0/1/3/24 4/2/2/0/1/3/25 4/2/2/0/1/3/26
+4/3/2/2/1/12  4/2/2/0/1/3/24 4/2/2/0/1/3/25 4/2/2/0/1/3/26
+4/3/2/2/0/13  4/2/2/0/1/3/26 4/2/2/0/1/3/27
+4/3/2/2/1/13  4/2/2/0/1/3/26 4/2/2/0/1/3/27 4/2/2/0/1/3/28
+4/3/2/2/2/13  4/2/2/0/1/3/26 4/2/2/0/1/3/27
+4/3/2/2/0/14  4/2/2/0/1/3/27 4/2/2/0/1/3/28 4/2/2/0/1/3/29
+4/3/2/2/1/14  4/2/2/0/1/3/28 4/2/2/0/1/3/29
+4/3/2/2/2/14  4/2/2/0/1/3/27 4/2/2/0/1/3/28 4/2/2/0/1/3/29
+4/3/2/2/0/15  4/2/2/0/1/3/29 4/2/2/0/1/3/30 4/2/2/0/1/3/31
+4/3/2/2/1/15  4/2/2/0/1/3/29 4/2/2/0/1/3/30 4/2/2/0/1/3/31
+4/3/2/2/2/15  4/2/2/0/1/3/30 4/2/2/0/1/3/31
+
+prevSuperCalo HECIW/FCal2 4/2/-2,2/0/1/3/0:31 4/3/-2,2/2/0:2/0:15 calcSide(2,2)
+4/2/2/0/1/3/0 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/2/0
+4/2/2/0/1/3/1 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/2/0
+4/2/2/0/1/3/2 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/0/1 4/3/2/2/1/1 4/3/2/2/2/1
+4/2/2/0/1/3/3 4/3/2/2/0/1 4/3/2/2/1/1 4/3/2/2/2/1 4/3/2/2/0/2
+4/2/2/0/1/3/4 4/3/2/2/0/1 4/3/2/2/2/1 4/3/2/2/0/2 4/3/2/2/1/2 4/3/2/2/2/2
+4/2/2/0/1/3/5 4/3/2/2/0/2 4/3/2/2/1/2 4/3/2/2/2/2 4/3/2/2/0/3 4/3/2/2/1/3
+4/2/2/0/1/3/6 4/3/2/2/0/3 4/3/2/2/1/3
+4/2/2/0/1/3/7 4/3/2/2/0/3 4/3/2/2/1/3
+4/2/2/0/1/3/8 4/3/2/2/0/4 4/3/2/2/1/4
+4/2/2/0/1/3/9 4/3/2/2/0/4 4/3/2/2/1/4
+4/2/2/0/1/3/10 4/3/2/2/0/4 4/3/2/2/1/4 4/3/2/2/0/5 4/3/2/2/1/5 4/3/2/2/2/5
+4/2/2/0/1/3/11 4/3/2/2/0/5 4/3/2/2/1/5 4/3/2/2/2/5 4/3/2/2/0/6 4/3/2/2/2/6
+4/2/2/0/1/3/12 4/3/2/2/1/5 4/3/2/2/0/6 4/3/2/2/1/6 4/3/2/2/2/6
+4/2/2/0/1/3/13 4/3/2/2/0/6 4/3/2/2/1/6 4/3/2/2/2/6 4/3/2/2/0/7 4/3/2/2/1/7
+4/2/2/0/1/3/14 4/3/2/2/0/7 4/3/2/2/1/7 4/3/2/2/2/7
+4/2/2/0/1/3/15 4/3/2/2/0/7 4/3/2/2/1/7 4/3/2/2/2/7
+4/2/2/0/1/3/16 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/2/8
+4/2/2/0/1/3/17 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/2/8
+4/2/2/0/1/3/18 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/0/9 4/3/2/2/1/9 4/3/2/2/2/9
+4/2/2/0/1/3/19 4/3/2/2/0/9 4/3/2/2/1/9 4/3/2/2/2/9 4/3/2/2/0/10
+4/2/2/0/1/3/20 4/3/2/2/0/9 4/3/2/2/2/9 4/3/2/2/0/10 4/3/2/2/1/10 4/3/2/2/2/10
+4/2/2/0/1/3/21 4/3/2/2/0/10 4/3/2/2/1/10 4/3/2/2/2/10 4/3/2/2/0/11 4/3/2/2/1/11
+4/2/2/0/1/3/22 4/3/2/2/0/11 4/3/2/2/1/11
+4/2/2/0/1/3/23 4/3/2/2/0/11 4/3/2/2/1/11
+4/2/2/0/1/3/24 4/3/2/2/0/12 4/3/2/2/1/12
+4/2/2/0/1/3/25 4/3/2/2/0/12 4/3/2/2/1/12
+4/2/2/0/1/3/26 4/3/2/2/0/12 4/3/2/2/1/12 4/3/2/2/0/13 4/3/2/2/1/13 4/3/2/2/2/13
+4/2/2/0/1/3/27 4/3/2/2/0/13 4/3/2/2/1/13 4/3/2/2/2/13 4/3/2/2/0/14 4/3/2/2/2/14
+4/2/2/0/1/3/28 4/3/2/2/1/13 4/3/2/2/0/14 4/3/2/2/1/14 4/3/2/2/2/14
+4/2/2/0/1/3/29 4/3/2/2/0/14 4/3/2/2/1/14 4/3/2/2/2/14 4/3/2/2/0/15 4/3/2/2/1/15
+4/2/2/0/1/3/30 4/3/2/2/0/15 4/3/2/2/1/15 4/3/2/2/2/15
+4/2/2/0/1/3/31 4/3/2/2/0/15 4/3/2/2/1/15 4/3/2/2/2/15
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-April2011.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-April2011.dat
new file mode 100644
index 0000000000000000000000000000000000000000..d44ad56328120b56ba03903496d3808fbe925032
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-April2011.dat
@@ -0,0 +1,772 @@
+# File and Version Information:
+# $Id: SuperCaloNeighbours-April2011.dat,v 1.0 2011-04-20 13:53:00 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Wed Apr 20 13:52:50 2011
+#
+# ranges of expanded calorimeter identifiers are mapped to create lookup
+# tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges.
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EMB3/TILEB 4/1/-1,1/3/0/0:19/0:255 5/1/-1,1/0:63/0:9/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/0/0 5/1/1/0/0/0 
+4/1/1/3/0/1/0 5/1/1/0/0/0
+4/1/1/3/0/2/0 5/1/1/0/1/0
+4/1/1/3/0/3/0 5/1/1/0/1/0
+4/1/1/3/0/4/0 5/1/1/0/2/0
+4/1/1/3/0/5/0 5/1/1/0/2/0
+4/1/1/3/0/6/0 5/1/1/0/3/0
+4/1/1/3/0/7/0 5/1/1/0/3/0
+4/1/1/3/0/8/0 5/1/1/0/4/0
+4/1/1/3/0/9/0 5/1/1/0/4/0
+4/1/1/3/0/10/0 5/1/1/0/5/0
+4/1/1/3/0/11/0 5/1/1/0/5/0
+4/1/1/3/0/12/0 5/1/1/0/6/0
+4/1/1/3/0/13/0 5/1/1/0/6/0
+4/1/1/3/0/14/0 5/1/1/0/7/0
+4/1/1/3/0/15/0 5/1/1/0/7/0
+4/1/1/3/0/16/0 5/1/1/0/8/0
+4/1/1/3/0/17/0 5/1/1/0/8/0
+4/1/1/3/0/18/0 5/1/1/0/9/0
+4/1/1/3/0/19/0 5/1/1/0/9/0
+
+prevSuperCalo TILEB/EMB3 5/1/-1,1/0:63/0:9/0 4/1/-1,1/3/0/0:19/0:255 calcSide(2,2) calcPhi(3,6)
+5/1/1/0/0/0 4/1/1/3/0/0/0 4/1/1/3/0/0/1 4/1/1/3/0/0/2 4/1/1/3/0/0/3 4/1/1/3/0/1/0 4/1/1/3/0/1/1 4/1/1/3/0/1/2 4/1/1/3/0/1/3 
+5/1/1/0/1/0 4/1/1/3/0/2/0 4/1/1/3/0/2/1 4/1/1/3/0/2/2 4/1/1/3/0/2/3 4/1/1/3/0/3/0 4/1/1/3/0/3/1 4/1/1/3/0/3/2 4/1/1/3/0/3/3 
+5/1/1/0/2/0 4/1/1/3/0/4/0 4/1/1/3/0/4/1 4/1/1/3/0/4/2 4/1/1/3/0/4/3 4/1/1/3/0/5/0 4/1/1/3/0/5/1 4/1/1/3/0/5/2 4/1/1/3/0/5/3 
+5/1/1/0/3/0 4/1/1/3/0/6/0 4/1/1/3/0/6/1 4/1/1/3/0/6/2 4/1/1/3/0/6/3 4/1/1/3/0/7/0 4/1/1/3/0/7/1 4/1/1/3/0/7/2 4/1/1/3/0/7/3 
+5/1/1/0/4/0 4/1/1/3/0/8/0 4/1/1/3/0/8/1 4/1/1/3/0/8/2 4/1/1/3/0/8/3 4/1/1/3/0/9/0 4/1/1/3/0/9/1 4/1/1/3/0/9/2 4/1/1/3/0/9/3 
+5/1/1/0/5/0 4/1/1/3/0/10/0 4/1/1/3/0/10/1 4/1/1/3/0/10/2 4/1/1/3/0/10/3 4/1/1/3/0/11/0 4/1/1/3/0/11/1 4/1/1/3/0/11/2 4/1/1/3/0/11/3 
+5/1/1/0/6/0 4/1/1/3/0/12/0 4/1/1/3/0/12/1 4/1/1/3/0/12/2 4/1/1/3/0/12/3 4/1/1/3/0/13/0 4/1/1/3/0/13/1 4/1/1/3/0/13/2 4/1/1/3/0/13/3 
+5/1/1/0/7/0 4/1/1/3/0/14/0 4/1/1/3/0/14/1 4/1/1/3/0/14/2 4/1/1/3/0/14/3 4/1/1/3/0/15/0 4/1/1/3/0/15/1 4/1/1/3/0/15/2 4/1/1/3/0/15/3 
+5/1/1/0/8/0 4/1/1/3/0/16/0 4/1/1/3/0/16/1 4/1/1/3/0/16/2 4/1/1/3/0/16/3 4/1/1/3/0/17/0 4/1/1/3/0/17/1 4/1/1/3/0/17/2 4/1/1/3/0/17/3 
+5/1/1/0/9/0 4/1/1/3/0/18/0 4/1/1/3/0/18/1 4/1/1/3/0/18/2 4/1/1/3/0/18/3 4/1/1/3/0/19/0 4/1/1/3/0/19/1 4/1/1/3/0/19/2 4/1/1/3/0/19/3 
+
+nextSuperCalo EMB3/TILEG 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 5/3/-1,1/0:63/10,11,13/3 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/20/0 5/3/1/0/10/3
+4/1/1/3/0/21/0 5/3/1/0/10/3
+4/1/1/3/0/22/0 5/3/1/0/11/3
+4/1/1/3/0/23/0 5/3/1/0/11/3
+4/1/1/3/0/25/0 5/3/1/0/13/3
+4/1/1/3/0/26/0 5/3/1/0/13/3
+
+prevSuperCalo TILEG/EMB3 5/3/-1,1/0:63/10,11,13/3 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 calcSide(2,2) calcPhi(3,6)
+5/3/1/0/10/3 4/1/1/3/0/20/0 4/1/1/3/0/20/1 4/1/1/3/0/20/2 4/1/1/3/0/20/3 4/1/1/3/0/21/0 4/1/1/3/0/21/1 4/1/1/3/0/21/2 4/1/1/3/0/21/3 
+5/3/1/0/11/3 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/3/1/0/13/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EMB3/TILEE 4/1/-1,1/3/0/22:26/0:255 5/2/-1,1/0:63/11:13/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/22/0 5/2/1/0/11/0 
+4/1/1/3/0/23/0 5/2/1/0/11/0 
+4/1/1/3/0/24/0 5/2/1/0/12/0
+4/1/1/3/0/25/0 5/2/1/0/12/0 
+4/1/1/3/0/26/0 5/2/1/0/13/0 
+
+prevSuperCalo TILEE/EMB3 5/2/-1,1/0:63/11:13/0 4/1/-1,1/3/0/22:26/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/11/0 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/2/1/0/12/0 4/1/1/3/0/24/0 4/1/1/3/0/24/1 4/1/1/3/0/24/2 4/1/1/3/0/24/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 
+5/2/1/0/13/0 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EME2OW0/TILEE 4/1/-2,2/2/0/0/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/0/0/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW0 5/2/-1,1/0:63/14/0 4/1/-2,2/2/0/0/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/0/0/0 4/1/2/2/0/0/1 4/1/2/2/0/0/2 4/1/2/2/0/0/3
+
+nextSuperCalo EME2OW1/TILEE 4/1/-2,2/2/1/0:2/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/1/0/0 5/2/1/0/14/0
+4/1/2/2/1/1/0 5/2/1/0/14/0
+4/1/2/2/1/2/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW1 5/2/-1,1/0:63/14/0 4/1/-2,2/2/1/0:2/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/1/0/0 4/1/2/2/1/1/0 4/1/2/2/1/2/0 4/1/2/2/1/0/1 4/1/2/2/1/1/1 4/1/2/2/1/2/1 4/1/2/2/1/0/2 4/1/2/2/1/1/2 4/1/2/2/1/2/2 4/1/2/2/1/0/3 4/1/2/2/1/1/3 4/1/2/2/1/2/3 
+
+nextSuperCalo EME3OW/HEC00 4/1/-2,2/3/0/0:19/0:255 4/2/-2,2/0/0/0:9/0:63 calcSide(2,2) calcPhi(6,6)
+4/1/2/3/0/0/0 4/2/2/0/0/0/0
+4/1/2/3/0/1/0 4/2/2/0/0/0/0
+4/1/2/3/0/2/0 4/2/2/0/0/1/0
+4/1/2/3/0/3/0 4/2/2/0/0/1/0
+4/1/2/3/0/4/0 4/2/2/0/0/2/0
+4/1/2/3/0/5/0 4/2/2/0/0/2/0
+4/1/2/3/0/6/0 4/2/2/0/0/3/0
+4/1/2/3/0/7/0 4/2/2/0/0/3/0
+4/1/2/3/0/8/0 4/2/2/0/0/4/0
+4/1/2/3/0/9/0 4/2/2/0/0/4/0
+4/1/2/3/0/10/0 4/2/2/0/0/5/0
+4/1/2/3/0/11/0 4/2/2/0/0/5/0
+4/1/2/3/0/12/0 4/2/2/0/0/6/0
+4/1/2/3/0/13/0 4/2/2/0/0/6/0
+4/1/2/3/0/14/0 4/2/2/0/0/7/0
+4/1/2/3/0/15/0 4/2/2/0/0/7/0
+4/1/2/3/0/16/0 4/2/2/0/0/8/0
+4/1/2/3/0/17/0 4/2/2/0/0/8/0
+4/1/2/3/0/18/0 4/2/2/0/0/9/0
+4/1/2/3/0/19/0 4/2/2/0/0/9/0
+
+prevSuperCalo HEC00/EME3OW 4/2/-2,2/0/0/0:9/0:63 4/1/-2,2/3/0/0:19/0:255 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/0/0/0 4/1/2/3/0/0/0 4/1/2/3/0/0/1 4/1/2/3/0/0/2 4/1/2/3/0/0/3 4/1/2/3/0/1/0 4/1/2/3/0/1/1 4/1/2/3/0/1/2 4/1/2/3/0/1/3 
+4/2/2/0/0/1/0 4/1/2/3/0/2/0 4/1/2/3/0/2/1 4/1/2/3/0/2/2 4/1/2/3/0/2/3 4/1/2/3/0/3/0 4/1/2/3/0/3/1 4/1/2/3/0/3/2 4/1/2/3/0/3/3 
+4/2/2/0/0/2/0 4/1/2/3/0/4/0 4/1/2/3/0/4/1 4/1/2/3/0/4/2 4/1/2/3/0/4/3 4/1/2/3/0/5/0 4/1/2/3/0/5/1 4/1/2/3/0/5/2 4/1/2/3/0/5/3 
+4/2/2/0/0/3/0 4/1/2/3/0/6/0 4/1/2/3/0/6/1 4/1/2/3/0/6/2 4/1/2/3/0/6/3 4/1/2/3/0/7/0 4/1/2/3/0/7/1 4/1/2/3/0/7/2 4/1/2/3/0/7/3 
+4/2/2/0/0/4/0 4/1/2/3/0/8/0 4/1/2/3/0/8/1 4/1/2/3/0/8/2 4/1/2/3/0/8/3 4/1/2/3/0/9/0 4/1/2/3/0/9/1 4/1/2/3/0/9/2 4/1/2/3/0/9/3 
+4/2/2/0/0/5/0 4/1/2/3/0/10/0 4/1/2/3/0/10/1 4/1/2/3/0/10/2 4/1/2/3/0/10/3 4/1/2/3/0/11/0 4/1/2/3/0/11/1 4/1/2/3/0/11/2 4/1/2/3/0/11/3 
+4/2/2/0/0/6/0 4/1/2/3/0/12/0 4/1/2/3/0/12/1 4/1/2/3/0/12/2 4/1/2/3/0/12/3 4/1/2/3/0/13/0 4/1/2/3/0/13/1 4/1/2/3/0/13/2 4/1/2/3/0/13/3 
+4/2/2/0/0/7/0 4/1/2/3/0/14/0 4/1/2/3/0/14/1 4/1/2/3/0/14/2 4/1/2/3/0/14/3 4/1/2/3/0/15/0 4/1/2/3/0/15/1 4/1/2/3/0/15/2 4/1/2/3/0/15/3 
+4/2/2/0/0/8/0 4/1/2/3/0/16/0 4/1/2/3/0/16/1 4/1/2/3/0/16/2 4/1/2/3/0/16/3 4/1/2/3/0/17/0 4/1/2/3/0/17/1 4/1/2/3/0/17/2 4/1/2/3/0/17/3 
+4/2/2/0/0/9/0 4/1/2/3/0/18/0 4/1/2/3/0/18/1 4/1/2/3/0/18/2 4/1/2/3/0/18/3 4/1/2/3/0/19/0 4/1/2/3/0/19/1 4/1/2/3/0/19/2 4/1/2/3/0/19/3 
+
+nextSuperCalo EME2IW/HEC01 4/1/-3,3/2/0/0:6/0:63 4/2/-2,2/0/1/0:3/0:31 calcSide(2,2) calcPhi(6,6)
+4/1/3/2/0/0/0 4/2/2/0/1/0/0
+4/1/3/2/0/1/0 4/2/2/0/1/0/0
+4/1/3/2/0/2/0 4/2/2/0/1/1/0
+4/1/3/2/0/3/0 4/2/2/0/1/1/0
+4/1/3/2/0/4/0 4/2/2/0/1/2/0
+4/1/3/2/0/5/0 4/2/2/0/1/2/0
+4/1/3/2/0/6/0 4/2/2/0/1/3/0
+
+prevSuperCalo HEC01/EME2IW 4/2/-2,2/0/1/0:3/0:31 4/1/-3,3/2/0/0:6/0:63 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/1/0/0 4/1/3/2/0/0/0 4/1/3/2/0/0/1 4/1/3/2/0/1/0 4/1/3/2/0/1/1
+4/2/2/0/1/1/0 4/1/3/2/0/2/0 4/1/3/2/0/2/1 4/1/3/2/0/3/0 4/1/3/2/0/3/1
+4/2/2/0/1/2/0 4/1/3/2/0/4/0 4/1/3/2/0/4/1 4/1/3/2/0/5/0 4/1/3/2/0/5/1
+4/2/2/0/1/3/0 4/1/3/2/0/6/0 4/1/3/2/0/6/1
+
+nextSuperCalo HEC00/TILEE 4/2/-2,2/0/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/0/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo TILEE/HEC00 5/2/-1,1/0:63/15/0 4/2/-2,2/0/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/0/0/0/0 
+
+nextSuperCalo HEC01/FCAL1 4/2/-2,2/0/1/2:3/0:31 4/3/-2,2/1/0:24/0:15 calcSide(2,2)
+4/2/2/0/1/2/4 4/3/2/1/0/2
+4/2/2/0/1/2/6 4/3/2/1/1/3
+4/2/2/0/1/2/7 4/3/2/1/0/3
+4/2/2/0/1/2/8 4/3/2/1/0/4
+4/2/2/0/1/2/9 4/3/2/1/1/4
+4/2/2/0/1/2/10 4/3/2/1/0/5
+4/2/2/0/1/2/12 4/3/2/1/1/6
+4/2/2/0/1/2/13 4/3/2/1/0/6
+4/2/2/0/1/2/20 4/3/2/1/0/10
+4/2/2/0/1/2/22 4/3/2/1/1/11
+4/2/2/0/1/2/23 4/3/2/1/0/11
+4/2/2/0/1/2/24 4/3/2/1/0/12
+4/2/2/0/1/2/25 4/3/2/1/1/12
+4/2/2/0/1/2/26 4/3/2/1/0/13
+4/2/2/0/1/2/28 4/3/2/1/1/14
+4/2/2/0/1/2/29 4/3/2/1/0/14
+4/2/2/0/1/3/0 4/3/2/1/1/0 4/3/2/1/2/0 4/3/2/1/3/0 4/3/2/1/5/0 4/3/2/1/6/0 4/3/2/1/9/0 4/3/2/1/10/0 4/3/2/1/11/0 4/3/2/1/14/0 4/3/2/1/15/0 4/3/2/1/16/0 4/3/2/1/20/0 4/3/2/1/21/0 4/3/2/1/22/0
+4/2/2/0/1/3/1 4/3/2/1/0/0 4/3/2/1/4/0 4/3/2/1/7/0 4/3/2/1/8/0 4/3/2/1/12/0 4/3/2/1/13/0 4/3/2/1/17/0 4/3/2/1/18/0 4/3/2/1/19/0 4/3/2/1/21/1 4/3/2/1/23/0
+4/2/2/0/1/3/2 4/3/2/1/1/1 4/3/2/1/2/1 4/3/2/1/3/1 4/3/2/1/5/1 4/3/2/1/7/1 4/3/2/1/9/1 4/3/2/1/11/1 4/3/2/1/13/1 4/3/2/1/14/1 4/3/2/1/16/1 4/3/2/1/19/1 4/3/2/1/22/1
+4/2/2/0/1/3/3 4/3/2/1/0/1 4/3/2/1/4/1 4/3/2/1/6/1 4/3/2/1/8/1 4/3/2/1/10/1 4/3/2/1/12/1 4/3/2/1/15/1 4/3/2/1/17/1 4/3/2/1/18/1 4/3/2/1/20/1
+4/2/2/0/1/3/4 4/3/2/1/3/2 4/3/2/1/6/2 4/3/2/1/8/2 4/3/2/1/9/2 4/3/2/1/12/2 4/3/2/1/13/2 4/3/2/1/16/2 4/3/2/1/17/2 4/3/2/1/20/2 4/3/2/1/21/2
+4/2/2/0/1/3/5 4/3/2/1/1/2 4/3/2/1/2/2 4/3/2/1/4/2 4/3/2/1/5/2 4/3/2/1/7/2 4/3/2/1/10/2 4/3/2/1/11/2 4/3/2/1/14/2 4/3/2/1/15/2 4/3/2/1/18/2 4/3/2/1/19/2 4/3/2/1/22/2
+4/2/2/0/1/3/6 4/3/2/1/2/3 4/3/2/1/3/3 4/3/2/1/4/3 4/3/2/1/8/3 4/3/2/1/10/3 4/3/2/1/11/3 4/3/2/1/15/3 4/3/2/1/16/3 4/3/2/1/17/3 4/3/2/1/20/3 4/3/2/1/21/3
+4/2/2/0/1/3/7 4/3/2/1/5/3 4/3/2/1/6/3 4/3/2/1/7/3 4/3/2/1/9/3 4/3/2/1/12/3 4/3/2/1/13/3 4/3/2/1/14/3 4/3/2/1/18/3 4/3/2/1/19/3
+4/2/2/0/1/3/8 4/3/2/1/6/4 4/3/2/1/7/4 4/3/2/1/8/4 4/3/2/1/9/4 4/3/2/1/12/4 4/3/2/1/13/4 4/3/2/1/14/4 4/3/2/1/18/4 4/3/2/1/19/4
+4/2/2/0/1/3/9 4/3/2/1/2/4 4/3/2/1/3/4 4/3/2/1/4/4 4/3/2/1/5/4 4/3/2/1/10/4 4/3/2/1/11/4 4/3/2/1/15/4 4/3/2/1/16/4 4/3/2/1/17/4 4/3/2/1/20/4 4/3/2/1/21/4
+4/2/2/0/1/3/10 4/3/2/1/2/5 4/3/2/1/4/5 4/3/2/1/5/5 4/3/2/1/9/5 4/3/2/1/10/5 4/3/2/1/13/5 4/3/2/1/14/5 4/3/2/1/17/5 4/3/2/1/18/5 4/3/2/1/21/5
+4/2/2/0/1/3/11 4/3/2/1/1/5 4/3/2/1/3/5 4/3/2/1/6/5 4/3/2/1/7/5 4/3/2/1/8/5 4/3/2/1/11/5 4/3/2/1/12/5 4/3/2/1/15/5 4/3/2/1/16/5 4/3/2/1/19/5 4/3/2/1/20/5
+4/2/2/0/1/3/12 4/3/2/1/4/6 4/3/2/1/6/6 4/3/2/1/8/6 4/3/2/1/10/6 4/3/2/1/12/6 4/3/2/1/15/6 4/3/2/1/17/6 4/3/2/1/18/6 4/3/2/1/20/6
+4/2/2/0/1/3/13 4/3/2/1/2/6 4/3/2/1/3/6 4/3/2/1/5/6 4/3/2/1/7/6 4/3/2/1/9/6 4/3/2/1/11/6 4/3/2/1/13/6 4/3/2/1/14/6 4/3/2/1/16/6 4/3/2/1/19/6 4/3/2/1/22/6
+4/2/2/0/1/3/14 4/3/2/1/0/7 4/3/2/1/3/7 4/3/2/1/5/7 4/3/2/1/7/7 4/3/2/1/8/7 4/3/2/1/13/7 4/3/2/1/14/7 4/3/2/1/18/7 4/3/2/1/19/7 4/3/2/1/20/7 4/3/2/1/21/6 4/3/2/1/24/7
+4/2/2/0/1/3/15 4/3/2/1/1/7 4/3/2/1/2/7 4/3/2/1/4/7 4/3/2/1/6/7 4/3/2/1/9/7 4/3/2/1/10/7 4/3/2/1/11/7 4/3/2/1/12/7 4/3/2/1/15/7 4/3/2/1/16/7 4/3/2/1/17/7 4/3/2/1/21/7 4/3/2/1/22/7 4/3/2/1/23/7
+4/2/2/0/1/3/16 4/3/2/1/1/8 4/3/2/1/2/8 4/3/2/1/3/8 4/3/2/1/5/8 4/3/2/1/6/8 4/3/2/1/9/8 4/3/2/1/10/8 4/3/2/1/11/8 4/3/2/1/14/8 4/3/2/1/15/8 4/3/2/1/16/8 4/3/2/1/20/8 4/3/2/1/21/8 4/3/2/1/22/8
+4/2/2/0/1/3/17 4/3/2/1/0/8 4/3/2/1/4/8 4/3/2/1/7/8 4/3/2/1/8/8 4/3/2/1/12/8 4/3/2/1/13/8 4/3/2/1/17/8 4/3/2/1/18/8 4/3/2/1/19/8 4/3/2/1/21/9 4/3/2/1/23/8
+4/2/2/0/1/3/18 4/3/2/1/1/9 4/3/2/1/2/9 4/3/2/1/3/9 4/3/2/1/5/9 4/3/2/1/7/9 4/3/2/1/9/9 4/3/2/1/11/9 4/3/2/1/13/9 4/3/2/1/14/9 4/3/2/1/16/9 4/3/2/1/19/9 4/3/2/1/22/9
+4/2/2/0/1/3/19 4/3/2/1/0/9 4/3/2/1/4/9 4/3/2/1/6/9 4/3/2/1/8/9 4/3/2/1/10/9 4/3/2/1/12/9 4/3/2/1/15/9 4/3/2/1/17/9 4/3/2/1/18/9 4/3/2/1/20/9
+4/2/2/0/1/3/20 4/3/2/1/3/10 4/3/2/1/6/10 4/3/2/1/8/10 4/3/2/1/9/10 4/3/2/1/12/10 4/3/2/1/13/10 4/3/2/1/16/10 4/3/2/1/17/10 4/3/2/1/20/10 4/3/2/1/21/10
+4/2/2/0/1/3/21 4/3/2/1/1/10 4/3/2/1/2/10 4/3/2/1/4/10 4/3/2/1/5/10 4/3/2/1/7/10 4/3/2/1/10/10 4/3/2/1/11/10 4/3/2/1/14/10 4/3/2/1/15/10 4/3/2/1/18/10 4/3/2/1/19/10 4/3/2/1/22/10
+4/2/2/0/1/3/22 4/3/2/1/2/11 4/3/2/1/3/11 4/3/2/1/4/11 4/3/2/1/8/11 4/3/2/1/10/11 4/3/2/1/11/11 4/3/2/1/15/11 4/3/2/1/16/11 4/3/2/1/17/11 4/3/2/1/20/11 4/3/2/1/21/11
+4/2/2/0/1/3/23 4/3/2/1/5/11 4/3/2/1/6/11 4/3/2/1/7/11 4/3/2/1/9/11 4/3/2/1/12/11 4/3/2/1/13/11 4/3/2/1/14/11 4/3/2/1/18/11 4/3/2/1/19/11
+4/2/2/0/1/3/24 4/3/2/1/6/12 4/3/2/1/7/12 4/3/2/1/8/12 4/3/2/1/9/12 4/3/2/1/12/12 4/3/2/1/13/12 4/3/2/1/14/12 4/3/2/1/18/12 4/3/2/1/19/12
+4/2/2/0/1/3/25 4/3/2/1/2/12 4/3/2/1/3/12 4/3/2/1/4/12 4/3/2/1/5/12 4/3/2/1/10/12 4/3/2/1/11/12 4/3/2/1/15/12 4/3/2/1/16/12 4/3/2/1/17/12 4/3/2/1/20/12 4/3/2/1/21/12
+4/2/2/0/1/3/26 4/3/2/1/2/13 4/3/2/1/4/13 4/3/2/1/5/13 4/3/2/1/9/13 4/3/2/1/10/13 4/3/2/1/13/13 4/3/2/1/14/13 4/3/2/1/17/13 4/3/2/1/18/13 4/3/2/1/21/13
+4/2/2/0/1/3/27 4/3/2/1/1/13 4/3/2/1/3/13 4/3/2/1/6/13 4/3/2/1/7/13 4/3/2/1/8/13 4/3/2/1/11/13 4/3/2/1/12/13 4/3/2/1/15/13 4/3/2/1/16/13 4/3/2/1/19/13 4/3/2/1/20/13
+4/2/2/0/1/3/28 4/3/2/1/4/14 4/3/2/1/6/14 4/3/2/1/8/14 4/3/2/1/10/14 4/3/2/1/12/14 4/3/2/1/15/14 4/3/2/1/17/14 4/3/2/1/18/14 4/3/2/1/20/14
+4/2/2/0/1/3/29 4/3/2/1/2/14 4/3/2/1/3/14 4/3/2/1/5/14 4/3/2/1/7/14 4/3/2/1/9/14 4/3/2/1/11/14 4/3/2/1/13/14 4/3/2/1/14/14 4/3/2/1/16/14 4/3/2/1/19/14 4/3/2/1/22/14
+4/2/2/0/1/3/30 4/3/2/1/0/15 4/3/2/1/3/15 4/3/2/1/5/15 4/3/2/1/7/15 4/3/2/1/8/15 4/3/2/1/13/15 4/3/2/1/14/15 4/3/2/1/18/15 4/3/2/1/19/15 4/3/2/1/20/15 4/3/2/1/21/14 4/3/2/1/24/15
+4/2/2/0/1/3/31 4/3/2/1/1/15 4/3/2/1/2/15 4/3/2/1/4/15 4/3/2/1/6/15 4/3/2/1/9/15 4/3/2/1/10/15 4/3/2/1/11/15 4/3/2/1/12/15 4/3/2/1/15/15 4/3/2/1/16/15 4/3/2/1/17/15 4/3/2/1/21/15 4/3/2/1/22/15 4/3/2/1/23/15
+
+prevSuperCalo FCAL1/HEC01 4/3/-2,2/1/0:24/0:15 4/2/-2,2/0/1/2:3/0:31 calcSide(2,2)
+4/3/2/1/0/2 4/2/2/0/1/2/4
+4/3/2/1/1/3 4/2/2/0/1/2/6
+4/3/2/1/0/3 4/2/2/0/1/2/7
+4/3/2/1/0/4 4/2/2/0/1/2/8
+4/3/2/1/1/4 4/2/2/0/1/2/9
+4/3/2/1/0/5 4/2/2/0/1/2/10
+4/3/2/1/1/6 4/2/2/0/1/2/12
+4/3/2/1/0/6 4/2/2/0/1/2/13
+4/3/2/1/0/10 4/2/2/0/1/2/20
+4/3/2/1/1/11 4/2/2/0/1/2/22
+4/3/2/1/0/11 4/2/2/0/1/2/23
+4/3/2/1/0/12 4/2/2/0/1/2/24
+4/3/2/1/1/12 4/2/2/0/1/2/25
+4/3/2/1/0/13 4/2/2/0/1/2/26
+4/3/2/1/1/14 4/2/2/0/1/2/28
+4/3/2/1/0/14 4/2/2/0/1/2/29
+4/3/2/1/1/0 4/2/2/0/1/3/0
+4/3/2/1/2/0 4/2/2/0/1/3/0
+4/3/2/1/3/0 4/2/2/0/1/3/0
+4/3/2/1/5/0 4/2/2/0/1/3/0
+4/3/2/1/6/0 4/2/2/0/1/3/0
+4/3/2/1/9/0 4/2/2/0/1/3/0
+4/3/2/1/10/0 4/2/2/0/1/3/0
+4/3/2/1/11/0 4/2/2/0/1/3/0
+4/3/2/1/14/0 4/2/2/0/1/3/0
+4/3/2/1/15/0 4/2/2/0/1/3/0
+4/3/2/1/16/0 4/2/2/0/1/3/0
+4/3/2/1/20/0 4/2/2/0/1/3/0
+4/3/2/1/21/0 4/2/2/0/1/3/0
+4/3/2/1/22/0 4/2/2/0/1/3/0
+4/3/2/1/0/0 4/2/2/0/1/3/1
+4/3/2/1/4/0 4/2/2/0/1/3/1
+4/3/2/1/7/0 4/2/2/0/1/3/1
+4/3/2/1/8/0 4/2/2/0/1/3/1
+4/3/2/1/12/0 4/2/2/0/1/3/1
+4/3/2/1/13/0 4/2/2/0/1/3/1
+4/3/2/1/17/0 4/2/2/0/1/3/1
+4/3/2/1/18/0 4/2/2/0/1/3/1
+4/3/2/1/19/0 4/2/2/0/1/3/1
+4/3/2/1/21/1 4/2/2/0/1/3/1
+4/3/2/1/23/0 4/2/2/0/1/3/1
+4/3/2/1/1/1 4/2/2/0/1/3/2
+4/3/2/1/2/1 4/2/2/0/1/3/2
+4/3/2/1/3/1 4/2/2/0/1/3/2
+4/3/2/1/5/1 4/2/2/0/1/3/2
+4/3/2/1/7/1 4/2/2/0/1/3/2
+4/3/2/1/9/1 4/2/2/0/1/3/2
+4/3/2/1/11/1 4/2/2/0/1/3/2
+4/3/2/1/13/1 4/2/2/0/1/3/2
+4/3/2/1/14/1 4/2/2/0/1/3/2
+4/3/2/1/16/1 4/2/2/0/1/3/2
+4/3/2/1/19/1 4/2/2/0/1/3/2
+4/3/2/1/22/1 4/2/2/0/1/3/2
+4/3/2/1/0/1 4/2/2/0/1/3/3
+4/3/2/1/4/1 4/2/2/0/1/3/3
+4/3/2/1/6/1 4/2/2/0/1/3/3
+4/3/2/1/8/1 4/2/2/0/1/3/3
+4/3/2/1/10/1 4/2/2/0/1/3/3
+4/3/2/1/12/1 4/2/2/0/1/3/3
+4/3/2/1/15/1 4/2/2/0/1/3/3
+4/3/2/1/17/1 4/2/2/0/1/3/3
+4/3/2/1/18/1 4/2/2/0/1/3/3
+4/3/2/1/20/1 4/2/2/0/1/3/3
+4/3/2/1/3/2 4/2/2/0/1/3/4
+4/3/2/1/6/2 4/2/2/0/1/3/4
+4/3/2/1/8/2 4/2/2/0/1/3/4
+4/3/2/1/9/2 4/2/2/0/1/3/4
+4/3/2/1/12/2 4/2/2/0/1/3/4
+4/3/2/1/13/2 4/2/2/0/1/3/4
+4/3/2/1/16/2 4/2/2/0/1/3/4
+4/3/2/1/17/2 4/2/2/0/1/3/4
+4/3/2/1/20/2 4/2/2/0/1/3/4
+4/3/2/1/21/2 4/2/2/0/1/3/4
+4/3/2/1/1/2 4/2/2/0/1/3/5
+4/3/2/1/2/2 4/2/2/0/1/3/5
+4/3/2/1/4/2 4/2/2/0/1/3/5
+4/3/2/1/5/2 4/2/2/0/1/3/5
+4/3/2/1/7/2 4/2/2/0/1/3/5
+4/3/2/1/10/2 4/2/2/0/1/3/5
+4/3/2/1/11/2 4/2/2/0/1/3/5
+4/3/2/1/14/2 4/2/2/0/1/3/5
+4/3/2/1/15/2 4/2/2/0/1/3/5
+4/3/2/1/18/2 4/2/2/0/1/3/5
+4/3/2/1/19/2 4/2/2/0/1/3/5
+4/3/2/1/22/2 4/2/2/0/1/3/5
+4/3/2/1/2/3 4/2/2/0/1/3/6
+4/3/2/1/3/3 4/2/2/0/1/3/6
+4/3/2/1/4/3 4/2/2/0/1/3/6
+4/3/2/1/8/3 4/2/2/0/1/3/6
+4/3/2/1/10/3 4/2/2/0/1/3/6
+4/3/2/1/11/3 4/2/2/0/1/3/6
+4/3/2/1/15/3 4/2/2/0/1/3/6
+4/3/2/1/16/3 4/2/2/0/1/3/6
+4/3/2/1/17/3 4/2/2/0/1/3/6
+4/3/2/1/20/3 4/2/2/0/1/3/6
+4/3/2/1/21/3 4/2/2/0/1/3/6
+4/3/2/1/5/3 4/2/2/0/1/3/7
+4/3/2/1/6/3 4/2/2/0/1/3/7
+4/3/2/1/7/3 4/2/2/0/1/3/7
+4/3/2/1/9/3 4/2/2/0/1/3/7
+4/3/2/1/12/3 4/2/2/0/1/3/7
+4/3/2/1/13/3 4/2/2/0/1/3/7
+4/3/2/1/14/3 4/2/2/0/1/3/7
+4/3/2/1/18/3 4/2/2/0/1/3/7
+4/3/2/1/19/3 4/2/2/0/1/3/7
+4/3/2/1/6/4 4/2/2/0/1/3/8
+4/3/2/1/7/4 4/2/2/0/1/3/8
+4/3/2/1/8/4 4/2/2/0/1/3/8
+4/3/2/1/9/4 4/2/2/0/1/3/8
+4/3/2/1/12/4 4/2/2/0/1/3/8
+4/3/2/1/13/4 4/2/2/0/1/3/8
+4/3/2/1/14/4 4/2/2/0/1/3/8
+4/3/2/1/18/4 4/2/2/0/1/3/8
+4/3/2/1/19/4 4/2/2/0/1/3/8
+4/3/2/1/2/4 4/2/2/0/1/3/9
+4/3/2/1/3/4 4/2/2/0/1/3/9
+4/3/2/1/4/4 4/2/2/0/1/3/9
+4/3/2/1/5/4 4/2/2/0/1/3/9
+4/3/2/1/10/4 4/2/2/0/1/3/9
+4/3/2/1/11/4 4/2/2/0/1/3/9
+4/3/2/1/15/4 4/2/2/0/1/3/9
+4/3/2/1/16/4 4/2/2/0/1/3/9
+4/3/2/1/17/4 4/2/2/0/1/3/9
+4/3/2/1/20/4 4/2/2/0/1/3/9
+4/3/2/1/21/4 4/2/2/0/1/3/9
+4/3/2/1/2/5 4/2/2/0/1/3/10
+4/3/2/1/4/5 4/2/2/0/1/3/10
+4/3/2/1/5/5 4/2/2/0/1/3/10
+4/3/2/1/9/5 4/2/2/0/1/3/10
+4/3/2/1/10/5 4/2/2/0/1/3/10
+4/3/2/1/13/5 4/2/2/0/1/3/10
+4/3/2/1/14/5 4/2/2/0/1/3/10
+4/3/2/1/17/5 4/2/2/0/1/3/10
+4/3/2/1/18/5 4/2/2/0/1/3/10
+4/3/2/1/21/5 4/2/2/0/1/3/10
+4/3/2/1/1/5 4/2/2/0/1/3/11
+4/3/2/1/3/5 4/2/2/0/1/3/11
+4/3/2/1/6/5 4/2/2/0/1/3/11
+4/3/2/1/7/5 4/2/2/0/1/3/11
+4/3/2/1/8/5 4/2/2/0/1/3/11
+4/3/2/1/11/5 4/2/2/0/1/3/11
+4/3/2/1/12/5 4/2/2/0/1/3/11
+4/3/2/1/15/5 4/2/2/0/1/3/11
+4/3/2/1/16/5 4/2/2/0/1/3/11
+4/3/2/1/19/5 4/2/2/0/1/3/11
+4/3/2/1/20/5 4/2/2/0/1/3/11
+4/3/2/1/4/6 4/2/2/0/1/3/12
+4/3/2/1/6/6 4/2/2/0/1/3/12
+4/3/2/1/8/6 4/2/2/0/1/3/12
+4/3/2/1/10/6 4/2/2/0/1/3/12
+4/3/2/1/12/6 4/2/2/0/1/3/12
+4/3/2/1/15/6 4/2/2/0/1/3/12
+4/3/2/1/17/6 4/2/2/0/1/3/12
+4/3/2/1/18/6 4/2/2/0/1/3/12
+4/3/2/1/20/6 4/2/2/0/1/3/12
+4/3/2/1/2/6 4/2/2/0/1/3/13
+4/3/2/1/3/6 4/2/2/0/1/3/13
+4/3/2/1/5/6 4/2/2/0/1/3/13
+4/3/2/1/7/6 4/2/2/0/1/3/13
+4/3/2/1/9/6 4/2/2/0/1/3/13
+4/3/2/1/11/6 4/2/2/0/1/3/13
+4/3/2/1/13/6 4/2/2/0/1/3/13
+4/3/2/1/14/6 4/2/2/0/1/3/13
+4/3/2/1/16/6 4/2/2/0/1/3/13
+4/3/2/1/19/6 4/2/2/0/1/3/13
+4/3/2/1/22/6 4/2/2/0/1/3/13
+4/3/2/1/0/7 4/2/2/0/1/3/14
+4/3/2/1/3/7 4/2/2/0/1/3/14
+4/3/2/1/5/7 4/2/2/0/1/3/14
+4/3/2/1/7/7 4/2/2/0/1/3/14
+4/3/2/1/8/7 4/2/2/0/1/3/14
+4/3/2/1/13/7 4/2/2/0/1/3/14
+4/3/2/1/14/7 4/2/2/0/1/3/14
+4/3/2/1/18/7 4/2/2/0/1/3/14
+4/3/2/1/19/7 4/2/2/0/1/3/14
+4/3/2/1/20/7 4/2/2/0/1/3/14
+4/3/2/1/21/6 4/2/2/0/1/3/14
+4/3/2/1/24/7 4/2/2/0/1/3/14
+4/3/2/1/1/7 4/2/2/0/1/3/15
+4/3/2/1/2/7 4/2/2/0/1/3/15
+4/3/2/1/4/7 4/2/2/0/1/3/15
+4/3/2/1/6/7 4/2/2/0/1/3/15
+4/3/2/1/9/7 4/2/2/0/1/3/15
+4/3/2/1/10/7 4/2/2/0/1/3/15
+4/3/2/1/11/7 4/2/2/0/1/3/15
+4/3/2/1/12/7 4/2/2/0/1/3/15
+4/3/2/1/15/7 4/2/2/0/1/3/15
+4/3/2/1/16/7 4/2/2/0/1/3/15
+4/3/2/1/17/7 4/2/2/0/1/3/15
+4/3/2/1/21/7 4/2/2/0/1/3/15
+4/3/2/1/22/7 4/2/2/0/1/3/15
+4/3/2/1/23/7 4/2/2/0/1/3/15
+4/3/2/1/1/8 4/2/2/0/1/3/16
+4/3/2/1/2/8 4/2/2/0/1/3/16
+4/3/2/1/3/8 4/2/2/0/1/3/16
+4/3/2/1/5/8 4/2/2/0/1/3/16
+4/3/2/1/6/8 4/2/2/0/1/3/16
+4/3/2/1/9/8 4/2/2/0/1/3/16
+4/3/2/1/10/8 4/2/2/0/1/3/16
+4/3/2/1/11/8 4/2/2/0/1/3/16
+4/3/2/1/14/8 4/2/2/0/1/3/16
+4/3/2/1/15/8 4/2/2/0/1/3/16
+4/3/2/1/16/8 4/2/2/0/1/3/16
+4/3/2/1/20/8 4/2/2/0/1/3/16
+4/3/2/1/21/8 4/2/2/0/1/3/16
+4/3/2/1/22/8 4/2/2/0/1/3/16
+4/3/2/1/0/8 4/2/2/0/1/3/17
+4/3/2/1/4/8 4/2/2/0/1/3/17
+4/3/2/1/7/8 4/2/2/0/1/3/17
+4/3/2/1/8/8 4/2/2/0/1/3/17
+4/3/2/1/12/8 4/2/2/0/1/3/17
+4/3/2/1/13/8 4/2/2/0/1/3/17
+4/3/2/1/17/8 4/2/2/0/1/3/17
+4/3/2/1/18/8 4/2/2/0/1/3/17
+4/3/2/1/19/8 4/2/2/0/1/3/17
+4/3/2/1/21/9 4/2/2/0/1/3/17
+4/3/2/1/23/8 4/2/2/0/1/3/17
+4/3/2/1/1/9 4/2/2/0/1/3/18
+4/3/2/1/2/9 4/2/2/0/1/3/18
+4/3/2/1/3/9 4/2/2/0/1/3/18
+4/3/2/1/5/9 4/2/2/0/1/3/18
+4/3/2/1/7/9 4/2/2/0/1/3/18
+4/3/2/1/9/9 4/2/2/0/1/3/18
+4/3/2/1/11/9 4/2/2/0/1/3/18
+4/3/2/1/13/9 4/2/2/0/1/3/18
+4/3/2/1/14/9 4/2/2/0/1/3/18
+4/3/2/1/16/9 4/2/2/0/1/3/18
+4/3/2/1/19/9 4/2/2/0/1/3/18
+4/3/2/1/22/9 4/2/2/0/1/3/18
+4/3/2/1/0/9 4/2/2/0/1/3/19
+4/3/2/1/4/9 4/2/2/0/1/3/19
+4/3/2/1/6/9 4/2/2/0/1/3/19
+4/3/2/1/8/9 4/2/2/0/1/3/19
+4/3/2/1/10/9 4/2/2/0/1/3/19
+4/3/2/1/12/9 4/2/2/0/1/3/19
+4/3/2/1/15/9 4/2/2/0/1/3/19
+4/3/2/1/17/9 4/2/2/0/1/3/19
+4/3/2/1/18/9 4/2/2/0/1/3/19
+4/3/2/1/20/9 4/2/2/0/1/3/19
+4/3/2/1/3/10 4/2/2/0/1/3/20
+4/3/2/1/6/10 4/2/2/0/1/3/20
+4/3/2/1/8/10 4/2/2/0/1/3/20
+4/3/2/1/9/10 4/2/2/0/1/3/20
+4/3/2/1/12/10 4/2/2/0/1/3/20
+4/3/2/1/13/10 4/2/2/0/1/3/20
+4/3/2/1/16/10 4/2/2/0/1/3/20
+4/3/2/1/17/10 4/2/2/0/1/3/20
+4/3/2/1/20/10 4/2/2/0/1/3/20
+4/3/2/1/21/10 4/2/2/0/1/3/20
+4/3/2/1/1/10 4/2/2/0/1/3/21
+4/3/2/1/2/10 4/2/2/0/1/3/21
+4/3/2/1/4/10 4/2/2/0/1/3/21
+4/3/2/1/5/10 4/2/2/0/1/3/21
+4/3/2/1/7/10 4/2/2/0/1/3/21
+4/3/2/1/10/10 4/2/2/0/1/3/21
+4/3/2/1/11/10 4/2/2/0/1/3/21
+4/3/2/1/14/10 4/2/2/0/1/3/21
+4/3/2/1/15/10 4/2/2/0/1/3/21
+4/3/2/1/18/10 4/2/2/0/1/3/21
+4/3/2/1/19/10 4/2/2/0/1/3/21
+4/3/2/1/22/10 4/2/2/0/1/3/21
+4/3/2/1/2/11 4/2/2/0/1/3/22
+4/3/2/1/3/11 4/2/2/0/1/3/22
+4/3/2/1/4/11 4/2/2/0/1/3/22
+4/3/2/1/8/11 4/2/2/0/1/3/22
+4/3/2/1/10/11 4/2/2/0/1/3/22
+4/3/2/1/11/11 4/2/2/0/1/3/22
+4/3/2/1/15/11 4/2/2/0/1/3/22
+4/3/2/1/16/11 4/2/2/0/1/3/22
+4/3/2/1/17/11 4/2/2/0/1/3/22
+4/3/2/1/20/11 4/2/2/0/1/3/22
+4/3/2/1/21/11 4/2/2/0/1/3/22
+4/3/2/1/5/11 4/2/2/0/1/3/23
+4/3/2/1/6/11 4/2/2/0/1/3/23
+4/3/2/1/7/11 4/2/2/0/1/3/23
+4/3/2/1/9/11 4/2/2/0/1/3/23
+4/3/2/1/12/11 4/2/2/0/1/3/23
+4/3/2/1/13/11 4/2/2/0/1/3/23
+4/3/2/1/14/11 4/2/2/0/1/3/23
+4/3/2/1/18/11 4/2/2/0/1/3/23
+4/3/2/1/19/11 4/2/2/0/1/3/23
+4/3/2/1/6/12 4/2/2/0/1/3/24
+4/3/2/1/7/12 4/2/2/0/1/3/24
+4/3/2/1/8/12 4/2/2/0/1/3/24
+4/3/2/1/9/12 4/2/2/0/1/3/24
+4/3/2/1/12/12 4/2/2/0/1/3/24
+4/3/2/1/13/12 4/2/2/0/1/3/24
+4/3/2/1/14/12 4/2/2/0/1/3/24
+4/3/2/1/18/12 4/2/2/0/1/3/24
+4/3/2/1/19/12 4/2/2/0/1/3/24
+4/3/2/1/2/12 4/2/2/0/1/3/25
+4/3/2/1/3/12 4/2/2/0/1/3/25
+4/3/2/1/4/12 4/2/2/0/1/3/25
+4/3/2/1/5/12 4/2/2/0/1/3/25
+4/3/2/1/10/12 4/2/2/0/1/3/25
+4/3/2/1/11/12 4/2/2/0/1/3/25
+4/3/2/1/15/12 4/2/2/0/1/3/25
+4/3/2/1/16/12 4/2/2/0/1/3/25
+4/3/2/1/17/12 4/2/2/0/1/3/25
+4/3/2/1/20/12 4/2/2/0/1/3/25
+4/3/2/1/21/12 4/2/2/0/1/3/25
+4/3/2/1/2/13 4/2/2/0/1/3/26
+4/3/2/1/4/13 4/2/2/0/1/3/26
+4/3/2/1/5/13 4/2/2/0/1/3/26
+4/3/2/1/9/13 4/2/2/0/1/3/26
+4/3/2/1/10/13 4/2/2/0/1/3/26
+4/3/2/1/13/13 4/2/2/0/1/3/26
+4/3/2/1/14/13 4/2/2/0/1/3/26
+4/3/2/1/17/13 4/2/2/0/1/3/26
+4/3/2/1/18/13 4/2/2/0/1/3/26
+4/3/2/1/21/13 4/2/2/0/1/3/26
+4/3/2/1/1/13 4/2/2/0/1/3/27
+4/3/2/1/3/13 4/2/2/0/1/3/27
+4/3/2/1/6/13 4/2/2/0/1/3/27
+4/3/2/1/7/13 4/2/2/0/1/3/27
+4/3/2/1/8/13 4/2/2/0/1/3/27
+4/3/2/1/11/13 4/2/2/0/1/3/27
+4/3/2/1/12/13 4/2/2/0/1/3/27
+4/3/2/1/15/13 4/2/2/0/1/3/27
+4/3/2/1/16/13 4/2/2/0/1/3/27
+4/3/2/1/19/13 4/2/2/0/1/3/27
+4/3/2/1/20/13 4/2/2/0/1/3/27
+4/3/2/1/4/14 4/2/2/0/1/3/28
+4/3/2/1/6/14 4/2/2/0/1/3/28
+4/3/2/1/8/14 4/2/2/0/1/3/28
+4/3/2/1/10/14 4/2/2/0/1/3/28
+4/3/2/1/12/14 4/2/2/0/1/3/28
+4/3/2/1/15/14 4/2/2/0/1/3/28
+4/3/2/1/17/14 4/2/2/0/1/3/28
+4/3/2/1/18/14 4/2/2/0/1/3/28
+4/3/2/1/20/14 4/2/2/0/1/3/28
+4/3/2/1/2/14 4/2/2/0/1/3/29
+4/3/2/1/3/14 4/2/2/0/1/3/29
+4/3/2/1/5/14 4/2/2/0/1/3/29
+4/3/2/1/7/14 4/2/2/0/1/3/29
+4/3/2/1/9/14 4/2/2/0/1/3/29
+4/3/2/1/11/14 4/2/2/0/1/3/29
+4/3/2/1/13/14 4/2/2/0/1/3/29
+4/3/2/1/14/14 4/2/2/0/1/3/29
+4/3/2/1/16/14 4/2/2/0/1/3/29
+4/3/2/1/19/14 4/2/2/0/1/3/29
+4/3/2/1/22/14 4/2/2/0/1/3/29
+4/3/2/1/0/15 4/2/2/0/1/3/30
+4/3/2/1/3/15 4/2/2/0/1/3/30
+4/3/2/1/5/15 4/2/2/0/1/3/30
+4/3/2/1/7/15 4/2/2/0/1/3/30
+4/3/2/1/8/15 4/2/2/0/1/3/30
+4/3/2/1/13/15 4/2/2/0/1/3/30
+4/3/2/1/14/15 4/2/2/0/1/3/30
+4/3/2/1/18/15 4/2/2/0/1/3/30
+4/3/2/1/19/15 4/2/2/0/1/3/30
+4/3/2/1/20/15 4/2/2/0/1/3/30
+4/3/2/1/21/14 4/2/2/0/1/3/30
+4/3/2/1/24/15 4/2/2/0/1/3/30
+4/3/2/1/1/15 4/2/2/0/1/3/31
+4/3/2/1/2/15 4/2/2/0/1/3/31
+4/3/2/1/4/15 4/2/2/0/1/3/31
+4/3/2/1/6/15 4/2/2/0/1/3/31
+4/3/2/1/9/15 4/2/2/0/1/3/31
+4/3/2/1/10/15 4/2/2/0/1/3/31
+4/3/2/1/11/15 4/2/2/0/1/3/31
+4/3/2/1/12/15 4/2/2/0/1/3/31
+4/3/2/1/15/15 4/2/2/0/1/3/31
+4/3/2/1/16/15 4/2/2/0/1/3/31
+4/3/2/1/17/15 4/2/2/0/1/3/31
+4/3/2/1/21/15 4/2/2/0/1/3/31
+4/3/2/1/22/15 4/2/2/0/1/3/31
+4/3/2/1/23/15 4/2/2/0/1/3/31
+
+nextSuperCalo HEC10/TILEE 4/2/-2,2/1/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/1/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo HEC10/TILEE 5/2/-1,1/0:63/15/0 4/2/-2,2/1/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/1/0/0/0 
+
+nextSuperCalo FCAL1/HEC21 4/3/-2,2/1/0,1/2:14 4/2/-2,2/2/1/2/0:31 calcSide(2,2)
+4/3/2/1/0/2 4/2/2/2/1/2/4
+4/3/2/1/1/3 4/2/2/2/1/2/6
+4/3/2/1/0/3 4/2/2/2/1/2/7
+4/3/2/1/0/4 4/2/2/2/1/2/8
+4/3/2/1/1/4 4/2/2/2/1/2/9
+4/3/2/1/0/5 4/2/2/2/1/2/10
+4/3/2/1/1/6 4/2/2/2/1/2/12
+4/3/2/1/0/6 4/2/2/2/1/2/13
+4/3/2/1/0/10 4/2/2/2/1/2/20
+4/3/2/1/1/11 4/2/2/2/1/2/22
+4/3/2/1/0/11 4/2/2/2/1/2/23
+4/3/2/1/0/12 4/2/2/2/1/2/24
+4/3/2/1/1/12 4/2/2/2/1/2/25
+4/3/2/1/0/13 4/2/2/2/1/2/26
+4/3/2/1/1/14 4/2/2/2/1/2/28
+4/3/2/1/0/14 4/2/2/2/1/2/29
+
+prevSuperCalo HEC21/FCAL1 4/2/-2,2/2/1/2/0:31 4/3/-2,2/1/0,1/2:14 calcSide(2,2)
+4/2/2/2/1/2/4 4/3/2/1/0/2
+4/2/2/2/1/2/6 4/3/2/1/1/3
+4/2/2/2/1/2/7 4/3/2/1/0/3
+4/2/2/2/1/2/8 4/3/2/1/0/4
+4/2/2/2/1/2/9 4/3/2/1/1/4
+4/2/2/2/1/2/10 4/3/2/1/0/5
+4/2/2/2/1/2/12 4/3/2/1/1/6
+4/2/2/2/1/2/13 4/3/2/1/0/6
+4/2/2/2/1/2/20 4/3/2/1/0/10
+4/2/2/2/1/2/22 4/3/2/1/1/11
+4/2/2/2/1/2/23 4/3/2/1/0/11
+4/2/2/2/1/2/24 4/3/2/1/0/12
+4/2/2/2/1/2/25 4/3/2/1/1/12
+4/2/2/2/1/2/26 4/3/2/1/0/13
+4/2/2/2/1/2/28 4/3/2/1/1/14
+4/2/2/2/1/2/29 4/3/2/1/0/14
+
+nextSuperCalo FCAL2/HEC31 4/3/-2,2/2/0:9/0:15 4/2/-2,2/3/1/3/0:31 calcSide(2,2)
+4/3/2/2/0/0 4/2/2/3/1/3/0 
+4/3/2/2/1/0 4/2/2/3/1/3/0 
+4/3/2/2/2/0 4/2/2/3/1/3/0 
+4/3/2/2/3/0 4/2/2/3/1/3/1 4/2/2/3/1/3/2 
+4/3/2/2/4/0 4/2/2/3/1/3/1 
+4/3/2/2/5/0 4/2/2/3/1/3/0 4/2/2/3/1/3/1 
+4/3/2/2/6/0 4/2/2/3/1/3/0 
+4/3/2/2/7/0 4/2/2/3/1/3/1 4/2/2/3/1/3/2 
+4/3/2/2/0/1 4/2/2/3/1/3/3 
+4/3/2/2/1/1 4/2/2/3/1/3/3 
+4/3/2/2/2/1 4/2/2/3/1/3/2 
+4/3/2/2/3/1 4/2/2/3/1/3/3 4/2/2/3/1/3/4 
+4/3/2/2/4/1 4/2/2/3/1/3/2 
+4/3/2/2/5/1 4/2/2/3/1/3/3 
+4/3/2/2/6/1 4/2/2/3/1/3/2 4/2/2/3/1/3/3 
+4/3/2/2/0/2 4/2/2/3/1/3/5 
+4/3/2/2/1/2 4/2/2/3/1/3/3 4/2/2/3/1/3/4 
+4/3/2/2/2/2 4/2/2/3/1/3/5 
+4/3/2/2/3/2 4/2/2/3/1/3/4 
+4/3/2/2/4/2 4/2/2/3/1/3/5 
+4/3/2/2/5/2 4/2/2/3/1/3/4 4/2/2/3/1/3/5 
+4/3/2/2/6/2 4/2/2/3/1/3/4 
+4/3/2/2/7/2 4/2/2/3/1/3/5 
+4/3/2/2/8/2 4/2/2/3/1/3/5 
+4/3/2/2/9/2 4/2/2/3/1/3/4 
+4/3/2/2/0/3 4/2/2/3/1/3/7 
+4/3/2/2/1/3 4/2/2/3/1/3/5 4/2/2/3/1/3/6 
+4/3/2/2/2/3 4/2/2/3/1/3/6 
+4/3/2/2/3/3 4/2/2/3/1/3/6 4/2/2/3/1/3/7 
+4/3/2/2/4/3 4/2/2/3/1/3/7 
+4/3/2/2/5/3 4/2/2/3/1/3/7 
+4/3/2/2/0/4 4/2/2/3/1/3/8 
+4/3/2/2/1/4 4/2/2/3/1/3/9 4/2/2/3/1/3/10 
+4/3/2/2/2/4 4/2/2/3/1/3/9 
+4/3/2/2/3/4 4/2/2/3/1/3/8 4/2/2/3/1/3/9 
+4/3/2/2/4/4 4/2/2/3/1/3/8 
+4/3/2/2/5/4 4/2/2/3/1/3/8 
+4/3/2/2/0/5 4/2/2/3/1/3/11 
+4/3/2/2/1/5 4/2/2/3/1/3/10 
+4/3/2/2/2/5 4/2/2/3/1/3/10 
+4/3/2/2/3/5 4/2/2/3/1/3/11 
+4/3/2/2/4/5 4/2/2/3/1/3/10 
+4/3/2/2/5/5 4/2/2/3/1/3/10 4/2/2/3/1/3/11 
+4/3/2/2/6/5 4/2/2/3/1/3/11 4/2/2/3/1/3/12 
+4/3/2/2/7/5 4/2/2/3/1/3/10 4/2/2/3/1/3/11 
+4/3/2/2/8/5 4/2/2/3/1/3/10 
+4/3/2/2/9/5 4/2/2/3/1/3/11 
+4/3/2/2/0/6 4/2/2/3/1/3/11 4/2/2/3/1/3/12 
+4/3/2/2/1/6 4/2/2/3/1/3/12 
+4/3/2/2/2/6 4/2/2/3/1/3/13 
+4/3/2/2/3/6 4/2/2/3/1/3/12 
+4/3/2/2/4/6 4/2/2/3/1/3/13 
+4/3/2/2/5/6 4/2/2/3/1/3/12 
+4/3/2/2/6/6 4/2/2/3/1/3/12 4/2/2/3/1/3/13 
+4/3/2/2/0/7 4/2/2/3/1/3/15 
+4/3/2/2/1/7 4/2/2/3/1/3/15 
+4/3/2/2/2/7 4/2/2/3/1/3/15 
+4/3/2/2/3/7 4/2/2/3/1/3/13 4/2/2/3/1/3/14 
+4/3/2/2/4/7 4/2/2/3/1/3/14 
+4/3/2/2/5/7 4/2/2/3/1/3/14 4/2/2/3/1/3/15 
+4/3/2/2/6/7 4/2/2/3/1/3/15 
+4/3/2/2/7/7 4/2/2/3/1/3/13 4/2/2/3/1/3/14 
+4/3/2/2/0/8 4/2/2/3/1/3/16 
+4/3/2/2/1/8 4/2/2/3/1/3/16 
+4/3/2/2/2/8 4/2/2/3/1/3/16 
+4/3/2/2/3/8 4/2/2/3/1/3/17 4/2/2/3/1/3/18 
+4/3/2/2/4/8 4/2/2/3/1/3/17 
+4/3/2/2/5/8 4/2/2/3/1/3/16 4/2/2/3/1/3/17 
+4/3/2/2/6/8 4/2/2/3/1/3/16 
+4/3/2/2/7/8 4/2/2/3/1/3/17 4/2/2/3/1/3/18 
+4/3/2/2/0/9 4/2/2/3/1/3/19 
+4/3/2/2/1/9 4/2/2/3/1/3/19 
+4/3/2/2/2/9 4/2/2/3/1/3/18 
+4/3/2/2/3/9 4/2/2/3/1/3/19 4/2/2/3/1/3/20 
+4/3/2/2/4/9 4/2/2/3/1/3/18 
+4/3/2/2/5/9 4/2/2/3/1/3/19 
+4/3/2/2/6/9 4/2/2/3/1/3/18 4/2/2/3/1/3/19 
+4/3/2/2/0/10 4/2/2/3/1/3/21 
+4/3/2/2/1/10 4/2/2/3/1/3/19 4/2/2/3/1/3/20 
+4/3/2/2/2/10 4/2/2/3/1/3/21 
+4/3/2/2/3/10 4/2/2/3/1/3/20 
+4/3/2/2/4/10 4/2/2/3/1/3/21 
+4/3/2/2/5/10 4/2/2/3/1/3/20 4/2/2/3/1/3/21 
+4/3/2/2/6/10 4/2/2/3/1/3/20 
+4/3/2/2/7/10 4/2/2/3/1/3/21 
+4/3/2/2/8/10 4/2/2/3/1/3/21 
+4/3/2/2/9/10 4/2/2/3/1/3/20 
+4/3/2/2/0/11 4/2/2/3/1/3/23 
+4/3/2/2/1/11 4/2/2/3/1/3/21 4/2/2/3/1/3/22 
+4/3/2/2/2/11 4/2/2/3/1/3/22 
+4/3/2/2/3/11 4/2/2/3/1/3/22 4/2/2/3/1/3/23 
+4/3/2/2/4/11 4/2/2/3/1/3/23 
+4/3/2/2/5/11 4/2/2/3/1/3/23 
+4/3/2/2/0/12 4/2/2/3/1/3/24 
+4/3/2/2/1/12 4/2/2/3/1/3/25 4/2/2/3/1/3/26 
+4/3/2/2/2/12 4/2/2/3/1/3/25 
+4/3/2/2/3/12 4/2/2/3/1/3/24 4/2/2/3/1/3/25 
+4/3/2/2/4/12 4/2/2/3/1/3/24 
+4/3/2/2/5/12 4/2/2/3/1/3/24 
+4/3/2/2/0/13 4/2/2/3/1/3/27 
+4/3/2/2/1/13 4/2/2/3/1/3/26 
+4/3/2/2/2/13 4/2/2/3/1/3/26 
+4/3/2/2/3/13 4/2/2/3/1/3/27 
+4/3/2/2/4/13 4/2/2/3/1/3/26 
+4/3/2/2/5/13 4/2/2/3/1/3/26 4/2/2/3/1/3/27 
+4/3/2/2/6/13 4/2/2/3/1/3/27 4/2/2/3/1/3/28 
+4/3/2/2/7/13 4/2/2/3/1/3/26 4/2/2/3/1/3/27 
+4/3/2/2/8/13 4/2/2/3/1/3/26 
+4/3/2/2/9/13 4/2/2/3/1/3/27 
+4/3/2/2/0/14 4/2/2/3/1/3/27 4/2/2/3/1/3/28 
+4/3/2/2/1/14 4/2/2/3/1/3/28 
+4/3/2/2/2/14 4/2/2/3/1/3/29 
+4/3/2/2/3/14 4/2/2/3/1/3/28 
+4/3/2/2/4/14 4/2/2/3/1/3/29 
+4/3/2/2/5/14 4/2/2/3/1/3/28 
+4/3/2/2/6/14 4/2/2/3/1/3/28 4/2/2/3/1/3/29 
+4/3/2/2/0/15 4/2/2/3/1/3/31 
+4/3/2/2/1/15 4/2/2/3/1/3/31 
+4/3/2/2/2/15 4/2/2/3/1/3/31 
+4/3/2/2/3/15 4/2/2/3/1/3/29 4/2/2/3/1/3/30 
+4/3/2/2/4/15 4/2/2/3/1/3/30 
+4/3/2/2/5/15 4/2/2/3/1/3/30 4/2/2/3/1/3/31 
+4/3/2/2/6/15 4/2/2/3/1/3/31 
+4/3/2/2/7/15 4/2/2/3/1/3/29 4/2/2/3/1/3/30 
+
+prevSuperCalo HEC31/FCAL2 4/2/-2,2/3/1/3/0:31 4/3/-2,2/2/0:9/0:15 calcSide(2,2)
+4/2/2/3/1/3/0 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/2/0 4/3/2/2/5/0 4/3/2/2/6/0 
+4/2/2/3/1/3/1 4/3/2/2/3/0 4/3/2/2/4/0 4/3/2/2/5/0 4/3/2/2/7/0 
+4/2/2/3/1/3/2 4/3/2/2/3/0 4/3/2/2/7/0 4/3/2/2/2/1 4/3/2/2/4/1 4/3/2/2/6/1 
+4/2/2/3/1/3/3 4/3/2/2/0/1 4/3/2/2/1/1 4/3/2/2/3/1 4/3/2/2/5/1 4/3/2/2/6/1 4/3/2/2/1/2 
+4/2/2/3/1/3/4 4/3/2/2/3/1 4/3/2/2/1/2 4/3/2/2/3/2 4/3/2/2/5/2 4/3/2/2/6/2 4/3/2/2/9/2 
+4/2/2/3/1/3/5 4/3/2/2/0/2 4/3/2/2/2/2 4/3/2/2/4/2 4/3/2/2/5/2 4/3/2/2/7/2 4/3/2/2/8/2 4/3/2/2/1/3 
+4/2/2/3/1/3/6 4/3/2/2/1/3 4/3/2/2/2/3 4/3/2/2/3/3 
+4/2/2/3/1/3/7 4/3/2/2/0/3 4/3/2/2/3/3 4/3/2/2/4/3 4/3/2/2/5/3 
+4/2/2/3/1/3/8 4/3/2/2/0/4 4/3/2/2/3/4 4/3/2/2/4/4 4/3/2/2/5/4 
+4/2/2/3/1/3/9 4/3/2/2/1/4 4/3/2/2/2/4 4/3/2/2/3/4 
+4/2/2/3/1/3/10 4/3/2/2/1/4 4/3/2/2/1/5 4/3/2/2/2/5 4/3/2/2/4/5 4/3/2/2/5/5 4/3/2/2/7/5 4/3/2/2/8/5 
+4/2/2/3/1/3/11 4/3/2/2/0/5 4/3/2/2/3/5 4/3/2/2/5/5 4/3/2/2/6/5 4/3/2/2/7/5 4/3/2/2/9/5 4/3/2/2/0/6 
+4/2/2/3/1/3/12 4/3/2/2/6/5 4/3/2/2/0/6 4/3/2/2/1/6 4/3/2/2/3/6 4/3/2/2/5/6 4/3/2/2/6/6 
+4/2/2/3/1/3/13 4/3/2/2/2/6 4/3/2/2/4/6 4/3/2/2/6/6 4/3/2/2/3/7 4/3/2/2/7/7 
+4/2/2/3/1/3/14 4/3/2/2/3/7 4/3/2/2/4/7 4/3/2/2/5/7 4/3/2/2/7/7 
+4/2/2/3/1/3/15 4/3/2/2/0/7 4/3/2/2/1/7 4/3/2/2/2/7 4/3/2/2/5/7 4/3/2/2/6/7 
+4/2/2/3/1/3/16 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/2/8 4/3/2/2/5/8 4/3/2/2/6/8 
+4/2/2/3/1/3/17 4/3/2/2/3/8 4/3/2/2/4/8 4/3/2/2/5/8 4/3/2/2/7/8 
+4/2/2/3/1/3/18 4/3/2/2/3/8 4/3/2/2/7/8 4/3/2/2/2/9 4/3/2/2/4/9 4/3/2/2/6/9 
+4/2/2/3/1/3/19 4/3/2/2/0/9 4/3/2/2/1/9 4/3/2/2/3/9 4/3/2/2/5/9 4/3/2/2/6/9 4/3/2/2/1/10 
+4/2/2/3/1/3/20 4/3/2/2/3/9 4/3/2/2/1/10 4/3/2/2/3/10 4/3/2/2/5/10 4/3/2/2/6/10 4/3/2/2/9/10 
+4/2/2/3/1/3/21 4/3/2/2/0/10 4/3/2/2/2/10 4/3/2/2/4/10 4/3/2/2/5/10 4/3/2/2/7/10 4/3/2/2/8/10 4/3/2/2/1/11 
+4/2/2/3/1/3/22 4/3/2/2/1/11 4/3/2/2/2/11 4/3/2/2/3/11 
+4/2/2/3/1/3/23 4/3/2/2/0/11 4/3/2/2/3/11 4/3/2/2/4/11 4/3/2/2/5/11 
+4/2/2/3/1/3/24 4/3/2/2/0/12 4/3/2/2/3/12 4/3/2/2/4/12 4/3/2/2/5/12 
+4/2/2/3/1/3/25 4/3/2/2/1/12 4/3/2/2/2/12 4/3/2/2/3/12 
+4/2/2/3/1/3/26 4/3/2/2/1/12 4/3/2/2/1/13 4/3/2/2/2/13 4/3/2/2/4/13 4/3/2/2/5/13 4/3/2/2/7/13 4/3/2/2/8/13 
+4/2/2/3/1/3/27 4/3/2/2/0/13 4/3/2/2/3/13 4/3/2/2/5/13 4/3/2/2/6/13 4/3/2/2/7/13 4/3/2/2/9/13 4/3/2/2/0/14 
+4/2/2/3/1/3/28 4/3/2/2/6/13 4/3/2/2/0/14 4/3/2/2/1/14 4/3/2/2/3/14 4/3/2/2/5/14 4/3/2/2/6/14 
+4/2/2/3/1/3/29 4/3/2/2/2/14 4/3/2/2/4/14 4/3/2/2/6/14 4/3/2/2/3/15 4/3/2/2/7/15 
+4/2/2/3/1/3/30 4/3/2/2/3/15 4/3/2/2/4/15 4/3/2/2/5/15 4/3/2/2/7/15 
+4/2/2/3/1/3/31 4/3/2/2/0/15 4/3/2/2/1/15 4/3/2/2/2/15 4/3/2/2/5/15 4/3/2/2/6/15 
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-DC3-05-Comm-01.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-DC3-05-Comm-01.dat
new file mode 100755
index 0000000000000000000000000000000000000000..6b78296a9f6b72955f0d8bd04cf64ca6d8ea8c46
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours-DC3-05-Comm-01.dat
@@ -0,0 +1,772 @@
+# File and Version Information:
+# $Id: SuperCaloNeighbours-DC3-05-Comm-01.dat,v 1.1 2006-12-01 14:06:51 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Thu Nov 30 18:52:50 2004
+#
+# ranges of expanded calorimeter identifiers are mapped to create lookup
+# tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges.
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EMB3/TILEB 4/1/-1,1/3/0/0:19/0:255 5/1/-1,1/0:63/0:9/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/0/0 5/1/1/0/0/0 
+4/1/1/3/0/1/0 5/1/1/0/0/0
+4/1/1/3/0/2/0 5/1/1/0/1/0
+4/1/1/3/0/3/0 5/1/1/0/1/0
+4/1/1/3/0/4/0 5/1/1/0/2/0
+4/1/1/3/0/5/0 5/1/1/0/2/0
+4/1/1/3/0/6/0 5/1/1/0/3/0
+4/1/1/3/0/7/0 5/1/1/0/3/0
+4/1/1/3/0/8/0 5/1/1/0/4/0
+4/1/1/3/0/9/0 5/1/1/0/4/0
+4/1/1/3/0/10/0 5/1/1/0/5/0
+4/1/1/3/0/11/0 5/1/1/0/5/0
+4/1/1/3/0/12/0 5/1/1/0/6/0
+4/1/1/3/0/13/0 5/1/1/0/6/0
+4/1/1/3/0/14/0 5/1/1/0/7/0
+4/1/1/3/0/15/0 5/1/1/0/7/0
+4/1/1/3/0/16/0 5/1/1/0/8/0
+4/1/1/3/0/17/0 5/1/1/0/8/0
+4/1/1/3/0/18/0 5/1/1/0/9/0
+4/1/1/3/0/19/0 5/1/1/0/9/0
+
+prevSuperCalo TILEB/EMB3 5/1/-1,1/0:63/0:9/0 4/1/-1,1/3/0/0:19/0:255 calcSide(2,2) calcPhi(3,6)
+5/1/1/0/0/0 4/1/1/3/0/0/0 4/1/1/3/0/0/1 4/1/1/3/0/0/2 4/1/1/3/0/0/3 4/1/1/3/0/1/0 4/1/1/3/0/1/1 4/1/1/3/0/1/2 4/1/1/3/0/1/3 
+5/1/1/0/1/0 4/1/1/3/0/2/0 4/1/1/3/0/2/1 4/1/1/3/0/2/2 4/1/1/3/0/2/3 4/1/1/3/0/3/0 4/1/1/3/0/3/1 4/1/1/3/0/3/2 4/1/1/3/0/3/3 
+5/1/1/0/2/0 4/1/1/3/0/4/0 4/1/1/3/0/4/1 4/1/1/3/0/4/2 4/1/1/3/0/4/3 4/1/1/3/0/5/0 4/1/1/3/0/5/1 4/1/1/3/0/5/2 4/1/1/3/0/5/3 
+5/1/1/0/3/0 4/1/1/3/0/6/0 4/1/1/3/0/6/1 4/1/1/3/0/6/2 4/1/1/3/0/6/3 4/1/1/3/0/7/0 4/1/1/3/0/7/1 4/1/1/3/0/7/2 4/1/1/3/0/7/3 
+5/1/1/0/4/0 4/1/1/3/0/8/0 4/1/1/3/0/8/1 4/1/1/3/0/8/2 4/1/1/3/0/8/3 4/1/1/3/0/9/0 4/1/1/3/0/9/1 4/1/1/3/0/9/2 4/1/1/3/0/9/3 
+5/1/1/0/5/0 4/1/1/3/0/10/0 4/1/1/3/0/10/1 4/1/1/3/0/10/2 4/1/1/3/0/10/3 4/1/1/3/0/11/0 4/1/1/3/0/11/1 4/1/1/3/0/11/2 4/1/1/3/0/11/3 
+5/1/1/0/6/0 4/1/1/3/0/12/0 4/1/1/3/0/12/1 4/1/1/3/0/12/2 4/1/1/3/0/12/3 4/1/1/3/0/13/0 4/1/1/3/0/13/1 4/1/1/3/0/13/2 4/1/1/3/0/13/3 
+5/1/1/0/7/0 4/1/1/3/0/14/0 4/1/1/3/0/14/1 4/1/1/3/0/14/2 4/1/1/3/0/14/3 4/1/1/3/0/15/0 4/1/1/3/0/15/1 4/1/1/3/0/15/2 4/1/1/3/0/15/3 
+5/1/1/0/8/0 4/1/1/3/0/16/0 4/1/1/3/0/16/1 4/1/1/3/0/16/2 4/1/1/3/0/16/3 4/1/1/3/0/17/0 4/1/1/3/0/17/1 4/1/1/3/0/17/2 4/1/1/3/0/17/3 
+5/1/1/0/9/0 4/1/1/3/0/18/0 4/1/1/3/0/18/1 4/1/1/3/0/18/2 4/1/1/3/0/18/3 4/1/1/3/0/19/0 4/1/1/3/0/19/1 4/1/1/3/0/19/2 4/1/1/3/0/19/3 
+
+nextSuperCalo EMB3/TILEG 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 5/3/-1,1/0:63/10,11,13/3 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/20/0 5/3/1/0/10/3
+4/1/1/3/0/21/0 5/3/1/0/10/3
+4/1/1/3/0/22/0 5/3/1/0/11/3
+4/1/1/3/0/23/0 5/3/1/0/11/3
+4/1/1/3/0/25/0 5/3/1/0/13/3
+4/1/1/3/0/26/0 5/3/1/0/13/3
+
+prevSuperCalo TILEG/EMB3 5/3/-1,1/0:63/10,11,13/3 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 calcSide(2,2) calcPhi(3,6)
+5/3/1/0/10/3 4/1/1/3/0/20/0 4/1/1/3/0/20/1 4/1/1/3/0/20/2 4/1/1/3/0/20/3 4/1/1/3/0/21/0 4/1/1/3/0/21/1 4/1/1/3/0/21/2 4/1/1/3/0/21/3 
+5/3/1/0/11/3 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/3/1/0/13/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EMB3/TILEE 4/1/-1,1/3/0/22:26/0:255 5/2/-1,1/0:63/11:13/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/22/0 5/2/1/0/11/0 
+4/1/1/3/0/23/0 5/2/1/0/11/0 
+4/1/1/3/0/24/0 5/2/1/0/12/0
+4/1/1/3/0/25/0 5/2/1/0/12/0 
+4/1/1/3/0/26/0 5/2/1/0/13/0 
+
+prevSuperCalo TILEE/EMB3 5/2/-1,1/0:63/11:13/0 4/1/-1,1/3/0/22:26/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/11/0 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/2/1/0/12/0 4/1/1/3/0/24/0 4/1/1/3/0/24/1 4/1/1/3/0/24/2 4/1/1/3/0/24/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 
+5/2/1/0/13/0 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EME2OW0/TILEE 4/1/-2,2/2/0/0/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/0/0/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW0 5/2/-1,1/0:63/14/0 4/1/-2,2/2/0/0/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/0/0/0 4/1/2/2/0/0/1 4/1/2/2/0/0/2 4/1/2/2/0/0/3
+
+nextSuperCalo EME2OW1/TILEE 4/1/-2,2/2/1/0:2/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/1/0/0 5/2/1/0/14/0
+4/1/2/2/1/1/0 5/2/1/0/14/0
+4/1/2/2/1/2/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW1 5/2/-1,1/0:63/14/0 4/1/-2,2/2/1/0:2/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/1/0/0 4/1/2/2/1/1/0 4/1/2/2/1/2/0 4/1/2/2/1/0/1 4/1/2/2/1/1/1 4/1/2/2/1/2/1 4/1/2/2/1/0/2 4/1/2/2/1/1/2 4/1/2/2/1/2/2 4/1/2/2/1/0/3 4/1/2/2/1/1/3 4/1/2/2/1/2/3 
+
+nextSuperCalo EME3OW/HEC00 4/1/-2,2/3/0/0:19/0:255 4/2/-2,2/0/0/0:9/0:63 calcSide(2,2) calcPhi(6,6)
+4/1/2/3/0/0/0 4/2/2/0/0/0/0
+4/1/2/3/0/1/0 4/2/2/0/0/0/0
+4/1/2/3/0/2/0 4/2/2/0/0/1/0
+4/1/2/3/0/3/0 4/2/2/0/0/1/0
+4/1/2/3/0/4/0 4/2/2/0/0/2/0
+4/1/2/3/0/5/0 4/2/2/0/0/2/0
+4/1/2/3/0/6/0 4/2/2/0/0/3/0
+4/1/2/3/0/7/0 4/2/2/0/0/3/0
+4/1/2/3/0/8/0 4/2/2/0/0/4/0
+4/1/2/3/0/9/0 4/2/2/0/0/4/0
+4/1/2/3/0/10/0 4/2/2/0/0/5/0
+4/1/2/3/0/11/0 4/2/2/0/0/5/0
+4/1/2/3/0/12/0 4/2/2/0/0/6/0
+4/1/2/3/0/13/0 4/2/2/0/0/6/0
+4/1/2/3/0/14/0 4/2/2/0/0/7/0
+4/1/2/3/0/15/0 4/2/2/0/0/7/0
+4/1/2/3/0/16/0 4/2/2/0/0/8/0
+4/1/2/3/0/17/0 4/2/2/0/0/8/0
+4/1/2/3/0/18/0 4/2/2/0/0/9/0
+4/1/2/3/0/19/0 4/2/2/0/0/9/0
+
+prevSuperCalo HEC00/EME3OW 4/2/-2,2/0/0/0:9/0:63 4/1/-2,2/3/0/0:19/0:255 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/0/0/0 4/1/2/3/0/0/0 4/1/2/3/0/0/1 4/1/2/3/0/0/2 4/1/2/3/0/0/3 4/1/2/3/0/1/0 4/1/2/3/0/1/1 4/1/2/3/0/1/2 4/1/2/3/0/1/3 
+4/2/2/0/0/1/0 4/1/2/3/0/2/0 4/1/2/3/0/2/1 4/1/2/3/0/2/2 4/1/2/3/0/2/3 4/1/2/3/0/3/0 4/1/2/3/0/3/1 4/1/2/3/0/3/2 4/1/2/3/0/3/3 
+4/2/2/0/0/2/0 4/1/2/3/0/4/0 4/1/2/3/0/4/1 4/1/2/3/0/4/2 4/1/2/3/0/4/3 4/1/2/3/0/5/0 4/1/2/3/0/5/1 4/1/2/3/0/5/2 4/1/2/3/0/5/3 
+4/2/2/0/0/3/0 4/1/2/3/0/6/0 4/1/2/3/0/6/1 4/1/2/3/0/6/2 4/1/2/3/0/6/3 4/1/2/3/0/7/0 4/1/2/3/0/7/1 4/1/2/3/0/7/2 4/1/2/3/0/7/3 
+4/2/2/0/0/4/0 4/1/2/3/0/8/0 4/1/2/3/0/8/1 4/1/2/3/0/8/2 4/1/2/3/0/8/3 4/1/2/3/0/9/0 4/1/2/3/0/9/1 4/1/2/3/0/9/2 4/1/2/3/0/9/3 
+4/2/2/0/0/5/0 4/1/2/3/0/10/0 4/1/2/3/0/10/1 4/1/2/3/0/10/2 4/1/2/3/0/10/3 4/1/2/3/0/11/0 4/1/2/3/0/11/1 4/1/2/3/0/11/2 4/1/2/3/0/11/3 
+4/2/2/0/0/6/0 4/1/2/3/0/12/0 4/1/2/3/0/12/1 4/1/2/3/0/12/2 4/1/2/3/0/12/3 4/1/2/3/0/13/0 4/1/2/3/0/13/1 4/1/2/3/0/13/2 4/1/2/3/0/13/3 
+4/2/2/0/0/7/0 4/1/2/3/0/14/0 4/1/2/3/0/14/1 4/1/2/3/0/14/2 4/1/2/3/0/14/3 4/1/2/3/0/15/0 4/1/2/3/0/15/1 4/1/2/3/0/15/2 4/1/2/3/0/15/3 
+4/2/2/0/0/8/0 4/1/2/3/0/16/0 4/1/2/3/0/16/1 4/1/2/3/0/16/2 4/1/2/3/0/16/3 4/1/2/3/0/17/0 4/1/2/3/0/17/1 4/1/2/3/0/17/2 4/1/2/3/0/17/3 
+4/2/2/0/0/9/0 4/1/2/3/0/18/0 4/1/2/3/0/18/1 4/1/2/3/0/18/2 4/1/2/3/0/18/3 4/1/2/3/0/19/0 4/1/2/3/0/19/1 4/1/2/3/0/19/2 4/1/2/3/0/19/3 
+
+nextSuperCalo EME2IW/HEC01 4/1/-3,3/2/0/0:6/0:63 4/2/-2,2/0/1/0:3/0:31 calcSide(2,2) calcPhi(6,6)
+4/1/3/2/0/0/0 4/2/2/0/1/0/0
+4/1/3/2/0/1/0 4/2/2/0/1/0/0
+4/1/3/2/0/2/0 4/2/2/0/1/1/0
+4/1/3/2/0/3/0 4/2/2/0/1/1/0
+4/1/3/2/0/4/0 4/2/2/0/1/2/0
+4/1/3/2/0/5/0 4/2/2/0/1/2/0
+4/1/3/2/0/6/0 4/2/2/0/1/3/0
+
+prevSuperCalo HEC01/EME2IW 4/2/-2,2/0/1/0:3/0:31 4/1/-3,3/2/0/0:6/0:63 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/1/0/0 4/1/3/2/0/0/0 4/1/3/2/0/0/1 4/1/3/2/0/1/0 4/1/3/2/0/1/1
+4/2/2/0/1/1/0 4/1/3/2/0/2/0 4/1/3/2/0/2/1 4/1/3/2/0/3/0 4/1/3/2/0/3/1
+4/2/2/0/1/2/0 4/1/3/2/0/4/0 4/1/3/2/0/4/1 4/1/3/2/0/5/0 4/1/3/2/0/5/1
+4/2/2/0/1/3/0 4/1/3/2/0/6/0 4/1/3/2/0/6/1
+
+nextSuperCalo HEC00/TILEE 4/2/-2,2/0/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/0/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo TILEE/HEC00 5/2/-1,1/0:63/15/0 4/2/-2,2/0/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/0/0/0/0 
+
+nextSuperCalo HEC01/FCAL1 4/2/-2,2/0/1/2:3/0:31 4/3/-2,2/1/0:24/0:15 calcSide(2,2)
+4/2/2/0/1/2/4 4/3/2/1/0/2
+4/2/2/0/1/2/6 4/3/2/1/1/3
+4/2/2/0/1/2/7 4/3/2/1/0/3
+4/2/2/0/1/2/8 4/3/2/1/0/4
+4/2/2/0/1/2/9 4/3/2/1/1/4
+4/2/2/0/1/2/10 4/3/2/1/0/5
+4/2/2/0/1/2/12 4/3/2/1/1/6
+4/2/2/0/1/2/13 4/3/2/1/0/6
+4/2/2/0/1/2/20 4/3/2/1/0/10
+4/2/2/0/1/2/22 4/3/2/1/1/11
+4/2/2/0/1/2/23 4/3/2/1/0/11
+4/2/2/0/1/2/24 4/3/2/1/0/12
+4/2/2/0/1/2/25 4/3/2/1/1/12
+4/2/2/0/1/2/26 4/3/2/1/0/13
+4/2/2/0/1/2/28 4/3/2/1/1/14
+4/2/2/0/1/2/29 4/3/2/1/0/14
+4/2/2/0/1/3/0 4/3/2/1/1/0 4/3/2/1/2/0 4/3/2/1/3/0 4/3/2/1/5/0 4/3/2/1/6/0 4/3/2/1/9/0 4/3/2/1/10/0 4/3/2/1/11/0 4/3/2/1/14/0 4/3/2/1/15/0 4/3/2/1/16/0 4/3/2/1/20/0 4/3/2/1/21/0 4/3/2/1/22/0
+4/2/2/0/1/3/1 4/3/2/1/0/0 4/3/2/1/4/0 4/3/2/1/7/0 4/3/2/1/8/0 4/3/2/1/12/0 4/3/2/1/13/0 4/3/2/1/17/0 4/3/2/1/18/0 4/3/2/1/19/0 4/3/2/1/21/1 4/3/2/1/23/0
+4/2/2/0/1/3/2 4/3/2/1/1/1 4/3/2/1/2/1 4/3/2/1/3/1 4/3/2/1/5/1 4/3/2/1/7/1 4/3/2/1/9/1 4/3/2/1/11/1 4/3/2/1/13/1 4/3/2/1/14/1 4/3/2/1/16/1 4/3/2/1/19/1 4/3/2/1/22/1
+4/2/2/0/1/3/3 4/3/2/1/0/1 4/3/2/1/4/1 4/3/2/1/6/1 4/3/2/1/8/1 4/3/2/1/10/1 4/3/2/1/12/1 4/3/2/1/15/1 4/3/2/1/17/1 4/3/2/1/18/1 4/3/2/1/20/1
+4/2/2/0/1/3/4 4/3/2/1/3/2 4/3/2/1/6/2 4/3/2/1/8/2 4/3/2/1/9/2 4/3/2/1/12/2 4/3/2/1/13/2 4/3/2/1/16/2 4/3/2/1/17/2 4/3/2/1/20/2 4/3/2/1/21/2
+4/2/2/0/1/3/5 4/3/2/1/1/2 4/3/2/1/2/2 4/3/2/1/4/2 4/3/2/1/5/2 4/3/2/1/7/2 4/3/2/1/10/2 4/3/2/1/11/2 4/3/2/1/14/2 4/3/2/1/15/2 4/3/2/1/18/2 4/3/2/1/19/2 4/3/2/1/22/2
+4/2/2/0/1/3/6 4/3/2/1/2/3 4/3/2/1/3/3 4/3/2/1/4/3 4/3/2/1/8/3 4/3/2/1/10/3 4/3/2/1/11/3 4/3/2/1/15/3 4/3/2/1/16/3 4/3/2/1/17/3 4/3/2/1/20/3 4/3/2/1/21/3
+4/2/2/0/1/3/7 4/3/2/1/5/3 4/3/2/1/6/3 4/3/2/1/7/3 4/3/2/1/9/3 4/3/2/1/12/3 4/3/2/1/13/3 4/3/2/1/14/3 4/3/2/1/18/3 4/3/2/1/19/3
+4/2/2/0/1/3/8 4/3/2/1/6/4 4/3/2/1/7/4 4/3/2/1/8/4 4/3/2/1/9/4 4/3/2/1/12/4 4/3/2/1/13/4 4/3/2/1/14/4 4/3/2/1/18/4 4/3/2/1/19/4
+4/2/2/0/1/3/9 4/3/2/1/2/4 4/3/2/1/3/4 4/3/2/1/4/4 4/3/2/1/5/4 4/3/2/1/10/4 4/3/2/1/11/4 4/3/2/1/15/4 4/3/2/1/16/4 4/3/2/1/17/4 4/3/2/1/20/4 4/3/2/1/21/4
+4/2/2/0/1/3/10 4/3/2/1/2/5 4/3/2/1/4/5 4/3/2/1/5/5 4/3/2/1/9/5 4/3/2/1/10/5 4/3/2/1/13/5 4/3/2/1/14/5 4/3/2/1/17/5 4/3/2/1/18/5 4/3/2/1/21/5
+4/2/2/0/1/3/11 4/3/2/1/1/5 4/3/2/1/3/5 4/3/2/1/6/5 4/3/2/1/7/5 4/3/2/1/8/5 4/3/2/1/11/5 4/3/2/1/12/5 4/3/2/1/15/5 4/3/2/1/16/5 4/3/2/1/19/5 4/3/2/1/20/5
+4/2/2/0/1/3/12 4/3/2/1/4/6 4/3/2/1/6/6 4/3/2/1/8/6 4/3/2/1/10/6 4/3/2/1/12/6 4/3/2/1/15/6 4/3/2/1/17/6 4/3/2/1/18/6 4/3/2/1/20/6
+4/2/2/0/1/3/13 4/3/2/1/2/6 4/3/2/1/3/6 4/3/2/1/5/6 4/3/2/1/7/6 4/3/2/1/9/6 4/3/2/1/11/6 4/3/2/1/13/6 4/3/2/1/14/6 4/3/2/1/16/6 4/3/2/1/19/6 4/3/2/1/22/6
+4/2/2/0/1/3/14 4/3/2/1/0/7 4/3/2/1/3/7 4/3/2/1/5/7 4/3/2/1/7/7 4/3/2/1/8/7 4/3/2/1/13/7 4/3/2/1/14/7 4/3/2/1/18/7 4/3/2/1/19/7 4/3/2/1/20/7 4/3/2/1/21/6 4/3/2/1/24/7
+4/2/2/0/1/3/15 4/3/2/1/1/7 4/3/2/1/2/7 4/3/2/1/4/7 4/3/2/1/6/7 4/3/2/1/9/7 4/3/2/1/10/7 4/3/2/1/11/7 4/3/2/1/12/7 4/3/2/1/15/7 4/3/2/1/16/7 4/3/2/1/17/7 4/3/2/1/21/7 4/3/2/1/22/7 4/3/2/1/23/7
+4/2/2/0/1/3/16 4/3/2/1/1/8 4/3/2/1/2/8 4/3/2/1/3/8 4/3/2/1/5/8 4/3/2/1/6/8 4/3/2/1/9/8 4/3/2/1/10/8 4/3/2/1/11/8 4/3/2/1/14/8 4/3/2/1/15/8 4/3/2/1/16/8 4/3/2/1/20/8 4/3/2/1/21/8 4/3/2/1/22/8
+4/2/2/0/1/3/17 4/3/2/1/0/8 4/3/2/1/4/8 4/3/2/1/7/8 4/3/2/1/8/8 4/3/2/1/12/8 4/3/2/1/13/8 4/3/2/1/17/8 4/3/2/1/18/8 4/3/2/1/19/8 4/3/2/1/21/9 4/3/2/1/23/8
+4/2/2/0/1/3/18 4/3/2/1/1/9 4/3/2/1/2/9 4/3/2/1/3/9 4/3/2/1/5/9 4/3/2/1/7/9 4/3/2/1/9/9 4/3/2/1/11/9 4/3/2/1/13/9 4/3/2/1/14/9 4/3/2/1/16/9 4/3/2/1/19/9 4/3/2/1/22/9
+4/2/2/0/1/3/19 4/3/2/1/0/9 4/3/2/1/4/9 4/3/2/1/6/9 4/3/2/1/8/9 4/3/2/1/10/9 4/3/2/1/12/9 4/3/2/1/15/9 4/3/2/1/17/9 4/3/2/1/18/9 4/3/2/1/20/9
+4/2/2/0/1/3/20 4/3/2/1/3/10 4/3/2/1/6/10 4/3/2/1/8/10 4/3/2/1/9/10 4/3/2/1/12/10 4/3/2/1/13/10 4/3/2/1/16/10 4/3/2/1/17/10 4/3/2/1/20/10 4/3/2/1/21/10
+4/2/2/0/1/3/21 4/3/2/1/1/10 4/3/2/1/2/10 4/3/2/1/4/10 4/3/2/1/5/10 4/3/2/1/7/10 4/3/2/1/10/10 4/3/2/1/11/10 4/3/2/1/14/10 4/3/2/1/15/10 4/3/2/1/18/10 4/3/2/1/19/10 4/3/2/1/22/10
+4/2/2/0/1/3/22 4/3/2/1/2/11 4/3/2/1/3/11 4/3/2/1/4/11 4/3/2/1/8/11 4/3/2/1/10/11 4/3/2/1/11/11 4/3/2/1/15/11 4/3/2/1/16/11 4/3/2/1/17/11 4/3/2/1/20/11 4/3/2/1/21/11
+4/2/2/0/1/3/23 4/3/2/1/5/11 4/3/2/1/6/11 4/3/2/1/7/11 4/3/2/1/9/11 4/3/2/1/12/11 4/3/2/1/13/11 4/3/2/1/14/11 4/3/2/1/18/11 4/3/2/1/19/11
+4/2/2/0/1/3/24 4/3/2/1/6/12 4/3/2/1/7/12 4/3/2/1/8/12 4/3/2/1/9/12 4/3/2/1/12/12 4/3/2/1/13/12 4/3/2/1/14/12 4/3/2/1/18/12 4/3/2/1/19/12
+4/2/2/0/1/3/25 4/3/2/1/2/12 4/3/2/1/3/12 4/3/2/1/4/12 4/3/2/1/5/12 4/3/2/1/10/12 4/3/2/1/11/12 4/3/2/1/15/12 4/3/2/1/16/12 4/3/2/1/17/12 4/3/2/1/20/12 4/3/2/1/21/12
+4/2/2/0/1/3/26 4/3/2/1/2/13 4/3/2/1/4/13 4/3/2/1/5/13 4/3/2/1/9/13 4/3/2/1/10/13 4/3/2/1/13/13 4/3/2/1/14/13 4/3/2/1/17/13 4/3/2/1/18/13 4/3/2/1/21/13
+4/2/2/0/1/3/27 4/3/2/1/1/13 4/3/2/1/3/13 4/3/2/1/6/13 4/3/2/1/7/13 4/3/2/1/8/13 4/3/2/1/11/13 4/3/2/1/12/13 4/3/2/1/15/13 4/3/2/1/16/13 4/3/2/1/19/13 4/3/2/1/20/13
+4/2/2/0/1/3/28 4/3/2/1/4/14 4/3/2/1/6/14 4/3/2/1/8/14 4/3/2/1/10/14 4/3/2/1/12/14 4/3/2/1/15/14 4/3/2/1/17/14 4/3/2/1/18/14 4/3/2/1/20/14
+4/2/2/0/1/3/29 4/3/2/1/2/14 4/3/2/1/3/14 4/3/2/1/5/14 4/3/2/1/7/14 4/3/2/1/9/14 4/3/2/1/11/14 4/3/2/1/13/14 4/3/2/1/14/14 4/3/2/1/16/14 4/3/2/1/19/14 4/3/2/1/22/14
+4/2/2/0/1/3/30 4/3/2/1/0/15 4/3/2/1/3/15 4/3/2/1/5/15 4/3/2/1/7/15 4/3/2/1/8/15 4/3/2/1/13/15 4/3/2/1/14/15 4/3/2/1/18/15 4/3/2/1/19/15 4/3/2/1/20/15 4/3/2/1/21/14 4/3/2/1/24/15
+4/2/2/0/1/3/31 4/3/2/1/1/15 4/3/2/1/2/15 4/3/2/1/4/15 4/3/2/1/6/15 4/3/2/1/9/15 4/3/2/1/10/15 4/3/2/1/11/15 4/3/2/1/12/15 4/3/2/1/15/15 4/3/2/1/16/15 4/3/2/1/17/15 4/3/2/1/21/15 4/3/2/1/22/15 4/3/2/1/23/15
+
+prevSuperCalo FCAL1/HEC01 4/3/-2,2/1/0:24/0:15 4/2/-2,2/0/1/2:3/0:31 calcSide(2,2)
+4/3/2/1/0/2 4/2/2/0/1/2/4
+4/3/2/1/1/3 4/2/2/0/1/2/6
+4/3/2/1/0/3 4/2/2/0/1/2/7
+4/3/2/1/0/4 4/2/2/0/1/2/8
+4/3/2/1/1/4 4/2/2/0/1/2/9
+4/3/2/1/0/5 4/2/2/0/1/2/10
+4/3/2/1/1/6 4/2/2/0/1/2/12
+4/3/2/1/0/6 4/2/2/0/1/2/13
+4/3/2/1/0/10 4/2/2/0/1/2/20
+4/3/2/1/1/11 4/2/2/0/1/2/22
+4/3/2/1/0/11 4/2/2/0/1/2/23
+4/3/2/1/0/12 4/2/2/0/1/2/24
+4/3/2/1/1/12 4/2/2/0/1/2/25
+4/3/2/1/0/13 4/2/2/0/1/2/26
+4/3/2/1/1/14 4/2/2/0/1/2/28
+4/3/2/1/0/14 4/2/2/0/1/2/29
+4/3/2/1/1/0 4/2/2/0/1/3/0
+4/3/2/1/2/0 4/2/2/0/1/3/0
+4/3/2/1/3/0 4/2/2/0/1/3/0
+4/3/2/1/5/0 4/2/2/0/1/3/0
+4/3/2/1/6/0 4/2/2/0/1/3/0
+4/3/2/1/9/0 4/2/2/0/1/3/0
+4/3/2/1/10/0 4/2/2/0/1/3/0
+4/3/2/1/11/0 4/2/2/0/1/3/0
+4/3/2/1/14/0 4/2/2/0/1/3/0
+4/3/2/1/15/0 4/2/2/0/1/3/0
+4/3/2/1/16/0 4/2/2/0/1/3/0
+4/3/2/1/20/0 4/2/2/0/1/3/0
+4/3/2/1/21/0 4/2/2/0/1/3/0
+4/3/2/1/22/0 4/2/2/0/1/3/0
+4/3/2/1/0/0 4/2/2/0/1/3/1
+4/3/2/1/4/0 4/2/2/0/1/3/1
+4/3/2/1/7/0 4/2/2/0/1/3/1
+4/3/2/1/8/0 4/2/2/0/1/3/1
+4/3/2/1/12/0 4/2/2/0/1/3/1
+4/3/2/1/13/0 4/2/2/0/1/3/1
+4/3/2/1/17/0 4/2/2/0/1/3/1
+4/3/2/1/18/0 4/2/2/0/1/3/1
+4/3/2/1/19/0 4/2/2/0/1/3/1
+4/3/2/1/21/1 4/2/2/0/1/3/1
+4/3/2/1/23/0 4/2/2/0/1/3/1
+4/3/2/1/1/1 4/2/2/0/1/3/2
+4/3/2/1/2/1 4/2/2/0/1/3/2
+4/3/2/1/3/1 4/2/2/0/1/3/2
+4/3/2/1/5/1 4/2/2/0/1/3/2
+4/3/2/1/7/1 4/2/2/0/1/3/2
+4/3/2/1/9/1 4/2/2/0/1/3/2
+4/3/2/1/11/1 4/2/2/0/1/3/2
+4/3/2/1/13/1 4/2/2/0/1/3/2
+4/3/2/1/14/1 4/2/2/0/1/3/2
+4/3/2/1/16/1 4/2/2/0/1/3/2
+4/3/2/1/19/1 4/2/2/0/1/3/2
+4/3/2/1/22/1 4/2/2/0/1/3/2
+4/3/2/1/0/1 4/2/2/0/1/3/3
+4/3/2/1/4/1 4/2/2/0/1/3/3
+4/3/2/1/6/1 4/2/2/0/1/3/3
+4/3/2/1/8/1 4/2/2/0/1/3/3
+4/3/2/1/10/1 4/2/2/0/1/3/3
+4/3/2/1/12/1 4/2/2/0/1/3/3
+4/3/2/1/15/1 4/2/2/0/1/3/3
+4/3/2/1/17/1 4/2/2/0/1/3/3
+4/3/2/1/18/1 4/2/2/0/1/3/3
+4/3/2/1/20/1 4/2/2/0/1/3/3
+4/3/2/1/3/2 4/2/2/0/1/3/4
+4/3/2/1/6/2 4/2/2/0/1/3/4
+4/3/2/1/8/2 4/2/2/0/1/3/4
+4/3/2/1/9/2 4/2/2/0/1/3/4
+4/3/2/1/12/2 4/2/2/0/1/3/4
+4/3/2/1/13/2 4/2/2/0/1/3/4
+4/3/2/1/16/2 4/2/2/0/1/3/4
+4/3/2/1/17/2 4/2/2/0/1/3/4
+4/3/2/1/20/2 4/2/2/0/1/3/4
+4/3/2/1/21/2 4/2/2/0/1/3/4
+4/3/2/1/1/2 4/2/2/0/1/3/5
+4/3/2/1/2/2 4/2/2/0/1/3/5
+4/3/2/1/4/2 4/2/2/0/1/3/5
+4/3/2/1/5/2 4/2/2/0/1/3/5
+4/3/2/1/7/2 4/2/2/0/1/3/5
+4/3/2/1/10/2 4/2/2/0/1/3/5
+4/3/2/1/11/2 4/2/2/0/1/3/5
+4/3/2/1/14/2 4/2/2/0/1/3/5
+4/3/2/1/15/2 4/2/2/0/1/3/5
+4/3/2/1/18/2 4/2/2/0/1/3/5
+4/3/2/1/19/2 4/2/2/0/1/3/5
+4/3/2/1/22/2 4/2/2/0/1/3/5
+4/3/2/1/2/3 4/2/2/0/1/3/6
+4/3/2/1/3/3 4/2/2/0/1/3/6
+4/3/2/1/4/3 4/2/2/0/1/3/6
+4/3/2/1/8/3 4/2/2/0/1/3/6
+4/3/2/1/10/3 4/2/2/0/1/3/6
+4/3/2/1/11/3 4/2/2/0/1/3/6
+4/3/2/1/15/3 4/2/2/0/1/3/6
+4/3/2/1/16/3 4/2/2/0/1/3/6
+4/3/2/1/17/3 4/2/2/0/1/3/6
+4/3/2/1/20/3 4/2/2/0/1/3/6
+4/3/2/1/21/3 4/2/2/0/1/3/6
+4/3/2/1/5/3 4/2/2/0/1/3/7
+4/3/2/1/6/3 4/2/2/0/1/3/7
+4/3/2/1/7/3 4/2/2/0/1/3/7
+4/3/2/1/9/3 4/2/2/0/1/3/7
+4/3/2/1/12/3 4/2/2/0/1/3/7
+4/3/2/1/13/3 4/2/2/0/1/3/7
+4/3/2/1/14/3 4/2/2/0/1/3/7
+4/3/2/1/18/3 4/2/2/0/1/3/7
+4/3/2/1/19/3 4/2/2/0/1/3/7
+4/3/2/1/6/4 4/2/2/0/1/3/8
+4/3/2/1/7/4 4/2/2/0/1/3/8
+4/3/2/1/8/4 4/2/2/0/1/3/8
+4/3/2/1/9/4 4/2/2/0/1/3/8
+4/3/2/1/12/4 4/2/2/0/1/3/8
+4/3/2/1/13/4 4/2/2/0/1/3/8
+4/3/2/1/14/4 4/2/2/0/1/3/8
+4/3/2/1/18/4 4/2/2/0/1/3/8
+4/3/2/1/19/4 4/2/2/0/1/3/8
+4/3/2/1/2/4 4/2/2/0/1/3/9
+4/3/2/1/3/4 4/2/2/0/1/3/9
+4/3/2/1/4/4 4/2/2/0/1/3/9
+4/3/2/1/5/4 4/2/2/0/1/3/9
+4/3/2/1/10/4 4/2/2/0/1/3/9
+4/3/2/1/11/4 4/2/2/0/1/3/9
+4/3/2/1/15/4 4/2/2/0/1/3/9
+4/3/2/1/16/4 4/2/2/0/1/3/9
+4/3/2/1/17/4 4/2/2/0/1/3/9
+4/3/2/1/20/4 4/2/2/0/1/3/9
+4/3/2/1/21/4 4/2/2/0/1/3/9
+4/3/2/1/2/5 4/2/2/0/1/3/10
+4/3/2/1/4/5 4/2/2/0/1/3/10
+4/3/2/1/5/5 4/2/2/0/1/3/10
+4/3/2/1/9/5 4/2/2/0/1/3/10
+4/3/2/1/10/5 4/2/2/0/1/3/10
+4/3/2/1/13/5 4/2/2/0/1/3/10
+4/3/2/1/14/5 4/2/2/0/1/3/10
+4/3/2/1/17/5 4/2/2/0/1/3/10
+4/3/2/1/18/5 4/2/2/0/1/3/10
+4/3/2/1/21/5 4/2/2/0/1/3/10
+4/3/2/1/1/5 4/2/2/0/1/3/11
+4/3/2/1/3/5 4/2/2/0/1/3/11
+4/3/2/1/6/5 4/2/2/0/1/3/11
+4/3/2/1/7/5 4/2/2/0/1/3/11
+4/3/2/1/8/5 4/2/2/0/1/3/11
+4/3/2/1/11/5 4/2/2/0/1/3/11
+4/3/2/1/12/5 4/2/2/0/1/3/11
+4/3/2/1/15/5 4/2/2/0/1/3/11
+4/3/2/1/16/5 4/2/2/0/1/3/11
+4/3/2/1/19/5 4/2/2/0/1/3/11
+4/3/2/1/20/5 4/2/2/0/1/3/11
+4/3/2/1/4/6 4/2/2/0/1/3/12
+4/3/2/1/6/6 4/2/2/0/1/3/12
+4/3/2/1/8/6 4/2/2/0/1/3/12
+4/3/2/1/10/6 4/2/2/0/1/3/12
+4/3/2/1/12/6 4/2/2/0/1/3/12
+4/3/2/1/15/6 4/2/2/0/1/3/12
+4/3/2/1/17/6 4/2/2/0/1/3/12
+4/3/2/1/18/6 4/2/2/0/1/3/12
+4/3/2/1/20/6 4/2/2/0/1/3/12
+4/3/2/1/2/6 4/2/2/0/1/3/13
+4/3/2/1/3/6 4/2/2/0/1/3/13
+4/3/2/1/5/6 4/2/2/0/1/3/13
+4/3/2/1/7/6 4/2/2/0/1/3/13
+4/3/2/1/9/6 4/2/2/0/1/3/13
+4/3/2/1/11/6 4/2/2/0/1/3/13
+4/3/2/1/13/6 4/2/2/0/1/3/13
+4/3/2/1/14/6 4/2/2/0/1/3/13
+4/3/2/1/16/6 4/2/2/0/1/3/13
+4/3/2/1/19/6 4/2/2/0/1/3/13
+4/3/2/1/22/6 4/2/2/0/1/3/13
+4/3/2/1/0/7 4/2/2/0/1/3/14
+4/3/2/1/3/7 4/2/2/0/1/3/14
+4/3/2/1/5/7 4/2/2/0/1/3/14
+4/3/2/1/7/7 4/2/2/0/1/3/14
+4/3/2/1/8/7 4/2/2/0/1/3/14
+4/3/2/1/13/7 4/2/2/0/1/3/14
+4/3/2/1/14/7 4/2/2/0/1/3/14
+4/3/2/1/18/7 4/2/2/0/1/3/14
+4/3/2/1/19/7 4/2/2/0/1/3/14
+4/3/2/1/20/7 4/2/2/0/1/3/14
+4/3/2/1/21/6 4/2/2/0/1/3/14
+4/3/2/1/24/7 4/2/2/0/1/3/14
+4/3/2/1/1/7 4/2/2/0/1/3/15
+4/3/2/1/2/7 4/2/2/0/1/3/15
+4/3/2/1/4/7 4/2/2/0/1/3/15
+4/3/2/1/6/7 4/2/2/0/1/3/15
+4/3/2/1/9/7 4/2/2/0/1/3/15
+4/3/2/1/10/7 4/2/2/0/1/3/15
+4/3/2/1/11/7 4/2/2/0/1/3/15
+4/3/2/1/12/7 4/2/2/0/1/3/15
+4/3/2/1/15/7 4/2/2/0/1/3/15
+4/3/2/1/16/7 4/2/2/0/1/3/15
+4/3/2/1/17/7 4/2/2/0/1/3/15
+4/3/2/1/21/7 4/2/2/0/1/3/15
+4/3/2/1/22/7 4/2/2/0/1/3/15
+4/3/2/1/23/7 4/2/2/0/1/3/15
+4/3/2/1/1/8 4/2/2/0/1/3/16
+4/3/2/1/2/8 4/2/2/0/1/3/16
+4/3/2/1/3/8 4/2/2/0/1/3/16
+4/3/2/1/5/8 4/2/2/0/1/3/16
+4/3/2/1/6/8 4/2/2/0/1/3/16
+4/3/2/1/9/8 4/2/2/0/1/3/16
+4/3/2/1/10/8 4/2/2/0/1/3/16
+4/3/2/1/11/8 4/2/2/0/1/3/16
+4/3/2/1/14/8 4/2/2/0/1/3/16
+4/3/2/1/15/8 4/2/2/0/1/3/16
+4/3/2/1/16/8 4/2/2/0/1/3/16
+4/3/2/1/20/8 4/2/2/0/1/3/16
+4/3/2/1/21/8 4/2/2/0/1/3/16
+4/3/2/1/22/8 4/2/2/0/1/3/16
+4/3/2/1/0/8 4/2/2/0/1/3/17
+4/3/2/1/4/8 4/2/2/0/1/3/17
+4/3/2/1/7/8 4/2/2/0/1/3/17
+4/3/2/1/8/8 4/2/2/0/1/3/17
+4/3/2/1/12/8 4/2/2/0/1/3/17
+4/3/2/1/13/8 4/2/2/0/1/3/17
+4/3/2/1/17/8 4/2/2/0/1/3/17
+4/3/2/1/18/8 4/2/2/0/1/3/17
+4/3/2/1/19/8 4/2/2/0/1/3/17
+4/3/2/1/21/9 4/2/2/0/1/3/17
+4/3/2/1/23/8 4/2/2/0/1/3/17
+4/3/2/1/1/9 4/2/2/0/1/3/18
+4/3/2/1/2/9 4/2/2/0/1/3/18
+4/3/2/1/3/9 4/2/2/0/1/3/18
+4/3/2/1/5/9 4/2/2/0/1/3/18
+4/3/2/1/7/9 4/2/2/0/1/3/18
+4/3/2/1/9/9 4/2/2/0/1/3/18
+4/3/2/1/11/9 4/2/2/0/1/3/18
+4/3/2/1/13/9 4/2/2/0/1/3/18
+4/3/2/1/14/9 4/2/2/0/1/3/18
+4/3/2/1/16/9 4/2/2/0/1/3/18
+4/3/2/1/19/9 4/2/2/0/1/3/18
+4/3/2/1/22/9 4/2/2/0/1/3/18
+4/3/2/1/0/9 4/2/2/0/1/3/19
+4/3/2/1/4/9 4/2/2/0/1/3/19
+4/3/2/1/6/9 4/2/2/0/1/3/19
+4/3/2/1/8/9 4/2/2/0/1/3/19
+4/3/2/1/10/9 4/2/2/0/1/3/19
+4/3/2/1/12/9 4/2/2/0/1/3/19
+4/3/2/1/15/9 4/2/2/0/1/3/19
+4/3/2/1/17/9 4/2/2/0/1/3/19
+4/3/2/1/18/9 4/2/2/0/1/3/19
+4/3/2/1/20/9 4/2/2/0/1/3/19
+4/3/2/1/3/10 4/2/2/0/1/3/20
+4/3/2/1/6/10 4/2/2/0/1/3/20
+4/3/2/1/8/10 4/2/2/0/1/3/20
+4/3/2/1/9/10 4/2/2/0/1/3/20
+4/3/2/1/12/10 4/2/2/0/1/3/20
+4/3/2/1/13/10 4/2/2/0/1/3/20
+4/3/2/1/16/10 4/2/2/0/1/3/20
+4/3/2/1/17/10 4/2/2/0/1/3/20
+4/3/2/1/20/10 4/2/2/0/1/3/20
+4/3/2/1/21/10 4/2/2/0/1/3/20
+4/3/2/1/1/10 4/2/2/0/1/3/21
+4/3/2/1/2/10 4/2/2/0/1/3/21
+4/3/2/1/4/10 4/2/2/0/1/3/21
+4/3/2/1/5/10 4/2/2/0/1/3/21
+4/3/2/1/7/10 4/2/2/0/1/3/21
+4/3/2/1/10/10 4/2/2/0/1/3/21
+4/3/2/1/11/10 4/2/2/0/1/3/21
+4/3/2/1/14/10 4/2/2/0/1/3/21
+4/3/2/1/15/10 4/2/2/0/1/3/21
+4/3/2/1/18/10 4/2/2/0/1/3/21
+4/3/2/1/19/10 4/2/2/0/1/3/21
+4/3/2/1/22/10 4/2/2/0/1/3/21
+4/3/2/1/2/11 4/2/2/0/1/3/22
+4/3/2/1/3/11 4/2/2/0/1/3/22
+4/3/2/1/4/11 4/2/2/0/1/3/22
+4/3/2/1/8/11 4/2/2/0/1/3/22
+4/3/2/1/10/11 4/2/2/0/1/3/22
+4/3/2/1/11/11 4/2/2/0/1/3/22
+4/3/2/1/15/11 4/2/2/0/1/3/22
+4/3/2/1/16/11 4/2/2/0/1/3/22
+4/3/2/1/17/11 4/2/2/0/1/3/22
+4/3/2/1/20/11 4/2/2/0/1/3/22
+4/3/2/1/21/11 4/2/2/0/1/3/22
+4/3/2/1/5/11 4/2/2/0/1/3/23
+4/3/2/1/6/11 4/2/2/0/1/3/23
+4/3/2/1/7/11 4/2/2/0/1/3/23
+4/3/2/1/9/11 4/2/2/0/1/3/23
+4/3/2/1/12/11 4/2/2/0/1/3/23
+4/3/2/1/13/11 4/2/2/0/1/3/23
+4/3/2/1/14/11 4/2/2/0/1/3/23
+4/3/2/1/18/11 4/2/2/0/1/3/23
+4/3/2/1/19/11 4/2/2/0/1/3/23
+4/3/2/1/6/12 4/2/2/0/1/3/24
+4/3/2/1/7/12 4/2/2/0/1/3/24
+4/3/2/1/8/12 4/2/2/0/1/3/24
+4/3/2/1/9/12 4/2/2/0/1/3/24
+4/3/2/1/12/12 4/2/2/0/1/3/24
+4/3/2/1/13/12 4/2/2/0/1/3/24
+4/3/2/1/14/12 4/2/2/0/1/3/24
+4/3/2/1/18/12 4/2/2/0/1/3/24
+4/3/2/1/19/12 4/2/2/0/1/3/24
+4/3/2/1/2/12 4/2/2/0/1/3/25
+4/3/2/1/3/12 4/2/2/0/1/3/25
+4/3/2/1/4/12 4/2/2/0/1/3/25
+4/3/2/1/5/12 4/2/2/0/1/3/25
+4/3/2/1/10/12 4/2/2/0/1/3/25
+4/3/2/1/11/12 4/2/2/0/1/3/25
+4/3/2/1/15/12 4/2/2/0/1/3/25
+4/3/2/1/16/12 4/2/2/0/1/3/25
+4/3/2/1/17/12 4/2/2/0/1/3/25
+4/3/2/1/20/12 4/2/2/0/1/3/25
+4/3/2/1/21/12 4/2/2/0/1/3/25
+4/3/2/1/2/13 4/2/2/0/1/3/26
+4/3/2/1/4/13 4/2/2/0/1/3/26
+4/3/2/1/5/13 4/2/2/0/1/3/26
+4/3/2/1/9/13 4/2/2/0/1/3/26
+4/3/2/1/10/13 4/2/2/0/1/3/26
+4/3/2/1/13/13 4/2/2/0/1/3/26
+4/3/2/1/14/13 4/2/2/0/1/3/26
+4/3/2/1/17/13 4/2/2/0/1/3/26
+4/3/2/1/18/13 4/2/2/0/1/3/26
+4/3/2/1/21/13 4/2/2/0/1/3/26
+4/3/2/1/1/13 4/2/2/0/1/3/27
+4/3/2/1/3/13 4/2/2/0/1/3/27
+4/3/2/1/6/13 4/2/2/0/1/3/27
+4/3/2/1/7/13 4/2/2/0/1/3/27
+4/3/2/1/8/13 4/2/2/0/1/3/27
+4/3/2/1/11/13 4/2/2/0/1/3/27
+4/3/2/1/12/13 4/2/2/0/1/3/27
+4/3/2/1/15/13 4/2/2/0/1/3/27
+4/3/2/1/16/13 4/2/2/0/1/3/27
+4/3/2/1/19/13 4/2/2/0/1/3/27
+4/3/2/1/20/13 4/2/2/0/1/3/27
+4/3/2/1/4/14 4/2/2/0/1/3/28
+4/3/2/1/6/14 4/2/2/0/1/3/28
+4/3/2/1/8/14 4/2/2/0/1/3/28
+4/3/2/1/10/14 4/2/2/0/1/3/28
+4/3/2/1/12/14 4/2/2/0/1/3/28
+4/3/2/1/15/14 4/2/2/0/1/3/28
+4/3/2/1/17/14 4/2/2/0/1/3/28
+4/3/2/1/18/14 4/2/2/0/1/3/28
+4/3/2/1/20/14 4/2/2/0/1/3/28
+4/3/2/1/2/14 4/2/2/0/1/3/29
+4/3/2/1/3/14 4/2/2/0/1/3/29
+4/3/2/1/5/14 4/2/2/0/1/3/29
+4/3/2/1/7/14 4/2/2/0/1/3/29
+4/3/2/1/9/14 4/2/2/0/1/3/29
+4/3/2/1/11/14 4/2/2/0/1/3/29
+4/3/2/1/13/14 4/2/2/0/1/3/29
+4/3/2/1/14/14 4/2/2/0/1/3/29
+4/3/2/1/16/14 4/2/2/0/1/3/29
+4/3/2/1/19/14 4/2/2/0/1/3/29
+4/3/2/1/22/14 4/2/2/0/1/3/29
+4/3/2/1/0/15 4/2/2/0/1/3/30
+4/3/2/1/3/15 4/2/2/0/1/3/30
+4/3/2/1/5/15 4/2/2/0/1/3/30
+4/3/2/1/7/15 4/2/2/0/1/3/30
+4/3/2/1/8/15 4/2/2/0/1/3/30
+4/3/2/1/13/15 4/2/2/0/1/3/30
+4/3/2/1/14/15 4/2/2/0/1/3/30
+4/3/2/1/18/15 4/2/2/0/1/3/30
+4/3/2/1/19/15 4/2/2/0/1/3/30
+4/3/2/1/20/15 4/2/2/0/1/3/30
+4/3/2/1/21/14 4/2/2/0/1/3/30
+4/3/2/1/24/15 4/2/2/0/1/3/30
+4/3/2/1/1/15 4/2/2/0/1/3/31
+4/3/2/1/2/15 4/2/2/0/1/3/31
+4/3/2/1/4/15 4/2/2/0/1/3/31
+4/3/2/1/6/15 4/2/2/0/1/3/31
+4/3/2/1/9/15 4/2/2/0/1/3/31
+4/3/2/1/10/15 4/2/2/0/1/3/31
+4/3/2/1/11/15 4/2/2/0/1/3/31
+4/3/2/1/12/15 4/2/2/0/1/3/31
+4/3/2/1/15/15 4/2/2/0/1/3/31
+4/3/2/1/16/15 4/2/2/0/1/3/31
+4/3/2/1/17/15 4/2/2/0/1/3/31
+4/3/2/1/21/15 4/2/2/0/1/3/31
+4/3/2/1/22/15 4/2/2/0/1/3/31
+4/3/2/1/23/15 4/2/2/0/1/3/31
+
+nextSuperCalo HEC10/TILEE 4/2/-2,2/1/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/1/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo HEC10/TILEE 5/2/-1,1/0:63/15/0 4/2/-2,2/1/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/1/0/0/0 
+
+nextSuperCalo FCAL1/HEC21 4/3/-2,2/1/0,1/2:14 4/2/-2,2/2/1/2/0:31 calcSide(2,2)
+4/3/2/1/0/2 4/2/2/2/1/2/4
+4/3/2/1/1/3 4/2/2/2/1/2/6
+4/3/2/1/0/3 4/2/2/2/1/2/7
+4/3/2/1/0/4 4/2/2/2/1/2/8
+4/3/2/1/1/4 4/2/2/2/1/2/9
+4/3/2/1/0/5 4/2/2/2/1/2/10
+4/3/2/1/1/6 4/2/2/2/1/2/12
+4/3/2/1/0/6 4/2/2/2/1/2/13
+4/3/2/1/0/10 4/2/2/2/1/2/20
+4/3/2/1/1/11 4/2/2/2/1/2/22
+4/3/2/1/0/11 4/2/2/2/1/2/23
+4/3/2/1/0/12 4/2/2/2/1/2/24
+4/3/2/1/1/12 4/2/2/2/1/2/25
+4/3/2/1/0/13 4/2/2/2/1/2/26
+4/3/2/1/1/14 4/2/2/2/1/2/28
+4/3/2/1/0/14 4/2/2/2/1/2/29
+
+prevSuperCalo HEC21/FCAL1 4/2/-2,2/2/1/2/0:31 4/3/-2,2/1/0,1/2:14 calcSide(2,2)
+4/2/2/2/1/2/4 4/3/2/1/0/2
+4/2/2/2/1/2/6 4/3/2/1/1/3
+4/2/2/2/1/2/7 4/3/2/1/0/3
+4/2/2/2/1/2/8 4/3/2/1/0/4
+4/2/2/2/1/2/9 4/3/2/1/1/4
+4/2/2/2/1/2/10 4/3/2/1/0/5
+4/2/2/2/1/2/12 4/3/2/1/1/6
+4/2/2/2/1/2/13 4/3/2/1/0/6
+4/2/2/2/1/2/20 4/3/2/1/0/10
+4/2/2/2/1/2/22 4/3/2/1/1/11
+4/2/2/2/1/2/23 4/3/2/1/0/11
+4/2/2/2/1/2/24 4/3/2/1/0/12
+4/2/2/2/1/2/25 4/3/2/1/1/12
+4/2/2/2/1/2/26 4/3/2/1/0/13
+4/2/2/2/1/2/28 4/3/2/1/1/14
+4/2/2/2/1/2/29 4/3/2/1/0/14
+
+nextSuperCalo FCAL2/HEC31 4/3/-2,2/2/0:9/0:15 4/2/-2,2/3/1/3/0:31 calcSide(2,2)
+4/3/2/2/0/0 4/2/2/3/1/3/0
+4/3/2/2/1/0 4/2/2/3/1/3/0
+4/3/2/2/2/0 4/2/2/3/1/3/0
+4/3/2/2/5/0 4/2/2/3/1/3/0
+4/3/2/2/6/0 4/2/2/3/1/3/0
+4/3/2/2/3/0 4/2/2/3/1/3/1
+4/3/2/2/4/0 4/2/2/3/1/3/1
+4/3/2/2/7/0 4/2/2/3/1/3/1
+4/3/2/2/2/1 4/2/2/3/1/3/2
+4/3/2/2/4/1 4/2/2/3/1/3/2
+4/3/2/2/0/1 4/2/2/3/1/3/3
+4/3/2/2/1/1 4/2/2/3/1/3/3
+4/3/2/2/3/1 4/2/2/3/1/3/3
+4/3/2/2/5/1 4/2/2/3/1/3/3
+4/3/2/2/6/1 4/2/2/3/1/3/3
+4/3/2/2/0/2 4/2/2/3/1/3/4
+4/3/2/2/3/2 4/2/2/3/1/3/4
+4/3/2/2/5/2 4/2/2/3/1/3/4
+4/3/2/2/6/2 4/2/2/3/1/3/4
+4/3/2/2/9/2 4/2/2/3/1/3/4
+4/3/2/2/1/2 4/2/2/3/1/3/5
+4/3/2/2/2/2 4/2/2/3/1/3/5
+4/3/2/2/4/2 4/2/2/3/1/3/5
+4/3/2/2/7/2 4/2/2/3/1/3/5
+4/3/2/2/8/2 4/2/2/3/1/3/5
+4/3/2/2/1/3 4/2/2/3/1/3/6
+4/3/2/2/2/3 4/2/2/3/1/3/6
+4/3/2/2/3/3 4/2/2/3/1/3/6
+4/3/2/2/0/3 4/2/2/3/1/3/7
+4/3/2/2/4/3 4/2/2/3/1/3/7
+4/3/2/2/5/3 4/2/2/3/1/3/7
+4/3/2/2/0/4 4/2/2/3/1/3/8
+4/3/2/2/4/4 4/2/2/3/1/3/8
+4/3/2/2/5/4 4/2/2/3/1/3/8
+4/3/2/2/1/4 4/2/2/3/1/3/9
+4/3/2/2/2/4 4/2/2/3/1/3/9
+4/3/2/2/3/4 4/2/2/3/1/3/9
+4/3/2/2/0/5 4/2/2/3/1/3/10
+4/3/2/2/2/5 4/2/2/3/1/3/10
+4/3/2/2/4/5 4/2/2/3/1/3/10
+4/3/2/2/7/5 4/2/2/3/1/3/10
+4/3/2/2/8/5 4/2/2/3/1/3/10
+4/3/2/2/1/5 4/2/2/3/1/3/11
+4/3/2/2/3/5 4/2/2/3/1/3/11
+4/3/2/2/5/5 4/2/2/3/1/3/11
+4/3/2/2/6/5 4/2/2/3/1/3/11
+4/3/2/2/9/5 4/2/2/3/1/3/11
+4/3/2/2/0/6 4/2/2/3/1/3/12
+4/3/2/2/1/6 4/2/2/3/1/3/12
+4/3/2/2/3/6 4/2/2/3/1/3/12
+4/3/2/2/5/6 4/2/2/3/1/3/12
+4/3/2/2/6/6 4/2/2/3/1/3/12
+4/3/2/2/2/6 4/2/2/3/1/3/13
+4/3/2/2/4/6 4/2/2/3/1/3/13
+4/3/2/2/3/7 4/2/2/3/1/3/14
+4/3/2/2/4/7 4/2/2/3/1/3/14
+4/3/2/2/7/7 4/2/2/3/1/3/14
+4/3/2/2/0/7 4/2/2/3/1/3/15
+4/3/2/2/1/7 4/2/2/3/1/3/15
+4/3/2/2/2/7 4/2/2/3/1/3/15
+4/3/2/2/5/7 4/2/2/3/1/3/15
+4/3/2/2/6/7 4/2/2/3/1/3/15
+4/3/2/2/0/8 4/2/2/3/1/3/16
+4/3/2/2/1/8 4/2/2/3/1/3/16
+4/3/2/2/2/8 4/2/2/3/1/3/16
+4/3/2/2/5/8 4/2/2/3/1/3/16
+4/3/2/2/6/8 4/2/2/3/1/3/16
+4/3/2/2/3/8 4/2/2/3/1/3/17
+4/3/2/2/4/8 4/2/2/3/1/3/17
+4/3/2/2/7/8 4/2/2/3/1/3/17
+4/3/2/2/2/9 4/2/2/3/1/3/18
+4/3/2/2/4/9 4/2/2/3/1/3/18
+4/3/2/2/0/9 4/2/2/3/1/3/19
+4/3/2/2/1/9 4/2/2/3/1/3/19
+4/3/2/2/3/9 4/2/2/3/1/3/19
+4/3/2/2/5/9 4/2/2/3/1/3/19
+4/3/2/2/6/9 4/2/2/3/1/3/19
+4/3/2/2/0/10 4/2/2/3/1/3/20
+4/3/2/2/3/10 4/2/2/3/1/3/20
+4/3/2/2/5/10 4/2/2/3/1/3/20
+4/3/2/2/6/10 4/2/2/3/1/3/20
+4/3/2/2/9/10 4/2/2/3/1/3/20
+4/3/2/2/1/10 4/2/2/3/1/3/21
+4/3/2/2/2/10 4/2/2/3/1/3/21
+4/3/2/2/4/10 4/2/2/3/1/3/21
+4/3/2/2/7/10 4/2/2/3/1/3/21
+4/3/2/2/8/10 4/2/2/3/1/3/21
+4/3/2/2/1/11 4/2/2/3/1/3/22
+4/3/2/2/2/11 4/2/2/3/1/3/22
+4/3/2/2/3/11 4/2/2/3/1/3/22
+4/3/2/2/0/11 4/2/2/3/1/3/23
+4/3/2/2/4/11 4/2/2/3/1/3/23
+4/3/2/2/5/11 4/2/2/3/1/3/23
+4/3/2/2/0/12 4/2/2/3/1/3/24
+4/3/2/2/4/12 4/2/2/3/1/3/24
+4/3/2/2/5/12 4/2/2/3/1/3/24
+4/3/2/2/1/12 4/2/2/3/1/3/25
+4/3/2/2/2/12 4/2/2/3/1/3/25
+4/3/2/2/3/12 4/2/2/3/1/3/25
+4/3/2/2/0/13 4/2/2/3/1/3/26
+4/3/2/2/2/13 4/2/2/3/1/3/26
+4/3/2/2/4/13 4/2/2/3/1/3/26
+4/3/2/2/7/13 4/2/2/3/1/3/26
+4/3/2/2/8/13 4/2/2/3/1/3/26
+4/3/2/2/1/13 4/2/2/3/1/3/27
+4/3/2/2/3/13 4/2/2/3/1/3/27
+4/3/2/2/5/13 4/2/2/3/1/3/27
+4/3/2/2/6/13 4/2/2/3/1/3/27
+4/3/2/2/9/13 4/2/2/3/1/3/27
+4/3/2/2/0/14 4/2/2/3/1/3/28
+4/3/2/2/1/14 4/2/2/3/1/3/28
+4/3/2/2/3/14 4/2/2/3/1/3/28
+4/3/2/2/5/14 4/2/2/3/1/3/28
+4/3/2/2/6/14 4/2/2/3/1/3/28
+4/3/2/2/2/14 4/2/2/3/1/3/29
+4/3/2/2/4/14 4/2/2/3/1/3/29
+4/3/2/2/3/15 4/2/2/3/1/3/30
+4/3/2/2/4/15 4/2/2/3/1/3/30
+4/3/2/2/7/15 4/2/2/3/1/3/30
+4/3/2/2/0/15 4/2/2/3/1/3/31
+4/3/2/2/1/15 4/2/2/3/1/3/31
+4/3/2/2/2/15 4/2/2/3/1/3/31
+4/3/2/2/5/15 4/2/2/3/1/3/31
+4/3/2/2/6/15 4/2/2/3/1/3/31
+
+prevSuperCalo HEC31/FCAL2 4/2/-2,2/3/1/3/0:31 4/3/-2,2/2/0:9/0:15 calcSide(2,2)
+4/2/2/3/1/3/0 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/2/0 4/3/2/2/5/0 4/3/2/2/6/0
+4/2/2/3/1/3/1 4/3/2/2/3/0 4/3/2/2/4/0 4/3/2/2/7/0
+4/2/2/3/1/3/2 4/3/2/2/2/1 4/3/2/2/4/1
+4/2/2/3/1/3/3 4/3/2/2/0/1 4/3/2/2/1/1 4/3/2/2/3/1 4/3/2/2/5/1 4/3/2/2/6/1
+4/2/2/3/1/3/4 4/3/2/2/0/2 4/3/2/2/3/2 4/3/2/2/5/2 4/3/2/2/6/2 4/3/2/2/9/2
+4/2/2/3/1/3/5 4/3/2/2/1/2 4/3/2/2/2/2 4/3/2/2/4/2 4/3/2/2/7/2 4/3/2/2/8/2
+4/2/2/3/1/3/6 4/3/2/2/1/3 4/3/2/2/2/3 4/3/2/2/3/3
+4/2/2/3/1/3/7 4/3/2/2/0/3 4/3/2/2/4/3 4/3/2/2/5/3
+4/2/2/3/1/3/8 4/3/2/2/0/4 4/3/2/2/4/4 4/3/2/2/5/4
+4/2/2/3/1/3/9 4/3/2/2/1/4 4/3/2/2/2/4 4/3/2/2/3/4
+4/2/2/3/1/3/10 4/3/2/2/0/5 4/3/2/2/2/5 4/3/2/2/4/5 4/3/2/2/7/5 4/3/2/2/8/5
+4/2/2/3/1/3/11 4/3/2/2/1/5 4/3/2/2/3/5 4/3/2/2/5/5 4/3/2/2/6/5 4/3/2/2/9/5
+4/2/2/3/1/3/12 4/3/2/2/0/6 4/3/2/2/1/6 4/3/2/2/3/6 4/3/2/2/5/6 4/3/2/2/6/6
+4/2/2/3/1/3/13 4/3/2/2/2/6 4/3/2/2/4/6
+4/2/2/3/1/3/14 4/3/2/2/3/7 4/3/2/2/4/7 4/3/2/2/7/7
+4/2/2/3/1/3/15 4/3/2/2/0/7 4/3/2/2/1/7 4/3/2/2/2/7 4/3/2/2/5/7 4/3/2/2/6/7
+4/2/2/3/1/3/16 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/2/8 4/3/2/2/5/8 4/3/2/2/6/8
+4/2/2/3/1/3/17 4/3/2/2/3/8 4/3/2/2/4/8 4/3/2/2/7/8
+4/2/2/3/1/3/18 4/3/2/2/2/9 4/3/2/2/4/9
+4/2/2/3/1/3/19 4/3/2/2/0/9 4/3/2/2/1/9 4/3/2/2/3/9 4/3/2/2/5/9 4/3/2/2/6/9
+4/2/2/3/1/3/20 4/3/2/2/0/10 4/3/2/2/3/10 4/3/2/2/5/10 4/3/2/2/6/10 4/3/2/2/9/10
+4/2/2/3/1/3/21 4/3/2/2/1/10 4/3/2/2/2/10 4/3/2/2/4/10 4/3/2/2/7/10 4/3/2/2/8/10
+4/2/2/3/1/3/22 4/3/2/2/1/11 4/3/2/2/2/11 4/3/2/2/3/11
+4/2/2/3/1/3/23 4/3/2/2/0/11 4/3/2/2/4/11 4/3/2/2/5/11
+4/2/2/3/1/3/24 4/3/2/2/0/12 4/3/2/2/4/12 4/3/2/2/5/12
+4/2/2/3/1/3/25 4/3/2/2/1/12 4/3/2/2/2/12 4/3/2/2/3/12
+4/2/2/3/1/3/26 4/3/2/2/0/13 4/3/2/2/2/13 4/3/2/2/4/13 4/3/2/2/7/13 4/3/2/2/8/13
+4/2/2/3/1/3/27 4/3/2/2/1/13 4/3/2/2/3/13 4/3/2/2/5/13 4/3/2/2/6/13 4/3/2/2/9/13
+4/2/2/3/1/3/28 4/3/2/2/0/14 4/3/2/2/1/14 4/3/2/2/3/14 4/3/2/2/5/14 4/3/2/2/6/14
+4/2/2/3/1/3/29 4/3/2/2/2/14 4/3/2/2/4/14
+4/2/2/3/1/3/30 4/3/2/2/3/15 4/3/2/2/4/15 4/3/2/2/7/15
+4/2/2/3/1/3/31 4/3/2/2/0/15 4/3/2/2/1/15 4/3/2/2/2/15 4/3/2/2/5/15 4/3/2/2/6/15
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours.dat
new file mode 100755
index 0000000000000000000000000000000000000000..da3b47dff56d4293f23a16239878eb8874d265da
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours.dat
@@ -0,0 +1,781 @@
+# File and Version Information:
+# $Id: SuperCaloNeighbours.dat,v 1.1 2004-05-04 17:29:11 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Tue May 04 18:52:50 2004
+#
+# ranges of expanded calorimeter identifiers are mapped to create lookup
+# tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges.
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EMB3/TILEB 4/1/-1,1/3/0/0:19/0:255 5/1/-1,1/0:63/0:9/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/0/0 5/1/1/0/0/0 
+4/1/1/3/0/1/0 5/1/1/0/0/0
+4/1/1/3/0/2/0 5/1/1/0/1/0
+4/1/1/3/0/3/0 5/1/1/0/1/0
+4/1/1/3/0/4/0 5/1/1/0/2/0
+4/1/1/3/0/5/0 5/1/1/0/2/0
+4/1/1/3/0/6/0 5/1/1/0/3/0
+4/1/1/3/0/7/0 5/1/1/0/3/0
+4/1/1/3/0/8/0 5/1/1/0/4/0
+4/1/1/3/0/9/0 5/1/1/0/4/0
+4/1/1/3/0/10/0 5/1/1/0/5/0
+4/1/1/3/0/11/0 5/1/1/0/5/0
+4/1/1/3/0/12/0 5/1/1/0/6/0
+4/1/1/3/0/13/0 5/1/1/0/6/0
+4/1/1/3/0/14/0 5/1/1/0/7/0
+4/1/1/3/0/15/0 5/1/1/0/7/0
+4/1/1/3/0/16/0 5/1/1/0/8/0
+4/1/1/3/0/17/0 5/1/1/0/8/0
+4/1/1/3/0/18/0 5/1/1/0/9/0
+4/1/1/3/0/19/0 5/1/1/0/9/0
+
+prevSuperCalo TILEB/EMB3 5/1/-1,1/0:63/0:9/0 4/1/-1,1/3/0/0:19/0:255 calcSide(2,2) calcPhi(3,6)
+5/1/1/0/0/0 4/1/1/3/0/0/0 4/1/1/3/0/0/1 4/1/1/3/0/0/2 4/1/1/3/0/0/3 4/1/1/3/0/1/0 4/1/1/3/0/1/1 4/1/1/3/0/1/2 4/1/1/3/0/1/3 
+5/1/1/0/1/0 4/1/1/3/0/2/0 4/1/1/3/0/2/1 4/1/1/3/0/2/2 4/1/1/3/0/2/3 4/1/1/3/0/3/0 4/1/1/3/0/3/1 4/1/1/3/0/3/2 4/1/1/3/0/3/3 
+5/1/1/0/2/0 4/1/1/3/0/4/0 4/1/1/3/0/4/1 4/1/1/3/0/4/2 4/1/1/3/0/4/3 4/1/1/3/0/5/0 4/1/1/3/0/5/1 4/1/1/3/0/5/2 4/1/1/3/0/5/3 
+5/1/1/0/3/0 4/1/1/3/0/6/0 4/1/1/3/0/6/1 4/1/1/3/0/6/2 4/1/1/3/0/6/3 4/1/1/3/0/7/0 4/1/1/3/0/7/1 4/1/1/3/0/7/2 4/1/1/3/0/7/3 
+5/1/1/0/4/0 4/1/1/3/0/8/0 4/1/1/3/0/8/1 4/1/1/3/0/8/2 4/1/1/3/0/8/3 4/1/1/3/0/9/0 4/1/1/3/0/9/1 4/1/1/3/0/9/2 4/1/1/3/0/9/3 
+5/1/1/0/5/0 4/1/1/3/0/10/0 4/1/1/3/0/10/1 4/1/1/3/0/10/2 4/1/1/3/0/10/3 4/1/1/3/0/11/0 4/1/1/3/0/11/1 4/1/1/3/0/11/2 4/1/1/3/0/11/3 
+5/1/1/0/6/0 4/1/1/3/0/12/0 4/1/1/3/0/12/1 4/1/1/3/0/12/2 4/1/1/3/0/12/3 4/1/1/3/0/13/0 4/1/1/3/0/13/1 4/1/1/3/0/13/2 4/1/1/3/0/13/3 
+5/1/1/0/7/0 4/1/1/3/0/14/0 4/1/1/3/0/14/1 4/1/1/3/0/14/2 4/1/1/3/0/14/3 4/1/1/3/0/15/0 4/1/1/3/0/15/1 4/1/1/3/0/15/2 4/1/1/3/0/15/3 
+5/1/1/0/8/0 4/1/1/3/0/16/0 4/1/1/3/0/16/1 4/1/1/3/0/16/2 4/1/1/3/0/16/3 4/1/1/3/0/17/0 4/1/1/3/0/17/1 4/1/1/3/0/17/2 4/1/1/3/0/17/3 
+5/1/1/0/9/0 4/1/1/3/0/18/0 4/1/1/3/0/18/1 4/1/1/3/0/18/2 4/1/1/3/0/18/3 4/1/1/3/0/19/0 4/1/1/3/0/19/1 4/1/1/3/0/19/2 4/1/1/3/0/19/3 
+
+nextSuperCalo EMB3/TILEG 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 5/3/-1,1/0:63/10,11,13/3 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/20/0 5/3/1/0/10/3
+4/1/1/3/0/21/0 5/3/1/0/10/3
+4/1/1/3/0/22/0 5/3/1/0/11/3
+4/1/1/3/0/23/0 5/3/1/0/11/3
+4/1/1/3/0/25/0 5/3/1/0/13/3
+4/1/1/3/0/26/0 5/3/1/0/13/3
+
+prevSuperCalo TILEG/EMB3 5/3/-1,1/0:63/10,11,13/3 4/1/-1,1/3/0/20,21,22,23,25,26/0:255 calcSide(2,2) calcPhi(3,6)
+5/3/1/0/10/3 4/1/1/3/0/20/0 4/1/1/3/0/20/1 4/1/1/3/0/20/2 4/1/1/3/0/20/3 4/1/1/3/0/21/0 4/1/1/3/0/21/1 4/1/1/3/0/21/2 4/1/1/3/0/21/3 
+5/3/1/0/11/3 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/3/1/0/13/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EMB3/TILEE 4/1/-1,1/3/0/22:26/0:255 5/2/-1,1/0:63/11:13/0 calcSide(2,2) calcPhi(6,3)
+4/1/1/3/0/22/0 5/2/1/0/11/0 
+4/1/1/3/0/23/0 5/2/1/0/11/0 
+4/1/1/3/0/24/0 5/2/1/0/12/0
+4/1/1/3/0/25/0 5/2/1/0/12/0 
+4/1/1/3/0/26/0 5/2/1/0/13/0 
+
+prevSuperCalo TILEE/EMB3 5/2/-1,1/0:63/11:13/0 4/1/-1,1/3/0/22:26/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/11/0 4/1/1/3/0/22/0 4/1/1/3/0/22/1 4/1/1/3/0/22/2 4/1/1/3/0/22/3 4/1/1/3/0/23/0 4/1/1/3/0/23/1 4/1/1/3/0/23/2 4/1/1/3/0/23/3 
+5/2/1/0/12/0 4/1/1/3/0/24/0 4/1/1/3/0/24/1 4/1/1/3/0/24/2 4/1/1/3/0/24/3 4/1/1/3/0/25/0 4/1/1/3/0/25/1 4/1/1/3/0/25/2 4/1/1/3/0/25/3 
+5/2/1/0/13/0 4/1/1/3/0/26/0 4/1/1/3/0/26/1 4/1/1/3/0/26/2 4/1/1/3/0/26/3 
+
+nextSuperCalo EME2OW0/TILEE 4/1/-2,2/2/0/0/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/0/0/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW0 5/2/-1,1/0:63/14/0 4/1/-2,2/2/0/0/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/0/0/0 4/1/2/2/0/0/1 4/1/2/2/0/0/2 4/1/2/2/0/0/3
+
+nextSuperCalo EME2OW1/TILEE 4/1/-2,2/2/1/0:2/0:255 5/2/-1,1/0:63/14/0 calcSide(2,2) calcPhi(6,3)
+4/1/2/2/1/0/0 5/2/1/0/14/0
+4/1/2/2/1/1/0 5/2/1/0/14/0
+4/1/2/2/1/2/0 5/2/1/0/14/0
+
+prevSuperCalo TILEE/EME2OW1 5/2/-1,1/0:63/14/0 4/1/-2,2/2/1/0:2/0:255 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/14/0 4/1/2/2/1/0/0 4/1/2/2/1/1/0 4/1/2/2/1/2/0 4/1/2/2/1/0/1 4/1/2/2/1/1/1 4/1/2/2/1/2/1 4/1/2/2/1/0/2 4/1/2/2/1/1/2 4/1/2/2/1/2/2 4/1/2/2/1/0/3 4/1/2/2/1/1/3 4/1/2/2/1/2/3 
+
+nextSuperCalo EME3OW/HEC00 4/1/-2,2/3/0/0:19/0:255 4/2/-2,2/0/0/0:9/0:63 calcSide(2,2) calcPhi(6,6)
+4/1/2/3/0/0/0 4/2/2/0/0/0/0
+4/1/2/3/0/1/0 4/2/2/0/0/0/0
+4/1/2/3/0/2/0 4/2/2/0/0/1/0
+4/1/2/3/0/3/0 4/2/2/0/0/1/0
+4/1/2/3/0/4/0 4/2/2/0/0/2/0
+4/1/2/3/0/5/0 4/2/2/0/0/2/0
+4/1/2/3/0/6/0 4/2/2/0/0/3/0
+4/1/2/3/0/7/0 4/2/2/0/0/3/0
+4/1/2/3/0/8/0 4/2/2/0/0/4/0
+4/1/2/3/0/9/0 4/2/2/0/0/4/0
+4/1/2/3/0/10/0 4/2/2/0/0/5/0
+4/1/2/3/0/11/0 4/2/2/0/0/5/0
+4/1/2/3/0/12/0 4/2/2/0/0/6/0
+4/1/2/3/0/13/0 4/2/2/0/0/6/0
+4/1/2/3/0/14/0 4/2/2/0/0/7/0
+4/1/2/3/0/15/0 4/2/2/0/0/7/0
+4/1/2/3/0/16/0 4/2/2/0/0/8/0
+4/1/2/3/0/17/0 4/2/2/0/0/8/0
+4/1/2/3/0/18/0 4/2/2/0/0/9/0
+4/1/2/3/0/19/0 4/2/2/0/0/9/0
+
+prevSuperCalo HEC00/EME3OW 4/2/-2,2/0/0/0:9/0:63 4/1/-2,2/3/0/0:19/0:255 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/0/0/0 4/1/2/3/0/0/0 4/1/2/3/0/0/1 4/1/2/3/0/0/2 4/1/2/3/0/0/3 4/1/2/3/0/1/0 4/1/2/3/0/1/1 4/1/2/3/0/1/2 4/1/2/3/0/1/3 
+4/2/2/0/0/1/0 4/1/2/3/0/2/0 4/1/2/3/0/2/1 4/1/2/3/0/2/2 4/1/2/3/0/2/3 4/1/2/3/0/3/0 4/1/2/3/0/3/1 4/1/2/3/0/3/2 4/1/2/3/0/3/3 
+4/2/2/0/0/2/0 4/1/2/3/0/4/0 4/1/2/3/0/4/1 4/1/2/3/0/4/2 4/1/2/3/0/4/3 4/1/2/3/0/5/0 4/1/2/3/0/5/1 4/1/2/3/0/5/2 4/1/2/3/0/5/3 
+4/2/2/0/0/3/0 4/1/2/3/0/6/0 4/1/2/3/0/6/1 4/1/2/3/0/6/2 4/1/2/3/0/6/3 4/1/2/3/0/7/0 4/1/2/3/0/7/1 4/1/2/3/0/7/2 4/1/2/3/0/7/3 
+4/2/2/0/0/4/0 4/1/2/3/0/8/0 4/1/2/3/0/8/1 4/1/2/3/0/8/2 4/1/2/3/0/8/3 4/1/2/3/0/9/0 4/1/2/3/0/9/1 4/1/2/3/0/9/2 4/1/2/3/0/9/3 
+4/2/2/0/0/5/0 4/1/2/3/0/10/0 4/1/2/3/0/10/1 4/1/2/3/0/10/2 4/1/2/3/0/10/3 4/1/2/3/0/11/0 4/1/2/3/0/11/1 4/1/2/3/0/11/2 4/1/2/3/0/11/3 
+4/2/2/0/0/6/0 4/1/2/3/0/12/0 4/1/2/3/0/12/1 4/1/2/3/0/12/2 4/1/2/3/0/12/3 4/1/2/3/0/13/0 4/1/2/3/0/13/1 4/1/2/3/0/13/2 4/1/2/3/0/13/3 
+4/2/2/0/0/7/0 4/1/2/3/0/14/0 4/1/2/3/0/14/1 4/1/2/3/0/14/2 4/1/2/3/0/14/3 4/1/2/3/0/15/0 4/1/2/3/0/15/1 4/1/2/3/0/15/2 4/1/2/3/0/15/3 
+4/2/2/0/0/8/0 4/1/2/3/0/16/0 4/1/2/3/0/16/1 4/1/2/3/0/16/2 4/1/2/3/0/16/3 4/1/2/3/0/17/0 4/1/2/3/0/17/1 4/1/2/3/0/17/2 4/1/2/3/0/17/3 
+4/2/2/0/0/9/0 4/1/2/3/0/18/0 4/1/2/3/0/18/1 4/1/2/3/0/18/2 4/1/2/3/0/18/3 4/1/2/3/0/19/0 4/1/2/3/0/19/1 4/1/2/3/0/19/2 4/1/2/3/0/19/3 
+
+nextSuperCalo EME2IW/HEC01 4/1/-3,3/2/0/0:6/0:63 4/2/-2,2/0/1/0:3/0:31 calcSide(2,2) calcPhi(6,6)
+4/1/3/2/0/0/0 4/2/2/0/1/0/0
+4/1/3/2/0/1/0 4/2/2/0/1/0/0
+4/1/3/2/0/2/0 4/2/2/0/1/1/0
+4/1/3/2/0/3/0 4/2/2/0/1/1/0
+4/1/3/2/0/4/0 4/2/2/0/1/2/0
+4/1/3/2/0/5/0 4/2/2/0/1/2/0
+4/1/3/2/0/6/0 4/2/2/0/1/3/0
+
+prevSuperCalo HEC01/EME2IW 4/2/-2,2/0/1/0:3/0:31 4/1/-3,3/2/0/0:6/0:63 calcSide(2,2) calcPhi(6,6)
+4/2/2/0/1/0/0 4/1/3/2/0/0/0 4/1/3/2/0/0/1 4/1/3/2/0/1/0 4/1/3/2/0/1/1
+4/2/2/0/1/1/0 4/1/3/2/0/2/0 4/1/3/2/0/2/1 4/1/3/2/0/3/0 4/1/3/2/0/3/1
+4/2/2/0/1/2/0 4/1/3/2/0/4/0 4/1/3/2/0/4/1 4/1/3/2/0/5/0 4/1/3/2/0/5/1
+4/2/2/0/1/3/0 4/1/3/2/0/6/0 4/1/3/2/0/6/1
+
+nextSuperCalo HEC00/TILEE 4/2/-2,2/0/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/0/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo TILEE/HEC00 5/2/-1,1/0:63/15/0 4/2/-2,2/0/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/0/0/0/0 
+
+nextSuperCalo HEC01/FCAL1 4/2/-2,2/0/1/2:3/0:31 4/3/-2,2/1/0:24/0:15 calcSide(2,2)
+4/2/2/0/1/2/1 4/3/2/1/0/0
+4/2/2/0/1/2/2 4/3/2/1/0/1
+4/2/2/0/1/2/3 4/3/2/1/1/1
+4/2/2/0/1/2/5 4/3/2/1/0/2
+4/2/2/0/1/2/6 4/3/2/1/1/3 4/3/2/1/2/3
+4/2/2/0/1/2/7 4/3/2/1/0/3
+4/2/2/0/1/2/8 4/3/2/1/0/4
+4/2/2/0/1/2/9 4/3/2/1/1/4
+4/2/2/0/1/2/11 4/3/2/1/0/5
+4/2/2/0/1/2/12 4/3/2/1/0/6
+4/2/2/0/1/2/13 4/3/2/1/1/6
+4/2/2/0/1/2/14 4/3/2/1/0/7
+4/2/2/0/1/2/17 4/3/2/1/0/8
+4/2/2/0/1/2/18 4/3/2/1/0/9
+4/2/2/0/1/2/19 4/3/2/1/1/9
+4/2/2/0/1/2/21 4/3/2/1/0/10
+4/2/2/0/1/2/22 4/3/2/1/1/11 4/3/2/1/2/11
+4/2/2/0/1/2/23 4/3/2/1/0/11
+4/2/2/0/1/2/24 4/3/2/1/0/12
+4/2/2/0/1/2/25 4/3/2/1/1/12 4/3/2/1/2/12
+4/2/2/0/1/2/27 4/3/2/1/0/13
+4/2/2/0/1/2/28 4/3/2/1/0/14
+4/2/2/0/1/2/29 4/3/2/1/1/14
+4/2/2/0/1/2/30 4/3/2/1/0/15
+4/2/2/0/1/3/0 4/3/2/1/1/0 4/3/2/1/2/0 4/3/2/1/4/0 4/3/2/1/6/0 4/3/2/1/9/0 4/3/2/1/10/0 4/3/2/1/11/0 4/3/2/1/12/0 4/3/2/1/15/0 4/3/2/1/16/0 4/3/2/1/17/0 4/3/2/1/21/0 4/3/2/1/22/0 4/3/2/1/23/0
+4/2/2/0/1/3/1 4/3/2/1/3/0 4/3/2/1/5/0 4/3/2/1/7/0 4/3/2/1/8/0 4/3/2/1/13/0 4/3/2/1/14/0 4/3/2/1/18/0 4/3/2/1/19/0 4/3/2/1/20/0 4/3/2/1/21/1 4/3/2/1/24/0
+4/2/2/0/1/3/2 4/3/2/1/2/1 4/3/2/1/3/1 4/3/2/1/5/1 4/3/2/1/7/1 4/3/2/1/9/1 4/3/2/1/11/1 4/3/2/1/13/1 4/3/2/1/14/1 4/3/2/1/16/1 4/3/2/1/19/1 4/3/2/1/22/1
+4/2/2/0/1/3/3 4/3/2/1/4/1 4/3/2/1/6/1 4/3/2/1/8/1 4/3/2/1/10/1 4/3/2/1/12/1 4/3/2/1/15/1 4/3/2/1/17/1 4/3/2/1/18/1 4/3/2/1/20/1
+4/2/2/0/1/3/4 4/3/2/1/1/2 4/3/2/1/3/2 4/3/2/1/6/2 4/3/2/1/7/2 4/3/2/1/8/2 4/3/2/1/11/2 4/3/2/1/12/2 4/3/2/1/15/2 4/3/2/1/16/2 4/3/2/1/19/2 4/3/2/1/20/2
+4/2/2/0/1/3/5 4/3/2/1/2/2 4/3/2/1/4/2 4/3/2/1/5/2 4/3/2/1/9/2 4/3/2/1/10/2 4/3/2/1/13/2 4/3/2/1/14/2 4/3/2/1/17/2 4/3/2/1/18/2 4/3/2/1/21/2
+4/2/2/0/1/3/6 4/3/2/1/3/3 4/3/2/1/4/3 4/3/2/1/5/3 4/3/2/1/10/3 4/3/2/1/11/3 4/3/2/1/15/3 4/3/2/1/16/3 4/3/2/1/17/3 4/3/2/1/20/3 4/3/2/1/21/3
+4/2/2/0/1/3/7 4/3/2/1/6/3 4/3/2/1/7/3 4/3/2/1/8/3 4/3/2/1/9/3 4/3/2/1/12/3 4/3/2/1/13/3 4/3/2/1/14/3 4/3/2/1/18/3 4/3/2/1/19/3
+4/2/2/0/1/3/8 4/3/2/1/5/4 4/3/2/1/6/4 4/3/2/1/7/4 4/3/2/1/9/4 4/3/2/1/12/4 4/3/2/1/13/4 4/3/2/1/14/4 4/3/2/1/18/4 4/3/2/1/19/4
+4/2/2/0/1/3/9 4/3/2/1/2/4 4/3/2/1/3/4 4/3/2/1/4/4 4/3/2/1/8/4 4/3/2/1/10/4 4/3/2/1/11/4 4/3/2/1/15/4 4/3/2/1/16/4 4/3/2/1/17/4 4/3/2/1/20/4 4/3/2/1/21/4
+4/2/2/0/1/3/10 4/3/2/1/1/5 4/3/2/1/2/5 4/3/2/1/4/5 4/3/2/1/5/5 4/3/2/1/7/5 4/3/2/1/10/5 4/3/2/1/11/5 4/3/2/1/14/5 4/3/2/1/15/5 4/3/2/1/18/5 4/3/2/1/19/5 4/3/2/1/22/5
+4/2/2/0/1/3/11 4/3/2/1/3/5 4/3/2/1/6/5 4/3/2/1/8/5 4/3/2/1/9/5 4/3/2/1/12/5 4/3/2/1/13/5 4/3/2/1/16/5 4/3/2/1/17/5 4/3/2/1/20/5 4/3/2/1/21/5
+4/2/2/0/1/3/12 4/3/2/1/4/6 4/3/2/1/6/6 4/3/2/1/8/6 4/3/2/1/10/6 4/3/2/1/12/6 4/3/2/1/15/6 4/3/2/1/17/6 4/3/2/1/18/6 4/3/2/1/20/6
+4/2/2/0/1/3/13 4/3/2/1/2/6 4/3/2/1/3/6 4/3/2/1/5/6 4/3/2/1/7/6 4/3/2/1/9/6 4/3/2/1/11/6 4/3/2/1/13/6 4/3/2/1/14/6 4/3/2/1/16/6 4/3/2/1/19/6 4/3/2/1/22/6
+4/2/2/0/1/3/14 4/3/2/1/4/7 4/3/2/1/7/7 4/3/2/1/8/7 4/3/2/1/12/7 4/3/2/1/13/7 4/3/2/1/17/7 4/3/2/1/18/7 4/3/2/1/19/7 4/3/2/1/21/6 4/3/2/1/23/7
+4/2/2/0/1/3/15 4/3/2/1/1/7 4/3/2/1/2/7 4/3/2/1/3/7 4/3/2/1/5/7 4/3/2/1/6/7 4/3/2/1/9/7 4/3/2/1/10/7 4/3/2/1/11/7 4/3/2/1/14/7 4/3/2/1/15/7 4/3/2/1/16/7 4/3/2/1/20/7 4/3/2/1/21/7 4/3/2/1/22/7
+4/2/2/0/1/3/16 4/3/2/1/1/8 4/3/2/1/2/8 4/3/2/1/4/8 4/3/2/1/6/8 4/3/2/1/9/8 4/3/2/1/10/8 4/3/2/1/11/8 4/3/2/1/12/8 4/3/2/1/15/8 4/3/2/1/16/8 4/3/2/1/17/8 4/3/2/1/21/8 4/3/2/1/22/8 4/3/2/1/23/8
+4/2/2/0/1/3/17 4/3/2/1/3/8 4/3/2/1/5/8 4/3/2/1/7/8 4/3/2/1/8/8 4/3/2/1/13/8 4/3/2/1/14/8 4/3/2/1/18/8 4/3/2/1/19/8 4/3/2/1/20/8 4/3/2/1/21/9 4/3/2/1/24/8
+4/2/2/0/1/3/18 4/3/2/1/2/9 4/3/2/1/3/9 4/3/2/1/5/9 4/3/2/1/7/9 4/3/2/1/9/9 4/3/2/1/11/9 4/3/2/1/13/9 4/3/2/1/14/9 4/3/2/1/16/9 4/3/2/1/19/9 4/3/2/1/22/9
+4/2/2/0/1/3/19 4/3/2/1/4/9 4/3/2/1/6/9 4/3/2/1/8/9 4/3/2/1/10/9 4/3/2/1/12/9 4/3/2/1/15/9 4/3/2/1/17/9 4/3/2/1/18/9 4/3/2/1/20/9
+4/2/2/0/1/3/20 4/3/2/1/1/10 4/3/2/1/3/10 4/3/2/1/6/10 4/3/2/1/7/10 4/3/2/1/8/10 4/3/2/1/11/10 4/3/2/1/12/10 4/3/2/1/15/10 4/3/2/1/16/10 4/3/2/1/19/10 4/3/2/1/20/10
+4/2/2/0/1/3/21 4/3/2/1/2/10 4/3/2/1/4/10 4/3/2/1/5/10 4/3/2/1/9/10 4/3/2/1/10/10 4/3/2/1/13/10 4/3/2/1/14/10 4/3/2/1/17/10 4/3/2/1/18/10 4/3/2/1/21/10
+4/2/2/0/1/3/22 4/3/2/1/3/11 4/3/2/1/4/11 4/3/2/1/5/11 4/3/2/1/10/11 4/3/2/1/11/11 4/3/2/1/15/11 4/3/2/1/16/11 4/3/2/1/17/11 4/3/2/1/20/11 4/3/2/1/21/11
+4/2/2/0/1/3/23 4/3/2/1/6/11 4/3/2/1/7/11 4/3/2/1/8/11 4/3/2/1/9/11 4/3/2/1/12/11 4/3/2/1/13/11 4/3/2/1/14/11 4/3/2/1/18/11 4/3/2/1/19/11
+4/2/2/0/1/3/24 4/3/2/1/5/12 4/3/2/1/6/12 4/3/2/1/7/12 4/3/2/1/9/12 4/3/2/1/12/12 4/3/2/1/13/12 4/3/2/1/14/12 4/3/2/1/18/12 4/3/2/1/19/12
+4/2/2/0/1/3/25 4/3/2/1/3/12 4/3/2/1/4/12 4/3/2/1/8/12 4/3/2/1/10/12 4/3/2/1/11/12 4/3/2/1/15/12 4/3/2/1/16/12 4/3/2/1/17/12 4/3/2/1/20/12 4/3/2/1/21/12
+4/2/2/0/1/3/26 4/3/2/1/1/13 4/3/2/1/2/13 4/3/2/1/4/13 4/3/2/1/5/13 4/3/2/1/7/13 4/3/2/1/10/13 4/3/2/1/11/13 4/3/2/1/14/13 4/3/2/1/15/13 4/3/2/1/18/13 4/3/2/1/19/13 4/3/2/1/22/13
+4/2/2/0/1/3/27 4/3/2/1/3/13 4/3/2/1/6/13 4/3/2/1/8/13 4/3/2/1/9/13 4/3/2/1/12/13 4/3/2/1/13/13 4/3/2/1/16/13 4/3/2/1/17/13 4/3/2/1/20/13 4/3/2/1/21/13
+4/2/2/0/1/3/28 4/3/2/1/4/14 4/3/2/1/6/14 4/3/2/1/8/14 4/3/2/1/10/14 4/3/2/1/12/14 4/3/2/1/15/14 4/3/2/1/17/14 4/3/2/1/18/14 4/3/2/1/20/14
+4/2/2/0/1/3/29 4/3/2/1/2/14 4/3/2/1/3/14 4/3/2/1/5/14 4/3/2/1/7/14 4/3/2/1/9/14 4/3/2/1/11/14 4/3/2/1/13/14 4/3/2/1/14/14 4/3/2/1/16/14 4/3/2/1/19/14 4/3/2/1/22/14
+4/2/2/0/1/3/30 4/3/2/1/4/15 4/3/2/1/7/15 4/3/2/1/8/15 4/3/2/1/12/15 4/3/2/1/13/15 4/3/2/1/17/15 4/3/2/1/18/15 4/3/2/1/19/15 4/3/2/1/21/14 4/3/2/1/23/15
+4/2/2/0/1/3/31 4/3/2/1/1/15 4/3/2/1/2/15 4/3/2/1/3/15 4/3/2/1/5/15 4/3/2/1/6/15 4/3/2/1/9/15 4/3/2/1/10/15 4/3/2/1/11/15 4/3/2/1/14/15 4/3/2/1/15/15 4/3/2/1/16/15 4/3/2/1/20/15 4/3/2/1/21/15 4/3/2/1/22/15
+
+prevSuperCalo FCAL1/HEC01 4/3/-2,2/1/0:24/0:15 4/2/-2,2/0/1/2:3/0:31 calcSide(2,2)
+4/3/2/1/0/0 4/2/2/0/1/2/1 
+4/3/2/1/0/1 4/2/2/0/1/2/2 
+4/3/2/1/1/1 4/2/2/0/1/2/3 
+4/3/2/1/0/2 4/2/2/0/1/2/5 
+4/3/2/1/1/3 4/2/2/0/1/2/6  
+4/3/2/1/2/3 4/2/2/0/1/2/6 
+4/3/2/1/0/3 4/2/2/0/1/2/7 
+4/3/2/1/0/4 4/2/2/0/1/2/8 
+4/3/2/1/1/4 4/2/2/0/1/2/9 
+4/3/2/1/0/5 4/2/2/0/1/2/11 
+4/3/2/1/0/6 4/2/2/0/1/2/12 
+4/3/2/1/1/6 4/2/2/0/1/2/13 
+4/3/2/1/0/7 4/2/2/0/1/2/14 
+4/3/2/1/0/8 4/2/2/0/1/2/17 
+4/3/2/1/0/9 4/2/2/0/1/2/18 
+4/3/2/1/1/9 4/2/2/0/1/2/19 
+4/3/2/1/0/10 4/2/2/0/1/2/21 
+4/3/2/1/1/11 4/2/2/0/1/2/22  
+4/3/2/1/2/11 4/2/2/0/1/2/22 
+4/3/2/1/0/11 4/2/2/0/1/2/23 
+4/3/2/1/0/12 4/2/2/0/1/2/24 
+4/3/2/1/1/12 4/2/2/0/1/2/25 
+4/3/2/1/2/12 4/2/2/0/1/2/25 
+4/3/2/1/0/13 4/2/2/0/1/2/27 
+4/3/2/1/0/14 4/2/2/0/1/2/28 
+4/3/2/1/1/14 4/2/2/0/1/2/29 
+4/3/2/1/0/15 4/2/2/0/1/2/30 
+4/3/2/1/1/0 4/2/2/0/1/3/0 
+4/3/2/1/2/0 4/2/2/0/1/3/0 
+4/3/2/1/4/0 4/2/2/0/1/3/0 
+4/3/2/1/6/0 4/2/2/0/1/3/0 
+4/3/2/1/9/0 4/2/2/0/1/3/0 
+4/3/2/1/10/0 4/2/2/0/1/3/0 
+4/3/2/1/11/0 4/2/2/0/1/3/0 
+4/3/2/1/12/0 4/2/2/0/1/3/0 
+4/3/2/1/15/0 4/2/2/0/1/3/0 
+4/3/2/1/16/0 4/2/2/0/1/3/0 
+4/3/2/1/17/0 4/2/2/0/1/3/0 
+4/3/2/1/21/0 4/2/2/0/1/3/0 
+4/3/2/1/22/0 4/2/2/0/1/3/0 
+4/3/2/1/23/0 4/2/2/0/1/3/0 
+4/3/2/1/3/0 4/2/2/0/1/3/1 
+4/3/2/1/5/0 4/2/2/0/1/3/1 
+4/3/2/1/7/0 4/2/2/0/1/3/1 
+4/3/2/1/8/0 4/2/2/0/1/3/1 
+4/3/2/1/13/0 4/2/2/0/1/3/1 
+4/3/2/1/14/0 4/2/2/0/1/3/1 
+4/3/2/1/18/0 4/2/2/0/1/3/1 
+4/3/2/1/19/0 4/2/2/0/1/3/1 
+4/3/2/1/20/0 4/2/2/0/1/3/1 
+4/3/2/1/21/1 4/2/2/0/1/3/1 
+4/3/2/1/24/0 4/2/2/0/1/3/1 
+4/3/2/1/2/1 4/2/2/0/1/3/2 
+4/3/2/1/3/1 4/2/2/0/1/3/2 
+4/3/2/1/5/1 4/2/2/0/1/3/2 
+4/3/2/1/7/1 4/2/2/0/1/3/2 
+4/3/2/1/9/1 4/2/2/0/1/3/2 
+4/3/2/1/11/1 4/2/2/0/1/3/2 
+4/3/2/1/13/1 4/2/2/0/1/3/2 
+4/3/2/1/14/1 4/2/2/0/1/3/2 
+4/3/2/1/16/1 4/2/2/0/1/3/2 
+4/3/2/1/19/1 4/2/2/0/1/3/2 
+4/3/2/1/22/1 4/2/2/0/1/3/2 
+4/3/2/1/4/1 4/2/2/0/1/3/3 
+4/3/2/1/6/1 4/2/2/0/1/3/3 
+4/3/2/1/8/1 4/2/2/0/1/3/3 
+4/3/2/1/10/1 4/2/2/0/1/3/3 
+4/3/2/1/12/1 4/2/2/0/1/3/3 
+4/3/2/1/15/1 4/2/2/0/1/3/3 
+4/3/2/1/17/1 4/2/2/0/1/3/3 
+4/3/2/1/18/1 4/2/2/0/1/3/3 
+4/3/2/1/20/1 4/2/2/0/1/3/3 
+4/3/2/1/1/2 4/2/2/0/1/3/4 
+4/3/2/1/3/2 4/2/2/0/1/3/4 
+4/3/2/1/6/2 4/2/2/0/1/3/4 
+4/3/2/1/7/2 4/2/2/0/1/3/4 
+4/3/2/1/8/2 4/2/2/0/1/3/4 
+4/3/2/1/11/2 4/2/2/0/1/3/4 
+4/3/2/1/12/2 4/2/2/0/1/3/4 
+4/3/2/1/15/2 4/2/2/0/1/3/4 
+4/3/2/1/16/2 4/2/2/0/1/3/4 
+4/3/2/1/19/2 4/2/2/0/1/3/4 
+4/3/2/1/20/2 4/2/2/0/1/3/4 
+4/3/2/1/2/2 4/2/2/0/1/3/5 
+4/3/2/1/4/2 4/2/2/0/1/3/5 
+4/3/2/1/5/2 4/2/2/0/1/3/5 
+4/3/2/1/9/2 4/2/2/0/1/3/5 
+4/3/2/1/10/2 4/2/2/0/1/3/5 
+4/3/2/1/13/2 4/2/2/0/1/3/5 
+4/3/2/1/14/2 4/2/2/0/1/3/5 
+4/3/2/1/17/2 4/2/2/0/1/3/5 
+4/3/2/1/18/2 4/2/2/0/1/3/5 
+4/3/2/1/21/2 4/2/2/0/1/3/5 
+4/3/2/1/3/3 4/2/2/0/1/3/6 
+4/3/2/1/4/3 4/2/2/0/1/3/6 
+4/3/2/1/5/3 4/2/2/0/1/3/6 
+4/3/2/1/10/3 4/2/2/0/1/3/6 
+4/3/2/1/11/3 4/2/2/0/1/3/6 
+4/3/2/1/15/3 4/2/2/0/1/3/6 
+4/3/2/1/16/3 4/2/2/0/1/3/6 
+4/3/2/1/17/3 4/2/2/0/1/3/6 
+4/3/2/1/20/3 4/2/2/0/1/3/6 
+4/3/2/1/21/3 4/2/2/0/1/3/6 
+4/3/2/1/6/3 4/2/2/0/1/3/7 
+4/3/2/1/7/3 4/2/2/0/1/3/7 
+4/3/2/1/8/3 4/2/2/0/1/3/7 
+4/3/2/1/9/3 4/2/2/0/1/3/7 
+4/3/2/1/12/3 4/2/2/0/1/3/7 
+4/3/2/1/13/3 4/2/2/0/1/3/7 
+4/3/2/1/14/3 4/2/2/0/1/3/7 
+4/3/2/1/18/3 4/2/2/0/1/3/7 
+4/3/2/1/19/3 4/2/2/0/1/3/7 
+4/3/2/1/5/4 4/2/2/0/1/3/8 
+4/3/2/1/6/4 4/2/2/0/1/3/8 
+4/3/2/1/7/4 4/2/2/0/1/3/8 
+4/3/2/1/9/4 4/2/2/0/1/3/8 
+4/3/2/1/12/4 4/2/2/0/1/3/8 
+4/3/2/1/13/4 4/2/2/0/1/3/8 
+4/3/2/1/14/4 4/2/2/0/1/3/8 
+4/3/2/1/18/4 4/2/2/0/1/3/8 
+4/3/2/1/19/4 4/2/2/0/1/3/8 
+4/3/2/1/2/4 4/2/2/0/1/3/9 
+4/3/2/1/3/4 4/2/2/0/1/3/9 
+4/3/2/1/4/4 4/2/2/0/1/3/9 
+4/3/2/1/8/4 4/2/2/0/1/3/9 
+4/3/2/1/10/4 4/2/2/0/1/3/9 
+4/3/2/1/11/4 4/2/2/0/1/3/9 
+4/3/2/1/15/4 4/2/2/0/1/3/9 
+4/3/2/1/16/4 4/2/2/0/1/3/9 
+4/3/2/1/17/4 4/2/2/0/1/3/9 
+4/3/2/1/20/4 4/2/2/0/1/3/9 
+4/3/2/1/21/4 4/2/2/0/1/3/9 
+4/3/2/1/1/5 4/2/2/0/1/3/10 
+4/3/2/1/2/5 4/2/2/0/1/3/10 
+4/3/2/1/4/5 4/2/2/0/1/3/10 
+4/3/2/1/5/5 4/2/2/0/1/3/10 
+4/3/2/1/7/5 4/2/2/0/1/3/10 
+4/3/2/1/10/5 4/2/2/0/1/3/10 
+4/3/2/1/11/5 4/2/2/0/1/3/10 
+4/3/2/1/14/5 4/2/2/0/1/3/10 
+4/3/2/1/15/5 4/2/2/0/1/3/10 
+4/3/2/1/18/5 4/2/2/0/1/3/10 
+4/3/2/1/19/5 4/2/2/0/1/3/10 
+4/3/2/1/22/5 4/2/2/0/1/3/10 
+4/3/2/1/3/5 4/2/2/0/1/3/11 
+4/3/2/1/6/5 4/2/2/0/1/3/11 
+4/3/2/1/8/5 4/2/2/0/1/3/11 
+4/3/2/1/9/5 4/2/2/0/1/3/11 
+4/3/2/1/12/5 4/2/2/0/1/3/11 
+4/3/2/1/13/5 4/2/2/0/1/3/11 
+4/3/2/1/16/5 4/2/2/0/1/3/11 
+4/3/2/1/17/5 4/2/2/0/1/3/11 
+4/3/2/1/20/5 4/2/2/0/1/3/11 
+4/3/2/1/21/5 4/2/2/0/1/3/11 
+4/3/2/1/4/6 4/2/2/0/1/3/12 
+4/3/2/1/6/6 4/2/2/0/1/3/12 
+4/3/2/1/8/6 4/2/2/0/1/3/12 
+4/3/2/1/10/6 4/2/2/0/1/3/12 
+4/3/2/1/12/6 4/2/2/0/1/3/12 
+4/3/2/1/15/6 4/2/2/0/1/3/12 
+4/3/2/1/17/6 4/2/2/0/1/3/12 
+4/3/2/1/18/6 4/2/2/0/1/3/12 
+4/3/2/1/20/6 4/2/2/0/1/3/12 
+4/3/2/1/2/6 4/2/2/0/1/3/13 
+4/3/2/1/3/6 4/2/2/0/1/3/13 
+4/3/2/1/5/6 4/2/2/0/1/3/13 
+4/3/2/1/7/6 4/2/2/0/1/3/13 
+4/3/2/1/9/6 4/2/2/0/1/3/13 
+4/3/2/1/11/6 4/2/2/0/1/3/13 
+4/3/2/1/13/6 4/2/2/0/1/3/13 
+4/3/2/1/14/6 4/2/2/0/1/3/13 
+4/3/2/1/16/6 4/2/2/0/1/3/13 
+4/3/2/1/19/6 4/2/2/0/1/3/13 
+4/3/2/1/22/6 4/2/2/0/1/3/13 
+4/3/2/1/4/7 4/2/2/0/1/3/14 
+4/3/2/1/7/7 4/2/2/0/1/3/14 
+4/3/2/1/8/7 4/2/2/0/1/3/14 
+4/3/2/1/12/7 4/2/2/0/1/3/14 
+4/3/2/1/13/7 4/2/2/0/1/3/14 
+4/3/2/1/17/7 4/2/2/0/1/3/14 
+4/3/2/1/18/7 4/2/2/0/1/3/14 
+4/3/2/1/19/7 4/2/2/0/1/3/14 
+4/3/2/1/21/6 4/2/2/0/1/3/14 
+4/3/2/1/23/7 4/2/2/0/1/3/14 
+4/3/2/1/1/7 4/2/2/0/1/3/15 
+4/3/2/1/2/7 4/2/2/0/1/3/15 
+4/3/2/1/3/7 4/2/2/0/1/3/15 
+4/3/2/1/5/7 4/2/2/0/1/3/15 
+4/3/2/1/6/7 4/2/2/0/1/3/15 
+4/3/2/1/9/7 4/2/2/0/1/3/15 
+4/3/2/1/10/7 4/2/2/0/1/3/15 
+4/3/2/1/11/7 4/2/2/0/1/3/15 
+4/3/2/1/14/7 4/2/2/0/1/3/15 
+4/3/2/1/15/7 4/2/2/0/1/3/15 
+4/3/2/1/16/7 4/2/2/0/1/3/15 
+4/3/2/1/20/7 4/2/2/0/1/3/15 
+4/3/2/1/21/7 4/2/2/0/1/3/15 
+4/3/2/1/22/7 4/2/2/0/1/3/15 
+4/3/2/1/1/8 4/2/2/0/1/3/16 
+4/3/2/1/2/8 4/2/2/0/1/3/16 
+4/3/2/1/4/8 4/2/2/0/1/3/16 
+4/3/2/1/6/8 4/2/2/0/1/3/16 
+4/3/2/1/9/8 4/2/2/0/1/3/16 
+4/3/2/1/10/8 4/2/2/0/1/3/16 
+4/3/2/1/11/8 4/2/2/0/1/3/16 
+4/3/2/1/12/8 4/2/2/0/1/3/16 
+4/3/2/1/15/8 4/2/2/0/1/3/16 
+4/3/2/1/16/8 4/2/2/0/1/3/16 
+4/3/2/1/17/8 4/2/2/0/1/3/16 
+4/3/2/1/21/8 4/2/2/0/1/3/16 
+4/3/2/1/22/8 4/2/2/0/1/3/16 
+4/3/2/1/23/8 4/2/2/0/1/3/16 
+4/3/2/1/3/8 4/2/2/0/1/3/17 
+4/3/2/1/5/8 4/2/2/0/1/3/17 
+4/3/2/1/7/8 4/2/2/0/1/3/17 
+4/3/2/1/8/8 4/2/2/0/1/3/17 
+4/3/2/1/13/8 4/2/2/0/1/3/17 
+4/3/2/1/14/8 4/2/2/0/1/3/17 
+4/3/2/1/18/8 4/2/2/0/1/3/17 
+4/3/2/1/19/8 4/2/2/0/1/3/17 
+4/3/2/1/20/8 4/2/2/0/1/3/17 
+4/3/2/1/21/9 4/2/2/0/1/3/17 
+4/3/2/1/24/8 4/2/2/0/1/3/17 
+4/3/2/1/2/9 4/2/2/0/1/3/18 
+4/3/2/1/3/9 4/2/2/0/1/3/18 
+4/3/2/1/5/9 4/2/2/0/1/3/18 
+4/3/2/1/7/9 4/2/2/0/1/3/18 
+4/3/2/1/9/9 4/2/2/0/1/3/18 
+4/3/2/1/11/9 4/2/2/0/1/3/18 
+4/3/2/1/13/9 4/2/2/0/1/3/18 
+4/3/2/1/14/9 4/2/2/0/1/3/18 
+4/3/2/1/16/9 4/2/2/0/1/3/18 
+4/3/2/1/19/9 4/2/2/0/1/3/18 
+4/3/2/1/22/9 4/2/2/0/1/3/18 
+4/3/2/1/4/9 4/2/2/0/1/3/19 
+4/3/2/1/6/9 4/2/2/0/1/3/19 
+4/3/2/1/8/9 4/2/2/0/1/3/19 
+4/3/2/1/10/9 4/2/2/0/1/3/19 
+4/3/2/1/12/9 4/2/2/0/1/3/19 
+4/3/2/1/15/9 4/2/2/0/1/3/19 
+4/3/2/1/17/9 4/2/2/0/1/3/19 
+4/3/2/1/18/9 4/2/2/0/1/3/19 
+4/3/2/1/20/9 4/2/2/0/1/3/19 
+4/3/2/1/1/10 4/2/2/0/1/3/20 
+4/3/2/1/3/10 4/2/2/0/1/3/20 
+4/3/2/1/6/10 4/2/2/0/1/3/20 
+4/3/2/1/7/10 4/2/2/0/1/3/20 
+4/3/2/1/8/10 4/2/2/0/1/3/20 
+4/3/2/1/11/10 4/2/2/0/1/3/20 
+4/3/2/1/12/10 4/2/2/0/1/3/20 
+4/3/2/1/15/10 4/2/2/0/1/3/20 
+4/3/2/1/16/10 4/2/2/0/1/3/20 
+4/3/2/1/19/10 4/2/2/0/1/3/20 
+4/3/2/1/20/10 4/2/2/0/1/3/20 
+4/3/2/1/2/10 4/2/2/0/1/3/21 
+4/3/2/1/4/10 4/2/2/0/1/3/21 
+4/3/2/1/5/10 4/2/2/0/1/3/21 
+4/3/2/1/9/10 4/2/2/0/1/3/21 
+4/3/2/1/10/10 4/2/2/0/1/3/21 
+4/3/2/1/13/10 4/2/2/0/1/3/21 
+4/3/2/1/14/10 4/2/2/0/1/3/21 
+4/3/2/1/17/10 4/2/2/0/1/3/21 
+4/3/2/1/18/10 4/2/2/0/1/3/21 
+4/3/2/1/21/10 4/2/2/0/1/3/21 
+4/3/2/1/3/11 4/2/2/0/1/3/22 
+4/3/2/1/4/11 4/2/2/0/1/3/22 
+4/3/2/1/5/11 4/2/2/0/1/3/22 
+4/3/2/1/10/11 4/2/2/0/1/3/22 
+4/3/2/1/11/11 4/2/2/0/1/3/22 
+4/3/2/1/15/11 4/2/2/0/1/3/22 
+4/3/2/1/16/11 4/2/2/0/1/3/22 
+4/3/2/1/17/11 4/2/2/0/1/3/22 
+4/3/2/1/20/11 4/2/2/0/1/3/22 
+4/3/2/1/21/11 4/2/2/0/1/3/22 
+4/3/2/1/6/11 4/2/2/0/1/3/23 
+4/3/2/1/7/11 4/2/2/0/1/3/23 
+4/3/2/1/8/11 4/2/2/0/1/3/23 
+4/3/2/1/9/11 4/2/2/0/1/3/23 
+4/3/2/1/12/11 4/2/2/0/1/3/23 
+4/3/2/1/13/11 4/2/2/0/1/3/23 
+4/3/2/1/14/11 4/2/2/0/1/3/23 
+4/3/2/1/18/11 4/2/2/0/1/3/23 
+4/3/2/1/19/11 4/2/2/0/1/3/23 
+4/3/2/1/5/12 4/2/2/0/1/3/24 
+4/3/2/1/6/12 4/2/2/0/1/3/24 
+4/3/2/1/7/12 4/2/2/0/1/3/24 
+4/3/2/1/9/12 4/2/2/0/1/3/24 
+4/3/2/1/12/12 4/2/2/0/1/3/24 
+4/3/2/1/13/12 4/2/2/0/1/3/24 
+4/3/2/1/14/12 4/2/2/0/1/3/24 
+4/3/2/1/18/12 4/2/2/0/1/3/24 
+4/3/2/1/19/12 4/2/2/0/1/3/24 
+4/3/2/1/3/12 4/2/2/0/1/3/25 
+4/3/2/1/4/12 4/2/2/0/1/3/25 
+4/3/2/1/8/12 4/2/2/0/1/3/25 
+4/3/2/1/10/12 4/2/2/0/1/3/25 
+4/3/2/1/11/12 4/2/2/0/1/3/25 
+4/3/2/1/15/12 4/2/2/0/1/3/25 
+4/3/2/1/16/12 4/2/2/0/1/3/25 
+4/3/2/1/17/12 4/2/2/0/1/3/25 
+4/3/2/1/20/12 4/2/2/0/1/3/25 
+4/3/2/1/21/12 4/2/2/0/1/3/25 
+4/3/2/1/1/13 4/2/2/0/1/3/26 
+4/3/2/1/2/13 4/2/2/0/1/3/26 
+4/3/2/1/4/13 4/2/2/0/1/3/26 
+4/3/2/1/5/13 4/2/2/0/1/3/26 
+4/3/2/1/7/13 4/2/2/0/1/3/26 
+4/3/2/1/10/13 4/2/2/0/1/3/26 
+4/3/2/1/11/13 4/2/2/0/1/3/26 
+4/3/2/1/14/13 4/2/2/0/1/3/26 
+4/3/2/1/15/13 4/2/2/0/1/3/26 
+4/3/2/1/18/13 4/2/2/0/1/3/26 
+4/3/2/1/19/13 4/2/2/0/1/3/26 
+4/3/2/1/22/13 4/2/2/0/1/3/26 
+4/3/2/1/3/13 4/2/2/0/1/3/27 
+4/3/2/1/6/13 4/2/2/0/1/3/27 
+4/3/2/1/8/13 4/2/2/0/1/3/27 
+4/3/2/1/9/13 4/2/2/0/1/3/27 
+4/3/2/1/12/13 4/2/2/0/1/3/27 
+4/3/2/1/13/13 4/2/2/0/1/3/27 
+4/3/2/1/16/13 4/2/2/0/1/3/27 
+4/3/2/1/17/13 4/2/2/0/1/3/27 
+4/3/2/1/20/13 4/2/2/0/1/3/27 
+4/3/2/1/21/13 4/2/2/0/1/3/27 
+4/3/2/1/4/14 4/2/2/0/1/3/28 
+4/3/2/1/6/14 4/2/2/0/1/3/28 
+4/3/2/1/8/14 4/2/2/0/1/3/28 
+4/3/2/1/10/14 4/2/2/0/1/3/28 
+4/3/2/1/12/14 4/2/2/0/1/3/28 
+4/3/2/1/15/14 4/2/2/0/1/3/28 
+4/3/2/1/17/14 4/2/2/0/1/3/28 
+4/3/2/1/18/14 4/2/2/0/1/3/28 
+4/3/2/1/20/14 4/2/2/0/1/3/28 
+4/3/2/1/2/14 4/2/2/0/1/3/29 
+4/3/2/1/3/14 4/2/2/0/1/3/29 
+4/3/2/1/5/14 4/2/2/0/1/3/29 
+4/3/2/1/7/14 4/2/2/0/1/3/29 
+4/3/2/1/9/14 4/2/2/0/1/3/29 
+4/3/2/1/11/14 4/2/2/0/1/3/29 
+4/3/2/1/13/14 4/2/2/0/1/3/29 
+4/3/2/1/14/14 4/2/2/0/1/3/29 
+4/3/2/1/16/14 4/2/2/0/1/3/29 
+4/3/2/1/19/14 4/2/2/0/1/3/29 
+4/3/2/1/22/14 4/2/2/0/1/3/29 
+4/3/2/1/4/15 4/2/2/0/1/3/30 
+4/3/2/1/7/15 4/2/2/0/1/3/30 
+4/3/2/1/8/15 4/2/2/0/1/3/30 
+4/3/2/1/12/15 4/2/2/0/1/3/30 
+4/3/2/1/13/15 4/2/2/0/1/3/30 
+4/3/2/1/17/15 4/2/2/0/1/3/30 
+4/3/2/1/18/15 4/2/2/0/1/3/30 
+4/3/2/1/19/15 4/2/2/0/1/3/30 
+4/3/2/1/21/14 4/2/2/0/1/3/30 
+4/3/2/1/23/15 4/2/2/0/1/3/30 
+4/3/2/1/1/15 4/2/2/0/1/3/31 
+4/3/2/1/2/15 4/2/2/0/1/3/31 
+4/3/2/1/3/15 4/2/2/0/1/3/31 
+4/3/2/1/5/15 4/2/2/0/1/3/31 
+4/3/2/1/6/15 4/2/2/0/1/3/31 
+4/3/2/1/9/15 4/2/2/0/1/3/31 
+4/3/2/1/10/15 4/2/2/0/1/3/31 
+4/3/2/1/11/15 4/2/2/0/1/3/31 
+4/3/2/1/14/15 4/2/2/0/1/3/31 
+4/3/2/1/15/15 4/2/2/0/1/3/31 
+4/3/2/1/16/15 4/2/2/0/1/3/31 
+4/3/2/1/20/15 4/2/2/0/1/3/31 
+4/3/2/1/21/15 4/2/2/0/1/3/31 
+4/3/2/1/22/15 4/2/2/0/1/3/31 
+
+nextSuperCalo HEC10/TILEE 4/2/-2,2/1/0/0/0:63 5/2/-1,1/0:63/15/0 calcSide(2,2) calcPhi(6,3)
+4/2/2/1/0/0/0 5/2/1/0/15/0
+
+prevSuperCalo HEC10/TILEE 5/2/-1,1/0:63/15/0 4/2/-2,2/1/0/0/0:63 calcSide(2,2) calcPhi(3,6)
+5/2/1/0/15/0 4/2/2/1/0/0/0 
+
+nextSuperCalo FCAL1/HEC21 4/3/-2,2/1/0,1/1:13 4/2/-2,2/2/1/2/0:31 calcSide(2,2)
+4/3/2/1/0/1 4/2/2/2/1/2/2 
+4/3/2/1/1/1 4/2/2/2/1/2/3 
+4/3/2/1/0/2 4/2/2/2/1/2/5 
+4/3/2/1/1/3 4/2/2/2/1/2/6 
+4/3/2/1/0/3 4/2/2/2/1/2/7 
+4/3/2/1/0/4 4/2/2/2/1/2/8 
+4/3/2/1/1/4 4/2/2/2/1/2/9 
+4/3/2/1/0/5 4/2/2/2/1/2/11 
+4/3/2/1/0/9 4/2/2/2/1/2/18 
+4/3/2/1/1/9 4/2/2/2/1/2/19 
+4/3/2/1/0/10 4/2/2/2/1/2/21 
+4/3/2/1/1/11 4/2/2/2/1/2/22 
+4/3/2/1/0/11 4/2/2/2/1/2/23 
+4/3/2/1/0/12 4/2/2/2/1/2/24 
+4/3/2/1/1/12 4/2/2/2/1/2/25 
+4/3/2/1/0/13 4/2/2/2/1/2/27 
+
+prevSuperCalo HEC21/FCAL1 4/2/-2,2/2/1/2/0:31 4/3/-2,2/1/0,1/1:13 calcSide(2,2)
+4/2/2/2/1/2/2 4/3/2/1/0/1
+4/2/2/2/1/2/3 4/3/2/1/1/1
+4/2/2/2/1/2/5 4/3/2/1/0/2
+4/2/2/2/1/2/6 4/3/2/1/1/3
+4/2/2/2/1/2/7 4/3/2/1/0/3
+4/2/2/2/1/2/8 4/3/2/1/0/4
+4/2/2/2/1/2/9 4/3/2/1/1/4
+4/2/2/2/1/2/11 4/3/2/1/0/5
+4/2/2/2/1/2/18 4/3/2/1/0/9
+4/2/2/2/1/2/19 4/3/2/1/1/9
+4/2/2/2/1/2/21 4/3/2/1/0/10
+4/2/2/2/1/2/22 4/3/2/1/1/11
+4/2/2/2/1/2/23 4/3/2/1/0/11
+4/2/2/2/1/2/24 4/3/2/1/0/12
+4/2/2/2/1/2/25 4/3/2/1/1/12
+4/2/2/2/1/2/27 4/3/2/1/0/13
+
+nextSuperCalo FCAL2/HEC31 4/3/-2,2/2/0:9/0:15 4/2/-2,2/3/1/3/0:31 calcSide(2,2)
+4/3/2/2/0/0 4/2/2/3/1/3/0 
+4/3/2/2/1/0 4/2/2/3/1/3/0 
+4/3/2/2/2/0 4/2/2/3/1/3/0 
+4/3/2/2/5/0 4/2/2/3/1/3/0 
+4/3/2/2/6/0 4/2/2/3/1/3/0 
+4/3/2/2/3/0 4/2/2/3/1/3/1 
+4/3/2/2/4/0 4/2/2/3/1/3/1 
+4/3/2/2/7/0 4/2/2/3/1/3/1 
+4/3/2/2/2/1 4/2/2/3/1/3/2 
+4/3/2/2/4/1 4/2/2/3/1/3/2 
+4/3/2/2/0/1 4/2/2/3/1/3/3 
+4/3/2/2/1/1 4/2/2/3/1/3/3 
+4/3/2/2/3/1 4/2/2/3/1/3/3 
+4/3/2/2/5/1 4/2/2/3/1/3/3 
+4/3/2/2/6/1 4/2/2/3/1/3/3 
+4/3/2/2/0/2 4/2/2/3/1/3/4 
+4/3/2/2/3/2 4/2/2/3/1/3/4 
+4/3/2/2/5/2 4/2/2/3/1/3/4 
+4/3/2/2/6/2 4/2/2/3/1/3/4 
+4/3/2/2/9/2 4/2/2/3/1/3/4 
+4/3/2/2/1/2 4/2/2/3/1/3/5 
+4/3/2/2/2/2 4/2/2/3/1/3/5 
+4/3/2/2/4/2 4/2/2/3/1/3/5 
+4/3/2/2/7/2 4/2/2/3/1/3/5 
+4/3/2/2/8/2 4/2/2/3/1/3/5 
+4/3/2/2/1/3 4/2/2/3/1/3/6 
+4/3/2/2/2/3 4/2/2/3/1/3/6 
+4/3/2/2/3/3 4/2/2/3/1/3/6 
+4/3/2/2/0/3 4/2/2/3/1/3/7 
+4/3/2/2/4/3 4/2/2/3/1/3/7 
+4/3/2/2/5/3 4/2/2/3/1/3/7 
+4/3/2/2/0/4 4/2/2/3/1/3/8 
+4/3/2/2/4/4 4/2/2/3/1/3/8 
+4/3/2/2/5/4 4/2/2/3/1/3/8 
+4/3/2/2/1/4 4/2/2/3/1/3/9 
+4/3/2/2/2/4 4/2/2/3/1/3/9 
+4/3/2/2/3/4 4/2/2/3/1/3/9 
+4/3/2/2/0/5 4/2/2/3/1/3/10 
+4/3/2/2/2/5 4/2/2/3/1/3/10 
+4/3/2/2/4/5 4/2/2/3/1/3/10 
+4/3/2/2/7/5 4/2/2/3/1/3/10 
+4/3/2/2/8/5 4/2/2/3/1/3/10 
+4/3/2/2/1/5 4/2/2/3/1/3/11 
+4/3/2/2/3/5 4/2/2/3/1/3/11 
+4/3/2/2/5/5 4/2/2/3/1/3/11 
+4/3/2/2/6/5 4/2/2/3/1/3/11 
+4/3/2/2/9/5 4/2/2/3/1/3/11 
+4/3/2/2/0/6 4/2/2/3/1/3/12 
+4/3/2/2/1/6 4/2/2/3/1/3/12 
+4/3/2/2/3/6 4/2/2/3/1/3/12 
+4/3/2/2/5/6 4/2/2/3/1/3/12 
+4/3/2/2/6/6 4/2/2/3/1/3/12 
+4/3/2/2/2/6 4/2/2/3/1/3/13 
+4/3/2/2/4/6 4/2/2/3/1/3/13 
+4/3/2/2/3/7 4/2/2/3/1/3/14 
+4/3/2/2/4/7 4/2/2/3/1/3/14 
+4/3/2/2/7/7 4/2/2/3/1/3/14 
+4/3/2/2/0/7 4/2/2/3/1/3/15 
+4/3/2/2/1/7 4/2/2/3/1/3/15 
+4/3/2/2/2/7 4/2/2/3/1/3/15 
+4/3/2/2/5/7 4/2/2/3/1/3/15 
+4/3/2/2/6/7 4/2/2/3/1/3/15 
+4/3/2/2/0/8 4/2/2/3/1/3/16 
+4/3/2/2/1/8 4/2/2/3/1/3/16 
+4/3/2/2/2/8 4/2/2/3/1/3/16 
+4/3/2/2/5/8 4/2/2/3/1/3/16 
+4/3/2/2/6/8 4/2/2/3/1/3/16 
+4/3/2/2/3/8 4/2/2/3/1/3/17 
+4/3/2/2/4/8 4/2/2/3/1/3/17 
+4/3/2/2/7/8 4/2/2/3/1/3/17 
+4/3/2/2/2/9 4/2/2/3/1/3/18 
+4/3/2/2/4/9 4/2/2/3/1/3/18 
+4/3/2/2/0/9 4/2/2/3/1/3/19 
+4/3/2/2/1/9 4/2/2/3/1/3/19 
+4/3/2/2/3/9 4/2/2/3/1/3/19 
+4/3/2/2/5/9 4/2/2/3/1/3/19 
+4/3/2/2/6/9 4/2/2/3/1/3/19 
+4/3/2/2/0/10 4/2/2/3/1/3/20 
+4/3/2/2/3/10 4/2/2/3/1/3/20 
+4/3/2/2/5/10 4/2/2/3/1/3/20 
+4/3/2/2/6/10 4/2/2/3/1/3/20 
+4/3/2/2/9/10 4/2/2/3/1/3/20 
+4/3/2/2/1/10 4/2/2/3/1/3/21 
+4/3/2/2/2/10 4/2/2/3/1/3/21 
+4/3/2/2/4/10 4/2/2/3/1/3/21 
+4/3/2/2/7/10 4/2/2/3/1/3/21 
+4/3/2/2/8/10 4/2/2/3/1/3/21 
+4/3/2/2/1/11 4/2/2/3/1/3/22 
+4/3/2/2/2/11 4/2/2/3/1/3/22 
+4/3/2/2/3/11 4/2/2/3/1/3/22 
+4/3/2/2/0/11 4/2/2/3/1/3/23 
+4/3/2/2/4/11 4/2/2/3/1/3/23 
+4/3/2/2/5/11 4/2/2/3/1/3/23 
+4/3/2/2/0/12 4/2/2/3/1/3/24 
+4/3/2/2/4/12 4/2/2/3/1/3/24 
+4/3/2/2/5/12 4/2/2/3/1/3/24 
+4/3/2/2/1/12 4/2/2/3/1/3/25 
+4/3/2/2/2/12 4/2/2/3/1/3/25 
+4/3/2/2/3/12 4/2/2/3/1/3/25 
+4/3/2/2/0/13 4/2/2/3/1/3/26 
+4/3/2/2/2/13 4/2/2/3/1/3/26 
+4/3/2/2/4/13 4/2/2/3/1/3/26 
+4/3/2/2/7/13 4/2/2/3/1/3/26 
+4/3/2/2/8/13 4/2/2/3/1/3/26 
+4/3/2/2/1/13 4/2/2/3/1/3/27 
+4/3/2/2/3/13 4/2/2/3/1/3/27 
+4/3/2/2/5/13 4/2/2/3/1/3/27 
+4/3/2/2/6/13 4/2/2/3/1/3/27 
+4/3/2/2/9/13 4/2/2/3/1/3/27 
+4/3/2/2/0/14 4/2/2/3/1/3/28 
+4/3/2/2/1/14 4/2/2/3/1/3/28 
+4/3/2/2/3/14 4/2/2/3/1/3/28 
+4/3/2/2/5/14 4/2/2/3/1/3/28 
+4/3/2/2/6/14 4/2/2/3/1/3/28 
+4/3/2/2/2/14 4/2/2/3/1/3/29 
+4/3/2/2/4/14 4/2/2/3/1/3/29 
+4/3/2/2/3/15 4/2/2/3/1/3/30 
+4/3/2/2/4/15 4/2/2/3/1/3/30 
+4/3/2/2/7/15 4/2/2/3/1/3/30 
+4/3/2/2/0/15 4/2/2/3/1/3/31 
+4/3/2/2/1/15 4/2/2/3/1/3/31 
+4/3/2/2/2/15 4/2/2/3/1/3/31 
+4/3/2/2/5/15 4/2/2/3/1/3/31 
+4/3/2/2/6/15 4/2/2/3/1/3/31 
+
+prevSuperCalo HEC31/FCAL2 4/2/-2,2/3/1/3/0:31 4/3/-2,2/2/0:9/0:15 calcSide(2,2)
+4/2/2/3/1/3/0 4/3/2/2/0/0 4/3/2/2/1/0 4/3/2/2/2/0 4/3/2/2/5/0 4/3/2/2/6/0
+4/2/2/3/1/3/1 4/3/2/2/3/0 4/3/2/2/4/0 4/3/2/2/7/0
+4/2/2/3/1/3/2 4/3/2/2/2/1 4/3/2/2/4/1
+4/2/2/3/1/3/3 4/3/2/2/0/1 4/3/2/2/1/1 4/3/2/2/3/1 4/3/2/2/5/1 4/3/2/2/6/1
+4/2/2/3/1/3/4 4/3/2/2/0/2 4/3/2/2/3/2 4/3/2/2/5/2 4/3/2/2/6/2 4/3/2/2/9/2
+4/2/2/3/1/3/5 4/3/2/2/1/2 4/3/2/2/2/2 4/3/2/2/4/2 4/3/2/2/7/2 4/3/2/2/8/2
+4/2/2/3/1/3/6 4/3/2/2/1/3 4/3/2/2/2/3 4/3/2/2/3/3
+4/2/2/3/1/3/7 4/3/2/2/0/3 4/3/2/2/4/3 4/3/2/2/5/3
+4/2/2/3/1/3/8 4/3/2/2/0/4 4/3/2/2/4/4 4/3/2/2/5/4
+4/2/2/3/1/3/9 4/3/2/2/1/4 4/3/2/2/2/4 4/3/2/2/3/4
+4/2/2/3/1/3/10 4/3/2/2/0/5 4/3/2/2/2/5 4/3/2/2/4/5 4/3/2/2/7/5 4/3/2/2/8/5
+4/2/2/3/1/3/11 4/3/2/2/1/5 4/3/2/2/3/5 4/3/2/2/5/5 4/3/2/2/6/5 4/3/2/2/9/5
+4/2/2/3/1/3/12 4/3/2/2/0/6 4/3/2/2/1/6 4/3/2/2/3/6 4/3/2/2/5/6 4/3/2/2/6/6
+4/2/2/3/1/3/13 4/3/2/2/2/6 4/3/2/2/4/6
+4/2/2/3/1/3/14 4/3/2/2/3/7 4/3/2/2/4/7 4/3/2/2/7/7
+4/2/2/3/1/3/15 4/3/2/2/0/7 4/3/2/2/1/7 4/3/2/2/2/7 4/3/2/2/5/7 4/3/2/2/6/7
+4/2/2/3/1/3/16 4/3/2/2/0/8 4/3/2/2/1/8 4/3/2/2/2/8 4/3/2/2/5/8 4/3/2/2/6/8
+4/2/2/3/1/3/17 4/3/2/2/3/8 4/3/2/2/4/8 4/3/2/2/7/8
+4/2/2/3/1/3/18 4/3/2/2/2/9 4/3/2/2/4/9
+4/2/2/3/1/3/19 4/3/2/2/0/9 4/3/2/2/1/9 4/3/2/2/3/9 4/3/2/2/5/9 4/3/2/2/6/9
+4/2/2/3/1/3/20 4/3/2/2/0/10 4/3/2/2/3/10 4/3/2/2/5/10 4/3/2/2/6/10 4/3/2/2/9/10
+4/2/2/3/1/3/21 4/3/2/2/1/10 4/3/2/2/2/10 4/3/2/2/4/10 4/3/2/2/7/10 4/3/2/2/8/10
+4/2/2/3/1/3/22 4/3/2/2/1/11 4/3/2/2/2/11 4/3/2/2/3/11
+4/2/2/3/1/3/23 4/3/2/2/0/11 4/3/2/2/4/11 4/3/2/2/5/11
+4/2/2/3/1/3/24 4/3/2/2/0/12 4/3/2/2/4/12 4/3/2/2/5/12
+4/2/2/3/1/3/25 4/3/2/2/1/12 4/3/2/2/2/12 4/3/2/2/3/12
+4/2/2/3/1/3/26 4/3/2/2/0/13 4/3/2/2/2/13 4/3/2/2/4/13 4/3/2/2/7/13 4/3/2/2/8/13
+4/2/2/3/1/3/27 4/3/2/2/1/13 4/3/2/2/3/13 4/3/2/2/5/13 4/3/2/2/6/13 4/3/2/2/9/13
+4/2/2/3/1/3/28 4/3/2/2/0/14 4/3/2/2/1/14 4/3/2/2/3/14 4/3/2/2/5/14 4/3/2/2/6/14
+4/2/2/3/1/3/29 4/3/2/2/2/14 4/3/2/2/4/14
+4/2/2/3/1/3/30 4/3/2/2/3/15 4/3/2/2/4/15 4/3/2/2/7/15
+4/2/2/3/1/3/31 4/3/2/2/0/15 4/3/2/2/1/15 4/3/2/2/2/15 4/3/2/2/5/15 4/3/2/2/6/15
+
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H6.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H6.dat
new file mode 100755
index 0000000000000000000000000000000000000000..2aafd04b4320de04dcfba07aa75a09b94dcc5dee
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H6.dat
@@ -0,0 +1,142 @@
+# File and Version Information:
+# $Id: SuperCaloNeighbours_H6.dat,v 1.1 2004-09-25 12:18:12 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Sat Sep 25 13:48:50 2004
+#
+# ranges of expanded calorimeter identifiers are mapped to create lookup
+# tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges. This file is for
+# the combined testbeam 2004 in H6
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EME2IW/HEC01 4/1/3/2/0/0:6/20:27 4/2/2/0/1/0:3/10:13 calcPhi(6,6)
+4/1/3/2/0/0/20 4/2/2/0/1/0/10
+4/1/3/2/0/1/20 4/2/2/0/1/0/10
+4/1/3/2/0/2/20 4/2/2/0/1/1/10
+4/1/3/2/0/3/20 4/2/2/0/1/1/10
+4/1/3/2/0/4/20 4/2/2/0/1/2/10
+4/1/3/2/0/5/20 4/2/2/0/1/2/10
+4/1/3/2/0/6/20 4/2/2/0/1/3/10
+
+prevSuperCalo HEC01/EME2IW 4/2/2/0/1/0:3/10:13 4/1/3/2/0/0:6/20:27 calcPhi(6,6)
+4/2/2/0/1/0/10 4/1/3/2/0/0/20 4/1/3/2/0/0/21 4/1/3/2/0/1/20 4/1/3/2/0/1/21 
+4/2/2/0/1/1/10 4/1/3/2/0/2/20 4/1/3/2/0/2/21 4/1/3/2/0/3/20 4/1/3/2/0/3/21 
+4/2/2/0/1/2/10 4/1/3/2/0/4/20 4/1/3/2/0/4/21 4/1/3/2/0/5/20 4/1/3/2/0/5/21 
+4/2/2/0/1/3/10 4/1/3/2/0/6/20 4/1/3/2/0/6/21
+
+nextSuperCalo HEC01/FCAL1 4/2/2/0/1/2:3/9:14 4/3/2/1/0:22/4:7
+4/2/2/0/1/2/9 4/3/2/1/0/4
+4/2/2/0/1/2/10 4/3/2/1/0/5 4/3/2/1/1/5
+4/2/2/0/1/2/11 4/3/2/1/7/5 4/3/2/1/8/5
+4/2/2/0/1/2/12 4/3/2/1/0/6
+4/2/2/0/1/2/13 4/3/2/1/6/6
+4/2/2/0/1/2/14 4/3/2/1/0/7
+4/2/2/0/1/3/9 4/3/2/1/1/4 4/3/2/1/2/4 4/3/2/1/3/4 4/3/2/1/4/4 4/3/2/1/5/4 4/3/2/1/6/4 4/3/2/1/7/4 4/3/2/1/8/4 4/3/2/1/9/4 4/3/2/1/10/4 4/3/2/1/11/4
+4/2/2/0/1/3/10 4/3/2/1/2/5 4/3/2/1/3/5 4/3/2/1/9/5 4/3/2/1/10/5 4/3/2/1/13/5 4/3/2/1/15/5 4/3/2/1/18/5 4/3/2/1/19/5 4/3/2/1/22/5
+4/2/2/0/1/3/11 4/3/2/1/4/5 4/3/2/1/5/5 4/3/2/1/6/5 4/3/2/1/11/5 4/3/2/1/12/5 4/3/2/1/14/5 4/3/2/1/16/5 4/3/2/1/17/5 4/3/2/1/20/5 4/3/2/1/21/5
+4/2/2/0/1/3/12 4/3/2/1/1/6 4/3/2/1/2/6 4/3/2/1/9/6 4/3/2/1/10/6 4/3/2/1/12/6 4/3/2/1/15/6 4/3/2/1/17/6 4/3/2/1/18/6 4/3/2/1/20/6
+4/2/2/0/1/3/13 4/3/2/1/3/6 4/3/2/1/4/6 4/3/2/1/5/6 4/3/2/1/7/6 4/3/2/1/8/6 4/3/2/1/11/6 4/3/2/1/13/6 4/3/2/1/14/6 4/3/2/1/16/6 4/3/2/1/19/6 4/3/2/1/22/6
+4/2/2/0/1/3/14 4/3/2/1/1/7 4/3/2/1/2/7 4/3/2/1/3/7 4/3/2/1/4/7 4/3/2/1/5/7 4/3/2/1/6/7 4/3/2/1/7/7 4/3/2/1/8/7 4/3/2/1/9/7 4/3/2/1/10/7 4/3/2/1/21/6
+
+prevSuperCalo FCAL1/HEC01 4/3/2/1/0:22/4:7 4/2/2/0/1/2:3/9:14
+4/3/2/1/0/4 4/2/2/0/1/2/9 
+4/3/2/1/0/5 4/2/2/0/1/2/10 
+4/3/2/1/0/6 4/2/2/0/1/2/12 
+4/3/2/1/0/7 4/2/2/0/1/2/14 
+4/3/2/1/1/4 4/2/2/0/1/3/9 
+4/3/2/1/1/5 4/2/2/0/1/2/10 
+4/3/2/1/1/6 4/2/2/0/1/3/12 
+4/3/2/1/1/7 4/2/2/0/1/3/14 
+4/3/2/1/10/4 4/2/2/0/1/3/9 
+4/3/2/1/10/5 4/2/2/0/1/3/10 
+4/3/2/1/10/6 4/2/2/0/1/3/12 
+4/3/2/1/10/7 4/2/2/0/1/3/14 
+4/3/2/1/11/4 4/2/2/0/1/3/9 
+4/3/2/1/11/5 4/2/2/0/1/3/11 
+4/3/2/1/11/6 4/2/2/0/1/3/13 
+4/3/2/1/12/5 4/2/2/0/1/3/11 
+4/3/2/1/12/6 4/2/2/0/1/3/12 
+4/3/2/1/13/5 4/2/2/0/1/3/10 
+4/3/2/1/13/6 4/2/2/0/1/3/13 
+4/3/2/1/14/5 4/2/2/0/1/3/11 
+4/3/2/1/14/6 4/2/2/0/1/3/13 
+4/3/2/1/15/5 4/2/2/0/1/3/10 
+4/3/2/1/15/6 4/2/2/0/1/3/12 
+4/3/2/1/16/5 4/2/2/0/1/3/11 
+4/3/2/1/16/6 4/2/2/0/1/3/13 
+4/3/2/1/17/5 4/2/2/0/1/3/11 
+4/3/2/1/17/6 4/2/2/0/1/3/12 
+4/3/2/1/18/5 4/2/2/0/1/3/10 
+4/3/2/1/18/6 4/2/2/0/1/3/12 
+4/3/2/1/19/5 4/2/2/0/1/3/10 
+4/3/2/1/19/6 4/2/2/0/1/3/13 
+4/3/2/1/2/4 4/2/2/0/1/3/9 
+4/3/2/1/2/5 4/2/2/0/1/3/10 
+4/3/2/1/2/6 4/2/2/0/1/3/12 
+4/3/2/1/2/7 4/2/2/0/1/3/14 
+4/3/2/1/20/5 4/2/2/0/1/3/11 
+4/3/2/1/20/6 4/2/2/0/1/3/12 
+4/3/2/1/21/5 4/2/2/0/1/3/11 
+4/3/2/1/21/6 4/2/2/0/1/3/14 
+4/3/2/1/22/5 4/2/2/0/1/3/10 
+4/3/2/1/22/6 4/2/2/0/1/3/13 
+4/3/2/1/3/4 4/2/2/0/1/3/9 
+4/3/2/1/3/5 4/2/2/0/1/3/10 
+4/3/2/1/3/6 4/2/2/0/1/3/13 
+4/3/2/1/3/7 4/2/2/0/1/3/14 
+4/3/2/1/4/4 4/2/2/0/1/3/9 
+4/3/2/1/4/5 4/2/2/0/1/3/11 
+4/3/2/1/4/6 4/2/2/0/1/3/13 
+4/3/2/1/4/7 4/2/2/0/1/3/14 
+4/3/2/1/5/4 4/2/2/0/1/3/9 
+4/3/2/1/5/5 4/2/2/0/1/3/11 
+4/3/2/1/5/6 4/2/2/0/1/3/13 
+4/3/2/1/5/7 4/2/2/0/1/3/14 
+4/3/2/1/6/4 4/2/2/0/1/3/9 
+4/3/2/1/6/5 4/2/2/0/1/3/11 
+4/3/2/1/6/6 4/2/2/0/1/2/13 
+4/3/2/1/6/7 4/2/2/0/1/3/14 
+4/3/2/1/7/4 4/2/2/0/1/3/9 
+4/3/2/1/7/5 4/2/2/0/1/2/11 
+4/3/2/1/7/6 4/2/2/0/1/3/13 
+4/3/2/1/7/7 4/2/2/0/1/3/14 
+4/3/2/1/8/4 4/2/2/0/1/3/9 
+4/3/2/1/8/5 4/2/2/0/1/2/11 
+4/3/2/1/8/6 4/2/2/0/1/3/13 
+4/3/2/1/8/7 4/2/2/0/1/3/14 
+4/3/2/1/9/4 4/2/2/0/1/3/9 
+4/3/2/1/9/5 4/2/2/0/1/3/10 
+4/3/2/1/9/6 4/2/2/0/1/3/12 
+4/3/2/1/9/7 4/2/2/0/1/3/14 
+
+nextSuperCalo FCAL1/HEC21 4/3/2/1/0,1,6,7,8/4:7 4/2/2/2/1/2/9:14 
+4/3/2/1/0/4 4/2/2/2/1/2/9 
+4/3/2/1/0/5 4/2/2/2/1/2/10 
+4/3/2/1/0/6 4/2/2/2/1/2/12 
+4/3/2/1/0/7 4/2/2/2/1/2/14 
+4/3/2/1/1/5 4/2/2/2/1/2/10 
+4/3/2/1/6/6 4/2/2/2/1/2/13 
+4/3/2/1/7/5 4/2/2/2/1/2/11 
+4/3/2/1/8/5 4/2/2/2/1/2/11 
+
+prevSuperCalo HEC21/FCAL1 4/2/2/2/1/2/9:14 4/3/2/1/0,1,6,7,8/4:7
+4/2/2/2/1/2/9 4/3/2/1/0/4
+4/2/2/2/1/2/10 4/3/2/1/0/5 4/3/2/1/1/5
+4/2/2/2/1/2/11 4/3/2/1/7/5 4/3/2/1/8/5
+4/2/2/2/1/2/12 4/3/2/1/0/6
+4/2/2/2/1/2/13 4/3/2/1/6/6
+4/2/2/2/1/2/14 4/3/2/1/0/7
+
diff --git a/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H8.dat b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H8.dat
new file mode 100755
index 0000000000000000000000000000000000000000..2046fd2461dd54bb36d6e4128ead477862c39143
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/SuperCaloNeighbours_H8.dat
@@ -0,0 +1,51 @@
+# File and Version Information:
+# $Id: SuperCaloNeighbours_H8.dat,v 1.1 2004-09-25 12:18:12 menke Exp $
+#
+# Author: Sven Menke <menke@mppmu.mpg.de>
+# Date:   Sat Sep 25 13:03:50 2004
+#
+# ranges of expanded calorimeter identifiers are mapped to create lookup
+# tables for the super calo neighbours. The mapping in eta has to be given
+# explicitely, while side symmetry and the mapping in phi can be automated.
+# The automation in phi works only on contigous ranges. This file is for
+# the combined testbeam 2004 in H8
+#
+# Syntax:
+# for each mapped region: Header and Entry lines until an empty line
+# denotes the end of the block. The Header consists of:
+# <Type> <Name> <SourceRange> <TargetRange> [<SideDirective>] [<PhiDirective>] 
+# <Type>: nextSuperCalo or prevSuperCalo denotes the direction of the map
+# <Name>: any string without blanks, white-space etc.
+# <Source/TargetRange>: A cell-level ExpandedIdentifier Range
+# <SideDirective>: calcSide(i1,i2) maps sign of the field i1 in SourceRange to
+#                                  the sign of field i2 in TargetRange.
+# <PhiDirective>: calcPhi(i1,i2) maps the field i1 in SourceRange to
+#                                the field i2 in TargetRange by scaling.
+#
+nextSuperCalo EMB3/TILEB 4/1/1/3/0/0:15/2:13 5/1/1/0:2/0:7/0 calcPhi(6,3)
+4/1/1/3/0/0/2 5/1/1/0/0/0/0/0
+4/1/1/3/0/1/2 5/1/1/0/0/0/0/0
+4/1/1/3/0/2/2 5/1/1/0/1/0/0/0
+4/1/1/3/0/3/2 5/1/1/0/1/0/0/0
+4/1/1/3/0/4/2 5/1/1/0/2/0/0/0
+4/1/1/3/0/5/2 5/1/1/0/2/0/0/0
+4/1/1/3/0/6/2 5/1/1/0/3/0/0/0
+4/1/1/3/0/7/2 5/1/1/0/3/0/0/0
+4/1/1/3/0/8/2 5/1/1/0/4/0/0/0
+4/1/1/3/0/9/2 5/1/1/0/4/0/0/0
+4/1/1/3/0/10/2 5/1/1/0/5/0/0/0
+4/1/1/3/0/11/2 5/1/1/0/5/0/0/0
+4/1/1/3/0/12/2 5/1/1/0/6/0/0/0
+4/1/1/3/0/13/2 5/1/1/0/6/0/0/0
+4/1/1/3/0/14/2 5/1/1/0/7/0/0/0
+4/1/1/3/0/15/2 5/1/1/0/7/0/0/0
+
+prevSuperCalo TILEB/EMB3 5/1/1/0:2/0:7/0 4/1/1/3/0/0:15/2:13 calcPhi(3,6)
+5/1/1/0/0/0/0/0 4/1/1/3/0/0/2 4/1/1/3/0/0/3 4/1/1/3/0/0/4 4/1/1/3/0/0/5 4/1/1/3/0/1/2 4/1/1/3/0/1/3 4/1/1/3/0/1/4 4/1/1/3/0/1/5 
+5/1/1/0/1/0/0/0 4/1/1/3/0/2/2 4/1/1/3/0/2/3 4/1/1/3/0/2/4 4/1/1/3/0/2/5 4/1/1/3/0/3/2 4/1/1/3/0/3/3 4/1/1/3/0/3/4 4/1/1/3/0/3/5 
+5/1/1/0/2/0/0/0 4/1/1/3/0/4/2 4/1/1/3/0/4/3 4/1/1/3/0/4/4 4/1/1/3/0/4/5 4/1/1/3/0/5/2 4/1/1/3/0/5/3 4/1/1/3/0/5/4 4/1/1/3/0/5/5 
+5/1/1/0/3/0/0/0 4/1/1/3/0/6/2 4/1/1/3/0/6/3 4/1/1/3/0/6/4 4/1/1/3/0/6/5 4/1/1/3/0/7/2 4/1/1/3/0/7/3 4/1/1/3/0/7/4 4/1/1/3/0/7/5 
+5/1/1/0/4/0/0/0 4/1/1/3/0/8/2 4/1/1/3/0/8/3 4/1/1/3/0/8/4 4/1/1/3/0/8/5 4/1/1/3/0/9/2 4/1/1/3/0/9/3 4/1/1/3/0/9/4 4/1/1/3/0/9/5 
+5/1/1/0/5/0/0/0 4/1/1/3/0/10/2 4/1/1/3/0/10/3 4/1/1/3/0/10/4 4/1/1/3/0/10/5 4/1/1/3/0/11/2 4/1/1/3/0/11/3 4/1/1/3/0/11/4 4/1/1/3/0/11/5 
+5/1/1/0/6/0/0/0 4/1/1/3/0/12/2 4/1/1/3/0/12/3 4/1/1/3/0/12/4 4/1/1/3/0/12/5 4/1/1/3/0/13/2 4/1/1/3/0/13/3 4/1/1/3/0/13/4 4/1/1/3/0/13/5 
+5/1/1/0/7/0/0/0 4/1/1/3/0/14/2 4/1/1/3/0/14/3 4/1/1/3/0/14/4 4/1/1/3/0/14/5 4/1/1/3/0/15/2 4/1/1/3/0/15/3 4/1/1/3/0/15/4 4/1/1/3/0/15/5 
diff --git a/Calorimeter/CaloIdentifier/share/TileID_test.ref b/Calorimeter/CaloIdentifier/share/TileID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..59b708c07c32a181d7947f40934b15d26f7b68c8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/TileID_test.ref
@@ -0,0 +1,68 @@
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+TileNeighbour        INFO Reading file  /home/sss/atlas/supercell2/build/share/TileNeighbour_reduced.txt
+test_basic
+[5.1.1.0.0.1.0.0] hex(4480001000000000)
+[5.2.1.1.10.2.0.0] hex(48804a2000000000)
+[5.3.1.2.11.3.0.0] hex(4c808b3000000000)
+[5.1.-1.0.0.1.0.0] hex(4400001000000000)
+[5.2.-1.1.10.2.0.0] hex(48004a2000000000)
+[5.3.-1.2.11.3.0.0] hex(4c008b3000000000)
+test_connected
+  ncell 5184
+  nmodule 384
+  nregion 6
+  ntower 2816
+  npmt 9856
+  nadc 19712
+Sampling  Barrel     Ext Barrel     Gap      Other
+ 0          1280         640          0          0
+ 1          1152         640        128          0
+ 2           448         256        128          0
+ 3             0           0        512          0
+Total       2880        1536        768          0   Grand total: 5184
+Region [5.1.-1.0.0.0.0.0] eta:  0   0  0   9 phi:  63
+Region [5.1.1.0.0.0.0.0]  eta:  0   0  0   9 phi:  63
+Region [5.2.-1.0]         eta: 10  15 10  15 phi:  63
+Region [5.2.1.0]          eta: 10  15 10  15 phi:  63
+Region [5.3.-1.0]         eta:  8  15  8  15 phi:  63
+Region [5.3.1.0]          eta:  8  15  8  15 phi:  63
+test_exceptions
+Exception 1: TileID_Exception - Error code: 1
+Tile_Base_ID::region_id() result is not OK: ID, range = 5/255/1 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 2: TileID_Exception - Error code: 1
+Tile_Base_ID::module_id() result is not OK: ID, range = 5/1/1/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 3: TileID_Exception - Error code: 1
+Tile_Base_ID::tower_id() result is not OK: ID, range = 5/1/1/0/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 4: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_id() result is not OK: ID, range = 5/1/1/0/0/99 , 5/1/-1/0:63/0/0:1 | 5/1/1/0:63/0/0:2 | 5/1/-1/0:63/1/0:1 | 5/1/1/0:63/1/0:1 | 5/1/-1/0:63/2/0:2 | 5/1/1/0:63/2/0:2 | 5/1/-1/0:63/3/0:1 | 5/1/1/0:63/3/0:1 | 5/1/-1/0:63/4/0:2 | 5/1/1/0:63/4/0:2 | 5/1/-1/0:63/5/0:1 | 5/1/1/0:63/5/0:1 | 5/1/-1/0:63/6/0:2 | 5/1/1/0:63/6/0:2 | 5/1/-1/0:63/7/0:1 | 5/1/1/0:63/7/0:1 | 5/1/-1/0:63/8/0:1 | 5/1/1/0:63/8/0:1 | 5/1/-1/0:63/9/0 | 5/1/1/0:63/9/0 | 5/2/-1,1/0:63/10/1:2 | 5/2/-1,1/0:63/11/0:1 | 5/2/-1,1/0:63/12/0:2 | 5/2/-1,1/0:63/13/0:1 | 5/2/-1,1/0:63/14/0:1 | 5/2/-1,1/0:63/15/0 | 5/3/-1,1/0:63/8/2 | 5/3/-1,1/0:63/9/1 | 5/3/-1,1/0:63/10/3 | 5/3/-1,1/0:63/11/3 | 5/3/-1,1/0:63/13/3 | 5/3/-1,1/0:63/15/3
+Exception 5: TileID_Exception - Error code: 1
+Tile_Base_ID::pmt_id() result is not OK: ID, range = 5/1/1/0/1/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 6: TileID_Exception - Error code: 1
+Tile_Base_ID::pmt_id() result is not OK: ID, range = 5/1/1/0/0/0/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 7: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/1/1/0/0/0/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 8: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/1/1/0/0/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 9: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/1/1/0/0/0/0/99 , 5/1/-1 | 5/1/1 | 5/2/-1,1 | 5/3/-1,1
+Exception 10: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_id(hash_id) - hash_id out of range 
+Exception 11: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_hash(cell_id) - cell_id out of range 
+test_neighbors
+test_to_string
+2 5/1/1
+2 5/1/1
+3 5/1/1/0
+3 5/1/1/0
+4 5/1/1/0/0
+4 5/1/1/0/0
+5 5/1/1/0/0/1
+5 5/1/1/0/0/1
+6 5/1/1/0/0/1/1
+6 5/1/1/0/0/1/1
+7 5/1/1/0/0/1/1/1
+7 5/1/1/0/0/1/1/1
diff --git a/Calorimeter/CaloIdentifier/share/TileNeighbour.txt b/Calorimeter/CaloIdentifier/share/TileNeighbour.txt
new file mode 100755
index 0000000000000000000000000000000000000000..d3834453365fd031d8ea62d6180e79dfa44bbd8a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/TileNeighbour.txt
@@ -0,0 +1,54 @@
+# $Id: TileNeighbour.txt,v 1.4 2004-05-04 17:29:11 menke Exp $
+# $Name: not supported by cvs2svn $
+#	
+# format of the file:
+# cell name:   prev_eta cell1, ... celln;  next_eta; prev_samp; next_samp;
+# all cell names MUST be separated by space or <TAB>
+# all neighbours of one kind for a given cell are ordered according to eta
+# only negative eta side is given
+# second one is obtained by mirroring
+#
+A-1:	A-2;		A+1;		none;		BC-1;
+A-2:	A-3;		A-1;		none;		BC-1, BC-2;
+A-3:	A-4;		A-2;		none;		BC-2, BC-3;
+A-4:	A-5;		A-3;		none;		BC-3, BC-4;
+A-5:	A-6;		A-4;		none;		BC-4, BC-5;
+A-6:	A-7;		A-5;		none;		BC-5, BC-6;
+A-7:	A-8;		A-6;		none;		BC-6, BC-7;
+A-8:	A-9;		A-7;		none;		BC-7, BC-8;
+A-9:	A-10;		A-8;		none;		BC-8, B-9;
+A-10:	E-2, A-12;	A-9;		none;		B-9,  C-10, B-11, E-1;
+A-12:	A-13;		A-10, E-2;	E-3;		E-1,  B-11;
+A-13:	A-14;		A-12;		E-3;		B-11, B-12;
+A-14:	A-15;		A-13;		E-3, E-4;	B-12, B-13;
+A-15:	A-16;		A-14;		E-4;		B-13, B-14;
+A-16:	none;		A-15;		E-4;		B-14, B-15;
+#
+BC-1:	BC-2;		BC+1;		A-1, A-2;	D*0;
+BC-2:	BC-3;		BC-1;		A-2, A-3;	D*0, D-1;
+BC-3:	BC-4;		BC-2;		A-3, A-4;	D-1;
+BC-4:	BC-5;		BC-3;		A-4, A-5;	D-1, D-2;
+BC-5:	BC-6;		BC-4;		A-5, A-6;	D-2;
+BC-6:	BC-7;		BC-5;		A-6, A-7;	D-2, D-3;
+BC-7:	BC-8;		BC-6;		A-7, A-8;	D-3;
+BC-8:	B-9, C-10;	BC-7;		A-8, A-9;	D-3, D-4;
+B-9:  C-10, B-11, E-1;	BC-8;		A-9, A-10;	D-4;
+C-10:	B-11;		BC-8, B-9;	A-10, E-1;	D-4, D-5;
+B-11:	B-12;		B-9, C-10, E-1;	A-10, A-12, A-13; D-5;
+B-12:	B-13;		B-11;		A-13, A-14;	D-5;
+B-13:	B-14;		B-12;		A-14, A-15;	D-5, D-6;
+B-14:	B-15;		B-13;		A-15, A-16;	D-6;
+B-15:	none;		B-14;		A-16;		D-6;
+#
+D*0:	D-1;		D+1;		BC+2, BC+1, BC-1, BC-2;	none;
+D-1:	D-2;		D*0;		BC-2, BC-3, BC-4;	none;
+D-2:	D-3;		D-1;		BC-4, BC-5, BC-6;	none;
+D-3:	D-4;		D-2;		BC-6, BC-7, BC-8;	none;
+D-4:	D-5;		D-3;		BC-8, B-9,  C-10;	none;
+D-5:	D-6;		D-4;		C-10, B-11, B-12, B-13;	none;
+D-6:	none;		D-5;		B-13, B-14, B-15;	none;
+#
+E-1:	B-11;		B-9;		A-10, E-2, A-12;	C-10;
+E-2:	A-12;		A-10;		E-3;			E-1;
+E-3:	none;		none;		E-4;	E-2, A-12, A-13, A-14;
+E-4:	none;		none;		none;	E-3, A-14, A-15, A-16;
diff --git a/Calorimeter/CaloIdentifier/share/TileNeighbour_reduced.txt b/Calorimeter/CaloIdentifier/share/TileNeighbour_reduced.txt
new file mode 100755
index 0000000000000000000000000000000000000000..3fed31c601919fc8f1082dd2e255d3eb588018c8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/TileNeighbour_reduced.txt
@@ -0,0 +1,54 @@
+# $Id: TileNeighbour_reduced.txt,v 1.1 2004-01-16 16:43:56 solodkov Exp $
+# $Name: not supported by cvs2svn $
+#	
+# format of the file:
+# cell name:   prev_eta cell1, ... celln;  next_eta; prev_samp; next_samp;
+# all cell names MUST be separated by space or <TAB>
+# all neighbours of one kind for a given cell are ordered according to eta
+# only negative eta side is given
+# second one is obtained by mirroring
+#
+A-1:	A-2;		A+1;		none;		BC-1;
+A-2:	A-3;		A-1;		none;		BC-1, BC-2;
+A-3:	A-4;		A-2;		none;		BC-2, BC-3;
+A-4:	A-5;		A-3;		none;		BC-3, BC-4;
+A-5:	A-6;		A-4;		none;		BC-4, BC-5;
+A-6:	A-7;		A-5;		none;		BC-5, BC-6;
+A-7:	A-8;		A-6;		none;		BC-6, BC-7;
+A-8:	A-9;		A-7;		none;		BC-7, BC-8;
+A-9:	A-10;		A-8;		none;		BC-8, B-9;
+A-10:	E-2;		A-9;		none;		B-9,  C-10, E-1;
+A-12:	A-13;		E-2;		none;		B-11;
+A-13:	A-14;		A-12;		none;		B-11, B-12;
+A-14:	A-15;		A-13;		none;		B-12, B-13;
+A-15:	A-16;		A-14;		none;		B-13, B-14;
+A-16:	none;		A-15;		none;		B-14, B-15;
+#
+BC-1:	BC-2;		BC+1;		A-1, A-2;	D*0;
+BC-2:	BC-3;		BC-1;		A-2, A-3;	D*0, D-1;
+BC-3:	BC-4;		BC-2;		A-3, A-4;	D-1;
+BC-4:	BC-5;		BC-3;		A-4, A-5;	D-1, D-2;
+BC-5:	BC-6;		BC-4;		A-5, A-6;	D-2;
+BC-6:	BC-7;		BC-5;		A-6, A-7;	D-2, D-3;
+BC-7:	BC-8;		BC-6;		A-7, A-8;	D-3;
+BC-8:	B-9, C-10;	BC-7;		A-8, A-9;	D-3, D-4;
+B-9:	C-10, E-1;	BC-8;		A-9, A-10;	D-4;
+C-10:	B-11;		BC-8, B-9;	A-10, E-1;	D-4, D-5;
+B-11:	B-12;		C-10, E-1;	A-12, A-13;	D-5;
+B-12:	B-13;		B-11;		A-13, A-14;	D-5;
+B-13:	B-14;		B-12;		A-14, A-15;	D-5, D-6;
+B-14:	B-15;		B-13;		A-15, A-16;	D-6;
+B-15:	none;		B-14;		A-16;		D-6;
+#
+D*0:	D-1;		D+1;		BC+2, BC+1, BC-1, BC-2;	none;
+D-1:	D-2;		D*0;		BC-2, BC-3, BC-4;	none;
+D-2:	D-3;		D-1;		BC-4, BC-5, BC-6;	none;
+D-3:	D-4;		D-2;		BC-6, BC-7, BC-8;	none;
+D-4:	D-5;		D-3;		BC-8, B-9,  C-10;	none;
+D-5:	D-6;		D-4;		C-10, B-11, B-12, B-13;	none;
+D-6:	none;		D-5;		B-13, B-14, B-15;	none;
+#
+E-1:	B-11;		B-9;		E-2;			C-10;
+E-2:	A-12;		A-10;		E-3;			E-1;
+E-3:	none;		none;		E-4;			E-2;
+E-4:	none;		none;		none;			E-3;
diff --git a/Calorimeter/CaloIdentifier/share/TileSuperCellNeighbour.txt b/Calorimeter/CaloIdentifier/share/TileSuperCellNeighbour.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eedce418e37112176680dfe5cfa11eeb3e01143e
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/TileSuperCellNeighbour.txt
@@ -0,0 +1,36 @@
+# $Id: TileSuperCellNeighbour.txt,v 1.0 2014-04-16 17:29:11 menke Exp $
+# $Name: not supported by cvs2svn $
+#	
+# format of the file:
+# cell name:   prev_eta cell1, ... celln;  next_eta; prev_samp; next_samp;
+# all cell names MUST be separated by space or <TAB>
+# all neighbours of one kind for a given cell are ordered according to eta
+# only negative eta side is given
+# second one is obtained by mirroring
+#
+# super cells for the full towers are called 'S' while super cells
+# corresponding to the 'D' layer of normal cells are called 'V'
+#
+S-1:	S-2;		S+1;   none; none;
+S-2:	S-3;		S-1;   none; none;
+S-3:	S-4;		S-2;   none; none;
+S-4:	S-5;		S-3;   none; none;
+S-5:	S-6;		S-4;   none; none;
+S-6:	S-7;		S-5;   none; none;
+S-7:	S-8;		S-6;   none; none;
+S-8:	S-9;		S-7;   none; none;
+S-9:	S-10;		S-8;   none; none;
+S-10:	S-11;	        S-9;   none; none;
+S-11:	S-12;	        S-10;  none; none;
+S-12:	S-13;		S-11;  none; none;
+S-13:	S-14;		S-12;  none; none;
+S-14:	S-15;		S-13;  none; none;
+S-15:	S-16;		S-14;  none; none;
+S-16:	none;		S-15;  none; none;
+#
+V*0:	V-1;		V+1;   none; none;
+V-1:	V-2;		V*0;   none; none;
+V-2:	V-3;		V-1;   none; none;
+V-3:	none;		V-2;   none; none;
+V-5:	V-6;		none;  none; none;
+V-6:	none;		V-5;   none; none;
diff --git a/Calorimeter/CaloIdentifier/share/Tile_SuperCell_ID_test.ref b/Calorimeter/CaloIdentifier/share/Tile_SuperCell_ID_test.ref
new file mode 100644
index 0000000000000000000000000000000000000000..bb2e01f0507427ca3f511629136a5bc72fd59515
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/share/Tile_SuperCell_ID_test.ref
@@ -0,0 +1,64 @@
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find mm region index: group, region size 0 0
+AtlasDetectorIDHelper::initialize_from_dictionary - Warning: unable to find stgc region index: group, region size 0 0
+AtlasDetectorID::initLevelsFromDict - there are no sTGC entries in the dictionary! 
+AtlasDetectorID::initLevelsFromDict - there are no MM entries in the dictionary! 
+AtlasDetectorID      DEBUG Could not get value for label 'no_side' of field 'DetZside' in dictionary Calorimeter
+ AtlasDetectorID::initialize_from_dictionary - OK 
+test_basic
+[5.5.1.0.0.0.0.0] hex(5600000000000000)
+[5.6.1.1.10.2.0.0] hex(5a0d400000000000)
+[5.5.-1.0.0.0.0.0] hex(5400000000000000)
+[5.6.-1.1.10.2.0.0] hex(580d400000000000)
+test_connected
+  ncell 2752
+  nmodule 256
+  nregion 4
+  ntower 2048
+  npmt 2752
+  nadc 2752
+Sampling  Barrel     Ext Barrel     Gap      Other
+ 0          1152         896          0          0
+ 1             0           0          0          0
+ 2           448         256          0          0
+ 3             0           0          0          0
+Total       1600        1152          0          0   Grand total: 2752
+Region [5.5.-1.0.0.0.0.0] eta:  0   0  0   8 phi:  63
+Region [5.5.1.0.0.0.0.0]  eta:  0   0  0   8 phi:  63
+Region [5.6.-1.0]         eta:  9  15  9  15 phi:  63
+Region [5.6.1.0]          eta:  9  15  9  15 phi:  63
+test_exceptions
+Exception 1: TileID_Exception - Error code: 1
+Tile_Base_ID::region_id() result is not OK: ID, range = 5/255/1 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 2: TileID_Exception - Error code: 1
+Tile_Base_ID::module_id() result is not OK: ID, range = 5/5/1/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 3: TileID_Exception - Error code: 1
+Tile_Base_ID::tower_id() result is not OK: ID, range = 5/5/1/0/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 4: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_id() result is not OK: ID, range = 5/5/1/0/0/99 , 5/5/-1/0:63/0/0 | 5/5/1/0:63/0/0,2 | 5/5/-1/0:63/1/0 | 5/5/1/0:63/1/0 | 5/5/-1/0:63/2/0,2 | 5/5/1/0:63/2/0,2 | 5/5/-1/0:63/3/0 | 5/5/1/0:63/3/0 | 5/5/-1/0:63/4/0,2 | 5/5/1/0:63/4/0,2 | 5/5/-1/0:63/5/0 | 5/5/1/0:63/5/0 | 5/5/-1/0:63/6/0,2 | 5/5/1/0:63/6/0,2 | 5/5/-1/0:63/7/0 | 5/5/1/0:63/7/0 | 5/5/-1/0:63/8/0 | 5/5/1/0:63/8/0 | 5/6/-1,1/0:63/9/0 | 5/6/-1,1/0:63/10/0,2 | 5/6/-1,1/0:63/11/0 | 5/6/-1,1/0:63/12/0,2 | 5/6/-1,1/0:63/13/0 | 5/6/-1,1/0:63/14/0 | 5/6/-1,1/0:63/15/0
+Exception 5: TileID_Exception - Error code: 1
+Tile_Base_ID::pmt_id() result is not OK: ID, range = 5/5/1/1/8/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 6: TileID_Exception - Error code: 1
+Tile_Base_ID::pmt_id() result is not OK: ID, range = 5/5/1/0/0/0/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 7: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/5/1/0/0/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 8: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/5/1/0/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 9: TileID_Exception - Error code: 1
+Tile_Base_ID::adc_id() result is not OK: ID, range = 5/5/1/0/0/0/0/99 , 5/5/-1 | 5/5/1 | 5/6/-1,1
+Exception 10: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_id(hash_id) - hash_id out of range 
+Exception 11: TileID_Exception - Error code: 1
+Tile_Base_ID::cell_hash(cell_id) - cell_id out of range 
+test_to_string
+2 5/5/1
+2 5/5/1
+3 5/5/1/0
+3 5/5/1/0
+4 5/5/1/0/4
+4 5/5/1/0/4
+5 5/5/1/0/4/2
+5 5/5/1/0/4/2
+6 5/5/1/0/4/2/0
+6 5/5/1/0/4/2/0
+7 5/5/1/0/4/2/0/0
+7 5/5/1/0/4/2/0/0
diff --git a/Calorimeter/CaloIdentifier/src/CaloCellGroup.cxx b/Calorimeter/CaloIdentifier/src/CaloCellGroup.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..af715288c8f3908781603344ae85429c6ed3684d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloCellGroup.cxx
@@ -0,0 +1,329 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/CaloCellGroup.h"
+#include <stdlib.h>
+#include <ctype.h>
+#include <limits>
+
+CaloCellGroup::CaloCellGroup() :
+  m_pos(false),
+  m_neg(false),
+  m_emb(false),
+  m_emecow(false),
+  m_emeciw(false),
+  m_hec(false),
+  m_fcal(false),
+  m_caloCellId(NULL)
+{
+}
+
+
+bool CaloCellGroup::setDefinition(const CaloCell_ID* caloCellId, const std::string& definition, MsgStream& logStr) {
+  m_caloCellId=caloCellId;
+  m_fieldBoundaries.clear();
+  m_values.clear();
+  m_emb=false;
+  m_emecow=false;
+  m_emeciw=false;
+  m_hec=false;
+  m_fcal=false;
+  m_pos=false;
+  m_neg=false;
+    
+  std::vector<std::string> subdefs(2+NFIELDS);
+  std::string valuesStr;
+  
+  std::size_t pos1,pos2;
+  pos1=definition.find("[");
+  if( pos1==std::string::npos) {
+    complain(logStr,definition);
+    return false;
+  }
+
+  std::size_t i,iField=0;
+  for (i=1+pos1;i<definition.size();i++) {
+    char c=definition[i];
+    if (isspace(c)) continue;
+    if (c==']') break;
+    if (c=='/') {
+      //std::cout << "Subfield " << iField << ": " << subdefs[iField] << std::endl;
+      iField++;
+      if (iField >= subdefs.size()) break;
+    }
+    else
+      subdefs[iField].push_back(c);
+  }
+  
+  if (iField!=subdefs.size()-1 || i==definition.size()) {
+    logStr << MSG::ERROR << "Definition String [" << definition << "] malformed. Expect " 
+	   << NFIELDS << " fileds separated by '/'" << endreq;
+    return false;
+  }
+
+  valuesStr=definition.substr(i+1);
+  //std::cout << "ValueStr " << valuesStr << std::endl;
+
+  //Interpret subcalo-string (first field)
+  std::string& subCaloStr=subdefs[0];
+  size_t len;
+  pos1=0;
+  do {
+    pos2=subCaloStr.find(",",pos1);
+    if (pos2==std::string::npos)
+      len=subCaloStr.size();
+    else
+      len=pos2-pos1;
+    if (subCaloStr.compare(pos1,len,"EMB")==0)
+      m_emb=true;
+    else if(subCaloStr.compare(pos1,len,"EMECIW")==0)
+      m_emeciw=true;
+    else if(subCaloStr.compare(pos1,len,"EMECOW")==0)
+      m_emecow=true;
+    else if(subCaloStr.compare(pos1,len,"HEC")==0)
+      m_hec=true;
+    else if(subCaloStr.compare(pos1,len,"FCAL")==0)
+      m_fcal=true;
+    else {
+      logStr << MSG::ERROR << "Unknown sub-calo name '"<< subCaloStr.substr(pos1,len) <<"'found. " 
+	     << "Allowed values are EMB, EMECIW, EMECOW, HEC and FCAL" << endreq;
+      return false;
+    }
+    pos1=pos2+1;
+  }
+  while(pos2!=std::string::npos);
+
+  //Interpret side-field (second field)
+  if (subdefs[1].size()!=1) {
+    complain(logStr,subdefs[1]);
+    return false;
+  }
+
+  if (subdefs[1][0]=='A') 
+    m_pos=true;
+  else if (subdefs[1][0]=='C') 
+    m_neg=true;
+  else if (subdefs[1][0]=='*')
+    m_pos=m_neg=true;
+  else {
+    logStr << MSG::ERROR << "Allowed values for side are: A,C or * (means both), found " << subdefs[1] << endreq;
+    return false;
+  }
+  //Interpret remaining fields
+  for (std::size_t i=0;i<NFIELDS;i++) {
+    std::string& subdef=subdefs[i+2];
+    int lower=std::numeric_limits<int>::min();
+    int upper=std::numeric_limits<int>::max();
+    if (subdef.compare("*")!=0) {
+      std::size_t pos1=subdef.find('-');
+      if (pos1==std::string::npos) {
+	if (isdigit(subdef[0])) 
+	  lower=upper=atol(subdef.c_str());
+	else
+	  logStr << MSG::ERROR << "Malformed string [" << subdef << "], expected numerical value!" << endreq;
+      }
+      else {//Found '-'
+	std::string lStr=subdef.substr(0,pos1);
+	std::string uStr=subdef.substr(pos1+1);
+	if (lStr.size()>0) {
+	  if (isdigit(lStr[0]))
+	      lower=atol(lStr.c_str());
+	  else
+	    logStr << MSG::ERROR << "Malformed string [" << subdef << "], expected numerical value!" << endreq;
+        }
+	if (uStr.size()>0) {
+	  if (isdigit(uStr[0]))
+	    upper=atol(uStr.c_str());
+	  else
+	    logStr << MSG::ERROR << "Malformed string [" << subdef << "], expected numerical value!" << endreq;
+        }
+      }    
+    }//end not *
+    m_fieldBoundaries.push_back(std::make_pair(lower,upper));
+  }//end loop over fields
+
+
+  const char* ptr1=valuesStr.c_str();
+  char* ptr2;
+  float val;
+  //errno=0;
+  do {
+    val=strtof(ptr1,&ptr2);
+    if (ptr1!=ptr2)
+      m_values.push_back(val);
+    ptr1=const_cast<const char*>(ptr2+1);
+  }
+  while(*ptr2!='\0');
+ 
+  logStr << MSG::INFO << "Sussefully parsed defintion string" << endreq;
+  return true;
+}
+
+
+
+bool CaloCellGroup::inGroup(const Identifier id) const {
+  //std::cout << "Check if in Group..";
+  if (!m_caloCellId) {
+    //throw exception;
+    //std::cout << "No Calo Cell Id" << std::endl;
+    return false;
+  };
+
+  if (!m_caloCellId->is_lar(id))  
+    return false;  //Not a lar cell
+  
+  //std::cout << "have calo..";
+
+  if (m_caloCellId->is_em_barrel(id) && !m_emb) return false;
+  if (m_caloCellId->is_em_endcap_inner(id) && !m_emeciw) return false;
+  if (m_caloCellId->is_em_endcap_outer(id) && !m_emecow) return false;
+  if (m_caloCellId->is_hec(id) && !m_hec) return false;
+  if (m_caloCellId->is_fcal(id) && !m_fcal) return false;
+
+  //std::cout << "have subcalo..";
+
+  //Check side
+  const int pn=m_caloCellId->pos_neg(id);
+  if (pn<0 && !m_neg) return false;
+  if (pn>0 && !m_pos) return false;
+
+  //std::cout << "have side..";
+
+  const int layer=m_caloCellId->sampling(id);
+  if (layer<m_fieldBoundaries[0].first || layer>m_fieldBoundaries[0].second) return false;
+
+  //std::cout << "have layer..";
+
+  const int region=m_caloCellId->region(id);
+  if (region<m_fieldBoundaries[1].first || region>m_fieldBoundaries[1].second) return false;
+
+  //std::cout << "have region..";
+
+  const int eta=m_caloCellId->eta(id);
+  if (eta<m_fieldBoundaries[2].first || eta>m_fieldBoundaries[2].second) return false;
+
+
+  //std::cout << "have eta..";
+
+  const int phi=m_caloCellId->phi(id);
+  if (phi<m_fieldBoundaries[3].first || phi>m_fieldBoundaries[3].second) return false;
+
+  //std::cout << "have phi..match! ";
+  return true;
+}
+
+
+
+void CaloCellGroup::complain(MsgStream& logStr, const std::string problem) const {
+  logStr << MSG::ERROR << "Malformed definition string '"<<problem << "'" << endreq;
+  return;
+}
+
+
+
+
+bool CaloCellGroupList::setDefinition(const CaloCell_ID* caloCellId, const std::vector<std::string>& definitions, 
+				       MsgStream& logStr){
+
+  m_groups.clear();
+  m_defaults.clear();
+
+  if (definitions.size()==0) {
+    logStr << MSG::WARNING << "No definition string found" << endreq;
+    return true;
+  }
+
+
+  const std::string& defaultValueStr=definitions[0];
+
+  const char* ptr1=defaultValueStr.c_str();
+  char* ptr2;
+  float val;
+  //errno=0;
+  do {
+    val=strtof(ptr1,&ptr2);
+    if (ptr1!=ptr2)
+      m_defaults.push_back(val);
+    ptr1=const_cast<const char*>(ptr2+1);
+  }
+  while(*ptr2!='\0');
+
+
+  m_groups.resize(definitions.size()-1);
+  for (size_t i=0;i<m_groups.size();i++) {
+    bool s=m_groups[i].setDefinition(caloCellId,definitions[i+1],logStr);
+    if (!s) return false;
+    if (m_groups[i].getValue().size()!=m_defaults.size()) {
+      logStr << MSG::ERROR << "Incosistent number of values!" << endreq;
+      return false;
+    }
+  }
+  m_initialized=true;
+  return true;
+}
+
+
+const std::vector<float>& CaloCellGroupList::valuesForCell(const Identifier id) {
+  if (!m_initialized) {
+    //throw exception
+    return m_defaults;
+  }
+
+  const std::vector<float>* result=&m_defaults;
+
+  std::vector<CaloCellGroup>::const_iterator it=m_groups.begin();
+  std::vector<CaloCellGroup>::const_iterator it_e=m_groups.end();
+  for(;it!=it_e;++it) {
+    //std::cout << " G " << i++;
+    if (it->inGroup(id)) result=&(it->getValue());
+  }
+  return *result;
+}
+
+void CaloCellGroupList::dump(const CaloCell_ID* caloCellId) {
+
+  std::cout << "Definitions: " << std::endl;
+  for (size_t i=0;i<m_groups.size();i++) {
+    std::cout << "Group " << i << ":" << std::endl;
+    m_groups[i].printDef();
+  }
+  std::cout << "Results: "<< std::endl;
+  std::vector<Identifier>::const_iterator it=caloCellId->cell_begin();
+  std::vector<Identifier>::const_iterator it_e=caloCellId->cell_end();
+  for(;it!=it_e;it++) {
+    const Identifier id=(*it);
+    std::cout << "Values for " << caloCellId->show_to_string(id); 
+    const std::vector<float>& x=this->valuesForCell(id);
+    std::cout << " [";
+    for (std::size_t i=0;i<x.size();i++) 
+      std::cout << x[i] << " ";
+    std::cout << "]" << std::endl;
+  }
+  return;
+}
+
+void CaloCellGroupList::printDef() const {
+  std::cout << "Definitions: " << std::endl;
+  for (size_t i=0;i<m_groups.size();i++) {
+    std::cout << "Group " << i << ":" << std::endl;
+    m_groups[i].printDef();
+  }
+
+
+
+}
+
+void CaloCellGroup::printDef() const {
+
+  std::cout << "Values";
+  for (std::size_t i=0;i<m_values.size();i++)
+    std::cout << " " << m_values[i];
+  std::cout << " will be used for the following region:" << std::endl;
+  std::cout << "SubCalos: " <<m_emb<<m_emecow<<m_emeciw<<m_hec <<m_fcal <<std::endl;
+  std::cout << "pos=" << m_pos << " neg=" << m_neg << std::endl;
+  std::cout << "Layer [" << m_fieldBoundaries[0].first << " - " << m_fieldBoundaries[0].second << "]" << std::endl;
+  std::cout << "Region [" << m_fieldBoundaries[1].first << " - " << m_fieldBoundaries[1].second << "]" << std::endl;
+  std::cout << "Eta [" << m_fieldBoundaries[2].first << " - " << m_fieldBoundaries[2].second << "]" << std::endl;
+  std::cout << "Phi [" << m_fieldBoundaries[3].first << " - " << m_fieldBoundaries[3].second << "]" << std::endl << std::endl;
+}
diff --git a/Calorimeter/CaloIdentifier/src/CaloCell_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloCell_Base_ID.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6235e5ecf27dbe26afaa050aad75ba9113c216ff
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloCell_Base_ID.cxx
@@ -0,0 +1,268 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/CaloCell_Base_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jul, 2012
+ * @brief 
+ */
+
+
+#include "CaloIdentifier/CaloCell_Base_ID.h"
+#include "CaloIdentifier/CaloNeighbours.h"
+
+
+CaloCell_Base_ID::CaloCell_Base_ID(const LArEM_Base_ID*   em_id, 
+                                   const LArHEC_Base_ID*  hec_id, 
+                                   const LArFCAL_Base_ID* fcal_id, 
+                                   const LArMiniFCAL_ID*  minifcal_id,
+                                   const Tile_Base_ID*    tile_id,
+				   bool supercell)
+  : m_emHelper(em_id),
+    m_hecHelper(hec_id),
+    m_fcalHelper(fcal_id),
+    m_minifcalHelper(minifcal_id),
+    m_tileHelper(tile_id),
+    m_cell_hash_max(0),
+    m_region_hash_max(0),
+    m_caloNeighbours (0),
+    m_supercell(supercell ? 1 : 0)
+{
+  m_helpers[LAREM] = em_id;
+  m_helpers[LARHEC] = hec_id;
+  m_helpers[LARFCAL] = fcal_id;
+  m_helpers[TILE] = tile_id;
+  m_helpers[LARMINIFCAL] = minifcal_id;
+
+  for (int i=0; i < NSUBCALO; i++) {
+    if (i == 0) {
+      m_cell_min[i] = 0;
+      m_reg_min[i] = 0;
+    }
+    else {
+      m_cell_min[i] = m_cell_max[i-1];
+      m_reg_min[i] = m_reg_max[i-1];
+    }
+
+    m_cell_max[i] = m_cell_min[i] + m_helpers[i]->channels().hash_max();
+    m_reg_max[i]  = m_reg_min[i]  + m_helpers[i]->regions().hash_max();
+  }
+
+  m_cell_hash_max   = m_cell_max[NSUBCALO-1];
+  m_region_hash_max = m_reg_max[NSUBCALO-1];
+
+  // count number of helpers with enabled neighbors and instantiate 
+  // super neighbors in case this is more than 1
+
+  int nNeigh(0);
+  
+  if ( m_emHelper->do_neighbours() ) nNeigh++;
+  if ( m_hecHelper->do_neighbours() ) nNeigh++;
+  if ( m_fcalHelper->do_neighbours() ) nNeigh++;
+  if ( m_minifcalHelper->do_neighbours() ) nNeigh++;
+  if ( m_tileHelper->do_neighbours() ) nNeigh++;
+  
+  if ( nNeigh > 1 ) { 
+    m_caloNeighbours = new CaloNeighbours();
+  }
+}
+
+
+CaloCell_Base_ID::~CaloCell_Base_ID()
+{
+  if ( m_caloNeighbours ) delete m_caloNeighbours;
+}
+
+
+int CaloCell_Base_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+{
+  
+  MsgStream log(m_msgSvc, "CaloCell_Base_ID");
+  if(m_msgSvc)log << MSG::DEBUG << "Initialize" << endreq;
+  
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+  
+  // init base object
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
+  
+  // Register version of the different dictionaries 
+  if (register_dict_tag(dict_mgr, "LArCalorimeter")) return(1);
+  if (register_dict_tag(dict_mgr, "TileCalorimeter")) return(1);
+  
+  //
+  // ... initialize cell / region vectors
+  //
+  m_region_vec.clear();
+  m_region_vec.reserve(m_region_hash_max);
+
+  m_cell_vec.clear();
+  m_cell_vec.reserve(m_cell_hash_max);
+
+  for (int i=0; i < NSUBCALO; i++) {
+    m_region_vec.insert (m_region_vec.end(),
+                         m_helpers[i]->regions().begin(),
+                         m_helpers[i]->regions().end());
+    m_cell_vec.insert (m_cell_vec.end(),
+                       m_helpers[i]->channels().begin(),
+                       m_helpers[i]->channels().end());
+  }
+  assert (m_region_vec.size() == m_region_hash_max);
+  assert (m_cell_vec.size() == m_cell_hash_max);
+
+  // initialize CaloCell neighbours
+  if(m_caloNeighbours) {
+    std::string neighbourFile;
+    if ( !m_supercell ) {
+      neighbourFile = dict_mgr.find_metadata("FULLATLASNEIGHBORS");
+    }
+    else {
+      // use this file name for Super Cells - should be replaced by db tag ...
+      neighbourFile = "SuperCaloNeighborsSuperCells-April2014.dat";
+    }
+    if (!neighbourFile.size()) throw std::runtime_error("CaloCell_ID: Cannot find the CaloNeighbour file name");
+    if(m_msgSvc)log << MSG::DEBUG << "Initializing Super3D Neighbors from file " << neighbourFile << endreq;
+    m_caloNeighbours->initialize(this, neighbourFile);
+  }
+ 
+  return 0;
+}
+
+
+bool 
+CaloCell_Base_ID::do_checks(void) const
+{
+  return(m_emHelper->do_checks()) ;
+}
+
+
+void   
+CaloCell_Base_ID::set_do_checks	(bool do_checks) const
+{
+  for (int i=0; i < NSUBCALO; i++)
+    m_helpers[i]->set_do_checks(do_checks);
+}
+
+
+int   CaloCell_Base_ID::calo_sample   (const Identifier         id) const
+{
+  int calo_sampl = (int) Unknown;
+  
+  if(m_emHelper->is_em_barrel(id)) {
+    calo_sampl = m_emHelper->sampling(id)+(int)PreSamplerB; 
+  } 
+  else if (m_emHelper->is_em_endcap_outer(id)) {
+    calo_sampl = m_emHelper->sampling(id)+(int)PreSamplerE; 
+  } 
+  else if (m_emHelper->is_em_endcap_inner(id)) {
+    calo_sampl = m_emHelper->sampling(id)+(int)EME1;
+  }
+  
+  else if(m_hecHelper->is_lar_hec(id)) {
+    calo_sampl = m_hecHelper->sampling(id) + (int) HEC0; 
+  }
+
+  else if(m_minifcalHelper->is_lar_minifcal(id)) {
+    // must do minifcal before fcal because miniFCAL IS FCAL
+    calo_sampl = m_minifcalHelper->depth(id) - 1 + (int) MINIFCAL0; 
+  }
+  else if(m_fcalHelper->is_lar_fcal(id)) {
+    calo_sampl = m_fcalHelper->module(id) - 1 + (int) FCAL0; 
+  }
+  
+  else if (m_tileHelper->is_tile_barrel( id )) {
+    calo_sampl = TileBar0 + m_tileHelper->sample(id);
+  } 
+
+  else if (m_tileHelper->is_tile_extbarrel( id )) {
+    calo_sampl = TileExt0 + m_tileHelper->sample(id);
+  }
+  
+  else if (m_tileHelper->is_tile_gap( id )) {
+    calo_sampl = TileGap1 - 1 + m_tileHelper->sample(id);
+  } 
+  
+  return calo_sampl;
+}
+
+int   CaloCell_Base_ID::calo_sample    (const IdentifierHash caloHash) const
+{
+  Identifier id = cell_id (caloHash);
+  return calo_sample(id);
+}
+
+
+int
+CaloCell_Base_ID::get_neighbours(const IdentifierHash caloHashId,
+                                 const LArNeighbours::neighbourOption& option,
+                                 std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  int subCalo = NOT_VALID;
+  IdentifierHash subHash = subcalo_cell_hash (caloHashId, subCalo);
+
+  switch (subCalo) {
+  case LAREM:
+    em_idHelper()->get_neighbours(subHash, option, neighbourList);
+    break;
+
+  case LARHEC:
+    hec_idHelper()->get_neighbours(subHash, option, neighbourList);
+    break;
+
+  case LARFCAL:
+    fcal_idHelper()->get_neighbours(subHash, option, neighbourList);
+    break;
+
+  case TILE:
+    tile_idHelper()->get_neighbours(subHash, option, neighbourList);
+    break;
+
+  case LARMINIFCAL:
+    minifcal_idHelper()->get_neighbours(subHash, option, neighbourList);
+    break;
+
+  default:
+    neighbourList.resize(0);
+    return result;
+  }
+
+  unsigned int shift = caloHashId - subHash;
+  int neighbourIndex = neighbourList.size();
+
+  if (neighbourIndex > 0) {
+    if (shift != 0) {
+      for (int iN = 0 ; iN <neighbourIndex ; ++iN) {
+        neighbourList[iN] += shift;
+      }
+    }
+    result = 0 ;
+  }
+
+  if ( m_caloNeighbours ) {
+    if ( (option & LArNeighbours::prevSuperCalo) ){
+      result = m_caloNeighbours->get_prevInCalo(caloHashId,neighbourList);
+      if ( result != 0 )  
+	return result;
+    }
+    
+    if ( (option & LArNeighbours::nextSuperCalo) ){
+      result = m_caloNeighbours->get_nextInCalo(caloHashId,neighbourList);
+      if ( result != 0 )  
+	return result;
+    }
+  }
+
+  return result;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloCell_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloCell_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..094f5639721b3ddc1bd3c0664f560e4090d18e45
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloCell_ID.cxx
@@ -0,0 +1,51 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/CaloCell_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <set>
+#include <iostream>
+#include <stdexcept>
+
+CaloCell_ID::CaloCell_ID(const LArEM_ID*        em_id, 
+                         const LArHEC_ID*       hec_id, 
+                         const LArFCAL_ID*      fcal_id, 
+                         const LArMiniFCAL_ID*  minifcal_id,
+                         const TileID*          tile_id) : 
+  CaloCell_Base_ID (em_id, hec_id, fcal_id, minifcal_id, tile_id, false)
+{
+}
+
+
+CaloCell_ID::~CaloCell_ID(void) 
+{
+}
+
+
+int
+CaloCell_ID::initialize_from_dictionary(const IdDictMgr& dict_mgr)
+{
+  
+  MsgStream log(m_msgSvc, "CaloCell_ID");
+  if(m_msgSvc)log << MSG::DEBUG << "Initialize" << endreq;
+  
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+  
+  // init base object
+  if(CaloCell_Base_ID::initialize_from_dictionary(dict_mgr)) return (1);
+  
+  return (0);
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloCell_SuperCell_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloCell_SuperCell_ID.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d61771a6e1e11391dde6817d2e2e72c6e56a4720
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloCell_SuperCell_ID.cxx
@@ -0,0 +1,31 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/CaloCell_SuperCell_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Jul, 2012
+ * @brief 
+ */
+
+
+#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
+
+
+CaloCell_SuperCell_ID::CaloCell_SuperCell_ID(const LArEM_SuperCell_ID*   em_id, 
+                                             const LArHEC_SuperCell_ID*  hec_id, 
+                                             const LArFCAL_SuperCell_ID* fcal_id, 
+                                             const LArMiniFCAL_ID*       minifcal_id,
+                                             const Tile_SuperCell_ID*    tile_id) : 
+  CaloCell_Base_ID (em_id, hec_id, fcal_id, minifcal_id, tile_id, true)
+{
+}
+
+
+CaloCell_SuperCell_ID::~CaloCell_SuperCell_ID(void) 
+{
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..5263a3a1f40059475f26d94364c676219acef248
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloDM_ID.cxx
@@ -0,0 +1,1204 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/CaloDM_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "CxxUtils/StrFormat.h"
+#include "GaudiKernel/MsgStream.h"
+#include <algorithm>
+#include <string>
+#include <set>
+#include <stdio.h>
+#include <iostream>
+#include <math.h>
+#include <assert.h>
+
+
+using CxxUtils::strformat;
+
+
+CaloDM_ID::CaloDM_ID(void) : 
+    m_calodm_region_index(0) 
+  , m_CALO_INDEX(999) 
+  , m_DETZSIDE_INDEX(999)
+  , m_DMAT_INDEX(999) 
+  , m_SAMPLING_INDEX(999) 
+  , m_REGION_INDEX(999) 
+  , m_ETA_INDEX(999)
+  , m_PHI_INDEX(999)
+  , m_dict(0)
+  , m_lar_zone_hash_max(0) 
+  , m_lar_region_hash_max(0)
+  , m_tile_zone_hash_max(0) 
+  , m_tile_region_hash_max(0) 
+ 
+{
+
+}
+
+CaloDM_ID:: ~CaloDM_ID(){}
+
+
+int CaloDM_ID::eta_min(const Identifier& id) const
+{
+  ExpandedIdentifier expId;
+  IdContext cntxt = region_context();
+  if(!get_expanded_id(id, expId, &cntxt)) {
+    int result = -999;
+    const MultiRange * zoneRange = 0 ;
+    if ( is_lar(id) ) {
+      zoneRange = &(m_full_lar_zone_range) ;
+    } else if ( is_tile(id) ) {
+      zoneRange = &(m_full_tile_zone_range) ;
+    }
+    for (unsigned int i = 0; i < (*zoneRange).size(); ++i) {
+      const Range& range = (*zoneRange)[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int CaloDM_ID::eta_max(const Identifier& id) const
+{
+  ExpandedIdentifier expId;
+  IdContext cntxt = region_context();
+  if(!get_expanded_id(id, expId, &cntxt)) {
+    int result = -999;
+    const MultiRange * zoneRange = 0 ;
+    if ( is_lar(id) ) {
+      zoneRange = &(m_full_lar_zone_range) ;
+    } else if ( is_tile(id) ) {
+      zoneRange = &(m_full_tile_zone_range) ;
+    }
+    for (unsigned int i = 0; i < (*zoneRange).size(); ++i) {
+      const Range& range = (*zoneRange)[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int CaloDM_ID::phi_min(const Identifier& id) const
+{
+  ExpandedIdentifier expId;
+  IdContext cntxt = region_context();
+  if(!get_expanded_id(id, expId, &cntxt)) {
+    int result = -999;
+    const MultiRange * zoneRange = 0 ;
+    if ( is_lar(id) ) {
+      zoneRange = &(m_full_lar_zone_range) ;
+    } else if ( is_tile(id) ) {
+      zoneRange = &(m_full_tile_zone_range) ;
+    }
+    for (unsigned int i = 0; i < (*zoneRange).size(); ++i) {
+      const Range& range = (*zoneRange)[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_minimum()) {
+	  int phimin = phi_field.get_minimum();
+	  if (-999 == result) {
+	    result = phimin;
+	  }
+	  else {
+	    if (phimin < result) result = phimin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int CaloDM_ID::phi_max(const Identifier& id) const
+{
+  ExpandedIdentifier expId;
+  IdContext cntxt = zone_context();
+  if(!get_expanded_id(id, expId, &cntxt)) {
+    int result = -999;
+    const MultiRange * zoneRange = 0 ;
+    if ( is_lar(id) ) {
+      zoneRange = &(m_full_lar_zone_range) ;
+    } else if ( is_tile(id) ) {
+      zoneRange = &(m_full_tile_zone_range) ;
+    }
+    for (unsigned int i = 0; i < (*zoneRange).size(); ++i) {
+      const Range& range = (*zoneRange)[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+
+/*===================================================================*/
+int  CaloDM_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*===================================================================*/
+{
+  // Msg Service
+  MsgStream log(m_msgSvc, "CaloDM_ID" );
+  std::string strg = "initialize_from_dictionary";
+  if(m_msgSvc) {
+    log << MSG::INFO << strg << endreq;
+  }
+  else {
+    std::cout << strg << std::endl;
+  }
+  std::stringstream strm;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::INFO << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+   // init base object
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
+
+  // Register version of the Calorimeter dictionary
+  if (register_dict_tag(dict_mgr, "Calorimeter")) return(1);
+
+  m_dict = dict_mgr.find_dictionary ("Calorimeter"); 
+  if(!m_dict) {
+    if(m_msgSvc)
+      {
+	log << MSG::ERROR << " initialize_from_dict - cannot access Calorimeter dictionary " << endreq;
+      }
+    else
+      {
+	std::cout << " CaloDM_ID::initialize_from_dict - cannot access Calorimeter dictionary "
+		  << std::endl;
+      }
+    return 1;
+  }
+  
+  // Initialize the field indices
+  if(initLevelsFromDict()) return (1);
+
+ 
+  // Find values for the calo, LArDM (neg) and TileDM (neg) fields
+  int caloValue   = -1;
+  if (m_dict->get_label_value("subdet", "Calorimeter", caloValue)) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << "Could not get value for label 'Calorimeter' of field 'subdet' in dictionary " 
+	      << m_dict->m_name << endreq;
+	}
+      else
+	{
+	  std::cout << "Could not get value for label 'Calorimeter' of field 'subdet' in dictionary " 
+		    << m_dict->m_name
+		    << std::endl;
+	}
+    return (1);
+  }
+
+  int lardmCaloValue   = -1;
+  // negative half
+  if (m_dict->get_label_value("DetZside", "negative_DMLar_side", lardmCaloValue)) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << "Could not get value for label 'negative_DMLar_side' of field 'DetZside' in dictionary " 
+	      << m_dict->m_name << endreq;
+	}
+      else
+	{
+	  std::cout << "Could not get value for label 'negative_DMLar_side' of field 'DetZside' in dictionary " 
+		    << m_dict->m_name
+		    << std::endl;
+	}
+      return (1);
+    }
+
+  int tiledmCaloValue   = -1;
+  // negative half
+  if (m_dict->get_label_value("DetZside", "negative_DMTile_side", tiledmCaloValue)) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << "Could not get value for label 'negative_DMTile_side' of field 'DetZside' in dictionary " 
+	      << m_dict->m_name
+	      << endreq;
+	}
+      else
+	{
+	  std::cout << "Could not get value for label 'negative_DMTile_side' of field 'DetZside' in dictionary " 
+		    << m_dict->m_name
+		    << std::endl;
+	}
+    return (1);
+  }
+
+
+  // Set up id for region and range prefix
+
+  // NOTE: negative value is good enough to get multirange since the
+  // regions are symmetric in +/-eta
+
+  // LAr
+  ExpandedIdentifier reg_id;
+  reg_id.add(caloValue);
+  reg_id.add(lardmCaloValue); 
+  Range prefix;
+  m_full_lar_region_range = m_dict->build_multirange(reg_id, prefix, "DMregion");
+  m_full_lar_zone_range = m_dict->build_multirange(reg_id, prefix, "phivalue");
+    
+  // Tile
+  ExpandedIdentifier reg_id2;
+  reg_id2.add(caloValue);
+  reg_id2.add(tiledmCaloValue); 
+  Range prefix2;
+  m_full_tile_region_range = m_dict->build_multirange(reg_id2, prefix2, "DMregion");
+  m_full_tile_zone_range = m_dict->build_multirange(reg_id2, prefix2, "phivalue");
+
+
+  if(m_msgSvc)
+    {
+      log << MSG::DEBUG << " initialize_from_dict : " << endreq;
+      log << MSG::DEBUG << " LAr zone range -> "  << (std::string)m_full_lar_zone_range << endreq;
+      log << MSG::DEBUG << " LAr region range -> "  << (std::string)m_full_lar_region_range << endreq;
+      log << MSG::DEBUG << " Tile zone range -> "  << (std::string)m_full_tile_zone_range << endreq;
+      log << MSG::DEBUG << " Tile region range -> "  << (std::string)m_full_tile_region_range << endreq;
+    }
+  else
+    {
+      std::cout << " CaloDM_ID::initialize_from_dict : " 
+		<< std::endl;
+      std::cout << " LAr zone range -> "  << (std::string)m_full_lar_zone_range
+		<< std::endl;
+      std::cout << " LAr region range -> "  << (std::string)m_full_lar_region_range
+		<< std::endl;
+      std::cout << " Tile zone range -> "  << (std::string)m_full_tile_zone_range
+		<< std::endl;
+      std::cout << " Tile region range -> "  << (std::string)m_full_tile_region_range
+		<< std::endl;
+    }
+    
+
+  // Setup the hash tables
+  if(init_lar_hashes()) return (1);
+  if(init_tile_hashes()) return (1);
+  
+  // Setup for hash calculation
+
+  // Regions have uniform eta/phi granularity 
+  // The lookup table only needs to contain the
+  // hash offset for each region, the first eta index
+  // and the number of phi cells.
+
+  // The implementation requires:
+
+  //   1) a lookup table for each region containing hash offset,
+  //      etamin and nphi
+  //   2) a decoder to access the "index" corresponding to the
+  //      pnz/samp/reg fields. These fields use 6 bits, so the
+  //      vector has a length of 64 for 16 regions.
+
+
+  // Create decoder for fields pnz to region
+  IdDictFieldImplementation::size_type bits = 
+    m_calodm_impl.bits() +
+    m_dmat_impl.bits() +
+    m_sampling_impl.bits() +
+    m_region_impl.bits();
+  IdDictFieldImplementation::size_type bits_offset = m_calodm_impl.bits_offset();
+  m_pnz_reg_impl.set_bits(bits, bits_offset);
+  int size = (1 << bits);
+
+  //      std::cout << "pnz_reg        "  
+  //  	    << m_pnz_reg_impl.show_to_string() << std::endl; 
+  //      std::cout << "size " << size << std::endl;
+    
+  //    std::cout << "pnz_reg "  << m_pnz_reg_impl.decode_index()  << " " 
+  //      << (std::string)m_pnz_reg_impl.ored_field()  << " " 
+  //      << std::hex << m_pnz_reg_impl.mask() << " " 
+  //      << m_pnz_reg_impl.zeroing_mask() << " " 
+  //      << std::dec << m_pnz_reg_impl.shift()
+  //      << " " << m_pnz_reg_impl.bits() << " " <<m_pnz_reg_impl.bits_offset()
+  //      << std::endl;
+  
+
+  // Set up vector as lookup table for lar hash calculation. 
+  m_lar_hash_calcs.resize(size);
+
+  for (unsigned int i = 0; i < m_lar_region_hash_max; ++i) {
+    Identifier regId = lar_region_id(i) ;
+    HashCalc hc;
+    int etamin = eta_min(regId);
+    if(etamin < 0) 
+      {
+	etamin = 0;
+	if(m_msgSvc)
+	  {
+	    log << MSG::WARNING << " seting etamin to 0 because actual value not found for regId " << show_to_string(regId) << endreq;
+	  }
+	else
+	  {
+	    std::cout << "WARNING !!! seting etamin to 0 because actual value not found for regId " << show_to_string(regId) << std::endl;
+	  }
+      }
+    Identifier min = zone_id ( regId, etamin, 0);
+    IdentifierHash min_hash = lar_zone_hash_binary_search(min);
+    hc.m_hash   = min_hash;
+    hc.m_etamin = etamin;
+    hc.m_nphi   = phi_max(min)+1 ;
+    m_lar_hash_calcs[m_pnz_reg_impl.unpack(min)] = hc;
+
+    if (m_pnz_reg_impl.unpack(min) >= size) 
+      {
+	if( m_msgSvc)
+	  {
+	    log << MSG::WARNING << "min > " << size << " " 
+		<< i << " "
+		<< show_to_string(min) << " " 
+		<< m_pnz_reg_impl.unpack(min) << " " 
+		<< endreq;
+	  }
+	else
+	  {
+	    std::cout << "min > " << size << " " 
+		      << i << " "
+		      << show_to_string(min) << " " 
+		      << m_pnz_reg_impl.unpack(min) << " " 
+		      << std::endl;
+	  }
+      }
+  }
+
+  // Check lar hash calculation
+  for (unsigned int i = 0; i < m_lar_zone_hash_max; ++i) {
+    Identifier id = lar_zone_id(i);
+    if (lar_zone_hash(id) != i) 
+      {
+	if( m_msgSvc)
+	  {
+	    log << MSG::ERROR << "lar zone ranges, id, hash, i = " 
+		<< show_to_string(id) << ", " 
+		<< lar_zone_hash(id) << ", " 
+		<< i
+		<< endreq;
+	  }
+	else
+	  {
+	    std::cout << " *****  Error ";
+	    std::cout << "lar zone ranges, id, hash, i = " 
+		      << show_to_string(id) << ", " 
+		      << lar_zone_hash(id) << ", " 
+		      << i
+		      << std::endl;
+	  }
+      }
+  }
+  
+  // Set up vector as lookup table for tile hash calculation. 
+  m_tile_hash_calcs.resize(size);
+
+  for (unsigned int i = 0; i < m_tile_region_hash_max; ++i) {
+    Identifier regId = tile_region_id(i) ;
+    HashCalc hc;
+    int etamin = eta_min(regId);
+    if(etamin < 0) 
+      {
+	etamin = 0;
+	if( m_msgSvc)
+	  {
+	    log << MSG::WARNING << "seting etamin to 0 because actual value not found for regId " << show_to_string(regId) << endreq;
+	  }
+	else
+	  {
+	    std::cout << "WARNING !!! seting etamin to 0 because actual value not found for regId " << show_to_string(regId) << std::endl;
+	  }
+      }
+    Identifier min = zone_id ( regId, etamin, 0);
+    IdentifierHash min_hash = tile_zone_hash_binary_search(min);
+    hc.m_hash   = min_hash;
+    hc.m_etamin = etamin;
+    hc.m_nphi   = phi_max(min)+1 ;
+    m_tile_hash_calcs[m_pnz_reg_impl.unpack(min)] = hc;
+
+    if (m_pnz_reg_impl.unpack(min) >= size) 
+      {
+	if( m_msgSvc)
+	  {
+	    log << MSG::WARNING << "min > " << size << " " 
+		<< i << " "
+		<< show_to_string(min) << " " 
+		<< m_pnz_reg_impl.unpack(min) << " " 
+		<< endreq;
+	  }
+	else
+	  {
+	    std::cout << "min > " << size << " " 
+		      << i << " "
+		      << show_to_string(min) << " " 
+		      << m_pnz_reg_impl.unpack(min) << " " 
+		      << std::endl;
+	  }
+      }
+  }
+
+  // Check tile hash calculation
+  for (unsigned int i = 0; i < m_tile_zone_hash_max; ++i) {
+    Identifier id = tile_zone_id(i);
+    if (tile_zone_hash(id) != i) 
+      {
+	if( m_msgSvc)
+	  {
+	    log << MSG::ERROR << "tile zone ranges, id, hash, i = " 
+		<< show_to_string(id) << ", " 
+		<< tile_zone_hash(id) << ", " 
+		<< i
+		<< endreq;
+	  }
+	else
+	  {
+	    std::cout << " *****  Error ";
+	    std::cout << "tile zone ranges, id, hash, i = " 
+		      << show_to_string(id) << ", " 
+		      << tile_zone_hash(id) << ", " 
+		      << i
+		      << std::endl;
+	  }
+      }
+  }
+  return 0;
+
+}
+
+  int  CaloDM_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << calo_field_value()
+	   << pos_neg_z(id)
+           << dmat(id)
+	   << sampling(id)
+	   << region(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	}
+    }
+    return (0);
+}
+
+IdContext       
+CaloDM_ID::region_context             (void) const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_REGION_INDEX));
+}
+
+IdContext       
+CaloDM_ID::zone_context              (void) const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_PHI_INDEX));
+}
+
+
+void CaloDM_ID::lar_region_id_checks (int pos_neg_z, int dmat, int sampling, int region)const  throw(CaloID_Exception)
+{
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << pos_neg_z << dmat << sampling << region ;
+  
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in CaloDM_ID::lar_region_id(field values), did not build, " +
+      strformat ("pos_neg_z: %d , dmat: %d, sampling: %d, region: %d ", 
+                 pos_neg_z , dmat, sampling , region);
+    throw CaloID_Exception(errorMessage , 3);
+  }
+
+  if (!m_full_lar_region_range.match(id)) { 
+    std::string errorMessage = "CaloDM_ID::lar_region_id() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_lar_zone_range;
+    throw CaloID_Exception(errorMessage , 3);
+  }
+}
+
+void CaloDM_ID::tile_region_id_checks (int pos_neg_z, int dmat, int sampling, int region)const  throw(CaloID_Exception)
+{
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << pos_neg_z << dmat << sampling << region ;
+  
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in CaloDM_ID::tile_region_id(field values), did not build, " +
+      strformat ("pos_neg_z: %d , dmat: %d, sampling: %d, region: %d ", 
+                 pos_neg_z , dmat, sampling , region);
+    throw CaloID_Exception(errorMessage , 3);
+  }
+
+  if (!m_full_tile_region_range.match(id)) { 
+    std::string errorMessage = "CaloDM_ID::tile_region_id() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_tile_zone_range;
+    throw CaloID_Exception(errorMessage , 3);
+  }
+}
+
+
+
+ void CaloDM_ID::lar_zone_id_checks   ( int pos_neg_z, int dmat, int sampling, int region,
+					int eta,       int phi ) const throw(CaloID_Exception)
+{  
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << pos_neg_z << dmat << sampling << region << eta << phi;
+
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in CaloDM_ID::lar_zone_id(field values), did not build, " +
+      strformat ("pos_neg_z: %d , dmat: %d, sampling: %d, region: %d , eta: %d , phi: %d ", 
+                 pos_neg_z , dmat, sampling , region, eta, phi);
+    throw CaloID_Exception(errorMessage , 4);
+  }
+
+  if (!m_full_lar_zone_range.match(id)) { 
+    std::string errorMessage = "CaloDM_ID::lar_zone_id() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_lar_zone_range;
+    throw CaloID_Exception(errorMessage , 4);
+  }
+}
+
+ void CaloDM_ID::tile_zone_id_checks   ( int pos_neg_z, int dmat, int sampling, int region,
+					 int eta,       int phi ) const throw(CaloID_Exception)
+{  
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << pos_neg_z << dmat << sampling << region << eta << phi;
+
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in CaloDM_ID::tile_zone_id(field values), did not build, " +
+      strformat ("pos_neg_z: %d , dmat: %d, sampling: %d, region: %d , eta: %d , phi: %d ", 
+                 pos_neg_z , dmat, sampling , region, eta, phi);
+    throw CaloID_Exception(errorMessage , 4);
+  }
+
+  if (!m_full_tile_zone_range.match(id)) { 
+    std::string errorMessage = "CaloDM_ID::tile_zone_id() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_tile_zone_range;
+    throw CaloID_Exception(errorMessage , 4);
+  }
+}
+
+
+void CaloDM_ID::zone_id_checks   ( const Identifier& regionId,
+				   int eta,  int phi ) const throw(CaloID_Exception) 
+{
+  // Fill expanded id
+    ExpandedIdentifier id; 
+
+    IdContext context = region_context();
+    if (get_expanded_id(regionId, id, &context)) {
+      std::string errorMessage = "CaloDM_ID::zone_id(regionId) result is not OK: ID= "
+	                       + show_to_string(regionId) ;
+      throw CaloID_Exception(errorMessage , 4);
+    }
+
+    id << eta << phi;
+
+    if( id.last_error () != ExpandedIdentifier::none) {
+      std::string errorMessage =
+        "Error in CaloDM_ID::zone_id(regionId,field values), values ok but did not build, " +
+        strformat ("eta: %d , phi: %d ", eta, phi);
+      throw CaloID_Exception(errorMessage , 4);
+    }
+    
+    if(is_lar(regionId)) {
+      if (!m_full_lar_zone_range.match(id)) {
+	std::string errorMessage = "CaloDM_ID::zone_id(regionId) result is not OK: ID, range = "
+	  + std::string(id) + " , " + (std::string)m_full_lar_zone_range;
+	throw CaloID_Exception(errorMessage , 4);
+      }
+    } else if(is_tile(regionId)) {
+      if (!m_full_tile_zone_range.match(id)) {
+	std::string errorMessage = "CaloDM_ID::zone_id(regionId) result is not OK: ID, range = "
+	  + std::string(id) + " , " + (std::string)m_full_tile_zone_range;
+	throw CaloID_Exception(errorMessage , 4);
+      }
+    }
+}
+
+
+/*=======================================*/
+int   CaloDM_ID::initLevelsFromDict(void) 
+/*=======================================*/
+{
+  // Msg Service
+  MsgStream log(m_msgSvc, "CaloDM_ID" );
+  std::string strg;
+  std::stringstream strm;
+  if(!m_dict) {
+    if( m_msgSvc) 
+      {
+	log << MSG::ERROR << "initLevelsFromDict - dictionary NOT initialized " 
+	    << endreq;
+      }
+    else
+      {
+	std::cout << "CaloDM_ID::initLevelsFromDict - dictionary NOT initialized "
+		  << std::endl ;
+      }
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_CALO_INDEX       = 999 ;
+  m_DETZSIDE_INDEX   = 999 ;
+  m_DMAT_INDEX       = 999 ;   
+  m_SAMPLING_INDEX   = 999 ; 
+  m_REGION_INDEX     = 999 ;
+  m_ETA_INDEX        = 999 ;
+  m_PHI_INDEX        = 999 ;
+
+  // Save index to a LArDM region for unpacking - search with region name
+  IdDictRegion* reg = m_dict->find_region("DM_4_1_0_0");
+  if (reg) 
+    {
+      m_calodm_region_index = reg->m_index;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << "initLevelsFromDict - unable to find lardm region " << endreq;
+	}
+      else
+	{
+	  std::cout << "CaloDM_ID::initLevelsFromDict - unable to find lardm region "  
+		    << std::endl;
+	}
+      return (1);
+    }
+  
+  
+  // Fing a CaloDM region
+  IdDictField* field = m_dict->find_field("subdet") ;
+  if (field) {
+    m_CALO_INDEX = field->m_index ;
+  }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'subdet' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'subdet' field "
+		    << std::endl ;
+	}
+      return (1);
+    }
+  
+  field = m_dict->find_field("DetZside") ;
+  if (field) 
+    {
+      m_DETZSIDE_INDEX = field->m_index ;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'DetZside' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'DetZside' field "
+		    << std::endl ;
+	}
+      return (1);
+    }
+ 
+ field = m_dict->find_field("DMvalue") ;
+  if (field) 
+    {
+      m_DMAT_INDEX = field->m_index ;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'DMvalue' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'DMvalue' field "
+		    << std::endl ;
+	}
+      return (1);
+    }
+ 
+
+ field = m_dict->find_field("samplingvalue") ;
+  if (field) 
+    {
+      m_SAMPLING_INDEX = field->m_index ;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'samplingvalue' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'samplingvalue' field "
+		    << std::endl ;
+	}
+    return (1);
+  }
+  
+  field = m_dict->find_field("DMregion") ;
+  if (field) 
+    {
+      m_REGION_INDEX = field->m_index ;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'DMregion' field " << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'DMregion' field "
+		    << std::endl ;
+	}
+      return (1);
+    }
+
+  /* std::cout << "m_region= " << m_REGION_INDEX << std::endl; */
+
+  field = m_dict->find_field("DMEta") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'DMEta' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'DMEta' field "
+		    << std::endl ;
+	}
+      return (1);
+  }
+ 
+  field = m_dict->find_field("phivalue") ;
+  if (field) 
+    {
+      m_PHI_INDEX = field->m_index ;
+    }
+  else 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'phivalue' field " 
+	      << endreq;
+	}
+      else
+	{
+	  std::cout <<  "CaloDM_ID::initLevelsFromDict - unable to find 'phivalue' field "
+		    << std::endl ;
+	}
+      return (1);
+    }
+ 
+ 
+  // Set the field implementations
+
+  const IdDictRegion& region = *m_dict->m_regions[m_calodm_region_index];
+
+  m_calo_impl     = region.m_implementation[m_CALO_INDEX]; 
+  m_calodm_impl   = region.m_implementation[m_DETZSIDE_INDEX]; 
+  m_dmat_impl     = region.m_implementation[m_DMAT_INDEX]; 
+  m_sampling_impl = region.m_implementation[m_SAMPLING_INDEX]; 
+  m_region_impl   = region.m_implementation[m_REGION_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
+
+  if(m_msgSvc)
+    {
+      //      log << MSG::DEBUG << "CaloDM_ID::initLevelsFromDict - found levels " << endreq ;
+      //      log << MSG::DEBUG << "subdet         " << m_CALO_INDEX     << endreq ;
+      //      log << MSG::DEBUG << "detzside       " << m_DETZSIDE_INDEX   << endreq ;
+      //      log << MSG::DEBUG << "Dmat           " << m_DMAT_INDEX << endreq ;
+      //      log << MSG::DEBUG << "sampling       " << m_SAMPLING_INDEX << endreq ;
+      //      log << MSG::DEBUG << "region         " << m_REGION_INDEX   << endreq ;
+      //      log << MSG::DEBUG << "eta            " << m_ETA_INDEX      << endreq ;
+      //      log << MSG::DEBUG << "phi            " << m_PHI_INDEX      << endreq ; 
+      log << MSG::DEBUG << "decode index and bit fields for each level: " << endreq;
+      log << MSG::DEBUG << "calo      "  << m_calo_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "detzside  "  << m_calodm_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "dmat      "  << m_dmat_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "samp      "  << m_sampling_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "reg       "  << m_region_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "eta       "  << m_eta_impl.show_to_string() << endreq;
+      log << MSG::DEBUG << "phi       "  << m_phi_impl.show_to_string() << endreq;
+    }
+  else
+    { 
+      //      std::cout << "CaloDM_ID::initLevelsFromDict - found levels " << std::endl ;
+      //      std::cout << "subdet         " << m_CALO_INDEX     << std::endl ;
+      //      std::cout << "detzside       " << m_DETZSIDE_INDEX   << std::endl ;
+      //      std::cout << "Dmat           " << m_DMAT_INDEX << std::endl ;
+      //      std::cout << "sampling       " << m_SAMPLING_INDEX << std::endl ;
+      //      std::cout << "region         " << m_REGION_INDEX   << std::endl ;
+      //      std::cout << "eta            " << m_ETA_INDEX      << std::endl ;
+      //      std::cout << "phi            " << m_PHI_INDEX      << std::endl ; 
+      std::cout << "decode index and bit fields for each level: " << std::endl;
+      std::cout << "calo      "  << m_calo_impl.show_to_string() << std::endl;
+      std::cout << "detzside  "  << m_calodm_impl.show_to_string() << std::endl;
+      std::cout << "dmat      "  << m_dmat_impl.show_to_string() << std::endl;
+      std::cout << "samp      "  << m_sampling_impl.show_to_string() << std::endl;
+      std::cout << "reg       "  << m_region_impl.show_to_string() << std::endl;
+      std::cout << "eta       "  << m_eta_impl.show_to_string() << std::endl;
+      std::cout << "phi       "  << m_phi_impl.show_to_string() << std::endl;
+    }
+  return(0) ;
+}
+
+/*=======================================*/
+int   CaloDM_ID::init_lar_hashes(void) 
+/*=======================================*/
+{
+  // Msg Service
+  MsgStream log(m_msgSvc, "CaloDM_ID" );
+  std::string strg;
+  std::stringstream strm;
+
+  // zone hash
+  m_lar_zone_hash_max = m_full_lar_zone_range.cardinality();
+  m_lar_zone_vec.resize(m_lar_zone_hash_max);
+  unsigned int nids = 0;
+  std::set<Identifier> ids;
+  for (unsigned int i = 0; i < m_full_lar_zone_range.size(); ++i) {
+    const Range& range = m_full_lar_zone_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier zon_id = zone_id   ( exp_id[m_DETZSIDE_INDEX],
+				      exp_id[m_DMAT_INDEX], 
+				      exp_id[m_SAMPLING_INDEX], 
+				      exp_id[m_REGION_INDEX] ,
+				      exp_id[m_ETA_INDEX] ,
+				      exp_id[m_PHI_INDEX] ) ;
+      if(!(ids.insert(zon_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " init_lar_hashes "
+		  << " duplicated id for lardm id. nids= " << nids
+		  << " compact Id  " << show_to_string(zon_id)
+		  << endreq; 
+	    }
+	  else
+	    {
+	      std::cout << " CaloDM_ID::init_lar_hashes "
+			<< " Error: duplicated id for lardm id. nids= " << nids
+			<< " compact Id  " ; 
+	      (*first).show();
+	      std::cout << std::endl;
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_lar_zone_hash_max) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_lar_hashes "
+	      << " set size NOT EQUAL to hash max. size " << ids.size()
+	      << " hash max " << m_lar_zone_hash_max << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloDM_ID::init_lar_hashes "
+		    << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+		    << " hash max " << m_lar_zone_hash_max
+		    << std::endl;
+	}
+      return (1);
+    }
+
+  nids=0;
+  std::set<Identifier>::const_iterator first = ids.begin();
+  std::set<Identifier>::const_iterator last  = ids.end();
+  for (;first != last && nids < m_lar_zone_vec.size(); ++first) {
+    m_lar_zone_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  // region hash
+  m_lar_region_hash_max = m_full_lar_region_range.cardinality();
+  m_lar_region_vec.resize(m_lar_region_hash_max);
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_lar_region_range.size(); ++i) {
+    const Range& range = m_full_lar_region_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      //     std::cout << "exp_id = " << (std::string)exp_id << std::endl;
+      Identifier reg_id = region_id   ( exp_id[m_DETZSIDE_INDEX],
+					exp_id[m_DMAT_INDEX], 
+					exp_id[m_SAMPLING_INDEX], 
+					exp_id[m_REGION_INDEX] );
+      if(!(ids.insert(reg_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " init_lar_hashes (regions) "
+		  << " duplicated id for region id. nids= " << nids
+		  << " compact Id  " << show_to_string(reg_id) 
+		  << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " CaloDM_ID::init_lar_hashes (regions) "
+			<< " Error: duplicated id for region id. nids= " << nids
+			<< " compact Id  " ;
+	      (*first).show();
+	      std::cout << " " << show_to_string(reg_id) << std::endl;
+	      std::cout << std::endl;
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_lar_region_hash_max) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_lar_hashes "
+	      << " set size NOT EQUAL to region hash max. size " << ids.size()
+	      << " region hash max " << m_lar_region_hash_max << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloDM_ID::init_lar_hashes "
+		    << " Error: set size NOT EQUAL to region hash max. size " << ids.size()
+		    << " region hash max " << m_lar_region_hash_max
+		    << std::endl;
+	}
+    return (1);
+  }
+
+  nids=0;
+  first = ids.begin();
+  last  = ids.end();
+  for (;first != last && nids < m_lar_region_vec.size(); ++first) {
+    m_lar_region_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  return (0);
+                   
+}
+
+/*=====================================*/
+int   CaloDM_ID::init_tile_hashes(void) 
+/*=====================================*/
+{
+  // Msg Service
+  MsgStream log(m_msgSvc, "CaloDM_ID" );
+  std::string strg;
+  std::stringstream strm;
+
+  // zone hash
+  m_tile_zone_hash_max = m_full_tile_zone_range.cardinality();
+  m_tile_zone_vec.resize(m_tile_zone_hash_max);
+  unsigned int nids = 0;
+  std::set<Identifier> ids;
+  for (unsigned int i = 0; i < m_full_tile_zone_range.size(); ++i) {
+    const Range& range = m_full_tile_zone_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier zon_id = zone_id   ( exp_id[m_DETZSIDE_INDEX],
+				      exp_id[m_DMAT_INDEX], 
+				      exp_id[m_SAMPLING_INDEX], 
+				      exp_id[m_REGION_INDEX] ,
+				      exp_id[m_ETA_INDEX] ,
+				      exp_id[m_PHI_INDEX] ) ;
+      /*
+      std::cout << "detZside,dmat,samp,reg,eta,phi= " 
+		<<exp_id[m_DETZSIDE_INDEX] << ", "
+		<<exp_id[m_DMAT_INDEX] << ", "
+		<<exp_id[m_SAMPLING_INDEX] << ", "
+		<<exp_id[m_REGION_INDEX] << ", "
+		<<exp_id[m_ETA_INDEX] << ", "
+		<<exp_id[m_PHI_INDEX];
+      std::cout << std::endl;
+      std::cout << "tile zon_id= " << show_to_string(zon_id) << std::endl;
+      */
+      if(!(ids.insert(zon_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " init_tile_hashes "
+		  << " duplicated id for tiledm id. nids= " << nids
+		  << " compact Id  " << show_to_string(zon_id)
+		  << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " CaloDM_ID::init_tile_hashes "
+			<< " Error: duplicated id for tiledm id. nids= " << nids
+			<< " compact Id  " ;
+	      (*first).show();
+	      std::cout << std::endl;
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_tile_zone_hash_max) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_tile_hashes "
+	      << " set size NOT EQUAL to hash max. size " << ids.size()
+	      << " hash max " << m_tile_zone_hash_max << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloDM_ID::init_tile_hashes "
+		    << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+		    << " hash max " << m_tile_zone_hash_max
+		    << std::endl;
+	}
+      return (1);
+  }
+
+  nids=0;
+  std::set<Identifier>::const_iterator first = ids.begin();
+  std::set<Identifier>::const_iterator last  = ids.end();
+  for (;first != last && nids < m_tile_zone_vec.size(); ++first) {
+    m_tile_zone_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  // region hash
+  m_tile_region_hash_max = m_full_tile_region_range.cardinality();
+  m_tile_region_vec.resize(m_tile_region_hash_max);
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_tile_region_range.size(); ++i) {
+    const Range& range = m_full_tile_region_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      //     std::cout << "exp_id = " << (std::string)exp_id << std::endl;
+      Identifier reg_id = region_id   ( exp_id[m_DETZSIDE_INDEX],
+					exp_id[m_DMAT_INDEX], 
+					exp_id[m_SAMPLING_INDEX], 
+					exp_id[m_REGION_INDEX] );
+      if(!(ids.insert(reg_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " init_tile_hashes (regions) "
+		  << " duplicated id for region id. nids= " << nids
+		  << " compact Id  " << show_to_string(reg_id) 
+		  << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " CaloDM_ID::init_tile_hashes (regions) "
+			<< " Error: duplicated id for region id. nids= " << nids
+			<< " compact Id  " ;
+	      (*first).show();
+	      std::cout << " " << show_to_string(reg_id) << std::endl;
+	      std::cout << std::endl;
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_tile_region_hash_max) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_tile_hashes "
+	      << " set size NOT EQUAL to region hash max. size " << ids.size()
+	      << " region hash max " << m_tile_region_hash_max << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloDM_ID::init_tile_hashes "
+		    << " Error: set size NOT EQUAL to region hash max. size " << ids.size()
+		    << " region hash max " << m_tile_region_hash_max
+		    << std::endl;
+	}
+    return (1);
+  }
+
+  nids=0;
+  first = ids.begin();
+  last  = ids.end();
+  for (;first != last && nids < m_tile_region_vec.size(); ++first) {
+    m_tile_region_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  return (0);
+                   
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloIDHelper.cxx b/Calorimeter/CaloIdentifier/src/CaloIDHelper.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..66e477acfd08caa32ed2e88f50e0adb98b66ee78
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloIDHelper.cxx
@@ -0,0 +1,275 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/CaloIDHelper.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Base class to factor out code common among Calo ID helpers.
+ */
+
+
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "IdDict/IdDictDefs.h"
+#include "Identifier/Range.h"
+#include "GaudiKernel/MsgStream.h"
+#include "boost/foreach.hpp"
+
+
+
+/**
+ * @brief Constructor.
+ *        Starts in an uninitialized state.
+ */
+CaloIDHelper::HashGroup::HashGroup ()
+  : m_end_index(99999)
+{
+}
+
+
+/**
+ * @brief Initialize.
+ * @param name Name of this group (only for error reporting).
+ * @param ids Set of Identifiers comprising this group.
+ * @param end_index The ending index for the context for this group.
+ * @parma msgSvc The global message service
+ *               (may be 0, only for error reporting).
+ * @param full_range The @c MultiRange corresponding to this group.
+ *                   If supplied, the side of the @c ids set is checked
+ *                   against the range's cardinality.
+ * @return 0 on success; non-zero on failure.
+ */
+int CaloIDHelper::HashGroup::init (const std::string& name,
+                                   const std::set<Identifier>& ids,
+                                   size_type end_index,
+                                   IMessageSvc* msgSvc,
+                                   const MultiRange* full_range)
+{
+  m_end_index = end_index;
+  if (full_range && full_range->cardinality() != ids.size()) {
+    MsgStream log (msgSvc, "CaloIDHelper");
+    log << MSG::ERROR  << name << " set size " << ids.size()
+        << " not equal to hash max " << full_range->cardinality() << endreq;
+    return 1;
+  }
+  m_id_vec.assign (ids.begin(), ids.end());
+  return 0;
+}
+
+
+/**
+ * @brief Look up the hash code corresponding ot an Identifier.
+ *        Uses binary search.
+ * @param id The identifier to look up.
+ * @param[out] hash_id The corresponding hash code.
+ * @return 0 if the Identifier was found; non-zero otherwise.
+ */
+int CaloIDHelper::HashGroup::get_hash (Identifier id,
+                                       IdentifierHash& hash_id) const
+{
+  std::vector<Identifier>::const_iterator it = std::lower_bound(m_id_vec.begin(),m_id_vec.end(),id);
+  if ( it != m_id_vec.end() ){
+    hash_id = it - m_id_vec.begin();
+    return 0;
+  }
+  return 1;
+}
+
+
+/** 
+ * @brief Return the context for this group.
+ */
+IdContext CaloIDHelper::HashGroup::context() const
+{
+  ExpandedIdentifier id;
+  return IdContext (id, 0, m_end_index);
+}
+
+
+//*************************************************************************
+
+
+/**
+ * @brief Constructor.  Makes an uninitialized helper.
+ *        To initialize, call @c initialize_base_from_dictionary,
+ *        followed by @c init_channels and @c init_regions.
+ * @param name Name of this helper (for error reporting).
+ */
+CaloIDHelper::CaloIDHelper (const std::string& name)
+  : m_name (name),
+    m_dict(0)
+{
+}
+
+
+/**
+ * @brief Convert a hash code to an Identifier for either channels or regions,
+ *        depending on the context.
+ *        If you know the context at compile-time, @c channel_id and
+ *        @c region_id will be faster (but they don't do range checking).
+ * @param hash_id The hash code to convert.
+ * @param[out] id The resulting Identifier.  Will be invalid if there
+ *                was an error.
+ * @param context The context in which to do the conversion
+ *                (specifies whether we want channels or regions).
+ * @return 0 for success, non-zero for failure (unrecognized context,
+ *         or hash code out of range).
+ */
+int CaloIDHelper::get_id  (const IdentifierHash& hash_id,
+                           Identifier& id,
+                           const IdContext* context ) const
+{
+  int result = 1;
+  id.clear();
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) { 
+    const HashGroup* hg = 0;
+    if (m_channels.end_index() == end) hg = &m_channels;
+    else if (m_regions.end_index() == end) hg = &m_regions;
+
+    if (hg) {
+      if (hash_id < hg->hash_max()) {
+	id = hg->id (hash_id);
+	result = 0;
+      }
+    }
+  }
+
+  return(result);
+}
+
+
+/**
+ * @brief Convert an Identifier to a hash code for either channels or regions,
+ *        depending on the context.
+ *        Uses binary search.
+ *        Some of the subdetector-specific helpers define faster
+ *        versions of @c channel_hash and @c region_hash (that,
+ *        however, do less checking).
+ * @param id The identifier to convert.
+ * @param[out] hash_id The resulting hash code.  Will be invalid if there
+ *                was an error.
+ * @param context The context in which to do the conversion
+ *                (specifies whether we want channels or regions).
+ * @return 0 for success, non-zero for failure (unrecognized context
+ *         or Identifier.
+ */
+int CaloIDHelper::get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context ) const
+{
+  hash_id = IdentifierHash();
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) { 
+    const HashGroup* hg = 0;
+    if (m_channels.end_index() == end) hg = &m_channels;
+    else if (m_regions.end_index() == end) hg = &m_regions;
+
+    if (hg)
+      return hg->get_hash (id, hash_id);
+  }
+
+  return 1;
+}
+
+
+/**
+ * @brief Return the eta granularity of a region, or @c NOT_VALID.
+ * @param regHash REGION hash code.
+ */
+float CaloIDHelper::etaGranularity(const IdentifierHash regHash) const
+{
+  if (regHash >= m_vecOfDictRegions.size()) return NOT_VALID;
+  return m_vecOfDictRegions[regHash]->m_deta;
+}
+
+
+/**
+ * @brief Return the phi granularity of a region, or @c NOT_VALID.
+ * @param regHash REGION hash code.
+ */
+float CaloIDHelper::phiGranularity(const IdentifierHash regHash) const
+{
+  if (regHash >= m_vecOfDictRegions.size()) return NOT_VALID;
+  return  2. * M_PI / m_vecOfDictRegions[regHash]->m_dphi ;
+}
+
+
+/**
+ * @brief Return the minimum eta of region, or @c NOT_VALID.
+ * @param regHash REGION hash code.
+ */
+float CaloIDHelper::eta0(const IdentifierHash regHash) const
+{
+  if (regHash >= m_vecOfDictRegions.size()) return NOT_VALID;
+  return (m_vecOfDictRegions[regHash]->m_eta0);
+}
+
+
+/**
+ * @brief Return the minimum phi of region, or @c NOT_VALID.
+ * @param regHash REGION hash code.
+ */
+float CaloIDHelper::phi0(const IdentifierHash regHash) const
+{
+  if (regHash >= m_vecOfDictRegions.size()) return NOT_VALID;
+  return (m_vecOfDictRegions[regHash]->m_phi0);
+}
+
+
+/**
+ * @brief Do basic initialization of the helper.
+ * @param dict_mgr  The dictionary manager returned from the parser.
+ * @param dict_name The dictionary name (eg, `LArCalorimeter').
+ * @return 0 on success, non-zero on failure.
+ */
+int
+CaloIDHelper::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                               const std::string& dict_name)
+{
+  // init base object
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
+
+  // Register version of dictionary 
+  if (register_dict_tag(dict_mgr, dict_name)) return(1);
+
+  m_dict = dict_mgr.find_dictionary (dict_name);
+  if(!m_dict) {
+    MsgStream log(m_msgSvc, "CaloIDHelper" );
+    log << MSG::ERROR << " cannot access " << dict_name <<  "dictionary"
+        << endreq;
+    return 1;
+  }
+  return 0;
+}
+
+
+/**
+ * @brief Initialize the list of detector regions.
+ *        @c init_regions should have been called first.
+ * @param group_name The group for this helper.
+ * @return 0 on success; non-zero on failure.
+ */
+int
+CaloIDHelper::fill_vec_of_dict_regions (const std::string& group_name /*= ""*/)
+{
+  m_vecOfDictRegions.clear();
+  m_vecOfDictRegions.reserve (regions().hash_max());
+  IdContext region_cntxt = region_context();
+  ExpandedIdentifier expRegId;
+  BOOST_FOREACH (Identifier id, regions().range()) {
+    if(!get_expanded_id(id, expRegId, &region_cntxt)) {
+      m_vecOfDictRegions.push_back (m_dict->find_region(expRegId,group_name));
+    }
+  }
+  assert (m_vecOfDictRegions.size() == regions().hash_max());
+  return 0;
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloID_Exception.cxx b/Calorimeter/CaloIdentifier/src/CaloID_Exception.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..f485e21f222004ccc801ec8255d715cfef5fabeb
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloID_Exception.cxx
@@ -0,0 +1,39 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/CaloID_Exception.h"
+#include "CxxUtils/StrFormat.h"
+
+using CxxUtils::strformat;
+
+
+CaloID_Exception::CaloID_Exception() : 
+m_message("No error message") , m_code( 999 ) 
+{  }
+
+CaloID_Exception::CaloID_Exception(std::string  lMessage , int lCode) : 
+m_message ( lMessage ) , m_code ( lCode ) 
+{ }
+
+void CaloID_Exception::message(std::string lMessage) 
+{ m_message = lMessage ;}
+
+std::string CaloID_Exception::message() const 
+{ return m_message;}
+
+void CaloID_Exception::code(int lCode) 
+{ m_code = lCode ;}
+
+int CaloID_Exception::code() const 
+{ return m_code;}
+
+CaloID_Exception::operator std::string () 
+
+{
+  return
+    strformat ("CaloID_Exception - Error code: %d  \n ", this->code()) +
+    this->message();
+}
+
+CaloID_Exception:: ~CaloID_Exception() {}
diff --git a/Calorimeter/CaloIdentifier/src/CaloIdManager.cxx b/Calorimeter/CaloIdentifier/src/CaloIdManager.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..6a3a2d93ad5d41dcb8b5ea6ecc36d43759dc7040
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloIdManager.cxx
@@ -0,0 +1,308 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Calorimeter identifier package
+ -----------------------------------------
+ Copyright (C) 2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>	$Id: CaloIdManager.cxx,v 1.3 2007-02-08 16:18:23 prieur Exp $
+//<version>	$Name: not supported by cvs2svn $
+
+
+// Calo includes
+#include "CaloIdentifier/CaloIdManager.h"
+#include "CaloIdentifier/CaloCell_ID.h"
+#include "CaloIdentifier/CaloLVL1_ID.h"
+#include "CaloIdentifier/LArEM_ID.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "CaloIdentifier/TileID.h"
+#include "CaloIdentifier/TTOnlineID.h"
+#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
+#include "CaloIdentifier/LArEM_SuperCell_ID.h"
+#include "CaloIdentifier/LArHEC_SuperCell_ID.h"
+#include "CaloIdentifier/LArFCAL_SuperCell_ID.h"
+#include "CaloIdentifier/Tile_SuperCell_ID.h"
+
+// Athena/Gaudi includes
+#include "GaudiKernel/Bootstrap.h"
+#include "GaudiKernel/ISvcLocator.h"
+#include "GaudiKernel/IMessageSvc.h"
+#include "StoreGate/StoreGateSvc.h"
+
+CaloIdManager * CaloIdManager::s_instance = 0;
+
+CaloIdManager::CaloIdManager(void)
+    :
+    m_isInitialized(false),
+    m_cell_id(0),
+    m_dm_id(0),
+    m_lvl1_id(0),
+    m_em_id(0),
+    m_fcal_id(0),
+    m_minifcal_id(0),
+    m_hec_id(0),
+    m_tile_id(0),
+    m_ttonline_id(0),
+    m_cell_supercell_id(0),
+    m_em_supercell_id(0),
+    m_hec_supercell_id(0),
+    m_fcal_supercell_id(0),
+    m_tile_supercell_id(0)
+{
+}
+
+CaloIdManager::~CaloIdManager(void)
+{
+}
+
+
+const CaloIdManager*
+CaloIdManager::instance                (void)
+{
+    if (s_instance == 0) {
+
+	// The following code can be removed once all useage the singleton has
+	// been removed and replaced by accessing this object via the transient
+	// detector store. Use the instance that's in the transient detector
+	// store if it exists. Otherwise create a new instance, register it in
+	// the store and return that. First, locate the StoreGate instance that's
+	// managing the transient detector store.
+
+	StoreGateSvc* detStore = 0;
+	IMessageSvc*  msgSvc;
+	const CaloIdManager* theMgr;
+
+	ISvcLocator* svcLoc = Gaudi::svcLocator( );
+	StatusCode status   = svcLoc->service( "MessageSvc", msgSvc );
+
+	if ( status.isSuccess( ) ) {
+
+	    MsgStream log(msgSvc, "CaloIdManager" );
+	    status = svcLoc->service( "DetectorStore", detStore );
+
+	    if ( status.isSuccess( ) ) {
+
+		// Test whether the instance already exists in the transient
+		// detector store
+		if ( detStore->contains<CaloIdManager>("CaloIdManager") ) {
+
+		    // The instance already exists - retrieve it and save it locally.
+
+		    status     = detStore->retrieve( theMgr );
+		    if ( status.isSuccess( ) ) {
+		      s_instance = const_cast<CaloIdManager*>(theMgr);
+		    }
+		    else
+		      {
+			log << MSG::ERROR << " Failed to retrieve CaloIdManager " << endreq;
+		      }
+		}
+
+	    } else {
+		log << MSG::ERROR << "Could not locate DetectorStore" << endreq;
+	    }
+
+	} else {
+	    std::cerr << "CaloIdManager: Could not locate the MessageSvc!!!"
+		      << std::endl;
+	}
+
+	if (s_instance == 0) {
+	    s_instance = new CaloIdManager;
+
+	    // Register this instance in the transient detector store if it
+	    // hasn't already been done.
+	    if ( 0 != detStore ) {
+		status = detStore->record( s_instance, "CaloIdManager" );
+		if ( ! status.isSuccess( ) ) {
+		  std::cerr << "CaloIdManager: Failed to record CaloIdManager "
+		      << std::endl;
+		}
+	    }
+	}
+
+    }
+
+    return s_instance;
+}
+
+
+const CaloCell_ID*
+CaloIdManager::getCaloCell_ID           (void) const
+{
+    return (m_cell_id);
+}
+
+const CaloDM_ID*
+CaloIdManager::getDM_ID                 (void) const
+{
+    return (m_dm_id);
+}
+
+const CaloLVL1_ID*
+CaloIdManager::getLVL1_ID              (void) const
+{
+    return (m_lvl1_id);
+}
+const LArEM_ID*
+CaloIdManager::getEM_ID                (void) const
+{
+    return (m_em_id);
+}
+const LArFCAL_ID*
+CaloIdManager::getFCAL_ID              (void) const
+{
+    return (m_fcal_id);
+}
+const LArMiniFCAL_ID*
+CaloIdManager::getMiniFCAL_ID          (void) const
+{
+    return (m_minifcal_id);
+}
+const LArHEC_ID*
+CaloIdManager::getHEC_ID               (void) const
+{
+    return (m_hec_id);
+}
+const TileID*
+CaloIdManager::getTileID               (void) const
+{
+    return (m_tile_id);
+}
+const TTOnlineID*
+CaloIdManager::getTTOnlineID           (void) const
+{
+    return (m_ttonline_id);
+}
+const CaloCell_SuperCell_ID*
+CaloIdManager::getCaloCell_SuperCell_ID(void) const
+{
+    return (m_cell_supercell_id);
+}
+const LArEM_SuperCell_ID*
+CaloIdManager::getEM_SuperCell_ID      (void) const
+{
+    return (m_em_supercell_id);
+}
+const LArHEC_SuperCell_ID*
+CaloIdManager::getHEC_SuperCell_ID      (void) const
+{
+    return (m_hec_supercell_id);
+}
+const LArFCAL_SuperCell_ID*
+CaloIdManager::getFCAL_SuperCell_ID      (void) const
+{
+    return (m_fcal_supercell_id);
+}
+const Tile_SuperCell_ID*
+CaloIdManager::getTile_SuperCell_ID      (void) const
+{
+    return (m_tile_supercell_id);
+}
+
+
+void
+CaloIdManager::initialize              (void)
+{
+  m_isInitialized = true;
+}
+
+bool
+CaloIdManager::isInitialized           (void) const
+{
+    return (m_isInitialized);
+}
+
+
+void
+CaloIdManager::set_helper              (const CaloCell_ID*     idHelper)
+{
+    m_cell_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const CaloDM_ID* idHelper)
+{
+    m_dm_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const CaloLVL1_ID*     idHelper)
+{
+    m_lvl1_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const LArEM_ID* idHelper)
+{
+    m_em_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const LArFCAL_ID*     idHelper)
+{
+    m_fcal_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const LArMiniFCAL_ID*     idHelper)
+{
+    m_minifcal_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const LArHEC_ID* idHelper)
+{
+    m_hec_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const TileID*     idHelper)
+{
+    m_tile_id = idHelper;
+}
+void
+
+CaloIdManager::set_helper              (const TTOnlineID*    idHelper)
+{
+    m_ttonline_id = idHelper;
+}
+
+void
+CaloIdManager::set_helper              (const CaloCell_SuperCell_ID* idHelper)
+{
+    m_cell_supercell_id = idHelper;
+}
+
+
+void
+CaloIdManager::set_helper              (const LArEM_SuperCell_ID* idHelper)
+{
+    m_em_supercell_id = idHelper;
+}
+
+
+void
+CaloIdManager::set_helper              (const LArHEC_SuperCell_ID* idHelper)
+{
+    m_hec_supercell_id = idHelper;
+}
+
+
+void
+CaloIdManager::set_helper              (const LArFCAL_SuperCell_ID* idHelper)
+{
+    m_fcal_supercell_id = idHelper;
+}
+
+
+void
+CaloIdManager::set_helper              (const Tile_SuperCell_ID* idHelper)
+{
+    m_tile_supercell_id = idHelper;
+}
diff --git a/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx b/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..82393b830ff67e77e7ca77ee1d2a66af67a72e5a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloLVL1_ID.cxx
@@ -0,0 +1,1343 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/CaloLVL1_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "CxxUtils/StrFormat.h"
+#include "GaudiKernel/MsgStream.h"
+#include <algorithm>
+#include <string>
+#include <set>
+#include <stdio.h>
+#include <iostream>
+#include <math.h>
+#include <assert.h>
+
+
+using CxxUtils::strformat;
+
+
+CaloLVL1_ID::CaloLVL1_ID(void) : 
+    m_lvl1_region_index(0) 
+  , m_CALO_INDEX(999) 
+  , m_DETZSIDE_INDEX(999) 
+  , m_SAMPLING_INDEX(999) 
+  , m_REGION_INDEX(999) 
+  , m_ETA_INDEX(999)
+  , m_PHI_INDEX(999)
+  , m_LAYER_INDEX(999)
+  , m_dict(0)
+  , m_tower_hash_max(0) 
+  , m_layer_hash_max(0) 
+  , m_region_hash_max(0) 
+
+{
+
+}
+
+CaloLVL1_ID:: ~CaloLVL1_ID(){}
+
+
+
+IdContext	
+CaloLVL1_ID::region_context 		(void) const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_REGION_INDEX));
+}
+
+IdContext	
+CaloLVL1_ID::tower_context 		(void) const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_PHI_INDEX));
+}
+
+IdContext	
+CaloLVL1_ID::layer_context 		(void) const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_LAYER_INDEX));
+}
+
+
+
+int  CaloLVL1_ID::get_id  (const IdentifierHash& hash_id, Identifier& id, const IdContext* context) const
+{
+  MsgStream log(m_msgSvc, "CaloLVL1_ID" );
+  std::stringstream strm;
+  std::string strg;
+  int result = 1;
+  id.clear();
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  // cannot get hash if end is 0:
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) { 
+    if (m_REGION_INDEX == end) {
+      if (hash_id < (unsigned int)(m_region_vec.end() - m_region_vec.begin())) 
+	{
+	  id = m_region_vec[hash_id];
+	  result = 0;
+	} 
+      else 
+	{
+	  strm << hash_id;
+	  strg = " hash_id out of range "+strm.str();
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << strg << endreq;
+	    }
+	  else
+	    {
+	      std::cout << strg << std::endl;
+	    }
+	}
+    }
+    else if (m_PHI_INDEX == end) {
+      if (hash_id < (unsigned int)(m_tower_vec.end() - m_tower_vec.begin())) {
+	id = m_tower_vec[hash_id];
+	result = 0;
+      } 
+      else 
+	{
+	  strm << hash_id;
+	  strg = " hash_id out of range "+strm.str();
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << strg << endreq;
+	    }
+	  else
+	    {
+	      std::cout << strg << std::endl;
+	    }
+	}
+    }
+    else if(m_LAYER_INDEX == end) { 
+      if (hash_id < (unsigned int)(m_layer_vec.end() - m_layer_vec.begin())) {
+	id = m_layer_vec[hash_id];
+	result = 0;
+      } 
+      else 
+	{
+	  strm << hash_id;
+	  strg = " hash_id out of range "+strm.str();
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << strg << endreq;
+	    }
+	  else
+	    {
+	      std::cout << strg << std::endl;
+	    }
+	}
+    }
+  }
+  return(result);
+}
+
+int  CaloLVL1_ID::get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context) const
+{
+  hash_id = 0;
+  int result = 1;
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) {
+    if (m_REGION_INDEX  == end) {
+      Identifier redId = region_id (id);
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_region_vec.begin(),m_region_vec.end(),redId);
+      if ( it != m_region_vec.end() ){
+	hash_id = it - m_region_vec.begin();
+	result = 0;
+      }
+    }
+    else if (m_PHI_INDEX  == end) {
+
+      Identifier redId = tower_id (id);
+
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_tower_vec.begin(),m_tower_vec.end(),redId);
+      if ( it != m_tower_vec.end() ){
+	hash_id = it - m_tower_vec.begin();
+	result = 0;
+      }
+    }
+    else if (m_LAYER_INDEX  == end) {
+
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_layer_vec.begin(),m_layer_vec.end(),id);
+      if ( it != m_layer_vec.end() ){
+	hash_id = it - m_layer_vec.begin();
+	result = 0;
+      }
+    }
+
+    else {
+      std::string errorMessage =
+        "Error in CaloLVL1_ID::get_hash, invalid context ";
+      throw CaloID_Exception(errorMessage , 10);
+    }
+  }
+
+  return (result);
+}
+
+
+
+
+int  CaloLVL1_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+{
+  MsgStream log(m_msgSvc, "CaloLVL1_ID" );
+  std::string strg = "initialize_from_dictionary";
+  if(m_msgSvc) {
+    log << MSG::INFO << strg << endreq;
+  }
+  else {
+    std::cout << strg << std::endl;
+  }
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  std::stringstream strm;
+  std::stringstream strm1;
+  std::stringstream strm2;
+  std::string strg1;
+  std::string strg2;
+  
+  // init base object
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
+
+  // Register version of the Calorimeter dictionary
+  if (register_dict_tag(dict_mgr, "Calorimeter")) return(1);
+
+  m_dict = dict_mgr.find_dictionary ("Calorimeter"); 
+  if(!m_dict) 
+    {
+      strg= " initialize_from_dict - cannot access LVL1Calorimeter dictionary ";
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}
+      return(1);
+    }
+  
+  // Initialize the field indices
+  if(initLevelsFromDict()) return (1);
+
+
+   // Find values for the calo and  LVL1 (neg) fields
+    int caloValue   = -1;
+    if (m_dict->get_label_value("subdet", "Calorimeter", caloValue)) 
+      {
+	strm << m_dict->m_name;
+	strg= "Could not get value for label 'Calorimeter' of field 'subdet' in dictionary "+strm.str(); 
+	if(m_msgSvc)
+	  {
+	    log << MSG::ERROR << strg << endreq;
+	  }
+	else
+	  {
+	    std::cout << strg << std::endl;
+	  }
+        return (1);
+      }
+
+    int lvl1CaloValue   = -1;
+    // negative half
+    //    if (m_dict->get_label_value("DetZside", "negative_lvl1_side", lvl1CaloValue)) 
+    // positive half  FLG 12 Jul 07: negative side -> problem for test beam
+    if (m_dict->get_label_value("DetZside", "positive_lvl1_side", lvl1CaloValue)) 
+      {
+	strm << m_dict->m_name;
+	//	strg = " Could not get value for label 'negative_lvl1_side' of field 'DetZside in dictionary"+strm.str();
+	strg = " Could not get value for label 'positive_lvl1_side' of field 'DetZside in dictionary"+strm.str();
+	if(m_msgSvc)
+	  {
+	    log << MSG::ERROR << strg << endreq;
+	  }
+	else
+	  {
+	    std::cout << strg << std::endl;
+	  }
+	return (1);
+    }
+
+    // Set up id for region and range prefix
+    // NOTE: negative value is good enough to get multirange since the
+    // regions are symmetric in +/-eta
+    // FLG Jul 07: EXCEPT FOR CTB !!!!!!!!!!
+
+    ExpandedIdentifier reg_id;
+    reg_id.add(caloValue);
+    reg_id.add(lvl1CaloValue); 
+    Range prefix;
+    m_full_region_range = m_dict->build_multirange(reg_id, prefix, "region");
+    m_full_tower_range = m_dict->build_multirange(reg_id, prefix, "phi");
+    m_full_layer_range = m_dict->build_multirange(reg_id, prefix);
+
+    // Setup the hash tables
+    if(init_hashes()) return (1);
+
+    // Setup hash tables for finding neighbors
+    if(init_neighbors()) return (1);     
+
+    strm1 << (std::string)m_full_tower_range; 
+    strm2 << (std::string)m_full_layer_range;
+    strg  = " CaloLVL1_ID::initialize_from_dict : ";
+    strg1 = " tower range -> "+strm1.str();
+    strg2 = " layer range -> "+strm2.str();
+    if(m_msgSvc)
+      {
+	log << MSG::DEBUG << strg << endreq;
+	log << MSG::DEBUG << strg1 << endreq;
+	log << MSG::DEBUG << strg2 << endreq;
+      }
+    else
+      {
+	std::cout << strg << std::endl;
+	std::cout << strg1 << std::endl;
+	std::cout << strg2 << std::endl;
+      }
+
+      //std::cout << " CaloLVL1_ID::initialize_from_dict : " 
+      //        << std::endl;
+      //std::cout << " tower range -> "  << (std::string)m_full_tower_range
+      //        << std::endl;
+      //std::cout << " layer range -> "  << (std::string)m_full_layer_range
+      //        << std::endl;
+
+
+    // Setup for hash calculation
+
+    // Regions have uniform eta/phi granularity 
+    // The lookup table only needs to contain the
+    // hash offset for each region, the first eta index
+    // and the number of phi cells.
+
+    // The implementation requires:
+
+    //   1) a lookup table for each region containing hash offset,
+    //      etamin and nphi
+    //   2) a decoder to access the "index" corresponding to the
+    //      pnz/samp/reg fields. These fields use 6 bits, so the
+    //      vector has a length of 64 for 16 regions.
+
+
+    // Create decoder for fields pnz to region
+    IdDictFieldImplementation::size_type bits = 
+	m_lvl1_impl.bits() +
+	m_sampling_impl.bits() +
+	m_region_impl.bits();
+    IdDictFieldImplementation::size_type bits_offset = m_lvl1_impl.bits_offset();
+    m_pnz_reg_impl.set_bits(bits, bits_offset);
+    int size = (1 << bits);
+
+//      std::cout << "pnz_reg        "  
+//  	    << m_pnz_reg_impl.show_to_string() << std::endl; 
+//      std::cout << "size " << size << std::endl;
+    
+
+    //    std::cout << "pnz_reg "  << m_pnz_reg_impl.decode_index()  << " " 
+    //      << (std::string)m_pnz_reg_impl.ored_field()  << " " 
+    //      << std::hex << m_pnz_reg_impl.mask() << " " 
+    //      << m_pnz_reg_impl.zeroing_mask() << " " 
+    //      << std::dec << m_pnz_reg_impl.shift()
+    //      << " " << m_pnz_reg_impl.bits() << " " <<m_pnz_reg_impl.bits_offset()
+    //      << std::endl;
+
+
+    // Set up vector as lookup table for hash calculation. 
+    m_hash_calcs.resize(size);
+
+    for (unsigned int i = 0; i < m_region_hash_max; ++i) {
+
+      Identifier regId = region_id(i) ;
+
+      HashCalc hc;
+      
+      int etamin = eta_min(regId);
+      Identifier min = tower_id ( regId, etamin, 0);
+      IdentifierHash min_hash = tower_hash_binary_search(min);
+      hc.m_hash   = min_hash;
+      hc.m_etamin = etamin;
+      hc.m_nphi   = phi_max(min)+1 ;
+      m_hash_calcs[m_pnz_reg_impl.unpack(min)] = hc;
+
+      if (m_pnz_reg_impl.unpack(min) >= size) 
+	{
+	  strm << size;
+	  strm1 << show_to_string(min);
+	  strm2 << m_pnz_reg_impl.unpack(min);
+	  strg = "Min > "+strm.str();
+	  strg1= " "+strm1.str();
+	  strg2= " "+strm2.str();
+	  if(m_msgSvc)
+	    {
+	      log << MSG::DEBUG << strg << endreq;
+	      log << MSG::DEBUG << strg1 << endreq;
+	      log << MSG::DEBUG << strg2 << endreq;
+	    }
+	  else
+	    {
+	      std::cout << strg << std::endl;
+	      std::cout << strg1 << std::endl;
+	      std::cout << strg2 << std::endl;
+	    }	  
+	    //std::cout << "min > " << size << " " 
+	    //    << i << " "
+	    //	    << show_to_string(min) << " " 
+	    //	    << m_pnz_reg_impl.unpack(min) << " " 
+	    //	    << std::endl;
+	}
+    }
+
+    // Check hash calculation
+    for (unsigned int i = 0; i < m_tower_hash_max; ++i) {
+	Identifier id = tower_id(i);
+	if (tower_hash(id) != i) 
+	  {
+	    strm << show_to_string(id);
+	    strm1 << tower_hash(id);
+	    strm2 << i;
+	    strg = " *****  Error tower ranges, id, hash, i = "+strm.str();
+	    strg1= " , "+strm1.str();
+	    strg2= " , "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg << endreq;
+		log << MSG::ERROR << strg1 << endreq;
+		log << MSG::ERROR << strg2 << endreq;
+	      }
+	    else
+	      {
+		std::cout << strg << std::endl;
+		std::cout << strg1 << std::endl;
+		std::cout << strg2 << std::endl;
+	      }
+	    
+	    //std::cout << "tower ranges, id, hash, i = " 
+	    //	      << show_to_string(id) << ", " 
+	    //	      << tower_hash(id) << ", " 
+	    //	      << i
+	    //	      << std::endl;
+	  }
+    }
+    
+  return 0;
+
+}
+
+
+
+
+int CaloLVL1_ID::eta_min(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+      const Range& range = m_full_tower_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int CaloLVL1_ID::eta_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+      const Range& range = m_full_tower_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int CaloLVL1_ID::phi_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+      const Range& range = m_full_tower_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int CaloLVL1_ID::layer_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_layer_range.size(); ++i) {
+      const Range& range = m_full_layer_range[i];
+      if (range.match(expId)) {
+	const Range::field& lay_field = range[m_LAYER_INDEX];
+	if (lay_field.has_maximum()) {
+	  int laymax = lay_field.get_maximum();
+	  if (result < laymax) result = laymax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int             
+CaloLVL1_ID::get_prev_in_phi(const IdentifierHash& id, IdentifierHash& prev) const
+{
+    unsigned short index = id;
+    if (index < m_prev_phi_vec.size()) {
+        if (m_prev_phi_vec[index] == NOT_VALID_HASH) return (1);
+        prev =  m_prev_phi_vec[index];
+        return (0);
+    }
+    return (1);
+}
+
+int             
+CaloLVL1_ID::get_next_in_phi(const IdentifierHash& id, IdentifierHash& next) const
+{
+    unsigned short index = id;
+    if (index < m_next_phi_vec.size()) {
+        if (m_next_phi_vec[index] == NOT_VALID_HASH) return (1);
+        next =  m_next_phi_vec[index];
+        return (0);
+    }
+    return (1);
+}
+
+int             
+CaloLVL1_ID::get_prev_in_eta(const IdentifierHash& id, IdentifierHash& prev) const
+{
+    unsigned short index = id;
+    if (index < m_prev_eta_vec.size()) {
+        if (m_prev_eta_vec[index] == NOT_VALID_HASH) return (1);
+        prev =  m_prev_eta_vec[index];
+        return (0);
+    }
+    return (1);
+}
+
+int
+CaloLVL1_ID::get_next_in_eta(const IdentifierHash& id, IdentifierHash& next) const
+{
+    unsigned short index = id;
+    if (index < m_next_eta_vec.size()) {
+        if (m_next_eta_vec[index] == NOT_VALID_HASH) return (1);
+        next =  m_next_eta_vec[index];
+        return (0);
+    }
+    return (1);
+}
+
+
+  int  CaloLVL1_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << calo_field_value()
+	   << pos_neg_z(id)
+	   << sampling(id)
+	   << region(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	    if(context->end_index() >= m_LAYER_INDEX) {
+		exp_id << layer(id);
+	    }
+	}
+    }
+    return (0);
+}
+
+void CaloLVL1_ID::tower_id_checks   ( int pos_neg_z, int sampling, int region,
+				      int eta,       int phi ) const throw(CaloID_Exception)
+{  
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << pos_neg_z << sampling << region << eta << phi;
+
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in CaloLVL1_ID::tower_id(field values), did not build, " +
+      strformat("pos_neg_z: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                pos_neg_z, sampling, region, eta, phi);
+    throw CaloID_Exception(errorMessage , 2);
+  }
+
+  if (!m_full_tower_range.match(id)) { 
+    std::string errorMessage = "CaloLVL1_ID::tower_id() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_tower_range;
+    throw CaloID_Exception(errorMessage , 2);
+  }
+}
+
+
+void CaloLVL1_ID::tower_id_checks   ( const Identifier regionId,
+				      int eta,  int phi ) const throw(CaloID_Exception) 
+{
+  // Fill expanded id
+    ExpandedIdentifier id; 
+
+    IdContext context = region_context();
+    if (get_expanded_id(regionId, id, &context)) {
+      std::string errorMessage = "CaloLVL1_ID::tower_id(regionId) result is not OK: ID= "
+	                       + show_to_string(regionId) ;
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+    id << eta << phi;
+
+    if( id.last_error () != ExpandedIdentifier::none) {
+    
+      std::string errorMessage =
+        "Error in CaloLVL1_ID::tower_id(regionId,field values), values ok but did not build, " +
+        strformat ("eta: %d , phi: %d ", 
+                   eta, phi);
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+
+    if (!m_full_tower_range.match(id)) {
+      std::string errorMessage = "CaloLVL1_ID::tower_id(regionId,field values) result is not OK: ID, range = "
+                                + std::string(id) + " , " + (std::string)m_full_tower_range;
+      throw CaloID_Exception(errorMessage , 2);
+    }
+}
+
+void CaloLVL1_ID::region_id_checks (int pos_neg_z, int sampling, int region)const 
+  throw(CaloID_Exception)
+{
+    // Fill expanded id
+    ExpandedIdentifier id(calo_exp());
+    id << pos_neg_z << sampling << region ;
+
+    if( id.last_error () != ExpandedIdentifier::none) {
+      std::string errorMessage =
+        "Error in CaloLVL1_ID::region_id(field values), did not build, " +
+        strformat ("pos_neg_z: %d , sampling: %d, region: %d ", 
+                   pos_neg_z , sampling , region);
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+    if (!m_full_region_range.match(id)) { 
+      std::string errorMessage = "CaloLVL1_ID::region_id() result is not OK: ID, range = "
+	+ std::string(id) + " , " + (std::string)m_full_region_range;
+      throw CaloID_Exception(errorMessage , 2);
+  }
+}
+
+void CaloLVL1_ID::layer_id_checks   ( int pos_neg_z, int sampling, int region,
+				      int eta,       int phi,      int layer ) const throw(CaloID_Exception)
+{  
+    // Fill expanded id
+    ExpandedIdentifier id(calo_exp());
+    id << pos_neg_z << sampling << region << eta << phi << layer;
+
+    if( id.last_error () != ExpandedIdentifier::none) {
+      std::string errorMessage =
+        "Error in CaloLVL1_ID::layer_id(field values), did not build, " +
+        strformat ("pos_neg_z: %d , sampling: %d, region: %d , eta: %d , phi: %d , layer: %d ", 
+                   pos_neg_z , sampling , region, eta, phi, layer);
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+    if (!m_full_layer_range.match(id)) { 
+      std::string errorMessage = "CaloLVL1_ID::layer_id(field values) result is not OK: ID, range = "
+                                + std::string(id) + " , " + (std::string)m_full_layer_range;
+      throw CaloID_Exception(errorMessage , 2);
+    }
+}
+
+void CaloLVL1_ID::layer_id_checks   ( const Identifier towerId,
+				      int layer ) const throw(CaloID_Exception) 
+{
+    // Fill expanded id
+    ExpandedIdentifier id; 
+
+    IdContext context = layer_context();
+    if (get_expanded_id(towerId, id, &context)) {
+      std::string errorMessage = "CaloLVL1_ID::layer_id(towerId, layer) result is not OK: ID= "
+	                       + show_to_string(towerId) ;
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+    id << layer;
+
+    if( id.last_error () != ExpandedIdentifier::none) {
+      std::string errorMessage =
+        "Error in CaloLVL1_ID::layer_id(towerId,layer), values ok but did not build, " +
+        strformat ("layer: %d  ", layer);
+      throw CaloID_Exception(errorMessage , 2);
+    }
+
+    if (!m_full_layer_range.match(id)) {
+      std::string errorMessage = "CaloLVL1_ID::layer_id(towerId) result is not OK: ID, range = "
+                                + (std::string)id + " , " + (std::string)m_full_layer_range;
+      throw CaloID_Exception(errorMessage , 2);
+    }
+}
+
+
+int   CaloLVL1_ID::initLevelsFromDict(void) 
+{
+  MsgStream log(m_msgSvc, "CaloLVL1_ID" );
+  std::stringstream strm;
+  std::stringstream strm1;
+  std::stringstream strm2;
+  std::stringstream strm3;
+  std::stringstream strm4;
+  std::stringstream strm5;
+  std::stringstream strm6;
+  std::stringstream strm7;
+  std::string strg;
+  std::string strg1;
+  std::string strg2;
+  std::string strg3;
+  std::string strg4;
+  std::string strg5;
+  std::string strg6;
+  std::string strg7;
+  if(!m_dict) 
+    {
+      strg= "initLevelsFromDict - dictionary NOT initialized ";
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}
+      return (1);
+    }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_CALO_INDEX       = 999 ;
+  m_DETZSIDE_INDEX   = 999 ;
+  m_SAMPLING_INDEX   = 999 ; 
+  m_REGION_INDEX     = 999 ;
+  m_ETA_INDEX        = 999 ;
+  m_PHI_INDEX        = 999 ;
+  m_LAYER_INDEX      = 999 ;
+
+  // Save index to a LVL1 region for unpacking - search with region name
+  IdDictRegion* reg = m_dict->find_region("Lvl1_0");
+  if (reg) 
+    {
+      m_lvl1_region_index = reg->m_index;
+    }
+  else 
+    {
+      strg = "initLevelsFromDict - unable to find lvl1 region ";
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}      
+      return (1);
+    }
+  
+  // Fing a LVL1 region
+  IdDictField* field = m_dict->find_field("subdet") ;
+  if (field) {
+    m_CALO_INDEX = field->m_index ;
+  }
+  else 
+    {
+      strg=  "initLevelsFromDict - unable to find 'subdet' field ";
+      if(m_msgSvc) 
+	{
+	  log << MSG::ERROR << strg << endreq;
+	}
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}	
+      return (1);
+    }
+  
+  field = m_dict->find_field("DetZside") ;
+  if (field) {
+    m_DETZSIDE_INDEX = field->m_index ;
+  }
+  else 
+    {
+      strg= "initLevelsFromDict - unable to find 'DetZside' field ";
+      if(m_msgSvc) 
+	{
+	  log << MSG::ERROR << strg << endreq;
+	}
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}	
+      return (1);
+    }
+ 
+ field = m_dict->find_field("LVL1sampling") ;
+  if (field) {
+    m_SAMPLING_INDEX = field->m_index ;
+  }
+  else 
+    {
+      strg=  "initLevelsFromDict - unable to find 'LVL1sampling' field ";
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}	
+      return (1);
+    }
+  
+  field = m_dict->find_field("region") ;
+  if (field) {
+    m_REGION_INDEX = field->m_index ;
+  }
+  else 
+    {
+      
+      strg="initLevelsFromDict - unable to find 'region' field ";
+      if(m_msgSvc) 
+	{
+	  log << MSG::ERROR << strg << endreq;
+	}
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}      
+      return (1);
+  }
+
+  /* std::cout << "m_region= " << m_REGION_INDEX << std::endl; */
+
+  field = m_dict->find_field("eta") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else 
+    {
+      strg= "initLevelsFromDict - unable to find 'eta' field ";
+      if(m_msgSvc) 
+	{
+	  log << MSG::ERROR << strg << endreq;
+	}
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}		
+      return (1);
+    }
+  
+  field = m_dict->find_field("phi") ;
+  if (field) {
+    m_PHI_INDEX = field->m_index ;
+  }
+  else 
+    {
+      
+      strg= "initLevelsFromDict - unable to find 'phi' field ";
+      if(m_msgSvc) 
+	{
+	  log << MSG::ERROR << strg << endreq;
+	}
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}          
+      return (1);
+    }
+  
+  field = m_dict->find_field("layer") ;
+  if (field) {
+    m_LAYER_INDEX = field->m_index ;
+  }
+  else 
+    {
+      strg= "initLevelsFromDict - unable to find 'layer' field ";
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else 
+	{
+	  std::cout << strg << std::endl;
+	}		
+      return (1);
+    }
+  
+  // Set the field implementations
+
+  const IdDictRegion& region = *m_dict->m_regions[m_lvl1_region_index];
+
+  m_calo_impl     = region.m_implementation[m_CALO_INDEX]; 
+  m_lvl1_impl     = region.m_implementation[m_DETZSIDE_INDEX]; 
+  m_sampling_impl = region.m_implementation[m_SAMPLING_INDEX]; 
+  m_region_impl   = region.m_implementation[m_REGION_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
+  m_layer_impl    = region.m_implementation[m_LAYER_INDEX]; 
+
+  strm1 << m_calo_impl.show_to_string();
+  strm2 << m_lvl1_impl.show_to_string();
+  strm3 << m_sampling_impl.show_to_string();
+  strm4 << m_region_impl.show_to_string();
+  strm5 << m_eta_impl.show_to_string();
+  strm6 << m_phi_impl.show_to_string();
+  strm7 << m_layer_impl.show_to_string();
+  strg = "decode index and bit fields for each level: ";
+  strg1= "calo  "+strm1.str();
+  strg2= "detzside  "+strm2.str();
+  strg3= "samp  "+strm3.str();
+  strg4= "reg  "+strm4.str();
+  strg5= "eta  "+strm5.str();
+  strg6= "phi  "+strm6.str();
+  strg7= "layer  "+strm7.str();
+  if(m_msgSvc) 
+    {
+      log << MSG::DEBUG << strg << endreq;
+      log << MSG::DEBUG << strg1 << endreq;
+      log << MSG::DEBUG << strg2 << endreq;
+      log << MSG::DEBUG << strg3 << endreq;
+      log << MSG::DEBUG << strg4 << endreq;
+      log << MSG::DEBUG << strg5 << endreq;
+      log << MSG::DEBUG << strg6 << endreq;
+      log << MSG::DEBUG << strg7 << endreq;
+    }
+  else 
+    {
+      std::cout << strg << std::endl;
+      std::cout << strg1 << std::endl;
+      std::cout << strg2 << std::endl;
+      std::cout << strg3 << std::endl;
+      std::cout << strg4 << std::endl;
+      std::cout << strg5 << std::endl;
+      std::cout << strg6 << std::endl;
+      std::cout << strg7 << std::endl;
+    }
+  
+  return(0) ;
+}
+
+
+int   CaloLVL1_ID::init_hashes(void) 
+{
+  MsgStream log(m_msgSvc, "CaloLVL1_ID" );
+  std::stringstream strm;
+  std::stringstream strm1;
+  std::stringstream strm2;
+  std::string strg;
+  std::string strg1;
+  std::string strg2;
+  // tower hash
+  m_tower_hash_max = m_full_tower_range.cardinality();
+  m_tower_vec.resize(m_tower_hash_max);
+  unsigned int nids = 0;
+  std::set<Identifier> ids;
+  for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+    const Range& range = m_full_tower_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier tow_id = tower_id   ( exp_id[m_DETZSIDE_INDEX],
+				       exp_id[m_SAMPLING_INDEX], 
+				       exp_id[m_REGION_INDEX] ,
+				       exp_id[m_ETA_INDEX] ,
+				       exp_id[m_PHI_INDEX] ) ;
+      if(!(ids.insert(tow_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " init_hashes "
+		  << " duplicated id for TT id. nids= " << nids
+		  << " compact Id  " << endreq; 
+	    }
+	  else
+	    {
+	      std::cout << " CaloLVL1_ID::init_hashes "
+	  		<< " Error: duplicated id for TT id. nids= " << nids
+	  		<< " compact Id " ;
+	      (*first).show();
+	      std::cout << " " << show_to_string(tow_id) << std::endl; 
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_tower_hash_max) 
+    {
+      if( m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_hashes "
+	      << " set size NOT EQUAL to hash max. size " << ids.size()
+	      << " hash max " << m_tower_hash_max
+	      << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloLVL1_ID::init_hashes "
+		    << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+		    << " hash max " << m_tower_hash_max
+		    << std::endl;
+	}
+      return (1);
+  }
+
+  nids=0;
+  std::set<Identifier>::const_iterator first = ids.begin();
+  std::set<Identifier>::const_iterator last  = ids.end();
+  for (;first != last && nids < m_tower_vec.size(); ++first) {
+    m_tower_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  // layer hash
+  m_layer_hash_max = m_full_layer_range.cardinality();
+  m_layer_vec.resize(m_layer_hash_max);
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_layer_range.size(); ++i) 
+    {
+      const Range& range = m_full_layer_range[i];
+      Range::const_identifier_factory first = range.factory_begin();
+      Range::const_identifier_factory last  = range.factory_end();
+      for (; first != last; ++first) 
+	{
+	  const ExpandedIdentifier& exp_id = (*first);
+	  Identifier lay_id = layer_id   ( exp_id[m_DETZSIDE_INDEX],
+					   exp_id[m_SAMPLING_INDEX], 
+					   exp_id[m_REGION_INDEX] ,
+					   exp_id[m_ETA_INDEX] ,
+					   exp_id[m_PHI_INDEX] ,
+					   exp_id[m_LAYER_INDEX] );
+	  if(!(ids.insert(lay_id)).second)
+	    {
+	      if(m_msgSvc)
+		{
+		  log << MSG::ERROR << " init_hashes "
+		      << " duplicated id for extended TT id. nids= " << nids
+		      << " compact Id  " << show_to_string(lay_id) << endreq; 
+		}
+	      else
+		{
+		  std::cout << " CaloLVL1_ID::init_hashes "
+			    << " Error: duplicated id for extended TT id. nids= " << nids
+			    << " compact Id  " ;
+		  (*first).show();
+		  std::cout << show_to_string(lay_id) << std::endl;
+		}
+	    }
+	  nids++;
+	}
+    }
+  if(ids.size() != m_layer_hash_max) 
+    {
+      if( m_msgSvc)
+	{
+	  log << MSG::ERROR << " init_hashes "
+	      << "  set size NOT EQUAL to hash max. size " << ids.size()
+	      << " hash max " << m_layer_hash_max
+	      << endreq;
+	}
+      else
+	{
+	  std::cout << " CaloLVL1_ID::init_hashes "
+		    << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+		    << " hash max " << m_layer_hash_max
+		    << std::endl;
+	}
+      return (1);
+  }
+
+  nids=0;
+  first = ids.begin();
+  last  = ids.end();
+  for (;first != last && nids < m_layer_vec.size(); ++first) {
+    m_layer_vec[nids] = (*first) ;
+    nids++;
+  }
+
+
+  // region hash
+  m_region_hash_max = m_full_region_range.cardinality();
+  m_region_vec.resize(m_region_hash_max);
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_region_range.size(); ++i) {
+    const Range& range = m_full_region_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier reg_id = region_id   ( exp_id[m_DETZSIDE_INDEX],
+					exp_id[m_SAMPLING_INDEX], 
+					exp_id[m_REGION_INDEX] );
+      if(!(ids.insert(reg_id)).second)
+	{
+	  if(m_msgSvc)
+	    {
+	      log << MSG::ERROR << " LArEM_ID::init_hashes "
+		  << "  duplicated id for region id. nids= " << nids
+		  << " compact Id  " << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " LArEM_ID::init_hashes "
+			<< " Error: duplicated id for region id. nids= " << nids
+			<< " compact Id  " ;
+	      (*first).show();
+	      std::cout << " " << show_to_string(reg_id) << std::endl;
+	      std::cout << std::endl;
+	    }
+	}
+      nids++;
+    }
+  }
+  if(ids.size() != m_region_hash_max) 
+    {
+      if(m_msgSvc)
+	{
+	  log << MSG::ERROR << " LArEM_ID::init_hashes "
+	      << "  set size NOT EQUAL to region hash max. size " << ids.size()
+	      << " region hash max " << m_region_hash_max
+	      << endreq;
+	}
+      else
+	{
+	  std::cout << " LArEM_ID::init_hashes "
+		    << " Error: set size NOT EQUAL to region hash max. size " << ids.size()
+		    << " region hash max " << m_region_hash_max
+		    << std::endl;
+	}
+      return (1);
+    }
+  nids=0;
+  first = ids.begin();
+  last  = ids.end();
+  for (;first != last && nids < m_region_vec.size(); ++first) {
+    m_region_vec[nids] = (*first) ;
+    nids++;
+  }
+
+  return (0);                   
+}
+
+
+
+int   CaloLVL1_ID::init_neighbors(void) 
+{
+  MsgStream log(m_msgSvc, "CaloLVL1_ID" );
+  //  std::cout << " CaloLVL1_ID::init_neighbors " << std::endl;
+  //  std::cout << " m_tower_hash_max, NOT_VALID_HASH = " << m_tower_hash_max << " " << NOT_VALID_HASH << std::endl;
+
+  m_prev_phi_vec.resize(m_tower_hash_max, NOT_VALID_HASH);
+  m_next_phi_vec.resize(m_tower_hash_max, NOT_VALID_HASH);
+  m_prev_eta_vec.resize(m_tower_hash_max, NOT_VALID_HASH);
+  m_next_eta_vec.resize(m_tower_hash_max, NOT_VALID_HASH);
+  for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+    const Range& range = m_full_tower_range[i];
+    const Range::field& eta_field = range[m_ETA_INDEX];
+    const Range::field& phi_field = range[m_PHI_INDEX];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      ExpandedIdentifier::element_type previous_eta;
+      ExpandedIdentifier::element_type next_eta;
+      ExpandedIdentifier::element_type previous_phi;
+      ExpandedIdentifier::element_type next_phi;
+      bool peta = eta_field.get_previous(exp_id[m_ETA_INDEX], previous_eta);
+      bool neta = eta_field.get_next    (exp_id[m_ETA_INDEX], next_eta);
+      bool pphi = phi_field.get_previous(exp_id[m_PHI_INDEX], previous_phi);
+      bool nphi = phi_field.get_next    (exp_id[m_PHI_INDEX], next_phi);
+      
+      IdContext tcontext = tower_context();
+      
+      // Get and save region id to speed things up
+      Identifier reg_id = region_id   ( exp_id[m_DETZSIDE_INDEX],
+					exp_id[m_SAMPLING_INDEX], 
+					exp_id[m_REGION_INDEX] );
+      
+      // First get primary hash id
+      IdentifierHash hash_id;
+      Identifier id = tower_id (reg_id, 
+				exp_id[m_ETA_INDEX],
+				exp_id[m_PHI_INDEX]);
+      if (get_hash(id, hash_id,&tcontext)) 
+	{
+	  if( m_msgSvc )
+	    {
+	      log << MSG::ERROR << " init_neighbors - unable to get hash, compact = " << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " CaloLVL1_ID::init_neighbors - unable to get hash, compact = ";
+	      exp_id.show();
+	      std::cout << std::endl;
+	    }
+	  return (1);
+	}
+      
+      // index for the subsequent arrays
+      unsigned short index = hash_id;
+      assert (hash_id < m_prev_phi_vec.size());
+      assert (hash_id < m_next_phi_vec.size());
+      assert (hash_id < m_prev_eta_vec.size());
+      assert (hash_id < m_next_eta_vec.size());
+
+      if (pphi) {
+	// Get previous phi hash id
+	id = tower_id (reg_id, 
+		       exp_id[m_ETA_INDEX],
+		       previous_phi);
+	// forward to compact -> hash
+	if (get_hash(id, hash_id,&tcontext)) 
+	  {
+	  if( m_msgSvc )
+	    {
+	      log << MSG::ERROR << " init_neighbors - unable to get previous phi hash, exp/compact " << endreq;
+	    }
+	  else
+	    {
+	      std::cout << " CaloLVL1_ID::init_neighbors - unable to get previous phi hash, exp/compact ";
+	      exp_id.show();
+	      std::cout << " " 
+			<< std::endl;
+	    }
+	  return (1);
+	  }
+	m_prev_phi_vec[index] = hash_id;
+      }
+
+      if (nphi) {
+	// Get next phi hash id
+	id = tower_id (reg_id, 
+		       exp_id[m_ETA_INDEX],
+		       next_phi);
+	// forward to compact -> hash
+	if (get_hash(id, hash_id,&tcontext)) 
+	  {
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << " init_neighbors - unable to get next phi hash, exp/compact "<<endreq;
+	      }
+	    else
+	      {
+		std::cout << " CaloLVL1_ID::init_neighbors - unable to get next phi hash, exp/compact ";
+		exp_id.show();
+		std::cout << " " 
+			  << std::endl;
+	      }
+	    return (1);
+	}
+	m_next_phi_vec[index] = hash_id;
+      }
+      if (peta) {
+	// Get previous eta hash id
+	id = tower_id (reg_id, 
+		       previous_eta,
+		       exp_id[m_PHI_INDEX]);
+	// forward to compact -> hash
+	if (get_hash(id, hash_id,&tcontext)) 
+	  {
+	    if( m_msgSvc )
+	      {
+		log << MSG::ERROR << " init_neighbors - unable to get previous eta hash, exp/compact "<< endreq;
+	      }
+	    else
+	      {
+		std::cout << " CaloLVL1_ID::init_neighbors - unable to get previous eta hash, exp/compact ";
+		exp_id.show();
+		std::cout << " " 
+			  << std::endl;
+	      }
+	    return (1);
+	  }
+	m_prev_eta_vec[index] = hash_id;
+      }
+      
+      if (neta) {
+	// Get next eta hash id
+	id = tower_id (reg_id, 
+		       next_eta,
+		       exp_id[m_PHI_INDEX]);
+	// forward to compact -> hash
+	if (get_hash(id, hash_id,&tcontext)) 
+	  {
+	    if( m_msgSvc )
+	      {
+		log << MSG::ERROR << " init_neighbors - unable to get next eta hash, exp/compact ";
+	      }
+	    else
+	      {
+		std::cout << " CaloLVL1_ID::init_neighbors - unable to get next eta hash, exp/compact ";
+		exp_id.show();
+		std::cout << " " 
+			  << std::endl;
+	      }
+	    return (1);
+	  }
+	m_next_eta_vec[index] = hash_id;
+      } // end neta cond
+    } // end loop on identifiers
+  } // end loop on ranges
+  return (0);
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/CaloNeighbours.cxx b/Calorimeter/CaloIdentifier/src/CaloNeighbours.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..ca2bd808565314c0175c66d8244a72fef631ccd8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/CaloNeighbours.cxx
@@ -0,0 +1,516 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+//-----------------------------------------------------------------------
+// File and Version Information:
+// $Id: CaloNeighbours.cxx,v 1.2 2006-04-28 12:08:07 menke Exp $
+//
+// Description: see CaloNeighbours.h
+// 
+// Environment:
+//      Software developed for the ATLAS Detector at CERN LHC
+//
+// Author List:
+//      Sven Menke
+//
+//-----------------------------------------------------------------------
+
+//-----------------------
+// This Class's Header --
+//-----------------------
+#include "CaloIdentifier/CaloNeighbours.h"
+//---------------
+// C++ Headers --
+//---------------
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <sstream>
+
+#include "Identifier/ExpandedIdentifier.h"
+#include "Identifier/Identifier.h"
+#include "Identifier/IdentifierHash.h"
+#include "Identifier/Range.h"
+#include "PathResolver/PathResolver.h"
+
+#define MAX_BUFFER_LEN 1024
+
+//###############################################################################
+
+CaloNeighbourRegion::CaloNeighbourRegion(const std::string name,
+                                         const CaloCell_Base_ID *theCaloId) :
+  m_type(nextInCalo),
+  m_calo_id(0),
+  m_hasPhi(false),
+  m_iPhiSource(0),
+  m_iPhiTarget(0),
+  m_hasSide(false),
+  m_iSideSource(0),
+  m_iSideTarget(0),
+  m_isValidMinus(false),
+  m_isValidPlus(false)
+{
+  m_name = name;
+  m_calo_id = theCaloId;
+}
+
+//###############################################################################
+
+CaloNeighbourRegion::~CaloNeighbourRegion()
+{
+  std::vector< std::vector<IdentifierHash>* >::iterator nIter = m_neighbours_plus.begin();
+  std::vector< std::vector<IdentifierHash>* >::iterator nIterEnd = m_neighbours_plus.end();
+  for(; nIter != nIterEnd; nIter++ ) {
+    if ( (*nIter) ) {
+      delete (*nIter);
+      (*nIter) = 0;
+    }
+  }
+  nIter = m_neighbours_minus.begin();
+  nIterEnd = m_neighbours_minus.end();
+  for(; nIter != nIterEnd; nIter++ ) {
+    if ( (*nIter) ) {
+      delete (*nIter);
+      (*nIter) = 0;
+    }
+  }
+}
+
+//###############################################################################
+
+void CaloNeighbourRegion::setType(const NEIGHBOURTYPE type)
+{
+  m_type = type;
+}
+
+//###############################################################################
+
+void CaloNeighbourRegion::setSourceRange(const Range & theRange)
+{
+  m_sourceRange = theRange;
+  for(unsigned int i=0;i<theRange[SIDE].get_indices();i++) {
+    if ( theRange[SIDE].get_value_at(i) < 0 )
+      m_isValidMinus = true;
+    else
+      m_isValidPlus = true;
+  }
+}
+
+//###############################################################################
+
+void CaloNeighbourRegion::setTargetRange(const Range & theRange)
+{
+  m_targetRange = theRange;
+}
+
+//###############################################################################
+
+void CaloNeighbourRegion::setSide(const int side1, const int side2)
+{
+  m_hasSide = true;
+  m_iSideSource = side1;
+  m_iSideTarget = side2;
+}
+
+//###############################################################################
+
+void CaloNeighbourRegion::setPhi(const int phi1, const int phi2)
+{
+  m_hasPhi = true;
+  m_iPhiSource = phi1;
+  m_iPhiTarget = phi2;
+
+}
+
+//###############################################################################
+
+int CaloNeighbourRegion::getId(ExpandedIdentifier& id, Identifier &rID, const Range &theRange, const int side, const int dphi) const
+{
+  // modify id for side and phi
+  //  ExpandedIdentifier id(oid);
+  if ( m_hasSide && side != 1 )
+    id[SIDE] = side*id[SIDE];
+  if ( m_hasPhi && dphi != 0 ) {
+    if ( m_calo_id->is_lar_em(id) || m_calo_id->is_lar_hec(id) )
+      id[PHI] = id[PHI]+dphi;
+    else if ( m_calo_id->is_lar_fcal(id) )
+      id[FCALPHI] = id[FCALPHI]+dphi;
+    else 
+      id[TILEPHI] = id[TILEPHI]+dphi;
+  }
+
+  // first check if id is in the specified range
+  if ( !theRange.match(id) ) {
+    std::cout << "CaloNeighbours::set_neighbours ERROR: " << (std::string)id << " is not within the Range " << (std::string)theRange << std::endl;
+    return 1;
+  }
+
+  CaloCell_ID::SUBCALO subCalo;
+  if ( m_calo_id->is_lar_em(id) ) {
+    subCalo = CaloCell_ID::LAREM;
+    rID = m_calo_id->cell_id(subCalo,
+			     id[SIDE],
+			     id[SAMPL],
+			     id[REGION],
+			     id[ETA],
+			     id[PHI]);
+  }
+  else if ( m_calo_id->is_lar_hec(id) ) {
+    subCalo = CaloCell_ID::LARHEC;
+    rID = m_calo_id->cell_id(subCalo,
+			     id[SIDE],
+			     id[SAMPL],
+			     id[REGION],
+			     id[ETA],
+			     id[PHI]);
+  }
+  else if ( m_calo_id->is_lar_fcal(id) ) {
+    subCalo = CaloCell_ID::LARFCAL;
+    rID = m_calo_id->cell_id(subCalo,
+			     id[SIDE],
+			     id[SAMPL],
+			     0,
+			     id[FCALETA],
+			     id[FCALPHI]);
+  }
+  else if ( m_calo_id->is_tile(id) ) {
+    subCalo = CaloCell_ID::TILE;
+    rID = m_calo_id->cell_id(subCalo,
+			     id[TILESECTION],
+			     id[SIDE],
+			     id[TILEPHI],
+			     id[TILEETA],
+			     id[TILESAMPL]);
+  }
+  else {
+    std::cout << "CaloNeighbours::get_id ERROR: " << (std::string)id << " is not in the LAr or Tile calorimeters" << std::endl;
+    return 1;
+  }
+  return 0;
+}
+
+//###############################################################################
+
+int CaloNeighbourRegion::setNeighbours(ExpandedIdentifier& id1, 
+				       std::vector<ExpandedIdentifier>& id2, 
+				       std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapPlus, 
+				       std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapMinus)
+{
+  int result = 0;
+
+  // build an Identifier from the ExpandedIdentifier
+  int nMaxSides=1;
+  int nMaxPhi=1;
+  float  rPhi=1;
+  if ( m_hasSide )
+    nMaxSides = 2;
+  if ( m_hasPhi ) {
+    nMaxPhi = m_sourceRange[m_iPhiSource].get_indices();
+    rPhi = ((float)m_targetRange[m_iPhiTarget].get_indices())/((float)nMaxPhi);
+  }
+
+  for (int theSide = 0;theSide<nMaxSides;theSide++) {
+    for (int theDPhi = 0;theDPhi<nMaxPhi;theDPhi++) {
+      int side = +1;
+      int dphi2 = (int)(theDPhi*rPhi+0.05);
+      if ( theSide > 0 ) {
+	side = -1;
+      }
+      // only continous region mapping in phi is supported - 
+      // therefore theDPhi = delta phi ...
+      Identifier myId;
+      ExpandedIdentifier myExpID(id1);
+      if ( getId(myExpID,myId,m_sourceRange,side,theDPhi) ) {
+	return 1;
+      }
+      // get hash ID's for the source 
+      IdentifierHash myHash = m_calo_id->calo_cell_hash (myId);
+      // get ID's and hash ID's for the target
+      std::vector<ExpandedIdentifier>::const_iterator idIter    = id2.begin();
+      std::vector<ExpandedIdentifier>::const_iterator idIterEnd = id2.end();
+      std::vector<IdentifierHash> theTargetHashIDs;
+      for ( ; idIter != idIterEnd; idIter++ ) {
+	Identifier myTargetId;
+	ExpandedIdentifier myNExpID(*idIter);
+	if ( getId(myNExpID,myTargetId,m_targetRange,side,dphi2) ) {
+	  return 1;
+	}
+	// get hash ID's for the target
+	IdentifierHash myTargetHash = m_calo_id->calo_cell_hash (myTargetId);
+	theTargetHashIDs.push_back(myTargetHash);
+      }
+      if ( id1[SIDE]*side > 0 ) {
+	neighbourMapPlus[myHash] = theTargetHashIDs;
+      }
+      else {
+	neighbourMapMinus[myHash] = theTargetHashIDs;
+      }
+    }
+  }
+  return result;
+}
+
+//###############################################################################
+
+void  CaloNeighbourRegion::initializeVectors(std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapPlus, std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>& neighbourMapMinus)
+{
+  if ( m_isValidMinus ) {
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_iterator first = neighbourMapMinus.begin();
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_iterator end = neighbourMapMinus.end();
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_reverse_iterator last = neighbourMapMinus.rbegin();
+    m_minHashMinus = (*first).first;
+    m_maxHashMinus = (*last).first;
+    m_neighbours_minus.resize((unsigned int)(m_maxHashMinus-m_minHashMinus+1),0);
+    for(;first != end;first++) {
+      m_neighbours_minus[(unsigned int)((*first).first-m_minHashMinus)] = new std::vector<IdentifierHash>((*first).second);
+    }
+  }
+  if ( m_isValidPlus ) {
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_iterator first = neighbourMapPlus.begin();
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_iterator end = neighbourMapPlus.end();
+    std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash>::const_reverse_iterator last = neighbourMapPlus.rbegin();
+    m_minHashPlus = (*first).first;
+    m_maxHashPlus = (*last).first;
+    m_neighbours_plus.resize((unsigned int)(m_maxHashPlus-m_minHashPlus+1),0);
+    for(;first != end;first++) {
+      m_neighbours_plus[(unsigned int)((*first).first-m_minHashPlus)] = new std::vector<IdentifierHash>((*first).second);
+    }
+  }
+
+}
+
+//###############################################################################
+
+int  CaloNeighbourRegion::getNeighbours(const IdentifierHash caloHash, std::vector<IdentifierHash>& neighbourList) const 
+{
+  int result = 0; 
+  
+  if ( m_isValidMinus && caloHash >= m_minHashMinus && caloHash <= m_maxHashMinus && m_neighbours_minus[(unsigned int)(caloHash-m_minHashMinus)] ) {
+    neighbourList.insert(neighbourList.end(),
+			 m_neighbours_minus[(unsigned int)(caloHash-m_minHashMinus)]->begin(),
+			 m_neighbours_minus[(unsigned int)(caloHash-m_minHashMinus)]->end());
+  }
+  else if ( m_isValidPlus && caloHash >= m_minHashPlus && caloHash <= m_maxHashPlus && m_neighbours_plus[(unsigned int)(caloHash-m_minHashPlus)] ) {
+    neighbourList.insert(neighbourList.end(),
+			 m_neighbours_plus[(unsigned int)(caloHash-m_minHashPlus)]->begin(),
+			 m_neighbours_plus[(unsigned int)(caloHash-m_minHashPlus)]->end());
+  }
+
+  return result;
+}
+
+
+//###############################################################################
+
+CaloNeighbours::CaloNeighbours() :
+  m_calo_id(0)
+{ }
+
+//###############################################################################
+
+CaloNeighbours::~CaloNeighbours()
+{
+  std::vector<CaloNeighbourRegion*>::iterator rIter    = m_next_regions.begin();
+  std::vector<CaloNeighbourRegion*>::iterator rIterEnd = m_next_regions.end();
+  for(; rIter != rIterEnd; rIter++ ) {
+    if ((*rIter)) {
+      delete (*rIter);
+      (*rIter) = 0;
+    }
+  }
+
+  rIter    = m_prev_regions.begin();
+  rIterEnd = m_prev_regions.end();
+  for(; rIter != rIterEnd; rIter++ ) {
+    if ((*rIter)) {
+      delete (*rIter);
+      (*rIter) = 0;
+    }
+  }
+}
+
+//###############################################################################
+
+int CaloNeighbours::initialize(const CaloCell_Base_ID* caloID,
+                               std::string filename)
+{
+  int result =0;
+  //  std::cout << " CaloNeighbours::initialize " << std::endl;
+  m_calo_id = caloID;
+  m_next_regions.resize(0);
+  m_prev_regions.resize(0);
+  // Find the full path to filename:
+  std::string file = PathResolver::find_file (filename, "DATAPATH");
+  //    std::cout << "Reading file  " << file << std::endl;
+  std::ifstream fin;
+  if (file != "") {
+    fin.open(file.c_str());
+  }
+  else {
+    std::cout << "CaloNeighbours::initialize ERROR Could not find input file " << filename <<  std::endl;
+    return 1;
+  }
+  if (fin.bad()) {
+    std::cout << "CaloNeighbours::initialize ERROR Could not open file " << file << std::endl;
+    return 1;
+  }
+
+  //
+  // Parse the input file
+  //
+
+  char aLine[MAX_BUFFER_LEN],dummy;
+  std::string sLine;
+  std::string cPrevOrNext,cName,cSourceRange,cTargetRange;
+  std::string cExpId;
+  Range mySourceRange,myTargetRange;
+  std::string oArg;
+  bool isComment = true;
+  bool isNext = false;
+  bool isPrev = false;
+  const std::string cmdNext("nextSuperCalo");
+  const std::string cmdPrev("prevSuperCalo");
+  const std::string cmdPhi("calcPhi(");
+  const std::string cmdSide("calcSide(");
+ 
+  while( isComment ) {
+    sLine.resize( 0 );
+    do {  
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    } while (sLine == "" && !fin.eof());
+    isComment = ( sLine.find("#") != std::string::npos );
+  }
+  do {
+    while ( sLine == "" && !fin.eof()) {
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    }
+    std::istringstream header( sLine.c_str() );
+    bool hasPhi=false;
+    bool hasSide=false;
+    int iPhiSource,iPhiTarget;
+    int iSideSource,iSideTarget;
+    if ( header >> cPrevOrNext >> cName >> cSourceRange >> cTargetRange) {
+      mySourceRange.build(cSourceRange);
+      myTargetRange.build(cTargetRange);
+      while ( header >> oArg ) {
+	if (oArg.find(cmdSide) != std::string::npos ) {
+	  hasSide = true;
+	  oArg.erase(0,cmdSide.size());
+	  std::istringstream iside( oArg.c_str() );
+	  iside >> iSideSource >> dummy >> iSideTarget;
+	}
+	else if ( oArg.find(cmdPhi) != std::string::npos ) {
+	  hasPhi = true;
+	  oArg.erase(0,cmdPhi.size());
+	  std::istringstream iphi( oArg.c_str() );
+	  iphi >> iPhiSource >> dummy >> iPhiTarget;
+	}
+      }
+      sLine.resize(0);
+      bool endOfBlock = false;
+      isNext = (cPrevOrNext.find(cmdNext) != std::string::npos);
+      isPrev = (cPrevOrNext.find(cmdPrev) != std::string::npos);
+      if ( isNext^isPrev ) {
+//	std::cout << (isNext?cmdNext:cmdPrev) << " " 
+//		  << cName << " " 
+//		  << (std::string)mySourceRange << " " 
+//		  << (std::string)myTargetRange;
+//	if ( hasSide ) {
+//	  std::cout << " hasSide(" << iSideSource << "," << iSideTarget << ")";
+//	}
+//	if ( hasPhi ) {
+//	  std::cout << " hasPhi(" << iPhiSource << "," << iPhiTarget << ")";
+//	}
+//	std::cout << std::endl;
+	// create new CaloNeighbourRegion
+	CaloNeighbourRegion * myRegion = new CaloNeighbourRegion(cName,m_calo_id);
+	if ( isNext )
+	  myRegion->setType(nextInCalo);
+	else
+	  myRegion->setType(prevInCalo);
+	if ( hasSide )
+	  myRegion->setSide(iSideSource,iSideTarget);
+	if ( hasPhi )
+	  myRegion->setPhi(iPhiSource,iPhiTarget);
+	myRegion->setSourceRange(mySourceRange);
+	myRegion->setTargetRange(myTargetRange);
+	// create temporary neighbour maps
+	std::map<IdentifierHash, std::vector<IdentifierHash>, ltIdHash> neighbourMapPlus,neighbourMapMinus;
+
+	do {
+	  while ( !endOfBlock && sLine == "" && !fin.eof()) {
+	    fin.getline(aLine,sizeof(aLine)-1);
+	    sLine = std::string(aLine);
+	    if ( sLine == "" || fin.eof() )
+	      endOfBlock = true;
+	  }
+	  if (!endOfBlock) {
+	    std::istringstream neighbour( sLine.c_str() );
+	    ExpandedIdentifier myCell,myNeighbourCell;
+	    std::vector<ExpandedIdentifier> myNeighbourCells;
+	    if ( neighbour >> cExpId ) {
+	      myCell = ExpandedIdentifier(cExpId);
+	      // std::cout << (std::string)myCell << ":";
+	      while ( neighbour >> cExpId ) {
+		myNeighbourCell = ExpandedIdentifier(cExpId);
+		// std::cout << " " << (std::string)myNeighbourCell;
+		myNeighbourCells.push_back(myNeighbourCell);
+	      }
+	      // std::cout << std::endl;
+	      sLine.resize(0);
+	      result = myRegion->setNeighbours(myCell,myNeighbourCells,neighbourMapPlus,neighbourMapMinus);
+	      if ( result != 0 ) 
+		return result;
+	    }
+	  }
+	} while (!fin.eof() && !endOfBlock);
+	myRegion->initializeVectors(neighbourMapPlus,neighbourMapMinus);
+	if (isNext) 
+	  m_next_regions.push_back(myRegion);
+	else
+	  m_prev_regions.push_back(myRegion);
+      }
+      else {
+	std::cout << "CaloNeighbours::initialize ERROR Invalid neighbour dat file, exiting ... " << std::endl;
+	return 1;
+      }
+    }
+  }while (!fin.eof()) ;
+  fin.close();
+  
+  return 0;
+}
+
+//###############################################################################
+
+int CaloNeighbours::get_nextInCalo(const IdentifierHash &id,std::vector<IdentifierHash>& neighbourList) const
+{
+  return get_neighbours(id,m_next_regions,neighbourList);
+}
+
+//###############################################################################
+
+int CaloNeighbours::get_prevInCalo(const IdentifierHash &id,std::vector<IdentifierHash>& neighbourList) const
+{
+  return get_neighbours(id,m_prev_regions,neighbourList);
+}
+
+//###############################################################################
+
+int CaloNeighbours::get_neighbours(const IdentifierHash &id, const std::vector<CaloNeighbourRegion*> &regions, std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 0;
+  std::vector<CaloNeighbourRegion*>::const_iterator rIter    = regions.begin();
+  std::vector<CaloNeighbourRegion*>::const_iterator rIterEnd = regions.end();
+  for(; rIter != rIterEnd; rIter++ ) {
+    result = (*rIter)->getNeighbours(id,neighbourList);
+    if ( result != 0 )
+      return result;
+  }
+  return result;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6a83e252711eb00f722df721a7aa9d06fd41731c
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArEM_Base_ID.cxx
@@ -0,0 +1,1703 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/LArEM_Base_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Aug, 2012
+ * @brief Factor out code common between LArEM_ID and LArEM_SuperCell_ID.
+ */
+
+#include "CaloIdentifier/LArEM_Base_ID.h"
+#include "LArEM_region.h"
+#include "IdDict/IdDictDefs.h"
+#include "CxxUtils/StrFormat.h"
+
+using CxxUtils::strformat;
+
+
+LArEM_Base_ID::LArEM_Base_ID (const std::string& name, bool supercell)
+  : CaloIDHelper (name),
+    m_slar (supercell ? 1 : 0)
+{
+  m_REGION_INDEX = 999;
+  m_ETA_INDEX = 999;
+  m_PHI_INDEX = 999;
+  m_SLAR_INDEX = 999;
+  m_LAR_INDEX = 999;
+  m_EM_INDEX = 999;
+  m_BEC_INDEX = 999;
+  m_SAMPLING_INDEX = 999;
+  m_em_region_index = 0;
+  m_two_sym_sides = 1;
+}
+
+
+LArEM_Base_ID::~LArEM_Base_ID(void) 
+{
+  std::vector<LArEM_region*>::iterator first = m_vecOfRegions.begin();
+  std::vector<LArEM_region*>::iterator last  = m_vecOfRegions.end();
+  for (; first != last; ++first) delete (*first);
+}
+
+
+bool LArEM_Base_ID::is_connected  ( int barrel_ec, int sampling, int region, int eta, int phi )  const throw(LArID_Exception)
+{  
+  bool result = false;
+
+    // Fill expanded id
+    ExpandedIdentifier expId(lar_em_exp());
+    expId << barrel_ec << sampling << region << eta << phi << m_slar;
+
+    if( expId.last_error () != ExpandedIdentifier::none) {
+	std::string errorMessage = 
+          "Error in LArEM_Base_ID::is_connected(field values), " +
+          strformat ("barrel_ec: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                     barrel_ec , sampling , region, eta, phi);
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    if (m_full_em_range.match(expId)) { 
+      result = true;
+    }
+    return (result);
+}
+
+bool LArEM_Base_ID::is_disconnected  ( int barrel_ec, int sampling, int region, int eta, int phi )  const throw(LArID_Exception)
+{  
+  bool result = false;
+
+    // Fill expanded id
+    ExpandedIdentifier expId(lar_exp());
+    expId << -1 << barrel_ec << sampling << region << eta << phi << m_slar;
+
+    if( expId.last_error () != ExpandedIdentifier::none) {
+	std::string errorMessage = 
+          "Error in LArEM_Base_ID::is_disconnected(field values), " +
+          strformat ("barrel_ec: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                     barrel_ec , sampling , region, eta, phi);
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    if (m_full_disc_em_range.match(expId)) { 
+      result = true;
+    }
+    return (result);
+}
+
+
+bool LArEM_Base_ID::is_supercell (const Identifier id)const
+{
+  return(m_slar_impl.unpack(id)) != 0;
+}
+
+
+int LArEM_Base_ID::eta_min(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext context = region_context();
+  if(!get_expanded_id(regId, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_em_range.size(); ++i) {
+      const Range& range = m_full_em_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int LArEM_Base_ID::eta_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext context = region_context();
+  if(!get_expanded_id(regId, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_em_range.size(); ++i) {
+      const Range& range = m_full_em_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArEM_Base_ID::phi_min_init(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_em_range.size(); ++i) {
+      const Range& range = m_full_em_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_minimum()) {
+	  int phimin = phi_field.get_minimum();
+	  if (-999 == result) {
+	    result = phimin;
+	  }
+	  else {
+	    if (phimin < result) result = phimin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArEM_Base_ID::phi_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext context = region_context();
+  if(!get_expanded_id(regId, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_em_range.size(); ++i) {
+      const Range& range = m_full_em_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int         LArEM_Base_ID::disc_eta             (const Identifier id)const
+{
+  return(m_eta_impl.unpack(id));
+}
+
+int         LArEM_Base_ID::disc_phi             (const Identifier id)const
+{
+  return(m_phi_impl.unpack(id));
+}
+
+void LArEM_Base_ID::region_id_checks   ( int barrel_ec, int sampling, int region ) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_em_exp());
+  expId << barrel_ec << sampling << region ;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in LArEM_Base_ID::region_id_checks, " +
+      strformat ("barrel_ec: %d , sampling: %d, region: %d ",
+                 barrel_ec , sampling , region);
+    throw LArID_Exception(errorMessage , 5);
+  }
+  
+  if (!m_full_region_range.match(expId)) { 
+    std::string errorMessage = "LArEM_Base_ID::region_id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_region_range;
+    throw LArID_Exception(errorMessage , 5);
+  }
+}
+
+
+void LArEM_Base_ID::channel_id_checks   ( int barrel_ec, int sampling, int region,
+				     int eta,       int phi ) const throw(LArID_Exception)
+{  
+    // Check that id is within allowed range
+
+    // Fill expanded id
+    ExpandedIdentifier expId(lar_em_exp());
+    expId << barrel_ec << sampling << region << eta << phi << m_slar ;
+
+    if( expId.last_error () != ExpandedIdentifier::none) {
+	std::string errorMessage = 
+          "Error in LArEM_Base_ID::channel_id_checks(field values), " + 
+          strformat ("barrel_ec: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                     barrel_ec , sampling , region, eta, phi);
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    if (!m_full_em_range.match(expId)) { 
+	std::string errorMessage = "LArEM_Base_ID::channel_id_checks() result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_em_range;
+	throw LArID_Exception(errorMessage , 6);
+    }
+}
+
+void LArEM_Base_ID::channel_id_checks   ( const Identifier regionId,
+                                          int eta,       int phi ) const throw(LArID_Exception) 
+{
+  // Check that id is within allowed range
+
+  // Fill expanded id
+    ExpandedIdentifier expId; 
+
+    IdContext context = region_context();
+    if (get_expanded_id(regionId, expId, &context)) {
+	std::string errorMessage = "LArEM_Base_ID::channel_id_checks(regId) result is not OK: ID = "
+	    + show_to_string(regionId) ;
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    expId << eta << phi << m_slar;
+
+    if (!m_full_em_range.match(expId)) { 
+	std::string errorMessage = "LArEM_Base_ID::channel_id_checks(regId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_em_range;
+	throw LArID_Exception(errorMessage , 6);
+    }
+}
+
+
+void LArEM_Base_ID::disc_region_id_checks   ( int barrel_ec, int sampling, int region ) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -1 << barrel_ec << sampling << region;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage = 
+      "Error in LArEM_Base_ID::region_id_checks, " +
+      strformat ("barrel_ec: %d , sampling: %d, region: %d ",
+                 barrel_ec , sampling , region);
+    throw LArID_Exception(errorMessage , 5);
+  }
+  
+  if (!m_full_disc_region_range.match(expId)) { 
+    std::string errorMessage = "LArEM_Base_ID::region_id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_region_range;
+    throw LArID_Exception(errorMessage , 5);
+  }
+}
+
+
+void LArEM_Base_ID::disc_channel_id_checks   ( int barrel_ec, int sampling, int region,
+                                               int eta,       int phi ) const throw(LArID_Exception)
+{  
+    // Check that id is within allowed range
+
+    // Fill expanded id
+    ExpandedIdentifier expId(lar_exp());
+    expId << -1 << barrel_ec << sampling << region << eta << phi << m_slar ;
+
+    if( expId.last_error () != ExpandedIdentifier::none) {
+	std::string errorMessage =
+          "Error in LArEM_Base_ID::disc_channel_id_checks(field values), " +
+          strformat ("barrel_ec: %d , sampling: %d, region: %d , eta: %d , phi: %d ", 
+                     barrel_ec , sampling , region, eta, phi);
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    if (!m_full_disc_em_range.match(expId)) { 
+	std::string errorMessage = "LArEM_Base_ID::disc_channel_id_checks() result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_disc_em_range;
+	throw LArID_Exception(errorMessage , 6);
+    }
+}
+
+void LArEM_Base_ID::disc_channel_id_checks   ( const Identifier regionId,
+                                               int eta,       int phi ) const throw(LArID_Exception) 
+{
+  // Check that id is within allowed range
+
+  // Fill expanded id
+    ExpandedIdentifier expId; 
+
+    IdContext context = region_context();
+    if (get_disc_expanded_id(regionId, expId, &context)) {
+	std::string errorMessage = "LArEM_Base_ID::disc_channel_id_checks(regId) result is not OK: ID = "
+	    + show_to_string(regionId) ;
+	throw LArID_Exception(errorMessage , 6);
+    }
+
+    expId << eta << phi << m_slar;
+
+    if (!m_full_disc_em_range.match(expId)) { 
+	std::string errorMessage = "LArEM_Base_ID::disc_channel_id_checks(regId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_disc_em_range;
+	throw LArID_Exception(errorMessage , 6);
+    }
+}
+
+
+int  LArEM_Base_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << lar_em_field_value()
+	   << barrel_ec(id)
+	   << sampling(id)
+	   << region(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+    	    if ( context->end_index() >= m_SLAR_INDEX) {
+              exp_id << (unsigned)is_supercell(id);
+            }
+	}
+    }
+    return (0);
+}
+
+
+int  LArEM_Base_ID::get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+  // We assume that the context is >= region
+  exp_id.clear();
+  exp_id << lar_field_value()
+         << -1
+         << barrel_ec(id)
+         << sampling(id)
+         << region(id);
+  if(context && context->end_index() >= m_ETA_INDEX) {
+    exp_id << eta(id);
+    if(context->end_index() >= m_PHI_INDEX) {
+      exp_id << phi(id);
+      if (context->end_index() >= m_SLAR_INDEX) {
+        exp_id << (unsigned)is_supercell(id);
+      }
+    }
+  }
+  return (0);
+}
+
+
+int LArEM_Base_ID::initLevelsFromDict (const std::string& group_name)
+{
+  MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+  if(!dict()) {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - dictionary NOT initialized "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - dictionary NOT initialized "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_LAR_INDEX        = 999 ;
+  m_EM_INDEX         = 999 ;
+  m_BEC_INDEX        = 999 ;
+  m_SAMPLING_INDEX   = 999 ;
+  m_REGION_INDEX     = 999 ;
+  m_ETA_INDEX        = 999 ;
+  m_PHI_INDEX        = 999 ;
+  m_SLAR_INDEX       = 999 ;
+
+  // Find a EM region
+  IdDictField* field = dict()->find_field("subdet") ;
+  if (field) {
+    m_LAR_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'subdet' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'subdet' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("part") ;
+  if (field) {
+    m_EM_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'part' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'part' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("barrel-endcap") ;
+  if (field) {
+    m_BEC_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'barrel-endcap' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'barrel-endcap' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("sampling") ;
+  if (field) {
+    m_SAMPLING_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'sampling' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'sampling' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("region") ;
+  if (field) {
+    m_REGION_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'region' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'region' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("eta") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'eta' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'eta' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("phi") ;
+  if (field) {
+    m_PHI_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'phi' field "
+	  << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'phi' field "
+		<< std::endl ;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("is-slar") ;
+  if (field) {
+    m_SLAR_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'is-slar' field "
+          << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'is-slar' field "
+                << std::endl ;
+    }
+    return (1);
+  }
+
+  // Set the field implementations
+
+  IdDictGroup* group = dict()->find_group(group_name);
+  if ( !group ){
+    log << MSG::ERROR << "initLevelsFromDict - cannot find " << group_name 
+        << " group' field " << endreq;
+  }
+  else {
+	m_em_region_index = group->regions()[0]->m_index;
+  }
+  const IdDictRegion& region = *dict()->m_regions[m_em_region_index];
+
+  m_lar_impl      = region.m_implementation[m_LAR_INDEX]; 
+  m_em_impl       = region.m_implementation[m_EM_INDEX]; 
+  m_bec_impl      = region.m_implementation[m_BEC_INDEX]; 
+  m_sampling_impl = region.m_implementation[m_SAMPLING_INDEX]; 
+  m_region_impl   = region.m_implementation[m_REGION_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
+  m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
+
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "decode index and bit fields for each level: " << endreq;
+    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "em   "   << m_em_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "bec  "  << m_bec_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "samp " << m_sampling_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endreq;
+  }
+  else {
+    std::cout << "decode index and bit fields for each level: " << std::endl;
+    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+    std::cout << "em   "   << m_em_impl.show_to_string() << std::endl;
+    std::cout << "bec  "  << m_bec_impl.show_to_string() << std::endl;
+    std::cout << "samp " << m_sampling_impl.show_to_string() << std::endl;
+    std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
+    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+    std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+  }
+  
+
+  return(0) ;
+}
+
+
+int         LArEM_Base_ID::init_hashes(void) 
+{
+  if (channels().init (*this, "channels",
+                       m_full_em_range, &LArEM_Base_ID::channel_id,
+                       m_SLAR_INDEX))
+    return 1;
+  if (regions().init (*this, "regions",
+                      m_full_region_range, &LArEM_Base_ID::region_id,
+                      m_REGION_INDEX))
+    return 1;
+
+  return (0);
+}
+
+
+int LArEM_Base_ID::init_disc_hashes(void) 
+{
+  if (m_disc_channels.init (*this, "channels",
+                            m_full_disc_em_range,
+                            &LArEM_Base_ID::disc_channel_id,
+                            m_SLAR_INDEX))
+    return 1;
+
+  return (0);
+}
+
+
+int
+LArEM_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                                const std::string& group_name)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+
+  log << MSG::DEBUG << "initialize_base_from_dictionary" << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if(CaloIDHelper::initialize_base_from_dictionary(dict_mgr,
+                                                   "LArCalorimeter"))
+    return (1);
+
+  // initialize dictionary version
+  AtlasDetectorID::setDictVersion(dict_mgr, "LArCalorimeter");
+
+  // Initialize the field indices
+  if (initLevelsFromDict(group_name)) return (1);
+
+  // Find value for the field LAr Calorimeter   
+    const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+    int larField   = -1;
+    if (atlasDict->get_label_value("subdet", "LArCalorimeter", larField)) {
+      if(m_msgSvc) {
+	log << MSG::ERROR << "Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary " 
+	    << atlasDict->m_name
+	    << endreq;
+      }
+      else {
+        std::cout << "Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary " 
+                  << atlasDict->m_name
+                  << std::endl;
+      }
+      return (1);
+    }
+
+  // Find value for the field LArEM 
+    int larEmField   = -1;
+    if (dict()->get_label_value("part", "LArEM", larEmField)) {
+      if(m_msgSvc) {
+	log << MSG::ERROR << "Could not get value for label 'LArEM' of field 'part' in dictionary " 
+	    << dict()->m_name
+	    << endreq;
+      }
+      else {
+        std::cout << "Could not get value for label 'LArEM' of field 'part' in dictionary " 
+                  << dict()->m_name
+                  << std::endl;
+      }
+      return (1);
+    }
+
+    int larEmDiscField   = -1;
+    // Find value for the field LArEMdisc
+    if (dict()->get_label_value("part", "LArEMdisc", larEmDiscField)) {
+      if(m_msgSvc) {
+        log << MSG::ERROR << "Could not get value for label 'LArEMdisc' of field 'part' in dictionary " 
+            << dict()->m_name
+            << endreq;
+      }
+      else {
+        std::cout << "Could not get value for label 'LArEMdisc' of field 'part' in dictionary " 
+                  << dict()->m_name
+                  << std::endl;
+      }
+      return (1);
+    }
+
+    // Set up id for region and range prefix
+    ExpandedIdentifier reg_id;
+    reg_id.add(larField);
+    reg_id.add(larEmField);
+    Range prefix;	
+    ExpandedIdentifier reg_id2;
+    reg_id2.add(larField);
+    reg_id2.add(larEmDiscField);
+    Range prefix2;
+
+    // (1) Connected channels
+    m_full_em_range = dict()->build_multirange(reg_id, group_name, prefix);
+    m_full_region_range = dict()->build_multirange(reg_id, group_name, prefix, "region");  
+    
+    // (2) disconnected channels
+    m_full_disc_em_range = dict()->build_multirange(reg_id2,group_name, prefix2);
+    m_full_disc_region_range = dict()->build_multirange(reg_id2,group_name, prefix2, "region");
+
+    if(m_msgSvc) {
+      log << MSG::DEBUG << " initialize_from_dict : " 
+	  << endreq;
+      log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range
+	  << endreq;
+      log << MSG::DEBUG << " channel range -> "  << (std::string)m_full_em_range
+	  << endreq;
+      log << MSG::DEBUG << " disconected region range -> "  << (std::string)m_full_disc_region_range
+	  << endreq;
+      log << MSG::DEBUG << " disconnected channel range -> "  << (std::string)m_full_disc_em_range
+	  << endreq;
+    }
+    else {
+      std::cout << " LArEM_Base_ID::initialize_from_dict : " 
+		<< std::endl;
+      std::cout << " region range -> "  << (std::string)m_full_region_range
+		<< std::endl;
+      std::cout << " channel range -> "  << (std::string)m_full_em_range
+		<< std::endl;
+      std::cout << " disconected region range -> "  << (std::string)m_full_disc_region_range
+		<< std::endl;
+      std::cout << " disconnected channel range -> "  << (std::string)m_full_disc_em_range
+		<< std::endl;
+    }
+   
+    // initialize m_two_sym_sides
+    m_two_sym_sides = ( dictionaryVersion() == "fullAtlas" );
+
+
+    // Setup the hash tables
+    if(init_hashes()) return (1);
+
+    // initialize dictionary regions
+    if (fill_vec_of_dict_regions (group_name)) return 1;
+
+    // added nov 2005 to speed up CaloNoiseTool initialisation
+    m_vecOfPhiMin.resize(regions().hash_max());
+    for (unsigned int i = 0; i < regions().hash_max(); ++i) {
+      Identifier regId = region_id(i); 
+      m_vecOfPhiMin[i] = phi_min_init(regId);
+    }
+
+
+    // Setup for hash calculation
+
+    // We use the structure of the region definitions in the
+    // dictionary to optimize. Specifically, each dict region
+    // corresponds to two regions of uniform eta/phi granularity (+/-
+    // in barrel/endcap). The lookup table only needs to contain the
+    // hash offset for each region and the number of phi cells.
+
+    // The implementation requires:
+
+    //   1) a lookup table for each region containing hash offset and
+    //      nphi
+    //   2) a decoder to access the "index" corresponding to the
+    //      bec/samp/reg fields. These fields use 8 bits, so the
+    //      vector has a length of 256 for only 36 regions.
+
+
+    // Create decoder for fields bec to region
+    IdDictFieldImplementation::size_type bits = 
+	m_bec_impl.bits() +
+	m_sampling_impl.bits() +
+	m_region_impl.bits();
+    IdDictFieldImplementation::size_type bits_offset = m_bec_impl.bits_offset();
+    m_bec_reg_impl.set_bits(bits, bits_offset);
+
+    //    std::cout << "bec_reg "  << m_bec_reg_impl.decode_index()  << " " 
+    //      << (std::string)m_bec_reg_impl.ored_field()  << " " 
+    //      << std::hex << m_bec_reg_impl.mask() << " " 
+    //      << m_bec_reg_impl.zeroing_mask() << " " 
+    //      << std::dec << m_bec_reg_impl.shift()
+    //      << " " << m_bec_reg_impl.bits() << " " <<m_bec_reg_impl.bits_offset()
+    //      << std::endl;
+
+
+    // Set up vector as lookup table for hash calculation. 
+    m_hash_calcs.resize(256);
+    for (unsigned int i = 0; i < m_full_em_range.size(); ++i) {
+	const Range* range = &m_full_em_range[i];
+	ExpandedIdentifier exp_id = range->minimum (); 
+	HashCalc hc;
+
+	Identifier min = channel_id (exp_id[m_BEC_INDEX],
+				     exp_id[m_SAMPLING_INDEX], 
+				     exp_id[m_REGION_INDEX],
+				     exp_id[m_ETA_INDEX],
+				     exp_id[m_PHI_INDEX]);
+	IdentifierHash min_neg = channel_hash_binary_search(min);
+	hc.m_hash    = min_neg;
+	Identifier minReg = region_id(min) ;
+	hc.m_etamin  = eta_min(minReg);
+	hc.m_phimin  = phi_min(minReg);
+	hc.m_nphi    = (*range)[m_PHI_INDEX].get_indices();
+	m_hash_calcs[m_bec_reg_impl.unpack(min)] = hc;
+
+	// Flip sign for bec if 2 symmetric sides (ATLAS case, not TB)
+	if(m_two_sym_sides) {
+	  Identifier min1 = channel_id (-exp_id[m_BEC_INDEX],
+					exp_id[m_SAMPLING_INDEX], 
+					exp_id[m_REGION_INDEX],
+					exp_id[m_ETA_INDEX],
+					exp_id[m_PHI_INDEX]);
+	  IdentifierHash min_pos = channel_hash_binary_search(min1);
+	  hc.m_hash  = min_pos;
+	  m_hash_calcs[m_bec_reg_impl.unpack(min1)] = hc;
+	}
+
+
+	if (m_bec_reg_impl.unpack(min) > 255) {
+	  if(m_msgSvc) {
+	    log << MSG::WARNING << "min > 255 " 
+		<< i << " "
+		<< show_to_string(min) << " " 
+		<< m_bec_reg_impl.unpack(min) << " " 
+		<< endreq;
+	  }
+	  else {
+	    std::cout << "min > 255 " 
+		      << i << " "
+		      << show_to_string(min) << " " 
+		      << m_bec_reg_impl.unpack(min) << " " 
+		      << std::endl;
+	  }
+	}
+    }
+    
+//   Some detailed printout
+//  	ExpandedIdentifier exp_id = range->maximum (); 
+// 	Identifier max = channel_id (exp_id[m_BEC_INDEX],
+//  				     exp_id[m_SAMPLING_INDEX], 
+//  				     exp_id[m_REGION_INDEX],
+//  				     exp_id[m_ETA_INDEX],
+//  				     exp_id[m_PHI_INDEX]);
+//  	Identifier max0 = channel_id (-exp_id[m_BEC_INDEX],
+//  				      exp_id[m_SAMPLING_INDEX], 
+//  				      exp_id[m_REGION_INDEX],
+//  				      exp_id[m_ETA_INDEX],
+//  				      exp_id[m_PHI_INDEX]);
+//  	std::cout << "channel ranges, id, hash " 
+//  		  << i << " "
+//  		  << show_to_string(min) << " " 
+//  		  << show_to_string(max0) << " " 
+//  		  << show_to_string(min1) << " " 
+//  		  << show_to_string(max) << " " 
+//  		  << channel_hash_binary_search(min)  << " " 
+//  		  << channel_hash_binary_search(min1)  << " " 
+//  		  << min_pos  << " " 
+//  		  << range->cardinality() << " " 
+//  		  << std::endl;
+//      }
+
+    // Check hash calculation
+    for (unsigned int i = 0; i < channels().hash_max(); ++i) {
+      Identifier id = channel_id(i);
+      if (channel_hash(id) != i) {
+	if(m_msgSvc) {
+	  log << MSG::ERROR << "channel ranges, id, hash " 
+	      << show_to_string(id) << " " 
+	      << channel_hash(id) << " " 
+	      << i
+	      << endreq;
+	}
+	else {
+	  std::cout << " *****  Error ";
+	  std::cout << "channel ranges, id, hash " 
+		    << show_to_string(id) << " " 
+		    << channel_hash(id) << " " 
+		    << i
+		    << std::endl;
+	}
+      }
+    }
+    
+    if(init_disc_hashes()) return (1);
+
+    // Setup hash tables for finding neighbors (at the end of initialisation, 
+    // to benefit from optimization
+    if(m_do_neighbours) {
+      if(init_neighbors()) return (1);     
+    }
+
+    return 0;
+}
+
+
+int   LArEM_Base_ID::get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption& option, 
+			       std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  neighbourList.clear();
+  
+  if(!m_do_neighbours) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+      log << MSG::WARNING << "neighbours not initialized !!! returning empty list" << endreq;
+    }
+    else {
+      std::cout << " WARNING: neighbours not initialized !!! returning empty list " << std::endl;
+    }
+    return result;
+  }
+
+  if(id>=channel_hash_max()) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+      log << MSG::WARNING << "neighbours requested for unconnected channel -- this is not implemented" << endreq;
+    }
+    else {
+      std::cout << " neighbours requested for unconnected channel -- this is not implemented" << std::endl;
+    }
+    return result;
+  }
+
+  const short int maxNeighb=22;
+  IdentifierHash neighbList[maxNeighb];
+  int neighbourIndex = 0;
+
+  // cell index
+  unsigned int index=id;
+
+  //
+  // .... find in which region is the cell   
+  //
+  auto itr = std::upper_bound(m_cells.begin(), m_cells.end(), index);
+  unsigned short int regionN = (itr - m_cells.begin()) - 1;
+  assert (regionN < m_vecOfRegions.size());
+  // get pointer to this region
+  LArEM_region* emRegion = m_vecOfRegions[regionN];
+  // retrieve characteristic numbers for this region
+  short int nPhi = emRegion->phiN();
+  float gPhi = emRegion->phiGranularity();
+  unsigned int minHash = emRegion->hashMin();
+  unsigned int maxHash = emRegion->hashMax();
+
+  bool corners2DOnly  = ( (option & LArNeighbours::all2D) 
+			  == LArNeighbours::corners2D );
+  //
+  // .... previous neighbour in phi
+  //
+  IdentifierHash prevNeighbInPhi=NOT_VALID_HASH;
+  if( (option & LArNeighbours::prevInPhi) 
+      || corners2DOnly ){
+    if(!get_prevInPhi(emRegion, index, nPhi, minHash, neighbourIndex, neighbList)){
+      // always 1 and only 1 neighbour in phi in ATLAS, but 0 or 1 neighbour in phi in TB
+      prevNeighbInPhi=neighbList[neighbourIndex-1];
+      if( corners2DOnly ){
+	neighbourIndex--;
+      }
+    }
+  }
+
+  //
+  // ....next neighbour in phi
+  //
+  IdentifierHash nextNeighbInPhi=NOT_VALID_HASH;
+  if( (option & LArNeighbours::nextInPhi)
+      ||  corners2DOnly ){
+    if(!get_nextInPhi(emRegion, index, nPhi, minHash, neighbourIndex, neighbList)){
+      // always 1 and only 1 neighbour in phi in ATLAS, but 0 or 1 neighbour in phi in TB
+      nextNeighbInPhi=neighbList[neighbourIndex-1];
+      if( corners2DOnly ){
+	neighbourIndex--;
+      }
+    }
+  }
+
+  //
+  // ....previous neighbours in eta
+  //
+  unsigned int nPrevBiggerCell=NOT_VALID_HASH;
+  if( (option & LArNeighbours::prevInEta) ){
+    get_prevInEta(emRegion, index, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+  }
+
+  //
+  // ....next neighbours in eta
+  //
+  unsigned int nNextBiggerCell=NOT_VALID_HASH;
+  if( (option & LArNeighbours::nextInEta) ){
+    get_nextInEta(emRegion, index, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+  }
+
+  //
+  // ....corners in the same sampling
+  //
+  if( (option & LArNeighbours::corners2D) ){
+    if(prevNeighbInPhi != NOT_VALID_HASH){
+      unsigned int index1=prevNeighbInPhi;
+      int oldNeighbourIndex = neighbourIndex;
+      // allow only 1 corner cell in order to avoid the problem of 
+      // non-mutual neighbourness
+      // since the cells come ordered in phi it should be the last cell for
+      // prevNeighbInPhi as starting points
+      get_prevInEta(emRegion, index1, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbList[oldNeighbourIndex] = neighbList[neighbourIndex-1];
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+      oldNeighbourIndex = neighbourIndex;
+      get_nextInEta(emRegion, index1, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbList[oldNeighbourIndex] = neighbList[neighbourIndex-1];
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+    }
+
+    if(nextNeighbInPhi != NOT_VALID_HASH){
+      unsigned int index2=nextNeighbInPhi;
+      int oldNeighbourIndex = neighbourIndex;
+      // allow only 1 corner cell in order to avoid the problem of 
+      // non-mutual neighbourness
+      // since the cells come ordered in phi it should be the 1st cell for
+      // nextNeighbInPhi 
+      get_prevInEta(emRegion, index2, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+      oldNeighbourIndex = neighbourIndex;
+      get_nextInEta(emRegion, index2, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+    }
+  }
+
+  //
+  // .... neighbours in sampling (common code)
+  // EM caracteristics = granularity changes in both eta and phi + partial overlap of samplings
+  //
+  if( (option & LArNeighbours::upAndDown) ) {
+    // granularity of the initial region
+    double gEta = (double)(emRegion->etaGranularity());
+    // initial eta
+    int nEta =  int( (index-minHash) / nPhi);
+    double absEta = (double)(emRegion->etaMin()) + (double)(nEta * gEta);
+
+    // previous neighbours in sampling
+    if( (option & LArNeighbours::prevInSamp) ){
+      get_prevInSamp(emRegion, index, nPhi, minHash, gEta, gPhi, absEta, neighbourIndex, neighbList);
+    }
+
+    // next neighbours in sampling
+    if( (option & LArNeighbours::nextInSamp) ){
+      get_nextInSamp(emRegion, index, nPhi, minHash, gEta, gPhi, absEta, neighbourIndex, neighbList);
+    }
+  }
+
+  //
+  // .... neighbours across subdet
+  //
+  if( (option & (LArNeighbours::prevSubDet | LArNeighbours::nextSubDet)) ){
+    // granularity of the initial region
+    double gEta = (double)(emRegion->etaGranularity());
+    // initial eta
+    int nEta =  int( (index-minHash) / nPhi);
+    double absEta = (double)(emRegion->etaMin()) + (double)(nEta * gEta);
+
+    // prev neighbours in subdet
+    if( (option & LArNeighbours::prevSubDet) ){ 
+      get_prevInSubdet(emRegion, index, nPhi, minHash, gEta, gPhi, absEta, neighbourIndex, neighbList);
+    }
+    // next neighbours in subdet
+    if( (option & LArNeighbours::nextSubDet) ){
+      get_nextInSubdet(emRegion, index, nPhi, minHash, gEta, gPhi, absEta, neighbourIndex, neighbList);
+    }
+  }
+
+
+  neighbourList.resize(neighbourIndex);
+  if (neighbourIndex > 0) {
+    if (neighbourIndex <= maxNeighb) {
+      std::copy (&neighbList[0], &neighbList[neighbourIndex],  neighbourList.begin());
+      result = 0 ;
+    } else {
+      if(m_msgSvc) {
+        MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+	log << MSG::WARNING << " more than 22 neighbours for this cell, NONE will be retained" << endreq;
+      }
+      else {
+	std::cout << "WARNING: more than 22 neighbours for this cell, NONE will be retained " << neighbourIndex << std::endl;
+      }
+    } 
+  }
+
+  return result;
+}
+
+
+int   LArEM_Base_ID::get_prevInPhi(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  unsigned int nIndex = index-1;
+  if(!emRegion->isPhiMin(index)) {
+    if( ((index-minHash)%(nPhi)) == 0 ) nIndex=index+nPhi-1;
+    IdentifierHash nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_nextInPhi(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi,  const unsigned int& minHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  if(!emRegion->isPhiMax(index)) {
+    unsigned int nIndex = index+1;
+    if( ((index-minHash+1)%(nPhi)) == 0 ) nIndex=index-nPhi+1;
+    IdentifierHash nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_prevInEta(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, 
+			       const unsigned int& minHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const
+{
+  int result = 1; 
+
+  unsigned int nIndex = 0;
+  IdentifierHash nHash = 0;
+
+  if( emRegion->isEtaMin(index)){
+    // eta == etaMin -> go to previous region in eta
+    short int nPrevEtaRegion = emRegion->prevEtaRegion();
+    // no neighbour if no previous region in eta
+    if( nPrevEtaRegion != NOT_VALID_REGION ) {
+      LArEM_region* prevEmRegion = m_vecOfRegions[nPrevEtaRegion];
+      if(emRegion->isFirstBarrelRegion()) {
+	// special case: barrel middle
+	unsigned int minHashMinus = prevEmRegion->hashMin();
+	nIndex = minHashMinus + index-minHash ;
+	nHash = nIndex;
+	neighbList[neighbourIndex] = nHash;
+	neighbourIndex++;
+	result = 0;
+      }
+      else {
+	short int nPhiMinus = prevEmRegion->phiN();
+	float gPhiMinus= prevEmRegion->phiGranularity();
+	unsigned int maxHashMinus = prevEmRegion->hashMax();
+	float phiMargin = 0.5*std::min(gPhi,gPhiMinus);
+	float rPhi = (index-minHash)*gPhi+emRegion->phiMin();
+	int nPhiMinusFirst = int(floor((rPhi     -prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin))
+	  +maxHashMinus-nPhiMinus;
+	int nPhiMinusNext  = int(floor((rPhi+gPhi-prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin))
+	  +maxHashMinus-nPhiMinus;
+	if ( nPhiMinusNext == nPhiMinusFirst ) nPhiMinusNext++;
+		
+	for(int i=nPhiMinusFirst; i<nPhiMinusNext; i++){
+	  nIndex = i ;
+	  if(nIndex != nBiggerCell) {
+	    nHash = nIndex;
+	    neighbList[neighbourIndex] = nHash;
+	    neighbourIndex++;
+	    result = 0;
+	  }
+	  // to avoid duplicated cells in corners
+	  if(gPhi < gPhiMinus && nBiggerCell == NOT_VALID_HASH) nBiggerCell=nIndex;
+	}
+      }
+    }
+  }
+  else {
+    // stay in same region (1 neighbour)
+    nIndex = index - nPhi;
+    nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_nextInEta(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, 
+			       const unsigned int& maxHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const
+{
+  int result = 1; 
+
+  unsigned int nIndex = 0;
+  IdentifierHash nHash = 0;
+
+  if( emRegion->isEtaMax(index)){
+    // eta == etaMax -> go to next region in eta
+    short int nNextEtaRegion = emRegion->nextEtaRegion();
+    // no neighbour if no next region in eta
+    if( nNextEtaRegion != NOT_VALID_REGION ) {
+      LArEM_region* nextEmRegion = m_vecOfRegions[nNextEtaRegion];
+      float gPhiPlus= nextEmRegion->phiGranularity();
+      unsigned int minHashPlus = nextEmRegion->hashMin();
+      float phiMargin = 0.5*std::min(gPhi,gPhiPlus);
+      float rPhi = (index+nPhi-maxHash)*gPhi+emRegion->phiMin();
+      int nPhiPlusFirst = int(floor((rPhi     -nextEmRegion->phiMin())
+				    /gPhiPlus+phiMargin))+minHashPlus;
+      int nPhiPlusNext  = int(floor((rPhi+gPhi-nextEmRegion->phiMin())
+				    /gPhiPlus+phiMargin))+minHashPlus;
+      if ( nPhiPlusNext == nPhiPlusFirst ) nPhiPlusNext++;
+
+      for(int i=nPhiPlusFirst; i<nPhiPlusNext; i++){
+	nIndex = i ;
+	if(nIndex != nBiggerCell) {
+	  nHash = nIndex;
+	  neighbList[neighbourIndex] = nHash;
+	  neighbourIndex++;
+	  result = 0;
+	}
+	// to avoid duplicated cells in corners
+	if(gPhi < gPhiPlus && nBiggerCell == NOT_VALID_HASH) nBiggerCell=nIndex;
+      }
+    }
+  }
+  else {
+    // stay in same region (1 neighbour)
+    nIndex = index + nPhi;
+    nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_prevInSamp(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				const double& gEta, const float& gPhi, const double& absEta, 
+				int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  // previous region in sampling
+  const std::vector<short int>& prevSampRegion= emRegion->prevSamplingRegion();
+  int nPrevSampReg = prevSampRegion.size();
+  if(nPrevSampReg > 0) {
+    for(int ireg=0; ireg<nPrevSampReg; ireg++) {
+      LArEM_region* prevEmRegion = m_vecOfRegions[prevSampRegion[ireg]];
+      // eta granularity of previous region in sampling
+      double gEtaMinus= (double)(prevEmRegion->etaGranularity());
+      // starting eta of prev region
+      double minEtaMinus =  (double)(prevEmRegion->etaMin());
+      double maxEtaMinus =  (double)(prevEmRegion->etaMax());
+      double margin = 0.5*std::min(gEta,gEtaMinus);
+      if((minEtaMinus < absEta+gEta-margin) && (absEta+margin < maxEtaMinus)) {
+	
+	// phi granularity of previous region in sampling
+	float gPhiMinus= prevEmRegion->phiGranularity();
+	// max phi of previous region in sampling
+	short int nPhiMinus = prevEmRegion->phiN();
+	// first hash of previous region in sampling
+	unsigned int minHashMinus = prevEmRegion->hashMin(); 
+	float phiMargin = 0.5*std::min(gPhi,gPhiMinus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+emRegion->phiMin();
+	int nPhiMinusFirst = int(floor((rPhi     -prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	int nPhiMinusNext  = int(floor((rPhi+gPhi-prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	if ( nPhiMinusNext == nPhiMinusFirst ) nPhiMinusNext++;
+		
+	// eta 'coordinate' in initial region
+	double fEtaMinus = (absEta-minEtaMinus) / gEtaMinus + margin ;
+	// eta 'coordinate' in initial region + 1
+	double fEtaMaxMinus = (absEta+gEta-minEtaMinus) / gEtaMinus + margin ;
+	int nEtaMinus = int(fEtaMinus);
+	int nEtaMaxMinus = int(fEtaMaxMinus);
+	if ( nEtaMaxMinus == nEtaMinus ) nEtaMaxMinus++;
+	for(int i=nEtaMinus; i<nEtaMaxMinus; i++) {
+	  for (int j=nPhiMinusFirst; j<nPhiMinusNext;j++) {
+	    nIndex = minHashMinus + i * nPhiMinus + j;
+	    if( (nIndex >= prevEmRegion->hashMin()) && (nIndex < prevEmRegion->hashMax()) ) {
+	      nHash = nIndex;
+	      neighbList[neighbourIndex] = nHash;
+	      neighbourIndex++;
+	      result = 0;
+	    }
+	  }
+	} 
+      } // end eta condition
+    } // loop on ireg
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_nextInSamp(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				const double& gEta, const float& gPhi, const double& absEta,
+				int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  const std::vector<short int>& nextSampRegion= emRegion->nextSamplingRegion();
+  int nNextSampReg = nextSampRegion.size();
+  if(nNextSampReg > 0) {
+    for(int ireg=0; ireg<nNextSampReg; ireg++) {
+      LArEM_region* nextEmRegion = m_vecOfRegions[nextSampRegion[ireg]];
+      double gEtaPlus = (double)(nextEmRegion->etaGranularity());
+      float gPhiPlus= nextEmRegion->phiGranularity();
+      double minEtaPlus = (double)(nextEmRegion->etaMin());
+      double maxEtaPlus = (double)(nextEmRegion->etaMax());
+      double margin = 0.5*std::min(gEta,gEtaPlus);
+      if((minEtaPlus < absEta+gEta-margin) && (absEta+margin < maxEtaPlus)) {
+	
+	short int nPhiPlus = nextEmRegion->phiN();
+	unsigned int minHashPlus = nextEmRegion->hashMin(); 
+	float phiMargin = 0.5*std::min(gPhi,gPhiPlus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+emRegion->phiMin();
+	int nPhiPlusFirst = int(floor((rPhi     -nextEmRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	int nPhiPlusNext  = int(floor((rPhi+gPhi-nextEmRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	if ( nPhiPlusNext == nPhiPlusFirst ) nPhiPlusNext++;
+
+	double fEtaPlus = (absEta-minEtaPlus) / gEtaPlus + margin ;
+	// eta 'coordinate' in initial region + 1
+	double fEtaMaxPlus = (absEta+gEta-minEtaPlus) / gEtaPlus + margin ;
+	int nEtaPlus = int(fEtaPlus) ;
+	int nEtaMaxPlus = int(fEtaMaxPlus) ;
+	if (nEtaMaxPlus == nEtaPlus) nEtaMaxPlus++;
+
+	for(int i=nEtaPlus; i<nEtaMaxPlus; i++){
+	  for(int j=nPhiPlusFirst; j<nPhiPlusNext; j++){
+	    nIndex = minHashPlus + i * nPhiPlus + j;
+	    if( (nIndex >= nextEmRegion->hashMin()) && (nIndex < nextEmRegion->hashMax()) ) {
+	      nHash = nIndex;
+	      neighbList[neighbourIndex] = nHash;
+	      neighbourIndex++;
+	      result = 0;
+	    }
+	  }
+	}
+      } // end eta condition
+    } // end loop on regions
+  }
+  return result;
+}
+
+
+int   LArEM_Base_ID::get_prevInSubdet(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				const double& gEta, const float& gPhi, const double& absEta, 
+				int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  // previous region in sampling
+  const std::vector<short int>& prevSubdetRegion= emRegion->prevSubdetRegion();
+  int nPrevSubdetReg = prevSubdetRegion.size();
+  if(nPrevSubdetReg > 0) {
+    for(int ireg=0; ireg<nPrevSubdetReg; ireg++) {
+      LArEM_region* prevEmRegion = m_vecOfRegions[prevSubdetRegion[ireg]];
+      // eta granularity of previous region in sampling
+      double gEtaMinus= (double)(prevEmRegion->etaGranularity());
+      // starting eta of prev region
+      double minEtaMinus =  (double)(prevEmRegion->etaMin());
+      double maxEtaMinus =  (double)(prevEmRegion->etaMax());
+      double margin = 0.5*std::min(gEta,gEtaMinus);
+      if((minEtaMinus < absEta+gEta-margin) && (absEta+margin < maxEtaMinus)) {
+	
+	// phi granularity of previous region in sampling
+	float gPhiMinus= prevEmRegion->phiGranularity();
+	// max phi of previous region in sampling
+	short int nPhiMinus = prevEmRegion->phiN();
+	// first hash of previous region in sampling
+	unsigned int minHashMinus = prevEmRegion->hashMin(); 
+	float phiMargin = 0.5*std::min(gPhi,gPhiMinus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+emRegion->phiMin();
+	int nPhiMinusFirst = int(floor((rPhi     -prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	int nPhiMinusNext  = int(floor((rPhi+gPhi-prevEmRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	if ( nPhiMinusNext == nPhiMinusFirst ) nPhiMinusNext++;
+	// eta 'coordinate' in initial region
+	double fEtaMinus = (absEta-minEtaMinus) / gEtaMinus + margin ;
+	// eta 'coordinate' in initial region + 1
+	double fEtaMaxMinus = (absEta+gEta-minEtaMinus) / gEtaMinus + margin ;
+	int nEtaMinus = int(fEtaMinus);
+	int nEtaMaxMinus = int(fEtaMaxMinus);
+	if ( nEtaMaxMinus == nEtaMinus ) nEtaMaxMinus++;
+
+	for(int i=nEtaMinus; i<nEtaMaxMinus; i++) {
+	  for (int j=nPhiMinusFirst; j<nPhiMinusNext;j++) {
+	    nIndex = minHashMinus + i * nPhiMinus + j;
+	    if( (nIndex >= prevEmRegion->hashMin()) && (nIndex < prevEmRegion->hashMax()) ) {
+	      nHash = nIndex;
+	      neighbList[neighbourIndex] = nHash;
+	      neighbourIndex++;
+	      result = 0;
+	    }
+	  }
+	} 
+      } // end eta condition
+    } // loop on ireg
+  }
+  return result;
+}
+
+int   LArEM_Base_ID::get_nextInSubdet(const LArEM_region* emRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				const double& gEta, const float& gPhi, const double& absEta,
+				int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  const std::vector<short int>& nextSubdetRegion= emRegion->nextSubdetRegion();
+  int nNextSubdetReg = nextSubdetRegion.size();
+  if(nNextSubdetReg > 0) {
+    for(int ireg=0; ireg<nNextSubdetReg; ireg++) {
+      LArEM_region* nextEmRegion = m_vecOfRegions[nextSubdetRegion[ireg]];
+      double gEtaPlus = (double)(nextEmRegion->etaGranularity());
+      float gPhiPlus= nextEmRegion->phiGranularity();
+      double minEtaPlus = (double)(nextEmRegion->etaMin());
+      double maxEtaPlus = (double)(nextEmRegion->etaMax());
+      double margin = 0.5*std::min(gEta,gEtaPlus);
+      if((minEtaPlus < absEta+gEta-margin) && (absEta+margin < maxEtaPlus)) {
+	
+	short int nPhiPlus = nextEmRegion->phiN();
+	unsigned int minHashPlus = nextEmRegion->hashMin(); 
+	float phiMargin = 0.5*std::min(gPhi,gPhiPlus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+emRegion->phiMin();
+	int nPhiPlusFirst = int(floor((rPhi     -nextEmRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	int nPhiPlusNext  = int(floor((rPhi+gPhi-nextEmRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	if ( nPhiPlusNext == nPhiPlusFirst ) nPhiPlusNext++;
+
+	double fEtaPlus = (absEta-minEtaPlus) / gEtaPlus + margin ;
+	// eta 'coordinate' in initial region + 1
+	double fEtaMaxPlus = (absEta+gEta-minEtaPlus) / gEtaPlus + margin ;
+	int nEtaPlus = int(fEtaPlus) ;
+	int nEtaMaxPlus = int(fEtaMaxPlus) ;
+	if (nEtaMaxPlus == nEtaPlus) nEtaMaxPlus++;
+
+	for(int i=nEtaPlus; i<nEtaMaxPlus; i++) {
+	  for(int j=nPhiPlusFirst; j<nPhiPlusNext; j++) {
+	    nIndex = minHashPlus + i * nPhiPlus + j;
+	    if( (nIndex >= nextEmRegion->hashMin()) && (nIndex < nextEmRegion->hashMax()) ) {
+	      nHash = nIndex;
+	      neighbList[neighbourIndex] = nHash;
+	      neighbourIndex++;
+	      result = 0;
+	    }
+	  }
+	}
+      } // end eta condition
+    } // end loop on regions
+  }
+  return result;
+}
+
+
+int         LArEM_Base_ID::init_neighbors(void) 
+{
+  MsgStream log(m_msgSvc, "LArEM_Base_ID" );
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "init_neighbors" << endreq;
+  }
+  else {
+    std::cout << " LArEM_Base_ID::init_neighbors " << std::endl;
+  }
+
+  const std::vector<const IdDictRegion*>& vecOfDictRegions = dictRegions();
+
+  //
+  // ..... loop on regions -> store vector of LArEM_region*
+  //
+  m_vecOfRegions.resize(region_hash_max());
+  short int reg=0;
+  std::vector<Identifier>::const_iterator debut=reg_begin() ;
+  std::vector<Identifier>::const_iterator fin  =reg_end() ;
+  for (; debut != fin; ++debut) {
+      const Identifier& regId = (*debut);
+
+      bool phiWrapAround = (dictionaryVersion() == "fullAtlas" );
+      bool isBarrelMiddle = false;
+
+      //
+      // ..... translate regId to chanId and get hash
+      //
+
+      Identifier id ;
+      unsigned int index0 = NOT_VALID_HASH;
+      int etaMin = eta_min(regId);
+      int phiMin = phi_min(regId);
+      if(etaMin >= 0 && phiMin >= 0) {
+	try{
+	  id = channel_id (regId, eta_min(regId), phi_min(regId) );  
+	}
+	catch(LArID_Exception & except){
+	  if(m_msgSvc) {
+	    log << MSG::ERROR << " LArId exception " 
+		<< (std::string)except
+		<< endreq;
+	  }
+	  else {
+	    std::cout 
+	      <<  " LArId exception " 
+	      << (std::string)except
+	      << std::endl;
+	  }
+	}
+	IdentifierHash hashId = channel_hash (id) ;
+	index0=hashId;
+      }
+      else {
+	if(m_msgSvc) {
+	  log << MSG::WARNING << " could not find non negative etaMin and phiMin for region " 
+	      << show_to_string(regId)
+	      << endreq;
+	}
+	else {
+	  std::cout << "WARNING !! could not find non negative etaMin and phiMin for region " 
+		    << show_to_string(regId)
+		    << std::endl;
+	}
+	index0 = 0;
+      }
+
+      short int deltaEta = eta_max(regId) - eta_min(regId) + 1 ;
+      short int nPhi = phi_max(regId) - phi_min(regId) + 1 ;
+      // starting eta 
+      float eta0 = this->eta0(reg);
+      // eta granularity
+      float deta = etaGranularity(reg);
+      // starting phi 
+      float phi0 = this->phi0(reg);
+      // phi granularity
+      float dphi =  phiGranularity(reg);
+
+      // full range of regions
+      unsigned int ireg0=0;
+      unsigned int ireg1=region_hash_max();
+      //  if 2 symetric sides, in which side is the current reg.
+      if(twoSymSides()) {
+	if(reg < (short int)region_hash_max()/2) {
+	  ireg0=0;
+	  ireg1=region_hash_max()/2;
+	} else {
+	  ireg0=region_hash_max()/2;
+	  ireg1=region_hash_max();
+	}
+      }
+
+      //
+      // .... compute prev/next regions in eta 
+      //
+      short int regForPrevEta=NOT_VALID_REGION;
+      IdDictRegion* prevEtaDicReg =  vecOfDictRegions[reg]->m_prev_abs_eta;
+      short int regForNextEta=NOT_VALID_REGION;
+      IdDictRegion* nextEtaDicReg =  vecOfDictRegions[reg]->m_next_abs_eta;
+      for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	if(vecOfDictRegions[ireg] == prevEtaDicReg) regForPrevEta = ireg;
+	if(vecOfDictRegions[ireg] == nextEtaDicReg) regForNextEta = ireg;
+      }
+      // .... special case of barrel middle
+      if(twoSymSides()) {
+	if(eta0 < 0.1 ) {
+	  isBarrelMiddle = true;
+	  if(barrel_ec(regId) < 0) {
+	    regForPrevEta = reg+6;
+	  } else {
+	    regForPrevEta = reg-6;
+	  }
+	}
+      }
+
+      //
+      // .... compute prev/next regions in sampling  
+      //
+      std::vector<short int> regForPrevSamp;
+      std::vector<IdDictRegion*> prevSampDicReg =  vecOfDictRegions[reg]->m_prev_samp;
+      for(unsigned int isam=0;isam<prevSampDicReg.size();isam++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == prevSampDicReg[isam]) regForPrevSamp.push_back(ireg);
+	}
+      }
+
+      std::vector<short int> regForNextSamp;
+      std::vector<IdDictRegion*> nextSampDicReg =  vecOfDictRegions[reg]->m_next_samp;
+      for(unsigned int isam=0;isam<nextSampDicReg.size();isam++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == nextSampDicReg[isam]) regForNextSamp.push_back(ireg);
+	}
+      }
+
+      //
+      // .... compute prev/next regions in subdet  
+      //
+      std::vector<short int> regForPrevSubdet;
+      std::vector<IdDictRegion*> prevSubdetDicReg =  vecOfDictRegions[reg]->m_prev_subdet;
+      for(unsigned int isubdet=0;isubdet<prevSubdetDicReg.size();isubdet++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == prevSubdetDicReg[isubdet]) regForPrevSubdet.push_back(ireg);
+	}
+      }
+
+      std::vector<short int> regForNextSubdet;
+      std::vector<IdDictRegion*> nextSubdetDicReg =  vecOfDictRegions[reg]->m_next_subdet;
+      for(unsigned int isubdet=0;isubdet<nextSubdetDicReg.size();isubdet++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == nextSubdetDicReg[isubdet]) regForNextSubdet.push_back(ireg);
+	}
+      }
+
+      //
+      // ....now ready to build region object
+      //
+
+      LArEM_region * emRegion = new LArEM_region(index0,deltaEta,nPhi,eta0,deta,phi0,dphi,phiWrapAround,isBarrelMiddle,
+						 regForPrevEta,regForNextEta,
+						 regForPrevSamp,regForNextSamp, 
+						 regForPrevSubdet,regForNextSubdet);
+      // save in a vector for further use in get_neighbours method
+      // optimized nov 2005
+      //      m_vecOfRegions.push_back(emRegion);
+      m_vecOfRegions[reg]=emRegion;
+      reg++;
+  } // end of loop on regions
+
+  //
+  // ..... loop on channels 
+  //
+      // optimized nov 2005
+  m_cells.reserve(64);
+  unsigned int i=0;
+  reg=0;
+  Identifier lastRegId;
+  for (Identifier chanId : em_range()) {
+      const Identifier& regId = region_id(chanId);
+      if(regId != lastRegId) {
+	m_cells.push_back(i);
+	reg++;
+      }
+      ++i;
+
+      if(m_do_checks) {
+	// for cross check only
+	IdentifierHash hashReg = region_hash (regId) ;
+	if ((short int)hashReg != reg) {
+	  if(m_msgSvc) {
+	    log << MSG::ERROR << " init_neighbors: problem reg, hashReg = " << reg << " " << hashReg 
+		<< endreq;
+	  }
+	  else {
+	    std::cout << " init_neighbors: problem reg, hashReg = " << reg << " " << hashReg 
+		      << std::endl;
+	  }
+	}
+      }
+
+      lastRegId=regId;
+  }
+
+  return (0);
+}
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_ID.cxx b/Calorimeter/CaloIdentifier/src/LArEM_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..f10da3631f3f7e712f358abdc74b9fbd6a886c3d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArEM_ID.cxx
@@ -0,0 +1,53 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArEM_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <math.h>
+
+
+
+LArEM_ID::LArEM_ID(void) :
+  LArEM_Base_ID("LArEM_ID", 0)
+{
+}
+
+LArEM_ID::~LArEM_ID(void) 
+{
+}
+
+int  LArEM_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArEM_ID" );
+
+  log << MSG::DEBUG << "initialize_from_dictionary" << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArEM_Base_ID::initialize_base_from_dictionary(dict_mgr,
+                                                     "lar_em"))
+    return (1);
+
+
+  return 0;
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_SuperCell_ID.cxx b/Calorimeter/CaloIdentifier/src/LArEM_SuperCell_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..4e9cf0240be2a9ee62c5969fd6d7eefb25d34600
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArEM_SuperCell_ID.cxx
@@ -0,0 +1,61 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/LArEM_SuperCell_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Aug, 2012
+ * @brief Helper class for LArEM offline identifiers for supercells
+ */
+
+
+#include "CaloIdentifier/LArEM_SuperCell_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "LArEM_region.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <math.h>
+
+
+
+LArEM_SuperCell_ID::LArEM_SuperCell_ID(void) :
+  LArEM_Base_ID("LArEM_SuperCell_ID", 1)
+{
+}
+
+LArEM_SuperCell_ID::~LArEM_SuperCell_ID(void) 
+{
+}
+
+int  LArEM_SuperCell_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArEM_SuperCell_ID" );
+
+  log << MSG::DEBUG << "initialize_from_dictionary" << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArEM_Base_ID::initialize_base_from_dictionary(dict_mgr,
+                                                     "slar_em"))
+    return (1);
+
+  return 0;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_region.cxx b/Calorimeter/CaloIdentifier/src/LArEM_region.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..9effee8da571b9fd570c81a7180fe7f0424d80cf
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArEM_region.cxx
@@ -0,0 +1,54 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArEM_region.h"
+
+#include <iostream>
+#include <math.h>
+#include <vector>
+
+
+LArEM_region::LArEM_region():
+  m_hashMin(0)
+  ,m_nbEtaBins(0)
+  ,m_nPhi(0)
+  ,m_minEta(99)
+  ,m_granulEta(0)
+  ,m_minPhi(99)
+  ,m_granulPhi(0)
+  ,m_fullSym(true)
+  ,m_isFirstBarrelRegion(false)
+  ,m_prevEtaReg(63)
+  ,m_nextEtaReg(63)
+{
+}
+
+LArEM_region::LArEM_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+			   float minEta, float granulEta, float minPhi, float granulPhi, bool fullSym, bool isBarrelMiddle,
+			   short int& prevEtaReg, short int& nextEtaReg, 
+			   std::vector<short int>& prevSampReg, std::vector<short int>& nextSampReg,
+			   std::vector<short int>& prevSubdetReg, std::vector<short int>& nextSubdetReg)    
+{
+ 
+  m_hashMin             = minHash;
+  m_nbEtaBins           = nbEtaBins;
+  m_minEta              = minEta;
+  m_granulEta           = granulEta;
+  m_minPhi              = minPhi;
+  m_granulPhi           = granulPhi;
+  m_nPhi                = nPhi;
+  m_fullSym             = fullSym;
+  m_isFirstBarrelRegion = isBarrelMiddle;
+  m_prevEtaReg          = prevEtaReg;
+  m_nextEtaReg          = nextEtaReg;
+  m_prevSampReg         = prevSampReg;
+  m_nextSampReg         = nextSampReg;
+  m_prevSubdetReg       = prevSubdetReg;
+  m_nextSubdetReg       = nextSubdetReg;
+ 
+}
+
+LArEM_region::~LArEM_region()
+{
+}
diff --git a/Calorimeter/CaloIdentifier/src/LArEM_region.h b/Calorimeter/CaloIdentifier/src/LArEM_region.h
new file mode 100755
index 0000000000000000000000000000000000000000..12efda45174f981da8db96b8c86f7a35a1286cb3
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArEM_region.h
@@ -0,0 +1,128 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LAREM_REGION_H
+#define LAREM_REGION_H
+
+
+#include <vector>
+
+  enum { NOT_VALID_REGION = 63 };
+
+/**
+*  
+*  @brief This class provides an interface to deal with regions in the neighbours finding  
+* 
+*/
+
+class LArEM_region 
+{
+public:        
+
+    LArEM_region();
+
+    LArEM_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+		 float minEta, float granulEta, float minPhi, float granulPhi,  bool fullSym, bool isBarrelMiddle,
+		 short int& prevEtaReg, short int& nextEtaReg,
+		 std::vector<short int>& prevSampReg, std::vector<short int>& nextSampReg,
+		 std::vector<short int>& prevSubdetReg, std::vector<short int>& nextSubdetReg);    
+
+    ~LArEM_region();
+
+    /** number of eta bins in the whole region */
+    short int numberOfEta() const { return m_nbEtaBins ; }
+
+    /** number of phi bins */
+    short int phiN() const { return m_nPhi ; }
+
+    /** eta granularity */
+    float etaGranularity() const { return m_granulEta ; }
+
+    /** phi granularity */
+    float phiGranularity() const  { return m_granulPhi ; }
+
+    /** true if detector covers full 2pi (== wraparound option in dictionary) */
+    bool fullTwoPi() const { return m_fullSym ; }
+
+    /** true if region close to barrel middle */
+    bool isFirstBarrelRegion() const { return m_isFirstBarrelRegion ; }
+
+    /** starting eta */
+    float etaMin() const { return m_minEta ; }
+
+    /** end eta */
+    float etaMax() const { return (m_minEta + m_nbEtaBins*m_granulEta) ; }
+
+    /** starting phi */
+    float phiMin() const { return m_minPhi ; }
+
+    /** end phi */
+    float phiMax() const { return (m_minPhi + m_nPhi*m_granulPhi) ; }
+
+    /** hash Id of the first cell of the region */
+    unsigned int   hashMin() const { return m_hashMin ; }
+
+    /** hash Id of the last cell of the region +1 */
+    unsigned int   hashMax() const { return (m_hashMin + m_nbEtaBins * m_nPhi) ; }
+
+    /** region number of the previous region in eta */
+    short int prevEtaRegion() const { return m_prevEtaReg; }
+
+    /** region number of the next region in eta */
+    short int nextEtaRegion() const { return m_nextEtaReg; }
+
+    /** is the considered cell in the first eta bin of the region ? */
+    bool isEtaMin(unsigned int index) const {
+      return ((m_hashMin<=index) && (index<(m_hashMin+m_nPhi)));
+    }
+
+    /** is the considered cell in the last eta bin of the region ? */
+    bool isEtaMax(unsigned int index) const {
+      return ((hashMax()-m_nPhi)<=index) && (index<hashMax());
+    }
+
+    /** is the considered cell in the first phi bin of the region ? */
+    bool isPhiMin(unsigned int index) const {
+      return !m_fullSym && (index-m_hashMin)%m_nPhi == 0;
+    }
+
+    /** is the considered cell in the last phi bin of the region ? */
+    bool isPhiMax(unsigned int index) const {
+      return !m_fullSym && (index-m_hashMin+1)%m_nPhi == 0;
+    }
+
+    /** region number of the prev region in sampling */
+    const std::vector<short int>& prevSamplingRegion() const { return m_prevSampReg; }
+
+    /** region number of the next region in sampling */
+    const std::vector<short int>& nextSamplingRegion() const { return m_nextSampReg; }
+
+    /** region number of the prev region in subdet */
+    const std::vector<short int>& prevSubdetRegion() const { return m_prevSubdetReg; }
+
+    /** region number of the next region in subdet */
+    const std::vector<short int>& nextSubdetRegion() const { return m_nextSubdetReg; }
+
+private:    
+
+    unsigned int                  m_hashMin;
+    short int                     m_nbEtaBins;
+    short int                     m_nPhi;
+    float                         m_minEta;
+    float                         m_granulEta;
+    float                         m_minPhi;
+    float                         m_granulPhi;
+    bool                          m_fullSym;
+    bool                          m_isFirstBarrelRegion;
+
+    short int                     m_prevEtaReg;   
+    short int                     m_nextEtaReg;
+    std::vector<short int>        m_prevSampReg;
+    std::vector<short int>        m_nextSampReg;
+    std::vector<short int>        m_prevSubdetReg;
+    std::vector<short int>        m_nextSubdetReg;
+
+};
+
+#endif // LAREM_REGION_H
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..b62419936bf7d84fd66ac5b7c69128b3d557f1f5
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_Base_ID.cxx
@@ -0,0 +1,942 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArFCAL_Base_ID.h"
+#include "IdDict/IdDictDefs.h"
+#include "PathResolver/PathResolver.h"
+
+#include "CxxUtils/StrFormat.h"
+#include <iostream>
+#include <fstream>
+
+using CxxUtils::strformat;
+
+#define MAX_BUFFER_LEN 1024
+
+
+LArFCAL_Base_ID::LArFCAL_Base_ID(const std::string& name, bool supercell) 
+  : CaloIDHelper (name),
+    m_slar (supercell ? 1 : 0)
+{
+  m_fcal_region_index = 0;
+  m_LAR_INDEX = 999;
+  m_SLAR_INDEX = 999;
+  m_FCAL_INDEX = 999;
+  m_POSNEG_INDEX = 999;
+  m_MODULE_INDEX = 999; 
+  m_ETA_INDEX = 999;
+  m_PHI_INDEX = 999;
+  m_two_sym_sides = 1;
+}
+
+bool LArFCAL_Base_ID::is_connected ( int pos_neg, int module, int eta, int phi) const throw(LArID_Exception)
+{
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  expId << pos_neg << module << eta << phi << m_slar ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArFCAL_Base_ID::is_connected, " +
+      strformat ("pos_neg: %d , module: %d, eta: %d, phi: %d ",
+                 pos_neg , module , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (m_full_channel_range.match(expId)) { 
+    result = true;
+  }
+  return(result);
+}
+
+bool LArFCAL_Base_ID::is_disconnected ( int pos_neg, int module, int eta, int phi) const throw(LArID_Exception)
+{
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module << eta << phi << m_slar ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArFCAL_Base_ID::is_disconnected, " + 
+      strformat ("pos_neg: %d , module: %d, eta: %d, phi: %d ",
+                 pos_neg , module , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (m_full_disc_channel_range.match(expId)) { 
+    result = true;
+  }
+  return(result);
+}
+
+bool LArFCAL_Base_ID::is_supercell (const Identifier id)const
+{
+  return(m_slar_impl.unpack(id)) != 0;
+}
+
+int LArFCAL_Base_ID::eta_min(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int LArFCAL_Base_ID::eta_max(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArFCAL_Base_ID::phi_min_init(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_minimum()) {
+	  int phimin = phi_field.get_minimum();
+	  if (-999 == result) {
+	    result = phimin;
+	  }
+	  else {
+	    if (phimin < result) result = phimin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArFCAL_Base_ID::phi_max(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int         LArFCAL_Base_ID::disc_eta             (const Identifier id)const
+{
+  return(m_eta_impl.unpack(id));
+}
+
+int         LArFCAL_Base_ID::disc_phi             (const Identifier id)const
+{
+  return(m_phi_impl.unpack(id));
+}
+
+IdContext	
+LArFCAL_Base_ID::module_context 		(void) const
+{
+  return region_context();
+}
+
+int  LArFCAL_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+						       const std::string& group_name)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+
+  std::string strg =  "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if(CaloIDHelper::initialize_base_from_dictionary(dict_mgr,
+                                                   "LArCalorimeter"))
+    return (1);
+
+  // initialize dictionary version
+  AtlasDetectorID::setDictVersion(dict_mgr, "LArCalorimeter");
+
+  // Initialize the field indices
+  if (initLevelsFromDict(group_name)) return (1);
+
+  // Find value for the field LAr Calorimeter   
+    const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+    int larField   = -1;
+    if (atlasDict->get_label_value("subdet", "LArCalorimeter", larField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+
+
+  // Find value for the field LArFCAL
+    int larFcalField   = -1;
+    if (dict()->get_label_value("part", "LArFCAL", larFcalField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArFCAL' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+
+  // Find value for the field LArFCALdisc
+    int larFcalDiscField   = -1;
+    if (dict()->get_label_value("part", "LArFCALdisc", larFcalDiscField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArFCALdisc' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+        return (1);
+    }
+
+    // Set up id for region and range prefix
+
+    // (1) Connected channels
+    ExpandedIdentifier region_id;
+    region_id.add(larField);
+    region_id.add(larFcalField);
+    Range prefix;
+    m_full_channel_range = dict()->build_multirange(region_id, group_name, prefix);
+    m_full_module_range = dict()->build_multirange(region_id, group_name, prefix, "module");
+
+    // (2) disconnected channels
+    ExpandedIdentifier region_id2;
+    region_id2.add(larField);
+    region_id2.add(larFcalDiscField);
+    Range prefix2;
+
+    m_full_disc_channel_range = dict()->build_multirange(region_id2, group_name, prefix2);
+    m_full_disc_module_range = dict()->build_multirange(region_id2, group_name, prefix2, "module");
+
+    std::string strg0 = " initialize_from_dict : " ;
+    std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+    std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
+    std::string strg3 = " disconnected channel range -> "  + (std::string)m_full_disc_channel_range;
+    std::string strg4 = " disconnected module range -> "  + (std::string)m_full_disc_module_range;
+    if(m_msgSvc) {
+      log << MSG::DEBUG << strg0 << endreq;
+      log << MSG::DEBUG << strg1 << endreq;
+      log << MSG::DEBUG << strg2 << endreq;
+      log << MSG::DEBUG << strg3 << endreq;
+      log << MSG::DEBUG << strg4 << endreq;
+    }
+    else {
+      std::cout << strg0 << std::endl;
+      std::cout << strg1 << std::endl;
+      std::cout << strg2 << std::endl;
+      std::cout << strg3 << std::endl;
+      std::cout << strg4 << std::endl;
+    }
+
+    // Setup the hash tables
+    if(init_hashes()) return (1);
+
+    // Setup the disc hash tables
+    if(init_disc_hashes()) return (1);
+
+    // initilize m_two_sym_sides
+    m_two_sym_sides = ( dictionaryVersion() == "fullAtlas" );
+
+    if (fill_vec_of_dict_regions (group_name)) return 1;
+
+    // added nov 2005 to speed up CaloNoiseTool initialisation
+    m_vecOfPhiMin.resize(regions().hash_max());
+    for (unsigned int i = 1; i < regions().hash_max(); ++i) {
+      Identifier modId = module_id(i); 
+      m_vecOfPhiMin[i] = phi_min_init(modId);
+    }
+        
+  // Setup hash tables for finding neighbours
+  if(m_do_neighbours) {
+    if(init_neighbours(dict_mgr)) return (1);     
+  }
+  
+  return 0;
+    
+}
+
+void LArFCAL_Base_ID::module_id_checks ( int pos_neg, int module ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  expId << pos_neg << module;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in LArFCAL_Base_ID::module_id, " + 
+      strformat ("pos_neg: %d , module: %d", pos_neg , module);
+    throw LArID_Exception(errorMessage , 9);
+  }
+
+  if (!m_full_module_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::module_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_module_range;
+    throw LArID_Exception(errorMessage , 6);
+  }
+}
+
+void LArFCAL_Base_ID::channel_id_checks ( int pos_neg, int module, int eta, int phi) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  expId << pos_neg << module << eta << phi << m_slar ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArFCAL_Base_ID::channel_id, " +
+      strformat ("pos_neg: %d , module: %d, eta: %d, phi: %d ",
+                 pos_neg , module , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void   LArFCAL_Base_ID::channel_id_checks   (const Identifier moduleId,
+				        int eta, int phi) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = module_context();
+  if (get_expanded_id(moduleId, expId, &context)) {
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id(modId) result is not OK: ID = "
+      + show_to_string(moduleId) ;
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  expId << eta << phi << m_slar ;
+
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id(modId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void LArFCAL_Base_ID::disc_module_id_checks ( int pos_neg, int module ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage  =
+      "Error in LArFCAL_Base_ID::module_id, " +
+      strformat ("pos_neg: %d , module: %d", pos_neg , module);
+    throw LArID_Exception(errorMessage , 9);
+  }
+
+  if (!m_full_disc_module_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::module_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_module_range;
+    throw LArID_Exception(errorMessage , 6);
+  }
+}
+
+void LArFCAL_Base_ID::disc_channel_id_checks ( int pos_neg, int module, int eta, int phi) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module << eta << phi << m_slar ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArFCAL_Base_ID::channel_id, " + 
+      strformat ("pos_neg: %d , module: %d, eta: %d, phi: %d ",
+                 pos_neg , module , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void   LArFCAL_Base_ID::disc_channel_id_checks   (const Identifier moduleId,
+					     int eta, int phi) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = module_context();
+  if (get_disc_expanded_id(moduleId, expId, &context)) {
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id(modId) result is not OK: ID = "
+      + show_to_string(moduleId) ;
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  expId << eta << phi << m_slar ;
+
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArFCAL_Base_ID::channel_id(modId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+int  LArFCAL_Base_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << lar_fcal_field_value()
+	   << pos_neg(id)
+	   << module(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	    if ( context->end_index() >= m_SLAR_INDEX) {
+              exp_id << (unsigned)is_supercell(id);
+            }
+	}
+    }
+    return (0);
+}
+
+int  LArFCAL_Base_ID::get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << -3
+	   << pos_neg(id)
+	   << module(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	    if (context->end_index() >= m_SLAR_INDEX) {
+	      exp_id << (unsigned)is_supercell(id);
+	    }
+	}
+    }
+    return (0);
+}
+
+int         LArFCAL_Base_ID::initLevelsFromDict(const std::string& /*group_name*/)
+{
+  MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+
+  if(!dict()) {
+    std::string strg = "initLevelsFromDict - dictionary NOT initialized ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_fcal_region_index = 999 ;
+  m_LAR_INDEX        = 999 ;
+  m_FCAL_INDEX       = 999 ;
+  m_POSNEG_INDEX     = 999 ;
+  m_MODULE_INDEX     = 999 ;
+  m_ETA_INDEX        = 999 ;
+  m_PHI_INDEX        = 999 ;
+  m_SLAR_INDEX       = 999 ;
+
+  // Save index to a FCAL region for unpacking
+  ExpandedIdentifier id(lar_fcal_exp());
+  if (dict()->find_region(id,m_fcal_region_index)){
+    std::stringstream strm ;
+    strm <<  m_fcal_region_index ;
+    std::string strg = "initLevelsFromDict - unable to find fcal region index: id, reg "  
+      +  (std::string)id + strm.str();
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  IdDictField* field = dict()->find_field("subdet") ;
+  if (field) {
+    m_LAR_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'subdet' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("part") ;
+  if (field) {
+    m_FCAL_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'part' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("barrel-endcap") ;
+  if (field) {
+    m_POSNEG_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'barrel-endcap' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  field = dict()->find_field("module") ;
+  if (field) {
+    m_MODULE_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'module' field ";
+    if(dictionaryVersion() != "H8TestBeam" ) {
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("eta-fcal") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'eta' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  field = dict()->find_field("phi-fcal") ;
+  if (field) {
+    m_PHI_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'phi' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  field = dict()->find_field("is-slar-fcal") ;
+  if (field) {
+    m_SLAR_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'is-slar-fcal' field "
+          << endreq;
+    }
+    else {
+      std::cout << "LArFCAL_Base_ID::initLevelsFromDict - unable to find 'is-slar-fcal' field "
+                << std::endl ;
+    }
+    return (1);
+  }
+
+  // Set the field implementations
+
+  const IdDictRegion& region = *dict()->m_regions[m_fcal_region_index];
+
+  /*
+  std::cout << "LArFCAL_Base_ID::initLevelsFromDict - found levels " << std::endl ;
+  std::cout << "part           " << m_FCAL_INDEX     << std::endl ;
+  std::cout << "pos-neg        " << m_POSNEG_INDEX   << std::endl ;
+  std::cout << "module         " << m_MODULE_INDEX   << std::endl ;
+  std::cout << "eta            " << m_ETA_INDEX      << std::endl ;
+  std::cout << "phi            " << m_PHI_INDEX      << std::endl ;
+  */
+
+  m_lar_impl      = region.m_implementation[m_LAR_INDEX]; 
+  m_fcal_impl      = region.m_implementation[m_FCAL_INDEX]; 
+  m_pn_impl       = region.m_implementation[m_POSNEG_INDEX]; 
+  m_module_impl   = region.m_implementation[m_MODULE_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
+  m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
+
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "decode index and bit fields for each level: " << endreq;
+    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "fcal "  << m_fcal_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "mod  "  << m_module_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "is-slar  "  << m_slar_impl.show_to_string() << endreq;
+  }
+  else {
+    std::cout << "decode index and bit fields for each level: " << std::endl;
+    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+    std::cout << "fcal "  << m_fcal_impl.show_to_string() << std::endl;
+    std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
+    std::cout << "mod  "  << m_module_impl.show_to_string() << std::endl;
+    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+    std::cout << "is-slar  "  << m_slar_impl.show_to_string() << std::endl;
+  }
+
+
+  return(0) ;
+}
+
+int         LArFCAL_Base_ID::init_hashes(void) 
+{
+  if (channels().init (*this, "channels",
+                       m_full_channel_range,
+                       &LArFCAL_Base_ID::channel_id,
+                       m_SLAR_INDEX))
+    return 1;
+  if (regions().init (*this, "regions",
+                      m_full_module_range,
+                      &LArFCAL_Base_ID::module_id,
+                      m_MODULE_INDEX))
+    return 1;
+
+  return (0);
+}
+
+int         LArFCAL_Base_ID::init_disc_hashes(void) 
+{
+  if (m_disc_channels.init (*this, "channels",
+                            m_full_disc_channel_range,
+                            &LArFCAL_Base_ID::disc_channel_id,
+                            m_SLAR_INDEX))
+    return 1;
+  if (m_disc_modules.init (*this, "regions",
+                           m_full_disc_module_range,
+                           &LArFCAL_Base_ID::disc_module_id,
+                           m_MODULE_INDEX))
+    return 1;
+
+  return (0);
+}
+
+
+int   LArFCAL_Base_ID::get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption& option, 
+				 std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  neighbourList.clear();
+
+  if(!m_do_neighbours) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+      log << MSG::WARNING << "neighbours not initialized !!! returning empty list" << endreq;
+    }
+    else {
+      std::cout << " neighbours not initialized !!! returning empty list " << std::endl;
+    }
+    return result;
+  }
+
+  if(id>=channel_hash_max()) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+      log << MSG::WARNING << "neighbours requested for unconnected channel -- this is not implemented" << endreq;
+    }
+    else {
+      std::cout << " neighbours requested for unconnected channel -- this is not implemente" << std::endl;
+    }
+    return result;
+  }
+
+  if( dictionaryVersion() == "fullAtlas" || dictionaryVersion() == "H6TestBeam" ) {
+
+    if ( (option & LArNeighbours::all2D) == LArNeighbours::all2D ){
+      if ( m_neighbours_2d_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbours_2d_vec[(unsigned int)id].begin(),
+			     m_neighbours_2d_vec[(unsigned int)id].end());
+      }
+    }
+    
+    if ( (option & LArNeighbours::prevInSamp) ){
+      if ( m_neighbours_3d_prev_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbours_3d_prev_vec[(unsigned int)id].begin(),
+			     m_neighbours_3d_prev_vec[(unsigned int)id].end());
+      }
+    }
+    
+    if ( (option & LArNeighbours::nextInSamp) ){
+      if ( m_neighbours_3d_next_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbours_3d_next_vec[(unsigned int)id].begin(),
+			     m_neighbours_3d_next_vec[(unsigned int)id].end());
+      }
+    }
+    
+  } else {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+      log << MSG::WARNING << " NO FCAL neighbours (yet) in the context of " << dictionaryVersion() << endreq;
+    }
+    else {
+      std::cout << " NO FCAL neighbours (yet) in the context of " << dictionaryVersion() << std::endl;
+    }
+  }
+  return result;
+}
+
+int         LArFCAL_Base_ID::init_neighbours_from_file(std::string filename, std::vector<std::set<IdentifierHash> > & vec)
+{
+  MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+
+  log << MSG::DEBUG << "init_neighbours_from_file" << endreq;
+  // Find the full path to filename:
+  std::string file = PathResolver::find_file (filename, "DATAPATH");
+  log << MSG::INFO << "Reading file " << file << endreq;
+  std::ifstream fin;
+  if (file != "") {
+    fin.open(file.c_str());
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "Could not find input file " << filename << endreq;
+    }
+    else {
+      std::cout << "LarFCal_Base_ID::Could not find input file " << filename <<  std::endl;
+    }
+    return 1;
+  }
+  if (fin.bad()) {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "Could not open file " << file << endreq;
+    }
+    else {
+      std::cout << "LarFCal_Base_ID::Could not open file " << file << std::endl;
+    }
+    return 1;
+  }
+
+  //
+  // Parse the input file
+  //
+
+  vec.resize(channel_hash_max());
+  
+  char aLine[MAX_BUFFER_LEN];
+  std::string sLine;
+  bool isComment = true;
+  char AorC,dot;
+  int isamp,iphi,ieta;
+
+  while( isComment ) {
+    sLine.resize( 0 );
+    do {  
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    } while (sLine == "" && !fin.eof());
+    isComment = ( sLine.find("#") != std::string::npos );
+  }
+  do {
+    unsigned int ic, inext;
+    Identifier thisCell,nextCell;
+    while ( sLine == "" && !fin.eof()) {
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    }
+    std::istringstream es( sLine.c_str() );
+
+    if ( es >> AorC >> isamp >> dot >> iphi >> dot >> ieta ) {
+      thisCell = channel_id((AorC=='A'||AorC=='S'?2:-2),isamp,ieta,iphi);
+      ic = channel_hash(thisCell);
+      while ( es >> AorC >> isamp >> dot >> iphi >> dot >> ieta ) {
+	nextCell = channel_id((AorC=='A'||AorC=='S'?2:-2),isamp,ieta,iphi);
+	inext = channel_hash(nextCell);
+	vec[ic].insert(vec[ic].end(),inext);
+      }
+      sLine.resize(0);
+    } 
+  }while (!fin.eof()) ;
+  fin.close();
+
+  return 0;
+}
+
+int
+LArFCAL_Base_ID::init_neighbours(const IdDictMgr& dict_mgr) 
+{
+    
+    MsgStream log(m_msgSvc, "LArFCAL_Base_ID" );
+    if(m_msgSvc) {
+        log << MSG::DEBUG << "init_neighbours" << endreq;
+    }
+    else {
+        std::cout << "LarFCal_Base_ID::init_neighbours " << std::endl;
+    }
+
+    int status;
+    std::string f2d,f3dnext,f3dprev;
+
+    if ( m_slar ) {
+      f2d     = "FCalSuperCells2DNeighborsNew-April2014.txt";
+      f3dnext = "FCalSuperCells3DNeighborsNextNew-April2014.txt"; 
+      f3dprev = "FCalSuperCells3DNeighborsPrevNew-April2014.txt"; 
+    }
+    else {
+      f2d     = dict_mgr.find_metadata("FCAL2DNEIGHBORS");
+      f3dnext = dict_mgr.find_metadata("FCAL3DNEIGHBORSNEXT");
+      f3dprev = dict_mgr.find_metadata("FCAL3DNEIGHBORSPREV");
+    }
+    if (!f2d.size() || !f3dnext.size() || !f3dprev.size()) {
+        if(m_msgSvc) {
+            log << MSG::ERROR << "init_neighbours: cannot find neighbours files: " 
+                << " f2d: " << f2d << " f3dnext: " << f3dnext << " f3dprev: " << f3dprev
+                << endreq;
+        }
+        else {
+            std::cout << "LarFCal_Base_ID::init_neighbours cannot find neighbours files: " 
+                      << " f2d: " << f2d << " f3dnext: " << f3dnext << " f3dprev: " << f3dprev
+                      << std::endl;
+        }
+        throw std::runtime_error("LArFCAL_Base_ID::init_neighbours: Cannot find the FCAL Neighbour file names");
+    }
+    
+    status = init_neighbours_2d(f2d);
+    if ( status == 0 ) 
+        status = init_neighbours_3d_next(f3dnext);
+    if ( status == 0 ) 
+        status = init_neighbours_3d_prev(f3dprev);
+
+    if(m_msgSvc) {
+        log << MSG::DEBUG << "init_neighbours status: " << status << endreq;
+    }
+    else {
+        std::cout << "LarFCal_Base_ID::init_neighbours status: " << status << std::endl;
+    }
+    
+    if ( status == 0 ) 
+        return (0);
+    else 
+        return (1);
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_ID.cxx b/Calorimeter/CaloIdentifier/src/LArFCAL_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..4002a4bf13fa4aec27cbcb532563c120c006feea
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_ID.cxx
@@ -0,0 +1,62 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "LArFCAL_region.h"
+#include "PathResolver/PathResolver.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <math.h>
+#include <stdexcept>
+
+#define MAX_BUFFER_LEN 1024
+
+LArFCAL_ID::LArFCAL_ID(void) : 
+  LArFCAL_Base_ID("LArFCAL_ID", 0)
+{
+}
+
+LArFCAL_ID::~LArFCAL_ID(void) 
+{
+}
+
+int  LArFCAL_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArFCAL_ID" );
+
+  std::string strg =  "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArFCAL_Base_ID::initialize_base_from_dictionary(dict_mgr,
+						       "lar_fcal"))
+  {
+    if(dictionaryVersion() == "H8TestBeam" )
+      return 0;
+    return (1);
+  }
+
+  return 0;
+
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_SuperCell_ID.cxx b/Calorimeter/CaloIdentifier/src/LArFCAL_SuperCell_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..76c0f0cf199819ab5aa05207ab56892e09ea3f65
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_SuperCell_ID.cxx
@@ -0,0 +1,49 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArFCAL_SuperCell_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <math.h>
+
+LArFCAL_SuperCell_ID::LArFCAL_SuperCell_ID(void) :
+  LArFCAL_Base_ID("LArFCAL_SuperCell_ID", 1)
+{
+}
+
+LArFCAL_SuperCell_ID::~LArFCAL_SuperCell_ID(void) 
+{
+}
+
+int  LArFCAL_SuperCell_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArFCAL_SuperCell_ID" );
+
+  log << MSG::DEBUG << "initialize_from_dictionary" << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArFCAL_Base_ID::initialize_base_from_dictionary(dict_mgr,
+						       "slar_fcal"))
+    return (1);
+  
+  return 0;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_region.cxx b/Calorimeter/CaloIdentifier/src/LArFCAL_region.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..7e8bea0c8dee7db5f7a93b73b56056fd389bb8ed
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_region.cxx
@@ -0,0 +1,144 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArFCAL_region.h"
+
+#include <iostream>
+#include <math.h>
+#include <vector>
+
+
+LArFCAL_region::LArFCAL_region():
+  m_hashMin(0)
+  ,m_nbEtaBins(0)
+  ,m_nPhi(0)
+  ,m_minEta(99)
+  ,m_granulEta(0)
+  ,m_minPhi(99)
+  ,m_granulPhi(0)
+  ,m_fullSym(true)
+  ,m_prevSampReg(63)
+  ,m_nextSampReg(63)
+{
+}
+
+LArFCAL_region::LArFCAL_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+			       float minEta, float granulEta, float minPhi, float granulPhi, bool fullSym,
+			       short int& prevSampReg, short int& nextSampReg)
+{
+ 
+  m_hashMin     = minHash;
+  m_nbEtaBins   = nbEtaBins;
+  m_nPhi        = nPhi;
+  m_minEta      = minEta;
+  m_granulEta   = granulEta;
+  m_minPhi      = minPhi;
+  m_granulPhi   = granulPhi;
+  m_fullSym     = fullSym;
+  m_prevSampReg = prevSampReg;
+  m_nextSampReg = nextSampReg;
+ 
+}
+
+LArFCAL_region::~LArFCAL_region()
+{
+}
+
+short int LArFCAL_region::numberOfEta() const
+{
+  return m_nbEtaBins ;
+}
+
+short int LArFCAL_region::phiN() const
+{
+  return m_nPhi ;
+}
+
+float LArFCAL_region::etaGranularity() const
+{
+  return m_granulEta ;
+}
+
+float LArFCAL_region::phiGranularity() const
+{
+  return m_granulPhi ;
+}
+
+bool LArFCAL_region::fullTwoPi() const
+{
+  return m_fullSym ;
+}
+
+float LArFCAL_region::etaMin() const
+{
+  return m_minEta ;
+}
+
+float LArFCAL_region::etaMax() const
+{
+  return (m_minEta + m_nbEtaBins*m_granulEta) ;
+}
+
+float LArFCAL_region::phiMin() const
+{
+  return m_minPhi ;
+}
+
+float LArFCAL_region::phiMax() const
+{
+  return (m_minPhi + m_nPhi*m_granulPhi) ;
+}
+
+unsigned int   LArFCAL_region::hashMin() const
+{
+  return m_hashMin ;
+}
+
+unsigned int   LArFCAL_region::hashMax() const
+{
+  return (m_hashMin + m_nbEtaBins * m_nPhi) ;
+}
+
+bool LArFCAL_region::isEtaMin(const unsigned int& index) const
+{
+  bool result=false;
+  if( ((m_hashMin<=index) && (index<(m_hashMin+m_nPhi))))result=true;
+  return result;
+}
+
+bool LArFCAL_region::isEtaMax(const unsigned int& index) const
+{
+  bool result=false;
+  if( ((hashMax()-m_nPhi)<=index) && (index<hashMax()))result=true;
+  return result;
+}
+
+bool LArFCAL_region::isPhiMin(const unsigned int& index) const
+{
+  bool result=false;
+  if( !m_fullSym && (index-m_hashMin)%m_nPhi == 0 )result=true; 
+  return result;
+}
+
+bool LArFCAL_region::isPhiMax(const unsigned int& index) const
+{
+  bool result=false;
+  if( !m_fullSym && (index-m_hashMin+1)%m_nPhi == 0 )result=true;  
+  return result;
+}
+
+short int LArFCAL_region::nextSamplingRegion() const
+{
+  return  m_nextSampReg;
+}
+
+short int LArFCAL_region::prevSamplingRegion() const
+{
+  return  m_prevSampReg;
+}
+
+
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArFCAL_region.h b/Calorimeter/CaloIdentifier/src/LArFCAL_region.h
new file mode 100755
index 0000000000000000000000000000000000000000..af68d043055b91037eeb0bfe80713e534433fac1
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArFCAL_region.h
@@ -0,0 +1,99 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARFCAL_REGION_H
+#define LARFCAL_REGION_H
+
+#include <vector>
+
+  enum { NOT_VALID_FCAL_REGION = 63 };
+
+/**
+*  
+*  @brief This class provides an interface to deal with regions
+*  in the neighbours finding 
+* 
+*/
+
+class LArFCAL_region 
+{
+public:        
+
+    LArFCAL_region(void);    
+
+    LArFCAL_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+		   float minEta, float granulEta, float minPhi, float granulPhi,  bool fullSym, 
+		   short int& prevEtaSamp, short int& nextEtaSamp);    
+
+    ~LArFCAL_region(void);
+
+    /** number of eta bins in the whole region */
+    short int numberOfEta() const;
+
+    /** number of phi bins */
+    short int phiN() const;
+
+    /** eta granularity */
+    float etaGranularity() const;
+
+    /** phi granularity */
+    float phiGranularity() const;
+
+    /** true if detector covers full 2pi (== wraparound option in dictionary) */
+    bool fullTwoPi() const;
+
+    /** starting eta */
+    float etaMin() const;
+
+    /** end eta */
+    float etaMax() const;
+
+    /** starting phi */
+    float phiMin() const;
+
+    /** end phi */
+    float phiMax() const;
+
+    /** hash Id of the first cell of the region */
+    unsigned int   hashMin() const;
+
+    /** hash Id of the last cell of the region +1 */
+    unsigned int   hashMax() const;
+
+    /** is the considered cell in the first eta bin of the region ? */
+    bool isEtaMin(const unsigned int& index) const;
+
+    /** is the considered cell in the last eta bin of the region ? */
+    bool isEtaMax(const unsigned int& index) const;
+
+    /** is the considered cell in the first phi bin of the region ? */
+    bool isPhiMin(const unsigned int& index) const;
+
+    /** is the considered cell in the last phi bin of the region ? */
+    bool isPhiMax(const unsigned int& index) const;
+
+    /** region number of the prev region in sampling */
+    short int prevSamplingRegion() const;
+
+    /** region number of the next region in sampling */
+    short int nextSamplingRegion() const;
+
+
+private:    
+
+    unsigned int                  m_hashMin;
+    short int                     m_nbEtaBins;
+    short int                     m_nPhi;
+    float                         m_minEta;
+    float                         m_granulEta;
+    float                         m_minPhi;
+    float                         m_granulPhi;
+    bool                          m_fullSym;
+
+    short int                     m_prevSampReg;
+    short int                     m_nextSampReg;
+
+};
+
+#endif // LARFCAL_REGION_H
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..ac770fcc511e40f3eea951ceca5c971318dce1d8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_Base_ID.cxx
@@ -0,0 +1,1527 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/LArHEC_Base_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Factor out code common between LArHEC_ID and LArHEC_SuperCell_ID.
+ */
+
+
+#include "CaloIdentifier/LArHEC_Base_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "LArHEC_region.h"
+#include "CxxUtils/StrFormat.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <math.h>
+
+using CxxUtils::strformat;
+
+
+LArHEC_Base_ID::LArHEC_Base_ID (const std::string& name, bool supercell) :
+    CaloIDHelper (name)
+  , m_slar (supercell ? 1 : 0)
+  , m_hec_region_index(0) 
+  , m_LAR_INDEX(999) 
+  , m_HEC_INDEX(999) 
+  , m_POSNEG_INDEX(999) 
+  , m_SAMPLING_INDEX(999) 
+  , m_REGION_INDEX(999) 
+  , m_ETA_INDEX(999)
+  , m_PHI_INDEX(999)
+  , m_SLAR_INDEX(999)
+  , m_two_sym_sides(1)
+{
+}
+
+LArHEC_Base_ID::~LArHEC_Base_ID(void) 
+{
+  std::vector<LArHEC_region*>::iterator first = m_vecOfRegions.begin();
+  std::vector<LArHEC_region*>::iterator last  = m_vecOfRegions.end();
+  for (; first != last; ++first) delete (*first);
+}
+
+Identifier LArHEC_Base_ID::channel_id  ( int pos_neg, int sampling, 
+                                         int eta,     int phi ) const throw(LArID_Exception)
+{
+    // must calculate region number and shift eta 
+    int region=999;
+    if ( 0 <= eta && eta < 10 ) { region  = 0;}
+    else if ( 10 <= eta && eta < 14 ) { region  = 1; eta -= 10;}
+
+    return (channel_id (pos_neg, sampling, region, eta, phi));
+}
+
+
+Identifier LArHEC_Base_ID::channel_id  ( int pos_neg, int sampling, int sector, int region, 
+				    int eta,     int phi_sector ) const throw(LArID_Exception)
+{
+    int phi = ( region == 0 ? sector*2 + phi_sector : sector ); 
+    return (channel_id (pos_neg, sampling, region, eta, phi ));
+}
+
+
+bool LArHEC_Base_ID::is_connected   ( int pos_neg, int sampling, int region,
+                                      int eta,     int phi ) const throw(LArID_Exception)
+{  
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_hec_exp());
+  expId << pos_neg << sampling << region << eta << phi << m_slar;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::is_connected(field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 pos_neg , sampling , region, eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  if (m_full_channel_range.match(expId)) { 
+    result=true;
+  }
+  return (result);
+}
+
+bool LArHEC_Base_ID::is_disconnected   ( int pos_neg, int sampling, int region,
+                                         int eta,     int phi ) const throw(LArID_Exception)
+{  
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -2 << pos_neg << sampling << region << eta << phi << m_slar;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::is_disconnected(field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 pos_neg , sampling , region, eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  if (m_full_disc_channel_range.match(expId)) { 
+    result=true;
+  }
+  return (result);
+}
+
+
+int LArHEC_Base_ID::eta_min(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int LArHEC_Base_ID::eta_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArHEC_Base_ID::phi_min_init(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_minimum()) {
+	  int phimin = phi_field.get_minimum();
+	  if (-999 == result) {
+	    result = phimin;
+	  }
+	  else {
+	    if (phimin < result) result = phimin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArHEC_Base_ID::phi_max(const Identifier regId) const
+{
+  ExpandedIdentifier expId;
+  IdContext region_cntxt = region_context();
+  if(!get_expanded_id(regId, expId, &region_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArHEC_Base_ID::disc_eta             (const Identifier id)const
+{
+  return(m_eta_impl.unpack(id));
+}
+
+int LArHEC_Base_ID::disc_phi             (const Identifier id)const
+{
+  return(m_phi_impl.unpack(id));
+}
+
+int  LArHEC_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                                       const std::string& group_name)
+/*===================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+  
+  std::string strg = "initialize_base_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if(CaloIDHelper::initialize_base_from_dictionary(dict_mgr,
+                                                   "LArCalorimeter"))
+    return (1);
+  
+  // initialize dictionary version
+  AtlasDetectorID::setDictVersion(dict_mgr, "LArCalorimeter");
+
+  // Initialize the field indices
+  if(initLevelsFromDict(group_name)) {
+    strg =  " initialize_base_from_dict - cannot initialize HEC part of LArCalorimeter dictionary ";
+    if(m_msgSvc) {
+      log << MSG::WARNING << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    //    return (1);   // to allow TB dictionary (no HEC in H8)
+  }
+  else  {
+    // Find value for the field LAr Calorimeter   
+    const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+    int larField   = -1;
+    if (atlasDict->get_label_value("subdet", "LArCalorimeter", larField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+
+    // Find value for the field LArHEC
+    int larHecField   = -1;
+    if (dict()->get_label_value("part", "LArHEC", larHecField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArHEC' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+    
+    // Find value for the field LArHECdisc
+    int larHecDiscField   = -1;
+    if (dict()->get_label_value("part", "LArHECdisc", larHecDiscField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArHECdisc' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+    
+
+    // Set up id for region and range prefix
+      ExpandedIdentifier exp_region_id;
+      exp_region_id.add(larField);
+      exp_region_id.add(larHecField);
+      Range prefix;
+      ExpandedIdentifier exp_region_id2;
+      exp_region_id2.add(larField);
+      exp_region_id2.add(larHecDiscField);
+      Range prefix2;
+
+      // (1) Connected channels
+      m_full_channel_range = dict()->build_multirange(exp_region_id, group_name, prefix);
+      m_full_region_range = dict()->build_multirange(exp_region_id, group_name, prefix, "region");  
+
+      // (2) Disconnected channels
+      m_full_disc_channel_range = dict()->build_multirange(exp_region_id2, group_name, prefix2);
+      m_full_disc_region_range = dict()->build_multirange(exp_region_id2, group_name, prefix2, "region");
+
+      std::string strg0 = "initialize_from_dict : " ;
+      std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+      std::string strg2 = " region range -> "  + (std::string)m_full_region_range;
+      std::string strg3 = " disconnected channel range -> "  + (std::string)m_full_disc_channel_range;
+      std::string strg4 = " disconnected region range -> "  + (std::string)m_full_disc_region_range;
+      if(m_msgSvc) {
+	log << MSG::DEBUG << strg0 << endreq;
+	log << MSG::DEBUG << strg1 << endreq;
+	log << MSG::DEBUG << strg2 << endreq;
+	log << MSG::DEBUG << strg3 << endreq;
+	log << MSG::DEBUG << strg4 << endreq;
+      }
+      else {
+	std::cout << strg0 << std::endl;
+	std::cout << strg1 << std::endl;
+	std::cout << strg2 << std::endl;
+	std::cout << strg3 << std::endl;
+	std::cout << strg4 << std::endl;
+      }
+
+
+    // initilize m_two_sym_sides
+    m_two_sym_sides = ( dictionaryVersion() == "fullAtlas" );
+
+    // Setup the hash tables
+    if(init_hashes()) return (1);
+    if(init_disc_hashes()) return (1);
+
+    // initialize dictionary regions
+    if (fill_vec_of_dict_regions (group_name)) return 1;
+    
+    // added nov 2005 to speed up CaloNoiseTool initialisation
+    m_vecOfPhiMin.resize(region_hash_max());
+    for (unsigned int i = 0; i < region_hash_max(); ++i) {
+      Identifier regId = region_id(i); 
+      m_vecOfPhiMin[i] = phi_min_init(regId);
+    }
+
+    // Setup for hash calculation
+    // The regions have uniform eta/phi granularity.
+    // The lookup table only needs to contain the
+    // hash offset for each region, the first eta index
+    // and the number of phi cells.
+
+    // The implementation requires:
+
+    //   1) a lookup table for each region containing hash offset,
+    //      etamin and nphi
+    //   2) a decoder to access the "index" corresponding to the
+    //      pn/samp/reg fields. These fields use 4 bits, so the
+    //      vector has a length of 16 for 16 regions.
+
+    // Create decoder for fields pn to region
+    IdDictFieldImplementation::size_type bits = 
+	m_pn_impl.bits() +
+	m_sampling_impl.bits() +
+	m_region_impl.bits();
+    IdDictFieldImplementation::size_type bits_offset = m_pn_impl.bits_offset();
+    m_pn_reg_impl.set_bits(bits, bits_offset);
+      
+    //        std::cout << "pn_reg "  << m_pn_reg_impl.decode_index()  << " " 
+    //    << (std::string)m_pn_reg_impl.ored_field()  << " " 
+    //    << std::hex << m_pn_reg_impl.mask() << " " 
+    //    << m_pn_reg_impl.zeroing_mask() << " " 
+    //    << std::dec << m_pn_reg_impl.shift()
+    //    << " " << m_pn_reg_impl.bits() << " " <<m_pn_reg_impl.bits_offset()
+    //    << std::endl;
+    
+    
+    // Set up vector as lookup table for hash calculation. 
+    m_hash_calcs.resize(16);
+      
+    for (unsigned int i = 0; i < region_hash_max(); ++i) {
+	
+      Identifier regId = region_id(i) ;
+      HashCalc hc;
+	
+      int etamin = eta_min(regId);
+      if(etamin < 0) {
+	etamin = 0;
+	std::string strg = "setting etamin to 0 because actual value not found for regId " 
+	  + show_to_string(regId);
+	if(m_msgSvc) {
+	  log << MSG::WARNING << strg << endreq;
+	}
+	else {
+	  std::cout << strg << std::endl;
+	}
+      }
+      int phimin = phi_min(regId);
+      if(phimin < 0) {
+	phimin = 0;
+	std::string strg = "setting phimin to 0 because actual value not found for regId " 
+	  + show_to_string(regId);
+	if(m_msgSvc) {
+	  log << MSG::WARNING << strg << endreq;
+	}
+	else {
+	  std::cout << strg << std::endl;
+	}
+      }
+      Identifier min = channel_id ( regId, etamin, phimin);
+      IdentifierHash min_hash = channel_hash_binary_search(min);
+      hc.m_hash   = min_hash;
+      hc.m_etamin = etamin;
+      hc.m_phimin = phimin;
+      hc.m_nphi   = phi_max(min)-phimin+1 ;
+      m_hash_calcs[m_pn_reg_impl.unpack(min)] = hc;
+	
+      if (m_pn_reg_impl.unpack(min) > 15) {
+	std::stringstream strm ;
+	strm << i;
+	strm << m_pn_reg_impl.unpack(min);
+	std::string strg = "min > 15 " 
+	  + strm.str() + show_to_string(min) ;
+	if(m_msgSvc) {
+	  log << MSG::ERROR << strg << endreq;
+	}
+	else {
+	  std::cout << strg << std::endl;
+	}
+      }
+    }
+    
+    // Check hash calculation
+    for (unsigned int i = 0; i < channel_hash_max(); ++i) {
+      Identifier id = channel_id(i);
+      if (channel_hash(id) != i) {
+	std::stringstream strm ;
+	strm << channel_hash(id);
+	strm << i;
+	std::string strg = "channel ranges, id, hash, i = " 
+	  + show_to_string(id) + strm.str();
+	if(m_msgSvc) {
+	  log << MSG::ERROR << strg << endreq;
+	}
+	else {
+	  std::cout << strg << std::endl;
+	}
+      }
+    }
+  }
+
+  // Setup hash tables for finding neighbors
+  if(m_do_neighbours)  {
+    if(init_neighbors()) return (1);     
+  }
+
+  return 0;
+}
+
+
+
+void LArHEC_Base_ID::region_id_checks   ( int pos_neg, int sampling, int region ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id (initially with 4/2/0/0/0/0/0)
+  ExpandedIdentifier expId(lar_hec_exp());
+  expId << pos_neg << sampling << region ;
+      
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in LArHEC_Base_ID::region_id, " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d ",
+                 pos_neg , sampling , region);
+    throw LArID_Exception(errorMessage , 7);
+  }
+
+  if (!m_full_region_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::region_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_region_range;
+    throw LArID_Exception(errorMessage , 7);
+  }
+
+}
+
+void LArHEC_Base_ID::channel_id_checks   ( int pos_neg, int sampling, int region,
+                                           int eta,     int phi ) const throw(LArID_Exception)
+{  
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_hec_exp());
+  expId << pos_neg << sampling << region << eta << phi << m_slar ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::channel_id(field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 pos_neg , sampling , region, eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 8);
+  }
+}
+
+void LArHEC_Base_ID::channel_id_checks   ( const Identifier regionId,
+                                           int eta,       int phi ) const throw(LArID_Exception) 
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = region_context();
+  if (get_expanded_id(regionId, expId, &context)) {
+    std::string errorMessage = "LArHEC_Base_ID::channel_id(regId) result is not OK: ID = "
+      + show_to_string(regionId) ;
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  expId << eta << phi << m_slar;
+      
+  if ( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::channel_id(region id , field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 this->pos_neg(regionId) , 
+                 this->sampling(regionId), 
+                 this->region(regionId), eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+      
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::channel_id(regId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 8);
+  }
+}
+
+void LArHEC_Base_ID::disc_region_id_checks   ( int pos_neg, int sampling, int region ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  ExpandedIdentifier expId(lar_exp());
+  expId << -2 << pos_neg << sampling << region ;
+      
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::region_id, " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d ",
+                 pos_neg , sampling , region);
+    throw LArID_Exception(errorMessage , 7);
+  }
+
+  if (!m_full_disc_region_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::disc_region_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_region_range;
+    throw LArID_Exception(errorMessage , 7);
+  }
+
+}
+
+void LArHEC_Base_ID::disc_channel_id_checks   ( int pos_neg, int sampling, int region,
+                                                int eta,     int phi ) const throw(LArID_Exception)
+{  
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -2 << pos_neg << sampling << region << eta << phi << m_slar;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage = 
+      "Error in LArHEC_Base_ID::disc_channel_id(field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 pos_neg , sampling , region, eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::disc_channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 8);
+  }
+}
+
+void LArHEC_Base_ID::disc_channel_id_checks   ( const Identifier regionId,
+                                                int eta,       int phi ) const throw(LArID_Exception) 
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = region_context();
+  if (get_disc_expanded_id(regionId, expId, &context)) {
+    std::string errorMessage = "LArHEC_Base_ID::disc_channel_id(regId) result is not OK: ID = "
+      + show_to_string(regionId) ;
+    throw LArID_Exception(errorMessage , 8);
+  }
+
+  expId << eta << phi ;
+      
+  if ( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArHEC_Base_ID::disc_channel_id(region id , field values), " +
+      strformat ("pos_neg: %d , sampling: %d, region: %d , eta: %d , phi: %d ",
+                 this->pos_neg(regionId) , 
+                 this->sampling(regionId), 
+                 this->region(regionId), eta, phi);
+    throw LArID_Exception(errorMessage , 8);
+  }
+      
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArHEC_Base_ID::disc_channel_id(regId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 8);
+  }
+}
+
+int  LArHEC_Base_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << lar_hec_field_value()
+	   << pos_neg(id)
+	   << sampling(id)
+	   << region(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+    	    if ( context->end_index() >= m_SLAR_INDEX) {
+              exp_id << (unsigned)is_supercell(id);
+            }
+	}
+    }
+    return (0);
+}
+
+int  LArHEC_Base_ID::get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << -2
+	   << pos_neg(id)
+	   << sampling(id)
+	   << region(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+            if (context->end_index() >= m_SLAR_INDEX) {
+              exp_id << (unsigned)is_supercell(id);
+            }
+	}
+    }
+    return (0);
+}
+
+
+int LArHEC_Base_ID::initLevelsFromDict (const std::string& /*group_name*/) 
+{
+  MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+
+  if(!dict()) {
+    std::string strg = "initLevelsFromDict - dictionary NOT initialized ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_LAR_INDEX        = 999 ;
+  m_HEC_INDEX        = 999 ;
+  m_POSNEG_INDEX     = 999 ;
+  m_SAMPLING_INDEX   = 999 ;
+  m_REGION_INDEX     = 999 ;
+  m_ETA_INDEX        = 999 ;
+  m_PHI_INDEX        = 999 ;
+  m_SLAR_INDEX       = 999 ;
+
+  // Save index to a HEC region for unpacking
+  ExpandedIdentifier expId(lar_hec_exp());
+  if (dict()->find_region(expId,m_hec_region_index)){
+    std::stringstream strm ;
+    strm <<  m_hec_region_index ;
+    std::string strg = "initLevelsFromDict - unable to find hec region index: id, reg "  
+      +  (std::string)expId + strm.str();
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  IdDictField* field = dict()->find_field("subdet") ;
+  if (field) {
+    m_LAR_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'subdet' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("part") ;
+  if (field) {
+    m_HEC_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'part' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("barrel-endcap") ;
+  if (field) {
+    m_POSNEG_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'barrel-endcap' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("sampling") ;
+  if (field) {
+    m_SAMPLING_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'sampling' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("region") ;
+  if (field) {
+    m_REGION_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'region' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("eta") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'eta' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("phi") ;
+  if (field) {
+    m_PHI_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'phi' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("is-slar-hec") ;
+  if (field) {
+    m_SLAR_INDEX = field->m_index ;
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "initLevelsFromDict - unable to find 'is-slar-hec' field "
+          << endreq;
+    }
+    else {
+      std::cout << "LArEM_Base_ID::initLevelsFromDict - unable to find 'is-slar-hec' field "
+                << std::endl ;
+    }
+    return (1);
+  }
+
+
+  // Set the field implementations
+
+  const IdDictRegion& region = *dict()->m_regions[m_hec_region_index];
+
+  /*
+  std::cout << "LArHEC_Base_ID::initLevelsFromDict - found levels " << std::endl ;
+  std::cout << "lar            " << m_LAR_INDEX      << std::endl ;
+  std::cout << "part           " << m_HEC_INDEX      << std::endl ;
+  std::cout << "pos-neg        " << m_POSNEG_INDEX   << std::endl ;
+  std::cout << "sampling       " << m_SAMPLING_INDEX << std::endl ;
+  std::cout << "region         " << m_REGION_INDEX   << std::endl ;
+  std::cout << "eta            " << m_ETA_INDEX      << std::endl ;
+  std::cout << "phi            " << m_PHI_INDEX      << std::endl ;
+  std::cout << "slar           " << m_SLAR_INDEX     << std::endl ;
+  */
+
+  m_lar_impl      = region.m_implementation[m_LAR_INDEX]; 
+  m_hec_impl      = region.m_implementation[m_HEC_INDEX]; 
+  m_pn_impl       = region.m_implementation[m_POSNEG_INDEX]; 
+  m_sampling_impl = region.m_implementation[m_SAMPLING_INDEX]; 
+  m_region_impl   = region.m_implementation[m_REGION_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX]; 
+  m_slar_impl     = region.m_implementation[m_SLAR_INDEX]; 
+
+
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "decode index and bit fields for each level: " << endreq;
+    log << MSG::DEBUG << "lar  "  << m_lar_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "hec  "  << m_hec_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "pn   "  << m_pn_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "samp "  << m_sampling_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "reg  "  << m_region_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "eta  "  << m_eta_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "phi  "  << m_phi_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "is-slar  " << m_slar_impl.show_to_string() << endreq;
+  } 
+  else {
+    std::cout << "decode index and bit fields for each level: " << std::endl;
+    std::cout << "lar  "  << m_lar_impl.show_to_string() << std::endl;
+    std::cout << "hec  "  << m_hec_impl.show_to_string() << std::endl;
+    std::cout << "pn   "  << m_pn_impl.show_to_string() << std::endl;
+    std::cout << "samp "  << m_sampling_impl.show_to_string() << std::endl;
+    std::cout << "reg  "  << m_region_impl.show_to_string() << std::endl;
+    std::cout << "eta  "  << m_eta_impl.show_to_string() << std::endl;
+    std::cout << "phi  "  << m_phi_impl.show_to_string() << std::endl;
+    std::cout << "is-slar  " << m_slar_impl.show_to_string() << std::endl;
+  }
+    
+  return(0) ;
+}
+
+int LArHEC_Base_ID::init_hashes() 
+{
+  if (channels().init (*this, "channels",
+                       m_full_channel_range, &LArHEC_Base_ID::channel_id,
+                       m_SLAR_INDEX))
+    return 1;
+  if (regions().init (*this, "regions",
+                      m_full_region_range, &LArHEC_Base_ID::region_id,
+                      m_REGION_INDEX))
+    return 1;
+
+  return (0);
+}
+
+int LArHEC_Base_ID::init_disc_hashes(void) 
+{
+  if (m_disc_channels.init (*this, "channels",
+                            m_full_disc_channel_range,
+                            &LArHEC_Base_ID::disc_channel_id,
+                            m_SLAR_INDEX))
+    return 1;
+  if (m_disc_regions.init (*this, "regions",
+                           m_full_disc_region_range,
+                            &LArHEC_Base_ID::disc_region_id,
+                            m_REGION_INDEX))
+    return 1;
+
+  return (0);
+}
+
+
+int   LArHEC_Base_ID::get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption& option, std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  neighbourList.clear();
+
+  if(!m_do_neighbours) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+      log << MSG::WARNING << "neighbours not initialized !!! returning empty list" << endreq;
+    }
+    else {
+      std::cout << " LArHEC_Base_ID: neighbours not initialized !!! returning empty list " << std::endl;
+    }
+    return result;
+  }
+
+  if(id>=channel_hash_max()) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+      log << MSG::WARNING << "neighbours requested for unconnected channel -- this is not implemented" << endreq;
+    }
+    else {
+      std::cout << " neighbours requested for unconnected channel -- this is not implemente" << std::endl;
+    }
+    return result;
+  }
+
+  const short int maxNeighb=20;
+  IdentifierHash neighbList[maxNeighb];
+  int neighbourIndex = 0;
+
+  // cell index
+  unsigned int index=id;
+
+  //
+  // .... find in which region is the cell   
+  //
+  short int regionN=m_vecOfCellInfo[index];
+  // get pointer to this region
+  LArHEC_region* hecRegion = m_vecOfRegions[regionN];
+  // retrieve characteristic numbers for this region
+  short int nPhi = hecRegion->phiN();
+  float gPhi = hecRegion->phiGranularity();
+  unsigned int minHash = hecRegion->hashMin();
+  unsigned int maxHash = hecRegion->hashMax();
+
+  bool corners2DOnly  = ( (option & LArNeighbours::all2D) 
+			  == LArNeighbours::corners2D );
+  //
+  // .... previous neighbour in phi
+  //
+  IdentifierHash prevNeighbInPhi=NOT_VALID_HASH;
+  if( (option & LArNeighbours::prevInPhi) 
+      || corners2DOnly ){
+    if(!get_prevInPhi(hecRegion, index, nPhi, minHash, neighbourIndex, neighbList)){
+      prevNeighbInPhi=neighbList[neighbourIndex-1];
+      if( corners2DOnly ){
+	neighbourIndex--;
+      }
+    }
+  }
+
+  //
+  // ....next neighbour in phi
+  //
+  IdentifierHash nextNeighbInPhi=NOT_VALID_HASH;
+  if( (option & LArNeighbours::nextInPhi)
+      || corners2DOnly ){
+    if(!get_nextInPhi(hecRegion, index, nPhi, minHash, neighbourIndex, neighbList)){
+      nextNeighbInPhi=neighbList[neighbourIndex-1];
+      if( corners2DOnly ){
+	neighbourIndex--;
+      }
+    }
+  }
+
+  //
+  // ....previous neighbours in eta
+  //
+  unsigned int nPrevBiggerCell=NOT_VALID_HASH;
+  if( (option & LArNeighbours::prevInEta) ){
+    get_prevInEta(hecRegion, index, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+  }
+
+  //
+  // ....next neighbours in eta
+  //
+  unsigned int nNextBiggerCell=NOT_VALID_HASH;
+  if( (option & LArNeighbours::nextInEta) ){
+    get_nextInEta(hecRegion, index, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+  }
+
+  //
+  // ....corners in the same sampling
+  //
+  if( (option & LArNeighbours::corners2D) ){
+    if(prevNeighbInPhi != NOT_VALID_HASH){
+      unsigned int index1=prevNeighbInPhi;
+      int oldNeighbourIndex = neighbourIndex;
+      // allow only 1 corner cell in order to avoid the problem of 
+      // non-mutual neighbourness
+      // since the cells come ordered in phi it should be the last cell for
+      // prevNeighbInPhi as starting points
+      get_prevInEta(hecRegion, index1, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbList[oldNeighbourIndex] = neighbList[neighbourIndex-1];
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+      oldNeighbourIndex = neighbourIndex;
+      get_nextInEta(hecRegion, index1, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbList[oldNeighbourIndex] = neighbList[neighbourIndex-1];
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+    }
+
+    if(nextNeighbInPhi != NOT_VALID_HASH){
+      unsigned int index2=nextNeighbInPhi;
+      int oldNeighbourIndex = neighbourIndex;
+      // allow only 1 corner cell in order to avoid the problem of 
+      // non-mutual neighbourness
+      // since the cells come ordered in phi it should be the 1st cell for
+      // nextNeighbInPhi 
+      get_prevInEta(hecRegion, index2, nPhi, gPhi, minHash, neighbourIndex, neighbList, nPrevBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+      oldNeighbourIndex = neighbourIndex;
+      get_nextInEta(hecRegion, index2, nPhi, gPhi, maxHash, neighbourIndex, neighbList, nNextBiggerCell);
+      if ( neighbourIndex > oldNeighbourIndex+1 ) {
+	neighbourIndex = oldNeighbourIndex+1;
+      }
+    }
+  }
+
+  //
+  // .... neighbours in sampling (common code)
+  // HEC caracteristics = no granularity change, partial overlap of samplings
+  //
+  if( (option & LArNeighbours::upAndDown) ){
+    // initial eta granularity
+    float granEta = hecRegion->etaGranularity();
+    // initial eta
+    int nEta =  int( (index-minHash) / nPhi);
+    double absEta = hecRegion->etaMin() + nEta*granEta;
+
+    // previous neighbours in sampling
+    if( (option & LArNeighbours::prevInSamp) ){
+      get_prevInSamp(hecRegion, index, nPhi, minHash, absEta, neighbourIndex, neighbList);
+    } // end option
+
+    // next neighbours in sampling
+    if( (option & LArNeighbours::nextInSamp) ){
+      get_nextInSamp(hecRegion, index, nPhi, minHash, absEta, neighbourIndex, neighbList);
+    }
+  }
+
+  neighbourList.resize(neighbourIndex);
+  if (neighbourIndex <= maxNeighb) {
+    std::copy (&neighbList[0], &neighbList[neighbourIndex],  neighbourList.begin());
+    result = 0 ;
+  } else {
+    std::stringstream strm ;
+    strm << neighbourIndex ;
+    std::string strg = "more than 20 neighbours for this cell, NONE will be retained " 
+      + strm.str();
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+      log << MSG::WARNING << strg << endreq;
+    }
+    else {
+      std::cout << "WARNING: " << strg << std::endl;
+    }
+  } 
+  return result;
+
+}
+
+int   LArHEC_Base_ID::get_prevInPhi(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  if(!hecRegion->isPhiMin(index)) {
+    unsigned int nIndex = index-1;
+    if( ((index-minHash)%(nPhi)) == 0 ) nIndex=index+nPhi-1;
+    IdentifierHash nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArHEC_Base_ID::get_nextInPhi(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+			       int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  if(!hecRegion->isPhiMax(index)) {
+    unsigned int nIndex = index+1;
+    if( ((index-minHash+1)%(nPhi)) == 0 ) nIndex=index-nPhi+1;
+    IdentifierHash nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArHEC_Base_ID::get_prevInEta(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, const unsigned int& minHash, 
+				int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const
+{
+  int result = 1; 
+  unsigned int nIndex = 0;
+  IdentifierHash nHash = 0;
+
+  if( hecRegion->isEtaMin(index)){
+    // eta == etaMin -> go to previous region in eta
+    short int nPrevEtaRegion = hecRegion->prevEtaRegion();
+    // no neighbour if no previous region in eta
+    if( nPrevEtaRegion != NOT_VALID_HEC_REGION ) {
+      LArHEC_region* prevHecRegion = m_vecOfRegions[nPrevEtaRegion];
+      short int nPhiMinus = prevHecRegion->phiN();
+      float gPhiMinus= prevHecRegion->phiGranularity();
+      unsigned int maxHashMinus = prevHecRegion->hashMax();
+      float phiMargin = 0.5*std::min(gPhi,gPhiMinus);
+      float rPhi = (index-minHash)*gPhi+hecRegion->phiMin();
+      int nPhiMinusFirst = int(floor((rPhi     -prevHecRegion->phiMin())
+				     /gPhiMinus+phiMargin))
+	+maxHashMinus-nPhiMinus;
+      int nPhiMinusNext  = int(floor((rPhi+gPhi-prevHecRegion->phiMin())
+				     /gPhiMinus+phiMargin))
+	+maxHashMinus-nPhiMinus;
+      if ( nPhiMinusNext == nPhiMinusFirst ) nPhiMinusNext++;
+		
+      for(int i=nPhiMinusFirst; i<nPhiMinusNext; i++){
+	nIndex = i ;
+	if(nIndex != nBiggerCell) {
+	  nHash = nIndex;
+	  neighbList[neighbourIndex] = nHash;
+	  neighbourIndex++;
+	  result = 0;
+	}
+	// to avoid duplicated cells in corners
+	if(gPhi < gPhiMinus && nBiggerCell == NOT_VALID_HASH) nBiggerCell=nIndex;
+      }
+    }
+  }
+  else {
+    // stay in same region (1 neighbour)
+    nIndex = index - nPhi;
+    nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArHEC_Base_ID::get_nextInEta(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const float& gPhi, 
+				const unsigned int& maxHash, 
+				int& neighbourIndex, IdentifierHash* neighbList, unsigned int& nBiggerCell) const
+{
+  int result = 1; 
+  unsigned int nIndex = 0;
+  IdentifierHash nHash = 0;
+
+  if( hecRegion->isEtaMax(index)){
+    // eta == etaMax -> go to next region in eta
+    short int nNextEtaRegion = hecRegion->nextEtaRegion();
+    // no neighbour if no next region in eta
+    if( nNextEtaRegion != NOT_VALID_HEC_REGION ) {
+      LArHEC_region* nextHecRegion = m_vecOfRegions[nNextEtaRegion];
+      float gPhiPlus= nextHecRegion->phiGranularity();
+      unsigned int minHashPlus = nextHecRegion->hashMin();
+      float phiMargin = 0.5*std::min(gPhi,gPhiPlus);
+      float rPhi = (index+nPhi-maxHash)*gPhi+hecRegion->phiMin();
+      int nPhiPlusFirst = int(floor((rPhi     -nextHecRegion->phiMin())
+				    /gPhiPlus+phiMargin))+minHashPlus;
+      int nPhiPlusNext  = int(floor((rPhi+gPhi-nextHecRegion->phiMin())
+				    /gPhiPlus+phiMargin))+minHashPlus;
+      if ( nPhiPlusNext == nPhiPlusFirst ) nPhiPlusNext++;
+
+      for(int i=nPhiPlusFirst; i<nPhiPlusNext; i++){
+	nIndex = i ;
+	if(nIndex != nBiggerCell) {
+	  nHash = nIndex;
+	  neighbList[neighbourIndex] = nHash;
+	  neighbourIndex++;
+	  result = 0;
+	}
+	// to avoid duplicated cells in corners
+	if(gPhi < gPhiPlus && nBiggerCell == NOT_VALID_HASH) nBiggerCell=nIndex;
+      }
+    }
+  }
+  else {
+    // stay in same region (1 neighbour)
+    nIndex = index + nPhi;
+    nHash = nIndex;
+    neighbList[neighbourIndex] = nHash;
+    neighbourIndex++;
+    result = 0;
+  }
+  return result;
+}
+
+int   LArHEC_Base_ID::get_prevInSamp(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				 const double& absEta, 
+				 int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  // previous region in sampling
+  const std::vector<short int>& prevSampRegion=hecRegion->prevSamplingRegion();
+  int nPrevSampReg = prevSampRegion.size();
+  if(nPrevSampReg > 0) {
+    float gEta = hecRegion->etaGranularity();
+    float gPhi = hecRegion->phiGranularity();
+    for(int ireg=0; ireg<nPrevSampReg; ireg++) {
+      LArHEC_region* prevHecRegion = m_vecOfRegions[prevSampRegion[ireg]];
+      float minEtaMinus = prevHecRegion->etaMin();
+      float maxEtaMinus = prevHecRegion->etaMax();
+      // eta granularity of previous region
+      float granEtaMinus = prevHecRegion->etaGranularity();
+      float margin = 0.5*std::min(gEta,granEtaMinus);
+      if((minEtaMinus < absEta+gEta-margin) && (absEta+margin < maxEtaMinus)) {
+	
+	// max phi of previous region in sampling
+	short int nPhiMinus = prevHecRegion->phiN();
+	// first hash of previous region in sampling
+	unsigned int minHashMinus = prevHecRegion->hashMin(); 
+	float gPhiMinus = prevHecRegion->phiGranularity();
+	float phiMargin = 0.5*std::min(gPhi,gPhiMinus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+hecRegion->phiMin();
+	int nPhiMinusFirst = int(floor((rPhi     -prevHecRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	int nPhiMinusNext  = int(floor((rPhi+gPhi-prevHecRegion->phiMin())
+				       /gPhiMinus+phiMargin));
+	if ( nPhiMinusNext == nPhiMinusFirst ) nPhiMinusNext++;
+	// eta coordinate in initial region
+	double fEtaMinus = (absEta-minEtaMinus) / granEtaMinus + margin;
+	short int nEtaMinus = int(fEtaMinus) ;
+	for(int i=nPhiMinusFirst; i<nPhiMinusNext; i++){
+	  nIndex = minHashMinus + nEtaMinus * nPhiMinus + i;
+	  if( (nIndex >= prevHecRegion->hashMin()) && (nIndex < prevHecRegion->hashMax()) ) {
+	    nHash = nIndex;
+	    neighbList[neighbourIndex] = nHash;
+	    neighbourIndex++;
+	    result = 0;
+	  }
+	}
+      } // end eta condition
+    } // end loop on ireg
+  } // end if(nPrevSampReg>0)
+  return result;
+}
+
+int   LArHEC_Base_ID::get_nextInSamp(const LArHEC_region* hecRegion, const unsigned int& index, const short int& nPhi, const unsigned int& minHash, 
+				 const double& absEta, 
+				 int& neighbourIndex, IdentifierHash* neighbList) const
+{
+  int result = 1; 
+  // neighbours' indices
+  unsigned int nIndex=0;
+  // neighbours' hash
+  IdentifierHash nHash=0;
+
+  const std::vector<short int>& nextSampRegion=hecRegion->nextSamplingRegion();
+  int nNextSampReg = nextSampRegion.size();
+  if(nNextSampReg > 0) {
+    float gEta = hecRegion->etaGranularity();
+    float gPhi = hecRegion->phiGranularity();
+    for(int ireg=0; ireg<nNextSampReg; ireg++) {
+      LArHEC_region* nextHecRegion = m_vecOfRegions[nextSampRegion[ireg]];
+      float granEtaPlus = nextHecRegion->etaGranularity();
+      float minEtaPlus = nextHecRegion->etaMin();
+      float maxEtaPlus = nextHecRegion->etaMax();
+      float margin = 0.5*std::min(gEta,granEtaPlus);
+      if((minEtaPlus < absEta+gEta-margin) && (absEta+margin < maxEtaPlus)) {
+
+	short int nPhiPlus = nextHecRegion->phiN();
+	unsigned int minHashPlus = nextHecRegion->hashMin(); 
+	float gPhiPlus = nextHecRegion->phiGranularity();
+	float phiMargin = 0.5*std::min(gPhi,gPhiPlus);
+	// phi 'coordinate' in initial region
+	float rPhi = ((index-minHash)%nPhi)*gPhi+hecRegion->phiMin();
+	int nPhiPlusFirst = int(floor((rPhi     -nextHecRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	int nPhiPlusNext  = int(floor((rPhi+gPhi-nextHecRegion->phiMin())
+				      /gPhiPlus+phiMargin));
+	if ( nPhiPlusNext == nPhiPlusFirst ) nPhiPlusNext++;
+
+	double fEtaPlus = (absEta-minEtaPlus) / granEtaPlus + margin ;
+	int nEtaPlus = int(fEtaPlus) ;
+	for(int i=nPhiPlusFirst; i<nPhiPlusNext; i++){
+	  nIndex = minHashPlus + nEtaPlus * nPhiPlus + i;
+	  if( (nIndex >= nextHecRegion->hashMin()) && (nIndex < nextHecRegion->hashMax()) ) {
+	    nHash = nIndex;
+	    neighbList[neighbourIndex] = nHash;
+	    neighbourIndex++;
+	    result = 0;
+	  }
+	}
+      }
+    }
+  }
+  return result;
+}
+
+
+int LArHEC_Base_ID::init_neighbors(void) 
+{
+  MsgStream log(m_msgSvc, "LArHEC_Base_ID" );
+
+  const std::vector<const IdDictRegion*>& vecOfDictRegions = dictRegions();
+
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "init_neighbors" << endreq;
+  }
+  else {
+    std::cout << " LArHEC_Base_ID::init_neighbors " << std::endl;
+  }
+
+  //
+  // ..... loop on HEC regions -> store vector of LArHEC_region*
+  //
+  short int reg=0;
+  std::vector<Identifier>::const_iterator debut=reg_begin() ;
+  std::vector<Identifier>::const_iterator fin  =reg_end() ;
+
+  for (; debut != fin; ++debut) 
+    {
+      const Identifier& regId = (*debut);
+      bool fullSym = (dictionaryVersion() == "fullAtlas" );
+      //
+      // ..... translate regId to chanId and get hash
+      //
+      Identifier id ;
+      unsigned int index0 = NOT_VALID_HASH;
+      int etaMin = eta_min(regId);
+      int phiMin = phi_min(regId);
+      if(etaMin >= 0 && phiMin >= 0) 
+	{
+	  try{
+	    id = channel_id (regId, etaMin, phiMin );
+	  }
+	  catch(LArID_Exception & except){
+	  if(m_msgSvc) {
+	    log << MSG::ERROR << " LArId exception " 
+		<< (std::string)except
+		<< endreq;
+	  }
+	  else {
+	    std::cout 
+	      <<  " LArId exception " 
+	      << (std::string)except
+	      << std::endl;
+	  }
+	  }
+	  IdentifierHash 	hashId = channel_hash(id) ;
+	  index0=hashId;
+	}
+      else 
+	{
+	  if(m_msgSvc) {
+	    log << MSG::WARNING << " could not find non negative etaMin and phiMin for region " 
+		<< show_to_string(regId)
+		<< endreq;
+	  }
+	  else {
+	    std::cout << "WARNING !! could not find non negative etaMin and phiMin for region " 
+		      << show_to_string(regId)
+		      << std::endl;
+	  }
+	  index0 = 0;
+	}
+
+
+      short int deltaEta = eta_max(regId) - eta_min(regId) + 1 ;
+      short int nPhi = phi_max(regId) - phi_min(regId) + 1 ;
+      // starting eta 
+      float eta0 = this->eta0(reg);
+      // eta granularity
+      float deta = this->etaGranularity(reg);
+      // starting phi 
+      float phi0 = this->phi0(reg);
+      // phi granularity
+      float dphi = this->phiGranularity(reg);
+
+      // full range of regions
+      unsigned int ireg0=0;
+      unsigned int ireg1=region_hash_max();
+      //  if 2 symetric sides, in which side is the current reg.
+      if(twoSymSides()) {
+	if(reg < (short int)region_hash_max()/2) {
+	  ireg0=0;
+	  ireg1=region_hash_max()/2;
+	} else {
+	  ireg0=region_hash_max()/2;
+	  ireg1=region_hash_max();
+	}
+      }
+
+      //
+      // .... compute prev/next regions in eta 
+      //
+      short int regForPrevEta=NOT_VALID_HEC_REGION;
+      IdDictRegion* prevEtaDicReg =  vecOfDictRegions[reg]->m_prev_abs_eta;
+      short int regForNextEta=NOT_VALID_HEC_REGION;
+      IdDictRegion* nextEtaDicReg =  vecOfDictRegions[reg]->m_next_abs_eta;
+      for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	if(vecOfDictRegions[ireg] == prevEtaDicReg) regForPrevEta = ireg;
+	if(vecOfDictRegions[ireg] == nextEtaDicReg) regForNextEta = ireg;
+      }
+
+      //
+      // .... compute prev/next regions in sampling 
+      //                                            
+      //
+      std::vector<short int> regForPrevSamp;
+      std::vector<IdDictRegion*> prevSampDicReg =  vecOfDictRegions[reg]->m_prev_samp;
+      for(unsigned int isam=0;isam<prevSampDicReg.size();isam++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == prevSampDicReg[isam]) regForPrevSamp.push_back(ireg);
+	}
+      }
+
+      std::vector<short int> regForNextSamp;
+      std::vector<IdDictRegion*> nextSampDicReg =  vecOfDictRegions[reg]->m_next_samp;
+      for(unsigned int isam=0;isam<nextSampDicReg.size();isam++){
+	for(unsigned int ireg=ireg0;ireg<ireg1;ireg++){
+	  if(vecOfDictRegions[ireg] == nextSampDicReg[isam]) regForNextSamp.push_back(ireg);
+	}
+      }
+
+      //
+      // ....now ready to build region object
+      //
+
+      LArHEC_region * hecRegion = new LArHEC_region(index0,deltaEta,nPhi,eta0,deta,phi0,dphi,fullSym,
+						    regForPrevEta,regForNextEta,
+						    regForPrevSamp,regForNextSamp);
+      // save in a vector for further use in get_neighbours method
+      m_vecOfRegions.push_back(hecRegion);
+      reg++;
+  } // end of loop on regions
+
+  //
+  // ..... loop on channels 
+  //
+  reg=0;
+  debut = hec_begin();
+  fin   = hec_end();
+  if( debut != fin ){
+  Identifier lastRegId=region_id(*debut);
+  for (; debut != fin; ++debut) {
+      const Identifier& chanId = (*debut);
+      const Identifier& regId = region_id(chanId);
+      if(regId != lastRegId) reg++;
+
+      if(m_do_checks) {
+	// for cross check only
+	IdentifierHash hashReg = region_hash(regId);
+	if ((short int)hashReg != reg) {
+	  if(m_msgSvc) {
+	    log << MSG::ERROR << " init_neighbors: problem reg, hashReg = " << reg << " " << hashReg 
+		<< endreq;
+	  }
+	  else {
+	    std::cout << " init_neighbors: problem reg, hashReg = " << reg << " " << hashReg 
+		      << std::endl;
+	  }
+	}
+      }
+
+      // save region of the cell in a vector for further use in get_neighbours method
+      m_vecOfCellInfo.push_back(reg);
+
+      lastRegId=regId;
+  }
+  }
+  return (0);
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_ID.cxx b/Calorimeter/CaloIdentifier/src/LArHEC_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..8d9234c9825c9a12d48834502cb19da013dd8b79
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_ID.cxx
@@ -0,0 +1,54 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "LArHEC_region.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <math.h>
+
+
+LArHEC_ID::LArHEC_ID(void) :
+  LArHEC_Base_ID ("LArHEC_ID", false)
+{
+}
+
+LArHEC_ID::~LArHEC_ID(void) 
+{
+}
+
+int  LArHEC_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*===================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArHEC_ID" );
+  
+  std::string strg = "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArHEC_Base_ID::initialize_base_from_dictionary(dict_mgr, "lar_hec"))
+    return (1);
+
+    
+  return 0;
+}
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_SuperCell_ID.cxx b/Calorimeter/CaloIdentifier/src/LArHEC_SuperCell_ID.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..efe797f49793a79efeafb5bc8b90553ec260b6f6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_SuperCell_ID.cxx
@@ -0,0 +1,44 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/LArHEC_SuperCell_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Helper class for LArHEC offline identifiers for supercells
+ */
+
+
+#include "CaloIdentifier/LArHEC_SuperCell_ID.h"
+
+
+LArHEC_SuperCell_ID::LArHEC_SuperCell_ID()
+  : LArHEC_Base_ID ("LArHEC_SuperCell_ID", true)
+{
+}
+
+
+int  LArHEC_SuperCell_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArHEC_SuperCell_ID" );
+  log << MSG::DEBUG << "initialize_from_dictionary" << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (LArHEC_Base_ID::initialize_base_from_dictionary(dict_mgr, "slar_hec"))
+    return (1);
+
+  return 0;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_region.cxx b/Calorimeter/CaloIdentifier/src/LArHEC_region.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..0408316c927ef25d122f3b5a8e5497d6ba11c731
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_region.cxx
@@ -0,0 +1,157 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArHEC_region.h"
+
+#include <math.h>
+#include <vector>
+
+
+LArHEC_region::LArHEC_region():
+   m_hashMin(0)
+  ,m_nbEtaBins(0)
+  ,m_nPhi(0)
+  ,m_minEta(99)
+  ,m_granulEta(0)
+  ,m_minPhi(99)
+  ,m_granulPhi(0)
+  ,m_fullSym(true)
+  ,m_prevEtaReg(63)
+  ,m_nextEtaReg(63)
+{
+}
+
+LArHEC_region::LArHEC_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+			     float minEta, float granulEta, float minPhi, float granulPhi, bool fullSym,
+			     short int& prevEtaReg, short int& nextEtaReg, 
+			     std::vector<short int>& prevSampReg, std::vector<short int>& nextSampReg)
+{
+ 
+  m_hashMin     = minHash;
+  m_nbEtaBins   = nbEtaBins;
+  m_minEta      = minEta;
+  m_granulEta   = granulEta;
+  m_minPhi      = minPhi;
+  m_granulPhi   = granulPhi;
+  m_nPhi        = nPhi;
+  m_fullSym     = fullSym;
+  m_prevEtaReg  = prevEtaReg;
+  m_nextEtaReg  = nextEtaReg;
+  m_prevSampReg = prevSampReg;
+  m_nextSampReg = nextSampReg;
+ 
+}
+
+LArHEC_region::~LArHEC_region()
+{
+}
+
+short int LArHEC_region::numberOfEta() const
+{
+  return m_nbEtaBins ;
+}
+
+short int LArHEC_region::phiN() const
+{
+  return m_nPhi ;
+}
+
+float LArHEC_region::etaGranularity() const
+{
+  return m_granulEta ;
+}
+
+float LArHEC_region::phiGranularity() const
+{
+  return m_granulPhi ;
+}
+
+bool LArHEC_region::fullTwoPi() const
+{
+  return m_fullSym ;
+}
+
+float LArHEC_region::etaMin() const
+{
+  return m_minEta ;
+}
+
+float LArHEC_region::etaMax() const
+{
+  return (m_minEta + m_nbEtaBins*m_granulEta) ;
+}
+
+float LArHEC_region::phiMin() const
+{
+  return m_minPhi ;
+}
+
+float LArHEC_region::phiMax() const
+{
+  return (m_minPhi + m_nPhi*m_granulPhi) ;
+}
+
+unsigned int   LArHEC_region::hashMin() const
+{
+  return m_hashMin ;
+}
+
+unsigned int   LArHEC_region::hashMax() const
+{
+  return (m_hashMin + m_nbEtaBins * m_nPhi) ;
+}
+
+short int LArHEC_region::prevEtaRegion() const
+{
+  return m_prevEtaReg;
+}
+
+short int LArHEC_region::nextEtaRegion() const
+{
+  return m_nextEtaReg;
+}
+
+bool LArHEC_region::isEtaMin(const unsigned int& index) const
+{
+  bool result=false;
+  if( ((m_hashMin<=index) && (index<(m_hashMin+m_nPhi))))result=true;
+  return result;
+}
+
+bool LArHEC_region::isEtaMax(const unsigned int& index) const
+{
+  bool result=false;
+  if( ((hashMax()-m_nPhi)<=index) && (index<hashMax()))result=true;
+  return result;
+}
+
+bool LArHEC_region::isPhiMin(const unsigned int& index) const
+{
+  bool result=false;
+  if( !m_fullSym && (index-m_hashMin)%m_nPhi == 0 )result=true; 
+  return result;
+}
+
+bool LArHEC_region::isPhiMax(const unsigned int& index) const
+{
+  bool result=false;
+  if( !m_fullSym && (index-m_hashMin+1)%m_nPhi == 0 )result=true;  
+  return result;
+}
+
+const std::vector<short int>& LArHEC_region::nextSamplingRegion() const
+{
+  return m_nextSampReg;
+}
+
+const std::vector<short int>& LArHEC_region::prevSamplingRegion() const
+{
+  return m_prevSampReg;
+}
+
+
+
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/LArHEC_region.h b/Calorimeter/CaloIdentifier/src/LArHEC_region.h
new file mode 100755
index 0000000000000000000000000000000000000000..febd4d1c78b0d11c6e68a3ef45fb4c2725aa968d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArHEC_region.h
@@ -0,0 +1,109 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARHEC_REGION_H
+#define LARHEC_REGION_H
+
+
+#include <vector>
+
+  enum { NOT_VALID_HEC_REGION = 63 };
+
+/**
+*  
+*  @brief This class provides an interface to deal with regions
+*  in the neighbours finding  
+* 
+*/
+
+class LArHEC_region 
+{
+public:        
+
+    LArHEC_region(void);    
+
+    LArHEC_region(unsigned int& minHash, short int& nbEtaBins, short int& nPhi,
+		  float minEta, float granulEta, float minPhi, float granulPhi, bool fullSym, 
+		  short int& prevEtaReg, short int& nextEtaReg,
+		  std::vector<short int>& prevEtaSamp, std::vector<short int>& nextEtaSamp);    
+
+    ~LArHEC_region(void);
+
+    /** number of eta bins in the whole region */
+    short int numberOfEta() const;
+
+    /** number of phi bins */
+    short int phiN() const;
+
+    /** eta granularity */
+    float etaGranularity() const;
+
+    /** phi granularity */
+    float phiGranularity() const;
+
+    /** true if detector covers full 2pi (== wraparound option in dictionary) */
+    bool fullTwoPi() const;
+
+    /** starting eta */
+    float etaMin() const;
+
+    /** end eta */
+    float etaMax() const;
+
+    /** starting phi */
+    float phiMin() const;
+
+    /** end phi */
+    float phiMax() const;
+
+    /** hash Id of the first cell of the region */
+    unsigned int   hashMin() const;
+
+    /** hash Id of the last cell of the region +1 */
+    unsigned int   hashMax() const;
+
+    /** region number of the previous region in eta */
+    short int prevEtaRegion() const;
+
+    /** region number of the next region in eta */
+    short int nextEtaRegion() const;
+
+    /** is the considered cell in the first eta bin of the region ? */
+    bool isEtaMin(const unsigned int& index) const;
+
+    /** is the considered cell in the last eta bin of the region ? */
+    bool isEtaMax(const unsigned int& index) const;
+
+    /** is the considered cell in the first phi bin of the region ? */
+    bool isPhiMin(const unsigned int& index) const;
+
+    /** is the considered cell in the last phi bin of the region ? */
+    bool isPhiMax(const unsigned int& index) const;
+
+    /** region number of the prev region in sampling */
+    const std::vector<short int>& prevSamplingRegion() const;
+
+    /** region number of the next region in sampling */
+    const std::vector<short int>& nextSamplingRegion() const;
+
+
+private:    
+
+    unsigned int                  m_hashMin;
+    short int                     m_nbEtaBins;
+    short int                     m_nPhi;
+    float                         m_minEta;
+    float                         m_granulEta;
+    float                         m_minPhi;
+    float                         m_granulPhi;
+    bool                          m_fullSym;
+
+    short int                     m_prevEtaReg;   
+    short int                     m_nextEtaReg;
+    std::vector<short int>        m_prevSampReg;
+    std::vector<short int>        m_nextSampReg;
+
+};
+
+#endif // LARHEC_REGION_H
diff --git a/Calorimeter/CaloIdentifier/src/LArID_Exception.cxx b/Calorimeter/CaloIdentifier/src/LArID_Exception.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..94ece1c8da1617305f5e0a3090f0b04bc1b114c0
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArID_Exception.cxx
@@ -0,0 +1,18 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArID_Exception.h"
+
+#include <sstream>
+
+
+LArID_Exception::operator std::string () 
+
+{
+  std::ostringstream s;
+
+  s << "LArID_Exception - Error code: " << this->code() << " \n "
+    << this->message();
+  return s.str();
+}
diff --git a/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx b/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a380c74b0a38c7e044479338ddd62d38b7c601ca
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/LArMiniFCAL_ID.cxx
@@ -0,0 +1,977 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "PathResolver/PathResolver.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <string>
+#include <set>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <math.h>
+#include <stdexcept>
+
+#include "CxxUtils/StrFormat.h"
+
+using CxxUtils::strformat;
+
+
+LArMiniFCAL_ID::LArMiniFCAL_ID(void) 
+        : 
+        CaloIDHelper ("LArMiniFCAL_ID"),
+        m_is_initialized(false),
+        m_fcal_region_index(0),
+        m_minifcal_region_index(0),
+        m_LAR_INDEX(999),
+        m_MiniFCAL_INDEX(999),
+        m_POSNEG_INDEX(999),
+        m_MODULE_INDEX(999),
+        m_DEPTH_INDEX(999),
+        m_ETA_INDEX(999),
+        m_PHI_INDEX(999),
+        m_two_sym_sides(1)
+{}
+
+LArMiniFCAL_ID::~LArMiniFCAL_ID(void) 
+{}
+
+bool LArMiniFCAL_ID::is_connected ( int pos_neg, int module, int depth, int eta, int phi) const throw(LArID_Exception)
+{
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  //expId << pos_neg << module << depth << eta << phi ;
+  expId << pos_neg << 0 << depth << eta << phi ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::is_connected, " +
+      strformat ("pos_neg: %d , module: %d, depth: %d, eta: %d, phi: %d ",
+                 pos_neg , module , depth , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (m_full_channel_range.match(expId)) { 
+    result = true;
+  }
+  return(result);
+}
+
+bool LArMiniFCAL_ID::is_disconnected ( int pos_neg, int module, int depth, int eta, int phi) const throw(LArID_Exception)
+{
+  bool result=false;
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module << depth << eta << phi ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::is_disconnected, " +
+      strformat ("pos_neg: %d , module: %d, depth: %d, eta: %d, phi: %d ",
+                 pos_neg , module , depth , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (m_full_disc_channel_range.match(expId)) { 
+    result = true;
+  }
+  return(result);
+}
+
+int LArMiniFCAL_ID::eta_min(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int LArMiniFCAL_ID::eta_max(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_ETA_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArMiniFCAL_ID::phi_min_init(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_minimum()) {
+	  int phimin = phi_field.get_minimum();
+	  if (-999 == result) {
+	    result = phimin;
+	  }
+	  else {
+	    if (phimin < result) result = phimin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int LArMiniFCAL_ID::phi_max(const Identifier modId) const
+{
+  ExpandedIdentifier expId;
+  IdContext module_cntxt = module_context();
+  if(!get_expanded_id(modId, expId, &module_cntxt)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+      const Range& range = m_full_channel_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_PHI_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int   LArMiniFCAL_ID::get_neighbours(const IdentifierHash id, const LArNeighbours::neighbourOption& option, std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  neighbourList.clear();
+
+  if(!m_do_neighbours) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+      log << MSG::WARNING << "neighbours not initialized !!! returning empty list" << endreq;
+    }
+    else {
+      std::cout << " neighbours not initialized !!! returning empty list " << std::endl;
+    }
+    return result;
+  }
+
+  if(id>=channels().hash_max()) {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+      log << MSG::WARNING << "neighbours requested for unconnected channel -- this is not implemented" << endreq;
+    }
+    else {
+      std::cout << " neighbours requested for unconnected channel -- this is not implemente" << std::endl;
+    }
+    return result;
+  }
+
+  if( dictionaryVersion() == "fullAtlas" ) {
+
+    if ( (option & LArNeighbours::all2D) == LArNeighbours::all2D ){
+      if ( m_neighbors_2d_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbors_2d_vec[(unsigned int)id].begin(),
+			     m_neighbors_2d_vec[(unsigned int)id].end());
+      }
+    }
+    
+    if ( (option & LArNeighbours::prevInSamp) ){
+      if ( m_neighbors_3d_prev_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbors_3d_prev_vec[(unsigned int)id].begin(),
+			     m_neighbors_3d_prev_vec[(unsigned int)id].end());
+      }
+    }
+    
+    if ( (option & LArNeighbours::nextInSamp) ){
+      if ( m_neighbors_3d_next_vec[(unsigned int)id].size() > 0 ) { 
+	neighbourList.insert(neighbourList.end(),
+			     m_neighbors_3d_next_vec[(unsigned int)id].begin(),
+			     m_neighbors_3d_next_vec[(unsigned int)id].end());
+      }
+    }
+    
+  } else {
+    if(m_msgSvc) {
+      MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+      log << MSG::WARNING << " NO MiniFCAL neighbours (yet) in the context of " << dictionaryVersion() << endreq;
+    }
+    else {
+      std::cout << " NO MiniFCAL neighbours (yet) in the context of " << dictionaryVersion() << std::endl;
+    }
+  }
+  return result;
+}
+
+int         LArMiniFCAL_ID::disc_eta             (const Identifier id)const
+{
+  return(m_eta_impl.unpack(id));
+}
+
+int         LArMiniFCAL_ID::disc_phi             (const Identifier id)const
+{
+  return(m_phi_impl.unpack(id));
+}
+
+IdContext	
+LArMiniFCAL_ID::module_context 		(void) const
+{
+  return region_context();
+}
+
+int  LArMiniFCAL_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+/*=================================================================*/
+{
+  MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+
+  std::string strg =  "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if(CaloIDHelper::initialize_base_from_dictionary(dict_mgr,
+                                                   "LArCalorimeter"))
+    return (1);
+  
+  // initialize dictionary version
+  AtlasDetectorID::setDictVersion(dict_mgr, "LArCalorimeter");
+
+  // Check whether dictionary has miniFCAL
+  if (!dict()->find_group("lar_mini_fcal")) {
+    strg =  " initialize_from_dict - LArCalorimeter dictionary does NOT contain miniFCAL description. Unable to initialize LArMiniFCAL_ID.";
+    log << MSG::INFO << strg << endreq;
+    return 0; // return OK
+  }
+      
+
+  // Initialize the field indices
+  if(initLevelsFromDict()) {
+    strg =  " initialize_from_dict - cannot initialize MiniFCAL part of LArCalorimeter dictionary ";
+    if(m_msgSvc) {
+      log << MSG::WARNING << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);   
+  }
+  else {
+
+    // Find value for the field LAr Calorimeter   
+    const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+    int larField   = -1;
+    if (atlasDict->get_label_value("subdet", "LArCalorimeter", larField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArCalorimeter' of field 'subdet' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+
+
+    // Find value for the field LArMiniFCAL  - here the "part" has to be LArFCAL
+    int larFcalField   = -1;
+    if (dict()->get_label_value("part", "LArFCAL", larFcalField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArMiniFCAL' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+      return (1);
+    }
+
+    // Find value for the field LArMiniFCALdisc
+    int larFcalDiscField   = -1;
+    if (dict()->get_label_value("part", "LArFCALdisc", larFcalDiscField)) {
+      std::stringstream strm ;
+      strm <<  atlasDict->m_name ;
+      strg = "Could not get value for label 'LArMiniFCALdisc' of field 'part' in dictionary " 
+      + strm.str();
+      if(m_msgSvc) {
+	log << MSG::ERROR << strg << endreq;
+      }
+      else {
+	std::cout << strg << std::endl;
+      }
+        return (1);
+    }
+
+    // Set up id for region and range prefix
+
+    // RDS: need to find the range for MiniFCAL module 0, which includes
+    // both pos/neg endcaps
+    // (1) Connected channels
+    ExpandedIdentifier region_id;
+    region_id.add(larField);
+    region_id.add(larFcalField);
+    Range prefix;
+    std::string str = "lar_mini_fcal";
+    m_full_channel_range = dict()->build_multirange(region_id, str, prefix);
+    m_full_module_range = dict()->build_multirange(region_id, str, prefix, "module");
+    m_full_depth_range = dict()->build_multirange(region_id, str, prefix, "depth-mfcal");
+
+    // (2) disconnected channels
+    ExpandedIdentifier region_id2;
+    region_id2.add(larField);
+    region_id2.add(larFcalDiscField);
+    Range prefix2;
+
+    m_full_disc_channel_range = dict()->build_multirange(region_id2, str, prefix2);
+    m_full_disc_module_range = dict()->build_multirange(region_id2, str,prefix2, "module");
+
+    std::string strg0 = "initialize_from_dict : " ;
+    std::string strg1 = " channel range -> " + (std::string)m_full_channel_range;
+    std::string strg2 = " module range -> "  + (std::string)m_full_module_range;
+    std::string strg2a= " depth range -> "   + (std::string)m_full_depth_range;
+    std::string strg3 = " disconnected channel range -> "  + (std::string)m_full_disc_channel_range;
+    std::string strg4 = " disconnected module range -> "   + (std::string)m_full_disc_module_range;
+    if(m_msgSvc) {
+      log << MSG::DEBUG << strg0 << endreq;
+      log << MSG::DEBUG << strg1 << endreq;
+      log << MSG::DEBUG << strg2 << endreq;
+      log << MSG::DEBUG << strg2a<< endreq;
+      log << MSG::DEBUG << strg3 << endreq;
+      log << MSG::DEBUG << strg4 << endreq;
+    }
+    else {
+      std::cout << strg0 << std::endl;
+      std::cout << strg1 << std::endl;
+      std::cout << strg2 << std::endl;
+      std::cout << strg2a<< std::endl;
+      std::cout << strg3 << std::endl;
+      std::cout << strg4 << std::endl;
+    }
+
+    // Setup the hash tables
+    if(init_hashes()) return (1);
+
+    // Setup the disc hash tables
+    if(init_disc_hashes()) return (1);
+
+    // initilize m_two_sym_sides
+    m_two_sym_sides = ( dictionaryVersion() == "fullAtlas" );
+
+    // collect the regions to later access deta/dphi etc.
+    if (fill_vec_of_dict_regions()) return 1;
+
+    // added nov 2005 to speed up CaloNoiseTool initialisation
+    m_vecOfPhiMin.resize(regions().hash_max());
+    for (unsigned int i = 1; i < regions().hash_max(); ++i) {
+      Identifier modId = module_id(i); 
+      m_vecOfPhiMin[i] = phi_min_init(modId);
+    }
+
+    // Setup hash tables for finding neighbors
+    if(m_do_neighbours) {
+      if(init_neighbors(dict_mgr)) return (1);     
+    }
+
+  }
+
+  m_is_initialized = true;
+  return 0;
+
+}
+
+void LArMiniFCAL_ID::module_id_checks ( int pos_neg, int module ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  //expId << pos_neg << module;
+  expId << pos_neg << 0;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::module_id, " +
+      strformat ("pos_neg: %d , module: %d", pos_neg , module);
+    throw LArID_Exception(errorMessage , 9);
+  }
+
+  if (!m_full_module_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::module_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_module_range;
+    throw LArID_Exception(errorMessage , 6);
+  }
+}
+
+void LArMiniFCAL_ID::channel_id_checks ( int pos_neg, int module, int depth, int eta, int phi) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_fcal_exp());
+  //expId << pos_neg << module << depth << eta << phi ;
+  expId << pos_neg << 0 << depth << eta << phi ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::channel_id, " +
+      strformat ("pos_neg: %d , module: %d, depth: %d,eta: %d, phi: %d ",
+                 pos_neg , module , depth, eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void   LArMiniFCAL_ID::channel_id_checks   (const Identifier moduleId, int depth,
+				        int eta, int phi) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = module_context();
+  if (get_expanded_id(moduleId, expId, &context)) {
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id(modId) result is not OK: ID = "
+      + show_to_string(moduleId) ;
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  expId << depth << eta << phi ;
+
+  if (!m_full_channel_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id(modId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void LArMiniFCAL_ID::disc_module_id_checks ( int pos_neg, int module ) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::module_id, " +
+      strformat ("pos_neg: %d , module: %d", pos_neg , module);
+    throw LArID_Exception(errorMessage , 9);
+  }
+
+  if (!m_full_disc_module_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::module_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_module_range;
+    throw LArID_Exception(errorMessage , 6);
+  }
+}
+
+void LArMiniFCAL_ID::disc_channel_id_checks ( int pos_neg, int module, int depth, int eta, int phi) const throw(LArID_Exception)
+{
+	
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(lar_exp());
+  expId << -3 << pos_neg << module << eta << phi ;
+
+  if( expId.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in LArMiniFCAL_ID::channel_id, " + 
+      strformat ("pos_neg: %d , module: %d, depth: %d, eta: %d, phi: %d ",
+                 pos_neg , module , depth , eta , phi);
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+void   LArMiniFCAL_ID::disc_channel_id_checks   (const Identifier moduleId,  int depth,
+					     int eta, int phi) const throw(LArID_Exception)
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId; 
+
+  IdContext context = module_context();
+  if (get_disc_expanded_id(moduleId, expId, &context)) {
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id(modId) result is not OK: ID = "
+      + show_to_string(moduleId) ;
+    throw LArID_Exception(errorMessage , 10);
+  }
+
+  expId << depth << eta << phi ;
+
+  if (!m_full_disc_channel_range.match(expId)) { 
+    std::string errorMessage = "LArMiniFCAL_ID::channel_id(modId) result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_disc_channel_range;
+    throw LArID_Exception(errorMessage , 10);
+  }
+}
+
+int  LArMiniFCAL_ID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << lar_fcal_field_value()
+	   << pos_neg(id)
+      	   << module(id)
+    //	   << 0
+	   << depth(id) ;
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	}
+    }
+    return (0);
+}
+
+int  LArMiniFCAL_ID::get_disc_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+    // We assume that the context is >= region
+    exp_id.clear();
+    exp_id << lar_field_value()
+      	   << -3
+	   << pos_neg(id)
+	   << module(id)
+	   << depth(id);
+    if(context && context->end_index() >= m_ETA_INDEX) {
+	exp_id << eta(id);
+	if(context->end_index() >= m_PHI_INDEX) {
+	    exp_id << phi(id);
+	}
+    }
+    return (0);
+}
+
+int         LArMiniFCAL_ID::initLevelsFromDict(void) 
+{
+  MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+
+  if(!dict()) {
+    std::string strg = "initLevelsFromDict - dictionary NOT initialized ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_fcal_region_index = 999 ;
+  m_LAR_INDEX         = 999 ;
+  m_MiniFCAL_INDEX    = 999 ;
+  m_POSNEG_INDEX      = 999 ;
+  m_MODULE_INDEX      = 999 ;
+  m_DEPTH_INDEX       = 999 ;
+  m_ETA_INDEX         = 999 ;
+  m_PHI_INDEX         = 999 ;
+
+  IdDictField* field = dict()->find_field("subdet") ;
+  if (field) {
+    m_LAR_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'subdet' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("part") ;
+  if (field) {
+    m_MiniFCAL_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'part' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  field = dict()->find_field("barrel-endcap") ;
+  if (field) {
+    m_POSNEG_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'barrel-endcap' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  field = dict()->find_field("module") ;
+  if (field) {
+    m_MODULE_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'module' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+  
+  field = dict()->find_field("depth-mfcal") ;
+  if (field) {
+    m_DEPTH_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'depth' field ";
+    if(m_msgSvc) {
+      log << MSG::WARNING << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  
+  field = dict()->find_field("eta-mfcal") ;
+  if (field) {
+    m_ETA_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'eta' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  field = dict()->find_field("phi-mfcal") ;
+  if (field) {
+    m_PHI_INDEX = field->m_index ;
+  }
+  else {
+    std::string strg = "initLevelsFromDict - unable to find 'phi' field ";
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+  
+  /*
+  std::cout << "LArMiniFCAL_ID::initLevelsFromDict - found levels " << std::endl ;
+  std::cout << "part           " << m_MiniFCAL_INDEX     << std::endl ;
+  std::cout << "pos-neg        " << m_POSNEG_INDEX   << std::endl ;
+  std::cout << "module         " << m_MODULE_INDEX   << std::endl ;
+  std::cout << "eta            " << m_ETA_INDEX      << std::endl ;
+  std::cout << "phi            " << m_PHI_INDEX      << std::endl ;
+  */
+
+  // Save index to a MiniFCAL region for unpacking
+
+  // Fill expanded identifier with id for module 0 of the MiniFCAL,
+  // i.e. add on module == 0 to the id below
+
+  ExpandedIdentifier id(lar_fcal_exp());
+  if (dict()->find_region(id,m_fcal_region_index)){  
+    std::stringstream strm ;
+    strm <<  m_fcal_region_index ;
+    std::string strg = "initLevelsFromDict - unable to find fcal region index: id, reg "  
+      +  (std::string)id + strm.str();
+    if(m_msgSvc) {
+      log << MSG::ERROR << strg << endreq;
+    }
+    else {
+      std::cout << strg << std::endl;
+    }
+    return (1);
+  }
+
+   // Set the field implementations
+
+
+  IdDictDictionary::regions_const_it rit; 
+  for (rit = dict()->m_regions.begin (); rit != dict()->m_regions.end (); ++rit) { 
+    const IdDictRegion& region = *(*rit);
+    if (region.m_group=="lar_mini_fcal") {m_minifcal_region_index = region.m_index; break;}
+  }
+  
+  const IdDictRegion& region = *dict()->m_regions[m_minifcal_region_index];
+
+  m_lar_impl      = region.m_implementation[m_LAR_INDEX]; 
+  m_fcal_impl     = region.m_implementation[m_MiniFCAL_INDEX]; 
+  m_pn_impl       = region.m_implementation[m_POSNEG_INDEX]; 
+  m_module_impl   = region.m_implementation[m_MODULE_INDEX]; 
+  m_depth_impl    = region.m_implementation[m_DEPTH_INDEX]; 
+  m_eta_impl      = region.m_implementation[m_ETA_INDEX]; 
+  m_phi_impl      = region.m_implementation[m_PHI_INDEX];
+ 
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "decode index and bit fields for each level: " << endreq;
+    log << MSG::DEBUG << "lar   "   << m_lar_impl.show_to_string()    << endreq;
+    log << MSG::DEBUG << "fcal  "   << m_fcal_impl.show_to_string()   << endreq;
+    log << MSG::DEBUG << "pn    "   << m_pn_impl.show_to_string()     << endreq;
+    log << MSG::DEBUG << "mod   "   << m_module_impl.show_to_string() << endreq;
+    log << MSG::DEBUG << "depth "   << m_depth_impl.show_to_string()  << endreq;
+    log << MSG::DEBUG << "eta   "   << m_eta_impl.show_to_string()    << endreq;
+    log << MSG::DEBUG << "phi   "   << m_phi_impl.show_to_string()    << endreq;
+  }
+  else {
+    std::cout << "decode index and bit fields for each level: " << std::endl;
+    std::cout << "lar   "  << m_lar_impl.show_to_string()    << std::endl;
+    std::cout << "fcal  "  << m_fcal_impl.show_to_string()   << std::endl;
+    std::cout << "pn    "  << m_pn_impl.show_to_string()     << std::endl;
+    std::cout << "mod   "  << m_module_impl.show_to_string() << std::endl;
+    std::cout << "depth "  << m_depth_impl.show_to_string()  << std::endl;
+    std::cout << "eta   "  << m_eta_impl.show_to_string()    << std::endl;
+    std::cout << "phi   "  << m_phi_impl.show_to_string()    << std::endl;
+  }
+
+
+  return(0) ;
+}
+
+int         LArMiniFCAL_ID::init_hashes(void) 
+{
+  if (channels().init (*this, "channels",
+                       m_full_channel_range,
+                       &LArMiniFCAL_ID::channel_id,
+                       m_PHI_INDEX))
+    return 1;
+  if (regions().init (*this, "regions",
+                      m_full_module_range,
+                      &LArMiniFCAL_ID::module_id,
+                      m_MODULE_INDEX))
+    return 1;
+
+  return (0);
+}
+
+int         LArMiniFCAL_ID::init_disc_hashes(void) 
+{
+  if (m_disc_channels.init (*this, "chanenls",
+                            m_full_disc_channel_range,
+                            &LArMiniFCAL_ID::disc_channel_id,
+                            m_PHI_INDEX))
+    return 1;
+  if (m_disc_modules.init (*this, "regions",
+                           m_full_disc_module_range,
+                           &LArMiniFCAL_ID::disc_module_id,
+                           m_MODULE_INDEX))
+    return 1;
+
+  return (0);
+}
+
+int         LArMiniFCAL_ID::init_neighbors_from_file(std::string filename, std::vector<std::set<IdentifierHash> > & vec)
+{
+  MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+
+  if(m_msgSvc) {
+    log << MSG::DEBUG << "init_neighbors_from_file" << endreq;
+  }
+  else {
+    std::cout << "LArMiniFCAL_ID::init_neighbors_from_file " << std::endl;
+  }
+  // Find the full path to filename:
+  std::string file = PathResolver::find_file (filename, "DATAPATH");
+  log << MSG::INFO << "Reading file " << file << endreq;
+
+  std::ifstream fin;
+  if (file != "") {
+    fin.open(file.c_str());
+  }
+  else {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "Could not find input file " << filename << endreq;
+    }
+    else {
+      std::cout << "LArMiniFCAL_ID::Could not find input file " << filename <<  std::endl;
+    }
+    return 1;
+  }
+  if (fin.bad()) {
+    if(m_msgSvc) {
+      log << MSG::ERROR << "Could not open file " << file << endreq;
+    }
+    else {
+      std::cout << "LArMiniFCAL_ID::Could not open file " << file << std::endl;
+    }
+    return 1;
+  }
+
+  //
+  // Parse the input file
+  //
+
+  vec.resize(channels().hash_max());
+  
+  char aLine[1024];
+  std::string sLine;
+  bool isComment = true;
+  char AorC,dot;
+  int isamp,idepth, iphi,ieta;
+
+  while( isComment ) {
+    sLine.resize( 0 );
+    do {  
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    } while (sLine == "" && !fin.eof());
+    isComment = ( sLine.find("#") != std::string::npos );
+  }
+  do {
+    while ( sLine == "" && !fin.eof()) {
+      fin.getline(aLine,sizeof(aLine)-1);
+      sLine = std::string(aLine);
+    }
+    std::istringstream es( sLine.c_str() );
+
+    if ( es >> AorC >> isamp >> dot >> idepth >> dot >> iphi >> dot >> ieta ) {
+      Identifier thisCell = channel_id((AorC=='A'?2:-2),isamp,idepth,ieta,iphi);
+      IdentifierHash ic = channel_hash(thisCell);
+      while ( es >> AorC >> isamp >> dot >> idepth >> dot >> iphi >> dot >> ieta ) {
+        if (!ic.is_valid()) continue;
+	Identifier nextCell = channel_id((AorC=='A'?2:-2),isamp,idepth,ieta,iphi);
+	IdentifierHash inext = channel_hash(nextCell);
+	vec[ic].insert(vec[ic].end(),inext);
+      }
+      sLine.resize(0);
+    } 
+  }while (!fin.eof()) ;
+  fin.close();
+
+  return 0;
+}
+
+int         LArMiniFCAL_ID::init_neighbors(const IdDictMgr& dict_mgr) 
+{
+    MsgStream log(m_msgSvc, "LArMiniFCAL_ID" );
+
+    if(m_msgSvc) {
+        log << MSG::DEBUG << "init_neighbors" << endreq;
+    }
+    else {
+        std::cout << "LArMiniFCAL_ID::init_neighbors " << std::endl;
+    }
+
+    int status;
+    std::string f2d,f3dnext,f3dprev;
+
+    f2d     = dict_mgr.find_metadata("FCAL2DNEIGHBORS");
+    f3dnext = dict_mgr.find_metadata("FCAL3DNEIGHBORSNEXT");
+    f3dprev = dict_mgr.find_metadata("FCAL3DNEIGHBORSPREV");
+    if (!f2d.size() || !f3dnext.size() || !f3dprev.size()) {
+        if(m_msgSvc) {
+            log << MSG::ERROR << "init_neighbours: cannot find neighbours files: " 
+                << " f2d: " << f2d << " f3dnext: " << f3dnext << " f3dprev: " << f3dprev
+                << endreq;
+        }
+        else {
+            std::cout << "LArMiniFCAL_ID::init_neighbours cannot find neighbours files: " 
+                      << " f2d: " << f2d << " f3dnext: " << f3dnext << " f3dprev: " << f3dprev
+                      << std::endl;
+        }
+        throw std::runtime_error("LArMiniFCAL_ID::init_neighbours: Cannot find the FCAL Neighbour file names");
+    }
+    
+    status = init_neighbors_2d(f2d);
+    if ( status == 0 ) 
+        status = init_neighbors_3d_next(f3dnext);
+    if ( status == 0 ) 
+        status = init_neighbors_3d_prev(f3dprev);
+    
+    if ( status == 0 ) 
+        return (0);
+    else 
+        return (1);
+}
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx b/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..a962c1545867a47e02af4e7e2bdd0a962644d67c
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/TTOnlineID.cxx
@@ -0,0 +1,798 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/TTOnlineID.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "Identifier/IdentifierHash.h"
+#include "IdDict/IdDictDefs.h"
+#include "CxxUtils/StrFormat.h"
+#include "GaudiKernel/MsgStream.h"
+#include <algorithm>
+#include <string>
+#include <set>
+#include <stdio.h>
+#include <iostream>
+#include <math.h>
+#include <assert.h>
+
+using CxxUtils::strformat;
+
+
+TTOnlineID::TTOnlineID(void) :
+  m_calo_index(999),
+  m_detzside_index(999),
+  m_l1online_regions_index(999),
+  m_crate_index(999),
+  m_module_index(999),
+  m_submodule_index(999),
+  m_channel_index(999),
+  m_dict(0),
+  m_crateHashMax(0),
+  m_moduleHashMax(0),
+  m_submoduleHashMax(0),
+  m_channelHashMax(0),
+  m_iDetZSideFieldValue(-1)
+{
+
+}
+
+TTOnlineID:: ~TTOnlineID(){}
+
+
+IdContext TTOnlineID::crateContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_crate_index));
+}
+
+IdContext TTOnlineID::moduleContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_module_index));
+}
+
+IdContext TTOnlineID::submoduleContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_submodule_index));
+}
+
+IdContext TTOnlineID::channelContext(void) const
+{
+  ExpandedIdentifier id;
+  return (IdContext(id, 0, m_channel_index));
+}
+
+
+
+//==========================================================================
+int  TTOnlineID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+//==========================================================================
+{
+
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  std::string strg = "initialize_from_dictionary";
+  if(m_msgSvc) {
+    log << MSG::INFO << strg << endreq;
+  }
+  else {
+    std::cout << strg << std::endl;
+  }
+
+  // Check whether this helper should be reinitialized
+  // -------------------------------------------------
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed"
+		    << endreq;
+    return (0);
+  }
+  else {
+    log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  // ----------------
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)){
+    return (1);
+  }
+
+  m_dict = dict_mgr.find_dictionary("Calorimeter");
+
+  log << MSG::DEBUG << " => defined m_dict from find_dictionary(Calorimeter) = " << m_dict << endreq;
+  if(!m_dict)
+    {
+      strg = " initialize_from_dictionary - cannot access Calorimeter dictionary";
+      if(m_msgSvc) {
+	//log << MSG::ERROR << strg << endreq;
+      }
+      else
+	{
+	  std::cout << "TTOnlineID::" << strg << std::endl;
+	}
+      return 1;
+    }
+
+  // Register version of the dictionary used
+  // ---------------------------------------
+  if (register_dict_tag(dict_mgr, "Calorimeter")) return(1);
+
+  // initialize dictionary version
+  // -----------------------------
+  AtlasDetectorID::setDictVersion(dict_mgr, "Calorimeter");
+
+
+  // Initialize the field indices
+  // --------------------------------------
+  if(initLevelsFromDict()) return (1);
+
+  /* Find value for the field Calorimeter */
+  // ---------------------------------------
+  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS");
+  int caloValue   = -1;
+  if (atlasDict->get_label_value("subdet", "Calorimeter", caloValue)) {
+    std::stringstream strm;
+    strm << atlasDict->m_name;
+    strg= " Could not get value for label 'Calorimeter' of field 'subdet' in dictionary "+strm.str();
+    if(m_msgSvc){
+      log << MSG::ERROR << strg << endreq;
+    }
+    else{
+      std::cout << "TTOnlineID:" << strg << std::endl;
+    }
+    return (1);
+  }
+  log << MSG::DEBUG << "[init_from_dictionary] > caloValue = "<< caloValue << endreq;
+
+  /* Find values for the fake field DetZside */
+  // --------------------------------------
+
+  // retrieve the calo tag from the DB
+  std::string tag = m_dict->dict_tag();
+  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
+  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endreq;
+
+  //int detzsideValue   = -1;
+  //if (m_dict->get_label_value("DetZside", "no_side", detzsideValue)) {
+  if (m_dict->get_label_value("DetZside", "no_side", m_iDetZSideFieldValue)) {
+    if (!oldTag) {
+      std::stringstream strm;
+      strm <<  m_dict->m_name;
+      strg = "WARNING : Could not get value for label 'DetZside' in dictionary "+strm.str();
+      if(m_msgSvc) {
+	log << MSG::INFO << strg << endreq;
+      }
+      else{
+	std::cout << strg << std::endl;
+      }
+    }
+    return (0);
+  }
+  log << MSG::DEBUG << "[init_from_dictionary] > detzsideValue = "<< detzside_field_value() << endreq;
+
+
+  // Set up id for tower and layer's range prefix
+  // ---------------------------------------------
+  //   Note: negative value is good enough to get multirange since the
+  //   regions are symmetric in +/-eta
+
+  ExpandedIdentifier reg_id;
+  reg_id.add(caloValue);
+  reg_id.add(detzside_field_value());
+
+  Range prefix;
+  m_full_crate_range     = m_dict->build_multirange(reg_id, prefix, "crate");
+  m_full_module_range    = m_dict->build_multirange(reg_id, prefix, "module");
+  m_full_submodule_range = m_dict->build_multirange(reg_id, prefix, "submodule");
+  m_full_channel_range   = m_dict->build_multirange(reg_id, prefix, "channel");
+
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Crate range -> "
+      << (std::string)m_full_crate_range << endreq;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Module range -> "
+      << (std::string)m_full_module_range << endreq;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  SubModule range -> "
+      << (std::string)m_full_submodule_range << endreq;
+  log << MSG::DEBUG << "[initialize_from_dictionary] >  Channel range -> "
+      << (std::string)m_full_channel_range << endreq;
+
+
+  // Setup the hash tables
+  // --------------------------------------
+  if(init_hashes()) return (1);
+  return 0;
+}
+
+
+//=====================================================================================
+int TTOnlineID::get_expanded_id  (const HWIdentifier& id, ExpandedIdentifier& exp_id,
+				     const IdContext* context) const
+//=====================================================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  // We assume that the context is >= region
+  exp_id.clear();
+  exp_id << calo_field_value();
+  exp_id << detzside_field_value();
+  if(context && context->end_index() >= m_crate_index) {
+    exp_id << crate(id);
+    if(context->end_index() >= m_module_index) {
+      exp_id << module(id);
+      if(context->end_index() >= m_submodule_index) {
+				exp_id << submodule(id);
+				if(context->end_index() >= m_channel_index)
+					exp_id << channel(id);
+      }
+    }
+  }
+  return (0);
+}
+
+
+//=====================================================================================
+void TTOnlineID::channel_Id_checks   ( int crate, int module, int submodule, int channel  ) const throw(CaloID_Exception)
+//=====================================================================================
+{
+  // Fill expanded id
+  ExpandedIdentifier id(calo_exp());
+  id << detzside_field_value() << crate << module << submodule << channel;
+  if( id.last_error () != ExpandedIdentifier::none) {
+    std::string errorMessage =
+      "Error in TTOnlineID::channel_Id_checks(field values), did not build, " +
+      strformat ("crate: %d , module: %d, submodule: %d , channel: %d ",
+                 crate , module , submodule, channel);
+    throw CaloID_Exception(errorMessage , 2);
+  }
+  if (!m_full_channel_range.match(id)) {
+    std::string errorMessage = "[TTOnlineID]::channnelId() result is not OK: ID, range = "
+      + std::string(id) + " , " + (std::string)m_full_channel_range;
+    throw CaloID_Exception(errorMessage , 2);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier submoduleId, int channel ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = submoduleContext();
+    if (get_expanded_id(submoduleId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID = "
+	    + show_to_string(submoduleId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier moduleId, int submodule, int channel ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = moduleContext();
+    if (get_expanded_id(moduleId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(moduleId) result is not OK: ID = "
+	    + show_to_string(moduleId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << submodule << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(submoduleId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::channel_Id_checks   ( const HWIdentifier crateId, int module, int submodule, int channel ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+    ExpandedIdentifier expId;
+    IdContext context = crateContext();
+    if (get_expanded_id(crateId, expId, &context)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID = "
+	    + show_to_string(crateId) ;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+
+    expId << module << submodule << channel;
+    if (!m_full_channel_range.match(expId)) {
+	std::string errorMessage = "TTOnlineID::channel_Id_checks(crateId) result is not OK: ID, range = "
+	    + std::string(expId) + " , " + (std::string)m_full_channel_range;
+	throw CaloID_Exception(errorMessage , 99);
+    }
+}
+
+/* ================================================================*/
+void TTOnlineID::submodule_Id_checks( int crate, int module, int submodule ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate <<  module << submodule;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::submodule_Id_checks, values ok but did not build, "+
+      strformat ("crate: %d , module: %d , submodule: %d",
+                 crate , module, submodule);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_submodule_range.match(expId)) { std::string errorMessage = "TTOnlineID::submodule_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_submodule_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::module_Id_checks( int crate, int module ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate << module;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::module_Id_checks, values ok but did not build, " +
+      strformat ("crate: %d , module: %d", crate , module);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_module_range.match(expId)) { std::string errorMessage = "TTOnlineID::module_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_module_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+/* ================================================================*/
+void TTOnlineID::crate_Id_checks( int crate ) const throw(CaloID_Exception)
+/* ================================================================*/
+{
+  // Check that id is within allowed range
+  // Fill expanded id
+  ExpandedIdentifier expId(calo_exp());
+  expId << detzside_field_value() << crate;
+
+  if(  expId.last_error () != ExpandedIdentifier::none ){
+    std::string errorMessage =
+      "Error in TTOnlineID::crate_Id_checks, values ok but did not build, " +
+      strformat ("crate: %d", crate);
+    throw CaloID_Exception(errorMessage , 99);
+  }
+  if (!m_full_crate_range.match(expId)) { std::string errorMessage = "TTOnlineID::crate_Id_checks() result is not OK: ID, range = "
+      + std::string(expId) + " , " + (std::string)m_full_crate_range;
+    throw CaloID_Exception(errorMessage , 99);
+  }
+}
+
+
+//=========================================================
+int TTOnlineID::initLevelsFromDict(void)
+//=========================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  log << MSG::DEBUG  << "[initLevelsFromDict] (0) Entering routine... " << endreq;
+
+  if(!m_dict) {
+    log << MSG::INFO  << "TTOnlineID::initLevelsFromDict - dictionary NOT initialized "
+              << endreq ;
+    return (1);
+  }
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] (1) m_dict OK ... " << endreq;
+
+  // Find out which identifier field corresponds to each level.
+  // ----------------------------------------------------------
+  m_calo_index                = 999 ;
+  m_detzside_index            = 999 ;
+  m_crate_index               = 999 ;
+  m_module_index              = 999 ;
+  m_submodule_index           = 999 ;
+  m_channel_index             = 999 ;
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] (2) data member initialization OK ... "  << endreq;
+
+  // retrieve the calo tag from the DB
+  std::string tag = m_dict->dict_tag();
+  bool oldTag = ( tag.size()==0 || tag == "CaloIdentifier-DC3-05" || tag == "CaloIdentifier-LVL1-01");
+  log << MSG::DEBUG << "Calorimeter dict. DB tag= " << tag << endreq;
+
+  // Save index to a Online LVL1 region for unpacking - search with region name
+  IdDictRegion* reg = m_dict->find_region("PPM_Crate-00");
+  if (reg) {
+      m_l1online_regions_index = reg->m_index;}
+  else {
+    if(!oldTag) log << MSG::INFO  << "WARNING : TTOnlineID::initLevelsFromDict - unable to find 'PPM_Crate-00' region" << endreq;
+    return (0);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (3) region 'PPM_Crate-00' found OK ... " << m_l1online_regions_index << endreq;
+
+  // Look for Fields...
+  // ------------------
+  IdDictField* field = m_dict->find_field("subdet") ;
+  if (field) {
+    m_calo_index = field->m_index;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'Calo' field "
+              << endreq ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (4) field 'Calo' found OK "  << endreq;
+
+
+  field = m_dict->find_field("DetZside") ;
+  if (field) {
+    m_detzside_index = field->m_index ;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'DetZside' field "
+              << endreq ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (5) field 'DetZside' found OK "  << endreq;
+
+
+  field = m_dict->find_field("crate") ;
+  if (field) {
+    m_crate_index = field->m_index ;}
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'crate' field "
+              << endreq ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (6) field 'crate' found OK "  << endreq;
+
+  field = m_dict->find_field("module") ;
+  if (field) {
+    m_module_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'module' field "
+              << endreq ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (7) field 'module' found OK "  << endreq;
+
+  field = m_dict->find_field("submodule") ;
+  if (field) {
+    m_submodule_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'submodule' field " << endreq ;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (8) field 'submodule' found OK "  << endreq;
+
+  field = m_dict->find_field("channel") ;
+  if (field) {
+    m_channel_index = field->m_index ;
+  }
+  else {
+    log << MSG::INFO  <<  "TTOnlineID::initLevelsFromDict - unable to find 'channel' field " << endreq;
+    return (1);
+  }
+  log << MSG::DEBUG  << "[initLevelsFromDict] (9) field 'channel' found OK "  << endreq;
+
+
+  // Set the field implementation
+  // ------------------------------
+  const IdDictRegion& region = *m_dict->m_regions[m_l1online_regions_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] (10) found levels: " << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > subdet         " << m_calo_index           << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > detzside       " << m_detzside_index  << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > crate          " << m_crate_index          << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > module         " << m_module_index         << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > submodule      " << m_submodule_index      << endreq ;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > channel        " << m_channel_index        << endreq ;
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...fields implementation... " << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_calo_index " << endreq;
+  m_calo_impl          = region.m_implementation[m_calo_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_det_side_index " << endreq;
+  m_calo_detzside_impl = region.m_implementation[m_detzside_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_crate_index " << endreq;
+  m_crate_impl     = region.m_implementation[m_crate_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_module_index " << endreq;
+  m_module_impl     = region.m_implementation[m_module_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_submodule_index " << endreq;
+  m_submodule_impl   = region.m_implementation[m_submodule_index];
+  log << MSG::DEBUG  << "[initLevelsFromDict] > ...implementation: m_channel_index " << endreq;
+  m_channel_impl   = region.m_implementation[m_channel_index];
+
+  log << MSG::DEBUG  << "[initLevelsFromDict] (11) decode index and bit fields for each level: " << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > calo          " << m_calo_impl.show_to_string() << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > detzside  "  << m_calo_detzside_impl.show_to_string() << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > crate         " << m_crate_impl.show_to_string()  << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > module        " << m_module_impl.show_to_string() << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > submodule     " << m_submodule_impl.show_to_string()  << endreq;
+  log << MSG::DEBUG  << "[initLevelsFromDict] > channel       " << m_channel_impl.show_to_string()  << endreq;
+
+  return(0) ;
+}
+
+
+//=====================================================
+int  TTOnlineID::init_hashes(void)
+//=====================================================
+{
+  MsgStream log(m_msgSvc, "TTOnlineID" );
+  std::stringstream strm1;
+  std::stringstream strm2;
+  std::stringstream strm3;
+  std::string strg1;
+  std::string strg2;
+  std::string strg3;
+
+  // Crate hash
+  // -----------
+	{
+	  m_crateHashMax = m_full_crate_range.cardinality();
+	  m_crate_vec.resize(m_crateHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_crate_range.size(); ++i) {
+	    const Range& range = m_full_crate_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier cra_id = crateId( exp_id[m_crate_index] ) ;
+
+	      if(!(ids.insert(cra_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(cra_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endreq;
+		  log  << MSG::ERROR << strg3 << endreq;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_crateHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_crateHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endreq;
+		log << MSG::ERROR << strg2 << endreq;
+		log << MSG::ERROR << strg3 << endreq;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_crate_vec.size(); ++first) {
+	    m_crate_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Crate_size= " << m_crate_vec.size() << endreq;
+	}
+
+  // Module hash
+  // -----------
+	{
+	  m_moduleHashMax = m_full_module_range.cardinality();
+	  m_module_vec.resize(m_moduleHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_module_range.size(); ++i) {
+	    const Range& range = m_full_module_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier mod_id = moduleId(exp_id[m_crate_index], exp_id[m_module_index] ) ;
+
+	      if(!(ids.insert(mod_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(mod_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endreq;
+		  log  << MSG::ERROR << strg3 << endreq;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_moduleHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_moduleHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endreq;
+		log << MSG::ERROR << strg2 << endreq;
+		log << MSG::ERROR << strg3 << endreq;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_module_vec.size(); ++first) {
+	    m_module_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Module_size= " << m_module_vec.size() << endreq;
+	}
+
+  // SubModule hash
+  // -----------
+	{
+	  m_submoduleHashMax = m_full_submodule_range.cardinality();
+	  m_submodule_vec.resize(m_submoduleHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_submodule_range.size(); ++i) {
+	    const Range& range = m_full_submodule_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier submod_id = submoduleId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index] ) ;
+
+	      if(!(ids.insert(submod_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(submod_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endreq;
+		  log  << MSG::ERROR << strg3 << endreq;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  //std::cout << strg2 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_submoduleHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_submoduleHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endreq;
+		log << MSG::ERROR << strg2 << endreq;
+		log << MSG::ERROR << strg3 << endreq;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_submodule_vec.size(); ++first) {
+	    m_submodule_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Submodule_size= " << m_submodule_vec.size() << endreq;
+	}
+
+  // Channel hash
+  // -----------
+	{
+	  m_channelHashMax = m_full_channel_range.cardinality();
+	  m_channel_vec.resize(m_channelHashMax);
+	  unsigned int nids = 0;
+	  std::set<HWIdentifier> ids;
+	  for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+	    const Range& range = m_full_channel_range[i];
+	    Range::const_identifier_factory first = range.factory_begin();
+	    Range::const_identifier_factory last  = range.factory_end();
+	    for (; first != last; ++first) {
+	      const ExpandedIdentifier& exp_id = (*first);
+	      HWIdentifier chan_id = channelId(exp_id[m_crate_index], exp_id[m_module_index], exp_id[m_submodule_index], exp_id[m_channel_index]) ;
+
+	      if(!(ids.insert(chan_id)).second){
+		strm1 << nids;
+		strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
+		strm3 << show_to_string(chan_id);
+		strg3 = " expanded Id= "+strm3.str();
+		if(m_msgSvc){
+		  log  << MSG::ERROR << strg1 << endreq;
+		  log  << MSG::ERROR << strg3 << endreq;
+		}
+		else{
+		  std::cout << "TTOnlineID::Error" << strg1 << std::endl;
+		  std::cout << strg3 << std::endl;
+		}
+	      }
+	      nids++;
+	    }
+	  }
+	  if(ids.size() != m_channelHashMax) {
+	    strm1 << ids.size();
+	    strm2 << m_channelHashMax;
+	    strg1 = "[init_hashes] >";
+	    strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
+	    strg3 = " hash max "+strm2.str();
+	    if(m_msgSvc)
+	      {
+		log << MSG::ERROR << strg1 << endreq;
+		log << MSG::ERROR << strg2 << endreq;
+		log << MSG::ERROR << strg3 << endreq;
+	      }
+	    else
+	      {
+		std::cout << "TTOnlineID::" << strg1 << std::endl;
+		std::cout << "Error" << strg2 << std::endl;
+		std::cout << strg3 << std::endl;
+	      }
+	    return (1);
+	  }
+
+	  nids=0;
+	  std::set<HWIdentifier>::const_iterator first = ids.begin();
+	  std::set<HWIdentifier>::const_iterator last  = ids.end();
+	  for (;first != last && nids < m_channel_vec.size(); ++first) {
+	    m_channel_vec[nids] = (*first) ;
+	    nids++;
+	  }
+	  log << MSG::DEBUG << "[init_hashes()] > Channel_size= " << m_channel_vec.size() << endreq;
+	}
+  return (0);
+}
+
+
+
diff --git a/Calorimeter/CaloIdentifier/src/TileID.cxx b/Calorimeter/CaloIdentifier/src/TileID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..4268dcf632143666eb8a5c98f75ff8fd83406e07
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/TileID.cxx
@@ -0,0 +1,57 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Access to Tile Calorimeter raw data
+ -----------------------------------------
+ Copyright (C) 1998 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>   $Id: TileID.cxx,v 1.23 2008-07-10 00:55:04 solodkov Exp $
+//<version>     $Name: not supported by cvs2svn $
+
+
+#include "CaloIdentifier/TileID.h"
+#include "IdDict/IdDictDefs.h"
+#include "Identifier/IdentifierHash.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <algorithm>
+#include <iostream>
+#include <stdio.h>
+#include <assert.h>
+#include <stdexcept>
+
+
+TileID::TileID( void ) 
+  : Tile_Base_ID ("TileID", false)
+{
+}
+
+int TileID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+{
+  MsgStream log(m_msgSvc, "TileID" );
+  
+  std::string strg = "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (Tile_Base_ID::initialize_base_from_dictionary(dict_mgr, "tile"))
+    return (1);
+
+  return 0;
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/src/TileID_Exception.cxx b/Calorimeter/CaloIdentifier/src/TileID_Exception.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..86ce4c2b0083b171f4a554252f0f74ff6d7a3343
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/TileID_Exception.cxx
@@ -0,0 +1,19 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "CaloIdentifier/TileID_Exception.h"
+
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+
+TileID_Exception::operator std::string () 
+
+{
+  std::ostringstream text;
+
+  text << "TileID_Exception - Error code: " << this->code() << std::endl;
+  text << this->message() ;
+  return text.str();
+}
diff --git a/Calorimeter/CaloIdentifier/src/TileNeighbour.cxx b/Calorimeter/CaloIdentifier/src/TileNeighbour.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..10b380952d6a4740e100f5691861bf3bbad8129f
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/TileNeighbour.cxx
@@ -0,0 +1,709 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Access to Tile Calorimeter raw data
+ -----------------------------------------
+ Copyright (C) 2003 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>   $Id: TileNeighbour.cxx,v 1.13 2008-12-13 04:57:11 ssnyder Exp $
+//<version>     $Name: not supported by cvs2svn $
+
+//<<<<<< INCLUDES                                                       >>>>>>
+
+#include "CaloIdentifier/TileNeighbour.h"
+#include "CaloIdentifier/TileID.h"
+#include "Identifier/Identifier.h"
+#include "Identifier/IdentifierHash.h"
+
+#include "PathResolver/PathResolver.h"
+#include "GaudiKernel/MsgStream.h"
+
+#include <algorithm>
+#include <iostream>
+#include <fstream>
+#include <iomanip>
+
+#include <string.h>
+
+using namespace LArNeighbours;
+
+//<<<<<< PRIVATE DEFINES                                                >>>>>>
+
+#define MAX_TOKEN_SIZE 256
+
+//<<<<<< PRIVATE CONSTANTS                                              >>>>>>
+//<<<<<< PRIVATE TYPES                                                  >>>>>>
+
+typedef struct
+{
+  Identifier id;
+  IdentifierHash hash_id;
+  short int index;
+
+  std::string name;
+  std::vector<std::string> neighbours[4];
+  std::vector<int> neighbours_ind[4];
+
+} Cell;
+
+//<<<<<< PRIVATE VARIABLE DEFINITIONS                                   >>>>>>
+//<<<<<< PUBLIC VARIABLE DEFINITIONS                                    >>>>>>
+//<<<<<< CLASS STRUCTURE INITIALIZATION                                 >>>>>>
+//<<<<<< PRIVATE FUNCTION DEFINITIONS                                   >>>>>>
+//<<<<<< PUBLIC FUNCTION DEFINITIONS                                    >>>>>>
+//<<<<<< MEMBER FUNCTION DEFINITIONS                                    >>>>>>
+
+TileNeighbour::TileNeighbour(void) 
+  : m_debug(0)
+  , m_length(0)
+  , m_maxHash(0)
+{
+}
+
+TileNeighbour::~TileNeighbour(void) 
+{
+}
+
+int TileNeighbour::initialize(const Tile_Base_ID* tileID, std::string filename)
+{
+  MsgStream log(tileID->m_msgSvc, "TileNeighbour" );
+  MSG::Level logLevel = log.level();
+  if (logLevel==MSG::VERBOSE) m_debug = 1;
+  if (logLevel< MSG::VERBOSE) m_debug = 2;
+
+  // Find the full path to filename:
+  std::string file = PathResolver::find_file (filename, "DATAPATH");
+  log << MSG::INFO << "Reading file  " << file << endreq;
+  std::ifstream fin;
+  if (file != "") {
+    fin.open(file.c_str());
+  }
+  else {
+    log << MSG::ERROR << "Could not find input file " << filename <<  endreq;
+    return 1;
+  }
+  if (fin.bad()) {
+    log << MSG::ERROR << "Could not open file " << file << endreq;
+    return 1;
+  }
+
+  //
+  // Parse the input file
+  //
+  unsigned int line=0, record=0, error=0;              // file line number, record number
+  char token[MAX_TOKEN_SIZE];                 // input token
+
+  log << MSG::VERBOSE << "Parsing input file:" << endreq;
+    
+  std::vector<Cell> allCells;
+
+  while ( fin >> token ) {
+    line++;                                 // count input lines
+    if ( token[0] == '#' || token[0] == '!' || ( token[0] == '/' && token[1] == '/' ) ) {
+      fin.ignore(MAX_TOKEN_SIZE, '\n'); 
+      continue;                           // skip comments
+    }
+
+    unsigned int toklen = strlen(token) - 1 ;
+    token[toklen] = 0; // remove ":" at the end
+    log << MSG::VERBOSE << token << "  ";
+
+    Cell newCell;
+    newCell.name = token;
+    for (unsigned int i=0; i<4; ++i) newCell.neighbours[i].clear();
+    
+    unsigned int column=0;
+    while ( fin >> token) {
+      toklen = strlen(token) - 1;
+      bool lastelem = ( token[toklen] == ';' );
+      token[toklen] = 0; // remove "," or ";"
+      log << token << "  ";
+      if (strcmp(token,"none"))
+        newCell.neighbours[column].push_back(token);
+      if (lastelem) {
+        ++column;
+        if (4 == column) break;
+      }
+    }
+
+    fin.ignore(MAX_TOKEN_SIZE, '\n'); // skip to eol
+
+    log << endreq;
+    allCells.push_back(newCell);
+    record++;				     // count input records
+    
+  } // end while fin
+ 
+  fin.close();
+
+  log << MSG::DEBUG << "Processed " << line << " lines, " << record << " records";
+  if ( error > 0 ) log << ", " << error << " of them are ignored." << endreq;
+  else log << "." << endreq;
+
+  unsigned int curSize = allCells.size();
+  for (unsigned int i=0; i<curSize; ++i) {
+
+    std::string::size_type pos = allCells[i].name.find( "-", 0 );
+    if ( std::string::npos != pos ) { // it is not D0 cell
+
+      Cell newCell;
+      std::string tmpName;
+      tmpName = allCells[i].name;
+      tmpName.replace(pos,1,"+");
+      newCell.name = tmpName;
+
+      for (unsigned int j=0; j<4; ++j) {
+        unsigned int j1 = (j<2) ? 1-j : j; // swap prev and next eta
+        unsigned int nb_size=allCells[i].neighbours[j].size();
+        for (unsigned int k=0; k<nb_size; ++k) {
+          tmpName = allCells[i].neighbours[j][k];
+          pos = tmpName.find( "-", 0 );
+          if ( std::string::npos != pos ) {
+            tmpName.replace(pos,1,"+");
+          } else {
+            pos = tmpName.find( "+", 0 );
+            if ( std::string::npos != pos ) {
+              tmpName.replace(pos,1,"-");
+            }
+          }
+          newCell.neighbours[j1].push_back(tmpName);
+        }
+      }
+      allCells.push_back(newCell);
+    }
+  }
+
+  unsigned int nids = 0;
+  unsigned int max_phi = 0, phi=0;
+  std::set<std::pair<IdentifierHash,int> > ids;
+  ids.clear();
+  for (unsigned int i = 0; i < tileID->m_full_cell_range.size(); ++i) {
+    const Range& range = tileID->m_full_cell_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      phi = exp_id[tileID->m_MODULE_INDEX];
+      if (phi > max_phi) max_phi = phi;
+      Identifier id = tileID->cell_id (  exp_id[tileID->m_SECTION_INDEX],
+                                         exp_id[tileID->m_SIDE_INDEX], 
+                                         exp_id[tileID->m_MODULE_INDEX], 
+                                         exp_id[tileID->m_TOWER_INDEX],
+                                         exp_id[tileID->m_SAMPLE_INDEX]);
+      IdentifierHash hashid = tileID->channels().hash (id);
+      if(!(ids.insert(std::make_pair(hashid,phi))).second){
+        log << MSG::ERROR << "init_hashes "
+            << " Error: duplicated id for cell id. nids= " << nids
+            << " compact Id  " << tileID->show_to_string(id)
+            << endreq;
+      }
+      nids++;
+    }
+  }
+  ++max_phi;
+  m_maxHash = tileID->m_full_cell_range.cardinality();
+  m_length = m_maxHash / max_phi;
+  if ( fill_phi_vec(ids, m_maxHash, max_phi, log) ) {
+    m_maxHash = m_length = 0;
+    return (1);
+  }
+  
+  curSize = allCells.size();
+
+  std::string nb_name[4] = {"Prev_eta_", "Next_eta_", "Prev_smp_", "Next_smp_"};
+  
+  for (unsigned int i=0; i<curSize; ++i) {
+    get_id(allCells[i].name,allCells[i].id,tileID);
+    allCells[i].hash_id = tileID->channels().hash (allCells[i].id);
+    for (unsigned int ii=0; ii<m_length; ++ii) {
+      if ( m_hashid_vec[ii] == allCells[i].hash_id) {
+        allCells[i].index = ii;
+        break;        
+      }
+    }
+
+    for (unsigned int j=0; j<4; ++j) {
+      unsigned int nb_size=allCells[i].neighbours[j].size();
+      allCells[i].neighbours_ind[j].resize(nb_size);
+      for (unsigned int k=0; k<nb_size; ++k) {
+        for (unsigned int ii=0; ii<curSize; ++ii) {
+          if ( allCells[ii].name == allCells[i].neighbours[j][k]) {
+            allCells[i].neighbours_ind[j][k] = ii;
+            if (m_debug) {
+              log << MSG::VERBOSE << allCells[i].name << " "
+                  << tileID->to_string(allCells[i].id,-2) << " "
+                  << allCells[i].hash_id << " "
+                  << allCells[i].index << " "
+                  << nb_name[j] << k << " "
+                  << allCells[i].neighbours[j][k] << " "
+                  << allCells[i].neighbours_ind[j][k] << " "
+                  << endreq;
+            }
+            break;
+          }
+        }
+      }
+    }
+  }
+  
+  m_prev_eta.resize(m_length);
+  m_next_eta.resize(m_length);
+  m_prev_samp.resize(m_length);
+  m_next_samp.resize(m_length);
+  m_prev_samp_wide.resize(m_length);
+  m_next_samp_wide.resize(m_length);
+
+  std::vector<short int> neighbours[4];
+  for (unsigned int i=0; i<curSize; ++i) {
+    unsigned int ind = allCells[i].index;
+
+    for (unsigned int j=0; j<4; ++j) {
+      unsigned int nb_size=allCells[i].neighbours[j].size();
+      neighbours[j].resize(nb_size);
+      for (unsigned int k=0; k<nb_size; ++k) {
+        neighbours[j][k] = allCells[allCells[i].neighbours_ind[j][k]].index;
+      }
+    }
+
+    initialize_prev_eta (ind,neighbours[0]);
+    initialize_next_eta (ind,neighbours[1]);
+    initialize_prev_samp(ind,neighbours[2]);
+    initialize_next_samp(ind,neighbours[3]);
+
+    // build wide prev/next sampling for 3D neighbours with corners
+
+    // tower and side of current cell
+    int sd = tileID->side(allCells[i].id);
+    int tw = tileID->tower(allCells[i].id);
+    int sm = tileID->sample(allCells[i].id);
+    int se = tileID->section(allCells[i].id);
+    
+    for (unsigned int j=2; j<4; ++j) {
+      // find eta neighbours for all cells in prev/next sampling
+      // and keep only those which are not too far away
+      unsigned int nb_size=allCells[i].neighbours[j].size(); // how many cells in prev/next sampling
+      for (unsigned int k=0; k<nb_size; ++k) { // loop over them
+        unsigned int new_i = allCells[i].neighbours_ind[j][k]; // this is ind of cell in other sampling
+        for (unsigned int new_j=0; new_j<2; ++new_j) { // loop over prev/next eta for new cell
+          unsigned int new_nb_size=allCells[new_i].neighbours[new_j].size();
+          for (unsigned int new_k=0; new_k<new_nb_size; ++new_k) { // all new neighbours
+            unsigned int new_nb_i = allCells[new_i].neighbours_ind[new_j][new_k];
+            short new_nb_index = allCells[new_nb_i].index; // hash index of new neighbour
+            int n=neighbours[j].size()-1;
+            for ( ; n>-1; --n) { // check for duplicates
+              if (neighbours[j][n] == new_nb_index)
+                break;
+            }
+            if (n<0) { // new cell, check how far is it
+              int new_sd = tileID->side(allCells[new_nb_i].id);
+              int new_tw = tileID->tower(allCells[new_nb_i].id);
+              int new_sm = tileID->sample(allCells[new_nb_i].id);
+              int new_se = tileID->section(allCells[new_nb_i].id);
+              if ( ( new_sd != sd && new_tw == tw ) || // only tower=0 from other side
+                   ( new_sd == sd && (                            // the same eta side
+                     ( new_se == se && abs(new_tw - tw) < 3 ) ||  // withit one detector
+                     ( new_se != se && (                          // when we jump over crack
+                       ( new_sm == sm+1 && abs(new_tw - tw) < 3 ) || // next sampling
+                       ( new_sm != sm+1 && abs(new_tw - tw) < 4 ) ))))) { // previous sampling
+                neighbours[j].push_back(new_nb_index);  // not too far away, take it
+              }
+            }
+          }
+        }
+      }
+    }
+    
+    initialize_prev_samp_wide(ind,neighbours[2]);
+    initialize_next_samp_wide(ind,neighbours[3]);
+  }
+  
+  if (m_debug) {
+
+    IdContext context = tileID->cell_context();
+    std::vector<IdentifierHash> nb_list;
+
+    unsigned int hash_max = tileID->cell_hash_max();
+    for (unsigned int i=0; i<hash_max; ++i) {
+      
+      Identifier id;
+      tileID->get_id (i, id, &context);
+      if ( tileID->module(id) != 0 ) continue;
+
+      IdentifierHash hash_id=i;
+      nb_list.clear(); nb_list.push_back(hash_id);
+      print_list(nb_list, tileID, &context, log, "\nCell     "," : ");
+
+      tileID->get_neighbours(hash_id, prevInPhi, nb_list);
+      print_list(nb_list, tileID, &context, log, "Prev phi "," ;  ");
+ 
+      tileID->get_neighbours(hash_id, nextInPhi,  nb_list);
+      print_list(nb_list, tileID, &context, log, "Next phi "," ;  ");
+
+      tileID->get_neighbours(hash_id, prevInEta,  nb_list);
+      print_list(nb_list, tileID, &context, log, "Prev eta "," ;  ");
+
+      tileID->get_neighbours(hash_id, nextInEta,  nb_list);
+      print_list(nb_list, tileID, &context, log, "Next eta "," ;  ");
+
+      tileID->get_neighbours(hash_id, prevInSamp, nb_list);
+      print_list(nb_list, tileID, &context, log, "Prev smp "," ;  ");
+
+      tileID->get_neighbours(hash_id, nextInSamp, nb_list);
+      print_list(nb_list, tileID, &context, log, "Next smp "," ;  ");
+
+      tileID->get_neighbours(hash_id, faces2D, nb_list);
+      print_list(nb_list, tileID, &context, log, "Face 2D  "," ;  ");
+
+      tileID->get_neighbours(hash_id, corners2D, nb_list);
+      print_list(nb_list, tileID, &context, log, "Corn 2D  "," ;  ");
+
+      tileID->get_neighbours(hash_id, all2D, nb_list);
+      print_list(nb_list, tileID, &context, log, "All  2D  "," ;  ");
+
+      tileID->get_neighbours(hash_id, all3D, nb_list);
+      print_list(nb_list, tileID, &context, log, "All  3D  "," ;  ");
+
+      tileID->get_neighbours(hash_id, all3DwithCorners, nb_list);
+      print_list(nb_list, tileID, &context, log, "All  3DC "," ;  ");
+    
+      tileID->get_neighbours(hash_id, super3D, nb_list);
+      print_list(nb_list, tileID, &context, log, "Super 3D "," ;  ");
+    
+    }
+  }
+  
+  return (0);
+}
+
+int TileNeighbour::fill_phi_vec  (std::set<std::pair<IdentifierHash,int> > & ids, 
+                                  unsigned int hash_max, unsigned int max_phi, MsgStream & log)
+{
+
+  if(ids.size() != hash_max) {
+    log << MSG::ERROR << "fill_phi_vec "
+        << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+        << " hash max " << hash_max
+        << endreq;
+    return (1);
+  }
+
+  m_phid_index.resize(hash_max);
+  m_cell_index.resize(hash_max);
+  m_hashid_vec.resize(hash_max);
+
+  int dphi = hash_max / max_phi; // number of Ids in one phi-slice
+
+  int ind_min=0, ind_max=-1, phi, phi_prev=-1, index=0;
+
+  std::set<std::pair<IdentifierHash,int> >::const_iterator first = ids.begin();
+  std::set<std::pair<IdentifierHash,int> >::const_iterator last  = ids.end();
+
+  for (;first != last; ++first) {
+    phi = (*first).second;
+    if (phi != phi_prev) {
+      if (0 == phi) {
+        ++ind_max;
+        ind_min = ind_max;
+      }
+      index = ind_min + dphi * phi;
+      phi_prev = phi;
+    } else {
+      if (0 == phi) {
+        ++ind_max;
+      }
+      ++index;
+    }
+    IdentifierHash hash_id = (*first).first;
+    m_hashid_vec[index]    = hash_id ;
+    m_phid_index[hash_id]  = dphi*phi;
+    m_cell_index[hash_id]  = index - dphi*phi;
+  }
+
+  return (0);
+}
+
+int TileNeighbour::initialize_prev_eta(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_prev_eta [ind] = all_cells;
+  return (0);
+}
+
+int TileNeighbour::initialize_next_eta(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_next_eta [ind] = all_cells;
+  return (0);
+}
+
+int TileNeighbour::initialize_prev_samp(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_prev_samp [ind] = all_cells;
+  return (0);
+}
+
+int TileNeighbour::initialize_next_samp(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_next_samp [ind] = all_cells;
+  return (0);
+}
+
+int TileNeighbour::initialize_prev_samp_wide(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_prev_samp_wide [ind] = all_cells;
+  std::sort(m_prev_samp_wide[ind].begin(),m_prev_samp_wide[ind].end());
+  return (0);
+}
+
+int TileNeighbour::initialize_next_samp_wide(unsigned int ind,const std::vector<short int> & all_cells)
+{
+  m_next_samp_wide [ind] = all_cells;
+  std::sort(m_next_samp_wide[ind].begin(),m_next_samp_wide[ind].end());
+  return (0);
+}
+
+int TileNeighbour::prev_phi  (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+  if ( phid == 0 ) phid = m_maxHash;
+  phid -= m_length;
+  
+  neighbourList.push_back(m_hashid_vec[phid+cell]);
+  
+  return 1;
+}
+
+int TileNeighbour::next_phi  (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+  phid += m_length;
+  if ( phid == m_maxHash ) phid = 0;
+  
+  neighbourList.push_back(m_hashid_vec[phid+cell]);
+  
+  return 1;
+}
+
+int TileNeighbour::prev_eta  (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_prev_eta[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_prev_eta[cell][i]]);
+  }
+
+  return size;
+}
+
+int TileNeighbour::next_eta  (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_next_eta[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_next_eta[cell][i]]);
+  }
+
+  return size;
+}
+
+int TileNeighbour::prev_samp (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_prev_samp[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_prev_samp[cell][i]]);
+  }
+
+  return size;
+}
+
+int TileNeighbour::next_samp (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_next_samp[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_next_samp[cell][i]]);
+  }
+
+  return size;
+}
+
+int TileNeighbour::prev_samp_wide (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_prev_samp_wide[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_prev_samp_wide[cell][i]]);
+  }
+
+  return size;
+}
+
+int TileNeighbour::next_samp_wide (const IdentifierHash & id,
+                              std::vector<IdentifierHash> & neighbourList)    const
+{
+  unsigned int phid = m_phid_index[id];
+  unsigned int cell = m_cell_index[id];
+
+  unsigned int size = m_next_samp_wide[cell].size();
+  for (unsigned int i=0; i<size; ++i) {
+    neighbourList.push_back(m_hashid_vec[phid+m_next_samp_wide[cell][i]]);
+  }
+
+  return size;
+}
+
+void TileNeighbour::get_id(std::string & strName, Identifier & id, const Tile_Base_ID* tileID)
+{
+    char * name = new char[strName.size()+1];
+    strcpy(name,strName.data());
+    int se;
+    int sd;
+    int sm;
+    int tw;
+
+    std::string::size_type pos = strName.find( "-", 0 );
+    if ( std::string::npos != pos ) sd = -1; else sd = 1;
+
+    sscanf(name+2,"%d",&tw);
+    if (tw<0) tw *= -1;
+
+    switch ( name[0] ) {
+        case 'a': case 'A': sm = 0; tw -= 1; 
+            if (tw<10) se = 1; else se = 2;
+            break;
+        case 'b': case 'B': sm = 1; tw -= 1;
+            if (tw<10) se = 1; else se = 2;
+            break;
+        case 'c': case 'C': sm = 1; tw -= 1;
+            se = 3;
+            break;
+        case 'd': case 'D': sm = 2; tw *= 2;
+            if (tw<10) se = 1; else se = 2;
+            if (tw==8)  se = 3;
+            break;
+        case 'e': case 'E': sm = 3; 
+            switch ( tw ) {
+                case 1: tw = 10; break;
+                case 2: tw = 11; break;
+                case 3: tw = 13; break;
+                case 4: tw = 15; break;
+            }
+            se = 3;
+            break;
+        case 's': case 'S': sm = 0; tw -= 1; 
+            if (tw<9) se = 1; else se = 2;
+            break;
+        case 'v': case 'V': sm = 2; tw *= 2;
+            if (tw<10) se = 1; else se = 2;
+            break;
+        default: se = 0; sm = -1; tw = -1; break;
+    }
+
+    id = tileID->cell_id(se,sd,0,tw,sm);
+
+    delete[] name;
+}
+
+void TileNeighbour::get_name(Identifier & id, std::string & strSection,
+                             int & module, std::string & strCell, 
+                             const Tile_Base_ID* tileID, MsgStream & log, const char * end)
+{
+    int section  = tileID->section  (id);
+    int side     = tileID->side     (id);
+        module   = tileID->module   (id);
+    int tower    = tileID->tower    (id);
+    int sample   = tileID->sample   (id);
+    bool supercell = tileID->is_supercell(id);
+
+    switch (section) {
+    case  0: strSection = "Online"; break;
+    case  1: strSection = "Barrel"; break;
+    case  2: strSection = "Ext.Barrel"; break;
+    case  3: strSection = (sample < 3) ? "ITC": "Gap.Scin"; break;
+    default: strSection = "Unknown";
+    }
+
+    int  tw=0;
+    char sd = (side<0) ? '-' : '+';
+    char sm=0,s1=0;
+
+    switch (sample) {
+    case 0: sm=(supercell?'S':'A');
+            tw=tower+1; 
+            break;
+    case 1: sm='B';
+            tw=tower+1;
+            if (tw<9) s1='C';
+            if (tw==10) sm='C';
+            break;
+    case 2: sm=(supercell?'V':'D');
+            tw=tower/2;
+            if (tw==0) {
+              if (sd=='+') sd='*';
+              else sd='0';
+            }
+            break;
+    case 3: sm='E'; 
+            tw=(tower-7)/2;
+            break;
+    }
+      
+    char name[5];
+    if (s1>0) snprintf(name,sizeof(name),"%c%c%c%d",sm,s1,sd,tw);
+    else      snprintf(name,sizeof(name),"%c%c%d",  sm,sd,tw);
+    strCell = name;
+
+    if (end) 
+      log << tileID->to_string(id,-2) << " " 
+          << strSection << " " << module << " " << strCell << end;
+}
+
+void TileNeighbour::print_list(std::vector<IdentifierHash> & nb_list, 
+                               const Tile_Base_ID* tileID, 
+                               const IdContext* context,
+                               MsgStream & log,
+                               const char * pref,
+                               const char * suff)
+{
+  Identifier id;
+  int module;
+  std::string strCell;
+  std::string strSection;
+
+  std::sort(nb_list.begin(), nb_list.end());
+  unsigned int size=nb_list.size();
+  log << MSG::VERBOSE << pref << "(" << size << ")  ";
+//  size = strlen(pref) + 4 + ((size)<10 ? 1 : 2);
+//  char *space = new char[size+1];
+//  memset(space,32,size);
+//  space[size]=0;
+  for (unsigned int j=0; j<size; ++j) {
+    log << MSG::VERBOSE << endreq;
+    log << MSG::VERBOSE << "\t";
+    tileID->get_id (nb_list[j], id, context);
+    get_name(id,strSection,module,strCell,tileID,log,suff);
+  }
+  log << endreq;
+//  delete [] space;
+}
diff --git a/Calorimeter/CaloIdentifier/src/TileTBID.cxx b/Calorimeter/CaloIdentifier/src/TileTBID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..4a36a4e7d25efaed97aed587f6a4f23798ede8e6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/TileTBID.cxx
@@ -0,0 +1,731 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/***************************************************************************
+ Access to Tile Calorimeter TB data
+ -----------------------------------------
+ Copyright (C) 1998 by ATLAS Collaboration
+ ***************************************************************************/
+
+//<doc><file>	$Id: TileTBID.cxx,v 1.1 2009-03-30 11:19:28 tsulaia Exp $
+//<version>	$Name: not supported by cvs2svn $
+
+#include "CaloIdentifier/TileTBID.h"
+#include "IdDict/IdDictDefs.h"
+#include "Identifier/IdentifierHash.h"
+#include "CxxUtils/StrFormat.h"
+#include "GaudiKernel/MsgStream.h"
+
+#include <algorithm>
+#include <iostream>
+#include <stdio.h>
+#include <assert.h>
+
+using CxxUtils::strformat;
+
+
+TileTBID::TileTBID( void ) 
+  : m_tile_region_index(0)
+    , m_SYSTEM_INDEX(999)
+    , m_SECTION_INDEX(999)
+    , m_TYPE_INDEX(999)
+    , m_MODULE_INDEX(999)
+    , m_CHANNEL_INDEX(999)
+    , m_dict(0)
+    , m_type_hash_max(0)
+    , m_module_hash_max(0)
+    , m_channel_hash_max(0)
+{
+}
+
+TileTBID::~TileTBID(void) 
+{
+}
+
+//
+// TileTBID methods
+//
+std::string
+TileTBID::to_string( const Identifier & id, int level ) const
+{
+  IdContext context;
+  switch (level) {
+    case 1: case -3:
+    case 2: case -2: context = type_context(); break;
+    case 3: case -1: context = module_context(); break;
+    case 4: case  0: context = channel_context(); break;
+  default:
+    return "TileTBID::to_string - unknown context";
+  }    
+      
+  ExpandedIdentifier exp_id;
+  if ( get_expanded_id(id,exp_id,&context) ) {
+    return "TileTBID::to_string - can not expand ID";
+  } else {
+    return (std::string)(exp_id);
+  }  
+}
+
+//
+// get methods
+//
+int
+TileTBID::get_field ( const Identifier & id, size_type index ) const
+{
+  int field = 0;
+  if(!m_dict->unpack(id, 0, index, m_tile_region_index, field)) {
+    return field;
+  } else {
+    return 0;
+  }
+}
+
+//
+// check methods
+//
+bool               
+TileTBID::is_tiletb (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( section(id) == TileTBID::TILE_TESTBEAM );
+    
+    return result;
+}
+
+//
+// TileCal TB ID
+//
+Identifier
+TileTBID::tiletb_id     ()      const
+{
+    Identifier compactID(m_base_tile_type);
+    return compactID;
+}
+
+//
+// Build type & module id
+//
+Identifier
+TileTBID::type_id       ( int type )      const throw(TileID_Exception)
+{
+#ifndef NDEBUG
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << TileTBID::TILE_TESTBEAM << type;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in TileTBID::type_id , values ok but did not build, " +
+              strformat ("testbeam: %d, type: %d ",
+                         TileTBID::TILE_TESTBEAM, type);
+	    throw TileID_Exception(errorMessage , 2);
+	}
+
+	if (!m_full_type_range.match(expId)) { 
+	    std::string errorMessage = "TileTBID::type_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_type_range;
+	    throw TileID_Exception(errorMessage , 2);
+	}
+    }
+#endif
+
+    Identifier compactID(m_base_tile_type);
+    m_type_impl.pack	(type,compactID);
+
+    return (compactID);
+}
+
+Identifier
+TileTBID::module_id       ( int type, int module )       const throw(TileID_Exception)
+{
+#ifndef NDEBUG
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << TileTBID::TILE_TESTBEAM << type << module;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in TileTBID::module_id , values ok but did not build, " +
+              strformat ("testbeam: %d, type: %d, module: %d ",
+                         TileTBID::TILE_TESTBEAM, type, module);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_module_range.match(expId)) { 
+	    std::string errorMessage = "TileTBID::module_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_type_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+#endif
+
+    Identifier compactID(m_base_tile_type);
+    m_type_impl.pack	(type,compactID);
+    m_module_impl.pack	(module,compactID);
+
+    return (compactID);
+}
+
+//
+// Build channel id
+//
+Identifier
+TileTBID::channel_id ( int type, int module, int channel ) const throw(TileID_Exception)
+{
+#ifndef NDEBUG
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << TileTBID::TILE_TESTBEAM << type << module << channel;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in TileTBID::channel_id , values ok but did not build, " +
+              strformat ("testbeam: %d, type: %d, module: %d, channel: %d ",
+                         TileTBID::TILE_TESTBEAM, type, module, channel);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_channel_range.match(expId)) { 
+	    std::string errorMessage = "TileTBID::channel_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_type_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+#endif
+
+    Identifier compactID(m_base_tile_type);
+    m_type_impl.pack	(type,compactID);
+    m_module_impl.pack	(module,compactID);
+    m_channel_impl.pack	(channel,compactID);
+
+    return (compactID);
+}
+
+Identifier
+TileTBID::module_id     ( const Identifier & any_id )   const
+{
+  Identifier compactId(any_id);
+  m_channel_impl.reset(compactId);
+  
+  return (compactId);
+}
+
+Identifier
+TileTBID::channel_id    ( const Identifier & module_id, 
+                          int channel )                     const throw(TileID_Exception)
+{
+    Identifier compactId(module_id);
+    m_channel_impl.pack(channel,compactId);
+
+#ifndef NDEBUG
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId;
+
+	IdContext context = module_context();
+	if (get_expanded_id(compactId, expId, &context)) {
+	    std::string errorMessage = "TileTBID::channel_id(module_id,channel) result is not OK: ID = "
+		+ compactId.getString() ;
+	    throw TileID_Exception(errorMessage , 1);
+
+	    //      region_id.show();
+	}
+
+	expId << channel;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in TileTBID::channel_id , values ok but did not build, " +
+              strformat ("channel: %d ", channel);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_channel_range.match(expId)) { 
+	    std::string errorMessage = "TileTBID::channel_id() result is not OK: ID, range = "
+		+ (std::string)expId + " , " + (std::string)m_full_type_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+#endif
+
+    return compactId;
+}
+
+bool TileTBID::module_id  ( const Identifier& type_id,
+                          int module, Identifier& module_id ) 
+{
+  ExpandedIdentifier id; 
+  IdContext context = type_context();
+  get_expanded_id(type_id, id, &context);
+  id << module;
+  if (!m_full_module_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!m_dict->pack32(id,0, id.fields() - 1,compactId)) {
+    module_id = compactId;   
+  }
+  return true;
+}
+
+bool TileTBID::channel_id       ( const Identifier& type_id,
+                          int module, int channel, Identifier& channel_id ) 
+{
+  ExpandedIdentifier id; 
+  IdContext context = type_context();
+  get_expanded_id(type_id, id, &context);
+  id << module << channel;
+  if (!m_full_channel_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!m_dict->pack32(id,0, id.fields() - 1,compactId)) {
+    channel_id = compactId;   
+  }
+  return true;
+}
+
+bool TileTBID::channel_id       ( const Identifier& module_id,
+                                  int channel, Identifier& channel_id ) 
+{
+  ExpandedIdentifier id; 
+  IdContext context = module_context();
+  get_expanded_id(module_id, id, &context);
+  id << channel;
+  if (!m_full_channel_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!m_dict->pack32(id,0, id.fields() - 1,compactId)) {
+    channel_id = compactId;   
+  }
+  return true;
+}
+
+IdContext	
+TileTBID::type_context  (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_TYPE_INDEX));
+}
+
+IdContext	
+TileTBID::module_context  (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_MODULE_INDEX));
+}
+
+IdContext	
+TileTBID::channel_context     (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_CHANNEL_INDEX));
+}
+
+int  TileTBID::get_id     (const IdentifierHash& hash_id, Identifier& id, const IdContext* context ) const
+{
+  int result = 1;
+  id.clear();
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  // cannot get hash if end is 0:
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) {
+
+    if ( m_CHANNEL_INDEX == end ) {
+      if (hash_id < (unsigned int)(m_channel_vec.end() - m_channel_vec.begin())) {
+	id = m_channel_vec[hash_id];
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "TileTBID" );
+	log << MSG::ERROR << "get_id: channel hash_id is out of range " << hash_id
+            << " => " << m_channel_vec.size() << endreq;
+      }
+    } else if ( m_MODULE_INDEX == end ) {
+      if (hash_id < (unsigned int)(m_module_vec.end() - m_module_vec.begin())) {
+	id = m_module_vec[hash_id];
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "TileTBID" );
+	log << MSG::ERROR << "get_id: module hash_id is out of range "
+            << hash_id << " => " << m_module_vec.size() << endreq;
+      }
+    } else if ( m_TYPE_INDEX == end ) {
+      if (hash_id < (unsigned int)(m_type_vec.end() - m_type_vec.begin())) {
+	id = m_type_vec[hash_id];
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "TileTBID" );
+	log << MSG::ERROR << "get_id: TYPE hash_id is out of range " << hash_id
+            << " => " << m_type_vec.size() << endreq;
+      }
+    }
+  }
+  return(result);
+}
+
+
+int  TileTBID::get_hash  (const Identifier& id, IdentifierHash& hash_id, const IdContext* context ) const
+{
+    
+  hash_id = 0;
+  int result = 1;
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) { 
+    if ( m_CHANNEL_INDEX == end ) {
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_channel_vec.begin(),m_channel_vec.end(),id);
+      if ( it != m_channel_vec.end() ){
+	hash_id = it - m_channel_vec.begin();
+	result = 0;
+      }
+    } else if ( m_MODULE_INDEX == end ) {
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_module_vec.begin(),m_module_vec.end(),id);
+      if ( it != m_module_vec.end() ){
+	hash_id = it - m_module_vec.begin();
+	result = 0;
+      }
+    } else if ( m_TYPE_INDEX == end ) {
+      std::vector<Identifier>::const_iterator it = std::lower_bound(m_type_vec.begin(),m_type_vec.end(),id);
+      if ( it != m_type_vec.end() ){
+	hash_id = it - m_type_vec.begin();
+	result = 0;
+      }
+    }    
+  }
+
+  return (result);
+}
+
+int  TileTBID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+{
+  MsgStream log(m_msgSvc, "TileTBID" );
+  log << MSG::INFO << "initialize_from_dictionary " << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  log << MSG::DEBUG << "calling base initialize_from_dictionary" << endreq;
+
+  // init base object
+  if(AtlasDetectorID::initialize_from_dictionary(dict_mgr)) return (1);
+
+  // Register version of the TileCalo dictionary
+  if (register_dict_tag(dict_mgr, "TileCalorimeter")) return(1);
+
+  m_dict = dict_mgr.find_dictionary ("TileCalorimeter"); 
+  if(!m_dict) {
+    log << MSG::ERROR << "cannot access TileCalorimeter dictionary " << endreq;
+    return 1;
+  }
+  
+  // Initialize the field indices
+  if(initLevelsFromDict()) return (1);
+
+
+  // Find value for the field Tile Calorimeter   
+  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+  int tileField   = -1;
+  if (atlasDict->get_label_value("subdet", "TileCalorimeter", tileField)) {
+    log << MSG::ERROR << "Could not get value for label 'TileCalorimeter' of field 'subdet' in dictionary " 
+        << atlasDict->m_name
+        << endreq;
+    return (1);
+  }
+
+  // Find value for the field Tile Testbeam
+  int tiletbField   = -1;
+  if (m_dict->get_label_value("section", "Testbeam", tiletbField)) {
+    log << MSG::ERROR << "Could not get value for label 'Testbeam' of field 'section' in dictionary " 
+        << m_dict->m_name
+        << endreq;
+    return (1);
+  }
+
+  /*
+  log << MSG::DEBUG << "TileTB_ID::initialize_from_dict - found field values: TileTB " 
+      << TileTBField
+      << endreq;
+  */
+
+  // Set up id for region and range prefix
+  ExpandedIdentifier reg_id;
+  reg_id.add(tileField);
+  reg_id.add(tiletbField);
+  Range prefix;
+
+  m_full_channel_range= m_dict->build_multirange(reg_id, prefix, "tbchannel");
+  m_full_module_range = m_dict->build_multirange(reg_id, prefix, "tbmodule");
+  m_full_type_range   = m_dict->build_multirange(reg_id, prefix, "type");
+
+  log << MSG::DEBUG << "initialize_from_dict : "                                 << endreq;
+  log << MSG::DEBUG << " type range -> "    << (std::string)m_full_type_range    << endreq;
+  log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range  << endreq;
+  log << MSG::DEBUG << " channel range -> " << (std::string)m_full_channel_range << endreq;
+
+  // Setup the hash tables
+  if(init_hashes()) return (1);
+
+  return 0;
+
+}
+
+int TileTBID::get_expanded_id  (const Identifier& id, ExpandedIdentifier& exp_id, const IdContext* context) const
+{
+  int result = 1;
+
+  size_t begin = (context) ? context->begin_index() : 0;
+  size_t end   = (context) ? context->end_index()   : m_CHANNEL_INDEX;
+  assert (end <= m_CHANNEL_INDEX);
+
+  if (0 == end) {
+    result = 0;
+  }
+  else if ( 0 == begin) {
+    ExpandedIdentifier empty;
+    result = m_dict->unpack(id, empty, end, exp_id);
+  }
+  else {
+    result = m_dict->unpack(id, context->prefix_id(), end, exp_id);
+  }
+  return result;
+}
+
+int TileTBID::initLevelsFromDict(void) 
+{
+  MsgStream log(m_msgSvc, "TileTBID" );
+
+  if(!m_dict) {
+    log << MSG::ERROR << "initLevelsFromDict - dictionary NOT initialized "
+        << endreq ;
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_SYSTEM_INDEX        = 999;
+  m_SECTION_INDEX       = 999;
+  m_TYPE_INDEX          = 999;
+  m_MODULE_INDEX        = 999;
+  m_CHANNEL_INDEX       = 999;
+
+  // Save index to a Tile region for unpacking
+  ExpandedIdentifier expId(tile_exp());
+  if (m_dict->find_region(expId,m_tile_region_index)){
+    log << MSG::ERROR << "initLevelsFromDict - unable to find tile region index: expId, reg "  
+        << (std::string)expId << " " << m_tile_region_index
+        << endreq;
+    return (1);
+  }
+
+  // Fing a Tile region
+  IdDictField* field = m_dict->find_field("subdet") ;
+  if (field) {
+    m_SYSTEM_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'subdet' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = m_dict->find_field("section") ;
+  if (field) {
+    m_SECTION_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'section' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = m_dict->find_field("type") ;
+  if (field) {
+    m_TYPE_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'type' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = m_dict->find_field("tbmodule") ;
+  if (field) {
+    m_MODULE_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'tbmodule' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = m_dict->find_field("tbchannel") ;
+  if (field) {
+    m_CHANNEL_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'tbchannel' field "
+        << endreq ;
+    return (1);
+  }
+
+   /* Set the field implementations */
+  const IdDictRegion& region = *m_dict->m_regions[m_tile_region_index];
+
+  m_system_impl  = region.m_implementation[m_SYSTEM_INDEX]; 
+  m_section_impl = region.m_implementation[m_SECTION_INDEX]; 
+  m_type_impl    = region.m_implementation[m_TYPE_INDEX]; 
+  m_module_impl  = region.m_implementation[m_MODULE_INDEX]; 
+  m_channel_impl = region.m_implementation[m_CHANNEL_INDEX]; 
+
+  m_base_tile_type=Identifier (0);
+  m_system_impl.pack  (tile_field_value(),m_base_tile_type);
+  m_section_impl.pack (TileTBID::TILE_TESTBEAM,m_base_tile_type);
+
+  log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endreq ;
+  log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endreq ;
+  log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endreq ;
+  log << MSG::DEBUG << " type     [" << m_TYPE_INDEX     << "]  " << m_type_impl.show_to_string()     << endreq ;
+  log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endreq ;
+  log << MSG::DEBUG << " channel  [" << m_CHANNEL_INDEX  << "]  " << m_channel_impl.show_to_string()  << endreq ;
+
+  return(0) ;
+}
+
+int TileTBID::init_hashes(void) 
+{
+  MsgStream log(m_msgSvc, "TileTBID" );
+
+  // type hash
+  unsigned int nids = 0;
+  std::set<Identifier> ids;
+  for (unsigned int i = 0; i < m_full_type_range.size(); ++i) {
+    const Range& range = m_full_type_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier id = type_id (exp_id[m_TYPE_INDEX]);
+      if(!(ids.insert(id)).second){
+	log << MSG::ERROR << "init_hashes "
+            << " Error: duplicated id for type id. nids= " << nids
+            << " compact Id  " << show_to_string(id)
+            << endreq;
+      }
+      nids++;
+    }
+  }
+  m_type_hash_max = m_full_type_range.cardinality();
+  if ( fill_vec(ids, m_type_hash_max, m_type_vec) ) return (1);
+
+  // module hash
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_module_range.size(); ++i) {
+    const Range& range = m_full_module_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier id = module_id (exp_id[m_TYPE_INDEX], 
+                                 exp_id[m_MODULE_INDEX]);
+      if(!(ids.insert(id)).second){
+	log << MSG::ERROR << "init_hashes "
+            << " Error: duplicated id for module id. nids= " << nids
+            << " compact Id  " << show_to_string(id)
+            << endreq;
+      }
+      nids++;
+    }
+  }
+  m_module_hash_max = m_full_module_range.cardinality();
+  if ( fill_vec(ids, m_module_hash_max, m_module_vec) ) return (1);
+
+  // channel hash
+  nids = 0;
+  ids.clear();
+  for (unsigned int i = 0; i < m_full_channel_range.size(); ++i) {
+    const Range& range = m_full_channel_range[i];
+    Range::const_identifier_factory first = range.factory_begin();
+    Range::const_identifier_factory last  = range.factory_end();
+    for (; first != last; ++first) {
+      const ExpandedIdentifier& exp_id = (*first);
+      Identifier id = channel_id    (exp_id[m_TYPE_INDEX], 
+                                 exp_id[m_MODULE_INDEX], 
+                                 exp_id[m_CHANNEL_INDEX]);
+      if(!(ids.insert(id)).second){
+	log << MSG::ERROR << "init_hashes "
+            << " Error: duplicated id for channel id. nids= " << nids
+            << " compact Id  " << show_to_string(id)
+            << endreq;
+      }
+      nids++;
+    }
+  }
+  m_channel_hash_max = m_full_channel_range.cardinality();
+  if ( fill_vec(ids, m_channel_hash_max, m_channel_vec) ) return (1);
+
+  return (0);
+}
+
+int TileTBID::fill_vec  (std::set<Identifier> & ids, 
+                         unsigned int hash_max, std::vector<Identifier> & vec)
+{
+
+  if(ids.size() != hash_max) {
+
+    MsgStream log(m_msgSvc, "TileTBID" );
+    log << MSG::ERROR << "fill_vec "
+        << " Error: set size NOT EQUAL to hash max. size " << ids.size()
+        << " hash max " << hash_max
+        << endreq;
+
+    return (1);
+  }
+
+  vec.resize(hash_max);
+
+  std::set<Identifier>::const_iterator first = ids.begin();
+  std::set<Identifier>::const_iterator last  = ids.end();
+
+  int index = 0;
+  for (;first != last; ++first) {
+    vec[index++] = (*first);
+  }
+
+  return (0);
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
diff --git a/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx b/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..e4465e68f2e631a828249e79182b9f1c9126b675
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/Tile_Base_ID.cxx
@@ -0,0 +1,1876 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/Tile_Base_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Factor out code common between TileID and Tile_SuperCell_ID.
+ */
+
+
+#include "CaloIdentifier/Tile_Base_ID.h"
+#include "IdDict/IdDictDefs.h"
+#include "Identifier/IdentifierHash.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+#include "CxxUtils/StrFormat.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <algorithm>
+#include <iostream>
+#include <stdio.h>
+#include <assert.h>
+#include <stdexcept>
+
+using CxxUtils::strformat;
+using namespace LArNeighbours;
+
+
+
+Tile_Base_ID::Tile_Base_ID (const std::string& name, bool supercell)
+  : CaloIDHelper (name)
+    , m_supercell (supercell ? 1 : 0)
+    , m_tile_region_index(0)
+    , m_SYSTEM_INDEX(999)
+    , m_SECTION_INDEX(999)
+    , m_SIDE_INDEX(999)
+    , m_MODULE_INDEX(999)
+    , m_TOWER_INDEX(999)
+    , m_SAMPLE_INDEX(999)
+    , m_PMT_INDEX(999)
+    , m_ADC_INDEX(999)
+{
+}
+
+//
+// Tile_Base_ID methods
+//
+std::string
+Tile_Base_ID::to_string( const Identifier & id, int level ) const
+{
+  IdContext context;
+  switch (level) {
+    case 1: case -6:
+    case 2: case -5: context = region_context(); break;
+    case 3: case -4: context = module_context(); break;
+    case 4: case -3: context = tower_context(); break;
+    case 5: case -2: context = cell_context(); break;
+    case 6: case -1: context = pmt_context(); break;
+    case 7: case  0: context = adc_context(); break;
+  default:
+    return "Tile_Base_ID::to_string - unknown context";
+  }    
+      
+  ExpandedIdentifier exp_id;
+  if ( get_expanded_id(id,exp_id,&context) ) {
+    return "Tile_Base_ID::to_string - can not expand ID";
+  } else {
+    return (std::string)(exp_id);
+  }  
+}
+
+std::string
+Tile_Base_ID::to_string( const IdentifierHash & hash_id, int level ) const
+{
+  IdContext context;
+  switch (level) {
+    case 1: case -6:
+    case 2: case -5: context = region_context(); break;
+    case 3: case -4: context = module_context(); break;
+    case 4: case -3: context = tower_context(); break;
+    case 5: case -2: context = cell_context(); break;
+    case 6: case -1: context = pmt_context(); break;
+    case 7: case  0: context = adc_context(); break;
+  default:
+    return "Tile_Base_ID::to_string - unknown context";
+  }    
+
+  Identifier id;
+  if ( get_id ( hash_id, id, &context ) == 0 ) {
+    ExpandedIdentifier exp_id;
+    if ( get_expanded_id(id,exp_id,&context) ) {
+      return "Tile_Base_ID::to_string - can not expand ID";
+    } else {
+      return (std::string)(exp_id);
+    }
+  } else {
+    return "Tile_Base_ID::to_string - can not get ID from hash_id";
+  }
+}
+
+//
+// get methods
+//
+int
+Tile_Base_ID::get_field ( const Identifier & id, size_type index ) const
+{
+  int field = 0;
+  if(!dict()->unpack(id, 0, index, m_tile_region_index, field)) {
+    return field;
+  } else {
+    return 0;
+  }
+}
+
+int
+Tile_Base_ID::region ( int section, int side ) const
+{
+    IdentifierHash hash_id;
+    IdContext context = region_context();
+
+    get_hash(region_id(section,side),hash_id,&context);
+
+    return (int)hash_id;
+}
+
+int
+Tile_Base_ID::region ( const Identifier & id ) const
+{
+    IdentifierHash hash_id;
+    IdContext context = region_context();
+
+    get_hash(region_id(id),hash_id,&context);
+
+    return (int)hash_id;
+}
+
+int
+Tile_Base_ID::system ( const Identifier & id ) const
+{
+    return get_field(id,m_SYSTEM_INDEX);
+}
+
+int
+Tile_Base_ID::section ( const Identifier & id ) const
+{
+  return decode_section (get_field(id,m_SECTION_INDEX));
+}
+
+int
+Tile_Base_ID::side ( const Identifier & id ) const
+{
+    return get_field(id,m_SIDE_INDEX);
+}
+
+int
+Tile_Base_ID::module ( const Identifier & id ) const
+{
+    return get_field(id,m_MODULE_INDEX);
+}
+
+int
+Tile_Base_ID::tower ( const Identifier & id ) const
+{
+    return get_field(id,m_TOWER_INDEX);
+}
+
+int
+Tile_Base_ID::sample ( const Identifier & id ) const
+{
+  if ( section(id) == Tile_Base_ID::AUXDET )
+    return Tile_Base_ID::SAMP_X;
+  else
+    return get_field(id,m_SAMPLE_INDEX);
+}
+
+int
+Tile_Base_ID::pmt ( const Identifier & id ) const
+{
+    return get_field(id,m_PMT_INDEX);
+}
+
+int
+Tile_Base_ID::adc ( const Identifier & id ) const
+{
+    return get_field(id,m_ADC_INDEX);
+}
+
+//
+// check methods
+//
+/*
+bool               
+Tile_Base_ID::is_tile (const Identifier& id) const
+{
+    bool result = ( system(id) == tile_field_value() );
+
+    return result;
+}
+*/
+
+bool               
+Tile_Base_ID::is_tile_barrel (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( section(id) == Tile_Base_ID::BARREL );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_tile_extbarrel (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( section(id) == Tile_Base_ID::EXTBAR );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_tile_gap (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( section(id) == Tile_Base_ID::GAPDET );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_tile_aux (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( section(id) == Tile_Base_ID::AUXDET );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_negative (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( side(id) == Tile_Base_ID::NEGATIVE );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_positive (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( side(id) == Tile_Base_ID::POSITIVE );
+
+    return result;
+}
+
+bool               
+Tile_Base_ID::is_twosides (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( side(id) == 0 );
+
+    return result;
+}
+
+bool
+Tile_Base_ID::is_tile_gapscin (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( sample(id) == Tile_Base_ID::SAMP_E );
+
+    return result;
+}
+
+bool
+Tile_Base_ID::is_low_gain (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( adc(id) == Tile_Base_ID::LOWGAIN );
+
+    return result;
+}
+
+bool
+Tile_Base_ID::is_high_gain (const Identifier& id) const
+{
+    bool result = is_tile(id)
+      && ( adc(id) == Tile_Base_ID::HIGHGAIN );
+
+    return result;
+}
+
+bool Tile_Base_ID::is_supercell (const Identifier& id) const
+{
+  return is_tile(id) && (get_field(id,m_SECTION_INDEX) & SUPERCELL_MASK);
+}
+
+// Whole TileCal
+Identifier
+Tile_Base_ID::tile_system     ()      const
+{
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SYSTEM_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+// For Tile Barrel ID
+Identifier
+Tile_Base_ID::tile_barrel     ()      const
+{
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (Tile_Base_ID::BARREL);
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SECTION_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+// For Tile Extended Barrel ID
+Identifier
+Tile_Base_ID::tile_extbarrel  ()      const
+{
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (Tile_Base_ID::EXTBAR);
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SECTION_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+
+// For Tile Gap Scintillator ID
+Identifier
+Tile_Base_ID::tile_gap        ()      const
+{
+    Identifier result;
+
+    assert (!m_supercell);
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+    id[m_SECTION_INDEX] = Tile_Base_ID::GAPDET;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SECTION_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+// For any Tilecal section
+Identifier
+Tile_Base_ID::tile_det        ( int section )        const throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	// Check that id is within allowed range
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) ;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::tile_det , values ok but did not build, "+
+              strformat("section: %d ", section);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SECTION_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+// single region, module, tower, cell, pmt, adc identifiers
+Identifier
+Tile_Base_ID::region_id       ( int index )           const throw(TileID_Exception)
+{
+    Identifier result;
+    IdentifierHash hash_id = index;
+    IdContext context = region_context();
+
+    get_id(hash_id,result,&context);
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::region_id       ( int section, int side )      const throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::region_id, values ok but did not build, "+
+              strformat ("section: %d, side: %d ", section, side);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_region_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::region_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX] = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX] = side;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SIDE_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::region_id       ( const Identifier& any_id )   const
+{
+  Identifier result;
+  //  extract with the dictionary
+  Identifier id;
+  if(!dict()->copy(any_id, 0, 0, m_SIDE_INDEX, m_tile_region_index, id)) {
+    result = id;
+  }
+  return (result);
+}
+
+Identifier
+Tile_Base_ID::module_id       ( int section, int side, 
+                                int module ) const
+  throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side << module;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::module_id, values ok but did not build, "+
+              strformat ("section: %d, side: %d, module: %d ",
+                         section, side, module);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_module_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::module_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX]  = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX]    = side;
+    id[m_MODULE_INDEX]  = module;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_MODULE_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::module_id       ( const Identifier& any_id )   const
+{
+  Identifier result;
+  //  extract with the dictionary
+  Identifier id;
+  if(!dict()->copy(any_id, 0, 0, m_MODULE_INDEX, m_tile_region_index, id)) {
+    result = id;
+  }
+  return (result);
+}
+
+Identifier
+Tile_Base_ID::tower_id        ( int section, int side,
+                                int module,   int tower )     const
+  throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side << module << tower;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::tower_id, values ok but did not build, "+
+              strformat ("section: %d, side: %d, module: %d, tower: %d ",
+                         section, side, module, tower);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_tower_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::tower_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX]  = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX]    = side;
+    id[m_MODULE_INDEX]  = module;
+    id[m_TOWER_INDEX]   = tower;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_TOWER_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::tower_id       ( const Identifier& any_id )   const
+{
+  Identifier result;
+  //  extract with the dictionary
+  Identifier id;
+  if(!dict()->copy(any_id, 0, 0, m_TOWER_INDEX, m_tile_region_index, id)) {
+    result = id;
+  }
+  return (result);
+}
+
+Identifier
+Tile_Base_ID::cell_id         ( const Identifier & any_id )   const
+{
+  Identifier result;
+  //  extract with the dictionary
+  Identifier id;
+  if(!dict()->copy(any_id, 0, 0, m_SAMPLE_INDEX, m_tile_region_index, id)) {
+    result = id;
+  }
+  return (result);
+}
+
+Identifier
+Tile_Base_ID::cell_id         ( int section, int side,
+                                int module,   int tower, 
+                                int sample )                  const
+  throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side << module << tower << sample;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::cell_id, values ok but did not build, " +
+              strformat ("section: %d, side: %d, module: %d, tower: %d, sample: %d ",
+                         section, side, module, tower, sample);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_cell_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::cell_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_cell_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX]  = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX]    = side;
+    id[m_MODULE_INDEX]  = module;
+    id[m_TOWER_INDEX]   = tower;
+    id[m_SAMPLE_INDEX]  = sample;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_SAMPLE_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::pmt_id          ( const Identifier & any_id )   const
+{
+  Identifier result;
+  //  extract with the dictionary
+  Identifier id;
+  if(!dict()->copy(any_id, 0, 0, m_PMT_INDEX, m_tile_region_index, id)) {
+    result = id;
+  }
+  return (result);
+}
+
+Identifier
+Tile_Base_ID::pmt_id          ( const Identifier & cell_id, 
+                                int pmt )                     const
+  throw(TileID_Exception)
+{
+    Identifier result;
+
+    int id[8];
+    id[0] = pmt;
+        
+    Identifier compactId(cell_id);
+    if (!dict()->pack32(id, m_PMT_INDEX, m_PMT_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+    else {
+      std::string errorMessage = "Tile_Base_ID::pmt_id(cell_id,pmt) could not pack ID: "
+	+ cell_id.getString() ;
+      throw TileID_Exception(errorMessage , 1);
+    }
+
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId;
+
+	IdContext context = cell_context();
+	if (get_expanded_id(result, expId, &context)) {
+	    std::string errorMessage = "Tile_Base_ID::pmt_id(cell_id,pmt) result is not OK: ID = "
+		+ result.getString() ;
+	    throw TileID_Exception(errorMessage , 1);
+
+	    //      region_id.show();
+	}
+
+	expId << pmt;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::pmt_id, values ok but did not build, " +
+              strformat ("pmt: %d ", pmt);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_pmt_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::pmt_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::pmt_id          ( int section, int side,
+                                int module,   int tower,
+                                int sample,   int pmt )       const
+  throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side << module << tower << sample << pmt;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::pmt_id, values ok but did not build, " +
+              strformat ("section: %d, side: %d, module: %d, tower: %d, sample: %d, pmt: %d ",
+                         section, side, module, tower, sample, pmt);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_pmt_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::pmt_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX]  = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX]    = side;
+    id[m_MODULE_INDEX]  = module;
+    id[m_TOWER_INDEX]   = tower;
+    id[m_SAMPLE_INDEX]  = sample;
+    id[m_PMT_INDEX]     = pmt;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_PMT_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::adc_id          ( const Identifier & cell_id,
+                                int pmt, int adc )            const
+  throw(TileID_Exception)
+{
+    Identifier result;
+
+    int id[8];
+    id[0] = pmt;
+    id[1] = adc;
+        
+    Identifier compactId(cell_id);
+    if (!dict()->pack32(id, m_PMT_INDEX, m_ADC_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+    else {
+      std::string errorMessage = "Tile_Base_ID::adc_id(cell_id,pmt,adc) could not pack ID: "
+	+ cell_id.getString() ;
+      throw TileID_Exception(errorMessage , 1);
+    }
+
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId;
+
+	IdContext context = cell_context();
+	if (get_expanded_id(result, expId, &context)) {
+	    std::string errorMessage = "Tile_Base_ID::adc_id(cell_id,pmt,adc) result is not OK: ID = "
+		+ result.getString() ;
+	    throw TileID_Exception(errorMessage , 1);
+
+	    //      region_id.show();
+	}
+
+	expId << pmt << adc;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::adc_id, values ok but did not build, " +
+              strformat ("pmt: %d, adc: %d ", pmt, adc);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_adc_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::adc_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::adc_id          ( const Identifier & pmt_id,
+                                int adc )                     const
+  throw(TileID_Exception)
+{
+    Identifier result;
+
+    int id[8];
+    id[0] = adc;
+        
+    Identifier compactId(pmt_id);
+    if (!dict()->pack32(id, m_ADC_INDEX, m_ADC_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+    else {
+      std::string errorMessage = "Tile_Base_ID::adc_id(pmt_id,adc) could not pack ID: "
+	+ pmt_id.getString() ;
+      throw TileID_Exception(errorMessage , 1);
+    }
+
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId;
+
+	IdContext context = pmt_context();
+	if (get_expanded_id(result, expId, &context)) {
+	    std::string errorMessage = "Tile_Base_ID::adc_id(pmt_id,adc) result is not OK: ID = "
+		+ result.getString() ;
+	    throw TileID_Exception(errorMessage , 1);
+
+	    //      region_id.show();
+	}
+
+	expId << adc;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::adc_id, values ok but did not build, " +
+              strformat ("adc: %d ", adc);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_adc_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::adc_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    return result;
+}
+
+Identifier
+Tile_Base_ID::adc_id          ( int section, int side,
+                                int module, int tower, int sample, 
+                                int pmt, int adc )            const
+  throw(TileID_Exception)
+{
+    if(m_do_checks) {
+	
+	// Check that id is within allowed range
+
+	// Fill expanded id
+	ExpandedIdentifier expId(tile_exp());
+	expId << encode_section (section) << side << module << tower << sample << pmt << adc;
+
+	if(  expId.last_error () != ExpandedIdentifier::none ){
+	    std::string errorMessage =
+              "Error in Tile_Base_ID::adc_id, values ok but did not build, " +
+              strformat ("section: %d, side: %d, module: %d, tower: %d, sample: %d, pmt: %d, adc: %d ",
+                         section, side, module, tower, sample, pmt, adc);
+	    throw TileID_Exception(errorMessage , 1);
+	}
+
+	if (!m_full_adc_range.match(expId)) { 
+	    std::string errorMessage = "Tile_Base_ID::adc_id() result is not OK: ID, range = "
+		+ std::string(expId) + " , " + (std::string)m_full_region_range;
+	    throw TileID_Exception(errorMessage , 1);
+	}
+    }
+
+    Identifier result;
+
+    int id[8];
+    id[m_SYSTEM_INDEX]  = tile_field_value();
+    id[m_SECTION_INDEX] = encode_section (section);
+    id[m_SIDE_INDEX]    = side;
+    id[m_MODULE_INDEX]  = module;
+    id[m_TOWER_INDEX]   = tower;
+    id[m_SAMPLE_INDEX]  = sample;
+    id[m_PMT_INDEX]     = pmt;
+    id[m_ADC_INDEX]     = adc;
+        
+    Identifier compactId(0);
+    if (!dict()->pack32(id, 0, m_ADC_INDEX, m_tile_region_index, compactId)) {
+	result = compactId;   
+    }
+
+    return result;
+}
+
+bool Tile_Base_ID::module_id  ( const Identifier& region_id,
+                                int module, Identifier& module_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = region_context();
+  get_expanded_id(region_id, id, &context);
+  id << module;
+  if (!m_full_module_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    module_id = compactId;   
+  }
+  return true;
+}
+
+bool Tile_Base_ID::tower_id   ( const Identifier& region_id,
+                                int module, int tower, Identifier& tower_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = region_context();
+  get_expanded_id(region_id, id, &context);
+  id << module << tower;
+  if (!m_full_tower_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    tower_id = compactId;   
+  }
+  return true;
+}
+
+bool Tile_Base_ID::cell_id    ( const Identifier& region_id,
+                                int module, int tower, int sample,
+                                Identifier& cell_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = region_context();
+  get_expanded_id(region_id, id, &context);
+  id << module << tower << sample;
+  if (!m_full_cell_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    cell_id = compactId;   
+  }
+  return true;
+}
+
+bool Tile_Base_ID::pmt_id     ( const Identifier& cell_id,
+                                int pmt, Identifier& pmt_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = cell_context();
+  get_expanded_id(cell_id, id, &context);
+  id << pmt;
+  if (!m_full_pmt_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    pmt_id = compactId;   
+  }
+  return true;
+}
+
+bool Tile_Base_ID::adc_id     ( const Identifier& pmt_id,
+                                int adc, Identifier& adc_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = pmt_context();
+  get_expanded_id(pmt_id, id, &context);
+  id << adc;
+  if (!m_full_adc_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    adc_id = compactId;   
+  }
+  return true;
+}
+
+bool Tile_Base_ID::adc_id     ( const Identifier& cell_id,
+                                int pmt, int adc, Identifier& adc_id ) const
+{
+  ExpandedIdentifier id; 
+  IdContext context = cell_context();
+  get_expanded_id(cell_id, id, &context);
+  id << pmt << adc;
+  if (!m_full_adc_range.match(id)) { 
+    return false;
+  }
+
+  Identifier compactId(0);
+  if (!dict()->pack32(id,0, id.fields() - 1,compactId)) {
+    adc_id = compactId;   
+  }
+  return true;
+}
+
+Identifier  Tile_Base_ID::cell_id     (const IdentifierHash& hash_id) const
+  throw(TileID_Exception)
+{
+  if (hash_id < channels().hash_max()) {
+    return channel_id (hash_id);
+  } else {
+    std::string errorMessage = "Tile_Base_ID::cell_id(hash_id) - hash_id out of range ";
+    throw TileID_Exception(errorMessage , 1);
+  }
+}
+
+IdentifierHash  Tile_Base_ID::cell_hash  (const Identifier& id) const
+  throw(TileID_Exception)
+{
+  IdentifierHash ret = 0;
+  if (channels().get_hash (id, ret) == 0)
+    return ret;
+
+  std::string errorMessage = "Tile_Base_ID::cell_hash(cell_id) - cell_id out of range ";
+  throw TileID_Exception(errorMessage , 1);
+}
+
+IdContext	
+Tile_Base_ID::region_context  (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_SIDE_INDEX));
+}
+
+IdContext	
+Tile_Base_ID::module_context  (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_MODULE_INDEX));
+}
+
+IdContext	
+Tile_Base_ID::tower_context   (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_TOWER_INDEX));
+}
+
+IdContext	
+Tile_Base_ID::cell_context    (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_SAMPLE_INDEX));
+}
+
+IdContext	
+Tile_Base_ID::pmt_context     (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_PMT_INDEX));
+}
+
+IdContext	
+Tile_Base_ID::adc_context     (void)  const
+{
+    ExpandedIdentifier id;
+    return (IdContext(id, 0, m_ADC_INDEX));
+}
+
+int
+Tile_Base_ID::get_id     (const IdentifierHash& hash_id,
+                          Identifier& id,
+                          const IdContext* context ) const
+{
+  int result = 1;
+  id.clear();
+
+  size_t begin = (context) ? context->begin_index(): 0;
+  // cannot get hash if end is 0:
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) {
+
+    if ( m_ADC_INDEX == end ) {
+      if (hash_id < m_adcs.hash_max()) {
+	id = m_adcs.id (hash_id);
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: adc hash_id is out of range " << hash_id
+            << " > " << m_adcs.hash_max() << endreq;
+      }
+    } else if ( m_PMT_INDEX == end ) {
+      if (hash_id < m_pmts.hash_max()) {
+	id = m_pmts.id (hash_id);
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: pmt hash_id is out of range " << hash_id
+            << " >= " << m_pmts.hash_max() << endreq;
+      }
+    } else if ( m_SAMPLE_INDEX == end ) {
+      if (hash_id < channels().hash_max()) {
+	id = channels().id (hash_id);
+	result = 0;
+      } else {
+        MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: cell hash_id is out of range " << hash_id 
+            << " >= " << channels().hash_max() << endreq;
+      }
+    } else if ( m_TOWER_INDEX == end ) {
+      if (hash_id < m_towers.hash_max()) {
+	id = m_towers.id (hash_id);
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: tower hash_id is out of range " << hash_id
+            << " >= " << m_towers.hash_max() << endreq;
+      }
+    } else if ( m_MODULE_INDEX == end ) {
+      if (hash_id < m_modules.hash_max()) {
+	id = m_modules.id (hash_id);
+	result = 0;
+      } else {
+	MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: module hash_id is out of range " << hash_id
+            << " >= " << m_modules.hash_max() << endreq;
+      }
+    } else if ( m_SIDE_INDEX == end ) {
+      if (hash_id < regions().hash_max()) {
+        id = regions().id (hash_id);
+	result = 0;
+      } else {
+        MsgStream log(m_msgSvc, "Tile_Base_ID" );
+	log << MSG::ERROR << "get_id: region hash_id is out of range " << hash_id
+            << " >= " << regions().hash_max() << endreq;
+      }
+    }
+  }
+  return(result);
+}
+
+
+int
+Tile_Base_ID::get_hash  (const Identifier& id,
+                         IdentifierHash& hash_id,
+                         const IdContext* context ) const
+{
+  hash_id = 0;
+  int result = 1;
+    
+  size_t begin = (context) ? context->begin_index(): 0;
+  size_t end   = (context) ? context->end_index()  : 0; 
+
+  if (0 == begin) { 
+    if ( m_ADC_INDEX == end ) {
+      result = m_adcs.get_hash (id, hash_id);
+    } else if ( m_PMT_INDEX == end ) {
+      result = m_pmts.get_hash (pmt_id(id), hash_id);
+    } else if ( m_SAMPLE_INDEX == end ) {
+      result = channels().get_hash (cell_id(id), hash_id);
+    } else if ( m_TOWER_INDEX == end ) {
+      result = m_towers.get_hash (tower_id(id), hash_id);
+    } else if ( m_MODULE_INDEX == end ) {
+      result = m_modules.get_hash (module_id(id), hash_id);
+    } else if ( m_SIDE_INDEX == end ) {
+      result = regions().get_hash (region_id(id), hash_id);
+    }
+  }
+
+  return (result);
+}
+
+int
+Tile_Base_ID::initialize_base_from_dictionary (const IdDictMgr& dict_mgr,
+                                               const std::string& group_name)
+{
+  MsgStream log(m_msgSvc, "Tile_Base_ID" );
+  log << MSG::DEBUG << "initialize_base_from_dictionary " << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    if(m_msgSvc)log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    if(m_msgSvc)log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  log << MSG::DEBUG << "calling base initialize_base_from_dictionary" << endreq;
+
+  // init base object
+  if(CaloIDHelper::initialize_base_from_dictionary(dict_mgr,
+                                                   "TileCalorimeter"))
+    return (1);
+
+  // Initialize the field indices
+  if(initLevelsFromDict (group_name)) return (1);
+
+
+  // Find value for the field Tile Calorimeter   
+  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS"); 
+  int tileField   = -1;
+  if (atlasDict->get_label_value("subdet", "TileCalorimeter", tileField)) {
+    log << MSG::ERROR << "Could not get value for label 'TileCalorimeter' of field 'subdet' in dictionary " 
+        << atlasDict->m_name
+        << endreq;
+    return (1);
+  }
+
+  // Set up id for region and range prefix
+  ExpandedIdentifier tile_id;
+  tile_id.add(tileField);
+  ExpandedIdentifier reg_id = tile_id;
+  Range prefix;
+
+  m_full_adc_range    = dict()->build_multirange(reg_id, group_name, prefix, "adc");
+  m_full_pmt_range    = dict()->build_multirange(reg_id, group_name, prefix, "pmt");
+  m_full_cell_range   = dict()->build_multirange(reg_id, group_name, prefix, "sampling");
+  m_full_tower_range  = dict()->build_multirange(reg_id, group_name, prefix, "tower");
+  m_full_module_range = dict()->build_multirange(reg_id, group_name, prefix, "module");
+  m_full_region_range = dict()->build_multirange(reg_id, group_name, prefix, "side");
+
+  // Find value for the field Tile Online
+  int tilehwField   = -1;
+  if (dict()->get_label_value("section", "Online", tilehwField)) {
+    log << MSG::ERROR << "Could not get value for label 'Online' of field 'section' in dictionary " 
+        << dict()->m_name
+        << endreq;
+  } else {
+    // remove online ID from all ranges
+    reg_id = tile_id;
+    reg_id.add(tilehwField);
+    m_full_adc_range.remove_range(reg_id);
+    m_full_pmt_range.remove_range(reg_id);
+    m_full_cell_range.remove_range(reg_id);
+    m_full_tower_range.remove_range(reg_id);
+    m_full_module_range.remove_range(reg_id);
+    m_full_region_range.remove_range(reg_id);
+  }
+    
+  // Find value for the field Tile Testbeam
+  int tiletbField = -1;
+  if (dict()->get_label_value("section", "Testbeam", tiletbField)) {
+    log << MSG::ERROR << "Could not get value for label 'Testbeam' of field 'section' in dictionary " 
+        << dict()->m_name
+        << endreq;
+  } else {
+    // remove testbeam ID from all ranges
+    reg_id = tile_id;
+    reg_id.add(tiletbField);
+    m_full_adc_range.remove_range(reg_id);
+    m_full_pmt_range.remove_range(reg_id);
+    m_full_cell_range.remove_range(reg_id);
+    m_full_tower_range.remove_range(reg_id);
+    m_full_module_range.remove_range(reg_id);
+    m_full_region_range.remove_range(reg_id);
+  }
+
+  log << MSG::DEBUG << "initialize_from_dict : "                                << endreq;
+  log << MSG::DEBUG << " region range -> "  << (std::string)m_full_region_range << endreq;
+  log << MSG::DEBUG << " module range -> "  << (std::string)m_full_module_range << endreq;
+  log << MSG::DEBUG << " tower range ->  "  << (std::string)m_full_tower_range  << endreq;
+  log << MSG::DEBUG << " cell range ->   "  << (std::string)m_full_cell_range   << endreq;
+  log << MSG::DEBUG << " pmt range ->    "  << (std::string)m_full_pmt_range    << endreq;
+  log << MSG::DEBUG << " adc range ->    "  << (std::string)m_full_adc_range    << endreq;
+    
+  // Setup the hash tables
+  if(init_hashes()) return (1);
+
+  // Setup hash tables for finding neighbors
+  if(m_do_neighbours)  {
+    // temporary workaround to get the super_cell neighbor file directly
+    // instead of from the db. In the long term the file name should
+    // come from the db as well
+    std::string neighbourFile;
+    if ( m_supercell ) {
+      neighbourFile = "TileSuperCellNeighbour.txt";
+    }
+    else {
+      neighbourFile = dict_mgr.find_metadata("TILENEIGHBORS");
+    }
+    if (!neighbourFile.size()) throw std::runtime_error("TileID: Cannot find the Tile Neighbour file name");
+    if(m_neighbour.initialize(this, neighbourFile)) return (1);
+  }
+
+  return 0;
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::region_hash_max (void) const
+{
+  return regions().hash_max();
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::module_hash_max (void) const
+{
+  return m_modules.hash_max();
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::tower_hash_max (void) const
+{
+  return m_towers.hash_max();
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::cell_hash_max (void) const
+{
+  return channels().hash_max();
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::pmt_hash_max (void) const
+{
+  return m_pmts.hash_max();
+}
+
+Tile_Base_ID::size_type     Tile_Base_ID::adc_hash_max (void) const
+{
+  return m_adcs.hash_max();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::reg_begin       (void) const
+{
+  return regions().begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::reg_end         (void) const
+{
+  return regions().end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::reg_range() const
+{
+  return regions().range();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::module_begin    (void) const
+{
+  return m_modules.begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::module_end      (void) const
+{
+  return m_modules.end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::module_range() const
+{
+  return m_modules.range();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::tower_begin     (void) const
+{
+  return m_towers.begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::tower_end       (void) const
+{
+  return m_towers.end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::tower_range() const
+{
+  return m_towers.range();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::cell_begin      (void) const
+{
+  return channels().begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::cell_end        (void) const
+{
+  return channels().end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::cell_range() const
+{
+  return channels().range();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::pmt_begin       (void) const
+{
+  return m_pmts.begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::pmt_end         (void) const
+{
+  return m_pmts.end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::pmt_range() const
+{
+  return m_pmts.range();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::adc_begin       (void) const
+{
+  return m_adcs.begin();
+}
+
+Tile_Base_ID::id_iterator Tile_Base_ID::adc_end         (void) const
+{
+  return m_adcs.end();
+}
+
+Tile_Base_ID::id_range Tile_Base_ID::adc_range() const
+{
+  return m_adcs.range();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::region_ids() const
+{
+  return regions().ids();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::module_ids() const
+{
+  return m_modules.ids();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::tower_ids() const
+{
+  return m_towers.ids();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::cell_ids() const
+{
+  return channels().ids();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::pmt_ids() const
+{
+  return m_pmts.ids();
+}
+
+const std::vector<Identifier>& Tile_Base_ID::adc_ids() const
+{
+  return m_adcs.ids();
+}
+
+
+Identifier Tile_Base_ID::region_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->region_id (exp_id[m_SECTION_INDEX],
+                          exp_id[m_SIDE_INDEX]);
+}
+
+Identifier Tile_Base_ID::module_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->module_id (exp_id[m_SECTION_INDEX],
+                          exp_id[m_SIDE_INDEX], 
+                          exp_id[m_MODULE_INDEX]);
+}
+
+Identifier Tile_Base_ID::tower_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->tower_id  (exp_id[m_SECTION_INDEX],
+                          exp_id[m_SIDE_INDEX], 
+                          exp_id[m_MODULE_INDEX], 
+                          exp_id[m_TOWER_INDEX]);
+}
+
+Identifier Tile_Base_ID::cell_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->cell_id   (exp_id[m_SECTION_INDEX],
+                          exp_id[m_SIDE_INDEX], 
+                          exp_id[m_MODULE_INDEX], 
+                          exp_id[m_TOWER_INDEX],
+                          exp_id[m_SAMPLE_INDEX]);
+}
+
+Identifier Tile_Base_ID::pmt_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->pmt_id (exp_id[m_SECTION_INDEX],
+                       exp_id[m_SIDE_INDEX], 
+                       exp_id[m_MODULE_INDEX], 
+                       exp_id[m_TOWER_INDEX],
+                       exp_id[m_SAMPLE_INDEX],
+                       exp_id[m_PMT_INDEX]);
+}
+
+Identifier Tile_Base_ID::adc_id (const ExpandedIdentifier& exp_id) const
+{
+  return this->adc_id (exp_id[m_SECTION_INDEX],
+                       exp_id[m_SIDE_INDEX], 
+                       exp_id[m_MODULE_INDEX], 
+                       exp_id[m_TOWER_INDEX],
+                       exp_id[m_SAMPLE_INDEX],
+                       exp_id[m_PMT_INDEX],
+                       exp_id[m_ADC_INDEX]);
+}
+
+int Tile_Base_ID::eta_min(const Identifier& id, const IdContext& context) const
+{
+  ExpandedIdentifier expId;
+  if(!get_expanded_id(id, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_tower_range.size(); ++i) {
+      const Range& range = m_full_tower_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_TOWER_INDEX];
+	if (eta_field.has_minimum()) {
+	  int etamin = eta_field.get_minimum();
+	  if (-999 == result) {
+	    result = etamin;
+	  }
+	  else {
+	    if (etamin < result) result = etamin;
+	  }
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);
+}
+
+int Tile_Base_ID::eta_max(const Identifier& id, const IdContext& context) const
+{
+  ExpandedIdentifier expId;
+  if(!get_expanded_id(id, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_cell_range.size(); ++i) {
+      const Range& range = m_full_cell_range[i];
+      if (range.match(expId)) {
+	const Range::field& eta_field = range[m_TOWER_INDEX];
+	if (eta_field.has_maximum()) {
+	  int etamax = eta_field.get_maximum();
+	  if (result < etamax) result = etamax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int Tile_Base_ID::eta_min(const Identifier& id) const
+{
+  IdContext context = tower_context();
+  return eta_min (id, context);
+}
+
+int Tile_Base_ID::eta_max(const Identifier& id) const
+{
+  IdContext context = cell_context();
+  return eta_max (id, context);
+}
+
+int Tile_Base_ID::region_eta_min(const Identifier& id) const
+{
+  IdContext context = region_context();
+  return eta_min (id, context);
+}
+
+int Tile_Base_ID::region_eta_max(const Identifier& id) const
+{
+  IdContext context = region_context();
+  return eta_max (id, context);
+}
+
+int Tile_Base_ID::phi_max(const Identifier& id) const
+{
+  ExpandedIdentifier expId;
+  IdContext context = cell_context();
+  if(!get_expanded_id(id, expId, &context)) {
+    int result = -999;
+    for (unsigned int i = 0; i < m_full_cell_range.size(); ++i) {
+      const Range& range = m_full_cell_range[i];
+      if (range.match(expId)) {
+	const Range::field& phi_field = range[m_MODULE_INDEX];
+	if (phi_field.has_maximum()) {
+	  int phimax = phi_field.get_maximum();
+	  if (result < phimax) result = phimax;
+	}
+      }
+    }
+    return (result);
+  }
+  return (-999);  // default
+}
+
+int Tile_Base_ID::get_expanded_id  (const Identifier& id,
+                                    ExpandedIdentifier& exp_id,
+                                    const IdContext* context) const
+{
+  int result = 1;
+
+  size_t begin = (context) ? context->begin_index() : 0;
+  size_t end   = (context) ? context->end_index()   : m_ADC_INDEX;
+  assert (end <= m_ADC_INDEX);
+
+  if (0 == end) {
+    result = 0;
+  }
+  else if ( 0 == begin) {
+    ExpandedIdentifier empty;
+    result = dict()->unpack(id, empty, end, exp_id);
+  }
+  else {
+    result = dict()->unpack(id, context->prefix_id(), end, exp_id);
+  }
+  return result;
+}
+
+int Tile_Base_ID::initLevelsFromDict (const std::string& group_name) 
+{
+  MsgStream log(m_msgSvc, "Tile_Base_ID" );
+
+  if(!dict()) {
+    log << MSG::ERROR << "initLevelsFromDict - dictionary NOT initialized "
+        << endreq;
+    return (1);
+  }
+
+  // Find out which identifier field corresponds to each level.
+
+  m_SYSTEM_INDEX        = 999;
+  m_SECTION_INDEX       = 999;
+  m_SIDE_INDEX          = 999;
+  m_MODULE_INDEX        = 999;
+  m_TOWER_INDEX         = 999;
+  m_SAMPLE_INDEX        = 999;
+  m_PMT_INDEX           = 999;
+  m_ADC_INDEX           = 999;
+
+  IdDictGroup* group = dict()->find_group(group_name);
+  if ( !group ){
+    log << MSG::ERROR << "initLevelsFromDict - cannot find " << group_name
+        << " group' field " << endreq;
+  }
+  else {
+	m_tile_region_index = group->regions()[0]->m_index;
+  }
+
+  // Fing a Tile region
+  IdDictField* field = dict()->find_field("subdet") ;
+  if (field) {
+    m_SYSTEM_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR << "initLevelsFromDict - unable to find 'subdet' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("section") ;
+  if (field) {
+    m_SECTION_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'section' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("side") ;
+  if (field) {
+    m_SIDE_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'side' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("module") ;
+  if (field) {
+    m_MODULE_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'module' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("tower") ;
+  if (field) {
+    m_TOWER_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'tower' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("sampling") ;
+  if (field) {
+    m_SAMPLE_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'sampling' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("pmt") ;
+  if (field) {
+    m_PMT_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'pmt' field "
+        << endreq ;
+    return (1);
+  }
+
+  field = dict()->find_field("adc") ;
+  if (field) {
+    m_ADC_INDEX = field->m_index ;
+  }
+  else {
+    log << MSG::ERROR <<  "initLevelsFromDict - unable to find 'adc' field "
+        << endreq ;
+    return (1);
+  }
+
+  const IdDictRegion& region = *dict()->m_regions[m_tile_region_index];
+
+  m_system_impl  = region.m_implementation[m_SYSTEM_INDEX]; 
+  m_section_impl = region.m_implementation[m_SECTION_INDEX];
+  m_side_impl    = region.m_implementation[m_SIDE_INDEX]; 
+  m_module_impl  = region.m_implementation[m_MODULE_INDEX]; 
+  m_tower_impl   = region.m_implementation[m_TOWER_INDEX]; 
+  m_sample_impl  = region.m_implementation[m_SAMPLE_INDEX]; 
+  m_pmt_impl     = region.m_implementation[m_PMT_INDEX]; 
+  m_adc_impl     = region.m_implementation[m_ADC_INDEX]; 
+
+  log << MSG::DEBUG << "initLevelsFromDict decode index and bit fields for each level: "              << endreq ;
+  log << MSG::DEBUG << " system   [" << m_SYSTEM_INDEX   << "]  " << m_system_impl.show_to_string()   << endreq ;
+  log << MSG::DEBUG << " section  [" << m_SECTION_INDEX  << "]  " << m_section_impl.show_to_string()  << endreq ;
+  log << MSG::DEBUG << " side     [" << m_SIDE_INDEX     << "]  " << m_side_impl.show_to_string()     << endreq ;
+  log << MSG::DEBUG << " module   [" << m_MODULE_INDEX   << "]  " << m_module_impl.show_to_string()   << endreq ;
+  log << MSG::DEBUG << " tower    [" << m_TOWER_INDEX    << "]  " << m_tower_impl.show_to_string()    << endreq ;
+  log << MSG::DEBUG << " sampling [" << m_SAMPLE_INDEX   << "]  " << m_sample_impl.show_to_string()   << endreq ;
+  log << MSG::DEBUG << " pmt      [" << m_PMT_INDEX      << "]  " << m_pmt_impl.show_to_string()      << endreq ;
+  log << MSG::DEBUG << " adc      [" << m_ADC_INDEX      << "]  " << m_adc_impl.show_to_string()      << endreq ;
+  
+  return(0) ;
+}
+
+int Tile_Base_ID::init_hashes(void) 
+{
+  if (regions().init (*this, "regions", m_full_region_range,
+                       &Tile_Base_ID::region_id,
+                       m_SIDE_INDEX))
+    return 1;
+
+  if (m_modules.init (*this, "modules", m_full_module_range,
+                       &Tile_Base_ID::module_id,
+                       m_MODULE_INDEX))
+    return 1;
+
+  if (m_towers.init (*this, "towers", m_full_tower_range,
+                     &Tile_Base_ID::tower_id,
+                     m_TOWER_INDEX))
+    return 1;
+
+  if (channels().init (*this, "channels", m_full_cell_range,
+                       &Tile_Base_ID::cell_id,
+                       m_SAMPLE_INDEX))
+    return 1;
+
+  if (m_pmts.init (*this, "pmts", m_full_pmt_range,
+                   &Tile_Base_ID::pmt_id,
+                   m_PMT_INDEX))
+    return 1;
+
+  if (m_adcs.init (*this, "adcs", m_full_adc_range,
+                   &Tile_Base_ID::adc_id,
+                   m_ADC_INDEX))
+    return 1;
+
+  return (0);
+}
+
+
+int Tile_Base_ID::get_neighbours(const IdentifierHash& id_orig, const LArNeighbours::neighbourOption& option,
+                           std::vector<IdentifierHash>& neighbourList) const
+{
+  int result = 1; 
+
+  if(!m_do_neighbours) {
+
+    MsgStream log(m_msgSvc, "TileID" );
+    log << MSG::WARNING << "get_neighbours: neighbours not initialized !!! returning empty list" << endreq;
+
+    neighbourList.resize(0);
+    return result;
+  }
+
+  neighbourList.clear();
+
+  bool prevSmp = (option & prevInSamp);
+  bool nextSmp = (option & nextInSamp);
+
+  bool corners2DOnly  = ( (option & all2D) == corners2D );
+
+  bool prevPhi = corners2DOnly || (option & prevInPhi);
+  bool nextPhi = corners2DOnly || (option & nextInPhi);
+  bool prevEta = corners2DOnly || (option & prevInEta);
+  bool nextEta = corners2DOnly || (option & nextInEta);
+
+  std::vector<IdentifierHash> inpList;
+  std::vector<IdentifierHash>::iterator inpItr;
+  std::vector<IdentifierHash>::iterator inpLast;
+
+  inpList.push_back(id_orig);
+
+  // all phi neighbours (just 2)
+  if (prevPhi) m_neighbour.prev_phi(id_orig,neighbourList);
+  if (nextPhi) m_neighbour.next_phi(id_orig,neighbourList);
+  
+  if ( (option & all2D) == faces2D) { 
+    // do nothing
+
+  } else if (corners2DOnly) {
+    // neighbours of phi-neigbours are 2D corners
+    inpList = neighbourList; // copy 2 phi neighbours to input list 
+    neighbourList.clear();   // and clear neighbour list
+
+  } else if ( (option & all2D) == all2D) {
+    // copy all neighbours to input list
+    std::copy(neighbourList.begin(), neighbourList.end(), std::back_inserter(inpList));
+
+  }
+  
+  // all eta neighbours
+  inpItr  = inpList.begin();
+  inpLast = inpList.end();
+  for ( ; inpItr != inpLast; ++inpItr) {
+    IdentifierHash id = (*inpItr);
+    if (prevEta) m_neighbour.prev_eta(id,neighbourList);
+    if (nextEta) m_neighbour.next_eta(id,neighbourList);
+  }
+
+  // all sampling neighbours
+  if( (option & all3DwithCorners) == all3DwithCorners ) {
+    
+    inpItr  = inpList.begin();
+    inpLast = inpList.end();
+    for ( ; inpItr != inpLast; ++inpItr) {
+      IdentifierHash id = (*inpItr);
+      m_neighbour.prev_samp_wide(id,neighbourList);
+      m_neighbour.next_samp_wide(id,neighbourList);
+    }
+
+  } else {
+    
+    if (prevSmp) m_neighbour.prev_samp(id_orig,neighbourList);
+    if (nextSmp) m_neighbour.next_samp(id_orig,neighbourList);
+    
+  }
+
+  if (neighbourList.size() > 0) result = 0;
+
+  return result;
+}
+
diff --git a/Calorimeter/CaloIdentifier/src/Tile_SuperCell_ID.cxx b/Calorimeter/CaloIdentifier/src/Tile_SuperCell_ID.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..6bde952bf621dc35ab03c58db7fe465513e60e8d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/src/Tile_SuperCell_ID.cxx
@@ -0,0 +1,54 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/src/Tile_SuperCell_ID.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Helper class for Tile offline identifiers for supercells
+ */
+
+
+#include "CaloIdentifier/Tile_SuperCell_ID.h"
+#include "IdDict/IdDictDefs.h"
+#include "Identifier/IdentifierHash.h"
+#include "AtlasDetDescr/AtlasDetectorID.h"
+
+#include "GaudiKernel/MsgStream.h"
+
+#include <algorithm>
+#include <iostream>
+#include <stdio.h>
+#include <assert.h>
+#include <stdexcept>
+
+
+Tile_SuperCell_ID::Tile_SuperCell_ID()
+  : Tile_Base_ID ("Tile_SuperCell_ID", true)
+{
+}
+
+int Tile_SuperCell_ID::initialize_from_dictionary (const IdDictMgr& dict_mgr)
+{
+  MsgStream log(m_msgSvc, "Tile_SuperCell_ID" );
+  
+  std::string strg = "initialize_from_dictionary";
+  log << MSG::DEBUG << strg << endreq;
+
+  // Check whether this helper should be reinitialized
+  if (!reinitialize(dict_mgr)) {
+    log << MSG::DEBUG << "Request to reinitialize not satisfied - tags have not changed" << endreq;
+    return (0);
+  }
+  else {
+    log << MSG::DEBUG << "(Re)initialize" << endreq;
+  }
+
+  // init base object
+  if (Tile_Base_ID::initialize_base_from_dictionary(dict_mgr, "tile_supercell"))
+    return (1);
+
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/CaloCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/CaloCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..05fc2561f1594df9e94dbdc3ba95a8872e0e385e
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/CaloCell_ID_test.cxx
@@ -0,0 +1,73 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/CaloCell_ID_test.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Unit test for CaloCell_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/CaloCell_ID.h"
+
+
+#include "calocell_id_test_common.cxx"
+
+
+CaloCell_ID* make_calo_id (bool do_neighbours = false)
+{
+  return make_calo_id_t<CaloCell_ID,
+                        LArEM_ID,
+                        LArHEC_ID,
+                        LArFCAL_ID,
+                        TileID> (do_neighbours);
+}
+
+
+void test_neighbours (const CaloCell_ID* calo_id)
+{
+  std::cout << "test_neighbours\n";
+  
+  for (unsigned int iCell = 0 ; iCell < calo_id->calo_cell_hash_max(); ++iCell){
+    Identifier cellId = calo_id->cell_id(iCell);
+    IdentifierHash hash_min = 888888 ;
+    IdentifierHash hash_max = 0 ;
+    calo_id->calo_cell_hash_range(cellId, hash_min, hash_max);
+    std::vector<IdentifierHash> neighbourList;
+    assert (calo_id->get_neighbours(iCell, LArNeighbours::all3D, neighbourList)
+            == 0);
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+	  
+      IdentifierHash neighbourHash=(*first);
+      assert (hash_min <= neighbourHash && neighbourHash <= hash_max);
+    }
+  }
+}
+
+
+int main()
+{
+  CaloCell_ID* calo_id = make_calo_id();
+  CaloCell_ID* calo_id_n = make_calo_id(true);
+  try {
+    test_cells (calo_id);
+    test_sample (calo_id, false);
+    test_subcalo (calo_id);
+    test_regions (calo_id);
+    test_neighbours (calo_id_n);
+    test_exceptions (calo_id);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  catch(TileID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/CaloCell_SuperCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/CaloCell_SuperCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..4549354c8a722f5697975abb753e156b8858f101
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/CaloCell_SuperCell_ID_test.cxx
@@ -0,0 +1,48 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/CaloCell_SuperCell_ID_test.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Unit test for CaloCell_SuperCell_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
+
+
+#include "calocell_id_test_common.cxx"
+
+
+CaloCell_SuperCell_ID* make_calo_id ()
+{
+  return make_calo_id_t<CaloCell_SuperCell_ID,
+                        LArEM_SuperCell_ID,
+                        LArHEC_SuperCell_ID,
+                        LArFCAL_SuperCell_ID,
+                        Tile_SuperCell_ID> ();
+}
+
+
+int main()
+{
+  CaloCell_SuperCell_ID* calo_id = make_calo_id();
+  try {
+    test_cells (calo_id, true);
+    test_sample (calo_id, true);
+    test_subcalo (calo_id);
+    test_regions (calo_id);
+    test_exceptions (calo_id);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  catch(TileID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/CaloIDHelper_test.cxx b/Calorimeter/CaloIdentifier/test/CaloIDHelper_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..20844dd98f744126fb186e50b4cb8e3b7bb8698a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/CaloIDHelper_test.cxx
@@ -0,0 +1,239 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/**
+ * @file  CaloIdentifier/test/CaloIDHelper_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for CaloIDHelper
+ */
+
+#undef NDEBUG
+
+
+#include "CaloIdentifier/CaloIDHelper.h"
+#include "IdDictParser/IdDictParser.h"
+#include "boost/foreach.hpp"
+#include <cassert>
+#include <iostream>
+
+
+class CaloIDHelperTest
+  : public CaloIDHelper
+{
+public:
+  CaloIDHelperTest (const std::string& name) : CaloIDHelper(name) {}
+
+  virtual int  get_expanded_id  (const Identifier& id,
+                                 ExpandedIdentifier& exp_id,
+                                 const IdContext* /*context*/) const
+  {
+    exp_id.clear();
+    int i = (id.get_identifier32().get_compact() - 100) / 10;
+    int barrel_ec = 1;
+    if (i >= 5) {
+      barrel_ec = -1;
+      i -= 5;
+    }
+    int sampling = i;
+    int region = 0;
+    if (sampling == 4) {
+      sampling = 1;
+      region = 1;
+    }
+    exp_id << lar_field_value()
+           << lar_em_field_value()
+           << barrel_ec
+           << sampling
+           << region;
+    return 0;
+  }
+
+  using CaloIDHelper::dict;
+  using CaloIDHelper::fill_vec_of_dict_regions;
+  using CaloIDHelper::initialize_base_from_dictionary;
+
+  Identifier to_id (const ExpandedIdentifier& exp_id) const
+  {
+    unsigned ndx = exp_id[0]-10;
+    return Identifier (ndx*10 + 100);
+  }
+  Identifier to_id2 (const ExpandedIdentifier& exp_id) const
+  {
+    unsigned ndx = exp_id[0]-10;
+    if (ndx == 9) ndx = 0;
+    return Identifier (ndx*10 + 100);
+  }
+
+  int init_channels (const std::set<Identifier>& ids,
+                     size_type end_index,
+                     const MultiRange* full_range = 0)
+  {
+    return channels().init (name() + ".channels",
+                            ids, end_index, m_msgSvc, full_range);
+  }
+
+  int init_regions (const std::set<Identifier>& ids,
+                    size_type end_index,
+                    const MultiRange* full_range = 0)
+  {
+    return regions().init (name() + ".regions",
+                           ids, end_index, m_msgSvc, full_range);
+  }
+};
+
+
+void test_hashgroup()
+{
+  std::cout << "test_hashgroup\n";
+
+  std::set<Identifier> ids;
+  for (unsigned int i = 100; i < 200; i += 10)
+    ids.insert (Identifier (i));
+  CaloIDHelper::HashGroup hg;
+  assert (hg.init ("hg", ids, 3, 0) == 0);
+  assert (hg.hash_max() == 10);
+
+  std::vector<Identifier> vids (ids.begin(), ids.end());
+  assert (hg.ids() == vids);
+
+  unsigned int tot = 0;
+  BOOST_FOREACH (Identifier id, ids)
+    tot += id.get_compact();
+
+  unsigned int tot2 = 0;
+  BOOST_FOREACH (Identifier id, hg.range())
+    tot2 += id.get_compact();
+  assert (tot == tot2);
+
+  tot2 = 0;
+  for (CaloIDHelper::id_iterator it = hg.begin(); it != hg.end(); ++it)
+    tot2 += it->get_compact();
+  assert (tot == tot2);
+
+  IdentifierHash hash = 0;
+  assert (hg.get_hash (vids[3], hash) == 0);
+  assert (hg.get_hash (Identifier(2000), hash) == 1);
+  assert (hg.hash (vids[4]) == 4);
+  assert (! hg.hash (Identifier(2000)).is_valid() );
+
+  assert (hg.id (3) == vids[3]);
+
+  assert (hg.end_index() == 3);
+
+  IdContext context = hg.context();
+  assert (context.begin_index() == 0);
+  assert (context.end_index() == 3);
+
+  Range r;
+  r.add (10, 19);
+  std::cout << r.cardinality() <<"\n";
+  assert (r.cardinality() == 10);
+  MultiRange mr;
+  mr.add (r);
+  assert (mr.cardinality() == 10);
+
+  CaloIDHelper::HashGroup hg2;
+  assert (hg2.init ("hg2", ids, 3, 0, &mr) == 0);
+
+  CaloIDHelperTest helper ("helper");
+  CaloIDHelper::HashGroup hg3;
+  assert (hg3.init (helper, "", mr, &CaloIDHelperTest::to_id, 3) == 0);
+  assert (hg3.ids() == vids);
+
+  CaloIDHelper::HashGroup hg4;
+  assert (hg4.init (helper, "", mr, &CaloIDHelperTest::to_id2, 3) != 0);
+}
+
+
+void test_helper()
+{
+  std::cout << "test_helper\n";
+
+  CaloIDHelperTest helper ("helper");
+  assert (helper.name() == "helper");
+  assert (helper.msgSvc() == 0);
+
+
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+
+  assert (helper.initialize_base_from_dictionary(idd, "LArCalorimeterx") == 1);
+  assert (helper.initialize_base_from_dictionary(idd, "LArCalorimeter") == 0);
+  assert (helper.dict() != 0);
+
+  std::set<Identifier> chan_ids;
+  for (unsigned int i = 1000; i < 1200; i += 10)
+    chan_ids.insert (Identifier (i));
+
+  std::set<Identifier> reg_ids;
+  for (unsigned int i = 100; i < 200; i += 10)
+    reg_ids.insert (Identifier (i));
+
+  helper.init_channels (chan_ids, 3);
+  helper.init_regions (reg_ids, 2);
+
+  const CaloIDHelper& chelper = helper;
+  assert (chelper.channels().hash_max() == 20);
+  assert (chelper.regions().hash_max() == 10);
+  assert (helper.channel_hash_max() == 20);
+  assert (helper.region_hash_max() == 10);
+
+  IdContext reg_context = helper.region_context();
+  assert (reg_context.begin_index() == 0);
+  assert (reg_context.end_index() == 2);
+  IdContext chan_context = helper.channel_context();
+  assert (chan_context.begin_index() == 0);
+  assert (chan_context.end_index() == 3);
+
+  std::vector<Identifier> vchan_ids (chan_ids.begin(), chan_ids.end());
+  std::vector<Identifier> vreg_ids (reg_ids.begin(),   reg_ids.end());
+  assert (helper.channel_id(13) == vchan_ids[13]);
+  assert (helper.region_id(4) == vreg_ids[4]);
+  assert (helper.channel_hash (vchan_ids[14]) == 14);
+  assert (helper.region_hash (vreg_ids[6]) == 6);
+
+  Identifier id2;
+  assert (helper.get_id (15, id2, &chan_context) == 0);
+  assert (id2 == vchan_ids[15]);
+  assert (helper.get_id (7, id2, &reg_context) == 0);
+  assert (id2 == vreg_ids[7]);
+
+  assert (helper.get_id (99, id2, &chan_context) == 1);
+  assert (helper.get_id (99, id2, &reg_context) == 1);
+  IdContext xcontext;
+  assert (helper.get_id (0, id2, &xcontext) == 1);
+
+  IdentifierHash hashid;
+  assert (helper.get_hash (vchan_ids[5], hashid, &chan_context) == 0);
+  assert (hashid == 5);
+  assert (helper.get_hash (vreg_ids[7], hashid, &reg_context) == 0);
+  assert (hashid == 7);
+
+  assert (helper.get_hash (Identifier(9999), hashid, &chan_context) == 1);
+  assert (helper.get_hash (Identifier(9999), hashid, &reg_context) == 1);
+  assert (helper.get_hash (vchan_ids[5], hashid, &xcontext) == 1);
+
+  assert (helper.fill_vec_of_dict_regions ("lar_em") == 0);
+
+  BOOST_FOREACH (Identifier id, chelper.regions().range()) {
+    IdentifierHash hashid = helper.region_hash (id);
+    std::cout << id.get_identifier32().get_compact() << " "
+              << helper.eta0(hashid) << " "
+              << helper.phi0(hashid) << " "
+              << helper.etaGranularity(hashid) << " "
+              << helper.phiGranularity(hashid) << "\n";
+    assert (helper.dictRegions()[hashid]->m_eta0 == helper.eta0(hashid));
+  }
+}
+
+
+int main()
+{
+  test_hashgroup();
+  test_helper();
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/CaloIdentifier.xml b/Calorimeter/CaloIdentifier/test/CaloIdentifier.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8c19cb70aa5678fecdca6e80ed50c83c553dee85
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/CaloIdentifier.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<atn>
+   <TEST name="CaloIdentifierTests" type="makecheck">
+      <package>Calorimeter/CaloIdentifier</package>
+      <author> scott snyder </author>
+      <mailto> snyder@bnl.gov </mailto>
+      <expectations>
+         <errorMessage>Athena exited abnormally</errorMessage>
+         <errorMessage>differ</errorMessage>
+         <warningMessage> # WARNING_MESSAGE : post.sh> ERROR</warningMessage>
+         <successMessage>check ok</successMessage>
+         <returnValue>0</returnValue>
+      </expectations>
+   </TEST>
+</atn>
diff --git a/Calorimeter/CaloIdentifier/test/LArEM_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArEM_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..cba07e52bd9980b2f70a1f2f4b7405ddbc673c0e
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArEM_ID_test.cxx
@@ -0,0 +1,101 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArEM_ID_test.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Unit test for LArEM_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArEM_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include <iostream>
+
+
+#include "larem_id_test_common.cxx"
+
+
+LArEM_ID* make_helper (bool do_neighbours = false)
+{
+  LArEM_ID* idhelper = new LArEM_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const LArEM_Base_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (1, 1, 1, 0, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 1, 1, 2, 10));
+  basic_print_id (idhelper, idhelper.channel_id (3, 2, 0, 0, 20));
+
+  basic_print_id (idhelper, idhelper.channel_id (-1, 1, 1, 0, 1)); 
+  basic_print_id (idhelper, idhelper.channel_id (-2, 1, 1, 2, 10));
+  basic_print_id (idhelper, idhelper.channel_id (-3, 2, 0, 0, 20));
+}
+
+
+// neighbors
+void test4 (const LArEM_ID& em_id)
+{
+  std::cout << "test4\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < em_id.channel_hash_max(); ++iCell){
+    em_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == em_id.channel_hash_max()-1);
+}
+
+
+int main()
+{
+  LArEM_ID* idhelper = make_helper();
+  LArEM_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+    test4 (*idhelper_n);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArEM_SuperCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArEM_SuperCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..2b8fdab56f8d8786fbb341144491f46291d0845d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArEM_SuperCell_ID_test.cxx
@@ -0,0 +1,103 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArEM_SuperCell_ID_test.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Unit test for LArEM_SuperCell_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArEM_SuperCell_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include <iostream>
+
+
+#include "larem_id_test_common.cxx"
+
+
+LArEM_SuperCell_ID* make_helper (bool do_neighbours = false)
+{
+  LArEM_SuperCell_ID* idhelper = new LArEM_SuperCell_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const LArEM_Base_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (1, 1, 1, 0, 1)); 
+  basic_print_id (idhelper, idhelper.channel_id (2, 2, 1, 0, 10));
+  basic_print_id (idhelper, idhelper.channel_id (3, 2, 0, 0, 20));
+
+  basic_print_id (idhelper, idhelper.channel_id (-1, 1, 1, 0, 1)); 
+  basic_print_id (idhelper, idhelper.channel_id (-2, 2, 1, 0, 10));
+  basic_print_id (idhelper, idhelper.channel_id (-3, 2, 0, 0, 20));
+}
+
+
+// neighbors
+void test4 (const LArEM_SuperCell_ID& /*em_id*/)
+{
+  std::cout << "test4\n";
+
+#if 0
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < em_id.channel_hash_max(); ++iCell){
+    em_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == em_id.channel_hash_max()-1);
+#endif
+}
+
+
+int main()
+{
+  LArEM_SuperCell_ID* idhelper = make_helper();
+  LArEM_SuperCell_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, true);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper, true);
+    test4 (*idhelper_n);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArFCAL_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArFCAL_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d013f100d76d909f15834005832ae2e0accdae29
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArFCAL_ID_test.cxx
@@ -0,0 +1,107 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArFCAL_ID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for LArFCAL_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "boost/foreach.hpp"
+#include <iostream>
+#include <string>
+#include <vector>
+
+
+#include "larfcal_id_test_common.cxx"
+
+
+LArFCAL_ID* make_helper (bool do_neighbours = false)
+{
+  LArFCAL_ID* idhelper = new LArFCAL_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+// neighbors
+void test4 (const LArFCAL_ID& fcal_id)
+{
+  std::cout << "test4\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < fcal_id.channel_hash_max(); ++iCell){
+    fcal_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == fcal_id.channel_hash_max()-1);
+}
+
+
+void test_basic (const LArFCAL_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (2, 1, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 2, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 3, 1, 1));
+
+  basic_print_id (idhelper, idhelper.channel_id (-2, 1, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 2, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 3, 1, 1));
+}
+
+
+int main()
+{
+  LArFCAL_ID* idhelper = make_helper();
+  LArFCAL_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, false);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+    test4 (*idhelper_n);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArFCAL_SuperCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArFCAL_SuperCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..04e371da037057fae88bef303737c78c855e0c69
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArFCAL_SuperCell_ID_test.cxx
@@ -0,0 +1,71 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArFCAL_SuperCell_ID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for LArFCAL_SuperCell_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArFCAL_SuperCell_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "boost/foreach.hpp"
+#include <iostream>
+#include <string>
+#include <vector>
+
+
+#include "larfcal_id_test_common.cxx"
+
+
+LArFCAL_SuperCell_ID* make_helper ()
+{
+  LArFCAL_SuperCell_ID* idhelper = new LArFCAL_SuperCell_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (false);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const LArFCAL_SuperCell_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (2, 1, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 2, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 3, 1, 1));
+
+  basic_print_id (idhelper, idhelper.channel_id (-2, 1, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 2, 1, 1));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 3, 1, 1));
+}
+
+
+int main()
+{
+  LArFCAL_SuperCell_ID* idhelper = make_helper();
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, true);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArHEC_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArHEC_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d4b76923b03ea4c6520d23044b759dfbfa9c238b
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArHEC_ID_test.cxx
@@ -0,0 +1,102 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArHEC_ID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for LArHEC_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "boost/foreach.hpp"
+#include <iostream>
+
+
+#include "larhec_id_test_common.cxx"
+
+
+LArHEC_ID* make_helper (bool do_neighbours = false)
+{
+  LArHEC_ID* idhelper = new LArHEC_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const LArHEC_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (2, 1, 0, 0, 1));
+  basic_print_id (idhelper, idhelper.channel_id (2, 2, 0, 2, 10));
+  basic_print_id (idhelper, idhelper.channel_id (2, 3, 1, 0, 20));
+
+  basic_print_id (idhelper, idhelper.channel_id (-2, 1, 0, 0, 1));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 2, 0, 2, 10));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 3, 1, 0, 20));
+}
+
+
+void test_neighbors (const LArHEC_ID& idhelper)
+{
+  std::cout << "test_neighbors\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < idhelper.channel_hash_max(); ++iCell){
+    idhelper.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == idhelper.channel_hash_max()-1);
+}
+
+
+int main()
+{
+  LArHEC_ID* idhelper = make_helper();
+  LArHEC_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, false);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+    test_neighbors (*idhelper_n);
+    test_hec (*idhelper);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArHEC_SuperCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArHEC_SuperCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8a04f39001c513131549cbc0f15f9b0655b2b4c6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArHEC_SuperCell_ID_test.cxx
@@ -0,0 +1,100 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArHEC_ID_SuperCell_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for LArHEC_SuperCell_ID.
+ */
+
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArHEC_SuperCell_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include <iostream>
+
+
+#include "larhec_id_test_common.cxx"
+
+
+LArHEC_SuperCell_ID* make_helper(bool do_neighbours = false)
+{
+  LArHEC_SuperCell_ID* idhelper = new LArHEC_SuperCell_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const LArHEC_Base_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (2, 0, 0, 0, 1)); 
+  basic_print_id (idhelper, idhelper.channel_id (2, 0, 1, 3, 2)); 
+
+  basic_print_id (idhelper, idhelper.channel_id (-2, 0, 0, 0, 1)); 
+  basic_print_id (idhelper, idhelper.channel_id (-2, 0, 1, 3, 2)); 
+}
+
+
+void test_neighbors (const LArHEC_SuperCell_ID& idhelper)
+{
+  std::cout << "test_neighbors\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < idhelper.channel_hash_max(); ++iCell){
+    idhelper.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == idhelper.channel_hash_max()-1);
+}
+
+
+int main()
+{
+  LArHEC_SuperCell_ID* idhelper = make_helper();
+  LArHEC_SuperCell_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, true);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+    test_neighbors (*idhelper_n);
+    test_hec (*idhelper);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/LArMiniFCAL_ID_test.cxx b/Calorimeter/CaloIdentifier/test/LArMiniFCAL_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..e9259f5ee2ed86c4a08d0b4f63af947340b19d51
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/LArMiniFCAL_ID_test.cxx
@@ -0,0 +1,341 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/LArMiniFCAL_ID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for LArMiniFCAL_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include <iostream>
+
+
+#include "hash_test.h"
+
+
+class LArMiniFCAL_ID_Test
+  : public LArMiniFCAL_ID
+{
+public:
+  using LArMiniFCAL_ID::lar_field_value;
+  using LArMiniFCAL_ID::lar_fcal_field_value;
+};
+
+
+LArMiniFCAL_ID* make_helper (bool do_neighbours = false)
+{
+  LArMiniFCAL_ID* idhelper = new LArMiniFCAL_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_sLHC-MiniFcal-00.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+// This because test differencing ignored lines containing `0x...'
+std::string munghex (const std::string& h)
+{
+  if (h.size() > 2 && h[0] == '0' && h[1] == 'x')
+    return "hex(" + h.substr (2, std::string::npos) + ")";
+  return h;
+}
+void basic_print_id (const LArMiniFCAL_ID& idhelper, const Identifier& id)
+{
+  std::cout << idhelper.show_to_string (id) << " "
+            << munghex(id.getString()) << "\n";
+}
+
+
+void test_basic (const LArMiniFCAL_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.channel_id (2, 0, 0, 0, 0));
+  basic_print_id (idhelper, idhelper.channel_id (2, 0, 1, 0, 0));
+  basic_print_id (idhelper, idhelper.channel_id (2, 0, 2, 0, 0));
+
+  basic_print_id (idhelper, idhelper.channel_id (-2, 0, 0, 0, 0));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 0, 1, 0, 0));
+  basic_print_id (idhelper, idhelper.channel_id (-2, 0, 2, 0, 0));
+}
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int samp);
+  void report();
+
+
+private:
+  enum {
+    N_SAMP = 4
+  };
+  unsigned m_counts[N_SAMP];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned j=0; j < N_SAMP; j++)
+    m_counts[j] = 0;
+}
+
+
+void CellCounter::count (int samp)
+{
+  if (samp < 0 || samp >= N_SAMP) std::abort();
+  ++m_counts[samp];
+}
+
+
+void CellCounter::report()
+{
+  unsigned tot = 0;
+  printf ("Sampling\n");
+  for (unsigned s=0; s < N_SAMP; s++) {
+    printf ("%1d          %6d\n", s, m_counts[s]);
+    tot += m_counts[s];
+  }
+  printf ("Total      %6d\n", tot);
+}
+
+
+void test_connected (const LArMiniFCAL_ID& idhelper)
+{
+  std::cout << "test_connected\n";
+
+  HASH_TEST1(channel,minifcal,HASH_TEST_EXTRA(channel));
+  HASH_TEST1(module,mod,HASH_TEST_EXTRA(module));
+
+  CellCounter counts;
+  TEST_LOOP(Identifier id, idhelper.minifcal_range()) {
+    IdentifierHash hashId = idhelper.channel_hash (id);
+    assert (idhelper.is_connected(id));
+    assert (idhelper.is_connected(hashId));
+    assert (hashId == idhelper.channel_hash_binary_search (id));
+
+    assert (idhelper.is_supercell(id) == false);
+
+    int side  = idhelper.pos_neg (id);
+    int mod   = idhelper.module (id);
+    int depth = idhelper.depth (id);
+    int eta   = idhelper.eta (id);
+    int phi   = idhelper.phi (id);
+
+    assert (id == idhelper.channel_id (side, mod, depth, eta, phi));
+    assert (idhelper.is_connected (side, mod, depth, eta, phi));
+    assert (!idhelper.is_disconnected (side, mod, depth, eta, phi));
+
+    Identifier mod_id = idhelper.module_id (side, mod);
+    assert (id == idhelper.channel_id (mod_id, depth, eta, phi));
+
+    assert (mod_id == idhelper.module_id (id));
+
+    counts.count (depth);
+
+    ExpandedIdentifier exp_id;
+    LArMiniFCAL_ID_Test* idhelper_test = (LArMiniFCAL_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_fcal_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.module(id)
+	   << idhelper.depth(id)
+           << idhelper.eta(id)
+           << idhelper.phi(id);
+    assert (idhelper.channel_id (exp_id) == id);
+  }
+  counts.report();
+
+  TEST_LOOP(Identifier id, idhelper.mod_range()) {
+    IdentifierHash hashId = idhelper.module_hash(id);
+    printf ("Region %-18s eta: %8.6f %8.6f %1d %3d phi: %3.1f %8.6f %1d %3d\n",
+            idhelper.show_to_string(id).c_str(),
+            idhelper.eta0(hashId),
+            idhelper.etaGranularity(hashId),
+            idhelper.eta_min(id),
+            idhelper.eta_max(id),
+            idhelper.phi0(hashId),
+            idhelper.phiGranularity(hashId),
+            idhelper.phi_min(id),
+            idhelper.phi_max(id));
+
+    int side  = idhelper.pos_neg (id);
+    int mod   = idhelper.module (id);
+    assert (id == idhelper.module_id (side, mod));
+
+    ExpandedIdentifier exp_id;
+    LArMiniFCAL_ID_Test* idhelper_test = (LArMiniFCAL_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_fcal_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.module(id)
+	   << idhelper.depth(id);
+    assert (idhelper.module_id (exp_id) == id);
+  }
+}
+
+
+void test_disco (const LArMiniFCAL_ID& idhelper)
+{
+  std::cout << "test_disco\n";
+
+  // No disconnected channels.
+
+  assert (idhelper.disc_channel_hash_min() == idhelper.channel_hash_max());
+  assert (idhelper.disc_channel_hash_min() == idhelper.disc_channel_hash_max());
+
+  assert (idhelper.disc_minifcal_begin() == idhelper.disc_minifcal_end());
+  int n = 0;
+  TEST_LOOP(Identifier id, idhelper.disc_minifcal_range()) {
+    ++n;
+    IdentifierHash hashId = idhelper.disc_channel_hash(id);
+    assert (id == idhelper.disc_channel_id(hashId));
+
+    assert (idhelper.is_supercell(id) == false);
+
+    int side  = idhelper.pos_neg (id);
+    int mod   = idhelper.module (id);
+    int depth = idhelper.depth (id);
+
+    assert (idhelper.eta(id) == -999);
+    assert (idhelper.phi(id) == -999);
+    int eta  = idhelper.disc_eta(id);
+    int phi  = idhelper.disc_phi(id);
+
+    assert (id == idhelper.disc_channel_id (side, mod, depth, eta, phi));
+
+    assert (!idhelper.is_connected(id));
+    assert (!idhelper.is_connected(hashId));
+    assert (!idhelper.is_connected (side, mod, depth, eta, phi));
+    assert (idhelper.is_disconnected (side, mod, depth, eta, phi));
+
+    assert (idhelper.module_id(id) == idhelper.disc_module_id (side, mod));
+
+    ExpandedIdentifier exp_id;
+    LArMiniFCAL_ID_Test* idhelper_test = (LArMiniFCAL_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_fcal_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.module(id)
+	   << idhelper.depth(id)
+           << idhelper.eta(id)
+           << idhelper.phi(id);
+    assert (idhelper.disc_channel_id (exp_id) == id);
+  }
+  assert (n == 0);
+
+  BOOST_FOREACH (Identifier id, idhelper.disc_mod_range()) {
+    ExpandedIdentifier exp_id;
+    LArMiniFCAL_ID_Test* idhelper_test = (LArMiniFCAL_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_fcal_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.module(id)
+	   << idhelper.depth(id);
+    assert (idhelper.disc_module_id (exp_id) == id);
+    ++n;
+  }
+
+  for (LArMiniFCAL_ID::id_iterator it = idhelper.disc_mod_begin();
+       it != idhelper.disc_mod_end();
+       ++it)
+  {
+    --n;
+  }
+  assert (n == 0);
+}
+
+
+void test_exceptions (const LArMiniFCAL_ID& idhelper)
+{
+  std::cout << "test_exceptions\n";
+
+  bool caught = false;
+  try {
+    /*Identifier wrongRegionId =*/ idhelper.module_id (99,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    /*Identifier wrongChannelId =*/ idhelper.channel_id (2,0,0,0,999);
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 2: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
+void test_neighbors (const LArMiniFCAL_ID& idhelper)
+{
+  std::cout << "test_neighbors\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < idhelper.channel_hash_max(); ++iCell){
+    idhelper.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  // Not working for now.
+  //assert (hash_min == 0);
+  //assert (hash_max == idhelper.channel_hash_max()-1);
+}
+
+
+int main()
+{
+  LArMiniFCAL_ID* idhelper = make_helper();
+  LArMiniFCAL_ID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper);
+    test_disco (*idhelper);
+    test_exceptions (*idhelper);
+    test_neighbors (*idhelper_n);
+  }
+  catch(LArID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/TileID_test.cxx b/Calorimeter/CaloIdentifier/test/TileID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..fd82678a44d8c9111618af1eae3877fc2cba5719
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/TileID_test.cxx
@@ -0,0 +1,111 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/TileID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for TileID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/TileID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "Identifier/IdentifierHash.h"
+#include <iostream>
+
+
+#include "tile_id_test_common.cxx"
+
+
+TileID* make_helper (bool do_neighbours = false)
+{
+  TileID* idhelper = new TileID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("TileCalorimeter",
+                                    "IdDictTileCalorimeter.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idd.add_metadata("TILENEIGHBORS",       "TileNeighbour_reduced.txt");  
+  idhelper->set_do_neighbours (do_neighbours);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const TileID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.cell_id (1, 1, 0, 0, 1));
+  basic_print_id (idhelper, idhelper.cell_id (2, 1, 1, 10, 2));
+  basic_print_id (idhelper, idhelper.cell_id (3, 1, 2, 11, 3));
+
+  basic_print_id (idhelper, idhelper.cell_id (1, -1, 0, 0, 1));
+  basic_print_id (idhelper, idhelper.cell_id (2, -1, 1, 10, 2));
+  basic_print_id (idhelper, idhelper.cell_id (3, -1, 2, 11, 3));
+
+  assert (idhelper.is_tile (idhelper.tile_system()));
+
+  assert (idhelper.section (idhelper.tile_barrel()) == TileID::BARREL);
+  assert (idhelper.section (idhelper.tile_extbarrel()) == TileID::EXTBAR);
+  assert (idhelper.section (idhelper.tile_gap()) == TileID::GAPDET);
+
+  assert (idhelper.section (idhelper.tile_det(3)) == 3);
+  assert (idhelper.section (idhelper.tile_det(4)) == 4);
+}
+
+
+void test_neighbors (const TileID& idhelper)
+{
+  std::cout << "test_neighbors\n";
+
+  std::vector<IdentifierHash> neighbourList;
+  IdentifierHash hash_min = 999999 ;
+  IdentifierHash hash_max = 0 ;
+  for (unsigned int iCell = 0 ; iCell < idhelper.cell_hash_max(); ++iCell){
+    idhelper.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+    std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+    std::vector<IdentifierHash>::iterator last=neighbourList.end();
+    for (;last!=first; first++){
+      
+      IdentifierHash neighbourHash=(*first);
+      if(neighbourHash < hash_min ) {
+        hash_min = neighbourHash;
+      }
+      if(neighbourHash > hash_max) {
+        hash_max = neighbourHash;
+      }
+      
+    }
+  }
+
+  assert (hash_min == 0);
+  assert (hash_max == idhelper.cell_hash_max()-1);
+}
+
+
+int main()
+{
+  TileID* idhelper = make_helper();
+  TileID* idhelper_n = make_helper(true);
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, false);
+    test_exceptions (*idhelper);
+    test_neighbors (*idhelper_n);
+    test_to_string (*idhelper, false);
+  }
+  catch(TileID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/Tile_SuperCell_ID_test.cxx b/Calorimeter/CaloIdentifier/test/Tile_SuperCell_ID_test.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..7c0645ba0a466ab4605e54cbb65d18bd678960b6
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/Tile_SuperCell_ID_test.cxx
@@ -0,0 +1,75 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/Tile_SuperCell_ID_test.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Unit test for Tile_SuperCell_ID.
+ */
+
+#undef NDEBUG
+
+#include "CaloIdentifier/Tile_SuperCell_ID.h"
+#include "IdDictParser/IdDictParser.h"
+#include "Identifier/IdentifierHash.h"
+#include <iostream>
+
+
+#include "tile_id_test_common.cxx"
+
+
+Tile_SuperCell_ID* make_helper()
+{
+  Tile_SuperCell_ID* idhelper = new Tile_SuperCell_ID;
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("TileCalorimeter",
+                                    "IdDictTileCalorimeter.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+  idhelper->set_do_neighbours (false);
+  assert (idhelper->initialize_from_dictionary (idd) == 0);
+
+  assert (!idhelper->do_checks());
+  idhelper->set_do_checks (true);
+  assert (idhelper->do_checks());
+
+  return idhelper;
+}
+
+
+void test_basic (const Tile_SuperCell_ID& idhelper)
+{
+  std::cout << "test_basic\n";
+
+  basic_print_id (idhelper, idhelper.cell_id (1, 1, 0, 0, 0));
+  basic_print_id (idhelper, idhelper.cell_id (2, 1, 1, 10, 2));
+
+  basic_print_id (idhelper, idhelper.cell_id (1, -1, 0, 0, 0));
+  basic_print_id (idhelper, idhelper.cell_id (2, -1, 1, 10, 2));
+
+  assert (idhelper.is_tile (idhelper.tile_system()));
+
+  assert (idhelper.section (idhelper.tile_barrel()) == Tile_SuperCell_ID::BARREL);
+  assert (idhelper.section (idhelper.tile_extbarrel()) == Tile_SuperCell_ID::EXTBAR);
+
+  assert (idhelper.section (idhelper.tile_det(2)) == 2);
+  assert (idhelper.is_supercell (idhelper.tile_det(2)));
+}
+
+
+int main()
+{
+  Tile_SuperCell_ID* idhelper = make_helper();
+  try {
+    test_basic (*idhelper);
+    test_connected (*idhelper, true);
+    test_exceptions (*idhelper);
+    test_to_string (*idhelper, true);
+  }
+  catch(TileID_Exception & except){
+    std::cout << "Unexpected exception: " << (std::string) except << std::endl ;
+  }
+  return 0;
+}
diff --git a/Calorimeter/CaloIdentifier/test/calocell_id_test_common.cxx b/Calorimeter/CaloIdentifier/test/calocell_id_test_common.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..43d5a93783de66912eff7f29050dd9e31b901318
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/calocell_id_test_common.cxx
@@ -0,0 +1,734 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/calocell_id_test_common.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Code common between CaloCell_ID_test and CaloCell_SuperCell_ID test.
+ *        This file is meant to be included in another file,
+ *        not compiled separately.
+ */
+
+
+#include "IdDictParser/IdDictParser.h"
+#include "boost/foreach.hpp"
+#include <map>
+#include <string>
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int bec, int samp);
+  void report() const;
+
+
+private:
+  enum {
+    N_BEC = 3,
+    N_SAMP = 4
+  };
+  unsigned m_counts[N_BEC][N_SAMP];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned i=0; i < N_BEC; i++)
+    for (unsigned j=0; j < N_SAMP; j++)
+      m_counts[i][j] = 0;
+}
+
+
+void CellCounter::count (int bec, int samp)
+{
+  bec = std::abs(bec) - 1;
+  if (bec < 0 || bec >= N_BEC) std::abort();
+  if (samp < 0 || samp >= N_SAMP) std::abort();
+  ++m_counts[bec][samp];
+}
+
+
+void CellCounter::report() const
+{
+  unsigned tot[N_BEC] = {0};
+  printf ("Sampling   Barrel   Outer wheel   Inner wheel\n");
+  for (unsigned s=0; s < N_SAMP; s++) {
+    printf ("%1d          %6d        %6d        %6d\n",
+            s, m_counts[0][s], m_counts[1][s], m_counts[2][s]);
+    for (unsigned b=0; b < N_BEC; b++)
+      tot[b] += m_counts[b][s];
+  }
+  printf ("Total      %6d        %6d        %6d   Grand total: %6d\n",
+          tot[0], tot[1], tot[2],
+          tot[0]+tot[1]+tot[2]);
+}
+
+
+class TileCounter
+{
+public:
+  TileCounter();
+  void count(int section, int side);
+  void report() const;
+
+
+private:
+  enum {
+    N_SECTION = 4,
+    N_SIDE = 2
+  };
+  unsigned m_counts[N_SECTION][N_SIDE];
+};
+
+
+TileCounter::TileCounter()
+{
+  for (unsigned i=0; i < N_SECTION; i++)
+    for (unsigned j=0; j < N_SIDE; j++)
+      m_counts[i][j] = 0;
+}
+
+
+void TileCounter::count (int section, int side)
+{
+  section -= 1;
+  side = (side+1) / 2;
+  if (section < 0 || section >= N_SECTION) std::abort();
+  if (side < 0 || side >= N_SIDE) std::abort();
+  ++m_counts[section][side];
+}
+
+
+void TileCounter::report() const
+{
+  unsigned tot[N_SECTION] = {0};
+  printf ("Side    Barrel   Extended Barrel   Gap     Ancillary\n");
+  for (unsigned s=0; s < N_SIDE; s++) {
+    printf ("%1d       %6d   %6d            %6d  %6d   \n",
+            s, m_counts[0][s], m_counts[1][s], m_counts[2][s], m_counts[3][s]);
+    for (unsigned b=0; b < N_SECTION; b++)
+      tot[b] += m_counts[b][s];
+  }
+  printf ("Total   %6d   %6d            %6d  %6d   Grand total: %6d\n",
+          tot[0], tot[1], tot[2], tot[3],
+          tot[0]+tot[1]+tot[2]+tot[3]);
+}
+
+
+class CellCounters
+{
+public:
+  void count(const char* type, int bec, int samp);
+  void report() const;
+
+private:
+  std::map<std::string, CellCounter> m_counters;
+  TileCounter m_tilecounter;
+};
+
+
+void CellCounters::count (const char* type, int bec, int samp)
+{
+  if (std::string(type) == "TILE")
+    m_tilecounter.count (bec, samp);
+  else
+    m_counters[type].count (bec, samp);
+}
+
+
+void CellCounters::report() const
+{
+  for (std::map<std::string, CellCounter>::const_iterator i= m_counters.begin();
+       i != m_counters.end();
+       ++i)
+  {
+    std::cout << "======\n";
+    std::cout << i->first << "\n";
+    i->second.report();
+    std::cout << "\n";
+  }
+  std::cout << "======\n";
+  std::cout << "Tile\n";
+  m_tilecounter.report();
+  std::cout << "\n";
+  
+}
+
+
+template <class T>
+T* make_helper (IdDictMgr& idd, bool do_neighbours)
+{
+  T* h = new T;
+  h->set_do_neighbours (do_neighbours);
+  assert (h->initialize_from_dictionary (idd) == 0);
+  return h;
+}
+
+
+template <class CALOCELL_ID_T,
+          class LAREM_ID_T,
+          class LARHEC_ID_T,
+          class LARFCAL_ID_T,
+          class TILE_ID_T>
+CALOCELL_ID_T* make_calo_id_t (bool do_neighbours = false)
+{
+  IdDictParser* parser = new IdDictParser;
+  parser->register_external_entity ("LArCalorimeter",
+                                    "IdDictLArCalorimeter_DC3-05-Comm-01.xml");
+  IdDictMgr& idd = parser->parse ("IdDictParser/ATLAS_IDS.xml");
+
+  // Set some default file names for neighbours (RDS 12/2009):
+  idd.add_metadata("FULLATLASNEIGHBORS",  "SuperCaloNeighbours-DC3-05-Comm-01.dat");  
+  idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+  idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+  idd.add_metadata("TILENEIGHBORS",       "TileNeighbour_reduced.txt");  
+
+  LAREM_ID_T* em_id = make_helper<LAREM_ID_T> (idd, do_neighbours);
+  LARHEC_ID_T* hec_id = make_helper<LARHEC_ID_T> (idd, do_neighbours);
+  LARFCAL_ID_T* fcal_id = make_helper<LARFCAL_ID_T> (idd, do_neighbours);
+
+#if 0
+  IdDictParser* miniparser = new IdDictParser;
+  miniparser->register_external_entity ("LArCalorimeter",
+                                        "IdDictLArCalorimeter_sLHC-MiniFcal-00.xml");
+  IdDictMgr& mini_idd = miniparser->parse ("IdDictParser/ATLAS_IDS.xml");
+  mini_idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+  mini_idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+  mini_idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+#endif
+  // Adding in MiniFCAL doesn't really work, because MiniFCAL and FCAL
+  // overlap ID assignments!
+  LArMiniFCAL_ID* minifcal_id = make_helper<LArMiniFCAL_ID> (/*mini_*/idd,do_neighbours);
+
+  TILE_ID_T* tile_id = make_helper<TILE_ID_T> (idd, do_neighbours);
+
+  CALOCELL_ID_T* calo_id = new CALOCELL_ID_T (em_id,
+                                              hec_id,
+                                              fcal_id,
+                                              minifcal_id,
+                                              tile_id);
+  assert (calo_id->initialize_from_dictionary (idd) == 0);
+
+  assert (!calo_id->do_checks());
+  calo_id->set_do_checks (true);
+  assert (calo_id->do_checks());
+
+  assert (calo_id->em_idHelper() == em_id);
+  assert (calo_id->hec_idHelper() == hec_id);
+  assert (calo_id->fcal_idHelper() == fcal_id);
+  assert (calo_id->minifcal_idHelper() == minifcal_id);
+  assert (calo_id->tile_idHelper() == tile_id);
+
+  return calo_id;
+}
+
+
+void region_test (const CaloCell_Base_ID& calo_id, const Identifier& ch_id)
+{
+  IdentifierHash hashId = calo_id.calo_cell_hash ( ch_id );
+
+  assert (calo_id.sub_calo(ch_id) == calo_id.sub_calo(hashId));
+  assert (calo_id.calo_sample(ch_id) == calo_id.calo_sample(hashId));
+  assert (calo_id.is_em(ch_id) == calo_id.is_em(hashId));
+  assert (calo_id.is_hec(ch_id) == calo_id.is_hec(hashId));
+  assert (calo_id.is_fcal(ch_id) == calo_id.is_fcal(hashId));
+  assert (calo_id.is_minifcal(ch_id) == calo_id.is_minifcal(hashId));
+  assert (calo_id.is_tile(ch_id) == calo_id.is_tile(hashId));
+
+  if (calo_id.is_em (ch_id)) {
+    assert (calo_id.sub_calo (hashId) == CaloCell_Base_ID::LAREM);
+    int bec  = calo_id.pos_neg(ch_id);
+    switch (bec) {
+    case 1:
+    case -1:
+      assert (calo_id.is_em_barrel (ch_id));
+      assert (!calo_id.is_em_endcap (ch_id));
+      assert (!calo_id.is_em_endcap_inner (ch_id));
+      assert (!calo_id.is_em_endcap_outer (ch_id));
+      break;
+    case 2:
+    case -2:
+      assert (!calo_id.is_em_barrel (ch_id));
+      assert (calo_id.is_em_endcap (ch_id));
+      assert (!calo_id.is_em_endcap_inner (ch_id));
+      assert (calo_id.is_em_endcap_outer (ch_id));
+      break;
+    case 3:
+    case -3:
+      assert (!calo_id.is_em_barrel (ch_id));
+      assert (calo_id.is_em_endcap (ch_id));
+      assert (calo_id.is_em_endcap_inner (ch_id));
+      assert (!calo_id.is_em_endcap_outer (ch_id));
+      break;
+    default:
+      abort();
+    }
+  }
+
+  else if (calo_id.is_hec (ch_id)) {
+    assert (calo_id.sub_calo (hashId) == CaloCell_Base_ID::LARHEC);
+  }
+
+  else if (calo_id.is_fcal (ch_id)) {
+    assert (calo_id.sub_calo (hashId) == CaloCell_Base_ID::LARFCAL);
+  }
+
+  else if (calo_id.is_minifcal (ch_id)) {
+    assert (calo_id.sub_calo (hashId) == CaloCell_Base_ID::LARMINIFCAL);
+  }
+
+  else if (calo_id.is_tile (ch_id)) {
+    assert (calo_id.sub_calo (hashId) == CaloCell_Base_ID::TILE);
+    switch (calo_id.section (ch_id)) {
+    case 1:
+      assert (calo_id.is_tile_barrel (ch_id));
+      assert (!calo_id.is_tile_extbarrel (ch_id));
+      assert (!calo_id.is_tile_gap (ch_id));
+      break;
+
+    case 2:
+      assert (!calo_id.is_tile_barrel (ch_id));
+      assert (calo_id.is_tile_extbarrel (ch_id));
+      assert (!calo_id.is_tile_gap (ch_id));
+      break;
+
+    case 3:
+      assert (!calo_id.is_tile_barrel (ch_id));
+      assert (!calo_id.is_tile_extbarrel (ch_id));
+      assert (calo_id.is_tile_gap (ch_id));
+      break;
+
+    case 4:
+      assert (!calo_id.is_tile_barrel (ch_id));
+      assert (!calo_id.is_tile_extbarrel (ch_id));
+      assert (!calo_id.is_tile_gap (ch_id));
+      break;
+
+
+    default:
+      std::abort();
+    }
+
+    switch (calo_id.side (ch_id)) {
+    case 1:
+      assert (calo_id.is_tile_positive (ch_id));
+      assert (!calo_id.is_tile_negative (ch_id));
+      break;
+
+    case -1:
+      assert (!calo_id.is_tile_positive (ch_id));
+      assert (calo_id.is_tile_negative (ch_id));
+      break;
+
+    default:
+      std::abort();
+    }
+
+    assert (calo_id.is_tile_gapscin(ch_id) ==
+            (calo_id.sample (ch_id) == TileID::SAMP_E));
+  }
+
+  else
+    std::abort();
+}
+
+
+void test_cells (const CaloCell_Base_ID* calo_id, bool supercell = false)
+{
+  std::cout << "test_cells\n";
+
+  std::vector<Identifier>::const_iterator itId = calo_id->cell_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = calo_id->cell_end();
+  CellCounters counts;
+  assert ((itIdEnd - itId) == (int)calo_id->calo_cell_hash_max());
+
+  std::vector<int> hash_counts (calo_id->calo_cell_hash_max());
+
+  if (itId != itIdEnd)
+    std::cout << calo_id->show_to_string (*itId) << "\n";
+
+  int hashsum = 0;
+  for(; itId!=itIdEnd; ++itId) {
+    Identifier chId = *itId;
+    region_test (*calo_id, chId);
+
+    int subcalo0 = -1;
+
+    if (calo_id->is_em (chId)) {
+      counts.count ("EM", calo_id->pos_neg(chId), calo_id->sampling(chId));
+      subcalo0 = CaloCell_Base_ID::LAREM;
+      assert (calo_id->is_supercell (chId) == supercell);
+    }
+
+    else if (calo_id->is_hec (chId)) {
+      counts.count ("HEC", calo_id->pos_neg(chId), calo_id->sampling(chId));
+      subcalo0 = CaloCell_Base_ID::LARHEC;
+      assert (calo_id->is_supercell (chId) == supercell);
+    }
+
+    else if (calo_id->is_fcal (chId)) {
+      counts.count ("FCAL", calo_id->pos_neg(chId), calo_id->sampling(chId));
+      subcalo0 = CaloCell_Base_ID::LARFCAL;
+      assert (calo_id->is_supercell (chId) == supercell);
+    }
+
+    else if (calo_id->is_minifcal (chId)) {
+      counts.count ("MINIFCAL", calo_id->pos_neg(chId), calo_id->sampling(chId));
+      subcalo0 = CaloCell_Base_ID::LARMINIFCAL;
+      assert (calo_id->is_supercell (chId) == 0);
+    }
+
+    else if (calo_id->is_tile (chId)) {
+      counts.count ("TILE", calo_id->section(chId), calo_id->side(chId));
+      subcalo0 = CaloCell_Base_ID::TILE;
+      assert (calo_id->is_supercell (chId) == supercell);
+    }
+
+    else
+      std::abort();
+
+    IdentifierHash hashId = calo_id->calo_cell_hash ( chId );
+    int subcalo1 = calo_id->sub_calo(hashId);
+    hashsum += hashId;
+
+    assert (hashId < hash_counts.size());
+    assert (hash_counts[hashId] == 0);
+    hash_counts[hashId] = 1;
+
+    assert (subcalo1 == subcalo0);
+
+    IdentifierHash min=0, max=0;
+    calo_id->calo_cell_hash_range(chId, min, max);
+
+    IdentifierHash min2=0, max2=0;
+    calo_id->calo_cell_hash_range(subcalo1, min2, max2);
+
+    assert (min == min2);
+    assert (max == max2);
+
+    if (subcalo0 != -1) {
+      int subcalo2=-1;
+      IdentifierHash emHash = calo_id->subcalo_cell_hash(hashId, subcalo2) ;
+      assert (subcalo2 == subcalo1);
+      IdentifierHash caloCellHash = calo_id->calo_cell_hash(subcalo0, emHash) ;
+      assert (hashId == caloCellHash);
+    }
+
+    Identifier chanId1 = calo_id->cell_id ( hashId );
+    assert (chanId1 == chId);
+
+    int subcalo3 = calo_id->sub_calo(chId);
+    assert (subcalo3 == subcalo1);
+
+    int bec    = 888888;
+    int samp   = 888888;
+    int reg    = 888888;
+    int eta    = 888888;
+    int phi    = 888888;
+    if(calo_id->is_lar(chId)) {  
+      bec    = calo_id->pos_neg(chId);
+      samp   = calo_id->sampling(chId);
+      reg    = calo_id->region(chId);
+      eta    = calo_id->eta(chId);
+      phi    = calo_id->phi(chId);
+    }
+    else  if(calo_id->is_tile(chId)) {
+      bec    = calo_id->section(chId);
+      samp   = calo_id->side(chId);
+      reg    = calo_id->module(chId);
+      eta    = calo_id->tower(chId);
+      phi    = calo_id->sample(chId);
+    }
+    else
+      std::abort();
+
+    Identifier chanId3 = calo_id->cell_id (subcalo3, bec, samp, reg, eta, phi);
+    assert (chanId3 == chId);
+
+    Identifier regId = calo_id->region_id (chId);
+    if(!calo_id->is_tile(chId)) {           
+      Identifier chanId2 = calo_id->cell_id (regId, eta, phi);
+      assert (chanId2 == chId);
+    }
+
+    int subcalo4=-1;
+    IdentifierHash subHashId = calo_id->subcalo_cell_hash (chId, subcalo4) ;
+    assert (subcalo4 == subcalo1);
+
+    Identifier chanId4 = calo_id->cell_id ( subcalo3, subHashId );
+    assert (chanId4 == chId);
+  }
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : calo_id->cell_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, calo_id->cell_range()) {
+#endif
+    hashsum -= calo_id->calo_cell_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+  for (int i = 0; i < CaloCell_Base_ID::NSUBCALO; i++) {
+    IdentifierHash min=0, max=0;
+    calo_id->calo_cell_hash_range (i, min, max);
+    for (; min < max; min=min+1) {
+      assert (min < hash_counts.size());
+      assert (hash_counts[min] == 1);
+      ++hash_counts[min];
+    }
+  }
+
+  for (size_t i = 0; i < hash_counts.size(); i++)
+    assert (hash_counts[i] == 2);
+
+  counts.report();
+}
+
+
+void test_sample (const CaloCell_Base_ID* calo_id, bool supercell)
+{
+  std::cout << "test_sample\n";
+
+  Identifier id = calo_id->cell_id (CaloCell_Base_ID::LAREM,
+                                    1, 1, 0, 1, 1);
+  assert (calo_id->calo_sample (id) == CaloCell_Base_ID::EMB1);
+  assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+          CaloCell_Base_ID::EMB1);
+
+  id = calo_id->cell_id (CaloCell_Base_ID::LAREM,
+                         2, 1, 0, 0, 1);
+  assert (calo_id->calo_sample (id) == CaloCell_Base_ID::EME1);
+  assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+          CaloCell_Base_ID::EME1);
+
+  id = calo_id->cell_id (CaloCell_Base_ID::LAREM,
+                         3, 1, 0, 1, 1);
+  assert (calo_id->calo_sample (id) == CaloCell_Base_ID::EME2);
+  assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+          CaloCell_Base_ID::EME2);
+
+  id = calo_id->cell_id (CaloCell_Base_ID::LARHEC,
+                         2, 0, 0, 1, 1);
+  assert (calo_id->calo_sample (id) == CaloCell_Base_ID::HEC0);
+  assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+          CaloCell_Base_ID::HEC0);
+
+#if 0
+  id = calo_id->cell_id (CaloCell_Base_ID::LARMINIFCAL,
+                         2, 0, 0, 1, 1);
+  std::cout << "xxx2 " << calo_id->calo_sample (id) << "\n";
+  //assert (calo_id->calo_sample (id) == CaloCell_Base_ID::HEC1);
+  //assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+  //        CaloCell_Base_ID::HEC1);
+#endif
+
+  id = calo_id->cell_id (CaloCell_Base_ID::LARFCAL,
+                         2, 2, 0, 1, 0);
+  assert (calo_id->calo_sample (id) == CaloCell_Base_ID::FCAL1);
+  assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+          CaloCell_Base_ID::FCAL1);
+
+  if (supercell) {
+    id = calo_id->cell_id (CaloCell_Base_ID::TILE,
+                           1, 1, 0, 1, 0);
+    assert (calo_id->calo_sample (id) == CaloCell_Base_ID::TileBar0);
+    assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+            CaloCell_Base_ID::TileBar0);
+
+    id = calo_id->cell_id (CaloCell_Base_ID::TILE,
+                           2, 1, 0, 12, 2);
+    assert (calo_id->calo_sample (id) == CaloCell_Base_ID::TileExt2);
+    assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+            CaloCell_Base_ID::TileExt2);
+  }
+  else {
+    id = calo_id->cell_id (CaloCell_Base_ID::TILE,
+                           1, 1, 0, 1, 1);
+    assert (calo_id->calo_sample (id) == CaloCell_Base_ID::TileBar1);
+    assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+            CaloCell_Base_ID::TileBar1);
+
+    id = calo_id->cell_id (CaloCell_Base_ID::TILE,
+                           2, 1, 0, 12, 1);
+    assert (calo_id->calo_sample (id) == CaloCell_Base_ID::TileExt1);
+    assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+            CaloCell_Base_ID::TileExt1);
+
+    id = calo_id->cell_id (CaloCell_Base_ID::TILE,
+                           3, 1, 0, 9, 1);
+    assert (calo_id->calo_sample (id) == CaloCell_Base_ID::TileGap1);
+    assert (calo_id->calo_sample (calo_id->calo_cell_hash(id)) ==
+            CaloCell_Base_ID::TileGap1);
+  }
+}
+
+
+void test_subcalo (const CaloCell_Base_ID* calo_id)
+{
+  std::cout << "test_subcalo\n";
+
+  assert (calo_id->GetSubCaloName ("LAREM") == CaloCell_Base_ID::LAREM);
+  assert (calo_id->GetSubCaloName ("LARHEC") == CaloCell_Base_ID::LARHEC);
+  assert (calo_id->GetSubCaloName ("LARMINIFCAL") == CaloCell_Base_ID::LARMINIFCAL);
+  assert (calo_id->GetSubCaloName ("LARFCAL") == CaloCell_Base_ID::LARFCAL);
+  assert (calo_id->GetSubCaloName ("TILE") == CaloCell_Base_ID::TILE);
+  assert (calo_id->GetSubCaloName ("xxx") == CaloCell_Base_ID::NOT_VALID);
+
+  for (int subCalo = 0; subCalo < CaloCell_Base_ID::NSUBCALO; subCalo++) { 
+    std::vector<Identifier>::const_iterator itId = calo_id->cell_begin(subCalo);
+    std::vector<Identifier>::const_iterator itIdEnd = calo_id->cell_end(subCalo);
+    int nSubCalo = 0;
+    int hashsum = 0;
+    for(; itId!=itIdEnd;++itId){
+      nSubCalo++;
+      hashsum += calo_id->calo_cell_hash(*itId);
+    }
+    IdentifierHash min=0, max=0;
+    calo_id->calo_cell_hash_range(subCalo,min,max);
+    assert (nSubCalo == (int)(max-min));
+
+    nSubCalo = 0;
+#if __cplusplus > 201100
+    for (Identifier ch_id : calo_id->cell_range(subCalo)) {
+#else
+    BOOST_FOREACH (Identifier ch_id, calo_id->cell_range(subCalo)) {
+#endif
+      hashsum -= calo_id->calo_cell_hash(ch_id);
+    }
+    assert (hashsum == 0);
+  }
+
+  ExpandedIdentifier id1;
+  id1 << 5; // TILE
+  assert (calo_id->is_tile (id1));
+  ExpandedIdentifier id2;
+  id2 << 4; // LAR
+  assert (!calo_id->is_tile (id2));
+}
+
+
+void test_regions (const CaloCell_Base_ID* calo_id)
+{
+  std::cout << "test_regions\n";
+
+  std::vector<Identifier>::const_iterator itId = calo_id->reg_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = calo_id->reg_end();
+
+  std::vector<Identifier>::const_iterator itReg = calo_id->reg_end();
+  std::vector<Identifier>::const_iterator itRegEnd = calo_id->reg_end();
+  int last_subcalo = -1;
+
+  assert ((itIdEnd - itId) == (int)calo_id->calo_region_hash_max());
+
+  int hashsum = 0;
+  int subhashsum = 0;
+  for(; itId!=itIdEnd;++itId) {
+    Identifier regId = *itId;
+    IdentifierHash hashId = calo_id->calo_region_hash ( regId );
+    hashsum += hashId;
+#if 1
+    printf ("Region %-18s eta: %8.6f %8.6f %1d %3d phi: %3.1f %8.6f %1d %3d\n",
+            calo_id->show_to_string(regId).c_str(),
+            calo_id->eta0(regId),
+            calo_id->etaGranularity(regId),
+            calo_id->eta_min(regId),
+            calo_id->eta_max(regId),
+            calo_id->phi0(regId),
+            calo_id->phiGranularity(regId),
+            calo_id->phi_min(regId),
+            calo_id->phi_max(regId));
+#endif
+    Identifier regId1 = calo_id->region_id ( hashId );
+    assert (regId1 == regId);
+
+    int subcalo = calo_id->sub_calo(regId);
+
+    IdentifierHash min=0, max=0;
+    calo_id->calo_reg_hash_range(regId, min, max);
+    IdentifierHash min2=0, max2=0;
+    calo_id->calo_reg_hash_range(subcalo, min2, max2);
+    assert (min == min2);
+    assert (max == max2);
+
+    int subcalo2=-1;
+    IdentifierHash subHashId = calo_id->subcalo_region_hash(hashId, subcalo2);
+    assert (subcalo2 == subcalo);
+
+    IdentifierHash hashId2 =  calo_id->calo_region_hash (subcalo, subHashId) ;
+    assert (hashId2 == hashId);
+
+    if(calo_id->is_tile(regId)) {
+      int section = calo_id->section(regId);
+      int side = calo_id->side(regId);
+      Identifier regId2 = calo_id->region_id (subcalo, section, side, 0);
+      assert (regId2 == regId);
+    }
+    else {
+      int bec  = calo_id->pos_neg(regId);
+      int samp = calo_id->sampling(regId);
+      int reg  = calo_id->region(regId);
+      Identifier regId2 = calo_id->region_id (subcalo, bec, samp, reg);
+      assert (regId2 == regId);
+    }
+
+    int subcalo3 = -1;
+    IdentifierHash subHashId2 = calo_id->subcalo_region_hash (regId, subcalo3);
+    assert (subcalo3 == subcalo);
+    Identifier regId3 = calo_id->region_id ( subcalo, subHashId2 );
+    assert (regId3 == regId);
+
+    if (subcalo != last_subcalo) {
+      if (last_subcalo != -1) {
+#if __cplusplus > 201100
+        for (Identifier reg_id : calo_id->reg_range (last_subcalo)) {
+#else
+        BOOST_FOREACH (Identifier reg_id, calo_id->reg_range (last_subcalo)) {
+#endif
+          subhashsum -= calo_id->calo_region_hash (reg_id);
+        }
+        assert (subhashsum == 0);
+      }
+      assert (itReg == itRegEnd);
+      last_subcalo = subcalo;
+      itReg = calo_id->reg_begin (subcalo);
+      itRegEnd = calo_id->reg_end (subcalo);
+    }
+    subhashsum += hashId;
+    assert (itReg != itRegEnd);
+    assert (*itReg == regId);
+    ++itReg;
+  }
+
+#if __cplusplus > 201100
+  for (Identifier reg_id : calo_id->reg_range()) {
+#else
+  BOOST_FOREACH (Identifier reg_id, calo_id->reg_range()) {
+#endif
+    hashsum -= calo_id->calo_region_hash (reg_id);
+  }
+  assert (hashsum == 0);
+}
+
+
+void test_exceptions (const CaloCell_Base_ID* calo_id)
+{
+  std::cout << "test_exceptions\n";
+
+  bool caught = false;
+  try {
+    /*Identifier wrongChanId =*/ calo_id->cell_id (0, 99, 0, 0, 0, 0);
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/test/hash_test.h b/Calorimeter/CaloIdentifier/test/hash_test.h
new file mode 100644
index 0000000000000000000000000000000000000000..8e215c6e29abca651fde18af6ab6a46d149fa635
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/hash_test.h
@@ -0,0 +1,71 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file CaloIdentifier/test/hash_test.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date May, 2013
+ * @brief Helper for running id helper tests.
+ */
+
+
+#ifndef CALOIDENTIFIER_TEST_HASH_TEST_H
+#define CALOIDENTIFIER_TEST_HASH_TEST_H
+
+
+#include "boost/foreach.hpp"
+
+
+#if __cplusplus > 201100
+# define TEST_LOOP(var, range) for(var : range)
+#else
+# define TEST_LOOP(var, range) BOOST_FOREACH(var, range)
+#endif
+
+#define HASH_TEST1(TYPE,RANGE_TYPE,EXTRA) do                               \
+{                                                                          \
+  IdContext context = idhelper.TYPE##_context();                           \
+  int hashsum = 0;                                                         \
+  std::vector<Identifier>::const_iterator itId = idhelper.RANGE_TYPE##_begin();  \
+  std::vector<Identifier>::const_iterator itIdEnd = idhelper.RANGE_TYPE##_end(); \
+  const std::vector<Identifier>& ids = idhelper.TYPE##_ids();              \
+  std::vector<bool> hashvec(idhelper.TYPE##_hash_max());                   \
+  std::cout << "  n" << #TYPE << " " << itIdEnd - itId << "\n";            \
+                                                                           \
+  for(; itId!=itIdEnd; ++itId) {                                           \
+    Identifier id = *itId;                                                 \
+    IdentifierHash hashId;                                                 \
+    assert (idhelper.get_hash (id, hashId, &context) == 0);                \
+    Identifier id2;                                                        \
+    assert (idhelper.get_id (hashId, id2, &context) == 0);                 \
+    assert (id == id2);                                                    \
+    assert (hashId < hashvec.size());                                      \
+    assert (!hashvec[hashId]);                                             \
+    hashvec[hashId] = true;                                                \
+    assert (ids[hashId] == id);                                            \
+                                                                           \
+    hashsum += hashId;                                                     \
+    EXTRA                                                                  \
+  }                                                                        \
+                                                                           \
+  TEST_LOOP(Identifier id, idhelper.RANGE_TYPE##_range()) {                \
+    IdentifierHash hashId;                                                 \
+    assert (idhelper.get_hash (id, hashId, &context) == 0);                \
+    hashsum -= hashId;                                                     \
+  }                                                                        \
+  assert (hashsum == 0);                                                   \
+} while(0)
+
+#define HASH_TEST(TYPE) HASH_TEST1(TYPE,TYPE,{})
+
+#define HASH_TEST_EXTRA(TYPE) \
+  assert (id == idhelper.TYPE##_id (hashId)); \
+  assert (hashId == idhelper.TYPE##_hash (id));
+
+
+
+#endif // not CALOIDENTIFIER_TEST_HASH_TEST_H
diff --git a/Calorimeter/CaloIdentifier/test/larem_id_test_common.cxx b/Calorimeter/CaloIdentifier/test/larem_id_test_common.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..97ca8a754e47b27829c0864d8b9b9f8d93c8820d
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/larem_id_test_common.cxx
@@ -0,0 +1,387 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/larem_id_test_common.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Code common between LArEM_ID_test and LArEM_SuperCell_ID test.
+ *        This file is meant to be included in another file,
+ *        not compiled separately.
+ */
+
+
+#include "boost/foreach.hpp"
+
+
+// This because test differencing ignored lines containing `0x...'
+std::string munghex (const std::string& h)
+{
+  if (h.size() > 2 && h[0] == '0' && h[1] == 'x')
+    return "hex(" + h.substr (2, std::string::npos) + ")";
+  return h;
+}
+void basic_print_id (const LArEM_Base_ID& idhelper, const Identifier& id)
+{
+  std::cout << idhelper.show_to_string (id) << " "
+            << munghex(id.getString()) << "\n";
+}
+
+
+class LArEM_ID_Test
+  : public LArEM_Base_ID
+{
+public:
+  using LArEM_Base_ID::lar_field_value;
+  using LArEM_Base_ID::lar_em_field_value;
+};
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int bec, int samp);
+  void report();
+
+
+private:
+  enum {
+    N_BEC = 3,
+    N_SAMP = 4
+  };
+  unsigned m_counts[N_BEC][N_SAMP];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned i=0; i < N_BEC; i++)
+    for (unsigned j=0; j < N_SAMP; j++)
+      m_counts[i][j] = 0;
+}
+
+
+void CellCounter::count (int bec, int samp)
+{
+  bec = std::abs(bec) - 1;
+  if (bec < 0 || bec >= N_BEC) std::abort();
+  if (samp < 0 || samp >= N_SAMP) std::abort();
+  ++m_counts[bec][samp];
+}
+
+
+void CellCounter::report()
+{
+  unsigned tot[N_BEC] = {0};
+  printf ("Sampling   Barrel   Outer wheel   Inner wheel\n");
+  for (unsigned s=0; s < N_SAMP; s++) {
+    printf ("%1d          %6d        %6d        %6d\n",
+            s, m_counts[0][s], m_counts[1][s], m_counts[2][s]);
+    for (unsigned b=0; b < N_BEC; b++)
+      tot[b] += m_counts[b][s];
+  }
+  printf ("Total      %6d        %6d        %6d   Grand total: %6d\n",
+          tot[0], tot[1], tot[2],
+          tot[0]+tot[1]+tot[2]);
+}
+
+
+void region_test (const LArEM_Base_ID& em_id, const Identifier& ch_id)
+{
+  int bec  = em_id.barrel_ec(ch_id);
+  switch (bec) {
+  case 1:
+  case -1:
+    assert (em_id.is_em_barrel (ch_id));
+    assert (!em_id.is_em_endcap (ch_id));
+    assert (!em_id.is_em_endcap_inner (ch_id));
+    assert (!em_id.is_em_endcap_outer (ch_id));
+    break;
+  case 2:
+  case -2:
+    assert (!em_id.is_em_barrel (ch_id));
+    assert (em_id.is_em_endcap (ch_id));
+    assert (!em_id.is_em_endcap_inner (ch_id));
+    assert (em_id.is_em_endcap_outer (ch_id));
+    break;
+  case 3:
+  case -3:
+    assert (!em_id.is_em_barrel (ch_id));
+    assert (em_id.is_em_endcap (ch_id));
+    assert (em_id.is_em_endcap_inner (ch_id));
+    assert (!em_id.is_em_endcap_outer (ch_id));
+    break;
+  default:
+    abort();
+  }
+}
+
+
+void test_connected (const LArEM_Base_ID& em_id, bool supercell = false)
+{
+  std::cout << "test_connected\n";
+
+  // channels
+  IdContext channelContext = em_id.channel_context();
+  std::vector<Identifier>::const_iterator itId = em_id.em_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = em_id.em_end();
+  std::vector<bool> hashvec(em_id.channel_hash_max());
+  CellCounter counts;
+
+  std::cout << "  nchan " << itIdEnd - itId << "\n";
+
+  const std::vector<Identifier>& ch_ids = em_id.channel_ids();
+
+  int hashsum = 0;
+  for(; itId!=itIdEnd; ++itId) {
+    Identifier ch_id = *itId;
+    assert (em_id.is_lar_em (ch_id));
+    assert (em_id.is_connected (ch_id));
+
+    IdentifierHash hashId;
+    assert (em_id.get_hash (ch_id, hashId, &channelContext) == 0);
+    assert (em_id.is_connected (hashId));
+    Identifier ch_id2;
+    assert (em_id.get_id (hashId, ch_id2, &channelContext) == 0);
+    assert (ch_id == ch_id2);
+    assert (ch_id == em_id.channel_id (hashId));
+    assert (hashId == em_id.channel_hash (ch_id));
+    assert (hashId == em_id.channel_hash_binary_search (ch_id));
+    assert (hashId < hashvec.size());
+    assert (!hashvec[hashId]);
+    hashvec[hashId] = true;
+    assert (ch_ids[hashId] == ch_id);
+
+    hashsum += hashId;
+
+    int bec  = em_id.barrel_ec(ch_id);
+    int samp = em_id.sampling(ch_id);
+    int reg  = em_id.region(ch_id);
+    int eta  = em_id.eta(ch_id);
+    int phi  = em_id.phi(ch_id);
+    region_test (em_id, ch_id);
+
+    assert (em_id.is_supercell(ch_id) == supercell);
+      
+    assert (em_id.is_connected (bec, samp, reg, eta, phi));
+    assert (!em_id.is_disconnected (bec, samp, reg, eta, phi));
+
+    ch_id2 = em_id.channel_id (bec, samp, reg, eta, phi);
+    assert (ch_id == ch_id2);
+
+    Identifier reg_id = em_id.region_id (bec, samp, reg);
+    ch_id2 = em_id.channel_id (reg_id, eta, phi);
+    assert (ch_id == ch_id2);
+    assert (reg_id == em_id.region_id (ch_id));
+
+    counts.count (bec, samp);
+
+    ExpandedIdentifier exp_id;
+    LArEM_ID_Test* em_id_test = (LArEM_ID_Test*)&em_id;
+    exp_id << em_id_test->lar_field_value()
+      	   << em_id_test->lar_em_field_value()
+	   << em_id.barrel_ec(ch_id)
+	   << em_id.sampling(ch_id)
+	   << em_id.region(ch_id)
+           << em_id.eta(ch_id)
+           << em_id.phi(ch_id)
+           << (unsigned)em_id.is_supercell(ch_id);
+    assert (em_id.channel_id (exp_id) == ch_id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : em_id.em_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, em_id.em_range()) {
+#endif
+    hashsum -= em_id.channel_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+
+  // regions
+  itId = em_id.reg_begin();
+  itIdEnd = em_id.reg_end();
+  hashvec.clear();
+  hashvec.resize (em_id.region_hash_max());
+  IdContext region_context = em_id.region_context();
+  
+  std::cout << "  nreg " << itIdEnd - itId << "\n";
+
+  for(; itId!=itIdEnd; ++itId) {
+    Identifier reg_id = *itId;
+    
+    assert (em_id.is_supercell(reg_id) == supercell);
+
+    IdentifierHash regHash = em_id.region_hash(reg_id);
+    hashsum += regHash;
+#if 1
+    printf ("Region %-18s eta: %8.6f %8.6f %1d %3d phi: %3.1f %8.6f %1d %3d\n",
+            em_id.show_to_string(reg_id).c_str(),
+            em_id.eta0(regHash),
+            em_id.etaGranularity(regHash),
+            em_id.eta_min(reg_id),
+            em_id.eta_max(reg_id),
+            em_id.phi0(regHash),
+            em_id.phiGranularity(regHash),
+            em_id.phi_min(reg_id),
+            em_id.phi_max(reg_id));
+#endif
+    Identifier reg_id2 = em_id.region_id(regHash);
+    assert (reg_id == reg_id2);
+
+    IdentifierHash regHash2;
+    assert (em_id.get_hash (reg_id, regHash2, &region_context) == 0);
+
+    assert (!hashvec[regHash]);
+    hashvec[regHash] = true;
+
+    ExpandedIdentifier exp_id;
+    LArEM_ID_Test* em_id_test = (LArEM_ID_Test*)&em_id;
+    exp_id << em_id_test->lar_field_value()
+      	   << em_id_test->lar_em_field_value()
+	   << em_id.barrel_ec(reg_id)
+	   << em_id.sampling(reg_id)
+	   << em_id.region(reg_id);
+    assert (em_id.region_id (exp_id) == reg_id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : em_id.reg_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, em_id.reg_range()) {
+#endif
+    hashsum -= em_id.region_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+  counts.report();
+}
+
+
+void test_disco (const LArEM_Base_ID& em_id)
+{
+  std::cout << "test_disco\n";
+
+  // disconnected channels
+  //IdContext channelContext = em_id.channel_context();
+  std::vector<Identifier>::const_iterator itId = em_id.disc_em_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = em_id.disc_em_end();
+  CellCounter counts;
+
+  std::cout << "  nchan " << itIdEnd - itId << "\n";
+
+  assert (em_id.channel_hash_max() == em_id.disc_channel_hash_min());
+  std::vector<bool> hashvec(em_id.disc_channel_hash_max() - em_id.disc_channel_hash_min());
+
+  int hashsum = 0;
+  for (; itId!=itIdEnd; ++itId) {
+    Identifier ch_id = *itId;
+    assert (em_id.is_lar_em (ch_id));
+    assert (!em_id.is_connected (ch_id));
+
+    IdentifierHash hashId = em_id.disc_channel_hash (ch_id) ;
+    assert (!em_id.is_connected (hashId));
+    Identifier ch_id2 = em_id.disc_channel_id(hashId);
+    assert (ch_id == ch_id2);
+    assert (hashId >= em_id.channel_hash_max());
+    assert (!hashvec[hashId - em_id.disc_channel_hash_min()]);
+    hashvec[hashId - em_id.disc_channel_hash_min()] = true;
+
+    hashsum += hashId;
+
+    int bec  = em_id.barrel_ec(ch_id);
+    int samp = em_id.sampling(ch_id);
+    int reg  = em_id.region(ch_id);
+    region_test (em_id, ch_id);
+    counts.count (bec, samp);
+
+    assert (em_id.is_supercell(ch_id) == false);
+
+    assert (em_id.eta(ch_id) == -999);
+    assert (em_id.phi(ch_id) == -999);
+    int eta  = em_id.disc_eta(ch_id);
+    int phi  = em_id.disc_phi(ch_id);
+
+    assert (!em_id.is_connected (bec, samp, reg, eta, phi));
+    assert (em_id.is_disconnected (bec, samp, reg, eta, phi));
+      
+    ch_id2 = em_id.disc_channel_id (bec, samp, reg, eta, phi);
+    assert (ch_id == ch_id2);
+
+    Identifier reg_id = em_id.disc_region_id (bec, samp, reg);
+    ch_id2 = em_id.channel_id (reg_id, eta, phi);
+    assert (ch_id == ch_id2);
+
+    ExpandedIdentifier exp_id;
+    LArEM_ID_Test* em_id_test = (LArEM_ID_Test*)&em_id;
+    exp_id << em_id_test->lar_field_value()
+      	   << em_id_test->lar_em_field_value()
+	   << em_id.barrel_ec(ch_id)
+	   << em_id.sampling(ch_id)
+	   << em_id.region(ch_id)
+           << em_id.disc_eta(ch_id)
+           << em_id.disc_phi(ch_id)
+           << (unsigned)em_id.is_supercell(ch_id);
+    assert (em_id.disc_channel_id (exp_id) == ch_id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : em_id.disc_em_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, em_id.disc_em_range()) {
+#endif
+    hashsum -= em_id.disc_channel_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+  counts.report();
+}
+
+
+void test_exceptions (const LArEM_Base_ID& em_id, bool /*supercell*/ = false)
+{
+  std::cout << "test_exceptions\n";
+
+  bool caught = false;
+  try {
+    /*Identifier wrongRegionId =*/ em_id.region_id (0,99,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    /*Identifier wrongChannelId =*/ em_id.channel_id (0,99,0,0,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 2: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    Identifier goodRegionId = em_id.region_id (1,0,0); 
+    /*Identifier wrongChannelId =*/ em_id.channel_id (goodRegionId,0,-99); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 3: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/test/larfcal_id_test_common.cxx b/Calorimeter/CaloIdentifier/test/larfcal_id_test_common.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..19cc797a781de29eee198e88d56df3e6a1de54af
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/larfcal_id_test_common.cxx
@@ -0,0 +1,358 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/larfcal_id_test_common.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Code common between LArFCAL_ID_test and LArFCAL_SuperCell_ID test.
+ *        This file is meant to be included in another file,
+ *        not compiled separately.
+ */
+
+
+#include "boost/foreach.hpp"
+
+
+// This because test differencing ignored lines containing `0x...'
+std::string munghex (const std::string& h)
+{
+  if (h.size() > 2 && h[0] == '0' && h[1] == 'x')
+    return "hex(" + h.substr (2, std::string::npos) + ")";
+  return h;
+}
+void basic_print_id (const LArFCAL_Base_ID& idhelper, const Identifier& id)
+{
+  std::cout << idhelper.show_to_string (id) << " "
+            << munghex(id.getString()) << "\n";
+}
+
+
+class LArFCAL_ID_Test
+  : public LArFCAL_Base_ID
+{
+public:
+  using LArFCAL_Base_ID::lar_field_value;
+  using LArFCAL_Base_ID::lar_fcal_field_value;
+};
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int mod);
+  void report();
+
+
+private:
+  enum {
+    N_MOD = 3
+  };
+  unsigned m_counts[N_MOD];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned i=0; i < N_MOD; i++)
+    m_counts[i] = 0;
+}
+
+
+void CellCounter::count (int mod)
+{
+  if (mod < 1 || mod > N_MOD) std::abort();
+  ++m_counts[mod-1];
+}
+
+
+void CellCounter::report()
+{
+  int tot = 0;
+  printf ("  Module counts: ");
+  for (unsigned m=0; m < N_MOD; m++) {
+    printf ("%d ", m_counts[m]);
+    tot += m_counts[m];
+  }
+  printf ("; total: %d\n", tot);
+}
+
+
+void
+test_connected (const LArFCAL_Base_ID& fcal_id, bool supercell = false)
+{
+  std::cout << "test_connected\n";
+
+  // channels
+  IdContext channelContext = fcal_id.channel_context();
+  std::vector<Identifier>::const_iterator itId = fcal_id.fcal_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = fcal_id.fcal_end();
+  std::vector<bool> hashvec(fcal_id.channel_hash_max());
+  CellCounter counts;
+
+  std::cout << "  nchan " << itIdEnd - itId << "\n";
+
+  const std::vector<Identifier>& ch_ids = fcal_id.channel_ids();
+
+  int hashsum = 0;
+  for(; itId!=itIdEnd; ++itId) {
+    Identifier ch_id = *itId;
+    assert (fcal_id.is_connected (ch_id));
+
+    IdentifierHash hashId;
+    assert (fcal_id.get_hash (ch_id, hashId, &channelContext) == 0);
+    assert (fcal_id.is_connected (hashId));
+    Identifier ch_id2;
+    assert (fcal_id.get_id (hashId, ch_id2, &channelContext) == 0);
+    assert (ch_id == ch_id2);
+    assert (ch_id == fcal_id.channel_id (hashId));
+    assert (hashId == fcal_id.channel_hash (ch_id));
+    assert (hashId == fcal_id.channel_hash_binary_search (ch_id));
+    assert (hashId < hashvec.size());
+    assert (!hashvec[hashId]);
+    hashvec[hashId] = true;
+    assert (ch_ids[hashId] == ch_id);
+
+    hashsum += hashId;
+
+    int side = fcal_id.pos_neg(ch_id);
+    int mod  = fcal_id.module(ch_id);
+    int eta  = fcal_id.eta(ch_id);
+    int phi  = fcal_id.phi(ch_id);
+
+    assert (fcal_id.is_supercell(ch_id) == supercell);
+      
+    assert (fcal_id.is_connected (side, mod, eta, phi));
+    assert (!fcal_id.is_disconnected (side, mod, eta, phi));
+
+    ch_id2 = fcal_id.channel_id (side, mod, eta, phi);
+    assert (ch_id == ch_id2);
+
+    Identifier mod_id = fcal_id.module_id (side, mod);
+    ch_id2 = fcal_id.channel_id (mod_id, eta, phi);
+    assert (ch_id == ch_id2);
+    assert (mod_id == fcal_id.module_id (ch_id));
+
+    counts.count (mod);
+
+    ExpandedIdentifier exp_id;
+    LArFCAL_ID_Test* fcal_id_test = (LArFCAL_ID_Test*)&fcal_id;
+    exp_id << fcal_id_test->lar_field_value()
+      	   << fcal_id_test->lar_fcal_field_value()
+	   << fcal_id.pos_neg(ch_id)
+	   << fcal_id.module(ch_id)
+           << fcal_id.eta(ch_id)
+           << fcal_id.phi(ch_id)
+           << (unsigned)fcal_id.is_supercell(ch_id);
+    assert (fcal_id.channel_id (exp_id) == ch_id);
+ }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : fcal_id.fcal_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, fcal_id.fcal_range()) {
+#endif
+    hashsum -= fcal_id.channel_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+
+  // modules
+  itId = fcal_id.mod_begin();
+  itIdEnd = fcal_id.mod_end();
+  hashvec.clear();
+  hashvec.resize (fcal_id.module_hash_max());
+  IdContext module_context = fcal_id.module_context();
+  
+  std::cout << "  nreg " << itIdEnd - itId << "\n";
+
+  for(; itId!=itIdEnd; ++itId) {
+    Identifier mod_id = *itId;
+    
+    assert (fcal_id.is_supercell(mod_id) == supercell);
+
+    IdentifierHash modHash = fcal_id.module_hash(mod_id);
+    hashsum += modHash;
+#if 1
+    printf ("Module %-18s eta: %8.6f %8.6f %1d %3d phi: %3.1f %8.6f %1d %3d\n",
+            fcal_id.show_to_string(mod_id).c_str(),
+            fcal_id.eta0(modHash),
+            fcal_id.etaGranularity(modHash),
+            fcal_id.eta_min(mod_id),
+            fcal_id.eta_max(mod_id),
+            fcal_id.phi0(modHash),
+            fcal_id.phiGranularity(modHash),
+            fcal_id.phi_min(mod_id),
+            fcal_id.phi_max(mod_id));
+#endif
+    Identifier mod_id2 = fcal_id.module_id(modHash);
+    assert (mod_id == mod_id2);
+
+    IdentifierHash modHash2;
+    assert (fcal_id.get_hash (mod_id, modHash2, &module_context) == 0);
+
+    assert (!hashvec[modHash]);
+    hashvec[modHash] = true;
+
+    ExpandedIdentifier exp_id;
+    LArFCAL_ID_Test* fcal_id_test = (LArFCAL_ID_Test*)&fcal_id;
+    exp_id << fcal_id_test->lar_field_value()
+      	   << fcal_id_test->lar_fcal_field_value()
+	   << fcal_id.pos_neg(mod_id)
+	   << fcal_id.module(mod_id);
+    assert (fcal_id.module_id (exp_id) == mod_id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : fcal_id.mod_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, fcal_id.mod_range()) {
+#endif
+    hashsum -= fcal_id.module_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+  hashsum = 0;
+  BOOST_FOREACH (Identifier mod_id, fcal_id.disc_module_range()) {
+    ExpandedIdentifier exp_id;
+    LArFCAL_ID_Test* fcal_id_test = (LArFCAL_ID_Test*)&fcal_id;
+    exp_id << fcal_id_test->lar_field_value()
+      	   << fcal_id_test->lar_fcal_field_value()
+	   << fcal_id.pos_neg(mod_id)
+	   << fcal_id.module(mod_id);
+    assert (fcal_id.disc_module_id (exp_id) == mod_id);
+    ++hashsum;
+  }
+
+  itId = fcal_id.disc_module_begin();
+  itIdEnd = fcal_id.disc_module_end();
+  for (; itId != itIdEnd; ++itId)
+    --hashsum;
+  assert (hashsum == 0);
+
+  counts.report();
+}
+
+
+void test_disco (const LArFCAL_Base_ID& fcal_id)
+{
+  std::cout << "test_disco\n";
+
+  // disconnected channels
+  std::vector<Identifier>::const_iterator itId = fcal_id.disc_fcal_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = fcal_id.disc_fcal_end();
+  CellCounter counts;
+
+  std::cout << "  nchan " << itIdEnd - itId << "\n";
+
+  assert (fcal_id.channel_hash_max() == fcal_id.disc_channel_hash_min());
+  std::vector<bool> hashvec(fcal_id.disc_channel_hash_max() - fcal_id.disc_channel_hash_min());
+
+  int hashsum = 0;
+  for (; itId!=itIdEnd; ++itId) {
+    Identifier ch_id = *itId;
+    assert (!fcal_id.is_connected (ch_id));
+
+    IdentifierHash hashId = fcal_id.disc_channel_hash (ch_id) ;
+    assert (!fcal_id.is_connected (hashId));
+    Identifier ch_id2 = fcal_id.disc_channel_id(hashId);
+    assert (ch_id == ch_id2);
+    assert (hashId >= fcal_id.channel_hash_max());
+    assert (!hashvec[hashId - fcal_id.disc_channel_hash_min()]);
+    hashvec[hashId - fcal_id.disc_channel_hash_min()] = true;
+
+    hashsum += hashId;
+
+    int side = fcal_id.pos_neg(ch_id);
+    int mod  = fcal_id.module(ch_id);
+    counts.count (mod);
+
+    assert (fcal_id.is_supercell(ch_id) == false);
+
+    assert (fcal_id.eta(ch_id) == -999);
+    assert (fcal_id.phi(ch_id) == -999);
+    int eta  = fcal_id.disc_eta(ch_id);
+    int phi  = fcal_id.disc_phi(ch_id);
+
+    assert (!fcal_id.is_connected (side, mod, eta, phi));
+    assert (fcal_id.is_disconnected (side, mod, eta, phi));
+      
+    ch_id2 = fcal_id.disc_channel_id (side, mod, eta, phi);
+    assert (ch_id == ch_id2);
+
+    Identifier mod_id = fcal_id.disc_module_id (side, mod);
+    ch_id2 = fcal_id.channel_id (mod_id, eta, phi);
+    assert (ch_id == ch_id2);
+
+    ExpandedIdentifier exp_id;
+    LArFCAL_ID_Test* fcal_id_test = (LArFCAL_ID_Test*)&fcal_id;
+    exp_id << fcal_id_test->lar_field_value()
+      	   << fcal_id_test->lar_fcal_field_value()
+	   << fcal_id.pos_neg(ch_id)
+	   << fcal_id.module(ch_id)
+           << fcal_id.disc_eta(ch_id)
+           << fcal_id.disc_phi(ch_id)
+           << (unsigned)fcal_id.is_supercell(ch_id);
+    assert (fcal_id.disc_channel_id (exp_id) == ch_id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+#if __cplusplus > 201100
+  for (Identifier ch_id : fcal_id.disc_fcal_range()) {
+#else
+  BOOST_FOREACH (Identifier ch_id, fcal_id.disc_fcal_range()) {
+#endif
+    hashsum -= fcal_id.disc_channel_hash (ch_id);
+  }
+  assert (hashsum == 0);
+
+  counts.report();
+}
+
+
+void test_exceptions (const LArFCAL_Base_ID& fcal_id,
+                      bool /*supercell*/ = false)
+{
+  std::cout << "test_exeptions\n";
+
+  bool caught = false;
+  try {
+    /*Identifier wrongRegionId =*/ fcal_id.module_id (0,99); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    /*Identifier wrongChannelId =*/ fcal_id.channel_id (0,99,0,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 2: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    Identifier goodRegionId = fcal_id.module_id (1,1); 
+    /*Identifier wrongChannelId =*/ fcal_id.channel_id (goodRegionId,0,-99); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 3: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
diff --git a/Calorimeter/CaloIdentifier/test/larhec_id_test_common.cxx b/Calorimeter/CaloIdentifier/test/larhec_id_test_common.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..f4e56c55134a5db1be15494d5b6189e467a24dd3
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/larhec_id_test_common.cxx
@@ -0,0 +1,323 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/larhec_id_test_common.cxx
+ * @author scott snyder
+ * @date May 2013
+ * @brief Code common between LArHEC_ID_test and LArHEC_SuperCell_ID test.
+ *        This file is meant to be included in another file,
+ *        not compiled separately.
+ */
+
+
+#include "boost/foreach.hpp"
+#include "hash_test.h"
+
+
+// This because test differencing ignored lines containing `0x...'
+std::string munghex (const std::string& h)
+{
+  if (h.size() > 2 && h[0] == '0' && h[1] == 'x')
+    return "hex(" + h.substr (2, std::string::npos) + ")";
+  return h;
+}
+void basic_print_id (const LArHEC_Base_ID& idhelper, const Identifier& id)
+{
+  std::cout << idhelper.show_to_string (id) << " "
+            << munghex(id.getString()) << "\n";
+}
+
+
+class LArHEC_ID_Test
+  : public LArHEC_Base_ID
+{
+public:
+  using LArHEC_Base_ID::lar_field_value;
+  using LArHEC_Base_ID::lar_hec_field_value;
+};
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int bec, int samp);
+  void report();
+
+
+private:
+  enum {
+    N_REG = 2,
+    N_SAMP = 4
+  };
+  unsigned m_counts[N_REG][N_SAMP];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned i=0; i < N_REG; i++)
+    for (unsigned j=0; j < N_SAMP; j++)
+      m_counts[i][j] = 0;
+}
+
+
+void CellCounter::count (int reg, int samp)
+{
+  if (reg < 0 || reg >= N_REG) std::abort();
+  if (samp < 0 || samp >= N_SAMP) std::abort();
+  ++m_counts[reg][samp];
+}
+
+
+void CellCounter::report()
+{
+  unsigned tot[N_REG] = {0};
+  printf ("Sampling   Outer         Inner\n");
+  for (unsigned s=0; s < N_SAMP; s++) {
+    printf ("%1d          %6d        %6d\n",
+            s, m_counts[0][s], m_counts[1][s]);
+    for (unsigned b=0; b < N_REG; b++)
+      tot[b] += m_counts[b][s];
+  }
+  printf ("Total      %6d        %6d   Grand total: %6d\n",
+          tot[0], tot[1],
+          tot[0]+tot[1]);
+}
+
+
+void test_connected (const LArHEC_Base_ID& idhelper, bool supercell)
+{
+  std::cout << "test_connected\n";
+
+  HASH_TEST1(channel,hec,HASH_TEST_EXTRA(channel));
+  HASH_TEST1(region,reg,HASH_TEST_EXTRA(region));
+
+  CellCounter counts;
+  TEST_LOOP (Identifier id, idhelper.hec_range()) {
+    assert (idhelper.is_lar_hec (id));
+    assert (idhelper.is_connected (id));
+    IdentifierHash hashId = idhelper.channel_hash (id);
+    assert (idhelper.is_connected (hashId));
+    assert (hashId == idhelper.channel_hash_binary_search (id));
+
+    int side = idhelper.pos_neg(id);
+    int samp = idhelper.sampling(id);
+    int reg  = idhelper.region(id);
+    int eta  = idhelper.eta(id);
+    int phi  = idhelper.phi(id);
+
+    assert (idhelper.is_supercell(id) == supercell);
+      
+    assert (idhelper.is_connected (side, samp, reg, eta, phi));
+    assert (!idhelper.is_disconnected (side, samp, reg, eta, phi));
+
+    Identifier id2 = idhelper.channel_id (side, samp, reg, eta, phi);
+    assert (id == id2);
+
+    Identifier reg_id = idhelper.region_id (side, samp, reg);
+    id2 = idhelper.channel_id (reg_id, eta, phi);
+    assert (id == id2);
+    assert (reg_id == idhelper.region_id (id));
+
+    counts.count (reg, samp);
+
+    ExpandedIdentifier exp_id;
+    LArHEC_ID_Test* idhelper_test = (LArHEC_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_hec_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.sampling(id)
+	   << idhelper.region(id)
+           << idhelper.eta(id)
+           << idhelper.phi(id)
+           << (unsigned)idhelper.is_supercell(id);
+    assert (idhelper.channel_id (exp_id) == id);
+  }
+  counts.report();
+
+  TEST_LOOP (Identifier id, idhelper.reg_range()) {
+    assert (idhelper.is_supercell(id) == supercell);
+    IdentifierHash hashId = idhelper.region_hash (id);
+
+    printf ("Region %-18s eta: %8.6f %8.6f %1d %3d phi: %3.1f %8.6f %1d %3d\n",
+            idhelper.show_to_string(id).c_str(),
+            idhelper.eta0(hashId),
+            idhelper.etaGranularity(hashId),
+            idhelper.eta_min(id),
+            idhelper.eta_max(id),
+            idhelper.phi0(hashId),
+            idhelper.phiGranularity(hashId),
+            idhelper.phi_min(id),
+            idhelper.phi_max(id));
+
+    int side = idhelper.pos_neg(id);
+    int samp = idhelper.sampling(id);
+    int reg  = idhelper.region(id);
+    Identifier id2 = idhelper.region_id (side, samp, reg);
+    assert (id == id2);
+
+    ExpandedIdentifier exp_id;
+    LArHEC_ID_Test* idhelper_test = (LArHEC_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_hec_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.sampling(id)
+	   << idhelper.region(id);
+    assert (idhelper.region_id (exp_id) == id);
+  }
+}
+
+
+void test_disco (const LArHEC_Base_ID& idhelper)
+{
+  std::cout << "test_disco\n";
+
+  // disconnected channels
+  std::vector<Identifier>::const_iterator itId = idhelper.disc_hec_begin();
+  std::vector<Identifier>::const_iterator itIdEnd = idhelper.disc_hec_end();
+  CellCounter counts;
+
+  std::cout << "  nchan " << itIdEnd - itId << "\n";
+
+  assert (idhelper.channel_hash_max() == idhelper.disc_channel_hash_min());
+  std::vector<bool> hashvec(idhelper.disc_channel_hash_max() - idhelper.disc_channel_hash_min());
+
+  int hashsum = 0;
+  for (; itId != itIdEnd; ++itId) {
+    Identifier id = *itId;
+    assert (idhelper.is_lar_hec (id));
+    assert (!idhelper.is_connected (id));
+
+    IdentifierHash hashId = idhelper.disc_channel_hash (id) ;
+    assert (!idhelper.is_connected (hashId));
+    Identifier id2 = idhelper.disc_channel_id(hashId);
+    assert (id == id2);
+    assert (hashId >= idhelper.channel_hash_max());
+    assert (!hashvec[hashId - idhelper.disc_channel_hash_min()]);
+    hashvec[hashId - idhelper.disc_channel_hash_min()] = true;
+
+    hashsum += hashId;
+
+    int side = idhelper.pos_neg(id);
+    int samp = idhelper.sampling(id);
+    int reg  = idhelper.region(id);
+    counts.count (reg, samp);
+
+    assert (idhelper.is_supercell(id) == false);
+
+    assert (idhelper.eta(id) == -999);
+    assert (idhelper.phi(id) == -999);
+    int eta  = idhelper.disc_eta(id);
+    int phi  = idhelper.disc_phi(id);
+
+    assert (!idhelper.is_connected (side, samp, reg, eta, phi));
+    assert (idhelper.is_disconnected (side, samp, reg, eta, phi));
+      
+    id2 = idhelper.disc_channel_id (side, samp, reg, eta, phi);
+    assert (id == id2);
+
+    Identifier reg_id = idhelper.disc_region_id (side, samp, reg);
+    id2 = idhelper.channel_id (reg_id, eta, phi);
+    assert (id == id2);
+
+    ExpandedIdentifier exp_id;
+    LArHEC_ID_Test* idhelper_test = (LArHEC_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_hec_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.sampling(id)
+	   << idhelper.region(id)
+           << idhelper.disc_eta(id)
+           << idhelper.disc_phi(id)
+           << (unsigned)idhelper.is_supercell(id);
+    assert (idhelper.disc_channel_id (exp_id) == id);
+  }
+  for (size_t i = 0; i < hashvec.size(); i++)
+    assert (hashvec[i]);
+
+  TEST_LOOP (Identifier id, idhelper.disc_hec_range()) {
+    hashsum -= idhelper.disc_channel_hash (id);
+  }
+  assert (hashsum == 0);
+
+  hashsum = 0;
+  BOOST_FOREACH (Identifier id, idhelper.disc_reg_range()) {
+    ExpandedIdentifier exp_id;
+    LArHEC_ID_Test* idhelper_test = (LArHEC_ID_Test*)&idhelper;
+    exp_id << idhelper_test->lar_field_value()
+      	   << idhelper_test->lar_hec_field_value()
+	   << idhelper.pos_neg(id)
+	   << idhelper.sampling(id)
+	   << idhelper.region(id);
+    assert (idhelper.disc_region_id (exp_id) == id);
+    ++hashsum;
+  }
+
+  itId = idhelper.disc_reg_begin();
+  itIdEnd = idhelper.disc_reg_end();
+  for (; itId != itIdEnd; ++itId)
+    --hashsum;
+  assert (hashsum == 0);
+
+  counts.report();
+}
+
+
+void test_exceptions (const LArHEC_Base_ID& idhelper)
+{
+  std::cout << "test_exceptions\n";
+
+  bool caught = false;
+  try {
+    /*Identifier wrongRegionId =*/ idhelper.region_id (0,99,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    /*Identifier wrongChannelId =*/ idhelper.channel_id (0,99,0,0,0); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 2: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    Identifier goodRegionId = idhelper.region_id (2,0,0); 
+    /*Identifier wrongChannelId =*/ idhelper.channel_id (goodRegionId,0,-99); 
+  }
+  catch(LArID_Exception & except){
+    caught = true;
+    std::cout << "Exception 3: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
+// hec-specific addressing.
+void test_hec (const LArHEC_Base_ID& idhelper)
+{
+  std::cout << "test_hec\n";
+
+  assert (idhelper.channel_id (2, 0, 0, 5, 1) ==
+          idhelper.channel_id (2, 0,    5, 1));
+  assert (idhelper.channel_id (2, 0, 1, 3, 1) ==
+          idhelper.channel_id (2, 0,   13, 1));
+
+  assert (idhelper.channel_id (2, 0, 0, 5, 1) ==
+          idhelper.channel_id (2, 0, 0, 0, 5, 1));
+  assert (idhelper.channel_id (2, 0, 0, 5, 10) ==
+          idhelper.channel_id (2, 0, 5, 0, 5, 0));
+  assert (idhelper.channel_id (2, 0, 0, 5, 11) ==
+          idhelper.channel_id (2, 0, 5, 0, 5, 1));
+}
diff --git a/Calorimeter/CaloIdentifier/test/test_calo_dm_id.cxx b/Calorimeter/CaloIdentifier/test/test_calo_dm_id.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..b56f53163a4172c5906f0704b9e595a744536679
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/test_calo_dm_id.cxx
@@ -0,0 +1,349 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Header: /build/atlas/cvs/atlas/offline/Calorimeter/CaloIdentifier/test/test_calo_dm_id.cxx,v 1.6 2006-05-18 11:38:04 fledroit Exp $ 
+  
+#include "IdDictParser/IdDictParser.h"  
+#include "Identifier/IdentifierHash.h" 
+#include "CaloIdentifier/CaloCell_ID.h"
+#include "CaloIdentifier/CaloDM_ID.h"
+#include <iostream> 
+ 
+
+static void
+check_lar_dm_id_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_lar_dm_id_decoding" << std::endl;
+    std::cout << "=========>  check_lar_dm_id_decoding" << std::endl;
+
+    CaloDM_ID dm_id;
+    if(dm_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_calo_dm_id_decoding - cannot init em from dict" << std::endl;
+    }
+    const CaloDM_ID* dm_p = &dm_id;
+
+    bool verif = dm_p->do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    dm_p->set_do_checks(true);
+    verif = dm_p->do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of lar hash calculation
+
+    // zones
+    std::vector<Identifier>::const_iterator itId = dm_p->lar_zone_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = dm_p->lar_zone_end();
+  
+    int nZon=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier zoneId = *itId;
+	nZon++;
+	
+	IdentifierHash hashId = dm_p->lar_zone_hash ( zoneId );
+
+	Identifier zoneId2 = dm_p->lar_zone_id ( hashId );
+	
+	if ( zoneId2 != zoneId ) {
+	  std::cout
+	    << " lar zoneId2 incorrect: " <<  dm_p->show_to_string(zoneId2) 
+	    << "         should be " <<  dm_p->show_to_string(zoneId) 
+	    << "           hashId = " << hashId
+	    << std::endl;
+	  error = true;
+	}
+	
+	int detz  = dm_p->pos_neg_z(zoneId);
+	int typ  = dm_p->dmat(zoneId);
+	int samp = dm_p->sampling(zoneId);
+	int reg  = dm_p->region(zoneId);
+       	int eta  = dm_p->eta(zoneId);
+	int phi  = dm_p->phi(zoneId);
+	
+	Identifier zoneId3 = dm_p->zone_id (detz,typ,samp,reg, eta, phi);
+	if ( zoneId3 != zoneId ) {
+	  std::cout
+	    << " zoneId3 incorrect: " <<  dm_p->show_to_string(zoneId3) 
+	    << "         should be " <<  dm_p->show_to_string(zoneId) 
+	    << std::endl;
+	  error = true;
+	}
+
+	Identifier regId = dm_p->region_id (zoneId);
+	Identifier zoneId4 = dm_p->zone_id (regId, eta, phi);
+	if ( zoneId4 != zoneId ) {
+	  std::cout << "lar zoneId4 incorrect: " <<  dm_p->show_to_string(zoneId4) 
+		    << "         should be " <<  dm_p->show_to_string(zoneId) 
+		    << "         regId     " <<  dm_p->show_to_string(regId) 
+		    << " input val of eta, phi= " << eta << " " << phi
+		    << std::endl;
+	  error = true;
+	}
+    }
+    std::cout << "total number of zones (ref=81794) = " << nZon 
+	      << ", lar_zone_hash_max= " << dm_p->lar_zone_hash_max() 
+	      << std::endl;
+    std::cout << " ====================================== " << std::endl;
+
+
+    // lar regions
+    itId = dm_p->lar_region_begin();
+    itIdEnd = dm_p->lar_region_end();
+  
+    int nReg=0;
+  
+    for(; itId!=itIdEnd;++itId){
+
+      nReg++;
+      Identifier regId = *itId;
+      
+      IdentifierHash hashId = dm_p->lar_region_hash ( regId );
+
+      std::cout << " lar region " << hashId << " etaMin, etaMax, phiMin, phiMax= " 
+		<< dm_p ->eta_min(regId) << ", " 
+		<< dm_p ->eta_max(regId) << ", " 
+		<< dm_p ->phi_min(regId) << ", " 
+		<< dm_p ->phi_max(regId) 
+		<< std::endl;
+
+      
+      Identifier regId2 = dm_p->lar_region_id ( hashId );
+      
+      if ( regId2 != regId ) {
+	std::cout
+	  << " lar regId2 incorrect: " <<  dm_p->show_to_string(regId2) 
+	  << "         should be "     <<  dm_p->show_to_string(regId) 
+	  << "           hasId = "     << hashId
+	  << std::endl;
+	error = true;
+      }
+      
+     int detz = dm_p->pos_neg_z(regId);
+     int typ  = dm_p->dmat(regId);
+     int samp = dm_p->sampling(regId);
+     int reg  = dm_p->region(regId);
+     Identifier regId3 = dm_p->region_id (detz,typ,samp,reg);
+     if ( regId3 != regId ) {
+       std::cout
+	 << " regId3 incorrect: " <<  dm_p->show_to_string(regId3) 
+	 << "         should be " <<  dm_p->show_to_string(regId) 
+	 << std::endl;
+       error = true;
+     }
+    }
+    std::cout << "number of LAr regions (ref=94)= " << nReg 
+	      << ", lar_region_hash_max= " << dm_p->lar_region_hash_max() 
+	      << std::endl;
+
+    if(!error) {
+	std::cout << "LAr DM decoding tests ok" << std::endl;
+    }
+
+}
+
+
+static void
+check_tile_dm_id_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_tile_dm_id_decoding" << std::endl;
+    std::cout << "=========>  check_tile_dm_id_decoding" << std::endl;
+
+    CaloDM_ID dm_id;
+    if(dm_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_calo_dm_id_decoding - cannot init em from dict" << std::endl;
+    }
+    const CaloDM_ID* dm_p = &dm_id;
+
+    bool verif = dm_p->do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    dm_p->set_do_checks(true);
+    verif = dm_p->do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of tile hash calculation
+
+    // zones
+    std::vector<Identifier>::const_iterator itId = dm_p->tile_zone_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = dm_p->tile_zone_end();
+  
+    int nZon=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier zoneId = *itId;
+	nZon++;
+	
+	IdentifierHash hashId = dm_p->tile_zone_hash ( zoneId );
+
+	Identifier zoneId2 = dm_p->tile_zone_id ( hashId );
+	
+	if ( zoneId2 != zoneId ) {
+	  std::cout
+	    << " tile zoneId2 incorrect: " <<  dm_p->show_to_string(zoneId2) 
+	    << "         should be " <<  dm_p->show_to_string(zoneId) 
+	    << "           hashId = " << hashId
+	    << std::endl;
+	  error = true;
+	}
+	
+	int detz  = dm_p->pos_neg_z(zoneId);
+	int typ  = dm_p->dmat(zoneId);
+	int samp = dm_p->sampling(zoneId);
+	int reg  = dm_p->region(zoneId);
+       	int eta  = dm_p->eta(zoneId);
+	int phi  = dm_p->phi(zoneId);
+	
+	Identifier zoneId3 = dm_p->zone_id (detz,typ,samp,reg, eta, phi);
+	if ( zoneId3 != zoneId ) {
+	  std::cout
+	    << " zoneId3 incorrect: " <<  dm_p->show_to_string(zoneId3) 
+	    << "         should be " <<  dm_p->show_to_string(zoneId) 
+	    << std::endl;
+	  error = true;
+	}
+
+	Identifier regId = dm_p->region_id (zoneId);
+	Identifier zoneId4 = dm_p->zone_id (regId, eta, phi);
+	if ( zoneId4 != zoneId ) {
+	  std::cout << "tile zoneId4 incorrect: " <<  dm_p->show_to_string(zoneId4) 
+		    << "         should be " <<  dm_p->show_to_string(zoneId) 
+		    << "         regId     " <<  dm_p->show_to_string(regId) 
+		    << " input val of eta, phi= " << eta << " " << phi
+		    << std::endl;
+	  error = true;
+	}
+    }
+    std::cout << "total number of zones (ref:7426)= " << nZon << ", tile_zone_hash_max= " << dm_p->tile_zone_hash_max() << std::endl;
+    std::cout << " ====================================== " << std::endl;
+
+
+    // tile regions
+    itId = dm_p->tile_region_begin();
+    itIdEnd = dm_p->tile_region_end();
+  
+    int nReg=0;
+  
+    for(; itId!=itIdEnd;++itId){
+
+      nReg++;
+      Identifier regId = *itId;
+      
+      IdentifierHash hashId = dm_p->tile_region_hash ( regId );
+
+      std::cout << " tile region " << hashId << " etaMin, etaMax, phiMin, phiMax= " 
+		<< dm_p ->eta_min(regId) << ", " 
+		<< dm_p ->eta_max(regId) << ", " 
+		<< dm_p ->phi_min(regId) << ", " 
+		<< dm_p ->phi_max(regId) 
+		<< std::endl;
+
+      
+      Identifier regId2 = dm_p->tile_region_id ( hashId );
+      
+      if ( regId2 != regId ) {
+	std::cout
+	  << " tile regId2 incorrect: " <<  dm_p->show_to_string(regId2) 
+	  << "         should be "     <<  dm_p->show_to_string(regId) 
+	  << "           hasId = "     << hashId
+	  << std::endl;
+	error = true;
+      }
+      
+     int detz = dm_p->pos_neg_z(regId);
+     int typ  = dm_p->dmat(regId);
+     int samp = dm_p->sampling(regId);
+     int reg  = dm_p->region(regId);
+     Identifier regId3 = dm_p->region_id (detz,typ,samp,reg);
+     if ( regId3 != regId ) {
+       std::cout
+	 << " regId3 incorrect: " <<  dm_p->show_to_string(regId3) 
+	 << "         should be " <<  dm_p->show_to_string(regId) 
+	 << std::endl;
+       error = true;
+     }
+    }
+    std::cout << "number of Tile regions(ref:20)= " << nReg  << ", tile_region_hash_max= " << dm_p->tile_region_hash_max() << std::endl;
+
+    if(!error) {
+	std::cout << "Tile DM decoding tests ok" << std::endl;
+    }
+
+    std::cout << "finally check the exception throwing (lar and tile)... " << std::endl;
+
+    try {
+      /*Identifier wrongRegionId =*/ dm_p->region_id (-4,-99,0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongRegionId =*/ dm_p->region_id (5,-99,0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongRegionId =*/ dm_p->region_id (0,-99,0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+
+    try {
+      /*Identifier wrongZoneId =*/ dm_p->zone_id (4,99,0,0, 0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongZoneId =*/ dm_p->zone_id (-5,99,0,0, 0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongZoneId =*/ dm_p->zone_id (0,99,0,0, 0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+
+    try {
+      Identifier goodRegionId = dm_p->region_id (4,1,0,0); 
+      /*Identifier wrongZoneId =*/ dm_p->zone_id (goodRegionId,0,-99); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok " << std::endl;
+}
+
+
+
+int main (int argc, char* argv[])  
+{  
+    if (argc < 2) return (1);  
+  
+    IdDictParser parser;  
+    IdDictMgr& idd = parser.parse (argv[1]);  
+    std::cout << "got dict mgr " << std::endl;
+
+    check_lar_dm_id_decoding(idd);
+    check_tile_dm_id_decoding(idd);
+     
+    return 0;  
+}  
+  
+ 
+ 
+ 
+ 
+ 
diff --git a/Calorimeter/CaloIdentifier/test/test_cell_id.cxx b/Calorimeter/CaloIdentifier/test/test_cell_id.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..3f9a29954c1e40bf0bdb484f7b39cb7b75c5b3dc
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/test_cell_id.cxx
@@ -0,0 +1,611 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Header: /build/atlas/cvs/atlas/offline/Calorimeter/CaloIdentifier/test/test_cell_id.cxx,v 1.19 2006-03-20 20:32:50 ssnyder Exp $ 
+  
+#include "IdDictParser/IdDictParser.h"  
+#include "Identifier/IdentifierHash.h" 
+#include "CaloIdentifier/CaloCell_ID.h"
+#include <iostream> 
+ 
+
+static void
+check_cell_id_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_cell_id_decoding" << std::endl;
+    std::cout << "=========>  check_cell_id_decoding" << std::endl;
+
+    bool error = false;
+
+    LArEM_ID em_id;
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init em from dict" << std::endl;
+	error = true;
+    }
+    const LArEM_ID* em_p = &em_id;
+
+    LArEM_SuperCell_ID sem_id;
+    if(sem_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init sem from dict" << std::endl;
+	error = true;
+    }
+    const LArEM_SuperCell_ID* sem_p = &sem_id;
+
+    LArHEC_ID hec_id;
+    if(hec_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init hec from dict" << std::endl;
+	error = true;
+    }
+    const LArHEC_ID* hec_p = &hec_id;
+
+    LArFCAL_ID fcal_id;
+    if(fcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init fcal from dict" << std::endl;
+	error = true;
+    }
+    const LArFCAL_ID* fcal_p = &fcal_id;
+
+    LArMiniFCAL_ID minifcal_id;
+    if(minifcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init minifcal from dict" << std::endl;
+	error = true;
+    }
+    const LArMiniFCAL_ID* minifcal_p = &minifcal_id;
+
+    TileID tile_id;
+    if(tile_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init tile from dict" << std::endl;
+	error = true;
+    }
+    const TileID* tile_p = &tile_id;
+
+    CaloCell_ID* calo_id = new CaloCell_ID(em_p, hec_p, fcal_p, minifcal_p, tile_p);
+    if(calo_id->initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init calocell from dict" << std::endl;
+	error = true;
+    }
+
+    bool verif = calo_id->do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    calo_id->set_do_checks(true);
+    verif = calo_id->do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of hash calculation
+
+    // channels
+    std::map < Identifier, int > counter_scell;
+    std::vector<Identifier>::const_iterator itId = calo_id->cell_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = calo_id->cell_end();
+  
+    int nChan=0;
+    int nEm=0;
+    int nEmBarrel=0;
+    int nEmEndCap=0;
+    int nEmECInner=0;
+    int nEmECOuter=0;
+    int nHec=0;
+    int nFcal=0;
+    int nTile=0;
+
+    IdentifierHash min=0;
+    IdentifierHash max=0;
+    std::cout << "Will Start the Loop" << std::endl;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier chId = *itId;
+	//	std::cout << " ================= NCHAN = " << nChan << std::endl;
+	nChan++;
+
+	if(nChan == 1) std::cout << "test show_to_string with CaloCellID; chId = " << calo_id->show_to_string(chId) << std::endl;
+
+	if(calo_id->is_em(chId)) {
+	  nEm++;
+	  calo_id->calo_cell_hash_range(chId, min, max);
+	  //	  std::cout << "em: min, max " << min << " " << max << std::endl;
+	  if(calo_id->is_em_barrel(chId)) {
+	    nEmBarrel++;
+            if ( (em_p->sampling(chId) == 1) || (em_p->sampling(chId)==2) ){
+                std::cout << "Found : " << em_p->sampling(chId) << " ";
+                std::cout << chId << " ";
+                chId.show();
+		std::cout << " ";
+		std::cout << em_p->show_to_string(chId);
+                std::cout << std::endl;
+		int eta_div = 999;
+		int phi_div = 999;
+		if ( em_p->sampling(chId) == 1) {
+			eta_div = 8;
+			phi_div = 1;
+		} else {
+			eta_div = 1;
+			phi_div = 4;
+		}
+		if ( eta_div != 999 ){
+                  //int region = em_p->region(chId);
+                  //int sampling = em_p->sampling(chId);
+			int eta = em_p->eta(chId);
+			int phi = em_p->phi(chId);
+			eta = floorf( ((float)eta)/eta_div );
+			phi = floorf( ((float)phi)/phi_div );
+
+			Identifier sCellID = sem_p->channel_id( em_p->region_id(chId), eta,phi);
+			std::cout << "\t\tFound SC : " << sem_p->sampling(sCellID) << " ";
+	                std::cout << sCellID << " ";
+        	        sCellID.show();
+               		std::cout << " ";
+            		std::cout << sem_p->show_to_string(sCellID);
+	                std::cout << std::endl;
+			if ( counter_scell.find(sCellID) == counter_scell.end() ){
+				counter_scell[sCellID] = 1;
+			} else
+				counter_scell[sCellID] ++;
+		}
+		else std::cout << "\tWeird!!" << std::endl;
+            }
+
+	  }
+	  else if(calo_id->is_em_endcap(chId)) {
+	    nEmEndCap++;
+	    if(calo_id->is_em_endcap_inner(chId)) {
+	      nEmECInner++;
+	    }
+	    else if(calo_id->is_em_endcap_outer(chId)) {
+	      nEmECOuter++;
+	    }
+	  }
+	}
+	else if(calo_id->is_hec(chId)) {
+	  nHec++;
+	  calo_id->calo_cell_hash_range(chId, min, max);
+	  //	  std::cout << "hec: min, max " << min << " " << max << std::endl;
+	}
+	else if(calo_id->is_fcal(chId)) {
+	  nFcal++;
+	  calo_id->calo_cell_hash_range(chId, min, max);
+	  //	  std::cout << "fcal: min, max " << min << " " << max << std::endl;
+	}
+	else if(calo_id->is_tile(chId)) {
+	  nTile++;
+	  calo_id->calo_cell_hash_range(chId, min, max);
+	  //	  std::cout << "tile: min, max " << min << " " << max << std::endl;
+	}
+	
+	IdentifierHash hashId = calo_id->calo_cell_hash ( chId );
+	//	std::cout << "hashId = " << hashId << std::endl;
+
+	int subcalo1 = calo_id->sub_calo(hashId);
+	IdentifierHash min2=0;
+	IdentifierHash max2=0;
+	calo_id->calo_cell_hash_range(subcalo1, min2, max2);
+	if ( min != min2 || max != max2 ) {
+	  std::cout << "problem with min/max, subcalo, min, min2, max, max2 = " 
+		    << subcalo1 << " " << min << " " << min2 << " " << max << " " << max2 << std::endl;
+	  error = true;
+	}
+
+	int subcalo2=-1;
+	if(calo_id->is_em(chId)) {
+	  IdentifierHash emHash = calo_id->subcalo_cell_hash(hashId, subcalo2) ;
+	  if ( subcalo2 != subcalo1 ) {
+	    std::cout << "(em)subcalo2 incorrect: " << subcalo2
+		      << "         should be " <<  subcalo1
+		      << " hashId = " << hashId
+		      << std::endl;
+	    error = true;
+	  }
+	  IdentifierHash caloCellHash = calo_id->calo_cell_hash(CaloCell_ID::LAREM, emHash) ;
+	  if(hashId != caloCellHash) {
+	    std::cout << " em return trip check failed = " << caloCellHash << " " << emHash << std::endl;
+	    error = true;
+	  }
+	}
+	else if(calo_id->is_hec(chId)) {
+	  IdentifierHash hecHash = calo_id->subcalo_cell_hash(hashId, subcalo2) ;
+	  if ( subcalo2 != subcalo1 ) {
+	    std::cout << "(hec)subcalo2 incorrect: " << subcalo2
+		      << "         should be " <<  subcalo1
+		      << " hashId = " << hashId
+		      << std::endl;
+	    error = true;
+	  }
+	  IdentifierHash caloCellHash = calo_id->calo_cell_hash(CaloCell_ID::LARHEC, hecHash) ;
+	  if(hashId != caloCellHash) {
+	    std::cout << " hec return trip check failed = " << caloCellHash << " " << hecHash << std::endl;
+	    error = true;
+	  }
+	}
+	else if(calo_id->is_fcal(chId)) {
+	  IdentifierHash fcalHash = calo_id->subcalo_cell_hash(hashId, subcalo2) ;
+	  if ( subcalo2 != subcalo1 ) {
+	    std::cout << "(fcal)subcalo2 incorrect: " << subcalo2
+		      << "         should be " <<  subcalo1
+		      << " hashId = " << hashId
+		      << std::endl;
+	    error = true;
+	  }
+	  IdentifierHash caloCellHash = calo_id->calo_cell_hash(CaloCell_ID::LARFCAL, fcalHash) ;
+	  if(hashId != caloCellHash) {
+	    std::cout << " fcal return trip check failed = " << caloCellHash << " " << fcalHash << std::endl;
+	    error = true;
+	  }
+	}
+	else if(calo_id->is_tile(chId)) {
+	  IdentifierHash tileHash = calo_id->subcalo_cell_hash(hashId, subcalo2) ;
+	  if ( subcalo2 != subcalo1 ) {
+	    std::cout << "(tile)subcalo2 incorrect: " << subcalo2
+		      << "         should be " <<  subcalo1
+		      << " hashId = " << hashId
+		      << std::endl;
+	    error = true;
+	  }
+	  IdentifierHash caloCellHash = calo_id->calo_cell_hash(CaloCell_ID::TILE, tileHash) ;
+	  if(hashId != caloCellHash) {
+	    std::cout << " tile return trip check failed = " << caloCellHash << " " << tileHash << std::endl;
+	    error = true;
+	  }
+	}
+
+	Identifier chanId1 = calo_id->cell_id ( hashId );
+	
+	if ( chanId1 != chId ) {
+	  std::cout
+	    << " chanId1 incorrect: " <<  calo_id->show_to_string(chanId1) 
+	    << "         should be " <<  calo_id->show_to_string(chId) 
+	    << "           hashId = " << hashId
+	    << std::endl;
+	  error = true;
+	}
+	
+	int subcalo3 = calo_id->sub_calo(chId);
+	if ( subcalo3 != subcalo1 ) {
+	  std::cout << " subcalo incorrect, subcalo3, subcalo1 = " << subcalo3 << " " << subcalo1
+		    << " chId = " <<  calo_id->show_to_string(chId) 
+		    << std::endl;
+	  error = true;
+	}
+
+	int bec    = 888888;
+	int samp   = 888888;
+	int reg    = 888888;
+	int eta    = 888888;
+	int phi    = 888888;
+	if(calo_id->is_lar(chId)) {  
+	  bec    = calo_id->pos_neg(chId);
+	  samp   = calo_id->sampling(chId);
+	  reg    = calo_id->region(chId);
+	  eta    = calo_id->eta(chId);
+	  phi    = calo_id->phi(chId);
+	}
+	else  if(calo_id->is_tile(chId)) {
+	  bec    = calo_id->section(chId);
+	  samp   = calo_id->side(chId);
+	  reg    = calo_id->module(chId);
+	  eta    = calo_id->tower(chId);
+	  phi    = calo_id->sample(chId);
+	}
+	
+	Identifier chanId3 = calo_id->cell_id (subcalo3, bec, samp, reg, eta, phi);
+	if ( chanId3 != chId ) {
+	  std::cout << "chanId3 incorrect: " <<  calo_id->show_to_string(chanId3) 
+		    << "         should be " <<  calo_id->show_to_string(chId) 
+		    << " input val of subcalo3, bec, samp, reg= " << subcalo3 << " " << bec << " " << samp << " " << reg
+		    << " input val of eta, phi= " << eta << " " << phi
+		    << std::endl;
+	  error = true;
+	}
+
+	Identifier regId = calo_id->region_id (chId);
+	if(!calo_id->is_tile(chId)) {           
+	  Identifier chanId2 = calo_id->cell_id (regId, eta, phi);
+	  if ( chanId2 != chId ) {
+	    std::cout << "chanId2 incorrect: " <<  calo_id->show_to_string(chanId2) 
+		      << "         should be " <<  calo_id->show_to_string(chId) 
+		      << "         regId     " <<  calo_id->show_to_string(regId) 
+		      << " input val of eta, phi= " << eta << " " << phi
+		      << std::endl;
+	    error = true;
+	  }
+	}
+
+	int subcalo4=-1;
+	IdentifierHash subHashId = calo_id->subcalo_cell_hash (chId, subcalo4) ;
+	if ( subcalo4 != subcalo1 ) {
+	  std::cout << " subcalo incorrect, subcalo4, subcalo1 = " << subcalo4 << " " << subcalo1
+		    << " chId = " <<  calo_id->show_to_string(chId) 
+		    << std::endl;
+	  error = true;
+	}
+	Identifier chanId4 = calo_id->cell_id ( subcalo3, subHashId );
+	if ( chanId4 != chId ) {
+	  std::cout
+	    << " chanId4 incorrect: " <<  calo_id->show_to_string(chanId4) 
+	    << "         should be " <<  calo_id->show_to_string(chId) 
+	    << "      subcalo3, subHashId = " << subcalo3 << " " << subHashId
+	    << std::endl;
+	  error = true;
+      }
+
+
+    }
+    std::map<Identifier,int>::const_iterator it,itE;
+    it = counter_scell.begin();
+    itE = counter_scell.end();
+    for( ; it!=itE;++it){
+	std::cout << "SC ID : " << sem_p->sampling((*it).first)
+	<< " " << (*it).first << " ";
+	std::cout << "; Number : " << (*it).second;
+	std::cout << std::endl;
+    }
+
+    //sub-calos
+    for (int subCalo = 0; subCalo < CaloCell_ID::NSUBCALO; subCalo++) { 
+      itId = calo_id->cell_begin(subCalo);
+      itIdEnd = calo_id->cell_end(subCalo);
+      int nSubCalo = 0;
+      for(; itId!=itIdEnd;++itId){
+	nSubCalo++;
+      }
+      calo_id->calo_cell_hash_range(subCalo,min,max);
+      std::cout << "subCalo, min, max " << subCalo << " " << min << " " << max << std::endl;
+      if ( nSubCalo != (int)(max-min) ) {
+	std::cout << "nSubCalo incorrect: " <<  nSubCalo
+		  << "         should be max - min " <<  max << " - " << min
+		  << std::endl;
+	error = true;
+      }
+
+    }
+
+    std::cout << "total number of cells= " << nChan << ", calo_cell_hash_max= " << calo_id->calo_cell_hash_max() << std::endl;
+    std::cout << "number of Em, Hec, Fcal, Tile cells= " << nEm << ", " << nHec << ", " << nFcal << ", " << nTile << std::endl;
+    std::cout << "number of Em Barrel, EndCap cells= " << nEmBarrel << ", " << nEmEndCap << std::endl;
+    std::cout << "number of Em EndCap Inner, Outer cells= " << nEmECInner << ", " << nEmECOuter << std::endl;
+    std::cout << " ====================================== " << std::endl;
+
+    
+    // AL--> TESTS 
+    
+    //int LARTEST= 8321;
+    //const int subCalo = CaloCell_ID::GetSubCaloName( LARTEST );
+    //std::cout << "====> TEST of GetSubCaloName ..." << CaloCell_ID::NSUBCALO << " Returned int= " << subCalo << std::endl;
+
+
+
+    // regions
+    itId = calo_id->reg_begin();
+    itIdEnd = calo_id->reg_end();
+  
+    int nReg=0;
+  
+    for(; itId!=itIdEnd;++itId){
+
+      nReg++;
+      Identifier regId = *itId;
+      
+
+      IdentifierHash hashId = calo_id->calo_region_hash ( regId );
+
+      std::cout << " region " << calo_id->sub_calo(regId) << " " << hashId << " etaMin, etaMax, phiMin, phiMax= " 
+		<< calo_id ->eta_min(regId) << ", " 
+		<< calo_id ->eta_max(regId) << ", " 
+		<< calo_id ->phi_min(regId) << ", " 
+		<< calo_id ->phi_max(regId) 
+		<< std::endl;
+
+      //      std::cout << " region " << hashId << " eta, phi granularities= " << calo_id->etaGranularity(regId)
+      //		<< ", " << calo_id->phiGranularity(regId) << std::endl;
+      
+      Identifier regId1 = calo_id->region_id ( hashId );
+      if ( regId1 != regId ) {
+	std::cout
+	  << " regId1 incorrect: " <<  calo_id->show_to_string(regId1) 
+	  << "         should be " <<  calo_id->show_to_string(regId) 
+	  << "           hasId = " << hashId
+	  << std::endl;
+	error = true;
+      }
+      
+      
+      int subcalo = calo_id->sub_calo(regId);
+
+      calo_id->calo_reg_hash_range(regId, min, max);
+      IdentifierHash min2=0;
+      IdentifierHash max2=0;
+      calo_id->calo_reg_hash_range(subcalo, min2, max2);
+      if ( min != min2 || max != max2 ) {
+	std::cout << "problem with region min/max, subcalo, min, min2, max, max2 = " 
+		  << subcalo << " " << min << " " << min2 << " " << max << " " << max2 << std::endl;
+	error = true;
+      }
+
+      int subcalo2=-1;
+      IdentifierHash subHashId =  calo_id->subcalo_region_hash (hashId, subcalo2) ;
+      if ( subcalo2 != subcalo ) {
+	std::cout << "(region loop) subcalo2 incorrect: " << subcalo2
+		  << "         should be " <<  subcalo
+		  << " hashId = " << hashId
+		  << std::endl;
+	error = true;
+      }
+      IdentifierHash hashId2 =  calo_id->calo_region_hash (subcalo, subHashId) ;
+      if ( hashId2 != hashId ) {
+	std::cout << "hashId2 incorrect: " << hashId2
+		  << "         should be " <<  hashId
+		  << std::endl;
+	error = true;
+      }
+
+      int bec  = calo_id->pos_neg(regId);
+      int samp = calo_id->sampling(regId);
+      int reg  = calo_id->region(regId);
+      if(!calo_id->is_tile(regId)) {
+	Identifier regId2 = calo_id->region_id (subcalo, bec, samp, reg);
+	if ( regId2 != regId ) {
+	  std::cout << "regId2 incorrect: " <<  calo_id->show_to_string(regId2) 
+		    << "         should be " <<  calo_id->show_to_string(regId) 
+		    << " input val of subcalo, bec, samp, reg= " << subcalo << " " << bec << " " << samp << " " << reg
+		    << std::endl;
+	  error = true;
+	}
+      }
+
+      int subcalo3 = -1;
+      IdentifierHash subHashId2 = calo_id->subcalo_region_hash (regId, subcalo3) ;
+      if ( subcalo3 != subcalo ) {
+	std::cout << "(region loop) subcalo3 incorrect: " << subcalo3
+		  << "         should be " <<  subcalo
+		  << " hashId = " << hashId
+		  << std::endl;
+	error = true;
+      }
+      Identifier regId3 = calo_id->region_id ( subcalo, subHashId2 );
+      if ( regId3 != regId ) {
+	std::cout
+	<< " regId3 incorrect: " <<  calo_id->show_to_string(regId3) 
+	<< "         should be " <<  calo_id->show_to_string(regId) 
+	<< "           subHashId2 = " << subHashId2
+	<< std::endl;
+	error = true;
+      }
+
+    }
+    std::cout << "number of regions= " << nReg  << ", calo_region_hash_max= " << calo_id->calo_region_hash_max() << std::endl;
+
+    if(!error) {
+	std::cout << "calo cell decoding tests ok" << std::endl;
+    }
+
+    std::cout << "finally check the exception throwing... " << std::endl;
+    try {
+      /*Identifier wrongChanId =*/ calo_id->cell_id (0, 99, 0, 0, 0, 0);
+    }
+    catch ( LArID_Exception &excpt ) {
+	std::cout << "*** LArID_Exception caught: " << excpt.message() 
+		  << std::endl
+		  << "***   error code: " << excpt.code()   
+		  << std::endl;
+    }       
+    std::cout << "... which is ok " << std::endl;
+
+
+
+}
+
+static void
+check_cell_neighbours(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_cell_neighbours" << std::endl;
+    std::cout << "=========>  check_cell_neighbours" << std::endl;
+
+    bool error = false;
+
+    LArEM_ID em_id;
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_neighbours - cannot init em from dict" << std::endl;
+    }
+    const LArEM_ID* em_p = &em_id;
+
+    LArHEC_ID hec_id;
+    if(hec_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_neighbours - cannot init hec from dict" << std::endl;
+    }
+    const LArHEC_ID* hec_p = &hec_id;
+
+    LArFCAL_ID fcal_id;
+    if(fcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_neighbours - cannot init fcal from dict" << std::endl;
+    }
+    const LArFCAL_ID* fcal_p = &fcal_id;
+
+    LArMiniFCAL_ID minifcal_id;
+    if(minifcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init minifcal from dict" << std::endl;
+	error = true;
+    }
+    const LArMiniFCAL_ID* minifcal_p = &minifcal_id;
+
+    TileID tile_id;
+    if(tile_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init tile from dict" << std::endl;
+	error = true;
+    }
+    const TileID* tile_p = &tile_id;
+
+    CaloCell_ID* calo_id = new CaloCell_ID(em_p, hec_p, fcal_p, minifcal_p, tile_p);
+    if(calo_id->initialize_from_dictionary (idd)) {
+	std::cout << "check_cell_id_decoding - cannot init calocell from dict" << std::endl;
+	error = true;
+    }
+
+
+    // loop on cell hashes
+
+    std::vector<IdentifierHash> neighbourList;
+    IdentifierHash hash_min = 888888 ;
+    IdentifierHash hash_max = 0 ;
+    for (unsigned int iCell = 0 ; iCell < calo_id->calo_cell_hash_max(); ++iCell){
+      Identifier cellId = calo_id->cell_id(iCell);
+      calo_id->calo_cell_hash_range(cellId, hash_min, hash_max);
+
+      int res_neighb = calo_id->get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+      if(res_neighb) {
+	std::cout << "return code of get_neighbours not ok for iCell = " << iCell << "cellId = " << calo_id->show_to_string(cellId) << std::endl;
+      }
+      else {
+	std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+	std::vector<IdentifierHash>::iterator last=neighbourList.end();
+	for (;last!=first; first++){
+	  
+	  IdentifierHash neighbourHash=(*first);
+	  if(neighbourHash < hash_min || neighbourHash > hash_max) {
+	    std::cout << " neighbour index " << neighbourHash << " outside of det boundaries for iCell " << iCell << std::endl;
+	    error = true;
+	  }
+	}
+      }
+    }
+
+    if(!error) {
+	std::cout << "calo cell neighbours micro tests ok" << std::endl;
+    }
+}
+
+
+int main (int argc, char* argv[])  
+{  
+    if (argc < 2) return (1);  
+  
+    IdDictParser parser;  
+    std::string lArIDFileName = "IdDictLArCalorimeter_DC3-05-Comm-01.xml";
+    //    std::string lArIDFileName = "IdDictLArCalorimeter.xml";
+    //    std::string lArIDFileName = "IdDictLArCalorimeter_H8_2004.xml";
+    //    std::string lArIDFileName = "IdDictLArCalorimeter_H6_2004.xml";
+    parser.register_external_entity("LArCalorimeter", lArIDFileName); 
+    IdDictMgr& idd = parser.parse (argv[1]);  
+    std::cout << "got dict mgr " << std::endl;
+
+    // Set some default file names for neighbours (RDS 12/2009):
+    idd.add_metadata("FULLATLASNEIGHBORS",  "SuperCaloNeighbours-DC3-05-Comm-01.dat");  
+    idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+    idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+    idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+    idd.add_metadata("TILENEIGHBORS",       "TileNeighbour_reduced.txt");  
+
+
+    std::cout << "HELLO" << std::endl;
+    check_cell_neighbours(idd);
+    check_cell_id_decoding(idd);
+     
+    return 0;  
+}  
+  
+ 
+ 
+ 
+ 
+ 
diff --git a/Calorimeter/CaloIdentifier/test/test_lar_id.cxx b/Calorimeter/CaloIdentifier/test/test_lar_id.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..36fcc9801923bd95b16abb6cf19c43fe894d415a
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/test_lar_id.cxx
@@ -0,0 +1,2224 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Header: /build/atlas/cvs/atlas/offline/Calorimeter/CaloIdentifier/test/test_lar_id.cxx,v 1.25 2007-02-19 15:56:25 fledroit Exp $ 
+  
+#include "IdDictParser/IdDictParser.h"  
+#include "Identifier/Range.h" 
+#include "Identifier/IdentifierHash.h" 
+#include "CaloIdentifier/LArEM_ID.h"
+#include "CaloIdentifier/LArHEC_ID.h"
+#include "CaloIdentifier/LArFCAL_ID.h"
+#include "CaloIdentifier/LArMiniFCAL_ID.h"
+#include "CaloIdentifier/LArID_Exception.h"
+#include "GaudiKernel/System.h" 
+#include <iostream> 
+ 
+typedef Identifier::size_type  size_type ;
+
+#if 0
+static void tab (size_t level) 
+{ 
+    for (size_t i = 0; i < level; ++i) std::cout << " "; 
+} 
+#endif
+ 
+void
+check_lar_neighbour_timing(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  Begin  check_lar_neighbour_timing " << std::endl;
+    std::cout << "=====================================>  Begin  check_lar_neighbour_timing " << std::endl;
+
+    // Check the timing for lar em
+
+    LArEM_ID em_id;
+
+    longlong startOfUserTime    = System::userTime( System::microSec );
+    longlong startOfKernelTime  = System::kernelTime   ( System::microSec );
+    longlong startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_neighbour_timing - cannot init from dict" << std::endl;
+    }
+
+    std::cout << "Timing for init from dictionary " << std::endl;
+    
+    /// following lines could be platform dependent!
+    longlong deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    ///
+    longlong deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    ///
+    longlong deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "tries, user, kernel, elapsed " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << std::endl;
+
+
+    /// Loop over all channel hashes
+    size_type hash_max = em_id.channel_hash_max ();
+
+    std::cout << "Number of channels " <<  hash_max
+	      << std::endl;
+
+    int nloops = 300;
+    long long n = 0;
+
+
+    /// Empty loop
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    float num     = hash_max*nloops;
+    std::cout << "Empty loop " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    float user    = (float)deltaUser/num;
+    float kernel  = (float)deltaKernel/num;
+    float elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier access
+
+    /// Store in object the measured times
+    Identifier channel_id;
+    IdContext channelContext = em_id.channel_context();
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+//    const std::vector<Identifier>*       em_vec = em_id.em_vec();
+//    std::vector<Identifier>::const_iterator       em_vec_begin = em_id.em_vec()->begin();
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash (plus eta) " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier access from vector
+
+    const std::vector<Identifier>& channel_ids = em_id.channel_ids();
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+//    const std::vector<Identifier>*       em_vec = em_id.em_vec();
+//    std::vector<Identifier>::const_iterator       em_vec_begin = em_id.em_vec()->begin();
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = channel_ids[i];
+	    n += em_id.eta(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash (plus eta) " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and barrel_ec field access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.barrel_ec(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and access barrel_ec field " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and sampling field access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.sampling(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and access sampling field " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+
+    /// Identifier and region field access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.region(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and access region field " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and eta field access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.phi(channel_id) + em_id.eta(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and access eta field " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and phi field access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.phi(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and access phi field " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and region id from channel id
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    Identifier region_id;
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.region_id(channel_id).get_compact();
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and get region id from channel id " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    
+
+    /// Identifier access and hash access again
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + 
+		em_id.channel_hash_binary_search(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and get hash back again " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+    /// Identifier access and hash access again calc
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    n += em_id.eta(channel_id) + em_id.channel_hash(channel_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash and get hash back again, calc " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+    
+    /// Identifier access, for region
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    size_type reg_hash_max = em_id.region_hash_max ();
+    IdContext regionContext = em_id.region_context();
+    
+    nloops = 1000;
+
+    float num_reg     = reg_hash_max*100*nloops;
+
+    std::cout << "Number of region " <<  reg_hash_max
+	      << std::endl;
+
+    n = 0;
+    for (int j = 0; j < 100*nloops; ++j) {
+	for (size_type i=0; i<reg_hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, region_id, &regionContext);
+	    region_id = em_id.region_id(i);
+	    n        += em_id.region(region_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash for region " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num_reg << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num_reg;
+    kernel  = (float)deltaKernel/num_reg;
+    elapsed = (float)deltaElapsed/num_reg;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num_reg << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+    /// Identifier access and hash access again, for region
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < 100*nloops; ++j) {
+	for (size_type i=0; i<reg_hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, region_id, &regionContext);
+	    region_id = em_id.region_id(i);
+	    n        += em_id.region(region_id) + em_id.region_hash(region_id);
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID from hash for region and get hash back again " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num_reg << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num_reg;
+    kernel  = (float)deltaKernel/num_reg;
+    elapsed = (float)deltaElapsed/num_reg;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num_reg << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+
+
+
+    /// Identifier and channel fields access
+
+    /// Store in object the measured times
+    int barrel_ec;
+    int sampling;
+    int region;
+    int eta;
+    int phi;
+    
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    nloops = 100;
+    num     = hash_max*nloops;
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    barrel_ec = em_id.barrel_ec(channel_id);
+	    sampling  = em_id.sampling(channel_id);
+	    region    = em_id.region(channel_id);
+	    eta       = em_id.eta(channel_id);
+	    phi       = em_id.phi(channel_id);
+	    n         += barrel_ec + sampling + region + eta + phi;
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID and channel fields " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+    /// Identifier and channel fields access and channel ID again
+
+    Identifier ch_id;
+    
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    barrel_ec = em_id.barrel_ec(channel_id);
+	    sampling  = em_id.sampling(channel_id);
+	    region    = em_id.region(channel_id);
+	    eta       = em_id.eta(channel_id);
+	    phi       = em_id.phi(channel_id);
+	    ch_id     = em_id.channel_id(barrel_ec, sampling, region, eta, phi);
+	    n        += barrel_ec + sampling + region + eta + phi + ch_id.get_compact();
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID and channel fields and channel ID again " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+    /// Identifier and channel fields access
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    region_id = em_id.region_id(channel_id);
+	    eta       = em_id.eta(channel_id);
+	    phi       = em_id.phi(channel_id);
+	    n         += eta + phi;
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID, region id and eta/phi fields " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+    /// Identifier and channel fields access and channel ID again
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    n = 0;
+    for (int j = 0; j < nloops; ++j) {
+	for (size_type i=0; i<hash_max; ++i) {
+	    ++n;
+//		em_id.get_id(i, channel_id, &channelContext);
+	    channel_id = em_id.channel_id(i);
+	    region_id = em_id.region_id(channel_id);
+	    eta       = em_id.eta(channel_id);
+	    phi       = em_id.phi(channel_id);
+	    n         += eta + phi + em_id.channel_id(region_id, eta, phi).get_compact();
+	}
+    }
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "Get ID and eta/phi fields and channel ID again " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    /// Access to neighbours
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    try {
+	for (size_type i=0; i<hash_max; ++i) {
+	    std::vector<IdentifierHash> neighbourList;
+	    em_id.get_neighbours(i, LArNeighbours::all3D, neighbourList);
+	}
+    }
+    
+    catch ( LArID_Exception &excpt ) {
+	std::cout << "*** LArID_Exception caught: " << excpt.message() 
+		  << std::endl
+		  << "***   error code: " << excpt.code()   
+		  << std::endl;
+    }       
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    num     = hash_max;
+    std::cout << "Get all neighbours " << std::endl;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << n << " " 
+	      << std::endl;
+    user    = (float)deltaUser/num;
+    kernel  = (float)deltaKernel/num;
+    elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << num << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+
+
+}
+
+void
+check_lar_timing(IdDictMgr& idd)
+{
+    
+    // Check the timing for lar em
+
+    std::cout << "=====================================>  check_lar_timing" << std::endl;
+    std::cout << "=====================================>  check_lar_timing" << std::endl;
+
+    LArEM_ID em_id;
+
+    longlong startOfUserTime    = System::userTime( System::microSec );
+    longlong startOfKernelTime  = System::kernelTime   ( System::microSec );
+    longlong startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_timing - cannot init from dict" << std::endl;
+    }
+
+    std::cout << "Timing for init from dictionary " << std::endl;
+    
+    /// following lines could be platform dependent!
+    longlong deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    ///
+    longlong deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    ///
+    longlong deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "tries, user, kernel, elapsed " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << std::endl;
+
+    // regions
+    IdContext regionContext = em_id.region_context();
+    std::vector<Identifier>::const_iterator itId = em_id.reg_begin();
+//    std::vector<Identifier>::const_iterator itIdEnd = em_id.reg_end();
+  
+//    for(; itId!=itIdEnd;++itId){
+
+    Identifier reg_id = *itId;
+
+    em_id.show(reg_id);
+
+    std::cout << "eta min, max, phi max " <<  em_id.eta_min(reg_id) << " "
+	      <<  em_id.eta_max(reg_id) << " "
+	      <<  em_id.phi_max(reg_id) << " "
+	      << std::endl;
+    int eta_min = em_id.eta_min(reg_id);
+    int eta_max = em_id.eta_max(reg_id);
+    int phiMin = 0;
+    int phiMax = em_id.phi_max(reg_id);
+
+
+    // Switch between doing checks or not
+    //em_id.set_do_checks(true);
+    
+    std::cout << "Do checks " << em_id.do_checks() << std::endl;
+
+    // Switch between initializing neighbours or not
+    //    em_id.set_do_neighbours(false);
+    
+    std::cout << "Do neighbours " << em_id.do_neighbours() << std::endl;
+
+
+    /// Store in object the measured times
+    startOfUserTime    = System::userTime( System::microSec );
+    startOfKernelTime  = System::kernelTime   ( System::microSec );
+    startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+    int n=0;
+    try {
+	
+	for (int i=0; i<1000; ++i) {
+	    for (int eta=eta_min; eta <= eta_max; ++eta) {
+		for (int phi=phiMin; phi <= phiMax; ++phi) {
+
+//  		    eta = 500;
+//  		    std::cout << " eta " << eta << std::endl;
+		
+                    /*Identifier channel_id =*/ em_id.channel_id(reg_id, eta, phi);
+		    n++;
+
+		
+//  		int bec  = em_id.barrel_ec(reg_id);
+//  		int samp = em_id.sampling(reg_id);
+//  		int reg  = em_id.region(reg_id);
+//  //  		int eta  = em_id.eta(channel_id);
+//  //  		int phi  = em_id.phi(channel_id);
+
+//  		std::cout << "bec, samp, reg " << std::dec << bec << " " << samp << " " << reg << std::endl;
+
+      
+//  		Identifier chanId = em_id.channel_id (bec, samp, reg, eta, phi);
+		
+//  		std::cout << std::hex << channel_id.get_compact() << " " 
+//  			  << chanId.get_compact() << " " 
+//  			  << channel_id.get_compact()  - chanId.get_compact()
+//  			  << std::endl;
+
+
+		}
+	    }
+	}
+    }
+    
+    catch ( LArID_Exception &excpt ) {
+	std::cout << "*** LArID_Exception caught: " << excpt.message() 
+		  << std::endl
+		  << "***   error code: " << excpt.code()   
+		  << std::endl;
+    }       
+
+    /// following lines could be platform dependent!
+    deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    
+    deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    
+    deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "tries, user, kernel, elapsed " 
+	      << n << " " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << std::endl;
+    float num     = n;
+    float user    = (float)deltaUser/num;
+    float kernel  = (float)deltaKernel/num;
+    float elapsed = (float)deltaElapsed/num;
+    std::cout << "tries, user, kernel, elapsed " 
+	      << n << " " 
+	      << user << " " 
+	      << kernel << " "
+	      << elapsed << " " 
+	      << std::endl;
+    
+    
+}
+
+//------------------------------------------------------------------------------------------------
+
+static void
+check_lar_em_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_em_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_em_decoding" << std::endl;
+
+    LArEM_ID em_id;
+
+    bool voisins = em_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    em_id.set_do_neighbours(false);
+    voisins = em_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    bool error = false;
+
+    std::cout << "calling initialize_from_dictionary " << std::endl;
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_em_decoding - cannot init from dict" << std::endl;
+	error = true;
+    }
+
+    std::cout << "dictionary version = " << em_id.dictionaryVersion() << std::endl;
+    
+    bool verif = em_id.do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    em_id.set_do_checks(true);
+    verif = em_id.do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of hash calculation
+    
+    // channels
+    IdContext channelContext = em_id.channel_context();
+    std::vector<Identifier>::const_iterator itId = em_id.em_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = em_id.em_end();
+  
+    int nChan=0;
+
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	if(em_id.is_lar_em(ch_id)) {
+      
+	    nChan++;
+	    IdentifierHash hashId;
+	    int not_ok = em_id.get_hash ( ch_id, hashId, &channelContext);
+	    if(not_ok) {
+		std::cout <<  "EM: error in get_hash, ch_id = "
+			  << em_id.show_to_string(ch_id)
+			  << std::endl;
+		error = true;
+	    }
+      
+	    Identifier ch_id2;
+	    not_ok =  em_id.get_id ( hashId, ch_id2, &channelContext);
+	    if(not_ok) {
+		std::cout
+		    <<  "EM: error in get_id, hashId = "
+		    << hashId
+		    << std::endl;	
+		error = true;
+	    }
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " EM: ch_id2 incorrect: " <<  em_id.show_to_string(ch_id2) 
+		    << "         should be " <<  em_id.show_to_string(ch_id) 
+		    << "           hasId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    IdentifierHash hashId2 = em_id.channel_hash(ch_id);
+	    if(hashId2!=hashId) {
+	      error=true;
+	    }
+
+	    int bec  = em_id.barrel_ec(ch_id);
+	    int samp = em_id.sampling(ch_id);
+	    int reg  = em_id.region(ch_id);
+	    int eta  = em_id.eta(ch_id);
+	    int phi  = em_id.phi(ch_id);
+      
+	    Identifier chanId ;
+	    try {
+	      chanId = em_id.channel_id (bec, samp, reg, eta, phi);
+	    }
+	    catch ( LArID_Exception &excpt ) {
+	      std::cout << "*** LArID_Exception caught: " << excpt.message() 
+			<< std::endl
+			<< "***   error code: " << excpt.code()   
+			<< std::endl;
+	    }       
+
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "EM: chanId incorrect: " <<  em_id.show_to_string(chanId) 
+		    << "         should be " <<  em_id.show_to_string(ch_id) 
+		    << " input val of bec, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier regId = em_id.region_id (bec, samp, reg);
+	    Identifier chanId2 = em_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "EM: chanId2 incorrect: " <<  em_id.show_to_string(chanId2) 
+			  << "          should be " <<  em_id.show_to_string(chanId) 
+			  << "          regId     " <<  em_id.show_to_string(regId) 
+			  << " input val of bec, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+	}
+    }
+
+    // regions
+    itId = em_id.reg_begin();
+    itIdEnd = em_id.reg_end();
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier regId = *itId;
+	IdentifierHash regHash = em_id.region_hash(regId);
+	std::cout << "EM region, eta0, phi0 = " << em_id.show_to_string(regId) 
+		  << " " << em_id.eta0(regHash) 
+		  << " " << em_id.phi0(regHash) 
+		  << std::endl;
+	Identifier regId2 = em_id.region_id(regHash);
+	if(regId2 != regId) {
+	  std::cout << "EM: regId2 incorrect: " << em_id.show_to_string(regId2)
+		    << "         should be    " << em_id.show_to_string(regId)
+		    << " hash reg =            " << regHash
+		    << std::endl;
+	}
+	/*
+	int phiMin0 = em_id.phi_min(regId);
+	int phiMin1 = em_id.phi_min_opt(regId);
+	if(phiMin0 != phiMin1) {
+	  std::cout << " optimised phi_min giving result different from std phi_min : "
+		    << phiMin1 << " != " << phiMin0 << std::endl;
+	  error = true;
+	}
+	*/
+    }
+
+    if(!error) {
+      std::cout << "lar em decoding tests ok, nChan= " << nChan << std::endl;
+    }
+
+    std::cout << "finally check the exception throwing... " << std::endl;
+    try {
+      /*Identifier wrongRegionId =*/ em_id.region_id (0,99,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongChannelId =*/ em_id.channel_id (0,99,0,0,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodRegionId = em_id.region_id (1,0,0); 
+      /*Identifier wrongChannelId =*/ em_id.channel_id (goodRegionId,0,-99); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok " << std::endl;
+}
+
+static void check_lar_disc_em_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_disc_em_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_disc_em_decoding" << std::endl;
+
+    LArEM_ID em_id;
+
+    bool voisins = em_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    em_id.set_do_neighbours(false);
+    voisins = em_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_disc_em_decoding - cannot init from dict" << std::endl;
+    }
+
+
+    // disconnected channels
+    std::vector<Identifier>::const_iterator itId = em_id.disc_em_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = em_id.disc_em_end();
+  
+    int nChan=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	if(!em_id.is_connected(ch_id)) {
+	  nChan++;
+	  
+	    IdentifierHash hashId = em_id.disc_channel_hash(ch_id) ;
+	    bool ok = em_id.is_connected(hashId);
+	    if ( ok ) {
+		std::cout
+		    << " EM: pb with is_connected(hash): true in disc loop !!!"
+		    << "         ch_id = " <<  em_id.show_to_string(ch_id) 
+		    << "         hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier ch_id2 = em_id.disc_channel_id(hashId);
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " EM: disc ch_id2 incorrect: " <<  em_id.show_to_string(ch_id2) 
+		    << "         should be " <<  em_id.show_to_string(ch_id) 
+		    << "           hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+
+	    IdentifierHash hashId2 = em_id.disc_channel_hash(ch_id);
+	    //	    IdentifierHash hashId3 = em_id.channel_hash(ch_id);
+	    //	    std::cout << "disc_hash, hash=" << hashId2 << " " << hashId3 << std::endl;
+	    if(hashId2<em_id.channel_hash_max()) {
+	      std::cout << " wrong disconnected hash index " << hashId2
+			<< " less than channel_hash_max " << em_id.channel_hash_max()
+			<< " for channel " <<   em_id.show_to_string(ch_id) << std::endl; 
+	      error=true;
+	    }
+      
+	    int bec  = em_id.barrel_ec(ch_id);
+	    int samp = em_id.sampling(ch_id);
+	    int reg  = em_id.region(ch_id);
+	    Identifier regId = em_id.disc_region_id (bec, samp, reg);
+
+	    int eta  = em_id.disc_eta(ch_id);
+	    int phi  = em_id.disc_phi(ch_id);
+      
+	    try{
+	      ok = em_id.is_connected (bec, samp, reg, eta, phi);
+	    }
+	    catch(LArID_Exception & except){
+	      std::cout << (std::string) except << std::endl ;
+	    }
+	    if ( ok ) {
+		std::cout
+		    << " EM: pb with is_connected: true in disc loop !!!"
+		    << "  bec,samp,reg,eta,phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+
+	    Identifier chanId = em_id.disc_channel_id (bec, samp, reg, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "disc EM: chanId incorrect: " <<  em_id.show_to_string(chanId) 
+		    << "         should be " <<  em_id.show_to_string(ch_id) 
+		    << " input val of bec, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+
+	    /* essai pour Guillaume
+	    chanId = em_id.channel_id (bec, samp, reg, eta, phi);
+	    std::cout << "channelId= " << em_id.show_to_string(chanId) << std::endl;
+	    hashId = em_id.channel_hash(chanId) ;
+	    std::cout << "hashId= " << hashId << std::endl;
+	    */
+      
+	    Identifier chanId2 = em_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "disc EM: chanId2 incorrect: " <<  em_id.show_to_string(chanId2) 
+			  << "          should be " <<  em_id.show_to_string(chanId) 
+			  << "          regId     " <<  em_id.show_to_string(regId) 
+			  << " input val of bec, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+
+	}
+    }
+    if(!error) {
+      std::cout << "lar disc_em decoding tests ok, nChan=" << nChan << std::endl;
+    }
+}
+
+static void
+check_lar_hec_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_hec_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_hec_decoding" << std::endl;
+
+    LArHEC_ID hec_id;
+
+    bool voisins = hec_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    hec_id.set_do_neighbours(false);
+    voisins = hec_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(hec_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_hec_decoding - cannot init from dict" << std::endl;
+    }
+
+    std::cout << "dictionary version = " << hec_id.dictionaryVersion() << std::endl;
+    
+    bool verif = hec_id.do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    hec_id.set_do_checks(true);
+    verif = hec_id.do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of hash calculation
+    
+    // channels
+    IdContext channelContext = hec_id.channel_context();
+    std::vector<Identifier>::const_iterator itId = hec_id.hec_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = hec_id.hec_end();
+  
+    int nChan=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	if(hec_id.is_lar_hec(ch_id)) {
+      
+	    nChan++;
+	    IdentifierHash hashId;
+	    int not_ok = hec_id.get_hash ( ch_id, hashId, &channelContext);
+	    if(not_ok) {
+		std::cout <<  "HEC: error in get_hash, ch_id = "
+			  << hec_id.show_to_string(ch_id)
+			  << std::endl;
+		error = true;
+	    }
+      
+	    Identifier ch_id2;
+	    not_ok =  hec_id.get_id ( hashId, ch_id2, &channelContext);
+	    if(not_ok) {
+		std::cout
+		    <<  "HEC: error in get_id, hashId = "
+		    << hashId
+		    << std::endl;	
+		error = true;
+	    }
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " HEC: ch_id2 incorrect: " <<  hec_id.show_to_string(ch_id2) 
+		    << "         should be " <<  hec_id.show_to_string(ch_id) 
+		    << "           hasId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    int bec  = hec_id.pos_neg(ch_id);
+	    int samp = hec_id.sampling(ch_id);
+	    int reg  = hec_id.region(ch_id);
+	    int eta  = hec_id.eta(ch_id);
+	    int phi  = hec_id.phi(ch_id);
+      
+	    Identifier chanId = hec_id.channel_id (bec, samp, reg, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "HEC: chanId incorrect: " <<  hec_id.show_to_string(chanId) 
+		    << "         should be " <<  hec_id.show_to_string(ch_id) 
+		    << " input val of pn, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier regId = hec_id.region_id (bec, samp, reg);
+	    Identifier chanId2 = hec_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "HEC: chanId2 incorrect: " <<  hec_id.show_to_string(chanId2) 
+			  << "          should be " <<  hec_id.show_to_string(chanId) 
+			  << "          regId     " <<  hec_id.show_to_string(regId) 
+			  << " input val of pn, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+	}
+    }
+    // regions
+    itId = hec_id.reg_begin();
+    itIdEnd = hec_id.reg_end();
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier regId = *itId;
+	IdentifierHash regHash = hec_id.region_hash(regId);
+	std::cout << "HEC region, eta0, phi0 = " << hec_id.show_to_string(regId) 
+		  << " " << hec_id.eta0(regHash) 
+		  << " " << hec_id.phi0(regHash) 
+		  << std::endl;
+	/*
+	int phiMin0 = hec_id.phi_min(regId);
+	int phiMin1 = hec_id.phi_min_opt(regId);
+	if(phiMin0 != phiMin1) {
+	  std::cout << " optimised phi_min giving result different from std phi_min : "
+		    << phiMin1 << " != " << phiMin0 << std::endl;
+	  error = true;
+	}
+	*/
+    }
+
+    if(!error) {
+      std::cout << "lar hec decoding tests ok, nChan= " << nChan << std::endl;
+    }
+
+    std::cout << "finally check the exception throwing... " << std::endl;
+    try {
+      /*Identifier wrongRegionId =*/ hec_id.region_id (0,99,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongChannelId =*/ hec_id.channel_id (0,99,0,0,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodRegionId = hec_id.region_id (2,0,0); 
+      /*Identifier wrongChannelId =*/ hec_id.channel_id (goodRegionId,0,-99); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok " << std::endl;
+}
+
+static void check_lar_disc_hec_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_disc_hec_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_disc_hec_decoding" << std::endl;
+
+    LArHEC_ID hec_id;
+
+    bool voisins = hec_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    hec_id.set_do_neighbours(false);
+    voisins = hec_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(hec_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_disc_hec_decoding - cannot init from dict" << std::endl;
+    }
+
+
+    // test of hash calculation
+    
+
+
+    // disconnected channels
+    std::vector<Identifier>::const_iterator itId = hec_id.disc_hec_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = hec_id.disc_hec_end();
+  
+    int nChan=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	if(!hec_id.is_connected(ch_id)) {
+	    nChan++;
+      
+	    IdentifierHash hashId = hec_id.disc_channel_hash(ch_id) ;
+      
+	    bool ok = hec_id.is_connected(hashId);
+	    if ( ok ) {
+		std::cout
+		    << " HEC: pb with is_connected(hash): true in disc loop !!!"
+		    << "         ch_id = " <<  hec_id.show_to_string(ch_id) 
+		    << "         hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier ch_id2 = hec_id.disc_channel_id(hashId);
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " HEC: disc ch_id2 incorrect: " <<  hec_id.show_to_string(ch_id2) 
+		    << "         should be " <<  hec_id.show_to_string(ch_id) 
+		    << "           hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    int bec  = hec_id.pos_neg(ch_id);
+	    int samp = hec_id.sampling(ch_id);
+	    int reg  = hec_id.region(ch_id);
+	    Identifier regId = hec_id.disc_region_id (bec, samp, reg);
+
+	    int eta  = hec_id.disc_eta(ch_id);
+	    int phi  = hec_id.disc_phi(ch_id);
+      
+	    try{
+	      ok = hec_id.is_connected (bec, samp, reg, eta, phi);
+	    }
+	    catch(LArID_Exception & except){
+	      std::cout << (std::string) except << std::endl ;
+	    }
+	    if ( ok ) {
+		std::cout
+		    << " HEC: pb with is_connected: true in disc loop !!!"
+		    << "  bec,samp,reg,eta,phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+
+	    Identifier chanId = hec_id.disc_channel_id (bec, samp, reg, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "disc HEC: chanId incorrect: " <<  hec_id.show_to_string(chanId) 
+		    << "         should be " <<  hec_id.show_to_string(ch_id) 
+		    << " input val of pn, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier chanId2 = hec_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "disc HEC: chanId2 incorrect: " <<  hec_id.show_to_string(chanId2) 
+			  << "          should be " <<  hec_id.show_to_string(chanId) 
+			  << "          regId     " <<  hec_id.show_to_string(regId) 
+			  << " input val of pn, samp, reg, eta, phi= " << bec << " " << samp << " " << reg << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+
+	}
+    }
+    if(!error) {
+      std::cout << "lar disc_hec decoding tests ok, nChan=" << nChan << std::endl;
+    }
+}
+
+static void
+check_lar_fcal_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_minifcal_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_minifcal_decoding" << std::endl;
+
+    LArMiniFCAL_ID minifcal_id;
+
+
+    bool voisinsMF = minifcal_id.do_neighbours();
+    std::cout << "voisinsMF0 = " << voisinsMF << std::endl;
+    minifcal_id.set_do_neighbours(false);
+    voisinsMF = minifcal_id.do_neighbours();
+    std::cout << "voisinsMF1 = " << voisinsMF << std::endl;
+
+    if(minifcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_minifcal_decoding - cannot init from dict" << std::endl;
+    }
+    std::cout << "dictionary version (MiniFcal) = " << minifcal_id.dictionaryVersion() << std::endl;
+
+    bool verifm = minifcal_id.do_checks();
+    std::cout << "verif0 = " << verifm << std::endl;
+    minifcal_id.set_do_checks(true);
+    verifm = minifcal_id.do_checks();
+    std::cout << "verif1 = " << verifm << std::endl;
+
+    IdContext mfchannelContext = minifcal_id.channel_context();
+    std::vector<Identifier>::const_iterator itIdMF = minifcal_id.minifcal_begin();
+    std::vector<Identifier>::const_iterator itIdEndMF = minifcal_id.minifcal_end();
+  
+    int nChanMF=0;
+    int nChanMF2=0;
+
+    bool errorMF = false;
+  
+    for(; itIdMF!=itIdEndMF;++itIdMF){
+
+	Identifier ch_id = *itIdMF;
+	nChanMF2++;
+	if(minifcal_id.is_lar_fcal(ch_id)) {
+      
+	    nChanMF++;
+	    IdentifierHash hashId;
+	    int not_ok = minifcal_id.get_hash ( ch_id, hashId, &mfchannelContext);
+	    if(not_ok) {
+		std::cout <<  "MINIFCAL: errorMF in get_hash, ch_id = "
+			  << minifcal_id.show_to_string(ch_id)
+			  << std::endl;
+		errorMF = true;
+	    }
+      
+	    Identifier ch_id2;
+	    not_ok =  minifcal_id.get_id ( hashId, ch_id2, &mfchannelContext);
+	    if(not_ok) {
+		std::cout
+		    <<  "MINIFCAL: errorMF in get_id, hashId = "
+		    << hashId
+		    << std::endl;	
+		errorMF = true;
+	    }
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " MINIFCAL: ch_id2 incorrect: " <<  minifcal_id.show_to_string(ch_id2) 
+		    << "         should be " <<  minifcal_id.show_to_string(ch_id) 
+		    << "           hasId = " << hashId
+		    << std::endl;
+		errorMF = true;
+	    }
+      
+	    int bec  = minifcal_id.pos_neg(ch_id);
+	    int samp = minifcal_id.module(ch_id);
+	    int depth = minifcal_id.depth(ch_id);
+	    int eta  = minifcal_id.eta(ch_id);
+	    int phi  = minifcal_id.phi(ch_id);
+      
+	    Identifier chanId = minifcal_id.channel_id (bec, samp, depth, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "MINIFCAL: chanId incorrect: " <<  minifcal_id.show_to_string(chanId) 
+		    << "         should be " <<  minifcal_id.show_to_string(ch_id) 
+		    << " input val of pn, mod, depth, eta, phi= " << bec << " " << samp << " " << depth << " " << eta << " " << phi
+		    << std::endl;
+		errorMF = true;
+	    }
+      
+	    Identifier regId = minifcal_id.module_id (bec, samp);
+	    Identifier chanId2 = minifcal_id.channel_id (regId, depth, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "MINIFCAL: chanId2 incorrect: " <<  minifcal_id.show_to_string(chanId2) 
+			  << "          should be " <<  minifcal_id.show_to_string(chanId) 
+			  << "          modId     " <<  minifcal_id.show_to_string(regId) 
+			  << " input val of pn, mod, depth, eta, phi= " << bec << " " << samp << " " << depth << " " << eta << " " << phi
+			  << std::endl;
+		errorMF = true;
+	    }
+	}
+    }
+
+    // regions
+    itIdMF = minifcal_id.mod_begin();
+    itIdEndMF = minifcal_id.mod_end();
+  
+    for(; itIdMF!=itIdEndMF;++itIdMF){
+	Identifier modId = *itIdMF;
+	IdentifierHash modHash = minifcal_id.module_hash(modId);
+	std::cout << "MINIFCAL region, eta0, phi0 = " << minifcal_id.show_to_string(modId) 
+		  << " " << minifcal_id.eta0(modHash) 
+		  << " " << minifcal_id.phi0(modHash) 
+		  << std::endl;
+	
+    }
+
+    if(!errorMF) {
+      std::cout << "lar minifcal decoding tests ok, nChanMF= " << nChanMF << "    and really all: " <<  nChanMF2 << std::endl;
+    }
+    std::cout << "finally check the exception throwing... " << std::endl;
+    try {
+      /*Identifier wrongModuleId =*/ minifcal_id.module_id (0,99); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongChannelId =*/ minifcal_id.channel_id (0,99,0,0,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodModuleId = minifcal_id.module_id (2,0); 
+      /*Identifier wrongChannelId =*/ minifcal_id.channel_id (goodModuleId,0, 99, 0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok  ...? " << std::endl;
+
+
+    std::cout << "=====================================>  check_lar_fcal_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_fcal_decoding" << std::endl;
+
+    LArFCAL_ID fcal_id;
+
+    bool voisins = fcal_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    fcal_id.set_do_neighbours(false);
+    voisins = fcal_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(fcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_fcal_decoding - cannot init from dict" << std::endl;
+    }
+
+    std::cout << "dictionary version = " << fcal_id.dictionaryVersion() << std::endl;
+    
+    bool verif = fcal_id.do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    fcal_id.set_do_checks(true);
+    verif = fcal_id.do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    // test of hash calculation
+    
+    // channels
+    IdContext channelContext = fcal_id.channel_context();
+    std::vector<Identifier>::const_iterator itId = fcal_id.fcal_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = fcal_id.fcal_end();
+  
+    int nChan=0;
+    int nChan2=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	nChan2++;
+	if(fcal_id.is_lar_fcal(ch_id)) {
+      
+	    nChan++;
+	    IdentifierHash hashId;
+	    int not_ok = fcal_id.get_hash ( ch_id, hashId, &channelContext);
+	    if(not_ok) {
+		std::cout <<  "FCAL: error in get_hash, ch_id = "
+			  << fcal_id.show_to_string(ch_id)
+			  << std::endl;
+		error = true;
+	    }
+      
+	    Identifier ch_id2;
+	    not_ok =  fcal_id.get_id ( hashId, ch_id2, &channelContext);
+	    if(not_ok) {
+		std::cout
+		    <<  "FCAL: error in get_id, hashId = "
+		    << hashId
+		    << std::endl;	
+		error = true;
+	    }
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " FCAL: ch_id2 incorrect: " <<  fcal_id.show_to_string(ch_id2) 
+		    << "         should be " <<  fcal_id.show_to_string(ch_id) 
+		    << "           hasId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    int bec  = fcal_id.pos_neg(ch_id);
+	    int samp = fcal_id.module(ch_id);
+	    int eta  = fcal_id.eta(ch_id);
+	    int phi  = fcal_id.phi(ch_id);
+      
+	    Identifier chanId = fcal_id.channel_id (bec, samp, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "FCAL: chanId incorrect: " <<  fcal_id.show_to_string(chanId) 
+		    << "         should be " <<  fcal_id.show_to_string(ch_id) 
+		    << " input val of pn, mod, eta, phi= " << bec << " " << samp << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier regId = fcal_id.module_id (bec, samp);
+	    Identifier chanId2 = fcal_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "FCAL: chanId2 incorrect: " <<  fcal_id.show_to_string(chanId2) 
+			  << "          should be " <<  fcal_id.show_to_string(chanId) 
+			  << "          modId     " <<  fcal_id.show_to_string(regId) 
+			  << " input val of pn, mod, eta, phi= " << bec << " " << samp << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+	}
+    }
+    // regions
+    itId = fcal_id.mod_begin();
+    itIdEnd = fcal_id.mod_end();
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier modId = *itId;
+	IdentifierHash modHash = fcal_id.module_hash(modId);
+	std::cout << "FCAL region, eta0, phi0 = " << fcal_id.show_to_string(modId) 
+		  << " " << fcal_id.eta0(modHash) 
+		  << " " << fcal_id.phi0(modHash) 
+		  << std::endl;
+	/*
+	int phiMin0 = fcal_id.phi_min(modId);
+	int phiMin1 = fcal_id.phi_min_opt(modId);
+	if(phiMin0 != phiMin1) {
+	  std::cout << " optimised phi_min giving result different from std phi_min : "
+		    << phiMin1 << " != " << phiMin0 << std::endl;
+	  error = true;
+	}
+	*/
+    }
+
+    if(!error) {
+      std::cout << "lar fcal decoding tests ok, nChan= " << nChan << "    and really all: " <<  nChan2 << std::endl;
+    }
+    std::cout << "finally check the exception throwing... " << std::endl;
+    try {
+      /*Identifier wrongModuleId =*/ fcal_id.module_id (0,99); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongChannelId =*/ fcal_id.channel_id (0,99,0,0); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodModuleId = fcal_id.module_id (2,1); 
+      /*Identifier wrongChannelId =*/ fcal_id.channel_id (goodModuleId,0,-99); 
+    }
+    catch(LArID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok " << std::endl;
+}
+
+static void check_lar_disc_fcal_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_disc_fcal_decoding" << std::endl;
+    std::cout << "=====================================>  check_lar_disc_fcal_decoding" << std::endl;
+
+    LArFCAL_ID fcal_id;
+
+    bool voisins = fcal_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    fcal_id.set_do_neighbours(false);
+    voisins = fcal_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(fcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_disc_fcal_decoding - cannot init from dict" << std::endl;
+    }
+
+
+    // test of hash calculation
+    
+
+
+    // disconnected channels
+    std::vector<Identifier>::const_iterator itId = fcal_id.disc_fcal_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = fcal_id.disc_fcal_end();
+  
+    int nChan=0;
+
+    bool error = false;
+  
+    for(; itId!=itIdEnd;++itId){
+
+	Identifier ch_id = *itId;
+	if(!fcal_id.is_connected(ch_id)) {
+	    nChan++;
+      
+	    IdentifierHash hashId = fcal_id.disc_channel_hash(ch_id) ;
+      
+	    bool ok = fcal_id.is_connected(hashId);
+	    if ( ok ) {
+		std::cout
+		    << " FCAL: pb with is_connected(hash): true in disc loop !!!"
+		    << "         ch_id = " <<  fcal_id.show_to_string(ch_id) 
+		    << "         hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+	    Identifier ch_id2 = fcal_id.disc_channel_id(hashId);
+      
+	    if ( ch_id2 != ch_id ) {
+		std::cout
+		    << " FCAL: disc ch_id2 incorrect: " <<  fcal_id.show_to_string(ch_id2) 
+		    << "         should be " <<  fcal_id.show_to_string(ch_id) 
+		    << "           hashId = " << hashId
+		    << std::endl;
+		error = true;
+	    }
+      
+	    int bec  = fcal_id.pos_neg(ch_id);
+	    int samp = fcal_id.module(ch_id);
+	    Identifier regId = fcal_id.disc_module_id (bec, samp);
+
+	    int eta  = fcal_id.disc_eta(ch_id);
+	    int phi  = fcal_id.disc_phi(ch_id);
+      
+	    try{
+	      ok = fcal_id.is_connected (bec, samp, eta, phi);
+	    }
+	    catch(LArID_Exception & except){
+	      std::cout << (std::string) except << std::endl ;
+	    }
+	    if ( ok ) {
+		std::cout
+		    << " FCAL: pb with is_connected: true in disc loop !!!"
+		    << "  bec,samp,eta,phi= " << bec << " " << samp << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+
+	    Identifier chanId = fcal_id.disc_channel_id (bec, samp, eta, phi);
+	    if ( chanId != ch_id ) {
+		std::cout
+		    << "disc FCAL: chanId incorrect: " <<  fcal_id.show_to_string(chanId) 
+		    << "         should be " <<  fcal_id.show_to_string(ch_id) 
+		    << " input val of pn, mod, eta, phi= " << bec << " " << samp << " " << eta << " " << phi
+		    << std::endl;
+		error = true;
+	    }
+      
+	    Identifier chanId2 = fcal_id.channel_id (regId, eta, phi);
+	    if ( chanId2 != chanId ) {
+		std::cout << "disc FCAL: chanId2 incorrect: " <<  fcal_id.show_to_string(chanId2) 
+			  << "          should be " <<  fcal_id.show_to_string(chanId) 
+			  << "          modId     " <<  fcal_id.show_to_string(regId) 
+			  << " input val of pn, mod, eta, phi= " << bec << " " << samp << " " << eta << " " << phi
+			  << std::endl;
+		error = true;
+	    }
+
+	}
+    }
+    if(!error) {
+      std::cout << "lar disc_fcal decoding tests ok, nChan=" << nChan << std::endl;
+    }
+}
+
+
+static void check_lar_neighbour(IdDictMgr& idd)
+{
+    
+    std::cout << "=====================================>  check_lar_neighbour" << std::endl;
+    std::cout << "=====================================>  check_lar_neighbour" << std::endl;
+
+    LArEM_ID em_id;
+  
+    bool voisins = em_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    em_id.set_do_neighbours(true);
+    voisins = em_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(em_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_neighbour - cannot init from dict" << std::endl;
+    }
+
+    std::vector<IdentifierHash> neighbourList;
+    IdentifierHash hash_min = 999999 ;
+    IdentifierHash hash_max = 0 ;
+    for (unsigned int iCell = 0 ; iCell < em_id.channel_hash_max(); ++iCell){
+      /*Identifier cellId =*/ em_id.channel_id(iCell);
+
+      em_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList);
+
+      std::vector<IdentifierHash>::iterator first=neighbourList.begin();
+      std::vector<IdentifierHash>::iterator last=neighbourList.end();
+      for (;last!=first; first++){
+	
+	IdentifierHash neighbourHash=(*first);
+	if(neighbourHash < hash_min ) {
+	  hash_min = neighbourHash;
+	}
+	if(neighbourHash > hash_max) {
+	  hash_max = neighbourHash;
+	}
+
+      }
+    }
+
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+    std::cout << "lar_neighbour tests: " 
+	      << " min em neighbour index = " << hash_min
+	      << " max em neighbour index = " << hash_max
+	      << " channel_hash_max = " << em_id.channel_hash_max()
+	      << std::endl;
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+
+    LArHEC_ID hec_id;
+  
+    voisins = hec_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    hec_id.set_do_neighbours(true);
+    voisins = hec_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(hec_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_neighbour - cannot init from dict" << std::endl;
+    }
+
+    std::vector<IdentifierHash> neighbourList2;
+    IdentifierHash hash_min2 = 999999 ;
+    IdentifierHash hash_max2 = 0 ;
+    for (unsigned int iCell = 0 ; iCell < hec_id.channel_hash_max(); ++iCell){
+      /*Identifier cellId =*/ hec_id.channel_id(iCell);
+
+      hec_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList2);
+
+      std::vector<IdentifierHash>::iterator first=neighbourList2.begin();
+      std::vector<IdentifierHash>::iterator last=neighbourList2.end();
+      for (;last!=first; first++){
+	
+	IdentifierHash neighbourHash=(*first);
+	if(neighbourHash < hash_min2 ) {
+	  hash_min2 = neighbourHash;
+	}
+	if(neighbourHash > hash_max2) {
+	  hash_max2 = neighbourHash;
+	}
+
+      }
+    }
+
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+    std::cout << "lar_neighbour tests: " 
+	      << " min hec neighbour index = " << hash_min2
+	      << " max hec neighbour index = " << hash_max2
+	      << " channel_hash_max = " << hec_id.channel_hash_max()
+	      << std::endl;
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+
+    LArFCAL_ID fcal_id;
+  
+    voisins = fcal_id.do_neighbours();
+    std::cout << "voisins0 = " << voisins << std::endl;
+    fcal_id.set_do_neighbours(true);
+    voisins = fcal_id.do_neighbours();
+    std::cout << "voisins1 = " << voisins << std::endl;
+
+    if(fcal_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lar_neighbour - cannot init from dict" << std::endl;
+    }
+
+    std::vector<IdentifierHash> neighbourList3;
+    IdentifierHash hash_min3 = 999999 ;
+    IdentifierHash hash_max3 = 0 ;
+    for (unsigned int iCell = 0 ; iCell < fcal_id.channel_hash_max(); ++iCell){
+      /*Identifier cellId =*/ fcal_id.channel_id(iCell);
+
+      fcal_id.get_neighbours(iCell, LArNeighbours::all3D, neighbourList3);
+
+      std::vector<IdentifierHash>::iterator first=neighbourList3.begin();
+      std::vector<IdentifierHash>::iterator last=neighbourList3.end();
+      for (;last!=first; first++){
+	
+	IdentifierHash neighbourHash=(*first);
+	if(neighbourHash < hash_min3 ) {
+	  hash_min3 = neighbourHash;
+	}
+	if(neighbourHash > hash_max3) {
+	  hash_max3 = neighbourHash;
+	}
+
+      }
+    }
+
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+    std::cout << "lar_neighbour tests: " 
+	      << " min fcal neighbour index = " << hash_min3
+	      << " max fcal neighbour index = " << hash_max3
+	      << " channel_hash_max = " << fcal_id.channel_hash_max()
+	      << std::endl;
+    std::cout << " = = = = = = = = = = = "  << std::endl;
+}
+
+
+int main (int argc, char* argv[])  
+{  
+    if (argc < 2) return (1);  
+  
+
+    longlong startOfUserTime    = System::userTime( System::microSec );
+    longlong startOfKernelTime  = System::kernelTime   ( System::microSec );
+    longlong startOfElapsedTime = System::ellapsedTime ( System::microSec );
+
+
+
+    IdDictParser parser;  
+
+    //<<<<<<< test_lar_id.cxx
+    // standard dict:
+    //std::string lArIDFileName = "IdDictLArCalorimeter_DC3-05-Comm-01.xml";
+    // For sLHC:
+    std::string lArIDFileName = "IdDictLArCalorimeter_sLHC-MiniFcal-00.xml";
+    //    std::string lArIDFileName = "IdDictLArCalorimeter_H8_2004.xml";
+    //    std::string lArIDFileName = "IdDictLArCalorimeter_H6_2004.xml";
+    parser.register_external_entity("LArCalorimeter", lArIDFileName); 
+    std::string caloIDFileName = "IdDictCalorimeter_L1Onl.xml";  
+    parser.register_external_entity("Calorimeter", caloIDFileName); 
+    IdDictMgr& idd = parser.parse (argv[1]);  
+//    IdDictMgr& idd = parser.parse (argv[1], "initial_layout");  
+
+
+    // Set some default file names for neighbours (RDS 12/2009):
+    idd.add_metadata("FULLATLASNEIGHBORS",  "SuperCaloNeighbours-DC3-05-Comm-01.dat");  
+    idd.add_metadata("FCAL2DNEIGHBORS",     "FCal2DNeighbors-DC3-05-Comm-01.txt");  
+    idd.add_metadata("FCAL3DNEIGHBORSNEXT", "FCal3DNeighborsNext-DC3-05-Comm-01.txt");  
+    idd.add_metadata("FCAL3DNEIGHBORSPREV", "FCal3DNeighborsPrev-DC3-05-Comm-01.txt");  
+    idd.add_metadata("TILENEIGHBORS",       "TileNeighbour_reduced.txt");  
+
+    std::cout << "Timing for parsing dictionaries " << std::endl;
+    
+    /// following lines could be platform dependent!
+    longlong deltaUser    = System::userTime    ( System::microSec ) - startOfUserTime   ;
+    ///
+    longlong deltaKernel  = System::kernelTime  ( System::microSec ) - startOfKernelTime ;
+    ///
+    longlong deltaElapsed = System::ellapsedTime( System::microSec ) - startOfElapsedTime ;
+
+    std::cout << "tries, user, kernel, elapsed " 
+	      << deltaUser << " " 
+	      << deltaKernel << " "
+	      << deltaElapsed << " " 
+	      << std::endl;
+
+
+
+
+    std::cout << "got dict mgr " << std::endl;
+//      std::cout << "regenerate for tag = initial_layout " << std::endl;
+//      idd.generate_implementation ("initial_layout");  
+
+    check_lar_em_decoding(idd);
+
+    check_lar_disc_em_decoding(idd);
+     
+    check_lar_hec_decoding(idd);
+
+    check_lar_disc_hec_decoding(idd);
+
+    check_lar_fcal_decoding(idd);
+
+    check_lar_disc_fcal_decoding(idd);
+
+    check_lar_neighbour(idd);
+
+    //    check_lar_timing(idd);
+
+    //    check_lar_neighbour_timing(idd);
+    
+    return 0;  
+}  
+  
+ 
+ 
+ 
+ 
+ 
diff --git a/Calorimeter/CaloIdentifier/test/test_lvl1_id.cxx b/Calorimeter/CaloIdentifier/test/test_lvl1_id.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..abb50a89cfe8b574f4337c5e8bf98d383bd8d7e8
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/test_lvl1_id.cxx
@@ -0,0 +1,450 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+
+// $Header: /build/atlas/cvs/atlas/offline/Calorimeter/CaloIdentifier/test/test_lvl1_id.cxx,v 1.7 2006-12-13 23:03:15 ssnyder Exp $ 
+  
+#include "IdDictParser/IdDictParser.h"  
+#include "Identifier/IdentifierHash.h" 
+#include "CaloIdentifier/CaloLVL1_ID.h"
+#include <iostream> 
+#include <cassert>
+
+static void
+test_id(const CaloLVL1_ID& idh, Identifier id)
+{
+    if(idh.is_tile	(id)) std::cout << "is_tile" << std::endl;
+    if(idh.is_indet    	(id)) std::cout << "is_indet" << std::endl;
+    if(idh.is_lar 	(id)) std::cout << "is_lar" << std::endl;
+    if(idh.is_muon	(id)) std::cout << "is_muon" << std::endl;
+    if(idh.is_calo	(id)) std::cout << "is_calo" << std::endl;
+    if(idh.is_lvl1_trig_towers(id)) std::cout << "is_lvl" << std::endl;
+    if(idh.is_pixel	(id)) std::cout << "is_pixel" << std::endl;
+    if(idh.is_sct	(id)) std::cout << "is_sct" << std::endl;
+    if(idh.is_trt	(id)) std::cout << "is_trt" << std::endl;
+    if(idh.is_lar_em 	(id)) std::cout << "is_lar_em" << std::endl;
+    if(idh.is_lar_hec	(id)) std::cout << "is_lar_hec" << std::endl;
+    if(idh.is_lar_fcal	(id)) std::cout << "is_lar_fcal" << std::endl;
+    if(idh.is_lar_dm	(id)) std::cout << "is_lar_dm" << std::endl;
+    if(idh.is_tile_dm	(id)) std::cout << "is_tile_dm" << std::endl;
+    if(idh.is_mdt	(id)) std::cout << "is_mdt" << std::endl;
+    if(idh.is_csc	(id)) std::cout << "is_csc" << std::endl;
+    if(idh.is_tgc	(id)) std::cout << "is_tgc" << std::endl;
+    if(idh.is_rpc	(id)) std::cout << "is_rpc" << std::endl;
+}
+
+static void
+check_lvl1_id_decoding(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_lvl1_id_decoding" << std::endl;
+    std::cout << "=========>  check_lvl1_id_decoding" << std::endl;
+
+    CaloLVL1_ID lvl1_id;
+    if(lvl1_id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lvl1_id_decoding - cannot init lvl1 from dict" << std::endl;
+    }
+
+    // Test LVL1
+    Identifier id = lvl1_id.layer_id(-1, 1, 2, 0, 5, 2);
+    std::cout << "id                  " << lvl1_id.show_to_string(id) 
+	      << " " <<  id  << std::endl;
+    test_id(lvl1_id, id);
+
+
+    // Test LVL1
+    id = lvl1_id.lar_lvl1();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+
+    // Test LAr DM
+    id = lvl1_id.lar_dm();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    // Test Tile DM
+    id = lvl1_id.tile_dm();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+
+    id = lvl1_id.indet();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.lar();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.tile();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    std::cout << "is_tile " << lvl1_id.is_tile(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.muon();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.calo();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.pixel();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.sct();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.trt();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.lar_em();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.lar_hec();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.lar_fcal();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.mdt();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.csc();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.rpc();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+
+    id = lvl1_id.tgc();
+    std::cout << "id                  " << lvl1_id.show_to_string(id) << std::endl;
+    test_id(lvl1_id, id);
+}
+
+static void
+check_lvl1_helper(IdDictMgr& idd)
+{
+    
+    std::cout << "=========>  check_lvl1_helper" << std::endl;
+    std::cout << "=========>  check_lvl1_helper" << std::endl;
+
+    CaloLVL1_ID lvl1Id;
+    if(lvl1Id.initialize_from_dictionary (idd)) {
+	std::cout << "check_lvl1_helper - cannot init lvl1 from dict" << std::endl;
+    }
+    const CaloLVL1_ID* lvl1_id = &lvl1Id;
+
+
+    bool verif = lvl1_id->do_checks();
+    std::cout << "verif0 = " << verif << std::endl;
+    lvl1_id->set_do_checks(true);
+    verif = lvl1_id->do_checks();
+    std::cout << "verif1 = " << verif << std::endl;
+
+
+    IdContext towerContext = lvl1_id->tower_context();
+    IdContext layerContext = lvl1_id->layer_context();
+    IdContext regionContext = lvl1_id->region_context();
+
+    // regions
+    std::vector<Identifier>::const_iterator itId = lvl1_id->region_begin();
+    std::vector<Identifier>::const_iterator itIdEnd = lvl1_id->region_end();
+  
+    bool error = false;
+    int nreg=0;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier regId = *itId;
+	//	std::cout << " ================= NREG = " << nreg << std::endl;
+	nreg++;
+	
+	//
+	// ... in tower context
+	//
+	int posNeg   = lvl1_id->pos_neg_z(regId);
+	int sampling = lvl1_id->sampling(regId);
+	int region   = lvl1_id->region(regId);
+	
+	Identifier regId2 = lvl1_id->region_id (posNeg, sampling, region) ;
+
+	if (regId2 != regId) {
+	  std::cout 
+	      << "error in region_id "
+	      << " regId  " << lvl1_id->show_to_string(regId) 
+	      << " regId2 " << lvl1_id->show_to_string(regId2) 
+	      << std::endl;
+	  error = true;
+	}
+	std::cout << "region: " << lvl1_id->show_to_string(regId) << std::endl;
+	std::cout << "etamin, etamax=  " << lvl1_id->eta_min(regId)
+		  << " " << lvl1_id->eta_max(regId) << std::endl;
+	std::cout << "phimax, laymax=  " << lvl1_id->phi_max(regId)
+		  << " " << lvl1_id->layer_max(regId) << std::endl;
+    }
+    std::cout << "number of regions= " << nreg  << ", region_hash_max= " << lvl1_id->region_hash_max() << std::endl;
+
+
+    // towers
+    itId = lvl1_id->tower_begin();
+    itIdEnd = lvl1_id->tower_end();
+  
+    int nChan=0;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier ttId = *itId;
+	//	std::cout << " ================= NCHAN = " << nChan << std::endl;
+	nChan++;
+	
+	//
+	// ... in tower context
+	//
+	int posNeg   = lvl1_id->pos_neg_z(ttId);
+	int sampling = lvl1_id->sampling(ttId);
+	int region   = lvl1_id->region(ttId);
+	int eta = lvl1_id->eta(ttId);
+	int phi = lvl1_id->phi(ttId);
+	
+	Identifier regId = lvl1_id->region_id (posNeg, sampling, region) ;
+
+	IdentifierHash regHash;
+	int not_ok = lvl1_id->get_hash ( regId, regHash, &regionContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_hash"
+	      << " regId " << lvl1_id->show_to_string(regId) 
+	      << std::endl;
+	  error = true;
+	}
+	Identifier regId2;
+	not_ok = lvl1_id->get_id (regHash, regId2, &regionContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_id (region constext)"
+	      << " regId2 " << lvl1_id->show_to_string(regId2) 
+	      << " regHash " <<  regHash 
+	      << std::endl;
+		error = true;
+	}
+	Identifier regId3 = lvl1_id->region_id(regHash);
+	if (regId3 != regId) {
+	  std::cout 
+	      << "error in region_id(regHash)"
+	      << " regId  " << lvl1_id->show_to_string(regId) 
+	      << " regId3 " << lvl1_id->show_to_string(regId3) 
+	      << " regHash = " << regHash
+	      << std::endl;
+	  error = true;
+	}
+
+
+	Identifier ttId3 = lvl1_id->tower_id (regId, eta, phi) ;
+	if (ttId3 != ttId) {
+	  std::cout 
+	      << "error in tower_id(regId, eta, phi)"
+	      << " ttId  " << lvl1_id->show_to_string(ttId) 
+	      << " ttId3 " << lvl1_id->show_to_string(ttId3) 
+	      << "input fields = " << lvl1_id->show_to_string(regId) << " " << eta << " " << phi
+	      << std::endl;
+	  error = true;
+	}
+	Identifier ttId2 = lvl1_id->tower_id (posNeg, sampling, region, eta, phi) ;
+	if (ttId2 != ttId) {
+	  std::cout 
+	      << "error in tower_id(posNeg, sampling, region, eta, phi)"
+	      << " ttId  " << lvl1_id->show_to_string(ttId) 
+	      << " ttId2 " << lvl1_id->show_to_string(ttId2) 
+	      << "input fields = " << posNeg << " " << sampling << " " << region << " " << eta << " " << phi
+	      << std::endl;
+	  error = true;
+	}
+
+	//
+	// ... now test 'return trip' to hash
+	//
+	// ... in tower context
+	//
+	IdentifierHash hashId;
+	
+	not_ok = lvl1_id->get_hash ( ttId, hashId, &towerContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_hash"
+	      << " ttId " << lvl1_id->show_to_string(ttId) 
+	      << std::endl;
+	  error = true;
+	}
+
+	assert (lvl1_id->tower_hash(ttId) == hashId);
+	      
+	not_ok =  lvl1_id->get_id ( hashId, ttId2, &towerContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_id"
+	      << " id " << lvl1_id->show_to_string(ttId2) 
+	      << " hash " <<  hashId 
+	      << std::endl;
+		error = true;
+	}
+	assert (ttId == ttId2);
+	
+	ttId2 =  lvl1_id->tower_id(hashId);
+	assert (ttId == ttId2);
+	
+    }
+    std::cout << "number of towers= " << nChan  << ", tower_hash_max= " << lvl1_id->tower_hash_max() << std::endl;
+    std::cout << ", region_hash_max= " << lvl1_id->region_hash_max() << std::endl;
+
+    //
+    // ... then in layer context
+    //
+    
+    itId = lvl1_id->layer_begin();
+    itIdEnd = lvl1_id->layer_end();
+  
+    nChan=0;
+  
+    for(; itId!=itIdEnd;++itId){
+	Identifier layId = *itId;
+	//	std::cout << " ================= NCHAN = " << nChan << std::endl;
+	nChan++;
+	
+	//
+	// ... in layer context
+	//
+	int posNeg   = lvl1_id->pos_neg_z(layId);
+	int sampling = lvl1_id->sampling(layId);
+	int region   = lvl1_id->region(layId);
+	int eta = lvl1_id->eta(layId);
+	int phi = lvl1_id->phi(layId);
+	int lay = lvl1_id->layer(layId);
+	
+	Identifier ExtTtId ;
+	try {
+	  ExtTtId = lvl1_id->layer_id (posNeg, sampling, region, eta, phi, lay) ;
+	}
+	catch(CaloID_Exception & except){
+	  error = true;
+	  std::cout 
+	      <<  " CaloId exception 1 " 
+	      << (std::string)except
+	      << std::endl;
+	}
+
+	Identifier ttId = lvl1_id->tower_id(layId) ;
+	Identifier ExtTtId2 ;
+	try {
+	  ExtTtId2 = lvl1_id->layer_id (ttId, lay) ;
+	}
+	catch(CaloID_Exception & except){
+	  error = true;
+	  std::cout 
+	      <<  " CaloId exception 2 " 
+	      << (std::string)except
+	      << std::endl;
+	}
+	assert ( ExtTtId2 == ExtTtId);
+		
+	//
+	// ... then return trip to hash in layer context
+	//
+	IdentifierHash hashId;
+	int not_ok = lvl1_id->get_hash ( ExtTtId, hashId, &layerContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_hash"
+	      << " ExtTtId " << lvl1_id->show_to_string(ExtTtId) 
+	      << " hashId " << hashId
+	      << std::endl;
+	  error = true;
+	}
+	
+	not_ok =  lvl1_id->get_id ( hashId, ExtTtId2, &layerContext);
+	if(not_ok) {
+	  std::cout 
+	      << "error in get_id"
+	      << " id " << lvl1_id->show_to_string(ExtTtId2) 
+	      << " hash " <<  hashId 
+	      << std::endl;
+	  error = true;
+	}
+	
+	assert (ExtTtId == ExtTtId2);
+		
+    } // end loop on lay
+
+    std::cout << "number of layers= " << nChan  << ", layer_hash_max= " << lvl1_id->layer_hash_max() << std::endl;
+
+    if(!error) {
+	std::cout << "calo decoding tests ok" << std::endl;
+    }
+
+    std::cout << "finally check the exception throwing (lar and tile)... " << std::endl;
+
+    try {
+      /*Identifier wrongRegionId =*/ lvl1_id->region_id (0,-99,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      /*Identifier wrongTowerId =*/ lvl1_id->tower_id (0,-99,0, 0,0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+
+    try {
+      /*Identifier wrongLayerId =*/ lvl1_id->layer_id (4,99,0, 0,0, 0); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodRegionId = lvl1_id->region_id (-1,0,0); 
+      /*Identifier wrongTowerId =*/ lvl1_id->tower_id (goodRegionId,0,-99); 
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    try {
+      Identifier goodTowerId = lvl1_id->tower_id (-1,0,0, 0,0); 
+      std::cout << lvl1_id->show_to_string(goodTowerId) << std::endl;
+      Identifier wrongLayerId = lvl1_id->layer_id (goodTowerId, -99); 
+      std::cout <<  lvl1_id->show_to_string(wrongLayerId) << std::endl;
+    }
+    catch(CaloID_Exception & except){
+      std::cout << (std::string) except << std::endl ;
+    }
+    std::cout << "... which is ok " << std::endl;
+}
+
+int main (int argc, char* argv[])  
+{  
+    if (argc < 2) return (1);  
+  
+    IdDictParser parser;  
+    IdDictMgr& idd = parser.parse (argv[1]);  
+    std::cout << "got dict mgr " << std::endl;
+
+    check_lvl1_id_decoding(idd);
+    check_lvl1_helper(idd);
+     
+    return 0;  
+}  
+  
+ 
+ 
+ 
+ 
+ 
diff --git a/Calorimeter/CaloIdentifier/test/tile_id_test_common.cxx b/Calorimeter/CaloIdentifier/test/tile_id_test_common.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..233f32c6c00b104afdea34e204f73e53e1bdf570
--- /dev/null
+++ b/Calorimeter/CaloIdentifier/test/tile_id_test_common.cxx
@@ -0,0 +1,519 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file  CaloIdentifier/test/tile_id_test_common.cxx
+ * @author scott snyder
+ * @date Aug 2012
+ * @brief Code common between TileID_test and Tile_SuperCell_ID test.
+ *        This file is meant to be included in another file,
+ *        not compiled separately.
+ */
+
+
+#include "hash_test.h"
+
+
+// This because test differencing ignored lines containing `0x...'
+std::string munghex (const std::string& h)
+{
+  if (h.size() > 2 && h[0] == '0' && h[1] == 'x')
+    return "hex(" + h.substr (2, std::string::npos) + ")";
+  return h;
+}
+void basic_print_id (const Tile_Base_ID& idhelper, const Identifier& id)
+{
+  std::cout << idhelper.show_to_string (id) << " "
+            << munghex(id.getString()) << "\n";
+}
+
+
+class Tile_ID_Test
+  : public Tile_Base_ID
+{
+public:
+  using Tile_Base_ID::tile_field_value;
+};
+
+
+class CellCounter
+{
+public:
+  CellCounter();
+  void count(int sect, int samp);
+  void report();
+
+
+private:
+  enum {
+    N_REG = 4,
+    N_SAMP = 4
+  };
+  unsigned m_counts[N_REG][N_SAMP];
+};
+
+
+CellCounter::CellCounter()
+{
+  for (unsigned i=0; i < N_REG; i++)
+    for (unsigned j=0; j < N_SAMP; j++)
+      m_counts[i][j] = 0;
+}
+
+
+void CellCounter::count (int sect, int samp)
+{
+  sect -= 1;
+  if (sect >= N_REG) sect = N_REG-1;
+  if (samp < 0 || samp >= N_SAMP) std::abort();
+  ++m_counts[sect][samp];
+}
+
+
+void CellCounter::report()
+{
+  unsigned tot[N_REG] = {0};
+  printf ("Sampling  Barrel     Ext Barrel     Gap      Other\n");
+  for (unsigned s=0; s < N_SAMP; s++) {
+    printf ("%2d          %4d        %4d       %4d       %4d\n",
+            s,
+            m_counts[0][s], m_counts[1][s], m_counts[2][s],
+            m_counts[3][s]);
+    for (unsigned b=0; b < N_REG; b++)
+      tot[b] += m_counts[b][s];
+  }
+  printf ("Total       %4d        %4d       %4d       %4d   Grand total: %4d\n",
+          tot[0], tot[1], tot[2], tot[3],
+          tot[0]+tot[1]+tot[2]+tot[3]);
+}
+
+
+void region_check (const Tile_Base_ID& idhelper, Identifier id)
+{
+  assert (idhelper.is_tile (id));
+  int sect = idhelper.section(id);
+  if (sect == Tile_Base_ID::BARREL) {
+    assert ( idhelper.is_tile_barrel(id));
+    assert (!idhelper.is_tile_extbarrel(id));
+    assert (!idhelper.is_tile_gap(id));
+    assert (!idhelper.is_tile_aux(id));
+  }
+  else if (sect == Tile_Base_ID::EXTBAR) {
+    assert (!idhelper.is_tile_barrel(id));
+    assert ( idhelper.is_tile_extbarrel(id));
+    assert (!idhelper.is_tile_gap(id));
+    assert (!idhelper.is_tile_aux(id));
+  }
+  else if (sect == Tile_Base_ID::GAPDET) {
+    assert (!idhelper.is_tile_barrel(id));
+    assert (!idhelper.is_tile_extbarrel(id));
+    assert ( idhelper.is_tile_gap(id));
+    assert (!idhelper.is_tile_aux(id));
+  }
+  else {
+    assert (!idhelper.is_tile_barrel(id));
+    assert (!idhelper.is_tile_extbarrel(id));
+    assert (!idhelper.is_tile_gap(id));
+    assert ( idhelper.is_tile_aux(id));
+  }
+
+  int side = idhelper.side(id);
+  if (side == Tile_Base_ID::NEGATIVE) {
+    assert ( idhelper.is_negative(id));
+    assert (!idhelper.is_positive(id));
+    assert (!idhelper.is_twosides(id));
+  }
+  else if (side == Tile_Base_ID::POSITIVE) {
+    assert (!idhelper.is_negative(id));
+    assert ( idhelper.is_positive(id));
+    assert (!idhelper.is_twosides(id));
+  }
+  else if (side == Tile_Base_ID::TWOSIDES) {
+    assert (!idhelper.is_negative(id));
+    assert (!idhelper.is_positive(id));
+    assert ( idhelper.is_twosides(id));
+  }
+
+  int adc = idhelper.adc(id);
+  if (adc == Tile_Base_ID::LOWGAIN) {
+    assert ( idhelper.is_low_gain(id));
+    assert (!idhelper.is_high_gain(id));
+  }
+  else if (adc == Tile_Base_ID::HIGHGAIN) {
+    assert (!idhelper.is_low_gain(id));
+    assert ( idhelper.is_high_gain(id));
+  }
+
+  int samp = idhelper.sample (id);
+  if (samp == Tile_Base_ID::SAMP_E)
+    assert (idhelper.is_tile_gapscin(id));
+  else
+    assert (!idhelper.is_tile_gapscin(id));
+
+  assert (idhelper.system(id) == 5); // tile
+
+  if (sect == Tile_Base_ID::AUXDET)
+    assert (idhelper.sample(id) == Tile_Base_ID::SAMP_X);
+  else
+    assert (idhelper.sample(id) == idhelper.sampling(id));
+}
+
+
+void test_connected (const Tile_Base_ID& idhelper, bool supercell)
+{
+  std::cout << "test_connected\n";
+
+  HASH_TEST(cell);
+  HASH_TEST(module);
+  HASH_TEST(region);
+  HASH_TEST(tower);
+  HASH_TEST(pmt);
+  HASH_TEST(adc);
+
+  CellCounter counts;
+  TEST_LOOP(Identifier id, idhelper.cell_range()) {
+    IdContext context = idhelper.cell_context();
+    IdentifierHash hashId;
+    assert (idhelper.get_hash (id, hashId, &context) == 0);
+    assert (id == idhelper.cell_id (hashId));
+    assert (hashId == idhelper.cell_hash (id));
+    assert (idhelper.is_supercell(id) == supercell);
+
+    int sect = idhelper.section(id);
+    int side = idhelper.side(id);
+    int mod  = idhelper.module(id);
+    int tow  = idhelper.tower(id);
+    int samp = idhelper.sample(id);
+
+    Identifier id2 = idhelper.cell_id (sect, side, mod, tow, samp);
+    assert (id == id2);
+
+    Identifier reg_id = idhelper.region_id (id);
+    Identifier id3;
+    assert (idhelper.cell_id (reg_id, mod, tow, samp, id3));
+    assert (id == id3);
+    assert (!idhelper.cell_id (reg_id, 100, tow, samp, id3));
+    assert (!idhelper.cell_id (reg_id, mod, 100, samp, id3));
+    assert (!idhelper.cell_id (reg_id, mod, tow,    4, id3));
+
+    counts.count (sect, samp);
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id)
+	   << idhelper.module(id)
+	   << idhelper.tower(id)
+           << idhelper.sample(id);
+    assert (idhelper.cell_id (exp_id) == id);
+  }
+  counts.report();
+
+
+  TEST_LOOP(Identifier id, idhelper.module_range()) {
+    int sect = idhelper.section(id);
+    int side = idhelper.side(id);
+    int mod  = idhelper.module(id);
+    assert (idhelper.module_id (sect, side, mod) == id);
+    assert (idhelper.is_supercell(id) == supercell);
+
+    Identifier reg_id = idhelper.region_id (id);
+    Identifier id2;
+    assert (idhelper.module_id (reg_id, mod, id2));
+    assert (id == id2);
+    assert (!idhelper.module_id (reg_id, 100, id2));
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id)
+	   << idhelper.module(id);
+    assert (idhelper.module_id (exp_id) == id);
+  }
+
+  TEST_LOOP(Identifier id, idhelper.tower_range()) {
+    int sect = idhelper.section(id);
+    int side = idhelper.side(id);
+    int mod  = idhelper.module(id);
+    int tow  = idhelper.tower(id);
+    assert (idhelper.tower_id (sect, side, mod, tow) == id);
+    assert (idhelper.is_supercell(id) == supercell);
+
+    Identifier reg_id = idhelper.region_id (id);
+    Identifier id2;
+    assert (idhelper.tower_id (reg_id, mod, tow, id2));
+    assert (id == id2);
+    assert (!idhelper.tower_id (reg_id, 100, tow, id2));
+    assert (!idhelper.tower_id (reg_id, mod, 100, id2));
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id)
+	   << idhelper.module(id)
+	   << idhelper.tower(id);
+    assert (idhelper.tower_id (exp_id) == id);
+  }
+
+  TEST_LOOP(Identifier id, idhelper.pmt_range()) {
+    Identifier cell_id = idhelper.cell_id (id);
+    int pmt = idhelper.pmt (id);
+
+    Identifier id2;
+    assert (idhelper.pmt_id (cell_id, pmt, id2));
+    assert (id == id2);
+    assert (!idhelper.pmt_id (cell_id, 2, id2));
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id)
+	   << idhelper.module(id)
+	   << idhelper.tower(id)
+           << idhelper.sample(id)
+           << idhelper.pmt(id);
+    assert (idhelper.pmt_id (exp_id) == id);
+  }
+
+  TEST_LOOP(Identifier id, idhelper.adc_range()) {
+    int sect = idhelper.section(id);
+    int side = idhelper.side(id);
+    int mod  = idhelper.module(id);
+    int tow  = idhelper.tower(id);
+    int samp = idhelper.sample(id);
+    int pmt  = idhelper.pmt(id);
+    int adc  = idhelper.adc(id);
+    assert (idhelper.is_supercell(id) == supercell);
+
+    Identifier module_id = idhelper.module_id (sect, side, mod);
+    assert (module_id == idhelper.module_id (id));
+    assert (idhelper.is_supercell(module_id) == supercell);
+
+    Identifier tower_id = idhelper.tower_id (sect, side, mod, tow);
+    assert (tower_id == idhelper.tower_id (id));
+    assert (idhelper.is_supercell(tower_id) == supercell);
+
+    Identifier cell_id = idhelper.cell_id (sect, side, mod, tow, samp);
+    assert (cell_id == idhelper.cell_id (id));
+    assert (idhelper.is_supercell(cell_id) == supercell);
+
+    Identifier pmt_id = idhelper.pmt_id (sect, side, mod, tow, samp, pmt);
+    assert (pmt_id == idhelper.pmt_id (id));
+    assert (pmt_id == idhelper.pmt_id (cell_id, pmt));
+    assert (idhelper.is_supercell(pmt_id) == supercell);
+
+    assert (id == idhelper.adc_id (sect, side, mod, tow, samp, pmt, adc));
+    assert (id == idhelper.adc_id (pmt_id, adc));
+    assert (id == idhelper.adc_id (cell_id, pmt, adc));
+
+    Identifier reg_id = idhelper.region_id (sect, side);
+    assert (reg_id == idhelper.region_id (id));
+    assert (idhelper.is_supercell(reg_id) == supercell);
+
+    Identifier id2;
+    assert (idhelper.adc_id (pmt_id, adc, id2));
+    assert (id == id2);
+    assert (!idhelper.adc_id (pmt_id, 2, id2));
+    id2 = Identifier();
+    assert (idhelper.adc_id (cell_id, pmt, adc, id2));
+    assert (id == id2);
+    assert (!idhelper.adc_id (cell_id, pmt, 2, id2));
+    assert (!idhelper.adc_id (cell_id, 2, adc, id2));
+
+    region_check (idhelper, id);
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id)
+	   << idhelper.module(id)
+	   << idhelper.tower(id)
+           << idhelper.sample(id)
+           << idhelper.pmt(id)
+           << idhelper.adc(id);
+    assert (idhelper.adc_id (exp_id) == id);
+  }
+
+  TEST_LOOP(Identifier id, idhelper.region_range()) {
+    IdContext context = idhelper.region_context();
+    IdentifierHash hashId;
+    assert (idhelper.get_hash (id, hashId, &context) == 0);
+    assert (id == idhelper.region_id (hashId));
+    assert ((int)hashId == idhelper.region (id));
+    assert (idhelper.is_supercell(id) == supercell);
+
+    int sect = idhelper.section(id);
+    int side = idhelper.side(id);
+    assert (id == idhelper.region_id (sect, side));
+    assert ((int)hashId == idhelper.region (sect, side));
+
+    printf ("Region %-18s eta: %2d %3d %2d %3d phi: %3d\n",
+            idhelper.show_to_string(id).c_str(),
+            idhelper.eta_min(id),
+            idhelper.eta_max(id),
+            idhelper.region_eta_min(id),
+            idhelper.region_eta_max(id),
+            idhelper.phi_max(id));
+
+    ExpandedIdentifier exp_id;
+    Tile_ID_Test* idhelper_test = (Tile_ID_Test*)&idhelper;
+    exp_id << idhelper_test->tile_field_value()
+           << (idhelper.section(id) + (supercell ? Tile_Base_ID::SUPERCELL_MASK : 0))
+	   << idhelper.side(id);
+    assert (idhelper.region_id (exp_id) == id);
+  }
+}
+
+
+void test_exceptions (const Tile_Base_ID& idhelper)
+{
+  std::cout << "test_exceptions\n";
+
+  bool caught = false;
+  try {
+    idhelper.region_id (255, 1); 
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 1: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.module_id (1, 1, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 2: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.tower_id (1, 1, 0, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 3: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.cell_id (1, 1, 0, 0, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 4: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  Identifier cell_id = idhelper.cell_id (1, 1, 0, 0, 0);
+  caught = false;
+  try {
+    idhelper.pmt_id (cell_id, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 5: " << (std::string)except << "\n";
+  }
+  assert (caught);
+  
+  caught = false;
+  try {
+    idhelper.pmt_id (1, 1, 0, 0, 0, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 6: " << (std::string)except << "\n";
+  }
+  assert (caught);
+  
+  caught = false;
+  try {
+    idhelper.adc_id (cell_id, 0, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 7: " << (std::string)except << "\n";
+  }
+  assert (caught);
+  
+  Identifier pmt_id = idhelper.pmt_id (1, 1, 0, 0, 0, 0);
+  caught = false;
+  try {
+    idhelper.adc_id (pmt_id, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 8: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.adc_id (1, 1, 0, 0, 0, 0, 99);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 9: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.cell_id (999999);
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 10: " << (std::string)except << "\n";
+  }
+  assert (caught);
+
+  caught = false;
+  try {
+    idhelper.cell_hash (Identifier());
+  }
+  catch(TileID_Exception & except){
+    caught = true;
+    std::cout << "Exception 11: " << (std::string)except << "\n";
+  }
+  assert (caught);
+}
+
+
+void test_to_string (const Tile_Base_ID& idhelper, bool supercell)
+{
+  std::cout << "test_to_string\n";
+  Identifier id;
+  if (supercell)
+    id = idhelper.adc_id (1, 1, 0, 4, 2, 0, 0);
+  else
+    id = idhelper.adc_id (1, 1, 0, 0, 1, 1, 1);
+
+  IdContext contexts[8] = {
+    idhelper.adc_context(), // 0
+    idhelper.region_context(), // 1
+    idhelper.region_context(), // 2
+    idhelper.module_context(), // 3
+    idhelper.tower_context(),  // 4
+    idhelper.cell_context(),   // 5
+    idhelper.pmt_context(),    // 6
+    idhelper.adc_context(),    // 7
+  };
+  for (int i=2; i < 8; i++) {
+    IdentifierHash hashId;
+    assert (idhelper.get_hash (id, hashId, &contexts[i]) == 0);
+
+    std::cout << i << " " << idhelper.to_string (id, i) << "\n";
+    std::cout << i << " " << idhelper.to_string (hashId, i) << "\n";
+  }
+}