diff --git a/.gitignore b/.gitignore index 1c5c5fd..d2fed56 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,10 @@ dpnegf/data/try_test.ipynb dpnegf/negf/check.ipynb dpnegf/tests/data/test_negf/show.ipynb dpnegf/tests/data/test_tbtrans/show.ipynb +# tutorial files +dpnegf/examples/graphene/negf_output_k20/self_energy/self_energy_leadL.h5 +dpnegf/examples/graphene/negf_output_k20/self_energy/self_energy_leadR.h5 + run_config.json dpnegf/nnet/__pycache__/ dpnegf/sktb/__pycache__/ diff --git a/docs/hands_on/stru_negf_PL.png b/docs/hands_on/stru_negf_PL.png new file mode 100644 index 0000000..160bdd4 Binary files /dev/null and b/docs/hands_on/stru_negf_PL.png differ diff --git a/docs/hands_on/tutorial2_2d_mat.ipynb b/docs/hands_on/tutorial2_2d_mat.ipynb new file mode 100644 index 0000000..d8b089f --- /dev/null +++ b/docs/hands_on/tutorial2_2d_mat.ipynb @@ -0,0 +1,1006 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "078cef78", + "metadata": {}, + "source": [ + "# Tutorial 2: Quantum Transport in 2D materials" + ] + }, + { + "cell_type": "markdown", + "id": "e807a978", + "metadata": {}, + "source": [ + "## Introduction\n", + "\n", + "**DPNEGF** is a Python package that integrates the Deep Learning Tight-Binding (**DeePTB**) approach with the Non-Equilibrium Green's Function (**NEGF**) method, \n", + "establishing an efficient quantum transport simulation framework **DeePTB-NEGF** with first-principles accuracy. \n", + "\n", + "Based on the accurate electronic structure prediction in large-scale and complex systems, DPNEGF implements the\n", + "high-efficiency algorithm for high-throughput and large-scale quantum transport simulations in nanoelectronics.\n", + "\n", + "\n", + "### Learning Objectives\n", + "\n", + "In this tutorial, you will learn:\n", + "\n", + "1. how to extract model for specific systems from baseline model\n", + "2. what is principal layer and how to compute electrode self-energies with DeePTB model\n", + "3. how to compute the transmission spectrum of 2D materials with periodicity in the transverse direction\n", + "\n", + "As demonstrations, we will explore graphene, hBN, and MoS2.\n", + "\n", + "\n", + "### Requirements\n", + "\n", + "DeePTB and DPNEGF installed. Detailed installation instructions can be found in README.\n" + ] + }, + { + "cell_type": "markdown", + "id": "b8c712d9", + "metadata": {}, + "source": [ + "## 1. Quantum Transport in Graphene\n", + "Two-dimensional (2D) materials have attracted significant attention in condensed matter physics and nanoelectronics owing to their unique properties. \n", + "\n", + "Graphene is the natural starting point for studying quantum transport in 2D materials. As the first experimentally realized 2D material, it combines a simple lattice structure with unique electronic features such as linear Dirac dispersion and high carrier mobility. \n", + "\n", + "In this section, we will use graphene to introduce the basic steps of quantum transport calculations, including the evaluation of electrode self-energies and transmission spectra. The same methodology will later be extended to hBN and MoS2." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "026e2584", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "POSCAR\tband.json\tband_plot\tband_plot_api\textra_baseline\tnegf.json\tnegf_output\tnegf_output_k100\tnegf_output_k20\tnegf_output_k50\tstru_negf.xyz\tstruct.xyz\ttrain\n" + ] + } + ], + "source": [ + "import os\n", + "from pathlib import Path\n", + "workdir='../../examples/graphene'\n", + "wd = Path(workdir)\n", + "if not wd.is_dir():\n", + " raise FileNotFoundError(f\"Workdir '{wd}' not found. Please adjust 'workdir'.\")\n", + "os.chdir(wd)\n", + "print(\"\\t\".join(sorted(os.listdir(\".\"))))" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "664ee3cc", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO ================================================================================\n", + "DPNEGF INFO Version Info \n", + "DPNEGF INFO --------------------------------------------------------------------------------\n", + "DPNEGF INFO DPNEGF : 0.1.1.dev148+0e0863a\n", + "DPNEGF INFO DeePTB : 2.1.2.dev53+5b97981\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO ================================================================================\n", + "\n" + ] + } + ], + "source": [ + "from dpnegf.utils.loggers import set_log_handles\n", + "import logging\n", + "from pathlib import Path\n", + "\n", + "\n", + "results_path = 'band_plot_api'\n", + "log_path = os.path.join(results_path, 'log')\n", + "log_level = logging.INFO\n", + "set_log_handles(log_level, Path(log_path) if log_path else None)" + ] + }, + { + "cell_type": "markdown", + "id": "e1e61d4c", + "metadata": {}, + "source": [ + "### 1.1 Extract system-specific model\n", + "Here we briefly outline the procedure for extracting a system-specific model from the baseline model. For more details, please refer to the [DeePTB tutorial](https://www.bohrium.com/notebooks/15254953382).\n", + "\n", + "First, decide on the elements and basis set for the target system. For graphene, we choose the 'spd*' for carbon, specified in `extra_baseline/c_spd.json`. The command `dptb esk c_spd.json -o grap_spd_model` generates the extracted model `sktb.json`.\n", + "\n", + "To achieve higher accuracy, we further train the extracted model using `sktb.json` as the initialization.\n", + "The training input file `input_templete.json` can be automatically generated by: `dptb config -m grap_spd_model/sktb.json -tr -sk ./`.\n", + "\n", + "After switching to the `train` directory and copying the input file here as `input.json` ,the training process can be started with:\n", + "`dptb train input.json -i ../extra_baseline/grap_spd_model/sktb.json -o train_out`.\n", + "\n", + "We recommend that users carefully examine the `input.json` file to understand the meaning of each parameter. \n", + "For 2D materials, the onsite mode should be set to `strain`, which removes the degeneracy of onsite energies for orbitals with the same angular momentum. It is an essential adjustment for 2D systems. For example, the onsite energies for $p_x,p_y,p_z$ in graphene should not be identical considering the geometry. Once training has converged, the resulting model can be loaded to plot and analyze the band structure.\n", + "\n", + "**SUMMARY:**\n", + "\n", + "In `./extra_baseline`: \n", + "- `dptb esk c_spd.json -o grap_spd_model`\n", + "- `dptb config -m grap_spd_model/sktb.json -tr -sk ./`\n", + "\n", + "In `./train`:\n", + "- `dptb train input.json -i ../extra_baseline/grap_spd_model/sktb.json -o train_out`" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5c4797d7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO The ['overlap_param'] are frozen!\n", + "DPNEGF INFO The ['overlap_param'] are frozen!\n" + ] + } + ], + "source": [ + "from dptb.nn.build import build_model\n", + "\n", + "model = \"./train/train_out/checkpoint/nnsk.best.pth\" # the model for demonstration\n", + "\n", + "model = build_model(model)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "31407e92", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Atoms(symbols='C2', pbc=True, cell=[[2.5039999485, 0.0, 0.0], [-1.2519999743, 2.1685275665, 0.0], [0.0, 0.0, 30.0]])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# read the structure\n", + "from ase.io import read\n", + "structure = \"./train/data/POSCAR\" \n", + "atoms = read(structure)\n", + "atoms" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1041ae1c", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF ERROR TBPLaS is not installed. Thus the TBPLaS is not available, Please install it first.\n", + "/opt/mamba/envs/dpnegf-dev/lib/python3.10/site-packages/torch/nested/__init__.py:107: UserWarning: The PyTorch API of nested tensors is in prototype stage and will change in the near future. (Triggered internally at ../aten/src/ATen/NestedTensorImpl.cpp:178.)\n", + " return torch._nested_tensor_from_tensor_list(ts, dtype, None, device, None)\n", + "DPNEGF WARNING eig_solver is not set, using default 'torch'.\n", + "DPNEGF INFO KPOINTS klist: 300 kpoints\n", + "DPNEGF INFO The eigenvalues are already in data. will use them.\n", + "DPNEGF INFO Calculating Fermi energy in the case of spin-degeneracy.\n", + "DPNEGF INFO Fermi energy converged after 21 iterations.\n", + "DPNEGF INFO q_cal: 7.99999860016806, total_electrons: 8.0, diff q: 1.3998319401409276e-06\n", + "DPNEGF INFO Estimated E_fermi: -3.582991372133437 based on the valence electrons setting nel_atom : {'C': 4} .\n", + "DPNEGF INFO No Fermi energy provided, using estimated value: -3.5830 eV\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from dptb.postprocess.bandstructure.band import Band\n", + "import shutil\n", + "\n", + "task_options = {\n", + " \"task\": \"band\",\n", + " \"kline_type\":\"abacus\",\n", + " \"kpath\":[\n", + " [0, 0, 0, 110],\n", + " [0.5, 0, 0, 62],\n", + " [0.3333333, 0.3333333, 0, 127],\n", + " [0, 0, 0, 1]\n", + " ],\n", + " \"klabels\":[\"G\", \"M\", \"K\", \"G\"],\n", + " \"emin\":-20,\n", + " \"emax\": 15,\n", + " \"nel_atom\":{\"C\": 4},\n", + " \"ref_band\": \"./train/data/kpath.0/eigenvalues.npy\"\n", + "\n", + " }\n", + "\n", + "if os.path.isdir(results_path):\n", + " shutil.rmtree(results_path, ignore_errors=True) \n", + "\n", + "band = Band(model, results_path)\n", + "AtomicData_options = { \"pbc\": True}\n", + "band.get_bands(data = atoms, \n", + " kpath_kwargs = task_options,\n", + " AtomicData_options = AtomicData_options)\n", + "band.band_plot(emin = task_options['emin'],\n", + " emax = task_options['emax'],\n", + " ref_band = task_options['ref_band'],)" + ] + }, + { + "cell_type": "markdown", + "id": "cca83808", + "metadata": {}, + "source": [ + "### 1.2 Principal layers in leads" + ] + }, + { + "cell_type": "markdown", + "id": "f4dea8b3", + "metadata": {}, + "source": [ + "Now we can pay attention to quantum transport simulaitons." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "558867cd", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO Numba is available and JIT functions are compiled.\n" + ] + } + ], + "source": [ + "try:\n", + " from dpnegf.runner.NEGF import NEGF\n", + "except ImportError as e:\n", + " raise ImportError(\"dpnegf not found. Please install firstly.\") from e\n", + "\n", + "import json\n", + "negf_input_file = \"negf.json\" \n", + "structure = \"stru_negf.xyz\" \n", + "\n", + "with open(negf_input_file, \"r\") as f:\n", + " negf_json = json.load(f)\n" + ] + }, + { + "cell_type": "markdown", + "id": "6471bf68", + "metadata": {}, + "source": [ + "A critical component is `AtomicData_options`, which specifies the cutoff parameters for the model:\n", + "- `r_max`: the cutoff value for bond considering in TB model\n", + "- `er_max`: the cutoff value for environment correction, should set for nnsk+env correction model\n", + "- `oer_max`: the cutoff value for onsite correction in nnsk model, need to set in strain mode\n", + "\n", + "In other words, `AtomicData_options` determines the **locality** of the model, i.e., how far atomic interactions are considered in the calculation.\n", + "\n", + "The code would determine the `AtomicData_options` automatically with DeePTB v2.2. At the same time, it can be visiualized conviently\n", + "by `NEGF.update_atomicdata_options`." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1c95296d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO The AtomicData_options is:\n", + " {\n", + " \"r_max\": {\n", + " \"C-C\": 4.99\n", + " },\n", + " \"er_max\": null,\n", + " \"oer_max\": 6.3\n", + " }\n" + ] + } + ], + "source": [ + "AtomicData_options = NEGF.update_atomicdata_options(model)" + ] + }, + { + "cell_type": "markdown", + "id": "8890a34b", + "metadata": {}, + "source": [ + "The largest cutoff value determines the **maximum interaction distance**, which is critical for defining the lead geometry in NEGF simulations.\n", + "\n", + "In `DPNEGF`, a key requirement of the self-energy algorithm is to define two **principal layers (PLs)** for each lead. Each PL must be longer than the maximum interaction distance to ensure proper treatment of interactions. That is, the PLs only include **nearest-neighbor interactions**.\n", + "\n", + "Additionally, the algorithm requires that: \n", + "\n", + "1. The PLs within the same lead be **identical, differing only by a translation** along the transport direction. \n", + "2. In the input structure file, the atomic coordinates of the **left lead** should be ordered with the 1st PL first, followed by the 2nd PL. See `stru_negf.xyz` for reference.\n", + "\n", + "The following figure illustrates the device/lead region and principal layers in the lead:\n", + "\n", + "
\n", + " \"Geometry\n", + "
\n", + "\n", + "In this case, the length of PL should be larger than 6.3 $\\AA$. However, too long PL is unnecessary for the computing cost. Considering both the translation requirement and nearest-neighbor interaction, we set the length of PL as 8.67 $\\AA$.\n", + "\n", + "Now we can strat the NEGF calculation!" + ] + }, + { + "cell_type": "markdown", + "id": "02d1f0b0", + "metadata": {}, + "source": [ + "### 1.3 NEGF calculation for graphene" + ] + }, + { + "cell_type": "markdown", + "id": "975c31d7", + "metadata": {}, + "source": [ + "For NEGF calculation on systems with leads having periodicity along the transverse direction, it's natural to calculate the $k$-resolved transmission $T(k,E)$ and sum up for the total transmission $T(E)$:\n", + "$$\n", + "T(E) = \\sum_k w_k T(k,E)\n", + "$$\n", + "where $w_k$ is the weight for the specified $k$.\n", + "\n", + "Firstly, we only consider the Gamma point calculation for graphene." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "ceffb8de", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Energy range: -10 to 10 eV, step: 0.05 eV\n" + ] + } + ], + "source": [ + "# Gamma point calculation\n", + "negf_json['task_options'][\"stru_options\"]['kmesh'] = [1,1,1]\n", + "# Energy step and range for transmission calculation\n", + "print(f\"Energy range: {negf_json['task_options']['emin']} to {negf_json['task_options']['emax']} eV, step: {negf_json['task_options']['espacing']} eV\")" + ] + }, + { + "cell_type": "markdown", + "id": "6ff34393", + "metadata": {}, + "source": [ + "Here `kmesh` specify the $k$-point mesh for transmission calculaiton.\n", + "`k_mesh_lead_Ef` is the $k$-point mesh for lead Fermi level determination.\n", + "For leads with long PLs, a sparse `kmesh_lead_Ef` is enough." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "4322d59f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'gamma_center': False,\n", + " 'time_reversal_symmetry': True,\n", + " 'nel_atom': {'C': 4},\n", + " 'kmesh': [1, 1, 1],\n", + " 'pbc': [False, True, False],\n", + " 'device': {'id': '32-64', 'sort': True},\n", + " 'lead_L': {'id': '0-32',\n", + " 'voltage': 0.0,\n", + " 'kmesh_lead_Ef': [1, 50, 20],\n", + " 'useBloch': False},\n", + " 'lead_R': {'id': '64-96',\n", + " 'voltage': 0.0,\n", + " 'kmesh_lead_Ef': [1, 50, 20],\n", + " 'useBloch': False}}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Structural information for device and electrodes\n", + "negf_json['task_options'][\"stru_options\"]" + ] + }, + { + "cell_type": "markdown", + "id": "eafa1b12", + "metadata": {}, + "source": [ + "Now we can run the NEGF calculation ( ~2 mins in a 8-core CPU ):" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "5c9f9038", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO ------ k-point for NEGF -----\n", + "DPNEGF INFO Gamma Center: False\n", + "DPNEGF INFO Time Reversal: True\n", + "DPNEGF INFO k-points Num: 1\n", + "DPNEGF INFO k-points: [[-0. -0. -0.]]\n", + "DPNEGF INFO k-points weights: [1.]\n", + "DPNEGF INFO --------------------------------\n", + "DPNEGF INFO The AtomicData_options is:\n", + " {\n", + " \"r_max\": {\n", + " \"C-C\": 4.99\n", + " },\n", + " \"er_max\": null,\n", + " \"oer_max\": 6.3\n", + " }\n", + "DPNEGF INFO The structure is sorted lexicographically in this version!\n", + "DPNEGF INFO Lead principal layers translational equivalence error (on average): 1.732051e-10 (threshold: 1.000000e-05)\n", + "DPNEGF INFO Lead principal layers translational equivalence error (on average): 1.732061e-10 (threshold: 1.000000e-05)\n", + "DPNEGF INFO The coupling width of lead_L is 72.\n", + "DPNEGF WARNING WARNING, the lead's hamiltonian attained from diffferent methods have slight differences RMSE = 0.0000006.\n", + "DPNEGF INFO The coupling width of lead_R is 72.\n", + "DPNEGF WARNING WARNING, the lead's hamiltonian attained from diffferent methods have slight differences RMSE = 0.0000019.\n", + "DPNEGF INFO The Hamiltonian is block tridiagonalized into 3 subblocks.\n", + "DPNEGF INFO the number of elements in subblocks: 61128\n", + "DPNEGF INFO occupation of subblocks: 73.69791666666666 %\n", + "DPNEGF INFO --------------------------------------------------------------------------------\n", + "DPNEGF INFO The Hamiltonian has been initialized by model.\n", + "DPNEGF INFO ================================================================================\n", + "DPNEGF INFO -------------Fermi level calculation-------------\n", + "DPNEGF WARNING No doping detected in lead_L, fixed_charge = 0\n", + "DPNEGF WARNING No doping detected in lead_R, fixed_charge = 0\n", + "DPNEGF INFO Number of electrons in lead_L: {'C': 4}\n", + "DPNEGF INFO Number of electrons in lead_R: {'C': 4}\n", + "DPNEGF INFO -----Calculating Fermi level for lead_L-----\n", + "DPNEGF INFO KPOINTS kmesh sampling: 535 kpoints\n", + "DPNEGF INFO Getting eigenvalues from the model.\n", + "DPNEGF INFO Calculating Fermi energy in the case of spin-degeneracy.\n", + "DPNEGF WARNING Fermi level bisection did not converge under tolerance 1e-10 after 57 iterations.\n", + "DPNEGF INFO q_cal: 128.0000000009015, total_electrons: 128.0, diff q: 9.015082014229847e-10\n", + "DPNEGF INFO Estimated E_fermi: -3.5829886198043823 based on the valence electrons setting nel_atom : {'C': 4} .\n", + "DPNEGF INFO -----Calculating Fermi level for lead_R-----\n", + "DPNEGF INFO KPOINTS kmesh sampling: 535 kpoints\n", + "DPNEGF INFO Getting eigenvalues from the model.\n", + "DPNEGF INFO Calculating Fermi energy in the case of spin-degeneracy.\n", + "DPNEGF WARNING Fermi level bisection did not converge under tolerance 1e-10 after 57 iterations.\n", + "DPNEGF INFO q_cal: 128.00000000090498, total_electrons: 128.0, diff q: 9.04975649973494e-10\n", + "DPNEGF INFO Estimated E_fermi: -3.582987666130066 based on the valence electrons setting nel_atom : {'C': 4} .\n", + "DPNEGF INFO -------------------------------------------------\n", + "DPNEGF INFO Zero bias case detected.\n", + "DPNEGF INFO Fermi level for lead_L: -3.5829886198043823\n", + "DPNEGF INFO Fermi level for lead_R: -3.582987666130066\n", + "DPNEGF INFO Electrochemical potential for lead_L: -3.5829886198043823\n", + "DPNEGF INFO Electrochemical potential for lead_R: -3.582987666130066\n", + "DPNEGF INFO Reference energy E_ref: -3.5829886198043823\n", + "DPNEGF INFO =================================================\n", + "\n", + "DPNEGF INFO ------Self-energy calculation------\n", + "DPNEGF INFO Calculating self-energy and saving to ./negf_output/self_energy\n", + "DPNEGF INFO Merging 400 tmp self energy files into ./negf_output/self_energy/self_energy_leadL.h5\n", + "DPNEGF INFO Merge complete.\n", + "DPNEGF INFO Merging 400 tmp self energy files into ./negf_output/self_energy/self_energy_leadR.h5\n", + "DPNEGF INFO Merge complete.\n", + "DPNEGF INFO -----------------------------------\n", + "\n", + "DPNEGF INFO Properties computation at k = [-0.0000,-0.0000,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAGFCAYAAAASI+9IAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAge5JREFUeJztvV9sJNu6H/SrKnfd7a7e2N3bVb339SXOlSaUj0EgEoTSQWKkmD8N42kjJRBFSChE0CABIelzbqYN6Nxk8+Dts++YB3gIHYIgiDwQePCdu5UJEJEtBHfyQMgVQdcNyY5ErL23ux2Pz73unpOecRcPnm/NqtWrqlZVV/+xvX5Sye7Vq75a61vVtWp9v/V9nxEEQQANDQ0NDQ0A5qIboKGhoaGxPNCTgoaGhoYGg54UNDQ0NDQY9KSgoaGhocGgJwUNDQ0NDQY9KWhoaGhoMOhJQUNDQ0ODQU8KGhoaGhoMK6oVrR9VsfH8b7DPfwD/LX7y8ecAgC+u/x382eCPwQAgesL9auGfwy+OfxPFYhH/+PBv4LfHRZC/HNWvmf8b/nP8IQRBgBP8Ifwy/hMYhjHRhv9q7Y/jn3r3FYbDIf4w/kf83+MdBEEAwzBgGAaCIMCnwd/FXzZ/LwqFAv7a29+Nf338P4TaRNf8If40/jWjA8Mw8Ev4s/jL439hog4A/B/4HSiYY7xe2cTj0V+T1vlX8F/jPzL/QxQKBfzK6If4c8G/O1EHAE6Mx/iH7P8Pb9++xT85/n/xM6xO1Pt9+Bp/7uf+CN6+fYv/fvyH8Tm+vK3zvo+E/2bt38M/83P/KwDg91/+Rfzmu981oa/faf1d/PonTwEA//von8AfuPovJuoAwH9c+gn+jeJfAAD80Z8e4y/9/d8/WWk8xl/H78bv/vQ7qQyNxeD8HKhWge/0sGjkhUAR3g8RAOGjVCoFlmWxz4ZhTNShMs/zbuV43sR34nlU9/nz54Hv+8Hz588/tOP9+fy108iOa+Mi6qieF6eTeeB789Pge/PTuV5TIxmffnp7aGjkhanMR8PhEDc3N/wEM1GHysS/UWX8506ng263i06nM/Edf+0ssuPK5lkn7XkynWhoaGjkBeVJwTAQMl8YhoHt7W2USiX2uVqtTtSpVquwbRu1Wg0AUKvVmCmEvuPPMwyD1W02m/A8D5eXlzg+Psbx8TGGwyEsy4LrukxOGtlRbVxEnTTn8TrxfR++72N7exv7+/vY3t7G8fGx6lBqaGhoRMIIZK+lElR/ZKD3PFxWKpXw5s0b9sZOdn0etm1jNBrBsixUKhUYhoFeryetQ/A8DwAYX9Dr9eB5Hq6urlg9/pw42ZZlhVYzsjaKZfOso3oer5N2u81WDATf93F6eopZ4dz6DABQvdHG62XCZ7fDojkFjdygvFL4c39xkvi9vr6ONR+5rot6vc4ezP1+H4PBAJ7nsTdhy7JQr9fheR4cx4HruhgMBuj1eqy+7/sIgoBNLiSX5MTJNs1wF++a+Uimk6OjIzSbTdi2DeB2gmw2mxNyNTQ0NNJCeffR7zu3Afz9TBeJW4wkLVSGwyEuLy9Rq9XQ7Xbh+37oDVlEuVzGYDDAYDBgKw0epmliPB6n68CS4eLiAl9//TXW1tZgGAaePXuGVqu16GZpaGjcAyibj3orK6hyqwJViOYjAOj3+9I6BOILLi4u2AOczCPb29vodrtS8xHJdl0XP/3pTzEajSYmgXlOCo7jwHEc9Pv9xMkPuDUbbWxsYDgcYjAYhL4TdUL9n7XZiKDNR8sJbT7SyBvK5qMnf3SciSAtl8uwbRtPnjxBr9eTksHlcnmCaD4/P8fe3h6r6/s+jo+PcXZ2Bsuy2DmGYTDZ7Xab2d4fPXoE27bZw5Rk85/T9CNtHcdxsLu7CwBYWVmJPW9nZwee56FYLAIAtra2pEQz6YR0Zts2LMvSRLOGhkZumIpoViFIpyGa/97f+3uMs1AhmmUE7KKIZuqD2Nc4EpnqxtUhnYg600Tzw4ReKWjkjan8FJKIVVopAAiRwaKd/9GjR6GtrUSq8ruaBoMBewiSXJJDso+OjnB2dpaqjbOq0+/3cXV1lSgHAK6urkImNZkeRZ2QXgm+70/I1dDQ0EiLmcY+CoIAr1+/BgC2a6hYLE489G5ubrC5ucnOKRaL8DyP7RyiMtptQ3JJDskOgmDCFr8oBEGAd+/eKdV99+6ddLIQ+8/rhPRKiCPfNTQ0NFSR2XnNcRw0Go3QG/7Ozg77TGXlchmWZeGjjz5Cu92WcgqWZeHy8hK2bcM0TSmnUKvVUK/X2ec4TsF1XTQaDebgtSjntST+QlaP18v29jbrT7vdxvn5Ob788kv4vo96vQ7f99FoNJiD3/7+PqrVKjzP0xyDhoZGNqjGwxBjH8niDXmeF/oMIY6PZVlBqVRKjP2jIps/RyVWUtS1ZGVZ69i2nVpOnGzqV+LYvO+jqk6yQMc+Wk7o2EcaeUPZT+F3XQA8ZUpmGt5cIzPdBJxZ5ObmBtfX17F1VGXz59B3RDIfHBzg66+/RrfbnbDri9eSlWWtUy6XcX5+nkpOnGxVUxjVS9IJodPpoNlsat8GDQ2NCSjvPjq3LHwq7Pff29vDr/3ar7F9/47j4M2bN1P7Acj298fJpv39tVoNL1++DO3Kke3kmRVUrlUoFDAej0M7oqLgOI50EhXhed6E7weNz6//+q/j8vKS7VhaX19Hr9dLvVtJ7z5aTujdRxp5Q5lTcByHhaIgB7CXL19iPB6HSOQsEwIvm+T0ej0EQTAhmz6TLd00TQRBgH6/j263i8PDw1D4B9r7Pw+oTD7r6+vM0S4Jqm1vt9shfoEfn36/j0qlwrawBkEA3/d1WAwNDQ05VO1M/9PvKbP/G41GYNt2UK1WA9u2g0ajESrf2dkJSqVSYJpmUK1WQ7kN6Dtw9nM6n5dvGEboO5KtUpe3o9P3dC2+PbKyLHVM0wwsy1KSs7OzEziOkyhb1ldVyMZnWm5BcwrLCc0paOQN5Umh+iMj8DwvcByHJbchYtWyrMB1XUZ4WpYVm0CHT8wD3CbMIdm8HLoGPdD4azUajQlZREa7rssefvMkmrPUiTtPlWgm/Yg6EcdnGrJZTwrLCT0paOSNzLuPLMsKGo1G6KHMTxhRh7hDR3Y4jhN4nheYpsnOEa8lvoG7rht6Ay+VSoHv+0rXW9bDcRy1sZHsPpKNj+d5mVcMelJYTuhJQSNvZHZeq1QqODk5CdnHi8Vior1cxaGrWCyyPflkC+92uyHZAWe/39jYQK/XC9ngh8Mhut2usgPZMkKVUyBd8DqRjU8QBDpzm4aGRixSOK8ZjAx2HAcAsL+/D+A22Y7ruiw7WKlUYo5oSQ5d5ATHE821Wg3VahVffPEFc9KiMA50Lf6c4XAIz/NQq9VY2erqKjzPW6jz2jSZ1/hsdUkQiWbZ+FAZ6VITzRoaGjIob0n99JdMBH/+NtnLz372s1BQNjHYnWVZGI/HLJ8Bfwnxs23bqNfrePXqFQaDAYrFYihonijbtm0cHh4CAI6OjiaC5gHhoHG2bYe2dSYFspt3nbjzPM8L+T0k4fj4OKQTfnyAWz8Rz/NQLpdT+ynoLanLCb0lVSN3qNqZVDmFLDZ8kWi1bVtaxl9b3MEkcgr35SDyPY4DIJ6A14lsfCzLYjoinTUaDSWOQXMKywnNKWjkDeVJ4T/7R+UkKP8gdhwnaDQakQ8413WDQqEwkwen2JZpDiK4l+lIE8ojbnxEHfE7neJIaD0pLCf0pKCRN5Q5hT/4N8NViQTlydBisRgZrdN1XfR6Payvr6teUhmythAcxwk5s5Ft/a4heG9ekhHFgcQCGDU+oo4CjqTWJLSGhobypFAoFCayowEIRT2t1WrwfR+WZcE0TViWNUGayqKkTkPiRrWFZG9tbbG2FwoFbG1tsfZFyZaR4Ts7O3MlmsU61Mdms8nI4u3tbezv72M4HDJdx+mkVquxz/y1aHxksnVWNw2NBwbVJcW/9AcnbfzkOQvOxCFyClEObvwh+jbIHLzEOiLHkFa26OcQd31ZdNd5OK/xh+iYR858UToRnf6oTNSRzMFNlO37vjYfLSm0+UgjbyivFH79d4JtdzQMA6PRCC9evMBoNGJv15QdzTAMtr20Xq+zlJiUec3zPPa2yr+1E4KESKKGYaBerzM5WWTz8sTriZ9l0V2T2qhaJ+k80iNlXqMMc81mk5nFKB4U6cQ0TYxGIxwdHeHy8hKlUomNGekoanxE2bZt6+2rGhoPCaqzx6e/ZLL/XdcNvUm6rhsqp8+y+rK6ojzZwZO/vPw8ZC/rkdTPKGKYyukc/n9xbFRl65XCckKvFDTyRiqP5uPjY2xvbzPugJylROex4XCIUqkEz/OkDm4kg/wKZJnHLMuCbdsoFArsTZjqDIdDlmWMrsU7vVFZlGwVm34c7yByDHFysnIKlmXh6uqK6ZF3zANuHdMoLwIAxgGQ01+z2WSZ6C4vL9mYkY5k4yOTrXMuaGg8MKjOHp/+kslszWSvDgL1zGu0pZKXQXZ6mQ0fwltznN1dlqlNxh3IPmepo5pBLm9Oge8j1SmVSkxfMp2IYxY3PjLZtFrQK4XlhF4paOSNVCsFsjWPRiMcHBzg+Ph4ItvXxcVF6Bz6vt/vw/M8+L7PZJCdPshgi+c/k2w+U1kg4Q6yyJaVqWaQU7mW6nmDwQDVapUl06E619fXzKObP+/i4gL7+/u4vLyEZVlszKIy2PX7falsvUVVQ+NhQXlSWL0x0Gq1UK/XAQCj0QidTgftdhulUomZWvgkO2QKAcAS4bx69QqFQiHcCIEMVknUw5tcSDZdM052VuQlJwuoT5R4CADTK1+H1wmfZIf0SRnpyDRGsamAWx1Gyaa4UxoaGvcfyk+6b/6CCwDMOY12pbRaLWxubmI8HqNYLLJdK8Dtg+b169cAPuyQCYJAOfdwHF6/fs0eYnx2Ntlb9l0FTURBEKBYLLKdRQCYXgmka+o/xZSybTtUViwWcXNzg5WVFYzH49D4RMmOckjU0NC4f1CeFK7fmy+++eYbWJaFer2OVquF4+NjnJ2dwbIs1Go11Ov1EGlaLpdh2zaePHmCXq8Xcqba2dlhjlL8OTs7O/A8j00wVEbkMcmlc+hhxpPK5Dznuu7Em3ES0ctfi8qyEtbTEM18nVqthvPzc+zt7cG2baZX3mGNdEJbdk9OTnB4eAjP8+C6Lg4PD1lEVYo+S39/8pOf4MsvvwyV0UaCy8tLjMcBxuMxPM/TzmwaGvcZquTDq41wPCAZuatCNPPfE5EpkrYqslVJXBXHOLFMlh1uFoR1mvOiiOYoJ7y4WElpQNf7Fl7wLbxcZWtMD000a+SNFdXJY/+PjIFf+fCZTEC8KUhmFgremy5k9YnIFKEiO8iRxBXLrq6uGHk7jZw82yjqhOrwdfn/qR7FMzo4OGDfpdluKhvTvGRraGgsIVRnDzF0tmmaQaPRCDmVOY4TGWHUSBHemtJx8m++cbIfwuE4TuD7vnIkWBof13VDOZvpzd/3faVxJ8c2fqWQl2yN6aFXChp5I1PmNdM02e6W8XgcInrpM4VRaDQajOzs9/sThKlt2xOZ14rFIttpI8p+SODDhVAE2mKxyOz9YpgL0iM/Pv1+H5VKhW0DDoIgVeY14iCAD1xNXrI1NDSWEKqzBx/mggLhVatVFhiPL6fPfH3DMALDMBLrJtWna1ar1Ql7elKZYRjBzs7ORIIesQ7/2TTNwDTN2DoqctKeJ+qGHM/4hDtx+hbHZ1r7PzmvzUK2RnbolYJG3lCeFKo/MgLP8wLHcUImA/rLR9ekhwU9KPiom0QY8zIajQaTLUY7jYqAmpXE5T2A+WuklZPW6zpNGT9B8JnXRO9k+kw6Ij2K48NHQE0Lus63qAbfIl/ZGtNDTwoaeWPqdJz8xMCnf6S/9HZbKpUiOQXxoRjFKcgexHkcWbiKefMblBmN9E16jdp9JEvHmZRdTTrukt1HecnWmB56UtDIG8qTwsE/HX5w89E06UHFR+MkYpSP1BkEkxFWZYcY7ZTKZhXx9C5MCmL0UtJFVDuidEiri2mI5rxka0wPPSlo5A1lovk/+D9LjAwWo2mSsxOFQ/A8D59//jlOT09DkTqPj4/ZZ5Ljed4E0SxGO6Uy4JaYVnFCk5WJn8mhTcUxTXSeE7OzzcJ5jdKH8joRI6Curq4yHfF6pPEBwhFQaZyyEs15ytbQ0FhCqM4ev/3xx5Gcgmj356OoiisJsWzenELWOiIXMQ/nNZ5T4PsvZr0jfRMZLRsf3pyXxcTznRHNKUwrWyM79EpBI28YQaAWLOiP/bMG/tP/OVxWrVZxfn7OPtPWROD2jXdjYwNv3rxhEUUdx8Hu7i6++uqrkHOYYRghxyvbtvH27duJMpL9ECHqRNSZZVlYXV0NRW8Vx4fkUHa8jY0N1Go1vHr1ijmkFYtFadlv9G9XCj+PXirZ3W5XO7PNEJ99dvv3u+8W2w6N+wPlSaH6IwO95+EySuOY6oLCwywrCoUC3r59O7Uc4MPe+2lRKBRQLpdxdXWFd+/eYXt7GxcXFxgMBrkEAUwLFV3L6sjKvsVtQiSaFNLI9jwPz549097OM4CeFDTyRuZ40KZp4qOPPkp9nuxB4jhOKLqqyrXX19dTXzsLiD8gu3kc1tfXcX5+jl/8xV/EeDzGzc0Nzs/PcX19Ddd159DaMFQmX1mdrOdF1QmCgIXE0LkZNDSWGyk8msO5ClZXV7G7uxsiX7NGDt3a2sLa2poyiby6uppI9Ka5fhTRbBgGnj59il6vh93d3UQ5RIY3m01GulKazOFwCMuycomuOs86VMYjjWzbtlGr1aQ62d7e1hFXNTSWDFOZj0qlEt68ecNMSCqmiFnWkZmzssjm5ViWhUqlEuJGouRQzukgCNBut9nbcdy1ZO1etB6zmo9k3NBoNGI6lOnE932cnp5CIxu0+Ugjb0yVToxPBQmomSLmWSfreaZpwvM8GIaBm5sb9Pv9ifSb/Dm0bXQwGKDX66Hf7+Po6IilL51FG+etR5U6fJnruqjX62zCk+mEEjVpaGgsD5RDZ88Lpmlib29vYofSPEHcgOd5LM1nFFzXRa93+/bM54kOgoARqp1OB2dnZwshm2cB0zSxuroa2R9RJ3zuZ14nmnTW0Fg+KK8Uvv4v7bnYsFdXVwEgRGI7joOdnZ1U3IAs05pqG13XRbVaxdXVlbQOtceyLFxdXaFUunXsq9VqE85j9PDb3d0NZUqjNlKE00VyCnwqTsOQZ77jsbq6iq2tLVZu2zZc1w3pxPM8qYMbrxM9IWhoLB+UOYVzy8KnwrbNedm5ZXvwVW3hs2gjcQf0NkzwPA/n5+eoVqvo9XrsHJ57WTa+II4b6ff77Ls4TiGJd+H1xetkc3NTTw5TQnMKGnlDeVI4swz8gw8rnUEkTNPEysrKhDMdhe7gH6Z3ETJHQXFSSANaUch0oonm6aAnBY28oWw++j1/YpbNyAdkAkkqyyqbHm7j8XjioUnfUXIg4Nbr9y4iD89xMt0Bt5NBlE4oXpaGhsZyIJ8n5gOB7E2XJp0gCCayyr1+/Xqu7VsWkIc49Z/nLESdyHJ0a2hoLA6ZndcW7XTFRy2lMplDW14kLi+HJ5rFOsDtQ9CyLJTL5QkSl5dNBK0YJbbRaEz07a44r9m2je3tbfi+z6Ln/uQnP8GXX34ZKms0GsyZrVqtMrJeO7NpaCwYsih5MohJdpBjBNIsmc/4aKBpzssjY5plWaGUnlnleJ4XBEEgTU6TFBU2q66z1AHC+RSSzqN+Kd1XQj/jdKIxCR0lVSNvTOWnECzQoerq6mrCj0HlPNM08cknn4R2DqW9/s3NzYQzWxY5tM+fvHwPDg7Yd6J/xCJ1LUPceWn8McS6cTrRW1k1NGaPO8spvHv3LtN55Ji2iAB1IorFIgAwL9/RaIROp4NOp3Ondy9Rv7LUjdOJDqinoTF7KE8K//zfNmdmw5bZ/eNs8TL+QHRwE2WR/Z4ymEU5pk1ri6d2ywL7OY4T4g+GwyHbw394eMgy1Pm+f6c5BQoMqAIxEx8QzujH60RnddPQmD2W0nktS2A7mYMbX090LJtFP5IC21EbAITaQeXb29vodrvwfR+vX78OtXNWulapA0z6KcSNEd/PNBCd/jzPQ7lcZjrR/gyT0H4KGnlDeaUwTxt2ljpJdv5erwfP89gKYRFt7Pf72N/fR7VaDXEGg8EA1WoVZ2dn8DwPzWZzwtZ+XzmF4+NjtvuIj5EE3OqL14mGhsbsoTwp/PnfMz8btywLWh5OaP1+X+qYVSgUJkwkWZCUvS0IArx48YI5uPHbWHu9XuhhOhwOp25PVqjoQ+yrYRiZxujo6Ij1PQgCWJaFRqMBy7IQBEFIJzr/gobG7KH8K37+eJbNWCzW19exsbExl2vxb9gbGxvo9XohsjUIgoUSzZTVLu31+fppiGbxOpVKBScnJ6hUKqE6mmjW0JgPlt55jUhbFSc0mUNbnGyefB4OhzAMI5awnravUUSzGF11kURzVFY7HlGbAVzXzY1oBsLRVTXRrKExJ6g6NMzSeS2vOqVSKdGhjf9sGEbgum7IES0vxzTZZ8/zgufPn0843nmeFypTccybp66B2TmvBUEwoRPbttlY8DrRzmyT0M5rGnljqknhvhyyB9ysriNOOIZhsIcgHeLnZTjESSHpcF03aDQaiQ/y58+fT0yA1Wp1Qh7phCZyFdkPAXpS0MgbU+VovouQhbeeZ8hrChYXVyarowLHcfCzn/1sJhnrsoTOJuezuO2ktA1Xdh4PUScqsh8C9JZUjbwxc06Bz+Ilc+iatdOVeN7u7i7Oz8/x9OlTGIbByp49e4ZisQjLsmbaRt5eT5zG9vZ26DzXdZnDneM48DwvMfOc4zjY3d1lGevy1iMPVdnlchm2bcP3fRwfH0t3DzWbzQn+pFwux+pNVbaGhkZ6KK8U/tLvMPEv/t1wVUPBEUrM4iWroyInSx1ZmcyJTcykNq82RjnUieepZJ7Lmp1OVY9xmdeSZPNOaPS/7/vMKU3Mx52X7IcQJ0mvFDTyhvKk8L1p4rOUphXDMFAsFpcqYX2U+ejNmzeZTDbTwDAMbGxs4Kc//WkuiW1miWkzrxWLRTiOgyAIQo57Ms/ovGQ/BNOSnhQ08sbMA+K9fft21peIRaFQCOUqACB1HkuaEPLK4EbtoTfdKIe6uw7KCyE6obXbbdi2DQDMpDgr2Xr7qoZGBqgy0v/Yv5lt14ppmgvdNeO6bqgfrutOfMeXzbofaa45zWGaZuA4Tm7y0uw+4nUu0zefKyGtHtLIfgjQu4808obya9r3a/FEMzlmxWVDy4v8TEOQ1mq1EBHJO0uJzmOFQmGCaDZNE5Zl5ZrBLS5Ka17Oc6urq9ja2pogo5MI62mJZsuycHV1Bc/zpE5oFAGV7P21Wi32+kTGU6a7NLI1NDQyQHX2SHJes207aDQaS+d0RU5P1EZ6g+QzfpHz2KLayJeJbYk6L0sGOZljnmob0ziviZ/5PlFZqVQKfN9PdBS0LGvCwVBV9kNYLeiVgkbeyNVPQbZrZNFwHAeff/45Dg4OMBqN2A6Vs7MzZoteFNEsg2maWFlZSeQZsvoyZMW0RDMA6b0x7T0TJ1sTzRoa6ZEr0bxsEwKh1WqhXq/Dtm0MBgN0u10Ui0WUSiVGdC5yQjDNDwmMxuOxEvG8DBNYHMgnBbi9L+jeoDKCaJrKU7bv+6lla2g8dNzZdJyqoIid3W4Xo9EIxWIRvu+j3W5jc3MT4/EYxWKR7VpZFJZ1Qs0CWsW8fv0aAEKB86hsHrJFT2kNDY1kKE8KOxfGXAjivIlmIna/+eYbRhi/fv0aP/7xj0NlhUJBKocnOpNI9WnaGHWeLLVnlBw+SmzeeuSRRDQDtw/rcrnMHtqWZUnLZGlV+UiytJW40WjA933s7e3B933U63X4vo+f/OQn+PLLL0NlVNf3fZbAx/M87fGsoaECVfLhe8mWTBViNYl4VpWTB4mbpQ5F/BSJaVkgtyx9zbP/YnTVPPU4DdGcpg7pO4+tpSJhn6fsZYEmmjXyxkw9moFbZ613797dWfOI4zi4vr5GqVQKEdOO40zkei4UCiiXyxPl84IskFxemIZoTgPSNwXKs20bh4eHAJB6uyk/ZnnLXhZoolkjbyibj/7qowzCM2bxWiYQJ8FnEysWi9I+ra+v4/z8nHlJzxvv3r1byHXzBOm52WyySa7T6WTKvCZmgMtTtobGfYXypPDH94NU9mnDMLC3txdyTloEpyA7T8wYJnPCS8qOVqvVUCqVYBhGKIMbOaapRFtN2zfeFp+Wm5hWjzzyHEeKoitmXut0OqjX6/A8D5eXl5kyr0VldSPZJPPy8hKe5+mwGBoagDqnkCXzWlZnqVlyCklOX3zWMJFH4Mt4pykZ7zBNG/PiZrI4uEWVzYpTkOmb6vCOh77vT2UnlckOgiA3+YuC5hQ08sZUW1IDwYQifr65uQmFcpbVUZGTtU6W8waDAQuLwdujB4MBqtUqi8I5GAzY/71eD57nsdAVs27jvOvIkJfsq6srtkOI9El1+v0+zs7OMr/FHx8fx8r2PE/nftbQEJCrn4LoPLSMUHH6IhvzmzdvUCqVJqKr0rZL/gE362inWZzVZOfkFe01KwqFQsikNBqN0Ov1MBgMmG5lEVABpE6kc3R0FCu73+/j1atXaDab6HQ6esuqhgZynhSmdUxaBhSLRUZEjsdjbG5uotfrhUjLSqUyQWJqJENl40GlUsHJyQkqlQorC4IgExksXidP2Roa9xVTp+O0bZv9laVRXLTzWprzDOM2qmqr1cLh4SEjOcXoqsAHojnqWjxhHeUYl7VvaSKpiqR6WjKaynhk7cfq6urE9aOIZiAcATVPoplk0+YATTRraHBQJR/+zD8yP4J4lkRzUh3ewcm27RAJyZeJjmKiHMuylKLGZmmjjMCftR5nSTQ/f/48pE/SsWVZrIxI57QOZ3GyXddlBDQfQfcuQRPNGnlDeVL4TvIDv4+HYRgTD3PHcSbK6OGSJGvR/cnrSJNkJ81h2/bExFmtVqX1SKeu6waNRiPwPC9wHCdwHGeijD4nyebHkZd9Vzye9aSgkTcyh7kwTVP68FT5oYp1xAxhJId/qMrKxB9zXpnGZA98sWzRGeWSDtn4xGVjMwxDOkakb35SSCs7qZ0q+hfrqYxR1nEUV4jLDD0paOQNZU7h3/qXEbIF7+3t4eTkBE+ePGH2+N3dXTx79gy/8Au/gM8//xy9Xg8nJyc4Pz/H9fX1xGcq293dDcne3d3F+fk5nj59OiG7WCyGnLcMw8DTp09DckS+Iy1fIeNG+DKyzVuWBdu2pRnbZNfKK6uaCjciG5+9vb0JXZOenj59is8//xyVSgWPHz9mY/Qrv/Ir70NQ357jeR6+/PJLZdlJ/RAD4kXpX+QiVMZIdRxldWzbZqG3+cx9Ghr3Hqqzh+i8FhUoTnToUpIdEbhMNTuarD59v0y8RxQXMAveQUWH/Dm8oxj9TysG13XZSkE1e12eelzUOIoObpRdcJlMS3qloJE3Mk8KZELgl9+O47DPfIL1JIjJ26PMR1EmG9M0MyWBX5ZjFqYo2fiomI9oEhC/581H9HBUlX1XD55jEM1Oy2Ja0pOCRt5IsSXVYNv7DMPAeDzGixcvMB6P2TIcuHWYsiwL7XZbVXRo66DoKCbKps+03ZOSrhwcHLD4RGQOsCyLbQddZmRxTBOd0AzDYDqRjQ+VAQjpWuYo1m63WdIhPueBYRgskNxXX30llc2bYu4iRJ2Qg9vh4SHTiW3bevuqxv2F6uzx6S+Z7H/xTZJWBVSeZpUgAy8/SbZs6yhfd16rBxn5mqds8S1cXF3wepGNT9zYyPQt5hz43vw0+N78lJVTe0TZy7xaS1rNROkwSifLAL1S0MgbqTyaiXCr1Wosw5XneRORRKluFtmio5gomz7v7++jWq3iiy++CEW8pPZRO2YROVRWZ3V1FQDw0UcfsTp8JjT+vKQorSIZvbq6iq2trViCdDgcMp2Qjvjx4fXIZyOTOYpRJFF6G97e3sZ4HGA8HuOLL75As9nE559/znRM90OtVsNwOMxV13HniXokRzjbtiey1cn0yGfQMwwDV1dXEzrho99S3+9azgUNjVRQnT0e/QkrRLglkY1piOYgCFLJBuSkKi+DCN1FEs2lUik1iZwXGZ2FaBYjifLt5zkFmb7JSWwWelQ9j/oQtclALCNuJEq3Mh2WSqWlWi3olYJG3lCeFIJPPw2ZauhBwC+zsxLNQTDpLcybKETZsh96FCF4X460ZHQWoln2EKVD5qfgum7IU3jRRHOWsY/rM91Xsn5polnjviLVpBAEkzZ8ekPk7clZQwaQzZa3UYuyKTwBbZfkH3rUHn7iWvSDSuVwHCeRi0iaFOhBzeuED+nAT9aiMyH/MKW3ZzEcxLeoBt9iUrbruqH/Z8GpqB7T7uKKerkgnfF91ysFjfsKZU6hu/Yh1ePa2hoLINZqtfDs2TNUKhVmy19bW1MVKwXZqNvt9oRsstkTVldXme3X930cHR2hUCigVCphbW1twhY/r4B8aezlW1tbIS4iS1Y14jTof8/zWOayjz76iJXVajWUy2Xs7u6yaKFra2uMU6CxozKZvnnZw+EQhUKByU7qxywDG07DHxmGgR/84AcTOiFOgfpO95WGxr2F6uxBu49kmar4Mvqff6PnbbD8ykIsE225z58/DwVES+O8RufNwjFsmjpZs6Fl4SZEe7mMU5DpV2aTj+MUxLHPW4/zGiMxaB7d43y/eBMnv+Ja1MpBrxQ08kbqSUG2LY8v4x/k/I8ujrQTiVXHcSbqUqwk8UfO1+e/N00zsG176WIUFQqFzOeJD/SkQ/YAFO3u1J6k2FH8pED6pknHcRw29nE2+mU/CoUC8+SOepGh70Rd8S8y8ySi9aSgkTcy+SkkQfZwkT24ow5Z3bSTwrIeWYnwWfXRcRzGI6SdFMTdR3d9UqB+ZbnH43Qyy0lCTwoaeWMmuRllWcmoTCVjmaxusViMPDeN7EXj3bt3yZUkyNJHx3FY6lAZbNtGsVjEaDRCt9tVlk31KEPdaDRCp9NBp9NRyu+8rEijW7FunE50VjeNu4SZTArkfMaHoxCd0CgbFu9kRaEXarVayAmNJ/uI/OPPiZPNO4LNg0QmhyqZ85RIhgKTzmq8HNu2QzqROaY5jiN11hIJbFG24zg4PDxkY3V2diaV/SFH9QeHL+CDgxsRzpeXl/B9nznrLYJonqaOYRjsHlNBVFY30gk5U+qsbhp3DqpLijTmIxGiAxVfJnNyi3NkE+snyZ6VQ1VedWTOaiIPk9RPGTGcdH1eNk+kRo0PhbkQr8lHV/V9P3IzwDQ6ylP/cYR9WodLcWxE3co2ZeQNbT7SyBvKK4V///9KZ5rhw1YEnElhMBigWq2i3+8DAC4uLlh4Bgq94Ps+W4IfHByEZFxcXOD4+JjJpyBuUbKvrq5C7Qok5g2xbJ51bm5ucH19La3T6/WYTvh+ks4uLi5C9dNcv9frsZAOl5eX7O2Z9Ev1+v0+PM9jYS5It/z3Z2dn7G2Yb2deOsp6Xto6fNuTcHx8zO5ZmU7oPk6bV1pDY+FQnj5Svo7wsfld1w1KpVLkDhfxjc57n7eXd0Ljt1fyb6emacbKvouHbMeUGE48L0KX5BDhzI9Z1JbUqO2uiyaaC4VC6uvz6TnTEM2yrb1ROtFEs8Zdwkw4BeCWcPN9n4Uf3tzcRK/Xk5J5geTtrdVqsXDFRISSY1EQBIzQG4/HsbLvC4rFIs7Pz7GxsQFgUmdZQXKKxSIODw9DY8bb43lUKhWcnJyw8SA5iySaTdPE+vp66uu/fv2a/Z/m/hGvE6cTTTRr3CUoTwq/9Ht/K5XgVquF09NTRshdXl5ORECNI5plEVCB21wA7XabTRpJsudNNFOZSupNKuOjqRIZnYZoJjJYpa8USZTPp0AbASgKKOmR9xaXEc1AOLrqIonm1dVVZY9m2gxgWRZLz5kX0Uw6oTHTRLPGnYPqkiIr0SzLdyAzDfHeoaJnMl/Gk88qsqNI3LiyPOpERTuVnSdGU+VNRDKdRMUnUumr6ImbFPuI9P2dcRv7SPT6tSwrZNaT9WNaXc9qjMTPaYlmcmqT6STqns0b2nykkTdmPinIdhKJ4RDEHSFR6Tijwg/EyV6kjTvPQ4VTSOorTTJpH5yWZSVyCuTZvGg9TXvIQrPIIHruy3TCBzo0uGB7eXIMelLQyBtzWSlEhcWIChkgZlujMlFWFtl39ZDpRHzw8P/LMsFNkxmNnxSixof/fJdzNosvHzKILx8qOlGVnQZ6UtDIGzMjmgnELfDZqqjs5OQEp6en2N3dDdmCybZbq9Vi7b1ZZC9jlFSV83id2LaNarUK27axtbWFSqUCz/NY5FPP8/Dll1/i5OQET548CemQdJq2jVFtEWUTF/LJJ59gd3dXmnlOvH5cJrpFjFG5XIZt24zH4rdXE3zfV7pnRX2ryNbQWChUZ49pnNeSIG7vkwXP4x3R0th+l915TfW8JIc1y7KkNuwoHaZtoyxKapJslcxzsmtljSSbdx3RCY34FlkQR1WdqMhOY1rSKwWNvLEUk4LMJCLjFLJkdburJgzxkOlEPPiEN7LMeNOYdGSZ11SzuqU9liWyLc8DiIEMxTaaphmbiTCN7DSmJT0paOQNZfPR3/zvNlSrpga/ve92++Otx20QBGyLJgCMx2NYloV2uz2ztkSBzBvzhkwnlmWh0WiwYHeko3a7jcPDQ1iWhdFohF/+5V8GAJaYfjwes/ppcFv/gwlkPB7jxYsXGI/HzFSSVbYMJGsRoG26lmUxf41Xr14xnxngNpDg3t4eu2dN08R4PMbR0REAcNt4wXTEbwFOkq23r2osFMrTxxxfR0Syji9Lm/s5K7EqHot4e+X7mkYnVE5tFlOcptWJ67os9pF4Li9vGiJ7GY4kfUd5J4tpZOlNP2l8VGQnQa8UNPKG8uvv3zcD1aqZwBNu/MpBjIBKdVWRRKxGRSkVyUdyKIuLgJon0WzbNlzXleoECDtKkY4ohhR9prfZy8tLluK0VqthOBwmtof6ahgGhsMhi30kOs8Nh8PQGKnIjtIROZRlHaNpiearqyumR9Kt6ExJKWj52Eei05/oTDkcDlkMKxXZGhoLhersMUtOIQjiI6MCsyOaVR3cZpXWM+483ilK1IlINIv/y4hMcrbK0sYsRHNeeoyLJDut/lWIZr5fUdkC0+o7TrYmmjUWiaWZFHhPZAp4J2ZeWyTRXCgUpLtiZnkUCoVYncQdRAa7rhuaXBZNNC8LiaxyEBks65eMaBb17XleItEsk62JZo1FYjHsqQQUy4gCslEmMO99kp1isYjxeAzbtlMRzXkFyVtfXw8FO5sH1tfXpTrxfR+NRoORk5ZlheIYEfH58uVL9Pt9VCoVFliwWCzGZmMzTZOZqIAPpjMimnnZRPxTWZLsZQf1lXQbvCeD6T6kzQZRRDOvbxoz0hFPNCfJ1kSzxiKxNJMCD7J/t9ttPHv2DJVKhXEKa2trqWWlsWHHcQrT2MvTnmfbdshhj9fJ6ekpHj9+jLW1NZRKpVB2NeA2OJzneSwr2nA4RKFQYHZ/qi9rz+rqKra2tpgTmjipirI/+ugjVpYkm/SooqM4h7ZZcAqGYeAHP/gBm/hJt3zWPwoQKN6DMn0Tj+N5HiqVCnMsTCtbQ2PuUF1SzNp8FATyTFV8mejoQ3H/+bAXYtlddl7jbelkg6ZdKlSexCmIdn+V2FAyvkIl9pFoZ8/LCW1RYyTToUw3fF1ev+I9y/8V43fx34lBC+M4Bm0+0sgbSzUpxMUyev78eSgIWdIDkEg70THorh7Eo4iTXNRBCWNEXqbRaGS6Pj8pAPIHvnjcJf5AVYdJdWmydByH3bN8LC7Ra5l/kYmK1yW+EPC/Dz0paOQNIwjUspL8208N/OmvF29tinJsIrvufUbaPuapk08HwBhAD14u8u4K0uhQrEtmquC9EyZvyoqD7HrRsg304KH+6W8oydZ4uPA84DcUbpMVVYG//FdBXKPGA8TYAGbsqnIvYBiGNGc2TQx5y66iN5VMjYeB8/MUlVWXFJ/+ynKsUfnlONld+YQxfJnnecHOzk7IDlytVgPLsphpg8rEOrx5ynEcqRzRnp8kJ815ZIIQzQ78X+or5agWkxXRFslSqSTVUZTO+DLbtgPTNINvHQTfOh/avLOzEziOExiGEZimGZimmbr/0+oo7zq2bYd0QvZ8MvFE6YjXpThGlGwnje8Bfz2xPaLsb+EF3xnVGf7iNO4D0pgZ79ykIEIkUvmyrFFBxc+zdJ6KO4930qN+WJY1QaKLznyig1uS41+cDkkGPynk2X9ZnUVFSeV1E+dMqaJvXsa0uRNk40Oyv4UXfG8u529TY3mQZlJQNh8tG46Pj9HpdDAYDFjZYDBAtVpFv98HAFxcXGBlJdzFQEKhiGXi55ubG1xfX08tJ+15vV4PpVIJxWKRbYe9ubnBwcFBqN7FxQUL/cHrhL4nfQAfdDQYDFAsFlGr1XBxccG+v7i4wP7+PiuTtTfP/k+rozzr9Ho9trX28vKSBRY8OjoK6ZV09OrVKwwGAzY2vL5JDoDUfgfHx8c4OjpiY0TyZbKN/+cqlWwNjUQozzRLtlKgNyVankcFY0vaAXNXMoRRP/kgd2KOal4nZGIQ8y9HZQLjTWqyHVviSmGWh8xbeJ5jRP0nPfKB7cStpfw5or6zrhBkWd1E72iSTYEKNTTikGalsPjtRBnRbDZZgLxnz56h1+uFsl7xQeWiHJooQ9jW1lai09POzg48z0OhUJAGbcviPJXmvFqthvPzc3z55ZfwfR++76PT6eDRo0cskxevk2aziZOTE9TrdaaTer0emQnsyZMn2Nvbg23brIx37OIhBqhL239yTIvSIz9mwAeHujS6naYO9b9Wq+H09JQFtgPA9F0ul0Ny6vX6hL5938+UWU2W1e38/Bx7e3sTssfjceRqTkMjE5RnmiVbKQTBpN1XfMMC4gOw8YRjVB06RH5iHpyC7Pp8rmr+e9EZSqYT27YnOBZ+pcDHSBKvz68UZByLaj+yBMTLqtusdXidROlbZaXgeV6mnMzitWjsed2RbPIf0dCIw4NYKQBgeW5HoxE6nQ6azWYoJzCAWBtyIGzvizoHuA2rzNvmZXVU5GQ5zzAMDAYD9Ho99Pt9HBwcTMQYIl3E6WQ0GmEwGEysFIBbruLm5gYAWFkUZByLSj+y1pmlbJmueZ30+30cHR3h7OwsVO/Ro0ehe200GuHly5cYjUZMzmAwYJ9pXFTAjxk/9jQ+omy9V1wjVyjPNHdgpcCX0SF7E8xyLNo717btyJAWgDz0xM7OzkQKT/ENV2WnDzBfTmHRh6hn2cpJln+6Wq1OjBkvR2VLMJXxssWx52XTSkEW9kVDg/BgtqTGhcWIChkQlf9Z5Ycq1hEfClF5lA3DYGWO42QKwa0yKclMGnFy0hC4yzopGIYROUazzBktK0vK46w6RipyqIwmhTwIbo37iwczKaig0WiEuINGoxEqp7Is6RDjZNu2HVSr1cC2beboZVkW+59/qM3DMYsvsyyL7UTinfKiznMcZ8J5bVZtJIc9nrOIOo/s+FFjx4/PLHW9qHE0DINNCvSZvw+zpvjUuH/QkwIHkVhNyho2TVa3KMevOLOPrGyedVTMR5Zlzc15TTY+cefxkV/pf1olZiXDZ7lhIO86NCnwdWRZ4MRAfBoPCw+GaFZBIBCJooMblSU5a2WRHUiIbJl8sWzZ6hDBOY/rk2MYPz5x5/X7fZydncHzPJaI6Fd/9VfR7XZDjo15tjHP82ZRhxzcfN9nyZVIJ51OZ0KWhgaPez8p8AnvKYNbr9dDEAQsY1nWrG5xsm3bDmVHu29wHCfXLGuGYYQymEVNzoYkO9pgMEC5XEa73Wb6liUImkW7lwV81r3gfVa3breLw8PDkE50VjeNRCgvP+6o+UiEyCVQGS2xZyWbbODLYoumz7RDiYjKqPOiAuLl0UbSPa8r2XniGMn0zdvRRU6B+Apq96I4BfIeF4MIxo1RFMdyaz6qKutE42FCcwoC+B8Fv2WVnJPIfs1vbZ1WtsyZiX7Q/GdZ2TzrlEqliR1TMp5BhVPI4pjGP/xkHIwo2zA+bO0UQ3iIdnORl1hUYMM8xkjUbdSWVNHBTW9T1QgCPSlMQJbGU3yDpB9TGqI5SbbsB38XDtkWSJUtqbPy5TAMIygUCtIHp2wyuW9Z92QH+UTIiGaaOPmVHOlETw4PE5poFtBsNhnh9urVK5TL5Ql7cxDh3TyNbFVZFE9pWZA1W9usMt8ZkvhLMt1S2fX1NbrdLt6+fTuT9uQJ08z2E+z1wsl1ku410okmmjWS8CAmhVarhcPDQ/i+z3aoFItFeJ43FdEcJ9v3fWWieX19HZVKJWv37i148vndu3esTCSaAwmxH0U03xeIk4CMaKZ7nCYeTTRrqOBBTAo8arUafN9Hu93Gs2fPUKlUUKvV4Hke1tbWcpN9enqKx48fY21tDaVSKTa6quu6LGa+MeMIoFkjufKgOhTtdBbXtywLKysrsCyL7RKzbRs/+MEP2ARKunUch40dla2trYUiq85DR1lkixFhs13fwOPHjwHcRpQtlUpwXZflXKCyae9vjQcCZZvUHeYUgkCeBYsvk3EDPEFHKRLFMt5JikhbCrOg4jwFTBK0Mlv4IsloYL6Z1/IiqGVyVMJMLBvRHFeHOAV+k4MYMZfvJ5HPdI9qjuFhQBPNEsTFSaI8vPwOF/oxRXlA8/WnOVzXDZGoxvstiNPKzftY1thHaQ7aplkqlQLDMNgWVXGX0l06aFKIemkRczuL8aDo/tbbVu830kwKRhCosaGfPf8M3/3wO5WqdxalUmnCC9ZxHFxfX4e+cxwHjuNMkH1pMUvZeeNb5/bvz086Cd8ZkL63t7fR7XZh2zYODw8BAD/60Y/uZLKab3Gb/Oez4FypvniPx+mEQq+3Wq38G64xV3z22e3f7xQe4Q+OU4iDjJikMv67YrGYywNklrKXCa7rwnXdRTeD6ZnfMdbpdNDpdO6dzqMg3uNxOtG7lR4m9KTAod1us11DFL5iOByyROlUBtySynySFRWC0HGcmcnOo05cikwehnGbnjSujXxfh8Mhrq6uJmTnReKapgnTNCfqUApVWn0BwP7+PjqdDur1Oktrenl5yXYtzZtozofoVk+yI4ZmqdVqqFar+OKLLyZ04nme3q30EKFsk7rjnEIWiDwCXyam5wTUI4DOQnbWOlmT7Mi8bJO4mKxtzHqeTN9UR4wkyvdl2YjmuDGaNh2n7D6UbcrQuNvQzmtTgpKt87ZXMQLqYDBQjuTJy5iV7FnWkeH6+noieip/Xr/fTxXtdBbtvrq6QrVaRalUmohcy0cS9X0/5EQ2zzbOcoxkOD4+ZjrxPC90H4o60auEBwrlmeYBrRToTYniIrmuG7iuy96oKEENfY46xCxrruvmJjuvQzU0RdLuI1kWt0WHmRD7JotHRW/D89S57OC31ib1wzRNlvkv7UpBTFdL9yF/Db1CuH/QK4Up0Ww24Xm3uzqePXuGXq+HWq3Gwi3U63X2mSCzqe/u7uKjjz5i39dqtVxk52mvjnKeEh3TeMhkr66uhpzFDMNAuVyWyrZtO/R3VvZ6vm+k25OTE9TrdaZv3/dxfHwc6Tw4a06BeI9iscic9eL6Yds2PvnkEwBg91YaTsH3/ZDsWq2G8/Nz7O3tTehke3sbx8fHyrI17gmUZ5oHtFIIgnCgO1kEVNnedtGmHpWZbVrZss951skaJVVFdpaosVn7JnMKFFcKfNjwaa6V9bwkbiZJzrQrBbpPxeiqpBO9argf0CuFHOD7PgCwLXrNZpPtthmNRolZvfr9Pq6urkLf0znTypZ9nmUdGbLKLpfLma6fpd2maYZ2SI1GI7x8+RKj0QjA7ZvyYDBgn6e5VtbzkriZNNdXAX+vUf97vR5rg6gTulc1Hg70pBCBbrcL4EMQsVarhc3NTVaWFGwtCIKJhw2dM63sWWNW0U6Byeies4RhGHjz5k2ojJ+UgiC4E5FUVbC/v49qtQrP8xJNPqQT6j9v4hJ18tVXX6WSrXEPoLz8eGDmozRhMehwHGciVwPwIb69GDMpjexFH9OEuZCRqKQTkZzO85CR6KKpSEbizrJNuY/Le/ORjDyXQTQfyXQkI+hVZGssL3TsozmBT/doGNEpOHd2dlLHlRFlLyplJ5WJ6TinSbXJ62RnZ0fp+nn0jWIdUaBCsQ7t/IqrQ2WUxpTiVi1qjGhSoM/8fRj18pHUt6jrJ8nWWF7oSWFOiCKSRUcp+psmq9u8nNdUSdRpiGaedBd1MksSV/wsc6iTyRHJX9mqbVqCOK86ssxrsg0NFBCPtrJmvX7UZgk9SSw39KQwJ4h726PMR3S4rqsse9lMGHmbjxZx0P7+NG0xjMlUoMt00KQgtlmWxxqQT3Bpx1KUze+Y0+al5YTefTQniHFkisUier1eZCawNFnd8iCbHcdZSJpPw1DPjkYxiXjk3W7D+JDB7eXLl6l27mxsbGB9fT23tswKssxr3W4Xh4eHIX1/8G1Qg2maibJHoxGCINBe0PcFyjONXikkgt5CZfwCfU4rC/hg17UsKzBNM7AsS8kWvLOzE1pxzINTEPuapBPxzZ3s/tO2O47TSCPHcRwl3kOsN19OoRqrb960E8dViWW8DBXZGssLbT6aI/gfheiEJi6x0/xwkjgFlUB2i+IUSqWSsk7E7HSWZSllrEvTN958NSs9yto9jzEi8xElCxKd0MTEO0n3FY0L3wdV2RrLCz0pzBGyNJ5RD6A0RHMSpzBvO3caToEnmCktaRyxvMijUCjMrE2qcaWmGhcJ0Ux2f/4eoolaJR5VtVqVjmeUbMpEqFcMywvNKcwRfHKSV69eoVwuMz4gUPBMzQLDMJideBmxsrIC3/eZ/Xk0GkXqZNFQ0SMfQTUNZukEKCJJr9fX1+h2u0rOeqKDYZLsi4sLHB0d6aQ89wR6UpgSrVYLh4eH7CHY7XZRLBZZsp5ZEM0bGxsL93qOw/r6Ok5PT9Fut9mEGaUTGdE8DxAZfl8y3cnI4GKxyMoAdW95Xh9RRDMvezwea6L5HkFPCjmiVqvB9320222cnp7i8ePHWFtbQ6lUwtraWmpZRkTEzeFwGBndVDxHjHaaNQIoj7jzbNtGrVZj5Wtra/A8L1InfGRV1TZNW8eyLKysrACAkh6T6sj0HZXBblaZ1x4/fgzgNlptqVRiWdX4MlHfSbINw8De3l6ibMoeqHFPoGyT0pxCJKIyVfF8A/0l3kEMe5GWEMyLRJ4F0Ux2Z95z1nGcUFmcHJndO0t01ax1kpzS5q1/FaKZ16uo/zhZMjJcDGvBbxage1ws4zPY0VhrfmF5oInmOSOKZKNy3ouU/1HKPGyJtFs2QnYa57U0B213FMnNnZ2dufV1HgRxbuMiIZrTHIVCgYXKpslbfHGRvbSIZbJ4XXR/axJ68dCTwhJCltmLPJz57/jsbMt0zGtSSKsTfrtpXofKpOA4zsIzywEfJoWsHvCk7zzyMov3eJ6yNaaD3n20hKjVaqFMY8b7rFf0HV/GZ8cCZpt5LW9OYZrrq+qE5y+ePn2Kp0+fTmRxm6aNPIfgOA52dnYm6mxtbaFQKCzNGGXlZkjflBHw8vISx8fHmTKviTwYL5vyPm9vb2N/f19ndVtmKM80eqUwFUR+Abi1v1KOXCrLM/NaXs5TQH6Z15LaKMuOJtMJfW9ZVqQPRB5tVHWmm9X1k+rEmY9U+BLeCY10nDXzWlRWNzIxid/rlcP8oFcKSwh6W6rX6/A8D4Zh4ObmBv1+H4PBgJVR5jXx7Ty4J5nXxDLTNFn8KOr/ixcvMBqN2EpB1Ilh3OZbtiwLNzc3TOYs+n9zc4Pr6+tEObO6fp51gLC+XddlmdfoPqSt1aPRiCWBUgWtNmSyj46OmE8PgNSyNeYHPSnMCa1Wi23J5B3cZol5Ok9lhW3bePbsGX7hF34htYPbrPqX1Vkt63nzhPiywWM4HOLy8pKZ6w4PD9FqtXK57sXFBb7++mu2RTlP2Rr5wggUf4GfPf8M3/3wu1m3595je3sb3W6X2a1J/f1+H8DtQ3JtbY19joLjOPjZz342kd93Vvj2vY/Zz0+mj54KruuiUqkwnVQqFfi+H8qlLNMJOcXNAuSQNe158xijb+EBAH4e0WlOaSIIgmCijXQfXlxcsHLf93F6epq6LXRvR8mmMcsqXyM7Pvvs9u93Co/w5X+1uWegJTYAPHv2DL1eL0Sq1uv1EGEHTBKEjuNgd3c3FAY5iqC0LAu2baNQKEw4VC0D0Vyr1UI6aTabODk5Qb1ej9SJYRgol8tS2UQ4i8RzmjbyRLNYJ84xTTxva2tLaYzyIJpldXZ2duB5HorFIlZWVmBZ1kQba7Uazs/Psbe3x/Tt+34molncDMDLtm0b5XIZtm3DsixNNC8zlIkKTTTnBjFrlRhJNIlo5jOZRdXhP/Ply0Y0R2XyStKJTPasHNxUCPussmdJNMuyw0URzWIE1DyJZpItjo8mmucHTTQvOXzfBwCMRiN0Oh00m02USiVWNhhM2mgCzsrX7/dxdXUVW4f/zJdH1UkqU6mTRTb1Na1OZLLL5fJM2qiqo1nJzlrn+vp6wnRlmibTq2EYjAymelRGpjkaFxXwYyaTLY5PGtka84OeFBYAsrvSDoxWq4XNzU1WlkRCB0GAd+/ezbyd8wD1dVqdAMDr169n19B7gvX1dabXIAgmguZRGe0S4jmCJPBjJpMtjk8a2Rrzg54UFgDansrvwODL2u02e+MCwvZh27ZhmiZc12V8AW0BpGiWss98Gf82x/MOJFtWxsNxnJAcKuOdvFTt5a7rolqt4ptvvoFhGCgUCvj6668nylQcynieIS97veM42N7eTrTpizqhMRPHkddt1Bjt7OywwHqmaYbGPkq2Kjfkui7Ozs5CnwGw9KdUVigUYBgGzs7OsL+/j2q1ilKphFKpBM/zQmX852+++UYq27IslMtl1i9Rtud5mmNYFijbpDSnMFeINnQxThLZkPksZ1lkkxyep+Blkz2Y5xSiYjap2P2zchp8mSxjm+y8PJz3VJ3X0uokLi5QlJOXTHZa57VF8B6qdXSspNlBxz66BxBj2TiOIy0Xf1BZZJP8uPg5/KQga0vS+XkfsgeMeMwzsF1anVB9MXOf7/sTwf8oH7JMNk0K8+rnPHQobjrQk8T00ETzPYDMhl6tVjEcDqX1gxSJYmSyh8NhpGwRb968wfHxcUjOmzdvlK+fB3izSBRkvgazcjB78+YN9vf3J/QQpZfhcAjP8+D7Ptu//6u/+qvodrv4W3/rb4Xqvnr1Sjr289b5rCHTycHBgc7qNmfoSWFJ0W63Q/xAsVhEr9dDEASwbXuqrG4km2zatm0juF01Tsimve0Ecn7qdDpMDpUVi0Vmm77vcByHjQ/1/+XLlxiPx0xnxWKRfeY5HdJ3v99Ht9vF4eFhaCzr9TrLUkdhJ2jsRdl3GVFZ3XidjEYjndVt3lBefmjz0UJBOQaM9/kGqIzMDrOW/f3HZvD9x2YoRwQt6fm6vKxqtTrhI8GXqdSJOm9nZye0nz5JtmmagWmaU9ehMl7n1P9qtRrSWdT4yPQdZyJ5/vx5UCqVAtM0J2ST+SirHtPWSaOjnZ2dUKIl8RxRh2l0opEOmlO4J+B/FKIzFx9JlGyvs5BNkVyJUxAjXvKOZaIT1KyIZuCWBPe8MMGaJWNaVjKaru84zoRzlhj9ls9GJkaAFSOJ0tiQbJm++c/LQjTL9Cg6z8kc6Sihj+g8J+pEYzroSeGeQCQh+Ydg1O6XtLLpx1cqlSJlA5O7j54/f84ebqZpsoeYeN48jyzEcl5kND3g+IcbP2GID1PDuE2ZyeuMdpKJu51EfdP9YFnWUhDNhmEo6bFQKMROODKdUN/1imE6aKL5noBCDY9GI7x69SoUXTVQ8GhNkk326n6/j9FopByllI94aVkWxuOx1MN63shiY8/LLk86SxqXON1eX1+j2+1OEMqDwQBHR0csfhXdD2nHPE/whH0QBEp6NLgAkPy5cbi4uNBE85yhJ4UlRqvVwuHhIXt4d7tdFItFRkJmJZpJ9unpKdrtNpt4ZLKjiOaXL1+i3++jUqmEztdEczqiWfT6tW0be3t70k0Gg8GARZFVfRAvE0Qv/CiimdfJeDzWRPOcoSeFOwKKcd9ut1lehrW1NZRKJaytrU0lm2Lcy2TzUT4BYHV1FZ7nsWRBw+EQhUIBnuehVqux+nl5FGc9L64OedVGRTtVkbO1tRWpE9JBrVaD53moVCrY3d1FpVJh+i6VSnBdl6WsXF1djRxLkuM4TijnAUWWBdQ9mmeRslRVjnjO3t4eHj9+HOq/qBO6rzTmCGWblOYUFoKopOdiek+ed5CRllFlZL/mbbf8jhFAzikEwaSHreiJO0uiOa9Uo3ldS8YpxEUplekwiS/i9ev7fuD7/tIQzVnqiPcM3eOyfpLuePJdQx2aaL5HiCLZ+K2h9KDhf3RRD+7nz59LH3KO40jDccsmhSjv3UajEXl+3se8vJVd1w0KhYJSXdmDUTxIluu6EzqMOkjfNNaO4zBP32UgmrMe1I+kFxnZPatDYqSDnhQeGFzXlT7MxO9c1514m+e/k8mhg58U0sqexaEyKTiOMxHDP80h6+e0B+mJHmIqsqkdslXjXZ4UqF9Z7vE4nWhMQu8+emCo1WqhTGPG+6xX9B1fJmbHoixltVotJEeUR0grO09OgecCePt0lOytrS0UCoVM1yediP2My+rGRy4VZfO8izh2cbJ5fVOGusvLSxwfH4eiii6Cm5mmDt8vFYiZ93id+L4P3/exvb2N/f19ndVtWijPNHqlsLQQ+QX6X3SUkmUw4zkJ+k72ds2vFFRlz5JTyFpHxcEtygktTg4wySGIskX7eJRsUf+8MxfvKMh7NN9VTiHtPS7TieiASbrW+AC9UnhgoLcl2v1iGAZGoxFevHiB0WjE3kQpgxm/3bFer7MtpRcXF2wXjRhfn5Akm39bDO5gVjPSiWVZuLm5Qb/fZzqjvtGKRYSY6YyXbRgGms0m8z2Jk03jSGNEGcyoPm1Jpexoqn3NS0d51ZFlGIwCrZJkOjk6OmJ6BT4katLIBj0p3AOQz8Hjx49jHdyiIDqhPX78mG2fNAwD7XabPbTSyl42qO7tj+tfEARKUVrFc7744gvm9Mefn2bM+C2py57OclYRaUXwzpSe54WSV2lkgPLyQ5uPlh60hCYyU2biEQk7+t513VCydj6sgu/7odhHqrLvwiELRSGaj2T9yrr7ide37/tMNq9/0XxEZiP+mmQeWTTRbEhCU0TpiHa4kRkpDdEsmodEnfD3qsYktPnogYKW2PT/yckJ6vU6M/HU6/UJwq5cLjNSlbynfd9Hp9PBo0ePYNt2iEBOI3sRzmtpHdO2trZCDnq8Tp48eYJeryclg1WIbtn1eX2TRzmNGelbTCtaq9Vwfn6Ovb091g7f9xdKNFOKUFrhbG1tTdQRU6ju7u4CAFZWVmBZViqiWdzEwOuEdGbbNizL0kTztFCeafRK4U4gKpomlUURzfRWHEXaff+xGSKaVWTPm2jOEiU1T6I5i2yZvqOIZjGS6CKJ5iRSXSyTpTXNg2gWI9Ty96zGB+iVwgMG2ZlHoxE6nQ6azSbbJimSwfTmCoARnwcHBxPxi0TbdZxsHsEdJJplOhEJ9DxlHx0d4ezsLFTv0aNHoa2tRKoSiU1liySa40h1WdnNzQ2ur69D36clmuN0QnolLDvfsszQk8I9Q7fbBfBhB0ar1cLm5iYrKxaLoYier1+/BvBhR81oNJpIB0kyCXGy7zpEnVBAOtlDLw/ZQRBMPBxvbm6YXoMgmAiaR2W02+auIs39wt9rMp2QXgniPauhDj0p3DPQ9lR+BwZf1m63Q29cvP1ctM/u7OyEolOSLVtV9rw5hSxB2uLs/jJOgXSyvb3NJlLDMOA4DhqNRqj/vDMbL5vf0sq3mbgQy7LY6iGKU6jVaqjX60y27FpJvItpmgt1cBsOh9jf30e1WoXnebE8wPHxcaRO+HuW+nd2dqYsW0OAsk1Kcwr3BrIgbGSj5cso6cvz589ZOs4ssvljlpxC3nVk8aNIJyLPQDZsMdZUEs+i0saoOFae5zFOgU9Numx6VK0TF89I1KOoE5LDy1OV/RCQhlNYmZwmNO47eHNF8N4sIiujpC9HR0f4V6eQzUMsU6mT9bxp61Bf+D6RTkTTDdmw+boym3mWNsra8eF/BwBwdXUV4hhUZS9THepTp9NBt9vFwcEB+67f74fOE3VCcnh5qrKJH9O+De+hPNPolcK9gWzfvfE+abpYDtzuCVddKSw6JWeeh5FiDz7tyOJ16zhOoj+DamA/MR81yY7yUzAMQzm667IcpG8x/7hs95fjOIHv+8r3m2maQaPRCFzXDe1YItn3fbeS3n2kEQvaGy9mAguCALZtT5XVLQ+y2XGchWRwI15CNTsan6WOdmTxuqXMawTTNOE4TmI7+KxufOa1IAgmsrpFYWNjA+vr61PrZJaIyrzW7XZxeHjI9BoEAdMHr5OoTISkI152VLbAQGd1m4TyTKNXCvcWjUaDrRQajQYro8B3QRAorxR4WdVqlb3dmqYZWJYVKhPrUNnOzk7oDVCsF3XeNHX4vqvqhK9r23aws7MTsldTebVaZXkQGo1GKInRzs5OaP++2I6kttBKQeyr4zjBzs5ObP9V6sxC17J+yvoYZ/+X5WFIGp9qtcq+f2jcgs6noJEI/kchOqGJy/c8ieYsDmayslnU4Yl1XicyRynKcseHyRB1JssvITp9iU5pVIdki85zokPdNM5rMoeyrGOUpQ5lq5M55kUl3uEzr0U5apKORNkyx8GHAj0paCSCfkB8Wk7ZDg6qkxensMx2bn7XEekkilOIesCJ6VFlns/8oZIEKIpTsCxrJrGP5pXVTtSjjMOJyhZI5aQ/GrOo3UeydKl8Ctr7PkFoTkEjEeRfELy3425ubmJjYwMAlHaNRCGOUzBNc6nt3GSf5nXS6/WkfRJ1UqlUcHJyErKFd7tdFm02Cu/evVNq1/n5ORsfKkuSvShuJg14PW5sbEzoOwgCdDqdkPc0lbdaLRavi8aM94PgZdP48Doj2d1uF51OZxbdu5PQk8IDBYXbJmKUD8dMBB0RnmmIZjF4HO+8tLe3pxw0T8z8NmuHKsMwsLu7O6GT4+Nj9pmITs/zQjoi8nh/fx+dTgf1ep0FFgTACFDZ9WWB9SjYHJGqtVoN1WoVw+EQpVKJlfGQ9VUW7C9OR+TQlpcTYFIdcvijvg6HQ5adjsqA2+2+ItFMOvniiy/QbDbZGK2urjId8bJpfACgVCqFZGuiWYDy8kObj+4lxBDZYlmenILMhr1MnALv4JSkkzhOIS6Qnkob58UpLLoOmW+iOAUqo8+O40h1EsWDibL58eFla/NRGHpSeOAQyTq+jP/R8fkURPKPL7vLfgqGYbA+0cODHi5J5KvMZu04jhJnkHTYtj1xPZK76HwK0+pb3Hklcgq0a0s8l3gWMZ8CHXzqU/o+LgcIT07fx0lCTwoaypARbVTGP+T4HM1RYReeP38e6QB3Vw7bttlDiJLAyN74ZQ+pIAhPirQFNeoc13WViPc4ndKksMwEvuoRpcOoSSEIJrcD8w912UuLWCZO+Pxmg/tEQutJQSM30JsUPynQw5L33qVMYot+sORxUF/oYaCSUS6tTmT14x6WUbuYaFJQzXqX1+plVnqX6VDWN6pL+p3GIzlKfh6ylwV695FGbqjVaqE4P8b7CJX0HZG0RFLnTVBmPS9LnUKhwIhOUQc84c2T4Fl0QpnXVGUnEcYAEjPB8bIKhcLCdS2WxemQ35wg6pt20VHk2v39/dSZ12RjUKvVcpF9J6E80+iVwoMEvS3xK4Uo+2xemdeyZjXLow5vi45zQhPftmU6kUUuzZLVLa4fd5loFvWomtGPdMubgWTZAtPe47LxmVb2skCbjzRyA/0oaFKgHzb/l/53HCcXTmGezlPiQ0u0M/Net9Q3vozvM/+XJ0wNw2C7ZmRktCg7DT9w14lm0iNPGIv6Jh3xu49kDm7i7qM09zhNMFEOblllLwv0pKCRO2hLqmh/5W2+UfbfuzIpkJ06CMJ2Znoz5PvJQ6YT1fqyuml0OO2kEMdXzFPfsm3AUfqL0mFexPAsZS8KmlPQyB1BEGA8Hk84uA2Hw5DT0XA4BBBtQ+YzhEXVEbORiRnCZmXnvrq6gud5IScn13WZTZmcqoDbTGDHx8esXNQJ74RFTmcy2aJjGoDUzmNA2HmNMrjJHNNU+AqVMco789oXX3wRcvrj9Uo6KpVKTI+igxs5DmbJi3B8fMwytMkc3KaRfSehPNPolcKDBpmP+OVz2ixjVE+2BTDpvEXYwmnrLc8x0L56cnqi8rQ6kW3rFc1QKm2cBacgBu2b13jI9M37jYj3Ea8/ksMHNVSFbAz4sZtG9rJAm480csd3JSNENIsJZUzTTHRcI9t6XJ1lOogbEAlk4IMTn2hrVk2yI/IOWY+7zCmo6Jv3G+EPWZBA/khDBqdNOnXfiWZtPtJQAr/s5xPKkJkhLuELj7dv386kfXmBzBwAWJC1V69esW2chFqthlarhXq9DmBSJ5SQh9eLTDaV86Bzp0VecmYJ3qQk0zelGLUsi/WH6lPiIZLDg+JOqYAfM3588pB9F2EEgVoITPNPm6iWqskVNe4l/vqf+h7Va+D8feIw2tetOhncR1BGL8IidPLpABgD6MGb2zXvCtJMimnH7C5MuDzGY+ByxcM//PY3EuuuqArVE8LDRo+ySAYfHn7A7f9BEITe9h4KxAcJ/3Y5tzYYgLkQlRu4taZEfV48xmOy+BBkbczWbl42/3tYVlRxrv6wz996pXEf8emvfKrEK82StEsrW5ZVbFaEtcp5PFEdJyeV85rgP5K2jWkdBflIsuL4JW00WOZNBdO0MU4nS4MUpIKy+UjjYeOz558BAL774Xex9UqlEgaDQaiMtvaJ5QDgeR7Oz8+V2pBW9jKCVlZxEM1Scfj2/Qru5zN2v1AooFwuo9frKdV3HAfX19fY3t5Gt9uFbds4PDwEAPzoRz96UCtFQpxOlmYr62e3v198F//7BVKYjzQ0VFAsFice0OS7IEOah0ha2csIlUlhnpwEH9dKBbwPxt/5O38Ho9EIBwcHWF9ff5ATAgC8efMG+/v7uLy8hGVZIZ30ej10Op3FTwopcLfYEo2lB2XAosxXtm0zW7tt26wMuH0gpcnqllY2rSIeAtKm3iQnwWKxGLtKME2TOeWZpsl2CHW73VDq0SAIlj71Z14QdTIej/Hy5Uv0+31UKpWQTu5kVrfcbVca9xKqnIKIRqPB9nw3Gg1WRjFupkGSbPoenB24Wq2GnMT4z1nrpDlvZ2eHBcozTVNZjmVZzOeBr0Ocws7OTmg/f1wbed3H6YjXa5S+eTs6L4vva6FQCCzLylWPaes4jhPs7OxMpWv6LOrEtu2QXpeSW0jBKehJQUMJaSYF/kcRl/0qS3CxNLJViOa8IrKqnkepNvmHTBY5YvKjtG0kRzGZjnid8MH/ZCkz+QQ2ItGcxTM6q/6T6shSwcrGX4X4l+lEFl11qaAnBY28kWZSoIc1PTRKpVLkQ5B2bqgijWyVY1HB96Y9qN18SPO8jkKhMPFGzf8fFaU0i/4XeRiGoTT+oj5EnchSsS5d5rYUk4LmFDRyByUnCd7bnzc3N7GxsQEAE2Sk+DlP2RrZsL6+znQKhPW6sbGBXq+HYrEY+r7T6dw5/au01zRNKYnOf65UKjg5OUGlUgl93+l00O120el08mv0HKAnBY3c0Wq1cHp6yojhy8vLiUiijuPA87xURHNa2Ts7O9LInZTdzLbtxIxl4mfVslnVoWinYrvzaCPpg6LdGoYBx3FCehUjwBKZ7/s+C3myzHoUw2UkRaRdXV2d0LWoEwDS6KoU8VUTzRr3ElmIZlmM/LwSlqjIXjbntVnUmdZ5TWYa4vVGZpAoToHKxO/vmh7T1JHphOcUeJ3cRfORnhQ0lJBlUpCFlhZTG9LDhTJqUT0+GxZfRj8yntQsFAqRpOl9P2bBKYgPRJkXdlSa0YdwOI4Tu8mByij6KpHPjUZjcZOEnhQ08kbWlYL4I6Ay+oGIYZFleQbozYxPkZnlIUTbCfk3v0KhcKcnk1lPCtMchUIhtP2WtqjepfDpssNxnMiXFr6Mv2eBcGiWuZPQelLQyBtZ/RSSkJTKksrEFUaWXUOqshd9OI6jPOnJJgXZDqFFHKRv0i+fhyCPtK2L7leW+5vOl+lkptC7jzTuCmq1Wojoq9VqoXIq830/VC8tQZxG9iwIUlmKTMdxpGT41tYWyyegen36bBgGnj59il6vh93d3YWQ4aK+accYpdnc39/HcDic0Mci2pilDvVLBfy9RpsbarWaVCfb29s4Pj5Wlj0zzHh+0rgnmNVKQXxLj7LPqqT6FMtE4lMmm8wbcXJmRZBGOVRlIZpFh7MojiUv8lXF6Ut0cJOtyJaNRFYlmrPc3zIHN1EnM1s56JWCxl1Bs9lkW/sMw8BoNMKLFy8wGo3YG9ZoNMJgMAi9wQWSPeZimWmasbJd18VgMGDZvaLkqFwry3k3Nze4vr6eWg7woa+GYeDm5gb9fj832WnrOI7DdNvr9dDv93F0dIRmszkRgG8W1591nTQReen+dl0X9XodlmWx8RF1Ytv2cmxfzWMS0rj/mNVKgYeMX6Ay/n/Vg7f9qnAX8zgcx5GG1sh60Eph3v2J4nSidE7l9HY8b75DJYd4lvtqmntc1MlMSWe9UtC4Szg+Psb29vaEE9pwOAw5S1GY7Cjb787ODnOgIttvnGzeCSvKhp8Xp0BlW1tb+Oijj6R1yDFNRQ7fVwBwXRfVahVXV1dTy1bhRmROX5Zl4erqCqVSSergtr+/z/IL7O7uMifCeXABq6ur2NraYp/JUY/ndPh+8A5uOzs78DwPtm3DNM1UnMLx8TGq1So8z5M6uPE6WZrw2rObmjTuE2a5UpD5M4hbUlU4BZmDVR6yZ8UpTFOHgs2pOq/R//Nso7i9mOrwgfIWpcco3iWOG6Hv0nAKs8xEmAp6S6pG3pjlpCDzcuaX2SpLf8MwJurQfvI42Y7j3NmgeMBy+yk4jhN6mN7VQ9yI4DiO8r0tM+cZhhGpE000a2jgNp5RvV4HAIxGI3Q6HbTbbWYeUc1E9vbt21SyyUQwz0xnIqgNs5LNm1TmCbpur9djRG21Wl1IW6aFuBEhDfh7jfofvE8MBUzqxPf97A3NCXpS0FgKdLtdAB92YLRaLWxubrIyPiqnDEEQ4N27d6EyOidK9ng8RrFYTJ2S8i4hkOymmSVokguCAMVikWUnA4DXr1/PtS2zQtK9yIO/16j/PGch6oTu1UVCTwoaSwFy5jk8PGSEG1/Grxx4QtC2bUYAuq7LylzXZRFY42S3220cHh5OyJ4V0SzWyStKqyza6fb2thKxmhfRy6fjpL4Btw9By7JQLpelJG6a6Kp5EebT6Ho4HGJ/f58RyHEOZ8fHxzg7O5vov0wnVFatVhlZvxBnttkYsDTuG+axJTUJsyTtZLKjPquWzaOOjGiWxY8inagQq3m1UdXBLQ/nwXnWEctI37KtpbxzWpbrx8lOhRScghEEdywzhsZC8NnzzwAA3/3wu4W1oVQqTTgO0dY+mUOR53k4Pz/PLPsu4Nvb7uPnuaY7joPr6+uF96lQKKBcLqPX60XWoST3dxmk7+3tbXS7Xdi2jcPDQwDAj3/846nGIE52qq2sn93+fvFd8u9Xm4807gxkttxisRhp403zvpPGTrzsoL4suk/r6+s4Pz9nZiQZRB7INE020d8VkJ7JO5k2NHQ6nakn5TjZs8rqpicFjTsDyrbmuq7UwW2arG5i4DKyIUcFrVNxnpunnTspO5osGx3PBfB2/mnbyGdwI4e6qOB3ohPc3t5eKJDfPPWoquuozGudTgf1ep1lBOSz0alenxzlaMxE2RRE7/LyEp7nzSYsRjYDlcZDwzJwCiJEJzS+LI2DkSiLt+uqBq0Dwk5ZUXVmxSmo6kR01JOF3Ji2jTJOQ1WOTN9Z+YpZcQr8vSXyWbzDpO/7sVxVFtlBIA9Fngjtp6BxX0FhK46Pj0PmoYuLC+zv7+Pi4oJ9TrNzg1/mBxmC1gHA9fU1bm5uYuuIZXnVIb3w/RgMBqhWq+j3+wBudUJhMGbZxl6vB8/zMl1Lpu956lGlTr/fZ7uPSLdUp9/v4+zsjL3FR91XUWVXV1ds95FMtud5s8/9rD7VaDxkLMtKgd6SKCRzqVSKDOGQZrUwiwBt8/CUppUC6cU0zaBUKi1Fkp37fIiryUajMRFi5fnz54ne3IVCIbZOnOxUu5H0SkHjvoL8C4IgQL/fx+bmJjY2NgBA6a0vCnGkrOM4S+/gRkTkeDzG5uYmer3ewonmrHAcJ+TzsIzg761KpYKTkxNUKpXQ951OJ/YeNE0T6+vrsXXiZGuiWUMDtx6ip6enjHS+vLyciICaJ9FsGAZ2d3dRr9eVCEmK/Elk67zIz1arhcPDQ6aT4+NjpqMkonkebeTJ2aSscnGRZKNkJ20GmAfRDIQjoCYRzaurqxNEexTRTLKJwNdEs8bCsSzmIwIf6I4IN1nwO1XEEYIigSyrIyubN9GsopN5Oq8lmVjylD3LLHMys+Tz589DUXn5rGpUJkbtzUO267rsXk11j+soqRp5Y9kmBVlIbDG1Ie22cRyHpT8MgoD96Piyu2p/p0lBfOA6jiN9CC/ySLKv35XDMIyJSaharU7UEz21VQ7XdSdSeIopZF3XnZgoGo1GPMegJwWNvLFsk4KMaKMy+oGIYYvp7Zn/0VHZvDOw5XXQpCB7AKk8lGThrecZ8jrvTHTzOsRNBDJdR200MN6HeaeHufjiIntpEcv4FSB//chtqnpS0MgbyzYpqKDRaIR2JjUajVA5lT1//pytFAzDCKrVaug8/rNq2bzq0KSQtY1JOrEsK3SObduB67rBzs5OLv3Y2dkJrdKizrMsK7BtOygUChNtmud40ESWtf/05p9HCk5+zBJl69hHGnljGWIfpUW1Wg3F3aFYSHy553kAEKpnGEZoR4j4WbVsHnUo9tHmMFsbVXTCnyOrn2dfAbDk9nnLzquOZVlYXV0N+VOkke15HsrlMrrdLvvf9310u91UaTn5MUiS/We/+grFYhGl3/qtRLl6UtBQwl2cFDzPYw5AwO0WwL29Pfzar/0aS6zjOA7evHmz0EQ700AWEC8NaJdLv99nD7A4nRiGgY2NDfz0pz+dWSA70zTv7HiowDAMFItFOI7DtlYTfN/H6empkhzx/o6T/S1uJzNPiDUlg96SqnFvwW/JNAwD4/EYL168wHg8ZnF3gOTMa6rZ0WaZRS0LZO0pFApMJ9R/yo4WpRM6h95G+/3+TCOb3scJgeJ1WZaFIAiYp3O73WY+MJQEShViLLA42UCKAInprFgaDxV3kVPgIRLJrutKy2WHqmfyInI9x+VolrWH+i3TS5RO0uhqXsddIqh5ncv0nQe/kCT7tz/+WHs0a2gAH2ICiQ5uYiTRKIcqenuOiyTK16OyeTtUidnJLMuSOs/VarVQ/Ch+NSXTCcmhaKey60/b1zjdRsmWObjlHe0163l8ljvLsnB1dQXP86QObhQBNQ2XQDg+PmbZ35Jkl9KEI59qatJ4MLirKwWZP4MYSTQpmqdKJFGxTOYoJjsvSU5SHVnmtbjz+CieqjpJki3TYda+imXzdkzL0kZZmykul6zOLLMFRsk+t6zb1YIC9KSgoYS7OinIvJz5ZbbjOIlmH9oGGVdnUUec+Uh2OI4T0glNEvy2UBWd8IdpmpkctR7qQdtIZd+lCYctM+dFyf4WCM4tS0muNh9p3Gu0Wi3U63UAYFmr2u02SqUSMzUkEZtEUt8XkE5s28ZgMEC3273drphCJ6ZpMnPJeDzOlXjOQtgvG8kvwjRNVKtVAEBw+zIOAKyM4Pu+skz+PlaRvbKyotZW5RZoaNxRdLtdAB92d7RaLWxubmI8HqNYLCZGQH337l2qiKvLDNqB0u12MRqNUCwW4fs+2u12Kp0AuDc6mTVoi+3r168BIMR9UBmB7lUV8Peximwx9Wlke5VboKFxR0Hhtg8PDxmZR2XtdhuHh4cT0Swty2KE4fb29gSJyEfJpO2dfBn/mR6wMtk8iSorM7jImbwcPvUnAGWClEjjb775hpHIr1+/xo9//ONQGU+8i9cSSfW8SVwV2bxOTNNM3AwgRjblx6hUKsEwDEZq0/iQ7GlIbAoBblkWyuUyk2NZVmQZJdkplUqMRKYy8TONWZJsQH2loDkFDSXcVU5BFVGknfhdnoRglGyRoJTVJUIxLdGchVgVo31mlZNnG0WdUB2+rkiGB4F8+ydPvJM8PpVmkuw8+z8rPX4LBN+bptL9qjh1aGjcb8jSJlIZ/9319TW63S6Ojo6UtxCmlR11vphqk0cgMeWolKnUGQwGobATWeXk2UZRJ1SHr8v/T/UoOc3BwQH77uzsDMAt5zQYDGDbNnzfx1/5K39FSfY0/Vi0HmXQ5iMNDci9PalM9p3qDyyLbJW6xWJxbpnVisXi0mVCS6M/vh5lqKNNB51Oh00Ytm2jWCxiNBox8v0+gTdvxUFPChoamAwZIHNw4zOYpcnqlla2yE3UajXmgEdyarVa6Bp5OF1F1XFdlzmKpZXD27nTtJHO4236tm2HdFKtVpkeeZ1RhjJZdrROp4N6vc4y1Pm+z3R6eHjIxurs7Ewqm+cZ8uZU8uZmxDLiiRKhbBjVeNC475yCCNF+z5fR53nJjnM2mwenkLVOlixrcbJ53aTRocgN8A58Mr8APt+GCndxF/SYhlPQKwUNjffgwz8Egj26Wq2yiJMXFxc4Pj6emWxxt4nv+8zkcXBwMCEDmC2nMM86cef1ej2mE55TIZ1dXFwAAPr9fmiXDumW5PT7fZydnbEcx2K4iMvLS/aGTWMdCLzCXdZjIpSmDo0Hj4ewUqA3RMpwVSqVAtd1pak6064W0siW7f4RPbMp1WZaj+b7cojZ4ZLelGU5okmvsjzKjuOEvL5d1430Qp73IUv9KTsKhcKHcChA8J1hKN2reqWgofEe5LsQvA8Pvbm5iV6vNzXRPK3sIAjQarVweHjIVgzdbheVSiVdB+8RisUizs/PsbGxAUA+HnxZpVLByclJSGdBEKDT6YR2VtE5xWIRh4eHoTFTJWpnDdEpTQbTNLG+vj6R5EcFelLQ0HiPVquF09NTRjZeXl5ORBLNQjSnlS0jmqvVKr744gvU63X4vj8RDmGWRHMedVQiqcoIaZ54zoNoBsKRRIloFh0Oh8MhvvjiCzSbTTZGq6urCyOaecK+XC4njvXq6upElFxNNGvkiodgPiLwphoiImWB9WYlW0zmzpOqFIHzLhDNovlGJdppnGzDMKQ6IZ2J40PJ7sk8RN9blsXKyAmQ5PJyZLIXrUfVOmJZGqJZTwoaSnhIk4Jstw+/I0X2MKF69CCKKqMHo2VZ7MGVtLtEtJ9TmW3bD5ZTsG071sPYsqyJyVTkFCzLmuB0+AmIIsXehwiwaTgFPSloKOEhTQqyUAhU1mg0At/3J8IW01s/P3nIyuhBQ5mxxMlGdsgyn9GkM49JYV5ZzgzDmCDfTdOUkvEqob1d12XtjtJhVDY50i8/5uKkcpcOvSVVQ2MKkP2fD2NBZScnJzg9PUWtVgvZgsnG7/s+DMNgZcfHxyyMgvHeEcy2beZ8xtevVquwbXvCzkx16Zp8GWFWnILjONjd3VVyXiO7P2VsS3MtwzDw9OlT9Ho97O7usrK9vT32mT8vKWie4zio1WqoVCohDkjUoTiONAa8fh8/fszG/smTJ9IxWib+JqpMcwoaueIhrRRUIGYaiwtax9cj84SsPm+6UJU9a05hnpnPVHWoIps3H2XJusc7uNH//ErhPnMKOiCehkYGBMIWSNGBCrh1THvz5o30PNEpiv9OlC06uIVkr8rbo1qWVOfm5gbX19dTy1GpQ05nw+GQlV1cXGB1dTW17JubGwRBEHL6+/rrr0PjI5NNcvr9PgaDATzPQxAE6Ha7oWCFs+h/nnVUz5NBm480NDKA30pqGLeZ2V68eIHxeMzMGwDYZ37Lo23bGI/HODg4YPGMaJlvWdbEllTg1ps3CIIJ2YtCHpnODMNgfTUMg/kDAGBl1EfeDKIqm3Jl0MTw1VdfsfHgZYtbUi3LQhAEzGu63W4rJR26N0i3aNZ4qNDmo2iIZKVIatJngmxbalRdUb4oe1G7j9LkcI46+L7G9TGOEFaRTYQxEda8PFV9izLmqec8rqmJZg2NOYDiGdVqNfi+HxkBdTgchrJmUaROckLjI6CSXD5WEr8qEWUT5u28xhO9Ko5pPBlN+Z2HwyGLT0Q6kjmm1Wq1kElJpY28bHJC+/zzz5nOaMzoWvz4AGEHNxqzZrOJ3d3duRLNq6ur2NraCumassWJcsTscGLGPk00a+QKvVKYRFz0UkCNaOZlEKHLk5xJspfBeS0vMjpPojlKtqjXuPERI6OWSqWFE8183Kuk86gPhmFo5zWN/KEnhUnIvJx504PjOJFmFuP9nnyZtyztkecDsommC5J9n5zXSCcqfgppD9M0g0ajEfJdsG07UrZhGEsTAE/WNpV6/H2lA+JpaMwBYpC6TqcTSqhTLBYxHo9hWdYE0Ry8J1W73S6TAdxm/2q320w2BWSjTGCi7EXBcZxU2dhM02TmGL6MTG6maTKdUD9N08R4PM6U+U2UPR6P8fLlS/T7fVQqFTZmdC3Z+ATvdy9R2bIgUNxF9O7du9BnVbJeTwoaGlNibW2NxeZvtVp49uwZKpUKs/vzjl9Un+znvu/j6OgIhUIBpVIJa2trE/LJ/t1utydkE+bNKWxtbbF+qcgRbeNUxv/PcwpURpxC2sxvomzP81jGteFwiEKhwGSXy2Xs7u6yCKo0Po7jsPGgsiyOefOuQ2U6IJ7GTKHNR3LIMnjxZWIYC5FTEOPz8LJUZC8Dp5BXnShOQRYKJG02sqjYRyIXEscpiPLS9l8WImNWuhbL9O4jDY05gfIkNJtNaVmz2Qy9rQXvl/60B57PIBa8N1dQyAwV2aJcHiply1RHppPBYDARJhwAPvroo9BKKUn2zc0NXrx4EcqdIHPM48eH2kFlvDzRT2OZ9JjmPBmMQLWmxoPGZ88/AwB898PvFtySu4dSqRR60AG3Nvnr62vpd57n4fz8XEn2d6XbCefnBwkV7wBkOqE8E71eL1S30Wjg5OREqr+82gIgUjZxEncF3+LWpPSpAg+lVwoaGjOGLLsaleWR1e2+QKaTYrEo1QeFnJDpL6+2xMkWSdy0xPsioIlmDY0lAb8jKcrBbZqsbsAk0ZzFoSyuziwIUnLEinLMo7d1+kz6E53+eMdBx3FSZ0ej6K7i+MiyupFsMUrr7u4unjx5Enk98XNclrm8iGYdJVVjptBEc34QiVS+jD6rIoponmd006x1+L6m1Ql9R8mK+DIZMZzURtW2RMnmHduirqeJZg0NDQY+bEUgkKt8BFSKnpoWgWBimWd006x1BoMB04tILvM6oc+lUomFo6D6Nzc3ODg4COlV/KvSxl6vx8JciJFU+bIo2dfX1yESO+31866jep4MmmjWUIImmqfD9vY2ut0u2zl0dHQUCtPMw/d9nJ6eKsnNm2g2TROrq6szIW9FuK6LSqWCbrfLzDGiTmzbxtra2oSOqP7FxQXG4zHT68HBQSQB7DgO3r59G0sQE4FMkVLH43FupDI50S0C376/flWYuGTQKwUNjTmAtpL6vo9Op4Nnz56h1+uFMoFR1i/ZFswkyGzKFBCNbMlJ9mnbtvHJJ5+EnMxmxSkYxm3ms2azybaWynRSr9dD2dH4c8/Pz/Hll1+G9Pro0aOQPvnrbW1thezqsjrlchm2bePJkyfY29uDbdusjM8Sl4WbEZ3JxPNEjiGrrqPKNKegkSs0p5APxIBsMscs3lktCXHOa3EB+WSfs9jip6kTFaSO14lt29KAeNQ3PpdyHm2keEGWZYViJM2i/3SdWehaLNOcgobGkoJWARQrqdlshsIg83XSIJBYga+uribMLmI9/nOQwRY/TR0yUcXpZDQaYTAYTLwFDwYD9Ho99Pt9HBwcSLeDpm0jrRSAW66COAIqm0b2vOuonieDnhQ0NOYI2l9v2zaLlbS5uRmq8+rVq1CMfyKej4+PUa1WQ2VxGI1GS+3zMBwOcXx8jFevXgG4zTpHXtqUxpQe9rLJi7KzjUYj/OZv/ubU7QmCYMJJDoC0LC8sMqhhJJTXqRoPGtp8lA/I1EHbKPmyRqMR+L4/kWVMjIXEl9310Nl8fynLGd/PqKxrYnY2OhzHkW79pNDZ/HfThOWOuk7UkVcI8KyHNh9paCwpWq0WTk9P0Wq1JspOTk5wenoaIlYNw2DmFd/3GdHp+35otTDvKKl5Oa9R33inPb6ftVotkmgGbh3biAS2bZtFb+VJW8MwsLe3h5OTE+ZgRmW7u7vKDm6UMc5xHOzu7ipFiSXHOJHAn6Wuo8pUiWa9JVVDCXpL6vxQrVZDJguKhcSX046dvzG4/bw5NCZMRYaRXLbIOpZl4ZNPPkGv14Nt2zg8PESr1ZL2UzThiDoh2fw1+P/jdMjLVumHZVlYXV0N+YEsm67FsjRbUlcSa2hoaMwV4o9bdOaisjdv3gCr8nNUyxZZ5+bmhkWGHY1GODg4mKh3cXERyo1AEHVC5/DninJkjmmibJV+xEVXjSubZx3V82TQ5iMNjSUDxUqibGDA7dssvQlTWRJJKYZ3XjYYhoF2u43Dw0NYloXRaIQ/+Sf/JIt1ZBgG6yMfH0rUiWVZaDQajJQmHVHMIpLz4sULjMdjZj4i2byJRUObjzQUoc1Hi4PneeyN2HVdFpKh3+/j2/cZLmUezYv0oFUB9QUI95E8uqmMr0eI04lYn69L9QGwuvQ/cMtz/OxnP5sIWRGHeXqBZ4X2aNbQuOPgYyXxKwcxkighKh1j2gioYnTVWRLNw+EQ+/v7qFarGA6HoRSlfATUWq2G7e1t7O/vS3UCAPv7+wBuc1eQjnjZfLRTPgJqrVbDcDhkbeTTjKr2TZZqNEqPsvGgMjGya1ZdR5Vpj2aNXKG3pM4XopdvEExG7/Q8L9ajOUtUTtu2I1NUppGTpU6UhzMfETVKJ4bEG1smW6bDtP1Q6Vtcqs9Z61FWprekamjccTSbTUbAHh0dSSOJ8qRpILECUzwdHmI98fNoNFoYidrv9+F5HnzfD5HP1O+PPvooUidBRqJZNPmo9EOlb4smo1XPk0FPChoaS4hWq4XDw0P4vo8gCNDtdlEsFlmymWKxmMgXrK+vo1KpzKnF6WGaJjPpmKaJIAjQ7/fR7XZxeHjIJoBisQjf9/H5559LdUJJdmzbBnC7ZZQnmolbefnyJcbjMTPXjMdjptNFkM2maTLz1zyg2kc9KWhoLDnItt5ut/Hs2TNUKhVlToHs5VS2qGxgsjr8dtDV1dUQp3B0dIRCocDs/nE6OT09xePHj7G2toZSqRTiBEi253mo1+vwPA8fffQRKyPZKysrsVFKyQmtUChE6igtfyNyEdp5TeNOQe8+mj/4HAyUX4EvA4D/5ew2lpLMec2yrIldNGJuAFmuALFM5hglypbJSet0ZRgGNjY28ObNG2Z64R3F6AEXBAFKpRKKxSIGgwGKxWLoHFkbLcvCkydP8NVXX4XKRCc0mc4W7ZimMmZ5Oq/plYKGxpKCcjBQkDixjC8XHwiu6074KZimiUePHoV8IOjtmfcBoDJV2YZh4NGjRxPtT2sLJ/MR/5DmbfNBELD619fX6PV6GAwGE+fw/eXlvHjxIvTAz2r3z9K3rHUM4zanRKlUgmHchtgQx2ea68ugVwoaStArheWELPOa4zi4vr5GqVSaIFIp3IMKZOfLZNOEMstoolngOM5S+w6ogPRNK0QKBwIAP/rRj5Qf9N/idoL5VMFvRa8UNDTuGYrFYugvjzTvgLLzZbKLxeJShuguFovSPAuLhuu6zGkuCaRnfjdap9NBp9NJrXNNNGtoPADQD5122sgc3OhNno9EqoJ2u8129sTJBm6JXz5ZUF4E6TR1XNdVimQaR7zn5VDmOE7Iee7q6kpKWFMKVRoz4NYxr9PpoF6vs9Sjl5eXbLeVars10ayRK7T5aDlx/g/cvglXf+vWVi5GAeUjg6YxHcmQJBuIjziqQrRmPU+ljgqJPKs2yqK0ys7jx0iMAEvfkSmJ748mmjU0NEKgsBiigxsfSfTi4kIpY1sW2UT48pil01XaOrKH5jzb2O/3sb+/n6ijq6srlnVPjADLO/f5vh8i0jXRrDF36JXCcoJWCo9//neh2+3Cdd3QA1B8CPHbW1VBb6ZRsm3bxtra2sS1RGQJNpcnFh0gULaVVITYRtu2Ua/X8fLlS3auGDBQBXqloKHxwNBsNpkJ59mzZ+j1eixjGdmcbdtm/g15yq7X69LsaKJNnc9WJqsjK8uzDk1qQHpHvbSOabI65XJZWofPHMe3kXR7cnKCer3O9E1Z9/hAfjognsbcoQPiLSe+/9gMvv/4NtCZGEiOz3VMB+V2Tos42bZtTwSWgyQgXVKdqLJF18kSWFC1jm3bsdeybTtoNBqhep7nTZyXdH0dEE9D4wGCVgG0bbHZbIZ2BPF18pQ9Go2k/gCBYFO/urqKrRNVtmx18pRdLpdDn03TDI3ZaDQKmY4Mw8BgMJgwQ2W9vgx6UtDQuCfodm9DXti2jWaziVarhc3NzVCdV69eMSLT8zxGPB8fH6NarU6UUf6CV69eMRlnZ2f4+uuvb9OBvsfbt29j2xYEQaI9fVkxSx5CdPgzDCOkVyA8cQRBkKjrKKj6KWjzkYYStPloOcGbj8isQ7kG+LJGoxH4vh+4ris1J/HmILFMdp5ovjBNc8J84ThO4Hme1IwiM3cs+jBNM3AcZ+FtEMtUdM3r1nGcwHXdoNFoBJ7nBY7jBN+bZvDbH3+sdE/plYKGxj1Bq9XC6ekpWq3WRNnJyQlOT09DhDCRlsCteUgkMs/OzmBZFizLmoi2ypOmIolLZbu7uzg/P8fTp09DZOoPfvAD5m08K6I5TQY5ioD6ySefTGRQS+OYltV5j0hsCvkt1lHRNen26dOn+Pzzz1GpVPD48WOcn5/j+voaVc9DSTFMt96SqqEEvSV1OSE6ryVBdJ6SOVWJjmhZnbdE2VSHrzsr57WsEVCzOK+pOqbNqq98med5KJfL6Ha77H/f9/Fnv/oKxWIRpd/6LSRhJbGGhobGvYH4MBGd0KiMt2vL3hvFMlkdUTbV4etmlZ1UZ5aZz8QyyuqWh/PetHX6/T4GgwE8z0MQ3CYi6na7+DO4zYldmjhzEtp8pKHxgMAnvKcMbr1eD0EQMPOFSla3KBiGIZVt23YoO9pdB8WS4rO6zcro4jhOZGA/MieRboMgwGAwQLlcRrvdDulbFuBQBj0paGg8ILRaLWZnFp3Qnjx5wsp4DkDVpk82bZls3gkri+ysdcheb5pmpC0+So7MwY3qEV+yt7cH27YjHdPy4EZ4pz++jmEYePr0KXq9ntTBjU/p+vHHHytzCnr3kYYS9O6j5QS/+0gV/C4lfteRZVmB67oTTmZpHLNKpZJUtswJK63sWdQRncVU5FA/+Z1VeckWP1uWFZRKpcg6hmGwnUa8bknfbDfap5/eHgrQRLOGEjTRvJxISzQDCCVsqdfrePXqFfr9PjN/TBOjiAhPmWwZQbpozCoekmEYWFlZyexTkOV6pGMAIX2XSiX87TdvlIlmbT7S0Hhg4BO2vHr1CuVyecLenPTwpgT2IlZWViJlL9uEAMzOMY3MOPOCTLdUdn19jZubm9C24jjoSUFD44GBtzUH73eoFItFeJ6nTDSvr6+jUqlIy2WyKVnPXSOaTdNkyW5UYBgGW328e/duhi37cD2RaA4iiH1NNGtoaCSiVqvB93202208e/YMlUqFZVWj1UBUVjMxSqdt26jValLZp6enePz4MdbW1lAqlWJlzypKapZop6urq4kObbzslZUV5vDnum7IMS3vvhqGgR/84AdscibdOo6DtbW1UBmfeyEJmlPQUILmFJYTWTgF4AOvwOdX4MuAD7GUZFyA6AhGJiP+XDF3A89l8AHeRNmLcPpKU0dWJsuVIJbNo40yTgHQ+RQ0NDQS0Gw24fs+ms2mtKzZbIYeMDxc1w29eRqGgUePHrF8DTLZvHzaOimTLStbtjpiGW25Fd/wHz16NPc2kvlI9TwZ9EpBQwl6pbCcyLpSUIEss5fruiwnM33nui4qlYp0dZBG9l1Fkk7miajJVq8UNDQ0pgbvxEY2bOIMeMc04g7SZHYTZRNmzSlMW0csS9LJPNtIzoN8AEK+nmrmNb1S0FCCXiksJ2a5UpBxAJZloVKpwDAMFvzNtm2sr6+j1+sprxTEIHk8RL5iGTkFXieyPMq8TubRRmqPZVkYj8eaU9DQ0MgfPAfgeR4Mw8DNzU0o6JphGCzzmoxHiAJlals2vkClDnEIfP9fvHiB0WjEVgqkE/5NfVZtpPbQZDotp6AnBQ0NDSkoF8Pjx4+lDm6zwiwzneWBYrE4oZNlMLjkpTdtPtJQgjYfLSdmaT4ikBmJAsrRI4NIVdu2sba2hn6/vzCieZrQHGnBk8j0v+/7E+Yj0sk8INsSy0ObjzQ0NHJDs9lkiXeePXsmjYBKxHEeRPPOzk6i85yY+YyPJCqrkyfRW6vVQjppNpsTUUpJJ/MimqOitJKOAXWiWUdJ1VCCjpK6nMgSJTULKOKpbdvSCKgUWZXyOyeB6huSyKGe54Uitcrq8GVi/ajzkuSo1vE8L5VO8r6+Sh1qA/3/LRB8b6rdJ3qloKGhkQhaAYxGI3Q6HTSbTZaTmEjVNCuFOKL56uoqZHaR1eHL+v0+rq6uYuuoyFGtQ21X0cksrq9SBwDK5XJiHRn0pKChoZEIcsKybRvNZhOtVgubm5usrFgsYjQa4auvvkKpVILneTg+PgYAHB8fY3t7G/v7+9je3mblURiNRqmI2yAIYu3peWM4HGJ/fx9fffUVK7MsC0dHR6GJYF5hs6PAb4dNA000ayhBE83LiXkQzcDtg53ehlut1kQZABwcHIQezkQ6i/4Ovu/j8vLyTns0i8SujOiNytUg8zo2DAMbGxsYDocTK4w8oIlmDQ2NXEHbU2lCEMtarVYo/o9hGMy8Qt7O5XIZtm3DsiwMh8OFREnNy6OZJ3ajiF4+/Wec17Ft2yzaqRiR1XEcNBoNZpbK4nVN0B7NGrlCrxSWE/NaKaiAvJQJnufh/Px8wnuZ39a6bN7Kqh7N08imXUsynYjniDrM2sY0K4WVxBoaGhoaCpARstVqlZmJ6Hu+3jzJ1zxJ3Glky0h0mW4A4OLiAvv7+6mI9zRtlEGbjzQ0NHJBu92G53lwHIdlcOv1eggCeSYwGdJmOlsWOI4jTU8KqGdHs22b9d0wPmRwe/nyZS4e07wpKQ56UtDQ0MgFrVYL5+fnuL6+ljq4kYMXb0tPynQWZy+fZVazqDqysjjnOeIQer2e1MGN10m9Xsfu7i47Z29vj3Ex07YR0JyCRs7QnMJyYpk4BSC8I6nT6YS2soqRRIH87PViZNWscrLY6y3LwurqKq6vr6V1SqUSNjc3E3Vi2zZs28b19XVoh1KWvoplaTgFPSloKEFPCsuJZZsU+O2n9Xodr169Qr/flz7c8kShUFi4X0AUeII5CAK8efMGg8Egs04KhQLevXuX6rxv37fjU4Wgedp8pKGhkRuazSbbs//q1atMkUQp5pEqDMNI5CoWiZWVFfi+jyAI0O/3MRqNpoquOuu+6klBQ0MjN7RaLRweHrKHYLfbRbFYhO/7SkQzAKyvr6NSqShfc2NjY25hvbNgfX0dp6enaLfbbMKU6YQnmmUgwrpYLGaaTFSJZm0+0lDCZ88/w/n1Oaql6qKbosHhr/+p71EdAGb100U3heF6MMBwOMTKygrevXuHYrGIkuPgejBgZhN67Mi8fldWVkLJYmR1+DLDMGBZFt69exdZR0WOap205/3cz/0cKuUy6z9wS06LOqEdR3H9ME0zsY6srArg6ud+DpWf/QxJ0H4KGkrwHG/RTdCQ4PLjFayYgLvohnAYDoeMCPVcN1QuPrhkYSDEB56sDl8WBMHEObLzkuSo1kl7HrWN+m9ZFkrvVwS8ToIgSLzWeDzO1MZzAD8FoLT+kkRO1dDQ0MgMCiP9/PlzaXmj0Qg8zwtc12X/O44TOI4zUbZsddKex+tBphdeJ7xuZtFGcTyioM1HGhoaGhoMmmjW0NDQ0GDQk4KGhoaGBoOeFDQ0NDQ0GPSkoKGhoaHBoCcFDQ0NDQ0GPSloaGhoaDDoSUFDQ0NDg0FPChoaGhoaDP8/ZvoK402GS14AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "output = \"./negf_output\" \n", + "if os.path.isdir(output):\n", + " shutil.rmtree(output, ignore_errors=True)\n", + "os.makedirs(output, exist_ok=True)\n", + "\n", + "negf = NEGF(\n", + " model=model,\n", + " structure=structure,\n", + " results_path=output,\n", + " use_saved_se=False, # whether to use the saved self-energy \n", + " se_info_display=False,\n", + " **negf_json['task_options']\n", + ")\n", + " \n", + "negf.compute()" + ] + }, + { + "cell_type": "markdown", + "id": "e22ee1b1", + "metadata": {}, + "source": [ + "Read the results through the dict `negf_out`:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "4aef7816", + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import matplotlib.pyplot as plt\n", + "results_path = os.path.join(output, 'negf.out.pth')\n", + "if os.path.exists(results_path) is False:\n", + " raise FileNotFoundError(f\"Results file {results_path} not found. Please check if the NEGF calculation was successful.\")\n", + "negf_out = torch.load(results_path,weights_only=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "8cb138b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['k', 'wk', 'uni_grid', 'DOS', 'T_k', 'LDOS', 'T_avg'])" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "negf_out.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "b5fd4d8f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(negf_out['uni_grid'], negf_out['T_avg'])\n", + "plt.xlabel('Energy (eV)')\n", + "plt.title('Gamma-Point Transmission')\n", + "plt.grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "7c006fad", + "metadata": {}, + "source": [ + "Furthermore, we increase the $k$-point mesh for transmission." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "f1f6ee6b", + "metadata": {}, + "outputs": [], + "source": [ + "# Increase k-point sampling for better accuracy\n", + "negf_json['task_options'][\"stru_options\"]['kmesh'] = [1,20,1]" + ] + }, + { + "cell_type": "markdown", + "id": "d0bb746b", + "metadata": {}, + "source": [ + "For $k$-point mesh [1,20,1], the computation from scratch takes ~23 mins in a 8-core CPU.\n", + "However, if directly loading the saved self-energies, it takes ~6 mins. \n", + "\n", + "We have prepared the self-energies in `negf_out_k20/self_energy` and you can just run the cell with `use_saved_se=True`." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "e058e426", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "DPNEGF INFO ------ k-point for NEGF -----\n", + "DPNEGF INFO Gamma Center: False\n", + "DPNEGF INFO Time Reversal: True\n", + "DPNEGF INFO k-points Num: 10\n", + "DPNEGF INFO --------------------------------\n", + "DPNEGF INFO The AtomicData_options is:\n", + " {\n", + " \"r_max\": {\n", + " \"C-C\": 4.99\n", + " },\n", + " \"er_max\": null,\n", + " \"oer_max\": 6.3\n", + " }\n", + "DPNEGF INFO The structure is sorted lexicographically in this version!\n", + "DPNEGF INFO Lead principal layers translational equivalence error (on average): 1.732051e-10 (threshold: 1.000000e-05)\n", + "DPNEGF INFO Lead principal layers translational equivalence error (on average): 1.732061e-10 (threshold: 1.000000e-05)\n", + "DPNEGF INFO The coupling width of lead_L is 72.\n", + "DPNEGF WARNING WARNING, the lead's hamiltonian attained from diffferent methods have slight differences RMSE = 0.0000006.\n", + "DPNEGF INFO The coupling width of lead_R is 72.\n", + "DPNEGF WARNING WARNING, the lead's hamiltonian attained from diffferent methods have slight differences RMSE = 0.0000019.\n", + "DPNEGF INFO The Hamiltonian is block tridiagonalized into 3 subblocks.\n", + "DPNEGF INFO the number of elements in subblocks: 61128\n", + "DPNEGF INFO occupation of subblocks: 73.69791666666666 %\n", + "DPNEGF INFO --------------------------------------------------------------------------------\n", + "DPNEGF INFO The Hamiltonian has been initialized by model.\n", + "DPNEGF INFO ================================================================================\n", + "DPNEGF INFO -------------Fermi level calculation-------------\n", + "DPNEGF WARNING No doping detected in lead_L, fixed_charge = 0\n", + "DPNEGF WARNING No doping detected in lead_R, fixed_charge = 0\n", + "DPNEGF INFO Number of electrons in lead_L: {'C': 4}\n", + "DPNEGF INFO Number of electrons in lead_R: {'C': 4}\n", + "DPNEGF INFO -----Calculating Fermi level for lead_L-----\n", + "DPNEGF INFO KPOINTS kmesh sampling: 535 kpoints\n", + "DPNEGF INFO Getting eigenvalues from the model.\n", + "DPNEGF INFO Calculating Fermi energy in the case of spin-degeneracy.\n", + "DPNEGF WARNING Fermi level bisection did not converge under tolerance 1e-10 after 57 iterations.\n", + "DPNEGF INFO q_cal: 128.0000000009015, total_electrons: 128.0, diff q: 9.015082014229847e-10\n", + "DPNEGF INFO Estimated E_fermi: -3.5829886198043823 based on the valence electrons setting nel_atom : {'C': 4} .\n", + "DPNEGF INFO -----Calculating Fermi level for lead_R-----\n", + "DPNEGF INFO KPOINTS kmesh sampling: 535 kpoints\n", + "DPNEGF INFO Getting eigenvalues from the model.\n", + "DPNEGF INFO Calculating Fermi energy in the case of spin-degeneracy.\n", + "DPNEGF WARNING Fermi level bisection did not converge under tolerance 1e-10 after 57 iterations.\n", + "DPNEGF INFO q_cal: 128.00000000090498, total_electrons: 128.0, diff q: 9.04975649973494e-10\n", + "DPNEGF INFO Estimated E_fermi: -3.582987666130066 based on the valence electrons setting nel_atom : {'C': 4} .\n", + "DPNEGF INFO -------------------------------------------------\n", + "DPNEGF INFO Zero bias case detected.\n", + "DPNEGF INFO Fermi level for lead_L: -3.5829886198043823\n", + "DPNEGF INFO Fermi level for lead_R: -3.582987666130066\n", + "DPNEGF INFO Electrochemical potential for lead_L: -3.5829886198043823\n", + "DPNEGF INFO Electrochemical potential for lead_R: -3.582987666130066\n", + "DPNEGF INFO Reference energy E_ref: -3.5829886198043823\n", + "DPNEGF INFO =================================================\n", + "\n", + "DPNEGF INFO ------Self-energy calculation------\n", + "DPNEGF INFO Using saved self-energy from ./negf_output_k20/self_energy\n", + "DPNEGF INFO Ensure the saved self-energy is consistent with the current calculation setting!\n", + "DPNEGF INFO -----------------------------------\n", + "\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.0250,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.0750,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.1250,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.1750,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.2250,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.2750,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.3250,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.3750,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.4250,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n", + "DPNEGF INFO Properties computation at k = [-0.0000,0.4750,-0.0000]\n", + "DPNEGF INFO computing green's function at e = -10.000\n", + "DPNEGF INFO computing green's function at e = -7.995\n", + "DPNEGF INFO computing green's function at e = -5.990\n", + "DPNEGF INFO computing green's function at e = -3.985\n", + "DPNEGF INFO computing green's function at e = -1.980\n", + "DPNEGF INFO computing green's function at e = 0.025\n", + "DPNEGF INFO computing green's function at e = 2.030\n", + "DPNEGF INFO computing green's function at e = 4.035\n", + "DPNEGF INFO computing green's function at e = 6.040\n", + "DPNEGF INFO computing green's function at e = 8.045\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "output = \"./negf_output_k20\"\n", + "\n", + "negf = NEGF(\n", + " model=model,\n", + " structure=structure,\n", + " results_path=output, \n", + " use_saved_se=True, # use the saved self-energy to speed up calculation\n", + " **negf_json['task_options']\n", + ")\n", + " \n", + "negf.compute()" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "f98b0fe4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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22PJZ599BrfbjaFDh/a4bcmSJZg4cSIeeughuN1uGVoXHo1Gg5kzZ2LatGlYsWJFl9uCfU+NBX29f8b6OQzmtTbY51IftUcegEmTJsHlcvW4ft26dSgoKJChRdHTX18FQcB///tfbNu2LeD977jjDjz66KMAgAceeABPPPEEli5dGtU2h6qvPq5YsQKFhYVoaWnB/PnzMWbMGCmCjhX9nUOHw4GFCxdi6dKlAb8dxcI5jEeNjY245ZZb8MILL/S47amnnkJ+fj4cDgcWLVqEv/71r7jrrrtkaOXAbd26FYWFhTh16hTmzJmDCRMmoKysTO5mRVRrays++eQTvP766z1uU8M5VCJFBRNffvllSMdnZWWhsbERgiBAo9Gguro6YNCRlpYmfcvt7ZjB1l9ft27diuHDh6OoqCjg7Xl5edLP3/3udxX5YgjmfKalpeH666/Hzp07ewQTSjxv/vrqnyAIuOWWW1BeXt5l0pS/WDiH/goKCrp8s6mursb06dP7vF1p56w/DocDV111FR588EGcd955PW4fMmQIACAxMRG33HJLwEmaSid+ox0yZAjKy8vx+eefS8FEsO+pSrdq1SpccsklSExM7HGbGs5hMK+1wT6XMT3ModFocM455+C9994DAKxYsQLf+ta3ehx3xRVX4NVXXwUA/POf/wx4jNL0N8ThPwa/atUqjBs3bjCaFREulwv19fUAgI6ODqxduzZg+2PxvIkeeughmEwmPPLII70eE2vncPr06di3bx+qq6thtVqxdu1aXHrppdLtBQUF0Ol02LNnD9xuN15//fWYOmeCIGDx4sW46KKLpLk63YnnzOPxYPXq1Yo/Z921tbXBYrEAAKxWKzZs2NClD8G+pypdX++fsX4OgeBea4N+LqM2tTPCFi1aJOTn5wsGg0EoLCwUVq5cKQiCIBw8eFCYMmWKMGrUKOH2228X3G63IAiC8OijjwqrVq0SBEEQamtrhQsvvFAoLi4WrrzySsFms8nWj2C43W6hsLBQOHnyZJfr/ft00003CePHjxcmTJggLFiwQGhoaJCjqQNitVqFKVOmCBMmTBDGjh0r/PSnPxU8Ho8gCLF93kTHjx8XAAhjx44VJk6cKEycOFF4//33BUGI/XO4atUqobS0VCguLhaef/55QRAEYd68eUJ1dbUgCIKwbds2YezYscKoUaOExx57TMaWhm7Lli2CRqORztnEiROFPXv2CLfddpuwc+dOQRAEYfbs2cKECROEcePGCbfddptgt9tlbnVoqqqqhLKyMqGsrEwYN26csGzZMkEQhC597O09NVY0NzcLubm5gsPhkK6L9XN48cUXC9nZ2UJSUpJQWFgofPLJJ72+1uQ6lyz0RURERGGJ6WEOIiIikh+DCSIiIgoLgwkiIiIKC4MJIiIiCguDCSIiIgoLgwkiIiIKC4MJIhXS6/VdSjG/8sorcjcJgLeU8smTJ3u9ffHixT3a+swzz2DJkiVYv349fv7zn0e7iUQ0AAwmiFQoPT0dX375pfTvlltuCfsxwy2I9OWXXyIpKanPLX0XLlyIlStXdrnu3//+NxYuXIi5c+fi/fffR3t7e1jtIKLIYzBBFEeys7OxZMkSTJgwARdffDHa2toAAFVVVbj00ksxdepUXHTRRThy5AgAb+nj++67D1OnTsWrr76KVatWYfTo0Zg2bRpuu+02LFmyBJWVlV3qWHz44YcB65G89tpruPLKK6XLH3zwAc4991xMnjwZN910Ezo6OjBnzhx8/vnnaGlpAQAcOXIEDQ0NmDZtGgDgwgsvxNq1a6P19BDRADGYIFKh5ubmLsMcGzduBOAtS3zZZZdh7969KCwsxJtvvgkAuPPOO/H8889j165deOSRR/CTn/xEeiyDwYBdu3Zh4cKFuOeee7BhwwZs27YNVVVVAICSkhIYDAYcPHgQAPDKK69g0aJFPdq0fft2qRR7fX09li5dig0bNuCLL77AqFGj8MILL8BgMODyyy/H22+/DcBbY+H666+XHmPKlCn45JNPIv+EEVFYFFU1lIgiQxzm6M5sNmPOnDkAgLPOOgtHjhyB1WrFli1bcNVVVwHwFrzyL5l+3XXXAQAOHDiAM844Q6pku2DBAhw9ehRA51yHhx56CFu3bsXy5ct7/O7Tp08jJycHgDew2LNnD84991wA3mqdYtXYhQsXYtmyZVi0aBFWrlyJF198UXqMnJycLgXSiEgZGEwQxRGj0Sj9rNPp4Ha74fF4kJeX12tJdZPJBMAbZPTmuuuuw9lnn43Ro0dj/vz50Ot7vrUkJibCbrcD8FZsvPzyy/HSSy/1OG727Nm49dZb8fnnn8NqtWLSpEnSbXa7HUlJScF0lYgGEYc5iOJcamoq8vLy8M477wDwTrTct29fj+POOOMM7N+/H9XV1XC73dIQCeDNeEyfPh0PPvhgwCEO8f6VlZUAgHPPPRcbN26UMhutra04fPgwAG+Q861vfQu33nprlyEOAKisrMSZZ54ZfqeJKKIYTBCpUPc5E88991yfx7/22mv4wx/+gIkTJ2LChAn48MMPexyTlJSEZcuWYfbs2TjnnHNQVFSE1NRU6fYbbrgB2dnZXTIJ/i677DJ89NFHALzDFS+88AIWLFiAsrIyXHjhhVJgAXiHOvbs2YOFCxd2eYzNmzdj3rx5wT4NRDRIWIKciIJmtVphNpvhdrtxzTXX4Pbbb8cVV1wBAHj88ceRkZGBe++9t9f7zps3D5s3b4ZGown5d9fX1+Pb3/421q1bF1YfiCjyGEwQUdCWLl2KFStWwOFwYM6cOfj9738PjUaDefPmob6+Hhs3boTZbO71/mvWrMGUKVOQn58f8u/+4osvoNFoes18EJF8GEwQERFRWDhngoiIiMLCYIKIiIjCwmCCiIiIwsJggoiIiMLCYIKIiIjCwmCCiIiIwsJggoiIiMLCYIKIiIjCwmCCiIiIwvL/AbyrR1VlPtGJAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "output = \"./negf_output_k20\"\n", + "results_path = os.path.join(output, 'negf.out.pth')\n", + "if os.path.exists(results_path) is False:\n", + " raise FileNotFoundError(f\"Results file {results_path} not found. Please check if the NEGF calculation was successful.\")\n", + "negf_out = torch.load(results_path,weights_only=False)\n", + "\n", + "plt.plot(negf_out['uni_grid'], negf_out['T_avg'])\n", + "plt.xlabel('Energy (eV)')\n", + "plt.title('Total Transmission kmesh=[1,20,1]')\n", + "plt.grid()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "2099a5b5", + "metadata": {}, + "source": [ + "If we further increase the $k$-point mesh density, we can get a smoother transmission curve for graphene. Considering the time, we directly plot the total transmission corresponding to $k$-point mesh [1,100,1], and compare it with DFT-NEGF (TranSIESTA + TBtrans). " + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "0d4308ff", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "output = 'negf_output_k100'\n", + "results_path = os.path.join(output, 'negf.out.pth')\n", + "if os.path.exists(results_path) is False:\n", + " raise FileNotFoundError(f\"Results file {results_path} not found. Please check if the NEGF calculation was successful.\")\n", + "negf_out = torch.load(results_path,weights_only=False)\n", + "Erange_dpnegf = np.linspace(-15,15,int((15-(-15))/0.05))" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "bc38754a", + "metadata": {}, + "outputs": [], + "source": [ + "tbt_trans_E = np.load(os.path.join(output, 'trans_tbt_E.npy'))\n", + "tbt_trans = np.load(os.path.join(output, 'trans_tbt_Tavg.npy'))\n", + "Ef_TS = -24.878582000732422" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "43609801", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6MH27dsBePrppznnnHOYMWMGubm5DBw4kK1bt57y+D/t3r2b3bt307p169PW99xzz/HBBx+we/durrrqKpo3b37Kcx966CGeffZZ5syZc9Jr/fv3dw9Wveeee2jRogVNmzY97WO5P/30E+np6QDcdNNN3HTTTaeNtSYkGRFCCCFq6Z+9KIsWLWL+/Pk89dRTgKu34ciRI6c8DjBz5kyWLFmCyWTi3XffJS4u7rT1Hb9NU1ZWxplnnsny5csZOHBgleeeffbZPPzww1UuUvfv2zQrVqw44fXnnnuOL774ApvN5r7el7dpJBkRQggRdEKNerY8MfqUrzudToqLiomMiqzx46qhRs8fS83IyKB9+/buOr/77juaNWt2UixVHYfKMSM1FRYWxtChQ1mxYgVGo5Ebb7wRgNdff/2E8x544AGee+65astr0aIF+/bto7S0lPDwcB588EEefPBBEhISahxbbciYESGEENqyVYCzZtOQK4pCmMlw2n+hJn2151T1z9NHVLOysrj33nu57bbbABg1ahSvvfaa+/XjA1FPdbwuHA4Hq1atomXLlvTt25eMjAwyMjIYNGjQCeeNHz+eNWvWcODAgdOWFx4ezpVXXsndd9/tnmq/vLy8znF6SpIRIYQQ2rGVw8vt4d0hWkfikYKCAtLT0+nYsSPnn38+N910E9dddx0AjzzyCIWFhXTt2pWOHTu6ezxOdbw2nnvuOdLT0+ncuTPt2rXjwgsvPO35er2eu+++m8OHD59wvH///u7HdO+//3532aGhobRr146ePXsyevToOsVaE3KbRgghhHYOZkD5Udc/VYUAn9DMbref8rXw8HA++OADj49PmjTptHUdnxfkuKlTpzJ16tRqYxw6dChDhw5170+ePJnJkyefstzjj/aazWamTZvGtGnTqi3T26RnRAghhHZMYZXbtjLt4hCakmRECCGEdhLaVm5birWLQ2hKkhEhhBCaqcBEoerqHSksyNc4GqEVSUaEEEJoxmJzUowrGTmUna1xNEIrkowIIYTQjL34EGlKLgCJKx7XOBqhFUlGhBBCaEYtqJz/Ij5vrYaRCC35NRn557LFw4YN82fVQgghApDDUbPJzrRmMBjo3r07HTt2pGfPnrz//vvu12bMmEFSUpJ7/o777ruPESNGkJ6eTtOmTU94raCg4ITr9Ho9O3bscB/758ynBoPBfV16ejozZ84EoLCwkGuvvZaWLVvSs2dPBgwYwA8//HDKWAKZ3+cZ+ed8+EIIIRo2u6Ny3o4sfRpNNIzFEzExMaxbtw6Affv2cf7556OqKjfccANw6undZ8yYwaZNm045iVhKSgrPP/8806dPr7LOqmZtveaaa+jatSu7du1CURR27drF0qVL3a/Xdqp5LQTkpGerV68+6ZjT6XRPUettx8v1Vfn1ibSV56StPCPt5Ln62FZWi9W9HekowGqxoJxiLRmbzYaqqjidTpxO57ECSqs8V1VVsFegqpHVnguAogNjqEcxHy8vLS2NF154gXvuuYfrr78ep9Ppjq+qa0732oUXXsjChQvZt28faWlpJ9Tz722Av//+m/Xr1zNr1ixUVUVVVVq0aMF1113nbp9T1fdvxxf78/T8Uzlep81mQ6/3fH0f8HMyoigKQ4YMQafTceedd3LFFVd4fG12djYLFizwYXSwePFin5Zfn0hbeU7ayjPSTp6rT23lzNlGi2Pb251p7J47nzBz1X+aDAYDjRo1oqSkBKvVlcTETDt58bnjwpsPo/j8Ge796Dfao9irXm/FntqPkvFfVhuvqqoUFRW591u3bs327dspKiqioqKCmTNnsmjRIgAeeughxo4dC0BFRQVWq/WEa4+rqKjA6XQyefJknn32WZ599tkT6ikoKKBbt27u85955hmKi4vp0KEDJSUlVcZ5ulhOpbi4bvO8WK1WysvLWbZs2Wlnqq2KX5OR5cuXk5qayqFDhxgxYgRdunSha9euJ53Xu3fvk44lJSVV25C1ZbPZWLx4MSNHjsRoNPqkjvpC2spz0laekXbyXH1sq92rFdgPO5ypXGp9lC969KZns9gqz62oqCArK4uIiAhCQkI8Kj8yMrJy4bvTTDWvN+iJioqqtjxFUU4473hPQlRUFCEhIVx99dW88MILJ10XEhKCyWSqso7jr91666107tyZxx9//IR6YmJiWL9+/QnXzJs3D4PB4D7njjvu4JdffiElJYWFCxeeNpZ/U1WV4uLiE9uqFioqKggNDWXw4MEn/P+p6tbTv/k1GUlNTQWgcePGjB07lrVr11aZjFRFp9P5/JfPaDTWm19wX5O28py0lWeknTxXn9pKwXWLwIGOKErZn19Cv9ZJVZ7rcDhQFAWdTofu+K2c/ztY5blOp5PSklKijp0PwH07Tx2Hojvl7aF/0/3jvA0bNtC+fXt3TMo/6/vXNcdf+/bbb3n8cddjzF9//bX7tbCwMG644QZef/31k+r5d5mdOnVi06ZNKIqCoii8/vrrZGZmcvHFF1cby78dT6g8Pf9UjtdZm/en356mKS0tdXcBlZSUsHTpUjp16uSv6oUQQgSggpgujLc8yjv2caw238wZv3p++x4AU/ip/xlCPD/Xw/Ei/5SVlcW9997LbbfdVqPrLrjgAjIyMsjIyKBVq1YnvHbLLbfwySefYLFYTltGmzZt6Ny5M0899ZR7zEd5edW3oIKB33pGjhw5wgUXXAC4stvJkydXeTtGCCFEw2ExRrJabc9q082YFTuppVu0Dum0CgoKSE9Px2q1Ehoays0338x1113ntfKjoqK4/PLLeeaZZ06q87iJEydy11138eGHH3LXXXfRsmVLEhMTiYiI8GhV30Dkt2SkZcuWJ93zEkII0bDZHa5v9c+bpvCi7SkAsvOOkhRf9bgRrZ1uYOakSZO88trTTz/N008/XW2dsbGxzJgxo8b1BSKZgVUIIYRm9IWZTNL/QONQGyVKOAC5v/1P46iEv0kyIoQQQjPh+VuZapzJ2PL5bIoYAIAzf7fGUQl/k2RECCGEZpzOY7cgFB1lka4ZR+JkjZoGR5IRIYQQmjm+No2q6KlI7s4TtqvYr0uB4sOnvOb40yMisNTl/0tATgcvhBCiYVAdlT0jaouhjFzzGn2Kt8Dsa+DahSecazQaURSFnJwcEhMTTztBl9PpxGq1UlFRUae5MxoCb7SVqqrk5OS45xmpKUlGhBBCaMbhPNYzotPTOCaEHvpjj/buW3HSuXq9nrS0NPbv309mZuZpy1VVlfLyckJDQ+s0q2hD4K22UhSFtLS0Gq9LA5KMCCGE0JDz2G0aFB0p0dVPPBYREUGbNm2qXSzQZrOxbNkyBg8eXG9mq/UVb7WV0WisVSICkowIIYTQkOqsTEaSIs3sUprQSs1yveawo+hP/jOl1+ur/aOn1+ux2+2EhIRIMlKNQGgruZEmhBBCM3ti+jHJej9Lkq9Bp1Noeu9v2FQ9FtXI4d0btQ5P+IkkI0IIITRTaEjiF2c6hyM6AmAMj+WquE9Jt7zLhtIYbYMTfiPJiBBCCM3YHK4VY426yoGTLdMa8YPpQQZ8PxwsxVqFJvxIkhEhhBCaiSnZwSX6n2lVVrl22ZBGNprpsomw5cFhuVXTEEgyIoQQQjPNjv7Jf43v0yPvO/ex3h1bu7cLd6/RIizhZ5KMCCGE0IzicD2iq+oqn5qJi41js6ETAMZVb2sSl/AvSUaEEEJo5/jaNLoTHynd3egsABSrjBlpCCQZEUIIoR13z8iJyYil43gAQh3FsOA+v4cl/EuSESGEEJpRVFfPyL8nN2vfLKVyZ9V7/gxJaECSESGEEJpRHFYAVL3phONtkiO4WHmp8oCs1FuvSTIihBBCM8rxMSP6E2/TmA167jxvgHv/6Naf/RmW8DNJRoQQQmjm14gx3GS9kwMpZ5302sD0Du7tvKVv+DMs4WeSjAghhNDMHkNLfnD2oTSmXZWvr+1wPwCtc5dA5nJ/hib8SJIR0TDl7IA3+sCGWVpHIkSD5p4OXq9U+XqzroPd2/Z5d/ojJKEBSUZEw7R1HuRuhy1ztY5EiAatdflGxulWEF2eVeXr8S268Zvx2NiRogN+jEz4kyQjomE6/qEWnqBtHEI0cGeVfsvrpjdIzv696hNCoshoOgmAMl2E/wITfiXJiGiY9h9b70JnOP15Qgif0jtdk54pBvMpz0lLTQUgypoNmadIWkRQk2RENExl+a7/7v1D2ziEaOB0xyc9MxhPeU6LpmmVOz8/DSU5vg5L+JkkI6LBUVUViva7drI3axuMEA3c8WREpz91MtKuSWrlzt7fccy5xddhCT+TZEQ0OFk5BVqHIIQ4Rq86ANCdpmck1Gzg/sR3Kq/ZucjncQn/kmRENDh/760ckW8xx2sYiRBC7+4ZMZ32vK4tGrm3M3SdfBqT8D9JRkSDsynHxnv2swFQ7RaNoxGiYTNwLBkxnrpnBGB0ny7u7XTnZtSdS3wal/AvSUZEg5NxxMYM+2gA9A5JRoTQ0pvKpdxjvQlH4ul7OxITEqi4L4uFzj4AKJ9c6I/whJ9IMiIanM0Hi6jA1SVsxAZOh8YRCdFw/epI52vnYJTotGrPDQmP4o+oMZUHZCXfekOSEdGgZBdXcEX5J1xvWFB50F6hXUBCNHA2p2s6eIOu6ung/61ljxGVO4/H+CAioQWZ8Uk0KFuzcrjD8C0Az9suI0Npz2d6E559DAohvK2/cx2Kzo7J3hsIq/b8i/p3gGX/OOB0gE7vs/iEf0jPiGhQirb+7N5+13EOf9jbUmaXVEQILaiqyjOG95hueglT8T6ProkMMbK/76Pu/cM/vCi3WusBSUZEg1J+eLvrv8YYDHpXx+DRMquWIQnRYNmdKgZciYTBcPpHe/8p7ay72RnaDYBGq57BuWWeT+IT/iPJiGhQWuX9CkB+qwu4NOQPrtEvpDjvkMZRCdEw2RxOTMce7dUbPU9GUBQaN2/r3t1yqMjboQk/k2RENBhFFTa6OLYAENuoObc6P+cx48dYcvZoHJkQDZPN8Y+eEeOpF8qrSnibwe7tFTkhXo1L+J8kI6LB2JaVg0lxffCFdR+PXe/6ACsrLdEyLCEaLLvD6Z70zGg6/aRnJ2l3tnvzhh03yKKXQU6SEdFgbD+QxxxHfzaG9oaoFKz6cABsJbkaRyZEw2R3ON1fEJRqpoM/SXg8Rfdksc3ZhMNqLM7PLpV5R4KYJCOiwTBtn0eBGsG2VteBonA0tCkAxoLdGkcmRMNks9sqd3Q1n2kiKjKK30LPpJFyFJ2lELbM8V5wwq8kGRENRvfsb5hkWERno2uhvJKI5gCEF0syIoQWbA540HY9T6rXgSmiVmWUNe7r3i5Y9F9vhSb8TJIR0SBUFObQ1rETgKSmrlH4tihXz0hY+WHN4hKiIbOrCl84zuQb/VlQg0d7/ymqeQ/39oe5Hdg4/RaZdyQISTIiGoSsPdvc23GdRwFgCo0GQG8v0yQmIRo6m8M1xsOgr/2foqGdm9K24iM2OFtwl/FrumR9SunKj7wVovATSUZEg7Dv0BEA9huaoRhdT9HYUnpyhfUh3gifomVoQjRYDmsZg3Xr6cPmWpfRIiGcDU+Ow2H4x1Tyf82oe3DCryQZEQ2Cc99KANSQGPexiNhkfnd2IcPWRKOohGjY1NJcZpqe52Xbk3UqJ8SoJ3LsVPd+eO56lH3yqG8wkWRE1HsVNgeDDs0AQB/VyH08JsxEf90mRpR+p1FkQjRsDrtrKQYHdV/ornWvUXzRdKp7X//JeXUuU/iPJCOi3pu9JotbrVNYoetB/Ig73MdjjXY+Mz3D/6kf4Ny/TsMIhWiYnLZjyYjinQXkS9KGsMzRBQBFdaJ3WLxSrvA9SUZEvbdhfyFLnD1Zeca7mFsOcB+PDq18+5cXHNEiNCEatOM9I3a8k4x0aNmU/9ovde/HF27wSrnC9yQZEfVeQXYWZqy0TAw/4bg5LNq9XVJe7u+whGjw1OPJiFLDqeBPoX+reCZfcoF7v+/eN8EuvSPBQJIRUe+Nzf2Qhwyf0a10xUmvrdSlA1BRfNTPUQkhnDZXouCt2zSKonBe9zS+bf8SADqclDzXns0/TvdK+cJ3JBkR9VrZjl+4QP2JSYZFJKs5J73e15kBQPTWT/0cmRDC6fBuz8hxYy66hrNN/wMgVimm6Z+PeLV84X2SjIh6zbL6Y/d2aJdzT3p9ecRoAPZF9jjpNSGEbxWGpPG47SoWRF3i1XJDjHruG9PRvR+pllJmtXu1DuFdkoyIem2vNbJyJyr1pNdXd/w/Jlj/wxdhE/wYlRACoNiczIeOMayMOsvrZQ/o1NK9PcfRn09/3ymr+gYwSUZEvXYkzzUWZGOTK0BRTnq9fWo8jxg+4a4tl0B5gZ+jE6Jhq5wO/uTfzTpTdGxMvRyLIZIBuk1M/rUvZU81gdJc79cl6kySEVFvlVrsPHV0JFdYHyJqwOQqz+mYFkdz5TCJzhxspfl+jlCIhs1QlkNPZTspjv0+KX930lk4JswmUSkCIMxRjPrROFj5nk/qE7Xn92SkrKyMZs2ace+99/q7atHA/LErjyxHLPti+tC0XXqV5zSJDaMY1yO/+w/45gNRCFG1xjm/8bX5cS7OedtndRib9sLZvnK8mJK9BRbeB5YSn9Upas7vycjTTz9Nv379/F2taIB2ZCwjjiKGtk1CqeIWDYBOp5CsuHpETCte8Wd4Qohjc4A4dd59mubfdOe+ShkhJx60SjISSPyajPz9999s27aNMWPG+LNa0UB13/0e04xvcpnhZ4/OTz2y1McRCSFO4LAB4NSZfFtPWBxfdZjGF/ahlcespb6tU9SId2aa8dC9997LCy+8wIoVJ08+9U+rV68+6ZjT6cRms/kkruPl+qr8+iRY2qrC5qCZbRcp+jxyUh44bbw5iQNJyVlOoS6aMEsF6Oq+aBcET1tpTdrJc/WtrVR7BQBOncHrP9O/22rMWefxaZkD9v4CwE8rVjLkrKZerTNYBcL7ym/JyNy5c2nbti1t27atNhmpSnZ2NgsWLPBBZJUWL17s0/Lrk0Bvq31FDm7Bdfvlr115WLJO/d7ZH30tt+YsJ9pZyNpPHyYrfpBXYwn0tgoU0k6eqy9t5cxxrQlVWGrx2ef7P9uqeWwkG7I6UG5XiVz9Kps3vEdm+1tRDD7umQkSWr6v/JaM/Pnnn3zxxRfMnj2bkpISbDYbUVFRPProoyed27t375OOJSUlMXbsWJ/EZrPZWLx4MSNHjsRo9O29y2AXLG216Kcf0O9SsWNg+HkTQDn1Hcm8Egu86trunBpJlzO98z4LlrbSmrST5+pbW6049DOUQ0R0HAO8/Pl+qrZSRw7lh3fu49ziL8EGHP2FThOnebXuYOPr99X06dVPx++3ZOTZZ5/l2WefBWDGjBls2rSpykTkVHQ6nc9/+YxGY734BfeHQG+rs1deCUCpKZFok/m05ybHVP4alOijiPPyzxXobRUopJ08V2/a6th08DpjiM9+npPayhjNwCsfhre/BCB9/ycUbB1LTNezfVJ/MNHyfSXzjIh6rahR32rPURSFWabzAbAc3u7jiIQQx20O68ULtks4mDjQr/XGJTfFOeZF9/7urx4l//FmFOzb5Nc4RCVNkpFJkybx4osvVn+iELVgcziZ7HiArx2DUEc+5dE1jvBkAMw5G8Dp8GV4QohjNhq78abjfI42GuD3unWdL3Rv99DtJE4twPHNLX6PQ7hIz4iod3Zml7DY1o3HdFNIS03z7KJj69bEFW6GMpmJVQh/KLe5Ev8Qo3eeYKuR8Hh4YC/fNLrDfSi0JJO1a/7AUi5zkPibJCOi3lm7bg0xFNO9aQw6nWdrXkT0GE+RGgbArmWf+TI8IcQxkWX76ahkEqUWaRNAaAxjJ/0f2wztAQizF9Jj/lns+vh2beJpwCQZEfVOs4yX+J/pBaZELfP4mnO6NsZhCAUg9a8XfBWaEOIfxhd+yALz/9HikG+nbTidkJAQjg6aesKxjge/1iaYBkySEVGv5BRbiK/YSw/dTto3b+LxdYqi4AxNACDEUeyr8IQQ/6Bzup6m0RtP/8Sbr8U368gGZ4sTjq14dSKb57+hUUQNjyQjol75c3ceqYprifCo5j1qdG1FixGVO6rqzbCEEFXQOV0zfho0TkaapqYx0fBfulR84D7W/+gcOq35D5QXaBdYA+LX6eCF8LWsjcuIUspdO9GpNbo2atSD3PWXk9+dnVlYaiU+QtsPSCHqO/2xnhGjOVTTOEKMer6bMhC73QFvnviapSQfgzECvUH+XPqS9IyIeuWyXQ9W7pjCa3RtZGQUhdHtmW/+D6ULH/NyZEKIf9Orrp4RoymkmjN9Ly02jOaJkfzXdilP2q5wH9/7xrnkPd0OR3mhhtHVf5KMiHpDVVW+d55RpzJuNswjSSmg6ea33SuKCiG8T1VVjOqxnpEQbXtG/il+zENkpF3JAdU1hqytkkWSmktexvcaR1a/STIi6o3cEiuPWK7gAdsNWG/6o1ZlJBvLK3c2fOmlyIQQ/2axO4nA9ftmCovWOJpK1w1swdc39ydcbz/h+MEiq0YRNQySjIh6IzOvFFD4PWoMpkYda1VG9uBn3NvlBdleikwI8W/lVgcfO0byjn0cpvhmWodzkgOxfU7Yz8nO5khRhUbR1H+SjIh6I3vvNm7Uf8cF4RtrXUb3ruls1bcDQP/bC1CS463whBD/UG5zMMNxFi+rV2CIC7xkJOWyV8loeSMAFaqRj7faGf3cd2zde0jjyOonSUZEvRG99XMeMn7O+PJZtS5Dr1PYMe5bAEzOMlgmE6AJ4QvHp4IPNWkwFbwHYhNTSL/6v/w16iusGJhpep4M0/Uc+el1rUOrlyQZEfXGwMMzAYjR1+3e7uA2ie7tisPb6lSWEKJq5RYb7ZR9tDFkg9OpdTinlN5vBF8PW8on9uEADM16kz8/uIuCMhlD4k2SjIh6IbuocuCpvvekOpUVG25yb5cfPVynsoQQVbOUl/Cj+UG+st0K9sAdi6HXKVwztCMX92rqPtZv//+Y/eMv2gVVD0kyIuqFv7e6xok40BF+xuQ6l5cX1hKAQ/aazVUihPCMtby0cseg/Twj1Qn51+eKde8qjSKpnyQZEfWCfY9rUbxSfTQYTNWcXb3iwVNxqAody9ey96d361yeEOJElmPJiBUj6ILgT1FyJ7hzE4f7P84s+xDa5/0EU6NxzJqkdWT1QhC8A4SoXklhPgCloSleKa9p73N4MuIRAJotv98rZQohKtktZQDYlCBadiGmCfHDb0evOBmuXweAfsu3GgdVP0gyIuqFr5xDGW15jo39XvJKeTq9nntSKh8RttlkNlYhvOl4MmLVBVEyAhj1OmKjo044ZrVYwFZ+iiuEJyQZEfXCpnwd29WmNGrewWtlRoyrnABt35Fcr5UrhADbsWTEHmTJCEDPa18lc/DLPK+bTJeKD8h9pj2H/tsH1W7ROrSgJcmICHr5JRacxa7ZUlskeG/AqRLZ2L1dsGWp18oVQoDTejwZCfzBq/8WHZdI8zOvI3XUFL41PUqKkk9j2z6O7N6kdWhBS5IREfT2ZSxhjulRpke8Q2SI0XsFKwqFBtdiWZF/z/FeuUIIcnWJvGM/h40JY7QOpdau6BJBa91B9/6mwuDr5QkUkoyIoFeYmUETXQ591A1eL3td29sBsBdlg6p6vXwhGqoD+jSes1/OuiZXax1KrSmK4t7+y9mGjBzkc6KWJBkRQU93xNU1uid1nNfLTh18DR/aR9PRksHRRc97vXwhGir3dPDGwJwO3iNhcTBlLcvSX+Rm652ctf5W2DpP66iCkiQjIvhVFAAQmtjC60W3To5ksHErALF/PEth5nqv1yFEQ6RUFJCmZBOjlFZ/ciCLb0VK/8t4wPg5nS0ZMOtqODYeRnhOkhER9My2AgAiYxK8XraiKOT1e9C9Hz1jsNfrEKIhSs/7nuXmOxn093Nah1JnrZMiSTFXPv5fuOUnDaMJTpKMiKBWWmGlD5sBiEpq4pM6+oy+4sQD5QU+qUeIhkQ5vh6NMUzbQLykrGvl2JfNm9ZpGElwkmREBLUj2Ufc22FNu/usHlvTQZXbs67xWT1CNBS6Y8mIYgy+R3urMvzcK9kT0w+A/jtfRrUG+e0nP5NkRAS1I0XlfO/ow0pDLwiN9Vk9xvHTK7f3LAW7LB8uRF0oDlcyojOGahyJ98Re8KJ7W3nGO0tTNBSSjIigdjQ3h3ft4/go+cHqT66LyGTWRI2o3M/f7dv6hKjn9MeTEVP9SUZimnXxfqF2CxQfqf68ICfJiAhqjbd/xDzzI4y3+n6xqrL0a93bFcumgUPWqxGitgxO19TpelP9GDNy3OGz3nNvqw573Qv8YAS81BbydtW9rAAmyYgIbiWuaeCN0Y18XtXAoWNZb+gKQMimz+Hnp31epxD1leFYz4jBXH96RgBi0s/DohoAKD643bOL9iyD1R9U/drhY5M5vt4D9Y0+XP/6XMa/swKHs35NrmbQOgAh6sJUkQNAeFyqz+vS6RQsE76Bj1sDYPv7Z4wjpvq8XiHqo1+cXcl1hjIyqbPWoXhVSEgIm3Qt6Kz+zdG9m4hq0qnK87btziR7zn9oc8Y4Gv94IwCbFn/EEV0jVtGB8epi0gZdyT+H9yq52/mAY0/tPOH6T1Hbi9h1MIeUEbeSnH6WD38y35JkRAS1cFseALFJaX6pr0+rRPe28UgGFB2CqManvkAIcRKnU+Vz62BgMKNb1b+5e96MfZA/D9p4NnoQzf75Qv5u8jPms6s8jLRVT9NeyYcf57tf7mzdQGc2MJxFrgM//V+1dUXt+JruQP6cDHIcb5CYfjbog+9Pu9ymEUGrsMxGnFoAQFJKU7/VuzKt8tHedXsO+a1eIeqL41PBA4SZgng6+FMwJLbiKFHsL6ggJzebvw/mkXvkILzWnbhlj9B79T00VvK9WmccRSR+dzWWldM5XFjB8Jd+4e1fgmeciSQjImjtPZJLlFIOQJgfbtMcl9auBwDlqol5CxZgKy/yW91C1Ae5RWV0U3bSwXiEUINS/QVBpnm8a1Bu4m+PYHo9nTbvtSTh7Q61KusHR2+mOcZ7fL550f0UvXc2ltxMnv9hW63q1IIkIyJoleQdAMCCGcyRfqs3deBV7B73NUeJ5DHLC+z88iG/1S1EfZCfe5i55kdZqL8LpR6ucjswJp/fTHdwnnU+0VWsvfORfSRtKmayT0lhljqCBelvk6fE4dQZ3efsDetMhq4j78TezaCLp1Aa2dLj+tuWrqEReZixYp97B2z/wSs/ly8F340lIY4pdITwpO1K2sYbuVTx47crRaFlzxHwnWu8SofMT7AeugVT46oHqgkhTmQ5sBGAIiWKqCAc31CdTtFWInQ5Vb6WrU/mHfPNJOsUmoSYaVLwM0rPB+H8PSec1+zYvznHD3RbB59dCjtOTCxutd6OCRuvmN4+4fhX5mMjXNcB62bA/x2CjbOg7RiITK7jT+h99e9dIBqMXGcE0x1jOSuxEZdqHEveT6/Q+KpTPJonhDhBRaHrkfxsczOiNI7FFyISKgfU50Z2JGHkXdj0oRwigaSm7fjBEImigOJc6lp1PM7DXo/z34Zt36OueB0ldztLzSM4lHQWuoN/VXup7eXOGCvyIPYVuHEZhESzN6+UxEgzxgC4UybJiAhaRRWuCYWiQjV6G09eCu+fCcB8ZSiTtYlCiOBTkAWA3RyjbRy+Et+Ko12uw7F/LXHXfAlRyRiB48PsKx/XjYOwOM/LDYuDHlehtBkJW+ZxZvoEzjRHkvvLBvjl9JcaK1w9uRzNhOeasnbYTG7/4ShD2iRy5wWDTnutP0gyIoKWs+ggXZVdpOjCtQkgtSd/jFvCHbO3cXRTJJ3WrKZ/r97axCJEEAkp2QdAeWRzbQPxodiLXvZd4ZGNoO8N7t2EfpfDvh+g+UDIXA7JneGPN05bRI+fr+ZbUxQ3/n03A17SEWvU0/WMclokGU97na/IAFYRtFoe/pF55kcYfegdzWLo270nZyQ72GC+nv7zR7D7+5c0i0WIYKGrKABAjfbP/ED1Xkg0XD0XBt/n+u/op2HkE4BCRWLXU16WqBTxjXkqVruTIis0ijL7L+Z/kWREBC3FcuyRWj8+SfNvOp3CA13LCVVcq/i2XP2ErOgrRDWSLHsBCIlO0jiSemzAHfDgPkJu/Q3Lzav5edzvVZ72naMfAO1iVAx67VICSUZE0NLZSgBQQrQdApfSbfiJB1a9q00gQgQBp1PlSdsV3G69lcj2w7QOp3479tloTm5LuxbNcKgKE60PnHDKk7arAGgfre0j1jJmRAQtw7FkRKdxMkJ44gm7JZsWENF/ikbBCBHYDheUcCFL2KprQePUZtVfILwiJS6SVa2nMKLpuTD4IVjyBMS35nHDmfz2dzY9lExN45NkRAQtk70YAENYtLaBhMagXjWH/E+vJ96ZS8TBFVSUl6I3mLSNS4gAdHTzEs7Wr+JsVoFOehH9qc9VT9Ln+M6IxwAYA4xon8CCBZkaReUit2lE0DI5ygAwap2MAEqrYZiv/My9//nS6p/7F6IhOlJUAcAhQxPw52SFIqBJMiKCVqjTdZsmJCJG20COiWjZF6fi6my8ZvU4jm5ZqnFEQgQew8E1ADhM9XG6M1FbkoyIoLT/aBm3W29lsaMnEfH+WySvOjrV7t6O+u56DSMRIjCVlbsWt0TrsV4ioEgyIoKOqqp88utm9qqNeDflKUKbB9BEY2dXTnRUqsqYESH+LbV4AwAVSd00jkQEEklGRNBZNPdjLll7JQDD2icF1n3n3tdhiXctFW62l5Jw5DeNAxIisOjtrrFeEaHaTbAlAo8kIyKoFGz8gdEZU2ipO8zloau4qEfgzeBomvgNABFKOQMOvs+uH04/LbMQDYXd4WSPPZ4cNQpz2+HVXyAaDElGRPCwlRPzdeX6vE9d0JlG0SGnuUAbSlQK286d595v/9dUKNinXUBCBIgjxRZutd1Bf/u7RLcbrHU4IoBIMiKCgtOpsvybt044putysUbRVK99jyEn7Dvm3KpRJEIEjkMFrsGrjaJD0OkC6Paq0JwkIyIovLZ4K2+tt7vXUeD2dYE1VqQa+sxlWocghOYOHEtGGkeHahyJCDSSjIiAl7PiY25bMYBmyhHeiPsP2fccgbiWWodVLfvlX5+w7/z2Zig/qlE0Qmiv4uBmMkMu5408eexdnEiSERHQ9q2YReKi2zhKJHGNW/DDnYNIigy8cSJVUVsM4evO77v3des/g2UvahiRENoyHHE91mvGXs2ZoqHxWzJSUFBAr169SE9Pp3Pnzrz//vvVXyQatIxd+2m6aDIAiUohF581EiWIbs0AGA0nLv9kPbhBo0iE0F55SREAOr0siyZOVON3xO+//05mZiYOh8N97Oqrr672usjISJYtW0ZYWBilpaV07tyZCy+8kPj4+JqGIBqA3/7OoWTmNaTrK4+1aN1eu4BqSVX0WG5ajfkd18RsatZqjSMSQjshJVkAFDfqS6TGsYjAUqNkZMKECRw+fJju3buj17v+Snj6TVWv1xMWFgaAxWJBVVVUVa1huKIhsNjsPDZnExeqjSsP3r9Hu4DqSBffgoImw4nJWoLZWU7hjEuJnvhFUA3AFcIbUi07ATBHJ2kciQg0NUpG1q9fz5YtW2pdWUFBAUOGDOHvv//mhRdeICEhocrzVq8++duj0+nEZrPVuu7TOV6ur8qvT3zdVjsP5FL00SUsVTfwnnE8+XcfJjLEcLxyn9TpK/9sq4gzrsWR9Qt6HERn/oB9y3zUtmdpG2CAkN8/zwVzW5WXFpOubgMFDO3P9vnPEMxt5W+B0FaKWoPuiUmTJvHQQw/Rrl27OlV65MgRLrzwQr755huSk5NPer2qZOTWW2/lP//5T53qFQHOYSVy4/ucqa4EYGNoX3a3rz/zc6zOhqcOuG5pOtExN30GMtWCaCgsBQe4ZM9DlKsmfkx/D0Unz080FNOnT2fevHmnPadGPSMZGRl069aNdu3aYTabUVUVRVFYtWpVjQJLTk6mW7du/Pbbb1x88ckTV/XuffLCZ0lJSYwdO7ZG9XjKZrOxePFiRo4cidFo9Ekd9YWv2srucLLn28fpeCwRAWh/86e0D43xWh3+9u+26ldqhWmu13Q4WWtP5dHzZLEw+f3zXDC31arNO3h6x+UkRhi55pxzfF5fMLeVv/m6raZPn17tOTVKRubOnVvrYI4cOUJYWBiRkZEUFhaybNkybr75Zo+v1+l0Pn9DGY1GedN6yNtt9fn0Z7n68JuVBy6fjTEq0Wvla+l4WyXHGPmq8T1cfOglAJ7cNJyP1Q+4avx4jSMMDPL757lgbKsDtijed5zD4OREbvBj7MHYVlrRsq1q1E/WrFkz8vPzmTdvHvPmzePo0aM0a9bMo2v37t3LoEGD6NatG4MGDWLKlCl06dKlVkGL+uXXHTks3Kcnw+mayGzlsM+h7SiNo/KNIRPuZ6ups3v/qs3Xsz1zv4YRCeEfBwtds6+mxgTHPEHCv2qUjLz44otcf/31lJSUUFJSwuTJk3n55Zc9urZPnz5kZGSwfv16NmzYwI033lirgEX9suz3ZXw1Yxp/ODtxmfURzjO+S+d+9TMRAUiMCqHD5P+dcGz3ss80ikYI/ynP3k1XZRetQku1DkUEoBrdppk5cyarV6/GbDYDcPfdd9O7d2/uvvtunwQn6retew/Se9FFOPUdWBUygHl3jiUqxEioSV/9xcEssR30uBrWzgRg0UETZzmdMqBP1Gtj973IQ+bV/J19BXCG1uGIAFPjT7+Kiooqt4WoCdXpJHbmmYQqVobq1/PhZW1Ijgqp/4nIcWP+i7X/XQC8UvEY1jf7axyQEL5ls1oAiDDL+A1xshr1jNx333307NmTESNGoKoqS5cu5bHHHvNVbKKeOpSTi/pmP1LIAaC085V0bNtG46j8zBiKadRUWPEKAOa8reB0gvSOiHrIancSZc8HHYS0H651OCIA1SgZueqqqxg+fLh7HpCpU6fSuHHjaq4SotIfO3OwfjyeIYorETkc1YVGF79ZzVX1l8UYhdnmWq+jLOMrwnpconFEQnhfVn4JbXWugdoxMXEaRyMCkUdfw/bscU3FvWXLFgoKCmjTpg1t2rTh6NGjdZqRVTQsRw7s5q9PH6Y9rvdTeURTGt2+VOOotKV7oHKa+7WrftMwEiF8Z9/BbPe2ktxJw0hEoPKoZ+TZZ5/lvffe49ZbT54NU1EUli5t2H9QRPWycgpo8n53bgNedVzIOWd0pdXgCWAwaR2apowGAxkjPuf7hd+Rvz+CLrNvI/ri12XdGlGv5Bx2LZBnU4wYQ2M1jkYEIo+Skffeew+An3/+2afBiPpr9fLFNDm2fYfhGxj9DhjMmsYUKNIHjmX9upX8J28abAY6jYKO52odlhBe4zy8CQCHLgQZviqqUqPRcs888wzFxcU4HA7Gjx9P27ZtmTNnjo9CE/WBmvs3hV/exIXrr688OPZFSUT+5cyR4yp3Zl2lXSBC+MDvSjrDLS+wpPc7WociAlSNkpHZs2cTGRnJ/PnzCQkJYfny5Tz++OO+ik3UA3kfTyJ66+fu/bK+d0KfydoFFKCatO/F4dDKJ4ps+Xs1jEYI78oq0bFLTUWf1kvrUESAqlEyUl7ums537ty5XHbZZSQlJVGDRX9FA2P79WUSCl3ds386O/Bt66cIG/WIxlEFrui+E9zbn2+SWSpF/ZFd5JqTKjlKekRF1WqUjIwbN45mzZrx119/MWrUKHJyctyzsQrxT6X5hzD+XNlr9ne3+xlz6S2gr9HT5A1K6MApbG82gTLVzNVLz8D6+1tahyREnTmdKhPKPuFuwyz33EJC/FuNkpEXXniBdevWsXbtWoxGI+Hh4XVayVfUTzszfuPvaZVLhOeFNOOqC84nxNhAZletLYOJ1le9TpjimqnStPghOCq3a0Rwyy8u4QbdPG43zCFOX651OCJA1SgZ+eijjzAajej1eu677z7OP/98du/e7avYRDAqOkTrOeeQrttJljORpeetJP7BDTKzqIf0/3qit+IHua0lglvekQOYFTsAxpSuGkcjAlWN/kK8/PLLREZGsnjxYrZs2cJTTz3FHXfc4avYRJAptzoo+nSie39f19s5s3t7DSMKQnoja0Z86d4t2fMXyLgsEcSKcg8CUKhEyfw54pRqlIw4HA4A5s2bxzXXXEOfPn2w2Ww+CUwEF1VVufGTvwg5vMZ9rG96Fw0jCl49+49iXtw1ZDhbEmM9iLrkCa1DEqLW7Ee2A1BikMnOxKnVKBnp3r07AwcOZMGCBYwdO5bi4mJ00v0ugL+/eZKZ+0byg9oPgNyoThia9dM4quCk6HSMvuUlPmcs+WoUxbtXax2SELVWXlIAQEFok9OfKBq0Gj3a8NFHH5GRkUHLli0JCwsjLy+PGTNm+Cg0ESysR7bTduNLAJyr+x0eKyBBumPrxGzQE9WyN0mZb8DB31AL96NEp2kdlhA1VlFWDIDOHKlxJCKQ1WihvG3bthESEsLBgwfZsmULR44cwWCQRzUbssKiEnTvDHDvO6Obyn1hL7lizFD3dv7nN2kXiBB1YCl3zZljCAnXOBIRyGShPFFrTqfKr2/fyrmqa9xQhT6CkJt/1ziq+qN5cgxZEV1pUrKB+MO/wb6V0LSv1mEJUSP/04/nvoozeb9vd9pUf7pooGShPFFr3647wLsFZ3BQb6evbhsVVyzkjJAorcOqV+I7DYOVGwDINqWSpHE8QtTUkaIK7BhIjI3WOhQRwGp0jyU/P5+PP/6YzMxM95M1AK+99prXAxOBK6sEPvvmayZuvZFzTAbGWx9jTZu7eKdlgtah1TthQ+5k1bo/mFHSjyFZTi5tpHVEQnjO7nCSW+KaxC9JpoIXp1GjZOTss89m2LBh9OnTR56i8bHsvHwOr1tAl56DUGKbaR3OCeb9XcZ36hRQwKzY+eqOEZgaddQ6rPopLI6Vfd9iweLtZP/yFxe0UjDFyVMJIjgcPbyH3ebL2eZsQnzIX1qHIwJYjZIRq9XKM88846tYxD/sm3EdvYqXUrEyhpD/BM6U4AcKyrnVMROz3jVO5ECzC0iVRMSnru7fHMPvL3Bz6ZdsnX0BHW6coXVIQnikOGsTiUB7XRYYpWdEnFqNujduuOEGXnvtNf7++2/27dvn/ie8L6HMNc1+iK2Akh+f1jiaSmtX/MR5+hUAlJiTSbniTY0jqv+iQ41079YTgA6HvqUsJ3CSUyFOp6ioCIDthnYaRyICXY3HjEybNo2ZM2eiHHt8U1EUVq1a5ZPgGjKLWvm/JuKP/0LXcdBYw3UdHDYs3z9I93UL+MvZhp66v4mYshxM8rieP/QZdj6sux+AwvmPEHbNTG0DEsIDJSWuOUYcRvmcEKdXo2Tkgw8+YM+ePYSFhfkqHnHMTqUpJmcxLXRH+Ng+gp47d9FRy2TkYAbmtR/QAjis64p19AuYIuTZDn/RRSWTETuK9KOLiDzwq9bhCOGRiOy1AChG+ZshTq9GyUinTp2oqKiQZMQP/s95M4VWGxc1KWV5lgXjimi+anuYRsn+f5xCVVW2rfyBDsf2U0IdKD0n+T2Ohq5owMMwfxER9gKKCnKIiknUOiQhTqvCYgXAZDRqHIkIdDUaM1JeXk779u0577zzuOSSS9z/hPeVWV1Lbl9/4VlYw5I5eLSU6Le7cDhrl99jWbL4OzpsetG9v6PFtTLLqgbOSO/s3t45+zENIxHCM2U21xQQRcl9NI5EBLoa9Yw8/PDDvopD/IPF7sDmcC0bnxITyntX92LlRw8RqlqxfjQS/m8n+PHR6r+3rmfEse2cEdMoy4vzW92iktGgZ2ezy1D2/Mq7FcN5V+uAhKjGO7rLCHfuJCpK5iASp1ejv2idOnViwIABDBkyhOjoaA4cOECfPpLxeluZxcFi0338bp5CeHEmvZvHcVnHUACi7Xns/dFPk8xVFGKfcR5Hcw+z1tmanKHPE9P3Sv/ULaoUesE0hltf4qdDoRRX2LQOR4jT2lkawlTbRHSdxmkdighwNUpGRo0ahcPhYM+ePVx88cUsX76cyy+/3FexNVglFjuNlTxSlTwMetf/ooSLXsKquJ7Tb7byMZzlRT6Po/jbuzBk/sL/6T8h09SWhME3+LxOcXqpMaE0jw+jsXqE9Vu3aR2OEKdksTvIL7WyVW1GUly81uGIAFfjvn6z2czs2bO57bbbeOutt8jMzPRBWA1bmdWBEdeYEQzHJgrS6Sm9+gf3OdnTx/s8jsjtX7u3E3pdhCKz7gaEV3XTWG6+k4FzB2odihCnlJObTw9lBx0MB4kJkwGs4vRq9NdFURSmT5/OjBkzOPfccwGw2aSr2NtKLTbMyrFkRF85a2Fsix7sSh4NwJK8BIp82E1/6PDBE/YHjjjPZ3WJmmnuzKzcsVVoFocQp1O0fxPfmKfyofF597xUQpxKjZKRjz76iPXr1/PII4/QsmVL9uzZw5VXyhgCbysrL6vc0Z/4jaLJNTPI1DXhT0tz3li602cxrF79JzudKa6d2zPQGeSbTaDIHlb5ZJN6NFO7QIQ4jcJC161kuy5E40hEMKhRMtK5c2dee+01JkyYAECLFi148MEHfRJYQ2YpLa7c+ddkQaaQMDLHL+InZw/eW7abefNm47RZvVq/w6nywtYYRluf54sRKyCuhVfLF3XTNP1MrMdm6M1dN1/jaISoWlFxIQBOQ6jGkYhgUKNk5LfffmPEiBG0adOGli1b0qJFC1q2bOmr2Bose0keAOVKGBhMJ70+tEMK57bU8aDhczqueZQ1s5/zav1Lli9HOZpJbKiB8/q092rZou7MBj0/R40j05nMtjy71uEIUSVrUQ4AdlOUxpGIYFCjeUauv/563nnnHXr27Iler/dVTA1ehdVGhrMVYWERtD3FOXdfMIjIt24mTC2HHS9RtH0oUe0G17luZ/Z2Ri09h1Fm+Ln1fwg1ja1zmcL7DvZ7jBu/20L/0ngGaR2MEFXQFe0HwBaRqnEkIhjUqGckLi6OYcOGERUVRXh4uPuf8K6Dxqacb32S91q9fspzkhMTMN/2h3s/6vNxUHykznVXzLrOvX3G8PPrXJ7wjaHtXOsCrc7Mp8QivSMi8ISUuQbBq9FpGkcigkGNkpG+ffsyceJEvv32WxYsWOD+J7zr+GRWEebTd1zp41uwY1DlBGjlM8eD01n7ip1OwnI3ArDb3IGQRqfqlxFaa5EQTrc4OwPVtWxc85vW4QhxksYVuwEwxjXVOBIRDGp0m6awsBCdTse8efPcxxRFYexY6cr3pqNlrmQkNuzk8SL/1nbYVexa/S6tKjYTmrOeoi2LiOp8Vq3qzfhjEenHti1p/WtVhvCfx0O+IN20gO0rV8CAYVqHI4Sbqqp8ZB9JuKMv17aSG4miejVKRj788ENfxSH+of/+D7jN/B2Hj1wBPHn6k3U6Qi7/hIzp4/nQNop1Xx5lVpMKGkXX/HG6aVvCSbFdx/3mb2l9wX9qF7zwG31ye8hfgFKep3UoQpyg2GLnS+sAAO5rIoPgRfVqlIwUFRXx5ptvsmXLFiwWi/v4rFmzvB5YQ2a0HCVVyaNEsVR/MpDatCVLx3zD3DmbwAlbP7qdRje+DOYIj+s8UlTBr7uLUNXh3HTrU8REhFV/kdBUWKezYOvLNLJloTqdMkOuCBhHCl2T8UWFGAg1ycMOono1+vS64ooriIiIYOXKlUycOBFFUWjWrJmvYmuwnDZXEmIye/58/lX9mjH31gH0UHYwIO8rCj+5GlTV4+s3bt5IF3bROTWKpvGSiASDtFadcKoKUZSSfWiv1uEI4Zabm8Mo3WrODNtdt3FsosGoUTJy8OBBpkyZQkhICGeffTZffPEFv/76q69ia7BUuysZMYfUbLKgbk1i+E/S7yhAdNYSsv/41ONrk9a+yjzzI7xddl+N6hTaMYdGUKK4nmYrWDdH22CE+AfHoQ28Z3qFxyr+C9JjJzxQo3eJweC6q5OcnMySJUvYtm0beXlyv9rbwhyumQtDImJqfG2z8c9iVBwAJC26lf2ZOzy6ruzYrK+WeLm/G0yKjIkAVBw9pHEkQlSyFrv+LhSYkjWORASLGiUj//d//0dhYSEvvfQSTz75JFdeeSUvv/yyr2ILCAs/ncaRx5px22tf4nB6ftujtipsDhqprpkLzQk1n4Y9Ia0NKwZWDjROm9Ebyo+e9hrV6aBf2S8AmFoMqHGdQjvbE0YCoBTu1ziS4LFu+27+enwAux7vzP71P2sdTr1kK3V95tiMMvuq8IzHyYjT6WTLli1ER0fTtWtXfvnlF/766y/OO6/+rua6f9lHjPn7MZKVAi7LeZWja2b7vM7CchspiutbRVhi7cbj9B9xIfndbwVgt7MRW/5cdNrz929c5t5Obte3VnUKbRxuNZ6hlpf4X8wUrUMJGof+/Iqe6iZaqVmkfXs+fy2RAfje5iwvAMBhjtY2EBE0PE5GdDodc+fO9WUsAWXryh9IW3q7e3+gfjPhq147zRXeUVBq5W81jd2koYQn1LqcuPOeYXdkL2Y7hnLpkhBWZ+af8tyd21wTnW03d8ac1rXWdQr/i0tuQqbamMxCGSToqY0xw3jRNt693/O3yeRs/qVGA75FNY4lI4TEaBmFCCIeJSMDBw4EoEePHlx22WV89dVX9XoG1r3b1tJh4aXu/ZnKOACcDpvP6y4ot3GxdSrXR7wJdUhGABKu/pjlpgEU2w1c8e5vbD1Q9e2awoN/uzbi29SpPuF/qbGuQc4HCso1jiR4lBLKu45xzIyr/LKROPs8slY1nC9bvqazuMa9KWEx2gYigoZHyUhZWRkA5eXlhIaG8v333/PVV18xe/ZsvvrqK58G6G9zMw7w9cdvuvctY6axPco1jkL1QzJyfPbVmDBjncuKSkzhvgljuMSwjAXGB+nwfnPU4sMnneesKADAVIsxKkJbqTGhPGT4lGcqnsFy5G+twwkKNocTGwYKO11NzpBnAdjgbMHri7e6l2IQdWO0FQFgCIvTOBIRLDya9CwnJ4e33nqLXr16oSgK6j+6MxVF8Vlw/lZYbuPJ+VtorbbHqSpk9/s/GvW9BvNf/3Od4IdkpLDM9VhvjAdTwXticNtEOo3tTPyidwAoe2ck4Xf8CabKBQ6fc07kdcsQ3ul4hlfqFP4TF25imH49bZX95B3ZjTlZereq07xwFf8xLKFp3hASL7mFwr6TmfLmcvbmlWF5+in+0ymXpPGvgr5Gc0KKf/hcHc1CW1uub3mm1qGIIOFRz4jdbic3N5fc3FxycnLc28f/1QeOo/uY+d6L5JVUkBvbA/tDB2k05n4AzOZjiYHD96ujxmV+zwrzbUzJf8ZrZcb3v4qMRq575OGl+zg08zr3RESqqnK0zMoetTGRjVp6rU7hH4qiUKiLAaC8oO6rNjcEaaWbmWxYQNOCVQBEhxmZem4nAAaqa0na9gmHZ1wFJdlahhnUlpW3YLZjKGFpXbQORQQJj1L/xo0b8+ijj/o6Fk2UWe1s33eYCzMfBmCMuRnKebMxhVTOQhpicq3zojitvg+oNIcUJZ+jeu/2OLWd9AY5zy0hkXwa71/I7l9n0nLYJIoq7Ngcrp6uuHDv9MYI/yrVx4AdbEWeJyOF+TlEREajNzbA/+dO1zw8un9MxjWsXRKfT+5Ho5l3A9AoawH50/cTe8tiFGPN13lqyMqtDix215edWPlMER7yqGdErcejzLfvyaLjx93d+0m9L6R9m7YnnBMSYgZAcfq+Z8ReUeraMHl3SvawkBByL5vv3v9xzXacTpX8gkJeNr7Fk+ZPCDk2WZoILmXGWAAcJZ71Uh76/HaiX2tNyXPtoOzUT1nVV85jyYiiO3HNlDNaxVN27gccxDVwPO7oBiqebwclOX6PMZjll1kZrVvNmYaNhHu4vpYQHiUjq1at8nUc2ig6SNfZZ2BWXGNB9ja7iPhzpsK/xsE4I9O4wXoXXzTxfe9QUslWAPTm8GrOrLkO7TtxdMICDqtxrDwaQa+nf2Lbnr1cqF/OBOUH0Nd90KzwP6v52CDB0ur/aK7+4mkab/8IgGhHPuz93ZehBaZjyQi6kxdw69RzEPpbV7FdcQ3mDrUX8NKn32J3yKPTnirKy+Zd0yv8z/Asik2e8hKe8SgZMRrr6R+pLfPQ212/LJnxQ0i58t0qTzNHxLDI2Zu1xu5Vvu5Nit212qXZRwtdxrYbwPcjl/KLM53S0hLKFj4GQIkSeVISJoKDI9T1TV5XduqlGWwOJ/+ds4re2/574gt+6O0LNKrqSix0VSQjAMmJ8bR9dB1LI87moBrH63tSuPDtFRyUx6c9UnpsaYJiJbzO0xOIhsNvKxhlZWUxdOhQOnbsSNeuXZk92/ezmVarx1VgisDZ9XLWN7nmlKdFhriG1hRX+P6DW+dwJSMVjfv4rI5rBzTnk3OjmGl6jov0vwFQZpCZEoOVGhYPgN5aVOXrJRY7d32ZwXt/HmKVsx0A8x19WebsBuGJfoszYBwfM6I/dcavKAoDpvyPee3/Cygc3L+Pw6+NIHeVzNZanbIi162/Cp33e3dF/eW3Z9cMBgPTpk0jPT2dw4cP07NnT8aOHUt4uIZvWFM4DH0QR7er4KdTrz4cbXRynm45rY6aQe3t0x4Eo8P17Ss03HdrOiiKwsC+/dj/ux6ODVEpNTXAP0r1RG7KUDptns7Yjq154V+vqarKtR+uZlVmPmBga9xwUkZO47aPXRPgbU87A7PfI9aWeuxJMqWa1WTN5hBuuPRiLIk76bfsSno4t8GCyRTnbSFyzFQ/RBqcKkpc7y2LPkLjSEQw8VvPSOPGjUlPTwegUaNGJCQkkJ8fAIPn+k85Yc6NqsQYbLxqeovbi1+pvN/sA6qqstLRlqWOdELi03xWDwB6I1GTv2NLSA/2Gppj6Hejb+sTPhMRHkEpoRRU0XO356MbmXX4LJaY7uHuDkVcdfszNO5QOZ+MP3r7As1XoRcx3PICBzpcX+25Op3CHSPaYO91PXbV9XEZufIVst8+B2wVvg41KFlLXT10dqMkI8Jzmszq89dff+FwOGjSpEmVr69evfqkY06nE5vNN5OOHS/3VOUbjZXNZLOUgTHUJ3GUWOw8Yb0CgIy0dJ/9vMeFhkfR5p7KRfQ8qa+6thKV/NVWUWbXH8mjpZbKupwOdnx0K50OumZIbmrI5+ZxA3Acmysn3Kyn1OKgoKSCaLPfvpNUyd/vqRxHJLvUVGzmOI/r7DNmEtvaDKTFF0MIVywkHfmNoy/1JuLKmZDc2ccRVwqG37/jK/bajRGaxhkMbRUoAqGtFNXPz+3m5+czaNAg3n//ffr371/lOVUlI7feeiv/+c9/fB1elbJL7UzecS0A33d5G7vBN7eWssvh6QwDZp3Kf/vKY7bCM3uPlpO66xOi9FbKut+Kw27H9Pe3nFPxHQAFagS/dn7hxB7AtR8wgpWsTrqUwrQRGkWujWcy9BwpV5jS0U7rGg6VslaU0nfLVGIoYqZjFPnRXejQqi0mHw04D0b5m3/gGutn/BVyBvs73Kx1OCIATJ8+nXnz5p32HL/2jFgsFs4//3wefPDBUyYiAL179z7pWFJSEmPHjvVJXDabjcWLFzNy5Mgqnxw6VFCOY7uCXlEZNWwQRDbySRyrdx/BnLGaRjExjB070Cd11FV1bSUq+autDh05TNNM12220uHf8PuHDzLqWCICUDbhW8a2OvFJsGUbPyDcbqFpWgpNfPR75Sl/v6f+3PwSjW1bGdHqYtr0OavG1x/p05MvZr/H/KOt2ZbXlHGN4njhoq5+mUAuGH7/Htpv4e4DUZzXrzdjh2v33gqGtgoUvm6r6dOnV3uO35IRVVWZNGkSZ555JldddVWNr9fpdD5/QxmNxirriApXsWAiDAs47T6LQz2wju0hk9hpbYPRuMYndXjLqdpKnMzXbZWWnOTeHvLcD/RxxqLXd6efYQfq5bNJaVPFk1kGM9jBbrMGzP9Hf72n+trXcL5hMYfzW2I0jqvx9Wkt2nH5Hc/z5+fr6LTjKy77eykh/92BZfiTmAfdXn0BXhDIv3/bnI3Z5BzMuOa9AyLGQG6rQKNlW/ntZvHvv//Ol19+yZw5c0hPTyc9PZ2NGzf6q/o6CTMZqMD1P6iivNRn9ViOPZ+vGBra8w2iLnQGE45jv8pnqctZ4OzH4vTXCH/sIBFtBlR5jc3oelpLLS/wV5gBQ6cem4FVX/uejAizgf9N6s3YZk5663YAYF7yCLlfTgFLiVfiDFalFlf7hptloUHhOb+9WwYOHIjTGZyzGJoMOiy4PrgqykuI9FE9tmPTebtn1BTCE4qCHtfv1hjdKrpfeC8X9Tz901jHkxGl4qjPwws0iuoaxKs31P0b4PAbX2D57+cwcPG5ACRsnUlRzkairpgBsc3rXH4wal2+gZa6AqLtrQH5LBOe0XYYfRB5XrmWW6y3UxyS6rM6HCWuGTTV0Fif1SHqJ7vi+sM6QL+ZC3t48B41H0upG+C3eP2xZETx0vIHAwcMYfWY+ZSqrh7NqNx15PxvAnklDXNdlmvss5hueom47JVahyKCiCQjHlpp7s8CZz9Kdb6bjExX4Zp3RSdTKIsaKjv3fbYknEXuxd+geDApn2J2zQGhs/nutmOgUo7dpvFGz8hxvfsOYueFC/ndPJAnbVcwNOce+j6zhNWZATCXkh85nSphahkAxnCZ1Vl4Tm7qeSj02LN7pVbfTRIVVuFaAt4QleyzOkT9FNX9Ajp2v8Dj823hKaxytqPc1JzWPowrEB3vGdHpvfvx161bT5xd5rPpt92ULtxGlLOYwukXsrZVT3pMesmrdQWqcpuDSFzJSEh4jLbBiKAiyYiHeio76KDLQs1vDC3jfVJHjM216qopvqlPyhfiuKONB3LXX3GcE9uYIVoH40cOp4qB4z0j3n8UV6dTuHFIKyYkZ6H74joiKIfMdSx+z8SQy+7GFFW/l10otdqJVFxLWpgjYrQNRgQVuU3joUssX/Om6TXC9596DZu6sDucrLC3Y5mjCxEp7X1ShxDHRRxb/LHE0rCmg7c5nDxmn8g4y1Oo7Wo+x4inotoNwX5V5VwvIw++Rfaboyk5ethndQaCUovDlYABSojcphGek2TEQ6VG16hwXVmOT8rPK7XynH0Ck+wPEd083Sd1CHFclB9Xog4kNoeTLDWZjWpLDBE+7KVQFGJa9aZo/FcU6FwD0tMsu9C9lo6zrP4+wVRaXk6Ycmzgrtl34+tE/SPJiIcchjAAVGuZT8rPKXb9AidEmNHrfLcqsBAAsc6jrDLfwowjF4N/V4TQlN1R+bMa9b7/+IvqNJLoe9exO6wbAD/Z0xnx7Pdk5tbPgcOW4oLKHbOvJkEQ9ZEkI546tjie01buk+LLM1dyq34OyREyjEf4Xlh4BElKAZGUgr3hrD5rczi5XL+Emw3z0Bdl+aVOJSyWlvcv46NR67ndNoXdtlgWvXoDe75+BCzFfonBX0qcRu623sRb4TeDlx6dFg2D/OXzlMGVjCg+SkZ6Lx5PbyPcd3QWUOiTOoQ4LjwyBqeqoFNUqCjy2UrUgcbqcHKtfiGtdQeh4CqI8d9g8Yn9m9OuUSSXvfcnN+jnw0bIPrKGpCv/B1GN/RaHLxU5jHzjHEzfqDhu0ToYEVSkZ8RDqsk1L0NYRf0egCYahohQEyUc6+1rQFPC2x0qIYrVtWPwfwLWr2U8s286A7vq+uhNyl5B8TujIEhnp/63smNTH8hU8KKmJBnxUFlUCwAiLNk+rWdj29t8Wr4QAFEhRgrVcADKi/M0jsZ/bA4nZo4lI8YQTWLo3TyOvRN+5nelOzZVT2TZPixPJHPkzy81icebnIUHOVO3lnbqHq1DEUFGkhEPOZI6c4f1Fj6JucnrZecXlWBVXZOqJQ2f4vXyhfg3s0FHHq5HL48v0NgQ2Bwq4Rx72sMYplkcrdqn0/P/lvCbeTAAZqys+P4jnlu4DTWIBxTH56zkf6YXuSDvPa1DEUFG+tI8FBaXwlznQNKdMdzr5bL3LXmPT+3XkR/Xg+lJMvuq8D1FUSjUuZIRa3GuxtH4j81ur3z01BSuaSwhRj3DHvqWgzs38OjXq1leEEfkr3/RbM8XnHPhlUQ2CsK5cSuKALAbIjQORAQb6RnxUEKEa7bG/FKrdws+soX09Y/zgvE9zk88BB6sKyKEN+wzNGeVsx2luobzCKbzn4/ma9gzcpyiKKS06ca0uybRu00q7XRZTMh+Bed7Z1JeFHzr2uhtrqeDHEZJRkTNSDLiobgwIyN1axhQ+hPYvbcap3PvCvd2m+anX/ZdCG/6PPIaLrE+xr5GI7QOxW/sFf+Y3yMAkpHjIswG3r+6F0NbuiYKi3YWYnq5FaXrvtE4sprR21yrQNtNDSfBFd4hyYiH4sLNvGN8hWeVN6go8l639vawHu7t1qlyi0b4T1y4q7cvt7jhLHVvMURwvuUJ7g9/BnSB9fEXYtRz/bU3kRnTDwA9TsLnXkPOx9eC06FxdJ4xHusZcRolGRE1E1i/jQEsKtRICa5vUoUFXuo+VVWUX5937xpSu3unXCE80CTO9X7en1ekcST+U+rQk6G2Zmd4utahVE2no/mdP7J58NvuQ4m7vubXZUs1DMpzOsfx8TgNY94a4T0ygNVDiqJQpoQSTSnFRUfxSh+GpZj2OT8A8EuvNxkaIms5CP9JNx3gbvNN6NaEwejtWofjF6WW4JgHo9OwCeyIbcKqb15jiaMba34o4GXdb7RKCuzF544nIzqDWeNIRLCRnpEaKNW7koXyAu/MNVJQULlgVpemCV4pUwhPxSc2IlEpIsaWHTS3AepKKdjLZP18BluXax3K6SkKbbsPotuNH7ApvB/FhBG2+AFafjEIx4G/tI7ulH4KGcWjtokUNuqndSgiyEgyUgNFRtcqn/aj+7xS3pGf33Jvxzfv5pUyhfBUo5Sm2FQ9epxQckTrcPwi5Oh2/mP8jFGFs7UOxSNd0qJZeMcgBrSOZ4B+MwAXZr/KnrcuCshZW1fr05npGI01vqPWoYggI8lIDZSGNHJtFB7wSnktdnxYuVNP1qYQwaNJQiSH1TgAynP2ahyNfzgrXE97HF+FOxgkRJj59Pp+lF0ww32s7dFf2fHicCz71moXWBUqbK4ethCjXuNIRLCRZKQG7KGuWylKmXeepvnTfAYA2YlneKU8IWoiOtRItuJ6Txcd3KZxNP5xfJ6RYEpGjgvrdgFFN/5FOa7xGG3L1rLzkzvIKwmcp6FaWrbSV9lKuLN+rUYsfC+wR3EFmEONhnPHXjOtonqSXseyHAfXM7jiFwBKxn1AUl2DE6IWsk1NwLYV2/4MrUPxD6trnhE1SFcpDk1oxqK2TxB5eDllRw/zdckgsj5YyfwpAzHotf9ueUfF27Qz72H30dZAS63DEUFE+3dvEHEmd2aucyAbnc3rXFbRyk/d282SY+tcnhC1URTeDABbSfDN9lkrtuPJiLZTwdeFPbwx/W77H+vOeJ3Fzl5kHz6A4clYdjxzBtaKck1jM6g2AIxmbRYhFMFLkpEaiA/33pTw++2Vj/HqCd6FsURwq4htzWJHTzKNrbQOxS8Um+s2jaLxujR1pSgKD43twAsXd8WguD4/2lq3UPxce/atnKNZXMbjyYgp+G6DCW1JMlID8SEwRLeeAQXzoI4raxblHQZgbfw4MMs6DkIbxU2GM9l2D9+HX6B1KH6hO56MmIM7GTlufK8m/DL1YrLjegEQTwFNF07k758/8eqyFZ5QVRUj0jMiakeSkRqIDzfwkel57ra8DWV169aOyc8AICIqpu6BCVFLKTGhDNJtYFTmC2DTtovfH74xncMV1ofIa3WR1qF4TZjZRNJ1X7Kt4x3uY21+vZU9P751mqu8z+ZQMePqNTaZpWdE1IwkIzUQGx3NETUGAFvenlqXU2510Mm6EYDEkMCbK0A0HE3iwvjY9ByjSr+DP9+u/oIgt9uexO/OLugS22gdineFJ9D+kifY1e1eAH5zdOa53wv53/Laf07VVIXdgQnXDLemEOkZETUjyUgNxIQayVJdE8GXHt5V63J+WLLYVQahRJ39pFdiE6I22jeqXNCsvNA7MwsHspJj08GHmernPBitLniEfVMOcaPyCD86e7N6wYfsff4MKv76zOd1V9gcmI/dpjGZg/NpJaEdSUZqQKdTyDW4Jj4rO7Kz1uVcsPJSAMIpRx8R75XYhKiNyBAjP+kHAZBbVv+nhB9m/YUJ+iVE2+pv4tU0PoxNU0fTs1ksPXU7aFa+hZDvbuaPz5/FUXq0+gJqyWJ18Jx9Ai85J6CExvisHlE/STJSQyWhrplSrUf3axyJEN5RFtMWgJKj9XtKeFVVuU79hmeN04kozdQ6HJ/S6RQ+urYPLYZd4z52xvbn2PX2eCp81ANWYXcy3TGWjw0XQpA/rST8T5KRGtIfy/htZYW1ut7ucPKrsysAZd2uqeZsIXwvMt67yxwEqsJyGxGKa5BuWGScxtH4XoTZwPDho8k7+32cKAC0LVmN7pWOqIXe/zJVYXONfwsx1M9bYMK3JBmpodAI1/wg9mNrXNTUkWIL3ZW/AQhp2t1rcQlRWzFNXIuatS7LcM9QWh8dPFpODK6fzxzRcCYajO99Ceqdm9hndg3aXeNow4RXF3CgwLtPT1msFfRQdtBNt6vOUx+Ihkemg6+h0tSB3LajnLTw9nSoxfUHC8ppjeubgy6s/n87E4EvrdsIVizqSA4xjCgtJryedrHn5B6ho3Js7o3IhrUwpT4mjaYPreGdX3fx3MJtYIP7Xn6P+1rtp8PZtxGS0KzOdThKjvKNeSrOCgWUG7wQtWhIpGekhiJT2jHfeQYrLM1rdf3BgnKut97DazEPQKvh3g1OiFpIjArhrtAnucN2G1sLTVqH4zPF2a6ViYt10RCka9PU1Y2DW/LuVT0BlSd5m+573sPy5kAObP+rzmVbrK5Ez4HcphE1J8lIDTWNd03mszunFKez5l2RCRve5b/G9+ihbAeZMlkEiE4p0QBsPlikcSS+Y8k7loyYkzWORDuKojC6UyO+uKoD4RGux7qj1SJSPz+T7G0r6lR2xbFkxKlIMiJqTpKRGmqVGMEEw6/c73ifA4cO1fh6S1EurXSHaO7Y54PohKidbskm2ipZlOz4TetQfMZZ4BqgawlrWLdoqtKvUysa3fkr+xtV9s4mfTGGrA8ur3WZFRWu2Ved0jMiakGSkRoy6nU8YPyCqw2Lyd34Y42vV0vzAChOGeDt0ISotf6mXSwyP8DNmVOgon72jixS+zDB+h+yOt2kdSiBwRRG2k3fcGjg0+5Dhfs2M23RFtRaDEC1SM+IqANJRmrBrLhmcbTs31jjaxtXuJ6kiYxN8mpMQtRFo66ub8g6VGyb5mgbjI/srQjjD2cn9E37aB1KQGk84jZK7tzFuNAPOcf6DG8t3cGPn77Mhp9noTrsHpdTYXElI6pOkhFRc5KM1MK6FjcCEFGwtUbXlVjsdFRd08jHxcvMqyJwpCVEsVzpAUDe1vp5q+ZomWuq8pgwo8aRBJ6ImAQ+uHks6U1iCKecs3Y+QddfJ7Ni1oseJyQWq6t9VUUe0hQ1J8lILSgJruf1wy01m8lw35E893ZYi35ejUmIulAUhczUcQDYDtcsyQ4GqqoyuHwJE/RLiHfkah1OQEqOCuGzyX25qFflY74Dtj/Lgef7gLP6pQJy1Shesl3MutQrfBmmqKckGamF8FjXjJXh9oIaXZd3KBOACswQ19LLUQlRN03buibhSyj9u95NWlVqdXCjbi7PGqcTW5apdTgBK8xk4OGL+2OdMJtyxfX4c5p1F4ef6kBxxtzTXntEjeV1x4VsbznJD5GK+kaSkVqITHCNxo9WC2v0oZ1VZuJh2zXMj78GFMVX4QlRK93Se+JUFUKp4PD2VVqH41VHS600UvIBMMc10TiawGdqN4rQxw6zP7wzAPGOXLbNe5Hth4tPeU3p8RWRzTJmRNScJCO1EJeYAsBuZ2MqKso8vs55ZAtWDOQmyZM0IvBER0WhU1RK1BC2bq9ft2pKcrKIOrYuDdGp2gYTRBrdMp+FnV9hgOU1xpc9yM3Tf2XHhlUUFuSfdK6zopj2yj4SbQc1iFQEO0lGaiEqKoqJjv8wxvosOeWe93C0PPgd/zW+T0/rSh9GJ0TtvTHgDzpb/sec8m5ah+JV9oMbAChUImVF2RowhMcy5uJruffiIURQRkzJ3+i/uhqmdeFo/oljb1JKN/OD+UHOWH27RtGKYCbJSC0oisKuiF5EUcaRQs8Xm1ItrsX1wo4ttidEoOnUJAGofzOxVhxbZfuQsanGkQSnS3o1YeZFqbwS8gGtdIeIpoTY11qx87sX3efYba5JzxSdPK0kak6SkVoaat5BhvkGYv583uNrzNajAITHyBwjIjB1So3CiB17zi7KSwq1DsdrLGWu1XrtBukVqa0evfvT7LHN5LQ8332s9V9PsvmT+6H4MDab69FeRS+P9oqak2Sklp4qeACdotJ6+7sene9wqrR27gEgKkm+nYnAlBQZwvchj/KL+S4KFj6pdThek0MM+9UEVKOsB1VXiVf+j/0Xz3fvd9r5Lmu/fBrrsZ4RnSQjohYkGaml31veWbljq/5WTV5hITGK69tZVLN03wQlhBdYwl1Pi8Vu+RicTo2j8Y5f7F2YYp1CYXx3rUMJfjo9aZ0HkXXOF3ytP4vRlue4cOdZ2KzHkhGD3KYRNSfJSC2V9vjH+hZF1Y8ez89zDfZyomAIi/VVWELUWfT5/wUgRK0gf8fvGkfjHZsPFbNObYOt7y1ah1JvNOk1hmF3f4wppQtmrPTS7QCkZ0TUjiQjtdSmURT7nIkAOEuqn9GxKNeVsBQrkaCTZheBq2mbrhQpEQAc2r1J42jqrtzqYHeOa/B4pxQZPO5NceEmvpsykFdSf+Faww8AGJr31zgqEYzkr2ItNY0Lo0BxfbBl7s+q9vwspTHnW57g3YSHfB2aEHW2JWowABE75mgbiBfs2rWdn4x3813IYyRFhmgdTr005rZp5N68Gcc9O1HO/I/W4YggJMlILel1Ckfi+zLf0Y+fMqtfSOpwmUKG2ppsmfBMBIGwaNcjvs0K/gS7VeNo6iYzaz8tdYdprjuidSj1lqIoJCSnoY9M1DoUEaQkGakDw+jHuc12OzP3V/+obk6xa3ntxEizr8MSou66XcpWZxM+U87GWVKzBSEDjZq5HICisGbVnCmE0IqMNKqDLqnRABwoKKfC5iDEeOo1GUbvfILzTX9z0Pog0N5PEQpRO+279Wf8vDtZX96YziURdI3ROqLaG3fwVQDKUqVXUohAJT0jdRAfbmKseQPnKsvJOnL6QayJZbtI1+0iwVz9LR0htGYy6Gjc2vUY7M/bcjSOpvbspUfd25HtBmsYiRDidPyajFxwwQXExsZy8cUX+7Nan1EUhRd1r/Kq6S2Ktv1y2nNNDteCehFR8livCA4j2kTSQ9lB99X3QNnJC6MFg6wD+93bSZ2HaxiJEOJ0/JqM3HHHHcycOdOfVfqcQ+caAxL595zTnmd2upKRqOgYH0ckhHcMaWLkG/NUBlt+pXzJc1qHUyt/Hylio7M524wd0ZnkSRohApVfk5GhQ4cSGRnpzyp9bmfSaADCC/8+5TmlFjthVAAQGxvnl7iEqKvE1BZkGLoCYMwIzi8RqwpjGWd9hi+6fKB1KEKI0wjIAayrV68+6ZjT6XQvxORtx8utTflqWh849CU2q/WU1x86WkrLY8mI0Rzms5/DH+rSVg1NfWirDW2nkL5lMjqHBZvVAor3v7/4sp02HSgAoF1yeFD/fziuPryn/EXaynOB0FYBmYxUJTs7mwULFvi0jsWLF9f4Gt3RQnoAzZ17+XbeHHQG00nn7C2wcLuiArDolz9w6IP/8d7atFVDFcxtVXBs2SUdTn7/4kXyozv7rC5vt5PeXk6n/SvIogf5O9ex4PB6r5avpWB+T/mbtJXntGyrgExGevfufdKxpKQkxo4d65P6bDYbixcvZuTIkRiNNVzk6fBGmP4EAG3bt6dt25Mf213y11YO7o4jUmdl9Dnng6J4IWpt1KmtGpj60FZ2uwOenwxAj/3TMU3Y7vU6fNVOeevmc87Gj3hE/xGl5+zBFBb8t4jrw3vKX6StPOfrtpo+fXq15wRkMlIVnU7n8zeU0WiseR0pXdhkSmdDWSymilg6VXH9EWcU/S1vMKZzI942ndxzEoxq1VYNVDC3ldFoZE2nh+m1+SlybSE0tRahhMf7rC5vtlNOziEaAVv17egQXb/GagXze8rfpK08p2Vb+TUZGTFiBOvXr6e0tJS0tDRmz57NGWec4c8QvE9v5LMOb/DZyn3cllta5SlHy1zTaceG149ERDQsnc6+les32PjJ1o1FJSbahmsdkWf0OxYCYA1P0TgSIUR1/JqM/PTTT/6szm+6heYRo59L491NgEdOet1idwJgNsgccyL4hIaFYWsxAnbk8PO2bNomB/7tjgNHy+hYuAyA2CYy47EQgU7+OnpBW+MR7jd+yRVHXoSjmSe93v7wfJaY7mH0wbf9H5wQXjC8fQKNyCP1z6lgrboHMJDsWLnQvd10zN0aRiKE8IQkI14Qn9LCva3OPO+k182WXFrpDhHpCM5ZLIU4O83CnyFTOKd8Hnl/zdE6nGpF/D0XgH0R3SCi+oUshRDakmTEC5Lb9HRvK1X0jOjtrucjnYYwf4UkhFfFN+3AIb1r7EXmri0aR1O9PRURbHU2Jb/lyV8OhBCBR5IRLzAb9PwQ6nrsOD+q40mv64+tS6NKMiKC2P4013u85843wBG4Cz5W2BxMLT6XMdbniBh4g9bhCCE8IMmIlxzodBP/Z7uOT8KuPOm14z0jqjHU32EJ4TWx3c5xbzv++kjDSE7vm7UHKLM6SIkOoUVChNbhCCE8IMmIl/Ttns5njuG8tq8Fu3JKTnjt+Iq9GIPkmUghqtAifSi5RANQkvGtxtGcWv5vH3CD/jvuS7eh1wXvBINCNCSSjHhJ59RozmyfhN2pMnNF5gmvhTiKAXCGxPg/MCG8RK9TmNvoDgDsBfs1jqZqFruD8cUz+T/j5wwJy9Q6HCGEh4JmBtZgcEWTo9yx+2HULXFw3hL38RLCyHIm4giXUf0iuMV0HsEd+3LRR7bgJVVFCbClDXbsPUAX5SgAsd3P1TgaIYSnpGfEi1Liwuim200Ty84Tjr8QcR+DrK9S1GSYRpEJ4R1D0tuz2DCEb3JSmbf+oNbhnKR01acAFOpiUKJk5lUhgoUkI17UOKUpAPEUUH6kMiGx2I7PwKrXJC4hvCUhwsz1g1rSQjnE9hXfgbVM65DcLHYHnba/BoAjxDfr5wghfEOSES+KSWjs3g59u3LuEYvdAch08KJ+OLtLY2aZHuf+7AewHMjQOhy3P1etIhJXchR64WsaRyOEqAn56+hN+qpXO3yq/Cm+M/0fUYXeX35dCH9rmxxBri4RgPI5d2kcTaWtOyt7I0NbDdAwEiFETUky4mWftHV9I/sh6Tr3sZbOvXTRZWLGplVYQniNoiiUpvQHIKZwG/bsHRpHBKqqsmi/gWdtE9jR8zEIsIG1QojTk2TEy5r3PpvmFZ/xyNGxOJ0qAHrVNVul0WTSMjQhvKbThGfc2/tXz9MwEpdDhRWsLYpiunouTUbfoXU4QogakmTEy3q3iCXMpMdWnMuOna5vjEZcyYjBZNYyNCG8JjQiimWxFwFg3PK1xtHAxgOFALRJjiTUJAPFhQg2kox4mdmgZ0qjzbxqfJOkOZfidKoYcA1gNRolGRH1R2zTDgCklm6BA2s1jSXpt4fZZL6WW83faxqHEKJ2JBnxgTbNmzBEv4GIsv1Y7fbKZERu04h6pNnQicx2DGGQ5RUyja21C8RWQffDs4lQKmgULYtRChGMJBnxgQ59z8KpKpiwkb93C4Zjt2lMphCNIxPCe6Jik/i26f+RpSbz0/ZczeLY+8M093ZK+ijN4hBC1J4kIz6QGh9Fji4BgNKlL5BHNLlqFEYZMyLqmTGdGwGw6Lc/sO5brUkMlq0/AlBgTCKlQz9NYhBC1I0kIz6yP3EwAE0OL+YMyxsMcLyHEpGocVRCeNf4Xk24N3wBMyx3YZ11vd/rdzpVosr2ApDb7//8Xr8QwjskGfER5YybAQhRK4inUGZfFfVSiFFPXOu+hCkWQkoP+L3+7cu+pBF5ADRr193v9QshvEP+QvpI5y492a+6ekK66HZjNsrjhqJ+apU+CACDasOx8Ru/1auqKu9kWHndfj5HzM0xpnTxW91CCO+SZMRHTAYd7zd5jjGWZ7nL8DXv2h8FVdU6LCG8rnvrpu5t9dub/FbvrpwS5h6O53UuQz9lFegk4RciWEky4kPtu/ahQI2gm243XdTtMkW1qJdMRj1LerwBgMFpQS3c75d6l2/KJIVc+rWMJyFCBocLEcwkGfGhoe0SMSmu9WiOz8IqRH3Uf/QE9/bRpa/7pc7zl5/Df43vcnPYEr/UJ4TwHYPWAdRnjaND+STxEyjSOhIhfCvUbODL2BtZdsRMP/NwrvJxffszt5PmLGCgvoCjzW72cW1CCF+TnhEfa5KapnUIQviFo99tfO/sxzeZRp/Xte+n99zbsWf4OvURQviaJCO+1uFc13+TO2sbhxA+NrxDEgCb9uXy14qffFaPw26n7/7/AZCdPMhn9Qgh/Edu0/ha54vAFCbJiKj3kqNCmBb7FWeXzcW4yEFR0z+JSuvg9Xp2L/mANjgBiB18o9fLF0L4n/SM+JpOB+3PhthmWkcihM/1vPBOjIprYcgjy/7nkzpy9mx0bxvbj/FJHUII/5JkRAjhNU3adGN9wjkAJO/6yutz66iqyudFnXnbPo51faeBXjp3hagPJBkRQnjXsIcAiHLkc2TTL14tetGWI3yX35RXuIJWw670atlCCO1IMiKE8KquHTtRqkQAYPjuVq+W/f7SLYDK5EEtiArx/VM7Qgj/kGRECOFViqKwr+eDAERYc1CdTq+Um5N/lK/yLuBH0wNc00k+uoSoT+SGqxDC65oNv57b/sxjryOeV3JKaJ0cVecyrbOuB6Cdbj80blHn8oQQgUO+XgghvC4sNJTCFmPYqLbklx25dS/QbiX1sGvukr3RfUAvt2iEqE8kGRFC+MSwdknEUEz5ullQUVinsnIP73Nv5583s66hCSECjCQjQgifGNY+iZ/M9zEl/1msH11Q63Isdgel758NQDGhdG3eyFshCiEChCQjQgifaJEQzsawvgCYDv0F5QW1KuevHftophwG4FCz89HrFG+FKIQIEJKMCCF8JuGS19zbhxa9Uqsylv5dxGjLc8xtfAdtJ77prdCEEAFEkhEhhM90aZHCrrBuAMRkvFvj6wvLbXy9/gjb1aaY+98IOr23QxRCBABJRoQQPhU95DYAQtVysv78tkbXzvnlT9qWb6BjopERHRv7IjwhRACQZEQI4VMJvS8i15DMLmdjfj1Qs2tbZTzHl+YneSf8PQx6+bgSor6S324hhG/p9Gzp9wLP2C/nk6x4jy/LP7SHgZblAMSntfNVdEKIACDJiBDC57r2H8Mv9GLb4WKy8ss8uubgrx+6t8P7TvRVaEKIACDJiBDC52LCTIxMczJOt4ItC96q9nxVVSndsxqA3TEDILGtr0MUQmhI1qYRQvjF+KQDDM9+A3bCxs8L6DLhqVOeO//9RxlnWQGArsv5fopQCKEV6RkRQvhFt0HjKnf2LDvleRa7A3X/Ovd+k34X+zIsIUQAkGRECOEXCckp5J73MQBdrOspPLKvyvNW7cnnduvN9DF8hfpIHvrwOH+GKYTQgCQjQgi/SUhu6t4uWDC1ynN+3pYDwLD2ySh6uZMsREMgyYgQwn8ad2Nb7FAAwg7+WeUpsRunc4X+J0Y391tUQgiNSTIihPAfRaFk9DSynImstrXAarGc8PKhNfOYYv2Ap43/o298uUZBCiH8TZIRIYRfpbdpxoXmd7il4hZmrjpxSlbr4sonbMLTuvo7NCGERiQZEUL4lUGv495RrnlDlixZSH5+PgB/7TxEM8t2AA4M/i8YQzWLUQjhXzI6TAjhdxf3bELez2/SrHgtR2b/Dk0uJX/+o+7XU/vK47xCNCSSjAgh/E6vU7g4YgNJZasgF7Y0uoTzSl0r+lrjO2IK93wNGyFE8PPrbZr58+fTrl072rRpwwcffODPqoUQAcY8/n33trp3GcsdnQAw/eO4EKJh8FsyYrfbufvuu1m6dCnr1q3jhRdeIC8vz1/VCyECTHRiGgf1qQAMLfqWK23/4elev0OjzhpHJoTwN78lI6tWraJTp06kpqYSERHBmDFjWLRokb+qF0IEoNxBTwLQWMmnrTGb6wa11jgiIYQW/DZm5ODBg6Smprr3U1NTOXDgQJXnrl69+qRjTqcTm83mk9iOl+ur8usTaSvPSVtVr/0Z58AvcIhEXmv1F/FhV0p7nYa8pzwnbeW5QGiroBnAmp2dzYIFC3xax+LFi31afn0ibeU5aavTa5F2Je0PfctRS7nPf8frC3lPeU7aynNatpXfkpGUlJQTekIOHDhAnz59qjy3d+/eJx1LSkpi7NixPonNZrOxePFiRo4cidFo9Ekd9YW0leekrTxjs41k4eJRjBw5kjbSTqcl7ynPSVt5ztdtNX369GrP8Vsy0qdPHzZt2sSBAweIjo5m4cKFPPLIIx5fr9PpfP6GMhqN8qb1kLSV56StPCPt5DlpK89JW3lOy7byWzJiMBh46aWXGDZsGE6nk/vvv5/4eJlLQAghhGjo/Dpm5Nxzz+Xcc8/1Z5VCCCGECHCyNo0QQgghNCXJiBBCCCE0JcmIEEIIITQlyYgQQgghNCXJiBBCCCE0JcmIEEIIITQlyYgQQgghNCXJiBBCCCE0JcmIEEIIITQlyYgQQgghNCXJiBBCCCE0JcmIEEIIITSlqKqqah2EJzp16kSrVq18UnZBQQEAMTExPim/PpG28py0lWeknTwnbeU5aSvP+bqtdu3axebNm097TtAkI760evVqAHr37q1xJIFP2spz0laekXbynLSV56StPBcIbSW3aYQQQgihKUlGhBBCCKEpSUaEEEIIoSkZMyKEEEIITUnPiBBCCCE0JcmIEEIIITQlyYgQQgghNCXJiBBCCCE01eCTkVtvvZXk5GR69ep1wvFJkybRsmVL0tPTSU9PZ9euXRpFGDhO1Va7du2iV69etG7dmptuugkZE11p6NChtG/f3v0+Ki8v1zqkgDN//nzatWtHmzZt+OCDD7QOJ6A1b96crl27kp6ezrBhw7QOJ6BccMEFxMbGcvHFF7uPrVq1ik6dOtG6dWueeOIJDaMLLFW1leafVWoDt3z5cnXNmjVqz549Tzg+ceJE9bvvvtMoqsB0qra66KKL3G31z22hqkOGDFE3btyodRgBy2azqW3atFH379+vFhcXq23btlVzc3O1DitgNWvWTC0uLtY6jID0888/q/PmzVMvuugi97FevXqp69evV+12u9q3b191w4YNGkYYOKpqK60/qxp8z8iAAQOIj4/XOoygUFVbqarKihUrOPvsswG48sor+e6777QITwSh499cU1NTiYiIYMyYMSxatEjrsEQQGjp0KJGRke79gwcPYrfb6dq1K3q9nssuu4z58+drGGHg+HdbBYIGn4yczr333ku3bt146KGHcDgcWocTkPLy8oiLi0NRFABSU1M5cOCAxlEFlssvv5zu3bvz8ssvax1KwDl48CCpqanufXn/nJ6iKAwZMoTevXvz6aefah1OQJP3Vs1p+Vll8HuNGkhPT8dut590fNGiRaSkpFR5zbPPPkujRo2wWCxMnDiRd955h1tvvdXXoWquNm3V0J2uzT799FNSU1MpLCzk3HPPpV27du5eJCFqavny5aSmpnLo0CFGjBhBly5d6Nq1q9ZhiXpA68+qBpGMZGRk1Piaxo0bAxASEsLVV1/N7NmzvRxVYKppW8XHx5Ofn4+qqiiKwoEDBxpc0uJJm0VHR3PJJZewevVqSUb+ISUl5YRvqwcOHKBPnz4aRhTYjn/Tb9y4MWPHjmXt2rWSjJxCVe+thvbZVBPH31tafVbJbZpTOHToEABOp5N58+bRqVMnjSMKTIqi0K9fP77//nvAlV2PGzdO46gCg91uJzc3FwCr1crChQvlffQvffr0YdOmTRw4cICSkhIWLlzI6NGjtQ4rIJWWllJcXAxASUkJS5culffTaaSkpKDX69mwYQMOh4MvvvhCPptOISA+qzQbOhsgJk6cqDZq1Eg1Go1qamqqOmvWLFVVVXXYsGFqly5d1E6dOqnXXXedWlFRoXGk2jtVW+3YsUPt0aOH2rJlS3Xy5Mmqw+HQONLAUFJSovbo0UPt0qWL2rFjR/WBBx5QnU6n1mEFnLlz56pt2rRRW7Vqpb777rtahxOwdu3apXbt2lXt2rWr2qlTJ3XatGlahxRQhg8friYkJKihoaFqamqqumLFCvWPP/5QO3bsqLZs2VJ97LHHtA4xYPy7rZYvX675Z5UslCeEEEIITcltGiGEEEJoSpIRIYQQQmhKkhEhhBBCaEqSESGEEEJoSpIRIYQQQmhKkhEhhBBCaEqSESHESQwGg3sp8fT0dGbOnKl1SIBr6fODBw+e8vVJkyadFOtLL73Evffey+LFi3n00Ud9HaIQohYkGRFCnCQmJoaMjAz3v6uvvrrOZdZ1scmMjAxCQ0NPO6X3pZdeyqxZs0449uWXX3LppZcycuRIfvjhB8rLy+sUhxDC+yQZEUJ4LCEhgXvvvZcuXbowfPhwSktLAdi1axejR4+mV69enHnmmWRmZgKupcrvvPNOevXqxccff8zcuXNp27YtvXv35rrrruPee+9l586d9O/f313HkiVLuPjii0+q+7PPPuO8885z7//444+cccYZdO/enSuvvBKr1cqIESNYu3YthYWFAGRmZpKXl0fv3r0BGDx4MAsXLvRV8wghakmSESHESQoKCk64TfPzzz8DkJeXx1lnncXGjRtJTU3lm2++AeCWW27h3XffZc2aNTz88MPcd9997rKMRiNr1qzh0ksv5fbbb2fp0qX88ccf7Nq1C4DWrVtjNBrZsWMHADNnzmTixIknxfTnn3/So0cPAHJzc3nhhRdYunQp69ato2XLlrz//vsYjUbOPvts5syZA8CsWbO45JJL3GX06NGDFStWeL/BhBB10iBW7RVC1Mzx2zT/FhERwYgRIwDo2bMnmZmZlJSU8Ntvv3H++ecDoKoq4eHh7mvGjx8PwPbt22nfvj1paWkAXHTRRezduxeoHOvx0EMPsXz5cqZPn35S3YcPHyYxMRFwJSYbNmzgjDPOAMBisbhXGL300kuZNm0aEydOZNasWXzwwQfuMhITE92LYAohAockI0IIj5nNZve2Xq/H4XDgdDpJTk6uMnkBCAsLA1xJyqmMHz+evn370rZtW84991wMhpM/mkJCQqioqABcq2mfffbZfPjhhyedN2zYMK655hrWrl1LSUkJ6enp7tcqKioIDQ315EcVQviR3KYRQtRJVFQUycnJfPfdd4BroOqmTZtOOq99+/Zs27aNAwcO4HA43Ld4wNXj0qdPHx588MEqb9Ecv37nzp0AnHHGGfz888/unpWioiL27NkDuJKkcePGcc0115xwiwZg586ddOjQoe4/tBDCqyQZEUKc5N9jRl555ZXTnv/ZZ5/x+uuv061bN7p06cKSJUtOOic0NJRp06YxbNgw+vXrR1paGlFRUe7XL7vsMhISEk7oyfins846i19//RVw3W55//33ueiii+jatSuDBw92JybgulWzYcMGLr300hPKWLZsGWPGjPG0GYQQfqKop+s7FUIILyopKSEiIgKHw8GFF17I5MmTOeeccwCYOnUqsbGx3HHHHae8dsyYMSxbtgxFUWpcd25uLpdffjmLFi2q088ghPA+SUaEEH7zwgsv8Omnn2KxWBgxYgSvvfYaiqIwZswYcnNz+fnnn4mIiDjl9QsWLKBHjx40atSoxnWvW7cORVFO2fMihNCOJCNCCCGE0JSMGRFCCCGEpiQZEUIIIYSmJBkRQgghhKYkGRFCCCGEpiQZEUIIIYSmJBkRQgghhKYkGRFCCCGEpiQZEUIIIYSmJBkRQgghhKb+H735ZR9YHXLPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(Erange_dpnegf, negf_out['T_avg'], label='DeePTB-NEGF')\n", + "plt.plot(tbt_trans_E - Ef_TS, tbt_trans,'--', label=r'DFT-NEGF')\n", + "plt.xlabel('Energy (eV)')\n", + "plt.title('Total Transmission')\n", + "plt.grid()\n", + "plt.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dpnegf-dev", + "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.10.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/dpnegf/negf/lead_property.py b/dpnegf/negf/lead_property.py index cf5258f..9507bfb 100644 --- a/dpnegf/negf/lead_property.py +++ b/dpnegf/negf/lead_property.py @@ -103,7 +103,6 @@ def __init__(self, tab, hamiltonian, structure, results_path, voltage, def self_energy(self, kpoint, energy, eta_lead: float=1e-5, method: str="Lopez-Sancho", - save: bool=False, save_path: str=None, save_format: str="h5", se_info_display: bool=False, @@ -134,58 +133,132 @@ def self_energy(self, kpoint, energy, if not isinstance(energy, torch.Tensor): energy = torch.tensor(energy) # Energy relative to Ef - if save_path is None: - parent_dir = os.path.join(self.results_path, "self_energy") - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - if save_format == "pth": - save_path = os.path.join(parent_dir, - f"se_{self.tab}_k{kpoint[0]}_{kpoint[1]}_{kpoint[2]}_E{energy}.pth") - elif save_format == "h5": - if self.tab == "lead_L": - save_path = os.path.join(parent_dir, "self_energy_leadL.h5") - elif self.tab == "lead_R": - save_path = os.path.join(parent_dir, "self_energy_leadR.h5") - else: - raise ValueError(f"Unsupported tab {self.tab} for saving self energy.") - else: - raise ValueError(f"Unsupported save format {save_format}. Only 'pth' and 'h5' are supported.") + save_path = self._get_save_path(kpoint, energy, save_format, save_path) + # log.info(f"Self energy save path: {save_path}") + + # Try load + if os.path.isfile(save_path): + if se_info_display: + log.info(f"Loading {self.tab} self-energy from {save_path}") + self.se = self._load_self_energy(save_path, kpoint, energy, save_format) + return + + # If not loaded, just compute + if se_info_display: + log.info(f"Computing {self.tab} self-energy (method={method}) " + f"at k={kpoint}, E={energy.item():.6f}") + + self.se = self.self_energy_cal( kpoint, + energy, + eta_lead=eta_lead, + method=method, + HS_inmem=HS_inmem) - # If the file in save_path exists, then directly load it - if os.path.exists(save_path): - if se_info_display: - log.info(f"Loading self energy from {save_path}") + def _get_save_path(self, kpoint, energy, save_format: str, save_path: str = None): + """ + Generate the save path for self-energy files. + Parameters + ---------- + kpoint : array-like + The k-point (length 3). + energy : torch.Tensor or float + Energy value. + save_format : str + File format, supports "pth" or "h5". + save_path : str, optional + User-specified save path. If None, use default under results_path/self_energy. + + Returns + ------- + str + Full path to the save file. + """ + # Ensure kpoint is array for string formatting + kx, ky, kz = np.asarray(kpoint, dtype=float).reshape(3) + energy_val = energy.item() if hasattr(energy, "item") else float(energy) + + # Case 1: User provided save_path + if save_path is not None: + # If it's a directory, append default filename if os.path.isdir(save_path): if save_format == "pth": - save_path = os.path.join(save_path, f"se_{self.tab}_k{kpoint[0]}_{kpoint[1]}_{kpoint[2]}_E{energy}.pth") + return os.path.join(save_path, + f"se_{self.tab}_k{kx:.4f}_{ky:.4f}_{kz:.4f}_E{energy_val:.6f}.pth") elif save_format == "h5": - save_path = os.path.join(save_path, f"self_energy_{self.tab}.h5") + if self.tab == "lead_L": + return os.path.join(save_path, "self_energy_leadL.h5") + elif self.tab == "lead_R": + return os.path.join(save_path, "self_energy_leadR.h5") else: - raise ValueError(f"Unsupported save format {save_format}. Only 'pth' and 'h5' are supported.") - + raise ValueError(f"Unsupported save_format {save_format}") + return save_path # direct file path given by user + + # Case 2: Default path under results_path + parent_dir = os.path.join(self.results_path, "self_energy") + os.makedirs(parent_dir, exist_ok=True) + + if save_format == "pth": + return os.path.join(parent_dir, + f"se_{self.tab}_k{kx:.4f}_{ky:.4f}_{kz:.4f}_E{energy_val:.6f}.pth") + + elif save_format == "h5": + if self.tab == "lead_L": + return os.path.join(parent_dir, "self_energy_leadL.h5") + elif self.tab == "lead_R": + return os.path.join(parent_dir, "self_energy_leadR.h5") + else: + raise ValueError(f"Unsupported tab {self.tab} for h5 save.") - assert os.path.exists(save_path), f"Cannot find the self energy file {save_path}" - if save_path.endswith(".pth"): - # if the save_path is a directory, then the self energy file is stored in the directory - self.se = torch.load(save_path, weights_only=False) - elif save_path.endswith(".h5"): - try: - self.se = read_from_hdf5(save_path, kpoint, energy) - self.se = torch.from_numpy(self.se) - except KeyError as e: - log.error(f"Cannot find the self energy for kpoint {kpoint} and energy {energy} in {save_path}.") - raise e + else: + raise ValueError(f"Unsupported save_format {save_format}, only 'pth' and 'h5' are supported.") + + @staticmethod + def _load_self_energy(save_path: str, kpoint, energy, save_format: str): + """ + Load self-energy from file. + + Parameters + ---------- + save_path : str + Path to the saved self-energy file. + kpoint : array-like + The k-point (length 3). + energy : torch.Tensor or float + Energy value. + save_format : str + File format, supports "pth" or "h5". + + Returns + ------- + torch.Tensor + Loaded self-energy tensor. + """ + if save_format == "pth": + try: + se = torch.load(save_path, weights_only=False) + except Exception as e: + raise IOError(f"Failed to load self-energy from {save_path} (pth format).") from e + + elif save_format == "h5": + try: + data = read_from_hdf5(save_path, kpoint, energy) + se = torch.as_tensor(data, dtype=torch.complex128) # 自能一般是复数 + except KeyError as e: + kx, ky, kz = np.asarray(kpoint, dtype=float).reshape(3) + ev = energy.item() if hasattr(energy, "item") else float(energy) + raise KeyError( + f"Cannot find self-energy in {save_path} " + f"for k=({kx:.4f},{ky:.4f},{kz:.4f}), E={ev:.6f}" + ) from e + except Exception as e: + raise IOError(f"Failed to read HDF5 self-energy from {save_path}.") from e - return - else: - if se_info_display: - log.info("-"*50) - log.info(f"Not find stored {self.tab} self energy. Calculating it at kpoint {kpoint} and energy {energy}.") - log.info("-"*50) - - self.self_energy_cal(kpoint, energy, eta_lead=eta_lead, method=method,HS_inmem=HS_inmem) + raise ValueError(f"Unsupported save_format {save_format}, only 'pth' and 'h5' are supported.") + + return se + def self_energy_cal(self, kpoint, @@ -193,17 +266,45 @@ def self_energy_cal(self, eta_lead: float=1e-5, method: str="Lopez-Sancho", HS_inmem: bool=True): - + """ + Calculates the self-energy for a lead in a quantum transport calculation. + This method computes the self-energy matrix for a given k-point and energy, + using either the standard or Bloch-based approach depending on the object's configuration. + Parameters + ---------- + kpoint : array-like + The k-point in reciprocal space at which to calculate the self-energy. + energy : float or torch.Tensor + The energy value at which to evaluate the self-energy. + eta_lead : float, optional + Small imaginary part added to the energy for numerical stability (default: 1e-5). + method : str, optional + The method used for self-energy calculation (default: "Lopez-Sancho"). + HS_inmem : bool, optional + If False, deletes Hamiltonian and overlap matrices from memory after calculation (default: True). + This is useful for large systems to save memory. + Returns + ------- + se : torch.Tensor + The calculated self-energy matrix for the specified k-point and energy. + Notes + ----- + - If `useBloch` is True, the calculation unfolds the k-points and applies Bloch phase factors. + - The method caches Hamiltonian and overlap matrices for efficiency unless `HS_inmem` is False. + - The shape of the returned self-energy matrix is consistent with the reduced Hamiltonian blocks. + """ subblocks = self.hamiltonian.get_hs_device(kpoint, only_subblocks=True) # calculate self energy if not self.useBloch: - if not hasattr(self, "HL") or abs(self.voltage_old-self.voltage)>1e-6 or max(abs(self.kpoint-torch.tensor(kpoint)))>1e-6: + if not hasattr(self, "HL") \ + or abs(self.voltage_old-self.voltage)>1e-6 \ + or max(abs(self.kpoint-torch.tensor(kpoint)))>1e-6: + self.HLk, self.HLLk, self.HDLk, self.SLk, self.SLLk, self.SDLk \ = self.hamiltonian.get_hs_lead(kpoint, tab=self.tab, v=self.voltage) self.voltage_old = self.voltage self.kpoint = torch.tensor(kpoint) - HDL_reduced, SDL_reduced = self.HDL_reduced(self.HDLk, self.SDLk,subblocks) self.se, _ = selfEnergy( @@ -354,40 +455,99 @@ def gamma(self): -# ) +def compute_all_self_energy(eta, lead_L, lead_R, kpoints_grid, energy_grid, + self_energy_save_path=None, n_jobs=-1, batch_size=200): + """ + Computes and saves self-energy matrices for all combinations of k-points and energy values + for left and right leads. + + The self-energy calculations are performed in parallel batches, and results are saved as HDF5 files. + Temporary files are merged into final output files for each lead. + Parameters + ---------- + eta : float + Small imaginary part added to energy for numerical stability. + lead_L : Lead + lead object containing Left lead Hamiltonian and results path. + lead_R : Lead + lead object containing Right lead Hamiltonian and results path. + kpoints_grid : array-like + List or array of k-points to compute self-energy for. + energy_grid : array-like + List or array of energy values to compute self-energy for. + self_energy_save_path : str or None, optional + Directory to save self-energy files. If None, uses lead_L's results_path. + n_jobs : int, optional + Number of parallel jobs to use. Default is -1 (use all available CPUs). + batch_size : int, optional + Number of (k, e) tasks per parallel batch. Default is 200. + + Returns + ------- + None + Results are saved to disk as HDF5 files. + """ + if self_energy_save_path is None: + if lead_L.results_path != lead_R.results_path: + log.warning("The results_path of lead_L and lead_R are different. " + "Self energy files will be saved in lead_L's results_path.") + self_energy_save_path = os.path.join(lead_L.results_path, "self_energy") -def compute_all_self_energy(eta, lead_L, lead_R, kpoints_grid, energy_grid, n_jobs=-1, batch_size=200): total_tasks = [(k, e) for k in kpoints_grid for e in energy_grid] if len(total_tasks) <= batch_size: Parallel(n_jobs=n_jobs, backend="loky")( - delayed(self_energy_worker)(k, e, eta, lead_L, lead_R) + delayed(self_energy_worker)(k, e, eta, lead_L, lead_R, self_energy_save_path) for k, e in total_tasks ) - else: for i in range(0, len(total_tasks), batch_size): batch = total_tasks[i:i+batch_size] Parallel(n_jobs=n_jobs, backend="loky")( - delayed(self_energy_worker)(k, e, eta, lead_L, lead_R) + delayed(self_energy_worker)(k, e, eta, lead_L, lead_R, self_energy_save_path) for k, e in batch ) - save_path_L = os.path.join(lead_L.results_path, "self_energy", "self_energy_leadL.h5") - save_path_R = os.path.join(lead_R.results_path, "self_energy", "self_energy_leadR.h5") - merge_hdf5_files(os.path.join(lead_L.results_path, "self_energy"), save_path_L, pattern="tmp_leadL_*.h5") - merge_hdf5_files(os.path.join(lead_R.results_path, "self_energy"), save_path_R, pattern="tmp_leadR_*.h5") + save_path_L = os.path.join(self_energy_save_path, "self_energy_leadL.h5") + save_path_R = os.path.join(self_energy_save_path, "self_energy_leadR.h5") + + merge_hdf5_files(self_energy_save_path, save_path_L, pattern="tmp_leadL_*.h5") + merge_hdf5_files(self_energy_save_path, save_path_R, pattern="tmp_leadR_*.h5") -def self_energy_worker(k, e, eta, lead_L, lead_R): +def self_energy_worker(k, e, eta, lead_L, lead_R, self_energy_save_path): + """ + Calculates the self-energy for left and right leads at a given k-point and energy, + and saves the results to HDF5 files. - save_tmp_L = os.path.join(lead_L.results_path, "self_energy", f"tmp_leadL_k{k[0]}_{k[1]}_{k[2]}_E{e:.8f}.h5") - save_tmp_R = os.path.join(lead_R.results_path, "self_energy", f"tmp_leadR_k{k[0]}_{k[1]}_{k[2]}_E{e:.8f}.h5") + Parameters + ---------- + k : array-like + The k-point in reciprocal space, typically a 3-element array or list. + e : float + The energy value at which to calculate the self-energy. + eta : float + A small imaginary part added to the energy for numerical stability. + lead_L : object + The left lead object, which must implement a `self_energy_cal` method. + lead_R : object + The right lead object, which must implement a `self_energy_cal` method. + self_energy_save_path : str + Directory path where the self-energy HDF5 files will be saved. + + Returns + ------- + None + The function saves the calculated self-energies to files and does not return anything. + """ + + save_tmp_L = os.path.join(self_energy_save_path, f"tmp_leadL_k{k[0]}_{k[1]}_{k[2]}_E{e:.8f}.h5") + save_tmp_R = os.path.join(self_energy_save_path, f"tmp_leadR_k{k[0]}_{k[1]}_{k[2]}_E{e:.8f}.h5") seL = lead_L.self_energy_cal(kpoint=k, energy=e, eta_lead=eta) seR = lead_R.self_energy_cal(kpoint=k, energy=e, eta_lead=eta) @@ -448,4 +608,17 @@ def merge_hdf5_files(tmp_dir, output_path, pattern, remove=True): os.remove(path) # log.info(f"Deleted tmp file: {path}") except Exception as e: - log.warning(f"Failed to delete {path}: {e}") \ No newline at end of file + log.warning(f"Failed to delete {path}: {e}") + + +def _has_saved_self_energy(root: str) -> bool: + from pathlib import Path + p = Path(root) if root is not None else None + if p is None or not p.exists(): + return False + + patterns = ("*.h5", "*.pth") + for pat in patterns: + if any(p.rglob(pat)): + return True + return False \ No newline at end of file diff --git a/dpnegf/runner/NEGF.py b/dpnegf/runner/NEGF.py index 8887ca7..f1aa0b8 100644 --- a/dpnegf/runner/NEGF.py +++ b/dpnegf/runner/NEGF.py @@ -6,7 +6,7 @@ from dpnegf.utils.elec_struc_cal import ElecStruCal from dpnegf.negf.density import Ozaki,Fiori from dpnegf.negf.device_property import DeviceProperty -from dpnegf.negf.lead_property import LeadProperty, compute_all_self_energy +from dpnegf.negf.lead_property import LeadProperty, compute_all_self_energy, _has_saved_self_energy from dpnegf.negf.negf_utils import is_fully_covered import ase from dpnegf.utils.constants import Boltzmann, eV2J @@ -21,7 +21,6 @@ from pyinstrument import Profiler import os - log = logging.getLogger(__name__) @@ -49,7 +48,7 @@ def __init__(self, sgf_solver: str, e_fermi: float=None, use_saved_HS: bool=False, saved_HS_path: str=None, - self_energy_save: bool=False, self_energy_save_path: str=None, se_info_display: bool=False, + use_saved_se: bool=False, self_energy_save_path: str=None, se_info_display: bool=False, out_tc: bool=False,out_dos: bool=False,out_density: bool=False,out_potential: bool=False, out_current: bool=False,out_current_nscf: bool=False,out_ldos: bool=False,out_lcurrent: bool=False, results_path: Optional[str]=None, @@ -80,9 +79,9 @@ def __init__(self, self.saved_HS_path = saved_HS_path self.sgf_solver = sgf_solver - self.self_energy_save = self_energy_save - self.self_energy_save_path = self_energy_save_path - self.se_info_display = se_info_display + self.use_saved_se = use_saved_se # whether to use the saved self-energy or not + self.self_energy_save_path = self_energy_save_path # The directory to save the self-energy or for saved self-energy + self.se_info_display = se_info_display # whether to display the self-energy information after calculation self.pbc = self.stru_options["pbc"] if self.stru_options["lead_L"]["useBloch"] or self.stru_options["lead_R"]["useBloch"]: @@ -133,18 +132,8 @@ def __init__(self, else: assert self.stru_options[lead_tag]["voltage"] == 0, f"{lead_tag} voltage should be 0 in non-scf calculation" - if AtomicData_options is None: - from dptb.utils.argcheck import get_cutoffs_from_model_options - # get the cutoffs from model options - r_max, er_max, oer_max = get_cutoffs_from_model_options(model.model_options) - AtomicData_options = {'r_max': r_max, 'er_max': er_max, 'oer_max': oer_max} - else: - log.warning(msg="AtomicData_options is extracted from input file. " \ - "This may be not consistent with the model options. " \ - "Please be careful and check the cutoffs.") - formatted = json.dumps(AtomicData_options, indent=4) - indented = '\n'.join(' ' * 15 + line for line in formatted.splitlines()) - log.info("The AtomicData_options is:\n%s", indented) + # preparing AtomicData_options, including cutoffs + AtomicData_options = self.update_atomicdata_options(model,AtomicData_options) # computing the hamiltonian self.negf_hamiltonian = NEGFHamiltonianInit(model=model, @@ -403,13 +392,13 @@ def compute(self): self.negf_compute(scf_require=False,Vbias=self.potential_at_orb) else: - # profiler = Profiler() - # profiler.start() + profiler = Profiler() + profiler.start() self.negf_compute(scf_require=False,Vbias=None) - # profiler.stop() - # output_path = os.path.join(self.results_path, "profile_report.html") - # with open(output_path, 'w') as report_file: - # report_file.write(profiler.output_html()) + profiler.stop() + output_path = os.path.join(self.results_path, "profile_report.html") + with open(output_path, 'w') as report_file: + report_file.write(profiler.output_html()) def poisson_negf_scf(self,interface_poisson,atom_gridpoint_index,err=1e-6,max_iter=1000, mix_method:str='linear', mix_rate:float=0.3, tolerance:float=1e-7,Gaussian_sigma:float=3.0): @@ -513,8 +502,49 @@ def poisson_negf_scf(self,interface_poisson,atom_gridpoint_index,err=1e-6,max_it # if iter_count <= max_iter: # profiler.stop() # with open('profile_report.html', 'w') as report_file: - # report_file.write(profiler.output_html()) - + # report_file.write(profiler.output_html())、 + + def prepare_self_energy(self, scf_require: bool) -> None: + """ + Prepares the self-energy for the NEGF calculation. + + Depending on the calculation settings, this method either loads previously saved self-energy data + or computes and saves new self-energy values for the device leads. The computation method varies + based on whether self-consistent field (SCF) calculations are required and whether Dirichlet boundary + conditions are applied to the leads. + + Parameters: + ---------- + scf_require (bool): Indicates whether SCF calculations are required. + """ + # self energy calculation + log.info(msg="------Self-energy calculation------") + if self.self_energy_save_path is None: + self.self_energy_save_path = os.path.join(self.results_path, "self_energy") + os.makedirs(self.self_energy_save_path, exist_ok=True) + + if self.use_saved_se: + assert _has_saved_self_energy(self.self_energy_save_path), "No saved self-energy found in {}".format(self.self_energy_save_path) + log.info(msg="Using saved self-energy from {}".format(self.self_energy_save_path)) + log.info(msg="Ensure the saved self-energy is consistent with the current calculation setting!") + else: + log.info(msg="Calculating self-energy and saving to {}".format(self.self_energy_save_path)) + if scf_require and self.poisson_options["with_Dirichlet_leads"]: + # For the Dirichlet leads, the self-energy of the leads is only calculated once and saved. + # In each iteration, the self-energy of the leads is not updated. + # for ik, k in enumerate(self.kpoints): + # for e in self.density.integrate_range: + # self.deviceprop.lead_L.self_energy(kpoint=k, energy=e, eta_lead=self.eta_lead, save=True) + # self.deviceprop.lead_R.self_energy(kpoint=k, energy=e, eta_lead=self.eta_lead, save=True) + compute_all_self_energy(self.eta_lead, self.deviceprop.lead_L, self.deviceprop.lead_R, + self.kpoints, self.density.integrate_range, self.self_energy_save_path) + elif not self.scf: + # In non-scf case, the self-energy of the leads is calculated for each energy point in the energy grid. + compute_all_self_energy(self.eta_lead, self.deviceprop.lead_L, self.deviceprop.lead_R, + self.kpoints, self.uni_grid, self.self_energy_save_path) + log.info(msg="-----------------------------------\n") + + def negf_compute(self,scf_require=False,Vbias=None): @@ -522,26 +552,7 @@ def negf_compute(self,scf_require=False,Vbias=None): self.out['k']=[];self.out['wk']=[] if hasattr(self, "uni_grid"): self.out["uni_grid"] = self.uni_grid - # self energy calculation - log.info(msg="------Self-energy calculation------") - selfen_parent_dir = os.path.join(self.results_path,"self_energy") - if not os.path.exists(selfen_parent_dir): - os.makedirs(selfen_parent_dir) - if scf_require and self.poisson_options["with_Dirichlet_leads"]: - # For the Dirichlet leads, the self-energy of the leads is only calculated once and saved. - # In each iteration, the self-energy of the leads is not updated. - # for ik, k in enumerate(self.kpoints): - # for e in self.density.integrate_range: - # self.deviceprop.lead_L.self_energy(kpoint=k, energy=e, eta_lead=self.eta_lead, save=True) - # self.deviceprop.lead_R.self_energy(kpoint=k, energy=e, eta_lead=self.eta_lead, save=True) - compute_all_self_energy(self.eta_lead, self.deviceprop.lead_L, self.deviceprop.lead_R, - self.kpoints, self.density.integrate_range) - elif not self.scf: - # In non-scf case, the self-energy of the leads is calculated for each energy point in the energy grid. - compute_all_self_energy(self.eta_lead, self.deviceprop.lead_L, self.deviceprop.lead_R, - self.kpoints, self.uni_grid) - log.info(msg="-----------------------------------\n") - + self.prepare_self_energy(scf_require) for ik, k in enumerate(self.kpoints): @@ -627,7 +638,6 @@ def negf_compute(self,scf_require=False,Vbias=None): kpoint=k, eta_lead=self.eta_lead, method=self.sgf_solver, - save=self.self_energy_save, save_path=self.self_energy_save_path, se_info_display=self.se_info_display ) @@ -641,7 +651,6 @@ def negf_compute(self,scf_require=False,Vbias=None): kpoint=k, eta_lead=self.eta_lead, method=self.sgf_solver, - save=self.self_energy_save, save_path=self.self_energy_save_path, se_info_display=self.se_info_display ) @@ -736,7 +745,6 @@ def negf_compute(self,scf_require=False,Vbias=None): kpoint=k, eta_lead=self.eta_lead, method=self.sgf_solver, - save=self.self_energy_save, save_path=self.self_energy_save_path, se_info_display=self.se_info_display ) @@ -815,6 +823,42 @@ def get_nel_atom_lead(self, struct_leads, charge:float=None): nel_atom_lead[lead_tag] = {elem: nel_atom_lead[lead_tag][elem] + charge[lead_tag] for elem in nel_atom_lead[lead_tag]} return nel_atom_lead + + @staticmethod + def update_atomicdata_options(model,AtomicData_options: dict=None) -> dict: + """ + Updates or initializes the AtomicData_options dictionary based on the provided model. + + If AtomicData_options is not provided, it extracts cutoff values from the model's options + using `get_cutoffs_from_model_options` and constructs the dictionary. If AtomicData_options + is provided, a warning is logged to indicate potential inconsistency with the model options. + + The function logs the resulting AtomicData_options in a formatted and indented manner. + + Parameters: + ---------- + model: The model object containing model_options used to extract cutoff values. + AtomicData_options (dict, optional): Dictionary of atomic data options. If None, it will be generated. + + Returns: + ------- + dict: The updated or initialized AtomicData_options dictionary. + """ + if AtomicData_options is None: + from dptb.utils.argcheck import get_cutoffs_from_model_options + # get the cutoffs from model options + r_max, er_max, oer_max = get_cutoffs_from_model_options(model.model_options) + AtomicData_options = {'r_max': r_max, 'er_max': er_max, 'oer_max': oer_max} + else: + log.warning(msg="AtomicData_options is extracted from NEGF input file. " \ + "This may be not consistent with the model options. " \ + "Please be careful and check the cutoffs.") + formatted = json.dumps(AtomicData_options, indent=4) + indented = '\n'.join(' ' * 15 + line for line in formatted.splitlines()) + log.info("The AtomicData_options is:\n%s", indented) + + return AtomicData_options + def fermi_dirac(self, x) -> torch.Tensor: return 1 / (1 + torch.exp(x / self.kBT)) diff --git a/dpnegf/tests/test_negf_negf_hamiltonian_init.py b/dpnegf/tests/test_negf_negf_hamiltonian_init.py index 58b24ac..562919a 100644 --- a/dpnegf/tests/test_negf_negf_hamiltonian_init.py +++ b/dpnegf/tests/test_negf_negf_hamiltonian_init.py @@ -75,8 +75,7 @@ def test_negf_Hamiltonian(root_directory): energy=e, kpoint=kpoints[0], eta_lead=negf_json['task_options']["eta_lead"], - method=negf_json['task_options']["sgf_solver"], - save=False + method=negf_json['task_options']["sgf_solver"] ) print("lead_L self energy:",deviceprop.lead_L.se) print("lead_R self energy:",deviceprop.lead_R.se) diff --git a/dpnegf/utils/argcheck.py b/dpnegf/utils/argcheck.py index 25601d3..14fa572 100644 --- a/dpnegf/utils/argcheck.py +++ b/dpnegf/utils/argcheck.py @@ -1047,8 +1047,8 @@ def negf(): Argument("stru_options", dict, optional=False, sub_fields=stru_options(), doc=doc_stru_options), Argument("poisson_options", dict, optional=True, default={}, sub_fields=[], sub_variants=[poisson_options()], doc=doc_poisson_options), Argument("sgf_solver", str, optional=True, default="Sancho-Rubio", doc=doc_sgf_solver), - Argument("self_energy_save", bool, optional=True, default=False, doc="whether to save the self energy"), - Argument("self_energy_save_path", str, optional=True, default=None, doc="the path to save the self energy"), + Argument("use_saved_se", bool, optional=True, default=False, doc="whether to use saved self energy"), + Argument("self_energy_save_path", str, optional=True, default=None, doc="the directory to save the self energy or load the self energy"), Argument("se_info_display", bool, optional=True, default=False, doc="whether to display the self energy information"), Argument("espacing", [int, float], optional=False, doc=doc_espacing), Argument("emin", [int, float], optional=False, doc=doc_emin), diff --git a/examples/graphene/band.json b/examples/graphene/band.json new file mode 100644 index 0000000..160ed40 --- /dev/null +++ b/examples/graphene/band.json @@ -0,0 +1,18 @@ +{ + "structure":"train/data/POSCAR", + "task_options": { + "task": "band", + "kline_type":"abacus", + "kpath":[ + [0, 0, 0, 50], + [0.5, 0, 0, 50], + [0.3333333, 0.3333333, 0, 50], + [0, 0, 0, 1] + ], + "nkpoints":151, + "klabels":["G", "M", "K", "G"], + "emin":-20, + "emax":20, + "nel_atom":{"C":4} + } +} \ No newline at end of file diff --git a/examples/graphene/extra_baseline/c_spd.json b/examples/graphene/extra_baseline/c_spd.json new file mode 100644 index 0000000..5da4b2c --- /dev/null +++ b/examples/graphene/extra_baseline/c_spd.json @@ -0,0 +1,11 @@ +{ + "common_options": { + "basis": { + "C": [ + "2s", + "2p", + "d*" + ] + } + } +} \ No newline at end of file diff --git a/examples/graphene/extra_baseline/grap_spd_model/sktb.json b/examples/graphene/extra_baseline/grap_spd_model/sktb.json new file mode 100644 index 0000000..50ad48a --- /dev/null +++ b/examples/graphene/extra_baseline/grap_spd_model/sktb.json @@ -0,0 +1,212 @@ +{ + "version": 2, + "unit": "eV", + "model_options": { + "nnsk": { + "onsite": { + "method": "uniform" + }, + "hopping": { + "method": "poly4pow", + "rs": { + "C-C": 4.39 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": false, + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "common_options": { + "basis": { + "C": [ + "2s", + "2p", + "d*" + ] + }, + "dtype": "float32", + "device": "cuda", + "overlap": true + }, + "model_params": { + "onsite": { + "C-2s-0": [ + -0.10686016082763672 + ], + "C-2p-0": [ + 0.12751197814941406 + ], + "C-d*-0": [ + 0.0 + ] + }, + "hopping": { + "C-C-2s-2s-0": [ + -6.684751033782959, + 4.326050281524658, + 7.401242733001709, + -24.684650421142578, + 7.83709192276001, + -0.5529974102973938 + ], + "C-C-2s-2p-0": [ + -6.9853434562683105, + -0.15866073966026306, + 11.681811332702637, + -10.92180347442627, + -1.95439612865448, + 1.0654785633087158 + ], + "C-C-2s-d*-0": [ + -0.00010646219016052783, + 6.032549572410062e-05, + -0.00012444439926184714, + 0.0001085955009330064, + -0.00013242202112451196, + 0.822330117225647 + ], + "C-C-2p-2p-0": [ + 6.175818920135498, + -0.6068210601806641, + -9.516790390014648, + 14.982359886169434, + -2.222520351409912, + -0.3968461751937866 + ], + "C-C-2p-2p-1": [ + -2.7375760078430176, + 1.839799165725708, + 2.1155834197998047, + -7.809864044189453, + 2.5414087772369385, + 1.215492844581604 + ], + "C-C-2p-d*-0": [ + -8.977071411209181e-05, + 4.293958772905171e-05, + 0.0001835303846746683, + 0.00033714837627485394, + 0.00011189249926246703, + -0.8198558688163757 + ], + "C-C-2p-d*-1": [ + -0.00015152650303207338, + 0.00021211523562669754, + 2.822246460709721e-05, + -0.00032705828198231757, + 0.0003069117374252528, + 0.8305988311767578 + ], + "C-C-d*-d*-0": [ + 9.454079554416239e-05, + -9.590329136699438e-05, + 0.00011994513624813408, + -6.711072637699544e-05, + 0.0002700634067878127, + 0.8173061013221741 + ], + "C-C-d*-d*-1": [ + 0.0001105186966015026, + -5.8947422076016665e-05, + 0.00023174105444923043, + 1.3896875316277146e-05, + 0.00017471887986175716, + 0.8142954707145691 + ], + "C-C-d*-d*-2": [ + -0.00010158663644688204, + 0.0003293976478744298, + 4.862011701334268e-05, + -7.672052015550435e-05, + 0.00016208819579333067, + 0.8196141719818115 + ] + }, + "overlap": { + "C-C-2s-2s-0": [ + 0.2466021627187729, + -0.20137032866477966, + -0.22465133666992188, + 0.9475207924842834, + -0.3242596387863159, + 0.35583510994911194 + ], + "C-C-2s-2p-0": [ + 0.30228379368782043, + -0.19255711138248444, + -0.40023675560951233, + 1.26386559009552, + -0.3918810188770294, + -5.578631680691615e-05 + ], + "C-C-2s-d*-0": [ + -9.066608618013561e-05, + -4.845444345846772e-05, + 7.032023859210312e-06, + -0.0003356275847181678, + -3.039978037122637e-05, + -0.740434467792511 + ], + "C-C-2p-2p-0": [ + -0.31055670976638794, + 0.0015619457699358463, + 0.7435058951377869, + -1.2593721151351929, + 0.22618918120861053, + -0.00022265399456955492 + ], + "C-C-2p-2p-1": [ + 0.13884934782981873, + -0.12665610015392303, + -0.11550959944725037, + 0.5953179597854614, + -0.22506600618362427, + 0.875838041305542 + ], + "C-C-2p-d*-0": [ + 0.00012514149420894682, + -6.299408414633945e-05, + 0.0003052930405829102, + -0.00024931083316914737, + -3.0835799407213926e-05, + 0.737001895904541 + ], + "C-C-2p-d*-1": [ + -9.066608618013561e-05, + -4.8454414354637265e-05, + 7.032198482193053e-06, + -0.00033562741009518504, + -3.040030424017459e-05, + -0.740434467792511 + ], + "C-C-d*-d*-0": [ + -9.120674803853035e-05, + 0.0001677007821854204, + 1.4481425751000643e-05, + 0.0002868282899726182, + 0.00019680232799146324, + 0.7440820932388306 + ], + "C-C-d*-d*-1": [ + 5.5082375183701515e-05, + 0.00013481048517860472, + 6.67735148454085e-05, + 0.00022058241302147508, + 0.00018173769058194011, + 0.741083025932312 + ], + "C-C-d*-d*-2": [ + 0.00012257523485459387, + -0.0001119638400268741, + 0.00022559240460395813, + 0.00034283509012311697, + 0.00016658403910696507, + 0.7432126402854919 + ] + } + } +} \ No newline at end of file diff --git a/examples/graphene/extra_baseline/input_templete.json b/examples/graphene/extra_baseline/input_templete.json new file mode 100644 index 0000000..1272931 --- /dev/null +++ b/examples/graphene/extra_baseline/input_templete.json @@ -0,0 +1,85 @@ +{ + "common_options": { + "basis": { + "C": [ + "2s", + "2p", + "d*" + ] + }, + "device": "cpu", + "dtype": "float32", + "overlap": true, + "seed": 3982377700 + }, + "train_options": { + "num_epoch": 2, + "batch_size": 1, + "optimizer": { + "lr": 0.01, + "type": "Adam" + }, + "lr_scheduler": { + "type": "exp", + "gamma": 0.999 + }, + "loss_options": { + "train": { + "method": "eigvals", + "diff_on": false, + "eout_weight": 0.001, + "diff_weight": 0.01 + } + }, + "save_freq": 1, + "validation_freq": 10, + "display_freq": 100, + "ref_batch_size": 1, + "val_batch_size": 1, + "max_ckpt": 4 + }, + "model_options": { + "nnsk": { + "onsite": { + "method": "uniform" + }, + "hopping": { + "method": "poly4pow", + "rs": { + "C-C": 4.39 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": [ + "overlap" + ], + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "data_options": { + "train": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + }, + "validation": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + }, + "reference": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + } + } +} \ No newline at end of file diff --git a/examples/graphene/negf.json b/examples/graphene/negf.json new file mode 100644 index 0000000..afc353a --- /dev/null +++ b/examples/graphene/negf.json @@ -0,0 +1,52 @@ +{ + "structure":"./struct.xyz", + "task_options": + { + "task": "negf", + "scf": false, + "block_tridiagonal": true, + "ele_T": 300, + "unit": "eV", + "stru_options":{ + "gamma_center": false, + "time_reversal_symmetry": true, + "nel_atom": {"C": 4}, + "kmesh":[1,1,1], + "pbc":[false, true, false], + "device":{ + "id":"32-64", + "sort": true + }, + "lead_L":{ + "id":"0-32", + "voltage":0.0, + "kmesh_lead_Ef":[1,50,20], + "useBloch": false + }, + "lead_R":{ + "id":"64-96", + "voltage":0.0, + "kmesh_lead_Ef":[1,50,20], + "useBloch": false + } + }, + "density_options": { + "method": "Fiori", + "integrate_way": "direct" + }, + "poisson_options": { + "solver": "fmm", + "err": 1e-5 + }, + "sgf_solver": "Sancho-Rubio", + "espacing": 0.05, + "emin": -10, + "emax": 10, + "eta_lead":1e-5, + "eta_device":0.0, + "out_dos": true, + "out_tc": true, + "out_ldos": true, + "out_current_nscf": false + } +} diff --git a/examples/graphene/negf_output_k100/negf.out.pth b/examples/graphene/negf_output_k100/negf.out.pth new file mode 100644 index 0000000..c886417 Binary files /dev/null and b/examples/graphene/negf_output_k100/negf.out.pth differ diff --git a/examples/graphene/negf_output_k100/trans_tbt_E.npy b/examples/graphene/negf_output_k100/trans_tbt_E.npy new file mode 100644 index 0000000..c313ba5 Binary files /dev/null and b/examples/graphene/negf_output_k100/trans_tbt_E.npy differ diff --git a/examples/graphene/negf_output_k100/trans_tbt_Tavg.npy b/examples/graphene/negf_output_k100/trans_tbt_Tavg.npy new file mode 100644 index 0000000..9649ed7 Binary files /dev/null and b/examples/graphene/negf_output_k100/trans_tbt_Tavg.npy differ diff --git a/examples/graphene/stru_negf.xyz b/examples/graphene/stru_negf.xyz new file mode 100644 index 0000000..5befc43 --- /dev/null +++ b/examples/graphene/stru_negf.xyz @@ -0,0 +1,98 @@ +96 +Lattice="30.0 0.0 0.0 0.0 5.0079999 0.0 0.0 0.0 52.0446616" Properties=species:S:1:pos:R:3 nsc="1 1 1" boundary_condition="PERIODIC PERIODIC PERIODIC PERIODIC PERIODIC PERIODIC" pbc="T T T" +C 15.00000000 1.87799996 9.03553153 +C 15.00000000 4.38199991 9.03553153 +C 15.00000000 1.87799996 10.48121658 +C 15.00000000 4.38199991 10.48121658 +C 15.00000000 0.62599999 11.20405910 +C 15.00000000 3.12999994 11.20405910 +C 15.00000000 0.62599999 12.64974414 +C 15.00000000 3.12999994 12.64974414 +C 15.00000000 1.87799996 13.37258666 +C 15.00000000 4.38199991 13.37258666 +C 15.00000000 1.87799996 14.81827171 +C 15.00000000 4.38199991 14.81827171 +C 15.00000000 0.62599999 15.54111423 +C 15.00000000 3.12999994 15.54111423 +C 15.00000000 0.62599999 16.98679928 +C 15.00000000 3.12999994 16.98679928 +C 15.00000000 1.87799996 0.36142126 +C 15.00000000 4.38199991 0.36142126 +C 15.00000000 1.87799996 1.80710631 +C 15.00000000 4.38199991 1.80710631 +C 15.00000000 0.62599999 2.52994883 +C 15.00000000 3.12999994 2.52994883 +C 15.00000000 0.62599999 3.97563387 +C 15.00000000 3.12999994 3.97563387 +C 15.00000000 1.87799996 4.69847639 +C 15.00000000 4.38199991 4.69847639 +C 15.00000000 1.87799996 6.14416144 +C 15.00000000 4.38199991 6.14416144 +C 15.00000000 0.62599999 6.86700396 +C 15.00000000 3.12999994 6.86700396 +C 15.00000000 0.62599999 8.31268901 +C 15.00000000 3.12999994 8.31268901 +C 15.00000000 1.87799996 17.70964179 +C 15.00000000 4.38199991 17.70964179 +C 15.00000000 1.87799996 19.15532684 +C 15.00000000 4.38199991 19.15532684 +C 15.00000000 0.62599999 19.87816936 +C 15.00000000 3.12999994 19.87816936 +C 15.00000000 0.62599999 21.32385440 +C 15.00000000 3.12999994 21.32385440 +C 15.00000000 1.87799996 22.04669692 +C 15.00000000 4.38199991 22.04669692 +C 15.00000000 1.87799996 23.49238197 +C 15.00000000 4.38199991 23.49238197 +C 15.00000000 0.62599999 24.21522449 +C 15.00000000 3.12999994 24.21522449 +C 15.00000000 0.62599999 25.66090954 +C 15.00000000 3.12999994 25.66090954 +C 15.00000000 1.87799996 26.38375206 +C 15.00000000 4.38199991 26.38375206 +C 15.00000000 1.87799996 27.82943711 +C 15.00000000 4.38199991 27.82943711 +C 15.00000000 0.62599999 28.55227963 +C 15.00000000 3.12999994 28.55227963 +C 15.00000000 0.62599999 29.99796467 +C 15.00000000 3.12999994 29.99796467 +C 15.00000000 1.87799996 30.72080719 +C 15.00000000 4.38199991 30.72080719 +C 15.00000000 1.87799996 32.16649224 +C 15.00000000 4.38199991 32.16649224 +C 15.00000000 0.62599999 32.88933476 +C 15.00000000 3.12999994 32.88933476 +C 15.00000000 0.62599999 34.33501981 +C 15.00000000 3.12999994 34.33501981 +C 15.00000000 1.87799996 35.05786233 +C 15.00000000 4.38199991 35.05786233 +C 15.00000000 1.87799996 36.50354738 +C 15.00000000 4.38199991 36.50354738 +C 15.00000000 0.62599999 37.22638990 +C 15.00000000 3.12999994 37.22638990 +C 15.00000000 0.62599999 38.67207494 +C 15.00000000 3.12999994 38.67207494 +C 15.00000000 1.87799996 39.39491746 +C 15.00000000 4.38199991 39.39491746 +C 15.00000000 1.87799996 40.84060251 +C 15.00000000 4.38199991 40.84060251 +C 15.00000000 0.62599999 41.56344503 +C 15.00000000 3.12999994 41.56344503 +C 15.00000000 0.62599999 43.00913008 +C 15.00000000 3.12999994 43.00913008 +C 15.00000000 1.87799996 43.73197259 +C 15.00000000 4.38199991 43.73197259 +C 15.00000000 1.87799996 45.17765764 +C 15.00000000 4.38199991 45.17765764 +C 15.00000000 0.62599999 45.90050016 +C 15.00000000 3.12999994 45.90050016 +C 15.00000000 0.62599999 47.34618520 +C 15.00000000 3.12999994 47.34618520 +C 15.00000000 1.87799996 48.06902772 +C 15.00000000 4.38199991 48.06902772 +C 15.00000000 1.87799996 49.51471277 +C 15.00000000 4.38199991 49.51471277 +C 15.00000000 0.62599999 50.23755529 +C 15.00000000 3.12999994 50.23755529 +C 15.00000000 0.62599999 51.68324034 +C 15.00000000 3.12999994 51.68324034 diff --git a/examples/graphene/struct.xyz b/examples/graphene/struct.xyz new file mode 100644 index 0000000..dec88c7 --- /dev/null +++ b/examples/graphene/struct.xyz @@ -0,0 +1,50 @@ + 48 +Lattice="30.00000000 0.00000000 0.00000000 0.00000000 5.00799990 0.00000000 0.00000000 0.00000000 26.02233080 " nsc="1 1 1" pbc="T T T" boundary_condition="PERIODIC PERIODIC PERIODIC PERIODIC PERIODIC PERIODIC" +C 15.00000000 1.87799996 0.36142126 +C 15.00000000 4.38199991 0.36142126 +C 15.00000000 1.87799996 1.80710631 +C 15.00000000 4.38199991 1.80710631 +C 15.00000000 0.62599999 2.52994883 +C 15.00000000 3.12999994 2.52994883 +C 15.00000000 0.62599999 3.97563387 +C 15.00000000 3.12999994 3.97563387 +C 15.00000000 1.87799996 4.69847639 +C 15.00000000 4.38199991 4.69847639 +C 15.00000000 1.87799996 6.14416144 +C 15.00000000 4.38199991 6.14416144 +C 15.00000000 0.62599999 6.86700396 +C 15.00000000 3.12999994 6.86700396 +C 15.00000000 0.62599999 8.31268901 +C 15.00000000 3.12999994 8.31268901 +C 15.00000000 1.87799996 9.03553153 +C 15.00000000 4.38199991 9.03553153 +C 15.00000000 1.87799996 10.48121658 +C 15.00000000 4.38199991 10.48121658 +C 15.00000000 0.62599999 11.20405910 +C 15.00000000 3.12999994 11.20405910 +C 15.00000000 0.62599999 12.64974414 +C 15.00000000 3.12999994 12.64974414 +C 15.00000000 1.87799996 13.37258666 +C 15.00000000 4.38199991 13.37258666 +C 15.00000000 1.87799996 14.81827171 +C 15.00000000 4.38199991 14.81827171 +C 15.00000000 0.62599999 15.54111423 +C 15.00000000 3.12999994 15.54111423 +C 15.00000000 0.62599999 16.98679928 +C 15.00000000 3.12999994 16.98679928 +C 15.00000000 1.87799996 17.70964179 +C 15.00000000 4.38199991 17.70964179 +C 15.00000000 1.87799996 19.15532684 +C 15.00000000 4.38199991 19.15532684 +C 15.00000000 0.62599999 19.87816936 +C 15.00000000 3.12999994 19.87816936 +C 15.00000000 0.62599999 21.32385440 +C 15.00000000 3.12999994 21.32385440 +C 15.00000000 1.87799996 22.04669692 +C 15.00000000 4.38199991 22.04669692 +C 15.00000000 1.87799996 23.49238197 +C 15.00000000 4.38199991 23.49238197 +C 15.00000000 0.62599999 24.21522449 +C 15.00000000 3.12999994 24.21522449 +C 15.00000000 0.62599999 25.66090954 +C 15.00000000 3.12999994 25.66090954 diff --git a/examples/graphene/train/data/POSCAR b/examples/graphene/train/data/POSCAR new file mode 100644 index 0000000..22a41d8 --- /dev/null +++ b/examples/graphene/train/data/POSCAR @@ -0,0 +1,10 @@ +C + 1.0000000000000000 + 2.5039999485000002 0.0000000000000000 0.0000000000000000 + -1.2519999743000001 2.1685275664999999 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 30.0000000000000000 + C + 2 +Cartesian + -0.0000000012853333 1.4456850884267272 15.0000000000000000 + 1.2519999003653348 0.7228424780732728 15.0000000000000000 diff --git a/examples/graphene/train/data/kpath.0/band_structure.png b/examples/graphene/train/data/kpath.0/band_structure.png new file mode 100644 index 0000000..8d1e9a6 Binary files /dev/null and b/examples/graphene/train/data/kpath.0/band_structure.png differ diff --git a/examples/graphene/train/data/kpath.0/eigenvalues.npy b/examples/graphene/train/data/kpath.0/eigenvalues.npy new file mode 100644 index 0000000..deee94b Binary files /dev/null and b/examples/graphene/train/data/kpath.0/eigenvalues.npy differ diff --git a/examples/graphene/train/data/kpath.0/info.json b/examples/graphene/train/data/kpath.0/info.json new file mode 100644 index 0000000..cb9046c --- /dev/null +++ b/examples/graphene/train/data/kpath.0/info.json @@ -0,0 +1,12 @@ +{ + "nframes": 1, + "natoms": 2, + "pos_type": "ase", + "pbc": true, + "bandinfo": { + "band_min": 0, + "band_max": 8, + "emin": null, + "emax": null + } +} diff --git a/examples/graphene/train/data/kpath.0/kpoints.npy b/examples/graphene/train/data/kpath.0/kpoints.npy new file mode 100644 index 0000000..747b537 Binary files /dev/null and b/examples/graphene/train/data/kpath.0/kpoints.npy differ diff --git a/examples/graphene/train/data/kpath.0/xdat.traj b/examples/graphene/train/data/kpath.0/xdat.traj new file mode 100644 index 0000000..9d6bd8c Binary files /dev/null and b/examples/graphene/train/data/kpath.0/xdat.traj differ diff --git a/examples/graphene/train/input.json b/examples/graphene/train/input.json new file mode 100644 index 0000000..818d7f1 --- /dev/null +++ b/examples/graphene/train/input.json @@ -0,0 +1,71 @@ +{ + "common_options": { + "basis": { + "C": [ + "2s", + "2p", + "d*" + ] + }, + "device": "cpu", + "dtype": "float32", + "overlap": true, + "seed": 3982377700 + }, + "train_options": { + "num_epoch": 3000, + "batch_size": 1, + "optimizer": { + "lr": 0.01, + "type": "Adam" + }, + "lr_scheduler": { + "type": "exp", + "gamma": 0.9995 + }, + "loss_options": { + "train": { + "method": "eigvals", + "diff_on": false, + "eout_weight": 0.001, + "diff_weight": 0.01 + } + }, + "save_freq": 1, + "validation_freq": 10, + "display_freq": 100, + "ref_batch_size": 1, + "val_batch_size": 1, + "max_ckpt": 4 + }, + "model_options": { + "nnsk": { + "onsite": { + "method": "uniform" + }, + "hopping": { + "method": "poly4pow", + "rs": { + "C-C": 4.39 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": [ + "overlap" + ], + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "data_options": { + "train": { + "root": "./data", + "prefix": "kpath", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + } + } +} \ No newline at end of file diff --git a/examples/graphene/train/train_out/checkpoint/nnsk.best.pth b/examples/graphene/train/train_out/checkpoint/nnsk.best.pth new file mode 120000 index 0000000..3fe8729 --- /dev/null +++ b/examples/graphene/train/train_out/checkpoint/nnsk.best.pth @@ -0,0 +1 @@ +/personal/DeepTB/dptb_Zjj/dpnegf/examples/graphene/train/train_out/checkpoint/nnsk.ep3000.pth \ No newline at end of file diff --git a/examples/graphene/train/train_out/checkpoint/nnsk.ep3000.pth b/examples/graphene/train/train_out/checkpoint/nnsk.ep3000.pth new file mode 100644 index 0000000..9ccc3fc Binary files /dev/null and b/examples/graphene/train/train_out/checkpoint/nnsk.ep3000.pth differ diff --git a/examples/hBN/band.json b/examples/hBN/band.json new file mode 100644 index 0000000..b60fe88 --- /dev/null +++ b/examples/hBN/band.json @@ -0,0 +1,18 @@ +{ + "structure":"train/data/POSCAR", + "task_options": { + "task": "band", + "kline_type":"abacus", + "kpath":[ + [0, 0, 0, 50], + [0.5, 0, 0, 50], + [0.3333333, 0.3333333, 0, 50], + [0, 0, 0, 1] + ], + "nkpoints":151, + "klabels":["G", "M", "K", "G"], + "emin":-25, + "emax":20, + "nel_atom":{"B":3,"N":5} + } +} \ No newline at end of file diff --git a/examples/hBN/extra_baseline/bn_spds.json b/examples/hBN/extra_baseline/bn_spds.json new file mode 100644 index 0000000..3a372fc --- /dev/null +++ b/examples/hBN/extra_baseline/bn_spds.json @@ -0,0 +1,16 @@ +{ + "common_options": { + "basis": { + "B": [ + "2s", + "2p", + "d*" + ], + "N": [ + "2s", + "2p", + "d*" + ] + } + } +} \ No newline at end of file diff --git a/examples/hBN/extra_baseline/hbn_spd_model/sktb.json b/examples/hBN/extra_baseline/hbn_spd_model/sktb.json new file mode 100644 index 0000000..9ca6084 --- /dev/null +++ b/examples/hBN/extra_baseline/hbn_spd_model/sktb.json @@ -0,0 +1,477 @@ +{ + "version": 2, + "unit": "eV", + "model_options": { + "nnsk": { + "onsite": { + "method": "uniform" + }, + "hopping": { + "method": "poly2pow", + "rs": { + "B-B": 4.22, + "B-N": 4.04, + "N-B": 4.04, + "N-N": 3.85 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": false, + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "common_options": { + "basis": { + "B": [ + "2s", + "2p", + "d*" + ], + "N": [ + "2s", + "2p", + "d*" + ] + }, + "dtype": "float32", + "device": "cuda", + "overlap": true + }, + "model_params": { + "onsite": { + "B-2s-0": [ + -0.05371570587158203 + ], + "B-2p-0": [ + 0.11017870903015137 + ], + "B-d*-0": [ + 0.0 + ], + "N-2s-0": [ + -0.15561676025390625 + ], + "N-2p-0": [ + 0.1445450782775879 + ], + "N-d*-0": [ + 0.0 + ] + }, + "hopping": { + "B-B-2s-2s-0": [ + -4.038558483123779, + -1.199519157409668, + 2.6829679012298584, + -1.6895099878311157 + ], + "B-B-2s-2p-0": [ + -4.128350734710693, + -1.6135889291763306, + 2.751228094100952, + -1.3629639148712158 + ], + "B-B-2s-d*-0": [ + 0.0017082728445529938, + -0.00010188308078795671, + 0.000718078576028347, + 0.37305518984794617 + ], + "B-B-2p-2p-0": [ + 3.9094669818878174, + 1.5527981519699097, + -2.3236680030822754, + 0.9059035181999207 + ], + "B-B-2p-2p-1": [ + -1.7056468725204468, + -0.2540814280509949, + 1.0908770561218262, + -2.4367024898529053 + ], + "B-B-2p-d*-0": [ + -0.0017082728445529938, + 0.00010188308078795671, + -0.000718078576028347, + -0.37305518984794617 + ], + "B-B-2p-d*-1": [ + 0.0017082728445529938, + -0.00010188308078795671, + 0.000718078576028347, + -0.37305518984794617 + ], + "B-B-d*-d*-0": [ + -0.0017082728445529938, + 0.00010188308078795671, + -0.000718078576028347, + 0.37305518984794617 + ], + "B-B-d*-d*-1": [ + -0.0017082728445529938, + 0.00010188308078795671, + -0.000718078576028347, + -0.37305518984794617 + ], + "B-B-d*-d*-2": [ + -0.0017082728445529938, + 0.00010188308078795671, + -0.000718078576028347, + -0.37305518984794617 + ], + "N-B-2s-2s-0": [ + -5.041027069091797, + 3.3467164039611816, + 0.5421984195709229, + 0.0005886993603780866 + ], + "N-B-2p-2s-0": [ + -4.393885612487793, + -2.106684923171997, + 3.2828798294067383, + -1.4983776807785034 + ], + "N-B-d*-2s-0": [ + -0.0023875299375504255, + -0.0005914703942835331, + -0.0028732563368976116, + -0.4312877655029297 + ], + "N-B-2p-2p-0": [ + 4.577764511108398, + 2.0131304264068604, + -2.9041666984558105, + 1.1945785284042358 + ], + "N-B-2p-2p-1": [ + -1.9847829341888428, + 2.879638671875, + -1.1304956674575806, + -0.03383827209472656 + ], + "N-B-d*-2p-0": [ + -0.0023875299375504255, + -0.0005914703942835331, + -0.0028732563368976116, + -0.4312877655029297 + ], + "N-B-d*-2p-1": [ + -0.0023875299375504255, + -0.0005914703942835331, + -0.0028732563368976116, + -0.4312877655029297 + ], + "N-B-d*-d*-0": [ + 0.0012587409000843763, + 0.0005593118839897215, + 0.0009227871196344495, + 0.4214722514152527 + ], + "N-B-d*-d*-1": [ + 0.0012587409000843763, + 0.0005593118839897215, + 0.0009227871196344495, + -0.4214722514152527 + ], + "N-B-d*-d*-2": [ + 0.0012587409000843763, + 0.0005593118839897215, + 0.0009227871196344495, + 0.4214722514152527 + ], + "N-B-2s-2p-0": [ + -5.908745288848877, + 2.9499411582946777, + 1.29582941532135, + -0.0018063357565551996 + ], + "N-B-2s-d*-0": [ + 0.0009504631161689758, + -0.00042798847425729036, + 0.0015698844799771905, + 0.4099060297012329 + ], + "N-B-2p-d*-0": [ + 0.0009504631161689758, + -0.00042798847425729036, + 0.0015698844799771905, + 0.4099060297012329 + ], + "N-B-2p-d*-1": [ + -0.0009504631161689758, + 0.00042798847425729036, + -0.0015698844799771905, + -0.4099060297012329 + ], + "N-N-2s-2s-0": [ + -5.928829193115234, + -2.148087739944458, + 5.178451061248779, + 2.231917142868042 + ], + "N-N-2s-2p-0": [ + -6.170498847961426, + 3.439049482345581, + 1.229480504989624, + 0.0035096562933176756 + ], + "N-N-2s-d*-0": [ + 0.0012703586835414171, + -0.00015861238352954388, + 0.001094977604225278, + 0.5266291499137878 + ], + "N-N-2p-2p-0": [ + 5.38631010055542, + 2.6419241428375244, + -3.6682467460632324, + -1.4427080154418945 + ], + "N-N-2p-2p-1": [ + -2.285525321960449, + 3.412506341934204, + -1.3955022096633911, + 0.20774821937084198 + ], + "N-N-2p-d*-0": [ + 0.001571853761561215, + -2.4328939616680145e-05, + -0.0001450164709240198, + 0.5258426070213318 + ], + "N-N-2p-d*-1": [ + 0.0012703586835414171, + -0.00015861238352954388, + 0.001094977604225278, + 0.5266291499137878 + ], + "N-N-d*-d*-0": [ + 0.0012703586835414171, + -0.00015861238352954388, + 0.001094977604225278, + 0.5266291499137878 + ], + "N-N-d*-d*-1": [ + 0.001571853761561215, + -2.4328939616680145e-05, + -0.0001450164709240198, + 0.5258426070213318 + ], + "N-N-d*-d*-2": [ + 0.0005028393352404237, + -0.001955810934305191, + -0.0007955109467729926, + 0.5363121032714844 + ] + }, + "overlap": { + "B-B-2s-2s-0": [ + 0.20485031604766846, + -0.17363706231117249, + 0.006893493700772524, + -0.0032229996286332607 + ], + "B-B-2s-2p-0": [ + 0.24623462557792664, + 0.06719570606946945, + -0.18939271569252014, + -1.784712791442871 + ], + "B-B-2s-d*-0": [ + -0.0014473807532340288, + -0.000488920253701508, + -0.0011009315494447947, + 0.26260989904403687 + ], + "B-B-2p-2p-0": [ + -0.2841918468475342, + -0.12392652779817581, + 0.24365650117397308, + -1.409106969833374 + ], + "B-B-2p-2p-1": [ + 0.10009986162185669, + -0.1610490381717682, + 0.0626494288444519, + 0.004236152861267328 + ], + "B-B-2p-d*-0": [ + -0.0014473807532340288, + -0.000488920253701508, + -0.0011009315494447947, + -0.26260989904403687 + ], + "B-B-2p-d*-1": [ + 0.0014473807532340288, + 0.000488920253701508, + 0.0011009315494447947, + -0.26260989904403687 + ], + "B-B-d*-d*-0": [ + -0.0014473807532340288, + -0.000488920253701508, + -0.0011009315494447947, + -0.26260989904403687 + ], + "B-B-d*-d*-1": [ + -0.0014473807532340288, + -0.000488920253701508, + -0.0011009315494447947, + -0.26260989904403687 + ], + "B-B-d*-d*-2": [ + -0.0014473807532340288, + -0.000488920253701508, + -0.0011009315494447947, + -0.26260989904403687 + ], + "N-B-2s-2s-0": [ + 0.19150348007678986, + -0.17817053198814392, + 0.014571275562047958, + -0.001921347575262189 + ], + "N-B-2p-2s-0": [ + 0.22621256113052368, + 0.08030299842357635, + -0.1885663866996765, + 1.6908323764801025 + ], + "N-B-d*-2s-0": [ + 0.0011789548443630338, + -0.001103704096749425, + 0.0007307003252208233, + -0.34559008479118347 + ], + "N-B-2p-2p-0": [ + -0.2685352563858032, + -0.13696980476379395, + 0.24854600429534912, + 1.37538743019104 + ], + "N-B-2p-2p-1": [ + 0.0985078290104866, + -0.16014429926872253, + 0.0642596036195755, + 0.0005193660035729408 + ], + "N-B-d*-2p-0": [ + 0.0011789548443630338, + -0.001103704096749425, + 0.0007307003252208233, + 0.34559008479118347 + ], + "N-B-d*-2p-1": [ + -0.0011789548443630338, + 0.001103704096749425, + -0.0007307003252208233, + 0.34559008479118347 + ], + "N-B-d*-d*-0": [ + -0.0010213993955403566, + -0.0007757929270155728, + -0.0015712291933596134, + 0.3408437669277191 + ], + "N-B-d*-d*-1": [ + -0.0010213993955403566, + -0.0007757929270155728, + -0.0015712291933596134, + -0.3408437669277191 + ], + "N-B-d*-d*-2": [ + 0.0010213993955403566, + 0.0007757929270155728, + 0.0015712291933596134, + -0.3408437669277191 + ], + "N-B-2s-2p-0": [ + 0.2480807900428772, + -0.14911773800849915, + -0.05014884099364281, + 0.003565874882042408 + ], + "N-B-2s-d*-0": [ + -0.001136684324592352, + -0.002417572308331728, + -0.0016107913106679916, + 0.33359917998313904 + ], + "N-B-2p-d*-0": [ + -0.001136684324592352, + -0.002417572308331728, + -0.0016107913106679916, + -0.33359917998313904 + ], + "N-B-2p-d*-1": [ + -0.001136684324592352, + -0.002417572308331728, + -0.0016107913106679916, + -0.33359917998313904 + ], + "N-N-2s-2s-0": [ + 0.18359141051769257, + -0.2061317414045334, + 0.04202547296881676, + -0.00020195427350699902 + ], + "N-N-2s-2p-0": [ + 0.23071497678756714, + -0.13267643749713898, + -0.055204350501298904, + -0.0023973402567207813 + ], + "N-N-2s-d*-0": [ + 0.0016565254190936685, + 0.0014474809868261218, + 0.00041490281000733376, + -0.45187631249427795 + ], + "N-N-2p-2p-0": [ + -0.2622714042663574, + -0.1595517098903656, + 0.2705942988395691, + 1.4069056510925293 + ], + "N-N-2p-2p-1": [ + 0.10322311520576477, + -0.17261548340320587, + 0.073711097240448, + 0.000982851255685091 + ], + "N-N-2p-d*-0": [ + -0.0016565254190936685, + -0.0014474809868261218, + -0.00041490281000733376, + 0.45187631249427795 + ], + "N-N-2p-d*-1": [ + -0.0016565254190936685, + -0.0014474809868261218, + -0.00041490281000733376, + -0.45187631249427795 + ], + "N-N-d*-d*-0": [ + -0.0016565254190936685, + -0.0014474809868261218, + -0.00041490281000733376, + 0.45187631249427795 + ], + "N-N-d*-d*-1": [ + -0.0016565254190936685, + -0.0014474809868261218, + -0.00041490281000733376, + 0.45187631249427795 + ], + "N-N-d*-d*-2": [ + -0.0016565254190936685, + -0.0014474809868261218, + -0.00041490281000733376, + 0.45187631249427795 + ] + } + } +} \ No newline at end of file diff --git a/examples/hBN/extra_baseline/input_templete.json b/examples/hBN/extra_baseline/input_templete.json new file mode 100644 index 0000000..172ac9a --- /dev/null +++ b/examples/hBN/extra_baseline/input_templete.json @@ -0,0 +1,93 @@ +{ + "common_options": { + "basis": { + "B": [ + "2s", + "2p", + "d*" + ], + "N": [ + "2s", + "2p", + "d*" + ] + }, + "device": "cpu", + "dtype": "float32", + "overlap": true, + "seed": 3982377700 + }, + "train_options": { + "num_epoch": 2, + "batch_size": 1, + "optimizer": { + "lr": 0.01, + "type": "Adam" + }, + "lr_scheduler": { + "type": "exp", + "gamma": 0.999 + }, + "loss_options": { + "train": { + "method": "eigvals", + "diff_on": false, + "eout_weight": 0.001, + "diff_weight": 0.01 + } + }, + "save_freq": 1, + "validation_freq": 10, + "display_freq": 100, + "ref_batch_size": 1, + "val_batch_size": 1, + "max_ckpt": 4 + }, + "model_options": { + "nnsk": { + "onsite": { + "method": "uniform" + }, + "hopping": { + "method": "poly2pow", + "rs": { + "B-B": 4.22, + "B-N": 4.04, + "N-B": 4.04, + "N-N": 3.85 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": [ + "overlap" + ], + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "data_options": { + "train": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + }, + "validation": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + }, + "reference": { + "root": "path/to/dataset", + "prefix": "prexfix_for_dataset", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + } + } +} \ No newline at end of file diff --git a/examples/hBN/train/data/POSCAR b/examples/hBN/train/data/POSCAR new file mode 100644 index 0000000..2671929 --- /dev/null +++ b/examples/hBN/train/data/POSCAR @@ -0,0 +1,10 @@ +N B + 1.0000000000000000 + 2.5039999485000002 0.0000000000000000 0.0000000000000000 + -1.2519999743000001 2.1685275664999999 0.0000000000000000 + 0.0000000000000000 0.0000000000000000 30.0000000000000000 + N B + 1 1 +Cartesian + -0.0000000012853333 1.4456850884267272 15.0000000000000000 + 1.2519999003653348 0.7228424780732728 15.0000000000000000 diff --git a/examples/hBN/train/data/kpath.0/band_structure.png b/examples/hBN/train/data/kpath.0/band_structure.png new file mode 100644 index 0000000..3d641f1 Binary files /dev/null and b/examples/hBN/train/data/kpath.0/band_structure.png differ diff --git a/examples/hBN/train/data/kpath.0/eigenvalues.npy b/examples/hBN/train/data/kpath.0/eigenvalues.npy new file mode 100644 index 0000000..3d45c9e Binary files /dev/null and b/examples/hBN/train/data/kpath.0/eigenvalues.npy differ diff --git a/examples/hBN/train/data/kpath.0/info.json b/examples/hBN/train/data/kpath.0/info.json new file mode 100644 index 0000000..cb9046c --- /dev/null +++ b/examples/hBN/train/data/kpath.0/info.json @@ -0,0 +1,12 @@ +{ + "nframes": 1, + "natoms": 2, + "pos_type": "ase", + "pbc": true, + "bandinfo": { + "band_min": 0, + "band_max": 8, + "emin": null, + "emax": null + } +} diff --git a/examples/hBN/train/data/kpath.0/kpoints.npy b/examples/hBN/train/data/kpath.0/kpoints.npy new file mode 100644 index 0000000..747b537 Binary files /dev/null and b/examples/hBN/train/data/kpath.0/kpoints.npy differ diff --git a/examples/hBN/train/data/kpath.0/xdat.traj b/examples/hBN/train/data/kpath.0/xdat.traj new file mode 100644 index 0000000..0cf248d Binary files /dev/null and b/examples/hBN/train/data/kpath.0/xdat.traj differ diff --git a/examples/hBN/train/input.json b/examples/hBN/train/input.json new file mode 100644 index 0000000..eb04861 --- /dev/null +++ b/examples/hBN/train/input.json @@ -0,0 +1,79 @@ +{ + "common_options": { + "basis": { + "B": [ + "2s", + "2p", + "d*" + ], + "N": [ + "2s", + "2p", + "d*" + ] + }, + "device": "cpu", + "dtype": "float32", + "overlap": true, + "seed": 3982377700 + }, + "train_options": { + "num_epoch": 5000, + "batch_size": 1, + "optimizer": { + "lr": 0.01, + "type": "Adam" + }, + "lr_scheduler": { + "type": "exp", + "gamma": 0.9995 + }, + "loss_options": { + "train": { + "method": "eigvals", + "diff_on": false, + "eout_weight": 0.001, + "diff_weight": 0.01 + } + }, + "save_freq": 1, + "validation_freq": 10, + "display_freq": 100, + "ref_batch_size": 1, + "val_batch_size": 1, + "max_ckpt": 4 + }, + "model_options": { + "nnsk": { + "onsite": { + "method": "strain" + }, + "hopping": { + "method": "poly2pow", + "rs": { + "B-B": 4.22, + "B-N": 4.04, + "N-B": 4.04, + "N-N": 3.85 + }, + "w": 0.2 + }, + "soc": {}, + "freeze": [ + "overlap" + ], + "push": false, + "std": 0.01, + "atomic_radius": "cov" + } + }, + "data_options": { + "train": { + "root": "./data", + "prefix": "kpath", + "get_eigenvalues": true, + "type": "DefaultDataset", + "get_Hamiltonian": false + } + } +} \ No newline at end of file