{ "cells": [ { "cell_type": "markdown", "source": [ "# Introduction to periodic problems and plane-wave discretisations" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "In this example we want to show how DFTK can be used to solve simple one-dimensional\n", "periodic problems. Along the lines this notebook serves as a concise introduction into\n", "the underlying theory and jargon for solving periodic problems using plane-wave\n", "discretizations." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Periodicity and lattices\n", "A periodic problem is characterized by being invariant to certain translations.\n", "For example the ``\\sin`` function is periodic with periodicity ``2π``, i.e.\n", "$$\n", " \\sin(x) = \\sin(x + 2πm) \\quad ∀ m ∈ \\mathbb{Z},\n", "$$\n", "This is nothing else than saying that any translation by an integer multiple of ``2π``\n", "keeps the ``\\sin`` function invariant. In a more formal one can use the\n", "translation operator ``T_{-2πm}`` to write this as:\n", "$$\n", " T_{-2πm} \\, \\sin(x) = \\sin(x + 2πm) = \\sin(x).\n", "$$\n", "\n", "Whenever such periodicity exists one can exploit it to save computational work.\n", "Consider a problem in which we want to find a function ``f : \\mathbb{R} → \\mathbb{R}``,\n", "but *a priori* the solution is known to be periodic with periodicity ``a``. As a consequence\n", "of said periodicity it is sufficient to determine the values of ``f`` for all ``x`` from the\n", "interval ``[-a/2, a/2)`` to uniquely define ``f`` on the full real axis. Naturally exploiting\n", "periodicity in a computational procedure thus greatly reduces the required amount of work.\n", "\n", "Let us introduce some jargon: The periodicity of our problem implies that we may define\n", "a **lattice**\n", "```\n", " -3a/2 -a/2 +a/2 +3a/2\n", " ... |---------|---------|---------| ...\n", " a a a\n", "```\n", "with lattice constant ``a``. Each cell of the lattice is an identical periodic image of\n", "any of its neighbors. For finding ``f`` it is thus sufficient to consider only the\n", "problem inside a **unit cell** ``[-a/2, a/2)``. In passing we note that the definition\n", "of the unit cell is itself only unique up to translations. A choice ``[0, a)``,\n", "for example, would have done just as well.\n", "\n", "## Periodic operators and the Bloch transform\n", "Not only functions, but also operators can feature periodicity.\n", "Consider for example the **free-electron Hamiltonian**\n", "$$\n", " H = -\\frac12 Δ.\n", "$$\n", "In free-electron model (which gives rise to this Hamiltonian) electron motion is only\n", "by their own kinetic energy. As this model features no potential which could make one point\n", "in space more preferred than another, we would expect this model to be periodic.\n", "If an operator is periodic with respect to a lattice such as the one defined above,\n", "than it commutes with all lattice translations. For the free-electron case ``H``\n", "one can easily show exactly that, i.e.\n", "$$\n", " T_{ma} H = H T_{ma} \\quad ∀ m ∈ \\mathbb{Z}.\n", "$$\n", "We note in passing that the free-electron model is actually very special in the sense that\n", "the choice of ``a`` is completely arbitrary here. In other words ``H`` is periodic\n", "with respect to any translation. In general, however, periodicity is only\n", "attained with respect to a finite number of translations ``a`` and we will take this\n", "viewpoint here.\n", "\n", "**Bloch's theorem** now tells us that for periodic operators,\n", "the solutions to the eigenproblem\n", "$$\n", " H ψ_{kn} = ε_{kn} ψ_{kn}\n", "$$\n", "satisfy a factorization\n", "$$\n", " ψ_{kn}(x) = e^{i k⋅x} u_{kn}(x)\n", "$$\n", "into a plane wave ``e^{i k⋅x}`` and a lattice-periodic function\n", "$$\n", " T_{ma} u_{kn}(x) = u_{kn}(x - ma) = u_{kn}(x) \\quad ∀ m ∈ \\mathbb{Z}.\n", "$$\n", "In this ``n`` is a labeling integer index and ``k`` is a real number,\n", "whose details will be clarified in the next section.\n", "The index ``n`` is sometimes also called the **band index** and\n", "functions ``ψ_{kn}`` satisfying this factorization are also known as\n", "**Bloch functions** or **Bloch states**.\n", "\n", "Consider the application of ``2H = -Δ = - \\frac{d^2}{d x^2}``\n", "to such a Bloch wave. First we notice for any function ``f``\n", "$$\n", " -i∇ \\left( e^{i k⋅x} f \\right)\n", " = -i\\frac{d}{dx} \\left( e^{i k⋅x} f \\right)\n", " = k e^{i k⋅x} f -i∇ e^{i k⋅x} f = (-i∇ + k) e^{i k⋅x} f.\n", "$$\n", "Using this result twice one shows that applying ``-Δ`` yields\n", "$$\n", "\\begin{aligned}\n", " -\\Delta \\left(e^{i k⋅x} u_{kn}(x)\\right)\n", " &= -i∇ ⋅ \\left[-i∇ \\left(u_{kn}(x) e^{i k⋅x} \\right) \\right] \\\\\n", " &= -i∇ ⋅ \\left[(-i∇ + k) u_{kn}(x) e^{i k⋅x} \\right] \\\\\n", " &= (-i∇ + k)^2 u_{kn}(x) e^{i k⋅x} \\\\\n", " &= e^{i k⋅x} 2H_k u_{kn}(x),\n", "\\end{aligned}\n", "$$\n", "where we defined\n", "$$\n", " H_k = \\frac12 (-i∇ + k)^2.\n", "$$\n", "The action of this operator on a function ``u_{kn}`` is given by\n", "$$\n", " H_k u_{kn} = e^{-i k⋅x} H e^{i k⋅x} u_{kn},\n", "$$\n", "which in particular implies that\n", "$$\n", " H_k u_{kn} = ε_{kn} u_{kn} \\quad ⇔ \\quad H (e^{i k⋅x} u_{kn}) = ε_{kn} (e^{i k⋅x} u_{kn}).\n", "$$\n", "To seek the eigenpairs of ``H`` we may thus equivalently\n", "find the eigenpairs of *all* ``H_k``.\n", "The point of this is that the eigenfunctions ``u_{kn}`` of ``H_k``\n", "are periodic (unlike the eigenfunctions ``ψ_{kn}`` of ``H``).\n", "In contrast to ``ψ_{kn}`` the functions ``u_{kn}`` can thus be fully\n", "represented considering the eigenproblem only on the unit cell.\n", "\n", "A detailed mathematical analysis shows that the transformation from ``H``\n", "to the set of all ``H_k`` for a suitable set of values for ``k`` (details below)\n", "is actually a unitary transformation, the so-called **Bloch transform**.\n", "This transform brings the Hamiltonian into the symmetry-adapted basis for\n", "translational symmetry, which are exactly the Bloch functions.\n", "Similar to the case of choosing a symmetry-adapted basis for other kinds of symmetries\n", "(like the point group symmetry in molecules), the Bloch transform also makes\n", "the Hamiltonian ``H`` block-diagonal[^1]:\n", "$$\n", " T_B H T_B^{-1} ⟶ \\left( \\begin{array}{cccc} H_1&&&0 \\\\ &H_2\\\\&&H_3\\\\0&&&\\ddots \\end{array} \\right)\n", "$$\n", "with each block ``H_k`` taking care of one value ``k``.\n", "This block-diagonal structure under the basis of Bloch functions lets us\n", "completely describe the spectrum of ``H`` by looking only at the spectrum\n", "of all ``H_k`` blocks.\n", "\n", "[^1]: Notice that block-diagonal is a bit an abuse of terms here, since the Hamiltonian\n", " is not a matrix but an operator and the number of blocks is essentially infinite.\n", " The mathematically precise term is that the Bloch transform reveals the fibers\n", " of the Hamiltonian.\n", "\n", "## The Brillouin zone\n", "\n", "We now consider the parameter ``k`` of the Hamiltonian blocks in detail.\n", "\n", "- As discussed ``k`` is a real number. It turns out, however, that some of\n", " these ``k∈\\mathbb{R}`` give rise to operators related by unitary transformations\n", " (again due to translational symmetry).\n", "- Since such operators have the same eigenspectrum, only one version needs to be considered.\n", "- The smallest subset from which ``k`` is chosen is the **Brillouin zone** (BZ).\n", "\n", "- The BZ is the unit cell of the **reciprocal lattice**, which may be constructed from\n", " the **real-space lattice** by a Fourier transform.\n", "- In our simple 1D case the reciprocal lattice is just\n", " ```\n", " ... |--------|--------|--------| ...\n", " 2π/a 2π/a 2π/a\n", " ```\n", " i.e. like the real-space lattice, but just with a different lattice constant\n", " ``b = 2π / a``.\n", "- The BZ in our example is thus ``B = [-π/a, π/a)``. The members of ``B``\n", " are typically called ``k``-points.\n", "\n", "## Discretization and plane-wave basis sets\n", "\n", "With what we discussed so far the strategy to find all eigenpairs of a periodic\n", "Hamiltonian ``H`` thus reduces to finding the eigenpairs of all ``H_k`` with ``k ∈ B``.\n", "This requires *two* discretisations:\n", "\n", " - ``B`` is infinite (and not countable). To discretize we first only pick a finite number\n", " of ``k``-points. Usually this **``k``-point sampling** is done by picking ``k``-points\n", " along a regular grid inside the BZ, the **``k``-grid**.\n", " - Each ``H_k`` is still an infinite-dimensional operator.\n", " Following a standard Ritz-Galerkin ansatz we project the operator into a finite basis\n", " and diagonalize the resulting matrix.\n", "\n", "For the second step multiple types of bases are used in practice (finite differences,\n", "finite elements, Gaussians, ...). In DFTK we currently support only plane-wave\n", "discretizations.\n", "\n", "For our 1D example normalized plane waves are defined as the functions\n", "$$\n", "e_{G}(x) = \\frac{e^{i G x}}{\\sqrt{a}} \\qquad G \\in b\\mathbb{Z}\n", "$$\n", "and typically one forms basis sets from these by specifying a\n", "**kinetic energy cutoff** ``E_\\text{cut}``:\n", "$$\n", "\\left\\{ e_{G} \\, \\big| \\, (G + k)^2 \\leq 2E_\\text{cut} \\right\\}\n", "$$\n", "\n", "## Correspondence of theory to DFTK code\n", "\n", "Before solving a few example problems numerically in DFTK, a short overview\n", "of the correspondence of the introduced quantities to data structures inside DFTK.\n", "\n", "- ``H`` is represented by a `Hamiltonian` object and variables for hamiltonians are usually called `ham`.\n", "- ``H_k`` by a `HamiltonianBlock` and variables are `hamk`.\n", "- ``ψ_{kn}`` is usually just called `ψ`.\n", " ``u_{kn}`` is not stored (in favor of ``ψ_{kn}``).\n", "- ``ε_{kn}`` is called `eigenvalues`.\n", "- ``k``-points are represented by `Kpoint` and respective variables called `kpt`.\n", "- The basis of plane waves is managed by `PlaneWaveBasis` and variables usually just called `basis`.\n", "\n", "## Solving the free-electron Hamiltonian\n", "\n", "One typical approach to get physical insight into a Hamiltonian ``H`` is to plot\n", "a so-called **band structure**, that is the eigenvalues of ``H_k`` versus ``k``.\n", "In DFTK we achieve this using the following steps:\n", "\n", "Step 1: Build the 1D lattice. DFTK is mostly tailored for 3D problems.\n", "Therefore quantities related to the problem space are have a fixed\n", "dimension 3. The convention is that for 1D / 2D problems the\n", "trailing entries are always zero and ignored in the computation.\n", "For the lattice we therefore construct a 3x3 matrix with only one entry." ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "using DFTK\n", "\n", "lattice = zeros(3, 3)\n", "lattice[1, 1] = 20.;" ], "metadata": {}, "execution_count": 1 }, { "cell_type": "markdown", "source": [ "Step 2: Select a model. In this case we choose a free-electron model,\n", "which is the same as saying that there is only a Kinetic term\n", "(and no potential) in the model. The `n_electrons` is dummy here." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Model(custom, 1D):\n lattice (in Bohr) : [20 , 0 , 0 ]\n [0 , 0 , 0 ]\n [0 , 0 , 0 ]\n unit cell volume : 20 Bohr³\n\n num. electrons : 0\n spin polarization : none\n temperature : 0 Ha\n\n terms : Kinetic()" }, "metadata": {}, "execution_count": 2 } ], "cell_type": "code", "source": [ "model = Model(lattice; n_electrons=0, terms=[Kinetic()])" ], "metadata": {}, "execution_count": 2 }, { "cell_type": "markdown", "source": [ "Step 3: Define a plane-wave basis using this model and a cutoff ``E_\\text{cut}``\n", "of 300 Hartree. The ``k``-point grid is given as a regular grid in the BZ\n", "(a so-called **Monkhorst-Pack** grid). Here we select only one ``k``-point (1x1x1),\n", "see the note below for some details on this choice." ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "PlaneWaveBasis discretization:\n Ecut : 300.0 Ha\n fft_size : (320, 1, 1)\n kgrid type : Monkhorst-Pack\n kgrid : [1, 1, 1]\n num. irred. kpoints : 1\n\n Discretized Model(custom, 1D):\n lattice (in Bohr) : [20 , 0 , 0 ]\n [0 , 0 , 0 ]\n [0 , 0 , 0 ]\n unit cell volume : 20 Bohr³\n \n num. electrons : 0\n spin polarization : none\n temperature : 0 Ha\n \n terms : Kinetic()" }, "metadata": {}, "execution_count": 3 } ], "cell_type": "code", "source": [ "basis = PlaneWaveBasis(model; Ecut=300, kgrid=(1, 1, 1))" ], "metadata": {}, "execution_count": 3 }, { "cell_type": "markdown", "source": [ "Step 4: Plot the bands! Select a density of ``k``-points for the ``k``-grid to use\n", "for the bandstructure calculation, discretize the problem and diagonalize it.\n", "Afterwards plot the bands." ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing bands along kpath:\n", " -½ -> ½\n", "\rDiagonalising Hamiltonian kblocks: 52%|████████▎ | ETA: 0:00:00\u001b[K\rDiagonalising Hamiltonian kblocks: 100%|████████████████| Time: 0:00:00\u001b[K\n" ] }, { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=6}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 4 } ], "cell_type": "code", "source": [ "using Unitful\n", "using UnitfulAtomic\n", "using Plots\n", "\n", "plot_bandstructure(basis; n_bands=6, kline_density=100)" ], "metadata": {}, "execution_count": 4 }, { "cell_type": "markdown", "source": [ "!!! note \"Selection of k-point grids in `PlaneWaveBasis` construction\"\n", " You might wonder why we only selected a single ``k``-point (clearly a very crude\n", " and inaccurate approximation). In this example the `kgrid` parameter specified\n", " in the construction of the `PlaneWaveBasis`\n", " is not actually used for plotting the bands. It is only used when solving more\n", " involved models like density-functional theory (DFT) where the Hamiltonian is\n", " non-linear. In these cases before plotting the bands the self-consistent field\n", " equations (SCF) need to be solved first. This is typically done on\n", " a different ``k``-point grid than the grid used for the bands later on.\n", " In our case we don't need this extra step and therefore the `kgrid` value passed\n", " to `PlaneWaveBasis` is actually arbitrary." ], "metadata": {} }, { "cell_type": "markdown", "source": [ "## Adding potentials\n", "So far so good. But free electrons are actually a little boring,\n", "so let's add a potential interacting with the electrons.\n", "\n", "- The modified problem we will look at consists of diagonalizing\n", " $$\n", " H_k = \\frac12 (-i \\nabla + k)^2 + V\n", " $$\n", " for all ``k \\in B`` with a periodic potential ``V`` interacting with the electrons.\n", "\n", "- A number of \"standard\" potentials are readily implemented in DFTK and\n", " can be assembled using the `terms` kwarg of the model.\n", " This allows to seamlessly construct\n", "\n", " * density-functial theory (DFT) models for treating electronic structures\n", " (see the Tutorial).\n", " * Gross-Pitaevskii models for bosonic systems\n", " (see Gross-Pitaevskii equation in one dimension)\n", " * even some more unusual cases like anyonic models.\n", "\n", "In this tutorial we will go a little more low-level and directly provide\n", "an analytic potential describing the interaction with the electrons to DFTK.\n", "\n", "First we define a custom Gaussian potential as a new \"element\" inside DFTK:" ], "metadata": {} }, { "outputs": [], "cell_type": "code", "source": [ "struct ElementGaussian <: DFTK.Element\n", " α # Prefactor\n", " L # Extend\n", "end\n", "\n", "# Some default values\n", "ElementGaussian() = ElementGaussian(0.3, 10.0)\n", "\n", "# Real-space representation of a Gaussian\n", "function DFTK.local_potential_real(el::ElementGaussian, r::Real)\n", " -el.α / (√(2π) * el.L) * exp(- (r / el.L)^2 / 2)\n", "end\n", "\n", "# Fourier-space representation of the Gaussian\n", "function DFTK.local_potential_fourier(el::ElementGaussian, q::Real)\n", " # = ∫ -α exp(-(r/L)^2 exp(-ir⋅q) dr\n", " -el.α * exp(- (q * el.L)^2 / 2)\n", "end" ], "metadata": {}, "execution_count": 5 }, { "cell_type": "markdown", "source": [ "A single potential looks like:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=1}", "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deXwTdf4/8PdM0ruFttArvWhLKRQEuQqVo/TgLggiKKKiICq4Lt547P5WWTxQF7/oekBBEBVUwAO5KS0gVzmF5T5KzyQthZY2aXpk5vP7I2u2lhZammSSzOv58I9k+CR5x5nOK5/PZw6OMUYAAAByxUtdAAAAgJQQhAAAIGsIQgAAkDUEIQAAyBqCEAAAZA1BCAAAsoYgBAAAWUMQAgCArCEIAQBA1hCEAAAga04YhGVlZXl5eVJXIXeCIEhdgtxhFUhOFEVcw1Jyoijeto0TBuFPP/20YMECqauQu+rqaqlLkDusAsnV1dXh54i0RFE0GAy3beaEQQgAANByCEIAAJA1BCEAAMgaghAAAGRNaZF30el0P/zwQ0VFxejRo7t169Zkmy1btpw8ebJXr16jRo0yLywtLV23bp0gCBMnTgwLCzMvz87OPnz4cJcuXcaPH8/z/03r8vLydevWVVdXp6enx8TEWKRyAACQOQv0CGtqahITE3/66SetVnvPPfdkZ2ff3Oall1568cUXdTrd888//8orr5gWqtXqXr16HTly5Ny5c7169bp48aJp+XvvvTdjxoyqqqr58+fPnDnTtLCioqJfv36ZmZn5+fn9+vU7evRo2ysHAAAg1mYrV67s06ePIAiMsY8//jg5OblRA61W6+7unpeXxxi7cuWKh4dHaWkpY+z1119/4IEHTG2eeeaZp59+mjGm0+nat29/9OhRxlhZWZmnp+fFixcZY4sWLUpLSzM1fvPNNydNmtRcPUuXLp05c2bbvxe0RWVlpdQlyB1WgeQMBkN9fb3UVciaIAg6ne62zSzQI9y2bVt6erppADM9PX3Xrl21tbUNG+zatSsuLi4yMpKIOnXqFBsbu2vXLtMLx40bZ2ozbty4bdu2EVFOTo63t3efPn2IqEOHDgMHDtyxY4f5Uxo1BgAAaCMLzBGq1eohQ4aYHqtUKsaYRqPp1KlTwwYhISHmpyEhIWq1moiKi4vNy00LGWPNNVar1cHBweaFOp2usrKyXbt2TZa0hes14P1M02NPT89+/fopOPKxzHzon3i7kEsrf0vwHLVzYUTkqeTc+IZPyU1BPFE7FyIiLxdydeQjmWpra11dXaWuQtawCiRXW1srCIKDnlN/o45ERkSkM5KRERHp66lOJCKqEbgagYioVqRqIyOiepH0Ru7Wb1hRR9a7zI6Rkc7YxHLG2FOdWazXbV5ugXDgOI798f1MDziOa66BqY2pQaMX3rzwFo1v/pSG3ASDr8t/H3u5cr4uJDCqqG/b92xKUTXV3/7yPX8iMqqs54lIb2R1YsOnVCeQSFRZT/THNsdz1N6ViMhTQa58w6fMVUEKjtq5cEQU5MEivCjSi0V4U6Q319ENV3UCgD+5UUdF1VSg5wr1VKSnQj0V6KmkhhPE/+12iKj8j+G89q7Ec0RE3kpSckQNfp27K5i7gojIjSdPJU9ELjx5KW+z2/F1peb32W2l5Mi8z2+IMVK24FMtEIQhISFardb0WKPRcBxn7rrd3ICItFqtSqUiIpVK1fCFISEhHMfd3Hjw4ME3f4q3t7ePj09zJaXwF5Y9/0rbv5rkBEaVdUR/pKYg/hGTRqoTSGBUWc8YI62B8qpYzjXK17H8KlYjcJ18uE7eFOnDRXpznbwp0puL9OGCPWxXeV1dnZubm+0+D26CVSA5xphSqVQqrTAY1Yx6kYr0rFBPF6/qv3jtydq6+hqBDAKZOnDuij/956Hk4vj/hpPyj7Bo7RCXiUBUebs2t23QEnPmzBk2bFjL24uiaDA01VX8MwusoZEjR3788cdvvvkmz/MbN24cNmyY6c+voKDA29vb398/OTn5sccey8/Pj4yMzMvLu3jxYlJSkumFv/7667Rp04ho48aNI0eOJKIBAwbodLpjx4716dPn2rVrBw8eXLJkianxxo0bn3vuuYaNnZ6CIz83IiI/t+Z+1DSxvEYgdTXLraTcKpZbxU5dJ41BzK0kdTVTeXLR7SjEg1N5UbQPF+3DRbejSG9OYbVfagBgceW1pK5mmur//o2r9aQxsNxKytexdq4U7cOF1Fy7uH97xpLPpa7Ukr7++usjR460KghbyAJBOGXKlH/961/jx4+Pj49ftmzZ+vXrTcunTp06ceLEl156KTAw8Jlnnhk1atSkSZPWr1//7LPPBgQEENGcOXP69ev3+OOPe3h4/PDDDwcOHCAiLy+vV199ddKkSdOmTdu0adMDDzzQuXNnInr88cc//fTTKVOmhIaGrly5MjMzs+2VOyt3hSnkqFFMVhspT8fyqihfx/J1LEvNVujEfB27XksR3lyUN6Wo+Hsjua6+SEUAO3Klim3IZyevs0I9K9RTvo55Kijcm4vw5iK9KdyLu9ufwr35Tt4U7PnfH7VFRYpEL4/JkydLXbslHTp0yErvbIEg9PDwOHDgwLp168rLyw8cOBAXF2da/t5775kPe/nwww+HDx/+n//8Z/HixSNGjDAtDA0NPXny5I8//mg0Gk+ePGkaLyWiV199NTEx8fDhw/PnzzcfKerr63vkyJH169dXV1cfO3YsKiqq7ZXLjaeS4n25eF9qFJA1AuXr2KVK2lIojtgieijp3kju3kg+MZDjkYkAUmBEx8rYz/nihnxWamDjIvl7grhwbz7ciyK9OU/bjbbKwp+OTHEOGRkZOTk5y5Ytk7oQR3W6nG0sYL8WiOdvsNFh/LhIblQY79PURPQtVFVV3WISF2wAq0ByNTU1rZ0jFBgdKGFrr4g/5TEXntIjuHER/LAQTtnKqbuioqLExMTCwsLWvcy+vfzyy0FBQS+99FLLX2K6DZOX120OG8XvCmisux/X3Y+b14sv0LGtRWzVRXHWb0L/AC49nJ8SzYd4Sl0fgNPRGylLLa7NZZsKxSgfLj2C2zpaEY9JCltBEEKzIry5J7tyT3bly2tpS5H4Sz5781h9T3/u//VRpKrwJwpgAcV69s/j4ne54tBgfnwk9+EAl0AbHt0NJghCuD0/N3oohn8ohupExc954tN7hbj29P4A/GIFuHPXa+m9E8KX58UnuvK5D7j441QX6TjyxUvA5lx5mhLNn7lfOT6ST91kfHSXoDVIXROAo9EbaeEJseva+ht1dHKS8r3+CqSgtNAjhFZz4enJrvzkKH7hSaHHuvonuvJ/u1vh3cqjaQBkqF6kFRfEt46Jg4K4feOUse1lPaZy6dKlvXv3XrhwYdCgQWPHjpWwEgQh3CE/N3qvv+KZeP6Nw2K3dca/9+ZnxvE4MR+gSSKj9Xnia4fFKB/aOFLRuwP+VOijjz5Sq9WXL1+uq6tDEIIDC/fiVg1THL7KXswRPj4tvp+gGBOOv3CAP8ksZi/lCJ5KWjZEMSxEdn8g+/fv5zguMTHR9PTgwYNGo3Hw4MGffvopET355JOSVkeEOUKwiP4B3O505Zt9+L8eEMZtN56tcLaTUwHuTKGeDdlofPmQ8G5/xf7xShmmIBHpdLoZM2aYz1mfPXt2eXm5tCU1gh4hWAZHdH8UPz6S//SMOGyTcUKocvEQMl2iHkCedmq4WQfoxbv4F+6yi2s0Td8tqKut/iN1dBj/wl1/6mINHz5cFMW9e/cOGTJk//79ZWVlY8aMsXYZrYIgBEty5en5Hvz0WP6p3ULSRuOPaYpQL3vYAwDYFCN6+7j4+Vn+2yQuOdReBt6e7Mq34E4MbRV601VcOI6bNWvW0qVLhwwZkpGR8cQTTygU9vUbGUEIlufvRl8m1n+Z79rvZ+P3qcqhwchCkJHKenpst1BWw/aOFsKtcUPwOzUoSLK/xJkzZ8bExFy6dGn9+vWnTp2Sqozm2MtPFXA+c3vwK5KUU3Yav7zQypsXAzis49dY7x+NAe60c4wyBNeI+YOfn9+4ceMmTZqUnJwcEREhdTmNIQjBikaFcbvGKt8/IT53UDAiDcHZfXVRHLXV+H4Cv2Sw4s7ucOvEZs+effLkyaeeesq8ZNGiRTExMd99992yZctiYmKWLl0qVW121G0Hp9TVlzt4r/KhbOPYbcafhitx+xhwVkvPie/8Lu5JV8bJ+zT55tTU1ERGRja8p/rs2bMff/xx81MPD8l60PjRAlbn60q/jlCGeHITdhhrBKmrAbCCjHPiO7+LWWMVSMGb1dfXf/3113/961/nzZvX8DAZDw8Pvwbc3d2lqhBBCLag4Gj5UEWQB3fvdmQhOJsVF8QFv4uZYxTRPkjBJhiNxtOnT8+dO/fpp5+WupamYaAKbETB0cokxSO7hIk7jD8PV7rZ1+HTAHdo5QXxb0fEnWMUndshBZvm4eHx3nvvSV3FraBHCLaj4OjrYYr2rtyDWUI9jp0Bx7fygvj6ESFzjKIrbknmyBCEYFOmLBSJpmbjOFJwbN9dFt84ImaOUXZDCjo4BCHYmgtPP6Qoqo1sxh4B1yQFB7XmsvjSITFrLG5P7QwQhCABNwX9mKY8d4P96z/oFYLjOVbG5h4Qto3CMaJOAgfLgDTcFbQ+TZHws/EuP25kGPYm4DDKa2lKlvDpIEV3P/vdbt3d3ZVKZb9+/aQuxJKKiopeffVVa7wzghAkE+7FrUtT3p9p3DdeiePOwSGIjB7eZZwQyU2OsuvhtI4dO+7atausrEzqQiwsLi7OGm+LIAQpDQri5vVS3LdD2D8eF50BBzD/uFBRR+/2d4CzfyIjIyMjI6WuwjHY9Y8akIPnevC9O3JP7sVp9mDvMotZxjm2NhXXEXU2WJ8gvc8HKc5VsE9O48AZsF8FOvbILuN3KQqVJ4bxnQ2CEKRnOnDm3RPCbg3OpwB7VCPQpEzh1V6KIbi5pjNCEIJdiPTmVgxVPrJLuFEndSkAN3l2vxDTjpvbAztM54T1CvZiZBg3NoJ75RAmC8G+fHVR3F/Clg1xgANk4M4gCMGOLExQbC1iWWoMkIK9KDHQK4eENSkKbxepSwGrQRCCHWnnQl8OVTzxm6Crl7oUACIiejFHeCyW7+mPqUFnhiAE+5Kq4oYGc387igFSkN4uDdurZX/vjUFRJ4cgBLuzOFHx4xW2V4sBUpBSrUBP7xU+uYfHoKjTQxCC3WnvSp8O4p/4TcC97EFCC34Xevpz4yKwk3R+WMdgj8ZF8D39ufnHkIQgjfM32JKz4kcDsYeUBaxmsFOfDVKsvCgeKcMAKdgaI5q9V/hHH0WoF46RkQUEIdipju60MEHxzD7cvBdsbcUFUW+k2d2we5QLrGmwXw935hUcrc3FNUjBdq7V0huHhS8GK3j0BmUDQQj2iyN6L0Hx6mGxFnOFYCsvHBSmdeZ7d0AMygiCEOza0GAu3peWnkOnEGxhl4bt1rA3++DEQXlBEIK9ey9B8c7vQiWuNQPW99phYWECThyUHQQh2LseftyYcP79ExgeBevaVMh09TQ5CntF2cEqBwfwz378F2fFQj0OIAVrYURvHRP+2Y/HMTIyhCAEB6Dy5J7sys8/hplCsJaf8kSB0b2R2CXKEdY6OIbX7lZsKhRPl6NTCJYnMpp/TPxnXwV6g/KEIATH4ONCr/RUvHYYnUKwvB9yRVcFjQ5HDsoUghAcxpx4/kwFbtsLFiYwmn9cfLc/uoPyhSAEh+HK0z/78q8fwUXXwJK+vSQGelCqCjkoXwhCcCQPxvAGI20vQhSCZdSLNP+4OL8vzqCXNQQhOBKO6OWe/If/wTmFYBkrL4jRPjQ0GN1BWUMQgoN5IJq/eIOO4fZM0GZ1Ir17At1BQBCCo3HhaW4P/sP/4PBRaKuMc2J3PxoYiO6g3CEIwfE8EcdnFot5VegUwp2rFejdE+JbuL42IAjBEfm40BNx/Een0CmEO7fmsniXH/XpiO4gIAjBMc3tofjmklhWI3Ud4LA+PSPO7YHuIBAhCMFBBXnQfZ34L86iUwh3Yo+W3ainEaHoDgIRghAc10s9+U/PCAaj1HWAA/r4tDi3O240Af+FIARHFdeeGxDIr7qETiG0ToGOZanFR2Kx94P/wqYADuzlnvz7J0Rccg1a5dMz4mOxfDvchh7+gCAEBzYoiAv2pF/y0SmEljIYacUF8Zl47Prgf5QWeZf6+vpVq1ZdvHixb9++999/P8c1MfSenZ2dmZkZEBDw+OOPt2/f3rSwqqpqxYoVJSUlycnJaWlppoXnz5/fvn27RqPp3Lnz1KlTPTw8iEin061evdr8bgkJCXfffbdFigeH9tJd/LsnxPs6Yb8GLfL1JTExiI9ph+lB+B/L7D4eeuihlStXBgUFzZ8//9VXX725wTfffDN16lQ/P7/9+/cPHjy4vr6eiARBSEpKys7O9vf3nz59+vLly4nIaDQOGjTo9OnTvr6+q1atGjhwYHV1NRFdu3btL3/5y9E/aLVai1QOju7eSP5GHe3VYngUbo8RfXJafBbdQWiEtdmZM2c8PT0rKioYYxcuXPD09Lx+/XrDBqIodu3ade3atYwxQRC6d+/+/fffM8Z++eWXzp07G41GxtjGjRujo6MFQRBFUa/Xm15YW1sbFBS0efNmxlheXp6Pj09L6lm6dOnMmTPb/r2gLSorK232WZ+cFqZmGW32cY7ClqvAUewsFruvqxdt9XEGg6G+vt5WnwZNEARBp9PdtpkFfhnt3r17wIABptHO2NjYkJCQnJychg00Gs25c+dGjhxJRDzPDx8+fNeuXUSUnZ2dlpamUCiIKC0tLS8vLz8/n+M4T09P0wt5nq+vrzc/NRqNn3766bJlyy5dutT2ssFpPNKZ31KIk+vh9hafFv/aHSdNQGMWmCPUaDSBgYHmp0FBQRqNpmEDrVbr4eHh4+NjbnDw4EHTC+Pi4kwL3dzc/Pz81Gp1VFSU+YVvvfVWly5dhgwZQkQ8zw8ZMuTKlSulpaXPPffckiVLpk2b1lxJOTk5TzzxhOlxSEjIG2+80favCa1SU1Pj4mKjw/LciEaH8ivP1v6lGwZI/8eWq8Ah5Oton5b/MlGssdVvppqaGqVSqVRa5lAMuAOiKIri7Q+ma+kacnd3v3nhxx9//OSTTyqVyoafZDQaG614pVIpCELDBqa/z5tf2PDvdvny5atWrdqzZw/P80QUHh6+bds20z+NGjVq7ty5twhCf3//vn37mh+bOp1gSwqFwpb/25+Io2cOcHN72OwDHYCNV4H9++wCzehC7dxs9/9E8QebfSI0wnGcJYNQp9PdvNC0glUq1datW80L1Wq1SqVq2CwkJKSurq6srKxjx46mBiEhIaYXFhcXm9+/srLS/MKvv/76H//4R1ZWVmRk5M2fO3To0LKysoqKCl9f3yarjY2NnT17dgu/GliDi4uLLbsjKWHEccYj5YpE3FLnDzZeBXZOV0/fXK4/MkHp4mK7LUQQBPQIpSWKotF4+6tPtXSOUNkU02kSI0eOPHbsWGFhIRHl5ORUV1ffc889RFRQUHD27FkiCggIGDBgwPr164nIYDBs3rw5PT2diMaOHbtt2za9Xk9EP/74Y69evcLCwoho3bp18+bN27ZtW5cuXcwF1NXVmR9v2bJFpVI1l4IgTzPi+IxzOKEQmrbyopii4qN88DsJmmCBnyphYWF/+ctfkpOTR4wY8csvv8yfP9905t+SJUtOnjz566+/EtGCBQseeOCBI0eOnDhxolu3bsOHDyeipKSkfv36DR06tG/fvj/++OOqVauIqLKycurUqVFRUc8995zp/f/617+OGzfugw8+2LRpU9euXbVa7b59+77++uu2Vw7OZHosH7e2/qM6RXtXqUsB+5NxTlyciCFKaBrHmGWOL9i/f//58+f79u3bs2dP05L8/Hy9Xh8fH29+umvXruDgYPORokQkiuLOnTuLi4uHDh0aHR1NRPX19bt37274zl27dg0LC9PpdDk5OQUFBf7+/oMGDTKNsjYpIyMjJydn2bJlFvlecGeqqqrMh0fZzJSdQoqKe7obzhIjkmgV2Kfj19h9mULuA0ob9wdxsIzkRFE0GAxeXl63bmaxILQfCEJ7IMleeHsxeyVH+P0+7HeIEIQNPHdQ8HWlN21+M3oEoeRaGIT47QzOY3gopzPSsTJn+20HbWEU6fvL4iOdsa+DZmHjAOfBET0Wyy87j0Nm4H82FYqx7TlcXBRuAUEITmVmHP9DrqjH3XrhD19dZNNx60G4JWwf4FRCPOmeIH5tLjqFQER0vZay1OKkKOzo4FawfYCzmdWVy8DoKBAR0erLYnoE74szauCWEITgbMaE80V6Ol2OQ2aAvrogYlwUbgubCDgbBUePxnI4ZAbOVDCNgVJUOEwGbgNBCE7o8S78msuiEVEob19dEB/pzCmQg3A7CEJwQtE+XCcfLkuD0VH5EhmtucwexbgotAC2EnBOD0bz311Gl1C+thezEE/q5ov+INweghCc0wPR/M/5Yo1w+5bglL66iMNkoKWwoYBzCvGkXv7ctiJ0CuWosp62FopTorF/gxbBhgJO68EY/rtcTBPK0feXxbRQvqO71HWAg0AQgtOaHMVvLRR19VLXATaHcVFoFWwr4LT83SgxiNtYgNFReblUyS5VspFhOEwGWgpBCM7swWiMjsrO97lsSjTvgn0btBg2FnBmEzvxuzTi9Vqp6wAbWpsr3o+rbENrYHMBZ+bjQmmh/M/5GB2Vi9wqVmJgg4IwLgqtgCAEJ/dgNIcz6+Xjh1x2XxSPy6pBqyAIwcmlR/BHy1iJQeo6wCbWXxEndcJuDVoHWww4OXcFjQnn111Bp9D55VWxPB0bGoz+ILQOghCc34Mx/He4Z70MrM9jEzvxSuzVoJWwyYDzGxHKnatg+TqcR+HkMC4KdwYbDTg/F54mduLXXkEQOrNiPTt/gyXjNrzQeghCkAXclcnprc9j4yN5V+zSoPWw1YAsJIVw6mp2qRKdQqe1/op4Xyd0B+FOIAhBFhQcjY/gN+QjCJ1TiYFOXmfDQ7FDgzuB7QbkYnwkvwEX4HZS66+IYyN4d4XUdYBjQhCCXKSquBPXWFmN1HWAFazPEydhXBTuFIIQ5MJNQamh/OZCdAqdTVkNHS1jI8OwN4M7hE0HZGR8BLehANOEzuanPHFUGO+plLoOcFgIQpCR9Ah+Z7FYI0hdB1jU+jxxUhTGReHOIQhBRvzdqKc/l6VGp9B5VNTRwVI2GuOi0AbYekBe7o3kN+D2hE7k5zwxVcV7u0hdBzgyBCHIy72R3K8FDF1Cp4FxUWg7BCHIS0w7zteVDl9FFDqDaiPt0bD0COzHoE2wAYHs3BvJYXTUOWRrWN+OXDuMi0LbIAhBdsZH8jiJwjlsLRRHhWMnBm2FbQhkJyGAK6thuVXIQoe3tYiNCsMEIbQVghBkh+dobDguwO3wrlQxvZHd5Y8ghLZCEIIc4SQKJ7CpkI0O4xGD0HYIQpCjVBV3tIxdq5W6DmiDbUXiqHDkIFgAghDkyENJKSp+Cy7A7bBqBfpNy1JV2IOBBWAzApkaH8lhmtBx7dGyHn6cv5vUdYBTQBCCTI2P5HcUi7W4ALdj2lYk4r5LYCnYkkCmOrhRD39ulwadQoe0tYiNxgQhWAiCEORrfAS/oQDThI6nSM9KDaxPBwQhWAaCEORrYiful3xcgNvxbC5kI8N4nDkBloIgBPnq3I7zcaFjZYhCB7OtiI3EBWXAchCEIGvjI7hfMTrqUOpFytaII0Kx7wKLwcYEsjY6nN9WhB6hIzlQymJ8uEAPqesAJ4IgBFm7J4g7W4FLzDiSrYUijhcFy0IQgqy58jQ0mN9ZjNFRh7G1iOEMQrAsbE8gdyPDOIyOOgqtgfJ1bEAAeoRgSQhCkLsx4dy2YpxE4Ri2FYmpKl6J/RZYFDYokLsoH85dQafLEYUOYFsRwx0nwOIQhAAYHXUMIqPMYnF4KIIQLAxBCEAjQ7ltRThext4duspCPLlwLwQhWBiCEIBSQ/mcUlZtlLoOuKWtReIoXFAGrABBCEBeSurTkdujxeioXdtWxEaFY5cFlqe0yLvk5+d//vnnlZWV6enpY8aMublBbW3t559/fvbs2fj4+NmzZ7u6upqWnzx5csWKFYIgTJs2bcCAAaaF//73v/V6velxly5dJk6caHp84cKFjIwMg8Fw//33Dxs2zCKVA5iMDOO3FYmjwhRSFwJNK6+lsxXsnkD0CMHyLPDzqqKiIjExsa6urk+fPjNmzPj+++9vbjN9+vQNGzYMGTLk559/fvzxx00Lz507N3jw4MDAwJiYmBEjRhw+fNi0fMGCBZcuXSovLy8vLzcnolqtTkxMdHd379Gjx3333bd9+/a2Vw5gNjKM24rjZezYtiJxWAjvhh8qYAUW6BF+9dVX3bp1W7RoERG5u7svXLjwgQceaNggNzf3559/VqvV/v7+Y8aMUalUb7/9dqdOnT755JNp06a99tprRFRWVrZo0aI1a9aYXvLCCy9069at4ZssWbIkJSXln//8JxHV1dW9//77I0aMaHvxACZ3d+Bu1LErVSzKB30Oe7QVd5wAq7FAj3Dfvn0pKSmmxykpKcePH6+urm7Y4MCBAz179vT39ycif3//u+6668CBAze/cN++feaXLF269K233tq8eXNzn9KwMUDbcUSpKj6zGJ1Ce8SItheLCEKwkhb1CEVRNBgMNy/39PTkOE6r1aamppqWBAQEEJFGo4mJiTE302q1HTt2ND8NDAzUaDSmZublAQEBWq2WMcZxXFpamp+fX319/dNPP52Wlvbll182epOAgICampry8nI/P78mC/7tt98mTZpkehwWFvbuu++25GuCBRkMBoXCwYaxkgP5Xwv4aRFOcvCoI66C5pwo57wVimCF4c+/se1dTU2NUqlUKi1zKAbcAVEUWQsuG9WiNbR///709PSblx88eLBr165ubm51dXWmJaYH7u7uDZu5ubnV19ebn9bW1poaNFxeV1fn5ubGcRwRffPNN6aFs2bNiomJmTdvXlxc3M2f4ubm1lzBkVlMORgAACAASURBVJGR5uHZ9u3bN6oHbKC+vt7h/rend6IXjwgKV3cXpzgy0RFXQXOyr7IxEcwRvw6CUFqiKNbW3v7mMi1aQ4MHD66oqGjuX0NDQ4uKikyPCwsLlUplUFBQcw2IqKioKDQ0lIjCwsIavtC0sKGIiIjAwMCCgoK4uLhGn+Lv7+/p6dlcSREREVOmTGnJVwMr4Xme5x0sTwI9KbqdeOQaNyjIGYbgHHEVNGdbkfG1uxU872Drhf+D1IXAbVhgDU2YMOGnn34yjZ2uWbMmPT3d9Ato7969ly9fJqLU1NTi4uJjx44R0dGjRzUajWkodcKECWvWrDH1W9esWTNhwgQi0uv1RuN/x6b27NlTVlbWvXt3U+O1a9ea/sncGMCycIkZO1RZT79fY0ODHSwFwYFYoM8+bty4pUuXDhgwIDo6+uDBgzt27DAtnzdv3sSJE1966aV27dq98847Y8aMSUpK2r1797vvvuvt7U1ETz311LfffjtkyBB3d/eCgoLFixcT0f79+x999NG+ffvW1NQcOnRo0aJFKpWKiB566KEVK1YMHDgwODj4999/37NnT9srB2hkZBj/yiFhfl+p64AGMovFe4I4T4wvgtVwLZlIvC1RFA8dOnTt2rXBgwe3b9/etDAvL8/Hx6dDhw6mp5cuXTKdUN/wOJq6urp9+/YZjUZTHJoWXrx48eLFi25ubj179jQdfWMiCML+/fv1ev3gwYNNUdqkjIyMnJycZcuWtf17wR2rqqry8fGRuopWqxcp6Nv685NdAhxvNqoxB10FN3tqrxDvy83t4XgDjDhYRnKmIz29vLxu3cwya4jn+YEDBzZa2KlTp4ZPO3fu3Llz50ZtXF1dk5OTGy2MjY2NjY29+VMUCsWQIUPaWitA81z+uGH9gzGOt9t1VtuK2At3YXWAFWHzAviTkWHcNpxNaDdOlzOOo7j2mCAEK0IQAvzJqDBua6GIJLQTW4vYaJxHD1aGIAT4kygfztuFO3UdUWgXthXhgjJgdQhCgMZGYXTUPlQbKaeUpaiwmwLrwhYG0JjplkxSVwGUrWH9AjgfF6nrAGeHIARobFgIl1PKDE5yzVEHtrVQHBmGfRRYHTYygMa8XainP7evBKOjEttaxEZhghCsD0EI0IRUFZelxuiolK5UMb2R3eWPIASrQxACNCFFxe9Uo0copU2FbEy4o11mGxwTghCgCYlB3LkKVlEndR0ytrUQJ06AjSAIAZrgytPAQG6PBqOj0qgVaG8JS8WJE2AT2M4Ampai4rM0GB2Vxh4t6+HH+Td7720AS0IQAjQtRcXtxGn1EtlWJI7CiRNgK9jUAJrWpyOnrmZag9R1yNLWIoYJQrAZBCFA0xQcDQ3ms3EShc2VGkhdzfp0RBCCjSAIAZqVouKycBKFzWWpxaRgXoEcBFtBEAI0KzWU24FpQpvL1rBkFWIQbAdBCNCseF/OyOhKFbLQprI1LDkEQQi2gyAEuJVhIRgdtSl1Nbtew7r7IQjBdhCEALeCaUIb26lmySoel1YDW0IQAtxKmorbqRaRhDaTrca4KNgaghDgViK8OS8ld6YcUWgjOFIGbA9BCHAbqaEc7kRhGwU6ZjCyrr4IQrApBCHAbaTgeBlb2almKSrMD4KtIQgBbiNFxe/WiAKi0PowQQiSQBAC3EagB4V7c0fLkIRWt1uLCUKQAIIQ4PZScRKF9V2qZEaROrdDEIKtIQgBbi9FxWXh6ttWlq1mqegOghQQhAC3NyyEP1jKagSp63BqOHECpIIgBLg9HxeK9+MOlmJ01Ip24xKjIBEEIUCLpGJ01JrOVTAlT518EIQgAQQhQIukqHicVm892RpMEIJkEIQALTIoiPvPdVZZL3UdTipbjQlCkAyCEKBF3BXUP4D7TYtOoeUxot1acRgmCEEiCEKAlhoWwu/WYJrQ8k5dZ+1cuHAvBCFIA0EI0FLJIVw2pgmtACdOgLQQhAAtlRDInb/BKuqkrsPp4BKjIC0EIUBLufI0IJDbi2lCixIZ/aYVkxCEIB0EIUArDAvhd2Ga0KJOXGeBHpzKE0EIkkEQArRCcgiXrUGP0JJw4gRIDkEI0AoJAdzlSlZeK3UdTiRbI2KCEKSFIARoBSVPAwK437QYHbUMgdG+EjY0GDsikBK2P4DWGabid2F01EKOlbEwLy7QQ+o6QN4QhACtg2lCC8rGHSfADiAIAVqnX0fuShW7hmlCS8hWizhSBiSHIARoHSVPiYGYJrQAo0gHStkQTBCC1LAJArTasBBME1rA4TIW7cN1cJO6DpA9BCFAqyWrcNFRC8jCGYRgHxCEAK3WpwOXr2NlNVLX4eCy1WJyCHZBID1shQCtpuRpUBC3B9OEbVAn0qGrbHAweoQgPQQhwJ3ANGEbHSxlXX05X1ep6wBAEALcmWQVhyBsi2w1S8EEIdgHBCHAnejdgSvSs1KD1HU4rGwNJgjBXmBDBLgTCg7ThHeuRqBjZeyeIPQIwS4gCAHuEKYJ79j+EnaXP+fjInUdAESEIAS4Y8khmCa8Q7j1EtgVBCHAHbq7A6epZiWYJmy9bDVLVmHnA/YC2yLAHeI5GhzM79ZgmrB1qo104jpLDESPEOwFghDgzg3D6Gjr7S1hfTpwnkqp6wD4A4IQ4M5hmvAO4NZLYG8s86vs+vXrCxcuvHz58t133/3iiy96eDS+4TRjLCMjY8eOHQEBAS+99FJ0dLRpeV5e3gcffFBSUpKamvrUU0/xPE9Ef/vb34xGo/m1AwcOnDBhQkVFxXvvvWdeOGrUqGHDhlmkeIA71tOfKzUwdTVTeWLP3lLZGrawv0LqKgD+xzI9wvHjxxcWFs6YMWPPnj1PPfXUzQ0+/PDDjz766JFHHvH19R08eLBOpyOimpqapKQkDw+P6dOnf/HFF++8846pcVRUVPQfPvvss4qKCiK6cePG4sWLzct9fX0tUjlAW/AcDQnm96BT2GJV9XS6nA3ABCHYFdZmBw8e9PX1ra2tZYxptVpXV9fi4uKGDYxGY2ho6Pbt201PExMTly5dyhhbtWpV7969TQt/++23wMDAurq6hi/cu3evt7d3VVUVYywvL8/Hx6cl9SxdunTmzJlt/lrQJpWVlVKXYCOLTwlP/maUuoom2Ocq2FQgpmyql7oKGzEYDPX1cvmy9kkQBJ1Od9tmFugRHj58OCEhwdXVlYiCgoKio6OPHTvWsIFarS4uLh4yZIjp6ZAhQw4fPkxEhw4dGjx4sGlhYmLi9evX8/LyGr7wyy+/nDp1qre3t+lpXV3d888///LLL2/fvr3tZQNYBI6XaZUs3HoJ7E9L5wjz8/NvXtihQwdvb++SkpIOHTqYF3bs2FGr1TZsptVqvby83N3dza86c+YMEZWUlHTv3t20UKFQ+Pn5abXa2NhY0xKdTrd27Vpz5rm5uT3xxBPdunUrKSmZNm3aCy+88NprrzVXbVZWVkpKiulxRETEv//97xZ+TbAUvV7PcbIY/opypes1rhdKdSpPqUv5M/tcBTuLXT/oY9TpZHHOSU1NjVKpVCpxgKxkRFFsyV9BS9eQOVcamj9//rRp0zw9PWtra80LDQaDl5dXw2ZeXl6mgVNTQQaDwdTJu/ULv//++9DQ0IEDB5qeBgcHm/MsISFh0qRJ8+bNMx1cc7P4+PjnnnvO9Njb29vcpwSbYYzJ5397kko4XOk5LdC+Ojp2uAoq6uhyVf3QCE9X+/pfZS3KP0hdiHyJomgw3P6aFy1dQ5cvX27un8LCwtatW2f+1IKCgvDw8IYNVCqVKIrFxcVhYWFElJ+fb3oQFhaWm5tralNWVqbX603LTZYvXz5r1qwmPzE+Pl6v1+t0unbt2jXZIDg4OC0trYVfDaCNkkO4bA2b1lnqOuzebo14TxAnkxQEB2KBTTI9Pf3cuXMnTpwgok2bNrm5uZm6cceOHcvMzCQiX1/ftLS0FStWEFFZWdnGjRsnT55MRJMnT966datpHHXlypVDhw4NDAw0vef58+ePHj368MMPmz9Fq9UKgkBEjLGlS5d27dq1uRQEsLFkFZetxjTh7WVrGCYIwQ5ZoM/u5+f3/vvvp6am9urV68SJE8uXLzcNBaxfv/7kyZOmntn7778/ZsyYzMzMS5cuTZkyJSEhgYh69er1+OOP9+7dOy4u7sKFCxs2bDC/57Jly9LT0825SERff/31hx9+GBcXp1ariWj16tVtrxzAIrr5cnojK9CxCG+7m5OzK7vUbMlgBCHYHY4xy/yS1Wq1V65c6dq1q5+fn2mJXq83Go3t27c3PTUYDL///ntwcHBUVFTDF+bn56vV6rvvvrvhafhVVVUuLi7m42tMCgoKioqKOnToEBMTc4th94yMjJycnGXLllnke8Gdqaqq8vHxkboK23kwSxgTzj0aa0d7eXtbBddqKeb7+rKHXZR29D/JunCwjORMc4SNDlu5mcXWUHBwcHBwcMMljT7bw8MjMTHx5hdGRkZGRkY2WtjkH3BERERERESbKwWwvGEhXLaGPRordR12LFstDg7i5JOC4ECwVQJYQLKKy8I04S1la3DrJbBT2C4BLCCuPScwulKFLGxWtprhZrxgnxCEAJaRFMxl4xIzzSg1kNbAenVAEII9QhACWAZOoriFLLWYFMwrkINglxCEAJaRHIJpwmZlaxjuQQh2C0EIYBkx7TgXni7eQBY2IQsThGDHEIQAFpMUgmnCJqir2Y061sMfQQh2CkEIYDHJuCVTU3aq2bAQHjEIdgtBCGAxKSouSy0iCRvJVmOCEOwaghDAYiK8OQ8ld74CUfgn2RpMEIJdQxACWFIypgn/7EoVqxVYnC+CEOwXghDAknA2YSOmWy8hBsGeIQgBLClVxe3SYJrwfzBBCPYPQQhgSSpPrr0rd7ocUfhfuzBBCHYPQQhgYRgdNbtwg3FEMe0QhGDXEIQAFoazCc2yNSwF46Jg9xCEABY2LITfrRExT0iYIAQHgSAEsLAQTwrw4E5cl3sSMqJdGnEYJgjB7iEIASwvRcXtlP004Zly5qXkIr0RhGDvEIQAlpeq4nYWi1JXITFMEIKjQBACWF6Kit9fwmoFqeuQFCYIwVEgCAEsz9eV4ny5g6XyHR1lRHu0YlIwghAcAIIQwCrSVNxOtXxHR09cYx3cuFAvBCE4AAQhgFWkhvJyPl5mRzEbHooUBMeAIASwikFB3H+us8p6qeuQSGaxmIogBAeBIASwCncFDQjkdmvkODpaJ9LBUpYUjN0LOAZsqQDWkqqS6ejoXi3r7sf5uUldB0DLIAgBrCVVxWUWyzEIM4vFNIyLguNAEAJYS5+OnLaaaaqlrsPmMtUsLRT7FnAY2FgBrEXBUVIIL7eTKMpr6XwFGxCAHiE4DAQhgBWlyu+iozvV4uBgzk0hdR0ALYYgBLCitFBuh8ymCTOLMS4KDgbbK4AVdWnPKTk6f0NGWZipZmm4xCg4FAQhgHWlqLidsukU5uuYrp718EcQgiNBEAJYl6ymCbcXseGhPGIQHAuCEMC60kL5bI0oyCMKM9UsFeOi4GgQhADWFeRBoZ7csTLnT0KRUbYalxgFx4MgBLC61FAuUwajo79fYx3duXDcegkcDYIQwOpSVdzOYuc/rX5HMcOV1cARIQgBrG5YCH/oKjMYpa7DynaqRZw4AY4IQQhgdT4udJc/t6/EmUdHawQ6WMqSQrBLAceDrRbAFtJUnHNfdHSvlt3lz7V3lboOgNZDEALYQloo79zXWsO4KDguBCGALSQGcrlVrMQgdR1WswOXGAWHhQ0XwBaUPKWp+K1Fzjk6eq2WLlWygYHoEYJDQhAC2MjocG5LoXOOjmapxcFBnAt2J+CYsOUC2MioMH5HsWh0xj7htiI2Igw7E3BU2HYBbCTEkyK9uYOlztYpZERbCtmYcIyLgqNCEALYzphwbovTTRMeK2PtXKlzOwQhOCoEIYDtjA7nnW+acFMhG4vuIDgyBCGA7QwM5Ap0TF3tVFm4uVAcE449CTgwbL4AtqPgaHgYv7XIeYLwag2dr2CDg9EjBAeGIASwqdFhTnUSxZZCMTWUd8WOBBwZtl8AmxodzmcWi/XOcsTMZhwvCo4PQQhgUwHuFNue2+8Ud6IQGGUWi6PCEITg2BCEALY2OsxJTqLYV8I6+XAqTwQhODYEIYCtjQ7nNzvFNOHmQhHjouAEEIQAtpYQwJUYWIHO4bNwUwEbixMnwPFhIwawNZ6j4aH8Ngc/iaJQz0oMrH8AeoTg8BCEABIYHcZtcfAg3FjARoXxPHIQHJ9lgvDgwYOTJk0aNmzY//3f/zHWxJ/31atXZ8+enZSUNGfOnGvXrpkWFhcXZ2RkPPvsswsWLGjYuLKy8vnnn09KSpo5c2ZxcbF5eVZW1vjx41NTUzMyMixSNoBURofzWWqxVpC6jjbYXCiOjUAMgjOwQBCq1eqRI0eOGDFiwYIFS5cu/eSTT25uM2XKFIPB8MEHH+j1+ilTppgW7tmzZ/v27RqN5scff2zYeObMmXl5eR988IGXl9eYMWNMyXr+/PkJEyZMmTLl73//+9tvv/3NN9+0vXIAqfi7UTdfbp/DnkRRI9AeDRuOW9KDc2BtNn/+/AkTJpge//LLLzExMY0anDhxwsvLq7q6mjFWXV3t6el56tQp87+uXr26d+/e5qeFhYWurq4lJSWMMUEQgoKCsrOzGWPPP//8jBkzTG1WrFjRv3//5upZunTpzJkz2/69oC0qKyulLsHevXVMeOmg0Xrvb9VVsLlAHPprvfXe3zkYDIb6evxfkpIgCDqd7rbNLPCD7vfffx84cKDp8cCBAy9fvlxZWdmwwfHjx3v16uXh4UFEHh4evXr1On78eHPvdvLkyU6dOgUGBhIRz/MJCQmmxsePHzd/SmJi4okTJ1hTY7AAjmJMOOe4J1HgQtvgTJQtaaTT6S5cuHDz8vj4eHd395KSEj8/P9MSf39/IiopKWnXrp25WWlpqbmBqY1Wq23us5pr3PBT/Pz86urqrl+/3qFDhybfZOvWrX369DE9joqK+uqrr1ryNcGC9Ho9x2EC6Va6uFFZjeuZEn2El1Xi0KqrYFOB63dD6nWOfwaIVdXU1CiVSqWyRbtZsAZRFFvyV9CiNXT+/PnZs2ffvPz777+Piory9vY2GAymJdXV1UTUMAWJqGEDItLr9Y0atKRxo0/hOM7b27u5N0lISHjjjTdMjz08PG7REqyEMYb/7beVHiFklin/GmSVrpX1VsG5CiaQkBDqZY03dybKP0hdiHyJotgwUJrTojXUt2/fQ4cONfevkZGRly9fNj2+fPmyp6dnQEBAcw2IKDc3NzIy8hbvlp+fX19f7+LiYmp877333vwpwcHBbm5uzb2Jv79/3759W/LVACR0XxS/8ITw1+4ONsa4CRfaBudigb/AqVOnrlu37urVq0T0xRdfTJkyhed5Ilq9evXhw4eJKDU11WAwbNmyhYg2b95cW1ubnJzc3Lv169cvICBgzZo1RJSTk3PhwoVx48aZPmX16tVVVVWMsSVLlkydOrXtlQNIK03FnSpnmmqp62iljQVieoSDhTfALVigz56UlDR58uT4+PiOHTsqlUpT4BHRp59+OnHixP79+7u5uS1duvTRRx8NDQ1Vq9XLly93dXUloqysrNTUVFNjjuNGjRq1ZcsWjuMyMjKmTp26aNGiwsLCzz77rH379kR07733btiwITY2tl27dn5+fp999lnbKweQlpuC0sP5H/PEZ+IdJldKDPT7NZaqQo8QnAdnqWMvy8rKKioqYmJizDOTpllK89Pq6uqioqLw8HDT4aO3Vltbm5+fr1KpGk1ylJSU6PX66OjoW7w2IyMjJydn2bJld/pVwAKqqqp8fHykrsIBbMgXPzolZo+1/DSSlVbBp2fEnFK2apjC4u/sfHCwjORMc4ReXreZz7bYGurYsWPHjh0bLjENkJp5enp26dKlhe/m5ubWZOOgoKA7rhDADo0M4x/bI2iqKcRT6lJaZu0V8cW7HKb/CtAS2KABpOSmoNFh/M/5jnF7Qq2BTl7HBWXA2WCDBpDY/VHcuiuOEYTrrojjI3h3DIuCc0EQAkhsdDh//Borvf3JTtJbmytOjsZOA5wNtmkAibkraKQjjI5qDXSqnKXheFFwOghCAOnd38kBRkfX5orjI3k3jIuC00EQAkhvdDh/6Cq7WiN1Hbe09oo4OQp7DHBC2KwBpOeppBGh/C92PDqqqaYz5SwtFOOi4IQQhAB2wc6PHf0hVxwfybtihwHOCNs1gF1Ij+BzStn1WqnraAbGRcGJYcsGsAueSkq119HRYj07W8FSMS4KTgpBCGAv7PbY0bVX2MROGBcFp4VNG8BepEfwe7Ws3P5GRzEuCs4NGzeAvfB2oRQV/2uBfXUKi/TsfAVLxnn04LwQhAB25P4obt0Vy9wZzVLWXWETMC4KTg1bN4AdGR/J7y0RS+zpuqM/5GJcFJwctm8AO+LjQpM68Ssu2Mvo6OVKdrmKpWBcFJwaghDAvjzZlV96ThTtY3z087PijC68C/YT4NSwgQPYl/4BnJ8b7VRLn4QGI626KD7ZFXsJcHLYxAHszqw4fsk56UdHv88VBwRyUT4YFwUnhyAEsDsPd+az1aK6WuJO4ednxdndcNclcH4IQgC74+1Ck6L4lRekDMLj11iJgUaGoTsIzg9BCGCP5nTjl5wTBemi8N+nxTnxvAI5CDKAIASwR3d34ALcKbNYmiSsqKOf8sXHYrF/AFnAhg5gp57sKtkhM1+eF9PD+UAPST4cwNYQhAB26qEYfrdGLNbbulPIiJacE2fHY+cAcoFtHcBOebvQ5Ch+hc0PmcksZh4KSgzE9CDIBYIQwH7Njuczztv6kJnPz4rPoDsIcoLNHcB+9fLngjxoe5HtkrBIz/ZoxIc6Y88AMoLNHcCuze7Gf3RKsNnHZZwTH+rMeylt9oEA0kMQAti1RzrzBTrKssmlR+tFWn6BPYWLi4LMYIsHsGtKnv7Rh3/jiC06hWsui3HtqbsfDpMBeUEQAti7B2P4WoE25Fv3nEKDkf5+VHyrDy4uCrKDIASwdxzRP/sp3jhi3ZsULjwpDA7iBgejOwiygyAEcABjw7kO7vTtZWt1Cov17NMz4jv9sUMAOcJ2D+AYFvRV/L+jYq115gpfPSzO6cZHeqM7CHKEIARwDIODuW6+tOy85TuFx8rYLg17pRdmB0GmEIQADuO9/ooFx4Wqeku+JyOae1B4ux/OHQT5QhACOIye/lxSCP/vM5bsFH53WdTX08O4lAzIGLZ+AEfyz778ov8I12st824GI71+RFycqOAxOQgyhiAEcCSx7bkHovln9lvmQtyLTon9O3JDcMoEyBuCEMDBfDhAcaWKLTzR1gHSEgN9fFp4PwE7AZA7/A0AOBh3Ba1PVfz7jLi58M67hYzo6b3CzC58Jx90B0HuEIQAjifUi1uXqpi+23im4g6z8B9HhdIa9g9cUA0AQQjgoAYGcv8aoLhvh1BR1+rXrr8ifn2J/ZimdEMOAiAIARzXo7H8iDDuwSxjq46cOX6NPb1PWJeqCPKwWmUADgVBCODA/jVAUSfQ/zva0guvZWvY6K3GjCGKvh0xNQjwXwhCAAfmwtMPqcr1V9jEHcKp8tt0DL84K07NMq5OVk6IxB8+wP/g7wHAsXV0pxP3KYeFcMM3Gx/ZJeRWNRGHhXo26zfhk9Pi3nHKFBX6ggB/giAEcHhuCprbg784xSWuPTfwF+OcfcKVKlag5y5Xsh3F7IEsofePxnaudOBeZed2SEGAxnCdXQAn4e1Cf+vNz4nnF54QBm4wunGurkohyIOmxvDLhrj4uEhdH4C9QhACOBV/N1qYoFiYoKiqqvLx8ZG6HAAHgKFRAACQNQQhAADIGoIQAABkzQmDsKamxmAwSF2FrBmNxqKiIqmrkLuioqL6eovezB5a6dq1a5WVlVJXIWt6vb60tPS2zZwwCA8fPnz06FGpq5C1oqKiUaNGSV2F3I0fP/7KlStSVyFrCxYs+Pbbb6WuQtYyMzPnzp1722ZOGIQAAAAthyAEAABZQxACAICscYzd+U2u7dNnn302f/58Ly8vqQuRL0EQbty44e/vL3Uhsnb9+vX27dsrFLjloGSqqqqUSqWHB+53JZm6urpHH3307bffvnUzJwxCIiooKDAajVJXAQAAEgsLC3N1db11G+cMQgAAgBbCHCEAAMgaghAAAGQNQQgAALKGIAQAAFlztvsRnj59et++feankydP9vPzIyLG2HfffXf48OGoqKhZs2a5u7tLV6OTq62t3bFjR05OjiAISUlJI0eONC0/duzYkSNHzM0efvhhT09PiWp0fuvWrdu/f39ERMSsWbNwKpFtlJeX//rrr6dOnfLx8ZkwYcJdd91lWr5ly5bCwkLTYx8fn6lTp0pXo5OrrKz87rvvzE8HDhzYs2dP0+PDhw+vXbvWy8vrsccei4yMbPRCZ+sRZmVlLV68OPcP5osO/+1vf3v77bdjY2M3bdo0YcIEaYt0bt9+++0777zj4uLSrl27GTNm/OMf/zAt37Rp05IlS8yrBue3WM8777zzxhtvdO7cOSsrCxd9tZl58+b99NNPAQEBOp1u4MCBmzdvNi3/+OOPN27caNrszYkI1nD16tW5c+eadzIVFRWm5Xv27Bk+fHhgYGBlZWX//v21Wm3jVzLn8vHHH0+bNq3RwsrKSh8fn5MnTzLGDAaDn5/fkSNHpKhOFgwGg/nxxo0bO3bsaHo8f/78Z555RqKiZMRgMHTo0OHAgQOMsbq6upCQkN27d0tdlCw03PJfe+21e++91/R41KhR3377rURFyculS5f8/PxuXj5mzJiFCxeaHt93333z589v1MDZeoRElJub+/7773/11Vfl5eWmJceOHfPy8jKNVLi7uw8ePHj37t2S1ujMGg4719TU65q34gAABIZJREFUeHt7m5+eO3du4cKF33zzjU6nk6I0WTh16lR9ff2AAQOIyMXFJSkpCVu7bdxiy9+5c+eHH364YcMGURSlKE1G6urqFi9e/Nlnn509e9a8cPfu3cOHDzc9Hj58+M1/Ec4WhH5+fnFxcZWVlatXr+7ateulS5eISKvVBgQEmNsEBQWp1WrpapSLqqqq119/fd68eaangYGBUVFRVVVVy5Yti4+PxyqwEtPWznGc6Sm2dts7derU8uXLX3zxRdPTLl26eHt7l5WVvfLKK2lpaZgUsB6lUjls2LCrV68eOXIkISHhm2++IaLKykq9Xm+OgMDAQI1G0/iVVu+sWtrKlSsVTamurm7Uctq0aY899hhjbN26dfHx8ebl06dPf/31121atNNxc3O7eRV8/PHH5gbV1dUpKSnTp08XRfHml48ZM+b555+3Yb0ysmXLlsjISPPTOXPmzJ07V7pyZKegoCAqKmrJkiU3/1NVVVVoaOjatWttX5UMffPNN4GBgYyx6upqIrpy5Ypp+ffff3/33Xc3aux4PcLp06cbm3LzlW3vueee3NxcIlKpVBqNxjwoUVxcHBISYuu6nUtNTc3Nq+DZZ581/Wttbe19990XEhKyfPlyc9ekoUGDBplWDVicSqUqLS01HyaGrd2WioqKkpOTX3jhhSeffPLmf/X29u7Vqxe2fNsYNGhQaWmpTqfz8PDw8/MrLi42LS8uLlapVI0aO14Q3lpNTY3pgSiKmzZt6tGjBxH169fPw8Nj586dRKTRaPbv3z927Fgpq3RqdXV1U6ZM8fLyMvXdzcsNBoPpgdFo3LJli2nVgMX16NEjJCRk48aNRHTt2rXs7Oxx48ZJXZQslJSUjBgxYtasWX/5y1/MCwVBqKurMzc4dOhQ9+7dJSrQ+Zn3/0T066+/durUyTRTO378+HXr1hGRKIrr16+/+S/C2S66PXToUHd396CgoKNHj/I8v3PnzqCgICJatWrVyy+/PHbs2D179owfP37RokVSV+q0Pvvss2eeeaZnz54uLi6mJXv27PH09OzVq5dKperYseOBAwf8/PwyMzPbt28vbanOau3atXPmzElPTz9w4EBSUtKSJUukrkgWpk2btn79evMvvNjY2DVr1ly9erVHjx733HOPm5vbzp0709PTv/zyyyaHSaDt3nzzzU2bNnXt2rWoqOjkyZOrV682ncd8/vz5pKSkpKSkkpKSqqqqPXv2NDq51tmC8OrVq4cPH75x40ZERMTAgQMb9kguXLhw9OjR6Oho0wF1YCUlJSVFRUUNl/Tu3Zvnea1We+TIkaqqqqioqISEBJ53ttEIu5Kbm5uTkxMRETFo0CCpa5GL3Nxc85HqROTh4REfH09EFy5cOH36tNFo7N69u2kJWInBYDhy5EhRUZG/v39CQoLpaiom5eXlmZmZ3t7eKSkpbm5ujV7obEEIAADQKvhVDgAAsoYgBAAAWUMQAgCArCEIAQBA1hCEAAAgawhCAACQNQQhAADIGoIQAABkDUEIAACyhiAEAABZQxACAICs/X/myX2Sv6u1bwAAAABJRU5ErkJggg==", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 6 } ], "cell_type": "code", "source": [ "using Plots\n", "using LinearAlgebra\n", "nucleus = ElementGaussian()\n", "plot(r -> DFTK.local_potential_real(nucleus, norm(r)), xlims=(-50, 50))" ], "metadata": {}, "execution_count": 6 }, { "cell_type": "markdown", "source": [ "With this element at hand we can easily construct a setting\n", "where two potentials of this form are located at positions\n", "``20`` and ``80`` inside the lattice ``[0, 100]``:" ], "metadata": {} }, { "outputs": [ { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=1}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 7 } ], "cell_type": "code", "source": [ "using LinearAlgebra\n", "\n", "# Define the 1D lattice [0, 100]\n", "lattice = diagm([100., 0, 0])\n", "\n", "# Place them at 20 and 80 in *fractional coordinates*,\n", "# that is 0.2 and 0.8, since the lattice is 100 wide.\n", "nucleus = ElementGaussian()\n", "atoms = [nucleus => [[0.2, 0, 0], [0.8, 0, 0]]]\n", "\n", "# Assemble the model, discretize and build the Hamiltonian\n", "model = Model(lattice; atoms=atoms, terms=[Kinetic(), AtomicLocal()])\n", "basis = PlaneWaveBasis(model; Ecut=300, kgrid=(1, 1, 1));\n", "ham = Hamiltonian(basis)\n", "\n", "# Extract the total potential term of the Hamiltonian and plot it\n", "potential = DFTK.total_local_potential(ham)[:, 1, 1]\n", "rvecs = collect(r_vectors_cart(basis))[:, 1, 1] # slice along the x axis\n", "x = [r[1] for r in rvecs] # only keep the x coordinate\n", "plot(x, potential, label=\"\", xlabel=\"x\", ylabel=\"V(x)\")" ], "metadata": {}, "execution_count": 7 }, { "cell_type": "markdown", "source": [ "This potential is the sum of two \"atomic\" potentials (the two \"Gaussian\" elements).\n", "Due to the periodic setting we are considering interactions naturally also occur\n", "across the unit cell boundary (i.e. wrapping from `100` over to `0`).\n", "The required periodization of the atomic potential is automatically taken care,\n", "such that the potential is smooth across the cell boundary at `100`/`0`.\n", "\n", "With this setup, let's look at the bands:" ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Computing bands along kpath:\n", " -½ -> ½\n" ] }, { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=6}", "image/png": "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e/XqpXe3+iYxMXHJkiUhISE27OdKRERdiObyic8//3zixIkjR460tbUtKSlxdXW9fft23759V69ereX4iIiI2pXmRGhra3v48OEtW7bs3bs3OzvbysoqICDgxRdfNDc313J8RERE7arJgnpjY+O5c+fOnTtXm9EQERFpGdf/ICIincZESEREOo2JkIiIdBoTIRER6TQmQiIi0mlMhEREpNOYCImISKcxERIRkU5jIiQiIp3GREhERDqNiZCIiHQaEyEREek0JkIiItJpTIRERKTTmAiJiEinMRESEZFOYyIkIiKdxkRIREQ6jYmQiIh0GhMhERHpNCZCIiLSaUyEild6EwAAFepJREFURESk05gIiYhIpzEREhGRTmMiJCIincZESEREOo2JkIiIdBoTIRER6TQmQiIi0mlMhEREpNOYCImISKcxERIRkU5jIiQiIp3GREhERDqNiZCIiHQaEyEREek0JkIiItJpTIRERKTTmAiJiEiniZMIN2/ePHbs2DFjxkilUo0HnD17dsqUKSNGjHj99dfLy8uFnUqlcvny5aNGjQoKCtq7d6+ws7CwcHod33//vZZeAxERdQmG2n/KhISE1157bevWrfr6+jNmzHBycgoKCqp7QFlZ2YQJEyIjIwMDA19//fU33njjyy+/BPD1119v2LBBKpVeu3YtNDQ0KSmpd+/elZWVP/3003fffSc8dsCAAdp/RURE1HnpKZVKLT/l1KlThwwZ8s477wD497//ffz48R07dtQ9YMOGDatXrz5x4gSA5OTkUaNGZWRkWFhY+Pj4vPfee9OnTwfw/PPPOzg4LF++PDMz08PDo6qqqsXnlUql+/bt27x5c/u8LCIi6lgUCoVcLjcyMmr+MBGGRs+ePTtixAhhe8SIEWfPnm1wwLlz59QH+Pj4KJXKK1euVFdX//XXX3UfeO7cOWFbJpM9/fTT06dPX7t2rVwu18qLICKiLqJdhkbv3Llz5cqVBjv19PT8/f0BZGdnSyQSYaeNjU1WVlaDI3Nycjw8PNRf2traZmVlde/eXalUNn6gqanpJ598MmjQoLy8vA8++OD06dNr1qxpKrC9e/d6enoK2+7u7rt27Xqg10lERB2YQqEwMTFp8bB2SYTHjh374osvGuw0MDBISEgAYGVlpZ7/Ulpaqs5tanUPAFBSUiKRSKytrQGUl5cLx6sf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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 8 } ], "cell_type": "code", "source": [ "using Unitful\n", "using UnitfulAtomic\n", "\n", "plot_bandstructure(basis; n_bands=6, kline_density=100)" ], "metadata": {}, "execution_count": 8 }, { "cell_type": "markdown", "source": [ "The bands are noticeably different.\n", " - The bands no longer overlap, meaning that the spectrum of $H$ is no longer continuous\n", " but has gaps.\n", "\n", " - The two lowest bands are almost flat. This is because they represent\n", " two tightly bound and localized electrons inside the two Gaussians.\n", "\n", " - The higher the bands are in energy, the more free-electron-like they are.\n", " In other words the higher the kinetic energy of the electrons, the less they feel\n", " the effect of the two Gaussian potentials. As it turns out the curvature of the bands,\n", " (the degree to which they are free-electron-like) is highly related to the delocalization\n", " of electrons in these bands: The more curved the more delocalized. In some sense\n", " \"free electrons\" correspond to perfect delocalization." ], "metadata": {} } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.7.0" }, "kernelspec": { "name": "julia-1.7", "display_name": "Julia 1.7.0", "language": "julia" } }, "nbformat": 4 }