{ "cells": [ { "cell_type": "markdown", "id": "ac667a88", "metadata": {}, "source": [ "# Tight-binding model of graphene\n", "\n", "This tutorial aims at introducing the tight-binding functionalities available in PyBigDFT. The TB module currently enables to: \n", "- define the geometry of a given system\n", "- extract the corresponding matrix elements from a linear-scaling calculation\n", "- compute the subsequent band structure\n", "\n", "In a nutshell, a comparison is performed between a sub-system (sys_cs) and a supercell (sys_ls) on which a LS run was carried out. This process depends on the local electronic environment, thus enabling to probe the variation due to defects in a solid-state system. " ] }, { "cell_type": "code", "execution_count": 1, "id": "c7409ba4", "metadata": {}, "outputs": [], "source": [ "from BigDFT import Systems, Fragments, Logfiles, TB\n", "from BigDFT.PostProcessing import BigDFTool\n", "from BigDFT.Spillage import MatrixMetadata" ] }, { "cell_type": "code", "execution_count": 2, "id": "2976679d", "metadata": {}, "outputs": [], "source": [ "from matplotlib import cm\n", "from matplotlib import pyplot as plt\n", "from matplotlib.colors import LogNorm, Normalize" ] }, { "cell_type": "code", "execution_count": 3, "id": "723bdcce", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/opt/intel/oneapi/intelpython/latest/lib/python3.9/site-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.16.5 and <1.23.0 is required for this version of SciPy (detected version 1.23.5\n", " warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n" ] } ], "source": [ "import numpy as np\n", "from scipy.constants import value\n", "\n", "sq3 = np.sqrt(3)\n", "Ha2eV = value('Hartree energy in eV') # (A)" ] }, { "cell_type": "markdown", "id": "554634e5", "metadata": {}, "source": [ "## Geometry definition\n", "\n", "Importantly, consistency is required between both systems lattice constants, so that geometrical correspondence can be established. " ] }, { "cell_type": "code", "execution_count": 4, "id": "d5ef1eec", "metadata": {}, "outputs": [], "source": [ "a0 = 2.5 # lattice parameter\n", "name = 'gr_scell' # supercell label " ] }, { "cell_type": "markdown", "id": "e89a33fc", "metadata": {}, "source": [ "Definition of the primitive and conventional cells of an hexagonal lattice. The primitive cell is used to browse the TB workflow, while the conventional one is employed for the recap at the end of this tutorial. " ] }, { "cell_type": "code", "execution_count": 5, "id": "f73af1aa", "metadata": {}, "outputs": [], "source": [ "coord = {'prim': np.array([[0,0,0],\n", " [a0/sq3,0,0]]),\n", " 'conv': np.array([[0,0,0],\n", " [a0/sq3,0,0],\n", " [a0*sq3/2,0,a0/2],\n", " [a0*5/sq3/2,0,a0/2]])}\n", "\n", "cell = {'prim': np.array([[a0*sq3/2,0,a0/2],\n", " [0,float(\"inf\"),0],\n", " [a0*sq3/2,0,-a0/2]]),\n", " 'conv': np.array([[a0*sq3,0,0],\n", " [0,float(\"inf\"),0],\n", " [0,0,a0]])}" ] }, { "cell_type": "markdown", "id": "b14009e8", "metadata": {}, "source": [ "From the definitions of atomic coordinates and the unit cell, the sub-system is constructed. Remember that `Systems` are collections of `Fragments` in BigDFT. In the following, the solid-state system is defined as one fragment. " ] }, { "cell_type": "code", "execution_count": 6, "id": "125bcf3f", "metadata": {}, "outputs": [], "source": [ "positions = [{'C':list(j)} for j in coord['prim']] \n", "posinp = {'positions': positions, 'units': 'angstroem'}\n", "\n", "frag = Fragments.Fragment(posinp=posinp)\n", "sys_cs = Systems.System()\n", "sys_cs[\"FRA:1\"] = frag" ] }, { "cell_type": "markdown", "id": "e758fa8b", "metadata": {}, "source": [ "Since non-orthorombic cells are not yet handled in BigDFT, the following procedure is required when defining the unit cell" ] }, { "cell_type": "code", "execution_count": 7, "id": "f1d43ce0", "metadata": {}, "outputs": [], "source": [ "sys_cs.cell.cell = cell['prim']" ] }, { "cell_type": "markdown", "id": "dae7e54d", "metadata": {}, "source": [ "### Tight-binding parameters" ] }, { "cell_type": "markdown", "id": "e7d762c7", "metadata": {}, "source": [ "The TB parametrization relies on definition on interaction region, where electronic contributions are added to the Hamiltonian. This approach is similar to the localization constraint employed in linear scaling. In addition to a `Systems.System`, a TB object need an interaction radius $d$. " ] }, { "cell_type": "code", "execution_count": 8, "id": "7378ed26", "metadata": {}, "outputs": [], "source": [ "d = 5 # 1nn or 3nn are advised for graphene\n", "tb = TB.TightBinding(sys_cs, d=d)" ] }, { "cell_type": "markdown", "id": "0c5ae682", "metadata": {}, "source": [ "### Mapping between sites and Bravais vectors\n", "\n", "From the previous parametrization, a mapping is established between atoms in the unit cell and their periodic images within a distance $d$. The Bravais vectors connecting those sites are denoted $R_{ij}$. The TB object therefore contains a dictionary $R_{sh}$ defined such as:\n", "
\n", "$R_{sh}$ = {..., {($i$,$j$,($n_{ij}$)): $R_{ij}$}, ...}\n", "
\n", "where $i$, $j$ are atoms sites, $n_{ij}$ are the Bravais indices. \n", "\n", "For example, the nearest-neighbors ($1nn$) model in graphene is defined as a dictionary of 8 entries, i.e. 2 on-site terms and 3 pairs of 1$nn$ terms. " ] }, { "cell_type": "code", "execution_count": 9, "id": "4ca9af4a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{(0, 0, (0, 0, 0)): [0.0, 0.0, 0.0],\n", " (0, 1, (-1, 0, 0)): [-0.7216878364870318, 0.0, -1.25],\n", " (0, 1, (0, 0, -1)): [-0.7216878364870318, 0.0, 1.25],\n", " (0, 1, (0, 0, 0)): [1.4433756729740645, 0.0, 0.0],\n", " (1, 0, (0, 0, 0)): [-1.4433756729740645, 0.0, 0.0],\n", " (1, 0, (0, 0, 1)): [0.7216878364870318, 0.0, -1.25],\n", " (1, 0, (1, 0, 0)): [0.7216878364870318, 0.0, 1.25],\n", " (1, 1, (0, 0, 0)): [0.0, 0.0, 0.0]}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tb._sites_in_shell(d=1.5)" ] }, { "cell_type": "markdown", "id": "185a03a5", "metadata": {}, "source": [ "It can often be insightful to visualize the selected atoms of the TB model" ] }, { "cell_type": "code", "execution_count": 10, "id": "0b7ffff3", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(4,4))\n", "ax = plt.gca()\n", "x0,_,z0 = coord['prim'][0]\n", "circle = plt.Circle((x0,z0), d, color='g', fill=False)\n", "ax.add_patch(circle)\n", "for (i,j,idk),r_ij in tb.R_sh.items():\n", " if i>j:\n", " continue\n", " xi,_,zi = coord['prim'][i]\n", " xj,_,zj = coord['prim'][i]+r_ij\n", " plt.plot([xi,xj], [zi,zj], 'bo')\n", "plt.plot([0,cell['prim'][0,0]], [0,cell['prim'][0,2]], 'r-')\n", "plt.plot([0,cell['prim'][2,0]], [0,cell['prim'][2,2]], 'r-')\n", "plt.axis('equal'); plt.axis('off'); plt.show()" ] }, { "cell_type": "markdown", "id": "052e747f", "metadata": {}, "source": [ "### Structure wrapping with supercell" ] }, { "cell_type": "markdown", "id": "b9526450", "metadata": {}, "source": [ "Once the TB model is parametrized, a geometrical matching is established between the supercell and the sub-system" ] }, { "cell_type": "code", "execution_count": 11, "id": "cde1542f", "metadata": {}, "outputs": [], "source": [ "if 'log' not in locals():\n", " log = Logfiles.Logfile(f'log-{name}.yaml')" ] }, { "cell_type": "markdown", "id": "b542460a", "metadata": {}, "source": [ "From the logfile, a `Systems.System` is loaded" ] }, { "cell_type": "code", "execution_count": 12, "id": "1ad463d9", "metadata": {}, "outputs": [], "source": [ "posinp = Logfiles.Logfile(f'{name}.yaml').astruct #['posinp']\n", "sys_ls = Systems.system_from_dict_positions(posinp['positions'])" ] }, { "cell_type": "markdown", "id": "81944cad", "metadata": {}, "source": [ "The primitive cell is then connected to the supercell through an atoms mapping. The supercell indices establish the correspondence between the two systems, with the associated MSE given to assess the matching quality." ] }, { "cell_type": "code", "execution_count": 13, "id": "b2e099cb", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'idx': [626, 209], 'mse': 8.845044099689063e-18}\n" ] } ], "source": [ "m_idx = tb.matching_index(sys_ls); \n", "idx = m_idx['idx']; print(m_idx)" ] }, { "cell_type": "markdown", "id": "6d483358", "metadata": {}, "source": [ "## Hamiltonian extraction\n", "\n", "Now, the matrices elements of the associated atoms need to be extracted. " ] }, { "cell_type": "markdown", "id": "895a7a52", "metadata": {}, "source": [ "First, the hamiltonian and overlap matrices are loaded, as well as the metadata.\n", "We copy these matrices from the resource repository of BigDFT" ] }, { "cell_type": "code", "execution_count": 14, "id": "bc49de79-44d1-4ae0-8345-a27f4d892871", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Executing: wget https://raw.githubusercontent.com/BigDFT-group/resources/main/datalake/data-gr_scell.tar.xz -O lfs.info\n", "--2024-04-12 14:06:44-- https://raw.githubusercontent.com/BigDFT-group/resources/main/datalake/data-gr_scell.tar.xz\n", "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8002::154, 2606:50c0:8000::154, ...\n", "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 133 [text/plain]\n", "Saving to: ‘lfs.info’\n", "\n", " 0K 100% 1.89M=0s\n", "\n", "2024-04-12 14:06:44 (1.89 MB/s) - ‘lfs.info’ saved [133/133]\n", "\n", "\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 904 100 748 100 156 1897 395 --:--:-- --:--:-- --:--:-- 2294\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Executing: wget https://github-cloud.githubusercontent.com/alambic/media/547350918/80/c0/80c09b6c1f74f890e4608c5780432295ff23f6a27f29b240f0bb37b9607b84de?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA5BA2674WPWWEFGQ5%2F20240412%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240412T140644Z&X-Amz-Expires=3600&X-Amz-Signature=58323c4ed9ca636868156d39a68977f56dcad8351dab538fe4b3d989f290e5e0&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=596478275&token=1 -O ./data-gr_scell.tar.xz\n", "--2024-04-12 14:06:44-- https://github-cloud.githubusercontent.com/alambic/media/547350918/80/c0/80c09b6c1f74f890e4608c5780432295ff23f6a27f29b240f0bb37b9607b84de?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA5BA2674WPWWEFGQ5%2F20240412%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240412T140644Z&X-Amz-Expires=3600&X-Amz-Signature=58323c4ed9ca636868156d39a68977f56dcad8351dab538fe4b3d989f290e5e0&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=596478275&token=1\n", "Resolving github-cloud.githubusercontent.com (github-cloud.githubusercontent.com)... 185.199.111.154, 185.199.110.154, 185.199.109.154, ...\n", "Connecting to github-cloud.githubusercontent.com (github-cloud.githubusercontent.com)|185.199.111.154|:443... connected.\n", "HTTP request sent, awaiting response... 200 OK\n", "Length: 12322968 (12M) [application/octet-stream]\n", "Saving to: ‘./data-gr_scell.tar.xz’\n", "\n", " 0K .......... .......... .......... .......... .......... 0% 1.32M 9s\n", " 50K .......... .......... .......... .......... .......... 0% 3.51M 6s\n", " 100K .......... .......... .......... .......... .......... 1% 4.12M 5s\n", " 150K .......... .......... .......... .......... .......... 1% 4.93M 4s\n", " 200K .......... .......... .......... .......... .......... 2% 11.0M 4s\n", " 250K .......... .......... .......... .......... .......... 2% 4.48M 3s\n", " 300K .......... .......... .......... .......... .......... 2% 5.97M 3s\n", " 350K .......... .......... .......... .......... .......... 3% 7.67M 3s\n", " 400K .......... .......... .......... .......... .......... 3% 4.48M 3s\n", " 450K .......... .......... .......... .......... .......... 4% 22.1M 3s\n", " 500K .......... .......... .......... .......... .......... 4% 4.58M 3s\n", " 550K .......... .......... .......... .......... .......... 4% 3.68M 3s\n", " 600K .......... .......... .......... .......... .......... 5% 4.14M 3s\n", " 650K .......... .......... .......... .......... .......... 5% 56.6M 2s\n", " 700K .......... .......... .......... .......... .......... 6% 4.03M 2s\n", " 750K .......... .......... .......... .......... .......... 6% 55.4M 2s\n", " 800K .......... .......... .......... .......... .......... 7% 3.98M 2s\n", " 850K .......... .......... .......... .......... .......... 7% 4.00M 2s\n", " 900K .......... .......... .......... .......... .......... 7% 51.1M 2s\n", " 950K .......... .......... .......... .......... .......... 8% 3.94M 2s\n", " 1000K .......... .......... .......... .......... .......... 8% 4.04M 2s\n", " 1050K .......... .......... .......... .......... .......... 9% 29.9M 2s\n", " 1100K .......... .......... .......... .......... .......... 9% 3.86M 2s\n", " 1150K .......... .......... .......... .......... .......... 9% 217M 2s\n", " 1200K .......... .......... .......... .......... .......... 10% 3.78M 2s\n", " 1250K .......... .......... .......... .......... .......... 10% 3.37M 2s\n", " 1300K .......... .......... .......... .......... .......... 11% 315M 2s\n", " 1350K .......... .......... .......... .......... .......... 11% 3.60M 2s\n", " 1400K .......... .......... .......... .......... .......... 12% 117M 2s\n", " 1450K .......... .......... .......... .......... .......... 12% 3.81M 2s\n", " 1500K .......... .......... .......... .......... .......... 12% 4.07M 2s\n", " 1550K .......... .......... .......... .......... .......... 13% 36.5M 2s\n", " 1600K .......... .......... .......... .......... .......... 13% 3.97M 2s\n", " 1650K .......... .......... .......... .......... .......... 14% 3.34M 2s\n", " 1700K .......... .......... .......... .......... .......... 14% 93.8M 2s\n", " 1750K .......... .......... .......... .......... .......... 14% 3.62M 2s\n", " 1800K .......... .......... .......... .......... .......... 15% 24.9M 2s\n", " 1850K .......... .......... .......... .......... .......... 15% 3.88M 2s\n", " 1900K .......... .......... .......... .......... .......... 16% 4.04M 2s\n", " 1950K .......... .......... .......... .......... .......... 16% 3.76M 2s\n", " 2000K .......... .......... .......... .......... .......... 17% 22.9M 2s\n", " 2050K .......... .......... .......... .......... .......... 17% 3.70M 2s\n", " 2100K .......... .......... .......... .......... .......... 17% 4.60M 2s\n", " 2150K .......... .......... .......... .......... .......... 18% 17.7M 2s\n", " 2200K .......... .......... .......... .......... .......... 18% 4.98M 2s\n", " 2250K .......... .......... .......... .......... .......... 19% 3.93M 2s\n", " 2300K .......... .......... .......... .......... .......... 19% 15.4M 2s\n", " 2350K .......... .......... .......... .......... .......... 19% 4.82M 2s\n", " 2400K .......... .......... .......... .......... .......... 20% 16.6M 2s\n", " 2450K .......... .......... .......... .......... .......... 20% 3.99M 2s\n", " 2500K .......... .......... .......... .......... .......... 21% 4.09M 2s\n", " 2550K .......... .......... .......... .......... .......... 21% 43.3M 2s\n", " 2600K .......... .......... .......... .......... .......... 22% 4.26M 2s\n", " 2650K .......... .......... .......... .......... .......... 22% 34.0M 2s\n", " 2700K .......... .......... .......... .......... .......... 22% 4.05M 2s\n", " 2750K .......... .......... .......... .......... .......... 23% 3.33M 2s\n", " 2800K .......... .......... .......... .......... .......... 23% 49.8M 2s\n", " 2850K .......... .......... .......... .......... .......... 24% 3.88M 2s\n", " 2900K .......... .......... .......... .......... .......... 24% 29.7M 2s\n", " 2950K .......... .......... .......... .......... .......... 24% 4.41M 2s\n", " 3000K .......... .......... .......... .......... .......... 25% 25.5M 2s\n", " 3050K .......... .......... .......... .......... .......... 25% 3.91M 2s\n", " 3100K .......... .......... .......... .......... .......... 26% 4.49M 2s\n", " 3150K .......... .......... .......... .......... .......... 26% 23.7M 2s\n", " 3200K .......... .......... .......... .......... .......... 27% 4.47M 2s\n", " 3250K .......... .......... .......... .......... .......... 27% 23.3M 2s\n", " 3300K .......... .......... .......... .......... .......... 27% 4.50M 2s\n", " 3350K .......... .......... .......... .......... .......... 28% 4.02M 2s\n", " 3400K .......... .......... .......... .......... .......... 28% 24.6M 1s\n", " 3450K .......... .......... .......... .......... .......... 29% 4.31M 1s\n", " 3500K .......... .......... .......... .......... .......... 29% 31.8M 1s\n", " 3550K .......... .......... .......... .......... .......... 29% 4.38M 1s\n", " 3600K .......... .......... .......... .......... .......... 30% 29.0M 1s\n", " 3650K .......... .......... .......... .......... .......... 30% 3.95M 1s\n", " 3700K .......... .......... .......... .......... .......... 31% 4.02M 1s\n", " 3750K .......... .......... .......... .......... .......... 31% 30.0M 1s\n", " 3800K .......... .......... .......... .......... .......... 31% 4.36M 1s\n", " 3850K .......... .......... .......... .......... .......... 32% 26.4M 1s\n", " 3900K .......... .......... .......... .......... .......... 32% 4.41M 1s\n", " 3950K .......... .......... .......... .......... .......... 33% 3.85M 1s\n", " 4000K .......... .......... .......... .......... .......... 33% 33.0M 1s\n", " 4050K .......... .......... .......... .......... .......... 34% 4.25M 1s\n", " 4100K .......... .......... .......... .......... .......... 34% 32.3M 1s\n", " 4150K .......... .......... .......... .......... .......... 34% 4.21M 1s\n", " 4200K .......... .......... .......... .......... .......... 35% 3.96M 1s\n", " 4250K .......... .......... .......... .......... .......... 35% 32.6M 1s\n", " 4300K .......... .......... .......... .......... .......... 36% 4.25M 1s\n", " 4350K .......... .......... .......... .......... .......... 36% 25.6M 1s\n", " 4400K .......... .......... .......... .......... .......... 36% 4.20M 1s\n", " 4450K .......... .......... .......... .......... .......... 37% 35.4M 1s\n", " 4500K .......... .......... .......... .......... .......... 37% 4.00M 1s\n", " 4550K .......... .......... .......... .......... .......... 38% 3.76M 1s\n", " 4600K .......... .......... .......... .......... .......... 38% 28.2M 1s\n", " 4650K .......... .......... .......... .......... .......... 39% 3.72M 1s\n", " 4700K .......... .......... .......... .......... .......... 39% 31.0M 1s\n", " 4750K .......... .......... .......... .......... .......... 39% 4.06M 1s\n", " 4800K .......... .......... .......... .......... .......... 40% 3.98M 1s\n", " 4850K .......... .......... .......... .......... .......... 40% 46.4M 1s\n", " 4900K .......... .......... .......... .......... .......... 41% 4.10M 1s\n", " 4950K .......... .......... .......... .......... .......... 41% 57.3M 1s\n", " 5000K .......... .......... .......... .......... .......... 41% 3.99M 1s\n", " 5050K .......... .......... .......... .......... .......... 42% 67.6M 1s\n", " 5100K .......... .......... .......... .......... .......... 42% 3.89M 1s\n", " 5150K .......... .......... .......... .......... .......... 43% 4.05M 1s\n", " 5200K .......... .......... .......... .......... .......... 43% 66.1M 1s\n", " 5250K .......... .......... .......... .......... .......... 44% 3.89M 1s\n", " 5300K .......... .......... .......... .......... .......... 44% 66.8M 1s\n", " 5350K .......... .......... .......... .......... .......... 44% 3.83M 1s\n", " 5400K .......... .......... .......... .......... .......... 45% 3.91M 1s\n", " 5450K .......... .......... .......... .......... .......... 45% 77.4M 1s\n", " 5500K .......... .......... .......... .......... .......... 46% 3.97M 1s\n", " 5550K .......... .......... .......... .......... .......... 46% 4.11M 1s\n", " 5600K .......... .......... .......... .......... .......... 46% 4.05M 1s\n", " 5650K .......... .......... .......... .......... .......... 47% 4.05M 1s\n", " 5700K .......... .......... .......... .......... .......... 47% 25.4M 1s\n", " 5750K .......... .......... .......... .......... .......... 48% 4.32M 1s\n", " 5800K .......... .......... .......... .......... .......... 48% 36.1M 1s\n", " 5850K .......... .......... .......... .......... .......... 49% 4.13M 1s\n", " 5900K .......... .......... .......... .......... .......... 49% 3.95M 1s\n", " 5950K .......... .......... .......... .......... .......... 49% 48.1M 1s\n", " 6000K .......... .......... .......... .......... .......... 50% 3.97M 1s\n", " 6050K .......... .......... .......... .......... .......... 50% 4.19M 1s\n", " 6100K .......... .......... .......... .......... .......... 51% 36.8M 1s\n", " 6150K .......... .......... .......... .......... .......... 51% 4.20M 1s\n", " 6200K .......... .......... .......... .......... .......... 51% 32.2M 1s\n", " 6250K .......... .......... .......... .......... .......... 52% 4.13M 1s\n", " 6300K .......... .......... .......... .......... .......... 52% 4.14M 1s\n", " 6350K .......... .......... .......... .......... .......... 53% 4.00M 1s\n", " 6400K .......... .......... .......... .......... .......... 53% 41.6M 1s\n", " 6450K .......... .......... .......... .......... .......... 54% 4.10M 1s\n", " 6500K .......... .......... .......... .......... .......... 54% 37.4M 1s\n", " 6550K .......... .......... .......... .......... .......... 54% 4.17M 1s\n", " 6600K .......... .......... .......... .......... .......... 55% 3.99M 1s\n", " 6650K .......... .......... .......... .......... .......... 55% 52.4M 1s\n", " 6700K .......... .......... .......... .......... .......... 56% 3.84M 1s\n", " 6750K .......... .......... .......... .......... .......... 56% 118M 1s\n", " 6800K .......... .......... .......... .......... .......... 56% 3.82M 1s\n", " 6850K .......... .......... .......... .......... .......... 57% 3.13M 1s\n", " 6900K .......... .......... .......... .......... .......... 57% 125M 1s\n", " 6950K .......... .......... .......... .......... .......... 58% 3.51M 1s\n", " 7000K .......... .......... .......... .......... .......... 58% 27.1M 1s\n", " 7050K .......... .......... .......... .......... .......... 58% 3.79M 1s\n", " 7100K .......... .......... .......... .......... .......... 59% 4.07M 1s\n", " 7150K .......... .......... .......... .......... .......... 59% 13.9M 1s\n", " 7200K .......... .......... .......... .......... .......... 60% 4.14M 1s\n", " 7250K .......... .......... .......... .......... .......... 60% 4.67M 1s\n", " 7300K .......... .......... .......... .......... .......... 61% 19.4M 1s\n", " 7350K .......... .......... .......... .......... .......... 61% 4.13M 1s\n", " 7400K .......... .......... .......... .......... .......... 61% 46.7M 1s\n", " 7450K .......... .......... .......... .......... .......... 62% 3.97M 1s\n", " 7500K .......... .......... .......... .......... .......... 62% 4.19M 1s\n", " 7550K .......... .......... .......... .......... .......... 63% 4.36M 1s\n", " 7600K .......... .......... .......... .......... .......... 63% 26.5M 1s\n", " 7650K .......... .......... .......... .......... .......... 63% 4.53M 1s\n", " 7700K .......... .......... .......... .......... .......... 64% 3.83M 1s\n", " 7750K .......... .......... .......... .......... .......... 64% 4.31M 1s\n", " 7800K .......... .......... .......... .......... .......... 65% 30.6M 1s\n", " 7850K .......... .......... .......... .......... .......... 65% 3.96M 1s\n", " 7900K .......... .......... .......... .......... .......... 66% 3.87M 1s\n", " 7950K .......... .......... .......... .......... .......... 66% 78.5M 1s\n", " 8000K .......... .......... .......... .......... .......... 66% 3.95M 1s\n", " 8050K .......... .......... .......... .......... .......... 67% 4.73M 1s\n", " 8100K .......... .......... .......... .......... .......... 67% 17.6M 1s\n", " 8150K .......... .......... .......... .......... .......... 68% 3.51M 1s\n", " 8200K .......... .......... .......... .......... .......... 68% 4.01M 1s\n", " 8250K .......... .......... .......... .......... .......... 68% 55.5M 1s\n", " 8300K .......... .......... .......... .......... .......... 69% 3.97M 1s\n", " 8350K .......... .......... .......... .......... .......... 69% 48.5M 1s\n", " 8400K .......... .......... .......... .......... .......... 70% 4.00M 1s\n", " 8450K .......... .......... .......... .......... .......... 70% 4.17M 1s\n", " 8500K .......... .......... .......... .......... .......... 71% 4.14M 1s\n", " 8550K .......... .......... .......... .......... .......... 71% 34.6M 1s\n", " 8600K .......... .......... .......... .......... .......... 71% 4.13M 1s\n", " 8650K .......... .......... .......... .......... .......... 72% 54.3M 1s\n", " 8700K .......... .......... .......... .......... .......... 72% 3.97M 1s\n", " 8750K .......... .......... .......... .......... .......... 73% 3.91M 1s\n", " 8800K .......... .......... .......... .......... .......... 73% 46.4M 1s\n", " 8850K .......... .......... .......... .......... .......... 73% 4.00M 1s\n", " 8900K .......... .......... .......... .......... .......... 74% 61.2M 1s\n", " 8950K .......... .......... .......... .......... .......... 74% 3.86M 1s\n", " 9000K .......... .......... .......... .......... .......... 75% 3.90M 1s\n", " 9050K .......... .......... .......... .......... .......... 75% 55.7M 0s\n", " 9100K .......... .......... .......... .......... .......... 76% 4.02M 0s\n", " 9150K .......... .......... .......... .......... .......... 76% 3.99M 0s\n", " 9200K .......... .......... .......... .......... .......... 76% 69.6M 0s\n", " 9250K .......... .......... .......... .......... .......... 77% 3.94M 0s\n", " 9300K .......... .......... .......... .......... .......... 77% 3.89M 0s\n", " 9350K .......... .......... .......... .......... .......... 78% 60.7M 0s\n", " 9400K .......... .......... .......... .......... .......... 78% 4.03M 0s\n", " 9450K .......... .......... .......... .......... .......... 78% 54.1M 0s\n", " 9500K .......... .......... .......... .......... .......... 79% 3.98M 0s\n", " 9550K .......... .......... .......... .......... .......... 79% 4.08M 0s\n", " 9600K .......... .......... .......... .......... .......... 80% 44.6M 0s\n", " 9650K .......... .......... .......... .......... .......... 80% 4.01M 0s\n", " 9700K .......... .......... .......... .......... .......... 81% 44.0M 0s\n", " 9750K .......... .......... .......... .......... .......... 81% 4.01M 0s\n", " 9800K .......... .......... .......... .......... .......... 81% 62.2M 0s\n", " 9850K .......... .......... .......... .......... .......... 82% 3.92M 0s\n", " 9900K .......... .......... .......... .......... .......... 82% 3.83M 0s\n", " 9950K .......... .......... .......... .......... .......... 83% 11.2M 0s\n", " 10000K .......... .......... .......... .......... .......... 83% 5.45M 0s\n", " 10050K .......... .......... .......... .......... .......... 83% 4.02M 0s\n", " 10100K .......... .......... .......... .......... .......... 84% 13.2M 0s\n", " 10150K .......... .......... .......... .......... .......... 84% 5.45M 0s\n", " 10200K .......... .......... .......... .......... .......... 85% 11.7M 0s\n", " 10250K .......... .......... .......... .......... .......... 85% 3.82M 0s\n", " 10300K .......... .......... .......... .......... .......... 86% 5.74M 0s\n", " 10350K .......... .......... .......... .......... .......... 86% 11.0M 0s\n", " 10400K .......... .......... .......... .......... .......... 86% 5.03M 0s\n", " 10450K .......... .......... .......... .......... .......... 87% 3.83M 0s\n", " 10500K .......... .......... .......... .......... .......... 87% 105M 0s\n", " 10550K .......... .......... .......... .......... .......... 88% 3.79M 0s\n", " 10600K .......... .......... .......... .......... .......... 88% 21.3M 0s\n", " 10650K .......... .......... .......... .......... .......... 88% 4.41M 0s\n", " 10700K .......... .......... .......... .......... .......... 89% 21.3M 0s\n", " 10750K .......... .......... .......... .......... .......... 89% 4.54M 0s\n", " 10800K .......... .......... .......... .......... .......... 90% 3.97M 0s\n", " 10850K .......... .......... .......... .......... .......... 90% 29.5M 0s\n", " 10900K .......... .......... .......... .......... .......... 90% 4.28M 0s\n", " 10950K .......... .......... .......... .......... .......... 91% 22.8M 0s\n", " 11000K .......... .......... .......... .......... .......... 91% 4.32M 0s\n", " 11050K .......... .......... .......... .......... .......... 92% 28.9M 0s\n", " 11100K .......... .......... .......... .......... .......... 92% 3.28M 0s\n", " 11150K .......... .......... .......... .......... .......... 93% 5.53M 0s\n", " 11200K .......... .......... .......... .......... .......... 93% 11.8M 0s\n", " 11250K .......... .......... .......... .......... .......... 93% 5.54M 0s\n", " 11300K .......... .......... .......... .......... .......... 94% 10.7M 0s\n", " 11350K .......... .......... .......... .......... .......... 94% 6.05M 0s\n", " 11400K .......... .......... .......... .......... .......... 95% 4.05M 0s\n", " 11450K .......... .......... .......... .......... .......... 95% 8.94M 0s\n", " 11500K .......... .......... .......... .......... .......... 95% 6.20M 0s\n", " 11550K .......... .......... .......... .......... .......... 96% 9.69M 0s\n", " 11600K .......... .......... .......... .......... .......... 96% 6.11M 0s\n", " 11650K .......... .......... .......... .......... .......... 97% 3.95M 0s\n", " 11700K .......... .......... .......... .......... .......... 97% 9.91M 0s\n", " 11750K .......... .......... .......... .......... .......... 98% 5.64M 0s\n", " 11800K .......... .......... .......... .......... .......... 98% 3.95M 0s\n", " 11850K .......... .......... .......... .......... .......... 98% 12.8M 0s\n", " 11900K .......... .......... .......... .......... .......... 99% 5.49M 0s\n", " 11950K .......... .......... .......... .......... .......... 99% 3.91M 0s\n", " 12000K .......... .......... .......... .... 100% 107M=2.0s\n", "\n", "2024-04-12 14:06:47 (5.93 MB/s) - ‘./data-gr_scell.tar.xz’ saved [12322968/12322968]\n", "\n", "\n" ] }, { "data": { "text/plain": [ "['data-gr_scell',\n", " 'data-gr_scell/sparsematrix_metadata.dat',\n", " 'data-gr_scell/overlap_sparse.mtx',\n", " 'data-gr_scell/hamiltonian_sparse.mtx']" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from futile.Utils import data_path, untar_archive\n", "archive=f'data-{name}.tar.xz'\n", "data_path(archive)\n", "untar_archive(archive)" ] }, { "cell_type": "code", "execution_count": 15, "id": "9afad99c", "metadata": {}, "outputs": [], "source": [ "if 'h' and 's' not in locals():\n", " tool = BigDFTool()\n", " h = tool.get_matrix_h(log)\n", " s = tool.get_matrix_s(log)\n", " \n", "metadatafile = f'data-{name}/sparsematrix_metadata.dat'\n", "metadata = MatrixMetadata(metadatafile)" ] }, { "cell_type": "markdown", "id": "7f490833", "metadata": {}, "source": [ "The matrices elements are extracted using the `shell_matrix` function, returning $H$ and $S$ inside a dictionary that also contains information on the basis set." ] }, { "cell_type": "code", "execution_count": 16, "id": "866c60ab", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['id', 'h', 's']" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m_sh = tb.shell_matrix(sys_ls, [h,s], metadata)\n", "list(m_sh.keys())" ] }, { "cell_type": "markdown", "id": "7bea79d1", "metadata": {}, "source": [ "The basis set is defined by the atoms mapping and their orbitals. In this case, the 626$^{th}$ and 209$^{th}$ atoms (corresponding to the $A$ and $B$ lattices) have 4 orbitals each, starting from the 0$^{th}$ and the 4$^{th}$ index, respectively. The last entry in the orbitals definition therefore give the total number of orbitals. " ] }, { "cell_type": "code", "execution_count": 17, "id": "81a6be9b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'atoms': [626, 209], 'orbs': [0, 4, 8]}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m_sh['id']" ] }, { "cell_type": "markdown", "id": "9e774b3f", "metadata": {}, "source": [ "The Hamiltonian $H_{ij}$ between sites $i$ and $j$ is defined in a similar way to $R_{ij}$. Visualizing the different matrix elements is therefore straightforwards. In this example, the on-site and $1nn$ terms are displayed." ] }, { "cell_type": "code", "execution_count": 18, "id": "3eb74a77", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,axs = plt.subplots(1,2,figsize=(10,4))\n", "axs[0].imshow(abs(m_sh['h'][(0,0,(0,0,0))]),\n", " norm=LogNorm(vmin=1e-3,vmax=1e0),\n", " # norm=Normalize(vmin=0,vmax=.4),\n", " cmap=cm.Blues,aspect='equal')\n", "axs[1].imshow(abs(m_sh['h'][(0,1,(0,0,0))]),\n", " norm=LogNorm(vmin=1e-3,vmax=1e0),\n", " # norm=Normalize(vmin=0,vmax=.4),\n", " cmap=cm.Blues,aspect='equal')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "2eceb1f6", "metadata": {}, "source": [ "## Band structure computation\n", "\n", "Once the Hamiltonian extraction is completed, the band structure is obtained in a few steps." ] }, { "cell_type": "markdown", "id": "0b950439", "metadata": {}, "source": [ "First, the $k$-path is defined" ] }, { "cell_type": "code", "execution_count": 19, "id": "37be17e0", "metadata": {}, "outputs": [], "source": [ "hsp = {'G1': [0., 0., 0.],\n", " 'M': [0.5, 0., 0.5],\n", " 'K': [0.666666, 0., 0.333333],\n", " 'G2': [0., 0., 0.]}\n", "k = tb.k_path(hsp)" ] }, { "cell_type": "markdown", "id": "e449d9d1", "metadata": {}, "source": [ "The eigenvalues are then computed by solving the Schrodinger's equation. The `k_matrix` functions returns the k-resolved matrices and their corresponding eigenvalues. " ] }, { "cell_type": "code", "execution_count": 20, "id": "91e6780f", "metadata": {}, "outputs": [], "source": [ "Hk,Sk,Ek = tb.k_matrix(k, m_sh)" ] }, { "cell_type": "markdown", "id": "3fcd1621", "metadata": {}, "source": [ "Finally, the band structure is plotted" ] }, { "cell_type": "code", "execution_count": 21, "id": "abd96bf1", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUAAAAGFCAYAAACMtSqtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3u0lEQVR4nO3ddXzU9R/A8dfVupP1GDBydKeACYgoZRGKgY1NWKjYYmL8EKQklFYU6W7YqFED1sW6L7+/P74wRWJ1t9t2n+fjcQ/n7u77fd+4e9/n+4n3RyFJkoQgCIINUlo7AEEQBGsRCVAQBJslEqAgCDZLJEBBEGyWSICCINgskQAFQbBZIgEKgmCz1NYOwFpMJhOpqam4urqiUCisHY4gCGYkSRKFhYUEBgaiVN64nWezCTA1NZWQkBBrhyEIggUlJSURHBx8w/ttNgG6uroC8h/Izc3N4ufT6XT89NNP5Ofn07VrVwYOHHjDxxYdSif/9wuo3Ozwn9QRhUr0VJjbnt8Wc3jdKly8fXh4xhdoHBysEodkMrFv5a8c+mMFAIHNW3HnU5Nw9vA0+7n0GcVk/u84GEy43RGOa89As5/jelauXMmZM2eIiIhg9OjRtXLOgoICQkJCyj/nN2KzCfDKZa+bm1utJMC///6bsrIyfH19GTRoEPb29td9nGSSKIk+i6u9M+63NsbV08Pisdma7JQkTm1ej4NGw6AnnsXbz8+q8dzx6BNEREWxftZMci6cY+0Hb3L3S1MJjGxh3hO5uWE/XCJv9XmknVk4tAnCLvjmCcIchgwZQmJiIikpKWRlZREREWHxc15RUfeWaFrUgsTERPbu3QvIb4YbJT+AslM5GC6VonBQ4dy1UW2FaDMkSWLL3B8wGQ007tCZpp27WzskAJp16cFDH3yBV1AIRbk5LHtnMkc3/oW5l+o7dwvAobU3GCVylpzGpDWY9fjX4+PjQ+fOnQHYsGEDJpPJ4uesLJEALUyv17NmzRoA2rVrR2Rk5A0fK0kShduTAHDpFoDS3mYb6BZzdt8uEk8cRa2xY8AjE+vUAJhXYDAPzficZl17YjIa2PTTLDb8+DV6bZnZzqFQKPAa3gyVuz2G7DLyVp8327Fvpl+/ftjb25Oens7Ro0dr5ZyVIRKghW3ZsoXs7GxcXV258847b/pYXXwBusRCUCtw6R1USxHaDr1Oy45ffgagyz3D8fCvey1sO0cn7n5pCr0fGIdCoeTE1o0snvYy2cmJZjuH0kmD1wPNQQEl0ZmURGea7dg34uzsTN++fQHYuHEjJSUlFj9nZYgEaEHnz58vv/S9++67cXR0vOnjC7cnA+Dc0R+Vq53F47M1R9atoeBSJi7ePnQZOtza4dyQQqGg27CRDJ/2Lk7uHmQlJbBo6ouc2LrRbJfE9uHuuA0MBSB3dRyG7FKzHPdmunfvjq+vLyUlJWzatMni56sMkQAtpLCwkJUrVwLQqVOnm176AujTiyk7nQMKcOl742F7oXqKcnPYv+pXAPo+OB6NvXVGfasiLKo9Yz/5hrC2HTBotfz9w1f89e3n6ErN03py7R+KXbgbktZIzrIzSEbLlgZVqVQMGTIEgCNHjpCYaL5WbXWJBGgBJpOJlStXUlxcjJ+fX4WXvvBP68+xjQ8an5u3FIWq271sIXptGQHNmtOiVz9rh1Npzh6eDJ8ynd73j0WhVHJq1zYWTZlE+vlzNT62QqXAa3RzFA4qdImFFGxOMEPENxcWFkb79u0BWL16NTqdzuLnvBmRAC1g+/btXLx4EY1Gw8iRI9FoNDd9vCG3jJKjcj+Maz/R+jO3jAtxnNgmX3LdMvbxOjXwURkKpZJu945i1Nsf4uLtQ25aKkvefIW9K5ZgMhprdGy1pwOe9zYFoHBrEtqL+eYI+aZuv/12XF1dycnJYePGjRY/382IBGhmJ06cYPv27QAMHjwYX1/fCp9TtDMFTGDf1KNW5mXZEkmS2LbgJ5AkWvTqZ/65dbUouEVrxn7yDZE9+mAyGtnz6y8sfes1ctNSanRcp3Z+OHX0Awlylp3BVGrZqTFOTk4MGzYMgIMHD3LuXM1bs9UlEqAZJSUlsWrVKkDu8L3S1L8ZY7Ge4oPpgGj9WcK5A3tIPnUCtZ09fR4cb+1waszRxZUhL7zGoGdfxt7JmbS4Myx4/XmObVpfowESj3uaoPJ2wJinJXfVObPPP/yvJk2a0K1bN0BeKZKbm2vR892ISIBmkpuby9KlSzEajURGRnL77bdX6nnFe1OR9CY0gc7YN/WwbJA2xqDXs2PRXAA6330fbj4Vt8brA4VCQcs+/Rn76TeEtG6LQatl4+xvWfHBW+RnZlTrmEp7Nd73twClgtJjWZQctvzUmFtvvZXAwEBKS0tZunSpVfoDRQI0g7y8PObPn09xcTGNGjVi+PDhN61AcYVJZ6RoTyoArv1C6l3fVF135M815Gdm4OLpRdc6PO2lutx8/Bj5xvv0GzMBlUZDwrFo5r/yDEf++h2pGqst7EJccbstDIC8tXEYsiw7NUaj0TB69GicnZ3JyMhgxYoVGGvYp1lVIgHW0JXkl5eXh5eXFw8++OBNl7r9W8nBdEwlBlReDji28bFwpLalpCC/fNpL7wfGWa3YgaUplEo6D7mXsZ98S1CL1ui1ZWyd9yNL35lMdkpSlY/n2i8Yu8buSDoT2UtPIxktu2zN3d2dUaNGoVKpOHPmDGvWrKnVpXIiAdZARkYGc+bMITc3Fw8PD8aNG1fpwgqSwUThTrnz2rVvEAqVaP2Z057fFqMrLcE/oimt+vS3djgW5xUYxOi3P2TghKfRODiSeiaWha89x/5Vv2I0VH5QQ6G8PDXGUY0+uYiCjZafqxcWFsbIkSNRKBQcO3aM33//vdZagiIBVtOZM2eYO3cuhYWF+Pr68sgjj+Du7l7p55ccycSYp0Xpaodzp7q3JKs+y05O4timvwDoN2YCikp0RzQECqWS9rcPYvzns2jcvhNGg4FdSxewaMokkk+frPRx1B72eN7XDIDC7UmUnc+zUMT/aNGiBffddx8A0dHRLF26FK1Wa/Hz2sY7w4wMBgObNm1iyZIlaLVaQkNDefTRR6uU/CSjRME2+fLEtW8wCo34ZzCnHb/MRTKZaNK5OyGtoqwdTq1z8/Hj3snvcNezL+Pg6kZWYjzL3n6dv2bNpDivcqOtTlE+OHdpBBLkLjuDqURv4aghKiqK0aNHo1arOXfuHHPnzuXSpUsWPaf45FVBSkoKs2fPZteuXQB07dqVsWPHVrjG979KYjIx5pShdNbg3E20/swp4XgMF44cRKlS0fehR6wdjtUoFApa9enPo1/8QNuBd4JCQeyOLfz84kSO/PV7pSZQu98dgdrHEWOBjtwVlp8aA9CyZUvGjRuHk5MTGRkZ/Pjjj+zfv99i/YIKqTZeVR1UUFCAu7s7+fn5Ffbb5ebmsm3btvIyPk5OTgwePJjWrVtX+bySSSJj5mEMWaW43RmO2y2iLL+5mExGFk2exKWEi3S4824GPPKktUOqM9LizrB5zvdkXIgDwDesMQMffYqgFq1u+jxdciGZ3x8Fo4Tnfc1qrUZlYWEhq1ev5vx5uVyXv78/t99+OxEREZWaLVHZz7dIgDf4A5lMJuLj4zl8+DCxsbHl335t27bl9ttvx8XFpVrnLYnJJGfpGZROahq93kXU/DOjE1s38vcPX2Hv5MyjX/0PJ7fKd0vYApPJyPHNf7NryQLKiosAaN6zL30fHI+b742rYhfuSCb/z4soNEr8nu+AxtepluI1cejQIbZs2UJZmVwTMSAggO7du9OiRYubzrYQCbAC//0DmUwm8vPzSUpK4sKFC5w/f57CwsLyxzdp0oQBAwYQFFT9On2SSSLjqyMYMkpwuy2svByRUHP6sjLmTHqC4twc+j78KF3uvs/aIdVZJQX57Fw8nxPbNoIkodJo6DR4GF3vGYm907XJTTJJZM09gTYuD02gM35Pt0ehrr3es5KSErZv387hw4cxXB7RVqvVNGvWjMaNGxMaGoqPjw9q9T+NCZEAK3DlD/Tdd98hSRI5OTnlf9wr7O3tadOmDZ07dyYgIKDG5yw5nkXOL6dQOKgImNwVpYNo/ZnLnt8Ws3f5Ytz9/Bk/8wfUFRSgECAz/gLbFvxE0sljADi5e9Br1MO06X8bSpXqqscaC7RkfHkEU4kBl75BeAyqvX09riguLubw4cPExMSQk5Nz1X1KpRJPT09cXFxwdHREp9Mxbtw4kQBv5EoCnDx5cnlTWqVS4evrS0REBBEREYSFhVVYyaWyJEki8+to9GnFuA4Iwf32cLMcV4CinGzmTHoCg1bLkEmTad6jt7VDqjckSeLCkQNsXzi3vKiCT0gY/cZMILxdx6seWxqbTfaCWPkxE9rg0Mz8O9dVhiRJpKWlcfbsWRISEkhJSblmGZ1Wq+Wjjz4SCfBGriTAPXv24OPjg7e3Nx4eHpVawlYdpSezyF54CoWdioDJXVA6iRaKufz9w1ec2LqRwMiW3P/uJ2JJYTUYDXqObvyLvb8tLu8fbNy+E30ffhSfkLDyx+WujqN4XxpKV3nLVpWz9d/HkiRRUFBATk4OxcXFlJaWkp+fz2233SYS4I1UZRS4pv7d9+d6Swjud4Zb9Hy2JDP+AgsnvwCSxAPvfVavy13VBaVFhexbsZSYv9dhMhpQKJREDbidnqMewtnDE5POSOa30RgyS3Fo6YX32FZ18gunsp9vMQ+wFpQevYQhowSFgxrXvmKzI3ORJImt8/8HkkTzHn1E8jMDRxdX+o97nPEzv6NZt55Ikoljm9cz54Un2LdiKUZJj9f9LUCloOxUDsX70qwdco2IBGhhktFE/ia51LhrvyBx6WtGZ/buJDlWrvVny5OeLcGzUSBDX5rK6Okf06hpJPqyUnb/uoi5k57k3Ln95VcxeX9cQJtYYN1ga0AkQAsrPpSBMbsMpYsGl56i9Wcu+rIytl+u9df1nhE3nccmVF9wi9Y8+N5nDHr+Vdx8/SjKyWb9d1+w+o9PkYLVYJTIXnQKY6F19/aoLpEALUjSGyncLFfTcO0fgtJeVcEzhMrav/o3irKzcPP1p/NQMefPkhRKJS179eORmT/Q58Hx2Dk6kRl/npW7PqVUWYypQEf2wlhMutqt5WcOIgFaUNG+NIwFOlTu9rh0q/k8QkGWl57God9XAHDL2Alo7CpXf1GoGbWdHV3vGcGEr2fT/o7BGBUGtiT8gs5Uhi6xkOwFsRbfT8TcRAK0EFOpgcKtcsUXt1tDa3XmfEO3beFPGA0Gwtp2oGmXHtYOx+Y4ubkz8NGnGP/5d/i2iWBn+nIMJh3auDwyvjmCLrXI2iFWmvhUWkjB1iRMJQbUvo44dfS3djgNxvnD+zl/aD9KlYr+456ok1MwbIVXYDD3Tn6HDuPuZXvmrxTr8zHmaMn8LobCnclIpro/w04kQAswZJdStFueVe8+OEJUezYTXWkJm+Z8D0CnwcPwDhaVdKxNoVDQduCd9HnhMTZmLCSlJA4MEvnrLnJp9nEMuWXWDvGmRAK0gPz18WCUsG/mgUNz6ywXaoh2LV1IUXYW7v6N6DHiAWuHI/xLRIcuDJz4FLsyVnAoaz0mpYTuYj4ZXx6h+FBGrdQSrA6RAM1Mm1BA6fEsUIDH4MrVLhMqlnbuDNF//wHArY89g8a+YW5yVJ+17H0L/cc9zvnCo/yV8D+MnhKS1kju8rNkLzyFsdjyVaWrSiRAM5JMEnlr5QKOzl0aoWnkbOWIGgajwcCG/30DkkSrPv0Jb9vB2iEJN9Bx0D10vGsoRYY8Vh37Ajo6yqtGYrPJ/DYaXUrdGiCx+XpMWQtjMQZ4o/ZxxC7YBU2wK0q76s3XK96fhj6lCIWDqnx/VaHm9q1cSlZiPA6ubvQb+5i1wxEq0G/sBAqyLhF3cC9r1n/G6BdmoN+QgzG7jMzvj+I5rCnOnc0zMCiZJAyZJeiSC9GnFWMs0GEs1FFQULnVKTafALVxeRQn/atprlbg0MQDxygfHNv6VjoZGgt15P8dD4D7HeGoXO0sEK3tSTlziv0r5f19Bz46UVR5rgeUShWDnnuZ396dRlrcGVb/9AGjp32Mdn0GZadzyF1+Fn1akTxAqKx6F5FkktBeyKf06CVKT2VjKrr20lqvLa7UsWy+GkzqlrM4GewwpBejTSrEVPDPkh6Fgxrnzv649A5E7XHzPqecZWcoic5EE+SC3zPtq/UPK1xNV1rCgtefJz8jnZZ9+jPo2ZetHZJQBSUF+Sx54xXyMtJo1KQZI9/4gLI9mRRskldHOUb54DWqeaV3RZT0JooPplO0JxVDVmn57xV2KvnqLdAFtac9Slc7CvXFNOrcWJTDupHrlcuRJLk5XXoyW17Dm3N5CF+twKVHIG79Q65bzKDsfB5Zs4+DAvyebo9diGttvpQGa/33X3Jy2yZcfXwZ9+m32DuJPtX6Jic1hSVvvkJZUSGhUe2597W30MXmkfPbWTBK2IW74TO21U2LhEgmieKD6RRuTsR4uYGisFfh1N4XxzY+2Dd2v2ahgSiJX4GK/kCSSaLsbC5FO5LRXsgH5Bahx6DGOHXxLx/dNWkNZHx5BGOuFufuAXgOa1qrr6OhOr5lAxt+/BoUCka/9SHBrdpYOyShmlLPnmb5+2+g15YR0akrQ1+aij6hiOyFsUhlRtT+Tvg+FnXdbiNdUiG5q+PQXx48Ubnb4XpLCE4d/W+6tl7UA6whhVKBYwsvfB6PwueR1mgaOSOVGchdeY6sn09iyJN3rc//8yLGXC0qD3vc7wq3btANRHrcWTbPlSc89xr1sEh+9VxgZAuGvfYWao0dFw4f4M9vP8eusSt+E9uhdLXDkFHCpf8dw5ivLX+OZJIo2JJI5vcx8sCivQr3IRE0erULLj0CzVZYRLQAK1kRWjJJFO1KIX9DPBgkFA4qnKJ8KT6YDoDP41E4NPGwbNA2oDAniyVvvEph9iWadO7GPS9PQ2GhbQqE2nUx+hCrP30fk9FA8559ueuZl5Dy9FyafRxjvhaVlwO+j0ehUCnJWXYa7Xn5ysuxrQ8edzep0sCiuASuQHVL4uszS8j57Sz6pH+2zBSXvuZRVlzEsncmk5UYj2dgMA/N+Fz0+zUw5w7s4Y8vP8ZkNNKkczeGvPA6FJm49NNxjDllKN00YJQwFRtQaJR43NMUp05+VV5QIC6BLUTj54TfxLZkeWZiNBnI111i78XVGPR1b5Z7faIvK2PNZ++TlRiPs4cnw6dMF8mvAWrWtSf3vPoGao0d5w/tZ9XH0zE5Sfg92RajswlTgR5TsQGlrx1+z3XAubO/RVdTiRZgNTZFOrrxLzb9NAu10g4UYDDqCG7ZhqGvTMPRpfojwFf+KWxt+VxZcRGrPppO6tlT2Dk6Mvqdj/ELr/19Z4Xak3TyGKs+eQ99WSm+4RH4hUcQt2MPnXxup0ify0ViuW/q2/iEhlfr+OISuALVTYBJscdZ/v4bmIxGet8/lkZNIlk78wN0pSX4hoYz4s0ZV03WlSSJkvw8spMTyU5OJCc1heK8HEry8yjJz6esqBCjQY9Rr8doMIBCgUqtvnzToLKzw8HZRb65uODg4oq9swvO7h64eHrh7OmNi5cXzh5e2Dk61rvkWZB1idWfvsel+AvYOztz3+R3CIxsae2whFqQdu4MKz96h7Kif7qTOg66h8QTR+WVP84u3DdlOgHNmlf52CIBVqA6CTA/M51FU1+irLCA5j37Mvj5V1EoFFxKjGfFjDcpzsvFOziU3vePpTD7EsmnTpJ86gQl+XmWfTGXaewd5GTo6YWLpzcuXt64eHrh4uWNs6cXrl7eOHt4obarG6tULkQf5K9ZX1BWWICTuwfDp74rWn42RJIkNszeReyOFSDp0Di35o7HRxDc0olVH71D2rkzaOwduOfVNwiLal+lY4sEWIGqJsCSgnyWvf06OanJ+Ec0ZfQ7H5VXJDGZJE7viWXT7A/Ql+Vf81yFQom7vz/ewaF4BQbj4uWDs4cHTu4eOLi4otZoUGk0qNTyZNB/twgNOh1lxUWUFRWiLS6irKiI0sICSvLzKM7LoSgnh6LcHHSlJZV+7Q6ubrh6euHs5X05UV6bMJ3c3C02+pqTmsLuXxdxdu9OAPwaN2HoS1Nw92tkkfMJddOeFXFEb5RXhTi4aCi7vKQt6pZgugwJ4o8vPiDxxFFUajWDJ71OsypU/24wCfD5559n7dq1JCQkEB0dTfv27QE4d+4c48aNIysrC3d3d+bNm0fr1q0rfdyqJEBdaQm/vTeN9PPncPH24cH3PsPV24ectGLO7EvjzL50ivN1mIz5GEq3YzKk4uDSiA539CC0TRT+TZpZfN8KXVkpxblyMizKyb78czaFOTkU52ZTlJNNUW4OxkoO1iiUSvmy29UNBxcXHF1ccXBxxdHVFQdnVzQOjmjs7VHb26Oxs//nZ3sHlGo1CoUChUJ5eUmggtKCfC4lxnP+8H7ijx4BSUKhUNJx0FB63z+2zrRKhdoRvSGRPSvjAOg/pgUtegRwYO0FDq+Xt5D1DXXlloeasve374g7uBeFUskdE1+gdb+BlTp+g0mAO3bsICIigt69e7N69eryBDhgwADGjh3L+PHjWb58OR9//DEHDx6s9HEr+wcqKypi5Udvk3buDI6ubtw7eQbZqXac3ptGxsV/Kk7YO6tp0t4XryAXDv5xEW2JgfC2Ptz1ZBuUqrox2C5JEmVFheXJUP7v5eT4r9+VFOSDhd8WER270HPUw/g3bmLR8wh1z+l9aWyedwqAHvc1oePt/1ROij+WxaZ5sWhLDChVCjrdGUJWwlpO7dwCQJehw+l9/1iUqptPhG4wCfCK8PDw8gSYmZlJ06ZNycnJQa1WI0kSAQEB7Nq1i6ZNrz8fT6vVotX+M9O8oKCAkJCQm/6BCrOzWPXRO1xKjEfj4ExYu0dIu+CA0WAC5NUiYW28adG9EeFRPqguL+pOi8tjzVcxGPUmWvUK4JaHW9SrwQmjwUBJQR5lRUWUFRbIl91FhZT966bXatFry9BrtRi0WvQ6LQZtGfqyMkwmE5LJhARgMmEymbB3dsazUSChbdrRrFtPvAKDrf0yBStIOJnNulnHkEwS7W8NodeIZtc8pjhPy7bFZ4g/lgWAZ4ATru5HOLv3TwCCW7Xhzqcm3bTLpLIJsF6Ww0pKSiIgIAC1Wg5foVAQGhpKYmLiDRPghx9+yPTp0yt9jvhj0az76hPKigpRqJxR2A0n+awdYMI7yJkWPQKI7NoIJ7drL90Cmnpw+4TWrP/xOLG70/AMcKb9raHVeq3WoFKrcfXywdXLx9qhCA1IbnoxG2afQDJJNO/WiJ73Xf+z6uxhz6Cnoog7lMmOpWfJTSshN60F/s1cyE5YS3LsCea9/Azdh99Px7vurlF18HqZAKtjypQpvPTSS+X/f6UFeIUkSRRmXSLxxFGObd5G2rmjAChUfmic78bR1ZvILv606BmAb6hrhS26iPa+9BrZjF2/nmPPiji8Ap0JbeVtmRcnCHWctkTPn98fR1dmJKCpO/3HtLhpyTiFQkGzLv6EtPLi8F/xHNuWTH5WMEqHB3Bw2EZZwUV2LZnPoT9W0e7Wu2jWrSd+YY2rPHBXLxNgSEgIaWlpGAyG8kvgxMREQkNv3Mqyt7fH3v7agYh1X3+KpC0lOynxmpFUlX07GncaRqteoTRu54NaU7UF2G37B5OdXMSpPWls+OkkIyZ3xsPPqUrHEIT6zmSS2DDnJHkZJbh42nPnE1GoKrlPtoOzhl4jmhHVP5gDv1/k7AEFJuMwNE6xmPT7KSvMY/+qZexftQxHN3e8g0Jw8/VDT+W6nOplAvTz86Njx44sWrSI8ePHs2LFCoKDg294+XszF44cwEFzpRaZEoXKF7V9BC1796PHfZ1x8ax+81qhUNDvgebkpheTfqGAv344zojJndFUs+S+INRH+9dcIPFkDmqNkkFPtb1ut1FF3LwduXV8K7oNjeD41mRO7tKgLWmJUh+HUReLZEyitCCf5IJ8OAVllZ3tUNcHQZ588knWrVtHeno63t7euLq6EhcXx5kzZxg/fjzZ2dm4ubnx888/ExUVVenjXukk/ejBD3C090Ch8sLRzZ/WvYNpNzC0Wv9IN1Kcr+XXGQcpKdDRsmcAA8aKlQ6CbUg4mc0f38jdSbdPaE2zLubZC0RXZuBizCXOHcokKTYHo9GAZMxEMuUjmQoo1RYyZekHDWcU2NyuJMD572ylcYtAgpp7Etbau3wk19ySz+Sy9stoJAluHd+S5t0DLHIeQagrivO0LJtxgNJCPW36BdHvgaovaauMsiI9ibHZpF8sICuxkJJCHbk5eTw/a5BIgDdSk2II1XXgj4sc/OMiajslo6Z2wVNsmyk0UCaTxNqvokk5k4d3sAsjXu9U5T70mhDlsOqgzoPCCWruiUFnYuPcWIxGk7VDEgSLOLI+npQzeajtVdzxWOtaTX5VIRJgLVIqFdz2SCvsndRcSizk8J/x1g5JEMwuM6GAA3/EA9Dvgcg6faUjEmAtc/awL+8LOfRXAhnxldvAWRDqA4PeyKZ5p5BMEk07+dGijvd1iwRoBc26+NO0sx+SSWLzvFgMOqO1QxIEs9i/9iK5acU4utlZbNDDnEQCtJJ+9zfHyc2O3PQS9q2+YO1wBKHGUs/lEXN50/P+D7fAweXGe/3WFSIBWomDi4b+Y1oAcHRLEqlxedYNSBBqQK8zsnnBKZCgRc8AGretH+vIRQK0ovAoH1r2lPtItv1yprzKjCDUNwf/uEjBpVJcPO3pPfLaCi91lUiAVtZzeFMcXTXkphUTvSHB2uEIQpVdSiokZlMSAH0faI69Y/1ZYSsSoJU5OGvKvzEP/ZlAXkblS9sLgrWZTBLbFp1GMkk06ehbby59rxAJsA64UvbHaDCxbfFpbHRxjlAPHd+aTGZCIXaOavqMjrR2OFUmEmAdcKVqjFqjJOVMHqf3pls7JEGoUFFuGfvWyjMYet7XBGd3y+57YwkiAdYR7r6OdBnSGIA9K+MoK65cOR9BsJY9K+IwaI00inCnVa9Aa4dTLSIB1iHtbg3BM8CZsiI9B/+4aO1wBOGGUs7kcu5QJgoF9H0g8qbVnesykQDrEJVKSZ9R8oDI8e0pZKcUWTkiQbiWyWhix7KzALTuE4RviKuVI6o+kQDrmJCWXkR08EUySez89awYEBHqnOPbU8hJLcbBWUO3eyKsHU6NiARYB/Ua3hTV5QGR80cuWTscQShXUqDjwO9y90y3eyJwcK77y91uRiTAOsjNx5GOt8sbPO1ecQ69KJYg1BH7Vp9HV2rAN9SVVr3r58DHv4kEWEd1uCMMFy97inK0xGxMtHY4gkBGfAGn9qQB0Pf+SJT1dODj30QCrKM0dqryjaOPbEikOF9r5YgEWyZJEruXnwOgebdGNIpwt3JE5iESYB3WtJMffuFuGLRGMS1GsKqLR7NIi8tHpVHSfVj9Hvj4N5EA6zCFQkGv4XIrMHZ3GjlpxVaOSLBFRqOJPSvjAGh/a0iN9squa0QCrOMCm3nQuJ0Pkkli76rz1g5HsEEnd6SSn1mKo6uGjneEWTscsxIJsB7ocW8TFEoF8ceySD2Xa+1wBBuiLTWUd790vTsCO4f6U+qqMkQCrAc8GznT+vKUg93L45BMYnK0UDuOrI+nrFiPZyMnWvWq2xscVYdIgPVElyGN0diryEwoJO5wprXDEWxAQVYpRzcnA9DzvqYoVQ0vXTS8V9RAObnZ0fEOeXL0vjXnRfl8weIO/H4Ro8FEUHNPwqK8rR2ORYgEWI+0GxiKk7sdBVllnNqdau1whAYsO7WIMwfkupQ972uCQlH/Jz1fj0iA9YjGXkXnu8IBOPhnvFgiJ1jM/jUXQIImHXzxC3OzdjgWIxJgPdOqdyCu3g6U5Os4sS3F2uEIDVD6xXwuHs1CoYCuQxvOpOfrEQmwnlGplXQZLFeOPvJ3ArpSg5UjEhqafavlMvfNuzfCK8DZytFYlkiA9VDzbv54+DtRVqwnZnOStcMRGpCkUzmknMlFqVaUb9HQkIkEWA8pVUq63i2/OWM2JVJWJPYPEWpOkiT2rZZXG7XpE4Sbt6OVI7I8kQDrqaYd/fAJcUFfZuSI2FBdMIOLMVlkJhSitlfR6fJgW0MnEmA9pVAq6Ha5g/r41mRRLkuoEZNJKt/isv3AEJzc7KwcUe0QCbAeC2vjTaMINwx6E4f/Eq1AofrO7k8nN60Yeyc17W8LtXY4tUYkwHpMofinFRi7K5WiXNEKFKrOaDRxcJ1c8KDjHWHYOzasggc3IxJgPRfU3JOApu4YDSbRFyhUy5m96RRkleHoZkdU/2Brh1OrRAKs5xQKBV0vT1eI3SlagULVGA0mDv0VD0DH20PR2KmsG1AtEwmwARCtQKG6Tu9NozC7DCc3O9r0DbJ2OLVOJMAGQLQCheq4qvV3RxhqG2v9gUiADYZoBQpVdWpPGkU5Wpzc7Wjdp/7v8VsdIgE2EKIVKFSF0WDisI23/kAkwAZFtAKFyjq1J42iXNtu/YFIgA2KaAUKlWHU/9P663RnGGqNbbb+QCTABke0AoWKxO6WvxydPexp1dt2W38gEmCDI1qBws0Y9SYOr5e/GG299QciATZIV7UC/xatQOEfsbtTKc673PrrZdutPxAJsEG6qhW4S37DC4JBb7yq70+lER9/8RdooEQrUPiv2F2pFOfrcPEUrb8rRAJsoBQKRfneISd3pYp6gTbOoDf+0/d3V7ho/V0m/goNWHALTwKauGPUi1agrTu5M5WSy62/lj0DrB1OnSESYAN2VStwp2gF2iqDzsiRf7f+1OJjf4X4SzRwwS09aRThhlFvInpDorXDEazg5M5USgp0uHo5iNbff4gE2MBd1QrckSJagTbGoDOWd390uitMtP7+Q/w1bEBIKy/8G8t7h0RvFK1AW3JiR4rc+vN2oIVo/V1DJEAboFD8s8n1ye3yB0Jo+PQ6I0cud3t0HhSOSiU+7v9V7/8i4eHhNG/enPbt29O+fXuWLVtm7ZDqpNBWXviFi1agLTmxPYXSAh1uPg40797I2uHUSQ1i+6dly5bRvn17a4dRp8l9geGsm3WME9uT6XBbqM3s/WqL9Foj0Rv+NfIrWn/XZTN/Fa1WS0FBwVU3WxPWxhu/MFcMOhMxohXYoB3fnkxpoV60/irQIBLg2LFjiYqKYsKECVy6dOm6j/nwww9xd3cvv4WEhNRylNb3775A+QMi+gIbIl2ZoXzKU+dBjUXr7ybq/V9mx44dHDt2jCNHjuDj48O4ceOu+7gpU6aQn59ffktKSqrlSOuGq1qBm0QrsCE6sT2FsiI97r6ONO/mb+1w6rR6nwBDQ0MB0Gg0TJo0iZ07d173cfb29ri5uV11s0UKhYLOl+cFHtuWQmmRaAU2JFe1/gaHoxStv5uq13+d4uJi8vLyyv9/yZIldOjQwXoB1RPhUd74hrpi0BqJ2WibLeGG6vi2ZMqK9bj7ORLZRbT+KlKvE2BGRgb9+/enbdu2REVFsX37dhYsWGDtsOq8KyPCcPkDU6S3bkCCWehKDeVTnLoMbixaf5VQr6fBREREEB0dbe0w6qXwtj74hLiQlVREzKZEug9rYu2QhBo6tjUZbbEBD38nmonWX6WIrwgb9e81wsdEK7De05Yayge1ugwJR6lUWDmi+kEkQBvWuJ3cCtSXGYnZLEaE67NjW5LQlhjwbORE006i9VdZIgHaMIVCQZdBl1uBW+XOc6H+0ZboObpZHszqMqSxaP1VgUiANq5xOx+8g+RW4JUPkVC/HN0st/68Ap1p2tHP2uHUKyIB2jiFUkGXIeGA/EESq0Pql7Lif7X+BjdGIVp/VSISoEBEO198Q13Ra40c/kvsHVKfHN2chK7MiHeQM006+Fo7nHpHJEABhVJBj8vTYI7vSKYgu9TKEQmVUVas5+gW0fqrCZEABUDeOySouScmg8TBPy5aOxyhEmI2JqIvM+Id7EJEe9H6qw6RAAVAHhG+0go8sy+d7NQiK0ck3ExJgY6jW5MB6DpEtP6qSyRAoZx/YzciOvgiSbB/zQVrhyPcxJH1CRi0RvzCXGnczsfa4dRbIgEKV+k2NAKFAi4ezSL9Qr61wxGuozCnjOM75NZf92FNUChE66+6RAIUruIV4EyLHvLuYftWn0eSJCtHJPzXoXUXMRkkgpp7ENzC09rh1GsiAQrX6DKkMUq1gpSzeSScyLZ2OMK/5GWUcGpvOgDd7xGtv5oSCVC4hquXA21vCQZgz4o4jEaTlSMSrjjw+wUkk0R4lDeNItytHU69JxKgcF2dB4Xj4KIhN72EE9tTrB2OAGQlF3LuUCYA3e6JsHI0DYNIgMJ12Ttp6DZU/pAd/OOiKJdVB+xfK8/PbNbZD59gVytH0zCIBCjcUKvegXgHuaAtMXBATI62qvQL+cQfy0KhVND1btH6MxeRAIUbUioV9B7ZFIATO1K4lFRo5YhskyRJ7Ft9HoCWPRrh4e9k5YgaDpEAhZsKbuFFk45+SCaJbb+cwWQS02JqW8KJbFLO5qFSK8t39BPMQyRAoUJ9RjXDzkFFZnwBJ3eIAZHaZDKa2LNSbv21HRCMq5eDlSNqWEQCFCrk7GFfvmnS3tXnKc7TWjki23F6Xzq5acXYO6vpdGeYtcNpcEQCFCqldd8g/Bu7oS8zsn3JGbFCpBbotUb2r5XXZHcZ1Bh7J42VI2p4qrQtpslkYvv27ezcuZOEhARKSkrw9fWlQ4cO3HrrrYSEhFgqTsHKlEoFtzzUgt8+PMjFo1mc2p1Gq96B1g6rQTu6OZGSfB1uPg606Rtk7XAapEq1AEtLS3n//fcJCQlh0KBB/PXXX+Tl5aFSqYiLi+Ptt9+mcePGDBo0iH379lk6ZsFKfIJdyifg7vz1LHkZJVaOqOEqKdBx5G95p77u9zRBpREXa5ZQqRZgZGQkPXr0YPbs2dx2221oNNc2xRMSEli8eDH3338/06ZN4/HHHzd7sIL1dbg1lMSTOaScyWXDnJMMf60TKrX4cJrbwXUX0V8ud9W0k9joyFIUUiU6c06dOkXLli0rdUC9Xk9iYiJNmjSpcXCWVFBQgLu7O/n5+bi5uVk7nHqlKFfL0vf2oy0xENU/mL6jI60dUoOSm17MkncPIJkkhr3YgaDmouJLVVX2812pr+6WLVty4sSJSp1Yo9HU+eQn1IyLpz0DxspfiMe3JnNyp5gaY077Vv9T8EAkP8uq9LVL27Zt6datG7Nnz6awUKwIsHUR7X3L1wrvWHKW+ONZVo6oYUg5m8uFmEsoFND9XtGQsLRKJ8Dt27fTunVrXn75ZQICAhg3bhw7d+60ZGxCHdfprjAiu/pjMkn89eNxUTuwhkwmiZ2/ngMur8MOdLFyRA1fpRNgnz59mDt3LmlpaXzzzTfEx8fTr18/IiMj+fjjj0lPT7dknEIdpFAoGDCuJU06+GIySPz5/TFO7EgRcwSr6dTuVLKTi7B3UotyV7WkysN3zs7OPPLII2zfvp2zZ88ycuRIZs2aRWhoKEOHDrVEjEIdplIpue2x1jTt7IfJKLF98Rk2zo2lMKfM2qHVK9oSPfsub0TVZUhjHF3srByRbajUKPDNFBcX88svvzBlyhTy8vIwGo3mis2ixCiweUmSRPSGxMv7iIBKoySyqz9BkZ44OGtQa5So7VTYO6txcNZg76gWWzn+y65fz3F0SxKejZwY/WZXVCoxtagmKvv5rtJKkH/bsWMHc+fOZcWKFSiVSkaNGsWECROqezihnlMoFHS8I4ygSE/2rIwj9Vwep3ancWp32vUfr1Tg6mWPu68j7r5OeAU64xfuhk+Qi81N+s1JK+b4NnmXt96jmonkV4uqlABTU1OZN28e8+bNIy4ujp49e/L1118zatQonJ2dLRWjUI/4N3Zj2EsdSD2Xx/noS2QnF6HXGjHojOi1RspKDBi0RiSTREFWGQVZZSSdyi1/vlKlwC/MlZCWXoS08sY/3BVlA04IkiSx+7dzmEwS4W19CG3lbe2QbEqlE+Bdd93Fpk2b8PHxYezYsTz66KM0b97ckrEJ9ZRCoSAo0pOgyOvPYTPqTZQW6SjIKiP/Ugl5GaVkJReSGV9IWbGe9AsFpF8o4OC6eOyd1TRp70vTLvLltLKBXTbHH8siMTYHpUpBrxFNrR2Ozal0AtRoNCxfvpwhQ4agUqksGZPQwKk0Slw8HXDxdCCwmUf57yVJbhWmnM0lKTaHpNM5aIsNxO5OI3Z3Gk5udrTsFUDrPkENoi6eXmtkx7KzALS/NQQPP1HpubZVexAkLi6O8+fP07dvXxwdHZEkqV7tUSoGQeo+k0ki9Vwe5w5lcP5IJtpiAwAKBYS39aHD7WEENKm/W0PuXRXHkb8TcfVy4IG3u6GxFw0Lc7HYIEh2djajRo1i69atKBQKzp07R0REBBMmTMDT05PPP/+8RoELwhVKpYLg5p4EN/ek7/2RXIzJ4sSOZFLO5HHxaBYXj2YR1NyTLoPCCYz0qFdfwNmpRcRsTAKgz+hmIvlZSZV7l1988UU0Gg2JiYk4Of3TZB89ejTr1683a3CCcIVKpaRpJz+GvdiRB97uRsteASiVClLO5LL6i2jWfhVDVnKRtcOsFEmS2LHkbPnAR+N2vtYOyWZVuQW4YcMG/v77b4KDg6/6fbNmzUhISDBbYIJwI14BzgwY05LOg8KJ3pBI7O5Ukk/n8uuMA7TsGUC3e5rg5FZ3JxKf2Z9O6rk81HZK+oxuZu1wbFqVW4DFxcVXtfyuyMnJwd7e3ixBCUJluHk70u+B5jz4dnd55zoJYnensfidfcTuTq2TS/LKivXsWREHQJfBjXHzdrRyRLatygmwT58+LFiwoPz/FQoFJpOJTz75hP79+5s1OEGoDHdfR+58og33vdIR31BXtCUGti48zZovoutc1eo9K+IoLdTjGeBMu4FiCwlrq/Io8IkTJxg4cCAdO3Zky5YtDB06lJMnT5KTk8Pu3bvrTS1AMQrcMJmMJo5uSebA2gsY9KbLl5mRtOwZYPVBkqTYHNZ+HQMKuPfljgQ29bBqPA2ZWQui/lubNm04e/YsvXv35p577qG4uJj77ruP6OjoepP8hIZLqVLS4bZQHni7G0HNPTDoTGxdeJq//3eCsmK91eLSlRnYuug0AFG3BIvkV0fUuBhCfSVagA2fZJKI3pjI/jUXMJkkXDztuWtiFH5htf/vvWPpWY5vS8bV24H73+yKnUO1l+ELlWDWFmBiYmKVTp6SIkqkC9anUMoFGoa/3gl3X0eKcrWs/PQIp/ak1mocqefyyosd9H+4hUh+dUilEmCXLl148sknOXjw4A0fk5+fz+zZs2nTpg0rVqwwW4CCUFN+YW6MnNqF8LY+GA0mtiw4zfbFZzAaTRY/t0FnZMvCUwC07BVASEsvi59TqLxKfRXFxsYyY8YMbrvtNhwcHOjUqROBgYE4ODiQm5tLbGwsJ0+epGPHjnzyyScMGjTI0nELQpXYO6oZNDGKQ3/Fc+CPi5zYkUJBdil3PN7Goi2y/WsvkJ9ZirO7Hb2Gi2IHdU2V+gBLS0tZt24du3btIiEhgdLSUnx8fOjQoQN33HEHbdq0sWSsZiX6AG3XxaOX2DDnJAadCZ8QF4Y80w5nD/PPYU0+k8uaL6NBgkFPt6VxWx+zn0O4vsp+vsUgiEiANikjvoB1s45SWqjHxcueIc+2M+smRNoSPUvfO0BRrpZWvQPp/3ALsx1bqJjFpsEIQkPgH+7G8Nc64+HvRFGOllWfH+FSovm2e92+5CxFuVrcfR1Fnb86TCRAwWa5+zoy/NVO+IW7oS02sPqLaNIv5Nf4uGcPpHPuYAYKpYJbH2klRn3rMJEABZvm4KLhnhfaE9DUHV2pgbVfxZB6LrfiJ95AYU4Z25fIRU47DwqnUUT9rVdoC0QCFGyenaOau59rT1BzT/RaI79/fZTkM1VPgiajiU0/x6IrNeDf2I3Od4VZIFrBnKpVDUYQGhqNvYohz7QltLU3Br2Jdd8dq/Ll8IHfL5J6Lg+NvYpbx7dq0Js5NRRV/hfy9/fn0UcfZdeuXZaIRxCsRm2n4q6JbQhu4YlBa+T3b45WemAk4UQ2h9fL9TD7j2mBh7/Y36M+qHICXLRoETk5OQwYMIDIyEg++ugjUlNrd2mRIFiKWqNi0FNtCWhyuU/w6xhy0m5+1VOYU8bGn08C0KZfEM06+9dGqIIZVDkBDhs2jNWrV5OSksLEiRNZvHgxYWFhDBkyhJUrV2IwGCwR5w2dO3eOnj17EhkZSZcuXTh58mStnl9oeDT2KgY/2w7fUFfKivSs/TKaguzS6z7WaDDx9+wTaIsN+Ia60nuEqPBcn1S7k8LX15eXXnqJY8eOMXPmTDZt2sSIESMIDAzkrbfeoqSkdgpRPvnkkzzxxBOcPXuW119/nfHjx9fKeYWGzd5Rzd3Pt8Mr0JnifB1/fHP0uuW09q46T8bFAuwc1dz5RBtUGtHvV59UeyVIRkYG8+fPZ968eSQkJHDvvfcyYcIEkpOT+fjjjwkMDGTDhg3mjvcqmZmZNG3alJycHNRqNZIkERAQwK5du2ja9OrJp1qtFq1WW/7/BQUFhISEiJUgwk0V5Zax4pPDFOVqCWjqztAX2qPWyDu4ndmfzqafYwG4a2IUEe3F5kZ1hcVWgqxcuZK7776bkJAQFi9ezNNPP01KSgqLFi2if//+jBkzhjVr1rBt27aaxF8pSUlJBAQEoFbLE00VCgWhoaHXLd/14Ycf4u7uXn4LCRHlyIWKuXg6MOTZdtg5qkmLy2fT3FhMJonMhILyAqcd7wgTya+eqnICfOSRRwgMDGT37t3ExMTw7LPP4uHhcdVjAgMDmTZtmrliNIspU6aQn59ffktKSrJ2SEI94R3kwqCJUSjVCs5HX2LrotP8+f1xjHoT4VHedLsnwtohCtVU5UvgkpKS6+4KZw1VuQT+L1EMQaiqc4cy2PDTP4Nsno2cGPF6Z+wcxVK3usZil8AGg4GCgoJrboWFheh0uhoFXVV+fn507NiRRYsWAbBixQqCg4MrTH6CUB3NOvvT1lPuXlHrixk40EEkv3quyi1ApVJ50921goODGT9+PG+//TZKpeVHxM6cOcP48ePJzs7Gzc2Nn3/+maioqAqfJ1qAQlVlz5tH5kcfk+veFMeybFzcNYQv/w2Nn5+1QxP+o7Kf7yp/fc2bN49p06Yxfvx4unbtCsCBAweYP38+b7zxBpcuXeKzzz7D3t6eqVOnVv8VVFLz5s3Zu3evxc8j2LaCP/8k86OPAWj20G0UbNiALu48yc89R9iCBSjtzV9QVagFUhUNGDBAWrZs2TW/X7ZsmTRgwABJkiRpwYIFUvPmzat66FqVn58vAVJ+fr61QxHquMJdu6TYNlFSbPMWUtq770kmk0nSxsdLp7t2k2Kbt5BSXp8smUwma4cp/EtlP99Vvkbds2cPHTp0uOb3HTp0KG+J9e7du8o7yQlCXVR6/ATJzz0Pej2ud92J/9QpKBQK7MLCCP5iJqhU5K9eTc78+dYOVaiGKifAkJAQ5syZc83v58yZUz63Ljs7G09Pz5pHJwhWpL14kaQnnkAqKcGpR3cCP/4YhUpVfr9zz574v/4aAJmffErx/gPWClWopir3AX722WeMHDmSv/76iy5dugBw6NAhTp8+zfLlywE4ePAgo0ePNm+kglCLdMkpJE14DGNuLg6tWxP8zbco7eyueZznmDGUnYwlf80aUl5+mcYrV4hBkXqkWkvh4uPj+fHHHzlz5gwgD0Q8+eSThIeHmzs+ixGjwMKN6FNSSBg7Dn1KCnbh4YT9sgi1t/cNH28qLSV+9P1oz57FqXNnQuf9jEItpsdYk0V2hdPr9dx555388MMPNGtWv6teiAQoXI8+LY2EMWPRJyejCQslbMECNP4Vl7fSXrxI/IiRmIqL8X5sAn6vvFIL0Qo3YpGJ0BqNhmPHjtU4OEGoi/Tp6XLLLzkZTWgoYfPnVyr5Adg3bkzAjBkAZP80h8LNmy0ZqmAmVR4Eefjhh687CCII9ZkuPp6EBx9Cn5SEJjiYsPnz0DRqVKVjuN15B17jxgKQOnkKOjETos6rckeFwWBg7ty5bNq0iU6dOuHs7HzV/TNnzjRbcIJQG8pOnSLxsccxZmfLl71z56IJCKjWsfxeeYXSY8cpjY4m+YVJhC9ZjNLBwcwRC+ZS5QR44sQJOnbsCMDZs2evuu9mS+QEoS4qOXSIpIlPYSoqwr5lS0Jn/w+1j0+1j6fQaAj6YiYX770P7alTZH7yCY3eesuMEQvmVO2CqPWdGAQRCv7eQOprryFptTh27kTI99+jcnU1y7GLdu0m6bHHAAj65mvcbrvNLMcVKsdi1WCuiIuL4++//6a0VN4rwUbzqFAPSZJE1g8/kvLCC0haLS633ELoTz+ZLfkBuPTuhdeERwFIe+NN9GLjsDqpygkwOzubgQMHEhkZyaBBg0hLSwNgwoQJvPzyy2YPUBDMyaTTkTZ5Mpe+/BIAz7FjCP72G4v00/m98AIOUVGY8vNJefU1pFreMEyoWJUT4IsvvohGoyExMfGqwqijR49m/fr1Zg1OEMxJn55O4rjx5K9ZCyoVjd55m0ZTp1ps0rLCzo6gmZ+jdHam9PBhsr773iLnEaqvyglww4YNfPzxxwQHB1/1+2bNmpGQkGC2wATBnIp27ebivfdRGh2N0tWV0Nn/w/P++y1+XruQEBpNnw5A1vffi/XCdUyVE2BxcfF1S+Ln5ORgL2qiCXWMZDRy6euvSXr8cYy5udi3aknjFctx7tmz1mJwHzIY9/vuA0ki9dVXMeTm1tq5hZurcgLs06cPCxYsKP9/hUKByWTik08+oX///mYNThBqQpeQQMKYsfKlpyThcf9owpcswS40tNZjafTGNOwaN8aQmUna1Gli0LCOqHLnxyeffMLAgQM5dOgQOp2O1157jZMnT5KTk8Pu3bstEaMgVIlkMpG7eAmZn3+OVFqK0tmZRu+8g/vdQ6wWk9LJiaCZnxM/ajRFW7eSu3ARXmPHWC0eQVblFmCbNm04e/YsvXv35p577qG4uJj77ruP6OhomjRpYokYBaHSdPHxJD46gYz330cqLcWpe3ci1q6xavK7wqFlS/xeu1w/8NNPKbtcTUmwHjERWkyEbhBMJSVk/fg/cubORdLrUTg64vfKy3g+8ACKWticq7IkSSJ54lMUbd+OXdMmNP7tN5SOjtYOq8Gx2KZIAHl5eRw4cIDMzExMJtNV940dO7Y6hxSEapFMJgrWrSPziy8wpMpzUp1796bRm29gFxZm5eiupVAoCPjwAy7ccw+6uPNkfPwxAe+8Y+2wbFaVW4C///47Dz30EEVFRbi5uV21/lehUJCTk2P2IC1BtADrN0mSKNq2jUtffoX28qWkOjAA/ylTcL311jq/Lr1o926SJshL5YK//QbXW2+1ckQNi0UKogLlK0A++OCD606HqS9EAqyfJIOBwo0byf5pDmUnTwKgdHXFe8IEvMaOQVmP3pMZn3xKzty5qNzdabx2TaVrDwoVs1gCdHZ25vjx40RERNQ4SGsSCbB+MeTmkr9mDbm/LEaflASAwsEBr4cfwvuxx1B5eFg3wGqQdDri73+AsthYnLp1I3TunKs2XRKqz2J9gHfccQeHDh2q9wlQqPtMOh3Fe/aQv2YNhZs2g14PgMrDA8+HHsLzoQdRe3lZOcrqU9jZEfj5Z1y8bzgl+/eTPWcuPk88bu2wbEqVE+DgwYN59dVXiY2NJSoqCo1Gc9X9Q4cONVtwgu3RZ2RQcuAARVu3UbR9O6bi4vL7HFq3xmPkCNzvuafBjJzaN25MozemkTbtDS59/TXO3bvh2LattcOyGVW+BFbeZEqBQqHAaDTWOKjaIC6BrUuSJIzZ2WjjzqM9e4ay02coPXwY3X/Wk6v9/XG97TY87rsXh1atrBStZUmSRMqLL1G4fj2a0FAar1yJysW54icKN2SxS+D/TnsRhP+SJAndhQsU796NPiUFw6UsTGVlSGVlmEpLMVy6hCEjA+nyJe1VlEocWrbEuWcPXG+9FYeoqDo1j88SFAoFAdPfofTYUfSJiWS89x6BH39k7bBsgti8VDAbyWCgYN06smbPRhd3vlLP0YSEYN88EofI5jhEtcGpUydUNtgiV7m7E/TJJySMHUf+mjU49+5dJ1avNHSVToCDBg1iyZIluLu7A/DRRx8xceJEPC6PvmVnZ9OnTx9iY2MtEqhQt5UeO0bq1KnliU+h0eDUvTv2kc1Q+/qidHRC6eiAwsEBtY8vGn8/1L6+KOzsrBx53eHUuTM+EyeS9d13pE+fjmOH9tj9p+ycYF6V7gNUqVSkpaXh5+cHgJubGzExMeWjwRkZGQQGBoo+QBsjmUxkzfqOrO+/B5MJlbs7XhMm4PnA/WYtMW8rJIOBhDFjKY2OxrF9e8IWLbRYwdaGzOx7gvw3T9roEmLhX4xFxSQ/+xxZs2aByYTbkCFErP8LnyceF8mvmhRqNYGfforSxYXSmBiyvvvO2iE1aA27d1mwGENuLoljx1K0ZQsKOzsCPvqQoM8+Re3pae3Q6j274CAaTX8HgKwffqTk4EHrBtSAVToBKhSKa9ZX1vX1loJlGC5dInHsWMpiY1F5eRG2aCEew4ZZO6wGxX3wYNyHDQOTiZTXXseYn2/tkBqkSncuSJLE+PHjy8vel5WVMXHiRJyd5flKWq3WMhEKdYo+I4PEsePQJSSg9vMjdN7P2ItVQRbh/8YblEQfQZ+QSNpbbxP05Rei0WFmlR4EeeSRRyp1wJ9//rlGAdUWMQhSdca8POIffhhd3Hk0gYGEzvvZKuXlbUnp8ePEP/AgGAwEvP8eHiNGWDukesFixRAaCpEAq8ZUWkriI49SGhOD2s+PsMWLsQsOsnZYNiFr9mwufT4ThaMjjVeswD6isbVDqvPMPgrcUBXu3ElpTIzoY7kJSa8nedIkSmNiULq5EfLTbJH8apH3hAk4de+OVFpKyisvY9LprB1SnSNJEvqMDIr37adg/d/krlpVqefZfAvwQNNmuFwuQaTw8capdWucu/fAuWcP7CMjbb7PRZIk0iZPIX/NGhQODoTOnYNTx47WDsvm6DMyuHjPMIx5eXg98gj+r79m7ZCsSpIktKdPU7x/P9m7tqGNOYq6qKz8/iKjka5x58Ql8I1cSYDLejUjQKvCp/Dax2iCgnC7ewjud9+NvY1u+JT1/fdc+uprUKkInvUtrrfcYu2QbFbh5s0kP/MsACE//YRL715Wjqj2aS9cIH/tWgp+/wN9SspV9xkVkOEJec6QrTTx5IazIgHeyJUE+MfJP0jSJxF9cTdZsdE0S5Foe1GidRLY6f/50zh16YLXI+NxueWWBr84/4qC9X+TMmkSAI2mT8dz9CjrBiSQNn06eUuWovLxIWLNatTe3tYOyeIkk4mibdvJ/uknSo8cKf99mQZiQxTEhitRdowiqH1PIv1a4+3oDaXQPqy9SIA3cr1O0sySTJacXsKy08soKymgc5zEyIv+BJ/MBIO8xM8uLAyfZ57GbfDgBl29t/T4CRLGjEEqK8Nr3Fj8p0yxdkgCYCor4+KIEejizuPSrx/BP3zfYLtpJEmi4M8/yf7hR7TnzgFgUik40hh2tlFwpqUbD7Yfz/DI4fg4+lz1XDEKXIGb/YHyyvL4Jvobfjv7GxISUaZA3kzphHLtZkwFBQDYNW2C36RJuAwc2ODegPqMDOJHjsKQmYlz3z6EfPedWI9ah5SdOUP8yFFIOh3+06bhNeZha4dkdqXHT5DxwQeURkfLv3ByZHMnDcvaF5PvouTBlg/yVLuncLd3v+7zRQKsQGX+QIfSDzFl1xTSi9NxVDvyYae3abc9hew5c8oToXPPnvi/Ma3BTAY2lZaS8PAYyk6exK5pE8KXLBHreuugnIWLyJgxA4WdHeG//YpD8+bWDsksjAUFZHzyCfkrVoIkoXB0JHd4PyY32kmORkuQSxAzes+gk3+nmx5HTIMxg86NOrP87uX0DOxJqaGUSfsns7GfK003bcT7ySdR2NlRvGcPF4beQ8bHn2AsKq74oHWYZDKROnkKZSdPovL0JOT770Xyq6M8H34Il379kHQ6Ul5+GVNpqbVDqrGi3bu5MPQe8pevAEnCbejdHPnqUZ4I2USORkuvwF4sG7KswuRXFSIBVsDd3p1ZA2fxQIsHAPhg/wcsSlqF34uTiPjjd1z69weDgZyff+bC0Lsp2r3byhFXX9a3syj8+2/QaAj+5mvsQkKsHZJwA1c2WFf5+sgbrH/wgbVDqjZTWRnp775L0oTHMKSnowkLJXTRQn4bHciHF38E4OGWDzNr4KwbXvJWl0iAlaBWqpnSdQqPR8k7dn126DNmH5uNXWgoId9/R8j/fkQTHIwhNY2kCY+R9uabGAuvM6+mDitYv7689FLAO+/g1LmzlSMSKqL28iLo449BoSDvt+Xkrazc5N+6RJeURPwDD5K7eAkAng89ROOVK5mt2MWcE3MAeLHTi7zW5TVUSvMPOooEWEkKhYLnOz7PM+2fAeDr6K9ZenopAC59+xKxdg2eD8ud0Xm/LefC3UMp2rnTavFWRVlsLKmT5VFer/Hj8Rh+n5UjEirLuWdPfJ6T5wamT59O2enTVo6o8gq3bePi8BFoT51C5eVFyJyfaPTmG/wUt6g8+U3rNo1H2zxqsYFGkQCraGK7iTzd/mlAvhzelLAJAKWTE43emEbYwgVoQkMxpKeT9PgTpL/7Hqayspsd0qoMWVkkPfMsUlkZzn364PfqK9YOSagin4kTce7bB0mrJfn5FzBeHqCrqyRJImv2bJInPoWpoACHdm1pvHIFLr16Mf/kfL6N+RaAVzq/wv0t7rdoLCIBVsPEthMZGTkSCYnXd7zO4YzD5fc5delCxJrVeI4ZA0Du4sXEjxxJ2Zmz1gr3hkw6HcnPPY8hLQ27xo0J+vyzBj23saFSKJUEfvwxmsBA9ImJpE6dWmcrtksGA+lvv8Olz2cC4PHA/YQtXIimUSN+P/87nx36DIBn2z/LuNbjLB6PSIDVoFAomNptKreE3ILOpGPS1kmkFqWW3690dKTRtKmEzP4fKh8ftOfiiB85kpyFi+rMG1OSJNLfmU5pdDRKV1eCv5tlk7uxNRRqT0+CvvoKhUZD0abN5Myda+2QrmEsKibpqafJ+/VXUCjwnzqVgLffRmlnx+GMw7y9520AxrcezxNtn6iVmEQCrCa1Us0nfT+hlXcr8rR5TNo6iTLD1Ze6Ln36ELFmNc79+iLpdGTMmEHSxIkYsrOtFPU/chcsIH/lSlAqCfriC+wbixJL9Z1jVBv8p00FIHPmFxQfOGDliP5hzMsj8dFHKd65E4WDA8HffoPXWPkqKaEggRe2voDepOe2sNt4sdOLtba4QCTAGnBUO/LlLV/iae/JqZxTTN87/ZoWntrbm5AffsB/2jR53uD2HVwYNoziPXusFDUU7dxFxsefAOD/+ms2uai+ofIYPRr3e4aC0UjKpBfRp6ZW/CQLM2RnkzD+EcqOHUPl7k7Ygvm4DhwIQL42n2c2P0O+Np8onyg+6P0BSkXtpSWRAGsowCWAz/p9hkqh4o8Lf7Dk9JJrHqNQKPAa8zDhv/2GfbOmGC9lkTjhMTI//xxJr6/VeLUXLpLy0ktgMuF+3314jh1bq+cXLEuhUNDonXewb9kSY04OSc8+a9VJ0vqMTBLGjEV7+jQqHx9CFy7AsW1bAEySiSk7p5BQkECgcyBfD/gaB7VDrcYnEqAZdA3oykudXgLkOYKnc64/FcGheSThv/6Kx+jRIElkz/5JLjGfnFwrcRoLCkh++mlMhYU4duhAo3febnDrmAW5Dzrk229QeXmhjT1F2rRpVul71qekkDBmDLoLF1A3akTYwgU4REaW3//jsR/ZmbITe5U9Xw346pqCBrVBJEAzGdNqDLeE3ILepOfV7a9Soi+57uOUjo4ETH+HoC+/ROnmRtnRY1wcdi/569ZZND5Jrydl0ovo4uNRBwQQ/M3XKO3sLHpOwXo0QUEEf/UlqNUU/PkX2bN/qtXz69PTSRg3Hn1iIprgYMIWLbyqn3lXyi6+j/kegDe7v0kLrxa1Gt8VIgGaiUKh4L2e7+Hn5Ed8QTwfHvjwpo93u/MOIlatxLFjR0xFRaS+/Aqp06ZhKrl+4qwJSZJImz6d4j17UDg5ETLrW9Q+tf9tK9Qupy5daPTGNAAuffEFhVu31sp5DdnZJD7yKPrkZDShoYQtWohdcHD5/SlFKby+43UkJEZGjuSepvfUSlzXU28T4DvvvIOvry/t27enffv2PPTQQ9YOCQ8HDz7q8xEKFKyOW82G+A03fbwmKIiwBfPxefopUCjIX7GSi8NHUHbqlFnjyp79k7zAXKkk6PPPcGjVyqzHF+ouz/vvx+N+ucsl9ZVX0Z4/b9HzGfPzSZzwGLqLF1EHBBD281w0jRqV3681anlp20sU6Apo492GyV0nWzSeitTbBAjw0EMPERMTQ0xMDL/88ou1wwGgS6MuPBb1GADv73uf7NKbT3lRqNX4Pv88ofPmofbzQ3fxIvGjRpttzmDBX39xaaY86dR/6lRc+/ev8TGF+qXR1Kk4du6EqbiYpKefxpCba5HzGIuKSXziiX8GPObOQRN09eZZnx78lNjsWDzsPZh5y0zsVNbthqnXCbAqtFotBQUFV90s5al2TxHpGUmuNpcZ+2dUKpE5d+tK4zWrcenfH0mvJ2PGDJKfebZGb9aSI9Gkvi5/w3qOHYPXw9ZvJQu1T2FnR/BXX8krRRISSX7mWUxarVnPYdLpSH7mGcqOylNdQufMuWZu6dbErSw7swyAj/p8RIBLgFljqI56nQB/++032rVrx4ABA9haQf/Ghx9+iLu7e/ktxIKlnjQqDe/3eh+1Qs3GhI38Hf93pZ6n9vQk+LtZ8pxBjYaiLVu4OOxeivdXfUKrLjGR5GeeQdLpcBk4EP/XX6/yMYSGQ+3tTciPP6B0daX0yBHSpkxBMpnMcmzJZCJt8hRK9u9H6exMyE8/4dA88qrHZJZk8taetwAY22osvYLqxtzTOlsRukePHpy7vA/Af0VHR6PRaPD29kaj0bB7927uvfdeDh48SFhY2HWfo9Vq0f7rW6+goICQkBCLboz+Xcx3fH/0ezzsPVh1z6oqDfOXnTpFyksvo7t4ERQKfJ6aiM/TT1eqNL0hN5eEBx5EFx+PQ5s2hC2Yj9LJqSYvRWggivftI/Gxx8FgwPvxx/F7+aUaHzPj00/JmTMX1GpC//cjzj17XnW/STLx5MYn2Ze2jxZeLfhl0C8Wv/StbEVopAbi9ttvl5YvX17px+fn50uAlJ+fb7GYdAadNGLtCKnNvDbSC1teqPLzjcXFUsrUqVJs8xZSbPMW0sUHHpR0yck3fY6hsEi6MGKkFNu8hXS2f39Jn5lZzeiFhip35ary91TO0mU1Olb2wkXlx8pbvfq6j5l3Yp7UZl4bqfPCztL5vPM1Ol9lVfbzXW8vgZP/NXn43LlzxMTEEBUVZcWIrvXvS+HNiZvZnLi5Ss9XOjkROGMGgZ99htLZmdIjR7gw7F7yVq66br+iSacj5fnnKDt+HJWHB6E//YTa19dcL0doIDzuHYbPM3Jdy/R336Vwy5ZqHadg40YyZswAwHfSJNzvuXY6S2x2LF8e+RKA17q+RoR73do7p94mwGnTptGmTRvat2/P/fffz6xZs4iMjKz4ibWsuVdzHmnzCCDXDyzWV33fEPchg2m8ehUO7dpiKiwkbepUkiZORJ+RUf4YyWgk9bXXKd6zV57rN/t/DWajJsH8fJ59Bvd77y1fM1zVwgkl0dGkvvIqSBIeo0bh/eS11VtK9CW8vuN1DCYDA0MHMqLZCHOFbzZ1tg/Q0irdR2AGZYYy7l1zL8lFyTzc8mFe71q9AQnJYCD755/J+vobJL0epasr/pMn437fvaRPn07e0mUoNBpCfvzhmn4YQfgvyWAg+fkXKNqyBaWzM6EL5uPYunWFz9MlJhI/ajTGvDx5b+JZ3163b/rdve/y29nf8HPyY8XdK/Bw8LDAq7g+sS1mBWozAQLsSdnDk5ueRKlQsnjQYlr7VPxGuxFtXBypU6dRduzY1XcoFAR98QVud95Rw2gFW2HSakl67HFKDh5E5eVF2C+LbloazVhYSPz9D6A7f/6mA2y7Unbx1KanAPjp9p/oFtDNYq/hesS2mHVMz6CeDGo8CJNkYvre6RhMhmofy75pU8IX/4LfKy9j0sgVnE0KuPjE7TjePsBcIQs2QGlvT/D33+HQqhXGnBwSJ0xAn5Z23cdKRiMpL7+M7vx51P7+BH8367rJr0BXUF7c9OGWD9d68qsKkQBr0atdXsXVzpVTOafKN1SqLoVazdruKl4eD8t7KXj9ERWve21m1O+jOJh+0DwBCzZB5eJCyOz/YRcejiE1jYSx466bBDM//YziHZcLms6ahcbP77rH+/jAx2SWZBLmFsbzHZ+3dPg1IhJgLfJx9OHFTi8CMCtmFlmlWdU+1uxjs5l5eCYpPgqcnprA+GHv4GnvSVxeHI/+/SiTd07mUsklc4UuNHBqb29Cf56LJiQEfVKSXMklPb38/rwVK8iZNw+AwI8+xLHN9btwtiZuZe35tSgVSt7v9T6OasfaCL/aRAKsZfc1vY9W3q0o0hfx1ZGvqnWM749+z9fRXwPwTPtneLnzy4yIHMHv9/7O6OajUaBg3YV1DF41mFkxs6o18izYHk1AAGHz56EJDkafmCi3BDMyKDl0iLR3pgPg88wzuN1553Wfn1uWy/S98uPGtR5He7/2tRV6tYlBkFoaBPm3o5eO8vCf8h7Cvwz6hba+bSv1PEmSmBUzix+P/QjACx1fKC+88G8ns0/ywf4POHZJHiTxcvDiybZPMjJyJBqVxkyvQmio9KmpcvJLTkZhby8vmdPrcb3zToJmfo5Cef120yvbX+Hv+L9p4t6EZXcvw15lX8uR/0MMgtRh7XzbMbTJUAA+3P8hJqniNZmSJPHVka/Kk9/LnV6+bvIDaO3dmkV3LWLmLTMJcwsjpyyHDw98yNDVQ1l1bhV6Y+2W4RfqF01gIGHz56EOCkLSakGvR9UiksAPP7hh8lsfv56/4/9GpVAxo88Mqya/qhAJ0Epe7PQizhpnTmSfYHXc6ps+1mAyMH3vdOacmAPAa11eY3yb8Td9jkKh4Law21h1zyre7P4m3g7eJBcl89aetxi0ahC/nPqFUoP19ooQ6jZ1YCCLn23Jmm4K5g1U8uK9+ZwrTbzuY7NKs5ixT14R8ljUY7T2rv4Ur9omLoGtcAl8xfyT8/ns0Gd4OXjx+72/42Z3bRxlhjJe3/E6W5K2oFQoeaP7G4yMHFnlc5XoS1h2ZhkLYheUD754OXjxYIsHGR453Cr7MQh114KTC/j00KeAvAWswWTAVePKVwO+okujLuWPkySJF7a+wNakrbTwasHiQYvrRDeLuASuBx5s+SAR7hHklOXwXcx319xfoCvgyY1PsiVpC3ZKOz7v93m1kh+Ak8aJR9o8wvrh63mz+5sEuQSRU5bDtzHfctvy23ht+2scSj9UZzZuF6znYPpBZh6Wi+hO7jqZ7aO309GvI4X6QiZunMimhE3lj/3jwh9sTdqKWqnm/V7v14nkVxWiBWjFFiDA3tS9PLHxCVQKFcvvXk5Tz6YAJBUk8eyWZ7mQfwEXjQtfD/j6qm/emtKb9Pwd/zdLTi8pHywBCHUNZVDEIAY1HkRjd7FZuq3JKM5g1B+jyCnLYXDEYD7s/SEKheKaK5GpXadyS8gt3LvmXgr1hTzX4TmeaHvtemBrEUvhKlBXEiDApK2T2Jy4mZ6BPfnh1h84nHGYF7e9SJ42Dz8nP74b+B3NvZpb7Pynsk+x7Mwy/rz451X9gi29WtIvpB99g/rS2qd1rW5YLdQ+vVHP+L/Hc+zSMSI9I1k0aNFV8/gMJgMz9s9g+dnlVz2vjXcbFg5aiFpZca3K2iISYAXqUgJMKkhi6JqhGEwGugd051DGIQwmA629W/P1gK/xc7r+jHtzK9GXsDVpK39e/JM9KXswSP8s1/Ny8KJbo26092tPB78ONPNsVqfe8ELNvb/vfZadWYarnSvLBi8jxO3aqumSJPG/Y//j25hvAbBDwW93zCOiUcfaDvemRAKsQF1KgAAzD3zKz6cWlP//HeF38F6v96w2kz6nLIftSdvZmbKTval7KdIXXXW/o9qRZh7NiPCIoIl7E0LdQvF38sfH0QdvR2+RHOuZNXFreGP3GwDMGjiLvsF9b/zg/BROze3PPkpordXR1cEfRi2EwPa1E2wliARYgTqVAPMSKVzxKM/rE8hRqRja5G4e6f9xnbnk1Jv0xGTGcDjjMDGZMRy9dPSahPhvChS42rniZueGm73bPz/buRHsGkyPwB608mqFQqGoxVch3Mip7FOM+WsMWqOWp9o9xdPtn77xgyUJfhkBcZvAtyUYSiE3HlT2MPhz6Dim1uK+GZEAK1BnEmDsGlj7HJTl//M7Ry94PhocPawW1s0YTUbiC+I5n3ee8/nnuZB3gaTCJC6VXiK7NBujZKzwGOFu4YxuPprhkcPr/HrRhiyvLI/7191PSlEKfYL68O3Ab2/+xRu9CNY8Iye8iTvBxQ9WTYSz6+X7O4yBuz4GO+faeQE3IBJgBayeAPWlsH4KHP5Z/v+gTnDv/2Dpg5B1BnpNgtum135cNWSSTOSU5VCgLaBA98+tUFdIvjafU9mn2Ju2t3ywxc/Rjxc6vcDdEXeLFmEtM5qMPLP5GXan7ibYJZilQ5bibu9+4yfkp8B33UFbALdOh96T5N+bTLDzc9g6A5DAqwnc9z8I7lwbL+O6RAKsgFUTYOI++Vs0O07+/16TYMAboNLAmb9gyf3yN+xzh8HDctt3Wkuxvph1F9bx0/GfSCuWyy71CerD2z3ext/Z38rR2Y6vj3zN7OOzcVA5sGjQopvPNJAk+GUkxG2Uv6wf3QCq//TzXtgGq5+GghRQqKDvK9D3Vfl9XcvEROi6SFcMf70Oc++Uk59LI3h4pdzSu/ImibwTwnqDUQtb3rduvBbirHFmVPNR/HHvH7zQ8QU0Sg07U3Yy8veRopZhLdmSuIXZx2cD8HbPtyueZhWzWE5+KnsY9v21yQ8g4hZ4ajdEjQTJCNs/hjm3Qfpx878AMxEJsDZIEpz+E77rAft/ACRo/zA8sw+aDrz6sQoF3P6e/POxZZB2tNbDrS12Kjsei3qM3+7+jZZeLcnV5vL4hsdrXCxWuLn4/Him7ZoGwIMtHmRIxJCbP6EgVe6uAeg/BXxvkiwdPWH4TzBiLji4Q2o0/NgP/p4G2hsPnFmLSICWdukMLLoPlj4AeQngHgIPr4Bhs+Q3y/UEdYQ2IwAJNrwpJ9AGrIlHE+bfNZ9BjQdhlIzM2D+D72O+F8vyLKBEX8KL216kSF9ER7+OvNL5lZs/QZLg9xdAmw+BHaHHc5U7UZvh8PR+aDVMbg3u/RZmdYVjv8l9hnWESICWUpgOf74G3/eE81tAZQe9X4Sn90LTWyt+/sC35Odc3C5POWjgHNWOfNTnI55pL+9X+93R7/js0GciCZqRJEm8vedt4vLi8HH04bN+n1W8dvfoEji3QX4v3ujS90bcAmDUfHjwN/AIk/sGVz4Gs/vDxZ01ezFmIhKguRVlwvqp8FU7OPAjmAzQfBA8vQ9ufQfsXSt3HM8w6Hp5beXGt8BU8dSS+k6hUDCx3UQmd50MwILYBXwT/Y2Vo2o4FsQuYH38etQKNTNvmYmvk+/Nn1CQCn/J/xbcMgX8WlTvxJG3y+//AW+CnSukxcD8IbBgGMTvrt4xzUQkQHO5dAbWvQxftoV9s8BQBsFdYewaeGAJeDep+jH7vgIOHpAZCzG/mD3kuuqhlg/xZvc3AZh9fDbzT863ckT138H0g3xx+AsAXunyCh38Otz8CZIEv0+6fOnbAXrWcHMjOyf5/fx8NHR5DJRquLAV5g2CuXfBmfVW+ZIX02BqMg3GqIdzG+HA/+R/zCuCOsudxU0GyoMaNbHnW9gwTR4xfv6I1SeY1qafjv9Uvm/Ke73eY1jTYdYNqJ5KL05n9B+jr6nwclMxS2D1RPnS98kd4NfSvEHlJsDuL+WJ1Uad/DuPMOj8KHR4GJxrVp9SzAOsQLUToMkESfvg+G9wcjWU5si/VyjlS92uT0DjvjVPfFcYtPBtF3kApf806PeaeY5bD0iSxMzDM5l3ch5qpZrZt82mcyPrTa6tj3RGHY/8/cgNK7xcV0EafNdNXp008C3o87LlAixIhX3fwZGFUJYn/06phiYD5Ok0zQeBvUvVDysS4M1VKQEWpMktvPNb4PxWKPnXdpbOftDufrlZ7xlmmWCPL4cVE0DjDC/EyMuPbIRJMvHq9lfZkLABT3tPFg9eTLBrsLXDqjcqU+HlKpIkT8Q/ux4C2sNjm6s28FFduhI4sQIOzZGnzlyhsoPQHtDsNojoL7dElaoKDycSYAWu+QNJEhRnQX6SfMs8Jc/BSzsqj179m70btBwKUSMgvI/l3yCSBLMHQOoR6DwBhsy07PnqmFJDKePXjyc2O5amHk1ZNGgRzhrb6QqorlXnVvHWnrdQoODbgd/evMLLFUeXwqonQamRL339W1k+0P/KOid/6R//DXLOX32fnYvcJxnYAXwi5b51rwhw8rnqcygSYAXK/0AftcZNpZOb+4ayGzxaIZf6aTJAvgV3BbVdbYYrTxuYP0ReYvTMAfBpWrvnt7KM4gweWPcAl0ovcWf4nXzS9xOxdvgmTmSdYNxf49CZdDzd7mmeav9UxU/KT5En62vz5aWZfV+1fKA3I0mQfV6eBha3UV5CqrvRZGqFXDzE0Qs0jhToFLhP2i0S4I2UJ8DJrrjZX/kgKcDFH9yDwbupnPQC2oF/G3Cwfs1AfhkF5/6WW5+jF1o7mloXkxnDI+sfwSAZmNptKg+0eMDaIdVJ2aXZjP5jNBklGdwScgtf9f+q4tJqkiRP2D+/RZ7wPGFj7Vz6VoXJKM+2SD4oL6/LOS8vKc1LAq5OYwVaCfePCkUCvJHyBHhyC25evnJHq2tg7bfsqiIjFn7oBZIJJmyCEPPtEVJfXNmtTK1Us/CuhbTxaWPtkOoUvUnPExue4FDGIcLdwlk8eDGudpWYe3pwDqx7CdQO8ORO8I20fLDmYjRAaS6UZMuDkgYtBfl5uHe6TxRDqFBwJ2jUBjzD63byA7k/pt2D8s8bG/4SuesZ02oMA0MHYjAZeGX7K+Rr8yt+kg2ZeWgmhzIO4aR24qv+X1Uu+eVckJdcAgx8u34lP5Bbqi6+8kTtsJ7QpP+1a+xvQCTA+qb/VPlbOnGvXDrLxigUCt7t9S7BLsGkFKUwfe90sVzusj8u/MGiU4sA+KD3B0R4RFT8JJNRLmGlL5arEHWbaOEo6xaRAOsb9yDofrlDe9M7cvPfxrjZufFZv89QK9RsTNjI2vNrrR2S1Z3KPsX0PXIB3cejHmdgWOVaQOydJX+Z2rnIBTqUtpUSbOvVNhS9JsmVZLLO2NQSuX9r7dOaZzrIhRM+2P8BSYVJVo7IevLK8nhx24uUGcvoHdS7vKBEhTJPwZbLpdfu+EDuBrIxIgHWR44e/0xR2PqBXGjVBj3S+hE6+nWkxFDClJ1TMJhsrzVsMBl4dcerpBSlEOIawkd9PkJViYnCGPXyfD+jDpreBh3HWj7YOkgkwPqqy2PgEQpF6fJSIhukUqr4sM+HuGhcOHrpaHmFY1vy1ZGv2Je2D0e1I1/2//Lme3r8287P5Un+Dh4w9BvzLd2sZ0QCrK/U9jDgLfnnXV/Jq1hsUKBLINO6y9WNfzz6IyezTlo5otqzOm41807OA+DdXu8S6VnJ0dvUaNjxqfzz4M/lun02SiTA+qzNcHmitq7wnze0DRoSMYQ7w+/EKBmZtmsauivVRRqw6Mxo3t37LgAT203kzvA7K/dEfam8jaXJIFdrbjPcckHWAyIB1mdKpbw9IcgTWXMuWDceK5rabSpeDl6czz/PdzENu0sgtSiVSVsnoTfpuS3sNp5qV4llbldsfAsunZaLeAyeabOXvleIBFjfNekv1x006WHze9aOxmo8HTx5q7vcJfDzyZ85fqnu7kRWEyX6Ep7b8hw5ZTm09GrJ+73er3iZ2xVnN8i1K0Eub+/sbblA6wmRABuC26YDCji5ElIOWzsaqxkYNpBBjQdhkky8sfsNtEattUMyK5NkYsrOKZzNPYu3gzdfD/gaJ41T5Z5cdAnWPC3/3O0paFaJfWlsgEiADUGjKGg7Wv5549s2uUTuiildp+Dt4M2F/AvMipll7XDM6tvob9mStAU7pR1fDfiKRs6NKvdESYK1z0LxJfBrJe9NIwAiATYcA6bJm1bH75TL9NsoDwcP3uohXwrPPzmfo5caxr7Kf1z4o3yazzs936Gdb7vKP/nQHLnAqcpe3rNX42ChKOsfkQAbCo9Q6HZ5F7lNb9vELnI3MiB0AEMihsiXwrveoOyGdR7rh0Pph3hrt5zUJ7SZwN1N7q78ky+dkTclB7nl59/a/AHWYyIBNiS9XwIHd3kXuaNLrR2NVU3uOhkfRx/iC+L5Nvpba4dTbRfyLvD81ufRm/QMDB3I8x2rsDubQStvpWAokwv52lihg8oQCbAhcfL6ZwObrTPkOV82yt3enbd7vA3I++HGZMZYN6BqyCrN4qlNT1GoK6Sdbzs+6vNR5Ud8Aba8LxcOdfSSR31trNBBZYi/SEPT9UlwD5H3Mdn/g7WjsapbQm5haJOhSEi8sfsNSg315wuhRF/C05ueJrU4lTC3ML4Z8A0O6ir03Z3fCnsubyp/z7fgWskBExsjEmBDo3GQt88E2PkFlORYNx4re73r6/g5+pFQkMDXR762djiVcqXY66mcU3g5ePH9wO/xdPCs/AEKM2DlE4AEncZDi8GWCrXeEwmwIWo7St7HRJsvL3q3YW52bkzvJa+WWXRqEQfTD1o5opuTJIkZ+2ewM2UnDioHvhnwTcVbWf6byQSrnoDiTHnKy50fWS7YBkAkwIZIqbo8ORp55n9ugnXjsbLeQb0Z3kxe8/rW7rco0ZdYOaIb+yb6G5afXY5SoeTjvh/T1rdt1Q6wayZc2AYaJxjxM2gq2ATdxokE2FA1GQiN+8n13ra8b+1orO6Vzq/QyLkRyUXJfHH4C2uHc13zTswrn+s3rds0BoQOqNoBEvbIg18Agz6T98gQbkokwIZKofinFXj8V7n2mw1zsXPh3Z5y9ZSlZ5ayL22flSO62vKzy/n8sNxdManjJEY1H1W1A5TkwIrH5B0D246G9g9aIMqGRyTAhiywA7QZIf+88W3rxlIH9Ajswejm8pLBt3a/RdENN9muXevj15eXtnq0zaNMiJpQtQNIEqx+Sh75924q1/iz8SovlSUSYEM38E1QauDCVojbbO1orO6lTi8R5BJEWnFaeYvLmrYkbmHKzilISIyMHMmkjpOqfpC93/6z1G3Ez2Bfia0wBUAkwIbPMxy6Pi7/vOlteZTQhjlpnHivl1w2bPnZ5WxL2ma1WDYnbOblbS9jMBm4q/FdTOs2DUVVW27xu/9p3d8xAwKqOGhi40QCtAV9XgF7N3lVwPHfrB2N1XVp1IUxrcYA8ObuN8kozqj1GDYmbOSV7a9gkOTk90HvDyq3mdG/FabDb+NBMkLUKHmfGKFK6nQCXLduHZ06dcLe3p5JkyZddZ/JZOK5556jSZMmNG3alG+/rb/rPS3O2Rt6vyj/vOU90Nfv4gDmMKnjJFp6tSRPm8eUXVMw1mLxiPXx63l1+6sYJAODIwbzQe8PUCvVVTuIUS8nvyvz/e7+UvT7VUOdToDNmjVj7ty5vPrqq9fct2jRImJjYzl79iwHDhzg008/5eRJ29kQp8q6PwWugZCfBAdtb/e0/7JT2fFJ309wVDtyMP0gPx3/qVbO+/v535m8YzJGycjQJkOZ0WtG1ZMfyJe9iXvllv2ohWDnbP5gbUCdToCRkZG0a9cOtfraN8iyZct4/PHHUalUeHl5MXr0aJYsWXLDY2m1WgoKCq662RSNI/SfKv+84zMozbVuPHVAuHs4b3R/A4Dvjn5n0VUikiQx98Rcpu6ailEyMqzpMN7t+W7VL3sBTqyEfZeLvQ77DnyamjdYG1KnE+DNJCYmEhYWVv7/4eHhJCYm3vDxH374Ie7u7uW3kJAqLC9qKNo/CL4toSwPdtXNycC1bWiTodwdcTcmycTL214mtSjV7OcwSSY+OfhJ+QTs8a3HM73n9Oolv0tnYM2z8s+9XoCWVagNKFzDqgmwR48e+Pj4XPeWlJRk1nNNmTKF/Pz88pu5j18v/HuJ3L4fIM8G/wbX8WaPN2np1ZJcbS4vbH3BrFVjinRFvLj1RRadWgTIK1Je7vxy1cpaXVGaB0sfAn0xhPf5Z19oodqsmgD37t1LVlbWdW8VtdBCQ0NJSPhnjWt8fDyhoaE3fLy9vT1ubm5X3WxSs9shrDcYtbD1A2tHUyc4qh35qv9XeDl4cTrnNC9tewm9UV/j417Mv8iDfz7IlqQtaJQaPurzEeNaj6vewUxGubhp9jlwC4IRc0FVjb5D4Sr19hJ45MiRzJ49G6PRSE5ODsuWLWP06NHWDqvuUyjgNnnVAUeXQPoJ68ZTRwS4BPBV/69wUDmwK2WX3FdXg5HhzQmbeXDdg1zMv4ifkx/z75zP4IgalKXa9A7EbQK1I9y/GFz8qn8soVydToCbN28mODiYmTNnMmfOHIKDg1m7di0AY8aMoUWLFjRr1owuXbrw0ksvERUVZeWI64ngTtD6XkCSP1gCAO392vNF/y9QK9Wsj1/PlJ1T0Bl1VTpGoa6QabumMWnbJIr0RXT068iyIcuI8q3Be/PoUthzuZbhsFkQ2L76xxKuopAk29xDsaCgAHd3d/Lz823zcjj7PMzqCiYDjF0LEf2sHVGdsSF+A6/veB2DZKCjX0c+7vtxhVtQmiQTa+LW8HX012SVZqFUKBnfejzPdngWjVJT/WCSD8HPg+Quiz6vyEsbhQpV9vMtEqCtJkCAP1+V6wUGtIfHt4o9I/5lT+oeXtr2EsX6Ylw1rjzd/mmGRw7HUX11fb1SQyl/XviTRacWEZcXB0CYWxjv9XqPDn4dahZEQRr87xYoSofmg2H0IvFvVEkiAVZAJECg6BJ83R50RTB8DkSNsHZEdUp8fjxTd03leNZxAFw1rnRq1InG7o3RG/WcyjnF8UvH0Znky2QXjQtPtn2SB1s+iJ3KrmYn15XAvMGQekSeuvTYRlHkoApEAqyASICXbf8Utr4PHmHw7EFQ21s7ojrFYDKw8txK5p6YS0pRynUfE+wSzP0t7mdY02G427vX/KQmI/w6Fk7/AY6e8PgW8Iqo+XFtiEiAFRAJ8DJdMXzdUb7MuvMjecmccA2jyUhsdiyHMw6TUZKBRqkhzC2MTv6dCHMLq3oVl5tZPwX2fSeXtxq7BsJ6mO/YNqKyn28xkcjW2TnDLZPhj0mw/RN5tYiDGVoxDYxKqSLKN6pmo7mVse8HOfkB3Pu9SH4WJnpUBegwBnwioTQHdn1p7Whs1+l1sH6y/POt70Cb4VYNxxaIBCjIKwpuvbxEbu8syI23ajg2KfkwLJ+AvJfvI9BrkrUjsgkiAQqy5ndd3kVOCxvEXLNalX0elowGQyk0vU3e0U3U9qsVIgEKMoVCHgRRKOHUWri4w9oR2YaCVFg4DIovQaMoGPmzWONbi0QCFP7h3wo6X96RbP0UMBqsG09DV5IDC++FvER5msvDK8Vcv1omEqBwtf5TwcEDMk7AkfnWjqbh0hbBLyPg0mlwDYAxq0WBAysQCVC4mpMX9J8m/7zlfVE52hIMWlj6IKQclic6j1kNnmEVPk0wP5EAhWt1flReflWaI88NFMzHaJDr+l3cDnYu8NAK8Gth7ahslkiAwrVUarjzcrHUA/+Ty7ALNWcywpqn4dTvoLKD+3+RS5MJViMSoHB9TQZA80Fyuaz1U8A2V0yaj8kIq5+GY8tAoYIRP0PELdaOyuaJBCjc2O3vg1ID5zfDmT+tHU39ZTLKGxkdW3o5+c2FlkOsHZWASIDCzXg3gZ7PyT//NVku0SRUjckEa5+Ho4svJ7850HqYtaMSLhMJULi5vq+AewjkJ8LOz6wdTf1iMsLaZyFmkTzBfPjsy1sRCHWFSIDCzdk5yytEAHZ/DZfOWjee+sKgg+WPQswvcvK7b7YoblAHiQQoVKzFYHk7TZMe/nxFDIhURF8qz/OLXS33oY6cL6pt11EiAQoVUyjgro/lAp0Xt8PJldaOqO4qK4BFIyBuo7yF5YNLodVQa0cl3IBIgELleEVAn5fkn/+eBtpC68ZTFxVlwoKhkLAL7N1gzEpoequ1oxJuQiRAofJ6TQLPxlCYBltmWDuauiUrDubcBqnR4OgF49ZCWE9rRyVUQCRAofI0DjD48kjw/h8g6aB146krkg7IyS83HjzDYcJGCKzhlphCrRCFx4SqaXortL1fntS79ll4ckfD2EmurEAuTpB1Tk5khlLQOIFHKIR2h0Ztr1+k9PQ6ebTXUCYnvQd/FVVd6hGRAIWqu/NDiNskl3LaORP6T7F2RNWTGw/Hf4O4zXIrTjLe+LHuodDjGeg0DjSO8kj4rpmw+T1AgmZ3yMVM7ZxrK3rBDMS2mLa+LWZ1nVgJyx+Rp3k8uR38W1s7osrRlcjFCKIXQvzOq+/zCAP/NuDVWK7UoiuCrLMQvwv0l1fBeIbLJetjFv8zGt75UbjrU1HJuQ4R+wJXQCTAGpIkWPoQnFkHgR3lfq+6mgAkCZIPQvQiOLkKtAWX71BA477y0rQmA+Tkdj36Ujnh7fwcCv61ObpSDXd9Al0mWPgFCFUlEmAFRAI0g4I0mNUNtPlyEdV+r1k7oqsVpsPRpfJqjKx/rWDxCIP2D0H7B+Q+vkoyleZzeuGLtEpdQS5ulN47j8B2Ay0QuFBTYmN0wfLcAmDQJ7DqSdj2kbyrXGg368akL4Ozf0HMErmf8kq/ntpRbum1fwjCeoGyahMg8kp0vPzrWTZfGE5jRU+yJVdUa4zM8cylY6in+V+HUCtEC1C0AGtGkmDl4/JggnsoPLULHNxrP4ak/XB0CZxYJbdIrwjpJie91veCQ/X+naMTc3l2cTQpeaXYqZW8dkdzfj+aytHkfJzsVCx+vDvtQzzM81oEsxCXwBUQCdCMygrgh96QlyAnmhE/W35fW5MJUo/IAxqxq6/ezN0tGNqNhnYPgE+zap9CkiR+3h3Ph3+dQm+UCPd24tsHO9ImyJ0SnYHHFxxid1w2Hk4afnuyB838xY5udYVIgBUQCdDMkg7C3DvkS84Bb0DfV81/Dm0RJO6Fcxvg1B9QmPrPfXYu0GoYtLu/Wpe4/3WpUMvrK46x5XQmAIOiGvHR8La4OWjKH1OsNfDQT/uJScqjkZsDa57thb+bQ43OK5iHSIAVEAnQAg7+BOteln++7ydoO7Jmx9MWQtpRSNgDF7bJc/VM+n/ut3ORq9S0HAKRd4GdU83Od9mGk+lMXnmcnGIddmol0wa1ZGyPMBTXadXmFusY+eNe4jKLaBfiwbInuuOgUZklDqH6RAKsgEiAFrJ+KuybJVc/HvIFdBxb8eWwyShvDp59HrLPQdox+fL20hngP29P91Bo0l8u0dW4n7w8z0yKtQbe+yOWpQeTAGgZ4MaXo9vTvNHNL20TsosZ+u1u8kv13NchiM9HtbtushRqj0iAFRAJ0EJMRlj7nDz1BCC8jzwQoXaQl5fpS0FXDCXZUJQh3wrTwai7/vHcguWd0yJukW+ejS3Sv7j1dCZvrD5BSl4pCgU80SeCl26PxF5dudbc7rgsxs49gNEkMXVQC57o28TsMQqVJxJgBUQCtCCTSV4mtu1DeVe5ylDZy3uQeDeR9yQO6ihPsHb1t2iolwq1TP/9JH8cSwMgxMuRT0e0o3uEd5WPNX9PPG+vPYlCAQsf7UbvZj7mDleoJJEAKyASYC3ITZCXi+Ung1Evr6FVO8hFBpy9wcVfvrk2klt6NRy4qAqjSeLXQ0l89Ndp8kv1KBXwWJ8IJt3aDCe76k2PlSSJySuOs+xQEj4udqx7vo8YFLESkQArIBKg7dp7Ppt3/4jlVJq8JK51oBsfD29Lm6Caz18s0xsZNms3p9ML6drYi8WPdUOtElXnaltlP9/iX0awGQnZxTy58BAPzN7HqbQC3BzUvDmkFWue6WWW5AfgoFHx3UMdcbZTceBiDl9sEptI1WViKZzQ4CXnljBraxy/HUrGYJJQKRU81C2USbdG4uVsZ/bzRfi68NHwtjy3JJpZW8/TOdyL/s1FjcC6SCRAocFKyy/lu63nWXowEb1R7unpG+nLG4NbEmnhVRt3twvkwMUcFu5L4KVlMax7vg+BHo4WPadQdSIBCg1ObGoBc3ZdZO3RlPLE17OJNy/eFkmXcK9ai+ONIS2JTsrlREoBk5bGsPhx0R9Y14gEKDQIRpPEtjOZzNl1kT3ns8t/37WxFy/dFlmtaS01Za9W8e0DHRn89U4OxOfwzZY4XrwtstbjEG5MJEChXovPKmb54WRWHEkmLb8MAJVSwaCoACb0bmz1Ki3hPs7MuDeKScti+GbLOXo08bZKMhauTyRAod5JzStl/Yl0/jqRxsH43PLfezhpGNU5hHE9wwmqQ/1twzoEsfNcFiuOJDNpaQx/vdAHTwsMvghVZ7MJ8Mr0x4KCggoeKVibwWjiRGo++87nsP3sJY6n/FPvT6GQ+/fu6xDMLS18Ly9d01NQoL/xAa3glf4hHDybTPylHF5YuIdvHugg1gtb0JXPdUXTnG12InRycjIhISHWDkMQBAtKSkoiODj4hvfbbAI0mUykpqbi6uoqvokFoYGRJInCwkICAwNR3mSJpc0mQEEQBDEpSRAEmyUSoCAINkskQEEQbJZIgIIg2CyRAAVBsFkiAQqCYLNEAhQEwWb9H4PRfr6L/hr7AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Ef = log.fermi_level\n", "TB.plot_bs(k, Ek-Ef)\n", "plt.ylim([-14,14])\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "d56bcf68", "metadata": {}, "source": [ "## In a nutshell\n", "\n", "To summarize the tight-binding workflow, the conventional cell is studied." ] }, { "cell_type": "markdown", "id": "5921ad6d-6bcb-44f1-b6e0-bea2983df454", "metadata": {}, "source": [ "First, the sub-system is updated with the proper geometry" ] }, { "cell_type": "code", "execution_count": 22, "id": "57677c0e", "metadata": {}, "outputs": [], "source": [ "positions = [{'C':list(j)} for j in coord['conv']] \n", "posinp = {'positions': positions, 'units': 'angstroem'}\n", "\n", "frag = Fragments.Fragment(posinp=posinp)\n", "sys_cs = Systems.System()\n", "sys_cs[\"FRA:1\"] = frag\n", "\n", "sys_cs.cell.cell = cell['conv']" ] }, { "cell_type": "markdown", "id": "64f3ef9f-4592-4a99-afaa-fb2ced63c38d", "metadata": {}, "source": [ "The corresponding TB object is defined " ] }, { "cell_type": "code", "execution_count": 23, "id": "5a3851c5", "metadata": {}, "outputs": [], "source": [ "tb = TB.TightBinding(sys_cs, d=5)" ] }, { "cell_type": "markdown", "id": "31822d51-cc22-4522-a7e5-82883d72067f", "metadata": {}, "source": [ "The matrix description is extracted" ] }, { "cell_type": "code", "execution_count": 24, "id": "18eaeb5c", "metadata": {}, "outputs": [], "source": [ "m_sh = tb.shell_matrix(sys_ls, [h,s], metadata)" ] }, { "cell_type": "markdown", "id": "8655a4ae-c775-401b-81ee-a6b80f85415a", "metadata": {}, "source": [ "The band structure is then computed for the associated k-points" ] }, { "cell_type": "code", "execution_count": 25, "id": "489f48e3", "metadata": {}, "outputs": [], "source": [ "hsp = {'G': [0., 0., 0.],\n", " 'Y': [0., 0., 0.5]}\n", "k = tb.k_path(hsp)" ] }, { "cell_type": "code", "execution_count": 26, "id": "c434b326", "metadata": {}, "outputs": [], "source": [ "Hk,Sk,Ek = tb.k_matrix(k, m_sh)" ] }, { "cell_type": "code", "execution_count": 27, "id": "3e0cf119", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Ef = log.fermi_level\n", "TB.plot_bs(k, Ek-Ef)\n", "plt.ylim([-14,10])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "66336fc3-67db-4a0b-814f-638140316abb", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "b19bb592-352f-4155-bfc9-8e654a187e7f", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.5" } }, "nbformat": 4, "nbformat_minor": 5 }