From b4549fe5b20cc035b4d0ce4a00d455ca22a06e1c Mon Sep 17 00:00:00 2001 From: Daniel Pozsar Date: Sat, 9 Nov 2024 14:40:53 +0100 Subject: [PATCH] now we have a working documentation --- README.md | 9 +- docs/_build/doctrees/grogupy.doctree | Bin 134083 -> 0 bytes .../doctrees/implementation/index.doctree | Bin 6981 -> 0 bytes docs/_build/html/_sources/environment.rst.txt | 2 - docs/_build/html/_sources/grogupy.rst.txt | 53 -- .../_sources/implementation/index.rst.txt | 11 - docs/_build/html/environment.html | 131 --- docs/_build/html/grogupy.html | 822 ------------------ docs/_build/html/modules.html | 179 ---- docs/_build/html/objects.inv | Bin 1171 -> 0 bytes docs/_build/html/searchindex.js | 1 - docs/environment.rst | 2 - docs/grogupy.rst | 53 -- docs/implementation/index.rst | 11 - docs/{ => source}/Makefile | 0 .../_build/doctrees/bibliography.doctree | Bin .../_build/doctrees/changelog/index.doctree | Bin .../{ => source}/_build/doctrees/cite.doctree | Bin .../_build/doctrees/dev/index.doctree | Bin .../_build/doctrees/environment.pickle | Bin 124354 -> 123890 bytes .../implementation}/environment.doctree | Bin 2515 -> 2667 bytes .../implementation/grogupy.core.doctree | Bin 0 -> 46942 bytes .../doctrees/implementation/grogupy.doctree | Bin 0 -> 4093 bytes .../implementation/grogupy.grogu.doctree | Bin 0 -> 4818 bytes .../implementation/grogupy.io.doctree | Bin 0 -> 23496 bytes .../implementation/grogupy.magnetism.doctree | Bin 0 -> 29435 bytes .../implementation/grogupy.utilities.doctree | Bin 0 -> 59665 bytes .../doctrees/implementation}/modules.doctree | Bin 2783 -> 2812 bytes .../_build/doctrees/index.doctree | Bin 11227 -> 11283 bytes .../_build/doctrees/introduction.doctree | Bin .../_build/doctrees/quickstart/index.doctree | Bin .../_build/doctrees/tutorials/index.doctree | Bin docs/{ => source}/_build/html/.buildinfo | 0 .../_build/html/_modules/grogupy/core.html | 19 +- .../_build/html/_modules/grogupy/grogu.html | 7 +- .../_build/html/_modules/grogupy/io.html | 17 +- .../html/_modules/grogupy/magnetism.html | 15 +- .../html/_modules/grogupy/utilities.html | 25 +- .../_build/html/_modules/index.html | 5 +- .../_build/html/_sources/bibliography.rst.txt | 0 .../html/_sources/changelog/index.rst.txt | 0 .../_build/html/_sources/cite.rst.txt | 0 .../_build/html/_sources/dev/index.rst.txt | 0 .../implementation/environment.rst.txt | 4 + .../implementation/grogupy.core.rst.txt | 7 + .../implementation/grogupy.grogu.rst.txt | 7 + .../implementation/grogupy.io.rst.txt | 7 + .../implementation/grogupy.magnetism.rst.txt | 7 + .../_sources/implementation/grogupy.rst.txt | 22 + .../implementation/grogupy.utilities.rst.txt | 7 + .../_sources/implementation}/modules.rst.txt | 4 +- .../_build/html/_sources/index.rst.txt | 7 +- .../_build/html/_sources/introduction.rst.txt | 0 .../html/_sources/quickstart/index.rst.txt | 0 .../html/_sources/tutorials/index.rst.txt | 0 .../html/_sphinx_design_static/design-tabs.js | 0 .../sphinx-design.min.css | 0 .../_sphinx_javascript_frameworks_compat.js | 0 .../_build/html/_static/basic.css | 0 .../_build/html/_static/css/badge_only.css | 0 .../_static/css/fonts/Roboto-Slab-Bold.woff | Bin .../_static/css/fonts/Roboto-Slab-Bold.woff2 | Bin .../css/fonts/Roboto-Slab-Regular.woff | Bin .../css/fonts/Roboto-Slab-Regular.woff2 | Bin .../_static/css/fonts/fontawesome-webfont.eot | Bin .../_static/css/fonts/fontawesome-webfont.svg | 0 .../_static/css/fonts/fontawesome-webfont.ttf | Bin .../css/fonts/fontawesome-webfont.woff | Bin .../css/fonts/fontawesome-webfont.woff2 | Bin .../_static/css/fonts/lato-bold-italic.woff | Bin .../_static/css/fonts/lato-bold-italic.woff2 | Bin .../html/_static/css/fonts/lato-bold.woff | Bin .../html/_static/css/fonts/lato-bold.woff2 | Bin .../_static/css/fonts/lato-normal-italic.woff | Bin .../css/fonts/lato-normal-italic.woff2 | Bin .../html/_static/css/fonts/lato-normal.woff | Bin .../html/_static/css/fonts/lato-normal.woff2 | Bin .../_build/html/_static/css/theme.css | 0 .../_build/html/_static/design-tabs.js | 0 .../_build/html/_static/doctools.js | 0 .../html/_static/documentation_options.js | 0 .../{ => source}/_build/html/_static/file.png | Bin .../html/_static/fonts/Lato/lato-bold.eot | Bin .../html/_static/fonts/Lato/lato-bold.ttf | Bin .../html/_static/fonts/Lato/lato-bold.woff | Bin .../html/_static/fonts/Lato/lato-bold.woff2 | Bin .../_static/fonts/Lato/lato-bolditalic.eot | Bin .../_static/fonts/Lato/lato-bolditalic.ttf | Bin .../_static/fonts/Lato/lato-bolditalic.woff | Bin .../_static/fonts/Lato/lato-bolditalic.woff2 | Bin .../html/_static/fonts/Lato/lato-italic.eot | Bin .../html/_static/fonts/Lato/lato-italic.ttf | Bin .../html/_static/fonts/Lato/lato-italic.woff | Bin .../html/_static/fonts/Lato/lato-italic.woff2 | Bin .../html/_static/fonts/Lato/lato-regular.eot | Bin .../html/_static/fonts/Lato/lato-regular.ttf | Bin .../html/_static/fonts/Lato/lato-regular.woff | Bin .../_static/fonts/Lato/lato-regular.woff2 | Bin .../fonts/RobotoSlab/roboto-slab-v7-bold.eot | Bin .../fonts/RobotoSlab/roboto-slab-v7-bold.ttf | Bin .../fonts/RobotoSlab/roboto-slab-v7-bold.woff | Bin .../RobotoSlab/roboto-slab-v7-bold.woff2 | Bin .../RobotoSlab/roboto-slab-v7-regular.eot | Bin .../RobotoSlab/roboto-slab-v7-regular.ttf | Bin .../RobotoSlab/roboto-slab-v7-regular.woff | Bin .../RobotoSlab/roboto-slab-v7-regular.woff2 | Bin .../_build/html/_static/jquery.js | 0 .../_build/html/_static/js/badge_only.js | 0 .../_build/html/_static/js/theme.js | 0 .../_build/html/_static/js/versions.js | 0 .../_build/html/_static/language_data.js | 0 .../_build/html/_static/minus.png | Bin .../{ => source}/_build/html/_static/plus.png | Bin .../_build/html/_static/pygments.css | 0 .../_build/html/_static/searchtools.js | 0 .../_build/html/_static/sphinx-design.min.css | 0 .../_build/html/_static/sphinx_highlight.js | 0 .../_build/html/bibliography.html | 5 +- .../_build/html/changelog/index.html | 5 +- docs/{ => source}/_build/html/cite.html | 5 +- docs/{ => source}/_build/html/dev/index.html | 9 +- docs/{ => source}/_build/html/genindex.html | 132 +-- .../html/implementation/environment.html | 133 +++ .../html/implementation/grogupy.core.html | 322 +++++++ .../html/implementation/grogupy.grogu.html} | 62 +- .../_build/html/implementation/grogupy.html | 198 +++++ .../html/implementation/grogupy.io.html | 240 +++++ .../implementation/grogupy.magnetism.html | 263 ++++++ .../implementation/grogupy.utilities.html | 381 ++++++++ .../_build/html/implementation/modules.html | 190 ++++ docs/{ => source}/_build/html/index.html | 7 +- .../_build/html/introduction.html | 5 +- docs/source/_build/html/objects.inv | Bin 0 -> 1167 bytes .../{ => source}/_build/html/py-modindex.html | 53 +- .../_build/html/quickstart/index.html | 5 +- docs/{ => source}/_build/html/search.html | 5 +- docs/source/_build/html/searchindex.js | 1 + .../_build/html/tutorials/index.html | 9 +- docs/{ => source}/bibliography.bib | 0 docs/{ => source}/bibliography.rst | 0 docs/{ => source}/changelog/index.rst | 0 docs/{ => source}/cite.rst | 0 docs/{ => source}/conf.py | 5 +- docs/{ => source}/dev/index.rst | 0 docs/source/implementation/environment.rst | 4 + docs/source/implementation/grogupy.core.rst | 7 + docs/source/implementation/grogupy.grogu.rst | 7 + docs/source/implementation/grogupy.io.rst | 7 + .../implementation/grogupy.magnetism.rst | 7 + docs/source/implementation/grogupy.rst | 22 + .../implementation/grogupy.utilities.rst | 7 + docs/{ => source/implementation}/modules.rst | 4 +- docs/{ => source}/index.rst | 7 +- docs/{ => source}/introduction.rst | 0 docs/source/make.bat | 35 + docs/{ => source}/quickstart/index.rst | 0 docs/{ => source}/tutorials/index.rst | 0 157 files changed, 2070 insertions(+), 1506 deletions(-) delete mode 100644 docs/_build/doctrees/grogupy.doctree delete mode 100644 docs/_build/doctrees/implementation/index.doctree delete mode 100644 docs/_build/html/_sources/environment.rst.txt delete mode 100644 docs/_build/html/_sources/grogupy.rst.txt delete mode 100644 docs/_build/html/_sources/implementation/index.rst.txt delete mode 100644 docs/_build/html/environment.html delete mode 100644 docs/_build/html/grogupy.html delete mode 100644 docs/_build/html/modules.html delete mode 100644 docs/_build/html/objects.inv delete mode 100644 docs/_build/html/searchindex.js delete mode 100644 docs/environment.rst delete mode 100644 docs/grogupy.rst delete mode 100644 docs/implementation/index.rst rename docs/{ => source}/Makefile (100%) rename docs/{ => source}/_build/doctrees/bibliography.doctree (100%) rename docs/{ => source}/_build/doctrees/changelog/index.doctree (100%) rename docs/{ => source}/_build/doctrees/cite.doctree (100%) rename docs/{ => source}/_build/doctrees/dev/index.doctree (100%) rename docs/{ => source}/_build/doctrees/environment.pickle (56%) rename docs/{_build/doctrees => source/_build/doctrees/implementation}/environment.doctree (69%) create mode 100644 docs/source/_build/doctrees/implementation/grogupy.core.doctree create mode 100644 docs/source/_build/doctrees/implementation/grogupy.doctree create mode 100644 docs/source/_build/doctrees/implementation/grogupy.grogu.doctree create mode 100644 docs/source/_build/doctrees/implementation/grogupy.io.doctree create mode 100644 docs/source/_build/doctrees/implementation/grogupy.magnetism.doctree create mode 100644 docs/source/_build/doctrees/implementation/grogupy.utilities.doctree rename docs/{_build/doctrees => source/_build/doctrees/implementation}/modules.doctree (79%) rename docs/{ => source}/_build/doctrees/index.doctree (58%) rename docs/{ => source}/_build/doctrees/introduction.doctree (100%) rename docs/{ => source}/_build/doctrees/quickstart/index.doctree (100%) rename docs/{ => source}/_build/doctrees/tutorials/index.doctree (100%) rename docs/{ => source}/_build/html/.buildinfo (100%) rename docs/{ => source}/_build/html/_modules/grogupy/core.html (98%) rename docs/{ => source}/_build/html/_modules/grogupy/grogu.html (99%) rename docs/{ => source}/_build/html/_modules/grogupy/io.html (98%) rename docs/{ => source}/_build/html/_modules/grogupy/magnetism.html (97%) rename docs/{ => source}/_build/html/_modules/grogupy/utilities.html (96%) rename docs/{ => source}/_build/html/_modules/index.html (94%) rename docs/{ => source}/_build/html/_sources/bibliography.rst.txt (100%) rename docs/{ => source}/_build/html/_sources/changelog/index.rst.txt (100%) rename docs/{ => source}/_build/html/_sources/cite.rst.txt (100%) rename docs/{ => source}/_build/html/_sources/dev/index.rst.txt (100%) create mode 100644 docs/source/_build/html/_sources/implementation/environment.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.core.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.grogu.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.io.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.magnetism.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.rst.txt create mode 100644 docs/source/_build/html/_sources/implementation/grogupy.utilities.rst.txt rename docs/{_build/html/_sources => source/_build/html/_sources/implementation}/modules.rst.txt (72%) rename docs/{ => source}/_build/html/_sources/index.rst.txt (92%) rename docs/{ => source}/_build/html/_sources/introduction.rst.txt (100%) rename docs/{ => source}/_build/html/_sources/quickstart/index.rst.txt (100%) rename docs/{ => source}/_build/html/_sources/tutorials/index.rst.txt (100%) rename docs/{ => source}/_build/html/_sphinx_design_static/design-tabs.js (100%) rename docs/{ => source}/_build/html/_sphinx_design_static/sphinx-design.min.css (100%) rename docs/{ => source}/_build/html/_static/_sphinx_javascript_frameworks_compat.js (100%) rename docs/{ => source}/_build/html/_static/basic.css (100%) rename docs/{ => source}/_build/html/_static/css/badge_only.css (100%) rename docs/{ => source}/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/fontawesome-webfont.eot (100%) rename docs/{ => source}/_build/html/_static/css/fonts/fontawesome-webfont.svg (100%) rename docs/{ => source}/_build/html/_static/css/fonts/fontawesome-webfont.ttf (100%) rename docs/{ => source}/_build/html/_static/css/fonts/fontawesome-webfont.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/fontawesome-webfont.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-bold-italic.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-bold-italic.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-bold.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-bold.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-normal-italic.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-normal-italic.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-normal.woff (100%) rename docs/{ => source}/_build/html/_static/css/fonts/lato-normal.woff2 (100%) rename docs/{ => source}/_build/html/_static/css/theme.css (100%) rename docs/{ => source}/_build/html/_static/design-tabs.js (100%) rename docs/{ => source}/_build/html/_static/doctools.js (100%) rename docs/{ => source}/_build/html/_static/documentation_options.js (100%) rename docs/{ => source}/_build/html/_static/file.png (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bold.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bold.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bold.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bold.woff2 (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bolditalic.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bolditalic.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bolditalic.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-italic.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-italic.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-italic.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-italic.woff2 (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-regular.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-regular.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-regular.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/Lato/lato-regular.woff2 (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff (100%) rename docs/{ => source}/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 (100%) rename docs/{ => source}/_build/html/_static/jquery.js (100%) rename docs/{ => source}/_build/html/_static/js/badge_only.js (100%) rename docs/{ => source}/_build/html/_static/js/theme.js (100%) rename docs/{ => source}/_build/html/_static/js/versions.js (100%) rename docs/{ => source}/_build/html/_static/language_data.js (100%) rename docs/{ => source}/_build/html/_static/minus.png (100%) rename docs/{ => source}/_build/html/_static/plus.png (100%) rename docs/{ => source}/_build/html/_static/pygments.css (100%) rename docs/{ => source}/_build/html/_static/searchtools.js (100%) rename docs/{ => source}/_build/html/_static/sphinx-design.min.css (100%) rename docs/{ => source}/_build/html/_static/sphinx_highlight.js (100%) rename docs/{ => source}/_build/html/bibliography.html (94%) rename docs/{ => source}/_build/html/changelog/index.html (95%) rename docs/{ => source}/_build/html/cite.html (95%) rename docs/{ => source}/_build/html/dev/index.html (89%) rename docs/{ => source}/_build/html/genindex.html (59%) create mode 100644 docs/source/_build/html/implementation/environment.html create mode 100644 docs/source/_build/html/implementation/grogupy.core.html rename docs/{_build/html/implementation/index.html => source/_build/html/implementation/grogupy.grogu.html} (60%) create mode 100644 docs/source/_build/html/implementation/grogupy.html create mode 100644 docs/source/_build/html/implementation/grogupy.io.html create mode 100644 docs/source/_build/html/implementation/grogupy.magnetism.html create mode 100644 docs/source/_build/html/implementation/grogupy.utilities.html create mode 100644 docs/source/_build/html/implementation/modules.html rename docs/{ => source}/_build/html/index.html (95%) rename docs/{ => source}/_build/html/introduction.html (95%) create mode 100644 docs/source/_build/html/objects.inv rename docs/{ => source}/_build/html/py-modindex.html (71%) rename docs/{ => source}/_build/html/quickstart/index.html (95%) rename docs/{ => source}/_build/html/search.html (94%) create mode 100644 docs/source/_build/html/searchindex.js rename docs/{ => source}/_build/html/tutorials/index.html (90%) rename docs/{ => source}/bibliography.bib (100%) rename docs/{ => source}/bibliography.rst (100%) rename docs/{ => source}/changelog/index.rst (100%) rename docs/{ => source}/cite.rst (100%) rename docs/{ => source}/conf.py (96%) rename docs/{ => source}/dev/index.rst (100%) create mode 100644 docs/source/implementation/environment.rst create mode 100644 docs/source/implementation/grogupy.core.rst create mode 100644 docs/source/implementation/grogupy.grogu.rst create mode 100644 docs/source/implementation/grogupy.io.rst create mode 100644 docs/source/implementation/grogupy.magnetism.rst create mode 100644 docs/source/implementation/grogupy.rst create mode 100644 docs/source/implementation/grogupy.utilities.rst rename docs/{ => source/implementation}/modules.rst (72%) rename docs/{ => source}/index.rst (92%) rename docs/{ => source}/introduction.rst (100%) create mode 100644 docs/source/make.bat rename docs/{ => source}/quickstart/index.rst (100%) rename docs/{ => source}/tutorials/index.rst (100%) diff --git a/README.md b/README.md index fd35883..c355a29 100644 --- a/README.md +++ b/README.md @@ -55,9 +55,16 @@ pre-commit install pre-commit run --all-files ``` -To build the documentation navigate to the `docs/source` folder and run `make clean` and `make html`. After this the html page can be found in `docs/source/_build/html`. +To build the documentation navigate to the `docs/source` folder. Then autogenerate the documentation and build. After this the html page can be found in `docs/source/_build/html`. Follow the commands below. ``` cd docs/source +sphinx-apidoc -o ./implementation/ ../../src/ make clean make html ``` +To build a pdf containing the documentation instead of make, first navigate to the `docs/source` folde, then use the rst2pdf extension. +``` +cd docs/source +sphinx-apidoc -o ./implementation/ ../../src/ +sphinx-build -b pdf . _build/pdf +``` diff --git a/docs/_build/doctrees/grogupy.doctree b/docs/_build/doctrees/grogupy.doctree deleted file mode 100644 index bd66d0938fc9ea47dd0029f962f9850daf88c2cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134083 zcmeHw3!EHBd8hSQNxOPkk|kS~C6DEYM)GQ9%a#Gz0vie2vasw(0u00~vpcPwY0b_I z^N_R(c8tx#BF*arh5rQ$#gphFD|NE+{tGcGU zrh9f*>)ahbyz1$$uj;Gs`|7Lj`&V`KJp->>aMrxD=zqb=X1!Fdo*XF@i`81uYj%Pq z#oBm#(yO*QukCDoQRl8sJ{W8iPBd%n#<5aF_wQ5LS8YnF)ExxmpFAW9*t#Yg48IOXM6OGzLyFQhx7sihjCcF+6MahLnypzO2 zcY&951Xqjd1@O@7lvV|Uqao9!1;HZ8>%m}QrCjwo2is$XV5rb)HOgb{7WzniT2L-F ziT}mpl|r+Lo46jR7AD2jl485Ae~f{(hIf?8w1dU1!UR3)lvb8Dl$Mn)C@m;$3~t-; zjHcIU?kEhEs9raRi2lsol-l+MI*ADRC z6u0VABaJ3{wduh8_E>4DP=S(R>1_2o7&_b@o2(Vv6>!WlTNk+{r34nQ5G)=nZ6ZOG zE=2E37eU4sLikF7L!GK8+3^jF&1x0S%H7Xm@;!%~^-N_sM zStAW$WW3h!a-wIdW3kV45BF#5;f+QQmq5m61q0=3(K~6FrLfpUSp|z>c#SgKNX)9}%XqGVzxgQ!+%H@;>g5?qRlqFbqwGF&D*#`2#Qt-6B4sSti1k0&O9`^j( zGe3GI62MX-fWDk(Y}N1eWX6Mn_K{lsydOY z9gXNJs+&y*=CREVvfyl~Ej8qCS z8G^gj%pE*5B;N8Gl`>qKq1^dJkdvcVMiZ7yD8)J>(;BsV99Fe1piAAqk0kdmm{;u- zOtn)-K8%k1uIccUi&Gv__4tD*_}*RxgY}c`N~=6dGtg+*JN$$oPE&L5>6TltM$X2V z`bLhIy%Xb@k}(6S%h5u0yi{u#BI@NL1~F~53XKV`)d|*)%IP9vd6@N3rd;fl9t;-Y z3RZ|oQI0*f`!8umg@^LAUu^R{fY}t9>0l~=(bUFhLhD3F)gtN7gJtHZM%z3L;c$W_ zN86PO>lTa*jkapzB()aiwns}3zO;iWo^AQjR+{qK4nhRHp6v-;(XxHtBywWHPs|3hMZ0sg9qkc`f*L zh!>u<)o72?JRyW!M1YjTWJLl$eEa@`xu@QC2THLEt|EFuNI9H4QSuNR96X#WH;1TT zwLLlJHOOH$+jS2CYNgU-6&<_{MYt|qq}CWKw+e_I zhJ*)$p`(aCi^9ujcWcDo{M;~g{YaA9?se#P<->KDY24C1xFkyt{LNH)gMT6YvysEY zvoK=A4vf``Q(at^v<2ch_&j3(Hu`CGNz8qDgK^JoxE0b@(K6{om&?S?#ds9TV{XD|B!*v*%0<{GFmFq^|auvr2!XD0)5@^*7-kHSVRY`4=1ag2jhC_<(9? zT;Xrsr4rT1X;z9HMp>3eM4@H*R~c=}NmE#Mx!u=QFP23 zikK3tD8V%i4K=M~6Mix72=}4IVF;m1;g@CTImTq#;<`g` z$p6dMd|EaMKq&-o{7=_ zN~HyNQqAo#|Bbk*?zs39$cbh8~o!bdLySmnpb9c3S26tz+7vpF5%C0LFAs+*{bSKKKZP*9&t+8xOAT__X5Aad_#W@vj|6UNw@fZej{>oo+AUJbgJgl1 z5lzv|O|_;jSE$?D2@IWr-j>OS>h~&?kjZy5EVQy( zQ}Hjfu7bTsCS*D;;?I}fS^BNm4g-rcI_$risu9iqPT2ea z>qKUO4~4hq-7G@ZKj^x%F2FObjNf+hR{B&NuIT?~5V<^%(iosc|7~2hq*3SwBLCH(b%&Wqo7?WV11Hdt4a-(=74D-J04^7i!hAwLenF(tB`Bf@v~7A zz*vZAO|uqlM?aEGE9dLXMkqL(L+=6^KNiZ^UyrHO5_4}9A~njjc!A3mTllNOA{G*n zGXNV5ut-y>c&+42e~^|A?DW1Xci3_>;bQrCEW^lph5z%fGlWHMPR>LThj&?~E=$a7 zGl=3bFM485W|#psr{Gtcrd>g@FCrH};r)fojMIeujl|Xl|9md$Z^A!OBQl2S*_o^HDh`I`7+vhtwIcl=K1S7*gy)7wL&v9m-r9O4`Y^7PehS zZ(-le{A3Wevr7Lw>cj?rZHiiDhDM_;WoSN+i}rR8At))wNBCO{>ZQbIYTe1q>^>rL zItC3=)=((^8bvIG$oax6%C)JXp=Y*t5-u5!Z65XziWd`T*%|nE8y-S< zn|u^4x+{apKipyTm%mqDrg+b;n zq#6ED7KRysk=zoz@ep(C9%d4NF{nfz-6Kwdgob1u6q1R6gu7u_j1tCLR&T?yP{9SL zPN|x&wU|DiMNEEFuLO+#rQrV03_}i*tVxdVq{o`6|B;C)i2)KP0I5i_y$o$*ZwbQE zdX&=a{vZpxrl}GB_9*k4#ngyOh&_v`k+OuTxv3=9XBg-kWcOStmI?+sDS9Jk5^~Qo zJd;FlJ!x%`ds=6gF6?7Q*-S(!XB3RHD}|Hag7Dc2ch&{`ShKS`H9LLdd)%UbEtt9A zzYc#znzaX4CYpB*7)hh(t9qAHXdX!|lcL=QD$u+zDN#9;lc)qhFH9BVDf0f!;4=x+ z^T$bIRKhRPRh6#1@aib8PWu!5x5R(T{MYBd$M|oB{?a&^IqYq?R&8QQQtflaTBZ|) z+Y~|Jx@h~w<1X#0DKGZ!4Cl(llUMTJozsTtUIvLLhk$OF?!J&VxciL4bX}66oyW9? zPXl(VV#)~UF6N1L7_SezlpVy=;_zQb)z~23>TdOkn9_jF7Kt(+ihKaQh=C$C2VGF)-Jr+_MN%VxA_oWH=jocE$TeMKRd0|C zhZ1I*dx*FvDEVY;)WaJJ#rC*FC7W2H!zCk-YWHKU!GLA0itSY`kIK^qP$837C9-38PTihHK3)#BfjRs8-&qTpSMh6rXEqurT>ONG(y zAR<@b?5{^Q5Dk*^Zk%w393ceAj*N^9=XT@&_WrWNwMo3~!W)Uj3>L)-)$}A&1@%*_ zro z+4c06dyRQ=vmcSWvr2{4UZ0{?nPJnYOPP2LbI}>WYTu8lOo6)vAhFutAtIN9FdX}? zsQQKuc{GJ8P&PM)RXm`sVz0ZNFWK5+0M{tqdUdq!3{_i@+ww?7%G9m9+PeO0CZS0f zPP%_Wb{-b`bMAb*EJJTFlF}B}o%ni|PB0E8dq9ZRSGfmnW08=nK_&X_9yk(mHKg^a z6m3Zy%%J+X?4BzVQ9k#NQ?wvQDVctzQR?okghy0J6c2XTu^ho8Drk+T$cw#X30s~7 zJhEYtf=4c(D~3n-YL4KM%joqZtov3*Z#w1#Mxrlk8dUv4A{QEUr_3wg&jk9s(F2mlh*{eHX7FpL`3n9)XvtS1aJZ0!xZ zso{A50o2}Jdb6!u#XG4@6LiT&q%Gykk|j0CI^!LNSkCMlriM(}M?;EV&{EXk%F}^e z(Y`!mPn|6{MBtcw8F2BcUSnb^SMiQ}^ad%w7lLN+@_MdSp7cU!Wo9eYLjSw0LifK- z6arY$-JfM(Ac{v<=!qE=A&0p}ZF|Ys3vD}grO7^6h5pN!LFd3$ z`{4$;s2gs1%3-HE)Z0wAinrxcY9uKjxXu!xyBAU;Pvl<2VK4N=(#VsNG}5~xS}AtD zy_K?yd31M2VlioyavcRJJW4p6w}!~mgu8=-t5-Y&cP4-t2R(^^GKxexLm{cL%c=xtl?tI;l%iINebDrk68rcO7o8D=@?lHrZY4^D z@>4|QnrRJ$@~J$W!k6Cd$!CZ|r7cE`nc%j2!j(6;8%o=bg#u7(suc+ zOyZWX%JlKWNQ{xRm>ZDJDF zG^j+M-NQ}dnueslo}w*@YZ_Evk==7a4l20$Vu}{z*row9!(%(Lm(RVwZ_ARXXLTz; zj`2%~DCHQRf73A@34ZMMK6 zT6WvCM6XrSr7{C25pV8OxqduF-oFKWx;OVx39-4aPFIXx^VJ-o*E<{DWbL>&I$mkF za5l*3(OP4)Svc-Fk?cz%Tl^Ag=oi(#GNHaa9nshv#zOl<)oYcUPmo?a2)n%YI%Sk2H1u;)_ zSN^o0u6!zUSCYM;h5yEDc2@A;H=!3X_^;-m3;(?b6dCbfY6ST2kMWOB*Np$JPZ&K0 z7Ocz~Vc5M?MNcev$07E)&0M=$o~+jztwObxo|U?_I+hH&W}Fyx_=|}`V8vP( zvy2sAkcCTy6|W~ES9F^lE8f9Qop2W#7DId04oU_5(_=s~&?h$GVf{qR98u`2$29ST zOkI`W*Hs{j2Z`y48Bx$imz2C~Be5$`+4c3-*t3~8cQ+(r zEHvhk0duuJt4QRxQuId7K;+hEcm~RV;9iqOXDY_MiilFqL`L8l58`$~76($Z z)HjYR+ccqEPJ3-A_a?BCM&0{*ms3zK$u5(+-DWDGT$K~4{MJdtP_9bV<0VBJMsgNa&pk< zhG{z?ZE)(0!n6^obc3_Yt>*%gweIQ}=C{LcWCvok2>f?ZH8v2tdWJV8f6U2i0`mHY zAaXez6M6kGmo<=A+IGxQk4A^XTlS{pFZaXU=cmJ+vH3>xXWZ=Gl>BHvJpSYKcno)? zm^_9zyEi2dEOiaa1TD`4Q8q0n`*RDFj<@nz0j1vqNymWFnu9J-`c{C@1S7Qd_FF8UN6dT`E;Pny3nTVyUA4O~!U*y_N9YtV(cJsTNYoDQcB47ENC% zagAqi(HU7t$uEma-K|8qka8&zxn^2pA?5#XGWLuumisb^TP~=`2#ny`>p|ZO!k*Pl z#?Q#o0fwk0_q56Q5OeP~F}aLlP>DXfhnrkRF(kDoMOzZ0HmIH?yXQ(SRd91niWcP9 zrU5g<&x{c_nUg;cr~AjkO2h$!V4&$7w*ZK;{*8=ST`8FTJyBhwGEN}QsA`EKwZ z=v_`B(O`wYEVQ~uUHu~1&+N@*7vIAT(hSMzz=d+qbtT*XGybf z-i_Izy|o`UFP#pX;pgTxkKrw>6PRD1_iyNjyFJt4Zf&d^u@^R6rPc)rPxYvHc0b*E zM&@oMPj(h;A3xG&1-AbMMsf^nuQ}*~?Y|9*jIcd50@(hgkeE-`4BKDa)5951zH&H- zVg8;f>j~xGPM9=4l&!u#HD03^!*QBx_>p!x^OerTpq)q9Cd-@4`Ah3Z%k<6lCLLpm zbM4CGyk$B>tY^MrZHIx|4r7)C9*^@FbaYyFB(hBKn4yx$QLi4}W8$xWjnz(Kt1J$G zr90y_d;z9hWep-q%C!m;czG1N)YUX2HiOYC0Yf*o8&G9ql6Jk9qlyppEr?0uyc7Yt zVb;I?!c4u^5*r5a)_S!#L`C_vRpXsib^Z#SOOr!?iZvW!O9lC472=M5a1<0;%>Q%! z)&~7xR)hB6L=<9yMjO#AFVK823zuqv=6yuuN-481&|JlK)4i*lOp3poPT$X){_g%i z%hX+oI{zt%;#X(ri5Zb&yZ<-Z7g<0$H+xV*Go-im341 z9gw;>4@B`phn`rvxVo=CXjRx%_EyDOX3yP|461lqY``84q#JSw`zZ9HQ_m(5kTo#7 zHfob%5)C1PIISdv@p2nR!c#4or&+>w_gL!ghD6=b6H9l)JdV=#P;+Ki)mvvz&Z;wK zm1=$GV<`ru#DHn`ONkD?hl|e0`pye2nY&devEL~oa!u66`pz3zgZf1obLKMM;o>xb zo^@vxX3&X08q2V(3$F zmo>B`=Rm%n7JW|t`puU!H7H-dp;qwv4Yk{A?Q&X1C#SV()u9dd zAF_1SG~Bfi?6+C4Sqzt`ggUYqE-6tMuA54(bQptpGXOokv6|XFCImPWdv<6{%V3d%ZK}WgNy0?Iq7)u#!gITYHyNOP(aV zOzL)fCl_cvcU8my5E zk=w@syKSGuN3|+m$17cYXNNi!J|3aRIr+Fy+JeVh@9fZM#5amd%R~%a8V2aI1Xw`q4v(=5@9JTPt|Ee0LpNxN~9bgl3FvE4{U@FmTf%TArnL8WI-Jy7qU#Y+Fu1>ym z5jrIMtU4Dg298LFm2~bzfnu;$^#0mhqz9eg9C3ep^mb{{!B(e00(w@24S~e>$wV^% zZdy+GRwcK;wG*t4Ffu{}(dA=9D3Y6#QIX_Jcc~lnAwp_U#FVA`!uu zxGmOh#Sh)n4~5*u_w=2m--_+&8zMdRe~+rMmuKfoRg{vfR*CIBiIw%W0<~^bSb1}Y z6p#3~6AU!Gqvc}9|1h|XS%T7<6SC0G$A1tM$xBenBWmcBzK_xR7`K8osJ{g%U-KH2 zGEo|AFGN(Q1P2Mcg=84J%#hM{mDRSM0y}svrL?2JJ>$ zih2JPs5|tk!U=V|@p#AT^yB0z9e#Y3(oeZ&Iq{e$dTjhcDnv=Ow+H`uNWmWbylHsw z)wTyO*E%?#jOV=2edAu#cWVZO@cZ`NmsDzn;%L1*eyoyk7Gb#t|GiF2cEq6Q#g)T{ zuQ96014AfRyl#iS)M!?D^T<7|#F4XI)3AH{&bE*?Xw9H2FV_MJ z>5+T7<9kBpvwL>kasN81#`f%sgkpr~9}4H$$Zfs3BXS#`3zo#1)x%C!6L!kn1|nBD zt|pfc!ap8JQMU92{%$wTMe*J5Yc5*TH5bu1Ruj=vz*o#fq}#V$sDCLak|&}eJucKN zL``58x(EOGbj`ESa>I;_Jr7FP5WyBAi=B+}26}n<)8Qq=r&Oco=Lr?(PLx}voNyxH z;&dh&Z6hz045f3%^z!1|4Oz(VzEFO%yp;T47P+XUq{VNe9JsZ{nV;_C=<(aUF3Zr!gLz*?N54QCR!-7I)+o-zD=OxJUgwT_=0if1XJnn?zgseJvnr9BuMts7D>z@QQ{138FX2twqr6dxXMvcd zg6KCl*UP0U`iD0^Md>X-*LjH1zhvsHTmtA25i)*g^T)XCg`}R7*i)ES{6lSEOIAfK z(y0x`J|%a9;BElKu6YeM=}XYwpb~v@TCy)edqWaGU`aUH^Ck9aP<>CzzXz8*a{e(z z3ljSzbDZIklL7nOlSOCBkM1U-lp|;%&5&ZO#2zLuo@*mIl$xQwkx$X2c?uDS2{!O~ zu(w6Bt`GDsr@SNyE|ad^mMwu#HR-At!AZo4vkG(KDf0gF!KWMeq!J==ekomX;>=fl zCC;3`$;7$u+-;-|c&Ig6Xw@dg>mIzzEB+M^&f-ECi87No+G*r-J7O!$cdZP{H#w%2 z>%9#cFe8DeV{_+v4~DeC-DfPfv{`YGeIpD|NT^roe7?o zq)7I3dE@1Tq|InLPfRM&<2{SdIJ=jSJ$?d2uKCN%9zV)ujjkBWSn1!h_(nf$el0Vb z$v%&|WF)!qnw^Ct_aXElCdt+9cO|*62SuhNmzqG5JGdGin65d=JvVmL80oGuXarpk zPz62H-KSyyHCHN9Ufvl?8^zTah}o9O`^RaM183&BTDuh{!ZTEx9_K63{bcuNu2+b> zX5-_+(?R;nB;yFm*UvlaEQKeDHLu?J5pq(svriyW>jLwZ7SJVG1f*iTi-^b-<7MA= zeUma6y)OpYH77{)#)3Luoy>+|6?|lst`$}I8iMe#(Ve7yI?<h5*(WP+PTkaZ&eHZR-$xm!3G>iqnlbZ^XQbSF(iW z=3VNb$h^nlBJ{-4fj9)eH}6{Rb|t;#USNjYyvyCaLhjBg)lSi!DQcB@Bn{Yz=;WJr6)r&~)fiHSv5xkzGRKh@6ROJUct zCl*>P{uiklJF!UEUC*GhUU71j(uswuREn2%zw7K~LW1!RAWEBHJd&cU5xK{UZWbc< zuYj+Z$X&PJ6}f*D6qzD-Y66k_xohCx=-Q0jEyFV+cV#h%9Y0PL^o-n}Xh-fUU<^0b z8{SO4r;GN(V7>ne^l;gTP9}R1dkUc?tTT;7SQ2N40U4h!8K3R=d}kH`srY;c5xL@X zW4&@;?9>pxDr5&nx^&Zcdnhilo2G}kDO1N~cR~lX$=WqJ zV>JeWuV=2J6QpI@3Irz2r3}=DQ`9O0HD#>vVVA`U2WrZN#8adR)b0j*B2fEvy5c~M zujVdL+bUus{nDEwM%$pb4M_Y~lT9N$+tS5?wm0VqJ&~tPaEh1khf{-QNwdb zW}T2Wm^#CduPI*<`RIdq&bGy-K#lGPS`NP*_9c5Lrsd$ji>i4XhhiUdb~7Oq`$G_= z4aGj3qO1{$#fxqhLb3ONub5Cwx8D_ty$TeWLNRIrq1bovk5AVeimkSd(TKv7u^>Wt z4bk?D!mf!%VcHuQv#SFz?U!7Sk{?Jmm8Xw-3wv&$2yBiW14R31DB9TtM+eSvc~VO@ zD)^dDME}8quk$l?Tn1n3KolQ*(Gzn<>Oc6hYw8_*tzoX5R;_|B(p<{m>zA-Vm;a<4 zDKhv{#;OLGn`PR%t~^IPMVjF2SI`p?d>x`I4!-zm?t-tK!fQ6#_!`ipH;TP->f5M} zC@lP{d$Gh`L>piY3U)L)X5Q6kn0Xhg5Q0*(`D!Pd2_aSh zBA1IWm(%Z0QPv2t;=4WzA=V4QS4@bd+wTgo#z2uN#G)n;Vtow%_;k%7)`mp$GGZ;I zb$HAoRnjxox;h$bNkgY?yUGMDMQ) z!rz+faVOUa@y;lS(#AW_<+28|dMCKCd(gN^9}=g%;+n@_>xah^nR!fhK-S*Dcx}x> zOm-Xk5EGN>_Pb)TU7*MmlTj0h$=;2Be7feCY`J0KMiiz@6R!9PMAkD3+jbbf&3Hi$ zrvTDUE@`c?@5f~!(H8On$&Q*CqE06+;yQD$#~HFzD~j(8r8m1V)~Badcs$}9F{?A)X`O0U-j}$jdsp5j-XEzpPezVyOA2e9j&||7s0iGQN{KE2QM^Ryi6zl> z9MpDms)cG3^%m+`%z&F$x#dm>)mf$5a`*WZs*+poXvCz9k3W{8Rv8~FC!u_rlWShd zRZcmcB29dJ3q&cv!~=B2@iAXbJ3iLj=lyf>s#~DWp4eWlbsvJE9**cEE1V}_&`}eP z6EMzGE4*?KadXl-2qU?GHq7T(*6cJmKGEn|AqAg@kpq+co@lh*J`W@8NhdhZIu=7e zik^<4*%4twpUgCa9b=W+iBWt~hfbBR7Ei{bx*;1lDC43o1&mmAScyy*uZ}Y_F0iV~ zgDrs0@HBC#Zg}QW$X~e2DejTh|8IoajF0bKry{*9qzzs=gBY*wLej}dx`ZX9?o?-G zR|%2sbluk?c~jV}c#*h{Ptqds-$>QiDbG?vi#D>`{Y>XP-Ottqk$al`hn(yucxRv;=+r#+$)jOnRZ&=t?i{1x0dt5qfRimOKoKT0)lb zP5k52HD?*CEQ2#L4P_C?G+s=kJu{6xH@2(%W<4FwK=tO@^_=n13-Sf@XtHq3%N@Rb z|H0f-Z@U95<_#SwdHA460S6{hVk+$c|K@Hx^wj-FZg@JG ziGW+8?-@lridq{qS~Ad!<>v|mPGt+e45|k~6dzR66Dz3R*+-wWt=bjpNG<6+kVVX# z)20=4Oqxm=8vlrk_BO4>hw!DgMztv>1%O)Wx9-vtEg894mFI!%BBGQ=bwyO-$!4Tn z4Kv&Gl#m_KY7>n!Qmb`#$nr=XN=VjSEvh4#L?urX`5}!zahk~OYzyuK#V<5u6`XQT_wbQx)d$Nwd}+4athE}o`qU^sbJnaidZ)?Z$(CUNJ>sZu8Y%N7 zj%w*}5_&VcdlfJ)KbEmi+#@}#{vGNuW0t5ryVnGN7Saa)X^v87hp@WS=nc-&BBgeg z(PCSAo?C3L^jeF}AEIjP^m?(>vIr3Lrm5(ComNNhBkEH0n%#?>>?Wks8$sln;moa5 z>r<39(&=~+%w9UZ9PGuU)0&O0bo$4z?S9f}Y6HK)@X9foJ5*2)?X1N~GE zEhHL0jh;GTo^pBp-a=)ZzAPc)X8=?SzL$FqvjA0rC!y-3aWEMo*GvT&&|f)){_3>tSyXBKW2yP=x%D&8c7t?e0Q zs$L79rzI7%=wkyk_u0#q$}Os8OZ8jJJjm1=i3i*dqIf)jo|q#6S(Nx3WV$|RzU+$J z5gctHdkHgDc-?}tkSO7Qu7lcD^hs(-8GXKhi_Qoj@DWQ$PIsX!==X^zr3Kl5fV7^b zdYQV*Pxb`}q^os$fWQ|siAn+j(ktKtBmQ3tt-Z19BqPJOU6igP1PJslsV(^Lvars8 zfaH5A`2H62?KTVv2pCkNx6YxW00Bcrf03ds2?!WepOf8lg-Z$$csNB15)dFWpWzXi z0T5WfKI*>Q3Xp)nIwDFrGUpu-LoN2yQ9RVzLS5nXQuodz}YGPHn5RK#anup zQ%;xUl}W{JgO(}3n*UV{<|N{jUj>};6qriEr#t1R5+davqbpAN`D*S`{wL|U+dDa4 zDpV)D)CvFP-Rt6swM`@4zc8`VJe}4xgPH!XK`Ul75*^O&O#ehk8@zhXGkr^y-Fg1{ zM45_|dR^csp`Fgl!%k;kLe~QGPg6B^j=zwUE4a}KzHw7$_r^_ZzhyGb;@h1pCgk;R z29e8)nR)#KDasmoeSEiPFRu^4UQAxE+33pa8=&YXucwxf*Z(E{@#$K;AeCrnMpm!% zk3gnHmGoRNzjALht5^2kJB{yyQrprOC39*9i28@Py#4X%3LxkIrsb@&_TS|9&hVKc z-fuul$^rwXv{6nD!@ShoKwx{kfc#PgxI^Jrx%Zu#DpYFCQn}hZRxWS9wbm$CDurBr z-{e-Q9Z^MdY7!sxZj{Hj>+E8P4rHaJ?C?v;s#!@IqA~vgIMrtJNLI7)zeN-Rr_hR; zWt`%lvv8@h%pVg`%2@U?^2|<=o<2LcW z-#AD@aI95r6T72If*}?%BTi4E0$~z%%0T!BTy#dzhifc(xLK7s&Q(N|&Mxj)i)8yK zK5En&8rt9GZ*ut~jpyESXKqLCs;xsqw~QVh8j5TY7#cbp<4AIOl+5kP-ICj$yJZw! zEVnJUKljKzuf_kLoV(@Z$>H2BQ&aeJlK-5dpQlj&zOLH$-5UBh_%P7z1I0cndrMc@ zy|u}D#cO$?vka#r;LiY zvD?5UiegZSemY0GLQxFq91zlpd~^MIWVO4kO2YSgZC{sBC%M%)6P>qD87Qu_NIsrLB$j!e4Nm`vrQ%P= zJpUpS3(`EP-IV5eo>NRPw&Vg@PT$PJq-i>((wvsb4Q_}=r*73qlcRQ1n%wQPB3_v4%vY>U z{QN9JF-?38lyWYJU04sDkQJTuiAtz4i;0r~2orZx$)yt`RJci+T@NnNu?_w{HZiwV z$fXmC(PucF$gp&BTNa(Ebo1#%lrF6Z1~~BNaU8#kQWnr=R7}lM-%BX6O>-HA@iKcE z<@vphlGS}@?{X@8B-v$Bx7$qRGKzvHRPya4;$;+t@WoT){Ra4SFQZTiv5fKnUGXvs zU(MYz$}SuV+w?}&E(`H(n5o`-Cbx7ip~TiSjpdVTVk^uSOT#((%G{oVwJJ_dsmOn~ zZ98_N(3prhP%dthWUBp>zY8UqfJ)RkxmQ)*AJPWF9IdLvim!V`Wo<$^v1c;jsrEge z2s@g6B}EI#{}ZalUP-yIhpt7?Z5(nkzla46VqCAWgtyiObg3Etij(n#^_4Gx$Tgdp z>nnf7Wex5IL$j5PYc3bkBf&aWg7}B#^!xpA`d!gF-uR}E42(9*6Qi}d*Fe>c&TBj2 zez$phRI9ksP5y6Zlfk@Nr(mrb`2S8M8+_UBAboMYQm%StV+(1>s`kVW-Q>y(T%#>m zUi6L@+LhMm@j|8TMVrTo5$$@t)@Y43Cku_%3)(g8n(WY*)&1pEtKurz$2;}5Ncfm8 zrOm6TzTirCWUI3y35Inkh>-OE0z&MinchfD~xE9;l1NETbAyKXqdjXJZN47tLf5 zio2|_Y#Z-mXK&f|Q?THeWn0Zg*Rt)qLDA2$EwzMY+c!esK3(&&?YXhDnXzQ6CK@<} z-=PY6F4;cWe8(A12tLhx#o0TF&BFL7c_BAZ#x`N=dwEmg!ryeO(H8bLw}oAb>2C}E z+j?h5Y)jktIE+9b{Wr^Q#D3ppCf{}b{VeiQ3ES@ykt<=#ejL-)#S$$dHp|V*NWC=G zERQ!wZZ1rgE3I0!T&NBi*JArKm6VR|I%8ia$1yU1jfOOTovEjCkMo~{D1Jeao|y43 zz>txQ+-s|~D@%4@YBS~Mn6YTkZ3i9lfT4%EsQc8Wmrzti3czQoy$KH+`5U=Px!Iz@ zD{nQ2b2a|7T%j_wk4AdAI>EU{4u_lYMRO~?rA{mT?P?ic&Gaf2dMRL%3esJbN6C+} zj^t1cMJ;>^LKyv6yVsq;-_I;1xaA>r`V*E1^ff?hhdE;|q$ie6@0weIXcMt{>un-G z<_T4Q!Qy)|||^X%?kL}Sh>)u~~hN?`{QJS4}S5>5I57oCy42zOWt zaSK51MR*1gx#l2aZ~ryq%7*Afgt*{@>^3$$;pru2r9Qe)zl$sHt8Qz3Vj_admk>WU%3$rNo#nBSl(%kH^=5jCkFP0@lJsbv0{Myk8F68BYMXFQ5)#TShG zsx%>(FKxx6%_q|B-9c>lAVy9PuC2REH@0ufJT&-G3opbk@bW|&N&Pxk`qoO z*KU<7<(39K;vZ@oc%s_|VqlD!{7%nw1|#INOEQn}Tkk^u?2%F#i5||nYa&ZPDkLO$sXTi$-~X6%pTuBL@Djz$^4$c5ZZ$+JkUon@?^Y&TXEe zKc_bHcg#1BZ%&s*?%_tJ)rOr-QjK9Y$v?Cm{6Qw6$!t=NcG?U0dqRKCH|psF?fpv( zW_@#t3Ld%V%_kqZ=Pkp4^4>h9E>7Ws#gCigxHf{T&t~a3XPdIuw9)G`+-tXi$!yc0 z60&lRG_{l5knjgnv?a4mgX+Dqd#>+3w!TY*S4c@wubrWH{SY zkykuLnrw5)g(}+|q$|!g`D)tPrtWgyZ{aY?Kpo(|Jq)M150zJCM#3`c6nN*^@;OWm zY0j1xVJFUoQMJnXDQvc@fOZk*K|ba@<1~9dTYhaw!Dq|o!Q_mcEgv%4eYU)Q6g^vB zvm+9QKAC9-mmI3KZjImd6}F87<<}`3AiOz3gcbnM#g*d}`Ssi|g5y?UIM*J|dG+R= zE4}SkUg5w3bmPkRhg-aiM_SGML#4$h!LB3ZpBB;vzcz#WxHO+hSb#1eBrLM;2lTcL zaa#mq3;Boc@f{)8@jZ4OVW)fSKZ~ld)BZIv$`Y}nvDImS3kmgTG{C$|9|0w;8xvR6 z$#nuM;Dg9D6_}{NQ7&t+Ij?QAsO|u;XdA4(v>(>)oepb*;Yg6e)nZ(LM}qHl0bgsy zzqKDe-^6@IH`65S3wxile&^mJ*-B*Z(Ety1)ff3o_vVk>t@W|{NHC%2G5f6TZfkLu zH87<3aWg|0Qs@ozX9S)D;lyA_nvE_D>3UG4z>suX@-qU|5-_Ci;2)o^8ADpcj(aQb zF?k_Y5tOe$4Ea$U->3PCLm<4bQ z@fz_Fu{IBTF|0}W&ge%3ddxzbGWAbl8Rvs29?PI7W{ioXZ-a|rZHG2xvL{mM&biEm z(_Yng&d%YY?j19iv|~^rNI4v;g_GsjQx6g*(VHw$xEYm_-OG$ZYF%4d=!qrS3oVqW zi&-sQo4U7juV+r&Ov|kcX{7sH%;F?pHU?u?#@=?TcJwG8HHzKL*k7cMDp43Oa9!*u zq8 sEckq(KD*G%g7Nm)GbN6`>5c%M8#CB>Y%(Mv(ihgO}ok7+AL?)rn5@55oJ}1 zS|#8>E-@wG@C*2MY?IuC^?DWmmljc;oA)m^?gimDIb;qT{?>x}ZA&+9RZA%GokZmF z-o_%x=I9XQ9Vwy1Fp%Y*n@%o@Rz&VSt{w{#wBE>-GDO!a^qzLwPC=j;BZi<*mI)L3!)wilIEd z>I=$aTxPnTTG(<3fKOrPSZ}aseLPqM+G*fL=c(oa7mdvhT(kqCHsgxu2y$;7xjdu| z?w&)qh-GXeMvJBBRJtAh*8b+nA^X{JBi(g>4^?C1Mk_6iiO}2xV+w*Z4Rp+tcL2ti zIMER&mkBu0?I3db88h>LI+rzBgUJ%oX0RsjfVD9LC#v+rT4_40^@kI^xF0_6VLnsg zME}WIzY`~ttz^N8-tKO#51dFak?i8Tt;Jo|z=`6=$?V}o*F!ilIFV+f3n#h^6#d{t z)Dm!_zrsI0T{BKJs2sM2ij;dmjFKmko>0+^Zm6ii&=K+>ekbEN;30ZjgT6ay-WUtv zqM52r`^_)OZm5|)I%U|)d;}Ri9%cuM5w-mFKBlX}H{KfJn}5LG@ae|fp`Eim#}U|7w4~_nqg2ZC6O}?wETzmg*kw1_Tbp-g)uyvb z1$GUjs8y!q)jg6@-Bz=h}-$bj@0%IvMeKU~78TsR-0$m`j<(h!Srl+Z)ywX!kg`=f3o4qkbjcnk>Y)ml&*VcE4e z^!xm&!V@*ImQSBAk>`tGskG$bPZ{5#!MkGBrWeYrPiigCcVv~P|C>Z1P!`>xSw>m@ zAPbiYW%&>hxuW;%D9gn$C<{fcM;U1`mb9ZAF8p&SAQLk~WclLrnffIY(7yyxJk&x@ z%sCbTvi-7@&8)Trn>g7Ys?hPzm=Wg)RB+2@xu_d%xg-W|A>lR!+tHo&z7%cA4BMc(UUttF{VF%PCq)Z##E}_i8gcI4$_!gg(<)|i5^;vDLb`a0G#U0= z&=Yaa$y@1)Gi<(^yA1oX@kXuLOz~<{_xoZaf^-_0^`LCLJ%cIrM<7{qLW&L;cS`-C zkT$q$u2O1NM|V2CNC{g6OzNlhEq@yFo;{7${q`TGYOFNc-%tC{sA1zMleBLJ{dXr{ z2|4svLFDoxW)A(O6lIM>HNLO2m#BUY?8PLinvJeR^#h>jCsC!Akf<)X6t0D?IZ<7r z#&`H4iqbHql!u6-XOfyXb{F6*M}G62Yuyg49-owKseRUB574?GJ%Kjg72rB~*v6%> zkAo2k5iXT{Blpnh>sGwA&IgGUaL`GPWku^6EUOdcR!Odu=JXpn87Q>OHfEKXe*sa5 zG*vS`%W3MBS-4bb>Ie~~3|(*F*D%CUr49Sg4xK8=eJ>I|h$tmyAAt6G)|-wuX6la2 zpPmY$`0SLPn0Aj)^15ktMVp6RwL8M0Z_GS}*^JJZ*3eT2eUO4u24$CX(HTjD>Xx+J ztjaWKl892;(*9`P!fBAmvBkEY@Yo<60OFP6hIYZ+2GKK5x;fe&r5V#`ZhDDSkV&{Q zk&+%|2-b7I(6jSEkloYlA%@3vs?dYuEm=CtshI5PQuOpq+*7yl$yCgs67q45LUjm; zA=Q_pXiKJI2GxsX_gq1gO2zI@(Sl6HXeebG_3qxvR7_1p@rjk?fH)OXflE9^npEs> z(G!u1{SUh0RE)3YE)~1D)I8Svt%0@OtDK;lMiO=*HGA`Lu8GsV@gWqvTQ{6LwkLnZ zaE|`Jbp}(jpFz^*To)Zc?$qojA#HGKj#4ugv;ES*0=_GfGQQR>X7Oe2?z#?{(B1VH zQ8iXZ7M!1~u z@D{#Dgr{1ZyZYho%IR>oNDK#CdXd}f0`*gKdTT$N?w<~)ON{|5^{*v558gp8vm7(z z>Gi{9fw@feibK;`zw;Fb*-GRUhr!SzsoofOwCrExZnckB9RxGU6Ir)`yUQ9_MEoe9 zJuG4n!im8mG#g!5#A9%~{a_K)60nF5;vb)`8H*U8nMS|npd1?lsvk=4jvVQy)*HM= zTD|FT-NUEW+x6Vd$M|fw!^d(H`1(3N+J!Sb!{y&z#k8?}n79P~p~8shgk%RE^jgAP z&pnXU?@6X3h(mdAp)!uoF5tUfjL(?gN}*+&77~lwj(d$tp{^1PyriJM$#X1Mui^6t zBRSv}I4kvNq1nRsKlnWcBBXDcAggIKO(~zj7PZ1YlT~5vefJg^E+MbK^_B9 zJPbll%#nyZZ(B4qb~3Il#I7jW7pwH=d(4z`=&J?$f8?U>1^cU-d}>9Md28sU5IhGz zQt;6@Xv3DMsN9@O$)5|Nc*)ZfOY+;ZF|UPh*VSA2=P+OHF39Elbi(HZhRmKn$$`%v zdJX;vQ5okr%P*0UOEat~#_GeEPAZ@~#M@^{&D{g3gzFQPKu;_sY)#(*tpK~8-U`?= zvkG{|F_L|&U9aHNv*EX*2=tM2OzuRU*@QD%QsYM6M~;h&9KfJ}~m}IYdt6L&OJzq+JgUSp=5LkE3DF69WB78_0iFNE_TUM?iik zo$hT`gT^zF^%{4y+wsFrWZ!J11>l#d8XMXl(kc^Exq+8263_U)aoA4eHV|o9O7nY< zlivhn|AioOIUW=EJjrDZPUoMHAF|gtba)HMKAvjs9_WX=PG;_s{So!VfMw$~G<&dY z1zm}OWi=aJut?Gc3C_w0Q%ZRi=rl>j)9`+$A;)?6BIN^cwU+ zPGt(O>EJ8EKxQQ%DNNGdDVB{$Tg;zJmej=2bJ~BL_!>y_b6T2u!`M9ncrD~kGzxV< z7UKKX5NCaA1d^+tVz|2;{g}#711FyzFW~D`IDMnp!UeG3S`OkDNHC`c1dmUI+Q7${ z8@0(Hd|8Vj^W2lJqOUwZ>6#EbpL<5MlE0o+$^PFEg#dfCm}eR6{eBiM71;YvMC8gu zvxB`i$Pw0cI17O<{7k&WA-5Ot2~hG{ZcUVlW8_onYAR7cm}tcC-Gf_&b4WE3)wwtW zAc{vL>4}B6JRzDErSFcmB)it+nLq{8^O-}ZTT!6!FQH31d=@}?bm_`K6RtSn5iX|B zwLamMCrbQj^@3P?$<@SX)9GtTwRR&;7m4%dPD^NRwj~%jlBffEV(DO82F|tE?TUJf z{qn40cUGy;tbb<>xuqgABN~_~Go$ZFy&EZfzlRQ&Es48Xm1x#cB69f37Xw_Ah;DJ9x%j2+=_Q%O zB(VxPC(wB-FJkL*!%{oQzhvzOaEr`zx?8W$(k;d?WS{8VmDh5g+y)~-D}zc%!aaB- zXl2On?i6iF48x#0CA;TJC6wDek)j1TQpx-?jZ}AUC5EBG1~r{Ii5SCB(Q!OQ8VuvB z=!w8EzD8G!Ver-5VHm@c_(r@hLktV) ziJCve58aJ*&Tb@tAge)y=ev%8%>lp&h$QyBw1FLkM6UR`mIE6x0eoy;dF;dj$3;nU9gol20cM3k@q zQ?BXgzf%wMHQnQEn&WCVf5MRwk7vlRJOrHH9zSI&B-(TV% zpRO74U184t2I#A1Xyg^&l@SbJ8pn>@EjJ)6q}@BUda2x`vzS`gpey4>wKuoc2;s%l z<+U9RTxD*P(!-WpY`sTYAG&%5&qD0?P5mUQ!Z$ z$b5*lvXrZo@e52?v%pA{0`e=N691#JuWjm_tTyGZAqs&kYn9G2vYgMtr9zf3B_bCp zlpR^#M?p2gmoP$OQ{U6X$^xF1C)<;JOdBjoj{WFHJ{8GYTlk#O`rb^vm!RfTKok!w z(-SkBLp*xjwECm1$*wwi)=@CWbEg9n@DWIlDV4)mGw8LM2__Fr+7z+72-+IJ3Rf z%CsBotxS)ZclT3nVNRpW+bAsW9&HEPlVeyH#HTx(1)3VfssWCdsMPRb5Axx$BToj& zT?5aN2fWS_xw~glgRe={AU&}(cvE!X_1`tEHoKMHYJ26(s;yM-*4g1wp$9E$a%|UN1eo1vk-GKz#Bs<82A9?Qt!SeE7VO0(u1{sF1LBvqtyRNWL?#!PWLQWW zJePyM*D-=Pm{tVc*~Nv)u}^B<#m!l|$O}!ff3)rOLhhg2kmN#>K_#T(9#nFn$&lqx zinioJlR>peb}!9B(}EN&$PrA#BGU+V_f{@6sVpLX*~kh8d7(*VLm8s^EXr_~HE{CyQ8;@z`70ru7@SkASOCaL_K##?>b!OjQ!a5iAK4oQE}R=D|0Vj;! zdI^&ny7+pEwj@kyP<=&qFAYrk#S|?_4@1K?lZSElR>GtzKvS5RlZatbm6OF&q=8AV z8c{Im)pW%$DPPSUOnODbD-=hYWe=};j?#9F-e~FO?mhW-CDQ;+*V}dF@j~0ta%Cn@ z8MqbFPo6#8ctYaZo|oL0!&v0k;^@qaH5~0tbt&~i(vK;tmlEf7z9hR(S=~` z14Taw7PSNf>uvbQr)x&AR@)|K09nceFl*gNw7r2W-b+|0iX%oVwG(hh>RmbBEu`Nh z6s{`QXzOEHclAfDP3gBJlghI@Cs_uv9#=yjVt$7fv)&DQJ>;Txbmm5$w*Mx4I1>O8 zzmzG(7}>DNF)9YCS7qF*8ScxRennc=zn@js{)dP{penkXvy7^IE(@0mRe6|*Qsx(G zR-@DyKmor$TQA@PK7ej1RS4A;hiru2P{!opZ!P9;X6k@Ueg6hT@%RQkF=tFf%NyNn zYgTMpccevMi}?!k;T(nPYcVAAl)>Srxaf?epG$T`#o=aErk?{ul+rxbi#MOm*Q(`q zShk0rIpcYPp703y%CSjqC3-zxj=m&QXJuk12Q7WQB?tOm`&U*ca0)w%d!&tPR~F_t zrIMV{*H(5iXKv-ml**tI{c&2c`r3*ig^elNk|~uzwO)456|*ShZe5BNWJ*P*m}%6w zdn;2a<(<_u>LlWnN<|0p6lqebRJr&ZO z_TNg?SgDZy{F}~#=B54Q5{Yr2bAzO6Mw1Jmlf^GOU_Y@GC#4*jBjtSOFi3P|NU! z1jjv{qx4^a7U(}`6{!DHq7b=>?$#{lCPP;UOG~A8m76RkqLjgBzQ<=TLz|7sO|*Nn zzHWJ8Caz^dvH?W#2?;$hrzHf67bkz+Qgf`8ZP(zARwykwkGXMqC+-a2D3NX)D3;NWF`C?M@<2p;X)vPmv~t z`UrX=QmFqzSDZre)wEM6&3)eAc_Bi#^JL1i9j~QT$}OxqZ5M|>b-dEW_zL``cXq-u zBVieNKvbtt+JZ7$@8l1TV{nz0i5Z|Yj43#ed19%G@8xlMrL)zIVCAjikSTh(2;29< zeL-FK^|<&fq+w1mP9rbTk!ha^DVU`zz|tLx1Hn@1!n->8(naWo?5^q(RyeA7U(aiH z?nHrNuu{n7T6HQ`Cs-lwV5?_sqFtY|vP9jq9Rlb5Z-FgU;r37fTH>-Te$SI-;}kS{ zrS%%DR2r=p#*Y;yJSa&iQa!?Zit3T2zXgW==DWrxKAVH1E5~v0^KftuCY)*$Tf(rZ zY!nBKPBc7x%@JZnQb(H}I|t4R=%i~d;}!9+Ky0au&CB<)!VJk!P3fu!60yR z`e0nGftm)3bUtwlFVy14(nhV;0;}H9^2tsxZ$~FsDp(jryT?#qNd9a$D)_a$RU022 zgUskDSQ#M8nCb+pkD?lE81;;Y_Xo?H*er#uRHG+p7fR>;URZA5GVE@75yv%;hPDX_^9^i0^BUDc zg(_Uhci8I54D_vf(`y%NqbDcHvd;ES)@w~~)TCr{8E=gqFE`7=c2|z#-QmJmg^%eI zTrO5)2IFrTI)ejQsyqNu>2f;F55-1laf#elu#T?KNYiWZAoZ$LTM@cn+9;fW&cx3H z^MX}0@L)pK30P#MJXvmaZasTTu%hnOM=@ORJ*O&iJT$V5?odcMN@FBAuheSQo4a@H z!0qNpeF{gCR7Yx!2@I{ZRFWA$$Z@=`4t0B)7jicjM^>jy9f0?Qt zqqsn}d(3N$l)ctbZUdfSN2xVgL1Tlh!Wf2Au~q6ESQ2c6aZZkgqcrTmXcHdL>zoeG zZcgDX&6A@g9MM~$V|qKmLVC--6D(^^7BJ#o(8lm?LQre?xA-|)so_XfA=-`OCA{=K z4#kUs2Pv}%L4B-UM-wZ+U8~%J{DnU_4eP1lW$L4_0qG!ClgDVb$E;%INwVEatsq9_ zLiSBC8SEg(29eejI4F5u3vH|&N2z1jEm9~~Mhit86T^<<{$Lf=Om4a9RgMbhb~;#q z<;2dx_E@k)xD||JSR%ff#@jqcTi6iq!A-$#R)Hy4R*TAw;rsH+^ym~8@`R& zj)p%Lk#8;X{l#=sT<85CP(br2&B}XA*ZY$z@yn+_|3ZI$LVu2|!=GQFKdTX-_$%qp zCyDCg^yfSD=kM{S9Sl;vt*JVXxf-f@Be>_(cv5#_W?cl%TGA*;Lj&q7??M}LMF;m?)y=bk0_ z^Ah^=sv-R8(4TKF!=LZaA67-3^zjP%Q$&{%;wCPTN+8u46bJ`7i4x(bQY1e0LP*7b zkoxj=`ojkHbGkbB>>mB20;&2}n!)~+Yl)pJ*Hq7lf7!E3sTbSm&+Av=&x7>mqpR`f zll13RYw)K-f5y(ip9%W2Yc2llrawHyo<$?BMSonnrUI#CaeM}40XJCnS{Pu7A_+?< z$xv^kWbUOty^Q|+_+0$?8U1Oj$Db4Q=iNB$(|AunA^rKlCHV6p`a_?C_UUucK7E12 zr!SQFbTXY!C)fG(?wwEX=J~XT$)`O|J|X))A^+^4IrrjB$0mdyx1^o4ZWVr%Epd#^*}s2VwpgH8E9P#imxx|!#fk9YtrqN;EpN;bEiZCe z{~(dr;-_xUryV}0x0KyU13R%C5m+*2PQ{VAkNLCM9e)lk{0#n{$KQ+idkMQ+H1c}u z?)UE9xPR}J`@`QX<)7o%D|-q5mwP$9apUmFPL+^p7~09;CN_rv>74?G2>L-~IMdse zmWAz)gU4^+pCb}Rzab*SlqW-K5F|b2F-Z+iG#Ym}YkHy?3O5Z{6OKRe0QaUs_qPU$ zi>T>EiX~m!p=6UD0+mzG zRXn@hpcs7>bkcZedr`)Js%vPeL5woGKRH%oAr)v9?^ zK92IEKb%rO`w)#hF@7+V=YK4cp6EGeSUUVJ=~<**kb5 zh?i$@^Qe5B4e?TJOk)D#{tMXM5ap%D2<84hjhh#RsA^|G621Qiy~m^y1z${7c1@lC-cRhu)6zq%rxWWt$Jt|=r5L= zy_?5KfXijY#{1@xC(eWX_5(7LAn%jk=q|LQ=RHwD_gjTS`QGEB`{W@WnuhKlL+>%r zO&fT+uujZ|$6-x06Vr(^o5(&1N8?UVhiJCyU2d zp?z~wyDFsX{V+I`F)ov!OX7rq9XMeo2acdy&<5l%Tz>hN^=4&ZOW`^(q+ZHf9?}l| zxRX}NlZV~;*SyFHQkQkTzz`ezdT-*E(qj>BQ;NAQbCuAao;p5yotz;wI>q$v)R|BW zn6A-v64!H(D*J8!pFqq{vbO(G@%yjh_uuB1>6Os#yDY|C_#6MhKfTxsLAAhSw3Y;D++(_(r>GNo_>2j{m<1ezi7x`_Y{61lh(f7cFD1ZW6Fy)04{rz&gn zO{c1&?uT|5}>sXSX)G~(WuOL zpf7hZK_nEbbib?DiB^o#(CT+Z65_JF0fxqlL4}1x9!gBLoAeWL8zvpu|zui6=c}z`AL8!4=;4U+^3 zw}#C~q(#m~12u)1H7uffhn}zqYC6>(#D->b5%N{kpt5=UlHR6F19EVXaG*Z~$@ALQ zi+Uqwu|>=e@)K+$EC(4D1MRS#l0tuiD;3MbRtw$oAU5>mfk=ADrK==q41lDi7&v3( z9vw0)zW)5@zW{%3Bwc4>dg>WX|H5#3q^(VmJ!Z*)$5hv>fl|=oDh#k#9p@ji$Z(J= zdJmWktui^w4SGU&C9ft(Umy|Wy@%XTpsb0iGv61sVHA+1P-uY~oXS+k_2seN{Hp`HF<~;HX3Ka70Q>JL&myS%Wf0C)#AMgaOu&Pp@vIk LuBZt4W%l5|7OGTp diff --git a/docs/_build/html/_sources/environment.rst.txt b/docs/_build/html/_sources/environment.rst.txt deleted file mode 100644 index 73ff15a..0000000 --- a/docs/_build/html/_sources/environment.rst.txt +++ /dev/null @@ -1,2 +0,0 @@ -Environment variables -===================== \ No newline at end of file diff --git a/docs/_build/html/_sources/grogupy.rst.txt b/docs/_build/html/_sources/grogupy.rst.txt deleted file mode 100644 index 18af50d..0000000 --- a/docs/_build/html/_sources/grogupy.rst.txt +++ /dev/null @@ -1,53 +0,0 @@ -grogupy package -=============== - -Submodules ----------- - -grogupy.core module -------------------- - -.. automodule:: grogupy.core - :members: - :undoc-members: - :show-inheritance: - -grogupy.grogu module --------------------- - -.. automodule:: grogupy.grogu - :members: - :undoc-members: - :show-inheritance: - -grogupy.io module ------------------ - -.. automodule:: grogupy.io - :members: - :undoc-members: - :show-inheritance: - -grogupy.magnetism module ------------------------- - -.. automodule:: grogupy.magnetism - :members: - :undoc-members: - :show-inheritance: - -grogupy.utilities module ------------------------- - -.. automodule:: grogupy.utilities - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: grogupy - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/_build/html/_sources/implementation/index.rst.txt b/docs/_build/html/_sources/implementation/index.rst.txt deleted file mode 100644 index cca03c6..0000000 --- a/docs/_build/html/_sources/implementation/index.rst.txt +++ /dev/null @@ -1,11 +0,0 @@ -Implementation -============== - -.. autosummary:: - :toctree: generated - :recursive: - - core - magnetism - utilities - io \ No newline at end of file diff --git a/docs/_build/html/environment.html b/docs/_build/html/environment.html deleted file mode 100644 index 2875f2c..0000000 --- a/docs/_build/html/environment.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - Environment variables — grogupy 1.0.0 documentation - - - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

Environment variables

-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/grogupy.html b/docs/_build/html/grogupy.html deleted file mode 100644 index 5b2878f..0000000 --- a/docs/_build/html/grogupy.html +++ /dev/null @@ -1,822 +0,0 @@ - - - - - - - - - grogupy package — grogupy 1.0.0 documentation - - - - - - - - - - - - - - - - - -
- - -
- -
-
-
- -
-
-
-
- -
-

grogupy package

-
-

Submodules

-
-
-

grogupy.core module

-
-
-grogupy.core.build_hh_ss(dh)[source]
-

It builds the Hamiltonian and Overlap matrix from the sisl.dh class.

-

It restructures the data in the SPIN BOX representation, where NS is -the number of supercells and NO is the number of orbitals.

-
-
Parameters:
-

dh – sisl.physics.Hamiltonian -Hamiltonian read in by sisl

-
-
Returns:
-

-
(NS, NO, NO) np.array_like

Hamiltonian in SPIN BOX representation

-
-
ss(NS, NO, NO) np.array_like

Overlap matrix in SPIN BOX representation

-
-
-

-
-
Return type:
-

hh

-
-
-
- -
-
-grogupy.core.calc_Vu(H, Tu)[source]
-

Calculates the local perturbation in case of a spin rotation.

-
-
Parameters:
-
    -
  • H – (NO, NO) np.array_like -Hamiltonian

  • -
  • Tu – (NO, NO) array_like -Rotation around u

  • -
-
-
Returns:
-

-
(NO, NO) np.array_like

First order perturbed matrix

-
-
Vu2(NO, NO) np.array_like

Second order perturbed matrix

-
-
-

-
-
Return type:
-

Vu1

-
-
-
- -
-
-grogupy.core.onsite_projection(matrix, idx1, idx2)[source]
-

It produces the slices of a matrix for the on site projection.

-

The slicing is along the last two axes as these contains the orbital indexing.

-
-
Parameters:
-
    -
  • matrix – (…, :, :) np.array_like -Some matrix

  • -
  • idx – np.array_like -The indexes of the orbitals

  • -
-
-
Returns:
-

-
np.array_like

Reduced matrix based on the projection

-
-
-

-
-
-
- -
-
-grogupy.core.parallel_Gk(HK, SK, eran, eset)[source]
-

Calculates the Greens function by inversion.

-

It calculates the Greens function on all the energy levels at the same time.

-
-
Parameters:
-
    -
  • HK – (NO, NO), np.array_like -Hamiltonian at a given k point

  • -
  • SK – (NO, NO), np.array_like -Overlap Matrix at a given k point

  • -
  • eran – (eset) np.array_like -Energy sample along the contour

  • -
  • eset – int -Number of energy samples along the contour

  • -
-
-
Returns:
-

-
(eset, NO, NO), np.array_like

Green’s function at a given k point

-
-
-

-
-
Return type:
-

Gk

-
-
-
- -
-
-grogupy.core.remove_clutter_for_save(pairs, magnetic_entities)[source]
-

Removes unimportant data from the dictionaries.

-

It is used before saving to throw away data that -is not needed for post processing.

-
-
Parameters:
-
    -
  • pairs – dict -Contains all the pair information

  • -
  • magnetic_entities – dict -Contains all the magnetic entity information

  • -
-
-
Returns:
-

-
dict

Contains all the reduced pair information

-
-
magnetic_entitiesdict

Contains all the reduced magnetic entity information

-
-
-

-
-
Return type:
-

pairs

-
-
-
- -
-
-grogupy.core.sequential_GK(HK, SK, eran, eset)[source]
-

Calculates the Greens function by inversion.

-

It calculates sequentially over the energy levels.

-
-
Parameters:
-
    -
  • HK – (NO, NO), np.array_like -Hamiltonian at a given k point

  • -
  • SK – (NO, NO), np.array_like -Overlap Matrix at a given k point

  • -
  • eran – (eset) np.array_like -Energy sample along the contour

  • -
  • eset – int -Number of energy samples along the contour

  • -
-
-
Returns:
-

-
(eset, NO, NO), np.array_like

Green’s function at a given k point

-
-
-

-
-
Return type:
-

Gk

-
-
-
- -
-
-grogupy.core.setup_pairs_and_magnetic_entities(magnetic_entities, pairs, dh, simulation_parameters)[source]
-

It creates the complete structure of the dictionaries and fills some basic data.

-

It creates orbital indexes, spin box indexes, coordinates and tags for magnetic entities. -Furthermore it creates the structures for the energies, the perturbed potentials and -the Greens function calculation. It dose the same for the pairs.

-
-
Parameters:
-
    -
  • pairs – dict -Contains the initial pair information

  • -
  • magnetic_entities – dict -Contains the initial magnetic entity information

  • -
  • dh – sisl.physics.Hamiltonian -Hamiltonian read in by sisl

  • -
  • simulation_parameters – dict -A set of parameters from the simulation

  • -
-
-
Returns:
-

-
dict

Contains the initial information and the complete structure

-
-
magnetic_entitiesdict

Contains the initial information and the complete structure

-
-
-

-
-
Return type:
-

pairs

-
-
-
- -
-
-

grogupy.grogu module

-
-
-grogupy.grogu.main()[source]
-
- -
-
-

grogupy.io module

-
-
-grogupy.io.load_pickle(infile)[source]
-

Loads the data from the infile with pickle.

-
-
Parameters:
-

infile – str -Path to infile

-
-
Returns:
-

-
dict

A dictionary of data

-
-
-

-
-
Return type:
-

data

-
-
-
- -
-
-grogupy.io.print_atoms_and_pairs(magnetic_entities, pairs)[source]
-

It prints the pair and magnetic entity information for the grogu out.

-
-
Parameters:
-
    -
  • magnetic_entities – dict -It contains the data on the magnetic entities

  • -
  • pairs – dict -It contains the data on the pairs

  • -
-
-
-
- -
-
-grogupy.io.print_job_description(simulation_parameters)[source]
-

It prints the parameters and the description of the job.

-
-
Parameters:
-

simulation_parameters – dict -It contains the simulations parameters

-
-
-
- -
-
-grogupy.io.print_parameters(simulation_parameters)[source]
-

It prints the simulation parameters for the grogu out.

-
-
Parameters:
-

simulation_parameters – dict -It contains the simulations parameters

-
-
-
- -
-
-grogupy.io.print_runtime_information(times)[source]
-

It prints the runtime information for the grogu out.

-
-
Parameters:
-

times – dict -It contains the runtime data

-
-
-
- -
-
-grogupy.io.save_pickle(outfile, data)[source]
-

Saves the data in the outfile with pickle.

-
-
Parameters:
-
    -
  • outfile – str -Path to outfile

  • -
  • data – dict -Contains the data

  • -
-
-
-
- -
-
-

grogupy.magnetism module

-
-
-grogupy.magnetism.blow_up_orbindx(orb_indices)[source]
-

Function to blow up orbital indices to make SPIN BOX indices.

-
-
Parameters:
-

orb_indices – np.array_like -These are the indices in ORBITAL BOX

-
-
Returns:
-

-
np.array_like

These are the indices in SPIN BOX

-
-
-

-
-
Return type:
-

orb_indices

-
-
-
- -
-
-grogupy.magnetism.calculate_anisotropy_tensor(mag_ent)[source]
-

Calculates the renormalized anisotropy tensor from the energies.

-

It uses the grogu convention for output.

-
-
Parameters:
-

mag_ent – dict -An element from the magnetic entities

-
-
Returns:
-

-
np.array_like

elements of the anisotropy tensor

-
-
-

-
-
Return type:
-

K

-
-
-
- -
-
-grogupy.magnetism.calculate_exchange_tensor(pair)[source]
-

Calculates the exchange tensor from the energies.

-

It produces the isotropic exchange, the relevant elements -from the Dzyaloshinskii-Morilla (Dm) tensor, the symmetric-anisotropy -and the complete exchange tensor.

-
-
Parameters:
-

pair – dict -An element from the pairs

-
-
Returns:
-

-
float

Isotropic exchange (Tr[J] / 3)

-
-
J_Snp.array_like

Symmetric-anisotropy (J_S = J - J_iso * I ––> Jxx, Jyy, Jxy, Jxz, Jyz)

-
-
Dnp.array_like

DM elements (Dx, Dy, Dz)

-
-
Jnp.array_like

Complete exchange tensor flattened (Jxx, Jxy, Jxz, Jyx, Jyy, Jyz, Jzx, Jzy, Jzz)

-
-
-

-
-
Return type:
-

J_iso

-
-
-
- -
-
-grogupy.magnetism.parse_magnetic_entity(dh, atom=None, l=None, **kwargs)[source]
-

Function to define orbital indexes of a given magnetic entity.

-
-
Parameters:
-
    -
  • dh – sisl.physics.Hamiltonian -Hamiltonian from sisl

  • -
  • atom – integer or list of integers, optional -Defining atom (or atoms) in the unit cell forming the magnetic entity. Defaults to None

  • -
  • l – integer, optional -Defining the angular momentum channel. Defaults to None

  • -
-
-
Returns:
-

-
list

The orbital indexes of the given magnetic entity

-
-
-

-
-
-
- -
-
-grogupy.magnetism.spin_tracer(M)[source]
-

Spin tracer utility.

-

This takes an operator with the orbital-spin sequence: -orbital 1 up, -orbital 1 down, -orbital 2 up, -orbital 2 down, -that is in the SPIN-BOX representation, -and extracts orbital dependent Pauli traces.

-
-
Parameters:
-

M – np.array_like -Traceable matrix

-
-
Returns:
-

-
dict

It contains the traced matrix with “x”, “y”, “z” and “c”

-
-
-

-
-
-
- -
-
-

grogupy.utilities module

-
-
-grogupy.utilities.RotM(theta, u, eps=1e-10)[source]
-

Definition of rotation matrix with angle theta around direction u.

-
-
Parameters:
-
    -
  • theta – float -The angle of rotation

  • -
  • u – np.array_like -The rotation axis

  • -
  • eps – float, optional -Cutoff for small elements in the resulting matrix. Defaults to 1e-10

  • -
-
-
Returns:
-

-
np.array_like

The rotation matrix

-
-
-

-
-
-
- -
-
-grogupy.utilities.RotMa2b(a, b, eps=1e-10)[source]
-

Definition of rotation matrix rotating unit vector a to unit vector b.

-

Function returns array R such that R @ a = b holds.

-
-
Parameters:
-
    -
  • a – np.array_like -First vector

  • -
  • b – np.array_like -Second vector

  • -
  • eps – float, optional -Cutoff for small elements in the resulting matrix. Defaults to 1e-10

  • -
-
-
Returns:
-

-
np.array_like

The rotation matrix with the above property

-
-
-

-
-
-
- -
-
-grogupy.utilities.commutator(a, b)[source]
-

Shorthand for commutator.

-

Commutator of two matrices in the mathematical sense.

-
-
Parameters:
-
    -
  • a – np.array_like -The first matrix

  • -
  • b – np.array_like -The second matrix

  • -
-
-
Returns:
-

-
np.array_like

The commutator of a and b

-
-
-

-
-
-
- -
-
-grogupy.utilities.crossM(u)[source]
-

Definition for the cross-product matrix.

-

It acts as a cross product with vector u.

-
-
Parameters:
-

u – list or np.array_like -The second vector in the cross product

-
-
Returns:
-

-
np.array_like

The matrix that represents teh cross product with a vector

-
-
-

-
-
-
- -
-
-grogupy.utilities.hsk(H, ss, sc_off, k=(0, 0, 0))[source]
-

Speed up Hk and Sk generation.

-

Calculates the Hamiltonian and the Overlap matrix at a given k point. It is faster that the sisl version.

-
-
Parameters:
-
    -
  • H – np.array_like -Hamiltonian in spin box form

  • -
  • ss – np.array_like -Overlap matrix in spin box form

  • -
  • sc_off – list -supercell indexes of the Hamiltonian

  • -
  • k – tuple, optional -The k point where the matrices are set up. Defaults to (0, 0, 0)

  • -
-
-
Returns:
-

-
np.array_like

Hamiltonian at the given k point

-
-
np.array_like

Overlap matrix at the given k point

-
-
-

-
-
-
- -
-
-grogupy.utilities.int_de_ke(traced, we)[source]
-

It numerically integrates the traced matrix.

-

It is a wrapper from numpy.trapz and it contains the -relevant constants to calculate the energy integral from -equation 93 or 96.

-
-
Parameters:
-
    -
  • traced – np.array_like -The trace of a matrix or a matrix product

  • -
  • we – float -The weight of a point on the contour

  • -
-
-
Returns:
-

-
float

The energy calculated from the integral formula

-
-
-

-
-
-
- -
-
-grogupy.utilities.make_contour(emin=-20, emax=0.0, enum=42, p=150)[source]
-

A more sophisticated contour generator.

-

Calculates the parameters for the complex contour integral. It uses the -Legendre-Gauss quadrature method. It returns a class that contains -the information for the contour integral.

-
-
Parameters:
-
    -
  • emin – int, optional -Energy minimum of the contour. Defaults to -20

  • -
  • emax – float, optional -Energy maximum of the contour. Defaults to 0.0, so the Fermi level

  • -
  • enum – int, optional -Number of sample points along the contour. Defaults to 42

  • -
  • p – int, optional -Shape parameter that describes the distribution of the sample points. Defaults to 150

  • -
-
-
Returns:
-

-
ccont

Contains all the information for the contour integral

-
-
-

-
-
-
- -
-
-grogupy.utilities.make_kset(dirs='xyz', NUMK=20)[source]
-

Simple k-grid generator to sample the Brillouin zone.

-

Depending on the value of the dirs -argument k sampling in 1,2 or 3 dimensions is generated. -If dirs argument does not contain either of x, y or z -a kset of a single k-pont at the origin is returned. The total number of k points is the NUMK**(dimensions)

-
-
Parameters:
-
    -
  • dirs – str, optional -Directions of the k points in the Brillouin zone. They are the three lattice vectors. Defaults to “xyz”

  • -
  • NUMK – int, optional -The number of k points in a direction. Defaults to 20

  • -
-
-
Returns:
-

-
np.array_like

An array of k points that uniformly sample the Brillouin zone in the given directions

-
-
-

-
-
-
- -
-
-grogupy.utilities.read_siesta_emin(eigfile)[source]
-

It reads the lowest energy level from the siesta run.

-

It uses the .EIG file from siesta that contains the eigenvalues.

-
-
Parameters:
-

eigfile – str -The path to the .EIG file

-
-
Returns:
-

-
float

The energy minimum

-
-
-

-
-
-
- -
-
-grogupy.utilities.tau_u(u)[source]
-

Pauli matrix in direction u.

-

Returns the vector u in the basis of the Pauli matrices.

-
-
Parameters:
-

u – list or np.array_like -The direction

-
-
Returns:
-

-
np.array_like

Arbitrary direction in the base of the Pauli matrices

-
-
-

-
-
-
- -
-
-

Module contents

-
-
- - -
-
- -
-
-
-
- - - - \ No newline at end of file diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html deleted file mode 100644 index 188f37d..0000000 --- a/docs/_build/html/modules.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - grogupy — grogupy 1.0.0 documentation - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index 2a0ce06825d68aebd0a01560783319595d9224cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1171 zcmV;E1Z?{wAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGksa&KpK zaCr(NAXa5^b7^mGIv@%oAXI2&AaZ4GVQFq;WpW^IW*~HEX>%ZEX>4U6X>%ZBZ*6dL zWpi_7WFU2OX>MmAdTeQ8E(&dLW8$PC5STScFrwmnVu_ZjGS|f0qhta-u~Xn*Owq zIYz+x--SqH2Rsm_G$x|MJ=qItSc@H1H3SVSKs4n^Ur&cHgA=QfzBPk>8tgU@QCH!t9ai16U=s{(!Rw zeJlsL`_)l=q~*|_9HG%mVWd?bL?5AHmqQhWHmKpBA(-~t8}7O?)0vJ4EdfpD#!%ccBz(>}br$yptV0h2aY^wUMjK zd9G?)USn^I*5$=~812}ntG1~)F(rkw6`}*N$Nw4Vorq$j;Z#THMH(L^WqJq%^@_>! z!@<{sEtIp=d-me~R@uDx80m}F6P`5eGfQ>{(jHy*ljp>ZutQA`^{knEnoPaoI(|xL z1WNbcQWB4fHr!GQfaLbDQkoT+TOmr>R^-C=jQlE$U?oNKhUH3qUXEM?fIBqaf1S35 z<>t;=^kg-V)d5*OlhqN~;=)^j3sro@Z(jeXGrvUds+*l6tn>RV1-XCKjk&ssZW_Oc z$?E=q-NYD=W3)V0_vh{={&-5G<*~}8;Ra*alaeG|AXn87R*&dd3+Hpw%4E83P%@Kh z?PlGi`f`B=LRjB8&lKZN3mYJ9q6)`G!RatXUJq#qNg+&Cw1E`i%9 zu5W?xH#3!>ZOkwHp}+XH=I7JY30a6#8Z>^GT)$?_cSE)*Pv@ARXYf4mmh;4eASAFyEU)>3{ZNli~!~clh7PZP) l_+(^+CxAs9pXr}jTqO$OiE`Kg8Mm(cReJps<9|N*<+!=ZL?QqH diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index ab00f4e..0000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"alltitles": {"Bibliography": [[0, null]], "Changelog": [[1, null]], "Citing grogupy": [[2, null]], "Command line usage": [[12, "command-line-usage"]], "Contributing to grogupy": [[3, null]], "Environment variables": [[4, null]], "Implementation": [[10, null]], "Indices and tables": [[11, "indices-and-tables"]], "Introduction": [[12, null]], "Module contents": [[5, "module-grogupy"]], "Package": [[12, "package"]], "Quickstart": [[14, null]], "Submodules": [[5, "submodules"]], "Tutorials": [[15, null]], "core": [[6, null]], "grogupy": [[13, null]], "grogupy package": [[5, null]], "grogupy.core module": [[5, "module-grogupy.core"]], "grogupy.grogu module": [[5, "module-grogupy.grogu"]], "grogupy.io module": [[5, "module-grogupy.io"]], "grogupy.magnetism module": [[5, "module-grogupy.magnetism"]], "grogupy.utilities module": [[5, "module-grogupy.utilities"]], "grogupy: Script for calculating magnetic interactions": [[11, null]], "installation": [[14, "installation"]], "io": [[7, null]], "magnetism": [[8, null]], "utilities": [[9, null]]}, "docnames": ["bibliography", "changelog/index", "cite", "dev/index", "environment", "grogupy", "implementation/generated/core", "implementation/generated/io", "implementation/generated/magnetism", "implementation/generated/utilities", "implementation/index", "index", "introduction", "modules", "quickstart/index", "tutorials/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["bibliography.rst", "changelog/index.rst", "cite.rst", "dev/index.rst", "environment.rst", "grogupy.rst", "implementation/generated/core.rst", "implementation/generated/io.rst", "implementation/generated/magnetism.rst", "implementation/generated/utilities.rst", "implementation/index.rst", "index.rst", "introduction.rst", "modules.rst", "quickstart/index.rst", "tutorials/index.rst"], "indexentries": {"blow_up_orbindx() (in module grogupy.magnetism)": [[5, "grogupy.magnetism.blow_up_orbindx", false]], "build_hh_ss() (in module grogupy.core)": [[5, "grogupy.core.build_hh_ss", false]], "calc_vu() (in module grogupy.core)": [[5, "grogupy.core.calc_Vu", false]], "calculate_anisotropy_tensor() (in module grogupy.magnetism)": [[5, "grogupy.magnetism.calculate_anisotropy_tensor", false]], "calculate_exchange_tensor() (in module grogupy.magnetism)": [[5, "grogupy.magnetism.calculate_exchange_tensor", false]], "commutator() (in module grogupy.utilities)": [[5, "grogupy.utilities.commutator", false]], "core": [[6, "module-core", false]], "crossm() (in module grogupy.utilities)": [[5, "grogupy.utilities.crossM", false]], "grogupy": [[5, "module-grogupy", false], [11, "module-grogupy", false]], "grogupy.core": [[5, "module-grogupy.core", false]], "grogupy.grogu": [[5, "module-grogupy.grogu", false]], "grogupy.io": [[5, "module-grogupy.io", false]], "grogupy.magnetism": [[5, "module-grogupy.magnetism", false]], "grogupy.utilities": [[5, "module-grogupy.utilities", false]], "hsk() (in module grogupy.utilities)": [[5, "grogupy.utilities.hsk", false]], "int_de_ke() (in module grogupy.utilities)": [[5, "grogupy.utilities.int_de_ke", false]], "io": [[7, "module-io", false]], "load_pickle() (in module grogupy.io)": [[5, "grogupy.io.load_pickle", false]], "magnetism": [[8, "module-magnetism", false]], "main() (in module grogupy.grogu)": [[5, "grogupy.grogu.main", false]], "make_contour() (in module grogupy.utilities)": [[5, "grogupy.utilities.make_contour", false]], "make_kset() (in module grogupy.utilities)": [[5, "grogupy.utilities.make_kset", false]], "module": [[5, "module-grogupy", false], [5, "module-grogupy.core", false], [5, "module-grogupy.grogu", false], [5, "module-grogupy.io", false], [5, "module-grogupy.magnetism", false], [5, "module-grogupy.utilities", false], [6, "module-core", false], [7, "module-io", false], [8, "module-magnetism", false], [9, "module-utilities", false], [11, "module-grogupy", false]], "onsite_projection() (in module grogupy.core)": [[5, "grogupy.core.onsite_projection", false]], "parallel_gk() (in module grogupy.core)": [[5, "grogupy.core.parallel_Gk", false]], "parse_magnetic_entity() (in module grogupy.magnetism)": [[5, "grogupy.magnetism.parse_magnetic_entity", false]], "print_atoms_and_pairs() (in module grogupy.io)": [[5, "grogupy.io.print_atoms_and_pairs", false]], "print_job_description() (in module grogupy.io)": [[5, "grogupy.io.print_job_description", false]], "print_parameters() (in module grogupy.io)": [[5, "grogupy.io.print_parameters", false]], "print_runtime_information() (in module grogupy.io)": [[5, "grogupy.io.print_runtime_information", false]], "read_siesta_emin() (in module grogupy.utilities)": [[5, "grogupy.utilities.read_siesta_emin", false]], "remove_clutter_for_save() (in module grogupy.core)": [[5, "grogupy.core.remove_clutter_for_save", false]], "rotm() (in module grogupy.utilities)": [[5, "grogupy.utilities.RotM", false]], "rotma2b() (in module grogupy.utilities)": [[5, "grogupy.utilities.RotMa2b", false]], "save_pickle() (in module grogupy.io)": [[5, "grogupy.io.save_pickle", false]], "sequential_gk() (in module grogupy.core)": [[5, "grogupy.core.sequential_GK", false]], "setup_pairs_and_magnetic_entities() (in module grogupy.core)": [[5, "grogupy.core.setup_pairs_and_magnetic_entities", false]], "spin_tracer() (in module grogupy.magnetism)": [[5, "grogupy.magnetism.spin_tracer", false]], "tau_u() (in module grogupy.utilities)": [[5, "grogupy.utilities.tau_u", false]], "utilities": [[9, "module-utilities", false]]}, "objects": {"": [[6, 0, 0, "-", "core"], [11, 0, 0, "-", "grogupy"], [7, 0, 0, "-", "io"], [8, 0, 0, "-", "magnetism"], [9, 0, 0, "-", "utilities"]], "grogupy": [[5, 0, 0, "-", "core"], [5, 0, 0, "-", "grogu"], [5, 0, 0, "-", "io"], [5, 0, 0, "-", "magnetism"], [5, 0, 0, "-", "utilities"]], "grogupy.core": [[5, 1, 1, "", "build_hh_ss"], [5, 1, 1, "", "calc_Vu"], [5, 1, 1, "", "onsite_projection"], [5, 1, 1, "", "parallel_Gk"], [5, 1, 1, "", "remove_clutter_for_save"], [5, 1, 1, "", "sequential_GK"], [5, 1, 1, "", "setup_pairs_and_magnetic_entities"]], "grogupy.grogu": [[5, 1, 1, "", "main"]], "grogupy.io": [[5, 1, 1, "", "load_pickle"], [5, 1, 1, "", "print_atoms_and_pairs"], [5, 1, 1, "", "print_job_description"], [5, 1, 1, "", "print_parameters"], [5, 1, 1, "", "print_runtime_information"], [5, 1, 1, "", "save_pickle"]], "grogupy.magnetism": [[5, 1, 1, "", "blow_up_orbindx"], [5, 1, 1, "", "calculate_anisotropy_tensor"], [5, 1, 1, "", "calculate_exchange_tensor"], [5, 1, 1, "", "parse_magnetic_entity"], [5, 1, 1, "", "spin_tracer"]], "grogupy.utilities": [[5, 1, 1, "", "RotM"], [5, 1, 1, "", "RotMa2b"], [5, 1, 1, "", "commutator"], [5, 1, 1, "", "crossM"], [5, 1, 1, "", "hsk"], [5, 1, 1, "", "int_de_ke"], [5, 1, 1, "", "make_contour"], [5, 1, 1, "", "make_kset"], [5, 1, 1, "", "read_siesta_emin"], [5, 1, 1, "", "tau_u"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": [5, 7], "0": 5, "1": [5, 12], "10": 5, "150": 5, "1e": 5, "2": 5, "20": 5, "3": 5, "42": 5, "93": 5, "96": 5, "A": 5, "At": 7, "If": 5, "It": [5, 7], "Its": 7, "NO": 5, "The": [5, 7, 12], "These": 5, "abov": 5, "abstract": 7, "access": 7, "act": 5, "all": 5, "allow": 7, "along": 5, "an": [5, 7], "angl": 5, "angular": 5, "anisotropi": 5, "anoth": 7, "ar": [5, 7], "arbitrari": 5, "argument": [5, 7], "around": 5, "arrai": 5, "array_lik": 5, "atom": 5, "awai": 5, "ax": 5, "axi": 5, "b": 5, "background": 11, "base": [5, 7, 11, 12], "basi": 5, "basic": [5, 7, 11], "befor": 5, "between": 7, "blksize": 7, "blow": 5, "blow_up_orbindx": [5, 13], "both": 7, "box": 5, "brillouin": 5, "buffer": 7, "bufferediobas": 7, "bufferedrandom": 7, "bufferedread": 7, "bufferedrwpair": 7, "bufferedwrit": 7, "build": 5, "build_hh_ss": [5, 13], "builtin": 7, "byte": 7, "bytesio": 7, "c": 5, "calc_vu": [5, 13], "calcul": 5, "calculate_anisotropy_tensor": [5, 13], "calculate_exchange_tensor": [5, 13], "can": [11, 14], "case": 5, "ccont": 5, "cell": 5, "channel": 5, "class": [5, 7], "come": [1, 2, 3, 12, 14, 15], "commut": [5, 13], "complet": 5, "complex": 5, "constant": 5, "contain": [5, 7], "content": 13, "contour": 5, "convent": 5, "coordin": 5, "core": 13, "creat": 5, "cross": 5, "crossm": [5, 13], "cutoff": 5, "d": 5, "data": [5, 7], "deal": 7, "decod": 7, "default": [5, 7], "default_buffer_s": 7, "defin": [5, 7], "definit": 5, "depend": 5, "describ": 5, "descript": [5, 11], "detail": 11, "dft": 11, "dh": 5, "dict": 5, "dictionari": 5, "dimens": 5, "dir": 5, "direct": 5, "distribut": 5, "dm": 5, "do": 7, "document": 12, "doe": 5, "dose": 5, "down": 5, "dx": 5, "dy": 5, "dz": 5, "dzyaloshinskii": 5, "eig": 5, "eigenvalu": 5, "eigfil": 5, "either": 5, "element": 5, "emax": 5, "emin": 5, "encod": 7, "energi": 5, "entiti": 5, "enum": 5, "ep": 5, "equat": 5, "eran": 5, "eset": 5, "except": 7, "exchang": 5, "extend": 7, "extract": 5, "faster": 5, "fermi": 5, "file": [5, 7], "fileio": 7, "fill": 5, "final": 7, "first": 5, "flatten": 5, "float": 5, "form": 5, "format": 12, "formula": 5, "from": [5, 14], "function": [5, 6, 7, 8, 9], "furthermor": 5, "gauss": 5, "gener": [5, 11], "given": [5, 7], "gk": 5, "go": 12, "green": 5, "grid": 5, "grogu": [11, 13], "grogupi": 14, "groupi": 11, "guid": 11, "h": 5, "hamiltonian": 5, "handl": 7, "here": 11, "hh": 5, "hierarchi": 7, "hk": 5, "hold": 5, "how": 11, "howev": 7, "hsk": [5, 13], "http": 14, "i": [5, 7, 11], "idx": 5, "idx1": 5, "idx2": 5, "implement": [7, 11], "index": [5, 11, 14], "indic": 5, "infil": 5, "inform": 5, "initi": 5, "inspir": 12, "instal": 12, "int": [5, 7], "int_de_k": [5, 13], "integ": 5, "integr": 5, "intend": 7, "interfac": 7, "invers": 5, "io": 13, "iobas": 7, "isotrop": 5, "j": 5, "j_": 5, "j_iso": 5, "job": 5, "jxx": 5, "jxy": 5, "jxz": 5, "jyi": 5, "jyx": 5, "jyz": 5, "jzx": 5, "jzy": 5, "jzz": 5, "k": 5, "keyword": 7, "kset": 5, "kwarg": 5, "l": 5, "last": 5, "lattic": 5, "legendr": 5, "level": 5, "list": 5, "load": 5, "load_pickl": [5, 13], "local": 5, "lowest": 5, "m": [5, 14], "mag_ent": 5, "magnet": 13, "magnetic interact": 11, "magnetic_ent": 5, "main": [5, 13], "make": 5, "make_contour": [5, 13], "make_kset": [5, 13], "mathemat": 5, "matlab": 11, "matric": 5, "matrix": 5, "maximum": 5, "memori": 7, "method": 5, "minimum": 5, "modul": [7, 11, 13], "momentum": 5, "more": [5, 11], "morilla": 5, "n": 5, "name": 7, "need": 5, "none": 5, "note": 7, "np": 5, "number": 5, "numer": 5, "numk": 5, "numpi": 5, "o": 7, "obtain": 7, "onli": 7, "onsite_project": [5, 13], "open": 7, "oper": [5, 7], "option": 5, "orb_indic": 5, "orbit": 5, "order": 5, "org": 14, "origin": 5, "oserror": 7, "out": 5, "outfil": 5, "output": 5, "over": 5, "overlap": 5, "p": 5, "packag": 13, "page": 11, "pair": 5, "parallel_gk": [5, 13], "paramet": 5, "parse_magnetic_ent": [5, 13], "part": 7, "path": 5, "pauli": 5, "perturb": 5, "physic": [5, 11], "pickl": 5, "pip": 14, "point": 5, "pont": 5, "possibl": 7, "post": 5, "potenti": 5, "print": 5, "print_atoms_and_pair": [5, 13], "print_job_descript": [5, 13], "print_paramet": [5, 13], "print_runtime_inform": [5, 13], "process": 5, "produc": 5, "product": 5, "project": 5, "properti": 5, "provid": 7, "pypi": 14, "python": [7, 11], "python3": 14, "quadratur": 5, "quick": 11, "quickstart": 11, "r": 5, "rais": 7, "random": 7, "raw": 7, "rawiobas": 7, "read": [5, 7], "read_siesta_emin": [5, 13], "readabl": 7, "reduc": 5, "relev": 5, "remov": 5, "remove_clutter_for_sav": [5, 13], "renorm": 5, "repres": 5, "represent": 5, "respect": 7, "restructur": 5, "result": 5, "return": 5, "rotat": 5, "rotm": [5, 13], "rotma2b": [5, 13], "run": 5, "runtim": 5, "same": 5, "sampl": 5, "save": 5, "save_pickl": [5, 13], "sc_off": 5, "search": 11, "second": 5, "seen": 11, "sens": 5, "separ": 7, "sequenc": 5, "sequenti": 5, "sequential_gk": [5, 13], "set": 5, "setup_pairs_and_magnetic_ent": [5, 13], "shape": 5, "shorthand": 5, "siesta": [5, 11], "simpl": [5, 7, 14], "simpli": 7, "simul": 5, "simulation_paramet": 5, "singl": 5, "sisl": [5, 12], "site": 5, "size": 7, "sk": 5, "slice": 5, "small": 5, "so": 5, "some": 5, "soon": [1, 2, 3, 12, 14, 15], "sophist": 5, "sourc": 5, "specif": 7, "speed": 5, "spin": 5, "spin_trac": [5, 13], "ss": 5, "start": 11, "stat": 7, "str": 5, "stream": 7, "stringio": 7, "structur": 5, "subclass": 7, "submodul": 13, "supercel": 5, "support": 7, "symmetr": 5, "tag": 5, "take": 5, "tau_u": [5, 13], "teh": 5, "tensor": 5, "test": 14, "text": 7, "textiobas": 7, "textiowrapp": 7, "thei": [5, 7], "theoret": 11, "theta": 5, "thi": [5, 7], "three": 5, "throw": 5, "time": 5, "top": 7, "total": 5, "tr": 5, "trace": 5, "traceabl": 5, "tracer": 5, "trapz": 5, "tu": 5, "tupl": 5, "tutori": 11, "two": 5, "type": 5, "u": 5, "uniformli": 5, "unimport": 5, "unit": 5, "up": 5, "url": 14, "us": [5, 7, 11], "util": 13, "valu": 5, "vector": 5, "version": 5, "via": 14, "vu1": 5, "vu2": 5, "wa": 12, "we": 5, "weight": 5, "where": 5, "which": 7, "wrapper": 5, "writabl": 7, "write": 7, "x": 5, "xyz": 5, "y": 5, "z": 5, "zone": 5}, "titles": ["Bibliography", "Changelog", "Citing grogupy", "Contributing to grogupy", "Environment variables", "grogupy package", "core", "io", "magnetism", "utilities", "Implementation", "grogupy: Script for calculating magnetic interactions", "Introduction", "grogupy", "Quickstart", "Tutorials"], "titleterms": {"bibliographi": 0, "calcul": 11, "changelog": 1, "cite": 2, "command": 12, "content": 5, "contribut": 3, "core": [5, 6], "environ": 4, "grogu": 5, "grogupi": [2, 3, 5, 11, 13], "implement": 10, "indic": 11, "instal": 14, "interact": 11, "introduct": 12, "io": [5, 7], "line": 12, "magnet": [5, 8, 11], "modul": 5, "packag": [5, 12], "quickstart": 14, "script": 11, "submodul": 5, "tabl": 11, "tutori": 15, "usag": 12, "util": [5, 9], "variabl": 4}}) \ No newline at end of file diff --git a/docs/environment.rst b/docs/environment.rst deleted file mode 100644 index 73ff15a..0000000 --- a/docs/environment.rst +++ /dev/null @@ -1,2 +0,0 @@ -Environment variables -===================== \ No newline at end of file diff --git a/docs/grogupy.rst b/docs/grogupy.rst deleted file mode 100644 index 18af50d..0000000 --- a/docs/grogupy.rst +++ /dev/null @@ -1,53 +0,0 @@ -grogupy package -=============== - -Submodules ----------- - -grogupy.core module -------------------- - -.. automodule:: grogupy.core - :members: - :undoc-members: - :show-inheritance: - -grogupy.grogu module --------------------- - -.. automodule:: grogupy.grogu - :members: - :undoc-members: - :show-inheritance: - -grogupy.io module ------------------ - -.. automodule:: grogupy.io - :members: - :undoc-members: - :show-inheritance: - -grogupy.magnetism module ------------------------- - -.. automodule:: grogupy.magnetism - :members: - :undoc-members: - :show-inheritance: - -grogupy.utilities module ------------------------- - -.. automodule:: grogupy.utilities - :members: - :undoc-members: - :show-inheritance: - -Module contents ---------------- - -.. automodule:: grogupy - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/implementation/index.rst b/docs/implementation/index.rst deleted file mode 100644 index cca03c6..0000000 --- a/docs/implementation/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Implementation -============== - -.. autosummary:: - :toctree: generated - :recursive: - - core - magnetism - utilities - io \ No newline at end of file diff --git a/docs/Makefile b/docs/source/Makefile similarity index 100% rename from docs/Makefile rename to docs/source/Makefile diff --git a/docs/_build/doctrees/bibliography.doctree b/docs/source/_build/doctrees/bibliography.doctree similarity index 100% rename from docs/_build/doctrees/bibliography.doctree rename to docs/source/_build/doctrees/bibliography.doctree diff --git a/docs/_build/doctrees/changelog/index.doctree b/docs/source/_build/doctrees/changelog/index.doctree similarity index 100% rename from docs/_build/doctrees/changelog/index.doctree rename to docs/source/_build/doctrees/changelog/index.doctree diff --git a/docs/_build/doctrees/cite.doctree b/docs/source/_build/doctrees/cite.doctree similarity index 100% rename from docs/_build/doctrees/cite.doctree rename to docs/source/_build/doctrees/cite.doctree diff --git a/docs/_build/doctrees/dev/index.doctree b/docs/source/_build/doctrees/dev/index.doctree similarity index 100% rename from docs/_build/doctrees/dev/index.doctree rename to docs/source/_build/doctrees/dev/index.doctree diff --git a/docs/_build/doctrees/environment.pickle b/docs/source/_build/doctrees/environment.pickle similarity index 56% rename from docs/_build/doctrees/environment.pickle rename to docs/source/_build/doctrees/environment.pickle index 12a06481576076a52b4349ab9cfdbab4e2391f61..9143607cbaa94a732af2609f7865fd9a911426ab 100644 GIT binary patch literal 123890 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%0Dcz1CWniKFw* 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

oqBU>Wm#RU`&g$& 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 diff --git a/docs/_build/doctrees/environment.doctree b/docs/source/_build/doctrees/implementation/environment.doctree similarity index 69% rename from docs/_build/doctrees/environment.doctree rename to docs/source/_build/doctrees/implementation/environment.doctree index f46c34366cdbcb508b5913d50cd43d116948bd73..eb409101b13e09ac88343c9a59715e737386445d 100644 GIT binary patch delta 227 zcmcaC{91&yfpuyE*F@GLMvaN(FBp?1CosCyXXX~!F} z^ooj0rew%@GnFP~aQ1K(Bo-y67bO;COqo1IvvEr86pakl9zN&%+|0amh2s4DJUuO*gda65o6DKSHSvI3L1L}`Y0hHi#zh7Qm+ zmJI0(9+0Baq}0v38ILnD=5KChxz8-)lwn`o!WH}xTl diff --git a/docs/source/_build/doctrees/implementation/grogupy.core.doctree b/docs/source/_build/doctrees/implementation/grogupy.core.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1603524e7eb64e39451deee652e97268b4273b63 GIT binary patch literal 46942 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 F{5O8JS5*K2 literal 0 HcmV?d00001 diff --git a/docs/source/_build/doctrees/implementation/grogupy.io.doctree b/docs/source/_build/doctrees/implementation/grogupy.io.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ce8a75bee450090591b33f2ef40d0f0fc82c6c5e GIT binary patch literal 23496 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 BjLrZ6 literal 0 HcmV?d00001 diff --git a/docs/source/_build/doctrees/implementation/grogupy.magnetism.doctree b/docs/source/_build/doctrees/implementation/grogupy.magnetism.doctree new file mode 100644 index 0000000000000000000000000000000000000000..76be7085aa49f8e83c468d59fd43751808287ab1 GIT binary patch literal 29435 zcmdsAdypK*S=UMTmhPmJCHbL;N3vzD`oF0T+f;DpaMYf=VS0h6;aBP=*8op&$V#;vb+Wuw$^H0uH~g zdwRNec6WAWB_V^#-kV2%{k^~L{<^38@sW?e?yuwj*yf;aJGHfWvs|uuWh-d0@v>KH zRIOUrdaiZwiPmGS0-Ny7(}CCUOIC}mLy3~@xMkm}wH|J16I6|=S8kvX!2o3Vq_sx0q?CNR zCFmTjo1iLe*)wdS7_(t-V51TBi)`3+YF2Bpv1GDIGYoxasS$!};&Ovi4v3?%l4}M5 z9^!hWW>&@3c)3wmH%n$|)wh)hB`l%MGoCx?Nu2k|@@FuL21!fc{{?sn%VKlwp!cMG0M2 z^L_w!_Z(l}ShCl#5vNwR)->q~!P{4ZJ$o;tc@6&GkN*$g|AWLTYW5w@V1W(SO~-Gs zD~0%PH98an6^M6pov-ZC#js^I?Cb40C4)tK4n@QOtZ0Fv+26!!5kagKu zY8tghwcZ5R#@@X`_dC+d2(1I#9l?^>o5zW@s(U!7n`FG>b>D(gPFXFY^maulJ9VDg z3jC7P&O&U-^Y!LoQX^zsTQR)lE+U2QHb6x4!qcRy^ya2bW1|7;g{QEECD%J$Y}AXM zzXTgtD;zWmPAzhzPOJx8Y;T7O=M#0b(p0*R4I@~TI!vtqE1ae`#lV42gblyV*>@#y z6hLng1Us;TgIwuU!6se-MI>@68HHdnTRVxCmeTE26c(W6s_;o+kL|WnU>iZ|91MeF zV^f5jM*x0r>HcCb+V_#+tfI=5$jzU*G=|futv$zwco3N2(o2eNb3*b`ZXM5+&>l|{ z+BgYKNNk)C_7>KMm9Xr`VD5s-t(;24Yp6K1eAhu7(=@$NGYmnhw5u4TUvaKTGQ(n0 z7M+#vU~SKo41T${4A@YuW$M;Jmhn88{S+FPo(?Qc=o2XTv3>;+iyLm}6sgTB#*E_@ z!a7UnKH4c;c3IS-qt%>0m&m@^?fEtgDbvSw>9CjBR|ln@&1w#dIljh8g+xhcxbvt z6dLJO)m*iV2k*aU(YWirhvbWS>Bi?-i!%6gy$wET>)%2r=Uo*2)wT0Z7#zW zYYz3AgukfZqI#p-5`~IRXjOIP9KX|F2@X$c!N@pl)avu5@0(53yJ}4u_;=Dqufjmz z(+F)#>IQ#}`yROKo|AXpODdb>svv&tfA` zon^<;LmiuHQ=Sxg;%O}UN+Ay+mFuXqpn>$zSgK6ni4;I2^KZ+0c5N0pN)odbR+PUl z59KyoncK}M$iEqoX$=$FoysPvU4aOxYe73P&Y-61t*AU{X{J94`wgx9bpP@?NkBo? zpN$@Jl{aBB%Jx6_fQ5c*?R@-R#_7rSe^CffJ~1v)Nj0knN|g=?n~y2G^t=<$J^$W;JU=VLIfB3w1F<~;wjUF0AHbj3*%B@u#h=7eCG(%lgIqd3;U%l> z=lFYjI=&R6G=~f&70thzhvwMjCn2yG0GY$(2}H;^n~RZ7&h$qSyF8UY-M_r<@&qER zJsU~z4*N~fSx5(vVTi(n>|MM+wyF!3!>If@_)SY=$Z-SZEI1uec-+}9&V2&_yq9Y4 z?&w?dj`jL_6N!=Ks27^-RhPZ0>C{@4e*}GO3_b6#S+`o1f1+DH@YC;W-kiulon>P+ zPhL*T$8(fzYPQa@P0>qvKZ6oc&pC(-ZLWFpnJh;&5x&3*Lu5Y080g1%Y^1zf#Nc4b z6#GZnttHbfHC!{aFi3I&FZ8{7vxxqD;Q9SCDxFEO`IP!nvn!@FFxgdImJisqDRmZ* zcq&3xGLz!QP~Ea4Q3&kzO2w3^^=WNS!CteQZNo5WrpS;~CSq9ju}hRBNf8!hO(_-e z6S0tXrk18;G!l|&Wt7-<#jJO0vJ3V{Y}Qq5$dzbftL&s|1ere{lQ|Y?S+o(K?D71C z9?y5M7+#TkV=B4!XS$_1D)RtJYc!-OAk$Gfl%cHs1)0+5A%ZVSmZF|?&#ZRdghgc! z$cu9p_8(Js6)6dgjAZ1j3dR+ zR?YHPFe?ye7tX&TWouSMx{TJnQ)Q$E$}zl4g9q{rl_jMICHBHSq0zwn5tk)TMj2?x zP9ZQO8DT7YzTq{(dLxX*n;k%jG0ZE*NN1vA zsphF1}r;h}Xz>pxMm0#?Shz2w|$S3=QBxoZ5P~Z6)bmWNNU7=VA+vums)|P`84 z)$8%q8@M`K`40bmlmGr3|NVFV`xgIwn|`T_dg1a9?^ELdYprCPwG}IK_Tl=DSx+td zkf?3Y+{4wq>7%7X7clMc)6hrnmLfgv@JtNLK6=U14jqzDCLONqDN`9wQ%a~f`U^4B z`4bLGV3ki%HOYj7SQo|{AeC*<9;#G>_HakEoJ^7Uxl|H+BpE&npsY!TPiH8rB^kQ2 zeeseEzXbBSBpDPL9Z7~K05M3CfiNM-@J;-w&^1poXql^oQEDj$sed#OKS`B{#SJMb zhW8{=46^F}IfVfrl`Wl%h?B8DwGY6P2=B^JKq-XRl$_NF>qVpxur{*Xz`8izA&;`r z4u;oJ%P`BI`{0v*8{lw=sv-cHg>#D=cU`ozXu$l&umO4$Ku1yhSl8lr_lVNq z6yG=?onHoZoB|DbOi+_(IYYN+h_o|6)BcYealuxJT$S8O$@WxpS+f?XXpru3i^-7f z(PQsyyMoh|+riWbhn5Z--6`jMdQf(zz|IqbowkTI!p$(oC+-x!=knl_F^lkIj9Gg! zhzAp%{fa4qU&=$U9=)a^pclD-@joh_sOtb!usJl69&k zqK^hOTH@hiOx64hRFie8Mv|fgxIfEOjm#y=oJG6TvP{*y1R}*$&9BoHpQ_=Mn~bQNFcQqk=_%85myJ>IHN`X@1?`DbgCkSecIHObkU ztNZ9W>iMaeob_c}G#_dnCw{bp(WN5%?^6lyF^BUSfYN$6`a;of@Upg|ZX!0@h;T*a zFujs3pSV$!es>T`-xk={u^Ik#GJQMj)h!=*+CCy1IwG;+N}=31nr8ZJ$m{rAxH3T? zJ1Y_12{!7~`2G~?V?{PhE-Ueg8-;RLI!b&3y=>wO;^HaOZCLH-@tts^UibX47*z2A z?4u2j_Q9YT?aEa;Rqe4_&kd&PZB)dV4y6sbk{4VlMs7}Jq=#YM2q2_pC-Fxvf@M8) zb2PR7$_~6vE^?O2iLmU{v7{>HfplC4lDPV7LXa?^CdOry7rJN{*ZM<;q(10UDP%RB zi8O(&02E1B<*1{gm63?#twPpJMb<<60!<#Fq?gsEhP%hui#Ij=6~vt`Q^Sgkj;Z0_ z0mL9v!-NS_!@mK6SLm8g4PV~1HPfbrWkZ8d^?9nG@3ipk`bX{j3uH_Grrlb@v?i7s zn#PKQbRUL~Ovl5)*b>9{iyz zG3ggUZve| z=xI{#2CAX<3Ul6`LG9k8tElLOQLI;8!FO9eHoT!-h8k6aR!`L|cfPYm5e2o$j6SQ< zznsf*C>QZXf)I1Yui&!#UI2T=ne2{mr2K(1+V!7yPu%V_eb8zGS@b zT|oKgKjfiGW?YDxNZ#FrtY&Dp_m&!xd_CSO^8Paqc|7+K838S|e2WV$Q+`2%5~A+i zWKo=={6Yjm+W8tsq$Px(%H_uw$%i{kGqvA-`Iu;5WU3%lY_{fZv{e2w0K*d6%yWOH zASP`!V`*g>`}5E%4VUQ5Xt+OeF|`8Izi9O<5#5|eM7r}(^6Mt9(o`#u>G8-D2uc`2 zX6GT>>2RLK?rl%3kMnJJdW?il=8~4?0JLP{elD$c2bhT*K((LJ*t@(@T3gCPhcs-$ zpV6?te?UP>;s=ITECzX4)D4r?+tj(J^B5*U2?b>~Owy?^%ybaSXlo6@S97;G)O?7} zN;)E~#lemUm6ww(&JV_mZK%U2H%IE$_b2!1+WT)`dotjsM!%LzwVD@Ep8i+3YBMZ8 z(VE($oZpjRO53|jj&la)6}y$v{+=SOC~lPbzC0+8G=1^;o;<2f(+zpqk(A~KR9wB9 zi>q%b!>0uyf5f@UGBLJ~pq-umj2N&dDVWe$XkUX|0aJi3>PYv;YwgI#qOi49lLpL{mkYSUM+&HnzPL z@w@Gr3V652tmK~zQevnap=y$oK|?1*NLKSH@`=jM$|pM*t`u1(Q_1R)lf556S*LpL z%}`d$$#!S;;^k!T0C`<i>jHuG z&BShd5D~->5yYT<+A&QX=U2PGR5tKa5egYlQyW(5AirCjk#eO^Dfy@_%^#k$9b^}= zmui5I+>yf+vwOyAC$xD=GU~m}k@$_kdbDBHN*3P%lyAuT9_-FKOZ$OFcV+K%P2Jzv z_Vz|YybWzLG=Mcqh0-2xbF_!6Z}Hv8qrKf{`8PM%v=_l12~dfmY}GAn>W(jb?nh?S z5t>vxv;4o|M;YBG@)}*`;{+iRuA0(QGOTkVJAR_;V)~QR+L}u)rKj;()LQ2Vq)*29 zv$+_cu}8!Jb>2P=;O@!H1V7r?OM5UpvprcQHOTD(0C;O>Uk+iCCRd|xb{Q$L40 zG$^mMjQF~qyecQVWl*-HGkzdL1?L`re(l`jFU;Z_tLK~Y;tVdhUEpB}*II}6)?8du zVj*%AT5o*|=Q@uQ6O@ouW=A3MUeh0u?!*LQ^an{eF+mBN%}g7aIXQ9G#6l!H@_nsM zz8HyxD%j7OSdgSBkLEc#YBU#Pe7$Hyz#vuqopb}hhX zhqUoNK4D+Mfji=OrIFCXkp`{f>)50$W0i5+Abdk?y43LL@TOvXRMRH;L>$?~#-nXt zaYoe)4wn#zPT_NRI&q=gVxvDyi`;^EmwPrUw%Kbf+M5^I#0u?d$XD{=ri?vagV3zj zTZ?R??|C6e#R`VC78_b<;XoLE))gJQv5Eqd(QU(baW_ThL(uV0^cJLyfM#rJ%eF3~ zni>|-X)m8;Q*;;>4mK*T(YlA$vuv6U1F9GCT|KQ-2vFfp@kH*gRHUIuQ651Bd=Wr& zCev6~l z&I!VCRmIpOAz1!^Cfj_hilGWO^C#TcN&D(iJ+K;OuZV-GP-=^{R`;-$T!-XVQo_1T zCva%-De5Ygoq$FqU?ie)Ou7o(ZWEXZuqQJ2I~1RaiWQd~7tGs@gX)t{szmbt-ugnr|N{Q6I%|j>AF=f!b>c8DYm5ml1=nv$pr1> z8te)?4C}$+g#|ngaP(DZd$oDbUx7z$r;?lil*FD!*i-@@Nat}`^|}2wd>`aF?Jt)S z)zcGI{dKZ>I4=ffP_^aHJ65>NaUdWp*kRQLvWd`Kf)|xTyLEh=?S@TOi?MUY3>3wY zU}xEupovcBTG4h^Y#0B-eurI;On(z!8C#5&#y*R6nrfwN(eqPVb?0!7eRN)&St%ApI-6wXMe*R8f- zGSwxk3=eLC0^7pDJZIVV5=yNWEo|5A7IAhK#a)p1ESrhW4AHLbDIJ%?AEUPA_=XMvq9gTC ze2gB7>&nkk1NagA1Z;vH^9{XGh`%@+*n4qU9eG*DDWlQZLuyTQa{u4kc-BoH z9pNOr08L-(S+p&cp-CDYUdj{RhR~YwV*#;l?-6^2?;gx|7p~A2KNZ>ns6s0`E41RX zLV3grNtP2T)1Qz}@u#r!>XPTiuD~B|OFWEAPqfuI zA+d6xt!?$ArSZcS;>Px5UC|pf_z0dQuR);^t!v41T^Je63C-u&-O=;sU;G9c2=I9SuI))2rYW-A_QwKvSbNEBrZMo_Dpxr zo!eL4eRpRhgd}VpD>`yyU76UC?Gr?Fr|*yd#=A#v;z zD;SdRuSZwcz1@Ag?#wXqiHvH@?@U9Z^)omTgOZnBeJkG*Cz zE$GK0ryhGjD7MJ%+R20+$DuddiP36m zI3 z;?CR~Ibk%@uv?zfYzGfTb~tlJ$Tpe@7GgWLzxsGI<1}MurtLOnm?UcLFz_M48So#? zc#G|(L&~s8r2LJntfs>V&AsyMrp~OpAsO*n4QDAMT`qX{5Sr&6hBU9nf3L)UNATZK zYAQ+&A#yZhGTG9$y|9~H#>M|St4}dd0e^O^|B*X-F7DbL_eb4hN(SfLD)E^+#L#c6VWh1!b3y4220YRS{>^KD|v7VYf_q8`v>_h11%Cj4p zgO4+j^~!4tS0aVW0}213Wb#;TgckFs_DN}-1KB)t7~Uj zo{V}e){kdwZG=S^S&#Uo>iQogbs-ka*_~!wJ8w5Tj$UuFFY2`0K^WJfMLUci>;yDi zxJc&m-#I%@RdXqS5&bS$@M_eqTIv<}372Bk{XJACqLK7KFvmx47$Hrc_nZrL4B@)T zE_qqATXk1c#h?MfI0iMb9nL#(H+e;k_x4eL$A*CsUi2DW_dUrduF%PK6Kl|5g*sh- z=f({iR7-fM&Pe7RHVslR7=tZ!lL?AX!7Po3x>|@%M#Ug8+0)lqfH@Y}(XAz0=Q_dY+`#Vk7vI<1D) z@IpSCwmQ?&wpXL5)G_>%BnLKP&FeOMLZtsHdi!9q-o4=__j3QZV4MYnU2tI`UhXm~ zGN{SNB|R_Iyx3XHD(Saw4d!n)oM@MVQ4R- z)&(bhH&w5_P0}{}!ft|1|yY%ClRb zfwQ<|(w|U*&4`l=-hTt$lD(qPh5zQvz2s_L-np{oZS?QT(v|oA{sP{uZrFP3M$o!> z(DT-@XyVOzj@GG-FomYV<-e40A2zCfncn7gx(AtzJG1^faZ{I^e?#V0vcFhV7zh?T zRU9Tp9CFW>>K_HO7eQY(Hlb)=qdItlU^GO<#hQuuJ#$i`dXq*)%4o2UK7c z=KU!XrLWo9uAa_CT3X+IrP04KVnf&()m`1z&a8%bWm8tCFxCFiO(yQHTl56fuo?7b z7EM%Kc_tQ3D(4nmPIX4929cIxrp*kccsAP~pNWch>g9Fm@tKAKx3jwR_FvVo5lh4|2BLjNZ(a&MI-N~2IWlwx0Pq*&d*wxcO0m}2uf-~N$|-r(bUJBMpy zPv^iu@B_UaiE8b+6|{B-TKne0)@nnIeL0PhO2~btIIJ0Qs5{zDaCkrC(8P?1inq(e zj7b`AtWcNkXhe0U0+l`xA}VfYCLEG=lB4m-XgQ_MCAny3zI1asKv^{q-hT>0D8u0; zb_UQrWkrn)4|QhC+cQn=787yzU>|J2FoR9)WkCFMofgkO^#BHqVA1wkUH@0XXfg&+ zAzp4fUH>`y$-vL-?^bY(=Ta^vW3515?v%HWQQl;^dokHA9?IW)@P+^fqV%O*tw7$B z?@>uqU*yCzyW`;#MtW7sEV2d4xs>w`}ioNY1Y3 z?VL-k2_$z9fzFKrKizWeyor%!_ECah5@J0xqlE++e@@u}N^RhD4hA;Z7{ZFYc*Tjzmu0|vDT*Ua9SO>ytl zDozE{2g@xqvr>YT!-u9XhhBr=@0Q>lIH5LDf7R_``~&QmO}~&z06uNqZAG2B3sBjP zaeWH}eaf1(+@RTrQV9=5tHk-(5aRS7B_fU|XPVSM)tc1jS|8_7y`2le-|k^qjIgMQ z+1yv|aWEun$anJ5AwvFF1Huppy^atKz~-MZlBJl%3Rx1&`V{E%A>@Igy|Q1ZS%LCV zf!>&cVZbL=&H=dr%JQo3>6n-ahI3@-31jxw0ZlrWX+*|chX!b*E;e?Vt;NV3f;sB75gS< zZzb08*G4P|>!5n8TgQ%m@xVNK?kf8j-@^M>IRz}&v~C{+Fph%0Y^0h2{e-58ii^_3 zK1cx{Js zeC}Qei&q2M`C^lpmNd);=N(#vi#1#EvW~y!4q6o6E{sLpPzpb9q;TEu2)YfK!iNFi z?-&Tcub}OQ1CJ+HAO$QV_n#<~f;Ra0(HvmDsF55YIgl99D82r&QHyj(-i;PL%UWdO zCPc;MVB#huz4uqBOLt_V`soT(dZ-~PZm%XBl9iJq8vyy45TK?>?pgr(e*hs=1@a{; zqN~C@?r=3AKgAK`I7b)XWKxFZ`=226;@jZU|24Y$4qg3vdi6t zcOM#52=^*}`rzJ|;5(}T_fqv7?rqW){giO;c4hvP3h|XjijL}g!hL~+%nU+&FS`fJ z%>gk2S)(Pd{r;D zz{&N#SPJ7h_~X^>rWHA@$VnwPB(;+2<3mW*e~gGYJez6OKn(HTGI*ATtaA*a6)S)G zF(rat={4*nC74#cmj^Blz)^qBsL^6FA{tHet)B&bJ_a~Y23PgtsJ$)EYfu4}`fDp_ z2u(LX#v8H{wCtZ6u^^BPsu#mU5^261wdu_6TnPa%>wlmO`(GLHB_<|9$Aqc=3&vZe ziAjcv3$(c3$zZC2iq!Crxg0di?3#Z2uV(v5Y>Rogmg0WVNFKV)6R!6y&f`i<N7ECGE5%m%Igwvl&Fis~23frv3=F2E3d~5jlXo(1 zP0X99cpFX3nAWS*25r*Djep}e{jk)Cmj|(8W%Np zRuMP)GGtmjlPkxKzL?S`kE|DN#B|Y*8I4LwbG%6YR6*|RDevaXG*!F(uTe3*SdrYn zW`6pB|6(ay1vt^SKvXv3$>KzRTH#$CjLB{7+JZ5E2qp``7{yN?81s41tpXTB)pIcB z(lK1oPYK3smCm0oy^|JzQ2)>HA`kV0ftbn6(mO(8V(Pldm~jFMPFJeOazC-`x~mf? zBfk>t7dv+WOtb#3Oc2fGg7sdA=IEPZ%dTU0wT*wd#3(<@$?&T=S*Hp|js5*DmMAF1|WEuw{D13EJrDT3Ub@BjejHlwDB0l8=@ z%`jdM`h4J^zvcQ8!CQ-)oS9ymHdjX9p54Q5UqLfz`gI>~rZ(r^pQ|tFu?0_+k-0`J zi8(m&fngXaAYba*l;GNGf|M**eOuydJyjNk9do7PEr^YJ>IGZNiy^`6NTY?{|hS+3axVb ze4$V@=e}|HHcN+JNf9at{2Qb8>Op|!$iL6pYZ3&Aic87F#YncFt5BC71c>T06{z$e zKvdkgO*kZ%pdi49k>!*+mlQtKsAEkKgDqRDBL;b7cR6;zu2rl%ld^0M9H{2{r>U4;;NTU-3gaDg zc74YkJceiXQ;Itn_}-D(Pxyrs7eBy_3784kl; zYbD%`a(C#Jo_6~H4kTtyli~Dbnb)e*8>w_aO>>~;vJ z5Fu0i^dV$Zpj!omjH>4d*?*-g`Y92z5$br*SfYh=ixUx@AgRwt3AXD|K|dMmWd!oa4qn1(whqqm$5E5)P!p&( zz)CbIB~$&x0x04RPM+^Mu97B%Lbuih*9qBSrCk5Ch7E`BW5HGox6+TPOat;T_~8K~ z6$u1DsE8&ldqJO%WDU|-GTpDJjFf1}o~9(;hw2~)hDx#<%?_HTSI{Veny%xG($GRf z5aA{x76dv-^YYaX3J^fp0U?2JW;~b2WiiFhP;o&Q z_tu$3UV@6$bA-!BTNQI6$At&DZ=OLFj&v7{nGJg>y0mW@~tCPnpDH>pEa zLK$So?*!ui3nHn zr;^jJ8p%mFFhZ+7!g<#W3}0iR@0ak22LGWdeBP)+VNO&_b#uC=vb11R)m~Qo|E>}L zx?vFj`6VVW6T>1ZE@l(MBIV>6*1dVdfHfHc6ihb1VI)A^;%G(He_;ab*}&a1u93#K ztM|UrZL)anJUEL0ES*ciMGge-ZYWJ22G@?SAKYa}|5EBoh-kpyq%j*&=Wkp>y4&B9#Q5zFHR+4+mj-4>Iq9M9A zxysq=-P1SbQms;6?gk^<&|Q;u^&V%oQEi#6K95SK^=Z%`Ipy_rhC}5aTR~&@ps{xp zHdY%hXQyCRp7NxV4}MWO@dHM@>rT8EyuY3CZsH;BilC(oe1Kvyh-%C6QagL)KTWv$`V7M#I()XV$xs44ZZ+0^}M36pV% z4;411tP9R6=1{*2DHo6A%5$hMrnJdp>y$%HrPIFX0&ROKjt#-p}Mu4%WC3>0rEelOWprm%vf>TVE~jkmK|sO{|C45yne zh!3tRF4J2`s^Y2QZfY3rCXKn%<4P8c@88m&tE9Efk!?VO3Ug$NpS~Q~H(^ApkRzk& zd5-LDbVWa9j%-`%6q!t!v|aRH-xl5g2zO@Cj{Yg6aPVPPC!`(e&1Hbzv4fAB$-EG^ z+}_3HW<<)cYG_1poXT1N%^mqL<>e8TD3^A>;2vVt#&wVJESPOwz(?VbeX-`kV3B|A zb{g_)Kg2R>UW~nU_|C7_Vi~uI5T61&Z@1XpD8>c*;un;_({gM=NEyrdR3}YV@PzYV zhh;IX*S?C@dcXG7X*zTL8BwZk4WVj(k%)NaEhFrKd7MXi+D+JMULK9$7xtL%NEHh` zAw64WH^nA^i3<*ZR`#`>^gAXO9B!*ywBc>ce zJe2Kt6!iHSnt{@~r9e)VWyE_yJr5?kIEgOvIx>CAKUhJ72^s$oZ?J|g8&30{Gh#vD zd{i%n&?NeNd26BIsF@G}IvY?Z=lYycOT=_fSPvy9KEqm5X}Xu8;wmWawKKUgK}Cw| za>;3v{^J=hBZ&>=VTHq&KQfYz?puVFe~ojjnc9Gl0e;h{N?}@5Pj%C}ri!2>d{FIW zWl;ayh=1LnC@JxmOk^eoMO0kSCI&_7>9V@YsRVwIF~g^fIV9udVYa+3fggyvC^)~1 z)um_gemsSO_0C0f@oB%0gOzCX5W_3PPz>EZR)}D&jt=eS_BxgJTpZbMG78iEgAn|y zL7yKB`}-bU2xoZP$&y#M-2>e7<`uM8-|e%5m>9YMJi11a;lX zT4v(7M8)M{;ua*u*HoxWcU+=6S%FHd>kuwTRNO{QI3&v^$29={GA^%%t7`)My$3?5 z3j9e{MAw4xbk#FE<-Bot;P2^kzf?GOue44H>1wVDei7Bgn>iUz%R}mTf6x2{W<1R-Ae?6s5 zerlbN!K~o=!NKkNV~!8%H&vwkV%i#Wh)_ww{{j`$3lUy5Sf_l_lmXHr57mr6Ds4sqa`-h6;Y`$lpN;xvdExmB^hM!nf&OL~w`8APEAIcYyaJ;|`MloZ z5TAuZ|1}qYI#C1C=f0OGeS1l=59#BF;(y1EGIuJF{y2!LNdNNk!tG>c$Xu51VYLE7J4hg{%z&#Kc{_f43km!S#;^IuPFSx$_vjI zz9?J?f71;oB=>ZwME{QR;*CVlYaLSbBdmw%6a2=u=Zie5DDwA~7oIP2 zQMeNMW^|a6cXq9~f4aN^BcbzpO@vYUn3h521 zo~Jjy04@3SQ>Hg|X1n!FhC_C}@am7_bv{rZoZ&cftF;)=&V``uVl^uA95J>Ai7}zv z6%>RiieCABWoW-!ZfN=6nR~g6sVKGaCDDN1)W-8Y+l1P7XfHb0?1N1|^36r-3b>x z3z;*gIYGmNTrSUb7H5%$L&7Gq$vAn|2K$$q0lr2_R+P)}4JRhrx#ivC+HDjfZJ%3Z z!-?vlH!JqfH4s_wt3%rhrC7Aeb>X1T%Ej*noVE0#ku?b9PFMp0livb;Rpd@Lj^uQ% zO_gM~}l?fD9yMhu_OP@7rscx*4 zq4;?wY!hQ8Dy||EVgsn>OHkQDQl%iE<^^ zLsF|&o-k^q?$ES(Xoj`Y#9fGr%f`fANTRQ(P?zq|MD-&TsKm+x;hIFnt=5D?vUPH3 zgOvxFP@oW=HCcJkfDo##Jdmu2P7M%L)h$O7&mDf{!NcH_uRM4cU9pu1>}s7>9vo#L z_5zN}8NBQuXUkDaJ?xr;E7KAt8~7C4sUu6v4;`7Z&fRloy_#-4lhY?A{2oTiF2dOSRyI@=A;{e7x@B zz@1%B@S9u+YCXZ2aIAg>&;!Z;7WPB2|J`!-^V6#@^125u=Jg)0SYQfoQr zQt`fRcbVV2Mxy7nnuxyqT|K#)>tt)2T>U6yUzl7~{PZPP6VR~$?dKu!qe(D762z!;)@bHvQU&ME3BdHgsF+K67IXpx1HZ7nLAc55i(!FVx z<3VLCceXTTEmLt1P1qKVV~7JAXFIm$kx^SX*2e5Zo?;P%-aP6@T|9w{s@T_E;~>Uo zZh<|DbeuR_ka0zpLE-Sa>o7o(?DCb50NegQmx40#b3+)peP4PdZ?sQDBls+QLMpm#CIej zJui9{MyXd#kXhs=Vo_YKHQ~%svTM$qULvy4yieBCjsp^{bt9<@=t4-HP@Nj+t3nq& zN_bbU_4(0f^;%e+ysgT zbeX)cpd!PGx#qOI@Y&qJv3fy+58tIH^o->{Ya~29WKcr!)4V~tCz!2O__7fT!V{?8 z>Yi|NC}~O`9+F!5`X3s#P`6M@X?=|e*~CJLimS%NLP?=9tE-$!fQ}ive$bdh@&?}D zl-DJ)2%;|PrS4~S>CpM3X%<00n2S!Mz7_p!7}^*W&dFn<#S*m?<_-SCH2 zATLU-U0x_Jt?RsZO~fGs${Llf0?u(GDd_=+4j?0CP28C@a%qLS z^ngQD`zuiC91<1x784H1$0*iY?6|6bk7aKm!{$6L>n&&! zC%4Rb&DA_=?P5>9Eg&N{|~8{ z-Wb<=-n8B*0ji5V8KvEg2X1h!520MJqY6ce& zvg9EYY&(HEcY}vBE9|Hb1)Us@T3OtSf>jy%%SQwPtA05J34*M@t>mqZ@os^1`rjt zR0JeIm%ysh{3RACO@fgh5;pa?JetidQZ<2GaS((I-z_U=!cu($bM9`j4*)e ztxDss08Y~1N>@i#&@wu){c7Ga4LjKk9mr_{yH?emG^$SEBvc26d?e3&A!;shS)q(1 zPbF_CPH#8jR7^jF%4wb8X(pKRU?T?i87eMLeRSGuUII-JRHOu}LS16|k)b+RflB9) z>f)ws!XY`pR#uljdA}jWJ95uu!jP8sr>z!9aUL8Lj~;tvth+GbJRxsE&Pn6_F-mXe zk-npssyA)G=}J$opiu-HKT+5y&87B|OF7yGMCnU;kCYSrvJro}6A_U2EaT6_iHM4~ z%EUxT7Voc6m+nMF_0tuobSEMzZcHW|k_nO%8O-5@tCRbw9(7IT@P7cts?OmhDOPILHI#&)OH89Z_Sk^YH0qa1d&zLnS8 zS;f}ohIi(oO}ZO=+Vc!k8~&9kz_>N=hJZUONF;R0~-B7 zH*vB(i=3yv8!o9D?eC^ydgk8#H%4)j>Q&S3jU66!)r4E#!H1(enQY>XAJ#P~R(A-o`twA@C&QV>^$#@j zC&L{~7U}DMw1iAgkWng;#&W5h3^N&i#HdALBrRG*gOO#>=g;H%8>o+@CyQG)xK#zQ z@|hL1hUP<0@z!V);QhJMmqX@)r^;kLY{Zh7BoiMPQ<0qWg{!&74ozN?v!1((qfZ-g zB*yVV;gB5Q zJgZAL?OHk+?)TVR!&wifx`)fkZ!=LWU7xB4vDKP4{~4IA-Yw|fPLr1Z%o{tzy!mcj z5^E&|!{q(ntUw+#_515Wd1wxLa;WA?M;?+|IsA@GOth{$JWatTKwmbP%$!pq+=-~T zY)ssVB>GoOqUFIwcX*=uiwab_!xI&^W)lv{2gu1|Xac5U6o46}IPP#WGmx@{TF&rh;^kQVzk1Ym`PSfc+ z?$wxxVOK-?&UE??PPk+5*zOU$bM%2OOxuOh-OW5|x>JzUrZQhhMk9R6q>hh7O(mBg z&bJ~g)W%Zp8a|9NA39M)lTl1XX+?kc?1qHCipAb>8u;0v`Zgvz>zy#fzJ!`6>s+#3 z-f4O*r+Y5hij4#@wh%kxIH?(*4hG8%N^b|>zh zb9bFf#*r~{aBN%0WVC5pPjIY zUpwNUUYoV+3-lDMjDY8Gxtr{rLowJ5;bb0uAlVUN)Q(LIwIy2P*8M=T6R8ESjbo)3 zX%j|-0x#!x@JSzbr*;9mC~E8oJ2VFM2?9FPj@{TEI_)5gYb^8FJ-aEHaP4OLb0pd0 zEP0S(j3e?Q`4WJDhBMolM|nFh*kKDd(zF5=EO```*SiTLwckXg-X)dSi`(oM!Y z@!YZ39E&_$U!gy&Ibj%tHP>!6nobA}5UcgLo9yC}&y+I4O6evCd!FwNvzLnQab~NqQe8--rgS;E~y~$~HlYLk}7=#Uc)sJ?| zpc;4ze(59ZKJNW^PMgK$TaopvVa92=n9oYPRM-IX;EnnsC-*!Ux2Fk&$AnoJ>+k& zoYp)HvFR;(are&MN0Oawr(J`WIPg-;F;U5Ox`Sz`QzO?%E_LI$9o;xHgWJ(`dl_dl zwx)w{9v-!y-ee5m&06eW>lZw*n{37XW3N1Z1LV0goU8W~Pj^)D*UIAIyf&Haf)h@A zPCUozKtPyr&%5V3v&mK-P2j$;L=St% zXl-pR#wITZ(Fu052TZ}TVs<^4f9OMi?~NNuqDV|0^W`|qR< z@B#dZl5x5nFSi*ndvGyw52LeS&)x0rP3}0pfXJ9hF5J8-W(P!Pnz^?4X zDjD%2bZgxY&@k=aqAnn_=hp|BWvisnn{MahC-)uhy#G6!AcC*ZpO?1a&kyL&=K+`c zU!*@%Tk+?5`a_=s^yzbfKAoKF)5*F%ZS(YL8>mlfX?$91;}hV=@YqhWBWvkQ_B-kx z{Dlkv`rvmcpvm{RlCyXCdr&<*V{tZUrq07&y`<-6`u4b1;<&7p5$)B=N8c32T|}Dw zy=93f7$P9t)`JcOQ}oC6pxNX`j1G6~w7CB?4Dr3)yAe8Yye5JWY%qei@CwtYtKHs~ f-ev}mk0I8Z9emui8O)QdPc*1w5HXbNYx@5IDH3r5 literal 0 HcmV?d00001 diff --git a/docs/_build/doctrees/modules.doctree b/docs/source/_build/doctrees/implementation/modules.doctree similarity index 79% rename from docs/_build/doctrees/modules.doctree rename to docs/source/_build/doctrees/implementation/modules.doctree index 120fcc72d9f43109a2456a191a7e73e3b115706e..a54b3cacb870774ad5971a9e4a7da41df1699684 100644 GIT binary patch delta 133 zcmcaF`bU(dfpzM~i7cIx%*92?Q!?0Nr(|&Uu!N*mluVgCr3WN9aose=xXG@JE_|7} z1v#m?sd*)dC7JnolRFqQ1jJCq^e2C06vGtcV0tPHHa{^#8EAoOEX3r^9L(3*0Y_so A-v9sr delta 121 zcmew(dS8^KfpzMYi7cIp?CC}M>7@mgQ!?0Nr(|&Uu!N*mluVgCr3WT4aoIFR|H-zD zE|VuPrc1Er=BJeAq!t6^Q}arSGJ&kvDSkcdlXaP%O2f2FNz70N8m1bHFlDnU^L2Ir DF@!F< diff --git a/docs/_build/doctrees/index.doctree b/docs/source/_build/doctrees/index.doctree similarity index 58% rename from docs/_build/doctrees/index.doctree rename to docs/source/_build/doctrees/index.doctree index 65d681445df20b9bd81c2a3bfa93a7382e504fc7..681e7c4eca6de0de7ac08687ab25812c77ad83af 100644 GIT binary patch delta 927 zcmcZ|J~@K5fpsc}&PLViGx(a2!!!J%^UEI~PO9CDk_3dXT{;Eq=WPGImT3kd>W0fm=W%9Vpof)RUo@!3;Iu zfAR{M7~T0GLG*CSf{ThGgv{cuqf`!7%aAt%Rp8)&~A zQ`W}G9~HD2Z@``L6zB{+#>11(%FD6_0d2Ypb_j@d5#1pmK@^9?DrkAJGGhw}xG0K4 zV4@l3J#59PiABj7Q(C7$(wIUP@8pXL@{ADYaZL`?R+zj`R*FfSdGdUDUB$yd@51$f zBAgEq;lV&>u>&>8PY#gdVFmG+!Mp}J76GJS1WC-8%%x-^Fby?qTPOP|B{TX@7F3ek zd_k$1iLqdFi0W(RpgN$ktZI1UgOEUyPc_ug`1)?`4V|K<=u*R&`%@Z}JGqTq-IuWgDXwfG-+BzXVgt^3Kb9TGGUt?;to#eY~bt1nhtEif`U>k z4s#fLsiLJV2orBAx$UAo>P73sF+6PGZSLTo;Fq*Qi@AjG-tWEldyfwme%|CBa`ms; zdu~BUkLC+2%X&dKO4(ArXiVgdoPN*3hZZdoL_Xj6BkO^63Uj6>2Q5JkduHq{;kG~K znX+ouj2VE6s6tzuMrqg=H&F&QqSN9H#^)C5GOCAkTAibX2<^53P^zZlKW*1SRsq>D=4EL7(*{ z%1h)WY|CeuZcm`=DbR&UMMgVRKtXSzsA%ZNkisvjaP~0i&|;G>6mu{uN72@x&2>8S zi>Hl~8M3J-P9qjRCc+Vx^|}TN2MLJ@urNoRTpNaG;m=Xoy+#<;)N`lskYSrAezTeT6e1OeY~cpE zLN!U6e#+*EkuB(@%8Gv1d8NeRR&nczi>#Kh;5^-Voa@!*a0A!fLQ=IqjXy_d8?xF- Q=6i3OH`*ln20PlNzdHT&K>z>% diff --git a/docs/_build/doctrees/introduction.doctree b/docs/source/_build/doctrees/introduction.doctree similarity index 100% rename from docs/_build/doctrees/introduction.doctree rename to docs/source/_build/doctrees/introduction.doctree diff --git a/docs/_build/doctrees/quickstart/index.doctree b/docs/source/_build/doctrees/quickstart/index.doctree similarity index 100% rename from docs/_build/doctrees/quickstart/index.doctree rename to docs/source/_build/doctrees/quickstart/index.doctree diff --git a/docs/_build/doctrees/tutorials/index.doctree b/docs/source/_build/doctrees/tutorials/index.doctree similarity index 100% rename from docs/_build/doctrees/tutorials/index.doctree rename to docs/source/_build/doctrees/tutorials/index.doctree diff --git a/docs/_build/html/.buildinfo b/docs/source/_build/html/.buildinfo similarity index 100% rename from docs/_build/html/.buildinfo rename to docs/source/_build/html/.buildinfo diff --git a/docs/_build/html/_modules/grogupy/core.html b/docs/source/_build/html/_modules/grogupy/core.html similarity index 98% rename from docs/_build/html/_modules/grogupy/core.html rename to docs/source/_build/html/_modules/grogupy/core.html index 8ff4288..5ebd162 100644 --- a/docs/_build/html/_modules/grogupy/core.html +++ b/docs/source/_build/html/_modules/grogupy/core.html @@ -53,8 +53,9 @@

Advanced usage

Development

    @@ -119,7 +120,7 @@
    -[docs] +[docs] def parallel_Gk(HK, SK, eran, eset): """Calculates the Greens function by inversion. @@ -146,7 +147,7 @@
    -[docs] +[docs] def sequential_GK(HK, SK, eran, eset): """Calculates the Greens function by inversion. @@ -178,7 +179,7 @@
    -[docs] +[docs] def calc_Vu(H, Tu): """Calculates the local perturbation in case of a spin rotation. @@ -203,7 +204,7 @@
    -[docs] +[docs] def remove_clutter_for_save(pairs, magnetic_entities): """Removes unimportant data from the dictionaries. @@ -240,7 +241,7 @@
    -[docs] +[docs] def build_hh_ss(dh): """It builds the Hamiltonian and Overlap matrix from the sisl.dh class. @@ -299,7 +300,7 @@ [ U.T
    -[docs] +[docs] @ np.block([[h11[:, :, i], h12[:, :, i]], [h21[:, :, i], h22[:, :, i]]]) @ U for i in range(dh.lattice.nsc.prod()) @@ -474,7 +475,7 @@
    -[docs] +[docs] def onsite_projection(matrix, idx1, idx2): """It produces the slices of a matrix for the on site projection. diff --git a/docs/_build/html/_modules/grogupy/grogu.html b/docs/source/_build/html/_modules/grogupy/grogu.html similarity index 99% rename from docs/_build/html/_modules/grogupy/grogu.html rename to docs/source/_build/html/_modules/grogupy/grogu.html index bad6d5c..233f699 100644 --- a/docs/_build/html/_modules/grogupy/grogu.html +++ b/docs/source/_build/html/_modules/grogupy/grogu.html @@ -53,8 +53,9 @@

Advanced usage

Development

    @@ -140,7 +141,7 @@
    -[docs] +[docs] def main(): # runtime information times = dict() diff --git a/docs/_build/html/_modules/grogupy/io.html b/docs/source/_build/html/_modules/grogupy/io.html similarity index 98% rename from docs/_build/html/_modules/grogupy/io.html rename to docs/source/_build/html/_modules/grogupy/io.html index 5794a71..96ec00d 100644 --- a/docs/_build/html/_modules/grogupy/io.html +++ b/docs/source/_build/html/_modules/grogupy/io.html @@ -53,8 +53,9 @@

Advanced usage

Development

    @@ -149,7 +150,7 @@
    -[docs] +[docs] def save_pickle(outfile, data): """Saves the data in the outfile with pickle. @@ -167,7 +168,7 @@
    -[docs] +[docs] def load_pickle(infile): """Loads the data from the infile with pickle. @@ -189,7 +190,7 @@

Advanced usage

Development

    @@ -115,7 +116,7 @@
    -[docs] +[docs] def blow_up_orbindx(orb_indices): """Function to blow up orbital indices to make SPIN BOX indices. @@ -135,7 +136,7 @@
    -[docs] +[docs] def spin_tracer(M): """Spin tracer utility. @@ -172,7 +173,7 @@
    -[docs] +[docs] def parse_magnetic_entity(dh, atom=None, l=None, **kwargs): """Function to define orbital indexes of a given magnetic entity. @@ -214,7 +215,7 @@
    -[docs] +[docs] def calculate_anisotropy_tensor(mag_ent): """Calculates the renormalized anisotropy tensor from the energies. @@ -247,7 +248,7 @@
    -[docs] +[docs] def calculate_exchange_tensor(pair): """Calculates the exchange tensor from the energies. diff --git a/docs/_build/html/_modules/grogupy/utilities.html b/docs/source/_build/html/_modules/grogupy/utilities.html similarity index 96% rename from docs/_build/html/_modules/grogupy/utilities.html rename to docs/source/_build/html/_modules/grogupy/utilities.html index c7f9775..54e615b 100644 --- a/docs/_build/html/_modules/grogupy/utilities.html +++ b/docs/source/_build/html/_modules/grogupy/utilities.html @@ -53,8 +53,9 @@

Advanced usage

Development

    @@ -123,7 +124,7 @@
    -[docs] +[docs] def commutator(a, b): """Shorthand for commutator. @@ -146,7 +147,7 @@ # define some useful functions
    -[docs] +[docs] def hsk(H, ss, sc_off, k=(0, 0, 0)): """Speed up Hk and Sk generation. @@ -185,7 +186,7 @@
    -[docs] +[docs] def make_kset(dirs="xyz", NUMK=20): """Simple k-grid generator to sample the Brillouin zone. @@ -226,7 +227,7 @@
    -[docs] +[docs] def make_contour(emin=-20, emax=0.0, enum=42, p=150): """A more sophisticated contour generator. @@ -275,7 +276,7 @@
    -[docs] +[docs] def tau_u(u): """Pauli matrix in direction u. @@ -299,7 +300,7 @@ #
    -[docs] +[docs] def crossM(u): """Definition for the cross-product matrix. @@ -318,7 +319,7 @@
    -[docs] +[docs] def RotM(theta, u, eps=1e-10): """Definition of rotation matrix with angle theta around direction u. @@ -351,7 +352,7 @@
    -[docs] +[docs] def RotMa2b(a, b, eps=1e-10): """Definition of rotation matrix rotating unit vector a to unit vector b. @@ -381,7 +382,7 @@
    -[docs] +[docs] def read_siesta_emin(eigfile): """It reads the lowest energy level from the siesta run. @@ -404,7 +405,7 @@
    -[docs] +[docs] def int_de_ke(traced, we): """It numerically integrates the traced matrix. diff --git a/docs/_build/html/_modules/index.html b/docs/source/_build/html/_modules/index.html similarity index 94% rename from docs/_build/html/_modules/index.html rename to docs/source/_build/html/_modules/index.html index 420bb05..a4ed5c4 100644 --- a/docs/_build/html/_modules/index.html +++ b/docs/source/_build/html/_modules/index.html @@ -53,8 +53,9 @@

Advanced usage

Development

    diff --git a/docs/_build/html/_sources/bibliography.rst.txt b/docs/source/_build/html/_sources/bibliography.rst.txt similarity index 100% rename from docs/_build/html/_sources/bibliography.rst.txt rename to docs/source/_build/html/_sources/bibliography.rst.txt diff --git a/docs/_build/html/_sources/changelog/index.rst.txt b/docs/source/_build/html/_sources/changelog/index.rst.txt similarity index 100% rename from docs/_build/html/_sources/changelog/index.rst.txt rename to docs/source/_build/html/_sources/changelog/index.rst.txt diff --git a/docs/_build/html/_sources/cite.rst.txt b/docs/source/_build/html/_sources/cite.rst.txt similarity index 100% rename from docs/_build/html/_sources/cite.rst.txt rename to docs/source/_build/html/_sources/cite.rst.txt diff --git a/docs/_build/html/_sources/dev/index.rst.txt b/docs/source/_build/html/_sources/dev/index.rst.txt similarity index 100% rename from docs/_build/html/_sources/dev/index.rst.txt rename to docs/source/_build/html/_sources/dev/index.rst.txt diff --git a/docs/source/_build/html/_sources/implementation/environment.rst.txt b/docs/source/_build/html/_sources/implementation/environment.rst.txt new file mode 100644 index 0000000..d1d7b99 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/environment.rst.txt @@ -0,0 +1,4 @@ +Environment variables +===================== + +Coming soon... \ No newline at end of file diff --git a/docs/source/_build/html/_sources/implementation/grogupy.core.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.core.rst.txt new file mode 100644 index 0000000..0634729 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.core.rst.txt @@ -0,0 +1,7 @@ +grogupy.core module +=================== + +.. automodule:: grogupy.core + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/implementation/grogupy.grogu.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.grogu.rst.txt new file mode 100644 index 0000000..c51783a --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.grogu.rst.txt @@ -0,0 +1,7 @@ +grogupy.grogu module +==================== + +.. automodule:: grogupy.grogu + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/implementation/grogupy.io.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.io.rst.txt new file mode 100644 index 0000000..b0f4f60 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.io.rst.txt @@ -0,0 +1,7 @@ +grogupy.io module +================= + +.. automodule:: grogupy.io + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/implementation/grogupy.magnetism.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.magnetism.rst.txt new file mode 100644 index 0000000..a510e36 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.magnetism.rst.txt @@ -0,0 +1,7 @@ +grogupy.magnetism module +======================== + +.. automodule:: grogupy.magnetism + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/implementation/grogupy.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.rst.txt new file mode 100644 index 0000000..211bd28 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.rst.txt @@ -0,0 +1,22 @@ +grogupy package +=============== + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + grogupy.core + grogupy.grogu + grogupy.io + grogupy.magnetism + grogupy.utilities + +Module contents +--------------- + +.. automodule:: grogupy + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/source/_build/html/_sources/implementation/grogupy.utilities.rst.txt b/docs/source/_build/html/_sources/implementation/grogupy.utilities.rst.txt new file mode 100644 index 0000000..d4b00f7 --- /dev/null +++ b/docs/source/_build/html/_sources/implementation/grogupy.utilities.rst.txt @@ -0,0 +1,7 @@ +grogupy.utilities module +======================== + +.. automodule:: grogupy.utilities + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/modules.rst.txt b/docs/source/_build/html/_sources/implementation/modules.rst.txt similarity index 72% rename from docs/_build/html/_sources/modules.rst.txt rename to docs/source/_build/html/_sources/implementation/modules.rst.txt index c13cb18..b5811a9 100644 --- a/docs/_build/html/_sources/modules.rst.txt +++ b/docs/source/_build/html/_sources/implementation/modules.rst.txt @@ -1,5 +1,5 @@ -grogupy -======= +src +=== .. toctree:: :maxdepth: 4 diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/source/_build/html/_sources/index.rst.txt similarity index 92% rename from docs/_build/html/_sources/index.rst.txt rename to docs/source/_build/html/_sources/index.rst.txt index e4aad29..8e9e8ea 100644 --- a/docs/_build/html/_sources/index.rst.txt +++ b/docs/source/_build/html/_sources/index.rst.txt @@ -28,7 +28,7 @@ More on the theoretical background can be seen `here

    Advanced usage

    Development

      diff --git a/docs/_build/html/changelog/index.html b/docs/source/_build/html/changelog/index.html similarity index 95% rename from docs/_build/html/changelog/index.html rename to docs/source/_build/html/changelog/index.html index d08fe18..9a8a458 100644 --- a/docs/_build/html/changelog/index.html +++ b/docs/source/_build/html/changelog/index.html @@ -56,8 +56,9 @@

    Advanced usage

    Development

      diff --git a/docs/_build/html/cite.html b/docs/source/_build/html/cite.html similarity index 95% rename from docs/_build/html/cite.html rename to docs/source/_build/html/cite.html index 665370d..c3d7bdb 100644 --- a/docs/_build/html/cite.html +++ b/docs/source/_build/html/cite.html @@ -56,8 +56,9 @@

    Advanced usage

    Development

      diff --git a/docs/_build/html/dev/index.html b/docs/source/_build/html/dev/index.html similarity index 89% rename from docs/_build/html/dev/index.html rename to docs/source/_build/html/dev/index.html index e525ccb..9b5adfb 100644 --- a/docs/_build/html/dev/index.html +++ b/docs/source/_build/html/dev/index.html @@ -22,7 +22,7 @@ - + @@ -56,8 +56,9 @@

    Advanced usage

    Development

      @@ -102,7 +103,7 @@
      diff --git a/docs/_build/html/genindex.html b/docs/source/_build/html/genindex.html similarity index 59% rename from docs/_build/html/genindex.html rename to docs/source/_build/html/genindex.html index 2171a36..7e8d1b9 100644 --- a/docs/_build/html/genindex.html +++ b/docs/source/_build/html/genindex.html @@ -53,8 +53,9 @@

    Advanced usage

    Development

    @@ -175,21 +168,21 @@ grogupy.io
  • grogupy.magnetism
  • grogupy.utilities
@@ -198,7 +191,7 @@

H

@@ -206,24 +199,15 @@

I

-

L

@@ -231,42 +215,27 @@

M

@@ -275,7 +244,7 @@

O

@@ -283,19 +252,19 @@

P

@@ -303,15 +272,15 @@

R

@@ -319,15 +288,15 @@

S

@@ -335,24 +304,11 @@

T

-

U

- - -
    -
  • - utilities - -
  • -
- diff --git a/docs/source/_build/html/implementation/environment.html b/docs/source/_build/html/implementation/environment.html new file mode 100644 index 0000000..8be167f --- /dev/null +++ b/docs/source/_build/html/implementation/environment.html @@ -0,0 +1,133 @@ + + + + + + + + + Environment variables — grogupy 1.0.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Environment variables

+

Coming soon…

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/source/_build/html/implementation/grogupy.core.html b/docs/source/_build/html/implementation/grogupy.core.html new file mode 100644 index 0000000..eee07d1 --- /dev/null +++ b/docs/source/_build/html/implementation/grogupy.core.html @@ -0,0 +1,322 @@ + + + + + + + + + grogupy.core module — grogupy 1.0.0 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

grogupy.core module

+
+
+grogupy.core.build_hh_ss(dh)[source]
+

It builds the Hamiltonian and Overlap matrix from the sisl.dh class.

+

It restructures the data in the SPIN BOX representation, where NS is +the number of supercells and NO is the number of orbitals.

+
+
Args:
+
dhsisl.physics.Hamiltonian

Hamiltonian read in by sisl

+
+
+
+
Returns:
+
hh(NS, NO, NO) np.array_like

Hamiltonian in SPIN BOX representation

+
+
ss(NS, NO, NO) np.array_like

Overlap matrix in SPIN BOX representation

+
+
+
+
+
+ +
+
+grogupy.core.calc_Vu(H, Tu)[source]
+

Calculates the local perturbation in case of a spin rotation.

+
+
Args:
+
H(NO, NO) np.array_like

Hamiltonian

+
+
Tu(NO, NO) array_like

Rotation around u

+
+
+
+
Returns:
+
Vu1(NO, NO) np.array_like

First order perturbed matrix

+
+
Vu2(NO, NO) np.array_like

Second order perturbed matrix

+
+
+
+
+
+ +
+
+grogupy.core.onsite_projection(matrix, idx1, idx2)[source]
+

It produces the slices of a matrix for the on site projection.

+

The slicing is along the last two axes as these contains the orbital indexing.

+
+
Args:
+
matrix(…, :, :) np.array_like

Some matrix

+
+
idxnp.array_like

The indexes of the orbitals

+
+
+
+
Returns:
+
np.array_like

Reduced matrix based on the projection

+
+
+
+
+
+ +
+
+grogupy.core.parallel_Gk(HK, SK, eran, eset)[source]
+

Calculates the Greens function by inversion.

+

It calculates the Greens function on all the energy levels at the same time.

+
+
Args:
+
HK(NO, NO), np.array_like

Hamiltonian at a given k point

+
+
SK(NO, NO), np.array_like

Overlap Matrix at a given k point

+
+
eran(eset) np.array_like

Energy sample along the contour

+
+
esetint

Number of energy samples along the contour

+
+
+
+
Returns:
+
Gk(eset, NO, NO), np.array_like

Green’s function at a given k point

+
+
+
+
+
+ +
+
+grogupy.core.remove_clutter_for_save(pairs, magnetic_entities)[source]
+

Removes unimportant data from the dictionaries.

+

It is used before saving to throw away data that +is not needed for post processing.

+
+
Args:
+
pairsdict

Contains all the pair information

+
+
magnetic_entitiesdict

Contains all the magnetic entity information

+
+
+
+
Returns:
+
pairsdict

Contains all the reduced pair information

+
+
magnetic_entitiesdict

Contains all the reduced magnetic entity information

+
+
+
+
+
+ +
+
+grogupy.core.sequential_GK(HK, SK, eran, eset)[source]
+

Calculates the Greens function by inversion.

+

It calculates sequentially over the energy levels.

+
+
Args:
+
HK(NO, NO), np.array_like

Hamiltonian at a given k point

+
+
SK(NO, NO), np.array_like

Overlap Matrix at a given k point

+
+
eran(eset) np.array_like

Energy sample along the contour

+
+
esetint

Number of energy samples along the contour

+
+
+
+
Returns:
+
Gk(eset, NO, NO), np.array_like

Green’s function at a given k point

+
+
+
+
+
+ +
+
+grogupy.core.setup_pairs_and_magnetic_entities(magnetic_entities, pairs, dh, simulation_parameters)[source]
+

It creates the complete structure of the dictionaries and fills some basic data.

+

It creates orbital indexes, spin box indexes, coordinates and tags for magnetic entities. +Furthermore it creates the structures for the energies, the perturbed potentials and +the Greens function calculation. It dose the same for the pairs.

+
+
Args:
+
pairsdict

Contains the initial pair information

+
+
magnetic_entitiesdict

Contains the initial magnetic entity information

+
+
dhsisl.physics.Hamiltonian

Hamiltonian read in by sisl

+
+
simulation_parametersdict

A set of parameters from the simulation

+
+
+
+
Returns:
+
pairsdict

Contains the initial information and the complete structure

+
+
magnetic_entitiesdict

Contains the initial information and the complete structure

+
+
+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/_build/html/implementation/index.html b/docs/source/_build/html/implementation/grogupy.grogu.html similarity index 60% rename from docs/_build/html/implementation/index.html rename to docs/source/_build/html/implementation/grogupy.grogu.html index f93de93..4b837a4 100644 --- a/docs/_build/html/implementation/index.html +++ b/docs/source/_build/html/implementation/grogupy.grogu.html @@ -6,7 +6,7 @@ - Implementation — grogupy 1.0.0 documentation + grogupy.grogu module — grogupy 1.0.0 documentation @@ -21,8 +21,8 @@ - - + + @@ -56,14 +56,23 @@

Advanced usage

    -
  • Implementation

    Development

    Advanced usage

    Development

      @@ -116,7 +117,7 @@ More on the theoretical background can be seen

      Detailed description of the implementation.

      -
      Implementation +src diff --git a/docs/_build/html/introduction.html b/docs/source/_build/html/introduction.html similarity index 95% rename from docs/_build/html/introduction.html rename to docs/source/_build/html/introduction.html index 7b18686..aca00ec 100644 --- a/docs/_build/html/introduction.html +++ b/docs/source/_build/html/introduction.html @@ -60,8 +60,9 @@

    Advanced usage

    Development

      diff --git a/docs/source/_build/html/objects.inv b/docs/source/_build/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..72c5beeb0a636a80adac23cf04b320e5c9fc7b1c GIT binary patch literal 1167 zcmV;A1aSK!AX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGksa&KpK zaCr(NAXa5^b7^mGIv@%oAXI2&AaZ4GVQFq;WpW^IW*~HEX>%ZEX>4U6X>%ZBZ*6dL zWpi_7WFU2OX>MmAdTeQ8E(&*7hgVpPo9|SWeMzh>3>2JswQQ-}$xj z0hLATEgx&CXl&l~oOV-C=v}9M{+m;O=f9f;=%03kWgc)q3o%UQq{8H89`J}u(%_!e zN1l0*BW}Uz6%z&%BRjwC=L6V*_(N8>p}JPA&lki+qLV~Np@R2FPg$s{j$$T24js8W zMJK4ck7Fo#-Q|?WWV~4=vqi<_zZlddRRwMOEic1GfHc{4P|FE4KO&fxM#=t!4Ha6d z|0N22s}Dr9bpIGoUYaht&S^)!?wPa_JTU*=V;;!L)R^oJADrg>^)jmi%wTt8c*KZ2FD8z&XzNk<41x%%G6 zWgGiV%kP6B`~iI&my3l#m~6^7^n|%KGKb%T4eW+!(Xc?JwC1=g{yPLDtiuQWID-)zJ}Wu`jke_DW_S* z#q!J_Ls=D+jmwAdEoE3I7K0deVsfGP$#_@^urh#^Bdm;I zQwlFPq)=>&DHQJ&$!&-$y{i|vp>EJZaK!~tWFRN)poIF0OS;H_&-y_r4Hld7$Y2i| zLMsIp*R+uVk9CB$G+A8JM@FbvOK3}%%TRvxQh>q2W3{S_)zuU9@?R8*XjlzNxVzM( zZlqbdgK6n*;=%OO${T<%!Ex@twIkF|3m?w#P?>muDU0yNkKb-F2|&PkW$kuhgm{Qu zVP_MUBlM;5fe-h^H&lO34&Bv_3~)j^|C)@O>j)h=Mf%!JyutI(E`l_#tu9?;9= hRTv8&n~d;<|Fj(M$=~C0u`mdCB;^};{s+|RyF&2VIqv`f literal 0 HcmV?d00001 diff --git a/docs/_build/html/py-modindex.html b/docs/source/_build/html/py-modindex.html similarity index 71% rename from docs/_build/html/py-modindex.html rename to docs/source/_build/html/py-modindex.html index 9b6f18f..4d1b244 100644 --- a/docs/_build/html/py-modindex.html +++ b/docs/source/_build/html/py-modindex.html @@ -56,8 +56,9 @@

    Advanced usage

    Development

    Advanced usage

    Development

      diff --git a/docs/_build/html/search.html b/docs/source/_build/html/search.html similarity index 94% rename from docs/_build/html/search.html rename to docs/source/_build/html/search.html index f37e780..7c8a514 100644 --- a/docs/_build/html/search.html +++ b/docs/source/_build/html/search.html @@ -56,8 +56,9 @@

    Advanced usage

    Development

      diff --git a/docs/source/_build/html/searchindex.js b/docs/source/_build/html/searchindex.js new file mode 100644 index 0000000..3a44374 --- /dev/null +++ b/docs/source/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"Bibliography": [[0, null]], "Changelog": [[1, null]], "Citing grogupy": [[2, null]], "Command line usage": [[13, "command-line-usage"]], "Contributing to grogupy": [[3, null]], "Environment variables": [[4, null]], "Indices and tables": [[12, "indices-and-tables"]], "Introduction": [[13, null]], "Module contents": [[5, "module-grogupy"]], "Package": [[13, "package"]], "Quickstart": [[14, null]], "Submodules": [[5, "submodules"]], "Tutorials": [[15, null]], "grogupy package": [[5, null]], "grogupy.core module": [[6, null]], "grogupy.grogu module": [[7, null]], "grogupy.io module": [[8, null]], "grogupy.magnetism module": [[9, null]], "grogupy.utilities module": [[10, null]], "grogupy: Script for calculating magnetic interactions": [[12, null]], "installation": [[14, "installation"]], "src": [[11, null]]}, "docnames": ["bibliography", "changelog/index", "cite", "dev/index", "implementation/environment", "implementation/grogupy", "implementation/grogupy.core", "implementation/grogupy.grogu", "implementation/grogupy.io", "implementation/grogupy.magnetism", "implementation/grogupy.utilities", "implementation/modules", "index", "introduction", "quickstart/index", "tutorials/index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["bibliography.rst", "changelog/index.rst", "cite.rst", "dev/index.rst", "implementation/environment.rst", "implementation/grogupy.rst", "implementation/grogupy.core.rst", "implementation/grogupy.grogu.rst", "implementation/grogupy.io.rst", "implementation/grogupy.magnetism.rst", "implementation/grogupy.utilities.rst", "implementation/modules.rst", "index.rst", "introduction.rst", "quickstart/index.rst", "tutorials/index.rst"], "indexentries": {"blow_up_orbindx() (in module grogupy.magnetism)": [[9, "grogupy.magnetism.blow_up_orbindx", false]], "build_hh_ss() (in module grogupy.core)": [[6, "grogupy.core.build_hh_ss", false]], "calc_vu() (in module grogupy.core)": [[6, "grogupy.core.calc_Vu", false]], "calculate_anisotropy_tensor() (in module grogupy.magnetism)": [[9, "grogupy.magnetism.calculate_anisotropy_tensor", false]], "calculate_exchange_tensor() (in module grogupy.magnetism)": [[9, "grogupy.magnetism.calculate_exchange_tensor", false]], "commutator() (in module grogupy.utilities)": [[10, "grogupy.utilities.commutator", false]], "crossm() (in module grogupy.utilities)": [[10, "grogupy.utilities.crossM", false]], "grogupy": [[5, "module-grogupy", false], [12, "module-grogupy", false]], "grogupy.core": [[6, "module-grogupy.core", false]], "grogupy.grogu": [[7, "module-grogupy.grogu", false]], "grogupy.io": [[8, "module-grogupy.io", false]], "grogupy.magnetism": [[9, "module-grogupy.magnetism", false]], "grogupy.utilities": [[10, "module-grogupy.utilities", false]], "hsk() (in module grogupy.utilities)": [[10, "grogupy.utilities.hsk", false]], "int_de_ke() (in module grogupy.utilities)": [[10, "grogupy.utilities.int_de_ke", false]], "load_pickle() (in module grogupy.io)": [[8, "grogupy.io.load_pickle", false]], "main() (in module grogupy.grogu)": [[7, "grogupy.grogu.main", false]], "make_contour() (in module grogupy.utilities)": [[10, "grogupy.utilities.make_contour", false]], "make_kset() (in module grogupy.utilities)": [[10, "grogupy.utilities.make_kset", false]], "module": [[5, "module-grogupy", false], [6, "module-grogupy.core", false], [7, "module-grogupy.grogu", false], [8, "module-grogupy.io", false], [9, "module-grogupy.magnetism", false], [10, "module-grogupy.utilities", false], [12, "module-grogupy", false]], "onsite_projection() (in module grogupy.core)": [[6, "grogupy.core.onsite_projection", false]], "parallel_gk() (in module grogupy.core)": [[6, "grogupy.core.parallel_Gk", false]], "parse_magnetic_entity() (in module grogupy.magnetism)": [[9, "grogupy.magnetism.parse_magnetic_entity", false]], "print_atoms_and_pairs() (in module grogupy.io)": [[8, "grogupy.io.print_atoms_and_pairs", false]], "print_job_description() (in module grogupy.io)": [[8, "grogupy.io.print_job_description", false]], "print_parameters() (in module grogupy.io)": [[8, "grogupy.io.print_parameters", false]], "print_runtime_information() (in module grogupy.io)": [[8, "grogupy.io.print_runtime_information", false]], "read_siesta_emin() (in module grogupy.utilities)": [[10, "grogupy.utilities.read_siesta_emin", false]], "remove_clutter_for_save() (in module grogupy.core)": [[6, "grogupy.core.remove_clutter_for_save", false]], "rotm() (in module grogupy.utilities)": [[10, "grogupy.utilities.RotM", false]], "rotma2b() (in module grogupy.utilities)": [[10, "grogupy.utilities.RotMa2b", false]], "save_pickle() (in module grogupy.io)": [[8, "grogupy.io.save_pickle", false]], "sequential_gk() (in module grogupy.core)": [[6, "grogupy.core.sequential_GK", false]], "setup_pairs_and_magnetic_entities() (in module grogupy.core)": [[6, "grogupy.core.setup_pairs_and_magnetic_entities", false]], "spin_tracer() (in module grogupy.magnetism)": [[9, "grogupy.magnetism.spin_tracer", false]], "tau_u() (in module grogupy.utilities)": [[10, "grogupy.utilities.tau_u", false]]}, "objects": {"": [[12, 0, 0, "-", "grogupy"]], "grogupy": [[6, 0, 0, "-", "core"], [7, 0, 0, "-", "grogu"], [8, 0, 0, "-", "io"], [9, 0, 0, "-", "magnetism"], [10, 0, 0, "-", "utilities"]], "grogupy.core": [[6, 1, 1, "", "build_hh_ss"], [6, 1, 1, "", "calc_Vu"], [6, 1, 1, "", "onsite_projection"], [6, 1, 1, "", "parallel_Gk"], [6, 1, 1, "", "remove_clutter_for_save"], [6, 1, 1, "", "sequential_GK"], [6, 1, 1, "", "setup_pairs_and_magnetic_entities"]], "grogupy.grogu": [[7, 1, 1, "", "main"]], "grogupy.io": [[8, 1, 1, "", "load_pickle"], [8, 1, 1, "", "print_atoms_and_pairs"], [8, 1, 1, "", "print_job_description"], [8, 1, 1, "", "print_parameters"], [8, 1, 1, "", "print_runtime_information"], [8, 1, 1, "", "save_pickle"]], "grogupy.magnetism": [[9, 1, 1, "", "blow_up_orbindx"], [9, 1, 1, "", "calculate_anisotropy_tensor"], [9, 1, 1, "", "calculate_exchange_tensor"], [9, 1, 1, "", "parse_magnetic_entity"], [9, 1, 1, "", "spin_tracer"]], "grogupy.utilities": [[10, 1, 1, "", "RotM"], [10, 1, 1, "", "RotMa2b"], [10, 1, 1, "", "commutator"], [10, 1, 1, "", "crossM"], [10, 1, 1, "", "hsk"], [10, 1, 1, "", "int_de_ke"], [10, 1, 1, "", "make_contour"], [10, 1, 1, "", "make_kset"], [10, 1, 1, "", "read_siesta_emin"], [10, 1, 1, "", "tau_u"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": 6, "0": 10, "1": [9, 10, 13], "10": 10, "150": 10, "1e": 10, "2": [9, 10], "20": 10, "3": [9, 10], "42": 10, "93": 10, "96": 10, "A": [6, 8, 10], "If": 10, "It": [6, 8, 9, 10], "NO": 6, "The": [6, 9, 10, 13], "These": 9, "abov": 10, "act": 10, "all": [6, 10], "along": [6, 10], "an": [9, 10], "angl": 10, "angular": 9, "anisotropi": 9, "ar": [9, 10], "arbitrari": 10, "arg": [6, 8, 9, 10], "argument": 10, "around": [6, 10], "arrai": 10, "array_lik": [6, 9, 10], "atom": 9, "awai": 6, "ax": 6, "axi": 10, "b": 10, "background": 12, "base": [6, 10, 12, 13], "basi": 10, "basic": [6, 12], "befor": 6, "blow": 9, "blow_up_orbindx": [5, 9, 11], "box": [6, 9, 10], "brillouin": 10, "build": 6, "build_hh_ss": [5, 6, 11], "c": 9, "calc_vu": [5, 6, 11], "calcul": [6, 9, 10], "calculate_anisotropy_tensor": [5, 9, 11], "calculate_exchange_tensor": [5, 9, 11], "can": [12, 14], "case": 6, "ccont": 10, "cell": 9, "channel": 9, "class": [6, 10], "come": [1, 2, 3, 4, 13, 14, 15], "commut": [5, 10, 11], "complet": [6, 9], "complex": 10, "constant": 10, "contain": [6, 8, 9, 10], "content": 11, "contour": [6, 10], "convent": 9, "coordin": 6, "core": [5, 11], "creat": 6, "cross": 10, "crossm": [5, 10, 11], "cutoff": 10, "d": 9, "data": [6, 8], "default": [9, 10], "defin": 9, "definit": 10, "depend": [9, 10], "describ": 10, "descript": [8, 12], "detail": 12, "dft": 12, "dh": [6, 9], "dict": [6, 8, 9], "dictionari": [6, 8], "dimens": 10, "dir": 10, "direct": 10, "distribut": 10, "dm": 9, "document": 13, "doe": 10, "dose": 6, "down": 9, "dx": 9, "dy": 9, "dz": 9, "dzyaloshinskii": 9, "eig": 10, "eigenvalu": 10, "eigfil": 10, "either": 10, "element": [9, 10], "emax": 10, "emin": 10, "energi": [6, 9, 10], "entiti": [6, 8, 9], "enum": 10, "ep": 10, "equat": 10, "eran": 6, "eset": 6, "exchang": 9, "extract": 9, "faster": 10, "fermi": 10, "file": 10, "fill": 6, "first": [6, 10], "flatten": 9, "float": [9, 10], "form": [9, 10], "format": 13, "formula": 10, "from": [6, 8, 9, 10, 14], "function": [6, 9, 10], "furthermor": 6, "gauss": 10, "gener": [10, 12], "given": [6, 9, 10], "gk": 6, "go": 13, "green": 6, "grid": 10, "grogu": [5, 8, 9, 11, 12], "grogupi": [11, 14], "groupi": 12, "guid": 12, "h": [6, 10], "hamiltonian": [6, 9, 10], "here": 12, "hh": 6, "hk": [6, 10], "hold": 10, "how": 12, "hsk": [5, 10, 11], "http": 14, "i": [6, 9, 10, 12], "idx": 6, "idx1": 6, "idx2": 6, "implement": 12, "index": [6, 9, 10, 12, 14], "indic": 9, "infil": 8, "inform": [6, 8, 10], "initi": 6, "inspir": 13, "instal": 13, "int": [6, 10], "int_de_k": [5, 10, 11], "integ": 9, "integr": 10, "invers": 6, "io": [5, 11], "isotrop": 9, "j": 9, "j_": 9, "j_iso": 9, "job": 8, "jxx": 9, "jxy": 9, "jxz": 9, "jyi": 9, "jyx": 9, "jyz": 9, "jzx": 9, "jzy": 9, "jzz": 9, "k": [6, 9, 10], "kset": 10, "kwarg": 9, "l": 9, "last": 6, "lattic": 10, "legendr": 10, "level": [6, 10], "list": [9, 10], "load": 8, "load_pickl": [5, 8, 11], "local": 6, "lowest": 10, "m": [9, 14], "mag_ent": 9, "magnet": [5, 6, 8, 11], "magnetic interact": 12, "magnetic_ent": [6, 8], "main": [5, 7, 11], "make": 9, "make_contour": [5, 10, 11], "make_kset": [5, 10, 11], "mathemat": 10, "matlab": 12, "matric": 10, "matrix": [6, 9, 10], "maximum": 10, "method": 10, "minimum": 10, "modul": [11, 12], "momentum": 9, "more": [10, 12], "morilla": 9, "n": 6, "need": 6, "none": 9, "np": [6, 9, 10], "number": [6, 10], "numer": 10, "numk": 10, "numpi": 10, "onsite_project": [5, 6, 11], "oper": 9, "option": [9, 10], "orb_indic": 9, "orbit": [6, 9], "order": 6, "org": 14, "origin": 10, "out": 8, "outfil": 8, "output": 9, "over": 6, "overlap": [6, 10], "p": 10, "packag": 11, "page": 12, "pair": [6, 8, 9], "parallel_gk": [5, 6, 11], "paramet": [6, 8, 10], "parse_magnetic_ent": [5, 9, 11], "path": [8, 10], "pauli": [9, 10], "perturb": 6, "physic": [6, 9, 12], "pickl": 8, "pip": 14, "point": [6, 10], "pont": 10, "post": 6, "potenti": 6, "print": 8, "print_atoms_and_pair": [5, 8, 11], "print_job_descript": [5, 8, 11], "print_paramet": [5, 8, 11], "print_runtime_inform": [5, 8, 11], "process": 6, "produc": [6, 9], "product": 10, "project": 6, "properti": 10, "pypi": 14, "python": 12, "python3": 14, "quadratur": 10, "quick": 12, "quickstart": 12, "r": 10, "read": [6, 10], "read_siesta_emin": [5, 10, 11], "reduc": 6, "relev": [9, 10], "remov": 6, "remove_clutter_for_sav": [5, 6, 11], "renorm": 9, "repres": 10, "represent": [6, 9], "restructur": 6, "result": 10, "return": [6, 8, 9, 10], "rotat": [6, 10], "rotm": [5, 10, 11], "rotma2b": [5, 10, 11], "run": 10, "runtim": 8, "same": 6, "sampl": [6, 10], "save": [6, 8], "save_pickl": [5, 8, 11], "sc_off": 10, "search": 12, "second": [6, 10], "seen": 12, "sens": 10, "sequenc": 9, "sequenti": 6, "sequential_gk": [5, 6, 11], "set": [6, 10], "setup_pairs_and_magnetic_ent": [5, 6, 11], "shape": 10, "shorthand": 10, "siesta": [10, 12], "simpl": [10, 14], "simul": [6, 8], "simulation_paramet": [6, 8], "singl": 10, "sisl": [6, 9, 10, 13], "site": 6, "sk": [6, 10], "slice": 6, "small": 10, "so": 10, "some": 6, "soon": [1, 2, 3, 4, 13, 14, 15], "sophist": 10, "sourc": [6, 7, 8, 9, 10], "speed": 10, "spin": [6, 9, 10], "spin_trac": [5, 9, 11], "src": 12, "ss": [6, 10], "start": 12, "str": [8, 10], "structur": 6, "submodul": 11, "supercel": [6, 10], "symmetr": 9, "tag": 6, "take": 9, "tau_u": [5, 10, 11], "teh": 10, "tensor": 9, "test": 14, "thei": 10, "theoret": 12, "theta": 10, "thi": 9, "three": 10, "throw": 6, "time": [6, 8], "total": 10, "tr": 9, "trace": [9, 10], "traceabl": 9, "tracer": 9, "trapz": 10, "tu": 6, "tupl": 10, "tutori": 12, "two": [6, 10], "u": [6, 10], "uniformli": 10, "unimport": 6, "unit": [9, 10], "up": [9, 10], "url": 14, "us": [6, 9, 10, 12], "util": [5, 9, 11], "valu": 10, "vector": 10, "version": 10, "via": 14, "vu1": 6, "vu2": 6, "wa": 13, "we": 10, "weight": 10, "where": [6, 10], "wrapper": 10, "x": [9, 10], "xyz": 10, "y": [9, 10], "z": [9, 10], "zone": 10}, "titles": ["Bibliography", "Changelog", "Citing grogupy", "Contributing to grogupy", "Environment variables", "grogupy package", "grogupy.core module", "grogupy.grogu module", "grogupy.io module", "grogupy.magnetism module", "grogupy.utilities module", "src", "grogupy: Script for calculating magnetic interactions", "Introduction", "Quickstart", "Tutorials"], "titleterms": {"bibliographi": 0, "calcul": 12, "changelog": 1, "cite": 2, "command": 13, "content": 5, "contribut": 3, "core": 6, "environ": 4, "grogu": 7, "grogupi": [2, 3, 5, 6, 7, 8, 9, 10, 12], "indic": 12, "instal": 14, "interact": 12, "introduct": 13, "io": 8, "line": 13, "magnet": [9, 12], "modul": [5, 6, 7, 8, 9, 10], "packag": [5, 13], "quickstart": 14, "script": 12, "src": 11, "submodul": 5, "tabl": 12, "tutori": 15, "usag": 13, "util": 10, "variabl": 4}}) \ No newline at end of file diff --git a/docs/_build/html/tutorials/index.html b/docs/source/_build/html/tutorials/index.html similarity index 90% rename from docs/_build/html/tutorials/index.html rename to docs/source/_build/html/tutorials/index.html index e86f153..2460333 100644 --- a/docs/_build/html/tutorials/index.html +++ b/docs/source/_build/html/tutorials/index.html @@ -21,7 +21,7 @@ - + @@ -56,8 +56,9 @@

    Advanced usage

    Development

      @@ -103,7 +104,7 @@