text: # -*- coding: utf-8 -*-
  # elements.py
  
  # Copyright (c) 2005-2018, Christoph Gohlke
  # All rights reserved.
  #
  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions are met:
  #
  # * Redistributions of source code must retain the above copyright
  #   notice, this list of conditions and the following disclaimer.
  # * Redistributions in binary form must reproduce the above copyright
  #   notice, this list of conditions and the following disclaimer in the
  #   documentation and/or other materials provided with the distribution.
  # * Neither the name of the copyright holders nor the names of any
  #   contributors may be used to endorse or promote products derived
  #   from this software without specific prior written permission.
  #
  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  # ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  # POSSIBILITY OF SUCH DAMAGE.
  
  """Properties of the chemical elements.
  
  Each chemical element is represented as an object instance. Physicochemical
  and descriptive properties of the elements are stored as instance attributes.
  
  :Author: `Christoph Gohlke <https://www.lfd.uci.edu/~gohlke/>`_
  
  :Version: 2018.02.06
  
  Requirements
  ------------
  * `CPython 2.7 or 3.6 <https://www.python.org>`_
  
  Revisions
  ---------
  2018.02.06
      Style and docstring fixes.
  2016.02.25
      Fixed some ionization energies.
  
  References
  ----------
  (1) http://physics.nist.gov/PhysRefData/Compositions/
  (2) http://physics.nist.gov/PhysRefData/IonEnergy/tblNew.html
  (3) http://en.wikipedia.org/wiki/%(element.name)s
  (4) http://www.miranda.org/~jkominek/elements/elements.db
  
  Examples
  --------
  >>> from elements import ELEMENTS
  >>> len(ELEMENTS)
  109
  >>> str(ELEMENTS[109])
  'Meitnerium'
  >>> ele = ELEMENTS['C']
  >>> ele.number, ele.symbol, ele.name, ele.eleconfig
  (6, 'C', 'Carbon', '[He] 2s2 2p2')
  >>> from pprint import pprint
  >>> pprint(ele.eleconfig_dict)
  {(1, 's'): 2, (2, 'p'): 2, (2, 's'): 2}
  >>> sum(ele.mass for ele in ELEMENTS)
  14659.1115599
  >>> for ele in ELEMENTS:
  ...     ele.validate()
  ...     ele = eval(repr(ele))
  
  """
  
  from __future__ import division, print_function
  
  __version__ = '2018.02.06'
  __docformat__ = 'restructuredtext en'
  __all__ = 'ELEMENTS',
  
  
  class lazyattr(object):
      """Lazy object attribute whose value is computed on first access."""
      __slots__ = ['func']
  
      def __init__(self, func):
          self.func = func
  
      def __get__(self, instance, owner):
          result = self.func(instance)
          if result is NotImplemented:
              return getattr(super(owner, instance), self.func.__name__)
          setattr(instance, self.func.__name__, result)
          return result
  
  
  class Element(object):
      """Chemical element.
  
      Attributes
      ----------
      number : int
          Atomic number
      symbol : str of length 1 or 2
          Chemical symbol
      name : str
          Name in english
      group : int
          Group in periodic table
      period : int
          Period in periodic table
      block : int
          Block in periodic table
      series : int
          Index to chemical series
      protons : int
          Number of protons
      neutrons : int
          Number of neutrons in the most abundant naturally occurring stable
          isotope
      nominalmass : int
          Mass number of the most abundant naturally occurring stable isotope
      electrons : int
          Number of electrons
      mass : float
          Relative atomic mass. Ratio of the average mass of atoms
          of the element to 1/12 of the mass of an atom of 12C
      exactmass : float
          Relative atomic mass calculated from the isotopic composition
      eleneg : float
          Electronegativity (Pauling scale)
      covrad : float
          Covalent radius in Angstrom
      atmrad :
          Atomic radius in Angstrom
      vdwrad : float
          Van der Waals radius in Angstrom
      tboil : float
          Boiling temperature in K
      tmelt : float
          Melting temperature in K
      density : float
          Density at 295K in g/cm3 respectively g/L
      oxistates : str
          Oxidation states
      eleaffin : float
          Electron affinity in eV
      eleconfig : str
          Ground state electron configuration
      eleconfig_dict : dict
          Ground state electron configuration (shell, subshell): electrons
      eleshells : int
          Number of electrons per shell
      ionenergy : tuple
          Ionization energies in eV
      isotopes : dict
          Isotopic composition.
          keys: isotope mass number
          values: Isotope(relative atomic mass, abundance)
  
      """
      def __init__(self, number, symbol, name, **kwargs):
          self.number = number
          self.symbol = symbol
          self.name = name
          self.electrons = number
          self.protons = number
          self.__dict__.update(kwargs)
  
      def __str__(self):
          return self.name
  
      def __repr__(self):
          ionenergy = []
          for i, j in enumerate(self.ionenergy):
              if i and (i % 5 == 0):
                  ionenergy.append('\n' + ' ' * 15)
              ionenergy.append('%s, ' % j)
          ionenergy = ''.join(ionenergy)
  
          isotopes = []
          for massnum in sorted(self.isotopes):
              iso = self.isotopes[massnum]
              isotopes.append('%i: Isotope(%s, %s, %i)' % (
                  massnum, iso.mass, iso.abundance, massnum))
          isotopes = ',\n              '.join(isotopes)
  
          description = word_wrap(self.description, linelen=66, indent=0,
                                  joinstr=""" "\n        \"""")
          description = """    e['%s'].description = (\n        "%s\")""" % (
              self.symbol, description)
          # return description
  
          result = [
              "Element(\n    %i, '%s', '%s'" % (
                  self.number, self.symbol, self.name),
              "group=%s, period=%s, block='%s', series=%i" % (
                  self.group, self.period, self.block, self.series),
              "mass=%s, eleneg=%s, eleaffin=%s" % (
                  self.mass, self.eleneg, self.eleaffin),
              "covrad=%s, atmrad=%s, vdwrad=%s" % (
                  self.covrad, self.atmrad, self.vdwrad),
              "tboil=%s, tmelt=%s, density=%s" % (
                  self.tboil, self.tmelt, self.density),
              "eleconfig='%s'" % self.eleconfig,
              "oxistates='%s'" % self.oxistates,
              "ionenergy=(%s)" % ionenergy,
              "isotopes={%s})" % isotopes
          ]
          return ',\n    '.join(result)
  
      @lazyattr
      def nominalmass(self):
          """Return mass number of most abundant natural stable isotope."""
          nominalmass = 0
          maxabundance = 0
          for massnum, iso in self.isotopes.items():
              if iso.abundance > maxabundance:
                  maxabundance = iso.abundance
                  nominalmass = massnum
          return nominalmass
  
      @lazyattr
      def neutrons(self):
          """Return number neutrons in most abundant natural stable isotope."""
          return self.nominalmass - self.protons
  
      @lazyattr
      def exactmass(self):
          """Return relative atomic mass calculated from isotopic composition."""
          return sum(iso.mass * iso.abundance for iso in self.isotopes.values())
  
      @lazyattr
      def eleconfig_dict(self):
          """Return electron configuration as dict."""
          adict = {}
          if self.eleconfig.startswith('['):
              base = self.eleconfig.split(' ', 1)[0][1:-1]
              adict.update(ELEMENTS[base].eleconfig_dict)
          for e in self.eleconfig.split()[bool(adict):]:
              adict[(int(e[0]), e[1])] = int(e[2:]) if len(e) > 2 else 1
          return adict
  
      @lazyattr
      def eleshells(self):
          """Return number of electrons in shell as tuple."""
          eleshells = [0, 0, 0, 0, 0, 0, 0]
          for key, val in self.eleconfig_dict.items():
              eleshells[key[0] - 1] += val
          return tuple(ele for ele in eleshells if ele)
  
      @lazyattr
      def description(self):
          """Return text description of element."""
          return _descriptions(self.symbol)
  
      def validate(self):
          """Check consistency of data. Raise Error on failure."""
          assert self.period in PERIODS
          assert self.group in GROUPS
          assert self.block in BLOCKS
          assert self.series in SERIES
  
          if self.number != self.protons:
              raise ValueError(
                  '%s - atomic number must equal proton number' % self.symbol)
          if self.protons != sum(self.eleshells):
              raise ValueError(
                  '%s - number of protons must equal electrons' % self.symbol)
  
          if len(self.ionenergy) > 1:
              ionev_ = self.ionenergy[0]
              for ionev in self.ionenergy[1:]:
                  if ionev <= ionev_:
                      raise ValueError(
                          '%s - ionenergy not increasing' % self.symbol)
                  ionev_ = ionev
  
          mass = 0.0
          frac = 0.0
          for iso in self.isotopes.values():
              mass += iso.abundance * iso.mass
              frac += iso.abundance
          if abs(mass - self.mass) > 0.03:
              raise ValueError(
                  '%s - average of isotope masses (%.4f) != mass (%.4f)' % (
                      self.symbol, mass, self.mass))
          if abs(frac - 1.0) > 1e-9:
              raise ValueError(
                  '%s - sum of isotope abundances != 1.0' % self.symbol)
  
  
  class Isotope(object):
      """Isotope massnumber, relative atomic mass, and abundance."""
      __slots__ = ['massnumber', 'mass', 'abundance']
  
      def __init__(self, mass=0.0, abundance=1.0, massnumber=0):
          self.mass = mass
          self.abundance = abundance
          self.massnumber = massnumber
  
      def __str__(self):
          return '%i, %.4f, %.6f%%' % (self.massnumber, self.mass,
                                       self.abundance * 100)
  
      def __repr__(self):
          return 'Isotope(%s, %s, %s)' % (
              repr(self.mass), repr(self.abundance), repr(self.massnumber))
  
  
  class ElementsDict(object):
      """Ordered dict of Elements with lookup by number, symbol, and name."""
      def __init__(self, *elements):
          self._list = []
          self._dict = {}
          for element in elements:
              if element.number > len(self._list) + 1:
                  raise ValueError('Elements must be added in order')
              if element.number <= len(self._list):
                  self._list[element.number - 1] = element
              else:
                  self._list.append(element)
              self._dict[element.number] = element
              self._dict[element.symbol] = element
              self._dict[element.name] = element
  
      def __str__(self):
          return '[%s]' % ', '.join(ele.symbol for ele in self._list)
  
      def __contains__(self, item):
          return item in self._dict
  
      def __iter__(self):
          return iter(self._list)
  
      def __len__(self):
          return len(self._list)
  
      def __getitem__(self, key):
          try:
              return self._dict[key]
          except KeyError:
              try:
                  start, stop, step = key.indices(len(self._list))
                  return self._list[slice(start - 1, stop - 1, step)]
              except Exception:
                  raise KeyError
  
  
  ELEMENTS = ElementsDict(
      Element(
          1, 'H', 'Hydrogen',
          group=1, period=1, block='s', series=1,
          mass=1.00794, eleneg=2.2, eleaffin=0.75420375,
          covrad=0.32, atmrad=0.79, vdwrad=1.2,
          tboil=20.28, tmelt=13.81, density=0.084,
          eleconfig='1s',
          oxistates='1*, -1',
          ionenergy=(13.5984, ),
          isotopes={1: Isotope(1.0078250321, 0.999885, 1),
                    2: Isotope(2.014101778, 0.000115, 2)}),
      Element(
          2, 'He', 'Helium',
          group=18, period=1, block='s', series=2,
          mass=4.002602, eleneg=0.0, eleaffin=0.0,
          covrad=0.93, atmrad=0.49, vdwrad=1.4,
          tboil=4.216, tmelt=0.95, density=0.1785,
          eleconfig='1s2',
          oxistates='*',
          ionenergy=(24.5874, 54.416, ),
          isotopes={3: Isotope(3.0160293097, 1.37e-06, 3),
                    4: Isotope(4.0026032497, 0.99999863, 4)}),
      Element(
          3, 'Li', 'Lithium',
          group=1, period=2, block='s', series=3,
          mass=6.941, eleneg=0.98, eleaffin=0.618049,
          covrad=1.23, atmrad=2.05, vdwrad=1.82,
          tboil=1615.0, tmelt=453.7, density=0.53,
          eleconfig='[He] 2s',
          oxistates='1*',
          ionenergy=(5.3917, 75.638, 122.451, ),
          isotopes={6: Isotope(6.0151223, 0.0759, 6),
                    7: Isotope(7.016004, 0.9241, 7)}),
      Element(
          4, 'Be', 'Beryllium',
          group=2, period=2, block='s', series=4,
          mass=9.012182, eleneg=1.57, eleaffin=0.0,
          covrad=0.9, atmrad=1.4, vdwrad=0.0,
          tboil=3243.0, tmelt=1560.0, density=1.85,
          eleconfig='[He] 2s2',
          oxistates='2*',
          ionenergy=(9.3227, 18.211, 153.893, 217.713, ),
          isotopes={9: Isotope(9.0121821, 1.0, 9)}),
      Element(
          5, 'B', 'Boron',
          group=13, period=2, block='p', series=5,
          mass=10.811, eleneg=2.04, eleaffin=0.279723,
          covrad=0.82, atmrad=1.17, vdwrad=0.0,
          tboil=4275.0, tmelt=2365.0, density=2.46,
          eleconfig='[He] 2s2 2p',
          oxistates='3*',
          ionenergy=(8.298, 25.154, 37.93, 59.368, 340.217, ),
          isotopes={10: Isotope(10.012937, 0.199, 10),
                    11: Isotope(11.0093055, 0.801, 11)}),
      Element(
          6, 'C', 'Carbon',
          group=14, period=2, block='p', series=1,
          mass=12.0107, eleneg=2.55, eleaffin=1.262118,
          covrad=0.77, atmrad=0.91, vdwrad=1.7,
          tboil=5100.0, tmelt=3825.0, density=3.51,
          eleconfig='[He] 2s2 2p2',
          oxistates='4*, 2, -4*',
          ionenergy=(11.2603, 24.383, 47.877, 64.492, 392.077,
                     489.981, ),
          isotopes={12: Isotope(12.0, 0.9893, 12),
                    13: Isotope(13.0033548378, 0.0107, 13)}),
      Element(
          7, 'N', 'Nitrogen',
          group=15, period=2, block='p', series=1,
          mass=14.0067, eleneg=3.04, eleaffin=-0.07,
          covrad=0.75, atmrad=0.75, vdwrad=1.55,
          tboil=77.344, tmelt=63.15, density=1.17,
          eleconfig='[He] 2s2 2p3',
          oxistates='5, 4, 3, 2, -3*',
          ionenergy=(14.5341, 39.601, 47.488, 77.472, 97.888,
                     522.057, 667.029, ),
          isotopes={14: Isotope(14.0030740052, 0.99632, 14),
                    15: Isotope(15.0001088984, 0.00368, 15)}),
      Element(
          8, 'O', 'Oxygen',
          group=16, period=2, block='p', series=1,
          mass=15.9994, eleneg=3.44, eleaffin=1.461112,
          covrad=0.73, atmrad=0.65, vdwrad=1.52,
          tboil=90.188, tmelt=54.8, density=1.33,
          eleconfig='[He] 2s2 2p4',
          oxistates='-2*, -1',
          ionenergy=(13.6181, 35.116, 54.934, 77.412,
                     113.896, 138.116, 739.315, 871.387, ),
          isotopes={16: Isotope(15.9949146221, 0.99757, 16),
                    17: Isotope(16.9991315, 0.00038, 17),
                    18: Isotope(17.9991604, 0.00205, 18)}),
      Element(
          9, 'F', 'Fluorine',
          group=17, period=2, block='p', series=6,
          mass=18.9984032, eleneg=3.98, eleaffin=3.4011887,
          covrad=0.72, atmrad=0.57, vdwrad=1.47,
          tboil=85.0, tmelt=53.55, density=1.58,
          eleconfig='[He] 2s2 2p5',
          oxistates='-1*',
          ionenergy=(17.4228, 34.97, 62.707, 87.138, 114.24,
                     157.161, 185.182, 953.886, 1103.089, ),
          isotopes={19: Isotope(18.9984032, 1.0, 19)}),
      Element(
          10, 'Ne', 'Neon',
          group=18, period=2, block='p', series=2,
          mass=20.1797, eleneg=0.0, eleaffin=0.0,
          covrad=0.71, atmrad=0.51, vdwrad=1.54,
          tboil=27.1, tmelt=24.55, density=0.8999,
          eleconfig='[He] 2s2 2p6',
          oxistates='*',
          ionenergy=(21.5645, 40.962, 63.45, 97.11, 126.21,
                     157.93, 207.27, 239.09, 1195.797, 1362.164, ),
          isotopes={20: Isotope(19.9924401759, 0.9048, 20),
                    21: Isotope(20.99384674, 0.0027, 21),
                    22: Isotope(21.99138551, 0.0925, 22)}),
      Element(
          11, 'Na', 'Sodium',
          group=1, period=3, block='s', series=3,
          mass=22.98977, eleneg=0.93, eleaffin=0.547926,
          covrad=1.54, atmrad=2.23, vdwrad=2.27,
          tboil=1156.0, tmelt=371.0, density=0.97,
          eleconfig='[Ne] 3s',
          oxistates='1*',
          ionenergy=(5.1391, 47.286, 71.64, 98.91, 138.39,
                     172.15, 208.47, 264.18, 299.87, 1465.091,
                     1648.659, ),
          isotopes={23: Isotope(22.98976967, 1.0, 23)}),
      Element(
          12, 'Mg', 'Magnesium',
          group=2, period=3, block='s', series=4,
          mass=24.305, eleneg=1.31, eleaffin=0.0,
          covrad=1.36, atmrad=1.72, vdwrad=1.73,
          tboil=1380.0, tmelt=922.0, density=1.74,
          eleconfig='[Ne] 3s2',
          oxistates='2*',
          ionenergy=(7.6462, 15.035, 80.143, 109.24, 141.26,
                     186.5, 224.94, 265.9, 327.95, 367.53,
                     1761.802, 1962.613, ),
          isotopes={24: Isotope(23.9850419, 0.7899, 24),
                    25: Isotope(24.98583702, 0.1, 25),
                    26: Isotope(25.98259304, 0.1101, 26)}),
      Element(
          13, 'Al', 'Aluminium',
          group=13, period=3, block='p', series=7,
          mass=26.981538, eleneg=1.61, eleaffin=0.43283,
          covrad=1.18, atmrad=1.82, vdwrad=0.0,
          tboil=2740.0, tmelt=933.5, density=2.7,
          eleconfig='[Ne] 3s2 3p',
          oxistates='3*',
          ionenergy=(5.9858, 18.828, 28.447, 119.99, 153.71,
                     190.47, 241.43, 284.59, 330.21, 398.57,
                     442.07, 2085.983, 2304.08, ),
          isotopes={27: Isotope(26.98153844, 1.0, 27)}),
      Element(
          14, 'Si', 'Silicon',
          group=14, period=3, block='p', series=5,
          mass=28.0855, eleneg=1.9, eleaffin=1.389521,
          covrad=1.11, atmrad=1.46, vdwrad=2.1,
          tboil=2630.0, tmelt=1683.0, density=2.33,
          eleconfig='[Ne] 3s2 3p2',
          oxistates='4*, -4',
          ionenergy=(8.1517, 16.345, 33.492, 45.141, 166.77,
                     205.05, 246.52, 303.17, 351.1, 401.43,
                     476.06, 523.5, 2437.676, 2673.108, ),
          isotopes={28: Isotope(27.9769265327, 0.922297, 28),
                    29: Isotope(28.97649472, 0.046832, 29),
                    30: Isotope(29.97377022, 0.030871, 30)}),
      Element(
          15, 'P', 'Phosphorus',
          group=15, period=3, block='p', series=1,
          mass=30.973761, eleneg=2.19, eleaffin=0.7465,
          covrad=1.06, atmrad=1.23, vdwrad=1.8,
          tboil=553.0, tmelt=317.3, density=1.82,
          eleconfig='[Ne] 3s2 3p3',
          oxistates='5*, 3, -3',
          ionenergy=(10.4867, 19.725, 30.18, 51.37, 65.023,
                     220.43, 263.22, 309.41, 371.73, 424.5,
                     479.57, 560.41, 611.85, 2816.943, 3069.762, ),
          isotopes={31: Isotope(30.97376151, 1.0, 31)}),
      Element(
          16, 'S', 'Sulfur',
          group=16, period=3, block='p', series=1,
          mass=32.065, eleneg=2.58, eleaffin=2.0771029,
          covrad=1.02, atmrad=1.09, vdwrad=1.8,
          tboil=717.82, tmelt=392.2, density=2.06,
          eleconfig='[Ne] 3s2 3p4',
          oxistates='6*, 4, 2, -2',
          ionenergy=(10.36, 23.33, 34.83, 47.3, 72.68,
                     88.049, 280.93, 328.23, 379.1, 447.09,
                     504.78, 564.65, 651.63, 707.14, 3223.836,
                     3494.099, ),
          isotopes={32: Isotope(31.97207069, 0.9493, 32),
                    33: Isotope(32.9714585, 0.0076, 33),
                    34: Isotope(33.96786683, 0.0429, 34),
                    36: Isotope(35.96708088, 0.0002, 36)}),
      Element(
          17, 'Cl', 'Chlorine',
          group=17, period=3, block='p', series=6,
          mass=35.453, eleneg=3.16, eleaffin=3.612724,
          covrad=0.99, atmrad=0.97, vdwrad=1.75,
          tboil=239.18, tmelt=172.17, density=2.95,
          eleconfig='[Ne] 3s2 3p5',
          oxistates='7, 5, 3, 1, -1*',
          ionenergy=(12.9676, 23.81, 39.61, 53.46, 67.8,
                     98.03, 114.193, 348.28, 400.05, 455.62,
                     529.97, 591.97, 656.69, 749.75, 809.39,
                     3658.425, 3946.193, ),
          isotopes={35: Isotope(34.96885271, 0.7578, 35),
                    37: Isotope(36.9659026, 0.2422, 37)}),
      Element(
          18, 'Ar', 'Argon',
          group=18, period=3, block='p', series=2,
          mass=39.948, eleneg=0.0, eleaffin=0.0,
          covrad=0.98, atmrad=0.88, vdwrad=1.88,
          tboil=87.45, tmelt=83.95, density=1.66,
          eleconfig='[Ne] 3s2 3p6',
          oxistates='*',
          ionenergy=(15.7596, 27.629, 40.74, 59.81, 75.02,
                     91.007, 124.319, 143.456, 422.44, 478.68,
                     538.95, 618.24, 686.09, 755.73, 854.75,
                     918.0, 4120.778, 4426.114, ),
          isotopes={36: Isotope(35.96754628, 0.003365, 36),
                    38: Isotope(37.9627322, 0.000632, 38),
                    40: Isotope(39.962383123, 0.996003, 40)}),
      Element(
          19, 'K', 'Potassium',
          group=1, period=4, block='s', series=3,
          mass=39.0983, eleneg=0.82, eleaffin=0.501459,
          covrad=2.03, atmrad=2.77, vdwrad=2.75,
          tboil=1033.0, tmelt=336.8, density=0.86,
          eleconfig='[Ar] 4s',
          oxistates='1*',
          ionenergy=(4.3407, 31.625, 45.72, 60.91, 82.66,
                     100.0, 117.56, 154.86, 175.814, 503.44,
                     564.13, 629.09, 714.02, 787.13, 861.77,
                     968.0, 1034.0, 4610.955, 4933.931, ),
          isotopes={39: Isotope(38.9637069, 0.932581, 39),
                    40: Isotope(39.96399867, 0.000117, 40),
                    41: Isotope(40.96182597, 0.067302, 41)}),
      Element(
          20, 'Ca', 'Calcium',
          group=2, period=4, block='s', series=4,
          mass=40.078, eleneg=1.0, eleaffin=0.02455,
          covrad=1.74, atmrad=2.23, vdwrad=0.0,
          tboil=1757.0, tmelt=1112.0, density=1.54,
          eleconfig='[Ar] 4s2',
          oxistates='2*',
          ionenergy=(6.1132, 11.71, 50.908, 67.1, 84.41,
                     108.78, 127.7, 147.24, 188.54, 211.27,
                     591.25, 656.39, 726.03, 816.61, 895.12,
                     974.0, 1087.0, 1157.0, 5129.045, 5469.738, ),
          isotopes={40: Isotope(39.9625912, 0.96941, 40),
                    42: Isotope(41.9586183, 0.00647, 42),
                    43: Isotope(42.9587668, 0.00135, 43),
                    44: Isotope(43.9554811, 0.02086, 44),
                    46: Isotope(45.9536928, 4e-05, 46),
                    48: Isotope(47.952534, 0.00187, 48)}),
      Element(
          21, 'Sc', 'Scandium',
          group=3, period=4, block='d', series=8,
          mass=44.95591, eleneg=1.36, eleaffin=0.188,
          covrad=1.44, atmrad=2.09, vdwrad=0.0,
          tboil=3109.0, tmelt=1814.0, density=2.99,
          eleconfig='[Ar] 3d 4s2',
          oxistates='3*',
          ionenergy=(6.5615, 12.8, 24.76, 73.47, 91.66,
                     110.1, 138.0, 158.7, 180.02, 225.32,
                     249.8, 685.89, 755.47, 829.79, 926.0, ),
          isotopes={45: Isotope(44.9559102, 1.0, 45)}),
      Element(
          22, 'Ti', 'Titanium',
          group=4, period=4, block='d', series=8,
          mass=47.867, eleneg=1.54, eleaffin=0.084,
          covrad=1.32, atmrad=2.0, vdwrad=0.0,
          tboil=3560.0, tmelt=1935.0, density=4.51,
          eleconfig='[Ar] 3d2 4s2',
          oxistates='4*, 3',
          ionenergy=(6.8281, 13.58, 27.491, 43.266, 99.22,
                     119.36, 140.8, 168.5, 193.5, 215.91,
                     265.23, 291.497, 787.33, 861.33, ),
          isotopes={46: Isotope(45.9526295, 0.0825, 46),
                    47: Isotope(46.9517638, 0.0744, 47),
                    48: Isotope(47.9479471, 0.7372, 48),
                    49: Isotope(48.9478708, 0.0541, 49),
                    50: Isotope(49.9447921, 0.0518, 50)}),
      Element(
          23, 'V', 'Vanadium',
          group=5, period=4, block='d', series=8,
          mass=50.9415, eleneg=1.63, eleaffin=0.525,
          covrad=1.22, atmrad=1.92, vdwrad=0.0,
          tboil=3650.0, tmelt=2163.0, density=6.09,
          eleconfig='[Ar] 3d3 4s2',
          oxistates='5*, 4, 3, 2, 0',
          ionenergy=(6.7462, 14.65, 29.31, 46.707, 65.23,
                     128.12, 150.17, 173.7, 205.8, 230.5,
                     255.04, 308.25, 336.267, 895.58, 974.02, ),
          isotopes={50: Isotope(49.9471628, 0.0025, 50),
                    51: Isotope(50.9439637, 0.9975, 51)}),
      Element(
          24, 'Cr', 'Chromium',
          group=6, period=4, block='d', series=8,
          mass=51.9961, eleneg=1.66, eleaffin=0.67584,
          covrad=1.18, atmrad=1.85, vdwrad=0.0,
          tboil=2945.0, tmelt=2130.0, density=7.14,
          eleconfig='[Ar] 3d5 4s',
          oxistates='6, 3*, 2, 0',
          ionenergy=(6.7665, 16.5, 30.96, 49.1, 69.3,
                     90.56, 161.1, 184.7, 209.3, 244.4,
                     270.8, 298.0, 355.0, 384.3, 1010.64, ),
          isotopes={50: Isotope(49.9460496, 0.04345, 50),
                    52: Isotope(51.9405119, 0.83789, 52),
                    53: Isotope(52.9406538, 0.09501, 53),
                    54: Isotope(53.9388849, 0.02365, 54)}),
      Element(
          25, 'Mn', 'Manganese',
          group=7, period=4, block='d', series=8,
          mass=54.938049, eleneg=1.55, eleaffin=0.0,
          covrad=1.17, atmrad=1.79, vdwrad=0.0,
          tboil=2235.0, tmelt=1518.0, density=7.44,
          eleconfig='[Ar] 3d5 4s2',
          oxistates='7, 6, 4, 3, 2*, 0, -1',
          ionenergy=(7.434, 15.64, 33.667, 51.2, 72.4,
                     95.0, 119.27, 196.46, 221.8, 248.3,
                     286.0, 314.4, 343.6, 404.0, 435.3,
                     1136.2, ),
          isotopes={55: Isotope(54.9380496, 1.0, 55)}),
      Element(
          26, 'Fe', 'Iron',
          group=8, period=4, block='d', series=8,
          mass=55.845, eleneg=1.83, eleaffin=0.151,
          covrad=1.17, atmrad=1.72, vdwrad=0.0,
          tboil=3023.0, tmelt=1808.0, density=7.874,
          eleconfig='[Ar] 3d6 4s2',
          oxistates='6, 3*, 2, 0, -2',
          ionenergy=(7.9024, 16.18, 30.651, 54.8, 75.0,
                     99.0, 125.0, 151.06, 235.04, 262.1,
                     290.4, 330.8, 361.0, 392.2, 457.0,
                     485.5, 1266.1, ),
          isotopes={54: Isotope(53.9396148, 0.05845, 54),
                    56: Isotope(55.9349421, 0.91754, 56),
                    57: Isotope(56.9353987, 0.02119, 57),
                    58: Isotope(57.9332805, 0.00282, 58)}),
      Element(
          27, 'Co', 'Cobalt',
          group=9, period=4, block='d', series=8,
          mass=58.9332, eleneg=1.88, eleaffin=0.6633,
          covrad=1.16, atmrad=1.67, vdwrad=0.0,
          tboil=3143.0, tmelt=1768.0, density=8.89,
          eleconfig='[Ar] 3d7 4s2',
          oxistates='3, 2*, 0, -1',
          ionenergy=(7.881, 17.06, 33.5, 51.3, 79.5,
                     102.0, 129.0, 157.0, 186.13, 276.0,
                     305.0, 336.0, 376.0, 411.0, 444.0,
                     512.0, 546.8, 1403.0, ),
          isotopes={59: Isotope(58.9332002, 1.0, 59)}),
      Element(
          28, 'Ni', 'Nickel',
          group=10, period=4, block='d', series=8,
          mass=58.6934, eleneg=1.91, eleaffin=1.15716,
          covrad=1.15, atmrad=1.62, vdwrad=1.63,
          tboil=3005.0, tmelt=1726.0, density=8.91,
          eleconfig='[Ar] 3d8 4s2',
          oxistates='3, 2*, 0',
          ionenergy=(7.6398, 18.168, 35.17, 54.9, 75.5,
                     108.0, 133.0, 162.0, 193.0, 224.5,
                     321.2, 352.0, 384.0, 430.0, 464.0,
                     499.0, 571.0, 607.2, 1547.0, ),
          isotopes={58: Isotope(57.9353479, 0.680769, 58),
                    60: Isotope(59.9307906, 0.262231, 60),
                    61: Isotope(60.9310604, 0.011399, 61),
                    62: Isotope(61.9283488, 0.036345, 62),
                    64: Isotope(63.9279696, 0.009256, 64)}),
      Element(
          29, 'Cu', 'Copper',
          group=11, period=4, block='d', series=8,
          mass=63.546, eleneg=1.9, eleaffin=1.23578,
          covrad=1.17, atmrad=1.57, vdwrad=1.4,
          tboil=2840.0, tmelt=1356.6, density=8.92,
          eleconfig='[Ar] 3d10 4s',
          oxistates='2*, 1',
          ionenergy=(7.7264, 20.292, 26.83, 55.2, 79.9,
                     103.0, 139.0, 166.0, 199.0, 232.0,
                     266.0, 368.8, 401.0, 435.0, 484.0,
                     520.0, 557.0, 633.0, 671.0, 1698.0, ),
          isotopes={63: Isotope(62.9296011, 0.6917, 63),
                    65: Isotope(64.9277937, 0.3083, 65)}),
      Element(
          30, 'Zn', 'Zinc',
          group=12, period=4, block='d', series=8,
          mass=65.409, eleneg=1.65, eleaffin=0.0,
          covrad=1.25, atmrad=1.53, vdwrad=1.39,
          tboil=1180.0, tmelt=692.73, density=7.14,
          eleconfig='[Ar] 3d10 4s2',
          oxistates='2*',
          ionenergy=(9.3942, 17.964, 39.722, 59.4, 82.6,
                     108.0, 134.0, 174.0, 203.0, 238.0,
                     274.0, 310.8, 419.7, 454.0, 490.0,
                     542.0, 579.0, 619.0, 698.8, 738.0,
                     1856.0, ),
          isotopes={64: Isotope(63.9291466, 0.4863, 64),
                    66: Isotope(65.9260368, 0.279, 66),
                    67: Isotope(66.9271309, 0.041, 67),
                    68: Isotope(67.9248476, 0.1875, 68),
                    70: Isotope(69.925325, 0.0062, 70)}),
      Element(
          31, 'Ga', 'Gallium',
          group=13, period=4, block='p', series=7,
          mass=69.723, eleneg=1.81, eleaffin=0.41,
          covrad=1.26, atmrad=1.81, vdwrad=1.87,
          tboil=2478.0, tmelt=302.92, density=5.91,
          eleconfig='[Ar] 3d10 4s2 4p',
          oxistates='3*',
          ionenergy=(5.9993, 20.51, 30.71, 64.0, ),
          isotopes={69: Isotope(68.925581, 0.60108, 69),
                    71: Isotope(70.924705, 0.39892, 71)}),
      Element(
          32, 'Ge', 'Germanium',
          group=14, period=4, block='p', series=5,
          mass=72.64, eleneg=2.01, eleaffin=1.232712,
          covrad=1.22, atmrad=1.52, vdwrad=0.0,
          tboil=3107.0, tmelt=1211.5, density=5.32,
          eleconfig='[Ar] 3d10 4s2 4p2',
          oxistates='4*',
          ionenergy=(7.8994, 15.934, 34.22, 45.71, 93.5, ),
          isotopes={70: Isotope(69.9242504, 0.2084, 70),
                    72: Isotope(71.9220762, 0.2754, 72),
                    73: Isotope(72.9234594, 0.0773, 73),
                    74: Isotope(73.9211782, 0.3628, 74),
                    76: Isotope(75.9214027, 0.0761, 76)}),
      Element(
          33, 'As', 'Arsenic',
          group=15, period=4, block='p', series=5,
          mass=74.9216, eleneg=2.18, eleaffin=0.814,
          covrad=1.2, atmrad=1.33, vdwrad=1.85,
          tboil=876.0, tmelt=1090.0, density=5.72,
          eleconfig='[Ar] 3d10 4s2 4p3',
          oxistates='5, 3*, -3',
          ionenergy=(9.7886, 18.633, 28.351, 50.13, 62.63,
                     127.6, ),
          isotopes={75: Isotope(74.9215964, 1.0, 75)}),
      Element(
          34, 'Se', 'Selenium',
          group=16, period=4, block='p', series=1,
          mass=78.96, eleneg=2.55, eleaffin=2.02067,
          covrad=1.16, atmrad=1.22, vdwrad=1.9,
          tboil=958.0, tmelt=494.0, density=4.82,
          eleconfig='[Ar] 3d10 4s2 4p4',
          oxistates='6, 4*, -2',
          ionenergy=(9.7524, 21.9, 30.82, 42.944, 68.3,
                     81.7, 155.4, ),
          isotopes={74: Isotope(73.9224766, 0.0089, 74),
                    76: Isotope(75.9192141, 0.0937, 76),
                    77: Isotope(76.9199146, 0.0763, 77),
                    78: Isotope(77.9173095, 0.2377, 78),
                    80: Isotope(79.9165218, 0.4961, 80),
                    82: Isotope(81.9167, 0.0873, 82)}),
      Element(
          35, 'Br', 'Bromine',
          group=17, period=4, block='p', series=6,
          mass=79.904, eleneg=2.96, eleaffin=3.363588,
          covrad=1.14, atmrad=1.12, vdwrad=1.85,
          tboil=331.85, tmelt=265.95, density=3.14,
          eleconfig='[Ar] 3d10 4s2 4p5',
          oxistates='7, 5, 3, 1, -1*',
          ionenergy=(11.8138, 21.8, 36.0, 47.3, 59.7,
                     88.6, 103.0, 192.8, ),
          isotopes={79: Isotope(78.9183376, 0.5069, 79),
                    81: Isotope(80.916291, 0.4931, 81)}),
      Element(
          36, 'Kr', 'Krypton',
          group=18, period=4, block='p', series=2,
          mass=83.798, eleneg=0.0, eleaffin=0.0,
          covrad=1.12, atmrad=1.03, vdwrad=2.02,
          tboil=120.85, tmelt=116.0, density=4.48,
          eleconfig='[Ar] 3d10 4s2 4p6',
          oxistates='2*',
          ionenergy=(13.9996, 24.359, 36.95, 52.5, 64.7,
                     78.5, 110.0, 126.0, 230.39, ),
          isotopes={78: Isotope(77.920386, 0.0035, 78),
                    80: Isotope(79.916378, 0.0228, 80),
                    82: Isotope(81.9134846, 0.1158, 82),
                    83: Isotope(82.914136, 0.1149, 83),
                    84: Isotope(83.911507, 0.57, 84),
                    86: Isotope(85.9106103, 0.173, 86)}),
      Element(
          37, 'Rb', 'Rubidium',
          group=1, period=5, block='s', series=3,
          mass=85.4678, eleneg=0.82, eleaffin=0.485916,
          covrad=2.16, atmrad=2.98, vdwrad=0.0,
          tboil=961.0, tmelt=312.63, density=1.53,
          eleconfig='[Kr] 5s',
          oxistates='1*',
          ionenergy=(4.1771, 27.28, 40.0, 52.6, 71.0,
                     84.4, 99.2, 136.0, 150.0, 277.1, ),
          isotopes={85: Isotope(84.9117893, 0.7217, 85),
                    87: Isotope(86.9091835, 0.2783, 87)}),
      Element(
          38, 'Sr', 'Strontium',
          group=2, period=5, block='s', series=4,
          mass=87.62, eleneg=0.95, eleaffin=0.05206,
          covrad=1.91, atmrad=2.45, vdwrad=0.0,
          tboil=1655.0, tmelt=1042.0, density=2.63,
          eleconfig='[Kr] 5s2',
          oxistates='2*',
          ionenergy=(5.6949, 11.03, 43.6, 57.0, 71.6,
                     90.8, 106.0, 122.3, 162.0, 177.0,
                     324.1, ),
          isotopes={84: Isotope(83.913425, 0.0056, 84),
                    86: Isotope(85.9092624, 0.0986, 86),
                    87: Isotope(86.9088793, 0.07, 87),
                    88: Isotope(87.9056143, 0.8258, 88)}),
      Element(
          39, 'Y', 'Yttrium',
          group=3, period=5, block='d', series=8,
          mass=88.90585, eleneg=1.22, eleaffin=0.307,
          covrad=1.62, atmrad=2.27, vdwrad=0.0,
          tboil=3611.0, tmelt=1795.0, density=4.47,
          eleconfig='[Kr] 4d 5s2',
          oxistates='3*',
          ionenergy=(6.2173, 12.24, 20.52, 61.8, 77.0,
                     93.0, 116.0, 129.0, 146.52, 191.0,
                     206.0, 374.0, ),
          isotopes={89: Isotope(88.9058479, 1.0, 89)}),
      Element(
          40, 'Zr', 'Zirconium',
          group=4, period=5, block='d', series=8,
          mass=91.224, eleneg=1.33, eleaffin=0.426,
          covrad=1.45, atmrad=2.16, vdwrad=0.0,
          tboil=4682.0, tmelt=2128.0, density=6.51,
          eleconfig='[Kr] 4d2 5s2',
          oxistates='4*',
          ionenergy=(6.6339, 13.13, 22.99, 34.34, 81.5, ),
          isotopes={90: Isotope(89.9047037, 0.5145, 90),
                    91: Isotope(90.905645, 0.1122, 91),
                    92: Isotope(91.9050401, 0.1715, 92),
                    94: Isotope(93.9063158, 0.1738, 94),
                    96: Isotope(95.908276, 0.028, 96)}),
      Element(
          41, 'Nb', 'Niobium',
          group=5, period=5, block='d', series=8,
          mass=92.90638, eleneg=1.6, eleaffin=0.893,
          covrad=1.34, atmrad=2.08, vdwrad=0.0,
          tboil=5015.0, tmelt=2742.0, density=8.58,
          eleconfig='[Kr] 4d4 5s',
          oxistates='5*, 3',
          ionenergy=(6.7589, 14.32, 25.04, 38.3, 50.55,
                     102.6, 125.0, ),
          isotopes={93: Isotope(92.9063775, 1.0, 93)}),
      Element(
          42, 'Mo', 'Molybdenum',
          group=6, period=5, block='d', series=8,
          mass=95.94, eleneg=2.16, eleaffin=0.7472,
          covrad=1.3, atmrad=2.01, vdwrad=0.0,
          tboil=4912.0, tmelt=2896.0, density=10.28,
          eleconfig='[Kr] 4d5 5s',
          oxistates='6*, 5, 4, 3, 2, 0',
          ionenergy=(7.0924, 16.15, 27.16, 46.4, 61.2,
                     68.0, 126.8, 153.0, ),
          isotopes={92: Isotope(91.90681, 0.1484, 92),
                    94: Isotope(93.9050876, 0.0925, 94),
                    95: Isotope(94.9058415, 0.1592, 95),
                    96: Isotope(95.9046789, 0.1668, 96),
                    97: Isotope(96.906021, 0.0955, 97),
                    98: Isotope(97.9054078, 0.2413, 98),
                    100: Isotope(99.907477, 0.0963, 100)}),
      Element(
          43, 'Tc', 'Technetium',
          group=7, period=5, block='d', series=8,
          mass=97.907216, eleneg=1.9, eleaffin=0.55,
          covrad=1.27, atmrad=1.95, vdwrad=0.0,
          tboil=4538.0, tmelt=2477.0, density=11.49,
          eleconfig='[Kr] 4d5 5s2',
          oxistates='7*',
          ionenergy=(7.28, 15.26, 29.54, ),
          isotopes={98: Isotope(97.907216, 1.0, 98)}),
      Element(
          44, 'Ru', 'Ruthenium',
          group=8, period=5, block='d', series=8,
          mass=101.07, eleneg=2.2, eleaffin=1.04638,
          covrad=1.25, atmrad=1.89, vdwrad=0.0,
          tboil=4425.0, tmelt=2610.0, density=12.45,
          eleconfig='[Kr] 4d7 5s',
          oxistates='8, 6, 4*, 3*, 2, 0, -2',
          ionenergy=(7.3605, 16.76, 28.47, ),
          isotopes={96: Isotope(95.907598, 0.0554, 96),
                    98: Isotope(97.905287, 0.0187, 98),
                    99: Isotope(98.9059393, 0.1276, 99),
                    100: Isotope(99.9042197, 0.126, 100),
                    101: Isotope(100.9055822, 0.1706, 101),
                    102: Isotope(101.9043495, 0.3155, 102),
                    104: Isotope(103.90543, 0.1862, 104)}),
      Element(
          45, 'Rh', 'Rhodium',
          group=9, period=5, block='d', series=8,
          mass=102.9055, eleneg=2.28, eleaffin=1.14289,
          covrad=1.25, atmrad=1.83, vdwrad=0.0,
          tboil=3970.0, tmelt=2236.0, density=12.41,
          eleconfig='[Kr] 4d8 5s',
          oxistates='5, 4, 3*, 1*, 2, 0',
          ionenergy=(7.4589, 18.08, 31.06, ),
          isotopes={103: Isotope(102.905504, 1.0, 103)}),
      Element(
          46, 'Pd', 'Palladium',
          group=10, period=5, block='d', series=8,
          mass=106.42, eleneg=2.2, eleaffin=0.56214,
          covrad=1.28, atmrad=1.79, vdwrad=1.63,
          tboil=3240.0, tmelt=1825.0, density=12.02,
          eleconfig='[Kr] 4d10',
          oxistates='4, 2*, 0',
          ionenergy=(8.3369, 19.43, 32.93, ),
          isotopes={102: Isotope(101.905608, 0.0102, 102),
                    104: Isotope(103.904035, 0.1114, 104),
                    105: Isotope(104.905084, 0.2233, 105),
                    106: Isotope(105.903483, 0.2733, 106),
                    108: Isotope(107.903894, 0.2646, 108),
                    110: Isotope(109.905152, 0.1172, 110)}),
      Element(
          47, 'Ag', 'Silver',
          group=11, period=5, block='d', series=8,
          mass=107.8682, eleneg=1.93, eleaffin=1.30447,
          covrad=1.34, atmrad=1.75, vdwrad=1.72,
          tboil=2436.0, tmelt=1235.1, density=10.49,
          eleconfig='[Kr] 4d10 5s',
          oxistates='2, 1*',
          ionenergy=(7.5762, 21.49, 34.83, ),
          isotopes={107: Isotope(106.905093, 0.51839, 107),
                    109: Isotope(108.904756, 0.48161, 109)}),
      Element(
          48, 'Cd', 'Cadmium',
          group=12, period=5, block='d', series=8,
          mass=112.411, eleneg=1.69, eleaffin=0.0,
          covrad=1.48, atmrad=1.71, vdwrad=1.58,
          tboil=1040.0, tmelt=594.26, density=8.64,
          eleconfig='[Kr] 4d10 5s2',
          oxistates='2*',
          ionenergy=(8.9938, 16.908, 37.48, ),
          isotopes={106: Isotope(105.906458, 0.0125, 106),
                    108: Isotope(107.904183, 0.0089, 108),
                    110: Isotope(109.903006, 0.1249, 110),
                    111: Isotope(110.904182, 0.128, 111),
                    112: Isotope(111.9027572, 0.2413, 112),
                    113: Isotope(112.9044009, 0.1222, 113),
                    114: Isotope(113.9033581, 0.2873, 114),
                    116: Isotope(115.904755, 0.0749, 116)}),
      Element(
          49, 'In', 'Indium',
          group=13, period=5, block='p', series=7,
          mass=114.818, eleneg=1.78, eleaffin=0.404,
          covrad=1.44, atmrad=2.0, vdwrad=1.93,
          tboil=2350.0, tmelt=429.78, density=7.31,
          eleconfig='[Kr] 4d10 5s2 5p',
          oxistates='3*',
          ionenergy=(5.7864, 18.869, 28.03, 55.45, ),
          isotopes={113: Isotope(112.904061, 0.0429, 113),
                    115: Isotope(114.903878, 0.9571, 115)}),
      Element(
          50, 'Sn', 'Tin',
          group=14, period=5, block='p', series=7,
          mass=118.71, eleneg=1.96, eleaffin=1.112066,
          covrad=1.41, atmrad=1.72, vdwrad=2.17,
          tboil=2876.0, tmelt=505.12, density=7.29,
          eleconfig='[Kr] 4d10 5s2 5p2',
          oxistates='4*, 2*',
          ionenergy=(7.3439, 14.632, 30.502, 40.734, 72.28, ),
          isotopes={112: Isotope(111.904821, 0.0097, 112),
                    114: Isotope(113.902782, 0.0066, 114),
                    115: Isotope(114.903346, 0.0034, 115),
                    116: Isotope(115.901744, 0.1454, 116),
                    117: Isotope(116.902954, 0.0768, 117),
                    118: Isotope(117.901606, 0.2422, 118),
                    119: Isotope(118.903309, 0.0859, 119),
                    120: Isotope(119.9021966, 0.3258, 120),
                    122: Isotope(121.9034401, 0.0463, 122),
                    124: Isotope(123.9052746, 0.0579, 124)}),
      Element(
          51, 'Sb', 'Antimony',
          group=15, period=5, block='p', series=5,
          mass=121.76, eleneg=2.05, eleaffin=1.047401,
          covrad=1.4, atmrad=1.53, vdwrad=0.0,
          tboil=1860.0, tmelt=903.91, density=6.69,
          eleconfig='[Kr] 4d10 5s2 5p3',
          oxistates='5, 3*, -3',
          ionenergy=(8.6084, 16.53, 25.3, 44.2, 56.0,
                     108.0, ),
          isotopes={121: Isotope(120.903818, 0.5721, 121),
                    123: Isotope(122.9042157, 0.4279, 123)}),
      Element(
          52, 'Te', 'Tellurium',
          group=16, period=5, block='p', series=5,
          mass=127.6, eleneg=2.1, eleaffin=1.970875,
          covrad=1.36, atmrad=1.42, vdwrad=2.06,
          tboil=1261.0, tmelt=722.72, density=6.25,
          eleconfig='[Kr] 4d10 5s2 5p4',
          oxistates='6, 4*, -2',
          ionenergy=(9.0096, 18.6, 27.96, 37.41, 58.75,
                     70.7, 137.0, ),
          isotopes={120: Isotope(119.90402, 0.0009, 120),
                    122: Isotope(121.9030471, 0.0255, 122),
                    123: Isotope(122.904273, 0.0089, 123),
                    124: Isotope(123.9028195, 0.0474, 124),
                    125: Isotope(124.9044247, 0.0707, 125),
                    126: Isotope(125.9033055, 0.1884, 126),
                    128: Isotope(127.9044614, 0.3174, 128),
                    130: Isotope(129.9062228, 0.3408, 130)}),
      Element(
          53, 'I', 'Iodine',
          group=17, period=5, block='p', series=6,
          mass=126.90447, eleneg=2.66, eleaffin=3.059038,
          covrad=1.33, atmrad=1.32, vdwrad=1.98,
          tboil=457.5, tmelt=386.7, density=4.94,
          eleconfig='[Kr] 4d10 5s2 5p5',
          oxistates='7, 5, 1, -1*',
          ionenergy=(10.4513, 19.131, 33.0, ),
          isotopes={127: Isotope(126.904468, 1.0, 127)}),
      Element(
          54, 'Xe', 'Xenon',
          group=18, period=5, block='p', series=2,
          mass=131.293, eleneg=0.0, eleaffin=0.0,
          covrad=1.31, atmrad=1.24, vdwrad=2.16,
          tboil=165.1, tmelt=161.39, density=4.49,
          eleconfig='[Kr] 4d10 5s2 5p6',
          oxistates='2, 4, 6',
          ionenergy=(12.1298, 21.21, 32.1, ),
          isotopes={124: Isotope(123.9058958, 0.0009, 124),
                    126: Isotope(125.904269, 0.0009, 126),
                    128: Isotope(127.9035304, 0.0192, 128),
                    129: Isotope(128.9047795, 0.2644, 129),
                    130: Isotope(129.9035079, 0.0408, 130),
                    131: Isotope(130.9050819, 0.2118, 131),
                    132: Isotope(131.9041545, 0.2689, 132),
                    134: Isotope(133.9053945, 0.1044, 134),
                    136: Isotope(135.90722, 0.0887, 136)}),
      Element(
          55, 'Cs', 'Caesium',
          group=1, period=6, block='s', series=3,
          mass=132.90545, eleneg=0.79, eleaffin=0.471626,
          covrad=2.35, atmrad=3.34, vdwrad=0.0,
          tboil=944.0, tmelt=301.54, density=1.9,
          eleconfig='[Xe] 6s',
          oxistates='1*',
          ionenergy=(3.8939, 25.1, ),
          isotopes={133: Isotope(132.905447, 1.0, 133)}),
      Element(
          56, 'Ba', 'Barium',
          group=2, period=6, block='s', series=4,
          mass=137.327, eleneg=0.89, eleaffin=0.14462,
          covrad=1.98, atmrad=2.78, vdwrad=0.0,
          tboil=2078.0, tmelt=1002.0, density=3.65,
          eleconfig='[Xe] 6s2',
          oxistates='2*',
          ionenergy=(5.2117, 100.004, ),
          isotopes={130: Isotope(129.90631, 0.00106, 130),
                    132: Isotope(131.905056, 0.00101, 132),
                    134: Isotope(133.904503, 0.02417, 134),
                    135: Isotope(134.905683, 0.06592, 135),
                    136: Isotope(135.90457, 0.07854, 136),
                    137: Isotope(136.905821, 0.11232, 137),
                    138: Isotope(137.905241, 0.71698, 138)}),
      Element(
          57, 'La', 'Lanthanum',
          group=3, period=6, block='f', series=9,
          mass=138.9055, eleneg=1.1, eleaffin=0.47,
          covrad=1.69, atmrad=2.74, vdwrad=0.0,
          tboil=3737.0, tmelt=1191.0, density=6.16,
          eleconfig='[Xe] 5d 6s2',
          oxistates='3*',
          ionenergy=(5.5769, 11.06, 19.175, ),
          isotopes={138: Isotope(137.907107, 0.0009, 138),
                    139: Isotope(138.906348, 0.9991, 139)}),
      Element(
          58, 'Ce', 'Cerium',
          group=3, period=6, block='f', series=9,
          mass=140.116, eleneg=1.12, eleaffin=0.5,
          covrad=1.65, atmrad=2.7, vdwrad=0.0,
          tboil=3715.0, tmelt=1071.0, density=6.77,
          eleconfig='[Xe] 4f 5d 6s2',
          oxistates='4, 3*',
          ionenergy=(5.5387, 10.85, 20.2, 36.72, ),
          isotopes={136: Isotope(135.90714, 0.00185, 136),
                    138: Isotope(137.905986, 0.00251, 138),
                    140: Isotope(139.905434, 0.8845, 140),
                    142: Isotope(141.90924, 0.11114, 142)}),
      Element(
          59, 'Pr', 'Praseodymium',
          group=3, period=6, block='f', series=9,
          mass=140.90765, eleneg=1.13, eleaffin=0.5,
          covrad=1.65, atmrad=2.67, vdwrad=0.0,
          tboil=3785.0, tmelt=1204.0, density=6.48,
          eleconfig='[Xe] 4f3 6s2',
          oxistates='4, 3*',
          ionenergy=(5.473, 10.55, 21.62, 38.95, 57.45, ),
          isotopes={141: Isotope(140.907648, 1.0, 141)}),
      Element(
          60, 'Nd', 'Neodymium',
          group=3, period=6, block='f', series=9,
          mass=144.24, eleneg=1.14, eleaffin=0.5,
          covrad=1.64, atmrad=2.64, vdwrad=0.0,
          tboil=3347.0, tmelt=1294.0, density=7.0,
          eleconfig='[Xe] 4f4 6s2',
          oxistates='3*',
          ionenergy=(5.525, 10.72, ),
          isotopes={142: Isotope(141.907719, 0.272, 142),
                    143: Isotope(142.90981, 0.122, 143),
                    144: Isotope(143.910083, 0.238, 144),
                    145: Isotope(144.912569, 0.083, 145),
                    146: Isotope(145.913112, 0.172, 146),
                    148: Isotope(147.916889, 0.057, 148),
                    150: Isotope(149.920887, 0.056, 150)}),
      Element(
          61, 'Pm', 'Promethium',
          group=3, period=6, block='f', series=9,
          mass=144.912744, eleneg=1.13, eleaffin=0.5,
          covrad=1.63, atmrad=2.62, vdwrad=0.0,
          tboil=3273.0, tmelt=1315.0, density=7.22,
          eleconfig='[Xe] 4f5 6s2',
          oxistates='3*',
          ionenergy=(5.582, 10.9, ),
          isotopes={145: Isotope(144.912744, 1.0, 145)}),
      Element(
          62, 'Sm', 'Samarium',
          group=3, period=6, block='f', series=9,
          mass=150.36, eleneg=1.17, eleaffin=0.5,
          covrad=1.62, atmrad=2.59, vdwrad=0.0,
          tboil=2067.0, tmelt=1347.0, density=7.54,
          eleconfig='[Xe] 4f6 6s2',
          oxistates='3*, 2',
          ionenergy=(5.6437, 11.07, ),
          isotopes={144: Isotope(143.911995, 0.0307, 144),
                    147: Isotope(146.914893, 0.1499, 147),
                    148: Isotope(147.914818, 0.1124, 148),
                    149: Isotope(148.91718, 0.1382, 149),
                    150: Isotope(149.917271, 0.0738, 150),
                    152: Isotope(151.919728, 0.2675, 152),
                    154: Isotope(153.922205, 0.2275, 154)}),
      Element(
          63, 'Eu', 'Europium',
          group=3, period=6, block='f', series=9,
          mass=151.964, eleneg=1.2, eleaffin=0.5,
          covrad=1.85, atmrad=2.56, vdwrad=0.0,
          tboil=1800.0, tmelt=1095.0, density=5.25,
          eleconfig='[Xe] 4f7 6s2',
          oxistates='3*, 2',
          ionenergy=(5.6704, 11.25, ),
          isotopes={151: Isotope(150.919846, 0.4781, 151),
                    153: Isotope(152.921226, 0.5219, 153)}),
      Element(
          64, 'Gd', 'Gadolinium',
          group=3, period=6, block='f', series=9,
          mass=157.25, eleneg=1.2, eleaffin=0.5,
          covrad=1.61, atmrad=2.54, vdwrad=0.0,
          tboil=3545.0, tmelt=1585.0, density=7.89,
          eleconfig='[Xe] 4f7 5d 6s2',
          oxistates='3*',
          ionenergy=(6.1498, 12.1, ),
          isotopes={152: Isotope(151.919788, 0.002, 152),
                    154: Isotope(153.920862, 0.0218, 154),
                    155: Isotope(154.922619, 0.148, 155),
                    156: Isotope(155.92212, 0.2047, 156),
                    157: Isotope(156.923957, 0.1565, 157),
                    158: Isotope(157.924101, 0.2484, 158),
                    160: Isotope(159.927051, 0.2186, 160)}),
      Element(
          65, 'Tb', 'Terbium',
          group=3, period=6, block='f', series=9,
          mass=158.92534, eleneg=1.2, eleaffin=0.5,
          covrad=1.59, atmrad=2.51, vdwrad=0.0,
          tboil=3500.0, tmelt=1629.0, density=8.25,
          eleconfig='[Xe] 4f9 6s2',
          oxistates='4, 3*',
          ionenergy=(5.8638, 11.52, ),
          isotopes={159: Isotope(158.925343, 1.0, 159)}),
      Element(
          66, 'Dy', 'Dysprosium',
          group=3, period=6, block='f', series=9,
          mass=162.5, eleneg=1.22, eleaffin=0.5,
          covrad=1.59, atmrad=2.49, vdwrad=0.0,
          tboil=2840.0, tmelt=1685.0, density=8.56,
          eleconfig='[Xe] 4f10 6s2',
          oxistates='3*',
          ionenergy=(5.9389, 11.67, ),
          isotopes={156: Isotope(155.924278, 0.0006, 156),
                    158: Isotope(157.924405, 0.001, 158),
                    160: Isotope(159.925194, 0.0234, 160),
                    161: Isotope(160.92693, 0.1891, 161),
                    162: Isotope(161.926795, 0.2551, 162),
                    163: Isotope(162.928728, 0.249, 163),
                    164: Isotope(163.929171, 0.2818, 164)}),
      Element(
          67, 'Ho', 'Holmium',
          group=3, period=6, block='f', series=9,
          mass=164.93032, eleneg=1.23, eleaffin=0.5,
          covrad=1.58, atmrad=2.47, vdwrad=0.0,
          tboil=2968.0, tmelt=1747.0, density=8.78,
          eleconfig='[Xe] 4f11 6s2',
          oxistates='3*',
          ionenergy=(6.0215, 11.8, ),
          isotopes={165: Isotope(164.930319, 1.0, 165)}),
      Element(
          68, 'Er', 'Erbium',
          group=3, period=6, block='f', series=9,
          mass=167.259, eleneg=1.24, eleaffin=0.5,
          covrad=1.57, atmrad=2.45, vdwrad=0.0,
          tboil=3140.0, tmelt=1802.0, density=9.05,
          eleconfig='[Xe] 4f12 6s2',
          oxistates='3*',
          ionenergy=(6.1077, 11.93, ),
          isotopes={162: Isotope(161.928775, 0.0014, 162),
                    164: Isotope(163.929197, 0.0161, 164),
                    166: Isotope(165.93029, 0.3361, 166),
                    167: Isotope(166.932045, 0.2293, 167),
                    168: Isotope(167.932368, 0.2678, 168),
                    170: Isotope(169.93546, 0.1493, 170)}),
      Element(
          69, 'Tm', 'Thulium',
          group=3, period=6, block='f', series=9,
          mass=168.93421, eleneg=1.25, eleaffin=0.5,
          covrad=1.56, atmrad=2.42, vdwrad=0.0,
          tboil=2223.0, tmelt=1818.0, density=9.32,
          eleconfig='[Xe] 4f13 6s2',
          oxistates='3*, 2',
          ionenergy=(6.1843, 12.05, 23.71, ),
          isotopes={169: Isotope(168.934211, 1.0, 169)}),
      Element(
          70, 'Yb', 'Ytterbium',
          group=3, period=6, block='f', series=9,
          mass=173.04, eleneg=1.1, eleaffin=0.5,
          covrad=1.74, atmrad=2.4, vdwrad=0.0,
          tboil=1469.0, tmelt=1092.0, density=9.32,
          eleconfig='[Xe] 4f14 6s2',
          oxistates='3*, 2',
          ionenergy=(6.2542, 12.17, 25.2, ),
          isotopes={168: Isotope(167.933894, 0.0013, 168),
                    170: Isotope(169.934759, 0.0304, 170),
                    171: Isotope(170.936322, 0.1428, 171),
                    172: Isotope(171.9363777, 0.2183, 172),
                    173: Isotope(172.9382068, 0.1613, 173),
                    174: Isotope(173.9388581, 0.3183, 174),
                    176: Isotope(175.942568, 0.1276, 176)}),
      Element(
          71, 'Lu', 'Lutetium',
          group=3, period=6, block='d', series=9,
          mass=174.967, eleneg=1.27, eleaffin=0.5,
          covrad=1.56, atmrad=2.25, vdwrad=0.0,
          tboil=3668.0, tmelt=1936.0, density=9.84,
          eleconfig='[Xe] 4f14 5d 6s2',
          oxistates='3*',
          ionenergy=(5.4259, 13.9, ),
          isotopes={175: Isotope(174.9407679, 0.9741, 175),
                    176: Isotope(175.9426824, 0.0259, 176)}),
      Element(
          72, 'Hf', 'Hafnium',
          group=4, period=6, block='d', series=8,
          mass=178.49, eleneg=1.3, eleaffin=0.0,
          covrad=1.44, atmrad=2.16, vdwrad=0.0,
          tboil=4875.0, tmelt=2504.0, density=13.31,
          eleconfig='[Xe] 4f14 5d2 6s2',
          oxistates='4*',
          ionenergy=(6.8251, 14.9, 23.3, 33.3, ),
          isotopes={174: Isotope(173.94004, 0.0016, 174),
                    176: Isotope(175.9414018, 0.0526, 176),
                    177: Isotope(176.94322, 0.186, 177),
                    178: Isotope(177.9436977, 0.2728, 178),
                    179: Isotope(178.9458151, 0.1362, 179),
                    180: Isotope(179.9465488, 0.3508, 180)}),
      Element(
          73, 'Ta', 'Tantalum',
          group=5, period=6, block='d', series=8,
          mass=180.9479, eleneg=1.5, eleaffin=0.322,
          covrad=1.34, atmrad=2.09, vdwrad=0.0,
          tboil=5730.0, tmelt=3293.0, density=16.68,
          eleconfig='[Xe] 4f14 5d3 6s2',
          oxistates='5*',
          ionenergy=(7.5496, ),
          isotopes={180: Isotope(179.947466, 0.00012, 180),
                    181: Isotope(180.947996, 0.99988, 181)}),
      Element(
          74, 'W', 'Tungsten',
          group=6, period=6, block='d', series=8,
          mass=183.84, eleneg=2.36, eleaffin=0.815,
          covrad=1.3, atmrad=2.02, vdwrad=0.0,
          tboil=5825.0, tmelt=3695.0, density=19.26,
          eleconfig='[Xe] 4f14 5d4 6s2',
          oxistates='6*, 5, 4, 3, 2, 0',
          ionenergy=(7.864, ),
          isotopes={180: Isotope(179.946706, 0.0012, 180),
                    182: Isotope(181.948206, 0.265, 182),
                    183: Isotope(182.9502245, 0.1431, 183),
                    184: Isotope(183.9509326, 0.3064, 184),
                    186: Isotope(185.954362, 0.2843, 186)}),
      Element(
          75, 'Re', 'Rhenium',
          group=7, period=6, block='d', series=8,
          mass=186.207, eleneg=1.9, eleaffin=0.15,
          covrad=1.28, atmrad=1.97, vdwrad=0.0,
          tboil=5870.0, tmelt=3455.0, density=21.03,
          eleconfig='[Xe] 4f14 5d5 6s2',
          oxistates='7, 6, 4, 2, -1',
          ionenergy=(7.8335, ),
          isotopes={185: Isotope(184.9529557, 0.374, 185),
                    187: Isotope(186.9557508, 0.626, 187)}),
      Element(
          76, 'Os', 'Osmium',
          group=8, period=6, block='d', series=8,
          mass=190.23, eleneg=2.2, eleaffin=1.0778,
          covrad=1.26, atmrad=1.92, vdwrad=0.0,
          tboil=5300.0, tmelt=3300.0, density=22.61,
          eleconfig='[Xe] 4f14 5d6 6s2',
          oxistates='8, 6, 4*, 3, 2, 0, -2',
          ionenergy=(8.4382, ),
          isotopes={184: Isotope(183.952491, 0.0002, 184),
                    186: Isotope(185.953838, 0.0159, 186),
                    187: Isotope(186.9557479, 0.0196, 187),
                    188: Isotope(187.955836, 0.1324, 188),
                    189: Isotope(188.9581449, 0.1615, 189),
                    190: Isotope(189.958445, 0.2626, 190),
                    192: Isotope(191.961479, 0.4078, 192)}),
      Element(
          77, 'Ir', 'Iridium',
          group=9, period=6, block='d', series=8,
          mass=192.217, eleneg=2.2, eleaffin=1.56436,
          covrad=1.27, atmrad=1.87, vdwrad=0.0,
          tboil=4700.0, tmelt=2720.0, density=22.65,
          eleconfig='[Xe] 4f14 5d7 6s2',
          oxistates='6, 4*, 3, 2, 1*, 0, -1',
          ionenergy=(8.967, ),
          isotopes={191: Isotope(190.960591, 0.373, 191),
                    193: Isotope(192.962924, 0.627, 193)}),
      Element(
          78, 'Pt', 'Platinum',
          group=10, period=6, block='d', series=8,
          mass=195.078, eleneg=2.28, eleaffin=2.1251,
          covrad=1.3, atmrad=1.83, vdwrad=1.75,
          tboil=4100.0, tmelt=2042.1, density=21.45,
          eleconfig='[Xe] 4f14 5d9 6s',
          oxistates='4*, 2*, 0',
          ionenergy=(8.9588, 18.563, ),
          isotopes={190: Isotope(189.95993, 0.00014, 190),
                    192: Isotope(191.961035, 0.00782, 192),
                    194: Isotope(193.962664, 0.32967, 194),
                    195: Isotope(194.964774, 0.33832, 195),
                    196: Isotope(195.964935, 0.25242, 196),
                    198: Isotope(197.967876, 0.07163, 198)}),
      Element(
          79, 'Au', 'Gold',
          group=11, period=6, block='d', series=8,
          mass=196.96655, eleneg=2.54, eleaffin=2.30861,
          covrad=1.34, atmrad=1.79, vdwrad=1.66,
          tboil=3130.0, tmelt=1337.58, density=19.32,
          eleconfig='[Xe] 4f14 5d10 6s',
          oxistates='3*, 1',
          ionenergy=(9.2255, 20.5, ),
          isotopes={197: Isotope(196.966552, 1.0, 197)}),
      Element(
          80, 'Hg', 'Mercury',
          group=12, period=6, block='d', series=8,
          mass=200.59, eleneg=2.0, eleaffin=0.0,
          covrad=1.49, atmrad=1.76, vdwrad=0.0,
          tboil=629.88, tmelt=234.31, density=13.55,
          eleconfig='[Xe] 4f14 5d10 6s2',
          oxistates='2*, 1',
          ionenergy=(10.4375, 18.756, 34.2, ),
          isotopes={196: Isotope(195.965815, 0.0015, 196),
                    198: Isotope(197.966752, 0.0997, 198),
                    199: Isotope(198.968262, 0.1687, 199),
                    200: Isotope(199.968309, 0.231, 200),
                    201: Isotope(200.970285, 0.1318, 201),
                    202: Isotope(201.970626, 0.2986, 202),
                    204: Isotope(203.973476, 0.0687, 204)}),
      Element(
          81, 'Tl', 'Thallium',
          group=13, period=6, block='p', series=7,
          mass=204.3833, eleneg=2.04, eleaffin=0.377,
          covrad=1.48, atmrad=2.08, vdwrad=1.96,
          tboil=1746.0, tmelt=577.0, density=11.85,
          eleconfig='[Xe] 4f14 5d10 6s2 6p',
          oxistates='3, 1*',
          ionenergy=(6.1082, 20.428, 29.83, ),
          isotopes={203: Isotope(202.972329, 0.29524, 203),
                    205: Isotope(204.974412, 0.70476, 205)}),
      Element(
          82, 'Pb', 'Lead',
          group=14, period=6, block='p', series=7,
          mass=207.2, eleneg=2.33, eleaffin=0.364,
          covrad=1.47, atmrad=1.81, vdwrad=2.02,
          tboil=2023.0, tmelt=600.65, density=11.34,
          eleconfig='[Xe] 4f14 5d10 6s2 6p2',
          oxistates='4, 2*',
          ionenergy=(7.4167, 15.032, 31.937, 42.32, 68.8, ),
          isotopes={204: Isotope(203.973029, 0.014, 204),
                    206: Isotope(205.974449, 0.241, 206),
                    207: Isotope(206.975881, 0.221, 207),
                    208: Isotope(207.976636, 0.524, 208)}),
      Element(
          83, 'Bi', 'Bismuth',
          group=15, period=6, block='p', series=7,
          mass=208.98038, eleneg=2.02, eleaffin=0.942363,
          covrad=1.46, atmrad=1.63, vdwrad=0.0,
          tboil=1837.0, tmelt=544.59, density=9.8,
          eleconfig='[Xe] 4f14 5d10 6s2 6p3',
          oxistates='5, 3*',
          ionenergy=(7.2855, 16.69, 25.56, 45.3, 56.0,
                     88.3, ),
          isotopes={209: Isotope(208.980383, 1.0, 209)}),
      Element(
          84, 'Po', 'Polonium',
          group=16, period=6, block='p', series=5,
          mass=208.982416, eleneg=2.0, eleaffin=1.9,
          covrad=1.46, atmrad=1.53, vdwrad=0.0,
          tboil=0.0, tmelt=527.0, density=9.2,
          eleconfig='[Xe] 4f14 5d10 6s2 6p4',
          oxistates='6, 4*, 2',
          ionenergy=(8.414, ),
          isotopes={209: Isotope(208.982416, 1.0, 209)}),
      Element(
          85, 'At', 'Astatine',
          group=17, period=6, block='p', series=6,
          mass=209.9871, eleneg=2.2, eleaffin=2.8,
          covrad=1.45, atmrad=1.43, vdwrad=0.0,
          tboil=610.0, tmelt=575.0, density=0.0,
          eleconfig='[Xe] 4f14 5d10 6s2 6p5',
          oxistates='7, 5, 3, 1, -1*',
          ionenergy=(),
          isotopes={210: Isotope(209.987131, 1.0, 210)}),
      Element(
          86, 'Rn', 'Radon',
          group=18, period=6, block='p', series=2,
          mass=222.0176, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=1.34, vdwrad=0.0,
          tboil=211.4, tmelt=202.0, density=9.23,
          eleconfig='[Xe] 4f14 5d10 6s2 6p6',
          oxistates='2*',
          ionenergy=(10.7485, ),
          isotopes={222: Isotope(222.0175705, 1.0, 222)}),
      Element(
          87, 'Fr', 'Francium',
          group=1, period=7, block='s', series=3,
          mass=223.0197307, eleneg=0.7, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=950.0, tmelt=300.0, density=0.0,
          eleconfig='[Rn] 7s',
          oxistates='1*',
          ionenergy=(4.0727, ),
          isotopes={223: Isotope(223.0197307, 1.0, 223)}),
      Element(
          88, 'Ra', 'Radium',
          group=2, period=7, block='s', series=4,
          mass=226.025403, eleneg=0.9, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=1413.0, tmelt=973.0, density=5.5,
          eleconfig='[Rn] 7s2',
          oxistates='2*',
          ionenergy=(5.2784, 10.147, ),
          isotopes={226: Isotope(226.0254026, 1.0, 226)}),
      Element(
          89, 'Ac', 'Actinium',
          group=3, period=7, block='f', series=10,
          mass=227.027747, eleneg=1.1, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=3470.0, tmelt=1324.0, density=10.07,
          eleconfig='[Rn] 6d 7s2',
          oxistates='3*',
          ionenergy=(5.17, 12.1, ),
          isotopes={227: Isotope(227.027747, 1.0, 227)}),
      Element(
          90, 'Th', 'Thorium',
          group=3, period=7, block='f', series=10,
          mass=232.0381, eleneg=1.3, eleaffin=0.0,
          covrad=1.65, atmrad=0.0, vdwrad=0.0,
          tboil=5060.0, tmelt=2028.0, density=11.72,
          eleconfig='[Rn] 6d2 7s2',
          oxistates='4*',
          ionenergy=(6.3067, 11.5, 20.0, 28.8, ),
          isotopes={232: Isotope(232.0380504, 1.0, 232)}),
      Element(
          91, 'Pa', 'Protactinium',
          group=3, period=7, block='f', series=10,
          mass=231.03588, eleneg=1.5, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=4300.0, tmelt=1845.0, density=15.37,
          eleconfig='[Rn] 5f2 6d 7s2',
          oxistates='5*, 4',
          ionenergy=(5.89, ),
          isotopes={231: Isotope(231.0358789, 1.0, 231)}),
      Element(
          92, 'U', 'Uranium',
          group=3, period=7, block='f', series=10,
          mass=238.02891, eleneg=1.38, eleaffin=0.0,
          covrad=1.42, atmrad=0.0, vdwrad=1.86,
          tboil=4407.0, tmelt=1408.0, density=18.97,
          eleconfig='[Rn] 5f3 6d 7s2',
          oxistates='6*, 5, 4, 3',
          ionenergy=(6.1941, ),
          isotopes={234: Isotope(234.0409456, 5.5e-05, 234),
                    235: Isotope(235.0439231, 0.0072, 235),
                    238: Isotope(238.0507826, 0.992745, 238)}),
      Element(
          93, 'Np', 'Neptunium',
          group=3, period=7, block='f', series=10,
          mass=237.048167, eleneg=1.36, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=4175.0, tmelt=912.0, density=20.48,
          eleconfig='[Rn] 5f4 6d 7s2',
          oxistates='6, 5*, 4, 3',
          ionenergy=(6.2657, ),
          isotopes={237: Isotope(237.0481673, 1.0, 237)}),
      Element(
          94, 'Pu', 'Plutonium',
          group=3, period=7, block='f', series=10,
          mass=244.064198, eleneg=1.28, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=3505.0, tmelt=913.0, density=19.74,
          eleconfig='[Rn] 5f6 7s2',
          oxistates='6, 5, 4*, 3',
          ionenergy=(6.026, ),
          isotopes={244: Isotope(244.064198, 1.0, 244)}),
      Element(
          95, 'Am', 'Americium',
          group=3, period=7, block='f', series=10,
          mass=243.061373, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=2880.0, tmelt=1449.0, density=13.67,
          eleconfig='[Rn] 5f7 7s2',
          oxistates='6, 5, 4, 3*',
          ionenergy=(5.9738, ),
          isotopes={243: Isotope(243.0613727, 1.0, 243)}),
      Element(
          96, 'Cm', 'Curium',
          group=3, period=7, block='f', series=10,
          mass=247.070347, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1620.0, density=13.51,
          eleconfig='[Rn] 5f7 6d 7s2',
          oxistates='4, 3*',
          ionenergy=(5.9914, ),
          isotopes={247: Isotope(247.070347, 1.0, 247)}),
      Element(
          97, 'Bk', 'Berkelium',
          group=3, period=7, block='f', series=10,
          mass=247.070299, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1258.0, density=13.25,
          eleconfig='[Rn] 5f9 7s2',
          oxistates='4, 3*',
          ionenergy=(6.1979, ),
          isotopes={247: Isotope(247.070299, 1.0, 247)}),
      Element(
          98, 'Cf', 'Californium',
          group=3, period=7, block='f', series=10,
          mass=251.07958, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1172.0, density=15.1,
          eleconfig='[Rn] 5f10 7s2',
          oxistates='4, 3*',
          ionenergy=(6.2817, ),
          isotopes={251: Isotope(251.07958, 1.0, 251)}),
      Element(
          99, 'Es', 'Einsteinium',
          group=3, period=7, block='f', series=10,
          mass=252.08297, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1130.0, density=0.0,
          eleconfig='[Rn] 5f11 7s2',
          oxistates='3*',
          ionenergy=(6.42, ),
          isotopes={252: Isotope(252.08297, 1.0, 252)}),
      Element(
          100, 'Fm', 'Fermium',
          group=3, period=7, block='f', series=10,
          mass=257.095099, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1800.0, density=0.0,
          eleconfig='[Rn] 5f12 7s2',
          oxistates='3*',
          ionenergy=(6.5, ),
          isotopes={257: Isotope(257.095099, 1.0, 257)}),
      Element(
          101, 'Md', 'Mendelevium',
          group=3, period=7, block='f', series=10,
          mass=258.098425, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1100.0, density=0.0,
          eleconfig='[Rn] 5f13 7s2',
          oxistates='3*',
          ionenergy=(6.58, ),
          isotopes={258: Isotope(258.098425, 1.0, 258)}),
      Element(
          102, 'No', 'Nobelium',
          group=3, period=7, block='f', series=10,
          mass=259.10102, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1100.0, density=0.0,
          eleconfig='[Rn] 5f14 7s2',
          oxistates='3, 2*',
          ionenergy=(6.65, ),
          isotopes={259: Isotope(259.10102, 1.0, 259)}),
      Element(
          103, 'Lr', 'Lawrencium',
          group=3, period=7, block='d', series=10,
          mass=262.10969, eleneg=1.3, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=1900.0, density=0.0,
          eleconfig='[Rn] 5f14 6d 7s2',
          oxistates='3*',
          ionenergy=(4.9, ),
          isotopes={262: Isotope(262.10969, 1.0, 262)}),
      Element(
          104, 'Rf', 'Rutherfordium',
          group=4, period=7, block='d', series=8,
          mass=261.10875, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d2 7s2',
          oxistates='*',
          ionenergy=(6.0, ),
          isotopes={261: Isotope(261.10875, 1.0, 261)}),
      Element(
          105, 'Db', 'Dubnium',
          group=5, period=7, block='d', series=8,
          mass=262.11415, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d3 7s2',
          oxistates='*',
          ionenergy=(),
          isotopes={262: Isotope(262.11415, 1.0, 262)}),
      Element(
          106, 'Sg', 'Seaborgium',
          group=6, period=7, block='d', series=8,
          mass=266.12193, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d4 7s2',
          oxistates='*',
          ionenergy=(),
          isotopes={266: Isotope(266.12193, 1.0, 266)}),
      Element(
          107, 'Bh', 'Bohrium',
          group=7, period=7, block='d', series=8,
          mass=264.12473, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d5 7s2',
          oxistates='*',
          ionenergy=(),
          isotopes={264: Isotope(264.12473, 1.0, 264)}),
      Element(
          108, 'Hs', 'Hassium',
          group=8, period=7, block='d', series=8,
          mass=269.13411, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d6 7s2',
          oxistates='*',
          ionenergy=(),
          isotopes={269: Isotope(269.13411, 1.0, 269)}),
      Element(
          109, 'Mt', 'Meitnerium',
          group=9, period=7, block='d', series=8,
          mass=268.13882, eleneg=0.0, eleaffin=0.0,
          covrad=0.0, atmrad=0.0, vdwrad=0.0,
          tboil=0.0, tmelt=0.0, density=0.0,
          eleconfig='[Rn] 5f14 6d7 7s2',
          oxistates='*',
          ionenergy=(),
          isotopes={268: Isotope(268.13882, 1.0, 268)}))
  
  
  PERIODS = {1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'P', 7: 'Q'}
  
  BLOCKS = {'s': '', 'g': '', 'f': '', 'd': '', 'p': ''}
  
  GROUPS = {
      1: ('IA', 'Alkali metals'),
      2: ('IIA', 'Alkaline earths'),
      3: ('IIIB', ''),
      4: ('IVB', ''),
      5: ('VB', ''),
      6: ('VIB', ''),
      7: ('VIIB', ''),
      8: ('VIIIB', ''),
      9: ('VIIIB', ''),
      10: ('VIIIB', ''),
      11: ('IB', 'Coinage metals'),
      12: ('IIB', ''),
      13: ('IIIA', 'Boron group'),
      14: ('IVA', 'Carbon group'),
      15: ('VA', 'Pnictogens'),
      16: ('VIA', 'Chalcogens'),
      17: ('VIIA', 'Halogens'),
      18: ('VIIIA', 'Noble gases')}
  
  SERIES = {
      1: 'Nonmetals',
      2: 'Noble gases',
      3: 'Alkali metals',
      4: 'Alkaline earth metals',
      5: 'Metalloids',
      6: 'Halogens',
      7: 'Poor metals',
      8: 'Transition metals',
      9: 'Lanthanides',
      10: 'Actinides'}
  
  
  def _descriptions(symbol):
      """Delay load descriptions."""
      e = ELEMENTS
      e['H'].description = (
          "Colourless, odourless gaseous chemical element. Lightest and "
          "most abundant element in the universe. Present in water and in "
          "all organic compounds. Chemically reacts with most elements. "
          "Discovered by Henry Cavendish in 1776.")
      e['He'].description = (
          "Colourless, odourless gaseous nonmetallic element. Belongs to "
          "group 18 of the periodic table. Lowest boiling point of all "
          "elements and can only be solidified under pressure. Chemically "
          "inert, no known compounds. Discovered in the solar spectrum in "
          "1868 by Lockyer.")
      e['Li'].description = (
          "Socket silvery metal. First member of group 1 of the periodic "
          "table. Lithium salts are used in psychomedicine.")
      e['Be'].description = (
          "Grey metallic element of group 2 of the periodic table. Is toxic "
          "and can cause severe lung diseases and dermatitis. Shows high "
          "covalent character. It was isolated independently by F. Wohler "
          "and A.A. Bussy in 1828.")
      e['B'].description = (
          "An element of group 13 of the periodic table. There are two "
          "allotropes, amorphous boron is a brown power, but metallic boron "
          "is black. The metallic form is hard (9.3 on Mohs' scale) and a "
          "bad conductor in room temperatures. It is never found free in "
          "nature. Boron-10 is used in nuclear reactor control rods and "
          "shields. It was discovered in 1808 by Sir Humphry Davy and by "
          "J.L. Gay-Lussac and L.J. Thenard.")
      e['C'].description = (
          "Carbon is a member of group 14 of the periodic table. It has "
          "three allotropic forms of it, diamonds, graphite and fullerite. "
          "Carbon-14 is commonly used in radioactive dating. Carbon occurs "
          "in all organic life and is the basis of organic chemistry. Carbon "
          "has the interesting chemical property of being able to bond with "
          "itself, and a wide variety of other elements.")
      e['N'].description = (
          "Colourless, gaseous element which belongs to group 15 of the "
          "periodic table. Constitutes ~78% of the atmosphere and is an "
          "essential part of the ecosystem. Nitrogen for industrial purposes "
          "is acquired by the fractional distillation of liquid air. "
          "Chemically inactive, reactive generally only at high temperatures "
          "or in electrical discharges. It was discovered in 1772 by D. "
          "Rutherford.")
      e['O'].description = (
          "A colourless, odourless gaseous element belonging to group 16 of "
          "the periodic table. It is the most abundant element present in "
          "the earth's crust. It also makes up 20.8% of the Earth's "
          "atmosphere. For industrial purposes, it is separated from liquid "
          "air by fractional distillation. It is used in high temperature "
          "welding, and in breathing. It commonly comes in the form of "
          "Oxygen, but is found as Ozone in the upper atmosphere. It was "
          "discovered by Priestley in 1774.")
      e['F'].description = (
          "A poisonous pale yellow gaseous element belonging to group 17 of "
          "the periodic table (The halogens). It is the most chemically "
          "reactive and electronegative element. It is highly dangerous, "
          "causing severe chemical burns on contact with flesh. Fluorine was "
          "identified by Scheele in 1771 and first isolated by Moissan in "
          "1886.")
      e['Ne'].description = (
          "Colourless gaseous element of group 18 on the periodic table "
          "(noble gases). Neon occurs in the atmosphere, and comprises "
          "0.0018% of the volume of the atmosphere. It has a distinct "
          "reddish glow when used in discharge tubes and neon based lamps. "
          "It forms almost no chemical compounds. Neon was discovered in "
          "1898 by Sir William Ramsey and M.W. Travers.")
      e['Na'].description = (
          "Soft silvery reactive element belonging to group 1 of the "
          "periodic table (alkali metals). It is highly reactive, oxidizing "
          "in air and reacting violently with water, forcing it to be kept "
          "under oil. It was first isolated by Humphrey Davy in 1807.")
      e['Mg'].description = (
          "Silvery metallic element belonging to group 2 of the periodic "
          "table (alkaline-earth metals). It is essential for living "
          "organisms, and is used in a number of light alloys. Chemically "
          "very reactive, it forms a protective oxide coating when exposed "
          "to air and burns with an intense white flame. It also reacts with "
          "sulphur, nitrogen and the halogens. First isolated by Bussy in "
          "1828.")
      e['Al'].description = (
          "Silvery-white lustrous metallic element of group 3 of the "
          "periodic table. Highly reactive but protected by a thin "
          "transparent layer of the oxide which quickly forms in air. There "
          "are many alloys of aluminum, as well as a good number of "
          "industrial uses. Makes up 8.1% of the Earth's crust, by weight. "
          "Isolated in 1825 by H.C. Oersted.")
      e['Si'].description = (
          "Metalloid element belonging to group 14 of the periodic table. "
          "It is the second most abundant element in the Earth's crust, "
          "making up 25.7% of it by weight. Chemically less reactive than "
          "carbon. First identified by Lavoisier in 1787 and first isolated "
          "in 1823 by Berzelius.")
      e['P'].description = (
          "Non-metallic element belonging to group 15 of the periodic "
          "table. Has a multiple allotropic forms. Essential element for "
          "living organisms. It was discovered by Brandt in 1669.")
      e['S'].description = (
          "Yellow, nonmetallic element belonging to group 16 of the "
          "periodic table. It is an essential element in living organisms, "
          "needed in the amino acids cysteine and methionine, and hence in "
          "many proteins. Absorbed by plants from the soil as sulphate ion.")
      e['Cl'].description = (
          "Halogen element. Poisonous greenish-yellow gas. Occurs widely in "
          "nature as sodium chloride in seawater. Reacts directly with many "
          "elements and compounds, strong oxidizing agent. Discovered by "
          "Karl Scheele in 1774. Humphrey David confirmed it as an element "
          "in 1810.")
      e['Ar'].description = (
          "Monatomic noble gas. Makes up 0.93% of the air. Colourless, "
          "odorless. Is inert and has no true compounds. Lord Rayleigh and "
          "Sir william Ramsey identified argon in 1894.")
      e['K'].description = (
          "Soft silvery metallic element belonging to group 1 of the "
          "periodic table (alkali metals). Occurs naturally in seawater and "
          "a many minerals. Highly reactive, chemically, it resembles sodium "
          "in its behavior and compounds. Discovered by Sir Humphry Davy in "
          "1807.")
      e['Ca'].description = (
          "Soft grey metallic element belonging to group 2 of the periodic "
          "table. Used a reducing agent in the extraction of thorium, "
          "zirconium and uranium. Essential element for living organisms.")
      e['Sc'].description = (
          "Rare soft silvery metallic element belonging to group 3 of the "
          "periodic table. There are ten isotopes, nine of which are "
          "radioactive and have short half-lives. Predicted in 1869 by "
          "Mendeleev, isolated by Nilson in 1879.")
      e['Ti'].description = (
          "White metallic transition element. Occurs in numerous minerals. "
          "Used in strong, light corrosion-resistant alloys. Forms a passive "
          "oxide coating when exposed to air. First discovered by Gregor in "
          "1789.")
      e['V'].description = (
          "Soft and ductile, bright white metal. Good resistance to "
          "corrosion by alkalis, sulphuric and hydrochloric acid. It "
          "oxidizes readily about 933K. There are two naturally occurring "
          "isotopes of vanadium, and 5 radioisotopes, V-49 having the "
          "longest half-life at 337 days. Vanadium has nuclear applications, "
          "the foil is used in cladding titanium to steel, and "
          "vanadium-gallium tape is used to produce a superconductive "
          "magnet. Originally discovered by Andres Manuel del Rio of Mexico "
          "City in 1801. His discovery went unheeded, however, and in 1820, "
          "Nils Gabriel Sefstron of Sweden rediscovered it. Metallic "
          "vanadium was isolated by Henry Enfield Roscoe in 1867. The name "
          "vanadium comes from Vanadis, a goddess of Scandinavian mythology. "
          "Silvery-white metallic transition element. Vanadium is essential "
          "to Ascidians. Rats and chickens are also known to require it. "
          "Metal powder is a fire hazard, and vanadium compounds should be "
          "considered highly toxic. May cause lung cancer if inhaled.")
      e['Cr'].description = (
          "Hard silvery transition element. Used in decorative "
          "electroplating. Discovered in 1797 by Vauquelin.")
      e['Mn'].description = (
          "Grey brittle metallic transition element. Rather "
          "electropositive, combines with some non-metals when heated. "
          "Discovered in 1774 by Scheele.")
      e['Fe'].description = (
          "Silvery malleable and ductile metallic transition element. Has "
          "nine isotopes and is the fourth most abundant element in the "
          "earth's crust. Required by living organisms as a trace element "
          "(used in hemoglobin in humans.) Quite reactive, oxidizes in moist "
          "air, displaces hydrogen from dilute acids and combines with "
          "nonmetallic elements.")
      e['Co'].description = (
          "Light grey transition element. Some meteorites contain small "
          "amounts of metallic cobalt. Generally alloyed for use. Mammals "
          "require small amounts of cobalt salts. Cobalt-60, an artificially "
          "produced radioactive isotope of Cobalt is an important "
          "radioactive tracer and cancer-treatment agent. Discovered by G. "
          "Brandt in 1737.")
      e['Ni'].description = (
          "Malleable ductile silvery metallic transition element. "
          "Discovered by A.F. Cronstedt in 1751.")
      e['Cu'].description = (
          "Red-brown transition element. Known by the Romans as 'cuprum.' "
          "Extracted and used for thousands of years. Malleable, ductile and "
          "an excellent conductor of heat and electricity. When in moist "
          "conditions, a greenish layer forms on the outside.")
      e['Zn'].description = (
          "Blue-white metallic element. Occurs in multiple compounds "
          "naturally. Five stable isotopes are six radioactive isotopes have "
          "been found. Chemically a reactive metal, combines with oxygen and "
          "other non-metals, reacts with dilute acids to release hydrogen.")
      e['Ga'].description = (
          "Soft silvery metallic element, belongs to group 13 of the "
          "periodic table. The two stable isotopes are Ga-69 and Ga-71. "
          "Eight radioactive isotopes are known, all having short "
          "half-lives. Gallium Arsenide is used as a semiconductor. Corrodes "
          "most other metals by diffusing into their lattice. First "
          "identified by Francois Lecoq de Boisbaudran in 1875.")
      e['Ge'].description = (
          "Lustrous hard metalloid element, belongs to group 14 of the "
          "periodic table. Forms a large number of organometallic compounds. "
          "Predicted by Mendeleev in 1871, it was actually found in 1886 by "
          "Winkler.")
      e['As'].description = (
          "Metalloid element of group 15. There are three allotropes, "
          "yellow, black, and grey. Reacts with halogens, concentrated "
          "oxidizing acids and hot alkalis. Albertus Magnus is believed to "
          "have been the first to isolate the element in 1250.")
      e['Se'].description = (
          "Metalloid element, belongs to group 16 of the periodic table. "
          "Multiple allotropic forms exist. Chemically resembles sulphur. "
          "Discovered in 1817 by Jons J. Berzelius.")
      e['Br'].description = (
          "Halogen element. Red volatile liquid at room temperature. Its "
          "reactivity is somewhere between chlorine and iodine. Harmful to "
          "human tissue in a liquid state, the vapour irritates eyes and "
          "throat. Discovered in 1826 by Antoine Balard.")
      e['Kr'].description = (
          "Colorless gaseous element, belongs to the noble gases. Occurs in "
          "the air, 0.0001% by volume. It can be extracted from liquid air "
          "by fractional distillation. Generally not isolated, but used with "
          "other inert gases in fluorescent lamps. Five natural isotopes, "
          "and five radioactive isotopes. Kr-85, the most stable radioactive "
          "isotope, has a half-life of 10.76 years and is produced in "
          "fission reactors. Practically inert, though known to form "
          "compounds with Fluorine.")
      e['Rb'].description = (
          "Soft silvery metallic element, belongs to group 1 of the "
          "periodic table. Rb-97, the naturally occurring isotope, is "
          "radioactive. It is highly reactive, with properties similar to "
          "other elements in group 1, like igniting spontaneously in air. "
          "Discovered spectroscopically in 1861 by W. Bunsen and G.R. "
          "Kirchoff.")
      e['Sr'].description = (
          "Soft yellowish metallic element, belongs to group 2 of the "
          "periodic table. Highly reactive chemically. Sr-90 is present in "
          "radioactive fallout and has a half-life of 28 years. Discovered "
          "in 1798 by Klaproth and Hope, isolated in 1808 by Humphry Davy.")
      e['Y'].description = (
          "Silvery-grey metallic element of group 3 on the periodic table. "
          "Found in uranium ores. The only natural isotope is Y-89, there "
          "are 14 other artificial isotopes. Chemically resembles the "
          "lanthanoids. Stable in the air below 400 degrees, celsius. "
          "Discovered in 1828 by Friedrich Wohler.")
      e['Zr'].description = (
          "Grey-white metallic transition element. Five natural isotopes "
          "and six radioactive isotopes are known. Used in nuclear reactors "
          "for a Neutron absorber. Discovered in 1789 by Martin Klaproth, "
          "isolated in 1824 by Berzelius.")
      e['Nb'].description = (
          "Soft, ductile grey-blue metallic transition element. Used in "
          "special steels and in welded joints to increase strength. "
          "Combines with halogens and oxidizes in air at 200 degrees "
          "celsius. Discovered by Charles Hatchett in 1801 and isolated by "
          "Blomstrand in 1864. Called Columbium originally.")
      e['Mo'].description = (
          "Silvery-white, hard metallic transition element. It is "
          "chemically unreactive and is not affected by most acids. It "
          "oxidizes at high temperatures. There are seven natural isotopes, "
          "and four radioisotopes, Mo-93 being the most stable with a "
          "half-life of 3500 years. Molybdenum is used in almost all "
          "high-strength steels, it has nuclear applications, and is a "
          "catalyst in petroleum refining. Discovered in 1778 by Carl "
          "Welhelm Scheele of Sweden. Impure metal was prepared in 1782 by "
          "Peter Jacob Hjelm. The name comes from the Greek word molybdos "
          "which means lead. Trace amounts of molybdenum are required for "
          "all known forms of life. All molybdenum compounds should be "
          "considered highly toxic, and will also cause severe birth "
          "defects.")
      e['Tc'].description = (
          "Radioactive metallic transition element. Can be detected in some "
          "stars and the fission products of uranium. First made by Perrier "
          "and Segre by bombarding molybdenum with deutrons, giving them "
          "Tc-97. Tc-99 is the most stable isotope with a half-life of "
          "2.6*10^6 years. Sixteen isotopes are known. Organic technetium "
          "compounds are used in bone imaging. Chemical properties are "
          "intermediate between rhenium and manganese.")
      e['Ru'].description = (
          "Hard white metallic transition element. Found with platinum, "
          "used as a catalyst in some platinum alloys. Dissolves in fused "
          "alkalis, and is not attacked by acids. Reacts with halogens and "
          "oxygen at high temperatures. Isolated in 1844 by K.K. Klaus.")
      e['Rh'].description = (
          "Silvery white metallic transition element. Found with platinum "
          "and used in some platinum alloys. Not attacked by acids, "
          "dissolves only in aqua regia. Discovered in 1803 by W.H. "
          "Wollaston.")
      e['Pd'].description = (
          "Soft white ductile transition element. Found with some copper "
          "and nickel ores. Does not react with oxygen at normal "
          "temperatures. Dissolves slowly in hydrochloric acid. Discovered "
          "in 1803 by W.H. Wollaston.")
      e['Ag'].description = (
          "White lustrous soft metallic transition element. Found in both "
          "its elemental form and in minerals. Used in jewellery, tableware "
          "and so on. Less reactive than silver, chemically.")
      e['Cd'].description = (
          "Soft bluish metal belonging to group 12 of the periodic table. "
          "Extremely toxic even in low concentrations. Chemically similar to "
          "zinc, but lends itself to more complex compounds. Discovered in "
          "1817 by F. Stromeyer.")
      e['In'].description = (
          "Soft silvery element belonging to group 13 of the periodic "
          "table. The most common natural isotope is In-115, which has a "
          "half-life of 6*10^4 years. Five other radioisotopes exist. "
          "Discovered in 1863 by Reich and Richter.")
      e['Sn'].description = (
          "Silvery malleable metallic element belonging to group 14 of the "
          "periodic table. Twenty-six isotopes are known, five of which are "
          "radioactive. Chemically reactive. Combines directly with chlorine "
          "and oxygen and displaces hydrogen from dilute acids.")
      e['Sb'].description = (
          "Element of group 15. Multiple allotropic forms. The stable form "
          "of antimony is a blue-white metal. Yellow and black antimony are "
          "unstable non-metals. Used in flame-proofing, paints, ceramics, "
          "enamels, and rubber. Attacked by oxidizing acids and halogens. "
          "First reported by Tholden in 1450.")
      e['Te'].description = (
          "Silvery metalloid element of group 16. Eight natural isotopes, "
          "nine radioactive isotopes. Used in semiconductors and to a degree "
          "in some steels. Chemistry is similar to Sulphur. Discovered in "
          "1782 by Franz Miller.")
      e['I'].description = (
          "Dark violet nonmetallic element, belongs to group 17 of the "
          "periodic table. Insoluble in water. Required as a trace element "
          "for living organisms. One stable isotope, I-127 exists, in "
          "addition to fourteen radioactive isotopes. Chemically the least "
          "reactive of the halogens, and the most electropositive metallic "
          "halogen. Discovered in 1812 by Courtois.")
      e['Xe'].description = (
          "Colourless, odourless gas belonging to group 18 on the periodic "
          "table (the noble gases.) Nine natural isotopes and seven "
          "radioactive isotopes are known. Xenon was part of the first "
          "noble-gas compound synthesized. Several others involving Xenon "
          "have been found since then. Xenon was discovered by Ramsey and "
          "Travers in 1898.")
      e['Cs'].description = (
          "Soft silvery-white metallic element belonging to group 1 of the "
          "periodic table. One of the three metals which are liquid at room "
          "temperature. Cs-133 is the natural, and only stable, isotope. "
          "Fifteen other radioisotopes exist. Caesium reacts explosively "
          "with cold water, and ice at temperatures above 157K. Caesium "
          "hydroxide is the strongest base known. Caesium is the most "
          "electropositive, most alkaline and has the least ionization "
          "potential of all the elements. Known uses include the basis of "
          "atomic clocks, catalyst for the hydrogenation of some organic "
          "compounds, and in photoelectric cells. Caesium was discovered by "
          "Gustav Kirchoff and Robert Bunsen in Germany in 1860 "
          "spectroscopically. Its identification was based upon the bright "
          "blue lines in its spectrum. The name comes from the latin word "
          "caesius, which means sky blue. Caesium should be considered "
          "highly toxic. Some of the radioisotopes are even more toxic.")
      e['Ba'].description = (
          "Silvery-white reactive element, belonging to group 2 of the "
          "periodic table. Soluble barium compounds are extremely poisonous. "
          "Identified in 1774 by Karl Scheele and extracted in 1808 by "
          "Humphry Davy.")
      e['La'].description = (
          "(From the Greek word lanthanein, to line hidden) Silvery "
          "metallic element belonging to group 3 of the periodic table and "
          "oft considered to be one of the lanthanoids. Found in some "
          "rare-earth minerals. Twenty-five natural isotopes exist. La-139 "
          "which is stable, and La-138 which has a half-life of 10^10 to "
          "10^15 years. The other twenty-three isotopes are radioactive. It "
          "resembles the lanthanoids chemically. Lanthanum has a low to "
          "moderate level of toxicity, and should be handled with care. "
          "Discovered in 1839 by C.G. Mosander.")
      e['Ce'].description = (
          "Silvery metallic element, belongs to the lanthanoids. Four "
          "natural isotopes exist, and fifteen radioactive isotopes have "
          "been identified. Used in some rare-earth alloys. The oxidized "
          "form is used in the glass industry. Discovered by Martin .H. "
          "Klaproth in 1803.")
      e['Pr'].description = (
          "Soft silvery metallic element, belongs to the lanthanoids. Only "
          "natural isotope is Pr-141 which is not radioactive. Fourteen "
          "radioactive isotopes have been artificially produced. Used in "
          "rare-earth alloys. Discovered in 1885 by C.A. von Welsbach.")
      e['Nd'].description = (
          "Soft bright silvery metallic element, belongs to the "
          "lanthanoids. Seven natural isotopes, Nd-144 being the only "
          "radioactive one with a half-life of 10^10 to 10^15 years. Six "
          "artificial radioisotopes have been produced. The metal is used in "
          "glass works to color class a shade of violet-purple and make it "
          "dichroic. One of the more reactive rare-earth metals, quickly "
          "reacts with air. Used in some rare-earth alloys. Neodymium is "
          "used to color the glass used in welder's glasses. Neodymium is "
          "also used in very powerful, permanent magnets (Nd2Fe14B). "
          "Discovered by Carl F. Auer von Welsbach in Austria in 1885 by "
          "separating didymium into its elemental components Praseodymium "
          "and neodymium. The name comes from the Greek words 'neos didymos' "
          "which means 'new twin'. Neodymium should be considered highly "
          "toxic, however evidence would seem to show that it acts as little "
          "more than a skin and eye irritant. The dust however, presents a "
          "fire and explosion hazard.")
      e['Pm'].description = (
          "Soft silvery metallic element, belongs to the lanthanoids. "
          "Pm-147, the only natural isotope, is radioactive and has a "
          "half-life of 252 years. Eighteen radioisotopes have been "
          "produced, but all have very short half-lives. Found only in "
          "nuclear decay waste. Pm-147 is of interest as a beta-decay "
          "source, however Pm-146 and Pm-148 have to be removed from it "
          "first, as they generate gamma radiation. Discovered by J.A. "
          "Marinsky, L.E. Glendenin and C.D. Coryell in 1947.")
      e['Sm'].description = (
          "Soft silvery metallic element, belongs to the lanthanoids. Seven "
          "natural isotopes, Sm-147 is the only radioisotope, and has a "
          "half-life of 2.5*10^11 years. Used for making special alloys "
          "needed in the production of nuclear reactors. Also used as a "
          "neutron absorber. Small quantities of samarium oxide is used in "
          "special optical glasses. The largest use of the element is its "
          "ferromagnetic alloy which produces permanent magnets that are "
          "five times stronger than magnets produced by any other material. "
          "Discovered by Francois Lecoq de Boisbaudran in 1879.")
      e['Eu'].description = (
          "Soft silvery metallic element belonging to the lanthanoids. "
          "Eu-151 and Eu-153 are the only two stable isotopes, both of which "
          "are Neutron absorbers. Discovered in 1889 by Sir William Crookes.")
      e['Gd'].description = (
          "Soft silvery metallic element belonging to the lanthanoids. "
          "Seven natural, stable isotopes are known in addition to eleven "
          "artificial isotopes. Gd-155 and Gd-157 and the best neutron "
          "absorbers of all elements. Gadolinium compounds are used in "
          "electronics. Discovered by J.C.G Marignac in 1880.")
      e['Tb'].description = (
          "Silvery metallic element belonging to the lanthanoids. Tb-159 is "
          "the only stable isotope, there are seventeen artificial isotopes. "
          "Discovered by G.G. Mosander in 1843.")
      e['Dy'].description = (
          "Metallic with a bright silvery-white lustre. Dysprosium belongs "
          "to the lanthanoids. It is relatively stable in air at room "
          "temperatures, it will however dissolve in mineral acids, evolving "
          "hydrogen. It is found in from rare-earth minerals. There are "
          "seven natural isotopes of dysprosium, and eight radioisotopes, "
          "Dy-154 being the most stable with a half-life of 3*10^6 years. "
          "Dysprosium is used as a neutron absorber in nuclear fission "
          "reactions, and in compact disks. It was discovered by Paul Emile "
          "Lecoq de Boisbaudran in 1886 in France. Its name comes from the "
          "Greek word dysprositos, which means hard to obtain.")
      e['Ho'].description = (
          "Relatively soft and malleable silvery-white metallic element, "
          "which is stable in dry air at room temperature. It oxidizes in "
          "moist air and at high temperatures. It belongs to the "
          "lanthanoids. A rare-earth metal, it is found in the minerals "
          "monazite and gadolinite. It possesses unusual magnetic "
          "properties. One natural isotope, Ho-165 exists, six radioisotopes "
          "exist, the most stable being Ho-163 with a half-life of 4570 "
          "years. Holmium is used in some metal alloys, it is also said to "
          "stimulate the metabolism. Discovered by Per Theodor Cleve and "
          "J.L. Soret in Switzerland in 1879. The name homium comes from the "
          "Greek word Holmia which means Sweden. While all holmium compounds "
          "should be considered highly toxic, initial evidence seems to "
          "indicate that they do not pose much danger. The metal's dust "
          "however, is a fire hazard.")
      e['Er'].description = (
          "Soft silvery metallic element which belongs to the lanthanoids. "
          "Six natural isotopes that are stable. Twelve artificial isotopes "
          "are known. Used in nuclear technology as a neutron absorber. It "
          "is being investigated for other possible uses. Discovered by Carl "
          "G. Mosander in 1843.")
      e['Tm'].description = (
          "Soft grey metallic element that belongs to the lanthanoids. One "
          "natural isotope exists, Tm-169, and seventeen artificial isotopes "
          "have been produced. No known uses for the element. Discovered in "
          "1879 by Per Theodor Cleve.")
      e['Yb'].description = (
          "Silvery metallic element of the lanthanoids. Seven natural "
          "isotopes and ten artificial isotopes are known. Used in certain "
          "steels. Discovered by J.D.G. Marignac in 1878.")
      e['Lu'].description = (
          "Silvery-white rare-earth metal which is relatively stable in "
          "air. It happens to be the most expensive rare-earth metal. Its "
          "found with almost all rare-earth metals, but is very difficult to "
          "separate from other elements. Least abundant of all natural "
          "elements. Used in metal alloys, and as a catalyst in various "
          "processes. There are two natural, stable isotopes, and seven "
          "radioisotopes, the most stable being Lu-174 with a half-life of "
          "3.3 years. The separation of lutetium from Ytterbium was "
          "described by Georges Urbain in 1907. It was discovered at "
          "approximately the same time by Carl Auer von Welsbach. The name "
          "comes from the Greek word lutetia which means Paris.")
      e['Hf'].description = (
          "Silvery lustrous metallic transition element. Used in tungsten "
          "alloys in filaments and electrodes, also acts as a neutron "
          "absorber. First reported by Urbain in 1911, existence was finally "
          "established in 1923 by D. Coster, G.C. de Hevesy in 1923.")
      e['Ta'].description = (
          "Heavy blue-grey metallic transition element. Ta-181 is a stable "
          "isotope, and Ta-180 is a radioactive isotope, with a half-life in "
          "excess of 10^7 years. Used in surgery as it is unreactive. Forms "
          "a passive oxide layer in air. Identified in 1802 by Ekeberg and "
          "isolated in 1820 by Jons J. Berzelius.")
      e['W'].description = (
          "White or grey metallic transition element,formerly called "
          "Wolfram. Forms a protective oxide in air and can be oxidized at "
          "high temperature. First isolated by Jose and Fausto de Elhuyer in "
          "1783.")
      e['Re'].description = (
          "Silvery-white metallic transition element. Obtained as a "
          "by-product of molybdenum refinement. Rhenium-molybdenum alloys "
          "are superconducting.")
      e['Os'].description = (
          "Hard blue-white metallic transition element. Found with platinum "
          "and used in some alloys with platinum and iridium.")
      e['Ir'].description = (
          "Very hard and brittle, silvery metallic transition element. It "
          "has a yellowish cast to it. Salts of iridium are highly colored. "
          "It is the most corrosion resistant metal known, not attacked by "
          "any acid, but is attacked by molten salts. There are two natural "
          "isotopes of iridium, and 4 radioisotopes, the most stable being "
          "Ir-192 with a half-life of 73.83 days. Ir-192 decays into "
          "Platinum, while the other radioisotopes decay into Osmium. "
          "Iridium is used in high temperature apparatus, electrical "
          "contacts, and as a hardening agent for platinumpy. Discovered in "
          "1803 by Smithson Tennant in England. The name comes from the "
          "Greek word iris, which means rainbow. Iridium metal is generally "
          "non-toxic due to its relative unreactivity, but iridium compounds "
          "should be considered highly toxic.")
      e['Pt'].description = (
          "Attractive greyish-white metal. When pure, it is malleable and "
          "ductile. Does not oxidize in air, insoluble in hydrochloric and "
          "nitric acid. Corroded by halogens, cyandies, sulphur and alkalis. "
          "Hydrogen and Oxygen react explosively in the presence of "
          "platinumpy. There are six stable isotopes and three "
          "radioisotopes, the most stable being Pt-193 with a half-life of "
          "60 years. Platinum is used in jewelry, laboratory equipment, "
          "electrical contacts, dentistry, and anti-pollution devices in "
          "cars. PtCl2(NH3)2 is used to treat some forms of cancer. "
          "Platinum-Cobalt alloys have magnetic properties. It is also used "
          "in the definition of the Standard Hydrogen Electrode. Discovered "
          "by Antonio de Ulloa in South America in 1735. The name comes from "
          "the Spanish word platina which means silver. Platinum metal is "
          "generally not a health concern due to its unreactivity, however "
          "platinum compounds should be considered highly toxic.")
      e['Au'].description = (
          "Gold is gold colored. It is the most malleable and ductile metal "
          "known. There is only one stable isotope of gold, and five "
          "radioisotopes of gold, Au-195 being the most stable with a "
          "half-life of 186 days. Gold is used as a monetary standard, in "
          "jewelry, dentistry, electronics. Au-198 is used in treating "
          "cancer and some other medical conditions. Gold has been known to "
          "exist as far back as 2600 BC. Gold comes from the Anglo-Saxon "
          "word gold. Its symbol, Au, comes from the Latin word aurum, which "
          "means gold. Gold is not particularly toxic, however it is known "
          "to cause damage to the liver and kidneys in some.")
      e['Hg'].description = (
          "Heavy silvery liquid metallic element, belongs to the zinc "
          "group. Used in thermometers, barometers and other scientific "
          "apparatus. Less reactive than zinc and cadmium, does not displace "
          "hydrogen from acids. Forms a number of complexes and "
          "organomercury compounds.")
      e['Tl'].description = (
          "Pure, unreacted thallium appears silvery-white and exhibits a "
          "metallic lustre. Upon reacting with air, it begins to turn "
          "bluish-grey and looks like lead. It is very malleable, and can be "
          "cut with a knife. There are two stable isotopes, and four "
          "radioisotopes, Tl-204 being the most stable with a half-life of "
          "3.78 years. Thallium sulphate was used as a rodenticide. Thallium "
          "sulphine's conductivity changes with exposure to infrared light, "
          "this gives it a use in infrared detectors. Discovered by Sir "
          "William Crookes via spectroscopy. Its name comes from the Greek "
          "word thallos, which means green twig. Thallium and its compounds "
          "are toxic and can cause cancer.")
      e['Pb'].description = (
          "Heavy dull grey ductile metallic element, belongs to group 14. "
          "Used in building construction, lead-place accumulators, bullets "
          "and shot, and is part of solder, pewter, bearing metals, type "
          "metals and fusible alloys.")
      e['Bi'].description = (
          "White crystalline metal with a pink tinge, belongs to group 15. "
          "Most diamagnetic of all metals and has the lowest thermal "
          "conductivity of all the elements except mercury. Lead-free "
          "bismuth compounds are used in cosmetics and medical procedures. "
          "Burns in the air and produces a blue flame. In 1753, C.G. Junine "
          "first demonstrated that it was different from lead.")
      e['Po'].description = (
          "Rare radioactive metallic element, belongs to group 16 of the "
          "periodic table. Over 30 known isotopes exist, the most of all "
          "elements. Po-209 has a half-life of 103 years. Possible uses in "
          "heating spacecraft. Discovered by Marie Curie in 1898 in a sample "
          "of pitchblende.")
      e['At'].description = (
          "Radioactive halogen element. Occurs naturally from uranium and "
          "thorium decay. At least 20 known isotopes. At-210, the most "
          "stable, has a half-life of 8.3 hours. Synthesized by nuclear "
          "bombardment in 1940 by D.R. Corson, K.R. MacKenzie and E. Segre "
          "at the University of California.")
      e['Rn'].description = (
          "Colorless radioactive gaseous element, belongs to the noble "
          "gases. Of the twenty known isotopes, the most stable is Rn-222 "
          "with a half-life of 3.8 days. Formed by the radioactive decay of "
          "Radium-226. Radon itself decays into Polonium. Used in "
          "radiotherapy. As a noble gas, it is effectively inert, though "
          "radon fluoride has been synthesized. First isolated in 1908 by "
          "Ramsey and Gray.")
      e['Fr'].description = (
          "Radioactive element, belongs to group 1 of the periodic table. "
          "Found in uranium and thorium ores. The 22 known isotopes are all "
          "radioactive, with the most stable being Fr-223. Its existence was "
          "confirmed in 1939 by Marguerite Perey.")
      e['Ra'].description = (
          "Radioactive metallic transuranic element, belongs to group 2 of "
          "the periodic table. Most stable isotope, Ra-226 has a half-life "
          "of 1602 years, which decays into radon. Isolated from pitchblende "
          "in 1898 Marie and Pierre Curie.")
      e['Ac'].description = (
          "Silvery radioactive metallic element, belongs to group 3 of the "
          "periodic table. The most stable isotope, Ac-227, has a half-life "
          "of 217 years. Ac-228 (half-life of 6.13 hours) also occurs in "
          "nature. There are 22 other artificial isotopes, all radioactive "
          "and having very short half-lives. Chemistry similar to "
          "lanthanumpy. Used as a source of alpha particles. Discovered by "
          "A. Debierne in 1899.")
      e['Th'].description = (
          "Grey radioactive metallic element. Belongs to actinoids. Found "
          "in monazite sand in Brazil, India and the US. Thorium-232 has a "
          "half-life of 1.39x10^10 years. Can be used as a nuclear fuel for "
          "breeder reactors. Thorium-232 captures slow Neutrons and breeds "
          "uranium-233. Discovered by Jons J. Berzelius in 1829.")
      e['Pa'].description = (
          "Radioactive metallic element, belongs to the actinoids. The most "
          "stable isotope, Pa-231 has a half-life of 2.43*10^4 years. At "
          "least 10 other radioactive isotopes are known. No practical "
          "applications are known. Discovered in 1917 by Lise Meitner and "
          "Otto Hahn.")
      e['U'].description = (
          "White radioactive metallic element belonging to the actinoids. "
          "Three natural isotopes, U-238, U-235 and U-234. Uranium-235 is "
          "used as the fuel for nuclear reactors and weapons. Discovered by "
          "Martin H. Klaproth in 1789.")
      e['Np'].description = (
          "Radioactive metallic transuranic element, belongs to the "
          "actinoids. Np-237, the most stable isotope, has a half-life of "
          "2.2*10^6 years and is a by product of nuclear reactors. The other "
          "known isotopes have mass numbers 229 through 236, and 238 through "
          "241. Np-236 has a half-life of 5*10^3 years. First produced by "
          "Edwin M. McMillan and P.H. Abelson in 1940.")
      e['Pu'].description = (
          "Dense silvery radioactive metallic transuranic element, belongs "
          "to the actinoids. Pu-244 is the most stable isotope with a "
          "half-life of 7.6*10^7 years. Thirteen isotopes are known. Pu-239 "
          "is the most important, it undergoes nuclear fission with slow "
          "neutrons and is hence important to nuclear weapons and reactors. "
          "Plutonium production is monitored down to the gram to prevent "
          "military misuse. First produced by Gleen T. Seaborg, Edwin M. "
          "McMillan, J.W. Kennedy and A.C. Wahl in 1940.")
      e['Am'].description = (
          "Radioactive metallic transuranic element, belongs to the "
          "actinoids. Ten known isotopes. Am-243 is the most stable isotope, "
          "with a half-life of 7.95*10^3 years. Discovered by Glenn T. "
          "Seaborg and associates in 1945, it was obtained by bombarding "
          "Uranium-238 with alpha particles.")
      e['Cm'].description = (
          "Radioactive metallic transuranic element. Belongs to actinoid "
          "series. Nine known isotopes, Cm-247 has a half-life of 1.64*10^7 "
          "years. First identified by Glenn T. Seaborg and associates in "
          "1944, first produced by L.B. Werner and I. Perlman in 1947 by "
          "bombarding americium-241 with Neutrons. Named for Marie Curie.")
      e['Bk'].description = (
          "Radioactive metallic transuranic element. Belongs to actinoid "
          "series. Eight known isotopes, the most common Bk-247, has a "
          "half-life of 1.4*10^3 years. First produced by Glenn T. Seaborg "
          "and associates in 1949 by bombarding americium-241 with alpha "
          "particles.")
      e['Cf'].description = (
          "Radioactive metallic transuranic element. Belongs to actinoid "
          "series. Cf-251 has a half life of about 700 years. Nine isotopes "
          "are known. Cf-252 is an intense Neutron source, which makes it an "
          "intense Neutron source and gives it a use in Neutron activation "
          "analysis and a possible use as a radiation source in medicine. "
          "First produced by Glenn T. Seaborg and associates in 1950.")
      e['Es'].description = (
          "Appearance is unknown, however it is most probably metallic and "
          "silver or gray in color. Radioactive metallic transuranic element "
          "belonging to the actinoids. Es-254 has the longest half-life of "
          "the eleven known isotopes at 270 days. First identified by Albert "
          "Ghiorso and associates in the debris of the 1952 hydrogen bomb "
          "explosion. In 1961 the first microgram quantities of Es-232 were "
          "separated. While einsteinium never exists naturally, if a "
          "sufficient amount was assembled, it would pose a radiation "
          "hazard.")
      e['Fm'].description = (
          "Radioactive metallic transuranic element, belongs to the "
          "actinoids. Ten known isotopes, most stable is Fm-257 with a "
          "half-life of 10 days. First identified by Albert Ghiorso and "
          "associates in the debris of the first hydrogen-bomb explosion in "
          "1952.")
      e['Md'].description = (
          "Radioactive metallic transuranic element. Belongs to the "
          "actinoid series. Only known isotope, Md-256 has a half-life of "
          "1.3 hours. First identified by Glenn T. Seaborg, Albert Ghiorso "
          "and associates in 1955. Alternative name Unnilunium has been "
          "proposed. Named after the 'inventor' of the periodic table, "
          "Dmitri Mendeleev.")
      e['No'].description = (
          "Radioactive metallic transuranic element, belongs to the "
          "actinoids. Seven known isotopes exist, the most stable being "
          "No-254 with a half-life of 255 seconds. First identified with "
          "certainty by Albert Ghiorso and Glenn T. Seaborg in 1966. "
          "Unnilbium has been proposed as an alternative name.")
      e['Lr'].description = (
          "Appearance unknown, however it is most likely silvery-white or "
          "grey and metallic. Lawrencium is a synthetic rare-earth metal. "
          "There are eight known radioisotopes, the most stable being Lr-262 "
          "with a half-life of 3.6 hours. Due to the short half-life of "
          "lawrencium, and its radioactivity, there are no known uses for "
          "it. Identified by Albert Ghiorso in 1961 at Berkeley. It was "
          "produced by bombarding californium with boron ions. The name is "
          "temporary IUPAC nomenclature, the origin of the name comes from "
          "Ernest O. Lawrence, the inventor of the cyclotron. If sufficient "
          "amounts of lawrencium were produced, it would pose a radiation "
          "hazard.")
      e['Rf'].description = (
          "Radioactive transactinide element. Expected to have similar "
          "chemical properties to those displayed by hafnium. Rf-260 was "
          "discovered by the Joint Nuclear Research Institute at Dubna "
          "(U.S.S.R.) in 1964. Researchers at Berkeley discovered Unq-257 "
          "and Unq-258 in 1964.")
      e['Db'].description = (
          "Also known as Hahnium, Ha. Radioactive transactinide element. "
          "Half-life of 1.6s. Discovered in 1970 by Berkeley researchers. So "
          "far, seven isotopes have been discovered.")
      e['Sg'].description = (
          "Half-life of 0.9 +/- 0.2 s. Discovered by the Joint Institute "
          "for Nuclear Research at Dubna (U.S.S.R.) in June of 1974. Its "
          "existence was confirmed by the Lawrence Berkeley Laboratory and "
          "Livermore National Laboratory in September of 1974.")
      e['Bh'].description = (
          "Radioactive transition metal. Half-life of approximately 1/500 "
          "s. Discovered by the Joint Institute for Nuclear Research at "
          "Dubna (U.S.S.R.) in 1976. Confirmed by West German physicists at "
          "the Heavy Ion Research Laboratory at Darmstadt.")
      e['Hs'].description = (
          "Radioactive transition metal first synthesized in 1984 by a "
          "German research team led by Peter Armbruster and Gottfried "
          "Muenzenberg at the Institute for Heavy Ion Research at Darmstadt.")
      e['Mt'].description = (
          "Half-life of approximately 5 ms. The creation of this element "
          "demonstrated that fusion techniques could indeed be used to make "
          "new, heavy nuclei. Made and identified by physicists of the Heavy "
          "Ion Research Laboratory, Darmstadt, West Germany in 1982. Named "
          "in honor of Lise Meitner, the Austrian physicist.")
      return e[symbol].description
  
  
  def sqlite_script():
      """Return SQL script to create sqlite database of elements.
  
      Examples
      --------
      >>> import sqlite3
      >>> con = sqlite3.connect(':memory:')
      >>> cur = con.executescript(sqlite_script())
      >>> con.commit()
      >>> for r in cur.execute("SELECT name FROM element WHERE number=6"):
      ...     str(r[0])
      'Carbon'
      >>> con.close()
  
      """
      sql = ["""
          CREATE TABLE "period" (
              "number" TINYINT NOT NULL PRIMARY KEY,
              "label" CHAR NOT NULL UNIQUE,
              "description" VARCHAR(64)
          );
          CREATE TABLE "group" (
              "number" TINYINT NOT NULL PRIMARY KEY,
              "label" VARCHAR(8) NOT NULL,
              "description" VARCHAR(64)
          );
          CREATE TABLE "block" (
              "label" CHAR NOT NULL PRIMARY KEY,
              "description" VARCHAR(64)
          );
          CREATE TABLE "series" (
              "id" TINYINT NOT NULL PRIMARY KEY,
              "label"  VARCHAR(32) NOT NULL,
              "description" VARCHAR(256)
          );
          CREATE TABLE "element" (
              "number" TINYINT NOT NULL PRIMARY KEY,
              "symbol" VARCHAR(2) UNIQUE NOT NULL,
              "name" VARCHAR(16) UNIQUE NOT NULL,
              "period" TINYINT NOT NULL,
              --FOREIGN KEY("period") REFERENCES "period"(number),
              "group" TINYINT NOT NULL,
              --FOREIGN KEY("group") REFERENCES "group"(number),
              "block" CHAR NOT NULL,
              --FOREIGN KEY("block") REFERENCES "block"(label),
              "series" TINYINT NOT NULL,
              --FOREIGN KEY("series") REFERENCES "series"(id),
              "mass" REAL NOT NULL,
              "eleneg" REAL,
              "covrad" REAL,
              "atmrad" REAL,
              "vdwrad" REAL,
              "tboil" REAL,
              "tmelt" REAL,
              "density" REAL,
              "eleaffin" REAL,
              "eleconfig" VARCHAR(32),
              "oxistates" VARCHAR(32),
              "description" VARCHAR(2048)
          );
          CREATE TABLE "isotope" (
              "element" TINYINT NOT NULL,
              --FOREIGN KEY ("element") REFERENCES "element"("number"),
              "massnum" TINYINT NOT NULL,
              "mass" REAL NOT NULL,
              "abundance" REAL NOT NULL,
              PRIMARY KEY ("element", "massnum")
          );
          CREATE TABLE "eleconfig" (
              "element" TINYINT NOT NULL,
              --FOREIGN KEY ("element") REFERENCES "element"("number"),
              "shell" TINYINT NOT NULL,
              --FOREIGN KEY ("shell") REFERENCES "period"("number"),
              "subshell" CHAR NOT NULL,
              --FOREIGN KEY ("subshell") REFERENCES "block"("label"),
              "count" TINYINT,
              PRIMARY KEY ("element", "shell", "subshell")
          );
          CREATE TABLE "ionenergy" (
              "element" TINYINT NOT NULL,
              --FOREIGN KEY ("element") REFERENCES "element"("number"),
              "number" TINYINT NOT NULL,
              "energy" REAL NOT NULL,
              PRIMARY KEY ("element", "number")
          );
      """]
  
      for key, label in PERIODS.items():
          sql.append("""INSERT INTO "period" VALUES (%i, '%s', NULL);""" % (
              key, label))
  
      for key, (label, descr) in GROUPS.items():
          sql.append("""INSERT INTO "group" VALUES (%i, '%s', '%s');""" % (
              key, label, descr))
  
      for data in BLOCKS.items():
          sql.append("""INSERT INTO "block" VALUES ('%s', '%s');""" % data)
  
      for series in sorted(SERIES):
          sql.append("""INSERT INTO "series" VALUES (%i, '%s', '');""" % (
              series, SERIES[series]))
  
      for ele in ELEMENTS:
          sql.append("""
          INSERT INTO "element" VALUES (%i, '%s', '%s', %i, %i, '%s', %i,
              %.10f, %.4f, %.4f, %.4f, %.4f,
              %.4f, %.4f, %.4f, %.8f,
              '%s', '%s',
              '%s'
          );""" % (
              ele.number, ele.symbol, ele.name, ele.period, ele.group,
              ele.block, ele.series, ele.mass, ele.eleneg,
              ele.covrad, ele.atmrad, ele.vdwrad, ele.tboil, ele.tmelt,
              ele.density, ele.eleaffin, ele.eleconfig, ele.oxistates,
              word_wrap(
                  ele.description.replace("'", "\'\'").replace("\"", "\"\""),
                  linelen=74, indent=0, joinstr="\n ")))
  
      for ele in ELEMENTS:
          for iso in ele.isotopes.values():
              sql.append(
                  """INSERT INTO "isotope" VALUES (%i, %i, %.10f, %.8f);""" % (
                      ele.number, iso.massnumber, iso.mass, iso.abundance))
  
      for ele in ELEMENTS:
          for (shell, subshell), count in ele.eleconfig_dict.items():
              sql.append(
                  """INSERT INTO "eleconfig" VALUES (%i, %i, '%s', %i);""" % (
                      ele.number, shell, subshell, count))
  
      for ele in ELEMENTS:
          for i, ionenergy in enumerate(ele.ionenergy):
              sql.append("""INSERT INTO "ionenergy" VALUES (%i, %i, %.4f);""" % (
                  ele.number, i + 1, ionenergy))
  
      return '\n'.join(sql).replace('        ', '')
  
  
  def word_wrap(text, linelen=80, indent=0, joinstr='\n'):
      """Return string, word wrapped at linelen."""
      if len(text) < linelen:
          return text
      result = []
      line = []
      llen = -indent
      for word in text.split():
          llen += len(word) + 1
          if llen < linelen:
              line.append(word)
          else:
              result.append(' '.join(line))
              line = [word]
              llen = len(word)
      if line:
          result.append(' '.join(line))
      return joinstr.join(result)
  
  
  if __name__ == '__main__':
      for _ in ELEMENTS:
          print(repr(_), '\n')
      import doctest
      doctest.testmod(verbose=False)
  