Skip to content

Instantly share code, notes, and snippets.

@greglandrum
Created December 20, 2024 16:29
Show Gist options
  • Save greglandrum/8c486a90f84f63d61e2d7b037fc58569 to your computer and use it in GitHub Desktop.
Save greglandrum/8c486a90f84f63d61e2d7b037fc58569 to your computer and use it in GitHub Desktop.
rotate_a_bond.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "cc5a5d8b",
"metadata": {},
"outputs": [],
"source": [
"from rdkit import Chem\n",
"from rdkit.Chem.Draw import IPythonConsole\n",
"from rdkit.Chem import rdDistGeom\n",
"from rdkit.Chem import rdMolTransforms"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f8be464f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x731fa530f220>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"IPythonConsole.drawOptions.addAtomIndices = True\n",
"IPythonConsole.drawOptions.addBondIndices = False\n",
"\n",
"IPythonConsole.molSize = 350,300\n",
"m = Chem.MolFromSmiles('c1cccc(O)c1C(=O)O')\n",
"mh = Chem.AddHs(m)\n",
"mh"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5f215645",
"metadata": {},
"outputs": [
{
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_1734711387671452\" style=\"position: relative; width: 400px; height: 400px;\">\n <p id=\"3dmolwarning_1734711387671452\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n //this is to ignore the existence of requirejs amd\n var savedexports, savedmodule;\n if (typeof exports !== 'undefined') savedexports = exports;\n else exports = {}\n if (typeof module !== 'undefined') savedmodule = module;\n else module = {}\n\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n exports = savedexports;\n module = savedmodule;\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n}\n\nvar viewer_1734711387671452 = null;\nvar warn = document.getElementById(\"3dmolwarning_1734711387671452\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_1734711387671452 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_1734711387671452\"),{backgroundColor:\"white\"});\nviewer_1734711387671452.zoomTo();\n\tviewer_1734711387671452.removeAllModels();\n\tviewer_1734711387671452.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -0.2146 -1.1753 -0.7897 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5958 -1.1722 -0.8232 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2458 -0.1723 -0.1541 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5437 0.8069 0.5357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5138 -0.2197 -0.1153 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9692 -0.3291 -0.1528 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.5632 -1.2623 -0.7775 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.7992 0.5823 0.4938 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2929 -1.9572 -1.3130 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.1562 -1.9385 -1.3634 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3273 -0.1610 -0.1743 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.0730 1.5942 1.0621 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.6450 0.2832 0.9956 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n\tviewer_1734711387671452.setStyle({\"stick\": {}});\n\tviewer_1734711387671452.setBackgroundColor(\"0xeeeeee\");\n\tviewer_1734711387671452.zoomTo();\nviewer_1734711387671452.render();\n});\n</script>",
"text/html": [
"<div id=\"3dmolviewer_1734711387671452\" style=\"position: relative; width: 400px; height: 400px;\">\n",
" <p id=\"3dmolwarning_1734711387671452\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n",
" </div>\n",
"<script>\n",
"\n",
"var loadScriptAsync = function(uri){\n",
" return new Promise((resolve, reject) => {\n",
" //this is to ignore the existence of requirejs amd\n",
" var savedexports, savedmodule;\n",
" if (typeof exports !== 'undefined') savedexports = exports;\n",
" else exports = {}\n",
" if (typeof module !== 'undefined') savedmodule = module;\n",
" else module = {}\n",
"\n",
" var tag = document.createElement('script');\n",
" tag.src = uri;\n",
" tag.async = true;\n",
" tag.onload = () => {\n",
" exports = savedexports;\n",
" module = savedmodule;\n",
" resolve();\n",
" };\n",
" var firstScriptTag = document.getElementsByTagName('script')[0];\n",
" firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
"});\n",
"};\n",
"\n",
"if(typeof $3Dmolpromise === 'undefined') {\n",
"$3Dmolpromise = null;\n",
" $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n",
"}\n",
"\n",
"var viewer_1734711387671452 = null;\n",
"var warn = document.getElementById(\"3dmolwarning_1734711387671452\");\n",
"if(warn) {\n",
" warn.parentNode.removeChild(warn);\n",
"}\n",
"$3Dmolpromise.then(function() {\n",
"viewer_1734711387671452 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_1734711387671452\"),{backgroundColor:\"white\"});\n",
"viewer_1734711387671452.zoomTo();\n",
"\tviewer_1734711387671452.removeAllModels();\n",
"\tviewer_1734711387671452.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -0.2146 -1.1753 -0.7897 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5958 -1.1722 -0.8232 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2458 -0.1723 -0.1541 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5437 0.8069 0.5357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5138 -0.2197 -0.1153 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9692 -0.3291 -0.1528 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.5632 -1.2623 -0.7775 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.7992 0.5823 0.4938 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2929 -1.9572 -1.3130 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.1562 -1.9385 -1.3634 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3273 -0.1610 -0.1743 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.0730 1.5942 1.0621 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.6450 0.2832 0.9956 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_1734711387671452.setStyle({\"stick\": {}});\n",
"\tviewer_1734711387671452.setBackgroundColor(\"0xeeeeee\");\n",
"\tviewer_1734711387671452.zoomTo();\n",
"viewer_1734711387671452.render();\n",
"});\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV4AAAEsCAIAAAAEo0yHAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd1xT1/sH8CcQNiLIUEAQESd1gHtWxImzDhRxVBFXq1bbOqtWq1TpT0GsoypU1KqordZWi4hSFVRQ3II4QAQZEtk74/z+uDbfmFzCCjlJeN6v/hHuvcSPVT/c3HvuORxCCCCE0Me0aAdACKkirAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBoQQC6wGhBALrAaEEAusBqQ8UVFRY8eOtbGxkdr+7NkzGxubbt26UUmFWGE1ICVJTEw8evTo2LFj8/LyJLeLRCJfX18vL6+CggJa2ZAsrAakJB07dgwJCfHw8JDavm/fPi6X6+XlRSUVqgqXdgDUqGVkZPzwww/Xrl0rKiqinQV9BM8aEE2LFy9esmRJ+/btaQdB0rAaEDUXL148f/78y5cvFyxY4Ofn9/79+w0bNtAOhT7ADxSImg4dOoSFhTGvX716FR0d3a9fP7qRkBiHEEI7A2ospk+fnp6eHhMTM2TIkIkTJy5atEi86+7du1OmTElJSaEYD0nCakDK8/jx48rKSua1lZWVnZ2deFdpaemrV686d+5MKRqShtWAEGKBlyERQiywGhBCLLAaEEIs8OYlUrxff/1VIBCMHTu2RYsWsnsfPXoUGxtra2srO2gaqQ68DIkUz9DQsKys7Pr16wMHDpTd6+/vv2rVKjc3t6tXryo/G6oh/ECBEGKB1YAQYoHVgBBigdWAEGKB1YAQYoE3L1FDCQ0NjYqKkt0eExOj/DCotrAaUEMJDg6mHQHVHVYDaigbN27s0KGD7Pa//vrr+PHjys+DagWrATUUd3d31iFPb968wWpQfXgZEiHEAqsBIcQCqwEhxAKrASHEAqsBIcQC71AgxWvfvn1ZWZmhoSHrXnNz8/bt29vb2ys5FaoVnK8BIcQCP1CgBjFp0qTNmzfjSpbqC88akOLdv3/f1dXV1NT07du3VX2sQCoOzxqQ4u3evRsAfHx8sBfUF541IAXLy8tr2bJlWVnZs2fP2rVrRzsOqiM8a0AKFhwcXFpaOnLkSOwFtYbVgBSJEHLw4EEA+OKLL2hnQfWC1YAU6dHVq6mpqa1btx45ciTtLKhecMgTUqSugYGpJibJK1dqa2vTzoLqBS9DIsVJTYU2bYDLhTdvwMqKdhpULxr+geLdu3ebNm3q3LlzUlISs+XWrVuDBg2ytrYeMGBAdHQ03XiaZs8eEArBywt7QQNocjUIBIJZs2bp6OhkZ2eXlJQAQGVl5ZIlS7Zu3frmzZu5c+dOnDgRT5oUpqwMQkIAABYvph0FKYAmX2vgcrnh4eEA8MsvvzBbdHV179y5w+FwAKBfv34FBQWVlZV6eno0U2qMsDB4/x569YKePWlHQQqgydXAisPhvHr1Kjw8/NixY/7+/tgLCrN3LwAA3rPUFI2uGgCgsLAwJyeHw+GkpaXRzqIpysvB2RkyM8HTk3YUpBiN4g5Fq1atzp496+rqKrmxpKTE3Nz8wYMHrBOio7qorARdXdohkGI0urOGS5cujRgxAgAEAgGHwxEIBLQTqaG0NLh4EZ4+BR4PjIzAwQGGDIE+fbAXNImGnzUEBgbevHnzwoUL/fr169mz57p164YPH87lcrt27Xr16lVnZ+ewsDDaGdVKWRmsWAGHDoFspfbuDQcOQJcuNGIhxdPwanj8+HF2djbz2sTEpFevXiKR6Pr16+np6Y6Ojn379mXuVqAaqaiAoUMhOhp0dcHHB8aMgRYtoLQUbt2CoCBIT4emTSEyEnr0oB0UKYCGVwNSpFWrwN8fTE0hIkL6DmVhIXh4QEwMtG0Ljx6Bvj6liEhhNHnIE1Kk3Fz4+WcAgJ9+Yhm5YGICJ0+CsTG8eAG4aJ1GaLzVIBKJsrKysrKyqjpvKiwszMrKKiwsVHIwFXX+PJSWgpkZzJzJfkDLlh/uXJ44ocxcqIE03mpIT0+3tra2trbm8XisByxfvtza2nr16tVKDqaibt8GAOjTB+QMEhs8GAAgLg7wU6r6a7zVgGonPR0AwNFR3jFt2gAAFBYCnmqpP6wGVDPMtPHGxvKOadLkwwusBvWH1YBqxsgIAKC8XN4xpaUfXshvEKQOsBpQzVhaAvz3saIqzF49PTAxUUYk1JCwGlDNMAOZ7tyRd4kxLg4AwNUVcPY39dfonqGQ9eTJE1NTU9ntubm5yg+jujw84Kuv4M0b+PdfcHNjOaCi4sOIhrFjlRwNNQSsBhgyZAjtCOqgTRsYOxb+/BOWLoXoaGjaVPqAdes+jJWeN49GPqRgWA0wadIk1gldYmNjX716pfw8qmvPHoiJgSdPYMAA2LED3N0/fHB4+RI2b4ajRwEAdu/+cFVCxujRo2/dusW8DggImD17tpJiozrBaoB9+/ZZsv1t9vHxwWr4iK0tXLsG48bBkycwYgQYGUGLFlBcDMwDbAYGEBRU5VhJgKSkpBs3bjg7OysvMKoHrAZUG506wdOnEBIC587Bo0eQmgrGxuDqCsOGwRdfgJ2dnG/NzMy0trZWWlJUT1gNqJb09GDRIli0qFbfVFBQUFpa6u3t/fLly+7duwcGBrZo0aKBAiKFwJuXqDq3bsHQoZCZWZ/3aNq06cOHD48fP37//n1dXV1fX19FpUMNBKsByZWdDZMnw5UrcOhQPd+pS5cuZmZmxsbGCxYsiImJUUg61HCwGlDVRCKYORMyMuDTT2HNmvq8U0FBwdWrV5nXt2/fbteunSLyoQaE1xpQ1davh8uXoXlzOH4cuPX6q/L8+fPPP//cxsbGyMjoxYsX586dU1RG1EAa7wRwAoEgJSUFABwdHVmXdX737l1BQYGpqSnrrU3Nd+ECjBsHHA6Eh8PQofV/P6FQ+Pz584KCAldXV12ce1rlNd5qqKHk5OSdO3cGBgZy6/djU828eQOurvD+PWzfDitX0k6DKGhMf91rjxAybty4p0+f2tjYrF27lnYcZamogEmT4P17GDMGvv2WdhpEB541VCMqKsrd3V1HR+fOnTtdGskiC4sWwf790KoVxMeDuTntNIgOvENRDTc3t8WLF1dWVs6ePZvP59OO0/BOnoT9+0FfH37/HXuhMcNqqJ6/v7+Tk9ODBw/8/PxoZ2lgSUkwfz4AQFAQdO9OOw2iCT9Q1EhMTMygQYO0tLRu377dXVP/zRQXQ+/ekJAA06fDb7/RToMow7OGGunfv/+SJUsEAsGsWbMqKipox2kYixZBQgJ88gkcPEg7CqIPq6Gm/Pz82rVrl5CQsGXLFtpZGsDu3XDsGBgbw6lTYGhIO43KycnJ8fLysrGx6dOnz++//047jjJgNdSUoaHh4cOHtbW1t23bdufOHdpxFCk2NvbMuXOgqwshIdCxI+04qsjHx0coFD58+NDPz2/OnDnp8qfP1QwE1cbXX38NAB07diwrK6OdpXovXrzo2bPnjBkz5BzD4/Hs7e0B4MB33yktmNrR09OLi4tjXo8fP37Hjh108ygBnjXUztatW52dnRMTEzdt2kQ7SzUIIYsWLXJyckpMTKzqGJFINHPmzDdv3vTu3Xv2+vXKjKderKyskpOTAUAgEABAamoq7UQNDquhdvT09IKDg7W1tf39/aOjo2nHkSc4OLiysnLWrFlyjtmyZcs///zTrFmzsLAwfK5BjoCAgEWLFg0ZMsTFxeXly5esD91oGtqnLWqJWSO3ffv2paWltLOwy8zMbN68eUJCQnh4ePfu3VmPuXLlira2tpaWVnh4uJLjqaP8/PwHDx6UlJSMHj16165dtOM0OKyGuigvL+/cuTMAfPPNN7SzsJs4ceLGjRsJIVVVQ1paGvNE6aZNm5QdTp0lJSUZGBgkJSXRDtLgsBrq6N69ezo6OlpaWtevX6edRdpff/3F5XK///77bdu2zZ0719bW9siRI5IHVFZWDhgwAADc3d0FAgGtnGpk37593t7es2bNsrKyCgwMpB1HGfBaQx25uLisWrVKJBJ9/vnnxcXFtON8xMLCYsuWLfr6+lUdsHLlyujoaDs7u5MnTzaKj831NmvWrOnTp48fPz4+Pn7ZsmW04ygF7W5SG/fv39+6devOnTuTk5OZLZWVla6urgCwbNkyutnkkP1Ace7cOQ6Ho6OjEx0dTSsVUn141lAjJ06cYC715+TkuLi4MLcDdXR0QkJCdHV1d+/efe3aNdoZ2XXt2nXbtm3iL1+8eDF79mxCyM6dO/v3708xGFJ1tLtJPTx48ODt27fM65EjR0p+2ty4cSMAtG7durCwkFK6miotLXVxcQEAT09P2lmQqsNqqJ2HDx9aW1vfuXNHvIXP5/fo0QMAvvjiC4rBauLzzz8HgHbt2hUUFNDOglQdPpRdU4QQZ2fn5OTkOXPm7N27l8PhiHc9fvy4e/fuHA7H2tqauapnZmYm3svlcps0aSL+0sDAQPICYZMmTcSzTnI4HFNTU/EuHR0dY2Pjqr7RxMREfAVR/jcaGhrq6emdPn169erVRkZGsbGxuPAkqhbODVlTHA4nISGhoKBg2LBh+/btW7x4sXiXmZmZnp6ejo6OKo+fbdasGQDs378fe6G+ioshKgpSUqC4GJo0gXbtYNAgMDCgHUvBsBpqRCQSaWlpAUDTpk0HDx4cHx8vuWv27NnFxcVDhw7dv38/h8MhhOTn54sP4PP5knc3y8rKysvLxV8WFhYKhULmtfxvLC0tlZwqQvIbRSJRQUGBeFdlZWVJSYnUN+bl5QFAbm5unf8nICguho0bYe9ekPgTBAAwNoYVK2DdOtCkweZ0P8+oixUrVixduvTevXtXr161t7eXHEHEzApnZWWVlZVFMWG1/vrrLwAwNDR8+fIl7SzqKS+P9OxJAAiXS6ZMIT//TMLCyK5dZMwYwuEQADJkCFHVgfN1gNVQIwUFBWvWrBkwYMDw4cODg4PF2+/evaurq8vhcC5cuEAxXg15eXkBgJubm0gkop1FDXl5EQDSogW5d096V0QEMTYmAESFR7jUFlZD3RUXFzNrN3799de0s9QIj8dr3rw5AOzfv592FnXz4AEBIAAkMpL9gJCQDycUb94oN1lDwWqoO+Ze4CeffKIW07owwsLCAMDExCQ1NZV2FrWyfDkBID17VnmAQEDs7AgA+fFHJcZqQDgaso7OnDlz+PBhQ0PDU6dOST2tUFZWRitVtTw9PSdNmlRYWOjj40PwvnXN3bwJADBsWJUHaGvD8OH/O1L9YTXURXp6+oIFCwAgICCg48eTKT5+/NjBweE3lZms/dKlS1IVsG/fPktLy8jIyCNHjtBKpX5SUgAA2rWTd0z79gAAycnKyNPwsBpqjZk0LTc3d8KECfOZBV3+U1pa6unp+e7du9jYWFrxJM2ePXvkyJGHDx+W3Ghpabljxw4AWLZs2du3b+kkUzvMvWETE3nHMKPOJG4/qzfan2jUDzMrpK2tLY/Hk9rFNEWnTp1UZPanY8eOAUDTpk3T0tKkdo0fPx4AxowZQyWY+jExIQDk5El5xwQFEQDi5KSsTA0Lq6F24uLimBlcImWuVJ89exYA9PT0Hjx4QCUbqwkTJgDA6NGjpba/ffuWGc194sQJKsHUTOvWBIAEBck75rvvCADp3ZsQQtT/9jBWQy0UFRW1bdsWAFavXi21Kz093dzcHAB2795NJVtVMjIymAr47bffpHYdOHAAACwsLFR8sJZK+OwzAkDmzJF3zKhRBIAsXEgIIceOkU6dyMaN5L/ZPdQOVkMteHt7A0D37t0rKioktwuFQnd3dwAYOXKkCo4mOnToEACYm5tLVYBIJBo+fDgATJ06lVY2tbF3LwEg5uakqhvVWVlEV5cAkD/+IISQKVM+jIPQ0iKDB5ODB0lurvxfYfny5dra2sxsGrLy8/O1tbW1tbWVNpgVq6Gmjh49CgBGRkbPnj2T2vXjjz8CgJWVVWZmJpVs1RoxYgQATJkyRWr769evmadCf//9dyrB1EZBATE1JQBk5UqWvSIR8fYmAMTBgfD5hBBSUUHOnSOensTA4ENH6OmRCRNenj9f1SiYpUuXAkBV6wkxj8AAwIsXLxT2m5ILq6FGkpOTTUxMACAkJERql3is9N9//00lW02IK+DMmTNSu3bv3g0ALVq0eP/+PZVsauPw4Q//yFesIJLT9uTkkFmzCADhcEhEhPR3lZaSU6fImDFER4cA9HZ2NjQ0nDJlyvnz5/lMifwHq0H98Pn8vn37AsCkSZOkdhUXF7dv3x4Ali9fTiVbze3ZswcALC0t3717J7ldKBQOGjQIAKo6lUX/89NPREuLABB9fdK/Pxk/nvTpw/ybJ7q65OhRed+bmVmyZ0/v3r3FNwdbtGixbNmy2NhYZj9Wg/pZv349ALRs2VL25+qcOXNATcZKi0SioUOHAsDMmTOldiUnJxsZGQHAuXPnqGRTJ/fvk2nTiJnZhzMIAGJlRebOJTX+F/vixYtNmzYxP1EY7dq1KyoqwmpQMzdu3GCWeLp69arUrjNnzgCAvr7+o0ePqGSrreTkZGb2p7Nnz0rt+r//+z8AsLGxycvLo5JNzQiFJDubvHpFPj4Fq5UnT55s3LjRwcGhT58+BM8a1EteXp6DgwMAfCezinRaWhozb9K+ffuoZKubnTt3AoC1tXXuxxfMhUIhM8H0/PnzaWVTOaWlxN2dnD7doL+IUChkZiRmqmHKlCnv2Lx8+RKrQYUwExz07NmzsrJScrtQKHRzcwMADw8PFbxbKYdQKGTWrZo3b57UrsTERH19fQ6Hwzx20djx+WT0aAJA2rQhH9+rbiBMNVQLq4G+kJAQADA2Nn7+/LnUrs2bNzOn3zk5OVSy1cezZ8+YCpBdBXfLli0A4ODgoPoT5zcskYjMnUsAiIUFSUxUzq/JVIOVldUgNuJFQ7AaKHv58iVzt09qtUgiMVb68uXLVLLVHzNpXatWraQqQDxx/pIlS2hlUwnffEMAiKEhuXlTab8mXmtQA3w+n7nJJDtGSDxWeiXr0Bc1wefze/bsCWxrZzx8+FBXV1dLS+vatWtUstHn708AiI4OkTmralD1qYb09PQffvghPj6e+TItLW3Vf2Qvk9UQPpTNYv369bGxsXZ2dr/88ovUrkWLFr148cLV1fWHH36gkk0huFxucHCwrq7uvn37pJbk69Kly+rVq0Uika+vryrPSdNQfvsNVq0CDgcOHYIRI2inqZFvvvlm2LBhBw8evH37NrPlyZMn58+fd3R0dHR0lLxLWjt1axQNdu3aNW1tbS6XGxMTI7Xr1KlTUMVYaXUkXpKvuLhYcntFRUXnzp2Zv3O0stHx99+EyyUAJCBA+b94nc8amAtenp6ee/bsYbYEBwd7e3vXMw+eNXwkLy9v5syZQqFw/fr1/fr1k9yVlpbGzOy0a9euujexKvnuu+9cXFxSUlKYjhDT1dUNDQ3V0dHZuXNnTEwMrXjKFhsLU6eCQADr18NXX9FOUwsWFhZSW7KysioqKg4cOLB3796cnJy6vS1Ww0cWLlz45s2b/v37r1u3TnK7QCCYNm1aXl7exIkTfXx8aMVTLC6XGxISoqOjExAQEB0dLbnLxcVlxYoVIpFo3rx55VLLsWikhATw8ICSEpg/HzZvpp2mvlxdXa2srAQCQXx8fNeuXbOzs+vyLvU869AkzJWFpk2bpqSkSO3asGEDALRs2VJ2Zid1t3r1agBo37691Fjv8vLyTp06AdtwL0kXLlxwdXU1Nzd3cnISXwZTM2lpxN6eAJBx48jHjzwpUz3vUEh+oJA0YMCAus0hotRqEAqFQqGwqr0ikUgoFNIaQfTixQtmELHslCfR0dHMWOkrV65QydagysvLmVUw165dK7Xr1q1bzGWXu3fvsn7v3bt3mzZt+s8//wiFwnfv3kkNDFMPPB7p2JEAkE8/rXIuBqV48eJFVFRUYhXDKPh8flRUVFRUVFVzC0pWg0AgEG93c3MLkj85VRWUVw3i1Ryrqr3ly5cDwPTp05UWSayysrJXr17A9vRhfn4+M1Z63bp1yg+mHLdv32Yq4M6dO1K7li1bBgBdunRh/Wfv6+ur3iMgSkpIv34EgHTuXO1UKyorKSnp1KlTffv2nTdv3qlTp0Qi0YgRI7788svz589/9913zZs3r9s0InitAQBgzZo1cXFxjo6OQUFBUrsWL178+vXrHj16SF2r0yS9e/deunSpQCDw8fGprKyU3OXn5+fk5PTo0aNt27bJfuPz58+5XO6kSZNcXV1XrVoluVqv6uPz+fe++QZu3gRHR4iIADMz2onq6M2bN5GRkZ07d2amLAWA0NBQe3v7sLAwoVB49+7dFi1a1OV9Fd5hVVHZs4aIiAgtLS0ul3vr1i2pXcw07cbGxklJSUpOpWQlJSXMUK7vv/9ealdUVBSHw9HV1X38+LHULmdn55EjR8bFxSUlJfXq1Wvjxo1Kiitj7dq1jhImTpwo/3ihUMhM53d5zJiaP0/dqNS9GsrLy6Ue4E1NTX358qXk5xxJqlkNOTk51tbWALB161apXa9evWJmdgoNDVVmJFr+/fdfDofD5XLvySz3unDhQgBwcXGRmpjIzc1NvDjw7t27hwwZoqSsMkpKSnL/s2DBglWrVsk/fsWKFQBgYmKirpdOG15dqoHH423ZsqVFixbdu3dntuTk5Hz66afOzs7dunXr1KnTG7YVQVWzGsaNGwcAAwcOlGo0Pp/fp08fAJg8ebIy89C1ePFipgKkriwUFBTY29sDgL+/v+T2DRs2iH8+T5061dfXV3lZq1BQUGBhYSG77oYk5hESXV3dCNn52tB/6lINN2/e3Lt3b3BwsLgaLl26tGXLFua1l5fXl19+KftdKlgNP//8MwCYmpq+fv1aateaNWsAwM7OLldtr07VQXFxsaOjIwBs27ZNaldkZCSHw9HT03v69Kl447t379q2bdu/f/8BAwY4ODjI/m9UPn9/f9lprCQdOXKEw+FoaWmdOnVKaanUUd0/UISHh4urQZK/v7/sHIpEohqio6PT2fj6+iqzGp4+fWpgYAAAJ2WWJLp+/TpztzIqKko5YVTHlStXZCuAwcx217dvX8kzrIqKitjY2CtXrpSXlys3KYvKykp7e3vZD0Ri58+f53K5ALBr1y5lBlNH3LpcupTr33//HTJkiJwDmKlE5PP19b1//z7zukmTJswfp5ienp6hoaHkFi0traZNm0q9iZxvFAgEhw4dKisr8/HxmTp1quQx+fn5M2bMEAqFGzduHDx4cLVRNcyQIUPmzJkTEhLi4+PDDOgQ7woICLh8+fKtW7f27NkjnndEV1eXue+rCsLCwtq2bevi4sK69/bt29OmTRMIBJs2barhvCmNWp1LhfWsITQ0tG3btqyjMsRnDf379x/Khvk0y5w1SD2/0BDatGljbGwsOxViSkqKq6trv379+PQGxtGVn5/fsmVLAAiQecror7/+AgBDQ0OlzRpQKy4uLhcvXmTd9fjxY2YVr4XM6lKoOoo8azhw4MD27duvXLnCnKhX5fDhw05OTrLbV6xYERAQwLwODg4uKSlhXhcVFQkEAskjy8vLpZ4XFolEBcxaxhLkfGNlZeWRI0eKi4uDg4O//vpryWMcHBxu3bqVn58vdcbReDRt2nTv3r3jxo07cuTI0qVLtbT+N/hlzJgxXl5eJ06c8PDwGD9+vIWFhYWFhbmEZs2a6ejoUIl95cqV0tLSEWxPUqelpXl4eOTl5U2YMIG5wISqpZi//RUVFUuWLElISIiOjmbuBdZThw4d6v8m8g0bNszDw2P9+vXjx4+XqipdXV0rK6uGDqDKxo4de/z48QkTJkj2AmPSpElnzpzJzs5mJqGWpa+vbybBxsbG2traTIaNjY1iM9vb258/f142MI/HGzZsWFpampub28mTJyU/IiE56lINRUVFrVq14vP5ZWVlzZo1CwwMjI+PP3jwoImJCTMa38HB4d69e4qOqmCjRo2aMWPGsWPH5s2bx4zqoZ1ItTBT5krJysr68ssv+Xz+2LFj+/Tpk5OT8/4/ubm5zIvy8vLMzMzMzEz5729gYCA+17C0tBSfdEieg1haWspeQqoKM2RLSlFR0ciRI5OSkhwdHf/44w89Pb0avhuqSzU0adIkNzdXcsusWbN27dqloEgN4uHDh48ePbK1tXVzcxO3QGBg4OXLl69du3bw4MH58+fTTaj6BAKBp6dnVlaWu7v7qVOnqvrxW1ZWlvefzMzMjIyMPBmZmZl5eXnMnalqf119fX05px7MdktLS9kPMpWVlVOmTImPj2fC6+rq1v9/QuPRKD5Or1mz5s8//xw1alRQUJCtre3Zs2eZdjA3N9+1a9e0adO+/fbbUaNG2dnZ0U6q0lavXn3jxo2WLVueOHFCzmm5gYGBgYFBtZ8XSktLxWccPB7vvQwej8fj8QoLC8vLy5OTk5OTk+W/oampqYWFhampqZmZGbNGaUZGRnZ2trW1tbm5ObMezE8//VSX33mjpPnVQAixsrKKi4szNjYuLCy0srJKTExkZiIAgKlTp4aFhZ09e3bhwoUXLlygG1WV/f333zt37uRyuSdOnLC0tKz/GxoaGhoaGtakjsvKyuScfTDbeTxefn6++C6YmI6OzsWLFzkcTo8ePQICAqZNm9a9e/f6h28UlHYvREVGQ5qamt6/f19yS0ZGBnNbS3amBsR4/fo1s1TXzp07aWep0vv37yMiIphVy0ePHj1+/PjJkyeLZ5pgHpro2rWrWk4qQYPyqkEgEMTExMTExFS1co8ihRIAABC9SURBVGxKSkpMTIzsejAKFB4ebm9vL/uX4+DBgwBgbm6enZ3dcL+6miovL2d+0o4dO1b1l+piVtmRHVxTUlLCjAH/6aefaGVTL41oAriUlJRWrVpduHBBdpdIJBo+fDgAeHl5KT+YimMu0Do5OeXn59POUj0+n9+tWzdgm7QqPDwcAAwNDV++fEklm3ppLNUQFxfXpk2bY8eOVXVASkpKVatIN2YnTpwAAH19fTV6eDk2NpaZtEr2YQpmjoYhQ4ao/ukPdY2iGn755RczM7PQ0NBXr169evWqoKCA9TBmLKbsKtKN1rNnz5jV/Q4ePEg7S+0sWbIEAHr27Cn1rD2Px2OuoR49epRWNnWh+dVQWFjY/WO///4765G4kLyk4uJi5j6OOn7IKi4ubt26NbA9YRkaGorXlWpC86uhVsQLyeMkH7NmzQIAZ2dnqbWt1MXFixcBwMjIKDk5WWoXc11J/rQOCKtB2ubNmwHAwcGhqKiIdhZq9u7dCwDGxsayszaoEU9PTwAYNWqU1PaUlBQjIyMAuHTpEpVgagGrQRqfz2ce+P/6669pZ6HjwYMHzLOzR44coZ2lXrKyspgRK7Kz9fj7+wNAG0fHypISKtlUH1YDi/v37+vo6GhpacmuiKvx8vLymPv/X3zxBe0sCsCMWLGwsGDWjBXj8/lfjBr13sWFNLYlf2sMq4HdypUrAaBDhw6qMK+Z0ohEos8++4y5tq8Zv3GRSOTu7g4Ac+fOld734AHR0SHa2qSKtbkaOawGduXl5R07dgQAimsrKB9zms08nkQ7i8I8f/6cubR8+fJl6X1ff00ASNeuBEdPy8BqqNLNmzeZpWvkTEOqSW7duqWjo8PhcDRv0NfWrVsBoF+XLtKrWpaUEEdHAkBw9LQMrAZ5Fi1axDpyRvNkZ2fb2toCQLWLu6ijysrKXRMn8m1tyZo10vuuXCEcDjE0JDh6+mNYDfIUFhYyk9lq9jM5QqGQudXft29fjX0wMTaWaGsTLpfIngN6exMA4uZGcPS0BKyGajAjZwwMDFRzDmWFWL9+PQBYWVmlp6fTztKQliwhAKRnTyJ1DsjjEUtLAkDU/GatYmE1VG/GjBkA8Omnn2rkMzmRkZHMejyaPwC0uJi0bk0ASGCg9K7QUAJAzM0Jjp7+D1ZD9Xg8XvPmzQFg//79tLMoWFpaGvO4kXhdQg138SIBIEZGRPYWzPDhBIDMmEEjlirCaqiRsLAwADAxMWFd6VdN8fl8ZiUxd3d3jb/O+j+engSAyIyeJikpxMiIAJC//qIRS+VgNdQUMxbIw8ODdhCFYWbcs7OzkxopqOGysoiZGQEgMqOnib8/ASCtWpFG/PiMGFZDTWnYFJLnz5/ncDg6OjrR0dG0syjdoUMEgFhYEKlO5PNJ9+4EgDTWx2ckYTXUwqFDhzTjUf8XL14wS78Eyl6QawxEIuLuTgAIjp6uGlZDLWjGFJJlZWWurq4AMG7cOI2851Ijz58TAwPC4RDZ0dPffEMAiIsLEQppJFMVHEJI/Wesbzxev37duXPn4uLis2fPTpgwQfaAiIiI+/fvy3+TJk2aKHytXS0tLck14GxsbJgZq2T5+voeOnTIycnp7t27NV82TgP5+cG6ddC2LTx8CJILOJeWwqhR8M03MHYsvXAqgHY3qR/5U0guWLCA9h8pAMC4ceNYwx8/fhwA9PX1G8mDIfLw+aRbNwLAMnoa4VlDHYhEok8//TQ6OtrX1/fAgQNSe8+ePRsbGyv/HYqKigQCgcJTFRQUiL/s0aMH81y5pKdPn/bu3bukpCQ4OHju3LmKDaCW4uKgXz/gcCAuDlxcaKdRMbS7SS09e/ZM7aaQLCoqYqaBbej1wdTM0qUEgAwcSDuHysFqqKMffvgB1GoKyZkzZwLAJ598UoJTnkkqLCReXuTZs482vn1L1qwhPXoQU1PC4RALC9KvH/HzI3l5lFJSgNVQR3w+n7nOv2LFCtpZqvfzzz8DgLGxcUJCgnjj+fPnv/zyy+++++7169cUs6mco0eJoSEBIADEyoo4OX0YIgVAmjVjuaOhobAa6k5dppCMi4vT09ODj9dlOXTokLW19S+//LJ06VJLS8vGNSBSjj/+IBwOASCeniQx8cNGkYjExpKBAwkA0dUlsbFUIyoJXoasl1WrVvn7+7dp0yYoKEhXVxca5sakkZER8+Z1UFBQMHHixNevXy9ZsiQoKEi8vW3bttu3b584cSIAjBo1asiQId9++61i4qqv4mJo3Rp4PJg/H375RXpvZSWMGgVXr0KnTvD4MWhp0YioRLS7Sb2Vlpaam5u3aNGC9h+jPAYGBp06dZKcBjYvLw8AxDdft2/f7unpSel/oSrZu5cAEDMzUtWqPC9fEi0tAkD++Ue5yShQ8M+3xiYiIiI3N1dHR2fQoEHMD/aGuDFZUlJSWVlZ5+999+6dVCQej6elpWVqasp8aWZmxuPx6ptSA/zzDwDAZ5+BkRH7AW3awMCBcO0ahIfDyJHKjKZ8WA11l56ePm/ePELI9u3bv/rqK9px2FVUVLi6uiYkJPj5+W3atInZaG5uLhKJCgsLmdGQBQUF5ubmVGOqBmYYa48e8o7p2ROuXYN795STiCJN/7zUYEQi0ezZs3k83qhRo5YtW0Y7TpX09PSCg4O1tLT8/PzEI7jNzMzs7e1v3rzJfHnz5s1u3brRy6gycnIAAOR/PLS2BgBoBCdZWA11tHnz5qtXrzZv3vzXX3/lcDiSuzIzM/l8Pq1gsvr06bN48WKBQODj4yP+ZLF8+fKlS5f++eefP/7447///uvj40M3JH2EAPOnJv+Kr54eAEB5uTIiUYXVUBc3btzYsmWLlpbWsWPHmLnhGBERESNGjLC1tf37778pxpO1bds2R0fH+/fvBwYGMluWLVu2Zs2aEydOvH79+vr165K/i0aKwwETEwCAwkJ5hzGj0f+7TKPJaF8HVT+5ubmtWrUCgHXr1kntCggIuH79er9+/f744w8q2eSIjIzkcDgGBgbPnz+nnUVVMU9bbdok75jZswkAmThRWZmowbOGWps7d25qamqvXr02btwoteurr74aOHCgtrY2lWDyubu7z5w5s6yszNfXl+BgFlZ9+gAAREVVeYBI9GFv375KikQPVkPt7N69+9y5c6ampmFhYTo6OrTj1E5AQEDz5s2vXbsm+8AoAgDw9gYAuH69yhsQZ87AmzegowNeXsrMRQVWQy08efJk1apVALBv3z4HBwfacWqtWbNmu3fvBoCVK1empaXRjqN6BgyAoUNBJILp0yEjQ3rv48fw5ZcAAPPng62t8tMpGVZDTZWUlHh6epaVlS1cuHDatGm049TRlClTJk6cWFhYuHDhQtpZVNKvv4KDAyQlwSefwPr1cPUqxMdDeDgsWwa9ekFODvTsCdu3006pFLQvdqiNOXPmAICzs3O1DzUPHDhQBS9DimVmZmrS1NiK9/YtGTfuw6OWkv9paxNf38YzDz0+XlUjp0+f9vT01NfXj42N7dKlS1WHff/990FBQUVFRfr6+jY2NklJScoMWXMhISE+Pj7m5uYJCQlWVla046ikhAQID4fkZMjNBQsL6NgRPDygVSvasZQHq6F6ycnJrq6uBQUFBw4c8PX1pR1HMUaMGBERETF9+vTffvuNdhakirAaqsHn8wcNGnT79u1JkyadOXOGdhyFSU1N/eSTT4qLi8+dOzd+/HjacZDKwcuQ1Vi7du3t27ft7Ow07IZfq1atmDnsFi9enJ+fTzsOUjlYDfJcunRp586dXC735MmTzZo1ox1HwZYuXdq/f/+MjIzVq1fTzqJ+8vLyvv3226FDh06dOlX8oJpGoXwZVIVlZ2czc7T4+fnRztJQEhMTmamxLzeaKQ8VZdq0aTNnzkxNTT179myTJk2ysrJoJ1IwPGtgJxKJZsyYkZWVNXjwYNkFHTRGhw4d1q5dSwiZP39+SUkJ7Tjq5PHjx+7u7vb29uPGjeNwOCkpKbQTKZj2999/TzuDKjpw4EBQUJCVldXly5dNmAfyNFT//v3//vvvxMREPp8/bNgw2nHURkVFxYYNG/T19SMiIvT19ZcvX66lWbNFatRvRoFmzZq1cOHCw4cPWzNTd2guLpd74MABbW3tEydO4IlDzTk5OZmamsbExGzbtq1Vq1YikYh2IgVrdDcv+Xx+cXGx1OKxkpjJHeszibM6OnPmjLu7OzNKElWrsLDQ2tr6xo0brq6u2dnZgwYN+uqrrxYtWkQ7lyI1urOGS5cuNWvWrEOHDlUd4Obm1qxZs5CQEGWmom7y5MlPnjw5fvz4o0ePWA/Iz88/fvz48ePHG9vPElbFxcWlpaVt2rQBgObNm7u4uLx9+5Z2KAVrdNWAqrJjxw5vb+9Tp06x7k1NTfX29vb29lb4fNnqyMbGxsPDY9KkSceOHdu0aVNkZOSMGTNoh1IwnFEaobr4888/z5079/jx46ZNm96/f9/Ozo52IgXDakCoLrhc7uTJkydPnkw7SEPBDxQIIRZYDQghFo30A4VAIEhISGDdVd4IlhhAqFqNtBp4PJ6zszPtFKooNjZ2x44dstszMzOVHwZR1EirQV9ff/To0ay7rl69yiwk3ThFRkZGRkbSToHoa6TVYGpqWtW8LD169IiPj1dyHtUxZsyYzz77THZ7WloaPm7TqDTSakBV6dq169y5c2W3P3z4EKuhUcE7FAghFlgNCCEWWA0IIRZYDQghFlgNCCEWje4OxeDBg588eSJnketTp06VlZXZ2NgoM5UqsLS0tLOzMzU1Zd2rq6vLPFzI4XCUmwvR0ehmeUII1QR+oEAIsdDMaigqKgoKCjp69Kh4S05Ojp+f3z///EMxFUJqRAOr4fTp0927dz969Ojvv//ObAkMDBw0aNDx48cjIiLoZtMACQkJ79+/F39ZUVFx7dq1qKiosrIyiqmQwmlgNYwcOfLZs2eS0/vOmTMnMTGR9dEAVHMXLlwYNGhQly5dQkNDmS08Hq9bt27r1q3bsmWLs7Nzeno63YRIgTSwGpo0aSK1WEhV88qjWhEIBEFBQd7e3uItQUFBTk5ON27cuHLlSr9+/X766SeK8ZBiaWA1oAYyfvz4bt26SW65ePHijBkzmNuZM2bMuHjxIqVoSPGwGlDdZWRk2NraMq9tbW0zMjLo5kEKhNWA6s7AwKCiooJ5XV5ebmBgQDcPUiANrIbCwsLTp0/fvXv37du3p0+fzszMzMzMPH36dEJCwvPnz0+fPl1UVEQ7o4Zo3bp1YmIi8zopKcnR0ZFuHqRAGlgN5eXl8fHxJiYm7u7u8fHxhYWFBQUF8fHxbdu27dy5c3x8PE4MqyizZ8/evXt3RkYGj8fbsWPH559/TjsRUhgcKI1q6rffftuwYYP4yydPnujp6a1atSo0NFQkEk2fPn3nzp1cbqN7KkdTYTUghFho4AcKhFD9YTUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFhgNSCEWGA1IIRYYDUghFj8P4U9XiEsXmI7AAABYHpUWHRyZGtpdFBLTCByZGtpdCAyMDI1LjAzLjFwcmUAAHice79v7T0GIBAAYiYGCBCA4gZGNgcNIM3MQojmYADTTHBxBlRxGM0IphkYiaW5GRgzmBiZEpiYM5iYWRJYWBVY2DKY2NgV2Dk0mNg5FdgYEhi4QMqYeBiYeRlY+Rg4+RmcGIFa2RjYWID2iZ8CGQPFDALXD0bv21o4bf8Hba/9qxzP7BfnnLb/6b6g/a27+A80ZBrse39Odp/3zKP7H/b52R9W4bRnShff96TV0/7Baz57ucMi9juz79lnhMy1f9jBbG/0NWFfsfmbvcwCf+xlm1bsKy6X2SfCreKgN2nh/n9c7vsb1Ywd0vhF7V3O/7Hz+zPV7m3rr/0KAiv2d/7nPJCl+GO/Yuu6/fs+hRzQvqmyL6vQaF/bGpYDGrxn7P0/t9t3TyuwX66h5lDx2tN+mnumg/2/CXY8j+rsxQCTU2l1Nv5e9QAAAel6VFh0TU9MIHJka2l0IDIwMjUuMDMuMXByZQAAeJx9VEFuGzEMvPsV+kAWGpISxWNsB21RxAbatH/Ivf9Hh7txpVy6WsIUPaLI4WBPJZ8f1+/vf8q/R6+nUyn1P29ElN9aaz29lnTK+eXLt1u5vD2fH5HL/dft7WdBz7fm+ox9fru/PiIol/JUN4H16uUJG7yptYz5CFedhyWh2Fo0b3ZABU0SOkRF2oRqQmUTIzQSQKi4714zYCnJPrKauqEwVe2jDzpNm8MnsB2Vwnzw+izPQS4IbEPGAuzlntHBa6Rgc/Xe0xEJ6Jg4Z0LiGKt+cBB97J0D5GCpcRCJLXqI7t0oM2Ec3YhnEQ9k8G7ZWld4z7aks2/b2XRvwESSg4Ty9M4c6xXpHNdmwYKXlDz0lWEJCRLEnORfIOkphMcXqBBK3tF47Y4IHU3qju1qa/fQxCp7caVMspde46N/N+lrrXbkra41t9SAoYFO7QIsGkHbiw0ND08mootin9ZwW7vqBOrWzSJymjIUUfNokL1lmi+36yfBHhI+32/XKWGjyZSp0XRK0dKm3HK1KSrQ+pQO/ys+FQLamDIQWsxZg1usE7U8sgxuX1jGwzr5s8wALA66EL13YwufYFVoC2/Im9BXglY6cv/4GtA//QWF/dN5HDKA+AAAAY96VFh0U01JTEVTIHJka2l0IDIwMjUuMDMuMXByZQAAeJxlUD1PQzEM/CuMrfSI4m87T0wssFB2xIAqhkpURdCRH48TkN4rLEnO5/Od83T3vLvd3Oy2e9hvdk93z9v95t8JeV59bagoc8RUCzpBvyNEyWYsFoGUBXFE1XxwkGnMUEIDebquhTAAvL9AMPtTleJegYKKaJ0yMwGYcxCQ11FCCHUZOhDiuT/YXDhdzA1GIEljt65zgIoTFEt/zRvTlpMICgub0jR0RDV345jTXZisT/Oqrt6nkRjYfI2lGlXKKRIMkndVzHhJIIvpCGUZ3X7W4s5RbmqEo6I1fqMbo8IwCzHpO6cQBudIiNKHguQ/dC7IZTxIicfKCKz9P7ou442/8jCiXA0DM97QSQ4dOsCI7fRyPh0fP07vrZbD5/3x/e2wP5wLJOzMw+n8mp4NFhQNF2CNFuCNF6BNFsBNFyDNLq1sZcXNF0QtLjtj1UkNVhmxAVz2wiozJL1KnST9aV6tAQlXi9QG8qd5tRnUr29s6Munl2y0XgAAAABJRU5ErkJggg==\n",
"text/html": [],
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x731fa530f220>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ps = rdDistGeom.ETKDGv3()\n",
"ps.randomSeed = 0xf00d\n",
"rdDistGeom.EmbedMolecule(mh)\n",
"\n",
"IPythonConsole.ipython_3d = True\n",
"mh"
]
},
{
"cell_type": "markdown",
"id": "fafbfc3f",
"metadata": {},
"source": [
"Now rotate the `C=O` to be consistent with an intramolecular H bond:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "09a63389",
"metadata": {},
"outputs": [
{
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_17347113884601715\" style=\"position: relative; width: 400px; height: 400px;\">\n <p id=\"3dmolwarning_17347113884601715\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n //this is to ignore the existence of requirejs amd\n var savedexports, savedmodule;\n if (typeof exports !== 'undefined') savedexports = exports;\n else exports = {}\n if (typeof module !== 'undefined') savedmodule = module;\n else module = {}\n\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n exports = savedexports;\n module = savedmodule;\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n}\n\nvar viewer_17347113884601715 = null;\nvar warn = document.getElementById(\"3dmolwarning_17347113884601715\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_17347113884601715 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_17347113884601715\"),{backgroundColor:\"white\"});\nviewer_17347113884601715.zoomTo();\n\tviewer_17347113884601715.removeAllModels();\n\tviewer_17347113884601715.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -0.2146 -1.1753 -0.7897 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5958 -1.1722 -0.8232 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2458 -0.1723 -0.1541 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5437 0.8069 0.5357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5138 -0.2197 -0.1153 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9692 -0.3291 -0.1528 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.7271 0.5024 0.4372 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.6195 -1.3518 -0.8375 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2929 -1.9572 -1.3130 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.1562 -1.9385 -1.3634 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3273 -0.1610 -0.1743 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.0730 1.5942 1.0621 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.4737 -1.1805 -1.3831 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n\tviewer_17347113884601715.setStyle({\"stick\": {}});\n\tviewer_17347113884601715.setBackgroundColor(\"0xeeeeee\");\n\tviewer_17347113884601715.zoomTo();\nviewer_17347113884601715.render();\n});\n</script>",
"text/html": [
"<div id=\"3dmolviewer_17347113884601715\" style=\"position: relative; width: 400px; height: 400px;\">\n",
" <p id=\"3dmolwarning_17347113884601715\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n",
" </div>\n",
"<script>\n",
"\n",
"var loadScriptAsync = function(uri){\n",
" return new Promise((resolve, reject) => {\n",
" //this is to ignore the existence of requirejs amd\n",
" var savedexports, savedmodule;\n",
" if (typeof exports !== 'undefined') savedexports = exports;\n",
" else exports = {}\n",
" if (typeof module !== 'undefined') savedmodule = module;\n",
" else module = {}\n",
"\n",
" var tag = document.createElement('script');\n",
" tag.src = uri;\n",
" tag.async = true;\n",
" tag.onload = () => {\n",
" exports = savedexports;\n",
" module = savedmodule;\n",
" resolve();\n",
" };\n",
" var firstScriptTag = document.getElementsByTagName('script')[0];\n",
" firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
"});\n",
"};\n",
"\n",
"if(typeof $3Dmolpromise === 'undefined') {\n",
"$3Dmolpromise = null;\n",
" $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n",
"}\n",
"\n",
"var viewer_17347113884601715 = null;\n",
"var warn = document.getElementById(\"3dmolwarning_17347113884601715\");\n",
"if(warn) {\n",
" warn.parentNode.removeChild(warn);\n",
"}\n",
"$3Dmolpromise.then(function() {\n",
"viewer_17347113884601715 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_17347113884601715\"),{backgroundColor:\"white\"});\n",
"viewer_17347113884601715.zoomTo();\n",
"\tviewer_17347113884601715.removeAllModels();\n",
"\tviewer_17347113884601715.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -0.2146 -1.1753 -0.7897 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5958 -1.1722 -0.8232 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2458 -0.1723 -0.1541 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5437 0.8069 0.5357 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5138 -0.2197 -0.1153 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.9692 -0.3291 -0.1528 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.7271 0.5024 0.4372 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.6195 -1.3518 -0.8375 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2929 -1.9572 -1.3130 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.1562 -1.9385 -1.3634 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3273 -0.1610 -0.1743 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.0730 1.5942 1.0621 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.4737 -1.1805 -1.3831 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_17347113884601715.setStyle({\"stick\": {}});\n",
"\tviewer_17347113884601715.setBackgroundColor(\"0xeeeeee\");\n",
"\tviewer_17347113884601715.zoomTo();\n",
"viewer_17347113884601715.render();\n",
"});\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/html": [],
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x731fa530f220>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rdMolTransforms.SetDihedralDeg(mh.GetConformer(),4,6,7,8,0.0)\n",
"mh"
]
},
{
"cell_type": "markdown",
"id": "1f95a3cf",
"metadata": {},
"source": [
"And then rotate the hydroxyl H to point towards the `C=O`:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7f4c430b",
"metadata": {},
"outputs": [
{
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_17347113898282022\" style=\"position: relative; width: 400px; height: 400px;\">\n <p id=\"3dmolwarning_17347113898282022\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n //this is to ignore the existence of requirejs amd\n var savedexports, savedmodule;\n if (typeof exports !== 'undefined') savedexports = exports;\n else exports = {}\n if (typeof module !== 'undefined') savedmodule = module;\n else module = {}\n\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n exports = savedexports;\n module = savedmodule;\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n}\n\nvar viewer_17347113898282022 = null;\nvar warn = document.getElementById(\"3dmolwarning_17347113898282022\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_17347113898282022 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_17347113898282022\"),{backgroundColor:\"white\"});\nviewer_17347113898282022.zoomTo();\n\tviewer_17347113898282022.removeAllModels();\n\tviewer_17347113898282022.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -1.1586 0.0199 -1.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.6317 -1.1266 -0.8487 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3518 -1.3040 0.4780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.6177 -0.3656 1.1906 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.4273 0.9718 -0.7808 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.0179 2.1415 -1.5327 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6969 3.0728 -0.9985 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.2734 2.3109 -2.8833 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3778 0.1580 -2.4945 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2101 -1.8703 -1.4016 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.7178 -2.1987 0.9638 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.4033 -0.5198 2.2429 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5358 3.2264 -3.2701 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n\tviewer_17347113898282022.setStyle({\"stick\": {}});\n\tviewer_17347113898282022.setBackgroundColor(\"0xeeeeee\");\n\tviewer_17347113898282022.zoomTo();\nviewer_17347113898282022.render();\n});\n</script>",
"text/html": [
"<div id=\"3dmolviewer_17347113898282022\" style=\"position: relative; width: 400px; height: 400px;\">\n",
" <p id=\"3dmolwarning_17347113898282022\" style=\"background-color:#ffcccc;color:black\">3Dmol.js failed to load for some reason. Please check your browser console for error messages.<br></p>\n",
" </div>\n",
"<script>\n",
"\n",
"var loadScriptAsync = function(uri){\n",
" return new Promise((resolve, reject) => {\n",
" //this is to ignore the existence of requirejs amd\n",
" var savedexports, savedmodule;\n",
" if (typeof exports !== 'undefined') savedexports = exports;\n",
" else exports = {}\n",
" if (typeof module !== 'undefined') savedmodule = module;\n",
" else module = {}\n",
"\n",
" var tag = document.createElement('script');\n",
" tag.src = uri;\n",
" tag.async = true;\n",
" tag.onload = () => {\n",
" exports = savedexports;\n",
" module = savedmodule;\n",
" resolve();\n",
" };\n",
" var firstScriptTag = document.getElementsByTagName('script')[0];\n",
" firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
"});\n",
"};\n",
"\n",
"if(typeof $3Dmolpromise === 'undefined') {\n",
"$3Dmolpromise = null;\n",
" $3Dmolpromise = loadScriptAsync('https://cdnjs.cloudflare.com/ajax/libs/3Dmol/2.3.0/3Dmol-min.js');\n",
"}\n",
"\n",
"var viewer_17347113898282022 = null;\n",
"var warn = document.getElementById(\"3dmolwarning_17347113898282022\");\n",
"if(warn) {\n",
" warn.parentNode.removeChild(warn);\n",
"}\n",
"$3Dmolpromise.then(function() {\n",
"viewer_17347113898282022 = $3Dmol.createViewer(document.getElementById(\"3dmolviewer_17347113898282022\"),{backgroundColor:\"white\"});\n",
"viewer_17347113898282022.zoomTo();\n",
"\tviewer_17347113898282022.removeAllModels();\n",
"\tviewer_17347113898282022.addModel(\"\\n RDKit 3D\\n\\n 16 16 0 0 0 0 0 0 0 0999 V2000\\n -1.1586 0.0199 -1.4573 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.6317 -1.1266 -0.8487 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3518 -1.3040 0.4780 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.6177 -0.3656 1.1906 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1479 0.7872 0.5583 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.5811 1.7377 1.2291 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.4273 0.9718 -0.7808 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.0179 2.1415 -1.5327 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6969 3.0728 -0.9985 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.2734 2.3109 -2.8833 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.3778 0.1580 -2.4945 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2101 -1.8703 -1.4016 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.7178 -2.1987 0.9638 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.4033 -0.5198 2.2429 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9398 2.5962 0.7887 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5358 3.2264 -3.2701 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 2 0\\n 2 3 1 0\\n 3 4 2 0\\n 4 5 1 0\\n 5 6 1 0\\n 5 7 2 0\\n 7 8 1 0\\n 8 9 2 0\\n 8 10 1 0\\n 7 1 1 0\\n 1 11 1 0\\n 2 12 1 0\\n 3 13 1 0\\n 4 14 1 0\\n 6 15 1 0\\n 10 16 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_17347113898282022.setStyle({\"stick\": {}});\n",
"\tviewer_17347113898282022.setBackgroundColor(\"0xeeeeee\");\n",
"\tviewer_17347113898282022.zoomTo();\n",
"viewer_17347113898282022.render();\n",
"});\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV4AAAEsCAIAAAAEo0yHAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd1xT1/sH8E/CiAgOcIA4ULE4q/zqRBS12lIcdYOLUnHgtmitq7X1ax21Wts6QQFRUVy42uLe4kSGs8gUkI3MAAnJ/f1xbUpDCCFkYZ73q3+Ee88996HCw7nnnsFhGAaEEPJfXG0HQAjRRZQaCCEyUGoghMhAqYEQIgOlBkKIDJQaCCEyUGoghMhAqYEQIgOlBkKIDJQaCCEyUGoghMhAqYEQIgOlBkKIDJQaCCEyUGrQO0KhMCgoqGfPnkOHDpUcXLZsmcU/unfvrsXwiI4w1HYARNPWr1+flJTUt2/f+/fvSw7Gx8evWLFi1qxZAAwMDLQXHdEVlBr0zg8//ADg8OHDFVNDampqhw4dzM3NtRYW0TGUGggApKenX7x48ezZsw0bNlywYIGdnZ22IyJaRn0NBAC++eabQYMGTZ48WSgU9uvX782bN9qOiGgZtRoIAMybN4/94OzsfPXq1VOnTs2fP1+7IRHtolYDAYCKqwcbGBhwufSDoe/oJ0DvFBYWhoeHJyQk8Pn88PDwN2/evHjxomvXrkeOHImOjl65cmVGRsbYsWO1HSbRMg4tNq9vIiMjly1bJvly6tSpHh4egYGBhw4dSktL+/DDD7///vvOnTtrMUKiCyg1EEJkoAcKQogMlBoIITJQaiCEyECpgRAiA6UGQogMlBr03bp16zw9PQ8fPlxVgZCQEE9Pz2+//VaTURGto9Sg786ePRsQEHDv3r2qCoSHhwcEBJw8eVKTURGtozkU5H3GMMyjR4+ys7O7dOliY2Oj7XDqEkoN5L3F5/M/+eST0tLSLl26XLp0adGiRatWrdJ2UHUGpQby3jp79mxSUlJCQoKRkdG1a9c+++yzpUuX8ng8bcdVN1BfA3lvGRgYFBcXZ2ZmAigoKKhfvz7NKFUctRqIzhOLER2NuDjk5KBhQ7Rti549YWRU7XWjR48+cuRIt27dpkyZcvXq1bNnzxopcBVhUWogAJCRkfHgwQOZp9LS0jQczL/4fPz6K377DZmZ/zneoAFmzMDq1WjaVM7VKSkp0dHR3t7emZmZ6enpfn5+jo6O1HBQEM281He9e/d+9OhRtcU6der04sULDcTzr6wsjBiBhw8BwNoaTk5o0gQFBQgLQ1wcANjY4Px5dOpUVQUeHh5CoZAdspGamtq1a9egoKARI0ZoKP46jloNBACsra1tbW1lnkpMTExOTtZwPBCL4eqKhw/B4+G33zBrFir+tQ8JwYwZSErCiBGIiEDDhjLrKC0tbdKkCfvZysrKxMSksLBQA7G/Jxii33r16gVg4cKFVRVgX/h16tRJk1Ex+/czAAMwwcGyC9y+zRgYMADzzTdV1XHp0iUTE5Pvvvvu8OHDEydO7NChQ0FBgboCfu/QcxfRSTt2AICTE9zcZBdwdISHBwDs24fSUplFhg0bFh4ebmhoePPmTQcHh4cPHzZo0EBN8b5/6IGC6J6cHISHA8CUKfKKubvD3x+5uXj0CAMGyCzSuXPnNWvWqCHE9x+1GojuefwYbO94797yivXq9a4Dgs0jRKUoNRDdI3lVaW0tr5iZ2bsOyKwstYekfyg1EN3D57/7YGJSTUlTUwAoKlJvPHqJUgPRPZLOQkmOqAqbFBo1Um88eom6IfVdx44dy8vLW7VqVVUBa2tre3v79u3bay6m5s3ffUhORosWVRYrKEBBwX/KE9Wh0ZBE9+TloUkTiMXYsQNytt68cgXDhgHA/fvo00dj0ekJeqAgVTp58uT06dPz8vI0fePGjd/9qh85Iq/YoUMAYGmJ//s/TUSlZyg1kCrt3Llz//79ly5d0sK92cbCnTs4dkx2gQcP3qUGLy9FZmGSmqLUQKrk4uICIDQ0VAv3njIFgwcDgIcHAgMh9dh78SJGjEB5OezssHy5FsLTA9TXQKr09OnTDz/80MrK6s2bNxwOR9O3z8jA8OF4/BgAOnTAxx+jaVMUFODOHUREAEDbtjh/Hh07ajow/UCpgchjY2Pz+vXrx48f/5+6n+fPnEGbNtK9BkVF2LwZv/327k2ERL16mD4da9eiWTP1RqXHKDUQeby8vHx9fdevX6/eBVdjY/HRRxAI8PgxunSRPisU4u5dxMUhKwvm5rCxwYABqF9fjfEQSg1EvtOnT48dO3bAgAG3bt1S1z2EQgwciPv3MXFilZ2OROOoG5LIM2zYMB6Pd/fu3dzcXHXdY8UK3L+PNm3g46PgFQ8fPnR0dHR0dJQTFVvgwoULKopS79BoSCKPmZnZwAEDCtLT027etBgzRvU3uHAB27bB0BDBwTA3lz5bXg5DGT+ieXl5YWFhAAQCQVUVswUypRaV/C+xWExLRVaF/r+QaoQOH37/2bOup0+rvurMTHz5JRgGP/4IBwfps7t3w9ER8fEqv61AIAgMDLS3t+/QoYPUKbFY7ODgYGRkFBAQoPL71i2UGkg1DJ2dAeDCBenBBbUkFmPaNKSnY/BgfP219NmnT7F0KR48UMdaDHv37g0LCxs9enTlRsf27dsZhunZs6fKb1rnUGog1enaFTY2SE9/N5pAVX7+GZcuoVkzBAXBwOA/p0pLMXUqSkowcyYmTlTlTQEA8+fP9/HxcXJykjr++vXrtWvX+vj40FMGKDUQhXz2GQD89ZfKKnz4EGvWgMOBn5+M9VoWL0Z0ND74ANu2qeyOCliwYMGcOXN69OihyZvqLEoNRAEuLgCgqhHTRUWYOhUCAZYswahR0mdDQuDrCx4Px47BzEw1d1TAwYMHo6OjV69erbE76jh6Q0EUMGwYeDzcv4+cHPyzs4Py5szBq1fo2RMbNkifSk7GrFkAsHUr7O2rrenkyZONVLGOS1ZW1pIlS2bMmHH37l0A+fn5z58/T05Obt26de0rr6MoNRAFmJpiwABcuYJLlzBpUq2q8vdHUBDMzBAUBGPj/5wqL8fkycjNxfDhmDdPkcoWLFhQq2D+kZiYaG9vHx4eHh4eDiA1NfWvv/5ydHSk1EBIdYYPx5UruHGjVqkhNhZffQUAu3bJmBa1di3u3EHLlggMhGKzuaZMmWJSxfqRfn5+VV1VVFR07969iIiIsrKyy5cvt2zZsnfv3hXnnvfv33/WrFlj1DGOo+6g1EAUM2UKBg5Ebd7qlZXB1RWFhXBzg7u79NmbN7FxI7hcHDggf5PbirZu3WplZSXzlJzUkJ2d/dNPPwGwt7f/6aefhg8f3rlz54oFevfubS1/MWs9QKmBKMbKCuwvYX4+cnLA46FpU/B4Nahh2TJERMDWFr6+0qfevoW7O0QifP89Pv5YZTFXoW3btvLXp/ntt9/UHYPuozcURDFxcfDyQuvWaNwYtrZo1QpmZnB0xK5dqHq08r9CQ7FjB4yMEBQkvXstw2D6dLx+jQED8O23agqf1BSlBqKAPXvQuTN8fZGSAnNzdO0KdlvtsDDMn4+PPkJSkrzLU1PxxRdgGGzahL59pc9u344zZ9C4MQ4dkjljgmgFpQZSnQMHMHcuhEL074/bt5GdjadPERuLzEz8/DPq18ezZxg0CFWtLisWw8MD2dlwdoa3t/TZp0+xYgUA7NkDGxv1fiOkJig1ELnS08G+IPz0U1y7BkdHSAYRm5vj668RGgojIyQlyZgHwVq/HleuoHlz7N8v/d6huBiurigpwdy5Ve6ITbSEUgORy9cXhYXg8eDvLz0MgeXk9K4tcOgQMjKkThbdu4f//Q9cLg4dQuVXCQsX4sULdO2KrVvVETupDXq0I3KdOgUAw4ejZcsqy8ydi82bUVaGP/+Ep6fk8Nu3bz+aNGlz//7jBg40+OQT6auOH0dAAOrVw+HD1e9t+V9WVlZubm4AqhrUAIAt0LZt2xrVTP7FEFKV4mLGwIABmK1bqynZpg0DMLNnVzw2adIkAL179y4rK5MuHxfHNGrEAIyPj0ojJipDDxSkaunpEIkAoNoNL9kXFqmpkgM+Pj7BwcFmZmZBQUHGlQdET5uG/HyMG4fZs5ULraysrHv37mvWrBEKhcrVQOSj1ECqlp//7kO1MyDZva3/Kf/8+fMlS5YA8PHx+eCDD6QLf/st7t5F69bYu1fp0I4ePfrkyZM//vjDiLauUg9KDaRq9eq9+1DtoKbSUgDsAvClpaVTpkzh8/menp5TpkyRKnjj8uXC0FAYGuLIEVhYKB3arl27ACxcuFDpGoh8lBpI1STzr7OyqinJFrCwAODt7R0VFdWhQ4dff/1VqlRmZuYkd/fmz58//eUXODoqHVdERMT9+/fNzc3d6JWn2lBqIFVr3vzdG8eoKHnFBAI8fw4APXqcOnVqz549PB7v2LFjDdinjH8wDDNz5sz09PQ+/ft3VmzOdVW2b98OYMaMGfVpoxr10XY/KNFtrq4MwLRvz4jFVZY5dYoBGCDj9OkmTZoA+P333yuX2rJlCwBzc/OkpKTaRJSbm1u/fn0OhxMTE1Obeoh81Gogcs2cCQDx8Th4UHYBkQjr1gFAt27ivn0/+uijLz75ZEGlrsfw8PBVq1ZxOJyAgIA2bdrUJiI/Pz8+n+/i4iKjg5OokLZzE9FtYjHj7MwAjJkZc/Gi9NmSEmbqVAZgOBzmwgWGYUQikXDq1LK2bSeOHZucnMyWKiws7NixI4BFixbVNh6RKGLo0C8HDAj944/aVkXkotRAqvPmDdOx47vf/9GjmX37mAsXmDNnmLVrmbZt2UcJZt26f8tv2eLWvr2pqakkEbi7uwPo1q0bn8+vbTB//MEAjI0NU15e26qIXJQa9F1paWliYmK5/N+0rCxm8mSGw3mXCCr+16IFc+CAVHF25aURI0YwDBMcHAzA1NT0+fPnKgjXxYUBmJ9/VkFVRC7aKVuv+fv7e3t7m5iY8Pn8DRs2VLMK66tX+OMPREcjOxsmJrC2xqBBcHaW2s8+PT3d2tqaYZjIyEgzM7OPPvqooKDA399/+vTptQ03Lg52duDxkJysgoWtiXzazk1Ea16+fGlgYHDmzBmGYcLCwoyNjRMTE2tf7S+//AJg0KBBAoGgb9++ACZOnFj7ahmGYZYuZQBm+nTV1EbkotSgv/z8/Nq0aSP50tHRccuWLbWvlt39KSQkhB0r3b59+7y8vNpXy/D5TJMmDMA8fKiC2kh16OWl/rK0tMzLy8vLywMgFAqNjY1fv35dyzofPXoUFRXVpEkTY2Pjbdu2GRoaHjp0SCW7yODIEeTkoG9f9OqlgtpIdWi9Bv3l7Ozcu3fvnj179u3b9+nTp3l5eR9++GEt62T3np84ceLMmTMZhvnxxx8dHBxUESzQpg0GDaq4HgRRK+qG1Gsikej69ev5+fkODg5ubm5jxoxhnwKUIxAIrK2tc3JyHBwc7t69O3jw4MuXLxtI7YJN6ghKDQQAkpOTO3TocPPmzb6VV3xWWHBw8OTJk1u1apWSktKsWbOoqKgWLVooU1FGBi5cePcqhMeDlRUcHeHk9O9MUKJ+9ECh1wIDA5s3b56Tk7Nhw4YJEybUJi/gn6eJ9PR0Dofj5+enTF4oLMSKFdi7F5UXaLG2xoYN8PCoTYREcZQa9BfDMKmpqcePHzc2Nv7qq688a/cYn5KScuXKFQ6HU15evnTp0lGjRtW4itxcfPopwsMBYMAAjBqF1q0hEODpUwQF4c0bfPklXrzApk21iZMoSrsvSMh7Yx07yQro2bOnjMUgFTF+PAMwPB5z5Ij0qaIiZtKkd+Mvg4NrHy2pFvU1EBVgGMbKyiozM9PExCQiIqJj5V2wq3XnDgYMAIDt2yFzUKZIBEdH3L+PNm0QHw/q3VQzGtdAVCAkJCQzMxPA7t27lckLwLt1Iq2tMXeu7AIGBvjxRwB4/RrnzysZKFEYpQaiAufOnQPQs2dPD6W7CW/cAIBRo+Q1Bz7+GObmAHDzppJ3IQqj1EBqq6io6OTJkxwO5+jRo0pWUViIxEQA6NFDXjEuF927A8CTJ0reiCiM3lCQ2jp69GhRUdHgwYNtbW0BvHjxIrXChhQA+vXrZyZ/ufrc3Hcfmjat5mZsAUl5ojaUGkhtscMZJHOuQ0NDQ0ND2c9lZWW3bt2KjY2tJjVIRjFUu6kEjwcosPg9qTVKDaRWYmJiwsLCzMzMxo0bxx5ZsmSJZLT13r17RSIR25qQRzL/qrCwmpLsLjiNGysdMFEQ9TWQWgkICGAYZtKkSZXbBQzD/Prrr0uXLq2+FgsLmJoCQGxsNSXZArVbeJYoglIDUZ5IJDp06BAqPE1U9Oeff5aUlIwePbr6igwM0LMnANy5I69YejpevQKA2g3oJoqg1ECUd/78+ZSUFDs7O5kzr7du3ert7a3ozEv2eeT6dcTFVVlm3z6IxTAywuefKxcwURylBqI8tgPS09OTw+FInQoPD4+KiqrBepAeHrCwgEiEWbNQViajwJMn72ZPTJqEli1rETVRCKUGoqScnJw//vjD0NCQXUteytatW728vKp5MVFR48bYvRscDq5dw7Bh7yZZsQQCHDiAIUNQXIwWLfDLL1XV8cMPP1j8o/q+TyIXvaEgSjp06FBZWdnIkSOtra2lTqWkpJw5c+bvv/+uWY2ursjPx7x5uH0bvXqhTRvY2KCsDC9evHtz0b49QkPljH2Ij49fuHDhV199BYDLpT97tUL/+4iS9u/fjyo6IDMyMvbu3duqVasaVzprFp4+hbs7LCzw+jVu3cKDBygsRKdOWL8e0dGws5Nz9Zs3b2xtbc3Nzc3NzVWzIKUeo5mXRBmPHz/u2bNnkyZNUlNTeewwJNUSiZCSgszMd6s8NW+uyEXdunXr06ePSCRq3ry5l5dXhw4dVB+Y3qAHCqIMtgPS3d1dBXnh3DnY2UFqvqaBAWxsYGNTo5rmzJnD4/Gsra3PnTvXu3fvqKioWm69q8+o1UBqTCAQtGzZMjs7OzIysof8CVHVevYMffuCy0VUFNq1U1GAAGBvbz9t2rSvv/5ahXXqFeprIDV2+vTp7Ozsnj171jYvFBXB1RXFxRg1SrV5AQCPxxOLxaqtU69QaiA1JjWfSnlz5+L5c3Tr9m4dl9pJTEy0t7c/fvz4y5cvN2/e/Pz58wkTJtS+Wr1FDxSkZlJTU21sbAwMDFJTU5tWO4daju3bsWgRzMzw4AE6d659YAzD+Pv7BwQEpKend+nSZc2aNb1on6taoG5IUjP79+8XiUQTJkyoVV548ABsL0BAgEryAgAOhzNjxowZM2aopDZCDxSkZg4ePIhaPk3k5sLNDQIBvL1BbX5dRQ8UpAZu3brl5OTUsmXLpKQkJXesE4sxYgTOn0e/frhxA8bGqo6RqAa1GkgNSDogld/Jct06nD8PCwsEB1Ne0GXUaiCKKi4ubtGiRVFRUUxMjJIDDa9exaefgmHw119wdlZ1gESVqBuSKOro0aOFhYVOTk5K5oWUFEyaBJEI//sf5QXdRw8URFG1Gs4gFGLyZGRlYehQrFql4siIGtADBVHIq1evOnbsaGpqmpaWVoNVGCS++gq//YbWrfH4cfUryhMdQK0GohB2eVg3Nzdl8sKZM/j9dxgZ4cgRygt1BaUGUj2xWFx5ediXL1+OGjXKwsLC0tJy+fLlVV37KiameO1aMAy2boWjoybCJapAqYFU78KFC8nJyXZ2dv3792ePZGdnDx482M7O7unTpy9fvvT09JR5IZ/PHz9hQtu//47x9sbChRoMmdQWvaEg1ZN0QEqWh/X397eystqyZQt7xJzdpbaS+fPnP3nyxM7OzuqHHzQVLFEN6oYk1cjNzbW2ti4vL09ISGjdujV70N3d3dzc3MHB4f79+zY2NrNmzarcB+Hr6+vl5WVqanr//v2uXbtqPHBSK/RAQaoRFBRUVlbm7OwsyQsAUlJSDh48eOPGDVtb25MnTzo7O0v9jYmKimKXb921axflhTqJIUSu//u//wNw/PjxigdHjBixatUq9nN6ejqAqKgoydm3b9+2b98ewLx58zQaK1EdajUQeZ48eRIREWFhYTFq1KiKx21tbWP/2Z+Sy+VyOByRSMR+yTCMp6dnfHy8vb39li1bNB0xURVt5yaiu0Qi0bBhw2xsbMzMzE6fPl3xVGRkZL169YKDg1++fOnm5tapU6fy8nL21MaNGwGYm5vHx8drI2qiGpQaSJV++OEHAEZGRuxfEQ8Pj9zcXMnZoKCg/v37W1tbjx49OiEhgT14/fp1Q0NDDocjlUpInUOpgch2+fJlAwMDLpd7/vx5Hx8fU1NTAJaWlidPnqzqkvT0dHYnq9WrV2syVKIOlBqIDK9fv2bXd/vxxx/ZI3FxcUOGDGGbDxMnTszKypK6pLy8fNiwYQCGDBkiebggdRelBiJNIBA4OjoCGD58uEgkkhwXi8U+Pj7s+IXmzZtLvbNgx0pbWVm9efNG4yET1aPUQKQtWLAAQJs2bSo3DRiGiY+PHzp0KNt8GDlyZGpqKsMw586d43A4hoaGN2/e1Hi8RC0oNZD/CA4OBsDj8R48eFBVGbb50KBBA/ZNxIYNG5o0aQJgy5YtmgyVqBUNlCb/iomJ6d27d0FBwe7du+fMmSO/cGJi4qxZsy5fvsx+OWbMmJCQEMkkC1LXUWog7xQXF/ft2/fZs2eTJk06cuSIIpcwDLN48eJdu3Y5OjqePXtW5r71aWlpJSUlrVu3lrwEJXUCjYYk78ybN+/Zs2cdO3b09fVV8BIOh5OQkCASiUaOHCkzL8TFxXXr1s3W1vb169cqDZaoHaUGAgA7d+48cOCAmZlZSEgI24kgJS4urvLB5OTk0NBQY2NjDw+PymcZhpk7d663t7fqwyXqR6mB4OHDh0uXLgWwe/fuLl26VC6Qm5src903X19fkUg0ceLE5s2bVz7r7++flpa2ZMkSlQdMNEG7vaBE63Jzc9u1awdg0aJFNbpQKBSyYx9v3bpV+WxaWlqTJk1u374tEAgAxMbGqiheoiHUatBrYrF46tSpCQkJffv2/fnnn2t07alTp968edO5c2dHWSs+LliwYMKECTJPkTqBUoNeW79+fWhoqIWFRXBwsHENt5nz8fEBMG/evMovLM+ePXvq1Kl27dr5+vru27cPQHBwcE5OjqrCJhpAa0Pqr6tXr65du5bL5QYFBbVt27ZG18bGxl69erV+/fpTp06tfFYsFs+cOTM+Pp79DODp06clJSWqiJpoirafaIh2JCcnN2vWDMDatWuVuJztXJw1a1a1JamvoY6iBwp9JBQKJ0+enJWVNXTo0NWrV9f08tLS0sDAQABeXl7VFuZyubNnz27YsKEygRLtodSgOQKB4OLFi7m5uZIjQqHw4sWLBw4cePbsmSYjWbZs2e3bt1u3bh0cHGxgYFDTy48dO5aTk9O7d++ePXtWW9jAwMDHx4dtoZC6RNvNFr1QXFy8ceNGa2trLpcrWQqlpKSkX79+dnZ2EydObNCgwdatWzUTzOnTpzkcjpGR0e3bt5WrwcHBAYCfn59qAyM6hVKDJvD5/F9//TUuLq5Lly6S1LB379727dsXFhYyDBMaGmpqavr27Vt1RxITE8O27Xfs2KFcDVFRUQAaNWpUVFSk2tiITqEHCk0wMTFZvHgxu/66xOnTpyW7yzo7Ozdu3PjSpUtqDaOkpMTV1bWgoMDNzW3+/PnKVbJ7924AHh4e7JJw5H1FqUFrkpOTJa8MORyOjY1NcnKyWu84d+7cyMhIOzs7xSdQSSkqKjp8+DCA2bNnqzQ0onMoNWgNwzAVBwtxuVx2CICa7NmzJzAw0NTUNCQkROn3BYcOHSooKBg0aBBtSPXeo9SgNdbW1qmpqZIvU1JSWrVqpaZ7RUVFsSMRdu/eXfG3mh10oLi9e/cCqHaVF/IeoNSgNS4uLiEhIUKhEMCDBw/S0tI+/vhjydkbN24MHDhw4MCBVf32FhcXswXu3Lkj/0Zv374dN25cSUnJ/Pnz3d3dATAMs3r16gYNGpiamjo4OMTExCgS8N27dx8/fty0adOxY8cq+k2Sukvb/aD6wtfXd/ny5ezv1fLly4VCYX5+vp2dnZOT07Jly6ysrFauXFmx/PHjx9l/ID6fL7PCvLw8tsCZM2fk3FcsFo8ZMwZAnz59SktL2YMnTpxo0qRJREQEn8/39PTs06ePIt8CuyjDihUrFPuOSd1Gcyg0pEWLFgzDrF+/nv2Sw+E0bNjw4cOHR48ezcjICAwM/PTTT9Vx340bN54+fdrc3Dw4OJjH47EH9+3bN2PGDHt7ewAbNmxo2bLl06dPu3XrJqeevLy848ePczicGTNmqCNOomsoNWjIyJEjKx9s2LDhrFmz1HfTa9eurVmzhp1AxS7KwIqJiZGsy2RpadmiRYuYmBj5qcHf35/P57u4uHTo0EF9ARPdQX0N76309PSpU6eKRKJvv/3WxcWl4qn8/PyKqzY1bNjw7du38mvz8/ODYpMmyPuBUsP7qby83NXVle3aXLNmjdTZ5s2bV5zKkZubK3MFN4mrV68+f/68VatWI0aMUEu4RPdQang/LV++/NatW61atZI5gcre3v727dvs51evXmVlZfXo0UNObXv27AEwa9YsQ0N6AtUX9C+t644ePSpzBwc5K6OcPXt227ZtRkZGR44ckTnlccGCBUOHDu3Xr9+HH364bNmyMWPGtGnTpqra0tPTT58+bWhoSB2QeoVSg66bPn16jcrHxsZ+8cUXDMP8/PPPAwYMkFmmf//+QUFBv//+e3Z29pAhQyTvTWTy8/MTCoXjxo1r2bJljSIhdRqlBl3n4eEhc0kFoVB48OBBqYOlpaWurq75+fmjR49etGiRnGrHjRs3bty4au8uFovZxR1pBKS+odSg63bv3m1iYlL5eH5+fuXUMG/evIiIiA8++ODAgQMq2X7yr7/+SkxMtLW1leyOTfQEdUO+P/bt2xcQEGBiYnLs2DFVLbjGdkDOmTOHy6UfFf1C/97viejoaPYJYvfu3ewwx9p7/fr1+fPnebWLDMUAABRUSURBVDyezH3ryPuNUsP7IC8vz8XFpaSkZM6cOSr8NZbsW0crO+ohSg3vg61btxoZGXXv3v2XX35RVZ1CoTAgIADUAamvqBuyzhMIBNu3b8/Pz79586bMDkvlsPvWdenSRc7mdLm5uWlpaW3atJG5uTap06jVUOfduHEjPz+/X79+AwcOVGG1kn3rZJ4Vi8WLFy/u0qXL1KlTW7ZsuWXLFhXemugCajXoqNatW0+cOBFAVWOTjY2N2QJXr14FMHfuXBXePTY29tq1a2ZmZtOmTZNZ4NmzZ6mpqYmJifXq1bt169agQYM8PDyoS+K9ouX1Ikjt3L9/H0CTJk1KSkqkTn3xxRf79+8XCARKVOvt7Q1g9uzZihR+8eIFl8tNTU1V4kZEZ1FqqNu+/PJLAMuWLZM6fuvWLQDNmjWTrOykOD6fb2FhAeDRo0fyS0ZGRm7btq1Hjx4//vhjTe9CdBz1NdRhb9++PXbsGIfDqbweDLtbxOzZsyUrOynu2LFjubm5ffr0qXbfupSUlISEhPLy8opTvMl7Qtu5iSiP7fxzcXGROp6VlcXj8bhcbkJCghLV9uvXD4C/v7+C5XNzc+vVq3fz5k0l7kV0FrUa6iqGYdidZip3QO7du7esrGzkyJGSLXAUFx0dfe/evcaNG7u5ucm/e3p6Ovu5UaNGpqammZmZNb0X0WX0hqKuunjxYkxMTJs2bYYPH17xuFgsZneLUO6dxa5duwB4eHjUr19fTrGwsLCxY8d+++23tra2J06cMDIyqrhSPnkPUKuhrmJ7E7y8vKSmbP/1118JCQnt27dXYonqoqKiI0eOAKh2MVtHR8cTJ05ERkbu3LmzcePG9+7dMzc3r+ntiC6jVkOdlJyc/OeffxobG1deeYlNGfLnSpaXl8scLnHw4MGCgoLBgwcrsm+dk5OTk5NTDQMndQa1GuokX1/f8vLy8ePHW1paVjyelJR04cIFHo/HvtSU6eDBg/369UtMTKx8ivatI//Sdj8oqTGBQGBtbQ2g8kuB5cuXA2AXgJPp0aNH9erVA3Dw4EGpU+wGecoNhSDvH0oNdU9wcDCALl26iMXiisdLS0vZNePv3r0r88KcnBx2o5p58+ZVPvvFF18AGD16tImJiYmJSVV3z8jIYAtcvny5lt8I0WX0QFH3sL0J8+fPl1ri7fjx45mZmfb29uzABClisXjq1KkJCQl9+/atPHc7PT39xIkTXC7XycmppKREznLVDMOwBUQikSq+G6KjqBuyjnnx4sXNmzdlTnySpAyZF3733Xfnz59v3rz5iRMnpIZIMgyzcOFCS0vLjz/+mKZIERa1GuqYXbt2MQzj7u4utfpjVFRUWFhYo0aNJk+eXPmqc+fObdy40cDA4ODBg61atZI6u23bthMnTmRlZX3zzTdqDJ3UKZQa6pKioiJ2FenKLxEkQ5VMTU2lTkl2pti4cWPlwQ5hYWErVqzgcDj79++3s7NTW+ykjqHUUJcEBQXl5+cPGDCge/fuFY8XFhayQ5Vmz54tdUlJSYmrq2teXt7o0aO//vprqbPp6ekTJkwQCoUrVqwYP368WoMndQulhrqkqkkT+/fvLyws/PjjjysPVZo7d25ERISdnV1gYKBUt6VQKJRsmbtu3Tq1Rk7qHOqGrDPu3Lnz+PHjZs2aVf7zXlXK+O233wIDA83MzEJCQho1aiR11tvb+9atW61bt5a5Ze7SpUtlhsHn85X/Hkgdot13p0RxU6dOBbBy5Uqp49euXQPQokULqQWdwsLCjI2NORzO0aNHK9cWFBQEgMfjPXjwoOLxAwcOKPiTc+HCBZV/j0R3UKuhbsjOzj558iSXy5WzakvFDbUzMjImTpwoEAi+/vprV1dXqUuio6PZen7//ffevXvLvOOOHTtkHi8sLFy5cqXS3wipM7Sdm4hCNm3aBGDUqFFSx9PS0oyMjAwNDZOTkyUHhULhoEGDAPTv37/y2pBv3761tbUF4O7uXvlGklZDVZFIlmmgVsP7jboh6wCxWMwu/S5z1RahUPj5559XHK2wbNmyGzduWFlZHT9+vGJTAgDDMJ6ennFxcT169GDrJEQmSg11QGhoaEJCgo2NjdSoBJFI5Ofnh/+mjKNHj/76669GRkbHjx9nZ2FVtG7dulOnTpmbm4eEhKhwPxvy/qHUUAewvQnz5s2Teo9w7ty5pKSkDh06SHa4//vvv9mhDdu2bRswYIBUPZcvX/7f//7H5XKDgoLat2+vkdhJXUXdkLpOsl115SUYJCmDHbBQWFg4duzYgoKCKVOmVJ5JkZSUNHnyZJFItG7dOhcXF43ETuowajXout27d4tEIldXV3bCtURcXNzly5dNTEzYrbEZhpk+ffqLFy+6d+/OrshSUWlp6fjx47Ozs0eOHLlq1SrNRU/qLGo16DSBQODv7w9ZHZC7d+8Wi8WTJ09mt5PZtGnTyZMnGzduHBISUnnF1/nz54eHh7dt23b//v1yFoarjeTkZF9fXwcHB8kytlFRUX5+fnl5eb169Zo1axZ1bdQx2n5FQuQ5dOgQgB49ekgd5/P5TZo0AfDw4UOGYa5cuWJgYMDhcEJCQipXsmfPHgAmJibh4eHV3vHp06ebNm3atGlTVQWKi4vZAhU3uZgxY0bLli3btGmzZMkS9sjVq1dbt269Y8eOgwcP9urVa/z48Qp8u0SHUGrQaewG9j4+PlLHAwICAPTu3ZthmNevX7OLLKxZs6ZyDffv32dXZ9i/f7/64oyJiRGJRLNnz5akhpSUlKioKPbzhQsX6tevr767E3Wg1KC7oqKiADRo0KCgoEDqVJ8+fQD4+/sLBIL+/fsDGDZsWHl5uVSxnJwcdpeahQsXaiDgiqlBQigUzp07d9iwYRoIgKgQ9TXoLvYFxJdfftmgQYOKxyMiIh48eMBuMLVgwYKwsDAbG5sjR45IvdoUi8VTpkxJTEzs168fuwWe5nl4eJw7d87MzOz27dtaCYAojd5Q6KjCwsLDhw9D1hIM7OwGT0/PkJAQX1/fevXqnTx5smnTplLFVq1adeHCBUtLyxMnThgbG2smbCk7d+6MjIwcMWLEmDFjaC3JOkbbzRYiG/v7P3jwYKnjb9++NTU15XA4Z86cYd9E+Pn5Vb78zJkzHA7H0NDw+vXrGomXYap4oGAYJiMjA8DLly81FgmpPWo16KiqJk0EBAQUFxcPHjzY29ubz+d7eXl5enpKlXn16hW74ttPP/3EzrPSvKtXr7KDuAHcu3fP2NiYFqStY7Sdm4gM169fB2BlZSU1b1IsFnfs2BHARx99BKBPnz6Vt5MpLCxk13oaM2aM1EYV6rNt27b27ds3bNiwUaNG7du3v337dlRUlJ2dna2tbf/+/U1NTSu/ZCE6jlKDLmI3sP/uu++kjl+6dAkA2ytpYWFRcWSBBLs6Q8eOHfPz8zURK8MwDJObmxtXAZ/PZxhGJBJFR0ffvn377du3GouEqAqlBp2TmZnJ4/EMDAwSExOlTo0bNw4Ah8Phcrnnz5+vfO3WrVsBmJmZPXv2TCPBkvcW9TVozt27dydOnMg+Ecjh4+NTVlb2+eef29jYVDyelpZ29uxZAAzDbNiwwdnZWerCsLCwlStXcjicgICALl26qDZ4one0nZv0xf79+4cOHbpkyRIejyenWHl5OZsRLl68KHVq9erV7D/Z559/XrkTIS0tjV2dYfny5SoOneglSg0aFRkZKT81nD59GoCtra1IJKp4XCgUsq8qW7VqlZeXJ3WVQCAYOHAggCFDhgiFQtXHTfQPPVDoFskSDFLzIwUCgYuLi7GxcWhoaOVl45cuXcouG3/06FFDQxrhSlSAwzCMtmPQI1FRUX379i0tLZV5Ni4uzs7OjsfjpaSksFOtpRQWFkoNmgZw5MiRKVOmGBkZXbt2jZ2ORUjtUatBh+zZs0csFk+aNElmXsA/ry0revLkCbts/Pbt2ykvEBWi1KArXr169ddff9WrV+/169dZWVmKXFJYWOjq6lpcXDxt2jQvLy91R0j0CqUGDRGJRPHx8SkpKQzDxMfHs9MKJPh8/vjx458/f15eXn7lypUuXbpUu4sUwzBffvnly5cvadl4ohZa7gbVGzk5OT0r+PrrryueZdd37NixY3R0tGTAwqBBg+RMSWI3sDU3N4+Li1N/+ETvUGrQvu3bt+O/QxiPHTvGTkYyMTH5/vvvy8rKpC65fPmygYEBl8v9888/NR4v0QuUGrSMnZUIQGrT2tzc3NmzZ7OryHfv3v3evXuSU0lJSezqDGvXrtV4vERfUGrQpoyMDHZDOpnLHDAMc/36dXZgNZfLnT17dkFBQUlJSa9evQCMGDFCalgUISpEqUFrRCIRu1Gdg4ND5UcGCT6f//3337MtC2tra3ajqrZt22ZnZ2syWqJvKDVozfLlywFYWlqmpqZWWzgyMpLd7Z7H45mYmERERFQ8W1ZWtnr1altb21atWk2ZMiUzM1NtURN9QalBO86ePcsu0Hbjxg0FLykvL2/Xrh2Xy928ebPUqTVr1rCvM5KSkoYMGeLq6qrqeIneodSgBTExMew8iF9++UXxq549ewagUaNGRUVFUqfKysokC7eEhIRYWlqqLFair2gqjqaVlJS4ubnl5+ePGTPmq6++UvxCdiHZL774wtTUVOqUsbGxZM3o7OxsS0tLVUVL9BaNhtS0uXPnRkRE2NnZBQYGsu8mFVFUVBQUFARZa89XVFZWtnPnzunTp6sgUKLfKDVo1I4dOwIDA83MzEJCQho2bKj4hYcOHSooKHBycurWrVtVZUQi0YwZM5o1azZ//nxVBEv0Gj1QaM79+/eXLl0KwM/Pj130WXF79+6FrLXnJXJzc6dNm1ZeXn769GkjI6NahkoItRo0JDMzc8KECQKBYMmSJeyiz4q7e/fu48ePmzVrNnbsWJkFHj9+3KtXLxMTk507d2ZkZMTHx5eXl6siaqK/qNWgCWKx2N3dPSUlxcHBYePGjTW9nF36aebMmeye15Vt3ryZw+FERkZ+9tln7JE7d+5YWVnVJmai52iVJ01YsWLFTz/9ZGlp+fjxY3ZxV8W9ffu2VatWpaWlsbGx7dq1U1OEhEihBwq1O3fu3ObNmw0NDY8dO1bTvADA39+fz+d/9tlnlBeIJlFqUK/Y2Fh3d3eGYTZv3uzk5FTTyxmG8fX1BTBnzhw1REdIleiBQo1KSkocHR0jIiLGjBkTEhKi+CgGiUuXLn366aetW7dOSEgwMDBQR5CEyEStBjUqLi5u2LBh586dDxw4oEReALBnzx4AXl5elBeIhlGrQb3Ky8szMzOV6GIAkJaWxu5klZiYqFwNhCiNWg01duXKlcWLF3///fdVFUhJSVm8ePHixYszMjIMDQ2V/q329fUVCoVjx46lvEA0j1oNNbZp06aVK1daW1unpqbKLBAeHs4uxPTs2TOlt6Vlp2CnpKRcvXp1yJAhyodLiFKo1aCj/vjjj5SUlE6dOg0ePFjbsRB9RKlBR7EjIOfMmaNc/yUhtUSpQRfFxcVdvnzZxMTE3d1d27EQPUWpQRf5+PjI3/ySEHWj1KBzysrKAgMDIXcKNiHqRjMvlVReXv7ixQuZpxITE2tT8/HjxzMzM+3t7dklpAnRCkoNSsrMzFT6xaR8bAckrdREtItSg5KMjIyqWqmppKTk77//Vq7a6OjosLCwRo0aTZ48uRbREVJblBqU1KxZs4iICJmnJEOelMBOmpC5bDQhmkTdkDpEIBAcO3YMgJeXl7ZjIfqOUgOio6N/+eWXoqIiyZGsrKzff//9+fPnGo7E2Nj46dOnAQEBNV1UlhCV0+sHipcvXy5atOjJkyfp6ekTJkwwMzMTCASLFi06ceKEQCAwNDRUeUejQCDIyckBYGlpyeXKyMtWVlbOzs5paWnm5ub16tVT7d0JUZxetxrMzc1//PHH2NhYyRFjY+Px48cnJyer6cXhtWvXrK2tra2ts7OzZRYQi8VsgZMnT6ojAEIUpNetBktLS0tLSz6fX/HgJ598oq14CNEdet1qIIRURa9bDcqxsLDo0KGDnF0e6tWr16FDBwBVbRtBiO6j1FBjs2fPlr8nbdeuXV+9eqWxeAhRB3qgIITIoO+thtGjRxcWFgKYOnVqp06d9u7du3HjxqtXr0ZGRr558+bUqVOHDh2ytLTUdpiEaJq+pwZvb+/y8vJVq1YBMDMzAzBq1KiKby5rtNW94jw8PIyNjdVRMyEqoe+pofLKi926devWrZu673v+/Hl134KQ2tD31KAtR48ebdSoUeXjDMO4uLhoPh5CpFBq0I7Bgwc3b9688nGxWKz5YAipjN5QEEJkoNRACJGBUgMhRAZKDYQQGSg1EEJkoNRACJGBXl5qlL29/YkTJwDIHNQAgMvlsgX69Omj0cgI+S8OwzDajoEQonPogYIQIgOlBkKIDJQaCCEyUGoghMhAqUGNysrK/P39R48eHRcXxx7h8/k//PCDk5OTs7Pzvn37qA+Y6Cx6eakur169+uyzz3r06HHhwoWsrCxbW1sAbm5uXC53/fr1WVlZM2fOrFev3rRp07QdKSEy0MtLdRGJRAKBwMTExNzcPDQ0tF+/fgBevnzZtm1bdluqhQsXZmVlBQcHaztSQmSgVoO6GBgYmJiYSB3s1KmT5LNQKGzQoIFmgyJEUdTXoB05OTknTpyYMGGCtgMhRDZKDVpQWlrq5uY2atQoZ2dnbcdCiGyUGjQtPT39008/bdq06d69e7UdCyFVotSgUXfu3OnVq1f//v0PHz5saEgdPUR30RsKNercufPLly/ZzxYWFjk5OTweTyAQSAq0a9cuPj5eS9ERIg+lBkKIDPRAQQiRgVIDIUQGSg2EEBkoNRBCZKDUQAiRgVIDIUQGSg2EEBkoNRBCZKDUQAiRgVIDIUQGSg2EEBkoNRBCZKDUQAiRgVIDIUSG/wdx6zuxqm0mCAAAAWJ6VFh0cmRraXRQS0wgcmRraXQgMjAyNS4wMy4xcHJlAAB4nHu/b+09BiAQAGImBggQgOIGRjYHDSDNzEKI5mAA00xwcQZUcRjNCKYZGImluRkYM5gYmRKYmDOYmFkSWFgVWNgymNjYFdg5NJjYORXYGBIYuEDKmHgYmHkZWPkYOPkZnBiBWtkY2FiA9omfAhkDxQwC4X5T9kc/WWTzpXPXfpc7F/bXmkzY/90pcj8j59r9D18t22994Isdi5Lc/mat3fsWpcywZ0oX3/ek1dP+wWs+e7nDIvY7s+/ZZ4TMtU8+dGvflWMV9jufuO/Xqppks4KX0+GZwZH9KelG9htWuDhcW1C/f/e37n0rngo78HRYHFgXtWH/qkuKdlpL5Q9kFvEemJD6fr9p2ub9Hx/e3n9jG8+BM3vL7N82ndt3VJB1P2s3v0P3tAL75RpqDhWvPe1nq3PuP1nr53DJI/CAGABFlW7wzxpc8wAAAex6VFh0TU9MIHJka2l0IDIwMjUuMDMuMXByZQAAeJx9VEuu2zAM3OcUukANfkVq+ZI8tEXxEqBNe4fue390aCOVsqltwTQzGpEzRE6tru/Xb7//tH+XXk+n1ug/zxij/VIiOn20Ctr5/fPXW7s83s7PzOX+8/b40bjXQ3W/Yt8e949nhtulfeKNPbtxo414ZFqlzEPV5145kF05RPY90jshoi0te+SE6gFV59TYIzIyBb1FkoyJtELS1jmCoiLt7j4a2Ad58ET6gWQwuIEpMhhS0OaekjGBvd0rm8wojrfQ6L0CkcG6FBkHoUlIL8IRHNV5UVOqTWQCWcpEJjdBCWye1ZarhMkEjv3oPnoOiLBRSIxejGOg6OVsJiCRF0jcA5zKlANaypapUGuBcvuySxgRgFJZRcgDasPM+wKVgsomTKCrTRlU2pSbxO6LSqwHbTWtWrtgPPwsIbq+tM9WUChFqjARkQMLcXGSSfZlvtgBBYOOGNWWjy7Ku1sZtviOwdw5XT06QyuBCYJKEQVRLJzvt+vLxB4zfL7frnOGDUvmoBqWzmG0WnPi6vY5VozV5/DgtxZzRhgr5yAI1ph2Mz55ddVqy2LdfvNiEOrEa3EBzeO1aL13Y4uijKrYF+W4TuK+CrTKUd/PvwPEp7+eaNO30CDWuQAAAZh6VFh0U01JTEVTIHJka2l0IDIwMjUuMDMuMXByZQAAeJxlULtuGzEQ/JWUEkAR+yJ3l0KqNHZjpTdcBEIKATFkJCr98RmeizvZV/B2OLOzs3x+eDn92H0/7c983p2eH172592Xk3F+e98dqDZt3rloFemm5YDCifwISly1e5GqTJHlIDVC9UiV2COogWFj6+XAsBE3UD07pFrJJQo8MqNZTDcTx4SCK0e7TdKDQm2SbA5dmVfOmShaCwmHYwtmksLV1XvHXyR5jkpNzxmvZRddesMtp11nd/I5QntrLdHFSW3Zykh1LgpnzoCzVDGJfsQW2ngmQ0FGMw5ikeSkZmidb4AmxMD4rkt4rl3ZZXaxgIFxWHTH0nBmYp5UOHxmYcRtmcUtlucgGMYMBK75h6M6PnDQ0DLU0qzvy6/b9fXn3+vboHr59/j69udyvtwqA07m6Xr7jZbBK8ohK/ChK4hhK+ijrcBGX0Ebfj/KN6NsxIp05L0yN0odvMkog/ley5vMDHqTGqR+Em/WYMDNIjS4fRJvNmN6/w/8CstHn5bYrQAAAABJRU5ErkJggg==\n",
"text/html": [],
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x731fa530f220>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rdMolTransforms.SetDihedralDeg(mh.GetConformer(),14,5,4,6,0.0)\n",
"mh\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ec3c75f2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"gist": {
"data": {
"description": "rotate_a_bond.ipynb",
"public": true
},
"id": ""
},
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 5
}
@AdamSulek
Copy link

@greglandrum thank you for your fast reply! You're right—this feature I was hoping to implement is already achievable using the existing rdMolTransforms.SetDihedralDeg() function in RDKit.
In this light, it seems my proposed changes were essentially a duplication of existing functionality, and your explanation has cleared that up perfectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment