From a1ea5e637f32ed4c2a230a4f4f3a09e473fb1bf7 Mon Sep 17 00:00:00 2001 From: Sofiia Chorna <71195115+sofiia-chorna@users.noreply.github.com> Date: Thu, 13 Jun 2024 17:32:08 +0200 Subject: [PATCH] Integration with sphinx-gallery (#341) Uses `chemiscope.sphinx` functionalities to generate output for `chemiscope.show` calls in a sphinx-gallery example. Co-authored-by: Michele Ceriotti --- README.md | 7 + docs/.gitignore | 3 + docs/_templates/sidebar-toc.html | 2 +- docs/requirements.txt | 3 + docs/src/conf.py | 15 +++ docs/src/examples.rst | 124 ------------------ docs/src/img/example_base.png | Bin 46328 -> 0 bytes docs/src/img/example_colors.png | Bin 48680 -> 0 bytes docs/src/img/example_md.png | Bin 32627 -> 0 bytes docs/src/img/example_pca.png | Bin 30062 -> 0 bytes docs/src/img/example_shapes.png | Bin 58044 -> 0 bytes docs/src/index.rst | 28 ++-- docs/src/manual/index.rst | 8 +- docs/src/manual/python.rst | 71 ---------- docs/src/python/cli.rst | 11 ++ docs/src/python/gallery.rst | 54 ++++++++ docs/src/python/index.rst | 24 ++++ docs/src/python/installation.rst | 20 +++ docs/src/{manual => python}/jupyter.rst | 0 docs/src/python/reference.rst | 26 ++++ .../sphinx.rst} | 10 +- python/chemiscope/__init__.py | 8 +- python/chemiscope/jupyter.py | 41 +++--- python/chemiscope/sphinx/__init__.py | 1 + .../chemiscope/sphinx/file_path_iterator.py | 53 ++++++++ python/chemiscope/sphinx/scraper.py | 83 ++++++++++++ python/examples/.gitignore | 1 + python/examples/README.rst | 11 ++ python/examples/base.py | 44 ++++++- python/examples/colors.py | 33 ++++- python/examples/shapes.py | 58 ++++++-- python/examples/structure_map.py | 45 +++++-- python/examples/trajectory.py | 22 +++- python/jupyter/src/widget.ts | 3 - tox.ini | 7 +- 35 files changed, 530 insertions(+), 286 deletions(-) delete mode 100644 docs/src/examples.rst delete mode 100644 docs/src/img/example_base.png delete mode 100644 docs/src/img/example_colors.png delete mode 100644 docs/src/img/example_md.png delete mode 100644 docs/src/img/example_pca.png delete mode 100644 docs/src/img/example_shapes.png delete mode 100644 docs/src/manual/python.rst create mode 100644 docs/src/python/cli.rst create mode 100644 docs/src/python/gallery.rst create mode 100644 docs/src/python/index.rst create mode 100644 docs/src/python/installation.rst rename docs/src/{manual => python}/jupyter.rst (100%) create mode 100644 docs/src/python/reference.rst rename docs/src/{chemiscope-sphinx.rst => python/sphinx.rst} (90%) create mode 100644 python/chemiscope/sphinx/file_path_iterator.py create mode 100644 python/chemiscope/sphinx/scraper.py create mode 100644 python/examples/.gitignore create mode 100644 python/examples/README.rst diff --git a/README.md b/README.md index 7dcc92139..f3625cb84 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,13 @@ npm run build See [app/] or the [documentation](https://chemiscope.org/docs/embedding.html) for a examples of how to create a webpage using chemiscope. +## sphinx and sphinx-gallery integration + +Chemiscope provides also extensions for `sphinx` and `sphinx-gallery` to +include chemiscope viewers within the documentation of a Python package. +See the [documentation](https://chemiscope.org/docs/python/sphinx.html) +for a discussion of the setup and a few examples. + ## License and contributions If you are interested in contributing to chemiscope, please have a look at our diff --git a/docs/.gitignore b/docs/.gitignore index 567609b12..495323754 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,4 @@ build/ + +src/examples/ +src/sg_execution_times.rst diff --git a/docs/_templates/sidebar-toc.html b/docs/_templates/sidebar-toc.html index c9c35541b..409e41366 100644 --- a/docs/_templates/sidebar-toc.html +++ b/docs/_templates/sidebar-toc.html @@ -1 +1 @@ -{{ toctree(maxdepth=2|toint, collapse=False, includehidden=theme_globaltoc_includehidden|tobool) }} +{{ toctree(maxdepth=2|toint, collapse=True, includehidden=True) }} diff --git a/docs/requirements.txt b/docs/requirements.txt index 2bed87017..0e1d5b3c0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,7 +1,10 @@ sphinx>=4 sphinx-bootstrap-theme sphinx-argparse-cli +sphinx-gallery # required to be able to import chemiscope in the doc numpy ipywidgets +matplotlib +ase==3.22.1 diff --git a/docs/src/conf.py b/docs/src/conf.py index f9b4048e7..44910e9dc 100644 --- a/docs/src/conf.py +++ b/docs/src/conf.py @@ -3,6 +3,7 @@ import sphinx_bootstrap_theme import chemiscope +from chemiscope.sphinx import ChemiscopeScraper ROOT = os.path.abspath(os.path.join("..", "..")) @@ -22,10 +23,16 @@ # ones. extensions = [ "sphinx.ext.autodoc", + "sphinx.ext.intersphinx", "sphinx_argparse_cli", + "sphinx_gallery.gen_gallery", "chemiscope.sphinx", ] +intersphinx_mapping = { + "sphinx_gallery": ("https://sphinx-gallery.github.io/stable/", None), +} + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -34,6 +41,14 @@ # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] +examples_dirs = os.path.join(ROOT, "python", "examples") +sphinx_gallery_conf = { + "examples_dirs": examples_dirs, + "gallery_dirs": "examples", + "filename_pattern": ".*", + "within_subsection_order": "FileNameSortKey", + "image_scrapers": ("matplotlib", ChemiscopeScraper()), +} # -- Options for HTML output ------------------------------------------------- diff --git a/docs/src/examples.rst b/docs/src/examples.rst deleted file mode 100644 index 1b526fdeb..000000000 --- a/docs/src/examples.rst +++ /dev/null @@ -1,124 +0,0 @@ -.. _examples: - -Examples -======== - -This page lists a few examples of visualizations based on chemiscope. -Rather than providing a demonstration of a scientifc application, as for the -examples on `the main page `_, these examples -consist in short Python scripts that demonstrate how to make a chemiscope -viewer file that uses some particular features (e.g. atom coloring or shape -visualization). - -.. raw:: html - -

Basic usage

- -.. figure:: img/example_base.png - :align: center - - Simple visualization of molecular data from an ASE input file that - contains both structure and properties - -.. raw:: html - -
- ▶ Show source code... - -.. literalinclude:: ../../python/examples/base.py - :language: python - -.. raw:: html - -
- - -.. raw:: html - -

Trajectory data

- -.. figure:: img/example_md.png - :align: center - - Trajectory data from a MD simulation of allyl alcohol, including - visualization of force data. - -.. raw:: html - -
- ▶ Show source code... - -.. literalinclude:: ../../python/examples/trajectory.py - :language: python - -.. raw:: html - -
- - -.. raw:: html - -

Structure-property maps

- -.. figure:: img/example_pca.png - :align: center - - PCA map of the atomic environments in a dataset of allyl alcohol configurations. - The three group of points correspond to O environments, to the OH-bearing carbon, - and to the aliphatic carbon environments. - -.. raw:: html - -
- ▶ Show source code... - -.. literalinclude:: ../../python/examples/structure_map.py - :language: python - -.. raw:: html - -
- - -.. raw:: html - -

Color atoms by property

- -.. figure:: img/example_colors.png - :align: center - - Atom coloring based on the values of a local property - -.. raw:: html - -
- ▶ Show source code... - -.. literalinclude:: ../../python/examples/colors.py - :language: python - -.. raw:: html - -
- - -.. raw:: html - -

Add shapes to visualize data

- -.. figure:: img/example_shapes.png - :align: center - - Visualization of atomic and molecular data using vectors, ellipsoids ... and more - -.. raw:: html - -
- ▶ Show source code... - -.. literalinclude:: ../../python/examples/shapes.py - :language: python - -.. raw:: html - -
diff --git a/docs/src/img/example_base.png b/docs/src/img/example_base.png deleted file mode 100644 index 161eb5129209f892ecfd1f99940ec4cd6cbc4f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46328 zcmeFYWmKEp5;mORTBNwUyF+pJ;sj5C;O<`BwG=2VE$$Yyc!L!v-Xg`VP^7p^+b`|& z99!@E=dAU;{|;+Ga^LsNwf9_mX7-**NYK$%!NsD$0ssKGYO0EQ000UM06-$cKt|kA z2X89^07QgA1|T0jh(Dc&m%E*#3zW_$&;v>b4REvr00I_EUpaeGiW5fv+9C=@>B1I! z^p+qvO6q6WLW$7x?=LZr)kV}Y$B*O3Q&HqTsUv~0s2UT|)O+GzpAL>oo zv69&e#F3Uso1DCue1CE5e%v_~5@M;esxDbRk6zpJwtwjUm^VZ+uDAMZThX;!=H;5q zZvDaCm$1BDUz2>I49nx|gu8o1_8w`B zxv&&-P(t<;Yvlaprzhbh?-xpYlLl-wOBnb3OY$Vr*juhgRELkxE^a?3>~hRJEJgJg zZlBMlIW0V~KeBJ}3ZZ=-#?&4r{p%`}^kW*{r*D^A^PJzV!ie9$m(jp&X+LY&d31`!*&OK9JO-W zhU6qCm;Bgin`*0da#GRWcsAEnTZKh|-$N{A3dPY(#X-==xB3ss%#t~WVeQ|XQaF#{ zh5R0kaO0mh^FQ`Tj|@4}*RNhkckNRaKi49w%A*laPK>_Sb_yhXIK4kt@zpYbv5h)q zXj^|fAZm(!|B_BBMw<#05SAHtc#Ww_ki&!Wn2@-@i9SmQ*;5%iLQw=u2;&V}VkTC! z-X_cNOZ}>uG9`;w^`L-9Da>cBTcN|r>Msm3btyZNt+&nLY1?SA%4*CxdQJ_W)Om}` zUO88`m=d!;(#U>8Tx~a3v*b{@ZDi^?XL{gz@#S%eNzmb(*>NaNow(Tf`cf3~hnJpZ zx%Qq-+OJ)Ry}0<#QrYFqCpo*XrAq*=T>Y`v#pr7G|_V=t$9a(E%gqtiLE5;9sl z@7DPvb+W2^^ltQ+)_}XKnj~L+Pxiis;`mi)9z(o#qLXrO(P%{CYjr?DvD1#(uy~bM zRqk;{9a{!nl2dCGhcfCpX2bG{?h{fgV#Dp9^&R4)Yx^X>=0A#O9pQ0aJFkQpw{Vl2 zJ{`2QxZwjA-Phe}-4uSGQP^cPeM*x3D)NRZW0`XAC51fmv(r4o!gr2uRoyy@U#!|V zAU_`yOrGhBZPq?4R?rb%1F6P5*{0!nQo)$wXD`M7=&ihHsx+i!YEG;bvsJ$vHi`)| z>S5*mi9;wjfmN4};(BH=d^z3V-PGGqSZ`qZ+P9_OM3DX%CiU=UCvR4a`-ZJMYk5w6 z#IW*ph>A>8MxCw`WAO}Qp4yKF2g`CLnh&VDc+g& zCsn)nHPIggXB@*aiqPN3Z`j!y}D(W;UX@h9(6J!s*$D3)V9{b z=kH7*Sz<+$lri5FV@NpECE%!e^1b6iXeUcTM`N|08Al4m@Znt-isTVTUC=9C5N8JR zqK4~Hj{(&|$03a-&}jXfn15=-ReWxAHhSqxPuGz#hP+68za`zxUC^5mc_)TNn{}|J z|2GHjH2u4*o3--(J_{Q{P88U$9iLXibjeA}{#kG1CD!Y1RzepM0RVc7Y(c)1o)sUi z<91}p&RYW~3GAt>&@l;fRpwCtlOPpI?Qz{}c2MMFQ zFjQ$!ZjJBeOdTc1&Dk=r@d3M$YG_eHA4cyPbRgS5hRpIRM47d-$_5-+Za%wN$bL9p zInj<)i?V{C^s&qfjqYZO;eLTbBGr`d@kSdhT23;doHNa0Si3~Ros1b^PNr8SWhq?) zjr4GZH_j%4(lGY>4%5y>55Px&Rd`E}nD_-W*zl4`E6OsL+Tk0;OO|)Ds!N0p1=4GD z_TTx(kai&`PP%^8!Tyh==SV}MS_8jY8;sdETF9@#8SS$9`Bh9z@tNCrsMyV~NwuQo z03W|pXnw_}J105GQIP(4MP^T=7u$!M-QsT9^Epk2n|rfX(duJC-A4`qk(Ve#%slFn z-gTHUQrsFw07wybwhSmYjGzE``f0hcO)N>vqjhRfnPCF8EzdDOf&(s9gS3NU4Zf9~ z%--2#7&GI;qSy0wK9xZAY*KOBi&s(^NV4-BUdZ_A%FKO2sBI-&r0!Zq9KR*2(yHT$ zM^I<`S&o-|>Y9GcHfsV4FX?p9%aJXkfLC}@X^^Lgh^@C}4)^TJmm$6yXLyL)fqe6r zFbktRHRiRhkN<*Py_{Ar;~63TTzkDJtQX>kh4(n#&ZoH@ZY_(G*t$PpTk##Lbir|? z6(QnKJi)B8`{bR1QBgcAWrtc@HG0Lm<~yvSc;zr3JXeMK84oqWiX*3jw%03|ls8Fp zvc@m!Se{A#klfirjjN#oLKpotDl)!00Um5=`lUC610eGg#c!)jjpO#tdH8wmOpkf! zW?}g5Szdhj;S|*Uan$+V{RbBXmqoB-kj@5AK5O~3(S+H0?zmxib#wo7g0nYqn!Kw6 zC18TxW2Aol9VUj-WSf2>o8^{R7n}(@XW%S5dK7>KE|xo8Zi6%|5bxGGnB4VvIQ22% zko>3T(@9CCOTx9OYGWccu}*5ChVh^Q`$4h^*atIY?16?BGjJ${N<)|6caPd+oKNz6 zte>^ac?x#|%Z61b897?NlQ`i7Y659_qA_oWRkl*{^2k^^73Q! zcOeo#Y8;~U95YE8(J$LqV3HU1EL&LdspEdHAZ8TL9bC?}o4HVBNeGT28mL*tO#l%jo9P+7=Pqpt6a5v;w{jzX@$aU; zp=zVSGC#59>jVz~SeA*nBlE6clm*dBqdarz3olf)V^{bEqIvmjTs92MH`L*Q{Dk0| zX`6v;`cNTF6p`5a(O7v8>UvqaU2E5em9QyozS+U={Uc+g==v;MS)&Or7_uj(_?m1u z3ZBZrD^1w(bv0++9=s%>OwDJHkxc3$FG_#t)Nh9$ubhlxOUEm@Y4N|nI_ zZ5L;i9(pmF(0+lkYj5&Gp5SVp}HXBy8&W0RP3WGWE2!5ClNWi*ibHnDnKNX=_|peZnY2 z1RNMGbKk^F@?a&I9ee#mE{b(y+KG#2Fx94N za|p!9SkQd>@TrOI*^AA-K}`)!V%7d|4v{PJBwl>Je5KtelMz0NHU%^@v?nMylHS%N z>26d@^jkMy*uM7+7DeN>TN`m|X)kSTBWJGEEHKVv3`H|ls}w+*mkv*#MR>m9)sUlH ztg+y0rX}8?O3$g;v;CkL0?tCN<(m(W$Zo-nf72_Yi6O-M6+>v)l27jwGnGdwGf|LW zt#zNK7kv{(2IQrsgwhy!4Y&mTPQ?n@ggPO24HUZp+w<_6-ov zUtT^o1`L^)GCLh5cLkW0CF7~d8*2iT$RUKT z!@4sfr$qwTDR^I$lvjKkXo*v_Uj%v`F$eE#T&bdKDI1EtSXZD+#Lg&X)@giBZY_cK*nz(? zC`cM&aJrMssftvTeIYWr{(CGgs0B?xLOoH9fiF?Dm&D& zQKTGWTt5~H>G2jnO>3JPy*HgsrsWO7Y1t4rA?u%+!0D*q;P@I&S%wxx3zG?n*25OU zaaVawrQ!E;VN%D+HHxrgBw(HASY4xU|Ksb?Da<)F%9zIKAsIn@p=bpLN+0@(?{oH} zKrRS0N!2u_qnynt41~23%*g+T>?*Zu=idsZEhseY=ZIkoQr9 z4ZeHxyp13Y;6l?sT=NT&4zwq(iI*)9qQbX1nU=P8__!ipl_rRPXG`fVacX&UC@jH4 z^nB+4bfNKy^fAtf?ARb{Nwh7OSfEJc^Zi_nvFhZXt$3-J^T@6iuKfIVTl?XvgQlBO z=?Zk?-@@2u9=*ys(o{_w_f!fV^eGPlD`?_&;)*|A7WRwjvyT;t{2WWSiY2>XeNz6j zjQg=U*-uIX@iH6=;_pJ_GXpbJ)5jH*Vl@;p49fPkvbR*4ANty*{Kb))qlxJg7F*aJ zg&r=VhVT?g*%5JaJ^w(2b6zCr!!?sFOl}(+JdqrS4;6HbwQClWM^)HlL#B>h_akTd zS-_m(g5!nLvFkXn(fuZJJ+hNTa*O@vl{L8s&W%o)3$8K}G!E*aLq_LL<=25n_MB}r z0g_8Nl=Lfm)d3rLo0z9gIOPFgSqJHc&XuPurJ89q+>0=wFL%*=49|1>Hc!7d)e1eQP zeeW&p-mX4AV5Q4@xdY?GaZq_p-!?~iy8j|eInvmcf+||6X_Of4Oeoi(LCi=uIf&wX zWcF~WD#bQ}sM9gbQma6dh>|2OU}g$u=v7ee5J^d@mUMbzpzBX+amU6-z9}Op&qPCX zn%nz!7d$Q7nS|-M&_Z4b65{xdKSGhQ|1~cNnqa^3f8_yn;&AnqUF7sVOqI{Q*tQ9tCUlAfqS+kb}d%}!!NF#CwtTpck>qU z@xN3Tr#d^4O#$oyNcuCFcwl?M6fjn^KSg~zePq$C(@|Kl)1t`yA=RRNsd^J7YwuT_ zNe5Ky8Etz7drGYF#%frV``C}g%ps5Ns}`_gR92xc3ZP@Va`8k{R}>F^o`ZSmz-lAVYi$*pc+;aeB27NO z((-ZJqb$E+ub;O#y?;6s1)DYUP1P@!#<#A{hkMT7l9U8iovEVA*xQA1cW*<>ZNcSu z3b=9yLLD5R1ucu5jGJT&2VUhnOf=1-QK0i|*07{Izhmd(Ip!ABw|cjy|NbSG*cyQL zgcs*H6thyG)~SSm4xwB!eU7}^;9gSFY7=$;gPnM` zDYkc>;ne0{t7oES@6a+X3Uis)p6A6b-*{T>*4t|bwUK@L2G#e#3&&e(<*xuv+$OTF4Tu@ug13xb|m%q0-a806fD}Soa|FT%I=K zrKk>79r#5dg51{+_MTw3LB`dc$4an_PE@-TIC}QBljw&(vJ7?E2N`YI$v*m2+_+Bn zS?OPI>B`>hK-7YdjQRRWK4?kYnke3gwc8-c^n3;R=nFZ$_f_qst6)y5dQyic6owLM z2yowAyCyga9qt?A8(12|DQ1m#!39%1eB*)Cf!wylRwxF|saEi-kWeSCM~d#-BH0#B zVw3kRUthi_IXli@$q(D0)h_WfCt zRnuXFg^N8AWA9K+_@#lxZ7nHwG}IZK*6A+`v$T6POMoo2BBGzr_Hv{y(V`wh4h~@9 zV-OsDnOVXVGBhuR6w;k^#`VklS*oS5JwF{C;m}LS;sE7<;Oo}jzJXGBn>E-3`7RH^5h~#&HE)F)#+s%g*ymRftbqH*5)MhffK5l)ih&lHj{n3#u(uN)7LEUEk~|WePXDSmgeE|y*!?5Yk9V?@ujb9XY0L3sUv;Rj0?^~&poqr#(AAZd)us3L zuYUXhOvHGNLb@rV5nWsgM?|+4q@^igv30kG@&vegAiB8#fTT=-2gJr1>O*G@ zwRd!rVmR)6&p_vBE5%?eti`A0p#XJoR1NZi>IZ2X*aSJ-h}$yANMlI`NFV@Qp*|40 z09O|`Z;1dYhCjFxi1)v5^D@x=5%F=BVgPCB&?&fkLFt5egn0P4l>!|71Q?{T=p?;t z?IiRRmH&o7TuCuF`1p88@bdcm`}6n<^0<51^YV*}i}Ugc@CpcUBP6)J1KoTe0o-oh zjK3lN!cc^I+ju#8_&B<|(f!7RSiAfBNHH)Vp40tfey$!`TK|N1^ZuI!1RuNs5D#8{ z9zI@ISKfcu@b*#iLxB7}q5rFfw*jK*&8r9XcK7wNfhzey-Fz7T9m3Y;pZXrYUM_#k zv9;lax~C|;eE6BdR3fwHxcPyG(G_A3<@Ip0|MTEC;SzE>YEldW zJbeGUqvHbcu|p_GF=#rv`3C&!fq|ndRNn{kn@xUEem-%8(V}940%H7PV*e5{f_ix) zJn=UsKOc|aU%0=QMFL?Af>_9JKScoi(LmTDq2L9D__%u+xVyVZG5nqq-EYl5?oB88 z*P^I8dLtwPe|!AjKCch;{Ojtk5O8t)^N5b_kK0N>Z2lU=8{!AG{WB0k@2^KT4iGnc zC?dZ9cBp^ccl^IBmY}T-zl|7Tsl~*^ZMcQ_1ckXFwooXyfG{6|ZUJFCA-liK_$Ruz zyPc0e#0x5CkFXSB4Z?x`SVPD5hf4PUoQuB$^fym@0z%w;g4_c927G)HLgEsFVw`;Z z5`26Nynh?a`#Y-tVX-9d|G|mmAAx^M0|>pp?jh0(B3tqPGhO}7*>4*EAO8Hk7XJ@N zKtTU*kpGI`|Izh7y8bH${wv}CdDs8w`mY%HuY~{SUH`w)h4rt32kM461^FY&84}S) zO^7eJ{Ls-fP(qYM$N)5C6hc}c00WH%fNqL|!Gev=!;gwege^dVErv(%NDdj95?daJ zKmtG*#f+_Eh>VOwtip|DLP|~|hG}DmjEY09C-@kTjG8e31(lH6LKDk{hL#$S&Mp}V zBN`2vo{2RL9hr%RQIq5;DU-V?zS|oVbU{X1BG#ZHByRwdip_-J5@e>`exF(6x z45R#59=oliVp=|j6{q5yvZ}I(QiY3@YB`4`v+9PN1~foko?GL4hypi^*G%)NUZ}kI zQyp!#r&mx-DK*_Ff5pJuCr&Lw#vP*iRtB0bI@*TDhJ6xG8&efI&qrk#p9{ zyH*^5!2v3fKLbJ&x|}`ZpQ(jD3vrHo9THmjG9c;5o-yZ{b!2ozSoDjSc#F(v|JeAL z*5HtV0M}Db%5i`5lBn>+UpVVM@~XT8j_ zE!%ySm-{X!qc%4`C%-nP1fE}*fBzidUAv!O-cnj#T3=G$T9J2O02nEE@2?&uCA@#ER#)dS%x*%KU8Cuwtr}8ZGLDX>g?_)=sRzOk3Y0i^!CF)!C`lO3?D{5 zbd4@t4-0-BE_wgy{CZkq^3&w{r~Z#$b}ko`=NISCHjURdRyV(H%+^@}!>jurxA!*>KktA2`o(8G zD1!(9ptXjIA|M`>8qv!EV0x&Ucmn{~kAMFH0k87N5I50%)U=e)cae!m`B{qTdkz5r zI)Iv@oI$|i_ij87%Im;yxEiUY;x{icVi~iH)Drqm44hO!A+A{bS=bwkWq5+N<$^|1 z%d2d2)J-&2OSVfwWOj|?_dS>UTtcL!F#WH3$@TG{qbLWYidl>2aMApdC>6rCScVH0 zmPTsbGyOZR4zU&Ok2#lnSV7p6_xDYmpa*&&K6W}?nAHN45)cG#c#rq?+pW|yb3+CO zh9dfmq&y_VD}(?@LO?J*6%R;?k9TlT3|CTA6cS>9BV;Hj2*3mc1h^>}u=x1+SY;HD zqN1V#BN7)vt?>U)YhEfP)le+v$O0re3>zdsIg4 zmIUPA0m!zjbjYG$NIaN-XPJ0*^Fd^uL&moy^L6cN3p?z_(DD3U=|jw-Rr9EEZ!w!b zjyZ?1XsgHdi})%Q@$4URI{g0(-H*PQyjUyteOo`Eo2y%+D8@aCFoQ z(jHY_fgKasG@ys&yO;=)u=4*5p(g>(4R3suPsxOLNDBLg`TB)8g;?})#&xs?bJsj@ ztkJ{VT+Qb+!H&k{EvDQpEDaReat3mio_YCbR*P|s9FbcUI#_xOFLdy+K4!!9#$SJ2 zFYEKbPXaij1VUkD3gFOyCbin|!Gk+$tquw4RLIoP*_s;I_4ez2xZ&)E7C-D{MZJkT zf*F;*-pDwL3x7MVuJ99iJr-(VG59q{{0Y2>PSp%)^v+~m*c01&PqKdgsEjBs8iWFR z!fW{4)oZtLni|=8Tg`D;{Y9Rg>ym;ol&yOvJdbJoY$3iOxkL* z4u4_M)N*`@D0P1K{a0Pitl1?zGR{FISXZxFR7>u`aQj$2obgx!)ktYA5`+t{ zdW6}40rRuG?RfBB%^m$9j?KA@!xg9x?#*XdCmud9-k2Y)Zfa_(_O#hE@>;L2o)>-s zYd$#fUwD^n{o4lmh0aG(Q>jY>khdx4yrV#1+o5 zsdA71vy7+^Ze^q~`#p$eIonjF2tKZKBQ!ZAj8h{f_~f8Jt*F+0#$4Wxx+A(t|HM)+ zFqF8P+Ac$*faY$FbmBCH&vpH1!Yiw21ZpH)IZ&(TQ0CG|KJ|^tt*UNI$`ug zO|cB#v|LaY;<2~(s?-TCA>)i}bSZEZI=b7CB*#0-Zt5dNm@-)8g8@v^U+PwKii0C% z6M9e?0yrzD_+ceT%RiT9+!~QJIN?hqSWdq4)#M;kNj@}b#g(5P2{2n(c%w9xI=ST- zQ662kH@qXXTKC$ zhXMS!C8hEJ12iArTV(O3Ble4+uLbh;dpq&Uz964=4i0mKG{6)t$k$*}c@hH_Pi=TcjVo zrDOFIXZAUe{V{RDYL9>#j{%h&ja3^J#&PgZrGD^6Xko!?l34JdD3ZoxfJI%@HH~!0 z3C}#JtMT3n{ubHD@MH6GzdSZh^#*sdaTHtP7JT0$XDZ~=;>-&JWD_IWDlV1PaxV4kI`0!I9bH0j1;eZnC|{A=kK{M zfRyctkHU2^u(_477}O)3RcR`B{c-;V3=?*;mpx?cJ7#bqJjlOVpl25)N3sKn;fI~Q z?%wKHM&SxPZ$abcRLWT=_2dMP6tNKnOtWYin;~nU{sOUmaW|dmjl!daaq#CH>?)*5 z-JKMtN%`cD5;KKutVhhg0_m~1vb(=W8(r}E&@mP5^Px?aK=12lq4MbuG$SZh-Gv0$ zka?H_v);qO(c--g02_{u7V0y`dcg5;;^#?HGz`cNTSc9iGK^9Q5rj3Lhey0KvUlIi zxA?}7E77nPAGxi%}zjIqcfO2q&RxX z3~74`=eQv+!H9VYxR210= zN)7TYT{!n!LPtIj32HvCjVK*^J4EkzdADzIV&n%_)2H-rMIpgUC`%Q@$KXqeu(J`; zy6q;iN8)TiWNPaaezd10TJo!G%a1avJSL2kHbh6!xrw8#bqQ=^NQo`kvfj>X&XRuPo67!34yB1||s8~`saYJ~i8Qe4lJeVBU=}r8wZ@Sq?4Kj4H^3(wD;ld@{ zk+5YkWL ztm4WQ95HL0^*;=G`f(u9maQ@?#w}ohX2k;J8$x$$)#atxhnc@R!JWwaKfPXQ7$3FK zX`{Z4AZbuvWO304!qhvk-rDHqR29{@U~-wDlNtCla2OiOWyC!Oq0Vop9E4w{6A08#r9%-fBxkw+PfsOzb4Iy6R zpirYXWvE+wqCnnXM1jM#PIPpg(H1O|HA)m9odf(ue3o0o#y}wq&_I8`j09q7*bit? z=#1W8=DNzz1Q$MVK#7YK-%G^oV>fM4uGf8(Zk`b>qi}juTIt&@4Ey+PC}TwLokskw zZf_vogP6d?*9FgjJELp%bln_L=hGs41N9oe&qU6yk#MsRg^TrSFn zMkgs3>E$Y%DHE{8#7>o4y`nPv3nG-hmGUY(lakm{6{oZ@@<0 z*P~UEPlz{|+2?V%041It&!iEX&y0&UTg}tjzA;WR7{>`9*TJ7hy5$j0{JB1X98nW@ zcowxxzKR|^lk7cQtJ`W-J1|CmMv+>zIjop;P zsQJ!v9Ehphf11>SzH&Pk^7)nMMb+zYopivJB4$WjAwTelFdLC@4ZD_y)Sp%6iImmE2@l|%rljxP-&X;0LCi48T+;wU=aqsKUgZbo9rPU!i zaBY3$+5|=S#f#As5lX^4>}O$JfM@>1D;W)~#aXxyI&65(`3)Mo^0coRewHsd3xmf6 zPDG7Q%lF?nhtq9+J00z42a2B9ZcXdZ%=M7X;o#F2~1~zK?2lD3JhJPqdr? z0W|VpYFCuGeicmEU6o`r>_uMP?yR-asAG`Z6ZoeTFU5ACNNS1jiB`M$^v)+L3*M1N zy=m9?6-8v(Jlio#EgD?;@BG?02I|QYx>l?6o^{a`$9?kcz5<_g_I(R1^)q|9 zS9kI-zF4$3Ag?Q{TH$LlENa2lFO`tVr=oqgZ%K7*4`sP5?H)4qpq z2U|vub0z0XX3E6noUp;JMkF>Ks#8K*D}*3J!wjXiUk0OZ7y`5Cp{l&CtfgB!eOwA*8VM=3s4V*bnz(`*!{<66URDm1R7ZthWixf#Cm z=ez>1$1ssl>Q`A`9DlS8Vm4&$tRwpxXv7PL@N>O8;3w>-5Q3qsPeMyWlt~2Tbw{9$ zriR}ifjV5P8w~JXo4uX^`XSd~0FAI$UL-zr)FL%jk#^7J4UU z!%GVrwdC+W?zZ;7(@^c45CR+&b`JAEtPCBp=BAK9Sr29KPX~I8>b@{f>l_^dO6C<7 z_~!K?<@KyTv7ufKkVAwyW+@=%2a-`l+%K-EV?#1BPQ=L$X)@iA`747L)-Hn5PGvx;4YBx{HJiD~)a2QxBm9WMYtA#XOGG1SPU)j8UQ#GJ-8{)la z(2%Y^KwzEKnwHeptv_>v4N*K04J~?0 zYS_oOXpax_Mg>v0y<#oeKfE-+21AK(tM^{@U5a@;o1)7$jT+~!RHO9+)`X?rE;b45 zea;4P?C&B`>bfp?Hus4lIgh%XdgRDvte3xL+M5&UFB9d~fK{0)24g9FVKDJo^PM=t zKk_dfCKdyLD;>(Q))kfJbvePgPA)bk4cmfX>r>%5jPZ@~7dCJP!!k3CK}(3N z*zGgDN&O{JpG=F?X&W}~nl4}Y@K)=i{-W3`0nhoLf@Q`xyHWQR1YU-ZkU$GmZPpwn zFLHE7wj0d=)eX{GykE}h@f%)HI0tDu(-rRrGm=!zEcCG}4{VN3(2^4-9rN9oQ*c-c zBWa{{n#WB_Ua?I@saVuu?C}T!PQRoHhR56u&bW^+GM;PA8!;PK4@C?-KY1!bQ zbDo1&C{f=~)#~OZ6CyqdYjCe-BzFJkscKcxB84;Ts}1^{8yNOj@o(~&7Z;jtk4vqL zN~VOw$)@^blb6_jKNZhXk`Hg8oVi+IVv);n65r7L*f6Gzmg17q$1F%Ho zRGGaQlemz$iV8ogB5B~pZ0@{H^ta9~uv*jeRFmecssbr1u~DdK;4cjtn6;)* z))uf{-O1#0bED~tL3wqWmd`rO2t4@|DwsMD3?^2@JW>D5k(F2mw8mWcj?r`d+t~69 zWFstPSb#1M(tQ=uYf^{p=M3BWjAZ__k}$O3=OchDsfrBb?4$&`G+0HE+=^j$QDx#l z`M`AWF*;t&nXJ_s`0;m+lBH8w?eln`#u-|1WgZ>79~hX=Cm1PRCXKn=X{GR4C=NDK z^9zqJ)K?R`I%l=WIl)vYD-f=v%p>zyt>BaWIk|T;FQG1LcpMszKJ52i4hU`NmaVmfa>P1NciO`_WKGW8Eg0M zYwAp}SyEf{Z+oYavZ*w;|(%HRp56HTShH+-PcR2ae$RQe8B=VQuG($UInVA^vE5fHdx8y7-a`IqGbYHC zDVvz7l*zl$K_F{nr$C@mkx49ZoFWJ%+mABjw(a4q4|Ze~*Q(1TC&HoMK0U_(YJ6iL zr)hE2VK8UPRxSIqXCOeZ{W9Y#aV4{lA2R_M_p4AEKFq7o0NCn?*!5CS+C7-Ch&IU7 z$;YqX0!F8^6vKtnKTAr$InXi#myOWu-hE?#g^3o0LybYKa?#BS_wxB01qb#5EXg{I zwPUE3App!@J2)Lw`Ai+n@Gl80*hPR4HZrJ!svM;ny}z=iDA{9z518G=i3n@D@<4-d zV%&1Cri(i;nY{}3B41BhyACR{{@T&`)Dp; zjNR6MgtN@{Bnr_7ORX!RM$I;LsqFU8NJE1eaJ+3nU&h`$i7ylQq7=TptG=iUPRRcy zW43$#>20Tj3KA$N(Hh$hZlMIc&cFj3V#25_)t+G2yuY#fW!3ake$kusP!+&Q3~sBi z#cTVfvTpc}7?@qmS!oP5RF}H(0D!m=M7<#VAw-!tFd%^0HlOgDyctHA`a{aRWpJi( ztG^>5_>g);dZ0RhA?@y6Qj9^g%dRW|SiIwTP-lhut<0@`{_U9k&+(K)W`W1xLvlwP z;;#(T0g@SGB#;jd5<(p#hrWN!tB*$OwjCuDEtY|2lt0{w#dV9R(Ei_!*RN$_e7> ziRs|!2|3Eu4myb>9k|7>1Ep@s%Tf(BiiH!ScUdECz758H$Bo3LVyx#b=l}C*a>0Fy zE85C0du)WGs|Qhmi~+_PqobpooSdVh8cEps4<@Xn>`4Kr9>iF2jItYiV3JK@4~!@S zzsc^XCDK0&{H{6Hnug#Y$^GLJmI*%iu;RjbsQlXweVvgJk1WuRn>*~R^lE;W>?<)} zy?nTlE)%>4pHw&?i-8=}Dl8wq{Z)Pc^b^OKd)Ren{Yv_~Yd%DimR-sd=NxO(2^W*k zIneXxwjXw6?I{+FBNioNFvfbCPXk>QFxsPt0n0O2>kcDvQZmt-aa}ceNc#0I1_Opx z?5x6Kk6%w$$HM@$1zL}{oMJt;lsQ8usJCtqBUChcX`?`;P~CYlc$9|$qq0z&K>U;O z7%7%@yZ*0qfHOKXjfAw|d%%MnoKvw{gQVeYSIaE*Ev8ktU1Yp5zA+|Se2oLs0BSD4 zaaxD3fXJg z^oW=MR1o4*HBBxFp^pJhB)?aBgdMy`Ki`W^D{@&`%wtvg19i0(#u+uq;quUEIBSWj6?x|$vmODfzk9z4 z{ZjXo+Nb5)Bj8-BJBXLfF!NBs9g6cy* zg5Qh!#2o}0{lKz80#9s3G4jUYBo_@=N|P-4{wE=bBXjv$|FXe_2VKCbT}Px58kLes z5iPc*kOepfB5CKw+@}I;;g_M22stlG2$**?3WBW74v-Ou*b1=J- zl+Bsx7HnL(>yDSf0WN)%Ff8x=GZ>+A-4iVW^@YED1_zWTf^=ZZ3cq`18V_&=n92ao zVPL2>w>Qx`78%Hy6W0+pM?u8X#)hqy-ob$IgYGi*ITmtKAqMR4IiuD@Y4L36BGoK9 zuKL1@j(c^lI~MJWh3q{YF@-M#FL0c5g2%S%FP&gcm?_qMd_w{T9$)F9e?otR9PCIl zU;fGli}7>(|wo2cg~HfPV8D|5+D*2a)uSV&(-&(q4T zWO&~9kXe%)#S*R4`2FR9VzgA?*R)_Stu+; z!JeKiX9SH09eSk%j)fg5_v_BQ#}lE(jrl^SHC?h+Vew}hjpM1qI+QRW^^@_R2i?cw zA|}K-jjF|^STh7sxF()q2!!6A4#wQtTn~tnrf70yf?&m+vy9}e{Y4MKVIO_{|C-9B zBPh?~O)J4c;g324^rTpT^EaaIdwegfjp00~Hx??D0>6y6%`knzXziD{*{xwPtkg}B?9i2ZSZ97rgHmvjGHsjNq&8Q zFM7WJ{xKL=xk#zz78TA_5fgLUo;$*5=6=r3qse8HTs7;@5+9(HfnoGlB6(zKDR3aL zy;oB&3NZS;QK(i1A4z+Bye9VH|F3!&F`< z_s1F)8N5LzR7c`*{~HFx=UWD64Y#E+w`%cR1>!f*yPF1uL&`H&`i2m+#&i%5)uV>y zwalg9fj!+n%H_BL)D>Hli2c5zPMe3zsx4rzukYe?WMpq|Z)9X^D7D7l>uSqwofyfQ z-gX*?QmJKBL0zmE%|r8Htbf`N_Cfv%-oa_{iU9URaBW$Th$@OqIJ3appz_JN7-1`FT6}>>+jiCgBSb2(`dN zz2XS>uxDiQ7g11j4%G=p^=xun<88FdhmmiU*cp5wUlpIz&P|j24!V*n_@}}5_qWfG z?{3#HwL4=rX@9*ViG<5D@Icm>X!D;@1w=okq}dqlmdxJAnxeYGvL7mu92u%jYOh=~uW) zR(GF%{k$mEAT({uNz2GaBF=$8_V!Lm0fLL7F1bw@RbsS1;Xe>obRRwJ7LM6_^^tLZ$(<98qro zaS$gZGVNq4yxjhCq+lSKLv#;#kd5d7*O$-d>$`=o80)#t0YUZHI(0H;RJqrr9CA1n5m z@H9g1(GjkKw@N_$%n1Pc)uM(13N>a57nB0RHmC7dnr4eSb>2Zgv*vkQ=kuwn=!siC zPvZDWEQUsx%|NWDK5;!P9efcusB>ub=>mgVY$fYdBHyF%T4n5> z52l%;GsIJvKJxu$@8Hj#TJi>M?wKPA(CArd@PVZKBIZ)y71(w5%e#wUmdtm;QNaNccwpk4A!%n+Cdb}g0DVEFq(h(QtFSg9g zRigJK>}LnjZxjA1(n*2U@(WV(sb02AwIRR0c5yHK$dr-+J0@cl_EB+q8gL_}@#Ro; zl$|0X&9WN>ge*SZ>5xkt3TI3I-$20>)?a{iQ5&%AglE0{NQuG{Km-0-@ju?vwqIt zz48TTk@w>lnC@>mPh%{e4Ut-R;Qn_ilo>G0hUIfUZTGHbE_rnaO%t@qGqt%0Z~2}^QG8hc{53$>EKGA z_z+mE@$^?czB(C49r`hr=zu_MA20=H=zWJ|!P|dntP;?C)wF>Z0BQ%cG=l1Jw;)Xh63wCzfaSx|z ze^NT=nITuf=vG6XO72{>G8#Smzh|9-3EELS1ARq*p%f*|_~}@EljxCIwDJ_Y7`pW( zqBuB<@z9!{ej^q~4E~_S$C5yD7NYY%gvkc>V9oyrZ-(5usGx9L8(#iy%cSRezoxF+ z^tfP@qXVvtziIN;B*KWG?Ep8821mkpD*cyJD3A_%v4CoK#vr0_3v%hcSB&}cT*#ds zTIKAW%f0{qmL-XiBM`Q68p^FxBo(kf@NKfI`pwUGQN!u*7$&8!H7ZXCvQYz=FH5jK z{w71==k(StUrw@ zyM8YfaQA0V)M+B3?o;L3klUTNv*tdV`0ah|Bi0mmAK}A zX|?j6G!)mM{)DcDSh@%aLc^QxLY4o2E#?1?)Eoeb-KG)x zJW&*S$}}5AhH3vkclHsSg*>4=@1j2-xamV`5f|~04RG7+Dg!{qPMU8PZR$>Db=ct=|-j(jn}KJb=|-q zUXD)~bWk5p7%%(aQ_{=+vS*Uwx&P<6Aio=)Bx`o7&=Kk<^BkP&WZF7SIKUNF*hXip zcm%i%>HYW(q_7;^ulw$!5Yd|jfL(C(Hy+6kG$lKL&mvzi1@SS9C!fCeRUts)BV$>i zgn{@ZR&ue?@d4XSjW*zLDr820K#4M{VJF!v2#Rj8flWC%z#XgLpvHl^gscx}$WKWp zH@-l#>H)`RLcEh6zm%sfPy~7Y>4=5pfgm<@{#! zs75i3@ynCB5KXv+@i>_)A-Fl-WQX8JZ!>H+n3MPJWxt=(!Hy2&Xv&Jg(ivsNml}j&sz5*l(F-oVCC~6bQT})9TAZw!z6ly9W>Ax~ojJ5gQ5Ohle zH&s=ZN!#pfqaxj=*JEJm~3=tt!Hir1FNI0Sad3`Qy)a*(gdxgyJq#c~E1O zWW2HY=e6km+$?Io5!p)O`ZXpWU&KA@-2<==W$@7*Hz!;OHS@REnSl{%rixeX{B^+B zb{hu+O|nH|K~}8E5W@@+b0Opq+BQH-wbC&`-I_?fw+y(fi&zNxB%OTO{Fn1F{LA35 z$u>M*T-r{|e>kF#{VGNkzuuvsq+WstJ?=o^0}fqYqfD86jDql`fWSQSp4W2L`lY<_kV<70rBy3%P240Q~n zXonAzGD*vm#5=IL;rt>zCDfTVt)@2vZBrqMYtw#o^8;K)ge%~xczcQ#Bsg?^eE1C{ z(EMtRn2%U^+$i)+lL}Q0=~rqKX(5;_l77$-d>EaRRmUKkYBGt8jd$?(Pn`{Z8fW)) ziqNkKIo`k0En@e_8Tw_1{0UI3;e#fQOLJ43P&n}fZ((sAy_t32aI0`)-t&j{F%PXa z5cww59)=^8LqPID(l=Vf_Ly_d(MA)8I}&|y{&#g|!tCCW@7RQn&!SA46H&vBd!3_kccDGpcK8 zXFK{U>Y2ZPe~$f5H{JdVUs3=ISZz%GE@Eh+D_f`!D1yFqz@4&;B|+Bvr@XUwwsmoS zr^`QL8%Em}t#-RLylZ>YHlr!dg<;GJpHm89h0^S=+b|8dR&t8Pqy=oJOSX5?{du|~ zF9WOlYXCF&Bguc zSl<5e`!k6@u4Csvt`8crN#Rbhl;-zqJ%XELY8i`>JiVRMA`|`kPuXeLTwtN6eLAOP zC$(#s)@{3LcpP&7-MK;>V{z;#=+}W~Art%afMs!6Lpz|#e3fMTY23$;tu&we*q64h zp4-mhDwHiwwslUip#l7Mj(L92o0y=>ftanm4l*_Y?Ux+dEDC|nSk~5Nnm=DjiZpSV z)K@tvf@CrL)c8}8MzwaIPfm1JA#o8p&ZGWBop}e=FDz5 zg~@EoBehcV)(7UiazZwnB!>b|tSrEgp9`?HIu`t?^PWnJeQDn%L{1yFu)P(j<^=Oa zn7k3#8z678LXVY?&?yW$3@N1*WlpSbrcw}I zy|XX4s&l>cRf#{qs6Ub_e}7DJ0PxhCu_$AGUiU0m-YPo1VdGoxO6TbmrH#)WNQjO+ zdr3klr{F?nU1CZFArd9CfV5q$_^qSZE3pppxU64N{<=pSCn+f>Hn=iNVgZ$#Uz<6c z#Q|=gtA{_m>Q1iwE)TP1x9vseL~E>K9d#no&g-s0q!4m7^ne3^cx4@@@W}sPg8KkB z8ehRFgW}c$D$*v3+o6&-o4|hqHL#j;wBDO zatt~|xdsxjBQfD`>cdQ(tNMp-QoeuEdH?!%oE%3YBM~-7yuZXGmOVy1X7T7i6zS{e zmw|Nl9;YtM(PH8;vpCM68>_Tmu7c}-mg@-12m&JM~ zRcwj)^iSl5Tb4Rs{Qc-fC);Vv8wuteLI;AP z>8zil!@(!08SA!NpZ784UbPMK8ZKCJW)5j_9H?qdUuKnoXFek>r!SW}2jW=n8u&dY zaH5*(1n#N0^cCZTQBQsdP`kv}M66K_`rPXekfg`_vVP7&hWzq|=g^1)NNnHCor405 z9=b-!NJ$3Og4RADK5`FzDA^i95w^I7M@1cLvArGBygTq3xv@9<9*eXj)coft=#|Q1 zE7khWwqMwe?#Ur1>n0EB!;?%+PSNGo=3u<}kR9oiGKtmT6Pb!{bK5^j|15C{Y-j*# z@;iwrh`@4(i_dqqoyWD`oc@gBf|EB$k?qqutn;~Y)%bx|as!R}X=qM6M4LU-q_+Yw zoRhV+w35DX>nG$#(ChM~#c(fdJ~wth0O?NNV$}7eI|^6GXjk*4>ZbWn6o;?97&Bs%Hig;Nl z6|~kH;`a6Kp~hHV>c+9AwebWK6U&~;V%iY3Gcjk~(Vjb)%+Nqtt)N-z7}We6_yowf zf-d=!v5CtLAuXqKe;$^#)PG>RUR+5!_6R7%$-$0m()PJeL=S`}7Y&{Vv*oA>r>i_W zzJO8p`_b8AaH08nf*Kl1?3w6Jv=G1Dq-Kf}(H)W(zHxa~RrcRoa008Qnw#rN`FTm# z=S=7RgVQc}2eJ%5?b7h8+LIx>lRnx;h5>+-c!i~D+quJ%6{Hg{W|a}sG^t^434F&( zcNJMN1)=>A6krqN;^TR@e^s_x?N+)?HQ(G*e;05&KKqy4w@|0}na|oc(Uv50EyR)J z7J-2UIQ!dHq!snNvcnJga2|}r0DDtCSVq)#fgnhD^asdKu{>ULgBs=xBzHr@fi z3xiDLL{L+J+4J@LE}JeoGSox={ma5TrSXSERrkjBButwc9Bbtqo+LL6i=aJ!ZZCeF zWG;V(7C5MJk7{Sh=Aq|kOJIfo}l(wk&kxF)l+Ma zn_mGn)mw7+WSEW^uJC{1@u0pKYt2xGpjgLx5tW?DFs3$vGaf8I;kUk%Y)uohzV4Gn&Cgh`X3fm(^3bdy zRa|3IE^EbCQji!Jf7A37S;fEgE9f$BKi7XXr~zt81ygcEn4c_li=w5PEM<0sk3E1{ zH)BXP8IBOz63^K8al!-UK5IG6rXf>cJ?RqQ+GA;K?h*cFWK&2-#H3U#oQbJKw6nl4 zRqYm=x?L9P$*4~2J+LB#%%CufQYK7S=lQ1EJRd=w3(Y&yiu&(c8E{~|dZ8?3{8|Nf z>kOa&PJ1lM@YzMLYGd&w#N{`Dod!F4DWp1N-oA+C;oko8&h5wxy8alOEEbj(gd=K= zMeUFqtn*%Y6f-{}W~VHm=XHXWVTK(Yw2BT7%a^nvyxEN?T;qIIwy7DB^ zc!F;l_Nw3x#!G?zMJDq48HN9zJ-l)sdIYv^mwh3n984R<4--mCJdC>~wAK=3T z#9v=iPZJJr{$;VijL&t*+N2wE6=prE*-Gt@4a_GU^d4X~-hA4x=)Wo#2-_2fsiKn} z9+IyCbrC7MVCRL4SVO;fERTXFqn!{{C5jE`59;Kg%23ja$X-=eKFVbNGjmc#Okafz ze$e35W2M0l$SjHZ_Kk}Kv78lbJ;r;1xSMZnAXl$NTh5pAhm4)$dpB&LJ6qu07nAS> zlEy6IAq|)36xVb$3lW?n31%&+59lN1M9mCH{`;M1{ddW&4`$7WJ#SsApfN-it{GwU zO77I|^WELLieISEmLE}#rE%my72HLE8pH*vHWWaa>rHWcOS6 zWgg=ooaH^BhC_AOJx01d*NDaaqd4lcbrP<_Aon{K4h|m6QHDeAb%$sPPs}$!^BblT z^zY(q+wgIXqstz`dVWwfDe4JCTi%o9k39?OllR0A=$9<`W#@>oa~fxEF~(UA*oq4w z(i8o~vU5I^2lK|#pB*O)V2i0bRuaf#M=g<{__|$A_eIx?aD)BNuJMu2Fmjd&Bh?v1 zR>os-t+=%|UjXxct=u3DpI3-HuP7BCtenG_&PKDY^%d#-BqMO{*TiT}2o5dpNt6%9 zq(fXt#gOiqvcxh6101C@`$4WxHr35jU!$NxS>pN((2EEPR;riwzOuzT6irX{GSDDg z`}-DiG#HBo2|5ZFg>#bq*~Nx3^Pcn#f*cL2j3IQA2S>6KH|IF1!yT8iwd4t>PK64p zrmVQYvDH-MY_!7sul~kAAUv|;weZvR(AUrNYws4XTJuXTHPQ&U7(rje*vTInRCWuMPZ)D@Xd=5a!ZGjoyxjD+sA`m=&3yv_&%vg$+4 z5|05?rIErvZE!I`*>61sz0mwOAK1}PfsLMMT5+@C3O`xoLj}78yu0v;j#P4lkuk)!@S9f)kehVX{9wejiD__C zWO zE}I3z&Jyd+_MelHMqKXj+kc66byg>e3nW8gzjLvrCvke>sDM?5L9_+UR+=BFuB$WG zqBqZAPa*iz&w;q%pl89V;UPM#D2aD}I3;bYy3aHCq*Lq(oA+BFtj&)7-a8vT4IKN4!g^0K*(2Z;!e}Fu^-;qd8cGj39~Z_fR)jc3)H-a48#AEz$x6 zH>cp*h;h=)lRtAxaFoEv*`mB6fMU{&68h@#E5pvtwE5NMoG3=~C9xUrR-7g-q}(O~ zWoboiLz^{OsQJ!Yf(wRz2}=o+FhawsH~5KyxL^cguFv=&N{$^?l4vL(0_SI+L|I-S zCX}}Xz4IWX%4{U3uH+WTUXf~$_5X4Ku0%gzHu>dLVjzZ$B_8mA%#(Sj48m{Yb*jA* zp7@iDN{s|IYxBX5q4cygi@7xULIyYE6BY4NP7Ki1A)ngd3H2B~I4P!aU?ID?X)|Z(I#`J#yTUG6eFR788-f5~ zVXGdiOAaF;K}HW)#ltR15!KIPoyHkMjgzJ)6%E-A14KZC7^6bUr2+9}@om$F6@sV) zzp74r$Tb@78}rx;BRGB-YAea))+vq zVN)xkfFD4ER#?sR*nM@D9N=3=98F;fg3O~x-{ADCV@X`nhnY|Pmt5AW@i<|7tNq2K zQ0*d$Mk&94jbW0#3oj#R@(ek+Em3=F;xDFXQ#||<=rHCr0B&C22w+AK3Q3`cN|;o> zMny(E^zC`DY|75Onq+Z1O|Pc)!$QaS_cJqNW%k7|id_fk!>C{8bCPZ^_D#ZYnjdPK z6Pym&5!(`PkX#WF5oofOA2=+3Y3-1s7$W)fPJx)Z6m z5Frg5fh6PxOznXac~cpM-4Hnvu9F*a%h5hqP&g1p=xgH*M6o&+RH4g3v}pwqBC_rT z#iutv%U@XLn!KWvIq)R3&30C*kR*3}%g>u!g?-aIODpMiNY={kKGP$QGI5#hPP*Rn zwtW4qaL*cR#5rvX9wsJ&0z1d5-t8uXIhFuwM6soVN)pU6p7cdO7gh6|Rl@TY_B8Js z4K{@akA3FyO6u~jzlqW#bXyc+9c)~bm%M+;p~T}KUo?+`6yTFs$(gIWFc-#mEEx0n zm=Mw>@i*erp_srQ#ZHX91J&Bqk`;6PyzrnMG85R7Dlm%1HIWUXBtJ(>K0J(2`>xGf zKg7nSP%7efb#D+Q-$<7r{`UPo3obS^gb=#sZVZB{X6LKq0En;>k0%@FIJ_IG@{GOm zX@wvGrDUCyJW~2ZFDv1VED40}IX_Z|S~XvVmbq|nws@vB>lJtXLESmVp&CrIE6a$%g5$BmNXk$wU{QO_%)X74oP%T4-OwGXhOmDl-fS>~ z@PDL&TYJ{|!rj%6(_+WV30$T>_(n2qd*?-k-H$UHh*$X0jt}UtlK(*nEq24r>04e) zbq`n&vqx1Me|HY7DvsR7(E^g(Jjkckv3@qo8Zy|(&ZyoXh)4k28%(fj)CVZKYsIVb zl>SXx#Nl}R><(wFVm953k73>H9a?9@pa>)BxWfilgip3!W} zKf!|VR-2V$I`zGSBp7O3+Dz*qr~M;hUzXH*)XXX8k={suF7Y8Vh?DqE>81|u(#M=H ztu{ut<-}l1Rz%|*1N3RF4K1L?EM1P;4HE<`-Sf5noJ>a($xIOeH=19+5@Z8{!zcc1 zFz6;>i^d9%61nl#yQfwBr5+V$ORQ*X4}PHnj$I8-uCB+I_s|sUN(a&$jcSG z&1`MZEPh=DxDo$6255@gKvpA8FH_bT#{Ogg@?Nky-+9qAR*XnmPHC{C(G3{;FTz)+z!RZl9 z98bb6D$Vld9FoC9E%HqSO)7~fCs_M8bTO&$FWH2!9M0Tj2m6LG>dr%x>E2dQtPtAL`_jxof`C;QC8{;$Yg7_l+ z#Ozh|VEU#nU5UW#PMK8Oea-+#7}h!A?)@(mrYSQPBy}smK>2Hp8~_}y0LQU|8c#8Q zi4MguZq`y{9Nj_tTG&Rl`P7ho8qpvBN?70!*ZhP9mn%pYNhw?~is>M-NU5Jrz$qg2 ziTJU$QX}#w5PGKZQ-3Ocqqj_0JT4sPV*l1_3vXVcjs-dyrEqFqLuV|_L&8ycMTjg7 z#mad{XzBuGcnO33&Al=t}P| zNP78Ia3?~%qub|l&~5T@u2IlBfKbcPjmJ*Up`yY zcrI!5=o3FICKAO5mzvIOb0n zu6nw=`hA2q(!d-ch6SPR@jCrQV*?v=CqaD5hnFuF2pQqFrG7bx2yiC_96SNce@9a( ziw{MSQbf?gR_k{WaldTUjv7m;Z7R(u&-W^S*1ao-SSgIhKBpZviufyYRYuctWSq4)@%__{WI5CwUWVbp*-A0AA)|F!6PVj4GR z4Rg)6hCd}cYz`y_$InudvOwi!kiMbMUM%i7^__`50lNNRi&v7*T)%52ZUO*|pJr-f zz*LozxYL>~U-Id6OjV`=9F2v(ZhXYO|8tPbTMy;V`}K>Sg8=A3ia}K~%K{~&N&Ft< z9g^%fM7D~SHb+Z#-;OIhY+ram)eO$I1O!YW&$@KHdH%f^@eL->T+E2BNxmlK=o!Lb#;3S z!HSMNX4AZBjF+C?tdkI_Ham z;Pltq^Sy`jV(!_4RcP;T+DH7K8bs*AQG8SU^2LdssZPXr>!v@o7f1Zn3!)t>}7&M@M2^Epu=^E777@P_roBNpBxxOnI_7*pAPC<&WDe zDN%sF#53DzC@~e}lW45&PzP;=^KZf@p4S#i(hh?H=SZ_o-$b2%kDumVS>vs(JuI)_ zBEs^>+l_&1L+I#ROM8WfEZQfAKKrTgBCa7aZQ~>R?`%I*hC6V6JtE+&Z)WY!Ew(0w z*vXS8e;y(~{wI>OgT+gC&uN#cvF5Y6i8HA-i3DfPU?@|kbPe0al1OZjsZr9eQ~&zq zlw~mAEynHE$U`*4g$lmjlEM9dH0(S7rUr|zJ)shmpuZ@;50`L)^%tWfF)!sD> zCHsfaKd_RGaat5x&@myaE0)*(T}L`*av|-7mm3ZmU0d#m@@pT*eh1DTq@Kfqx~M%~ z?nOk!K#Svkl{&tn&%GBQ#QD-{ri2AO>3ZFf0Kc4YhCCe43rldKZN{r;JH zJ~txvm#I8TFm+koPxv{w(2xsN*l=~^@N2KL+}jP-MHFQ8us$d=ht}cld14t`vou3* z&eoJ4ZanItP2wFMc;I#QocryMfrpez4#^g1SGNd<_GltW0%UtO1O8$}wx{K`5t>bp zTaVziu3Tgt?OQc10%}abwgTsmoRp@qwfL0z)f@Ms7l6>)ENx#RSm@v5#MX$jpq;Y1 z9_xqQgC05@*xoO)N0tM;%azYdfEw_Y*UzulwI05bD1AD6>Csu#i^ezr^Z`+AQQU&z z=0k=7DjbSGE-xMXBq1He`*WYnXlM4>I9(ZUXTcBN@}E5P*j(8dkf^)Tf1ci!zyG265@aZNsfis&BxAlW7# zeHiS)eG-tE@Uga2PyWj{dIW076t_P2gY+GJYR{F&oR>UF!4L0r9>Tu`5NZTuFvC_b*jpVlRMXJuL}+>o;!Ju+dbn-UCHVhbcBYp3e(`_%Sff z33c0#Ia6^rL%jzMuvS}N{IK44U&IZGc zE>qJ?NG~ zV6cDycx=*QkF{&`dJ-&9cf=2)ah4LF;<*F?H<}V>9s9NIy&_0`5o;u3xW5BK%9b18 z&oGR^M$-ZOG#tXj`2?;j;iq;f3=4o(~*)!lP`>7IX=!!NuZkCMXzw2yJ23{-Z6NQKSa_UM_1Oi^+ZwD46U z!Zh(>^5^lSK`hE_(H!+cG~F;I&H!sP-*~#Iq57**OTcE~NHi-Ql-)3c%9j4$)jJ1t zK{YfbDffHK@$VF%rWBay`pVrUbMG@PXVJT?FdC*nEb#h=zBRYobdvT&b@DnEyta1l zjlQL&7@`PM2$9L1GME?v3BiX}7uN;|sVP^C3ekWT&m%Krr#Og9DEr7EaV_Bsq!C7r zQ`Lg0xiLo6o)$e}%DW@ep5}iMCVUSZDkdlfM`;Z3-d7(K$k|HKtk$v)Tx{a3Vwx)^xe)ipdo8kw8L^>|L(i4I`9Wg#BXDp>pxcG7DiZT2xQyOmrScD zVm zbLBORVZo0mF%beuOeDJSt6O7mg|h2Tso~e)B7F6LepSH2^#i#+XR^2>FxjZ4j-ymW zxy3(jI%rRD84;BmE#|?sIo2p~3YWTQ?Z)=Q6iVcEz&8MpYkrexQtGG~@{c<1dfM~% z`S~VV1Fh37K8B3c@b3MH%hC}YLHasF7GR7R%ov>uiSBa$eF?VWUo6PQ>u|NOOhZGr%=HRmuBh%W>$qh^8+(=3NUx|&mV5&36BLQ zh^6a)3-3|_r?eP3c2g|+ESd&0i0=4d7^!JT4%z-$Qu(%+aM)1Epp-i*_)FsJ{!>6r zUq#jn)sz@@-*?D2|I#(-dd(!5`aTs)#N%io%46O!hqlNrrC2C+q`T?jnxq;^%S?J}VSy=h}?LAToKL>nq7U-B5 zow-tejZG_6<8V=0EwB%r<9`puH73w$pI^{>;il{L7bLp7I!MLx1O}HZh4Pui>C0ic zJxuwS@$;pW_2}#GlYYUoaHi?KM?w33_r(1rUA`qcBKNzDAuEy z9|eN=j>-tFC$mXqgaJ21EpkfMUTUFuD19vI{87T5k7zPLn(0dLat8(U-x~-l`FF0M z!y3E&HP}?|l?J8xex)61#^gY@PtCwHIQK&RG6LP@6ph$#kbnMPpQFTIjXhc{AAIiT zm>=S0T4prkGrN)9gx=rxYqyrCJFiY#*HqWg28%=HJbZG&0vqE8#clVf`fp!`R9+E5 zi9}N{AnkZtIA?N;*2PTwlgT?MjT9mj?T<-#_!aGM}Vp zu_Rh6 zr=RshpMjiOb~~mq+EUf%m>TKd^-nqjorS84HtD#;vQ`{|0rPP`xNVT3XDmzuX4Rmu z*iJKLUOWhqp!9c#ZH6nkckj$S)dj|_>0Qw%^(;0+U(Apc9&gLsl5zOnE&%}Hr|UFX zcxRCs$3z3mcF;St=B{SP&M{)ECbM?z4}_QR6!(Ti(ULMhbIcjFXgiIDBbvpj>4&u$ zi~Mcpt0ruT4$iW(n=9ym*z=;V0;gS8CS=%eW#y$j$WsnoANIJ}Q%@DY*5FMR$p=LN zYN%i|w~|&tTlWf-cW+M7s;3iwEU>ccYZbJYq6x7@t))fx4!&z@=bzWLwvHs|9?&^( z$n4Ete^K$SHZGv1%9(-@s&j|~gI_CYHlm%6^7%Y%5qMgu;u`TQcspzmA?v{a zb$a<{pCS+s@iPq*-OJtwAx!QH%sVeocOE={X~MAnQNZ9evMkzLgpq$t+>BpMZ{kH5 zNQpYR88mlxw%LnoNhBe@9HmTuxqRY^C;Y0FW~B!`mn1&v->wkt?}9AEH(avVOqz;W zVvMF&KxF{n%eXb6h)e#GI#w67(rV4KgaRkW%Fpn{G=BayFDRjzxviyvjGRb^GdlEn z39y8>$wIUt?MF+k@Uv`M*5@HnAkcl%?qkDN5(8PXY@ZH~vj2Q5XP0N{=^q0*!Ja@= zMn=wzvN@#kajFT~%}EJM#zfxugVSGdiYk?xX%1)LeoiRwsXqI4vl0iW|BxQTRTcSf zry|*2-~8#pVsf&lDD%nBFbWT~QoQ`3=?7J}C7iJWRHvC)?)^ZV@~h*HtT%NYsi$LA zMRI*DsEmu-Hz^5@e!^x9OJPu&M{`_cx8UU~w2uv%NN{#Wj-bPM!ToFFsjDcSPkFT@ z|AnK=#?%U43X}3zrAGGcor>CC>zwoePRi}v<9+@uS_K!kAFaO{D0#+$Z0A+#Z}*bB zCTd*oPD3S9Pd`q*f+-HBZ&VZeU@6>^98!gW7OffIpoI&91x+}})B7qiYoCdE)Qqi# zY&KeOMqaGWU$8C~5CQtoBT^B>FEGaZ>ZoIfTxtFf@$8@9D?;Obt6JPREmM$sXKK>N zG5&YadayO?d$H60t%U5U zQ;Ac9%*oI##>wzaP|uZXxL`UujC$Nl&~~I-%8DL>r20mf$N<6AkRpvIlgr*le2?yf zsJTC9qx!p_JIDa`%rYtdhhO1mSn4U0V>TQ_fSqzWU20>LFf&couIlmY6@)Tuoc~0| zp1h`omB1V4wYcQ%qFj$U&#HN=`c2m=YkekeSX+R84C5+p*hoRom0POp`PaIKs~*sw z0MfN%oE+oINzJP0K54V%s0SpU7_DR|%9bK9JF1P(#sc2+IF7Dd04Bo{>wCJnXB{Wf z-n&yJ9O~!{;~oBDJef5zuV_InSRyt$3H;0?3R0f*aWA>emiO*kumy&n=N$_gDqy#U zyjDK!^#ZywVB-IA3%SR~{FsCnli7Yg_Q5s-Fhg*4-qe;PB9PDf#bEHeAuYGUJ=n4DNof(IIeU*_yv)&IN6T}!({gRX+q3RKrKi^_OUPKw#{2Ta2 zU5yV7@enAnCDj$Ib|9&=;A3dxdt$LA`lCqpG4+ts>=|Z(>th9GGC1q~qZSX7a2ifB zIOQ7_?X#n6EW>GHN^R9K6?+G$qu`^@2qo z;UEAD^8Dg$bAnYBz&6{xZKR^~=dFaD>IiRP0!ab?_LO3yr-g+U-4uM8puY z$WR#WgX8(no%wUby|jYgt^oDVxcUd_rx7)qAq6Hgv?;5veu<$qU{Z$^Dd-0ESHVBL z?YW-K``{b&N#Xz2AHW4CQ@rT)6{c7;SA4}8!2x|iK&t!WOv)C^1QTVHM6|u!qyE+2 zc=rEt0e-Cr9oj$nD$)S$5qz#_;Zs>m=w8)_`|sb?1fVVX{N*3qb7Bw7A0J(uze;nq zNq>k?j+p%sZ6#|#aH$yV!3y8q&KPzplKQ%76xvihy89x9>J@(Er)LS6G~alpDyiZy zgj?R?l}R~AX63Da+9Q>LIEs#nHBKCATuI5yA0{~*Ij&xZc4Ro1w>Y>p*H}J;6J#8L zGrDFT|NeVi`*$Dy5^uC6@FnwoprT1Cn`KG;+7V;V{Cn3Y-yQ-Ees~QatXn;e8f%B6 zekO?XG~JQ<%!OXls6|WCb0V;V}0c-KPK+DRIp zfRkqq&FcR_)z8tFltcBd9FgB)Tlre-&`$+a?Us%?UUPh;;>kzS@YiF(M8)KzLJ-^f zHHX8Oue4|HB7c7k&#$Ptv_7!)sbw?<7Nrd!+BafpYv~q@lRn(-d;YFDsY;{R(3U(n zH87d^zQPYG&2&I?x}|(2W|8(@A0Rg|FPp7J_CaU6T>>+{gWWVO$GH(#N`#QH>VvPp zEhM6@i%Ti7Y>GkpXEd2hNaODYil*?EDnXc}jrTj>y6WcAAEa&pB`PM8$KL}jUxY}2 z-8{R2lNweX@ngD6w0k=suf7AH<41w>xwYyyC*2)-NteZQ!x!0E;?a6(GzPvotM7Dw z(d9cvGmu4S0q1r8-4=%%-xzeV_t{cP?RkFF#;4^(NPOY~Q`^|seUs|@W%{v(r3chN zr{E;VU(3v?XpC(3Xh-$gh&OK)RDi_%|6Z4VHa;p0?*B%~yxi)s+;T<7zu5VguhVyY zyfy77&DmTOnf%-2OF3CSg#3|JJTmgBB_&anFmv&z8dp=)p?|} z-1soM_Ar&S>$=bGz;WkapnX-~8c}|?uSnyLxIgZ`JZVgb9@TQ?122vb^tE|6rMFbK z<{_y|xXD3p{Pf+_(epNw=vmzcNWDNeZOeOuIQvsM zbGXWzn6ercObKI@g0_i#-8CvPF&@S}4`{d_c7#lfi zgSTt;+EO(Dn$FXHJXjg5PKMai5t>6WzlmeB`1VW8U{l9mx&4tsrQS-EaFsJG{v^sm zhmoM6ux6Ps6VBP)H_|thKa-8OH!?lF=<&{dgL1tNl!C7rafvk!l^STjmsv}wzE=@7 zeB&ZMnhhQ&NE;PmY&iwnl;IzoEsk-5<5N^jA-K>B{6x2a*UGM~@+@_nPjR4zvP@QY zngQ!rZy5mvU+e_^b+hNybLP~1 zbyApE>@f5E>P2AT&z%M;8nG-Ko4FVy-Mi%-zc2iY=f0jcnjXvo;jh^gg_i>02g_7? z)-;gLautZ%{eA{T2?Ij?#%e%Fz5^`YL2d&Bh~rf1ZeHIHBI5LOLaz8 z2i!MIed$aaIY(!m=}JfN6R@_)d*)g_P+-p#)mh74U$A#O($kWPcwoTYc#O@iyfjg# z%Y+U5P0_SOUnX4-syy)h?Svx`7o z6(|?>+4)SA_Rs4PU<1s?vR5zrkiN&8GIXPln+;4A(_CX~p%BB_f%bRQ|V9sARFv3LL$R@P%_s83BFVysJ8{_Hq-JO}MDUBzX-`SfI z;~`$_jjeruf8u`R-L5AT{f;|ig_Jok5JWMLXuy36R-iOiSJolPS#R?!Z~1fEF<35b z;O6J~C=E2mtjp``d+}%XIkaKv+Pw64L!Uke;$N8>bVq&~$Tp^JEJ0b-x9N+iOfv0W z(e5;=iTmhmL;(5rnpxme*>J|YMa+(E4PKF|odM>nXEK*`pKNTjv&Aa|NI0|0!s><> zN&9A^1I7t!Y3D;Z6N~>DA1!zvXe)4+RDG;Wl%?7jENXcnQQ}?G$7f(AA`{nqDrRFz zO5hN-yQ1v%|26jJ@ld^Q+&GG6?7Qqsc4H??WZ$=lab)XQB4pq9Wd_-oj8I9EVlc9% zqK@oQwjo>D3KLRE_TTCAd|$8MKhGb}{CCc|uY0-f_kCUO>zezVn@`=qZtqX)NFHND z(K2ObjvM=2v7E)F(reco?NzJ~vLeq61?@jA4YSun**VNC@sv+(`keu9emf~;+gS1% z20mX6gRP>YZ~UxYtLh|slqi%rsbkJ7 z32A=g;xj@40cCFBI2poI?Py^8>RHR{kb@boThbNRCcXrzy`t*~4rF(e;$vCB?{**5 z6PYr98+Y#F%FtAVE%$!=jXVN7#5{S8cRtlt1&X*Fdn^u)Mzf-GqV~Gt zt+K*uYKCTYp#rQeo7oj<0hFeRO3PDs$StBow~eZ0{^jf{BDqFMNcEjiimru&PnyR{ ztz&@8uaL3XW6nEJSQ~e)pb@LY{bv8d>$?|Sl8$i z7Rr23RgcFDie+@X7T6U>$xnJSp`BvpH(O=FY{t@NMl)sht#v-z*^XK|PjzVrKAYO& zzO-zEpFkV47w9-2Jv6LR_o}{*_kIt#&io?Igzl`bU0T(Ju+r{>*V4fN!v{Bd(0b-k zdipT#>%<1vAs&2)96I= ztAYDt>{W`kc(0v9{X_zy#{t@CC0BF=7>dE1o)7UYUU?#p73XD9SUo}XC3$w_^NhpT zo0?olaz?6~!8X|~Uq!#8-VGbWL3;c+H+?Egq@B8dx>~Jd)K=rgaDY9Ead2zOrb++(XOL=cggFfw-);l)3 zi3G9V7%nZ6>RkVE7V@xDH@IpmnG?Hu?bSDKG{F4fBdzPvjTI%m@z9o{OGGC2?Gnhh zWhaXh8dS%%F}mjq&|J!#rvB&pER_jmgBSW7>jekLfFP}@(XWApcI%Ci8hqU8sd4op zD;K!z0M4%yG20fIPgk7kH*SUDFQ7gR#?22i;tE{qxoD(@)@_2+@8^u~_W6~Tki;kUSCaGm!cy`vy5zYb68qy+Y-n8k9z%luDw$Tb6zz)@ zAts&AD+wMZrP1e#?DO8=Kd2m(Ks$>Mh{U|qJ2rQxMJnDC3g*fSZ8$$VIWe>T=aCfs z?HZQTw9v`c4sfr};i#y@$2q%Lb+Nr!y0O`}Cmbpm=eb{MYFX697xFu%l(6vl2a{TB zgkwm^uP0j@qDYbrptX2|*Eoi?Q|@Ww(t%eYrphCQ*RpOL-T&>ocB_x`CWd*>K%i0n zIq!|ofr_Mgj7Z49RC)YCQ73ez;T1u6!@>ecP|eI`JWx?)(e<;ti7LeI7E)uYfLP`Q z6euxDU#!B|3uRzZwpwwMmRuX0Sv~&HQlZu7q^SF7yOun{f-vOfVjDO4O4@T(9iM^q z3^HdyKOSGDNu5MLA-AfowN{C^$W(@uGU^IWGc7M2E4z@^(^-ooX;P^fK4~GVjk=m( zrzf0=kaA3BlT~ZNh^VN|i9kP-FK6}LfC>s2yrF34p(h`9+{@#x(h!WPp^MPLqTdY~ zGoS98m=Vh(*D^Nl_jkonxvnhe{_W&dRnhB;pl4xe!&W4=#0pSI`14xpXoq3@{%X40 z^cIwtSK~u`?*|?egg}Y*4o&9e@tc>aH$BT`je$|dC8LXJ0Da7PIc*qc)RhqOJ3|QG0bPJsd zS?<2ie{pg@QakeQvwGBkI%MiS`N?`DIpA6ohRt3KIl0;WN&uxum`8zKTyC!)+1U<@ z2{;UT2=6)ki7~$dSLSjFAHL-jU14DdUZVwl_c zeMv%4Wjl{i@Oh|$NmETFyyFkk+%v@tOLB@m;48ARd>Y!oli;;3EQlDQ{cgW5BS0tO zZURRibFmQfdZ$;y-)^r=ktZEaCZaT?ZAo?tiM5$RBT#R0{n3{lV3{5fd~Ayw|jb?#kd5-rK242GMpqhJ30wfeLUOqR7g~ z0y#%7uPS+hds`~c_@3hXBpq0+su26A>T$dvt_b4^nllr%2ZX`?bC3e%C2FZcjUS4W zz{FgP7a|TTf3-aR*02tcdL2jjG4>5I)otKk0ja`S*&C>UbRC`2LjgvdoxBkc{BV3# zdSy-r5Cx6Epa53P?q#tNKU6KfV5TTWn9`bUT5%okf5_kx)q( zOF5TbAK&adb@GkslbRuRPC%a6l%oCzK@M_O(qF}hI44Z~F$&k(5nj5jdHVYfn|<~y zSmNP`R6OCefM&@O39+`CP}MQ zFs{EnQ`(T%_;q7ItlA+J9FML?C^`VA2&hJ|BCIUJ8=7f~>2oHqRY**SOx;5n?Ov`% z`c8eByQS@Mf2tvwK>Jo0to!^3NxH3>yA{bj2U3U6e>HnVj}}19HweQGSAU`fSHu11 zp1Vir0JE+X5qFbs?TM@$Q0qaDgQUyNIf$BjbH5_i7+zSP&YgkA)=dV47g#Cg zf}B5RN(E6nz0Yb==X2i(SC~vk)E=NTBLh!QrV3YUxb!cwS$#a%lO%)ZOafY(x)qP8 z;WF>*glvQ#JmKtc`lMUBvCtZw(o{Yg z_UNYGovD4~Kk#G_T;>3qNdhm%lNrs1mXSuRQ}fk0LHBc&oDH&C3dhv=86btTikPae zb2QM*f!LKaHNX}SD*R63e#}0iTcpUmY=aH6GwT|mfwcdta7zS=wkZ>C_VB%V>AD4Y z+xGKm{MQn%9N~Se>EsZ#Z}~=TEzU?AK)<5}cWQqKFY?_g2vkH238N%XC7Us+fdVag zL4(N5%`qW7-3}EaQ7gDLX1r7g|E%gmq==w7b16myD?-nE1-tt`d0ux2X|`q;H`$y^ zbddWuXg%PVWLA7x>&Ec>CBH;vtn$07ORLSh&=Zg#RQ(vX; z4z~r&lNVy1fEJ)grXGZ?@BJA@!~EgOoz6PKgcK6vd6tSsYWAi7@}_Es&8Lpl`fLI` z2`C9XPmHcv2ZOZ8dQN_bn!{;19mW&UOPzVR6aA=`_foh<@^s@F36i`V&SXsps?ffqr;{=Dym} zmqjK6&cn8?dRdOkPQ}nDt>W}v?-$0l$IvL3iwUeG%cdmAt-&=dw&nhskIG_~yXUQW zT6vs=tt?*Z+hyxJim4`o)+^s3^!M8N zmwQjYFC2?25Z$j_@}Y`G&>Yuu#;E0<)bPt{6F-(SU?`y)im1;uyAg{=MPF;h`af&- z1G87S5&zuwH%oVd)5WFaS@D~!J;j1qr1eb)W)2QJkrngfFp`t-47X{vR zMn59E$WBW=tdslr5F1zjE6M`kmsGnM|GYrPW8XHxHK1VR{7?9dNkr`*t7bY%pllNU z^b-@Y(2Ci;f{|1qZT0qm$Bdc;jouzu7W>tMFndsr$J50AEIPLp^=18X^hsZ#$AtmT z{m>>XrJnBn#fH~G%g&BZVt0ir7~SUS%d{M=0ecs2>pLbN{{FE3J@DcKhlWeJV8z|o zQd>?@VFa4C^X6u$tgX--1~FQ)w9N)u3Km7+y!!~i>4io;Lf&pSiV*D*LJcH2l+BzIq=wm(-bRm&ild7YYTuO(##){z}GclcQK{m zT^zlb)XKiRA3eY3e9ONU(ah6wamqxt%Rqzj4Xlzc4i#4~zR9PI_V!L^&zddFi**c> zK~d&j(8HDIs+a;}&+S5xz8@-czfV8kQ9!)&hOxqSd%1V#oI`kXa*0bE#-JAJSblJc zUQEJ=NTsTv6}p1ua8Xt0@6Sk@cukPgVMJpChXRWZotTI@(rvlP+F8AiqzgQ^!aQmN z+~Z@uyh%z)`Tje|GJ5S}!gYGOpRiaRA^2>tZSMss_C7gK*(#TiVX~J@P-RRX1+;FdaKU8#%Zwd5)CU#n z)f({PK4sE*i`O(}BY~(PWRrfL`@;U8?w5QCPP=Rh=$hX_ArpcYK$`f4tM7NUgzr$i za*N7hWp}yz>*Jk9YHa08{vHc%%bXM)_&7JL$S*yy93Hiu(`knprpgbSGc6<|O7PfE z?rO9HJ9d`>ktwAq9}d444w<^fb!T(8K-LQ4bCnwzw#wh9laldW$vzP&&qBbRfiqqD z8X-PtFKhW12~+ibW*9s5v4PQT_6w-<%$B@@`<&LSO&LA%c>3D)8MlCvrI~MH)SWi9 zM*Pd#LWVY>7u?*z(U=*Z=&})IKYzOszdX>FPxw>(0hDk! zID3&uvn@&|{Z7FdNYLa4N}Fs8v|O;g7*c@!tTO8%xVWVNqr(}XJnqlwyWDd0sy6It z02s9G+j+2>U&5lmj12*>@{9O|O3s6cm)o5&8B5$X^rQwI;2{51{P96;nf=YKSN9BXdrd@tAN5(TP7`adCV3}l&HKsSDQ5Yf@6u(u@;)t zq{Dlg3(bZIsj0B#gY1a9j)NJyHF|E6U`y3YBJp@s)4<)CRaKOHP$B(*9cRpI6StfB ziSi-ycm!iM^7C4DwK!VboqFu!!$u;U#r!Qaj_pe>Q*oU)r^5CF9vsv~n~rUkMQX8m zY~#ibL8kaq7OyiKj)1~pXX!h2>nDAQ@2aQ{3$g@E#^#nU!=}y`iMYSV?0W0PYa};K zHudf2&2gQrxaQw6zPbhP%uBzmkuMy?$!(OY%lh^!Z1ex^k$s@1QzZ2P*AuGV^rq}A zZ2hijBzK22v<7Xc^SIZ|8h?iaC65-*p|85~>wHQA!ncHavfea3OM>LIQ&F*XPxnkC zZdaxju)bUgx3OwDd6tJAww&V!U#9oEyQ9j>AF{a1VqA$EMp)3~j73`mnL; ziWUw#e6A10xb*ZdT=Xsi5`bn$y`DsZHc-@Q2Z+v%vwU-s36SGiPcYwQ<2s#>oK$#( z4#THBU=&n!_|rvFVVEM5wpS7#$7^^A6mUxx;V%PJa9 zOesK49cfHaPGm9@E0+O}j4MG*osl%39M(d~KsKeUBJJDxCzTrw`nQ8u+k~&q_IIp} zE1BJ?+6*f|o~sPX0M&B7sln-j>Fv2P3q7P6`(0aQWFz(;QDa(@MX7Bd4c*0+9;wft zF#fSaom?csY5khGk{_M7hH%OkS~ua7->yIN`cxCfeW8&RjRu|0(_eQL#3I+51%9B| znm!Mxlo&GO-iv&m?mB%D@wAj}f3lJg@7LvP7y)`}F352WRD2ZQ+DQ}Yw-0(ZOX<4% zEzs|QrP$JXXzO3*>X)S|QF^118K89@wy5Z*QF_BiF@#2tvB74Hb9M&ZM&Qv?SN{UVx?-y(eC^MV!Qj@p^ z@RWI)TVE1=O7V9p(;M9S?KK6v`qo|LV&25e-d8O$pq%&67iR<)`-V+8lPZM>TFnoX zZeV(5l%a!OKW%_UAT+XDUg3^jXF=7YhUEC%ZpXJYl1(}E#acXJk+xudnsqwiFGpZ&fctTszFLd9+QEe-`~8>ScB*S(VONS=4I7CUQ7Gv&g91QJqUrv#_yj+MU-Xjvjm=iN9A~s-e;_ z6JPA0lH{U-McwT>sz2ElEPZ!er-!aVhmB`wYOmyIKiO-)`(fFS0ksvU+xCK@r(@Kw z;u~#Yy6_tX^|9-|NYCG8A9{UZLT(nR)p{vbQ(k%h&Ls6yg;-%$8fi;l&L=JRPInvSC2|;AGaXB_JvT-1|v5KYGz2~aZmTb46^CAv#=^SON zgoBR%U*vY32delX=UlI;Kn2tN^aBpfVjlmn_WVY-+pHFfv=&!y1Gx+tT)(SaFe093 z1+SiYsq~7_32QC=O4&HKe($4+egxLgR*37j%t6chuvS5Ltk9XpND8K0gYL^JsQ07A z>P+ZTKK+l$TZ)m4U=o2{sOeSrDvcr4l0-|Jd{Ksx-UAUOi=pP0@QznWSA;X(_Bd_P ziW|Ca=mF~!+_}rj@h0<*B;`^;g7)0jynoF8|}-?B?!B5(%c`(&;>|^NYX#rfBA`y&?0L zT8>~q?OZZL1#AYYI{UZHuCCESt!f=tIUrLp{wbUY!-i%x1w;W#XYsf$Yz0QeC0!S1 zrTwdsGhM)M`p~hst+}PGrFAT?vxYoO5Y^crfLHmwa31-OQInPU`U>Xf_oe7o=4@D& z2oSOa#I>c#!1ZVm*uJO@D^Gtl%Za*X?Sc96uHxeB_-8aAa==+m7|+Luw(D2OG#Nr) z;-xciMwmTf@Tt?j8eLqJ3>*E#?5DZUslfE}r0X_&VYGCj_y)F9)`0&WFn|LTn$uHL zMmtwjuTg&A>q4jA`sb_#@V!+oxUU|R4_JJz+&Bl1hx{T1yB6txJrTgCQevw9htm`S z7rQe?B(subO{R>m;mdVKbR8K;-U_o~y2FD)4z^V&b7$(Z!(VSkuZML;WMuSlCi*(I z=(_7FNd&U8$`nFxhvCk=$5gve*Tv^w76tIv$RP^9TzW`-PwfTwW%b>i*hGR4C4z>a zsg5B1E%v%lZYj=T`6yQwr6H;W0I4#~at^@k;NOjCM)vC$YB-2R?y|WzWO;^bp@S;} zCcg@cvffR5Dc(_lIyz|uP-GZo3!s?QAU^CKf;5-Rg!3aIh9+`u383EmS(6vG#VUuZ z=3>I)-*yY8*-62A+8osZI4r*wHP+uA_?#nN*Z`p_q7n&Yvz11?#1~uM92w73HIE-) z#o(2$d(EkS&h!r&XN7cJ3eEjaDa-bFAVoYBVnKB3xBPA2g z|DW#MGYB4k^aay;wCT-MBw5gBtz3q-ZSD>c7YQM8py{fiy56$U6^80S`43=9*^h)j8faL*}qi55pYFdD&dg^ z+_DT6QmT*s^5Kte27dG4jZRE(X+^5|H8_93!$=JMcjy&{65vRI{W-s=Mwz)UY_}z( zI0K_n2`{dlKcY6&*to|)ev{p^XC{%r#qrNZ+uWy-;-khU=Ug#tya=zap7Y@9nimY1>PHT` zjxVkG&lh&P9V&rz!Fk;^_X+hf-6#-?l0_L%aN+JTK{omuVN10U-bjp{A~^4G zn?Ux)a^h*Ak{$z}#@}dWI)o0;LV=-F;%m89dSM4O^iypb^C&!#kl1@BeE1m!BRko7 z8bmF%Hb8bAC4h(XP2`Doo{Kg3+-|Y(pSO40g4A;9}@FHqc|BVwYCA4b`SYDNP z1-6ezVCBMOU5OsvmB12@dxusV>{~lT0he#;v}bM0x@!Xmu%Y2fV+N}zJWkp0RB!u+ zRs9wIRIA;W=h+WU^5W#@$c+e{i(*wf{btG5cwnKZA{Qv+8?7 z;4R?gpR8a%y`hB0WpH$8t&`A*d@WMW#t%_lpJvo0e;UH*Ler^NF)F%VY9L$zyf<(-m$lE_TMtdAmB zr)NGiWJywjajkz=gMP2SXc04#{Z@?$`zEsg)1&W6zEmIa#37E+t^9pM5IyPMa*by> zly?PA7iuqGVZ}Z5tShJ?=(|>&r!fGk``|p0yKk3%TPb11HQ-J8O*K3-SYf>y2y1F# z>SFBE%c&c+#YVTWGUcx~Sr~CS94(F1^1nZMIFKhY-_Qp#3O)+quP@dqM74%=FYKsc z!jSydEi|y8ff&4T*KAM@L(E z@1Eeb!=Ec%p=sNn18@F};12K5n!tpC-S?gEOIH^)9;$r*6>32%JNvOEfOXxs`emH} z9#+l5r`0V<(fPj4s5|Zs{u*T~f1BELc>mRX-4t*rPh7&ErHF&rgSQ5O{ufP$KQAIzlM`I`(iPalHc4B&#g&@v3c8m`^PeUiS<&i= z>#sGqI=ZT83bx3|P}l;~h?!!U*#4OPB_?~1y8H)DlG({0CS+amiwa&oJ8k>{KEp`5 z-aP|dOAJ{IJb!9={!c`L1Bpe+B!0i2BQ|ZPp|bJecC2){_2mer`5PD3&S~T(?C+l_ z(N9S}GEJpO))OuQH93fOdf!->Y`~!gXH+ABEg(pB;?3O3@)-=cuR7iZH5N)XshSs|ltA zP_55&5G}(>MyOu34=#=WASLy(dw<$^U;Q@r#TZp*3${8 zTJIP61J7IOCj1d}!jpya)M+ZS5`E)8XMX!tsMXW>!OB;|LkJQInwvIzVc%FAAJLd< zRZUGY=-T`7^k;D)^{6lz+*?b!G>kYiU(D{KBxKxB=Z_^^hPFud}>Hd7Bbw5#1@XFbXHg(D^?8I+_UM*G~zK~7f zR{57MW%SA&!k@1LO}b;eZ{U_JHZjWK@k&FX*;3uIu5cnYHame<2(>ylFuEw?MEtQj zz4O6$KU5#!XdiO#v-(!FTrKMw$u!7ChDFq#ILrMU3{= zR{E_dN$_Ov5}N~UIeU@M7d_g`yMH}2Um3SfmPk`Y}An|}N|C2(hc zSpZK3lQ!V?I&^Jez&w$#QGC?T;TjucJ++zvGcnWmjA%164<3wNL+lRm7e-P2V)I#$ z9PNf9T;t(E)XH$~f7z!9SZ_N=3zH4zChX*M^~>~7jh5&_bm!UmEK0Z`eNM2YSrto( z5jkU6sC9Lt_S@&ur%R16b*RHkj^Xa!H3C?c6BnIgltTR#TK25y8G5q5wm;LQ^V&EJN;=>K)Uu!r2zh5F)9wLys!oh zQvW)td^hxvsuo$>qmu$h0^wMi;a|Bo?JdDq3vy#<|LbINNxJ2UC^%VmG6csF7p@z7 z69`Ye(Kf83-`+kccrL-;|L6hyQ49BMOOr8P_-{!5_pC&3JBH!_MsVQ8J&my9!r+zK zwI*h8V1)+Toe4qtMJtOoKHhM)X~O~7`aS1K$LLn__WkozhTl6yudyOm{fiY-A&K%K z&b%tVwpq6PBERWXK!e4g0ci`?3J^$2&!Pggz5)bCs7L2e3pomYFObIqZc-4-4^)XZNq|1466o}gR z5@|f~1PL5D<=&yE{;);_dq<#xdk(?;EB($gOF5OYKVQi=H{u=B8R#wW7N(ILf1Dd^_ZM|8?@>4_42#yW%xj_{qh!oos97juoWY0{Qw5VVI9i~yTn_imm4b>yz{Ta&F?%{?3qgrNZS(Yu^8hwSb-3ng7?@ ar~Co2ZMsQ!ne@rvpNWB`e!cGX9p1OE)6Y>p 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

3m#yu2(rwq5TRfp0xA!JyH;!AEe(py7 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 F{C|cQ``G{h diff --git a/docs/src/img/example_md.png b/docs/src/img/example_md.png deleted file mode 100644 index 7773e8c28866d2f28b397fdc96a43b37110e842f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32627 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 L8r-eE1B?7GE|9HO diff --git a/docs/src/img/example_shapes.png b/docs/src/img/example_shapes.png deleted file mode 100644 index ca0671e8287148610421d8da0964a657a11a7ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58044 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

v}7F)mM;8`mc#b-4Eg;N}r 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 DVEv8y diff --git a/docs/src/index.rst b/docs/src/index.rst index 09e55818b..af0e320e3 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -8,7 +8,8 @@ and molecules and help researchers to find structure-properties correlations inside such databases. The screenshot below shows an example of such database being visualized with chemiscope. The :ref:`first part of this documentation ` describes the default interface of chemiscope and how to use it with your own database, -both using the stand-alone viewer or the :ref:`jupyter widget `. +both using the stand-alone viewer or through the :ref:`python module ` +and/or the :ref:`jupyter widget `. .. figure:: img/screenshot.png :align: center @@ -18,14 +19,17 @@ both using the stand-alone viewer or the :ref:`jupyter widget `. Chemiscope is built around re-usable components, that can be arranged in different manners to create visualization adapted to different kinds of data. The -:ref:`second part of this documentation ` explains how to build the +:ref:`second part of this documentation ` explains how to build the code and use it in your own website to create new interfaces. -Citing chemiscope ------------------ + +Getting and citing chemiscope +----------------------------- Chemiscope is distributed under an open-source license, and you are welcome to use it and incorporate it into your own research and software projects. +You can get the source from the +`github repository `_. If you find it useful, we would appreciate a citation to the chemiscope `paper`_: @@ -37,21 +41,17 @@ If you incorporate chemiscope components into a software project, a link back to the `chemiscope`_ homepage is the preferred form of acknowledgement. - What's in this documentation? ----------------------------- -.. toctree:: - :hidden: - - Chemiscope visualizer - + .. toctree:: :maxdepth: 2 - - examples - manual/index + + Chemiscope visualizer + examples/index + manual/index + python/index embedding - chemiscope-sphinx .. _chemiscope: https://chemiscope.org diff --git a/docs/src/manual/index.rst b/docs/src/manual/index.rst index e72b4db01..65fc61b79 100644 --- a/docs/src/manual/index.rst +++ b/docs/src/manual/index.rst @@ -13,8 +13,10 @@ This section starts introducing the concept of structural and physical propertie before describing how to use the different panels in the standard visualization. It continues by presenting how you can generate a chemiscope input file to load on https://chemiscope.org, as well as within a standalone HTML viewer which does -not require internet connectivity. Finally, we present the chemiscope jupyter -extension, which can be used to explore a dataset directly inside a jupyter notebook. +not require internet connectivity. +See the :ref:`Python module documentation ` +for how to interact with chemiscope in a script, or to explore a dataset directly +inside a jupyter notebook. .. _chemiscope: https://chemiscope.org @@ -24,6 +26,4 @@ extension, which can be used to explore a dataset directly inside a jupyter note properties panels input - python - jupyter sharing diff --git a/docs/src/manual/python.rst b/docs/src/manual/python.rst deleted file mode 100644 index afa575780..000000000 --- a/docs/src/manual/python.rst +++ /dev/null @@ -1,71 +0,0 @@ -.. _python-module: - -Python module -============= - -The `chemiscope` package provides utilities to prepare JSON input files, -and to visualize them in a :ref:`jupyter environment `. -The package also provides a small set of utility functions to convert `ase`_ -structure data, and a command-line command to convert structure files to -a JSON input. - - -Installation ------------- - -The latest release of the `chemiscope` Python package can be installed from -the Python package index, using - -.. code-block:: - - pip install chemiscope - -To install a development version, one should instead clone the -`github repository `_, -make sure that all the dependencies (including those needed to compile -the typescript library) are present and then run - -.. code-block:: - - pip install . - -in the main folder. - - - -``chemiscope`` functions reference ----------------------------------- - -.. autofunction:: chemiscope.write_input - -.. autofunction:: chemiscope.create_input - -.. autofunction:: chemiscope.quick_settings - -.. autofunction:: chemiscope.extract_properties - -.. autofunction:: chemiscope.composition_properties - -.. autofunction:: chemiscope.all_atomic_environments - -.. autofunction:: chemiscope.librascal_atomic_environments - -.. autofunction:: chemiscope.ellipsoid_from_tensor - -.. autofunction:: chemiscope.arrow_from_vector - -.. autofunction:: chemiscope.ase_vectors_to_arrows - -.. autofunction:: chemiscope.ase_tensors_to_ellipsoids - -.. _chemiscope-input-cli: - -``chemiscope-input`` command line interface -------------------------------------------- - -.. sphinx_argparse_cli:: - :module: chemiscope.main - :func: _chemiscope_input_parser - :prog: chemiscope-input - :title: - :group_title_prefix: diff --git a/docs/src/python/cli.rst b/docs/src/python/cli.rst new file mode 100644 index 000000000..decedf7ba --- /dev/null +++ b/docs/src/python/cli.rst @@ -0,0 +1,11 @@ +.. _chemiscope-input-cli: + +Command line interface +----------------------- + +.. sphinx_argparse_cli:: + :module: chemiscope.main + :func: _chemiscope_input_parser + :prog: chemiscope-input + :title: + :group_title_prefix: diff --git a/docs/src/python/gallery.rst b/docs/src/python/gallery.rst new file mode 100644 index 000000000..e7c44a129 --- /dev/null +++ b/docs/src/python/gallery.rst @@ -0,0 +1,54 @@ +.. _gallery: + +Use with `sphinx-gallery` +========================= + +The chemiscope widgets double up in the documentation of python packages +using :py:mod:`sphinx_gallery` - a sphinx extension that executes python +scripts and formats their output as static pages inside the documentation. +You can look at :ref:`the examples ` to see how the widgets get +displayed inside a documentation, and read the documentation of +``sphinx_gallery`` if you never used it. + +Here we just provide a short explanation of how to modify an existing +``sphinx-gallery`` setup to include chemiscope widgets in the examples. + + +Using widgets in the examples +----------------------------- + +Showing a widget in an example file is as simple as using +:py:func:`chemiscope.show` in the example file. The widgets will +be shown in a similar style as that shown in the +:ref:`jupyter interface `, including the possibility +of showing only the structure or map viewers. +In practice, this relies on the same custom RST directive used +for the :ref:`sphinx extension `. + + +Setting up ``sphinx-gallery`` +----------------------------- + +In order to enable the display of chemiscope widgets in the documentation, +assuming you already have a ``sphinx_gallery`` setup, you need to activate +the custom scraper from the chemiscope module. + +The ``conf.py`` file in the documentation should include the appropriate +extension (usually you'll be adding this to a list of other extensions) + +.. code-block:: python + + extensions = [ "chemiscope.sphinx" ] + +Furthermore, you need to specify that ``sphinx_gallery`` should use the +custom chemiscope scraper (again, you'll typically add this to a tuple +of other scrapers) + +.. code-block:: python + + sphinx_gallery_conf = { + "image_scrapers": ( ChemiscopeScraper(), ), + } + + + diff --git a/docs/src/python/index.rst b/docs/src/python/index.rst new file mode 100644 index 000000000..0b0b154cb --- /dev/null +++ b/docs/src/python/index.rst @@ -0,0 +1,24 @@ +.. _python-module: + +Python module +============= + +The `chemiscope` package provides utilities to prepare JSON input files, +and to visualize them in a :ref:`jupyter environment `. +The package also provides a small set of utility functions to convert `ase`_ +structure data, and a command-line command to convert structure files to +a JSON input. + +.. toctree:: + :maxdepth: 2 + + installation + cli + reference + jupyter + sphinx + gallery + + +.. _ase: https://wiki.fysik.dtu.dk/ase/index.html + diff --git a/docs/src/python/installation.rst b/docs/src/python/installation.rst new file mode 100644 index 000000000..648530494 --- /dev/null +++ b/docs/src/python/installation.rst @@ -0,0 +1,20 @@ +Installation +------------ + +The latest release of the `chemiscope` Python package can be installed from +the Python package index, using + +.. code-block:: + + pip install chemiscope + +To install a development version, one should instead clone the +`github repository `_, +make sure that all the dependencies (including those needed to compile +the typescript library) are present and then run + +.. code-block:: + + pip install . + +in the main folder. diff --git a/docs/src/manual/jupyter.rst b/docs/src/python/jupyter.rst similarity index 100% rename from docs/src/manual/jupyter.rst rename to docs/src/python/jupyter.rst diff --git a/docs/src/python/reference.rst b/docs/src/python/reference.rst new file mode 100644 index 000000000..2857597d5 --- /dev/null +++ b/docs/src/python/reference.rst @@ -0,0 +1,26 @@ +.. _reference: + +`chemiscope` functions reference +-------------------------------- + +.. autofunction:: chemiscope.write_input + +.. autofunction:: chemiscope.create_input + +.. autofunction:: chemiscope.quick_settings + +.. autofunction:: chemiscope.extract_properties + +.. autofunction:: chemiscope.composition_properties + +.. autofunction:: chemiscope.all_atomic_environments + +.. autofunction:: chemiscope.librascal_atomic_environments + +.. autofunction:: chemiscope.ellipsoid_from_tensor + +.. autofunction:: chemiscope.arrow_from_vector + +.. autofunction:: chemiscope.ase_vectors_to_arrows + +.. autofunction:: chemiscope.ase_tensors_to_ellipsoids diff --git a/docs/src/chemiscope-sphinx.rst b/docs/src/python/sphinx.rst similarity index 90% rename from docs/src/chemiscope-sphinx.rst rename to docs/src/python/sphinx.rst index 09a60f395..b33c0b2d7 100644 --- a/docs/src/chemiscope-sphinx.rst +++ b/docs/src/python/sphinx.rst @@ -1,4 +1,4 @@ -.. _chemiscope-sphinx: +.. _sphinx: Chemiscope in `sphinx` ====================== @@ -34,20 +34,20 @@ simply use the directive .. code-block:: rst - .. chemiscope:: datasets/showcase.json.gz + .. chemiscope:: ../datasets/showcase.json.gz Once compiled, this will show as this widget -.. chemiscope:: datasets/showcase.json.gz +.. chemiscope:: ../datasets/showcase.json.gz The ``structure`` mode will show the structures only -.. chemiscope:: datasets/showcase.json.gz +.. chemiscope:: ../datasets/showcase.json.gz :mode: structure and the ``map`` mode only the property map -.. chemiscope:: datasets/showcase.json.gz +.. chemiscope:: ../datasets/showcase.json.gz :mode: map Viewing a documentation locally diff --git a/python/chemiscope/__init__.py b/python/chemiscope/__init__.py index 76388cc6b..9ad682e7d 100644 --- a/python/chemiscope/__init__.py +++ b/python/chemiscope/__init__.py @@ -13,10 +13,4 @@ ) from .version import __version__ # noqa: F401 -try: - # only import the chemiscope.show function if we have ipywidgets installed. - import ipywidgets # noqa - - from .jupyter import show, show_input # noqa -except ImportError: - pass +from .jupyter import show, show_input # noqa diff --git a/python/chemiscope/jupyter.py b/python/chemiscope/jupyter.py index c338dedeb..d690190b7 100644 --- a/python/chemiscope/jupyter.py +++ b/python/chemiscope/jupyter.py @@ -76,23 +76,10 @@ def __repr__(self, max_length=64): return f"<{class_name}({string_repr})>" def _repr_html_(self): - if not _is_running_in_notebook(): - return """ -

- Interactive chemiscope widgets can only be visualized inside a jupyter notebook. -
- """ - else: + if _is_running_in_notebook(): return self.__repr__() + else: + return "" @ipywidgets.register @@ -241,9 +228,9 @@ def show( .. _ase.Atoms: https://wiki.fysik.dtu.dk/ase/ase/atoms.html """ - if not _is_running_in_notebook(): + if not (_is_running_in_notebook() or _is_running_in_sphinx_gallery()): warnings.warn( - "chemiscope.show only works inside a jupyter notebook", + "chemiscope.show only works in a jupyter notebook or a sphinx build", stacklevel=2, ) @@ -321,3 +308,21 @@ def _is_running_in_notebook(): return False except NameError: return False + + +def _is_running_in_sphinx_gallery(): + """ + Returns true if a file is being executed by sphinx-gallery. + """ + + # This is very hacky: we are relying on the fact that `sphinx_gallery.gen_gallery` + # should only be imported when actually generating the gallery, and is not imported + # otherwise. + try: + import sphinx_gallery + + sphinx_build = hasattr(sphinx_gallery, "gen_gallery") + except ImportError: + sphinx_build = False + + return sphinx_build diff --git a/python/chemiscope/sphinx/__init__.py b/python/chemiscope/sphinx/__init__.py index 23be24861..e0a12e01c 100644 --- a/python/chemiscope/sphinx/__init__.py +++ b/python/chemiscope/sphinx/__init__.py @@ -8,6 +8,7 @@ visit_chemiscope_latex, depart_chemiscope_latex, ) +from .scraper import ChemiscopeScraper # noqa: F401 def setup(app): diff --git a/python/chemiscope/sphinx/file_path_iterator.py b/python/chemiscope/sphinx/file_path_iterator.py new file mode 100644 index 000000000..d9e7f1e8d --- /dev/null +++ b/python/chemiscope/sphinx/file_path_iterator.py @@ -0,0 +1,53 @@ +import uuid + +from sphinx.errors import ExtensionError + + +class FilePathIterator: + """ + Generates unique file names with a defined pattern. + The file names consist of a prefix, an infix (UUID by default), a counter, + and an extension. + + Used in the ChemiscopeScraper to create file names for the saved datasets + next to the generated .rst files (docs/src/examples/_datasets/) + """ + + def __init__(self, prefix="fig", extension=".json.gz"): + """ + Initialize the iterator + + Parameters: + - prefix (str): The prefix for image filenames + - extension (str): The file extension for files + """ + self.prefix = prefix + self.extension = extension + self.counter = 0 + self._stop = 1000000 + self.infix = uuid.uuid4() + + def __iter__(self): + """Iterate over file paths generated by the iterator""" + for _i in range(self._stop): + yield self.next() + else: + raise ExtensionError(f"Generated over {self._stop} files") + + def __next__(self): + """Generates the file name""" + self.counter += 1 + return f"{self.prefix}_{self.infix}_{self.counter:03d}{self.extension}" + + def next(self): + """Return the next file path, with numbering starting at 1""" + return self.__next__() + + def set_infix(self, infix): + """ + Set a new infix identifier to be used in the generated filename + + Parameters: + - infix (str): The string used as an infix + """ + self.infix = infix diff --git a/python/chemiscope/sphinx/scraper.py b/python/chemiscope/sphinx/scraper.py new file mode 100644 index 000000000..c756de42e --- /dev/null +++ b/python/chemiscope/sphinx/scraper.py @@ -0,0 +1,83 @@ +import os +import warnings + +from chemiscope.jupyter import ChemiscopeWidget, MapWidget, StructureWidget + +from .file_path_iterator import FilePathIterator + +warnings.filterwarnings( + "ignore", + message="chemiscope.show only works in a jupyter notebook or a sphinx build", +) + + +class ChemiscopeScraper: + """Custom scraper for Chemiscope visualizations""" + + def __init__(self): + # Create an iterator to generate the file name + self.iterator = FilePathIterator() + + def __repr__(self): + return "ChemiscopeScraper" + + def __call__(self, _block, block_vars, _gallery_conf): + """ + Extracts Chemiscope widget data, saves it .json dataset in the .rst directory + and generates a .rst directive for embedding. + + Triggered on the each output of the script. + + Parameters: + - _block: Unused parameter, a .rst code block + - block_vars (dict): Variables from the executed code block + - _gallery_conf: Unused parameter, sphinx-gallery config + + Returns: + - str: .rst directive for embedding the chemiscope visualization + """ + # Retrieve the chemiscope widget from block variables + widget = block_vars.get("example_globals", {}).get("___") + mode = self.get_widget_mode(widget) + + if mode is not None: + # Get the target directory to save the dataset next to the .rst files + src_file = block_vars.get("target_file") # Python file + rst_dataset_dir = os.path.join(os.path.dirname(src_file), "_datasets") + os.makedirs(rst_dataset_dir, exist_ok=True) + + # Save the related dataset to the directory next to the related .rst file + infix = os.path.splitext(os.path.basename(src_file))[0] + dataset_filename = self.get_dataset_filename(infix) + dataset_file_path = os.path.join(rst_dataset_dir, dataset_filename) + widget.save(dataset_file_path) + + rel_file_path = os.path.join("_datasets", dataset_filename) + + # Return the .rst directive + return self.generate_rst(rel_file_path, mode) + else: + # chemiscope.show is not called + return "" + + def generate_rst(self, filepath, mode): + """Generate a .rst directive for embedding chemiscope widget""" + return f""".. chemiscope:: {filepath} + :mode: {mode} + """ + + def get_widget_mode(self, widget): + """Determine the mode of the chemiscope widget""" + if isinstance(widget, ChemiscopeWidget): + return "default" + elif isinstance(widget, StructureWidget): + return "structure" + elif isinstance(widget, MapWidget): + return "map" + else: + return None + + def get_dataset_filename(self, infix): + """Generate a dataset filename using the file path infix""" + self.iterator.set_infix(infix) + return self.iterator.next() diff --git a/python/examples/.gitignore b/python/examples/.gitignore new file mode 100644 index 000000000..a4097831c --- /dev/null +++ b/python/examples/.gitignore @@ -0,0 +1 @@ +*.json.gz diff --git a/python/examples/README.rst b/python/examples/README.rst new file mode 100644 index 000000000..83d4178c2 --- /dev/null +++ b/python/examples/README.rst @@ -0,0 +1,11 @@ +.. _examples: + +Examples +======== + +This page lists a few examples of visualizations based on chemiscope. +Rather than providing a demonstration of a scientifc application, as for the +examples on `the main page `_, these examples +consist in short Python scripts that demonstrate how to make a chemiscope +viewer file that uses some particular features (e.g. atom coloring or shape +visualization). diff --git a/python/examples/base.py b/python/examples/base.py index 3720e4a06..030a8a5d0 100644 --- a/python/examples/base.py +++ b/python/examples/base.py @@ -8,17 +8,26 @@ """ +# %% +# + import ase.io import chemiscope -# load structures +# %% +# +# Load structures from an extended xyz file + frames = ase.io.read("data/showcase.xyz", ":") -# write the chemiscope input file. use `chemiscope.show` to view directly in a -# Jupyter environment -chemiscope.write_input( - path="showcase.json.gz", +# %% +# +# A chemiscope widget can be used to visualize structures and properties. +# This generates a Chemiscope object that is rendered to an interactive +# widget when executed in a Jupyter notebook. + +chemiscope.show( frames=frames, # quickly extract properties from the ASE frames. nb: if you're doing this for # sharing, don't forget to also include metadata such as units and description @@ -32,3 +41,28 @@ x="ccsd_pol[1]", y="ccsd_pol[2]", color="dipole_ccsd[1]" ), ) + + +# %% +# +# For sharing with collaborators, or when one does not want to use an interactive +# notebook, one can also write a JSON (or compressed JSON) file that contains all +# information about structures and properties, and can be viewed at chemiscope.org +# Save as a file that can be viewed at chemiscope.org + +chemiscope.write_input( + "showcase.json.gz", + frames=frames, + properties=chemiscope.extract_properties(frames, only=["dipole_ccsd", "ccsd_pol"]), + meta=dict(name="Dipole and polarizability"), + settings=chemiscope.quick_settings( + x="ccsd_pol[1]", y="ccsd_pol[2]", color="dipole_ccsd[1]" + ), +) + +# %% +# +# In a notebook it is also possible to load a `.json` file and create an interactive +# widget from it. + +chemiscope.show_input("showcase.json.gz") diff --git a/python/examples/colors.py b/python/examples/colors.py index c77b3b8f3..b6486cb2f 100644 --- a/python/examples/colors.py +++ b/python/examples/colors.py @@ -8,21 +8,30 @@ interactive widget in a Jupyter notebook. """ +# %% +# + import ase.io import numpy as np import chemiscope -# loads a dataset of structures +# %% +# +# Load a dataset of structures containing polarizability and dipole data + frames = ase.io.read("data/alpha-mu.xyz", ":") -# compute some scalar quantities to display as atom coloring +# %% +# +# Compute some scalar quantities to display as atom coloring + polarizability = [] alpha_eigenvalues = [] anisotropy = [] for frame in frames: - # center in the box + # center molecule in the box frame.positions += frame.cell.diagonal() * 0.5 for axx, ayy, azz, axy, axz, ayz in zip( frame.arrays["axx"], @@ -42,18 +51,20 @@ anisotropy.append(eigenvalues[2] - eigenvalues[0]) +# %% +# +# Create a visualization and save it as a file that can be viewed at chemiscope.org -# now we just write the chemiscope input file chemiscope.write_input( "colors-example.json.gz", frames=frames, - # properties can be extracted from the ASE.Atoms frames + # properties can also be extracted from the ASE.Atoms frames properties={ "polarizability": np.vstack(polarizability), "anisotropy": np.vstack(anisotropy), "alpha_eigenvalues": np.vstack(alpha_eigenvalues), }, - # the write_input function also allows defining the default visualization settings + # it is also possible to define the default visualization settings settings={ "map": { "x": {"property": "alpha_eigenvalues[1]"}, @@ -68,6 +79,14 @@ ], }, # the properties we want to visualise are atomic properties - in order to view them - # in the map panel, we must indicate that all atoms are environment centers + # in map panel we must indicate the list of environments (all atoms in this case) environments=chemiscope.all_atomic_environments(frames), ) + + +# %% +# +# The file can also be viewed in a notebook. Use `chemiscope.show` above to bypass the +# creation of a JSON file and directly create a viewer. + +chemiscope.show_input("colors-example.json.gz") diff --git a/python/examples/shapes.py b/python/examples/shapes.py index fbd3a92fd..e68badbe6 100644 --- a/python/examples/shapes.py +++ b/python/examples/shapes.py @@ -1,22 +1,29 @@ """ -Extended shape visualization in chemiscope -========================================== +Shape visualization +=================== -This example demonstrates how to visualize structure and atomic properties in the -structure panel, using different types of predefined shapes (ellipsoids for tensors, -arrows for vectors). The example also shows how to define custom shapes. +This example demonstrates how to visualize structure and atomic +properties in the structure panel, using different types of +predefined shapes (ellipsoids for tensors, arrows for vectors). +The example also shows how to define custom shapes. Note that the same parameters can be used with `chemiscope.show` to visualize an interactive widget in a Jupyter notebook. """ +# %% +# + import ase.io import numpy as np from scipy.spatial.transform import Rotation import chemiscope -# loads a dataset of structures +# %% +# +# Loads a dataset of structures + frames = ase.io.read("data/alpha-mu.xyz", ":") quaternions = [] @@ -48,12 +55,20 @@ R[:, -1] = vec quaternions.append(Rotation.from_matrix(R).as_quat()) -# here we define shapes that will later be used to create the input; +# %% +# +# Shapes generation +# ----------------- +# +# Here we define shapes that will later be used to create the input; # input generation can also be achieved as a single call, but in practice # it is wise to define separate entities for better readability -# cubes with smooth shading, centered on atoms. these are created as +# %% +# +# Cubes with smooth shading, centered on atoms. these are created as # "custom" shapes and then are just scaled to atom-dependent sizes + atom_sizes = {"O": 0.4, "N": 0.5, "C": 0.45, "H": 0.2} smooth_cubes = dict( kind="custom", @@ -94,8 +109,11 @@ }, ) -# structure-based shapes. also demonstrates how to achieve sharp-edge shading. +# %% +# +# Structure-based shapes. also demonstrates how to achieve sharp-edge shading. # requires defining multiple times the same vertices + sharp_cubes = dict( kind="custom", parameters={ @@ -156,7 +174,9 @@ }, ) -# loads vertices and simplices from an external file +# %% +# +# Load vertices and simplices from an external file # and use it to draw a very irreverent molecule irreverent_dict = np.load("data/irreverence.npz") irreverent_shape = dict( @@ -173,7 +193,10 @@ ], }, ) -# dipole moments visualized as arrows. this is just to demonstrate manual insertion, + +# %% +# +# Dipole moments visualized as arrows. this is just to demonstrate manual insertion, # see below to extract directly from the ASE info dipoles_manual = ( dict( @@ -199,6 +222,7 @@ ), ) + dipoles_auto = chemiscope.ase_vectors_to_arrows(frames, "dipole_ccsd", scale=0.5) # one can always update the defaults created by these automatic functions dipoles_auto["parameters"]["global"] = { @@ -212,6 +236,10 @@ ]: # center the dipoles close to the molecule d["position"] = [11, 11, 11] +# %% +# +# Create a visualization and save it as a file that can be viewed at chemiscope.org + chemiscope.write_input( "shapes-example.json.gz", frames=frames, @@ -262,3 +290,11 @@ }, environments=chemiscope.all_atomic_environments(frames), ) + + +# %% +# +# The file can also be viewed in a notebook. Use `chemiscope.show` above to bypass the +# creation of a JSON file and directly create a viewer. + +chemiscope.show_input("shapes-example.json.gz", mode="structure") diff --git a/python/examples/structure_map.py b/python/examples/structure_map.py index 4e07dc465..7085d3dbe 100644 --- a/python/examples/structure_map.py +++ b/python/examples/structure_map.py @@ -1,6 +1,6 @@ """ -Structure-property maps in chemiscope -===================================== +Structure-property maps +======================= This example demonstrates the visualization of structures (or environments) using data-driven descriptors of their geometry, to cluster together similar motifs. Here the @@ -11,27 +11,39 @@ widget in a Jupyter notebook. """ +# %% +# + import ase.io import numpy as np import chemiscope -# load structures +# %% +# Load structures + frames = ase.io.read("data/trajectory.xyz", ":") -# load the SOAP-PCA descriptors. chemiscope does not provide -# analysis routines, but you can look up for instance +# %% +# +# Load the SOAP-PCA descriptors. chemiscope does not provide +# analysis routines (yet), but you can look up for instance # scikit-matter as a package to do dimensionality reduction # analyses. + pca_atom = np.loadtxt("data/trajectory-pca_atom.dat") pca_struc = np.loadtxt("data/trajectory-pca_structure.dat") -# when both environments and structure property are present -# only environment properties are shown. still they can be stored, +# %% +# +# When both environments and structure property are present +# only environment properties are shown. Still they can be stored, # and future versions of chemiscope may allow switching between # the two modes. +# # NB: if there are properties stored in the ASE frames, you can extract # them with chemiscope.extract_properties(frames) + properties = { # concise definition of a property, with just an array and the type # inferred by the size @@ -46,7 +58,9 @@ }, } -# environment descriptors have only been computed for C and O atoms. +# %% +# +# Environment descriptors have only been computed for C and O atoms. # we use a mask and then a utility function to generate the proper # list of environments for frame in frames: @@ -56,9 +70,13 @@ environments = chemiscope.librascal_atomic_environments(frames, cutoff=4.0) -# write the chemiscope input file. + +# %% +# +# Create a visualization and save it as a file that can be viewed at chemiscope.org + chemiscope.write_input( - path="trajectory-pca.json.gz", + "trajectory-pca.json.gz", # dataset metadata can also be included, to provide a self-contained description # of the data, authors and references meta={ @@ -83,3 +101,10 @@ "structure": [{"keepOrientation": True, "playbackDelay": 100}] }, ) + +# %% +# +# The file can also be viewed in a notebook. Use `chemiscope.show` above to bypass the +# creation of a JSON file and directly create a viewer. + +chemiscope.show_input("trajectory-pca.json.gz") diff --git a/python/examples/trajectory.py b/python/examples/trajectory.py index a5e9aad81..7529fdc64 100644 --- a/python/examples/trajectory.py +++ b/python/examples/trajectory.py @@ -9,12 +9,17 @@ widget in a Jupyter notebook. """ +# %% +# + import ase.io import numpy as np import chemiscope -# load structures +# %% +# +# Load structures and properties frames = ase.io.read("data/trajectory.xyz", ":") properties = { @@ -30,9 +35,13 @@ }, } -# write the chemiscope input file. + +# %% +# +# Create a visualization and save it as a file that can be viewed at chemiscope.org + chemiscope.write_input( - path="trajectory-md.json.gz", + "trajectory-md.json.gz", # dataset metadata can also be included, to provide a self-contained description # of the data, authors and references meta={ @@ -67,3 +76,10 @@ ] }, ) + +# %% +# +# The file can also be viewed in a notebook. Use `chemiscope.show` above to bypass the +# creation of a JSON file and directly create a viewer. + +chemiscope.show_input("trajectory-md.json.gz") diff --git a/python/jupyter/src/widget.ts b/python/jupyter/src/widget.ts index b0ca3ca85..49628733f 100644 --- a/python/jupyter/src/widget.ts +++ b/python/jupyter/src/widget.ts @@ -122,7 +122,6 @@ export class ChemiscopeView extends ChemiscopeBaseView {
- `; @@ -205,7 +204,6 @@ export class StructureView extends ChemiscopeBaseView {
- `; @@ -287,7 +285,6 @@ export class MapView extends ChemiscopeBaseView {
- `; diff --git a/tox.ini b/tox.ini index 245285dad..edca19019 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,11 @@ [tox] -min_version = 4.14.0 +# https://github.com/tox-dev/tox/issues/3238 +requires = tox==4.14.0 + envlist = lint tests - [testenv] package = external package_env = build @@ -65,7 +66,7 @@ description = Build chemiscope documentation deps = -r docs/requirements.txt -allowlist_externals = +allowlist_externals = npm commands = npm run api-docs