././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.1076665 stem-1.8.2/0000755000175000017510000000000000000000000011212 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/LICENSE0000644000175000017510000001674300000000000012232 0ustar00useruser GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685609150.0 stem-1.8.2/MANIFEST.in0000644000175000017510000000063300000000000012752 0ustar00useruserinclude cache_fallback_directories.py include cache_manual.py include LICENSE include README.md include MANIFEST.in include requirements.txt include run_tests.py include tox.ini graft docs graft test global-exclude __pycache__ global-exclude *.orig global-exclude *.pyc global-exclude *.swp global-exclude *.swo global-exclude .tox global-exclude *~ recursive-exclude test/data * recursive-exclude docs/_build *././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.1076665 stem-1.8.2/PKG-INFO0000644000175000017510000000244700000000000012316 0ustar00useruserMetadata-Version: 2.1 Name: stem Version: 1.8.2 Summary: Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/). Home-page: https://stem.torproject.org/ Author: Damian Johnson Author-email: atagar@torproject.org License: LGPLv3 Keywords: tor onion controller Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) Classifier: Topic :: Security Classifier: Topic :: Software Development :: Libraries :: Python Modules License-File: LICENSE For tutorials and API documentation see `Stem's homepage `_. Quick Start ----------- To install you can either use... :: pip install stem ... or install from the source tarball. Stem supports both the python 2.x and 3.x series. To use its python3 counterpart you simply need to install using that version of python. :: python3 setup.py install After that, give some `tutorials `_ a try! For questions or to discuss project ideas we're available on `irc `_ and the `tor-dev@ email list `_. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/README.md0000644000175000017510000000145000000000000012471 0ustar00useruser## Stem (Python Tor Library) **NOTE**: Stem is mostly unmaintained. However, you can still: * Open issues at * Work on an issue and open a pull request at * Contact us (via tor-dev mailing list or gk at torproject dot org) to request a new bugfix release including some patches in the Stem's `master` branch or pull requests. Stem is a Python controller library for **[Tor](https://www.torproject.org/)**. With it you can use Tor's [control protocol](https://gitweb.torproject.org/torspec.git/tree/control-spec.txt) to script against the Tor process, or build things such as [Nyx](https://nyx.torproject.org/). Documentation and tutorials available at **[stem.torproject.org](https://stem.torproject.org/)**. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/cache_fallback_directories.py0000755000175000017510000000363200000000000017051 0ustar00useruser#!/usr/bin/env python # Copyright 2016-2019, Damian Johnson and The Tor Project # See LICENSE for licensing information """ Caches tor's latest fallback directories. """ import re import sys import stem.directory import stem.util.system try: # account for urllib's change between python 2.x and 3.x import urllib.request as urllib except ImportError: import urllib2 as urllib GITWEB_FALLBACK_LOG = 'https://gitweb.torproject.org/tor.git/log/src/app/config/fallback_dirs.inc' FALLBACK_DIR_LINK = "href='/tor.git/commit/src/app/config/fallback_dirs.inc\\?id=([^']*)'" if __name__ == '__main__': try: fallback_dir_page = urllib.urlopen(GITWEB_FALLBACK_LOG).read() fallback_dir_commit = re.search(FALLBACK_DIR_LINK, fallback_dir_page).group(1) except: print("Unable to determine the latest commit to edit tor's fallback directories: %s" % sys.exc_info()[1]) sys.exit(1) try: stem_commit = stem.util.system.call('git rev-parse HEAD')[0] except IOError as exc: print("Unable to determine stem's current commit: %s" % exc) sys.exit(1) print('Latest tor commit editing fallback directories: %s' % fallback_dir_commit) print('Current stem commit: %s' % stem_commit) print('') cached_fallback_directories = stem.directory.Fallback.from_cache() latest_fallback_directories = stem.directory.Fallback.from_remote() if cached_fallback_directories == latest_fallback_directories: print('Fallback directories are already up to date, nothing to do.') sys.exit(0) # all fallbacks have the same header metadata, so just picking one headers = latest_fallback_directories.values()[0].header if latest_fallback_directories else None print('Differences detected...\n') print(stem.directory._fallback_directory_differences(cached_fallback_directories, latest_fallback_directories)) stem.directory.Fallback._write(latest_fallback_directories, fallback_dir_commit, stem_commit, headers) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/cache_manual.py0000755000175000017510000000403400000000000014170 0ustar00useruser#!/usr/bin/env python # Copyright 2015-2019, Damian Johnson and The Tor Project # See LICENSE for licensing information """ Caches tor's latest manual content. Run this to pick new man page changes. """ import re import sys import stem.manual import stem.util.system try: # account for urllib's change between python 2.x and 3.x import urllib.request as urllib except ImportError: import urllib2 as urllib GITWEB_MAN_LOG = 'https://gitweb.torproject.org/tor.git/log/doc/tor.1.txt' MAN_LOG_LINK = "href='/tor.git/commit/doc/tor.1.txt\\?id=([^']*)'" if __name__ == '__main__': try: man_log_page = urllib.urlopen(GITWEB_MAN_LOG).read() man_commit = re.search(MAN_LOG_LINK, man_log_page).group(1) except: print("Unable to determine the latest commit to edit tor's man page: %s" % sys.exc_info()[1]) sys.exit(1) try: stem_commit = stem.util.system.call('git rev-parse HEAD')[0] except IOError as exc: print("Unable to determine stem's current commit: %s" % exc) sys.exit(1) print('Latest tor commit editing man page: %s' % man_commit) print('Current stem commit: %s' % stem_commit) print('') try: cached_manual = stem.manual.Manual.from_cache() db_schema = cached_manual.schema except stem.manual.SchemaMismatch as exc: cached_manual, db_schema = None, exc.database_schema except IOError: cached_manual, db_schema = None, None # local copy has been deleted if db_schema != stem.manual.SCHEMA_VERSION: print('Cached database schema is out of date (was %s, but current version is %s)' % (db_schema, stem.manual.SCHEMA_VERSION)) cached_manual = None latest_manual = stem.manual.Manual.from_remote() if cached_manual: if cached_manual == latest_manual: print('Manual information is already up to date, nothing to do.') sys.exit(0) print('Differences detected...\n') print(stem.manual._manual_differences(cached_manual, latest_manual)) latest_manual.man_commit = man_commit latest_manual.stem_commit = stem_commit latest_manual.save(stem.manual.CACHE_PATH) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0196657 stem-1.8.2/docs/0000755000175000017510000000000000000000000012142 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1547803776.0 stem-1.8.2/docs/Makefile0000644000175000017510000001100500000000000013577 0ustar00useruser# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf $(BUILDDIR)/* @rm -f ./stem.* ./modules.rst html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Stem.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Stem.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/Stem" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Stem" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.023666 stem-1.8.2/docs/_static/0000755000175000017510000000000000000000000013570 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/bandwidth_graph_output.png0000644000175000017510000002077600000000000021057 0ustar00useruserPNG  IHDRtfsRGB pHYs  tIME ; IDATxytս<00 GZ,J[P{E YNuUҪv^zEk奢0^0&IxN3!2_?9yo>gD @$I:q$I2J$IP\/? RH%5cJ( ;8(zg !?lV Y[~ۗ? ys9sDbT{Wx}.>o"\`C<c߿NI/@ZZczknۻ XIش &Jokѣ&ԉ+VSO5+oԩ,]Je%qq{.#F0hPB~[?&'sGh"ڷgF}eW^w~eHW^a\ ࡇLJMi৤;SIx'd;[<&2yF}?y=̟v iL+lN%,#t1̟sI'>N38#|g0in0@aN,޼7Y]u1/g˼Otur"?OLG:gkW<۷С}6ЮӭKsTTQ399s}5ݻsό3ɋ(PG^eYduPI:%ETdH.v}deo1}黕i_vaǭ\r+]{ҳ޳ٽ hם﹄l'?9mF6>3˽G \_]<#kYraӽ lG)H=9 ofI?姵-bObR.{[b}ȇe eiVo[زmՙu:my`F& fu'|wNM7SRYgy3۶ѽ;=z@a!yyEerrsٿ]YL{76Ю*u%%lH~>~mD3ϽҶ֠J'1ر,^7 ?̺udgsŇY'$%ӟ9'3`b&M"7{PwڇRVСVLe ۶ѫI"n}w?,d<1iXՇ>Xnۏ~wrgqà-Y]FY̓4۾ۯj\|ǿw~9!wrg؉Ʒmsf0+k?>SZ@Aei7pWj7$02/aH EM`B%@st2\aݺ#3n>cSR^ CW^ 7DΖ-^MYL2hk$oͫF?|Pc~;G$Cp5;߶:eeS?ϟӾ=^{x9֍:aݼɓƍd'>fNd\N Z&IKjM$!c?_fȐ0Jx -26\YYMgsbK@v<:QYdfv|ga[Ǻh#c]Ǻ 2.,\k9.ЉN䦑61av a46: L,X?jr&Q$^|[@?;sd_2ʮ㺃byE哿UT bPC.ve՗5;Oc~_ɕ$bzWw?aM.\Xbc2x,u*[҅>b./楗Co#5Q:u"74 &9sX<aڴhMJ⣺n6~kbb:ΝY iߞmElHb"T&y>tF8lg|9}ĺu$'sS'Kկ(+yyςTU1hPî]deѷLR^δiϕW̪U_Oe޽׏5kep2Il,11TV6w@tFX լþhFf4p 4-:vhox0֬a͚6)N2C@"A}0:ƯMlZb2O6! ?Be7%{[ٺ={ |g71:#SL2߶IkXtk#ߓCΟSkY[H<1I綕+XюvV{ 2#.:7ӿC3rmo>t˩jb~zD#׀ho_9pmۢ=%%[g{|-Zή[Y\kiU;vĶM5]*Ivg?̝۶-^Ⱦ}q?Cq晇S'۱oSqB~>kRXO0iRԭ[YvVLAVyyu7Idt^nnOuLJ͉;fRJ8[Lml':®c]&跅-IM8xe T5~\`+p:iaDK@:롆=ԞpUƷmRFZ?q;3c'y>[’9̩=\TDܱMXUG.˸'0u^ŬE,ZĢ8~?xpq8)%&H W Pgt@l,woud8:wf6V'HK?4RWjÿD_Hx&mNrp\2fLfd7,ZĬYaxA%K3pU룣c6mbժ<v^vYO3kh709|IsYG^Hoz'[_bwk*Y\Lq?Y{ahkVI\<Ͽ _u25^}ܶIa#bW~ʧOTeο_EyH@xW'`ՓJemHZZWpE~<-h XpN2P3[;: u߾UO$=&ph :\\|1? /xvn:-uƎ[%_OmN2ņWq/6|`ժé t7Ju/5+6Z&kҺ⊆?ڵcR4P&gZ&#f~|ps[Ji@!iWU@_魒5?nc.TJi[<r k? 0ƅUOj|&#|{~/ )k7/d<2=K\~%, kჳUF`VyKXRFY*#5ƿRσz2-ު^YB:dd̞MA$'ӥ,S\L0>[sܹ|!A@ZZC4\ੴyud99m?[±3gFc\e%Lj|ۦd_8'm0υ眑Q ;^ի8pYr7P&dɒhx͈If͢XK+/%K(+#5#_C)ܚ?ɹVҩPDQ>_9g2NvcM[g:}=ٜ! XMv1Ż LejG:&Kйs)^b;i ~/TJ'y7)ΎtgNp԰#7!e, hy\6縗qe\`E*rk mhuS{Rݧ2ICO&6ӟm! ?ֻV %Ց#{3pTñЅ./b-|=XGbdgY vPvleCZbOJj+(ؑ iۖo%OIIkڰl-м<>2I׮<${S\Νtw̦2. ` RS:}mCtDA{)))LĐ!dzi11_߶:Cuk{ F۶vC='j2`UU]Kn\s O>yt{xEj =cѹ\s'YY wСt5lʀqCIxbi'mK)--ZG#ǭFNRh@ރѺoۈ2k:;K()8\DQHa2 .ؑOTfo %{6DTTDEED}\x/9zaO:7Tu2KI9䚣AY5mcu2$'k庆d;0P\p k:YHrri\ĉtSO{T_ߒCtJ}w8i 9n 1RI iI&P߶|/琳)=O.K$Ur zGuK8&HJYðadd|$;ݼbbWRRc-D;ƷmNFaRRv C|!AD{c֮ ]G w}-R46XJ"A >SS *Vr820\@jd SS Vdplڷ)HHZ'|x%IFX}V)I:E7.m@$IFXI$j\A?>ǒKnmӿ?ْ%{o/9׿nH:Y^/ 5>s`m}Ijl9F]{X~m"$z V^{rw]Z‚+݅C%a[Ȳe3w̾4*I-_cϜ3;RSD+ $xc=Rz\񢲪ŠB]ZƾG.XVVUXXaH2¶-%[zg=Ҿ_޲+l}IjW{Yھ_v-,Zfd=Z[f.,]6|Ko/~kέ$LZrٲ_}{魷,Nb42HΘ|H,0K}8lcƞ=t52H<0a— pƢ=SmI'VL=̯,HR ̔ݓ {n;`2H2f];]Ħ\~@Z혝ghpWJJ{kIFأssϛG9swتFv'\5#GΛ9s;l{U#GvOMe$aJrlϮ*~m\I'2569vWTÇٶmܤImI'HyDbǷDGy6Dؽbb".2thȴL:tjlAҩ &$IV$I:NhI2F[Yh;l 셕$I +I$#$Id$I$I2J$IFXI$+I$#$Id$I$I2J$IFXI$+I$#$Id$I$I2J$IǍSGGy6sNwѼcr|Z7"k`,_Qq^{a%It1J$+I$a%I$#$I$IV$I2J$+I$a%I$#$I$IV$I2J$+I$a%I$#$I$Iq#&8F FhJ:k]dzc?/丧Z[}Q{>WΞ[}e/$IN0FXI$a%I$#$Id$IV$I2J$IFXI$a%I$#$Id$IV$I2J$IFXI$a%I$#$Id$IV$I:n:"#'ܞRW!:~d sh^XI$`$I2J$IFXI$+I$#$Id$I$I2J$IFXI$+I$#$Id$I$I2J$IFXI$+I$#$It܈;_[dz me;tի/dA0 9/5{a%Id$I$IV$IFXI$+I$a%Id$I$IV$IFXI$+I$a%Id$I$IV$IFXI$+I$HMxS{yEiL`WAjٟ#{a%It1J$+I$a%I$#$I$IV$I2J$+I$a%I$#$I$IV$I2J$+I$a%I$#$I$Iq#q}~#^$I'`tps$2 'Ĩ_ +IV$I'<ػߝ{^n=m}Ijyvwt3tk^{;:{ʂ/t./XnKR{reK/]x˗&Nb4kE{ksGT\At.I'/p:׊75dTU#F̭>kӹ$(5 5mݯɸy杳v\!I-Pcm=k2ȝw9k֮͛mI'Vk6 V[k VSc\ϖd=*;vה;Jwx$jβQjH2ؤ/c"/$@-HJ1@QQ-#{TZpIDAT kdž I-Pcӓ kjlA9йs-#{T%uVہI]5[Ҷm%55v{)еk-#{TFth}ѹ6 I-PcGt]h}юؿ}gfH23E71c⪉7)96 I-Pc)ΘcU7399֖tj[k ׌?j徕IIe^7)1M6tomYS8j+%%^w])7I $05 Z/†vn.!&+]~ftFظV>|N^I:V5H:%$I2J$IPk$I$I2J$IFXI$|8@EiIENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.023666 stem-1.8.2/docs/_static/buttons/0000755000175000017510000000000000000000000015266 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/api.png0000644000175000017510000006105600000000000016555 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME+ IDATxkvWU&{{|$Ej4Jq4TSe?:ޫPh%ǎtc%b Cn$}^X2Ɯs%CثKo]k9ǜc1p-|<:~- /| ?m6s_md$Rxͼ7UVKu!Ftj=8꫃a*{&kYlol6=z;;;=8^up\!ܷƵӧOc:zS|>9ߵ{6;\ֆ[}O>s̼*-ryT|CsQ80o뛙?Ag?A1k Jsvgg"[nkx<_-FkcMMyL*hzz4wp== =Ξt>n4+aSǛ8G͹233AD{|8mۡ:B5j 3O u]{odKߴf=qV`?֔Y A Y"@u-f> Y[ԕQQTU45AUW+@ T*@@/m9oH}o@0Ͱ?XzvbwogΞ8;e:ijz@.tdߏDWM! Ɇ995AaZ5vE7cS|Mhug q?g r7T'3t!e d1ujnhw?p ̮D}q\{NS[(F%F`G䭜#,h T bp! *0ƍnZOm[-񑯝?O145t2UGԣslOP5uo[EG_8`% W5aaSEߘŎ!.e(NXT-#e7.Gߋ$:7cPyr 9Q8Tt,678xƇ%.$D9f&b{/6P3gP}'K\5do1:+`߹~R i|׿ DYП:a~;cQNU(W0#N$-dXU? ٍTΔt ]!$roL&F9|F5o<!Up|&Lbg-!]}j4W0r6L2)+rkg't#CAɐ`P11.|ծ<Dv;m1 mC[CUÂ50-g::0[h;²E $.xw;#M3 ؃et/v=#-ᥗ3.kv1jFu@G$T |L*.ԋk-\%862$*$q }/ P+eҩKޛQmN]vwVLovH nNb&)gՏ[4YKEq+v:rE>m9 ֌C'b2=&{Q**d8jGuAt}MdkӮ~FR)dmA٭CK @6D*kntf@Dd=H+Jv̺qɦt\Y$/3V6Ȉ&IIWeD)č*A46(  Ĺ`⨸ZugCݍĦ̽~^;"Ok}(8OXD^6 JAnk}`T rEK@@ w]A$**}[&0m.`>cC:f$%Z 20y&f Z5j邁F \|ܥK(%If7d.mNK C#I#eJpe3|zAM’ڪ}>x2 B6i\) 1n VLhr?9-ó+k2-b50CvmjS_f>I8Kce#ph"r` m#ƒzL*r띷,4l1&쌁  v&;t]::߫p /hϜmc f&7JyҏHpx쬶7Zج!)K 8=dԃ| 4P //2YSPc31 \m|LS%Eut'nixj(q`6:Sm| Nĺf^'Vi{:wiM6N"SLSTX|cB]@%Đ5X r~R<$ڛnHN 9p;_:(Qrb61"IҳĄPJSjdgJE0! m ' '1@k(v]4^5n~ 6iTPǪv,xS(ɚuhmYdX_vxd 8Ih\3QW@:CP7S}zQNKM"#elj J|u""cA:b'; 6`4J8ԕ8kIp`؊Min z4{(t_`IH]SZa|TX1"E0ZDr#"'(+z`U~,b"BSCx`O#8)r  Qk?}}_vPo &:d||,rgwUVvXVJں(rʈcsvKH'bm6AqM@9$Sh僒Yh͗Iwl TQrq^[РzÔ2u?_| kOS'Brӊj%vbp}d{ڬI q'{{I4vyWj5O!Pp,"jbw&u M#y+!s:.=9+(Nvؖ}9QGE ])i|P`6ocqE#[DwucgDt69:렑}`|F\x#gu`?IҿibxXɨmD'lH:Qe6`L焚"})̳[<'s"_̻#V*t:#*1VӇl@H^@h\/ Hs .;t~ I`/>2m=nJ&+t踿 U3H ZUEWm@xè*dsp^ CBCu`c@2#+l~ X+}Wn@{#+Fݻ.=PVkZukYά_)O sdȎJ{&d ~v(1MCC;d ̗& ͭ1A0"< Npح:y/z؇mۡ&S13#F wzu%3鴷V;`;Yw2rr(\G`0mPѹf:?:qW3P X>P1|.ڎîzQhBݙI])ovQT?&82o;32. Rgu͘! -}poUSĆ>%,_2DA4+>EQ]md;v'U(ut5|ax4 .P ,TL,k+U[Tк[T=XS!gr mE ~HQ\㎔K2P7p,$?Rt gж`w!7tnҔ}|S͔!S7ńVb=)g!kxoDIՐS`kbAuj8 5`` R4Pke/5)A:)r,>`d1qm()*P5$ð6&6fhrҹثq*8tKusOΟ`%kIܡ5*T Ti%؛X=zUQ8&+ThU+꾠'qjxs3BEW`wNn0wܸ?&vd5vuХѪG(5S9RY4)&0 TwUIGT\DQv*X";W .\rx򓟂xX9% S'O/})N>}~^2* ' MYz, OCLTVhJkr6a/Mu]Ɩ aOj,;$"(1 }Y~ ±&"V+5-I[;tGG}V}VL@`d0 d Hx: 8ltZ' "fK*ꌃ%T@h>͊>5ԖATp4P!pwq$Jy:vZp4H f: j}0Y *w-W`Wa0/ IYs:AD;$Gv8*MKҋT``tTUk`v-O84NjHQWTr2T*g̗-N.qjw3H:!#-rQ|;]w݅/}Kq xfgg೟,ʝG-UW]q}̙3ŝwމ;'K^^p íފg <}>P|7x{\˜ڝ$Lv' NrEYlrGjkdrM2v2y Kq(9g4=_E1dr"jVV@nT7l0aW&z'(`ݤ8:ip8_ؠœ 2G)"vJX=2P" :b2?.zQ !lp0.cg\ v@UU@Sc[X*ޮpdBSW{؛3ȳUF5a{Ra:"l 'Ԍeâ,;F8)Z,~V ͏`2c2k©*g.>.^O?{,^b7tӣ??ooe?ߌWUw o|&o|'>^UǷp>^މ}MxSNy{ݡ DTafg+1+z8wyO8/ݷZXR$%9g];"} t9 Q L a{`{L [ *|ʽ?ܳ)df -I35@z`MӺDV3@~/8s?~;M%jCw=ߤ1 \yO|k}s;ozӛpw770BW_S<padK:#^4RD1*KƒhItq%SvHzk@1c>]g"g\E_K;Ӑ'Ҩ.Gbaϡ`i(xk9vn2<12,jpöa+0j3Q1|v!Mj%قm$JheCXdRْ JO}!|'Z`\:~Ucs_ b\mw/r #;`Qw4L,:V40,-^K~TF ;/+,|YLC@3D(;)%Q G$P:NwJt~wvov񜔔΁a7t-[& p_VV>&&7ҽUVzGj An QøDߵttS_bead 'Y[7˪wQZZL q=TjkY# UUo^}{ګFxsqP1߹e? >_\EQRԃf^~ LGj'Jb"kS*zvP IG#?_jTK%CERlבGgk_-W?濹99);չgXe[H&"U'ֽȔ4GqXm!E?&g*F]8 !3%Cŏ9b?S)l>Ѻ[ǹ ^_"VK?{qH2SLeZ8v`>-#vXB]$%P$> y&{#QmцaLZ{@ { !3JTJN׾R& cזpDO0H9@ԡf`Azz37M IDAT5S8)ਪP&&ඇ𿾸zo]Lؚ杠ۼqn`+J&c;Q5Jrk3A1oL|;W^yibM7kd|I&Z][qcG=߃>wtyPGjQpqqj> .|Y[9Zvl?G )C=O~]#go bM\Y+~̠c7s.f)Oqb}r!͸/v Di,Tr [Nݛ:}$+ '6tx0_>fcG9q>ޖYEbƁ㭙%Q񝣜zܩ Q2X'?0ltʯO})0:L<+bY|k[`b]&pfW?T԰韥5w7NSD'&ƇPTLJGo}9,qi|x±9>Ѣ1GBLkmd``&Y9 $Yj)AD]w݅|#o{W o=xz}nDg]\g_<* 1IjPy4$`un\e1-0b2W*s]?-l\/eC$_KiԳyO7i)[mR9YoE Mf ؖlVB,fm5N;|fj"0oWͩQC[w̱?.lԮw7FR irԿ#GQQMh^)Oy ~д顇__4g):.h9> <̾bV50Я(?Xy$f3) ځdMj $)I>`)73"̥&˔͗;ԙ`wp錦T-I]-Ha`o&-^nv {d ;`)umy)~)k. ,n칸vRD~ f-0DR/!q$=Kzg+*TU&a!:~`r[Tڷ tx!a/ih$XP>Qui^e]9T"$y]^س]m?OT:SŬ.UˡO4ervWϜr'u \a]z)QS6\ۿo_G?.o調l9&>c bl X oCljPN}aJJ>Ѫ|:MKѾcqHP^@,E`!=l pa)vj߶KtK0Pe Q}9nZ0=P>c85uȩV+Ӧl~?]uzhnZԉP5cLv.):ObR38~rG6o~258Ae:$Y6c,D̹%ȱdb֨6c٭@IV;O=K2:ɜ$X@X݁ٓ%E_T_D2!c ీNMʈ6`MċPwl1N0{NlY*Dg$9fnb" b>/rP}RDJ.^gkGSivblM'U{_ϞŃg9WV'[HǍ?I9١sWWdTN%^g&2 kuC֋Dɡ?iOII TF,u+Iv:2`s~ln2JUԙ(a* b-Y:r2EЯE  gZpp2dk2(b<N 4# LǛ{72lPg`nT]W\78(byVXWtG3OhQ>:- c4렧فzwDQDcx4Ce:<&{FGN~DvIE-O|_n}/=_]+6t!Ωߞ}f;sIpX w8/:ש*ldRt۩;u`t>N}xu`ʠ5Se5,H:N}]oS_kS2#VhBo)%9SʄR$iSLZn$c3 dG]2.m #H)ˡfHq+1-i˸4O 4u%1=;h0AJZc-i ]/$gCs'ow&,Z[ 5(ORBI:Vh&Oph}BI66dxO8'Ɏ0(03ޡ[#]1Q5eMQo;v=\T?Ivm<`‰]~xΓ<ut%clI`0 -c^K&;I^P6^RD7H*;J HJD t{גˮE:ҏ0%ʤ58kqTJPvC'Jد^OHD.L29< jFI I^RRB|\!j0UA>J 2D4Yf/4Bduru3ڶœ/D;>gLqh ]7CM3q%9'ڡiqa-I4*b8B$d,_ދp⪫b#G_]''nAR ]+'&&O~?~~1s3ut؁.9bt] \Nѣ~ξIеM8eDs,U&1wAv\- " ٷb\ 6=P%كbU l jڐjBrX b:Aq-9#2Oh!gEd";uO\NO(K7^@D8 M,bʁۈrjpٖ.Yܭ> C68Y1kE$ bEnlJA ?9! 8 D_∰z<(%?{㉂3}JEº*X 1UG>/.wIb0EvmbwYX2vVu J{A@{UC--%1*W[d-9{FqnjR:*t,DjC"jR,uA U+KE\2XNzsCʅlUmVdE6JHnoC R" }/5GD 4"8)cVj0w]a>%Lv?u\1H$d&U{ǧ5}dQU51Ϝ`gk T*=#*'Tuijz# 'N^뮻ng<Ƨ?}kҗQk篺|{_W}.z)~ #(C2n=_qnRS`:Rn"AG~GP#]}k_k:a{K^2ؚX_.QUf%.<~\z).R\ve˰,WE`r% A\H;B g B*MW{l zX&ĚbmJ/Z[W Mew)*[/ݘ-hI!\j]BRT.!nc%*%MD t:d=U-ʾ0fd|$bJs8qIG+.خ>3%#. Rd-2B#MeꁇW$xvQߺ0mwhGkl,ZB5ITZ~@zh^cb9KP9l0ޤ>೟,_ji. 7._rΛބN|뭷n5\m#%8g&~r^.8I`*fP# 4 )4SUbp'kPRB `k|\ )яh++'NL 96xdyTm! $vK &d S\kO V9SoAD@ԃ\GB۠0;)ڹu"OI0w cңwNlyz%!I!Rj7P"*0eٱ Ӹ+k[|^ 0,RVSJiH$b7vkgXH=e9;w^Wl,88 cg8=]S,0mfh}z#ڱx3&=؟PƨfEiEG!n2+mGzߏr<)//նm?3?s\:6bBt@c6I_;=::SHU{q'[#Ƥ^D"ømq1>Y_Nv 'u\@de752NdS6zة7"K2"3GK}ux!\}5HV& Hyk?ǟd2Y 2$czD3fБ\ڔfR5Mo^H9L1æ%`,K @l1[ T7V6jTz:}kriX gtJIIR9Đ.*Z({@o }>جi!Ԩ/3]A޽g5|+T3 u0KPehF:YdL7EsLt/gQro$&}]Yq 2فլ9)40[VG:LFܣC͆QWe[ݣfOⲋ.ϹWSR*:c4~EfNGjJHoߏhW}= 1$x+pa.N?@c KBO5 hO)ۂvͥ!z y޸d&(iFDBI$D7c/I8ӐgCb/fEg9Sx Xz0'ӬXyCzd D TY"He%j爣-0$/&z%Zֈ2_&'yYN#юٗRpF&k6+P+]%"űȀ4k a-/<~"S!:5,bI}LfM$h (GaHď`Cm% .$%H <(#%?G@=6tMNX-Z؃W:aॻ T-鏨?.~voui1c2vJJ.Nx-g{X.A\3uQ ["[.j8+c_ă3aPpñcǔ9=No&79"lvF/ԤEDQ[l lf`Ğ }حPg ~DI D;N=$dA]b+~AaC1A;eFI`RãmeVZ|[yb%^76)vk}N$ 8f2(ͮg~fLx&Xs ^bxG2BdXĴv:'Ҭ^;lc |`R;5Œl%i`3vFhy}=M C1SƀE;c  cph|jHhr~թrWv`օD1Ae“\7MD"V&E1'-j2wu%ؙt7}z-&8g # 'Dְ{޸C➳$|jk $AlIpx;-s̬FS_|$;g.t;u,K;P0tD0Tc452DEPW4ɨASWhj¸>5Lm>w`h#By? G8sG}zֳV~̙3şUςS-'d{ww`9+bj¨TɨBE*n'r[/ٝEWKZNo}k(-]G&;$E/gm?^:PxӟJFz1ȒH$HD׿=ܹs4 +75ˑa֔i& beבf3GjkF.q+Y)TfUYty̡k;Rd̲ԑ! 3^QLF gF|z#%ozi ض[q>Ğ$VW>LOmFֵft=qLv?m`eX5_Cm/]-( ]L>_(aSQ W\d H -?#ɒEya4 =%z!%G2g7DSɒ"Q~~AHۧ zl>ԕw:5CbTBv˱.^o|QR?h0ƁEppz\Zvhf2L9";'8;ܝϞXSmgB_fG3}?\/A?W#٘(?EVrύ߅]TlG?Q77;bS=%^=.VWU|>1SW@5DžayD'~Ȕ߳g/&ǁ^JSԃM^]Kt5蘇bŁ'jQWXfiE}cXtРǁVk[<{b;oV={B]՘N[SBU@]Y%ye$8R7.kk'ЊuA~Տ+%CjR^"2dk^0QQ&g3{RE;>-6jZDG HY7XY`<(I4KEIQgvxqsFN1 S PJ35T ToF?_ >OJm~m[={aru18&aIAȭuUb恡^Du.2[v{㇖8߀6r&QHvYr3; Ƨ!;¹/ OkƫQ9rD_7k? 뿾=[ͼoE]ɟyoO5/xkOHpt^g)UIF߹vsz#^ׂH0wZT+O,z5' >}_;?'f/uUHSb $ZåE]PKKu(Jt Wg-J1}iS 7 SrINW%kl(0Lm #eP4;+5T-SIRVرK°OqjNʜ]JO+'-+u5ѲL(g\U%5)LGR]kbZ尬ۗis\uX|tȤ̋ x ]zg*պ矒$L%% YDu7n&s胠>F.^td"mȉp(i]_pgJ " no/ֵ ǂQGh^>M;t~oYa⹛:Sg'"Ɏ7\}KQ )SXWQDf(5͓eYLt."+O P$bYI-|wnEކg"^(̎.r<)#8YmYR>Z4Q+eeP(4u)džAh_s)+tVdh5Xt`MRՠ#a[smF wEk0՟ϖJ1jơ8rtJH0w+~J0n} o@lJ@څ13"gyiQN9!k9fN4HIِU9 I@K'['tԻ@I''4 \SȬP8cEBŦ'm(ɂPM6'>#شZSH(,AzA+# 3ݬTcLxr Rzd, /0>,`H8KSưsoE1:;l̉E2"|ٷsTK08Wv=ҒPj1"%h Q؀2RW,Ri#THs[sCJ2Vd9(`Dndq9 %5K¤FAZ""HRd*(.D3Kb% T2vt(ǡ_ԉ1%AF"$#uȸik&>*E ƣaO-ɕdo(Ԥe]UTc؄4+HaD#"~"7; m ]O5)KI{qkvA=8-P#̃4<_zd1c,ŌO.0 %5T58/H6l6`b 'ԯr?W=o;Xn/ujF4wd:3g Gj@SW.xϖ/:¼Ig,g"Aՙxj` kjФE'Cu\c-Eޥ ga0jTt飕PA )UUAA쌭NV֧S_C<6\dJ禩|)njG^x0I)uc׍ hˊr ̥aK"PȊ(k/"2ČX. Ud՜ iDV08JI]֖e%5etecvlI1ܥc>: Ԅ^"G:+b]("u59G:`ROu{\.ys]G);=uYt ;B=]BР2>gM,- a/ 2[h[!XK&aRL Q %)z0 YRI0X YTij hHzQ$RҦ9бA ޶q6Jd'``nPr6`S{Q PÓnA>9*OB j2rv:Y0a LJ3) h4Յ4[fA}w2+Πhj6 u#MQ62 =: L,Qe[.ݲ&iu]W/ƹ3g_Nq=C T@u Gl#@UT))VR%r;w#NQS7UY} ჌Ns>[@Bb=gKAY܇F{2D+ЋNIx$vJ jY^l ˻$Y܍2{"kqu~JY=B Cc Ùl-CvNVd֤,d3Tq7nnc=z,g\Vdm5`{"&+>+iVrZ;ʄ0^6Zv@(f=v)à F;g-hU>3DP=ƨfU$L]РGhGcp3F[WXu/GY kP?J:eQ lQFu>t\vXp9>c'ǥ(Pqi`h#pKQ Un0di )ݡ{" CAVcX@~AM|V`6;(A홬Sj#)S RPT?BIjQCS3RaW*RQRNSz;L< eb7#<ȺgT}ɪD/47J ,'e!1d3Brh:(qaQ~sYKvrbߟ&X6CAZPl](TuV'y:[C=6k"zPIQ"3X0P E34f:k/9MpkzGƪP1LQ7#llc{{Oc " (* ΀n Q%0J¤+~;v{U#V\NjH=dt}!ϸ |z]r A T#H5Q^7VZ"3pr^oǏKp 056Suj^x0Y2K? Gx9Đ %*7%;hG#+0"dC 2`D\0d@M^R r`?{MUIFO*j¢ HPlklCe5DuiCl;JSZY%AG #2.xE:01^KKHC-ItMv , 7*ELɞV ́[܎Ug2z$zQ7@ꅔӌb)53^Q; q4԰L3FQTE :݃L݅D_Y,Nȩr%Sj߄TԼᆈkl:o6tc?IR4A4}l i1h(8M"BU 2Hb 1/,D`CXZ ҃:\Nf\[@ue۟_p9ɤtMP,I[R6I]Xe0P#)dJicnל_F+┿lײņ@!JU,202_kVC`*E⡂|JVOZ 6uՂbQ$u-].ke~o$CɾɹX  EUT[UUǸIO/؜߅w1FEq"la׋"2, ٫ qg|"Xסc C]SF%LG;`4VΜ̹42#Q|JkJ3UaEwyKEi<6 ,)@Axn `Jaddef;V _射=gLO00| =nIܹ z9;w>+9)V$AIby%$`AFotp|;l/ZEu!ܫd=ciXY6KT*]v"&=r>ɎoɮqxbN90WϾ/_G|i=nMfY>p)?觙W"&3o1±Ay صhgNWZtbm瓣r۞|d8srgϼ;bv|:FGy.[7`jS6ٱXǨ`RM.d3,Fe.;74|s ssvk:np +^xOUheq)v C{f4Ht'\CTT/]՜T]is/ >$b3#bnj⽶-!{+)B tJ95dSij厒_)zYEB+$ZճizΙzbz P)X\S 9F?1E'mO5Pz>QU>]2c: yB?g&$<J(A$Vz 4 C 844mih'yi{O~佧ii&=p:*6îQԃVD4!wr۝Z -S Txn8V6= =$h=_#6GGE!TCjz†T:&}q~Db! 3Gx˵~\L8TrCrّ{*0t{1߷IDAT癈h}C_{i߸'\ A;?ۓVVK【CLr+TuA)q#~sPW5Wu\Ikpx6S-A:A,}պA GE5;ޤ,AUy1yנ^yԅ2ώuu<uL{SPX1A=z+߃ k [.&>z@O]__7_(˲,t:a{Nph _lp~9:NeY.+ =??ӺBr7{3|w<ĵ`gF,:eYUdž6 c] `0 `0 `0 `0 ź1IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/back.png0000644000175000017510000000532600000000000016702 0ustar00useruserPNG  IHDRd[sRGBbKGD pHYs  tIME #HD VIDAThy?7of[X`AYpЪ**hx#FQKM4Gbūx+4$ċZ" ,Z]XcLW53=_]E]E#q@`5Pe-kEh'Ⱥ9ς \kmZȼGm+1LӉ 6 Vcy?ȡ;D+-uI"ږZ~C)%7MZ'JXRuJ"Z~Ö\>̗+Έx1BN1CWVWEӔRӁ֋J-O?p) GuuSsDd7Z(1Jܽp_7vbV@nf &?F| V|;&0+?[kuL-Fk_x~cۻi)#"}ZxmADrO.{κV@i-X2"$h_ njQh.PAX-"w.~fITÚk@.7iӧK/|\}8%d5kI-(Z?/~mԸM Ӕ҇Yk- J<ݵuK_]lk@w`1}ˍn1egi1 :88Y xsz 8M]nj0p.Tz;'EDDɫJ[~ɍ PPh:Pm*LUJW}eiuWl{Ǜ;  (KS6Y`Ox|/A;@83{-$א XkI+VΪ۽aRT%2ƶ Z+ȜO?]ֻOr]C1֥ŽM`ρN"9 < `.PGڈug1& vhc߷eikrg(-E_ADDnPPZ7?*J0%㒜+_ϫX_Yqg5p1,)bƘ"KE:0 Ƙۼ\[x́j[b`kovoO\ȑBBna8M)2RNթq`< L6ƴƺRL)cK}YǿNtϷc:Us#l(R͆D.:JDQR TJkݷ[XFir[@̍"@rn8p49-nxJ'k5ƘkmpY:>I)5CngR ՟~Kd)">DFeeQSj;ղ.ގ=1mXiuwƘ,hOҢ$7>oȸ]]v1fvI4$IgϞVjc *޾N?XhZEil}:SDIPJD.;Ϫ(@ڡ8h 7e3ŏEMgSB?!Ƙi&׮]t d3P?K pVq= d2l6K?>|_! Nr' \]rk<͖ WaXRRB60 GnYY٣5dɋ'TTd }G&,aGaxɨ#'^w2:ӯ:.tىn\^4wcNvp[,6t^2? + Xd,LgL61Yat|a8ˢ(:v}t& 71kO~o/z]wqpS6t[wz9kj OsI, [d^^!J-OY= bGj;AQtEQ-BE~E(EaQ|u sg#\(>huE(ǶI.)C(, C(::kjjqS\eRQSSDQ"#`{3l_'M>A)u3IIDj߿;g[8pfTDƵgx4~mb.3]*S{ed;@|hxp,V ZSHc̻岊E? `V?dl6C60 Yiӧ~4&y{30dhžLx{O>ug;pYŴfr%/p U~sG>Z_R,w Y;BZ7OD%e<{ >m+Xk%|km,cQ_t ]uPSnj7/bP($'D\ih? if?IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/bug_tracker.png0000644000175000017510000006775200000000000020305 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME;+͏< IDATx}yUű]fV]dpPܢ4nO-q1b|&igS1hEpIeQddeu8tWsg蛓Df鮮ַ:::::::@{t:"ttu\Wqu\~etd-Zd2"BMM Bv}3S|3Qz!x |cٿ9K޺:!PRRR2bĈl EҭN:cFŪc_w\W}3fl߾Nt}(|mOm)3"uώg:o o61v{w C9SV}?ybͻ|} &5-߇/ڳ "{Ǵi555h%]quxLm7ӿЉotlUSS^ܠHuxS[iXJ+JR !{Qf 0]a^'3dOfџB' 2_9ls {8کج/}(:5ֳQ0`yr%a0|YLcQ"75l<.rNZ>p\d@p(O'kkh<{`!SX&)|GD䎢KT1 +^RnJr gK P;"RW$v%tM9`Ĥ?K HyR]p )'&fTIRb17?B*5?NINɌhwr}|#l=Rz2\󡌀Yp!a,<Ji8#[RRpf!u0츠p҄ip2dF "srAO+MOxK'K9FI8‹sB~ &f؞oNC+oFL CNeʌ߯N0&m*\V2$L ,WTY {ܖH=fB~$W>z! 7Tnv8 51Owvo$߈ Ɋ.yX}tg'x.rToa[!&2`“NO53V:JmO N >y1_+Pc;\c/\9can>30Gj/K, QeKc^ lͰ} ˊ@NqZgz.t,)E z2Pjcr'`*.;00IdI#F\*܉p) JH$qH .)Q6SN>Iu uqp + Pd{ݴkVh+wbFdǢx"ʡPLk+-s !5G0 ]A@0Tȡ'6JJGj;,Ԩw$D':ȀPP’r5OWCG5,_5['!'F l=a(ɰ-\CP2DM(Iɪ*8*tJ4_CD)JVMD0$fT6A!X/0f /B03{.!*|PΧ\cT)7֡AD2<#2 ɬ2l0,m?npprC8\H  `hqy; YL"9;[V~K#*$r$BA"#CJB//`C-$D hؼ4hƱJ“q 4A;!!Ss#L%Y;OD X"V)ȹ!d؜:&B -T5B> Z0Y<7F%l#`V<y 4<wPTe`,0h, "= NFDZr"7/"\Huy %v*ե'aȀ#ci4" 41ؼI$rV|&9r8ku0Ӭ܎L FE{z ;6F*Ln:`{"d)C?ߠsdȜ.~^OA2mfNB MyРP$ӇGEDqi"q 9={:;W/_W̜6zUvJKKr ] MjP|\H [6o9 J!˨bG8;0|̝ ~qD >{l. H&Fx<нm) `eH$(/+EIi)dC>,.Ν;Zw6a V-?=YC|ЉwѨ^ v 3`:-"dr fJt!`u0aB]vAnݰ뮻woL0#GAjV (;m,0XMy 7JPM^3d(y䆍ڐ4 ʫڨKtXvf_SOլ|0e“*od̴aD+k\{3:סҜ `FBk&㭷[oŋǤ}8F)pqBY` S\3Bd&!u8lD,MTb5/![aػ%OUe7 *(KBYdphF]pdan^Y @L~g@+f:dW<&!j-3(}IvF hlVƨ]GpNiINI:/r7:/No3u$ԃ%H#qv|˰]?S.Gi3>4vd!@H$R YBA"_ $ JJr9x Jѵzn#Cu]PکZP>iX.ȨP+i4/+ M+ '-cOc7p.Y=п@ss3Ѐ&sG~[ :guN>$tđyUiD0?72qM[H#g}PY?/VcEc5Ԉ ٧:/RJ{X|Ν;cHRcQWWӦ'@ccc$Ocw&_uѣcy8qꩧwڵ+vr̙3q饗c=0m4^ gxgzj[o_|$_lO<~/?#?~?j9ÿi_5<öm۰>6OFN2m"1Rjfh N9 555Waxރyq]6=7A-6gW dYx %29TƒII _{-.8=z!F\pxgѯ__gwX+p ERl3҈ |qb1i4ӟ0lp&,Cе@.RL2O=r\7Q,;Րퟛ$: rHŶoDm5$v!Nqߍt}BwhnW0E[Q#2*"!NkR#"o49m$ŁQp;ۼ.^Q>fYm񨁯12ʥZ:ZYg8w64+Z5߬pVǮˋ.T@G~C X5M4f0z0= tݥX߰!̹2#{kJaSהc8S .@ccSdWw0m0EQ~o!_@>]wu6|x%)snf!GxuɖPƵQ1yG]ڜ!N(N`t㒨NrsKeT<' *zt>J81uqN zPZ( 69(RJT\֊JQ쓙i J7- s۲kaQ{/"tR\]aЭ gXPݬ_zsxcق~r9Cp"(Y>= :T QY\i9<\rZoHӯ/%%yB&W@6G&_@!G-'w0zR*#vw16rܾu3Rؾ1yxQIF %!jEtܥ=(8Kaq4h5k`Q(b$a'{oW\T,w Toz%Bܹ3.&3ظu%JK\himfH41h3H 2ȇXCIF}.8Mk"ra-9uԏ܈q/2/G0H2 !"X#ۀycց2p| $Gtti[; "a$KovسS'mȎX *Y9{ s&Mf켊T IDATy=-ap2=$,Z!>}~ tT vAK[9D+JID΀HA$(2-RXO&5+8d;vV-o@Ƴdr$=ȣw`|'PHPh9huoD/nlXG5DF ' >:T VM&P٤v &0$hÒt vVXa|#Eyr(]~,"j"S#yX5F32XCp(&57txZ>ÑHF)mP]l5B*N{JVL`4NOd 4?fHQʤ4/\K#V@1FŠLwΟHaLX֗]X 4})T6 i}Ue*9cODbƈGZ iSQg0{͔f OD"@QT$8ܬbM. g윤*[Z,Xyxal)JJCfl^g0=2x=xsȽȽƧ PZ NȋMضeV,ZnVbCC֌˶@sfP"ʧP($qYpS18q1njȶfv,Wi ֮ÖA$%e)$%I$h݊Y7_إ6oC2H"U+Fyp-Qct<8V&rܭmv :4|z"\vۆo$?iWJoΝ#8qk4dh(}`.exDU:D(qsj!rȹ*sKwp0j#eOd!>E'2Fo*G]070(:(AM@gm5'L&Qo ^_$owwk׉ԅٲϴtY BdU ~^1%v]D ĺވGTy`z_MKl!"]C `:JOHVQ`P.,}! i=FU:*,͠*ꨙ(i% 9{49I?@yF?w.|" TZ )PE!uf*Bf} P  (e- ?AӶm$D"Y6.o dJ 3V5>x}1tи!8Rr<%UhdIkԨQFo{~zSO=kfY<ñҥ ;8|1{l,Y˖-Cuu5 ~: E*SFBưCFh3N(./d%x/7Tc^d) ,@n0a\|HRPqk&iӦwźun:_~߿?  .1ќ\Ο?ٴiz}gH16lL Ϣ=W_mb_s'|Eaҥ Om/&|i)Q5CqCND^9vaaruSR\M{4/"rJhyJZ\TERQ.hO=˝QOX;Vh }^l T |"یWyͨ۶w@Ae#`*@vl[ă$P($ 1~d+S(C>@,C ;5 c1E5NAU/`+0&\ZMp<6Vk6?s5޻~[<ݻwúuu1cVZe|f8?3ʚ7oǛo޽{c7n.]W^y3f5 CEmm-Jf!2d.&=đ=7ݓf_𪯯_MKFK/o5c֭{npQG`B~O>$0b=pءbGz|c&^*O?pFŸh*7㖛oƻヒ1Gqoߎٳgc֬Y5kx\tх+9ucVYY#GbŊ{Ui!qx҉ jzװzO'w"ɠ]vE&ڵkvZ̜9=\tEHxPl/S_~ 7pcdm #}pI'ᤓNH$pk9|G("ʱ`L8MMMw}J}K.w]466bΝ={*וW^Z7(ZHuh+^3ǻᆱ 3^79^}yn&j=lFN8G]].Rѣn֬Y~m۶3ĭފt:ޞ1a^MMMn]x׆kJJw0vX;=VZd2K._~jBd---iӦ;z[”)Syfr9s=?>x5׆0c ØW^GQD_7S[-QmL(v";asuNqس؁%FŀN].ej6nR;q^B"Vsk]ipJV̅yhnM !܈M;|[[4f Vv'V)!sAJdN)A l69vViȖ  ?x\vDE+˯UV[n矏Gy{キ/e=1/:ur9}SNQ@2ח>+D>C:2tH8p ,Xx0yd?kE`,^v խ 8 f͜:t+YGF.wr஻˜1cP^^qW<>1kO3<1cYxѧO|ɪ 1>@Y] g@58G #odŭrUM3+ ,; 9a DQy`x-QN‚i6` WFvTH DA$ҍX[2]q֒i bH_I.D2ȹFk>aٺ0g %К}@yEC@N`.@>}(NAש1ߨK#:Ei7L#YJ!%Dgv5IHr(DAkO6B Mw"0B-jUf4 ge+9r$*2f3Tb8!T0c"h6MfNJ _ $ HyA(/M`FA1#%'8Ģ0Ж7suu5F\.\.;v`۶mhhh0D+qgb%"4'*\%K۷k')XO?lVpqQ\6ёGtdtqXsLP5zEwktoW^P[[> 0l0ϠY` ֣wl=3GumRc/R;Xjz+HcG l߾W_}5,X)SOz$# TǼωzi= cy8ӌiMMڸ55@;z!rGN]&3*6~uQ_-h,Ij:r@EE\NNLN []hmEϼ6׭ƺ勰b;Qӭ3 KL'P.0sYr9 Y2 ]&/OS̚5 ӧOBykxpnC߾}%c_dMSN2dBr9,^GƷn/SO=T*>K}vƍh߯~5}k׮x饗rJ 0lqqeaݺutF0o޼6?WVV}>6nKhO!6nƛ$2giY16^\V, rxddRx{5h)|*'@Xz{Y"אx20 ؅ '^2^GcWݎpj1QK88 WQqKkF$IDZK/?O eOsu1-3SCCuBܨJͶ_߾FPEEW DɊN{LfmbZ:딀w޸2ߏ`566f8ouu߇:b8`yjc6.[']&3UWP({׿Jrڵ\_nݻܮ-xV뢣mqֹ{b:b8:835Αʂa\{8;~|X!͓1 m3ޡwl$t?awuB_ h|UKaOt@"BxIҝQս=`ʵԀnՠR&!B.'NRt!B6F^J_d4}* 9}p2 %< {;+y~Lh2 K/d3IHy EIm2x䷏+.|>dpmaĈᨩna#*.VqIz f2FP6t^K08/aԇ{pPG]83YF=ek"d ^z szj! Vp{>- /GssU?:|YاOo3&".f0wi,9~;v@2xP*E`w:uO<AK"==bҳZr)#r9rN"P6DHMf$bz|WP@N߀Ri"];PR*! @7Fkp^x^W߅S/ ^l:/m ژo^Ezq8ź˰K0Bv)aNtqȱh8S 2̝;7o ԊFi 7Ja#b'8's- xP (W%n8L tMD_͟|s(-"/֮E)Ücz5u[lã>G1>_9F݋=C`ǢyuJ-s}%D>_L:bm4%$xWP(yMsGNnGkR3Դm?.b],+H$PYUʪjØ@V"ӘGf[ 2@Kb|!@|X` ./ t</4o/ h !taKm23y6te>h["Kg۷/y 8Pc=k]BElr衇o4b[r3Z0C6k"k#r7l(† qcԩI&+0݊fE zu`'cLvѰaqu{g1uTia\'xd6x=vϑc,2!] EbL9l 0b3Yatb`۫DbgӢ쁈C$'{XO. i]n$k!C/緒T$Όy@ȓ@!8;%y,Hk FV !OKJ PߘCWn4*+е{w <}CMH$S y?)}1t2vf3?u&TUVY3Rب(*ԁunU b_9bN8@9DuЭ]naOϫ&O9 Sզ4DnH&~'qdodB5me44Sx:1wKD ,qVklurRvC@@ i'ޑk{ $fa8g> SD/n# P 3 i ȁP #ۈp fd:ga=!t^: /@Rrtګ=z֝`w"%Bŭ &!_ -^e()-Aii_J#[42-%"aHE2 NQTH9EL>9a1aQ"M\g,wKKk?u$ eϢwoMI끍u" 5΁Am5pRs'92=8M }TRUpy8ܟ[@-d}w7X!F+>ǔ)S㏳8**+_^xb<\~=nfHz&$H* xod<:dimছnI'2G&_f6QTߋ*4eRH3}`:J> 0*&AZu.V8? kqsX8lB#, 3P<Ws`RwS?47-Hz(`QlD:C*?/){Qc>'3haLA܅)P7qN]Pӹ tZx:lށU %%(-+CII y#`t9TsٙբPĎf#o0xp ?^uuu?W^8/6KQSS:Y߆=y'8rr-nbeamaZxnm|'E6;wv 7;@6vT uӔT?ðax9sov vРA2d~:gfbㆍ8Wlmum= w5薢uU3E:X'E=ŰC0.n?]XgK{.]rn*:aa[(.QZ-"(?>OU< ͅK܅ [-T'p`UCҨ,Eؽ"ҔNt $%IYh,JKKQZZ]/[a+SaJӸ[0NrgoOwDi^9 ؈ŋ(w7nW=W^I&G~W^y1V\ 6\Θȩ,o 󿮾,dԩ9O[lAAS=# eXݺG)Voe%~m\|9]NٶYQk…8spwga֬Yq碩 ?.ZEF{@NG?я"G3gN1c^fÕl6_|1^{m:>sy45ryc„ 3g?x|`Dצ>} ^w(r%35鐟H# B5j}[~ PI#z'fp['asaGȪQ!7ҟH̹HC9|k+V|Ep)8;/uF*>{JӛЂLRbyXH!H 6 He'r)a~9 SH{8 ]@Z!RII$Kz%Ix)iYX.zGjTVU %9nhunM;!,NV7P_^‰'Yomm̛7>~}<\u3 V g}6/_>s4v+V /iK/f2.ᇏE}0q |Jr9 O&(//G=P[[=GN<d+Xug`|Z#=)J`k3p1G3*Ma ˿IŠˣFE.9Vʕlƌ'O{ a9Xv&MBzHwL&҂W^yӦNC]Lx).\3L:5 { Cwҿ~>t-9sX[X OS\r%Tpug? zCMW^qA nJر~VH\ܵ6 г1>!lMaޕC`Sx *bMـ`v8N1}E`A$!؎X.Z; BQ:T9_4-d D9a5]i~G4&GϞ KL*X^H;^WpA2 te-H<a)p#y,H̀Vqe1} ].S4@6dJPu9^{?OXd ڠL_Zf9s&~\tE:,  '&'Oq~l޼{챶 vjSx<Ҍ|tt ;vc=f{{{qڻdS68q+VȈ̙6`wի[j֬Y#@B<^xᅺ亮s7\4F Oc;x`2$I x^(_?[ _HҨ]!}7|3N$SAFGGckwsݸ+~d!ǹi"%/V$*dƖˉpѱPo Qi)Dld6(A܁!*+&GfW{^l:e\""eX<,\P \h]PUਗ਼DU\|잯@©"|yIt&iN¯tl~& )DSJ`W>NO´9a o>X띩x100̘13g`gkCa۶m֠nݺ}hh7p2 .]e˖᪫]?'|2rex󍽏++}[n]wuuhꂨ<@l 6 3gʕ+}݇W^y%Xv-/_֭[Fq뭷bʕh>(6o,26knny睇7"੧Ν;o߾eY< ڸq#m<_l֬YSэMl-}^,4;^WjlBoJnHU1HILSe~/N \URR*".ɥўB9U J@I$)Mi$2Ix)86s1kO0k,OEskk%w\B+’!|&&&0D?ӧOcddDTz_CTFEIZҺGqe6pV|D)1Y@*)BT{{Pŋ7W;?:pŗE,o|.̻"L6 Mt&QZwˉq)P!a}}Yv]T u:wdS`C#.ƾKnfyDKv{HLvHka ^z%lڴ ?>|۷oO?>lٲ%bonr7Бyq,1%Q[h=+k0a) HzuʃJyPizF^ |/@"M!Qe@!JGN`G {2]]FS[ϐd(dz*IU[*XqH m CtxCVyϐB,q.B{/"\v|qo#M,0mt׿+pQehvqOGGk.oa[Ckw֛&c(T:XErsȹ@+hJ{6_bN=`R?n^yK7 2Ȉ 2 m#㛷G{W."=k'KRLV~hӑrՉ!:d0;CH ΜbI/Z`sz9vh*qIr} sW6 @+}~ ϻ0v&c@P(WT: Ӽ PU^Mzi^5b4Y@qltr hΞ)hB]H3I;S0@C%TJP2GeW<+&NY;Թ/ vSr9@1.$l9Up}v UsYS!5L>\. /0HGը\u0Rj- nt-ؿH˦N,}A,^gKq}nu-Cb)'p (DFIDATf65q̠C zhHZCuhw%eQˠ C:X@!k|̏lBaR$ejd$ jY w6aZCT13>OZ % ޹N$A(i a Ak DFEb^(+Yj|UMqJPe@Sл+]ʨ'.56unGVMa$-TK ,\:yS)\{}vDF#,cTi5T0qadg)rL2OS/i{}m8R'n,לJL_mϾ2LNMs>.>qmTBP,>XݡSiGH'2ij^?ƻs@nL6=HJ(j \Ցu'Qg@cr~X LsD&#߳lu~z,Z].p1lܸo6mڄ>)DuҺӪ[nd'Ddʙ3ɞM Vrne;2|:S8zAuvuS2uRXkG™ WЕ5!玙ik|Eff~,9pbHCY+rj)kIA @ljWsb{{:t>Sу<~]'"~q^M-Id(p0ott ҂lk+0} "ĪURLPoS'RP!cPU˘KJV 4 V1 .Ce2y-کY"0..W[T%R \(1OC V@N Cn`Kӟ^  mH>F0jr*aW U&d:SWjhw[Hkee 1=ؙAd:N`;C"dF:/FRWE g2ޜYֻX|'>=}hjjߎ_ï*%J熂]]f.Q2.H2[A4mfNx163&cm2O+M,sPT >K~_N aAQ[Add|~NVs|NcmBQ6*ɼlLp2c D(XyL&X@6PYؗG>Þ9r*PBT( Q.0 烔dG*D2ʡvSمcwdžRqwCP?‘,* k  yPl*rMnd1YHs Sh;>F|6-L)jr,RUE KD f*1]7=]1<<_~144Bځ BYKeB{?v:[Vp6KW#?L#l>k2Yv e,p@i_ I׵}c[@/@0;;õ]b&z8}#m0WzcGv"*-E/nsvAOv7dg0YI2qsZv2+[gmM9V SN༃P 8?%;P? "8 C'0r4&KEʕҶ!J)Fsk+;َ$MB8p!^[P3ckA%hJ2\," A=;&)CTQpC잵'#m)d \v8kg,mt3H|³+W`es!5@D4'HVw7L%gNuk.̠vNX踠1IUپz7r3)_g^2hh^1U|u|T*M7^ud8Nu' W 0ئNR5/gx&=9U:Q/Q?m~HPo yPYQNqfAT t=ǘ h$;b 6/~fu|G>Q+oƹؾ'C_c5\C|r_/XUm-NU{zlPmUJDt:> &'''b|`!,}]l?ǿs@le<T DJ)y_iٰk׮RԋR -b-o|%Kl"b-b-b-b-b-b-b-"\pIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/change_log.png0000644000175000017510000006406400000000000020074 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME0s IDATxy^E>̾d2w"@ וE@HPd15UAd ܯk\ r HKQn 5H}ɾμosO FN̼sstWWUW=[o[o[o[o7P.WUU@Up[o{|# /\U( DVR}z2Sx7wzj//D/OTŶwPJzA嗫 ͨ˾d 2'%տ[o.ۣutt`ǎ \KBM7===(JohhCƻd}ÞXyt[a}_cwY==A3M{ݻwc˖-M5LcQWWTUU_+~8T$$?ءWUU0[@P@KK ll6ݴZP(`۶mؽ{7Ԅ\.otǾ__V뫿a_vڊ@uYjOp}iR l--- $"tvvUUUزe 6oތ͛7hll엜zma)|MUz'ςV4Dl6 ":7ۉ:;;fQSS شiJdM?c&ZuOؿfe3VLP愠E)(HA\@C!4n"r|ÇGCC֯_M6D.,/~?eHD4To(E$̯SĻWߍ]n_6G_߇C]Œ+E\T8%)ɺx]#n~8'q*ab|D&oȚ|7JSm Nvs(=" Zޏ4>TrWDB(9 dAqQɵ%bpyoSv 7=5 ܝˊl-ϕ)'&R2ߡ2z%+㌊/>Bl)O Pf2xJX%J ɞ%d+ D4f "b`*ee{ J%2  Z֢ %1h@sy7 FRAC32ZB(v4A$MqEp΂"( w;q:6~ )nMRP;Ax4B22Eւ+2k!ֱLn(Qsd ;gXk(?-!5&ά{ `-7bSxnN7R[,HO0y%RNk#{CWl1[HxPf91oMFFe*fD>O)PSSѣG W" l.km[[Fbe /VS0"YlKcfgIlNbcJ@c`nI7[/P11#DL?ћ{)rF&VʈW[Pxj<);L$6RΰH_,X/;?cEHATq)~s %QXftظg̸8##x+#&]C[<"<*!'NN孻M̨e̹ciw jdw8h6INdTqG4ֻ&BHu,Jm@U^u<׼1c6:v aCsm6ZA (5{#Ŷ vL%@3kgN&DΉ! u16F_8a<3 vmIyr[9t"Bww7+>/͢ZkY۳Y 8"Iӷ^hTǬ#tGr&p"p?$/>A |{YrWΊ.8K֝DtǻVQ _[!&8m$rNYhbɖ'Żg؁E<`fKlۖkԜuKHDi I2*<$f`7leR.dE-v`vͯ#v lC!/t'0Hn.܄xEnWO@8a:"FbyDĤ &.#$6 (QX:enn-?\1UNOhf5sHҶd=cd#b׆y KRj=2 Ru!͢9-ːh2IĮ(5Sr$CO yTG+*oO. Q #"'/Ps(*CV(ʽaoT*U}r(MRU\ɵLsBRz#ݨY xTGI5^;)}u%M#!* R8MNlڳ?W)ZG=9&f1bJ%d[oeZ.u@@;K?DDb,p{;W8r=&1b v܉jTWW<yKJytbPt:#9P?  X,؏Xčb~mQ|~]T)Ālr瞼;1$Ts6k}hxB߂+(Wyh8 رs8 \~:#YZ?o+=V&e[0?b`U6 ߤ]XRyǁb)= ۼh9"h 6y!7 Mk\.ΖWWWvΝ;1x`{#|CL)uC")bǂ,tD.M'<H.VۼRsI.37ڷnDf%FYnOڡ{8!-/ ?U9K'1"QցQ1dXfjqQtXXeAc.@@JH[E(rm :ZN~ ': Ĕk4Q~vo bLuĐezect Wͦ#hd˭1 fO˼Y3M$m*FIjvSڠjXYQBKaXG/U%h0ڀ̀1%h(7r1@jAov?9':4S`>x f[}F62)~_E=D]0p m)Է 99o hjjBKK PЀښ ͐bW/ZwnIZ դ!KQ y2>2Ŕ_b`43ɼ3{ =E^I,[ɩ:>ZTLdύ bBAx";+C Ծ'q(h{!r$w*$d\=&#=2bo͏mؗCr@]~ەGiY4?꡹vDSGeCViTȱ>S∜}rn>D~# 3Bodض`r0kY"J\I)y92hCxhsY;5~?pJ#cC@4͏5n {TK"viBϙLLlR == v3]vcJK撚 *yW]fLH%Fi`J%)c qX}>>,#'r]OޛecIGq53KB9&)sE/ oCtyIyGJAWJyՊڍ\QOR ('v޵5uc ˅Fd2r( "EEaM_CZX,"ɼem׮]\jtwEy䃴8Cp×fAWJ!"؝1oޯn|WWˉhX6Ay(S2%iQ9І”^=8VZ͛6c˖-ХF1c`Ԩ3f4FƦ&K.Ř1cp޹l-5kp}a]xyOzRb7N"$Gز\ _-P0qѧUWfE@I>僕ȿ$< + g{ 'CL,>/ b2(\IvZFSS3xyA+[?T' 1cA[k)%G)9Ka%9d:$0 aw /d ,E.CC%G@0O.!9-3 #1@czbty'\TʁP&T],~+7B@/ɱ ,h_Wqa„ Xx6=W]u^xuuu@gg.{XpaҨR 2] ! \h278GeP oP%?)ks 9f2;v,.bEtMۜ~5kVG*)j3, i K}RYT ( ~ +xʛgݖIo z!HJ_'C<*A2c@eHM>Ák<.,7TaoK %<+8஋9S/2CDФwc⸺q.k ğ 8ӟ4ĉ܎H2c>蠃p]wkIX@ЇN mwɏ"p_׏ Mnr_PǸ=!'߃;wqrwCr80oeŌq\'x"nxy>v8'HI`ss?$B2r.?$tl9X[`:FD_SA.(ƌ= ^́?2"KEŵM yJCǓk/!:z =w D}ۡ݌M!x3,o{ԇ\/ZtRO~^UUYfᓟdXSU '>\}Z^O8p``;wg"[_+aJSD`RcM2̅Oks3dk:8$DNJ*!*Tr^>9 Ǐ'ʯ1n甭@}h] +ljSiO2p ABofUI} o!k@W>7JJNR"L+paO|aGXt) N=TC;@6-++S$|7>8-J%o.B7'WdjD긾\ >i%U",!:Bd1wD C$w5<#SM|Bx9F6,D.x2#9/EI Du|!h/ oK9Q͓J{/;r|,*<" /G/(0ǁGd4wHbz%"5WTRRnQQo9ЋvCWڎ$0A[Ovc* 5K} r*Y! ɰ|ؠ4H+wiETT_ ֬Y#rA8(bdS20k,Ҝ$@HpIGS"gc}鑼p*B?B3ݠSe@©`We' g$HN-<9<`?'/| x˫0}t̚5 uC9tk/;D} `@&r}>eCe3@}JY*BKM;p?+Sń@B&!KaгxOC7 +c"7pCz(:=2ӮʊI'} -*E<"QJ#Y%#_oʈnH|ahsY5 *ORv<#!a3zvo*" Z@TF]psS/ULqj[;Vge;hRl܀aR|9 B +PwIYLN9.ߒ9L?HOHgB ˓JKΓgDk`GtW|$'YC?Z!n«.Bt M$Rro#kN|)ccx4GZړ^GS؊&%IK IDATc?_~9;93(щ3Sp}]N>dtuuApihv(>g,lw-Mqoi'Q7- ޚOMr,Gԉ't:# -$rZO2#bVG%0 CkҬd9=ᡳMM^Ԍ6G vihH41Q| Aօ y}%:0/ustS<ۋ bxGۿ/Xp!z)\: ̘1CQk=.\Kbٲehjj”)S#<{ 0 7g%K/W^1i$L00aJ+I?IR-+KbҥXz5FL#8"Aq1~ ɦ](5B)Ci2 J; rJDy &GǓ/ghsyJkP>  =,D_ xb/h*0^ݠJGu %MBcƌ!o e"J!WbRXJƱlT20BZTM2[H"K)YtqX}aر7oފ\sM*=GN;R7b ?p-`۶m8pG#MȂV|ƴi8WOO?cX`vehukqg {̘1oL0G $~#"lܸW\q{1 >{,W.ż@Xaԩo0qDԘ&LI' QbwyQ(ԄAaڵ/\bb쯌Ռ`'p[X(&qwf'M_۷on۶ 3f>jϳR.;O<Oq 7`8C3-_gq:::җ]vGƊ+"@V\3f`޼yre ?>|8X,ǕW^͛7?qCIϟ<|0O`Le';^.q$׿3fMxbtI袋piT{Ƚ֮]+55!AGm¤Pz TUW۹籭Iʸ1|^_ /&BN=7) "XH~/8rg|e9 M`yRBi1\8T_OU-Q69~w a11|bkiJ9lc~$ ;,<[a^Eks[||U8' WւONJ2Vڳ, [#fзR˳*.2+\ )v22+%g@CÅN-49,3͛q=FGGG8jarv& YM!HH*+жBUUձA)A뫪0f)1WZ)v߰79}LӐ_xxL S(qD2f5#P "3,jj:18H#~J%|9&O/^'汭 ݅TWbJ`g)JyEwsB-+NS*W1r=ȑ-k]E@m7u)qM1*N*y=' }n6U|P % 1[]Jx?aeؽsc'b괣aFUJ۝7*eeE6ET4%Db9c0[SrkFʒ$ctQ/-j2R0_}Ȉf,UKj ‹Ca„ 8e^KcBN)FcU%/lFA{JSZ:2u]]]8x |:ޝ8q"@f$M Vј!hlw=rbFgUO[P^*f$(WeN]Kʁ ro߾bTզא}5a(q>N< LTq_7NAq15\hb53j_[#*+^1ntsmjC*#6\`8MF"h2ٝoT틈kE 6YS+!YQbd T4 38d{s)#JT[ZnAsB#lؠj{X>zD^]X*!ϧm"ګ;G:;1YhMxvx?NǦ2) &<( E'%[!:u*r\ eIҗ+K%Fi'>DYRQfbXhƌٳg]1mߏHP1zwĉ8#O;'uVKڈ<ǧ%^J^xa-zaÆI|yHO8*37t6;o#.Ə6D{dI57nܸF97ޘǛn1ߋ/C* \,6T}򏥢,$!_(L{% !yg RNDYY"q,P{e4DP +}PSjR0:ԲڞI?/F4aBOچ4T0fA,`^gb"RZ㧞svٲ14(yeKS<ڰ8YF/V.3x`Q̙3k:`wyނ S[A& ,Cae["[[Š1c7wFO<Ϝ^\s5G?BmMM.sȑ.[Ҟ"bPmOHܹ 2f^l)QAbH9PXlGgX9awFCQ̛7^{qS; ^- kCFg_ƌ;CYgO<^{-~֑;M.?kբ\ӣz$㥔eq|jKKjLIݬy9`6HaSv,sQ`$ Ҳ-țȻIɫ- "yN19 o֎ʑJ#"1+[sl5?7әra"DifC;RRL*wmnkxǸAz^ք_ۂm=8n98☏TdEDEG< ԧpM7.,ZK,oѫfdV`τ GJ3@Ae S2h~}-{:*F;G@Aէ(}ǯT\T@ V5!,EMuD` owC]mC S 4K]u(8e3J҄CF?^]*5~=y߀4hnj_j4?YV] jkۘ؝gQ rYol/?ơ*cF(B+UJa]sTf5Q P怐Bz͕:=FYG;DM3Dq יnߴP>9k Fghl:hG"dce #OhYQ£{d'CM q9 o;k@ p*]߹Xvyf1)g6[gxVF 2 ̓`Akh@uu-r5嫐FUU5rUuE)5k-[;~sF s9U 9"|͸2D\|!_t7qI'6#72#~rh`󙲖L%M(2yڵkqGZ%L6MpcxtS7Ƹۣx6nC)3W*<7AV3ָ0 . IDAT mW'UBK;r=;JTziw|w!]$u\I|L:9{si X? =y9XgȊ+=&֝=mᏫv e嶄ȭo+%[GA vaD+V)^*on£W&Kh4rkj [U\>|U5r*TԠ2!y`\N8q&oظ-݄awgQg^'e"Cψ`f _%1׿D/)\Oo]vN>d!Pi~ غmkcɒ%8ꨣR!PT:;aPܞGnV o:6gcҤIXlܹswb*(8スKֆ3ۼe zr9zX̙3Džf6o<(R=裏&MNT|,քlrT~cv) Ek˕$tD!SCOLMNʃ)TޖKłTf(|%\(+GW|Dc06UC)bQS,X"h]DԋޒF[ k.j/zJ^B|U- ==ْԉx}ؾ.݄aST*!;z׻0skߎZwy*sԮ\۱cj<8묳17 8 )Qw~{>x͛7\{_i1|=:zk_"fΜ)>׿3f3L]v-Z3gzoKv|K_֭[qa%"C \뮻Ny睇}g̅a?/qGco{Psqԏ(b0 qpDVcwFMɠT,!Qe3gQ9B6ΧgTbW**ء셞:{Y(X}P_'C]ݽxnFfw܄ںz֣uukhD}cjP4u عmP][i,4Tr D]6X3Doo/fϞ-%z!\xxG š}bqbwu~ӟa׮]81sLu箝 f  뙼"4[Y\rJ2FFuU[6oח?͛7L3Ψ@Ȩ {wqɷ..K,w]v,)?bϑO_ ;b7|0>c)ekg̏,) /.%֎q\@GsCUJ$-؎X.ڥCnL9_kx8}fijT\;' "~i֍^b ?y~U*nJ|1s$Y:Z貣y QKŋ.Du (}kF w:puWg`ˆlxdv~[%jYT3gPCU>e3w#c ɳpIq hM(jBOO ]]EgwERPy 2Î0 J<G+J< I~:̙s#`h9`;vFݻwcƍXnV\i;/44IԍbG~};~;߉/cƌIRVY /Nmm-.ƅЇ?*[ᓧ}2T,L0W]u&Ng?ug}6. m[^0t}ĉb/ߍko^MZ-ʆk'x#eqg_~aѣG+Kmm7٧gdY|W~rkWH\ifZ^<0~E,L&I~LrmРAxbpT>f E̙3կ?p|ı*<ø{؈K/{X^flKfW\V. ,R(}yAR¿#q1%;62 ^zCSVʷM $I7sөTˡ+Ra;N&*4iDn(dyZ|k B&dTd7Ew:A]u9Teݫf@z =%\,jrܘG&.=8lw$75C7S捛ʒWK+pQO;̓ɪU0w\<ذaC3~xۿ>Xn gFOOO{ <_=&OW_}_W;/UWWôil’%KJ0> w)K/=Ulfޱc>bݺu ?yr)hkkù[l&W/qmaΜ9D_ۀp뭷Kg?<-[9cq$={w"GpUW{7x#.]jZ.J6l<@|_LTSlL֓ߜjj<شimۆ۷#ɠ---2dLQF S*(~S$<9p2QBYX ^{5(0m4G۩\7nğ': ^>;S~ E5^|Sw载:*Q*}S/Dᄘ6v5T&M ]=vѾbj vٌw*U&vzK3l |iS]F GMUֆk[τP;p8}Ul-1#aQhlG-©3c'­X,k}݇ٳgC٣]/~ o?[2S:~+/禔 R˙xe+l䅌GWo {QDeZ ˡXض';,sg3ʢ:  gcm%ëK(hdTu 8j*T>/ ،}@xm;NѾf%r,3 |CD^Lv5 &y+[f6%ؖ89>=[XB)3}PL!x7$MbJ7_p%YgC>uhbJGs;q]wBkX N\J%yC&~KJZDCNZ$]}ԳJ !lKR6̘'r<ϝsv܁;+.ޢَ#ʬMfdn7l'%f׀.u-B_ɈcRSH*s; "Í7}N4 5nAo+0't"vbχ,'Q,Ab'-~G?dɐ,(3:^LZkoUյP*REBgo ݽKD)]%B-z(3 U8_ v݅"d L\M9Ug7:_ z ^kf0,[x.4ªmsEcC6u5yli_/h $ 8 ^N% c@r:"%}ft )cdc 9GY(LuسnB&{Ry`W/TjyˀF ERW9_}ЇKڰj>ǰa?M)_`?pɸEdz`#aC$IM;D@]0m&z,!y< C9nILjBRP03!M#rkB>})NI) c(~A63"QEIN7|F_0 d@D(J4 Qs^քLFJ*'M]2Jǰ8xמj)zElދu%Bu>(\Cm. NA*R-vЃA X߾R ]=r6o͛]Dc`’$Z,(W k`Ф ;$1nD[It*UĦ0" N)ϓO>iۋE,´wMK_n 8䓅c&K<&n(9IHmz$M,aKsWU%æ)¤B hQt>1e\nIA +KLR(8/ K HL`yd]`pzRV{*ݣ+yzʮIZ9UF tؖ)o)S؝+oO١jp{?|m3vvoxoQ[Bwo=Et=E("eos59vow}[{z]EwwzzzQ,isY!1r7z8jԀի[B˰ҘvA^%2Y+»ʼn3Q:1!fxx}N uq˭C8*{š]__VWW'vW⩧*I~ގ/7ι]w:n ? DŧXRV&e@uz'֐*Jw aĮ}+S 1}<Mۍy!}'Iyrĺ#_OPZ0Uw!Y>_2 \ZbٕMPҠ4CZI1Wc}Z)(w{Q҉>/>BOuuupoin+c/}vv&O@`0ÇJǟ~Xx84PiLg&Pʃw&~AdЩcpUSdֈuiЉ I< 1P(r+&iv5fQKe9~3\Y".ucK5Tz7JeiRl6WK[s,%@y :E'jڲǏ=%]' p(GdVRT*`ޗp^+s?;_U8^.ͦħn( 3U{6%%OX8vZY<A d*:?=}QK&:4d %H( eh EM`cS<@olAϊ_%Z(npU,u+$A00Eg3f1pѠASv;{:0"#@% ) }Jٿ,N6ƾ2?!sX6O>͓HadA{Sx ++?ƍ7p=°\k׮accw<|" -},Rnx&eF@27MSq<1WUWOI?y[{$xJIDATtAA~d4@@(ԫ@5;P־マwv.h@NMx}gxqnR=tv NPd0SuV躐+=IGn<6 ,:@Eʯ ny {{{{GRAF66Μ9V .0BOeKAc= E&dc7І1=5Md &ّ{9:nݼGqlockee4^UUF,l/- eH[K\j+"i.zѺ[(r>8f5bN*7yW,Z٪u6=j{V2Hs8x<7T,%y*$Ҭ*BBH14AHܰ4E<&LGL#{tb9xG8`GS S}@*Y k*gSZz{'_{q'acTI|a Zsbb6^v(U*N+5^Q񉲣m,d ^A QVe!.MPq2 _@eJq2/S07'i̭W!GpIm4(bDڞBy20ȉ*RИ*V5b\aQqBU΁"N nPyIX3DJmʒ#Wʶ re\_Ўy-[l$3_7D6TvHc^L4ɒ%1dQa{Ǥp% H.ະm I *%0NbO)k7#Q":WT L/0GQ9c8)NO+dRzUI]?:?MS$qhp H pWҝpg8k6LHoM* a%g7K#ڱvPj<&+KJ΁ @L{J5oyLAhV\vyzV(i(./%}b.~љ,,Fp˼3xP 2#hc~O3N9_8\+knl\j`V)\k,R*M5:۔5y)2M%[V/*-&vMU6-zu8e%;lkʱ.]F ضy̹߁׺N9ӞiQK>3gZPb~sN J- Hy '>_-gJB}c]Pʺ=^J%3 bc%QfҢNF%QalP~e׸_et~jt/}FC_xy˳|!V١'th4tZ- ÕN/ZrCb loьӋor=%߈6#=0 üJEwaծY<_D۽2όJzj "Bh;w. wE^`/^xKE .]ŋ/^xŋ/^xŋ/^xŋ/^,u cIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/download.png0000644000175000017510000006612000000000000017610 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME;v- IDATxy]U6skNUeG  2E0(b~jlϡAAAeH,C f@@RIe{9{VEvu^{z׻????????@v?fMM"5GX,;A}ժU5====D1cƀӝ/Ÿ;y/Bk#74V3UmiiR zh}ժU5=ĀGoXu?]mmm ЗzzzlD2(.CQ9P JE UUEbw?YVkl޽{{Bw|3f_QlلZ"޻q{ Qhh@ cQ3f,GEP:ꗄ҂bxSόʕ+{ƌ=(nڈ5йUt]-;P]:jj(@q ]*A{wuB7z(NCg~a0Bj~?,F8{ZY(^?wW ];+X:^{툪P3xqQ;j jAU Q*PnoGinloEw&t=?B@:GQ3f ߻zWL-B߇&$g_1/moEeԣ\:Txx!hxBQU!|oۋE;ѳo{W_DP7 4x*/G̷+Z?c~o,63FB4zD' )s~|n~jJqw+CcAK+Pc4|(>MEmVՒQ)ߠ @ ע핕h{iz~xYh:4gL^LSVN 9(&CQe3串GH͔nztn&O؏yUzn>z:qSIP%cgݛ)o,̕9'q"uS!f(N'HoŻgۜ˟#O;NqB: xP\)dX.9rͿwM ւ\y:I\/0rb!E!{X(ºv  _M<Z(|ep?O-hiقٳg^w)+ :#0DNPPl[8Zji_߇:;0Йr xQj$1_uS6 MÐcOcOu*ty>MH[IUf<D@449#!dJw!!MN˭mkAiؿ HGSÙeRٽg2?1$v8dGíX2Ә<6)(llb (Jid!c`i&dbڹ"O0 _:?EZ?;cƒ!y(d*}JeI9~ReE"R+K']['N $Id\3Zb <H1;Ly~ }t7Oe*Gh 7F#6dSTǑ1̈9a!PiPVO@{0Wɟq6}F:ŭIJj'n0t:f1QwSFZpEf :~2:) 4jnqqL{ t2<={KvpoF3plˍ%Fʬc V-JO0y%RNMlؠĒHN5+hƘ.<cX= Ee0a"}{" Rcj`&e|~7.0r'89;R &~x4M;;{ {}k^àB{߇TNUL`1(U𲇲JI(&P̺Nnz[;fYSؘPF? k͖K57n'n.L&"9OyZIeHഹb O'ed;L$6RΰH_,X恘%D@*{+:qU씾9ۆQ(,3:l\RJF3\f\0nqzbrH|管-RLzl hS:9ΒU|~ZDir;cbF/+F`sHXҪq@'8p'9;mSTPvdמNC(W˖y>5odl똍NCX|\ V7z&liM鞅HS)ip3$tɺM|#'&%8^}m5a:'z0kHDHfT0ޑk.Ү8 ľtw>0v7m[111`@ 2gn[URTF1@@0@D h>dƌCäS~Qڹ:U;aD wt*npn@2H0bЩɕ5'y& J(8BlxҌ?ݎmNDzlŎbӖN (J)UlyRp΋yNq_fvbn[rs#/}"=r("!2@Q 8B!KyaWkƖC"ucI,r'D I:F:csw{ bJy]A_ΊEo֙4cϫ& '&T0p&I$I0E()s m7pkAQNJrzB3Kc} v5E2.|eܽCO62+6xsΰwv`_a_`90ؓPԌHʄsEP"@ hDaPu:Qڹ I} BMS3|:j¶'`}w#nkÐ.FՐaC_ o>% ay!ק =^/OG0(A@Px;"j|"yoz ʛU#oz_ްZ/_|Y^.<}yOA9s=~k( 愬FλQ/CPa)P>"Pxp3̚Օ7,Pʙ<9lG ;;`_np8}>Qcgt :P65'izQܰ(( чf#Hcŗ??bO'.os4,Ā/6ݍ= ~] ~cb@3X依AO1L=BQ<@͐aН(ʇS-C1yy@a_6E^҄m*"-!,`<6qϣ1>]_YЊ$l^oO& ).øjB@l @x_YZTL ύ bBNAV<y_PI\: ږ9u^N+BF&=uVۤ`cD'WQy}9l kgW [jE8f'~~ō,]' G&rMl|@g'Ij}e[d:[X>S!l]y wc?{ ˖-ҥK1|p!C'bCJedPLO,Y^f;1R!0*V\g(p. rw^<ēo_W1k^q$A~:"v,hk-1d@s<]>>g 0,-h "vr>ɉNuk>+;+Thf]ܓo T K2 7䑎K+eX6QZ pS)ѓ1AO^A7T*8uV)8I\iv{r щO@݈Q@\Njʅӣ43f3p،0`eE0ķeU ,HVK[K`#,ߕzyej۶o/ҥɿM6elgz(lDaD+psjDž\ȳZ~e ]N:,Z"Ԉp]D9ňYtUO?4^~eq쥆!]k',L r: hqxi?ϯ8XKTb5uЌ}-Q! .p A8. im.) Lw#Zp0q tʮfyhG CՐ-3(}vF4A>+c֮:#wF0)b8 Vg(wnXb+7CX%)6;_ZWVqd >#1q,R 1$C'CcXT'҉XB(u hv04|(1t< ~ˏ;}A_{nOaÆaرhoo;#bntwwcx7_PSS>\0o.N>TUW| YrLĀc|Bb9`\?&P0NddI&G& :_bLx'sBLIK3 72 `}o]RT9 DXVe#R0ʹMњ^߭2b~S!*D"N+渹>\g[3bs\ͯs~EDh+1q ׀g 464" BB8;*BeqGlu,0jwNT*xNt>b M"C`h17ln3Hr;O)g+6ܞ+r!vzDS8*m:x:+SM8 @0&m=^t!OÙw{{ߋLjvZklٲׯa^K.EHq }8Յ;7xc zAAZK(EaS81ryr,ۊ2-R_/IPPyU )iPht`8'*rC0l͠_ᶁ DdTݫyw0n<'OI Ͷud,yTqI z5],tB鮜ӝbKE@SO7"-==- A}QhhhȄ̙(R3v ƌ?7n؀{N{;wksNij'__ L#BAzC̀PV3r\__g : NʶvVyrF`^X: O%+^09UxT#ɯda-yZ)%ee R j3GFd7?˥ZO]U<{1J8w͚o6{B%@Hs׬,{24LPU.AK@(YPq Q\hw1c|@9\Nv߽b~rrGܾNo'g~F)y^'8q2j F(ڙ;9(O y!CQ6D?a/b8餓WZK.p mw@pn)o2](^6I7_2l^<)o (wCA\ڨCةԇ=OhF4hPN!*w Qvr-<9fBJ 7^:JY*ZE)F)ggK4Z8$F~*Fa2'/ =1w} Ͱ, o/ݻ%ەZAϪAu@ԏKS"&~f%kjg6]@wBd %hqz4׮4/]+*u(T\FUCM@iZfm'l"egrA0$o坿C,X5z֬R#@\fI?SWwn#E#H]"`g^٥vĩ΢ҁ"&DHg .gi JoAyCD9>@'pb۶m7xW]u ! *-C{JGup~.:C==PRb6;0IW*؅UM%emJ>DMWꍿ0X%Ľǹ)PN -]ޥ0Q0n:(>PzQ&b't Á8Gwxv׽z4%(f-PT EUk`COBm!BM,a罂9EBzFOQ$@ւ UF jA2 _-jEwPފi`Ӑ̃ Z' T}6btM˖-Ê+pG M2M( `CQġ@J`\^z>hs5_N= nYhlƈVJ7/8@V)6Yd^>G%}j Z{;~VҚRk ʭh2QMMo(,qL:;5SBaV׭EqG+"YλLqq,ktAISP:T.#n݂7נ T~2=OO4j:[6fA.:f)030Дvu2R99qmOMz#fƌk..{ٳɫ%J5JKCf*Gp ~3cFim"ljLDQ ˜fI @֖!ưg>m!FlaHf\4dž݌vY%%Ўk;iU80]s 2C:ن`ە E м-y9|׮.Jvʒ9u/csaan(ЧqT0_3i(єcGpAZ;^<)BjO'뙱.e I$N(=0=$+ +AS:[EZH*SO09!.JBK:t\WGė-sVrB\ #6iޠH^#.AK.@|4>ԏt0@{8/{- HmnB10`4yjFrԚD#P۷b@A)f KbP w6k)R#p<#? /6nĄ *ވqcŊXz5֬Y5k`ciӦaڴi>}:>hDQq8$W\[>1͛7ƍʕ/˜;i${"Q* /`ɒ%x'c>Ys=^x˖-1m4̚5 W^y%ۗ*~`$-螞,\K.͛yftwwc„ 8q": \zhllb*V\+WW^qaO LhIMt5^z%q_|/"q|13Pyv93kd:u꫿$3Dkkk;&zHy8wy'vލ; 't:(رO<~a,Ywocϖ :u|WaըƬYp#ckk_܃fo 5ɘu]Qտg23vu&zLed&9>E嚿z  ۜ <8_aK~/~|;GopWbXr%>j̟??sO}8Cpek 6 ?Q]]-K.\o}[XhQfWo}+'/SLu] AqXv-.bttt;{^x?#ۇL8֭Cww=o3ŋQUU \7B.{?{MvW_}5~//=sqoFKK .r<9rdv >aǎ8p-d͗.]k\0(bv[?PK@]eAFߵ,C Cn ?rO wka{ȐJֻ9Z #@rx$ڣJ!\QC2>wM$P$02?e踌B]-|HR7N8jh)Xt}Q9Fg}2 ދA.pBm-t_*3қ37P[ uuy]9cEU~Y/ nZܘN4uvl޼YoCWWN=Tr-6+2?80 vvv_:ocMvz쨫CUU(-17k ;SNAfs1JL8 ̳ǹ瞛|_~9s{pwcqUWs7mڄ {ʵy9hjnʔSM~~Ĉ7x5QcO^vnTm&&EMr݇/%\;v#ߎAw&jy)]x ͻ.rFZ? 3鐦et3U0vDQgE;'b=Rۧ,TBՁt{Q=xh17 i|P91P{{I~ULN)MY{|!aa5ڡZ˔kW[=l̕كήN&+p=5W_cQx*)S[na;l;K/(I#|Sm۷[8h ."e˗SK ;~l[ɪBBÇg≯|?y?T >{U8?=iБv 4\-uQ]U+<)S[/[> =H/%?Hʉ յ58׿WJR kr ;vĵ_ "( 7܀ :oB=ed\ugc:ҼY:I:ouQuAppR{\p|Z~[jLC;3[K|- B;G,dt{vH$H"s` ]3.loqƍ88x|n ~4>>Ҟ o!,`-_ I : cߗ)N;M\k_z=)?֐{,Ə/wŋ% \CXwygymϥGhcʕI@v1|DfLO\&OÓ?|q $%][b1;Ǐ T[?U:=;_P,ք͛7cw1њj$!m[ 5lAz*Fm*T.fO ENm 43Di}fBܡ#dD*dIr4yJ4I\(iN~#sx!qV3؎46\;Xk#[ؑK)kmkEv81Ί5)' Ҍ*hHz\~&ɰ_[TR<2"YkmM,yã$2Ml9Qz)0{ry }JnvL Mg;u}/>0^Zއ`h> TO>:5gFgv>5ږ>O?r՚={\Ѐ@ȣB<"BlP/3^hGxC ^~޽t?]ODoh^x8G6mdR%/̴|˗/޽{qgYSz̘r!b~|Gm {O*].Dӟf_Rz s6.G8}ҁSٲ[vz-{/X/ihԩ9tA#*",+SRT=a'#q?^g \l$q&̜74@FE} W "Xk3!lyz%C{쥯 b!% b~HCԑIG>elވVP*Aq ҿتFQu3-Y}N&NFөgvfF)gzwZcCбt6)3T.o/7m@iNP Uk;8[?F;T$`}<>hWK, ;w\ a|^y啊sݝw|@b֭k9o>1\vezwmuR GqDʡlmA6m3ƒuPƏ~#)Q[]-Z_:r qK5sf}OT*Q6lbؙ^M|fqJ~rw`JW@JT0]ݹ\===3fl/X7v-Q"ˊ%a˖ۛ!K*xg9C X(/B*tw9 gMS Yc6+{ nS V@VQ2ɞ+c&,ٶ4*-[toi;:%XeB<-e6OL}HrMO@HL'NFqk z~uo!nݾ/ݵ;Yhq-~^{ג4"T76U4J^1ƼފfҨIN<]wDi} oܶ>kT_U[gs.KgFAi:6M,ǘo\h$`e Egeݺ;M,io( opY{"$cNJ{q׮Ɂ@.@~atvu(9BkkkfG`+?r.(N"R6n(FpPUZn:ȁGYiSMnm5O!_Mb&oY<*!A50_SJ]8Blw߽{ jݚR:$9f?,zM:w^GǿmU\VpƺE/5Ĥ]%)C(ɵJu%)lQЮzšגT;Emwif=i-vcA;`2Xtm8J_r x2h~#i+A*g BɆY0`H#0im{ր C'Ko5 '1ymMVzʇUU|!|>@T6o.=ݠhl4ލoc_Ơu#{{ /DS4+\о}.8;H4k"a#/'e))@J""Y7M `9۷oOj)DAL;=ܹs`Μzgoa̙8s IDATIJelze 疢sIXTX V3ae"۶mLԇ)wl^ZcŊ4icI|&D%eS:AvPz,c el}0 G]߅(^N:rMY9@)DSPGU&{Lt(m OI)intٕH% QV߾+hE(UWݝT+XUjU]ֱ4u\Ŝ3ǰ{0`4b ET!VvYB0[l gЀs9G|6dȐAC"^d^Ï~#Ж/_͛7wan޼y֠ 8~_@v/sgg'`PJӟ4.G?7T?z1C`PIN 0iێ5i!q5q1 h(zyvJ% :2Nq;^=w \j@P<0v@H컰l4`Qc(GP5,Z"=A}KNR ?=\444y2eJРd^*xw(*d1ydy䨑8jѢE+kVqONCss3 I& a g U!wNuˬCl0kw Q`7ڊ^uz-W^+BaI6nimmMw#^^K BRcloIT^)b揫hZo&Ii-AC܂02:FK[uց*"so형߂Be=Un!eCmR)5ȗb_34 ph ht '9{h҄ oΟ}oK%.;hD@=ʰPh`"1!N'=jHpH@#ZS&goG`穒\;Ø1cD&s,Zbn]]]9s󻻻#K0}Ck /y+r&=G {h@Kl i@wSQv‰'92&_Ñj p:ba@T c>!Ǧ=phfq5hel'=6Pj!'nV[hvCK߁\H?b5o!i' "gnǁ ^`N29+-x ){8XX#jBBh݄?6Fw^ADU@Նs׭N<{~Q齒q*xcr}iJV leG>{PlT … qwAk|#*EqAbW^y?.l߾{<9- -VՖ!*(ǫ҅/t(^5 P͙3Gy??3k^#Z;$ Y\3hNwbP2oc?wMyYL"r)46/tMIj\&N&] 0xQb| Qdܜ 2UkVEDUל9V3 mVg:Ø6/,-*oXX;͢{nOz1Q(B݌á@-{zjtMxFM7݄>|8>oa/q%85'fԌ5ƣfxTBÀ~ꁃP7v<ƎG;!7njOD{+gn49y~sP5ѬIT2<_ސd&sqf$=ˉK6oƗe|OzO6,͟AL>~_ӓilr1sFN Mzy箭Ň>a_={Sccؼs}AAah\AyDlwܙ9߾},+|E:(q9sa,O:ton>-ӚO.CaɎɞ{P,Ax{p)dO~6m n݂k636 -DKK;WMz)Ll 3 ;ul.B=Yv"Hifl7@єr@9e iwDɎR|ܝ9|FQ#׹D /;tWԆJiHo0@i%F Fcнv5R q!٥u"°1gPq:E?pjdLfwn!M0vDQ)R8O1n_^4%1D:P O<byz!tI;n 4ΎNlnٌ-ؼy3ZZ6M|2A ǏǕ < ׳] Kn|^믿_\F‘?]t!E0!E)2Ҳeu| àA9=9G0* b.v[11TF3E c 7`#ӲHw2[&NhtJ"pwnկ}U2;Î]/LtvO8Ͽ̙s6L-y&\y啈?<Bxb,\Æ ??^ǎ;Cz饗SNGC9;vĊW;Ygx@| Fƒ: RTuieØE Pqv 0WH t]J<=ѕpѳԊt6͝@i; 2/iRIe r%[{(l} mT Bi7 ?,2+1LkRAv^FWk6Sy{jN)$"g2wqS*#*$BYTSBf+W$kYW2B"7kyU@j"H%?C!&`GM-;05V n]+l%[D@QEM(N@WZpp\A aF<~gnnnR mmm߭'|2͛#<5p0=r[n~UGu8SQWW^}=8x455+_5WU0_;Q(p}YJYxV /;#9s]b`uK01r$nw6||o]k&6vX\6*\.gwsCf>e|0}4>J8ƭ?qꩧ{11vZ^ڵ ϯ(GSN7MxxOC'|#E ;wWUXuxӗG}r :,{qb Y#9jB:d~v7oW4u‹ƾ,&Jx+gYVKFFUk7+)돇O_~֛%\x];w#"rt(ٳU=G(=z~~+ ]ݩQW.$Z[ٯdB?ad:%2*0j:Oq͚5KVWWMMMhjj¨Q0c ̘1|%/[ok֬ICʼn)1F3fsfCm۶aܹ> džwqwY DZy 2W\q͛[STnZs :7to7DMGy$n?_7믋'N3<^z)]G|+xGSQ(p5d@pmas}q: 'tRO}Bo\=f"@Vȩt;:s]\*"=Pcν5$n ZH^K1/+@:u\h4DP>ѱ#Tr I3!rR[Gƨd=P+Fvȗ--znmɓ1}4/[WR80tP֒in>[4XAIS+o3.Vz{J\uD"\l-GʈӇş`?.  dG?I DJMЇ.4V%KpilLd? 6~zM29=QC2 iI y7ܕ] ;d&jku%@S;`+ʆ(C Vyk*1:oTiIz5 (0$ άÆG3b)MtL4=gEXmUz)mJ90+9˅Zc j-MLK;vjP‚k%a 4I|@1)9k*c!Ԧzj SȺz??/6;!jô$>Hgnw^ÊҦ&$ bmȾDml訉go'ᅢ)=50`C{|;XA5㥩?%1}=v^\ǻ { Xa|+o} -_3L`pceMN p}5Z Z8S^;&C f>xcͮGP7:!y3,z[WId9{9T쬥0&B΅!S}y'v=5Πӯ)W`kwd"knl<Ƣ&8dϘNTM9C8p<qJ^/#qW_y.d0j EƾԿˆ.4W/\\pfߊ`}e Oܬ@%StOp6yv\xs7TQ}+K_~R `b5*˭(z{(ywQ-˹ }e^羄SUMMX ]S IDATT PcNsj*BLr%FrPzP*fX(a 1ݡ wdUU(֖'LueƾhPTEɏsO`Oתt&oMTxgIio6#OŋhWêL{cե, Ox"uQPklձVTC'ť|M F-e7,9+(>οUQi Rյ\ ܣ$hLt*VY&6nb<} V"p lkۿeF+Vƾ70neCW_ܮjoݎ]ƾŨzI y^ r0 u5f)0:_!x9Aggߍٲ!.jl Y^p4]3,s[TbԲ́UH&X.㢓443Y 䒟$JiF]Lm%X`q|-5)8MԹ//׏T^CzY6tz<_E:/[ԥdHG(9Z}XIM[j}T :$\T22+f.i !K|fTRܣ2kK'OϜkyQā'ut M3A[,AlwX[NJQmTn=1p"J6",rFG; y]ц>֯7O19؅x>᥻X?qk} H$VV77A{51]zC'Hq%PU Ͻӟ uHTPW&Ƹ47[s^Хg (,y貃r" a`LF$؛ƝC$~<`9a qtюa_ή)xgg>gͪG*( >KœV#AsǠsIGG째Nb.iq*%~*Q2n*I]A@}!R\(LAG-#O^$N">G :7^"{rQjJHqtZYLZh>Kw1֧!P'WdRa'HBlP_$́I&!(G)5T^1Ќn_GxArDFW It%ȫy`iTڼw*3$$~lb]:3 *_r>4|O).t9!e}?:a/D0 VV>u( j2sQO\9#B*ٴ鑪{ zj2Z}Z{ߴ]clysMM/COIjM4?K^@աB<9TbPp|t>qul}r0p_CM:jM=ҵ1&7n[Tm/ Dvej4TDrEHTy UuLc>(O*ɲk6y7t [`LVRJv@ey]282T5ǜ2|c&ϣIGLpXjP|0ChZjy$5WrkaVY͢czq5mA JJGfMu̒*TV`eU B)At1;Ac;( ʀJf%RB^bbO0HFo))%YćY0MCk58Zc&H^)D) C_өA!K)^cn8D5M'Z;q*:/Oj5a\3~^W\ymkd&3Px%_ƨ*9y56sN9}nqtx6 l\޲;=00(C?Oc[HS)pvvy`}99\|C' SA>pVuc|׾2"LX+!X7TxuV5*y{  ҿԠN̋Cnybnm{8~s6T[cg]6*`Gv7y?_`ABVjrsĽ]9c"=I5ك9og;o b%*"9cI0+/bIS oV V^_'RWSlkp|~#W^Җ%~U/(:>z*߿Pn%2y_X=^e^,Ky $"r HBol>|$-ΐDGO_Xl㿈/>`ie"۷o fce-miKWܹe(-miK[Җ-miK[Җ-miK[Җ-miKo?Bʥ|6UIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/faq.png0000644000175000017510000006547200000000000016561 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME!1 IDATx{eUu/{sM74 "5Ĉ(ox^Ǹ&#ϑx34ɗī1(!$(Q>"B@Py@W眽1kVUs6GUZs9ל]kt5F]kt5F]kt5F]kt5]w nFt5F]?_}e|n:(hYOx w~Gs?VSx! Ѳ, "r)e|[z5&''G3Fzt5r~<9`||*c31VdT!XS6c9.&sA1#O~aGpL?BmuQGazzFcC :/AOz9#k'2Z@B?e)I .Lq"l=-i] e;㬊Ag"xCje:>0F%L#kVە6,MTi͂:+0"> Xm2Q^ozd}oʰn,/YGvmm#ƽ7agĆ51/(X%L :?~C&sDd2T$0X*  '`3"? IH n{_+ $4p͆_ nl-"VI ̋3@┐pp~hX@ 8kDn$.JxGR#`ĿMFf,bdá?(+1jKJU*uos+VaX`Њ6);U/?I u6dȠSNa R zQ *@:C.c_ i<0zgDi)ttuc)Fn#:Vzc>rI;IX'WvB`|;r͍D4 Zdb.A4HkpUOĉ?8t!~/~׹!P`eY9FPw# vf{z*w" KЯ}qWy-x x мf:wb2rt9FKP{+@SP$b%(H$w(p`@8TZ=b &7N}AI|bB%ʹYYjA!J q⏵MW{K^RC  Ҳ e#s$ Uǟ(H\2$-{U/h7Ű7\oXVe7Ot_(emɒEb.hqRo,1CG 2l'nii]F(Hʂ*5n[/ú3|Ū<378b"CO9B3֢sK8Lcsl><fL_%`2eB9էu{"\vuck *rt5F׏U~h8QIL|ž ܴ-+;~f}NF8TI02:BְS7R Y <QdfKFOpQQ ȫ:䞛|! ǵQr!M{jkXsIDG@- E!&`:vzx( + TnއɁV(%Im-Ɇt"086: u "̿ QSJv>^WscAv.D]|-p(M$#& ,Qaa\ryE.ǫ֗ £> ǰ`9q`?I FR&pۡyPb lJ³bBI(šsj}hx REnBt:H$*vܚF߄z5vd2{SC@2TBH@, NGSiӻ؏,1>m<C 7@)|C@\08L)nűkBX(Y xf)ZeP h0T}PYB߉@Ā <1f*V(YPr;6!Y/ 0v2ܶ1N[NJ\T:ݣ}d B<7չn"e8B,AGMb额&s..NYr2v-1$Ahvgqf!﯑Ajb2O%<&Fz0?B{P3`6fr+|DɁȡ+j`о!PbN{;yRQ7Q:)`Ea`B,@%W % :nYW` X+ƣr "(qP%bu@2oAqL62(IVUheY hIw|qT $eTA S+pBo LL:|<*TtR7ѡA_ "u Fx_ =p;9 A"rO`dˎ%2,@3E3P1 ~(Kgī V߇E@yvq߆<6α'\= 3yAU(*@PVgz9ndx>PC+$dpKh&FP/-" <XUK)ƹjf ~jG `m)DB!iHN"XE D㠕|j#w+D㼌c' iԾQ`WZm9Y w&UBLsV)?K8ֈp$WQuٖr@KE-S/  Q~9D[S'CvVGgQF׎b%rYy_ӪNB`g>rFFF@JTEU&xO=kӭ,Rft+I sýD/ԇ#V*8t:iUZc Y&(ND,w.vs>êU^r3WՋ@2}!Y`qRק!}L^PC0{7Qs?򩵠x`ē1j9f {{ I_> 1)'N L h`d)@oh?E-M6Nyڑ5?@#KU䗄2-# ukB%c4:2tld{KJz.e yQ\n-C̰VxqZI|/YYۈ]^ZQZ?UIzZ&n .d-!mo*vpݒ@%uPAqӽ ~Gy&x`vDGO"hf/hvW l\vО߷2?:8l.tN#p1`dq"D`O_]iaP2zY's|`:j]kt*<g#iƟCoS5p`FbjCMeԙA Y]uN2eA4 v?@U,Q.c^wh'6.nF1y ʌicWؼħ d`~PK3?- ?DzV,I ",.. _yY 3#ZѤTŶm7Y(8 b<@rN4lCPO>/駟ƞ={gn0 6l؀ 6`Q[pϟSN:%WVE@I1E5LBq3 !%C1d %s5`L.p6Qs):U:B3hYO!v6t3<^i*i8 v: bPiQy| bҀ0JHhVD$:N*8YD̵Ns@=1@߫I3k'~MԠa%!LF:JeCjj5JY# hrɫA4薪5D*,)N&b2 /qG |ae7+H NjVX3A &I*DmR](ggsDQ #6!2 H«6藂s0W z ǽ;%H3i@+)Ry -7߂w n76VY ~a\uUqyoDRh*AVЀtI3t؏|~O=/`8sUl޼٣I-҇KCmTVhsr6b̳/Mu]Ɩ ]ް&LS9xVP)3od mvU-?9Ba֤H"5(\-rH}4Gً8p^8Ir 0 0 dkEhKfbUa)=[q@.vrj1"`"t0ӫ~%xj`D+`n3\ [*G"G>IP dFAz= qhNggIp_طuaA(P]sB\pO?%clC %6u+*<m?^!z o~q}ոoݺ13fgg133'AJH1?xꩧsnCDG. X&pWP|+q?Rl>r3&&&sN<|só>ԧwaj4RtQ(Sj6i{SPܞ<~I:z1M ](&< s\խ̓FLki0mXH P[sIq_]>jwe tYB" JtQ?)t2ǭCJ8KϽuYG~}-ꂟpM%&_@@T jB*a`kJqtv PsY;B5އyt= +e(&=b36nD>9 _IUvLrH%cayQt'j} OL 7t%pߝ070^ J$x >V6m@0 [n{e^W\q^ ŏ2w>kEW0A }p n+Js9IH@قlٽ|;ol?N;-lݺgzށ=܃^C??cm{ @D*i?J^D11@B%YN$SFiy#Gx5"] i k}З$OiQc Y$@Ce2>R,ő+.d0 ;p3}7tYa3K%YJU{2K3?dl{:]"t6L{f]3x0 >,T sƷODgd+&uu dqW{ X1y⋐e9PV^y 3۷cqfg۳c7Xw 'Ljg$*;KyRd| ő闒 <# cuV\x_)1Fڲ~|I\tE7x`HYb-[j1^3(cE4O+ Ɛ4>rNcZAJ&#="\!cH -H4=Cd= /h{Ѿ@tľŒ{[ԴZ7{D2hhuZAL펭= UO4~~?\%pnve];vl۶ _=;O(~񶷽 =Pawh28AġDa.wJuS O5ٱegPۊ$SR:)U.MK*E/}Kِ7X<\)}zKO$OH%F"#CNR%Zz6ZAIGdQ戆r7Hx x!YK9щϏ+$[@׹49ԻPPݓڈ$d0bawݍ{P..B(Cwfo*jP c326}cW2WS/9@ P 0)~xj;z@9?WwacA,5D0ew 0fguj!e2MC) E,^zMFl4l@m 5,"8sHHh/~۷oo3 vZ#S^`0oo`߾}wbʕi=SDQ/1>>__ìɫMm=1T3јw4, Dhniԟ2!0#7:פ0N0AЬXņ'$TI+z~`O:NЍ3Q<~ &!GREҧ(׬OA[GdE'L}GQ‡J# tHBJB'rl$N_I#ԔfED[$lMs,;jCg J5?[LI>P"(Pdu='  g.:䞗}` <$v|xoЮ],.V@gFd]piSYUWaŚqz QLLUJ ~{xއ<0`A)@k t@(ˀ>z d+0Woq5=/a%:qD 쬳r'tCGnc?~4j1C،ɜy{7䤓ԜamvZ\x=oߎ7iWnLvKrܳ9olv*RFv`ʆ*GG!FY90k#4!+׋;Y"RnXE|ua#3,AhՃ\a>vZ7 s=#C+3l0$(_ǎ-dtB G~92>VYE$ցUݬ;ՏwzdžQG蔃jl <Ds+\* \tEsO]vü SO??~u}f~~+ 2%fo{O~2Ϳz+l۶mdph~fnM^e󖿦)fKJ!Ӓ]X$[}l#"qy Ð֮*$^:-'I pN ,1ϲ9Y $C}$=iJ,F -}i55q::_TL5(09* 69ONS ?TLL!;tp2;>4rn N\q*Tl}޽?.0wwovI&GUuuVϽ%qƫԽ7o*@:ۚ "j x)O@ѐgMh'f2MYJQ F]p\sm45Cn7+ œr yꯘ(! Br5G$ ;KPoAAGH44eإM/L^hciyFCfh dMwD]Hr=% :G- }뽠;~UJz {9;1 W20!vF>'`bE/D[ zA" i#\ʄ*횦~.֯\HXيX&, pp,2dS 0,A<2$toU49D]~OV^;qqI<,aze]rW]u.BNppVjqhjsq x3N?F&"(L ǜwaп/||bu# ׼--,ԺgMBH)YU2zskP-jهZҰߛ*ElWQ@ݭD9|K¾kewq)Tj/c%G}c mtш6EBfV1 RzMyvb 㥓2[::ʥ3O5$ atF XԬ:zu{!1heg"Qm8tbD2"v l+g3'L|D ϜO]%fk9aU-+4C1l!8X8c{N)0raEb8֮ћb)/FgZ%z=4'UR ,cd"^=:F [n^pAC~78W "?!C t"2"3I_:?g($)q~4CtqJ&),4 :'qA b>5qNBpNS$Oȶ%5> F`yAI;hg:"@ROSc@[¹ //ї)`0P 1NE ** 4/&aGX -@#YD50 hp/bDyxQAQ}D&K,DP`Cxpwf@j%3yi2(tb*2d"4nOQHK~37+>0KXq̐A`ėfq*j'j\՞A*CKڒT%,-Ӓ %k_]}uX%Re஻jg8֖EFDNf!=+_nmLd<[֤4@C E*i<$JkQ`evʮ5yR5Kv8eʦ"2yi{8iN;9X!i'i12$iGRPn8?-{Kυ$'XȨ<,-%2L/d Fk-cE$2 LȢ B0ޓL8LQ둍ԝPEQZ&dKj :;a = <_FہTCx\Ar ~gNˢ9d¶9(dW嘯2T,A[՘]pz[]]f.ԼH~k_?+VNAg:uQv߸;}vs16w}wcܧzjAoaW7onw}NJ+G2>:~5 C=Cd>AvF߿QKcۭ͒`S+0D3-˨`!z*4A:F~Mݨ/1ٰ$ؒҌX! ȄZmE>e<:,@h{sozdH26* \1v fEpeT?@r%VZo=3cḾeTaB saSßcQiخLX.>񏇌iA-lgvv֍O_k׮m271{%B&})KL5ܴk3*S }bݦ,%BOFRmS9[Þ={pwbϞ=EE"yFٝn\r%Q\|?~Mt9\/ضlHdjժ9hj_IA r`?ۡHE!wfj Cl.䛺Aeq(Qe[Bp ??N8tӭ5W///Aoooẃq(@A^ntf!@AN׸pj5sDzS΃5GvY~V"͝kš=uGѡt9pwmY@0Q|{%VRԥ͒wX4:7l,se%Zlax5ڐjk{psJ+.=zj9?{!EĠakj[[kjmjth4Ra1DpFUZ)r}?SvN'{uQۂΖvߤk9@}Oc5rK>d*,Xs0C׍L}`!QD|A іAՀ4YFQXHA& y}fsa 7OsӠ,u:F@ ׾G\| Ǝ=Nd9H\a,= \R9ys9<,w^ݻ;+ȡ}?K/ue>OW~WeYOZm]ƚG" ^4.i׮YҝK$ 40D=R&cL)79PIdd)*󫱌x[mxR}IcdyVe[CS}MT4rS\re$iۡ=.6!kX$ 4^jE>()ItK>ia2\_GRP tW܈6*"twf~۳O^=p}2P\$Ȳ /.r%68_Fw(- ",$DHt~\ψ{ WzG_ܗr-طo6mbۮSN9z*~;vn937nL W=0Fz ^~=I0ExcT8YW1ʀ֜ZMdgv6a &՟=?{ FOO܄:ԻKYq6}vA $( 3;]r&sӦM#F+vUۈCjxv A:F, 2 vs#˼vdmqx\c#mJM%޶so߅7q6ƶojQU) ߛPSt8yO =hRVwf7 v&Jr~J+K, C.p ؝D zl3xVi]pٕ(ʱܫY`gۨ77M781rsB7r <[ځ0|By)yņyU*2_e*X@Z]Xs;_'OE:A ^b}[_Dn-Pq}>W !QTs,(@.B؀zš,bZ;D cJ <`GS[mۆ/}K,hݻ7޽{͡@bΊ@o>qSnSqV * xFŦ]maVf>Y#ԵDA2<=jNhG2^b۝( gdgͩ)"'ݘԱ^c Y8 "Fv650F(ix^WS_C_JM iZAPr&2C 4Q49C)XE ;5֕`lH0 d֦k )jZv)9 YGlVLFK!zcS qFٜ6%ץ/1Wbߜk9Ԍs A J&>(f=T @̢?kŶp̥cÙg!_ ei#S!F+cȌi2rƠfw&%& 4@=4nJvYgE ɾp뭷:'R?z+~w~%1G}4{>`$ Pa f41A|8+ JhLZۀŘiFJ>R)4N:̥|ͱ5Z@[-d15H|Xci{Z佹;Hj_K:VZ`rksC5TJ^"H PZ4Pab, IDAT2VLK?N.rLq?XU0c \w@u72sJΨ>gd <9APQ](]Ъyܾ{DȲܔeSǟ#_ee¨I 8ǂD т uyZں1€WGyf\~_`[a?裏eO}S_޽v¦M9سgO%5FQvib2B**s90p̍!nJh: R}r/2c`2KFC(Rduh =ja̟Nm+Gr#YԆC2FE1{P\CJ4o P v iã~ELh99  9Bk\QKўkʜK6 Ջd/?8Wu#r4VlPV*&0gQVQݿX>s vkP jK7ѩȂ'4+*,^ZP TS* )Ћvk.t:: $53~ +W {H r˒zMy@ yoA pcW8 [΁t+{D!4?p@ x% F ' ]*#ܱA@9G;vٱi0xYdhrK!HY" 9̥3%h` p^5PO|j ;O#Ȋi@Ԟ>FT3R(DEW1^?߈CyLA#!37̼5r#oЄdcc4P[gGC^w@f j9ςSk{hݏ \5V "ŠF-$ T*BTX7a,OÃDLH}F5b }~o.5$ˁ,PaƎ8(%C4(g@; 0ukkc GA9A먏\pHʚ1aPL>0*ZH9 toYgUkxĶV y\o2Vy5877|'NR_y{;weDuaW/R4nƘ.@9U/!V$k^a;65{t]#q\pJl8̮:qUs80Z,a e+Cˊ+;}2/803Ժy|mAf,"8NSzh:gK.*j^sTՆG>njYʂ5+{G`s̄pd EQ[)i8) wU> UyvL ^ ~L{[& I@;_~5c=[žߓ+-NY ctiYPb6++[+@Y?|~ifDQ}rsNn2:a?}×-zjMtt::#}JB}E 7 i9姮d2lD0vs΢#N앺9%1b + @¦,vXb/߮ q9Q2Y;!^F8K{{+tpOp.!dk9TkK0aA)UHcoܲ;,[|lL29]N¡Cq"V-,KtrI NbeQK]hT4[wK[)A`CGC7['sZj.@b}ۑIL U 3339ˉ 2m"\Kl|*Uu*/PR c!B7700!9@ND0|_>3,Ñ+2|ղ:.CD; 2,..&v{Ϣuʫ[l+_DkPAg,;[: zj~'~UhK.wyG+q‰'6l03O?o1xqw ۖ9Ҧ3mmҺV1R}j i2D iʠ ȐBGݤlkܺҤR۶#󖺗 -.;7X%D ZJeiIim+pje79\PuMMXt9 ?T䉉+nv?K/{pO`̆CÞށ“#__cq'I3=mSn2y IףIɂ(g iV%׆rrFKXؽLH7VT1*\%aQYCvIkTE(:хשVPmuhp-D#]AٜHhJHg&jSz>9^brzQ R%VH:q rj][R$G15\kRL ($+)lT zФ"aCLnnKZ_x@<4c0|Fx'qDcG00a=ήdBO]3G;j| U5̟+}6ecTx?U>U]vKغ@ȱo-8Uy*Ϭ ANUܟɯsI%nnc`U 31~sÝwȣ CCH"”sn姡P6/^| _|4w|xfV{u/SOUW]=:Cb؞-{S"sv`Om Nͱ1{UhGJQU0%+b({[MTfõƈ>UY%cZT]5ȡZei}uu.Z7-1C {s RU}/V^RhZ|rpXV~@UY ^eZi^9ʽoѭ:)PX8G}4mۆN> t2VZ]Ow gS(߉mzU}x[9/D|C"U)wY;x,YmD1)0E 5"DEi(ScmxbFX0xy-qˀ"5_4y)}K&-'d^,ҢGe1kќ,W4:|\ U̯&ʁL01r`"2xVrk;T ;'E~Q,p fae%N˘x5Bq.7nb,0c<KYcrl[3wecyn=?뢋.-sw-s=A3k5gy|av/Ǜ&s9vd]|y,߫FA,脬BY&lٸ pts̀?Ơwڠw6]s"@Pzg _w%o|TUus[mbc _Yl-0n h X 0Wfl^㔵N\z5fl{~ C˨qQ tvA-6C˒l3Kp30:X7Qצ/Tu|^EX*"uaQυș /J & c3N;*Äg,Tl~}Q|XD=R[YS,ps8f6Ik Ą1hEJV|6P?$RrZSkQI[YOXPQ o;yۻK_ 1&$x G)D$$`"BOR^yB8(N NwG/DU8>{vpW:ƺ,6G2Wd>T5y%ɬ<ÊB) u(R8Wrփ]g._K ㏆8>[ Oỏs &L02ׁ)W:߮ XJ 7R)_KUp/P*TJ݄I^֥\XKqa-0%ܾ?6'Hh]H"̉,,wTMh޲46 hPW IY+?BXY'5.ab/ YRRa~${ЖƳ71z:$ŤLX$"*l~W/-YC )k/T%IHwVY@e؎ֻe)LKpʕР8iII`&0ɀsR7~yQՓ甀wA7#u%IRѿ&d1fYoq(Icfb>-WD4'G).bsmӽC+(C*yw}+++J5Q5Bg=ʖ$ zݡ3k<1pHT SOo S,'[o Lr 7@aaRJQPN0\ WXآ̦]ZdAA(,-V[3*2_zpzVS<0{qŹ$ptXK,jR=ݼJ5m! M,'DJRKbj'5 xo۪]:>#+X[_Q]IJT}DM}c7=xQ5 %R\ JRɐő~TPakg>;N 'x 41@t(hՅ%7[A}=€3Au]!GޣCć < $|K)ůtxqx̳[_]ùx|9qm;!27@ϠD !B ek/ * [j+%2fրAXpzdpf9aE{O &nZxo͛x/]uYg?( G+[kt.Y>{L6p#SƱxjN/O--K 3TիW駟⫯ƥKpe={gϞ3pc-(U01Tg xHV .a ֲ09ϒyOR~(ǫ @R&C9(#Q"'ߴ[M*UVFI79+%854%;|pKg-cBҼRnu/=m%MS 7&Mk}@=x54G4E; IDATfo$+"RdBRJb"3X*̒O7Ig/!F(˕?')vpxS`!;T 9̆ƛS}1.Aݬ4/UƖPNM$[0Aa@ng-`0LF N-X6L ӝ-'Sz]'f05QXBIߡnOrV4-tP' 1y}ὭP2 6]> ;;;xߙB+pg)>wNMcw! /L .^sσBaV?vx 03uh{hI(GY*w͙.|Zd!&8A`T] dC$M1O2.l ϸ3b?glLdK@MP+{4A$21J '`o9J107cc}6{ĝuٷ>[J5J7Gd )&O8bJ!$,S)neDZz I_ ܙ2{s88*]AU*>ac`pbdDX N 3LvLRaHCS蜏ڦ)-]0#bRڥ騋ks0.`u*= uS8 ZS $c$ å05G0YS^"XFy.w@5^O_}oC/@0;o3؈}NQ#l=w*o5Ԇ:ƊHN^5ssAOa7d1J`V.^tjX0[+hzS*cDM0 汩Ö(FyDX7sbgX^Yœk)ů 1-#A 4I04QJX,'^RJ& aO8`o;>ߙcoo'-<16d[4&Y%-RMU[[G$AVlXɚؐ>zDqscK=y!3ptjAgbtLH}9ﴚ&ńgs]@U)WLMy_cHV5MDlîkyCY[k{TrSKmm1o@YV-T-On+&9aKIuMa߶}fqtDl[R yn}fk+eJFYY(0% $xZ=)$"O*=]{4͒x)҉#ޢ^UhX@i^u˚G?,~E{P܉՗|EЌzhv~ii:=CLPX,6b[XN _IqjP"ݷ3Ɲ c;cL 2 itSO@dJ:jzϠn|7dcN' DwYgub&I0 B;s E$ > aԃ$TmX19.gx.,*>O2ܒ5^+JW Ɣ)a%8cܙZ|g0hM'S#XCAEA@!CBAE6h,@9 d6;b?'Eg xfMyU|bA;P& ?bʄGܹNKRD3|? (6v!)bb2 $^nMK\ДrM*dbXd]jFk΁f ,b>>P Of_5 D[#"3^H*XXzrϲ~OqqPWD1 crL4ִv_7D0(%X Ȕݰ3l)?/3Pvb Lq k4Gp#y_L`nr)MgBq+& k 8g:vSD ǻ޵]+P"!;<.cA1߅Z_|"(i"E2AaѐEϞB`P!.\H]13v|X\`}ğ3IP +=i.h- 0 %&$ ,{Д;|' J3-NPD)-Jy[ #X2zdA|Db렯uh yv<믮y:t`0Ng;N08CcEQKM +Ln쬳po!aeěp8~l6cfy,`Gܷ5vng?ǿws@ggc)`pZ6\zo?G鬳:묳ξ[˲,{g}:묳:묳:묳:묳:묳:묳:묳:;?(IENDB`././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0276659 stem-1.8.2/docs/_static/buttons/resources/0000755000175000017510000000000000000000000017300 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/api.xcf0000644000175000017510000022450300000000000020561 0ustar00userusergimp xcf filePBB2Bgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765 9i>API     g '@gimp-text-layer$(text "API") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 202.000000) (box-height 62.000000) (box-unit pixels) > > ` pY  +, JO)~?s[#[wp/&> IFM  #' `{ @(e fA jO ? # P w * _2 r =2 R3 zmx, ]R : |[ }aE( 62    {4 4 q f U d   5C !D){3/Z20IUR"}d. %6=< > p K2 ? / 0;t4[7k7T8A8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8B8W8p 7l3E4/ plllle2XPIcon (original)     . DXP h9p9|99XP "=494I4Y4i4y44447 8999 909@9P9`& 688677899;<=?@@?@>=:7541/+(%#"!!$,:KjdJHGECBBCDCBA@@??==>==>>?>!;Q|}vy}ysojd^ZXVUTTUTQO($0@Hp[VVWVVUVXZ\^afiloswyz{{zyxvtpn:KG@BK|QTTSRQRSTU3LXKCLPTTaTT2M]NCN}RTTmTT.JSKEUoSTTS TSTTmTT-IOJEdcTTSUX\Y[YWXVUTSTTSXZTTlUTT,HKGEs`STTS^YV[Z]^^a^]YTSTTafd[XVTSRRhTSST)FGFDz_XTSS^aSSRSRRS`g`\]]_bdfhvhea_%ECFFv^\`SRTNPRSSRQONNOQQP]QPRSTUUTW_TSTV$ECGJn]Xuvhi~ukgg]\\ CDHSnZa`|{kigghjnrtwy|xy|AEH[uRSRKjX??>?BEILO?>>?BCEHJKMMNO@EI]{RTSROTnD@ @?@?@FJ]wSTTSQUxR?@@AGKckSTTSRMhwD@@AINr^TTSPTz_C?@@AKOWTTSRNb\??@@BLOUTTSQMj^F?@@BMPVT TSTZ`psRBA?@ @EMVxVTTSZccXQM]{T?@ @HNdjTTV^abdfefmf\YWVSSUkB@ @JMreSTTWXXYi^WY[]adggf_A@ @LMxeSTTS]aSTTSROlR@ @JNvdSTTSaXSTTRQr>@ @!KQq`STTU\aUTSSTSQA@ @.KVqXTTSWbh]_adeei^STTSPtF@ @>N\ySTTSZaUWXYXX\YTTSPvF@ @EQ]QTTVTTV_UTSSTSP}@ @CQ]}RTTU]USRbYSTTSP^f?@ @AQapSTTU[]\cYYZcbZYWVUTSQSQQF@ @DQlcSTTVY^lacdcmm^]]^_bcR?@ @&LP{\TTWfRSSR[bSUVWX^pV@ @/QO[TTVhRTTSa\XXW^V??@ @,RO[TTSUTWhSUUTX]eedgR?? @+PTvZTTVagi}omkgb_\YXYYXdkVUTRQNLIFCA>>=>>?5PapVTTSTUWiYTTUVX[^`cdbf}v CQnrSTTU[]UTTSR^XVVWWY\afnvNRuvSTTSRZXTTU`jefggdb_[XVSdUQPPNOQRttSTTW\STSSTSZ]WWVVUUV[^]_sgeedb`NTrkSTTZ]ZYWWXVVTUSSZ[VSRgVSS"MWu]T T[Z[\^_`^_`_`_^]][[VTTRdVTT3PZT TSTVUTVVUVWYZVSTTSbVTTBS[PTTSTST^VTTFT]RSSTVTTAZshddeddb_]YVTSRRST @Uryouz{{zwtrppsv{~|uoib^\[ZZ[[YXVUTSSHUZVTSSRRTUWZ\]_``__`cgnt{yuroopsuvvu9<58BNHEGILMNOOPQRRSSTTSSRQQPQRVY\chmsuvvt_F91+%4,zwqi`\VUQOMHKHIMX7 Q7HAi󨩪gw|ZWRN~򦧩L|}򦭪Hzz﮲Ewz󟥝@v·8rѲ姪з3pš늌1oɩ /p̽.tϯ,wȿ({Ͻ$}ŧκ$¨󥨧 +񪱰ʲ /騭ɶ 1𵭩Œ 3ϖ 3˫ E c릩   Σ  0訪ŗ S󫯦Ƕ də ]Ζ \󨯳﨧ѧ m㨩#,񰮫%+E 誫l ñ=쭮swjm{򤥦yfZOB4$ 3RĹ|{yw}] Xm` "{wqldbUKJ FE@959B H L K N l      K   5B8En % Y *4   CEC>:61*%"   (¾ysojc\XUT^pJj%?b%e%v(u(r(k(g(c(`([(V(T(R(P(M(K( K( L( L(M(Q(S(U(^(q((( ") *)6)D)O)V)b) |) &) +) .)6*F*_*v**+ &+ 0+ 6+ j'*EFC@>?CGKLKKLNOacM.)=?A ACIOTXTF53689?6#NLJGEDBA@??@AA?NB9#lkjkmnpsvwxyxwvtqkgc_[czE6#UVXZ[\]^_``_^_`bcfqP6#T ST_yA5#TSTSTTSTT_yB6#TSU]^b]]^\TSTT_yC6#TW_\]b`bb`bbYZTT_xD9#TZWXY[[]^a^VXZTWTT^xE9#\XXWWXXYWVUTT^^]STT_xF9#X[^bdffed`_^\^`gk_TSTT_vG;#[YVTQNMLLNOQTVX`fZRVTT_tG<#䧟ypjifSZaVTT_rH=#QV]dnx򕜜hhj_WS_pI=#?@?>=<<;=?DIqbd_XUSaoJ?# @AnU`]`[TbmK?# @BwQaVTSTdlK?# @COcUTTekLA# @CMfVTTfjLA# @B~MhVTTgiMA# @B|MhVTThgNA# @B{MgWTTieNB# @B}SeVTTjcOB#@?><<=>>C|\eVTTj`OB#@Y~wtZl^VSTl_OB#@?Fndpj\TSo^OB#@l^NNMMNPSQWZc_SSs^PB#@BYYVUVVTSSTTWbTSu^PB#@CwT\bghea^]\^_`n^Sw]PB#@EqPSSRTVY\^`bq_Sy]QD#@CxNSTTSTlTSz\QD#@CMSTTVcUS|[QC#@eXOQSTTSa]SR}ZRB#@?KraQSTTWcTTR~ZRA#@?lOSTTST\^STRYR@#@BFQSSU[e_STTRYR>#?@b]ZZ\fcYSTTRYR:#og^VQLIMoS\cc^VTSTTQZR;"fQSSTQZSC"QRW\`gil{WRT TQZSG"^\]]^``obUSTTQZSF"TUWYY[[Yc]RT TQZSE-"TSWTSSTQZSG="TU]b[TZ^[Y[VXWPZSH@"TSWYWWVVYcfe`dgcgiglbR[TH=!TS\heca`jcdgc]cXZ^d\ZP[THB2!TSTUUWWSXWWZaYY``[_Q[TMJ@!STSWfcebhff_Q[TQN<!rkgaZWSQPPQRRWTVUVVWUQ[TIG= roopsw|~wqjda`^_`^dSC;8 $Fm/+Gh~wlho|m)gt~~yrpszR)钑wz##򶵴|#à{# {# {#|#񧩮~#𫩩##먪#론#ÿ#ǭ#ŧ# 򌩻# # # # Ʋ# ˲# ϲ# д#δ#꛻ү##芨Ƞ#ĺ#ΰ#ά񦨪#Ͱ##ɜ#Ƴ#۹#´󧫱#v#t"צª,"ª3"©7" éO"éi" ªm"䦩ªi%!䦬ªrX!騩}s!况i!zj, 񷹼}ea8 6c/AhDzҢ)¸{)##### ################################" B" M" T" u" ǜ"ɣ"ț<!Ȩ!ȸ! ȹ!ȵB  ^  ) /=LUZ`k|:#] "}B !!!  %  &  &  &  &  %  %  #  ! !                                        !  "  $  '  .  9  E  O  j!   7 V j ~  ֚ &@JD>>=<;::;;<=>ABCDEEFFGIJKKLNQRSSRQQP3FEEFEDCA>:73.($!  %,18      ?Cntpllkjihhfghilqtx}Xxvwwvwwvtpjc^XQF?92*&# !#$(--/15=??@?CMXdr,   ?eԄxh]TJ@841048>CGIMR[\\[\dr(B1,'"$(%%&#   ?,@ ż 3\WPMJE?==<:7788533420/010/0232346789;=?BDG   .QSUVXYZ[[Z[^afmry~~nT;!?FKOPQONMLLNPQSTUTTSSRPmYSC# &05:?>>=:<<>FHLA7 $שּׂʹw!䂍#'4@P`lx}}zwwz~6#2B-$ )4!#"('&$$-=Qc|6(8MfI$P1 "  IJKMPTZ`ht{y! "#%')+-/12469dNd^dnd~ddddghiii%i5iEiUie& 688677899;<=?@@?@>=:7541/+(%#"!!$,:KjdJHGECBBCDCBA@@??==>==>>?>!;Q|}vy}ysojd^ZXVUTTUTQO($0@Hp[VVWVVUVXZ\^afiloswyz{{zyxvtpn:KG@BK|QTTSRQRSTU3LXKCLPTTaTT2M]NCN}RTTmTT.JSKEUoSTTS TSTTmTT-IOJEdcTTSUX\Y[YWXVUTSTTSXZTTlUTT,HKGEs`STTS^YV[Z]^^a^]YTSTTafd[XVTSRRhTSST)FGFDz_XTSS^aSSRSRRS`g`\]]_bdfhvhea_%ECFFv^\`SRTNPRSSRQONNOQQP]QPRSTUUTW_TSTV$ECGJn]Xuvhi~ukgg]\\ CDHSnZa`|{kigghjnrtwy|xy|AEH[uRSRKjX??>?BEILO?>>?BCEHJKMMNO@EI]{RTSROTnD@ @?@?@FJ]wSTTSQUxR?@@AGKckSTTSRMhwD@@AINr^TTSPTz_C?@@AKOWTTSRNb\??@@BLOUTTSQMj^F?@@BMPVT TSTZ`psRBA?@ @EMVxVTTSZccXQM]{T?@ @HNdjTTV^abdfefmf\YWVSSUkB@ @JMreSTTWXXYi^WY[]adggf_A@ @LMxeSTTS]aSTTSROlR@ @JNvdSTTSaXSTTRQr>@ @!KQq`STTU\aUTSSTSQA@ @.KVqXTTSWbh]_adeei^STTSPtF@ @>N\ySTTSZaUWXYXX\YTTSPvF@ @EQ]QTTVTTV_UTSSTSP}@ @CQ]}RTTU]USRbYSTTSP^f?@ @AQapSTTU[]\cYYZcbZYWVUTSQSQQF@ @DQlcSTTVY^lacdcmm^]]^_bcR?@ @&LP{\TTWfRSSR[bSUVWX^pV@ @/QO[TTVhRTTSa\XXW^V??@ @,RO[TTSUTWhSUUTX]eedgR?? @+PTvZTTVagi}omkgb_\YXYYXdkVUTRQNLIFCA>>=>>?5PapVTTSTUWiYTTUVX[^`cdbf}v CQnrSTTU[]UTTSR^XVVWWY\afnvNRuvSTTSRZXTTU`jefggdb_[XVSdUQPPNOQRttSTTW\STSSTSZ]WWVVUUV[^]_sgeedb`NTrkSTTZ]ZYWWXVVTUSSZ[VSRgVSS"MWu]T T[Z[\^_`^_`_`_^]][[VTTRdVTT3PZT TSTVUTVVUVWYZVSTTSbVTTBS[PTTSTST^VTTFT]RSSTVTTAZshddeddb_]YVTSRRST @Uryouz{{zwtrppsv{~|uoib^\[ZZ[[YXVUTSSHUZVTSSRRTUWZ\]_``__`cgnt{yuroopsuvvu9<58BNHEGILMNOOPQRRSSTTSSRQQPQRVY\chmsuvvt_F91+%4,zwqi`\VUQOMHKHIMX7 Q7HAi󨩪gw|ZWRN~򦧩L|}򦭪Hzz﮲Ewz󟥝@v·8rѲ姪з3pš늌1oɩ /p̽.tϯ,wȿ({Ͻ$}ŧκ$¨󥨧 +񪱰ʲ /騭ɶ 1𵭩Œ 3ϖ 3˫ E c릩   Σ  0訪ŗ S󫯦Ƕ də ]Ζ \󨯳﨧ѧ m㨩#,񰮫%+E 誫l ñ=쭮swjm{򤥦yfZOB4$ 3RĹ|{yw}] Xm` "{wqldbUKJ FE@959B H L K N l      K   5B8En % Y *4   CEC>:61*%"   (¾ysojc\XUT^pJj%?b%e%v(u(r(k(g(c(`([(V(T(R(P(M(K( K( L( L(M(Q(S(U(^(q((( ") *)6)D)O)V)b) |) &) +) .)6*F*_*v**+ &+ 0+ 6+ j'*EFC@>?CGKLKKLNOacM.)=?A ACIOTXTF53689?6#NLJGEDBA@??@AA?NB9#lkjkmnpsvwxyxwvtqkgc_[czE6#UVXZ[\]^_``_^_`bcfqP6#T ST_yA5#TSTSTTSTT_yB6#TSU]^b]]^\TSTT_yC6#TW_\]b`bb`bbYZTT_xD9#TZWXY[[]^a^VXZTWTT^xE9#\XXWWXXYWVUTT^^]STT_xF9#X[^bdffed`_^\^`gk_TSTT_vG;#[YVTQNMLLNOQTVX`fZRVTT_tG<#䧟ypjifSZaVTT_rH=#QV]dnx򕜜hhj_WS_pI=#?@?>=<<;=?DIqbd_XUSaoJ?# @AnU`]`[TbmK?# @BwQaVTSTdlK?# @COcUTTekLA# @CMfVTTfjLA# @B~MhVTTgiMA# @B|MhVTThgNA# @B{MgWTTieNB# @B}SeVTTjcOB#@?><<=>>C|\eVTTj`OB#@Y~wtZl^VSTl_OB#@?Fndpj\TSo^OB#@l^NNMMNPSQWZc_SSs^PB#@BYYVUVVTSSTTWbTSu^PB#@CwT\bghea^]\^_`n^Sw]PB#@EqPSSRTVY\^`bq_Sy]QD#@CxNSTTSTlTSz\QD#@CMSTTVcUS|[QC#@eXOQSTTSa]SR}ZRB#@?KraQSTTWcTTR~ZRA#@?lOSTTST\^STRYR@#@BFQSSU[e_STTRYR>#?@b]ZZ\fcYSTTRYR:#og^VQLIMoS\cc^VTSTTQZR;"fQSSTQZSC"QRW\`gil{WRT TQZSG"^\]]^``obUSTTQZSF"TUWYY[[Yc]RT TQZSE-"TSWTSSTQZSG="TU]b[TZ^[Y[VXWPZSH@"TSWYWWVVYcfe`dgcgiglbR[TH=!TS\heca`jcdgc]cXZ^d\ZP[THB2!TSTUUWWSXWWZaYY``[_Q[TMJ@!STSWfcebhff_Q[TQN<!rkgaZWSQPPQRRWTVUVVWUQ[TIG= roopsw|~wqjda`^_`^dSC;8 $Fm/+Gh~wlho|m)gt~~yrpszR)钑wz##򶵴|#à{# {# {#|#񧩮~#𫩩##먪#론#ÿ#ǭ#ŧ# 򌩻# # # # Ʋ# ˲# ϲ# д#δ#꛻ү##芨Ƞ#ĺ#ΰ#ά񦨪#Ͱ##ɜ#Ƴ#۹#´󧫱#v#t"צª,"ª3"©7" éO"éi" ªm"䦩ªi%!䦬ªrX!騩}s!况i!zj, 񷹼}ea8 6c/AhDzҢ)¸{)##### ################################" B" M" T" u" ǜ"ɣ"ț<!Ȩ!ȸ! ȹ!ȵB  ^  ) /=LUZ`k|:#] "}B !!!  %  &  &  &  &  %  %  #  ! !                                        !  "  $  '  .  9  E  O  j!   7 V j ~  ֚ &@JD>>=<;::;;<=>ABCDEEFFGIJKKLNQRSSRQQP3FEEFEDCA>:73.($!  %,18      ?Cntpllkjihhfghilqtx}Xxvwwvwwvtpjc^XQF?92*&# !#$(--/15=??@?CMXdr,   ?eԄxh]TJ@841048>CGIMR[\\[\dr(B1,'"$(%%&#   ?,@ ż 3\WPMJE?==<:7788533420/010/0232346789;=?BDG   .QSUVXYZ[[Z[^afmry~~nT;!?FKOPQONMLLNPQSTUTTSSRPmYSC# &05:?>>=:<<>FHLA7 $שּׂʹw!䂍#'4@P`lx}}zwwz~6#2B-$ )4!#"('&$$-=Qc|6(8MfI$P1 "  IJKMPTZ`ht{y! "#%')+-/12469 B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/back.xcf0000644000175000017510000001302000000000000020676 0ustar00userusergimp xcf filedBB'gimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) < Back     ! Dgimp-text-layer((text "Back") (font "Ubuntu Italic") (font-size 27.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.152941 0.152941 0.152941)) (justify left) (box-mode fixed) (box-width 60.000000) (box-height 32.000000) (box-unit pixels) |< < '''^7[ صgi Q, .q J=O s )54K6؊5~_Z  ho<8GX{$BC3Ac rz&|e!U:7H6 ,yU>rMlQz:N7D ^-st>* Xqu/u*/DVDW i+z0dR Dia%gh)iڅg)̡\  އ &hB%i0 New Layer     00 hWVVUTXVVWU*UZUUTUUTUUTUUWx)KMNOPOORUVPLOPPOQSVh(`DDFFEFGICDFGFEFHHTwVUUT49<==<<==8<<==<==4TTJTSST01223B0225LMSTKLKMST%')**(*-.'&(**))+-$GED@DEEDDEGE ! !# !  "!=046==0 48<5345548<   /0v9)+..-,-/0v&%kk"&&%kk !``%!``  TTT&!II%!"!!"$;!#"!"$#$ >>!*)+-,++.0')*,,++,/$22$64566557<; 5456556858 &?;>??>?AA9=>??>?ACD%CFHHGHKgU>EGHHINVb!OQRSRSTVVCNQRRSUVi$!\XXWVV[&&$XWXWWVW%%&&$!i[\[XWWb--/\Z\ZXXY..--/1 8456558<8456558<!%''96==*''96==*"433C@DEDDCDGE33C@DEDDCDGE"@?>>KJLLKMTU>>KJLLKMTU"GIIJSTTUIJSTTU%WUUwWWVUWUUwWWVU'^a``^a``,lkklkk;qww= fYYXWVXYYXXYW*TYWXWWVVWWVWWYz)ILNQRQQTWXQLOQQSUXj(]CEGGFGHIBEFGGFHIHVtWXXWV8:=>>==>>9<=>>=>>5VVJTTUUV4334334C 336MNUVKMNUV%)*+*)+./')++**,/%HFCAEFFEEFHF ! "$ ! !#">187=>>1 59=8456659=   01x9+-//.-.01x'&mm"(''&mm "aa&"aa   VVV(!JJ%"#""#%<!#""#$$% ??!+*+.-,,/1(++--,,-0%33$84677668=< 5467667979 &??@@?@BDE%DGIIHILhV=FHIIJOWc!OQSTSTUWWBORSSTVWj%"\XYYXWW\''%WXYXXWX&&''%!i\]\YXXc..0\[][YYZ//..02 8567669=8567669=!%)((87=>>+((87=>>+"4CADFEEDEHF44CADFEEDEHF"@??KLMMLNUV??KLMMLNUV"GIJJSTUUVJSTUUV%WUVVtWXXWVWUVVtWXXWV'baabaa,nmmnmm;yy= _VVUUTSVUUVT*VUTUSTTSRSTTSTTVv)JKLOPNNQTUPJMOONPRUg(]ACEEDDFHABDEDDEGGSeUTTS48:;;89:;;:;;2SSIORSRRS/112112;/112114BLRSJIKKJLRS#&(*)(*,-!%&))()*,%FDA?BDCCBCFD " ! ;-45;;- 369523443369   ./t;(*--,,./t%$ii"%%$ii  ^^$ ^^   SSS% HH# ! !#2 "! !#"# <>=?A?8<=>>=>@BC%BEGGHJbS:DFGGINT`!MNPQPQSTTGKOQQPRSTg# ZUUTY%%#VTTUUTU$$%%#!iXWWUT_,,.[VWWVVW--,,.0 5345447;5345447;!%&&56;<<)&&56;<<)"122A?CDCCBCFD22A?CDCCBCFD"@==JIJKKJJLRS==JIJKKJJLRS"GHHIORRSHIORRS%QSSeUTTSQSSeUTTS'^^,iiii;qstt<|  ,r]G1)&g O5(;6gq )= yS)Zy &<)te>:(R J'*8?ew)H+"tb *. sV,'& bn+ 4G[}!,#y\F',jp2=, Y~!'P+ C*wa+/?`s,$NG,f+D+UsosxK 1iqovp(+ ' $   !  &         d2 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/bug_tracker.xcf0000644000175000017510000024342400000000000022303 0ustar00userusergimp xcf filePBBBBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.454549998044967655Nv'< Bug Tracker     g 'Hgimp-text-layer,(text "Bug Tracker") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 295.000000) (box-height 60.000000) (box-unit pixels) '<)'<  ." 3*Al) '-) !(l'YO'X 'X ^'X 4'X S'X F`lQX 7"_iX8X(u SXLLPl\v[X G tX XCtX;X&Y"tXlX,StXXtXbX tX-\X tXX JQtX$nX *tX(X 1tX{X i^tXsX -tb!Z `1o$91vc2|Yb _tu: L2 X& ܷlF 6V v%NsS"P i2Ae7=9:%929|G9pF8p/6K8*:r!]!f!T5 L)=vp!0Ly sL Lg L RLП h L?C,Lޮ~M L-uaXX,L r.L EeLL M^L RL UL 58L 4*L 4L 4L 4OL 4`L 4u 6 L 4WL 4dy^/ L 4&L 4&V 4&j 47(! EТfW q 8*X4b  :#}<;u<Ȅ;s932'=qG3| 46֯a:99`L5@L5L7sL8L9L9L9L9L9L9L.yeϫ~ ;pԲq LXP|˂C[A Ë}LPw}ML$Fz{nWhLfL /L$ (L/ =j:L !Yr 'LCh PL-yhJ.8ahs%=BhG[ hkL3 ~hLl hnL zzhGb RIL Jh+)LhڔLr'- LMLc,-P1PWtw{ CJ.=H<B0(~c\  7ecjJ >oX"Zݱ*-.y KtdEcurXP OEP/-SM^$Fz u  fL wRdUe75/L xtt4> 24< X( ( 4}464_4`43s 4Q ( 43- т4mI4WIuu4AW)2E6J2qWIbJ ~2%0$Jt[2  $ $ $ $I$XPIcon (original)     @XPNNNNXPa4IsIIIIIIIILN'N7NGNWNgNwNN& 68867789==<=?@@?@>=:7541/+(%#"!!$,:KjdJHGEC==B CDDCBA@@??==>==>>?>!;Q|}vy}=? ysojd^ZXVUTTUTQO($0@Hp[VVWVAE; UUVVXZ\^afiloswyz{{zyxvtpn:KG@BK|QTTJSW TTSXbmndZRRQRSTU3LXKCLPTTGV\TT;@KV`ghaXMC=aTT2M]NCN}RTTNUTTA=:GQX^_ZSI?== TT.JSKEUoSTTS;T7TTaN9ANSTQKC=?9>  -IOJEdcTTSUX3X=XVUT=9PqUGGC==:%AU ,HKGEs`STTS^YV2W^` ]==>>/#Jq{rX/0Eap^VTD)FGFDz_XTSS^aSS;IWUQE3;==>7*%*'.^\IGMUZG%ECFFv^\`SRTNPRS$ 9KET99==>?>>('03=DKQW^$ECGJn]Xu*>Aˇ7125:;==%!*19?FLS[ CDHSnZa`|{kiggаeϢoXG;==%%-5;AGPTAEH[uRSRKjX???z[A;=>"'/6=DJ3@=>>1RTSROTnD@@lۆL==>" "+19?+@>719=SbmSQUxRqhA;>"$.42AGK2Scjqh\QE7G^R=>" =AINr^T!'3QWQE-nwւC=!sAKOWTT'7\ql{U:.yBLOUTT+({$ .کBMPVTT"EEMVxVTTSU;נHNdjTTV^abdsI.ҦJMreSTTWXXa%:LMxeSTTSKn߱ϳJNvdSTTJGݰ!KQq`STTbZKܮ.KVqXTTicUbٮ>N\yJT^dgg[:_׭E7=?GEEAG6խC9!! _ҫAQap %!(ϩDQlcSTTVͨ&LP{\TTWfR˥/QO[TTVhRTȢǂR,RO[TTSUTWhSUŝDb+PTvZTTVagi}omˊxĚz(@d5PapVTTSTUWiYT|3*.uG\~ CQnrSTTU[]UTZE=!Fϭ7UlNRuvSTTSRZXTn?;!1џQRttSTTW\SeʱX:DNTrkSTTZ]Zoǽ"MWu]T T[Zɾ3PZT TSD󿎼BS[PT TXNFT]RSST/aÑAZshddeddb_]YVTSRRfo @Uryouz{{zwtrppsv{~UfHUZVTSSRRTUWZ\]_``__CLоj9<58BNHEGILMNOOPQRs>$~ɷܝ>_F91+%4,zwqi`\VUQOMHKHIMX7 Q 7HAi"% 󨩪gw|*26 8BMOD9Z(6;!+6@GHA8.#W05"'18=>:2)  R 7?|.#.330+#   N~ߦ94 3ltP5(('#"")9 L|}󦭪6>A  -S]P7.JZLJH)Hzz+750$ KJ<;BLO0Ewz,'7"%.6>ENU@v(t#*19@GS8rѲ >,GȐoV?*%-4;CL3pš?`c:VB#  (/7A"1oɩ_nqnl6Np2 #*4 p/p3BM̽s{ztp-XP% ).n.t3CKRG<0&!{{v3:7  1hw6,w  270%P~P Zk& Dd9:({ ({k7Li: DiwO,5A$}ŧ 4xqgQ- ?f`J2+19-$¨LmluomgZL='H8(*..0-+,dX%3!$("%cIB9-CWaZVQNMJGB=7349>:/#& &Ӂ*4=DGF;vuVMJFDA?:5200483*"$ ( ''$*!usREA=;8630.,,..+$ !")  7vabG=7420/.,*)'&%#$+ KT93.-,+,+)'&#!&.0ۨF7D.('))(('&$! ")0S'3'!#%$$#!  %,3d!/' !  17]񦧧)' 4;\ڨ#&  %7A m$  )5=F#﨧 "   '9@BL,    &'1?BIR%ߩ   %+17>GPZ+!+17>FNXbE   &18>ENV`jl  " -8?FMV^is  !$'* #3@GNV_hqy !#$&(*-0 %6GPW_hpttñ "$'*,/157" %7NYagkli]෹#&&)-159<;" ';T^ab_\VI=ި !)(*/4:?< *MU0Ń\B,    (09EK90  "*7J   5]  )RF (1 ?<  'RtE (/6-" #+0.' v$  *JT@  '`LC>3*#?W 1]B9 heWL<0*" 0T% .HP/5 Lc_^Q>0& (B8' 9K %&(hJ+4lǜngYxRcqdEKdgaL%? 3  !!!?! "";"#`#$^$%I%m&+~'A&L ᶚ*EFC@>?CGKLKKLNOacM.)=?A ACIOTXTF53689?6#NLJGEDBA@??@AA?NB9#lkjkmnpsvwx=>wvtqkgc_[czE6#UVXZ[\]^_``(75_ __`bcfqP6#TSD7S SSTT_yA5#TSTSTTSJ(S TT_yB6#TSU]^bZWCTT_yC6#TW_\]b`b`PTT_xD9#TZWXY[e]ZTWTT^xE9#!XWW`bd?"^^]STT_xF9#K@KQW]_X!`gk_TSTT_vG;#Z2=NTTQ7 1VX`fZRVTT_tG<#9z@ $ ;>ifSZaVTT_rH=#7*/: hj_WS_pI=#Ԕ.//%q d_XUSaoJ?#x*^R6A`]`[TbmK?#~*Q`da\L* QaVTSTdlK?#܎/PZ^^IOcUTTekLA#mAGGMfVTTfjLA#\9"!MhVTTgiMA%MhVTThgNA#@V({MgWTTieNB#B?}SeVTTjcOB%C|I+=>C|\eVTTj`OB#^qlK3~wtZl^VSTl_OB#eN9ndpj\TSo^OB#iQIMNPSQWZc_SSs^PB#y:PVTSSTTWbTSu^PB#z2W]^]\^_`n^Sw]PB#LafY\^`bq_Sy]QD#yVhje"TSSTlTSz\QD#lPed_VLTVcUS|[QC#\/CLQMASR}ZRB#A 26;= R~ZRA#%!9 YR@#  YR># fcYSTTRYR:#G VTSTTQZR;"TQZSC"rTQZSG"+TQZSF"uTQZSE-"!STQZSG="L$TZ^[Y[VXWPZSH@"w.`dgcgiglbR[TH=!+'gc]cXZ^d\ZP[THB2! $6XWWZaYY``[_Q[TMJ@! 1"SSWfcebhff_Q[TQN<!.'QRRWTVUVVWUQ[TIG= +"~wqjda`^_`^dSC;8 $Fm/+Gh~wlho|m)gt~~yrpszR)钑wz##鱲|# à{#% {#󦧦2* {#97$ |#𧩮@0  ~#D= #@AD##4!*17<>9  #M%.441#&B,"  #s}4 #;<#  #8>@;'>2#;DID@(%0?DA;,#DMTSL009>=+#JTZ_ZN,"()) #/XadbE3  %5^egN% Q_dbϲ%CZ`gH=:д% GU^hT,C'δ#7IS_j_%F.ү#/8@HT`li'I4#-5?JUamq/$C#.7@KWcou4%2#/8BMYeqy+7< #1:DO[hs|.-AF#26,#8BMXes}}&-0,"#A+"#*19A>B"'/7>B7 M",3;@?%T"18><5 "u"6<<6"$ǜ":<4%+'ɣ"91% $7'ț<!* 3:Ȩ! $B0ȸ!7?"ȹ%.B(ȵB#(B0^  <;0:':/::t:=;8 ._3">=<;::;;<=>ABo?:}̸˚Q3FEEFEDCA>:73.($!h> +V|f9       S' (.$+a?!   ".*-ZD- (25$1 Cntpllkjihhfghilqtx}!(+-01=GG>*Xxvwwvwwvtpjc^XQF?92*!(!,1) ,    +   -  1  e   脳xh]TJ@  (B1,'"$(%%&#  + -$0^K7+$+7<(I}~(;uʸvg*"`}yn\?+5bx|{{||}zvn_F*-)Kbnstsoh_O;%-"[[ZZ[^afmry~~nT;!/(NMLLNPQSTUTTSSRPmYSC#/' &05:?>>=:<<>FHLA# $; שּׂʹw!# '4@P`lx}}zwwz~##2B-$$?0)4!'<0#.B6$-=Qc|$$7:0 (8MfI#6?7$::+mT/:M) ;<>,(K %XPIcon     BOXPOFR^jXPPm"2BRbr?&6& 68867789==<=?@@?@>=:7541/+(%#"!!$,:KjdJHGEC==B CDDCBA@@??==>==>>?>!;Q|}vy}=? ysojd^ZXVUTTUTQO($0@Hp[VVWVAE; UUVVXZ\^afiloswyz{{zyxvtpn:KG@BK|QTTJSW TTSXbmndZRRQRSTU3LXKCLPTTGV\TT;@KV`ghaXMC=aTT2M]NCN}RTTNUTTA=:GQX^_ZSI?== TT.JSKEUoSTTS;T7TTaN9ANSTQKC=?9>  -IOJEdcTTSUX3X=XVUT=9PqUGGC==:%AU ,HKGEs`STTS^YV2W^` ]==>>/#Jq{rX/0Eap^VTD)FGFDz_XTSS^aSS;IWUQE3;==>7*%*'.^\IGMUZG%ECFFv^\`SRTNPRS$ 9KET99==>?>>('03=DKQW^$ECGJn]Xu*>Aˇ7125:;==%!*19?FLS[ CDHSnZa`|{kiggаeϢoXG;==%%-5;AGPTAEH[uRSRKjX???z[A;=>"'/6=DJ3@=>>1RTSROTnD@@lۆL==>" "+19?+@>719=SbmSQUxRqhA;>"$.42AGK2Scjqh\QE7G^R=>" =AINr^T!'3QWQE-nwւC=!sAKOWTT'7\ql{U:.yBLOUTT+({$ .کBMPVTT"EEMVxVTTSU;נHNdjTTV^abdsI.ҦJMreSTTWXXa%:LMxeSTTSKn߱ϳJNvdSTTJGݰ!KQq`STTbZKܮ.KVqXTTicUbٮ>N\yJT^dgg[:_׭E7=?GEEAG6խC9!! _ҫAQap %!(ϩDQlcSTTVͨ&LP{\TTWfR˥/QO[TTVhRTȢǂR,RO[TTSUTWhSUŝDb+PTvZTTVagi}omˊxĚz(@d5PapVTTSTUWiYT|3*.uG\~ CQnrSTTU[]UTZE=!Fϭ7UlNRuvSTTSRZXTn?;!1џQRttSTTW\SeʱX:DNTrkSTTZ]Zoǽ"MWu]T T[Zɾ3PZT TSD󿎼BS[PT TXNFT]RSST/aÑAZshddeddb_]YVTSRRfo @Uryouz{{zwtrppsv{~UfHUZVTSSRRTUWZ\]_``__CLоj9<58BNHEGILMNOOPQRs>$~ɷܝ>_F91+%4,zwqi`\VUQOMHKHIMX7 Q 7HAi"% 󨩪gw|*26 8BMOD9Z(6;!+6@GHA8.#W05"'18=>:2)  R 7?|.#.330+#   N~ߦ94 3ltP5(('#"")9 L|}󦭪6>A  -S]P7.JZLJH)Hzz+750$ KJ<;BLO0Ewz,'7"%.6>ENU@v(t#*19@GS8rѲ >,GȐoV?*%-4;CL3pš?`c:VB#  (/7A"1oɩ_nqnl6Np2 #*4 p/p3BM̽s{ztp-XP% ).n.t3CKRG<0&!{{v3:7  1hw6,w  270%P~P Zk& Dd9:({ ({k7Li: DiwO,5A$}ŧ 4xqgQ- ?f`J2+19-$¨LmluomgZL='H8(*..0-+,dX%3!$("%cIB9-CWaZVQNMJGB=7349>:/#& &Ӂ*4=DGF;vuVMJFDA?:5200483*"$ ( ''$*!usREA=;8630.,,..+$ !")  7vabG=7420/.,*)'&%#$+ KT93.-,+,+)'&#!&.0ۨF7D.('))(('&$! ")0S'3'!#%$$#!  %,3d!/' !  17]񦧧)' 4;\ڨ#&  %7A m$  )5=F#﨧 "   '9@BL,    &'1?BIR%ߩ   %+17>GPZ+!+17>FNXbE   &18>ENV`jl  " -8?FMV^is  !$'* #3@GNV_hqy !#$&(*-0 %6GPW_hpttñ "$'*,/157" %7NYagkli]෹#&&)-159<;" ';T^ab_\VI=ި !)(*/4:?< *MU0Ń\B,    (09EK90  "*7J   5]  )RF (1 ?<  'RtE (/6-" #+0.' v$  *JT@  '`LC>3*#?W 1]B9 heWL<0*" 0T% .HP/5 Lc_^Q>0& (B8' 9K %&(hJ+4lǜngYxRcqdEKdgaL%? 3  !!!?! "";"#`#$^$%I%m&+~'A&L ᶚ*EFC@>?CGKLKKLNOacM.)=?A ACIOTXTF53689?6#NLJGEDBA@??@AA?NB9#lkjkmnpsvwx=>wvtqkgc_[czE6#UVXZ[\]^_``(75_ __`bcfqP6#TSD7S SSTT_yA5#TSTSTTSJ(S TT_yB6#TSU]^bZWCTT_yC6#TW_\]b`b`PTT_xD9#TZWXY[e]ZTWTT^xE9#!XWW`bd?"^^]STT_xF9#K@KQW]_X!`gk_TSTT_vG;#Z2=NTTQ7 1VX`fZRVTT_tG<#9z@ $ ;>ifSZaVTT_rH=#7*/: hj_WS_pI=#Ԕ.//%q d_XUSaoJ?#x*^R6A`]`[TbmK?#~*Q`da\L* QaVTSTdlK?#܎/PZ^^IOcUTTekLA#mAGGMfVTTfjLA#\9"!MhVTTgiMA%MhVTThgNA#@V({MgWTTieNB#B?}SeVTTjcOB%C|I+=>C|\eVTTj`OB#^qlK3~wtZl^VSTl_OB#eN9ndpj\TSo^OB#iQIMNPSQWZc_SSs^PB#y:PVTSSTTWbTSu^PB#z2W]^]\^_`n^Sw]PB#LafY\^`bq_Sy]QD#yVhje"TSSTlTSz\QD#lPed_VLTVcUS|[QC#\/CLQMASR}ZRB#A 26;= R~ZRA#%!9 YR@#  YR># fcYSTTRYR:#G VTSTTQZR;"TQZSC"rTQZSG"+TQZSF"uTQZSE-"!STQZSG="L$TZ^[Y[VXWPZSH@"w.`dgcgiglbR[TH=!+'gc]cXZ^d\ZP[THB2! $6XWWZaYY``[_Q[TMJ@! 1"SSWfcebhff_Q[TQN<!.'QRRWTVUVVWUQ[TIG= +"~wqjda`^_`^dSC;8 $Fm/+Gh~wlho|m)gt~~yrpszR)钑wz##鱲|# à{#% {#󦧦2* {#97$ |#𧩮@0  ~#D= #@AD##4!*17<>9  #M%.441#&B,"  #s}4 #;<#  #8>@;'>2#;DID@(%0?DA;,#DMTSL009>=+#JTZ_ZN,"()) #/XadbE3  %5^egN% Q_dbϲ%CZ`gH=:д% GU^hT,C'δ#7IS_j_%F.ү#/8@HT`li'I4#-5?JUamq/$C#.7@KWcou4%2#/8BMYeqy+7< #1:DO[hs|.-AF#26,#8BMXes}}&-0,"#A+"#*19A>B"'/7>B7 M",3;@?%T"18><5 "u"6<<6"$ǜ":<4%+'ɣ"91% $7'ț<!* 3:Ȩ! $B0ȸ!7?"ȹ%.B(ȵB#(B0^  <;0:':/::t:=;8 ._3">=<;::;;<=>ABo?:}̸˚Q3FEEFEDCA>:73.($!h> +V|f9       S' (.$+a?!   ".*-ZD- (25$1 Cntpllkjihhfghilqtx}!(+-01=GG>*Xxvwwvwwvtpjc^XQF?92*!(!,1) ,    +   -  1  e   脳xh]TJ@  (B1,'"$(%%&#  + -$0^K7+$+7<(I}~(;uʸvg*"`}yn\?+5bx|{{||}zvn_F*-)Kbnstsoh_O;%-"[[ZZ[^afmry~~nT;!/(NMLLNPQSTUTTSSRPmYSC#/' &05:?>>=:<<>FHLA# $; שּׂʹw!# '4@P`lx}}zwwz~##2B-$$?0)4!'<0#.B6$-=Qc|$$7:0 (8MfI#6?7$::+mT/:M) ;<>,(K %XP Background     XPAFFFGXP w ,,,0369<@CNFF5 69899999 -9(99  99 99   ;;99 9953678989  99 99999  9  99+ 99;;9 9  9536%8989  99 99 99*  99 99 99  ;;  999 9G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/button_background.xcf0000644000175000017510000014742600000000000023532 0ustar00userusergimp xcf filePBBBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765P Background     XPxP-AUj5~c /m' 68::::99mhl e-ff9fff(fff9ff9f  fff9f9f fff9f9f f ff f9f9ffff9ff9f [9:%46798::  :: 99999  9  99+ 99999 9 z :+46%98::  :: 99 99*  99 99 99  99  999 :I367988:::::::::::::::::::::::::::::::::::::::::::::::::::::?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ??@??}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C@?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @@?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C@?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D@?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y@׽)+,--.. ..   ..mhl,ef.ff f.fff.ff.ffff.f.ffff.f.f ff ff.f.ffff.ff.ff.[ .)+--.. ....   .ܦ .ڦ.ئ.֦Ԧ.-ӦԦӦҦ..ЦЦϦ ..̦  .ɤ.ɡ.z .)+,--..  .... . .. ... ..  .....  .(+,---..................................................... :8 7753 Z,fa[ :8775) v%y~  78  7753 ,:::::889763@>  D =?f ? C ? ?  Cs]?@ ? H?f > B??  ?p?@@ P ?f ? B?>T g?@ >  J?f?W?  @B ?@ ? @ F?f+@?> En?@ .- ,,*( fZ.[a.-,,!(v.~y. - * ......---,+( (}> P New Layer     P̺P 2RrŒŲ2Rr˒˲56889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;56889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;56889;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*+--.///////////////////////////////////////////////////////*+--.///////////////////////////////////////////////////////*+--.///////////////////////////////////////////////////////)G,-..G.//////////////////////////////////////////////////////;;;;;;;98865;;;;;;;98865;;;;;;;98865;;;;;;9G9:87G4///////.--+*///////.--+*///////.--+*//////..G.-,)G(}> P New Layer#1      ͆Pͦ P"2BRbr΂Β΢β    @@@@(}> ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/change_log.xcf0000644000175000017510000020263400000000000022077 0ustar00userusergimp xcf filePBBTBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765E> Change Log     g 'Ggimp-text-layer+(text "Change Log") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 277.000000) (box-height 62.000000) (box-unit pixels) >p|> <E`#"kxU1r!r  ޘV9>uSEmh*7 5al.b nYQXXMFjX XJ@X!~XQ eXjC|'XwUX؆7ljiXo GXK,$;X.LXJ!u^XX apXX DXX XX=XX yPXX~XX6XXzzI XXJDcXXs b`yG mrnMN1%{c)/ خZ'%_ &~(q11F( &etZ&#7ecϫ~ G H Qޮ~M ˂C[AM !*ޑuaXX,}( A8.g7b SeL$u   gD R =4; Y4/l8 Ch44*2yh44bX8ah44-\}Bh44Oh44$n`h44(u 6 h44{Wsh44sdy^/Qh44!-h441r4 4L9A|Y7( tw{AVf: Тf.=.,1 8~ce1v jJi2Ae*= #}) (% u(2 Ȅ(|G s(pF 3)p/'=qG+K| -*1r֯a:  /[ 0&.479:7  7  7  7  7  7  Zݱ*  cu   O  -S  u    wRd  7  xtt    ( (     6  _       X (   ܒ т  ]KI  Iuu# W)2=F `w2,(R0A%fJt[2 3BrСrB Qޮ~M %}" ޑuaXX,g1f8.* SeL="3: RvMB;,l8 *0 a/bZ F\-\+ +sOjE K$n`>^ !(u 6  ({WCsdy^/>_o!1!m8!|Y7(t: Тfe CR 8=ߦv !TrG i2Ae*= #}) (% u(2 Ȅ(|G s(pF 3)p/'=qG+K| -*1r֯a:E"XPIcon     7=XPaEEEEXP, =>>>.>>>N>^>n>~BENE^EnE~EEEE  !;($0@:KG@B3LXKC2M]NC.JSKE-IOJE,HKGE)FGFD%ECF$ECG CDAE@E@AA$33!3.3>.E.C3ǘA3[SD3^k&LP8[/QOLR},RO\ yc+PTvuӟL5Pap^MXWQLPUZ]afjqz˫[y CQnrTa}xtoje`ZURWPmNRuvSk\QRttSfNqNTrkSyUy}pVS[biu{"MWu]T]\suwyc[blyy}|uou|3PZTTR]kmoe.F]`]W;]xrk`bgox|BS[PTP]efhhFXdbYD-Qiy|wxxyFT]RSP\ddeebYMFBHWhehhgfgs}AZshdQYd_UMLIC??ADFKQTVY[`adhlz @Uryouz_Sec\QKJNTY]aefgilnpqsvtonjeioHUZVTSS}Lce efhiknprtvxrl9<58BNHޱQUceefghjlnpsu  ,7Q7HAigw|ZWRN~L|}HzzEwz@v8r3p1o/p.t,w$($$+/13333E3c3..33?003BCmS8{6k~dL3R{~]\ c:72171Et~~,R5V^`bdfgiklmnoqqrrld]Yq~~v%f-EUWZ[[XY\_bgjkmoqstvyz|}}~s+b0LOQSSH76;@EMRZdgjlnpqsvwyz|}EB5GIJL?9>ENTORQLIMRZgijmnprtvxl46ABD?+:<:7%?*6>=7*3BLRTWXWXZXUROPQQ26<<==;6.)(,6@?@ABAABJQTZ\]_acñ34<83.-,(%%')+-23589<=@BFOVY\D/=<70-,.268:==>@ACEFHJIFEB@CH=g);= =>??ACDGIJKHDswjm{ޥ20;==>?ABCEGH  R]Xm`{wqldbUKJFE@$959BHLK3N3l33..3}3-K31 68p5@L (>@\ V:@@uʇdq~-?@@1#+27>DLVcz)&?@@5$&-.,+(''&$"!#!;@@BC$(*+-./023455689961-,8@@;8f"#%&'&')+-/1235689:<=>??@:ET !"$(-/134568:;<=>?n0" ""!"%).0134678:;! "#%$! !%'(*,   !#$$%&&%$$% !#&'()+,   #%'%2 YZ*ޞ"9; ;<= >=<J ####t#g#X#K#D#A#?#>#=#<#;#<#C#J#R#Z#a#i#p#x## # # # # # # # # # # # # # # $ $ $$$ $#####{#d#H#2#%#;754*#OɽiYR:#W~ɾoZR;"feɾwQZSC"qCVxλfwQZSG"wrmga\ZXVVX[\\A>>?=QZSF"尮zpdXMFB>9?=SE-"񺾽yG?5B>9G="ƿӓL?G?5@"y{{~|٧ҀC>L?!◚ѝϷڱO?C>2!⏑ӭ]@>O?@!{Ӟd@]@<!e`gr~ПV?@d@ wxogceṳL>@V?8 ;754$Fm*lho|m)ĿR)ſĿwz#ÿſ#ÿ|# à{# Կ{# ǾԿ{#ۿǾ|#ۿ~#»#»# # # # # # # # ܿ# # ٿ# ׿# # Կ# ӿ# ҿ# оv# Ͻj# ;h# ̽a#˼f#fXXyʼY#=DB65ʼY#{||uO7ʽ]#~k1sʽ]#~xL>ʽc#~|T4ʽi#~}Z-zɽiv#~g2iɾot"p?Kɾwª,"H"9cmvɸQwª3"VMHD?:765679>AB"©7"}|zxvtrpnh_WOG>4,%!O"z{|}~~񍗜T& !i"_cefku}}~~Ķr*& m"RSTTVU_tz|}yĶ]"r*%!eghjljkrtuÒ.]"X!_`acfgiklnw< .s!PXZ]^`cdei}A < i!@=BIQZ\]_dvuv5 A , JLFA?@KWX\~* 5a8 ;7546c*Ң)Ŀ{)ſĿ#ÿſ#ÿ# # Կ# ǾԿ#ۿǾ#ۿ#»#»# # # # # # # # ܿ# # ٿ# ׿# # Կ# ӿ# ҿ# оv# Ͻj# ;h# ̽a#˼f#WHInʼY# !~ʼY#>?;&"ʽ]#@6gʽ]#@<%+ʽc#@?)ʽi#@?,oɽi#@3\ɾo"8;ɾwB""'U`kuƵQwM"*%#!"&+/1 T"?><;:9874/*&" u"=>??@@Ugtq\3 ǜ".0335;??@@QvR  "&'(())/:=>?S{kc|< R <!./012278:Fstlrn < !)*+,./0234Zrrcmx|w" n !!$&()*,-.0lvhlnzmyz& " !!%'().ovpbtakbr| & B #$(jyqs|rni^  ^ 6;v)9s8J7e5432 1 i1 ^/ // . /. W. b. ^- Z- V, R, N, J+ F+ B+ >* :* 6* 1) -) )) % ) )  )  )  ) ) ) ) ) * * + + + , , , zZ<)v('q&1&\&&%t&N&&@JDKLPQSTVY\_abddeefgikm3FEE٢xng`ZTPNLJKOSX]`bcdeef þzmbULJJLPTX\`bcdde~obWMFDFJOUY\~ytnlfb`\Q?0-38:=@C!*WCntpt+),./013689:<<==>?@BXxvwזbVME>82/,)),/369:;<==>, ziZJ:.*)),/368;;<<=s_M?1'#%(,036~ytnlfb`\L6# # Wei ՍTF=4,& (B1,þp^N<)lUA1!~ytnlfb`\J/  W# #"T ,BDDEFFGILOQTWY\^acfhjlnps$  #&(+-02479>Pbw& "#%&&(() -orsuvvx~ɹrB>?L>!hjkmprtvxzęK?>rB>"eghjlnorU?9B>K?#`cddefghjnP@>K??9#GKNRVZ]^_`bgu[D>;U?9@>$18;>?@BCEGHIKLKFA=<P@>>;& '/35599;<976>;<1 <8767 EFGIJJLPQUO!~*!?@ACDFIJKMx}u)O!"=>@BCEF\yu2 !)#9<<=>?@Dqf- ) #&)+.146889:?crT9#2  $ !#$%''(*)%!- &  9 8 "bn}kvrk1 ^ 4!Oq}qhvU 1"1{sdqT  #KxkH  #>]gQ3   $    )     : : %&l&'1()j**-/5CSals{iB*+  ,(K %XP Background     FXPFlxXPG%^|ry-ו'7(SU|sL\5 69899999 -9(99  99 99   ;;99 9953678989  99 99999  9  99+ 99;;9 9  9536%8989  99 99 99*  99 99 99  ;;  999 9G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/download.xcf0000644000175000017510000024415000000000000021617 0ustar00userusergimp xcf filePBBABgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765 M> Download     g 'Egimp-text-layer)(text "Download") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 202.000000) (box-height 62.000000) (box-unit pixels) >>  ., ԧs? )`N(>Che'a")&L !%L $L #L #L ;="L"Lh#BrСrBzL%}"vLg1fCL*Lm ="3:DLS'L<7vMBLV,L L0 a/LZ F\Lj+ +sL jE KL>^ !L 3* (L CL >_oL N L 3m8n! T! .OqW t5}B e CR2 ŧo6=ߦ6!TrG  :"n6Z6 9:5::::::t :ZG Hgpe%VM !*gS( Aong7bo$uu0 gDxdB48=4/$44I ^zp44[^44HDI44 OX>44244P`dq44A /44rt 44" i? 44 4 4Vr 9A0@ AVfe! .,1Qp,e1` f*==<<U========BrСrB eϫ~ =y٥%}"|˂C[A g1fw}7*U ="3: $ vMB=)B,!Y  Ch0 a/yh'Z F\8ahO+ +s=BhwjE K h>^ !~h (hgCzzhAe>_oJhhEm8r>)ML!Pttw{$Z%=2e CR.==ߦ(~c} !TrG 7ecjJIrJllli [44|44 w44444444^4,4D4)4w4044444444444488LGaV _e2XP Icon (red)     @XPMMMMXP:2!FuFFFFFFFFK.MKM[MkM{MMMMĶ/(#'ľ!(& )+8867)+):Kjd(*(!;Q|$++$+Ƽ($0@'+'+:KG@',',3LXK*+4*+2M*+*+.'+'+;-',4',4$+.$+.+,+,X(+<(+<(+0(+0),J),J*3*3r),L),L$+.$+.i(+A(+A+,+,V+0+0k'+<'+ACDB@_ T@JMNJMNP'))*,.//1245439JOQRSSTznTS?KM?KMOb%()*+.//233/M KMOKMOQ&())*-.//02/AGLNGLNP())+.//0/LNLLN&'))*,.//.4DKMDKMO%))*-./.4lKLNKLN$'())+-..0?LM?LMN[#())*+-.+oJLNJLNNf&'))+-,+HLHLNO&))+-+,Mz?JM?JMNU$&())+-,+**+,-..//0/.=IMIMNa!&())+-..//0122334321swjm{JMJMMc'))*,..//0122321003( )16;<94-$"㪜 $8UtýdD, 𑪨 "LTVWX\]]~ 㯪'2>IQWZ[Zy ♫ !'/;HQUWs 㫪 !"%+09?Bfᨫ !"#'*-011Z ⭪ !"%),/11/X ߟf !"$'+-0220R @ ޿ !!#%(*./10/R F/ި !! (;@ABDEFobEE檩b ? 3꣪$%릨!˔[ffxAq %U  Ya  ! *c   /=_õdB!)-c ҥl%R$^#P" J c x  xcI  !P!#_#$R$$-%d%%&=&_&& & & & && & & &&d&B&"&%m%5% $^$!$l#!#_"!2!]  w@<9½*#YR:#ſ*QZR;"½)QZSC"ſ?TQZSG"¾(TQZSF"Ŀ_TQZSE-"*TTQZSG="¾?XWPZSH@"Ŀb$glbR[TH=!ſ*^d\ZP[THB2!?``[_Q[TMJ@!fbhff_Q[TQN<!b"VUVVWUQ[TIG= Ŀf&jda`^_`^dSC;8 @&<('%:Y9*(%&$Fm*꿟p>*)(h~wlho|m)Ȩs:)'#R)Û`0(&wz#ŵD(($#¿S,(!|#c+(à{#e+'{#a*'{#X+%|#E)&~#~6)#`*'#E'!#l+(#򠟓G(%#j,'#@(#󣢡\+&H#䠟t3&#䝜C)(#񚘕T)$D#Þd/'I#ٙn4(K#ʅ~~|s:'L?#}~}|{{yrB':#y{zzywwuqI(!G#vwwvustsqnL(F#ustsrrpponkK("G#yqqpponllj`<)(H#}nomllkjhh]D*)&L#ǀmnmjihgfc\O:+)(I#}klkifed_TE90+))(H#vjkjhd]TH=4/..*))(H#sghd\SF=6320//-+)((H#kUUOG@<75432//.-*)(&M8#ZCFFB?<955431//.+))(%KU#UBEFDA=:754320//-+))I#CFGEC?<9654310//-*)((G#DCA?<;755320//.,*)(%3v#SRQOJ9445431//.-*))' Ht"ΔF/3320//.+))('Jª,"#nccbaa`__V.#ra`^^]\\[ZQ7#t__][ZZYXUN@+#r]]\YWWTPE6(#j[\ZWTMC7+"#hXXSK@3*# #_FB<3,&"! #M221.+($"! #G021/,)&#!! #1321.+($"! #1/.+(&#"! #DCB?;'!! "ˌ8 B"-?M"tT"_u"ǜ"?ɣ"Tbț<!gȨ!m< ?ȸ!fȹ!bȵB f^ @5 <ߦ^!9l!7^625] 3w2 1 0 / | . ^-<- ,h+&+}*)*o))H)((1(U((( '' '%'&'!'' ''(\(6(((Q))|)2**0+v+,M- p- . / #0 #1&@J)+)+,f3FEE*+*+-c  )+)++j(+(+j*+**+f')')d $))$)Ui#&ff&]hijjkjgj1\cggdfbCntHLHLMf'())*+-..//01210/XxvwKLKLNc%))*+-..//, MLMLLj&))*+--.. /.-?HM?HMj''())*+--..//../..--++*HLLHLLf!&(())*+,,+*+*))IJIJd%$()())*)( HLLHLUi&&'(()('(#DIDff$'(''(()($%'?:?]hijj!")&kjgj1\cggdfbeUUfc(B1,'j󯩫jf򩪪d 򪨩Ui"UUff &]hijj kjgj1\cggdfb| ^!<# h$&}&)o'H*1Uʽ[60  %%! ¿f"afmry~~nT;!bQSTUTTSSRPmYSC#¿f05:?>>=:<<>FHLA#¿i? #b6j?7f_9gb?</..-,*))( fDʹw!.-,**))(&b$#,**))('f`lx}}zwwz~#*))('i?#2B-#)('%b6('#j?7% f_9gb?<f)4! b#f#i?(8MfI#b5j?7f_9gb?<2p3M4u6ԍ07|29Q|,(K %XP Icon (smoke)     >NXPNXPO$lV +;*:JZjz1fU\jb[b\UU,"dhhijkkjkiihdf$''_fijkjjpv{~}xrlkjj"((_fikksȽwn& )+)+bijkpê8867)+)+Hijjr :Kjd(*(*,jkjn !;Q|$++$++Ujjk($0@'+'+,Uikq:KG@',',.jjkx3LXK*+4*+4jik2M*+*+#䋕}zvsolkYR:#鑐|xtqmkg*QZR;"㏎~zwsplkb)QZSC"߸|xuqnlj?TQZSG"~}zvsolkf(TQZSF"x{xurnlj_TQZSE-"t|yvroljj*TTQZSG="r}}ywspmki?XWPZSH@"q{zwtqmkjb$glbR[TH=!qzxurolji*^d\ZP[THB2!ٛmtxuromkk?``[_Q[TMJ@!ⴳnrwurolkjfbhff_Q[TQN<!xvtsrruwuromkkb"VUVVWUQ[TIG= ႀ~|{ywtrolkjf&jda`^_`^dSC;8 ib<kiid$Fm*wlkjdGh~wlho|m)վ{lji[zR)şwkjkEwz#׻pkhU#ͨ~kka?|#Ըmic?à{#mif?{#ƕmjc{#Œljb|#li~#˴ljG#ɧtj\?#“li#ųjdH#mjU#kiI#ni#|kfH#ljL#sk#~jkD#½khI#olK#弴sjL?#ܱwjL:#񷲶~j\G#kcF#찮kgG#ШkgH#էzkdL#ګnjdI#٬~rmkfH#֫ztpmkbH#ѥ{xspljH#ԢzxsolkM8#ӟ}zwrnkiKU#̓|yuqmjgI#䐊~{wtplkjG#䋕}zvsolk3v#鑐|xtqmkgHt"㏎~zwsplkbJª,"߸|xuqnlj?ª3"~}zvsolkfL©7"x{xurnlj_*éO"t|yvroljjKéi"r}}ywspmki?Uªm"q{zwtqmkjbHªi%!qzxuroljiHªrX!ٛmtxuromkk?}s!ⴳnrwurolkjf$i!xvtsrruwuromkkbDzj, 킀~|{ywtrolkjfL}ea8 ib<kiid6c*wlkjdhDzҢ)վ{lji[{)şwkjk#׻pkhU #ͨ~kka#Ըmic#mif#ƕmjcU#Œljb#li#˴lj#ɧtj\#“li#ųjd#mjUU#ki#ni#|kf#lj#sk#~jk#½kh#ol#弴sj#ܱwj#񷲶~j\#kc#찮kg#Шkg#էzkd#ګnjd#٬~rmkf#֫ztpmkb#ѥ{xsplj#Ԣzxsolk#ӟ}zwrnki#̓|yuqmjg#䐊~{wtplkj#䋕}zvsolk#鑐|xtqmkg"㏎~zwsplkbB"߸|xuqnlj?M"~}zvsolkfT"x{xurnlj_u"t|yvroljjǜ"r}}ywspmki?ɣ"q{zwtqmkjbț<!qzxuroljiȨ!ٛmtxuromkk?ȸ!ⴳnrwurolkjfȹ!xvtsrruwuromkkbȵB ~|{ywtrolkjf^ 5 <ߦ^!9l!7^625] 3w2 1 0 / | . ^-<- ,h+&+}*)*o))H)((1(U((( '' '%'&'!'' ''(\(6(((Q))|)2**0+v+,M- p- . / #0&@J)+)+,fjklnpsuxz{}3FEE*+*+-cjklmprtvxy|}~~}  )+)++jikkmoqstvxzz|}~}|{z(+(+jijlmoqstvwxyz{{|}}|{zzywv*+**+fijklmoqrsuvwxxyyxwuts')')djkjlmooqrsttuuvuutssrqpo $))$)Uiikllmmoppqqponmll#&ffijjllklmmklkjkk&]hijjkjkjjkjgj1\cggdfbCntHLHLMfjklnpsuxz{}XxvwKLKLNcjklmprtvxy|}~~}, MLMLLjikkmoqstvxzz|}~}|{z?HM?HMjijlmoqstvwxyz{{|}}|{zzywvHLLHLLfijklmoqrsuvwxxyyxwutsIJIJdjkjlmooqrsttuuvuutssrqpo HLLHLUiikllmmoppqqponmll#DIDffijjllklmmklkjkk&?:?]hijjkjkjjkjgj1\cggdfbeUUfjklnpsuxz{}ᄳcjklmprtvxy|}~~}(B1,'jikkmoqstvxzz|}~}|{z篩jijlmoqstvwxyz{{|}}|{zzywv쩪fijklmoqrsuvwxxyyxwutsdjkjlmooqrsttuuvuutssrqpo Uiikllmmoppqqponmll"UUffijjllklmmklkjkk%]hijjkjkjjkjgj1\cggdfb| ^!<# h$&}&)o'H*1Uʽ[60  %%! ~|zxvsqomkkf"afmry~~nT;!|zxvurpmlljbQSTUTTSSRPmYSC#xwusromkjhf05:?>>=:<<>FHLA#tsqonlkji? #qpnlljjb6mllkjj?7kjf_9gb?<~|zxvsqomkkfDʹw!|zxvurpmlljb$#xwusromkjhf`lx}}zwwz~#tsqonlkji?#2B-#qpnlljjb6mllkjj?7kjf_9gb?<~|zxvsqomkkf)4!|zxvurpmlljb#xwusromkjhf#tsqonlkji?(8MfI#qpnlljjb5mllkjj?7kjf_9gb?< #12p3M4u6ԍ07|29Q<,(K %XP Background     qXPH8HDHPH\XPH_UEa--.158!;H>?AdDHH(5 69899999 -9(99  99 99   ;;99 9953678989  99 99999  9  99+ 99;;9 9  9536%8989  99 99 99*  99 99 99  ;;  999 9G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/faq.xcf0000644000175000017510000025615600000000000020570 0ustar00userusergimp xcf filePBBUBgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765 XO>FAQ     g '@gimp-text-layer$(text "FAQ") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 202.000000) (box-height 62.000000) (box-unit pixels) > >n   Y[* +&/ OJ84 9 b9 p/  >   kC I  H    #' !  `   & @(   ] fA `  jO    ? #    w ohhm *#  r7  R3E  + ]R,   |[   62  n   n  {4 4z  q f  U d     5C !D  ("){3D<Z2URA< "}d. %6f > p KA(pu/1,vc0 'N )B#')$9% -#0 ""''9!!hB1 %~   +?teTlQa{aHs)   t SW !I!y" , " #  -%9!)'<*/۞i4$Ak[-.^1^5X5D576xl6S5`)5RŁ`?4S lllle2XPIcon     % _XP XX+X7XCXP 5TNN$N4NDNTNdNtNNTWWWWWWWX  - & (  "%&$! "   2F[qydN7   %BeݻU&   6d !88677 32"%,3;CJQX`o|Ӱҿ3:`B70(.6>EMT[euʮw1A.7:,#+19AHOW_hwȺK7@19='%-3;CKR[bju}¾;A{Z+BP4"*3;CKT\dlt|Ҙ=B\2ER3#+3BFJNRTVcv~~}~s_YWURAZshd/C4|d,$(-27;?CGKMN[r{||}~nXQOMK @UryouzHa>g1!'+047żŽh(Os`̲ƺf#9coҹkZJ;.(G_ɺȻ9 建l ߶Ƹv  ĴV¶37߶޷ڳƸ#ڱ´W ۯö0ܪŹ: 7ܪͭƼ @ݶΨM  G}ů4 Dݪƨȵ)/ݧʽ$ bݠŭ$ҪR˴$" mĤ*  +#̲ܭ]<:;;:6], ѿ%δ+ĭѵz][\\[YEԼҚ>SlдΘ:Pчoɲ˚?UэưțBX¿фñűęEZÛDzG [=ٞIʶFYswjm{qμ^=;=<<99mr2)%#! yfZOB4$+R]  Xm`욾{ۨws9Ftq˴\,)1lüƜH'*'d׻6#&#b޹»f'"!U辧_!겔5^M)4@jH#,Sul~+";evkXF5.Lf?t  # Y 5 6!Z  6= ?FR N9 J-4)l()&0 15lFEEDC?mB8EAړpmnnmknLeIcPjT"!! oX%#$$" s%])'('(%#vY]'$&%&$!v*~QNPOONL0$,49<94,#($868=A=Ľ}wrpqspfdeVF80,+,.267B/û{qibZSKFB=4.*(&%&(+-/dE¹zqiaZSKC;5/*%! !(QYxog_XQI@:2+%Q hȿvme_WOG?7/'  W sȿ~ume]VOG>5-%czǿ~ume]UNF=4,$ p}ȿ~ume]UNF=5-%}|wnf^VNF>7/(( vºyph`XQHA:1*)~ lúzqibZSLD<5*(fٖ\`ļ|skd\VOGA9,HҋSINľwnha[TLF<7qЃNFP8ǿ{rle_XQL@GڇMENV!º~voic]WPEWTFMUZŽztnhb\VLezLNTY_axrlgb\TpqRUZ_d9Ľ~ysmic[wpY]afkztpjc|t`ehmr]ľ{wqlxrhkotx(»}yurssrqqpqomorvz~ s~yvtrqppqtwx{}0ſ lž纏$ÿLſÞuƥ ÿˬ0¿ϳ<Ի@¿; 38 6 '*951,'!).//-fSSTT_yA5#HD?:3/+'".424jTT_yB6#OHB@>90)$!"374/9TT_yC6#_]s~]7" '::201TT_xD9#|ɕN#0@;0&UTT^xE9#R";D7%TT_xF9#F +GB0TT_vG;#䏼ރ. =L=%TT_tG<#䂥M"(LH0T_rH=#䁏l(#BQ;S_pI=#䄃у2&.TH* aoJ?#䅃ύ;($OT5bmK?#恂ɍ?+&A[C%dlK?#䅄y6,$(y`.PB#䍚~unf^UME=5,#,}b-PB#䠦}tme]TMD<4,#2a) PB#䬣|tld[SLC;3+";_#QD#䧟yqjbZRJB:2* I[ QD#䣜xog`XPH@91([RQC#䠙|umd\VNE>7/&$pGRB#䚔xpibZRKC<4,#2w:RA#䕐|tme^XPH@92*Gk+ R@#䑌}voib[TMF=70'%e\ YR>#䋅xqjd^WPIB:3-#6KYR:#zsmg`YRLE>71($Sx4ZR;"~ytmgb\UNGA:3,#5w_#ZSC"xsnga\WPIC<5/'&SAZSG"qlga\WQLD>81+!;yg*ZSF"ifa]VQLG?93-%.^HZSE-"c`ZUOKF@:4.'&Ni+QZSG="]XSNID?94/(!Cv@PZSH@"UQLHD>94/)! ;jZbR[TH=!NKFB>93/(!!8dr1\ZP[THB2!FC@;72.( :d?[_Q[TMJ@!?<950+&#>fGf_Q[TQN<!851.)"(HlNVVWUQ[TIG= 1.)$3UrN`^_`^dSC;8 =:Ռ86$Fm*^wlho|m)ꫪ᫸R)䭬wz#񰯮#|#ﶵ´à{#ﶵ{#̧{#쾽|#싼ö߯~#Jٿ#H俭#Nອɝ#8Ѳ# `侭ߣ#3tɯ#Azг#Ctշ#>.C|\8""&),/05?FGGHG?521.,3FEEF0;syP5" $')+,-.//.--+)&!   / 4bnQ<)!$%&&%$"#!JvrZM>- #0D[ 6Wzj`\TJ@931149BMZgmmq!<9Xvukhikmmnllmv"& 8M`y|$, $9IVdr~~sgWK=&-4LdyydM3("86VrqU5++?SgysaM9%.6Tm{dJ+ CntpllĶXxvwwvwqͿ, @ʾ덠Ug¿d ᔎs"㚗$zpܲǾ&犢¶(uļ+셔ŻeϾل(B1,'"$(k "$&(+;1$z Q"+q#7x%2e' @lg) )5?DEEFGGFEC>4( , )$)Gf|Lry~~nT;!'C^q~HUTTSSRPmYSC#.Iao~f9?>>=:<<>FHLA#io||R# #[92{[=,3cP; 5& # 6%90 :~⯭Ҽtʹw!毹ϼy#䲼Ƶ}}zwwz~#Ͽ_p#2B-#·T1¶_w2ž)4!#康#(8MfI#123578;>;011s#2L3i(5s3 6ؠ`18< :,(K %XPAlternate Icon     2XXPYXPYz{"2BRbr(8HXhx+MzoC)*dضY$dɘ!"z pW&88# Gd($lͥiUD618FWk:KYʣnC)(4?HQTND:. 'Gu3CɐI1>SkyaH2)P%՗T2Jm򗖕{_9)W֣߼i1Ko{`8R9b}ztrrqrx~}p#ٓGHl~wnoyinw}~z߉3Kq|ymt淀_luww]BLlv{{zwp^dmp޲OIgptuutsod Y`eL`>_imnnmlli]n yR[w3Ubghhggfec[Q OR߰FHY_aa``_^^]WJȾZHtq9OWZZYXWVVRImѥlPHCIrg?ߥ@@=5?Z0bB7BFGFEEDCCBA@@?=<<;:81@D+ٛ,6=@??>==<;:998776531/.+&d3%ٹm(3798766554321/-)&"%xE'/2210/.--*(% y2>/#*,,+*)(&$"Um V( %&&%$#"! 4 \#!%%$#"! *  a!%%$#"! i5 gw!%%$#"! ,I jw!%%$#"! `o `!%%$#"! % \#!%%$#"! %  V( $%%$#"! .W  A-#%%$#"! 2B  A#%%$#"! 08  лj!$%$#"! MZYXXYQ ٜ #%$#"!  d9"$$#"!  3f #$#"!  !"#$$#9`{qN& .!##""!!"$&(*,,+b:&&$!xk"#""#%(,/24662X/..,($7 ""#$'+047:<=;8Z2531-)$s "#&+17;>@A@=@}488641,RZ!$(.6<@BCCA=G499852߰A"(08>ACDDB>8i39::963`1&-6<@ABBA>5vC399751߆&!(06;>@@A?70g+587630+&ّ: '-369;<<8/4uǛO*/4420+'!AՅK#(,035651*%-51)$*./-*&! @U֦e!%(+,--+(%##$&''%# HU-ӔO !"##""!  T9<5HȍC L+MzoC)*dضY$dɘ!"z pW_F9,# 7Gd7HAlռ|rnr}gYӻrqyzrhlZCӱxsl%ڶz󿾽xlޣ˚yv#ݴǿ|ˤ]໅뵐ƍ Lҗ 졋ܤ~ ɇʼn獇tޡ~߾v{4ݝ~zwbφ}|~uٛ|ttrٹܟ|}{yuophoӈ}|zyxvpisfl>|~}|zywsk\cfVx~}|zyun|^`ee\u~}|zxrqm_dfear~}|zvns]dffegp~}|ysx^dggejp~}{wo]dhihge`s~}{ukjbhjihge\u~}{tt]gjjihgeVx~}zsxaikjihgeA{}~|zrz~djkjihgeӆz~|zszzfkkjihgeлܞv~}{vpkjlljihgeМv~}yskfcbabejnnmkjiged΂z}{wtpnmnpqrqomkihf3ݛv큀{wvxvtrpljh|{臈꽃{}{yvrolxޞu}~zvrĀw앃~yܢq{Rғs|Ņs~`{tՁut~vەu~&ݳr|}uնq~{uՅΈpwznnqnknz|vpi̙ppw~|vrrty}~|zvqjc[=-ٵpouy|~~}{yxxwurnic]dswjHӯolmqstuutrpnlida_c+MzoC)*dضY$dɘ!"z pWyfR# ]GdXm`lüYǽCȽ%þƶ֣Ƚƴ#] L  ߿tžŸƾ4µbĸٛ̾㵼ٹ¹ʲƺ洶>ɾƭVÿЪ\Ƚڱaʿ߳gž츮jžū`ʿ̽䮵\ʾͭVȾAȿл˿¿Мǽd3¿xڿϿRмνļ`п䷿пƲ迴&ͽѳþľɽ%֦Ⱥ»¾Y-û*HϿ) ' !$%&%#! " ".:H^s}oYD7+   $4Tv׾nM/! .Q ֨u4^ +["I /k 9 G!Q  U! M" D#6$(~% `%9& &'L'((I) $)7)`* **:*S+ v+  '+ 1, =, G, M, Q, T, T, R, M, G, >, 1,  '+  w+T+<* +*a*8) $)J))(M''';& c%)%8$ F#U<߶c:V9ߩ3*TT_vG;#gfd^S0QT_tG<#^[VL(g)T_rH=#WVSM<%_pI=#MNNLJC.FaoJ?#EGGFED?7zMbmK?#>??>=:5(;lK?#57765430*kLA#/0/.-,+*&L#jLA#(''&%$#" %iiMA#gNA# P eNB#  -cOB# '`OB# -_OB#  /^OB# 2^PB# 2^PB#  .]PB# -]QD# '\QD# ,C# M ZRB#  ZRA# jYR@# E&YR># {YR:# 0ZR;" vPZSC" :ZSG"& ZSF",# a-QZSE-"-%HQZSG="+" 2WPZSH@"$ )bR[TH=! ?\ZP[THB2!WZ[_Q[TMJ@!rf_Q[TQN<!VVWUQ[TIG= %`^_`^dSC;8 U<߶c:V9ߩ3$Fm*uwlho|m)ߢR)/򐔗wz#E#7|#9à{#!{#{#k|#jY~#롎p|#sn#䤠rv#쟝n#昕g)#xe#䎏mz#䈊v`M#ꄆxis#~}zvm^#{zyxvtm`~##vusrqokbdi#qponmljf`Y#nlkjihgfc^U #gffedcb`^ZQh#dcba`_]\ZWO^'#dcba_^]\ZWPV-#dcba_^]\ZWPN/#dcba_^]\[XQI2#dcba_^]\[XQI2#dcba_^]\ZXPO.#dcba_^]\ZWPV-#dcba_^]\YVO^'#dcba_^]\YUNh#dcba_^]\YUN~ #dcba_^][XSQ#dcba_^][WQ]j#ecba_^\ZVOy&#fdba_^\YSQv#heca`^[VPlt"midb`^ZTOPª,"tnhd`]WQrª3"zslf`[RW©7"~wog^WQ-éO"yoe[R|éi"~vk`Unªm"xncXiªi%!lbYxªrX!`\Z}s!di!zj, %}ea8 U<߶c:V9ߩ36c*uҢ)ߢ{)/#E#7#9#!###Y#ð#Dz#Ű##Ⱦ)#Ķ#Ǿ#M#»####i##俾 #伻#仺'#伺-#伺/#伺2#伺2#伺.#伺-#伺'#伺#伺 #伺#伺j#伺&#꼺#꽻"㾻PB"M"¿T"-u"ǜ"¾ɣ"ț<!ⷮȨ!Zȸ!ȹ!ȵB %^ ; 9H)7ːR-6җM& 4ʀ<3[' 2|0 1; 0B / @ . > - 6, *, f" + J*.*e )5)l! (7(c ','H'q &)&:&U&m && &. &4&8&;&=&=&<&8&4&. && &n &V&;&*&r &I'-'d '8(n! (6)g )/* L* i# + +, 7,&Zɠh= Ap3Fqˢ~eRA3.4BTg iK)|:O!S#?گt& Gwǝm<*5[|vS.CZӺ~keecb`^\e{XxqԻzpkq{,iK)|:O!S#?گt& Gwǝm<*5[|vS.eZƼ򳲱q¼(BiK)|:O!S#?گt& Gwǝm<*5[|vS. O"!X!!U  J#D  0I %.GR`t #(-16>=:<<>FHLA#2 #ݝ4h6Ґ"7ե<9ЖD :3<󶺽ʹw!@#K}}zwwz~#2#2B-#ݝ4h6Ґ"7ե<9ЖD :3<)4!@#K󺷳#2(8MfI#ݝ4h6Ґ"7ե<9ЖD :3 ? - C .D /= 0҃6 1p;& 0ٝ_C1% .{XG9/'! ,ݵhUG<4-(# ,gYLA:3-(# -QF>71,'" .2,(# 1 4,(K %XP Background     wXP\>\J\V\bXPNe[K.gAAB EI%L'ONREUjX\\.5 69899999 -9(99  99 99   ;;99 9953678989  99 99999  9  99+ 99;;9 9  9536%8989  99 99 99*  99 99 99  ;;  999 9G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/resources/tutorials.xcf0000644000175000017510000021010100000000000022023 0ustar00userusergimp xcf filePBB0Bgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) gamma0.45454999804496765P> Tutorials     h 'Fgimp-text-layer*(text "Tutorials") (font "FreeSerif") (font-size 50.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 202.000000) (box-height 62.000000) (box-unit pixels) >> 8!]!f!T5 L)=vp!0Ly sL x LgLv RLП=h L?C L% L F`l/ڀ L "_i0 L  L u L v[ L tX L tX L tX L tX L tX L tX L tX L tX L tX L tX L tX L tb V `w j 91^  c2C3 W u *X4 X 6V  $NsS"P 4hX;3%9899ه`BrСrB -.y3%}"rXP#}g1fEPm*M^$Fzt[="3:fLU avMB5/ A,4 @! 4 @ 0 a/4 @ Z F\4 @ + +s4 @ jE K4 @ >^ !4 @ (4 @C4 @z>_o4 @4 @m84 L0E _F,r<tqW BEe CRbJZ0J=ߦ0'( !TrG+ 9"n5Z4 785888888%eϫ~ fŝp(4F|˂C[A7׀9Ww}qH  $ Q=eNDY=T8Ch yhaq8ahB=Bhu h1/~ht&h zh=J?Jhh(9hh PrhY2ML0)h:tw{ePh0.=Q2h'_~ch٩&7ecjJ@ctLlllle2XPIcon     %XPPsPPPXP2WH{HHHHHHHHLAOPPP#P3PCPSPc|vr!r&h!8V||||~}||~||~}|}||}}~}}~}}~}}~:RqIIOIIMJIJNIILKIO[IILMJLOKKNMKMNKJ]P!;PqIIOIINKIJNIIMKIP\JKNOLNQMMPOMOPML^Q($0@PsNNTNNRONOSNNQPOUbQQUURTWSSWUSUVSRcW:KG@BPqJKPKJOLJKOJJONMS`OORSQSUQQUSQSTQQbV3LXKCPqIIOIIMJIJNIINNVaNORSPRUQQUSQTUQPbU2M]NCPrJKPKJOLJKPKOPVrSZXTTWVTVWSSdX.JSKEPsMMSNMROMOUeo[Ł_^X\ZXZ[XWh]-IOJEPqIIOIIMJILuȩagR_}`ZXVXYVUfZ,HKGEPqIIOIINKPniTa|{ZXZ[WWg[)FGFDPsMMSMMRRUToYfªe`j^_`\\k`%ECFFPrKKQKKQPxRSZlY`x^`]Ì^_`]\k`$ECGJPqIIOII^\T^RV[^_hXYaf\]_lfug`\[j_ CDHSPrKKQKMxXYYX^j[\_`^`hɒc__mcAEH[PsMMSN]ɥ^\\]ssdacożibboe@EI]PqIIOKuaXviUZbɘfbdfy}``nc@FJ]PqJJQPXRTZVW^Աv֜efddgejebpfAGKcP{Z[aicbchegўsxlmvҐtqqssv{p{rAINrPuOQWlk^`\blgrefixıqjk~ɿ{iulAKOPqIKRSt[Waɤ_cn`aejogssgerhBLOPrLNUQRZr^[dʥafqdehlskwĸ|ojiulBMPPrMOV`Ž`[blgrefjyırlnŤrjwmEMVxPqJLSavf\]Y\ΖiqddmЍnklos{nivkHNdjPqJLSS[UX^Z[bحtڥmnmmppx–kkwyJMrePtOQXTtsZs~__do͡vpryxtăvnLMxePsLOVRVz]bbcy|nlo{ɳtJNvdPrKMTPQȵdabagrfgkllo̾ͣ!KQq`PsMOVRTck`cdcithimonqw̐á.KVqXPtNPWSU[ZÑ__dn{ruij|zruuοut>N\ySPrKMTPQWXc]eʧxfoѪrryļroxEQ]QPrKMTPQWVWpwenѝtnm|qCQ]}RPtORYTV\[Z\uƝwipҾ͓qozpAQapSPrKMTPQWVVX^htãxãґnlwwDQlcSPqJLSOPVUUX]Z^igǛmutrtpkj&LP{\TPuSU[XY^]]_d`bfgjp{oqtrnqÓtsrusp/QO[TPyZ[a]_dccdifhklkpzoorsrtĀwvuwwyЍ,RO[TPqIKRNOUTTV\XY^^]coabfgfhή}jjk{իj+PTvZTPqIKRMOUTSU[WY]]cnaaefdgq}iiՖh5PapVTPtOPWSTZXXZ`[]aafrdehihjlnwʉll֚k CQnrSTPqIJQLNSRRTZUW[[am^_bcbdyfftαgNRuvSTPqIIPKLRQQSYTVZZY_k]]ab`bɌvmcddeъQRttSTPrJKQLMSRRTYUW[[Z`l]^ab`cpecbddamNTrkSTPtNNTOPUTTV\WX]\[am__bcbdgpnfbb"MWu]TTPqIIOIJPNNPVRSWWV\iYZ]^\^`oɸj]\kc3PZTTPqIJPJJPNNPVQSWWV\hXY\][]_]Šˋ][j`BS[PTTPsNNTNNTRQSYUVZYY^j[[__]_b_lzko^^mbFT]RSSPqIJPJINLLNSOPTTSYfUVYZXZ\YYdl\YX}yAZshddPqIIOIIMKJLRMNRRQWdSTWXVXZWWa^Wo @UryouzPqKKQKKOLKMSNOSSQXdTUXXVYZWWZZjHUZVTSSPrMMSMMQNMNSNOTSRXeUUXYVY[WW[ZZx9<58BNHPqIIOIIMJIJNIJNNMSaOPSSQSVRRUTRTj}{!{_n ,_7ZsswssvsswssvusxssuutuwtuxvuvwttxQYsswssvtstwssvusxttwwuwyvvyxvxxvvz7HAiYvw{wvywvwzvvyyw|yy||z|~{{~}{}}{{~gw|Yssxssvtstwsswvuzwwzzyz|yy}{z{{yy}ZYsswssvsswssww}ww{zy{|yy}{z{{yy}WYttxttwttxtxy}ƽ{||~}|}~|{RYvvzvvyvvw|ƫӞN~YsswssvssuԼ{Ǜϱ~}}L|}YsswssvtxŬĩ|ɪê~HzzYuuyuuyyʢ|{нͤEwzYtuyutyxǘz{èѧ@vYsswss{z}µ8rYttxuvȪdzƥ֬3pYvvzwŴպ̽Ì1oYssxtƅ}հΜ/pYttyy~z|~~éೊƷ.tYɬܶܪқ,wYxy~á̏Óϛ({Ystz{ˠ~պՒͷ$}Yuw|yzȲ׻֕ɪ$Yvw}Щ̏ĔӺ+Ytu{̼گۨ‘/Ytu{{}㻐а1Ywy{ɔٸҢ3Yuw}y|ҙƮȶ3Ytv|yyƧ͹عEYvw}z{̥ҲѬҸcYwx~{|ѬϤӁYtv|yy~ίּ̟ܿӐYtv|xy~}~ŘέܵɿӌYxz|}ԴɶιٮYuw|yz~}~ʵҹĶҹݬ0Ytu{xy}}ԳÿSY{|~ѭdYҟۨ]Ystzwx|{|}򈑇޿\Ystzwx|{|}~Ҝ߮ mYwx~{{򍏑ץ౎#Yssyvv{zz|}~əË,Yssxuuzyy{|}ըۦ%Yttyvv{zz{}~ˮ+Yvw{xx}||}~ȒEYsswstxwwy}z{~~낌ɴȎlYssxssxwwx}z{~~}ӶקчYvvzvvzyyz||Ysswsswuuv{wx||{}}ˎфñYsswssvtsuyvwzzy~{|~}~ˤ~Yttxttwutuzwx{{z||~˶=Yvvzvvyvvzwx{{z||}~~ɧswjm{Ysswssvsswstwwv{xx{{y{}zz}|{|!"Rg ]bŽ嫩aŽ嫩Xm`až孫𚾮aŽ쫩aŽ󯵬aŽ嫪׽{až家˺ijƳwaŽִѸеqaŽ̺չlažƯڼ׷ǴdaŽܿʻɴbaŽճҸUaŽбͷKaŽԳƿںJaŽܳʹϸŹöFaŽԯ˿ҸӹEa±̵ӿ̿þÿ@aſź໹۾û9aŽųյ徺ȿ5aŽϴն濼ý9aŽʴ໹ۿֿBaŽ־λ̾۾HaŽײֽнLaž޽õKaŽľNaŽԷlaŽúɶӛaŽ̵þaŽηúaŽټ¹Ŀaž䳾οÿaŽ䱴׿ξKaŽѽͿҁaſ½a½aŽ븽ļػaŽĺϺažɻѻ5aŽ붼¹۹BaŽ򵻴8aŽ뵻θEaž뵻ݽĸnaŽ򵶼ݺaŽ볹ɴaŽ򵶵׼aŽߺaŽǴ%aŽҹYaŽ*aŽ櫩"-:"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"?"S86554$rm$vz$|}||~||~||~||~z{{%IJLIINJIJNIIOIIO]|x_?6#KLNJINJIJNIIOIIPaճ~UB9#RSTPOSONOSNNSNNToȽUE6#PQRNMQMKKOJKPKJQٻsP6#OQRNMQLJJNIIOIIOסyA5#RTPOSOMMPJKPKJUύUyB6#WYUTXSQQTNNSNMb{yC6#TUVRQUPNNQKJOIIwڭMxD9#UVXSRVQPORLKPJIҘ^xE9#Z[\XW[VTTWQQTORw_xF9#Z[\XWZVTTWQPTNiۻ]_vG;#YZ[WVZUSSUPOSMۨP_tG<#]^ZY]XVVYSRUUբP_rH=#`a]\_ZYY[VTX`ŝV_pI=#^_[Z]XVVYSQUo۶XaoJ?#`a]\_ZXXZUSWէXbmK?#nokjmigfhdcgϒXdlK?#gdbea_^`[Zl|XekLA#cd_^a\ZY\VTxݨnXfjLA#fgcad_^]_YZאiXgiMA#ghdbd`^^`Z_vgXhgNA#fb`c^\\^Xi޿^eXieNB#srqlid^\\_XاReXjcOB#俼qcjab]ՇRhXj`OB#䛃szadlNgXl_OB#hiwĹuߵ\MfXo^OB#jjv؝SOhXs^PB#klđa`rцRPhXu^PB#{hivh^]hqNMfXw]PB#ihidcg_]]۷iNMfXy]QD#klgfhcas۟iSQhXz\QD#䈛qe`^t҅bNMfX|[QC#Î`\jpaMLeX}ZRB#|ьdھwgVUkX~ZRA#qpqmvtĥp\[nXYR@#d`^ӃѦeLKeXYR>#c_]qʡܽi[_LJdXYR:#fgcbuͱݭm]dQPgXZR;"`a]\վԱ`KJeXZSC"`^`\n̉~]IIdXZSG"~{Ŕۻc_KKeXZSF"ʭ}أWaNNgXZSE-"lx{m]]Ԝ|Q\IIdXZSG="Z\XVg˲bQ\IJeXZSH@"\]^ZYw޲slRU`NNgX[TH=![WYZ|֦YKIP\IJeX[THB2!UWnЕ]IIO[IIdX[TMJ@!VWjhPKKQ]KKfX[TQN<!wXYdڮXRMMS^MMgX[TIG= ᣑّMOIIO[IIdXdSC;8 Tmrpo8czqp_6Xytso6YuutoU5Yuum_U4ouplqqhC${ugVbW%|rt%z{{%sussvssvsswssxx_#uvtswtstvsswssx̥zU#z{xw{wvwzvwzwv{ỞgU|#xzwvyuttwsswssxԼv\à{#xzwvyuttvsswssuʹl[{#z{xx{wvvxttxttyǭ~c*{#~|{{zy{wwzvvwX|#|}zy}ywwyutwssԹnA~#}~{z}zxxzuuxsr̴c#~}{{~yx{vtƫ{V#~}{{~zy{w¥wN#~}}{{}xwzuѸvN#愁}}{z|z˰V#憃}|ī{^#慁~}{z}ڽ}`#烂|{~Ϸ`#摎Ȯ`#按ĩ{`#煄}|ּt`#䋊ϵs`#䌋ȯ~r`#䋊zp`#擏һvr`#ɾ̲qx`#䳡̔Ǭ~qv`#䦍ɗʫٿwsv`#䪎ɲɖȽѸuux`#䮎ҫ˲uyy`#䛍ĩ}vwv`#䍌{wv`#䏎жyzz`#䥳ʯxwv`#ѩ©zxvu`#䳞ܧּ}|`#䓒Ԕ͵`#熄ݜƬut`#煄ֲ¨{yut`v#勈ػԺ|yx`t"凄ʹƝts`ª,"ㅄŬ}͛ss`ª3"㶜ҥۿzÇtt`©7"Ѹv~vw`éO"㎗ʰyss`éi"~ūʅyss`ªm"䃀׽xy{vv`ªi%!~η{tsxss`ªrX!}}ɯssxss`}s!}~Ĩ{rxttytt`i!Խwsyvvzvv`zj, Ḫδrqwssxss`}ea8 TUSM??8Got[SP?6Bn[UTP6FtVVUSU5IwcVVPCU4lj^QTTL.$bOXN%е|rt%âz{{%x_#nvq}U#䭮Z!*;U#䬭< .#䬭 $#鮫}  *#P ##+)#鯭 #갯k &#泱L 9#泱( +H#糲 W\#紳f  h#糲C &l#%Jl#绺{ ml#亹\ l#丷6'l#緶 Gl#t fl#亹S l#澼4+l#׽ Ml#Ķs  sl#ʻ̧Fl#̻ݲ$8l#ϼ̶ Xl#Ļѹc xl#溸C "l#滹" >l#ʾ al#˶\  l#ʷ:2l#俾彥 _мl#綵꺢s ~̷l#渵S l#㹸嶠.2l"樍 `´lB"㶵ҩj  wlM"㰧K ٴlT",1Яlu"» alǜ"峱h ݴlɣ"䴲: lț<!Ⲱ ElȨ!İٲz hlȸ!ðǤ\ |lȹ!῰:$lȵB İ Al^ S*C+7dۺh6R56e5dS$&$<[$%D% %%^&,&&~&H&+''''~'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'|'&@JDPrLLRLLPNLMQLLQPOVbQQTUSUWTTXWTVWVTr3FEEPz\\a\\`]\\`\\__]cn^_bcacdaaecacdaapi PsMNSNMROMNRMMQPNUaPPTTQTURRVUSTURRbWRqIIOIIMJIJNIILKIO[IJMNKMOLLPOLNOLL]QShilihkihilhhjjhmshhkkjkljjmljkljjsmY  B:7!7@CntpYuuyuuxvuvyuvyyw|yy||{|~||~}|}~}{XxvwY, Yvvzvvywvwzvvyxv|xx{{y{}zz}|z||zz~Zsswssvsswssutsxstwwuvxuvywvwxuuy[b! H@=!=@eaŽ믵񄳮a崲(B1,aŽbŽ嫩dƸk! QIE!E@?"?"?">"="9!Uv}!}  "⢧xMQLLS^LLgXnT;!egiw߾l\`\\al\\oXmYSC#QRS|ףQNSNMT_MNhXFHLA#JKM|҇IINIIO[IIdX#ijxhikihmrhi|Y(栜X(7ZF7 7=+j9LtL9?.+FL9UKD;NW3;NU=UⷻȮsuyuuzuu`ʹw!䈉yy`#yzһurvzvv{vv`#tvιsrswssxss`#2B-#Ƕa(Ɩa(=WӚD= =D+\ػp9Fd396(%A39JC=;NP3;NU=UϪz el)4!䶷R l#䬭20l#䩪" Sl8MfI#빖fbQ6m(o(EPrCE EK+FW93H]`39-039530;:>";:*=*|'|'|'|'{'n'}Ӊ}}|l3'Hf'(  /ؽ/$d  ##! # I !&)+,++)&$ &  ,(K %XP Background     QJXPQn)5XPQi!}8.:! = {5 69899999 -9(99  99 99   ;;99 9953678989  99 99999  9  99+ 99;;9 9  9536%8989  99 99 99*  99 99 99  ;;  999 9G478:G99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;?  7B > B?  ~ ~ >E   1D?  ?@> N ?~ ~     ?D A@?UC    ? @? C?    ? B  ????}> D  ? >  ~   A I ? C?+ ~  6E?B?~     ?A@>?kR    ?B?E'? ~ ~   ??>C?Fw     ?B@ D@   >A  < E?&~  @ G?  C >  ? E @ ?? A?#? C@       @ B  ? @?   +F   @  > ? ~ ~>A@ B? "-~" H+B @     ~A @ ?@?  >C  + D>~ ~ @B   ' C?D  ~ ~ ?E =G>  Z! >C@>?=/8~ C? C  >  ?  A ?A?  ?  C4 C  ?   ~?E  ?D?    @E ???  C=  > G @ D?d   %F> @?     > ??>?|A  ~ @ C? A  @o @E@Y*(+,-.-. ..   ..,. .......  //... .*(+-.-. ....   . ....-.. //  ... .*(+,-.-.  .... . .. ... ..  //...  .)G,-..G.////////////////////////////////////////////////////// 98 78535 98785)5  78  78535;;;;;;9G9:87G4>  D =? ? C ? ?  Cs]? ? H? > B??  ?p?@ P ? ? B?>T g? >  J??W?  @B ? ? @ F?+@?> En? .- ,,*(*.-,,!(*. - **//////..G.-,)G,(K %././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/buttons/tutorials.png0000644000175000017510000007150000000000000020025 0ustar00useruserPNG  IHDRP,sRGBbKGDNx pHYs  tIME)jǢ IDATxyeE/99gVefUVV\EQ8 oj O޵ _U *8ŖQhb,(j2++;cX;,o/1|^'Oq_y!"B㋻qXFe֭Ye}+kgB$warch ӯ众0-&όOɉفL{ErDs$@DVl01Ko' !?]Y^Hd^=8z"aDw!XxRԝYgw wOp'  ގId +P[>#RrG!N^ВNv9/[\{2muD wK0݅v~SgXd~p1Dk^㔊y/i>| h M)Rfs, r錟g!ݲle]RZ"YGe"bJԢS.00 @ U$E@!T.,-Ğ R3D|پ!@pŘAZAUJ䛚BJCHB/Dr$A\}H^L,8QJA kJ. %l'בXQNFʤ$ JI(&ƀ H6h&̤W#cEva:,`|D)K߀ eywJ4HB,Iep0O E(Q[T*{e[1{h!շvܮXUr S ֩xTEzC{@&㔼y"zjE?D/q(@/dZGj`Ʋ4FYi- v>썀RZ)u];3')1SxD>M("{6夷 LAo(ELnR>)0au?Dj=$ޒQĩydS3 wdakY 楒#ء 6@$dҩiAS9YZ"Zail7(Tjqs@ɔ&߅a PiKT M!Vy&&RC hmmee/[!`blKaojgIlLbcJ@(P7d7.|4;qucb61`&q(BK$RM(<+xClG`"k#e&0/=> E[kZc佤 %RXwX$p~1ZJ8GP2^dJ$0f8鹠ޓ kb a:<7?dA0䆴ky3&̸ciw jwq?HHNNdhwȱD>1RClZf,x0(q6R@ZF3&NJJ,7FmtZF\rhwdÄxވxz%IQT~ddnyHfߑ]x]c+ȚAJөk9xDBt\Κ D! y/xFs|s( =ò| hh(pS?F=ހ<e1 搐ɕUI/lzOb?1I&ڌGp >ػRvVu{Kcd[wR[EaY֎*dY*D2Hj' ѣ`UoaEʛ =x%jvkjW:=;qd#5c=lA @\ . 0;|.@!!Kvq:X$ AЃ@$Dp D2Vn\B. & b`oB mnQMXW0[XhllrS '[$226fF,E ,%ˬuaۓ 97:qrcP~c8F;r"c!ݩ9Mٳ+uWg ~6_YLe1Yr`ӑZ$!Ԅ@T3HJ@-qs a\52qbn7@|$6JN}k_JibT@9 uFjޏVQȍ#'J(KW-1cX8e~<h81' ,R;b7^,+#@ kD`Q.x1}U ,j܋RT%jXѱĸPBaŽmH;" S` 8G;p-d8  ڭQV@@&m- vczri.jOލb[`xbmMlZՅZ$qN ;3q$D!LvLv2Nav;6/i+1[JLn9:[Z|6N~B 2ld#k@"CsU(2C uByޣ:Tw~flh{S/iyuQ\nMuL%TrzeqX{/![^2ޑ2GjssKH7ˀOVnTGQp682ynNZe~o*(wvC>ī7Vapl߻{+s8~C5B.NMBuu4uKOݏE&sz|\+%pv@ /:4Q J 2ܸ: jK±plsE83Qp4EY! bI.q_\  >pR<}[vaxL/!OQȅȇM 9rcGgTc%bcxv降Gq;ra|$$1]PrAp"QB'P`]_Mr?2rղDby04~>Ҵ`866ZhBގƆu;daNrI7tEHӏ!5 8yZ CN6YlAP oa`N5󩧞g>s5lق7vԧvDcd½Z.Oad3w܃{?0|A,Y$D#~8J\NUp!l3pYw!Z+!\y4K'K& +njZZ3aC۫t>͢2H]Krelך:W` b4к zN淍 )@@ny#ηb`a!J'92`6:2fsőW湠+ ePo!c?)p *@;PP$&fˈd ٺwm X5[*hoiPEl#ش'. ,%:Ɗae7!هATR:VPZ%!0 ?;\8pE[w,X'O`7CƩp*A&a򮗂43d(y i'RIӇgJ&2ZZ1_"{1/ sW/q&cKfL@"0|A<PDC9)H e@KČCJZ}8Aipk')4LX25#4"3Qt)*qn_piP8Xl4cgKFcfnHa@THh C0K@x긄} nZpR?H" tBǿ%CR2 oѲ/i.[!H"aMʘ^W \H#v13:2;_Xx_0˝,fΑC$?Uwm CXބ7,4U"C[m jG> 0[֜:pxax0z`rr5ҊÅNО$J vGwbv6Y@12ijf^6!I7T*nRdjF%0eR.m!1bܦϠ`9*Ce`ܐԝ26P+eNeք T<_YǶ~_[naH3AR~܌m۶\.&ᣑc<;+ݚ+Ĕ3|)oƄtvv{]tuo9O)qae?ľ})JTeXTLh <0X3 ۏ^!?&Yr</74tꗿl`}Q6^0e,Ɋ! t4#SjŦU]Xֈ $},s^ьK 05[t3%D".ҐҀ<^u2L$VaQ a(QHyxzc>†UMGP-!9PrݛME&=ʛS zP7ވmޜ:\6@Bgg'Wո袋pWnl@KV<_9?;4GeHsFBዯY/H)ۙ}#qꪫىg -֜X)A jȍ$:붶6Xг%Mp)CALEa͞91r;QS2U*›sKxKǦ-)'RɆ[X<(̫5VOqRߛ+HXԬGUUdC#,#/Qsj)u|D.#\;xq54A Ee-E|JU=jŎX46p1ژLB>DaˎCER OAOg3v4q։kн / M%F TiG@H&h.aijL}(C kuҀ2vr!QZ-.{W`s3gUW]xCX싲Ly͛ww666ǥ^Klk|Ha"羗gwD.4/1/e3sdwoTg}ӎoY޺L ~W{Sc2GbCY]>u^QzhGD.Xl6nu.yr-iɾH IDAT*5 FMJwq}8ir:0]ƢFo8a%ra @ضo" bL3*-,"); 0L}T7 Y57~"R(l@ L`?pP(2-~VKfG nA*fF|'?I%gd5vS8rЉ)EfWP᪏] Nü /vnpFHp`7+\=96O։R8"yh\Y.ώZkB (kt\.͚_=Z(+2vtp[X5z|n1C5yHnż]NWn޺51'EcE+a@w LL6D1$FڀJv船LO'pZfF= ai3ɢjZ^oF;ͽd OX#t[G 5'2]^a uJRscZc:|B/Ǝ\@|U]xѽAl3"+3.cTI,tSPkAL)VҘGL:!Hb-A?!26ȡ5<*`GLTsўoB8*[8I:ձ_O?t H 5*6vm%O?rJt(}v,"25UF µ^{~zhΩYq`BpC -f;nH#5HuZf2 yHôvO䀓,4?vH}=ՉsJ_?K[M\4:{фr5^jjMjEZ|/e,ﬡ6Z Abj k@'4AdXo|c]7|]Y.Il2lڴ bHJdix{GOO E޺.j>Ϲ{gukzolFs>lC t]uOsVar:֜%z|qJSz@>}%[ 3%il>@EʜDsE dw8/QBc6f{m9'n..͙%|jǿݡ>"qFli*#cA%ؕ|' -i_}F]Ӂ#ߘxi(FS{VvZ\&)5ќ1fR  G{&xk-(ݺ4AM@ /L"Qo® ^_o>$/w@h$4%M.]eň4]%m28=-N$V%/D=V쨾Gb KǍn᥃)7X6Of?1.t%s!_T~>*#(4;LAБܑ}i.|Kpxݱބ<).Hgpd1jM~9%186'}aˎCXہWnA. 8R5J ]'#¦UwVUPb% OړB'|1Lp&:T;2N~=xǽyg5+ of>wxߝj77ؿu޽{կ}\?բ<mۆ۷cؿ?VZM6aӦM8cpI'! <^[n~;~_g?9|+_O<.moÅ^|>>O?4nVO~qT.oƃ>~T*aժUXz56n܈hmm|r]PJgZo?0vڅZ ֭ƍqꩧbff8SRFqPf8RqErxW?2bd3.r!J9AQV6-L4wHܪDqʐԻrmk:(px(MW&B!m CqA2zCQHd["~~O1[%5i ijFqIkyM=ݱD@p.6𳃨EqHv Lbߡ)4r8hn)iFGNcot\{P-Q.R`֊A N)dH;ƄO v˟5sӭg$^CC}QO<15bBnݻ׺fڵxmնpZZo>˿iP}|͞SO=6p 8qh~|͚`Uz>cʕ.!avۭ馛sϥyIi1|_ƺqޤ'^m݆[o{4554F.ky7q 78cqꩧO0^?ŝwމGg?׾i/8 !6 ''?Iرk׮[r)8x |A|s>9.|)3X8ydH#k*Qmlы5`s.}[ Kw RKVfo(}\,\D=l6Vrt!_=Dɀ|d׬-vp5eVx__x29$@vwCعd(4Rbil6l؀{o} _>u{|>Okb'tݺgť^a^Ŝ?owvmV_PSEJ.wWX9uQ׾\tE~llAn?Џ\LMM+> '78묳peZԲX<{ݣgLTh6gbgq@S\%Q{g:;:.,b$|0Ge}@sޝ;a0Kz p ̢̿'6BV@V}Xڀe]-ubMo򹘞5~ z{׭;߸ (iC[aI)4BrZs:q xk-]s^gb%ښ ȇ[ }^԰'@{$~y*@T(" W\Ve_?G Lldz'{ Ly7M~b.0 ݍnM]o]`|W_}5"8 \wT?sf-tt,g|ӟg?Y띉ro}[qڦBz:򕯴pr%\ߑ߇D/~Kz1y{9f]xTU|r䗹|#B__I9SB_T2tR輻60;s< Y-p__09~.<˸W?տsy݌jntH_uYzn'c瑥|:ˮOF@ޕ7::9,SDA~8$X@ U-Mg?838nl[V,FSC?/ OAJl<ݏƱfUL$`M9z\5`h|{'ѳSUnEI<5tQ޳Ǯ_a$rV.Pُ|u A%rIbڀ~lDM`8MwcYeFYYDO6kN hiK1dQvuueX֤=,Ym9" I\1c=+˅8pu]KgԢL3N?]=0V.r|#q> /~ \bJ&()WʸקŔjeL~.DZl(0Tq|UPڵkOo\+/l`C<¦k.[:^R#\z饸4Ԍ|YRsr rUÀ0d LB͂ڔGwG&g+xņloD-"t7"+50<N*d:VNX0+t7/?UyfFDj0Rx4 4tz5*hu hO ada'L%&U^Hf-[&"iAsj<1*>ַbŊVNbeLeOOpwk?OG? 벀oHmÆpoN?tpad_Ұ. w۸NOzzU,1thW,O/LH:ynl}YȀRUOUgy&XIxUXS儅TcpA*:Ki,tu>5ƶ`]2e`)-f$ ]UdAŪgņ'ޠY!L>,a 骒I P̘ ~X)6T"KTW^6%ٹIFEP˒#8}2s;x&K:.t~.V2yd(aR`*v8/Öaޑ͍y5PLꞫt5bdR) OE!c01S[0>UlkԐC>&8߽ -My< 'f14>)y,(P.a (>nF+VړN: VN\veMGI׾5|E>\pD:t迤׮]k_pYgesp̉^hƯ={V7&gdy襌ik]A/Њ-ƀJBͽз&DToI{a :HXgKUDD*E-;%r $686wVضo4n'fF-B!ټt SOH%dՔLMRa0$OYgr뭸{_w%r'Px)CX,2aUI\gi31#M0k踬a'~nMϪsɠG S[rA1Yk=eQ$N% ,2jdڎX 6(VEJ  sj; ig bwu_7+)*9LKhij*fF3 1ܠ2X3lvJٵ3c<VHnV|X]vACx| v[A׮a LΖ11[@q:[g>2Q 簯086u;zY~I/Ek~˅@`i{ǯoE{PͣZPbP'8IU( KZ15i+H-IH + IDATT;uLv@R،TϕZ|dcmRq3q}y7"O'L#di܎q{! w14%%:IēO>+?Qy晸뮻p%g?N8T$XS%I\)5)Iܷ{R_;կX_ $J2)bC8F%M=r 9O I7^mǎ+yʭT B,$Jfs5Ҥޑ-u%'F2IƔdm,XIkM_k*JS>l&H)ݠuL%^5D|LYT<+ZMp+ui:7o0G%R)hu+ήދ7fH3wc"F~V xI*:jk^RB6=_r@2)")^XkA\V41v8txw='ԷÙ^^*!ҔG. u(:Z06|Ňs1կ:PxsUW]geRz{bIiazY&r2lY.)M3/k~](*-G )qWۣ5YٓPegi%է%/E\/%/TZ­y¸&gx~4! 78KZzYHD2@RLI 9 YԌ\`Ф/]܄WlXiqlS!%a8v Wځj @ +*r ́0_8gذaübS~,tMB/E]x>5W_۷[裏+_o\8옣jU&ƐQJK45B>D9\PA_ 㔵(G%\믿WЀ&\0sfI]7]6b7uJa0bgNZŻܢURhY9R煑٥xPYem=͚cT~tr1 Q$2Y.{t|yc3 eőS4dbm`Q( ӌ8a@!C!O~B<_ltx.~xqY !b0*ԐkY|m&+)Ug`wz/aQkk/@D,QXrhj0T$727+S&u،7*uL(CIʮb4#ҍD:T#bb=s qLJHEֹnβӃ׭K]ck$-бsu}cc#z}mUO7%p*&2PWp=2>E]l_㕙ͥt=*3'3 SH&I0_{q-ޑ2>o&d #6}*84{ؔȀKK<=X $=g+9}$CQ+D#%O/~-1l@Ux!3&<-Pڲ26-`;iKa|8媹3dcÝh섴sc2Y䤝'OI_Hi^IW-iK*[ 6K7/9f˒ڔ =j$;e'ERcX2vR%!Pz\EQΪݻ.v x&g+Bh R47qܺn F'JYրSl5o'!϶^ZέP0hGe =\tᅔ0UȌgt<\`&0ZޟYࣉ0A;:ى1}]w݅_~9D ` wI+ w|e5pv)Tdinl.+A)S0ۿYh'rULP QSSj߄,{vBS.9T&ڪ;ևL&9+p1tnK[x`Xc{09[85joVN{K"CŚ66QD\êZ"M$ZJr ߊ9sզ 6,pޭQ2:g>3wmJ,]&\DZ,@$|#HJU;W0[&СCxl"I0&1 +oy˛ň2% BB]c#{xu$Y}zUFeyl^^-[sN|{KyW _=0z)vS U<*쒤VS(Ct"b4|w+-2䔌H/%/8vvPfefep3htjt 9j8_0h/LJv9HtL1l+ ļ 3 I!PTY6`6{Kx숷GݧIuC:gZ-Vy;jHnu$U?qiTSmRrqW&8},&ɅO.WkǦmC!)Ѓ"怏 ٹ@5͢(GC" >ږ#Hڙυ(B+6iRԠNŜzURxd}Xl&ep9M[S$T%/u ('lO7zjrҡLS~CBKKuwܑ )֏?u7nE"2o,:\J=sl0>l3/N3NYUlq֡-׬Y=GGGS}nkܸ@F- )E5,+eVsd|Ȩ#"*+z(eyVC}Rzcj>idVtցχC3VyW +~jߔ qM:b瑱#H*5J5B\JU>ZF|^̹+OOZ7 'lXƧC(UjlF-zuDw{3m(dyb-9*_tّۤk֬98n:6twwvsK,?A볻 CCCs^{Aw}}cprnΏJ]\}뮻2;22/JuG&j/<4^;^82&&ώ+m!AdHUK50jo“;_ڃY]ubgv`Ͳv[ KCg{^q)`bBujDTT }$-~jE_7pz|t+Pҕٮ\XxnZj G`Wdy/xwɠt.q:EB"]#)Tb&Em-4eyV@W`9L̈R!X8;Wd03wda<ަ:Pb|4}dBa (K"EsWTrlOtFƨElDߒV},]Ԍ㈤Da aǟލJ>RA܊R"T6`j)] `7T|Ead^9 E 따bUj;#5Z ?nu&+!|$| xqwܹs'.}YXڳ vO=^xx;pEY.mKp駡o.]4~ˎ=--fpՕW{ ~Wpє @/| O?vO'?)SPcp7];\qT>炻'| zzb wIM/ Fu}}v;N(^(o|CnBˡX,;7݌%] lLŚ5k@i1.ez`JcƀP(auU|4%^2R2yC$. N3)G 롪R<|@Ø1AqJaZriHF<+T+]ޔK ~#+wB3K)L惀0LҬ `PJZ),l&/RZF($U֩ (3ϥI1TUWIC/Zl0&5R;ipcRUx ]ϞHj5]vXY!xz\o7=W/$92aRW)\ b]X;U=.V002 `XOƕiU'^A 0=[ CSxAt5N yxrJ5 zoF'.VܐC*j13jWAU4ǗeR]k]w].E[pA3qgg~w}7~ 'pb/<urjs|NW4}br>vFZ܍o=uqћ 8H_~9?K)qm7l؀ƣ[Oɿ~tvuZ7oo|===شiS_=݋O|ƃ@{q]w><>vǰ( $rŒ 8Ix0Hz3Bk:O`(ſ/4|Zxv|\`|rWXr@]Mqj潷wIE$!S`'%>ɇ 99`\tO[N@ۉe eȈ%j'7]9LwUO]eevLOwuWWW_ylYL9@}q3xG 6*A/#S9c]0$ϑ2A["mIq㔹tp6&)CZD<-RrRV4pko%>X׆!^fksMV0OR[ >I4я~s4$I@DȲ xo>}:؍7aaa?*h/^w,--OMM^P[?|o]g}/"{^}U4M~7/Ɖ'/~?!/֭[xwȑ#xN8^z jMk4iB3Fj5!I8Ȇ|:6{B'v :dy0=Yu)'BOMnW9vGe\]^WĿjo]Ì1lt6,)Jf7_&%ZKܹbps+& ճX^bj[w7Aŗ݅ŷC{d S]λZr#Pڒ!6@8+W/籸pĆ 1^8y@FÌsٳɓ'1;;ܙZ0S.--ܹsv|A<#۱C}1D ; SgK{gYg… "|)7O`vzZU@|efڹoܸKxVWqpa,,,L)6I sv9ֲPޭdZ,CuK&Gm˄+ZҬ$AI)L|Xj Z/l W}B cf٩?>vl%,fMa}3W~]ﻋz!ŞտGN`޾ zcp*҄05M8..,5iMkR:Uް XSyUmY~IJLc °p[2ĢOeYnѕ.4kfr~&!15yY!+w̌czXOp+bA8.kzd=+M w@s7o|7=ʴSEy*-CڒR*m}VAy\ }_zELӍ'#X?AvrA.j\@~VrS^L9Xo{>w+} wMbvr 7f9?zbfbwu[@:Mt7;?e,\@4Rm N] )vZƖ:p !4xTp BÙW+S4J|םc~D0 KY?ORj"Ýk˅j,e C}IDAT۞1pCPࠬ73i NoWNGDv-U\R%Һ:%||sFo;. QJ*fFp^k 8 ?20O,B;,S :`DK  DHXHj(W x(n]@j@KJYPR{;ȝĸCyQ eEVj@BR4+ vWKV$#LJ {~/V q1^ꛌ^;!هc)+x~  3a6$:lvXL7+>x>#uo9xڊuj]X7j˲sm 4VYOHȔ^(ÄO{s2ET,qݫyg_|t?Cd޺pFo< 1b\f0- `GV/+s|Л q%N Hh"CTJ]*  AC1_5z~"` 1Lm& Xҥ%UD6!bcAɁJ+Qb-van3bRȉy &E\`r,u)M ~Cl' KR[w5#jJ*"G\&B,׮I)T/99{0ayhf`hvc Ld0(b:yl<#+x{"02V{x^ܼ x}v703 "vm 8<İ2{fޒZASG+}&@bŨVH?u-ѧⰕ5oYQ Q. 9qSZ{:*6{nºg'!Q؀=Nor`c#0G=Q5\qZO#ꕌ85\_\ \iDaقB`ȑi-tHpTpde0 ۟ ҄`*hʊ59 *cP `[i)FB.EK6 n{$ڭ)  '2lS\@߁Hx IR rA "·2SZn!{إ]hS1%GĒ/?cX):,4狋JMb|-P{T9j :gOrR^T.KeOe_ɱ6Z:FV&+W<  :yLlQ)Y:2eQ+d,@wm@⺠A$A1Zz\Z<*PN]Ƽ~X4iCz/I +i< PJs7 ur 4[ʄT_UoҳIDih b\4GK̈@=W3Q(ib;Dxv+`hrȫ$ MɖRLMt0495^~pybny^cx7Y+*Ccc;x9 {03X|shn%o[@X[I9mQZL꣔4BkI]|9jƔ GÐ̶Nt=vy>ƻܯ1}AyXNc7MB'W!J6퐫;^ ՒP 1CjgevJ5b âD'1mJP8#÷ا*ࢦQ1y6-{c% c;evy,X:!֝$(ן9<~^aà &$kUkU,lV< v7R{y(֧!wdLq@r ^T܅$C!KP'Wٓ䧐ˀ.3DX/ MH|\.={!@B3v+r [P)YXCO;MJ \Ɣ8yV$K~׾Lun~n4KdYOy )gz3~z Y<ʯWU>{$%,6.#>V6apxn~8-886AmDպ9*oaF1Yݪss92ˏ~`X^)_*>h5xDcwGj7Ǿ{Qx_.}BL|qm( `៷XܐpU׽A~.:fhe 2YaQf1e)iadN 0 7`{ n7qFS@q߲IєtP ,-{}}f$v(p1 3ϘՈn.v(`:v!s/yrbة!yF0\ d <6 !P[>&%0%o^ѩ p~#jRPSM2UB{I(t󥯎1ٙE,DVcS'K%Pl]B(}4RzO}2 YOGq`I!NB"UqB©]\*rW n\Tey0s֭I 8wt9WZ5\U7WDVJY ne[͌ w$l.3#%D^2%)0Վx{]D:pN^e?R:+q .םdSSxߣX>I6}0o066Veb# D P6AS|#|5su`;Y Puֹ0g,Z`Sm0l`$.pSՏk1~Cq a%f|Fbo58wY GHh b8VhOh9c 8[bSX?_nߺ_<7=Zj/MkZ\] Ƚ رc4Bnۛ=WTju7NLHPoѽn)lִOr}K~#"4cAѣwyg0aeV~=={5yu*`0p8`0@ej|$Q4EAFJ=!-~}o^M /Od$INV+WcG]_@>^Kc~A%Ȳ*~pc 1 \!wBݶJ$Ӛִ5ih~SO=Pl}vfIo| @MkZӚִ5iMkZӚִ5iMkZӚִ5iMkZӚEIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1547804150.0 stem-1.8.2/docs/_static/digest_chart.png0000644000175000017510000020111100000000000016732 0ustar00useruserPNG  IHDRo| bKGD IDATxy\T?00.a"₶hʭL햦5%-BIui54R15A}_ay72, xc3yϙsu1c1XWWC0c1k7c181c1X7c1uBee%*++QUUrTWWJKKQ[[hM166FmH$ba\T HԎ1XO1XTVV<塨%%%d(..L&c5c6q1HHH&ѣGFsXHLLӧ"** Ӄ&LI&aРA.1ƺ"o1dff"""8ur9000PwJJJ_&MB`` 2c+c=Unn.ߏʕ+ĉ1i$L4 VVV.1 /_Fxx8C"g1qD8c7c=IUUñg?~2e ^x7YcJjj*q={x1sLxyy<lc'@HH&L3s`c=;ww^ݻ:t(/^W^y.1:7nݺ-[`߾}1}tڪ4:ꫯp!888`ɒ%x7yCccQrr2.]XlM;^%99~)v ###\=qj+`1z裏0`СCy&|MnqqqAXXRRRo`Ŋ6l.\cCpxcnٳƦMvZ\v /"44)oC+:dXZZb͸q,--y桬Lݥ1X5>cu۷oرc憛7ob׏3<HHqaܸq>|8&Oߨz駟fff6O\>#Gl|w/// <2RoĈXlYwww8qO?'xwQwY1n81XvZ,ZׯGxx8:|7v):u .]œ9s 7ol322ڭ  ..6Oۨ{฻wٳf\v all}@WWl\]?@WW~~~d;,a.lǎXp!."WCB__%)))1cN>n5nB{Z3߱c"** 2 D~A$%%aŊZeUgŝ;wpX[[${a cuU7aÆ.~!޽>UdffbҤI:BlݺUeK/OOOu'.144/CCC̘1C0#c]1dZJݥʔ)S q aXUUlقz ÇDŽ  80Mbb"N+V`ƌ=z4nܸ!<_^^7bXp!ƌFcʔ)033bbbZUTVVbɒ%7o֬YUVe`u0ydb1yޡC0k,LcL>tuuD"~̛7(..ƬY`nnʕ+Z~M-DR O,^...˜1cc݈]c=b1dffO.Ely233ϙ3nݺ%<8q"YYYQIIIsww'777""!TJ^^^1cIPݻ 'kRJJ ;vO<ѪjkkLJ̙#<]Ԥ֬6KR)}TWW2NZZZ}vTXXHDD1%KQFFڴiw}GǧU˯e)r:w)22z-*++k3*ƏO/`GcuA D"Pw)*Z odkkKDD/^$M"""_HH}DDP(͍۷kkkiTTTDD opGDdffFkǎU۷oQAA;$ M4,ICC(66Ј#q<<<`eeE:::Z~Mnea׾w05qWLNNN.1ؙcCGGzzz.jjj˗rck,^׿{A.b1f͚h>njU]'O8;; os"00Xlšf„ _p1}W^U퍨(D"~o0{l,]K, aÆ63VwAe0#c]ȑ#!HZUTWWcժU2d{='***2n|| pssCvv6Ӆ"())|PK.aڴiطo:BKA^^ @II &D[UѣG… p:i wwwDEEaؾ}+""999裏qTj>8p H`nnWWW!5\ (\~M.s6n܈3f ""r&L^;v 33SWS}cd2rqqqƑ\.Wk-4{l31cГO>IK/QXXX9RRR(00LMMښΝK+W$:r0,,, .Phh(ɓnܸAO>$-Zd2) O-ZDeeeeaؒ%KH.XӧחՕ6oLG~N<٨H%@fff4a0a9~GarZrPSHHNVVV:#GPXX0lƍ$h۶m°+VPeee˯e@>>>d``@'NӧӮ]h̝;^XΝ;G:::~zucjq'1ƺk׮8xЉyvލ,]T:%as9<33f =ڦNgc ˭cuaƉ' ???$ob0 cԨQScuݻ1~x;%c..]\.G:uQtt4/TŠ+wߩn'33SNٳpB>|.16cDee%yf_|FX;w֭[cǎ!++ =0qD̜9ZZZ.˫EXX֬Ykkka„ .1^o1ܺu ?qiL2˗/c=S \={O>AFFVZe˖6XO1XwSN~@bb"'ɓ.NSRR-[ ,?bcczjn1X7w ԩSݻ3<^x< 81Xoq=}@$dօիnP(š?].cuc5VSSX˗HR <ѯ_?xyyLeNVWW$ܸqq:Çs181k*\~111~:L ~ nnnptt󖺹ܽ{wŝ;w7o">>UUUDpqq0` :Æ KgcG7o}}괴$9WWWvvv077W;`FzzҒppp@%j~1qxc11 T@@) {{{666pvv#amm sssPPP|!=={.򐕕 Bs@WWW{:::j~W1kqxc1"dDFF"&&R yyy*aii SSSHRD744Tӻl? 2 EEE())L&UZ~~𸠠 Blllsss;?`cc0X1ƘTWW?6l؀|̚5 | ˑ\ǹ(**Bqqq!!H`bbcccbHRhhh%p ###azCC&/mll aj4nii)jkk䣤(--EMM ʄj2 2 eeeM7HR\%*YYY Xf 닍7b̘1c 7cO.oņ PPP3g Q(NSʿ{PTT$jI WijrO.QhTEmmm@GGWكhll a?/>C;cpxc1ym(,,̙3vZ>^͢vZ:u ذaƍcګ81أ)//Ghh(\\\)S )) _}.`ԨQ8y$Μ9]]]?^cc(C;}L: 5 8s LLLQF!<<\ݥ17c@#;w 44666.@ؔ!.00Ccuc2!^/ڔ=Cآ91X1#ֳ"<<gϞBrc1C+++Cpp0zj̚5  clȑǹs`jj@ac1X mӦM3gRSSyfsH$,^Cvyfڵ Xb8Xo1zt|ann%K`ܹX?v킽=V\!1qxc@v ,Y̓Kcݤ`֭ꫯ`ccE߆Kc1ƺ4|gعs',--ġx W_}kkk,^Cc7cQS?^9ކc 7NxchX/1ƺe wXOX1ƺ2e^Wc=7V=:!cc]IRRk.8::b{Dyyy ###qcuGc+XS۷AAAX`]c7S7obؿ?<<<|r.+??}o,YCc;c1GXXn ; D"Qwi1o1֙˖-Ƙ`ǎغu+rcuEc3b˖-ؿ?뇥KrhcQm۶AKK ./^ cccucnD IDAT7Xжo>K.ŴiӠc(,,۱m6hjjbc]77n~Ç k֬)S ]c!.44bǢE J]cw˛~cx۷o~:Nn ֭Cjj*.]P899aŊ(..n Ov91֋4 q_ݻ'"q {da cCD?>KpIHÇ_G!""O<V\{NU3ԩ aaaزe bΜ98p *++b1^x|&c˗O>QӦGGGڵk1a5VjJJJ}vlݺiM,_ݻ!cJV͛" ֯_?" @ 1ƺ 5440sLìcm `1XfM cK$a\cٹsmS(سg{N17X~z[D"~GL} :t( 1%@.BREEECvv6rssq=梨Ũj`jj Bn8FyyynH+AWWjSnlT>_T*H$U ZZZ0226y)gqob磰(,,Daa!UV\\b4{R2BGG^ 1Rkl_5j;pm"娮+̳UUUP(muucEEE娨BmSD"ttt```D333XZZ 066T*`nn.ںE1y*++QZZRU>.--L&ڣEpְ=i~b( ( TVVeee2d\\\TuzPpkF:Z~ͩH}-ض}EEEQη~W?\r]\S{D"<622D"T*+oXSJKK\ddd //W gʿ===C* ?ߤRiֺRWW"={VX6^XXبommmP ~ְ5T~P1ƚWUU"ܻw}VTTȔAAl?utt J[@Vvý,~.%%%S Mm(--\.GIIՍQ&&&]Ð'H`jj F|i.HMMEFF>33Se˪&=-*?ԕ[XXzUVVB _?++oyyy722,--aoo+++ ppp2UUU!??yyy(,,l25u.}}}B"?P[###ar c]rL&S8QRR"lk!Dѐv{(ԎY*++$ᖕ% KIINW1pobb2ɩщӌEQQ=l>==]"U.* _1tQQ=.**jqNNNstuuabb~ljja݌UVV ޻wQ5 w6+oGBBpKLLDbb"U#{j|5t!-- )))HMMJRo߾pwwG߾}MMM.XwUUULdgg###999}zz:rssh+p䁵𷅅cKKKXM1VBg;O!E~~pINN1ׇ`kkr[뚪7o"11oBb}}} 7WWW[hYOS^^Tᖜ,lĸ{ ݀зo뺊4! -;;¡6665-,,N}c QL~~ ?YYY6߫X[[ 퍽=lllgggبuޘeee͛Õ+WPcpuu{=dQ/?l8.. 1`Cŀ,tsͭ'%%ݻ* U94{GGGUTN)HKK:ֆ}\8CDu.^K.눍qvvoooxyyÃ@0qMƍ ) ooo<񁛛f) !!!o۷"ܔ҉D"E8 Yo>*1]"33S8 99Y8$%%E|qmmm,gggt8SPP/d2tuu1d < Ň0ݻ7nWڵk|||0 un߾rn2@{kB@VV!KRRRt455@6ڂk?999ɓ';w݅>>>n9ÇqQ?uuu4hƏ=.1ցd2aͭ[???L2/",,,]ZŋƹspNNNWWW,1ƺmׯ_:200A0rHaȑZ#G8w~ǏKdQFF"##q1믐;v,^~e =8{,qY_0l0!c{D\\] шB'|}}1j(ݽ#KƚVYY`݈!1uTTc۶mؽ{7 /W_œO>K3ڤ ؿ?~WXXX`Μ9X`A:2%%FDDΞ= "?cȑD"Qw1Ԩ1118{, 8>,LC>pxcaÆ ػw/7C"kB^^O$&&bժU.[HOO_/3gVZeۘ\ݻ˗ajjI&駟ĉGƺ(LƗ5i#^u*>}~g$''SN̙3ѯ_-ޮ6m֭[agg+Wbڴi]Ц]v!$$(((@ff&?1c[\:t{Aff&,,, 888|K6/`ɒ%:۷oGff&.]X <;<==ߡuuux`. |7زe JKKc]!'Oė_~x饗0e?(e g;:b=[liZO.>CDD.]N}ԵZiq:t@JJ FyW^ie/Z111IRBBBH.fڵ? ؘݫ2nzzz0ӴU~~>;C/^+ ̌fϞuQQQkQuuuNhh(Rmm-Ӌ/HgΜ!١ݣ_|]JӺuH__ FnRk=ǎ#F={PEEZkjo܎ڻ?Ak֬iyUee%:iWWWG'N)S9;;_|{ gjqQեquJcƌCH& ?p}dkӼfR(KTXX8QQQC)n޼I.Iwˋ]J%%%/O=pBYeuf;Y<==Dx{?D봮&55{=ӣ>}PdddK+BGŔ)S0w\ݢW4Bغu^z _wҤIo|fqQ={+Vh\L:C ӦMo)wp 4nnnXtKi5:u =q̙N{_~Dzz:Μ9>>>Q({x8::"44Ą ~Ou%$HwQw)mr!@(00rrrqF@R~maxBBM2/_NӧO'???ᅴfΝ$w%%%g #"|2лKk֬!MMfk\,hٲeb 'RPP?Ls%{{{***3gyyyQLLLꬬ`={6 6ƍ2XDD? cY4AoG:tH8g4׿HCCvg^WWGQQQh"rvvL'GGG;&ݽ{eы/H*泥>|b1͛7K2ޞvTv;zWiȑty2d999Qtt4ݾ}y277'OOO4sL=z0>C6m{O۶mk=ks#" ;w.^V\I*AMKaj/,,lΟ?OK,!gggɡ^zLMMˋ9BDߵ:AiΝ;ISSmϟO޽{I*255/TiԐT*%//NЋKW^y}MԜR۷/[NG}%WWW*.. 244$i&JMMO3gʹF'N$+++*))ir$"zWI$QMM0=jmNSߏ=۾};~MFѹsH__L[oHz|w#Ԕ6nءCn#V{vQQBAw!dllLǎ7orvvO>d2ƌ3Feiii*߃3f M> ޽Б#GmrrrZjkkLJ̙#s]TY.l2PWWGGhtiڿ?:{,5juBCN{DB᭷qww׫VPP@b@&MR'oQ HKK4u|aBCCIPPllBhHBvvv{!l2""hTXŋ o2TU^^. ۶ml8M{ZNS1cFSO9oM^^lll]C333CXX\GGGDDD`ٲefx 6m\.GMM#_ .?259n]={os@ǭ@.X˗"jt{gysrr`bbhxg -}ϴpBDDD )) 555}6 ySR))lmm;T8::BOOC_vѦ45SSS?p(P9^,c֬YB;T{֚ĉgggq445Msako.}}}aX`` jhJ{)))M>᭗qwwGLLhӧOի*üH~_|+V^ CCv륗^µkO"&&~~~op…V[7ǵ6]: F(;6xwbuuu{ [000;O?aʔ)swћsexxxtk 6 uVNWp;hhk)l7NӚMy}fӚϦ-0x>8~8z7x}޽RZAAAV...0L$583PSSz @jS(jA&vZQSSիW7MC"44M#˱g2u1qMΣ)鉊 ;v<_`cc߇Q=Dz v /ϵg^TTnP7י4i W_}Szw nGm-oooM@DToNךM;jqkgr{B<ÆC}NSZ̙3EEE jz<\uAUUU4l04hV)--%4k,*--ڵk0O>d``@iii0cccDt ڷoYZZx"79 /@h͚5H[nzV:~8Ցp{MM P||<999+=zjkk~YN ט ///W9^|…+d\ q\]] 更o>Zz5M8Q8WQQq$T QkSݻGUexEEpRK3dō:hg w<;--'lԁFGHNN>}4sO(5׎VVV);G?=_U~lmm5 7h͚54o<ڳ|n׮]#MMM233Ǐ D"!ܪϦ7wJDСC@Z'봮-##&L@tĉFKzrvv~Qbbi@fff3L IDAT4a0a9~GV\I666BDDaaadllL?8]pBCCĄ&OLMN@>>>d``@'Nӧ?@rc=F7o_&MD|L>, <FJ---e˖ĉiɒ%l2ڰaShXXpƍI& '@+V+LII@255%kkk;w.;b9@akZqЭ__NIII{ ޶m=oѢEM^Ayyy9mذAxݹs '_X,V*_ziz༼<  XLϧN{muvQ\ "CWޣBھ}p-[PAAʕ+B%%%t z'ĄhѢE$ZlZ܈N>MdddDyf=z4tI{gCD\nS{sA>S*((<ڼyJ`i= JN*++i֭$Hݽˡz,ȑ#qQBDسg/_R̝;-SXgvnnNk+LOQ\\ŋc͚5}d{y[/&iٲe$ituXR߾}povh]J'ڼys* m6# zꩧȑ#TUUֺ(܎v.Z֝iP((::f͚EdhhHK,i%P/лikk#88$ SN4GŋI7ƦMn?hoD#F3<OOOa*]|.\d:t0uTX[[c̙PڝS^^rZiED8>wABBI7 .[!77ɸsӑd455accKKKXYYQVYBH*--Ezz:򐟟ϽG(//q.]wwwG077Y4 7xUUUqn߾۷o#11IIID܋G w鄴)HKKCZZ,<==ѣGxzzrӨr+..Fjj*ӑ,{VV/vvvppp`mm CCC !ȫÇ\Ƚedd+++{3lllG oD90Ɛ!ymܿkkk8;;}u ITVMM ݻwĻrEdƆIKc!??;w)CkkkXXX氱tKKKX[[SOBH$(((@NN=z\sA-//>DYYwuuuX[[sddmllT% 7ꐑx4771^ж&Hmm-lnt%++ @MM pvvFe9)..ƣG̎{aa!w x2Jkee333ܹ3,--ѹsgn6JꨬDAA Q\\"'Ҳ#n}===쀅,9990i1R㎆s;f"WCC rfff033ゞ)abbFFF<=SBLee%JKKQZZǏs?~.r?=affƽ-,,`nn΅2YXB፴_pъ,梸XnN:ܗ쨏5:uΝ;SNt}{UUU }}}.@__[85^nddmmmtС (//X,Fee%*++%@&侗-lr yՃ%tʽҡFNzz'ϲyN}S;jjj0441 ~622`ll ---@__ZZZ000@ǎVdeee>b1Q[[r\.5kM=sG-333ko3]›:B$ɽ~e;;ו-V<߃;t]]]AKK \300nSWWjjj:=ccVW'P__}^444|R)!!HPYYɭgPUUb1 Q]] HX=hjj'<}Xn>wX1ttt#AፐP[[&,8<d?q /cdd---nBSSSnA!`ee NIc';i\UUŝ! U_C:v숎;ʍ>/H7NΝ}Bځz.v+** !`٩dO<@D"ye~2sY|2r=@뾈+N~Oỳg?[\,g*sEecСCqҒ&Px#DrG***PWW Ʒ744}HUWW###W\A^`ll,&iipX Քw0T`Bl <v tuu}p]W\ɓl2qG !DQ}[*rZeG0e~ ȶ @n;/U3 _ŋ>?N,n4|:S *mGY9ȶ9BZ7Bڳh=&M?"ݻgFMM2G}cذa|D!ŋPw)w{sϋƄB!ƍѣGcǎ-vUff&6@pp0@̘1!B"4[bb"Fc- ++ -xƱcp9xxxѣ|E!lig///#;v ǏG>}9z쉫Wo7|z )))|E!Bፐfɒ%صk"##mo͡K먯7VX:K#B FH_cÆ ѣ9<<}wYBQQi#6mڄիWc֭4i·z5,X[n~~~Xlb1ߥB!DPx# صk>S[s奆9͛7c˖-P(,B! o(~ sʕ+h"ho=ޚC  44o߆0TUU]!BT7B1yd|'ꫯxxk{{{DEE8|0<==wYBih/%'bԩذaodÆ CXXD"eB!F 7nF;v@ ]Jxk 8x ~wQQQ|E!v!J&11F~]\QAa AII eB!FIKKC`` pAhjj]fff'pexxx,B!Q999;mmmKj3f ;CHH.B!m7B@aa!```?zzz|$G{5oߎ?BݺuCxx8eB! F0bHRDEEĄA=ޚoĈHIIAhh(>#3|E!6!<˜1cP\\3g‚D=ތ֬Y .@xx8c|F!6IMM ƌ49sFgro-cy&>C̛7#F@VVeB!F$ ӧO[n|Btk֬All,rss憵kB*]!B7B3f@LL wI/E=Z_믿ƠAp]"BF1Gرc8~8wI/E=Z&.]k׮A,k׮ECCߥB!D Qx#D,Y]v!22|J[ĕ+W7oA޽qM"BF|ذa"""0zhyeM1444tR$%%Xl.B!J! i&^[nŤI.P7ڵ+oOؼy3zk׮]!B7BZٮ]駟bݺu;w.6xjjj ŭ[`jjcٲe4B!iE̙+WbѢE|,?8{,6oތ[GpeB!'y+WlG1yd|'ꫯxeP7~ "%%}:ј8q"N 6Xᛣo GogϞ,B!(7Bڵk!pA?bBƍѣcl6| ooobƌx SSSX !Z(L7CCC/cĈS\tIB!MPx#5(--}f:ͱuVdff"44ͷ omݻwrJHҗ{=3;%!BW3.b1JKKcrnUGGZZZ;B[[&&&066kowr?khh@__K.ł JPG*b֬YH$`=w݆`ʔ)8uTMJS[[ HHRHRs3PVV&w===VС/==VBQfވҩDJJ ӑldgg#''(--EUUoG :u%lmmakk NmTTRRR< m/CGGQ6JpyDGGC(B,Cf4N"ܹsXz5WF]]|(**£GPZZRD瞺CCCXXX077LMMakk JB" ؋ҊcHMME\\n߾$ ++ S---aggt066FLLLCCC.dsWWWC,x2ZW]]Ǐsv(..Ç,r#;v+w0 IDATpU3S{b٨VmX,F\\.\h\|bZZZH$\8}4<-KIIAJJ RSS}qԄ`aaSN066ujdd$w-h/ ?zrTVVB$eeeD(++ãGBpajj NNNpww[F !xb@(] ! oDap%?qqq (--E777{pwws{rܻwIII{.\K.1@nݺC@@y5^HMMB$\tjkkx뭷MMM899A.ODEE󨪪rJzB.U!틾}bcc 0`6BH@#oeeeѣ˗ ???3.֭[8{,Ξ=CSSCEpp0Əf'V.4SMM q%={111%|||チA}}=I~TQCC޽xڵk# aÆaȐ!ԩh&I˨k׮ǏGHH~m9;: .@[[wy3g_|w)5رc8rbbb !C`e)UUUt7n1^zaܸq7n\{ o( 7fݻ͛7#""̙32y uzꅏ>ӦMCǎ.R)tttsNL:rKddd 22GP(.F1c`Ȑ!ҥ %+eeep/?~pvvƻヒ &p[*(0Hܹsk֬}`oosb֬YJ?_{BOO?1|6.77666ŀ.4'N@xx8Ν;ccc=AAA5jM R7oĉ'p!3g K$Qx#Da䵤#$$=z͛7믿"55K.>>>ؾ};cРA|Fސ3vڅ8hhhsQwB!ʏyǏ1l0ܼy/^g}@wY힕Ν;ǦMxEv$Q|1˗/ˑ]ia>>>p8ǏۛF! oDǏG!&&):֭[kO?Ś5k^T*ENN)ѳgOdff/wY֭[ǀ?]!%GӓN}}=&Nr\th &(lyyy?@pp0yܹzzz|DOƚ5k``Ŋ|E!DIQx#Eʕ+mM" ..4q]̜9...ѣBK=СC6m>lݺ&#QA9J_!(!K WbӦMW=K0b#00C A0|6JKK|rc-PذazPM-N=x1oOs͚5 {ņ /]!eĈʓJll>d3 :ׯvX{NJJbl޽ ޿/+:*++Y٠AX}}}nf؁eGalϞ=r7>K(2555***\_~rU)ױtR˒.Wh"ַo_ DDӧqelذU 8d̰qFom혘(www|XrBG=cŊ(**¾}^!""0rHnٸq\nYff&LZݜ4G߾}1eTWWСC^PP*ױzjxzzb|B!DPx#طo ={*t>|E~!pVxk}%%%ؼy3KOJ &1cPTTʏۜŋ@2ܹsy&UihhP(ę3g.B$ ?G[B\\p!88˖-Ì30h $&&rWUUa՘>}:,Xlܸ?@[[-¥K^iO?a7okd;Xn̙>} III-y7\\\٪Ǜ"DFFBMMMa#+doر(((d4|ܸq]v!99=G}EjjjE$?2~:'믿&^<<==1bܺuK.HR޽3gΔ[K. bXp!^x? ]]B!J7 ߿VXII ;z(cݻ1Ɯc1DŒ?>}:J1~8q1Ƙ+wǏ۷x6cdꬤ1w} r̝;1si)3gdFjm4440---]_YPPBgfdd0m6 *eO/sqqa&&&'Nd/} 8qM/{4֭[ o߾+Wv둑, 4Hn٩O?l˗/7|Ɵ&y餄BT7'啟s%OvzGGG|n]Y~=;0{l,^ .ĪUj*O&HOOGuu3-M1LLLZ᫈͛7ϟ@ ^xfk„ HHHqu[ؽ{+_|g֑̓177`HS|?jjjv&]B!›d=Ç3f@"`Ĉwd3akVKqF˗cm@CCpU|8z(+n*wWWWTWW? SRRO?, 5E BP!?g`nn333n@ @}}z/{4u$uuu7/7N!H_sRWW… Q__GbƌϬ#a d|Ɵ& :(tB/gk"7!GKb 344dEEE_k- YLL eؐ!C͛W_}¸ L&JY}}=2d322⮋y6rrrتU۹s';u|2KMM(2GGG͚5/dz]Jmm-344d?cm1̙#7i'OdD"fΜD"ĉ 矹e]ve,;;[LSywW_4afbbSN]*H!}U]]:w>t"wۂ ؀D"i9D"a666?W6 i. Kc_~%}f湖  YHHw̮^些7ofo߾իlƍؘ;D6|pfll̬٧~Ǐٿ/&߲rtgΜaLT`jj~7cwa&&&‚699JK:rSWWgyyyaÆs6ȓs'''6k,lҒ`:ub, ߟ9rDn?YZZr댽u}RSS/e,55[lL,3ۛYM:3eddZrsO{\,Y… ْ%KتUX,~s5ijj(t47B&BXsЈJJMM;vG_~Aqq17!T*E^^o,ZNR)`jj)`-3g_|Ѫ!1yd|D!DItR)S}vQIeee>|8]?Sa#a?fff8<0l0|H$|E`޽իjjjp% nB^҈@~+WG}e˖=Ӏ{aРADLLBw䲲Iؾ};~Gŋ|EZIzz:Ə3f`֬Y puu,B!Jiҗ_~;wolKj"""лwot.]R5vޔ9sSSS 4!!!,B***tRݻ† wiB o>š^^^ؾ};R)e; ̙3"66 Cv$_npi8qo߆͛GaoѵkWر=nݺaÆ]!6y!wwwa֬Y?>|}}wYD"uн{wܼyNMMMB=ޔӘ1c~O &M7n]yEXp!cΜ9HKKyyBi(둔!((|&I$DDD+V… @joKSSCZZ9 wظq\OBpY?Odddo %Bi(WSNA>}0~x{Eؾ};\\\0w\#%%+V6Q7姦 BDGG{accӧ#**fٍ7pBXYYa(++CDDb ]"!6y-Ǐ͛7qdgg{Ǝ;PUUwJΝ;X`` >Wk̨[2x`ٳذa߿Ç ӦMÇQYYw^}}=o,XvvvѣG###QQQ4i:twB c]i.]m۶{g 2ѣG8|0|111EPP} 6LwΝ,DEE] i8~8&&&?|}}E#B/!Jq=… FVVtuu1p@wطoߏz#44 |B! C፴ DFFСCq455ѿ`Сn3 66QQQ8s 222ѣG#$$#GZW] ia1$%%!::ΝŋQVVMMMxyyo߾ӧѭ[7 tRHHHkxTTT@[[}Ő!C0d>{Dؿ?nݺ>ٳѹsg!AFZ_AAΞ=˅|hkkW^/|||uuumREEPW"##ݻ7~SE1sL||BZQJJ /^'ObȑpvvF\\P[[ tpss;u]~DZZ;w %%PWW+j OO:p߿uuuxwCB #Q oD޽ PȅDCKK ݻw+[[[ʪCH$Bvv6u]n.''`bbN___R)tttsNL:rH+x1֭[ 6 ׯǨQ% RRR$ܹsIIIHOOG}}='ppp=`ii sss|=EOft-((GPTT| 33@~~>d2 IDAT{666psswCOOE8*(0~߹swAvv67:,--aeecccp---wEEա?澗 77eee\Mpqqн{wѱ9ͅ bcc:vF"`˖-Xb444_O>ynXpG233Bajj SSS@__zzzׇ ---pkJ(//nCUUc(++CEE*++QYY HR#??n accNw{{{899)t4FH{FFWCC=z, ''\𒅯J֢PUU:>7bgdd ?acc{{{شS^Ell,z-ښrH 9q>3/_(**BQQPTTBq!K$A$ "X,G\ؘ:W1 J}}}055oeFH{DFۻw/fϞׯc…x"{=[]5__n[ɍ޵E4G o(S#DeffΎ[Cb8tP n0k,СC||||}v<|6mBzz:н{w]|H!D!*.++૒*]8u~\r维Vѹsgؾ};ߥ}}}~:~mF.]gςN!Px#DeffRxkR)"""իWc…wf̘O իWqMKiq4G!E(dM#::>>>={6XB)'h pssÎ;.h!Px#DIR[q=`Сܹ3n޼۷̌nسgD"ߥ:#"CXLM=~˖-'pI9s|ƛ8B!Qa@MII$lܸNNNعs'֭[D5xשS'L0]M\:h4BT7BTXff&:tKKKK!O9qw?aaax,XuuuKSaaa~:.74G!!*z)رc;w`͚50004[o|h4B?c#DQ7*M[ܹso>TTT]Ҡ8Bi(¨TvK{!J~KQJ4G! 7BTx*7nIFFF֭[.Eh!QQ?ΝS&--,, nB\\ߥ 4G!m7BTxSKih4B7BTxk]d[ 1qD:uh!(k#DEQAMD\rR#AE=Z5_߾}MoF!_QQePmC|Үh!!*z9jN MMMݻRTBPx#DQ7s9x{{Sm%I&a۶m4`4G!!*z5O&ۦd[I͛7)))Eq:(&mKϞ=ѻwoD h!, o jvÇRGqhύD=^lmSLAǎgK!O8Bi> o |d})SNA@h! o ,j޽{pߥ8By5Q1M5n<==G14G!GC=ޞ&۪!,, ; .&#gQx#DP7jJ&N]]]ڵR8By!Çq9ܿuuuT5V=;vĴiӰ}vHRnyMM vڅ#F!N]v+99k$-ػ︨/w^TAA)V$)51h6Fcl&kt7lYM6FMDW]X"bQ*]Pp~ap񸏁;w=nT*Ŕ)Swww 8nnn9b'|/^^^xHvv6q899aЀgbذabL&C\\6l؀4x{{cx1`w8+V@R d2 y5k~m1dcX[[Ԥ1_WWzzzP*?O1Bu>T*ʕ++XmDEEW\P(#dKZZ6l؀8rL: .-}RWW[[[(.~L8b쁱M2֏bnZ*$nFFFxQkxmveprr™3gBm6N,,,裏B*r9+++7bc\dd$|_*bɒ%zd2Əooo|iTRkhh!Bm6NΝ񤦯s6c9N5Jn&J{uJž={n0uT-vI$N\wظr9f͚Ճ1䍱~nĈ]%K.]iӦym֙K^nח9]]]N \w'V-=c:}OWWoFG}~)֭[RzK= ۃ G}+W Lg}SvYuݻٳgwZg}Ìi 'o=:tԡW^yזox뭷J[nERRAN/⭷A]]]!44Ҹc W111CqIƴ7#FP}LGG˗/)[;~8Ν1O"`ѢEELL \]]qydݒ!WW q4.77GwRfp\y{{ 2?N{kTo_.S);;PTOJ%233GHY_acci@qI}8q"""PPPЃYfu<3"FXǃt3hiiJ%^",, B/_*쎥"::rmmmY/d2a ,?1̊Bsss߿"F=Dqz*<<>^o:::7o0N2N{@DGG ?s |Ir\.ƸoQ^^Cѱ$66_}{]]ѰqC￯Q5WR?8֮]+bӾyDcJKK <%"N;\hjjBkk^LMMa`` 'nƘ)JTVV娭ڊ(Jd2!Jaii ###XZZNְ-nyVеzl.uJ+++"44CEpp0Y؈k׮ׯ_Guu5jjjP]]*!*JIT 333a5aee%~=`ooω_;?eD)S_~ikkCEEPVVxFB.ց9aee%#<`̘H6q]R*())Aaa!Q\\2TVVBv3++.KKKzzz055.l&&&ׇtuuN.|˫EFrCT---M>9GGG _r($"cx衇0tP :<C~~>]2!YvZ!dnn.&o `ee"ի_tZJ.)hO}L.&"innF}}=Z[[!؈&TWWw7KuuuaooGGG899 pss'<<< ^/T*حR) {#QXXq| (--T*OLLL`ii }}} +++RΎ)77'N|訾ΨL\:cC>liiX-,PPP - $,d(_mBEEED@^^_.T1H$ppp.nnn8p ooo888h=n3d2˗/#//yyyEee5ggga# pOtcccklln5~Gss3睁CH|}}^]5ٶmf̘R)pA 2D㽦& ;;[P?$TR055(GGGBa7mhjjBee%Q^^.^v (..FIIƹVH<<<___u:8c'o577#33999x".]$$ld+*Lppp;P(R(**Baa! 'T㱰dnȐ!񁟟Wr9222pydgg… F~~> IGcvCYYP:Nzկnm7ða&rĉTq-PWU{^sss+u(??_%$Cs! XG H~տ_zU(p=Epp0'u=XJJJL!++ ϟ\.\]])xzz 7?XϪAnn0@wnn{KK R) "ܠ",, b@QTAZZ}}} 4H_}||}ڊ+W9kNN`ii "** QQQ|#"_466hnn B]]PeP#FиxZTSSqdee… (++8::"44Tz!ۋ5c~NBrr2N:ӧO@"((AAA>DP@zz:222p9aX >#GDDDzM8z(=T477Æ CXX0 <-d2={V,55W\Yѣ1zhnWRRcǎ!11ΆJ5BBB $$P(\(++Ù3gp!TQQ`Btt4F___e NXGɓHNNFVV၈#((;cuu;w?qIC*"00#Gȑ#1v^7PyoP(p 9rGӧ!1c 22aaaDEZZO$&&ĉhhhM8b땔BvHR":: J!%%HNNFCCѣGcܸq;Tq:u HHH@ZZHb8pء2 -- III8qP111ĉyTWWСCG||QTHOOlj'Ŕ)S0f̘kkkٳgx(O///Eee%}v$%%A"`ԨQ;<8 ?x޽W^-&OYfaT)\.uV۷UUU>ɓ'c̘1ZnmmmHII={w^9s;v,O'|7edd`۶mضmXL0ƍ=+++={ >}:Oޡ+wƍo>ǔ)S0iҤjnYYYؽ{7v؁SNgmu1"BRR~WoFTTNG}~~~bz2ݻWH`ɘ;w.y~'ow*--ŏ?7ҥKpuuŴi0m4DDDpLkJ%9۷cǎ@`` ,XW^_M6A&a„ 7oqҥKyflڴ  +ٳgׯcÆ ̙3g/ѣ9sdɒ~`i'ohkkCBB6l؀0771c sWǩT*$&&b˖-\.SO=^z bwגcΝpss/9sp?`֭ƒ%KhѢ>#33_56o CCC_~zGҥK1~xaݵ Ęr9_EGG͛Ed2Z~=:t(őJ;nKJJH@oR;,OoMVVVdbbBo&֊V={y!oooZn544T*رƎ+\Ov)vXoB~<<}̙Ch۶m&vX]*((~ttth񔘘(vHd_Ҁ֖^}Yեpڻwo>YsY1cШQbzpb޽… 1~x\t }7f}ñyf?1cBBBpICӠRf -- ;wDBBcXl._yaҥFZZء T*V^ ooo;v +#p5֣ ["99mmmܹsQSS#vh:s\p7|}aa!Ǝ5k>@vv6fΜIUxx8m6=zÆ Cbba^7c:ݻuv,-ֿ :~Fjjh9r(**ɓ'o@___xzZ]]]V}}}D{ <{g˗cڴihhh%;wbذaӧo1{JO['|6lƎUV.~z<9r$233Ox ?#0l0@GG:::8zhr/裏 7ƍc?ra F+VFX`.\777=;v#`HKKCppַt* IDATR 0:::Ô)Scxᇱm6ڊ=VmwgawѣG1c _hmLWW.:'Obĉ=lذA1%%C6wء|'tVxb~>\l_wxoÆ XxQe3fŋdd2ab;}dW_}E&&&ViFbjnn?y :}:[4o<J(wE .$gylll( RSSu455i…rJzwU(8|0듩)?~jkkiܹƌC.\ @~zRTlV]ZQQQ!rWϛuoWsWqAR7KZƩS;vLkT*idbbq^A*ҭws^Tv;_SzZuu5Ht֫qI=/`ӦMdiiIښw^/RNNĉޞ_N'O#z@B={=+stt$n B3gΤ R(4f7of~"}[^XX(ĩRhdddDhɒ%tq_̌PRRRM&ѐ!C4ګTTTА!Cӓ***oSbccHOOC,,,gsRDDYYYц :wcZ{7|;O>3@|ޖ-[&?rYY-ϥ^xn;Xӎ6ק͛7ׯ/LPllp"?ҹݻw7jrrssh{ٳgy] +999u{kjkk .P}}=}.^([TO?$>>0a֭[O?9>Sa^{ SLufBPw6`Z[[k,ss{?___7ׯ@RA.#..qF̝;mJckknntu<6kd^u PTT۷ܹssݞs.qXXXY\<1022% Ǐٳg5ѣ-[UUU;M 011~;wb{;uar?۟6m1i$"::?3t}8k̷p֛Yk뷷Gqqz)]yq<==rJ:߷˾+8wRRRO>O>YYYpww׸mJ(Nxm#]u߭W_}/bɒ%w=/w\ڝ)(,,Ā'v(LD1?~v)$jjjÇ9<Ϯ^ttt&nSL]no[""''' gD7:~ZRRBٹCguuupBӕΎCEEjR244oVkN ]ߑ#Gk,B:yn9vgkJ;s tg;,a5ydfƆ&L@&Lڱcr4uT&Zp!UVVRcc#ZJhpB3-[:̿&":q=cƌI&ԩSiڴivN/4]m_ G}Ds̡X4i$"gggZl2Fzw .}]~***裏>҈w!GGGg+Vĉ_+VЪU= #$Hzi?<<~a ___5kFDDvZzN:E_5YYYc=F~իWS]]z?NdffFGѨQhѢEt!R_N˗/׈᧟~SNijζmmm駟 Yl544'|"{שc رciرM~.%ٳgC5mXbYXXPAAVә]vє)SA֡CM&YYYB'hƌt"z2ѭϥjsZ[[)44"##3+36uPQQ0bwܮ?vcƌD"S`bbmٳ8}V1v+سgPuV[ZZZCAWWǏU{߯)DgyvBJJ "vHL\*;;;Cxyy/Dssء1muuuXj<==vZ;8s F!vhE011Add$fϞBbm۶VqI 4H찠W_})))QOŋbPX|9|}}q9cÆ 066;4 qoLTOn:a_|nnnbX.^ 6য়~^òez}vv›ok׮òezō4_T*v܉O?)));w.Oۇ+V ''O?4-[b"]ׯ}⋐JbzM\m ׿H"Pll,k ɘXZ[[i˖-4vX!wwwZf0m_J| yzz.=t b@CC}7EOPjjauREGGĴ"99fΜIRh͚5zB]va8t1m4L>嚾g(J9r۷o_TWW#66/&MԧEJ;v?ǩSc֬Y;<և$''cӦMزe Z[[^ӥ_ݻws9s/vh+--Ŗ-[yf9saaaXlz);6qz+W`ƍؾ};'|ӦMèQ H3r ؾ};vڅ*`7o\\\;y${l߾---4iϟ)SPX/M6a͸|21|<󰱱;ʕ+BaΜ95kV<;v/ÇӦMs=Hc}'ooE||<~w$%%#F@LL bbb*vEBBpO=fϞ ҂xlܸƍ)S 66GǫcOff&vލx7\t }@=cƌAtttjæm HJJBbb"?ӧO...Ghh(BBB.F#-- gΜAJJ =ш'ox"N:ddd ##uuuՅbȐ!aaa:t(O{Xmm-3g 55Ν\.9BBB0|pDGG#** VVVboHLLDjj*PTT8p BCC Ã!''8{,ҐJkkk ,, ⪐L,S^^Ν;';wPTс 2pww;'v=@&W^ťKdҥK()) BĽL& IBjj*RRR6 7<==all,v}Zii)^ldee!33YYY(.. ((H(>|8 ҧ*++&9s "4dxxxpp ///_Fvv0䠾`kk`444ބ7Z[[qU\xQH._/\Xnpss('''rw MMM(//Gii)PXXB?˻I-MXw555 IEB=<==pvvܕ՘ 055H www-XgHdff"77J`eeC`oo3d2QRR;;;8;;5W Y566kKii)JKKQVV="I IDAT455 511]ˋۼ7\.\D'*JTTTF#S322%`dd333HRXYYA"066wv uuudf uuuP*B@CC$͵:lmm;$ƃu%%%(--^\RRjvpjddCCC! LMMa`` Ī[{K@TB&p444uuuhiiAss3,$i;氷;}uss ]&(..FEE] g%̙1bll1ttt:T655u8&rhmmESS Gtt4"##1rH 0@H랲2-[`ǎCDDx L4 bȘӱo>l߾iii1sLDFFrO1S#??k׮ƍQQQÇc̙1c\]]1Q]r[nŖ-[pŋ vx18ycرc׿]v .ĬY%vhJ_?3fҥK&vh16qvWvڅ`3eee_+Wr-yX?0,"(")&[񘦦duLt:jeN}r˖fK, .,3,"*0_\06<í{yWFff&K$$$`ذa5j;Hx{ry?ӧO'N>(̞=0113q| !ͫ `ذa8q"qqq1b߆J%@TSO=KbܸqXn]ǹ}yMԩSxW|}Zסn`$5PZZ ccc:dK/###eC kXxУG/y|Xz5V;;nК?fnrj58}4|}}!h0l޼Xt)PQQ ?~(3@Ph87ݻKN HIIit{C׽ua,ިggg ##CסܓӧgϞFpzk׮O=}ӧ1p@cʕ:)n님tvvv++?PTTF(Μ9 E\\F۷#??@ӅUkݻ7[ic GBDDD nݪPܹs)1f̘-[ !!ֺ2 -yV1i$WFҚ_&L7ހ?,YJG}˗qF;wwwoسgj5V\AV^ _+;|{VJWm///xyy:"""l{EC`YUUx饗ٳB:uJ̙3GZKrq i^~̔湺 nZaee%d2vYYYMz縝 jBb@KT*+Zt mJgϊ1c777q%i~UUpwwŮ]ʕ+EHHt=dݥkjÇLbӦM⭷-n`q.//kkkky۷oC ^eKUSqSN \uDDDe쐯⽧Çm6L!x7ob޽8p[l޼˖-É'tRddd`ܹ?nܸggg,-- .`ܹpwwGll,233cT+Hl޼Y:󓑑CCC=zw_|;=S(Xf pMd2NNN7oJJJ_8z( ՋᅬsΡ'N~QQQxG_J`hhG}ѣGM6Iׇ\GAii)+a˖-pssԩS3gԩSׯ}h4&JիrXYY_5nܸKKKxyyATɓؼyⷿ>>>022jXfo}5 q| 2!ni"M^^F\~ nnn($%%suyL<vvv8~8,--u7捚dooHaؿC"2+ǎcFDDDa 5ј7of͚'"!!AaQT*~vfgϞرc .oIDDDmUnݰn:qh":4J%|MK,StU۸q}yUUUĺu뚼^F[lʕ+QSS ^C#ꐒal߾666裏0{lޘkr,\)))X|9[3guQhpaL4 Ǒ#G cFDDD7z ~zDEEa3gqW镄ݻ{Ajj*&N%Ko Y5ojΜ9[bСCcpvvuxD:{b޽HHH3fϞg}>>>:op1|PZZCbҤI ahh0DMM "##p?vvv5kĶH""",ިm ""Bxx8ҠP(0~x"44...聤HڱcǠT*P<#7nr$""T2888`ԨQ !C0|pVmm-H7BBSii)RW^^WIII]QQh!TQg``u7nݺ033ޕp] IDAT!,,,d2 3B={b„ رcllluU,ވѣG1w\( ۷=Cҙ8wѣuQG {ZQmm-VZL8qqq]pCٳ1bjժ&[IiM螰m~Mްx#ll}l$"""jM$(ŶI`dc%QX5mmDDDDc$Q&[l$"""¶IưMRFIDDDm&FIDDDt &?I7QQǶI"m(cF]$;QQWŶI&ٱMR6ɎmDDDհx.m(`$ulFIDDD&k`d6J"""XQ6ɮmDDDYm:-Ivml$""Nm9MFIDDD 7T&Iwb%ulNmQQǶI&Iw6J"""XQ6IWl$""maM(a$uLl6J"""hXQ6Ijml$""maM(Hϱm:IR[c%;o&ImDDDX_nr`~}֮]o%uEVVVطo֬Y>!!!otj,[ @'""tç~իW7X6IҵQXv-6mڤ(+aF:qh[j;mk^}U\vMQ'ǻMR^Z@Pȑ#Xt)&IzλQ^ǏJFFFN"""3o^}U|g % Q[[ '''̘1fȑ#yFAtt4_|jh7nܐ~/..n\`@cnn+++XZZJѭ[7fff044't؝ E>JOKJJ7oބFAyy9jkkT*QSSr´z*J%d2*++%dZۧ^zvvvpttlmm!P(e~^}'""z`]xSBzz:ӑ\ //999׺N irq2BSSSJݪXTTj ~o upvv-`ggNNNn-+]0X.rrrpi&~u.pݻwG>}>urr 899u遗j pug~~>233QUU]++///Kǯ ci[MM K.!55xdbbGGGݻՕw8JJJ*M999Ejj*T*j'۷/ѿ 0@+%0X[FFΟ?xHOOF\.+<==///xzz tHl\rHJJBrr2 ! A~~~ߎa`Q'ś8}4PGqq1d2ݥ`:t`T*4tTdddlmm']Qwnj/""`xST8{,Μ9(?~022 !C`CN͛x"Μ9K.!11gΜAUU0l0 2FBPP[ 󟈈n7J'N ""Gmm-1rH9|8/^Yfظ-$T*v܉7ŋ=z4}]7Nס5O::bN}sO?&LiX:u s>t=.\?fffx1c :<-Ց򟈈Cb,XRDTT;u|z!-- ׯի)++uƯp/2JNOm~kvI!<<vBtt4#"##C&A&駟/(L4 2 r!!!Ƙ1cxb󕗗cŘ8q"z!-۶m̙3 &GŢE駟b̘1OcP >}W8q{=XXX47l sLn?v>msuL2]n݊iӦaƌk_[Mc߿""oo/"|||駟w<aL&[o%yfr|۷\\\0vXXXX`Ȑ!8tPU|ͮ7m4*|X` '"!!AZ^VV^{ :-[P,[ p~Lc=\i^JJ f͚+V`޼y3f .^ضmEի:u*z쉀?~È#o6 lݺVVVXbE>WWungφeo+DD<w5!Çuq*EkuuuHOO>R$%% !ذa ~WiLOH]]]'\q),d2믿Y(FĈ5kHg}&JXpB;;;QVV&˅Xj@xzz wwwQZZ*Ǥ)hm{xx} !PBP__fwm_׋/(9"Kaff&rpB)z)= BG[lݺum\]v]N[k'""𚷝;w Q[[ZJԭ[7",X \"SSS#\\\ԩSyo8w[nAk;wēO>d\ B7<..NƢ@j|tAo "77Wk?;v[4n7gggѻwoڵkŞ={۷022jvwۦu>Zn ~W^Xnh4"!!AB@9rM󿨨H̟?_:o[k'""3q%%%P(-;ugq&aҥxW ggg$''OZFk~}||Fۭի__Fۄ`͚5[GGG7vLZF~~>&L {饗T*矣P~ }Q,].]j>6oތXt)lܸ8}t_rm?<ʕ+6n徑7:H5?  7nO?{LkGAٳx_r;EEEHMMJjFKOOZfggj2Ǐ>};V\ ss~...-̙3Paؾ}]>JIIA]]tӉ_~App0)-- "(442m󟈈_-88M;:#KKK,X[l޽{1}tO</ͻq ӧ/_NPT裏_|7n>aF)YYYw{o,YD?o-GZZkVj`ƍ^4s ѿ,22RFBQUU%1|k.rJ"ʄJI뺗K V[NR UkٳgŘ1ct2+++!DDDصkDllfffZWwGк@_6mZѽ{w}SJ >_\xQuֵtӽ|V+H5%JR 8P31c 1tP1vX1~x1k,w^AS={ {{{sωBiyyyX| ˖-˗/nc"ĭA>+m;n8*N*fΜ)6m$***li&aee%ĩSĺuD=ĴiDQQxׅ[͑#G#<"ƍ'{9di&QWW}~;w2eHKKkU;o&v_g""k;dBL=8|t}K.a033ɓ'0.򟈈7~I7pb(`駟30"eٹ]n"Ujx'''bܹ>}:&N:{,ƍ gѣG}' }""Oo`jjuѣqh"G|D]JNN-ZT*>@TTj5S"00KE1`Q;iN?q:tŰD@@0j(ԴB"/JΝCTT"##" ƍÄ Uo0`ov:!** QQQAnn.1x`"00۷/?$Õ+Wp9:u QQQpjkkQF!00GƠA(DDGtW5&--MEEE!!!uuuC=??? 43***pEKSBBT*@9AAAd1IטDDxSeeϟDž PQQCCCxzz􄷷7KKK]NzHJJBrr2k׮A  T4Xסwj+""xkFիW\)))888H9OOO+RTT #55W\ARRPXX055- t=5O-'"NoMCzz:qe$''ʕ+HNNF^^Br}􁛛\]] @Z~:`*//d28::Sy{{}5*kaQyTUU!-- 'OҺ#G^`mm sssΩ 7n@aa48k3??ЧOip^?Dǯtq05Dff&󑝝F 311dccX[[P(077,,,`ii ++N mm-QKsIDATZZrTTTeee(--EYYPXXZڟB@޽O'''1[󟈈Mx* qP\\`q eeeMLѣH-,,`hh333---!~_RDMMMj㪪*TVVJRi4ܼyPRR"UVV6z ,-- r{`lkk [[[~ ?󟈈HXO?~^͛h4z @iiiYQQSl066Yo_O.2 AL&VVVYsssXYYiͫ?@1DDDQM肈bFDDDDDx#""""" | Y?+]AIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/doctor.png0000644000175000017510000002234100000000000015572 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME#$_ IDATx}y\uܷԾRE $!@ l>vdL|d `13$1,bG6R޽B.|_%Ws.Р5%)fme4T*A0OP(n۶/D"^,X,e4/ضo۶(6655r DimC<mmmbeҥKWٶS.XJ5EhADZcff֜{N3W ;4>~SX2LgU4nws+`%.➱1am۶}::Mu?_P($S"HGGG)CCC=C x&!_,[7nl"f[o͞}f2J?>K/=NӑHd9u=3}/Bv3sٻȶ\jE֭K@)3kt6DRgLTzӺ{W}K ø<tI)̥F") h4:իW(<{_]{s]}dRʢlݺu bJX]_ݿR w%\v9k֬ aV-)۷o|$f~x}}})"kC=p8rp` PJ=&|>DkO0;Z/=ۈ>0RRB|ꫯve]RRwhakZߏ:-4OR֭RjRkf+_w,I$RN*>ϭ=$c~/uvv~pݺu]]]]RZ-} >Ci")GT[â'|hɒ%<:;;!ܧk06}_Uށ]]RVwL'-L&kvHR\s5U?H@J5s, 677%)R3n7P(tP0 xŲ8=T*s=w9)7|0֖Ym)%~ PpY,g} )R/Z:|bRZ߱ijPSVZ1::jh+}ַxh4z@PZzrbZŨL瘦'˖-[}ꩧZD$=?ru9p+ )Jbі !>566Oɮ篿±Dvdd3@)]ibD}>+W0\׽?~X[jPJZno~3hp]Z뿺_<&RJַ}_^tspY"xUZZZ s7>q kG ÀRA[^ ɶ폯XbiWWI)gR7 Kڗ4TRkbnB=44d2Z~pkFqHZkD@lH & E} `BJO>V;o= . .7Hwuu}4L^娣T md<3##BR d??;YM P/(f@da{`vp{s,M"cPhe__w5JLdUo&(ZZZND ޽{144ZTo߾zKTs sb[Wxgϵʯd2yA4T*(Z3()Q.a~TCQ.JۂIs }Fc}ʵ P;_wgkB<ǵXƔRVk&ѥ`3ׇ|~b<4> .͈hdP.SO"_(P(@ѝNz y\P4@4 `|'{ ^[E[[ $z eZmmôlX u[lˆi4X&*2 Cxs6[_CRpx_gw^ _^Y}fT( aql LV lgyn}m!H\.cxṭֺZSmujx;(r\= oW-PU\꼢3;gy&~amhJ8v܉rfffДnBR<<)Q l񅡺}P#-)isk/.0k L@u򩧞# ˲Űo>8pbzz{A*i0YL;wJ݉@Myy E`AK@|z \Gϸ^7r@wPuvvv-_]30RέJ: @2y8ef&t:p8 k' |`$F]#y`DjPM[%UM_@'@+qB6J%Oqlp\ ˾ !p` QA.n-vJ)˕a6MuZ0E-2W9dt9`ia&WN,=`A@g=OBk̥U'xVuI `iv Zd[8fw;Xn,{& l |q@jaL+#? p:bUdq ҐRBi$Ov6iն9I̅ aeL3<ɟ$fz0H̀A&r. Փ`#u=5r"_sF_4s|zb@0DĶr:ܓH0{W C C:0:0{&sTg{zv\A$iE/!oΫDskW8jZ_nܴp; ǣFd!_K)wKV]wOF#@\"# TКV;Ii`s j6-vEƥTRm4NӊyBZ X.?dfyIma0x:ؖur塇ٳV={s(AAjY0{}NpL@kj;!W|z5Jz'(YJp]/p]|,&'8MD `١Nej6P=V @.nâ_cOg0#,3JU^ l;ϯ]cԧ@5Ϡ((J<.bsM3] vδ:{l`tWs%%pys'><9J C1.4M9Ue| R 0o;`8y*bOTmBk6DtRt2b3BƵ*yxHEgl@񷃢Wƒ|'v . 5w%sfA@Zihb)U= j Ug .aN;E!v;3  LHke[D˵2POHHvYɩ}&TUIDAT *@KA?V%l{m_RngԀ CZ`o Wkg"|Í`C'Cx> r]n@0}[56MS>H`ȟcxּ.gL@V)Z!(vۥ_bˣc/'.`g鮄x}>I&>YYRI$D"H$kχ矋~y9f$D"H$>5 ڐH$D"H$@c#ʤ&. 6ŽN !P%_ T)ұrEAQ@AETEAU6ˑH$D"H$:~ĆeceaY"ј4]pzD-aXؖmBi8(j4`"(j  #! ƭ)m$D"H7;ݜA8/̦wfy~e A*^f'n ][Ag4L‘{nrʤݻ+ٱc'[lt;hM=(L$PPP@"李Z6mq9ti9hGM#0w?9.I}M=?ӏr?bCӨX+54̦{G>}/6%U'-ӏW\"H$IDGG{:ضM$bT1]DjTr}LKEGp8$KA0p88mٙXe44rٳ'{3x`p!ሁhJe2m4crB NPY>P8Dӵ.5kh0&:. [g%Eѝh _Zzp""61Xp:M Pze%W0j hI_ۻBm'?ӵ oV??/ZOò:lpzvk+5a[4Ɵ 9z .;ÀK D"H$Ot0L ]OG5mntCbZ-]Tض,\N'p< DPTÌy0-]wB4N8x.@DIKs '{1 u'l}{\8$d1صu#+n"ۖ~kDTOeYqґ+nB漹݊5s~K[.͜ /_,>= VEn"!~=op6֕QF7rŴvV8]gɔH$D"EGgܘFO"y@[/O6BmHc&OB`hZ9`#EW9m 9vTv1q8L41QNDa;Hmj6?=q[zT80 b!R_OmX8}tKc B V4LQ[ Mf~p! ew_1ݒ7Varޝ 4Fc @p{<=]Y{Ol9 7]Qh""*̖T]# xon&e0P'|Dԇ-Z[As8<;C!!;' 7 FL̘W4'J|ML!PT ׃ߥ`3>0X iI6 ެt|llIfVXz P=>}:D"H$AёBiGwшQS@ycʠnĶ;4 .`==gcX&n|,tK+ ѦE0L</TԜXE=|rbfp0 #QNyy9DY=ξk_ۉe?')\m4/aetyLߥdOǶMS 9 N\5|jjsA:b[r0slx{ͥQaog+J2dȰ2B&z'NgoQO|,؎wvvXJz?aq?/ܐmrArՌ|M6 74ٿҧ捜ytFu+Wm̈́j9<'D +&WBoX+j νNw{scsŒ1CBs_[3^'د5o lMW?쫁'N6 M5='ffƑ߽YwjRxH$D?oϴ1@i`e!{Wlcmy-iPۘ:z0L !2m aQL4,39y}0 ӊcZ=a1q1;6Tt]  RTXSK tyhYIS(쐈1m g;~<9 lG&[āqu\4HOyP-ߩ?6w;NB'- `=9ވ02=EˎoǗ0`TD5Xwh5-4zS_Mæpcs%-&9q(P1Vk3]fn>{,~0nvM\5ECX$c-U5TŠ=ԕe+zY^ t;+EָC/oEskGE.r\$z:ܜHE,z@#ŽfɬS7ޙO:Jv}ub[<ؖM->HzZϻ,"l;b[|>"HJ`0D2c-r:r{hNFmfc wgɏN~ !ܤl%+ާ^űcAx=/,75ƃa9}c嗵8:Ʃ$7PKtX?ɠɧr"Ѹ9_2#eUL"{eĻn뿸J/.[@2ycvۃW최_Fq\{96s4uzs/Wuou:~l4P]NI\u|7`/ꏼբqK31d,]Di3_(5ۻn^a=3{,]x(ޠDsSd>D"H$kt<<FB,5 J3_p#jWaU%)m$,P0(EQXxY> }]n [D1Q IlYVo+VNgbEF!%-i ^8 ^k wV7M0'`gxR'Cߡ?^78 _>p%wE wJ)d\4A^ EFŀoF58f< n\x؊,/AmR>$n8s~x~ |[_z dT#8Ish(a]gyHjt3kts*F!0gW/{ӜYf!YxHwu]0+&]=k<>.H$d`/Ά˿ g8,JC0MVCaĂʔ)yɂAhυk6 (`UmͿa6<zS:Q[Ɵ;TҐ@l(iY%bX.fyo"?~OC.揆YJOw {VpiH7Ih.B B}5o.b=&*^_Bi8CG/A m27_>?aV>(P氍r88"NRK>Jhӡ(jv~D5f7;5uu3-/E}s.E"H$=E_ׇؖml ~9mp0kZjp >kO%2E.r\"C{U悈Fy=^:0G1*v/-OU-ŒehN>4q:Nee>˲PU451m\0X롰urj9ѹ;`Z=4m(G Jy\=@N.-T‡+L<Àÿ )|u'\;˘/5Tg9P׼+ g&W7w'Q^̸Vf\J].𻩙Ž& \k 8\sY>/{&BT `4AӪx\,w$t0B1ёRP%$FrDbw?MwM+t0;_T۵w';ݴkދ $:r*yi n8o?]Ã_Ӫhګ+3+: 7ռYna1LX6*p:-˖C"H$D"90<1"&bi:'6GF UUKu!ܦ!V}Umk.#iD#@X69GD"H$D#aȊH$D"H${_"H$D"H.:dD"H$D"ϢCD"H$DED 9RD"H$):аml6:@u .p8Pf^WUݡuTUD"H$ZpA8!++SN>qSPPH^<\n#!&ژ7CڥP !0 `crog>eTWWr9q8m%H$D}EtԄ}iG=f,r k#x ,C$Ght 5y'|r\.'R|H$D"# #{ccmEQXm9iMHv˲(,Z_~u,EvI!H$DΈP(o={IJo|CZk|Idm6%m۹ q]RtH$D"ޣ 1 PXXeYdZ <.HVZHj<${m/[ʳ#H$dEr ;).(/Ą皪%'n%XNڥPkjWOvtB^roo)%D"i:K'3w}`Ҥ>z C !?;wvZV,ŋ?6%@u:5,wr-**VbAɿkO~+=~ !{dr-6Z}?ᚫLi ~{Rli]+D"6ɶ{̘\v :G_\c/~JM}(e47W;/{5W~t1z _L#z=0Mc&Z!l1UUUP*ض^;ݪg˪UlECZzZ7ay\i?(u3׃`ܸ42BX?D"H$ Κy6C?gQS"3L] @M}E+2r(>\\.eW1^YtUC{طlu]ϖ-[{֭\{u|y:,J:'Ō<)„ SF 0M 4CD"H$c6am%DC.EEEJSrxp"&8>A !]UPFgq1Y< x37n3kכ̺UzW UͪןoFI@ɳ~υ}|SPϛqoNPCIS|q,oO|[?ߞ0Qbeo1WsrŮa}ɳ~E}~"&]7͠bEup˃)mT_8NRy!ٟ|)^fpwNz+uD$m5:_P@uuUC Pfo,t7#8B85祆l{IyH$3/D^Ǡ0b@injCԇop)0yt1#SFPoԨcvgSy37Hɂ<(~wR =s^x.a-yy=Rm>gA#3p1Sx97Qʛfb r&~p% LǨom̽.NfP营_ w N֧}lbeʹl|xd⹿iյrv޹ɇ" Q- sjpL[0븸`_wB莻pj9Ҿ_FyYvWVr}֍.hU#Z%얟OfF&U(0~HeuNp(ڊٰ~Pp߉xc4Mx=F$I-lX 3.Xcj($4@`wJ)\5i*a6*]Gpݝ?d/kOK5 k7UbۤMD"%=&|TѰ2/ϊՈ,?vA 0kegGQM4hU9/WFSp* #v^iHҴ}[Hgw.gETV( 99OJfVfBضe[M ;eiM~~\e؄u_>bvҽ2D"D_ǗSc}s}ͷ;wгg/.}Keeqm|E+*3#bF>Y)J$DrS#]0.8}珩ۺ¼ş0<ZZ ~ ϑbs'P;üysq9]ͯI`HV#Gؖ]OsEasLtuƁml޴ͦ-h W[;{P8DQQ?yhiQ⍳aټm>o,`@BέlXy7`U72sE]{ KePi%EޔS_GNǼǔN-lu`sْ?!&Kgb1cfF6-x/ޱV|짛|8k7Ň2=QK7_x.̄TNo׳Σ5^z%p 놆ؾ=~o9 ;aͧX_ߋcOC7O7K)se og'yq}'Bfk)M_{})-- . ;;СC)--f~IƟCgJ{}>ϛKYyN͐u kR#7_ְ*ɑ$DrhPm3.ēfnu]pB!*wWҷlCYUPdki-[Kk Eh3Xb<0JJj.=al~!KJK< (NZ5T xb>ѵYMӤjwNj) 6u&Mn:&gkXh}ۂd EW_C3PE82oG|Ù8y"2<䍜H_e Kw/Q&_mtx7c9sʰL X|Q̇æsWpƐt4EAQ42$~mK9lai}'2ɺ%8N: Ѣ>0Xg騾b&3f/.şU1h$&)Ư9>~lbᛯl98ghZϖa;Pe)2vnw \$ UQٴiVqxDp( lbY:[+)_#ED"HmQ} %ohpC oB;ҝ.Gq9m 9a(5]: Êxwx䑇Y3x< }M0X26WII4|nj {up$pQ:Rö;dQGMGrK2Tlk ,iCVHV|4xxUmⳓln))l8i|5K!H$Ce{km?p%]P=!4M\.8#8QFRTԓVE1o\>^yD2|~f5Ivǽ^^ . xhl ray衇%C$4Û;nHo4 4dt \slذ#cdqU[m):$D򽡴`8u;鑛,p$L(& c&vln7ݡrp{\.4M#*8I靭@c#v*i [rFrG%.L{L]{g!Y4gEUsOK3`W;%eQ&H$TuThGMh!o@H1|$Ӧm-T)Ma%; 4Oݕvi?TJtFI4UCfSUZ"J!ÑIZy }߀'L&~I1LpY!J$D"ފdD[ȨQNPm!m[@UT5:q^|h{KA`Yfm㟥]E{yZ3 Xeş!!lFpuu#ϣD"H$ɡF!sǣ7>81:GǢ)|!s ui MR}G>@l@ $605ˁ&#OfM&J$D"H${( }we`(Liyj#x=nX8DsB,ۦ1[w-;n]NyH$D"H$]$|th-f *8_/UULjKS>2|/./.!'+٘%D"H$Ig8«4Mʄڼ1 lB؉eg2!3*rӡ˻F"H$D" ((DxUh@c K2iYΟe,#eWYbD"H$ ѣ!oP5=uu6lq-23>l nK!H$D"(++cqi#>wӡkz:,2/n+e6n{᛭lD"H$3 gG"m}СiðHF "l4tv쪔wD"H$DҾ b@{:0Uub[R?ۉsefWEUR7D"H$Dr(+eoB$bҕe~udhhIiy{ϊW~7|j.vWolYFByJ$D"HQm*x ֯_OUU zULˢ}{awFp<(ϧO>?vl4v{whZ-[Ǝ;(,,d„ dddupq(//gСIҖ`Ķm>S2339*.]Jzz:Æ ߒuyWbڴi39|py${ޤe+BEe%ӟX~iii|>{`k׮cɒ |7t999n7Z o6Ÿ\!\q>V"ym]nYj+Ge޼y;|2 6TԵmMM 7o&ټy3 555_RQQfڵM/}eee)¢-A -[;ڱc ].#׿/,X8UVyC޲,fϞ͚5k{9I$eh ZC6c*BYYW\q%ӧ䐕EVV999ҧOJKw_\AYYYÖ~D"Z #:c8Lµ^KZZ?ID"Dl4;ijk9CGe0M3grg"T˩h ulYSN:u*ee˖Cm6t]'//M(aØ>}:#F૯/10˖-iӦ1j(6mҥK9~k֬1ydLOzlۦ}ҧO9}_#<˜1c;⋙;w.>!1~&%Drг;~ky Cޘ eUx=NzqEQx";;M|\s;cп*\.MUU,8`eaF$ҹ%&B4C[Hp$H V>,XBk?<>(P( 1Mk" #: ̑q|>eu2k6l؀mdeeqG4$/_:u*{ҥKٺuk¯\ƍR/B΄ 4h`^{^z1iҤƍ),,Lqh>zJJJ(//Og͚5[P(deeqG̙3o苋)// ˲m^z#F$1gN:$wEmm- .cI9\ʴmk_@ff&cƌ]vzjN?v}0o^N8sŲ,6l bԨQضիYnpqG=ŋSRRB(yyyݛ7R]]1#G ꩧ⩧ncʔ)\3gݻ7W^y%&LH|=̛7/_O>^x!{vGf֬Yi~[I 3g?3gFb}]n^u|>= 0믿C&_t)~:UUUу{a؛s,ٳgSSSiۗn<{P"H$qs Gʻ]kp GC ]{dbqInׯŽzi&Cʢ Ivv6K/u]P'x^Kxg_\«+ FU6E9sxի>7XuuFzzzCem۶=:*V;3?n{キm;=ň#B_0w\>y 24x0X~=v999TWWtR?pz_N IDATIcc#) ޽1ctom߾DC !@k֬'//:/^L H2 iiinx\Gο-2dTYv-Æ ٻʄm9gzM' ! AzA bk׵u}UU׆(BH&e9cI&3̐DuyI9-3=OF p8UUn: n8Ӣ,XZ-äI IRCd8ÇGzzz؋A᧟~±cpꩧ"%%ºu됕73gPUgƜ9sp7GXp!kׯEeːx,'\]Oe8dggC$?K.Eee%QXXǃUVCNJ+PPPł^x/=܃ [{Gh45ktŋCrrrDȮzl^|w4h=gyǏ(~Oԧjq6ŦdiPZk50c؛ mWQYQ!"6n܈n|!~\. "F#J`ah hl@%Kojk֍M&'Qi$ FI` ky[<mҐ1f|@JJJXoaymJRRR٭[7̝;ׯɓZo*F1 _N 3\y#׋m۶aРA:thx_eǎp88[R;Hxmzuꩧ}]b QZZZ6jƌဠ( /_*wyf߆[nŰab_K=;;@ueƍӧZ-222g6:"fhs8;w.z\qCbΝx73D#G6þ}Cp Ν;7Bر^ `˖-8PUUw.2ر#|?]t`Ĉؽ{7}] :4ެhUTTO>W_뮻-e-#"ĥ^?={  {n\p_fKY}Y-n>頪q`& @1III0r2[/2Ï p5]CE2Q^ݻh-,EtvHb7C[4i4dff,#-- X`z7+'''|6U^[)>}:?5k`ٲe8q"C&`5e۶mXr%&NQ>otb͘:u*$IjQYUUEQ<ھ ѣq!>|{WUU"'_Df! BehSm*,,D0Ĉ#"1:t(VXXUU1w\ xq)NcX|9Z|(,,$I(++رcQTT׿5UNbXz5~ԛ[aa!ƌI""JN; ۷oǡCb+'GS<^>5JJakW9KpS`1]v*f̘]va2EQ{RΫݬY[ (ܦN x-U߆^zvl(A\ze7n\̽e9f; p{0u'=t$bNh46m=7/!Cbv6"Tym@FFz={8k]ZrNk+y_~eD5kP\\hXv\HsPK.?s9'\m7ϱ-^7ZyEQ<UUŧ~_|O<&Lq^'Ny桬 {ŝwމ+V`ժUrؽ{7ࡇ ZMSSm*p5GDDqW⩧ 47u~p"f1 @܅(=^~+/:);i$+0XnNB]_ }ɲgyvcI'f t4ڽdԡQ6] [+`ΝX `p:2yr*Fj5+'IHXyccǎn+ ''999XbmۆƜvHOOoQycmEQ­8ō>(f}.NVU5#ȲŋG.9- Aht:L&9~u}z`ܸq/tRL2$0+N[-z=*++#ʲhf͚pw@ ף:P~zx#G381|X,`ҤIꫯ "&L^,cԩQźuУG3'rl]6nObMtf(~t:nFrW /~t-χW^6fGA $@/ ?mCWEՂ]G^vO*nPص &III={6TEԩS[c {7@"Z:$ڵ+\0LHOOY ;)) {Aee%F -ѣGۢ bU,cϞ=͍<`ӦMHMMNCEE֮]TXV|YIII8tPDe~HOOb#)) ${شi6n܈5u @ѣ@RRR,T5F=zի!Q\\H$k׮֭[uAG Z`8{x " ۍ wy%%%_ AP^^YfaѸcKMMń ꫯB#???S{DDxx Opلkf[8ubEw܁=7t:J\cFA~|}{᧟jn;hrx[x1z Ъy<|mH0mx~h[0FUU|͘={6vՊ,⋘2eJBCrrss]# $ѣGҥK!"N=Tddd, (bxF.2n8hZY@ ς g!e_4H3E 2>ׯ(E7kS_{~l۶-s^'VkBq7p@A[@iii6m CT?##Çڵk{,F`m۰~zh4=ʴwߍGy?0Z-?`馛`2. x#b"~owj9s&}p Fvv6 2wvwuRRR0o<$ gy&OQ1|p,_ӟ}ŋ/>}Dom=6Qd2^ O ܵM3rH3m MߥK8|lKB z t:5 W_uU@Vhr[̜k;,˸ 55᱇T_=XϏ{O ={6vlߎ@0G5\lEFjj2NT,cܹ֭FuϷfڵ \rIķg}ӧL<>y`09s_~2dj߾}kꫯo:^u\qmz.A#99III߯ Pp@EvƎERr2[K`՘2~D{i4ԖqP $jtDlT|Z=%zE'DUt1wg$ ]xax.Ñ2 7}˲}!///kUڳgAbÆ `6#5-^("##x<,\{DDԱ~۶*|G7nΜ4 }(ר7\QP=o~Pkrq@@0pRst: ?݂Icpp UQ1cšOB(bź-:W3W98ΈM4;v { ܵkWL0("5m޼| \.DQĈ##o~[l6;ګPT,%Tz}N2I oO7zGWmFzjQ$a]p}4fxk%J{en. O_'D(bu-(rGpG e """vS\\^jSU@vƧ̭Oqb?a`.L&DQͻm~Ex?xQ15,BӠONz41>AgǒkPXZ3N A5sf DADz_#jxBE;t$ԲJN9OCݎw>  rKkF !UC$AX x!RV=a$Q+Zӽ $ׄl)Q0t)3k6Gfz솬FkfDp:(~HΒʈ:"&T &hij=BLݫ%""""XDMHQa """"hADDDDD T3C?óADDDDDqj7Cg-}gd(+= 4Z &)i0[,~;pu>"""""j1YVp`nx<t/8ht(\jedBC`a(e%PN>7yA `t4]!eBS󟔒O01teo_ PZނ2ஆ쮆\`;Ao&;^C7^!LDD DDk}m -۾riy];ؿB$hBo @ۣ?/Cuޤs#?}eP<%YF`ns;dtq4O)=׌:￀EJ:Egozޛ a<} :\0\ ϊ%PV?^Jɨ Rf..9)tD {<D #RUwnT}/ 8:p~k`pA }amAƖWh!jʴ=XW3h}E>RY^F2RϚ;DDADD'(E/z)n/,01hN>J0>ӧBHi|»krUހk? ɗ%""""J,Uc8À`s6CBpn@y V@gz4g>ӡ8JY!ptq꣗+خ^y1tQwmDջ!pdo f,S/!Z2>/G֌-,>q`BJς&+ktq@19s8EF[?GnqT.EEDD DDBj^k&RTX] uo_mm|ZR@`߶ء3à;<BbAG߇b*of$84]!"b "RT}6}`^hz8|-:1DNTχu#?r{"W^%>~*:T܅a
k ·y%_ ͝xp=>q.kE IDAT9sz,4|O@;τ#i@xaخf&""b "F+*=wO݉4]!)Q ݏ>؃}Ϗ a| ,ϊ /ZHSTyj T(U^tCfCo\VgF`F Sn8 9mWû[خ=˔ُ!Xr8@,QEDݙK7 $? ǣo/85p-|W8"CX /(67R}ab>ֽK8^y8DDAD[#;JQ]Qktz$$L/(WeUF?\V>?M+PƸF3oy ~Qߚ\ׄ:~|(:pHy )e%({fP+(nT}<;rQ{a9b>γb ?}7Q1DD'87wbRR~ڜrp~4Ա05 Ro,+ n_]?*\ C`$$DkRM:`m)z@U"\_&+\ś7DQPc8IH}%hD{W} W4|a)4 fqfr{Bq2~ᅣ/>u$]Q-HYHu묙(EO^Sxuexg<DD T=M":p,Ht'oP&W ͪ% sv.ffq & :O8+YGB%uB߶&1M+`<=7 Ql޸C (T5@B7`0 ADhmk"'P U#P"l3rOFZn ֿ"O`2ÞGQnZr0O(j{5c#P }s;-|!;Ht! zDX \trsl)|j8q/Dۮ+fW`aTwވDD DDġ_O@,Y0zFDkgy)8 9=QrG qh/nLƣ?yZN=}'%G"w\ݳ}q 9Q}_a9oVDwzV/A{2Ugt& +tdFجVͦfW QCpZGu߃ԿJ|룺TU}t@A.-BoEd$(Pow`T~$ Vsok[6Ӳȁo$RGGRjZ:$;9A3w!/BC$lއWVPsH9:~'TAG!Kj8f?5O}Z&GkAz -<"|{c=kw3UnT}.3v;Gum_ /_8j2oP"""ͻGx7Un>k&O+PUT$h4<2XO!ĺ ^`5EAՒ_C$r/>Ca 9Q0bb]g5I!]!͖)""`;N4vaTYnZ(DDADԑx :Lha:/ػ%n~a_uŐZyn|#8?{#b])%λȥi::sQ1Ӡҭn;W̎ϽYφ$۹"}%sBՇ/FΚ іyd΅%"b "zC^߽hy%Qy~^!!"b "&*0d4]V*VH)ýO.Åg^>s||?Tئ\e U)D!Y ߦ_x%W$'":_G\T/.) Xa0nMXWU돢ĉ$waq;c.~w#KDŽ90(,Ƽ;Q`PͧPY3}mMMDADԱwD]dʸjK( ZX nx'I`j癡TYo}#DMMDADq(R5`RVk+ҡw+毇\o@б >Fh""""h`v5T'!/2t8>˜EqS__`رOR7-:}^/#oT77CQ8+aE֟:@EۭzF_ NeEtƯb9snV)(`ϡ2C_Я]\V`ɑϚ. %GYMDAD1Ňʴ=#Cǎq]! ~c"Opd3"'ӎYDTT{"B̾#8}8pQz5ښ MDAD1Īj"~Q -ix?ˡ(jcz+NGnV2|#.l3"=QVZ BGS񳔕MADD DDO ,-*2mqBrM4 u%v/o¼obcqۧ6UӇ!7nrmG Z4]r݆CS@D:r@n19TWy-L7BE]X|tnl7 py#-}23ll;ɣ#SI[1Z:d"V?onߓΜADqHif n*By I 趗Mj-ԠV~ jA c:Z+ (.7D Ya8ps.[ xγf=L4[^W5,+wCƦ@|EFwP& j=UC^5$ꪂ`F'"j!9D0 DDk AZqW'@V>^_wQcN̩aG!F=&3Ynv=C'L=\0twA42Ö=g{`@ћ[o@i`&'"b "j7.ѡaM|po^/Cmꪀ9({]U!X]A "H]y%3ulRw6Je9TOݠdKĿjx=}r}f7"GA0Xt0jmv>op"""'HHQ9f9P(ty0`s]7ASElٍ78CQUQd%V۵ (sg&)nr].Nsʹ9="3[U'c,CcFz{?(J܃4E3C .$+EȺaiB޼;U1МɉR W2zBx=^q\B@ "2f;+4ە ЦB]Wti>@VGϩk1j2BJͬ TGVMvwDD DD$tհGAqVBy`D 0{8^׋$y ]9wc4 XW@vK/#X*ABc B2!YФM7GKm^N뢷9e 77CQ Z#ZTka1f#CcvDU 7!PY$K l#aR(V2ɐz8aߠjC6^7k &DDM"Uk ~ hh0烪J@y٩ GOdȮ~w/1؜n8yW(}d -FD51B0DD –"67D-+C]РIzPG"h4wud*{A 0v6ďS ¹^ Oͫ4 VmD }xS1tu,CQ%\&g t=!c]]C= M'Cfxtd > }Wِxog7~ gGY$Z#1t;d߈PFJϋ¡#T靚!TBpUB5C&u--WkbkKeAШЦIAcB*T٭A\@[J̹1[TM YMvyC1tuLSCoaLH ZTW$.xshBs4m\3#fm2 ?73Qq 9 0 hh{՛J40yqb̏X~Ȳv9/ |@k84CQǩU^ gKZ z;DSBMv~gߦQGOLDADԱL*mYudqE `xfudiPE95hOHDD DDhD;e**cЩat;%ꪆggсq dDDADԡ "\U]GZ D[2L l]$0-C:\x]dc(^wfzS.KDAD9GOY*p-x7ru^ ^:͵0M8?fχhMKDAD9-Ӯ*uE oMzMKx<LI˄6IcDV 4ZX]s1?-sUQsZ*a?5hxuDt2 ᯁ f kQǞ'""b "JA%Fk&\QfO~a7MCv=DUcpS0MgCuudv]S/L` YZ8Evp 3{h#.-5}9,ެDD DD i`wu>y52;0x$:E'SZ]y:vi2>dz|=BO E W<.T~BԦRz,oT"""Mw&Gu#e ]=obC 8;E9LVTX>jGHq=泯aeo4j[ەwĽ[5OS@DooPD &ø00m$$)G@+"#V 6BbhfhS)}}:psxW~aXIDAD7W{ Uzp` \I> A=VE:btfUxeǫ T5ëE޾ ?358aOK6GIu<U3zͰ]yoL"v–"1qW·3+oGG޶9%|>TUPopu@ 4*_{쩘;  8n*rMhj`GŵWbgw-?Ռ` DC?=d[7 .Cѯ FA>^+sea@ջϞ` &WU^F1o>ً?Dz#__0W2.9S8 5X#hMBCΆ ╇,:yE0<#Q;b*"D7?T{ûǨ #~m{atĖFGO)Htɩ+TUTjr{zm:~ݴEAG۾64R$6+4.`@u2@V>|ڶMUh>z K?f$7!Cѯy%0XB Q_8p{ IDAT'8j2 72\'|XUDc?m>HlHّhZQ ~dvGDAD!_`)[e6n( )Kk e9\iE]qH[nb\Ϻ跖;4Z$1h EW]({Nx7Q鏿ѭ{s7[ <0+nGmlQTq74\pDD DD7 οCS<|^Tgx~\ w?.Բ w2hZ:5u-,>2S.Tp~sc>| Xν7Coך?=s*˨Sp~o@7[`v%RJ] $: &O֧|-o| $|0vg 8`@ZwQL23+ Ⱦ& Xi.jmy{<ӢV{AM7+Rﮗ$9;])sTRդ tAN|U>y ;g{,546*,9t$*XH[RҤe5y*lq#۵I)gO.e\opB#E8C:UծLWSa-J|5xΞR ?Y cDG(G:5X/SKQcC#(xÆցjLTǜ >_5[Wu,i_c܍2A)3Uu\~:(@\2KxY'}zJkW__SݺErw%)8mӚܨ;}RjYf##ȩ{$#,Jc;.l<կ7o; XE/M:W(1a|˥b} u]gmzWA7.T̯+ !c0 Yc$%Ȕv,-RWF@!ᲆFp8etӓ`]2(^>O!ESЬE_ϧT~>XrξS!E:uO׫/WSfS7E GՔW?=ld=_c? th QwE~KuV].)+5/=۸om$Yce6^eK9at-ΗXrut| u=56A_pX)֮{[ [WPy|귭n16گ+ ~,1"Kp=4LG:uVWV"BysPҳ vܑ@\=HοO|O>C$t5]y=%#&I 6O$%p2CXkTRe:VaB|%2HPc1f6_uUVVR̔fӂ tpPI-</_kr]ٳgrJ[N ,ТEX tIJJN媨$;wj߾}ZxfϞMHOOWPPPMTuuT[[+Ir\Zbl٢\_ /#Gos:8qFh^־}TRRF{OSz=[o-m3ghZf***rN555۩DIBIf߮ fuzI&iڽ{y>}Z:~ƍ U1 ׿_~Y7|e˖i׮]TPt-^X/ op*))J֋io ӯky]u:i$=쳚3gx:\낂裏jѢE^}U+L||~_{7/4ͯ\]ٳ\|n{:ck޼y=ܣKjzj*v~'ϾRu`fU>%''_󨯯 s:\ C=,y^mڴIwuW{!%))G~7TZZݖ֭[uFv]1119rfΜ\uXBT}z }ݧ^zIfM8]+Wĉأ655W^$=Zf|~~o߮CL555 UBBƏYf]FO7OƜ&''kΜ9W͛7*--Q@@bbb4vX͜9S M:U۷oWCC5aϋcIհ!6>O˗/ׇ~aiUǣ:h͚59s/^i?kժUAG,8i$ĨT999kGnn۫}=< _޽ЮjUWWѣZb^͛7Oa<3(;;[4sv,sձ/E}}^}Uڵz<={V}֭[Sq{3. s=oЈ#)׫Bhͪ?X|ydɒ˶jرcqFCYY,Yn{RR222:;vL I?~rsϵ >h`q!dIj?2qD+44TUUU:z+˥O>Dz'YR/-]8N/^ӧjvhT[Ճ>{zHh[7nԼr3d?ޡk),,K+ /ӧO7x Bdd+U~~q~ˉYr/_//{{jd=nܸ\'xӍ [SO=%4{۷ы/]׫466=lٲE?2D??SVNN2335}t~:jh;.J,zj<=Z騧c͚5z뭷+^W‡~( @/ehأ|>՞={ !UO{N.ըZWWs:]O?zcriժUZ_qi'GGGi#>믿~U$\z,((Pii$iʔ)|>=7 Rjkk/z|ժQFuJmX4cƌ\EEEiԩںuU^^(~:Jk#鲎ɗrUWWKƌgc?coiW%pHɓ'߷q9CG «O?GCjMV]].z|á_]<33S/rۏ?~ĈѣGk֭%tְ9 qYmJtttw֭2MSa?RUzYmJ_6[瑑z衇z (y@T/u6H7 tبm۶Ij,kK|qZ,-s)f̘!0d^x}ޗ=SNI5l_%1c?@7}^uz tմj* &t944qhvu̚5K? PII,Ypwysv(:G Pj߻їG}瞻>m4֭뤧Αm˷]a p;vL__`A2mCGDދ9{l06[Sٳg_f5өYfu(v/3gJۥdw,vcz  UTT7:2d{꾭-K.#G׿S3ft\FFhΝ;{t 6t30;WTTh˖-}z]mǹsdɒ>QڵkotonP1MzLJJRRR$i .gp\]G}M6]cwn㕒"yWOpAAv-I>|U_9uuuzO7uKHHwNˇÇ/>^VU%%%Ξ=cǎ)++K+Vk\C,%%EK,v_d>LAAA4hPFƍ+(44T.K8*''Gn[۷ob;l`WPPѲeԿv { nvSSS}Nw_!O Rmmmz,**Rnnvޭ7|SovOۧMʭl6nwܩd%$$toVX`O5nܸve?^UUUTTT:L޷o^z%mذAǏo7ln׮]1nRٳgu M ׿V~ *77W.KC?{:{q=SSYY^z%(==]S^^*++۴i]_kԼnVVy=lG?RXX֬Y#4UZZ^{M(r\&l6=΋1 C=u!gUTTztvs&Mz7 ,BkN``&L;ÿBOs= ӲeبzCBBxbxd}Q >\o*++rtȑo[o}ǁO(..XM4I .l"WwV]yfIi+99Y?5x`9.CԼ*SO=w}Wk׮USSjkkeCCCu=[nյv<{9ۿ[axM8Qorss%5>w90 M:UwXn?VXUVQΓ ֝wީ&@ӿ͙3!n+**JJOOnǻ[5m4m߾]: PllFiӦ'7NtM6mvޭP555 TLLFSv_wKΞ=[vh233uGyv9*55W-ͦ7ovءcǎRAAAĉ5~x3fo}K .Tffrrrt544(((H =zM&#GtSg_~*//Լ*Ԕ)S:-?|p=S*((О={bUTTn+22Rqqq7n&N hZu]w[nΝ;uAA!!!ѣ5yNx[漅wPPUK{4o<`Bs8:_ۿtnsOGjV-= U!tEFDhd>nIDATs8,Vl6$Sqqq v:tY|]?&x>ZZvCC ߇a2dnSdDF(EG(2"RF|_bxˊ t`sZ2@ ))C : Rj`ROdqFeK q]ЧBBBr1 t t tON%P"S%ڟy*4P܀:bfaPS tqX{֮ԦrZn3lN[=PQіsQ 0NŦMRGj̞ZseL>6WQɧL^ch˰+EnYUOVy/BX=t xŌ_$֧G:9י:$MȨ^4Q5-UV5J:БW5%j^א3)CGmL56I*$o GBDYmr.!5xJee:БU2$z^<_e,j6A@'+AR*"TM:$%O124uMҺg{>C6H*FW.RGܬt~2_z.ۯT!4IݰF(\:Z3dqo ?[[wc\T¢!w:~`"9^WD:dNnXwu~Q tso}?Oi\}ʢe:NSo'gռЮ[:MiwjL+ΩV.E(Fʋc73|<6c~;Q tb#@ΨD  ۺOokʔX W჉CoiF>ICOW$x$O_:GOB۷S t t t@$m"@f"Э#1N<.Ee>aٔ8͂C>* t t t@@BBB::: t t tU@_u6Jqɸ2KVRMh9ˊ>eUujkvPxlND(и\W˵;Mw}m9~tWHI^Yd VbP^O%ǔu U'*exψáL9tu~l~ByN)O? D_Ͼ6 tRpLGҐ/[')O:xȮa}:Zqy},L\ :l;c&iδ! 9r}^5QC0\)-҉۵M{Y{\םخ5J2nB.8W[^Mo(,9ZzWc+jMioU|M'-4۴plMLؖAlI'ke4ɧ'U%畨鋃QA) k ՐQ snռi0$Oam\󩎻iY3iP5|JK@ Pj_Xx*k㇙:nYsfO~:mT:m̻eiǹ 9cKprn7R=x}޼uw6ZS4i|.:}~odp%ЯW -)/6V;4AOWU~D[-o$n<s艦 ǪsZн38ꭧdKK9r={اd]v$î7jپS o@g'_N'vչZ8}#<2F}2')6.UL,iTzj NE'54Uy:ߔv[sZJ'VED+mޚq;s9.7P$iCؕfkw*>B.PZ'UjP?fS$G[2˔Wg+?*^,;˵ 9V..|nm\D[ޒF';xJ?S5+ |-Ji:8i~O3)zvYKwTS~0GUO1ҮJ []NԆ+ ՜ެ.OP}Qjl܋O,bd(;t"ryRfcN2rṘT YI['i[kEvnm]xPzx͎N?9 5 :Rclls^GՒkP\)uV9^ڶ?r4:}\U 1}mA.hE%") r3:{Le8v`klwb fSccGUGe8A|mX-ILMgSSmSI4kJFޤnߖ㵾k7zuh:^pJe _<{ެ ?X)QvŊ 9lFczPMӆ紡l;fJ9UosuӱC:qy4J rVCxk;[-$MiX]MZ3?SJ?}Tׯ_LC(i`NSyP[7 Rjc2cw|`ex)?:3DiF+6lܥ܂3:[)Qq&u> ];JE't ;jG+j))iLfRUa ReVmrkM1=w('Xg ve(Sv$#Xޤ!brPekT0g|ڱj>ھW~ǎZze׆k ^ pF*~DMxkϛ'jywޯ38@QN;ze {7;J>(ׯvMVDT=PT荍I6]cbo9#*RO/ Л+jK pjMV geB}$CQ1uT>yp9?|[漅wP~J]7rtPoW_.ԩW@@@BBB::: t;i@y<zWWSۣrM W^V*_^Θ>jjz/6:4UZz^a1|#Up*++e<jti*)y>TX,:|*+TTtJEO  @GD*n rQ*(($ 8P]%I{'ǽ\eXkTaann1ߕ/RUU?|q/WY?z:Z^^tn@=xڕQ)))llJII=ܣEDD{^/4=xvnw8$x[漅wPk~Jͽu ߖxCae UzjQG4.֮W? $TWp:\|bN鶜Ub=ez:wL?  aڽ#Sŧ(ϧ&+9Y2d(*&&豀RӇBgTp$Cr+_?L#p(ORIENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.035666 stem-1.8.2/docs/_static/example/0000755000175000017510000000000000000000000015223 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1569107350.0 stem-1.8.2/docs/_static/example/bandwidth_stats.py0000644000175000017510000000045400000000000020762 0ustar00useruserimport stem.descriptor.remote bandwidth_file = stem.descriptor.remote.get_bandwidth_file().run()[0] for fingerprint, measurement in bandwidth_file.measurements.items(): print('Relay %s' % fingerprint) for attr, value in measurement.items(): print(' %s = %s' % (attr, value)) print('') ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/benchmark_metrics_lib.java0000644000175000017510000002631500000000000022403 0ustar00useruser/* Copyright 2016 The Tor Project * See LICENSE for licensing information */ package org.torproject.descriptor; import java.io.File; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.SortedMap; public class MeasurePerformance { /* Check if all necessary files are available and then measure * performance of some more or less common use cases. */ public static void main(String[] args) { if (!filesAvailable()) { return; } /*measureListOutdatedRelays(null); pause();*/ measureAverageAdvertisedBandwidth(new File(resDir, resPaths[0])); pause(); measureAverageAdvertisedBandwidth(new File(resDir, resPaths[1])); pause(); measureAverageAdvertisedBandwidth(new File(resDir, resPaths[2])); pause(); /*measureFractionRelaysExit80ServerDescriptors(null); pause(); measureSumOfWrittenAndReadBytes(null); pause();*/ measureCountriesV3Requests(new File(resDir, resPaths[3])); pause(); measureCountriesV3Requests(new File(resDir, resPaths[4])); pause(); measureAverageRelaysExit(new File(resDir, resPaths[5])); pause(); measureAverageRelaysExit(new File(resDir, resPaths[6])); pause(); measureAverageRelaysExit(new File(resDir, resPaths[7])); /*pause(); measureVotesByBandwidthAuthorities(null); pause(); measureExtendedFamilies(null); pause();*/ measureFractionRelaysExit80Microdescriptors( new File(resDir, resPaths[8])); measureFractionRelaysExit80Microdescriptors( new File(resDir, resPaths[9])); } private static File resDir = new File("res"); private static String[] resPaths = new String[] { "archive/relay-descriptors/server-descriptors/" + "server-descriptors-2015-11.tar.xz", "archive/relay-descriptors/server-descriptors/" + "server-descriptors-2015-11.tar", "archive/relay-descriptors/server-descriptors/" + "server-descriptors-2015-11", "archive/relay-descriptors/extra-infos/extra-infos-2015-11.tar.xz", "archive/relay-descriptors/extra-infos/extra-infos-2015-11.tar", "archive/relay-descriptors/consensuses/consensuses-2015-11.tar.xz", "archive/relay-descriptors/consensuses/consensuses-2015-11.tar", "archive/relay-descriptors/consensuses/consensuses-2015-11", "archive/relay-descriptors/microdescs/" + "microdescs-2015-11-micro.tar.xz", "archive/relay-descriptors/microdescs/microdescs-2015-11-micro.tar" }; private static boolean filesAvailable() { if (!resDir.exists() || !resDir.isDirectory()) { return false; } for (String resPath : resPaths) { if (!(new File(resDir, resPath).exists())) { System.err.println(resPath); return false; } } return true; } private static void pause() { try { Thread.sleep(15L * 1000L); } catch (InterruptedException e) { e.printStackTrace(); } } private static void measureListOutdatedRelays(File tarballFile) { } private static void measureAverageAdvertisedBandwidth( File tarballFileOrDirectory) { System.out.println("Starting measureAverageAdvertisedBandwidth"); long startedMillis = System.currentTimeMillis(); long sumAdvertisedBandwidth = 0, countedServerDescriptors = 0; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFileOrDirectory); descriptorReader.addDirectory(tarballFileOrDirectory); Iterator descriptorFiles = descriptorReader.readDescriptors(); while (descriptorFiles.hasNext()) { DescriptorFile descriptorFile = descriptorFiles.next(); for (Descriptor descriptor : descriptorFile.getDescriptors()) { if (!(descriptor instanceof ServerDescriptor)) { continue; } ServerDescriptor serverDescriptor = (ServerDescriptor) descriptor; sumAdvertisedBandwidth += (long) Math.min(Math.min( serverDescriptor.getBandwidthRate(), serverDescriptor.getBandwidthBurst()), serverDescriptor.getBandwidthObserved()); countedServerDescriptors++; } } long endedMillis = System.currentTimeMillis(); System.out.println("Ending measureAverageAdvertisedBandwidth"); System.out.printf("Total time: %d millis%n", endedMillis - startedMillis); System.out.printf("Processed server descriptors: %d%n", countedServerDescriptors); System.out.printf("Average advertised bandwidth: %d%n", sumAdvertisedBandwidth / countedServerDescriptors); System.out.printf("Time per server descriptor: %.6f millis%n", ((double) (endedMillis - startedMillis)) / ((double) countedServerDescriptors)); } private static void measureFractionRelaysExit80ServerDescriptors( File tarballFile) { } private static void measureSumOfWrittenAndReadBytes(File tarballFile) { } private static void measureCountriesV3Requests(File tarballFile) { System.out.println("Starting measureCountriesV3Requests"); long startedMillis = System.currentTimeMillis(); Set countries = new HashSet<>(); long countedExtraInfoDescriptors = 0; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFile); Iterator descriptorFiles = descriptorReader.readDescriptors(); while (descriptorFiles.hasNext()) { DescriptorFile descriptorFile = descriptorFiles.next(); for (Descriptor descriptor : descriptorFile.getDescriptors()) { if (!(descriptor instanceof ExtraInfoDescriptor)) { continue; } ExtraInfoDescriptor extraInfoDescriptor = (ExtraInfoDescriptor) descriptor; SortedMap dirreqV3Reqs = extraInfoDescriptor.getDirreqV3Reqs(); if (dirreqV3Reqs != null) { countries.addAll(dirreqV3Reqs.keySet()); } countedExtraInfoDescriptors++; } } long endedMillis = System.currentTimeMillis(); System.out.println("Ending measureCountriesV3Requests"); System.out.printf("Total time: %d millis%n", endedMillis - startedMillis); System.out.printf("Processed extra-info descriptors: %d%n", countedExtraInfoDescriptors); System.out.printf("Number of countries: %d%n", countries.size()); System.out.printf("Time per extra-info descriptor: %.6f millis%n", ((double) (endedMillis - startedMillis)) / ((double) countedExtraInfoDescriptors)); } private static void measureAverageRelaysExit( File tarballFileOrDirectory) { System.out.println("Starting measureAverageRelaysExit"); long startedMillis = System.currentTimeMillis(); long totalRelaysWithExitFlag = 0L, totalRelays = 0L, countedConsensuses = 0L; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFileOrDirectory); descriptorReader.addDirectory(tarballFileOrDirectory); Iterator descriptorFiles = descriptorReader.readDescriptors(); while (descriptorFiles.hasNext()) { DescriptorFile descriptorFile = descriptorFiles.next(); for (Descriptor descriptor : descriptorFile.getDescriptors()) { if (!(descriptor instanceof RelayNetworkStatusConsensus)) { continue; } RelayNetworkStatusConsensus consensus = (RelayNetworkStatusConsensus) descriptor; for (NetworkStatusEntry entry : consensus.getStatusEntries().values()) { if (entry.getFlags().contains("Exit")) { totalRelaysWithExitFlag++; } totalRelays++; } countedConsensuses++; } } long endedMillis = System.currentTimeMillis(); System.out.println("Ending measureAverageRelaysExit"); System.out.printf("Total time: %d millis%n", endedMillis - startedMillis); System.out.printf("Processed consensuses: %d%n", countedConsensuses); System.out.printf("Total number of status entries: %d%n", totalRelays); System.out.printf("Total number of status entries with Exit flag: " + "%d%n", totalRelaysWithExitFlag); System.out.printf("Average number of relays with Exit Flag: %.2f%n", (double) totalRelaysWithExitFlag / (double) totalRelays); System.out.printf("Time per consensus: %.6f millis%n", ((double) (endedMillis - startedMillis)) / ((double) countedConsensuses)); } private static void measureVotesByBandwidthAuthorities( File tarballFile) { } private static void measureExtendedFamilies(File tarballFile) { } private static void measureFractionRelaysExit80Microdescriptors( File tarballFile) { System.out.println("Starting " + "measureFractionRelaysExit80Microdescriptors"); long startedMillis = System.currentTimeMillis(); long totalRelaysWithExitFlag = 0L, countedMicrodescriptors = 0L; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); descriptorReader.addTarball(tarballFile); Iterator descriptorFiles = descriptorReader.readDescriptors(); while (descriptorFiles.hasNext()) { DescriptorFile descriptorFile = descriptorFiles.next(); for (Descriptor descriptor : descriptorFile.getDescriptors()) { if (!(descriptor instanceof Microdescriptor)) { continue; } countedMicrodescriptors++; Microdescriptor microdescriptor = (Microdescriptor) descriptor; String defaultPolicy = microdescriptor.getDefaultPolicy(); if (defaultPolicy == null) { continue; } boolean accept = "accept".equals( microdescriptor.getDefaultPolicy()); for (String ports : microdescriptor.getPortList().split(",")) { if (ports.contains("-")) { String[] parts = ports.split("-"); int from = Integer.parseInt(parts[0]); int to = Integer.parseInt(parts[1]); if (from <= 80 && to >= 80) { if (accept) { totalRelaysWithExitFlag++; } } else if (to > 80) { if (!accept) { totalRelaysWithExitFlag++; } break; } } else if ("80".equals(ports)) { if (accept) { totalRelaysWithExitFlag++; } break; } } } } long endedMillis = System.currentTimeMillis(); System.out.println("Ending " + "measureFractionRelaysExit80Microdescriptors"); System.out.printf("Total time: %d millis%n", endedMillis - startedMillis); System.out.printf("Processed microdescriptors: %d%n", countedMicrodescriptors); System.out.printf("Total number of microdescriptors that exit to 80: " + "%d%n", totalRelaysWithExitFlag); System.out.printf("Average number of relays that exit to 80: %.2f%n", (double) totalRelaysWithExitFlag / (double) countedMicrodescriptors); System.out.printf("Time per microdescriptor: %.6f millis%n", ((double) (endedMillis - startedMillis)) / ((double) countedMicrodescriptors)); } } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/benchmark_server_descriptor_metrics_lib.java0000644000175000017510000000377700000000000026236 0ustar00useruserpackage org.torproject.descriptor; import org.torproject.descriptor.Descriptor; import org.torproject.descriptor.DescriptorReader; import org.torproject.descriptor.DescriptorSourceFactory; import org.torproject.descriptor.ServerDescriptor; import java.io.File; import java.util.Iterator; public class MeasurePerformance { public static void main(String[] args) { measureAverageAdvertisedBandwidth(new File("server-descriptors-2015-11.tar")); } private static void measureAverageAdvertisedBandwidth( File tarballFileOrDirectory) { System.out.println("Starting measureAverageAdvertisedBandwidth"); final long startedMillis = System.currentTimeMillis(); long sumAdvertisedBandwidth = 0; long countedServerDescriptors = 0; DescriptorReader descriptorReader = DescriptorSourceFactory.createDescriptorReader(); Iterator descriptors = descriptorReader.readDescriptors(tarballFileOrDirectory).iterator(); while (descriptors.hasNext()) { Descriptor descriptor = descriptors.next(); if (!(descriptor instanceof ServerDescriptor)) { continue; } ServerDescriptor serverDescriptor = (ServerDescriptor) descriptor; sumAdvertisedBandwidth += (long) Math.min(Math.min( serverDescriptor.getBandwidthRate(), serverDescriptor.getBandwidthBurst()), serverDescriptor.getBandwidthObserved()); countedServerDescriptors++; } long endedMillis = System.currentTimeMillis(); System.out.println("Ending measureAverageAdvertisedBandwidth"); System.out.printf("Total time: %d millis%n", endedMillis - startedMillis); System.out.printf("Processed server descriptors: %d%n", countedServerDescriptors); System.out.printf("Average advertised bandwidth: %d%n", sumAdvertisedBandwidth / countedServerDescriptors); System.out.printf("Time per server descriptor: %.6f millis%n", ((double) (endedMillis - startedMillis)) / ((double) countedServerDescriptors)); } } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/benchmark_server_descriptor_stem.py0000644000175000017510000000136200000000000024405 0ustar00useruserimport time import stem.descriptor def measure_average_advertised_bandwidth(path): start_time = time.time() total_bw, count = 0, 0 for desc in stem.descriptor.parse_file(path): total_bw += min(desc.average_bandwidth, desc.burst_bandwidth, desc.observed_bandwidth) count += 1 runtime = time.time() - start_time print("Finished measure_average_advertised_bandwidth('%s')" % path) print(' Total time: %i seconds' % runtime) print(' Processed server descriptors: %i' % count) print(' Average advertised bandwidth: %i' % (total_bw / count)) print(' Time per server descriptor: %0.5f seconds' % (runtime / count)) print('') if __name__ == '__main__': measure_average_advertised_bandwidth('server-descriptors-2015-11.tar') ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/benchmark_server_descriptor_zoossh.go0000644000175000017510000000241100000000000024733 0ustar00useruserpackage main import ( "fmt" "os" "path/filepath" "time" "git.torproject.org/user/phw/zoossh.git" ) var processedDescs int64 = 0 var totalBw uint64 = 0 func Min(a uint64, b uint64, c uint64) uint64 { min := a if b < min { min = b } if c < min { min = c } return min } func ProcessDescriptors(path string, info os.FileInfo, err error) error { if _, err := os.Stat(path); err != nil { return err } if info.IsDir() { return nil } consensus, err := zoossh.ParseDescriptorFile(path) if err != nil { return err } if (processedDescs % 100) == 0 { fmt.Printf(".") } for _, getDesc := range consensus.RouterDescriptors { desc := getDesc() totalBw += Min(desc.BandwidthAvg, desc.BandwidthBurst, desc.BandwidthObs) processedDescs++ } return nil } func main() { before = time.Now() filepath.Walk("server-descriptors-2015-11", ProcessDescriptors) fmt.Println() after = time.Now() duration = after.Sub(before) fmt.Println("Total time for descriptors:", duration) fmt.Printf("Time per descriptor: %dns\n", duration.Nanoseconds()/processedDescs) fmt.Printf("Processed %d descriptors.\n", processedDescs) fmt.Printf("Average advertised bandwidth: %d\n", totalBw/uint64(processedDescs)) } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/benchmark_stem.py0000644000175000017510000000565700000000000020574 0ustar00useruserimport time import stem.descriptor def measure_average_advertised_bandwidth(path): start_time = time.time() total_bw, count = 0, 0 for desc in stem.descriptor.parse_file(path): total_bw += min(desc.average_bandwidth, desc.burst_bandwidth, desc.observed_bandwidth) count += 1 runtime = time.time() - start_time print("Finished measure_average_advertised_bandwidth('%s')" % path) print(' Total time: %i seconds' % runtime) print(' Processed server descriptors: %i' % count) print(' Average advertised bandwidth: %i' % (total_bw / count)) print(' Time per server descriptor: %0.5f seconds' % (runtime / count)) print('') def measure_countries_v3_requests(path): start_time = time.time() countries, count = set(), 0 for desc in stem.descriptor.parse_file(path): if desc.dir_v3_responses: countries.update(desc.dir_v3_responses.keys()) count += 1 runtime = time.time() - start_time print("Finished measure_countries_v3_requests('%s')" % path) print(' Total time: %i seconds' % runtime) print(' Processed extrainfo descriptors: %i' % count) print(' Number of countries: %i' % len(countries)) print(' Time per extrainfo descriptor: %0.5f seconds' % (runtime / count)) print('') def measure_average_relays_exit(path): start_time = time.time() total_relays, exits, consensuses = 0, 0, 0 for consensus in stem.descriptor.parse_file(path, document_handler = stem.descriptor.DocumentHandler.DOCUMENT): for desc in consensus.routers.values(): if 'Exit' in desc.flags: exits += 1 total_relays += 1 consensuses += 1 runtime = time.time() - start_time print("Finished measure_average_relays_exit('%s')" % path) print(' Total time: %i seconds' % runtime) print(' Processed %i consensuses with %i router status entries' % (consensuses, total_relays)) print(' Total exits: %i (%0.2f%%)' % (exits, float(exits) / total_relays)) print(' Time per consensus: %0.5f seconds' % (runtime / consensuses)) print('') def measure_fraction_relays_exit_80_microdescriptors(path): start_time = time.time() exits, count = 0, 0 for desc in stem.descriptor.parse_file(path): if desc.exit_policy.can_exit_to(port = 80): exits += 1 count += 1 runtime = time.time() - start_time print("Finished measure_fraction_relays_exit_80_microdescriptors('%s')" % path) print(' Total time: %i seconds' % runtime) print(' Processed microdescriptors: %i' % count) print(' Total exits to port 80: %i (%0.2f%%)' % (exits, float(exits) / count)) print(' Time per microdescriptor: %0.5f seconds' % (runtime / count)) print('') measure_average_advertised_bandwidth('/home/atagar/Desktop/server-descriptors-2015-11.tar') measure_countries_v3_requests('/home/atagar/Desktop/extra-infos-2015-11.tar') measure_average_relays_exit('/home/atagar/Desktop/consensuses-2015-11.tar') measure_fraction_relays_exit_80_microdescriptors('/home/atagar/Desktop/microdescs-2015-11.tar') ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/benchmark_zoossh.go0000644000175000017510000000437300000000000021120 0ustar00useruserpackage main import ( "fmt" "log" "os" "path/filepath" "time" "git.torproject.org/user/phw/zoossh.git" ) var processedCons int64 = 0 var processedDescs int64 = 0 var totalExits int64 = 0 var totalRelays int64 = 0 var totalBw uint64 = 0 func Min(a uint64, b uint64, c uint64) uint64 { min := a if b < min { min = b } if c < min { min = c } return min } func ProcessDescriptors(path string, info os.FileInfo, err error) error { if _, err := os.Stat(path); err != nil { return err } if info.IsDir() { return nil } consensus, err := zoossh.ParseDescriptorFile(path) if err != nil { return err } if (processedDescs % 100) == 0 { fmt.Printf(".") } for _, getDesc := range consensus.RouterDescriptors { desc := getDesc() totalBw += Min(desc.BandwidthAvg, desc.BandwidthBurst, desc.BandwidthObs) processedDescs++ } return nil } func ProcessConsensus(path string, info os.FileInfo, err error) error { if _, err := os.Stat(path); err != nil { return err } if info.IsDir() { return nil } consensus, err := zoossh.ParseConsensusFile(path) if err != nil { return err } fmt.Printf(".") for _, getStatus := range consensus.RouterStatuses { status := getStatus() totalRelays++ if status.Flags.Exit == true { totalExits++ } } processedCons++ return nil } func main() { if len(os.Args) != 3 { log.Fatalf("Usage: %s CONSENSUS_ARCHIVE DESCRIPTOR_ARCHIVE", os.Args[0]) } before := time.Now() filepath.Walk(os.Args[1], ProcessConsensus) fmt.Println() after := time.Now() duration := after.Sub(before) fmt.Println("Total time for consensuses:", duration) fmt.Printf("Time per consensus: %dms\n", duration.Nanoseconds()/processedCons/int64(1000000)) fmt.Printf("Processed %d consensuses with %d router status entries.\n", processedCons, totalRelays) fmt.Printf("Total exits: %d\n", totalExits) before = time.Now() filepath.Walk(os.Args[2], ProcessDescriptors) fmt.Println() after = time.Now() duration = after.Sub(before) fmt.Println("Total time for descriptors:", duration) fmt.Printf("Time per descriptor: %dns\n", duration.Nanoseconds()/processedDescs) fmt.Printf("Processed %d descriptors.\n", processedDescs) fmt.Printf("Average advertised bandwidth: %d\n", totalBw/uint64(processedDescs)) } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1578978826.0 stem-1.8.2/docs/_static/example/broken_listener.py0000644000175000017510000000051700000000000020765 0ustar00useruserimport time from stem.control import EventType, Controller def broken_handler(event): print('start of broken_handler') raise ValueError('boom') print('end of broken_handler') with Controller.from_port() as controller: controller.authenticate() controller.add_event_listener(broken_handler, EventType.BW) time.sleep(2) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/check_digests.py0000644000175000017510000000341700000000000020401 0ustar00useruserimport sys import stem.descriptor.remote import stem.util.tor_tools def download_descriptors(fingerprint): """ Downloads the descriptors we need to validate this relay. Downloads are parallelized, providing the caller with a tuple of the form... (router_status_entry, server_descriptor, extrainfo_descriptor) """ conensus_query = stem.descriptor.remote.get_consensus() server_desc_query = stem.descriptor.remote.get_server_descriptors(fingerprint) extrainfo_query = stem.descriptor.remote.get_extrainfo_descriptors(fingerprint) router_status_entries = filter(lambda desc: desc.fingerprint == fingerprint, conensus_query.run()) if len(router_status_entries) != 1: raise IOError("Unable to find relay '%s' in the consensus" % fingerprint) return ( router_status_entries[0], server_desc_query.run()[0], extrainfo_query.run()[0], ) if __name__ == '__main__': fingerprint = raw_input("What relay fingerprint would you like to validate?\n") print('') # blank line if not stem.util.tor_tools.is_valid_fingerprint(fingerprint): print("'%s' is not a valid relay fingerprint" % fingerprint) sys.exit(1) try: router_status_entry, server_desc, extrainfo_desc = download_descriptors(fingerprint) except Exception as exc: print(exc) sys.exit(1) if router_status_entry.digest == server_desc.digest(): print("Server descriptor digest is correct") else: print("Server descriptor digest invalid, expected %s but is %s" % (router_status_entry.digest, server_desc.digest())) if server_desc.extra_info_digest == extrainfo_desc.digest(): print("Extrainfo descriptor digest is correct") else: print("Extrainfo descriptor digest invalid, expected %s but is %s" % (server_desc.extra_info_digest, extrainfo_desc.digest())) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/client_usage_using_pycurl.py0000644000175000017510000000246600000000000023052 0ustar00useruserimport io import pycurl import stem.process from stem.util import term SOCKS_PORT = 7000 def query(url): """ Uses pycurl to fetch a site using the proxy on the SOCKS_PORT. """ output = io.BytesIO() query = pycurl.Curl() query.setopt(pycurl.URL, url) query.setopt(pycurl.PROXY, 'localhost') query.setopt(pycurl.PROXYPORT, SOCKS_PORT) query.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME) query.setopt(pycurl.WRITEFUNCTION, output.write) try: query.perform() return output.getvalue() except pycurl.error as exc: return "Unable to reach %s (%s)" % (url, exc) # Start an instance of Tor configured to only exit through Russia. This prints # Tor's bootstrap information as it starts. Note that this likely will not # work if you have another Tor instance running. def print_bootstrap_lines(line): if "Bootstrapped " in line: print(term.format(line, term.Color.BLUE)) print(term.format("Starting Tor:\n", term.Attr.BOLD)) tor_process = stem.process.launch_tor_with_config( config = { 'SocksPort': str(SOCKS_PORT), 'ExitNodes': '{ru}', }, init_msg_handler = print_bootstrap_lines, ) print(term.format("\nChecking our endpoint:\n", term.Attr.BOLD)) print(term.format(query("https://www.atagar.com/echo.php"), term.Color.BLUE)) tor_process.kill() # stops tor ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/client_usage_using_socksipy.py0000644000175000017510000000113700000000000023372 0ustar00useruserimport socks # SocksiPy module import socket import urllib SOCKS_PORT = 7000 # Set socks proxy and wrap the urllib module socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', SOCKS_PORT) socket.socket = socks.socksocket # Perform DNS resolution through the socket def getaddrinfo(*args): return [(socket.AF_INET, socket.SOCK_STREAM, 6, '', (args[0], args[1]))] socket.getaddrinfo = getaddrinfo def query(url): """ Uses urllib to fetch a site using SocksiPy for Tor over the SOCKS_PORT. """ try: return urllib.urlopen(url).read() except: return "Unable to reach %s" % url ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1569107350.0 stem-1.8.2/docs/_static/example/collector_caching.py0000644000175000017510000000106000000000000021234 0ustar00useruserimport datetime import stem.descriptor import stem.descriptor.collector yesterday = datetime.datetime.utcnow() - datetime.timedelta(days = 1) cache_dir = '~/descriptor_cache/server_desc_today' collector = stem.descriptor.collector.CollecTor() for f in collector.files('server-descriptor', start = yesterday): f.download(cache_dir) # then later... for f in collector.files('server-descriptor', start = yesterday): for desc in f.read(cache_dir): if desc.exit_policy.is_exiting_allowed(): print(' %s (%s)' % (desc.nickname, desc.fingerprint)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1578978826.0 stem-1.8.2/docs/_static/example/collector_reading.py0000644000175000017510000000074700000000000021264 0ustar00useruserimport datetime import stem.descriptor.collector yesterday = datetime.datetime.utcnow() - datetime.timedelta(days = 1) # provide yesterday's exits exits = {} for desc in stem.descriptor.collector.get_server_descriptors(start = yesterday): if desc.exit_policy.is_exiting_allowed(): exits[desc.fingerprint] = desc print('%i relays published an exiting policy today...\n' % len(exits)) for fingerprint, desc in exits.items(): print(' %s (%s)' % (desc.nickname, fingerprint)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/compare_flags.py0000644000175000017510000000335300000000000020403 0ustar00useruserimport collections import stem.descriptor import stem.descriptor.remote import stem.directory # Query all authority votes asynchronously. downloader = stem.descriptor.remote.DescriptorDownloader( document_handler = stem.descriptor.DocumentHandler.DOCUMENT, ) # An ordered dictionary ensures queries are finished in the order they were # added. queries = collections.OrderedDict() for name, authority in stem.directory.Authority.from_cache().items(): if authority.v3ident is None: continue # authority doesn't vote if it lacks a v3ident queries[name] = downloader.get_vote(authority) # Wait for the votes to finish being downloaded, this produces a dictionary of # authority nicknames to their vote. votes = dict((name, query.run()[0]) for (name, query) in queries.items()) # Get a superset of all the fingerprints in all the votes. all_fingerprints = set() for vote in votes.values(): all_fingerprints.update(vote.routers.keys()) # Finally, compare moria1's votes to maatuska's votes. for fingerprint in all_fingerprints: moria1_vote = votes['moria1'].routers.get(fingerprint) maatuska_vote = votes['maatuska'].routers.get(fingerprint) if not moria1_vote and not maatuska_vote: print("both moria1 and maatuska haven't voted about %s" % fingerprint) elif not moria1_vote: print("moria1 hasn't voted about %s" % fingerprint) elif not maatuska_vote: print("maatuska hasn't voted about %s" % fingerprint) elif 'Running' in moria1_vote.flags and 'Running' not in maatuska_vote.flags: print("moria1 has the Running flag but maatuska doesn't: %s" % fingerprint) elif 'Running' in maatuska_vote.flags and 'Running' not in moria1_vote.flags: print("maatuska has the Running flag but moria1 doesn't: %s" % fingerprint) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/create_descriptor.py0000644000175000017510000000055700000000000021305 0ustar00useruserfrom stem.descriptor.server_descriptor import RelayDescriptor # prints 'caerSidi (71.35.133.197:9001)' desc = RelayDescriptor.create() print("%s (%s:%s)" % (desc.nickname, desc.address, desc.or_port)) # prints 'demo (127.0.0.1:80)' desc = RelayDescriptor.create({'router': 'demo 127.0.0.1 80 0 0'}) print("%s (%s:%s)" % (desc.nickname, desc.address, desc.or_port)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/create_descriptor_content.py0000644000175000017510000000020300000000000023023 0ustar00useruserfrom stem.descriptor.server_descriptor import RelayDescriptor print(RelayDescriptor.content({'router': 'demo 127.0.0.1 80 0 0'})) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/current_descriptors.py0000644000175000017510000000035600000000000021704 0ustar00useruserimport stem.descriptor.remote try: for desc in stem.descriptor.remote.get_consensus(): print("found relay %s (%s)" % (desc.nickname, desc.fingerprint)) except Exception as exc: print("Unable to retrieve the consensus: %s" % exc) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/custom_path_selection.py0000644000175000017510000000441600000000000022175 0ustar00useruserimport StringIO import time import pycurl import stem.control # Static exit for us to make 2-hop circuits through. Picking aurora, a # particularly beefy one... # # https://metrics.torproject.org/rs.html#details/379FB450010D17078B3766C2273303C358C3A442 EXIT_FINGERPRINT = '379FB450010D17078B3766C2273303C358C3A442' SOCKS_PORT = 9050 CONNECTION_TIMEOUT = 30 # timeout before we give up on a circuit def query(url): """ Uses pycurl to fetch a site using the proxy on the SOCKS_PORT. """ output = StringIO.StringIO() query = pycurl.Curl() query.setopt(pycurl.URL, url) query.setopt(pycurl.PROXY, 'localhost') query.setopt(pycurl.PROXYPORT, SOCKS_PORT) query.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME) query.setopt(pycurl.CONNECTTIMEOUT, CONNECTION_TIMEOUT) query.setopt(pycurl.WRITEFUNCTION, output.write) try: query.perform() return output.getvalue() except pycurl.error as exc: raise ValueError("Unable to reach %s (%s)" % (url, exc)) def scan(controller, path): """ Fetch check.torproject.org through the given path of relays, providing back the time it took. """ circuit_id = controller.new_circuit(path, await_build = True) def attach_stream(stream): if stream.status == 'NEW': controller.attach_stream(stream.id, circuit_id) controller.add_event_listener(attach_stream, stem.control.EventType.STREAM) try: controller.set_conf('__LeaveStreamsUnattached', '1') # leave stream management to us start_time = time.time() check_page = query('https://check.torproject.org/') if 'Congratulations. This browser is configured to use Tor.' not in check_page: raise ValueError("Request didn't have the right content") return time.time() - start_time finally: controller.remove_event_listener(attach_stream) controller.reset_conf('__LeaveStreamsUnattached') with stem.control.Controller.from_port() as controller: controller.authenticate() relay_fingerprints = [desc.fingerprint for desc in controller.get_network_statuses()] for fingerprint in relay_fingerprints: try: time_taken = scan(controller, [fingerprint, EXIT_FINGERPRINT]) print('%s => %0.2f seconds' % (fingerprint, time_taken)) except Exception as exc: print('%s => %s' % (fingerprint, exc)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/descriptor_from_orport.py0000644000175000017510000000067700000000000022415 0ustar00useruserimport stem.descriptor.remote # Unlike the above example, this one downloads specifically through the # ORPort of moria1 (long time tor directory authority). try: consensus = stem.descriptor.remote.get_consensus( endpoints = (stem.ORPort('128.31.0.34', 9101),) ) for desc in consensus: print("found relay %s (%s)" % (desc.nickname, desc.fingerprint)) except Exception as exc: print("Unable to retrieve the consensus: %s" % exc) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/descriptor_from_tor_control_socket.py0000644000175000017510000000035600000000000024776 0ustar00useruserfrom stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() for desc in controller.get_network_statuses(): print("found relay %s (%s)" % (desc.nickname, desc.fingerprint)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/descriptor_from_tor_data_directory.py0000644000175000017510000000025100000000000024735 0ustar00useruserfrom stem.descriptor import parse_file for desc in parse_file('/home/atagar/.tor/cached-consensus'): print('found relay %s (%s)' % (desc.nickname, desc.fingerprint)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/download_descriptor.py0000644000175000017510000001000000000000000021631 0ustar00useruser""" Simple script to dowload a descriptor from Tor's ORPort or DirPort. """ import collections import getopt import sys import stem import stem.descriptor.remote import stem.util.connection import stem.util.tor_tools # By default downloading moria1's server descriptor from itself. DEFAULT_ARGS = { 'descriptor_type': 'server', 'fingerprint': '9695DFC35FFEB861329B9F1AB04C46397020CE31', 'download_from': stem.DirPort('128.31.0.34', 9131), 'print_help': False, } VALID_TYPES = ('server', 'extrainfo', 'consensus') HELP_TEXT = """\ Downloads a descriptor through Tor's ORPort or DirPort. -t, --type TYPE descriptor type to download, options are: %s -f, --fingerprint FP relay to download the descriptor of --orport ADDRESS:PORT ORPort to download from --dirport ADDRESS:PORT DirPort to download from -h, --help presents this help """ % ', '.join(VALID_TYPES) def parse(argv): """ Parses our arguments, providing a named tuple with their values. :param list argv: input arguments to be parsed :returns: a **named tuple** with our parsed arguments :raises: **ValueError** if we got an invalid argument """ args = dict(DEFAULT_ARGS) try: recognized_args, unrecognized_args = getopt.getopt(argv, 't:f:h', ['type=', 'fingerprint=', 'orport=', 'dirport=', 'help']) if unrecognized_args: raise getopt.GetoptError("'%s' aren't recognized arguments" % "', '".join(unrecognized_args)) except Exception as exc: raise ValueError('%s (for usage provide --help)' % exc) for opt, arg in recognized_args: if opt in ('-t', '--type'): if arg not in VALID_TYPES: raise ValueError("'%s' isn't a recognized decriptor type, options are: %s" % (arg, ', '.join(VALID_TYPES))) args['descriptor_type'] = arg elif opt in ('-f', '--fingerprint'): if not stem.util.tor_tools.is_valid_fingerprint(arg): raise ValueError("'%s' isn't a relay fingerprint" % arg) args['fingerprint'] = arg elif opt in ('--orport', '--dirport'): if ':' not in arg: raise ValueError("'%s' should be of the form 'address:port'" % arg) address, port = arg.rsplit(':', 1) if not stem.util.connection.is_valid_ipv4_address(address): raise ValueError("'%s' isn't a valid IPv4 address" % address) elif not stem.util.connection.is_valid_port(port): raise ValueError("'%s' isn't a valid port number" % port) endpoint_class = stem.ORPort if opt == '--orport' else stem.DirPort args['download_from'] = endpoint_class(address, port) elif opt in ('-h', '--help'): args['print_help'] = True # translates our args dict into a named tuple Args = collections.namedtuple('Args', args.keys()) return Args(**args) def main(): try: args = parse(sys.argv[1:]) except ValueError as exc: print(exc) sys.exit(1) if args.print_help: print(HELP_TEXT) sys.exit() print('Downloading %s descriptor from %s:%s...\n' % (args.descriptor_type, args.download_from.address, args.download_from.port)) desc = None if args.descriptor_type in ('server', 'extrainfo'): if args.descriptor_type == 'server': download_func = stem.descriptor.remote.get_server_descriptors else: download_func = stem.descriptor.remote.get_extrainfo_descriptors desc = download_func( fingerprints = [args.fingerprint], endpoints = [args.download_from], ).run()[0] elif args.descriptor_type == 'consensus': for consensus_desc in stem.descriptor.remote.get_consensus(endpoints = [args.download_from]): if consensus_desc.fingerprint == args.fingerprint: desc = consensus_desc break if not desc: print('Unable to find a descriptor for %s in the consensus' % args.fingerprint) sys.exit(1) else: print("'%s' is not a recognized descriptor type, options are: %s" % (args.descriptor_type, ', '.join(VALID_TYPES))) sys.exit(1) print(desc) if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/ephemeral_hidden_services.py0000644000175000017510000000121600000000000022755 0ustar00useruserfrom stem.control import Controller from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "

Hi Grandma!

" print(' * Connecting to tor') with Controller.from_port() as controller: controller.authenticate() # Create a hidden service where visitors of port 80 get redirected to local # port 5000 (this is where Flask runs by default). response = controller.create_ephemeral_hidden_service({80: 5000}, await_publication = True) print(" * Our service is available at %s.onion, press ctrl+c to quit" % response.service_id) try: app.run() finally: print(" * Shutting down our hidden service") ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/event_listening.py0000644000175000017510000001224600000000000020777 0ustar00useruserimport curses import functools from stem.control import EventType, Controller from stem.util import str_tools # colors that curses can handle COLOR_LIST = { "red": curses.COLOR_RED, "green": curses.COLOR_GREEN, "yellow": curses.COLOR_YELLOW, "blue": curses.COLOR_BLUE, "cyan": curses.COLOR_CYAN, "magenta": curses.COLOR_MAGENTA, "black": curses.COLOR_BLACK, "white": curses.COLOR_WHITE, } GRAPH_WIDTH = 40 GRAPH_HEIGHT = 8 DOWNLOAD_COLOR = "green" UPLOAD_COLOR = "blue" def main(): with Controller.from_port(port = 9051) as controller: controller.authenticate() try: # This makes curses initialize and call draw_bandwidth_graph() with a # reference to the screen, followed by additional arguments (in this # case just the controller). curses.wrapper(draw_bandwidth_graph, controller) except KeyboardInterrupt: pass # the user hit ctrl+c def draw_bandwidth_graph(stdscr, controller): window = Window(stdscr) # (downloaded, uploaded) tuples for the last 40 seconds bandwidth_rates = [(0, 0)] * GRAPH_WIDTH # Making a partial that wraps the window and bandwidth_rates with a function # for Tor to call when it gets a BW event. This causes the 'window' and # 'bandwidth_rates' to be provided as the first two arguments whenever # 'bw_event_handler()' is called. bw_event_handler = functools.partial(_handle_bandwidth_event, window, bandwidth_rates) # Registering this listener with Tor. Tor reports a BW event each second. controller.add_event_listener(bw_event_handler, EventType.BW) # Pause the main thread until the user hits any key... and no, don't you dare # ask where the 'any' key is. :P stdscr.getch() def _handle_bandwidth_event(window, bandwidth_rates, event): # callback for when tor provides us with a BW event bandwidth_rates.insert(0, (event.read, event.written)) bandwidth_rates = bandwidth_rates[:GRAPH_WIDTH] # truncate old values _render_graph(window, bandwidth_rates) def _render_graph(window, bandwidth_rates): window.erase() download_rates = [entry[0] for entry in bandwidth_rates] upload_rates = [entry[1] for entry in bandwidth_rates] # show the latest values at the top label = "Downloaded (%s/s):" % str_tools.size_label(download_rates[0], 1) window.addstr(0, 1, label, DOWNLOAD_COLOR, curses.A_BOLD) label = "Uploaded (%s/s):" % str_tools.size_label(upload_rates[0], 1) window.addstr(0, GRAPH_WIDTH + 7, label, UPLOAD_COLOR, curses.A_BOLD) # draw the graph bounds in KB max_download_rate = max(download_rates) max_upload_rate = max(upload_rates) window.addstr(1, 1, "%4i" % (max_download_rate / 1024), DOWNLOAD_COLOR) window.addstr(GRAPH_HEIGHT, 1, " 0", DOWNLOAD_COLOR) window.addstr(1, GRAPH_WIDTH + 7, "%4i" % (max_upload_rate / 1024), UPLOAD_COLOR) window.addstr(GRAPH_HEIGHT, GRAPH_WIDTH + 7, " 0", UPLOAD_COLOR) # draw the graph for col in range(GRAPH_WIDTH): col_height = GRAPH_HEIGHT * download_rates[col] / max(max_download_rate, 1) for row in range(col_height): window.addstr(GRAPH_HEIGHT - row, col + 6, " ", DOWNLOAD_COLOR, curses.A_STANDOUT) col_height = GRAPH_HEIGHT * upload_rates[col] / max(max_upload_rate, 1) for row in range(col_height): window.addstr(GRAPH_HEIGHT - row, col + GRAPH_WIDTH + 12, " ", UPLOAD_COLOR, curses.A_STANDOUT) window.refresh() class Window(object): """ Simple wrapper for the curses standard screen object. """ def __init__(self, stdscr): self._stdscr = stdscr # Mappings of names to the curses color attribute. Initially these all # reference black text, but if the terminal can handle color then # they're set with that foreground color. self._colors = dict([(color, 0) for color in COLOR_LIST]) # allows for background transparency try: curses.use_default_colors() except curses.error: pass # makes the cursor invisible try: curses.curs_set(0) except curses.error: pass # initializes colors if the terminal can handle them try: if curses.has_colors(): color_pair = 1 for name, foreground in COLOR_LIST.items(): background = -1 # allows for default (possibly transparent) background curses.init_pair(color_pair, foreground, background) self._colors[name] = curses.color_pair(color_pair) color_pair += 1 except curses.error: pass def addstr(self, y, x, msg, color = None, attr = curses.A_NORMAL): # Curses throws an error if we try to draw a message that spans out of the # window's bounds (... seriously?), so doing our best to avoid that. if color is not None: if color not in self._colors: recognized_colors = ", ".join(self._colors.keys()) raise ValueError("The '%s' color isn't recognized: %s" % (color, recognized_colors)) attr |= self._colors[color] max_y, max_x = self._stdscr.getmaxyx() if max_x > x and max_y > y: try: self._stdscr.addstr(y, x, msg[:max_x - x], attr) except: pass # maybe an edge case while resizing the window def erase(self): self._stdscr.erase() def refresh(self): self._stdscr.refresh() if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/exit_used.py0000644000175000017510000000211600000000000017566 0ustar00useruserimport functools from stem import StreamStatus from stem.control import EventType, Controller def main(): print("Tracking requests for tor exits. Press 'enter' to end.") print("") with Controller.from_port() as controller: controller.authenticate() stream_listener = functools.partial(stream_event, controller) controller.add_event_listener(stream_listener, EventType.STREAM) raw_input() # wait for user to press enter def stream_event(controller, event): if event.status == StreamStatus.SUCCEEDED and event.circ_id: circ = controller.get_circuit(event.circ_id) exit_fingerprint = circ.path[-1][0] exit_relay = controller.get_network_status(exit_fingerprint) print("Exit relay for our connection to %s" % (event.target)) print(" address: %s:%i" % (exit_relay.address, exit_relay.or_port)) print(" fingerprint: %s" % exit_relay.fingerprint) print(" nickname: %s" % exit_relay.nickname) print(" locale: %s" % controller.get_info("ip-to-country/%s" % exit_relay.address, 'unknown')) print("") if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/fibonacci_multiprocessing.py0000644000175000017510000000063400000000000023024 0ustar00useruserimport stem.util.system import time def fibonacci(n): if n < 2: return n else: return fibonacci(n-2) + fibonacci(n-1) # calculate fibonacci sequences four times in parallel start_time, threads = time.time(), [] for i in range(4): threads.append(stem.util.system.DaemonTask(fibonacci, (35,), start = True)) for t in threads: t.join() print('took %0.1f seconds' % (time.time() - start_time)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685439391.0 stem-1.8.2/docs/_static/example/fibonacci_threaded.py0000644000175000017510000000066500000000000021361 0ustar00useruserimport threading import time def fibonacci(n): if n < 2: return n else: return fibonacci(n-2) + fibonacci(n-1) # calculate fibonacci sequences four times in parallel start_time, threads = time.time(), [] for i in range(4): t = threading.Thread(target = fibonacci, args = (35,)) t.setDaemon(True) t.start() threads.append(t) for t in threads: t.join() print('took %0.1f seconds' % (time.time() - start_time)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/get_hidden_service_descriptor.py0000644000175000017510000000041700000000000023647 0ustar00useruserfrom stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() # descriptor of duck-duck-go's hidden service (http://3g2upl4pq6kufc4m.onion) print(controller.get_hidden_service_descriptor('3g2upl4pq6kufc4m')) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/hello_world.py0000644000175000017510000000055100000000000020110 0ustar00useruserfrom stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() # provide the password here if you set one bytes_read = controller.get_info("traffic/read") bytes_written = controller.get_info("traffic/written") print("My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/introduction_points.py0000644000175000017510000000063600000000000021717 0ustar00useruserfrom stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() desc = controller.get_hidden_service_descriptor('3g2upl4pq6kufc4m') print("DuckDuckGo's introduction points are...\n") for introduction_point in desc.introduction_points(): print(' %s:%s => %s' % (introduction_point.address, introduction_point.port, introduction_point.identifier)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/list_circuits.py0000644000175000017510000000120300000000000020451 0ustar00useruserfrom stem import CircStatus from stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() for circ in sorted(controller.get_circuits()): if circ.status != CircStatus.BUILT: continue print("") print("Circuit %s (%s)" % (circ.id, circ.purpose)) for i, entry in enumerate(circ.path): div = '+' if (i == len(circ.path) - 1) else '|' fingerprint, nickname = entry desc = controller.get_network_status(fingerprint, None) address = desc.address if desc else 'unknown' print(" %s- %s (%s, %s)" % (div, fingerprint, nickname, address)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/load_test.py0000644000175000017510000000133200000000000017552 0ustar00useruserimport os import time import stem.control import stem.util.proc import stem.util.str_tools start_time = time.time() samplings = [] last_sample = None with stem.control.Controller.from_port() as controller: controller.authenticate() controller.add_event_listener(lambda *args: None, 'DEBUG') while True: utime, stime = stem.util.proc.stats(os.getpid(), stem.util.proc.Stat.CPU_UTIME, stem.util.proc.Stat.CPU_STIME) total_cpu_time = float(utime) + float(stime) if last_sample: samplings.append(total_cpu_time - last_sample) print '%0.1f%% (%s)' % (sum(samplings) / len(samplings) * 100, stem.util.str_tools.time_label(time.time() - start_time)) last_sample = total_cpu_time time.sleep(1) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/manual_config_options.py0000644000175000017510000000230300000000000022150 0ustar00useruserfrom stem.manual import Manual from stem.util import term try: print("Downloading tor's manual information, please wait...") manual = Manual.from_remote() print(" done\n") except IOError as exc: print(" unsuccessful (%s), using information provided with stem\n" % exc) manual = Manual.from_cache() # fall back to our bundled manual information print('Which tor configuration would you like to learn about? (press ctrl+c to quit)\n') try: while True: requested_option = raw_input('> ').strip() if requested_option: if requested_option in manual.config_options: option = manual.config_options[requested_option] print(term.format('%s %s' % (option.name, option.usage), term.Color.GREEN, term.Attr.BOLD)) print(term.format(option.summary, term.Color.GREEN)) # brief description provided by stem print(term.format('\nFull Description:\n', term.Color.GREEN, term.Attr.BOLD)) print(term.format(option.description + '\n', term.Color.GREEN)) else: print(term.format("Sorry, we don't have any information about %s. Are you sure it's an option?" % requested_option, term.Color.RED)) except KeyboardInterrupt: pass # user pressed ctrl+c ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/outdated_relays.py0000644000175000017510000000104100000000000020761 0ustar00useruserfrom stem.descriptor.remote import DescriptorDownloader from stem.version import Version downloader = DescriptorDownloader() count, with_contact = 0, 0 print("Checking for outdated relays...") print("") for desc in downloader.get_server_descriptors(): if desc.tor_version < Version('0.2.3.0'): count += 1 if desc.contact: print(' %-15s %s' % (desc.tor_version, desc.contact.decode("utf-8", "replace"))) with_contact += 1 print("") print("%i outdated relays found, %i had contact information" % (count, with_contact)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/persisting_a_consensus.py0000644000175000017510000000051000000000000022360 0ustar00useruserfrom stem.descriptor import DocumentHandler from stem.descriptor.remote import DescriptorDownloader downloader = DescriptorDownloader() consensus = downloader.get_consensus(document_handler = DocumentHandler.DOCUMENT).run()[0] with open('/tmp/descriptor_dump', 'w') as descriptor_file: descriptor_file.write(str(consensus)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/persisting_a_consensus_with_parse_file.py0000644000175000017510000000050000000000000025603 0ustar00useruserfrom stem.descriptor import DocumentHandler, parse_file consensus = next(parse_file( '/tmp/descriptor_dump', descriptor_type = 'network-status-consensus-3 1.0', document_handler = DocumentHandler.DOCUMENT, )) for fingerprint, relay in consensus.routers.items(): print("%s: %s" % (fingerprint, relay.nickname)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1578978826.0 stem-1.8.2/docs/_static/example/queue_listener.py0000644000175000017510000000072000000000000020625 0ustar00useruserimport queue import time from stem.control import EventType, Controller with Controller.from_port() as controller: controller.authenticate() start_time = time.time() event_queue = queue.Queue() controller.add_event_listener(lambda event: event_queue.put(event), EventType.BW) while time.time() - start_time < 2: event = event_queue.get() print('I got a BW event for %i bytes downloaded and %i bytes uploaded' % (event.read, event.written)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/read_with_parse_file.py0000644000175000017510000000031000000000000021726 0ustar00useruserfrom stem.descriptor import parse_file server_descriptors = parse_file('/tmp/descriptor_dump', descriptor_type = 'server-descriptor 1.0') for relay in server_descriptors: print(relay.fingerprint) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/reading_twitter.py0000644000175000017510000000503300000000000020771 0ustar00useruserimport binascii import hashlib import hmac import json import socket import time import urllib import urllib2 import socks # SockiPy module import stem.process SOCKS_PORT = 7000 TWITTER_API_URL = "https://api.twitter.com/1.1/statuses/user_timeline.json" CONSUMER_KEY = "" CONSUMER_SECRET = "" ACCESS_TOKEN = "" ACCESS_TOKEN_SECRET = "" HEADER_AUTH_KEYS = ['oauth_consumer_key', 'oauth_nonce', 'oauth_signature', 'oauth_signature_method', 'oauth_timestamp', 'oauth_token', 'oauth_version'] socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', SOCKS_PORT) socket.socket = socks.socksocket def oauth_signature(key_dict): fin_key = "" for key in sorted(key_dict.keys()): fin_key += key + "=" + key_dict[key] + "&" fin_key = fin_key[:-1] fin_key = 'GET' + "&" + urllib.quote(TWITTER_API_URL, '') + "&" + urllib.quote(fin_key, '') key = urllib.quote(CONSUMER_SECRET, '') + "&" + urllib.quote(ACCESS_TOKEN_SECRET, '') hashed = hmac.new(key, fin_key, hashlib.sha1) fin_key = binascii.b2a_base64(hashed.digest())[:-1] return urllib.quote(fin_key, '') def poll_twitter_feed(user_id, tweet_count): """ Polls Twitter for the tweets from a given user. """ key_dict = { 'oauth_consumer_key': urllib.quote(CONSUMER_KEY, ''), 'oauth_nonce': urllib.quote(hashlib.md5(str(time.time())).hexdigest(), ''), 'oauth_signature_method': urllib.quote("HMAC-SHA1", ''), 'oauth_timestamp': urllib.quote(str(int(time.time())), ''), 'oauth_token': urllib.quote(ACCESS_TOKEN, ''), 'oauth_version': urllib.quote('1.0', ''), } url_values = {'screen_name': user_id, 'count': str(tweet_count), 'include_rts': '1'} for key, value in url_values.items(): key_dict[key] = urllib.quote(value, '') key_dict['oauth_signature'] = oauth_signature(key_dict) header_auth = 'OAuth ' + ', '.join(['%s="%s"' % (key, key_dict[key]) for key in HEADER_AUTH_KEYS]) data = urllib.urlencode(url_values) api_request = urllib2.Request(TWITTER_API_URL + "?" + data, headers = {'Authorization': header_auth}) try: api_response = urllib2.urlopen(api_request).read() except: raise IOError("Unable to reach %s" % TWITTER_API_URL) return json.loads(api_response) tor_process = stem.process.launch_tor_with_config( config = { 'SocksPort': str(SOCKS_PORT), 'ExitNodes': '{ru}', }, ) try: for index, tweet in enumerate(poll_twitter_feed('ioerror', 3)): print("%i. %s" % (index + 1, tweet["created_at"])) print(tweet["text"]) print("") except IOError as exc: print(exc) finally: tor_process.kill() # stops tor ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/relay_connections.py0000755000175000017510000000763600000000000021332 0ustar00useruserimport argparse import collections import time import stem.connection import stem.util.system import stem.util.str_tools from stem.control import Listener from stem.util.connection import get_connections, port_usage, is_valid_ipv4_address HEADER_LINE = " {version} uptime: {uptime} flags: {flags}\n" DIV = '+%s+%s+%s+' % ('-' * 30, '-' * 6, '-' * 6) COLUMN = '| %-28s | %4s | %4s |' INBOUND_ORPORT = 'Inbound to our ORPort' INBOUND_DIRPORT = 'Inbound to our DirPort' INBOUND_CONTROLPORT = 'Inbound to our ControlPort' OUTBOUND_ORPORT = 'Outbound to a relay' OUTBOUND_EXIT = 'Outbound exit traffic' OUTBOUND_UNKNOWN = 'Outbound uncategorized' def main(): parser = argparse.ArgumentParser() parser.add_argument("--ctrlport", help="default: 9051 or 9151") parser.add_argument("--resolver", help="default: autodetected") args = parser.parse_args() control_port = int(args.ctrlport) if args.ctrlport else 'default' controller = stem.connection.connect(control_port = ('127.0.0.1', control_port)) if not controller: return desc = controller.get_network_status(default = None) pid = controller.get_pid() print(HEADER_LINE.format( version = str(controller.get_version()).split()[0], uptime = stem.util.str_tools.short_time_label(time.time() - stem.util.system.start_time(pid)), flags = ', '.join(desc.flags if desc else ['none']), )) policy = controller.get_exit_policy() relays = {} # address => [orports...] for desc in controller.get_network_statuses(): relays.setdefault(desc.address, []).append(desc.or_port) # categorize our connections categories = collections.OrderedDict(( (INBOUND_ORPORT, []), (INBOUND_DIRPORT, []), (INBOUND_CONTROLPORT, []), (OUTBOUND_ORPORT, []), (OUTBOUND_EXIT, []), (OUTBOUND_UNKNOWN, []), )) exit_connections = {} # port => [connections] for conn in get_connections(resolver = args.resolver, process_pid = pid): if conn.protocol == 'udp': continue if conn.local_port in controller.get_ports(Listener.OR, []): categories[INBOUND_ORPORT].append(conn) elif conn.local_port in controller.get_ports(Listener.DIR, []): categories[INBOUND_DIRPORT].append(conn) elif conn.local_port in controller.get_ports(Listener.CONTROL, []): categories[INBOUND_CONTROLPORT].append(conn) elif conn.remote_port in relays.get(conn.remote_address, []): categories[OUTBOUND_ORPORT].append(conn) elif policy.can_exit_to(conn.remote_address, conn.remote_port): categories[OUTBOUND_EXIT].append(conn) exit_connections.setdefault(conn.remote_port, []).append(conn) else: categories[OUTBOUND_UNKNOWN].append(conn) print(DIV) print(COLUMN % ('Type', 'IPv4', 'IPv6')) print(DIV) total_ipv4, total_ipv6 = 0, 0 for label, connections in categories.items(): if len(connections) == 0: continue ipv4_count = len([conn for conn in connections if is_valid_ipv4_address(conn.remote_address)]) ipv6_count = len(connections) - ipv4_count total_ipv4, total_ipv6 = total_ipv4 + ipv4_count, total_ipv6 + ipv6_count print(COLUMN % (label, ipv4_count, ipv6_count)) print(DIV) print(COLUMN % ('Total', total_ipv4, total_ipv6)) print(DIV) print('') if exit_connections: print(DIV) print(COLUMN % ('Exit Port', 'IPv4', 'IPv6')) print(DIV) total_ipv4, total_ipv6 = 0, 0 for port in sorted(exit_connections): connections = exit_connections[port] ipv4_count = len([conn for conn in connections if is_valid_ipv4_address(conn.remote_address)]) ipv6_count = len(connections) - ipv4_count total_ipv4, total_ipv6 = total_ipv4 + ipv4_count, total_ipv6 + ipv6_count usage = port_usage(port) label = '%s (%s)' % (port, usage) if usage else port print(COLUMN % (label, ipv4_count, ipv6_count)) print(DIV) print(COLUMN % ('Total', total_ipv4, total_ipv6)) print(DIV) print('') if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/resuming_ephemeral_hidden_service.py0000644000175000017510000000165200000000000024507 0ustar00useruserimport os from stem.control import Controller key_path = os.path.expanduser('~/my_service_key') with Controller.from_port() as controller: controller.authenticate() if not os.path.exists(key_path): service = controller.create_ephemeral_hidden_service({80: 5000}, await_publication = True) print("Started a new hidden service with the address of %s.onion" % service.service_id) with open(key_path, 'w') as key_file: key_file.write('%s:%s' % (service.private_key_type, service.private_key)) else: with open(key_path) as key_file: key_type, key_content = key_file.read().split(':', 1) service = controller.create_ephemeral_hidden_service({80: 5000}, key_type = key_type, key_content = key_content, await_publication = True) print("Resumed %s.onion" % service.service_id) raw_input('press any key to shut the service down...') controller.remove_ephemeral_hidden_service(service.service_id) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/running_hidden_service.py0000644000175000017510000000276300000000000022320 0ustar00useruserimport os import shutil from stem.control import Controller from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "

Hi Grandma!

" print(' * Connecting to tor') with Controller.from_port() as controller: controller.authenticate() # All hidden services have a directory on disk. Lets put ours in tor's data # directory. hidden_service_dir = os.path.join(controller.get_conf('DataDirectory', '/tmp'), 'hello_world') # Create a hidden service where visitors of port 80 get redirected to local # port 5000 (this is where Flask runs by default). print(" * Creating our hidden service in %s" % hidden_service_dir) result = controller.create_hidden_service(hidden_service_dir, 80, target_port = 5000) # The hostname is only available when we can read the hidden service # directory. This requires us to be running with the same user as tor. if result.hostname: print(" * Our service is available at %s, press ctrl+c to quit" % result.hostname) else: print(" * Unable to determine our service's hostname, probably due to being unable to read the hidden service directory") try: app.run() finally: # Shut down the hidden service and clean it off disk. Note that you *don't* # want to delete the hidden service directory if you'd like to have this # same *.onion address in the future. print(" * Shutting down our hidden service") controller.remove_hidden_service(hidden_service_dir) shutil.rmtree(hidden_service_dir) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/saving_and_loading_descriptors.py0000644000175000017510000000034600000000000024027 0ustar00useruserimport stem.descriptor.remote server_descriptors = stem.descriptor.remote.get_server_descriptors().run() with open('/tmp/descriptor_dump', 'wb') as descriptor_file: descriptor_file.write(''.join(map(str, server_descriptors))) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1578978826.0 stem-1.8.2/docs/_static/example/slow_listener.py0000644000175000017510000000072600000000000020473 0ustar00useruserimport time from stem.control import EventType, Controller with Controller.from_port() as controller: def slow_handler(event): age = time.time() - event.arrived_at unprocessed_count = controller._event_queue.qsize() print("processing a BW event that's %0.1f seconds old (%i more events are waiting)" % (age, unprocessed_count)) time.sleep(5) controller.authenticate() controller.add_event_listener(slow_handler, EventType.BW) time.sleep(10) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/tor_descriptors.py0000644000175000017510000000146300000000000021026 0ustar00useruserimport sys import stem.descriptor.remote from stem.util import str_tools # provides a mapping of observed bandwidth to the relay nicknames def get_bw_to_relay(): bw_to_relay = {} try: for desc in stem.descriptor.remote.get_server_descriptors().run(): if desc.exit_policy.is_exiting_allowed(): bw_to_relay.setdefault(desc.observed_bandwidth, []).append(desc.nickname) except Exception as exc: print("Unable to retrieve the server descriptors: %s" % exc) return bw_to_relay # prints the top fifteen relays bw_to_relay = get_bw_to_relay() count = 1 for bw_value in sorted(bw_to_relay.keys(), reverse = True): for nickname in bw_to_relay[bw_value]: print("%i. %s (%s/s)" % (count, nickname, str_tools.size_label(bw_value, 2))) count += 1 if count > 15: sys.exit() ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/utilities.py0000644000175000017510000000173200000000000017613 0ustar00useruserimport sys from stem.util.connection import get_connections, system_resolvers from stem.util.system import pid_by_name resolvers = system_resolvers() if not resolvers: print("Stem doesn't support any connection resolvers on our platform.") sys.exit(1) picked_resolver = resolvers[0] # lets just opt for the first print("Our platform supports connection resolution via: %s (picked %s)" % (', '.join(resolvers), picked_resolver)) tor_pids = pid_by_name('tor', multiple = True) if not tor_pids: print("Unable to get tor's pid. Is it running?") sys.exit(1) elif len(tor_pids) > 1: print("You're running %i instances of tor, picking the one with pid %i" % (len(tor_pids), tor_pids[0])) else: print("Tor is running with pid %i" % tor_pids[0]) print("\nConnections:\n") for conn in get_connections(picked_resolver, process_pid = tor_pids[0], process_name = 'tor'): print(" %s:%s => %s:%s" % (conn.local_address, conn.local_port, conn.remote_address, conn.remote_port)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/example/validate_descriptor_content.py0000644000175000017510000000027200000000000023357 0ustar00useruserfrom stem.descriptor import parse_file for desc in parse_file('/home/atagar/.tor/cached-consensus', validate = True): print('found relay %s (%s)' % (desc.nickname, desc.fingerprint)) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/votes_by_bandwidth_authorities.py0000644000175000017510000000164300000000000024077 0ustar00useruserimport stem.descriptor.remote import stem.directory # request votes from all the bandwidth authorities queries = {} downloader = stem.descriptor.remote.DescriptorDownloader() for authority in stem.directory.Authority.from_cache().values(): queries[authority.nickname] = downloader.query( '/tor/status-vote/current/authority', endpoints = [(authority.address, authority.dir_port)], ) for authority_name, query in queries.items(): try: print("Getting %s's vote from %s:" % (authority_name, query.download_url)) measured, unmeasured = 0, 0 for desc in query.run(): if desc.measured: measured += 1 else: unmeasured += 1 if measured == 0: print(' %s is not a bandwidth authority' % authority_name) else: print(' %i measured entries and %i unmeasured' % (measured, unmeasured)) except Exception as exc: print(" failed to get the vote (%s)" % exc) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/example/words_with.py0000644000175000017510000000214300000000000017766 0ustar00useruserimport itertools import re from stem.util import term from stem.util.term import Attr, Color def get_words_with(target, attr): """ Provides words with the given substring highlighted within it. :param str target: substring to match against :param tuple attr: terminal formatting to highlight the match with :returns: **iterable** with words containing that substring """ word_matcher = re.compile('(.*)(%s)(.*)' % target, re.I) with open('/etc/dictionaries-common/words') as dictionary_file: for word in dictionary_file: match = word_matcher.match(word) if match: yield ''.join(( match.group(1), term.format(match.group(2), *attr), match.group(3), )) if __name__ == '__main__': target = raw_input("What substring would you like to look for? We'll get words containing it: ") attr = (Attr.BOLD, Color.YELLOW) print("Words with '%s' include...\n" % term.format(target, *attr)) for words in itertools.izip_longest(*(get_words_with(target, attr),) * 4): print('%-30s%-30s%-30s%-30s' % tuple([w if w else '' for w in words])) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/exit_map.png0000644000175000017510000003012300000000000016103 0ustar00useruserPNG  IHDR>asRGBbKGD pHYsw{tIME+5*,< IDATxw|UǿK2$J$$!Ы4A.uUWEew]׶ZuE:(#Jz/dz}ɐI#}>瓙'p8 ?L`!"(0((5Lbb"} \ު/t&L@pfkjQPPHII U* F7aLF#:mu5*-:Zm7)z )7an}X ,$$QQDN=7~RT*=z|||FTH$j-mbA*P]]MaQeq9*+VWSJ[EyEUTVVp8pO'U};ni &;=WQQDGwg Fׅeex:@.# ՈA~II)gϝj"77]FyEv# xέt$/!%o@Dn-^lx뵗kv^D%Պ@&y|Bbp88|;`͖L``wΟ,?7th:?LJo&II##n/L&s~{SXg tY K'<$Zgvc7Hɝч`۱X,mIŋHANߙ1fKxܺ;ٺ+bE,bgh7f̨._o4iG#V:cFбYy J:7i&3υVmƍ2!bx=w2/]`ͪt E"͗_n*rs=Uԇl2W$XJRBo$ u6͛Xb*ʙ=Aʋ Q2eTF~FiI1[6mӉdBo01Lt_V^9l6zZ:^E YgvCf!p:[%eB5Q7r &SUK2aDTR!yLYQkawp:cOd$4HLK  H MN" HmGSJff  zlvK(J30Go]ZjCS(-+ChgmQHO:p8a0(/gϫЄcZ=r`vq%Jʊ  2#29I&{NnFݔ qFJ%NdL"oLeE91=ӉhffRIQt7j x ,,Lvۭ3l^ T-"(f"8 :c "!h:iuRh}">UUU̓]yb|||ʏAiҒRlVOH䳏?w?Ju}1;eKO\L4q17ރG=F`T*onx5Ē|Lj8R#S(H쟊` iEbě:É{ bilX~ _y 0H%7ڻHtΟ;lBJfl'{('@DiI1QݣyɧYL~E/c~A!WGVTj?j4ɑM!;{wF֢ 㤧gpxVd_b4!1jUl]rJ  G}V˗_,ښZzp'$G+/6{~{?l^E_~AHKʀAq:FRe[埨8Azqfaqi:d=|ru@޽ch9x}U9: b6j,1{7AGYi ǎaĨ112b(;wtjz X4iL__+G)aFWmtaDtOL,$_ZQ$?huHmv#9y&~x<XL&ӁOMMm-O>ZMBbgϜAbmHMKT佳r-=Z;TR\T̞=1j N#[$z(Qg|"~F 'PUVJXd4FXS1[$cKNHH(lݸaZ]P|" AugN3vDf̺~)ٹ}+23`YCK2Jelfp`V._JTDG*J|TTP{^I1aw4:qLXT49PUV`J[I܂BO GxŹM~X,WLL +$'9e6 CK#2y+#x -J~~~/&L`QhYVjkk)˽WͱG~, /pJ H;Q(|0j5a̸+#WXm 71vMd ݻؗke?@(Jdr9UU%OW.orJPNgXa#G *5Ç mQiR(ut82,)&s/H$nBd;TӍ#ƢRQX*cMhB0BBtD,a]pI>p>='j뮝2r84ׂKn.r Vʏ;-55t4z{dyJ?Qv'ɹtѣFQRGZeߣT_Y]-Ξ/0FcVBB>iZLY41lܰYY9c`"wgr,kIfseRK$XVf+Hخtv< 77{S m2-EDuGGXdwv[ 5'Bcʊ\+&QOVːTA4(JjkٻWbbzDYi!! Y cMSH}X4[,B/fR^&CR/h4zE r(X,ZvXq5EB!49y9vVHglX,Fp8 Js([n ];`@Z vnX* FDRySfɍUHRpsX፧A"2Ban*ԭY fPDx}fq>J9v3b4R~  KϏs>{l"#F^7q*++3fts$?-[QYUNK~Oە*7ycX?xiCq֭\F|2*KKڬf2&͍2-)t >#G0rp֮^yL̽J=Og&@ @^=B%mkWL N<9 JMxL IlƉ'9qB8bINKRb"?p+ǟکTɎ'*2 7?ՙ *蛔 B!}7֮ɠ!LMᗕ3ad.\u_y)aiCHLח~I<>6|+W؜ӏ?HIqI pLvדADEFu&N2; )Znj$$8\j:{^-[ټe׵B{Ht:OOO4}PHBB6ZT\LAANO!^?P&_'y>ffY5qF Mo0:z9|86NaQ1E.fѷMEE%@ &MKsP `H۷]ɨWgTWMu6'B:F Moxq8qƭT* ºM[7))-#+)pPyλhh4ij h2d2;Zp3@tF&L@"i'JfJL2)7:rHGxXgc{SZVΩӧ9f}jC@2}s߽=SbMM FzpNǁNCu͊Mſdƍ헵)ɍ(y,IODzj!ZwY.R\Rڂ׉VEz++%?q`+F~ Ҽv-JR 9qUnK׺Rقw^M4 J3g).)O +-)lV#&@D"!A"h{zZ_9{\Dpf͘o&߄9DEFЭ[8OV+gΓfP CG!OkszW=YW_{ç$8Xq=4]Am̃/++gٞΗ竅y+v~Iiy}jkkIM&ʂO?oS[V 6m{xw1sm "YJ%CHMWo;9#(@߾I9[>ru/ΥgtV?xX( '7Q\,]w|LTd$ǏP<=U|ߙ%Є6Xvm- λ:|{2}Y6[_Hpgƞ}G~%ήtBB=eYl6;zXLiXjzL︛bϹ;o# +%ofzzrGO]"d2לo^D"E,yY=IVpd4qں@@\J2m.^PSPXXx Lh%P*>c'cIM>;_|A".wuJ3O<֬Y( ~iCW7!k{Z*wKTTںY4L%x}PVVfw+t)`@Rb\)buQHRgMԺBٿQpK=Gr؉|".\̹,~X"&A#b+A)vpTAJ![}h䉧?:h@Zeo' ״KX(ڤzc/,h2_/ܕ}EVJ@U}5tkMp[}[l(5cS''X\Az'yCX&]b3ؽ&GC~a!Sv;o"A Bڮ$EtC/: @pTTkjA԰/\sGJ2Op"K5Z2x]T kmS^vMK;vK"4$iӊSuZfym 6oيetvdR̈́qlfi3f;p"7Ota6f&G(ju:>^6cɞ"؛6oW^kW[ΟWئN!!!z6T*mvrŶ7;O%\ fҲ&lrՃ~S5%9=t~_ſ<GmA+ 6&xi-u[>v4ٱq;y-;v5:p::W?]3gzˮ%h׋ڶp8v\xkI6$kKNFRQ[㉹/s/zغ4aC5,j!{f MKM8yyy9W\Sj19kxx{ M00bC>@Qq1YV7'oRR+,,0eZls f9yS&>e):yyͻaD/ĚU+r~bc'<PY噗^`0 =FMm-W;M׶{;;" 7qӤ)b2Z]Kga~y!Gh/gGw ԅWToR]S÷|զ\WXF P¸ch4X,Ffݽno&uvNM+(,b.gr`vKWx[ԡV7ȬqQ{mm=23RTTtUk x?n,NڀgtុbOKfÖmlڶԁIGTD,]S駞$vK[?i3:{!t՛v+h2wnlٸe;`w;3oճ9F*$צBOe:"^o @w5qn7pSkuYsAIIDAT9zh?g}Lx9?xGFF_?CP69g7h-q[ZTp1Vaæ, E_ɨ#Z|p)ٗ.hT~w& G~w/{MpbeQ>>Ѣ޽{1,#?Ѷ)aΛͭ1Ǝ/m2J`4zyWt'oBƏK߾I =mk}STT!C=v粲rX%? ,zȕh!`РobZ$???.aIMr-v;ꙘV,cApo./]"$$+Zk \+}5ag6$&Xs2w71տ&ZRZ.E'_ wq;ɓ(--ljK? %5u+/HEETVUj%`ٚ_{_cypݞm}RPᠼ|QP*,^5̸;vю:د&fN2Gy;ft`Vњ߄cL9u %۴O'M@JSgyrBC1|x$@kve˸xR0(JRtK9µזT +ēqR:,N^W}Z}Ք>rRN˽77dߑu 6MS2rdrb{`^hN 9w{).n7y+Vqmz`C\\섃t:9~0}"x0[#2e6 뵾l6{6(HRb1RTTL޽1}aaPu9pMb-d2VճܦB$c1=v8jLp:Hyә7w.!!p5 f̺ݎhi7 j(ڊ.6ri:|$} 6Vyr B;]W r:TUV#&^G"(}nPGKKK,;za4x~W[fm(Wdg0a+d46i&vnʚU+Gtt N "1/:]- 5m\}҉t:J%&j>r4XHϘS'/g[qpwl{gn^(ޭȷ%Z-RP`@bҟE,3lhO*lp-t8xWy7\H$jkjvMn:]DKY0i {ᎯVnh|rӼ] "v+or94N|y4AAlZ ?w}C󥕕ۂ ֯]ù3S9z,Sx~s]b6 H}e֬Zä́]x3gaXQ(Ebkn^^!bgQ+}5eH~&=7ȠSZZ~̛ <ԢxHhuxQit:6[KΥK<TkX$l1c-bz咈:> {460Y:}*\?ZU۳F(MAc ݾ'5H]=I1Cppd{X0G88PddHPL&A~͸Nvr7lX 8-c(aa,Gf̺! Iŋh3~j?`5H$-&& HL*%00Pa6VWW,rM%#~wt:+G+,F\iG |`~STX-x>;MHH5Q*}(*,D$!U-]o6X<\BvLʥK d:<,i> zL &=So4w:N+Ⱥͥ|kPVGM^l߲ےYgBՆprrhh.ޗO#–8|p?g"GOtXEF" 9}"zuh==t(N>O׃ Sٍl]Ȗd&Ҋ* %"JG\' 8$*lV&={MtWT+V2v=vl.30_}~1Æ "<475[,WPUVoD"e%D"B ZZj_/*__T*5yڃsgU2p116nڬ_X*%[8QXPTm2aXXlVW!ePH"F$!"Db{0BCC FѴz.no޵dp4`qf>]8j:=յ: &:ŊP(F,"%bb1-2'AS89}iݭb12'Uſ{yNs>wo$P(DBtmy͚Vŋt:W\·zA9yޜ<.z]M#ieټ7x=|=,6ۼ'N=w_ WT(Q*Q|FDxAXDNv=1LQ NXɖ[5׳}Mر}pI$bRR!___I|}JXH~*_|}v "y&a~;uKtC$@} jsA@/6&&M u>@(IdHeR2rurr_%kWt]'!@ bQ\RBX6oO%;;,IvI: WbhoM U׾P  !DZH܇X,B"ňEb$3RBR/Jruo DrC Ny( ~Ϗl۾={)..>疸nAoX016 +ڙ;/$ 7i\#J]5y^  p|Ϻ6r KX=p>UD 8J_[ݤsuC>58_G0::rW>r\.t ]BЅ.t ]BЅ.t ]BЅ.t _"_Qovk/ES%W7Ϧg^WK3"9,@%X7dw631})o_m4#}|vZ.֙˂1,v;Ul>WKYR1 bnj6ōrW+0W/Ȧz11&x:ICρ%c@x؄,#'RE Wa)Q򮁱<]V,QԮ"B.}#ISŠSŞ}HN(eВp$0Sh 7qP)HڔЁ)Lay5cJu7~m)D3Y8ؗfqшb+0Gؓ}s5O&k2n!KG[]l*J-Ǣh,MgNx/Y(t iFTN.m0W gȇ,@$fo|  8IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/haiku.css_t0000644000175000017510000001773500000000000015743 0ustar00useruser/* * haiku.css_t * ~~~~~~~~~~~ * * Sphinx stylesheet -- haiku theme. * * Adapted from http://haiku-os.org/docs/Haiku-doc.css. * Original copyright message: * * Copyright 2008-2009, Haiku. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Francois Revol * Stephan Assmus * Braden Ewing * Humdinger * * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @import url("basic.css"); html { margin: 0px; padding: 0px; background: #FFF url(bg-page.png) top left repeat-x; } body { line-height: 1.5; margin: auto; padding: 0px; font-family: "DejaVu Sans", Arial, Helvetica, sans-serif; min-width: 59em; max-width: 70em; color: {{ theme_textcolor }}; } div.footer { padding: 8px; font-size: 11px; text-align: center; letter-spacing: 0.5px; } /* link colors and text decoration */ a:link { font-weight: bold; text-decoration: none; color: {{ theme_linkcolor }}; } a:visited { font-weight: bold; text-decoration: none; color: {{ theme_visitedlinkcolor }}; } a:hover, a:active { text-decoration: underline; color: {{ theme_hoverlinkcolor }}; } /* Some headers act as anchors, don't give them a hover effect */ h1 a:hover, a:active { text-decoration: none; color: {{ theme_headingcolor }}; } h2 a:hover, a:active { text-decoration: none; color: {{ theme_headingcolor }}; } h3 a:hover, a:active { text-decoration: none; color: {{ theme_headingcolor }}; } h4 a:hover, a:active { text-decoration: none; color: {{ theme_headingcolor }}; } a.headerlink { color: #a7ce38; padding-left: 5px; } a.headerlink:hover { color: #a7ce38; } /* basic text elements */ div.content { margin-top: 20px; margin-left: 40px; margin-right: 40px; margin-bottom: 50px; font-size: 0.9em; } /* heading and navigation */ div.header { position: relative; left: 0px; top: 0px; height: 85px; /* background: #eeeeee; */ padding: 0 40px; } div.header h1 { font-size: 1.6em; font-weight: normal; letter-spacing: 1px; color: {{ theme_headingcolor }}; border: 0; margin: 0; padding-top: 15px; } div.header h1 a { font-weight: normal; color: {{ theme_headingcolor }}; } div.header h2 { font-size: 1.3em; font-weight: normal; letter-spacing: 1px; text-transform: uppercase; color: #aaa; border: 0; margin-top: -3px; padding: 0; } div.header img.rightlogo { float: right; } div.title { font-size: 1.3em; font-weight: bold; color: {{ theme_headingcolor }}; border-bottom: dotted thin #e0e0e0; margin-bottom: 25px; } div.topnav { /* background: #e0e0e0; */ } div.topnav p { margin-top: 0; margin-left: 40px; margin-right: 40px; margin-bottom: 0px; font-size: 0.8em; } div.bottomnav { background: #eeeeee; } div.bottomnav p { margin-right: 40px; font-size: 0.8em; } a.uplink { font-weight: normal; } /* contents box */ table.index { margin: 0px 0px 30px 30px; padding: 1px; border-width: 1px; border-style: dotted; border-color: #e0e0e0; } table.index tr.heading { background-color: #e0e0e0; text-align: center; font-weight: bold; font-size: 1.1em; } table.index tr.index { background-color: #eeeeee; } table.index td { padding: 5px 20px; } table.index a:link, table.index a:visited { font-weight: normal; text-decoration: none; color: {{ theme_linkcolor }}; } table.index a:hover, table.index a:active { text-decoration: underline; color: {{ theme_hoverlinkcolor }}; } /* Haiku User Guide styles and layout */ /* Rounded corner boxes */ /* Common declarations */ div.admonition { -webkit-border-radius: 10px; -khtml-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; border-style: dotted; border-width: thin; border-color: #dcdcdc; padding: 10px 15px 10px 15px; margin-bottom: 15px; margin-top: 15px; } div.note { padding: 10px 15px 10px 80px; background: #e4ffde url(alert_info_32.png) 15px 15px no-repeat; min-height: 42px; } div.warning { padding: 10px 15px 10px 80px; background: #fffbc6 url(alert_warning_32.png) 15px 15px no-repeat; min-height: 42px; } div.seealso { background: #e4ffde; } /* More layout and styles */ h1 { font-size: 1.3em; font-weight: bold; color: {{ theme_headingcolor }}; border-bottom: dotted thin #e0e0e0; margin-top: 30px; } h2 { font-size: 1.2em; font-weight: normal; color: {{ theme_headingcolor }}; border-bottom: dotted thin #e0e0e0; margin-top: 30px; } h3 { font-size: 1.1em; font-weight: normal; color: {{ theme_headingcolor }}; margin-top: 30px; } h4 { font-size: 1.0em; font-weight: normal; color: {{ theme_headingcolor }}; margin-top: 30px; } p { text-align: justify; } p.last { margin-bottom: 0; } ol { padding-left: 20px; } ul { padding-left: 5px; margin-top: 3px; } li { line-height: 1.3; } div.content li { -moz-background-clip:border; -moz-background-inline-policy:continuous; -moz-background-origin:padding; background: transparent url(bullet_orange.png) no-repeat scroll left 0.45em; list-style-image: none; list-style-type: none; padding: 0 0 0 1.666em; margin-bottom: 3px; } td { vertical-align: top; } tt { background-color: #e2e2e2; font-size: 1.0em; font-family: monospace; } pre { border-color: #0c3762; border-style: dotted; border-width: thin; margin: 0 0 12px 0; padding: 0.8em; background-color: #f0f0f0; } hr { border-top: 1px solid #ccc; border-bottom: 0; border-right: 0; border-left: 0; margin-bottom: 10px; margin-top: 20px; } /* printer only pretty stuff */ @media print { .noprint { display: none; } /* for acronyms we want their definitions inlined at print time */ acronym[title]:after { font-size: small; content: " (" attr(title) ")"; font-style: italic; } /* and not have mozilla dotted underline */ acronym { border: none; } div.topnav, div.bottomnav, div.header, table.index { display: none; } div.content { margin: 0px; padding: 0px; } html { background: #FFF; } } .viewcode-back { font-family: "DejaVu Sans", Arial, Helvetica, sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; margin: -1px -12px; padding: 0 12px; } /* Navbar */ #navbar { list-style: none; margin: 0; padding: 0; float: left; position: relative; } #navbar li { float: left; position: relative; } /* top navbar items */ #navbar li a { float: left; display: block; text-decoration: none; color: #666; font-weight: normal; text-indent: 10px; width: 130px; font-size: 0.9em; } #navbar li:hover a, #navbar li a:hover { font-weight: normal; background: #999; color: #fff; } /* start child items as invisible, but make them visible on hover */ #navbar ul { display: none; } #navbar li:hover ul { display: block; } /* attributes for child navbar items */ #navbar ul { float: none; position: absolute; list-style: none; margin: 0; padding: 0; top: 1.1em; left: 0; } #navbar ul li { float: none; clear: none; margin: 0; padding: 0; width: auto; color: #666; } #navbar li:hover ul li a, #navbar ul li { font-weight: normal; text-indent: 5px; line-height: 200%; display: block; padding: 0 0 0 0; float: none; color: #666; background-color: #e0e0e0; } #navbar li:hover ul li a:hover, #navbar ul li a:hover { font-weight: normal; text-indent: 5px; background-color: #c1c1c1; color: #000; } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/hidden_service.png0000644000175000017510000006140400000000000017256 0ustar00useruserPNG  IHDRap(sBITOtEXtSoftwaregnome-screenshot> IDATxu\6 J(v+&vϮg݅3QlZ&~,"~~?|޹sgn PNH՚ 񻐑we_LHHɊO 񻐟V@ #P سG5s?H(CgIH ޽9|=(F\#"N\irq}BiVvAؚzM;4ČWm ?D @(UzaMqVi/ H$c9h++Ku .= F\u Ό"Q(=Y3Wcv\)Ggs ;9;L[$ XyX'[#i!wф{#6i<EiۧV8s>%N3@ @EO*Ly)IPrx h)AHIGzuT l-:l]ܾ{B3c]5B$ >J$ZS,Q#K‘vZL\&$MWrnH{o$pΓǮnkQiܩמ\(U;HP؏c@a[(Ǯ=6ls1 YSGu>8Ł" ֬,b21B K=b ˢK-%74Ǡ!W͘J0khT!y7[ OLm+ ҆GdLVhغYTj(5@ ҽɒe#_U^^U i?'["eyCBY+RrdJ l8j 33cPiSp@ }O=cG}1 33ҹ/]@!Ŕv(G4l;嫩mj[:U`ԶSt s$#)Y' [v/b* rEA`gС=>p7Ќ" > б~z&:od {.< KI$Ӿ!Ք,=7YE;r+0<$$0#@8Zuw,aejH;u~CVS.*dk ɠ"dqK@ P:]A!k܂H#wC¿dK8Fnۖ4SRĸ+ròIiA պ͞N[R,G;5B9pkiT$wx/sˉBQ2PzvB_da~"`Wl=]6Qz@ *rq$hQ2ߦ@6Z@R 2nl@aj[n?O?} р)R@ K*r*$֞B4G ďN^SU|N~fқ뻑D @  @ bD B1G"jH"x'6{eOZOuAH#w2x<ɥ* %}$s 翕y Q_Tݱx)MCM\cj>f&U:TY9a*ι|?߃/z\H@)Wk& :M&uW+WN0%QT}cGߖxGLp5Ssmk ð0_z!Fo;huVJ*6ۛZsVj`9J*{/{X@! v:@L*i":6NŸ8Qdı7WlVO uMzsuugcTΫ# n PѭVJjn*g.bn^?:O)y{nxOKV'9ì]|P`=i@ UPZ('@ 0o3XTA PyO`(,M4]upiƖ#+'sAJ:t΃q6cT - ;GgwY|"@ÿCf=Y΢1^1@`dyG& <=ϖ_h{6]g*+laWLa. J3W. S7ol!۹&FP*ʴ_i`ejְͯuo'^|n;ov1|s#SM1o]8_a]v\&)===bO 5槓 'âf*tfU @z?J>+E=rkms3=^Ef%I1c7__xlžP~؛3Ndjr؝2 ?SPϏ?ŻMhS UʳA,R¿[`i1> a-BϺF׌=fƫo(8j>Q I0墨TkGW\uGUoUYđ+Kl7}ΐ}AGҒ{CmͮYL:wځ5Z؛[:uui'*@`7_H$=7r,-\eQ8O/gJzz .2Y4k')4ś4BUu7gr[ ^PT2k^ێ[y0i"GA;7iagc~Q'= gjԲ鏅@eW=MZWۨz[\]uY&>jΞA nm:`eg9vtvt8c֋W29O=}ˑv.zRR54Qz-UVUbf+]M=Ɯ>\w#ĿGj&XuQط̶ J%:wwHgÓ}!SY :zsWf,uzt%ӉvzZDZ؄sAX~З yv>)~ h@u*t!G7];v5;+X1ڠKܛF摍ejQO@<6u_HZ$)ί\:z?'(ADMcd?;ʳLXɋe2id#e ( 3Y/ţɠ8jPVJo=m](ZR~j2kZ89CY'sL!Ք6!cTҐ'5K~+[2OS4ɞOw*@ 1X%Rq&nRnp!dO'ީ{\R0֨:A緟X6ǏPnV5+k@|$νimtЬ  n'3%l}d`"J\U:mzw3T\ʢ Y/Rש;%4WH%((՚S#KQʔʷ*"8OImD"{U0x9]5SkR82':8aIEIϩmN!iqGc+&cj0 OVw{8ssօCvQTX6kB3sYvl9tMj޹jNV555]0Q*W`cz%gD2cc 6i E9gU3I'D~|rzՒyN]8L%:( &i}ͽ_7U4#H]qi/zkߣEqւ)MoU٫5^'^&F횻%zXg^])@{bp,YǞ<k'h"`i߮뎼aGNϘakfԴ6THoh%\POX 49ٲ?,pQu\.3Ϝ0-.6_U@4M۽@SSSӰ~ @j/fZd2H%0|u&N{J#@Qh\V~LO_̘MV:]DşUL{r%a4QB0K/Ry^46NY.7|nSRi)P4.K=iiΏfZw` hq'\,⇲vݻwW ={+P>Y) mn-;/ܖ|,k۳i[ /5 Ҋr~u9j`;Ƈ>w4Hpd @$_4%;iġ&wu5|]S~.@L\_j-&@b/Ĕ :͹LąӆtoܭEK7O,,(Nz|>WÑK#ܷg#nmR*~ |oI>Y}7ٿ}s]+d{`b+m>ooD)ȳkAM,:U\^NҖ;X2(yGS>+Oa$rКpwfٲe *8hРe˖HU# ;M_v l7əsnwnCCNu2SVj ?譽iTrw&,m7輷};3+e1j&^I!&{[#FLex1o~sk˻%CVUȤrn7A/xfm4Rr~4cYzOtU} ;)ƝXrӓ=^14,٥9ja.p?|6ˆҐ]{ <}~b_}R3+r/\4e\5e\W Ž~^ V e ߻}g`m,~:._V^r%S7*aLZWY,֔S0 ۻo„T@6}ĉ!C|I&'N9J_J̛٨3[DC]Tm, 7+5!CE'+(b 8Ʋ<k8{p+i:dV!e߷GuȌgF|;yىyRW-|9n_sJ$obhǞ+>7,v Z,0bǙ]GxRXf-,׶,ȭ^VPt>I\wijSMO Q_A!PS0˸AnpD. 7..οm߇ak/vt[LJ((]x1@AK5y )ɒ,U@--UŀaJ7=bcT媼jI~Ca˖/^۶o-,!Ŀ==/V15;u @ϥO dod:[k8ػZ tV/w몃0[(OJD%|9u\5pRJ_M^̠/9ZH29-l5Lȱp|?rTFE0w5o{/ͼv注J/ŅIlХH$%8ttM͚ZБ~!`nhǯJoiKW菤d͎^rE/tBD ( #рeaH|",%#+GH R}h 6cǻL6ţ"}}x;Ѡ&ecѾ5?wHME^^#H9-3 IDATöf0q9e:YbȀ. lK0 d{.pWF}MGx0qE87N‰ɲۼ6,ۗ'wJGt௝W^&ļs'Lf\ߐU%!ybW1w\l=v a⹠/waou0a2A[{LIY]g-<:*.ƩkC&LiVڮf2#TP>ZUO}dm~(nַimQz7srtX2\J9MD>I>\psm 1<4C@'3#&_Q2,qE9.<`޲wºCia<`9-k4.Tu:o{xnw^W7gf<ɷ.۶]w*=3}c] ahTO]{>s{3p+Κ\o%Ͼ3UH77srxP40qonigfџyܲ I" a< ̓֨˼Ig.t)ʭ"K[B *9cAGY#?0჏ܹsKmټv*GFD\~u"j!ں͍LP0˅µk7,_F gΜyAL=chY~vzA'V|>r#ϟOʤ>|_Ze+$7qQs4ǿ1wKi{>'Vhɺ$GE &(\_z~Ymm:[r_T_ KuP?|՛0 ϯ{5#"_Zcffkll# w͛7Wk@p:u}v333???Tѧej.]C◃@nnV@  mmm4 @ bD B1G"#P @(}Z @ ~;P?@  @ bD B1/R ΝbR7gq+#fWg"ڪHC?tم]B}+/_gҫW/wɚgQVBM }ٻz֭*rRRӌ \,)2IBt6G}Ą`ԉ‘#G։(p9gP]*4krXuӂZ/?}۫E# eT4 [_4ˏP(99E(Z[իۯ]oꨕ_$viosy+ԡbhhx]AwFu˩A Nx_WWs榻vo5XɩgkTA\5wF?B^? (}ÿ4]T$nMO޹p>fcxq FBM1M (Gr/%Hd2^Q[T \.'g8< kzv&\dO.v,f]ը42*Yb}ko1 i& &7fՍ1%D}͞mlLx~#&:͉1jLIJnŦ6mdMMMB"d2Y-E= GsYYVLCqƞ]~ X#:::矾occxfff~~>I*$ڻgBZ0,,4,,T~,ܻgWttTŴG"*%33Ĥ^zu.NSb7tQ̭g^68i˩}$ %i)EKe2R@PlD~.AXF( Tp!̘ݵĩӕԌlMwvjjb.ӵSMXLƏvT08`04xlϋV_4qsoE?| ZMMM$;q85k>s沿O?y8N8$H#ʜ{zczt^<ş 'V],`\.wr %53餮"H,+T 1֖M·aM[.?lʪk[%} ?̼Jsq<#ݬzUJ_b"H711" :[[\-ci|>_-(Zss"2 (2(n~ρLZiSk>hv8H߼߻[XxԀ"ԍw\ڙE$ADFRO^azPWɪYT>IHcqbF@f?94*2C~iZ*q BlԪ"4xw@JXwhA Zkaٲ޾|hWUv4d2\mM!<[ Cn[HLNBa|"ْc ֶ;Yg얭nc&(+ 0d`|rmKm#WvCnnmT-&ˆ7рtMmtنbMnWn]Tuɺq硼M8uq`P#ydhצ}Tj!AP(& mbӅV:4d*k|AWgm +DgLxH@?-WDQS i߾)k1 IU̘$I>3ʷIR4MK2DDDXҪdXh ߓh k7=3ӥE+K9[Z}聑y9c+`0SrX1ښ\-< WOqMɩ6n"wٸqKQZHΫv̋>~WkV~Y3[\WEJ*UZҨ}[M6\- glYH͕dAQTTdo_cɧ׾b1 M^9)Ihx2Z3A9Jk'dYWi"OlgJr e4j &i`#C#v݇cXn웜gO?7rr'{5N/%2Q 8FJB|BYܑ.]$!q]N!ט`SLyZ=[1 Ønc,@LEyba"R,$%64b"jmW;Ò76Zpi)AΝҪV4MWEJe?՛9HG{d*v ()p~Y_B&`f ~+|Cb?e{TֽimQEE>1FK'o$vn!bvvĤ؏V`-:]MJϷg4xHϳ_ܙ>5b(|~m4<ʻI։ɗFwầ+c'S%EaL.Oz-Շ`0 X,VGbx<| vN+M9rؒ?tmjz&@.=ܹ@G4M{Vq@"%R f\KW0 b d %F& ˔:aFL^ mܸq`+6MbM^xI& O{!_~`v׆*J~ZW^_r_ DI\-؞~wE7]<~E; N\]]-?{uϸ\XʏB!Cv-۵js>UPh#Jd¿9&nǭSL!n NGg{0qy.>=ܛD zZ\|**Z~IZui}Gvрav4H՛v($IZaa-(%&'l]]2q]p4֖Jx-9A--}fQBBB`A$Mi9w=T!_MM 5'_{iɂg}?s'0hiӘ@PNEׯT7bi1ޫNSPxVyM C?uum$Snț}-;ѥvIVqaE/] ,m;t=v>^ Ge1m:{45eI=-ܲÌ`a[No'nɱ5W6ٻ{,{z@~X@q_ou| WYs~^ǚm^ސ`7Ϯ-֦i 5Z3IIIIII*唔DYIaǏOIIt*F/P+kw!zj`DFVwILu6=9/b~ĦVXF}䬮 gy!gSqF Y&-;ut-(W=3Գ= Av8vn]M7ܡBi&_^FZLj/޷@< dٻ!t:y&nZr=D\.'3+#''[Yjnf^ŵo$??_5GEL)AYM cͭzۘjeLڸ~|Zֆ+p̶hx<शe4i0w{W! ðݻw>\ҶmݻwW:T#54SssRFIe1KUoJ$I$q$bj yfPZ$O>_(' XBf1"9-)LR H6hc}>PSSqmfyIq#Ҙ_< ]~kѢEKW͛W%Zfͫ(SLvwRmϮ>j<Ր~^RK()}^]SJm| 4K~3t*^m.L}<v?v?z.JXnVf\tg-3?E Мz4r" l$_a\[%Iւwads`54)v M8l6ik橩qqq)r&&& 6}5wwk׮٪4KFPa _r=P:AQvJ e0K&(6Ync@gg>]ևdi$[j2pQvbtL\B\ćk^u1qhTa_?1f:mcXg MԄəL@fY ȎːeX\ Z%$ɂ2) i##.kԍwҵcw!J8IPb ?XFC.{hc^I]?V4OV12jb.%| ^DYHtr;T6}AiӦOV}1WD%;wx uo pIލ]8EbmK JGD~9ybI!N+͐y3"iiNojBPSSGԞ=}pwx!~Ҫԃ4)V:_7WݼyͭY%Ri{nT^ ,:*[(IKeܘwMƜvW=m٧V!hɯca"R״lb иyfm1uً~޿߫'t."b~\Ռxl%5obdG /[pW2mM022+ZQel}n3fӧ|\H޲pP]t`h^~_$Ηtt\u^5Z(BFlý|t_g,4X%zp@1)eWe] unyoǞcی*\9Xfzj,"S'qU;iBʥ)An>x9"HoW@ӴDF} tj67+$b U^$3CSOI2 HJe1<Yzflkfa VDjj ZZZϟ>}SN%fLdP\v hʟ%MLY!1 UqP-|jPw 1 H z|1bR&H MJ(RJ:7;#ӺN=}V`I!_kf//ix> dB+|Wq|\Ywpu=u(* UCe=X0b}—*҄ҦshoL er뵶K2T\zlw9*NR7'SDŽ%;/tccdQ1D̓9VkdY/k I L}=eǢy=:AP,t*KMd2uˡzo`$d}y@) >rG|z4w b{0 %tZm[ܝibꌻMK+CZ&|e21>q)i, SR_eR,yEj<Ҙ|Sm:#:'ˎI'h`XAXe<}޺M;.^ɓ0s<<}޺M;/^y'MP5D)fjs9 2?D<:GS-4M3O? IDATh H`4 LPSxF&kFwpFLMJHB[.]Wc&ErEEE%hDbddhjRɓB <(/==]ۘ}Q<)K ˑjssS2 Ф"DK  >%w:\j>갶&g)oŋ)255~:Ʃ׹g4- ?d'_*qg[g}R~^BIZv$Sd\5Ǡ_GDž{pɟCx0逕#8njX!:!S|e7>z>uR[]񧝋7]xƍ/2'cv,Y_D%NJ@IS1.1гwOܕ`kşl=t<L~ zJOOueDLͿǬr:iv&mm(***\"IU,K$I򛾞֤y7ԧd}>^d?H 258rYIH)Y3L]( dMԴM~8wې䴴O|-͸ ύI/IAXO-M/E8L*%c}oMxrQ~swiv֢W|?'?60N]pïp֫c{VV gLתy#ks uN8~̘m76tt(}֦ZE$K2BH"J )hr0 31H54`8K),?\'T}:p9쿏<3`22H?Iê~ĩa}h hHU^e\h|-}:6s( <P"٭7E )F.&8\Ǖ4M8.@Au^\.7##s=;_C :8㖖ʤU _t*5pūVLFg\k%yТE]2^jjpب=8VÎx2d 2_ϲ%Tthi-76Zl8K5]!q{` u c:8|S|cY%y4pی;~m~}f%+x["izW:H&O;wy#.9h7u>Gp̬Ck6za)8d^.h^ F-X\20@OOq6-xl, P >ӱ@w7 S^-FS3zv(ZJ?adnm'G:63*zKHYc%6UϴY6i0q 05~Gk޼}S1KԾY7N͛;wnojj)b캏OTb*Ȥ2R9 E⑭WHLIvL t~NAplM;b}:ɷ4T4M LX׏qӾ&<2xr"| bs4Ed2K s==Õ 9yݧ76\j~+=?|jk~f l(SoWY!0h h }eR~p9USRRttt4h[(m m:::*j SU˨7_\xjjjJbn;4<1!KB0==$!!AMMM 8& ի'_Vllg|{}&/3O'Jg㸸 gX;]Ν޽Bݓo{Owh3Ķ,L](3apovm}CfrV:5W'rֺnݡcG r#BrzT)UP1G}GQN6ٴݐ% @"X (S g9qvP@SPA@PcBHM6XH|MB _0;ٙN?~;!5--zy|Gy)ヌZǭ롶k܆aYt±jˎ8˗KՔivƺ5.wtVwMN |*1a~Ǎ횞klMexպ_UnH;vLpۈ j/CkG{>zet;&(+rbu1Ҫ}Ϯɬ͚!|/ȕUXXػwz70hʾVR!BطG||`.xo-_{,| 6>xklv[TDR;ˠبY:P"fg&}ru ^%sð|w61J)stGO8ᎧyE˟C:H`]d+eu!3۬9@*JKK/Y#G|||JJSΪvH- R~BξCJkl(TvEhƓ [7N?FzQ^;Z Սs/PXcnvrgeU-woodnsZ`ҥ9996U& ׮]{NlG9j9;=Ӻt,.PgLbb*..n5UՒoׯ]mGnem< zbB %%%eӥhu4@F#HdMzBlG h$pԢEz68hsviZHd4@F#Hd4@F#Hd4@F#HdmH짗O4fU*gqrFV:)KZɚ7mΕw6x{OkϾ_)\߽tWV'2V~Ɯ9[j5EYw19啙K7<43,&kDk[Hk^@U-+z}UKI(ewmEYLмcSZe5cG[JEwke^_`'Mtbt>MzE=/&4Oj޻/?ukvS#5 3Xqigl=/2oGv I1f1ȜI++***ݛZ?x_Z1)ǻ?uފoL;{/ޗ-b0M8\O>#s2h}Q(;uh7&]ͤRlgeD,=|Xg38So; g5ZY>]꺍 ax亍İ䜳{r޺K=F3KlF8ڴa7G.zi? 3|uc[z6M~pϖ3^xBvFt!VgkKJ{|dzWu+-~"G<=Fw?76`ַcT cY5k^G,(oxL~ea!l6&gksqs~eC^*RJgȭԳSBn9'_0qn,rٵ蹛Fh 4M"rʬz# l'o9s|l]\Ќ_aTogHY'}l/?k{LqƄis7W'xY0Ψ?ٱZ:FhU9;k ]\8ggc?/f 4Ӳ&qNݔ_ܹ./tx&'o\4\e3Ж%ሞK0w»RoHEOi N|׬/M #ay5^ /yחŞylUκ#I7,lgJ cv#+4R/5,h}̠ ;[SJ}?A9(v8VE_ ,NϫmUОJ%?F}#Ӟx3ӕR-F6<f+rƏ=[@M_)e2tԕW\|RP anow"h+&)42yk7|t-`CH{;@9mp4PJoٿNS*ڀ_8˨50nNϳoiٗ(C_\}`6Jޝ84Rv7ww!纩9˥Ӎ [Ew_Ga=e~sɖ_V40&)4yI#+]4Ao7bm")w- pP@#ʭ_|:>8h4a=o|fayW~Y; 8FۤFvWk&:ӒSh_Hqʫ6^ޑ&eASsk+k"[9rlj%]ΪzF)tqE~2".٢Ծ6|zlbK\:_pNg|)9JݕץlQ}^$rFg6lD"')uӉ9[R;_/}W,cֲHɌTjTx)a[8h-odk6>OGlk؊T5A~UzdɊUXꨮJ)ݹgOQ0ǒi5slUWTםZz˶ƈ4ZRDRE -+5Jkl{TMpZaYEIUmW}3ZxBގHlQJʽ隖.)EQ[Z\ zQ}plx+n{s]S[qy-0-_H,ր0ǶTy3dXDxR>Sh#jӶֲ u)]2lG0#QN ZAW,`)-(**ڽbJv3.mo=zߕ~3jwEnk7srJ)-9Y3 eQ\ ;@-^7pϚMe֌c2ʖL ]-?Ta|Hxttx>ga h ގT n;+@OV'yT@I]90# {Зx՚qW{/Q=n2yLa_uq^kM{JX,4 yɴ@T{|Sط(,zazʕN1䒇hXu7RAwowANzqz.}Xd؋s }Vuږڟ:tjWgyz>BieU˔ϟ⪪M{z/dǢJkw_sv-3w]љ38>7gmm?uⷂU^'ќiw~CG/zCv) q_!͕N|O_q% aZJk ToxrpjZ{DYV5qu~x@j=[)TjZO{qKaTpOo8bj_Sw~dLLdPSʀ~w 1WVk˃&;'fxuꊅg0[ު)_]Vklpţ,VkGVY]ŃC,Aye_sߙ7SJŎh5+{Œ2㬖{FZ 'LYc>}X5:՚|[kvYճ/o9ŁNBmG½vvv `Q[VPb n݆RF?J]GqU 6 Lr}຋O뛕l WJ->F_{c/}U \{{ihӗ8w_%bg;>l:ު);uW)+Ofv%e92uw;|<:XQ=ϘĜ?42YZl֍ #̥{EEv3hU[V,'?OI5)|M|Y\>ДRF_9EӴcx$@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4 _sIDAT@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#Hd4@F#H@shJ={lpdINNf_+2 hR3OMt7IENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.039666 stem-1.8.2/docs/_static/label/0000755000175000017510000000000000000000000014647 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/archlinux.png0000644000175000017510000000312200000000000017350 0ustar00useruserPNG  IHDR 𒁊sRGBbKGD pHYs  tIME 5*ktEXtCommentCreated with GIMPWIDATxklTU}QZ (`ֶQhD6b@C>hMF+;цEB"!"##5XV)Z[8=wuiwOnv{w̜ c)L[g >`w@S `:?V X _@ͼcs@ABF଱HI@L¶_&Ve*ROEHjcN%`;X2~^ 5]?(cXMj2N>v lQϵ;cT%;b/bzel0} ccle$?i"@iwף"}MOn`ԝco _8w-Ve>Y|y, .'@VmUVzFoVa> ;-} D\qTfqMTŐ lT}┇1˒G3B/ Xdpe^fkDZ*i0|gۢOJa*-idB_ĚJ8jXtTq@,e3FBI2Yʯ%JFgN,Ě'[%kr3pisRV< upNDYA"TӾ h,zi ^gXϒ xgRjK,H?0bmr⁝~~8% h,pCD(,KC2;(j4nԲ8}Tc{cM@U4\RVqJ},gX);Bp>RifF9 aT5>y51ś:K_4#))M[2)&4ʀT>Bz }SSԪRF ~H4CFБ̔n3|F(I`ʏTnMh__)/BXA j-^i޶T8 j!7#\DYbLt#fYy!c*}aDxo6Y!xYoX).Cm#\]v5ǼDGp7f I{ Iղ]o o=QX(IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/debian.png0000644000175000017510000000247300000000000016605 0ustar00useruserPNG  IHDRZ osRGBbKGD pHYs  tIME :tEXtCommentCreated with GIMPWIDAThkUU1qtz=p*&4Q;+ʢ%[A0?XTHD"R )TtP34ceibݹz؁g^{9rȑ#G:`"0L>$]* tgg.A& 9^ &軀mn+sH_Lq%iW82-c@I {q: i*ڴEfֻy7kNT P Ґѣ!i 0 xHg >}^ps]cdm~D6G\HGM!_%uy<̵۵ euȄ -k$Bq$GT7K#rg=߫oq>Sn]k%ƢOϕs r-6n~QDIGWul O .`>Hqq3vw<圝ߒWwSGMC2k"9)x=pswvrGtwdtTS^$0]]GK ]BO8LR1υ-r ̼MuK8֕5xXfQ49 p~Ggo?4wrx2XDlŕ̒ Oy2Gc*K.uFFQ]\Ib"mP@:īg |=zQxR~vT1-pl˵&^y'ڪPbHA{{C[$+mӢF2W$ߗuS1ERd{\$NX[}VKt7Fok~9r? (׺ IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/doctor.png0000644000175000017510000000212000000000000016642 0ustar00useruserPNG  IHDRd +.sRGBbKGD pHYs  tIME 4~aB&tEXtCommentCreated with GIMPWIDAThIhTAdL4.xo$x 4<) QTBA𐃈&܎FT !A/\$nKƃ5f&odFy]իz_x=~?'TPZc~e,hŸ@s@ CB˺ʄ>XxK CkQTd6t&;a53Dw1x}q&b{JH:QQ]oЋQ=e)P6}KY{>׊>)qHRuKƺ!%M>k7އI8\#jAAj/8Q/RXfI#@A҆w{}ekR1 :M,q(izfGEįpkoRbyI"YNpԨa,T2k6IZ'1f9CoH }ExTO= %KDDaLqf]i"Y+6抣Ȝέ#{Ri{Gs1,V7 'O=IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/double_double_toil_and_trouble.png0000644000175000017510000000661000000000000023571 0ustar00useruserPNG  IHDR6vM:sRGBbKGD pHYs  tIME 8tEXtCommentCreated with GIMPW IDATxyUUnjB3*fJ)~} 9h}TLhsj9fS'BAp@ PZ;{νwwY߻g}{}]{Z qqqqqqPkb>ˀޜS<Φd#1x x,OH3Û _Lh=iMRξ ic.t2 ɥ XW\:: e/8N9B'+[C_iNs8p{3 >fȯ7P[ ~+{l[!@ބm8-(>s=pS^MDф/h-j96ggNy@p#GksIu)<5&bs:[hy0h<z\ڹӄN[`<47.H#p{V2izhkNx׀냸4ZF6AH?ӗ (I"Y^jX p4wO`mC ?:N:~S!3A>MI*ڛQ&}C W2~|G^2ߞP4- ABNp~g H^8΅ӚNcPLD+5n {n[Mc nV?S{FCA.AJg jH;^F5$(C` Rl"y=08Z. 9Iq:[Ƽ/v3C ܪЮ.׼6_Ss!ε!+tkm+,[O_:75T|Nk:)ӮNTݷV~j#sK6]\-o>N2CzNBV hndτOL d5k ; G-=d´bs<xi8H afV"w%\ܣ*zwZl|9mVU?d /['6\gw ùBຘ$[Dǩ " rv%A9ӡNB~ג;aZAñpx@6EOKyvZoQ)sU 6.PI}_/VaA AP4iNO0lG'm|r|'O0y&M) | Th_'qT[9a|%*/PEWCu:?eڙmB0 ˺==ĤY܁Z L%>(q208hW5jH;,H醘8$nʡFk#V_1ןW D.8Cq'#m qzk'oqZ"^ͤ8J B|o"ɆJgc |Y+Ǝ88888UG)Ǔϛy7YikbKI 6hYؽ®/í6C+i$[lҰ].{srxrbc3 /SSu#>H7F''!罖~NlJ yMJG\%YؘmU }$ꃗr[dJwg3cb9]Ɇڔr >ѬѴ7VHOl&t@d:V/z %E=շhS[KK[W PܐVU8:UAӚ#TBFHĢ#$y1*؞yxʟ?2 fƪj`/ K{/fuOjZM0φH-A9`B|٥ l'L'v87mu !o}ih^D덜bUG+G@h` Fp5.mUR+$T#RX!mKSЮ˵ݮ̹{/w9s̙;s`0 `0 `j2LU  鬬xy@:d9i07gw`:3xLgf i?< Ҡ9;k{ځ`4`7U [@~qp ZCy.yD3yN~=G@%* ˋGY*@jA|U+Sm|wPVI)C7wgz|Q;yOء.18;Cy&øq#&$)4g%sT}EI"CVyvOJ}Ok*MƢu" LRSe{3Y/4'9S7eUb$gg^?tpYVrX*_ 2$>ͪ(ѧ]ToܞnZ-^_kFŸ2{ٸå+wk@%'MH i7%K 3q߃/^6J-TvKf;q1.I$է4i-Tv͸-͵͸%FawGeT(-Yn6}'Q*=rۏ6 >%]:*nދh>\<,#rlүZ! ;X'P *x3o^<$O'yHmqLS>%Hy@JUGKo6L>\)grJ`(/Y $Muh{S?;`H~Y o?o!Sb]GF~AԧWa'%l0кV/ޡ=K\.OKf CEz@~ҷݑ*l/Ǜ.]sp+k֧mOqi)-R4=u+n3wv7Zz6@jէWa:TBcjGxkWByR_\}G0}{g@#umOqi)BUr^U_A ʣՠgӤuUyȠoN o}`ngI4{QZB]~tyi{3賞>ťj_@ u(N]2 |R>%*/2O0M*L+dXZTҞ^nCmVϧޥF?;Hi>gsƘ3IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/east_of_the_sun.png0000644000175000017510000000630600000000000020527 0ustar00useruserPNG  IHDR@6@sRGBbKGD pHYs  tIME %+iEtEXtCommentCreated with GIMPW !IDATx{UU.`$Hjjet*sd02@ >(P(a243LKgTL|R<K﮳>{=9s^w0 0 0 0 0 0 0 0 0W;\gpl`{JoQ~}ZC`sET= ht~02ˁc|`MI_}(4꾻*R0 o\w2~.Dw器0+aF;] ~Md9K^J|w`6F3wFaqJ0vL^V)q{{8NueԭXJ0 3Q`1&SUa!p5x8(N}[Z`bW_'n@ڽ9Ə{|T0׀{gT=p9`#p>]էWpg hpg+n+H{?;"bYE)r nE0 urz~ = I{0/?T0joWxׇEsn CqLB$C082J{aψw-w\JĀ\Jߵ;?PE݋J~xaԞɻJ>W1w 3 ߐ+TET=H' 5cq(*Ua!ngm~8G)y}~ xlFy{z f` NN N_zs$޳|t/F`/3 M5ý-}";8` nNyUpNඉlI$"|/9?x_%F`?Iwp1u3PW$R_-E̪ͱ#iRz7Sp Y!s?C=uy^4QG՝v<-u |Dۄ~^ t[z۽kenz(Z9KN@̒Oljq_ziV^xJk>IŽW微Ԗ2W{Ie9eH˻7} {K@ :(1o~̯g?y ^Hwaޣދ>Q^gܫENR T3*LRdnz~Oױ#fcz)zXJVMwNWa'@.SW}5Ip?a>V)ZvFƽ{Cr:_Zzak> E9rz֥p*k/rzjW`N0F榇qz7X;D櫞\HbS[B?Hp0׫!ƀ ۀ!b]z@;h"Y ŋ18P0}&Az11iCt(Rr*r{Q:t,Oam40^uYTsPb9Vt1tF ߙs4p {*4{ ۡLegSojygY>bd6{C "PXYN!e]G5ޱ4WϊTMPWBOJxVb9V":eK E*tJ>Zx~wcQ<t/KaqQީ\Bx%޴ɣ-нuٞ\cenz̓,XL>-c@͗<=2*"_*S橡c5_VK{U{{P?HsTxM*noW 'rV9)*~x M7F+0V>-cM?RyI m[T.NȘKGTؕ)e4xKͩΐI4 v}ճ=*h_gb>T2-:Q Ɇቁ7#s8=L1EFX*Ǫ>pҟr ӫS4?7|q+zv瀑{Y#nQjMɚ#igB؃B(v_]+$Y $5V(qw՛I\(Xz:ZI 4_VD&d>(Y(CoĿF0(s8=<@[UJQĦ2ޛ6??ؼދ;Y*qgDʃIY(ɷd\+֩Ҳ4)RFܦ֥#KQ |"dʗ.kLY^9p^+ ,%1=$s2<[ Q=DL@:]0iMu7u^/1d>n:O/&) =<>1d/&sz8Nt.GusG{Cd%d|bg0 0 0 0h@IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/exit_map.png0000644000175000017510000000300400000000000017160 0ustar00useruserPNG  IHDR} ?w sRGBbKGD pHYs  tIME&YtEXtCommentCreated with GIMPW_IDATh{hU?M3s\lB)]VIM KV$ 4tlRhB-nDCZ*,\-/mk[m9^z/x<ƓXt>hW,qI?xRVN9A/: 8K,>K۲Eb v? F2qM9ȮWy;[:[d,f roa̻,e<~**E>O/ml@#f,6e)+F+%}Y?m V7a=MΥ R–5;#g β;u,\ ||1wW;;R7u*z<#G0b/@Xy9;ԊO75ƱX㦸IMd 0Q4e{uK$3 (v+];:KIR0Rڞt)tdtph;kOe';; Y$BjK;/ހqj D>r0vEPjd&^!-!FWyɜ{HH?9KHzMƅWp8X;IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/fedora.png0000644000175000017510000000256700000000000016627 0ustar00useruserPNG  IHDRZ osRGBbKGD pHYs  tIME  . tEXtCommentCreated with GIMPWIDAThhe?waf?` jecHPP E?ḧH*(?R\!)aCGWkjVۮs:7F /9yC ɿuFkLFV8@D2w02g;'ssѠ8xϑO7B.M pL}OLf9xD{|( aM4p[%YOlIču( VnU: /{##vה~3"Ȫc!+,#MyA]@'yը|FvBC1+WFl#t;zJL_֘Qhmn4WsSFޡU^I:Ot\gEo}AD8n7-qT*J?_ gNwGTQRo4)ǟcTeF,Cc]9Jv׽M 1rBBvI/R%j4ۀπR0h}G)_`UvrhOjɉNܛjޠ<cyŌ43q>f)t2ʇVi璨Z8\CoXZs.1_B+XTѵ]u\-+y;&H*^ӻ'@%ppR+_ms5]%H AXIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/freebsd.png0000644000175000017510000000315500000000000016773 0ustar00useruserPNG  IHDRs !YGsRGBbKGD pHYs  tIME5 tEXtCommentCreated with GIMPWIDATh{UU3a SS+a"ff!ӐG)%feFaFYE/|@ia>PIQ0-FuGowqL6g^\H"E)RH8p/ X0:fj`PbV@=#|l{Qa୐8 l~ 9a 0-le>K;!ct|jt[ 9Dr`6p'p"p8|#CN 27}J٢Ns`,pJ<iDU{[mquگ<3ѴWx(s<*}[FR+ 3ӧ.O%jy{1ygLeAԹ>쏸8-#q?J׃׻Q `x@[&|+sL)d̰ tu0H =u뷗Sw->8 e7𚩫n)1}y@U3C9]! SWScՊs.OpA,q.~NbJ՗wuHLŷґ뭷7 ulխZgő c̮!}{}KtB1R8l9(1z& xE=W#Nʹrnv;qdt[^b_+MZxx'xFIb=̔(:ʹõة1+T7u[:L|/'j`9 UHƜ,,i̟LI@K~y^XW' f(gέ'K1 *kDΒsGf]BX#Zs_fʖp!LxHL/2CcEپ)c~,f?ӷut.TGĶsF_`]LHʕ q(7Y lXbVOY7 MbKLE,izvƕL-]!b! . xbc@$:82Qaw'y2X]x xa:Jd<lW12sanO2(`uBa"l[:?ݝ۞ow'78tcAy \0Gd(ɱ1_FIZopeRAe'a(aD2%Zb$J=T+:Nl"E)Rh׬IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/gentoo.png0000644000175000017510000000217300000000000016653 0ustar00useruserPNG  IHDR_ t8sRGBbKGD pHYs  tIME /5Y,tEXtCommentCreated with GIMPWIDAThYlNAXj=Ԓ!ATBHxTHF#ԃ% AJTQRzfmz%O&93gw9g~>P4@0Y8c)K34E@?3K"LT ~GFy~X'gož@X!Ġ3P3~\;S %%hni)$AU5to)?x'309G!?EUɒk 4~!`Β 9g`GY2~se8N~r7' ȳJ`H;Pe0Oq!j\yfĕ@&k d>궡`h͹EBVd  V448n 5@~nd< )=oC!G"u[*2b$q,LA7z\+Έb4GAJ롴 MQ|Ѝ aX%Hdۤg:YK(i'd91V]t^A6pQRMM-O:\RHV7p~rIógch-agK5Wkr&I]׼vqJ6ŐK_49-<5窏_̗EøR9PUڪ+9E(%kDŠ]Nd/ͅ 2%;.R 1g{wܡ)V(Ź15"X&E,F*hpXQDJ 3ุ0ysO\Rsؘ#n2${ VPKH7*lx$Kdaaaaaё %殕'IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/mirror_mirror_on_the_wall.png0000644000175000017510000000722600000000000022643 0ustar00useruserPNG  IHDR6ƄsRGBbKGD pHYs  tIME T99tEXtCommentCreated with GIMPW IDATxyT?aT 8#ƕHP$E%K+'!GM0`b DLD 1 JPEgQ^e{zwNWUޫ[VݺU^:\0h)4) ,S>8 #6X eoKG^kH9o)< \ tmG?Wd-PE2wq(y*KLG;JX'I)e9hV^ Njvo+ՙo8u=fŪ_.gbWxt_ȋ#I^uKLAuVٛ˜~J^ЋnB9zՖ\(g1\ z0VlT؍ @km#'Feɣl]r~UK}* <$P(ɥ?qg( ^ $zLIo[qFc(1} }1&)Y2]f=I`<(4Ɂ~g9ʿ-4f;c!Fo/ʨGI[dh] xZYПusUfhB-E^I[ؒ+T%0[%2KUg8f&+`l[s)?;%Ro/R[ySU#{5 ps^f OWzuRXznRGXul$BtW"m*3&0*??$tAag뭙o9]$|6ϵ~oV&o^Hɢ?[oaF{at>A*Jo֎spej-`X7E֕[kl藉wjU,|SDZWؘz4׬&GuS_gp׋=][u،=I֔?~+Yt/\wT* H%U}1|KT´wafH^E SlG!u[Lͣcl]+EqQ~w;x/q,> -Q>ښf-EA;QKy hM(BdΑY0?xq#0{motǨJ떦ÖcS,F[ٻ֪랃S׈9ƚ;QT;rW9ީTu&({A➿aҔ/6~aTkp<\J_(kMji{@]sm\4g>(kA1moZzom4*[<>f;jD 1+1[A:N֑[$Oz[X-#Q2dK$[SYZi\OcY H|i-Iֿw܅oH綈JVԯ`y*IOBx++STaTQIz3U4uCѭ _`ƜϷf)I>+(Fr!\Zyaj3g,|m1%R Hf i3C2p4c΂&)wm[- }3D>ã=ݣ$ ] )#HM[l<? %GLdb@cX{N5xp7@lct(-شdX<u5c,N7WIȤ]Wc Ezeq;ܷH@ޫnciQ\M3Z~[3kD8u$}^ Z=D:yG?aoҤrɌ{ʟD˱VӢ +Vt^-V*ϥshu03Bgf"݂`|Ē`4&>XO2S0EvzZeV,V3pZċ1[/Uqqԟp4>@ZQi6KGjl]xIWF?8P2kɤ.OHU?žuI}zNb>+ pKWpq)&Zc;@4Ubj>p]:a%3oܸ?BKq2noE  s0;T 7<]ԝeoF˥m]3xEzZĩTPI܁Өc!qޘ+1ᬦGK)6 _ޣKlj7O]yEuERLuh,);]k {Q:w|0N]i)Y2.MC-CX6ޓqǮ-iv"Oz/P-@AxZ4=0aW:-%AGT)`c($: WL)rKII. R'60FP7{3q2nhxEg\}6/b,;/#:>l(s6Α}:IK2[H TX^7XzZxg-PK[2POUd3XyIJU&TлJ[TԩVyU޺,Q"ҕDp.#.9<-IR|O~A":#д` uw m<_q!]`rc [Q9cH&k, ad,l#+ EaV[UZLf*LHt@"?um=&"4Œnea' _OWe[xc؍eI7S KVGm VGHo(Ʊ zZ=Z7k-6Fag KPE4j<<<<2\ٳ<gIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1547804150.0 stem-1.8.2/docs/_static/label/netbsd.png0000644000175000017510000000271000000000000016634 0ustar00useruserPNG  IHDRk  bKGD pHYs  tIME  tEXtCommentCreated with GIMPW0IDAThklTEtkM[R񁭶T|!jL|TĈ!Ɛ(DƪQk6?H_D!#TT(Bke&̽sw//3g̞9g,H"E)RH4TƤ 1|sG`ˁ!Xtm@cd=S qI@؊5!Ev30 $HXgEK5 4Om9vl0Et5eEQTmeML ZuFn!0 y7&r ADwKHQX2bXuFqx|AfAQ"7Fqf_B1YiM#di3i975Xi&A؂qIUe($DVVۢu+"zBd˞hʯ%`2p5IRPdmT!Y*cl e_bA x8*$2HǀqR΃0}G+" pZi'ّ+oXd>6Ⱬ{1LʜI{D/^n|8 ~l}G7c?ndMwd< 3Y+,trďH1$iuh8-j@ 9CV̡AZ1~8!!\_/# t~qLdkZOQsj4l2+RՅ:HkCl\*s,჊}ơXђ*JDŽɲoZzBƮElBdkJ! &-!c2p"s\yjRlS jx*8;.JǺ=֓;<{ u2EsV>!߯xh>2<\h5&|%+/p}Kp(U툀߭kCt!ġa+̳^ccd<&T4P Q I#3(XTbʙ~,W3 6Z#cpYOBr%&vZc. ?@b>#~SC~w!SZeM]st\I  GĥD7Kt&}J=4-|tY鸉0zGYyf:kB|rUiȼ #cGſ tS|uܒ/D"#=uz_vCvٲBē߱S|7sMCm+ (PCp\@"b/r)RH"E ' ^tIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/nyx.png0000644000175000017510000000152000000000000016171 0ustar00useruserPNG  IHDR7 esRGBbKGD pHYs  tIME  tEXtCommentCreated with GIMPWIDATX;hTA,|uW-6gaM`A"JP!h+v">F]_"!j@`+|11fmN`8nrϜ39s!E)R P2@}難'Ik e; ,O=;B{oa3'QPF=O󎱤70fͼ^'=!И',9,ϥ31}"8$N.F70+_Nh78=D+l `ݦ|Vɱ=RO2I$Vߌ#CfvcKek~z" wO rA#L\* ʀ5+8)$vOxCJX}ҖFyfK ?&~n/quL;CǍZ*-` qHrƾ~VZ&cmLʅN&к%nP2{˅d٢sƘz*pH*6H=ΝJ܈hps7t C-X,Pm9  Erˀ} )è+=z@)0Ho@)TFX_y#- nMV|lT g o.ӴHֈb 0d2*o D\^TeeK**3O Ʊ17ƣ <A*sړ* t=2qN6 77mhaPDOU0m4c`LChRqUJVhZ3~87D@izǘJ]#v^Xg{^ GVWx`ˡ4Dg M_C@B~LffcW^j\Z blX"%L#q6B!^;*d Y;hцPā:a(s҃CkJ͒wh2gT wyzH)J=o6$0n3#Ck]9}ž1rO$Čٸ`DǘB,RŅb'l5Sg2xk[߬WY[OCtL=Aodbv'كѡBmScwQ 6IN(;gݝJ*J*J*e 2@&xV ȘӁ5`7 0kLVr>08 \*W0 "x<_ނ+}/;fNC[T7n⪀ƧX)ni\ˤ;zج(E2st'`ɺcԡ=^c[Nv99-!㳽^ pxp%`VC ui#cP6 ΑGzs`1_xB"#6fHo'+uR la (TINl91  j%|J:b/mQ#w]#QyF [H;L3wlWeK ypp네wJ$Fߖ@)d$z蜀>Z̍ݿ+גT?m~)y$]ґ7{fa)wI[UNf<}g_&}>/?l˥j@߆IiG[/91"2ᎮV ~/w\i79+cka<:dKz#8LaJLKK~1C}:*U | Ɓ&3Or% j?oeK:jm}Q I?[mO'+$%z4 Bx*_Z+! :CB1<[[cz*itnr4ߎX_twBnUeҷxl; cHߟ`n%U Ɇt2R2In6Z"5JΆˍ6Oc0ݤvCIy`cIh#tps4 != N,kR E;U&u'%2.#=6EU=Tđ~8T& "286':%U=7)ڪV1BUfݤb4#tdQIbJ#8n~ec%}[,I\$??@Kf@׈JNv9EA_->xMyVN$R˗zo(ܪÞY\krqv91GTX8Ȃw\.Kfӛdl68;^}E4z_:Fcq5Z~CP _ʖS]Lľ+[ہwRqRnv~pΙ7ELTȱr*Yl$]Mo=GRhLC15)԰Vr,+Br|۶;%HFr<)',tSI%TRI%Yn״TIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/over_the_river.png0000644000175000017510000001025000000000000020375 0ustar00useruserPNG  IHDR^8sRGBbKGD pHYs  tIME ^hntEXtCommentCreated with GIMPWIDATxw?Bb 55Ec75A=^lGa9,("eY^;{߼W~yg7ܹ3s\0 `0 `0 `0 `0 o\̯[-E|Xx8.aV^~hӨ',!u&9x8 X^׵U} f`X9,g@aƋnm"Zc+`0?=}Yx`WFbЇ`NCK 1^pm^}SKL34j!&@eЇА+%yw1gP李@_ɘ0݀ XJ`hhۙ8DoYӧ~E½ \߀30,H?4Yi pA[qrҮFâIzьN_i|i< \NXPazp?V wil_D /n"TnR/pb Mi%j$sqm7ُ Iu0vah. |%". l,R& S 1;엧c{-Д 4uE gaw`tWA~sp¾CʝKٷRqJ[ӏK I`Oj1^CUP`" osam>E70^]Ľk Ocqgx~ U]יc(&HS 0mc%i5R%NN-?-oSn7կ1^Co9+!FJ ,?q])BLKOyg$_K^=d圔>1AO/T7̺4Bzw5dR2kJĎ {z *3b*ۤH:ȷw4\ 3x wbp!_;` A3, ?' \f][ۿ!cLPoVZ %iHc? ZZojt֦XxwNZI-w98b[ý: EM\v"FclǕ2-W0|i%FWACq֜CBVTT63mHM  u/k\#heQq·ZxgQDkB;g'zӮa@VWY֥Vh&=^zL=(u jVs| C+\D}zVW Yԥ㣯,HQ~/?YY1֐n8Hxp:"r5"b4Rr zKcu;>Wy (nG{ʤ-Uslg{K6z%5]OĽ G[ gQ8ݭ(ȎD%kQDv?fv+c#z"13x>ڲ8I5%f)^H~m? ;c+m㡸gFK ěۺF0{ꊓǏY> v ;dpH'BGI8> =&oezU~H\ڬ%AhKprI#j%aP[8S,}w@Zӏd_ M#Iʘ6uȷgLZ漀d8Lt ^}po m?HJKIڪY1c<8ek&S}F/-.:>z3Tڛ+7ȷj&CpYf*AT|1FfvU[T'E+H`r8 Q!aƎm%-cp'/afeu[N[ddV V:lEey KΨMIPWЬQlqKM.8>Xt{)>@V}2ߤ4\ִ +0< vvU+ 'aNF1@HZbYGև j(ikٖ'Ȫl}mҴkJjӫx'̯T[QuhRk(_/#9~8H[z;oY}Fq'nOCpYf*Ww)n)UW=Udʉ 圣fDf e,r8zZ"Ekݖ7~Lx\2M#d,vqS*='|»I!ii3nP^$*Ϩ.u)GX]o2&W kڲ;(et!Ҵkk`Ԩ̬E-pjVQV2>" WiL%vtD/VIeMi/t x|Ko:eI˘4k2hk>[7%FYJZ*9{[G~.$jK}cgѼ }/ q*3xIdxvkSPWYK/ҔQ]m|HҸ(7XxTIeIeIo])@E_`LȆf7TF?RoDN#lͦXLY6VͺElsٶm9OѸCZQOBWTKqfK&,@CG~OV]%!v|?FSi] ׁj2B^9+H[z>Γ@JY94\YFY=3Vd3$B߲o^~HOT`[!67HIߩJ\IQV9*fC[n+&|\k/<EsBѭ=QDž^Cs R{wR34K9'tO'ȷ!{Y[}'Z^tV Wˡz!UrST? m K 2QEh5`0dWd_^ wSkBWk'S湯&j,4Y uqr-q292vzΚ`0 "?IeDD7IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/python_package_index.png0000644000175000017510000000604200000000000021542 0ustar00useruserPNG  IHDR#msRGBbKGD pHYs  tIME*7ZoItEXtCommentCreated with GIMPW }IDATx{WU?3fC(y h=TȐ a lH$J)f)]JrQP)D) C)e鏳sy[ks|A4{O{GkD5E6=#ud%.Ohu ?1PNZe!8uޚ W[CMo!z;#~Z?6:x174_h,i1QX̪.%u,L&~:i`p?8C$ /HсEjHBcIn ?%U:qA.%]U1RF=/Dgu^]xx9(k!-E&hbzR~2m< N@ ޳0 /#U B[Qͩ,# r7 >&]6)d*GcnNj}:a>GX"‹?ENoE[ ħ0 Lht Хtۀ{f 8^tBd78"^{/J_X LDr_^ `Ryi?;t1}06NsD$#垩38X;hR&|XzJbTŒwٴ!۵~&J)"xaP9bTE0Mhtt RԚ(h̴:qw)ߪ&8 0jI28:VL10w$>KxA6%a5:Q^bd3п!m%2:ʢg~U{?R`x~`IM_x`*۪E9.j8`6Ӣt}G 2KqY2:t1*_NP;?'_yMxVP^5} d@x-ɢщ/WI2OU\Ø FٲshNG_2hCXI5ce.T >:sߪZզ?IUO-g^5h-@zFg6u VϢVUVnJͲht2KSF,IG 1Bg%BKeCq*<mo^/"tQ'%[tQ/褪V2-!5[!x 3:d)o-^/DpTao͡I/D>te񈢝qˉ6+ g)`Za:m"yl༺Xdol~]_&K3(x]++`>L|PV.}gkZ<d*0Ѭ 'fDa2K]S:jTvUt@ 2#x;p-0m<(C`) ?bEgzKk~w;ʊSl# Ysl'rM\Z`VP54ٍ;7;LǞ9Sqv<<ʦR9 6ɪg&n.ZOoٮp\b^@5w&g< S)JtV%!OGZ*[B8:H$h$[.> 5,3 %p'|juy;!1teG pLNGǩĉk+P(mQXILfdX.nOö́FD/}x(/,aα95ʇC=j ~J,]9-a"*kEo0/d&W~ [y,e=ç/jmW$ޠQ `15N spF &l$c^^Gؿl1-5 "P0v9Y|>þ5@?_ dF9(XL;QF7+m T%L8WlWkLYoz+Vg Ҿm<"˷W\8aI^(ҧ)1~. ٗ#V}ɐgPMeT6d4O8˝q&(t' oN1 ).Uܫ}]оCqaWlmF86߃N8ݮ~wK %|@+pC{!UD:N;g!pۥĉUrz]3Yl#8_t/|!ߒiV~"pi.ZX.>}ZfI xEb}qrCQ[K7wJ-d N6Bsjȼ} T(( e/UF߰&tݸbr7jl+'@k)ͨdB {ƤQ7$z2U#+nq4Ku"qo@*YQ%?.J+wvP21#JL46|ʗI=S7-٪l7|s.ĦL߬Jlj5p.z13B+9.y^ڗ4 \eD|w}:dVq{$ZUOɦZ @uϩ}awۀ H &mm&KV   %HHDw&%B &N= W& ' 8U(9  i1KL$ix  e<=c v >  <so   <    <dz    <dx    <dx   <dx   b<dx   ݠ<dx   r<dx, CBj~cDww*p>yim ޹4*YO58\?p}Xp p+W!p~pE pz p4 pB p pqDp=56 y"zz^t.L& ,  New Layer      A,  a , K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/debian.xcf0000644000175000017510000000610100000000000020603 0ustar00userusergimp xcf fileZ BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  5 Y$Debian     gimp-text-layer(text "Debian") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode dynamic) (box-unit pixels) Y$ )Y$o   %HHE'"HH w&H޺x BT f.[ TW T T 8UMTT!2T_yi1i`2 ȅe<DL~o<hr& WQ <+~>TL<^ott|kTp<Jv(B(_T<O2"T<eET]< s T4<q<BcT<6$Q Y*u]6B  b>tkLt>lm,@9ذ%:m>$UF ?"XL 5T,  p KL$+=c uso60dz idxdxO4dx4dx4dx4dx j~`7L 3X,-  New Layer      -  - Z Selection Mask  Z  5Z 1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@-././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/doctor.xcf0000644000175000017510000000511400000000000020656 0ustar00userusergimp xcf filed BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  rf&DocTor     Hgimp-text-layer,(text "DocTor") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 102.000000) (box-height 38.000000) (box-unit pixels) f& ff&   XōL e TgE h hhh hh hh"p\hhpy,fؗ&hh8wr"S2                        g 39 Examples     Jgimp-text-layer.(text "Examples") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 435.000000) (box-height 57.000000) (box-unit pixels) A9aT`l9$4D@@@%HH9,B.A6*.\//9Z/\! ?ip i+%}X+VFU hua$֛+W!+6m0P~pE^0LNzJv( iL4OLo( BeO4L0}  4LqDq4L\=5664L^   Qf *\Q"`5h o^t>7l"5T3XQ@@@%HH 7H0820909090  0$sAKL40-ן4+;y02 1ay4 ?0DL~4 i)0r&94 Blf0To" @l0tt|kj @l0(_S% @l02"G @l~0Ey @l[0$i @l0B$ E~|9 Yj+ }*] WkL@pUlqn@9@.lJD $UF CL]4l9l986Gw5((@@@@@@@@@@@@@@@@ [ [ [ [l6,  New Layer     , >, ^n~K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/down_the_rabbit_hole.xcf0000644000175000017510000001522000000000000023524 0ustar00userusergimp xcf file6BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  H69Down the Rabbit Hole      "Vgimp-text-layer:(text "Down the Rabbit Hole") (font "FreeSerif Bold") (font-size 20.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 435.000000) (box-height 57.000000) (box-unit pixels) 9 $ 0 <9  @@@h̍&+\U(Y3'5:%3Ey!HJ+/on7A|Yhjhf \&Dr(Pn-G¦y!@MllkN6! 6kgi&{  dϊہ( A#z @@@wψ  !, '  Wsft/t/Z :'A+ޠ'55{0..sπ- KH Sޗ+/1j1 J4(,n--|BlA bq: :  @@@y\exynY   ~5 3 yW on :'A hj{Hj6!lk gi JAlۂvہB @@@@@@@@@@@@ [ [ [ [l62 New Layer#1      228HXhx                        g 39 Interpreter     Mgimp-text-layer1(text "Interpreter") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 435.000000) (box-height 57.000000) (box-unit pixels) 9*9u@@@?4&9yhhh!hhwGY{hhPlh4=nZhp }$hJ~nhZh7ywhhghjzhhhhhhhhhhhhhhhhhhhhhhhh!hhhhg $kH'$hvkkI}AA3$W^ݞ,za@@@/9;:99!h V{hGYGY qy=nZ4h4aR~nJhow7yh7yh2#zjhjhQhhhbhhh[hhh@hhh2 h!h!zuhH'$g $kH'/$)so({' ? yV SpYzW r&8_$ :'A4bnE Z{ {E=$ ! Ep^vszj RIƴ r|>c P_ 7rHic+ 3* Ru^ %J 2O(Z )zoBz \ܶ,\Y Y5܁533y/WonZ :'Ahj{H6!lk6!tgi  JAہxA#z|B rWo,..2.<./uyy+azYonon|YOhjhjT*?Dlklk-do gigi  ytہہ  ((((U*6 New Layer#1      6 ,86                D "b: Utilities     Kgimp-text-layer/(text "Utilities") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 354.000000) (box-height 58.000000) (box-unit pixels) Eb:e ,8b:jPN (qgh(q .?9,>h,9W]h]i01h1h,0xh0xh,! h!h,?hh?hh,h3hh3hhh,hhhhhh,hhhhhh,hhhhhh,hhhhhh,hhhhhj8hhhhhwRhhhhhhhhhh Qg $khhhg oI}AAjjjI}(*N" 5B5  $W?g?$5cwyiC (q:,9]9190xv?hGY`3h4T`hJ 7` h7yV` hj$h"h,g!h.T hQ h!N$khH'$Q%AAjn+p =" 5 ?$W   {&M(Yz),\h)!5h*h*Awh#ʅh V hme Q qy dU@h)a!aR ^h^Zo 3ih+hh2# ; h0ub ShhQ h ^hhb ;&h}Chh[ h `hh@ ^Mhhh2 h hzu uy/x/$) nRY {ׇ2}h%53h9h9j8}816pPL& ,  New Layer      ,  @ , ` p K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/fedora.xcf0000644000175000017510000000611100000000000020622 0ustar00userusergimp xcf fileZ BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  = \$Fedora     Ggimp-text-layer+(text "Fedora") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 92.000000) (box-height 36.000000) (box-unit pixels) \$ 1\$y   %HH"HHB|@@68|@|@|@,|@P=]!@" P@^mhP2 2@,$$rPDL~*@Pr& g@KmcV4ZP>e@G>Ptt|kJ@<3 P(_":@(2),P2"75@,*#7h>ED@2. W@>9Bc@sRO|! Y*2 wffkL]r0 4 h6@9{ęyז$UF  DY%B$ 9_< X! sj@ip k+hu&Pf+6 ^0Jv( iOeO4 4q464   `>75T3X.-  New Layer      -  - Z Selection Mask  Z  =Z 9,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@-././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/freebsd.xcf0000644000175000017510000000703300000000000021000 0ustar00userusergimp xcf files BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)   s'FreeBSD     Igimp-text-layer-(text "FreeBSD") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 115.000000) (box-height 39.000000) (box-unit pixels) s' s'    %HH"%%HHB|%B@68|'A|'|(,|(P=] Psj@hP$k2 2 rPDL~DL~P&Pfr& r& 4ZP >>Ptt|ktt|k P(_(_P2"2"h>EE  BcBc!  Y* Y* f  kLkLlh6@9@9h"$UF $UF 2HG5 _wLle%HHE' k\VRH޺x |'[F f.[ K^Gp~ׄM_Zc2$86`@\j  hsfw~m{o&Be#,bRFl"s  @A< J8 zU$Qw ^9+D b>tټ6Elm,/W~|W1L9-  New Layer      -  - s Selection Mask  _s  ws  ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,`9././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/gentoo.xcf0000644000175000017510000000533300000000000020662 0ustar00userusergimp xcf file_ BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  2Gentoo     Hgimp-text-layer,(text "Gentoo") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 152.000000) (box-height 50.000000) (box-unit pixels) 2 i u2 Y   FƉ7Y/>jB٢#9p#Z"qXB!Ap Ϩ!KQ MGYhw+4PlhJp }$h7yZh&jhghhhh!-hhhK{hhh5~hhhhh!hhh AhH'$hhg $k'7 shՠ(XV XV #&XV Q h(XpXpZ|w\Xpkh(XpXptroxXpx h(XpXpQywUXph(XpXpXp <.4ggsxgh2Bn ==il=1// @@@TEZ;,z' TE+(Fow (ok( )!H{h&8888EI88EI#Y[&88EIͮhG(%do%do %d* #h֦(^t^t^td>h֠(XV XV #&XVQ h(XpXpZ|w\Xpkh(XpXptroxXpx h(XpXpQywUXph(XpXpXp <.4ggsxgh2Bn ==il=1// @@@'Z5N!(4.8(38(#Y[& 88 JJc8(UB7eLo 7[ abS*E|8^dw+ #&D8(.V! Z|w\D8(^P troxD8(vw QywUD8(YD:(%+ sxP k{F4!=X ilY{xnl  //$9 @@@R"#RZZ8[и  ($* u8  syX^}(a< ̀(XhL ڿq= <Bn e6PX~e 'a("C+ o[h W~$  N)O$ CZH00H*To o /-7  @@@@X,^6 New Layer#1      ^6^6 0@P`p                    TTTTW +`=Tor Descriptors     Qgimp-text-layer5(text "Tor Descriptors") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 352.000000) (box-height 61.000000) (box-unit pixels) `= `=f@@@GHH!%HH!Hchtc#f!ht$ # rhts # !ht## ht" ht^msj@ht,$$khthtKmcV&PfhtG> ht<3ht(2),ht,*#7ht2. ht>9kvsRO|$0 4  b=Mז l 9_< b@@@E';޺x 8.[8 89M8$ 2-ן4Jjsj@i`2 1ay4 +v $kDL~4DRr&94;dS&Pf~To" 5 ott|kj  B(_S% 2"G4+ EyQ s $i <B$)Q Yj+%>tkL@pNȪ  m,@9@.&mm$UF CL]4KVQ@@@w&: 8WL!T!8ULT94T/ ;T"1KL44!^msj@-e<;y2|||,$$k1<?T<)TKmcV&Pf<lfTG> <lT<3<lT(2),S<lT,*#7G<l~T2. <l[T>9$i<lZ)sRO|@$B~|f@>] Y0 4  @lq-ז@lJD  G 9_< Cl9l986Gw5((@@@$6ן46ay4646946o" 6j8%76y8::+6p6.8L]4y@@@@X,,  New Layer      ,  !E!Q!], !!!%!5K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1547804150.0 stem-1.8.2/docs/_static/label/resources/netbsd.xcf0000644000175000017510000000567400000000000020656 0ustar00userusergimp xcf filek BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  k NetBSD     Hgimp-text-layer,(text "NetBSD") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 129.000000) (box-height 41.000000) (box-unit pixels) (hinting yes) k  k ,P̝S7 = 4C$;b'h4.QI4)bP&4e:P4P1Pb~ 4)P[P *PsP PPs54IePvP4= 4 hPIP!^4 +vP/'P.4  PXP4lPP@4 PPd4PP4V-Ph0G<n@vUPq8E&?T AP%0/^ ;PP |Ӏnݴw#P,```uaOʔW 2-!x.<Q$%51S9 l6Qs /t(1 T$f_M0$+r?z Lhc%C6O$F>j%$WϖS 7 rȀ5-  New Layer      -  - ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/nyx.xcf0000644000175000017510000000437600000000000020213 0ustar00userusergimp xcf file7 BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  5$Nyx     Dgimp-text-layer((text "Nyx") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 53.000000) (box-height 36.000000) (box-unit pixels) 5$5$tttsP; u]",H5#,&,#,H,#,w,v,,  #m%, Y,?>!* } ,3,oe,@,U eg3,m2_"`,z",$DrU,,8I*,c#U#|e= x4k! a="  1l,#1<+,b,," -  New Layer     - - 7 Selection Mask Z7 n7 ~, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/openbsd.xcf0000644000175000017510000000714500000000000021024 0ustar00userusergimp xcf file BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  + )OpenBSD     Igimp-text-layer-(text "OpenBSD") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 129.000000) (box-height 41.000000) (box-unit pixels) (hinting yes) ) )  @ @ @;کa 264 kp/gy- -jp+=K *()Fb$EJb~ ,: qk *LKq($ Os5Z d AJi4= SZR4/(!^4^ B4X.4h)4j4-4b@4LR4Fd4+404E1?oh0G4xV(q8E&7w\ T%0R~QA+fs4L. |Ӏ4D٧` 494988Q8^$74 @ @ @̝SuaOʔW C$;2-!x.<Q .$% )51SS)9 l` 6IeQ% hs /3 +vt(4  14lT$4 f_M40$+4r?z4@ Lh7c%Ct/^ ;6O$F>j4ݴw#%$WϖS7 rȀY((((@-  New Layer      -  -  Selection Mask   MY GK,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,?A ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/label/resources/osx.xcf0000644000175000017510000000735400000000000020205 0ustar00userusergimp xcf file} BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  $Mac OSX     Igimp-text-layer-(text "Mac OSX") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 142.000000) (box-height 36.000000) (box-unit pixels) $ $    {#M&8Yz',,\h',!5h',h',Awh#ʅؗ& ,hme QSuy/x4ynR{ׇ2}GUJ   KԛQ}u*D@tKKj cM<[ r$2E))V <"dk-VP#Hux "L5XY\VD (j 35O 6 J` #   E oZ'a   &#0Ȗ7:~@O/+l,bf)n#%2$@\  Vx1/P@! )5" VG%>#_ڋs]ʄt% Y Tk{kS@d Dbv}pPG#  New Layer#1      d  K%-  New Layer      -  - } Selection Mask 0} H} \,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/over_the_river.xcf0000644000175000017510000002170400000000000022411 0ustar00userusergimp xcf file^8BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) D"jV<"Over the River and Through the...      !egimp-text-layerI(text "Over the River and Through the Wood") (font "FreeSerif Bold") (font-size 20.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 342.000000) (box-height 60.000000) (box-unit pixels) V< V<1 X+%ӑ &\vd$Yx_"5'{ 33DD{W / l :'A Z K{6+` " &8S *j|XH ~ f 6!~k&J  *ґ"*B 0A#z| wψy-!,-'~.&WD{W  :'A+ l :'A {0 K{6+`" KSH SXH J4(, &J Bl*B 0 5$gi$$4; sf+ v/'|YJ Z~) sπ -   +/$n ye  A b|:mʴэz| '\& Y' 5* 3 yF/ܳ on]11Z6+hj):>eqlk&$6! gib  0ہ#*ΡxYz|A#5 5#8c5*ȿB v04n >o(? /WSpYzyyZ :'A8_$onon{Z{ hjhjEp^vRIƴ  PH 7r3lklk J%gigiz|B )zoہہ ((([5 v J ~)     $ ye :mʴU*6 New Layer#1      6 ,86                D "b:Hidden Services     Qgimp-text-layer5(text "Hidden Services") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 354.000000) (box-height 58.000000) (box-unit pixels) Ib:i"F"R"^b:!]"&"6mZZ(q"h"hww,1h 1h vw ]h hhh1 h hhh0x h hhhh hhh?h fh fhhh3hhhvvhvhvhh?h?hHHhhhhhhyhyhhhhkhkhhhhjhjhhhhwhwhhhhhhhhhi!ki!k wx j _ _z!#z56r"6ro]]?%LٜlF"%LٜlF"}u*D1<[ r0V 0-0#0  GYhw D G4Pl O4Jp }$ J`7yZ E7yjhg oZjhh &#hh0hh @O/hh !hh 2$!H'$hh  H 0hf I-m* G+J6`6cG60U8[;   %HH="1Dz0RrG/2/X/= " 0! mKL$ Jip,$=c pA+so  humcV 2IvX+6G>dz ͫn^0<3dx  Jv( i2),dx  O*#7dx  eO42. dx  4>9dx  q4RO|dx 64j~ 1  4dזL hf>7 9_< 15T3   HH7-D8D9D9D9D2D !   JjDKip 0= +v Dr.+r- t2DRD.huFqc;dSD +6Kr5D!^0<# D=Jv( iE%O=](4+eO4Q^2QD=g 4JצRD*q4i]L#)D64y%J%  3; `NȪ=~R`ak&mF=>7v @XKV5T3X<0dϳl0/F/ 0q5-1oj5("    %HHFHHC@'@0@ @ @  !@  KL$@  =c 2@DL~  so*@&  g@>  dze@tt|k  dxJ@_  dx":@(" dx75@2E dxD@ dxW@Bc  dx@ Y* Bj~2 wfL T]r9hL {ęy$UF + DY%B$=?2 }XDL~ r& +W!>~pEtt|kz_4" BE  qDBc=56 Y* kL"@9o^t$UF F #-  New Layer     - - #Selection Mask #iu#Y]ae,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,G#././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/redhat.xcf0000644000175000017510000000666000000000000020642 0ustar00userusergimp xcf filen BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  ~&Red Hat     Igimp-text-layer-(text "Red Hat") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 138.000000) (box-height 38.000000) (box-unit pixels) & &O |   %HH>& HH%HHC@@G23  @ Z@ 8@ u@ !@ X@ 2 2@ 2DL~*@ d~r& g@ 0>e@ tt|kJ@ (_":@ KE2"75@ ED@ W@ PaBc@ " Y*2 wf dkL]riU@9{ęyi$UF  DY%B$   H*)HH--SPY-HH_L TLT4T! ;Tip 4!+2|||00huT +6T88^0TJv( iTOTeO4T 4Tq4T64Z)    fuu`Yyv>7-)5T3X G||||E" -  New Layer      J-  ^- nn Selection Mask  n  n ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/slackware.xcf0000644000175000017510000000675700000000000021356 0ustar00userusergimp xcf file BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  2 Slackware     Kgimp-text-layer/(text "Slackware") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 152.000000) (box-height 50.000000) (box-unit pixels) 2 } 2 m    _wLle%HH HH\VRH0-D[F 20D0D^G0Dׄ0DZc0!  D0ip JjD60+ +v Dr 0huDRD.0+6;dSD w0^05D!0Jv( i D=0O#,0eO44+bR0 4QD=gl"0q4D*@A064)D zU9  %J%+DW`NȪ=~En>7&mF/W~|W1 5T3XKV   ! K?D$'ip sj@.wc!F+$k2 chuDL~zQF+6&Pfr&  7^0 > fJv( itt|kJc< O(_GZ`eO42" X 4E ?q4%64BcP0   Y*RVB`  kL=j>7@9EK5T3X$UF L& ,  New Layer      ;,  [ , { K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/source_repository.xcf0000644000175000017510000001254700000000000023173 0ustar00userusergimp xcf file#BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 9)$Source Repository     Sgimp-text-layer7(text "Source Repository") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 297.000000) (box-height 36.000000) (box-unit pixels) )$!-)$/     _wLle2\VR1[F 00^G0ׄ0Zc" ^mix\sj@6,$v >p$k  pKmcV  p&Pf;wG>  p <3  p(2),  p#,,*#7  p4bR2.  pl">9  p@AsRO|,p zUcD+D0 4yy  Eז޹z /W~|W1 9_< *YO5   %HH>& 1C@023  /.8.uJj XK +v 2 2 DRDL~ 2DL~dSr& d~r& 5> 0> tt|k tt|k(_ (_+2"KE2"QEE)Bc PaBc% Y* " Y*NȪkL dkL&m@9iU@9KV$UF "$UF BG=~   w&: 8WL2T28ULT94T  "$;TL4^m-ן4i14!^;y,$1ay4e<2|||?4<T)KmcV94<TKmlfG>o" <TGl<3j<T<l(2),S%<T(2l,*#7G<T,*l~2. y<T2l[>9$i<T>lsRO|@$<Z)sR~|@+Bf] 0 4@p>Y0lqז@.m-lJD  9_< CL]4 G l9l987w6(   "*msj@iQ,$$kx RcV&Pfk L>  fC3),".,#7R . Qk 9 O| ! K 4  זI9_< *7J6`6cG60U8[;J %-  New Layer     - - #Selection Mask #O[#CGK,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2s9././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/the_little_relay_that_could.xcf0000644000175000017510000002046000000000000025124 0ustar00userusergimp xcf file6BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) 7`=The Little Relay that Could       ]gimp-text-layerA(text "The Little Relay that Could") (font "FreeSerif Bold") (font-size 20.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 352.000000) (box-height 61.000000) (box-unit pixels) `=`=#% q `@@@* [ZZ',zULv( j,+N!YL(]w .8]xL#(H( 8/"LR(UB7eLH&88c8LbS*HG(aaL^dw+H(8L(.V!H(8L(^PH(8L(vw HV(8L(Y HW(8O(%+HT(:"|4!=X a2%4k{F$nl hp x9$ @@@Z ZqY( Z N! n=$ .8 Pt  8 P/F c8 7eLPR7eL (a<&88 S*P;S* XhLH8 w+P:Cw+ <Bn8 .V!.V! e 8 ^PP^P "C+8 vw Pvw [h98 Y PPnY $: %+S*%+ O$k{F0=X }=X 0ZHxo i Uo*T$ 99-7 >/L;;3= @@@ZXH N!(N!)n . .8(.86 8(88888!c8(UB(a<c8r!9abXhLawe8^d<Bn8 8(e 8A%8("C+8A8([h88($8H iݐ:(O$:b !k{F4!ZHk{FAxnl*TxhΣuc_ $ -7 $ GZ; ;a< @@@HIZgB`  ` H` HUX#Y[&&8888# @c'H G! Ǧ܌/ -#&( 'HZ|w\( ZHtrox( w}HQywU( `Hڃ( /Lٷsx[l10Dil \ nh//, # #3 " @@@@X,^6 New Layer#1      o^6+^6                    TTTTW +`="Hello World"     Qgimp-text-layer5(text "\"Hello World\"") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 352.000000) (box-height 61.000000) (box-unit pixels) :`=Z`=~@@@XB n+%HH*)HH- %HH %HH5gGSPY H0HwPZHH_ 202`0  03[0%0a0['0A m2 000DL~0 r& 088>0tt|k0(_02"0E00Bc0   Y*9uukLWWiyv@9n*$UF O@@@ HHHHEHH0=33ń?0T 0U W 0OR 0EI 0"DS"0^m  EM ^m0,$ B_,$0 6S0KmcV #`<G Kmc0G> ?G>0<3 'UT<30(2), JMt (2)0,*#7 sڍ,*#02. )U2.0>9: >90sRO|ebsRO9 V0 4' 0 זV6̬ז 9_<  k>2 9_< @@@@%HH HHXB n+H0@5g20@wP0@`00@3[0@%0!@asj@0@['$k02@A m0*@V&Pf0g@ 0e@0J@,0":@7075@ 0D@0W@|0@92 wf4  W]rn{ęy1 DY%B$Z@@@@@@@@X,,  New Layer      |,  ! !!$, K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/to_russia_with_love.xcf0000644000175000017510000001607000000000000023457 0ustar00userusergimp xcf file6BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)   ?To Russia With Love      !Ugimp-text-layer9(text "To Russia With Love") (font "FreeSerif Bold") (font-size 20.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 269.000000) (box-height 63.000000) (box-unit pixels)  ? q }  ?+ x Q a* [ ZqY(ULv n=$YL Pt ]xL#P/F/"LR#Y[&PR&8888#[PH[PHL P;G!VuVuLP:C/HHL#&(\eO\eOLZ|w\P(TTLtroxP([[LQywUPPn(!!OS*(V>V>"|sx}[l1Âչչ$ili U\ڈ7ڈ7 //, #",$",$ ,zR"#R,zZ+ 8[и+N!(w ($*w .8(( u8 ( 8(&88(a<syX^}&88c8(UBG(XhL̀(G(ab(<Bnq= (8^d(e e6PX~(8(("C+'a((8(([ho(8( ($W~(8((O$ N)(:(4ZHCح4k{F4!n*THn xnl-7 / $ Z'6 j,7]:H:H#Y[& 8888'7eLH 9ES*Hj]w+H#& .V!HZ|w\\^PHVtrox Fvw HWQywUYHTPw%+a2%sx=X hil '//9 3333C!6 New Layer#1      =6 ] 6 }                 D " ? Client Usage     Ngimp-text-layer2(text "Client Usage") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 269.000000) (box-height 63.000000) (box-unit pixels)  ? ?0{HxX %HH w&"yVcH0 `Vu20WgH0Lm08U0$5%0    K0i1KL$0e<2 =c C0<DL~soq0<r& r0<>dzE0<tt|kdx 0<(_dx 0<2"dxf 0<Edx  R0<dxF1N0<Bcdx)d9B Y*j~He)RPW>kL n@9LIvxM $UF %HH-(HH(DPKL Z#T LT 4T ;T $! 4!-ן4ip 2|||1ay4+T 4huT 94+6T 砰o" ^0T jJv( iT S%OT GeO4T ly 4T  H$iq4Z) 9o @$64f  `@+  Y 1#d@p - Y@.>7 G ?`|V1CL]45T3X +0='r- t2 %FqcDL~%Kr& $<#>$E%tt|k$=](_$Q^2"-JצRE-i]L#,yBc"3;  Y*"`akL#v @9&<$UF (dϳl0/F/ 0q5-1oj5(" u3333C!,  New Layer     ,  ,, K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/tortoise_and_the_hare.xcf0000644000175000017510000001762100000000000023723 0ustar00userusergimp xcf file6BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  579Tortoise and the Hare      "Wgimp-text-layer;(text "Tortoise and the Hare") (font "FreeSerif Bold") (font-size 20.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 435.000000) (box-height 57.000000) (box-unit pixels) 9   )9@ @@@* [",z ULvN! + YL.8 w ]xL#8 ( /"LR#Y[&88EIc8#Y[&&88[PHL %doa G(VuL^t8(HL#&XV 8#&(\eO.LZ|w\Xpߐ8Z|w\(T^LtroxXp8trox([vLQywUXpߐ8QywU(! YOXpߐ:(V>%"|sxgk{Fsx4չ$il=xilnȌڈ7 // $//",$ @@@%gB Z' N!((H.8((H8(7eL(a< 88 JJ@c'Hc8(UBS*XhL7[ Ǧabw+<BnE|-8^V!e D'H8(P"C+DZH8(w [hDw}H8($D`H8(+O$D/L:(=X ZHP Dk{F4!*TY{nhxn9-7 #3 " $ @@@Z^ .v"k$0KW2DP$7eLDP(a<88EI7eLS*DPXhL%doS*dw+ttP<Bn^tw+.V!||Pe XV .V!^PDP"C+Xp^Pvw DP[hXpvw Y DP$XpY %+DPO$Xp%+=X htZHg=X l in*T=  9-7 9 @@@@@@@@@@@@ [ [ [ [l62 New Layer#1      2 2%5EUeu                        g 39Event Listening     Qgimp-text-layer5(text "Event Listening") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 435.000000) (box-height 57.000000) (box-unit pixels) 9+9 @@@%HH9,B.A6*.\//9Z/\  ;KoKL$4%Wt2 =c 2|U{DL~soE*mr& 0P(>dzNett|kdx U6(_dxo( X2"dx0}-hEdx dx\]Bcdx^1 Y*j~f *\QkLh %c@9L [ $UF U@@@%HHDw&%B L N= W LT   TLT  8U LT4T 4TT $;T!  i1-ן44!||  e<1ay42|||T  <4TT  <94TT  <o" TT  <jTT  <S%T(T <GT2T b<yTT ݠ<$iTZ) r<@$Z)fCB@+fYww*p>@pY-im.- G#CL]4 GC@@@w&: 8W998Ua   KL$i1KL$02 =c e<=c r- DL~so<soFqcr& <K>dz<dz<tt|kdx<dxE_dx<dx=]"dx<dxQ^Edx<dxJצRdx<dxi]L#Bcdx<dxy Y*j~Bj~3; kL>a@9L m v $UF *3dϳ2/1 2q52oj5(" @@@@=<t<<=#=%=~==<<l<F< <-~@@@@@@@@ [ [ [ [l6,  New Layer     , my, -=M]K%././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/resources/ubuntu.xcf0000644000175000017510000000636400000000000020716 0ustar00userusergimp xcf filed BBG gimp-commentCreated with GIMPgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches)  n%Ubuntu     Hgimp-text-layer,(text "Ubuntu") (font "FreeSerif Bold") (font-size 30.000000) (font-size-unit pixels) (hinting yes) (antialias yes) (language "en-us") (base-direction ltr) (color (color-rgb 0.000000 0.000000 0.000000)) (justify left) (box-mode fixed) (box-width 110.000000) (box-height 37.000000) (box-unit pixels) n% n%T @ @ @%HH-(HH"HH!DPKBT#Z# T#T#T#T#TT_yix\KLȅv >p=co psWQ  pTL  pdTp  pdT  pdT  pdlT]  pd HT4  pd9o T,pd  `u]6cDj1#dtyyYذ%:޹z L ?`|V1?"XL*YO5L}L)T(LT'4T ;T$4!ix\  2|||v >p oT p T  p zT  p xT  p xT  p xT  p xT  p xT  p xZ),p ~fcD Yyy  -޹z  G*YO57-  New Layer      -  - d Selection Mask  8d  P d d ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/slackware.png0000644000175000017510000000336700000000000017342 0ustar00useruserPNG  IHDR נsRGBbKGD pHYs  tIME,y'ҴtEXtCommentCreated with GIMPWRIDATxyWU?8Nj *)i9)fDYVR.d+%jE(Dd% ͘fafGZATb:cef9KxmI,:s2dȐ!C 2dȐ! P#|;KҧcρcK3}#{pU^L`0x V ɘˁ@<];}^k2\!o,U})YeDM?p=WF'D-#BrԒMߋ}F8)D.N 3.3U[2d @k9RyM'm7MMY!:W6s<;(S0Of^ˁ&K*0Z] ԏ B\]lC"j\f-րmU̦&ۨ jF3V N _jT˺UjGrϗ#4^b<1so<խJvpXɆ BUg{Ȍo䃍HnA{ Un<^4Qs78,x C qp*uu\C ?-/uxPl|T-=b꟏."ux Lܡ0*kFw!d荦GDZ]D(ScwciqS"›~kTt`RT + #s ұfDXblܥ/CcjIp-$%6!>"2Gfs`Y;9+& ۀ-"[!bJRamV IvrۭJ|B!I# a\z9cZuoC)^&w$,'"5G`W; r%*u / Kƿ_PH,`ײ}xZ[<*|GlDA I >  ] GqTc#'0QkeҞ2~M|S1znס|QW>pH}I<6CZvNzϏt]axDǀ$*(OqmJ@%AɱBҶB9/h.i/5 {<'Eg 2dȐ!C bo'e8IIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/source_repository.png0000644000175000017510000000530500000000000021157 0ustar00useruserPNG  IHDR#OvsRGBbKGD pHYs  tIME7 lYStEXtCommentCreated with GIMPW IDATxU?,D+AT~`P&E0MI&9bB1 C?DMk&SCLr~*%l2+,q{y}~gss={9]8tsLFK_z`pX0Fb5{=.^}YguWwVQ%^RAY۔i@6zU[kSuI_mMӎWZgU3]d:Q`ډ0~7(xW ]f0Ьzt5n(‰0k (x-bwu5X lf8N v{O_`_.0Mpa:w\IJOl3[ 7>+88(IЁs8(;c,xAsj+1N6XbB3I0^A|^'0ױ]ls<0|7~߀ Wp{4/ -4Ҷ\V1^ӽ=9(tc^]頋3Ʃ!k;MNg1!>֪e{#LFJ˫ˢ;'8󑯰1ou Qu?a6O(n=vh).<@w;m6U?O}{8&e,nt$`PRni3ib-侃0)zI1KŔ7\8t(&xnL?((J_ޏńRW0Ndd.QuURpWw9TtO^f!< 1 axȢOխTu(f- p&w,HU3|r1j/*bΦySS:TO.,+JێY\fs+Ww`jj(D(gJ9UUTV)1O}N puZاV_)=ImP1d<0V(abU>G/WkQզxRLdI3#_8NCJ6J0I=ӢA Ȍqmmv\l-ryPvD!v_*1nʡc:qO\MT1h>8dYK pL%&ٱ{hE~nL[<[8ƪz͈bf7r/lS# wʡmһ6ȥW"uPVUbN&7~/)/m"`}2)Z#X7 CfiLK.8ND-A1c"O;~0&.;*#ΐʡlhRbZYgk4F(H|g8lY?RoΪ6n*UAfț U7óגKu>GȸF2C#tUw-gL>cV)e^Ϸ[|hRj$6`B-*_ie55kXC:-'[tKCC:27h4ptzQ-iSj9>tPϒkي%2;F2SZDD)rKN@+_cvlNO_d{}m ټs$k>mv# 11g[rԿ&r22|i<*mރOIu ͆rL\ лB.m\YLWZ1ZQ{/"1Jqlv; j70`Ɇ#oQf6g1Fsoadfu?CJ~Nvrlńre9rZB+ܱ\e4| *=Va~,y+ 򪘚/{ \ BSEqf]|<&1{_0Σ "n&IANüwմύ|DNMď{@y?KBE^˖[MRq(]@F%<NL@g/'ã0(+^#&_߻/Ib_$E=<ԎNӉtƇ3/G鹵C& %Ifj1ixwŮ 0iiq<*CNIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/the_little_relay_that_could.png0000644000175000017510000000764100000000000023124 0ustar00useruserPNG  IHDR6ƄsRGBbKGD pHYs  tIME 4oftEXtCommentCreated with GIMPWIDATxyT?a@P@ "EP9$nq!}I = $ .(lAT# 3?󪫫^gFwN鮪yUu߽Unݺ頑{(0xcFޑg j(xJ7Nyx|t@8֑ ɒ/zjS 7/3Kݭ5<0Xʟ&kw/g%@`y_͑WL|x@)G~W;מ]&/p|y'_vn^ )jЧ.g s0?~`u RmC,e nþ2.Bb z<8U5j`y آ&gi qZc&Qh(_-.Pmw&/kYKxSXk,[#`e yui2Mc`h5xvLe//5#[BH8UOĨh*YNPg}iy4AߥeKe'^(+zQt-ig8jPFRs|?ʘ G뭠|Gu=P[tID]ŹB,IEḏO0|p& L y3SOG-IODe^]ey ;ḍ '#0Avi GUdoM}]ߨ=$}vYOF/n&|Q<+doYaLqԕozKzXLL![u'B)iG 0}pgmAo*M-o}~ю۵YЧEXn7<\#ߟ6ʮ4&2;vUHfԻ+bж \A67o{ͣ zҏ)W{jy=ڬHecf4Zf ņzY^n݅$;Q>_]ǽe_D9 P?.6~,5xql8,꨾Me6gsFېk7w";`Dbe+cxEm0qUmrE_c~^EP"W]6EXsL&h)(f!<9h"͒EvƩφǍ$-5mc B3B 9x*Hp,yмk4}*¹Zڏ$jmTi]+ׇuI/* )Mdt_ONPƦ2B-iz cD>D,._mglo%&9%V-߆:=W&Tsȼ=hk4pt:[3*U0}bB+j.Ԕi痲n:{s 1>S:>뇄;ɾq|aɅJrm)}$a KHxE,=M衇4T.Fm/teٟq-ϐv]lL[gE8[/SP;@Lqۙh;FiUk`kAm@]aS\Ns|F-)ڟPLv}2Ƭk+e ܲ.k %䍸L5A>K c֦va]o|҈$3쫊J6y‹LQe<us 5t0ꞸgKD$LI~÷¢q@f)kCLRR LѶ.=ؒJHv ꏍPV|A;5~ЌڙY?{kTKPF[ȀlA~ICY}^w's0GV=2=PnCQWGeo2$:e,t)hC!`Gkgy3Kv(BceaڒT&lUۣh/3>.״QKS]*r ZM՞nhG {ЧhYuF8|L 4̸FR)婤_<=.&<@|>Am7=r#^n%i \Ǖw*ɓ]xIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/to_russia_with_love.png0000644000175000017510000000757500000000000021463 0ustar00useruserPNG  IHDR6y#(sRGBbKGD pHYs  tIME 4Y`tEXtCommentCreated with GIMPWIDATxyT?afd l(*(P(.5dAq%*b1 PQp[P@@pQλ]SuLO;睙~U^խ[޺6Ĉ#F1bĈ#F1b(zԝƤ;f \no0`|W@0fO<^'/cfUwm"&gB.wKSvz0 gyo#PJa&@ sI΄]0`q_#!_gש -]ŸYc2-FxύɂN˳1m {وx:&ܡ#3Y7g~> J9JLe-;eŢ4:)[H@,|D (U*@ov-sSp L_W<|| | |MMFH;VI}=~?Snf}`O^vEV) ܠUaDmiv}.|g)*ZOʽjn;97!vw] u=":5#\٩`tz"jܬ9t3۟"jZ7Keo\MDȖ% ǰeDŽ(ר;} F&p!]>ߥN|Ik8W9GkbVjDd((}s#*_,P`;6[&`?VUJ*NBc%>)>5\ bKd;%R p+mfDBF &n}p g˕N1f,0<,%D̲Xl sƣl`և(>>5+#(ܖxL/F|v ]G?^:bEr[]eds8Wy#* vsV4q1)FED4s 8P9_pDxZH[EAU]w zQ-Y>t>ᙶB{}1Qee ̓=ryX;ҏ.v4Wٺh Cke"1Eg 06uRe{g87yrHgbǾS|^D0bUf7y^$դaN w8Vs(y?J=㗮˧*Hg_q*]b83=2éW 3A{q#7T/ L,)BcZ;'H½uٷJ9=P_'G{U!sFIZQnYUԏ*:(e?]<g؆9 =B dZLgz&^`wkno%ҿJaC%:q"ry߈ Q:mus uԏ$|(Q.Q\b{nLNjÔ=Fxw{͓:CTUۙt3vRGx?*ψ`-6wx8D@I{__bQ2aX%7`Wsޔwm q\5bqY9u s*"C<;`A /P֧gKS5.*\sդ  w, `?Qn Ɏn1bS:H*8Pй%D-bh]B4}w:1>Lj7H`&7!ds>BXC! =~ - 6F1bĈ"?ފ dEki3پxʄu ds=e;?`,.œg7wo#uVy'] 8DMl$0]!hT(σ# ۔xRiU ys ɑqϑ +6ЩSHrFr%uLc^C1ԁ&ڧ^{O<2a(!9Gto r4N?p܅|(o0~U:4B &R?2lۇ4t8 7bܳ{8zKZ?JrJi,M2fk [gPx_ﶨ87a<?nXyK>q&:_uNY(4e;Ep!7& +YT/H'gc\bci icaPu  -f0E2{*!\*M0QǢ]Iz?h_:3&0^,cy~<&d&?*Y(ʎ x4q#!³kt#q%]-Lַs@YsSD:}ga\w?~$gJr镎o&[1*fVg:Y,P{&'UΚ ~ \q,_~ʡ@06 qtp뛶h9LƟ9= (t扪bDA (uݬNC~%MemlQ #&zLO .PIi”5ֹ?X V| Xe ADSHd=Ȅ.vR_$ibsލfC̵Q}7s,u\RKE,>%xp GT3 ,,xH)M4w[ZsÉ%葘+D;Fܣ l.yd 9VX=3.mj=Dn,V2(f1^Ujo9"Sa|'x 1ʐ.%yz ]w&\3WpҐ:Q UdF{cŬ*oڥcOS",L0 į95ma #1['؂Iy~2eXr$D-}%9gchieγJִ YIqȜ i+,,CDSa:AS?]zOdvsS_wIvZNS~OL݈Jp\]+f0tuLiD5ࠤT8e1ɇ=#1;U+de¥W)Np(w/*U}07S}c>Bjf&j&Vt &76m;$[{bR*V4 n ME‰KlƤH~^Uʭ.]%eY,5dX%ļL!!b/+CL:k.v'Ȣ̲.>Lw[ow_se3o5L'ښbFvu#orm&t1-vU4;KG)6j!dB٩JeYa?GY/!˱Je4常?Z(tQR.UTk1b9ëIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/label/tortoise_and_the_hare.png0000644000175000017510000000724600000000000021717 0ustar00useruserPNG  IHDR6vM:sRGBbKGD pHYs  tIME  ׶tEXtCommentCreated with GIMPWIDATxyTa`Q"BE% FԈ7NqIB4q1Qs\T\(F1DEc0 bԀ`TE$?}o׼^wOwOOyW}Unݺ<<<<<<<<<<<<<<<<<<<<<<<<<<U@`@4/SƥzinlXTtkum@s?`"XvNەK>i66@:zd~f U b:GA :$J\B5F;'NCX*\uWV&N[nBѣ⽄L `:tUc:{GI Bѣ™NO6tv>3u.Su(ؒ*)~bkEUoGf>,{v@=<nM|4-ݙΟ)qzk3s;>o]#:i8KYhofg:"굳3D^Pi+X@v[!;kI~2ȧdH㨐:!_x34Y>{ χ|NfB:w>vݫzTcB路lum+`Ь 'i݊Ilu7}_9ʨ8wc:T>%gt9OGj5xgh_`6̐r)L-wޯ yjtԭtT|?aZ0atcYw]z iHqBipNwF' 'u_t޹Nm鄥/PgFf҅hN*'λtFQF 00b$.4Nu]eεsDK!ŶZ(gek2 m tONXS@ʋ8YGSu7ĝ2k(啋gCFވuys?8y6 hGd9&VKtHfDyu"( 3cpeet^.u]`MGQJۉD˝},<P(֡tM/AޕLtT2z]r=a:.~萄Ɛ5!uOD9\a"|UAVwΒ&g֭\^HL@d[usLNg҅lAx;*Yp?b2# Ql)ݐjh}X)Щ:{}r2 Imεd^ *C=IW p??aJA,D]oȸlF+dUįІ~ݼ;,hL8 HZ.K Q!\FZMK!:qxΉ9ΜuTEKÈ/$}@K,ҏ1\aHW[b=H`O 䶙'>ۇ*Kx y )m0ҵF"H:h"?qYkM~:)H7u}!lu:ZZ(MtiMyqIV,gvoa< \Km̡9u@]{A刭-} ˦ԭt/4z܉GNi:s["33=<<Lӎ6BvCx!V7)2P;OI)D=xb̪.A>"%ň5#_1?nC0n6W@!֠ܡ h[v6t"ef /MO8MrlidAh0Ch&.Qv k jΒ V"&n Akt22)сN'·&aL&RDkt2N;ʧE$Ėo4?&V& /m|O-3F1Evn?wѪ̒%`9ܠf9s~[H$I(ٹevTȲ{A{2i˫ Ñ`: ēek僮囵߬˫suF;VSG/ Iw6:g«c\7j3®}X/y$ w#^I-"]Н+-Q!QLgˈܧU;@%Α> a:d[ByqȳV pY L>4e)QD$dęB/)q>5:U&3ZgtC:*`@F4e 2 ܹtaBa [Qg>"VK/Ag )o8CVsL/з 0pX&A4eQ`ӟtCBF [EjLb߻%̧I#(a>6>½Fga!;b9K w )Ӧi-@q9ۼ=E06Y7F.4qS<$}k>!-|QbL"-V!ڮnCXklc~n‡"+?9Dڬ&a>g Edwc^t5NDe>{]^S3W2%Q[1g9C _ |Ç#[ ;n}G\P-*`?P͛j ܳ[X0/~ :$ZBp,RAF9pE>W: nmׂk\y| 1g[y_I'%Jh4^ bA@(@җSAl:䮢{SdZ3u+'@AO b?酾!-Nɏqd6(z!?q%Eb=W*i -1mt{JKK`c}T%y' zZ|"P-E W-c@!O-Ή_-sE!S )-Ux硾'G5Qn=,vq"H[+2dfAi.Ns ,8!rHTЛEi"6`jIj{tNJF%`W:? 39Gb2N%J#:Y W.(`l|$a}+]e[jDׇ>|$~vNoIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/locale_selection_output.png0000644000175000017510000011055500000000000021231 0ustar00useruserPNG  IHDR8CVsRGBbKGDC pHYs  tIME p IDATxw\G9zS@ "J'bbAc5c5yQ_k~v( bG. 帲?M n[NT,G1e}zLF鯋zLO<}!6}v gEBtiz@C2W=[%ﰑ x+3UY{5 JnmxТP-DN4;1oEK "*K#F3Frڋ*vrQdorvݲE>proJwB*x,+‘ڐ#d/ѠN+‘n M)x8+dRӒq5+HT{[W_#2,'*MBsK;۫RRR-Z4w܅ /Ç7NMM-44gŊhPQQÇ7nhi$Ν;W^^uVEKII_z5z'DS(/^;waΜ9sΕ={utt>SG۳X,?~}۶moਨ28qΝ;\ʕ+WZ% rvvnݺΞ="/ƍ666龾={l޼.Yduuu'Oej`WF~zN~zɄ-#8-D܊v@(_$px#8/%olyIoEꞲW]#8y]$>ly)DSX0$xBQ)?ID#8IZC4 [$b]:VCdJOsg=ζMݿlÜBe&ygIQg;4  <AhP6q :=NWY"%p<.w@Yɱ̶M0?7s<o>ah/=Ϯ a~v}@N3v0F٥La~Wa~j4z`` `XǏGɓ}Dorss%}}%{zzBB.]j``[qBBBd/ft:hΝ;&~ 8`0hѢ &ܹFDEEe̙ر&E|G}%3J-AVOˮ,vGrL[]%)DC~ӉTrnz :CM3H1N$ =D*hjP$AP9*`&}p|WtT>ԕsFlʋfzDB{㊫*T+sӅT(WsڥmAV*zΝEO+x~EJcwdCbIؑp;8EBf򅝙 ozG{_J>J/46Qxj0AG-%\|966VSSs͚5Phhlԩ )))+\"5sss)b.O v޼驭 r5 xȀC4^(: LM"JpxtbJ&ĵE-;QV-ǚo >L #SZya7`5ū^hp"*W}#Ibm ;KEevmzi ݢ;'1 3H.SU5`/4E6 o^&Mdkk7ܾ}{ٲeO>ũGGG* 0555k֩Sׯ_?~8~4i?:*Np8VVVEEExbSRRRWW7n8 矋...NNN}Gwhddv[T *$4@ VӅ>Fک0THy%yx׈؂^YM܆) ed@UikktvdȌNx>^t)ޥ$7Ǐwo߾u֚5k,Y"OcΝ;}tMMM@DDĀnI"iFyYEEK|=jfܮZFPڊJFzޫJhQ5dcde@6.iRf(,qY8LRjiQi$t؈LaU>ioJJ{h 5i-hM`z]?;mg^Kr0OR- ; 'vى'!:ri}o8hV79#QoӾ` ߹8E쭱`!0SӟuaPuZENj,M㔥N@p'x_M]%W^ Hllg}K.00pӦMUUU۶msDΝ;+ՙ8x`bbĉKKK-,,t׮]SN׮]o>kk˗G;woƍ|44##ܷoÑ#Gbbb˻w{WK4iTTT._,1A&y<bǞ666-AYbTAclN7d$N=/Z;hK5r_toX2{zo4fwUd?hMŻɕm -@p &yĤ~hoUpy&j+z -([ꌮ&A|7]oC1^c&SLNWDa^dx)j4ӊ k~/{-nY髹p2+x@,x_PՔe38|K[N3$F'Mu&%tTXx' [aUTT$ 'O|K./ŋkkk{xx̝;`:uJ₵k噙gҥSL!Hⓥz{Ǝd##G)azI{{%K6o\ZZ* ]pË/NjuYYY?ɓ'?Э14/H$:^TTtyD"DG`EUU@ *$e/G(L"NdNImkkxk`Ts_etzh4-s5sȪ[@M픣Q!T7r*SAnĿ)|JNFfT}y-Z>eʔ)Æ ƍgkjjj$QÃ|pR[[khh886SD,R%@>0ʾP@>B &~[@!a6PޕKg?Hp[œfT}߫WKɓ'Bg|4yi85I0 ++!tHFya7a+B-C q4YT::6 qjkk~E̞= @ ~AAիWn݊HcԨQ}#Ν; ʚ6m5 '|"]KKKWWW dAE磢zzz\]]P2QXX(رcfff8FKK &q>88D"_g~E.k@ ~Q[p':Dтŝ+V?~|,{{ϟM:L&?Ν;iii;666>|/'' dKJJ~ &5jԌ3"""?~|ܹ;wA|wrl2w\[{ԩSMLL.^xamm_Uf~EP(>`0@ =jL,*pŒ mٲa~EdtPjɓØzx_|Ξ=; 7Vjڄ ;v "@ 7_}ݻ7;;{B...1<رcnnn/_FH\5}}}?QCBYYY???pL&+99~mllL `:jQQQeee ,9p>޹sgxxxII Ǔz22П؅ jhh[YYYXXxyy=VVV!NG' B~!:j(fffW\P( xDl۶}+V H$i4#F8qDddB  v@ v:t=ٿ[ _:"" ,055moop@џd\rNߺu+66gX ?](>}Z( @  tB-?Og;<@]]}ڴinnn?z~߾}]]]___o':rIs΂ 5553g\x"99BL~_:k֬]b ş_v^t N@ "cSCC#''N/Yŋ{wիWkkk߽{7))=O?}7>>-- 0t|#A fl͚5ښ3f˗/@ @rC"***...!!d><00p̙!@G @ B2T@ t @ Q@ @ :j@ Q@ @G @ 5@ A @@ 5@ t @ Q@ @ :j@ Q@ @G @ :j@ A @@ 5yA%@!UU]P)P$A'Njk/6Gϖu޸Qen:sःnik˾A7oV?}`l 0PS䴴Ǐ뫫}| N5LNSQhvjp- lM ՊnimF+PfttםѣnHH1+P($}}њB IDATd4d3g\-[)Qf7&&r֮oܿ_̛8QOh]ZupǸzubx?,{Ȉ9o\V9gFF*c~ @~/̧Ruu Z.Ɍ1ɘ132"yݺ4Xk3g>ѹU\܎S̸]77Ο/S6/NTS=}*5b5I$T&'>42[@˹y_¸ >.,buӦ _8o8BBGҊ24>vѣhWˤԆ;s?k߷/ƍ::uW?PT]]HawWI|ܟdOعs+vYY#GFdrv޼m( ª^GMS3zRR#z6008j $EuM23@D Nϟ7DEUMLn[S,v6^hR6)z*=xb5I$leʕ~:jluu% چ6ޭ&QîGx?"AwRGGW** #G63!jmT'YIDeK{T+6>TGut8..:d#/>Wfslm5 Ļ6o !"ϗh_omhQSfܾ]Y!tBʜ92j՜9;W%(y$]Éu9}%̟'F_}e?nCC/6Ӝ* chvvU[DBphE;w;gܹ{䦧7L>X|p*%YX: =y℣s{NN,[Ϟ5DEUkJ `?^H|| ɤնmّ7$3c\\+tvfMt>+V*-(,lwp޾}jzh--ZmmcFFYLn )(*j?sET.[[ <]2lkﯦxRuB͛UL&EM 07Wݴ#<kIhhiBB#3|"v/nUɤsKa3FM!Re3%F 98Gv5ID2 'En=ˍt&b9'zdѡCD>_}=W9+(h&EFV}A۷Ǐo_nC'Lx(%K"p;p `#!N>a]B\2 eeOo:/5n\\םZJ"D33g>oZӜս6j]5͛3+[DB }zz;kJ)pQҥMM=aHH1.1lgwk}Mdr/Fٿ?NZW׍;WOgRcv~h#;Fahh&O L4s߾\=hإQAWUplۖ=9j9-q/cNîR17PǮGءzƮ)D v=%kk{Spo͚gSLDD>eH3I_'u2 ?z'3W6HСϺNks<0>bo:踧8EEIINN,:|&":d0(Bwtӛڻξxzꛙ (ҥWL|WSSyKƦ`j" UU݊$PXtOO}@W:==ia@ ׮U5B!4\]ukk[[W_Tvw {ZZxͼ&'DagX6ZvKm,-,-{:հ҄'߯3FKokYf=°va4kQx=y}ݰKab(gd43dMޙ9̖BnV#ȑ3+3yZ||}VVP&LQH::^^q:nGT?33[[$-@{wnll]b"Ȉ#e`P30x~ >jftd'O=QH\(Y&|Jjj-W?mړk[%I"%@U CGIMm8Q'%E'./z##?`d++uʭnXkohzXܹfӧkjO>1JNnjm}VK&U ͨ}(<iO$ ok:,^=k&*qEMqРut*yXmOz_ƏgI@tv 23W!ڰV qްE 4)en{WNLhdq#N5JJ∖WT=ihwZ@IjjVZ[ٍoGVTtI|5 zƮ)D,G&{1| ?tKqMʗ_*ʳ 9OWZaa]\Xh]zzs~~{g9ZYI|ouRRLf7feޝwzze˒ݫ_~$/jj9tJN+3Ν/w߾;r>mjٳ'…r Hwߍ|!8363%F%?2%V$>/|zBuםO6<}3g>mo\9O~h#&n߾ǏQΝtiR*2[:n``Ym[Dۂ] Nϗ_&^P$bLk߿?ov;Ar27ݟ|bk֤_SrHH1җl=c"uP&B!fs).|aKqMWSת(6?]9;\0~<;9#r(7CCF@3=%2o }kij\]%ul;Ə cog燃ye2)Îjjԓ'֭KRIz[ڰe/_ff6(ԩ{H$gx8&U7\yvm.}lSlPTU55@5I$TI^i]B|| NvfRDO\g@[4= 2{U8uI4-C5k߻7ɤk.^lpYY?yjՋ%KBD}SΕ;W03S=t66xKD+w~)01Qߺuθl/6PHqdZ;FM!Xx6?TVvik33DTפ|5Eylxӕ ?z= ''VRGݸ1e„G $M )/x$55ܙ2r/E]55] ܙ@!%NiR &D+tJ]refJi9gaqk,jxj喀is$_ڔ!ĵ3D*Æwط~xqDV}l7`un +ц4{إn(uiuPefJQi..n>]7TO?tl`Kr44x>!eth9F_af زvX-X16fΙcysʕ#LMUZݫmm¼+:jQjG!bcB1\\X!!Nr|@ U@ 5Q R܄ccT+z XevPBڴŋѳee7nTΜi28`srZyccf@k'9-nSvBdoo;;MEiʲZ,-f6'oؚ$ի55o"lVN34dl6Z2DpCB\!B!3F"!#9l32]>\uf7&&r] .{+d m \]uEg9zy1^4xٮڵ9sWW|W6g=ZpЫnOf lWCBTTtYFEZDDƍF:j˖L--Z_dttI۷w}s@;'y#G X,)z!!%.CfիӌoY,5 mLfsO,ڽ;]1cj[DBe䗕uJRvV{f\Śg /^4 6.$iS&I12bx‚vOgϺ 6cɒʏ?6\"m?6Y;l4#]ce qjj׬I34dooaIQ#bʨ ʖ 0JP-î]/F7f0lySS3zRR#Z``mǃۂ zzAA)$23@D Nϟ7DEUMLn[S,v6^hR6F29<'An8/Xb5I$t`oMyWt[-_~]wo.^P6n58sϕEEJ5y?8OutQ {Lhh)Z+Z)aS:;wVփ*vE$UQQkh“'ee5 OJo+9joձ[[ ??Cww=qoo̠B!r|YNN8Ԥ>oDFJ|B LZjΜgÇ,ĉ:~d̟'F_}e?nCCRTiBo+W\ ի6D`kH(~o{{-v\YCwӹs$ٳ'7=YG`C)) }}i>dR~j۶͛?_@1.:;&M'3.vh~5n54`Ŋ8CeBUUѣ۷`p$7U @D]vvU64hiZZc {ˬDgHf]6a/䐌v_P~fIQSU7m6Sa2S%Ӯ3T{u߾2Seiy̙#\܃"FmRfJn]|{^^qmZG'O:Jse̖60hmQd:J- mu̶':5z]An߮?} }.ZĞ0Ę‘g}ć:;w quk>17yPԸqqu_w(nhh)f`dF̜IH3%Q<=ܷ/<& ,.=R %\tiAtSSzRL&KIĞ<9&0PrC&29|RߟK_Fϝ+USTЧw1;D@Xbb#F04vK 'V\.X=hإQA6ܶ-]@$9{mԨjj7gିw˖Lo˗ˏ}5~cnc ^p3v=ŽmD$c}L-_{kּ?'URm;.])DWRS}uWTtZ[ߞ3|-_ΟFg0JBj b ʯTnܨ cR"l:YMBV#)w0ɉؗN>f{tzoG_!;:EEZh#q<=TwR+W&]z劫JPPʼy %clL3Ν/M{rz:B\DB b==~~^!֦&\۷kB$(HzkU--Çvt/]*WH~=--f^SO^+3DagX6ZvKm,-DLjMIi] ׌%CSSTE @Ń0/E߿LLg`0QwU(?6lM/=x="hrKƎd55{2[Zx i7d$F\lR{vt✝u"#"9;23[ϟ7xyXZge`ʦx[vK(7_j'%q>|hݻscc9FF̞)s~~ ׋[5ɨQѓ<G!qѱtWIMMBէo IDATnl x֭j//)Scq>5I$x}GUn3NQQ1WKJ:Ǎ{ >5!%χu@ݽ_eg88ӧޛ6e?T۰fzanA|AJ%׋d.ɓ$,'qqӦ= q+˼Eخl_BCCNbѵhqq^ 1{{-mwT-[vxdW縷vCMbĕiWDt*24wnBaa} "lܘxq tFSS}$#FDS % I!:ɜ=jOr}A)~\ccsmqq9qO7TV*lE_0l_jSQM\DB B/ɤty13SRq4ϝp@wU/b HLĈ+Ӯ֕T f?(wԦu\]uRRrsʳ:`:%=[9jaa#FرcsMnI-OZ[y헮Ң: >ԢFi>rGg**I"c8zarrSg`ܸS ZGǀƎ񄨩ex S榇' цzH 6/JȧI-Cvv ߻zlb"F#&] S%%qDO3 kdvoELRSЦZn9$ݱcty &~yZ+9t'U˖Y8o4k3wc"-VXk!ޜ&Lk=+#G2g-G-%ͤIlvcVVKaaݹ}וӣ/[v^Ϳ/-$}xaVVKVVˡCTrq̘;wP}vy!+eϞ ʥn0 ULJK;lv_|}=OlM Uvee|uJff˥K+WZ[K|`rn <  \AWd\|(u%;3%&?i'_lp|ݺtEeΧO>m3W'DSo_hqN ʀ4)-C]700nܶ-[m.C/rrZ/\(Bޏ>wߍ|!8363EA2/ڝ1HNxfRH\kj3BKDӤԯ.L/g)VRi7P #G^>[,,nmݚ5DmW+-R')#eHLmƳ 3lP,3ϟ7.^Xڪo-6x>\l}J]yPY mU&{;PW 6EuuwqqƢ U|p̅¶lՆʳge?x:g7t JgR Rsh{>LeرZ|!AsnޜrSS{j[[Rg@ AW H:ssUwVPȇᅬ|.?MO q9Rj⁄~@  .d@ @ =yymPJ%a̼.(hESLv@ "z>O(֦-^ܻ}YYU3g N:ƜVnެ~ؘ`"'INKk~`ԁmT78P|chMq!22R3.˖YʲZ,-f6_f7&&r] .{+/-yZY&Ç+)SbT._vIbJJ:AAᤨZǸzu_e y##yfC!JK uy0:hю<8K.,buӦ _8o︁ehx}GߥѮI % vL ΋>>q&&723qY}vvw7nLmO}5~ƍ*†9rmze1Wx;~Z;ws)*fQQy+Mb}os}C5M(CIIkۃ-Xםl ,2A@8ujOB$?U!:41n]Nq {Iu2y%:43ϙ v\"-+Wbӳg QQ*XǏ&$4R$ja2)?`m[vdd/AmW Y&vc 7N[MZcb2Kтv0ٙ:3V`A«Wm^^УEhijk+02bYMK SH/ dֲҌNx񢩿!OqB͛UL&EM 07W3rZ0tEMݚa'uuիӾ\T^AS @ƍNNnB;njygYYG66;RN*p=Ν55{5-,$yHuOByyo0AA@NN+qTVvݺUw&Auuի%d,lG2 =Yh;wqMa0 2DDEhh]u:WmkmjÅ_ZZq [Q)[KžaH~3p ԶK/O{'UaaU_]ZڮE[+i++;-,Μ{w6f󔕩!uue##:'&zzUxxmEzxD>]t;~=~dҺk>]`>/YQXt&v|ٳ%hGkתv̚5+ϟnޜN2Ub-(0XjGJJd^Xby9sLΝ+MHhLLlaSd떖5(蝚,_:[jTUC#ɮOx>q>zġRr8/GMvVSbJ|4#.Iܿ*%\{,T_gʼns_җ4'UN::*'`a ^/OldҰI??@p.Tܽ[ ֬szӕ暙^Tⷴr{ZZz{뻅WҰcnޜmɴnGKK K˗OMNjhNMm&J\ :8h׭?p(mY҂J88N{f5*qoQ pxxCim2i׋ 71kƍŇ_G2m_FFF Ne0^bѹEȴ_ΡG3yZ9Ey5VTT}rrӒ%f}"#뒒/^La)| _kcCF`ܸ臱Ox)dޅ _FWsKK^^Ѫ԰07EI'VD/_B8@J'BxtGG!%%uu]NNO(Kɿh??}ggsgW҈ܾ=7Rc6i_Eк ݈LeeJttTZwwsklxΝ)S &N*2{ѣlKUEjaqGGGE[5E!_G 4<5H\G[׿Am_ƴiF;wfٓfejjsTT}tEȴ_ΡG3yZ9Ey릤4vt޽۶TWbgcczuu'>YSӅ_~i([@%Psu @ ڈGΟo:s1AC᧖6cQJJskpioJOoڒ}"A{ݺg11 M43(h Q)u$I<=AƏMMmcƬ,.۷/OQ-YbreJAA[xx?Xaegeq̙R__!CDc#R{@=9qq YYžnAl8QVmo`2S?qb3P'uk]:53{RڵO5E31WZ?Nce#F0lIߵ+;3q/v|>x<75(|˖tEmTEEG\\C\\W<{v׻v02+Oi<~\w@~LL=v&w~BK②{ЪݻE-ĵjjzbErNNkPPl EZ601'[x{;v9 !eOOo2غɈkSH YG^9Ul+#Y">_tPa` ;6w#~eC|4$s?4?QviiEQ,m s:KO}b0aaO}N|UIiѩM'G͕硆kP0~Mazuʈԫ**!Q*O*'OIuX')k[IJ#G 55C fn޿_ciy `0fΌ_{ѣxzyCoZLuyS޽kPb>|Z曬k4Oʈי,1w ޢPut|WNoۯʊx[)7>*$`/{*q-`G~+ pP35fYQjjy3gc`z{2VZE~`^i<A|>Ԝ~30P55UGi;j<ؘ>oސ;2׮6dZV7<ګ@ cI;j;N!?ssuĩqkת=+(hW;Vԩ1ÇkBɀ/dxPMxyɤ-]r[g6y3둘ؘ*۷k~~&2<2Pii-1155]^^ӦI5yɞvv ;Wᡏ~JTb%)O*ڗ/5R jظ1Rݽ{qȑd+ԩn>BHIb`:r$@rٱ+WZc@IIM7[  6l=JXXiC/x_-PV*v-[kf:8hQH[!s}8]adl8/BFF7oc.9<ŝ>xCW:F2ji IDAT܈}xq7-Zc͚CC+A_ڴh/(VOڲ%dm?{,۠='MMo}u&Tb%)O*@Mo ]Sbp mk`ԫmBiݒ|Áѣ\V)<<;WnܨRT9| Ē /Q uep͞1緎'ǍPNN9 sfуWMMWHHehhT64tS(L'3B(=EJ$IGXX_gyzFki֬y* N ;yy3gޝ ,26Vy񁒒oeC:gɹs M>>~*>l&N5yv } W:91CB*B::2_an6D@CnJϘ1:/f87{W24~[<9c%99܀[mD`lL"vDy8,ީSYc39㲲ii-_m+C%)ORRLlrw[2Oڵ+b?(|`)lF]\sƞ Oh ?[*+g"lݺgǏ;+d{k[Zz|Av6paQL2+OiFE'%y$$AxdHIi*.~R!v"J\ UNWE,wdeq1 u^~*ص+رѱ]N#ɰ|̞Cuo(BhXB֪EzlmE; 'LГ9JHGG/Obc{{B2ooMOo)*uu9nG&O605Ujͯ\p+CY`Aq'ΙcҿL%)OttTBLJ'zeo5'`@ ~J޽[ ֬&6jWW=+;53Soot\!oiy47wI+Oi1 T7oNȶdZ#!Mc54t6I%j~8sRutT?xPrAC$}2[S$lPvjEE''7-Yb@ٷ//2.)Ȉ⅘.WА_~1q;ѣ?y⥐y.|?͙c㏒.ޖJ s!U'UN? "~䦦©VVEE<ZT36;:8.)irrzDIMm^LEg?;}{W҈ܾ=7Rc6i_Eк LeeJttTZwws1L[8zbP-,hkӢ(XRneIr he|E !4~nJJS+jOݛmMu,6{8Mcӫ;ɚ.q_~i([@ÇNu4DDL61Q6ICeeT%)OqrbFG))}NNLhiy(fOsvutef^S.۶\(ڷ%[IJ<2dgs{{_ DQ"H%iӌa##1Gb[.<}ڌ֚ m;vdvuiK~ɽ]Qv6AmƬ,.۷/ jd3}}+S k!w x(;+gΔ "88<ϕjɉkߟT.vs9ۗwD_Xݾ]WS111'F<%$I<{eeqWN^TvSkkM6L߯ņG)-mIww_ghl-[w>~\/x/^,m *߲%]QUQϞ];S8SCbLHUbI<2u/^Z{wȱ |}YMM/VHi *?~McĶ]NCyy4[ %}:ޭ9tѹs:]d: e {{m*mbS\P @ކ11..of?`A}:]iCCC-ڲ%]Y#mW9y)w'GL9߿_ڵ+[ÿ=HQWWFih(I[VH_9SD2<}E;˗'%5yyEut1|6wB:yr ADĤM~t%{{ҥXflϖ-K&&jc*)Ο/C͝;Gh^yJC @7nTۗgbi΁%&ȰteҤɓcHˆ#GFM_XsƮ[sR{y9 +u랞8Qc(rض/х e֚vv?,Lrx^ tcPWΥ2uP>ҼpalyC5HVE0" r)O?TlqoQSiVZeccsڱcB=tҏ?[bCJ hii1_~e߾};wK,۷oc9O6mʕ***!e˜7nH2Kx{+**3f,Z }D5 ga[^yj߻w!BO>ٻw޽{CBBD6{Aj`@|1B\|9a)))!%%%l!VZZ?g,P:uѣGB #..װ8Cl0Z={!c¡ q!#T… $SN!V^M?`kÇ#""[hBXdYYY!ݝNwvv_>Hnh$#ܰI q]tXCEm@kE ܇xYZZ?goo/ZI<!TSS=zUx@knذ!::ʪ|ʔ)br诳!deeM`[*bcZ1%I-la!UrSSSeeT۫D/=.\x EXppܹ׍?!]H!F^:!!A hh4ڪUBÆ ;vXhh(<BX#B[JB===Xjbb*$ZMU__'//x{( P۶mJسgWRR"1 >IJJn>C/ۿy)j+Wܹs'22rÆ :::$g.\|ӧ|v+  !=%I ֭[<O ܼySlp\@plPjpB@@F@~ڗ_~}foo> ERQ<7̙3X,1c?LwޢE|}} B~K.%yS?>VBH]]}Μ9< s^aa!6VñΝ;b/I۱P{ JRbOzcs&@ihhcݺuY … !MMӧ}W©MMMK.MNAAAvvvdN4 l$ϟb0>>>'NyΝ-%%%^l&{fϞ- @析a4&L1c{ؗVLrxޢ"ƶm66Iqn{f8ssҙ@mO:~eԗ_`L1HNnb0h{88hߞܙMkhҥI̘>_=|&[O(1,+먩zh#.[V5u*=+{ԩ,/x{G?{b֬!uup8]c>ZΝֱX7 gXYiL%neZ枏qgb^sgȇ+V$_^޾dI"&ƪUE HMϞ--o#zn&ԫ99\@PW5eJ$-J׿fMuC㓦U-gf Z)ӦE{yE\hQOIÇSF 'z̘UU3n„GfPqk>Tx,=;6ĭL~E0yyaǏv ,m`7twߍt?K_ٺqxޫW+ǎN<|9:2~Ȍĩ;vdY3\Pjcu5#QvBB2˰GEuw]\t&LY1T… 3f}QÅӧW^pq920P]vE ϟkf0ޭ _k7[㓾FnMLR)[͛L]BZ ;;-/5AZgg=ml|%6uڿ}&5)4@u4cF3DE%&6j<\ I Tjn~Ap^̞m2{IHmGEj7oV;:>PRO=y8(#޽Z ZssLZw7ڧ?3dΟ/;{|*B+$24J/*ݾ]qBp1aB)5{z"ד:z47NW @99d:s6r{z3gJ?p(Rif'u`tR3If󔕩!uue##:'ܑ=iR[566-сl{ݳgK|}TU얖›L0/r5/_.?sDx5oW촰oh:sfي^VV[۵qcZ`3A*Iܯȴ761Q; N0]JY3ɫvk֤:9=: NMm“]'IDATTRZ]݉Mޝ-ܹI-Z<.lR P<5;PpR~XT\TT]EE37oN+ٳ%LfXO

8E(MIiӻ>b} ;2D)S"7oNSU QWrerff euo@(clogwLG%!Ҿc~pi3/wӦgÆ'ܩF(87K[{.s||2E$kS[[&{lFF Ne0^ލbѹ/w*sx#dZ ۷k&O6`2_^3ׯW)j{jeY܄ݰ/ R[]/7TQZYiΚe]^>S!bw9Sjo#EG ą{$b||Xb[R[VR6_44Twxĩ;|Ou獍~w|mvD J ss$bTT?ᤴ99\WGxj_`@5w#KK:#23[O߷/;ZS37ԩ{iF==={rxWTDEկ];=9jܹ7oVZeIhjzub T4xށ[lI?yr[ɉ) <8}Ȉ/dX@HH!j_|NC [!KKNkcS14XSG6Њhݸ^X[Ӌx:de>죏BgΔ)TB-J(.}ؘ.|r(,rm^o[[w룧O{P^~g=!%?`3B\m pt޽n 1Mi$X;;>8r˗]c y%.w*~;ၾ$tRIɫ_Uթԩⶶm2m@uu!u܈S%29+\^^BU17,,꣏WOr;WRjӦݛ+ !"#E~ssvZ)}}?,2&N͛EE6 ߟgݻGJGI\۷g^V\=(mK[GNNW2%kڃӧ_x0k1jjzbErNNkPPlcĩ|}bynnkPP-xu#ݫ>{P,Nd v$[[01'[dH'Nj8QVmo`%KUVL)(h +,H.wݺO4:"#)S B׭nh:kV\D֭={rg2!L`eeʓ'bzԾIIMxibbcVۗ5b| 1С@Tfd;{qPPGu"o n)uw]VwLKk>moV6aޖ-…+-7JlerWoZ||c@vf49s 426мyC88h8rd7dWE?wnu N%fe~e˒|ر:BׁЍUvtyz)EmlLOa0hOPj"vzm脿tG'S,O+-^항#nerWX|fdWD|[WSE^KT8.ћUWwJZQ1t‹BbRNܷE'M28yr ~Zܛ3IC{K^TERHr os(sqX0Pw 8L( !4й!D|&&NlJL3}[[tĐJ1iI>FQQZMMWq1oLc,j 7xZ qI[m2͛dx]\Qୈk}W2~|iiڵÆ Qↇs>m{/??r{cϙcbf`„%%kX81,ɓpcl}w7]PfhH6{ ޘWԲ6YYi@-! !dk{M.4,СB{{N&áXMi$仸B7{IKOZU5͞akX:SGm]]??7I}!,36l“Zlm||XRѣ섄FeeʕpaŒF|b)[ ae˒ex2 !uEN@@j^^̙qwF\ӧKtuU8c^ ^V1iR[566- /sLZw7ڧ׋볦+$24JRFYYNxkWVgg_E,&㏒?G3B-?aѣkn6˄Y*[16GEMyL7:I QRWn߮<B~~&ޭk OQV+9]^tegsff.|mdSScaLYf0{)550A40P,*ᗱ1q7ۗYddDO~JJ꺜()QRS,1 ڕ+/VHђ} {TRҎO:TI&byO.ٻ774C;޴)BCci4Fo^np\T.9Cɉ]O4wt99fl(fO?8BGΟo:s1AC]VI~圝ukNC'd0Gɇ9]]} o-PKNn}?߻.+zujf&ҥkZ[kZe.[f>bc˖]33K> zYY\6o_zz>|}bynnkPP-gwpx+O)cwB[7}޼8Ǐ[A[dR\"iSLy9Xhh_UUu*)Q Ov:; ;7mJsO+3nݚhdDG}EZdd@ %B X͸kW?,78x…SSׯi3/01Q;Vuw+)̝kr=OƟ64៌NlMsPɓc+o4P# RQ!)5+oUU0fxcP P@ P@ P?HȟIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/logo.png0000644000175000017510000000646600000000000015252 0ustar00useruserPNG  IHDRVhk&*sBIT|d pHYs=tEXtSoftwarewww.inkscape.org<tEXtAuthorJakub Jankiewicz!tEXtDescriptionGreen plant seedling.%9 cIDATxyUU? .K ]qV!oiNP0M)P$Z~ 8 YR-+Bd"'Ds}{{λߵzoڻ^3;ɢr75͇zX|\|GVN͉j_AhDrzF54-P~z;^DyO848yP8}4-_Eq'KIvQM7-a;E"' O.նAl ]^Vzk4[b9uZOD,f9q3k끵 r=I{{`z=VQC+[q3k[~'^N'n}!L^?_n$6lx^7y^'۶.> RM{uW<*XPĺ?xz'WG?v9) 0] | E,kb.&W_; '6@ 'r^dVavn+l )kz K[uA*tprDW̒  z:ή&2+6l~y{^;|~u&$Fj;vbz$:Vl݈>gfz sjK`N VvcvDL{jхa}0;;L절B93_XHN |QWBvt:o}"JE`߅YP8X,nU(& ao3тAQ;p811:Vlv!R{$sgRݖϦ# nJMNZԊ]AtRj6, H#Xr) LĒ2>IRt^X3їDх|7a6Q"쬢Yǿa rb 2%YgdAeh+kP\$Q:rQ,52J xs SK1{R aR/u8y:F{"nga(lA"_v_WjR;xyqA`1Vh *dY(8x"E@&|Fefv Hb%&cǘ.|{)=:3xI ,1,jP 3g дekdt~ݴN'Wz=-v,b&NU!D3%h!PN1s'Iͤ;._:Њ0nb{K>#C`U_Cn; a)}1[VbSHTΖScVN? fb Q|RR*hW5_!_Xzv_sST⤥v iQ> Z7VcGX4c{@ӱpM͐Z嶫K/b=1x S+%u"Il-Vz݇|9kjA&2NT`_Hi1zɚ$EA&CJ|ec3i6Wo1fM>\/HW+&2xD (|bkER+vgrI;j`3;!p+vRWs9n-{E=|_Pbz@:6_^ 5#6઻׃ IAlJ #,tE+vN^# bzw|(iEF-_Aljh"6&* ݐUY IBi "ٱMUohؔX)bSBcŦ %4DAJ? Du) IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/logo.svg0000644000175000017510000001222300000000000015251 0ustar00useruser Green plant seedling. plant seeding seed floral green Open Clip Art Library Jakub Jankiewicz Jakub Jankiewicz image/svg+xml pl ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/logo_orig.svg0000644000175000017510000001050100000000000016266 0ustar00useruser Seeding Green plant seedling. plant seeding seed floral green Open Clip Art Library Jakub Jankiewicz Jakub Jankiewicz image/svg+xml pl ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/manual_output.png0000644000175000017510000015245200000000000017204 0ustar00useruserPNG  IHDRpt sRGBbKGD pHYs  tIME #1! IDATxyxǿ$]B6!!!AATj_KJZ~ԮTKQkJNEREKB ID>f$H99O;{ι={P2#P 0 0 <pa?W@TBbjaa)3^r-yZaaTLP>e;CjpnYxX) l;G$OҔlw1<'m$\ޔ ZuT,D0dGtfձ/T伋fnm 14  ӯ?oFYQOԹ'd8~Յ’R 2$ma Q7S.!H$%0\c\ 1 lI0ֺݝthɧٗ5D@m,A9@Ö8*⇏90!V{$i"+8#-*2pkChA5l=%>#"MP{ҧ8l8ke¯nZ{uj~hա-̍ĠHD݈?~_}4xhjzG ܌)& eظr/t[c 4ߌuM zh ߶%ܧWqJ>^PإxFz}zaGʼnokdeJeФV&w'F \a,Gi8p4 ç5? 6:IMm>|7,ɍX;g*PǙC~ֽi @4߂q]?EÈ&1)\.0_Hv? !2Ħ1@umX1CaO1/t7󀣭)d"O0s/1G7} ZB|; YHma:GXï]PId 3ߣc5Hd=K&bԦ&pg\Y1t k87>=+WFuygK$>I% #q2!~鄏ߥPƥ!Bb>D\HE4*q`mR8E C{#4zOG>`{ê 1LxwT[k#lPsS GXG 7QzyUW;4sBb>w#Tt4,$}FcC'f;Y 4{5Պ8+}pctXv ƩǙ"f'F YCvb@&Ň[co0p)dױctk>oY'j`ƿa˺֍m0h i}za1;L2- B[`yw@@b`*%/9-Zk\Z_/lRzt<ՐZډS]&25b+E7',@򢼮wMaCjbG5WT#}9EP"mQnN~R+{"2܀F7'`{g2qe/ȁ R?͜WDWI439E7 W2(9E7~b@~ 4o+e;M+dTg6=E{v$ F.Bm֥+=oZIy@"@}AG-o?J蒴t=o\lkquk2sIcNԑZaWA֌|gwZ@M%toO'zK8-PJ)BSVp[s}=ddcMH~E62~ йlEi3TlǟS5޴+4}jaC O# DDDNP$h\M "3}4~3ZI8j獥:(f:UùtHEob)ֵ/-q=-" e3v)滐 ^h]"4l%%Swѵq.=.*p_Ӏ9DEYHIII JԗdݞD0eQ c?I@EdyiH/ԶCڠ<`aaay%S.K%%o/951 jt]V= `I%蓭Bi\]HA\}|TT{j{%JD,T3D]+ L\d3ÓRIǞ'Aj]m^uz fE5^ݛB }_1afKH:B@NocEG0vQ!LJHO ("~.Րr;5d4`z{ ܸ4zwX #GwH@ڭHCؘlXRArN:;|1ZyNѩIO`Ez/].ּJ(J mj0DZt+uRk!u "C}ѭ)(rROfx:R`j|ݔFs`Td0K)rH  m#j@r+\Ƞf[\ + n۪dLEV nR|` ,B"85EƃE\BUr6[œz]ò5 ;F Ė7ѱC5󸟟Q2ēs`b{k \GNG6 aa\/!#/k _DdBkO M -y?Ȩ9< nNCO2f4FAwBWw1"faɮ`a&MNI¶Qy|\d00Kگm0̻` hPF!2\}L #2ȚkH< GzrbpC_5)@7=f%C+K=lBrxqGz]0jHΜȭ x>ä bnEL678m_}%$.ZG~s6cs~T콦a=%͓fa #υEX撌}A|+=`5 elg1WGɜ>K`㈗ւe9T|80v( |_9=–ο#F @K+c~spvi\5\C88~Pjt`uU1q_3L"q6 6+Lgf@l=^/EX`0f*> SkN~ /sba]wұgcQ@\ Ȍ[EWDb϶tdRK,l%ȼ  ʰq\+ 7K*u M)5> qQz;N y+_NGwqۋ8i )̝`P!~""^]9;1 @W"<D+pQhʇ矨yܰ= $bE;6 G Wc|u灣K̀Դ6LW*)OsJK瑐$q͆Sw,DcPw1Zy^sv*;qiĴ6 $GfS0Y xJ;Os``m )bOG~ zD6'o83qY>.=V)Gi3X1?i$ajV )'fOLkOĶC- Ǽ'B%h<{3aIJv@a.~:p&tA#Shr5~{G{bbFq!ڙXӷ?3wWB%rDZc&lv6ua,/-0;AĎKK8t8>c8۪ȍ-6ԬY֕Q }i/yw{i/_99㭖WNycs2sSj~1'r&(Cwk[4EUӇc|HbnOփU\&& crp79?N? fkQgo Z@ !f&G?w8yjWĄ aVd0 0/Q%lL؀,hJ< +!1UHwcr5%B"hHSD\/u+~YXةqc$xM<'`y50l aayM2rK:aaaWwaaw #/Y 0 0L ?`KjU"P qe*Qs'K\3ڈ9n|ݬJId6zӢrZoz0n`?UTj3l÷"HA̍}Wem)$uCalEoH2oxߎDjofWnpUǀuࠣ'ךU&2 {n0{Ji/W YģbU[1&|1>{(f;+ U֖B⹪uj{eχ 0xLHNpgAwPyoL {4FgߤJ.R 2$mF1mm097.fYzbHgrŶUmŘ'e 5~` 0 JD(4 PE,n-\tn?'"Rѳ?iaۂϻ :j_jz:Fw6&̩DY&qZٯn1*V&be$6iwx2浕mЬH |eP J%ا/c JT )S)&8AmgT,:kdq4eßO9$хY^iרNJZM~3PfP-]]$'̣Qij?E_]t"eUZFOB֘'JŵjB~?b ZZxd!dy]S'r(ۥ#13vPl""MI{t Sfsq*Dн@΂.t>daaa_rļ'S9D HkS Eўك{4wC"^f=$U~y9իԛNiIcً⽷FzwQt ҬtAuԛ:$϶=ip" - n&VωaAԣpџ_J4t&g.n ꗘ:nTx`0ѹ ԖvlDDJ݃39;;FuODu Օ:D}QO'WĪo|[2.Fj"ZQWj“tO!{]~;Bi"MzwQo}*2R+)6}u]Ɔ%(GH4hu5O (ZTi.Qvmܛڵ@M MkBƩA:waRa y OGV>$JO]A@Da]HV F ѥqd+SI+u4SHI7i Zn4RSh֝DDtmN` S_:Mt;o5O0(h#锖hu/WE.iBze%dŷ:XZBU :ʠ?FH6ѣZZzL|S2 4\DƝQʟYTP MjK 6b2cCkMm%gi5f4Huq4ՖWtQE'ېȀ9DTh=NK"^%(~XXXX* .1}3pg(d_̎ѓsG8꫐dcԩfv10ƵyҋxvQr`G}Ij D9,$.PFߡAۿ^cgppdU@BT89c2>q[Lu~*U R@1$" j+VeRcM2cQ.2pX^@迈Bp3flؙԬO"NEf.3XBwo}`脮bD’]2a&`]PItmK7P 6 Z!mk\|sNG6 aaj(>&7\י8 ֍݆Fj\U0[2*VOHBs3'p_QҡJU Z1& mxbAYX;~.BhڴA׫I2N%A# t0.1GTB0 $e`6h-Qӽ&.GA 3z+>N-</#D&/WNQȼ3k>8h)6\]]85bG>dž_Äa@Q_a80b-YeV%N}~sdhZ?31YX8)<1E]=qGX ~clT~?^DZh ~9tF.>xi-8\ƚCGY}NH$fö]KԂZ>{LOepzUК:e[)O[Īf1z1&ذxbAjI8sbjZތ<7 Kgxx.-2d纘0{qתun">6Nvx=F sYTP[Br/h|=.ŏAK,m >F]8WVa[{;H&^=_9w.|/ZkWD [ߦ޻)BiN7j؋[nR^8R)>d,C?;rReRR 9N~"y(InqZ"ӺnLOES62nlG`f]7(Aw$`mJ'[Sr tq^rzo2>Z(6SГ㱲>TGVMuRUiXOƘ-Z~hM.ІVŏXȾ׌1КsY/ Y!yJ4Lq%?}?ڭƏؔNF飠GhNc=*t hKy/06JXSSAuVwu}ƨb"7(N`ab"ւ^!H1ےMeNӱ~m܍K |g~ t10U0"Zr 0 *mrd*vpi?\*waBd0LUβ Uol Hd{0 0"qD0 0 ü&r9C3 0 0 Ô' 0 0 [*} ×WVaaJ 3F͝.FaamK>aaZ&`aaX-2r(@s_B n?',O,a[st[}I"!qWh=sADMs:%aa"X6}Fck?kCУ0f/zL 9;0|ƆhOwjEYѾUG|1:,;C 0 0LųϮ =vd $Zo#$OD6߅dedn.]G45%q~u'Q ]ghȢmH_Ȝ!5o޳yɔ˩W8rK(c ΈQο'p/{gw%٘r7 ^<"5R=:,uaaX*R X,*/PE"1Dx|,$9p'0 0 lyItmK7Ylt*| @$hB{owaa/VFo_qX:N?@VvފϷ|S c K#l;b4UkӸVk;t񹆰qq0:=0 0 T,AGOrIM=-"3ȑ*-! ЦWoxZH 5~l""17ab^I1Jʗ3}!=g; ]މb8vN*~1G;6h=a&v{|NM1X9r诪:{wbԪ]8迹a-Pb\!dR &ՕjԐa78ɵf0=i{p{C_1Ƨ={Ōuq%!K[>/uQnpVkwqzc*Tev]yuBt0vUe1:<7Yz*;Icb#d~._!X֥;6$–ۼbg̤L@*' Rd"9SQCE`ހEVβr v)qH Dxǂ]slyvW.3C(uu?bl7GI45ޭL8ؾx7lƟ8E^>Is RUFщ/՟ hKQ-\tn?'"Rѳ?ia"u)$xJɯ%.jNe]>"s$G'QV&~u=tfҭM=De|VX?5%Rvw|j_" ^O#Jld4%6F>/-Yt=Atu Yt&7~l,LvV:41例\h ((boQjq"b錂(fu"׻ <~ R.(6BUorII̩8rn9Tf(mGhBƻƗ }}znDo*ُ.4ĪP$vnQ%)_ː?!D\dNݾ;Cw4͡{hnďM~3PfP-]]QsKpP$O?@]˙'TEdž~e絒FCNЪnǎg7rhۊ[r9`wuĴy4O|RNF&hҀs-9LBU39u%wKAωi{W3YdXF[Bڱ5)vnFLN6ye)hԽP!f/ztS8oFC{u;wA@#}}so-&ޣh" Y t{CqQ]Lj5t E`$ȆzԹ'yIQ,mhiOK{v.K=$սE*AfNҩ7sӒ2ah+X?'R/3QiFJ4Ԧ1( jwMߓ%$Ε` ln)8'/HZKD['v-;ySeӹodҖ}K8-ski| 't8}1fK*J}B"IPd*~(akb">hu5O (ZT9\HH~V|ԕZ6]}^=WZH\1uXXŋQh9!9K\sU(TO Hq4ʈZm'hZ̐j~|rbVSsWuS`m"ITI[D:XZBՕ@Da]HVJF ѥqd+)<2.w ҧ8ԝDDtm ZC*%MHAQ M}H6UwKv.MjL_j?GJISdrg!"ah):L@" H:@D4Qp.ݡ,:ҷp;Wr]f|Fm>OD:2i=.*pZp"VqZxOL V"6J(5{td I`ڇN)U/ ߌF.GLGmh+__`ksU[$c钊r2(=BүʴYn&[{ 47lmO-$^ EJ>Y\f +tm^dۉ'N`b.%pX?.$6 ;uK<ءc@yKEn"S6A-YgX7e^󞫙^o|Qf!((!SMBd޿b+$G%3,a젫;`4Mڰ\m%}谜(+`n}Gє/wڬ~ܡk8#M G}ODImcr ak(M^/TWHEgg/jn}u QK\*ݧBPv.U5飋DDt94D6š;&!eݛ|1&N6>]ۇ(<69D>ݣ6z鼑9J[)_iy.O~[iu BDicG U!s IDs7WHE7hz}}Og >ip"J?>(d\YVMJy{Y)t~dmh+_B69 չ-"s9ݣݳR>i V; *7~q"-.R'ڕo)B4ާnP2H۔ND89ctSYxmЏܦsTsvOġ\/OM޻)BiN"6,+9_6軋q "R<} GOr zy,WLR(7W7h_BԾ]ߍ\U% _DHlJmnsStV#4f2N+-Ȝ=OW˥{ ZeQb^C%eƢ MEf]駧DP]|Lq9!+ ?bs0=*8^-+>/Cud^F\$2JLt^O2\h w,i2v!D8RlMnQ~5,Ot;7g{TQHEWu*::'AiQfS6=umM*L*q6t,zw!ߙ_-(]LfÈMѼQ5{bڅ?+ofapxL…q&-Ve0o-gIf6Oж8f5vpi?\*waBdN;'kA<`*M:G|[l -]j ݪD~>d3 0 0k)k8Aaaap0 0 0`3 0 0 ' 0 0 60 0 0`3 0 0 ' 0 0 60 0 0`3 0 0 ' 0 0 60 0 p0 0 0 ' 0 0 60 0 p0 0 0 ' 0 0 60 0 p0 0 0`3 0 0 60 0 p0 0 0`':MTXZcp/gV cVFaa*`W{q&("ŖVD[.Ӱ& ׭(c`7w{t򈒲]s|ԨyFXI+Εwaadш ܈. bɧKq!NMJ r@dH MAی_`P_˨[ |ە_q2 0 üm߳*:uik}?*L;rsAHEς=l_|.2nORpte{ie/Q\PN\5M'SjN~$0p}EZ&љ$~i5":?j^K]&2uwLJLEfh"RR̙iVoW4oDX IDATl=Ϋ¿r)6Q=Js=$e: "FzwQt ҬuY;6fwS"%ٙƠ| 'hhԱ}'3z:ק 6LL+YXYXXXXXXXXP/Mќg(ZAD szJWp#z;$]K,#OD6߅den.]GB vDVZwѵqEW{[Xu-mOf]˯O9l\CJG[jVY: ; K&enr|t@jZυJ6t0J TJNpFܛ}^{^g}AA8[AA$AAIAAAlAAA$,!Y՞ p0^=6vJA?ln/7<2{9#'sPv.S۠334>q{n?e۸%Z5, t-|^KƏݷ&m˥52# . v|48;VΆ;kxF?/vY#c ccg3;/A+{d^|R~m.OPC>zdgpU=/!7 b֎"zZ͟2[l6FԅtcĶ;Tֲ/1HdD SpQ&~ QG:DM!^s +-[yx SrI; qH0si;-yߙJ֜B~aw2tԕ@xݓMk? 1MdoHw󧿶̩g;>tM'yIM;(+Dq:)ƼBRDr=T6lyGa9uU>}~ƱW.FsL/3 i`{u-)àgp F0?<朳cHve3;O>.s E3OMy^vATF YHK;V-_.ݝnVckc9f@`m&GxBvW+dS+8e1v_Px~Ū퇛ìsg&IO 7"O?mayܗmcq7]z۹?`G!K4QLLڨVՃ2ClFxUC9-$'jptK,~7bɘj{=wm?}m(.6-]̧dr  )PB6|F=+w/ií'gw~Y~ˤucAC{N&M|g7~ϔ bݭY-W 'hwL3p 7_}Ƿh-nkHcaO] # vwr3fpW)%QqLNo:!X'f\?bfMTڃj@L˺|Sv"l'\uGp=<\0ځ,bƫLp9Owv*^Cc˸dAE%\4&t/<ڌ>84iגWg':6[bplc58 `Ӵ?DM01īxh6u=bw<@zA?Am |[n'-#ڀVx1:őR7<*oM_3C-XwVa|kh?=EWĒՏgxy΀;aw4k͗~FfRD>q+Ob(|pqON םRr׶4],X`t޺|/?) 2P1i\ոn Zf9dόf@]3#Npyب~mDj#-w5{ͥx;aw727mo`v*s'w|Qjxep=q8x~v5dW~&xNخ#)\ߩ$XAfX&_97ѪF3[(U$iνJPAq+۱*sLVp=Ԕ~ٹw/F?-yMLOeRG,qV4VY;yͲdA8q&u+yT}K,nBEB]YuiK2.9T#i(WF~d: mD`u :-<,]}=yJg0~B42%CgRm E]%żFW:dv*Oplﱜy2*+{hgs83٦>9a핻AN'z]4+7[Ann+'uj--_ V/\mHIxPIh{(򷱴S5QfZ'hCܿ"y^0`Hi׎2p~y;>Dm-?ßz_]r1YK1|c6<598ݡa#9[r-HqBF32 unH$NԳS[,5=E?ࣅgx%cODO v~]v,Kݥ~>v; POVj7\cX&Ή&2H7rã i?M9XahQ#?W\.:C}q.z#qVbuw 1^)}hh)+C9F *SN1A{g&B`aO+SéPU5)/Ft-6nX_A$؂ 05s46JQ﷒rF 'MջGxb/L=-_J + HO=x5 AAA -z   L$AAIG>>o0s&3W$=:rO #yi,%Ls/q3.27n#VG_ A?޿2ÜhP_7Ff/l qNa'XBt1I6/Ɖbtu~Ya257XWt%myhn}MLPՊk.5xɡ$a`wC=k|,9J-6U{;bXU:csX:/gd,NCu4UDXY)L$ؕ^վ'm{gSm!LCc&{y ~X(^oQR Yp։m>_ѪAy&oh-ā*Ş QcW iDkfQT4s1qYt^G{DTZ2ɗX=Q:`%掉'ZsτY+[2⦌تʶؼxǍ%nlՍ^*;-ڜǍC0OwYXɄ>(5olޮTiuK7xҖĄ4R?56XAl4F|Ysj4m}c8VQy?X4W8(ګeU"!TP?1R]we`IGo0! *l<|鰵)'X Z|}~IT } +Bc *ܯBl}cbљrT|=~+t|>˘0>+yzc@}٫hV݌W  ]LMɯ}QPS9W,cf+5;2unpýh+[unTU, $N{XŦ4GQۑX=KuMF$0(UL_^|I69 ~N\a۞`N]" KSiNvÇ`R lצ}Ae(bڊd#O7[=Ǣ/[uHyp9:lI:SCؔ4D%:Q/ٴx(co_K-/l14iL=*jO\[h:+25Ҳ4(|eHAe414RgjP\IVD-1Xi2>đ =6_cF{yEڀ MPvmQ+zܔ -$gBcv&]Mw4M6XJWPm*F1!RylP&R[uZU9?z١-]g{h(c=n[ns `e&s1wͻVL9PS ^&;Xz 2mbZ+cm w(lNhnSޱ15UF h 2PmV1!Byc0ljn}qinV+Uh_2\%e- Jd_g'3\cfö4G:ɢ!}ܽ9`-1y?;&Eb?H#վ|M&48ENII{O Aɬ LΊPC6{yw^npƺp{ӊ}dΠxLטy~|{Pٓ.[sd|N&S}ЧNcd-2b9I:HIBAxI2YYM'ej3*m9xݺ13&S3):L\kuυص_PH}?C'kc~X6na$:Q"&3 IDAT=6-&xܟ6Fq4pW_ф   `pȞ:+  `  $؂     H-  $؂     H-  $؂     H-  `     H-  `     H-  `  $؂   H-  `  _|#YΘo? ~@uE!%|{AA"HܹE6_sՀ]H;6h.+blO50Bm>ۿ(ek="xbȸ3_q~_76 j[  B '4j^ܶ5亁-<ciu +=kҹbMeG7yk!)%%  '}~osN߯.fƫ{>2iݰ۾ux4e{⊵1^92O_Ș$pj[D)O.\~w+? 9иWY'+ofYQ@[jhS=7Bֲ8ywKi1cc?UgG3*IG7Yfm6fpw'qgp F0?<朳cH]̎>ēk_Px~YNAȾɱ ~_V"c|mh!C큣?>Ud_;5SZ7# }ʵ3cX4HA+G b|c8xҏ&a'D[T=Qt%Xt-['X,}-FWv1H; iܷ/ F[2Yln.hI=Z.oHcOgpR ,]ai&SNab8  #M%]Ȓ[xqe.oTDf8HK0S&ϘXӗqi|t.OcMhÉb]xE(>E;KvRdžȶXlo1cn 8zx7O=.5W`5yxg-ct!Mlf.9,|rW-7ɾ8\ry8F៪9*N' i`C0O`Ps*:׍(DDx(FͰ oem&v>_Ր_C;`5]li&8T2&%qޜ:3@jv Yj5ē1*MǷU3Č;ޤ޾no  'X` @:Ra q!*ّpWmwѲȩ Yzo.wmKc=?uK6G{(MUJȌ"CϗȚ<ӹ/o_PE8.{ VOIƨLMTeso: Uq/\W[ &SI^f?N]\WG}N8Q c)~L+G Ϛ|z60Ӣ=Ѡ@ʧnk˕yF$74"όbb6ZAF41 UKw^AA8-i  !`  Sm)Q  °GVAAAlAAA[AA$AAAlAAA[AA$AAAlAAA[AA$AAIAAA[AA$AAIAAA[AA$AAIAAAlAAA$AAIAAAlAa`ޅ(b23g= +WE5豠;RP'ӱ: ,[X|Y&+oֱ6xoSIsņ{˜ L?ڡЧVLnV꿿D=/JO= Okǚ/{Fs[ݿ]M|vh5R(4XNN]7p]ohgU)85p`! Cc7L.ʌpF~zC3z>-}3%nvkݴ15,ʢIIy|N2jh~e޲9k%OUçjUTo򒊨L_v9gißۊ ٟܗ]a2{N\r z푕q72.a{w ^mlvgmr>RG}˭Џ*z.1͸GrhZ&2H+z Wsʞ!Nj\BbȋnЍy`E)4Yu?+H>"&ZsτY+/b5=k{u}dEK'y*NV5> Y@ oD*ν1uA*ޱٹCz,h谽B<-QǏH#0 7K͢Vai+ ^c#,1YuguS7eO K#b!E WdW#~:+Z5H9dm8POC&xnH\=j=Ojq*zJ?n|ǫxYw܌PQޢ & N<՜2~%$W7mO(>WiCPGcuv_V5V jF >λr-ġx K2JŇAQ!,?)34(+t|;,~ST8'>_.SSHVQ#2/D}>8Pܕq7cF?}ڡ}3xn«ZPB_QP\'q;C/|_1MԙxSGA&Q%Mn!gU.!1|p70F zUXl?um84,sIu>.7hXli87>K$ **L1`5iBcf  M~OHQr%s'C¨^88i}|}}+ bX! /i j+j+.cYPVlnDb?04RgjP@m̵Cd?nFHӓF{-Η!ǍxC/W6kHH|v5)=^ڏk\~5@8xh(5UF h3}Mb6;m6Dko)!)i  %EhErS Vbg7pJ{R,BǦLWT@|;XA8xPca6To8~5X ֧(x{"=Z P~yި.S;(hø27;4փӽ>D`?L6^ Xl=Jy2[ 72ԏD?=ڡ}3 C_'q; ?lM },- ЈBa$ (>HA/2{KH A1M<>_4ˋf# CLxēӠhy*5 V U:qNa.޴3i: $ Aɬ LΊPC6{zV}4Ů]BU'xf3!&% ߲K<`/d:Pu\wS7ei_3e Bu2-h0ȾPgWͰѶ)jߵ妌kq | dz4ĎXзM٧_&k0HЏ0t 4v;XO> Rɜ`rb?1%2Yy1ěSޗ/$V9:~9.|-"g场.yAfbǖg8g-Ymd,^Svîzaa2Tٍ7p]$ohDcĞ)huz)ZƌM&ӈA{C٫6;^WXxWc׎[5l>zѶz EYK%g;m졢Dӧ&/(o h$#!^+h>(+/T#3Q'%A*?U(Cљsoܤ7wF!N陳`6NT UQbK~ɬ:^P;]OdBoz.]pq3'{{ŋt\Ld, c^p+3M.>>kQwyR֚ZQQ֍4댚ԥݍ~/Ү1,@Mۊ ٟy[ndvcnkË m%FV/OfKl~ +][./AM$ąj)u(}"'G+!ﴨhráq5 Y@ oD*ΎwumWjr5n q<\&gd,NCuq7uiKkJwlvP ZYdxuCsR>{ˏCT|Y܃3 &+ZBl~[#s7zvC K#b!E WdW#S7F{&x̢\AF`4& 7e϶1ƞ/O\7=@ƜQlh~L)Hǡ]-Jf7* hiC:?g,T(l b9.c]2Ծj4e[;Nˍ~*m`˼k= 3azdѴ! أo1:;ųkE;Ÿ+Bc aaګW8(ګe=հզ8wxk u"&ghT)0ay *t`wD uPBKuvx:}ڪK=5hvq8ݏ{ EpVKyYk{QR#R/L_xzAyF`\'4̚ o8ܧ~?'AI,:3Aóogkv1O/ױ͞W -Ǭtv/7q{1Ƌ>D07`P\43MQvLrb0C(oJJ!OyIu>.X05OHQ}[ndnNqa.\E&KSݦxCঌW Z[i)Jvuѳ~·8g$i&c\fIСvbcu(߽nrAVSL#ބ…~~lU?+u~. p>=&oi`n1Vveȗ\3{ 0{lC/9FG!Y1lx/s$ڗ2om'q:3d|M]2r-Q[}V_ _8m0dh!}ƺD:m~}4?;F?^%;b_ IDAT .ܦ}>کB|d2!Tw~a.luoZ+By<`/d:P/g5O\c`3J{6!| %z4Ď=Ff7Fφ/4AQͪ meZMf6YrA*Eijy}LDoYWLҠD99^,t!Qg&vQ jD7YNן8,CA8Q$*Z@#& m[nTmŻO}om7 P! Z7vcQ S,ިЉ:$ɵ %EDAA<%  i$؂   p+zA`ޅ 79[%&: ,2Yy1ěSLO52.7JrqšSG5^:|O'щ瓇=`eǂ@KC,KDBߜJ`rb?E2.2za_Oi4XNN]'3E#gFw ߾3ZT7N;w5f\m2iF+^А̧.c|,\at|je| i!^+h>(.lv" /E%=dѼvKs)m $xSQMq>",~zIS5ctC_lCD{F͖BF`ΜMVDŽx}6g3 3:S5|VEF-/f~&ƅ̎/>@u]3[|mt$e}* sw)! uխ*Cmr"|ͷ[/1:_ġ9}5j4S4̎S#Crg̯X#)m%vJst*ȡ9JYk2kNR"FE+6[7: UعAR w)h8%s0gF?c̥P;p,x鏝u/O3!^Eyjn՗-+ZWGM~Ny61uCcOK+t_F?nbm YLp{}s!^ߨ" 7g6& TsA Dn2EEbXKq]+*VuWpvgmr>2\#ڄb tk}9EEcǗ _O؏WE}]) )~/a`,1YugUD֩Si:U Wz?8]!6m?m^zq_1ƞ/%umWjr5?{o]uNU+$$HfFLB˜`ldCl;NVNg~Iű3ci?_g`$$1H W !)] S{wkr:D߁wGX(QE6_sHyeΘɻނ}vPn+ ıy0o xңZA }<} g(ҡ#vU9V<BJ;lYPm4r(S 7&jBᚕ^=:8UXDΟ\4n,G=1\bqf]"̺bO%8Px7.;6؍ ,^a~QW 3HPMd d ǝ G%@闎ƴu(bFOY-Xٌ '~N,V擥ܫdP߸P :WՆW~ g-оW :AIMż%2=${OX}sE Ts^Rѩ ܟ9L-(X+9:+R4SlR*SϋU? ""ȘoQ8N.^l+&+&I?]g;C5:i< ݮxڽ-2I>qKҰͧ]I8 .VZ;VLQ8Fؽ=3@9Fk+D27]}$E} )| }~B[.?eAELt)_~b)ϥTxHh_AkB2ւ6Ω꼠7X5s(s.vqSjBrIBF>HGq8UIȋ#p;S%$6ﺭ,LA1ӗZiBۤ)EvǶ1tfOC[߷z )W)ԆclIvlҧ(VIɋ#HӊyݘJlEz^~&#\}FG|^У.{~ͣ F$1f£ B G3G7lK 4OYt}1c(N{dŞY9#Ơ8̱vXK?nR99n_m-`焷>_: ޮ,iϵ ě*pL0gSREg~.FKZ6sI=RdIdMH= ?9󻶡`Y7dHقV]{aƴgKLߒn4+RmE/Lˀ)i?J&fm6S)N[>BQnll]$[NrᲵ7Me V,\ !-(}{T,aQls v9(V-CO:[0hyUgM*6oC񫊢UTP0"WбͧDpm@WHѝ7~)~/^:W&w,]QTF,el] um闎ƴuS\K=ʫ%fLⰾrl? ] ȳ?@M sp{‚'J=X:Rˣb7\=' 2N=FO2tܳڛ`zMj/8튓\[1u)],f7Q™nj!hX벫a1yFZL&eǞC `$# q_U ,`& a'>ua`hkmMڎLm``````````.LM\a" pg/s1+mXmbl``4IL` 02"+7-ʊ[5ScLKIT_ C͞x Wȋ᪍Q}l'r-c mJFg4<]D!WFDVr}v68;k8ق4DA y?, Ϲsy68ch {p3Ԡp0ڸX5ߧ>bۂ_ru t\ˆwX}/ јi/z"kωS:"{Զ*AA5@,) ƭ`5,/V{LL_Ư6TS:c.U;<^{H |e¾G;.{6ʫZ㳧+Թ6ȝ!P=]y< |(ʄ^Q]7cO<&-1OX1,FvTr9={ %/hC'a՜OE*Az+K_kmN&¨Q:u>|ASe):Oj*0їA0ǣ3(WO˷}tS6YD Q`b׳dicDEʼnΆrk=`TMRq.ykMstXi uj3jWG?[P*Z5mNjsRJfd:t}!+ uðC0r ۞~E8:f h#98ۏZ.p]{at9ax H]9QWa=!;r[[|*/`L+9:+R",{tNؤ 8UfOd-wX|E3.cUnFፂ߸ؤbO VHe 6qtBPptԃ(:MzX/#gg 딶ͱDqxG<%.9?0a@Ҷ'.;-2?fj6d$(ٳhO',ī-1'' Z׹ly`Z̈ B M"ڠ#qbnS9,5XVJf$ZzhO<08͋P˵(bFOY-Xٌ 'nR:{>aO廒]θ w 3] =4qUiU4ݫȿ"Ñ4y}q[8RLy±G *55@{ڂAi6dN rV،>SΣi&˫hB0PtpT<9²GQm2Gߞ@6ql߈p^#zGAV4S|;Es̈́@gKRm-`į 2Ʊ9iOozf]Է9u$'(N*ZI惠$: CzBъ {dyԯ^|"-/F3fXi^c  ӫBQu>|p. B=Kaڣ TcZ6̋%W\a1y:x3^X_ra|Zuk`|AͿIV8xP_Tg7nqX$}*`2\Gd" ŲZO=8>SksJKN8A?I={awDkܟfSU6 W±FH(7)hWE",OءhaDcO Q`ޮضWy"/ۧ8oRpͲe{AeSβҧɵ͔uPc@=rm~a>{S&hyNN)Xئ`}\y`@5VpͼkܺdL_F0=dj#CGwM4maԣ*JXl5)gj[FEz6vtDAb׮5$nm']ov(VKJ\658:Uw8`CŜmqȷ@6)j%-7JpݾK3?0Y7E.;̹faQl[+9O@b|z|Y=$i&%w-0wқu|[wFΘ5l {-m V[%Z;"V f~ѡЉHn&|{|LQrɣ$Gbө-Ab@9:y/F)NW)n4/t҉EuUBMFŶ:;oi/謃A4v.#}!O©1}!S"sXYS1EX~П$Peѩck~||?U<(G.zdZ'j"?U|2\Ϡ}ZxD͝:ڪ̛ +Qy'!%lƜV47(D %[n cvMV/; Djl+0|tGl9W 1[J%;8hD IDAT1000,8ES<:5O?> D[kk"v5000000000tal`_za840 %‚FAfMl8S3 C>n?w4CY-^^S9fʹd΂OD[֠+4,{ơfLc-ʊ[Ő׬D@tB z0)&oH ?QCM?I6|f„ϟi<LdC$l}( 5{!CFQ!ِ>Q x;BE(Sp'EX6/1:=_65=_|N2a38-Uҳۍ=FѶ*A5O<3?a*8ǮRJdԟ< CM?Fnab #[Upb/w)V•iQ%X׹bKkSQuZQu]W9 Iq-ݫ0f.FU{Էx~0wȬحNrhϞmmQ&Q:oxg9D#I>saX%\P 9 r%o$XipWq O(UYl)cvjN'œeT8@[ׅɏngmɻނ}vPn+ ıIa 8֣ F|!O]pZ>%U47yP?Q|R ,ݡecYDs ,2|)N ȾaWw9P=?<ᚿKI畨uRYI {.u⎄<TxBYd3nyegy81혆 kx:~UBwql8h. :vzһ7YMTT]xN+Mus&/x-2&g`Ϟ\ 8aiq(h,0jf2םPj~Zw²'Y%VG|hYl;<<^rk5J 0jfםj~ZwB'ɽ R_'h< iDpYTM[7q2jW_q|k%Rc=O _$&Աdr8h5s!bV5~m-Q);C_sCGG?c/*zR6rYc sͤ-)8Q61akIۛEÄqQ IJSsTh٤0xƋ{B5Xh՛y:KhH]+F/%Hn,n54cu>(Q?"5S) &2u'5a; *$*m<>B_sȏ~$o£ B5#ș#hLKN6"< :\m>Ai63B_@\)E.@4qqș-'9yDqT',{< 4:U< 1/B|{ҏ#WJM'l2RoK1H\Eu L놎_EA 9[DSإ  +Af#!;O@^.UMW219:GW?{T,aQls:,y^27KRQt TH+hWE",OءhaDcOu6Y:oRtxق@KcI:c+ԫ>MlS }]mA|Xu6󮅺sJ܁j)~DrtAj$=]KWc>0VRD)ȹs@*pKxj6 ?0OT2s-ڣ0n +AfoRpͲe{AejN s=KvbK-} R{܄ ] ']ov(VKJoyhS" N튓gi`(wn>:e aFFu=p1a6vF8p'R>1B$z*P!Ž.9C[EMM0{B[4 Tgb',4{;Q#\,HƎ^%G}k0W9 Iq-;y4Ň/< 2ys<^z<6~Q.D#I>oO'ab #[ub/+6Wg3. ѽ1-PxQOT=gҫ|6}B79Xd>S}ìڿr=YDϺ#BJ8GAH)v6o(.-Y̳9\wur)y'%_ms)Ӵ]o>;w(NX(Av_=;,^.(Gb)cػ#,]GzW"9%U47`G'5OϣC]Uq"yw;#.;õ9J,Ҙ&:>c[ ]ej]KI:<lEV:`.J-{4ry:Z屟pJA.E>{v{X6h I3G0[p:6Q4K@ɉe'(ˎM*vB(WX;#VtGSuԃ(:MzX/WG&)m{ΠqOeq/QX :AIMż%2UX+/l[@^@[LWBs7t+RшW( qu>N ?aem C@fy6NJr=[@ 5֍bt8kO9%`s-jajs2kx5{$.PW~am~*˝ 塶VժN.@.U3$H@!6Eg[0jtDZ;,}8J6w%;g( {#|ޞ ^"i@{:Njg۱ _y(*cSU_mH[8RmL~œ'Yrm2aX~.ɂsBrަڣ@޿(/y=",̣!nWg.:p>5G{}D=XjLPC[Zm-sKkHP 7rh=Qu5<eG&kn6'W4l;l]/yzUիhRQiK\\9z9V(~el*Mq̱ж{%g[06_@͹W;`c^9:6 onu";#C񫊢UTP0"WбͧǃFMe V,\ !-(Eirmf3e#彩3 8V~}SEҧ F-U|DvyCluG>PWBя<evE^P1 }KLߒn4+RmEJo:`̣CMWCN# R#=h} ]{1ub4CO(53 d3-Iwm93rG*;5<l VAm-/)G{r4IƒVRǚ$UwX(}ad ߚ m`ƭvѹmlTԭx/2?Ül~JK3?0Y77Ew,?^^&!=Ec ԯ']ov(VKJOljp(aMu)__ K?:~ܕKohM|o}F_pbخ8^bۂ_r1C'Ư¯ڌ)d`sLlk#訔=QGa+V[ UOy8p9?2{ܹ;CCY,øݱ'QpÜ"4U4JJ~Su|p4d l6c%3OҍAv kj}i wk VGuslkl3*(6Rˋ!y3&QTɧ^0Q_(0&oDu%.mòOZ4lx4o:Pf5-=ZXy&aM@"IdūJ*]=KPjն*A*d{xIM_j_νաpEFZ @Z 8L,dd  _ =le<8W1fE8[];ʇLA5/yl89w:]d12+W'9gOW=%UWwEz_k2): QEcpxsm >j;CN+{NiۣGLwwu2_:U,djR{gz8y0s 5ګ$[o=x}>’ m]7/49gnLGQ* f1 ,2|)N ȾaWw9C0r z(7bLK[ ߧ䷊ R٣vPpYʥsqjv,t YwD(Z (>)WP沱3ulκ'¼%pIjq\ rۂ٫:جbaNtIg%-.d(﹔ׅgOV2JΕʺf,.:.yV-MAj] 8Sݮ}Vcԟ7&8JX8GFD#wyؿ/3WК,&J*PrY8`Wz )3Oʼn']]Z? ӯ6Ax<̰XX; V_tٶ>xUXDΟۊ6n, R_'h< iDpYTvAl:?Y*ɽ*Jl<8#6%&bIDAT<}G3r|jfh85:ξ)Îz3EGXvW@~ oeǦ[fGY‚7|XDHhiD/+w.Yz$E\{ƫϦVׯzIEg ق:=K`Ѣ|kͤ}\kպ$@k](k0Ԟg my kN63EITh8 L@OG^P'zu{R#\@i;|*^,VV.Ǯ*Nw_F5L_uW]9n >`;y(*]{W[d8&/syAAmp30m 5 &phMcVEkݭhrQ,mP̴HeẒL\ hX+÷7~,p{{A.8uGiS|Dž}O.AlNfw)QBFVԾ&j1wϞCqVֽ \1/^\ܦc+ !C=^wbݣ?a:8M.Nne[Zƒ>oO!Ik ==.jf2"?- (yu1J8I}j*m1>xzWswP\g1Kܧ1I NWg}K=q89'\J{zU |1tfOC[Bdڬ;ÈWj5=xk2ZCk7y4' 9Ay;>X"Ӧ6^ҁ͈L㱳cCsɜebŃW-xFrp`?EXv?!C ҘNP[ӞuUg9yq~zm &c E G3GĝQy{=}եL}Jޓ<8YhuyeI{WXL' ?PKN6"4{ A4%9>Ӹ2ƫhR{޳7lK 4OYt[IX ˋƳy1hk;G ðVC-ER)&+zeb_^ m wdnUQF/D;moV۔|OdT52)x^g#_:$[c:9[높_Ñx53{+MŲ[I*&?Wq9"G$Ǐ+HFIRGyU{$[Pta u[ҍS`Bx_nirmf3e#彩|Xu6󮅺n~iWE",OءhaDcO }nu";# vY0wO tmpLM Yvl/رTCWXZ ӞS|NrXp0VRD)ȹs@*p3h*SfJ8iE&'AZ7<ǭ!j]?~CWZRϾ} ~/::1 wOY[2a$ַ<^o)Xm'vw7d{vFǮ&5ks.#}!O©eq97,,wk%(mV;,Vm< ѽR y1myL+]GhM0{ŠWX~jOdpՊj]_׉EX~%֍#u+xG=|TcUG{=Z0fQO>Tkً [sgݭj1~afv쎳ߠyc_;MϺL0z;X}͓LN~ 5#:53"Z'<ħR5f?vsͷ6 ݆m i1.i ErԭuMsm`````p kY"UM- \^yi/rx| h?dkK4Nrr`haW",X( i`H=z7^#-Z./.fͷh-6%lfx$UJQVe'f}'Jxɞ&˂G&QTɧ sXmX!8ˁʞ 9g uE82ijR"}hpa'-6x_ 79~_羱`]26 O9 lc~wb//9pU")-Vg [ϩsm >j;CN+{Dg, &@aEyQ6(*_F%Ƚաpe9ю*IZTX,|4䑱}7J^<^z\>oG.Wڬǣ3]s_>RӞEɫ8˞kߐf`(VsՒ@.\oW9 Iq-exi9,~GXr5T=m[}BؼFҮۻਪ;s$&HT@|Wl1S#c[Kk1R;v?tęvLGmZU E:  @ E6$lL%!f73s` {rɹOƿzc_Uү?̸ᷦNbg=v>i}PpuK4=e+^J`l;`qQrC&\ vBc1X;-'7U>i9;-wX.C3x&KnĒ)^-Z,,V!jK'?|4[+Bʄh7`[:aq)BLevdxC6 L \f@tKRbnq P!e,{AkEBMswc-,%_H||&5i&9= 3rEkHC1jx..Ls@ovW S)8P7 z`?c1B!>k6@7m`wmÂjMy7)m:tD&jr}XyTƀc-(wAȞĎ8 (8mp6?qg*Ӣ0KFBKyG`d!hj*f(h#,1Ji Tq={PK+1.P%楿^չЊRy 3a-Sm7?HK:b>KpfB=s_fSo}d'py8,`JEl*G1g.ΝdyB3ywv^Rv)Eo5.WTӐ4 n[[3a'2]ˑwG0?aq=!<%oIȯtYte![շi4-0mKIɯ6%.Z>t ;4i9OcK ÞỰ$O. _wY}E_.ex/u|CQ.v[y\Z<uoX*ׄ.+He ހқɌO1 ׺,:G~TVC75+{_ϸI 5F/])Z+BBm{."5l}Σ~^4,l?*col;RvCwt<K`10e?M-3[!8צ{p.o;{bND v<$xμnJkQ}˂Uо86L7~kFęVsڳy̰zcGF+*yTH>'3>8'DݚB=o#>a3Sx^7#2!LoB|m~Lq>t7V1d+\81Gk{#a[uTi7W e2ҤI&mZ,fvy.7Dopb!c溛L]\nwXC!ĄQ`4Ś?sȴг?]x}g[CIN(:o!Um~}m: !B!Rmvd(B!HA!B@sۢ2&B!B۽@P]Vɸ!Ba/,EB!*2|ڑˁ\+!B!tM_'_|X \B!CE;=9uUIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/nyx.png0000644000175000017510000002250000000000000015113 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME $1T({ IDATx}Y%7vG.U.Z%UT*-T-5ze-m  SFc?Qh%Y-HTTKVeeefr.$!$dfifd[<C0k6k6k6k6k6k6kb2WMZΖL ۃ2UI}|~ !"H)!vH;&< 3»M}( s!lG;<}_|^ʉk/Qjs};yD)5N.\oR$I9^F믲cB Bd)s׻c dYfܿ\}:Lm̲쿿;/w)1 @nȯ~_}z}}v 2a .&I%]@ACȲ,Z unqct@)h42Ui:˲LCA!/ݓ'O_ ~wVWW$I%,\d"Ȳ?f仄K)EC啰lƘW0@=PRl%Z\SAz^2 矟xPԕݻwƍVVV)4E$*z_,e!*OueOv M~v;mt~_iRZi?~\Ki'E6 CexA3t޽@2^zj4"4c pq)%RVF(eR +ӌ~s0Hɑ$IP \VIR]?~,W@vz5V Q{{{BJn$I*0Ƣx1X Q϶$ &a~ X))30ViXa UJi]qsJt0SJ!`08W5(@ۭ:C@@߇'FKIBIL-h/0H}0L4~ j]iu}TL! ϊ+9<7›-.Ҥѱ.!顥 .]0Ɛs^ӥ:cCXIbFhH սSc|%W0R>Tսxet̶1.'4}ۮ7KLr^BUW4kLH<[`]^i9ICa6-p8f}(AUC9>9q6'8īB}_BMp7ZX Y1a! QğʩpxTy1^)#δL[H ymfX\i;N3r\?۞iC%5@VǼI,I@c- 8370WLI}n/9mETs, #i@;VV 쇰<#0_ii;4z`ܠ\+d^u4܀,WwlR. 6bUp[!(:h;+[X1%ҹ iP.KTp.k$\Q s\e"& pSBrL-iԩ6'Q7Yum[Юu8=!Ut6Zjt:m qbjAƛhqW͏UNbfž* ?c Al[|ڣtA·sCK8jqci0XrŨÞ6s]G!fY<0L6Ȧ%৴:.vO~ |5 SISVi%Ec@BL@E G!~R01es$(;Xc:tWųO-;i')bXLgEUI)M(,@E$ eiZ#mE(%ss{UXdo>$ Ev ^A6UyL4[=AvR6]tRJeM; %m)tyyr6yQ79& LCiZ, #TH#tv]8< Mӑ@rLe ѧUa;O\-VRǪ`}Z mSz!4JnL?O o 0 !ꣽ(SsN 6(!7s'/>> $ >^dP ]7qh9{.uUohmV9<ԶMՠ32۾NukTQπj (b5AᦐhЦm*ߌhy^yiMgDťԫϬ7??cwQ;%X[;h}]HWP"O$ٳ=SxWqC[NjDҿ|8D6|*oR6m(J)qpI"qzwam)4lKRzx .\otVH <ךKzH$Ib.D}9) rʗ4 M(hy }uQ y3dBX-$d9m\Bq2.]zW^)]vw{fѐ0)ߵ*/'x!.^zC`oo ߳c889⫯FH,.ΣIRnSM QUh MVV|7Opl=wp*' /.c߳Viq%ROGT%wr9mzN hkI@p^޸]Or !N; 1J{{pXD=3Cr : >=c\ڵ=fri)f4l}Hρ4o q]\z&U4j(K7A)z.汻P3j>C hT+W&(0Eӊ$5.H'xǏ!7$ DFNQfz2s%C1?1?PQ1=LMVm/N;X[`}}￿cd KK)(j ' 9A1x,!e$ t*IYҕ-\87n!@j"6UoӤ}BTYj9OR>7[8?Ny9@¹VsQ+`eEG?z^`Ň.- )uvJ S4"u:ѷ2j Oggr!Í`KUnLMVp=8ŃkrF>.4J(`ĥK&(e|Eq١ 50֨f\ˤ$*e\ZDbmM (y3ݻeM%]qoSx}j0$Yr ɯz;/b++ܹ>vaӝt|+!`!E$i*s#2\N1O.)#=iZRFoh!$_@'o5Dn lΏX\?smc>ZԘC{hߒ! $xi5;{¿,47mBi`6I|Õ+0??oW3 HTWGx D믏O&=K#Ƭr:MFлHT́U3cK[0ql8j.tsYS (63|beeNG?J/eqduӟncyy[᷿nm9a/-5?H6fa4h\;29j)qdT-wy%}Iۧk-X>n~>p!ygO TL@^z=<6{%\n9{.0LɆbF=S*5Cer?a+W$&dW*m6ܿ _w2+l7 ˞?Jxc^{J._> ۼu.=O)dvP%ΜƠTΝ" ZR#C*Z$$ONXzk='Vi(X's'\>|``$]ZB ΞûX_҈8 X_O>yܼ|,N l$ Nfꊠ'`7Z-V]?NqI"qV&pn$#՛4XŦdjB[ 2<.OS  mB\_19 %x .]c_|>\6f֌)IML@[Kw:/Mџ#ECc7EO!e@5Q{tdWx ?CHܸTejl,y IB1!ʊ/`uOu{'T+=( ?ܹ Doܿ9kSc:ڮ ^3*(>8 ?/o⥗˔FBe88y\6ߥS5͆I!: `8mY@T /gsa8e=sᑍZ٪寘c >H1,aq131̲4MA(sߺ'yn﮸^"/Pk)|?Gmqn[ysp3O<1!WRlnNϴTrLn;C .875@S͑eO9/:(.UP@GPD@A p.h4AT6PH .]%VW309F>K֎";JO1ZH1su9`at _` /!7xs_|MG!d ~=dPFd\J͘]sӧ)xqcFbQ^*hfܞlD9IHQ>R@V_ԊXeAyY]z Y %<Q9.'XY)Fի9cM-P^lҦ{]Bm Toan"rE#ȆĹ̟K覠֖P? 6ʜg3x^' 7o՗ZpaZu)\̬5Ped,D\J\z 5c!%I T"2P\1 .֜ԩs 2s3v p.`Θ+:})^ִ 0#  ~N2ĢM+c׶{m 8{v)]٩^ټbu!B6XUbzW\RHb&btFEB{Q9:i\{8 n7x4e`*Ч*X#x"pA{{ }94bV^t|z p$`bav`wl'5蛢㠀O2Ui&Pل#&!(t'$KK>S}N(ڬRSZ`E7nPln+|d]^`ޗx (+r4UxZeA3޳K*Y0y. dY!%5V9@!(M@!IB+]sfM`WG:J릊 #;K:  9$ `0h|i;v@= R~,%B˙A ϋRNGjbZC{)xjTR],@^ i\@yz.ϕ0"'}BVP>+КrEJ9! pL&9&`L|$!,߻]ZW"^jy%0W’ v/wD tS˩.$ѯO!9|F /Xxbh/RR(6~׌.P" R YKf()D";q$^(^gH R9ZLB 4&`u[i1vfp*]vl*ܫY8꛸Mϰٽhj-3_fF>brź 7\thCu>|VI6خ7sm u~vBbB"tuՓI2/qt0*(%5RCY:.H}DV%m<GݿY`Vť I\H4' Gv2vlx\ThNOk3su1wrԭt{n@zgZU`+ QpRsTaTpQTѯ*[;i@TC Q]_7;XUh4Bk~vi 5 WؤA\}:hVR_>lkawA= @$sܶ&ndp zT"* 1N@Oٹ_7ㄔ !e]-<%|8 bB g G EĘyP4}8?h1p9B$>-.p_IDATfymz:G!W-Li imcp(vl>v`S5ϫk=sSBV vah t:R-6?;Gnգfɑ"_wP@3~ۮWT{ڦ~4Hj&Ǟ}54P=N- -eQFj>6Q85 Vۄ=zևaXm\@ 3/V %`NT<~8 JpJjs X&+ѷ2^ݢlWu6I,_wiCm4?A QheCʥ{Sg˃ee+ܽG_PR0q&f|4p}U'\pbʧ@uBMk kԇ_=~ڋ[[NccH6U"axE:"464֭W~}%A_|rܹsR %Z$Z@9]gHӴ01bFR]!pVpV~R,˂T)nߞp2Ol !&jH+GTk&%UJN6E)EÊ|0w餥soW8\Ii6HRя纮Ԯ^<\&V:c,! @7GÝ>Z_?+Y &ۥ&0*͂1*`iN~?y~0 +q HEE ӘE )X3JV3'#TXֵʴާxf@RCZ$@{G(V`54@"5g< g/#ECfvS^>/GJ ^vPD:H^C W?t$R^7}xP| L|gPkr{XA)[F9Zi9紗 'wj+-pF .HrEg;)_\Մmf~I]+ftкf\ g YYYYYYYYYYYYYYYY1%rIENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.047666 stem-1.8.2/docs/_static/prompt/0000755000175000017510000000000000000000000015111 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/attach.png0000644000175000017510000004541500000000000017074 0ustar00useruserPNG  IHDRbhsRGBbKGD pHYs  tIME1B IDATxwtn'JRB EE+OD,".= H?Bl M{쾝yݗ7ě`|81c ` Mo `>p3cL6uV(mNR={L3c1l |Sߛ>rV~1c T\T!n7c15_;RN1c5(uF%5ޜ ۹`gM]bR)~䝝{oU}c1c̟kI~NGҮW%@<Aى`{PYENnzv+roODdd7k,K؟N'b3XW:6cr&G\wh5'%xÒ}BCfB)h̕k6'C&4iF#I)}i 40K%tZϲ}AEnǴMKiZ @ ^Nz~BTؚY1u("J1[( q rYEKD_Ə!ȉSil:4]Fdc"P1G7,ZO糨(7,|eҷZX g܌ُ=ZKV^C+ӈ,m QNz]Doɧ[Z3A-mmuoV},ܾqj u/''e8G?Ḅ.uBE&8W$.'s6GBn9& p9ך_yϡ̳e +pxߛ説]ܲ L_A ({zQ?gCj2EoD}m`1= B?ėCJAL2?zY[<@LFnbt ~3zC̏v-UW苘N|+q,!{w;b55K[)pَ gKo>OsK_ c;W_RǑg_QUk("2&ۢB 5mV`DW >?;$u=yZXF֬Uy}gagj}Yaߺ<\0Zu̜߾S\VX" :ZT7 fn:۾c1vgp.DH'SI*مFsϺ -I D^_bAJ(zщ4jD(qPi"JJMLzS舖($H;ˉ4aq#iԤY4gF n16\ʠZ6\β}U1kE{*Yp_V升hGm 5b|t}Ή/fBݤc;O_O97 *&t*\-NMΕS)}&{.Q} R!Yɩݴ5t<>άI$-(4tc>Q* lԍ&~{}$\u{Ӹe)˻hٸֵTM:wBU5n86%o3Psc1X#$׳$Fۥ`ƈ;&9c1I{% י1c5/`1c_jc18f1cjc18n `g [ !UIK1cݒZx,rijyq`8܀T\eln'akӂkx/q}[F]x WٍWl"j`cӜ ܊21cwD3_x2A2Lw YȊ0r8*>O[}Ci_m9i @܊јS J wec12<~۝&Hc% ?QMcAL~ąF}" {mIQUj }G*:l*IӜ5Dl&JбyT}Bֆ?OD'uEOCDGVB㴝h>ѕwBm6R=x{ซޑj0<3\%aoN҂B>;e)Abp(I>$u0knK<1x'X7du1:,=a,X1l(e[n+xK(2@ $֧?; PkD A&,rT.pWir})2 um,c1v׏T+{|@ITNi0~ˆ(zQQgECD'"o)2zbaYtyʛ5곊)VQջ>y"26ܦiHDJ]"Djb]L_Tj'ۓpkppppppppMQ-&#LFG-"87ڪ c&8?gȋAb9`a뢹iЀ5<BS(j2l{]1#X3̓7 c1ݤޤZ XCX4q$Jh22`pԧcp. Gz etcբ(M:sW.ec1Ҥڔ7~גBDx Vhmq_-j;c?ղ)|?e1cL`De8|8]9-mx`gi=-~O#xM-hۭ>1c l7A@C^!}>[SU6AP!{CYG "\|տIز  ]@KBSEQcq"[ؕeЦBW=<$mxJn@}?bGT(;(3|3.(g}Ǯrpppppp_=BGMD;Nk@!_Q"m?FyؚDD)e bJe6iCUU&6)0h8-i lci~7wS6i3HVUNٍV$jv$yFJ[هT$Ղ;Ri(riӴHaIەf?FANӋ\4sH9a{Ӽ利6o|"9^}l2J~f;V, (}i 40K%tZϲecNi}Ć T,SՋ>M多_&Po#l3FDы:U*":yKŕ0 xWJ7Ҟ9Fo$ =L87hh#$$9tDP;Yն}HI蹶2,QdJ[I}Tf$Օ곊)VQS׺# Y9tfyDl[NtyʻsMGDj}Md8>|ft"qGKti~O?"GtpRafˡ"nP"&?2ܻG1(!aQ GT` L92p ()pS H3'bj_gcȍFpvLtYN^ ;[H[~8W$.'s6GBn9& p9t2f>1c GˊF,ѡ,@u_S@F|U0O#X \jeJ ?L Ż&w *3a?8-F |Z H+DT M0A"_Fd0Ec;a>,}qv]ʇ>mnicNia1kzM9ӄ/ " :§z*4/BC܀CS+sMy瓤E+lY},|9 QQq9> jmv)|Bwtԩ2za|N H,k"ԖB +8ȚblV~*>>r&MC 0 ty CcVa1v Wex2MuV)z^#XhrS6 q`Nl4,H)=Rv/H5$L:͸ ϻD!XV\=i*ĥ)+eX24[0= ;.ŪÑG@k; GxP8J* {yڟ@x{E65 [l/2e=uEALglzv4ֆp/qz_ذ25yq)MFZ9wR$N}୺1[ .PNܥ I-1kD\KȮ,Z7 SeSV=ٸe)˻hٸMhzn4*1eoqu:eIKDd̥s"YB4 tJqjʏC ( wz䈑,V yttQ)4(j7 5c]&vtfȊYK.RBv3XNSۆ|ƽI?J64NMΕe>=(j; ReӜ`4SJ=ֺi`1c$1cqRc1'Ռ1cqRc1'Ռ1c1Nc1㤚1c1Nc1㤚1c1I5c1cT3c1I5c1cT3c18f1cjc18f1cjc1'Ռ1cqRc1'Ռ1cqRc1㤚1c1Nc1㤚1c1N-O@[?цB>G. x^r%rn+^cO~ObsEĮW ǃ;9 fDeln'o۫ %j :Cqlm ? Z'Baȇ0wߞ;]e ql[Q1c ]zvAoeaF?nJgh6I!|ԬId__;" HSY8~/}8-). ҴDD- ԌȺ\kk)SO҆g{m> *4U3'Ҿ]IiFEpTO';e8888888/XR/R(cc(ӌ[(3etpAEnǴMKiZ @ $ @("J1[( q rYEKD_Ə!ȉSil|襋D=42ۛMDjumNP-ݟXBD Ci֏YD_P?Kӆ73dvԦC  1 $UfI#'̢wy^nF߰{>!^/N{ M٤#ϴa"j5Q^]o/:ci7DNkU1yMFDsh5d="&>4v4bBpN'Nn/?oUjEi|FіѶTvTf'p>(iU#0"^ԩzSDoɧ[Z3q*mmIUْ988-${5AUz'tq.1u IMh@6öR=*OSmhHsccFHk'k;?OyTlz4Nt>х9Nf^0 -ѥlU6l7о",&/|*5TR5e8888888zoT''e8G?Ḅ.uۢ=@dDh^&@5yG~gGLCD:L  0A X}Z}ц"bXyB<*} U7ϙremP8ra4iP58W$n|uq+1#e2شgbGfõofc5G4Nˡګ1<f>ْ7z }q &W»QU1Iu!Abf`F6>->"ېj&L Do H ?L Żګ᪦w }X8캔}>ܮ`2MIDZ~=8=/;[V1cjIxpy':"'D^d[< >&m)+;(܏#|8Y1Ehuqjs6DŽ8mN2CGqEdcnK㬛YڰeGd%6ըѾt?@/Pz#P`DW ޟ?FTx;$q-gBX.0}ٴwC,,c&j#BVèϣۮ hAcT+FBάhS^%"SSX])څ8d'6bc[X;oVwZcoSƻ uV$}(6-\FVS!.H^%,{UiW.sR=z+xF#$h`ԬŘ'A5/)=o}`ņ}m,cOдXQrd!/Ɠ.(ec1֔:Z fBݤYv#)E ߂0 IDATͽx[NiJR==ݸe)˻hٸֵ{3QANкǃZ0s]MԹ捊5?g=g*6nՆ hفdsI 6!(7w.3 |iR\9ѝcЂ.JFS7**}&{.Qv<&5iS=k"qoO'Rɵ9SlF +"3[TShd?R Gvwѳd>x\>ɿ-c1ƚEMc1'Ռ1cRw1c {1,0?2zgKf4fgRZcȦ"f½]V"˜?P w~ײj :Cc1dwJEa =YP 0AkY^0K_'=Bq`EƎ`,Bb q.5d!=#C?Ċ1}W.L Qg6ߟ_'e;l xh9,vgDwc!s`cn%>`MʆBeD=كlΒɨ Dt&5L >r*nf :eTſSH14dSfD\},_dOx =f"GbG )h=5^WP"tPl4w#i+N[ &gimsOslTzw#%v=oNRrY2 _K#+#|P 5W^QcAL~<ąF}" {m<꜃F|ZaVa'"ֵ"-UF s@7v sq_Xy L@"_i0TlH.' DovYIS};- ;] gJw¯O' [n3SFbNzH`Flzv$Q3?[Z11L ; T[p@g'.\ ƌ}tǢ]'2H>$uPN|k1woxRcwZ*%4(_oRڂeDdPo#l)W52\x#F h {jQ*40R]zς9CCmkvnR,-$HF%}@=*"z⩌~D@RAC i'j'xMb oi-Q4MxdmTK[?CaDS"ފ!Otemgy")Ga4"hx2vײp rD wxZu~TNJ( 5_?WB^}ݨ#\aL;3|Q9<+v.Y߲0ean=;(- +#H@i0T4iaK\DbiH?~9a'5ʖCLܛmՋ?!/倝-`1=4z]pBVhS9]j6|2/!,ѱ{/W^ @NrU8[tZ|i<}HE'y9|e@.qٸgdža[>DɿC)e쯟sq4zrkE+l@A|< p?Tdh!n@!ĩc1XnC[gOHΦRF\ޚ^Xg,ž#J,zodѶ¶h׹ |!D'Td*wC5\XкStq.CzLY4Wm'9Z3g} y77* .~^Y _e 0n ܃8~G j}I-1& ժ}o?xˆ̲S qD <,y6e٣m Mfv!,ى)Eǖcq@*FA>2cw !@)ʈ 9~8GE3G؍DMlިhAYez΍;G;JȌ)`ٞt?ŗT$~?}P{F=ؘGD~OU=7:6Б+ŕd=Z&oTЈe;bZh2/w'RhفdsIR=޸e)r^EƵRaB[Jqpppppp6! ]c1XI c1㤚1c1Nc1㤚1c1Nc1cT3v;,a\R7=^v9vpms|RM] R  o#0qܹ{j0:<^w up^Fjx-~Si@F<{"x:D#%\׌y;E_2X{zΣLsRXxOB9@ 5ty:9 -\59xZE𣏕S6a$ gQppwL0PS # R )½΃ K>脒$#h&t0FoYzO-@j DkvE}шf~ ڎ~ oC3 $R:n|n,ax:_Eo +_wÎ/(荂(4g=yV76muEPAaWOE@GJȬ[ v^99@g-2K괏}8;t$oYRM>dTd͘ 58= ~S`Svcx׃WV d_Py3TZvmD~Ců Xwy^_)1Mg.CDTpvKZwQ_M Qdxv 9 ۝er |bWBѦ-J/mfB}/3~NyURZv /Kw A Cv$ 5OH 7}kɣ9ԥyЪM7@-l:OWP0,e M2 #6"eO?l @9JB핷Kp\tCoP% HZ xv`(8##9b=->X_#51GL]\6x啊!7M,nphgSY<ÿE0mhv}_/*9# FdtA^L #Ү]+" /8ςG%F!P+5j0Eà,q a#? P)4ƣ l RRJ_hЛh pƉHqI9}^ЩE~6/ϵ}^9 2ȽGػ@ _a7ӯ҅LPK+tn(uc7(N_o;dxyn.&R,Leb]7Άs)p8e|A cT_1B r(/qRR{X5T~A{ˑjv I5]M0dE |K]llaЛh۶yW#HW<kjw|{/[R.c ~(/]XuGA#akR"2$"ukrA(>2mc(>/q5Cqossr ؇.BP:AZ_ovbC͞C@Z\O+4GMoivUV&n7Jz?'/;/aOvv@g.-CNQו Peـ2hPC:'g$rqLr2jH(dӶ/Qn~heCK0 XWP+ *OfYjM&Bw\4}|f,l!CDd` 7o4DI!`م 봟4:􂵛=&憏j`2y}>O0|ȭ1%&Q}^Ծ(Ghվ' oZ?H*OR*ߐ90f`Hvjgjξ:%s 㤺V=jtd s))A ' $wm*FnL嵒_'K, 2.yCeA3v`J^,9,DoJJޤ Ľ(=W =A,r`ںg]1,F ri,ra*=о\~A^a=a_<"jQ,G x4b@j;,tQ6 2]jBI!`>EIҷbfIˠ+ڇ=zk%qȍOxuQdx9`MI קU}I ;=⏋Ə/VbuQp9:ˠL}^Fڎ)C`:34u|]K6CpF@/qR4}^S`+ c1E90Dy1B38p:n̘zrG% ](KB@º}pR"72a5"R"\FHK)"1Z"`le4bKT;7c_HNYl1NOVnvڎQuP@j.#i)>2oBƵkfFhiugr1(GZd}|QrZy(`(@f~@U$l> WEJ ?CrBkWPVO9pR_0QJN,Af&>?9`, G_ ݜk P45<((JɁ:S$b9!b9$c0iU/y Ƅwp`~Y)p^Qв(,{eg#a\}.TROj| AOR *CΑϐrȌӜ4%'B\٣4~]0 Hcq%zڄ_s>< Dk_>dCw 1}NK3!UYD{)GCwڎQ%7y1mT>ci|n75[º=;R%."2.4"V6ޝCO(dY稦KyLrZgu/, !;H5cF\:cxk󻧡 k$:CĻ jtvN~M,cw 9T]^G`#rv.@r1ֲL0$vpGŪ{+]4j 'LJt#X*EH儚1Nc蠾1.2+2 *68v5ĤZ O.dAt1cEMc1'Ռ1cqRc1'Ռ1cd 2!= n F ‘}dV(wn[ӥEtBIkXDn}R< 2KͻCR 3١ rXt9|+w[ŰOXW*^S}QvAmc1nVR-qS));1KAxTA{+41^ uIDATHP@&4>$SiՓPv+g]aer>UQGpHKY 5\I*3R7 gP3cT2d E{n\ʑWVYA }Ny.;RV#) (Cp腼Il J-BJt.@iV*c}/SvÝ;=2Zc1؍5j r(/H`!5$\P(4p!?nxrO_1U sRZP]'S>RRX`>ï9{Gz6?݊wUwǿ&!$@@$ n̸n2ձ:ֱvtb[+j( ש .A@ԐȞܛ/I`Р8|?3ϋ<=9ygIsuꍊܣH|8O}#'9F@+b^@$4kl!ֻt24'wiQH|Ci9ZNssɚ*{Y?}/FX7H$bNdUv7K-m ճX:c%}=\^G_K*VշLP`Q$9#w?Z>c9x b]»,I*@4x+nir+uK{=VDM$$ $Lqh ٙ դH@4X=PCsKU>Dz'Jyh&\NA^ܻ,I'TGgЉ6̞GS(lи:6dә$;57#X@#W=ZRՇXߨH@rܒ$Iy:Asc!+–Jjd=r"=Z>KaSUCGWHRyS^G]@.|VS+ٔ-CBj}nCϡ^u_>` 3vdE/I%Ih{B| {M~[ݼ?uZ -N`@8BK| j>u%QTF_̐ mV?w?;]aIOpI֚Ymput!O$Irp I$p$Id$I Ւ$IZ$I2TK$I2TK$IjI$P-I$%I$%I$C$Id$I Ւ$I Ւ$IZ$I2TK$IjI$IjI$P-I$%I$C$I$C$Id$I Ւ$Iz/KCOOˏ!ػ8ǐQU9a"c b$I$CMΞкgzN,E#;=}GFUſ9Pܑ$IKafL>05_a'|@$/dD$IKF[u39AxVw2;صjqj7?1|Lj)[g#QIztߴOD^ +\j+Dޖ'=]F?qټ{b<9,IIuXeo޽wF/y8Y {̙x}{.NJ`h^xamK~>P(T)Ѹ$\!d"""""җBg͹~O| V w^`EDDDDdlxE]c*>ÿSәK"/m;wH ,?, gq8o$AcE1?Č968O_8 kq !J-ିy0\ŋCClWpRxW1H,|+%"""$WC}'jf |qu8"C_ͪGu<LE;-n=Jow `W 1Q68/Mc}mb_$pΙc?|̚w'/~CMϠ0  l1ͬjIwlDyum }}u8wFf?f^3|SFHǝPvz ƌ[).vJ<8Îc'7pwK8nrAIvZu֬k|JXlxo}u&{OgƞPZO2ό%:.&t6~r*O}i?פΛU,^7NPRDDDxl=/s r{rzf:u g.i: όc^|#c OO=^EG26i'Q˷~ҥ[qvb LVN;HcȓNn'dܤeqUrB&in` AoRi/lΉleg2pGPq ?ZTEċim_k-{~&M|Y̚_gG26k'Nݣ-#\1= Kϡx ;$F^>55-7 'd鋹~^.+, 7i'&=o&W,Tri8fS-"""f|YR Ќ&~Ŕ^t7pvgX-ޜ}YnRC]>[Ɖ3uh{lg(19R+vX8m4zzx[+CpQi /NLyg7kbpTx;#gP1?us{ 5s"""P'?% a6_'{̻Rgp,~;ջvrWtj5Szxnv!4Nĩyuw= Fl;Cj-w{^?~k.;5 J(o?_;{S@p%ϫ㻟N,jG#phj)2o)5vh5wu۸4m_=f3_Y92%x|jB;Jscq ה{ʬKuߞu1ffk}sq/6M^S1bW7cꖘ)޾c'mvc^XX#(T(T(T(TBB4JgEḭɮʹ{ [^t#r:o!he5j*NC/im mlw 3?Eĩ{ B˿a8*.[y}ǼSX(HRB¹^Em$\e̺gf[q7-/n7DagmWHvpB}τ0ф<@m dM$egO{Ojp;6ƎPpYu ߆'Mvy5pOEi/'EDDDfZ%ZdPBOHrϛCnp?H ؖS<}>^ZG@w[ˮgĤ2:^ڍ3LaJ ?6°1jW]KIŨ4?tSEDDD]s ?"y.iv#|neT;6ӯtut,nk0]p :$gАMΜjB޶>eyWsOrd/= '>nY`B[iKkq+7QBva1vZ޴88vAo"۸si%;rdp6gq_*MϚٳ'0y"""""G?T[2+h5kM)/ pʪ`g<\o P3Nbk.$S޽7tV=ٟ>ڻEDDD]:l.Y [V{ۻNh;=C \$O^J@`&T"W>^}q; N_(ϣOYDDDDޛPm1zbRf=A=Qxps&RK0UϟN@07Ց C}#)(ӮƕC+c&C{*Z[DDDD=o3Ëo 5FŐo$vxJș mzh߼0vVȚ)rZTwU'}r~OgqR^D~Dd.1'kϼHBEDDD]yg8\T?^L=L ᯦yrߜO"VmiWS1:NTK4{̝ ҽvvFCߤ8 =^t=Ůs8~')Yͮ^}""""rY2DDDDDl,""""P-""""P-""""P-""""P-""""" """"" C96<]Ao Ͽl}DDDD%^&\ ƅk酶ӏg\9ڣoB'rٕc >s^5""""r,jO:'x4 ?E^\ytx])7M11$6NoEE'fZ^ )waOD;~Wt5c ڧᅕx5;_uz{1uCArgr/'wΤ´l_,y1RsӞY{fbn9nm\Bt3G t=dN9ตmp1-_|xմY Ury6aLÏg}y3n7&%5vp1_b\}ޙ >mZ0l27N' 7̸tY~ sqǙ;Ό?fӻ|5h"}̌+co.mStr9dn2s"ɴbv8cɘߜf8n}35+?1oBs3qcbF1Wƍ}W;Sk扏k Xddyׁɘ5{Ͳ9cRz?snO Eopu<EUdyW+?wwm-V<@""""0Tؽe83l;/<ƵQbѫ3$Y3zQ1m|Wn̟ƞ?Bm1绹xu&Vs}b;eb!b(>x1ߚ|k^ewm#行3Tz򧤁?̦ߴdOyW E~&‡{oV;YfZ>FE}4ʖ/8%5M|{%O.e|:Da?bQ*Vnˠs)%Ŏ0""""obLq^~GΠKYNc3ߦ]dN/fE'Mүǘ;&AyKjk*f6w`.}sve]3^MRQQQQQQQyǾ܏|Ӝ9"1$""""Lj͎ys """"P=dV>9=+x>59*"""""(@DDDDDZDDDDDZDDDDDZDDDDlཱི3f3vOq5GKC;2 _ga4Ԡ>Lna>.$i[+Z.sաU6-\2+Ȏ<""""rljs]v5p*?JJ<|;A':4,⤒d`t bm8QL3ӈ,1hyq!Z};kä 5Aչ1y8 PgiI"b!l *pEdWѸr W.cVMG؁n>y;deL 4l& {͌Ӳf UQ1&ȱI4; wdec`y8X&N*5ذ"޹W 'QϦ;O=)uv޾9^{2U%%~KKߠ׼vihu~ =#=o9:Q0Qb;ҹ|l{p Tڥ݁v--ȱ}w'HCGLLpŲ #!цeۘD7#>ݹIRvi(aҕO)_ TÇrȝ/ ;s>/&TGgohغkh}~3Pu_!6~z{T_ȨцΧ'e*@$dp[KOʙDVz/f?PGDDDDPgZ/? O70 )˕oLߤŶ!j8W|, Hձ/: Z,pSf& ?|x#xxtfwiZ_e&"17c.o@ +T*O&v2liu`oM?Hٟf¥o3{{簫D^Zֿ=wQpTmØ26$fyFa6ĻI9CIv=v۞yFmF&ۗ_+?$,Mv J}sn;ODw^6:_9-tr8E>Cfl__@:Z ()Nشs|%xӺPԀ:,GDDDDP 5QOx˴ݭO;IwҴaT$MXg=RJJNh;=C \XG.$ߛI?e51_0arsUS7e<F'@$VzK1+/cCxhm |*m" nxxc][;GDDDD݆ps²,0I'ISqvEߦ۹8p_VծDFsTxNzȜmFpJƑEdeo7 Vk6xkW]C8~HR2ғ:ώJQUmb|DDDDvssqUVpĒEҼ訏S2ئ!#w餇DX&,0M}|L7r c<%LXLQF}u~V/x RAbpH(9JFO;*JNj7rxVydOoe'' "w}N0f(q$2xJϢ&i[_P1&kȟs+Itmÿjc*@4$["ZHt) M> 7#B3in_Ψ`Ꙕfz 5+3(I)&δpBohlz<|s3g|~_%Hg`~vepŌ\x˞M{p#"""") )ȿBrEDDDDEDDDDEDDDDEDDDDEDDDDDZDDDDDZDDDD}j3f3vOq5GKC;2`bvיp+n'5X-dyWyyHy'Sy4Q"kT0 /$;__ۅ4JgEḭɮʹ{!,=vFQ9n!2-/>Hk'xG/[$ FJKDDDDKީ\><>7 n˙N¯QcN<.7uiXI%+ ν>as䋯76 _a‰Hm{ڧF_0 ^Dvl=+g&3@o7ӎC)7S9Eh OoP﷌X$Į@ОMאn }{}Fz;zc'0.<4ZQx ,[Ix;~곿LUɁ'Șree={_$-0 Q:d\v=#&n?V'w =#=o9:ƒܪ|0OIe&їf Jy7(9w"޹W 'QϦ;XDDD=5۳6. &HGGp"eAfa ea6&dHڕO)_ j7I# z7Dchӊ3@VF9Y[o3QKWxJޗ ?;cٙz#S\=GagOxDɡ/yNuւ1kW.'틈}9+̛8)IImC"0`}jv>;`7h&J(.,NKÛ7".]R92חH ԎS"vi@7mf[8W|, Hձ/Jc(TG^Z®(_9Ym,O%I.ƍۆx7IȘAY{#x.Nbk.$S2+h5Y.=L;4?q/?gy+z6<91#6<~'{!/9Bu*7z͵ 1zl<;"$elŧZKco 3-#̈́<㯚o=΍h;Idx Vb.Ys[5ѤwjǐjղZIDAT˟ 튓rgEb4<Du묣i/ߦdZ:%""""d>4DZ8& d5i*λt;7RT'9Cg=d6 R;Ȗ"CP\5wzH@0V7`1zbꖲuGJNT{$]DFev3!kHKDDDDPmg =7WzYU(+Nz d%4mƤ,:L-"g'h#^عb#HJNFATh87od5塵~\{kcT~9yB}M+Q ';~ "2Pph}tG_ŕGID<%dMXLaz7>}1&kȟs+Itmÿjg*@4$["ZHt$s,<T\ˤ H}Uo"VmiWS1:NTK4mB7<<3</~?ՏL;idLI Skm==eMhygqYNsS ޗ\BDDDDDKC """"P-""""P-""""P-""""P-""""" """"" """""O礼1'Di;Z0x'ɔml'/˿δh\q+mݜ.sЪSS̺҉A_PSOꠕ-M9deo-4ԍR,\y'Sy4ؽ0u}- t9jP҅4JgEḭɮʹ{n- ."""~Ֆˇ&jU•.,yvZN<.7uiXI%h=Nh߮dϽ1U~Z,3"2*߄sq*bDB"CJC )6 <:}v]ʘFiL,J({U4FUFyfw&""""Pf.i:v #³N5ʼnph2qR!gq{R$ #Y;pޮ{E8X%P5;ǿAKG$)QVH۳E򏤎kAKYɶ^4/$Hlw$!7CG8o=TTO7ᐋeAFC ˶1nqf'Iyy$M yk\9J%ra;s^v2J}^LаuwMTo0MA_ȨцΧ'~@g |M)"""Y ǿr9h_4 )˕oLߤŶ!ʍjON8Iw3J_XM?Hٟf¥o3{g]F~q֗hٲHMK<۸#7P+0a1GN?W!FZ 6}S?KhOՑ1-Wyeg,~fvvjSIay`qh!MjӁM)/ pʪ`g<\o M"jBȭAGOx kMW~MĽks'\Ctq-dWt?5kPy8zPLۋKݚMx\@qJNj-MA).LO򈞱spB'Tu0m" nxxc][;M33h.@$Vz{x 78P,bW_UbP}h, p0L"@$kTng:E%Au+eyKHO?"VO++/0'Z litNCQ`$"gުo.&n)5kׂ"""";ag =7WzYU(+Nzo 'H,YDqI+k1)8%SmŒt|S. 'ޞ0SB΄eo#  w%ΓCOYD7m#4.JNC45,?m:Kzn.=4dDIZcXɂo 5F@~=ZZDDD&kȟs+Itmÿj^*@4$蛭]Gly$wFSϤ4$Hi^S28bF.r^[eϦ=$_aL '֡-M?³@ŵLT^ XYc3  *ϟq~|u9Y""""" @DDDDDZDDDDDZDDDDDZDDDDDZDDDDDEDDDDEDDDDޟQ1c6c]OWӾw4taN)O&_ji ѸVz+d*Ͼ;زz[{/a>G_JpF1"ٵu} vrJ/9W <5u=m `UN7 :7zRZe\DDD Ֆˇ&jU•.,yvZN<.7uiXI%G1Li#'oݵCV4NOfb)UB܋q62 f]33Q`};J!Z};kڷcsofL5K Ȭ7aư""""b~34; wdec`y84Src8ABM#cu5}x~#cw{3GEVW6ʹK:𺅞ޑ7`ӗq{R$ Tڥ݁v--XDDD };Փn?&&B8bY`yFhòmL{n ܣ)Б9=BF6t>(=:f+Ooobv%NHDI  ܥ'3r&Kٯ@-"""r?cւ}\N M"Hry3'%i7imHp4:\ si+rOrd/=X,pSf& /0:?̈́K']ߊg 8!oȱ#/-aWc[X6$fyFmC{x _@Iq5D쇅=l!cϽY_C= 4Z8& d5i*uI3 R{7I~E>5 N"bz泝Kzn.=4dDIZcXɂL~9yB}M+Q ';~r9]1r&,(#&nϻI!,lГ""""f6Nx!έL'ѵ ;hi \Ggo^ov)Te;Pq-* U=W3:VX ~+\̠kW_(cyqgTP0LJ3=@inꯟ'I3rr/{6A{,P.WhFBBBB(T(TO bl.|_i!}hi`|'SfL.:qŭ WT}-9we['0[s,$`Sz]9Jh穩ok8tdivй4ԓ>ȿ%T[.Ȇﲫ!WA WRi :8X֡a'V ^HixR1/Ӱؾnyq!Z};kwqpBv3 {͌Ӳf UQ1&CގI84 &+;`'áI jSg3ZD f:%d ZJIh34AoW${ 7Nߏ}waTg-ˏrѾ@qͼ6$BeW!FZ 6]=Y8$٧4 Lh+~Icms_4t< 9g NpawChC~쳈Cu%jby UCKTRX$"o(ڻmwznZ ()NX!aO}S WV3>KiH}S︯oZ7VrxUFn:z곈 U4Tގz{_ťn&l<. IظO%' |^&'jo)xzNh;=Cy.i)_p-ߧvS_+ݚG)ب""""2dm.յ, p0L"@$kTng:E%wg=|k僧[R2ғ:OވJ*v""""2d灏F+EPݷr$,͘EG}E60)v.鹹Xl҇Q%k%ɂݼut|S. 'ޞ0SB΄eo#  w%ΓCOYD7m#YDDDD ϻ?=q{ sne8mASM[_`NF::}zM=DwpHڕ.g߁kTQ7z[Yc30̖wFSϤ4$Hi^}rt1#A9@l/-gӞ>Ȼ~B!""""2$"""""rXq`2ccn;5."""""v}>hEWpGDDDD䰾 ,ǡo;0P6aqJXy .\ j,EDDDooW+IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/events_variable.png0000644000175000017510000004214700000000000021000 0ustar00useruserPNG  IHDR6vsRGBbKGD pHYs  tIME;f> IDATxwT)tP:VTTMȵPhKF]/&7jD׫I̍74Ilڍ hE,TA"e(pzbΜ>STx:v9AA(@bQTOEf0;   R,)nKAAHJQIu# <AA$%!OAAA)gM   bܐ9|5Eӣ+AA fS#gۼ ˇ{ABѸᾰ!`&*Pw4g-e"xA XƲ  τ)jC]1r&ӰuV֓ y˞DYPêM,f軱\PWCB cVe,A]]CJDxh"})b3E/4 iH/@:cw'pf:Z;w+~ Pi|Bl.VyYu ,;KIRτ^5ij`=ׁn -XUX9}i}SWk)k牰h&g&f5o֑fl;:dfynۙzYU G?: L2dz=y)eMR3cxp_ZO5ncy`gj+sIvdOKա1B_'dAtʵy0I#o-yD"HTQdRmƹيA7"'z6P]eIeAb63'===jSʎ>H7sg3dQ0Ǟ٭7;I[H6FOM=3dئiۗ]:u_A|#Tl*MٱMg|ocuUfq̾/gbᜱER])eW"!*sG֫JKhRo:C2opQ33e>ڰv#Ozzu碫Oi"*) ~zG\|s_4e0j1SUo"yTD"QW/j4tks~^Rيq__+ZjXƀZ^ŻU-r5I^$隙?JB_SlWG^Q84ZRo[_c gpWj%\?0uڬus$/l@VIu.#O1;kv#yNqҲ:FrJO ikg%Th$#yv\Sm-cF08է$c3J!o.fss,H$UnCv6wĂF!0;7^5,XHX6 ODо彨 .h`gibOE>WiQ1ϗw{>ۻp4Qf hh=z`Q7 mqkP C|\a]1lC ^Jqf*`ZUЏѽE+jZv] 醶>gg7G:1xYO% TFŽiZ{puԶyuH6~*tD$TVaRvǒz`r~t*_,c8Tjcqhᬄ ԃPAVXJu.h֬6ŒZ+-W9" MY/0~4EDdZmL+!1EgN}JLXY1v%py~ &՚ge x4y{0'cWƠD:Xf^;0;Ӭ}˿Zz`j¢six2Ig"-,@J ۏP@&"*hs hH{UI00v:=sCˆ:  10*1?CIp)͸C:p"UcN`$0qHGz@+O#Έ7AϓBqV n!SV\2)cTpw*~zGGќ2ғ ߺY}P,MI= 9;;9_gzzmg󈎼avCd 1dEȀ9qh#v (qʆWLs9?ziX$w mVٲH<4}}e +rNU.ap{dz v$}R;s~Lo͊TÜ-E I{N޸P{";+"Tڇ*ʆҍM^mɖ-T5iV;&oLg2/_Ň8UC>K$D"C*Դ4yq U 5<~'wXY-9o'ߢMa=cӧ11*_ Fނ.\qH2+ڈI5@haf۠,˹\)is1ye0!(Wr|l1  -s#/tN9 6&2641̧y qHH2;k{<֞lLIcڨTgY!aPEFUş%D"IHVڴ漓併C$*D"Qq2@eƍb'HwRr|01u<gR__/3/] I& =UQ``41n/O#[U2Ū PnQMAAJZL   T  $ՂPYՖ86u.px݆HA$~ޘ f=@TNLoj.rGށvДŵT/h a){s~9rdCaŝBWA*g?Z!ܗN&Z~ѧEU˻\ڢhXcQf|]@ĆKe.H jfYH8k$6^-1,D"V+x1RW *֒TbRȬBL1NԬ?Ȼ;F%1,D"QJMny]B[(U~"<#?a1? !_j:Z]'¢WK"j\HN3]}ng:hrv uB7fZN7U vdȼS~u.>wv>iL.xl5 hO%ڦ%'n9Ȕ7S}~=~bvc{خJG7}<15E>[n03|ED""%FnيAtËo/rgC ePFtnИ-ocpTno k7Ww.ZI{* -vC zKFmko1c3Adv*iZ0/+'F=4[ᆘ=vc[ZK$D ZCXۘV`;ZRc2Fi^Skaܧf^:Sc{֓Hpu&ɳjJŒ6uA[ϕT+hO峡-Y[|m`6ojLWį:ku ,J>S$D"ы[WlBav n<,g jXlơ}7{QD]e^3|yY$H8lf8z>Zf h2b$%~ŃJ) ظV/giOŴa̘]w])x¦ T&0S)%Yln}9sV`t,Ar7MkZ@{x69i/cTP=FSP!_ B1#s~H8M܏c^0;l] ȌO,=R?_U6Ls-aiX|&{Áfz+kɣ$`NlҡHv1]}av*4iY=8õ4#~V~rڷ6A`<|ʣH>8O7Ewf`K !zº VX;Z$AWm?v}?v-Ǽ3p4z{3-<@oVtźyxFR`:uyؿ|<ATgaeħܗ8}DƲLo ֬bk{Ɔn;pۈa혳r.7W[U?Gt\=j!2/JuؼH3_g>C=>дpnz  )It" > blQ6n/ o!#: nƵʛ-gz uߎO?U^}==7L-_ÿqF:N<A|Q jyѼ*c=Mk2`^y[Bҟ?qa@B[c"BS7ȍܽղx?l/63߭ $o2>yæmcgʺ܍2cyfa1C7.<IIf3xmګ mO%Ƒ wbLң/r>mdTvwce2ׂp0gaRfC#z,?D0>,Wfa%  T6^,ܠ1[ xs'=\-}Eo f^C9og(9JZI=a^=[;ozwx5m, K[ϑ<ܗ7S #ieN]g_,5.J.r@vlәXxd|]jY7v'˙+p8g=$Cף3n>evƒdV?SO#uQІZwNHJ _h.>9jh<_D"HTuڢ*]jm{ZyMh?J8(Hp4ǣpb:v.}M1<]yls *k}2ϑ8A~l[$9} RYvd'laSC^g cOz֙s$ώ?"H$U&ɜǰl}7{QDa]b#*qӗ.;=^Ejj$&)aeXxt _A֗GfVm6uGo#4iNOF{g7'C?FücQF{Z i›M#Ɉ*d%\T˵*4_b BeE"QA+*0IcIX09?]/}1_DTjcqhl ԃPAV=![LTi1d0#iyWBbP'Q,"g6q?yLZu%N<0"wiJ%  IN]45/_YeXAC`'z.cThjzq.kiꁅ|4 SuDɤZLvTIz95l?B9[ rG0kp '>H!U] +3 !qiOOKQF;>8O7Ewf`K !z; Py6\7--˲szN%O/?;SFz,PSٱ e@| cڐs.uw66͟ d 1dEȀ9qh#qn-T6"d nˑ}׫GMZ& Yeˮ"I@8e71 T,ՖlIhZVj =o>T݉<@'1>ד~/6~wH$*yS>`f-~KEVF/\eʺl%3gVz^eZ ʃ jz1h%M}.%s=fdVXO{j8SۣƲļĘH$DEK~d%"<4>@Ҩl4@`$1AA'ՅdՁ'HFkS?}3!{Wc֣qmaI;9InЂU?~\[=jk~BK֟3n9GX5DX43Zcm,LQQwv:ӌ<}G{JynۙՎC"wzv}\گc}+WUL}}0Ί헊1ֲkA83߰W>J}!1fD"K* :7h16===IWKBeGuQ$o9ٳPA2}RZ@cAΛ^-a$rMK#&|5(2wdT&3$53#zgɰM8/tJ>Gn{6ȓ^ݹSڣȆJXҫ"7Md69=Gץ zG\|sд|& vƒdVxt#an :h*1fD"$2x&ye~'Uf^*ɓXSSܫ#/ђj5]FbvREMG⮥euGU'v.Ik)|WM1<]yLs Hx C[gϑ<;f!iSȶW/3 #>a 2f^:Sc{>{,1&D"QI9Տa٠+<nB.?úFD=TV֩+/]wz:HMFS Ԉۮ| #G5L1Mj i^3XyY_>fMO_VUL\B [g a'F~MεI7'C?FüPFWZ i›M#Ɉ>gH= ID㯨 ¤>&ޏ%c- IDATt>T.Xp6rkoF 5끦Cd @n}t+dAKUjcqh2#hNJRܶѭٿa_e2?4+!1Eɜ4Z@$ &1`~ Y wĉ>cdž KTk]LWc8Ue=Vp~2;N<6goXxA?!9\ADLH`iK57? 8 3p)cט3w;7lp}vH6̆M#eip5def!<".U]?CIp)C:p"R/>8O7Ewf`K !_ōS1AAPTYimiYeTpw*~zGGќ23gјʎ],T>o(z{F^ӆs䝝ݯ3[6yDG^c; X2"W dќ8͕II2Sv:Eٍ   ,T,Ϩ,ڸ\,WWqN  ȴ b +5O>4  $Ղ  PQQ AAAjAAAZAA$AAIAAAZAA$AAIAAAjAAA$AAIAA%Z8uL  BŅOe!I2vc[ZeH$D"'պʎ/܄,  BE]  BEAAAZAA$AAIAAAjAAA$hsF ^gxTX}LZ%ky-# ZТuپw 4;^3nS;ZZu=^6dz4ҺsEm2+Qbi×8VuLe*q"L[VSz4ncy0+]͚] 5x j{M]`V̛LaX]RdAGfZ&X@E~>?MoTN!? ZtU_(~cG}* %VuLE?⣖ݱ/ }٧d`h޲'>&/:+*Y{bMbol8~?%վ|2F! q9I/9 %#;K{iHMAv^7酖[Ʌ貹7~+ۡoI,zy}!|cYad*֍ww;b"+ᡉ:ȕS.U1?ٱ?czw[nC ?U|9-KUhk*DjGXqWcRsk`p^wB?15DX43~IYi'#{,?DKKաY^H7sg3d|(.(kĤ\~_V_r}.t32n>I54:tp`9?/)lӯ-5F,w,ZpR| kh ^LRmw+f Y:xq5 9ۢ*]j]KꗦJSs >nՑx}2ϑ8A Ot:KL>Mb 2s6w^ IihJD$C8IL޾ݸwee^y{={>KM5TQeft$^7fVPpѣYU}3̙ nsf1U'8v—2\ubƁY;dF{Gkq$)Fց 4pl N`D1" fL.;s.Sp-Ma+H`iK5 8T6uQ{i<9/^oŠ2:k9ʮ! SNp0 #o8=3xrY$pnԏi9>yæVT22 c9eg3̑ʆWLs9?ziX$wRCι@Nיޭ^c<+/-$Aߗ=\ư,T\̋@H/4w=?4㢫2?זs}à}1$#m90mĹ!$'8ER]/P?eӆGGoݙohf7Sj% N3vx31.q$S=Ujgݯ#[[ʱc( +VK)\;wM~Ec9 ߶ʀ޷)Gɵ.*1dEȀ9qh#S^/J{#UiѼޖoԴ4yq UƠmBr/g;' m3eXn\x0:̎gW ;x 4&3gV9'q`yFr6Ys?*cޏA{/16o}+MN|}aBQX T>?6e*l眻}e3_oƲB)ܒʣ Oۋ(O?"Өi{L?mUEoSKƑ wbLң/r>mgR8Нd&vα6&26411h\҆S= 0;82eXyjW}Lk2`^yvҟ?qa@-֣ڛ˵7W,̊kOy(uK9rtd?w4TIuyRj<2oTMk;A[˿YD7V˗4t e]C$11K׬1:T-k\Kx 1jjlu5oLX/8^x,ôLzBI_IX-d# > VҫȨ]QYq#XFIAAJ]L   T  $O`~NXE6a)Vn K ȸA${bIߤs)v,mM`U-< PFTXAy4Ma0K7j{M]`V T,*Cu5 .$Apq;f^$3;A R{.E⤆u@3Enm3#BAcZ?[.I1?z &_a[׵kds I;~о}GG8 :(l/zQVh2l/d\C-݅D1 z }d,me!FC~5{o/*K4COIڏĮlArFѧUk)k牰h&睘D8O#;wt'YPXr@n Kb!iOrZt+U&or9{"ILWh^3lys?KkZobUr_3+]bo;dܦv*^3J"ְʠzJn!ǸgpdIRwxcopU1m2S4aՁ'Ýhm6-9qIFVW͘{ZX=~ZZ<wtVƲڑ=`Hd"NMKy1._'dAtR`FZ ͟Ro՞?17QsGQ[]Jŧg=Y H$UcsΚ'6M޾ҩ+ GKZҫ"7Md69=Gݼ{ dv:'m #yk֣q;WA83֞âj6]--Ky5c:/pffrs7p/>VѦ}n SL{&OpakgnJ=SN458+dcӼ 꽹.9ʂ mg< nAOOOzzz2E~d 1d1.˶޷?njú ^sA T;^}WZ@zy)g k7Ww.Z}d<^_Q~ ŇH^ ? oE%ҹ.Y2>Υ?mHXىTl2wOefäӕJJKl!'N4Pg'6vǟ&(Q2m42{V/Т*]jm~e^y{={:)fj<줯٥.Ï09]K6;!*Eoڜx;lXOu&ɳj>4DžyOd~VFv+ _AV"=}w3=h;ө+fo=Tdӑxn YB ½# GFfCaΜ8U/*X: ?ވVF!ϕ4k23uػK\|yDf$xtynGbd`@v0HT|2'إ{]bJ'l>M\Wd685!>Cqa;0Ty"f*`Z{s\]1&O)+q?bDk X~>>8oDW] 5wm6m||:JY=2.A3o2RBš'ig$V:{?ۏӥPbQa=I ۶߁hDfJ bϩ4XM 870||4,>=@|Ѽ~4"]ЬY4m%KVZpsDX! YLPdCM7Yz@VAۊ̄H5jXAjYo~dܼx7/oo:5,}0RtP% 2cp%ػ*2.AʒTG(}kDF-<\YX "(Nv0`q2i%4ש˻嫟驜|}[{0 cPgwgA\3>}#`b86{컜 g{cקcrk:GC>74R7Bq>~fRƮ1Cgvn?xIPX;Z$fU1 1p08#ށX=vÁ|PksNGieDe0R^EBzd\ L3̩ʆWLs9?ziX+wiCι@Nיޭ^c<#4g-$Aߗ=\ư,T\_YVl.|#Ƕmf͚=RSwG+UlՌZqߢwfl\êМOmS\ /PT\@k9߇}aоIDAT\ŶƲaQs#?;u\;1>7K.l8,˶:qPfWb@=}\D")v?SR vGn$&<ѓ{?ؼ}iL Wk'no'm\˱ƙ}>/a&9#譱xz]rwh)(`[V)P_N[XnlkYbQ؞KG\y y{e2:x;BϜ}wɤ?eA)^wr3X]G.͋1鏺}am?˄ f:őj،?Anb'$oysyqHH2;k{^m}aCC4.3$1wCݡz[r.o9F}i^0δ>;&sٌ8OIi=z\D"i7LC\2m<2ocMk;A[˿YD2.D"HT4| ڻc"ɸŷˢ~?qgO""H$hEbʭ*62$Yq+sWK8^r H$U(- ;d   ( P6  P"Q3O͸AAA(3y?I!0&  /!7?ӎ @s5ŎQY2Oqa -]9(60!.%IJ9XP,IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/help.png0000644000175000017510000012165400000000000016560 0ustar00useruserPNG  IHDRP*sRGBbKGD pHYs  tIME , IDATxy|n6ks-*H+ֶֶV]E{X[jϪ*z(H W wI}?y< |yg?3`&0(B!ǫ_;9ľ ET)w!B!g?C#lB!8i6O#)K!B!'/#qB!>.iȒ!B! y)x#0$0_لqR}'s#B!1a92ԆS8o;P!<>c}|.}}7:,}yݦQpkVn/48FD~:܁}*W&kCBV)1h؎l ,,| ?[RsQ(!B~Gݱ7ŧL‡pٕy;+ThmelXJU YrS!O~͒MuT{P 9 lsF3rąl8U>ڸR&E ZM]K~ W[ܛnQFZmWGG8I zթl&l&lǽ-9go%rփCt8?}*Eƃf}CO,/mooM;7_~׽D?F鏗riӹL&MYgR\q9{uy:_?끽-lЌ6Z. 9|~6M"EyV2+fӓa[ޒ% !wB!ѿѨ&Y;N{Aj(i >ޙDLPV*3_ J31kTd(㾿ӒJm5?̹ۥE*+|&_+W>թJ|X]7#OEi[F?(zܘ#'mZkUϟ3eo|˘u@0Ux{WEM|dM6dMS`+03|4~{mC6-n t"BO"G.䒌f|+:z oF13n {XAJ)6m "_yN>C.|nxYIFQ>x˜?nQ&FT*Tfr㾅y]Bgx x(%v_̼" !B3M#֜ÈK8?oLQU.Op 鍯ם:f@;?lv#pOY*_f86>lƿ½o:]jYn 1J5o*t߬{~u=~Ϝ90=N䢋sכpIB!&CjNd1q)m? 5F܉}=IgY|n;>dt<~OzKkXӧÎ}7 =xk72H>U~zٻޏ,[.F0jR^v=kB!buO}v?àu5ſ[۠N>xu,}U/s_ncM$y(ȡ忏ѫm,%h0xoCq|zu&ȔaΥ|amX f=au9)hRD9#E2 {~Ow?p/RRmbP%>k&2feHח_:^Vr`DuR6voK_zB!I[T|QaP{oQjb^9y_cV/w(Ua*|j ϨOwۺ_qU-;U|㘦 #_*RJy;O%z˶Im^YREUD̹JPJ٫R/u ۷_*T}Vu{p_oN޽ejCMzS)UnJW >)ja88aoV[O}vU20\YVyE6dM6d$n^_ ^ܳq2b kwpwmr(B! éи?J<B!BHxN,{__[RkB!B)tTY#B!A@!B B! !B!$B!Bb:bo?eԘĄ/gݒGXم?|7{`3rN} 0R*V>'/Þs+OTӼ18vyww7j*>A}s[L˂ڧᥕp_(B!"71'9-6дT6SK\0b ox᭧?i "ɧ8g"Ν.~g7&J#<"worbߥ9 yB!DflcWh#ht\ŊGWD?d h^]V?@׬gqւ3뫱c,8/>08oŷ2(={4S'F66ʼnl1˼ !Bj]M8@ NH9|{vZߡ#.% IJ\_;殃so3^Θ3p0(8 Z>V@Dh-w!B!Nh߶^;.zEO,AƧ?kBa!/ϻB!'."fgXF:ï?Q<&`wF!4N#7%--rO;H0DNVޅB!-kp=!@sMn--zg,>0br8>;ډ_,}sMos;y]?n%6G[?sSt0?>v\Ì 2O|o}|S4u'1B!B_Ϯ/"j|'8hadxЗ=RFDwQgL=2GJ}lX^H<…ĴFJ75`%fd HT Kۦٳa+^DzGN$;D]e[+GGɆbG_EVX",('2ZK4+~J\,с4liZ4U8du{]$r3gò~ ï4X[:Jιˋ^R|-[OCYñ-Owt:RS7a H Kӗ`uie](ѲqZ5" 9s1aΞ૘䢱Tq­Z׃f1=v1kddo]و9z]QB$at(/}+s4:hğyh^-&,Yg䄚k"!S-2j;ד7ApS/Y:ƟSS=7aWUt:|.:G$'b[q#{v:|}?F^?͹5оaZ 6&bt^@tof Hy@fQ"w{ݞpgf#*uF|@G$R=|^܉‹V7ki޽>H/ 1JUg]qLvؗ"tyQѓ(Pګ+@Ƹ,ǭϱcZWWmت+P'P'Υ+|2&XO6a+tc]ߵK9X!jC$sp,bc` muW.:rw=(z;!CUA{l[in''?0NW0ϩ~)۱zYW3q˿y'4UVXg=7È0N+ctLpCs.-ԉsI@Ep`0d q;6Z5K|8lB#pOi]]e EDFsUÁN_=md%ܴf[C[Uń>u.=iD&XVe}Mso: m4յ?7{ YND*ݏ*C0Gmٵd ?l|_Q(pħ5MCFG֮|ғ{w*)3o'˺>w>a'|8 aN_-h3za_;mӚ4@TXhSB\ |S9ʰ}j}O{;!yuiqˡT~ N#;mߣ;ʋ8Cΐԃwq!6H n3D'qV9mlIQoұ&jJ_l ]t:FWz<|@X,C܅8ӎKS9߉pLfÉOKqjzP>۞CT>Ax˹dȧ18hۊDŐHLzoǥ!=iV2Y8e}J߾Xs2BtQ> -w=}'dmLO[. --NuBƟ~~ı>'|Ē%҂)9! O[=^"{RlMx}fie߷L>[n<W7" q3J<w2{cM[N୧ b KjR::]hA "=ʎ_@F6GfvXI]N%v ϘN$!|.6(3ҰQLS.!md*h _PX?$_:o?ZjiZ~ӾOIʗN}դKRTG =jsN*?]i9 9 6=ANAw0i>ڹBfUGهPx˹RY## ~,5A% cHreI㧏RYهk#lOidL;'0Cmk3m#DcևO+T}PGu?v:Vή,^H#kNK<}kӗ',u& :|9. Zz▾i6RoEѼx|̐B?:wP!N=j?nG) ͒ѶNB!toWUt:|.xk;Qxjp& 5оaZ 6&bP'=!ֱ_@b[|顳 CqG5VȞWAc\~11yC{s%B!bǶ9Zg]+a/TY}=eD璜=p`tRs,,QQhhÈ0N+cZ ֵD[^B!NZSH̟JYd6M/cDC*)3o'˺>w>a'#=̇RiWe52 IDATD]_gR B!N?U۰}g%3d[Xw'0o4cMpmxڲ"p{f |>) |) ?qГaیD'q8GI±Z,sHҰm'=W!∑sAdA31E9tt+(#d"bMt/Ld9Y#5oao 2/Bq2|-Ki Ej$9D?[thE3HQJkU=~Չ-i")#. h:I?Ů8#yW!֊t`C+"_4bLDJts sRU`hyU^OL٤= DǀsO @k&H.>SHɵ֪iV> '8h[.mmNB!G CA&CȜGɌKAW%B!7�XǓ:|R;h ^ɗB!Ÿ7LsCǷcokB! KtB!V1H!B!B!B|!B!B!B B!_!B!B!B|!B!B!B B!_!B!B!B|!B!B!B B!_!B!B!B|!B!B!BH/B!_q4/$#+MJC!'I7fƂ3mR9hQr5DA#{{ > 3I5=jN#lT:~i\B!ĩkֳɷUl{Z]Gᣙ3G}%_1d1޷OK+9lllKng Y5og_QS𡿐j]OVbR[ RQ{KK.oP)9f͘@’2r?`rjj]Ā CNlItD+yϳ6(fSKظkCt̾BCM aI)W^w>1Ȫw.\{qTJq!ۭ%:[Y6EWDMOĪwߧ9v9-~͸)cc@maŝWu-$|ȝ3 MIQǮfbxq"[hRcR.%U7R!2u($HNR?φeKtJ s,2GO'.5#ۆ)[Y@$Bv_. >(h 2tΎ@Ժu4hlCD1Q*_Mư9OKlSɶז0i"b^@u Zx\⓵8j?Ϊ5ظhb0Kx"I. _`OI-܊;ȳ=n yh*+UvL0`nfF&Ea=m1C}~VȂyd\Lػ *y͓4uӬD^AΔ_onb?.Ѽ1ZMX&3!؜KOhPo9UoB} mԶxˤy}i֓1bοCjWⰻ,Im- ! ǰb'W8(*H`įdK- ބ `Z#6n̹20\>B{yg;:Ю VK$jᰁ1 8WigDZpl=1;T.LϾ"WCsSc"Gy&ɍcǴTS"-jY=;WAc\:=-zCp~}P@{u%Z7ښA| nw]-1i hu=(%X8N_D !IwNQ11yuձB!~ߘsT|E-tI"'M&?UvvSQ yF3$7|k>k>"DRs̯iav !d=1k~}m8ѧ?B}?t/s&"vZieC~iOd@Wg-"6_=md%ܴ"R'%9{ ÁnS+CFS] S3ςZezL%_Ip/BM?yN*icF,g gS;"Rhwz\@8~7@5_sg'MI#hnʈa  tӍsX?z[t^,'5SD`-q:Tv:6:6SƼO;́%]ʍ%K4MCFGQ:|gTRfNu5+ "}|zxxr]1Jes':͡C[Bo,_G}Otg>,_Q bďd/icLFn\ Px[Ov,Eg`>̡ 1o1ǠHkvuuT+&%A4@G%7[+~-o<6l} z3jvt>8lZ洵i( 4b{)b(c*qж0cMpHm+uM} bd׷J mJ~'~1 ǖP.{]N,KIJ!8e)2ҹM`!qϞz{S<ܧz _nÇ12YÚ4{MX PRpo$)~2L4b/bʭszr6ϟ{JƙS0S<1~8`MIJޡ DI#=g UgS8NX^~_C2>Ǭ1@<]XَH0(qsg˿(Sl w CO-UKpÈ)C jr⭪s9bu]phe4 Wk츽DZGohw<41 (0,x+_|M~s 93 NjTs/(KƧ(Wu4vxmnʇ+\w%!i*X~o#hPv<7-ūtF-~rgQ}3B6E:/aP[Xq|] 3e"r#q\@B\< *[uw߶| oTu?\ŊGWD?d h^]V?YOrr"h, w[%SY'qODL,FΒ{ؾh"c#W-A |@w0g"stRS0xmxu{m3 O$*҄rmٰ5pe*$H ﮏ !տbˆ:1̹pkK_bZu#BW'S('o_wHbg<(]v9 I(7)Yl)NW߀~fJ9'=y? S.~}זٰl2,WQXR8h3$7z!cWx[Ұ9j6`7 cY1(Z_Ϯ3~J\,с6miT7LO6vusͪ|wGϳgo=󲉊21CQk*< wݭG=l{m F/"vX_"tΎ58d>I D5.W?{&pƜqz8>qIOJTL[_OqP!+Jq]h$B)桩T51e\ﺙ[Qr޸95m龱7͔s+͍00{r~Nl_:\P3o&gPu6;'bn{\KMjb- }/p/Γ AZ,g6W?FK Kd&) ieTjD#sb޽=nHHdV£xlDLtfŒQL)ǭcv%i܀Եj˧/=:ڼrfvb4ēpmk]9fQ>{3cH11@hXNEw2l7b30i{pP ㆮ񧷶ڥu &3fzGVPV ~ \G-^_z~]Dp~2>zas<gхMԮ~ mlDf<-+IZKL+{n!LkqF)/>ț{SA]ZV3j+ŨUWZ^`+\ɦ'PBPLSQ~A0K d%Z'uϨq90 ׍cǴT;`hݰ]-1i hu(S>a'pDDl+nd@W_鏑W4pxk;QxjpďU;żM]-kA,0aWUt:|.:kZwtF7Vl? EjѓHύQYZqE~IdMmo S]2Mc-ʗ1" -8=Jֽyo1cXۛCts՟ڼߎqԅ^>}z5䊟]Լ*}ɘp`LJFx{1 M5nt?fV:EPhBB/u=oPJizH} O/}9'iٵInkGRpOMkHx O]+zF8hQCGGujJa|q 凔aqV_coeQ1UjNsBP'G(~AEK#-{k9-ԉsI@Ep`0dm{WGaDha=_ ٳ)?"q@2Kſ cǶ9Zg]+a/TY}ԏ,QQh',Trbˢ|W?pr:jen6x`"!3w&gg4=2*"wlt6Z>Z_]:d̾-5MշqO~gpݔZzűؚt -P^//mCumAm]O)}d\.J%WAߖ}Ǐ7d`80kcNx58ڀtdݍPHՆ<4/:9}l2o|$k|}si~H>*dq IC}Cli5Aq7+i&4HOJɲnfCvA0ϝߣT=*uhhhO6 #R }XOC!lY%o:\+o[ή%k0d̜Ef۔2#ȫv2sG٣_GnUDDH"+h$` Y _'FWzt͐W4|\-p좣;I>x`;N@eW\c7n>izYo8qbEp=ׯ+|9T&qj8­lAKEu9Ʉc|YbR DtT8` 1o16/U\3`&~ŁuݏшHҧ.aWĐfp>tw|߳0k IDATsoL (R\8NĺZZi[jZۯE &w Dxn y^b9GeRQ j#9n#*j\;pV/cB_Gdp=m4 勴mkQ_exjqT6mہ }x|NQLjdkÝDY5 Ƕg7,߽pЈO4w" (>=#nxfE;bRoEx ,y`߅?OeyVUoB2R vMU} +Hl9"޿#Mg?JƠ|4) 5G+.qxEpU8+X>2Q+s<&|z6䇺uHG*bCoReiY̰%3pn|Ֆ3G+QQBXJe>31&aIK<ԯx[o~>؄_aN/qOOJ{6<+ca gAx7G$#C@Ra^`DΚNa~=VŁNYBt/6c RlN(;~DtrMTtCgߙϻM}K $N@%ΞNBa]*Gk225 Z[U5JZv]D{(_E?fwf]OX\k/om. wrhIme1*Oi0 M唝w>eתcF5>?dPi [5TS3BsIX'ׇ"R vzvn{.Dt8qVvѴ%>.5GJ񉋸{|#nq:\MXbX|v'mĖG:[󔩤E7E ;h<-\>t/\{+擜 `iĔUnb%_{&I_CuT,i?w ҂r#0ltv~w~i ';uW2 9OAWr$ 3=k@su.R`_XNתGYL (;{]aNyMG[^[FDp?]W?"F!GA0G5HA͔LrV8 i:S';T\xve@ӳy9ߘ uo8D"% KV,n"˘00 ڌc1ݿV}6E υ'մ\Ը%o2J&jQEcn\A[O%:۷s3"`Ig  ̈́F ñe&cJPp:5cyTU֧hOSo']OQeCDIMiE(!P0o&Z ĎӘ0Zy}H<'.F[GG`f6d#K<2z -3Ț|Y.z8 RĻ@ &6>i&njV#dBf9sU]xw͗F~Ԩ0|G>Oպ-bWMB6M-#."6)y(E @ 8i:QB@ H@ HC2a.I#E) 4٤XFn-BGƒ7Ϲ 1Z˫{?>`:Cr4y1g)^tA!`1%´b%p_Ii 1ϱ0g"c# %աd>y))~>:AksPwK9?%eIQg ].[^{ʦ~@?|{3?Aw47son!%Bx?`]wRǸֹhv_\r6' =g'MuoOk) h`QU./ȖLV&OHbZ/n$Y,CXո<ΆM $O }9}x7SzdM ig}%I,@/눤$YRhc| Zs"A_-r.ߘAߊ ܾ:rX N>8c(qIѦ:{$1jNEc]S4\ Lm~/MF/_Db& .#G}M\!MT qZ13WNB]w11nI o!2X]KH+όo&M?B!svɭL%@"n}n=NO@C&xDg#ʉ%4Nz?}[RO?ITቸZY]p,TKc-)%Zz!;~"jHp@16%24p4l pz>0kĉW12mƚȘD Tw|wO,`7k=h/dAb#K'Rxrƨ30nx4藌 G<2S$<1W݈y+?ݿҖ,XgJ~H &$ AϦghiʬ-cU?%m uƅϒ1poع#zKɚ~>)y%hdN6)Yp$jm>̣&#47i#/kT戻ޭKFeμY2߱m"j\jtvp$RʮSbϞZ5-y̮ض2zne@N*+PT0,Xgb F&)]^>$v,$ 0(=+^i.BJ|mZt7e>Y)yn=Q7|x8ubG< ϺܲRtr`o2FJs([(j|:SQcwy qklfk/3{ XΧ2j}*:tn'keβ'dg} 3Z>bI"Ѩ=c7=|qm׃W"J΢Op!   m/fXNaz7> S- H:~FK?}.PxB,Ff :gM:4 Ia1x7Qj 9Գ!砭C8U4e5d}O#Z^!Pzk~G{oPxz5e4iPO6 sdS1II4(cFFi!P >+=n;aɂj Nt!3(h#F?jʥFjmvris1ZL?E뿛Fj[5:W\H c1ަ4X}'a}igAz6>NKm#JwS%nР+ӡ=?#8{:Rq U2(O]*vTJ?ȉm:"/5ֶ@-Tu:_S{NM_vP*jQwl5ou̿=3ސ yuutug0B%]h [OE+JSy Xr_gnM+?8 K~TJNvaͦh/] O:P5]%s1M=4lkAH%w,4$< i`$EOC@l JaXx= .qWҷg;aիr2Rst:l(:Qr \^}/USi 2& O.* K 'Hw'~/XK");Cj\tr;\~ѵ&HSfAS 2:S\} GN€_3c&o|@4 i8?:[ ˧zl-!h:g[85U]>wq.9g3Ҍw4nh\~ET?T󮸵j8TK-PphF$dpnr }fS$L򐇕`H~[OkFh&yFyz$JOq-`֍ZLSWr -) vi{q)+??x]O?Q6zc?=oNc?ockڧp'V;%ckLj=л熿wf:uت?uiG ׎?&1e?VX(a!ߔ$c9YQ0A""jMppatz{| ~:$ԆNN8#%829he y4l T=B/.W 'vG^-ն_<צO$EAr(:/Wk@j"!d&=ASIk#{*=N;vи_l2Q%Llh;1Õk_7'Է׷RɽI.h,%!Ӈ7Q{w}۹rYdOqu-'WSUJ@Z$*oE"r8b_C˟b1]x.y+}k0-{@DP")E{ɷTжa}n0W0 ;QaH˥(1Ȭ( N;[t$IB‰ۿxEQ"UeW-q;cVj[(]1{'@ݔo})/$@yfg/@82e@X8DW3ް֨Kl|_8Ȳ0臺}%f^1FrK.c pHE]_.@2b)(@?9 F\]:ޡWj݁uζj|abJHКP\Q+Itš ]C#@2*D84M{_/˸1YðWpH9JVS1>WpE%M_";qqw|wz:yX95MvTQS#sM5j^U:< ! *awBb_+!?/Leխ|ujd>nHl/V,G-&[a]ĻyO/aF˙((m}a%&U˙6 X2ӑ7 H ,@H $RBsޭ+aRٜ_A@J#}D @`;t#>~}˘o.acB:R)fLVnXpxM|̳g}QlN(;~Dtr =mD7в"ʦŨȫdKȵtz:Z.hPVҠϝ˷$N@%ΞNBa cZi [5TSHQSxek٥dV#5 -"eek*)ttW+\ұ/1$x j/&j{"Nu],W'C ]m(1#xjޥw5~ N?G_L#w3m+u 8k cIDOfNBј?JZiѩ/ $hܯ4Ma`J\ G:[󔩤E7 ;h<-rz6}ߨ2%P8!e=6LbK?{Δ<2]ƵEP}+>G%=k@su.R`_ԡad2&̊GS7A[=&Ot?*sm[G=U=nÙtzdϿ|󀞴F;l 'ObiQr)>|UK0sNaRk)}WYM? 7#n"äAѣ47~v$E,5B :ZWC\w'vz#o%~ 4s~KʲZ+ekOR]‡e6_L(i{?jB5E@?|{3?Aw47son!%B WqŌ.G*i\Xs8$S>;&ɽZeL]q+N$IzUf7,!J,Ojwgæ SbNYt9#1\M?i[hHDn_ȚμHv9\1}9Ga.T gmc5~pl[SI8Kn%Ŭ42mtO:P9 _z&ߣ} Ig>NY*v*0lFάKH/A w=TQGX|Ɨ@ &hSHHD Șt5 '"Wױ~S󼍛 4D)$|]xHɞ{!^שZL?p g`p8`(dr6/,ldn{5[SP=DdEB@ռ@b iE٤']sp#@t/g4,N~)ڟ/&D {cR$Mzg]A>̩7S^XHM7 I&DI63kn ~dR&_C9D^N~z6/]Fg#˭EVN"~E/@pr%{doRџǸ[SJBvE{cu<-n$o .NhU&L\z"t+6 +a cȘD Tw|[394vk$4& Q]lxd)D [5 oⱿsxU6" %-`|7՝rŔ,KH56QчI4@ՄDܵn_w5~6r;*`d I&,&-ohڶst#ӯ҇4-y̮Y4ʖ݁vÝTVtE;xzez}ϒ9O5mwXs#>Z D;Cˮ7Tv IDAT`̒);>3db/=x!jcswɗGbR_J!uU$Q}ooJo/%k`LR 1xi` 8W֊HEΝE[(=C5C_Bdyıi}pd@i=.Nc$S1II4(cFFi!P >+=n;aɂj Nt!iH(owT:c q(gt{ψ?7UQБ8n GuбЧaH ƻ?2c9~JƆgZ$L~޺V7`"].aIZ`B $]+@?3JϜsh ۭCsжqPI㗒v/.gXo p gb|XDGǟͶƑ7pa(ƑQ> I0ނף^7C8U4e5d}OCD;EʨLW= aN X4R-Z؛2'0q[Xy T7 T?lQj1FO `Nz~ ={ǘ&]h [OE+Uy Xr_gnM+?8LoO*%'; ѰfS_[襏3'x>=IkD{;&JK$f]xq* D$܅#TEaI!.]{p.S:;Hqmg/Ѹ7ɓ̳ɟ;ib9OP\>]ջ#Zf[pT u#ؾu-(=bƝY73k1%O]CO-)UۋKYIї08sR2t`wo)i^ 9}_Cҧc.:?VAL3ØTܡ&QWȉr;IK77抡NI@ 8|mDR$.l}*9ӿBE_9*dο76P EQk 95F+Pa#mt0 SvbN9+Po+o?{\~XJ_CƧo 6s_劳Ȟ:ZЕ0sX#gXGxoYx>LU.+GI%r2Yd.|Kmx q ^XGT2f|Rl1< ӒJp?zj~kt>k ?ȉ3տK`,`VI\=D!#e+EtSuU>b^ wCjZ2KԬ?p,.GugKx$J4;KhL)$aW3^qd&ʀp"fȸSO)D{-2FT>2KAA G\6F1f? 7 rw;:!Y3i^y'@rm@j\;pV/0pc|̯=6KEkw5;xJ˛?By? ?io VC~>S"N< o}l׋2.pL%&ٚ7}졮=wH´fn8*b%)?ss5YX "uH&1;XAVwGPsbXkD)djoD%$IvC4>{ɘ&u*%I/ ?RVk@U=$Gj"R {l1WaF˙((m}a%1=Q|O=EvϿ&% w/!y*LM̂e ,Ȁs ҳ\•S|zi3H:)kQ=c:uØ.j=Rٜ_A@J#}D @`;tm#>~}˘o.ac4rFAIgڿ;e:qZv)YUH3@Q~?"oh7Ҳcec5:FVaF]MJgO']v D{b0Y[,hVV]C:>!g0\COm 캈iw1**>crtr E3`>}|L@(+_7 (`]SR}QXGb :avG=bDR1 }59VdC%6 ( zC~ yawJG.&7%s+ȸF/Ju'2dcTɟU+MQ4"{wD1PBĉ{jZc[}z P5:퇌Okˇi>pRC8"n?c̨m}U%QDzyA4^E-mo\TYNՊ>gOhEcS>7Vo/ŵ(X~(yD!=pPN=ME7/״sE\/[n 8A*BhgK$J Ɯ9ЊC@ dA*@ D/@ D/dhI|+|H&2b6HWtd,y;hOԌMuLYʧ#}RRGGfm&#a6 )ycoLG31 OO|QoS@ N'0~F~޵~+O2ƅ?FV?lWg/`^>?u6/HӓD<;;8wk,ٹ@6QX<{ưgg7'7Ţ_=De7ٰ!zJ9\o qӭs캋<E%4edD5~2)RX6Ż#kRH;nO#ԏ@ _?DF_|#їPh}Jm2=1I!ҵ?tWElm?jx7h,$Y\ͻ$V4ߞM|1҅l̈́i)?+jl2;FT?Ďl"}1C@ +HO"9&v(? ص[ޛz)&gB;v2. U.ŭI*得|ut}ņGRaO,>=Qg`&s6z 2PxdML*M 9__2cU7CI|%rŔ,KH56QчT\_MYMZ/дmA'>zrJam@ $,F^p)VqһiHXeꧤ Zϒ97mwDFaCշSv|@LX<|xRt#?Dpj AƧhm§)$odv=5Qyt([v wRYхV?j8M)7^!ԷM} Rѯs{늙]s3wnMuĐ{عM-+q1nzۉ䎿90G唘~ 㦧^?؂h9ÄCٺ,#>~:7֓52JgYȓvK&^A#z=`*&)wStctzߨ(:bz[ë?l|A{>#fTFS6=AC!,Rc@7`% 沫)";P-K(=s578po@Bf5 Eml~5`nLYG⬻)Ac{@!)?x$[h۸ _(KYp;ASTGM/63SdlMOTz9y '{ij r 5 A,>}Z\{C Y0YE[ H)X_C't8'@ ߼˟\ )2t5h \BE'K˪.b𭧢uߔğ|Ľn=R7'hX :-ySd@i|t Z:5"kz)J%%[D<tUTIӹ G’B ^׸ɟ;il'(.]4x?;PG;Z]8 ֒HNE@!@FX׏B os%e8pVSHNZI#8)HÞiњMoRI7 PmV03|Rr,t9TQ壉8>m-kZRKY`d%ng<#/nc6Zzzh]IߞѲ\+1Hӵ y #CHSe[v(11#d&O ?E6m/.e'DњHLU @xH 0epst$e'4v089JQ(ۿK1J h=δyA+C2vz:z8dZBF׋,C@U% 65HA.a鎡TN߹3xa责/3 f3}4ɕUTcĎk5NvrKƢ׮j#^g!a(@Kj^2\/~8&QF@ 8F c f}}RF(q<&[~?~|>*yoc;U8;쩓1%hMz@iߓ0*D=$LF : p&<[FMar:㋠D"úF$$=W D#Y"s[*h[0>7S+HBf*n9@S0\xJ׳bO1CZi.<Ծ /]1FQW%lG6=R1uƴf:k(=?&G(a{@ h12] $U_R}e2?>iAj<2w{݋֨&r/q'@"Ų0Oj\x<+H8 $XH|hp1>f &k"xEb}AUc'^fa)El~ԼJM^3.FE^'c,]B6Pp'.F_{$vQ,>Rȝ^cw EiwAzHGyHɞJSvBAHM&N0v>X{c,A!_,W a_7.y⼥,{ .NС=Yf C~Qx>E{Mdz;J?]-<6nו䏿 BQAGj fϩq_K޸eLaB*z>2G"tzdϿ|MjϦhq$V" i:S';T\Qy-|ӳy9ߘ uoƨ])YbtYیc쩋eBԚnfJ&ErVǠv?MݸZ߷ȟJtohkuwu'.P$7#BX fqct\M_X )/8^-=dX@ ND'MI D ?]"ԡƜl} ^FBctDr/H>i&njV#!OZexk@ y1b6@ Al"@ _ @ _ d{^~nu.5qN jbo?1ͭ^_TkX IDAT*Ew'uա&dDc1SI#!w#κM?M3ۈm]O;/}|_)Qxg"]:kΟ ۾^+cPx .OV@0_pGut'1e >}/mIg{Ѐ@0J&܄?^k!:\ɓ/d/$Ys>]"IŽ0 I=V ֹ ͋o y4Ӝ ;誳2O$u⏔j3J]_ABn|nxQIbC4)SIw+.ߠLu=99kr s&=2mt|6) ~HĠ@ Nm/.%OИ$kppC'[kN}/$vj+L+YsHq8r Ǵ-Glf}EVǂ_bPOUPwRjR'?Fvɀ6ւ׏v9htQK>B&Y{j4,X/ 0P+e <)]#1! k37 a%)>Co8XW%cjz ??n*d!aL1.|쬤kibo}Sy}bIXSߣѳ*i-̾{rVQAO UؔRLV  0{Dz6N<#*w5eRx}${p-v5 eBc4C ?T|UK_+ޯ F_L~Un r$HYlkexJObG D|Y:yocy 0b,3đUŘ>{ϰ9]F X.p³ב02r-/໠.XUBL«df?W=3b=qhA%жmUx=>$c Z]}q?%(@W4wze]Ƥ!aWmt{% ]BhbgZX __F2Xtw:zܩzz<`H/Q#1fLæD,E7{^yvGc//2IH#'G0t}xn"s_9NYMv?';xC1"N3'aڴs0i[NnT:Q,%)J ?šKg|״>?_?snv X}ѸLs~9sw=p &W1 FZ6rr6QgP(~@ lp( %du3n؎g+ー7^@ΕO.vAٻsA(ܮlk|H&FÑ'/(*YE|sCn{q}c 'Ik}j`l}b?TQU^x.v@ݞݒcqt=ԅ066l Q]:Fh}&6~n O ;1- uSh+ m}gvŌ b3q-d.ױ3J._zcALq=B􁕿ty' Gy:qFsq %ab.y%CdӀ/I8 QBzh/7[tn4EEcGkXi&иHbCZQh2զ2HtiR%Ktͽr\[ut%/"vb'k%dwnWp-,jV㰟i0ۊq$gq)ѵ*jSE9:fWcS/ 'PiSGѼmdG9ܷknajn*>%Z%*WJX' Q4bG - =6m x K0%=DsT6} S&4Ur1#\T2$K^fn[ڱ r[쵗K:mMyO$,%5{6{H5 #鈅6 9%KnV_%YWsu 2WI璑eY8z &9-2y5r&!Ik€N9u#lo?Wqd~ۿN#>q"fㇱ.u_c'4?/@9{x(Vv7.R1)IGǐY#>ްkfRՔV=ȷ, KIqoҽOug '؁LʤlbtQ|*eg[D2]")%y8b`PO9m.H´I|Qy\CϧG3-&6u%=DlDaZ+68QźYڗs,RJ;1=dg- ?>_;~4IdhN3=e|aR^B֒eỜA;g׶Z3Xo&cU:?,OU~˻|s֧/o5+%Q_qi_dk?G֓'.I&t'- `Z}lj95Yys1}yh>>}ur(ޝԽVFHk&]<7*p}[zwHqmuxM3ۈm]O;/}|_)Qx]:kΟ ۾^+ q1h'OY39tS_ٺ#:s/)oDI& Tt #do[u#P ; !FAAGϽs 4 eBc4ACNoZ'=*d!aL1.|쬤ki<*OL) n&+zLފ 撽WuºEUEzWhĎZ(?06|x# ߽ږv3?)jQNA>LYRۮIfkɞ5A!ؽiPaQ;jt6մ+j}9-iTbY*lRh{bg?h#; VPzBB! =]!%\CG بz֐b-9j))>-m' Ia-#jf,-c_]E9i*3-;(ڶж LJdLAG0H_q;=.c{z.wd@vMwgYh,m& 4]A'nɝN'drx@`=~5e3i?uPzwZ`F?Q5UN$@ Ő`|ջW$^2O8-D'g*jQNu>Tynr͔xnגb1-n:6^zV*X֬%)3q ɜb[ 8ڼL()YatWhŎ *f=PN#3Nf/1qoi@W<{<N3ɣ&G_>=3/9-_Qã<+j9J8U˛ią [cGv`:n_m0բ#PGx\(q%N%i`G | Y93wII6@3|YkQAg6!N6CDht'޳%b14stq=B\/]oICQdN<;O)v/'|!L/XMI׋F~]$%}LOت?pˠ)! _f3ݪ]BDȞ.-Z[+I[;;7PT.Qt>v*<?'lb]}^~N] (x]c0-L HʞݟY]hZ[>$b[sQ8ZzʛA>D+G1UG21.h>aȝd{bͲ .?W=Pv>[s9ٍٵ, ]l0H.hфڨ~7L Ҳ-`¨?x>C*sŏ ^$!ރٺL{Ës5餭19 Z?{GbxmԾII;ݹw_yWz( HRm3F B`h謹hJ̶t[B50x7֪RʦcS1±|wq͈EjsbXGqW 1%)0ZRg#- z?>ܶc/CNG񴅪X$U'}챳O|\7Aɶ;aMb1_tu>?܁W|LnQ:hIg2IsFl85,'yi.+zH$jjZ&%M +ɜы3^s(|ɟsױ66'LO A+H͸z}Hia"U8e={ YKF^:hѮ`M O³\בSt%SfAG-[Bmtl~kȸ>rtw=bI1h,g}tSxR=c4Վa>mEpW\!'Oa;ԢPv5ITvsH*3!iY wo}d_N&"l2g@ MjSl95}K䞽m;{V#0"{CRci 5 GRO>nz?@ @p1p? }@ g4cgz@ 8ʀ1,\E @ 8#9Rk}xJ~@ 332b@ @pf1p@ ӗڝ v`eh@ @ ~|_) @ O}r"x@ @ 6ewv8NXX+@ '~sjp `0 @ 4ρM@u$' Z;XIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/info.png0000644000175000017510000005567300000000000016572 0ustar00useruserPNG  IHDRu;sRGBbKGD pHYs  tIME7+ IDATxwXǿ,K"(X#]chb&*Qآbj4cbWTR^v삀Y$Q$Ьy{LnE`w6 ^=T2'!|mT]aaa^CFszރk~L< *<.S +قĮ/ߗhv[|&iGoxW}nCP(DN!O(aaWMM7ND϶yߤڤ19 /ՆK !6*K>z6M9{)4$'XXXXXXXXl)\A kQPc2WUUK)6:|@zKlCr}IQ+ZLrӺW7Gt=HM;뮎$&+: O҆5nZҳ:thKbO~ISZ^O$k;-{֌iD2 :_L_@+8gaaaaaaay|}Ks}i4rv5r'%?PFwQP1DOSi23rrs'4v̅&^%{iXNԩp3" )2ٹ֧F =ݝݨeA XCDhԥmQDC,HӠݔC7hf"w= D˨Y5ёڵiOz nu  (jS=SjڪCDEd]_1|?/M+꼴>M+У}iۈ UXFW hqQoȤeN4.o2ND?t$izDhYݚ<߀f&3T_}ZL:,I Ȥ6PmiL@->ywڛKtӋ±uIKU*$H¾71-+&3%أAC![=V_@zLYYuSHǑ[p07ZijHJ!TAV=;'YPsj}#9$ 0 0k&hMd9FVU}qgX_'ĚKyN3ˍTDYy% KR*>zu0~A̩}3??@v~;>Waa_h^kic 8pN&䪫N7°޶H\0)TUF˺{7;@5Mf]6Gq{OSd[Ǡ.:zI9w foдu QaaMUYjX4d"D=щe-e﹮N1@|=& ;8n"ٌW|_:XwM 1n,Vt؊*ʳON$t>.2!ce@u]moP ӑ۱Py0 0 Jyqq ! w}RhU-~] QjjX~YMu8rTO(lig-LhK:ѽo4wuJ,GTMOch{Nv4^@1l#lc;2[XXXXXXXX^(*5,Z?N_`eaa.o(GY 6aaa_@a 1 0 0LY3ޔ%: 0 0 Taaa8gaa7@1q)m)a @Ezl a8uXyYq#|v,~YaM@ ؀#WzlaJ^ Tc RQƎ?BU)m(m%J\OFG0vbrOӔ$IC`)!"RRY[PLOWtR圧N2o@"_`k wI=N Ff"zTCɬz-(.(㚒S>h8&"\z>oy2ޒؾC[cr3zxn}@zE԰./8Hw5ŲO/|TۘVbl(%˦i;$"ʧ4}WbG9(AOh&ٰT"Ǥ駻D:YK7,,,o&HMɵIcr2*]Mz^^8^"A(U<[5(,Ԗz;HyBʋ$ǘGiaߎҷ>Utǰ-}LtԨaCjذ!5lI̤ tML-Zet*n/v%_PF [xEhҘ'iÚt7H-YyvGHݾ&H8KN:}' r6O$/r1/XR3iTˎ=Ck4*]U)fZ2L zKm0S^a/XtmiD?6dGL=ES_x Li{F>cY6|כDDwg5$bأӬ,{W6Q:f#>eOʡ,J**S}̤Hʤ 4є3hBV ›"\Rai6dbK(RiC[c#PX>5y"חtKK6^ EwU`ڟMpvǭ:Ҳt.x`ϗ[(ߨxE [;=(gjk.d|LT=l(Ĝ_r72Qq( > [#׳C+C9a6(#+BCڜm0~i ںdv7'辝оmzD!*a+GÎNT)!ܲ)0lD. {;Y/`^Q=;"iz\xg qT"p.д>L[t1.C)ukLC=["BۖGu{$uU_\%60:P?}Ij!K5;;2 `ޅ]X{9Ss& ܢQ0o|Ӡݔ>N}-A&vR$[ daeOjIksDtk6CYw=6GN[Y"sqeg_7u_\BcK?ƾD߼VP(|h"6:9*HL;DtC!8=? #Fh(hGjzc:BJӋcxP=2x j4?(c; h=(ͣ(ʢM*3L'PYԴXֲ"re4ҞC [}H[ci8\.g҅oےUS"1cVdbKCꎤ?_܆~(PX뻢|ʽHceQo:n1/[]ED ߎg=kOOF]m$Q_g|去9YƞUOzEm,>zڰTB: #qTpYW?k zMܭa0B )j8)pTݑi{'nLuxrT g"YC?ox?w7>C}awu.*؄?8)Gũ^pZ$A|T>ڄIW끅_VfYϋG(wu @CLn~ýRl110o9Oŝ:Q)xLa8_ﰕS@7Q, IJxZ̰Rm:f3%ӫCϫ7ۇvNL{@1#sTٞ=>"8Ιd ݞ +E&R5jA+mjOeeks $%Ֆ$n('CVBW{zTKI;ZϟHI,hi,Qd!::a6yt6Ah?)E]긆{7J7 H_RFDɎKiY"4 )7*&qF;=4"QdY=y ~Q56%d=]P[6Gq7[ی\0 % ꢣK`89NCT?t˓}oA*BHDd9/ i;ݶh(P]tjjQB3' 36)=1/pM@Ln[n،pPOR""tw@& uY*>*|"N ÁJ:9L/PVc ~;7ȭܹ;ՊҞ>Њ/mIA]'NgUY|u;-60 :tI*Bʞ_؆<<` vz5ƖG*>/JF玈P_:+ΕȂWlq>&JU5TMK10ہٌW|_:XwM 1n,Vt؊XSqt 2_IŽs8+Nc庛ɉ߷çcwT&$~p,VC]W[ԅ> vgtDvl&Dþ O,xٷhZ n~1pXtGagke%kLW{R:gLp’x&w~ BmVFLHD]L Bض> üUDKt&=tiu?iVŶD Mu8rTO(lig־pCs^qu6= 9>6hbx,:$^ oI ғgh±Ԯ~)/Qt-Y3-RdIz(h>8`PzfC$6={֖ȊL _ I%Kg8->p/%\ ymH(Q\F3{Bs/)=TTE~Ȣϣ}HQ|_)&ח\uS~(Ɔzu蓈2Fq#bYw=w\Etv8U ]'xߞd" R+j9e E/|C̸[2nR"laXҔ #ڹ"V|;(s/G,,,+HɶtwRaaaaayE0SNS.EђVM[ph?OW k*3/J:WlYXXxL,\[^wJ$" 0?6I-0tda 0 0 0̛M0 0 03 0 0 0pjk^GĔaaa1-F cVz. 0 0 0AϔuCKH\bIat4%(I;1}O u Yѧ(4zg]C6r8l >ogN:,KOތ+j|u nEg^!8N3࡯H4+O!6@Dm%#U`gaa=l9{pf( y _4R`j t {z`xA h8;Goݡ@ #e, 鿃o\ւxE!qx^=G`ͳΘ{h+;38 P;+u&آך=)6hfǘПPW}j0 0 S:l/!CޢS414BBK) *ܩ?8BB)dAZSvh'.#!}zJ\h8QSUjP>?K.QHh8MZziOfz<{j34jM9L==IRu?V%''ߍZ$J m5 Т8-ȰasZ@p)^#]OzsyQDY{P5Hi69U~~:]:K!;Rc)Eh >L`dL[nĨl`WS9axl>xJ$ڐM*=%;y6B:}ELQwV- ģ%mꞶAU4 C+p~[=5~d IDAT89]1zo_) ߱R f׹4j 88\`fi6.eaĨJgj?`͈U.`H$**,=Lp &Ǝd z#U`gaa|9̛~wiPz0vrԼ4w 3 J,bʔHCR[B4L:}Ӯ8D!EΩUnqnDۃ䂨]D!lQW+ g"YC?oJ p1þkqJ}w$rԒ:io .>,8yB֘+ ziQhRZYRocc?)姜˘2ܶ)qqHW3 0 TI/Σ^x}p3(CЮBTSFD+HzRȆ(ǩR]C&'Zvk#u[};]d [LQmSڊ1Ik4={ub~n%~znŸw.`U\=W[0?i!z0A {#H  !)> )Sa~ޱ46?rs?kAU+D焴 ?b;Ԅ^Rk#wud3 0 ]vмfq c3n?{w c>uKOSFTtב ްR^ǃv]Ad( ԰C8|8V ®3j+r,S&e{+ z6'騾G,eWWu% `&-~V~D؉7&@"̢R%hg`kXk=Lb C琤* ){< bW`lyұ|E"2~ϴn[ƏxN}gaRKH#nbARv( 97Wrb6F9QcqGɈl #5jSZ#|xd"q 20u2&i^S0]ȫ:\:Ց[m5 Bߠ.l+<#-%c3=K$º ψƭP&{r|gLP.hcIXQ;qӰ ޴le2u4\pqh=|Fc/auVN~{ -_- 1?y crPu:SZn(Z9w!R kxk-u1cѱFt jc*0 0 S J^GJ#7G =Ol>ꓬ` tFS4ۊedd4#)ڎRρ\z|KNn ԪfC=gxw1 ^pFo8}pہ傶elӣ7 ՠd /zgۑ1@ЫCDPFmѼ'UM7/ ҷ6 ]~n$jkɠhfob6Pg1m"jiVʪr/sq1ֿMf:ߒ"ʥ'wc] }TdEۙEG̃aaa+laa|aaa8gaa|aaa8gaaV0]X^}o#XwBàAmUHa CU0 0 nh:{t0 R7l+BBË/mPZe cCaV0=: ZU pA'orC-aa8$UJ"oCt7`׸1ҧ%do(Yf\IVH[02Iat4%(I;1=*o&^!8N3" DdVL UMg5c?~9+DK>~ XB* 0 ü0{kH>eEi0oKH{{8<@@)1Vu//vq+0 <Āa.wT:?w;x*ے; Fz2e Fھ8Jǫ2*-QM 5fN팚T7aymx2g>Xr&SHh8}4w5 }A[Ơ5YN!ɿ>(MH R; }N!=R.kSj7SH/T۠>2l+h)F=l5XVP 92>'opd u j@ H]z5N%eQ>L@r4>Ҩ՚zvq"IQߔ4iQӓ䂎Vм(DsLbL&EAer;(RiC[IW}W>ޱ/7"Hӥ3C-@ڞOX1e|Y(|CJf:*-1N7ӗ8UdT `aaaaaayRF$&С&$"59+X $֨;r=ztkkiD"ۨ6\F~pwtX$눆shzMZ9j῟ٸHM?6 6 eTEzgX&Bx\nLp-tR 2j2ހ>̳x.eD-0ԥ)bʈ"1:{{'V{x֯/qY#UI}ayUT?7V߶ EnCQM5OpevW~G>P]!.Ͻi jjmiXY;8z8kvǞ|a!?7Frnӳ+#q.Lk̸\LX9zà;ђ^.`;wN;j?ðћqV=3+dkx4yǰxP= fTuAC P)W|ShKLDQKt aa^ "".<;&ak"ţLjd>'h {}'X0"e4 ^PmvxwFı=I.K4$?LAai $P Coڕ`#Q#g Cآ{fT/8- >*mBJ+#g"YC?oG#U끅؟TQzѡbR;5CWrq$aAZt1eSκ0ՓkWbtWm 1SN&@G0 0 󡹬K `]M*d+i.ƈ  Ax&$iP nݼm0.}?.=4Rkڇ{pdadeT)$( AW0A {#H  !)Is [LQmSڊh^D`~ޱ46?rsߦZFFhUU2NaՄhGࣃGsru;gX_'ĚK/*-1㮻>/ 0 üj*&SHK`V'*@,}Mra 6~ ϞI Vfu~rS]_,#(`R77X=6Τ@OEY#̽aaGq/(]P#}NQǺ+M܃Wt!P%hg`kXkGKb C琤5@w:o2Tk13vbO){< bW`lyr6I~$LiaXo[$EXFKtiKXTZ}ayTuYg1I;[H܈B$n_MEsTFv}yXMpR{"vQO[Zh9{$Fcіkx9=pODq;1S$cF$ ?#WdDG6pׄ )L-d}W~rn6ms4;a`.hUr.{-Ήo嫱e!'/Ap ]C~_n% asuF4nOEB(&z"[ ƫҢpFƍ`4IĽcN/!S݈iÑ)D,L|GM<߯r/Qu]moP ӑ۱"}aa7 `hg: ۮ"(1K4s@Y|t o%iӨ8{Ԇ3,']} qAw_Gku+d"f< x{0n6IEPJ@qgOַ l`@zVq|?2;_ְv9xͲFwGqBV-D=(HzMD.(fSh:G,Fl y=w{`zj5 MOSÐ|wObRh8BBcPq_^D~Am6hI#MmJ9%hGX,ݼ,l6כ+QhQcƣ[K+,KRpT z1s#~L+jna^_#Y;쭌 4B0D8ͷt50 D]++<&a0n#p3@]O{:mQ"n|$8PJ(HAq+E㇔a%6=n:TZdƆcahd&Ը+h7gsx8j~f6>0zUwl}ɸ}d4x7DSyo˪n]W`7g4-m=@+²h,;|)JQ>"vbF'/_qsW嘾VQΗlaޠd/}ПO"X$vw?f=4+DR!׮ppEލ01zaRa8^'i>5 blѪ i@+mP1n|{b5Ե!7G_qo?svaПOہg rܞL7,=u(ea*^("S@ 2_i.l :FK=_Zu+1|*H^D{b0} toq7on*7zʼMPqa_)$4tr^^j7SH/T۠g{ND`=u !H9E?`1輦5giks3Ie#OF,+ 9ԯO~SӤ5GOO %u#`=ʋJ^_-u,-jbP4>ѳȸYO:JD!I T*: @īD~BOEyk>rGt=HM;뮎H,i;xJ+h)RI> E8֛K[AtLIЗ ֌:$Y@wY"#.QiVv9iN*ku͎=Ck4"">&1kLBPt*/NWU zDK 8ĕ3}tH}/Yo혞 &A{L$:$;!wSU} lw =X@͌@1熑DܘxEk~>I짻D'hI$+hSfKm>YGr(?2m-H${а')6(]JiE;^$cZe"0f3HlCrIwq&QFoi kP;JCMa_DDb 獂92Ek&SrD2.y]9Ѹ/1~X"s@IE߳nwz&i}^&/ (RiC[7vnw1׋TlkNi*% 7. 5&bnCsxx&rTbrU?Jn~FP#K2YML܀A`mG!1KռPFZ0˰hߺ̤x? 90t 22hn A0G6]`Y5<+֍X}}k¬;܄d$c}|10n>40VqNcW qm@t6??OcqE#G]ƍ s0o'oޣQJ؊=Ѱ#SyIcEFNp.xmM ɤJu_ AЬuwL9haKwM ֺܽi tfhyXw2HW2)v%xG{gGp9"jAďcX,QoZ9`Vז sĶAWM_L8"G0hI~y|)ޡ'f5|nFSڒuSdcHQ/ y0GzMɶ\tQ!-~v(y/0{`PjCf#IDATǂu`?߫{ho]^x~ ~o~aǴ PC n H[/`[zKk"'N"_yqP X/;/T&ƃ,zs1e*Ӗkx 8x?/^ ȏƱc"r jǽɼ9)ĸqco*^ $aK4 Ľ77*7GO_[d\H@UnnQCPߕQFg(^ C ~j:%NJZH" Q~Xanvm.6zVGM[ob:^;oZDV0TJ{%`na 3'+XiR>$ 1 S@ c3n?{wP]RֳLasN ԰C8|8V ®3j+гxOF`=ok;'".b(EԚghKޚ^\\jS-ʧ#*1FHR$d89Y9D{x޽^k[sl*tgXu[`";ԣ,&mqR2S7;iy;2pF.ޫ^st\FvW1i0 z/Al<u*bs~ԇZZDf~y5o3C 8m AלUMvpJhЂ3ᄇ3QHir1*ӱ'rz'QI6NV5˚egp֏F z+Qp:0/ۇe'Qf՛4 gbn)JݟܢP_!| Zn a\?J'>ŋIh=*~ǮЩ7hSɿ߿dYەdKeRNNYzJʪȂǖUoqQ<5Rc3?7{qAmjŚ[Ǵ#8قV,}ޕ.3'&^3/] xX]+o^=?K* vfKJɹ2 \ |yw;:Jh-:_d. ]z^xa2ȡR.g?*cdo?c.tMR#3$!j|٣:+dN],l'.8qٷ)"QSj;꼥˴$")Wĭ3dZ¡4dZ팑LC. Z\]"I"rkU;YTsX?=Oc i|ZIo>f.mm2fĝ_u*ZGˤ0֌rdtYe u&+R%'dnzy4l?s{C֧H'ۢڴmAv-WIrNrIɞ?%fU|/i5v-/p^܈+ :5K@db#pd0~E--E hr` x򴤊>|I & Sr]:+7b;%.touyʎϫ3É9V]Ne88)nj>5ynQIǒp4Vbcgo# {l eJ4骏2GЖj(f\]$l#T/ҽ$yQrB_#k:T}L鮒J/q" VKƝoZ.f ء4|40DE%~qZ+)/ +GfyKtd'uȠ^eҺ ?U$eiP1J*='}>Hc'y}*骅dnAa@taSg \NˇjzݯPrcw㇐|^R+sg|_˔p9ID]&ΠP1B$kxL BP( ߎ5YP( BPBP( BPBP( Bx |K\;.ep`kv4X:^ ^wŦ2 odz=hI22en[v+nfj* BP$s4xժ5mo;nEݣjp}ilaW_o!,6Ca/,k1-Z)vͯ"XRi2"dr5t5nFe)R( BBRIqlQ\˺ dFc}ya8?^3ϺiP]٣q}ŷN{fFm"ǜ-´=ԮoO> Vy9~45~6Fsat!>'x,&\RFڝ֙Z?N@ާ5CF7G+3RBP(^o[>@$`\.-ΞX# 0LMoKc^]5i4%TC_3J@` U[t<H0 F*YJ]"a2l+{ky-JaSZWN?K@`̟$e,eP`|(/yšdD`,&V)sylHaxT}h |uCK@`m_1Jʼ,a~Uz#~aKu1QI_{Svΐ ׸JY"GHE{5'D A]Tq6od*tE\ap\+_l]_$ޫIA |oJV:Ui(/k&}fے,zx6 DICl )yz+{y$LzA4_J*J*$6m*7l~k/쭌fqŠ ◱ד>:x$ܳqĮJ.#zM\Sɹ7`8ġmpu1V$se>lEjNU_.|UwV:3C[WmC-3KZp<͜xV[ &4qKr_ɒ LL$11ě_+ o;Z?V8̱н4џtgyV|Zs M݃Uk;;ȉ@zh}_}T/LQ( Bp34fFoIjAԐH\ZΝŀγζԥ˙wD/@7Z7>Yk|2~~^\K䁲2_Ԫ@iwn"~WѢ!3TFa]np!H&WtOBsϮ{2߱B3K;` 05"k !<t@tOu#Tǐ!?®80œP( ;n_8M:Kd|.Bwu8qgOj4b.h7+9g ?r i>x w™rTKm`%ZMl`셥TZK[bAklkhR2I<{GRNq!<=+doHbouuc '5,Yx'YoC4[>Ddjqvy& {c\DUW88\Y+~x\Lw׊4t neƎ7¨л.ݾcpDRXgoaYngGu%puwJw^2]q 7 VO}t0`1Zĵ Y/99:n=^-tey{B8 6m'܋zY8.?sZJYqr9W7y_~6 3<+b>-ՓGXJN^d.B1IbF43_붰uԆEs~iwtNLZ۶!p24@ϔ>`G [ټz6.Vc :q!+ 9t8f5d)Y3&1|-fI{%01%ޞwu͗ MdMoJ 9Ė5sqio4abQ( B¡K9kȉix^WҨL.7Fɔ' 8V BP(D9TVuwo>#vUps1{Bvނ1' cxLLFcQ/IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/python.png0000644000175000017510000017431600000000000017154 0ustar00useruserPNG  IHDRM)NsRGBbKGD pHYs  tIME%E% IDATxyXUUǿw`Pqʡ,PPsJ3R_N9dofCNiei6iSN(2*{?ApAy?$U);18Ny0KF,Ee3 2H ~ilA@v xlQEq3 #vu[[Biͧ`/_bD}˒:df wΌπ??+y I\Y\%_eUñt0>ߧmN9A5t3$ٰIcx3)Ul)~=cGZFv}Œ<9s>;]cىd ~y {X>5A&ͭYbQ-=MC!I$>tuRduD%#16z +UZ+ht?B%=Ovz!|t8 7p Qy)t+J_iO!LOD 6 ]RKFxsUr ˃ qS54+M؏$A@[*KkvZV/UuˢQ}Uکu?3(,YMCӛ} ӱs-gHD3r%_C*]~}ݛ&ϖׅ!U gl~8(z^pwӠϴ.|vfI̎=mYc5n/qkX"s~07Nh˪jv6>FeՊ .I[Jrɐ rCO1[emFdFq3J4-=ǿm4VGXQ?h[s+Nfkdž}ÌHZSM_JԧŊߟcܩq}'96_͈zө2үgooKκH9L; g!oh\[ڜR8v +'Sġ6f;DI2Y[;vZCF}NU˒Mf&hM]"""",.;gE\|%.pW=usQ$ZON&}z׀1/|֑v^sF2lЛݟAAC\ ցuzѫe/.Pą,\Vpd ŅI$Oqz˜6*lԌmmeJ|3_F2j/t^k~#1:r#}+R+/7t/):gչc~)-ko۷1}{rЈq|C5ln<)_f)6v9J>fV>ź _#c7t{:=FS#]cs^A 8ϚfWF]lG[ۘRش'!p4kk ^RS/{#+fQȹ&cJM|ʦeFeqkv\M2c70+rۀڣˠnj=YI-;<7bͩ͘QRS^xa _Dӯu6ACMj1/1A a\GߝI^_˾5%cJl#uqé&şgO U+#o@RҊ~)y3K'eo_r\p|(6QƐeJ/q-WOl\Y6dw"""""ʼn@0Eq1i͈$e5\T mئ׿jxEݭ 8UEy;z-adL[ QH6{ =]ꥆ8l\ń=0cs Ӡ7d !+,oZmN}Oc-TVUmB4 3p xu71o_H34`毽 ;b_<_ƱpN ;p%̫JrT<,l`R-kw'M йo-=0::|(ژA*ze5@gTj{U} $,PhoƐbQh5$J P_,<{YpUieۃE `;P%?&l6}:So4Z}ħE)e4@,]y`Ueĭ/S YJ2l/4܉vGaSb ;zU4'Qs3 0n?;NS/Ԧ3yl.>)E] y=aulOgM>\L7iakxe4t/89N!b#+'v,ʼn04 +nDZnjzo,^ Oh5~ՕqDTknV@ @S88-DC(W1dGxQQw:\)d`_&/C6ҳ:V $v+_5,[:r)ZX0_@u=tDJ- GK-:bi8SqX~,6&t|2 ²hX<ۇlG!"ф8qD= If^?0蓹9Zw4z9YqZow ǂaPaˎtL^1_߆+f6+=l;5;VeWF8}F}IWTk<_4>N_W?:.pUVæ`XZAh ?ucGa}l>o,cn3 ^weUϴGg=.F޻gqRbsRWCE'm<{2z@c}TOdd/H 7;0a(tFU_ H9y‹؞VXqEg@}U7e|z*3cŵ1w^} sF9C7Jr)c<8nMDZj4 ܆K6o(luYbAe ]yRM'/+ZژVrCr6 ʺ[ʄE .{#Ix\Ӈ5E,eߓ>nq6 ?l5on|X]m?.>-r>~S^!45uS3Lȿ/'nݜڤY{?! 'ݫu[ӈͤsYzpҝ12W?Z"Z$>~NOs򖓌l1v3SHijJ҃bhR׉ܳ=Y*rmͷH^v6% h\{o ɸ+JFt0[8uLJcblUz9f6)8mY>?aCK6O~o{8:_&~*H^՗eǎcl|mFQG8XJژcC59]z`5E9Jq7ӵ1-*:Lz͗sL2=6sDDDDJ6*]8DD!6`fH{q1Z;.$xCDr#*Q4ܒPPٲ fWv*~1:'O6c'suqš~#9:~!τh?e?:`֡d ȓbr:]02s'u]EDZ?WmbʓlsuˍOF|R@X5z׺oemm14-N""""   ZL    HQ,   R ϶0q9־vVꂕm0y{ 6 uC 7f!AX(=*8\Yi89-l*Fv<` :8˔2K(918Ny0Km7'a fO ͫ<įkbw GdUaeQp;C& yr;.6BX5Ũ%[o6+ B%+|L H)L';9궄  u)˗QRSN3  ;W7 :Ǘ{p[Gو s}jl` rhX JP 6}[:X} kŧ%KW;v'1`,; C(Sc^*b碹UYż |_<c|ų>1m/8m6V?d>s$LD܆;[԰o63Sw8jB+g2baX0ç<Aܷ$^?Bfbߪ~_fGdMU6zU <7y+ThiY}l$ !38Vq,#q 1ci&@fkt}kȰOmVlժ[jIh7nt|T){[9 >!S!ţU e&Pt:(_Q&ƼuK;$/es+Ǽ~93:ږa-=.Rt~}NG5 Ee~or 6vhǷ7fDj>>T>J}jLkdtOg:yu6e6%5oy-ݪt{qGJ6Ve'>9??/ %/Eڅ}煘ܣd1ݫV~W;fuwWgsL0/&/EbNcȨ/٩JQh9JR;&MЁԁ<ljHg'b^sF2lЛݟAAC\6f蹔yK+8}€$8当b8nS/z*9ʑ\#ɝ`?^d# k6jƶö2:-n9ŵʉ=$y?ƾsstwbdJn`̽d;02o(]cø>.L;Efǧ:s8z ַr)*)œ$Gxc#ղ>8BqД4qYe?f mdaZ )}Dsr,fl,U9iKXA1Z+l dc_,+\>_G^Dp40]boP~P* bJ`\(_&ܠY|-OJr G3scwZ;vh+QZ~'&o}czj7ejFcb{DC{Oo7KKLM+eIy62ε n|=OKYSb3YQUFNϠQhEkUqm4~֎8¬elojjf.'xU '<3Pʱ?wg ܑ)XRS/'fعL* Lڴ&QIS&G1A2|AxW5u(9jZ $y3jg%Y:͖STqdݙ[S[Wmǔ(F~kL=]~51\ߩ&{H%,dkݺX@^^,M|в;]ӕ\JږB#EƦ*D'ǪјJ2aӖѬ]OOGG]OqzS$mƻq`|)냸WO^h_MQ ^eW)QxkYgL-9 ^yEƒl`Y?o1Wu^ kv'~5xVjeCrtM^hBoo@p!ۼ-p1ayUk4 H ,+;KūSBwnU\DI˦7Zb+ eOF=h]Afއ?F\!P5:$Ċ}Yc#8슺v,Ť^pД}JigFkԭ SKapL/GףH~&.uqTC:c+&~7V{;Cv*n۷q;2V?cgS(hZ,ڧ񡸒8y8]I>Ƴ+!^Gvir8r,l`R ]y(a,ծ{ g(q+{'trNl؁+YgQCܯx1x5Ca;ã pi:|NH3',SICʍ8dHۃ|@ď'RMcnFX%$%\KI4s]"ov ݃;r3q'+5@WՌc ‘]juR ;8?Bip/GoOX9SY8lCX^7 /5`ΪSH+ȊʼnKqb2n1 C>ʱj|/E1 }~+j|#b ڹ 88[ƞe7~nJqypZThqP3C6ҳ:V $KȢw sv"zo '^il|)Að_`o{T_|цR((6* |wb%йt2{͐sAhBv8uoWѫ[o6-މ5yt"JN8> >uGGH{{? ucY xc>l|u&@UظH .ب/G| <>wq1:Vk+d?oWض] _~콱c$>r:zo(|K0@75ZF^WS"z9:EǩSG;'pj  }:T*hV6bXh v8.\OU)ǐSxo-%WG |}hOU_X6  'b)a6^}igcuUdT w\(~|)xl:Ua6,] ) 擯! d҅H)y*E̛^\¢{p.:ZwԵĆqX.Z;c<EDhT T u\vgߕ'0ur|`m4mTK9"т}΢#>n6 q$I}bhR׉z, mX[$pq;ņQ}4.=7dݞ$#:-ĺV,R(V4y6$n2#gtb]efkECN )|ZjѸw<uQ:oCFe>m-ed!ܳOhpy`u$5Dlu#Gdi>5Ebҝl穘D ?ȕ\m4g_JWwͯT1gQ"&bǗeLLN=ЖҘW =_KOJ$Kgu9/eـo e&6OMʧl5ԏLh+SnUb? 9(hoiH#d?DѧrK@@.h#1OƗ]pX|So+d 6ߊf#9  %jҚէKUh]DEm6JĮ B9?1-σ} &Iȍyвj8i frVQxhz{+z⷇™h9> ߚ5cxE<1TOR"}.̟! m|ɏG+@gcRO1ݛYA u)#OѺiyF&I2;4FgMĪem>TgNcȨ/٩1[ZɌdQ32uW󵨑;""""""""I!sVD{.hŗ[rWz5OFlXQ3amE/_2{~I 9} HFrmOZzaɰ S8|@ov} smMIگ$o a޾4b_P-ZmEB{(8W`Vpd ŅI$OqzKGSdlx]1KQg/@v}_`cɿק֜rd59~K>E(s; bE(-;!qk?- ˺ _#c7t?+5tzr}bri+<eE14:wqf58'hϹ<3؎313jQs?EjɹH~T˾O;󿱤.p"X+F/cʹWN[o"OMO_&co9Yi(@]_u_ܓEZŪc d'$T>J\ƎoGߝI^_˾5EqcݕllCɄM=&qѢY9EDDDDDDDc)|iq[b^Imj蹨jۘm^Fd}?hdsYwB'gĆUﶗ CwnU1%WIhcӸZjRm6o 1\̸ˎM#oPW2*>yDO{; +&ٱ{@VYJ dfAџg'm J/0sr  B mYzأK5aXuu37OTe`5@)+ jWRt_th|h2zּp Х S)+% 6` >Y8c)&n3rl|a@#d'yzP<AAfLO3S"ۈe1޺߰Y>67ױG\7##7/~-iE\tk ߇濪jHĹH`t|4!;cQ:7 sK \:+ sGq6}}2#!ZU`7n1$"T,0f2y ~Q"_"\߆+f6+=l;5;Vᗈlm$>r:zo!oò-X7<| E[y}7Aڹ} ;~1_OH\ @V N/G| <>wq1: 8V۰RP+[= w]~(.&6AA| YVM'/+Zژi-n.&嬶߿=טef=_坻{DtV߷ؑ7`&IyrMP R"ESVmwK0m[&%:IX ySv,auS ~D6#I]OSEm42y#koV֦Ǫ&}];j9yII27C1IwWV;WʱcKwd0!~[Qh\{o ɸ]SFt0[8u=ʩ7#SưEqd{lfizl#+Sl~VS"H4t h%= 頲eA5RU|)"""""""R<(G*h3vN> Q)PWoC˔?040QJPYSԲ)򏬑}o4z>qš~#9:~!nOmϬu(Y* P ȣ*:]02s'uQJŦ=_gX$m'&FZ1͗?Ɵ&eUIDDDDDDD4   x   R   ł BHUa@l\VꂕcnBL! HQ\P\JymaS#y\i v]_igذFlc~mbw Gd9 fO ͫl bA7GUDďS_N9Ǐ>;]cىdbh9St~rBY,`rԐ P>%FCӐF:]$#)*zQHM@F53'8A'zYW-t گrOΞ'vCMxx>o?m`i8(W/cǪd|9%qˢs}ނWl&G]Ay|RsjOٽjѢ@;uNgE39+oތ5cxӱs-gHD3r%_C*]~}=]S{ޤٲP5\mZ|t2n3sVz ER`; g!w+~kZU+.L&m*yq}$C6R}bC'>?ǸS4Orgm=@Mo*OO5]%2;뇹qB[VU`C2>2uW16cF};!d*E_\*ױ@꣪Ҝ#̜|L01qdG>',di2oȾ"""""&דbu4,'-+FU} V6x@"@['~k TttrkB Y~]ԹzD5`nm2ھ1M; Y@?Vޘ%^EIKǩfJ"@`;&=_goe} _+@گlřC5ڇ7SaR#s(xrD0Q&-H{v)Vu؍[ ᮹lX5"/IP;za)~\ }?x_]3+ 43ơ >}C|}()>U1> n>.N:/CeW tEK4ZŠ ,\9U_oa  O֓oӖѬkØʟz9^]}'K[o"OM{<7y+)[טƝة~)]g7Nd"Ρ)}aC:øT s3Su~ݧ:sdݙ[S[\&ݱ?wgf6GL5{LEٳhRBqĽzhd|X6)"n,*'V* +M~(]㊈jhZD2^RwnU{,SYwB'gĆU9 ;.f\yI18%xX@"quXIP&4߹=0cs Ӡ7d !+,ͼҞ):f\ѺJ/e(Cea+5Ux-UFב(Q y)nN ABb4P2Ye)t@V2Ί ElѴAbO7KsVC ϱ~vV#:`)>g=ᅆh§8CEaJ,hweR<\Y}*IիVJWye3L@VCv6|,rv@vZ:- TX Eѳ<$,{Z@A\0uN;]a_963S ;8ۗm qixLuGぶnQ.^p֖氡zo,^ OxmJ^?hV`3Xر{X9a'T4)h|ۣ<Dz)>-F8Wߴ6|dsB.Сy"2GAʉ/eO}q.(cfЃᘫMyt|2 ²hX<ۇlGoqq.(:MGԳ”:QMA~ֺq#XyϺf|=:GPd6t@W=7_)G0o_xqZ 6 hQ"E>'a$t.]<}JmCu5\}G! d8GuKtHFxLR Npg3pSGV?=Q[xfZNspNkPx 6&ơ"`}cqZ5 =alq,܆k7l]i IDATRr|UJ>9!*m^AQؾł BRkjrFM1W\h+9!Q9Qd-YEe)q$I}ؼCҙy߽ZZSИLѹT9,UQ T9qdֳ(*ϱlO˖`;Od6VArJ9*  y,er|iZ)>EFӶbSDC0[ң n`eA5R*RTni8 d&ގEBػMh)6ځDf0pfkک&"""""+l+AxD^V0@|{4^VQJ-i8r Z_Fg‘%GvNo|q  \~AAA٧XAAAXAAA(WmapMh9и{qh}TTk=,ć%*6#:L\﵇/AAʈoI$D܎-.*8\Yi89-lvm0@,NBܘ}_犃DYhKU@+X5Ũ%[o6TcqŜcx>||^̛02Aly22|է+ǗF.iQ'_ord/# Noe[^S:WcwV&orS6F*g>\ud:PW8od >~/&w/٧ؼy1\Ѷb褩FOc];U˪\2OOاupbW [6tntPU,Eqǎ|8\EƗf. "K>/>!~\L݉ God$cOs۬nt֘ , 1ie1ݫ=ac1[ߋsvoڛ QVo3ѐ+~kZ:IVڳctR+ K6sㄶΝ?\]!n'/\9ЍZ'_,di2o0 E7 KɹZqe2ikwVa ڀfiǎ"ɇ b^Qv02w,vxƧ~ S5MoELDDDDD(.WmXQ3amw|?wd/!#FbUbEPtUZJNjmEժRZJ"6!HL{G {^➜?<m&ʥގYk}@+ն=;yu`Xg^)ز!+ϥ&^,6Bʮ|9GHH [̋Փ}/|s2;V?$/e_GPn*PKI[ bSYQg_n7nK!/dX%Ɇ]' IEo8J#b^_&c~m0Q4\.hQJ-I\ظ+J=x|nL[~!Xg ;c IriK2pΜ.3=sJ{kpy)v2HMH- Cw n$`uTؽ5ɹj,mH QX pKanH;¡]cxߟ6q#5mVҞ35z.88t{L\几D Ɉ| 'O6@V4``{#̞ѱ((ι`Ը>C|i[9:S9GIcGha!|L aDA(VbGU6-a3шHjQH+V :ݶ*94#U{ƤRB~_4uf]L.\h RoB铋>yAuJ*|3fShǬFoم9Uwa{{P툯29zS6@ZLr>:?=P/ИkmJ;9Cc|1ܘ Ld\b&.AkQY]Te EAU`q|jEUt.\܇IE̒dvabi!){.;7AWnxz:'G0zg91AO ܅VMhV^p=S8=#WZ1GҚeme.~؋K!4wf>>9 8 9>{, p36M6/t1Tg.MjB{^sG>C|nT[=}\1|tcy 5S Kk41b;J/wcR4Xg*;w_s $˰|H0UgK 6c+/O? 3ߜk&Lz@sGԒ.tRg/cF 3.87˨ Ԏʱ#WF ;ͬpwsNys]ymZԎ/qSԧ_rƓ<3b5l=G : ,E>\X%$pUlL wd\QRbθ4'-'uzxR)(}CtɸYBytQW:w|BOFb7gb},my!1땨}۶_lvR?mUoH!}ȚE0cs>Rږyvײ4sJScb;+_⹣p¹((m+ cIl?79}ZY=͡?:J-KGCn?3^c myiݫëCoE5N8sak{3,nhKv1O]80GС5 \"w!gvpo숽[ bg!A AAA^HbAAAAbAAAAXb1vV,MEUL#/:`/oJ;  y\MMĩ`UlUw_4w.D꠭g Z kA396 1iwŐĢE z5݀խqWbou-B=X},Ke wpx1AAJuQ u¢5Y~U6/x%!%̀40M|Sm~8zhPտyc ڕP>ǔϷ%͘&'P>]8;E2&a)N06i""Wx¦(#GX'hC;EN0~_8 `;1AA(r7=ݛ6f%Umwx Y|eo/}T9%00qmP^YLf\Ԕ?"nr#UE`c"3ƒ#+Ӭ16{;KAeq7ιۧ8}C97s1DMQab."qqs|o{qLDDDDD"F0Z.~^HxMeOG%=9f<Eju(O09=]en arFv^n,cӚ+2G7tQfeWIB~/si kБC]q}Nqd!!w:">vhQ?eHBN,c*qdw-.}Y}bvC*hLo 'A5d >-sL,vϦxvN74rM`,2$:G6}|j)w݈K,0WWI} .-G,HR\|P5tO3 .l["kE̼g $}ޑ^m۳S~GFu`Xg^!'krPN;_O4'T7O/bl 5VZU=Y?|pU$*Z`%;55ܪWP̊e?u J]}SX20ё-5g9lnd 971q*:}e_GRcqW)S4QJ>[E:krIsǖZL2>}/wo.5UMOVUvl2,W6-ڱ[|rVENbA'BMnܖB^ر`y ٻ$hO&v60pV)c"""""/I"267܋`L+8nI Y K-~9}+!~N. fϢ>==l4ְ;wi18:c*-@( `e;̰hibc{QEb@$fCXeؒ(`xLjqc Og䊍O6+phiOܙ=FG[=&CPt"d\>怅x TPt0@ JU0)8& HRl2PE`*ssߏzb\Yo.wOX>EOҥe]4ŽA'D[<=*}1cj7FzQ~}x:x3z^܇B葪=cRP! kڵk?"ZOd#} ^U?gto'cU-0kVZ[2N=:c'< ?9c]F[es*«]Y %+ B,Q0%)acuG~CVaqc/:!QHalφp;NaՌ[H ĞK{&(.F}, =9&)pY={߇.-A?||R!r(֞r]8OgjfKqCt-IZ\cv @_@ ۆI^zgLu:9Bn偎Z23W?\^${6XO1A#M v<GXTeGN~EXl!:#1‘P`|>2 "JcSn|d5fDǰx%=g9!6KTF)kA٧>H{6=cb DXBpWXm ,Z4ükiŢmÁZ* ^7ä1cZXxex.;ԋÃ{Ar+x`r6A ߥJ+" i՘34wϛf5 dZINƁ{t,4{ᯐ >#c ?ځ>˗z.\OˏIW-L{;bZysʾ.`L"Nک*ͽ SqLAxa>2:t7+es>\Teǃ㹰(Ro!ui8w=!L!I}4O-B'u.ys]ymZGN9+_LhEĢNO}fDEGed\a]㷞g }(+I|L>vg#nEI?-_`% rȕQdΡt3+}܇iǴ17V#z] xUy k; Ȍg|zoQA[&-jǗ8v)FӯIsISg#^/nzsW 9F铏ϫXۧMe!ʣ9[z2r9cYndHbL)z%j;h+!O1XN4dA4t3h 5N8sakm>OCfh*/Y?_kϳL^LGy\}2HR,IHyuXx4/6l2~cLIiP"{u|>M|ں@,=gBk[B$_HE*_ŋI╂   ńtwCUVE۔HCΙAAAJ 񿚅5@gTjm   ŝkQ=̞3eE\)aV^p=ؤ8qJîKLG ll'   'ygaM v<GXTe0k-v4|Q;zm@z p$7¦p<.:?'MFYS1hNk]a    BёJq lt`l~)EY8ۡ?b5M0]Q2f̽fpZ;opyw'ˏcۺxiXvAAA"EGG[cOaWnbeAAA^hd-RAAAXAAA^4^ӂ    Y)AAA$)AAAIAAAAbAAAAXAAA$)AAAIAAAAbAAAAXAAA$)AAAIAAAN(f 2".#   s\Ad.2"""""""""""""",yn@7ReAAAQedǂ   !m      $ł    I    HR,      $YWSqjz#X=(GeSpSE   /DRen'd*^݇eQm*E3+x) g;J>^l^v4(m|'tsbjf/fQ3Q9 dݴW)@7ή0O9jk7m>x}&Y<&]|b:䬏C=09CPs$  Ņ6K'f; 4(mKk3d/9w^<اޝbǼ/0!ܱ~)pJGr[;۠5puNW6tc@bCeVnq#/O\ch֔?tGl}LWܹX}CP=4P){=Q@7dAA8)ˁ;ȨU9Ѹ fcOȡ',G 5p OIry29XCz q}ZE=μN_Eq>UR}lZs]HJkNMmZ`crv>J*vhQ?eHBF XN%UF]S/2-㳤[GFWaCH,,?]g&y#vW"qUgQw:?| &cm-'d=uY$2- W="""""""""""!9;mK\|6vFr̤ѻؘb([[~?:;:b0RK58kO/ƌpN]*jhFQO⿘R-|3\]v]M$&A CBE!o<\rAYܳ*%ZD+xi6,ws.߇DTC`O./}AAAx1-Xj Og䊍O/h{|&@l6^*V ;V4Fz;8X6F`kqt -W!(:zC2b.sw{`Ҥo'\WNn +?5zAAA^̤852`eΛ+̞"@=lDo4(>FD)ud iktizW+&g㰺=nsɈجFoم9]zL7h} _V(/lqp)ۻ K;~N5T4`fG_zh4/AAAxabC>N|o<ږg})K`WveŽ?h4ru1TÔxv_#Ԗ?ork{sz(IUMS#qr<u'RӉX8#/6컕:W#h\N?1@g@^a.5k5*zD4P~+feР p&b$X  3 MU[0 8ժCpz,tE?FǸ8}3j2\"ӏH}ؿkx-|"Ȩ$CϘ}2)VЦ\GV9{r\ 1p 8jf`dy֣h |p;#^]^4*ŀK:w>|'?3ϰaZT ;UG9[TBP9w\Ct*u^bqreYAA)r.ơ`~2oI}')$%]qyEe*>oGo2.~P]ԕΙWW`;x-@2~⊞IsV~ӫJEXJnj.k?e 4y?<yęJxftp>\Ѹ-<FrYn+Y<^>[VŹ.02*CcBO+QkD=1:kʰʂ_ɤvy R"m̵.^)g\~O8yLà_)R\$""""""""", (|P;41mZT}&   E `Up5of$Ă   0غaLl_    }ZAAAxaQ AAAIAAAAbAAxc?Y13: W931  I  MCLq1$QxV_޳0CA8GXx kn+4gtvEw*k W% aιaOSQⱏ51$qwĆwkiݳ0U%Ql|u݀'lLxlZc]X,P l6H);z9r@eWCV2A=ޖ cʺD{ujG|TI >8ީ5;KQl6{:LCԹ?1SlGVaPѼP b }C(sQڌYOab ?_m{cʤp\ع*='§+tDzߠgA_Xbܔo`“6EЎu(Ožcɤcr`;6o ?A9< sO&ړ_͡U^(UX/o=:kL7\5 E<7B3ƒ#+ϭ$op݇%z g_V%T,gqG_<:N̫$vtP7(""""򟗢ܒ f]`xo?.]INYIE#ΨG̲v>J*t1إjɈe-iڂ"țs2[}R8ܛV!)`טzn" q6l/mXZnܞDޜӀ ؆\@MK.f<nd^v_Kד> r|iB+ДId*Y]`QԖ1U/%cHhqB'^(Qc*ҚSgV+Xngk? EQXWP?Jņ#ȰiZ7@fɼѺUBL Ieۙ.oi̗ny֓B<䌗WܲKe)חkcQOҭqd#g@בԁ]6%t.1p>Hh1<<&384樟2$!c}Sɜ9O rH-a=>s Ńsspm^*@oX\GI[ӂ %@킮SF#r!.~| FAsT(UR aW"ӷ~d^( b]!|C(/vrA_{8.TMc@]ۜCهV}m[zahlVZw:tS/WE~Uzp%ߣzmQuRWadc4 ^usF[$V}&z / JaВE=_|Npˬڪ^nnF`2 @[9xw'o=쿂 KsaQ?=֌/u7S|NU_C|`4AAO.VMͭ]),`2~#}2!KNkգ) lȹ7HN,vn>H,ɴs"7um=JhL[o#cO>ؠQk:ۏ|MK?U;?Q2wr܂ 0C^-K$~`^( 屮оX^C\ؖJ4M7ghMdHu-jSm/熨xKhs$aJ##@}!I0P7b;qqz= p%m5*Gm ۮ8uk>WmdT)CNVQ~텟CҌ(c`}MvτxrBmXWX0ΟJ3+XԄ\!8Z5z wD{I+Xe0fºf\"s$U쇁Xoj&|/TZONwF"PިSmAщs6'bpkn0.Q]wJ'aaaLZpȫCi18:B.hAdYZ)V9\A_۞գ.7Ȁߴyqe4yYS[dŸRC̕c^QCXk96nmCMwxkc$O`2("Yboog'%(vcmFcUYͭ,jO9r[? R2Nq"w}TNxje}R{1UVsDŽ)V<,r*%7~ÊƶU~Pu 7}1!9Wɰi {U}VZHjir_aKZƮ WD4zrX)]k(f8zYledڙ$W>c-KgٕBݡAt_65l ` s) k*pĿd.Y).(Zz猅wIj4*>ho6jn_Tըa -Y K;Y߁4;tT PvmΒxkKK"1y0FwdtFb:zL:W#h\N?6sE7ZoGtNɍ0gC֝KM'bj9[z2g BgEʲ <]`a u \I|p;#Y'Pz4k_ƨip IDATEY$l1$NߌL0H4fQziX9UFt{w;]_3ocn>ڿya:@ /fN1i@r$]Xn>}P#(qYC_M]6L>%ݥ?`Lk|x~U1He(9QN=ԋf],_A|k˴OEsT"_@Fw >N)3뱊:PPc]}CQn㟟N`ѢPe=o\[}Wwb`i,6~toäo'_r:n@x yTĽWdK[ [נ)G)y{r\ 1p 8jf%^wt:ۣմyO!: ڴ+Fն@t- [KR, <RUy aG5^ơ)+3MwR+Rٗ]!2d_WSa^ΩM٫Zֶ2+xGMD#Q}+y[KެbU#.cYNxzz,Jm)V\LsbRYvTb|(9Hlegvc([{y1"%NY*vXP)zC9ԯCve8(5"ftV(l+1U/EB>2lM-)x/plVf8\.۞% %$֙7erȕQdΡt{=;{#o2['t^Vc2Jx/p'׳|>U v\u mlǨye^#3v2$1&}c[t꾞IƮ@8}wƅglو,Ur=X"C>B5e S,"""""RХ nTrGv_Yw0 [x$""""""F&ZuXxw{wgMRQj`iSK&w0TDDDDDD') Q0~p?TOPSJ{oAeAUFv,   /j1    I    HR, O}c=d݁mKo&ydg.ĔNMobEr8  I  lbv?!?B]-N\a0]cnQ^g7`xu+ -)֠dݞ@dʢ莽V[Xs\*AO$nƖyAijbp:4xRk6{I$Z֫]^0-Z|5!LIPY{]^.1ߏh{1:?z~;54uЪXy.-+wǔu'p; Sq>,j݀(q?{^]eWCV2A9?) ?o=m_yΦO㕿L7wGIq,e2*){Nyߕhfj| `49 ,3qiF &^-5f~/`U'qzocbxy|ccoI Od^38G'v7?_6){97s1DM5Cy)]زMg:;Œ2^GȬ=J+>٪IMPeѲBo|Hڑ/:+/ȄzcMaONpL53egadQ~9-7iϷ寝2Bg8rw/ő{9Mq6iIOO,is&f݉i>;I^C{˽9j'2z7IzJm7;bYs4wƤnɫSYKžcɤcr`;6o ?A9Qr3wcoym:foGI= m_ΦOWEQPFQS0LeC:e/)R3ƒ#+-q5 - Xn0Rڎ Ǟ%'KZNz}$ύA,7Bkx{9~}XH2xi:72yP:3v})dFO 43 [ˎn5.G /8K<¾ELQ=YzVuwxC]dUxTO|V΍ʮwēz繑6c~u7|p~̢CEv"?KQ[-yL(?J(ǔ2aYul/i+RX͆H:.s.yOF47⢀<.cE۬;dܖN.j=)6<⣔ A6pڟyƧg=` Oά[֑o_DI2?HQY/N2<$yz4I[.> $ɔГ>&G縺o%jmIФ,I|࿞*dTe0S֚Of7ܠ<7ykK>N*A.ER^}4pZڭMXz85 #zj*;;!!4BWYCj]0iz{AإڵMGb2鑸J8F;}Eqj*Ov&,?l Ti͓Kl}U :q.2kYf5Ge(uףuŰ7cq U`@8r?/A/5@7CEv)G?⥤;&,h [&vsDԞXH-Q*ihhY0 kc~ż_@ޯ⳻0cn.c&M K0~P7tc/!H Z/>5%CСu'\c=2+)qBoO80o >9>pmpzE|Wc4VAĹ9ڹaax1 ;F`U,r^ǖ ЦEK wJ-.fO?ܴUm0a ,.Bko1UXY.ʲ'9,!w%1%lԤ/>ds |K/.)zmQ.k'D_I=I\?!>ȊYY%:7Y'Gz! m31\^gi'M1զdgX rӲ*ʨ}={9 Xw JeޘK̩6\|qɶm9Cs ksUlnmWROI>Td},^ ڪ1(*SJ3ӌuF^XgRCzB'|7Rs\\{72vs氮<˧SxJӺsx+ N^B2jym]*G2`N p_$G7 XnsPЦL60{m`4_tR({/ӹ%h bUm@17~""""""33o >8 3!)>+ܬ;gŁ6==*~MZs XyTb"}(%UcƄ; ڡQec2ӍuخdS:@zRz~VB9i{6^B\j~ԢQvnvh?EcQ 4f>ú Qp Ge'ĉpuuKΨ8n YpB AШTbqpd4=һ.ldM$ -,uȈAH4`jyA /Y|{[Jۗ;u;*jl=ٴiM׀v1#v3;ZgfF&wا S U7juIbmLCn҄u'uj8BeL\ʲȃrʴSl}2n ;[w栢u筌7+y:it?cH&]./ x/qT8=q_?Ord㻽sQi@ESXd*|퉀iwD`@5SSqs $Ǻ-a PCQURF[.VL+r/bu,VF38 4oP;І@A?Drྕ|;H,DDѡBO{^DzP/G݉@:k: 鍌Wb#YCV~P`0|޷qychT &)ه2Nbx]I[5nLx<1%,}Xc][J"<{b!.8J4 ą  PYV.aрUpx~?%E|m ܸ+7oG" u8kE+x7]!g۸YutqnA`J i{l*ä?ą+0c6fa0`xtP덷ޮcd4 ¿"Slq Ң~3kEdjIά^G(2Wˋu*[Q5%٢U'>Թ_J\Q/Em1NecJWY:+[J-=& ӭ{ٳ\2'9AE'~[~wWM`oSSOIWfx#KfO@Wqfۊy*Zq[::E6^|m)svGE5m~祰SrbU>hp% zfů2E$\]'SeD{VYS,6U;n|y-Q;~Wb[u+ѹĶKs>#RH2pS+קXFm_pWmhU걮a-FH2QWn.ӗ1-5ʳӺ024gzYfL1oycN[;ghx[wE[S<ڟ+gQCc@tVKKy?Ъ&=>eYO_q5$ֳ~ADDDDDogYnC?内8gW>Ȥ_^UҸs$ӑ5c^cT"i8)5L L^6^ʕz6Ts:/ ,]0 'ޝg] 2jVn6mHx6|}_:iɶlݾ;O[S$ZNvj:+jO$yg֟{ kmh(Eٮm84K2$k^ĤXXWR2gs!_׍=Nw2_v1(i? bZFq7f,7?L Oym˫b%_bZcW IDATH[4ȤL\ߘ;3f@ $צ->`m_ g!5sbޘBC锕Q;2xI#+qɛʹSx2SoZsI~VR6?eP)ld/C'T%룮ؕ$‡>)IqeJGIܕ 6ܙ+Y5-s&x> ^8m()SP43 [ˎxTHBmtdB/)GQ[ոp)d&VO SXvemÜ>?!C!I>*iUۯXnhmt,?JbZVqW.Vl!m ydR\LF)lW6R^}4RA홺jظU Bp)cfQgޚQ{~b)H>-x:)իzȎ>6} zm{c恊oe~ż_@ޯ⳻0cXkC=#XNJ%lz !.;atm~i9`t  <Ee=N=ù-%yLq~ _Y`e$h9CÌУ\5-UƵg=d%q;x6L2NN<'/`Mz^L(`&CĝQ/Q+: Gi,vm#G,ixљbۆU 3Zs,!*#d)+xHOZ?7v|Z1I|sNuz&Ư+9ѷ:Te칠> TST|Rj=H'/OVW1Ș:8BDDDDDD2Ŋ1DDt ;ys<\\5E+o-#*CEն!6̒]hFvuo'\ wي@~Z׼` g5DU:xTQKYx4e'p 춙})0P{'Rs]f ޹?8 'eX,A QALS\ǧ¾"2GT&=pTk6m1a8v˗*XUD5n#NEY{XjjD\Ìiػ{())S0{7Y>JڪAXQ Ǧ4Oo1Ӎu/l_6(<'Ō-J$<"cb35^&ũ3fm:GR5|M3+"_ˠ{)]N0ĞŊ5`W{ޮ{nElyĢ/h}t$H(lb8ք_Yd $uIALqYMG~En.'΅f.|L½xf9vnoD^$y< _=Ctτ] ͫ$Or:mt{=Cy_sSU$/Oa5E>Ta IUPFH%qW6 ؚ#ɸnlӉ7߯?V]I?Ja<4[AnESTBmWsҧ趪vyIޘ],R}nt(!S\\Pֿ2O.zϤw*ׯ7Mܕ[ܙTt]f^x9o؆;Y_iؤՓqH6oԘ-z͓i3Aamdfs"D{BlcrӐ&[n>SÉ*_dڞ,'\St-:M%S-ըrS6ٯU7FnFAn#P(xx{gyPC!7V F!(<w=?@5S=в*+R"kWw'Я0lSPF(2*5TFY[.VL+r/bu,VFYkcpJH>AImpl;v"0H}ic|3y::TP>ǨX6YK;ᇐI9ݷT>Փ|m ܸ+7oG"2wG w Bi } Pa|E[e n ;}i$6UjV-'X{Ո9܇{ze;ěGq#!w\n`tq]/ƶEX~ h3c5uאrwvD w ѵU:~4<?O5|-ߏ{9j-`S>>7 1@C+:JJGcD܋/c Cׄ m t3cbח2}ό<}M1{ZLѭġP­[XU[)(Z\¯LZh* . {ah]_lQVu8cK~ ]cQXJۏ5=afQf'{% >:'*_Vh'ڍ_T$"Nljqc(&g9Y3#mÊcذ{|hvV_7Ba3-RfG0j~<кf3 Xc\L_c!IP7q1x<4܏CkEnS11pˈgSl=860VXտA*լkKhjW&֍GgرLA-.mZ~q7"Ӳ_;5|eHw \Dp=}5ɼ}9 ]q=yf4+8s&S/d.9Tdۙx5&j1WsVy.0i{أ\HQܹr";U63~"?+֙svcCkABsjyf9wam),S>J⮨mh}v?9(wq A qټ`.Jqeк&!7,ҿŕQ;号iȶ<ŸW]W甬׶hYNGst*GI,veht :q[:e.V:֕ԿLjp"ڈ\bQӲ1cʮ+7FI_{!i;qO =:.ٝ}UBTDjֶ<[qr|1 ) ^t\iSY~wc}Zr9n;]MX@vS;Y}k/g{c%~?m4;c*DDDDD  7K^gcxoAe3RWlhO D-.A9 i`*Nl=mN,m`I ^Aqmu_4  AH bx6Z.#IfĂ ¿Y>-   gӂ   LAAAA&ł    bAAAAI    ȤXAAAdR,   2)AAA   LAAAA&ł    bAAAAI    ȤXAAAdR,   2)AAA   LAAAA&ł    bAAAAI    &*|d\\9QYUC>}A xY_   I }0w9Dd:I-`Ufb]`0G>¶_ER^G -cݡ[dy\-— Py7:m/zKpai )8m]amO%f 6uMktY/30Aͷo֓#7Nl?h?#k[>}DYۏle`AA煶L=KXG8y_ʍ|I !BHq9ItXYNY} pj;պ} dIяH߂ʤ+껝IqmĂՑP5>  ~cM8@9]^/pnb}A堁y28M  Oƅ#H!65 +q}瘇Yr m8e<}ӳ :4)gF 2K{ if^\t҉߱#$NNX,]hS/֔r;9 +Wܱ1:`ľ0~u܏&7BYGnCt->`XaYeJF>1e]j:Xp% F1OtaV6<ƻbכ184Ypվ~V5,r^ᗀ8˻V5n%(Wu$l 7?Ї t=zz@w#Ria]1NG-$  ߥIi%/TQ⟡EOJuq IW %~ ?(d]UK]NZ ((ч)xxqvt0wTvSaʳÖ`>   7(-| AW;q7Ti~;bvꃕ[Y'^88}2v^Ǟp~ L]8Z6BУd iuxp38@W+^5E+o-#*^AA8=2aM*[$;E,4 z{ИjKcʷWC|F^b0By>t$D{1`\}QT ރ㤺3z\.F\Ǥ}Kz&`hդ~F?P2B8sx>:Ocp4`&=&D   g&ņc|3y::T(!?4$qM)2dt_T-jAX4`U.JJ)ЇiHlJ#VEfvFyuCiWw'Я0l/h?ą+0c6falkEMtmF3h!~I1҇K΀N&cq֖YjT0ElPSnX!   )| wo,X;,\#Ne|hzsԙ!Of QY槱aM* ogxa7pA*jr _T}$pl^OA'<+'-RfG0j~<кf3 (k}>ez> ]|n}L FlU*kGDcѪ2jVm@8x!,־\G|YbmO ±蹘Bo7'Xl=\gX6Ç[?hpwTmBZN@sIKN~|y,}j4CRԾjVcUk*T/$63_L<{+6z],"Q΂  6UXƜHZ؛q…BFGygǴBEej?3!>asMO:d ԍ}9RI}WOcZHͬ*!ϭƊjv~Rh=Vl]Qd2kY<Gv]W"SsH}p?ǪO\xͫ ҽ0*C c.򇗪RkD=%5췱dR;{zuXiv':jsT&ߩeZL=+DDDDDDDDDDIyZB mcXZU3AAAg@4Lk?]s2!AAAIkO5;Y{GЋGAAA |ZAAAϢ   2)AAA T)8;C_t'^Zs9_J]FS%i  bAߊʪ1w +$Fh T:ڬ6FZPAפXگbK86zj y-c |RHiqdBSOAWfx"{C_lL>KKؽbpY, zRhvmllچSO%Hoyu֠BXwu?c^7om?ϔ:#o%SpȎlnI8if=8Lv.k.@ˮŶ+K>eU#LeO,>}Fqى20Ǻky7?&Hc=3#ڡXdzϕw:Qflk,WJ$ 8I*K֛?㱯pܠl]Nfj=w2r>'ޝgU cvPs' _q612^%bȇJ1$f1i<>&]% f 7uwkvGYD/g{\Ŷ/:~01S{_t_d'ϲrs6:nD% IDAT 冈g8).(gKeҧ\ߘ;YL:C8?kfĤ0KЬ[ӑ h]/w&f E\?qɛʹyRx2SoZdMkJMYQ֊mWb}ʪ72yP:3˨q_ ͍]N/|ޛOCP`ҘTP4X &6YSѦ =řsV,Y5-s0H2xi E+h\82j_pPJ'sɱPCwJ+I_6O~hRvdy54Y?o}]IJCV,3ʤo&4av`YInfIs\ݷuia&E$3st䉻u=$H2._a|bf9M#72""""""O)xU*߫FCpw0l}U :q.Dzh`S &MoӠ;(-#:xE7\]7~]0(nWڭMXz85 g2?#\,ҐhYKCmnrj ~<8rYR9[ "ҌShZ pӰt g0[/U}ZA<l׺bכ18]pqҴÒc.%15**-]aؔp+6'eFyQMeWvG :$7aHOz$,s1,wB+8;4#bQb?j.k5?c\?UҞh*AQ(5ѷ#R6(5j~&Lc&2U^>6} zm{c恊oE~h߫b(7郱T?@3K*^|G?jKCN:?;zd.8'X{~o^7J,fS:7-qUD& Of%isk=8񌞼45MJEeRpnr?M3$<'k ;7hXEgs6YB&Mr<Ĭke媑h*}+qLһ$-e77s/"y~+k ɸb;:JROYcdCϟ|"d$7q$lh<%]*1&`)Viqe`~;rnڇȘ} os6jҎb2kS2eNZ\Vq@=d%q;xV %+d֓]]meū\r,PY=JLERɳc\T)2jz,UF/x\9/Vnow#DŽlU *OtdT(짊ƖbbaĴ1SaS`#D&u+@'|9DaDŌ J*fJ2&5XRL߮GC΅*^**DᇡLYjhԦ22bR{AAx*As©d,^2>O1W7}+!w+#ըZy'f=yƨW^xchT E<7>3:ζ,jJ]}YS)F!(<w9tmn\T:m*.v*^GyB>gf; mC)bv"zϋzW^ݝCð^q;,)JRRjh501~a@n=в*J߽JwmhX1wjuZۮ$Jc:g:CKQ{.xc|cbRnM7*"]t0u:>5qF:V`dOEMtmF3h!~I)x(g[縓o5:ms޼7rHHE).%Q=WGG_c"K,?UGkHr)Z lg|n 1@C+:PA,إeomBZN@sIKN Sl|?쉆稵NOOw])m٫bn%nʮZZtuDŽmWT7b.2Pz w=sAyaݒbtsXf:FTۆֺǗұa캭FA1n:=HC>M ±蹘Bo7 чo۫f8ZaVVT w/Їmû_CnX{8(rkx$zV{ȤXAʀgi٢ rLKܖN8;.EtRXw>֖Ǵ:_0oDe}Ȱ;5@]q=yf4+8s&S/PЗ?N!^9yQqb%~]\4-JK7 '&bI(Q|? $eg\ev枹gʂ-["ʻa1hDU-temN 5 V*ROI哥NJl=}#Cm*RY mcUB]J(:aM}y+tWk}\€Y[x6.K)|Wؘ$nS?y.p~i-nJ-}(UZLA7tvi*Dc\4;X2ih8NǙy;-[au9vx-8dvFYPIЦf_.~wrmLa|T0ZBmbBQm 'y Q]Ι^6o橘 ~+9?{?RзYJG)h! OpN2v@)ZEci{pbֵC #. D+*AL )cJ]XR=e -j3{ba BI OLٕh6uN#M4=)v@M 4dF, %lAAAEO   2)AAA ¿T9|{5U-&,3U: *D  bAYDS)y:<?m4&9"|'LŤ՟acߙ[VIAI*{/^A#6t+>Z:^[{bnxNX W 8 2qg6bzV"tp-)jG,@oDdcV(Um-LS<>*_`>>vjei`STjg~' fY{ҍSضt9 #Ӿ~ֺ8XCF>J:3z z_1U1$qfZ\Rɶ[ã\l>d*no~NV Џ|CѦ quGpAfN&l_]dgTB}F\y̓1mo,;XѸyW,UO=]*'YNٷ  Rv4rtN:`*I07/y~v yyˋ^^Scyh9%q./k!$O ߜ<)nqvl"rwSRЪ~HݛwWۏ|.%[(:_LnLKZ>͕ioYB, 䙷۳Ilm yHfk[*9'ЧmgG~Y(N7Rn8_G֚<6F>J:-Zp`}Y@Y֙i7k_,ye=hwmױڀ\7w_ڑMW2Ȥ_ػ)JBޛ)Gxp{jӇl!3qsVRЏriRC3ĺTA}] N:E@o{gR/=5OWDDDDDDB)4:+Z}ɗ<зmrq}+kuȝ)MhS`FʱmOɘ>\1EMQIcRoI[v)B%ҡӅ 'V}9sVʝZ{a8sC&eash:,g#>o\@LQmd9^u&si3ب{y5ϟ+*5.~ ]7Tl<'/]7w)ߍ˽i%,P2]CZM_{ciYL~s83wu9oy,:$~'gbSLBBLqFy>DԪ_G UU|m&e?b<ON.042?MKѱ!rT5 숈!iW:Sѩ%^xh rVy[sv~V~ՁS? Iq?(f8OzKZ E"{m-?P>l֩ kxjLB%ӡ cO&~8?[Z`//*$x;/EQ{`?ԱV 3~055ʶh1⋉qF>J:|wdc!C!t&\<wz¬njvmaS,K`SڔGY-p+!7a[(Qԏy1XP9vrFo!䡡:T#N.;0wd?t}'.w{,8#tKh+~.Puǜ|8| Ļ+aW4ɟ.n݇KM1?¿|u.41.~b{t= .=Qڷг3:U0uLk4}5V& ۧ sckzy+ץ]vY63 L$cׅAIlle09%w-h[o,7 [Đ$==+j 4YuN斎.ӶPɧx:<~UpƃS,ed:W5L|6l$|E߰D2~ h&pЂ#LfX!j}L0.o.axئFDwK}<3WڞeeVei~oR\4k$.bj6\p䉱j%4GEI^ܫ'r+ R5?Cfy\W#gh1J{yuzV1}ڲ.:K$@yY Vt=%eUgx[ucB]^$kO{Y1*fޭC7yR43.`cpS#ϗ2'f4FOvS 7[f&#:2=wuL:i}#>aǠki(#T<}U]*PG%)Lk?rV|p偺W˺XLkt33cDVfcѦ`8 n?@i;SwC5{JZ :}aք +"v#K[3񓏔lنόÚ=Mc\|px?4$|N%0'ދG!4ۼ;#g1iۣ7/ދ4'U15?,iIiu` _'[A(|>O k8|o }x98[2LE)C*HāamPf꼈ow_E{nc?Ա]Ow ג*ea SxDC.hAb-νQr&Dvz<8BG0pTS>]CPյ 1up:$38chBK~%{9|<>=k_{oC<Q(+-"nUK08SnWѶP',>87NרaH؆ 1r# qQ wN{mЮ9'ڙcvhrW㍩-d$mDg(V,q0?! @BMs7ÜTTĶGw wbo?3Az 4-4w:cG 74="Д^Ldd#X0 oZڳ٨S_)jBCeX \]-0PH頶ȹB{!VqԠ+ڙ{}.v5j_ʌ'Ov K]lOIP^C*H5=(9YhY] Vaڋ1aja8*$_B\Z{G> l f7oZ]qIەc'΢x(ٽ`rxih7G"C1KU?bqLe썊~( D #>|wZD8>O.\A`wMIDATJ~g#%]yiO6J Q/v׫k p~?RJ܁QH  EJOgm/ӸujuJ/pMLjw;UY|3tg`M12 KzGL{W8@h?>vP'40][Q#ov={j > [|ĐLRy?՛:v sjn+iUۥb |׸x5N{rޛ{HQ{y _֫ېM}sLa:Z+Q|V/%++_AkoXd"Mv|eYy}N5F>J:56.E/Xl{ oV꿇דgqSA⽄Oicqf2ybI1;H2*N֋]:vfN8pI9-{!ePS/"yy=z?GI)CֻW>jdjkx7i+;y_LDDDDD_ɲ60FU[^_]ezu~!E^S[fom?ɢ"[O /B7qFSNȦV.yK]Xڜ|.MGr>'-&[N]0sthإh[Cei0>ɼƵdy8+Kt-EBw :³qYD5 lMQi͗2@G{+ԓGGyz5y6ew[5x>&5ub3IQo(d\ز(M_Uk㽄(sPE4;X2ih:Nc˚=]gbFO)sb7 2xvy`*=-fdF,O~9aB>Zgv]qq9w(vFɭVco@/ʹ=':# }d#"""""R#gf, >pN2v@)Z1 ]`Q̬`Vbv1teU LAh4[;`Y8\/l`;_Cѳ}g6cl][1  Ȥ<H!AVFTO˴Wqi@ZslJ uvC:@IR'?^+Aڮa$l==hLU0})؛H04sw%f#9>es0^?=+Y xkJqLsH*{/^A#6t+>jw Ǐ7;}QOjKnҍSضt9jͬquGpAfN&lo(ҡ 3gŅT1mNۀq 3wf#:ĩMŠBYz6Տ5#.K~Ѷ7L@\Sl^Rb~@W{S%y, |%:{9 Gcco>j5n |9|u¹+lxwT4FSܫZ!? ۑ&2^ +XL A; laW !L$Fg Ugym߲@&hWY#`z%R5$a/h,-?%cKk+>uNd@YJuءk~ V G!>[ɵ19^u# p1f‫5;tN-0hڇ3 k]cKcj]1v?Q;'yb|Z}A|" mrhexU vDPoM5#U2Z%}t.KF!f ,ڳ u3l:Nl2UR~̜G 84-I.ewv`Jh#O8r  <'/]9+ߍ˽iCe+L Fm)ąT1\A&olwȝ)MYR'1cQ)Cu17&_Lb$YN꣱okF*I3L :Vau_XwF~Ym)SYСf7W,KCkycJԚX[ >3{`]Ri&!Ґ嬊e(eg7;6l/@X Ī2luEu+g`؈ꬭl3tk.vOsZ˼k4YOI{AS}wW>b#kXT`džœEuN8I򯡬Qӡ4k<uu8=T-'%cP)kLd0#C~Q$Oc5 >Jj*1yXQvoErŎ>kc\8#}Zb8j|/zXeet_7[PNO>7)VIz9ҭ3ZґT Һ ᡌrvO>hR'Փ9K r_BVRiЪdLJI<N^gfdnP^r9)-ZV;vs0<7n?ŭ_mbHbמ|*YܘHá-٤YZpL~ >Xyn 'hredR\<{]^'Űa% 8(Ǧ)]#yv;Utp$OeU 5i'8]Gu>li[qa:},4d 0 (6mT(8UUTLfcEI^ܫ'r30{lO%oaWuN_'I^C= 9S5gҤ6-TgacX5d)}O4 MͲ82oRT ˶_"2MHuʲaיDeOH~F92J>;ɲ'tXFZxe:NUf J?Vh0~϶8n$;<hP &:lCV 2If2yV$G uh/bߗ֓t[XM>N18кrL2d2=t%`pm  x'3X.wT tY: :DK^xa{ 2ik<;ŅMh ynUmU9VOX[-vweo1I)P,FagL\AxݎoW5k;ۧLݴc,SWU1S$Y9y)\%$/dJY:od"os vF'Ŧq 2.,+ gE8G&:T ߀K1ŶUk{P4Bgɭ{h _aRD3clj]mtYĽ߆~Æh+-0|Cjj>oꡫ+ڙ96^0vˀ]p,֝]> ñ(vP9l<_H huUQ姾 i!j ´-qucRͭO:G#<^Z>%l͑PԡJYV=# 6CjwR c1Xcbo$tP[ȣuj=/Nc`f)P7*e;8on 7bV Ka{pѱG=5شP6hDB*AAxF8 UJm֭sew>CߟnPh[ \κ|'):xUn+*MVW!vUǙt~5{~s>ݏ]:Sq\&i`aоG $7Q٩cw0VqQ^*e=~cmp~?-ب7LH^9N//z5N{UlźO0;7}Ugu.m_8ڧq4Y.wKƅu=eK>:Xjlۙc/mWW~V/%++_AkhhWՓ>di~@!*KGWɄ P+t$w] ƅT1KzGL{W8@h?ǺTVoUf]g~̴183lfe7_fآU{5HwgXܑ]O6^E밠ط^ۼO[SwgG̎JV8|>IsQ'6sN<~G2=:'wڷu>vOF܇A7%V.ג%y&7?}kVcntl:+v_d\a7i1!2t`e{*Km0iS?97]XA@$SczV΅l\{)ͼ95vc#]m2~xUu W2Mn[6f-["ʻa1hDU5p)*ʕCɣ#Y:yzwvB!}̢"[OT8M8QUsMhwWdt/|P3;31rnߋ5OT<{\!gE{)OuG*6[CDDDDDrwuSVA 8{K;}|ʫ=8 zbP ) Y-1G4vlNgO[h=u՘e4b?WJ˹0u=Yld7N)\+J=o𯿖c˒O]v}Ɠ8}d!kHS뿻#Bt1zdԫSYݣ\:X.繧kAN:OSM#?b-|9&'\K0:bG,;_˪V]_^a7{+a|6m˗u6C? We4S\>e :S]O3C[O|ӦU1[+ZscviP+u2i+Q-Jtva>R35'NVq꼻-J)<;NPQڎ>rTisǾfe{QMiݎ!z}NJ%JYֱcdI&d6=T*mԾkQֲjZ> $FSը*;;[eggCI˔R{ f.PzwRL09zJݯܡ>_Mݤ+v>0X4T=K)TɺY?5ƶyR%*TwUINs<ݕa1G2@ 1fԆh%ڧ_kHz OFR(~7qjjT1#mQwfߥSuAۍբvkqOT V:/hoTjV]ZSSk.$e0|nܦ2Z۩^En~Ql/W?=#SLִe,&/>-l Wӣ;Y1+>OVOϕOex>`0A=w[QB4&84` ,PQSrCw0fsg ).?tdG`J_CM:_2f֫9U~,n86iT,+lռ>o:K \mw-;"/2{}5Wj|/+j|!zOqrBq̬G;'^GM܇AAVFpuR=V-MJ|ћsYv.c} ZW:ԏa 0\ê| a7uiJ17aȰ㌧2 䭧B3k[5Y wSr+Pyr]~H3di^c*3c}T<>..q[x,߱ e?w6N{jSl|)~5n$ްAKvu4 P J,'ALKX{ ?5WTBF)r8>ĵ.jL&+b};WŬ|,.fY<ƃY8埔N^Yo cn%xw)јi9 YgᯏÊ2! pxxGtu0<&+Q cH9@R͛3eF>a97ScձٓKʯ߼}?N>3g%;Dw>y}O]~JRVu=LJ767pI*Vl,Bg=#o跲mmܹo_UQOvh7 !8:zOuibMj!9O T^n{ziVk*l9n ѵ?k֣֏v|q<þUm>Įbz麡o;ި{aRvkTݗ?Woso՟/L8捊OV4*U!'%1?Sϯڣ5]1P)FŬ{w꾶'Nߨ~sCaR*J2@-xzšrn,\^08H_V*VOX}:j^{>yUOս9>NU~PɸK.V}:)8~ztejQJ)_*\kqL2$L?Ixb훊c _B!=@/E B!$B!BV??B!8 dZ!BIB!Z9ӳqC"cy œA”IO;YΡ H|})lZP| C[Jt)8]:N>6p)R7|*@.M׾ q(g]a.Wj:_RMs?yF:9mj13$*L:$ďUk2cf;·>^eyC/˖;6E ˹>޺\k^jm'a+rʸ/ڍXw*ۏ[Թ_3"Cݧmb{DNHw_BHU/}L?RZ}Π+ wφ0`maOcEĤf4<ޔFܙגԿ?fo k TYdLЪ(Y[c Mr>i"2g_͆7J ${ĝ5p*V£O!f$M0Iַ=Jď4p1fМ2V˹ ~ip_yuO{,=UJCJ6T33bLT).]p_br.%y0̀4-DgPMkZ/}T2/w'dN33i)\IwlJ)aג2.?>TӇflSj:ʹe5 [!TWbffH"r$u0sh.Qȡ!PeQj!o!mH* KMIסS~9Vġ/R22 AFz{om=$Dh^e荤s`s?~BƒquDGQ$"ZLj~[̀O.{_ގ{S qcJҀ,z#O]@ڗC ۏUsRGb ցrn(~_(+kk_d,ؠx)v_ŏiEA`<0辽PwC<Ԭj䙤-ع#L|(/ ^."뷿A;( hbKc1qQgud#yڃ>}͠#8i0rJ>í&bOHr;wj6S|1B_P8- R<΁/RBin t흔ViM4`g*!|>^Li}٦M_N=6\o=DMϻt;Qg32×]hm_ZED-[sE=Al _#H;oQ(kk_]K.!kP:+ c9ѵeB=r?lG-4o}6r[QTbOIQMgI B5Q5JT,ݾ ts8_|.n^@>AK9kY˹)Nw17]e!II?ǰړK9 K=TsRZX6pMN^L&Ln7kՕ77LhEEl)Cc}'鵪GŽ;,Gx!RNms:E*@gsW6A16Kr`(CcW}ԔXg&bBbzGbբ_Ћb s|P8.0+b ڣ¶tDfIxb TY[cm{E js}վL&kg}Q">)'G>8?HIU:ʾP.4/Iu,R(.tٱ-f}AϛvX]37Y|OLqO(ߺ@>}g@4^&|UX7l1w>ctEaM{f-!1gboaM 𘵷wmZ':*nבT !IJ,/e׉)~҇e3z'ޏ޹Ò/iՄ|mX[}nߞꙤƽGYKsj%+"`љ0LxQLzT0uQO}h%kU~#`@药 [AGT]x!$JJ?jtN#SnY[Ҹ#҉|IÇ4U?:K6 g^F|JuNzpOn}~l |1  G $5ֺcUk}ift:P^߱N]i%.e gf"KQK9v௥h&p5&G+x:2WB7rY fZ&euګr.fu ]` CIH5sƢgԬ}д؇(W5^1[o0,Gصnj@[[]>^bfWV,=;HvjW>KsaEo"$c4m郷8â_F@Y"Zh؏abe?zMT 2u9fi:P ۅwhlݵ/|x` cDV=24&M':(&Q;~kFѨ]%PJs< ~/ 0to]p:jw_)|s0w* :PnBIۻqdL^u?Z9 7ÁU@c]PtxܰƆ+ UC 3\JES 8KXޒ93*g2p 5yۈ~1߶'c O@Lɩ?)gS4RtGslZOco"bulyenrUN~qIKx( i۶d,iIJ:.i_yQ)}!d7 KFW]M|վB~0лi ލ=3rb2beT4>~x0Xin6WV1pWWjc*|$z1vjQi[ZbR:7 !$&tD*,1iJۗ:O1f9sةv$~X +ޠ-;cVWKKê *.%+ɁNv6! ٶbXNH"@6xY=>@gT@ٷpxIqͽ~Nʰi_CzXt_P9{`+&[Y?d#Ђ&/<:$M|Ee#_Ɂ`7ĉI1x5`?f捯P}ν^vL7b@9PzrCXwq c|xwQgs.k_ZQ<>fo1} ϼ8O P+8s fN'=XW.Z21}:S^r#x\xCn}D5IDATc(T|*:jw˰E ^Bc݊ݖ֘=2Es1տO7B'`!7[L s&% fM 6%l[bAxV&)޺\k^j YbF-$i`f{mU[m<>C-6~q!Bq j}oΚKce+vѧ3 Yhxm OCCtA ${ %YמP \̀4Lr&_zފu΃[ǁ5ORb3y9컇GHIwow?-B!NqRXȧёD3H boek\u>N˟‼J!B<ߨH!=k_a^'<艠wP71 DɍxFD_>:Dq]qb+MFYľRe!BqjC ]x%زva)~;,ד>~ET4wXMs}4y ?;BsX\ETşhhw !B? sȺJJeˊ]'MY2iM]x l wSJ9 -՚&(1:1Ԟ8j>'r sDH !BӓTBǑ1}gzmkJ,!1f :Eړ8I%&9ݡc x7(||>~jp2g_+GZ!B4]ᆎX@(Y%&|g]i2C)،2'1`;5;۞+:o oh3*YH$;(,(}BE,2N*Pנ'|R㛩οʧ?o2 F_B!0' 摤yg/KA>L#9 xS *:\Oݲ1vnψ?|4gT4~kH>2߾_>CYB3|d$o!G]!B( pB!B!Z!BIB!Z!BIB!{T B!BgN-#B!BhV2Z-B!qӺ#fJb-B!D ugI$B!BhL!,2 IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/run_events.png0000644000175000017510000005327400000000000020022 0ustar00useruserPNG  IHDRsRGBbKGD pHYs  tIME_ IDATxy|Tם5,HBM (VZ_[jU~mRV*#$$}}s~$o?>0ssΝ;s0`0"B!--@xi}<ȓ>B!e꫁$L !BA3ṕ4EOB!8־OhE27!B!%;RpB!5}FMHlUs\#°n@OiS!∻;?]t:^Um~K_%Ŕ1?o+ؤa_`v_CER jwbWϺg,8 q$R s2 eq[aTÓػ1?chcp%+"la|W3dFoRSfB]~=*$qk>B!|uhz^W{L~t>Y g?}8ˮN_5:VJL웨|y6x姗qGpIYS~p,y$^Ek7>3&r{иgޒC@9*W>3O+++cL;W:QOw8D}z~'ʾ-s2sp5B~zz;@Z<0|#JPG,v.,v, Bםy P]EЫV_[9ꦡEjf) ,ΓԳmflE_W+TBm"eU)'mmThO)jZ)OjKSQոe*kΎ wWRJv.U/>WJo]?PW?>Pg-˕R+ԕLIc=Go2&#g|,q@-%uJ5)sgNS?{ҕ_moͧSN@#ڇɏT}WR Ԭǜ'؏͖?ڧI}C#Kޭf`TkcNc#Ҝ:iooc;ON5 mLJΉ *' [}km AN_!ѹ)=",oVRt>3r:~tL^&~{g*'Jի/%t.w6yh!Y#S)| ?r#?}+T&Lsz.~S\VR2's+H[IxB!&[a{6N_,aN[ܸ)z nXzhY;AXs&B}F 4SNJG;p_s8}m$ې ͤ):-OO\ɰ[V:CgkY:t9ѪWya|2RWFAT=--_߿kSo甯oE)+>\.\;vv“}5=υwo3B}B|= ug=n9c~uY3o C_*'4~-a3C5k`lK*%T|’$^bi=l%Ťw>};mg1Z+;_[a!j+  DXf޷8TԂ8;_{ϰm YPifr gX4k]j!,B>HB38s-Lxg!Q /UMѤ[\{wi0"}O=P;y~ Wg#YPfOݭ1_r?ɢ ` 9s>&A~xI _F},\{]>\D#>NǻWKg2z_/[_Dzlx^~Hp[4rY[ί~9?2Od|9C~=8|u Be[b[5^|5mb,lusce77V^VڒmSC=>}XZ*۴t>t=ݹ ใTݠ64ĺ.bkzqʥ%>DޯsX PhbU9a-Z+': @'iT)Uyþށ2D}WNMnݳU R7ՙ_Dc)Q$=9rsa\_)̉ɠysիzUÆ)wO]uJ8{c)RJeW,",|%!Om\ܧNB!&!B!$T !B!B! #B!BHB!BBB+îy3TBU&4vNGe24 p:r]lvx'^ȭHf%P};';_­sdai8;=,W'n݉h]d_ݵ_s2~8vjN;p=\0SΉ\rkv?j>+쇮}q\#7c>̯aYp (wT}E*">Zy?|_Zf w m Mc}#mϋ`&0@Hȣf2o1Iw1jl5\ۆ'.P_MF?3exZ!G{"1[ܷOp2"N>E+*<vUʱ5velv~o\7$:Bly=R8!t\7X :(@s9BN0 [v`⏊tr ǚky=1.[WĐc +E3R,vEDWV{Bu8̔>VsDʃ7z 8\d|:#}W__UFbn[K{H o[7=k'8SO#w:lSℌFՏmz"4P-uwgtO)2b[lNƎ:NuM q(gO6>bg3tr4o 4d$KQ4Ԯ(O&!#աu< ;{xKÌ)zcற|zяxF/gX-o爐,\B>K??㬽i332oa)XWՙˡ,j-,߹g'>kc? ʆQ&J[#Bΰ+)GhjU]O(bƕ' O@,$0;-Ƚi7^kclַ|D _@u$xg:wj*fma4 hGxc5 ߨ qz? _G -= ] ƾa#/ rR)g _mz!MN# -o.;@`%tcp fP49qeLu]VIcp|*2GѺG;)S(O!;Iet(0 k:RT]hlw8+eͳ"h~j]l7DtBiTu|mI-om>yQO0xt@KxYEޯZ>D(zlQ>y'7$?[>GxHg &<75BwVjQ}10Y;[\L%.̛+uCI,7{:ǩO7Ws5S2u6PNڑRscA>e|qĘǽS|qbٔlBqG /tv>ߎ<2ˡtqn`K3++п彚,_eGǻ=fi~6Үi K`-ζ?ֳ_ɦ]:0~LT{-ۡhh 12\>>q;U*_,OUoȄ{lf;+bl }b1?^9̜ oeç ajgeLmd Ɍ}>E'pK9 Mwg1gz}23y@sr+c8Y34m-DJ fKP@;\3Lvg@EX{~4bG*XfsL;v`59?? @~(>#o۩_Nǜg'{Dca5Pu6"srok೅ͬ}9H#}}5_}, vYhNMgJ F@V-h* r:ϳc{7&kvN XAQ+9gdb ;§h%X6>BMw);&NJR #*P@#F?""ZWvȝ8UUVS#u- ]H۪e`[B!08ڌ9c-pO3m 95 lFżdNK^(4<=Jt!Rp,N{W7ƕ$к'xd|3PucĬ 6[^f]t+a>N&^uR*io[0,ZB!Hk2OTdJ9.Fh6CC"Pz. UԿvkM7 KpFF6|qpLR|Ko{9FwK̺`WmO~%'o4IKImK!BPTSC=qMŶ}1h;2c;t})Um q &TxZWi·;76h٘r]4~ BtmlT$g.x.cώ#uş@oy1;s"薓y%HYj ' Q?ebKAxB2XCy !B|9zo 'RI]Fb/TEz`~kڷf/'ޱgEON+I{8i#uڝ ^J;o $\wu@ey߸Gt Uխ_t{K*!t2w6D7VW T-!B%jk )RrqΡ0Oǿ^\hXڈҡ:J~Y.u>ӔIFLR5Ba4[>sIZQ C[z- 8*o+lgRTh&n h+hX":^"(FA,đ#wY"YKOJ"Ri^Kg?:MieWfvlZHlK!BPA{=%ֱ֥+0!@_Alp "eL#v=m- h}i}o?'\̠SS;v77;Ǥy-H?B'R[WS<Ocuo=M$-!Bq$${ !B!>dB!B!P-B!j!B!$T !B!$T !B!Z!BQ1asn^Ee4v0c6G/臌M{h6zsi{?_rUh.\㮦x4vghjضeYS`XVHѾ9j+j (p29nLĉys4ܰƄ%4 I5xg4x=2R4L'QrOG[ ]Vl{9i|ktXF2䲻ɶXq9pB! jZ=&g1 WP0;MdA}(zn1 h~ lo}8#eE/jҿKi^0mDv{,زSbrM!BSmJ㱇b~4lIǬihf3*%L%9Nœն X 1w2RI{ aCȯMq 4 0%lw sXvj 3311$Fpqv6P?]qu͸Brz{ .Q/}_TB!Z_+f)3zJ{ UWpvc2|Fii4!9x@-c ^Gqzh†m!u>9ZB!7TVͧ.fYr6]llf4rxLdLKILVl}i1`*%kҵv7=o8J`O(h"揳v&L|<>oA,=mzV}Jk?Ö^B昋tԷFzGPٳv8v=E쟓Ug8&Qt\) ~g3ϋyc 9XB!`[ 54/Mi˦b3vteƒw Rv^%ഛPV$[i]'ZBGcT8)vH(-[ "-]۲h٘rbW>ΦE;eJ!"Ujާh?nh0acyK>$=C9"?AqSɜ${)Ý>1WGd:Du4ʑ"BqV4 H=J2AL(zʕO*!t2w6D7VW pĉwPӡb zEj =kclx5}^g>G^kE^'Hv'CRΛ Cyb7 D@B!BHJF\\s(/+ DK8K^~ KQ:UG/%ΗĵSp;X5A_e'}\r^Z+fOaSl46AZٕd m0OׯIQ-D)kh|\#璓⡵;^qNL> K=k% (s)hX͠ F4DO^׎%%i1a:t@'BqZ%D {; Jc KgWESW`=CvOY~D%55;G1YegPjbix%vՉT<O@XE[OsMh}o?'\̠SS;v];VHrǞKD{e9 l(9oumyDLA&9s&gt1U?gM$ Osa Q"BW:iB!B|&!B!$T !B!Z!B B!BHB!BHB!BBB!_Oc*܂ٽ m]Oi@a>Mmf y臌M{hNF(̓(9z{ߙ\Dſ``ޯ/*^3';n&YE#HMgٯ� ?rBbLqW3hpl54.^71Nm?d-ȚrbB"uQ[Q޳1#C!BCfrbsZOum+(O{i&HDc`i؊F=nfZP.`xl@+ٱ!Wvt ps3Ï+%R>-&o#ڿ.Ys (@GH5g߆z&7Y'ߌ/lZW}1;1kC{qDkzWju j#u= K8" Sh\)A ]1>B!]3=kx]1Rżʍɔs]?lDR^YH㤝5Pʹzʆh)ĝgEoZEc:B )CQrXBQYJ8w=_]A4aþoMBx}0Lw-1b1flCYgH?ی7Κ&lC&X;jGcB!DЪTׅ98KΦpփ?ݡڌfBNQoi4CS,fK&W)Y䴻1nfWnlVW/}W; x(,+;&Qt\) $;hx%Rf]ʈyݣ1H1arcv~ gidTl>1ЇB!CSM JR6Dʌ%T1t)87PVGl3A¿e9gd*fM$q`IuaC8ZJ&ff㶧'r./;O֫ec5^~v|g+MoްKDK<5LB8rǑu,ҝ44!F`Ρx3)*4^hu B!HOsLeNӍBUQ5gX!oΣ 篼BHS%{.nc";LlfΪ~&ZSop(6 Fu/Pݴ'2HmNaH7Ѳmo>HC;F/u1Ľ5v.?pchΦct dze;׬"\h !B~ B!BCdBB!B!P-B!j!B!$T !B!$T !B!Z!BQ1asn^Ee4v0c6G特臌M{h醲%4 I5xg4x=6Qp/Kng+!P8d2rܘk[Khٖu09]͠ñиYqao SIu=uS^7Z9mdewm?@P/G!B5Bh|k#Ÿ'\A|/K7A"MV4q33"҂K}o 1S!YS.e" -]fbG^$$IⵯS 6PpV>.J7|:._Mٷ^y&OxNJVم mwP}01™aΌG!B =t_6m'&³pYiID# 4E DMxwX,DƹH$T,6XKva<;hhfAJR #*P@#F?""ZWǸ(,'Mv&ҲD{,زSb c#B!V3cr%kkike1? hhc44'3; h9i%,XqL6ӫ洱䕍B=E3;1kC{ʊ-F=N&v \h_*2?B!bo}Tf)3zJ{ tO nLb8M1f3<}%S)9q,3'[H㤝5PʹzʆRO`e77^ߝUIEx:f@V fbmvSNڶ:B!D:j>u!4{Β) b{e{w6نS`"s`Z:DO$[ sls9]OQr3,fK&W)Y䴻1nfWp9] ~-13;o_"e֥tjۓ*3ϋycO!B>:m5м1v4.DѕK)KٵznBEZ'5sqkg󒏺O; VZP:QŽb"^}j}h v[ޢrU{66,-"v"(#O]G.7sB!I}ßi@@8'^F&RSф%sZ (Rp;X5A_e'}\r^Z+vt>2(IP(f5r.9)Z+j09 qdG1Hwt R22AK#+i"ݶ vSC B!0U"@4pO:к~vU4u4C8+ht\A\bI(Ĕs@&QrޤkyD ;G1YegPjbix%z,IsIqXr`O9Xqc҉{k<ǖ $}#有] zYdaK'p8}B!-X!B!'dB!P-B!j!B!$T !B!Z!B!Z!B B!B|M s ng**Du=-k_7/<}QE?dlCOO:̓(9z9sfU4Ԕzv>eefzFH]A .~MTT_5j'Lax*?yFr kU 6=GmE J>Fg؇\@ᄓqc"Nm-++,B!P؜BS],= f58gzf4#F-ɖlْ-|0Ta NYˆ ZB![XH b!ɲ$/c[6hf$h3V[FQ7N M\TrNr/VshڳF 'mYt'k"۱oNDɦOG-ns\84}0ib&j6l{a~mQPzm 3#Jn`ECwf=vnfKqSLχ! }66P{̦2X-B)x?8DH&*)*|NB f. rBuX9 nHsYr;uul}#pbF nie89K_Ǿ')< $58ze s).f.#[_3 SxO1+x=?9q3v[5~AoE"[HŚzJ2yB!2BdbX^|nى L( (LHy'˕eWE+Jt2tK P; D_d\_9٨8VSϐ.x(Ajקh6x{(4á36#F:a=Z;Er(r$OS_VB!P[,笞)Bd&b| n+eaoǰA>Yni;81B;nC:=z.܈#}364$IDAT1@Co9{rd\a ^g+`%CAD:VUtrHrPYC VLU|Bb}޾z쌽K.;) !Z! 靏ݟFqUmtuNj Eo@|H|l‡50Jt'd1:0F_83g951^lЫo*ߢP3p>ɝߧmJ>QUToswH tMox^=6nSs#xcڍG F!Bq=RH7TJu% F1, GŔص.R _d6 XVrԣfLw9~Ɗ~9H|/[wpM!"=O8]Fe*`ep{\`%XDl-ԯq:vOG +0Vyz{5[ilO5\2WWB!8C+(XXYBV̮GIE4[Ra|0$30?Q{}zpRdF+g?gx0~a Zr\FEJ܃|/10LP:Ii"T5RJ*f@S c3e?V=VOu2&mw9n>k9B!Bzѽһ/C`MԮ bꇄ&f.E9b' 9w)T^KgZXBfz> a賩X+d6T,5J7I'dӓ aHъg)u} ㉷K Ru_QFߖ:*ιYWxȾѤͱ۪P\84}nb&Ef_͡B!?|"ګ: 3,(:gjT0:,~F>~8r]k?-bM=%^c<7д2ؕ͜!Op[62o2 ,kW/Ӊ&3n@q NR366P!B'h+Ջ/M_t2QPxLMv&Oj}ek.%6'Jq򊧩}'GAq-,F 9~_{yЈJqz~ZC+ǩg gv=B!bP[,笞)Bd&b[-| n+eaoǰA>YTٸBZn SQGƉpYpF{\u)k  -&#cg4(3U8[+yΗ,>Ӷ)vB!w>7Oƨm@iS !B[X &V>aPkrZFuЃ1ك:90$zzQб!_E`Ns]3 Pиf=Χhr΀GQ>kS !B4m5 ^IfL`XDs[-՚ߏĩ➁" IfA-zDtEk^O;Fg"u<&%KZp3AoClPJPk e7RGp>2TQ?m=.:enRI,=HYz=q"|y9}l)bB!42RU?`*D?@{h"00v0x/ӱlZEJ5U}99`tckzZ%ic菛<}!ǭ/-+~B[бG)y3K}xgA_Nז{y9n~qxvBQ\8fd >r÷䯙tFw2/Nmr ~|c/zeT/=g#FTs -q9L~螟ރa8q5^Cү R Ȏ3MB! ՊE:Hz,w7Q&<(0 * Umm9H^ukM;4Hy:Mꮺ׏>. xNڡgѝ?lVI:%C0)0S(i9݇2~IR6aCMŲ ^$駌elj7"Dų˾1٩a).d>AWdh71'cѦB!V2x?8DH&*)*|NB f. rBbsX9 f4o2 ,kW/Ӊ&3Sl!V3tAނ<%̅uDwyw/~njIh 43 GOmL:dSL 5 y⯭FObb]SDn!k):ʐ J.oz ȫ7 $58N;vm%B!&⯽fw./M4: L4}&%UA4EA4|' D8Úw? wV&L7f\PKtȆ) YkJಟⲣ~n9_=D0Qr#zfLw9 WGǞ~,bm̹9ёoɎvd|`eE4_+ށiڙCD{hgPÌmOœZ-Bqv(ea%.lzTDu/F*^TRиf=Χ8.ǯԦ;'G,Lr:)XV߳{uԃ:%6X=)aIǹg8`RR] ;:vdwؘA)V'?Tom9wIL}Xӎ3?%B!3:O5L~?_:j MJa >e@;Gqg5»FG2),^tAi9@8{_G#N6 u<&%KZp3AoC+Cf\p AM J42{N[/Ý!ΠA|rLj,ݽ'ƻI' eĉїB!8Z wo,3I.eXȑ;Hd &1mc2;ȶ%xgA_Nזsy ͜e3)c;z̔}!ǭ/-+~B[zF/o> ^Ǭ5S$O|qp^dE&`߱⛇8\pxPz%:'mch˫g /K! p [ !B!Ⱥ!FC!B'ОB!hcEYB!ž`ZNɼ!Ba}9?fhU2?B!BπLKdB!8WovFo +B!Bώԧ 0bp>B!FosԖ;&XZ$\ !B0S;OH)+8:ZX!Bfڹ=iIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/run_events_pipe.png0000644000175000017510000005211100000000000021024 0ustar00useruserPNG  IHDRbXVsRGBbKGD pHYs  tIME1. IDATxwXY) "roT-UT_m2K+KK3̑Lsdr.P\$2!0eu] y ~\1FrkIaMœ+ÛMbp$D\: Fj 8"==aza*N,:g8oieQB(C/E]z ܜ]xYS3e!tĄo>Д\cW/#sF.#0Mk1FADV!+6ne{ ߂8`:~ߏ4y4ZdH=XQ7sFaƱ8hZG$=y=G2?Rx79ptu J؀ x11Ehq#S0g>_/,-Iaߵ7!NiOiIC,{W >UShٰtĐ9+`_d6'׵Ƚ ysBm 5r5;k9 2{?=B.QsHhLtv0fD~4e\Jex5Q~4*w,e=_zO]MdFAQĬV6q($zU>_M"I@Υ~#q G #8QY%`S~Q60m./ǂ9XtƒԳz]r3$OSQqf6$ :B0<'iq>ѸqkLS׹b0 z}PaцA`|~qn]Ȍz>6K$ɿ0@J6t[ХJLqAۘ5{Sv)4kNyw9[n֭[yC_G~GqΎ$m?FUW׾Qaϧz|Q{Ջ$~Q0`"L&y\z٪._đ{MIdv3ӳ=\qj>ե}Af/pt¨vEc/NڃYwȬ΢ujhKdށ(yinN'[Mߢ7 orjjSTu} ,jZ8wḵԦlsZ>E|=Peӂ;5RA,J^5Gaۋ+Φ2.4QMyyyo# {}ڣrwIe9o|vYՏDQXK F$1l~;D]WoqUWӇ!vpksҸ_!d6V/xUmlmikkK[+*)CӦ1N\MNN`#=ϥOax콋9 WҝGTTw}ܧ\n3ATMW j?vഀ&4WTV ?548Fl52OB!Lu)-75<=;L_u öQPL&67CU2=5e܆STX2_ϢWd>dݼ'TS' 8~<uKOyB${5&Un >3}#~`7?ao9uCR(js\\X7DCPG@qZhVmO]]\Ç*#}СH(w"~t~ߍ&}/#\D+ Ҩ0 Lj n v2gOc%q^e޼80duJ񶕈MK@N; 蓻CaFݛW8^w5lC0cpO+S16`9$f֢G|uuP]{r% 3ϵo[uf!KCtxty ȳquxXg :LJܷ0h|Dͭȍۊx߃ E`*x_y} 2 ްh6X& ;@şV6[q{*ml<~_Cq( -?0x B/D{s. B!gѾҋXdtWSk<.+r<67|&/O,]ZE GڻۨE8(Hl7L©Wxc;T 3O4$Xc?(o'^0!۾@v-=hasqأGbg$Wֶ_0&q;6P?f֞o/2rD652tWdB y޴S޿=s{y9xsڟ?19 Q]X|S Ў UC,zmabzGk?Ggy= kysW?X%ʾdmm*o;/i,*iMNn{55}d^z/*Vr)%I~9/: Y$ ^G/Q?s-mʕ#HFq-<ScN *uu,+pLXEoڽ{1rfww0"Vwǹ?k5D"rDRS9 M D"?$BQ=n:[7D#[#Z!Ϥ݂=B!*{F!B!DHB!RT !B!EB!ڸ$lӑۗ=pHlg>` TuvL6pYY >s=J{*$^o !B#Mr7WInflЬ;nNlݺ5[n Ǡ8F[{\sY<|98x`/)L\nfGg\r0 zʆ }ۣrwIe9o|vYՏD"H$* ݘmmNzυ gc7/ɢ3ȀF<}7W!yΦ]2L]߳ґegt|=в.N0^A˧w0Kwc );g'.&u''J=^fɋ3ݿΩַ6K$D"HS}}OyP׽`p \sWqpnN(z?c/pwr`={ubWg(@(TA%T*ۑ{N?S' 8~<u:jB!(Veͪg⸩ op$ -wt@:m5_4Ō=`iLlz9t }>Bx9:=]\֣Zh3#P>pjÒXZ2RC?kB!(ac/ ASm$ va$*a~a \7 63`nB>\\]~aKڢG|5<4 VF%s_y'!\0<\KvM[A 2,B!/mWg1s7҄8 r>?ѳ°`9NKv$~wyy2yx%Sz3Jh\Tp-HT;UBb ^0!۾@U=\2 ްh6X& ;@l~mÜG= I8@@#π,WP@CףB!;q[aJw0tq~t(eP~Jry/<7ǵVoe1{jL(ٱ0g>M;!mb wɄU6nUKck 3ta@yKQ]|S Ў c>`DRa٭RsUTӘe9wgB]Y"H$Dou7wx=,+>ժn23 ]N\9H^ 7Cp4﷩$'Xv`r|JbCN"> o9@uDpgKvÐ w*Iezf]W![FbAo_|i|A9p91cpBO숭kO(h˯ТHm1hd[w'\v{S'}׫_jM܉˼p x1k%>8i-1B!DmU4v}!y"Оnj-`4}%fj9smR=6BcBEs`H֗gY ZOp42n5l@E@j?nAM~ ܑAU媆V~bƏǩ/\v7%K+@.ԓ&D"H$I4.? .|eƺqجTP#iΝZX ]V C;m9{S@´>Le'#(==!:l6X2o +%q;̈kw+X=tP,=7Q.ίgS7}ק_*nw";GrpB!j]ws tBdƟƺ *qJdQ ]O3hLe$"Ck@KWX!'~~ǭ{( -`VYuv% r]0| M [rWD` !#,Z\䚎S}ק_;w!ak wxX"!!sC=B!BV&.7wlŅs9Lf{R(+Wm6DΑo^Փ $ _.f;bQ4>+Տ8񸮎SU߫6) c#}+t‘B!uuX@0wGQ'pPnS"?OM;s,w\NA!5I4oVƦQ0o3q7Wⳡ^{dCD=講yT?뾊@vN5 j~$2>Efh|qi}`WRk͞fqv6M 1!_y¹nG٢PWض |gBE(y BQkckގtt+Gf;L<Sc\]L;/gg#,ol?pЦ4}`Sx 1\*d>\;WLcF&Ϩ ~$嗜+qgwp`2EM@}6F+>ҽÎ*D"H$I(!B!D-)!B!EB!RT !B!EB!RT !B!B!Bj!B!mE#dq ߂}0{XV|UefkyKsOr|@zSU-"BDN, YO$Cߙ[q!URԋ0/0kZfq;rbO)ae=۬G{͢8I|1.}ClrI}~P_11$ɑ񖟃B!b5@'!ym?zzvad;Wj(4.~Vk,)qT ҒM|['/2q@:@̰^̉z߈7ecUe8tإxd4p>5&e3y|Y dNrS_m27.;{O2V"j)V3x^>S3IĘ IDAT^6x ~=#gqݥ"2{7ۗ= ~1s$E|H$D"<eEqf6$ :B0XW|P괇8R5ఝidj/j iw_qEc&\t[9w$TRTt䲛dξt,Yn] rɘ4.$L‡f3/Ș:5YDi s wk,t,;Cu(~EZn0dT0o  ؿfN-2רIjTsۣtzثq ac]nz ~+N5G1SW5"<|&Xā\X{f3 )Z%B!bNCst:2eADɉc3r0.gt̗=(2L֕mWg>r Q52ϩVNy'8RY_H*=64.'SϟœٻA5GAY0NvQU~nK?~BmEm87aS7'ڷyQ$Nwp.D"H$S]HQj:ڬDؠޱm0%RgIK 9GExÛՍF}pPNڎ?Ahp88Iؗ^#:7#E FܸxlyT3WWX?_Mm=ݽcЪM)Kߓį΁vy6%R` $ _.f;bQG8B!TW=R}a/[hÎre!OhR|So~@Θ ;~p$ymAQ^}v{$Â-9}$9ѧ۷o_6T¤[k]G2}xzoVKcCώ 2('ē¶mMAJp{OhO%}ȡvb91ߟ}N梽HWOPAFD9FG]GPR$D"H$Ro-mv\=+mslWRpx. 8?X<k*%ѩM3]7?Be1^{Q9]Ҥ0.;p%צ˞!m֧=5FM8##)Y; {DqzMUq$yoܹb{62D"H$5FB!BԎR.B!RT !B!EB!RT !B!EB!Bj!B!B!VT5|,61[0345<^fˊO 7PT9|w)Q0ʎ`Ry=Sxl'Cp9hE.^L棍q-f\,>GNI|9#;s+.@zqfuK!Be/GO.W"ugJS %ƅ{Ϫs<1 V1ja)3fo:20:QZ}}}<]@&HGU4]8v>,YW0e/<6yuI_v*[:-ݭUZAǤ LV\yPaEdo\6)ve>SwjM>! UՖܙUС*ᚿ2y}>M2 EAGw\v7%K+@.Գ8u/D"H$5a׺rs԰pWFnhRC Tʦ:wj kjc5tY)*2`rR,7_t cLci+!p=ȩbvi}8# N6FvFW04b2.CIK.ŗڴIOtOǙc׳*nw";Grp%B!hq#b)x8ZD9Ƈ nLkW4ğ|6JQsZ*cŏ+6j2eVQq cCrt ) i.AxzwP0>0R дdn'y/mgdf6,RtZƛVZ~dC|0`g6yc1;e$D"H$u7RӋoӳ3U0lyljEIԪabA}q0T!X]mZ+`5CA+*m6n33oz\/4SDxڥ,jXuNj1c1~V]^)*RQ3xX$`u8 ^&Q-;խf~,B!u9RmМj(8|jPKf]ϔ]V&[ۺU3RP}E-j#Ja",{rϹmh\)??'w=G[~}WNy'8RYF6VU$D"H$u;RPU6> JP mV"R l}Jod؊ 6sY )ȣH|on I[PŎ&-1l`CuB4p$w Zi6e{59ni p⭲ӺqR\]aүڤ0:|%ҡFtn G%B!jILti-ajnGOKpK ׳0' ^E~vYgf;ab&} a_Zf_i(In.@HdTVG4@fal#fh>wq%>:XwL9D܃κ)zNIdbmM\byɸ~%iENu#r5^)ZñD^a3j\]x {^>[> ÓUŔ5#_B!vܜގtmTA2:Jg⹄7HxHM4QULS/Y<Jey9*9LS Tt?S%CWM W^r6mܿyzwƨ{śEmvo%H$D")B!BԒR.B!RT !B!EB!RT !B!EB!Bj!B!B!VT9b{\>HG-^GeŧZٍ\F`Z(,cbId#-?*iex3d?"2;i%1uIYɹ̚#p/Y-'$VeWCzSU-"BDNP2+`r<6k}an>zGY3BaVwrװ%B!JUg?+Nf3|NgUBG~(s427FѻٓDFS͋3>]'? {qylC__߲<9x!OQBaEdo\6)ve>Sm*F-83,ws7 ~{YGXgAhp}YaZ_^QmQ1Ǘq .;I$7ǑH$D""Ul0q'˖7n@AGϵJ蹬c@j?nAMc#؋-}>ftIo tUۙFƭMImڅ$I_Ьt?n"#MJϯ68@k4n0s%&Fn#PYQ>zǤ#$scVa˴y8V{A.mMD7t9^-]`H7y|-k? U/cB'}jhvD|X{VHHPOSB!zպŷ`[<6j5$dj0錠8qae.6F^$˙8 qc/l$% S (- |iD?M’kx'QOQm&cw>-\ 捚"׬Ef5 \h_Ï!:Y"˥O{rpvvŒُp!BaTCı'tdtW*<7Ǯg`v]/9zfA{Q4qn¦nNo&HF5@'y4*'yzǔ]V&[ްuw?綡qz,mڬ|7FGkcŏ+/>շG:IHek|sSX%H$D"nNuaj:ڬDؠޱm0%Rgg!d+EیxG,0〦q&xȎ&-1l`CϠ p⭲ӺqR\]a]rluv<42#SS{Ia8 t$K^UC<?_B!jF^Oqߩe ?x K m'_#_ׅmz˛x%m6ϚD2}7't`Æj>(LEluK!wwlȼm5O{4try`q|q\A[a$D"H$RO/~)]i,e+Gf;L<Sc]tHε߸s4ld~ x#I<<*-{LfY3i2\azIϴra\|# R ly9*9L枴w}ۣcYuxӽ:D"H$@jie-B!\!B!B!Bj!B!B!Bj!B!B!BHQ-B!Ŀ8`{\>HG-^GeŧZٍ\F`ZCp4$'xhg,:ÙG=ߙ[q!URԋ0TmCN"> o9yK}$R(`r<6k}an>*5nA"%jv0kZfؓrJGXG0!B*ULŷم=O⊓Y _i!Ӹ02/YU|?8QJ4fO%}٩ltV="b-˓t~ Uq±Kf)k}in>F-83,ws7 ~{YGXgYaEdo\6)ve>SdJ$D"2儑ϐ<h_VH[hfK͠#jsu N{l hewf2thjS=5e|n݊EIG.IAǒ% y YI Ւ݂e%msGM硶p42n5l 0z.ȭ;|C*+T/IмZ0,Φ]I n"#MF"H$U jX8wA+vg7EfYȡF*@e;5Rd0>Le'J|P;#M1!]Wqʱ]NzQeaC8\\&R3-ψkw+X)i=!:l6 Y=ﴅFkJX6v%n""!_\KDab[aڤ'٧̱X_vB!RuQ(=9:]!2Ocֿ8 St%Eu K~sG4&j2տ!k;$ou/X9ʪ>5\Vwݏ[_Is2;VpU.r;70| M [~T,0zD4\y@guO9&'`ge^ubCT0zîu۩wtK5 B!RT"<=;L_u öQPL&67CU2=5eF#VizPa/tČǰi[((`Ň8lHl 3NfWܔ3r&B"d؋7I O9m&cw>-\rDˎx B_Q~༦ `ި<,:LA[dQH~cB!*+Cst:2eADɉc3r0.gt̗=榘$2}K/Z@AY0NvQQ:IHe6#yn W6M͉mdɳݨ2}+{[?|S/~_|iQg>r eOC9 Kgdh9SD"H${+Vf%"ݧFq?haJd% Q (wA6eQ_oiUp,0}䓰n;uҡFtn GJB%D#ݴ^]Eu=1ia"ȷO{?ķᖡxbUduZ]n\U6Zw<^*‹V B!PUnQҥZp;z=Q/--\vth,zy lڙ7fzp a3s:9a&Oƺ" 7q1B /ׯ @Q>[> ÓUŔ5#Yh->/N3J*V>%AwQ#Q&޽GUY} pH^P4TDhbHfdIDATjj9^Rڛk-IMfԜҚt4y"Sf$ _}8}p毙gZzs~}6zwkwEk75n-Bᯩ8ՆDMa۩/5 5Tc+~n=W a̓VւZDDDQoc:5Ns\`K"ǞV"S?ȑw٥ξxN: ݛ,77x@XZr­Lw9wS& ^ wamG#< ff#U- sdƥ 4Qsbyg*{?!nEQEQbrADDDDDѢZDDDDDj-EDDDD-EDDDD[T t^ȶpXdSx(chmx;/l܋"Obnp6Lg:>DN$<V]q o z<WNTH>/kKm 9d5݊[ֿ,h1)yGZEב KG?}lǭ'RoI ͏40L$Q !cdu"wq!`fд h2~Ƀݟ.,rp tцK~;O}'al?9}OypG7;G0226}'++al?q-7=cÓrӹ*d7܏gb9x$~G#EdAh5>nn|>!?GG0vC5YqSZeF6ʇ'4 Nk ͏(( M-H褀z.c*Ki7уpo=jWg&LXkǸ0̫m [~WnˏOƬFz!AܐCM[GkKO,\y\7=>Lg!Dft9ن1;Jȋ+vgrl]g|uCgk]~_eb縮g'QEQEQnSmrl~(Š0O1a|D;XTnͯ/fY< +/x㑧G x!^Y&˭OBlMWuT`ϫ7VS cƚ]!,𧑥8;ދg mLvb#¿Fu;axZq02|5iv#""""wTĩGɳϲ$0f6|)G&2d8`"<>%?B2y>CwqUӭ[Chq,ݏ;" p⻹䵏Rϥw\b)Ssџ%HƱra+y)M<X0fN~WM,K?B-f&oVɰ[ wysoxk__1£җΜA3J13Om粱!-![*?e iYvK.HaN``_Fڱrk{]v2^>BwS3GQEQE_\;chQ-""""E"""""ZT"""""ZT-]Za[fH:b/@ډxyd[m2X)bgn1 t Z x oVuAт:SY(#AV V8, 1xa^$e^~sod̍p m]TveI E9*8O3joAr^5j} s?FEDDDNo_bXX?yx+&9 3%_0֧g}Gu@Sh\\#3؉ dNmkq^gek1i> U%96N?&vS^*?2y5nF%0(_,:j/6f0ɡ~#&i+;>rH =GUsL944vEQEQB7$N ] \Toߣih{8گG;Z]9?j3>?sy/7k&zGec\z_FBp˽_"s6DУ:AܐCM#z3>,3cm&q_ZXm_;((r4]`vS3`W~4 tΖy( \-ů_ V7+sQ\ՌJoo#)rᘷ~gk̭)1,T Ep:Gj fp/|L uw4y Tv,H8|µ,juhe16kLdCi|o|]No0qN b[WHf}<4=k~g+}[YNVv&KCGfj|d\~KPF^|o;w%}E/GH|\jDžb9 yx45+8zFEQEQ5U㲽Nm)Ss!%HƱvIhY.] ;1Af9gNbfecCh[jamØ;]n, WOug?e pǚέ؍e<γy={f0H;p+Sl!-o,̡+((M @?'k/""""rG$8ikYiUP󌊟׼Zhx0!Q[: `X_ WnA= Յ͕M68˅u_lܿx^[5w""""_0pP7d2@?8#t"""""ɲp x u!pIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/run_file.png0000644000175000017510000010326500000000000017431 0ustar00useruserPNG  IHDR??sRGBbKGD pHYs  tIME-K IDATxwxUlͦ@B z"R `E_EPXPDT!$$$$I6MH!eo7 >0Go)UEر{#(u[\1c7 Iu_4s :8FL~/G@u/6|.ǡ2c1c̒G5.$4N/!:>Ky(5VL(/r}}4DDD&uXޝjzKے`Nzf6CbjRQd׆]i#"S8Rх:v:;ݹx d눈PK; #7{Ut R֌r%4]WG ?tL~W'-'be~shwQiUSF4^Li9Kڷ9888888882G/n̤-?CZ͛27XgI #ٻ nFDsyIR;U'?c2ԟ"r裁֖yw^3QѶ(,,(ۺn>ԃ~_BdD_??&LK?>Njx7HG?=FKÏ _HK z L"HoNA 'HAhL"JKg 襝W(6t"AlE\|BTM %̏ߣ&s;4Nh:h r|*/J_]Y8/f0}V@d<$uRwiҐʡT7²=\7_t^R-}5כ[W瀞3 I͇i3nO1ٍI4C CDVv%e|Jxm+{.PWΓ.OOK+[}>m C aaO8݁.M^c-23M-<(“+31@D1TKD$PofF׮]DؐmZ))j"jJ{rweIbP Mi!rByAm1c양52q9s^l9z`stSŢ]Q$8 »C \'m5 ̀i`@'!W[ן 9ie.ގ*]_:  q]{S s ܟ [΄&`΢6c1-u4{p &iu2T,QBsOQWxa<:ie>?4mdO^q?Oqdc{,1]XB!r1mo|z+)|u*WZZp;ݹx djK; #7iusD|O#=ttIk38'8AU5_(/lYg!zM!&_Gw.OצKiQt!jNONHJ~(GdH<:Jޭ>xZ?uvͿd=ڏMm2HD] GwOX]eE'L/qwu oߋ;1CD ' oc1bHDNyo =ه 3LX ?CM"ySޥ+F[puˊĿ}&5%=H' Eȑ߂&E"QF,#c1Dީ깖~cBF^{g4fܩ.-w:RG+h̝sAr"H7\dZU!jDIDWR/+g(]IH 3j)j7Ik'=D矡3EJJ*5vtDYhr:皾S-bʮuwJx ٸu|џխGwA&A>BQ~>}j(Y,gxc^'4}, k"|0o1]UyT#>"]B?FU9RbL-*q՟xSX"=j!8{ PUs'(P+F7aWzV&<dok+(73"fH׊_O0=G8s܏W~^7OI_BTj4=pBa4D c1XSm.:-'}r:nCYe|# #ېQrj7c|&d~0' bW9{1 YF=I>xr~rd$& !.SQMm\m}<;'|— XPPþCV\F<0bL`p{N $jc1nTC3Skw +چltobb{t@DEߗʥ TQA{[F ­ 9I)(7}V_kie )_mK]x߼]_)O)m%EƵyn6oދoRf`ځ.Gj9yx -K=L)FԙTT:>0r^U!ex<xn ^}?;q|%x_Ÿ[XOF},Z`1c>L/Sy#T:yh@"qbTS҄&fH/*=h[m*$6 PATXRE %k: 4fK1;UM MFCLkH%hYյiZ}PQNcBqk5͋_޼:(^6A:""SxJԛf/]٠e{hD!xPv#iGQkxX=rL1c8 Wc1cT3c1I5c1cT3c1I5c1cjc18f-{jr:"gwnV5 p1.58T74M OnқrY1cT Puջ!OO "Te :> ".ʷ -ID2]d1diB$Pp?[l1|[91JyLQPV ܻ7$[+Kk J7t|eܙ)Fމ;qpmStG\n^u"I.Ž1'@qV.1cF4bjesn|Cr*, z)7BDxw{H!-c`w0# H$j T!'᫼#ۑ?c"4cR$n~O>~j<^!bX8as!̷RG^~[k„&`΢6c1-īi~-QMŽi,)e>?4mdnkS#HvD uJ\F_M2&uXޝPZ^MKT|'zu_k%4(QJ/!Wwu{%', !9@Rt_3^?4)T[`ʼދt#n<;Gݵzu;olc0rZ͡eD[WgRi(s(raY\s.1%ZIu)};e };IGzS[O9C/=qZ귐R_Qw'a2l"ɉўTRy1z׭JdPWΓ.OOK+[iYC4"`$XۉHY??A>5s߬*Figyckghpwt^U]K!An@iG yޟ]퇺T Gp3sўc]GPж8 mJGiI JJJPRz i۲BF#\ȯa}`\{ gޘE'pCz֞p,c4>"]B?QTe[{Ud)gpO),|ekj5W~}B^VȽYת(b2lV&xPQF0Aro[/W%7ZT)L[+s5ο9#,CØyM x3a ObH; IA& tS1GiN04#Et emD0 /oCiFɩ݈G8f񩻚aœ/)7!$b^ &i4X7"Gz q&T P`Fp^2V1DGE!** QǐTnnbQnv_i 0 HHĔ|T̂mF ]"g1v~0b143Skw +چltobb{t@DEߗʥ TNo[w k"ܪ"}w-+N/۴i.o^.I}[Xׯۧ|D*ObKO7ԁ.i!sA1|'ǫ`q9Kױ*$ Y&0 2L%xBVDhS;Ww~Ǧ)]NB/7(]V ⫗7^5'AI|Uv`8E!(avgC؉1z,ĭ_a-.ac&}pЩô12Ky(]7} a3,&UEv)v""3_^Gz8g>'Z_;R:KZ ;%kj~3^$oZ) :VADDGͿJ"SiZ?Rb#oaZ?z Qd[;t.<ɲnw~](%m)iI]ia8R_@ӝPL c0ra{l_2­ȫRi(s(rܞm_8pc&n$h:K6sAE]mTDEmf/ 0 & @hL"JKg 襝W(6t"f^LDɟ/Y;Gػg]!# g(=5v$_@DiNGQf_HK z L"HoNA 'HEGLh~$յ!͟8N^@oF9Z_Mt~~M<|*/K;M"OOѽ+R$Dv/ !1P&UӡBI)ɜ 0-ϤSyQX͢/ǹBTS~뾓?J1Dtie׺;pz%NxɑYT6Elmw~ehTp7vbnq9 #qpw.v'6cǮh4JyJ-YG{*b/ E[;o+(`Gt,f4C0\$uÔM\.[.KCk&7L샊3]5X>N>NBJ?Vw##$.:^?R*jyRQQ.ÂM=i7vT֭m)|(rN:o64aqZ?D yv3H%hY%ZIwy tzW3^6M>S mQ[?-eom6888888!_r_>ϞM%S4Gqyc1X;p0c1I8|1c$1c1c1Nc1㤚?kt=K E1I5 RfOߚ6oЧ6:E <n.O kpr{+T^+Euaۡ7l$= 2~.싌[n,o:oDA!b3py Gg)cbrmpg/OH(8rNR?&>21\J;GRƒS;*OH A)Q$ۥP C 0AɯH8? w8eZGէqeHNp|l a79#_ii:ҟ.J%gîz.܅궼U]#@ n#kdx[p0PH0_"?q 9Ca3OAOVBgS|t0]_@ڙN̨$$psǪ-W%dR@{~-<0WV]W> )ym4L߿ ?'OKI{ճ$Xäs+v(mÉB s4tߺ^bV *@:EC{T[} ߳IG!Pv.(>uU] %>#~~WPy]#u%îl @م-z>|P>Р2$XW a(9_@#6yB1Q z΃o^P) ҳ(85r3-0 :EBwbۥ-zPH?XP5mU#B$n(nA89X\/؊0)u+ ?Qpj n/_,dR\!;4Rµx@!1P 6_(am4åʹae|LKY+ࢴp=|QmKj9HA7PϭkNE'`m#U]FљLlؖ[, u@W6/V]?7!;%G O, EYĹ4jcn6ífSԇpt3N^GQ3 8=30Hm\!E4zr&# - n ӗ! [n}yJ> B깚`;Js} O|$p t@XJv3(f= 5Lߥ-AR/Xw[Xo [\ɂAoPZT _<}ee@+;t+q _TQdm`*w1G*`2>cWAE\ͮ+XywʴB/8xzW.^Nuvap A}jC~k2?M,~nX;Q'(*IMlz琑/n`+.+ba =ˑ,rbNAk] _EԎqӝ+бŧ6\+ߑqn_ۿ^yc4da7pلr' {GL˘/ u BFCrK 5u[ضZ硏éH8֏uӡ)7t]n REG@B]%2%FfbڵRLku.Hm τpri09&Kܹ4fMQFh/EEGR~ cT7qqAuם-#솽@U(<Y)0 H]!ˡ7$fvLa#2 0 (5!XJG0 o {W/@)ICwƁթQmJd6ր.  Ԙ}'2 yv|8C{fgggBp~}#7'KUJ3`PQypr@~y1y{4M-D{6Գ(փycRg* mmZtnL(U%3V0PgW~P68+mZj Ǚseuiz `UH<aآ 66.ɿ"6]r\9[;D_ aT砺鋑ۆn,\pS *赀0T zLAȄG= aLF` Ν; #;-VPJ# @Wc;ǚtYa989T Ρ].{ f2A @?A^i۪dlgh~'; Kx=HmZs{ތmoˠ-U73D TJRQD[~Ǿ_ =Jp_nd -BM$<暶^,jh}TP@#  jm P;NJk`G=廉qu(Qb ]Bk̺#rhR `6&YwpR+dL!>݆ce(6 )@zcTl@@TS!iI,J=3d1?#[ǧ2T΍IO*Kp.Q* xT?lݤ]IɟY MگФl<>w.;`2;XRs\v ,? Pr.mv] {<|@i_HMMJ4[yE6dZZ+`6@h6\`'b#<-"ސ7E_ uR@Y .*W1棢 p Ad< b5 J PH.(%nyna2:MNYIڹ<-mc=!H90+;C^&Kh)ʓ88۝D~yPqeMA~Ϣ )aF#i.*ZD8W$NR0YRJt&&3 1Z6W aP£,1A zV"; ʐy)BɖbژiHԺ B[8F&nFY5>&Z2i^w:Ve(,ԌqR]\x:^8W ?݇a2U8G8FmE&.C|>:|=S)dیc*!;uBQp\`T|*f·dX0T~Q9$?i&Աp5q_?c?CCR%4Q3UH·oLe daZc)K[=(M(,kC)! [R/Cm2e_0|کsQdsrJkVLaU=||>tܩ²MS%դmCp4Qxx2kGnhD~C)I()n~%V5tߣR 5|\7 x x ҼttW_k#pBDZU6rvU,8$F# 2 ?7Ѵ0c1H c1㤚1c1Nc1㤚1c1Ys}8|' XYeuO6Jsϛkp)ѡG?}ʶ=!)sy+`*C_#JikY0:ܷ +qgV0e)\Cž=6g1c*xuti}Xt߽⪚A%dR@{~-$f+k߾'2@UgHl#am}+`!Xck^.uн R\7ROX7HWNc1-N͹)䛍5r*4p WռULa0&ބ&[. H=u UQcz Cdʣ+y2?pAN^4xA/;?*~c1yS}-RWHQP/%w\jY\PФ\4l9z>*β)396M4IS(mi TzJA [TX~WQw~+.VW",64m4I&Lf2$=6sݟ\溅BBB!B!B!P-B!j!B!$T !B!$T !B!Z!B B!BdNƈ._;/E ?cFj7f/9RŸ*;&s|Ws !BwCS*m  b䍟NΝUT|۔ݑ͟b_1˱[!he՟iB东ko#o&0;] FWV-/c@uaD=s.!Bn6P6rbxq?iC%K?Bz;W-$1: -!g#\` ]>4@a"A$XXljNR$5S+b?I/sk$?@O  m"^Qɀ/"BDɐ C!I:3sɊr* Hz;g-VRW?aqz#]CO'ף8WPR@x;0 E/}ڦ˰u4]%j#V0'ֳ>h#-7_yN'̾_HF~B!踆zjb֎cf+stsa0w0zԑ)_ewt$C1!,y=V/Ol3 z\6m6c M 192 (kjp8gu`B N+U0bc9z;bƸ1>/ce L[_]}Q 2LT$d:[! %P㭘㿷:i:"՛_0Q2ذحHE%Q2h[PcFVj? "i@$j_~!:g )OQL(hݑ.El?ej=E*0( a_.cjW(Fr }8M$5Ld=K$Bn Պ jsmٮX9Y2zp`:n@^ڻNL`t5d0E4 KvoqZ %rr*QF`,S၉p~KكQ@EIWiʨ[Gdr4hX1YN|^6N帊$bls e} /yU7ڕ{y]S"sR!Bd8I.;ǔ[}:6-ĝ!6En"{}kFwuPrս.0쇜EA_7mMxC5Q,X u EA|yS ?L'[>yC#)o 3wb1v2v`m503GI#583YvD޲QhCڐh Zt+hX lf)$<pssǠKi^?2ٝK!B<|W -W (n:Uct1g% i5bc?g:t>HIR cF3V#'3 :6ci+(j^G+ɯ)I;FRKAM/I'-QQ`shz6E0ȈHTRľN52c^7s|/Mx u ESTwsݍ:#](Iyk)n|51>:d.9(iɁDV"qcԯ%{FSc$SzeN&Ys~si 2 ұ^8C!#$vo;Hx=!B bñ` xZI۰c2Źwރ|7Q/ !Bw$T+rSz-ͩlTɄ; ގ6P{2C4:'8y&o7Wxx__;K>F_Do2khX^CtOעF};NN+VLFH}]E<R#ч,@F~B!zKwμʁ?Pb:E2vq<7R|vN&֟ cϊtj֟:@͝Q`j'(>{zJH^EF@ևٿ{㧫g6RF{Q/Z_mW?15sl~:f:Hc|@4/QT=h*7+oz0YTң3=ьTVzyq,+?C !BB )4'NWlb~JGx ۩X _o0 [y3vyzEJý/(P2=x2[_Bx#iP8)jZEV/锊buǦCl1M@1dljβ泥Pc#>5@8yAvAlMp'0s+j1)}tl̠s1[OOmt0PB~B!f GRFN:ëVPјObyсJ)_f%ؿ Xp߱28:)ҡ!TK w`9e+&PYe&ձ:sff]'t܃#U1ʰEVxca1F9E,"LHX\h 9hOE$BqP&:T"UvHG2}B :/k޷5/Bqj-#{aw%wDoؿL&Jj2]E먣0: 1U4v;z sb 6,v+h!R@@r "՛_0ÇB! _Mtձ5@U^xȩ,< 9-!VL3{ͬU4 091('i0=J||x(pB~;_y3ԛz.p-th[y&su>| !B1@ѱ!oW曩׈DULZ\} mo'yoiXEiO14`0nZS"WFHdn"oه(4!mfbs0Q=z%1)N05tu g%vOO0.F`tW%WKR ~YuxcAbQtK [)wǃb,lV=?&J!e6{Q*U\=Oh]=kߠ+1*/4uP'v{g D/H͊k~ha~A[y1zRD3OPX$ teb/_r?n2^&{d-LF^ح?Ɯşd[>cGQmCT8,@n|/+e{?lr s9vͲDD!w !B!i@uaDtz >3b Mv)B!ęjų[ߎﵧ ɱߡB4RO{-؋vb{%!CF܍Wa{wՋr1|/֣摿CT\r  #>!mj%+y1toe xo2VLp#??~$wgs̱'Tv; 7{žmYp=8{ϼyb3Yx-q:L~&2Of6q (NϤ(9ۖ%4lLo|{j|Է'h=bdm7~`s7QYS@p;c?3:Nh,3XܒuQmߧkg?8SO癪Gv/ tNls'Ɋ{'2XV~w4F}Xr J"hd,!JWO-ԯm!|4zr`Vr~k?G߾HXͮfņ<"^^yҿp(]=YK}4Y{ߖcI[!p^?E'P7ΆKh_ߟ:dqd3>YImt0PBqB! GRFN:ӧVPјObyсJ)_fsd{g`QO *[ o}Su襏Stϑw%Ltl{k7Ѭߟ"BDɐ dMB&r(enFj>Nt/S,H~h=zCLu\$Ͼ@d2T?ْ !,jt 4iNqȑT?uXMQ8&u(9Â2_}hF,Į1~%X&$531?DtɾI,[M~`  ؜NY|vNYOqAl붓j@7QUjSPq HLgl0>B! ZG <߅^e4yE>Mw<(DQŒ]džc]f'>@GF(y}3T=MB?AJ|(8Zvgμ2,Bh歁Ful7c9ZjSY|$|KTx`d&c􆇨tjӨ*``q=hUXv#,3E)ZJq j1H|p2u4^MA@o+!/x;5yWa{@ul71\nx* jBP׫C#ߘ%:9o-ōf>^^?ZVa45ǵمSC6cm#0Zuο깘hzwp9ŋni u c{^a";6B6o-X%5#ڞO!Y}*B!b!B!BBB!B!P-B!j!B!jq~(eΥ5r!BPm*5g N۹>nZ>MK^hޭ,U;µ`=E1z]D}B!7WmKOE<;XjZ6P{2C4}Yף`tUa5Xr/2cw%ncEzw]!Cb=|:%_W4UW_1<ϋɾT(E "~e/AxHJB!M>D $n,]my7ű<Т]v :`j·(NW|=b;j6dQ,(;y`mdUa`4Ĉl}smp.*[tL}mdcRu=א[R =JtG˲ ,Heeح:FZȣ.OWJַG;\8^b0^IANw8ec26?aO/C]~96h' a0b/8kqjȟ{em R]#^z_xʿB!.P}4= CwP[{9UГN*n wQ}ƿ@?O-ԯm!|T{?m;o y_e'hi }[S*Ս ײӰ00WHPGmK saCBLex-C;IєXR;a)AdC[[IdrYQʮ A IDAT#a5~)Zrr량 ~[$}n&03"lEv5{AMoRc8S}zܹv0zY\S9BqjH 'th@SrJQHP-t2dCă3ӴU=3Kx &N TLϖ襏Stϑ4Qr)?Imsk$?@O  moO^3zpg7\ܜg(f܎43[c6L3]dAH8Uj$6IXA[CA(jf5keYWST@r׃7b%ucN[O}64?^B!$TH7QUjSPq HLH;gY]1c\KV2LH9q uIuv & Q`Fͤٴ{+?I"G0,`=W0iC̀D!UKuX@Z=|ݫg!v}hzgU!6$J|(8Zv̳s\= ՊBpؔRm4 m=@+9#OIIV cNX6*ok^,j>Pеsqϟ%Bw,T+ImZk)]l5C]S!3l'`%аb̰i휪Ҩ*``T8惎YŻv,Ud$ywX4,ڽԳէKTLJc Lt̢p=L7"60ϥpL`qRΟN^lj6{Utb)Mԉ]CgZ1.IұXpk g_\,j>*8c)[Y tpxjŸ~?;gz#F)y|ޫB!{.K땅3kòPtûx͊{|z}뻼%/yK^$),8s`a!3e6cgڻV6 L 'P. { ?BqP`ȿڛ`'u=Ww>5N\ .ye f{UT̫dWoĴv߅B3!B! B!B!P-B!ĻxܞBXq7 I2Wj椟t,Vi2wɭ/~C3ԓeZ6'‘s8pMB!.emkrE v{g}U`A˝z yn?!8n;8MoR3Ժ:yA:b6 ckmeWb0`wZ99),ߘ%kFw!BB! [r?\T(E a&w!StV0դEI`ʜ/da/}\}{Z*1R ؓfs;B!g$gdTWR{ۧp c5}Gj;c5 o=g<6! S, E۞Gh{ab=dqj  ,Heeح:FZ<30ck-)fIӣ۾O~4Ǖ4)o=D=ӡ߁Ǚ_{WS5gZOɫÞh0wO/_1Yx-q:L~&]~m/v>Hit}5=YMS BSM_7PoSCC:2!Ӭ5ypT*3$TP\+h'zڼ@hp%۔/]oh3lTGʥO $gJezpg7\ܜg(f܎43XR"gCs-|0>NmeX?7U 518M ˪C}?kz79(fpFeIX;1mjB A9vB!~e2yhM#yL6JC+K?:wՖ~Kb:ʁ]hӄޑ#3`Fͤғg=.Ķn;IPI䕟`N#K`0䏞aQ< +fc2V)];~YRP[I(u_'v.~ޘ;vB!8:NrXT<`{_9~Jl6oi# jpS6M~6FR.XAyH֭( a_.c9j4ʜm;Iu` ),t|jG!bo/ʮ_ 켁ڕ`:a4 =Syg̩ 4,()=J||x(pBB{!x< 9&!iɉ坼f=E4%XO5zP+=k)XHa Dn,hq*2 ?^3M;Y=kUa녎~ l\˯0vB!f$1`*^KIhՃ>Вqtxvgӧh,>L{hpCzi"۽OB! !FjoZE$$_AZg/]{u-erc_U!BMC!B C B!j!B!$Twe)h!BHS19KpN}cݴ| } iu|k˳]!BBkXzZރ@u tPj`}➾_w=B!犤i:@)ZW"B!a6Y˰[u2_} S4]ݦ 5Ep?20<ϊtj֟=\@͝Q`:'(>{,9W{pj(;ys`mRu=א[R =JtzM»lYaBO3uFWnt^H^O?#Գ `p)obPI0\Sc5#ߢmީ~Zаo0Eg[B!j'+61Q%#AGT߄ٯ7&?s1WǝkGgIbVތ]}vRp/ JNmeX?7tLN$L%Sn"s~)8oDm"kֳ݃g!B `4a'ĸwȌ'4i3B rzG2=zRsnYNBXa2e~o8ZJU b !Ɔ'!j 5B!8k:PIOٶ6׺~+( M!ɾmb3ݿyǜ+)[E T>Cp"զ:; B!Ĵ3@X %#X$3EI4l9rp +&˩FUq. p4,j8Yn'WdpQD84{-L?xA~kEzAɱz~i]]~ҋjQRI0+0jB!3emSZJLDЬ̈́FH:t $uyK異4' ӐG+^Gт,}k)(.B>H|SQ`shzb<"#pv ź O*rͤc gO5A䭢c"9 ST-ESX݈Qw1唴\'GCSlT_%C"4ג))-%8+_YFOdzWOq%-qchւfjn SK(_8Acۙ8 !BC< (n:굠Hk$4)o+1(_N[ M8P]Ph=Eu01ݨϝP YsHf 缵7{ zG kdƼ(EK)nZCAM=^^?:6ci+(j^G+ɯ)I;F넓Ԯj .''}[ijVʯxJQ}hD{Jn%W`%(uB8r uԱČso( nB]N3qB!xSN* 4~'"W@!B'*p,X35H"@V66|B!P}Z'W56=FrU1Y B!!B!kd3!B!$T !BqjōgX \!B!LB [y.7zb\sɄB!J_lV7"MoR3;u{9lĐ1\z9v+d 3B!Ļ;T[p,yy G䔺I +&w!StV0SX>GB0%75SatR;T!] \E!}Zp+x#͗ad;i9fYXbrKMG }3]S4pz)W)ҁW'M !Dh%S;],kSF*x0bD>Cj|7?Aj=b;YacE :Lqqe㼅B!޵ZDf- $f8ȉMoT oPQ;7a~ F#h^-{ǒ(B ш#_}#t9Z~?~;LLZ-G%>" M@1̢fP5-otJEQcS;Ӄ//-7?/@Obضd2 ?>N`VbRH!Bwi&kc?#H aŵ|͋PM62Qr)?SNZ7~+ NMHzK$DN3PYe&ձe͇Clx "E:4j!"jVxca1F9E,"LH !BwkR_"c4^K@zwL&4 &Y6 (kjLQN{XPwoYu1'r$!B0`Vdڱ;v;ֵlw^^쮥3;2v hojmҲT.D* !'$!q/ )}@Qq߯/.>I}^3,g9YZb.y?8*a̙1dHt=B ]J$j ǻ9[̗XM~kĦ>Liy9pyĢ-wA~D<=+<áW%L/O1r(8I PG2 S1rTK$]Jn\<8D/ CZ8wRZ8{$PٹI}|9v_gq[ͅOq~JK_c?$ [7NCfԒ$IׄOGo5rUmt~e-L|3C3gH˪[(LP,k~ƳP8K*nqa C*h\I *Bm~C=I"]紭_ d"*> +j]OCB32@U+wQʘ@J|ܑt.˩au -ȑ(tq oc4EpH$I5!|WQh$sLiA:?L 3-Jnufmxn;uq-0qBۖH; Rs4WDhMRJeH^[>Β-w@!N;uɓ$>iI$]5> 1L2krBuD@E5 {ƚ.#(eM7SA?'.0~_KUyb?Ʃ3)$IpIɻv3K>gdgbV}y97PL$'{)&¤Le 5. PɐLf`~ dw9D }r\|"- 3}4!GL*o=~yuے$I>TͿeҳ cmqEE Hp^ 7%}`H:3CN樾Pat?Q46OY$IWU=uPv9kL]rU@a0ïXb:FrePH('ZR ɓ!X?"}^pMsV/6NT)K$U"ҷ]{ɔFS'cŅNCf\IEr7IzWO]D8bOˬ}V؎[$IW%?ʨZ?9M 'fIO$)RNՍwR=Fr"A1LM]4U' ye URANZoD3%/+ȱ/жh?>qI$_ I$}N$ItŲhs.$I+2zI$ I$9$I{.t΅$Itv:e6C$IlB3zدZ$I*Փ`z~lv~$I܇;y'WK$I}:>t$I<9.q h8w$In' 35(^t2B$Il8F1݆Af*IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/starting_tor.png0000644000175000017510000005335100000000000020345 0ustar00useruserPNG  IHDR̛\sRGBbKGD pHYs  tIME (&V IDATxy|ϙ}%aATкnU[Zۺݴ>ժUkfnT+ZP5@%!;q [27܄5ܜ;s9s"38 2QJ)RV/,w.pp[)RJ'^~~Iu6p&J)R8OlNR18*RJ\hM?,RJ)RX/8')pM)RJ~z+PGIũ Og`VEBcRJ)u'ֻU{_x{G6{ZҷЖ <i&M_׎.&RJ)TX[|@R}/@"3x^?g=s<,ީ+J)R8.}V>a[QCgKdΒtko9Ki 9gϒbgyA6TxRyC%úrҼmݻ*y}uXYoƶJʧg@~$oԉHlq|$x8~7袋.袋.܎IHS~K(Z\}9e"R [>r޿Yrϕ+~KD6ȽϗTwrJ.袋.袋.Gjy~oB=h?]%Rٓ+O]YT\(^.n-=9n"鮉"We1mEg'w-;>E%==]R$>HRm"_!>)[w ${_g$g[*0U uE]tE]t9 `{A; ' 5k;Y_zRV>qCѻ%a|r(aZزW,3v*+*GOI-Mx̤q=`/mL꣔RJ) ԃ͢yw{pWqڇQ9zXs,x2> L]뚺x 0=UgqqC.v>J)R9&4<6t{؂p KvAZZi!y%r9E+9o ["iGͦX)q!=%:׽y9)mOKf}:RJ):&;3  .i/|vi#ɌʨZFo>|g)q3.eO%]O~o mpB~3=왷o'8/+މ(j? .X&=rdZ폧g/˦7$?p>EE8m򳤟/>J)R* , RJ)RT+RJ)uD_(RJ)JRJ)RT+RJ)IRJ)RG5R3`QoO<;۴|Q}_X5dLk[Aq5_>qVǒ^ls-'^0a fGUcuvǂu`[qX~[#3~NE `AbC X{lMxßi .pERx=RTqd϶8G03)'deM!6kuGs㧯x<4mvyLus1lz(DI=AclӇAb! xz]m8fbA c MMgueym1ν>N]-;iE\H4fp!9+ rV2v*oqØpZ<>epk.w8"1#|Cycs.WXgY7;BTvLc '`huuWxq*>!# ,o1ag ~壌8c&{EJb/v{~6D(*,;Ln8i{d.p9"= N(~#BPo ^{>"!$lKNHJoeG"(Qb1~%A<~-fwyN3f~9ã/Gp,h3FYZ寴b<S(ۯ^S_ϱ(Qsӛx>&TM]0k^"Rd! k6Kyﻬ]#47 Vz|tW6 a!ʥaL%%P߲ΆldeB 7Z d/v! nsW,$M}$j2k[c4ä/d 2nOL2أ e|4χY-!mk]A/q.;v>"wm3f6Y`R BoCNuqacAf8L֦07DUȐ4"eiMˋQ/,ԅaHn楷6?{ã/O,3l!]"WI@i[Rc2>zH>J/O0Fu)XkJJ?nSU 8!s;6_~A}&",CYֶނa<\ZU/y{vP"LiHV +ȏbiQ16qWX8B,yأ!t+]F/JN/m1.Zc,JsTc$qd_~|'vE2BanPQ?"1һ)&D PʣC]넠:hlc%+Zm=d#G8(l{,Ȏ,n1rxeO}$WT /s1:q1oso`bs} 5kC~sEM''%Y'9*Zi^Rya 1Im+}q~3tgV_,2zxn>9h7Ghէ72GjRFG[ѝM2b-6]VƥJ>n0v䩍vEj2C%O{Xbq']}ގcF~=@NLěާm e[upbKŋ`{=0GE1>R㑿ffKLT2}on8twVS;:TuX5_G>GxsT%nGr V~&_8p,~"ի\Wlls6OxUn/A0dASY BrG;B# ǎ= pGGyBI)d 1ئ6N+` -oe%F/znG8ddI)1+7lCJ]Q=Zn-ďZ_qsxoRQUo3d!~vo<}w[G۱)Zs\8Gs՝9/'R]aE="Hc3~FmgLŵ/ wHЃc7iӋm]"='D5B q \J*#쳡 fdݿ ?QPK~QO aܕ 4I6Rat}7> ;aLf#Z(}!MWH,D6cnxZ(-A8w4f+ AÄ6' %XuOd0"5ش au[5GE;>!acosTO;@o3lZoUa ~`RC''h3n{qQXhTOH=&ILa96)-oh8C+&vem4.J)IR'p!׆-k Q\863ofYERGRJ)a4J)RJiRRJ)&0H?fB>UJ)\b3~b?dh mstАvo Mb  QUwD+ΝO vB>Qc&w࣒v g?166#66S/?`yTۊ8vðmbuƐqazl(v2-l,<{Ō[,=zެ8:,pxo QݶI}cOضaW~ʨw8Ա^=I8&m.hr \{tϱxwu,)2xŢWSzfq1@T9æB46H}ǃ" 2uৌsNC}.>1J7$;B.`;V㣹դp.w8"1#|svcs.W镦6'l?JaF!}EBHW Di3GvA18iE\k+w=~c~1fR,$ȒۯBf.Rc8/ɞov{~6DȞY)Z}1eb޶EA~!# ,Usv}&o;88V̫~kvÄ98 hN̹!5#\]/A.J1TKGwqlÐ11$e[$.M8co4dk *$)_(CL&; 0w>|6Dv!6fgl .bv$X S>`A(|>j!d ism&_ 6mҚpƗ-dK_j0)( oW}h-ll 1\.x :q>UhBYh3H~]Wہ9L [D ސ#c13[<*= 4xy. A_']>. )L!!j:8ݰ 3]kS*Js~U_|̽]0k^"Rd! k6\*u5?zpLdȥ. FBpG}0Ǹq.~!| 0K6Y ]էSڶmO㻏cDخw2+®B.6t?!6@L_ hhe' QߏJ5vuׄwȺa8öAZʄP!<9P k b1"=g5~:]YP(X>[U 8!s kw-Ē=vGh r!ֆ_~dG!ƃq>{< Wn?@mP iڭBi0y!1j4GŶ>:tHȞg1Ȫ‰IF;K,گNut@CD3#kyBRk,2\ʴ U+ۮFGEW|- Fҗ>M&Z}#>&Zm'Jh+NT[:6NgC^~Of0^pFU\ sE(DR)hlT?hH>|b}ÈɆ mw$Yd$C"1Գ qxC) 65BAh{^h BrF֧ŷ:z0@*=v=îƼP{ŐA.5; F{xʧ AsD.+"0G!l0~Eb)?>0r;oeV1ּƥæ c,<ۢF(Zwx&;}z(ٿZjC®-=p NHxFq?jk[(ɯm9=R[0o¤lyMb2Đ2Dغ1pSF}Iݩ[ѝM2b-6]Vƥ1n(ntraS)<м,DeĊT.mv KOH{1&5aiIo$4HKE}lzǔ96"`L3u|mߧ>mDD~% EDWYM< 1nG8d񅞀!k4 ̣1>ƣf\C ^]j YgvYdf3*кIJdq>t;f$({eO푾czK*mNfio;}1`}$e1@Ƕ!lI¦%>d9zYH c-á_o[]"< {J_шXgg=Zn-ďZRh"st cSp _m,C!_u$ veM5Q~`SZ&p̈́yP\ a>񪄺 f+BIqŽ#w0s] -. 0r){mHSYsmFr,;H/A_p86-u5`C-XޮN>PQ æJTiؾ0=_o>|+06ÓaXOgtv6xZC?4Dr2@ٌ M_e1J;.Ug;Lu! ;|yUzsD06cœ{.E2faCM)VDcDPK~Qe1jB՚PkRRJIP[ċP,ҿ{~A1Z,C8 'b>oŵxG"֐x粫@o 8O>VJ)R55J)RJiRRJ)QTH?fBW[\b3~bP;|<;ƘRJ)dRmH?fDݱQl]0|At'q>J%'c;ƘRJ)`Re  駝=s5J){zURJ)6W:aZ<>e:,xb{<银u Yd@Ŝb N/F mvWxq/>?b .w0@sM03-ȣ`˖u:9SC,GsLJ &ZCí| .w8"1#|?T9Ofq sCi uB!.Z=D&b K,y'ҳnapwtvg_cvZ WMa6s ə,}m{]ŧǘネVRJ)u9L [D ސ[+X d0FCA}֠UȽ7HpSbQ ymTS{% WiӅ]υ]Im& }A+f̓݋BA\o8=d&h-ll 1\.x :-]Տ &rW%>g[~l ·φ.fLlMA#H,B:"aK]f8G-vԇ<Â]֮+`ۓ.ӋcVRJ)+yOuLbGeP=+=zlK1 g? AL#x{R_iL͸{ضȥctyCzͣtǖbsa%I2wR?s V!ƃښPƣlǦ?0(GNl,r25Ě%WBV񄲥'Xd}iʴ U+W9RR+l+ؓ'(-mH cO_DJ)R]L[f=zG N?h7$!r+xvE2BanCBFalĀG!g7ĞNpg! 4 )5"^_эN׸T|a4Cb!vEy87m?zo5 +JuVJ)Nbl%m͐o7.^o0v/Ҷ<٬{ &IbH"l] R T!ζ3ORGJӅ(@j<,rIi|zqձ'>8zORJ)gtNzǂ,KɧEr45e"q xbḅCCH2r:<1dM0;|453lRwR7f4C!/ZrK=Đ1Jo+v*PGCGAB?ΑDkDc|Φ_NjJ)ԑp+; l(! ~!h`ힰgU6.mIg<ƫ0Ra$ ;>eE0ga7doe\0s),96;hV(aS h4ln /FI?-]"='D5B q \J*?pB.EwX~K8l9@1fE1 _ :XmmQzoRJUdgaqԁ\qMvi\RJ)IRCmfn/BͲK}ERJRJ)aeSJ)RJjRJ)4VJ)RJjRJ)4VJ)RJiRRJ)&J)RJiRRJ)&J)RJ)MRJ)ҤZ)RJ)MRJ)ҤZ)RJ)IRJ)RT+RJ)IRJ)RT+RJ)4VJ)RJjRJ)4VJ)RJjRJ)&J)RJiRRJ)&J)RJiRRJ)ҤZ)RJtG'\Oh-e2ZFh-ӱLIuƵ1=;oeV-e2ZFh-eL2C%Ձ  BIh-e2ZFh-ӱLIRJ)RkEERJ)4VJ)RJjRJ)4VJ)RJjRJ)&J)RJiRRJ)&J)RJiRRJ)ҤZ)RJ)MRJ)ҤZ)RJ)MRJ)RT+RJ)IRJ)RT+RJ)IRJ)RJjRJ)4VJ)RJjRJ)4VJ)RJiRRJ)&J)RJiRRJ)&J)RJ)MRJ)ҤZ)RJ)MRJ)ҤZ<ƖFVt:RJiR7їEP* Vo"pՈK?$ H?x |& F~0>&ca%q?j]}BR*~ W<k*\1xsgܤ꾦RJcsT4vͼ#vQ'TcUvXRJro}SSwѓ秆κ=pk(/bIdu,Su 8Eyi!k~`}|KyBܰa~O-ePs_xu. ҚjהRJ)u8rIwG$,n)R>:D9GF|c%vNK|CY&ם`E\::Y6wvIkC2;$95- '0;V\k3RnY]H^)'$tx=V&tH~mY2O ;-c4Dj[M{-zegC۟)Y{97#{ tv1T>s RDēuO.vdޔu;mU[˃!xE]tE]tr?QL?8N+3>DVxV,[}m3~_<"~E3u"B{_╿I3+uNT_x?s]ͥW?~If}ϧW0oΙ\"θuO?pNX-7_Lw3pޥ7r ;h #Ws;k6-;z _.}˲'2q9<6,xx)\k륥fA:JbLj}.:.2ŷv+RJ)T߽Rmlk mˣK%b܉iIW\Wyi2kIc_C\֘@hH+r~ʾN9ei<{b#VOb'#[A^{ȗPAb}'*V_ɹKA}XɅ>.t^/gTn"鮉Wc'ˏ7ȇ_63Jv;#._]tE]tExץr^y#?H_ dH|J]~!n0T;*'O%,Y\@[%s&c16B)hA)(RJ ~Q1fh2SǬ2 )lɍ~δlHȞ9nC0)$\հuJVR>OVkY[s`B^QPAp6idL eW|PaU_]ynnEOm5P߮<{7 7ors٘q҅kȏ_{?!oq fbxt2RJ)՗j{h&fN |Ȕ*gʹx+ㇷ]\onͪL;?|wY}+^`=q9;U;C),NyڷbMﷆ$1 zrϬ^٭e|!V>+~8ۼ~?2|z^ZklCU|qr"vќ}-MĕRJ)mH= |2>{%;ˤG[wo>Wލ"))ISRoI5 J"kx`6q S7{Vu6FԬֿp?]į;&'WԥbkDw4w[ǡ+۶O|w3~o_\MI0AQ#N!.Z›+%`\4@ Kwn'74F-'7Ҽ)~;O͓;xrʹWzB聏J)RX+q}0Ze|/ni_r|ɨξ("-/_T ȸd%cbR?+/ԋH$l onKFLd' oQͯmkSH*^OL_T䜟[֖6撵{/%?NiqȪJ?ze֡_]8z" :L颋.袋.}f1yRJ)RgiRJ)ҤZ)RJ)MRJ)ҤZ)RJ)MRJ)RT+'~F>̙1hH휘 8nFHQ09$' sϞ_Gy㮹MoӠxĽ/O^7%4\lpu8ߴq_H,#x] NĮխxn"iP=&0RZ@jz2FhXOۏQZrunH738a6;^|VRTwdd Ixq Ulٟ(.n?@C|ٽ ĦmuI/1|Br%Ғ;i(V ^zڑ8w_c#X[i1Rxk͋ 4}DXv:oCɳ)ׯ(lJ_sfR:HǼ<^Cr"6<&'Ƽ'3KH,}*q8I(qy)CNjt,Bl)]_| vtO^@q$f?yngҲO6?(IǙ;2Pf2f|AhhKiL,k kUۤ7|z$f5`k $M"Cog~Ay{Σ5AWW#ے(o:8v56|&nS>SB=֝ T5HkH':K?)n&ԽE8歴+1Ick*J[{AL]Sq^02Nhǯ4y!>fCP4Wg)%lT5 X)$O!g ;^$;l$wǀ>x ɩ@#浻I)q¨18|DmU$/h%X7!Dv7MU]y1_ax5?V/ny_}aa)3KW0gEhi? Dm~i;>V/W,/%,l&`@L0f3gC8O0Y&!'aȞ0!f I2g $@Lm0%˒7jmEB2dK*9sNPUުխ[RrhN۞wGgK:G|,]/ LV9;s~S1T(qzžw%Ond6Qq`Ö^A1oa ఓwp]g#1oH_/T> G"?`ɏ_D^4^+c-}v1R_ .aHggńAWݟllпmYsKWSk_s/rl>mkCjdϳ5=ӟ`l9$-–dg.K>AAY9.A"f/'BoS/EոNii \hmeˬM/mݣ^-/ ߉a=>>͖3~{RvQ}[ڼ& m;,';9{pfN'_{7dN ԓ1HƘ?m,G,t N9D ÁA3iPxƸmQ|%9TX3-TvǞo 9nZ&4Dt7܂)7WkHgCLpgcA~Y^ԅf3ETKW&a5 f"hF`JEmFvW} Cl譣wkAvWuNri>prd>,!N$:BG^9*֬eZWk}DHn0';;@%dNl!s >3rR|9/'ΰgqr83Hk}@]=DZfdpaQ<2wM=cWҷ0KȜVmq1e=nKgJlD% DYLl o8q IᴝY͛$bo]CW'͌-Կ<}6o.B!ra7smpbmPX:wpVI0-엕녕|&3 {>i=ޥ(>EڂONֶȞv2a&n"3vP_YHfj <~:L4UCZ줽J5iI'F< QFӾk7Uh?vX҅3+AqV7 \x,Ֆ(gL?v w5CC>RV6,سpgea؋Hដ'D`Z녬vD_ 50)W ]~9tCtַܮ)כ=FJsB}w63֭ĉ6vT؞ŋ"eH'bzՃa]܌7iٷ~W)7ώ2R1cx׻Az=\p#l9x-_,h'çv& 'HZlV"VO=.,\5{ c\`&kr܁B+Wv0`M4%fƂ͍\sn0uh엕녕|&Ϡ.lCET-ܰ9h.7|(Eb6.FXOЌHz| &Wp\t9W`uyԇ96?yJR "U,K/Ow{tњJ νDvߏsܯP 8@9jrdV@⏒;::VEk7,r0?{ ǴTXJ|83+ɛ Cȉg]]wr-"9 9T"2ď?F,.١oRijnRm?܏*!{<ݴTtc6KY2{hR@-ZDdD pw _jKSe8l"ǞcPƕrtq=(r6ME """"ZDDDDDAjcX12J.XINTFx.:|֦ޓO6(Y=2; 6 a>o_m=!($gѭT턄o޷~Eᶁ)_{ f\(_MÏsU""""~նB?f^9HVJyt' 2\8пG $'޴eY*  }g($~Vߪhdfqg#ⓔ-g>wwSőgZDDDD:JD{2>(/TLֵ+8YÍÙ m }7˘ƟҰMb&v{)k1Ksz"oXۉ ڛ ]QZg˝,/iŭ>t;y>݀NBؐ<{= 3BϽTO==],ðxh6%jEdddy]TT&CZ:v+yoYz-R/=Nt8~ 05xwd{f.~"'7,!_e eF̸r5) }}QKO @jEJr @ m”[ûmd.#fxo|ʯ,(?\-hm;i': a&m*2cG1dVFj(\YC[ɢc5Mf0p-ekɞMv! Ż9RȤ3@d%4XDDDDDAj""""" EDDDDDAj""""" EDDDDDAj""""" EDDDDDAj""""" EDDDDDAj""""" EDDDDDAj""""" ?PgxI gq(b} *m&K[ŒZفydK/{P,iaιEFI*O>TK99>1uk?= ^=MIډ.nNYts?ʿI'=W'+pϽO#sOvk41>OVNw;M|/#wVikH%cib}m_O H[v}"~{9jX""""g 8>rcfnc?2>ld9[R?;ʦ/rsW}9WQω߰j_wFIz;/ˢE]Duu5,VjX""""g`/`6~qsk4fR[?og&+Mbϭ,`j{'bmBYwP4>%4J3Lۡ|9DyjN""""g6`) {5WF;}:/?(3i&([YSųAX{9hgjbEDDDKnʣy<:^ZʒE)ktǼHrLHB0cpRǍ\i8߬%z{h솴8^/>VP($=% ! D4Р:J3/:nw 4o'{甇ǞL|T\y>bnP;k>~J#)(Sd/6/xy=<D/|'YwK9J&a-"""rVxh䊧`b̜.mtddui6?h.I=}#\1b5eLYfʉt2o2Afgg .7q3b4wJ364Ӝq7u;~̳MjѢE-Zh/O>0Yg㱗X2vX ZūO >@LwR""""29|YUY<Z!""""mG6+<8_U(""""M'Q?)Fݯ20J *.""""}h;@QDDDDRkM%2YL?4V0=Ѡbj`)0䩼EDDDC 830ڒU)H>IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/prompt/tor_commands.png0000644000175000017510000012034000000000000020304 0ustar00useruserPNG  IHDRsRGBbKGD pHYs  tIMEU IDATxwxU!!^ņ6lk[,X]ZֺvE.6PQ)JdH<̼s===i8`ĠP( BP( jJdXo p-pҷBP( BP(~| ,9ޤw + BP( 49u,I\yP( BP(Q_zGKG mpߔC#v~(?ڼ$\E[EVftь=TGE6.Rhb}3]>/[?ߐ;~mr2oTwxe#crzCT:BP(ZØ_euI߾E&q)fq܍D _$]X7p8p8mB➉*tub3E#%bMZ!DXxVЁPqz[s\~iag]!sx3׿MxDx眸ryxx#ӇDj&WVĹ{!Ķ{ l]x1:!cON>_r! ?sÃ̇>#\{πEhMk/hxX$&cĿ˅8萖 .6Q=qfP3=!^N3!Td.2mY x0G.[Gf/X/g]k% q-j'&DjǟI#@c_Rԥ.u^n{ZrF 'ψ{;0fkUȠȟ&?XZ;ԍ|O_r"z `.)/ eTtdOH=g*Sϻ Fqsc˖of_L/ Q99W쵶+ .Mj缲O? 鯯൹,kgw\eץD-m|G!\tyߟТИ]7]RZP<݃X=$uٹw.s9̲x&bǮCq Bl*v?p9[p%lhȬO{Ws{G׺֐ȬWaƦk8#-4"N汼N>&SNq-/BP(g9g_^7a5ɺ4˿½_d0ezGShvv\Y\}b4]ǀeB&)n4b2]Bn-E<1./aɧqϕw<%團HΏK5\ y)5h sf&QU6;ٹk/%Ƶ3(lz=tu$wuy+Vy_lACOXr6a1ό1f~G̈arB d1؊]Lxc;%N\?𯋳 ,YVB~t7L=YVx<4~cwrz{y;9]X禱h-o\koAWLp>r,Mu/bO命'S̍CR_[HfƫqK$o/cL:14RT$<=t2 &h#K_幑_qşޣN yHf nfUrc27d~!ٿ B 0;c|o5qN,)7IG>| ˔otjl~p('_^9횡cHL9 ~*/ B]0ykSr~K~phAȲdtv]*V}Wa:yb!*^'7׊ 07݋9S Bl7šֿ[).&yԐ!aŢF!rعbLb،SoBGĤXe.qrhGbS:⻰D(/ xіD]EdbO]&X}0bgB==Z !ĖDAv 9I\wOD3ڼȿ_.~B#utMU Q*)L1ⲕ>!6( NoT ~R=Q<_$D'g(-P".*<خu"jy_(RLTۥ03_<#%,)>:QꒄC/uBlHk"n !˕o;21YSrMGdʑvHRԥ.uڨRL1xWebHMQ]9\{'Rh{Vz`?Q_Ăm"n?-<3>j~v0C?aHf%abTӮ 6|>k<373ѡCbz<ƎVF@me ~voa,Sns-OCxaǚBȜ2V9,N=T{iXמ4#}>叼V[8%:^|tNHˢànˠy[KhUf#KwxNM%BMf }W~(c/'pLigsaz!ϟ;~\ùxQ =/FQNfoj+!zF?dfoP|q }я~Fpb+yf+rotw$laͅM_?r>&S1Ǎ- BPvI11G~`&6UPP!N=rygo0k˗-)60Ox;7 ԱwVIħ)20=9Tڑgr<6(fsg>I][Ϡ9鑵7+{ . T9H?D+kj†_yqe,z}nձB6#IK v(\x7ݹņepČ'82o. Jә}u'#HlG⍻kxyfJe!7@-LNjs+xfZ9IAӸ[}Y&=??g{X: D̻t9?UݥVȞ>+㵗7ʿ]Ou+,%bsѽsU7|M<:zR)hnʊԋx3b?\530ws}9ؾmuqkm'ry۝|!~7P`?\ȤƗNen_eC< S ۛ}!;JBl9@@eʑ )mS`}i8 L92q'-K  B![Bt"YX,3w=җNDFloQW+V:GdnkpFo;)d3-qOB~ ZpoENcs-9ߊ.Z>_,;QU,y"o.N[P#D3bTp&Bxmډb=M\:wxfZ|&WWL),>|:qjwXl !/O\f۸D91R[vQcЌL\a+,?y;:1J񯥻EECΖڬp¢ۧ;_Ň%6_D%?Q6?B{co.c s 6E {B#NSИ)n݃}ٿȵ]ƟӶ뺋K{X};gn;W0H }w"mO9'8H7k}a>/[?ߐllzQ+*K'wpď~|LVt(ҏDRԥ.u7ti-P̓LfaRN~c$YYRBP( BPN@і1s93l;I/YBP( BPX9Z'=wy{SBP( BPtO+ BP( wZ)V( BP( J BP( BPIw#fz$E)m( BP( JТΧWL i)pk&$}"'e.BP( BP0t+O%qDuAL)-;f.}2uٵmlC pGdOZVNyW/X[),&c֙EEvouS}=0}xS딗6 }PL$: O+_?{YqD[5Ӱ %W`sArtɦ/7mW6n##.5ދa/ޥhW.^a>㉈Bw*ּAYI2Ks|xsf˲FsDtaU PVX{HfC7_Nbf>W`V=FLڙ^[ƧP/ٶCY[=iҺiέed9Jf|N}^!wME<{v/|GF?>&g:觲1BP(ӤX@ kZFѷ{p뒈>SpZ [cN Ӈt(ʾQ4m}2xIgވGlw[AtV7|>nj=QuiDr7i)-Zk(ხ iڭ&^GL9QWح8c/M9܂}c LÈz }SR;4:DG"N#+ϰtcoy߹@h<)!3IbľIB9{B0{B'T_Bx|Oy"lddVQb>5:3g:[+j)Y28A0JB2}Y.?zJeK9{tKոU }=$Q6Yy}- %,kDt,ha;Uk_(XɔN9td wJxk>ȱĄ٨_sh02] ΥOG'$bG]I^t^5%Wn.,HH ƱEsJ@Sٷ7ʟOI*>v~W {ߏJR[PF /&mr/h3.-^HOp*r>yP[CڿކՇɄsx|LF.Xd!rƙ,CwR"|-Bz#"1]QM14$%Qݳ%C,?B~W2mo_Xfj=ϟH\gTH2 yL @؍d&Hel!8+<5q2!oFB2L9S->P(  BbS&[5D`{#1]ϵkAm>}=Km5D$ĠCYGo)lƥEM E(&BGFJFe+,a^nے5kU3 Zr߇^E;ޮ<Drii T}z$FwԀ5t*ѓO 'bi$f3$\jE/{5|O}G{Wٱjgv8sN.MU-m nl`:tGeH]"v}"11طQv YUSO2(]ѧ\GTիܔy1r|ÿ R5K>%0Kǟɔp8bKKP( 3)n;@ڸv̧͉?S(&a u^(y%v7xF#f [ b0䦝l 4֘5W#0` gE;ڽ@.-R'Gڮ6lls BG==yY IDATh9X_j'_Whu {. m@C}hwFmBCQFk)ۺ Ӏ%cic`zr{gu$$b&)C朷W@{PE *ƃk o.%ͼs|!u$~Z뿪vA ?Jg@9GÕyFv.b~6|LO qCעÀ&cl7,9sP( ⷞkc *~kvX/a%]h&C&{o@q3.:Va<.yS0-2vv26(Sy6VEWuplyU.da]xo,QUV#tX7elz]44mdG2jռ%!o r GNܭ/>lJHG0Bz}| %UeD@UcyM9̱M#i|:t! \U׋ha"$T"v#g@LG~m{٢3XzX9uMLj DG.-%L"h(ɣ3i\y `L9FgvEFBoWhwH>/Hܐrc|M  8( B'v>gصb }{eBRJANLAfZ$8+W!{4qzQ'_2r[OpXb2Oǔ3HpHLpHTU9:v:\KGY]o,\>$΅0 f! WBEDCpWADׁ'Qڕ߂9&lŸ+3}>{)nLFvJaY&"a@e:Be;=y:;Sl-n>Js>C/MimMEPy3$u-݄Wʦb:חӶ2}ih3\(*7FizL% cĶ5OTyr<Fv&avm"G1\y!,$nHS: O5P( 7k!'>|Okź#HwĘ$+gƐ,Dŀk{n=u8jǹ!6ϋ[k):&feL#6-ρ:Ǎ #扶cExJt:`ITЃӧZOn^BwMVHH¸!PUodd Ƽc@mt`"x]Ǯ$/h>/ʔotw$lATj%>&U1Ǎ.-GLmV(  rlr )ntWh!2\y³'.=-olRy sr8v2aICU9 SLpc'ivO' a/ѷ:{&^೮h׹dL"*J*9z4t!IE7输)W-rG .!}B+^ZE~_9j# I`L3 i[ 嫢jէĞw dOX{ hD z݁fJ 4|b-uTnՕu9ARj;!pU>;t8B3}/ t9 h LgDZiOK cS@%"M4K7x8ѡL_m'ri=FbPPfMÝExȗT$dQ*oJ> *G7.o -`ߐvg.c2 ῟bO+ B{OutPzw/1cJ%zMwJ]H^f R]KїQojRJȽ҈N |\OSoC1~wn_4f.NXaŶjrJ ?ǾH7́za5246 pog4}Kg Da>Nʿ{r|9{ o#'n0 hy])UC|TI⨳?/@ ߝ24a &X WVJi?u5i$} ׄ&y/Gpjh1o>%_=c/HpP_ljI+.,zM?yk ܇ٲl'>eLۥYN} aP v~ފYDw HFbqT ` -'foOIGd;H/O-Z5JP( wP7? tly Zm/ԥP( BP(O8S5 OxK֥P( BP( !A譫uR( BP( ű>P( BP( E :BP( BPXP( BP( + B;Cߍs-2(( BVs4s;u<-{[ jBZ?(}M{BkcLNꨉDD ;<'e_Z`%7SФzWQѻ/QXfW*Q><+JW9x^)( BMC1L"s6[Cy2ig^Cxl]7[ױQĜvݎUip6چ;عh$(ɼ>њi$}yʁp P lKX,NMu>j:)ukO7ߖW1{'܇ٲlgNIt?ckٝآnD1gG7)}o֮+Oπ!asH= [\%Z4g=MZ7 [ٹψ)*M#(ػXz,N=EGiGڦRC],H^@iϐᅬ fC6C߳{X=]/dӗ&9pN{؃}\D]}cuń?bf_m:v%s#=sv.z ?<+ob׮j8*# {7 Of*VNiQݡ2PB\ASUS^f=gqGFg\WkWOºdl%CvuIl1`NNDFÃjkޠq. |ޘB+葕IS_4@ty:2X%>\{g{M7|yUVd=paikY:oz}_Dǩe$ƖSR滺L,jJuiY x FDsDž460%'PK4Y)11Զt@>k yac&#9qw5B^щXI?ճFQCŪ8P#8s&aƀ|U MB|= %zò5RpT՟zq'; -R%{8uv'@&Y_?ͧԂ4\Lqv/ jgxuX y]] SId5cϯ7F_d,A@(#?V-d "#АLu Ďe}.1%ؕuآ~P]][B)L)DI#OR]7V]$sN)wRJ򇨵> ݊xA[&~cԉFI çIPXz سD9gfgK]=X$-XC9$JYHڷ(-h#ەQuQh)oPuHЀ?TDwbgNZ 'b $%xqWbʊ[g\4my^w4u,$g|J+]ĝq0koeǖ:&?OL|E0ٹE="KոU }=$Q6_ Yu/OWI D-3K8pdʺdlCvMo6>DOM&$DOucu~%2w[c"Z7o%o2?ŖQ'7:L~{!MnJz;ܓJ~[ڟN҇qdϣuOGf/5kV#L7c_K뢈t;:^ojd_L[ULA pc[w[ 0<h,=`q}6$9wQPڲٹ7uUX~&gÞCzOENytz6e |*FŠ7Cj 4b{Om7bɵuҏD# w*cՕ<Ӛ<aD o&^Y_ H&#x[Qsht t}h*:\QQFG9K[^'|M3#ػE?kv4$Y7 )(=}5+b]U}"11طQv YU3u_Br# xoy{Yc&=%ʽ*硺kCۏ(#"?HDF""]QE4: z R5K> #%5PTic#F6-ZQCZZkހ%i"сH֪fB7)gHi6$uQDrQUsSIW(bɸ`pFz%Բ[풊c2hn.Dp(JRIMD!`r!fs$<l{G(Yj!"'-oڽ3+b~~v'"9MG&22wU]2{IvI\G֗]?]"s>^=\4CT|"zIKc/$ ?ۧ]sqFl{iyza+Eg))M$Ʊ4C/.D;=dYD W tNܝo+"2o![4Zy{(l{/ځh(>1#FRpCHJUpח5Yx4`u6uA : cM DP 5] b{F&W׫E  >dyͿփ:QO\7Ȱ)#<؍5/UGB5yi \E9_TS넟y%ٳPwS`|[#0ƢX^ kmG)z=VңD&WPX[kzc_9z4 ٢GWA5B j>)%X-d$}cpnZfiMf\LiQ2~L)\bw'3vQHS??,IeX5CL;ZKS1VKIQc$ Ǜ2R^ݟgߡ,:[tOfZγחډvGFCy'z 68vm-dI}cqn-&.1 c~hʜKjτV~AѶREICFb* H?~_L16Ecмx+~N3} q1) c{]ǵc>[0jwGo4b65 6\^g5C:}D!v|䑍-%ӵY=ua?%Mhضx^-Yp v%;%h,/P RGX.sWϱ5>/44Bg^ M^1 MkU袶Jܙ惉-E,A"DEmy˩/Gf̆eZP_F]H\r*fnGWrSB]Q3a6pZ0#A 8kKW<%fS8Ƭ @tb$5E> 'lnVuq)|m{ TuvHȇ蝾=.`s_W PƱ$&5aIWD.\Ѕf=jN675XKXu&B2O%b>=~ha[Ԟq%Y ǖ?PUXJFgmpb/ %w wP^ @ ;ܩsꚚƙ3\HS-?A4PS Pcξ,^ u, r.uPvn7y41QbeٹH6Zi$Ļva1LOfD?M82޼X] uTH<:8+;P\vpʾ59]d:cJLWFC ;g|4AV6f7|cT`I8&ӿ<(tЧx½` G2 }Tzu1A/{vhZ{'[p[= 41ՏqOzJ8P H"[W'9Vdǿe]Y-Y@WGF>)<~)rvg?|ޛOw2i6.vЗDa1,K||}Nuwg#IR6J~'MܟgiĎAp"vГ~LRֳoOE4} DPL!e[Jpi4XW6P ѱW}h(|A, M>[1nLXъZϱk3&gY,f* ]=ˎoLETFc3_=tϺ^&$e٩gMimMEPy3$u-݄W}u}o=c<S sr^Da3"yQ:`O__^< lַ6գFg[>ȴXx˘ڍB4̀!18"1?)ȯ?F) IDATL:EWu2G;:M%: :;z=bp[u(2 &avm"ሐ@wRvO 'к:hGC s8C:-ONic}]+jLAfZ$8+׏ g_˳QpոCq-F]۫kmqub@還vɌ[^Y&"a@evuM?y7.yx+$g!1t.qd_0 QP,.o/ _,)M%;3xH 7^/`h޿yiNxsBJs j%‹] a#~OY5 I3ID*5 vO"{ED?{:v"ls4{hŁ?{wGY?p3n6͝4G6i8*-E9- EDBQ9CRA -=mҤ>?i44Vk^}5;;wg,^$6xPG }DB`pc2l%[+YQ4R?yRY8f9[jF%P5.gL _6i2f mj&`yב > S)9e;VlErVD[rhh C: 7 jX3Ǻ!6XfJRj?v]4j#c̅wIPS=@VF#wn%lu<:"k{3Ae6"V[#34.Fd~Ho cnWsn#1*29K@Io9_ZB -FXwīTK`\u᭕:OH+bt5dz4C:ʾ/chσWգÐw9-h4RXg?3K'>ȼ? 5~q,i6cJB̔Gy?JOCsMзRPgxWSʦ; XG_F7 w'7Mgٸ= ģx:Qex!4KI̾{8#h\Abf^W>n(ϰ^ܑd̆=U4hd-`Wg Kɥq 9`l-]WdwN'u:,f<.Et@KRFk?n9 y7fEA( w^82ghoGYHŒx;^!k"F-L~G|lMbo%1m8ȡel?Sm(8Z`'{\LKG{|(sdYݴ~5Dג Waο#~DtC+ӯ"-w[3јsn) C{)3o%/y={_\FU+0aޗ^-s*gʅu yNI.0Gǻ+nb*%ZAMþFjjl7i񬢩nųnHc$1o.IH/(Wĉ{YOK$ dK]pfqXv-5F)/H(z>/! |R|:kX?Ƞ*i4dwI [CօM1i޷H<#h2:Tw]LhihE%xWu6코ҙ3By$k[r"!S817!Wk`s6cqKuڮ659'_i$-hqߑyG`htDlS$ TlƔ:`*FGjiݴodfH;طNozVGDZEKGzG7XI{N+C/}u1Tg#_z?znH1l,j 9dZ:iY=QEͣa`uda͚Hsji~t|B3DǨO4C6N|xVGE: &funh1FrOLſtT47ҲL-!w],tؐv]p𹵢[%-ohN3o#[yS#(VV'HVCGvu]y\G'm+Vd(GYBل%8 g@uhl6=4\0Vʦa򯢭;QRPtntrW]Dݻpo^qR0k枎Pջ;KYLMOqObukv,|W`z-I瓟d"D6Ӹ9>zN? ԀWl1 ɱ&tիŵj*ί obFpvT=MmO)>RZ'7p-sEvhy?bYw9tR^E B˞v{2l-dj1"ΦׅQh@ckoeǎm:O?gngɿG@ ߥyӱ=0Fۿxy'Pjfgeg%2zT{BO?߻-Dtz;񬾗+(p #F[8QaatS~<IF&EkK<7+~HuzfxPAˈ5k1GqeĐhxaTE"&Πؐ-i_&2RN2R/V Uiw2՛5ƧɃߎ@}5 'WӹQ'f+M~dEYd.'Ȕdb̙N۞!81v XJPf_' Ic'%:i f>l#摗co`>{ !BObl$MIbCJŬ<+f Cx av:# 1z}KJ7&La'G V<忢jo'RB!b?J!B!s RB!B!$(B!B!$(>IiI_Cє q4\2f.%%:֍X'}YB M$Mf%Z2c' hed܌ hi>tY_t>S%--dO:=־%i{3ؿ\4Y ?ӗBy#j|Mːv%|+u4Ʌ$R~2i6bC&:ȏ77=k 93it jZߌԟ1d;#(`!mR&bI "дtF^}CÆՀY`_" q )ܟS%Ne[IO>dĽҼyZ[|'t䎦O^ 42Aqt24?xO=j'm1\BxcʞK HIuneS4u~Bea]`Y!x9dp7=˶NSvwVsbdMINޢ64;L_S؎擒k'mSH[} stĸxBR_Zޕl`oHaH&1DpTcHNԫ)Z/VOSol9}`1$'c ηۃ'X_֙!7E!dܑM 7RڅeX\owg_-)[z`WMFbٟ}Èټ|İx1!J˚'n?xeڐAԥ䏟5QuneiNhrf, -kk]}v7,\y7| FOQvWHv7[?;I8}QYb(@YCOZlF\EIh@WAǦ?QYc$gAطi-]=x\5ڋ8ksUO\֏k՗zU@SS/!Wօ!㳔{ qn:FN"1v+=;)`llI&T-aD'8דW6!F0k1O V'o˯!3Aq̹Xsomjʓu4=ug_tS@X- k~Mmgڪξd.슛IJN@жIjw2\ODq5~&-'fwgmFE܁8i-4ǣ^ǟc,v3 ֗uk uhz5}Y!fgM4}:;%%Fh~( e A6*R-ZEݫߢ9sMރ4vt]UC 4YK0Bʄkvw a?^JXkI?OurƓ5n:z}kꈄchv ζT`-/hH#0li 'a^SE06kHh/P6_'1͎*Mߠ9R*%HO/#/ijYX6S_z]w .;\ZR ))4_dLeU,OZHye"yV?6;ص9Hi_.O|0׼;5['eF &!ɼw iik08΢ O+vbe[_GWҒG_B!Qb?yz7mo뒀d }DpY>-r\3`pbpJ'u=4͸;+K=‘OcD-sڗ(ʢX{hhE=SBDzLYǑ32 Hh LC\zyqg4vD4Gs\[I@sɞs[_b'p׊mS">.z6d(CuK9&`0(: d} :ik`(v8shqE&٬Ǵ`9&`MGM#ܚmhnx;aTFA+(&Jj%Iϰnc-ɽmCØ1Z8;<՗A`N0q_B!DA1;ߣI*:3;[_psH-D_ˤ/^{Ш(Z @3lmkʆ.M6Rd)X-RRjyOp0?3ņϿV I(<Cs1_  8V?FS}͙]2 /cӸ03HMEkmXw60vǜ=8`a8|قsw'@Col2bb*a r o5:J]W|B! $OvmDcf̹$'ܴYX4@H>mopWS.xFvyX-'JBg\.kMm[ɚ=|uPu!ebe#O$ZNo`J /ЊJkXҸ2/XJ޶m4ٗ.<:UU4-xmWpz$%;zԾ3aCja1%:ip1# IlC[EqgB{'0R gGIxw<+Ie;1?i#}| VzuB! ɱvVZ\RLZ )#.C*bZ{b><"xR3:7S4MOИq#J[:*+i>F֭eyM\0ĉ7ҲL-!w]U!f>^\?Dת9Ɯ-\O0DK'u44xB!$(Ǔ!}% bVOk冡`KqNhz IDAT:tGb2Oi%΀Le$Bi O !B!2H!B!X!B!1K+ptbDۗm5M!g'B!BTɜr.ii1Z&~I(WH}˔Mrtl^%<| 2.B!wiLJL{7*@m3럥yaL.$`&zL!JΛ-uKLsɟyir1i1M~ƺ΃%<:šю4|&̶&B!xCK D`ݏ a6jg>ݱXwĝNZ4yR|Q|C3 |+=H/1Jʟ '} FşIoB!BHP Ѷ?Y]}ѷJe}PNb:hߋϛAp (֒f3/HB :6q̹X։ҶUʙP@+#р _{;0l|# 01ʻ辛:O?z˷x1!J˚'n6H?o9N9pʹ`,${XTcT]MDAgK73llk!oeB!BHPL陘 NHD%f`ƒ7Į]W'Jbp=P6_'1͎*Mߠ9 KxeT}u"/K+ Mq2a)8KR4zJUԽ-31zD=HcG; 4YK0Bʄkv\I?hmiڧf-Ş u{0 34vp`{B!G8;aL&FBLb}(D }40TV㰦OƚQKSHjLw=SL5 b2bL{!DI} ~郤 wyWG{Fq@=xL$t8Js1zbL5=VX0[!"T63ZB!B Puc/$:Ht"]_ i@w@0 {Fhs4VvŢn+(Ňm}x^'X"b@!Id+ Y_uf;P;>XGD@n/dT,ee@xkeB!Bb ֌e"(w7hi]| -ؘ< ÁEr" cxWm:ڌei_B`ˢw5u;.lw(5@KC+*q ;|)?vqn:6ݴi g_cboBf^Jq CsuۧMT6PSi#bnA7R2Ls3$OZQ'3O !B!$(ahl6=4\T>~Eڬ{0 LĹ@Ζ2H˲G0ܹwQ`U +~<IFfE+8|Elzƌ=V2Q@\~ԮXi9v=bNΣcHŖ4/vgDTGؕpESD9R擴;B!R 7 !B!T2H!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!X!B!8b# yS0k>vQJK!B!?I޼kȲBfb%!.e&B!ѯZpնT[׿R^B!B!h B!BO'hK!B!B!B!B!B!B!B!B!B!B!B!B!B!S_){.3/ mX.&-FԹOXyBaC}+tGK&yuM5kiZMށ ٔC䏙 1W9ML(^R+a˪]KHo_@T*\!B!DA!S{廈 Hqy[ A}7 fo;ȍG͘nl|OPɓ@_#OhRK!{)AʇvH*NJb.{ԲB!B^tEΎ(>}m:xU3'EI9A&k;h]$u͒ @cf6Ƅ}adpqRo&rE.#t n4;q e!B!a̘OEWakv3,Uw;Cr)nxwP]f;)j ⍒2e(ޱc6)3!1Zae!B!25 YK"QvPWuĽi[;ieEl%5~^/J`!JTĈz`H#1Ft4܄k{90FVYjY!B!bv*#/&v~ݜ TBR阃[Hˀp}%Q]6+ PHz~6:!@9?Lkx E.a1 !B!8RO'bz%lzg3WQXM{ LJ2`/[LMۮYcnA7R2Ls3$OZQkiʅu yNI.0Gǻ+{ ԾI`[GDc!B!ņTl0Oi~8_]ADL"'O~iLh<duR &g:`&sd-eΠlm3>> E?xUmPJjoA2ܐ.rƩb*q:3ԟU/R3n+j&_é>ce[nި"zD M+>кe%_Yg_wSNZzf1R|R;GPԺ|y˰ҕfP GJZ5R5YY@rR*Uz;u>j[.t\|eU۟`Ue,e,",",{e@>&_}fzfzhDurԸ2!ZGbȽF}WjqP *R-ŦC?MJ5ة]H=TkVSP|4uokRUo_.\pKRwg) J_οz\J2sv*wX5TjS]>M7N7NK:PqJM]yyjg?yu$lPLZπR?QS,}h18VԿo)SB*!uJ].U4f7\]}4a[_zҌI\աj}1k/U7_}/JwYg|vސЕw-UM^jsՂ ԖoEYdEYd9bFuF7c=ښoT/$#}ʯ^>/Ep+ԒtAeZ2qwR*~g P![;| (gRU>Pչ)}Ň۬QO38jRj=^MK)M#(6*>P{l:Qՠԣ+2 "(6Xs=Ĕ{eK޼iMMfS{__MIGnh'CXzsul'Z*1]E_^ڢ9|WPA梌Cc XxZWGSe:K",",KS0b~[^$ML :;F+´Sz}#5n;}2'w//Ȑ9i<{˪c7.#P[n5HX*[<`*dՓ`?Y?"y{<]ɷهUKY)|@GD4~O5[˷}O܉waX o9smLeKL RrH1C Qi\͚6v%%C#<)*zTb7=}M|FWc@΍-p׹v3?u[UO ڪrp/qW|77\Ȏ_:_m9x'V7ྯrs*ŖU<焫ٻ~.{w}w?y]519)JXzlǻrMϿbY3N|БwU,-z~+ ̽i@!Bzmՠ%*&ut/6&(WDJKH&/RJPusկTѮM7_M]hIe_.W=/,SIO|URj_ɤ3͘ P; sXD[^(U 'plV+_iQ;_e0iU9y+UT)joLC_3'n_z'/ zmUS)BU *U[u];t2sQ! |y˰қfͪF.[j9Zc,á>K)*UI;nȻ!mTKL)ªa6UJmuW",",r-  !NZec9gw02ƆhY˹oB! $E 8죘1ց!}6_}d2~'3Ư0ǽ]^ Y2_)B!B1t&+ndx |o~1At~pD2@E楦TB! LnB!Be"B!B!AB!B!AB!B mY2$7 Ə.4YlK61OAޅB! ?҆bbDhYu=^/b,$ɏf?JOwL(2 k"D;Ҵ)KÐ2Y%h$ Qn[FݎJbC<]!JΛ-R*/`L#cm;i~.<{u[w91=a8s#o(8i)=]O3(&u?|n$B!B .(6yR|Q|C3 |+=H;1 aV88qoDVfWM< \5b/VkcUHOxΟr'LL /{E91C2 (}I e/~{oiŏpzODC]Qm6e$.%d@TB!☂x#Mx;)ñpv_p4#Z{vdO}ʵ(l`f-}>}JWc쎂kvH0Aԥ䏟5Quneiiʇf1f G`INBb#uU]qd$vm2OXd]7'&gK80x|] ]/=nK] IDATZE5WyQslӹҬ7'8ǿ&9 i޶_#/QPPG˿|WI~-B!8@@ aeb ?QbTA"]Ԭؓnqw1aL>zC '`__a?^JXkI?Of7k|l"ap5| BWEs"Fϛiʳ  deߚ:"Ztgbcq ':9 cF b6킴|T~D)0ptj!B!P=; eڷKFuH6"\Sי4ڮl+MVXZXF)ar,Od{H :V}8λD[@}+`9皆x?L$az^?8y\s>2t¢hcB!BqZCwkc4^Or p ۞] tt5apbw9!ln;$`IC#F ;Ξi±<+j7@*! ;tR)4GTLMXyX$"o,fGo0-B!8#Xqbκ=J;3c)J0 UՓ2g59ylly,-(7̐ߤ|d6?M0qr5FB)X|xKaDjшcjWSǦUc1 FU|{)OlȤ++\jm>}|:zZLU7J)icB!BqB[mÚ]>~6@<ĉdiDCL)p?r~f|M2;}}Y/nL`ɿz}Mw6kV%}tj$Ng'^9xkާ)~b#J,u-9?Ee/ފ+zA^GѼ0A̓]=@k?m{:ӧQPݥ ȭ,)ccIHxqz("lPp}# +B!B0ٸgy-9=4< r$hh lHϱg=ue*@`b?)Y /;0ck hfж5~~*;û DG^یu^ }`@FZ!s&I/I%_ m9Cmi~q7l{*@l0plνYz{Pdu=j'wzGQ_{4l)B!B)ҽB!B!RB!B B!B!b!B!BBB!B!X!B!P,B!B|X]MV- vO'O|l>ԙٵJqFHqq}-ݓ':d9qxEp̜opMB!-b-\Cª =OQoBcy΃*;RC;}z3v ˢU'}-M3 Ş2#'eԜT^'O("'s?6Ԯ0[:ҬDwٽzua*.L{MgŊۜ6>rB!7>/:7GSK]v3k]$~0yWXo[c!GlW^1Ȟ'iϢ(+Hauq'jeE dˏi8͚:-AW=8KS[d]ɈD@L: #?{$4ɤ5w!>B߸!B!ę F>#5t|Yv#PjmD'c)pq i۱̈́~ _ghc$&SRyyw_݉fZΜOiz=c5o <;/if-)<-Ӱqd/Q;) w8sWAT<od\TmwGwu>Sx پB,`?NBow~{-xhᘇo5TbQ=cӿ,2Ji Vx{f\vb"eww^~g}sNR{񹃄wcV =\_Ɖ (^/s6C&̰I9B!B  w>F' Z,)tK66{NUE;` yq-Ī&y4#8J59}@KsK>On%տ;b;h{5+hRt> o`eudVӽ%/ҩ a{ƗBbTeli. ;EzGt24Z69⯲oS$*C]C{%uy~ƦuBT.h8᮱L;}irM"Gumt4(ZrC4N[~^{𤠛v9B!B2+XQ[qu=}Ǎ#hٸ PQ=U.k@ˡFBDvϞF-"8\sN3r7qq8SVQew~JG)#>gfyw3ChSo,Z\ 3?>B15LqU 驆➋ SBfB~c-ioZhk(9xRlXV?'-ª2M=gVN2FUl'uo[9FuMtvrB!P(Vn`57bm{IN: p ۞] tt5apbw9!ln;$l&IMfc$ۉ& 5d`27>qHt3om O>Dӿi7̌H|w3 >&NaTŏZQP2 M=|EfZNzm?mt˨1 G:]!B!L(VܫFlm:<J0 UՏ>&'mJ2ч[ PtxwHRvT^Ļmi5ty(OD8vui~bG,#MXAfi!Ji,>%0L"u\0uLSg3J$yKqmz 1ڵQP҇7ptvZp OOn$ <gd*'ݶ{MӪX|.&6QlW+U B!BI;'ځgSđ;^lUCOjwݧucqdȯ` m@H3DBr@֗ʖ2|eV" qZ11L2\-5FBCC9S )S%>O 3 'Y .&;׆U'0El0p_OޖZDƅZtTnJfo}Ja! 52GVv\}1L,YIueiQ+CsEsTеbcALvl}?񵿁Xlt$SqPX[MKBdcf[V9b+n<5kޢ@h})g&m(+JcHFB!Ȅb5]}9^c(n2*.Ƿp䝳L8g>!EW Wm_ y4W=>7E*3̻-?LRhczAj`kț3[ {~"!s.k"هAdJ%yuR8onZ'ū `p&N4+)Xp9s/$|6D r0H)ճ17Ú'FNO=e(F#ٵ`"\J^x2!~pH/U >5=L%|rrc ~k#B!ć2u]F&G,0goB!BOV邳}l8(\)l?=+s:c?z BX }zB!^Ck!ϲͷ-Az֬"^eOhOi?8,SB!32}Z!B!YK.B!B!X!B!P,2(.Ho!B!$%x*vNu9,%S_vE;eN %w%99G}B!86UVdzrfaUtRo [(e/-4O '?^AYOU q/xrP)á1r?2n]!B!ć5>/:7GSK]v3k]$~0dV+~X50‘0[UW!IZ{6J s? cfa!&B!g2=XC(ZfB]G \5Gmv45\7Rw8Q^Kp9LRKz:G\ov).fp+qH((YxW~spz2P=lO8)cf-76[);@t,br;=/92ȼA* t{1嗮%+ۅr$ޔnʼnx.qhnJY ?Ǭ+;J>v:}70:[gḧ́4v,jWGѤ`2kA_D,@qc }ijT/Nk5T,&U{Os:ϊ{)?7~py83uX Ks̞dp Xq^NILi:yB!BF@Ǥxջ-$CG#b`DRd~s0w>Mgk8 'ӰbpؒD#I/B4%ų\:}{ Z-36Jmwt!s`u_m_eƧގ4؃d}vE^F!$$H7=ITXg](( VQ|2,}_HL2WRZGp9|`l{_'=Ne7MIN՝NBMc:N.ų9nbrhOhȮڱk5M4Y!Bq6{SDM,yĭ`_F̑Ml*r5qxI";gONYw[zkq1`gH0U58[Hy"PGϔӶ 5V҃ul+3C"nWIj \Q5k>Nr:>4X!BoM}70=F#'q?Hnu]Mq?)]0FH% ?h_YQ(ӝ75L<=4:4mN Vn+(|O&J*dT\H^]OEZ[t/(0>41MPTU6B!BVI{s݈Q_߉NQՌ Ca|m99Ƀdcw:Ui" 2K Q;a-Ɇf)0m$YgV6ҜܖY8ڧ?WCqfHh2鈯1Hx ,$z ANt\n|V3ޯӴy+*/F훼>a-ڈ>]g!B!Y% bt;{Js8}'݋5jI pn,lu,_^i`H]G [+ȿN2WR^J1>N+F"'q!e0,Yq[e(6Qx9kaLW++,@܄? ^kX SqYWNoKXX+$w7L>GC$kdТ d N\@ɹ9UXC9$1L,YIueiQ+c~›i`(NlYd=N|7I>_CËw);Wؽ?Ń*e=77< b,ZU~[nnj$ݾg.8?C-UVNQlŒSB⭯؟^B|7/G-{F5өVcKd lsh\Hw38 m9-Ǝ(ū.GH iyvdYp3 Ǔ R#{Ci>dn/O7cG;:uih(Y I[zQtC5ewQV[ 32g!B!Yaic>y|mhim!B!v}8ɘ9dXQBpi tFB!BXP |xctՍ"J)êfD~7bB!B8.?B!B|<<0IzKB!B|\Th0B!B߀Oe (=B!B灛MSYZ [6 !B!HOg*ftۦ\[T$IDAT:ȓB!B:K>~37Z IENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.047666 stem-1.8.2/docs/_static/resources/0000755000175000017510000000000000000000000015602 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/resources/exit_map_alt.png0000644000175000017510000003071300000000000020762 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME杆tEXtCommentCreated with GIMPW IDATxw3};8zHHhDX# bÈ`T@) pk^y~,9{yyHB:mI>No2۵kv#26Çc[ݹs'7nk9ws=ٳ9s֭֭◤:>E{AA~pԷo_HKKgϞr-tMӨB7t/rpݔo> q\B! 8ξ}p\|>"cPn7bBki~zϟj>c|y|g,_Fyy9cǎ_O=a4y1 3uT1cSLwaܹ(ٳGrqUW yǙ9s&>|`0ŋ1 gTWWΝ;ٰa%%%=Y+k"333 /gM޽Yv-NE? s1tPje`2x<FɠAx1fz/HVV;wgϞL81(A$ѹsg.qHVMBD^W_e۶mL65L&_x ;9$I!HOO租~bݺurx!"Yj v`QV+9fIP%l& FEիx}zS6 BJd| 8HHN2qþj$Ri{d)>/7/t]DFPF\$ \{aݖ:Y$QXX ubho"$ Nم%FïзoWڶ`9RV~bFQtB Bm7+ *ᄃ!Iz'>s? 7nXv61qt-JP$8F6`Wѻ]?v d~W]-q J3;#Zy.y,Iͦ_=l6+7^sr/vvdYFeVWPYVz ${B T]ULʰZ-,[s|߯/]0|v5s_SQYYhD$>/UeŸ-1e@@ l.|‡&Fݯ<^1C]u5"SZZ ogwn}Uplʊ Q_S@KLuj^jJˈb_UdYb޼rk3A JYa+}Q"!!.}$ؓ7niPᨫr"ٿw H?8j?`~{̀'WPW`̘p;Թ-_N_XKc;\ 7ނmP/P[U<I>BNw$I 259cFЧO8t߾b.Pg59ЅN=b/Y5$QW]E08%] }^^Oy hzؿ }VȒ$oWo矯bʝ0Ȳ!rsOF??mC^TMҗ\n!S1>ng=B9¬\F1( &v;rWzjP[[OBB,xٹ#NeѺ];vK t#;TVTѦMf~&5BSCHAAQ g!*J!^w:jHG <8jkHN@6{n'-55ӽ[V:w@k  zYi%jx.p p#ЄJμ ^|M׹e^~?^2ߟ7Ԕ<o3)g rT+#KE|ZG6àE2+bEoI@ZzUDo\-c2X,sΰHsɪjB"k8NYreh=h6bǯHHt?~.Ubt"QN$^%F(b(K6JVl$99VJ6Ɇ*BűV=w;lF|\V' ҥsgGO^sthC)4: ? cL% r1r~@9s4dx%\I灇g3 YIMMካfK$$3]o -*)MI:Sa ݨhEld8uEa?"9)h0a6*vXnG=@=WzZJ,+ZN:ؘ %%8/H`Nh1!e{q5إs)mP0W`(PHeܘ K0.ZeGlJ|>+Z6?E{r<"0sB$xgdn>g >;w݅=4?nڄ!7/ң>Y=Cuy tKh]FqJ>:z FF# "@$F#^F(B$f3B&VR2Z n&QN MIEG!c ֈp;g~B ȰSL1dGeiq@yIaSdZkCPScZ3ʞp"U_ Ҝi`{ if&sXQWlq.Tht`3 n> i 3q OI;Sx(C^B^b9g+v֟@/1؟[};\ uԤŐdlnx&ନtu=}ٌt[FJJJ4H#26mٯq<:Ri|EQ98|n"|;({4Sxช6&,*Y' >7VO39>4M# Fطjz8]Ldχ97hHȲbA4@Í-I7yu;,ҡS{ zT.M6z T5, `yߡaÇrm\|ETޘmYl6f< uóO?Ũ'''3/G(ҽ[7:wǟ,Sǎxf3ݻwcK| \~e 1/,/QZZ?N}}=GvmYLe9PcAЛZsݤ%p9(l!r]MQ &c,`*IqHPE=Ը ֭ZAX7OAA!u'[mod4 4 mkMYY[ef:~۲F|155famx^+e5{4~By#9?]9 ;wnןk=;c4)>Dq,Uio(B"#/-+cK@TMeߓ̼z& Kݯʏ6&UUأ4m3#qEQ4g'I9K>z`lG)ay^TWSUUDUUee{6P~&]Rz1Oh++rI5ym ȹ=#>#;'s Ա#GDGGc2ػ!!IBA3uʝۇGxB`990g^(P А$W.:݆awR*w.4=jrjne|2g_AA$aXu|`GyqQڿ b** cFӟBa$d[ϾIyc?D\YQ(dTL&*HLJ܃`8TM Og"z$a2!>.. bKaSh4`2#׶X,`5[$e43:lmr?&LJ2D1@mi:B[PP0HJ$kXG!4AŁ{~?q AUUbbb&n m  &:AմAPHkov{z )m(4*!|F舮mlքֱ9=^VJ:gqy fL@4[t,Q6kg$ [t ^NB7IՊ"FBO੍mkViȨ0-&_˭H[t_ԼBjt4J$,V3QQFY 1կ/F-yAkMQ@Y2S׳CEVps=oFMcc:q%&|-&SMwﳘL0t]hʊ0KfĽ3FɈ_( 漏9ck(b% - &(6PĤ-zj*CU 2N+֐? ##kQYYIV4 XP;YA.aΗ k}oronM"̘1cFĀݎY$A]}-{wD(::K|Ês5ѥS;**k0*fLCz-g|>f̷YZOkL 2 qqxΜֺaK3gF(2Y;  # 6EE\4τB#) AnFcMh&!l^p@BJz*>^ӟeaDDs{6I jBBr d҇13ٍl0|S'f$I(rT1u9ꨫBV5ݗϷk2`@|~;n .dر ݺvۍۿSJO$ 5[k#>6) SGTLּVQp,Y1DEGcGɓ>9J/):6NEIaƍ۹z⥌;j*7&N*IMOS6oхިzhK^ȴ_NGCy³JRfHĞy\ƌFFfl}wC >yVao`@Ry E&?i`0Ȫ(LfR]SkX&bDEd#+`[uq>,3Lr%hhMʽoC,X0bXtI$*+8')ZQE-';lֆSϢbҙ?mƏjʪtn`Z29[I FH.|J.=I^と{!m<}i;eXJMMc̗GA08 ?> IL{5AVqPYO OkSEeY];qaZKLf׎]G.0qFF*VIx yQLkJ럐$yw-] hNEEőUz1-٠"ٷSP3hsVGۉ~m1O:"yNxh܎Z:l *&7oDZިGљjL5eZ9lludfvQ㯈ZARWo;U#vF%@$6{4uVRKnغm7N;R[]OyE5ٵ+MiiU(Li V[ ,Դ`}TV"?rTUC/4UjZx;}IW(! |Lλy-eʱGٙ4$%IF3ah$d2?^>}1t;t o֜QPP[oa`Q4=Z R3(ڗtꄢ(|W|=MeٗܙuVOӦ윽 @ sa hBpxIMM=r1 #y$!v=#'IVfYL_ۅ滝yl>= $M nYخm>~oaӥ!`3}E[o/PPXFή}$;Rށ?Fd[@l-|1W,XЎQ[75 g()'iՐKhrU{H=ɡlsPU+D֧߮ɩt EQ|}x!Hp\ gn]8BH哏_a݊l>_SC/K@(YƬ(8XFV, ^#s=gLVdYfy'O2kٸ}K(Y1脐_Qf3e%a2(((nE`$Ir#rCJr2E|>bbb,EoAKP"p9 2RP+"Wgc{h%z N-FT.]`=y" 0ydXp!QQQzI.]|9&]{5[eDO>]œoxқµw=wrmwйs'ny1t 7LK.bWw ee jyDɒLCMMLgSl-GcZۍ;o6VXW_٧`. T|Nӷm'f5Qy|7fDOw1KfKV.u7+y=h9q?^ΪU?n"; --+(B uуQ1;ut؅gX,Zy/^ +0a۷oÓ?ƅObrt]PPP`l2Ppv6#fwv%%ܵ=}zGdvv.%1!U ѫg ()-{" Mәtԉܼ<|"+[(((d݌sa2tt"@oN-DVn-<5ZZ5f$k|kd!;g/ @>Y:٨- 8# WGoOh,+`޽+W2iҤH+6oيlЫgtSX\ /1dpJ,tRQQ#?3efj~. /FLRCaQǍeO?QYUiVt]Gu㏺@ʹKq qr,CCW'/>{ҥ+yUhOpgoi5\dIAUm(|˓ ٳ'Ǐopбc;VX,V+K.O$gҥ[؝i3X stXbp$&&r}Xh&|FɈ+'~JXnF^>[{w6?nD߾}ч@GGEEC;b(li]'u Hz#I5յT}J0Mߕ^9A,xߏgaʕE4˚%I"))uօE͆`clٺdZ9hDQXf qu`0 2$MINN&ݷY rMvdffb4;~mҵSVX+p\tE̙3zݻ7'DQ.]ϒ%K /]axiF_ÚÏuɒ% 9\ QN&f0~(5{rV(mVX,f (/$9&A`';*7eZQS^F pll[AzZӎe3$%iI`4HOoSO J%$I-;Gx0``띘LFEz@seOݧ 9j\ $OL|Bc;m HDBBw9Kh2dYfDmTURPPJFF va`4b6Xx%wb!-#x2(P]YHӉ"!֍XYY~{$J&N^HA.?B>b%~et+Bd^ 4r9qun1 ؚoJ}}9:t))ەy9WwʟHwv8޺B,cGcZGE7kb֮]@U54&l/-ਫ%$Ez5c1,$L} f p饗=W]u O?s=޽{^J`c3IڣP0B д!~:2"c2GUѣwߥO>TWWcOh PSSi'XJKKc֬Yo8CM~_ :T޽;{iiPUUlڴIlܸQ֊NB!Q__/<C}49KJJDnnرcBxbzB5J|BurJm6!֭7n>OՉ͛7`0?] 5ٸq#6l`ƌAE!77oJvv6;wdȐ!deeѣGѣG8p s'//l9rdı 6l .d׮]!{"&59Njkkq:׮ Ν˄ XhF޽{ epHj\@ZZSL!%%tZ7|ʔ)ա*%%%1Nqq1~N:^:ɤ#Fн{w;ȠA4i8ݩe]vNw>}:_}k֬9==)z3:o z$c*IENDB`././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0116658 stem-1.8.2/docs/_static/section/0000755000175000017510000000000000000000000015234 5ustar00useruser././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.047666 stem-1.8.2/docs/_static/section/download/0000755000175000017510000000000000000000000017043 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/archlinux.png0000644000175000017510000001575000000000000021556 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME-{hhIDATxyT{Ωnh^@QQQi\ݸkqJ5jKqbn4so&Fdf2d- '8^" (D K6t7]U9S=g}=#F1bĈ#PDŽw@Derjp—n;9nvG7JT-?fnC￉,,*/X#ĽIW 0q;;-V9hRU9}c Q|c@ҁ1 -%c aT׽U%XP N;gp@Sc&8<&䂘CUsZP'U}XS\sxL!l(0 g"鞫'BHADo t4&I= g*C`HXw|LAZU&,W(Z7*@*D|OLAzZ_'Pv^bnH*-+ 0ȡHR? "T `b 0X1fB Hȥ"Tv--AU[NLA=Fo7A0|BHVʼn-U7d8 8nd8䁟krE?F}*P1& 7VF܆XPQB0CF>7 ; 0#zh"y-A2ZCAo9 y#:ӈMdaOA9L 0H:^6S@*+=\l7GHҖ%PD#Дs8ܠ>ਘHAP:F#DEɳyVdD"418F&G@ 25rJs0~` 4;#SОzVىh*adRwr.|~v ,971{S}`۳ GlAg8W4ȁ9B  #z߸ؘfԏ0=F;-9B\!BQ,`;1E <ɉ:Fkw>L[0`В5[5O]c $m-|+sȷRq`T4B`<=x|Bt PdE g{'gW{]X0(&>k>a1VҤ+mg@DRA.4"ghԛ s(紾;Mʈ%-uXnwc -Wi7ȝLtE.~38ȿayKkA?ЌH\XU[]GH+z)/ x 88m9х"0Hވ~gct:cN(qeGߢi 2+&wJBԡrY 'c|y/}˔\h }$?wm ~di5"fC[EoL'b* a sd'JN^ܕ#D(_6"HxL' 7U9mVI,8Jb|HTU aL[okg8Fz:il}<: ab^ 0ޑIgjcV 6pEU[D`F컮-ާx }gvG,pCc_N<:?Ob*> :oonU Hm TK<2vշOTNQ%]`gq'?vFR@}|=_Ǻ#QU1eέELȑ7π$1Z; "ӧt?_ &.|$(>_.Rϑ s)O xh'O3KWtb'[ sŃKRbS ǎpΊ \mހSd>}sa r0-ˮT֐]![ Ҕ IQfIg@ZU[CJ]pϽ?z ='?=D?<+Olr-U| ͙eoi lvޟt' GHBcHfN8v1ZV0,ឝi N~paw:J\Ӗ7L-}*PIfҔi~٪ﶊj3aX T焬ŊUFyDMS挥iضQa>_ PeO:lkO:BkE .u'x#Xlyh%i0@uq d DkޙbI^64eؓ~KrX;M&ߌ-@W>=w_Kli] 0cdҘ֓oW;֐t [&hg—[J-lD'v64T'VsHG'e5=g،6e,[[|65O`b0v7rMZq@Yf}#zc;M>@Ҙ 򬽶;ӫ^ekJS&$:7zr6aSsM>{}eh5AeƑJ5G9b_U;Xu"2L7e4-Ez7ҔӒ7KM_N:[H4'^cL1zyi6IA)D)5]--7@PSsQգS-M3dB#Dfkc"TMJ*+ؓ7;t yPck/0#Jܫ}.G>4a-w `+ FqT9@>E`x_<iO1CLlQ EG:{}WlYom l9zWtwUgg⿃Q_Z%|o P` 7TRH[㶚jB?֯L sl2ڬx rZWA6U!4U-#^M uM2_K}-6Ϝ~I`nپRb Riq٢O+)]^,lÎ{NF^/drzhHtD%?l eG[u-[gնF w"~, j5 `4YC@Uh?v7%#[{w :6HbrT 5Pm w)`%w, \3wybK_1AAOq ${=ya8T^P2}P@`otha ΐmW DFBf$ox!U=oZ{Kr+=uifNiE>ܡACu" [u? Z2T׶9ض6qfDkY~̠q LfVG X_ٳyń؁oAV4<4v; Dud<*IJk >HތݮªHCl"*0؂taGd5A^0^\W7sEv 'h&P& u1܆ t5$rxe'H}0IFtЫPSi5aÖ9:.虠bd'ѳU.SGc 1wHSZQ"u #4);(Na:rVJK6͵ )߼d0+8)ΣbV(# TDd>={(Ԍ__ϸ#CUXr$& ATv.]VZG KE8}+(, ?҄7aV-ͬm5b9ՑUu+;f9p3d'8a/IJ a蕱r܀ū:UZìSE_ 0/ْy8ng 7|eS ݯX?MH}G̎ڨm}d/N>Z @5M0i`TiDN?Ѱgn*:#Ƅijc.; P5oE% : =_I續r(WߧNT-K|%_0l}ǝ26WG!rd?35?C^1.6yMWd2G{πP} xh{VS7kqOl6m/XKgZ_(cV#d+K`^Sm}d^HůU5ˆcRJ9(ߧAdwo9?{5ZRj-ECi[QYbU[B6Y5HRJYz̉?p*˲PUI6'Ͱ\F^}c4t\9|5 PvRD 孶%z""إgmwLo6%ec*]_T8 ԡ"GYufg{Տ T? l5m\g9es{^RfDQIì/0Qw@2XnDn94Rs/OS[]WTc ]z,} }m`הό=_d.Cgzn5#x>ꇗFY%^I*C{U?7̜FBlӛ! 3PzK|Dok9UEOw17wMk&6yG4qTD,JWd25yG>^!rw;'niA!DQR%pzAzS["k;g ;^1b6W|Ĵ+[f}lT-r;7#?6Ukb`£YA34zɡ.p' ?5s[|U@2a{F};@^WܭNaEZp"s m61n;K mR"VM% oC҄ydO5̬awϯOQ24+?!zڍ"2)`"kY;?MW7ΎWp}4q.&!LFuXNIa PY\bn65$3o1œ7! jVo̓ofMh,iG u]p >0vN=~o(3=h5Y,n)" i-'x85o5V|R ̬tduIǰ\sA+Rk֯QL|pI1vGB,co0է!k28|vn;e5:S|L'#FasBIT|dtEXtSoftwarewww.inkscape.org<IDATx{tU?[΄DCr<ʈ(ދP \,ZދOKA4VBjv^yh6B-m2{G3I&9IZ]k:;{g~9>#8cS\0g\cqqb;P,RrQyB( p΀c29>,f@媺N,l怾"@Lh0W'6;3vȐ=1[p^%Jp<$H+YKN Ug M±`)5"ryܚR+L~F즄cĎQ/ rΔq/AJ"4PogeWGh(V, _ݫ<-*KGq `U:T[b6%U9X#]qbQ%6BƈztvpDeRk!FZ%9vT9ؾwQO~'QlJWW3Śn>FB7V%C,T /NdΔH26 ~mnU@߭Җt(9lyӎrFLZmϊH!LHZAAVt C۪9 TYac~g=;23КC J=D:G3$M/oȔ^icq}^ i:vm Y-88DJBmBe='<'h}`( ]"F*lO3kʷ(R>4ªUC`-j}*+8eռșL㟍96E]VM`_v(kb9UWv.]WqA;T1h-@JjIcYV;sPzI+n*[p(zpu;ZaP@\s_acV:חH^N)(~h?E@kl,_qOU;Z$`ٰ.jsj ^"" H7c62 Z8sswM~E.Siy(w _Y LP_^؎u?rCAUXGD% [|?J[̱xU0gy,zU"ߦ}TnC~ ]4nEJky퇭?uОJӁ-͊H־}Ä+ ON>MkA@~<%sMc\)[smӯ(w{Z6m6[Wܙ" Mb\rs(ɩ*\4ȭ ~;<~~y-ZˆsLa\ek~{:lpUEǦ)UeCZBwhYS&( +@lKOxM+#%Lʭ] PYNpv69Ns ?n,hECxPr *:R-|s%@dY0t"垄B0l^Qo$gAw!$љ΂ @KT"p.-ʼnHC9c9oRn"s{GDA%9w޹E|9*dĴSpAnRMa ^ӳw/y_O ]Fସbʶ{T]JJw-+qvE|!T@P+0CϾ`ׄ G[+\vZԦg=R`\NUqx @UuBK1awS g"a" O+DS:8Ŗ_rk~o' iV4R2ѣDuR7 6kD :3ܺSs]k:nvyΔz{B-:iz\rjOv\= " ՜3a 0"] rr!em&c;x6N|y>Pƍ]]mn_#Yeyn[YTx^ 3\;5Qxˡ+j td 򆜱Hs7P㙦 ymܔ\Կ;23~+]HvC,ۺgM@+;dlzcD=N(+ƒaCrzgNoZj*mٖɎT2NQC{VBէl1*h@,8Tn4io9uz" $ i֏i\e*፽sE 9Ahzi"){C%>Jg.,S 0i(ybLis eu)[CUP}ZbIHBc9u]5S;4h0j)[CŶ^Y+kz2 sP/MyMj6iE Sgv57ٿ֘!r!prIx=nUf2 3/~ 88 -RXb'*r<ҥGi`$Cd57(;}>]n}y7זL3p|X^H|T ˲yDR(i)QVe4]ߤ;~\?SCÀgP֘/c 0.`:oNv(0,% H}ʆ1*mw]@ [ᮞ-3J?]Igw lZ%VԲV bX*;RnEiTiKZ`~&g*/. hhE*ޱ) Fi`{gϛbgx8䯀-FwGGe{\B=fSUybb2}[znTPSJtm~` {t0ћ;dN $0` pϮWDO[_ 8BwvOٳɲPTiK:76sI\]/%i~gk-SF.7Q= dَwq~ ;NCv]{S)C_χ5MbB|q$T[= P\Zhb3{#,s{HG{ AY B3gl`^ok;~+♆:@B?9ZuLӮrej x66֎0[3$ɔ=I8q=n\o.ո˻ ni M&1-Ovqk-pul9"1gF LgʇSi"9 ?+:T &:Tuz`gj%pM*DSokyT"_O~r&K+]r.)j}ݱ1%kZ.ϴ3?,VȩN?<"p+}LD?7\uc-f5"D $7(۵l->_r#{]:M 5}m޴')5/uJm"|@c^5GJ@&in([0g}ټʄ%ѫ;Pцv2Xrrj]~0QhWc7D4S-uCYA^`neSLd®ȥ" c.~cX Ӝ->(TO8ztkHhXݱu2Bimn AUv* bGY 3ërMP7=q2q) + 穗1 }hTYcf(q˶3ƉLqfb$tl `U8WID$Dx(G%]=ٶ)< 򂫀9Ol)bcȻړʲ+Xg&kMN*@7ͨK !7[uߚ|!}wB0N[]x/"wLpQ{4R-zvY-{GټɔF Tj@8xA`=E߱Fɴ=l(Ւ=˷>&P+ƕ{QrHIr0o ı}ސ3[s\ 378nd$\kބbGJf~ 8.>oFڞBi 6U=>)wM}'jJ Uv`迡4a2wFͨ@)ӈ'0_Q Qeg+haT %5`[ݻ(R[޾ 7V=b':174[/d̨t%dNS?v2  ;W؅`O“ȓq~~,.=I&azup$@Qy +|QUffoVhg `P8c\cqq0ݧuGIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/fedora.png0000644000175000017510000001053700000000000021017 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs)tIME RIDATxyp\ՕuZK/lٖcdÄc! 8!A԰U,! ̒S̒P kNL;36[K$kߺ3%Ei-ρ| JÝn)STMrVםlŤ!;n]/~GgTQ:e\W:9YN\ao$xQ-a_ 't"_6 H~;}Hh;̫kwSf>޼5$p]RƠ=M=vDRDDȮ7٬k"m,{Fw lviHS@7ɕ=%gN}j-֩<3_^VĞ&js}G;8Yئ΅46Cm:wf$hx}Y"s'@"Ը mdPgfd#eF$/8ʀF̳C믩(=9߻Eӧ6aKAm,ĀD$jϙu0M?{V?BB;A oVL+.=W_O?ݫc!ÂS4̜o[ p;ydKIk A1" Y]0{wm̭+_ZG L,5.vO;npbP`f" Lq!5nLzAUdiU@W ebȭ;L&gR9.(+3PLC l1Y˝uyFXkH|:k\@bN%s.ZRnza pb'&U I2qՂ1[#ufzZ'NTd.4\dї 2. `@tEb{[9 NE9Yd TeH EGE, â02Ģ[5$. @KN^.!!,L񄐡>Kf$ )D>Q<\8 ,*E} t8vh*ș\92HN%P;@;7!*"C@DC'+b6rUM36ۚHKa$Np8*s$ sbB?s+Vk{E/;8®4bC#ɕk6zhHمH:xќI<~B* 8R9=Ěan{jݮ[4/@G=F:=i]~mwduL=th,{q;y_S 5nPycSAd h:x ?sz>}\IǬۇԃ|1:RR~9E.V {q6[jOܻdNBfDb7(%16;HӴWJWߍj o).gs -=$YN;R+4 M& jOO7$Jمت"`H 3Rh { 5lM@!2փ)%Oc4AmjdNWiSfC_h B<ڮoCl {0~U1lM/ i,{a;Z_Ru6:)($P< xysv7- 9}bQZӛQaPmć6Nőv P?qC>lΚQN;`%gqrWٰ;k{Gd+G}q<7J>$!$2zZ™0_mv 6w37_pfU= [0b2pW/B9:ᝍ{0Y,B} ې;L?ںOw X'r.rh]±o zbPk'L@EldR` dlYDKXdǨ ]^&n7;Hyp,g3+ѥE~ҰZzvJ]U qM~/DKNdGxӄBFNC~ྖ>λA֭jV Km *{"\mO{gK#hhl1+r-vsj]!Hu\yi9܇W%ýI`=2ڼ)3V*9E aG˟ V4omr9@3:#e^PKˍ !~l˰MnoY%4:nasRGBbKGD pHYs  tIME-? IDATxyd]9.g}W*dIy haiz&?`g f1xdyd[%kRIR%̛w9g'˗Zd1̛7.o߁wwwwwwwwwwwwwwwl5+(i@ or4P[%8l^')oDQIIExmkI1O&I֭VKkV=}`, I5֟9ƍ@÷ $vC>#IfCOJjk/]5{!;m۶B0(QJ !B -8lE 󳳳3ϟy7feVMlփp y_Po,?؎k[VAP7z>5?tVR 6^ {?|׽gP ːfrN젰g/\'f3SgaaaԟE_ @qwfpppOO{=vwLz9SgxxARZk^R˟UU癟RZfy_Ͽ}…<{qrrrH ~xO?hȤi%R-YQGl-=vҴ2Y\("TfHSL;̾O]CSz7qe@;d|:@.o>c$GQWS8bx@O>^z}T-*d߿-v{o{vu˃>m8Beߌ thSJar_\,?Sxǟd?T;x햻 2A9Itʠ(./}Fx:p/z~ah&JM'ɥRd9n>@σ?L =;X\@.͡ yľXQ͛_◞z景](5cwv˲ٽ{>޶gϞfQJoB霈kv>h0ę3gK.|ǾũSDE8Y8x?=;xt~;R9I-Hm#EPZI.s?Oifj*,~>Yxr#.8\c>7 i&ִESyUl r"{c0y 176} 3#;__=܋>S9yǏ:r߿w>|qR("0Z2&xOaFX%AZ`:b@qĉ-rw}/諯<#tnyo?s?oxdG)(ZZ`;ێy O~QEZqƮu]q>gnkK),4_E%"D H5 ڶgcLPCH5'+^i^پ}# ۷r8&DtZKDkJq3򣏢aDo̽fDl hSǢ0T^>sxZ}=, L"hLZ?wgD4"]' 1@К bI %mQEGitQ RkRS4ձ8)CCEJ9&49"CFJ1̝?ΎDŽߔ5 4Xڲ@n"J<׾WRR'3h) pqׁքQDaP)B%C?w8n%\ q{l8Ɂm/zo~* 7Ñ?_5F g\ZV<,Qg/0wǫb?0._`|@8 t}mSp|UEeL2I|-"@iB!,MEG>L_ބ$z{I !\D2Y78 kfgVAf8Z'IFF Q/է[Ӑ[:-)˽##diS Eh(7r]"!J&wcߊƺᗳvz wˑdлN}[wb'4sXzֲ5Hۦg`I%XJ}gZU٥K Z?%ϓ2e$ B) mqQ:CrDn$CG}ݭ%a0BC(;I!c2 sXݢ7RFo>ܿהx S/84(M]Vo C\~H'&Ⱥ.1@ ȲQNP:_[ϓ;| VGzu uUihMrhݻˋt3H)j,?ƣ;Umd:E}۷߻olVҕ+a !D@6w,[nŒr>RC^h?d {/|4f| [QbmK|( 2#C1t8(U?}+.˻x f^8s1Y(xwSfc) %:FdXv{=#%`M1ܙE;CR }n^W~IjӿgX$1׷981?}G2oewM4;37Vabq2,㠓ID:O0tn\^3Yi%r9vʯ޹wdy 8)eI>MuyX! L(LoVly Zdݹ}TJz2^B*E2%8;?diDJglIWI ), Kd| c%{qfcnEԧњ«hE-mʒu0 |%=6Ν~Fk{ rkO;oۇEs;"%ȏd@HAq,a(#?,>md g/?zݻ ݬ"&߆+PA +P,"zj`fVLV'U-\N_9Ώo~/>_f t_Vԕ+P*ܷq2]7<_lm޷ڒKO~ba*&~ `q`v=;KP,7jUի  |- #;:Їp|gG'c>hɓ/dڷmя2~02Rޔb'oϮ3hYǏ3wx ax9F סրj*5tJTתF_i|#WquI7>c f{ʳw\ϗ^ҭQ$9PqdG?J>BXLdڱB!W*o}i`rDɯ=NuȈ?ERʨb TE+: M-i ѻk;︃ÿ9N0y̯߽qql|>oveDm_X"ib݁tl9"Ri [-.= P djuTc*bX«*eZlymOMyGgn.y'F㻥g K։zy Cd"aJĆ!3jB% 6k@weߺݴunE P6?FQ/Je(QK%RVW.^6`$@CdԶm ͡~ 0 )7b[_ػWD\3/U\˫:[8خYIg]C)S`t*^:9}]Q_5 L~Y8{utBPWjUZ:RW_oil{p8ʶD5py# P1RÔ{zyXK__}C=tO>;l6;qO;z +$A8E8M e*'>QJ|IQYhV+.4h@`j1CC..%^k-X ZPK4(.i}ABRE")Qr]玏c eOk5dT Հ@g@Ӄi)CXJiRPz-k2+fIYVڲcqEt6;2;3;m۶}ѣML.\4aNoq+KPB ZC-\DF8r;3sgYUN? RHWe0JY8B.i;@`[n Z4 $^N=*8 }dRfS) H*/P"AHXdLLLv=z;'&D-BlN#LolD2t,4pcU ХjJcX^=3xMf`İ_mi'Y&Bk⎢R.W"%eD²ZϓA!~E=m9ea ^Ǯ.eRBwlC `,QyۨP./d!`&-<zaeTP*c-̡ϞE\{m%W54_x$fAx !IHDQl+!QANjpT_{Mbibly8h!i5}Y0NJ{9600XXXhT8pظcI؂iKWRar9/aǢ^${@:&AȇVe(-l8TRC^,Wy.]Uf_m"z$+ 5 ) MPfET}n.jQLL6"](d]EJyۮ]-,,|3>xgM IDATGX: <8Co*q.@2n"=dRV߂f][4\Ex,L@#Dw‹-`و[ٷ:Xs&c<@kvBɄ"yF^t'a(#ZR0VE5(#N8ξ={{o,d2 j0戊4OA`0 ,aY}7g o&3Ii8Q̂:D^y[BeĿȺ߂4XzR@xl+2RmZtjuIoR:xddwdddW>'VQt+ΟF>*d !xa@*^ ],L/_B:Ǿ|'EWkUEۊX Q øX< Kgq}T!^+sjMұ@\߾}V088xȑ#T2IP!'P-2ID+VqY4Q\,1%X 3o_>$cMk- $e6trw&iD"DƉ [\tB<%Z -4== i7 lPOOa (nyxD{MnVnV $D!zR|˖_DO_@}JFbjamuaΦ.Amz *`+#awkuݏ4ahF\$%J)33D\4RQD +'wA>%ͺΝy3`y0@!hM92$xNTao8G> g_G_:]\װד"X(r@=^+8 nk_bolg{#i~_hl5%uBJ8Qp]jԛdh!d..$'WDw,aA:D:U/S$ZЇr.'41A,CA}3Z= 2Kftw%ɔ5`G*^A [DFJC- JH$,)~999ycp]w`||+VM]a@.nF  d^VN`zl5?hܹ~^mKkFƐ&xԳowdpyl4MjEAD7 f9[՚J)Id2֭1H)V &kc XkחP]u$z@mj1b}?`^׍Ak#ķ͹ }ljyRfze}߮3 1̻1ZG$G\U)~g5{ݿ;ᷱo1|M~b5b-ÈbJrSH)ISint, mtwiF{ZL DV\s ~#D& v;zp=ua_ڷ&GB.N -?\FfVn i f2==  5 ξ k`-_m)`v~C썤HvL .X5ğ6TT ײ$O|6H$ . RJV m~bZZZzqrr2S) %%.]T/n UTνKrClNa.\RpIì4M@j_u@.mXyi#"#7l:<op}W] kџ8o'qlxt A ~xe<{fFkvjvv!gNzۡ`A`d GLh`뫻]>ն :N(cLZ H dbcDkL';0`׍w h˿sB8^hYCPxYjiMg(pSiv?"PSU0ႊǢEyfU^Q")N RnmZhϙ"m&1> $~6p(i'"D7#.qG*:]T*OOMM|駟 %=8ܴˏboH6"^VB_:>ovFEkZG h;MtgMUo_^s?0Nw>jZj hF%hou+W&jړrm-^?~'OD (3Ƶoci0Q2yEFtԅdF2~V֭c1,#猑A=K%coF^lc8:4^RPk?U.ڮul ?p;@MKEG,#"r0Bb$Dl&`;+˱v뙮ϔJ –& Vl } Nh~و5#R { EZre= M@0!J ^%Ϟ}[wm?}=H 0w5f_}u\2)ed/+q%q% 7NF鸗+ oAAޜa1fM`G ׋3[Ѐ` ^A4(7{25fM{o|[OJ?ðNQ*ݻرcǰ7c_$lz -V ; خUaDݒBeI8XHِr6Zot6}fۚd;?gEYewH@u6LLH(\ǎ"'@#X{pgy:3g>_zԵ*VՒf=P*/gIfOBQ 0ܝs5X5x@CJjC ZkK $%RtJTq@|4؋t %JzX-I&W WHT}V*CbztJ͐'9 j0,^vV뙥ڽcǰ lWc'o2quM#X^<ـݞhЅ +h:p%ØMgf.vK* =$J\=+w7" 5]Kɓ'h+wП=Tl[,KREpG TZP dN*>OYRI>I5x(^*{Fi'ϟ?ݻGn9r Qgg L;OCFkZ_k~_/)J ' #dJH+p\ 6$Jf^AϠoDҿ]0[7!HK)e-@kd*Gc8J-k<]ēl?p7 ozzw};:>Nnbk/xB쑂A 6AduAaw$:%M2Y$AWP z}!X?,z>A"#OGvuilMC87nv[#W^g saN>FGI2hk˪P{&Նᆒ[l Y!cεpA$+p+Ͳ)XnX[ wDšNTW~CkAR .?z]D%,Y¦PqpCk#HKҶybF˟ukZn_'u@UC$$2|;O~㿴Zc?h,5ŷzٿ¾4ϝvLCޘSgWs7`7 xyjjjdvv{W:Lj`?ET/|KCÀ`-pC‹Aj(cM+θ{q5藛s{ B$iV#ӗ>ZzW7nR~ܹs;'NѣǰSi*kA]CRRbXj=źr3Hx[./3DbmgcCӠCbo?[渆<7;p?PT(z7ksFY5BiC4WvnU@ !秱",|ߛm>~[OqeӧORT><ZQ}d3Ōި(u Wtp}QXX)GrW!nu Pk`aTkTjQa|&`EɜzU8PIujLޚ К0A~/?50+o(y]Gs{?!Tf mřĄ"b+KB1F'_uF~|,ktf(T?SR߼Ak~<8yc'$@2ʡ  *ZײЍf&bWv7i4Mk5X/ڱn+렔hRH(4 $1رc:CMJ,Y??DX<144~~xGtPK 34PXV ~B^2䗒u([Ľ G.$9J nF> c®rZE{ӇTjWjG>዗.՟\߾bq4\E.~79\&o 3M-n")Ga!n?;;%w6Ĝ4R $ޅ͈.T~q_ཡQ7{t6k./` zȈ߿G*IDATȦvѺe+^6C>1\"#XQudOrl??91[`kH PF3P(Ív}SYzs$,呎qC):^lu) ,f@`" sisY f[Fk܈ 61``0|r82|oW^} 8W46[`Ǐ^O,t6ưϞ»tĘ^0vzA3 aư 2ŊYj#*[HT2p1HeU cJ /s;ʈϘe+W=}SrolbT 19I)1\J !@!40F$`DH#Ũ b5McUgyu :V4CW8~z2ph6y U# l6Mvwu5Xn"V(Jq i{'ebD"HeDpX AXv^S V%YrIdsr=yR!>2rz@?z q` ܴݍSB]%@4JIM+ 0CeP ᙦ?))EŔ)qO\|x>d@nz,[?B&|܂%I#4 )DO0$d)Bi18Rț=,aVAjJaT(zۡjjj> pIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/gentoo.png0000644000175000017510000003756500000000000021064 0ustar00useruserPNG  IHDR>asRGBbKGD pHYsodtIME , IDATxwg]/=֩kVkB E@(=׮=4(EQ0 ]AB B -J{]kզ);Y^ $||fwʞϯ|ǽQ 3S!S%xTi$bm v03ic"f &Y B$#RQA;/g`x"$ťO䚾Zyap, ABH$@D+'"G فµGg'('%?(e^f%VSոc9'TqJA !$<_, spp!jX /{"% .ٺ O*w;.ZdOjvf JBq\P.IDS!tPܹys4H$501@03d'ݒ=E/޹-b:` fdAod: |cce14J߹Z-N Bp΂`W=(/؋wm@8 ";xW2#E%bժ@z_`{ڀO"ij;9 f  >E/-v`qHSN'{A_ }X\?='~p-<}g{IڕH5LM5p3c޺XJ LF`E n-d*s?6yDJ:kE}$S|w1*~C@X\+˺]y17!si uvX+3v*cbr_q`bb$H0\G0OO,K 8꣯ B()$6p‚Zj䶛gADϕ98-&k?yWtY@16>KU)PYQ¨Y0 ^1T#IrzC F[!.mպw}w>Lm7!,Su$@*1<*oN8WB虃Qf`>`֨W6BrSBN ]n\/1E EDu LR!ر;v !`=_`CBb={k+1xyR c(tvn߽t }!۷mFn -P~ ӛǰ['yN#A,bQv f8ڊ0A'{Wn W@)A#E蘡-)M8vw'>}+ "j-1!ADձkW'rKy (<`D ŠV!Z88> `N"IeЫt.cldhK(BW}{[p6=f a#MAi93C*F\WkZ EC}0a5_p44k $W@f4#]\Q-m2M$~&U|s+w,cʲ}nR@DW8.4`h6AZ&C!x;`0\)G3!X+CA ߳Bwط=j'#_},>G"m0޶=@D2{5hyd4!.KZP0M K "DkUPA:s=gN p >ĐS? RI8p Xf`16\3`>~5sa96^R1+4YN:fg!Bb"6/б㬄R bSUT!ډ&'DQ1D'Ƞ@ 8}g% 8fH!>LCkf݄.Cp[o;DN<.m,~hqc Q\fxg07,,;w2@r <;}0Aš2 Xg QVyKJDDX1jĞf@G}f`=9sm 'o臉ň xSʒ!&=VWq`a6ul:[ۘ'DFQ0܏C&: RP6ȸDv?A0^n@=H$S{+nuVW4,v2+RCT9WuVϹrt`ZC,.mz,A`KiϢy\rḴ7Tju.xO+( k]|w>S:HSI Zn:+H\Ơvl)Hs9h㠵Cq(G1UiF,@狀[l--]Bsic% 2(iu[ػ{:.ff,ZMJU] U?(l ?~_**@xެ ;t.f3[o?$8)ܦO)(A+xax>1Zm, lF}@e 28Am!IyRbi8hȲpT*8JcH zsegpMPR@ Irw{<`Cd14|\£O#%$<8Xs1x.hf!+\Qعcw]8~#gT(9xJ>'yJ1ATj6[ YA*ʑ\9&&y~Q5e$){u\vBGozяo=T)AcKʟ |@7hR,QM,G7a(!zh)}g@n5#8(ܕù` xyEIfe̎ )^w/}a#LcHc헬q^eaKU<yˈx vU;+$^XeƫxmpHW9Z bynz'Օ?UȵCYX PW2/{.n۶o}F~^dBOZB!CTCW1^iV 9],-.a,&1uQUns83' ]TZG J}pv1DfKC^!myBc$T$|KL(\>um5KK=ϫNQ#t揁"*UPO`^qi2fb|b[M\50NШT. dР?[}~t|0Ib°(TՁV8>)@QO3"xcۿ߬]j%< X"ju J fL \ JSl^AB>@83{`öbvd H QvT)`bh42A@[C{{=gװޗu/u6k,ZJsPR\ `CT0 AOȩuL J 4Pb}E\Mi1#@K^3"8{/ݔ,JRjUh,-<*:*q H3ːK8FXj t:LDPY{C uj0lMԖ-z? vRt O0 =e2oprZ-#9#̠ӚCkyr ID>,Cn V zS "ܜb!gzsX#0W`o0\2 `pYL Ӏ٣-ą0hu#Z: ,:??~_}ZH$9}g 2.IjjΠ\@6ɩJTQe11)>YGu*k] 1,@͛?QZÇr>|p8v&j9s0Mz+S>k6 Z:]H!>"t9rZٗaz:3``!(mpCN]_+Lǐ@ۺ5R7x9(gze_g#5_ymI+ԏǡ6ZtB4 M 3!:?q񹃼ц@^!3CI'^S"4I|‫U Xmr kk=(@4g:1 x5|덡ġ PωieLN\I&@Re]gVx)a< t'&:3rqIDAT.8^}?`wƒc3ǖѨng?{@8k 0TuLM],!3!*.bwTgeV*kU}nzj&pM@w\+|[Fƪsss0y `\n;Ti#o6+`6嚶cc|cؾ d,Ziu_;xp<$|qt]GvRW#-Jet7Zp&,a\7_9gB{,mWxmyo6˯Y>3Vm!n mRi*0xfg8ڏJ t;mt&wѨ)+>,MoO8[{MN$%iW!cޱs.W…f Q>}~"1Hm[E ~:埡ΊʿNv4SGR%n}s6c`'ixZC( A@} 0ZCAhw0>n#OHVj?Bw^Do7^v/x[օxecc8Wʴqrnh8:{Jqp  pz_>pgȲ%L-!OS\#d{ywu ]Wu&WMSF6M寧d88_ul*4?Ԣu(lutF9.kv{ e!96&|it]$/A4Ɛ L fLSbr`7s͇ [2 !NbDʏդ130`񹻎ӗR2y|V񡐣՜Em`r kBe|oy:3+< rz%SOms_ȁ?ZXێ}2`ejQ k~9#n!|<( P-3P.,6-ۦz"\:j*Oi"_f^y8.ʓSbh"ι1Jysǐki0ѐK@ك6Gwt{czZ6k\@ g Ās>&%ݛtD\yD- OLSgh57P+xRƨ\ak5`7apQ 1je6met;MdY` ce+w}+,i:S IKW16mWTybV2t;а`iN>?`T{MU~qq/e+(:_F4v:u <4[|?- "{&.ByEM O{`b&f*VO?w1"b@ͫV Rsw|}k{Tʄ];HmeirAttNʫ~guÈ wW v܋"LL6pɳ$sts̫i5Z85 8P *q(hզfGwgt#۶T1!"OHMa@nc׼Y2foJū3T^3Qæi~c&vf-:8s~MЈb(5_"}Ct1T [6O 8 m""iڽuϺ٦Qo'~#ͼEr ^ǖmYqy^;3NbhhkFN<E.{ZQMw5C_il*Wtg-4iuaFIPyv?IۿG|t۸U_Nl ,cvP|g zT&s`ĮpQ6 (IEqAU~ LRCw=fȰck%r8!K18::Oqi}Yko;tW)]h"LO7}tN!?%݀7aO zt=qhfnmP9ئ07;4ɑgHiʫ0;# Zt]U7f\PazO;Tq]+ߏ_ o:ݻukA~bTj\t]GRSlR–2`bEhmaM !48㢧5P++38˜1?*=rwA+z9ӥzkT>q3UID YԦ)Q1K'6HYY8s47; ~Q\`Uc^C_~Ô^C v\%,pXν%?_o]>߰u!;+$@B!CJ$=nJmXrp׭!d {ЮZq(o>5pl7T-+켠ge:iơs8~Oxsowp]oBW}@f & )<ߣ3=s[*p2 =P5Xx\ǥ(.pDHHHY8 햵F@N:_I#B1KCaߟ&I15@` AΦE;p:lSuv7tsODwڤH ) x+@.Pd:}M̜}{r8fb BI枣gR00&f>Upvo|-'Ӫ߰huz\ B*Z[9CI*#c!jTS9$^g.<E}Mrf@wwhe,,, a0:kt+ׯzݟ}OJaP=M۠uZ$EVb18q8X&`TTUDǎ#đ@<,F$:\!rhN$)|% Y;Mm:q?{ɺ7 dyecek t;(YhWߨ0dNHgR(R^ hӞ=q"E9* <-{Rxȑn$հVs\_yl~鳟hc^ ^X\Ǒ319B-ڭqGR Cfav=`w@aA2ѽ)SLW$:x`?jcS#r4S(C Za0p J0y4(KpLXjڳ_lvݴRcyEBt@ЈCAH3[v_dwy͇JJߐ8mskR0y3.~EY١*eXzt08=nU9r1V% 6k/C'8r3"( $]dI#DAsYvRj>1IWcy)CA GQ^u*eoy_(*:&i=Lf0@# %UaQ@[{b9f^:ľ˘i股PJ Ƥ! `pVb9᠍-ڝ ;M(g]|g';6TX@TY/e8ڱqGZdy|@)( RҀ&z4}KQqH141:)cDZ2P Md`Q XBlfs9 ʋ r=@[诐wI;]O5[WBzՕʠQ! 161|ǥ`Nm5DRBKmWS&d ݅b0,:i&ff1;f3!$h;P(Vծs&s] g(0[kaE77qZ+mnBB,* ͑v0sti4 ȠR hZIa|,Ctat3k!A@pY @'1XX]h}G|X nN˿^J9zD)BӁD(Ybjz SSk4! m{ޡhkaEZ)[h6[HS4$)Z}Q7 V<4!<  `6d(Qz-zܡɗf7]ZnD|/G|;7_7^L_ϝetS m=vhwB?X qPTPzum,4GfH i#M ͺp NX@rCz# I sXk $0&XSߗ} !K ӋKݏ-xu8%'ByXlb *k W.D**(J).Zb@A\*iE1bҦIȽw1J j[s80|TkWȁɪAiSBWK0Sc5D:F' =.U`L U @Da0d bl[boP$Ŏϐg ,ք(u fAtmFZ^^\19nF u#c.8_C2 `K_PJ)/?8 wNEWncTwK#k@g><$7I?uΟ]Y,m g|~$ޱhy?jQ+D} O,oN߮7Zz#K/6t܋n5 | Hv;Lfq@0,@ 0 a0sZYY>, i?繬(ED*d5*W[ƛw޾gxi\R70!96was^ش>|qi@ 1:^ww}6@JIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/git.png0000644000175000017510000000434100000000000020336 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME?j)aIDATx[lWߙunJH%%nL2@BRx"rH%HyBAME)m%Dױhe5H:5<\;ǀD"H$D"HJ ֛`Y_d`#K '¯O\^ L!U`eC^Rʽsi0@@A0> 8qB0~!{{Z(LwvNJHDI@?O$- dK@?O$-f {Cˈ3="@q~S|1^fN+z80g s^fwYO)6`*\./g9A\]1 Y^g]gd80\yD?\$0u$AkmdN`P7pg'\' RA y3P7{A `s$ #(Av(?$H@o0߳o@1]2 ~%qgAd q,-RKFn8/bHSO.شB~}N kDX'Pyw IL_U/Rs#@  V*.2>F5wP%PJGm;4 فGT0oU!`T Y^˯;U8rv*2b~*0Y2{\5\^j=@!!%FG& 8h 3ot\_n]NQ 'c#6c {pۻ,K%9 캿OJe#ɖ@ dK~-V%cR]b3S,uZda/QAH@ rXgJ!UR~t!_P-pWf˶ =8Q0`IB\7rf [| Pۺ ¼d#u Cxוਟ :+.ƍU, ! Dþʗ Dn\;s+4<h [L~fo j*f#_sJ}tݏO FdkBjStYe zw +z%>Y8S|Pj Ns]X Ɍ \vtW]3]v!z8%w4eMϾ' @)7xh>6(3Zzҟڃb9xK@ D}M@Om@ .9)=?9sժ&nU_!,&@$`LzfO1ѣ?~ۇRvң?c .0p"+: `T  .]qk5'm3~(D,֏"zT  <vϛ ?Tڰ99nT |#QD% ?2Bඩ>w ?RB@{³-1~!13ۗmJ"E? Al֦g2J)> H63Ɇ֛ߐG>j: a)zf+j`g}$H<PK=Y$~0GKoZ񇯍I|G}k'@% Wk+@$G}k/@ @f7J$0q/Y 8 ̃oLF > ̅o%0~".tZGseIKg "oa}y|*9+D"H$D"H@)R uIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/git_alt.png0000644000175000017510000001121500000000000021174 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME20IY IDATx\U?}Ld&L$$!!0A#!(DAV@j]~hP'纅+X‚&,u % !1Id`H&7ꪩw{=s*aڬ %ڠW3X't|&(6;5?t$Ej]Ih91'-Z<F,b|I@+н>p&}XP#=qAi5^q;a%[I P<#I`)Ź$Qx%=l:}yhsn4hxGbgEI ҧ$h8,}/I `'8{iw¥tIH"D(| 1厧~Cs7^ h~ŕy i<Oq0y_x7  k7vQ2!c渒iA#$j2^+L[VQpS\N>چ$F33*Ğ 6N_kV v邘KJˬX |,bGLqiaz+mn$! $dLK8C?B+6p=1&:oKJөQIFC:7#@,l & ˆL6Fcq%RK** '\Fδ@?f$%iw9bNct`5Uv( 2ʔs4 -,V~ bĜ: _^m09%-'7@ň9;s>@/64^4}ɑX>8?WVGwVtRLĥ.ʟ| 1[s+v>QIܒ;&U0= eƅ!]Dt!`n֭ucb/J | p:~_sP}k!δL(1{j0ػc?y剨ԝV˼6y9cW'?#wqi7_(2/j#Ouݨx㣏o+GtĜ˞RԻ hYӼխ,]igJ yz8ʻJV{X(mz'ˠr.?M,@^}`T3d՜ޕ8`1Z>? {y0ػ}8F .uɲ+3@A^]qE]8e`kFxa  GY+H_Ьׯ~F_YISS9,"JLJi XkWGl!zPftӝ#|w"Q_ ,&PvŸZA8k :覧=۩@sπ'xaxۃ57l"Gp@]? y\-rw'=:aOGVL5DL֟gĽﳵ`ˑj5b`l(]%~@"-0>P+h}&4oXR]y3&ȱ)Q,hRH~z MG: tOSE%4dzŎ]-|srGhՀsĤ#ާ[< 6ȦЁ`Z+8AstdK-M(~ON 19:(yNk |4@?͹1!9:UL(W|@]O\8kltx) .Ȍj">Q,)!n^=bh2&Kǀ̬*ZQs݁"$)M#q Pj#jesぉβ[SE+nJKU>^akDi\Ѵ]:g_j8ɹae?˕p 3Tj*~LoY MIiY1V){'뮪}Q3N"jgӔбB [jԹɸ6~\uufLs\D׹1O?j;c#gZG4 ?&!"w5s95cJnU%wKl;fD愎9$Oe=wOvnڨhhIzoq9KYV2$ASj;xπ&Jr7JDD%DHw_qijI:c}NK/tmEUEdO!fq4AVVe㛎CU׻UIJN9j6(/HlOUėG;b. L]?joz|g7JJxi"Ld9sgB z T#Nh%x_K٧fnI&7-֤J`eӎ$!FjNd]9K"b&1 2}LW+݊!_>ྴzvVb纚8&&r\(mp0|,Ja Ez|Ϭ|&ɍyl36xnhW7g%:D"uN|JSZxͣZhgi<%,O `'dX5Y$N"t#ku1u%E>6oK[^)/^]69DiyMB!DqIoP"zxWjkkiEJRB5Tb=@3Gk(3Rќ]-{a}eƘ~9c+dwfz5V89/ ~Qj` M 1qM-?/=iBwvSR:zXU/߭~-ʄgԖ*-*dž͜?Pjx?==fsweGN_LZχWNFq:11['+M8UKO|(ƘޟV3_=ﮫ ;0)׎K54^lΚM٢\UT5X00)bK?f)Yϸ/0OjC4)cm$1c^z{,8Po>`=c9~:y IWJ;?/9ݾ&MceBHP_oDw V'Ą q['p +WGoNHٚ*}!h5`A"R%]}f0XQRRM}U8a菩t䥸)ky3aSCDCg]?"$L`(oe"ia뛭w^-|:`7abKGD pHYs  ~tIME  ]ӋIDATxyUǿݳ$1=`@A@D (RQQY#A y"j|,ad_d323Sdfz'{==\Ȑ!C 2dȐ!C 2dȐ!C 2dPeC3\5@-``, 0.׆( 2-`1 hZ-oo | |n%0p8-o`}$ ? Ɵ l5 a& 29| (0nxxX.mQ;:i^<}HZ? &3|0M2k¯VZw9hSɻz9!wp'JwcyJ1-;fTbo<}78`bZ`h<߻UAFrg֒ \=\d .M3; $wZ3.p=ˁ{M|k H`yIf ֫Z_c/&Vj/ܭ%9r7rzEF4$p櫁J#\ 5\:Ck1 <,w_}X & n6rs¿/<m_^PJ-Ąd74CO\~JeoŨ[lyཕp)fItXb-#05iODYqne)dԬ~%pI_ =LH?E{;8)W[C ?YтOF[?|?^LgǴ,=>6F͘+O$.cKwpڹ^<1F00ֺIe~Z>:.ppwRX \Ja Q188YIW@k#"&__Ȗ?=5Lzky-_A( QJ`씵DFA}UUJa(ɖ\&EtVba5S,_FS8Gۯn\{WL#bz8&+0 3kq16OYПBM܆Ysp10EҪo5D$C3&f5&,NF~$D .]~7#Sq\Ʌ4|qFEZt) ǙiF9HPXj`H"iO`rF"D ,wg"8ӅB!3-?〓R5hDB gn70pE4c)mrAꀆJ:XmʹWrōJ1BhICrZI5G MZ*TJ&,aBZ)쪋]H0hؚ1t0_S;?77F5`Lut*30vGGk\'p&&`4HL6thZ P :86Sj{ \.OINJ^)OȰOo&i7WHCʕd7 ܊ɷNk}sߛY+WaazMDz^B|;y1%x/~|pwu痺T. K~/zLxLwٲ2ĵrK#^ܳRז `äĔMf^|SO,t'*5D|xT)5W)] %\wW2k$Q"ey~KD"ѥԙASZ_v,&!e0Yk}cI"pm]L})#La(/Z/ &S%E=d开U0 8p}+pɟ \1n ˖`RL7-&M.L/\X{=f%-sl"h(3>˴g b|7`Rr B *-z;|zM)* /VJб5l^S%4#՗Z{›M '1@be |]"kk[k .lΚU#3*ľtQpB1le*JLU>(W(E*XnY}JɆJ`RsC>DyTH6*l^\![5(n cZ,htoX:4(fy~e&NQ]ɡ\VDkN'[-(v$p̶C#G+|bk5JD;35qQ3UP;RO8)QJ-('Vp%a \DTHxoJQgTa$XLkRawJ]EZ>~?ZΕ=EY)5CȺmJx@{ ɰ8 DG08X,dKtki_iTH0RU"h[x/mIZk 8F@" x\)uqz 2O~vrZVWJ}CTO|_$IP~)&.u'p퉁k$ps,%DS.gO#IVJKp7*G\b*.eRJM,Cbo_O'j/U,]l9+t\C-0c$4Lcҩ?|jd))K~%pIk_v$FEmq\A{ l6R^q| Ma^n|8pRꘄ{J)zX) Ѱ\TO7EG+2z58%9pm-6C9nyȽ-gr>;%DdSFa${%<$XPsb&pzR+XP߈YW&!9. )Bfn<}'8f]vmCes?[1 %,{BX?gռDl]GB1=c3&L^Yy[kxbK7Q?|o 2dȐa"W/&UM?[)5"#3{ϧcٲ(c*_11(0Ec2rHv:f`0eA)5>cX(y e P帑lӕRT0 4'N8dPh$@uc T1؂IcG$ηVXܑ1@?G-c1u Fn2JN{k_$@uc# w 1 .#cyP(;Ս70_q1v,[h1hq^/ f PL8ѱz00q BU'dN;B5o$@o8:T yP(4dԸL#2 PR5q>OǶ85@8 LT7{eZy߀N͖m`2b| E#f4C 2dȐ!C 2dȐ!C 2dȐ!C + J%7IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/openbsd.png0000644000175000017510000007571600000000000021223 0ustar00useruserPNG  IHDR>abKGD pHYs  tIME 1 IDATxwU{'ʪ*UR+ZR[sr;=6b\.3w"ðl`x0ntjwPwKj\S'Rfbc~ת?:g?[yu:o[ b??@L33K`RR뼀?)P}q{Ar ^?ڽoJ`ٱZv䘦i7!qrXa]on}tvpRDsp]CR"C@/MQM7oԆ $$嗶,x_ٮ[\oS)m޲k{ᖷ{?dAJC7X)B" %}7n|އ] YtƳٜ)8-˵vl!t?$0Rըm,tdda&;T/j+mjZjWM4 g\z_Z=?1n_,.2RI'ku뎤D$'DzϪsH7w|5ljM\R !x GX̵3}s"썼Ng2++=J% :2ܲJ1zAԂldbS/-G{̎('nʎw6G+?U;u}=Cc0ݘ%e)l ["Ym*lql6 eqǎ{ĠS.[ũվ2n&u.Hy[L w:06nz}25WV_.՚{C{zm6)N^nϬ2HZ+S/lܹ{LؑHf}-J*%4D ݕVV~h*[k)ˈ W^Cl֢ebѱt#my 2c˳SRi&=Bٵ|wg1(C$Ǫ ˲>Tj5;Z6^/WPmv9o򦡫7mr2 nQUlVEmv_?V6IuW;T_(Rcv$, DRD#Ro. ׏|IttcWMP~ BdtPP2?͂L/:VQ-WG]wƳ4Kuh.O}ZhP.njKe؛wokˢ_XOXJFJę>#^1⫮Qޫc|ʕAc] .R-HVV:6DGBHC-4JunThF ++vmزu_G>;M֍CMũZW!Bz1ު7㵊^/{ZO>%m9ƼP5u]jʒ[l2:uoFsPOΘsBت[ V6/?/MNtmaٱe2el͜:v~'S'_;aH RY7|L׃%$9@"hI)%Qȥ3=Rۂr/<\~$(}湓KO<2nK޴ yӭTJ9h:a}۳7t.NUɳY*恝y灛Νֱiw}]箛 r|(FIVیD_^݆ Tm8\[^MYh) [>uCjtcvu7=}ݕʏ\Ʋ'xѯ45Ӛ*a4< m ㆡ6.B`t*x F }׆Ƞk/*KBy7s~u}.+x5Wy=]=Y!<d=$ 4REՊ][l6Ah 3^||Jl n__l,_)?tPyg»3JK_j6"BϏV+ J^f^qdFSF[=wd*1\[x`7ܲqWPZrqH&c5/N{{'4r)Ru|? q]eHqA"iX v48~-Y6 BX^ԝ雒}jaa底 3z;jͯkVՐ$:XZ/FI C17YG緲?sAkX&==sh{W\։u?oTjw϶sզPI 04% |A A qlrE2a_rsUi|! BAcϯrd?4[HT<8ܸ/E#>r>St_lZ4~du%ս7$ #Ԭn]Bu#DRvNer [ka'4 KΟr݁Oo+>zr1n(ܻfJ}PR_+-7a0КH DZ#(Co,9~ 6HV,7& /J>Q*A2.)ln@GWfZ{*Kk6x]q,4V:M#CVZ)ォ>CnlE$ e@A(Z\, |~Sgvs͹ -~ߝG*ęu>uldyϾXbT禫s4=>!Ő/<^W(b^e _?+:ih }`iyYϚcTgfcg&'C8JQQ+frsU.+{P}f84=]N.1Pa<um<2'鴁 4}̜Ooͣq0D6/6wMS<< Gk[.f=ë<WoIs-=^D"f"K+-ϰۢ酴+m/-der@Z:vHYH7u{>y=ݷ:Lk|s{q+"eSJ٧ sqR1" R lMTHۆ)BiBDi>VWf~LCqyEOwDhw :b]E:7!H9J_K&m?иbC"fW^$˵f hj!ԪxM g8;Q4uos:w8P4bRvT0ؒtxB4Q 1<iSq`#pq/tt,-M.$wЁFPZ L)ͷ 5/@K%pokVZGhi%4$1Lf=>X)ܰ/O& qGӕ7XZ EX a0ZqiA9f(SKCRɈ{GR:VnNLNd.oҹ! ѳaPik+wH`n+rD&#L%0 %"Dܩct,`qf+`.t3% Bə&v d[7g-tcXef6yL0-MDz-E B`& -ӨDdqrdL$!\bn)7uT难GLR 7mRʐBRm6-7޲A;54 \_P_ݘ31Tڳg{.cK I$ DK+8y9-}VhaXG[8~|l.`a/Pmz M>a&2Po41Aw JpqceIooo O=3ϯqneؙ*yx8chBMw^EopM忺]{7A-/o\e%bŰeB Zi0L9k,-yU:0K8[VJ8Cݯ6 AB͋x)2}))Ru'Qrm| DkԚ.clHhyc/RR"&jK4㿱c#>ws`qܹmsAZ?1{^VWREȂh Я/?zu7t6K{wT.Lmطںɯ7^>;ӿRWw:7#7paCs2!=.CleyN哿1צ0E,a|EEQ$Sde# J :;͖ _8*?C:+ϑIkK{l&ŲO^̙"룷e~ʞBj/xlމa`("p"k's9VJKӑ5y4-`۶mNpK:f-æW*t}ف,۫^ϯvwCI{ۻcaq αs YJeO}0Nd޽\oӼq]v%rhԤazB0Ֆw;?O;n菍||<ŷ_%;N*jl..vd#$Ɔ <$JhF3Yd`]8vvRUnumݜ;׾~tơ'pX]c9qbuY =<8%@Badk),%$LmKB"d4J :;bnKIzR( TqijOkҬ5Ntc'$Cxmx{wU`MW~ w_J%ុf֫hzl$s='9Rt¡QR%4QEb7\OqS}ۮif"ceuy7BJ DhP´( b:,p'~U|yQ!e~eټ6j6V+WuuKT*}^a)^@G_ӫ4C)i{͂u%m eX2h(N8_aD~qb, ^ܵ!%vxYsBѿ>*#Xo.jilssKuL͵dOhlfpp7ݍ9b IDATɟ~0q sl^f_anuNq̈́H#kbرP;@cq#I0*7_^矿p'~E3=5~j5K]qw[:3r"ɻowPtL $ BIVJa/4 پ )bL$_ĄBxi/ tzܘ"3&+wߺt' m%V|j&KPTu[g|D9^K8^3 *uV؛8ccc\}ttt><+~`u'ή܋gWVmޓn&3c87[u7} v`X$ka_ & zd.Z ]#0lfź$ttl8ķ(hTxv كR&RJxP# Rr#dXq,Lt!RWgu;6_>:;w^z Xv(Vy/gy"~鏃P TBi>ih7"?htj򉣵Kse&?f<ڑG(ڞ jF*ahmh_B0$( h"ZB$ )J"BvgӦɬMG>k_Jɕ,p]=)r0h6(z<NsI4Pѵ.OʣfqNDLMMqE&'tie0$Loo [WRsdž>¡׋l-ؓ3޺9t"V֩wp~ܸA,/0N,%];-Ox0~Hg։ )R CZ(@H>Ho83f~L0$BL0&׼mD ar3M6+4#QPhK>O#/ ]]:b&}G#|?"4!Bh(wk(ۋ2R;O>#/[Pb۵0\}5- lRGm'4T\Xg'ql-yzbη!Da<]嫏\@{a[x݃۝b5W~|IKs\wO=;6OnDDD.=)J:/0p>Ɲ6虖1_Yñ[ΌWBȎD@4[guw9tW1{s;zu /\g8l$K^y֎ξEk}P~Cgfl,o7x쉳<ӌu00ZmaYTbbK'slɻ>`'\t[nv]O}(ɏjB'?Ǒ#niaDB.$>L&iHH 1l.gz;nkA˃ !OW--(iyz}bgH MͳRBݽu g& 1})TrNIњbbiĜWFePvմf(pWog5 #t& qKq[:;޳}x8F;wvQ-י,14uPaA ~gPUI$mdh(_7rcrN"w%R7XYma1t`RZJoBuImG vZ(^dD^iY}AC" MX#4DQ!G>S¯ x~0BIܠKa U^;2/x׬7$ְc.H V]bo'[Rp zNGRNI<epPuo[/#8a ϞZ*ݛwW7ڑȌvNx9jϖM9 ɦmv#ΞZ 0~n=(JA:cXs~n%_pk~;e(jσ,ccilK"%i4<.]l721K2xM_Z^/ZttP@hh-ޔ|)С@G(|SgB zC#"_(А˅U}b][ lJGfIwݽD* ,lsg\CN_8 &7H1мzghw>j]w&̎|Ǝ; yZXs::/h')O{x`\8y>p6y؊hD gٽgw;uavmp}Le$-H~ To,8ds6|H :Kih+;BC,isT(I`m50&_p0v ?!aL].q'0t;rz [H{4h"nw-ZB,aX&GOxʽ7s{L.^:WpkPɓOO nRac1?zۯ\wf٨6̏-.Ft:׿}bv7VTP]Z^I,-|7rbC׏){\fI:;$/(44: AKh+nJC+F2p":@Lgbm䫑R:Irz .J^m LI:ea5nLl { C"$3국5=͗ )ZaKtUڏ"k{[6H&ϯ>8=96mu>\8{ױGq#+l0~KHWNkn``Ccݢ3+O_޾<83]lV*o3;4wYZp#`#-7VTja?sv^OP  (aO#DD4 ._*S-ټ74JQMbͻ}#Il27ƵbX0Z] DrWG!e˺&7@Ϲ"&iÈlWc&"ZS0] eJ~ڏYS/VJq GNʣ3d ^LY?oqVzbgZXTZH.B{Ņwm#یwc{&ixD[u~7BXZ˫7*m~0?5bXc%\&uެ;1HeaC~|D>"9FÇ+Ll?ez&ٱ)E>naV\@gfqdU2vB!ffkJOwRu/էg۩&'}uz.X1s&=?ͥ"O^C!R3Jxhd*Ύtuư8BB 4%M[9 !!3,|}A:(hjut:j߾ARH4ɤMFTڡ#A:aH=[҅e\;(oCncZZ"Hع@.zb=zΝT+"_x;oё1Xcc>fu cNY]sLw?z;B`XHm8\MYaBOJHaQ(?%&b,iF1^n*YŬK5QB'ND#BaWI#vk& L bvvlן$ #<J}a+DFkiu`> |a^"$5k~T+5J to01!@JZn{k+UzzLQ;컶R 1鴑h\$5Wք 3Hڳ01mEk FVa8˶My>뇖z0!H$ղCogNSh]SgC(4ωJa&hr]M?D>BK?|3СĈkvSc;;I%,Z@G 5 1cQ A/Դv [hr"ay٧/N.gp0KŃ>k< FcXZ0lx{hKNoiw`` @R$H liQ[%ѱı㒕xxYcyI&P,{A`0Leno~޶·̀%ۢ|w{:}s`;8v,H!@`,ŀsu*})<׺{ sp+ z@ѽ@=ϝo$f~DXIC+assO}bԙ%8bjMAb5@"P&,^uۓoV~bXm8dh6W>-~Vw .o[Ή4>l8nwV7džd@:U"-̷_Y%[LѪvi64}e4꬯<'HQDʳx RM̿a7XL!D9p`n'&5K䠫+m[>vpQ ,Hr{ Bţ8laf7ٿãZ9J :J*!UA= s9k7f*9d]ym3WkA%= ]e#-0[!}hx˶a_KyM^ i|{Ǧ,Vm=@SCU j1`i J4(؄abH9EK1VNGB)-Tv9cy?(R~VzNowZk~ .78t`gz{/A)?-[ːϻFXSh`zaG5{HT8KLnQ, ,Lixi d|#C(lgpmҊ8|_مaLwv_^5۶-2K< x-GkNd/=gBǘfPtdc:: t92;˞m_tßOA%K=2H#b=|Cxl >ǭh)3ӉE r,6]ZT7)JTߝŏwMr]lsu#HEb4 ǁm9rmI֚_[r-{W4t#Ihap,0(Xc?;C#DAR"]&&|[s|iQdm+|nx,+ڼ| y #Vah *ZM'^1ݶOAEWu?o{AڞщVrAv@C%0F&1MXa2g. eS~IcٹΝeR)}T㰯QB%ݽ1aiXq"6I7$\ֹqkR%s=qFNJOFGmf5lN۰k`fY׳{m=׿5_xv;3AAF1)PpZWp~W^^f9sjû\>~v·L-r9/=c M ,EƬV7Bh)4u[@w>pzlSf(8$Qqm4(?½'7gY^Ssx)7lP1!#FG @k?&7M "5 m﷓ٻ&weDlP] J0ŕK<.LmX\A'Ȑ WJT-h4o vyH( (6ԹtyRǎ1\g}.1|w  "CL[@S TJtrc?7QhrYǡV1]GKs1262{|<4I )TDjk8$ӵYV7<;vdB{d׬pSO,Eᝳ g9tF#9d('?6E&-]\, `$˹9:G2hlu+rP$(e;} "#,I$)2ԣ:@^pcM 5nH^y˧^xAW !L[ږZ?GU0kVT+c%n׸reﮰsƒGF:AުFݍIۚ岶o^*=ED dϝqXs*mgY`jQfLN1X"K(s'w߳^D1(ı-0z€2y1*7imtȸɭd(}4[JFi9AAɡ9{XnBR:47ů|zGUƋo,'LM:~Ļڜ8ER˄+zaOj2fQ3Xk[ZB(+n<7pt5X.a\1f3:vʎWXDJ?6O?;hao~]|.PJ1-Ν_o`IaiiXV; grA:nlpgzI7NJ5fs$&&| &6FE%(5?YMвprLdYZ׆=0)FskY8ҖܼQgu͹slHkU"f=Z,:4={ʏ ggti d2Z XTR xY9H}4><ƃLM Dʗ^7Zܟ&RK1%a=XTLUpc'fGmlǒt;ͦb h+N[u&8ku^|sR¶`nJ_)åK5uUH#{,ǁ 7^ n64[T`ba B(_kaGQ'KEZvlWu}?.F}΢ bg?؏ukՀ5cr,lQƢztkI?2^gؾHzUBRQE=%s҃Lz#*=ڬS~w*?'>VY] (U,]dKH%l֘HHY 8DEqk0HDp@T,:Rѣpv}uxc{Zhe *\y?tGۆQpP !z򽳨{j!! Lf9|qmCTaeR.MKk6"vcY},YX g/4Xی8#(%"N7NB P@-nmMG *>jee[8 9+jZFKG8ʡ5r),A}Ukc֢ ?b~C 0_'Iy8gv썠XtAzW7y1~gd q5ZǠm_BG?vBޥN=Pm,l[qRISʸ{F8!l6\F77y.}>2İG46B#):VFDQG̯D4ZU]m1omn!ZB?qQHľ;f>Ki툋vW{-mM[N}1*&4&2H;5]bh8G&sѣQ]X^os2fȁ^5nv/F6j.ȯ1r?:{t\67|~ر  .L_X_rsI'$ 0 $Ha"?B1|b x36JAcJLR13a76g(d 4d]rNN6*Bl:)gEǦq+PHiI?=H!7EoFO7@XVX~P)Lkϵ5#Up,H^|y(x DJ"8ybۡ=6]JK8q_)g^i6jU*}iv:,\^Mnر_e3ȡdcCLc)Ҙ(Ѝ",e%j!/\kClJ}r`j#PabIڱf`n['&lZ݀nWaY܌1g!Oxʼq)ڳ2NzUf7t~rFI)ENOn16ӯ~G̯m+T>gqHv궠ޙ4^?Z!u\eg hګQw_c}G#3MΜ_O:#@6b;I>_Zg8m׉PKA֥`D{BPu۔˩;޽g ǜ{g e\J2m>µ[ds4wE̥K*82 X`~É7ض-Ǔf I()aAF]o֊@\V#-E:0ԁ!|BX&gQ;|#R.\P2QT&0 V'X9{`y!蘣fd85hWMj9]:ଊ{VwTr-CGUvd Br t}Pksܚ2>#30L7nnUyI7da3П.۶0"dFK38B22:-w9}f@Z}xR#cK3v$9Q.4RZ`HbVwع@V&zA%5r`Z$B+> /&mT2?4Jm+ۍPd_*T5N՞t<Vׄ֒2AM']plS4GpS)3Զ ܌aZUo-8^j:?:AdV<7 ygzg^Zߚ y VPͭ;w9Gpέ湏`|LX_ <G"/Hh %VX +Q̮݃8nēےy?6Da9'v2sVrbMF+d`0 ݸ;){lhصSO8mO3"F!e( #1|E?eyg&Z_yYmx}qvv t&magҹ:էhA*]cY"25`{K/iny⣏8<} J򲤼4QĒA;/-9?6GkkF& )1Rn66|ip1Soc=:@_X_kbyr1Lϴ./3;H?/pW_ # C cLFKiIt4 ϳ{H9MLcEBK -43=<Asc%(&W,.6`9WllRps.nmΟqV@#E'f+@W^zcz% %k߭ ]nYFI0H6n,cNeǏeg\riK%FĞ|H,[c;XܜiqZw6K;U槞Yҩ]tÈ_>?B/ J&CJښ س|ﻷkzLmsrgf>OyNO(bl9ûllbz²5s7;lm J|!%,!IX^[$F 9ɓOM-Ymۤ󆃇(\j[mff69r {x~,W9fu{?\"`E`x)&nsP]])ZƘ5+F5aLÒ"m#aDh )U 1P,_ϔطݰisy:fnES 9F[ssI!E& vNyAO<8sd2"Ic"ˮ#f4iC 6gmJszz! y aЇ(S4[] k_s׸wKXhr&Ŭat$F-o\+|d7v?1F-ج47mcYЬD&= 97"1WxϕDFΥMSRvz@_rUΜr'5֋qIX3l"6&ƪ:]a)\5Fe**Z4 %cӖđmuulA+j7?EZXWꕓ1'.("H-hh^:uZ-,X2٭!5Qx6}@ ,!M_s\E`N>EN^!O~bdU2hDks%~ hvCcxy -}<66|klmMp m m>Gpǟ%ux%V􏖨5_O~OmlӋLMJ!{ȞԊBb \αcݓRh Lk ZsUVVL05U׶xߑ3`i[ =6pJ%I62T sZ~x'7-]߿<-2ZiK%9sv\`vI7 [ _qLu*׾z[6{wzxv؀g <ǐhWM.Y2WLZQ% B9R 8aX BlWItцHqG+mDԉTۍNn\RXوF4:=ݐ̶a8TwW&DkM EmWb;.c#]])=,{t> 8DTZ RWsm4ukCyãr. b!mf< ǿr]#L29!#eb JwV7ZtZ1鬃%?בxx;Ûn#xde`G3=}DG*I4JÞPcIf-+ŷFRRAobmGU!ِZ~%1>_":AFA(RvQlEv!60hLe_qfibtDr]|}|*~~R@ 4 tDA0\I*9z_~d;S˨XP'#ƆTH=7IDATM;;E.^ZyфZZcpҒ2?W<+k-|k72ťwD>FW^Z!D1"blУcH/^/LS)Ie%+5 זq,3ܝ!24ʍ6\b|%"RZk|*՚/*(1)X7[qC%%AJ:3FH6FADZQz`:wbTLtHhii- UM#s-n݊mܔ]h0HmV\膹1J_R7YZy0<_( Cm]KZYCf#2l0B򵎻ġ*JxcH2A( Qt:j:Ʋ\>)ߜnI~ t`K QhpP%a˫!FV3c{?MϣDx{~8svO~b7Wi9s{yrҨ1l$ eW,̷ٳ}%b?8Jܼ 9tĉWQ\ۤls>dlPB 60ar0wTyQ 말^hqӳ-+.SL68q{|2k>dߗ"bg~5"T3)gYjæ1DGJ)GEQ#"bE~70~VE -ƊbSֱpy3pz8qmqV۳Tgs.]\IeKӷVvuJEt|۷q`_Cx!*-o30wqb@h#{FXDaXZlԥYoH!Z 86 TLĶ-^٠ya_cY)ygF3bj{+W )Le17]gG'vBܲ /@Ӷ/J"Ietj uՍm[[anۀo@8Zw氟@cT(L4X+]ws+Lye=R)C{41¶݁ӗ,WuQ[pmSY]h/qÃY_ 7BIF4]o E yUcq,VN՛G7^гLHTq,6ׯ5Pa4zK7jSP'3Aˋ/젔wfR2{b(d;ӨHs5ؿ+O%o_[Sk[勝W["!HI?TPIRMUh[DZcbM1L&+Z@lTڻQ94yjaUEE_ѦU|;s# ͨ]םJz +h#yI~/"#ۉPtɤ8}f6gn-J?\Ǟ KHel9j=0,[P*gX[9ujn'fY\hsd|j)8~bNCړcaMk2KP8fe_# ".ޥTx[|_y7q"2 #gqR@HvöFj{0练HTƴhF{y)l#:' {sܸݥLڄ1|+DuKoRAP+Z7Ƃ $rxI{v%'Z}(5S_?C9t\K- r7ok5URx5Z%َ9iϕL9uzo~o={r|X[bpu gY;2ݕbhv3nqQ8ɻ7[ih+ w7V%\uK2UF vǀS+a(lW۱S:KG.C 0=kZ/֏ݸӖ\ޔ'2⵷h2 1fS+Q[{vkVeJ_|ȡ4錋!6"R\fJLf,6>_UMo3ﱴԤӁ+ɧl^>J|el8KDX6η{LF#T)#`2+M^|6Հ!J~PI(,TjM8U7k56cԖ{'|g~5M*X٨ݙr.d˥ys~]ð"CX1]$ƪk7&_#6kksV+}~?8w_Mid|ChV0[=߉vޕXv]o};ս5tWv=&2ܐ@" AB @BB3bC 1@r;{{[n{Z1$mџtp#Z{oEq?z+;]q3w_}id C~  a/3z).]-q}_|7vc X=a3]ő-_[7qs߿;2$ >C:8Q5:1Hk8Mt[1?F18oC| XEN K<6M,g ˗CQoiRüԭdϦr`̈!SQ4a(v|>!YvzC^XNpEYK4~-װ9,]~mӧG8t_Vs reU.fFiXqgoCB)@5om+,c xAL=wXE1rjbOlS~O8Ɓ}`8&mu7}Upk$ݠNx?"!.JD7ZLk|0:-z@x/l6-Qt#r" 0iY^H{*Om_~u]^]aϛ7/=7~f5+->'g𙿻,?xsvsNMP g/q£ߏë]X()'ۭqpV܉-93G 0a VppNA {..G޽ Izj=u񇟹7Pr`I?H ?hρ^۴IY4Hfgl'JSNeuݡ ŠZ)@[yT'tn `R1n]ug'.I~PVJJKm[c.GvgKt4ԯ{Km\ ^祼06WNl`s{YKsAh@ɘF>ˮy @׹x83uq2 4 Rʋٵ+A;\FHX[TH%Jӎ+uHϭ ovȉ< , YDΈkR }cC0[=OVo,=|1}mBs;]$BDT2&ÏswHI,v֫N`w%>M킐I `TG3X7`2VQ8%+?vxU+tjÀhvq鼢9r5%jQNcMK`^(:{-.Ҙ9 UJU-ٖ.ZL] IZ`mCD.4uT kՎo1n p3?(ϕ̽U0 Viqz{xegrCJC[Vc~T_3N4]4 kyPg SXŗ#`ފHf ["t9)5"}p|pkJzV!YvӸUY"NnT"zk-VtUZ,`ʂ@JS۪ 7ot8UiLM"$@m9Y|34Iwٍ'c' U0)ɨja%al*@Dk0^۬Xmz%MD7*SsgICA& ٥7a=ch(G\!MVL=d KFG|6,.>xt ޫ~!!SlyY8(*O:#)Y k-*IgݫJ=I૪}Gt&F ĴVC_{g8z_]S!EX&”zT8lpV|+5sWI+ӓ{o0氉,S7lv~D%@`ov8" 7n\ݼ|4e@&_)-ٙ7&o1D4yCi\Q9~0PHB,G<3?{9"+ WkglT4 F?@/ƌL!(=BDfQ7]0& '"^$caZ,nTku%TZ$FfrSV"/ ` "/≅kj`bȇʐLIh _`?$$OvV3rnbQ^{lc]S1iZQ~#ap_$:۪LDĉZe[BF#ߔENJ u*l  mJ+%R*BaEX[P1[*@gik49Y͊)5(*%xH%qL+L J[gvN+8񵛀 H(J) f[wo,,6Ձw >?Dǎum*WUQ7ٌk|7!s,MpEV}\#ZK YFDs0Uxs e#`\λ1ƽ|<r<(V[߳1)lB{"GI@{߈X`0ӡ5 5qb̛"p$6ԉm{*4ofXԋy9 98(ݰpejW;K`wRLQb:5 I5$1y{<ޡ7̧(g5NTOhMKv'NcE  : ZݷgAY8>֤ՐM| Ȓ8jlKF ]좴xXrp(EĬ h\Wmmmmm dGiIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/section/download/osx.png0000644000175000017510000000711400000000000020365 0ustar00useruserPNG  IHDRi7@gAMA asRGB cHRMz&u0`:pQ<bKGD#2 pHYs   EIDATxypǿ,ْlٖm0c% )) ɤ$i:Mi 4 #i)M(tB3mJ` I14L#[,ZpYڕVh2xo{{;EEn2cg ",kUnd༾ xa0 S7h~>PC7x$qW)Y3 w%aki;/KL|ή4vq:)DA}@tUR;n6FӈG3FHPh$/e\V77e~&SOh;%l.ѵcHiYR߹.Eɼ# F> -BO_E_ѩ_"0SfoUSG2[2Q6,Eq`_:qhiܿİ۽?|SX.걅ećDf)9sncaz٩#`. " FM=UmrF T572EMMF7s.|cv5Ղ`p}nK@A NX?:օقW59rNQ@ gapX7,kByU~xd9K@ ^p =8 E&Iy~[O@CzD-L(lhqe_; HE1;dlhC4HJhA! *h<ԉot1=E ;틓BA}K ZeɃi^ +L'O)_QZ`v0 J$!ѷ1ZȮtÁa4ԐA=i7NݙUtҺ~X:_!G<{C T| A/R4}nŒɵkʥ_E]M9Gd fDLDAXA@H :h,Q>&otcߴ@~Z}N= XDCv*aˡ|E-~hNo?n7MlpkPB䳥_GϰM 0OT~8pq ̙=sn`}9;U0g0PpX:zD#}Xae4 @2L۶x1RX#ӥ(/w){)oD}6ߕ1=«%C)[OFfSKJ=0ot<ֱ bM;Ų #7#|Kg7O@͙-% ERÁ azİ3fOGԈj,Ǣfԡځ'-]i(1g醆*ȵ7ywD,>h8u>!~n&ќf2 )QOܦA|szE'< %IHRHԃm-kd d)~0BP r`/Pds7slW1EdSi< ]QU!@2Oy1#g3;s"#lcB͢@jIA˸avi8S99Ѽjg }3yGU2eYH ҡ6FQrmyv/ nm&|ڟ%7G2f9L٣ v/4d(+fA>]Beƚii,+T!HB-C88SaY i䵪=0HZ#s'T2oD!*h(>L;va|fY~l1_W~!WāqS;~]aXėX>8.`r$# =vU y]Ɇaãr3Z@#ȩ jAcU^*%o/uVw KwtGwtG\scop%tEXtdate:create2015-05-06T08:57:54-07:00bB%tEXtdate:modify2015-05-06T08:57:54-07:00ahIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/pypi.png0000644000175000017510000000736300000000000020543 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs B4tIME  ߎȹq}msqU糃Og_@C5~m;:ۚxFs|cO!#߿D|'J> mm[D`ǎ6|2X_>;`ϭBbDϼ6>q|BL~wO~,<ջߨqZ*J!MqaDЃY `!8<{y=>WTyno7W+Ȅ#౿~`18 mk;Uv |b)33)Čk mY ~zn6t'`#o4Yetp)3: DHkXPݣR.& 1='</MQ57<|b | `eANM@\0=3SH,/^ սhl/M G$3&1e3x!H8꫁c$z43ܥ]!|\0߻6/dz$ܒvY3/iЀ/i$fO }|"<".{z}&`S4wf4gIv-[Q;<+ U{p MiJaN<F b3 ѿVOֈܮl֊ .Mؐv'K6,0wNufڪʚ[ wg/QeʶҮ`<0QYm(_g}w{& r.OQZSoKZ$ȼ&^RUڻK1} ;ҮkhY?sb =_V3 xw >7iXvR _a;۔vM3|B  Xϼ~ KO~*_t}:>upi {8~<"W؍é y>&<4yu ׵eo@,v~>ff]+:0yk?<k@s3k׹ k]cOThftDᾋme0k8:xz9)ΏpgG-9bvPxUKSo:GpFivM%>1Wx-׮E8!$0@MRgc7xwqUi_ u.&57h/@My{6.S<0|higu:@}RpL!2.K\G> `8.]@3΁i7= i:3PЬK<'TC4(KҮeu}僅QE Qiem3=-oğ3y$~&v{4;-ڮOS8>JHn O |Ug:0YLr"xC.񦴛~4LC"8jHp_d݆;6?= L̮ |=/Bp7]FuOq#Bޤ߬>9>Jgvn\F4Ѫ|蜓sm^p\3cS`C< a!isc3BڰsuUÓ679[L9᳴ën4wn\}lƖxO3o.-)R Rݑv5_ǼW۱ .nS?OwжWɑ6g{"_S= |t}nvnXcAڥ?Xfg^Ye|9+u(k(|U"p%@N<~vwn^'u0hV7b x<㕆nYU;5>ph&=$Dy˙ϺFH7vR+:k!2(;qµ>Xs0ߐT#Ț Wx|^Wjڝ!@MeUou|^xR6cqd=>m{M9Gػ#3AX¬5+} j4”m=sCK^MV8lkrΣòRa.)sքж כbc<7:ʦt8.ZV؊8,osuHΔ>KQLjD?J}WY#ZRtͺ sQ|:4> xqCQ0>XJVnF{U&{jy:s+lQ;#Lr|mx_Bf{V; x hc>~ҶG߃Xv+}leޜOS!uk'+vH03^qm_Ȑ/Ŀ?Vʼnt//8COn9s/;<$^M_I0`1-뺀.6&0Eu ˠ{4/.(-=$'٘=򺼺.M3`3'&"$@UPh!:Ö JD& L@ 0Aadx;IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/redhat.png0000644000175000017510000001152000000000000021017 0ustar00useruserPNG  IHDR>asBIT|dtEXtSoftwarewww.inkscape.org<IDATxy}?c+!t$tD@ـ"N8alC.ũ#c\16& 0p RH@:iev{v3Rk{x3*>Ūt|*/ 8 ^ ]'b29 IwXg84ȳ m#~ QU_L&Ddpngj8`I2ugv6X -#ztRqȹ׀s9>`ж9t p| Pʄ:(#\{ːWD$U W4 fц:MBš`T{{!.!=<,d+Uݲ&H*&-M[ƏG8L Aa< @qN/TuuYn*o^`J׬(`4BIx~ r snTU}d7t@D@+0!5pAju.^O&MŠD46"ho/.#~p|XݠDTJ+g~ zf0- ~.B@c#Vm-:0ۋۋϾV$}Oܜ,Λ趂J #Nmwo`Zn54HЙ@eaM2@{{1(Ajk Ν+Fg $EUɥP.?L iLk#A85G9bhL&+1UG$U_/ Y,ˈYwt0qw'}y%)KTQ:RLAOAZA. zaOpD!&!UUßvOvg'vWט> NhQn: )ygF_悶kIߣ_*2i%9p"7.<12 ;BGߘ ,S?$ש6.v C= .Vy^;pXN?im(C&0^ i%vQt 1]\h:-47iJ3D)k "GbO%@6[:$,44ǁ t%l5 t`'a9lr)zwXV4?(KK+ vuc&O&8}:6liKOR \^`7ۀEBXn`t gzxBB  ')ijG\ѱK*rQn82A6 ZBp.HnZ"%߷ @@CUg0%_@Q ,s*Q9km5c hnj.%8gR[l\^.ܜ@ "U8ڳs9| #Q%mƶo/I惙v$ټQ"2 YH?;;jR4=v6ס͛,49!E?0HCH]o:-ۿ<%U=' x1ܪ vwF}eb;pnvW'L?Jee$VS ̘!dnЍζۧ;]>Q՜ƹMp? |kINOt[g$8{6M`t7q~۵+opmɦBUR4%Y ܏qv \ {JN0B`Y 8=:Kp XNn(g`WOnŵ\6 LUpzHަ`1 + w) g)6yFȫp&uU+rHzՎL0Ʋ4;xqsr%yskT%Bm9f*Ћ 171~afi8Ǧ? Bqҿs#$MV8;'_4%MSS---lݺn:iYqLߜ`=ٺHCw).ŏWՂ "@ 伎$=eVXeotuuJgg'" ̉tvaVjҊ*mB8 <7[ڑ&ةY@D"f>@}}=WUؿ? t4*O 78(mSA7sdmrarF~Jb;]'!j-b2? 9K'W&I/9?#&306GSSSC""D""F9x 8pAFlF%3 %x!gbuw)1I&ˀDc4s"rG/Ls[z]p$zE\f;]#ߋ U0P6vttq466d]^j\ {-<."9xtϚ5W&nWJ9s&555%~1e3jurzˁ/r^6,U~c͚5pg(~PSAL4ePN YӔ q߁)UիyzFX2 ǘd@'a A1i5OcB"F;w. Á󡳳5k5?Kd¹,K(z`9ȿUwl.g ˗>R(* 2Hg*mmcA 3<~)ٝsg%XT.؛2c V J4D,@b C!vST nZcdLЅynq?ffOY'w\.[Ӏ_jR c؁-|Yoǘf] 1#u1LX͢՘6J4tp;پzUuܠ YTuHD~[@ 9dRLd-R՗;^yz<Ɇd|\nV| 1_?bGW3fv*E0!z2_b k^g[䇾&ODܥ;2_ y%b0)/a|,gr&`fW)(HƼMGART0̜̏d|("JT4,]P~^=f3q\u%>\ \ fdݽ>fKTUn1/cDڔՎyqNO~WC8f``NzT;yb+Յ(IHjvBA?ż:e1v.U4% H:G{OuO@^9L?P*VDT g&1S>=ҏ3cȯρU-7U7,n.řqf}% ŸʴaBهyƌT* ȕ_yyX "FҎ[~T/o.R \).`s|vAMz}HU` ,u**TDd2pF auF0#S0oܙ(1vl tw2L?cf/FH&$Β.x# 0Y \ C %`sxxz0e}yR%k[QznFL image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/slackware.png0000644000175000017510000002527200000000000021535 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME) ?>9 IDATxiu{/\k Es$wG!%VFgܧeGvzjdÖnSe%EA"DqH(P{FCVU@2 YNdeEEFD?nwB)ż}|Mm^6/y `0o'?_rGP@Zqq %bJBdQdQdRhǮ?e#>Jw=Zcuj&bP!D ԔФ&<_yA*P/ߵ@T@)UbO *<uf%SG`!eMC!=I! ]CM 4MCJ|<ϧh Nc{Ed'(F4NO Li~{п vhp"VaF<,xPZµf@}CƆ50Mj,G.o%W]CL.%P(tC X iD&N.TtiPeE?p=hzyTxxD ԶդfEh[PygɒLp!y/yR(R(Qh$5HgJd2\Ta7oy\VB)F-5e{{3M$=IbSWMR'bXIKd36 C}c׏̪l[rM]t\HZ gax(3DLb=wS+XXL#l%R"JfO;~':v=o^ص-{""ְT[E8vt\w\1|1WbA!xB'drdI )vSyua=a5׭֭^ʊqX?Ţ{i_'CG<. u29L`]pS6X `ӧBڔX^p)7c.vӝUTt%tt G:bpP1W4]~? `͎GהH(Qްڴy91::zPy|O>;G<<9vN=s׏`G { %Ƣb۶f9у9RAH8@7%t@27SG\[GZx ҵOKVZ`!,Hg?]/vzR+hd>=SƓ_|gVDwuakE,[¾'~l:*Al-+GGF@^eօl^N"᭷ϗ9P>Ox^HTy-Mvo2^iP] uV>-McZ%7[|<5w~径ܲ}mJz:?yH0$Ţ`(sVTKتtXieVyC;nQP,+)PGC{y}_N|<0Lnˈ͡[n]G>{F/u:U D!S B:!C\ק)>:&|\7i%R{j'0H>mE Bm[A_orNkdAK( QcX z猃7߸5\"ɔX] V9IThm{}=<;!_/pȋrWqsɯl7tTo WJ=SErmޱ \WvgP*৊xɒ6w;m M?8‰']S,jxQ=l_wxnضs!>+DÉ/'4JlkWʡ􉧀s.;_`i_-_޽Ugfy<;9w-wNWwy1{V} 8ٓdO9_m[6oh;Qg.WP(cg@戅NY/w܁~BsŊVzd34 ߍ-:8b/>xtHNWOӽi6mS -M<齏l.Fb'އ#My 4֬0S.KU XJMu Ţz hؠ1ʞ_?'??:߲y5l/vV ī;<‹vu & L=E&%6* @7,C5k"XvL}6KT&|>KwO%ޛYKWãդӟ7DitHX(G# ({yjR͉6-5״ŋ8vlrz}I^PȢh{T='Y>&b,454)* _AQQ^me6Uǭ&)}*۞-AGǡW.6\U<2JsB=2(+ߙC$tv^ȜN)^8L:O[BEbH\V)xp*f4ftScd4G^f7.!}iB!X$D~JLR`v *Bj,^VG_D Ձ .YT*5ɪG^pe+җ7xG4VNJcK^XZ >'Gm|I8:ժ`=FQn-5 !d݌q^< w {3%}|/XWc]i Cxa!(L ?*nܖE] 12A!fPDB CWm^qף5$W4]/ou{'* ۰m4Ǧ]%v[ٲy#K-mxB'_|ѣhNm=2ˮ"&y@R0#k׮ƛod- z/%'3c#(0#~x wmMb%VRh3bI[ַiz ~^=QNOO[3n55Yį^=M*SȤ{ɌĊ45Bȅzťo_%5Ӷ¡pvq|p7sǻR,^u[x7{%OsQT:sxG]2?G7m/v'2|@-yU PVG tMNt_}Yt]U΍ݏw))21RcIIFFappotjR 9} .!|œO<ɟ|OVWuR3QVAJ8ťԔ7/o6*cSgȞ9f4bĢ&hh+ֱzA,b`~P̧ɦFH1<8HGGǏw4fVsd/w,h7*04_yh+# )I".)L{|H qD,AMMڷr_>C%ɝ=ι5{}Y|Uc#M3DeT\ROs4>cc)`-1-{6rgDOW'z^ N{kP2L)g* @J!D+P"&MtoXnuzt'li> w^|y= /;p|feqOU >45Mx,^e: ~Q-qO;ĦLis U/|~=/P9Eo躜su5nh&a,G9|&2MJA$OM;  O)^o\uA(?3)O r DW^>s6}k1n{<_9 |U7s_9M։uƪ* $ DA =:(5O9oʖ: ?O&PsיCRFgz{^~u0\4$XˍB E="(OA6@[7qox dX s h˲v5O-3)H&PJՂ_=BRgyn[Y~ C@>7{cƖq4wϤ~Gm-]=uZ厫奵ll^ǯUρ@ R U@;e<6&P=a.>W Ϻ scu-I.0p\ޭ*|Ba!<϶+@5IvUhUo"q^yټCs A>7 NJ&TD` Kj q@HylJ%Ô 9qfb?,l?7^pN/hpõ-c,[[7rv93WRxI?P4tR{Why6~ ;q${^;nKIɲ 6#l:~wwoCSgT @ށ @}%'8%߬ .&_$Ϧi3?hni3w+or;Sڕu^^rs<Ńoh'OT>BP,$AVdQJ쫘\% 46&<[lL)_{pW8|,h4+&hneAsƆ0=W2ؤk<2몪(FnŰو䞊 7|)ζxoiP!_t9ݛ( `^ع}Oߵl4c(BѥXѴ'D "aDԤ9BKC p=¡rd׌/kcR9w V>@)?J  ?LWL+R+b4Cgs/_R+p1ZgEcc=q']-o$dŐRm0< iANg{{.k^/^<}Nr:=Pl/›q3xXRiQ[kI9>k/TQ|߿`g62y{3Wg}C=uE *dnzgU@ώT@(Rh㥊 ]3_(PWgiuQiϟ`& P 220N)vOvW5Bb&ƌ<*/zOX&x٪KO,% 1:*իW{gݦ)yD?JiG[mCGE$BoChzrkxWO~ /VJ%3M\GFŽ\wu[t>FCң>xw~uױn5|=+̳Qz~1F p47PByWN|;Um5Lv szuJgJwxʿeu 366FvX-w| _kp0 [MyAhu0<4@#ɐfrdi2,D,YeMgtDP=O+Sa}@(zӝ^o_/Cw={Îud ##&2!u@ Ÿx} #ynG.m .IDAT\G }Lt(7׆hk~#BarJNG)E)|ry"g$Y*'.ړgᗊirA@J@t9@9̝ym9HHlIE+`Kӟ?`tNLH:w!S45B+v֬=| D cN]L]?z.LbDz[R#vy-PO=((>cE_\˻HeXHy> ?PA>/0LWP(?ǽ@G!yj8u.VXfq+g `t0ccb~[g^Q pvU(aѵgiAaW|.(5=\v3R[WS;`5'M ꑚq^U/o=!l5u(k%v΃_*ezj00vS+==:vm]Pmmu+-򱋂Ոr!ƫ/3oֶ`1nud7S m v&?ο+ܦK;y(mBq²|l;n<Px4n}s0;/wEs{n{ |E@ߩ7pAF*3t,KV1f#kh.mfC"õ|'PҀ=26r)uhˎ[:wJ1tc'wl )r8N~,FN26|4-mߪ$ `j}_y;{Fޱexgß!Bv򸎆UtٱWW /:na_H,4#;Rޮ7P* ^HT.b5XU4lrTM+4|W 7ayN疰"5 Me{;"MC%kJKjb Zj#͚&KByyB)̩A[{ VQU殇j<Yb(/36}"`=ƆO VJNeTwJtjxC{9_Z* @bӧgNA>3敌O2n? BA|iD7mJv!| D<Ͱ>VK,=' HMiFGv)$V `AiM.n@Dc 1Cя\vSo{.F(BmJNng̩&lGǖuFX ˡ j kF# ]F>@`EѨ~EjJՕ3mi,Z~}t(\ WlEy0#_H,b4|Šo0xMCH.4i&4g&{-9)f\rΌxwKEW>R` ,55Vaԭ0,RjzTjFߕ ⨝IB: \ 8 qWjaR">.xY`r{8P(ƴ?F]ZXiU ]u {U &|G1$4.IENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/download/ubuntu.png0000644000175000017510000001131600000000000021075 0ustar00useruserPNG  IHDR>asRGBbKGD pHYsMitIME6vbaONIDATxyT?jↈͰNʘ&. 0=(LfN2cNdff\(1$QV%q!H=P@7^Nڢ_-{Uᜢm{"D}aG<i_V  ,>Jq"T끋ocX&|pps pG̪i〟_-0oJYM 2z$]j| \!Gi20c;2pND NgB ĈX=HBa@ V4j#'Pg lTqyKvPX7?~Hf'Cvp d--`IesNwΥ&"@F  Qܿg=^)',p#Xo|"|5:WNz|pt?TQyFF!,N2frb5ηX@p# @S6@Kp|N\8!h%9"`RU\؃!_y5]:u lФMP\eJ cWS[q;ؾ';"='$X\b,e( } 5{HI ߪϪ7";\d}Hπ[ k6aDw&]:1#"_#-.܈|HJ5:՝_1Iǿr(z\7\L*[w>H.~&TIO k X@-끨fH`Ie Z }`M*Ϥi[ěy } $c UD^&>&da1FJ A?ܡ*\<ȶJl,V+^F^by tb:6u.Y,8XߜF!E3e‚z^HEQku6I'%Aɏt"`~Wy'ۓVgP|{7eoiC%@N}`$cx<XgV^bp!yqI'8]?_PQDlQXCUh yf#D)![s F(lЂOV=L*$caWBS:XV꟪+;*Z W67p&`7g][[@pm_5mDcw"eڙ:}|'>o3 z#\+M/ve͔QZC8a:AfAw<,[''C߾M? ^xK>{Z"zOaB?$q6cnqL*YRi gR9`. ݄C)m-sTv%Ҷm'mC6o'y"j_}L!"{saOթ]18N*]d7Hy5@9HSR`! !EdSK8CT^by;e6zWHh??2|b惗F ׬ʓd:D|@~W vзRS4s* O_e됶 HRɢ֘=Ho*#ix,E,:x d%*2~-pߏH)*)(q&4^Mc$E׶?iu_1@`XIa-ڋE_໺\Jϊ:%~E `? 6" 4sӱoDW#i}:ŋtRIՕxvE=p_aNzkyNI!N: 1~=pϞk +~v<_ Bi dƲ"už- 2M%N:>I ` "}IDA=*O>B^Ek]4L# 2=2|=rdQhvgN_ ]ǑMJn3yXMw%8EHE*AVy(:;cٶߩ#=8zn? ) Gm!w6}Yz٭cOOA1%uq6CSƒ ~6TYܻG[K:w[7d%Q3?K) ΦRX}"= (>l_QC B^T7eBSRY(7g+"#G "SK=qhl,IǿHN/@1Y߬{ ]DhMٯ"uꅎ@T#uM(W!?J*T9qz\CM}nsz+d Ίj)HS%"$l5O[Ʋ<$5RT_ߍȴC#X&,Cr_ b,-?Q}Ah $@"7['Їr~~qNs`N} Ӓ&.Tьmz {"!jAU"9W~=@&MXcZ q,rz&T? ]Z[.U!EP|້G^H:ݻkJmSxTş mp :>o4%Oۺ8H"YCoXGg8BP^Uz] !ja"x=H*JtL=ZxM# |0$z2;"Cu-~лd{K?pqFp MyMguH+j@i+v]ĎϷknIHъ,4GhR>f9V)SDpc-yu{H#a 4#лƲwE?R^L.%CD \!WeP9$hBFy[cos T4݇tXʾI4d1Zu?o,SO!DU!JVoj~9`}))"D8(  IENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.051666 stem-1.8.2/docs/_static/section/tutorials/0000755000175000017510000000000000000000000017262 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/cauldron.png0000644000175000017510000002332700000000000021606 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs oytIME #IWU IDATxYeyXUeWNHtC$B"< "@! BD"%QL!L(!!NlvVL{Xass9w.wI[gYpծUjW]vծUjW]vծUor^}USe(^D^ֲ,ZZ(O"7x#{3>犢:^iZ5 ?փI9Ws7U𓻻?Gs^z5ܟXk?ϲ'<SUow_u\[-ݰʷ\vMZ"Ҏ8@$&I8?)'>XU_PD"7x8mOӲgYYkcUMÒj $H7""z"DD"RP9PLS,|gsVU˻wV5cLhh47n2cDD4M?$ɏXkpxWUydE, _~O:_Ͳ_noo˲d}}2/nmm:WLU"y]dU=\w81-8+ r9c}Yk?)gsعw^ KO|r,˞/Ų,_]ލ]:7o$MSm<jEQ$Is_vJkλ|]~:UM9uL9GY TȔ[_xwʯ d?sŽuJ$8@U\14Iy~C0 U '>K5Ƙ~m4wq}TIh%k܏O2͛7+늢Sp BBENEY8zFuׅ $<$d֞ﯮs䓉?:ã(ANh@i9>ʵ,sQIZs177̞8|3z뭿2sJW^yeSD>}e/ [idw~,O$۷ͥ+|<+=*r MzeMq)i.m {e&.C/kBEUDu]T7.-PէD$y?pѾs~IXɼf 9*yҲUNZuzM9FT>we p)ZCK!@H,T.˪p )s^+:}8w$lw#*piH$\o:J`WӬl"@]O X2j eVI.q*x3HP>R%_JT pB9`1u:!,4K8aK#N9Un^$U5^׳|:4U9KþfƼ ^Pp2 03a{ ZKrcW^u5&=E fZ Ns P( 4kti 0l)$h_j* M$No@-&} fZkmEH U׵UrqA /SI0CWDzW) Z Af$u織#?-ٽL DW M|}tC?STAuZO0K7X, 3s ~~@Pʥ@T/ytIǬ꜀p[zP*'!Hu:Y`,u9'㇗NzO<|N X\_$ues 1b kgF)UrDX"x] 쿡V'S#CɵAS)1R`ΰzjJzWٷrQG:c<TDuSu/ * ,J: GRQ ?6Rh_;y'o9Q \[97_4Ab3QAoPzzY }=lR O'{l's |7uDFKgpm^Zyʹ^7:7$y3L>'wYRX2Xg&W0/Y]rD~`<8럺~U~YYnfHj .ӛ'M+~c0x+@jxӢ̙gOW)8KǜQ eN Y'E}Q^^U/ABߞs)x~NMT翰xU/1TYIn&ƒ/|߯ %&~{2znjnRn~W-\R-R-pbcznb۶Qߦ8Θ\@;_NNIbEXt:qМ:\}tQEް"/_ɭ^ڮ~U9RG]fkr 7qʝmf )粨/MX"NGd\`;3i}q-vSf_ D933%BΉ,Oy>I"?1x(EZ{\ @y߮5az)%#e=Q2r+ a\ _:RQ[hE剠$(Hyomu 7t~Hh>÷YX- &>/ ( e PXe"썅¤KC~"PVQKzMpV|?nI3Rk3xaB*L ?GDQֻmUF[Q)<3^(r)\B~1@9JgbXz{hjSNJ&ododjRSM~??s|t7s;8-,2)/!' 2P8(>)<^K+e^F)ڀF%ֈt_x~2> -c_ P WƂf%bDEIƞq@'oAjV= zGykByf9Cg;Sҟt h$Ўap}6V<رuijדJIc_p[ 覉9Mhx!ذA2PAA)*J 1Qfe$22&S:!NeW ga0??JEga|< 5XyϧTF&\]Gxu붠dn:IpEɡkp~B$ .?%6 < n 6S |G85 U&v!o[& jCk zZGV&jaM5D^J[QnGIF!zP;:/H|*|oÍuXxoKZֺraicMRx/ߝ (=!Z) p0 v hD=эDQkg _?%> ^R{~@ Pۆ"tKG*(E]V*`Y&ёX < QZro-yןgutAخqיk#YjrdI(i7׃uչk{ [wJ) u῍ۆkiÖ{Av2ȜK0Sm3,XnP|@,@(i[k0F42=Z8G`R@{e0DvE+M<8'HC\` Z޲[=#I6 j'궼Rıۓ/IvO%``oEyn0iGvXiNȾ`6K(2{?ԊKU"><¹k6$"V hMdƙ$?TH "n? ֠vI6akϿ/ ۖ< :t~&;'∠F`['zbBf@aRSZ;2u 7K)~f_E:DUqΙA&*JDcy__nwjBR~"+|'RQiJ7(ȋ<1^8ȴb on +! \0U8ǰ@ =)`lC0:\o;ȝ+sY\N^ DpQE~ҙ{˲ c5\0rZVFOTЪ`Q;ک2玬zK@+mO : K*O'0=SkGdA&5~V^v>``KKWM)hՑl2k;;NP^44`xj霳(Jʲl5"3T倣m%Vʨނsm< c*ƹn\8RδD jVBa9r*MMNFBQMcTO!#9%J)-+q®:C_EHR <ܩN"l+T@U(rcL9'Q)"2nj1":G:гec!w0ɔYeL?+UzOI╤ R"L &V;pm} oȽIH+C9ʽWx);G9|e_-aGA"QXkwsiazn,%ZwU+59ʲo3Ƭj/Z*DEQǫ \&bwMPF &*$Fv& (cyv:>P8/P3AذT!C%8cN0NvG(&9(Uqʮz3#_,L+x euE1X`(B*5|YZ AH`s"20ƤeY&Q1eY 6$N {J%Ñ!D֢PX b 7reUPfϏ/&A~v %Q*b[da_M|Q䝡/v3Or&&H;q4ELJG~t:`%I0"r3㾪Xk%b8,rAzFCT&"2ڪy) $vR8wl(" Ck z Q)*(K% A81IKx:xatdҞSF CUJk"k>=ZN*"IE ͝@'".#+ bNZB\o|l,sa'hAZvD#BK+(& a72,w 42 6!ȭr)l>ơĒ[z-#Ӹ!plR(K$ q{ls(<ϱV3)p 5w}iT Dy@ G;@DzТ8"rqZȣ9_2`rx; rA~n2d@!6h7LR8\4=5"eseIXBoT"Jt"FT-s { D|E c7LSf$u l%1ƔZSIJ(܏uDQM/""2v L,'ιrU?R\ oo . &]9q1sVDJUjpZ8N,(Ҵ՚EюD0"XU kI[-lQM9"8,XEQKqExbȘY{'Uͬ&SS܁s.~rZ_~ uU '1 0uIq2~99ι=܁1f""eYeyH."+ι_1%PZ9)1Iqh;N>Fj9ytǚlbv^N5&Ƙ#Wn!"eY9ƪj+κEk딡Ϸx=({y$`?A8,n9}}˚qwsix?Q]ŖsnWDFƘ2LokTv "}U5"BEc8'ƘmU}XnnmZ:vqDdιvډvqae16SP9uڃO^Ŀ!fTVC5VX>^^hFa%Inyڙ"2TR11&N1\=O `*HkTԢ[Y:UH*ĘG 3C1wݲ]Tpta J\rAw<GSnxUs"ĵlc?*SЫO-=MR0+{YBYg*nƾ I7,4fY}Y#@femasRGBbKGD pHYs  tIMECT IDATxyxTY2K&dod ! }G,*PRZZmVkg V)*P@DA@5!!$! L&L&0LwT|9羟{_$ ._*p8pssfﻹ}F J]ߦNߏ^q?_B8z|r_gcSp8͆nwaNgATő#G;Xhwy'#F $$zjaBVf?$I:Sv$ɰ{?~JERRzHl6TJii)xxxӃ;!HKW+ b&NHGG7x#ZJMM j`߾}DFFV9}GMM G]]Hcc#555aZ5Hسg#::3fPUUE~~>MMM"wssC.r}^^gϞeŊf ===(Jt:~)#F ++w}NLj#ؿ$Gn0}tbcc9}4'O$00Pd2&<<<_~Ν׳h"1ʹKZZYfqA`41L?>` A4Мs8"7/;exkk+j777 hZ]СCXV4 V.233駟B୷ˋ?ڵk;\i^JBv>d2p"ܩ9x/&(($+ FjP<==;ٳ),,V˔)S a֭ى?ڵ'~ jq6 Bf*#%T*S(xRt\[ذa\.2l63k,*++h4ttt0aq-.\^FPP(&$$K.aZh4R ڰ477GAA)))~|2uyg]4j"""Xbg[lpf޼y( { Q֢9wQQQtwwp8eĈxzzNoo/'Od̘1jQT?DZ-[nuNj#8/ |mعa?vXN8ALL 3gtwލ``֬YP(?9rV˲e8z(R͆1Bz=nnnxyy1vXx"#GPF#Z͹s\/HJW%< l6⨬dʕh4  #FLcرFLBBBH$h4ttvv܌Zl6@ll,gΜ!%% kٻw/;vg'׫;xUg,].JcJXXd޽RP(LLLǏ;+Wt!דISS8q(̤.X,HRQFqA?kh„ F8M(dC}]n&"##3gH,>?EX,{2~xRRR1c 88ѦoiinsQq %%%h".]Doo/QQQSUUE}}=Ǐgܸqbu8fs/<',,LJFFvAhkk###Cرc놈@Dʆ HNNF&AKK PRRŒ38z(ḻc2aȑ0j(멫Ϗ" cǎ%;;{9_=4f[ii)zx&==Nt_3gp@uu5===tww҂dB.CHHt:IMMeܸqL&Myy9?tCNӜt"|p0<<"jjjNkk+^^^={BAXX;v`(..&&&#Gۋ/?W_}uX4p"O4ȿؿ? .l6SVVFSSIIIBWWjѣGc0x\]ݻ jp8P(`67nh4&L@gg'mmmL0 dƍ( Ak%2 wwwׯg˖-XD¡C0,Bѣ=z46m'>>kɓH$L261R^(JF.3zh݋7\x///E}isg4M%\i v`𠮮Z"##Q(x{{Ç]l&p%d8 jӧOΝ;6m+%++rbcch4t:L&F???L&$&&R\\hE\slZdvd2,~e+JkSyvڅT*&Z(hooٳÞ9?p=Q 4x9{,[n_tg͚Enn.F_|Yfo>n!޻cǎ03X믿<==l6Ο?b@hh(rjjjX,0c pԸ(MMM.YO&Jm`$U3p0R*Occ H$( V+;vgdee Y~36l P*d2? >>>7L_}{Wtr9R)GUU111сD"[L9h4c٘?>111"!g*SNHфZ~=$$$}vQatrAGG~)ׯ'((3gpӹxxEH$_8@IIVˌ33gC;CQQըT*4v;ZB!Z5JFæM0 ,XLo`٘4i#F:Uo>J[[/唖b 'OɓyGYhxq;w.yyyR[[+zł;|ܹg7̮]hllv=?1cO?eܸqbəغlٲ!'^p<ƏѣGow477Coo/bjСCL4~Z_WihhcҤIu]5JGGG#,, ???~ ^BZZ555ߟBBB8v]/_Ns% UUU|'"wq:TV]"l`@[G$رcͣXZ[[h4=:G@HLL$** gݺutvvhwA.Ϯ]\-?>ǎC._ =6m"##$zΝ;'8\_XXh bDtpἥߙ+G0}tyٽ{7 *frl766@||<7ndժUݻ^xd<==En~l6!!!TUUϢT*p)))Oܹs( 1ǰjkkIJJs8x k׮XDe\?Сub/;8jy1vPTTT*:;;={6]]].הb tjll$##2F#w}7/k֮]˒%Kĺo>>>b"OOON8ABBƍ[+r '_nސ}LjANwkLF@@S__ܹs]lx&NWs=twwA{Nll̙3lڴq /|-b޸q#>('Oh4r1 `0P__ONN&x3g;ǏGѕ߫',ڶmz+;v젰^A`ܸq\xEa6\g2ta?饗1c.\S?Yf _%t"[n!55*D*Ƹqth4iooBsK"x7 PJKK`ٜ:u%K qFDDc=ҥKt NT&O̧~: 5?j*MFuux|||HII!<<ՊB`ĉpBz=3goZtR-gs3Йem DBDD2~xBBB0Lرɓ'}ܺѣ4551uTE&o>6o̽;lffÆ L4 wwwN>JBף O>ٳgL&ˋ\d2 ,>o`׫|76Μ9Zٳ"Kf3k֬{ٳgZCJWW ,c…8N>MPP'Nd̘1qyJ%iiiTWWs`ҤIl6O+Q]… ,^RB`0}v1O>asqvƍX,̘1lfիc޼y455ŋILLl6-//p!xA&*WVS'|E4DDDENN466JϏ0`0DEEaZ)((fڵ3ZL&s]{afR)0j(zpvCpww'44n[o_RGs}E9p7tͣflCu!X9sPTTD}}=wiii ?̫Jpp0RH|||pqcc#vK +1|L}wMkk+III;v-[&&~0|Jw^uԾ 3www֯_Oxx8 ,P\\]]],_ vBHH \x8q+WHXXxxx#w/\@XX .V~h={6999tuuĥKP(̛7ݻwA3~> wɍ7(JA^^^u]@ĉ.6==H,X@ii1Od"""BD"!//vz{{c7'ƒ͆ xW6meeeSQQA@@dee(u7|QF1k,ob~]7 !:c(J, K.KZ-JDݻɓ_h655@ii)+W V={ _dѢEdffsϑGee%l6Z-۷ogƍ455\.~e-7x#6mKbge߽MҎ~poݺߨT*zzzDVۛo=ZLӓdF#ȑ#TTejԂCɯkx7%""Yf1rH,X@LL ^^^ӧy衇XfK|eeeTTT |{|+ |VTSg+H~ߑ bDDܹ,3gO1(2Ҹx\̙3lwyH%Q IDAT(**BP>ŋ]dOSN<9l&PBBzޥUwFNrNk@@v:;;ILLѣ"!zYr}+**g%22{L"qyLJ\wSp> Vq 㳲P(( ǹ;"33S%1tZZZx衇!77)S믋3~x:08_G_NNAAF9s`4]K.1sLڨ& @BBB(++ۛxz{{fՠP_Nw;c6Y#;;$Μ9NcÆ dffGuu5gϞnW|GիW|roF3o:ZOxؿ?#00V+T*Al6sA1@c6. ??^JHLVv;X}yw&R&1PΝ;drrr3f /g!..N4Eiǎ7j@|~y].{>`oYp!:u A={6 H$PLLȚccc'22… h49s2'dܸ( *++.8˰ň7JJJ(//'++5k_^xXRSSIKKC;k&;wr뭷R__/<~~~\pA,^AN;OS:Os_Ud|]N $$$ JIOOG*ݻ9tɬ^x055UB!sgλnfItvvrE~Of̘l6 7@MM 6 R7gϞiȞ W2pBF#ӟŷvӧOww*)wXURDo1+ϟ?O@@===:tBAGGYYY8q???RXmm-^^^44 Pș?AfJKJM}}[|uL2nillܹsdffl2N^u.\ /o}t+VXV/fb۶mxxx|Wu`ܟ:u*999ZJgٰX,jbbb8y$mmmbw'TTTPTTL&P_͛;;]#7k @&!Jiii?&>:O?ՊhJŊ+4iПի;nA0&H{h4<\tILru>Cjj*$%% u]_Gg''//OT vq3*##s7L]BACCC#jlp8P*ݑɤxyyhjjϊ}aرY444 ˩% D9r$ƍsa3\̙… _c9LN@iӦ8z0~lxk=?wɑsjf&L ZD~~ؿg 3`A@@ mơR(--#ߟZvqq4׳Ý\w͌;#F#T*裏 ts=ǓO>7 n7uTnVfΜIDD׿y饗xǙNn_~2erssy\<Yx1wk:9ҥKhvFCMsSueglȞ(/ai:w)))bh)S|.8_A &S^ C.SQQ1)mNK!'' {.BCCjxu]B`ƍdT* V?d2tRz/4VX/{NJ+[0Le8Ul۶ƌICb5 S']OL9P9r\&4fvZ6oyfJpW $Y@}vb0)g0E&==8rGO#.\Z@< o>6m4999,]'NuV5vh4={Vpv>nb &p2}ap H;q$MMUjFDC}=9@zF: 8r9>#`kaϞ=q]VlڈTvi29/a۶m,]7F"##pbvvMA333t(?~ujFc' ?^gɒ%tSRR 55xq3\,wu:Y+J"l/ZOT*Z#44 FEր.]Bޟ؅֓Ff3h.+J!++ RIQQO=p bPgԨQI&Yn֭C"C3≊Ayyc6POژ^@wu;v Aؼy3ެ^z v[|"<|Ǐ'.^L: 8s bY),̛7 .0V3?,.]s=3C` T*,TTTp\!HʪJڱ٬̧ZF&@eEEEh=L]>CTBCYuԐ|GyC1w\.\0l(//Ϙo2Inn9v!==ʊ 62Y%773 L%.]LQQY#¿tA\p)M^GKK+M-m׿: OeiA.0jjXn3jT Cg#""֓jD>,YŸgRSSYb~dff;~]F~r\FVihmk]FcâDh0tww x.eīoݍ GFgGBb"ҥjJKK'?YJQQz3eϛTÔY44aY/jBƃH (/G.c1:8cG΢V`^&~qK۷?oQׯ[nd2~0?Z+RP? ˈOOO w Z[[>~/NxeÆ TJƤ!!13:?~.\(f޼y}Ö-qww'3s,fm] '6njh4b2466{شoo/*++QxxRiiif @*r뭷Duu5gΜť<ʈzB\!_Ms[=u X,V/6m'rF7@DH$ntv8s ӧpas)/C~'&O>AVs;D>#&3Je^!WPVdbͬZ Weu3 ŋ:t3fPYYIwW UU\\_/.ڬhjLf3odh4V+ov_ttt~nz$ -"aT(_ۅ\ QUL&T*[??K~6 l2o3gl"#&KPTTDKKKԃׇFݥmׯvsIܤnHn455P0"2ʪ*tvٷnbcc:uN䝍zx`sسo'-zAښZB KW^WB8bFL&###|pHs~[yxp+v%:x nTjVaweݔɓdϞ! en l6z4OeUdԩOS`XlՅclP~~>N$]vTJSw HIIeU\Ź`XxG=9|bpg3gBqyfXz-tuw@lLtt rJ4j5icq9Kss3\6>; aCΗB|||hii%iH. [6oc挙6;2\}=C{47S[SíF_~͟?@RR-466s8SN>`Ν;6xSܹs?~L*vl}sGuhZF__QQ.&g&aˢBLn}&>h?G؉Ѥ&p`/޼y{F<==qwwԩSR^uqxrA 2339hkkEcʔ){O=Ce4L&CVsI"## %66!rtBDJK˨a1Gz!a&N$*H$fq FVF*rщd<,ZHl !INp2?%<&F ??=yy'?>.wl@,`̘47+##__!2jqa8]˟3} }WOܥ* .IڂFAp@Ks 9DZZ-. in*f:?b%H9{qKw@ee%Áejᠪ\qssOE),*"?,g󉍍LJM جHǺ^xiӦ҂J j[x]FxhG"qṞ;rqqq( juuL<Ǐc߾}l6?xA>8:?x嗹\R;gƍ]I]% 턍q,{P4C;s4$Ň~;={2 X-̢E!55U,ܵkO<T׳c4 vxm־> QRzhRF棏>dyddfL&wp5Kx3~;eee,_ܥ;!!0@طoΝcĉkٳZmm4W[Aa"Vœ3A&ahGuM4:hjjrQ*b|#Ν; oRbn'ȭJ^^O<Ǐ'447k.8s ND_^N:) 9y8M`DR[%pav+חիWn:SXX`O5k] nAV ue˖ % DFF qqqB@@0{lH* =?,/~wo }(h4T*jB!(JK ' |o'{8vXaTV63IH{$<ϓ<22)))BHDFCZʹ4T*F~z^&%%+,,;nTeXQ[Ek2yU|> 3lnn5e5WEJ#}E[WW Zf}}}ؾ};<ÁP(e8c6.6+X,0 "QсJTWWGENNn7ǠP(pYx<ܹsE푭t:Iva2hq%ܪ_b :9Ndeeb?>[[[ىŋC# ?{h0tYL\8щ֣Hx wx#r޽ZZZ'"U{wN',X>c0  ;vLB~L&f1##>/xqῬcEm ' \xQsܿFh3gbT?. k=t:- jZLx'Ʉ hxhZvYPP n'IΞ=8uᝬQJd??F(d|qIGr1f455&njvx\.BlINNh$'|[#,6$2644.*`ƌ1cC - u:}>C{)HMM;v3 l6SY'ON-wZ]]C v6M$z=^/өj)IRgrXZZ*\vv6333a='S0p5800 qs=ʌ Q077V6>O;gz<ʢZ TjZmp8̾o%իW:&r*$I-w,,F"^x\`i4viZiZw:xmU~k?(>;qp1E ܢ*@ )~>xgΜBr$U}`M 0\j[ֿ"lOӧCR'EEXR{*Gv 1| L&#RS-hii\&ECG`>{e79-w/))B/WVPdB$2>cMǘ6А,KpA8{, PXXI&fr+9˺IIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/mirror.png0000644000175000017510000000565100000000000021311 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs  tIME8 )IDATx͎XNtwuP @b Ke#vkcv â% $ өIUR}$U6F'i87sMGZͣ` @` `<7"԰r/rSɜPzDW)uf3_އ!s~%x#A%?{_}zn j@P}sj.]c^ jpGWN5g"0 5smk=s~F1@Dcnb-~P`kJn\ sny}/_vs bLpa2y]8-4s v3M@>,Z)܍h7IT0청>rigGiesedY4-zJ^%@bB{ _>2>g'Sx}|_b(Xa>:=lڏ@z4:"+輂y{Hg]Y1cjy#MåGH`ALM]mvs_. "`f($I߻+>~Gts~6~iYJEQ\ }! D+yĈ_0 QI7M@MD.N!ݍ)y 2hWQ Np) )roLwF>ܻX,B3T|uo4ܻZzyJMyww<[,2v,b:Q R|{G=bR.H__@Yfn ge8\wV^ G,Uk R>fKyH}^)KDqFRKG6|^8gfH)%^QQE(sdx4PJt0Ef"F.`J_ʽ42wJ\@Y·Quz0PRJ_!J#B52FmPoaPeZQѸC `]פNL=Y^RXj v R4,`G5eYYY_Tt.~&PqwJ)l:5<4Vjh7s?ٽ }l>1+C;ڨHT]n:11 Px|_|?()'Wna&qf1Yu8.,mUkx0|>Y0`@_eQ!߆/ ~Zic9nQ m!m. D?k2qTELiKH AC:c @zJupMoX6V(?F|E6zO@fij D#]6ʽ(+OY_H1F?bf?P-~q@E-yi҂wcܖE;t?:㷩Kij?El;4pcF:~fL0~<$I2VZ@_f4VtjFT$I&ߠ p3f_X_O6m8 y!  _W}1[:O C8% T8 OuSy.|nP֩['龟SYl9)-)Z3C4;a=#_Nc @iA-:Cfe&s3kc_ ŭ@I$U\/ @.KNJ\ v51+jo iPssͱ+mIogk^ 1rd%nRR)ƀeh +Iitnd]eӊB6TcȲ,Q X@rgI퀔@Eo V٣L! qYVH"0T~ӕI8^^ŝsJ(^@[U@ Tb*#h (7E6w_Wˤ"g=G^[J_ol`p52L57`ĵV  ,cUK¤Qe usO{MڍIENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.051666 stem-1.8.2/docs/_static/section/tutorials/resources/0000755000175000017510000000000000000000000021274 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/resources/mad_hatter.xcf0000644000175000017510000010443200000000000024112 0ustar00userusergimp xcf fileBB gimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) % New Layer#1     3KgY>;x:K8&7i 75Aq4y~Y2glqc$k1]dU)=.2-;x:K8&7i 75Aq4y~Y2glqc$k1]dU)=.2-;x:K8&7i 75Aq4y~Y2glqc$k1]dU)=.2-;:'8<7U655231) .F /I 0 y 1 28 2B3F4Q5l678 9:6:r; ;<=nh;ua#9{K ._7m# 35J" Gb3(H9 y $16t6 4cU/0 ).+6-%e-,%& \+ 9g8)*v!\)䃩??)֩d O(V2i8'$RYXH[&O:89# :#:nh;ua#9{K ._7m# 35J" Gb3(H9 y $16t6 4cU/0 ).+6-%e-,%& \+ 9g8)*v!\)䃩??)֩d O(V2i8'$RYXH[&O:89# :#:nh;ua#9{K ._7m# 35J" Gb3(H9 y $16t6 4cU/0 ).+6-%e-,%& \+ 9g8)*v!\)䃩??)֩d O(V2i8'$RYXH[&O:89# :#:,+;(9 7 5 d3d1xZ/ V1.W `- m @, +*)c)(~ 'V &W %Y$=$ #p""@#r$%%+%)&''B(߯O)\**<- . / R0Y1N*4Ŧ/8Y2:;@@ New Layer     Sk% 3*[;\8T6&6s4&31T 0&/U-C+C| *GzU )>T2(CFe 'b&2m%>$&$k#Y! K !U! !M$$2%z%2&P(C*M+C ,& , ,> ..U 0 1 1\1[3= 3\5n5&6L7G7789996&\4\S:87641  )S9 87641 )>G6&L&M&3&ns0&TF-&w T-- , =,}+=+p++C***U)<( (C' &=& & &C%|%%&$&#z"="v" >\FTC2M>&>s> &n& bav2M&p&P> k=M M!T"G%k&& >( + n\\'@`Z'nh' >[A'tM'qIlPWO(FzH+2k5(;6         ####!"""""" "')/ ;;6        ####!"""""" "')/ ;;;;:;:;8;8;6 ;5 ;6;6;7;7;7;7;8;9;n ;::886 5 66777789n5[MU3U2M %2$&zMM >\2U=>󐙙T&+Ms&nw~>|2&_&CNO_U\  -G&n zszp2z&&f̸(f&ss3bs`&Cfzz'f}M&fĤʼ('fѤff8 f(ĿȬRȤ(((f¬((̸ʸz(fz((#i(!(ˣzw"fʸff̲fzʊ̲̬f(̬ȸfpff#̡fHz QfTf f(bf((̙fʪff'z̸̊f(˸'fʸfRʣ)ʹF(R8(+f̪fļ2ʲf4->G (-b99p7MN7M54=55>6Y6L26&162n7fK8&`of; m  /  // 1 + , %%"!%&(+  / // 1 + , %%"!%&(+J;;;:;6;6;6;7;9;9;:;:;;;;;;; ;:666799::;;; d5(kn *(e& \(v&0G>*k&wp+>5\>m&L&=\ W>>z&&__ g&s k*55o<\hbLU D~u_ r&& |&>$& >%N \'*\C*\M&`nny|L&ff;ff:Η9żt6zFFRƒQ88֓Ẑ2ǁf ̚f&svk2zC(>>[{^z*#Z $ZRg&3O+za+&U2,3f@@ Background     &=&U&q7SPnG9;85'1H19V1f/Nkn4B:^3>V w~`CxmY ^(y+Xi)/M<@ 5JMy!.V<"I#&dv$Q$6%hy~t1#GlyRh1Tw>Lk&;aiP~$c(.r^myp0#.>trbYMOfm~$'ŋz+.{[E)W(Ka(G#)("Jh+~e+7NC{ 74 wn"/{3PS`Vс , Js}qq++G^ )  crRD=̀:n3z9;85'1H19V1f/Nkn4B:^3>V w~`CxmY ^(y+Xi)/M<@ 5JMy!.V<"I#&dv$Q$6%hy~t1#GlyRh1Tw>Lk&;aiP~$c(.r^myp0#.>trbYMOfm~$'ŋz+.{[E)W(Ka(G#)("Jh+~e+7NC{ 74 wn"/{3PS`Vс , Js}qq++G^ )  crRD=̀:n3z9;85'1H19V1f/Nkn4B:^3>V w~`CxmY ^(y+Xi)/M<@ 5JMy!.V<"I#&dv$Q$6%hy~t1#GlyRh1Tw>Lk&;aiP~$c(.r^myp0#.>trbYMOfm~$'ŋz+.{[E)W(Ka(G#)("Jh+~e+7NC{ 74 wn"/{3PS`Vс , Js}qq++G^ )  crRD=̀:n3z8i|6W. #C,7~(XqQj'v{a'V5['Uk 'D)|q'9u'VSx |$F'qCb~gx7?1(yƟ r"+A'sCXh4@:* -."X&%HT"4J9'") 'bYoj„1"}QiKGTw_wADQ"_FbO{Lzkʌ'v$$4cn}XdO|1#\!v'H(~nCA,#䍕Hb]PB,A$ws)tmy?C$崙{G/;eVv~uT02%4k_xJs|>] 2h(Jnt)2Þp*')]\~}ClzT@`s%RcS}Rl`c%i:gR{S\r)&%뙖[dMӹɰPQ8pSw0GYWd>}8W_ |p7^\mEEro#jOAWʠUɱȋ q'LZc:P.Dz]|>Xf0bGZqګt:q-gѐzwѐci$ . 5nl=ngĚW|B><2m*`UMr̳ȹ}fJO8%6w|[OkRZd >Mիc^ڗwZB:#G{ jL]խcI`9#~ <4Q]'`8PokƲcq⛖orV޿J:74/ϡnͳ%Ejp%8̦[P^cIw&q!\:zB^exFW3l㧏cc9N2d(,;N쑣[8wJ@&R<FW.,0!*1oEpl_b uaTkvd k2S іI49'jg' 4u}^rd;=E0$Cn9Z~6dJGbu5li4y; ߈oqJC_pNnd`SG> JX]gА"p\KX\&":v ۳'_XS/˥VS{yB 8i|6W. #C,7~(XqQj'v{a'V5['Uk 'D)|q'9u'VSx |$F'qCb~gx7?1(yƟ r"+A'sCXh4@:* -."X&%HT"4J9'") 'bYoj„1"}QiKGTw_wADQ"_FbO{Lzkʌ'v$$4cn}XdO|1#\!v'H(~nCA,#䍕Hb]PB,A$ws)tmy?C$崙{G/;eVv~uT02%4k_xJs|>] 2h(Jnt)2Þp*')]\~}ClzT@`s%RcS}Rl`c%i:gR{S\r)&%뙖[dMӹɰPQ8pSw0GYWd>}8W_ |p7^\mEEro#jOAWʠUɱȋ q'LZc:P.Dz]|>Xf0bGZqګt:q-gѐzwѐci$ . 5nl=ngĚW|B><2m*`UMr̳ȹ}fJO8%6w|[OkRZd >Mիc^ڗwZB:#G{ jL]խcI`9#~ <4Q]'`8PokƲcq⛖orV޿J:74/ϡnͳ%Ejp%8̦[P^cIw&q!\:zB^exFW3l㧏cc9N2d(,;N쑣[8wJ@&R<FW.,0!*1oEpl_b uaTkvd k2S іI49'jg' 4u}^rd;=E0$Cn9Z~6dJGbu5li4y; ߈oqJC_pNnd`SG> JX]gА"p\KX\&":v ۳'_XS/˥VS{yB 8i|6W. #C,7~(XqQj'v{a'V5['Uk 'D)|q'9u'VSx |$F'qCb~gx7?1(yƟ r"+A'sCXh4@:* -."X&%HT"4J9'") 'bYoj„1"}QiKGTw_wADQ"_FbO{Lzkʌ'v$$4cn}XdO|1#\!v'H(~nCA,#䍕Hb]PB,A$ws)tmy?C$崙{G/;eVv~uT02%4k_xJs|>] 2h(Jnt)2Þp*')]\~}ClzT@`s%RcS}Rl`c%i:gR{S\r)&%뙖[dMӹɰPQ8pSw0GYWd>}8W_ |p7^\mEEro#jOAWʠUɱȋ q'LZc:P.Dz]|>Xf0bGZqګt:q-gѐzwѐci$ . 5nl=ngĚW|B><2m*`UMr̳ȹ}fJO8%6w|[OkRZd >Mիc^ڗwZB:#G{ jL]խcI`9#~ <4Q]'`8PokƲcq⛖orV޿J:74/ϡnͳ%Ejp%8̦[P^cIw&q!\:zB^exFW3l㧏cc9N2d(,;N쑣[8wJ@&R<FW.,0!*1oEpl_b uaTkvd k2S іI49'jg' 4u}^rd;=E0$Cn9Z~6dJGbu5li4y; ߈oqJC_pNnd`SG> JX]gА"p\KX\&":v ۳'_XS/˥VS{yB "ѵ+V! >䜨pI! ~qV)%Ln#\IGr~QXX/8HesAߜ5uW-T\i/G%_ "ϑ91]*ްlJπ{IRb,H %Kb:y)qp'\ 7E "q9()E /?eG+O'+ 9T|tEMX7]T/6]kiPjLڈxJǮ142< }QW9L`si՗s2 )o/Y% 6+d8mF=ץ/3m]oR`Gd5nQCzheh"FEL_iOZsUIx[|4;4h<6]U&)Q'f[[[v֝S'C9tC  i[DO6OZ3 2V5$o+e T^_ )?]TE8Oyw][p6_䟤T,[v(zuEZM'RT*UUEiTTZAI Vtttj+) '݀;7^M;vzbTGh5 ֯&O83q;XHBc'eq[D3H:= ي u:]o5{6yv\ juz1w{ $6UO>Hu^)6f 73;H;F3?~V <9q(`7* yJ <=8<FbSZz 5\_w58Qgif7Jۓ&#q!] ucD6O>O (Q^LmiIC&;vɄ_ouq`B4Id1͟P2[( eti$Fh"= /h;9@.zoVcE߻ Wy=*$6t񉜋#_%Cw1$:SMந;>%+G)c@|%&n-Q<)5P4:12;o0j/D0S.2?F[hX1tkjJ-s-=.nV' "ѵ+V! >䜨pI! ~qV)%Ln#\IGr~QXX/8HesAߜ5uW-T\i/G%_ "ϑ91]*ްlJπ{IRb,H %Kb:y)qp'\ 7E "q9()E /?eG+O'+ 9T|tEMX7]T/6]kiPjLڈxJǮ142< }QW9L`si՗s2 )o/Y% 6+d8mF=ץ/3m]oR`Gd5nQCzheh"FEL_iOZsUIx[|4;4h<6]U&)Q'f[[[v֝S'C9tC  i[DO6OZ3 2V5$o+e T^_ )?]TE8Oyw][p6_䟤T,[v(zuEZM'RT*UUEiTTZAI Vtttj+) '݀;7^M;vzbTGh5 ֯&O83q;XHBc'eq[D3H:= ي u:]o5{6yv\ juz1w{ $6UO>Hu^)6f 73;H;F3?~V <9q(`7* yJ <=8<FbSZz 5\_w58Qgif7Jۓ&#q!] ucD6O>O (Q^LmiIC&;vɄ_ouq`B4Id1͟P2[( eti$Fh"= /h;9@.zoVcE߻ Wy=*$6t񉜋#_%Cw1$:SMந;>%+G)c@|%&n-Q<)5P4:12;o0j/D0S.2?F[hX1tkjJ-s-=.nV' "ѵ+V! >䜨pI! ~qV)%Ln#\IGr~QXX/8HesAߜ5uW-T\i/G%_ "ϑ91]*ްlJπ{IRb,H %Kb:y)qp'\ 7E "q9()E /?eG+O'+ 9T|tEMX7]T/6]kiPjLڈxJǮ142< }QW9L`si՗s2 )o/Y% 6+d8mF=ץ/3m]oR`Gd5nQCzheh"FEL_iOZsUIx[|4;4h<6]U&)Q'f[[[v֝S'C9tC  i[DO6OZ3 2V5$o+e T^_ )?]TE8Oyw][p6_䟤T,[v(zuEZM'RT*UUEiTTZAI Vtttj+) '݀;7^M;vzbTGh5 ֯&O83q;XHBc'eq[D3H:= ي u:]o5{6yv\ juz1w{ $6UO>Hu^)6f 73;H;F3?~V <9q(`7* yJ <=8<FbSZz 5\_w58Qgif7Jۓ&#q!] ucD6O>O (Q^LmiIC&;vɄ_ouq`B4Id1͟P2[( eti$Fh"= /h;9@.zoVcE߻ Wy=*$6t񉜋#_%Cw1$:SMந;>%+G)c@|%&n-Q<)5P4:12;o0j/D0S.2?F[hX1tkjJ-s-=.nV' =8X 鈶ܛmDvS;Cs876^D93-ڵ9_ZLbk-dkv +W4Ѣod>c6)J{kT N˝ҧ^*2> GU^]:Igr#S"4TFJTZaj\WWi_V0 G?..9 Q-?j&o*Gm"6_8JFe}xj4iqLlgLT4R,^_f/@?%(LӚ`<O83DNc#hpUcTT,M& Tm~p>TA.ANTT/V 69xt7~ _4?#! V/'1zueYaO!VMRheW7d.~Ao=qHw ,>ê1~[C;[a}RjuWcp? S3O(5> zwx%DTsf4rQ\z3oBK-&&KVZQ\ a3B;n >;BdgG0 ~^XyC緧 >9'xwyL+Tl99di{c)>"GﰋezfNE09 ~h]q#u*v 鑵U}l=L >b='Db (΅e4J [#ud͋_O <>5b;Vy>\d$BBW,s- wm*h:q ŘF`%t5c&# {-]L/$0XOdU;=$,L 69U7G32/B 4 SD$w%W"12%nJQ9* #?S3/.L\Ӥ`[ fyh[2 Qhta4T_' />tk1C}#LB]9!_bBQϸ~ 5)  !S|[y\)jptD?7(B3("OmyQ ".HG*"2%Z? e(Q(aG*E5 =8X 鈶ܛmDvS;Cs876^D93-ڵ9_ZLbk-dkv +W4Ѣod>c6)J{kT N˝ҧ^*2> GU^]:Igr#S"4TFJTZaj\WWi_V0 G?..9 Q-?j&o*Gm"6_8JFe}xj4iqLlgLT4R,^_f/@?%(LӚ`<O83DNc#hpUcTT,M& Tm~p>TA.ANTT/V 69xt7~ _4?#! V/'1zueYaO!VMRheW7d.~Ao=qHw ,>ê1~[C;[a}RjuWcp? S3O(5> zwx%DTsf4rQ\z3oBK-&&KVZQ\ a3B;n >;BdgG0 ~^XyC緧 >9'xwyL+Tl99di{c)>"GﰋezfNE09 ~h]q#u*v 鑵U}l=L >b='Db (΅e4J [#ud͋_O <>5b;Vy>\d$BBW,s- wm*h:q ŘF`%t5c&# {-]L/$0XOdU;=$,L 69U7G32/B 4 SD$w%W"12%nJQ9* #?S3/.L\Ӥ`[ fyh[2 Qhta4T_' />tk1C}#LB]9!_bBQϸ~ 5)  !S|[y\)jptD?7(B3("OmyQ ".HG*"2%Z? e(Q(aG*E5 =8X 鈶ܛmDvS;Cs876^D93-ڵ9_ZLbk-dkv +W4Ѣod>c6)J{kT N˝ҧ^*2> GU^]:Igr#S"4TFJTZaj\WWi_V0 G?..9 Q-?j&o*Gm"6_8JFe}xj4iqLlgLT4R,^_f/@?%(LӚ`<O83DNc#hpUcTT,M& Tm~p>TA.ANTT/V 69xt7~ _4?#! V/'1zueYaO!VMRheW7d.~Ao=qHw ,>ê1~[C;[a}RjuWcp? S3O(5> zwx%DTsf4rQ\z3oBK-&&KVZQ\ a3B;n >;BdgG0 ~^XyC緧 >9'xwyL+Tl99di{c)>"GﰋezfNE09 ~h]q#u*v 鑵U}l=L >b='Db (΅e4J [#ud͋_O <>5b;Vy>\d$BBW,s- wm*h:q ŘF`%t5c&# {-]L/$0XOdU;=$,L 69U7G32/B 4 SD$w%W"12%nJQ9* #?S3/.L\Ӥ`[ fyh[2 Qhta4T_' />tk1C}#LB]9!_bBQϸ~ 5)  !S|[y\)jptD?7(B3("OmyQ ".HG*"2%Z? e(Q(aG*E5@@././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/resources/riding_hood.svg0000644000175000017510000014134400000000000024311 0ustar00useruser Little Red Riding Hood image/svg+xml Openclipart Little Red Riding Hood 2011-10-15T18:09:37 https://openclipart.org/detail/163771/little-red-riding-hood-by-tzunghaor tzunghaor basket fairy tale girl hood jump red skip skirt ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/resources/tortoise_large.png0000644000175000017510000006464300000000000025041 0ustar00useruserPNG  IHDR "sRGBbKGDC pHYs  tIME p IDATxwxTLf23+!:"]ADP`pUkk/W *"`"  Ho@Hu&Ib}<̜}>kֻ\8DA$I-r\pG0 (U&%P3(N:E@z.t8% 7BK_S:*;\ŦJ| Lq=R\D?W? a@ -+@YM+:>4@TEwM~k3`ko#P炋, J>AQ$< 27` pEsQr?co_KlF`8n 轕%$ƝX jD$Aã3 3q"Z ,Nm!V= l^;;3ۼ#ڸĆAYe`O=tEj$9jbE}V'HdW-aj@P,uNld*lΠOb{Np;6Xю36XyDŅRc!/,3EV6+N4:*䔯Xl;;njAU;[)ԯ?̀j?W#h< 2Pۭ]b"f?M|A?S՟Cd0HGb0y{EtZ ,9'{GLzK*T.Il!Led?|Nijvr~#~Wz or Z|mC9,ot̹$ 4}=k3|e{95GF/R^`mC!{=>R2]Do;€ \ݽMA1MQ[e獻I51rH硕? YlBo1x_kcU9vK)~ ρY=PUfC!&wtFpH0{Q!2ʋ Uq갚Y^($ q݅apMErD67f,CN5Cuu5%%%  v;f~o!;0jFغ2%yyfwa1zVyfuyd2!*FNg>lMKE$'X-NRIz›]DwtG>' ?Xbݝ:TjsS zZYA>;V#9!ou٭q~l-+p%|9ßҢ czGJxx8)z6~]/_PUnC& r /IXx1]Do? *_1tѢmV'?/dgE$Jɾ5O?iZXE,N"h`% -h S/lgFE8C&2p(g*Km"v <lw݅q7>Ly0$9TB͍k~c3~_,bҽ!8xsQcƄ;Jϻh:gx>~2L3]ܹRPm,EU.c(w!HEPA)QUj'/[ػHyACOL<3 uw5_Gv Vd|"Zig9[53[B@kP[qԯ#ϏLzs>;]1{W^ʕ+1D πQq:TL}$~c7Xj{7D<"K.M6`jkk O2"vf/}YE/gsp[nk Abd\ "/)WRH>~2Q!Gf!g,&GYs7\DkM&S% dܹ{D@r†K<,&']xpsٛӆ?.a4:L5Kb轔̙@ڡܓ0=EZ<}UTy65ht {8/ |l&jQ2&i.xGk}w:2~SyyjwJh y"z$I7l6`6l؀R%2 xY`# fav2Of=Uɓjvk'=F>jtui`1zmeړASRg~~5P"z 9s .y@t$IE!33~|yhx*[_ZB)0P^mۺ==*L[y~"u 3Qv>D-kAVp"zGvr],hwfdA|d1(κȥKjժb6!04gS/α0  uWc ')ζ4&f`^u^dgvtN'$80|$@t?!A~I [I`MTXjĆ**d!zS# S1]`E g]AH/ oe 6/|-~ZbSZ?z9+;HHs`kUهq:߉ $ P1jF)=&[m\ E #?\Jӵ& k%'sbz}/>-B&pa(mCj~YRZ+2u &|agH=׃[<4R[K\oJ8rxcKm'WJis~_8?r:"bi[Mλ0L\/='k\^vB1-vT' 䞽Rz lrrdg5 1w8Ϟm 3ѧ7l+DQ (Jq>tl } {Odoi^,rzO%Gʨ3iX3ڋW >l:267Jʠ>DRYfv10zF[Q]n'( tPY uW CSoT\DlF"hmALy(d@7L$B^٣d\4 ~Ox&~cupDhE[Q[eg8 3+VQVtα}wTqÓV.6!k_DwB;Bo(ζ#{NawAz/ }= A[_жqޟMfu2pʊ\ >--$ex0TPmfؽBj};04ig@}gZ#H4އގ]r>}> obq- ӟHG$n{1;l$(JHVq>4;$5 '<s P^+lB"bnuPV 4:GYi(Hj4is\L 烩ځF<ρ5h V|DuLFd$v#ag>Ե~ ^toS Kw</:rrd wT(7cI`mPE}#MznMTjpbۚ轔ٲщ#IӧEƹ3x/@2pB1I .*b2YQ6CAy)wMqakwAYBཇspۦ"ws?]{EpUQ.6v0b{0Hc ǃTڸTjA%s0󱧟J1'cbz#NW\CZڱ/Fg_[ZoޛFeYDy)J +Q)IL)Z$*Y=V=5^So˩)SI@J *]lgEpxG5QI:5~ZSCA=q$#Omk?W2'>r:OEkPSa/$"鄢jFN5ް,x.u_7o555L}4SϋYD_2v&=mC!nWEieEMC!Tz.-#=ٿ$qحGvU,:A#\7(s,zK*;WWܹsYt)UUU574zS=ǜ7/caA!1&ީɅ]4ޗ:=E\m%z((n0^#' 7wθsEB2{XyO;L: /~Kff&)/y=uQjyጻ5seer s[H E-_e#0RVb:y*r/@"pJRTo锓e1ͩ|Vj;{/> Vb۶mŻs QN=?6VSߦ꥝#Q&&2mN sh\v-#, Wxcu4F؍=v`MY¬C[4;C&oɰaسg˖-[}oƞUdQ!0 Eu3TqZHySp؝!\,n of|>c. 8W+?e,\>,'*2gyzOOOxwQ(gkV諸2^A u<+HS˳R(}]L g7k4/NaYf AW7&`E;_od)pyOeԄ?_z!^yznwޡ̴9aħ[YiuHşZ!ۅ:v0;x+YT b7+])˷R/+ `M>y ۾}7P[`-{ٳk+(ȐIII;~!'_I+v_/8 \ †J{ײ|P(^JJ|R!8ZCQSh,a}٢gO<+IPRRbIyȔr_+9ˮE.{;V'!gs~Hi7Yv:#O%iS6\ jI{k#F0vXN{G? OnIf^XDuAoZJ?f1ک1O#x771Dh ݵ$@7QSyn/ssh4_7s׃.U&Tݺ=:YN8Peם|ر"y!<+VHZv uuF"xp)p:%MPӇAѫW/μֶ<ȇ$ھ(LQt3YL55"EKқc]侑,ɑq1l1zlXd'׶nhn]KBgP/*v-gߦ*l' @ Oii竽*,z9Mۃ+䉾c^jZu- vTsK';u7|UWs|5WGcŊLu#%9Z+gwzp?c:#o{u p<8IbT ||߿Ws xfQ"a^[Ay6/FM89ѝNgPnܸZf4(^p0p^!wc3K|f.+߯W\ÁY"}*)>u1h[/Dڈ=y"z```6Xqr֭p^̶z/%w[j#X$˧)Ў*j\mdryщ}dR##Ѷjѣ%᭼h^In ޟl3oߟƁ"t|ʠ"=8{ Y{՗QmV 1-őٛD.:ZG[QQ;@uQp_3 Etz#N9 $_f @-V w]4[Tn)q!a vϋinԩۗ.]p;6kY,¬&#&4Z5ƈ5ǁbrb5;YO-PFM#tVț4 IDAT^JJSuJ!'ta\KB=7=ɑ?:nqdW5~>^ 6 ^@)6]8%^^NASy/IlcSGAX`Ϛ50Kl#zJ77|C!4ΝX  KA>GVŒ|"q9cͿXU؛0K/j'Jk:۰RRQtdH;M">uT'pҥKW/h IA$i߀m5(NHHЏ5^NFAVT*j'M& ݎlbP[[Kuu5TUUQ^^NII y%fO(#<:YGL=uĸwwؼesY Kl4ȇTV/,䆧˹x+6$06tnPמD?/$Ibɒ%EQ"$IŒ$Equԩ-F,Xqww/B\{_wEEdggKvv6YYYX]{4@`>33(4νot)%vɣglAQu_W (IH۾u7z"9nF?ɌZj׏~>>>wAFFiiirv*gǪrDQ ^ӯɢxw0!?E* zftO$VkE^Jjv f%K$ v]X jf[ Rc! \mԐ4 Fo/Ѐ3vV$~(*=OnFEdYpW0%/{AeweE5vm{/)_?[n\uUDDDPTX̾yM)yiuŻj!寢0/mжj< zCKJ ar~/yѼC{8umjLT)ͳ \Do.Ν+ RA ,,QFDaa!vR Duӵz^磻homj xn*z l8seщmVJ7ف-U7|v?ѥB8,Oҭ[7^xqBټg%8Rf~@@K=1=xx+a~!cg$^Аqq8mO橭7*ʞ o- ,94EE ?OnI͒syyv*ZgFzxxCլ_ZBmݯyXN{C9s~M>ZBqrr  S_tdfyZ.@.//RF#555P[[KMM $ϖ6 R(hZT*x{{C@@%cǎe|glݺoLe!;@7z?nI(TVC Fx';.wh90.Ág̨T˝'!s'WWIﵬ@,/Wn]/\W"\6555^ Dn/ pSϞ=Ŕ0[2ވ%$?6Vtt /wN;7}ĉ+V8߱y_w}A`ToE 2]zyjc19fhG)===GAhTݻy7q:\$Ʒl0:xi,F,U5sSs'^a]x#XLN~?[]#s%L>m%=ڴn:mT7O}ڥYV .KgޜDwq$oEiHLNOџp!β7ض pRre4tIn<_z=0ykPdoЎ*k}uh S C~9>2S]a_{ DOHHѣ˞uFJ,VyOG:lb$?:w4ɧ曗VoA-2SP,) Ο yA X6L3|׍>¨q (ȮZI}Z3g6ml-I;4S;99{P9sS =uP^.m)عMt18>zSW<2. g^f:}fWz8]?LMX;mx5_9z/e؈i< / & 63/n ˳Ɍ3rOR>ZFC a̙8,O0EYDP ,yz\Iaaϻ>*гsu91FE* e3Rgk֕y\] LGq̌H*o}!~ΌÉ~QzLC{gŔ)SMv$IAK'2p@rRM|ϖ64֝+fRQd$}Ɓ-jly~6E˸R>F{gYWlh{.,I1Mt=dB! {7O|҅g%2j6_pӈV,aj9n:t9ppָջロ6//㏍-ˣpg>An] DxX8!z1wm$a7(Zrj:YdZV:(bYD +Zeи[xd|5؞}Jn}! ;%Ν6m|XwﹻP|ju5PE&]ᵼP5Ы9^ħ|Z]d69@Uh˲HI@G] )ts&++1龐vGS) g)ےcg̘?u+Ax38dk0[ݼ]ۀ|ee%^#XLNFLJ8g;k8ޒJI3pR{AAmq>dk'gg%ՑD.)UbȘyd& ;&?S -.St:GgX¦(lTeO=p$,^^;'Yg2pH»[:oqξ5Wڛ轀-B1՟ƔB$t)]`~Haр-ƌ3*~o*gmȮZv*oZ'HN(9 }D~5O,H!vV_^yD7UDWZO&K$x=CS.<紕J5`#1î㹥][SAݖvn30Xdz'#͟U.S6s5/) e:GTrZM*r3;6ܾMVbϡgGe GLn,is70{ȶ=9dqJ|8nx*S^2D8_ֶNjj3A8hW_d-KX<RoZґ z>EuqqZT?hD&4 gDiїںl""">}l-{!=xD\lg%#ʳ^J{7ap5c0xuEYgQ<@jSJ6ٛl &wAe XzF;coyngbRV`%!+͓KlaW`ذa1_ubK>\"I\9;Gޏo*MB;B=V rԩ \CxBY~#$yk*޳m1Qq씃^X]亇C 1u,<}/f%yPsږ=߬C&~^\7#Gp n Co$ Osá5]{g54Cd?$I 4h{[Na(BKRe{M6 ~:"C(вys8Z Wߧݧ+B~J>x`Te16k%>x,S[oEmw\;vfdv$%%}}3('@-^--58 —]n|J>{1[p=!#aw}DIn Ͳ~Kre=""1cR^hpϺ ^)b+'N \i04wIPv`S*DQ ڵ+w$ςhg.}=8ST֊>pT,j/x}é%͕ȴiӘ<8+IC8^Ը+vBi$z+np e˖#Iw D?Dǟѣ \)ͳPgƆEK)U]D'@umv]5/>ܽֈ֠hֶځFB,j3gߓz3k+=b+GȮ$DLL wq111kZ u%\d:uKKJJ re}KҡRz(%"ѝȮ:dg4DYsm#4K۰a;-**oݺu+|ؽ{7j$&&2rH (ֿ"u=Os1ܡܞ$=GEZXM&N!1-@nd6 CF3|]TB)pl֔ 0gIMMOOO hV5g#E .4 !mO>%K,ZUE)123PjLPyq`XRŠMg'z}jtttӁ8A2 >y0O?[މD~R=҅cIپ$IUO [M' Zh.῅")dC oS1gH7n9(Dt M< {iLLL<ό3\JAQ%; t[l1+*b8)4J KE1㙈~$4t^뀫.c69\oC3Р*++ 4,4 W]$cՂ"4:8cu8f{ꫭf̘Lk{J7\ Ld%hVŶ(7Bc݉ﭧfc.%4'u= R6 4|f'?zñX"3Ga_lVIFW  pZ@R^-$gccnTn"^*4:Q(0/}*|^ċ\ǽhGŋ̜9e s /sN .:6o~_ET7-#i@]6][R5DСC9C0lJ\6]?bHl\R]5eʔq7#~gԜ:^9E/gS[mۃ}|)~(k6Og2xra<|0IV2~~~ fKV /WpYz5|vÑ믿?h*I 2eJnNѧ)UƝ9e|r6>h8_]سSb5w[R雷39vp0;WvQV%K2>zٿҲUd颶PQpDƯ rb&!56#>!US֏?AUUU ~Ns߸qԔz\~we{x8~sf~%zYo#z @2Z]0teL>oVZSUeOcQ?1ޒ4>t _za^*(CI0翈N֑yQ[RCA```gZf'z{i]Hݪ%%1?ȵ1SRRNy Dw 4Ts j7DО,E+9糰Yz:g촇#\QwI='}.bG. nً[-Gg^N|\)jI YXr6v 7܀Fs¦JڬYu`o ز:a`=":&.锨*R4K3QUfF'ltfq( mH Pcx IDATHwDh1ȤBڬ2RwWӥKFu[{CD5!䄕 pӈxk?\N&fB7y& 2R;N(  еWxkM+OBj Ws;^w[Fߣ|f ;G(:)jw?͇}*)/2 .GZ)TB=~1w>  T]VL3Yf3՛\>ُn j'> @R[rBZ<#!x\ VEd|hXLEε^4i_Db3Z;3l3" nXdy]ʴm@-=numvۭ{mff YyJ 3r~ l6y v|s<e#ekN!`ܬ#!U q ֕뒆Un F^ITuOz.JN-;{C9wk\nZsJeJ#t<EO>}=9׏c2Z;9n+x%bء!<<3gʴ j=:BU<{ӑYTma2ZYj fu^6]o:X /+YPb&zu;T; Uu% C6%*@w<":_VbyV|:1>\uWFf/U… Q(Zۿ't5ÀF){tX@Q}%гGvjXI ju`c|Fnni> Dx9p6+t' hMƎuBA.:PH2W]vw=</ni>MiM1.rz}M:*h yɨE&>ޓqfkTYx۪4 h4wy]IO"yuH1=J79^-bkő<}x_ac^Zg/eg;ɿj(4nYo+?31jߴkzAd]*>>ћ+'{w\Zj,{:zbbb={vc6nÇ aEXWAM^kD.';t?~LE+y4|fgl$bKˍwW/K`>VOWIRxjlv`ʧ"u  `'C q/ĉ>)16 Z s22DPCx0/ݲZa6 V필SO58߶og-h%*7Z?~DДpwRFsh^A$ko8Sȗ)D >rӍG96Ww8u E s.[\=E,HE4$^DWܽ mAWsfش$(7Rx@q\F*Kk(2Qkq l G| q%aM,Rj ^@TbZYr%7oYƝ/ZK`C$+Vh3D8mFcʽ}شnykx?휹vdFjUQ}o֎̑] v#*8s% 4OkG(cݻA?Жj)3 5Ujl3uMJ7ﬔ㬒ᬔOg/TUYx&V3p@yT*&%Ko>z:amzZt妧mDwr52y,˦EH-U[h"~FFɂ pttl6[oLJXަZ`8חKݱB#&ki z*ЕYZ{$oXK|;CG[u͑ן|R+7؉o~nNM Olsn]}Mfz!;]RL)Ӄ x J Lkl߾cwzkϖO莮*:K#MᰡmKn޳[/TUiE1;=E lL,wúd ~&,0X QtS4k½{-+227΄F~Y\!qu<~upAV Jw]B%7(F$nfZYmuOR9'44T_V qEH2,U1V¨ۛYԌ3hVeŘf}%~&ճw"Dlo=e2acٽܶwނ>iҤqbX$ulsh/P_[z5{i{>PYbbȮOxMדG#Z P([1?,!eee߿ϋy1ucDǺ7an{g_)l,Xc7`ܸq-ZV{=ʘ߻Kʽ8Qh+L5^6F7LMFXֆ5vpq!rĔ{]Wn(WпlYkEl!`ԩ-9D̙3ՌZ%IW^L<ɓ'8x ѣXΞ6'mJvW†N*K%qfM3i$ƎCΦM8z(\ KYRQo(S&=<4p'҂7nHNN!!!|!$P8ȸ~NgڣhJMWn&5]̱HRLrr2'2N $91\E0W‡:wޝ(9i$u*8X*\}L4Q)֠hHLLY)WCۭצĺI(54h0N?~㤍ML*bcc7o$$$@ GT͟ӊ"2Q2=~Sc.盫ܙDPDХᤔ>.y/I;I/zPETTgFՒBzz:iiidgYÎ5u (҅# p! ܹC{]fXrS"A^$Hll,xz}gƍH@ϊN;@@Qvkna"e6Ԧd/**⭷:}rH|mᯉè2sA -DO`/~_YB{uqgX‰7΢hr c׽n +X"""Z\N!nj1 0dffƱc$*@z8ꄗ#^~㈗#x;vYSTY8on++0Rkdz yj0OodT*FСC5jT#S;;=<<׮]6cƌ}p߫Z$#яO瓿@&pHݫ# ܙs/M䤱S5^h1Il1|VHgۦYU&!I.;())iPvuud2h맪$یӺIuw- b|dsk߾6ؕCT<@#T,$J֊+VFDVrx^~0I"]D_[ZLvZ}{X,@Y;V]0Jv (0 IҐv~)4ŕxpd|IzAȌǃx%>V3lOOۢ"87ѦMFQQYYYX9{*'ee1VhI^5DDDꀫGjZ{>F9sJފBz5$IA1L q=PoQW#kt#4g|;/ȗ撲W˳RX=ʃ׸℻Syqdւ]חoծtpr]w駟k4nZٽ o?G!iu}JO&lXسVC[__?Kuh$~ѡ5U%eRSe{!))FAXXXӯe2 p|bbj Il(KO$IXV&0dz]RS;Et|x۶mٽm>oeɛucne t]w_+Bzzz#룭[k?,b@N+*,y8%L<nWWWRRRرcG3 !>˸FZ.8\%o*ɮ$i 6q̯ !4Ͷx\N}9zFMi5blWvSNn׮]ٲ1|z*^ 1MܴdmӟܩXNge5d/_N)χVu40F`0pPZv!FKݘ挃:Uk8'MٳkouĤy] Zʴ2ļy /};,_^\;81cx+]]]qss#_u%Z]v`\7V15*7 2 hJM-~w(7f.9m+Y6m+QWuL`"7]ϲ(+e„ w}bFcӤ\I޾\Y3fŦS̿'&&[, L$$o`poɪBJTZ.2,l6g̙3}?U4U tfR ̥Elj>cƌ'mذ0ka3Pny?WO##I]yQ-2C6΃Eڞ7QlZ^]ά';T9L2;PEE' !2GESTk-EFF6...*0ϟo8N(_)vY+Z\sMSBlj^7fΜ9gϞw)F^fH{Y)BY13ם,&[j|_P8j[e9OomF]F_z{!xG[nzuǚSLݯ'~]_$I.IR۠kG&pqqBX(ǮJڋ\HM%ouYr=}6^ks8qQF$<,t]&2(/e~f6; -I?O?Glٲm۶_/b~o.lQoO#GB󵸏z7$Iz_L V[s`6+ϡGCƸ};><TU)1_ߴkRp% |A>k>+6o *AAAj4rGLgQQQs=GM_ mTy-;V?LG7|Q:Li'&&BKrA\Trn۟q|&]Tb򎵞߅I^m+/6bvo,GX̙3ȳ/, _Rɳ> $IzHyA}↴4ױX{1̊gEYa-oݝAEI-> ǏoNZI؋VG{BBlLlBBbj=2t#*֍+\;Á&]l{u3RSm~CIDATE%W#ѱw8dUpxߞ"}! _(g7kXd iiix{{t55>>Z\z8>tFc-fFdYEFsR|d%vm4v^w $Izu:7ofQYqڟ䬔6TEp7XyєZ~$ \FL(&MDtt42lݺ:t(=-PS{hqI3 RټbKw~\9ٻQbK<_c1 Nٳ[sfwG^|Z٤{nN8ѨzA"$ZIWw3\T63Ж8{5$UrWm&]w=_=m3=ʪUZ͍7xCn\\\H-.=ZG.rF^g˖%zqD&GWnئ+ӋϨQv>2׽B3}rݺu$$$0ydBBBHKK#--Ƒ2_.w!0߾Nx;UԿZk&Vsh5Dm CLL 111DGGY`0##od$Ibqm]HHHԒ5/o>rssERɵ^ѣ&LR={v^rwppΪDxGX,k krN8AnnnçY%o:!?G\($nr N..Ψb1 :3MC5SVhB#e&?J0i>GC~6l@F-tǷN[-5 TTTj1 fz=fш`@PP(P*( qttՕ޽{プWu8q|ɓ4V///ƍĉϩK~<4B,SfsFTiZ[vml>r.`͚5YcP4i񸸸\c2HOOg8pRЅÆ cر1%|$ITU=tgu$I]tO56GO>JŤI: HOO'33a͍#Fðapr1IU=T,+Μk6$)NþDZmƆ (++C$ QvAYYCzz:$@ BLL QQQ]^G~||c=|pfM'&j;u0X `lf޽$%%qȑy*~Lpp0~~~ εВɭjh4hZZ-SPP@aaa]1`Hquug'?~g_V V1$׻wk:;n:jժhB!j9t'))) kPT(JT*Yg*++ICC`` L~V$I2\ !6y pІ[e2#Bqt@OѐCnn.NjjtTWWc0]www<<<ͭwe$IzBV3/o| Œ$=F~edIjxW\K]Vu$Ft҈2,9s [sFXK_sppxʴ]O&˸/˅KKK'-aѢE[B$IoB]N􄄄{\W+IҿWE5tye IB\ya$I̙S3zp!.T|ML&ۋM|R!򚚚γxzp~^VZ[$I +X'I Z}g'zٽ.6: |'X3dzCVI^BLڤ,Y&W=ä=Do=F&f^@o$vΚ5+G=D^&'Ix!_;@4!D"U&G/Œ=ABnݺ0 image/svg+xml ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/resources/windrose.xcf0000644000175000017510000007750100000000000023642 0ustar00userusergimp xcf fileAAgimp-image-grid(style solid) (fgcolor (color-rgba 0.000000 0.000000 0.000000 1.000000)) (bgcolor (color-rgba 1.000000 1.000000 1.000000 1.000000)) (xspacing 10.000000) (yspacing 10.000000) (spacing-unit inches) (xoffset 0.000000) (yoffset 0.000000) (offset-unit inches) IVIcon     0HIJd%7>===<<< ; ; ; ; : : : : 9 9 9 &  #  !     &   V  "    .G   8  ;3   -;l   <;ť'  B;S  $B;Œ    7B;Ź>    @B;{   BB;-    1BB;`   >BB;$  BB;I   )BB;   :BB;5  ABB;o   BB;(  ! 4BB;U  ! ?BB;K  "BB;.  #.BB;  # , #6q1  Cq5 >===<<<;;; ; : : : : 9 9 9 &  #  !      /  *h"  >+*  f+W!  |+ۥ%  4+?  c+#  +0  &+f"  P+(   y+K   +$    =+7   k+v#  ++  -+Y!  [+&  +A   +#   G+1  !s+i  !+\  " 5+8  #d+"  #+  $&+k  %Q+1 &z+ &{ ' >nN:Jz  'C;D{  $#2i   ".[   !*M  'B  %9z  $3j   #/["  ",M' !(C, &:z1 "Hy5 >= ==<5<Z<r;+t;Zt;t;t:2t:ft:t:!t9:t9 pt9t&#t#Ct!yt t)1't,7m#Nt`9,t9Z"t'9&+tQ9BZt9$t"92t;9j#2t~9) et 9N! t+9% !t`99 9t9z$ ot$9-t F9\"$t9'Ct 9C yt39%t p93't!9lNt!'9it" S9Ot#9Gt#"9ct$<9|t%9Jt&9I t&,` t'brLX7t'bOR:t$&6r:t %2b :t$-S:t"*G:t(>:t&7s:t &2b":t $/S':t#+H,:t)?1:i%N5> ===<,<<;;:;;: :I:;::Y:"%@#C!l Z +Z9~ !:l9I" n-H~  LZ  X;/"nj !]J""  #>$$%%&r ' ' (N ( %"o!\  L<. n [$ J);.-3 8= ===@:Ԁ:Ժ :):H9Ԍ 9"9,%T#"" 0 c ( .Y# 97 ,<#q<<M  $B<& 7B<> @B<7~ 0BB<s! >BB<Ū) )BB<)H 9BB<Z ABB<Ř" 4BB<Ż - ?BB<CT -BB< :& p)& 'S['  ,K'  $           "   '   , ~ 1   6 = == =D) !D),!?)`"F)#{q)%#R)F$=)% L)!& |2& /fo'  !6\'  $           #   '   ,  1  6= ==#=J<}<*<@;;$;,;H::%:0:T99'94%b#"(  8-(s"`53(6r)!P6!@$6-;6b #"|6ܴ--6%I!_6G &7&F7"0 #74S 47r"o7 '*7)4 S7Ub$7=7$("7=9.7 rb7!!e7.!T7d"U7#7&#x7H$Q7% [7#& 4&5_IGvs'8eEKi'8O%$8 zD" 8p:8e18[*8O%8"zD" 8'p:  8,f181[*ft5trZ5 ====,<<<;:;;; :I:::9Y99%$#< l"J U+ ~5_9i?F &H+s|  XOX 9 2 jl  Ia ! !A"##'$t% & & P' ' p"$ ش] ӦL ϔ=Ȃ/ o"$ش\ )ԥL .ϔ<3ȁ/8ԏ! 6   1  ,   ' ԑ  " ԑ          $  'D(  'TžN#&&p &8? %n:B+ $3:BB-#:BB3o#:BBA8" G:BB*!":BB&!:BBAd _:BB91+:BB' ";BB=y;BB0 V <;BB@- Ų;BB6 !Ų;BB#  RŲ;BB; I&Ų;BB, )Ų;BB? jŲ;BB3 3IJ;BA ?;B9&;B'  E;=s#;/ 89#S0 &e1 !!#V&,9!ԑ9 ԑ9Iԑ:)ԑ: ԑ:ԑ:?ԑ;&ԑ;;s;7<#<q<D< == =6  1  , ˝  '   #           $  'T1  'g`*&.{ &!*{M %*= $?*Q#$*p|# *G"W*>!**F!"*Ck t*} 55*W%#** *i\ J*:1'*w #"*L e*# O/*` -#+1 "+p>+BD&+} )"+U U+)|++h;#+}9&f+j/*Bm! 5  $!#\&09$9 9O:,:"::D;); ;|;;<&<{<I<"== = 2Vmo5oe+Z181f,8۪ 9p'8 !Cy"8$N8)Z80e89o8 Cy 8$"N9'`DAc9'kp?F`6&1 &#8\ %8Q $A8v#%8#!8V"Z8S!,8f!#8it x8/978 (%8A!8#d L8Z4)8* &#8xh87 U18! 0%9M % 9&A9hJ'9/,#9"X9@-9ˣ"@$9Y)j9) 18hv!*/9 '!#d&49&99U:0:$::I;,;#Ϊ;;@<)<<O<%== = 8-3<. L)]$#q 2@P!b %(t( (M ' ' &p %#$$#<"  "![P tm~'-AZIa   j2J   O6s; &V?._ <!nH# $ %::[:;;;K: ;;;<;<<<.<===! ~5k@ 1r5" ,=$ 'čH& "̙U)  ѥd.  r4   <"  čH$   ̙U(  ѥd,$  o5&#'  r=&*0@BB' 7BBA& 'o:,ٕG)"o:'S-# o:"c0$ o:t5$o9̅<%o9ڕG(o9S*!o9 c." o9t3"$o9͊PJ_'o7XFlh'o `/&o J8&o J8%oz7A$oe7"#oG7#oN7Y "oj7)!oOr7!o'47v o"76ozG7 oE%7o$b7Ko-7%oq !7o: ;7fo! #7-o S7of)7o2 p7?o27"o"7̢o\E7V o,%6(o_6o ,6goP!q5/o'3)o o{!oE#o#%o9oq 9o:9o!:o:og:o3:o;o;o\;o+;m 7 6 6 5 5 4 4 3 3 2 2 2 1 1 1                 0 0 0 0 0 / / / . . - - , , + * * ) ) ( ( ( ( ( * , / 3 6 8 : < > 7665 5 4 4 3 3 2 2 2 1 1 1      00000///..--,,+**))(((((*,/ 368:<>75544 3 3 2 2 1 1 1 #$0  $(*0 $*.00 #*/47 '/5:=  #+4;AC '09AGK   "+6?GNQ  &0;EOVY  )5@LU]a  "-9FR\ch  &1>LXcko    *6CQ^iqw    ".:IWdpy~    &2?N]lw    )6DTcq~    ".;J[ix   &2@O_p  ""    *7EVfw  #&''&%#  %/?>=:73/+'%##&*/7@M[iy %,38>BDEECA=962/-,-/38@KVds #*18?DILMMKIDA=:88:=CKUao|  '/7>ELPRUTRPMKGEDDFKPWaly #,5=EMRX[]]\YWUTRRUX]dmx  (1:CMU[acffdcbabcgls| $.7AKU]cimppqppqsw{  *3=IR]fmsx{|~~ %/9DP\fpx~ "+6ANYfq{ (2>KWdq| %/:GUcq~ #-8ETbp #,8DRbp #-8ERbq &/:FUdt  !*3>KXgw  '/8CP^l| !'/7@LXft  %*18AKVbo| "&*06DJOU[agmt{ #',06;@FLQX^dipw~  $*/49?ELRX_flsy  $*/6;BIOV\ciqx~  #(.4:AGOV]dksy  $*07=DKRYahow~  7 6 6 5 5 4 4 3 3 2 2 2 1 1 1                0 0 0 0 0 / / / . . - - , , + * * ) ) ( ( ( ( ( * , / 3 6 8 : < >   7 6 6 5 5 4 4 3 3 2 2 2 1 1 1                0 0 0 0 0 / / / . . - - , , + * * ) ) ( ( ( ( ( * , / 3 6 8 : < >  766 5 5 4 4 3 3 2 2 2 1 1 1     00000///..--,,+**))(((((*,/3 68:<>7654 4 3 3 2 2 1 1$# 1*($  00.*$ 074/*# 0=:5/' CA;4+#  KGA90' QNG?6+"   YVOE;0&  a]UL@5) hc\RF9-" okcXL>1& wqi^QC6*    ~ypdWI:."    셀wl]N?2&    ~qcTD6)    xi[J;."   p_O@2&   ᠛wfVE7*    ""  Ϧ~l\L?>;82-&  scVJ@83/-,-/269=ACEEDB>83,% |oaUKC=:88:=ADGKMMLID?81*# ǼylaWPJFDDEGJMPRTURPLE>7/'  ùxmd]XURRTUWY\]][XRME=5,$ |slgcbabcdffca[UMC:1(  {wsqppqppmic]UKA7.$ Ǿ~~|{xsmf]RI=3*  Ǿ~xpf\PE9/% {qfYNA6+" |qdWK>2( ~qcUG;/% pbTE8-# pbRD8-# qbRE8-# źtdUF:/& ȾwgXK>3*!  {l^PC8/'  ǺtfXL@7/'! |obVKA81*%  ǺymaVMD<60*&" yod[RJC=82.*&" ~sibYRLE@;72.*&# Ⱦ{skc\VPKE@;72.*&" {tmga[UOJD>950+'# ~wpid^XQLF@;60,'# žyslf_XRLF@:5/*$  ~xqic\VOIB;6/*%  yskd]VOGA:4.(#  ~wohaYRKD=70*$  = < : 8 6 3 / , * ( ( ( ( ( ) ) * * + , , - - . . / / / 0 0 0 0 0                 1 1 1 2 2 2 3 3 4 4 5 5 6 6 7  = < : 8 6 3 / , * ( ( ( ( ( ) ) * * + , , - - . . / / / 0 0 0 0 0                 1 1 1 2 2 2 3 3 4 4 5 5 6 6 7 =<:86 3/,*((((())**+,,--..///00000     1 1 1 2 2 2 3 3 4 4 5 5 667 $*07=DKRYahow~  #(.4:AGOV]dksy  $*/6;BIOV]ckqx   $*/4:@FLRX_flsy  #',06;@FLQX^dkpw~ #'+059?DJOU[agmt{ "&*.27;@EKPV]cks{ #&*.27;@FLR[bkt~ "&*.28=CKR[doy "&*06KXgw &/:GUdt #-8ERbq #-8DRbp #-8ETbp %/:GUcq~ (2>KWdq| "+6ANYfq{ %/9DP\fpx~  )3=IR]fmsx{|~ $-7AKT]cimpqqpqsw{  (1:CMU[acffdcbabcgls| #,5=EMRX[]]\YWUTRRUX^doy  '/7>ELPTUURPNKGEDEFKPWaly #*18?DILMMKIEA>:88:>CLUao| %,28>BDEECA=962/-,-/38@KVds  &-38;>??=:73/+'%##&*/7@M[i{ "'-158851.*%!!&/8DQaq "'+/1331/,($  '1LXcko  #.9FR\dh  *5@LV]a  &0;EOVY   "+6?GNQ '09BGK  #+4;AC '/6:=0 #*/470 $*.00  $(*1  #$1 1 2 2 3 3 4 4557? ; : 8 6 3 / , * ( ( ( ( ( ) ) * * + , , - - . . / / / 0 0 0 0 0                  1 1 1 2 2 2 3 3 4 4 5 5 6 6 7? ; : 8 6 3 / , * ( ( ( ( ( ) ) * * + , , - - . . / / / 0 0 0 0 0                  1 1 1 2 2 2 3 3 4 4 5 5 6 6 7?;:863 /,*((((())**+,,--..///00000      1 1 1 2 2 2 3 3 4 4 5 5667 ~wohaYRKD=70*$ yskd]VOGA:4.(# xqkc]VOIB;6/*%  žyslf_XRLF@:5/*%  ~wpkd^XQLF@;60,'# {tmga[UOJD?950,'# Ⱦ{skc]VPKE@;72.*&" ~tkb[RLF@;72.*&# yod[RKC=82.*&" ǺymbWMD<60*&" |obVKA81*%  ǺtfXL@7/'! ÷|m^PD9/'  ȾwgXK>3*!  źtdUG:/& qbRE8-# qbRD8-# pbTE8.# ~qcVG;/% |qdWK>2( {qfYNA6+" xpg\PE9/& Ⱦ~|{xtmf]RI=3*  {wsqppqqpmid]UKA8.% |slgcbbcdfgfda\UMD:1)  ùyod^XURRTVWY\]]\XTME=5,$ ǼylaWPKFEDEGKNPRUUTPLE?8/'  |oaULC>:88:>AEIKMMLJE?81*# sdVK@83/--./269=ADEFEB>93,& {i[M@7/*&##%'+/37:=??>;83-'  年qaQD8/&!"%*.158861-'" в{kYK<1'  $),/1331/,'# ЭtcRC6*! $'*,--,*&" 廉~m\L=/%   #%'('&$  ϠwgVE8*    "#"  paP@2&   xi[K;."   ~scUD7*    셀wl]N?2&    ~ypfWI:."    wqi^QC6*    okcXL>1&  hd\RF9.# a]VL@5* YVOE;0&  QNG?6+"   KGB90' CA;4+#  =:6/' 74/*# 00.*$ 0*($  0$#  1 1 1 2 2 3 3 44567@@././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/riding_hood.png0000644000175000017510000002452300000000000022263 0ustar00useruserPNG  IHDR>asRGBbKGD pHYsY2tIME p IDATxwT?el.t nTDĂ$ FI5(Qޖe{}Yve!~gvٹwΜ{C7 t@Z`%X0 8%iS,,L,=~62X[gϖ@`0#щ"&㒒8.9!NE9 <1h&5Jk4JTI瀟`.\:5=8&9QN'N7DŽIPP RFFh~wH  ?VVB>jK G59mM, iѺaIͯR #E!քr}'lwS|pHվ37pd,iaaل@&/!ICpzGj^*|KsrJ/I(Ie`S슂CQ2fEA$\Ǒ>0@#@c'XPK *,I(A02VE(DmW ʲ9J0t?W%r%ta@m;iRxg?cAgC% F7 ))Cg'|c0(u]//n/]WKW&B.8#@"[Ǎ 5i?ՅS&rᔉuMT5ilnkר$0ɮ(ybJ쀦6j2\);~j2f<{؋DL,.`YN%I;fP^=z:x $6Av&>:;3&t&KW^ȩA>\UD'R>sP{z)~;!5uu94^mAHpp5pm]V %1-l~ꙁ1!=+#c?m{JJqH7R%(ddmpo~-Uu`hO,?ሦ5}K@x܌\Owa^ǧy}B^$L~HTeQAXx* 1,XYJ7dӎ-'yPA^˹S $sRU{I3R;t禳|Z XTv*W 3ròk5CC /7ݿ !Դ?/]KS$2 '&&vGd]I\I~S} ~׍d9(rs)ZiDN)/d+ss 'v)ف)-JMh2S@!$pzOM37x(>K1[TT$ x4@2d uuNg10-(Db&-| RݟCy;iU{e- gV/2-NFS FUUڰZ  J;Au|ZEeeNIt= `8(RSU (B@=z+>92%d%Aφ&蓷kWmdA7D,C.%k֬sim^\&1Q[Ke(t, `WYŘc6hY >V,;~{)I uM;j⋯? H3ȈŪ*Zr`SCJ\u^+KRƙL:*m<~lvkB9O= >UH'ul7ysw(X* [^_9prp(:--m$`[*{% 'S>8#,hMnNNFaPsob]5J;Kު"<WחTʔ>P{j&WKVvz? y9{NL@C$+՛Х.4}8&eGʜ2fm-6@[&™gOb/|FloVpr3B^^jldw#"fA>z,=t˳Ec0vbZs9P D @ },Bٌ"Il yn0D(a 6~r`CΏ?}ۂA"NݠϨH"J!Q 5( `@/I$LqŞ`E!bA$š"i@F\T/-SF&8dH:I=s$8Bfـ`ٺnj5HvT!xj9b2c6#ŝV>ғKfuz; z0lw=5`Έ(6Yơ( HCQH{s()v+`ԄR-z+ ShmNe($$ I7mU46ٞ~7OZKbPY!b zljKk0Jk@ׄX q,wp:{zl(q*|҂ k,ShJH@rrp #)8",rgq8"q)S.Is!`Tccu>lm"CO U 3uƫbxQ6܃$bC; Ze(EaGv:`۷{^ba[,#J|I~iK+]YHfm ±خ;--_7*UG%I*dL6ZͤJ ǒ^ZH,~/{b1~i^U x lj!Vw OY,Ö?A싉%p6l   gs @MX?Mj!0ƟZ_ˉM=ukuxr$c2M R5|R~%9r8a ~k\ZkI+r·~JNqI)EXl6 5z{4(+cq(quK0a*ѼiC~vm(<0)$F#ncNɄOUq FHMmb5~n_  GL٥i4TnH6rըs̙l]VǪy/\]K9T)8\)X<ͼGZj=8]yWOgWiv`8nݽ}~|jb3 I:$_%YYƽb#,,$o,.j<%;g@Qg=xj?SQ ښpkiw6+R+N]ThR:~&xܯW Mj8] 8a4FلlDq#s8RS<5z \N/۰?,\A&C8GcRZZF{@!iܹq#[_{hLw4+s6Y0M{;SKGz?Oő 844զT77.ϞIjrhIqfͦp 6 ']9}k*WŕMf>fۃŕEgؼݛs];/L5Ѱ :-=pVz:;(6iDME|w+_o20++IN3i qͻ=[Q&!%SJgWqϟњϼ9{dÆ"Kß6=kQ>r:3͞LSb$Yƒ [|gޘ%z1tW_{3g]sfS mnnRxx<76~i2OL!Aa̶C5UUegS8DdY7fs3Zbvm'@s%u0֔ h?p 4٬(+>/[ N'GAnj:TBliDOapt#p+_Yd9trr7MdI"44oUc}>d *A7{.';ڱ$|jHnW3h[*4ﯸu6x"*++>˕ z1HWޏ?s ׫BN817a -تNrM޼Egx`|~w̓dUZDVIYdQCټx&?˹ٯþPu;c/8s^P#QL'u ~ϸᙷj:MzxFӥD,OUkZ1l Y̟=;}H?Q,t|Kp3 WcOM!%;aVe){"I.<+3yf4 ZB*h[Z8,#\q5 (xUl,Sd`SLq1~ C12˽^^}MXW>$@,NرzE#3HJwQn5#rG k0͛)xv(YlZ$u"|Mر֣ƷGU"HIâ눽c j߲8j4xini%|s WzޠV4E7`1%-GsGpnf&o ;%-mK`"W4*R\ GpДY ]8DVi^7||PƽtBKj/#GSh)G%%u&VE!G :_,689j #TZQF;JAK-H #D7y|ԋ|ͭl[fJc 6{qŠ9HD hp_X,\)eC+CnU=h0w٩}[N*:bwGˊ5lk 1nL-~6|_ͭ9@ۃb4039Kwk77}9Q#(N紛 ; (uek+԰[~v߀@qvW3(;S"Fk;8ևwqp85d{j2,iUkichܺxm^1z=a'w& 8/6-+ݒÉ- WV-Dwy 5U'uوä`6B,ursrH% d Co3X}ز=2y7%݋srN8*)ۻw.JJRB#q[AC6*cr-YN$QjŤms J/r^6-Y&Y 0ߍFTUh{.z@ͷ N_;<;p|$p&Y!YLX Y"jlo i5w@n.յ>^[R#};BS`iiWQlpcqLG bx* ѣG{ZWgMʈCa_$ƾnL m8'̿W7mG^$KҽSJˣM zIq *AXѴ-'%iƉ)I 2k$=Keuz6k۳F;8/# xP}?0QM#vFӎZSpF] p pp"f7Q?F'--QM0]|\HRˣ ޫH`%RU6 jW7F"b]@O2P^nGD5F{{ys9pyRzvFgfdv |a-e[4_kQSl@ǟIDAT0h'@OL*ʄ.ddٚ5uĦ(PFq ~*k׬aw*00x8'#.VvbĄ8aPK\q5QT{#dR439;3XZ덒U o'زn&Vssyяrr-Hwoi`L!#MW4 hu߇N ,'_QD5 Uv#6pqGҧ--Kz. av@Hӈ 784hB=dk0H ^\+={{С>>@D. &fV|inx7-{b wdJd'ÚQ6"BeOl&hh"\L@)*dlD uj H#%[ s硻U^*rwLm8\2!5m D⧘&[djk[2nl{GUDϝH(q 0KNee BҴv.#qp:"z%n7nU]}?4J`ԀkFI6@o,ޭ%,crP nRyOsPލtܚm2="*.z"荷U-%eͷABg?n.MƝkS76.%7b([P^/Q!USCu8=n"jW?{ .F^"%_X6nzK!M-~Ӧ Pppx NHO J)s2mXp&7`&Ęo':)=zvD =sL;L9I2Aa8qVu|JkJZ]XXz9OIaTR$oֲ㙏/ OiYz,WKsIM <_^TUËVCv?uQ!xH֍~^}FYxi:>9ɔ[ʷ ~?YK?&[{;yz&i}3x #o~OX9-ao%N{e &+䢇bNqtWUsD^mF5;>y}pEv;f3hBfS[y[U)~ H{x Xw5ýNw#hǙ6^Y 67kcBƷ`sq#Ѿ=v{.(z'\܌݅yO!K%;nzl_:Iʯnioqկ^Rx,*'ZT?qw `f`4ד@өJ$sYYr#?8zU%b0lGX荏+K %l}Wg,ΣD/N@( qyϘfK\UY'>t \z!#_'{mnƏy tmIĠ>Q&Ir3U qiNjqw`P7\'}8bTCB,}GJ]W/Ap( ;4f]MKA=rgu!m;O̽Saβx}b=/f=;>1\RwTxOܻ̽є}S0|OX`"zrG}Srp?JHzIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/soviet.png0000644000175000017510000001110700000000000021301 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs oytIME ]NIDATxyt\u?oZml *9a+qP@iMb1 [H IO[Ґi qiiq N c&Y6kIY^diFz#ό=G߼w~W\qW\qW\qW\qWXN]h'zwyN ? F`}c-N\Vؽ` 7g-\`Y)7 +M_oHZl4`S}oT~ܼFG8g+m"+-\_ (-(y?OS( ɓq/> Xmt*WdbPzA^o),Uɇ)mX%6IcAlTAمy r9رr(>"}p`CY k5r;C`o4{)x&̿_RX_kQ$_o,m4) k6F~@Y DS ,YH 3ԕ@-P8rvrf[ 7`.&w@9p`a{N}~YA_BߏW+Eap ^ W! j]W7hYY6@RvߍYxqHsJRzB:Yx^$-)70!ūP~R}?`:p%3׸Ę5Z,t_wzU^Ŋ\A`%A緡gH\ExRh(?r> bw~ܗ #_pnܪ=r9 à*y1O8t "y SQNOB0KQ)!3@ǡQ׀_)J6bK!tFV!hoିkP %m9Nnx CXC;v7oBaPGF)kY\[/_ {L^5Y9{-e:Br;[B,yo߻03@T`(\}, RzE; ))W|>Wr8r5R ^:| 1=#0? z7@ۀrO~l? _?9c_NJ zr[濴E `0mlDhwU.S(Ᾱ6 ,hGsW23wuGYv7 B#S`o1>Tb_y:!zE?'0MKJ EXQ@(u% ]߅\9ޯ4q~ ]1d`QlPy HA?A  5xU 0EUx, Bhu=k>!*zÏEO14|o5ie`o+p @qZ*;~\q}pVswJ/w= 3[6So=r: 78|B}Oc5SF5|ڟ \,Z&)?ٓy;vH5''Х*mtsBۣ&S}9%c>1':@4MmCw^fO8T]܎|<9[px;-CqކrPgh_Kp`d4jZɗޯ5.2Ϥ|;Bc_cp]p|ĭ\ */wXH4nrb,7tcl40=l<^,s?Qq73JC]ړ3 vޛ+/I ((i_!:LY>3 i]HX|&>?}볾fKN93tmp,4+UX8QP ]K ךݛlbwU99  %XRq6:Y輿fqh}Dʭ\ UxrNH_@yӿ_qPVGΤp'~]uE3y1n6&zD~_C( /CC5%|Btޡa"@88v8e| TC68 m*69Uj6_RXҙp±u@Rznp dH4=2EFɇ8pûgA"` OX<6D =3S E+Ɋڑ$D ~` :sNI=S:X Fi`3\,4RwfO/(LzDe;7 6 843joIK&[Hr q}쑡EM, ׉MdE Ȥ B{'J/0=?:E5^m<1 ~׀zxTe&^1VQlھaLT_Kӡo${2ե`9TiCߋJfA͵~/}  KE"C۲0ԓ/., "mB79t^I~I{w\ UjaMy|/=I`_%$J؉As_ܥJ3ß%ca?]@co5 39ǟ̳*2%k@Z [9}Sz*MP{f"H<%iz*koLU:EL1wO.0tCy*ĬީiT5lf fOzaTW2=1\:+-q2.x (wO4}q 5b5c.Z6ܭqEW޿VڲPzbJ<87*TPBm ǫZCčczWmf^WL=R\RlvH ܩF\jjךm&,%WașAnde[=6zRmRPSIǘ{ 4ig3Dj;dԬCe4x)^ wBť-gvS[ Ԫ9cf,ay'=e Saɍj/hmG!ҭ-cVw_WF(<[)֊Kȝ)w׻Ypz *^%*.KxЄ:If~jz\(;+*HH Pܬ'%)'âY;Չ;`Mciz}rJ5V_3;xwp"V01JS*;dvasRGBbKGDC pHYs  tIME 8<( IDATxwtu;- 0轰{)"JKiK)Hc;ZN\;qI/wG")YjThRDo3= %}³Agg81qc81qc81qc81qct)ōN\p:K+>kW%g+YM- *8=c/>qOx ̮W Qz?KNOMt}yUsE@jԐ_,?5zFyO 54uSNr@r4Nƈ[2d"f۩m6)TBY$q;Ng&N 1++QXV9W7 ̔o}@t7P6uU\> )+aUtė/)rW9sL4H,z'LJظ` xԦ;Mw[+eGёN۶ڎb7Ж" p Y1۾Xsg~d[;I-@:P7čE:ڙ^wU]5%8/"&ܤtA*D 4蔄;S n$TS & &?PBR1 S)Ӹg/VULuRиמ<#ɟc|=n?0eH1ͽ:CH2ڹ˕HMG) #m~¢Dh$Xv*'SnJ@Jx|4irt$x睤]R)0o[2{yШAيDxW=DiE 2EXX -t2'F3-[! p@a`X$ȫ>ICidLB)='}V(SYr< <k _pr @qimWʙPsVezپD"EQJCml[RJ5NNݖ"Tʉe7x`|Gb4ǓI{*c@0/\s wjNDC)Ef0OrYxc%5N)ŁW"lyx4I4"Y!w(("]6|'79Do7z[LqKDt/MX:B=`9> | ^6щIn |,F"?Wɧ| )'DyNښbBaDj&H'4wi=Ÿ#:4jg9+ؓfK;ӭV?U-dx֭[ .ZXZ0骎cl|]~x OPѻKY6PI4llZߊ7W1y?L(96F1šmB@Awy#4i8}F AI~N:)}hʥRXX?vD3YpKFH8Q.1 ـ=Ąk ٯqirJ,9IBi,h:hc:r)NCv7ki4nB靎DoXH"£>B{b;Y tA[:i5eܚ#I%lގy&n=%^IcVB|bߙW<{yNSptW?U+ۢzt1tgV%ItNG~̤Ƥl¶R5J?#z"[! P YxCε .2J,KaM{-}O"wWF&2}7[Uн6|ַR=äFaYYU }:?ś# %A1:i wݑ&O%p{ |]E׬t fܯNInIt -Fm@9[p_|S讏}U\ Rl~wP3[PPmH w~!7&PQF  $Jz35Vz' o9&d@)L΍DW#mdTkbAA*شݛ{ PF{R "{7' +>JӋ̺WK6-?_Ea3םH직ⰽU|dGG7%3fJ\^m`sOnt7~H(Hmm+^ 3s+`*XξS w=iQ5]#PL_!5񹷲ߪw.5 o.<$ r +W+td1T<}^@w9{'/|baxpYt7ۈs y6y`'̯iZHiK呎d>ShtyŲ/=/7AO,|2I,\~ß otؤ篙lF۩8>Ȕ]vvt7-4OS{@-+hU.B;ub/o<ʹH*شHrIvnn=RHMAeDưc3ޠ\n"HZmN1\ڋ5?kuo9yɋ>7)!砄Sc<_;5$N_Di.ֈ I&-$ N <93=&~OipAGS2&T'G}OE\CV@5Ҷsa6Oav2y>ٴZJeMvx9*% XD*hiD6)x)I`vOc) *tv>g9L]}S|ub}֙pgj^ m7Osj?"wR;+"&ܕx؅?`> ^65uj3cмgNa8rn ZO$"k:KVжi\Ӈm !3޶'.^7IО[ΑM||9C5J+] _BJm);M< o.U6;e5 B c9c}6-p>oGq2 :ݒjMjѴ.NlN9ZftY\\uUĦ{Yy?%5agw[?MӴU48?6͂dT'm!tA+3fPڗ9Ef8<Kס_! st6̸*@WK*ظ;rѻy{{ۺ3?%If9+:K&SXX~x̼BJMpL_@Ќn !J~&AۉϤGSurK%|6RcRR8}0cA1-*(-[;Ia[&9\.E;I_o)}:Kao9dmۮޫimm#"rK0'(;x^{uҞ,ԙ8WlmC_O s|oRIBGeL]ʢïZ8}&0{O"&Gbp Np_t8V , `Y`00Z \)5$Q㍝/pO`R. suyf{ٜ<e0^ʐ&._Fa m^d31ZJ jl|@`t]&LOaplX, ˲m{XϞ]LE)Af)[wJe̸Lc%rB>hqr􁶮 HPT]u Ԩy{! I$q|Tzq&T[[k\B {-R tJafpHLtȳZQb*सS`';MPY/ iJ@r=C(tƄh,V .qbV:$cz зaÆoQ">MϾv,P ]zR9} !B iX@AA@?pl?<-sS\dl}6Idn J ML;% (on9#+ba "|O}؝53BƻzdrBGȜV:}6|jM1 Ї +B\f%se۶mR=N`O`U36KBNRwwQvᒃy_ʶOu䟻X'xU|s*kGQ)+J!@ ^/***NUWWPnpHc4e\uL6'8y'~2HMwN,@2avfpGpR 9Zc)BL]i&/4G=xn ӥ*l\[ ?^\+Z v9#.8]*>0ھFYօgbK)*gȫқ:*v?nbu鎶}W>o'^@0@]4Ra>Ý5`*vٿ5JLqa 4ڎxY")3TQNLhiA0ALU؉}1:zh؇PzSWJ';a@5\3MtU׸%5NQ\ğkjsKqn"1Ktƽڝ/>Z?l|cWݥe,Z ,"3J׬ //G]O"ɢULx7CtNpS԰/P 5:'l@A߅aZN>mȑ!Pd:,^Z3Xvk>I  Wrx{ߵ۞R (En,q^Y5]Z]1+)0qylf|Qvyg8$yNf, ޷{Zg嗿3+g}zXsft:ÿB7]P%&:N Bbe+ŊӇkD:5z[\ab8$HO"s1U /T&{M{˽aѷN`-pX3SSﬞ!X`d˻2~[{PIe] [_r_;~4 BOsͶmMy_E<7ʆPɲ[oZjٙ?#?16^'@m~FIuQJ O hkml wöRʩ. OVY>mm4W _jrD R V]۶ZC-DL?6l()@mO<: m0et J ziڟxg !h?.РB\t]mi. _>hL1{:w< g}ѺK_^`7;~ VUuU9]6_C)'~Xq93xlGWPJG6%tR1cczk>k]tҘHFb )t\^m1g$#8C .d `+>׳oToTz^/GǶBI BE&ny]<%wWJu@ Gw ! EU&t`txo;d/3B!Io̾AQsa!TLvS=i~mT4 cQJM2qw_-_}7+q3E*ZS:DU !{TOAa>f.'"$̈D2hYͰ1dԼ^I_bo(X)Aw[ZX%/36\/~[UyVpyz%(F Ophf͚7st8Sv/sP6Eq{ [( R 5)3G ԉ5&/ԙP"uTsLJP1DӣRi"mkLyXO+qW~"|O 3| @SCCCJӴ* &Vd}#T0 .g;t b#קg*+ɤyNf ٗpg L< 6:6A/=BgK/!DnX0">i?+s2#mxzY6DzkwSs$ғ`RMr!m~;-Il`ytCNi$&͇4Z" sMf-ڛPVJv2yALA'ϓSsRC^b|#s +@4;ʽ-q55'b+SOr4I4l^m6XqǘZ7۶KW%|Mڙ3gC)RCk[os= ?Tݓv3|Q)n^~4Lab%u-9}PBR:VH4FަRCijsC2Ir̟?3^Ŗr Y|j*?Ѫ) |7-\˥WBJp-.GuuZCguH{["m[COo= -lB7RfvJmH!ZF 4&))0u]Zp!]|^rrs4\+}tkBP$*hg"4* p߽Ϙb oѰ ړP(^jlbpGg/z\^m0uh|4Ύ:9}AJ. =M`M!L|@d 㪨(+F;cQ_J0ב,ȬٔsWޒG^P_HA9B!Rde)! c PW6u9^"i6?Nˮ?*ϸׁ$JK|=WH%Y]mۘםwɾ=r}S]``K *yupř#IDATqJ *q8L[)uZRj=p'/Ew׮]?& z<DY׻r-:g7,[nW-Q: i\4M3/RQjPn nkn/0 {,9!DRy͚5 6| C] $jCCCVxA}ɄY!5A{S~p3_&)-Z¹g)Vq9`+EOk@1iM*q.癟N mK#[>_/,ddrL[mrm{eYw1@E~cNId{Z8o&a n6>ɄF/  [68fBÕh!83hBn6x9e~Bg ~'7x>מ$oyy!lnRJ u ցEΐ/W\|?HÆtt0!f*L2fӞD8~_C|sLJXE" XP=ynRJ ;.x!$mw'8|A}uRp0'^ws{֮];ՁOJTy[?"PqR:y%T =-[]\:Ky(t&ev%׺)4bL])Rtyw N챰k2m?SZgB w$tOW(e(dKǤN6%!ZD nlx閙~Otr4O]ɢ+  d(m'xo0yI!hoJ1})˲/.KN-r ;mKq`Jmk2N NAqE_Q0krg`E7y3t镙AZj1+9&MGbRVZ?P8h"#}|do1L}xTL/7 ({m[TWN@m=OPZP*d!f ETgG\PQ3*=3h¶vZ9MCf 9[cB9E ixv:;W;vgng]`RYDuQ9}ڒxK$NF[K. s]$q`5n.h9tbq_—M'>zc_3h= "h'Ӛ>VL+q?q569F*ᒸ<Sb8%zvdܥT&o1)NM&c^k<_ B6H';l[#NE+?/rlw7^(q51 A[)C?AG[/N΂ų/}2suwF8}yY<\5c~{HSΌ) 9vA/[31T>%%ضݞUb^DW׆,!QAw[HW$uIm=ЗhMH p}-Bt <^r[dShb:Ԙ)Kv)mv---\vU(bKѷo[9qTΤh^Yþԛ(coGg~f]{{y )Y{.[S`WjZT'㶫I }0k'~_$SqR86R;_fV iiK3Z |Yr9m86NJWIu? u3T_3SFF@㡻-ɞ?|;n*;x{EQƁ47thQF‚rh:|V̙33aY(y_ᅗ▻C mIfW!,Z:U 7QtL^ӹxtwWBKIK]6%{zz9z(珢y;-I0Z>pj ;"gM}oMW_ɤI1MD"m,PɅ/NíɴlIDwkrꄙf]`]fC=D o@5$QVgSR"Im<~ΞVC?@g[/<'>{_PU\?k`}ݷͶZ%¬PDf ;]"S 1 otgTI:4"塨 (G;3kmIwN9H`MV-"HmtCfngIO@coöHN`Kddž:ݑf~_0uRsԮ]{x4q>۩D)Gko6ۀmׯwB:`V2LJ |Jaef2s_PJ=/82PX̱6S7L&+xt|5C)L2S3/YWD7M R gy6=ˤ3~'wV(x-VXl̙3d)644Sqڵ1x;9B|T-0 Ay~yة(#d 7(ڲoHS c?\į0 ˲FuYf9}t畺{䕘,_KCs(/ 5W} 350;mѿp!yڼ`;7ۙ5{&eC(BR.#֮]{BB -4R8>8;K9 !rΓb'frEI'xlJHD"Ȍo4%UҺo[re?l#4w.SW`އxf}ÿ%_u(Bvشq TTeH|A;y-/| oJa*)'shdepR)`aÆ!ē===|Zo0sʩJ|vi #\7R L]KUMSٷ"cNh=~8> |#z-L{w?( p9vWnX>.>4x?ڙU}p𙆆zdqR)t0x;صsn6a-NrP>AABwW`ڢtHm oPǶg4rdG.ܼl!'Mp"uV^yf͚ʕ+q:m/'>( NUVVt{nqfLLGS=/^}+Y9 ]p6lX <J)I=rTTHb>4WPN~?i}:W6N%RпM:[D#i"]b^|f j1uTK ===޽W_}˙4i`4K,khhAQ 6Bٵs7 )d޼L<9:.fPJ*߶m )%'M`+hllCgW7]]жp7t?J&P"aHP( aHAJK˘1¢ 1hH$‘#GطoǎpWSWW<:lHACCCxÆ *Vx<c+XtV45zNJ9& qj=dn&"yY|9xA۶m(Dt"Nc[g/}p{ܸnt] $Ikk+ ۶d̙TVVbh\/744>HJaÆ"`pE~pCC+cVX 6T;w?˲<|>. 0$D9H$qD"L[[d]שfҤIz//w544 6@ͻw_YfM _&F|CF9vĉR) 庮Qt:&{h:FJInn.EEESRRBNNi^L%/7Jԝ~RvmM]PDmaIRE$!L&mM2whN;c M4l z{4444=ܣivd.rgq^4TXn:եWUFٶ̺ucׯB&nv644/Rcae ~{qI|6l0{&asRGBbKGD pHYs  tIME85lغ IDATxw]e9%I! PRI" IQ"OaUEuʊ,%$R ! !m2$dzen9y~ɴ{Ik^s﹧<|>Ϸ=9$%)IIJR$%"ΞڼM(PՔV! U}UI&uVs̿FqR: gCBP(ʅ!Uex^W]e q@0 Ї VQbDJRLؑ$9Q*[>l CoQ#9HB7Fv`RsDټBuh;77O*5#=Gs%JRsv#"!QQbT-”r$VTZnIqKMg Dꛛ& 0K\q((cXGv\>hIe/E[8ڍ@J}WYor*Ok#(`T//߹ݤv#sVvE+_@ĺl\=Oe^ۯ?# j7ŁSy7lRyǏoh 4>12evI/[@ؼx$jE$${^ (f(i]G*axK:Jaw.p@He%5E~FqH#:C gZ?ؤ"OA' 0f`WFTD*1H$ה { {3`U kpѫF=y 2)x3bM7oޜ䎧vS)%1Ki&!=xj}>c01)[l"} @⻽Y Oh[׸+NffŽq)}Mͯl^t 0)|&܄~bVie?yW2) FM[7QJ7s|?CGShu\tm=ux'9DJDqΜ^yb@@Yh:e(כ5ҡj~:t/A-ԽS:H24\&EHʼּ6x`֭YZ 7,I0p ?UWWGrfX[폧(;1tM/o\/`u5$@U^g* 󗶾tML{!_7Y@4.B /B<{6vh`'<֮]FNHP$n(Mk7) O| hh;QTk3R:;4 Áz~7w\}yU$T24,]4'@'ĞLT[z`8D8FӴkLۅ *\Q_K$!t žnuN~c*ц !t=^4[Lw`mn:d^@%p|V% իGfx_}Wf'Sn\(PP8R zfg}+RBC,욋;sIwGp)Q󜦾t,WM8R%UקBw0=O;౛8m}sGR9tT:B.Ҩa%=ye4y08d:H_u?cVBlBD)sJ.⥗_erfV7ASxK 3s8AU־î_]SNIFOkS{n-fRFh+/?͟<4Lܾr>7l8Lux{ x ">E[Κ C8Xs\DSu#xI'pX0O5"w~q[:?X74{cCoJ釃bIiK_ŝk׮ \ݙ>9@q4{=iH %&F]s,]4Ov]PcU#¢v2kVIPGG:ބ1f☎M;Q.zje C;ҢD8"d?0qtU AoY"yifj{26MqO5+׬:F1$@6{)Ε˴eƜh>~DqEVӠyD{ 4n0f;;/vشA :3g>`c)mF!uzpdFO2^_qW\ѱ;h[*nU*z`=4ܯpyH?c 5={?_1~?3_{Cי>札J3+Wl7=='8C޲D66CrE'{}g\u{<{5)Է@XQȖ f"-1O?}mf>Đ/ f)Z!I Bo_s-mPuPєՐ[w1aM6߷3_8 !ŧ|·C#ǰ.~@~D%s_Ʋiс$!~aQʮ'!'n#>5fz9)!r==6hHEٟ]qYmsQE%@^j#-P>!M o?GUGVۀ?v_D-rG_㘥).Hi\=+œ3rQnʓ5h8=G,A.%C)?-":'v,=̋(ihB {/M%NyL+?:Rݧy{Jf|qd'[w|3Υm8p䬵N+׭NZZc*9,V_Χ%ѵy@sSe8 흩vS*uzECc.;'ӵ\IHiD\|@k"B)uW.JC=~3*Z2੫-|틇>@H1ǭ]ڮsbrz2D=3u{ TТSIl*E(znC,\qY%6,ؽppDI5>ș6)޿l]ЮtåYWu.72I;ќ ,}*3kK9'S22@-<5Nã_u#2onTlX.y}v)ƶ <}B=:ƥ؄,-q_!ٽ 1%hW/ %DSh}8C$1Kqd[*LAnu+)%3 A8ȸ#p$@7tg;NYd*Ti LO-Bg498+/ƘoVlX!sktHd AV岹nJ?i$ JSN˛=h@gG؝9ΊuO\oLv/9)nr(.PbVƅq_!ռ|m-'׎Qg<1PwtOqS崎GJ{I: b(]0b.Pɇ‘FA`@ܳk;VsVAi٣ꍰemɣj0ALߵM4tr7{nmP\ֿp$l>]"McԬ:4eg?#SӖTؿloτrsKDGJ/a&UP #TXb\5&{\C7_@0L/rr`{gkuCe% RmK~!} y;OEz 8pl<nLKYx0m{ƾu_h|3`+;{ֿU^S@gRr% c*ۤ~(' \pko8l7U 1W $f˄?OHU l/W0>9UӖuLqߠ#.ֽ>:5~eqbu|%M\bh|źQS<)etԈó>~;98dgjҶu֥4e`L=:]XB7k09˅#E7Ly?n_ "4ob . %@ǶYV(_"P̰~XGPлz~uAԹ{LO5Ci:N# 9CS1xa)*o[$AlN:5ͷ˺POGNq=LajL\\abFGP]x쑃_)K.MfA:Bjn{,.lRpω@LԣUjHp[̉NY̎]Y'U&׾HWO?lrhT",f t5{w /^fqhQ[qťAe?J#"/jWޠL6~洌]sϜS8={xHQt@̘(;2iVÄ)5 M⇮@يE` ):`Wne3 p%,7 'DJL`DDߖ451S?NrN[|{li4q;=yHBа974N3SBҁMDDtJglT% >S pjv2md!9A#u{JCgk$~ŕsuQiu¡ !a~Pw|o>'}TiIyv,Rrlo[m\xg9dȰub|Lo\1ϽOߝS P_DT9` <;xaK*t\:|fv^{z;Pv#2f(W35pjoawa5>0౦2x1KGb "Ȯ@V% 0 ̿%/70/kl{tO|Uʓ| ',7RJ|WG{o{ʜqy(-VS=aehnJ]fd ],(q׿Ojf<1I:'|wvo?!b?ぞf]ӷLgSIP%TP.lX \ƗZ>px-`IRI!ӳ1q ۭ xDoYwMy5!!lkYkuSI^?dWU I_:<}ճmBMY/l[[W̺8 ;;gxʈQpB|ݿAHHսcazqh_B$L,AUgtqi|OIDATt o} {k)n[bB{[mڷd)xj*>^ǘc^i]u0ʘ΀yF<>,kk # y_.!)c#.ѽ3L͵\Yc~s3}تc?@m~j.-6koEx/}˅M ̿4 ( Qxmw]s5W`FKo+z"7 vImELr5-]zEa^fp3]qߑo?MJŷ+IGH?-yշQb{Xv4#6aυyuԤߑmƳPRJзpog^^aAtWo$"]%5&[646&]oqxG4Y;`Rt_p4˭s#9ŕ(}ogIcęOjFzWw|C_bYѾBt1b+qTl߶Y7_9`n-|>nx{2娿(η!{8kKUv: u{z_-VÖg<þ 8PxigܔC} F쓩4uߓ ν $@OTd;PM/kh}q[-f)F Ъ-qC'h8`]z'\qʤ`#wV=ƪ-<4kV=Kj~/`P'4gj5ES-չmyѼJVc'؛Xjvpy?1>V.wO>Opaڞ(͔MueP\X^TP{z/7g;\5V|18_ɏyϑik{C ?Ԣ!nײ*2<@SL 2^ n<@ud2>gn#suE_> C"AǤKkv-M?\ _[/5dͭ,ˌ%@NegitJ720ֶl[3Jf+p룙N&:gPInXzp-(|X7Zg wEޯTߑ:>$$3=ǘ96SJwy"7H"|Dq{?9|0o=+NOM;%%%ؐYSNq!X\( ABb е۫DmLrm[;7Pb-y}I&#Q9@d Vvkz ͸!@6\Rh.؝\dsH_*t8"G5r/IB3A BM*@\3ĮT@T*AJU)8 FeߪJw "?~uY'AizC M K$%)IIJRLC)ړ^9zIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/section/tutorials/windrose.png0000644000175000017510000002564000000000000021631 0ustar00useruserPNG  IHDR>asRGBbKGD pHYs}tIME %" IDATx]wxTE>snz! -H/Q(Q,BWAQ HQ:H&#p'f333g"I^x幆7q_L\mn_>ʈR4Dܣ%I~dJ9w$ܧiF*&fE ֩IjԸl$C`Z~eƇX㐖ic4Iڪ&x?qT z@V.e֏*A!mCxDd\/F/~<9G ;wੀ+xP+27ۆ籐<_Y :`Xݪ/6nJC$*bAMbXx𢘸:4}Z#&q/1؅ۆ w`6wW x{p*-8POV/ܣ"&'1' ODPEq@$[)@m$APIdWF ,Z'uq̃$9,^ "ѽn;^^;ȲOQaRI?8 yЕ1{rg>H"`AVɡH"£#6vQ1 fkǐIb"-i%o FQܵC(R__lM,cE,PPD6VS=?ImaB|ݯY!Nj[]@w;_e h3B@)AjCh>2;!|0YŻeH)B84s7Ajz8}r/}XnhFFtJivEF!-$,"ǯ>V@5>Ky =kz / fD9>2jZyDPicry )%EkgZ*KeVBr+*ѩcDj9r.)B4& cˁvF5 *'prJ̔Lk5(sr57#O8kx#iaųkex|>Nj,YTyF/.Q%prh Ԫy<lߗAAOsY*ON^k#1D)U e]YX_nڨꪉe _O,m4^!FRѾH!{(eAQa({c'[vL,߬:j~v)Gš(|'&==3$_Ԯ "]7wkp~[[}Q%AHɹLO gT~y[m' ꪉ_[zDZ?o"`Ar^ 'u[Y>0\$()ȇ'N|Ӛ؊+> 2KO܋3nm=oJl*:YDWaz@&oKk>8M.J6h{M Z1,qF;rJ\[I%РYsXko|mh#?\ȲPHGóla:ݝ8!ѱlN-es5ɍ{i}:)8EUԭw]7CcF@D8RvVT$Xw-;8w3$WF{ r'G ӺX[SD(\e:Pxsh1BV~$ ˾6e}╫D\?,.@trGF6g,GCIA~4l^ S}(ee !ѫ2x;JGE dzr+gԍ߷KBx8*]Ls- ~b9qR?&jVc=5uʴ\$I5F9k(jO=PVf" Lq;S¿Mq@y2(\5b.| |aָovOrbc|h\1ʺ@~FpㆤVgW2+Yo*crנ~dEI=G<*PWCe~j5NPyԭKgYw@F,̇J/* ,pdo饃; F$W=pl׵s3P F 5EفӔ:`PN ~TfpFѢoK9Z^_?7n=:ok`ZT>`u˿κIیp C$0 &zOtm:_$4UY.;'w[Nzy> ӯ\5a?h][&)7 cfF > H յίzu=&> kgG)g8]9Us\/ShX8hBXsnp]GL5C{:mƝ̞ߢ›1q̴O[L/pޥkҹ 8$1EE͛^>L1u͏s098<`Iy %ϲ⺷O)?e!CT8768WR:]PsI@>RY7/c!aOZH0zTܵ49 #IOIRN/mUӒq^DR U>n]Ⱦ<19HvOnS(h|a^YSG7IWM-YJsgM+֜S%h6ؓ>H)[,Ouq=G ):'xt@yIMGp%W*r8  G%! xx##mLs7 ‹+I8I 3s'mڃ.\VEǒ+BrypAE|R+ZJ C2/: b11 evN 'p,#sr1Fu bdxqکV /37s@q IpDXADtԒ+dbJK`7rPf$6s ? YSO}R+I 8)O]붂,hճWop8$*d R |wO(+:! \m"zEwQ~z *HsHo$KN"C'N¿MM[St>d}cL]Ï/@DZ:;NVq(qxc٫7$6m U /:,E9O~C G)PmkgAJuGʠ^zm(+"l{evV 'r>H gV- vҹ"k 3\׶CсmNH WuH/ ``.u31@ӧ VA [ZIGeDH 6KAj ?N=xnT*R N+1j;p6.TUoc$/`@'L,{#$Ey 4/Rbd$xo}7/d {Sr:DD(Ul B:u뉇u |n%g9P #CF;cu"$S2H)ϰ,gP:#KS**9&.VnRqtI_tÜr)#˕RPli l"D!H"~ݐ=hIk [ ҳGj_5q f[Q-^>r ,{͜J;0s'/ DP>AHdvکK$_&a"cY'G}^ZgNұw)^`')%S{r(沅!=2r5?ԁ/pĴ-̎IH;I#IpHJ#߼eсo<)*)_%9cM5G\lM㬶M7 .{I{a%Nfx*~20KL, U&RL ԭ |f/6^B* 8TauRm8 o2`(XCZLBq*;wP`bć;0s>`9n;`+dhߩ[?挝\I)@k岧xK'l}19&NR%O #U߽c!ڒ\$0%ÌZ_%{ h椑fNso*ś1,@ȧ*Tj&"isUr!&P[SyY |KB&X&emJ [,qXlt`0WqVH8^hCt~7pT9zY- q[y>; PH' mH0-=^H{漙fS:DDEך:^xfܿ{[yIQaQgZxsi#7:`(< څxn^ ৯_ Ϝ_88a5 ro?wwmT]fGr,ecvNv }Tq@ bBH}?Db'?&.vmpฒe=Ϳ^˺jY苅oeT.m?Gr vy' vWFi# bd`}+%#v ])8ZOo=$6'k22`$ euN\7ٽ :hE$st ɾ!JЭ1a^tDmcȂa}?a[`5RJH_* I0rhxcOBAq)M@ ZR(Vnew1Y=xtQlWF Tuxqu .pŲydl^>Yu\={C0`gGO|W\C$}UQ9;S ;urxVj/,#9~2z;&!j{/ӑ2hyJ ᕧ0-_N9zHx!|tsݻX(N甫O(_^B Clx5?MI?qpUT[OPai n'hbyXsE%n8C֕P_1u;=95M|蹄BWQpAe!U'_AdI 3 e JD$FH/((7Dx3w:it6=t ٽ+hP/BaU]ADfTJ-BqfR?/ >zW3P}=i£cw4=O ~k8r,#hP܄ڻ}VANR fѲ%^W8$J8Dt(nܩQ'r6FE7T@:!F=&:;U) 2OUK sMy 1]sN3  asEFٿWF7 ,epjeH8^c9` h8 MΛx^?+[$>3rq wGgi'\K?-؎Y^D.S%8&o~X6Jͯz&Ithȟ6鳩o¤r. IDATB՚$i7DiP6M /5g\Edݛ^ )Av )*طkO )E\{UeFHaf~rt =_;}#EUdC1>I3 |7F)Az Ƥၯcciۇe~3,#'XiC۳m.`$~=tٔ@6dQ>x~ůZд vQwc a2r`l Bj7ػs߂:;3f_j#&ϴNP2r`a?,z! er}A6.E{p8׫˟CF&\jʽ8+a2/$)o/T9g8ksF,J([O+|_={ƱtO/5}nw,ׂ晀AP{bAq 2ґMJECZ}mz:Z w,p!iCX&t+\*͹c+ȠE?J5o5I7wӧׂw?.1E2N}ty:6h֏fj1l& P-[lgc[qZ{~;OȚ1]EV}8W۷F;یH]CO0Dt+OonuwQJxtӆ]hp. jR 0ޛ}%gӦnrO02}f딸`@ꓢaj˚ߑIR]"q'X3|eNd+&bE_UF/eX$RǗK`_>ewj:o=='ӁVNҢ$s1|+Hr #DeBN8G!B-1+KV1XWN3kenF ը.@XA}lW9L OQ}c<TN9~ƣ{I_ğ2z)''nҨ6OjV+Q&ۘB `XzC 9x'^INJIi73J n x3/$h#O`)ˢip5 tUUoz ~@?s>edd^SVcϡVoN׏asMV檈'x6PBl7 e tQH7s+׋(nR;\ fрuhA*dѥCK{h?@&/n5m(lf |i74,J>s$d=$'m`e|@]nd~jQplw-nj+A8V01+c/@"mU[ #Q@{ORl{@ '|ߵus'NAƚ= @5, Θ]9/.!vF+6g_7P5Zxg{@L^uޝ[kvXy˞>r`8U&=}ܿ*1" B㌅WIP> n8V}rqNV8 ϼcF4AzZM܈Rqſ,cU)8^(B e-S RtϘڒx۬]4_p`Oj>|+BprRzIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/_static/style.css0000644000175000017510000000035700000000000015447 0ustar00useruserdiv.literal-block-wrapper { padding: 0; } span.caption-text { float: right; } span.red { color: red; font-weight: bold; } span.green { color: green; font-weight: bold; } img { max-width: none !important; } ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/twitter_output.png0000644000175000017510000033701400000000000017430 0ustar00useruserPNG  IHDRsRGBbKGD pHYs  tIME 8 ĕ4 IDATxw`E_ C Nh;4᝝yr;+ ' l RET"z-$$!fwdz}vo؝g{>,BX`h%DptߤE`,J{@'@JHHؾH)='m[K:B ^9 .oը$#vhdmulVX*fҏu Xhzŕ&Mo<ЮqGlPƔt6>H/H/|~w{V)Rt6?~~n:㨮Ejjw? !B&> \o}살途۵bO= ېj>Zsެu¯y:-"ﺎ_`1/sR[?4V?ȉ :I^jYWh2"߻#4*!lcQr*ɒp+k8L Ln_>;! Z 453BKtM E]{ o2f7"5L)Gߓe ۫2+ۺ_i_|vSE=E"R^>Q _#ryKeFZ nG,M mp㇝.Wpo#Xۧ@,~B~Xfc1NGT M"\VQ%b[q9 Xգ -ו eDemz,Š=o~M=zy? N xB?r0C8B0~%lZZ0#N@+2lA$ /,D]FP?, z@k.x>X G m#)m?CХo9O/GGfJJ Q&55&MB͆;_%m8_,4hO"Ue{ OxD{ sГBOɞbWyi/kd%BCi/S~5{TYEHJvJ#zz1 c*2M6 n$ceՙ /Tx@o].[&CcN1Kɸ>C`Ңn$ I->-@X3O'us݈Υ윴u~c5Kz6w|_y>M]Kw 8J"l9j?О3aКAHtl%ilB/(S/#6a.6 =^SOpKa5KW9wBGggiuz@xrq^K[Z?ԁЦ|>2-BǴwZy-W ?DDd''?8~!{)9ݺ_uP8q-xUѽ^#.*.]Jll^3X*䟳4m~3]F \z"## Kٵzǿ'ѣcUus)co"x77l.ghт>||R:|{RQQ-86lwdhӦ < o:gr 6@4>0u4ywu>V^z1s-dzl2[*C ^wΥKXrk֬Qչ9x EEE/_{aT9ocZy78r0:^ݻw"eL㟨dKxg`|B՛)Ss>M8>}0yz@砠 kl6i}Ǵd>f:w‰y05z,C %$$ݻvm[vX^ŤShݦ-99>t|IaaGNM3nS. `Պ<&MFA~>PEke#`ʪT#dx 'G2/YǔcE :NqSԔ֐<>F=9Z8=4>: >ġqKl%qP;=C0D8~?sQQܷRRW/jSKkHLtEjp\0mhOuN5xw9se_g>Ճ@J⯊'(*$Dwq9`s΁䫓)=\J"bz6"SNOtzgXi};=Aӳvs,%{6G^a̭&VucOS>q# G(Gg|>1reP}0Us~iDhnT-#cTxܜҏO`fT ޒq&Y0"=KIHDD+wSXK#4E:<kprpԫTUfr-m;Bi89/Pti3Ɣ޼_.K%{Oࢲ :;ǞdTp=4)3aЮ݃tbcqzN~DӦSizMhOBsW#N{K nLq.Gg葧18vǎ<ͱ#Os! "#;Ч%:*4N]^v㝕)-=LQN5EFl9NG۶mOv-OVZMHHqqq̛|-'g2uTfǢ_z(h۶-f⹭$7/qQڹK-[RVVgժժ:͚5c}<#\xN:z`3{᫯bӦTVV띪5==6mZ;>(g?ă>j\c>3O=$&‡cƐB ٽ*]taalڴ _~ ?">>^xEhJQq1 ;7?,[ {Q1|06n܄F{w(tpB/zұkNuWrr&MBDDF.]صs}"߼R:/ -OW k2{/ݺm+Ռ?dλ#SYYi˞ݻi:u:?vlZk ;o|5zLxUQ|7on ~#4;g5Wг ڄ{j!隡. /] ђȅ\ xXXڒw7DL5ῌt%?E(uWpOonkyš!mQKV]w <&7( kVަ/i =viaF455 LFc2MDRqSVNS<[~-ZmA'g:l/_Wg=j78@hɮ"}3=>OMIA[A yAi!嗟7q!;K6Fi>N|=DGw]h:-[ѝILјϹs_mt:e;jDQ1=sʍ zCХBf;]Q~=$3hiYFlHMP 0iocTkh}쌵ls,j0:QEU )i4BeeG()CHh2#ǜOe'xcsJ:CGGo'#\N?++`4)[aani:#F ~%K333S?O^͟>7fT믿r:v_^ϰM8͛6Q\\حX!'O:[{]kȲ{.ڀeؼigdҫw:vN+oOfdoJbb9-k&{m[3>NNu'PxminHqWW?¶Q/{^'G?z,oOĠo RvǫsֺQ~6s ;1}pJS}L%n =c^ li-8h!i V[ dYɪzFMC}2qWP=WyQ&RѿRtҵ^VP;8!t5|ʏ8ۏHj>.M3u%ǜ75,V '!~0&SmfcUk))'G('QeϠwzwmIѤ$$O&!y2kٿ:F>kD\H /8+ʳDEu 4T} *Lpp,)TUe/s3chVS&2ܮj>0/|ֻ:H7ZSSU2228z(~_͂1d:,W1 :];w*zͪ+λXWDGGsͤIw߽u[32T6Ell,[3c:?'OҦMj;端0p ]vnN~ɾ́K RI˖HHLd.- zfW_lņ+F ̙̋߮LyM>?O%V[jwOgEz ez9Q;b0eE-T↬{b{TmjM䑷9Wbj{ue%ہuB\tA:}vofuUd?]gƥ=޷nF,<*3+81{nݪ4DݷlH]͹ֿLP[՚vC4qCbGS26 "¶^yϕW`ZxT`$A!TeVp=y {V/αllfzw=Xk0 RI3)͜:{FClJIib0+[x$Q̱;&S>q HLmU8@LL S8݅"#}tpXNa"S*)Ԛbuksh$$#u~9\=(6>']).V/9y$*$&&NmDEw4i`ĉߛÆM6LZV+}PMEEմjmѴiSD:oԘ;_nA_1z'Okгk'6o?_{_钒bSw59 /&7޳$28Y> RayJ'}O,D^0D)[YKS]!@3oy, Q[{YJ{RgzuAf76jei+ 311BT+< U#4u_ Pˏ+)BSB|4}cjŅh%̀O-P"  O-:1EH^  IDAT)[sV/Un6>.x }&SS:"6 qz.{%zC$IM[oe*)O$[_iԏdvgTLOǣG`)|HYL^s=*'_B {o(аTHMC$BhvQ]Kyq͚HPP h\][;܄Ө INz3Os qWyp屼dsw9N ]#9ejՌ3_BΝv[;d˖-i-a08e׏6lؠr~=ǏgԩL2,2""wje޽ :ظp[IW4𖖹;&s׳sF#۶fнGڷKu'|T)=5z,ᚖ0禎'wΜ7a /aPPFܮ\O'<+/>ڻ$cVƶk7x28#I̅%T[rj,\Bt]ХgH3pc s%0 slj_'eb =I "s>?9^Jχ}|'$$! 2BٞP)(ݘH.->Kӧtfw|_ˋ]isO[6/TRQԔPWMDʑ'tCm㄄LEUyGenwn'\u[Blt9DqBoނ|Oz/d}ERDҺKf1Es`3G?c/Ҥ b3j\6ee`9҃f~wy!Çg7#JLL/^I&>3gܷ~>ߞC.]x8q- U+Wѷo?>D\|dtѓ}A{:l} ];U/_InXd1qqً>]9縸8KJ<[mz4߮Zɽ̦Oz?Qq6^r ^mqk2Kx^+a 2@t S HYraN{%7]"v{~@Z%T)i< -v$D* (5ār Zkks\fs Me)W X:v|O*R[GRuF֢m-[X'JJص{O~::ƌ˞OeԨˢO?_}n;w$E @f3{v">!Ç9wUιH}x$.SViԐ¿#!\ElsߩS'=|0|'w_'-Zj <Qk&lr |R:?_VTSSqپ5x;tjś(<)}{{r#g/缋&Z~֬4g/}B/[Xzr JenWDHtֲr`F?hVBy@h.B Gb] F& ir8FI゙?K*[:IdDjI)R`C^5"jV%U:uHB9kbY*ݽvilAϹTOS'}Nt7Dp ڸeB. fԅIX,l UlILlKiD w *M5 cbSj]t S/T;X^u`4(zX̥X&q_ 8)Uf,Ҿm┳N6| qqWSYe;sIuN1K!!ͥX-&rN k:)^!!)Tsn|N)V|\ǰVYksB%[8<3fDhh(Jj"`//0bbbͭdLQqPN}4#BHt%5GuXX11ѡS !aĐura4j܈\Goo.7C˙Y;s}^9qi vp#1G=I+Bc`L0]>9!H^ڇK]I&GXZ1Vg&sM&뺽oeuu˳`.C7ڱɖd*(ouUOJuu_O_]c \mߎNzSUUUn*9 N/ 9J7}T֖DPkXUUFcc𤋮t[IjcOyêWWUQ]O}|o:1w/s_EY?oJjeNi?1.c(-T iM./Q{>%Z҇}E_S\wN;>+ էʜ"׵G*'K_ )P4N&4<s}7קpy#C\Rl:*Ny_Ct\a_HSD#Czs^wA"+hIII=m2xGN8ߠZIT4d#\^S?b{|M)kdVTWxa]}y$(T%t$4{ U֑nO^!NԸL@.1\~kCv#*"ahqV[0fUR71=zgAN-'t=.,),ۘшjivk l@qQn ׋g2k_kx_z,6$0y(tq1/љ&gdɗ]^f .yՋc駋` 2NG~}9u{-;l@/Νɬby}yy'xOz_t{e#FxYfn:ZhAJJ FR-x z#ٿcCwbM)\=vW_wbuԫNcXѧTTTgn OzGA/g;Z]{7y(**b˖-\u/ztfoz5@D-6+.Q0mb-(1Vۘ5'Ҩjҙ?F:rY* _u:? 5a)g1e˖1m4/Mf8x UUULt ;v$^zu40^%fXhjlu IⱴJ$v9^f5to;v/W^dfvK!* ,#™˘4e&oIIv &`;Ͳói]u>p㵬^ N+`0<~bVm}VyM" n{;l޼9SMwbɓOy @iJ~\CDPp0{fIP}luKE/#Vzz:YYYx<׵kWϵNcٲt:֬Q1j(U}qײl2z#֭{cײj2:V7pXg{]Һ}Ro `R&ta3y4]j ;~R%_'vzt|G $^`!G`eL6MX0$֬qӧ3Yx1>cyy @̿2`Oe@K@rP#P`)n%ږ'2,H,ALJ]`b,]yKo78Rg?,]E842`@8ދy9oØRϘq3.\`2EVs2|pRSS]p'Z-̝^ U XBib 6.~j?2dj(YY;6 0M._07zM& П>ZFF˗ǶmׯA6pK>J/k T{+ ȍ{/;Jwۓݭ]R{ զ_- cI{iK`3Íނ[]bl6s]wr)HE׳w^IwL͛Mޒ&Xy/x؉˿gSw<ˬa-ZyϊUٿ>őӲn&&Lȉ֣k_whܹL<;`WEtTq׵{|OM4e fiSw܎BB-vuL6~уJqX|&Mq \3:&Nyb{Ls|h8j+ޝ3j&cǎ۷+ҥK:t^Xݝ;z\#wgR!__ttv韖]4mڔ &~oQ2'}jĎZD=k8*.W& ec,@Ddcu}]cА9̔o>Not؏hyx^2 cp^*h0N|w+{tգi&,V_pG u~UsHNyҔ|"nL3ߎIp>5D>ha}t:4k-^Щsy1?N-!)ӧTl$%';Щ,ӏ,z1W.JZFɓG׮]ٳ'&v={ӡSg1ΟIf^n MZE1>(.V,ß IDAThUfzAdd ]v 4'O:'&%y $'';K^bO땸^y`U/*2>RSSӧ]te{0g:nky244d:4]6]v4DxK+.Oz AS:Wkm;xŶcڵkGTT}ٚ訝#Ld/(-)v5V `)*Q\TDƖ~rpc_:.@3)1H) U6;z>}1~|5n̤IN܌?dkƯ?v+߽&[@tރVJbb" ~ zT)"#_/[fN[n⶙ɹ͜ϼ>ϛ7U_rJ.GD֭-[&44Dϛ5rq^be:wrߢֿtyVZUС< +WfՌ?IkxUsODD*5聫 &gXKVi_z)у6mJbbYFh+u9eCʃ8ӿ:^W]g蝬=!UT\2+!pMZxHg\}2^:!nQ,//ѣ݋t%[6whbDzgG .rIZiZؖju>Mݿޤ_Ҽysg7#2t0G^n.. degzJnN/h&Ls*8camki.{d.L9vӯ6ڊ~d6(` sQ1:jV|]`` 1)tIq>#`fF[n)cGG8.`\=j:`X /SM5+-q+ѻ{Q#T-!7c+<>#6/^$&&;qQUOx'h οh56> CY7M'#G0ede| G{=Vbw'Ke_;S S~/nm۶xfV,U4oip (8&MTXjJ5kT7M`̙'7ޤyoߎW_}U:RX$̛;ÆӢU&M⯾rnOd?gUڰ:9tHIzL{Wxwz~ҪuX oE*[))MT'%(~-u~n =jֲ|"Znĉ(//ƥKHVm6tVukzS4ФZ))<\^[d|]bj{=,Xj՚IL< zRXXoiӦ_x}uwb\m<#7r eEϠZsZ菭qAQAcEeGX7t@"ꪫh֬Y믿ӧO~Z9;pp0Z3+ֿST){囥KY"Ӧ ~=ǏgL2^BIYNWtiq%?:sڦk6 ^L횤 ҳw:QQюGCii v)a#44OHϸ}w2dG… ڞ<.izM:W=tBo>h$TUVRSSwk#==h<ƌCII ۷ow|vZ?I;I'*M%%lkVoh.zx\y2hƏ"_uY')ݻPxh+Vpʔ^zKॷ?dἷiծ3}1NݑH+vu޼y̜9N:1n8G.7s{ ~6[(E5#͛6@hf6~{eg{\PV\ iѲ%?1>!lܰҒOofGRZZ5)!,, [ҥsvl`떍t0lhfr}O΅lvCa6V-_ʫ/z|#88SZZ¸ n|񇔕zz^[|9,\?8-[䩧?ʱQoK=Yb9p!<8-Z'EzW*p!O?cO<"zgOr]x'б#:t-nC 9c{-q2>FmxR-<@yECy_Y6X(kyaC^+P܎pS:mI@Ç8H,*Qtn[Zk݂+9TP<;:ALҠ$INJ^H B  v{,wݎ`1kñǡx=jb=;#xG`) 0݋_^7 hbﯨ#k(1qd.v#F^[2 01WeaPX1ߏ3O nǫ˶:9]t=gu^6W9r++نeruC~;ٮ/|ڻw/F=d2 G_WiW.R2HUj @-h9wYg(Á)#TfmPGQzɈ@=熨;y Zk7enc$ػIdАb n0[k VlRH@nOO b1&!j [nAfSV-Ψ$,wn^ ܏;0F5]TlIaԩV)ʬ0!.BM;͚hwPzu$ynTg0nleʴ<ۙS֯w.k*+xc4hP{\cŋկ={v@څ0N, ];? %KXMDvґYD`'7۬c;*18rз̞Q6|4eeI{`a\33}Y\֖y';cs.6h4RR4ٵJRvE1Mv4Bqj$(ʸ*$}gRFl1↍ΰv@С =͘IfL40`6,2LLcP\#6,LMCT` 1 8çLH1*@J7mK$ S`pmNGAD#}!5Ptk7>Hݾh!# ' -aAeFAXD`g@bh .]@|,7f`ɰ#)K`' .'g!|g3apKt9pdIC>pBz 1!%BtH'\6 !{Jkh0%z )chi;9uNuHcϧbN7uZïDU(nD]\As:p@*AV1Dkp| d K\N|(++u]SfbVd#)TF&fafl} å`RQpW ?[˖-L&}HڵkX< ]ؾ,"n0 ڷ&_%R%fgCáZ o?l + @p Ec`l3پ 9Lҍ(qMso,|) T#H7n .~=QPP#Go7`Μ9Yog(c'T͎j՗'⮛$P4# ټPNfBƌ3ФI.sϡ ?pN -܂n7F">[o~a/,,ݻqUW_Df nөPw,+wqE*KKuԢf*rOjH v0պ5ߞ|x|7P+Y"uOn*.-¼7z:udUЭ[wxw|gAd-/F֭ѠA]~J%XӜbKla/IU/@=ꪑSLjXE׃lR~ڳ4 )ԝ qрcUQnf OT.Jz`)'$4쭫UB&Q7 vThH2 Yz LA9>` cF8QV #D̘C2y̌9:u /_ŋ/>WQ,3YL: ^A<,_H7!"o4F>GأR7gIċHl@t^EPihcs fNf]בx$ox :\̜9{X*(<0ZjV(0U*}IZ|swfN@zMI8p׀%qJҸJ2xovul:j3c >b"x??g4!D7\%ۑ7i;(qknx套w?w? g~*>Y1>O?z֭qU*«a2uU_gB2ovy.E Ԫ] ^:u;v`YxyתU t;vٳ1oiոqcs=Xh^{5||gtpr V^r\~_>f̘yyԪU %%%())AEE>oO<I ٳ';ž={ŒKɧ08m3ϸ[s.{iݻ! G? %k]r0$tjYk|2CηPv]O4rpRL~%r$laa!s]% гgOgjbe#?^nJc~nx#\կ3S||hb|&7YFt;0wlyi,Y.,~p߹%x m㞵 }-֬Y \#;wA7w6ޚ?ϣO7iQ7܌GŪUsy >ŀ)Sn_t+X|zC_-Zb؃/}Hf ?Š;=30 x_/'5l0uRϲ:>,8̮>}iq0CuTC.s3f`Ϗ:(7?|˘ƌw}Zž={0qD̝;39r$ϟnN IDAT@ڵzcUfMRIرm6mAYin޼9JKWn_P˵^aÆػw/g;qg Nq1zvo&4hТE ()9k֬A׮]`۸"Z.7p6oތ~T*#Yo۶-R)g]Y E?{emI[ʶطv_JjհpBعs'1~<CBӦMÝwމ2ܹ#F\+p&7wmڶA2i}eK}:Cq7k>JJJ5ҥ+Z 풃(roY&f7CRiO-1g\,֖?gc{!^f͚xVw}/m{pɧUQXX ޔZEE>^ݏ!=oS;r1rp+W^ͱRqf Ϝѿ}&)?*`H$c}(Zfee6m;mڌ&լw-5݀-[6c@yxkW[ /5n2J׌X(,*>Oә4,I],`ɨݦ,t/e![wN+kN*J Y;Ѵ@wG *R1ہ6ʴ(Cwʲh\M@j|ղUTJwqlΝ;c2I̝:uX,ٳg3< ,{1pAN5zak|/Nu5]핗x2>Qm.LNRnq /qYY׫Sck~ɩTwfaܰaCn޼9Yp~~]F6-ZSN"~{13s߾}F\v'InP=/8JqÆ r+Vgyw7;[nK/RNm3_;wd]׹GϚ4iO47+6mWVVraa'q޽{)Syn/`'InڴC=#G^A{p7lG?5#xwԉYG\?|<gMmT9PO s[[k|\kݺ1"~Α9o瞻%9JS,8q^8? .ˆ \X-O;$. sffg Om`ݽKGff>OokN[!o/ \- .#.4)Ьam.oe '΅ąmZ6af;o݂݂;w<.'.'n+ qS5{50qo6lG:vUvL&M˦\=aw5m^ǜ'< oۺsaِ[\`~Vúm~V=a⿫'kpI\֜/Dx~^8;3oͼ>7mW\3F~ \:Qwo ֘k# 5n[W x"D';Hp90ŭgyyvx<αXQ,ΉD Kp"㼼8cWOp8kA~׺u:k| _:BNQFNL9n_s-;wu3g& |>x(g]sf򔳮Oq%RV;r.-/x{bN>K.ݻ痕VZ\>\vo6s=Δ}W ŋ>S>>EΝM_aѣ=Xh+VHGx6m/ BX,ҠYgUVag:Ң_.n .^O?4h,YFSNԩ6l؀ 4(2uضmziqƙKY*C13G{ʐNrPܩ:cw7pPdK&Sܥ J/C2y 5Bzt9$ jWiٰ]۷mÓO=_qǯ4]e)J-Gy.:A sf6d`I3اWWyӡa}ӝO}^YNgfv-{wF9K;Lɔ_-dvgaU~fW}2Yz7_o={iLu܁#dG>`u?2no{˚S,[-Rw/VX3U7Ý}/[X@(!Mw0fӀ֝8iSYҶX::ݢ6jhE]ΈiiD;Vv2T*x<m(O#B4Nݺxbp2۶upt6"ԭ[K,޶m6[mڴBukh۶-F:rHDE5),^ d @E1߼֛x`ҤѣN;4vZ_. cOE,XO>O>hO<=,.]>}`ƍXr-#xsN;tA^^зo_|g[l҅?xb–|֭[aÆT*sqCtǟPRl<`w1gl\kf͚(9o nfҸӱ+ 5h},e݋%}@$< X‮1JvкCB?Y,\:'19`3KNວiNDϫsa69 xvi޽QZ OD"͚aǿ~0|rZH$ЬY3,jӧw /uO?`|nbɂVQ$5C+/˯LaðhB 6K,FL1%H N}-̾o/[.RqwVZxx = EE5>4yo4.`.\ݻwo3BΠѬY3鳪U\Uj~Ggmb@5k`РAh׮~_cܸqhӦ m/%r|UEpaCfD,cpI'36mڄO: ݺvC8񤓐yC7\>mߙcq58 mwk;GwqG00|=ֺ Fѓy65eJ+W'm8ʭZ,HY֤ cV@f{}2hҴ7@h|[=ws1d?i<|M>hzj_躎N 1Nʄѡ{TfJؠ`{q}0m5T$΁t7L:M@->mRU[8"9dfq7L謹8r׮:V(ɧu5j`EiY}rգgO܊RO^|El۶ m۶ŬYгgO)''uk$_k&h47Gz2q-\R0 eWq >+Vi})z2eR\1RLif$++jJ\|OpK/- ?Ztx17g rA[oFێȢiVtϞ=(((P~:JKKѷ,W=% {|oײe0x`ԨQ o  vZ\s5ؾ};J JKl lkW_ro7roo% D ,{7 #f͜.\| ~G̞=ƍk? cdP7Ξ.]ꫯikqm\feȲ>LR(--)5=q[^Zj0 6A:]|:>xGNG)~!ːR^J<6Xf ?|rʩ>}('u‰'o}u>ۜM/:9Xr#g"JHQ^Cɘzg;l*%KNT p!s:D" ȈYf(δʩ.x  ֕ FNӟGqqg\|P< Xv-6e?1q(C/Oڵk1ydR)\ve(++ìYPzuix oP^:ի4+{0ƚfdג3D"w>[1W7SOA^"wm| ǀDu?ԩݺvK/şOuk1}U3~gFHjd~o|lᓺdH{%7n={b"Vڏ, }K8][>Kyl?>֭_| ;vqJ#7,g9眃޽{j%(..ƤIϣsqg\:T+)0!VgB?Zei̙aÆ1nS]vd_{/N=TԩS{F1c eΞ=[?W;/^>}m۶} 9d85ŝ;s~]S&OA~?oM9+qOVUecv;Fqb]{~[X|'=z_x=z93_ob;%W*0օ.ԭSq?3nP\\CW&{?@  ºg2K^PPP:J~hU; Ÿp/|cL0C^3< rz)`EXHXC=- BɎT/$|c+bHRЭ3ۣ@ F%C3"i|.ܵ(; c۴kN~ўuյW33C ?xǵjĹ0\OܽX~{|As,s=9/"chѣKQ}7={y˖-<9Fr"<&ܼY39cݻ˕\Ҕ0 ަ_5ur5b={Kr*bf7̙3f͢T38,YbkƍyBTv͝x5-1L"btw\>.|s0>aRdk1olƍIr<#W>^:jIP7QPV.)H=hƍK!:ӶN:/J^Hx-zy q!WU$AYqհaCڵ+0QzqB9 ӎXLCF$vl[^^6n܄c1cmժnjZ2&RQi@,< +=b{m4B~ A Y_:]~QgHm*Uۛ4)/mdV5͌='FG5 JHAUՠ2X4+?QdzdL$&Y(m0L91b{kܸ ~=6m`1ͯ~@1-uCPyPX QOCCQR)X Ըy,9as˰By #:0y,-ʂoMpef'uqff 7 ?= 9E"#w=1d@KLȬ'>zSUY-),K0۴"w f g&cie?EZiQbȑ-P> _tɨmԨ:,iwqh2 q࢞ReHH4CffgXq:b⻃dyf!% 2@9D/$ىrf T"eJԹ*;+F)FnX$qg!n^KF% f Xn K) ְa# :|)hwL{vX /ZdyCѺPv9.*6U ~B`X| ykD}ENV& &]kw(고+67uzEtwfaPyT-:Yq Ags$:hKDfttF wLaĵX̡mKl4'4RtQXXvaI4Iq7*ǧ,v :X,W=W֤\aqU ;0(hW9 MXD2С~ir8'Ul@"j6̏/AqaJd̐LĊe<#a wZH6{{[1YuTvfqہ%_TSTeª'&%4]AYn9c@r(S nɡba ZB眮ʰuA,u>Mysb&3q+KM f* ΢-ZL$TPD$3X@w)c8#vv,V1W T&V>>4A9} c&GtUxD0F`@~e6,Z,IO9K|J\#(@0,#g!^ Q0y'R}%`*Jn胜 i#SZ]62tq@OA=Q[(0ESY~J6#53w(F[$l"K#9AܶXa9Ӭ v: ~9ljҍ5#nX\uDGHt#~,:+O PyJ܊HUZ>S) 2Pls>}H1Lg\nC#?26mSJ!QϰAVI`No7tB0C9Dr6;xIՕCM,81Is`j~,Iصh&8L.:+و|$E0iX皽q9MQ"/OUOzfَ X5ފfY-D_yPU?Q7 J$z}D}:ɊHf`!BM^S:Y2Sq۬50@`&oTsϨD7jrND~ TLò[kHA1bP嵬a$OtH:9bLΊݧ_,`7@z#Z@j!./dVQnFؕ"Y BU|i((;TD!%)Ps`˞߹JZb}訔X[*i9bd!9d2H,9}Aʸn0GMEv'f*ޟYJFC2 e3Ll,J(J~Xہ؛G5B$C_v<D6 2WBL'L)rO3xPFNsqV**WH[Nt&墫ȂƺNh2 O۞ )UthC@E`/̀x>p HpyQF؏ 7`ǽr&JH"S"QTu a}Y>;:4l}_lj;h>{h*}t׎e WFf/#.?qI9F޹hlzSU F_)f@!+ u)(.(]C[sQJ}4i:bp~ Kr^*?,֙y$eQ YTFE}M6=hC 1saPjQC"a%1u t`"y Bu]t(ƑVh[H=jGfS:#nٜrSvDtѰ><0^R+%g}p[(( iʅf A gָLwm>+':g ϰ"d ϡ5Pay0q"I>,j^IdXL2cȄޢ =>z,[>otS  }m٥-CHq(paO<7Y]/nOR[d=[7۫dMȟ4XZGO4h)$B|(6]53%RǨJz JkRUY i (e}I9Ru< ÜF4qpKAxh Di {wPȦPnKeRpVt.efe3Ϸ)LTBhHGuw.C& Nr5LޘLZu&٘,ފ_zYÈ}P3tm)M&IWDDr8ZA֭H8™ͱ8[ ')}H:tHe*Rު3t$ uqUfW"DȵN2Wow{)N Qq+JZ!Vgg'a:ZXXI"ĮLU2e9 t0%%SKd~ ^:(*9mF|d@n:/'s0HFlirG`lH5g$s\m#cCƭCR"}5۷N_r^țT۝֧#}$L0A}*C yc ''{U)ǵ\&X{}܌`yŏ@N)l 9Vfu܈P穎s9~DP?YiL' mT6]r@%g\2j}\Urܰ9QN;7Yє4iq40PqtXYp4S;pKqVxyխ[]|17߸ᔻKpС^6} c礪)<t]e{bսG=ryFN:u _RJJJ0rUԩ#ʰs΀r#ѩS'畜#G%XsK0⊑88y~\u^.|K`~P^g˗+֭. |>b m3i(TO Ǫd3(0:#ˈeѭ|f4;/IcH&=NOK!\~i<%`0-gFvf$b1~^yX,?X\Qxh(4jC^iYn*ֲ-lb[Q 'r*bokJiƨf-۶x0sn=<=w[|U! 2 OIS]cǎuFa8ꨣФIyҦ(78+Wj4v85 mkܤ ?]X\u(!4A9gbἴ3/be8dc|O87֭]'цX{Voc=]vaʾ[Q^^Eᤓѽ{7_.#šXM#DMj0)}>TatN NH; V9Ƨ1"5AQkuc5hψ*dRpL1:P + ,50d[e`ZJ+n.W+h#-3,Ė%ɍ z}& ױʉ7d\ጙsE©0{, /SdZfU ]@X2#v)aU&'pH^~xGq\v мYs۷W_}u*ݻw]tq,o={bڵNѭm[4ikUz_UƤר'OS^oOeAҋCطw/M ܱqݍ⺑qEq ݰt~|l5o,Æ [y{@e@L_|9Qo]xZ4o}᪫d9=Ǵť_Nmc}dU;^(Sю]ZSrիs/Lůnӧ5mWRT]={D&M[o0py֭+-[czz>|8nݺƩˍ> C{uÊ0cJשV\}p\VF'9 +S2:H0]M.:lwx~u軲yW1z%-n+ @((knOLS<׳ 3ѥ[wy)Ld7xU%Cݺ[o+SI'xܦ GEV=v"J޳grz]b1gmuħ|={-738ѬEK ۺuKzE //Oå_eGoO.~rw駟F*il{ y ˮRBF;m ʃqn ?3WV)Aq>̳8_?3 M6a g<ƏO?-[ æM0#m9y3g&eJ\kOnǟ<ݻq }j*.^f?F޽+@e7  AQĊM$gTן/%V(=@^\VMM]NxtZvYX&f]FHm$B57Xy-H4 ݖQQTE^Π#1~0HOΪhj tVL|ULX,RP^=lWˋrf+˛Ǝ[Ѻݱxn\pCN7h0xwxwVqDLܬ׳gO~b-Zǀ]]vż p5٥6lk%#~EL&qb_!HM4 gVȾj?] "Bc;rQ^}0ן2XJ_s:[N s;wŗ^ Q^;Bswa[`]R$ZlXpOfC(u.]jGǎr3,Y:ڕj׾V}"եKWvov$I\{5@f0`kG>ި+)V՝rۨiWÚ{sŎm i*eXӀp!1}$fXqO,˝56_"T 䶫5D(1KFX&:uAӌcxބ-Zb:Ӳ@j{˯ӊ}Z6 w.Fn0f 7׊+p0W\#V:N855wV.v|8#`_^Dz e6;'+zzҴ IDAToQNm0눙}y2_6Gt$\sxQy ïAxſfՏ9~CԼEK*tGߋ&W4~d 67e[+`a gQTTf> =`͸ӱ^x6Y\bCN{lB;a ױ:w)۳l3.)9ltF;>(Y} sgLf;D92iBђJvy bFQQڵmO>n:lٲF sg9qcg<5j|F6lJJ<'G!>ѥk7<PvPZlW]=zcǎ{0~ XbX,ClMgia(#l`go\\)00{#\(KwI:ʘܢJ,TF2lON&" 9gn+SNYpXjnteGgaeyZZ`}V>H, jתSbx=PsO>AvPTT={bŞ2`gN,8w䛶-ZhwF,)&rUPtO]^^> |%z%/Lu` 26X# uwVGA~jhذ!4hI)k**.Zj( 4\{P\w奸ؼi#_ė' xؼRV-}J9fZxxsl̛R-Wޘ1 7]57RxPlټc 0% Ãtq`9=g.ڷo[o 9sqfGEE\kSPPq91`\5Pq@~^y5k+Sb٘ץö#UPP]M6V6lp:>J.w3a-?D^oĸg3>*iMD5'ҏ \ ՙ-!U5NzλdXq!*@t.tKm3Ϲ+EG` նFBxʼn{u݉4a"t\F_4G6B0J[Ӵg㣨sfw+$^TtEQ" HPBG@:!;ǔM\~gfN?yaڵ˺K.qhڴ)/_w___)SǏƈpΊ2hr@*6*uvĠmI¾33q"o+cd@p!fz6jICɠdȆ*$ɬdAdq YSo^ hѢڧ'@Y8ڠA(b8[Qڵ bpQ4mԐ|PRnI`΂r呑~W檗I|2~gAa„=k*GU1/ 9h3={y^.|f-DTtboI+.$LXVE`;\_9F8K~] ;xr QQxgW )PT2vJI^SDQ ~"YHFmÔ5L^.E iaB RQʌF?Sf/92SOlN;Ν;ue˧QԀK/z7qi<ѪJߠvæ8֟yu` ȑ#xu哐{ 5k[ úݽ q|x{[ $VRBI+RtϻOvy'Os6mb, ЪuktwqX[FNxGBnPWJrsrPXXhc[ѴiScǎ>ǟb>ڶq"֞oǶhԸ)|ϓ+Z7VѵoF ڟ.ַd_ TD QKRPIr1J:"d!22L+Q$0e)9)nA+ZS!栧IcD2!f7:c8sT!ǔWGSsRvkdT)Պ`2fMq٣9—/S;50rxg&yXҫ|6ӧG5PZ NBBBeZ޽peT^Tya'M?mÌoߠJ<|,n^KSLPtt=ѣG/;N(EW^Ay?EPFMt=hK~w;  ;!NB ?6ǽid8DTĨ͕] p,p`.dfGl|deeBru '=-+&[Cb^ը!I9N'LCb„^:֮w0ssx6k>|׺r2{9rofFtt4Ǟc {vBǶmpqK])Ӧ#! 9!C`Zsl:9UgEEyxvX*>uyyXfH5M׆`ć"߳GĆ5Ƣ/ooTQ W/ީ§}ǩ|5Vdz7Vk..wg 9DCv#eb-NrssѾ][\/^B^^VX>H]vXj.^g-VZ ֮^cap=1t(C~XW]Ds:m̚5V`…p=pXeV8MЙCgi^̰NI<`*P$Y~2&"9pak.6šĩSYKd`Ƙ\3ч/%E8#Ht8gJzR ʵ`5#EL%1(RY422))))xdo 'Y> #??OY! ~(cIm%uTdt'D1)VLe˾:񧧧gG Ġ^qX`^)]J}nqio^n.pSN-͉Q4+^pKyy@^n4-8.+--ͥQcW6'{7*tvPre `&48 F8>3X=3,5\G.S7 %30I9MGIF_U""1m[V p[ϑ[.L,VՉi,zBߒAw'YUp5˪ԈL 5eP$;މΟ<^"3}ϴE$ ffy1a3cŐ<Փ.6ذ%v#)hi"L#/Q]x+?>2<]ST: РĊgPL￑wdz WUDiḃpvJ2l3Bu^n_,PC:ژT|8J,!3dAL&ܣ`OL;$5J*%ZsL,!ݙ*c2 J ng"^- ˇJ @LDD\G*] )WA4B(O6wy{ds (ȴ'k0Sb㓾3c |c*ףd_A 3NJ'Z?}jDHSB+1X9d"x keqڭj-'5r)ɈF8tT3ќi~R@~Eh 逴bV!I-O&'&vf v"ˡB;шI4l`ƠG}(k88<>1xFJʡuCF.t|I}̱" I~k凛;ڵK`ҕUzS G=╎;? /X9d##83qy ]"IjU>"K)To"UTEHIJl-3U [ƺzIQJLF4+)815iO¡^_Q^V"ÉJd5^aEJ>}*u$RR*Uqӑ\ TeuԔtI aYxDs7 ")JUc@Nf:SJ]CʹxAcf\+mWDܿab?9a Jk707=+j:u/PyJբڠImQ" civTDd޿T2bD<8+S>(W]fs|2f;H: ". A˗G||E*^tG ~݅'C6f#C3GDp<~mx3گ(pfԇ‹_| GptK gJkDjh,Dj?dFL <-uc0.H8:+5\9|0`~~(K5\+A$ܾ>}^)yYw}d|2p":b8†j#=>aoߗ.'fpn/ Xj+-7 ]c*fd8->/=qn>ZGvewC  _zU‘$F/L}Qrv0(VǛ)CuիW#""ur]#ǭ+>F$R(o8}b~/3{R =]Q#Gx̒MY8 /c gFrr2O!yip$w{7 Gn]LnDžezߐqy FXpddd傑Ihh(}QQQݻwOkȑ6mN<`/'v'!!شi#os'!lY ?3Ǐ߫,h-zׅKACrrQѹͶ_)~%l^,K  ?WBVf&ܙS",UJ> Qn:q eb"1'xS||0ewHKM qtl^l:ȇRQ҄ŻW)ɺV Ǐ~Z%%f\:?Z< ǻ.d?!|շX| ,{=b`9f4^ XR* nUq%oEp$.Q!ttG#Q&K?M ƍ '0[jpEلqc>}l6,zZcr,9}?.H-('VגYi.U ֕sϢE'0i$CWג{r% I+ 233ЭMC*Dc⥘?>mۆt?UTgddয়~˜1cJ<0GCvڸ~|*UŽ;p,X0qDԮ]];Ƶi3cf|{xyo?˔. >CRd*^cG˖|t:i-jy4]U|#) >'F:ٹ N8  SWbR_K@b5cGXcT IDATr!KHj]ƉC: ۥ,#u*#B4Z(H^ׯ^A(J?ġDPu*Hϊ|1s0Q-hebٲe@C-Zl2mrY p!1@GWȎ%U̻= =E4~.evR-;#h JYE#~21!]Kza߾}>Y0zhkׯ_G`` ׯgb3f -Z 4kVBcݼ3oy=|6~ܖeUNhٺ =qD,bԉ22`!Ý TaE p=lذG1;+6XdoK/ДLөa"lנ^;eez.bBOfX݂P^7ׯ@x7_[+#kPP:v6m;bO"&&ǏwښvjAoZ##vv*$6u h:/~V6_9,T0͂_[jŞ=dbhXСh XVٳ/ҕ3<<#F@*Up9ǻヒ  =nވzh߱3wc͘8y*1oY±CAƍr/qڵk˘={#F ;;ϗ%KY&:wCñy&lټSNý{oY@AAx ?eʔ=˼y wٍ]vE׮]'ݽq 9ߔ)lٲ'O`E㯿#== DP lذ۷nUŖ;8/O8Gbp"Xѫfs}hظ1xi!+F'q~7n[V<~w8+W_ᗹ?q[>j44k˗o.Z}?~5n^W}|DE̚nggg!;; ) uׁWQjuCo/ocX0hԴ Vi<^hacpAlZoTk''O`%R $"<ѽT$?+W;GXXFCa͚5,Æ C|[={^hڤ@,| RR0uE9Hdgg@tƧHII L|_}, /c_}Nbo \Z%H'OeN<ŋ]tA&ѳgof( ~Æ 0`aÆcV,e+bnÜ0NCػwo\xΝqY̜9iiiC*U(`U sq664QVt%F))ɸL p3)))Y&lقiӦ98=| */n=z:ըU܍"Y?ek6 M;qy?nlbQoo۵CubC4jDuˊ!990` ^}5ri `4JXb3>7հEޏ(&z؏?hӮdeppǶ0a$gdsw߫8I&㾜oǏcذaHLL?]v+~haרQoSzDTnj?/X"889cM,/P^]5kb-:u.7D߾ot~Y1/3fP)''vDDHwܡSǎ}vΨ?N0z!6^JoRF5ulQڶlNn ?7P;'@#3# d@_D?4LiŔLrx l԰aC0"">|8EVAU##ˍ,,"ѨSUjQB v#7K?Mգ#םϝ; h4(Г)(Г{NOSY/Fe ըLތzM)ćQ"%_!&Ϸp?J/۷ncT0>Z4oF&&F.]y?ϥOF}U `(2њSZJ2Ջ @FQ B6iDсU.NF)QBN=JUB(2@xod 1Pw b蕞]5(ȋQ7$Ο??x3 W|L(݀Qaa!ЭNm asml9ﴉc ?jV @Oan*oq1F&p Oy exDDT+2T-OW/Ӗ k| dСCb 2q&8XܨQ&d~ //o2d6Hz""rQJ(..֯_OdXt-{ɤJK,d ~77$F4&d"g2lnݺQʕLd2dgI|g=jjd͝܅-nB~3-d6[hpBѻKW*S&(//|)2 u=t\R,EHP~g{X7w2[͝'শrѠAjRhh?BIϗڙ361LwYX'ndt۰ [nEN\1T&W+Ν;xpy\v ~~~.\9Nbrs+p]wRWtkl_]o>ddݰlذ1Co7qM]nfں|_*j}HH22sȮoNL&l~>'ApH(jԪ Mxy{s K$77>r]|=k߾l-GN]q>d**o;9sc9opMUV;y<Op={BCBPNԩSnހ7u{8rBCCQGwMx{{СC;wwܑ+V`o$Knvz%< v~ժ(rַM\*̑k7QVm]:ݻВÈApt ./իA_5j8|;v wm߾AAAhبk/ԯ_yyy*|rr2]b%mI2D\8pΝzgdre˯u"yH=@NٴQEx}\8gRW]V+KȨh]4[`=w9˗/WްYYVĢ}&Bml%{yj((7:3ХK߿r=7m${.v7@P$J,L)<#"S~'Zw8qux'>\~5A5qΜ9u;) ē ^ pzz::(۽{7L&~i1oVvރL|FoaO'wAWʅ|~~~Ajd?nUTA^^l6pE)#)[Ve|Gn0ka!o |[č7d?s(S Qu@jj*Qresƍ-7D׮U &M[6ԋ^lY?#bD.Y)2 A!sZ٠Qc[eIIN)- ܑ \XX֭ZϿ?ڵk5k̝;W.NV=y" N;v/-7ƣbTSa׶x]ڻS)VO۹I&XQQQ S|7e16mСCq 5/wY*F_;.񕚚|YXViEo&]۷o̙31e̛7M4O?6mڸL/ԓȑXm'| ѦMK̜6'_ٳ?\8[*Hi(66 %%W#*2bl1 ÝDA>꣱hhڴ9`qsnJ7b!Xr|йK7kpXyfffe~f I @իyAaѦmG|4Dvׯ֍=1 Kc|YĶay,m5`PPXh``Tsr"Btt4q9V  j*TR'OFaa!1+a׍#*T_Gtt@BN-0/  SGGl |Lp'xs~ѼysܾsΡ ?_BVOf1HC ۈ#9rD'O\=ViߋH1 8w2[bڴiXrxL֭[P>^zl6M60L Epp0Q?RZU` VxY!2n>>2QŒ/FthL7$cxS/_fIyݾ} ?'Xs۷qFzŌSnAԫHLjuHDZ#Z^ c1; *tEFU۷T/|2z莪UÏQK-,L6!7Q)Rm0e 4<2vUmXԱ-ȴϒ8z0^ %NOOGC)ivʗ/!!!;=bvCxxy{Wc Vcބ\뼼xۈ E+ּ:@%J5I7Sǘ-#3͈SÇ>믿oo߾8p^y|7E{ܜ\( y%^ݻZ5a^~,DEWGr%ݟ̠!({0lAxxyݽB^׮]CXxy+#&Kpdf+Y|f0[܁JѲUk<WS~6 JeR yHHjfسw/|ŗ_Wq5Ha}8`"E<Vy`W7֬ƾ=܅'O*9$ddd ((̼trXz5ك_~8y򤆂SҌc#Ub1|xyyO@t''UtF.<2 :lF 3gchӺ5|||p 4,Hv΁qLC1ɢ'G>bXMiˇ}>oό@+)@D/V ήk׮N:طoq TR3f_m۶yܺu N+O|+V*jikV"*8.*W0!bハd.EyӧuM OvQ;{$ڶOMvp ϜB^Q-@QNXf%+7`_o߾.BhIT#8p4?z Οѹ[p=[qgOD弝O<η}v4kL<󌎕S{aoԤ)s(_1n8l߾֭Cxx=QT3gtI&ºq%$p="T"86^mc"m ?ΝË//#GP~}TV ccUWJft!㐕 oooه̤jh6P{bT. [ &DIKMhu|X]vE`` ڴiۣ]v:u*ڴi!CE_|&M_Næxg1 q*~_  BBVV͚}gy:7w7l6eʔщ&MuQ^=sE\\.]ZL!s/OOO=qc'LG˙ӧ8,[ ^j5jW~Yp`K[_~&5g4jqU^a<Ӷ-ƌV[#00͛7Ggźutvs7+PV]Ԩ]_+qXWW_~7 IDATI'*'(%_nfjB~0klȷL2aӦ+ׯf͚ʷm6)S/Fڵѯ_?;*_Nzxw|\eKaSF 0 (O\VE9Jdgx0<`t4^IrgvԨQ"##;7x,s)$$W@- /`iABod7kwzL&p-ZǰaЪU+9t ;<==QlYX,fCUARHcƢUDf8/bl2N6l@ΝѬYsx6ĉ8/ϯs_c?qpbԬU 틡o-\p8&[@:]*Ǝ͚9*u9+h׮=,X fɂU7/:s&M81U*xk;v쀕'ILZ•WEa8^n،^5 #Mbm&@zՆ#99֬<&d 88X?T{J\t _Mugȑ#d'l6]vFԘ]'OF:u0o<ԭ[W\7 >>˖-St4<w>^WZ9'K/ ";{hҴ bcF"X,vDPٲX,չڴi#:vf͚Q`Β^{ӑC>D1o{wӨ Of1Ӆ dXm,ΝKNH;Zj|`W_}AU#ߝQ;ߝQ#""s'V,[J#< 7F3?N/$[s ԫ tm""Z}vPS q$XKz֏ZiƨRx0l6ڰnlM W[`~~VYCqj*%XDb]. [@yڷlJ'cf#"; ǦK!ޠPoi^NLᾌF*%Auè#o #3Ǩ}vt䈽跥K|pA/Sd`h^x޿l'D᪤WYG5@2t2gЗLT[V*|=T:~ azUY7kڄS[~={GYYYDDD:uWkjC߹c;U O`%ޭKgZ3i,X&'%I $X I fT!\G4HIim߾*VP[ $L3gΤׯm׮m[y& ߟp*si4JJJ2LÇ󩠠Μ9C5jT=iƒhݺuMt-yݻG*T;rǛo+Y+Oh-߿vrҥ^\Pxx8[N~nzz. /L9WըQoNdZi۶mԸqc""2ͺw҃b>e  "Fk֬Q$<_MDDO>LDD 6PpǦfni^O\09O )!!V\ILj1ꭡCEdbŊvZ#"\ *ϒUxDDlu\R%JHHUVZ%e//;vHUd1.YGGGqBy%*UhTѺMi5f2M""ѣlo~!w2[g5q;5TN+V 6摻i߾fZr-f  kAwe$Bb6L,KԑXm@Hk!vEl6>;#gݻh޼9PNPdf ^1aaHL;$Oj]Shh222tMZI%ĭ ̉'*T@ZZlDglsć)|3'᳴l* >>HMIR,OV_E:w 3> A䋪Vx4q梘D\[/3Y!雐rȼ<dua:=l+dD{Hq% V >~C *h48S~XX2326F_ W GNXyY+44HrW>>>H^+eƍ1vXϟҥK1ib Vsy*2ō'x CbE66FW`` N .77wܹ~ኈ@jj*J0,nt6/E:E :8ԲUv61LWTdpjM"[T\:uko*O< [v,I3jrfc iyEK=n_l"=OjQ q?2Kr}̔_笭br吐:`׮]޸tVZ#Gjtz1}tTV iii2>\+J$=ٟ`Osg29VcH*H1CXjvw Zx pd❚FgvQoΔA]|\ǁ3;0q&*4FB*x+ `bMP~ҵ.4 0"5Xr r?4ueP.C@ a@_S)[3=ɰv< BQ/½LČAE%R )Z(싍*Budl5#ZVJx`?fDFFbܹHHH@ݺuѩS'4n-[Ĺs, EPJ5 GƏ?-/s,E`qᔩKF1F+M3\c$Lz*uut,w@QQ Kmڑ'^6!٠F*L֕]BDB{| Lwбe L p6^ȾGhX4^stD` `NPWL*G:pyR a).G^_t%VeX2FdRщQב3s)iX JX:yKs4Xk XW^hݺ5W4$dK & 9%3KI5Xd:@oZ lb\yTh\n1N!"Jj_J2)cď @;H1&"$nWJ$dj"eMUHj̕Q"MRvI1s 0`iH( Hs]u@I@TZ(DTg?S1| ֔))E!vXL^S/`FM^;^h ' # lZQ,c# 1C |:sme!6%2}d IN)$#1O K99,w/ȥ \E Bhs_ 2q<W1 2sjE;& -8AΣItxC~f,N!7bQձL+w)(duxlR[El*Ы҃gee_ qV #yo!F'X&#O./*[]'H O'1geSz-D 2u:QqusX=QQnzZQ?]UV=2_=rWYbEXևVr1Pzu$&&%_E!F JZe$CT" EH[cX"͕{,=>>aѢEŚCC|ΝClllp 4qqqrhQgfު[0 eEw`̟?C֑u#cqo>\zEUi\4dHZPr=DjJ:*)C (F= -- {ִ If@wPPFe<@ o b2vb;dfqo #o TML1)ceΚM#ccf>ں'Lzyd2QZZ}IS2MF}{XaΝ>Եk>}z=oԨTXXHiii̚5rssiMtYJMM멜kcEz&իFׯرr1Gn!tQϧЅ fѻ+^8t͝;שcN]ʅmZ_~aݝ$8v-ugqΝ;ݻw{(]=$3\A+ (_QWuuwAX|~{5k :XvA-[@0H`6@d!|RR2pCzֹz`'=`hu ԯOf?1>s^ ())]9- ɉfjxKLLυd`wǠۭ;jժ={6N>lYoW5=v[+yKZZ^}5t(עE <4h .XM`I߫7p@,`ҤIѣqS߻@^T%2=t7nos=e˖Dj=5DVm}=kw֮]WMGxK=Z0Rn],\˖-M7݄3g  +~\&;k+N.$C'vзoLv1"Uր^zxX|9 3hժ+GG+=3]w2CmBCch}\' KF)UC2sj$TӐsy+\չ ڶ;v`XI &|[nӧ1l0TZWƴil 4M-܂͛cΝZ7fಖ_53W_ tEJJ |6nm&YW_ #>3læM[0`4j1w\F+CVp,Zѣ}v=zÆ Cff&,X_1p@\~<#F8uFQXXիWaƌW^Y[$Yq …q׿9_}e?R4MC˖-ѵkWʕ+'اmڴqa< Gy;w?;S!CnO?\P/My S޽{`o1,[n o綾`؞^{eb8M6E޽cԨQXd }]Ǒ#Gs@[o| =w?Fe {O:@6i[vtU/󟑒xxOaa&Li|[M;iwUAgݯZjaԨhԨ bŊZȯbEXC!SO>}ЦMk {YЌ=ڲnɸ뮑h߾CW_nK^zutwRfӘ1HIIC=3PɀFq̜)oia<xpt1a:vo?<::tv`S)rv?~<֭[;GAq} ԩm۶a̘1ѴiS{^ z WFq L6 PB (,,đ#GqȒ+<󗟏L2/b=nڵ\ý'ªU8^~y,yW:k׊wWš5kѷo?ܹZŠ&QF(* ӧqÁSXX#$e&M`˖-³M~ 5on_Z5 F 0s{Fkε絞lVK._L0)))9s&fϞ,s=x|] P|y,_Lx^PPo[x81t0vQы4jE]Evw!={g.aӧ^ݺXv-]0^D.~>^͛K)^jrX~=Ə7eԩQ=z`߾}ؽ{kݑ#G[nuj[W1V~7[bE|&{8p+WBQQQB$ߺdN:?#%UdggӧqIIrf;ǎCrK/ " *ݻtLIIƚ5k0n8^z%"}~6k +WDɓ:u*-Z,NrPFS@Am.3AsޘM7nO0_6Tׯ'" }Q:|0v.??BmVi_7f̟ٳUi,lymCɓTb:'Ғ@m.oNDD;`:Rcv4jGm*[lIEEESJJr^f̘AJ*TTTDW\q`DDԥK٭Jiko߾DDT~}憳1/lذ c5ףr>k.ƳCV-x֪9ʥ^?`0 ={v%uo#<ˣYf iDD4bRn]Pݺuvz{}/^Lhb )ͪ>={^CDDW_ݬYh޽99}޾};WJզjgЕ߮_Νk{g㺏"m?>ֶ݆wA IDAT|ۥ2#ݗx6֡a>Yh6/ 4ݿ4:{lxE$'SjrZ%6P(Dm۴xg|wРTXXHj4o3m,>GưuVzWW_7ӧOĉ _Ij #GRQQmV 諯RC裏ٳgf͚ RRRvmtIPa=~+5Mf_)+egϞٳg(==ө\s̘1tYQ:ii4|pc;}vc^rIId'TH̝>=]R95kQ)))HI 6 fꔒ i|"Qa#[k._*gٳ{ٲeD֭mu=:o?6l؀5j ''sr>7];xfҳvm ۉÇcg꫕%:hiӦٳ5k ??xh"0пѣGn:+V [nmd^999޽{n!Оq+w^~;ONNFvv6vG%[PPP P>?߬Ysl//) c|vڅP(ݻwoC&M|͉ӧO۾;}4222w ɓ?ޖiZ_3x6zg}t jI2(T0 9%ٍ} yhW!#ѣGnZي|{W]ۼ#X)HNNƷ0p2>sϜSO?-Ӊ23+Vlmux9aBz3XއIS7;];_ .{I1uԨbegg/u222PJ#^>]v!;;}JJ?saM3gNޞq4l>h ƌ]}8x &XFŊm+n՞z^/ 'XTT`0k z9ސ/UTb?:] ,|}wD:ώ(/@`+ch1/|/tϩӧp1dfV3zPR%̛t+Vp>ݺvC;x-ǝw߇> l$ b o{9z(> 4zZGcD܉p]#&{dgc#sN /?[l7^VZa޼7|wy> L5誘J(>4xHe^̚5ݺuCӦMʯȯЮ];a2RNz!B!l۶ ;w6ڶmG ĉHKK&M?x7//:t@-ШQ#;ڵS_xzۣ|_9ً9 _~kMGƍѳW/^1C*HMMŶ/㥜Noop{zc=3f`dw]c9_iyfmrbEؽ{7x ^裏s0?pɨV QJ$R=ߖ_!=kʢEtL 55UVu({G䑮 :>ۡ=gXK_̹,^82P|þt^ӦM?W`Ȑ!h޼9wԨM-9GQJL>͛τ{}tkI1#`ڴѢE |xk.̙1,YzDQ>#ԯ/HC4,ZFf0xFʕ<)ϫV4ԩ֮]˗ۀ) >Y@N˖-ѴiSu{ǡi/^!zC ĉ-I,YzBnnop6d4>G%ԗM=(AiAPMhety*,,>m() `4}tKΝ#"m۶Qƍmuiر{ڶmK~)i񢅔Y)z]Ӄ6n@N""7fϢzujQqYo4k,]< 1תUϟODDtڴiըQC7p@ڷoҲe˨nݺ"*UDDDzW# R Wqc]ssU~mw+1tڵWf zJ7mڄ-3?m#tկ]-XG+\ۍ91}:$'I=³eRQQ32N&b{ӧO$ӧO$k#޽{Saa֭[ [oFiDDt9Z|9ը^]suAk=*Pwd֫[ד>ߝw)̳[<`D8x}<ݠ&v:h9sڵkK3裏ho=m#ʕ+GP4f|e…TBl}2MjԨA|׎9Bk֬1'^;jt "":x ݋vޭμ-.??|I.K@ȼg >Z|95h  Yg^KhѢEhSc+iӦM">XTbxF?S}t7<۵kGDD[l&-ʾY/hTfMZTkM7d{u-+ڼԩC .K(p7?3j[g͚5y(Z&6|8$(%)@\ =:+U8}@OKY~=~G <ʕC/DuK9BCݓijT~o@rxPF r U8h;ZF ۼo]ҐC%,^|ī#U=T\. ,;v1iQk [IWq,%mU\g,t`q#z@*+_>{QJU;ڭQreuoVGi?W-SHfNkX}tرXs.0gu~RSÞz{z~$^ɏ\3<ԀgfrX}p7{b Nw[}2K~g$o*l ,%V2DX4Mxܿ>#2/`2-U{rL+ީ`HQ$WXoVػIȨ0EM3I4-`x9@V\' 8A<#)2YzLq4 8xݖ4ы[9K%HX.Y2dK׀i?~FC+2Na⌞ ">.T@-bĺp%ד+se%A;M&iv 測L ƢcYfz0b1˕KRq&yf{dD;a8`pi* B1嶶cf$K*nIҤa^"*<Ӽ 0a-La Z;"O{╉E.#$fm)Jv?(ō*^ EWrߒ褤Wi|2L{4?f.Ɲ3ޖ#_./]eenn%정{:qf6o[5V`d !H,`E:@a@pOvHDQ鋪r>]R (dZ\"7RBZy KPM1,.)ʢ %߁Z䣷p|v ksߌhzAOfv&09b]}z} Pr0@IA$(-%HJK q߿?6l؀ի#''999ػw/q 7ذo^^>s%f۞[i7D?G'A. >cǍàn:?~w{qFRyaln~J"ns.jI& h\7}!d)g wbQ,0"?Vu:YԽ&c8OoL`9~xhw}C Afp", IDAT-`ɨToR+СCh5رcѮ]KNNv7x#RSS_b;  @o/b/0"ժCPJYI>~Y#"@0 97&gcH &hƏUSMm@}'|LWU@MRBI0ONk.t /fΜ MO?aӦM3=+AE^dl>; 671+WKش3()5kDFp饗"==͚5ΝZj`0 )]-Z/P1XU}3b}Ċq'.+3\пe[866կt ؄S=Zsj7rV3~1! 5.焞?;rJ&9{H.ppx= 33 kQ &S:1g7!##C$juM Uj#);B}|cMoh$aP[|E4e!uԳ m}nxHHD6n>GWF{ҦC?[3Z[,O l \r" I4Έ*{j28R:ݬ%})SٕJK4Sc̑Ҥ^{/mN7͂ Tv(!1,N>^/&p$)R=C+Rʅ/g vvo54Cr|LɲI29٤JT,rp2"N.¦j!}"C P"#5f"BŌb_g('8Vh. Rz3AHƅ)@Pt8*ÿDIBVT{[muEdiԾ' p7G rv)30ǫ]4saS76an(4$QȼS{4IJT3SW*TQI] ;Ek;ghueL^bVVU3豹OM^耣 $+$EK־}${O/2i:) `w^Ãp9 a)P*~|?L- 0X&~30!ٌ̰1iS3"AAw*2mۄPn&&>)d· .Áы)oV7gWs47*Fꮲ*Xe%vI΅OT^Jk* =צүd^/-ԌK#ӁF\踁WYF-FjNdvCACl} fg&'45h?T zDO8LsNq0grV:շYA%x[I]ԥb.t<LkH >Pl>nRewqZ{4;-)[<[S?)AN$ߪwe%>DzpFI$D xX!Bצpdqͪ>'4/&%ؿqd9?Zg,6`Q#6l.e&Sz![ Fś1-d+rtbosaZ6[au6Vp #r%cJwdPpgfUU%Ц)d9H#Zn_r`.ct:8b~1Z:TJދRT\^iDks6Lb_4͐Ŷk[N֋-bw>˺ڝ|x[M'n*08F4A(ϡ/aYܺ"},XJpOKܰDKvJNMRR~GiKLG D{&w1NeB\c>R0.]%@R@r,Զͅi/$=$S>PH?M&z^֋{p}T7&RSI XӛS$5G:r1oA PCc1ƫYq/ Rh$~Kiohhkx2! YԺowd^RT܏Fn.y4rGƜ-fң_+Ļ}CEr8I/Pb-hY)%.gv*7 _nsٜRp pf ]COT%Kd1~T,y:$1f= KUu>sь5j1[ID Rb9{LLK$IAԅz(a Njsb* S]dJ T*3GA"Qɓ9+?MIHUkO`fȊxbs˙=%:WWqo{pf&bf).a_U@%,^&m) XM0~Dz]6N'KKPjƒ,z_;5/^<^,Ni=b=eaFl98yQ.АdgH=_aBRX P- 5مG_򞋰iR,ޞ(e--ˀE0D1˗L,^QUqcMiܣYS<\wU2h3-mTUկa4)Q.NXr{K5{[Pǹ4h/Om&&QT󡇂ŵYQU\EmSb`",\pYxhh^n?*rjTz]ڼ`/GZ@iH¶4>h?)ID20g1=RxdBbXM%l1#!Hw[\ƛ0hIa}>dq3$I8yl’ ~x;\LdǛփ77'x8DS\N5V#{ l[bB,J.{xrsWw%'Px sAT%1Wyș`a0W'h=,TOJG7B8h3HnG@OY@ XmMCB!tY0VVJTZ:x^c4ecP7A"/CKNJ*@/AlH֌~mCmDcbdJ< & ?.RwyLoGR<۠(SZ3 cs +r2  Ojھ`I / ,59E ĝxF!U\߽%3V!s0ךn 1]Nw:w$F2jlJF+bSMK<m=MZ#0cp6^tyoA`JշO$;"ew dNYQ1^^l.yf/gF{L9r<ȤqDRV,e- O~ͺ0ybg5bY:dr/JdU,-J lse+R9& 5 حq$ɂeJ&r'=|1 ez11~N$4LuxhF=^R~<LR\V\iq0QϝMDl$z(# w XiJ셹u竼gL\~.Ux7AVi+7ZٜG%IH{>7#LNk ;$(h'C E=χSw熋MBOkMt9%8Hp+! E<5X^qܹ3jԨիWc8|f͚wm۰eKhZq#??f2_r%ׯ~,Y( @Ѽys2*U_~hҤ ֯_e>ĹsoeذaPw| 6oQ`99k-:uB.]/ѣw{Q^_}98q^u]+Ē%K?Hӧ:vZk{^y)+WF>}ФI|Xb9׺rssѬY3L>]}VpUWF裏f͚bY7L&!$R'W[\5s K\rWu`#trdr<<&au/`hB2,]bϫIwrg?TҔOV(btvXn߃r`l҉b|09\d *UY 00XRqy&NxG@[ƞ={; 6oތMb֭ԫW,1^NݻΝCFFqT"Bs{A4G[ W^| z`Nяxz>#6DJċd ! vjD43tMXh4Mŋ ѻwWr_NSLAQQ7`xnjyMpM7a4 -B0.{iiixѵkW,ZGڵmm߾=tR?رc~m<#R5n!j^Bb$b@[+d9_`=4{Wqq"^0__Q(¢"IP$ =5϶C AYI';x}lZ$sC>p)-^ w*){ٔU&e^^.\sΝ;7} F={Ė-[ P OѣG;GnnPGhݺ5&M3gbРAHMMɤcƍh׮hFt4 W\q|AxѩS'Avv6^x4h@ ǎ{Ν;ǏcS>,}ׯ_Tf#o뷣FҥK2 b޼y1bDLۿ$[1b!?@ 2]v /` _7++ p![;G]7z8q"iof8p-2@tu֍{=σƁxbپҥ իL۷/@˗/G>}]x?8t:ܹa +7nĒ%K Ĺsi&kN8L6ʠ΀w@ jq' B\$!D/9=O @/%rxͽ=*S{K~2yZ8gQhuѶ3b/S&ISF+YvfmDt#RvmO(xwѱcGtѱ^I {EƍzO>$VZĉx嗕n%`֭c WVtª[.֮]~aΝhժV\h~p=QA<3J[DRXX#$_VZE4;{upݷo_Uo 2tUճ9U^ `f͚xg1zh 擼%xn=Ner!\Yg_+IoY,87ȇ <6%ۿ '>+4K^wq)<#;~x$GVj ֗ Ho`Rz0bm͛7ǣ>)S$./^%K`ڵX`NUVfnn.u5k;k/pӟoݺ7x#]v/94VTɐٳ1l0DW^=܃qmYYYxWFiRde2-ZW\~*5שw}ؽ{7.]*֭]-%Ё@J2x!\s5ؽ{r;v@q+bܹXxq%|ߎ)S8n5k`߾}o 6zn:߿_:t(rss1j(Gz?>nVO?ᥗ^#}ĉX`,X. F2իQ/55vցi4qf2zMZ^4bŊ5k}],X@8B'З/ 6 Jo)Tm^A('%1:~10뢚èp=LχSɋ̜­RIЪ$~PH)ȐI.,!dgR[tĸgm@^}59@)sܴO v6<Rzd/ qa7|V˗SNꪫ:-[e˖cǎ?E V5yMdm:ic9D6߽$v7-g4[xmHw"[%."U3γ__1qD\y.6𑗗Ç#==_c]޶/gΜ87n܈\r7n&NZjQF0a)S[nƠA o&xfF3gDÆ ѷo_N ÏUƠi>̞=\eiX5G$NN1^TVeĈ _믿6.]sl>7~9*kދ\Zz#"i=?E4khР/SYjԨʑR tL<:t@Æ O# '4' T*ZL]WPk{z~ʳ>N:[nBxO8p=<n3rgF"1IYRcZce K)ՐJ.eߥa.C2ir+@1ײMtq"4/gSh ֞IBr{}^%Cnu.87[JUѺv;/OmYzG$܌$HqXԺY~v2aL~6'2o<|Gk#F~:ЩS'|Gعs'4i5O6 {ŦM?m۶;qw]w݅K,u]g ?ȲqFL6"-Z3gp7!TRaÆiӦ\, ;w}7Ǝ 4iYp-[Hx>=֭W_},SSSw?GׇT_ ,0˯ƍ&pW{̙3'?HNNƪUp1qӉvxb믘6mƍK.1k,A_RG}wy'ƏƍuVO{_y7._~믿 6`{`X|N)`Vd!UT²#MK-3WSB΢20pba G%ŧx!dNǿ &%`!}ͯ~9JJ]+ۣ:]tF Ē,9OpѝI$4=Zb7rUKʋZMnXl%D~L5lA%) nzNX:u w}7&MB[O<N}_>!tPScyQXT(ҾC+h3 A.y}É4NLK2j{ i( ˯ԌKiI>%ӟJpw# TkիkAvv6?`̘11J?B*/Dwnʀ\^poQXZĘK6OI _,n%S NeԽA `4JILb!`=& aR&ox0>?b'p&&?38xiF2tyj! e96Z8:F.-sFv@UZje#`Lz !_oqBݚ*4- ,C*X_iҤ f̘Caܹ;wo B*eL$8&k_'p ?QIO;r6>9D!Ыi~Ky[wp̲F d#'1g|XZO$a%KOSPeZ({BB0h`lP=f8 g ,-A m ('IbŔAyE|ڵ!zِ@ʀ#:1-bG/pBտ#O9MIKxP _>ֱx|ɃQx:= x6^*1E:%(z|nPX.ߤ~,4!9q$:/[B!5dX OZL)m`Dn9JHVo1.~_-h{نS>OcSS $m0 Q$+LԱU̇oԺ^nQ4mAL)x%]Rh01%kW\bp: 8x7+XE> ѮSl%8яˑd {f͉ޞ=dk$Ņ܋J\.xXCx; RUe)Mf{Y~CpG#jv3Ud逝o)^ts5u)g1buM4m \܉ޞ"l9@0 1 *aÆ8vX) )HK+XЊ|Zn]Oɓ'%ldn5bQk=y3 tYnݺHO}`81eGlWߔK( QKQZ5dff"ԩS_@K<ƍ0s&AiӦF?&S~:x DAy A3ZA4z!=='N^o卦ք|wUJY!q1yQmhР}9cjC1 #;(J,+U:|ذaQ w+c۷yyy*1bO^jrsСCx'|o _yK.)J#F@rr2B~|ػwSʅ#q.I[OGiZc=IWZ}a谡ޅ2j/`g:Z.e˖_{Lf& H!JH)!T%tH RD@(p 6rWt)&%t%$@23qʜ}>99e^{WA߾}}wXyw?hX^=\|99xX֫WS#448q"kfa_[݊jl)n޵ 111DFFFWܖ6׋0t?LwlԨQx7,XoDݾ'\Gdf_syU. _~/βM;{~;?p^@u{d[Xz5j֬ެ[U $ UpQcƌ)SpQܽ{-ŒqIoԩS\2UkX|o?~QQQJ.oG{ӧOǃPTTڵk#((Wo7n~`|T.>.c9uVĩQa9pHLnB`Slԩ7oI&,K _Ҡ^[vFӨ\2V=VRڲZAݺuq X,%|||,>coؼyN%U8%B%Gm]Tb7 UC_%=<|b`„ XhMۍGSqdnpf|EI\.JMtܓ[uqpRJ2yȸt'g"?oS LW8nUl(o6Djժ%4 %%%2..?b۶m(..?SuR }/g_r9222>غu+7o x5N4P~() .682*#Nj~#m=[#eGi@ܩ_&A̗FA~[RUjnݺfqXx1Kl߾RM} 66qqv š@_g8t06E&qʷ^#߁~8W*r'SNYfcA1ri'{䌦DHNnp,_\)!n3-gйs'yxɲ]nbiSаaCbxdC?cXt)4h]v)LհaCi,߿_LG:UѣG#>>'O_|ahŊ1j(4l7oĆ yf~zбcGݻ:6mڄM6aʔ)(..Ƽypm7ĬY%Z&`QfMc HIIAVp8p\}DDD=jZ.""۷GV`M;v,݋~x70k,\pc~ôiL#33 @vv6^}U,\Lj#РAcƍغu[VѣGc =CC][9Q1Q(-%(aiXl>bCŴiӐAзo_$$$ //s*F`СHNNΝ;u"%%k?b-4io/jUݞ;vIJeTYNtAj5l޼7o+_|m>|ׯ±sNd,)+p:عs-[iӦ"#c>HHHټ<̛;ËZ7FZZ0{,Վۜ rhd#ذ~nWbjz4Ď</.+dd,B'={'NJt-+ɓxXѵk7L<!٫X{2eGD -C;w"cq^[ CdtW`O=RSSk׮_rJܼySybŊ1|84hظq"GժU1j(ԩ,SwǎX_V!UUiÇA(+HKKEOi&QM[u3Yfuhzxr'D~cvi/; Vtt:Ξy!>>W^Sb ܸqC?sݼK/ԩSÛo'N @DDv؁o֓GR\.7j/$»nlق{q<6+ ͛tbGv6[O?ŷ~ AЯ_?$$& lfϞl?8~8Onk(--U yD |'XRE.~u>}%DFF` ǽ{Х$S8DGGcܸq矱f;С=Zn ͎G8|Gѕ-r8y;лwo8y$ӑO?ׯ_G^^Qvmmʕ+Ν;ܯY&vڅ]ٳx'aÆ1rH\zݺuCVV2VF ?~ƍCaa!իM6aɊVZ0a>Sv,]׿aÆ߇b4 > (1OPB"c̘1(,,DII  Ο?Bt)))+o UT-[D~ xWUj'|PVY,Cnn.:wZF :tPn][&}PeիW7ܻSѡ}n1xXͬC A>}: ))){@vv6&N[nnc޼y3gB{ Mݎ ,Y+Wƫ &(F]n/nfc|=0no ߞhܸ1֭[Áp|1>fΜ( Gz:JJJ`1o\̞=[Q>}z#++:tݻ IDATwҮJrϩL3+W\l,\NqݻT,hiömPV-)ł Vz";{&O- a9A1oWdd$-- SNEff&bbD}Wظa',R$V,Nb ;((([K0p IZ ]CSь3hڴiTzu*++XJLL$"0r k׎c4sL~:1(44vJyyyk.bqj~_Z^tRjՔk'O&"A)ז.]JN 4tPr\ԴiSZԥK""jРl6*++7fɓ'Svv6vSBC+ Ai k5""-Zn'AC/nӾ}hʕomnfӝ߉zCyyyn: ㏩BBBwwð?pPII }':֬YC.\P/[ )::Zyfr(99練 Ghhr-55UoQw4|r\,9l6ݻwӚ5kvEGGA gtXRRBnz)C9JOOPՕ R #ݮЧQDeeei&;4eOyګ\4hҞfnݺI5۳U퉸ڷoݿbbj]')0(HpPzD5j( .EJ={:@:}oLٽ{7W 4H%իHG ={6ݸq@L=zsў={w#hMt:PMaYh?~vhђH1-S}OyF=DDuU{o5~M|}8JQ Ƒ5^jԨ\,#/dj%AbbFS`` 1APNAH$X,4yd*,,$#Pyk׮DD\ۻw/Ǔj%B&"jPJv""mے"j_@N> 4~{R%V\ii)(: HJJ"AE?LDDqqqʵYV]v?X,ADD/  ^SspDEEb!Jz""URZ="((( , =iޜ ٬V Z)j!{lV (a%Jv+9,`f(&v@lr :wSN… PΝ;_m޹sGنܲe :v[ȫA͆89s͚5GJJ NtIII\[ݻwƍ8SG8yw69QHHL@bb"~k.ECKryر#A@FFT@:u{|ʡvԩSvbaYjn+R/o"YvFɭgٮz1 1#\II ݫΖQk/HCxŅ X :A|x#oEXXzHߏ?..\{ư}vDFF'q=ʰ̂bA6m%^`HMMENDEE#AI{:\߿G+ 857 ܤ{][ty߲Di @ÇѧOzɬٳsρ PhH iS"XXTB (++C\\\@\>\."##믿*ݾ}?<˅<|6WO8qn݊W^yE^֭qQX,Ea,** * <<999ʻ 8 !AD AXXrrrg_УqE8p7 ]^m,_*cbb3ʹuVѯqcyۭL"^cNOI»^rzo.ߓB'5OP˖-q1U4:Z5C9'K/"^4i_{0*9_a('%?Dz8p]֏#_k(0A !"իUbt\|7nСC[nXx3ǏPk[bDx=+kaWS-ZѣGqQ9z۷oBӦMuy^cǎqssst:ѪUkiT?=p.EnsϹn\ qqqظq.u(,,-[˯#$(鍘-wlҝVtjԨ}W^Zhݺ5, Qreye-Z`ʔ)Xj/cĉի~gܾ}Fœ9s8|ԨQCI#{l@@U8r|ECW_}͛Dll,ZhۍիVd^^3f 66cǎxWsΡW^xocŸqtk֬Ν;_2<W5S2`~A B{GLLι[M<-Upb5gO{i6G޽G]!]m@q0h 㿤\TzpVՊsp0.NTB;|#*'u6*=!eO``xg0i҇5J: 7d?v ]tQe={ĕ+WjժGa8khEc@ XV;w^yΜ`T/lBL}{LjR2TEDDRJJ-oܽ[SGj8T,..Ɓ_',߶\Ny>ݻgeE~VG}yd)Tn 22+VTeO .Ķm-yaŊR 1T*ɵs(~ wdx{I.uOc)D<"= ǹؿ^q"TZjhAի`sUi~8^={">>.fbcc1~X&E3O5"1 A6֯_vիWqEc8}4~'Ǫ&+&Ma̙ʶbѣflݺ=bM꬘v#77-[֤Iĉfǎ;HM5k֠`-^;#F`Μ9ӧTpi0ùs0bk3g4`QK.Ezz:oߎ~UVG*RSS8b`p89sꃣ⒙]8s j nǎCJJ WU2HIi }(6AЉ X1%5ÇvL06O3QZZ`@*z.R"U'UADx.1 Xz5f͞Ygc90aJJJyYmf5}Y$}%x>,xws0bumPE@@ڵkgj+DRR׆v^T|3Y_˼%OM5Z4hrǑY3,# 9qо}{&={iiiHKKիucL{ҏ$wة31cǎ} 64(0*ץ7׌KQܹSݙ3gWSL"AS[w}㧟~ڵkQzu™[ϟÈ0{,.31r1k׮@۶mѾ}{o1>U+mUk˛7obʔ)ׯڶm+^Xp 7o'W틙3gRJyޚ5ӧ7%C߾}0sLTXU[re,[ ͒!5;&M999s`qC>}0s TTIN6*@.DZqFoIII AZS&УO_̜1*VҸVId_?}E- .}$$Cpc۶mO?4v:yfC_V\օ5eՇBf͐I&sGi@Z|5*V4IfrJl6*GFj"88aaaDʘGkիW?fΜ>G6m[o!22RyC7ž/^B^|E̚5KJDQQQX|97o.od߿_U^R,Rn]5 1111blRq+K_M˅_~Xf =mbqh)%IIбc'_N md-.kV+}tqMuPbb,f͢7npAAA믿ӧe5hЀ233Çt:iԼys"" z-sP׮]… +pϽ te""r:IqqqnݺT~8qy4p@VP FBfnh{.MnWС#ݻwʕ+bbbdv1BycG}{=Ԯ'"j=D֮KW\իE'(oD%%%DD:}4Z ݻWzh#8͢=Q%UwTv 3gŋ3mZd DDKO"ECڻvj[Ԡcf!??_38VǛٽhܾ}[Go+<I^GGGQQѢY[L7XO"sbjup9ƍ\߼eJz"H IDATO{*(̿ƵWV{$CYJZZx33SAC|v+*KOwݼ`A]PP)7剔#Pmu%0-{xhs=xHO(  &Y#gJb QQhsJ &Hdbܛrkg%MJQuo$z7Dzz:nܸQ&}u|Aꁡ%H$uQFM#(rj6؄L|MZ2@Xkg}e Oi=̠hKV9Xϟq\Nho嵦3/2''Z~Ao!͔ `Vs`#29F` VNS5/صkqqq3f Ə"FY$8wJX#Pz[]5$㏪;)<9 L)q,+XD%?RT'MVF+zOzzeP1DӔ@Bc;p9 5jV\iDfy (M8dzё"LggjL.oYɡy;ͦl/O7 MEE}  Φr̗:f%3:= </^4yS.y#fvD>D#OYLj+'?(3諾Fed}xZd>IsV6OsT^V_bʸ򆀰0(((#|rSE~S,|z PQ$κvI[q?q<udCኂ֌8$BT D`a`&>=v;y13".{|^u0 Yd+c?-8'cs!|ȴLJ@gœrU%;jng\yg5O _)cƶ:1X|Nb^ -nEkꏶZ}Մa}T[/g2W E7(߼U5Q3YӄN'[ȜrR-l ;ZSd1F2-xbBQ!bT8[ErK3"UbtB2i'ZVꭾW䃰xuGZSceZvuLmR2n%|ˉ?@\j,TNB>,6Z3Ϝ[se@ |m0/5 9y362o۷z= 3wגQ&cY]ior0W3~>`d x#O~!DVw'1l OQe7oo,On,0ZE {ah _w5_oJϧ`2|{l4+*d:QN)aBfdoJ[&7D-~WPt$I~KTFn׮.$UD,e>1AOͿD#q+=+LFGM 4z!jۏ\k-"sʫOZ2tzL:7I3xQ{O4u|)j֬*UyQ=;?|y5 ?ލia^4_+~[J۟Ya$ڄڏ"ߞ{uV+T)*'Y4su"vm.5_K \[܌1ԩS0/rx!9k֬/ixr8Q1iEAN?xPZ5nbKE<_DE"G5Re~fnݺP7|kۜj򐓓ӧOO?S Ht:0vbЀ8~8w 3^#)`Ѣ |~3F 1A~*=t/OIB^4#hbd `oVbH> i?CB"N/;uNci^bdcO=) ,`GGy9˝~a_߰Z-x]ڵa*'AxcLszKj Yx"w1Tk$<[T(-q|(D&E %:%^We:U$''rbǎXlRMŋCs碰@L,X4x j ̙͒BNN=tU)֬Yu&P,bŊȿpAyڴiPHPQX>@DDѣXtjKˣP6niii(**ٳ{cƼ1Hn Ӊ;%< ȻJ(0 Jxn3g ;;[ijJ0GF(++C;w"##Cْ6/0mt Ly鄊+bĈhРqFMT+sNԩ3ZnǑGs s/FBii),Yp`Xl9izVIc ))x=ȑ#SGйS'/fyorr'm6]"mE^%'tbN~^szj*5jp)|.c q ,XPy=22&DVVѽ~hҤ ୷Rj/O> E^&meE iJNnӇN28j(iH76l0_ժUExpIB;"")))&Y\.4B_&?֭ZY('wء?<ߟ:u*g~}q4o\HF@@^yE/6uP ]tA&MУGa޼ysobmܸ1 H][nU*`ذaxꩧt:cG6na0,Y gyiiiիWq)XB#YbE9 6͛7~zlٲ6zh#77_|I Gvv6[ARKƔhn)vV ! =l-.Mp8'֭v̟?s !CO>BPv.Rڵ5j 33]tA<4l[l+C^9z۷oɓϟ?X,m6rss1@ű… 8СC!%%B#o;w޽;RRR S\\\. S͈@wdx.)ny0gl]N+*ygѰalݺ &GZL:k֮nGDD8b>fΜYm2 2}Avv6:t耻dWCwAQQ֭ua$690`oߎ`XN>fȐӷEJJ;<^$lcôi`ۑ%Kr( {UnSLo&$ömPV- vZ/CÆ Q\l Na቉ӑQ1bjC5pA2}b҇-ݻcʔ) whU}z ())A~1`xZq.iCvÇĉyDEaĈ\5X8]1=z "À| qpJ|`] 7pBY@vv6Q"ɫy)2oC'*U}0lp\z ]t֭[r"ѣG?GΝ%1aႅxpۡp:Jׯ+z+<= bQn]SSS9~.--5_Ŋw^ 6 W^E׮x3KR5}KKy5%x;KAؼy3 ɐѻOodfeH=Kl;e/T Ohxq FLL ܹ6l_w|o?]Bs>vqMDGGcȑx#Pf =zcǎEaa!֭M6)n2j~kW[nnpB̟?OxQ)mJ8QdȬ˗udL-vTF d;hРTZZJaadw8n7=SʳFgPP0"sʔ)TVVFݺuۼ#={R`PKiG/^˗/fTZZJ6l6h޼϶mvݻV\I6M7xPz A%<{ŧ/b\.JNNVuБ\.ըQSUnn.}6:<^促sݺu'"'5"G` ѦMnwД)S(;;[ OhxaDD.%E7p r:TZ5?ǑS]sp82뷊OJj֌\.-X*TiGu:}@r8ivޔR4p@r:Tzur87nLDD-ZPɧo=<DŽ!c͚5h""8p/II*TۑNO`۩QFj~g鹯#E6h =dyUF D&ʩ׻wor:C齩SѫC_ޛ;w.c5kҨQ#ԬY3xDODTNNs-_=:t;J g-iӦСC=Ty:(^-_:$ Yy=(wNTC-<<{V3~kV+Y,X:u}W$sN""jӦrmtRtt4Y-{=zEEE@µSXZ-J,zFr)00{G|O|gҥTPP@ʽC&M(zH6e""4hҾ Gtt41A f}JV"j ٬, `@lVh`; vXBBh*cc޽;<*HLLDbb".]`tUh9998zW el63HJj bh+6m|MaO?N4XZVDGEaŊ Y.^(:V9998v옩zg@h ]5_/GX9{IIM!X,I=qG|^ff&"""Шѓ: 0Щsg޳%n)7nu\k ܿwJ(mP`.N x3g )) LZ +v… 8{6Qacg ci +342`}J2;;mڴWkk6țx"c?xVr={pmu5}Q%%%ػge ر[V>:fL&D~9ЧQбcG/~Zg 5m۶7IBdwK{2顓W ڵA=m׮N:%UIhU8q"~_~ƍ&2}WN ^_#66V/3+ SN@&ѪU+kbHl#V+1?n[QN'^jJ3Ltgٜ8K Պw}ǘ&O4O;vN4tp'*V@XXԎS r`nW=|>,M7"??s7|c}#Eqg/n:_CmӧOǦM9soQp%JWz [y4n+V"}e˖ؿ?7]Ki˨Wׯ=?O?vڡzWp4u+27wpIDATcǎrJr5kxog5t# whh'UՊi3ÇNn%VJ TV 7oPp_0d~it銗^zI'kW;]ծz sN$r6gرHIi@њT܄LX#GڵeVܹ} @=Lž={U 6JNkO]vѣGqmliz)ԪUKX]_3I)-EPp)f;*y29arc3ke=VLJNLLjUIIMCڵ[c unOˍ\lْCm&M'ru1p@[KO>q{lŭ۷= fi51mS."88XtnV9|8:t=Ұ`dd,F5׭n#\dcy?} Z8@[ZeBlj1KVdGF!0H$ȌHĉ ⪔&\D+QqQ{v.ywImy9=xժbn_^g~ETgEaDz zF}8O?=]fBǒh]J`Qܖv$/e!7a&F]|%"qtttJ֪nѣ())AGGe_|GI ={ (8C;l-;w&ME>S_7|yԐi*<;C#qC_xyѹ~: wtvbOr= MM3؈Gyfr.;v 'NDqM8q-1o޼`Y=RRѣfQVV:D _o:n@k,TVV^ȹӦM-[PSSv5.Zc<MMhlCΎ˖͜<}mǎ_zmmdž p\xQ#ƍԄnEss-[?|رcG\&[mmm+]yq>lt.K||P.38<bN? PU,Q_YPQQɓ'C>30uTa}}}}@kkR8oC%ꫯزe 6mڄfJoMMMغu+tR<󌿾;wL (鷷/yQSSV,XX|/n|Xjb tuuiXHKK qc̘1eh|mmmzc͚5??oGGzzz/ibu ;( v²eK}}ى'xՑjh; ۻx~6L>{/=gϛۣ\/yaѳO>dĞc9~mysꏍbKDS]u!4_>|.zAh.WsСC<22gϞ^=z g… aF{#8jii}޽{yΜ9\QQie>6{.G֪}g[n33/h_g+x6nk7n(fɆcXf \d\r6K.13_e]g93G1cSf2hiBΥK/۷oW23~-:set2>s 33}xʔx„ }8qO>|+2uns͌kW\/^X==P<00gvfzCa lVB2[RCqds|ff|2>|'O=LXFMnjuͷ+E={w Vwii)Ob̐5UQQ[l?<܅ S2%~8ݻ o˼nݺ8[:%ZVd13UVVhYݻ4Ҝ??|.?fFZi~4%\_9>>͜?*+ϑY_etϓK___Rf{yO4wޭ0s^{-Ț3G13]wdBmmm|h|gΜឞֲgex ՟O8wڥCiaӧ#=w^^:/h"ϸK4ݻwsuuGgJ2+87"7˳e WslW<.z\YኜQEXG.[xUeeTٺ6EZ\r/dL\? Y fa"` Khp 7Ň23%-$\2ǙPؿܿ?N:;b@8kg8oX>oX~={/cǎGea ""BA}W]`ں]vS$E}.Rg3馛ߟ(oYXH6LXyܸq\ 2 ?G`.-ƍ >cfbSC <7x 6|l { ~2xFyy/|6۹<ƍU 8<[sݭ,kkj088/_j3X!oϜ3y~?WPc&yO8s0./B|szouM-{8# UU8 Q!\VKCCC;PZZ.܉G ' ?u90sR"^d20aΝ;'Ǐ .hz2v~h BQUUl>\Ѐ/8^9(2#A2XF_ = k=:ln++ ]9 kݰ rbFHr- N usrrɕfYLf rO?7/훥tu?Ivmؿ |Q.<H zR#NIH3u-`RIg|!p<be7 -ċ&cۧFdbݳa E_%.bGYnǺxn 'b2Ϣrlx9cQ5QR(C#bC p!KQN$M,u:tcIl%-3V6?Y4LCYSOOTx5΍,ͲD! >4_@߆uH4שRTm՞ZFEdZ$k^(qgdd$긓!X#A0[ ߪzul.7'7f]dA%kh+͌U$9|NP.܄xAHȜbpɄm#gf xqY45ފ*⋖!^,w?z`kiJQDB`S)2zDÑa%r;W[g;oaRaa># Ba&&TeD0Fok1a'8& Z Z dj;A@~&Vu,;LʋXk 㻂F#Ǭޠ0ÍC =vZeQ xHaRJkBF$ƸXLǧvf0Q)wD>,kLRcQ aovƂ\0"#n4W9wG " a3_Zhh෈y~G تKThb)fՆ p,gc3%úw1$$ .a) Ufs|{S?c`` ZQ[ܰ\ m\Wƒ%K[~/qXjN~v9=60t"fq 2cP*7MK&(d]>O=Ui" %s50ɚKF!eV.'^<ck\X "O)b00ȬҫVMF.r>'.C6Kt{q:SakM IF-I&2~ c\&74PAg g)DY9o6@#6M 8FP "ۥ A e"&Xl *7CT}@a5b~Q!^#ҽ9(B#\xf7D̥TaMէƱGl]' RwLR"P5UKS(Λi.Ȍ br-@=Zkc+nDN[4}WHzpI [blSe 9)Vn#*% %Ce>fG %XiInzbXK2 rt#;Y:dTHN& :uƖ@z gL/3/(:6JE ^,.fp)K PFLJN^.DZ?ǧ'd1 Bj즖C)~bMci~<.>ƮXcaX4H`ϋ]#xyK wXzeh(+n WSdFr@vˡC} #As^OQɴ/d16E+ܿV:vBd(H BZ LTq: xu^ 5uq=x%6AN E{YJD'3H幐s-(uEFN.Ze,:s]a^1MH®$ʧ*)׀a KoDBļu^d#KV"ߧh#C`aEȖހAQōY{ImL+dVPQ`@T0nIBq5hADAQnh,2z!;?(TIfUaa_ۜ 4ʇGx1*?wipޔN -id$#Ȇ@led95e臼y\(y&58]9@47#Jja&[HR2[td(5˟v\ w/Qf8 D()LxN&{O2T'TffDvSC6Zlq7cbHyP춌yQ֭28 gr(@yGtNa`錔TݸL/! 2 A$AAr9٣KkAx ?Au :"Gdb&ssI_CN֧ %*5]w ]`HxgeX`Nz dHk?~ nթA)Xꊘ`lmצR%-, 0 yHdjT#ܯ0Vnhr0Q,h %M9LO`2(,dXM&TQгrF:OHnmÝ)!&Yo,0,J]Mʳ %MDQgYM8$4^Bc)9ΫGʦ$EN!%VdF27?W("g ce8J,9ȒAm(atfTg xJ3/\PI' ,0 &QXB82,fXY ĤE`)b.Cpi .wdup[f8DsޘH~@~XNYv-DE3?]bI7g9fNq[Gn$*bsgW"eoC+Ler%ofg= B5|{@8+!28UB!"U%Se؆cds],V99'm0l0*CqR.xl=F}C5NK\L#%HIdrP ]!r$Հ"=ϸ:4_SRWKun8>oR6ڛj!mddGaY a_p?=npbn9t3wIENDB`././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/_static/words_with.png0000644000175000017510000013315100000000000016473 0ustar00useruserPNG  IHDR6߁bKGD pHYs  tIME ,/ IDATxwtU%鍖= Eޛ"*`G{*6TG"HD $$r.HZ{-H&sgf: P BP( p ~rNCp` 00*[+ BP(ns7 Sʞ BP(;~/(+JT,n95r{m|15i1:¬TP-{õ˭phRGtTYi}<.mޑ$MF: KZw:E}ԫm͓*aR- rHSSYY3&.N ōIQ۪`9ǂkظ xgK8O qp;`ʐPژɱM_xY/:ߴXn83^_z,m*+۠ƫZ8!_UU ‰0_޺|upNBF1+- 16 ٫>`նs| ^ gwp9jn@*8~lǿ': 7*5{~|#N_}n5u>ţצqtNX Q:RgC0 P(n^ jBwPG=z ?63cYK)|GEIIfvXbJ@AE9_lda,ӂmšS.(8H-O^>K^E6SGi<2oC'񟟈OUGH]A;픿όG^ץ;^L^!XۦƲjyQɱvD^Vcΰ-?Fft)cXLcez2kn@9"]KL@^X.FpIpo2Ǒ{WQG8gJ^?p0?1LݔypF-/ 0{[#!cM B1Əp/aTh{2騥t}CNة9ay@C-NEw#F~9o?֔ \b$R 8~_ FϚM X28c55)v|Be.H֒}qVNӛv( MqUO(<+HV VŋSkѵϭ Dn٢?9ˉYDmR&@3>.:j{Q9@y乺RG zify*&7|WdL s-:|^ \>8ʼnY64@=$' UiY ZUl[ zv BV^msm{#c95%Gn=t 1NGEa񻇺_G]=SW/INGrr![Wǽzda y"Xs'4fFr*r'q;=|Ciwtnoc*)Ysӵ. T.>^X&%9V4y;6rMqq)\u.Նz\P1ГB[8l5Ak)5t;f ֙_eQ>ݲj;ؓױ`/ێJs Gm&lglz4{af^Dq3I2҇I?_Ql Va;oZ7;P/sFG/C@DA|C1=(~R-\BzntC",5^H竃˦=i5m1Nlޒ6rڂSeKπ7ìbrVL?T(cmᘒRo>ɇmil z<Å:\X?܍qݨ'tr2rד|nNiU]38{ԛ߈ʖ#7M'42s3bÂfn`XP7B]wR\8ncxWjmX'G+WC4Fe#2_>9%@?<]+׆uƲw8t@:jOU $<_o=s,QOci2x'$k сYrTv,e4w]px4z>]C/X8g,C퐙'1/Y[ï?]>EF(^HrXPߐ~>)z<:'_76[@c,\t6fE)8?D׬q}h_HɏốpI{U,ifaF~z\C&kX>xk<˿SC9|oýnX%>vgG#G._ ؐ_,_gHviňO||%ҜϞp~3?z5$;Y>;`P;PB$! dDF <ܓvSyIHcǏsY5B浾l{~ XuE.™}[6`+Tʅ,'#ςFT7 `|CO߄7]yŧ,^ZD"NGEo%+S( ߋ:8ff{e!j 0t4 Ȟ3(?:ޔsעO\cCǀSQ{Ო-̸7`{FϮ%P!+O!Z`2Z^T\r0^^<grO[#:8v{Wl,'r 02x/޿\-د0W;24d³F8nXDt 'mZǒJ-weeJ x$\i r \dFw :GdLP: r[ߣĂv61ZvD pz&/GY I~0lOcݩo4iJbU 7|λ8~,yeP8dp@*A^ ]qފϭI/tV}%cY˖&2Mne5Vuz;B k)f>}@5= 984 | ][m|\n]4{16w#.5>3q8j1+c8x `+p3hZ8C3^Mi{[܃Gn!qy^s]):L uBAg( Rj.miV|{GӠ]O4nB~MףkŞċ 㹔YVÇ3+ dN;4Hqn?7jKrZlu6xNw_ |u_OĦO^hivYS3{ ~?S1~͂ K|^W#62|'n'V =t=~UCRW_̃Iq~u(àוh3?ΐx|:=8r9Nom?T(Fh_XSywtY}ޥ9|knc .Eӱ|\)GӆFL>.^>%6ivp7b*$0RhH {_0. 2v Pt9tc|T#>|I6N(ta;*& e9rdΫ) ݳ36rOho^N^k:NJ)Gq<ݗՑpiJU.;*Xw!0=? zUQ(͌+tko%`@Ox G@zLFh.WI:kEqsbOiH6Mge6T +uU dMҹvœ~%zi,.\FA6xqmy7tr~mη 7ГsNk&`V}G|2s]`ds31w>yI(Z7RL0:$&wuj.4d{W{!NKoǜ ⶢhXR [\-,_+܉>a-e<\pZ׶m7c?'HА@"kҿ;]~kHҧa@3H`~aԢ앁2̘:͚]חGE#ـkRjhs%f {:g>{9slxd@߼DLRu~Tnֈo/kNR񼨯|ՠ?iG_ǦvepG׾ -ڼl H<{xIyjޥۡX9(]!GcRS<5-\EƇ$E}ɶi_=$#Ì;-&Es:4k ZqJh.Wi:fCїK NyViu~<3Y(ǀ{`]{GLfx?uEA~2sNoǔ6w^LI;ݳUKb)M#LMN[Yx›6_lgyYwƒ=zNtifOuLv9IkOLf>X/o1wsV>+$.~Ցk {>|eߝ=^,!'M*ыgɆAn\RtbCMWVl sanv1]xj|0-no߿:{_g}v>f)N̷*-~#F|Kta O~/gaӭxh)'CR|m_3sk&Xq&xs?q5F}+^͖sG]0<۷\}l?mqnΓ7ʼ"&^zAuiY1'Bu]u^^{Xv48YF~LW^QQ"KP,*]ᶓiC^: I,s5K)xkH|15Mw)PZnAW(85)ilVɷ02G\4B>?^ɾ-6t:kH߲;VBe>uh慡|[|2 R(?T( u&Ԗ<|5oQ7bWa!&M7h`r6256t>-_pdG,6^A,hi{G!YtLQ~s17aƱ\|*GgGBqÀz BqaT2w?>  BP(;sr ͘=&eZ>?׿u79K#T bb'kX;ʆ j3,<١&g(]{QGZX^bd[\z8k:kFռn3A$c~ǵ̥f;F4.A;Ңgُպkk{mJX:V 7̤OE]Vhĺ>eӛZcufޚ}wkfc#ҟ>X@:77~JF$S.^ 1ХNăР|{w}j/7]}X)/=>`P綴=]Oz4|w''ĝ1w.}`-%NozS/^oz|+;hd'?31aUat5"ygɳb!jVGl&!bu0 \ 9wUֲ+߸|íjK1,>2(].͆NL5<cCY;jsO)Ż|v-I?@@(ghRI!>XK{XZ9]ZR8T6 !6gFJ+>Nc]8Ͻnşyxly]Y?'Z|Z)nKNJ탸+6"zW?reip<=t7Rf*I/=ty֕>-IK%U3:ܥRt ɕQR^=WTp)ízfnHJyr_]am([##i q/;:ɗݽ/IуwKD$R&66krP"g='t;IJJE1JhX=נ<)1xsӔ"*=OZD2~["rL~?Hzt*쥊;-VlJMwˉh=WR }&QvXt󄼿&] s^e7ɠE"{^[?FLB0sEd3RudYWjP2"vղ7JG8[,x-Sڶ%gmZ%^}H^>Zڍĭ[J4cP IDAT|y"2rDx\K%Mjh)U-i[*"d~tK>ڃErJ2d~GOݫ>-Ed8?CJ wxqH k%1"知"ߝ9u[N M5^}b#ẂSxqm vԩG/%EbeڽnEr]o0XXtJҭzQC͚)_N~n%cde|^ d-Ҥlhn7@\%fKlj ?7#X\9]2q%W{6U$gl(.&(;XBwuQ\Lr}wfCkL8\Gnv{X)uӖD݈9>lȒ! @Aj*yŜ\|gho'rI 0IWIgؗY>u)la"ڄsBYXvІODc*nDA~𦒏.jv.1,_{Wz8~,yeP8dp@*A^ \=uu?K}v47\UoE N֤B̯sءk+`nn>{VOnɶam .^jՉz/|~jR 2%N[~-1I}5Ͽ,g&f $|fK!<fllsmF__7k.lM^͂l m >auI~)L[4xNl:֭EY5灆zRw ѢYN. =.Eth^&`V}G|2s]`ds31oB!伮:&".J̾Ww|-ҫ[ai;I| bp4Ig9\7 c\ܘ)Jc ÆA}0/ȓg8.,5IS cMރ^[G/phy-i=,KwZǴZ㷰#@'d9>_b]!&>Vˢ66sN3knjqMð%{Kݞ#b&/Yʥ}&UpLWz?4BGK]u"QCo !2|H|[0ՖDDdV3e67/=$?%Lll.΋t%K$oL|Z%:iVhm7\'Q""584%mv\9]Z2q%Hܲ2zp_ޭGS-}(CLr}wkѧ,|_ܨ5˥2fyAЉ_IW=:1X:*lI$Z]}ٕlu9!7͍ME29bsdny/tSk5ypZ-JdϖK;|UN'Wb7})6C4,l  %]D$?VVZN^]x@KhHͫ c&3NL{$ɍb)Cq!N[%Q9""VI9O^lZMJ=%/BAp .uvy^ S DFW˥EJ,_G8Vľ 0۸TI:l;t$+_nRe-6t}<4Zm`YZ c$dn'\Z6גNZK{\9]eJ:N:%hK;*_k=-SpZR]%&>5S6VG&=Lk[Sn@J h$)Ԭq]O2IC*Q|.u݈·#Q!%R)cf2GSa^ʷe'љQ7 j w)nS5yb!I=7V,LkcHllDj(Qz BP( 2 BP( m,[ܴa@11{Lfswt'BP(+X6kǨF%􏙨|fTbn{סC^Կr}z4OvsJJJzDǿ7U75$;_/*ϰu"d BP(nrlHA2N7j| /&foS]f0"X `"W]IفEbtt]:F$,y;DfuΆ`28FvrmWOn)}n;[҈:.V'( B(}rFbtxyf4XvVp4S)$o*tb%lJ!R4n>^݈gNU/OQrZ0f(<5ᦵ^t=A,t7CRtaޚ߻r۫L{燳B֚"" OVKFuzBAFoK$ldJ!'5t˥4֤lxrgړkR?"hf>ggOiMIR6`b/w.˯q(Sh͡CU@}Ά Ca3jKGuf}Ő]TghwkĔ!:qDYjULAtyg$[6xTP( @%;|;FK"$at5^I-,|,o^(oڍ6R-S# GH/ލ/ʿI̲G u ~=b΋x;/Ni5m1!XK`(aOqZsfLf>FH5QSJ`˘πqwӋ3jYlglzh3_E~|~IQ\RϼbmU3a&́Y^ 9{fb /-6 d;`M"Eg쀉']: A]g::M'b_^Q*'ԟFBP(nJ<ٽ\Nn?g.y4|R <*t1t]/ӹ}wgD|V<5mlYE E?s|YݻnyE$j 0\z ~jX?F~2 P/JOElϘ|Y.ώ $Sku\U|77)&ߵhbM'\v;ժ$kt \I'`:5X7Ԓ&_,֤~Kws>swIv ̐S!;z:xoSEr?*x[##i q/f͔/wzS-{P$zWD%Jny)u-+,s}<*%;B/T5ShXwHo4iJEUoE N$]*2KDz.%-?LdX4m'QjLAҒM{/_( I~7=McXqZNsf9_y*֞_HbƭP a? xSaCmhogۗˈgkUsN3x䢥#eJ8xV:\P([Rkx2l&*yV=~?5l\ES:{Cӄ3}g/A>Gw׮A~vbuD4U mnrd ûS葴ջIySKCtzvg N9}oO`=?ҩuk {a< Ä5 \W+/;?H {wgo'ëU3SXnzڈ+nxto9$ !Xڶ>G#iM+2W7&&l XNX!o`̿Z?{2oGS-T|^p!@p02SJNz^g{E#d@߼DL ovVBP(e2fyAЉ_IW/ڜVCJrDDs& 5THA>D^k`vPQz~LXٱd˭$@_fi2HTF!Ho  %]D$?VVZsf7+P*,_*6Y ,!Lk+96)RG+#?l#ѱߧnn!L6eW7ZV<΃NInҎ\ѥc2wO#Q^̥uZMVbebϖKf t~w.Dt.ec ]?K'~CeС8Sͪ(z-Qr嫆*n@yrBoQb+JylL*oO1? D>bӕZ ?O9.M_( U|UC2#ߒz.WB"FMGC3nvR)nC{'Iig <\C xG<-6 d;`M"wrJ2d~GO*Qz=Pr5fvV<"]IF\h1r,q˺X0amBp+Ӳ#=McXqZNsf9_(BVם= 5qws)o'rI 05-G(6r a? xSǤ^U;bna<;N H "B')gj#m2rϤoh0 žxCKFS]W]e@ ;WK,YOS]ivo>5U߶X"I$ɵֻ݆Е;J W3 ],TCLހpӚvhH |/)H`ۂx{Afs ;^%fƣo]= #4@߰ *@g M!RS}^@vxq6]#صw[6&YUm-i- Bq̫N^k 5;ci<Xi?s·%ñ3ۗNGjV&M. 'W&ޜsHBlm};2qG0ӚVdnLL6P={P wZSػ' L&ɮHHRZ%¿GMc_-!* UߞXi26i ٕBxk~+zWmBji/w/jW!mb]7H.Hk9# 2Y0T,C)G`eny/ˏrGSEG)RG?WF~FcOBq" +~\_5 ے."++__N̵%3V-EJ[%9jLk7JX%E՚wj|?x4U6M+m"?*Qz=ZB-:@FS( BP(JP( BP`YP( BPBP( BeBP( B B=?-ƌcVP( XMD67W]i~4b]IoezŅf|fTM\% cy:z0vB -,p BA$}x`5\v%yg 󸶆_q7w +X^^ 1_7 #|d IDATՆ+_U>0jI6{f2Gy-v{P㾮DxߐFuڸ}FvrmBԬLC 7S6\1ŝF)7؄? D>bәBoQb+&*60T\/Jk!c퐄Dg%qPvz&"{|du񻔍-db/nщ_PEk9tn9Sԑe}.ls3[#̊K"ǥ ^?DtV̎}ΐN%08mq,b#^@JYք,2lɓeJ=X 8V 2-UelR1}=.+ K!vt'r7jΞټ9)KUΊWl K㛗2:ʛvc>䣍aol Pw=yzb\%Sf7wC⓿2w!'SO9t|8Gh:r*306.WP#CQpE4޲L-fj!jVZ%˼"h (0,0 8z=99yy%eF];z]v4"_EN50R0hmvU63|\L`8F/raY|z S>m`](c&]r:8N?Dh9APJ^fW/6IJd?N @L> =]SR3/|ُ*14-l'^R3--U̥j1.QN$1OB?m9lmdv>S+9?ALLn.&+kUȶ61%cF.(JSLi]9IGTk}ѴO4ʡ }jy~8¥mN e<%;9 >p*Dyo5Sqf Lz=v$boP"@RskxY|LȚNY".6^_KvA̘ tTO|C,[ FD"%Wp N ;h+1i²Kms.D "Py"º!%] cϗ)90UVՁ:'p?Z srPyjBڌw `^^W?c4Vv  >ﻵXZ SgƄ\:ivOTnlԵxׅ Bk'_9;j/sa9ǰ{LOCl鉡@ܪX \ȭMbU&v|û%p-al}mTV KXi. :dD; `.r$Imՙi8k@ʵ{_!B4?SAlNrganOU8<{V;V=Ƹ.nC\CիZ$܆5kvΗ90Խt: ǴǩX19"c8(7q2pRL 2D+ٕ-=aDMFCz%*>[IsPMgp#9$6ѮcaE]TL-xjt&j,=_>0+ /۝ÂOP#qb&,Ʉp+ʨW,<uD\?LIDDʹs U}"XZK:""e*Eۃ,j޹L>O܍  ,VsRO}CPXF\;}]H(*N7HٱW3]kq uaa6x00 0 p0 0 0,3 0 0  0 0 20 0 p\ݬ>9|>Ni"1ʎa î2iq`5'r Dw^|< ?jwP^֐>4* .3]>I @CQrv,ΖB3aWU]5M8NhyY8xit):km[Shģi-N!BҘ`yxvF;C83n~ƕ栛EsaWU]5M8Nhԑ̍^="J[On'nDlO䤨HNHBC좋""R {Lڏc2I*&aS827dq0PrśTfﱣa))EiU-{@=h)>~T>)>™Zݕ>7*NxI"?52Jߦgi"vNC#*ϱMՔBJ:/Wlkё%SiCͬh%u vEӚG[^t%!v]}`mh/wHwZH-Du<-#jt[3oJqyn8NݾH̜: us1%KtrrB>E`O#\D ^?o, SŦR;+vDr'K@gpo{"&EZfo@Шp=U.mpS'ëTBːΘb}Q];w ^\>[wraX6)e@Wtdq,_5'/BWg|7of%bUdWH{`e ƥoqוXi$ՐAzl2I*j%: ȗir9zA'GR>7jt4˘U=MIGTk0/IVjyAPJ^fW7/6IJd?N @L> =]SR3/|ُ*1,l'2!8ҘH5QR ts̤F@@-P]}$ 3tbfw"IEw!CQA}>QA4!&juhdI~Vfie"!JDN㎑2Kb?f* M2ЁwWnb -TC{ 5 ÒRV{9gXY;'VW_8¡,E,@I25J ;EΣBDΟV<gnM AB,; NOYHQ@C?{2 Zwu(O\1i?Lxvu2.!C UhߺDc{{5ʓ/\@9ayt|9e(<5!omƍ*Ԡ3U "}'DOX" g_ 3A mui*mόN=$M3C]5W\gey ^81<qWQf* >XÎK@3OjٍcH uHzW'zqb's)gN"JC',amL 3]j+|ƺ$ʑP_$2L.k gٰnju)x[9p (qanT4#Bhd3.phj2t՘:krD\Bf@ӫڭ(o,=>" ߇;&8N ʣMulNFS)zȅ]5W؍F$"Lc~UC1f#19A_DņUOңh_  ^T셲c7 fK5/X~NAI(_Vs_Rk@%a҃ڏ^ԫri{zcJNտڏ>i]m@)bg +#RFy~5mΛ8%viuגh|aJ*%"P΅4]KYSL:Uت-H|jN81ju$5DVSOZqvqB/}baaaa`aaa8Xfaaaaeaj\Vm_î2 p\ mn?3k=3~C\$|f9|>Ni"1ʎO30&,K*ru'O}WE@l )G/!Uh D:& OvaW?JˠEN 7!ya-4iҊp'3|̽XtCx&;,z-+sߡ^c&r(LFr˘dEB  lDlO䤨HRNHBC좋""R {Lǒ:|@;"a7yqEW2@.R[RxS ?v45?%_#eȡ?ǏGV0G8S+Ϊ؍^=VN?c2I*&mEF)|hl\cSR.'om F\_\&}oT>u֒]lLeŏmJ}1y[c UoD ?`ҋ1î6/W "c7 &:O,'f#h|ᆾ(Cf|,b H;2hǐx|*V+ )Pqхb>.u,G*շOX.0х( 鎠 g :@ e|#?XWvkKO V-ĪO R ΜEr̈qev9JLDӇwKZ(`{1Ci}g9Ə,KސVkʲx#*#zrXq"Gdૃȇ=<: v/"4>|ƭ/{ a[O 1_ sh#ߏ͇3 犡jFl)rH 7m*!6:+]3 Ê\1:PaGɓ?pMlѣvX3̳Vy'g, *S {O]3inj&u'~>9Ǧg/8QaW=aDMFCz%*,g}gZ72nn?I;pE1젌c7 f&mXSL:Ul-H|j>/nX&=E*7V T裑Q5@C؛ISiөʥʲK YzDk_%te5(Yszn^˯XeE>U3rʟ$EjmON4cX:߹4"0 0 ϑgaaaaeaa`aaa8Xfaa "8Y#T>'4eB0-yy4ݧ#"1Bgir,ѢeGIXü0ta 0 ;YFeP"zMF(~!<%*ƎgM'g6k'O̮$W9hx y@[BhH '_Hw3ap5<:ؚm:47WMu.dqavEʱF]P.d.j@DPƆ= ~]vGy^ 3p0Q81Al?}9Bs}, ԰HJѿ&?#`Qu 8ʯ#>~9d#>D5/J4 kI)rÜTnהFm6𴾁n0ƄA8p&N^mF1pU6l܏Ir(ԆsNNp(ؓT >OLqբ# D<=f9S^ ]X9c0bv4"_EN50R0hx _Wb˧(WC ʌ|^=\tƜlQ];.}z `2lR" m偮vFB*s C*چ#^/QR9ubJ5d`Ņ"C˺|֣;M'""-RwVډNXyl3MUQ+u_.waV-YOvGV&#c,u] ]XycD^` /vFQbeLkUW҅L6f}OTz_*~1oR2MP$фvbY yJj/ѕ\%|Rr\p1j0$&^ާkwNK֛iDyLJVޢ;!*@O4ʡ }j?>,f3v<qc] ٝHbx`?~#@F JK .j3qc&_#/ ¼ UZv B7 BέUA:LHQ@C?#boP"@RskxYucLCM,GvQ=بa|!Ořm+0y,RӼMbb5 ۓO/㗛S IDAT@l+qugH%.ðd9(AeV"t1W;|O|qi4uMU%6+Cf|,bbb Wdb^޽{{ @ M݂sDJ(!;!:iH? =rSC,k֖k4Z`K1>K0g!,/ E ͸a3LCۭXCPî6W9h!rcH uHzW(8B1^:S#',am\&tȈ.DQOw >c]Hx3I`p \ ep>l,uJhP' R :VV"\5|Po nBb.̉X6Sp8P1&bn\SJ5`io ߸.v9ʱDb'Xq"Gdૃȇ=<: v/"4>|ƭ/{ a[O 1_ sh#ߏ͇3 犡jFl)rH 7m*!6:+]3 Ê\1:PaGِ \9Gp$6Z[x G 1~D\hf^S`+1>+od"ጥ~De*!uVk̄gLե߿_k}fesXi#.AɨEx_=uU%FLK=̫ߎFVN@ QT2ʎD/U{ݚƯbҩb+mA"\SA5M PtG/eix֞X5SFZWGma;S'(^ӨHIV1s.n5'vw,Qv jY Kϗhk_n@ܤS//SqijщƇR"" \Js9VMNml@Ҏ/ӦKEۣv9ʱD/jLaaa  0 0 20 0 p0 0 0,3 0 0  0 0 Av7h1mUs| Db*B-H!oa,] {ơmBL<X7xr(r/bdk1ޜf*A2yGvd]pۣkWGt7uY1qO*ʈ@D H}6-S3̘X\shkCqtij-N!B]5UWHx^Ogcohݩ=Ͻ@__<E`b<όDIz t_N!KvbDeilj>0gk42jm e@hrFAOEN(49\FK~l05?ROaH+XT]Fp큕_G|(sB F|3Z͗fErBa-i_\g]}ݧ#)ĵ8$~ݟɢn_RE7ܖ}6Q4'`i #Eq q?'ɡPΙ: ;G;Uv%'Z(us7A\b<(3*"n;T7̌ڊ8B}lstwu0piD! kXaxa"d߇գ/b٤ D&A]ӑ2#h E8y] Mf $20_Qz][w̰Umv}8;ͽ0顿٤ѩPZb2̩ _7S"!D+'(.U ŦR;+vDr'K)\ۢ@t_WFeᯎ7&d?]P:"nK˪-M<&7d }Ei1K8] 4&RMF8APJ^fW-&yN(ihB;1,?х<%5sǗJCy )9ۉ8y3--U̅]mW]iIQ@]^v(K?2O굈"%n>Z1Hs.&[n7uNO 3vO4ʡ }޷LDtp0ySوUȶ]CTD۟cM@ח t|8M[]MlПs+oCPy"º!BDΟV<gncG":.e-d!:]w:(1D.\@W j"*lrHF""hi81ÞNjߤ@S} ÒRV{9gXYw}sՆ*22avv Pww,Đ'sgA8w^<ukኾ"x?E[AD ^%i6Lva]j=Vf>3:Vw<#œ:2}6뼉l B@9T/XTk2u ӽw.q pAWjrFϓT  P5R"Msf!#D=V3uAH#2-Uc̰U `d{ԅH-Z=v"}qWRJ4KO V-ĪO R ΜEnMlb>f}.W<<4;x"D.;ȶW{xtu@ 8_D`asGbQ琞pD V"\1TS-`=܈-EIME@8F'bE+ŸvaX+FGW3*l(7y]5 jtfbd goe@‘헀>cݩHP5>7?7q2pRL 2D+q|6s1&l@T9AҎ/FQiwHOen\)/WS(:ϟDwWjM(#=T@~z0]ыzY7V T裑zp_C깴IS-ԙ uQ#"RR=e_snU|,2~=-gw'K5/7TrNQInu9or>j'rDQDtyv ?0 0 0-~aaa8Xfaaaaeaa`aaa8X6 f" ݂4M!~Rid&6w[:E!{>3qrik *oJFba)א]); \}"bnf'~{f)^rʌ|^=\tƜI.܎OyGw&jb≈HAAov"?%ke갫Zzqn߽aX6)e@WtdYG(VFxH FQ414r\+S\Szִ a-8݂#;bxMoL!sOHPwFia#bk7򛺍IM{y(JSLiMFJv cS#HJƿ7sBIG gAw yJj|/ѕ\%^DFrӻIޖ,Hc"DIa4IN5Ȳ\[{D(y}di-9ADs9ҷ]wWC M:! wloBJOYX^\5`lD-+Q@\{/~cV-?B[1<aYU\}@{  [˪;ejFtrdohC2 KvCJZ]H`eskMvoJ?y*l[`=vHӈx r]3M EÆoLz| ؘ myCu8؋i⍋8"_G>7|QE7NsPMgp#9$6ѮcaE]Tܬ$$.lR,L] _ 7q2pRL 2D+N?iɮ \9Gp$6Z[x G xD'pmzi Ta}λZ$ 8k6|84L@W-ApJ:JD=}LiWGnB4 |=~d}r } wW-ISv4x6JcX𥌲c7 fwMnX%=E*{7V T裑z(_CuQ#"RR= %ZsW,1ܤS/ޛqj\;S'(^\NE[/H}FTe~]et[y<>siżMX."*J:N_K"<EσeDM:Iz=X>{UMaa6x&0 0 p0 0 0,3 0 0  0 0 20 0 |usa܂etV$B@ADz8(;`r2MniB>3Cv 0k7gv&gb, ʺH*T\i oY;1||`}jr(r/bd#`4* .{4qi=d78 C/*l7=vuo潦衕ػg%F9mG~ &'>etkbMnX~^[/ -Cޝz$=W )#A "SP@Cer{6A)Y8HʆI+V*]?9t6X0Cpy8GJr5E8y&%(0{{| $*\OU-n ; 9!NjUHGu9v4"wB0p(EW=J/{ŭ? zt!6L BgasRs(q՘%E薿.ۈQDF:2mv};[٨NWM=,=OwCCna޽;w_$Am6V vw0" |',PcҀѱD.,g0?olWƧc=a2@"`PJvU,l'2L(M12uUV҅Ep1j0$pըepl05lc黆ҩ?+3I4eL]5P*hσ1A(fv''6]qyd#ˏ]Ṛh4(oDpz|/w?唡7 :P<i LC%`d;pM=4;`CUC "1<Pex3HE'zq b7 dx!ַkTֵ.DG: c`sG 4 KUoP%21 -2 Q{#m6~g :@ FN;/q o칊2D Ɵ-B!\meb2 `d֕5T ` 'kCmSv8aa{_!_4yGc pX}b 1`YW-ApJ:JD=}LiWGnBʛ8|8c)_QJH{#.AɨEx_ڡ|?64 |=~d}r G},-RC5ßRnTClt"VD"iglbtt5–RqȆV7.Bl|u0{" IDATGWn܀E#pyFdjm9'Qr6pUPi].U?LpO QTC(;vjfbg ՕK$)Rh<r+FjeyELC.s@fnci]TkejUiZғG1%&|߂DSR)r.lx 14Ljv>s@E@1 0 0LG_0 0 p0 0 0,3 0 0  0 0 r;aϱn7,1*0 0,Wì5ޜ@9|>Ni"1ʎO6cʮ2̣mۄnA )!LK ύD;͟,ƀa8~V*TW#hT@]5/i2tU 'MlQWZ2LskW|?=>a\)^# sl`..%Wp>e1P@Cݼi2tUguEq, S߫A԰#?G+FZU#CoZu J`pV kɴ'=S82BC<*('"RNڳ6هF S7齯hhTV~R~_L:ӔiUt*ֺА%![24m܃dʥUXt?=DDDy{Pf]uG)>RV$F6ݦZ$¥"jfo@Шp=U.mpS'ëTBːΘb]" 帣;M'""-RwVډNXz_.,^Zw^[+'`aAOo=w`d߇գ/b٤ D&A]ӑT\eG6s;>yV}T۱; \}"bnf'~{f)^rĮ2]BWg|7of%bUdWH{`e ۢ@t_WFeᯎ7Oà8mW|=:n9IPc1LC,&yN(ihB;1,Ot!OIͼe?ѼLDtp}[>2~hm|OAp1j0$S 19WCv\5XȲ}Ei1F$]h~QɮdîriWC>k/~kw' _Z"9u S9+_bbpUpbH'S#F& % wV-2ʕwսmBH⇟RBN_E@5͍>5o\깔r MV e]BC>zSml0 *uw8zԈ⡵C~R\U+Ti,s3;w:[r\5Pk6X{AURcα\rc lf !.voϐp`_}1K敼ɋӈZ1I:8]3g sLŘÿyq LU]Un ߞHhrn)O?Ұq?st+1CiMPorf[ &"\Zv p3ù+cbȵy~pws\Psʕvk4~3& ?h=l8%uO#-D6?>\G6w#vGuUZSW0W~^K7}A]qP_yb~IJ- =TY!l7=31r2{ɂ%,΋,ȼ0jM&Hl_'ldue9RƜ%˦Q'ӠC!WCuZaQS1(*S""ERy9(^R.3P.UMWUdܼX "b=;*۬U]:>ĔCò _\4/F((rݣ+((6EQEQEˊ((eEQEQEƲ(Wh|OOwuCQEQƲ;t{+ F2GQN7`p((U>+/> y\H_ ""%sy::@gOw,_l""bWKIvjx wtr93_L^-iEe')9)?Nn ur)JFw?lw(KLV"rP(%d!EvweL.M"^ݻ*ͥ;%nϾ*GER =,mb}!h,eҧUD@'J9I>ꗫf;1KYʻkOM^ fkbW˫䋿S פ^ՋSCW٭!mg/YޗFs(Hxqi_ZNCa pp[&]3-%& p)cy:ћ~mpҗ`tʞ vzeo5G9aLՉ}a'Xrh>:lD,\(ػWN!^[;w L*ĥI0nўXa3yDX0}1hwp\[ [ >{g;gQ<o dkFCx<n%AGVtl/oxXyXzb'K#ds3뫕$Ƣ$+-W";C/zEh>Jrpi>>6EhAyOޙ-\/O ^ ~x>2$dY lĜZCZ5F[#ˍzHVh& &^v޹_IsYE|-'e.Q|ξpn'Sj4VN~/wy#㶊5evjz}R"G*vD3+Ut_$MU@o/G$C>ݣ#)^Խ" SyuC]SW٭0Ǧ!]Ih{!a+pf/*x^iҽmBH⇟Rޱ{W;={P͍>5_:K)DxLTv|9}f^XÁ$0ŗQ"vdjՙD$ժ^ܡv حv0)W9p(/ErN6i2vN7p+ĭM7O;3/Wk<8x ܺץEBۉxlq^QWy}v+ACb0PAjN@]۰Z5p*2*8/WqOCﺺ10 /fS F xtܹRoɲf?.!LG!zKF=)V* 0/eMQꙫ5Ruݎ yE]u?٭\Ʋcѹ-' @B5˩-$S>kɽ݌dx-Ib<4^sb6u p g _5N@WoCXrIͅ&Q]?7O }Iw~Or o|pK{t_daX2;W0#RQꗫ5A׽sM>2@cW+>~fE1Wc2+D '/Lp k:MygϿ*JN&|EkԚV,YeepĦ$rm޴ܝƜ"=D c8Քx뻙\i&kz dKg}0gK^-a/t?`iDfLJƗ~.y5):̶xL:1QiENsdg3X7{_{Ǡ͕S|媣ƫ?Z{ ˶mտM"tcWKW>vpH_yb~IJ- =TY!l7=3vQ DDg<{Go Q"/~.LbHaYBeعjL2|:˲ OgNeSߨ⩓!fǙ0lfIw0lq 6K29fI;L^7ʠ#إr_Pi+.B'kbã4,{ɂ%<ܒY2ya=3ȁa%=.Bus?ީFhW^|_ {M^%rm9 ~Z很 .F?5qUݚj QzLܽ!_EQEicEQEQEƲ(((((ՠ#ˊ((eEQEQEƲԩ[/8b'Vebj9_E[>K8jYQWt{+ F2Gt7;9("p(s<걅gZSW]5Ѩug|1vh Ŗq]چW˃x,^=Wk,XqU]k[6[^qLQXgD~4O@Q>IE#*uꪅąw5q^x \JH/cfUujÜy 9 M :1E{|ޒ\{OֶP5£=,sb(=Κ>\HsL #dwb7ֱwLYe_޲l&v/CeђVTGIIqtuӝhw:ZNX9KUUy fkbWu=q@k8y*\U.rLˬI]gA_N.ϋ:WTW;˙w_ ""%sy:w/sD61_3?Q WޚINin;{4CFڵoƋKrfP 2ygil)ᴽ.GdžY27y>.}_\b[OdYx$ |}f}Xd8vdQX-֤PA$ݞXkN;W r.덺H›Z>.Q|""$@04{#-"ߤ"&htQ<[`dҝwh]Ѥ6WyQ\/ȴG="M\"'>[فZO'%~^oMߜ\~[HPO?{l .d7qΈ@Se=v{Q 5>{t25bLl]K ^Ze$ȩSYr4͠=뛫jMpiчv>^1e8%^'$~(rrjǿg/k1 8W"94;_xiT!0zf0ni,3>~:,{i ˨UvߙD:aฅvZC_ϯQUe:ˬ U}^?W _309b3GgnTKx9K`ޒ `pۘ@Z$dըn&@v^!',#)N#jl& @w)ΜAzկ[gO[<qGɱD}dwRdw_h YQW;Jb<4V\ooOf${O4-5ǽ=C/2VbŰck,zA*pȲ9:YA4& (7S9EL_<׷p};OˀܕMIڼi?;9Ezn^똫Yiط731Q@d1,ƫ?Z{ ˶mտM"tcZ͜/ǒŁx3#voZ&{{9³Bؘn*՜F QoA/~)QGN|)K徠rdue9vƜ%˦Q's݇8/i>FEe]D(U"_r|O 7K9*FrdngKeޜR*\̚Ն>/ꔫ]:>Ĕò &7o$X%c2y燎?qo7YdS4Kf/2/KJ,EQEQE](((XVEQEQm,+((6EQEQEˊTqS]PUEQ뭱la=#myacj9mE[>|~< -C+JBk(ʵ"p(﫮[cy|5v-O+5z_W/[Juَk_-TW b+X hSuUQfcYޟAd+&z~?E$鏨ꩫK zUu&:SYmj(np=>XxoIL.ݽ'k[QaKzK\HfgM.q |yR%x(c^ڂOϑ r9sNNa:`s_Nڅj8U!/ikΈm8cTE":f /άyv,#O>9`9結aݹ|4a wv[_n#ݢ]]]+o!y|r?bՏ1tgdgcvSIDAT+xdQX-֤PA$ݞXkN;W r.kHR~^w|C_,;Ϸ >)D֏ўTq@*4 )J̽ŭ]`gW'Z: HHb7jwUox,7=O<TzM=>,IypUz0l$~=6 ؈_N2@ [Se={Q ]tk{'Ia F;啻H)f;M3na@WmOt|1]G#MO+rcnm¸d~ڙA6%ȩSYr4͠W]]m U,^L6 ڟ&\K44}.D.lv08Q]h09aF'v arf>[0OShQ㪝̍Xgqa0݈q 0  ˨ n_#F&*iW/,uG˲ِAo6dVRT,Y7Z&{{9³Bؘn*$8]j(NߤX6?"й(dekR `n,mm'+ _u9\$X>/PI X$UV^iI ~&]7ULIOns/]h2)*,+A^f4Q<[`dLr;w5c$SaT&uZ\Pa Y?Gݸ `MaC6ץ B<*VhTy3RV/&pj W O|G-&GK.S1R,&iN/ms$/Kaw~O5uiчv>^1[]/uZUr9El:pM]O8jW`R֣߱h{5g6N׮DeTp_ȯxoR# Z?_%`̽mqŃF2nG.uPՆj]t209b3{Gp-}ԧJhc9K`ޒ `pۘ@Z$d_%t־&3wa=84ޥhx8sUoųbe {,=&0yEfp^n/\ p>磒c;50/K4ƭ,k]L89Pjpeƽ=C/2VbŰck,juCļ^,ʬLmbx3õZ!n9˙Me/fsW&6&k4%zv=p"zUhb`DGs ǰnfk-/JBW4͊Ӎi.밑+v!.4ҷbz_(jqUgu.z2f[ &"\Zv p\pP8_yb~IJ- ђ=TYar 7o.v'557Vm3g3**? $dky⸜Q FUWfa<ݜ٦b]uUE]N]պW]zU8"Ilvo"ߍ?SI+g[>@.mF&+vؒ䋿 ߯to]3c%1m2kG{ #X.-qq#>\Hc)X.t>]b-IT/QX-֤PA$ݞXkN;W r.ٹHO-\}R"GԼWbh,FZDåI{iW,tkw1=Qɓwz?jsU^u.tVߠ.+I _:02k>ҢD}cq3hwͱu8m?ixs꣮6[0OJ]]Fq?!5ixj]]vvֽj]pU=|_<(+Shc6A(2{1boĹ}c;50/4ƭ,˄vEd`36&V Yv9ʌ{{t_daX2/&/N#jl& @w)ΜA#QW⪢6$WUW \" 4t@0Z͝=p"zbb`DGs ǰnfk-/JBW4͊ӍiesAlʧ17<Ɵd m}fE1Wc2+D '/Lpm'_Eٖo<9I>&*iU՗3ù+cbȵy~pwsUѱz9*jCrU^uUʥ3}|Շs/y㐈H{6̹ߛEQb)Jȗoq䛘r,z-'AOVy?;Zp9u|&l<1$~=TY!nzf=.AMl<(%e%3VE&>{eY΄1Fɲ)aoOjծV0ADd_uṪuZ\UeJs˝nEQEQEiWU>wDpOف((r=5U+^֢ޣ((r[,;SEQEQ(sqe_jX.g# pRH(('R:6Ѱ=) EQEQ Gi0(ݘ!6ygIENDB`././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.051666 stem-1.8.2/docs/_templates/0000755000175000017510000000000000000000000014277 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/_templates/layout.html0000644000175000017510000001044400000000000016505 0ustar00useruser{# haiku/layout.html ~~~~~~~~~~~~~~~~~ Sphinx layout template for the haiku theme. :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. #} {% extends "basic/layout.html" %} {% set css_files = css_files + ['_static/style.css'] %} {# do not display relbars #} {% block relbar1 %}{% endblock %} {% block relbar2 %}{% endblock %} {% macro nav() %}

{%- block haikurel1 %} {%- endblock %}

{%- block haikurel2 %} {%- endblock %}

{% endmacro %} {% block content %}
{%- block haikuheader %} {%- if theme_full_logo != "false" %} {%- else %} {%- if logo -%} {%- endif -%}

{{ shorttitle|e }}

{{ title|striptags|e }}

{%- endif %} {%- endblock %}
{{ nav() }}
{#{%- if display_toc %}

Table Of Contents

{{ toc }}
{%- endif %}#} {% block body %}{% endblock %}
{% endblock %} ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.051666 stem-1.8.2/docs/api/0000755000175000017510000000000000000000000012713 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/connection.rst0000644000175000017510000000011600000000000015602 0ustar00useruserController Connection ===================== .. automodule:: stem.connection ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/control.rst0000644000175000017510000000021200000000000015120 0ustar00useruserController ========== .. automodule:: stem.control Exceptions and Attribute Enums ------------------------------ .. automodule:: stem ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0556662 stem-1.8.2/docs/api/descriptor/0000755000175000017510000000000000000000000015071 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1548240897.0 stem-1.8.2/docs/api/descriptor/bandwidth_file.rst0000644000175000017510000000011700000000000020565 0ustar00useruserBandwidth File ============== .. automodule:: stem.descriptor.bandwidth_file ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/certificate.rst0000644000175000017510000000010600000000000020102 0ustar00useruserCertificate =========== .. automodule:: stem.descriptor.certificate ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1569107350.0 stem-1.8.2/docs/api/descriptor/collector.rst0000644000175000017510000000010000000000000017600 0ustar00useruserCollecTor ========= .. automodule:: stem.descriptor.collector ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/api/descriptor/descriptor.rst0000644000175000017510000000010100000000000017771 0ustar00useruserDescriptor ========== .. automodule:: stem.descriptor.__init__ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/api/descriptor/export.rst0000644000175000017510000000012100000000000017136 0ustar00useruserDescriptor Exporter =================== .. automodule:: stem.descriptor.export ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/extrainfo_descriptor.rst0000644000175000017510000000014100000000000022054 0ustar00useruserExtrainfo Descriptor ==================== .. automodule:: stem.descriptor.extrainfo_descriptor ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1569107350.0 stem-1.8.2/docs/api/descriptor/hidden_service.rst0000644000175000017510000000014500000000000020576 0ustar00useruserHidden Service Descriptor ========================= .. automodule:: stem.descriptor.hidden_service ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/microdescriptor.rst0000644000175000017510000000012200000000000021026 0ustar00useruserMicroDescriptor =============== .. automodule:: stem.descriptor.microdescriptor ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/networkstatus.rst0000644000175000017510000000014200000000000020555 0ustar00useruserNetwork Status Documents ======================== .. automodule:: stem.descriptor.networkstatus ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/api/descriptor/reader.rst0000644000175000017510000000011500000000000017062 0ustar00useruserDescriptor Reader ================= .. automodule:: stem.descriptor.reader ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/remote.rst0000644000175000017510000000011500000000000017113 0ustar00useruserDescriptor Remote ================= .. automodule:: stem.descriptor.remote ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/router_status_entry.rst0000644000175000017510000000014200000000000021764 0ustar00useruserRouter Status Entries ===================== .. automodule:: stem.descriptor.router_status_entry ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/server_descriptor.rst0000644000175000017510000000013000000000000021361 0ustar00useruserServer Descriptor ================= .. automodule:: stem.descriptor.server_descriptor ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/descriptor/tordnsel.rst0000644000175000017510000000012300000000000017451 0ustar00useruserTorDNSEL Exit Lists =================== .. automodule:: stem.descriptor.tordnsel ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1531860247.0 stem-1.8.2/docs/api/directory.rst0000644000175000017510000000006500000000000015452 0ustar00useruserDirectory ========= .. automodule:: stem.directory ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/exit_policy.rst0000644000175000017510000000007300000000000015775 0ustar00useruserExit Policy =========== .. automodule:: stem.exit_policy ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/manual.rst0000644000175000017510000000005400000000000014721 0ustar00useruserManual ====== .. automodule:: stem.manual ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/process.rst0000644000175000017510000000006700000000000015126 0ustar00useruserTor Process =========== .. automodule:: stem.process ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/response.rst0000644000175000017510000000076200000000000015310 0ustar00useruserController Responses ==================== .. automodule:: stem.response Responses --------- .. autoclass:: stem.response.add_onion.AddOnionResponse .. autoclass:: stem.response.authchallenge.AuthChallengeResponse .. autoclass:: stem.response.getconf.GetConfResponse .. autoclass:: stem.response.getinfo.GetInfoResponse .. autoclass:: stem.response.mapaddress.MapAddressResponse .. autoclass:: stem.response.protocolinfo.ProtocolInfoResponse Events ------ .. automodule:: stem.response.events ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/socket.rst0000644000175000017510000000007400000000000014736 0ustar00useruserControl Socket ============== .. automodule:: stem.socket ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0556662 stem-1.8.2/docs/api/util/0000755000175000017510000000000000000000000013670 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/conf.rst0000644000175000017510000000013100000000000015342 0ustar00useruserConfiguration File Handling =========================== .. automodule:: stem.util.conf ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/connection.rst0000644000175000017510000000012100000000000016553 0ustar00useruserConnection Utilities ==================== .. automodule:: stem.util.connection ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/enum.rst0000644000175000017510000000007300000000000015366 0ustar00useruserEnumerations ============ .. automodule:: stem.util.enum ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/api/util/init.rst0000644000175000017510000000005700000000000015367 0ustar00useruserUtil ==== .. automodule:: stem.util.__init__ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/log.rst0000644000175000017510000000006000000000000015177 0ustar00useruserLogging ======= .. automodule:: stem.util.log ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/proc.rst0000644000175000017510000000007700000000000015371 0ustar00useruserProc Utilities ============== .. automodule:: stem.util.proc ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/str_tools.rst0000644000175000017510000000011000000000000016442 0ustar00useruserString Utilities ================ .. automodule:: stem.util.str_tools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/system.rst0000644000175000017510000000010500000000000015742 0ustar00useruserSystem Utilities ================ .. automodule:: stem.util.system ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/term.rst0000644000175000017510000000010700000000000015367 0ustar00useruserTerminal Utilities ================== .. automodule:: stem.util.term ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/test_tools.rst0000644000175000017510000000010500000000000016615 0ustar00useruserTest Utilities ============== .. automodule:: stem.util.test_tools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/util/tor_tools.rst0000644000175000017510000000010200000000000016437 0ustar00useruserTor Utilities ============= .. automodule:: stem.util.tor_tools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/api/version.rst0000644000175000017510000000005700000000000015134 0ustar00useruserVersion ======= .. automodule:: stem.version ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/api.rst0000644000175000017510000000733200000000000013452 0ustar00useruserAPI === Controller ---------- * **Core** * `stem.control `_ - **Controller used to talk with Tor**. * `stem.connection `_ - Connection and authentication to the Tor control socket. * `stem.socket `_ - Low level control socket used to talk with Tor. * `stem.process `_ - Launcher for the Tor process. * `stem.response `_ - Messages that Tor may provide the controller. * **Types** * `stem.exit_policy `_ - Relay policy for the destinations it will or won't allow traffic to. * `stem.manual `_ - Information available about Tor from `its manual `_. * `stem.version `_ - Tor versions that can be compared to determine Tor's capabilities. Descriptors ----------- To read descriptors from disk use :func:`~stem.descriptor.__init__.parse_file` for individual files and `stem.descriptor.reader `_ for batches. You can also use `stem.descriptor.remote `_ to download descriptors remotely like Tor does. * **Classes** * `stem.descriptor `_ - Base class for descriptors. * `stem.descriptor.server_descriptor `_ - Relay and bridge server descriptors. * `stem.descriptor.extrainfo_descriptor `_ - Relay and bridge extrainfo descriptors. * `stem.descriptor.microdescriptor `_ - Minimalistic counterpart for server descriptors. * `stem.descriptor.networkstatus `_ - Network status documents which make up the Tor consensus. * `stem.descriptor.router_status_entry `_ - Relay entries within a network status document. * `stem.descriptor.hidden_service `_ - Descriptors generated for hidden services. * `stem.descriptor.bandwidth_file `_ - Bandwidth authority metrics. * `stem.descriptor.tordnsel `_ - `TorDNSEL `_ exit lists. * `stem.descriptor.certificate `_ - `Ed25519 certificates `_. * `stem.directory `_ - Directory authority and fallback directory information. * `stem.descriptor.reader `_ - Reads and parses descriptor files from disk. * `stem.descriptor.remote `_ - Downloads descriptors from directory mirrors and authorities. * `stem.descriptor.collector `_ - Downloads past descriptors from `CollecTor `_. * `stem.descriptor.export `_ - Exports descriptors to other formats. Utilities --------- * `stem.util.conf `_ - Configuration file handling. * `stem.util.connection `_ - Connection and IP related utilities. * `stem.util.enum `_ - Enumeration class. * `stem.util.proc `_ - Resource and connection usage via proc contents. * `stem.util.str_tools `_ - String utilities. * `stem.util.system `_ - Tools related to the local system. * `stem.util.term `_ - Tools for interacting with the terminal. * `stem.util.test_tools `_ - Static analysis checks and tools to help with test runs. * `stem.util.tor_tools `_ - Miscellaneous toolkit for working with tor. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/change_log.rst0000644000175000017510000011351600000000000014771 0ustar00useruserChange Log ========== The following is a log of all user-facing changes to Stem, both released and unreleased. For a monthly report on work being done see my `development log `_. * :ref:`versioning` * :ref:`unreleased` * :ref:`version_1.8` * :ref:`version_1.7` * :ref:`version_1.6` * :ref:`version_1.5` * :ref:`version_1.4` * :ref:`version_1.3` * :ref:`version_1.2` * :ref:`version_1.1` * :ref:`version_1.0` .. _versioning: Versioning ---------- Stem uses `semantic versioning `_, which means that **versions consist of three numbers** (such as '**1.2.4**'). These are used to convey the kind of backward compatibility you can expect... * The first value is the **major version**. This changes infrequently, and indicates that backward incompatible changes have been made (such as the removal of deprecated functions). * The second value is the **minor version**. This is the most common kind of release, and denotes that the improvements are backward compatible. * The third value is the **patch version**. When a Stem release has a major issue another release is made which fixes just that problem. These do not contain substantial improvements or new features. This value is sometimes left off to indicate all releases with a given major/minor version. .. _unreleased: Unreleased ---------- The following are only available within Stem's `git repository `_. .. _version_1.8: Version 1.8 (December 29th, 2019) --------------------------------- `Stem 1.8 `_ is the final release in Stem’s 1.x series and with it `Python 2.x support `_. Over a year in the making, this introduces `CollecTor `_, `bandwidth metric `_, and `HSv3 descriptor support `_. * **Controller** * Added :func:`~stem.control.Controller.get_start_time` method to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.get_uptime` method to the :class:`~stem.control.Controller` * Controller events could fail to be delivered in a timely fashion (:trac:`27173`) * Adjusted :func:`~stem.control.Controller.get_microdescriptors` fallback to also use '.new' cache files (:trac:`28508`) * ExitPolicies could raise TypeError when read concurrently (:trac:`29899`) * Moved the *arrived_at* attribute from :class:`~stem.response.event.Event` to :class:`~stem.response.__init__.ControlMessage` * **STALE_DESC** :data:`~stem.Flag` (:spec:`d14164d`) * **DORMANT** and **ACTIVE** :data:`~stem.Signal` (:spec:`4421149`) * **QUERY_RATE_LIMITED** :data:`~stem.HSDescReason` (:spec:`bd80679`) * **EXTOR** and **HTTPTUNNEL** :data:`~stem.control.Listener` * **Descriptors** * Added the `stem.descriptor.collector `_ module (:trac:`17979`) * Added `v3 hidden service descriptor support `_ (:trac:`31369`) * `Bandwidth file support `_ (:trac:`29056`) * `stem.descriptor.remote `_ methods now raise :class:`stem.DownloadFailed` * Check Ed25519 validity though the cryptography module rather than PyNaCl (:trac:`22022`) * Download compressed descriptors by default (:trac:`29186`) * Added :class:`~stem.descriptor.Compression` class * Added :func:`stem.descriptor.remote.get_microdescriptors` * Added :func:`stem.descriptor.remote.get_bandwidth_file` (:trac:`26902`) * Added :class:`~stem.descriptor.networkstatus.DetachedSignature` parsing (:trac:`28495`) * Added :func:`~stem.descriptor.__init__.Descriptor.from_str` method (:trac:`28450`) * Added :func:`~stem.descriptor.__init__.Descriptor.type_annotation` method (:trac:`28397`) * Added :func:`~stem.descriptor.networkstatus.NetworkStatusDocument.digest` method (:trac:`28398`) * Added the **hash_type** and **encoding** arguments to `ServerDescriptor `_ and `ExtraInfo's `_ digest methods (:trac:`28398`) * Added the network status vote's new bandwidth_file_digest attribute (:spec:`1b686ef`) * Added :func:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3.is_valid` and :func:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3.is_fresh` methods (:trac:`28448`) * Replaced :func:`~stem.descriptor.router_status_entry.RouterStatusEntryMicroV3` hex encoded **digest** attribute with a base64 encoded **microdescriptor_digest** * Replaced the **digest** attribute of :class:`~stem.descriptor.microdescriptor.Microdescriptor` with a method by the same name (:trac:`28398`) * Default the **version_flavor** attribute of :class:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3` to 'ns' (:spec:`d97f8d9`) * DescriptorDownloader crashed if **use_mirrors** is set (:trac:`28393`) * Renamed stem.descriptor.hidden_service_descriptor to stem.descriptor.hidden_service * Don't download from Serge, a bridge authority that frequently timeout * Updated dizum authority's address (:trac:`31406`) * **Client** * Sockets with ORPorts errored if responses exceeded a hardcoded buffer size (:trac:`28961`) * **Utilities** * :func:`~stem.util.tor_tools.is_valid_hidden_service_address` now provides *true* if a v3 hidden servie address * Fixed 'invalid escape sequence' python 3.6 warnings (:trac:`27270`) * **Website** * `Migrated to GitHub's issue tracker `_ * Added NetBSD to our `download page `_ * Describe `advanced listener usage `_ * Exemplify `manual SAFECOOKIE authentication `_ * `Update PyPI links `_ (:trac:`30137`) * **Interpreter** * tor-prompt is now ~34% faster when used to non-interactively invoke commands .. _version_1.7: Version 1.7 (October 7th, 2018) ------------------------------- `Stem 1.7 `_ is a full year of improments. Most notably this adds the ability to `download descriptors through ORPorts `_ and the `stem.directory module `_. * **Controller** * Listener exceptions and malformed events no longer break further event processing (:trac:`27053`) * Documented v3 hidden service support (:trac:`25124`, :spec:`6bd0a69`) * Added the stem.control.MALFORMED_EVENTS event listener constant * Added support for limiting the maximum number of streams for :func:`~stem.control.Controller.create_ephemeral_hidden_service` (:spec:`2fcb1c2`) * Added a timeout argument to :class:`~stem.control.Controller` methods that could await a response (:trac:`26056`) * Added a close_output argument to :class:`~stem.process.launch_tor` * :func:`stem.connection.connect` crashed if its port argument was a string * More reliable ExitPolicy resolution (:trac:`25739`) * Fixed cache invalidation when another contorller calls SETCONF (:trac:`25821`) * :func:`~stem.control.COntroller.create_hidden_service` failed when creating services with v2 options (:trac:`27446`) * :func:`~stem.control.Controller.get_info` commonly raised :class:`stem.ProtocolError` when it should provide a :class:`stem.OperationFailed` * :func:`~stem.control.Controller.get_microdescriptors` now reads microdescriptors from the control port rather than disk when available (:spec:`b5396d5`) * Added the delivered_read, delivered_written, overhead_read, and overhead_written attributes to :class:`~stem.response.events.CircuitBandwidthEvent` (:spec:`fbb38ec`) * The *config* attribute of :class:`~stem.response.events.ConfChangedEvent` couldn't represent tor configuration options with multiple values. It has been replaced with new *changed* and *unset* attributes. * Replaced socket's :func:`~stem.socket.ControlPort.get_address`, :func:`~stem.socket.ControlPort.get_port`, and :func:`~stem.socket.ControlSocketFile.get_socket_path` with attributes * :class:`~stem.response.ControlMessage` is now comparable and hashable * Removed the 'raw' argument from :func:`~stem.socket.ControlSocket.send` * **Descriptors** * `stem.descriptor.remote `_ can now download from relay ORPorts * Zstd and lzma compression support (:spec:`1cb56af`) * Moved the Directory classes into their own `stem.directory `_ module * Added :func:`~stem.descriptor.remote.Directory.from_cache` and :func:`~stem.descriptor.remote.Directory.from_remote` to the :class:`~stem.descriptor.remote.DirectoryAuthority` subclass * `Tor rearranged its files `_, adjusted :func:`stem.descriptor.remote.Directory.from_remote` and :func:`stem.manual.Manual.from_remote` to account for this * `Fallback directory v2 support `_, which adds *nickname* and *extrainfo* * Added the *orport_v6* attribute to the :class:`~stem.directory.Authority` class * Added server descriptor's new is_hidden_service_dir attribute * Added the network status vote's new bandwidth_file_headers attribute (:spec:`84591df`) * Added the microdescriptor router status entry's new or_addresses attribute (:trac:`26405`, :spec:`fdc8f3e`) * Don't retry downloading descriptors when we've timed out * Don't download from tor26, an authority that frequently timeout * Replaced Bifroest bridge authority with Serge (:trac:`26771`) * `stem.descriptor.remote `_ now consistently defaults **fall_back_to_authority** to false * Deprecated `stem.descriptor.export `_. If you use it please `let us know `_. * Added :func:`~stem.descriptor.remote.their_server_descriptor` * Added the reply_headers attribute to :class:`~stem.descriptor.remote.Query` * Supplying a User-Agent when downloading descriptors * Reduced maximum descriptors fetched by the remote module to match tor's new limit (:trac:`24743`) * Consensus **shared_randomness_*_reveal_count** attributes undocumented, and unavailable if retrieved before their corresponding shared_randomness_*_value attribute (:trac:`25046`) * Allow 'proto' line to have blank values (:spec:`a8455f4`) * **Utilities** * Fixed PyPy compatibility (:trac:`26207`) * Python 3.6+ syntax error if test_tools.py imported (:trac:`26739`) * Connection information from proc limited to 10,000 results * Include attribute types in most equality checks and hashes * Cache hash values of immutable classes * More performant string concatenation `via bytearrays `_ * Functions using lru_cache could fail with a KeyError on Python 3.5 (:trac:`26412`) * **Website** * Added `terminal styling `_ to our utilities tutorial * Added `multiprocessing `_ to our utilities tutorial * Added a `descriptor download example `_ * Added a `relay connection summary example `_ * **Version 1.7.1** (December 26th, 2018) - :func:`~stem.process.launch_tor` compatibility with an upcoming log format change (:trac:`28731`) .. _version_1.6: Version 1.6 (November 5th, 2017) -------------------------------- Year long accumulation of fixes and improvements in support of the `Nyx 2.0 release `_. * **Controller** * :func:`~stem.process.launch_tor` raised a ValueError if invoked when outside the main thread * Failure to authenticate could raise an improper response or hang (:trac:`22679`) * Renamed :class:`~stem.response.events.ConnectionBandwidthEvent` type attribute to conn_type to avoid conflict with parent class (:trac:`21774`) * Added 'force' argument to :func:`~stem.control.Controller.save_conf` (:spec:`5c82d5e`) * Added the QUERY_NO_HSDIR :data:`~stem.HSDescReason` and recognizing unknown HSDir results (:spec:`1412d79`) * Added the GUARD_WAIT :data:`~stem.CircStatus` (:spec:`6446210`) * Unable to use cookie auth when path includes wide characters (chinese, japanese, etc) * Tor change caused :func:`~stem.control.Controller.list_ephemeral_hidden_services` to provide empty strings if unset (:trac:`21329`) * Better error message when :func:`~stem.control.Controller.set_conf` fails due to an option being immutable * :func:`~stem.control.Controller.get_ports` didn't provide ports for many representations of localhost (:trac:`24085`) * :func:`~stem.control.Controller.is_geoip_unavailable` now determines if database is available right away * Added the time attribute to :class:`~stem.response.events.StreamBwEvent` and :class:`~stem.response.events.CircuitBandwidthEvent` (:spec:`00b9daf`) * Added the consensus_content attribute to :class:`~stem.response.events.NewConsensusEvent` and deprecated its 'desc' * Deprecated :func:`~stem.control.Controller.is_geoip_unavailable`, this is now available via getinfo instead (:trac:`23237`, :spec:`dc973f8`) * Deprecated :class:`~stem.respose.events.AuthDirNewDescEvent` (:trac:`22377`, :spec:`6e887ba`) * Caching manual information as sqlite rather than stem.util.conf, making :func:`stem.manual.Manual.from_cache` about ~8x faster * Added :func:`~stem.manual.database` to get a cursor for the manual cache * Failed to parse torrcs without a port on ipv6 exit policy entries * Resilient to 'Tor' prefix in 'GETINFO version' result (:spec:`c5ff1b1`) * Added a **all_extra** parameter to :class:`stem.version.Version` and support for multiple parenthetical entries (:trac:`22110`, :spec:`b50917d`) * Setting 'UseMicrodescriptors 1' in your torrc caused :func:`~stem.control.Controller.get_network_statuses` to error (:trac:`24110`) * Closing controller connection faster when under heavy event load * Better messaging when unable to connect to tor on FreeBSD * More succinct trace level logging * **Descriptors** * Supporting `descriptor creation `_ (:trac:`10227`) * Support and validation for `ed25519 certificates `_ (`spec `_, :trac:`21558`) * Added :func:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3.validate_signatures` to check our key certificate signatures (:trac:`11045`) * Moved from the deprecated `pycrypto `_ module to `cryptography `_ for validating signatures (:trac:`21086`) * Sped descriptor reading by ~25% by deferring defaulting when validating * Added server descriptor's new extra_info_sha256_digest attribute (:spec:`0f03581`) * Added server descriptor's new protocol attribute (:spec:`eb4fb3c`) * Added server descriptor's new bridge_distribution attribute (:trac:`21177`) * Added extrainfo descriptor's new padding_counts attributes (:spec:`0803997`) * Shared randomness properties weren't being read in votes (:trac:`21102`) * Added bastet as a new authority (:trac:`23912`) * Updated longclaw authority's address (:trac:`23592`) * **Utilities** * Support connection resolution on OpenBSD using fstat (:trac:`13807`) * Added :func:`~stem.util.system.size_of` * Added :func:`~stem.util.log.is_tracing` * Added timeout argument to :func:`~stem.util.system.call` * Added cwd argument to :func:`~stem.util.system.call` * Added round argument to :func:`~stem.util.str_tools.size_label` * Added :class:`~stem.util.test_tools.TimedTestRunner` and :func:`~stem.util.test_tools.test_runtimes` * Supporting pid arguments in :func:`~stem.util.system.is_running` * Made connection resolution via proc about 5x faster * Normalized :func:`~stem.util.term.format` to return unicode * Don't load vim swap files as configurations * **Interpreter** * Added a `'--run [command or path]' argument `_ to invoke specific commands (:trac:`21541`) * Allowing interpreter to continue after tor shuts down (:trac:`22374`) * Interpreter buffered an unbounded number of events, leaking memory over time * **Website** * Source code served by '[source]' links perpetually stale (:trac:`19521`) .. _version_1.5: Version 1.5 (November 20th, 2016) --------------------------------- `Stem 1.5 `_ is a long overdue accumulation of seventeen months of improvements including dramatically improved python 3.x performance, `tor manual information `_, and much more. * **Controller** * Dramatic, 300x performance improvement for reading from the control port with python 3 * Added `stem.manual `_, which provides information available about Tor from `its manual `_ (:trac:`8251`) * :func:`~stem.connection.connect` and :func:`~stem.control.Controller.from_port` now connect to both port 9051 (relay's default) and 9151 (Tor Browser's default) (:trac:`16075`) * :class:`~stem.exit_policy.ExitPolicy` support for *accept6/reject6* and *\*4/6* wildcards (:trac:`16053`) * Added `support for NETWORK_LIVENESS events `_ (:spec:`44aac63`) * Added support for basic authentication to :func:`~stem.control.Controller.create_ephemeral_hidden_service` (:spec:`c2865d9`) * Added support for non-anonymous services to :func:`~stem.control.Controller.create_ephemeral_hidden_service` (:spec:`b8fe774`) * Added :func:`~stem.control.event_description` for getting human-friendly descriptions of tor events (:trac:`19061`) * Added :func:`~stem.control.Controller.reconnect` to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.is_set` to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.is_user_traffic_allowed` to the :class:`~stem.control.Controller` * Added the replica attribute to :class:`~stem.response.events.HSDescEvent` (:spec:`4989e73`) * Added the NoEdConsensus :data:`~stem.Flag` (:spec:`dc99160`) * Recognize listeners with IPv6 addresses in :func:`~stem.control.Controller.get_listeners` * :func:`~stem.process.launch_tor` could leave a lingering process during an unexpected exception (:trac:`17946`) * IPv6 addresses could trigger errors in :func:`~stem.control.Controller.get_listeners`, :class:`~stem.response.events.ORConnEvent`, and quite a few other things (:trac:`16174`) * Don't obscure stacktraces, most notably :class:`~stem.control.Controller` getter methods with default values * Classes with custom equality checks didn't provide a corresponding inequality method * **Descriptors** * `Shorthand functions for stem.descriptor.remote `_ * Added `fallback directory information `_. * Support for ed25519 descriptor fields (:spec:`5a79d67`) * Support downloading microdescriptor consensus with :func:~stem.descriptor.remote.DescriptorDownloader.get_consensus` (:spec`e788b8f`) * Added consensus and vote's new shared randomness attributes (:spec:`9949f64`) * Added server descriptor's new allow_tunneled_dir_requests attribute (:spec:`8bc30d6`) * Server descriptor validation fails with 'extra-info-digest line had an invalid value' from additions in proposal 228 (:trac:`16227`) * :class:`~stem.descriptor.server_descriptor.BridgeDescriptor` now has 'ntor_onion_key' like its unsanitized counterparts * Replaced the :class:`~stem.descriptor.microdescriptor.Microdescriptor` identifier and identifier_type attributes with an identifiers hash since it can now appear multiple times (:spec:`09ff9e2`) * Unable to read descriptors from data directories on Windows due to their CRLF newlines (:trac:`17051`) * TypeError under python3 when using 'use_mirrors = True' (:trac:`17083`) * Deprecated hidden service descriptor's *introduction_points_auth* field, which was never implemented in tor (:trac:`15190`, :spec:`9c218f9`) * Deprecated :func:`~stem.descriptor.remote.DescriptorDownloader.get_microdescriptors` as it was never implemented in tor (:trac:`9271`) * :func:`~stem.control.Controller.get_hidden_service_descriptor` errored when provided a *servers* argument (:trac:`18401`) * Fixed parsing of server descriptor's *allow-single-hop-exits* and *caches-extra-info* lines * Bracketed IPv6 addresses were mistreated as being invalid content * Better validation for non-ascii descriptor content * Updated dannenberg's v3ident (:trac:`17906`) * Removed urras as a directory authority (:trac:`19271`) * **Utilities** * IPv6 support in :func:`~stem.util.connection.get_connections` when resolving with proc, netstat, lsof, or ss (:trac:`18079`) * The 'ss' connection resolver didn't work on Gentoo (:trac:`18079`) * Recognize IPv4-mapped IPv6 addresses in our utils (:trac:`18079`) * Allow :func:`stem.util.conf.Config.set` to remove values when provided with a **None** value * Support prefix and suffix issue strings in :func:`~stem.util.test_tools.pyflakes_issues` * Additional information when :func:`~stem.util.system.call` fails through a :class:`~stem.util.system.CallError` * Added **stem.util.system.SYSTEM_CALL_TIME** with the total time spent on system calls * Added an **is_ipv6** value to :class:`~stem.util.connection.Connection` instances * Added LINES attribute to :data:`~stem.util.term.Attr` * Added :func:`~stem.util.system.pids_by_user` * Added :func:`~stem.util.connection.address_to_int` * Added :func:`~stem.util.term.encoding` * Added :func:`~stem.util.__init__.datetime_to_unix` * **Interpreter** * Added a '--tor [path]' argument to specify the tor binary to run. * **Website** * `Comparison of our descriptor parsing libraries `_ * Example for `custom path selection for circuits `_ (:trac:`8728`) * Example for `persisting ephemeral hidden service keys `_ * **Version 1.5.3** (December 5th, 2016) - including tests and site in the release tarball * **Version 1.5.4** (January 4th, 2017) - drop validation of the order of fields in the tor consensus (:trac:`21059`) .. _version_1.4: Version 1.4 (May 13th, 2015) ---------------------------- `Stem's 1.4 release `_ brings with it new hidden service capabilities. Most notably, `ephemeral hidden services `_ and the ability to `read hidden service descriptors `_. This release also changes descriptor validation to now be opt-in rather than opt-out. When unvalidated content is lazy-loaded, `greatly improving our performance `_. And last, Stem also now runs directly under both python2 and python3 without a 2to3 conversion (:trac:`14075`)! * **Controller** * Added :class:`~stem.control.Controller` methods for a new style of hidden services that don't touch disk: :func:`~stem.control.Controller.list_ephemeral_hidden_services`, :func:`~stem.control.Controller.create_ephemeral_hidden_service`, and :func:`~stem.control.Controller.remove_ephemeral_hidden_service` (:spec:`f5ff369`) * Added :func:`~stem.control.Controller.get_hidden_service_descriptor` and `support for HS_DESC_CONTENT events `_ (:trac:`14847`, :spec:`aaf2434`) * :func:`~stem.process.launch_tor_with_config` avoids writing a temporary torrc to disk if able (:trac:`13865`) * :class:`~stem.response.events.CircuitEvent` support for the new SOCKS_USERNAME and SOCKS_PASSWORD arguments (:trac:`14555`, :spec:`2975974`) * The 'strict' argument of :func:`~stem.exit_policy.ExitPolicy.can_exit_to` didn't behave as documented (:trac:`14314`) * Threads spawned for status change listeners were never joined on, potentially causing noise during interpreter shutdown * Added support for specifying the authentication type and client names in :func:`~stem.control.Controller.create_hidden_service` (:trac:`14320`) * **Descriptors** * Lazy-loading descriptors, improving performance by 25-70% depending on what type it is (:trac:`14011`) * Added `support for hidden service descriptors `_ (:trac:`15004`) * When reading sanitised bridge descriptors (server or extrainfo), :func:`~stem.descriptor.__init__.parse_file` treated the whole file as a single descriptor * The :class:`~stem.descriptor.networkstatus.DirectoryAuthority` 'fingerprint' attribute was actually its 'v3ident' * Added consensus' new package attribute (:spec:`ab64534`) * Added extra info' new hs_stats_end, hs_rend_cells, hs_rend_cells_attr, hs_dir_onions_seen, and hs_dir_onions_seen_attr attributes (:spec:`ddb630d`) * Updating Faravahar's address (:trac:`14487`) * **Utilities** * Windows support for connection resolution (:trac:`14844`) * :func:`stem.util.connection.port_usage` always returned None (:trac:`14046`) * :func:`~stem.util.test_tools.stylistic_issues` and :func:`~stem.util.test_tools.pyflakes_issues` now provide namedtuples that also includes the line * Added :func:`stem.util.system.tail` * Proc connection resolution could fail on especially busy systems (:trac:`14048`) * **Website** * Added support and `instructions for tox `_ (:trac:`14091`) * Added OSX to our `download page `_ (:trac:`8588`) * Updated our twitter example to work with the service's 1.1 API (:trac:`9003`) * **Version 1.4.1** (May 18th, 2015) - fixed issue where descriptors couldn't be unpickled (:trac:`16054`) and a parsing issue for router status entry bandwidth lines (:trac:`16048`) .. _version_1.3: Version 1.3 (December 22nd, 2014) --------------------------------- With `Stem's 1.3 release `_ it's now much easier to `work with hidden services `_, 40% faster to read decriptors, and includes a myriad of other improvements. For a nice description of the changes this brings see `Nathan Willis' LWN article `_. * **Controller** * Added :class:`~stem.control.Controller` methods to more easily work with hidden service configurations: :func:`~stem.control.Controller.get_hidden_service_conf`, :func:`~stem.control.Controller.set_hidden_service_conf`, :func:`~stem.control.Controller.create_hidden_service`, and :func:`~stem.control.Controller.remove_hidden_service` (:trac:`12533`) * Added :func:`~stem.control.Controller.get_accounting_stats` to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.get_effective_rate` to the :class:`~stem.control.Controller` * Added :func:`~stem.control.BaseController.connection_time` to the :class:`~stem.control.BaseController` * Changed :func:`~stem.control.Controller.get_microdescriptor`, :func:`~stem.control.Controller.get_server_descriptor`, and :func:`~stem.control.Controller.get_network_status` to get our own descriptor if no fingerprint or nickname is provided. * Added :class:`~stem.exit_policy.ExitPolicy` methods for more easily handling 'private' policies (the `default prefix `_) and the defaultly appended suffix. This includes :func:`~stem.exit_policy.ExitPolicy.has_private`, :func:`~stem.exit_policy.ExitPolicy.strip_private`, :func:`~stem.exit_policy.ExitPolicy.has_default`, and :func:`~stem.exit_policy.ExitPolicy.strip_default` :class:`~stem.exit_policy.ExitPolicy` methods in addition to :func:`~stem.exit_policy.ExitPolicyRule.is_private` and :func:`~stem.exit_policy.ExitPolicyRule.is_default` for the :class:`~stem.exit_policy.ExitPolicyRule`. (:trac:`10107`) * Added the reason attribute to :class:`~stem.response.events.HSDescEvent` (:spec:`7908c8d`) * :func:`~stem.process.launch_tor_with_config` could cause a "Too many open files" OSError if called too many times (:trac:`13141`) * The :func:`~stem.control.Controller.get_exit_policy` method errored if tor couldn't determine our external address * The Controller's methods for retrieving descriptors could raise unexpected ValueErrors if tor didn't have any descriptors available * Throwing a new :class:`~stem.DescriptorUnavailable` exception type when the :class:`~stem.control.Controller` can't provide the descriptor for a relay (:trac:`13879`) * **Descriptors** * Improved speed for parsing consensus documents by around 40% (:trac:`12859` and :trac:`13821`) * Don't fail if consensus method 1 is not present, as it is no longer required (:spec:`fc8a6f0`) * Include '\*.new' files when reading from a Tor data directory (:trac:`13756`) * Updated the authorities we list, `replacing turtles with longclaw `_ and `updating gabelmoo's address `_ * Noting if authorities are also a bandwidth authority or not * Microdescriptor validation issues could result in an AttributeError (:trac:`13904`) * **Utilities** * Added support for directories to :func:`stem.util.conf.Config.load` * Changed :func:`stem.util.conf.uses_settings` to only provide a 'config' keyword arument if the decorated function would accept it * Added :func:`stem.util.str_tools.crop` * Added :func:`stem.util.proc.file_descriptors_used` * Dropped the 'get_*' prefix from most function names. Old names will still work, but are a deprecated alias. * **Interpreter** * The /info command errored for relays without contact information * **Website** * Tutorial for `hidden services `_ * Example for `writing descriptors to disk and reading them back `_ (:trac:`13774`) * Added Gentoo to our `download page `_ and handful of testing revisions for that platform (:trac:`13904`) * Tests for our tutorial examples (:trac:`11335`) * Revised `GitWeb `_ urls to work after its upgrade .. _version_1.2: Version 1.2 (June 1st, 2014) ---------------------------- `Stem release 1.2 `_ added our `interactive Tor interpreter `_ among numerous other improvements and fixes. * **Controller** * New, better :func:`~stem.connection.connect` function that deprecates :func:`~stem.connection.connect_port` and :func:`~stem.connection.connect_socket_file` * Added :func:`~stem.control.Controller.is_newnym_available` and :func:`~stem.control.Controller.get_newnym_wait` methods to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.get_ports` and :func:`~stem.control.Controller.get_listeners` methods to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.drop_guards` (:trac:`10032`, :spec:`7c6c7fc`) * Added the id attribute to :class:`~stem.response.events.ORConnEvent` (:spec:`6f2919a`) * Added `support for CONN_BW events `_ (:spec:`6f2919a`) * Added `support for CIRC_BW events `_ (:spec:`6f2919a`) * Added `support for CELL_STATS events `_ (:spec:`6f2919a`) * Added `support for TB_EMPTY events `_ (:spec:`6f2919a`) * Added `support for HS_DESC events `_ (:trac:`10807`, :spec:`a67ac4d`) * Changed :func:`~stem.control.Controller.get_network_status` and :func:`~stem.control.Controller.get_network_statuses` to provide :class:`~stem.descriptor.router_status_entry.RouterStatusEntryMicroV3` if Tor is using microdescriptors (:trac:`7646`) * The :func:`~stem.connection.connect_port` and :func:`~stem.connection.connect_socket_file` didn't properly mark the Controller it returned as being authenticated, causing event listening among other things to fail * The :func:`~stem.control.Controller.add_event_listener` method couldn't accept event types that Stem didn't already recognize * The :class:`~stem.exit_policy.ExitPolicy` class couldn't be pickled * Tor instances spawned with :func:`~stem.process.launch_tor` and :func:`~stem.process.launch_tor_with_config` could hang due to unread stdout content, we now close stdout and stderr once tor finishes bootstrapping (:trac:`9862`) * **Descriptors** * Added tarfile support to :func:`~stem.descriptor.__init__.parse_file` (:trac:`10977`) * Added microdescriptor's new identifier and identifier_type attributes (:spec:`22cda72`) * **Utilities** * Added the `stem.util.test_tools `_ module * Started vending the `stem.util.tor_tools `_ module * Added :func:`stem.util.connection.port_usage` * Added :func:`stem.util.system.files_with_suffix` * **Interpreter** * Initial release of our `interactive Tor interpreter `_! * **Website** * Added a section with `example scripts `_. * Made FAQ and other sections quite a bit more succinct. * **Version 1.2.2** (June 7th, 2014) - fixed an issue where the stem.util.conf module would fail under Python 2.6 with an AttributeError (:trac:`12223`) * **Version 1.2.1** (June 3rd, 2014) - fixed an issue where descriptor parsersing would fail under Python 3.x with a TypeError (:trac:`12185`) .. _version_1.1: Version 1.1 (October 14th, 2013) -------------------------------- `Stem release 1.1 `_ introduced `remote descriptor fetching `_, `connection resolution `_ and a myriad of smaller improvements and fixes. * **Controller** * :func:`~stem.control.Controller.get_network_status` and :func:`~stem.control.Controller.get_network_statuses` now provide v3 rather than v2 directory information (:trac:`7953`, :spec:`d2b7ebb`) * :class:`~stem.response.events.AddrMapEvent` support for the new CACHED argument (:trac:`8596`, :spec:`25b0d43`) * :func:`~stem.control.Controller.attach_stream` could encounter an undocumented 555 response (:trac:`8701`, :spec:`7286576`) * :class:`~stem.descriptor.server_descriptor.RelayDescriptor` digest validation was broken when dealing with non-unicode content with Python 3 (:trac:`8755`) * The :class:`~stem.control.Controller` use of cached content wasn't thread safe (:trac:`8607`) * Added :func:`~stem.control.Controller.get_user` method to the :class:`~stem.control.Controller` * Added :func:`~stem.control.Controller.get_pid` method to the :class:`~stem.control.Controller` * :class:`~stem.response.events.StreamEvent` didn't recognize IPv6 addresses (:trac:`9181`) * :func:`~stem.control.Controller.get_conf` mistakenly cached hidden service related options (:trac:`9792`) * Added `support for TRANSPORT_LAUNCHED events `_ (:spec:`48f6dd0`) * **Descriptors** * Added the `stem.descriptor.remote `_ module. * Added support for `TorDNSEL exit lists `_ (:trac:`8255`) * The :class:`~stem.descriptor.reader.DescriptorReader` mishandled relative paths (:trac:`8815`) * **Utilities** * Connection resolution via the :func:`~stem.util.connection.get_connections` function (:trac:`7910`) * :func:`~stem.util.system.set_process_name` inserted spaces between characters (:trac:`8631`) * :func:`~stem.util.system.pid_by_name` can now pull for all processes with a given name * :func:`~stem.util.system.call` ignored the subprocess' exit status * Added :func:`stem.util.system.name_by_pid` * Added :func:`stem.util.system.user` * Added :func:`stem.util.system.start_time` * Added :func:`stem.util.system.bsd_jail_path` * Added :func:`stem.util.system.is_tarfile` * Added :func:`stem.util.connection.is_private_address` * **Website** * Overhaul of Stem's `download page `_. This included several improvements, most notably the addition of PyPI, Ubuntu, Fedora, Slackware, and FreeBSD. * Replaced default sphinx header with a navbar menu. * Added this change log. * Added the `FAQ page `_. * Settled on a `logo `_ for Stem. * Expanded the `client usage tutorial `_ to cover SocksiPy and include an example for polling Twitter. * Subtler buttons for the frontpage (`before `_ and `after `_). * **Version 1.1.1** (November 9th, 2013) - fixed an issue where imports of stem.util.system would fail with an ImportError for pwd under Windows (:trac:`10072`) .. _version_1.0: Version 1.0 (March 26th, 2013) ------------------------------ This was the `initial release of Stem `_. * **Version 1.0.1** (March 27th, 2013) - fixed an issue where installing with Python 3.x (python3 setup.py install) resulted in a stacktrace ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/conf.py0000644000175000017510000001721300000000000013445 0ustar00useruser# -*- coding: utf-8 -*- # # Stem documentation build configuration file, created by # sphinx-quickstart on Thu May 31 09:56:13 2012. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) sys.path.append(os.path.abspath('.')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. needs_sphinx = '1.1' # required for the sphinx-apidoc command # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'roles'] autodoc_member_order = 'bysource' autodoc_default_flags = ['members', 'show-inheritance', 'undoc-members'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' from stem import __version__, __author__, __contact__ # Ignore the '-dev' version suffix. if __version__.endswith('-dev'): __version__ = __version__[:-4] # General information about the project. project = 'Stem' copyright = '2012, %s' % __author__ # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = __version__[:__version__.rfind(".")] # The full version, including alpha/beta/rc tags. release = __version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # The reST default role (used for this markup: `text`) to use for all documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Options for HTML output --------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. #html_theme = 'default' html_theme = 'haiku' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. html_short_title = 'Stem Docs' # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = '_static/logo.png' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = '_static/favicon.png' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = False # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. html_show_sourcelink = False # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. html_show_sphinx = False # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. html_show_copyright = False # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'Stemdoc' # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ ('index', 'Stem.tex', 'Stem Documentation', 'Damian Johnson', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Additional stuff for the LaTeX preamble. #latex_preamble = '' # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output -------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('index', 'stem', 'Stem Documentation', ['%s (%s)' % (__author__, __contact__)], 1) ] trac_url = 'https://trac.torproject.org/{slug}' spec_url = 'https://gitweb.torproject.org/torspec.git/commit/?id={slug}' def skip_members(app, what, name, obj, skip, options): if name in ('ATTRIBUTES', 'PARSER_FOR_LINE'): return True # skip the descriptor's parser constants def setup(app): app.connect('autodoc-skip-member', skip_members) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/contents.rst0000644000175000017510000000307000000000000014531 0ustar00useruser.. _contents: Contents ======== .. toctree:: :maxdepth: 2 tutorials tutorials/the_little_relay_that_could tutorials/to_russia_with_love tutorials/tortoise_and_the_hare tutorials/mirror_mirror_on_the_wall tutorials/over_the_river tutorials/east_of_the_sun tutorials/down_the_rabbit_hole tutorials/double_double_toil_and_trouble tutorials/examples/bandwidth_stats tutorials/examples/check_digests tutorials/examples/compare_flags tutorials/examples/download_descriptor tutorials/examples/exit_used tutorials/examples/list_circuits tutorials/examples/relay_connections tutorials/examples/outdated_relays tutorials/examples/persisting_a_consensus tutorials/examples/votes_by_bandwidth_authorities change_log download faq api api/control api/connection api/directory api/socket api/process api/response api/exit_policy api/manual api/version api/descriptor/bandwidth_file api/descriptor/certificate api/descriptor/collector api/descriptor/descriptor api/descriptor/server_descriptor api/descriptor/extrainfo_descriptor api/descriptor/microdescriptor api/descriptor/networkstatus api/descriptor/router_status_entry api/descriptor/hidden_service api/descriptor/tordnsel api/descriptor/export api/descriptor/reader api/descriptor/remote api/util/init api/util/conf api/util/connection api/util/enum api/util/log api/util/proc api/util/str_tools api/util/system api/util/term api/util/test_tools api/util/tor_tools ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/download.rst0000644000175000017510000001566000000000000014513 0ustar00useruserDownload ======== .. Image Sources: * PyPI Source: http://www.python.org/community/logos/ License: http://www.python.org/psf/trademarks * OSX Source: IconArchive (http://www.iconarchive.com/show/papercut-social-icons-by-graphicloads/Apple-icon.html) Author: GraphicLoads, Papercut Social Icons License: Freeware * Debian Source: NuoveXT (http://nuovext.pwsp.net/) Author: Alexandre Moore (http://sa-ki.deviantart.com/) License: GPL v2 File: NuoveXT/128x128/apps/debian-logo.png * Ubuntu Source: http://logonoid.com/ubuntu-logo/ Not quite sure of the license, probably covered by... http://design.ubuntu.com/brand/ubuntu-logo * Fedora Source: https://en.wikipedia.org/wiki/File:Fedora_logo_and_wordmark.svg Author: Unknown * Red Hat Source: NuoveXT (http://nuovext.pwsp.net/) Author: Alexandre Moore (http://sa-ki.deviantart.com/) License: GPL v2 File: NuoveXT/128x128/apps/fedora.png * Gentoo Source: https://www.gentoo.org/main/en/name-logo.xml * Arch Linux Source: https://en.wikipedia.org/wiki/File:Archlinux-official-fullcolour.svg * Slackware Source: NuoveXT (http://nuovext.pwsp.net/) Author: Alexandre Moore (http://sa-ki.deviantart.com/) License: GPL v2 File: NuoveXT/128x128/apps/slackware.png * FreeBSD Source: https://en.wikipedia.org/wiki/File:Freebsd_logo.svg Author: Anton Gural * OpenBSD Source: NuoveXT (http://nuovext.pwsp.net/) Author: Alexandre Moore (http://sa-ki.deviantart.com/) License: GPL v2 File: NuoveXT/128x128/apps/openbsd.png * NetBSD Source: https://www.netbsd.org/gallery/logos.html License: https://www.netbsd.org/about/redistribution.html * Git Source: https://en.wikipedia.org/wiki/File:Git-logo.svg Author: Jason Long License: CC v3 (A) * Git (Alternate) Source: http://www.dylanbeattie.net/git_logo/ Author: Dylan Beattie License: CC v3 (A, SA) .. list-table:: :widths: 1 10 :header-rows: 0 * - .. image:: /_static/section/download/pypi.png :target: https://pypi.org/project/stem/ - .. image:: /_static/label/python_package_index.png :target: https://pypi.org/project/stem/ Signed releases and instructions for both Python 2.x and 3.x. You can easily install from its `tarball `_ (``sha256 81d43a7c668ba9d7bc1103b2e7a911e9d148294b373d27a59ae8da79ef7a3e2f``) (`sig `_) or with **pip**... :: % sudo easy_install pip % sudo pip install stem * - .. image:: /_static/section/download/osx.png - .. image:: /_static/label/osx.png As of OSX 10.8 the platform bundles Python 2.7 by default. This makes installation easy... :: % sudo easy_install pip % sudo pip install stem * - .. image:: /_static/section/download/debian.png :target: https://packages.debian.org/sid/python-stem - .. image:: /_static/label/debian.png :target: https://packages.debian.org/sid/python-stem Packages by Dererk for Debian, including `python-stem `_ (for Python 2.x) and `python3-stem `_ (for Python 3.x). :: % sudo apt-get install python-stem * - .. image:: /_static/section/download/ubuntu.png :target: https://launchpad.net/ubuntu/+source/python-stem - .. image:: /_static/label/ubuntu.png :target: https://launchpad.net/ubuntu/+source/python-stem Package derived from Debian for Ubuntu. :: % sudo apt-get install python-stem * - .. image:: /_static/section/download/fedora.png :target: https://apps.fedoraproject.org/packages/python-stem - .. image:: /_static/label/fedora.png :target: https://apps.fedoraproject.org/packages/python-stem Packages maintained by Juan for Fedora using **dnf** or **yum**. These include **python-stem** (for Python 2.x), **python3-stem** (for Python 3.x), and **python-stem-doc** (this website). :: % sudo dnf install python-stem * - .. image:: /_static/section/download/gentoo.png :target: http://packages.gentoo.org/package/net-libs/stem - .. image:: /_static/label/gentoo.png :target: http://packages.gentoo.org/package/net-libs/stem Package by Anthony Basile for Gentoo. :: % sudo emerge stem * - .. image:: /_static/section/download/archlinux.png :target: https://www.archlinux.org/packages/community/any/python-stem/ - .. image:: /_static/label/archlinux.png :target: https://www.archlinux.org/packages/community/any/python-stem/ Package by Sjon for `Arch Linux `_. :: % pacman -S python-stem * - .. image:: /_static/section/download/slackware.png :target: https://slackbuilds.org/repository/14.2/python/stem/ - .. image:: /_static/label/slackware.png :target: https://slackbuilds.org/repository/14.2/python/stem/ Package by Markus for `Slackware `_. * - .. image:: /_static/section/download/freebsd.png :target: http://www.freshports.org/security/py-stem/ - .. image:: /_static/label/freebsd.png :target: http://www.freshports.org/security/py-stem/ Port by Carlo for `FreeBSD `_. :: % pkg install security/py-stem * - .. image:: /_static/section/download/openbsd.png :target: http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/net/py-stem/ - .. image:: /_static/label/openbsd.png :target: http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/net/py-stem/ Port by pascal for OpenBSD. :: % pkg_add py3-stem * - .. image:: /_static/section/download/netbsd.png :target: http://pkgsrc.se/net/py-stem - .. image:: /_static/label/netbsd.png :target: http://pkgsrc.se/net/py-stem Port by Riastradh for NetBSD. :: % pkg_add py37-stem * - .. image:: /_static/section/download/git.png :target: https://gitweb.torproject.org/stem.git - .. image:: /_static/label/source_repository.png :target: https://gitweb.torproject.org/stem.git For those wanting to live on the bleeding edge or contribute to Stem, Stem's git repository can be fetched with... :: % git clone https://git.torproject.org/stem.git ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/faq.rst0000644000175000017510000006055200000000000013453 0ustar00useruserFrequently Asked Questions ========================== * **General Information** * :ref:`what_is_stem` * :ref:`does_stem_have_any_dependencies` * :ref:`what_python_versions_is_stem_compatible_with` * :ref:`can_i_interact_with_tors_controller_interface_directly` * :ref:`are_there_any_other_controller_libraries` * :ref:`what_license_is_stem_under` * :ref:`where_can_i_get_help` * **Usage** * :ref:`how_do_i_connect_to_tor` * :ref:`how_do_i_request_a_new_identity_from_tor` * :ref:`how_do_i_reload_my_torrc` * :ref:`how_do_i_read_tar_xz_descriptor_archives` * :ref:`what_is_that_with_keyword_i_keep_seeing_in_the_tutorials` * **Development** * :ref:`how_do_i_get_started` * :ref:`how_do_i_run_the_tests` * :ref:`how_do_i_test_compatibility_with_multiple_python_versions` * :ref:`how_do_i_build_the_site` * :ref:`what_is_the_copyright_for_patches` General Information =================== .. _what_is_stem: What is Stem? ------------- Stem is a Python controller library that you can use to interact with `Tor `_. With it you can write scripts and applications with capabilities similar `Nyx `_. From a technical standpoint, Stem is a Python implementation of Tor's `directory `_ and `control specifications `_. `To get started see our tutorials! `_ .. _does_stem_have_any_dependencies: Does Stem have any dependencies? -------------------------------- **No.** All you need in order to use Stem is Python. When it is available Stem will use `cryptography `_ to validate descriptor signatures. However, there is no need to install cryptography unless you need this functionality. Note that if cryptography installation fails with... :: build/temp.linux-i686-2.7/_openssl.c:18:20: fatal error: Python.h: No such file or directory compilation terminated. error: command 'gcc' failed with exit status 1 ... or... :: No package 'libffi' found c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory compilation terminated. You need the python-dev and libffi-dev packages. For instance on Debian and Ubuntu you can install these with... :: % sudo apt-get install python-dev libffi-dev % sudo pip install cryptography .. _what_python_versions_is_stem_compatible_with: What Python versions is Stem compatible with? --------------------------------------------- Stem works with **Python 2.6 and greater**, including the Python 3.x series. .. _can_i_interact_with_tors_controller_interface_directly: Can I interact with Tor's controller interface directly? -------------------------------------------------------- Yup. You don't need a library to interact with Tor's `controller interface `_, and interacting with it directly is a great way to learn about what it can do. The exact details for how you connect to Tor depend on two things... * Where is Tor listening for controller connections? This is specified by either the **ControlPort** or **ControlSocket** option in your torrc. If you have neither then Tor will not accept controller connections. * What type of authentication is Tor's controller interface using? This is defined by your **CookieAuthentication** or **HashedControlPassword** option. If you have neither then Tor does not restrict access. We'll tackle each of these scenarios one at a time... **I'm using a ControlPort** ~~~~~~~~~~~~~~~~~~~~~~~~~~~ If you are using a **ControlPort** then the easiest method of talking with Tor is via **telnet**. You always need to authenticate after connecting, even if Tor does not restrict access. If your torrc doesn't have a **CookieAuthentication** or **HashedControlPassword** then to authenticate you will simply call **AUTHENTICATE** after connecting without any credentials. :: % cat ~/.tor/torrc ControlPort 9051 % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host. **I'm using a ControlSocket** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A **ControlSocket** is a file based socket, so we'll use **socat** to connect to it... :: % cat ~/.tor/torrc ControlSocket /home/atagar/.tor/socket % socat UNIX-CONNECT:/home/atagar/.tor/socket STDIN AUTHENTICATE 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection **I'm using cookie authentication** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Cookie authentication simply means that your credential is the content of a file in Tor's **DataDirectory**. You can learn information about Tor's method of authentication (including the cookie file's location) by calling **PROTOCOLINFO**... :: % cat ~/.tor/torrc ControlPort 9051 CookieAuthentication 1 % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. PROTOCOLINFO 250-PROTOCOLINFO 1 250-AUTH METHODS=COOKIE,SAFECOOKIE COOKIEFILE="/home/atagar/.tor/control_auth_cookie" 250-VERSION Tor="0.2.5.1-alpha-dev" 250 OK Cookie authentication has two flavors: **COOKIE** and **SAFECOOKIE**. First we will demonstrate **COOKIE** authentication which is quite a bit simpler, though Stem supports both transparently. To get the credential for your AUTHENTICATE command we will use **hexdump**... :: % hexdump -e '32/1 "%02x""\n"' /home/atagar/.tor/control_auth_cookie be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254 % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host. **I'm using safe cookie authentication** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Password and cookie authentication both disclose your credential. This makes you vulnerable to replay attacks if you accidently connect to a malicious port or have a man-in-the-middle. **SAFECOOKIE** authentication avoids this through a two way handshake, but authenticating by hand requires some extra work. This demonstration will use **xxd** for hex conversion and **openssl** for crypto. First we need to call **AUTHCHALLENGE** with a random one-time token... :: % CookieString="$(xxd -u -p -c32 < /home/atagar/.tor/control_auth_cookie)" % ClientNonce="$(xxd -u -p -l32 -c32 < /dev/urandom)" % printf '%s\n' "${ClientNonce}" 9C653314CC4CC2C695999CE84EB1B0045E3D59B6AFFE615D624DB4870DD7041E % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHCHALLENGE SAFECOOKIE 9C653314CC4CC2C695999CE84EB1B0045E3D59B6AFFE615D624DB4870DD7041E 250 AUTHCHALLENGE SERVERHASH=16274D83FC2240DF9D50D74009D9AE107B77EA317F0034D3638C7942F350D1F9 SERVERNONCE=1C2E73C41FA8537FDD3A59C2ECBE26DFC85E0A05389373AD8C130C0F5795A036 In another terminal prompt next combine the server challenge with our cookie content. This token will prove to Tor that we have our authentication cookie without divulging its content... :: % ServerNonce="1C2E73C41FA8537FDD3A59C2ECBE26DFC85E0A05389373AD8C130C0F5795A036" % printf '%s%s%s\n' "${CookieString}" "${ClientNonce}" "${ServerNonce}" | xxd -r -p \ > | openssl dgst -sha256 -binary -hmac "Tor safe cookie authentication controller-to-server hash" \ > | xxd -p -u -c32 A733E09A65E2A6030BF6710D800370FC3AD28E1D2545E1692D160545D93CEE68 We can now authenticate using this token... :: AUTHENTICATE A733E09A65E2A6030BF6710D800370FC3AD28E1D2545E1692D160545D93CEE68 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host. **I'm using password authentication** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tor's other method of authentication is a credential you know. To use it ask Tor to hash your password, then use that in your torrc... :: % tor --hash-password "my_password" 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF Authenticating with this simply involves giving Tor the credential... :: % cat ~/.tor/torrc ControlPort 9051 HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE "my_password" 250 OK GETINFO version 250-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc) 250 OK QUIT 250 closing connection Connection closed by foreign host. .. _are_there_any_other_controller_libraries: Are there any other controller libraries? ----------------------------------------- Yup. The most mature controller libraries are written in Python, but there's a few options in other languages as well. By far the most mature alternative to Stem are `Txtorcon `_ and `TorCtl `_. `Txtorcon `_ is an actively maintained controller library written by Meejah for `Twisted `_. `TorCtl `_ was Stem's predecessor and `deprecated in December 2012 `_ in favor of Stem. Though no longer actively developed, it's still quite functional and still used for several `TorFlow `_ based projects. For PHP `TorUtils `_ supports a wide range of controller functionality. For examples of its usage see `Drew's tor-nodes `_ and `Open Internet `_. The following are the functional controller libraries I'm aware of. Dates are for highly active development. If I missed one then please `let me know `_! ================================================================== ================ ======================= Library Language Developed ================================================================== ================ ======================= `Stem `_ Python October 2011 - Present `Txtorcon `_ Python (Twisted) February 2012 - Present `TorCtl `_ Python July 2008 - November 2011 `TorUtils `_ PHP October 2015 - Present `Puccinia `_ Rust October 2015 - July 2017 `PHP TorCtl `_ PHP February 2013 `JTorCtl `_ Java June 2005 - May 2009 `Bine `_ Go May 2018 `Orc `_ Go January 2015 `Bulb `_ Go March 2015 `Rust Controller `_ Rust May 2016 ================================================================== ================ ======================= .. _what_license_is_stem_under: What license is Stem under? --------------------------- Stem is under the `LGPLv3 `_. .. _where_can_i_get_help: Where can I get help? --------------------- Do you have a Tor related question or project that you would like to discuss? If so then find us on the `tor-dev@ email list `_ and `IRC `_. Usage ===== .. _how_do_i_connect_to_tor: How do I connect to Tor? ------------------------ Once you have Tor running and `properly configured `_ you have a few ways of connecting to it. The following are the most common methods for getting a :class:`~stem.control.Controller` instance, from the highest to lowest level... #. `Connection Module `_ Writing a commandline script? Then the :func:`~stem.connection.connect` function provide you the quickest and most hassle free method for getting a :class:`~stem.control.Controller`. This function connects and authenticates to the given port or socket, providing you a one-line method of getting a :class:`~stem.control.Controller` that's ready to use. If Tor requires a password then the user will be prompted for it. When the connection cannot be established this prints a description of the problem to stdout and returns **None**. #. `Control Module `_ The connection module helpers above are all well and good when you need a quick-and-dirty connection for your commandline script, but they're inflexible. In particular their lack of exceptions and direct use of stdin/stdout make them undesirable for more complicated situations. That's where the Controller's :func:`~stem.control.Controller.from_port` and :func:`~stem.control.Controller.from_socket_file` methods come in. These provide the most flexible method of connecting to Tor, and for sophisticated applications is what you'll want. #. `Socket Module `_ For the diehards among us you can skip the conveniences of a high level :class:`~stem.control.Controller` and work directly with the raw components. At Stem's lowest level your connection with Tor is a :class:`~stem.socket.ControlSocket` subclass. This provides methods to send, receive, disconnect, and reconnect to Tor. .. _how_do_i_request_a_new_identity_from_tor: How do I request a new identity from Tor? ----------------------------------------- In Tor your identity is the three-hop **circuit** over which your traffic travels through the Tor network. Tor periodically creates new circuits. When a circuit is used it becomes **dirty**, and after ten minutes new connections will not use it. When all of the connections using an expired circuit are done the circuit is closed. An important thing to note is that a new circuit does not necessarily mean a new IP address. Paths are randomly selected based on heuristics like speed and stability. There are only so many large exits in the Tor network, so it's not uncommon to reuse an exit you have had previously. Tor does not have a method for cycling your IP address. This is on purpose, and done for a couple reasons. The first is that this capability is usually requested for not-so-nice reasons such as ban evasion or SEO. Second, repeated circuit creation puts a very high load on the Tor network, so please don't! With all that out of the way, how do you create a new circuit? You can customize the rate at which Tor cycles circuits with the **MaxCircuitDirtiness** option in your `torrc `_. `Vidalia `_ and `Nyx `_ both provide a method to request a new identity, and you can do so programmatically by sending Tor a NEWNYM signal. To do this with telnet... :: % telnet localhost 9051 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. AUTHENTICATE 250 OK SIGNAL NEWNYM 250 OK And with Stem... :: from stem import Signal from stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() controller.signal(Signal.NEWNYM) .. _how_do_i_reload_my_torrc: How do I reload my torrc? ------------------------- Tor is configured through its `torrc `_. When you edit this file you need to either restart Tor or issue a **HUP** for the changes to be reflected. To issue a HUP you can either... * Run **pkill -sighup tor**. * Send Tor a **HUP** signal through its control port... :: from stem import Signal from stem.control import Controller with Controller.from_port(port = 9051) as controller: controller.authenticate() controller.signal(Signal.HUP) .. _how_do_i_read_tar_xz_descriptor_archives: How do I read \*.tar.xz descriptor archives? -------------------------------------------- Stem's :func:`~stem.descriptor.__init__.parse_file` and :class:`~stem.descriptor.reader.DescriptorReader` can read plaintext descriptors and tarballs. However, `metrics uses *.xz compression `_. Python 3.3 adds builtin xz support, but if you're using an earlier version of python you will need to decompress the archives yourself. With modern versions of tar you can simply decompress archives via **tar xf archive.tar.xz**, or programmatically using `lzma `_. .. _what_is_that_with_keyword_i_keep_seeing_in_the_tutorials: What is that 'with' keyword I keep seeing in the tutorials? ----------------------------------------------------------- Python's `with `_ keyword is shorthand for a try/finally block. With a :class:`~stem.control.Controller` the following... .. code-block:: python with Controller.from_port(port = 9051) as controller: # do my stuff ... is equivalent to... .. code-block:: python controller = Controller.from_port(port = 9051) try: # do my stuff finally: controller.close() This helps to make sure that regardless of if your code raises an exception or not the control connection will be cleaned up afterward. Note that this means that if you leave the 'with' scope your :class:`~stem.control.Controller` will be closed. The following for instance is a bug common when first learning Stem... :: class BandwidthReporter(object): def __init__(self, controller): self.controller = controller def print_bandwidth(self): bytes_read = self.controller.get_info("traffic/read") bytes_written = self.controller.get_info("traffic/written") print "My Tor relay has read %s bytes and written %s." % (bytes_read, bytes_written) if __name__ == '__main__': with Controller.from_port(port = 9051) as controller: reporter = BandwidthReporter(controller) # The following line is broken because the 'controller' we initialised # above was disconnected once we left the 'with' scope. To fix this the # print_bandwidth() call should be in the 'with' block. reporter.print_bandwidth() Development =========== .. _how_do_i_get_started: How do I get started? --------------------- The best way of getting involved with any project is to jump right in! Our `bug tracker `_ lists several development tasks. In particular look for the 'easy' keyword when getting started. If you have any questions then I'm always more than happy to help! I'm **atagar** on `oftc `_ and also available `via email `_. To start hacking on Stem please do the following and don't hesitate to let me know if you get stuck or would like to discuss anything! #. Clone our `git `_ repository: **git clone https://git.torproject.org/stem.git** #. Get our test dependencies: **sudo pip install mock pycodestyle pyflakes**. #. Find a `bug or feature `_ that sounds interesting. #. When you have something that you would like to contribute back do the following... * If you don't already have a publicly accessible Stem repository then set one up. `GitHub `_ in particular is great for this. * File a `trac ticket `_, the only fields you'll need are... * Summary: short description of your change * Description: longer description and a link to your repository with either the git commits or branch that has your change * Type: 'defect' if this is a bug fix and 'enhancement' otherwise * Priority: rough guess at the priority of your change * Component: Core Tor / Stem * I'll review the change and give suggestions. When we're both happy with it I'll push your change to the official repository. .. _how_do_i_run_the_tests: How do I run the tests? ----------------------- Stem has three kinds of tests: **unit**, **integration**, and **static**. **Unit** tests are our most frequently ran tests. They're quick, they're easy, and provide good test coverage... :: ~$ cd stem/ ~/stem$ ./run_tests.py --unit **Integration** tests start a live Tor instance and test against that. This not only provides additional test coverage, but lets us check our continued interoperability with new releases of Tor. Running these require that you have `Tor installed `_. You can exercise alternate Tor configurations with the ``--target`` argument (see ``run_tests.py --help`` for a list of its options). :: ~/stem$ ./run_tests.py --integ ~/stem$ ./run_tests.py --integ --tor /path/to/tor ~/stem$ ./run_tests.py --integ --target RUN_COOKIE **Static** tests use `pyflakes `_ to do static error checking and `pycodestyle `_ for style checking. If you have them installed then they automatically take place as part of all test runs. See ``run_tests.py --help`` for more usage information. .. _how_do_i_test_compatibility_with_multiple_python_versions: How can I test compatibility with multiple python versions? ----------------------------------------------------------- Stem supports python versions 2.6 and above, including the 3.x series. You can test all versions of python you currently have installed on your system with `tox `_. If you're using a Debian based system this can be as simple as... :: ~/stem$ sudo apt-get install python-tox python2.7 python3.3 python-dev python3-dev ~/stem$ tox ... ____ summary _____ SKIPPED: py26: InterpreterNotFound: python2.6 py27: commands succeeded SKIPPED: py32: InterpreterNotFound: python3.2 py33: commands succeeded SKIPPED: py34: InterpreterNotFound: python3.4 SKIPPED: py35: InterpreterNotFound: python3.5 SKIPPED: py36: InterpreterNotFound: python3.6 SKIPPED: py37: InterpreterNotFound: python3.7 SKIPPED: jython: InterpreterNotFound: jython SKIPPED: pypy: InterpreterNotFound: pypy congratulations :) Tox fetches Stem's dependencies for each version of python. One of these dependencies is pycrypto which requires **python-dev** (or **python3-dev** if testing with python3). Tox also allows you to customize the underlying commands and environments. For example... :: # run the tests with just python 2.6 ~/stem$ tox -e py26 # pass arguments to 'run_tests.py' ~/stem$ tox -e py26 -- -u --test response.events .. _how_do_i_build_the_site: How do I build the site? ------------------------ If you have `Sphinx `_ version 1.1 or later installed then building our site is as easy as... :: ~$ cd stem/docs ~/stem/docs$ make html When it's finished you can direct your browser to the *_build* directory with a URI similar to... :: file:///home/atagar/stem/docs/_build/html/index.html .. _what_is_the_copyright_for_patches: What is the copyright for patches? ---------------------------------- Stem is under the LGPLv3 which is a fine license, but poses a bit of a problem for sharing code with our other projects (which are mostly BSD). To share code without needing to hunt down prior contributors we need Tor to have the copyright for the whole Stem codebase. Presently the copyright of Stem is jointly held by its main author (`Damian `_) and the `Tor Project `_. If you submit a substantial patch I'll ask if you're fine with it being in the public domain. This would mean that there are no legal restrictions for using your contribution, and hence won't pose a problem if we reuse Stem code in other projects. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/index.rst0000644000175000017510000000554300000000000014012 0ustar00useruserWelcome to Stem! ================ .. NOTE:: Stem is mostly unmaintained. However, you can still: * Open issues at https://github.com/torproject/stem/issues * Work on an issue and open a pull request at https://github.com/torproject/stem/pulls * Contact us (via tor-dev mailing list or gk at torproject dot org) to request a new bugfix release including some patches in the Stem's `master` branch or pull requests. Stem is a Python controller library for `Tor `_. With it you can use Tor's `control protocol `_ to script against the Tor process, or build things such as `Nyx `_. Stem's latest version is **1.8.1** (released September, 2022). * :ref:`contents` * :ref:`modindex` * :ref:`search` .. Main Stem Logo Source: http://www.wpclipart.com/plants/assorted/P/plant_stem.png.html Author: Jakub Jankiewicz License: Public Domain (http://www.wpclipart.com/legal.html#terms) Alternate: Source: http://andreajoseph24.blogspot.com/search/label/onions Author: Andrea Joseph License: CCv3 (NC, ND) - http://creativecommons.org/licenses/by-nc-nd/3.0/ .. Source: NuoveXT 2 (http://nuovext.pwsp.net/) Author: Alexandre Moore (http://sa-ki.deviantart.com/) License: LGPL v3 File: NuoveXT 2.2/128x128/categories/applications-development.png .. image:: /_static/buttons/tutorials.png :target: tutorials.html .. Source: http://www.cipherdyne.com/images/anvil.png Author and license are unknown .. image:: /_static/buttons/api.png :target: api.html .. Source: https://openclipart.org/detail/171951/help-by-diamonjohn-171951 Author: John Diamond (https://openclipart.org/user-detail/diamonjohn) License: Public Domain Alternate: Source: Oxygen (http://www.oxygen-icons.org/) Author: Andrea Joseph License: CCv3 (A, SA) - http://creativecommons.org/licenses/by-sa/3.0/ File: Oxygen/128x128/categories/system-help.png .. image:: /_static/buttons/faq.png :target: faq.html .. Source: Nuovo (http://www.silvestre.com.ar/?p=5) Author: Silvestre Herrera (http://www.silvestre.com.ar/) License: GPL v2 File: Nuovo/128x128/mimetypes/gnome-mime-text-log.png .. image:: /_static/buttons/change_log.png :target: change_log.html .. Source: Crystal (http://www.everaldo.com/crystal/) Author: Everaldo Coelho (http://www.everaldo.com/) License: LGPL v2 File: Crystal/64x64/apps/bug.png .. image:: /_static/buttons/bug_tracker.png :target: https://github.com/torproject/stem/issues/ .. Source: ColorCons (http://mouserunner.com/Spheres_ColoCons1_Free_Icons.html) Author: Ken Saunders (http://mouserunner.com/MRDS_Cell.html) License: CC v2.5 (A, SA) File: ColorCons/Blue/Download.png .. image:: /_static/buttons/download.png :target: download.html .. toctree:: :maxdepth: 1 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/roles.py0000644000175000017510000000522000000000000013637 0ustar00useruserimport re from docutils.utils import unescape from docutils.nodes import reference from docutils.parsers.rst.roles import set_classes def role_trac(name, rawtext, text, lineno, inliner, options={}, content=[]): """ Aliases :trac:`1234` to 'https://trac.torproject.org/1234'. :param name: the role name used in the document :param rawtext: the entire markup snippet, with role :param text: the text marked with the role :param lineno: the line number where rawtext appears in the input :param inliner: the inliner instance that called us :param options: directive options for customization :param content: the directive content for customization """ # checking if the number is valid try: ticket_num = int(text) if ticket_num <= 0: raise ValueError except ValueError: msg = inliner.reporter.error('Invalid trac ticket: %s' % text, line=lineno) prb = inliner.problematic(rawtext, rawtext, msg) return ([prb], [msg]) app = inliner.document.settings.env.app link_text = 'ticket %s' % unescape(str(ticket_num)) return ( [make_link_node(rawtext, app, 'trac_url', link_text, str(ticket_num), options)], [], ) def role_spec(name, rawtext, text, lineno, inliner, options={}, content=[]): """ Aliases :spec:`25b0d43` to 'https://gitweb.torproject.org/torspec.git/commit/?id=25b0d43'. """ # checking if the input is a valid short commit id if not re.match('^[0-9a-f]{7}$', text): msg = inliner.reporter.error('Spec tag expects a short commit id (seven hex characters): %s' % text, line=lineno) prb = inliner.problematic(rawtext, rawtext, msg) return ([prb], [msg]) app = inliner.document.settings.env.app return ( [make_link_node(rawtext, app, 'spec_url', 'spec', text, options)], [], ) def make_link_node(rawtext, app, url_type, link_text, slug, options): """ Creates a link to a trac ticket. :param rawtext: text being replaced with link node :param app: sphinx application context :param url_type: base for our url :param link_text: text for the link :param slug: ID of the thing to link to :param options: options dictionary passed to role func """ base_url = getattr(app.config, url_type, None) if not base_url: raise ValueError("'%s' isn't set in our config" % url_type) ref = base_url.format(slug = slug) set_classes(options) return reference(rawtext, link_text, refuri = ref, **options) def setup(app): """ Installs the plugin. :param app: sphinx application context """ app.add_role('trac', role_trac) app.add_config_value('trac_url', None, 'env') app.add_role('spec', role_spec) app.add_config_value('spec_url', None, 'env') ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0596662 stem-1.8.2/docs/tutorials/0000755000175000017510000000000000000000000014170 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/double_double_toil_and_trouble.rst0000644000175000017510000002065700000000000023145 0ustar00useruserDouble Double Toil and Trouble ============================== Below is a listing of scripts and applications that use Stem. If you have something you would like to have included on this page then `let me know `_! Applications ============ .. Image Sources: * Nyx Source: Oxygen (http://www.oxygen-icons.org/) License: CC v3 (A, SA) File: apps/utilities-system-monitor.png * Doctor Source: https://openclipart.org/detail/29839/stethoscope-by-metalmarious License: Public Domain * Exit Map Source: https://openclipart.org/detail/120607/treasure-map-by-tzunghaor License: Public Domain .. list-table:: :widths: 1 10 :header-rows: 0 * - .. image:: /_static/nyx.png :target: https://nyx.torproject.org/ - .. image:: /_static/label/nyx.png :target: https://nyx.torproject.org/ Terminal status monitor for Tor. This provides a top like interface including system resource usage, connection information, and much more. * - .. image:: /_static/doctor.png :target: https://gitweb.torproject.org/doctor.git/tree - .. image:: /_static/label/doctor.png :target: https://gitweb.torproject.org/doctor.git/tree Monitors the Tor consensus for a variety of issues including malformed descriptors, directory authority issues, sybil attacks, and much more. * - .. image:: /_static/exit_map.png :target: http://www.cs.kau.se/philwint/spoiled_onions/ - .. image:: /_static/label/exit_map.png :target: http://www.cs.kau.se/philwint/spoiled_onions/ Scanner by Philipp Winter to detect malicious and misconfigured Tor exits. For more information about how it works see his `Spoiled Onions `_ research paper. =========================================================================================================== ========== `OnionLauncher `_ Qt interface for launching tor. `TorNova `_ GTK interface for launching tor. `BeagleBone for Secret Agents `_ Bridge with a `bandwidth monitor `_ on a BeagleBoard. `NavigaTor `_ Measures round-trip times for Tor circuits. `TorPS `_ Tor path simulator. `Metrics Tasks `_ One-off tasks related to Tor metrics. These mostly involve using descriptor information to answer a particular question. Tasks that involve Stem are: `1854 `_, `6232 `_, and `7241 `_. `Onion Box `_ Web dashboard for relay operation. `check_tor `_ Nagios check to verify that a relay is participating in the Tor network. `munin-tor `_ Plugin to provide Munin graphs. `tbbscraper `_ Automated website scraper over Tor. `torIRC `_ IRC-like chat client using Tor hidden services. `exit-funding `_ Script to estimate how much exit relays have been used. `torsearch `_ Search engine prototype for descriptor data. `or-applet `_ GUI widget to provide circuit information and an interactive interpreter. `Vanguard `_ Experimental hidden service security additions `OnionBalance `_ Tool for making distributed hidden service requests. `OnionPerf `_ Measures onion service performance over time using customizable client behavior models. `OnioNS `_ Distributed DNS for hidden services. `OnionShare `_ Hidden service based file sharing application. `OnionView `_ GTK interface for viewing circuit information. `OnionCircuits `_ GTK interface for viewing circuit information. `Syboa `_ GTK interface similar to `TorK `_. `hs-health `_ Experiment to measure churn and reachability of hidden services. `trnnr `_ Python implementation of tor's nearest neighbour ranking. `TorTP `_ Configures iptables to torify all traffic. `BWScanner `_ Measurements for the tor bandwidth authorities. Interesting example of txtorcon and stem being used together. `Bushel `_ Command-line descriptor download tools `blockstack-tor `_ Tor integration for `Blockstack `_ =========================================================================================================== ========== Scripts ======= Client Usage ------------ * `List Circuits `_ List the path Tor uses for its present circuits. * `Determine The Exit You're Using `_ Tells you the exit used for each Tor connection. Relays ------ * `Connection Summary `_ Provides a summary of your inbound and outbound connections and exiting usage. Descriptors ----------- * `Download Descriptors `_ Download a descriptor from a Tor relay's ORPort or DirPort. * `List Outdated Relays `_ Prints contact information for relays prior to a given version. * `Comparing Directory Authority Flags `_ Compares the votes of two directory authorities, in this case moria1 and maatuska with a special interest in the 'Running' flag. * `Votes by Bandwidth Authorities `_ Provides information about the current votes from Tor's Bandwidth Authorities. * `Saving and Loading a Tor Consensus `_ Example for writing a Tor consensus to disk, and reading it back. * `Bandwidth Heuristics `_ Download bandwidth authority heuristics about relay capacity. * `Checking Digests `_ Looking for additional integrity that your descriptor is properly signed? Digests embedded in parent documents provide transitive validation. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/tutorials/down_the_rabbit_hole.rst0000644000175000017510000001126700000000000021072 0ustar00useruserDown the Rabbit Hole ==================== Underneath it all Stem is a Python implementation of Tor's `control `_ and `directory specifications `_. Anything you can do with Stem you can also do `with telnet <../faq.html#can-i-interact-with-tors-controller-interface-directly>`_ (albeit with quite a bit of extra work). Playing with Tor's control port directly is a great way of learning what Tor can and cannot do. This is handy because Stem can take advantage of anything the control interface offers, but conversely is also limited by things it lacks. To help Stem offers a control prompt with nice usability improvements over telnet... * Irc-style commands like '**/help**'. * Is a **python interpreter** (like IDLE). * Tab completion for Tor's controller commands. * History scrollback by pressing up/down. * Transparently handles Tor authentication at startup. * Colorized output for improved readability. .. _getting-started: Getting started --------------- Getting started with the control prompt is easy. Assuming you have Stem installed it will be available under **/usr/local/bin/tor-prompt**, and can attach to either an existing Tor instance or start one of its own. If Tor's already running `with a control port `_ then you can attach to it using **--interface** or **--socket** (by default it checks on **port 9051**)... .. image:: /_static/prompt/attach.png If Tor isn't running this prompt will start a temporary instance of its own. Tor will have a minimal non-relaying configuration, and be shut down when you're done. .. image:: /_static/prompt/starting_tor.png .. _what-can-i-do-with-it: What can I do with it? ---------------------- This prompt accepts three types of commands... * Commands for the interpreter itself, such as **/help** and **/info**. These are handled by the interpreter and always begin with a slash. * Commands for Tor's control port, such as **GETINFO version** and **GETCONF ExitPolicy**. These are passed along directly to Tor. * Commands that do not match either of the above are treated as Python. To get a list of the interpreter and Tor commands run **/help**. You can also run **/help [command]** (such as **/help SIGNAL**) to get details on what does... .. image:: /_static/prompt/help.png Another useful interpreter command is **/info [relay]** which provides information about a relay. With this you can look up details about any relay by its IP address, fingerprint, or nickname... .. image:: /_static/prompt/info.png Tor commands are passed along directly to Tor's control port, providing raw responses just as telnet would... .. image:: /_static/prompt/tor_commands.png And last but certainly not least this prompt provides a Python interpreter, just like IDLE. You start with a :class:`~stem.control.Controller` for you Tor instance available as your **controller** variable. This makes it easy to experiment with Stem and see what it can do... .. image:: /_static/prompt/python.png .. _event-handling: Event handling -------------- As mentioned in an `earlier tutorial `_ you can subscribe to receive events from Tor. Stem's :class:`~stem.control.Controller` does this with its :func:`~stem.control.Controller.add_event_listener` method, but with our raw Tor access we can also subscribe with **SETEVENTS [event types]**. Events we've received are available in two different ways. First, **/events** provides a quick dump of the events we've received thus far... .. image:: /_static/prompt/events_command.png You can list events of just a certain type by saying which (for instance **/events BW**). More useful though is the **events()** function, which provides a list of :class:`~stem.response.events.Event` instances we've received... .. image:: /_static/prompt/events_variable.png You can specify event types to either **/events** or **events()** to just receive events of those types (for instance, **events('BW', 'DEBUG')**). To stop receiving events run **SETEVENTS** without any event types, and to clear the backlog of events we've received run **/events clear**. .. _running-individual-commands: Running individual commands --------------------------- With its **--run** argument tor-prompt can also be used to run individual commands... .. image:: /_static/prompt/run.png ... listen to a space separated list of events with **--run 'SETEVENTS [event_types]'**... .. image:: /_static/prompt/run_events.png ... pipe its output to other destinations... .. image:: /_static/prompt/run_events_pipe.png ... and invoke files with a series of commands... .. image:: /_static/prompt/run_file.png ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/docs/tutorials/east_of_the_sun.rst0000644000175000017510000000577000000000000020100 0ustar00useruserEast of the Sun & West of the Moon ================================== The following is an overview of some of the utilities Stem provides. * :ref:`terminal-styling` * :ref:`multiprocessing` * :ref:`connection-resolution` .. _terminal-styling: Terminal Styling ---------------- Know what's better than text? Pretty text! OSX, Linux, BSD... really, everything except Windows supports terminal formatting through `ANSI escape sequences `_. Doing this yourself is easy, but we also provide a module to make it `even easier <../api/util/term.html>`_. | .. image:: /_static/words_with.png | .. literalinclude:: /_static/example/words_with.py :language: python .. _multiprocessing: Multiprocessing --------------- Python's `multiprocessing module `_ gives building blocks to parallelize around the `Global Interpreter Lock `_. However, honestly it's clunky to use. Ever just wanted to simply turn your threads into subprocesses? `We can do that <../api/util/system.html#stem.util.system.DaemonTask>`_. **Threaded** .. literalinclude:: /_static/example/fibonacci_threaded.py :language: python :: % python fibonacci_threaded.py took 21.1 seconds **Multi-process** .. literalinclude:: /_static/example/fibonacci_multiprocessing.py :language: python :: % python fibonacci_multiprocessing.py took 6.2 seconds .. _connection-resolution: Connection Resolution --------------------- Connection information is a useful tool for learning more about network applications like Tor. Our :func:`stem.util.connection.get_connections` function provides an easy method for accessing this information, with a few caveats... * Connection resolvers are platform specific. We `support several <../api/util/connection.html#stem.util.connection.Resolver>`_ platforms but not all. * By default Tor runs with a feature called **DisableDebuggerAttachment**. This prevents debugging applications like gdb from analyzing Tor unless it is run as root. Unfortunately this also alters the permissions of the Tor process /proc contents breaking numerous system tools (including our resolvers). To use this function you need to either run as root (discouraged) or add **DisableDebuggerAttachment 0** to your torrc. Please note that if you operate an exit relay it is **highly** discouraged for you to look at or record this information. Not only is doing so eavesdropping, but likely also a violation of wiretap laws. With that out of the way, how do you look up this information? Below is a simple script that dumps Tor's present connections. .. literalinclude:: /_static/example/utilities.py :language: python :: % python example.py Our platform supports connection resolution via: proc, netstat, sockstat, lsof, ss (picked proc) Tor is running with pid 17303 Connections: 192.168.0.1:59014 => 38.229.79.2:443 192.168.0.1:58822 => 68.169.35.102:443 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.0596662 stem-1.8.2/docs/tutorials/examples/0000755000175000017510000000000000000000000016006 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/bandwidth_stats.rst0000644000175000017510000000301600000000000021722 0ustar00useruserBandwidth Heuristics ==================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html To select the relays it will use Tor consults several factors. Exit policies, flags, as well as bandwidth heuristics so our circuits are zippy without overtaxing individual relays. These statistics are collected by a special subset of our directory authorites called **bandwidth authorities**. See our `bandwidth file specification `_ for details. Statistics are publicly available and generated each hour... .. literalinclude:: /_static/example/bandwidth_stats.py :language: python :: % python bandwidth_stats.py Relay 6AD3EA55B87C80971F353EBA710F6550202A9355 scanner = /scanner.5/scan-data/bws-59.4:60.1-done-2019-05-29-05:44:10 measured_at = 1559123050 pid_delta = -0.360692869958 updated_at = 1559123050 pid_error_sum = -0.178566523071 nick = OrphanOrOften node_id = $6AD3EA55B87C80971F353EBA710F6550202A9355 pid_bw = 538334 bw = 538 pid_error = -0.178566523071 circ_fail = 0.0 Relay 11B6727E38D249C83E20EEB0647BAD4FACECBEB6 scanner = /scanner.8/scan-data/bws-92.4:93.1-done-2019-05-23-16:06:26 measured_at = 1558641986 pid_delta = 0.0352270644197 updated_at = 1558641986 pid_error_sum = -0.822158700788 nick = snap269 node_id = $11B6727E38D249C83E20EEB0647BAD4FACECBEB6 pid_bw = 21124 bw = 21 pid_error = -0.822158700788 circ_fail = 0.0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/check_digests.rst0000644000175000017510000000260000000000000021335 0ustar00useruserChecking Descriptor Digests =========================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Tor relay information is provided by `multiple documents <../mirror_mirror_on_the_wall.html#what-is-a-descriptor>`_. Signed descriptors transitively validate others by inclusion of their digest. For example, our consensus references server descriptor digest, and server descriptors in turn cite extrainfo digests. To illustrate, here’s a diagram from Iain... .. image:: /_static/digest_chart.png Stem can calculate digests from `server <../../api/descriptor/server_descriptor.html#stem.descriptor.server_descriptor.ServerDescriptor.digest>`_, `extrainfo <../../api/descriptor/extrainfo_descriptor.html#stem.descriptor.extrainfo_descriptor.ExtraInfoDescriptor.digest>`_, `microdescriptor <../../api/descriptor/microdescriptor.html#stem.descriptor.microdescriptor.Microdescriptor.digest>`_, and `consensus documents <../../api/descriptor/networkstatus.html#stem.descriptor.networkstatus.NetworkStatusDocument.digest>`_. For instance, to validate an extrainfo descriptor... .. literalinclude:: /_static/example/check_digests.py :language: python :: % python check_digests.py What relay fingerprint would you like to validate? 3BB34C63072D9D10E836EE42968713F7B9325F66 Server descriptor digest is correct Extrainfo descriptor digest is correct ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/compare_flags.rst0000644000175000017510000000155200000000000021345 0ustar00useruserComparing Directory Authority Flags =================================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Compares the votes of two directory authorities, in this case moria1 and maatuska, with a special interest in the 'Running' flag. .. literalinclude:: /_static/example/compare_flags.py :language: python :: % python compare_flags.py maatuska has the Running flag but moria1 doesn't: 92FCB6748A40E6088E22FBAB943AB2DD743EA818 maatuska has the Running flag but moria1 doesn't: 6871F682350BA931838C0EC1E4A23044DAE06A73 maatuska has the Running flag but moria1 doesn't: E2BB13AA2F6960CD93ABE5257A825687F3973C62 moria1 has the Running flag but maatuska doesn't: 546C54E2A89D88E0794D04AECBF1AC8AC9DA81DE moria1 has the Running flag but maatuska doesn't: DCAEC3D069DC39AAE43D13C8AF31B5645E05ED61 ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/download_descriptor.rst0000644000175000017510000000200000000000000022575 0ustar00useruserDownload Tor Descriptors ======================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Tor relays provide a mirror for the tor relay descriptors it has cached. These are available from its ORPort using `Tor's wire protocol `_, and optionally with http as well from a `DirPort `_. .. literalinclude:: /_static/example/download_descriptor.py :language: python :: % python download_descriptor.py --type consensus --dirport 128.31.0.34:9131 Downloading consensus descriptor from 128.31.0.34:9131... r moria1 lpXfw1/+uGEym58asExGOXAgzjE IpcU7dolas8+Q+oAzwgvZIWx7PA 2018-05-23 02:41:25 128.31.0.34 9101 9131 s Authority Fast Running Stable V2Dir Valid v Tor 0.3.3.5-rc-dev pr Cons=1-2 Desc=1-2 DirCache=1-2 HSDir=1-2 HSIntro=3-4 HSRend=1-2 Link=1-5 LinkAuth=1,3 Microdesc=1-2 Relay=1-2 w Bandwidth=20 Unmeasured=1 p reject 1-65535 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/exit_used.rst0000644000175000017510000000221600000000000020532 0ustar00useruserDetermine The Exit You're Using =============================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Lets say you're using Tor and one day you run into something odd. Maybe a misconfigured relay, or maybe one that's being malicious. How can you figure out what exit you're using? Here's a simple script that prints information about the exits used to service the requests going through Tor... .. literalinclude:: /_static/example/exit_used.py :language: python Now if you make a request over Tor... :: % curl --socks4a 127.0.0.1:9050 google.com 301 Moved

301 Moved

The document has moved here. ... this script will tell you about the exit... :: % python exit_used.py Tracking requests for tor exits. Press 'enter' to end. Exit relay for our connection to 64.15.112.44:80 address: 31.172.30.2:443 fingerprint: A59E1E7C7EAEE083D756EE1FF6EC31CA3D8651D7 nickname: chaoscomputerclub19 locale: unknown ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/list_circuits.rst0000644000175000017510000000215400000000000021422 0ustar00useruserList Circuits ============= .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Tor creates new circuits and tears down old ones on your behalf, so how can you get information about circuits Tor currently has available? .. literalinclude:: /_static/example/list_circuits.py :language: python :: % python list_circuits.py Circuit 4 (GENERAL) |- B1FA7D51B8B6F0CB585D944F450E7C06EDE7E44C (ByTORAndTheSnowDog, 173.209.180.61) |- 0DD9935C5E939CFA1E07B8DDA6D91C1A2A9D9338 (afo02, 87.238.194.176) +- DB3B1CFBD3E4D97B84B548ADD5B9A31451EEC4CC (edwardsnowden3, 109.163.234.10) Circuit 6 (GENERAL) |- B1FA7D51B8B6F0CB585D944F450E7C06EDE7E44C (ByTORAndTheSnowDog, 173.209.180.61) |- EC01CB4766BADC1611678555CE793F2A7EB2D723 (sprockets, 46.165.197.96) +- 9EA317EECA56BDF30CAEB208A253FB456EDAB1A0 (bolobolo1, 96.47.226.20) Circuit 10 (GENERAL) |- B1FA7D51B8B6F0CB585D944F450E7C06EDE7E44C (ByTORAndTheSnowDog, 173.209.180.61) |- 00C2C2A16AEDB51D5E5FB7D6168FC66B343D822F (ph3x, 86.59.119.83) +- 65242C91BFF30F165DA4D132C81A9EBA94B71D62 (torexit16, 176.67.169.171) ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/outdated_relays.rst0000644000175000017510000000137400000000000021735 0ustar00useruserList Outdated Relays ==================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Time marches on. Tor makes new releases, and at some point needs to drop support for old ones. Below is the script we used on :trac:`9476` to reach out to relay operators that needed to upgrade. .. literalinclude:: /_static/example/outdated_relays.py :language: python :: % python outdated_relays.py Checking for outdated relays... 0.2.2.39 Random Person admin@gtr-10.de 0.2.2.36 dobrovich_psckaal at vietrievus dot ok 0.2.2.39 anonymous6 anonymous@mailinator.com 0.2.2.39 anonymous12 anonymous@mailinator.com ... 316 outdated relays found, 120 had contact information ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/persisting_a_consensus.rst0000644000175000017510000000403100000000000023325 0ustar00useruserSaving and Loading a Tor Consensus ================================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Reading and writing a Tor consensus to disk is similar to `other descriptor types <../mirror_mirror_on_the_wall.html#saving-and-loading-descriptors>`_ with one small difference. Most descriptors are just about a single relay. Server descriptors and microdescriptors, for instance, can be concatenated together and dumped to a file because they're each independent of each other. The Tor consensus, however, is a larger document containing information about the Tor network in addition to a little data on each of the relays. In Stem the overall document is a :class:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3`, and the information on individual relays are :class:`~stem.descriptor.router_status_entry.RouterStatusEntryV3` instances. Why does this matter? By default when you read a consensus Stem provides you **just** the :class:`~stem.descriptor.router_status_entry.RouterStatusEntryV3`. This is for performance reasons, and because usually that's what developers want. But for writing the conssensus to disk we'll want the whole document instead. So how do we get it? Just tell Stem that's what you want. The :class:`~stem.descriptor.__init__.DocumentHandler` tells Stem how to read the consensus. For example, to write the consensus simply do the following... .. literalinclude:: /_static/example/persisting_a_consensus.py :language: python Our *consensus* here is the current :class:`~stem.descriptor.networkstatus.NetworkStatusDocumentV3`. The **descriptor_dump** file now looks like... :: network-status-version 3 vote-status consensus consensus-method 18 valid-after 2014-11-17 23:00:00 fresh-until 2014-11-18 00:00:00 valid-until 2014-11-18 02:00:00 voting-delay 300 300 ... etc... You can then read it back with :func:`~stem.descriptor.__init__.parse_file`... .. literalinclude:: /_static/example/persisting_a_consensus_with_parse_file.py :language: python ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/relay_connections.rst0000644000175000017510000000334000000000000022256 0ustar00useruserConnection Summary ================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html The following provides a summary of your relay's inbound and outbound connections. Couple important notes... * To use this you must set **DisableDebuggerAttachment 0** in your torrc. Otherwise connection information will be unavailable. * **Be careful about the data you look at.** Inspection of client and exit traffic especially is wiretapping and not only unethical but likely illegal. That said, a general overview like this should be fine. .. literalinclude:: /_static/example/relay_connections.py :language: python :: % relay_connections.py --ctrlport 29051 0.3.2.0-alpha-dev uptime: 01:20:44 flags: none +------------------------------+------+------+ | Type | IPv4 | IPv6 | +------------------------------+------+------+ | Inbound to our ORPort | 2400 | 3 | | Inbound to our DirPort | 12 | 0 | | Inbound to our ControlPort | 2 | 0 | | Outbound to a relay | 324 | 0 | | Outbound exit traffic | 3 | 0 | +------------------------------+------+------+ | Total | 2741 | 3 | +------------------------------+------+------+ +------------------------------+------+------+ | Exit Port | IPv4 | IPv6 | +------------------------------+------+------+ | 443 (HTTPS) | 1 | 0 | | 8443 (PCsync HTTPS) | 1 | 0 | | 54682 | 1 | 0 | +------------------------------+------+------+ | Total | 3 | 0 | +------------------------------+------+------+ ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/examples/votes_by_bandwidth_authorities.rst0000644000175000017510000000273400000000000025044 0ustar00useruserVotes by Bandwidth Authorities ============================== .. image:: /_static/buttons/back.png :target: ../double_double_toil_and_trouble.html Tor takes into account a relay's throughput when picking a route through the Tor network for its circuits. That is to say large, fast relays receive more traffic than small ones since they can better service the load. To determine a relay's throughput special authorities, called **bandwidth authorities**, take periodic measurements using them. The `lifecycle of new Tor relays `_ is a bit more complicated than that, but that's the general idea. Bandwidth authorities include their measurements in their votes. The following gets their current votes then prints how many relays it had a measurement for. .. literalinclude:: /_static/example/votes_by_bandwidth_authorities.py :language: python :: % python bandwidth_auth_measured_counts.py Getting gabelmoo's vote from http://131.188.40.189:80/tor/status-vote/current/authority: 5935 measured entries and 1332 unmeasured Getting tor26's vote from http://86.59.21.38:80/tor/status-vote/current/authority: 5735 measured entries and 1690 unmeasured Getting moria1's vote from http://128.31.0.39:9131/tor/status-vote/current/authority: 6647 measured entries and 625 unmeasured Getting maatuska's vote from http://171.25.193.9:443/tor/status-vote/current/authority: 6313 measured entries and 1112 unmeasured ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/mirror_mirror_on_the_wall.rst0000644000175000017510000004212000000000000022200 0ustar00useruserMirror Mirror on the Wall ========================= The following is an overview of **Tor descriptors**. If you're already familiar with what they are and where to get them then you may want to skip to the end. * :ref:`what-is-a-descriptor` * :ref:`where-do-descriptors-come-from` * :ref:`where-can-i-get-the-current-descriptors` * :ref:`where-can-i-get-past-descriptors` * :ref:`can-i-get-descriptors-from-the-tor-process` * :ref:`can-i-create-descriptors` * :ref:`validating-the-descriptors-content` * :ref:`saving-and-loading-descriptors` * :ref:`putting-it-together` * :ref:`are-there-any-other-parsing-libraries` .. _what-is-a-descriptor: What is a descriptor? --------------------- Tor is made up of two parts: the application and a distributed network of a few thousand volunteer relays. Information about these relays is public, and made up of documents called **descriptors**. There are several different kinds of descriptors, the most common ones being... ================================================================================ =========== Descriptor Type Description ================================================================================ =========== `Server Descriptor <../api/descriptor/server_descriptor.html>`_ Information that relays publish about themselves. Tor clients once downloaded this information, but now they use microdescriptors instead. `ExtraInfo Descriptor <../api/descriptor/extrainfo_descriptor.html>`_ Relay information that Tor clients do not need in order to function. This is self-published, like server descriptors, but not downloaded by default. `Microdescriptor <../api/descriptor/microdescriptor.html>`_ Minimalistic document that just includes the information necessary for Tor clients to work. `Network Status Document <../api/descriptor/networkstatus.html>`_ Though Tor relays are decentralized, the directories that track the overall network are not. These central points are called **directory authorities**, and every hour they publish a document called a **consensus** (aka, network status document). The consensus in turn is made up of **router status entries**. `Router Status Entry <../api/descriptor/router_status_entry.html>`_ Relay information provided by the directory authorities including flags, heuristics used for relay selection, etc. `Hidden Service Descriptor <../api/descriptor/hidden_service.html>`_ Information pertaining to a `Hidden Service `_. These can only be `queried through the tor process `_. ================================================================================ =========== .. _where-do-descriptors-come-from: Where do descriptors come from? ------------------------------- Descriptors fall into two camps: * **Server**, **extra-info**, and **hidden service** descriptors are **self-published documents**. Relays and hidden services publish these about themselves, and so naturally can indicate anything they'd like in them (true or not). These are **self contained documents**, bundling within themselves a signiture Stem can `optionally check <./mirror_mirror_on_the_wall.html#validating-the-descriptors-content>`_. * **Network status documents** (aka **votes**, the **consensus**, and **router status entries** they contain) are created by the **directory authorities**. For a great overview on how this works see `Jordan Wright's article on how the consensus is made `_. **Microdescriptors** are merely a distilled copy of a **server descriptor**, and so belong to the first camp. .. _where-can-i-get-the-current-descriptors: Where can I get the current descriptors? ---------------------------------------- To work Tor needs up-to-date relay information. As such getting the current descriptors is easy: *just download it like Tor does*. Every tor relay provides an **ORPort** and many provide a **DirPort** as well which can both be downloaded from using Stem's `stem.descriptor.remote <../api/descriptor/remote.html>`_ module. Listing relays for instance is as easy as... .. literalinclude:: /_static/example/current_descriptors.py :language: python **Please remember that Tor is a shared resource!** If you're going to contribute much load please consider `running a relay `_ to offset your use. **ORPorts** communicate through the `tor protocol `_, and can be downloaded from by specifying it as the endpoint... .. literalinclude:: /_static/example/descriptor_from_orport.py :language: python **DirPorts** by contrast are simpler and specially designed to offer descriptor information, but not all relays offer one. If no endpoint is specified we default to downloading from the DirPorts of tor's directory authorities. If you would like to see what raw descriptors look like try curling a relay's DirPort. Section 6.2 of `tor's directory specification `_ lists the urls you can try. :: % curl 128.31.0.34:9131/tor/server/all router Unnamed 83.227.81.207 9001 0 9030 identity-ed25519 -----BEGIN ED25519 CERT----- AQQABj3aAV7JzKHjSJjocve8jvnMwmy/Pv2HsSKoymeepddNBU5iAQAgBABw1VVB 965QDxs+wicWj4vNXMKIkKCN4gQhvzqG2UxsgmkaQlsKiEMrIxrzwlazP6od9+hi WZKl3tshd0ekgUB6AAKwlvsrxl9wfy0G/Bf8PVsBftvNCWPwLR4pI3nibQU= -----END ED25519 CERT----- master-key-ed25519 cNVVQfeuUA8bPsInFo+LzVzCiJCgjeIEIb86htlMbII ... .. _where-can-i-get-past-descriptors: Where can I get past descriptors? --------------------------------- Descriptor archives are available from `CollecTor `_. If you need Tor's topology at a prior point in time this is the place to go! With CollecTor you can either read descriptors directly... .. literalinclude:: /_static/example/collector_reading.py :language: python ... or download the descriptors to disk and read them later. .. literalinclude:: /_static/example/collector_caching.py :language: python .. _can-i-get-descriptors-from-the-tor-process: Can I get descriptors from the Tor process? ------------------------------------------- If you already have Tor running on your system then it is already downloading descriptors on your behalf. Reusing these is a great way to keep from burdening the rest of the Tor network. Tor only gets the descriptors that it needs by default, so if you're scripting against Tor you may want to set some of the following in your `torrc `_. Keep in mind that these add a small burden to the network, so don't set them in a widely distributed application. And, of course, please consider `running Tor as a relay `_ so you give back to the network! .. code-block:: lighttpd # Descriptors have a range of time during which they're valid. To get the # most recent descriptor information, regardless of if Tor needs it or not, # set the following. FetchDirInfoEarly 1 FetchDirInfoExtraEarly 1 # Tor doesn't need all descriptors to function. In particular... # # * Tor no longer downloads server descriptors by default, opting # for microdescriptors instead. # # * If you aren't actively using Tor as a client then Tor will # eventually stop downloading descriptor information altogether # to relieve load on the network. # # To download descriptors regardless of if they're needed by the # Tor process or not set... FetchUselessDescriptors 1 # Tor doesn't need extrainfo descriptors to work. If you want Tor to download # them anyway then set... DownloadExtraInfo 1 Now that Tor is happy chugging along, up-to-date descriptors are available through Tor's control socket... .. literalinclude:: /_static/example/descriptor_from_tor_control_socket.py :language: python ... or by reading directly from Tor's data directory... .. literalinclude:: /_static/example/descriptor_from_tor_data_directory.py :language: python .. _can-i-create-descriptors: Can I create descriptors? ------------------------- Besides reading descriptors you can create them too. This is most commonly done for test data. To do so simply use the :func:`~stem.descriptor.__init__.Descriptor.create` method of :class:`~stem.descriptor.__init__.Descriptor` subclasses... .. literalinclude:: /_static/example/create_descriptor.py :language: python Unspecified mandatory fields are filled with mock data. You can also use :func:`~stem.descriptor.__init__.Descriptor.content` to get a string descriptor... .. literalinclude:: /_static/example/create_descriptor_content.py :language: python :: router demo 127.0.0.1 80 0 0 published 2012-03-01 17:15:27 bandwidth 153600 256000 104590 reject *:* onion-key -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAJv5IIWQ+WDWYUdyA/0L8qbIkEVH/cwryZWoIaPAzINfrw1WfNZGtBmg skFtXhOHHqTRN4GPPrZsAIUOQGzQtGb66IQgT4tO/pj+P6QmSCCdTfhvGfgTCsC+ WPi4Fl2qryzTb3QO5r5x7T8OsG2IBUET1bLQzmtbC560SYR49IvVAgMBAAE= -----END RSA PUBLIC KEY----- signing-key ... .. _validating-the-descriptors-content: Validating the descriptor's content ----------------------------------- Stem can optionally validate descriptors, checking their integrity and compliance with Tor's specs. This does the following... * Checks that we have mandatory fields, and that their content conforms with what Tor's spec says they should have. This can be useful when data integrity is important to you since it provides an upfront assurance that the descriptor's correct (no need for 'None' checks). * If you have **pycrypto** we'll validate signatures for descriptor types where that has been implemented (such as server and hidden service descriptors). Prior to Stem 1.4.0 descriptors were validated by default, but this has become opt-in since then. General rule of thumb: if *speed* is your chief concern then leave it off, but if *correctness* or *signature validation* is important then turn it on. Validating is as simple as including **validate = True** in any method that provides descriptors... .. literalinclude:: /_static/example/validate_descriptor_content.py :language: python .. _saving-and-loading-descriptors: Saving and loading descriptors ------------------------------ Tor descriptors are just plaintext documents. As such, if you'd rather not use `Pickle `_ you can persist a descriptor by simply writing it to disk, then reading it back later. .. literalinclude:: /_static/example/saving_and_loading_descriptors.py :language: python Our *server_descriptors* here is a list of :class:`~stem.descriptor.server_descriptor.RelayDescriptor` instances. When we write it to a file this looks like... :: router default 68.229.17.182 443 0 9030 platform Tor 0.2.4.23 on Windows XP protocols Link 1 2 Circuit 1 published 2014-11-17 23:42:38 fingerprint EE04 42C3 6DB6 6903 0816 247F 2607 382A 0783 2D5A uptime 63 bandwidth 5242880 10485760 77824 extra-info-digest 1ABA9FC6B912E755483D0F4F6E9BC1B23A2B7206 ... etc... We can then read it back with :func:`~stem.descriptor.__init__.parse_file` by telling it the type of descriptors we're reading... .. literalinclude:: /_static/example/read_with_parse_file.py :language: python For an example of doing this with a consensus document `see here `_. .. _putting-it-together: Putting it together... ---------------------- As discussed above there are four methods for reading descriptors... * Download descriptors directly with `stem.descriptor.remote <../api/descriptor/remote.html>`_. * Read a single file with :func:`~stem.descriptor.__init__.parse_file`. * Read multiple files or an archive with the `DescriptorReader <../api/descriptor/reader.html>`_. * Requesting them from Tor with :class:`~stem.control.Controller` methods like :func:`~stem.control.Controller.get_server_descriptors` and :func:`~stem.control.Controller.get_network_statuses`. Now lets say you want to figure out who the *biggest* exit relays are. You could use any of the methods above, but for this example we'll use `stem.descriptor.remote <../api/descriptor/remote.html>`_... .. literalinclude:: /_static/example/tor_descriptors.py :language: python :: % python example.py 1. herngaard (40.95 MB/s) 2. chaoscomputerclub19 (40.43 MB/s) 3. chaoscomputerclub18 (40.02 MB/s) 4. chaoscomputerclub20 (38.98 MB/s) 5. wannabe (38.63 MB/s) 6. dorrisdeebrown (38.48 MB/s) 7. manning2 (38.20 MB/s) 8. chaoscomputerclub21 (36.90 MB/s) 9. TorLand1 (36.22 MB/s) 10. bolobolo1 (35.93 MB/s) 11. manning1 (35.39 MB/s) 12. gorz (34.10 MB/s) 13. ndnr1 (25.36 MB/s) 14. politkovskaja2 (24.93 MB/s) 15. wau (24.72 MB/s) .. _are-there-any-other-parsing-libraries: Are there any other parsing libraries? -------------------------------------- Yup! Stem isn't the only game in town when it comes to parsing. `Metrics-lib `_ is a highly mature parsing library for Java, and `Zoossh `_ is available for Go. Each library has its own capabilities... .. role:: red .. role:: green =========================== ===================== =================== ============== Capability Stem Metrics-lib Zoossh =========================== ===================== =================== ============== Language :green:`Python` :green:`Java` :green:`Go` Checks signatures :green:`Mostly` :red:`No` :red:`No` Create new descriptors :green:`Yes` :red:`No` :red:`No` Lazy parsing :green:`Yes` :red:`No` :green:`Yes` Type detection by @type :green:`Yes` :green:`Yes` :green:`Yes` Type detection by filename :green:`Yes` :red:`No` :red:`No` Packages :green:`Several` :red:`None` :red:`None` **Can Read/Download From** Files :green:`Yes` :green:`Yes` :green:`Yes` Tarballs :green:`Yes` :green:`Yes` :red:`No` Tor Process :green:`Yes` :red:`No` :red:`No` Directory Authorities :green:`Yes` :green:`Yes` :red:`No` CollecTor :red:`No` :green:`Yes` :red:`No` **Supported Types** Server Descriptors :green:`Yes` :green:`Yes` :green:`Partly` Extrainfo Descriptors :green:`Yes` :green:`Yes` :red:`No` Microdescriptors :green:`Yes` :green:`Yes` :red:`No` Consensus :green:`Yes` :green:`Yes` :green:`Partly` Bridge Descriptors :green:`Yes` :green:`Yes` :red:`No` Hidden Service Descriptors :green:`Yes` :red:`No` :red:`No` Bridge Pool Assignments :red:`No` :green:`Yes` :red:`No` Torperf :red:`No` :green:`Yes` :red:`No` Tordnsel :green:`Yes` :green:`Yes` :red:`No` **Benchmarks** Server Descriptors :green:`0.60 ms` :green:`0.29 ms` :green:`0.46 ms` Extrainfo Descriptors :green:`0.40 ms` :green:`0.22 ms` :red:`unsupported` Microdescriptors :green:`0.33 ms` :green:`0.07 ms` :red:`unsupported` Consensus :green:`865.72 ms` :green:`246.71 ms` :green:`83.00 ms` Benchmarked With Commit :green:`c01a9cd` :green:`8767f3e` :green:`2380e55` Language Interpreter :green:`Python 3.5.1` :green:`Java 1.7.0` :green:`Go 1.5.2` =========================== ===================== =================== ============== Few things to note about these benchmarks... * **Zoossh is the fastest.** Its benchmarks were at a disadvantage due to not reading from tarballs. * Your Python version makes a very large difference for Stem. For instance, with Python 2.7 reading a consensus takes **1,290.84 ms** (almost twice as long). * Metrics-lib and Stem can both read from compressed tarballs at a small performance cost. For instance, Metrics-lib can read an `lzma compressed <../faq.html#how-do-i-read-tar-xz-descriptor-archives>`_ consensus in **255.76 ms** and Stem can do it in **902.75 ms**. So what does code with each of these look like? Stem Example ------------ * `Benchmark Script <../.../../_static/example/benchmark_stem.py>`_ .. literalinclude:: /_static/example/benchmark_server_descriptor_stem.py :language: python Metrics-lib Example ------------------- * `Benchmark Script <../.../../_static/example/benchmark_metrics_lib.java>`_ .. literalinclude:: /_static/example/benchmark_server_descriptor_metrics_lib.java :language: java Zoossh Example -------------- * `Benchmark Script <../.../../_static/example/benchmark_zoossh.go>`_ .. literalinclude:: /_static/example/benchmark_server_descriptor_zoossh.go :language: go ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/over_the_river.rst0000644000175000017510000001602400000000000017747 0ustar00useruserOver the River and Through the Wood =================================== `Hidden services `_ give you a way of providing a service without exposing your address. These services are only accessible through Tor or `Tor2web `_, and useful for a surprising number of things... * **Hosting an anonymized site**. This is usually the first thing that comes to mind, and something we'll demonstrate in a sec. * Providing an **endpoint Tor users can reach** without exiting the Tor network. This eliminates the risk of an unreliable or malicious exit getting in the way. Great examples of this are `Facebook `_ (*facebookcorewwwi.onion*) and `DuckDuckGo `_ (*3g2upl4pq6kufc4m.onion*). * **Personal services**. For instance you can host your home SSH server as a hidden service to prevent eavesdroppers from knowing where you live while traveling abroad. `Tor2web `_ provides a quick and easy way of seeing if your hidden service is working. To use it simply replace the **.onion** of your address with **.tor2web.org**... .. image:: /_static/duck_duck_go_hidden_service.png :target: https://3g2upl4pq6kufc4m.tor2web.org/ .. _running-a-hidden-service: Running a hidden service ------------------------ Hidden services can be `configured through your torrc `_, but Stem also provides some methods to easily work with them... * :func:`~stem.control.Controller.create_hidden_service` * :func:`~stem.control.Controller.remove_hidden_service` * :func:`~stem.control.Controller.get_hidden_service_conf` * :func:`~stem.control.Controller.set_hidden_service_conf` The main threat to your anonymity when running a hidden service is the service itself. Debug information for instance might leak your real address, undermining what Tor provides. This includes the following example, **do not rely on it not to leak**. But with that out of the way lets take a look at a simple `Flask `_ example based on one by `Jordan Wright `_... .. literalinclude:: /_static/example/running_hidden_service.py :language: python Now if we run this... :: % python example.py * Connecting to tor * Creating our hidden service in /home/atagar/.tor/hello_world * Our service is available at uxiuaxejc3sxrb6i.onion, press ctrl+c to quit * Running on http://127.0.0.1:5000/ 127.0.0.1 - - [15/Dec/2014 13:05:43] "GET / HTTP/1.1" 200 - * Shutting down our hidden service ... we'll have a service we can visit via the `Tor Browser Bundle `_... .. image:: /_static/hidden_service.png .. _hidden-service-authentication: Hidden service authentication ----------------------------- Hidden services you create can restrict their access, requiring in essence a password... :: >>> from stem.control import Controller >>> controller = Controller.from_port() >>> controller.authenticate() >>> response = controller.create_ephemeral_hidden_service({80: 8080}, await_publication=True, basic_auth={'bob': None, 'alice': None}) >>> response.service_id, response.client_auth ('l3lnorirzn7hrjnw', {'alice': 'I6AMKiay+UkM5MfrvdnF2A', 'bob': 'VLsbrSGyrb5JYEvZmQ3tMg'}) To access this service users simply provide this credential to tor via their torrc or SETCONF prior to visiting it... :: >>> controller.set_conf('HidServAuth', 'l3lnorirzn7hrjnw.onion I6AMKiay+UkM5MfrvdnF2A') .. _ephemeral-hidden-services: Ephemeral hidden services ------------------------- In the above example you may have noticed the note that said... :: # The hostname is only available when we can read the hidden service # directory. This requires us to be running with the same user as tor. This has been a limitation of hidden services for years. However, as of version 0.2.7.1 Tor offers another style for making services called **ephemeral hidden services**. Ephemeral services can only be created through the controller, and only exist as long as your controller is attached unless you provide the **detached** flag. Controllers can only see their own ephemeral services, and ephemeral services that are detached. In other words, attached ephemeral services can only be managed by their own controller. Stem provides three methods to work with ephemeral hidden services... * :func:`~stem.control.Controller.list_ephemeral_hidden_services` * :func:`~stem.control.Controller.create_ephemeral_hidden_service` * :func:`~stem.control.Controller.remove_ephemeral_hidden_service` For example, with a ephemeral service our earlier example becomes as simple as... .. literalinclude:: /_static/example/ephemeral_hidden_services.py :language: python Ephemeral hidden services do not touch disk, and as such are easier to work with but require you to persist your service's private key yourself if you want to reuse a '.onion' address... .. literalinclude:: /_static/example/resuming_ephemeral_hidden_service.py :language: python .. _hidden-service-descriptors: Hidden service descriptors -------------------------- Like relays, hidden services publish documents about themselves called **hidden service descriptors**. These contain low level details for establishing connections. Hidden service descriptors are available from the tor process via its :func:`~stem.control.Controller.get_hidden_service_descriptor` method... .. literalinclude:: /_static/example/get_hidden_service_descriptor.py :language: python :: % python print_duck_duck_go_descriptor.py rendezvous-service-descriptor e5dkwgp6vt7axoozixrbgjymyof7ab6u version 2 permanent-key -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAJ/SzzgrXPxTlFrKVhXh3buCWv2QfcNgncUpDpKouLn3AtPH5Ocys0jE aZSKdvaiQ62md2gOwj4x61cFNdi05tdQjS+2thHKEm/KsB9BGLSLBNJYY356bupg I5gQozM65ENelfxYlysBjJ52xSDBd8C4f/p9umdzaaaCmzXG/nhzAgMBAAE= -----END RSA PUBLIC KEY----- secret-id-part bmsctib2pzirgo7cltlxdm5fxqcitt5e publication-time 2015-05-11 20:00:00 protocol-versions 2,3 introduction-points -----BEGIN MESSAGE----- aW50cm9kdWN0aW9uLXBvaW50IHZzcm4ycGNtdzNvZ21mNGo3dGpxeHptdml1Y2Rr NGtpCmlwLWFkZHJlc3MgMTc2LjkuNTkuMTcxCm9uaW9uLXBvcnQgOTAwMQpvbmlv ... etc... A hidden service's introduction points are a base64 encoded field that's possibly encrypted. These can be decoded (and decrypted if necessary) with the descriptor's :func:`~stem.descriptor.hidden_service.HiddenServiceDescriptor.introduction_points` method. .. literalinclude:: /_static/example/introduction_points.py :language: python :: % python print_duck_duck_go_introduction_points.py DuckDuckGo's introduction points are... 176.9.59.171:9001 => vsrn2pcmw3ogmf4j7tjqxzmviucdk4ki 104.131.106.181:9001 => gcl2kpqx5qnkpgxjf6x7ulqncoqj7ghh 188.166.58.218:443 => jeymnbhs2d6l2oib7jjvweavg45m6gju ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/the_little_relay_that_could.rst0000644000175000017510000000445700000000000022473 0ustar00useruserThe Little Relay that Could =========================== Let's say you just set up your very first `Tor relay `_ (thank you!), and now you want to write a script that tells you how much it is being used. First, for any script to talk with your relay it will need to have a control port available. This is a port that's usually only available on localhost and protected by either a **password** or **authentication cookie**. Look at your `torrc `_ for the following configuration options... .. code-block:: bash # This provides a port for our script to talk with. If you set this then be # sure to also set either CookieAuthentication *or* HashedControlPassword! # # You could also use ControlSocket instead of ControlPort, which provides a # file based socket. You don't need to have authentication if you use # ControlSocket. For this example however we'll use a port. ControlPort 9051 # Setting this will make Tor write an authentication cookie. Anything with # permission to read this file can connect to Tor. If you're going to run # your script with the same user or permission group as Tor then this is the # easiest method of authentication to use. CookieAuthentication 1 # Alternatively we can authenticate with a password. To set a password first # get its hash... # # % tor --hash-password "my_password" # 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF # # ... and use that for the HashedControlPassword in your torrc. HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF When you change your torrc you'll need to either restart Tor or issue a SIGHUP for the new settings to take effect. Now let's write a script that tells us how many bytes Tor has sent and received since it started. Note that there are a `few ways to connect to Tor <../faq.html#how-do-i-connect-to-tor>`_. If you're unfamiliar with the '**with**' keyword then see `here <../faq.html#what-is-that-with-keyword-i-keep-seeing-in-the-tutorials>`_... .. literalinclude:: /_static/example/hello_world.py :language: python :: % python example.py My Tor relay has read 33406 bytes and written 29649. Congratulations! You've just written your first controller script. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/to_russia_with_love.rst0000644000175000017510000001223700000000000021017 0ustar00useruserTo Russia With Love =================== * :ref:`using-pycurl` * :ref:`using-socksipy` * :ref:`reading-twitter` * :ref:`custom-path-selection` .. _using-pycurl: Using PycURL ------------ Say it's 1982, the height of the Cold War, and you're a journalist doing a piece on how the Internet looks from behind the Iron Curtain. Ignoring the minor detail that the Internet doesn't yet exist, we'll walk you through how you could do it - no passport required! The Internet isn't uniform. Localization, censorship, and selective service based on your IP's geographic location can make the Internet a very different place depending on where you're coming from. Tor relays are scattered all over the world and, as such, you can pretend to be from any place running an exit. This can be especially useful to evade pesky geolocational restrictions, such as news sites that refuse to work while you're traveling abroad. Tor makes `configuring your exit locale `_ easy through the **ExitNodes** torrc option. Note that you don't need a control port (or even Stem) to do this, though they can be useful if you later want to do something more elaborate. In the following example we're using Stem to `start Tor <../api/process.html>`_, then read a site through it with `PycURL `_. This is not always reliable (some relays are lemons) so you may need to run this more than once. Having an issue? The following are some common gotchas... * PycURL's **PROXYTYPE_SOCKS5_HOSTNAME** was added in v7.19.5.1. Try `upgrading `_ if you get an AttributeError about it. * The following example for exiting through Russia will only work if... well, the Tor network *has* a Russian exit. Often this isn't the case. If Tor fails to bootstrap try dropping the line with **'ExitNodes': '{ru}'**. **Do not rely on the following not to leak.** Though it seems to work there may be edge cases that expose your real IP. If you have a suggestion for how to improve this example then please `let me know `_! .. literalinclude:: /_static/example/client_usage_using_pycurl.py :language: python .. image:: /_static/locale_selection_output.png .. _using-socksipy: Using SocksiPy -------------- Besides PycURL, you can also use `SocksiPy `_ to do the same. Be aware that the following example routes **all** socket connections through Tor, so this'll break our ability to connect to Tor's control port. To use this approach simply replace the query() function above with... .. literalinclude:: /_static/example/client_usage_using_socksipy.py :language: python .. _reading-twitter: Reading Twitter --------------- Now lets do something a little more interesting, and read a Twitter feed over Tor. This can be done `using their API `_, for authentication `see their instructions `_... .. literalinclude:: /_static/example/reading_twitter.py :language: python .. image:: /_static/twitter_output.png .. _custom-path-selection: Custom Path Selection --------------------- Routing requests over Tor is all well and good, but what if you want to do something more sophisticated? Through Tor's controller interface you can manage your own **circuits** and **streams**. A **circuit** is your path through the Tor network. Circuits must consist of at least two relays, and must end with a relay that allows connections to the destination you want to reach. **Streams** by contrast are TCP connections carried over a circuit. Tor handles attaching streams to a circuit that can service it. To instead manage this yourself call... :: controller.set_conf('__LeaveStreamsUnattached', '1') For an example of this lets fetch a site over each relay to determine it's reachability and speed. **Naturally doing this causes quite a bit of load so please be careful not to leave this running!** .. literalinclude:: /_static/example/custom_path_selection.py :language: python :: % python scan_network.py 000050888CF58A50E824E534063FF71A762CB227 => 2.62 seconds 000149E6EF7102AACA9690D6E8DD2932124B94AB => 2.50 seconds 000A10D43011EA4928A35F610405F92B4433B4DC => 2.18 seconds 000F18AC2CDAE4C710BA0898DC9E21E72E0117D8 => 2.40 seconds 0011BD2485AD45D984EC4159C88FC066E5E3300E => 2.03 seconds 003000C32D9E16FCCAEFD89336467C01E16FB00D => 11.41 seconds 008E9B9D7FF523CE1C5026B480E0127E64FA7A19 => 2.24 seconds 009851DF933754B00DDE876FCE4088CE1B4940C1 => 2.39 seconds 0098C475875ABC4AA864738B1D1079F711C38287 => Unable to reach https://check.torproject.org/ ((28, 'SSL connection timeout')) 00B70D1F261EBF4576D06CE0DA69E1F700598239 => 2.41 seconds 00DFA1137D178EE012B96F64D12F03B4D69CA0B2 => 4.53 seconds 00EF4569C8E4E165286DE6D293DCCE1BB1F280F7 => Circuit failed to be created: CHANNEL_CLOSED 00F12AB035D62C919A1F37C2A67144F17ACC9E75 => 3.58 seconds 00F2D93EBAF2F51D6EE4DCB0F37D91D72F824B16 => 2.12 seconds 00FCFBC5770DC6B716D917C73A0DE722CCF2DFE5 => 2.16 seconds ... ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/docs/tutorials/tortoise_and_the_hare.rst0000644000175000017510000000526000000000000021256 0ustar00useruserTortoise and the Hare ===================== Controllers have two methods of talking with Tor... * **Synchronous** - Most commonly you make a request to Tor then receive its reply. The :func:`~stem.control.Controller.get_info` calls in the `first tutorial `_ are an example of this. * **Asynchronous** - Controllers can subscribe to be notified when various kinds of events occur within Tor (see the :data:`~stem.control.EventType`). Stem's users provide a callback function to :func:`~stem.control.Controller.add_event_listener` which is then notified when the event occurs. Try to avoid lengthy operations within event callbacks. They're notified by a single dedicated event thread, and blocking this thread will prevent the delivery of further events. With that out of the way lets see an example. The following is a `curses `_ application that graphs the bandwidth usage of Tor... .. image:: /_static/bandwidth_graph_output.png To do this it listens to **BW events** (the class for which is a :class:`~stem.response.events.BandwidthEvent`). These are events that Tor emits each second saying the number of bytes downloaded and uploaded. .. literalinclude:: /_static/example/event_listening.py :emphasize-lines: 53-55,62-67 :language: python Advanced Listeners ------------------ When you attach a listener to a :class:`~stem.control.Controller` events are processed within a dedicated thread. This is convenient for simple uses, but can make troubleshooting your code confusing. For example, exceptions have nowhere to propagate... .. literalinclude:: /_static/example/broken_listener.py :language: python :: % python demo.py start of broken_handler start of broken_handler start of broken_handler ... and processing events slower than they're received will make your listener fall behind. This can result in a memory leak for long running processes... .. literalinclude:: /_static/example/slow_listener.py :language: python :: % python demo.py processing a BW event that's 0.9 seconds old (0 more events are waiting) processing a BW event that's 4.9 seconds old (3 more events are waiting) processing a BW event that's 8.9 seconds old (7 more events are waiting) Avoid performing heavy business logic directly within listeners. For example, a producer/consumer pattern sidesteps these issues... .. literalinclude:: /_static/example/queue_listener.py :language: python :: % python demo.py I got a BW event for 20634 bytes downloaded and 2686 bytes uploaded I got a BW event for 0 bytes downloaded and 0 bytes uploaded I got a BW event for 0 bytes downloaded and 0 bytes uploaded ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1523182127.0 stem-1.8.2/docs/tutorials.rst0000644000175000017510000001330500000000000014724 0ustar00useruserTutorial ======== .. Image Sources: * The Little Relay That Could - train.png Source: https://openclipart.org/detail/140185/tren-train-by-antroares Author: Antroares License: Public Domain Alternate: https://openclipart.org/detail/1128/train-roadsign-by-ryanlerch * To Russia With Love - soviet.png Source: https://openclipart.org/detail/146017/flag-of-the-soviet-union-by-marxist-leninist Author: Unknown License: Public Domain (not a subject of copyright according the Russian civil code) Alternate: https://openclipart.org/detail/85555/communist-sabbatarian-ribbon-by-rones-85555 * Tortoise and the Hare - tortoise.png Source: https://openclipart.org/detail/27911/green-tortoise-%28cartoon%29-by-arking-27911 Author: arking License: Public Domain * Over the River and Through the Wood - riding_hood.png Source: https://openclipart.org/detail/163771/little-red-riding-hood-by-tzunghaor Author: tzunghaor License: Public Domain * Mirror Mirror On The Wall - mirror.png Source: https://openclipart.org/detail/152155/mirror-frame-by-gsagri04 Author: Unknown (gsagri04?) License: Public Domain Alternate: https://openclipart.org/detail/174179/miroir-rectangulaire-by-defaz36-174179 * East of the Sun & West of the Moon - windrose.png Source: https://commons.wikimedia.org/wiki/File:Compass_card_%28sl%29.svg Author: Andrejj License: CC0 (https://creativecommons.org/publicdomain/zero/1.0/deed.en) * Mad Hatter - mad_hatter.png Source: http://www.krepcio.com/vitreosity/archives/MadHatter-ALL-illus600.jpg Author: John Tenniel License: Public Doman Augmented: Colored by me, and used the card from... https://openclipart.org/detail/1892/mad-hatter-with-label-on-hat-by-nayrhcrel * Double Double Toil and Trouble - cauldron.png Source: https://openclipart.org/detail/174099/cauldron-by-jarda-174099 Author: Unknown (jarda?) License: Public Domain Getting started with any new library can be daunting, so let's get our feet wet by jumping straight in with some tutorials... .. list-table:: :widths: 1 10 :header-rows: 0 * - .. image:: /_static/section/tutorials/train.png :target: tutorials/the_little_relay_that_could.html - .. image:: /_static/label/the_little_relay_that_could.png :target: tutorials/the_little_relay_that_could.html Basics for talking with Tor. This will step you through configuring Tor and writing your first script to talk with it. * - .. image:: /_static/section/tutorials/soviet.png :target: tutorials/to_russia_with_love.html - .. image:: /_static/label/to_russia_with_love.png :target: tutorials/to_russia_with_love.html Rather than talking to Tor, we'll now talk **through** it. In this tutorial we'll programmatically start Tor then use it to read a site through mother Russia! * - .. image:: /_static/section/tutorials/tortoise.png :target: tutorials/tortoise_and_the_hare.html - .. image:: /_static/label/tortoise_and_the_hare.png :target: tutorials/tortoise_and_the_hare.html As Tor runs it generates a variety of **events** that controllers can subscribe to be notified of. In this tutorial we'll do just that, writing a curses application that graphs the bandwidth usage of Tor. * - .. image:: /_static/section/tutorials/riding_hood.png :target: tutorials/over_the_river.html - .. image:: /_static/label/over_the_river.png :target: tutorials/over_the_river.html `Hidden services `_ are a way of providing a service that isn't easily trackable. As a dissident, for instance, this could let you safely publish a blog without getting your door kicked down. Here we'll walk you through an example. * - .. image:: /_static/section/tutorials/mirror.png :target: tutorials/mirror_mirror_on_the_wall.html - .. image:: /_static/label/mirror_mirror_on_the_wall.png :target: tutorials/mirror_mirror_on_the_wall.html Getting and acting upon information about relays in the Tor network. Relay information is provided through documents called **descriptors**. This walks you through both where to get them and a small script to tell you the fastest Tor exits. * - .. image:: /_static/section/tutorials/windrose.png :target: tutorials/east_of_the_sun.html - .. image:: /_static/label/east_of_the_sun.png :target: tutorials/east_of_the_sun.html Stem provides several utility modules frequently useful for Tor controller applications. Here we introduce some of them. * - .. image:: /_static/section/tutorials/mad_hatter.png :target: tutorials/down_the_rabbit_hole.html - .. image:: /_static/label/down_the_rabbit_hole.png :target: tutorials/down_the_rabbit_hole.html Interactive interpreter for Tor that provides you with direct access to Tor's `control interface `_ via either python or direct requests. This is an easy way of experimenting with Stem and learning what Tor can do. * - .. image:: /_static/section/tutorials/cauldron.png :target: tutorials/double_double_toil_and_trouble.html - .. image:: /_static/label/double_double_toil_and_trouble.png :target: tutorials/double_double_toil_and_trouble.html Sometimes it's easiest to learn a library by seeing how it's used in the wild. This is a directory of scripts and applications that use Stem. ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685604455.0 stem-1.8.2/requirements.txt0000644000175000017510000000005300000000000014474 0ustar00userusermock pyflakes pycodestyle tox cryptography ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685517001.0 stem-1.8.2/run_tests.py0000755000175000017510000003335100000000000013622 0ustar00useruser#!/usr/bin/env python # Copyright 2011-2019, Damian Johnson and The Tor Project # See LICENSE for licensing information """ Runs unit and integration tests. For usage information run this with '--help'. """ import errno import importlib import logging import multiprocessing import os import signal import sys import threading import time import traceback import unittest try: from StringIO import StringIO except ImportError: from io import StringIO import stem.prereq import stem.util.conf import stem.util.log import stem.util.system import stem.util.test_tools import stem.version import test import test.arguments import test.output import test.runner import test.task from test.output import STATUS, SUCCESS, ERROR, NO_NL, STDERR, println CONFIG = stem.util.conf.config_dict('test', { 'integ.test_directory': './test/data', 'test.unit_tests': '', 'test.integ_tests': '', }) MOCK_UNAVAILABLE_MSG = """\ To run stem's tests you'll need mock... https://pypi.org/project/mock/ """ MOCK_OUT_OF_DATE_MSG = """\ To run stem's tests you'll need mock. You have version %s, but you need version 0.8.0 or later... https://pypi.org/project/mock/ """ NEW_CAPABILITIES_FOUND = """\ Your version of Tor has capabilities stem currently isn't taking advantage of. If you're running the latest version of stem then please file a ticket on: https://trac.torproject.org/projects/tor/wiki/doc/stem/bugs New capabilities are: """ def log_traceback(sig, frame): """ Dump the stacktraces of all threads on stderr. """ # Attempt to get the name of our signal. Unfortunately the signal module # doesn't provide a reverse mapping, so we need to get this ourselves # from the attributes. signal_name = str(sig) for attr_name, value in signal.__dict__.items(): if attr_name.startswith('SIG') and value == sig: signal_name = attr_name break lines = [ '', # initial NL so we start on our own line '=' * 80, 'Signal %s received by thread %s in process %i' % (signal_name, threading.current_thread().name, os.getpid()), ] for thread_name, stacktrace in test.output.thread_stacktraces().items(): lines.append('-' * 80) lines.append('%s thread stacktrace' % thread_name) lines.append('') lines.append(stacktrace) lines.append('=' * 80) println('\n'.join(lines), STDERR) # propagate the signal to any multiprocessing children for p in multiprocessing.active_children(): try: os.kill(p.pid, sig) except OSError as exc: if exc.errno == errno.ESRCH: pass # already exited, no such process else: raise exc if sig == signal.SIGABRT: # we need to use os._exit() to abort every thread in the interpreter, # rather than raise a SystemExit exception that can be caught os._exit(-1) def get_unit_tests(module_prefixes = None): """ Provides the classes for our unit tests. :param list module_prefixes: only provide the test if the module starts with any of these substrings :returns: an **iterator** for our unit tests """ return _get_tests(CONFIG['test.unit_tests'].splitlines(), module_prefixes) def get_integ_tests(module_prefixes = None): """ Provides the classes for our integration tests. :param list module_prefixes: only provide the test if the module starts with any of these substrings :returns: an **iterator** for our integration tests """ return _get_tests(CONFIG['test.integ_tests'].splitlines(), module_prefixes) def _get_tests(modules, module_prefixes): for import_name in modules: if not module_prefixes: yield import_name else: cropped_name = test.arguments.crop_module_name(import_name) cropped_name = cropped_name.rsplit('.', 1)[0] # exclude the class name for prefix in module_prefixes: if cropped_name.startswith(prefix): yield import_name break elif prefix.startswith(cropped_name): # single test for this module test_name = prefix.rsplit('.', 1)[1] yield '%s.%s' % (import_name, test_name) break def main(): start_time = time.time() try: stem.prereq.check_requirements() except ImportError as exc: println('%s\n' % exc) sys.exit(1) signal.signal(signal.SIGABRT, log_traceback) signal.signal(signal.SIGUSR1, log_traceback) test_config = stem.util.conf.get_config('test') test_config.load(os.path.join(test.STEM_BASE, 'test', 'settings.cfg')) if 'STEM_TEST_CONFIG' in os.environ: test_config.load(os.environ['STEM_TEST_CONFIG']) try: args = test.arguments.parse(sys.argv[1:]) test.task.TOR_VERSION.args = (args.tor_path,) test.output.SUPPRESS_STDOUT = args.quiet except ValueError as exc: println(str(exc)) sys.exit(1) if args.print_help: println(test.arguments.get_help()) sys.exit() elif not args.run_unit and not args.run_integ: println('Nothing to run (for usage provide --help)\n') sys.exit() if not stem.prereq.is_mock_available(): try: import mock println(MOCK_OUT_OF_DATE_MSG % mock.__version__) except ImportError: println(MOCK_UNAVAILABLE_MSG) if stem.util.system.is_available('pip'): println("You can get it by running 'sudo pip install mock'.") elif stem.util.system.is_available('apt-get'): println("You can get it by running 'sudo apt-get install python-mock'.") sys.exit(1) test.task.run( 'INITIALISING', test.task.STEM_VERSION, test.task.TOR_VERSION if args.run_integ else None, test.task.PYTHON_VERSION, test.task.PLATFORM_VERSION, test.task.CRYPTO_VERSION, test.task.MOCK_VERSION, test.task.PYFLAKES_VERSION, test.task.PYCODESTYLE_VERSION, test.task.CLEAN_PYC, test.task.UNUSED_TESTS, test.task.IMPORT_TESTS, test.task.REMOVE_TOR_DATA_DIR if args.run_integ else None, test.task.PYFLAKES_TASK if not args.specific_test else None, test.task.PYCODESTYLE_TASK if not args.specific_test else None, ) # Test logging. If '--log-file' is provided we log to that location, # otherwise we buffer messages and log to stdout after its test completes. logging_buffer = None if args.logging_runlevel: if args.logging_path: handler = logging.FileHandler(args.logging_path, mode = 'w') handler.setLevel(stem.util.log.logging_level(args.logging_runlevel)) handler.setFormatter(stem.util.log.FORMATTER) else: handler = logging_buffer = stem.util.log.LogBuffer(args.logging_runlevel) stem.util.log.get_logger().addHandler(handler) # filters for how testing output is displayed error_tracker = test.output.ErrorTracker() output_filters = ( error_tracker.get_filter(), test.output.runtimes, test.output.strip_module, test.output.align_results, test.output.colorize, ) # Number of tests that we have skipped. This is only available with python # 2.7 or later because before that test results didn't have a 'skipped' # attribute. skipped_tests = 0 if args.run_integ: default_test_dir = stem.util.system.expand_path(CONFIG['integ.test_directory'], test.STEM_BASE) async_args = test.AsyncTestArgs(default_test_dir, args.tor_path) for module_str in stem.util.test_tools.ASYNC_TESTS: module = importlib.import_module(module_str.rsplit('.', 1)[0]) test_classes = [v for k, v in module.__dict__.items() if k.startswith('Test')] if len(test_classes) != 1: print('BUG: Detected multiple tests for %s: %s' % (module_str, ', '.join(test_classes))) sys.exit(1) test_classes[0].run_tests(async_args) if args.run_unit: test.output.print_divider('UNIT TESTS', True) error_tracker.set_category('UNIT TEST') for test_class in get_unit_tests(args.specific_test): run_result = _run_test(args, test_class, output_filters) test.output.print_logging(logging_buffer) skipped_tests += len(getattr(run_result, 'skipped', [])) println() if args.run_integ: test.output.print_divider('INTEGRATION TESTS', True) integ_runner = test.runner.get_runner() for target in args.run_targets: error_tracker.set_category(target) try: integ_runner.start(target, args.attribute_targets, args.tor_path) println('Running tests...\n', STATUS) for test_class in get_integ_tests(args.specific_test): run_result = _run_test(args, test_class, output_filters) test.output.print_logging(logging_buffer) skipped_tests += len(getattr(run_result, 'skipped', [])) if not integ_runner.assert_tor_is_running(): # our tor process died error_tracker.register_error() break except KeyboardInterrupt: println(' aborted starting tor: keyboard interrupt\n', ERROR) break except ValueError as exc: println(str(exc), ERROR) # can arise if there's bad settings.cfg data break except OSError: error_tracker.register_error() finally: println() integ_runner.stop() println() # We should have joined on all threads. If not then that indicates a # leak that could both likely be a bug and disrupt further targets. active_threads = threading.enumerate() if len(active_threads) > 1: println('Threads lingering after test run:', ERROR) for lingering_thread in active_threads: println(' %s' % lingering_thread, ERROR) break static_check_issues = {} for task in (test.task.PYFLAKES_TASK, test.task.PYCODESTYLE_TASK): if not task.is_available and task.unavailable_msg: println(task.unavailable_msg, ERROR) else: task.join() # no-op if these haven't been run if task.result: for path, issues in task.result.items(): for issue in issues: static_check_issues.setdefault(path, []).append(issue) _print_static_issues(static_check_issues) if error_tracker.has_errors_occured(): println('TESTING FAILED (%i seconds)' % (time.time() - start_time), ERROR, STDERR) for line in error_tracker: println(' %s' % line, ERROR, STDERR) error_modules = error_tracker.get_modules() if len(error_modules) < 10 and not args.specific_test: println('\nYou can re-run just these tests with:\n', ERROR, STDERR) for module in error_modules: println(' %s --test %s' % (' '.join(sys.argv), test.arguments.crop_module_name(module)), ERROR, STDERR) else: if skipped_tests > 0: println('%i TESTS WERE SKIPPED' % skipped_tests, STATUS) println('TESTING PASSED (%i seconds)\n' % (time.time() - start_time), SUCCESS) new_capabilities = test.get_new_capabilities() if new_capabilities: println(NEW_CAPABILITIES_FOUND, ERROR) for capability_type, msg in sorted(new_capabilities, key = lambda x: x[1]): println(' [%s] %s' % (capability_type, msg), ERROR) sys.exit(1 if error_tracker.has_errors_occured() else 0) def _print_static_issues(static_check_issues): if static_check_issues: println('STATIC CHECKS', STATUS) for file_path in static_check_issues: println('* %s' % file_path, STATUS) # Make a dict of line numbers to its issues. This is so we can both sort # by the line number and clear any duplicate messages. line_to_issues = {} for issue in static_check_issues[file_path]: line_to_issues.setdefault(issue.line_number, set()).add((issue.message, issue.line)) for line_number in sorted(line_to_issues.keys()): for msg, line in line_to_issues[line_number]: line_count = '%-4s' % line_number content = ' | %s' % line.strip() if line.strip() else '' println(' line %s - %-40s%s' % (line_count, msg, content)) println() def _run_test(args, test_class, output_filters): # When logging to a file we don't have stdout's test delimiters to correlate # logs with the test that generated them. if args.logging_path: stem.util.log.notice('Beginning test %s' % test_class) start_time = time.time() # Test classes look like... # # test.unit.util.conf.TestConf.test_parse_enum_csv # # We want to strip the 'test.unit.' or 'test.integ.' prefix since it's # redundant. We also want to drop the test class name. The individual test # name at the end it optional (only present if we used the '--test' # argument). label_comp = test_class.split('.')[2:] del label_comp[-1 if label_comp[-1][0].isupper() else -2] test_label = ' %-52s' % ('.'.join(label_comp) + '...') if args.verbose: test.output.print_divider(test_class) else: println(test_label, STATUS, NO_NL) try: suite = unittest.TestLoader().loadTestsFromName(test_class) except AttributeError: if args.specific_test: # should only come up if user provided '--test' for something that doesn't exist println(' no such test', ERROR) return None else: raise except Exception as exc: println(' failed', ERROR) traceback.print_exc(exc) return None test_results = StringIO() run_result = stem.util.test_tools.TimedTestRunner(test_results, verbosity = 2).run(suite) if args.verbose: println(test.output.apply_filters(test_results.getvalue(), *output_filters)) elif not run_result.failures and not run_result.errors: println(' success (%0.2fs)' % (time.time() - start_time), SUCCESS) else: if args.quiet: println(test_label, STATUS, NO_NL, STDERR) println(' failed (%0.2fs)' % (time.time() - start_time), ERROR, STDERR) println(test.output.apply_filters(test_results.getvalue(), *output_filters), STDERR) else: println(' failed (%0.2fs)' % (time.time() - start_time), ERROR) println(test.output.apply_filters(test_results.getvalue(), *output_filters), NO_NL) if args.logging_path: stem.util.log.notice('Finished test %s' % test_class) return run_result if __name__ == '__main__': main() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1685609151.1076665 stem-1.8.2/setup.cfg0000644000175000017510000000004600000000000013033 0ustar00useruser[egg_info] tag_build = tag_date = 0 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685523463.0 stem-1.8.2/setup.py0000644000175000017510000001252200000000000012726 0ustar00useruser#!/usr/bin/env python # Copyright 2012-2019, Damian Johnson and The Tor Project # See LICENSE for licensing information # # Release Checklist # ================= # # * Recache latest information (cache_manual.py and cache_fallback_directories.py) # # * Test with python2.6, python2.7, python3, and pypy. # |- If using tox run... # | # | % tox -- --all --target RUN_ALL,ONLINE # | # | Otherwise, for each interpreter run... # | # | % [python_interpreter] run_tests.py --all --target RUN_ALL,ONLINE # | # |- Pypy test instructions for ubuntu are... # | # | % sudo apt-get install pypy # | % wget https://bootstrap.pypa.io/get-pip.py # | % pypy get-pip.py --user # | % ~/.local/bin/pip install mock pycodestyle pyflakes --user # | % pypy ./run_tests.py --all # | # +- Some version of python 3.x should be available in your platform's # repositories. To test against a specific version on ubuntu try the # following. In this example, Python 3.7... # # % sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus # % sudo apt-get install libncursesw5-dev libgdbm-dev libc6-dev # % sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev # % sudo apt-get install libssl-dev openssl libffi-dev # # % wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz # % tar -xzf Python-3.7.0.tgz # % mv Python-3.7.0 ~ # # % cd ~/Python-3.7.0 # % ./configure # % make # # % cd /path/to/stem # % ~/Python-3.7.0/python ./run_tests.py --all # # * Tag the release # |- Bump stem's version (in stem/__init__.py and docs/index.rst). # |- git commit -a -m "Stem release 1.0.0" # |- git tag -u 9ABBEEC6 -m "stem release 1.0.0" 1.0.0 d0bb81a # +- git push --tags # # * Dry-run release on https://pypi.org/project/stem/ # |- python setup.py sdist --dryrun # |- gpg --detach-sig --armor dist/stem-dry-run-1.0.0.tar.gz # |- twine upload dist/* # +- Check that https://pypi.org/project/stem-dry-run/ looks correct, comparing it to https://pypi.org/project/stem/ # +- Don't worry about the 'Bug Tracker' being missing. That's an attribute of the project itself. # # * Final release # |- rm dist/* # |- python setup.py sdist # |- gpg --detach-sig --armor dist/stem-1.0.0.tar.gz # +- twine upload dist/* # # * Contact package maintainers # * Announce the release (example: https://blog.torproject.org/blog/stem-release-11) import distutils.core import os import sys import stem if '--dryrun' in sys.argv: DRY_RUN = True sys.argv.remove('--dryrun') else: DRY_RUN = False SUMMARY = 'Stem is a Python controller library that allows applications to interact with Tor (https://www.torproject.org/).' DRY_RUN_SUMMARY = 'Ignore this package. This is dry-run release creation to work around PyPI limitations (https://github.com/pypa/packaging-problems/issues/74#issuecomment-260716129).' DESCRIPTION = """ For tutorials and API documentation see `Stem's homepage `_. Quick Start ----------- To install you can either use... :: pip install stem ... or install from the source tarball. Stem supports both the python 2.x and 3.x series. To use its python3 counterpart you simply need to install using that version of python. :: python3 setup.py install After that, give some `tutorials `_ a try! For questions or to discuss project ideas we're available on `irc `_ and the `tor-dev@ email list `_. """.strip() MANIFEST = """ include cache_fallback_directories.py include cache_manual.py include LICENSE include README.md include MANIFEST.in include requirements.txt include run_tests.py include tox.ini graft docs graft test global-exclude __pycache__ global-exclude *.orig global-exclude *.pyc global-exclude *.swp global-exclude *.swo global-exclude .tox global-exclude *~ recursive-exclude test/data * recursive-exclude docs/_build * """.strip() # installation requires us to be in our setup.py's directory os.chdir(os.path.dirname(os.path.abspath(__file__))) with open('MANIFEST.in', 'w') as manifest_file: manifest_file.write(MANIFEST) try: distutils.core.setup( name = 'stem-dry-run' if DRY_RUN else 'stem', version = stem.__version__, description = DRY_RUN_SUMMARY if DRY_RUN else SUMMARY, long_description = DESCRIPTION, license = stem.__license__, author = stem.__author__, author_email = stem.__contact__, url = stem.__url__, packages = ['stem', 'stem.client', 'stem.descriptor', 'stem.interpreter', 'stem.response', 'stem.util'], keywords = 'tor onion controller', scripts = ['tor-prompt'], package_data = { 'stem': ['cached_fallbacks.cfg', 'cached_manual.sqlite', 'settings.cfg'], 'stem.interpreter': ['settings.cfg'], 'stem.util': ['ports.cfg'], }, classifiers = [ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)', 'Topic :: Security', 'Topic :: Software Development :: Libraries :: Python Modules', ], ) finally: if os.path.exists('MANIFEST.in'): os.remove('MANIFEST.in') if os.path.exists('MANIFEST'): os.remove('MANIFEST') ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1685609151.063666 stem-1.8.2/stem/0000755000175000017510000000000000000000000012162 5ustar00useruser././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685605781.0 stem-1.8.2/stem/__init__.py0000644000175000017510000007471300000000000014307 0ustar00useruser# Copyright 2011-2019, Damian Johnson and The Tor Project # See LICENSE for licensing information """ Library for working with the tor process. **Module Overview:** :: Endpoint - Networking endpoint. |- ORPort - Tor relay endpoint. +- DirPort - Descriptor mirror. ControllerError - Base exception raised when using the controller. |- ProtocolError - Malformed socket data. | |- OperationFailed - Tor was unable to successfully complete the operation. | |- UnsatisfiableRequest - Tor was unable to satisfy a valid request. | | |- CircuitExtensionFailed - Attempt to make or extend a circuit failed. | | |- DescriptorUnavailable - The given relay descriptor is unavailable. | | +- Timeout - Caller requested timeout was reached. | | | | | +- InvalidRequest - Invalid request. | +- InvalidArguments - Invalid request parameters. | +- SocketError - Communication with the socket failed. +- SocketClosed - Socket has been shut down. DownloadFailed - Inability to download a resource. +- DownloadTimeout - Download timeout reached. .. data:: Runlevel (enum) Rating of importance used for event logging. =========== =========== Runlevel Description =========== =========== **ERR** critical issues that impair tor's ability to function **WARN** non-critical issues the user should be aware of **NOTICE** information that may be helpful to the user **INFO** high level runtime information **DEBUG** low level runtime information =========== =========== .. data:: Signal (enum) Signals that the tor process will accept. .. versionchanged:: 1.3.0 Added the HEARTBEAT signal. .. versionchanged:: 1.8.0 Added the ACTIVE and DORMANT signals. You can check for Tor support for these signals with the **DORMANT_MODE** :data:`~stem.version.Requirement` ========================= =========== Signal Description ========================= =========== **RELOAD** or **HUP** reloads our torrc **SHUTDOWN** or **INT** shut down, waiting ShutdownWaitLength first if we're a relay **DUMP** or **USR1** dumps information about open connections and circuits to our log **DEBUG** or **USR2** switch our logging to the DEBUG runlevel **HALT** or **TERM** exit tor immediately **NEWNYM** switch to new circuits, so new application requests don't share any circuits with old ones (this also clears our DNS cache) **CLEARDNSCACHE** clears cached DNS results **HEARTBEAT** trigger a heartbeat log message **DORMANT** enables *dormant mode*, during which tor will avoid cpu and network usage **ACTIVE** disables *dormant mode* ========================= =========== .. data:: Flag (enum) Flag assigned to tor relays by the authorities to indicate various characteristics. **Note:** The BADDIRECTORY flag was `removed from tor `_. .. versionchanged:: 1.5.0 Added the NO_ED_CONSENSUS flag. .. versionchanged:: 1.8.0 Added the STALE_DESC flag. =================== =========== Flag Description =================== =========== **AUTHORITY** relay is a directory authority **BADEXIT** relay shouldn't be used as an exit due to being either problematic or malicious **BADDIRECTORY** relay shouldn't be used for directory information **EXIT** relay's exit policy makes it more useful as an exit rather than middle hop **FAST** relay's suitable for high-bandwidth circuits **GUARD** relay's suitable for being an entry guard (first hop) **HSDIR** relay is being used as a v2 hidden service directory **NAMED** relay can be referred to by its nickname **NO_ED_CONSENSUS** relay's Ed25519 doesn't reflrect the consensus **RUNNING** relay is currently usable **STABLE** relay's suitable for long-lived circuits **STALE_DESC** relay descriptor is outdated and should be re-uploaded **UNNAMED** relay isn't currently bound to a nickname **V2DIR** relay supports the v2 directory protocol **VALID** relay has been validated =================== =========== .. data:: CircStatus (enum) Statuses that a circuit can be in. Tor may provide statuses not in this enum. .. versionchanged:: 1.6.0 Added the GUARD_WAIT signal. ============== =========== CircStatus Description ============== =========== **LAUNCHED** new circuit was created **BUILT** circuit finished being created and can accept traffic **GUARD_WAIT** waiting to see if there's a circuit with a better guard before using **EXTENDED** circuit has been extended by a hop **FAILED** circuit construction failed **CLOSED** circuit has been closed ============== =========== .. data:: CircBuildFlag (enum) Attributes about how a circuit is built. These were introduced in tor version 0.2.3.11. Tor may provide flags not in this enum. ================= =========== CircBuildFlag Description ================= =========== **ONEHOP_TUNNEL** single hop circuit to fetch directory information **IS_INTERNAL** circuit that won't be used for client traffic **NEED_CAPACITY** circuit only includes high capacity relays **NEED_UPTIME** circuit only includes relays with a high uptime ================= =========== .. data:: CircPurpose (enum) Description of what a circuit is intended for. These were introduced in tor version 0.2.1.6. Tor may provide purposes not in this enum. ==================== =========== CircPurpose Description ==================== =========== **GENERAL** client traffic or fetching directory information **HS_CLIENT_INTRO** client side introduction point for a hidden service circuit **HS_CLIENT_REND** client side hidden service rendezvous circuit **HS_SERVICE_INTRO** server side introduction point for a hidden service circuit **HS_SERVICE_REND** server side hidden service rendezvous circuit **TESTING** testing to see if we're reachable, so we can be used as a relay **CONTROLLER** circuit that was built by a controller **MEASURE_TIMEOUT** circuit being kept around to see how long it takes ==================== =========== .. data:: CircClosureReason (enum) Reason that a circuit is being closed or failed to be established. Tor may provide reasons not in this enum. ========================= =========== CircClosureReason Description ========================= =========== **NONE** no reason given **TORPROTOCOL** violation in the tor protocol **INTERNAL** internal error **REQUESTED** requested by the client via a TRUNCATE command **HIBERNATING** relay is currently hibernating **RESOURCELIMIT** relay is out of memory, sockets, or circuit IDs **CONNECTFAILED** unable to contact the relay **OR_IDENTITY** relay had the wrong OR identification **OR_CONN_CLOSED** connection failed after being established **FINISHED** circuit has expired (see tor's MaxCircuitDirtiness config option) **TIMEOUT** circuit construction timed out **DESTROYED** circuit unexpectedly closed **NOPATH** not enough relays to make a circuit **NOSUCHSERVICE** requested hidden service does not exist **MEASUREMENT_EXPIRED** same as **TIMEOUT** except that it was left open for measurement purposes ========================= =========== .. data:: CircEvent (enum) Type of change reflected in a circuit by a CIRC_MINOR event. Tor may provide event types not in this enum. ===================== =========== CircEvent Description ===================== =========== **PURPOSE_CHANGED** circuit purpose or hidden service state has changed **CANNIBALIZED** circuit connections are being reused for a different circuit ===================== =========== .. data:: HiddenServiceState (enum) State that a hidden service circuit can have. These were introduced in tor version 0.2.3.11. Tor may provide states not in this enum. Enumerations fall into four groups based on their prefix... ======= =========== Prefix Description ======= =========== HSCI_* client-side introduction-point HSCR_* client-side rendezvous-point HSSI_* service-side introduction-point HSSR_* service-side rendezvous-point ======= =========== ============================= =========== HiddenServiceState Description ============================= =========== **HSCI_CONNECTING** connecting to the introductory point **HSCI_INTRO_SENT** sent INTRODUCE1 and awaiting a reply **HSCI_DONE** received a reply, circuit is closing **HSCR_CONNECTING** connecting to the introductory point **HSCR_ESTABLISHED_IDLE** rendezvous-point established, awaiting an introduction **HSCR_ESTABLISHED_WAITING** introduction received, awaiting a rend **HSCR_JOINED** connected to the hidden service **HSSI_CONNECTING** connecting to the introductory point **HSSI_ESTABLISHED** established introductory point **HSSR_CONNECTING** connecting to the introductory point **HSSR_JOINED** connected to the rendezvous-point ============================= =========== .. data:: RelayEndReason (enum) Reasons why the stream is to be closed. =================== =========== RelayEndReason Description =================== =========== **MISC** none of the following reasons **RESOLVEFAILED** unable to resolve the hostname **CONNECTREFUSED** remote host refused the connection **EXITPOLICY** OR refuses to connect to the destination **DESTROY** circuit is being shut down **DONE** connection has been closed **TIMEOUT** connection timed out **NOROUTE** routing error while contacting the destination **HIBERNATING** relay is temporarily hibernating **INTERNAL** internal error at the relay **RESOURCELIMIT** relay has insufficient resources to service the request **CONNRESET** connection was unexpectedly reset **TORPROTOCOL** violation in the tor protocol **NOTDIRECTORY** directory information requested from a relay that isn't mirroring it =================== =========== .. data:: StreamStatus (enum) State that a stream going through tor can have. Tor may provide states not in this enum. ================= =========== StreamStatus Description ================= =========== **NEW** request for a new connection **NEWRESOLVE** request to resolve an address **REMAP** address is being re-mapped to another **SENTCONNECT** sent a connect cell along a circuit **SENTRESOLVE** sent a resolve cell along a circuit **SUCCEEDED** stream has been established **FAILED** stream is detached, and won't be re-established **DETACHED** stream is detached, but might be re-established **CLOSED** stream has closed ================= =========== .. data:: StreamClosureReason (enum) Reason that a stream is being closed or failed to be established. This includes all values in the :data:`~stem.RelayEndReason` enumeration as well as the following. Tor may provide reasons not in this enum. ===================== =========== StreamClosureReason Description ===================== =========== **END** endpoint has sent a RELAY_END cell **PRIVATE_ADDR** endpoint was a private address (127.0.0.1, 10.0.0.1, etc) ===================== =========== .. data:: StreamSource (enum) Cause of a stream being remapped to another address. Tor may provide sources not in this enum. ============= =========== StreamSource Description ============= =========== **CACHE** tor is remapping because of a cached answer **EXIT** exit relay requested the remap ============= =========== .. data:: StreamPurpose (enum) Purpsoe of the stream. This is only provided with new streams and tor may provide purposes not in this enum. ================= =========== StreamPurpose Description ================= =========== **DIR_FETCH** fetching directory information (descriptors, consensus, etc) **DIR_UPLOAD** uploading our descriptor to an authority **DNS_REQUEST** user initiated DNS request **DIRPORT_TEST** checking that our directory port is reachable externally **USER** either relaying user traffic or not one of the above categories ================= =========== .. data:: ORStatus (enum) State that an OR connection can have. Tor may provide states not in this enum. =============== =========== ORStatus Description =============== =========== **NEW** received OR connection, starting server-side handshake **LAUNCHED** launched outbound OR connection, starting client-side handshake **CONNECTED** OR connection has been established **FAILED** attempt to establish OR connection failed **CLOSED** OR connection has been closed =============== =========== .. data:: ORClosureReason (enum) Reason that an OR connection is being closed or failed to be established. Tor may provide reasons not in this enum. =================== =========== ORClosureReason Description =================== =========== **DONE** OR connection shut down cleanly **CONNECTREFUSED** got a ECONNREFUSED when connecting to the relay **IDENTITY** identity of the relay wasn't what we expected **CONNECTRESET** got a ECONNRESET or similar error from relay **TIMEOUT** got a ETIMEOUT or similar error from relay **NOROUTE** got a ENOTCONN, ENETUNREACH, ENETDOWN, EHOSTUNREACH, or similar error from relay **IOERROR** got a different kind of error from relay **RESOURCELIMIT** relay has insufficient resources to service the request **MISC** connection refused for another reason **PT_MISSING** no pluggable transport was available =================== =========== .. data:: AuthDescriptorAction (enum) Actions that directory authorities might take with relay descriptors. Tor may provide reasons not in this enum. ===================== =========== AuthDescriptorAction Description ===================== =========== **ACCEPTED** accepting the descriptor as the newest version **DROPPED** descriptor rejected without notifying the relay **REJECTED** relay notified that its descriptor has been rejected ===================== =========== .. data:: StatusType (enum) Sources for tor status events. Tor may provide types not in this enum. ============= =========== StatusType Description ============= =========== **GENERAL** general tor activity, not specifically as a client or relay **CLIENT** related to our activity as a tor client **SERVER** related to our activity as a tor relay ============= =========== .. data:: GuardType (enum) Use a guard relay can be for. Tor may provide types not in this enum. =========== =========== GuardType Description =========== =========== **ENTRY** used to connect to the tor network =========== =========== .. data:: GuardStatus (enum) Status a guard relay can have. Tor may provide types not in this enum. ============= =========== GuardStatus Description ============= =========== **NEW** new guard that we weren't previously using **DROPPED** removed from use as one of our guards **UP** guard is now reachable **DOWN** guard is now unreachable **BAD** consensus or relay considers this relay to be unusable as a guard **GOOD** consensus or relay considers this relay to be usable as a guard ============= =========== .. data:: TimeoutSetType (enum) Way in which the timeout value of a circuit is changing. Tor may provide types not in this enum. =============== =========== TimeoutSetType Description =============== =========== **COMPUTED** tor has computed a new timeout based on prior circuits **RESET** timeout reverted to its default **SUSPENDED** timeout reverted to its default until network connectivity has recovered **DISCARD** throwing out timeout value from when the network was down **RESUME** resumed calculations to determine the proper timeout =============== =========== .. data:: ConnectionType (enum) Purpose for a tor connection. Tor may provide types not in this enum. The meaning behind these values is a bit unclear, pending :trac:`10086`. .. versionadded:: 1.2.0 =============== =========== ConnectionType Description =============== =========== **OR** carrying traffic within the tor network **DIR** fetching or sending tor descriptor data **EXIT** carrying traffic between the tor network and an external destination =============== =========== .. data:: TokenBucket (enum) Bucket categories of TB_EMPTY events. .. versionadded:: 1.2.0 =============== =========== TokenBucket Description =============== =========== **GLOBAL** global token bucket **RELAY** relay token bucket **ORCONN** bucket used for OR connections =============== =========== .. data:: HSDescAction (enum) Action beeing taken in a HS_DESC event. .. versionadded:: 1.2.0 .. versionchanged:: 1.4.0 Added the UPLOAD and UPLOADED actions. .. versionchanged:: 1.5.0 Added the CREATED action. =============== =========== HSDescAction Description =============== =========== **REQUESTED** uncached hidden service descriptor is being requested **UPLOAD** descriptor is being uploaded with HSPOST **RECEIVED** hidden service descriptor has been retrieved **UPLOADED** descriptor was uploaded with HSPOST **IGNORE** fetched descriptor was ignored because we already have its v0 descriptor **FAILED** we were unable to retrieve the descriptor **CREATED** hidden service descriptor was just created =============== =========== .. data:: HSDescReason (enum) Reason for the hidden service descriptor to fail to be fetched. .. versionadded:: 1.3.0 .. versionchanged:: 1.4.0 Added the UPLOAD_REJECTED reason. .. versionchanged:: 1.6.0 Added the QUERY_NO_HSDIR reason. .. versionchanged:: 1.8.0 Added the QUERY_RATE_LIMITED reason. ======================= =========== HSDescReason Description ======================= =========== **BAD_DESC** descriptor was unparseable **QUERY_REJECTED** hidden service directory refused to provide the descriptor **UPLOAD_REJECTED** descriptor was rejected by the hidden service directory **NOT_FOUND** descriptor with the given identifier wasn't found **QUERY_NO_HSDIR** no hidden service directory was found **QUERY_RATE_LIMITED** request was throttled **UNEXPECTED** failure type is unknown ======================= =========== .. data:: HSAuth (enum) Type of authentication being used for a HS_DESC event. .. versionadded:: 1.2.0 ================= =========== HSAuth Description ================= =========== **NO_AUTH** no authentication **BASIC_AUTH** general hidden service authentication **STEALTH_AUTH** authentication method that hides service activity from unauthorized clients **UNKNOWN** unrecognized method of authentication ================= =========== """ import traceback import stem.util import stem.util.enum __version__ = '1.8.2' __author__ = 'Damian Johnson' __contact__ = 'atagar@torproject.org' __url__ = 'https://stem.torproject.org/' __license__ = 'LGPLv3' __all__ = [ 'client', 'descriptor', 'response', 'util', 'connection', 'control', 'directory', 'exit_policy', 'prereq', 'process', 'socket', 'version', 'ControllerError', 'ProtocolError', 'OperationFailed', 'UnsatisfiableRequest', 'CircuitExtensionFailed', 'DescriptorUnavailable', 'Timeout', 'InvalidRequest', 'InvalidArguments', 'SocketError', 'SocketClosed', 'DownloadFailed', 'DownloadTimeout', 'Runlevel', 'Signal', 'Flag', 'CircStatus', 'CircBuildFlag', 'CircPurpose', 'CircClosureReason', 'CircEvent', 'HiddenServiceState', 'HSAuth', 'HSDescAction', 'HSDescReason', 'RelayEndReason', 'StreamStatus', 'StreamClosureReason', 'StreamSource', 'StreamPurpose', 'ORStatus', 'ORClosureReason', 'AuthDescriptorAction', 'StatusType', 'GuardType', 'GuardStatus', 'TimeoutSetType', ] # Constant that we use by default for our User-Agent when downloading descriptors stem.USER_AGENT = 'Stem/%s' % __version__ # Constant to indicate an undefined argument default. Usually we'd use None for # this, but users will commonly provide None as the argument so need something # else fairly unique... UNDEFINED = '' class Endpoint(object): """ Tor endpint that can be connected to. .. versionadded:: 1.7.0 :var str address: ip address of the endpoint :var int port: port of the endpoint """ def __init__(self, address, port): if not stem.util.connection.is_valid_ipv4_address(address) and not stem.util.connection.is_valid_ipv6_address(address): raise ValueError("'%s' isn't a valid IPv4 or IPv6 address" % address) elif not stem.util.connection.is_valid_port(port): raise ValueError("'%s' isn't a valid port" % port) self.address = address self.port = int(port) def __hash__(self): return stem.util._hash_attr(self, 'address', 'port', cache = True) def __eq__(self, other): return hash(self) == hash(other) if isinstance(other, Endpoint) else False def __ne__(self, other): return not self == other class ORPort(Endpoint): """ Tor relay's ORPort. The endpoint on which Tor accepts relay traffic. :var list link_protocols: link protocol version we're willing to establish """ def __init__(self, address, port, link_protocols = None): super(ORPort, self).__init__(address, port) self.link_protocols = link_protocols def __hash__(self): return stem.util._hash_attr(self, 'link_protocols', parent = Endpoint, cache = True) class DirPort(Endpoint): """ Tor relay's DirPort. The endpoint on which Tor provides http access for downloading descriptors. """ class ControllerError(Exception): 'Base error for controller communication issues.' class ProtocolError(ControllerError): 'Malformed content from the control socket.' class OperationFailed(ControllerError): """ Base exception class for failed operations that return an error code :var str code: error code returned by Tor :var str message: error message returned by Tor or a human readable error message """ def __init__(self, code = None, message = None): super(ControllerError, self).__init__(message) self.code = code self.message = message class UnsatisfiableRequest(OperationFailed): """ Exception raised if Tor was unable to process our request. """ class CircuitExtensionFailed(UnsatisfiableRequest): """ An attempt to create or extend a circuit failed. :var stem.response.CircuitEvent circ: response notifying us of the failure """ def __init__(self, message, circ = None): super(CircuitExtensionFailed, self).__init__(message = message) self.circ = circ class DescriptorUnavailable(UnsatisfiableRequest): """ Tor was unable to provide a descriptor for the given relay. .. versionchanged:: 1.7.0 Subclassed under UnsatisfiableRequest rather than OperationFailed. """ def __init__(self, message): super(DescriptorUnavailable, self).__init__(message = message) class Timeout(UnsatisfiableRequest): """ Timeout requested by the caller was reached. .. versionadded:: 1.7.0 """ def __init__(self, message): super(Timeout, self).__init__(message = message) class InvalidRequest(OperationFailed): """ Exception raised when the request was invalid or malformed. """ class InvalidArguments(InvalidRequest): """ Exception class for requests which had invalid arguments. :var str code: error code returned by Tor :var str message: error message returned by Tor or a human readable error message :var list arguments: a list of arguments which were invalid """ def __init__(self, code = None, message = None, arguments = None): super(InvalidArguments, self).__init__(code, message) self.arguments = arguments class SocketError(ControllerError): 'Error arose while communicating with the control socket.' class SocketClosed(SocketError): 'Control socket was closed before completing the message.' class DownloadFailed(IOError): """ Inability to download a resource. Python's urllib module raises a wide variety of undocumented exceptions (urllib2.URLError, socket.timeout, and others). This wraps lower level failures in a common exception type that retains their exception and `stacktrace `_. .. versionadded:: 1.8.0 :var str url: url we failed to download from :var Exception error: original urllib exception :var traceback stacktrace: original stacktrace :var str stacktrace_str: string representation of the stacktrace """ def __init__(self, url, error, stacktrace, message = None): if message is None: # The string representation of exceptions can reside in several places. # urllib.URLError use a 'reason' attribute that in turn may referrence # low level structures such as socket.gaierror. Whereas most exceptions # use a 'message' attribute. reason = str(error) all_str_repr = ( getattr(getattr(error, 'reason', None), 'strerror', None), getattr(error, 'reason', None), getattr(error, 'message', None), ) for str_repr in all_str_repr: if str_repr and isinstance(str_repr, str): reason = str_repr break message = 'Failed to download from %s (%s): %s' % (url, type(error).__name__, reason) super(DownloadFailed, self).__init__(message) self.url = url self.error = error self.stacktrace = stacktrace self.stacktrace_str = ''.join(traceback.format_tb(stacktrace)) class DownloadTimeout(DownloadFailed): """ Timeout reached while downloading this resource. .. versionadded:: 1.8.0 """ def __init__(self, url, error, stacktrace, timeout): message = 'Failed to download from %s: %0.1f second timeout reached' % (url, timeout) super(DownloadTimeout, self).__init__(url, error, stacktrace, message) Runlevel = stem.util.enum.UppercaseEnum( 'DEBUG', 'INFO', 'NOTICE', 'WARN', 'ERR', ) Flag = stem.util.enum.Enum( ('AUTHORITY', 'Authority'), ('BADEXIT', 'BadExit'), ('BADDIRECTORY', 'BadDirectory'), ('EXIT', 'Exit'), ('FAST', 'Fast'), ('GUARD', 'Guard'), ('HSDIR', 'HSDir'), ('NAMED', 'Named'), ('NO_ED_CONSENSUS', 'NoEdConsensus'), ('RUNNING', 'Running'), ('STABLE', 'Stable'), ('STALE_DESC', 'StaleDesc'), ('UNNAMED', 'Unnamed'), ('V2DIR', 'V2Dir'), ('V3DIR', 'V3Dir'), ('VALID', 'Valid'), ) Signal = stem.util.enum.UppercaseEnum( 'RELOAD', 'HUP', 'SHUTDOWN', 'INT', 'DUMP', 'USR1', 'DEBUG', 'USR2', 'HALT', 'TERM', 'NEWNYM', 'CLEARDNSCACHE', 'HEARTBEAT', 'ACTIVE', 'DORMANT', ) CircStatus = stem.util.enum.UppercaseEnum( 'LAUNCHED', 'BUILT', 'GUARD_WAIT', 'EXTENDED', 'FAILED', 'CLOSED', ) CircBuildFlag = stem.util.enum.UppercaseEnum( 'ONEHOP_TUNNEL', 'IS_INTERNAL', 'NEED_CAPACITY', 'NEED_UPTIME', ) CircPurpose = stem.util.enum.UppercaseEnum( 'GENERAL', 'HS_CLIENT_INTRO', 'HS_CLIENT_REND', 'HS_SERVICE_INTRO', 'HS_SERVICE_REND', 'TESTING', 'CONTROLLER', 'MEASURE_TIMEOUT', ) CircClosureReason = stem.util.enum.UppercaseEnum( 'NONE', 'TORPROTOCOL', 'INTERNAL', 'REQUESTED', 'HIBERNATING', 'RESOURCELIMIT', 'CONNECTFAILED', 'OR_IDENTITY', 'OR_CONN_CLOSED', 'FINISHED', 'TIMEOUT', 'DESTROYED', 'NOPATH', 'NOSUCHSERVICE', 'MEASUREMENT_EXPIRED', ) CircEvent = stem.util.enum.UppercaseEnum( 'PURPOSE_CHANGED', 'CANNIBALIZED', ) HiddenServiceState = stem.util.enum.UppercaseEnum( 'HSCI_CONNECTING', 'HSCI_INTRO_SENT', 'HSCI_DONE', 'HSCR_CONNECTING', 'HSCR_ESTABLISHED_IDLE', 'HSCR_ESTABLISHED_WAITING', 'HSCR_JOINED', 'HSSI_CONNECTING', 'HSSI_ESTABLISHED', 'HSSR_CONNECTING', 'HSSR_JOINED', ) RelayEndReason = stem.util.enum.UppercaseEnum( 'MISC', 'RESOLVEFAILED', 'CONNECTREFUSED', 'EXITPOLICY', 'DESTROY', 'DONE', 'TIMEOUT', 'NOROUTE', 'HIBERNATING', 'INTERNAL', 'RESOURCELIMIT', 'CONNRESET', 'TORPROTOCOL', 'NOTDIRECTORY', ) StreamStatus = stem.util.enum.UppercaseEnum( 'NEW', 'NEWRESOLVE', 'REMAP', 'SENTCONNECT', 'SENTRESOLVE', 'SUCCEEDED', 'FAILED', 'DETACHED', 'CLOSED', ) # StreamClosureReason is a superset of RelayEndReason StreamClosureReason = stem.util.enum.UppercaseEnum(*(RelayEndReason.keys() + [ 'END', 'PRIVATE_ADDR', ])) StreamSource = stem.util.enum.UppercaseEnum( 'CACHE', 'EXIT', ) StreamPurpose = stem.util.enum.UppercaseEnum( 'DIR_FETCH', 'DIR_UPLOAD', 'DNS_REQUEST', 'DIRPORT_TEST', 'USER', ) ORStatus = stem.util.enum.UppercaseEnum( 'NEW', 'LAUNCHED', 'CONNECTED', 'FAILED', 'CLOSED', ) ORClosureReason = stem.util.enum.UppercaseEnum( 'DONE', 'CONNECTREFUSED', 'IDENTITY', 'CONNECTRESET', 'TIMEOUT', 'NOROUTE', 'IOERROR', 'RESOURCELIMIT', 'MISC', 'PT_MISSING', ) AuthDescriptorAction = stem.util.enum.UppercaseEnum( 'ACCEPTED', 'DROPPED', 'REJECTED', ) StatusType = stem.util.enum.UppercaseEnum( 'GENERAL', 'CLIENT', 'SERVER', ) GuardType = stem.util.enum.UppercaseEnum( 'ENTRY', ) GuardStatus = stem.util.enum.UppercaseEnum( 'NEW', 'UP', 'DOWN', 'BAD', 'GOOD', 'DROPPED', ) TimeoutSetType = stem.util.enum.UppercaseEnum( 'COMPUTED', 'RESET', 'SUSPENDED', 'DISCARD', 'RESUME', ) ConnectionType = stem.util.enum.UppercaseEnum( 'OR', 'DIR', 'EXIT', ) TokenBucket = stem.util.enum.UppercaseEnum( 'GLOBAL', 'RELAY', 'ORCONN', ) HSDescAction = stem.util.enum.UppercaseEnum( 'REQUESTED', 'UPLOAD', 'RECEIVED', 'UPLOADED', 'IGNORE', 'FAILED', 'CREATED', ) HSDescReason = stem.util.enum.UppercaseEnum( 'BAD_DESC', 'QUERY_REJECTED', 'UPLOAD_REJECTED', 'NOT_FOUND', 'QUERY_NO_HSDIR', 'UNEXPECTED', ) HSAuth = stem.util.enum.UppercaseEnum( 'NO_AUTH', 'BASIC_AUTH', 'STEALTH_AUTH', 'UNKNOWN', ) import stem.util.connection # importing afterward to avoid circular dependency ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/stem/cached_fallbacks.cfg0000644000175000017510000015002700000000000016061 0ustar00userusertor_commit 1dd95278970f9f32d83a31fe73e0258a30523539 stem_commit ec67e06398d6bbbcefdc14b56d2e91bd49f47539 header.timestamp 20190625114911 header.source whitelist header.version 2.0.0 header.timestamp0 20190625114911 header.timestamp1 20190628085927 header.type fallback 001524DD403D729F08F7E5D77813EF12756CFA8D.address 185.13.39.197 001524DD403D729F08F7E5D77813EF12756CFA8D.or_port 443 001524DD403D729F08F7E5D77813EF12756CFA8D.dir_port 80 001524DD403D729F08F7E5D77813EF12756CFA8D.nickname Neldoreth 001524DD403D729F08F7E5D77813EF12756CFA8D.has_extrainfo false 025B66CEBC070FCB0519D206CF0CF4965C20C96E.address 185.100.85.61 025B66CEBC070FCB0519D206CF0CF4965C20C96E.or_port 443 025B66CEBC070FCB0519D206CF0CF4965C20C96E.dir_port 80 025B66CEBC070FCB0519D206CF0CF4965C20C96E.nickname nibbana 025B66CEBC070FCB0519D206CF0CF4965C20C96E.has_extrainfo false 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.address 185.225.17.3 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.or_port 443 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.dir_port 80 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.nickname Nebuchadnezzar 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.has_extrainfo false 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.orport6_address 2a0a:c800:1:5::3 0338F9F55111FE8E3570E7DE117EF3AF999CC1D7.orport6_port 443 0B85617241252517E8ECF2CFC7F4C1A32DCD153F.address 163.172.149.155 0B85617241252517E8ECF2CFC7F4C1A32DCD153F.or_port 443 0B85617241252517E8ECF2CFC7F4C1A32DCD153F.dir_port 80 0B85617241252517E8ECF2CFC7F4C1A32DCD153F.nickname niij02 0B85617241252517E8ECF2CFC7F4C1A32DCD153F.has_extrainfo false 0C039F35C2E40DCB71CD8A07E97C7FD7787D42D6.address 5.200.21.144 0C039F35C2E40DCB71CD8A07E97C7FD7787D42D6.or_port 443 0C039F35C2E40DCB71CD8A07E97C7FD7787D42D6.dir_port 80 0C039F35C2E40DCB71CD8A07E97C7FD7787D42D6.nickname libel 0C039F35C2E40DCB71CD8A07E97C7FD7787D42D6.has_extrainfo false 113143469021882C3A4B82F084F8125B08EE471E.address 37.252.185.182 113143469021882C3A4B82F084F8125B08EE471E.or_port 8080 113143469021882C3A4B82F084F8125B08EE471E.dir_port 9030 113143469021882C3A4B82F084F8125B08EE471E.nickname parasol 113143469021882C3A4B82F084F8125B08EE471E.has_extrainfo false 113143469021882C3A4B82F084F8125B08EE471E.orport6_address 2a00:63c1:a:182::2 113143469021882C3A4B82F084F8125B08EE471E.orport6_port 8080 11DF0017A43AF1F08825CD5D973297F81AB00FF3.address 37.120.174.249 11DF0017A43AF1F08825CD5D973297F81AB00FF3.or_port 443 11DF0017A43AF1F08825CD5D973297F81AB00FF3.dir_port 80 11DF0017A43AF1F08825CD5D973297F81AB00FF3.nickname gGDHjdcC6zAlM8k08lX 11DF0017A43AF1F08825CD5D973297F81AB00FF3.has_extrainfo false 11DF0017A43AF1F08825CD5D973297F81AB00FF3.orport6_address 2a03:4000:6:724c:df98:15f9:b34d:443 11DF0017A43AF1F08825CD5D973297F81AB00FF3.orport6_port 443 1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423.address 95.85.8.226 1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423.or_port 443 1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423.dir_port 80 1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423.nickname ccrelaycc 1211AC1BBB8A1AF7CBA86BCE8689AA3146B86423.has_extrainfo false 12AD30E5D25AA67F519780E2111E611A455FDC89.address 193.11.114.43 12AD30E5D25AA67F519780E2111E611A455FDC89.or_port 9001 12AD30E5D25AA67F519780E2111E611A455FDC89.dir_port 9030 12AD30E5D25AA67F519780E2111E611A455FDC89.nickname mdfnet1 12AD30E5D25AA67F519780E2111E611A455FDC89.has_extrainfo false 12AD30E5D25AA67F519780E2111E611A455FDC89.orport6_address 2001:6b0:30:1000::99 12AD30E5D25AA67F519780E2111E611A455FDC89.orport6_port 9050 12FD624EE73CEF37137C90D38B2406A66F68FAA2.address 37.157.195.87 12FD624EE73CEF37137C90D38B2406A66F68FAA2.or_port 443 12FD624EE73CEF37137C90D38B2406A66F68FAA2.dir_port 8030 12FD624EE73CEF37137C90D38B2406A66F68FAA2.nickname thanatosCZ 12FD624EE73CEF37137C90D38B2406A66F68FAA2.has_extrainfo false 183005F78229D94EE51CE7795A42280070A48D0D.address 217.182.51.248 183005F78229D94EE51CE7795A42280070A48D0D.or_port 443 183005F78229D94EE51CE7795A42280070A48D0D.dir_port 80 183005F78229D94EE51CE7795A42280070A48D0D.nickname Cosworth02 183005F78229D94EE51CE7795A42280070A48D0D.has_extrainfo false 185663B7C12777F052B2C2D23D7A239D8DA88A0F.address 171.25.193.25 185663B7C12777F052B2C2D23D7A239D8DA88A0F.or_port 443 185663B7C12777F052B2C2D23D7A239D8DA88A0F.dir_port 80 185663B7C12777F052B2C2D23D7A239D8DA88A0F.nickname DFRI5 185663B7C12777F052B2C2D23D7A239D8DA88A0F.has_extrainfo false 185663B7C12777F052B2C2D23D7A239D8DA88A0F.orport6_address 2001:67c:289c::25 185663B7C12777F052B2C2D23D7A239D8DA88A0F.orport6_port 443 1938EBACBB1A7BFA888D9623C90061130E63BB3F.address 149.56.141.138 1938EBACBB1A7BFA888D9623C90061130E63BB3F.or_port 9001 1938EBACBB1A7BFA888D9623C90061130E63BB3F.dir_port 9030 1938EBACBB1A7BFA888D9623C90061130E63BB3F.nickname Aerodynamik04 1938EBACBB1A7BFA888D9623C90061130E63BB3F.has_extrainfo false 1AE039EE0B11DB79E4B4B29CBA9F752864A0259E.address 81.7.14.253 1AE039EE0B11DB79E4B4B29CBA9F752864A0259E.or_port 443 1AE039EE0B11DB79E4B4B29CBA9F752864A0259E.dir_port 9001 1AE039EE0B11DB79E4B4B29CBA9F752864A0259E.nickname Ichotolot60 1AE039EE0B11DB79E4B4B29CBA9F752864A0259E.has_extrainfo true 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.address 50.7.74.171 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.or_port 9001 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.dir_port 9030 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.nickname theia1 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.has_extrainfo false 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.orport6_address 2001:49f0:d002:2::51 1CD17CB202063C51C7DAD3BACEF87ECE81C2350F.orport6_port 443 1F6ABD086F40B890A33C93CC4606EE68B31C9556.address 199.184.246.250 1F6ABD086F40B890A33C93CC4606EE68B31C9556.or_port 443 1F6ABD086F40B890A33C93CC4606EE68B31C9556.dir_port 80 1F6ABD086F40B890A33C93CC4606EE68B31C9556.nickname dao 1F6ABD086F40B890A33C93CC4606EE68B31C9556.has_extrainfo false 1F6ABD086F40B890A33C93CC4606EE68B31C9556.orport6_address 2620:124:1009:1::171 1F6ABD086F40B890A33C93CC4606EE68B31C9556.orport6_port 443 20462CBA5DA4C2D963567D17D0B7249718114A68.address 212.47.229.2 20462CBA5DA4C2D963567D17D0B7249718114A68.or_port 9001 20462CBA5DA4C2D963567D17D0B7249718114A68.dir_port 9030 20462CBA5DA4C2D963567D17D0B7249718114A68.nickname scaletor 20462CBA5DA4C2D963567D17D0B7249718114A68.has_extrainfo false 20462CBA5DA4C2D963567D17D0B7249718114A68.orport6_address 2001:bc8:4400:2100::f03 20462CBA5DA4C2D963567D17D0B7249718114A68.orport6_port 9001 204DFD2A2C6A0DC1FA0EACB495218E0B661704FD.address 77.247.181.164 204DFD2A2C6A0DC1FA0EACB495218E0B661704FD.or_port 443 204DFD2A2C6A0DC1FA0EACB495218E0B661704FD.dir_port 80 204DFD2A2C6A0DC1FA0EACB495218E0B661704FD.nickname HaveHeart 204DFD2A2C6A0DC1FA0EACB495218E0B661704FD.has_extrainfo false 230A8B2A8BA861210D9B4BA97745AEC217A94207.address 163.172.176.167 230A8B2A8BA861210D9B4BA97745AEC217A94207.or_port 443 230A8B2A8BA861210D9B4BA97745AEC217A94207.dir_port 80 230A8B2A8BA861210D9B4BA97745AEC217A94207.nickname niij01 230A8B2A8BA861210D9B4BA97745AEC217A94207.has_extrainfo false 2F0F32AB1E5B943CA7D062C03F18960C86E70D94.address 97.74.237.196 2F0F32AB1E5B943CA7D062C03F18960C86E70D94.or_port 9001 2F0F32AB1E5B943CA7D062C03F18960C86E70D94.dir_port 9030 2F0F32AB1E5B943CA7D062C03F18960C86E70D94.nickname Minotaur 2F0F32AB1E5B943CA7D062C03F18960C86E70D94.has_extrainfo false 322C6E3A973BC10FC36DE3037AD27BC89F14723B.address 212.83.154.33 322C6E3A973BC10FC36DE3037AD27BC89F14723B.or_port 8443 322C6E3A973BC10FC36DE3037AD27BC89F14723B.dir_port 8080 322C6E3A973BC10FC36DE3037AD27BC89F14723B.nickname bauruine204 322C6E3A973BC10FC36DE3037AD27BC89F14723B.has_extrainfo false 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.address 109.105.109.162 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.or_port 60784 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.dir_port 52860 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.nickname ndnr1 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.has_extrainfo false 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_address 2001:948:7:2::163 32EE911D968BE3E016ECA572BB1ED0A9EE43FC2F.orport6_port 5001 330CD3DB6AD266DC70CDB512B036957D03D9BC59.address 185.100.84.212 330CD3DB6AD266DC70CDB512B036957D03D9BC59.or_port 443 330CD3DB6AD266DC70CDB512B036957D03D9BC59.dir_port 80 330CD3DB6AD266DC70CDB512B036957D03D9BC59.nickname TeamTardis 330CD3DB6AD266DC70CDB512B036957D03D9BC59.has_extrainfo false 330CD3DB6AD266DC70CDB512B036957D03D9BC59.orport6_address 2a06:1700:0:7::1 330CD3DB6AD266DC70CDB512B036957D03D9BC59.orport6_port 443 361D33C96D0F161275EE67E2C91EE10B276E778B.address 37.157.255.35 361D33C96D0F161275EE67E2C91EE10B276E778B.or_port 9090 361D33C96D0F161275EE67E2C91EE10B276E778B.dir_port 9030 361D33C96D0F161275EE67E2C91EE10B276E778B.nickname cxx4freedom 361D33C96D0F161275EE67E2C91EE10B276E778B.has_extrainfo false 375DCBB2DBD94E5263BC0C015F0C9E756669617E.address 64.79.152.132 375DCBB2DBD94E5263BC0C015F0C9E756669617E.or_port 443 375DCBB2DBD94E5263BC0C015F0C9E756669617E.dir_port 80 375DCBB2DBD94E5263BC0C015F0C9E756669617E.nickname ebola 375DCBB2DBD94E5263BC0C015F0C9E756669617E.has_extrainfo false 39F91959416763AFD34DBEEC05474411B964B2DC.address 213.183.60.21 39F91959416763AFD34DBEEC05474411B964B2DC.or_port 443 39F91959416763AFD34DBEEC05474411B964B2DC.dir_port 9030 39F91959416763AFD34DBEEC05474411B964B2DC.nickname angeltest11 39F91959416763AFD34DBEEC05474411B964B2DC.has_extrainfo false 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.address 50.7.74.174 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.or_port 9001 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.dir_port 9030 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.nickname theia7 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.has_extrainfo false 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.orport6_address 2001:49f0:d002:2::57 3AFDAAD91A15B4C6A7686A53AA8627CA871FF491.orport6_port 443 3CA0D15567024D2E0B557DC0CF3E962B37999A79.address 199.249.230.83 3CA0D15567024D2E0B557DC0CF3E962B37999A79.or_port 443 3CA0D15567024D2E0B557DC0CF3E962B37999A79.dir_port 80 3CA0D15567024D2E0B557DC0CF3E962B37999A79.nickname QuintexAirVPN30 3CA0D15567024D2E0B557DC0CF3E962B37999A79.has_extrainfo false 3CA0D15567024D2E0B557DC0CF3E962B37999A79.orport6_address 2620:7:6001::ffff:c759:e653 3CA0D15567024D2E0B557DC0CF3E962B37999A79.orport6_port 80 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.address 51.38.65.160 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.or_port 9001 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.dir_port 9030 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.nickname rofltor10 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.has_extrainfo false 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.orport6_address 2001:41d0:801:2000::f6e 3CB4193EF4E239FCEDC4DC43468E0B0D6B67ACC3.orport6_port 9001 3E53D3979DB07EFD736661C934A1DED14127B684.address 217.79.179.177 3E53D3979DB07EFD736661C934A1DED14127B684.or_port 9001 3E53D3979DB07EFD736661C934A1DED14127B684.dir_port 9030 3E53D3979DB07EFD736661C934A1DED14127B684.nickname Unnamed 3E53D3979DB07EFD736661C934A1DED14127B684.has_extrainfo false 3E53D3979DB07EFD736661C934A1DED14127B684.orport6_address 2001:4ba0:fff9:131:6c4f::90d3 3E53D3979DB07EFD736661C934A1DED14127B684.orport6_port 9001 3F092986E9B87D3FDA09B71FA3A602378285C77A.address 66.111.2.16 3F092986E9B87D3FDA09B71FA3A602378285C77A.or_port 9001 3F092986E9B87D3FDA09B71FA3A602378285C77A.dir_port 9030 3F092986E9B87D3FDA09B71FA3A602378285C77A.nickname NYCBUG1 3F092986E9B87D3FDA09B71FA3A602378285C77A.has_extrainfo false 3F092986E9B87D3FDA09B71FA3A602378285C77A.orport6_address 2610:1c0:0:5::16 3F092986E9B87D3FDA09B71FA3A602378285C77A.orport6_port 9001 4061C553CA88021B8302F0814365070AAE617270.address 185.100.85.101 4061C553CA88021B8302F0814365070AAE617270.or_port 9001 4061C553CA88021B8302F0814365070AAE617270.dir_port 9030 4061C553CA88021B8302F0814365070AAE617270.nickname TorExitRomania 4061C553CA88021B8302F0814365070AAE617270.has_extrainfo false 4623A9EC53BFD83155929E56D6F7B55B5E718C24.address 163.172.157.213 4623A9EC53BFD83155929E56D6F7B55B5E718C24.or_port 443 4623A9EC53BFD83155929E56D6F7B55B5E718C24.dir_port 8080 4623A9EC53BFD83155929E56D6F7B55B5E718C24.nickname Cotopaxi 4623A9EC53BFD83155929E56D6F7B55B5E718C24.has_extrainfo false 465D17C6FC297E3857B5C6F152006A1E212944EA.address 195.123.245.141 465D17C6FC297E3857B5C6F152006A1E212944EA.or_port 443 465D17C6FC297E3857B5C6F152006A1E212944EA.dir_port 9030 465D17C6FC297E3857B5C6F152006A1E212944EA.nickname angeltest14 465D17C6FC297E3857B5C6F152006A1E212944EA.has_extrainfo false 46791D156C9B6C255C2665D4D8393EC7DBAA7798.address 31.31.78.49 46791D156C9B6C255C2665D4D8393EC7DBAA7798.or_port 443 46791D156C9B6C255C2665D4D8393EC7DBAA7798.dir_port 80 46791D156C9B6C255C2665D4D8393EC7DBAA7798.nickname KrigHaBandolo 46791D156C9B6C255C2665D4D8393EC7DBAA7798.has_extrainfo false 484A10BA2B8D48A5F0216674C8DD50EF27BC32F3.address 193.70.43.76 484A10BA2B8D48A5F0216674C8DD50EF27BC32F3.or_port 9001 484A10BA2B8D48A5F0216674C8DD50EF27BC32F3.dir_port 9030 484A10BA2B8D48A5F0216674C8DD50EF27BC32F3.nickname Aerodynamik03 484A10BA2B8D48A5F0216674C8DD50EF27BC32F3.has_extrainfo false 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.address 37.187.102.186 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.or_port 9001 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.dir_port 9030 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.nickname txtfileTorNode65536 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.has_extrainfo false 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_address 2001:41d0:a:26ba::1 489D94333DF66D57FFE34D9D59CC2D97E2CB0053.orport6_port 9001 4EB55679FA91363B97372554F8DC7C63F4E5B101.address 81.7.13.84 4EB55679FA91363B97372554F8DC7C63F4E5B101.or_port 443 4EB55679FA91363B97372554F8DC7C63F4E5B101.dir_port 80 4EB55679FA91363B97372554F8DC7C63F4E5B101.nickname torpidsDEisppro 4EB55679FA91363B97372554F8DC7C63F4E5B101.has_extrainfo false 4EB55679FA91363B97372554F8DC7C63F4E5B101.orport6_address 2a02:180:1:1::5b8f:538c 4EB55679FA91363B97372554F8DC7C63F4E5B101.orport6_port 443 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.address 108.53.208.157 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.or_port 443 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.dir_port 80 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.nickname Binnacle 4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2.has_extrainfo true 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.address 5.9.158.75 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.or_port 9001 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.dir_port 9030 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.nickname zwiebeltoralf2 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.has_extrainfo true 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.orport6_address 2a01:4f8:190:514a::2 509EAB4C5D10C9A9A24B4EA0CE402C047A2D64E6.orport6_port 9001 51E1CF613FD6F9F11FE24743C91D6F9981807D82.address 81.7.16.182 51E1CF613FD6F9F11FE24743C91D6F9981807D82.or_port 443 51E1CF613FD6F9F11FE24743C91D6F9981807D82.dir_port 80 51E1CF613FD6F9F11FE24743C91D6F9981807D82.nickname torpidsDEisppro3 51E1CF613FD6F9F11FE24743C91D6F9981807D82.has_extrainfo false 51E1CF613FD6F9F11FE24743C91D6F9981807D82.orport6_address 2a02:180:1:1::517:10b6 51E1CF613FD6F9F11FE24743C91D6F9981807D82.orport6_port 993 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.address 192.160.102.166 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.or_port 9001 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.dir_port 80 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.nickname chaucer 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.has_extrainfo false 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.orport6_address 2620:132:300c:c01d::6 547DA56F6B88B6C596B3E3086803CDA4F0EF8F21.orport6_port 9002 557ACEC850F54EEE65839F83CACE2B0825BE811E.address 192.160.102.170 557ACEC850F54EEE65839F83CACE2B0825BE811E.or_port 9001 557ACEC850F54EEE65839F83CACE2B0825BE811E.dir_port 80 557ACEC850F54EEE65839F83CACE2B0825BE811E.nickname ogopogo 557ACEC850F54EEE65839F83CACE2B0825BE811E.has_extrainfo false 557ACEC850F54EEE65839F83CACE2B0825BE811E.orport6_address 2620:132:300c:c01d::a 557ACEC850F54EEE65839F83CACE2B0825BE811E.orport6_port 9002 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.address 50.7.74.170 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.or_port 443 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.dir_port 80 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.nickname theia8 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.has_extrainfo false 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.orport6_address 2001:49f0:d002:2::58 5BF17163CBE73D8CD9FDBE030C944EA05707DA93.orport6_port 443 5E56738E7F97AA81DEEF59AF28494293DFBFCCDF.address 172.98.193.43 5E56738E7F97AA81DEEF59AF28494293DFBFCCDF.or_port 443 5E56738E7F97AA81DEEF59AF28494293DFBFCCDF.dir_port 80 5E56738E7F97AA81DEEF59AF28494293DFBFCCDF.nickname Backplane 5E56738E7F97AA81DEEF59AF28494293DFBFCCDF.has_extrainfo false 616081EC829593AF4232550DE6FFAA1D75B37A90.address 95.128.43.164 616081EC829593AF4232550DE6FFAA1D75B37A90.or_port 443 616081EC829593AF4232550DE6FFAA1D75B37A90.dir_port 80 616081EC829593AF4232550DE6FFAA1D75B37A90.nickname AquaRayTerminus 616081EC829593AF4232550DE6FFAA1D75B37A90.has_extrainfo false 616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_address 2a02:ec0:209:10::4 616081EC829593AF4232550DE6FFAA1D75B37A90.orport6_port 443 68F175CCABE727AA2D2309BCD8789499CEE36ED7.address 163.172.139.104 68F175CCABE727AA2D2309BCD8789499CEE36ED7.or_port 443 68F175CCABE727AA2D2309BCD8789499CEE36ED7.dir_port 8080 68F175CCABE727AA2D2309BCD8789499CEE36ED7.nickname Pichincha 68F175CCABE727AA2D2309BCD8789499CEE36ED7.has_extrainfo false 6A7551EEE18F78A9813096E82BF84F740D32B911.address 94.130.186.5 6A7551EEE18F78A9813096E82BF84F740D32B911.or_port 443 6A7551EEE18F78A9813096E82BF84F740D32B911.dir_port 80 6A7551EEE18F78A9813096E82BF84F740D32B911.nickname TorMachine 6A7551EEE18F78A9813096E82BF84F740D32B911.has_extrainfo false 6A7551EEE18F78A9813096E82BF84F740D32B911.orport6_address 2a01:4f8:1c0c:45f7::1 6A7551EEE18F78A9813096E82BF84F740D32B911.orport6_port 443 6EF897645B79B6CB35E853B32506375014DE3621.address 80.127.137.19 6EF897645B79B6CB35E853B32506375014DE3621.or_port 443 6EF897645B79B6CB35E853B32506375014DE3621.dir_port 80 6EF897645B79B6CB35E853B32506375014DE3621.nickname d6relay 6EF897645B79B6CB35E853B32506375014DE3621.has_extrainfo false 6EF897645B79B6CB35E853B32506375014DE3621.orport6_address 2001:981:47c1:1::6 6EF897645B79B6CB35E853B32506375014DE3621.orport6_port 443 7088D485934E8A403B81531F8C90BDC75FA43C98.address 37.139.8.104 7088D485934E8A403B81531F8C90BDC75FA43C98.or_port 9001 7088D485934E8A403B81531F8C90BDC75FA43C98.dir_port 9030 7088D485934E8A403B81531F8C90BDC75FA43C98.nickname Basil 7088D485934E8A403B81531F8C90BDC75FA43C98.has_extrainfo false 7088D485934E8A403B81531F8C90BDC75FA43C98.orport6_address 2a03:b0c0:0:1010::24c:1001 7088D485934E8A403B81531F8C90BDC75FA43C98.orport6_port 9001 70C55A114C0EF3DC5784A4FAEE64388434A3398F.address 188.138.88.42 70C55A114C0EF3DC5784A4FAEE64388434A3398F.or_port 443 70C55A114C0EF3DC5784A4FAEE64388434A3398F.dir_port 80 70C55A114C0EF3DC5784A4FAEE64388434A3398F.nickname torpidsFRplusserver 70C55A114C0EF3DC5784A4FAEE64388434A3398F.has_extrainfo false 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.address 85.235.250.88 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.or_port 443 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.dir_port 80 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.nickname TykRelay01 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.has_extrainfo false 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.orport6_address 2a01:3a0:1:1900:85:235:250:88 72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE.orport6_port 443 742C45F2D9004AADE0077E528A4418A6A81BC2BA.address 178.17.170.23 742C45F2D9004AADE0077E528A4418A6A81BC2BA.or_port 9001 742C45F2D9004AADE0077E528A4418A6A81BC2BA.dir_port 9030 742C45F2D9004AADE0077E528A4418A6A81BC2BA.nickname TorExitMoldova2 742C45F2D9004AADE0077E528A4418A6A81BC2BA.has_extrainfo false 742C45F2D9004AADE0077E528A4418A6A81BC2BA.orport6_address 2a00:1dc0:caff:7d::8254 742C45F2D9004AADE0077E528A4418A6A81BC2BA.orport6_port 9001 745369332749021C6FAF100D327BC3BF1DF4707B.address 50.7.74.173 745369332749021C6FAF100D327BC3BF1DF4707B.or_port 9001 745369332749021C6FAF100D327BC3BF1DF4707B.dir_port 9030 745369332749021C6FAF100D327BC3BF1DF4707B.nickname theia5 745369332749021C6FAF100D327BC3BF1DF4707B.has_extrainfo false 745369332749021C6FAF100D327BC3BF1DF4707B.orport6_address 2001:49f0:d002:2::55 745369332749021C6FAF100D327BC3BF1DF4707B.orport6_port 443 77131D7E2EC1CA9B8D737502256DA9103599CE51.address 77.247.181.166 77131D7E2EC1CA9B8D737502256DA9103599CE51.or_port 443 77131D7E2EC1CA9B8D737502256DA9103599CE51.dir_port 80 77131D7E2EC1CA9B8D737502256DA9103599CE51.nickname CriticalMass 77131D7E2EC1CA9B8D737502256DA9103599CE51.has_extrainfo false 775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E.address 5.196.23.64 775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E.or_port 9001 775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E.dir_port 9030 775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E.nickname Aerodynamik01 775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E.has_extrainfo false 79509683AB4C8DDAF90A120C69A4179C6CD5A387.address 185.244.193.141 79509683AB4C8DDAF90A120C69A4179C6CD5A387.or_port 9001 79509683AB4C8DDAF90A120C69A4179C6CD5A387.dir_port 9030 79509683AB4C8DDAF90A120C69A4179C6CD5A387.nickname DerDickeReloaded 79509683AB4C8DDAF90A120C69A4179C6CD5A387.has_extrainfo false 79509683AB4C8DDAF90A120C69A4179C6CD5A387.orport6_address 2a03:4000:27:192:24:12:1984:4 79509683AB4C8DDAF90A120C69A4179C6CD5A387.orport6_port 9001 7BB70F8585DFC27E75D692970C0EEB0F22983A63.address 51.254.136.195 7BB70F8585DFC27E75D692970C0EEB0F22983A63.or_port 443 7BB70F8585DFC27E75D692970C0EEB0F22983A63.dir_port 80 7BB70F8585DFC27E75D692970C0EEB0F22983A63.nickname torproxy02 7BB70F8585DFC27E75D692970C0EEB0F22983A63.has_extrainfo false 7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55.address 77.247.181.162 7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55.or_port 443 7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55.dir_port 80 7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55.nickname sofia 7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55.has_extrainfo false 7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3.address 185.220.101.48 7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3.or_port 20048 7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3.dir_port 10048 7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3.nickname niftyporcupine 7E281CD2C315C4F7A84BC7C8721C3BC974DDBFA3.has_extrainfo false 80AAF8D5956A43C197104CEF2550CD42D165C6FB.address 193.11.114.45 80AAF8D5956A43C197104CEF2550CD42D165C6FB.or_port 9002 80AAF8D5956A43C197104CEF2550CD42D165C6FB.dir_port 9031 80AAF8D5956A43C197104CEF2550CD42D165C6FB.nickname mdfnet2 80AAF8D5956A43C197104CEF2550CD42D165C6FB.has_extrainfo false 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.address 51.254.96.208 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.or_port 9001 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.dir_port 9030 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.nickname rofltor01 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.has_extrainfo false 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.orport6_address 2001:41d0:401:3100::30dc 8101421BEFCCF4C271D5483C5AABCAAD245BBB9D.orport6_port 9001 81B75D534F91BFB7C57AB67DA10BCEF622582AE8.address 192.42.116.16 81B75D534F91BFB7C57AB67DA10BCEF622582AE8.or_port 443 81B75D534F91BFB7C57AB67DA10BCEF622582AE8.dir_port 80 81B75D534F91BFB7C57AB67DA10BCEF622582AE8.nickname hviv104 81B75D534F91BFB7C57AB67DA10BCEF622582AE8.has_extrainfo false 823AA81E277F366505545522CEDC2F529CE4DC3F.address 192.160.102.164 823AA81E277F366505545522CEDC2F529CE4DC3F.or_port 9001 823AA81E277F366505545522CEDC2F529CE4DC3F.dir_port 80 823AA81E277F366505545522CEDC2F529CE4DC3F.nickname snowfall 823AA81E277F366505545522CEDC2F529CE4DC3F.has_extrainfo false 823AA81E277F366505545522CEDC2F529CE4DC3F.orport6_address 2620:132:300c:c01d::4 823AA81E277F366505545522CEDC2F529CE4DC3F.orport6_port 9002 844AE9CAD04325E955E2BE1521563B79FE7094B7.address 192.87.28.82 844AE9CAD04325E955E2BE1521563B79FE7094B7.or_port 9001 844AE9CAD04325E955E2BE1521563B79FE7094B7.dir_port 9030 844AE9CAD04325E955E2BE1521563B79FE7094B7.nickname Smeerboel 844AE9CAD04325E955E2BE1521563B79FE7094B7.has_extrainfo false 844AE9CAD04325E955E2BE1521563B79FE7094B7.orport6_address 2001:678:230:3028:192:87:28:82 844AE9CAD04325E955E2BE1521563B79FE7094B7.orport6_port 9001 8456DFA94161CDD99E480C2A2992C366C6564410.address 62.210.254.132 8456DFA94161CDD99E480C2A2992C366C6564410.or_port 443 8456DFA94161CDD99E480C2A2992C366C6564410.dir_port 80 8456DFA94161CDD99E480C2A2992C366C6564410.nickname turingmachine 8456DFA94161CDD99E480C2A2992C366C6564410.has_extrainfo false 855BC2DABE24C861CD887DB9B2E950424B49FC34.address 85.230.178.139 855BC2DABE24C861CD887DB9B2E950424B49FC34.or_port 443 855BC2DABE24C861CD887DB9B2E950424B49FC34.dir_port 9030 855BC2DABE24C861CD887DB9B2E950424B49FC34.nickname Logforme 855BC2DABE24C861CD887DB9B2E950424B49FC34.has_extrainfo false 85A885433E50B1874F11CEC9BE98451E24660976.address 178.254.7.88 85A885433E50B1874F11CEC9BE98451E24660976.or_port 8443 85A885433E50B1874F11CEC9BE98451E24660976.dir_port 8080 85A885433E50B1874F11CEC9BE98451E24660976.nickname wr3ck3d0ni0n01 85A885433E50B1874F11CEC9BE98451E24660976.has_extrainfo false 86C281AD135058238D7A337D546C902BE8505DDE.address 185.96.88.29 86C281AD135058238D7A337D546C902BE8505DDE.or_port 443 86C281AD135058238D7A337D546C902BE8505DDE.dir_port 80 86C281AD135058238D7A337D546C902BE8505DDE.nickname TykRelay05 86C281AD135058238D7A337D546C902BE8505DDE.has_extrainfo false 86C281AD135058238D7A337D546C902BE8505DDE.orport6_address 2a00:4020::185:96:88:29 86C281AD135058238D7A337D546C902BE8505DDE.orport6_port 443 8C00FA7369A7A308F6A137600F0FA07990D9D451.address 163.172.194.53 8C00FA7369A7A308F6A137600F0FA07990D9D451.or_port 9001 8C00FA7369A7A308F6A137600F0FA07990D9D451.dir_port 9030 8C00FA7369A7A308F6A137600F0FA07990D9D451.nickname GrmmlLitavis 8C00FA7369A7A308F6A137600F0FA07990D9D451.has_extrainfo false 8C00FA7369A7A308F6A137600F0FA07990D9D451.orport6_address 2001:bc8:225f:142:6c69:7461:7669:73 8C00FA7369A7A308F6A137600F0FA07990D9D451.orport6_port 9001 8D79F73DCD91FC4F5017422FAC70074D6DB8DD81.address 5.189.169.190 8D79F73DCD91FC4F5017422FAC70074D6DB8DD81.or_port 8080 8D79F73DCD91FC4F5017422FAC70074D6DB8DD81.dir_port 8030 8D79F73DCD91FC4F5017422FAC70074D6DB8DD81.nickname thanatosDE 8D79F73DCD91FC4F5017422FAC70074D6DB8DD81.has_extrainfo false 8FA37B93397015B2BC5A525C908485260BE9F422.address 81.7.11.96 8FA37B93397015B2BC5A525C908485260BE9F422.or_port 9001 8FA37B93397015B2BC5A525C908485260BE9F422.dir_port 9030 8FA37B93397015B2BC5A525C908485260BE9F422.nickname Doedel22 8FA37B93397015B2BC5A525C908485260BE9F422.has_extrainfo false 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.address 54.37.139.118 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.or_port 9001 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.dir_port 9030 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.nickname rofltor09 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.has_extrainfo false 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.orport6_address 2001:41d0:601:1100::1b8 90A5D1355C4B5840E950EB61E673863A6AE3ACA1.orport6_port 9001 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.address 37.187.20.59 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.or_port 443 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.dir_port 80 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.nickname torpidsFRovh 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.has_extrainfo false 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.orport6_address 2001:41d0:a:143b::1 91D23D8A539B83D2FB56AA67ECD4D75CC093AC55.orport6_port 993 91E4015E1F82DAF0121D62267E54A1F661AB6DC7.address 173.255.245.116 91E4015E1F82DAF0121D62267E54A1F661AB6DC7.or_port 9001 91E4015E1F82DAF0121D62267E54A1F661AB6DC7.dir_port 9030 91E4015E1F82DAF0121D62267E54A1F661AB6DC7.nickname IWorshipHisShadow 91E4015E1F82DAF0121D62267E54A1F661AB6DC7.has_extrainfo false 924B24AFA7F075D059E8EEB284CC400B33D3D036.address 96.253.78.108 924B24AFA7F075D059E8EEB284CC400B33D3D036.or_port 443 924B24AFA7F075D059E8EEB284CC400B33D3D036.dir_port 80 924B24AFA7F075D059E8EEB284CC400B33D3D036.nickname NSDFreedom 924B24AFA7F075D059E8EEB284CC400B33D3D036.has_extrainfo false 9288B75B5FF8861EFF32A6BE8825CC38A4F9F8C2.address 92.38.163.21 9288B75B5FF8861EFF32A6BE8825CC38A4F9F8C2.or_port 443 9288B75B5FF8861EFF32A6BE8825CC38A4F9F8C2.dir_port 9030 9288B75B5FF8861EFF32A6BE8825CC38A4F9F8C2.nickname angeltest9 9288B75B5FF8861EFF32A6BE8825CC38A4F9F8C2.has_extrainfo false 935F589545B8A271A722E330445BB99F67DBB058.address 163.172.53.84 935F589545B8A271A722E330445BB99F67DBB058.or_port 443 935F589545B8A271A722E330445BB99F67DBB058.dir_port 80 935F589545B8A271A722E330445BB99F67DBB058.nickname Multivac0 935F589545B8A271A722E330445BB99F67DBB058.has_extrainfo false 935F589545B8A271A722E330445BB99F67DBB058.orport6_address 2001:bc8:24f8:: 935F589545B8A271A722E330445BB99F67DBB058.orport6_port 443 94C4B7B8C50C86A92B6A20107539EE2678CF9A28.address 204.8.156.142 94C4B7B8C50C86A92B6A20107539EE2678CF9A28.or_port 443 94C4B7B8C50C86A92B6A20107539EE2678CF9A28.dir_port 80 94C4B7B8C50C86A92B6A20107539EE2678CF9A28.nickname BostonUCompSci 94C4B7B8C50C86A92B6A20107539EE2678CF9A28.has_extrainfo false 9772EFB535397C942C3AB8804FB35CFFAD012438.address 37.153.1.10 9772EFB535397C942C3AB8804FB35CFFAD012438.or_port 9001 9772EFB535397C942C3AB8804FB35CFFAD012438.dir_port 9030 9772EFB535397C942C3AB8804FB35CFFAD012438.nickname smallsweatnode 9772EFB535397C942C3AB8804FB35CFFAD012438.has_extrainfo false 99E246DB480B313A3012BC3363093CC26CD209C7.address 173.212.254.192 99E246DB480B313A3012BC3363093CC26CD209C7.or_port 31337 99E246DB480B313A3012BC3363093CC26CD209C7.dir_port 31336 99E246DB480B313A3012BC3363093CC26CD209C7.nickname ViDiSrv 99E246DB480B313A3012BC3363093CC26CD209C7.has_extrainfo false 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.address 185.100.86.128 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.or_port 9001 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.dir_port 9030 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.nickname TorExitFinland 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.has_extrainfo false 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.orport6_address 2a06:1700:1::11 9B31F1F1C1554F9FFB3455911F82E818EF7C7883.orport6_port 9001 9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320.address 185.220.101.49 9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320.or_port 20049 9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320.dir_port 10049 9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320.nickname niftypygmyjerboa 9B816A5B3EB20B8E4E9B9D1FBA299BD3F40F0320.has_extrainfo false 9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022.address 86.105.212.130 9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022.or_port 443 9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022.dir_port 9030 9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022.nickname firstor2 9C900A7F6F5DD034CFFD192DAEC9CCAA813DB022.has_extrainfo false 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D.address 31.185.104.19 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D.or_port 443 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D.dir_port 80 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D.nickname Digitalcourage3ip1 9EAD5B2D3DBD96DBC80DCE423B0C345E920A758D.has_extrainfo false 9F7D6E6420183C2B76D3CE99624EBC98A21A967E.address 46.28.110.244 9F7D6E6420183C2B76D3CE99624EBC98A21A967E.or_port 443 9F7D6E6420183C2B76D3CE99624EBC98A21A967E.dir_port 80 9F7D6E6420183C2B76D3CE99624EBC98A21A967E.nickname Nivrim 9F7D6E6420183C2B76D3CE99624EBC98A21A967E.has_extrainfo false A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.address 46.165.230.5 A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.or_port 443 A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.dir_port 80 A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.nickname Dhalgren A0F06C2FADF88D3A39AA3072B406F09D7095AC9E.has_extrainfo true A2E6BB5C391CD46B38C55B4329C35304540771F1.address 81.7.3.67 A2E6BB5C391CD46B38C55B4329C35304540771F1.or_port 443 A2E6BB5C391CD46B38C55B4329C35304540771F1.dir_port 993 A2E6BB5C391CD46B38C55B4329C35304540771F1.nickname BeastieJoy62 A2E6BB5C391CD46B38C55B4329C35304540771F1.has_extrainfo true A53C46F5B157DD83366D45A8E99A244934A14C46.address 128.31.0.13 A53C46F5B157DD83366D45A8E99A244934A14C46.or_port 443 A53C46F5B157DD83366D45A8E99A244934A14C46.dir_port 80 A53C46F5B157DD83366D45A8E99A244934A14C46.nickname csailmitexit A53C46F5B157DD83366D45A8E99A244934A14C46.has_extrainfo false A86EC24F5B8B964F67AC7C27CE92842025983274.address 185.246.152.22 A86EC24F5B8B964F67AC7C27CE92842025983274.or_port 443 A86EC24F5B8B964F67AC7C27CE92842025983274.dir_port 9030 A86EC24F5B8B964F67AC7C27CE92842025983274.nickname angeltest19 A86EC24F5B8B964F67AC7C27CE92842025983274.has_extrainfo false A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2.address 163.172.149.122 A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2.or_port 443 A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2.dir_port 80 A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2.nickname niij03 A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2.has_extrainfo false AC2BEDD0BAC72838EA7E6F113F856C4E8018ACDB.address 176.10.107.180 AC2BEDD0BAC72838EA7E6F113F856C4E8018ACDB.or_port 9001 AC2BEDD0BAC72838EA7E6F113F856C4E8018ACDB.dir_port 9030 AC2BEDD0BAC72838EA7E6F113F856C4E8018ACDB.nickname schokomilch AC2BEDD0BAC72838EA7E6F113F856C4E8018ACDB.has_extrainfo false ACDD9E85A05B127BA010466C13C8C47212E8A38F.address 185.129.62.62 ACDD9E85A05B127BA010466C13C8C47212E8A38F.or_port 9001 ACDD9E85A05B127BA010466C13C8C47212E8A38F.dir_port 9030 ACDD9E85A05B127BA010466C13C8C47212E8A38F.nickname kramse ACDD9E85A05B127BA010466C13C8C47212E8A38F.has_extrainfo false ACDD9E85A05B127BA010466C13C8C47212E8A38F.orport6_address 2a06:d380:0:3700::62 ACDD9E85A05B127BA010466C13C8C47212E8A38F.orport6_port 9001 ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D.address 31.185.104.20 ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D.or_port 443 ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D.dir_port 80 ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D.nickname Digitalcourage3ip2 ADB2C26629643DBB9F8FE0096E7D16F9414B4F8D.has_extrainfo false AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.address 45.79.108.130 AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.or_port 9001 AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.dir_port 9030 AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.nickname linss AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.has_extrainfo false AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.orport6_address 2600:3c01:e000:131::8000:0 AEDAC7081AE14B8D241ECF0FF17A2858AB4383D0.orport6_port 9001 B0553175AADB0501E5A61FC61CEA3970BE130FF2.address 5.9.147.226 B0553175AADB0501E5A61FC61CEA3970BE130FF2.or_port 9001 B0553175AADB0501E5A61FC61CEA3970BE130FF2.dir_port 9030 B0553175AADB0501E5A61FC61CEA3970BE130FF2.nickname zwiubel B0553175AADB0501E5A61FC61CEA3970BE130FF2.has_extrainfo false B0553175AADB0501E5A61FC61CEA3970BE130FF2.orport6_address 2a01:4f8:190:30e1::2 B0553175AADB0501E5A61FC61CEA3970BE130FF2.orport6_port 9001 B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.address 178.17.174.14 B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.or_port 9001 B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.dir_port 9030 B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.nickname TorExitMoldova B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.has_extrainfo false B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.orport6_address 2a00:1dc0:caff:8b::5b9a B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1.orport6_port 9001 B143D439B72D239A419F8DCE07B8A8EB1B486FA7.address 212.129.62.232 B143D439B72D239A419F8DCE07B8A8EB1B486FA7.or_port 443 B143D439B72D239A419F8DCE07B8A8EB1B486FA7.dir_port 80 B143D439B72D239A419F8DCE07B8A8EB1B486FA7.nickname wardsback B143D439B72D239A419F8DCE07B8A8EB1B486FA7.has_extrainfo false B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.address 199.249.230.64 B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.or_port 443 B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.dir_port 80 B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.nickname Quintex41 B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.has_extrainfo false B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.orport6_address 2620:7:6001::ffff:c759:e640 B2197C23A4FF5D1C49EE45BA7688BA8BCCD89A0B.orport6_port 80 B291D30517D23299AD7CEE3E60DFE60D0E3A4664.address 136.243.214.137 B291D30517D23299AD7CEE3E60DFE60D0E3A4664.or_port 443 B291D30517D23299AD7CEE3E60DFE60D0E3A4664.dir_port 80 B291D30517D23299AD7CEE3E60DFE60D0E3A4664.nickname TorKIT B291D30517D23299AD7CEE3E60DFE60D0E3A4664.has_extrainfo false B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20.address 212.47.233.86 B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20.or_port 9001 B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20.dir_port 9030 B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20.nickname netimanmu B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20.has_extrainfo false B5212DB685A2A0FCFBAE425738E478D12361710D.address 93.115.97.242 B5212DB685A2A0FCFBAE425738E478D12361710D.or_port 9001 B5212DB685A2A0FCFBAE425738E478D12361710D.dir_port 9030 B5212DB685A2A0FCFBAE425738E478D12361710D.nickname firstor B5212DB685A2A0FCFBAE425738E478D12361710D.has_extrainfo false B57A87009FA838471FB2227DDE68165AB2A2FCC4.address 51.38.134.104 B57A87009FA838471FB2227DDE68165AB2A2FCC4.or_port 443 B57A87009FA838471FB2227DDE68165AB2A2FCC4.dir_port 9030 B57A87009FA838471FB2227DDE68165AB2A2FCC4.nickname angeltest5 B57A87009FA838471FB2227DDE68165AB2A2FCC4.has_extrainfo false B83DC1558F0D34353BB992EF93AFEAFDB226A73E.address 193.11.114.46 B83DC1558F0D34353BB992EF93AFEAFDB226A73E.or_port 9003 B83DC1558F0D34353BB992EF93AFEAFDB226A73E.dir_port 9032 B83DC1558F0D34353BB992EF93AFEAFDB226A73E.nickname mdfnet3 B83DC1558F0D34353BB992EF93AFEAFDB226A73E.has_extrainfo false B84F248233FEA90CAD439F292556A3139F6E1B82.address 85.248.227.164 B84F248233FEA90CAD439F292556A3139F6E1B82.or_port 9002 B84F248233FEA90CAD439F292556A3139F6E1B82.dir_port 444 B84F248233FEA90CAD439F292556A3139F6E1B82.nickname tollana B84F248233FEA90CAD439F292556A3139F6E1B82.has_extrainfo false B84F248233FEA90CAD439F292556A3139F6E1B82.orport6_address 2a00:1298:8011:212::164 B84F248233FEA90CAD439F292556A3139F6E1B82.orport6_port 9004 B86137AE9681701901C6720E55C16805B46BD8E3.address 81.7.11.186 B86137AE9681701901C6720E55C16805B46BD8E3.or_port 443 B86137AE9681701901C6720E55C16805B46BD8E3.dir_port 1080 B86137AE9681701901C6720E55C16805B46BD8E3.nickname BeastieJoy60 B86137AE9681701901C6720E55C16805B46BD8E3.has_extrainfo true BB60F5BA113A0B8B44B7B37DE3567FE561E92F78.address 51.15.179.153 BB60F5BA113A0B8B44B7B37DE3567FE561E92F78.or_port 995 BB60F5BA113A0B8B44B7B37DE3567FE561E92F78.dir_port 110 BB60F5BA113A0B8B44B7B37DE3567FE561E92F78.nickname Casper04 BB60F5BA113A0B8B44B7B37DE3567FE561E92F78.has_extrainfo false BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.address 198.96.155.3 BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.or_port 5001 BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.dir_port 8080 BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.nickname gurgle BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E.has_extrainfo false BCEF908195805E03E92CCFE669C48738E556B9C5.address 128.199.55.207 BCEF908195805E03E92CCFE669C48738E556B9C5.or_port 9001 BCEF908195805E03E92CCFE669C48738E556B9C5.dir_port 9030 BCEF908195805E03E92CCFE669C48738E556B9C5.nickname EldritchReaper BCEF908195805E03E92CCFE669C48738E556B9C5.has_extrainfo false BCEF908195805E03E92CCFE669C48738E556B9C5.orport6_address 2a03:b0c0:2:d0::158:3001 BCEF908195805E03E92CCFE669C48738E556B9C5.orport6_port 9001 BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6.address 213.141.138.174 BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6.or_port 9001 BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6.dir_port 9030 BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6.nickname Schakalium BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6.has_extrainfo false BF0FB582E37F738CD33C3651125F2772705BB8E8.address 148.251.190.229 BF0FB582E37F738CD33C3651125F2772705BB8E8.or_port 9010 BF0FB582E37F738CD33C3651125F2772705BB8E8.dir_port 9030 BF0FB582E37F738CD33C3651125F2772705BB8E8.nickname quadhead BF0FB582E37F738CD33C3651125F2772705BB8E8.has_extrainfo false BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_address 2a01:4f8:211:c68::2 BF0FB582E37F738CD33C3651125F2772705BB8E8.orport6_port 9010 BF735F669481EE1CCC348F0731551C933D1E2278.address 212.47.233.250 BF735F669481EE1CCC348F0731551C933D1E2278.or_port 9001 BF735F669481EE1CCC348F0731551C933D1E2278.dir_port 9030 BF735F669481EE1CCC348F0731551C933D1E2278.nickname FreewaySca BF735F669481EE1CCC348F0731551C933D1E2278.has_extrainfo false BF735F669481EE1CCC348F0731551C933D1E2278.orport6_address 2001:bc8:4400:2b00::1c:629 BF735F669481EE1CCC348F0731551C933D1E2278.orport6_port 9001 C0192FF43E777250084175F4E59AC1BA2290CE38.address 192.160.102.169 C0192FF43E777250084175F4E59AC1BA2290CE38.or_port 9001 C0192FF43E777250084175F4E59AC1BA2290CE38.dir_port 80 C0192FF43E777250084175F4E59AC1BA2290CE38.nickname manipogo C0192FF43E777250084175F4E59AC1BA2290CE38.has_extrainfo false C0192FF43E777250084175F4E59AC1BA2290CE38.orport6_address 2620:132:300c:c01d::9 C0192FF43E777250084175F4E59AC1BA2290CE38.orport6_port 9002 C0C4F339046EB824999F711D178472FDF53BE7F5.address 132.248.241.5 C0C4F339046EB824999F711D178472FDF53BE7F5.or_port 9101 C0C4F339046EB824999F711D178472FDF53BE7F5.dir_port 9130 C0C4F339046EB824999F711D178472FDF53BE7F5.nickname toritounam2 C0C4F339046EB824999F711D178472FDF53BE7F5.has_extrainfo false C2AAB088555850FC434E68943F551072042B85F1.address 31.185.104.21 C2AAB088555850FC434E68943F551072042B85F1.or_port 443 C2AAB088555850FC434E68943F551072042B85F1.dir_port 80 C2AAB088555850FC434E68943F551072042B85F1.nickname Digitalcourage3ip3 C2AAB088555850FC434E68943F551072042B85F1.has_extrainfo false C36A434DB54C66E1A97A5653858CE36024352C4D.address 50.7.74.170 C36A434DB54C66E1A97A5653858CE36024352C4D.or_port 9001 C36A434DB54C66E1A97A5653858CE36024352C4D.dir_port 9030 C36A434DB54C66E1A97A5653858CE36024352C4D.nickname theia9 C36A434DB54C66E1A97A5653858CE36024352C4D.has_extrainfo false C36A434DB54C66E1A97A5653858CE36024352C4D.orport6_address 2001:49f0:d002:2::59 C36A434DB54C66E1A97A5653858CE36024352C4D.orport6_port 443 C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.address 85.248.227.163 C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.or_port 9001 C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.dir_port 443 C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.nickname ori C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.has_extrainfo false C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.orport6_address 2a00:1298:8011:212::163 C793AB88565DDD3C9E4C6F15CCB9D8C7EF964CE9.orport6_port 9003 C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.address 192.160.102.165 C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.or_port 9001 C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.dir_port 80 C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.nickname cowcat C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.has_extrainfo false C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.orport6_address 2620:132:300c:c01d::5 C90CA3B7FE01A146B8268D56977DC4A2C024B9EA.orport6_port 9002 CBD0D1BD110EC52963082D839AC6A89D0AE243E7.address 176.31.103.150 CBD0D1BD110EC52963082D839AC6A89D0AE243E7.or_port 9001 CBD0D1BD110EC52963082D839AC6A89D0AE243E7.dir_port 9030 CBD0D1BD110EC52963082D839AC6A89D0AE243E7.nickname UV74S7mjxRcYVrGsAMw CBD0D1BD110EC52963082D839AC6A89D0AE243E7.has_extrainfo false D15AFF44BE641368B958A32FB6B071AC2136B8B1.address 51.254.147.57 D15AFF44BE641368B958A32FB6B071AC2136B8B1.or_port 443 D15AFF44BE641368B958A32FB6B071AC2136B8B1.dir_port 80 D15AFF44BE641368B958A32FB6B071AC2136B8B1.nickname Cosworth01 D15AFF44BE641368B958A32FB6B071AC2136B8B1.has_extrainfo false D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.address 50.7.74.172 D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.or_port 443 D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.dir_port 80 D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.nickname theia2 D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.has_extrainfo false D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.orport6_address 2001:49f0:d002:2::52 D1AFBF3117B308B6D1A7AA762B1315FD86A6B8AF.orport6_port 443 D379A1CB8285748FFF64AE94296CA89878F25B22.address 62.141.38.69 D379A1CB8285748FFF64AE94296CA89878F25B22.or_port 443 D379A1CB8285748FFF64AE94296CA89878F25B22.dir_port 9030 D379A1CB8285748FFF64AE94296CA89878F25B22.nickname angeltest3 D379A1CB8285748FFF64AE94296CA89878F25B22.has_extrainfo false D379A1CB8285748FFF64AE94296CA89878F25B22.orport6_address 2001:4ba0:cafe:ac5::1 D379A1CB8285748FFF64AE94296CA89878F25B22.orport6_port 443 D405FCCF06ADEDF898DF2F29C9348DCB623031BA.address 5.45.111.149 D405FCCF06ADEDF898DF2F29C9348DCB623031BA.or_port 443 D405FCCF06ADEDF898DF2F29C9348DCB623031BA.dir_port 80 D405FCCF06ADEDF898DF2F29C9348DCB623031BA.nickname gGDHjdcC6zAlM8k08lY D405FCCF06ADEDF898DF2F29C9348DCB623031BA.has_extrainfo false D405FCCF06ADEDF898DF2F29C9348DCB623031BA.orport6_address 2a03:4000:6:2388:df98:15f9:b34d:443 D405FCCF06ADEDF898DF2F29C9348DCB623031BA.orport6_port 443 D50101A2ABD09DC245F7E96C0818D003CDD62351.address 50.7.74.174 D50101A2ABD09DC245F7E96C0818D003CDD62351.or_port 443 D50101A2ABD09DC245F7E96C0818D003CDD62351.dir_port 80 D50101A2ABD09DC245F7E96C0818D003CDD62351.nickname theia6 D50101A2ABD09DC245F7E96C0818D003CDD62351.has_extrainfo false D50101A2ABD09DC245F7E96C0818D003CDD62351.orport6_address 2001:49f0:d002:2::56 D50101A2ABD09DC245F7E96C0818D003CDD62351.orport6_port 443 D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.address 37.187.115.157 D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.or_port 9001 D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.dir_port 9030 D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.nickname Janky328891 D5039E1EBFD96D9A3F9846BF99EC9F75EDDE902A.has_extrainfo false D8B7A3A6542AA54D0946B9DC0257C53B6C376679.address 85.10.201.47 D8B7A3A6542AA54D0946B9DC0257C53B6C376679.or_port 9001 D8B7A3A6542AA54D0946B9DC0257C53B6C376679.dir_port 9030 D8B7A3A6542AA54D0946B9DC0257C53B6C376679.nickname sif D8B7A3A6542AA54D0946B9DC0257C53B6C376679.has_extrainfo false D8B7A3A6542AA54D0946B9DC0257C53B6C376679.orport6_address 2a01:4f8:a0:43eb::beef D8B7A3A6542AA54D0946B9DC0257C53B6C376679.orport6_port 9001 DAA39FC00B196B353C2A271459C305C429AF09E4.address 193.35.52.53 DAA39FC00B196B353C2A271459C305C429AF09E4.or_port 9001 DAA39FC00B196B353C2A271459C305C429AF09E4.dir_port 9030 DAA39FC00B196B353C2A271459C305C429AF09E4.nickname Arne DAA39FC00B196B353C2A271459C305C429AF09E4.has_extrainfo false DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E.address 54.36.237.163 DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E.or_port 443 DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E.dir_port 80 DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E.nickname GermanCraft2 DB2682153AC0CCAECD2BD1E9EBE99C6815807A1E.has_extrainfo false DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686.address 176.158.236.102 DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686.or_port 9001 DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686.dir_port 9030 DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686.nickname Underworld DC163DDEF4B6F0C6BC226F9F6656A5A30C5C5686.has_extrainfo false DD823AFB415380A802DCAEB9461AE637604107FB.address 178.33.183.251 DD823AFB415380A802DCAEB9461AE637604107FB.or_port 443 DD823AFB415380A802DCAEB9461AE637604107FB.dir_port 80 DD823AFB415380A802DCAEB9461AE637604107FB.nickname grenouille DD823AFB415380A802DCAEB9461AE637604107FB.has_extrainfo false DD823AFB415380A802DCAEB9461AE637604107FB.orport6_address 2001:41d0:2:a683::251 DD823AFB415380A802DCAEB9461AE637604107FB.orport6_port 443 DD8BD7307017407FCC36F8D04A688F74A0774C02.address 171.25.193.20 DD8BD7307017407FCC36F8D04A688F74A0774C02.or_port 443 DD8BD7307017407FCC36F8D04A688F74A0774C02.dir_port 80 DD8BD7307017407FCC36F8D04A688F74A0774C02.nickname DFRI0 DD8BD7307017407FCC36F8D04A688F74A0774C02.has_extrainfo false DD8BD7307017407FCC36F8D04A688F74A0774C02.orport6_address 2001:67c:289c::20 DD8BD7307017407FCC36F8D04A688F74A0774C02.orport6_port 443 DED6892FF89DBD737BA689698A171B2392EB3E82.address 92.222.38.67 DED6892FF89DBD737BA689698A171B2392EB3E82.or_port 443 DED6892FF89DBD737BA689698A171B2392EB3E82.dir_port 80 DED6892FF89DBD737BA689698A171B2392EB3E82.nickname ThorExit DED6892FF89DBD737BA689698A171B2392EB3E82.has_extrainfo false DED6892FF89DBD737BA689698A171B2392EB3E82.orport6_address 2001:41d0:52:100::112a DED6892FF89DBD737BA689698A171B2392EB3E82.orport6_port 443 E41B16F7DDF52EBB1DB4268AB2FE340B37AD8904.address 166.70.207.2 E41B16F7DDF52EBB1DB4268AB2FE340B37AD8904.or_port 9101 E41B16F7DDF52EBB1DB4268AB2FE340B37AD8904.dir_port 9130 E41B16F7DDF52EBB1DB4268AB2FE340B37AD8904.nickname xmission1 E41B16F7DDF52EBB1DB4268AB2FE340B37AD8904.has_extrainfo false E51620B90DCB310138ED89EDEDD0A5C361AAE24E.address 185.100.86.182 E51620B90DCB310138ED89EDEDD0A5C361AAE24E.or_port 8080 E51620B90DCB310138ED89EDEDD0A5C361AAE24E.dir_port 9030 E51620B90DCB310138ED89EDEDD0A5C361AAE24E.nickname NormalCitizen E51620B90DCB310138ED89EDEDD0A5C361AAE24E.has_extrainfo false E81EF60A73B3809F8964F73766B01BAA0A171E20.address 212.47.244.38 E81EF60A73B3809F8964F73766B01BAA0A171E20.or_port 443 E81EF60A73B3809F8964F73766B01BAA0A171E20.dir_port 8080 E81EF60A73B3809F8964F73766B01BAA0A171E20.nickname Chimborazo E81EF60A73B3809F8964F73766B01BAA0A171E20.has_extrainfo false E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.address 185.4.132.148 E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.or_port 443 E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.dir_port 80 E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.nickname libreonion1 E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.has_extrainfo false E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.orport6_address 2a02:c500:2:f0::5492 E8D114B3C78D8E6E7FEB1004650DD632C2143C9E.orport6_port 443 EBE718E1A49EE229071702964F8DB1F318075FF8.address 131.188.40.188 EBE718E1A49EE229071702964F8DB1F318075FF8.or_port 80 EBE718E1A49EE229071702964F8DB1F318075FF8.dir_port 1443 EBE718E1A49EE229071702964F8DB1F318075FF8.nickname fluxe4 EBE718E1A49EE229071702964F8DB1F318075FF8.has_extrainfo true EBE718E1A49EE229071702964F8DB1F318075FF8.orport6_address 2001:638:a000:4140::ffff:188 EBE718E1A49EE229071702964F8DB1F318075FF8.orport6_port 80 ED2338CAC2711B3E331392E1ED2831219B794024.address 192.87.28.28 ED2338CAC2711B3E331392E1ED2831219B794024.or_port 9001 ED2338CAC2711B3E331392E1ED2831219B794024.dir_port 9030 ED2338CAC2711B3E331392E1ED2831219B794024.nickname SEC6xFreeBSD64 ED2338CAC2711B3E331392E1ED2831219B794024.has_extrainfo false ED2338CAC2711B3E331392E1ED2831219B794024.orport6_address 2001:678:230:3028:192:87:28:28 ED2338CAC2711B3E331392E1ED2831219B794024.orport6_port 9001 EE4AF632058F0734C1426B1AD689F47445CA2056.address 37.252.187.111 EE4AF632058F0734C1426B1AD689F47445CA2056.or_port 443 EE4AF632058F0734C1426B1AD689F47445CA2056.dir_port 9030 EE4AF632058F0734C1426B1AD689F47445CA2056.nickname angeltest7 EE4AF632058F0734C1426B1AD689F47445CA2056.has_extrainfo false EE4AF632058F0734C1426B1AD689F47445CA2056.orport6_address 2a00:63c1:c:111::2 EE4AF632058F0734C1426B1AD689F47445CA2056.orport6_port 443 EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F.address 217.182.75.181 EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F.or_port 9001 EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F.dir_port 9030 EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F.nickname Aerodynamik02 EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F.has_extrainfo false F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC.address 193.70.112.165 F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC.or_port 443 F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC.dir_port 80 F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC.nickname ParkBenchInd001 F10BDE279AE71515DDCCCC61DC19AC8765F8A3CC.has_extrainfo false F4263275CF54A6836EE7BD527B1328836A6F06E1.address 37.187.102.108 F4263275CF54A6836EE7BD527B1328836A6F06E1.or_port 443 F4263275CF54A6836EE7BD527B1328836A6F06E1.dir_port 80 F4263275CF54A6836EE7BD527B1328836A6F06E1.nickname EvilMoe F4263275CF54A6836EE7BD527B1328836A6F06E1.has_extrainfo false F4263275CF54A6836EE7BD527B1328836A6F06E1.orport6_address 2001:41d0:a:266c::1 F4263275CF54A6836EE7BD527B1328836A6F06E1.orport6_port 443 F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265.address 5.199.142.236 F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265.or_port 9001 F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265.dir_port 9030 F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265.nickname tornodenumber9004 F4C0EDAA0BF0F7EC138746F8FEF1CE26C7860265.has_extrainfo false F6A358DD367B3282D6EF5824C9D45E1A19C7E815.address 192.160.102.168 F6A358DD367B3282D6EF5824C9D45E1A19C7E815.or_port 9001 F6A358DD367B3282D6EF5824C9D45E1A19C7E815.dir_port 80 F6A358DD367B3282D6EF5824C9D45E1A19C7E815.nickname prawksi F6A358DD367B3282D6EF5824C9D45E1A19C7E815.has_extrainfo false F6A358DD367B3282D6EF5824C9D45E1A19C7E815.orport6_address 2620:132:300c:c01d::8 F6A358DD367B3282D6EF5824C9D45E1A19C7E815.orport6_port 9002 F8D27B163B9247B232A2EEE68DD8B698695C28DE.address 78.47.18.110 F8D27B163B9247B232A2EEE68DD8B698695C28DE.or_port 80 F8D27B163B9247B232A2EEE68DD8B698695C28DE.dir_port 443 F8D27B163B9247B232A2EEE68DD8B698695C28DE.nickname fluxe3 F8D27B163B9247B232A2EEE68DD8B698695C28DE.has_extrainfo true F8D27B163B9247B232A2EEE68DD8B698695C28DE.orport6_address 2a01:4f8:120:4023::110 F8D27B163B9247B232A2EEE68DD8B698695C28DE.orport6_port 80 F93D8F37E35C390BCAD9F9069E13085B745EC216.address 185.96.180.29 F93D8F37E35C390BCAD9F9069E13085B745EC216.or_port 443 F93D8F37E35C390BCAD9F9069E13085B745EC216.dir_port 80 F93D8F37E35C390BCAD9F9069E13085B745EC216.nickname TykRelay06 F93D8F37E35C390BCAD9F9069E13085B745EC216.has_extrainfo false F93D8F37E35C390BCAD9F9069E13085B745EC216.orport6_address 2a00:4820::185:96:180:29 F93D8F37E35C390BCAD9F9069E13085B745EC216.orport6_port 443 FE296180018833AF03A8EACD5894A614623D3F76.address 149.56.45.200 FE296180018833AF03A8EACD5894A614623D3F76.or_port 9001 FE296180018833AF03A8EACD5894A614623D3F76.dir_port 9030 FE296180018833AF03A8EACD5894A614623D3F76.nickname PyotrTorpotkinOne FE296180018833AF03A8EACD5894A614623D3F76.has_extrainfo false FE296180018833AF03A8EACD5894A614623D3F76.orport6_address 2607:5300:201:3000::17d3 FE296180018833AF03A8EACD5894A614623D3F76.orport6_port 9002 FFA72BD683BC2FCF988356E6BEC1E490F313FB07.address 193.11.164.243 FFA72BD683BC2FCF988356E6BEC1E490F313FB07.or_port 9001 FFA72BD683BC2FCF988356E6BEC1E490F313FB07.dir_port 9030 FFA72BD683BC2FCF988356E6BEC1E490F313FB07.nickname Lule FFA72BD683BC2FCF988356E6BEC1E490F313FB07.has_extrainfo false FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_address 2001:6b0:7:125::243 FFA72BD683BC2FCF988356E6BEC1E490F313FB07.orport6_port 9001 ././@PaxHeader0000000000000000000000000000002600000000000010213 xustar0022 mtime=1685434137.0 stem-1.8.2/stem/cached_manual.sqlite0000644000175000017510000075600000000000000016161 0ustar00useruserSQLite format 3@ - 6 >jf  tabletorrctorrc CREATE TABLE torrc(key TEXT PRIMARY KEY, name TEXT, category TEXT, usage TEXT, summary TEXT, description TEXT, position INTEGER)) =indexsqlite_autoindex_torrc_1torrc RtablefilesfilesCREATE TABLE files(name TEXT PRIMARY KEY, description TEXT))=indexsqlite_autoindex_files_1files XtablesignalssignalsCREATE TABLE signals(name TEXT PRIMARY KEY, description TEXT)-Aindexsqlite_autoindex_signals_1signalsd##tablecommandlinecommandlineCREATE TABLE commandline(name TEXT PRIMARY KEY, description TEXT)5I#indexsqlite_autoindex_commandline_1commandlineUtablemetadatametadataCREATE TABLE metadata(name TEXT, synopsis TEXT, description TEXT, man_commit TEXT, stem_commit TEXT)<UtableschemaschemaCREATE TABLE schema(version INTEGER)  "]7)]]tor - The second-generation onion routertor [OPTION value]...Tor is a connection-oriented anonym    0aJp9+=--hash-password PASSWORD!-h, --help --version6q--service install [--options command-line options]5--list-torrc-options5--keygen [--newpass];--passphrase-fd FILEDES)--quiet|--hush C--service remove|start|stop +--verify-config %--nt-service 7--allow-missing-torrc 7--defaults-torrc FILE1--list-fingerprint?--list-deprecated-optionsA--key-expiration [purpose]9--ignore-missing-torrc(U--dump-config short|full|non-builtin -f FILE) --list-modules {^7Q{NSIGXFSZIf this signal exists on your platform, Tor catches and ignores it.QSIGTERMTor will catch this, clean up and sync to disk if necessary, and exit.1IGPIPETor catches this signal and ignores it.c?SIGINTTor clients behave as with SIGTERM; but Tor servers will do a controlled slow shutdown, closing listeners and waiting 30 seconds before exiting. (The delay can be configured with the ShutdownWaitLength config option.)V#SIGUSR1Log statistics about current connections, past connections, and throughput.d?SIGCHLDTor receives this signal when one of its helper processes has exited, so it can clean up.gESIGUSR2Switch all logs to loglevel debug. You can go back to the old loglevels by sending a SIGHUP.7SIGHUPThe signal instructs Tor to reload its configuration (including closing and reopening logs), and kill and restart its helper processes if applicable.  SIGXFSZ SIGTERM SIGPIPE SIGINT SIGUSR1 SIGCHLD SIGUSR2  SIGHUP  .+(%  "IDataDirectory/stats/conn-statsՁ8  |X?+TRUNCATELOGFILEO|'QHIDDENSERVICEENABLEINTRODOSDEFENSE;OUTBOUNDBINDADDRESSEXIT9X!HTTPSPROXY.;CCOOKIEAUTHFILEGROUPREADABLE:3CIRCUITBUILDTIMEOUTU+YTESTINGCLIENTMAXINTERVALWITHOUTREQUEST/-REPHISTTRACKTIMEV-EXCLUDEEXITNODES^izing communication service. Users choose a source-routed path through a set of nodes, and negotiate a "virtual circuit" through the network. Each node in a virtual circuit knows its predecessor and successor nodes, but no other nodes. Traffic flowing down the circuit is unwrapped by a symmetric key at each node, which reveals the downstream node. Basically, Tor provides a distributed network of servers or relays ("onion routers"). Users bounce their TCP streams, including web traffic, ftp, ssh, etc., around the network, so that recipients, observers, and even the relays themselves have difficulty tracking the source of the stream. Note By default, tor acts as a client only. To help the network by providing bandwidth as a relay, change the ORPort configuration option as mentioned below. Please also consult the documentation on the Tor Project's website.616c0f823c7a65c04de7e03a2c0da1543e2be9e6fde3201470ed1b74916c893ceb8ecd6a065651bf bn6bQ9{--ignore-missing-torrcSpecify that Tor should treat a missing torrc file as though it were empty. Ordinarily, Tor does this for missing default torrc files, but not for those specified on the command line.QU_--dump-config short|full|non-builtinWrite a complete list of Tor's configured options to standard output. When the short flag is selected, only write the options that are different from their default values. When non-builtin is selected, write options that are not zero or the empty string. When full is selected, write every option.a9-f FILESpecify a new configuration file to contain further Tor configuration options, or pass - to make Tor read its configuration from standard input. (Default: @CONFDIR@/torrc, or $HOME/.torrc if that file is not found))--list-modulesList whether each optional module has been compiled into Tor. (Any module not listed is not optional in this version of Tor.) B"9Bt7C--defaults-torrc FILESpecify a file in which to find default values for Tor options. The contents of this file are overridden by those in the regular configuration file, and by those on the command line. (Default: @CONFDIR@/torrc-defaults.)R1--list-fingerprintGenerate your keys and output your nickname and fingerprint.?w--list-deprecated-optionsList all valid options that are scheduled to become obsolete in a future version. (This is a warning, not a promise.)[A--key-expiration [purpose]The purpose specifies which type of key certificate to determine the expiration of. The only currently recognised purpose is "sign". Running tor --key-expiration sign will attempt to find your signing key certificate and will output, both in the logs as well as to stdout, the signing key certificate's expiration time in ISO-8601 format. For example, the output sent to stdout will be of the form: "signing-cert-expiry: 2017-07-25 08:30:15 UTC" s3a )+--quiet|--hushOverride the default console logging behavior. By default, Tor starts out logging messages at level "notice" and higher to the console. It stops doing so after it parses its configuration, if the configuration tells it to log anywhere else. These options override the default console logging behavior. Use the --hush option if you want Tor to log only warnings and errors to the console, or use the --quiet option if you want Tor not to log to the console at all.V C}--service remove|start|stopRemove, start, or stop a configured Tor Windows service.A +k--verify-configVerify whether the configuration file is valid.> %k--nt-serviceUsed internally to implement a Windows service. 7o--allow-missing-torrcAllow the configuration file specified by -f to be missing, if the defaults-torrc file (see below) is accessible. JK7J3!Y-h, --helpDisplay a short help message and exit.5]--versionDisplay Tor version and exit. The output is a single line of the format "Tor version [version number]." (The version number format is as specified in version-spec.txt.)aqc--service install [--options command-line options]Install an instance of Tor as a Windows service, with the provided command-line options. Current instructions can be found at https://www.torproject.org/docs/faq#NTService.5;--list-torrc-optionsList all valid options.t5E--keygen [--newpass]Running tor --keygen creates a new ed25519 master identity key for a relay, or only a fresh temp3;=--passphrase-fd FILEDESFile descriptor to read the passphrase from. Note that unlike with the tor-gencert program, the entire file contents are read and used as the passphrase, including any trailing newlines. If the file descriptor is not specified, the passphrase is read from the terminal by default.orary signing key and certificate, if you already have a master key. Optionally, you can encrypt the master identity key with a passphrase. When Tor asks you for a passphrase and you don't want to encrypt the master key, just don't enter any passphrase when asked. Use the --newpass option with --keygen only when you need to add, change, or remove a passphrase on an existing ed25519 master identity key. You will be prompted for the old passphase (if any), and the new passphrase (if any). Note When generating a master key, you may want to use --DataDirectory to control where the keys and certificates will be stored, and --SigningKeyLifetime to control their lifetimes. See the server options section to learn more about the behavior of these options. You must have write access to the specified DataDirectory. To use the generated files, you must copy them to the DataDirectory/keys directory of your Tor daemon, and make sure that they are owned by the user actually running the Tor daemon on your system. N=s--hash-password PASSWORDGenerate a hashed password for control port access. [6A[$SCacheDirectory/unverified-consensusContains a network consensus document that has been downloaded, but which we didn't have the right certificates to check yet.=+c@CONFDIR@/torrcDefault location of the configuration file.,MDataDirectory/hashed-fingerprintOnly used by bridges. Contains the hashed fingerprint of the bridge's identity key. (That is, the hash of the hash of the identity key.) M_DataDirectory/stats/dirreq-statsOnly used by directory caches and authorities. This file is used to collect directory request statistics.31GDataDirectory/lockThis file is used to prevent two Tor instances from using the same data directory. If access to this file is locked, data directory is already in use by Tor.Gg9CacheDirectory/unverified-microdesc-consensusContains a microdescriptor-flavored network consensus document that has been downloaded, but which we didn't have the right certificates to check yet. FgFp }uCacheDirectory/cached-extrainfo and cached-extrainfo.newSimilar to cached-descriptors, but holds optionally-downloaded "extra-info" documents. Relays use these documents to send inessential information about statistics, bandwidth history, and network health to the authorities. They aren't fetched by default. See the DownloadExtraInfo option for more information.+C%CacheDirectory/cached-certsContains downloaded directory key certificates that are used to verify authenticity of documents generated by the Tor directory authorities.OoKeyDirectory/ed25519_signing_certThe certificate which authenticates "ed25519_signing_secret_key" as having been signed by the Ed25519 master key. j#jl MDataDirectory/stats/buffer-statsOnly used by servers. This file is used to collect buffer usage history.H CacheDirectory/cached-microdescs and cached-microdescs.newThese files hold downloaded microdescriptors. Lines beginning with @-signs are annotations that contain more information about a given router. The .new file is an append-only journal; when it gets too large, all entries are merged into a new cached-microdescs file. GDataDirectory/v3-status-votesOnly for v3 authoritative directory servers. This file contains status votes from all the authoritative directory servers.< O;DataDirectory/key-pinning-journalUsed by authorities. A line-based file that records mappings between RSA1024 and Ed25519 identity keys. Authorities enforce these mappings, so that once a relay has picked an Ed25519 key, stealing or factoring the RSA1024 key will no longer let an attacker impersonate the relay. $"$KgKeyDirectory/legacy_certificateAs authority_certificate; used only when V3AuthUseLegacyKey is set. See documentation for V3AuthUseLegacyKey.i?%DataDirectory/fingerprintOnly used by servers. Contains the fingerprint of the server's identity key.QQcKeyDirectory/authority_signing_keyOnly directory authorities use this file. A v3 directory authority's signing key that is used to sign votes and consensuses. Corresponds to the authority_certificate cert.IWDataDirectory/approved-routersOnly used by authoritative directory servers. This file lists the status of routers by their identity fingerprint. Each line lists a status and a fingerprint separated by whitespace. See your fingerprint file in the DataDirectory for an example line. If the status is !reject, then the descriptors from the given identity (fingerprint) are rejected by this server. If it is !invalid, then the descriptors are accepted but marked in the directory as not valid, that is, not recommended. )xLS)'S KeyDirectory/authority_identity_keyA v3 directory authority's master identity key, used to authenticate its signing key. Tor doesn't use this while it's running. The tor-gencert program uses this. If you're running an authority, you should keep this key offline, and not put it in this file.)A#KeyDirectory/secret_id_keyA relay's RSA1024 permanent identity key, including private and public components. Used to sign router descriptors, and to sign other keys.K=m@LOCALSTATEDIR@/lib/tor/The tor process stores keys and other data here.IDataDirectory/stats/conn-statsOnly used by servers. This file is used to collect approximate connection history (number of active connections over time). I[DataDirectory/unparseable-descOnion server descriptors that Tor was unable to parse are dumped to this file. Only used for debugging.QKHiddenServiceDirectory/client_keysContains authorization data for a hidden service that is only accessible by authorized clients. u2aQKeyDirectory/authority_certificateOnly directory authorities use this file. A v3 directory authority's certificate which authenticates the authority's current vote- and consensus-signing key using its master identity key.IYDataDirectory/stats/exit-statsOnly used by servers. This file is used to collect outgoing connection statistics by Tor exit routers.@ KeyDirectory/secret_onion_key_ntor and secret_onion_key_ntor.oldA relay's Curve25519 short-term onion key. Used to handle modern ("ntor") circuit extension requests. The .old file holds the previously generated key, which the relay uses to handle any requests that were made by clients that didn't have the new one.KWDataDirectory/stats/entry-statsOnly used by servers. This file is used to collect incoming connection statistics by Tor entry nodes.  @fZ'2@nwfq;%ODataDirectory/control_auth_cookie.9DataDirectory/sr-state,(UDataDirectory/networkstatus-bridges`*ACacheDirectory/cached-descriptors and cached-descriptors.new)=@LOCALSTATEDIR@/lib/tor/gFCacheDirectory/cached-consensus and/or cached-microdesc-consensus$%$HOME/.torrc"IDataDirectory/router-stability?DataDirectory/fingerprintg$MDataDirectory/stats/bridge-stats%"IDataDirectory/approved-routers$MDataDirectory/stats/buffer-stats ?CacheDirectory/cached-microdescs and cached-microdescs.new  3DataDirectory/state&%ODataDirectory/key-pinning-journal <}CacheDirectory/cached-extrainfo and cached-extrainfo.new CCacheDirectory/cached-certs?CacheDirectory/diff-cache('SCacheDirectory/unverified-consensus+@CONFDIR@/torrc$MDataDirectory/hashed-fingerprintCDataDirectory/bw_accounting+1DataDirectory/lock0g CacheDirectory/unverified-microdesc-consensus ttqO(Mtp*#KKeyDirectory/legacy_signing_key/#KHiddenServiceDirectory/hostname-+[KeyDirectory/ed25519_signing_secret_key'-_KeyDirectory/ed25519_master_id_public_key#6qHiddenServiceDirectory/onion_service_non_anonymous"&QHiddenServiceDirectory/private_key!%ODataDirectory/stats/hidserv-stats :yKeyDirectory/secret_onion_key and secret_onion_key.old-_KeyDirectory/ed25519_master_id_secret_key&QKeyDirectory/authority_certificateE KeyDirectory/secret_onion_key_ntor and secret_onion_key_ntor.oldAKeyDirectory/secret_id_key#KKeyDirectory/legacy_certificate%OKeyDirectory/ed25519_signing_cert&QKeyDirectory/authority_signing_key'SKeyDirectory/authority_identity_key&QHiddenServiceDirectory/client_keys!GDataDirectory/v3-status-votes "IDataDirectory/unparseable-desc"IDataDirectory/stats/exit-stats#KDataDirectory/stats/entry-stats$MDataDirectory/stats/dirreq-stats ]]M%$HOME/.torrcFallback location for torrc, if @CONFDIR@/torrc is not found.PIiDataDirectory/router-stabilityOnly used by authoritative directory servers. Tracks measurements for router mean-time-between-failures so that authorities have a fair idea of how to set their Stable flags.5yKeyDirectory/secret_onion_key and secret_onion_key.oldA relay's RSA1024 short-term onion key. Used to decrypt old-style ("TAP") circuit extension requests. The .old file holds the previously generated key, which the relay uses to handle any requests that were made by clients that didn't have the new one.F_?KeyDirectory/ed25519_master_id_secret_keyThe private part of a relay's Ed25519 permanent identity key. This key is used to sign the medium-term ed25519 signing key. This file can be kept offline or encrypted. If so, Tor will not be able to generate new signing keys automatically; you'll need to use tor --keygen to do so. #,%MODataDirectory/stats/bridge-statsOnly used by servers. This file is used to collect incoming connection statistics by Tor bridges. $CacheDirectory/cached-consensus and/or cached-microdesc-consensusThe most recent consensus network status document we've downloaded.i#_KeyDirectory/ed25519_master_id_public_keyThe public part of a relay's Ed25519 permanent identity key."qAHiddenServiceDirectory/onion_service_non_anonymousThis file is present if a hidden service key was created in HiddenServiceNonAnonymousMode.V!QoHiddenServiceDirectory/private_keyContains the private key for this hidden service.o O!DataDirectory/stats/hidserv-statsOnly used by servers. This file is used to collect approximate counts of what fraction of the traffic is hidden service rendezvous traffic, and approximately how many hidden services the relay has seen. 2(?7CacheDirectory/diff-cacheDirectory cache only. Holds older consensuses and diffs from oldest to the most recent consensus of each type compressed in various ways. Each file contains a set of key-value arguments describing its contents, followed by a single NUL byte, followed by the main file contents.p'[KeyDirectory/ed25519_signing_secret_keyThe private and public components of a relay's medium-term Ed25519 signing key. This key is authenticated by the Ed25519 master key, which in turn authenticates other keys (and router descriptors).U&3 DataDirectory/stateContains a set of persistent key-value mappings. These include: o the current entry guards and their status. o the current bandwidth accounting values. o when the file was last written o what version of Tor generated the state file o a short history of bandwidth usage, as produced in the server descriptors. Mv+C;DataDirectory/bw_accountingThis file is obsolete and the data is now stored in the state file instead. Used to track bandwidth accounting values (when the current period starts and ends; how much has been read and written so far this period).5*U'DataDirectory/networkstatus-bridges`Only used by authoritative bridge directories. Contains information about bridges that have self-reported themselves to the bridge authority.0)kCacheDirectory/cached-descriptors and cached-descriptors.newThese files contain the downloaded router statuses. Some routers may appear more than once; if so, the most recently published descriptor is used. Lines beginning with @-signs are annotations that contain more information about a given router. The .new file is an append-only journal; when it gets too large, all entries are merged into a new cached-descriptors file. YjY&.ODataDirectory/control_auth_cookieThis file can be used only when cookie authentication is enabled. Used for cookie authentication with the controller. Location can be overridden by the CookieAuthFile configuration option. Regenerated on startup. See control-spec.txt in torspec for details.e-KHiddenServiceDirectory/hostnameThe .onion domain name for this hidden service. If the hidden service is restricted to authorized clients only, this file also contains authorization data for all clients. Note The clients will ignore any extra subdomains prepended to a hidden service hostname. Supposing you have "xyz.onion" as your hostname, you can ask your clients to connect to "www.xyz.onion" or "irc.xyz.onion" for virtual-hosting purposes.,9DataDirectory/sr-stateAuthority only. This file is used to record information about the current status of the shared-random-value voting state. mm/KgKeyDirectory/legacy_signing_keyAs authority_signing_key: used only when V3AuthUseLegacyKey is set. See documentation for V3AuthUseLegacyKey. YY# c1 ACCELNAMEAccelNameGeneralNAMEOpenSSL engine name for crypto accelerationWhen using OpenSSL hardware crypto acceleration attempt to load the dynamic engine of this name. This must be used for any dynamic hardware engine. Names can be verified with the openssl engine command. Can not be changed while tor is running. If the engine name is prefixed with a "!", then Tor will exit if the engine cannot be loaded.~ MACCELDIRAccelDirGeneralDIRCrypto acceleration library pathSpecify this option if using dynamic hardware acceleration and the engine implementation library resides somewhere other than the OpenSSL default. Can not be changed while tor is running. z ==mm?ALTERNATEBRIDGEAUTHORITYAlternateBridgeAuthorityGeneral[nickname] [flags] ipv4address:port fingerprintAlternative directory authorities (bridges only)These options behave as DirAuthority, but they replace fewer of the default directory authorities. Using AlternateDirAuthority replaces the default Tor directory authorities, but leaves the default bridge authorities in place. Similarly, AlternateBridgeAuthority replaces the default bridge authority, but leaves the directory authorities alone.  11WwANDROIDIDENTITYTAGAndroidIdentityTagGeneraltagTag when logging to android subsystemWhen logging to Android's logging subsystem, adds a tag to the log identity such that log entries are marked with "Tor-tag". Can not be changed while tor is running. (Default: none)u 77kq?ALTERNATEDIRAUTHORITYAlternateDirAuthorityGeneral[nickname] [flags] ipv4address:port fingerprintAlternative directory authorities (consensus only)These options behave as DirAuthority, but they replace fewer of the default directory authorities. Using AlternateDirAuthority replaces the default Tor directory authorities, but leaves the default bridge authorities in place. Similarly, AlternateBridgeAuthority replaces the default bridge authority, but leaves the directory authorities alone. JJ} ''GBANDWIDTHRATEBandwidthRateGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsAverage bandwidth usage limitA token bucket limits the average incoming bandwidth usage on this node to the specified number of bytes per second, and the average outgoing bandwidth usage to that same value. If you want to run a relay in the public network, this needs to be at the ve% ))G BANDWIDTHBURSTBandwidthBurstGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsMaximum bandwidth usage limitLimit the maximum token bucket size (also known as the burst) to the given number of bytes in each direction. (Default: 1 GByte)" ++m AVOIDDISKWRITESAvoidDiskWritesGeneral0|1Toggles if tor avoids frequently writing to diskIf non-zero, try to write to disk less frequently than we would otherwise. This is useful when running on flash memory or other media that support only a limited number of writes. (Default: 0)ry least 75 KBytes for a relay (that is, 600 kbits) or 50 KBytes for a bridge (400 kbits) -- but of course, more is better; we recommend at least 250 KBytes (2 mbits) if possible. (Default: 1 GByte) Note that this option, and other bandwidth-limiting options, apply to TCP data only: They do not count TCP headers or DNS traffic. Tor uses powers of two, not powers of ten, so 1 GByte is 1024*1024*1024 bytes as opposed to 1 billion bytes. With this option, and in other options that take arguments in bytes, KBytes, and so on, other formats are also supported. Notably, "KBytes" can also be written as "kilobytes" or "kb"; "MBytes" can be written as "megabytes" or "MB"; "kbits" can be written as "kilobits"; and so forth. Case doesn't matter. Tor also accepts "byte" and "bit" in the singular. The prefixes "tera" and "T" are also recognized. If no units are given, we default to bytes. To avoid confusion, we recommend writing "bytes" or "bits" explicitly, since it's easy to forget that "B" means bytes, not bits. ]0]P CCi3CACHEDIRECTORYGROUPREADABLECacheDirectoryGroupReadableGeneral0|1|autoGroup read permissions for the cache directoryIf this option is set to 0, don't allow the filesystem group to read the CacheDirectory. If the option is set to 1, make the CacheDirectory readable by the default GID. If the option is "auto", then we use the setting for DataDirectoryGroupReadable when the CacheDirectory is the same as the DataDirectory, and 0 otherwise. (Default: auto) M ))W}CACHEDIRECTORYCacheDirectoryGeneralDIRDirectory where information is cachedStore cached directory data in DIR. Can not be changed while tor is running. (Default: uses the value of DataDirectory.) YY$ ;;ICIRCUITPRIORITYHALFLIFECircuitPriorityHalflifeGeneralNUMOverwrite method for prioritizing traffic among relayed connectionsIf this value is set, we override the default algorithm for choosing which circuit's cell to deliver or relay next. It is delivered first to the circuit that has the lowest weighted cell count, where cells are weighted exponentially according to this value (in seconds). If the value is -1, it is taken from the consensus if possible else it will fallback to the default value of 30. Minimum: 1, Maximum: 2147483647. This can be defined as a float value. This is an advanced option; you generally shouldn't have to mess with it. (Default: -1)  77wCLIENTTRANSPORTPLUGINClientTransportPluginGeneraltransport exec path-to-binary [options]Proxy when establishing bridge connectionsIn its first form, when set along with a corresponding Bridge line, the Tor client forwards its traffic to a SOCKS-speaking proxy on "IP:PORT". (IPv4 addresses should written as-is; IPv6 addresses should be wrapped in square brackets.) It's the duty of that proxy to properly forward the traffic to the bridge. In its second form, when set along with a corresponding Bridge line, the Tor client launches the pluggable transport proxy executable in path-to-binary using options as its command-line options, and forwards its traffic to it. It's the duty of that proxy to properly forward the traffic to the bridge. (Default: none) ? 11YOCONSTRAINEDSOCKETSConstrainedSocketsGeneral0|1Shrinks sockets to ConstrainedSockSizeIf set, To*r s?CONNLIMITConnLimitGeneralNUMMinimum number of file descriptors for Tor to startThe minimum number of file descriptors that must be available to the Tor process before it will start. Tor will ask the OS for as many file descriptors as the OS will allow (you can find this by "ulimit -H -n"). If this number is less than ConnLimit, then Tor will refuse to start. Tor relays need thousands of sockets, to connect to every other relay. If you are running a private bridge, you can reduce the number of sockets that Tor uses. For example, to limit Tor to 500 sockets, run "ulimit -n 500" in a shell. Then start tor in the same shell, with ConnLimit 500. You may also need to set DisableOOSCheck 0. Unless you have severely limited sockets, you probably don't need to adjust ConnLimit itself. It has no effect on Windows, since that platform lacks getrlimit(). (Default: 1000) r will tell the kernel to attempt to shrink the buffers for all sockets to the size specified in ConstrainedSockSize. This is useful for virtual servers and other environments where system level TCP buffers may be limited. If you're on a virtual server, and you encounter the "Error creating network socket: No buffer space available" message, you are likely experiencing this problem. The preferred solution is to have the admin increase the buffer pool for the host itself via /proc/sys/net/ipv4/tcp_mem or equivalent facility; this configuration option is a second-resort. The DirPort option should also not be used if TCP buffers are scarce. The cached directory requests consume additional sockets which exacerbates the problem. You should not enable this feature unless you encounter the "no buffer space available" issue. Reducing the TCP buffers affects window size for the TCP stream and will reduce throughput in proportion to round trip time on long paths. (Default: 0) 7 EEmCONTROLPORTFILEGROUPREADABLEControlPortFileGroupReadableGeneral0|1Group read permissions for the control port fileIf this option is set to 0, don't allow the filesystem group to read the control port file. If the option is set to 1, make the control port file readable by the default GID. (Default: 0)\ ##W3CONTROLPORTControlPortGeneral[address:]port|unix:path|auto [flags]Port providing access to tor controllers (nyx, vidalia, etc)If set, Tor will accept connections on this port and allow those connections to control ,K 33)y-CONSTRAINEDSOCKSIZEConstrainedSockSizeGeneralN bytes|KBytesLimit for the received and transmit buffers of socketsWhen ConstrainedSockets is enabled the receive and transmit buffers for all sockets will be set to this limit. Must be a value between 2048 and 262144, in 1024 byte increments. Default of 8192 is recommended.the Tor process using the Tor Control Protocol (described in control-spec.txt in torspec). Note: unless you also specify one or more of HashedControlPassword or CookieAuthentication, setting this option will cause Tor to allow any process on the local host to control it. (Setting both authentication methods means either method is sufficient to authenticate to Tor.) This option is required for many Tor controllers; most use the value of 9051. If a unix domain socket is used, you may quote the path using standard C escape sequences. You can specify this directive multiple times, to bind to multiple address/port pairs. Set it to "auto" to have Tor pick a port for you. (Default: 0) Recognized flags are: GroupWritable Unix domain sockets only: makes the socket get created as group-writable. WorldWritable Unix domain sockets only: makes the socket get created as world-writable. RelaxDirModeCheck Unix domain sockets only: Do not insist that the directory that holds the socket be read-restricted. R CCgCCONTROLSOCKETSGROUPWRITABLEControlSocketsGroupWritableGeneral0|1Group read permissions for the control socketIf this option is set to 0, don't allow the filesystem group to read and write unix sockets (e.g. ControlSocket). If the option is set to 1, make the control socket readable and writable by the default GID. (Default: 0)l ''QCCONTROLSOCKETControlSocketGeneralPathSocket providing controller accessLike ControlPort, but listens on a Unix domain socket, rather than a TCP socket. 0 disables ControlSocket. (Unix and Unix-like systems only.) (Default: 0)& 99ykCONTROLPORTWRITETOFILEControlPortWriteToFileGeneralPathPath for a file tor writes containing its control portIf set, Tor writes the address and port of any control port it opens to this address. Usable by controllers to learn the actual control port when ControlPort is set to "auto". iO ))WCOOKIEAUTHFILECookieAuthFileGeneralPathLocation of the authentication cookieIf set, this option overrides the default location and file name for Tor's cookie file. (See CookieAuthentication above.) 55iaCOOKIEAUTHENTICATIONCookieAuthenticationGeneral0|1If set, authenticates controllers via a cookieIf this option is set to 1, allow connections on the control port when the connecting process knows the contents of a file named "control_auth_cookie", which Tor will create in its data directory. This authentication method should only be used on systems with good filesystem security. (Default: 0) _K 77gMCOUNTPRIVATEBANDWIDTHCountPrivateBandwidthGeneral0|1Applies rate limiting to private IP addressesIf this option is set, then Tor's rate-limiting applies not only to remote connections, but also to connections to private addresses like 127.0.0.1 or 10.0.0.1. This is mostly useful for debugging rate-limiting. (Default: 0) CCuMCOOKIEAUTHFILEGROUPREADABLECookieAuthFileGroupReadableGeneral0|1Group read permissions for the authentication cookieIf this option is set to 0, don't allow the filesystem group to read the cookie file. If the option is set to 1, make the cookie file readable by the default GID. [Making the file readable by other groups is not yet implemented; let us know if you need this for some reason.] (Default: 0) ( AAgsDATADIRECTORYGROUPREADABLEDataDirectoryGroupReadableGeneral0|1Group read permissions for the data directoryIf this option is set to 0, don't allow the filesystem group to read the DataDirectory. If the option is set to 1, make the DataDirectory readable by the default GID. (Default: 0)4 ''u1DATADIRECTORYDataDirectoryGeneralDIRLocation for storing runtime data (state, keys, etc)Store working data in DIR. Can not be changed while tor is running. (Default: ~/.tor if your home directory is not /; otherwise, @LOCALSTATEDIR@/lib/tor. On Windows, the default is your ApplicationData folder.)e directory server is chosen randomly with probability proportional to that weight (default 1.0). If a flag "v3ident=fp" is given, the dirserver is a v3 directory authority whose v3 long-term signing key has the fingerprint fp. Lastly, if an "ipv6=[ipv6address]:orport" flag is present, then the directory authority is listening for IPv6 connections on the indicated IPv6 address and OR Port. Tor will contact the authority at ipv4address to download directory documents. Clients always use the ORPort. Relays usually use the DirPort, but will use the ORPort in some circumstances. If an IPv6 ORPort is supplied, clients will also download directory documents at the IPv6 ORPort, if they are configured to use IPv6. If no DirAuthority line is given, Tor will use the default directory authorities. NOTE: this option is intended for setting up a private Tor network with its own directory authorities. If you use it, you will be distinguishable from other users, because you won't believe the same authorities they do.   %%qO+DIRAUTHORITYDirAuthorityGeneral[nickname] [flags] ipv4address:dirport fingerprintAlternative directory authoritiesUse a nonstandard authoritative directory server at the provided address and port, with the specified key fingerprint. This option can be repeated many times, for multiple authoritative directory servers. Flags are separated by spaces, and determine what kind of an authority this directory is. By default, an authority is not authoritative for any directory style or version unless an appropriate flag is given. Tor will use this authority as a bridge authoritative directory if the "bridge" flag is set. If a flag "orport=orport" is given, Tor will use the given port when opening encrypted tunnels to the dirserver. If a flag "weight=num" is given, then th1 ,g,8 ))w3DISABLEALLSWAPDisableAllSwapGeneral0|1Locks all allocated memory so they can't be paged outIf set to 1, Tor will attempt to lock all current and future memory pages, so that memory cannot be paged out. Windows, OS X and Solaris are currently not supported. We believe that this feature works on modern Gnu/Linux distributions, and that it should work on *BSD systems (untested). This option requires that you start your Tor as root, and you should use the User option to properly reduce Tor's privileges. Can not be changed while tor is running. (Default: 0) ==[cDIRAUTHORITYFALLBACKRATEDirAuthorityFallbackRateGeneralNUMRate at which to use fallback directoryWhen configured to use both directory authorities and fallback directories, the directory authorities also work as fallbacks. They are chosen with their regular weights, multiplied by this number, which should be 1.0 or less. The default is less than 1, to reduce load on authorities. (Default: 0.1)n retrieve about the processIf set to 1, Tor will attempt to prevent basic debugging attachment attempts by other processes. This may also keep Tor from generating core files if it crashes. It has no impact for users who wish to attach if they have CAP_SYS_PTRACE or if they are root. We believe that this feature works on modern Gnu/Linux distributions, and that it may also work on *BSD systems (untested). Some modern Gnu/Linux systems such as Ubuntu have the kernel.yama.ptrace_scope sysctl and by default enable it as an attempt to limit the PTRACE scope for all user processes by default. This feature will attempt to limit the PTRACE scope for Tor specifically - it will not attempt to alter the system wide ptrace scope as it may not even exist. If you wish to attach to Tor with a debugger such as gdb or strace you will want to set this to 0 for the duration of your debugging. Normal users should leave it on. Disabling this option while Tor is running is prohibited. (Default: 1) v ))[KDISABLENETWORKDisableNetworkGeneral0|1Don't accept non-controller connectionsWhen this option is set, we don't listen for or accept any connections other than controller connections, and we close (and don't reattempt) any outbound connections. Controllers sometimes use this option to avoid using the network until Tor is fully configured. Tor will make still certain network-related calls (like DNS lookups) as a part of its configuration process, even if DisableNetwork is set. (Default: 0)G ??DISABLEDEBUGGERATTACHMENTDisableDebuggerAttachmentGeneral0|1Limit information applications ca4 %Sd%<" ;;oEXTORPORTCOOKIEAUTHFILEExtORPortCookieAuthFileGeneralPathLocation of the ExtORPort's authentication cookieIf set, this option overrides the default location and file name for the Extended ORPort's cookie file -- the cookie file is needed for pluggable transports to communicate through the Extended ORPort.!l! 3])EXTORPORTExtORPortGeneral[address:]port|autoEndpoint for extended ORPort connectionsOpen this port to listen for Extended ORPort connections from your pluggable transports. (Default: DataDirectory/extended_orport_auth_cookie) * //qEXTENDBYED25519IDExtendByEd25519IDGeneral0|1|autoInclude Ed25519 identifier when extending circuitsIf this option is set to 1, we always try to include a relay's Ed25519 ID when telling the proceeding relay in a circuit to extend to it. If this option is set to 0, we never include Ed25519 IDs when extending circuits. If the option is set to "default", we obey a parameter in the consensus document. (Default: auto) /5% //FETCHDIRINFOEARLYFetchDirInfoEarlyGeneral0|1Keeps consensus information up to date, even if unnecessaryIf set to 1, Tor will always fetch directory information like other directory caches, even if you don't meet the normal criteria for fetching early. Normal users should leave it off. (Default: 0)$^$ ##?{YFALLBACKDIRFallbackDirGeneralipv4address:dirport orport=orport id=fingerprint [weight=num] [i8N# UU oEXTORPORTCOOKIEAUTHFILEGROUPREADABLEExtORPortCookieAuthFileGroupReadableGeneral0|1Group read permissions for the ExtORPort's authentication cookieIf this option is set to 0, don't allow the filesystem group to read the Extended OR Port cookie file. If the option is set to 1, make the cookie file readable by the default GID. [Making the file readable by other groups is not yet implemented; let us know if you need this for some reason.] (Default: 0)"pv6=[ipv6address]:orport]Fallback when unable to retrieve descriptor informationWhen tor is unable to connect to any directory cache for directory info (usually because it doesn't know about any yet) it tries a hard-coded directory. Relays try one directory authority at a time. Clients try multiple directory authorities and FallbackDirs, to avoid hangs on startup if a hard-coded directory is down. Clients wait for a few seconds between each attempt, and retry FallbackDirs more often than directory authorities, to reduce the load on the directory authorities. FallbackDirs should be stable relays with stable IP addresses, ports, and identity keys. They must have a DirPort. By default, the directory authorities are also FallbackDirs. Specifying a FallbackDir replaces Tor's default hard-coded FallbackDirs (if any). (See the DirAuthority entry for an explanation of each flag.)# EE`' ;;;FETCHHIDSERVDESCRIPTORSFetchHidServDescriptorsGeneral0|1Toggles if hidden service descriptors are fetched automatically or notIf set to 0, Tor will never fetch any hidden service descriptors from the rendezvous directories. This option is only useful if you're using a Tor controller that handles hidden service fetches for you. (Default: 1)&U& 99{IFETCHDIRINFOEXTRAEARLYFetchDirInfoExtraEarlyGeneral0|1Updates consensus information when it's first availableIf set to 1, Tor will fetch directory information before other directory caches. It will attempt to download directory information closer to the start of the consensus period. Normal users should leave it off. (Default: 0)% s(_cI2 ~wYE2zgUJ._s)BRIDGEPASSWORD AAUTHDIRHASIPV6CONNECTIVITY)CELLSTATISTICSCCACHEDIRECTORYGROUPREADABLE )CACHEDIRECTORY #BRIDGERELAYABRIDGERECORDUSAGEBYCOUNTRY1BRIDGEDISTRIBUTION9BRIDGEAUTHORITATIVEDIR BRIDGES'BANDWIDTHRATE)BANDWIDTHBURST+AVOIDDISKWRITES5AUTOMAPHOSTSSUFFIXES7AUTOMAPHOSTSONRESOLVE9AUTHORITATIVEDIRECTORYAAUTHDIRTESTED25519LINKKEYS;AUTHDIRSHAREDRANDOMNESS-AUTHDIRREJECTCCS'AUTHDIRREJECT)AUTHDIRPINKEYS=AUTHDIRMAXSERVERSPERADDR3AUTHDIRLISTBADEXITS/AUTHDIRINVALIDCCS)AUTHDIRINVALID;AUTHDIRGUARDBWGUARANTEE5AUTHDIRFASTGUARANTEE/AUTHDIRBADEXITCCS)AUTHDIRBADEXIT+ASSUMEREACHABLE1ANDROIDIDENTITYTAG7ALTERNATEDIRAUTHORITY=ALTERNATEBRIDGEAUTHORITY;ALLOWNONRFC953HOSTNAMES ADDRESS+ACCOUNTINGSTART)ACCOUNTINGRULE'ACCOUNTINGMAX ACCELNAME  ACCELDIR uFw`Q4t_H0uUt)COOKIEAUTHFILE5COOKIEAUTHENTICATIONCCONTROLSOCKETSGROUPWRITABLE'CONTROLSOCKET9CONTROLPORTWRITETOFILE ECONTROLPORTFILEGROUPREADABLE#CONTROLPORT#CONTACTINFO3CONSTRAINEDSOCKSIZE1CONSTRAINEDSOCKETS+CONSENSUSPARAMS CONNLIMIT /CONNECTIONPADDINGY;CONNDIRECTIONSTATISTICS'CLIENTUSEIPV6'CLIENTUSEIPV47CLIENTTRANSPORTPLUGIN "GCLIENTREJECTINTERNALADDRESSES9CLIENTPREFERIPV6ORPORT;CLIENTPREFERIPV6DIRPORT!CLIENTONLYX1CLIENTONIONAUTHDIRj%MCLIENTDNSREJECTINTERNALADDRESSES/aCLIENTBOOTSTRAPCONSENSUSMAXINPROGRESSTRIES9uCLIENTBOOTSTRAPCONSENSUSFALLBACKDOWNLOADINITIALDELAY>CLIENTBOOTSTRAPCONSENSUSAUTHORITYONLYDOWNLOADINITIALDELAY:wCLIENTBOOTSTRAPCONSENSUSAUTHORITYDOWNLOADINITIALDELAY5CLIENTAUTOIPV6ORPORT5CIRCUITSTREAMTIMEOUTW=CIRCUITSAVAILABLETIMEOUTV;CIRCUITPRIORITYHALFLIFE )CIRCUITPADDING[ E6En* ''u%HARDWAREACCELHardwareAccelGeneral0|1Toggles if tor attempts to use hardware accelerationIf non-zero, try to use built-in (static) crypto hardware acceleration when available. Can not be changed while tor is running. (Default: 0))M) ;;% FETCHUSELESSDESCRIPTORSFetchUselessDescriptorsGeneral0|1Toggles if relay descriptors are fetc=Y( 99}OFETCHSERVERDESCRIPTORSFetchServerDescriptorsGeneral0|1Toggles if the consensus is fetched automatically or notIf set to 0, Tor will never fetch any network status summaries or server descriptors from the directory servers. This option is only useful if you're using a Tor controller that handles directory fetches for you. (Default: 1)'hed when they aren't strictly necessaryIf set to 1, Tor will fetch every consensus flavor, and all server descriptors and authority certificates referenced by those consensuses, except for extra info descriptors. When this option is 1, Tor will also keep fetching descriptors, even when idle. If set to 0, Tor will avoid fetching useless descriptors: flavors that it is not using to build circuits, and authority certificates it does not trust. When Tor hasn't built any application circuits, it will go idle, and stop fetching descriptors. This option is useful if you're using a tor client with an external parser that uses a full consensus. This option fetches all documents except extrainfo descriptors, DirCache fetches and serves all documents except extrainfo descriptors, DownloadExtraInfo* fetches extrainfo documents, and serves them if DirCache is on, and UseMicrodescriptors changes the flavour of consensues and descriptors that is fetched and used for building circuits. (Default: 0)( .\.+, #MGHTTPPROXYHTTPProxyGeneralhost[:port]HTTP proxy for connecting to torTor will make all its directory requests through this host:port (or host:80 if port is not specified), rather than connecting directly to any directory servers. (DEPRECATED: As of 0.3.1.0-alpha you should use HTTPSProxy.)+!+ 77+CHASHEDCONTROLPASSWORDHashedControlPasswordGeneralhashed_passwordHash of the password for authenticating to the control portAllow connections on the control port if they present the password whose one-way hash is hashed_password. You can compute the hash of a password by running "tor --hash-password password". You can provide several acceptable passwords by using more than one HashedControlPassword line.* K. !!#KHTTPSPROXYHTTPSProxyGeneralhost[:port]SSL proxy for connecting to torTor will make all its OR (SSL) connections through this host:port (or host:443 if port is not specified), via HTTP CONNECT rather than connecting directly to servers. You may want to set FascistFirewall to restrict the set of ports you might try to connect to, if your HTTPS proxy only allows connecting to certain ports.-2- 99/]HTTPPROXYAUTHENTICATORHTTPProxyAuthenticatorGeneralusername:passwordAuthentication credentials for HTTPProxyIf defined, Tor will use this username:password for Basic HTTP proxy authentication, as in RFC 2617. This is currently the only form of HTTP proxy authentication that Tor supports; feel free to submit a patch if you want it to support others. (DEPRECATED: As of 0.3.1.0-alpha you should use HTTPSProxyAuthenticator.), o0 ++[9KEEPALIVEPERIODKeepalivePeriodGeneralNUMRate at which to send keepalive packetsTo keep firewalls from expiring connections, send a padding keepalive cell every NUM seconds on open connections that are in use. (Default: 5 minutes)/m/ ;;/_uHTTPSPROXYAUTHENTICATORHTTPSProxyAuthenticatorGeneralusername:passwordAuthentication credentials for HTTPSProxyIf defined, Tor will use this username:password for Basic HTTPS proxy authentication, as in RFC 2617. This is currently the only form of HTTPS proxy authentication that Tor supports; feel free to submit a patch if you want it to support others.. a2  YWLOGLogGeneral[domain,...]minSeverity[-maxSeverity] ... stderr|stdout|syslogRunlevels and location for tor loggingAs above, but select messages by range of log severity and by a set of "logging domains". Each logging domB 1 55oCKEEPBINDCAPABILITIESKeepBindCapabilitiesGeneral0|1|autoRetain permission for binding to low valued portsOn Linux, when we are started as root and we switch our identity using the User option, the KeepBindCapabilities option tells us whether to try to retain our ability to bind to low ports. If this value is 1, we try to keep the capability; if it is 0 we do not; and if it is auto, we keep the capability only if we are configured to listen on a low port. Can not be changed while tor is running. (Default: auto.)0ain corresponds to an area of functionality inside Tor. You can specify any number of severity ranges for a single log statement, each of them prefixed by a comma-separated list of logging domains. You can prefix a domain with ~ to indicate negation, and use * to indicate "all domains". If you specify a severity range without a list of domains, it matches all domains. This is an advanced feature which is most useful for debugging one or two of Tor's subsystems at a time. The currently recognized domains are: general, crypto, net, config, fs, protocol, mm, http, app, control, circ, rend, bug, dir, dirserv, or, edge, acct, hist, handshake, heartbeat, channel, sched, guard, consdiff, dos, process, pt, btrack, and mesg. Domain names are case-insensitive. For example, "Log [handshake]debug [~net,~mm]info notice stdout" sends to stdout: all handshake messages of any severity, all info-and-higher messages from domains other than networking and memory management, and all messages of severity notice or higher.1 }4 11e?LOGTIMEGRANULARITYLogTimeGranularityGeneralNUMlimits granularity of log message timestampsSet the resolution of timestamps in Tor's logs to NUM milliseconds. NUM must be positive and either a divisor or a multiple of 1 second. Note that this option only controls the granularity written by Tor to a file or console log. Tor does not (for example) "batch up" log messages to affect times logged by a controller, times attached to syslog messages, or the mtime fields on log files. (Default: 1 second)3&3 //[LOGMESSAGEDOMAINSLogMessageDomainsGeneral0|1Includes a domain when logging messagesIf 1, Tor includes message domains with each log message. Every log message currently has at least one domain; most currently have exactly one. This doesn't affect controller log messages. (Default: 0)2 5 99MAXADVERTISEDBANDWIDTHMaxAdvertisedBandwidthGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsLimit for the bandwidth we advertise as being available for relayingIf set, we will not advertise more than this amount of bandwidth for our BandwidthRate. Server operators who want to reduce the number of clients who ask to build circuits through them (since this is proportional to advertised bandwidth rate) can thus reduce the CPU demands on their server without impacting network performance.4 D7 ]NOEXECNoExecGeneral0|1Prevents any launch of other executablesIf this option is set to 1, then Tor will never launch another executable, regardless of the settings of ClientTransportPlugin or ServerTransportPlugin. Once this option has been set to 1, it cannot be set back to 0 without restarting Tor. (Default: 0)66 CCSwSMAXUNPARSEABLEDESCSIZETOLOGMaxUnparseableDescSizeToLogGeneralN bytes|KBytes|MBytes|GBytes|TBytesSize of the dedicated log for unparseable descriptorsUnparseable descriptors (e.g. for votes, consensuses, routers) are logged in separate files by hash, up to the specified size in total. Note that only files logged during the lifetime of this Tor process count toward the total; this is intended to be used to debug problems without opening live servers to resource exhaustion attacks. (Default: 10 MBytes)5 =8 33YIOUTBOUNDBINDADDRESSOutboundBindAddressGeneralIPSets the IP used for connecting to torMake all outbound connections originate from the IP address specified. This is only useful when you have multiple network interfaces, and you want all of Tor's outgoing connections to use a single one. This option may be used twice, once with an IPv4 address and once with an IPv6 address. IPv6 addresses should be wrapped in square brackets. This setting will be ignored for connections to the loopback addresses (127.0.0.0/8 and ::1), and is not used for DNS requests as well.7 u9 ;;OUTBOUNDBINDADDRESSEXITOutboundBindAddressExitGeneralIPMake outbound exit connections originate from this addressMake all outbound exit connections originate from the IP address specified. This option overrides OutboundBindAddress for the same IP version. This option may be used twice, once with an IPv4 address and once with an IPv6 address. IPv6 addresses should be wrapped in square brackets. This setting will be ignored for connections to the loopback addresses (127.0.0.0/8 and ::1).8 A; ))iaPERCONNBWBURSTPerConnBWBurstGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsMaximum relayed bandwidth limit per connectionIf this option is set manually, or via the "perconnbwburst" consensus field, Tor will use it for separate rate limiting for each connection from a non-relay. (Default: 0): : 77 +OUTBOUNDBINDADDRESSOROutboundBindAddressORGeneralIPMake outbound non-exit connections originate from this addressMake all outbound non-exit (relay and other) connections originate from the IP address specified. This option overrides OutboundBindAddress for the same IP version. This option may be used twice, once with an IPv4 address and once with an IPv6 address. IPv6 addresses should be wrapped in square brackets. This setting will be ignored for connections to the loopback addresses (127.0.0.0/8 and ::1).9  > --k_PROTOCOLWARNINGSProtocolWarningsGeneral0|1Toggles if protocol errors give warnings or notIf 1, Tor will log with severity 'warn' various cases of other parties not following the Tor specification. Otherwise, they are logged with severity 'info'. (Default: 0)=B= ucPIDFILEPidFileGeneralFILEPath for a file tor writes containing its process idOn startup, write our PID to FILE. On clean shutdown, remove FILE. Can not be changed while tor is running.<>< ''i_PERCONNBWRATEPerConnBWRateGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsAverage relayed bandwidth limit per connectionIf this option is set manually, or via the "perconnbwrate" consensus field, Tor will use it for separate rate limiting for each connection from a non-relay. (Default: 0); CC:? 33aGRELAYBANDWIDTHBURSTRelayBandwidthBurstGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsMaximum bandwidth usage limit for relayingIf not 0, limit the maximum token bucket size (also known as the burst) for _relayed traffic_ to the given number of bytes in each direction. They do not include directory fetches by the relay (from authority or other relays), because that is considered "client" activity. (Default: 0)> c~cA ##[RUNASDAEMONRunAsDaemonGeneral0|1Toggles if tor runs as a daemon processIf 1, Tor forks and daemonizes to the background. This option has no effect on Windows; instead you should use the --service command-line option. Can not be changed while tor is running. (Default: 0)@@ 11aURELAYBANDWIDTHRATERelayBandwidthRateGeneralN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsAverage bandwidth usage limit for relayingIf not 0, a separate token bucket limits the average incoming bandwidth usage for _relayed traffic_ on this node to the specified number of bytes per second, and the average outgoing bandwidth usage to that same value. Relayed traffic currently is calculated to include answers to directory requests, but that may change in future versions. They do not include directory fetches by the relay (from authority or other relays), because that is considered "client" activity. (Default: 0)? `B ##wSAFELOGGINGSafeLoggingGeneral0|1|relayToggles if logs are scrubbed of sensitive informationTor can scrub potentially sensitive strings from log messages (e.g. addresses) by replacing them with the string [scrubbed]. This way logs can still be useful, but they don't leave behind personally identifying information about what sites a user might have visited. If this option is set to 0, Tor will not perform any scrubbing, if it is set to 1, all potentially sensitive strings are replaced. If it is set to relay, all log messages generated when acting as a relay are sanitized, but all messages generated when acting as a client are not. Note: Tor may not heed this option when logging at log levels below Notice. (Default: 1)A 88EC ESANDBOXSandboxGeneral0|1Run within a syscall sandboxIf set to 1, Tor will run securely through the use of a syscall sandbox. Otherwise the sandbox will be disabled. The option is currently an experimental feature. It only works on Linux-based operating systems, and only when Tor has been built with the libseccomp library. This option can not be changed while tor is running. When the Sandbox is 1, the following options can not be changed when tor is running: Address, ConnLimit, CookieAuthFile, DirPortFrontPage, ExtORPortCookieAuthFile, Logs, ServerDNSResolvConfFile, ClientOnionAuthDir (and any files in it won't reload on HUP signal). Launching new Onion Services through the control port is not supported with current syscall sandboxing implementation. Tor must remain in client or server mode (some changes to ClientOnly and ORPort are not allowed). Currently, if Sandbox is 1, ControlPort command "GETINFO address" will not work. (Default: 0)Bstly effects relays, and most operators should leave it set to its default value. (Default: KIST,KISTLite,Vanilla) The possible scheduler types are: KIST: Kernel-Informed Socket Transport. Tor will use TCP information from the kernel to make informed decisions regarding how much data to send and when to send it. KIST also handles traffic in batches (see KISTSchedRunInterval) in order to improve traffic prioritization decisions. As implemented, KIST will only work on Linux kernel version 2.6.39 or higher. KISTLite: Same as KIST but without kernel support. Tor will use all the same mechanics as with KIST, including the batching, but its decisions regarding how much data to send will not be as good. KISTLite will work on all kernels and operating systems, and the majority of the benefits of KIST are still realized with KISTLite. Vanilla: The scheduler that Tor used before KIST was implemented. It sends as much data as possible, as soon as possible. Vanilla will work on all kernels and operating systems.C C|E 55OAKISTSCHEDRUNINTERVALKISTSchedRunIntervalGeneralNUM msecScheduling interval if using KISTIf KIST or KISTLite is used in the Schedulers option, this controls at which interval the scheduler tick is. If the value is 0 msec, the value is taken from the consensus if possible else it will fallback to the default 10 msec. Maximum possible value is 100 msec. (Default: 0 msec)D2D !!7sSCHEDULERSSchedulersGeneralKIST|KISTLite|VanillaScheduling algorithm by which to send outbound dataSpecify the scheduler type that tor should use. The scheduler is responsible for moving data around within a Tor process. This is an ordered list by priority which means that the first value will be tried first and if unavailable, the second one is tried and so on. It is possible to change these values at runtime. This option moN 44aH 997[]SERVERTRANSPORTOPTIONSServerTransportOptionsGeneraltransport k=v k=v ...Additional arguments for bridge's proxyWhen this option is set, Tor will pass the k=v parameters to any pluggable transport proxy that tries to launch transport. (Example: ServerTransportOptions obfs45 shared-secret=bridgepasswd cache=/var/lib/tor/cache) (Default: none)GzG ??/k{SERVERTRANSPORTLISTENADDRServerTransportListenAddrGeneraltransport IP:PORTEndpoint for bridge's pluggable transport proxyWhen this option is set, Tor will suggest IP:PORT as the listening address of any pluggable transport proxy that tries to launch transport. (IPv4 addresses should written as-is; IPv6 addresses should be wrapped in square brackets.) (Default: none)FhF 77gKISTSOCKBUFSIZEFACTORKISTSockBufSizeFactorGeneralNUMMultiplier for per-socket limit if using KISTIf KIST is used in Schedulers, this is a multiplier of the per-socket limit calculation of the KIST algorithm. (Default: 1.0)E 2hL33a SOCKS5PROXYUSERNAMESocks5ProxyUsernameGeneralusernameUsername for connecting to the Socks5ProxyK?K ###GmSOCKS5PROXYSocks5ProxyGeneralhost[:port]SOCKS 5 for connecting to torTor will make all OR connections through the SOCKS 5 proxy at host:port (or host:1080 if port is not specified).JEJ ###SmSOCKS4PROXYSocks4ProxyGeneralhost[:port]SOCKS 4 proxy for connecting to torTor will make all OR connections through the SOCKS 4 proxy at host:port (or host:1080 if port is not specified).IAI 77[[}SERVERTRANSPORTPLUGINServerTransportPluginGeneraltransport exec path-to-binary [options]Proxy when servicing bridge connectionsThe Tor relay launches the pluggable transport proxy in path-to-binary using options as its command-line options, and expects to receive proxied client traffic from it. (Default: none)H ^O ++}uTRUNCATELOGFILETruncateLogFileGeneral0|1Overwrites log file rather than appending when restartedIf 1, Tor will overwrite logs at startup and in response to a HUP signal, instead of appending to them. (Default: 0)N N //oSSYSLOGIDENTITYTAGSyslogIdentityTagGeneraltagTag logs appended to the syslog as being from torWhen logging to syslog, adds a tag to the syslog identity such that log entries are marked with "Tor-tag". Can not be changed while tor is running. (Default: none)MM 33aYSOCKS5PROXYPASSWORDSocks5ProxyPasswordGeneralpasswordPassword for connecting to the Socks5ProxyIf defined, authenticate to the SOCKS 5 server using username and password in accordance to RFC 1929. Both username and password must be between 1 and 255 characters.L \y\IS S/BRIDGEBridgeClient[transport] IP:ORPort [fingerprint]Available bridgesWhen set along with UseBT,R McUSERUserGeneralUsernameUID for the process when startedOn startup, setuid to this user and setgid to their primary group. Can not be changed while tor is running.Q;Q 99USEDEFAULTFALLBACKDIRSUseDefaultFallbackDirsGeneral0|1Use hard-coded fallback directory authorities when neededUse Tor's default hard-coded FallbackDirs (if any). (When a FallbackDir line is present, it replaces the hard-coded FallbackDirs, regardless of the value of UseDefaultFallbackDirs.) (Default: 1)PFP 99eAUNIXSOCKSGROUPWRITABLEUnixSocksGroupWritableGeneral0|1Group write permissions for the socks socketIf this option is set to 0, don't allow the filesystem group to read and write unix sockets (e.g. SocksPort unix:). If the option is set to 1, make the Unix socket readable and writable by the default GID. (Default: 0)Oridges, instructs Tor to use the relay at "IP:ORPort" as a "bridge" relaying into the Tor network. If "fingerprint" is provided (using the same format as for DirAuthority), we will verify that the relay running at that location has the right fingerprint. We also use fingerprint to look up the bridge descriptor at the bridge authority, if it's provided and if UpdateBridgesFromAuthority is set too. If "transport" is provided, it must match a ClientTransportPlugin line. We then use that pluggable transport's proxy to transfer data to the bridge, rather than connecting to the bridge directly. Some transports use a transport-specific method to work out the remote address to connect to. These transports typically ignore the "IP:ORPort" specified in the bridge line. Tor passes any "key=val" settings to the pluggable transport proxy as per-connection arguments when connecting to the bridge. Consult the documentation of the pluggable transport for details of what arguments it supports.R GU 33UqCIRCUITBUILDTIMEOUTCircuitBuildTimeoutClientNUMInitial timeout for circuit creationTry for at most NUM seconds when building circuits. If the circuit isn't open in that time, give up on it. If LearnCircuitBuildTimeout is 1, this value serves as the initial value to use before a timeout is learned. If LearnCircuitBuildTimeout is 0, this value is the only value used. (Default: 60 seconds)T6T ==iLEARNCIRCUITBUILDTIMEOUTLearnCircuitBuildTimeoutClient0|1Toggles adaptive timeouts for circuit creationIf 0, CircuitBuildTimeout adaptive learning is disabled. (Default: 1)S ~"`wfI;, oU:cG`-~=DOSCONNECTIONDEFENSETYPE 'QDOSREFUSESINGLEHOPCLIENTRENDEZVOUS +ENTRYSTATISTICS!ENTRYNODESb9ENFORCEDISTINCTSUBNETSq/DOWNLOADEXTRAINFO$KDOSCONNECTIONMAXCONCURRENTCOUNT5DOSCONNECTIONENABLED9DOSCIRCUITCREATIONRATE%MDOSCIRCUITCREATIONMINCONNECTIONS?DOSCIRCUITCREATIONENABLED"GDOSCIRCUITCREATIONDEFENSETYPE(SDOSCIRCUITCREATIONDEFENSETIMEPERIOD;DOSCIRCUITCREATIONBURST(SDORMANTTIMEOUTDISABLEDBYIDLESTREAMS7DORMANTONFIRSTSTARTUP5DORMANTCLIENTTIMEOUT=DORMANTCANCELEDBYSTARTUP DNSPORT+DISABLEOOSCHECK)DISABLENETWORK?DISABLEDEBUGGERATTACHMENT)DISABLEALLSWAP-DIRREQSTATISTICS-DIRPORTFRONTPAGE DIRPORTDIRPOLICY DIRCACHE=DIRAUTHORITYFALLBACKRATE%DIRAUTHORITY=DIRALLOWPRIVATEADDRESSESADATADIRECTORYGROUPREADABLE'DATADIRECTORY7COUNTPRIVATEBANDWIDTH 55]W 55c{CIRCUITSTREAMTIMEOUTCircuitStreamTimeoutClientNUMTimeout for shifting streams among circuitsIf non-zero, this option overrides our internal timeout schedule for how many seconds until we detach a stream from a circuit and try a new circuit. If your network is particularly slow, you might want to set this to a number like 60. (Default: 0)VhV ==_CIRCUITSAVAILABLETIMEOUTCircuitsAvailableTimeoutClientNUMTime to keep circuits open and unused forTor will attempt to keep at least one open, unused circuit available for this amount of time. This option governs how long idle circuits are kept open, as well as the amount of time Tor will keep a circuit open to each of the recently used ports. This way when the Tor client is entirely idle, it can expire all of its circuits, and then expire its TLS connections. Note that the actual timeout value is uniformly randomized from the specified value to twice that amount. (Default: 30 minutes; Max: 24 hours)U X !!eCLIENTONLYClientOnlyClient0|1Ensures that we aren't used as a relay or directory mirrorIf set to 1, Tor will not run as a relay or serve directory requests, even if the ORPort, ExtORPort, or DirPort options are set. (This config option is mostly unnecessary: we added it back when we were considering having Tor clients auto-promote themselves to being relays if they were stable and fast enough. The current behavior is simply that Tor is a client unless ORPort, ExtORPort, or DirPort are configured.) (Default: 0)W Z ==REDUCEDCONNECTIONPADDINGReducedConnectionPaddingClient0|1Reduce padding and increase circuit cycling for low bandidth connectionsIf set to 1, Tor will not not hold OR connections open for very long, and will send less padding on these connections. Only clients may set this option. This option should be offered via the UI to mobile users for use where bandwidth may be expensive. (Default: 0)YQY //k]CONNECTIONPADDINGConnectionPaddingClient0|1|autoPad traffic to help prevent correlation attacksThis option governs Tor's use of padding to defend against some forms of traffic analysis. If it is set to auto, Tor will send padding only if both the client and the relay support it. If it is set to 0, Tor will not send any padding cells. If it is set to 1, Tor will still send padding for client connections regardless of relay support. Only clients may set this option. This option should be offered via the UI to mobile users for use where bandwidth may be expensive. (Default: auto)X &G\ 77[SREDUCEDCIRCUITPADDINGReducedCircuitPaddingClient0|1Only use lightweight padding algorithmsIf set to 1, Tor will only use circuit padding algorithms that have low overhead. Only clients may set this option. This option should be offered via the UI to mobile users for use where bandwidth may be expensive. (Default: 0)[W[ )){oCIRCUITPADDINGCircuitPaddingClient0|1Pad circuit traffic to help prevent correlation attacksIf set to 0, Tor will not pad client circuits with additional cover traffic. Only clients may set this option. This option should be offered via the UI to mobile users for use where bandwidth may be expensive. If set to 1, padding will be negotiated as per the consensus and relay support (unlike ConnectionPadding, CircuitPadding cannot be force-enabled). (Default: 1)Z ISO3166 codes, and must be wrapped in braces; fingerprints may be preceded by a dollar sign. (Example: ExcludeNodes ABCD1234CDEF5678ABCD1234CDEF5678ABCD1234, {cc}, 255.254.0.0/8) By default, this option is treated as a preference that Tor is allowed to override in order to keep working. For example, if you try to connect to a hidden service, but you have excluded all of the hidden service's introduction points, Tor will connect to one of them anyway. If you do not want this behavior, set the StrictNodes option (documented below). Note also that if you are a relay, this (and the other node selection options below) only affects your own circuits that Tor builds for you. Clients can still build circuits through you to any node. Controllers can tell Tor to build circuits through any node. Country codes are case-insensitive. The code "{??}" refers to nodes whose country can't be identified. No country code, including {??}, works if no GeoIPFile can be loaded. See also the GeoIPExcludeUnknown option below.\   ^ --'eMEXCLUDEEXITNODESExcludeExitNodesClientnode,node,...Relays or locales never to be used for exitsA list of identity fingerprints, country codes, and address patterns of nodes to never use when picking an exit node---that is, a node that delivers traffic for you outside the Tor network. Note that any node listed in ExcludeNodes is automatically considered to be part of this list too. See the ExcludeNodes option for more information on how to specify nodes. See also the caveats on the "ExitNodes" option below.]h] %%'iEXCLUDENODESExcludeNodesClientnode,node,...Relays or locales never to be used in circuitsA list of identity fingerprints, country codes, and address patterns of nodes to avoid when building a circuit. Country codes are 2-letter[ p%a ##'Q-MIDDLENODESMiddleNodesClientnode,node,...Preferred middle hops for circuitsA list of identity _z` 'McEXITNODESExitNodesClientnode,node,...Preferred final hop for circuitsA list of identity fingerprints, country codes, ^_ 33s;GEOIPEXCLUDEUNKNOWNGeoIPExcludeUnknownClient0|1|autoDon't use relays with an unknown locale in circuitsIf this option is set to auto, then whenever any country code is set in ExcludeNodes or ExcludeExitNodes, all nodes with unknown country ({??} and possibly {A1}) are treated as excluded as well. If this option is set to 1, then all unknown countries are treated as excluded in ExcludeNodes and ExcludeExitNodes. This option has no effect when a GeoIP file isn't configured or can't be found. (Default: auto)^and address patterns of nodes to use as exit node---that is, a node that delivers traffic for you outside the Tor network. See the ExcludeNodes option for more information on how to specify nodes. Note that if you list too few nodes here, or if you exclude too many exit nodes with ExcludeExitNodes, you can degrade functionality. For example, if none of the exits you list allows traffic on port 80 or 443, you won't be able to browse the web. Note also that not every circuit is used to deliver traffic outside of the Tor network. It is normal to see non-exit circuits (such as those used to connect to hidden services, those that do directory fetches, those used for relay reachability self-tests, and so on) that end at a non-exit node. To keep a node from being used entirely, see ExcludeNodes and StrictNodes. The ExcludeNodes option overrides this option: any node listed in both ExitNodes and ExcludeNodes is treated as excluded. The .exit address notation, if enabled via MapAddress, overrides this option._fingerprints and country codes of nodes to use for "middle" hops in your normal circuits. Normal circuits include all circuits except for direct connections to directory servers. Middle hops are all hops other than exit and entry. This is an **experimental** feature that is meant to be used by researchers and developers to test new features in the Tor network safely. Using it without care will strongly influence your anonymity. This feature might get removed in the future. The HSLayer2Node and HSLayer3Node options override this option for onion service circuits, if they are set. The vanguards addon will read this option, and if set, it will set HSLayer2Nodes and HSLayer3Nodes to nodes from this set. The ExcludeNodes option overrides this option: any node listed in both MiddleNodes and ExcludeNodes is treated as excluded. See the **ExcludeNodes** option for more information on how to specify nodes.` db !!'O1ENTRYNODESEntryNodesClientnode,node,...Preferred first hops for circuitsA list of identity fingerprints and country codes of nodes to use for the first hop in your normal circuits. Normal circuits include all circuits except for direct connections to directory servers. The Bridge option overrides this option; if you have configured bridges and UseBridges is 1, the Bridges are used as your entry nodes. The ExcludeNodes option overrides this option: any node listed in both EntryNodes and ExcludeNodes is treated as excluded. See the ExcludeNodes option for more information on how to specify nodes.a 0c ##cESTRICTNODESStrictNodesClient0|1Never uses notes outside of Entry/ExitNodesIf StrictNodes is set to 1, Tor will treat solely the ExcludeNodes option as a requirement to follow for all the circuits you generate, even if doing so will break functionality for you (StrictNodes does not apply to ExcludeExitNodes, ExitNodes, MiddleNodes, or MapAddress). If StrictNodes is set to 0, Tor will still try to avoid nodes in the ExcludeNodes list, but it will err on the side of avoiding unexpected errors. Specifically, StrictNodes 0 tells Tor that it is okay to use an excluded node when it is necessary to perform relay reachability self-tests, connect to a hidden service, provide a hidden service to a client, fulfill a .exit request, upload directory information, or download directory information. (Default: 0)b ,,,}e ''GoFIREWALLPORTSFirewallPortsClientPORTSPorts used by FascistFirewallA list of ports that your firewall allows you to connect to. Only used when FascistFirewall is set. This option is deprecated; use ReachableAddresses instead. (Default: 80, 443)dQd ++koFASCISTFIREWALLFascistFirewallClient0|1Only make outbound connections on FirewallPortsIf 1, Tor will only create outgoing connections to ORs running on ports that your firewall allows (defaults to 80 and 443; see FirewallPorts). This will allow you to run Tor as a client behind a firewall with restrictive policies, but will not allow you to run as a server behind such a firewall. If you prefer more fine-grained control, use ReachableAddresses instead.c Nf 113YOREACHABLEADDRESSESReachableAddressesClientIP[/MASK][:PORT]...Rules for bypassing the local firewallA comma-separated list of IP addresses and ports that your firewall allows you to connect to. The format is as for the addresses in ExitPolicy, except that "accept" is understood unless "reject" is explicitly provided. For example, 'ReachableAddresses 99.0.0.0/8, reject 18.0.0.0/8:80, accept *:80' means that your firewall allows connections to everything inside net 99, rejects port 80 connections to net 18, and accepts connections to port 80 otherwise. (Default: 'accept *:*'.)e mg 773WREACHABLEDIRADDRESSESReachableDirAddressesClientIP[/MASK][:PORT]...Rules for bypassing the local firewall (directory fetches)Like ReachableAddresses, a list of addresses and ports. Tor will obey these restrictions when fetching directory information, using standard HTTP GET requests. If not set explicitly then the value of ReachableAddresses is used. If HTTPProxy is set then these connections will go through that proxy. (DEPRECATED: This option has had no effect for some time.)f xh 553{yREACHABLEORADDRESSESReachableORAddressesClientIP[/MASK][:PORT]...Rules for bypassing the local firewall (OR connections)Like ReachableAddresses, a list of addresses and ports. Tor will obey these restrictions when connecting to Onion Routers, using TLS/SSL. If not set explicitly then the value of ReachableAddresses is used. If HTTPSProxy is set then these connections will go through that proxy. The separation between ReachableORAddresses and ReachableDirAddresses is only interesting when you are connecting through proxies (see HTTPProxy and HTTPSProxy). Most proxies limit TLS connections (which Tor uses to connect to Onion Routers) to port 443, and some limit HTTP GET requests (which Tor uses for fetching directory information) to port 80.g YY$i ##]=HIDSERVAUTHHidServAuthClientonion-address auth-cookie [service-name]Authentication credentials for connecting to a hidden serviceClient authorization for a v2 hidden service. Valid onion addresses contain 16 characters in a-z2-7 plus ".onion", and valid auth cookies contain 22 characters in A-Za-z0-9+/. The service name is only used for internal purposes, e.g., for Tor controllers. This option may be used multiple times for different hidden services. If a hidden service uses authorization and this option is not set, the hidden service is not accessible. Hidden services can be configured to require authorization using the HiddenServiceAuthorizeClient option.h vj 11q%CLIENTONIONAUTHDIRClientOnionAuthDirClientpathPath containing hidden service authorization filesPath to the directory containing v3 hidden service authorization files. Each file is for a single onion address, and the files MUST have the suffix ".auth_private" (i.e. "bob_onion.auth_private"). The content format MUST be: :descriptor:x25519: The MUST NOT have the ".onion" suffix. The is the base32 representation of the raw key bytes only (32 bytes for x25519). See Appendix G in the rend-spec-v3.txt file of torspec for more information.i 6m --s-NEWCIRCUITPERIODNewCircuitPeriodClientNUMPeriod for considering the creation of new circuitsEvery NUM seconds consider whether to build a new circuit. (Default: 30 seconds)lol !!1S9MAPADDRESSMapAddressClientaddress newaddressAlias mappings for address requestsWhen a request for address arrives to Tor, it will transform to newaddress before processing it. For example, if you always want connections to www.example.comi8k ))YOLONGLIVEDPORTSLongLivedPortsClientPORTSPorts requiring highly reliable relaysA list of ports for services that tend to have long-running connections (e.g. chat and interactive shells). Circuits for streams that use these ports will contain only high-uptime nodes, to reduce the chance that a node will go down before the stream is finished. Note that the list is also honored for circuits (both client and service side) involving hidden services whose virtual port is in this list. (Default: 21, 22, 706, 1863, 5050, 5190, 5222, 5223, 6523, 6667, 6697, 8300)jj to exit via torserver (where torserver is the fingerprint of the server), use "MapAddress www.example.com www.example.com.torserver.exit". If the value is prefixed with a "*.", matches an entire domain. For example, if you always want connections to example.com and any if its subdomains to exit via torserver (where torserver is the fingerprint of the server), use "MapAddress *.example.com *.example.com.torserver.exit". (Note the leading "*." in each part of the directive.) You can also redirect all subdomains of a domain to a single address. For example, "MapAddress *.example.com www.example.com". If the specified exit is not available, or the exit can not connect to the site, Tor will fail any connections to the mapped address.+ NOTES: 1. When evaluating MapAddress expressions Tor stops when it hits the most recently added expression that matches the requested address. So if you have the following in your torrc, www.torproject.org will map to 198.51.100.1: MapAddress www.torproject.org 192.0.2.1 MapAddress www.torproject.org 198.51.100.1 2. Tor evaluates the MapAddress configuration until it finds no matches. So if you have the following in your torrc, www.torproject.org will map to 203.0.113.1: MapAddress 198.51.100.1 203.0.113.1 MapAddress www.torproject.org 198.51.100.1 3. The following MapAddress expression is invalid (and will be ignored) because you cannot map from a specific address to a wildcard address: MapAddress www.torproject.org *.torproject.org.torserver.exit 4. Using a wildcard to match only part of a string (as in *ample.com) is also invalid. 5. Tor maps hostnames and IP addresses separately. If you MapAddress a DNS name, but use an IP address to connect, then Tor will ignore the DNS name mapping. 6. MapAddress does not apply to redirects in the application protocol. For example, HTTP redirects and alt-svc headers will ignore mappings for the original address. You can use a wildcard mapping to handle redirects within the same site.k Fo ==y'MAXCLIENTCIRCUITSPENDINGMaxClientCircuitsPendingClientNUMNumber of circuits that can be in construction at onceDo not allow more than NUM circuits to be pending at a time for handling client streams. A circuit is pending if we have begun constructing it, but it has not yet been completely constructed. (Default: 32)nn 33_{MAXCIRCUITDIRTINESSMaxCircuitDirtinessClientNUMDuration for reusing constructed circuitsFeel free to reuse a circuit that was first used at most NUM seconds ago, but never attach a new stream to a circuit that is too old. For hidden services, this applies to the last time a circuit was used, not the first. Circuits with streams constructed with SOCKS authentication via SocksPorts that have KeepAliveIsolateSOCKSAuth also remain alive for MaxCircuitDirtiness seconds after carrying the last such stream. (Default: 10 minutes)m hh3q 99 sENFORCEDISTINCTSUBNETSEnforceDistinctSubnetsClient0|1Prevent use of multiple relays from the same subnet on a circuitIf 1, Tor will not put two servers whose IP addresses are "too close" on the same circuit. Currently, two addresses are "too close" if they lie in the same /16 range. (Default: 1)p_p !!'YNODEFAMILYNodeFamilyClientnode,node,...Define relays as belonging to a familyThe Tor servers, defined by their identity fingerprints, constitute a "family" of similar or co-administered servers, so never use any two of them in the same circuit. Defining a NodeFamily is only needed when a server doesn't list the family itself (with MyFamily). This option can be used multiple times; each instance defines a separate family. In addition to nodes, you can also list IP address and ranges and country codes in {curly braces}. See the ExcludeNodes option for more information on how to specify nodes.onng applications. Set this to 0 if you don't want to allow application connections via SOCKS. Set it to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. If a unix domain socket is used, you may quote the path using standard C escape sequences. (Default: 9050) NOTE: Although this option allows you to specify an IP address other than localhost, you should do so only with extreme caution. The SOCKS protocol is unencrypted and (as we use it) unauthenticated, so exposing it in this way could leak your information to anybody watching your network, and allow anybody to use your computer as an open proxy. If multiple entries of this option are present in your configuration file, Tor will perform stream isolation between listeners by default. The isolation flags arguments give Tor rules for which streams received on this SocksPort are allowed to share circuits with one another. Recognized isolation flags are: IsolateClientAddr Don't sohare circuits with streams from a different client address. (On by default and strongly recommended when supported; you can disable it with NoIsolateClientAddr. Unsupported and force-disabled when using Unix domain sockets.) IsolateSOCKSAuth Don't share circuits with streams for which different SOCKS authentication was provided. (For HTTPTunnelPort connections, this option looks at the Proxy-Authorization and X-Tor-Stream-Isolation headers. On by default; you can disable it with NoIsolateSOCKSAuth.) IsolateClientProtocol Don't share circuits with streams using a different protocol. (SOCKS 4, SOCKS 5, TransPort connections, NATDPort connections, and DNSPort requests are all considered to be different protocols.) IsolateDestPort Don't share circuits with streams targeting a different destination port. IsolateDestAddr Don't share circuits with streams targeting a different destination address. KeepAliveIsolateSOCKSAuth If IsolateSOCKSAuth is enabled, keep alive circuits while they hapve at least one stream with SOCKS authentication active. After such a circuit is idle for more than MaxCircuitDirtiness seconds, it can be closed. SessionGroup=INT If no other isolation rules would prevent it, allow streams on this port to share circuits with streams from every other port with the same session group. (By default, streams received on different SocksPorts, TransPorts, etc are always isolated from one another. This option overrides that behavior.) Other recognized flags for a SocksPort are: NoIPv4Traffic Tell exits to not connect to IPv4 addresses in response to SOCKS requests on this connection. IPv6Traffic Tell exits to allow IPv6 addresses in response to SOCKS requests on this connection, so long as SOCKS5 is in use. (SOCKS4 can't handle IPv6.) PreferIPv6 Tells exits that, if a host has both an IPv4 and an IPv6 address, we would prefer to connect to it via IPv6. (IPv4 is the default.) NoDNSRequest Do not ask exits to resolve DNS addresses in SOCKS5 requests. Tor qwill connect to IPv4 addresses, IPv6 addresses (if IPv6Traffic is set) and .onion addresses. NoOnionTraffic Do not connect to .onion addresses in SOCKS5 requests. OnionTrafficOnly Tell the tor client to only connect to .onion addresses in response to SOCKS5 requests on this connection. This is equivalent to NoDNSRequest, NoIPv4Traffic, NoIPv6Traffic. The corresponding NoOnionTrafficOnly flag is not supported. CacheIPv4DNS Tells the client to remember IPv4 DNS answers we receive from exit nodes via this connection. CacheIPv6DNS Tells the client to remember IPv6 DNS answers we receive from exit nodes via this connection. GroupWritable Unix domain sockets only: makes the socket get created as group-writable. WorldWritable Unix domain sockets only: makes the socket get created as world-writable. CacheDNS Tells the client to remember all DNS answers we receive from exit nodes via this connection. UseIPv4Cache Tells the client to use any cached IPv4 DNS answers we have whren making requests via this connection. (NOTE: This option, or UseIPv6Cache or UseDNSCache, can harm your anonymity, and probably won't help performance as much as you might expect. Use with care!) UseIPv6Cache Tells the client to use any cached IPv6 DNS answers we have when making requests via this connection. UseDNSCache Tells the client to use any cached DNS answers we have when making requests via this connection. PreferIPv6Automap When serving a hostname lookup request on this port that should get automapped (according to AutomapHostsOnResolve), if we could return either an IPv4 or an IPv6 answer, prefer an IPv6 answer. (On by default.) PreferSOCKSNoAuth Ordinarily, when an application offers both "username/password authentication" and "no authentication" to Tor via SOCKS5, Tor selects username/password authentication so that IsolateSOCKSAuth can work. This can confuse some applications, if they offer a username/password combination then get confused when asked for one. You can dissable this behavior, so that Tor will select "No authentication" when IsolateSOCKSAuth is disabled, or when this option is set. ExtendedErrors Return extended error code in the SOCKS reply. So far, the possible errors are: X'F0' Onion Service Descriptor Can Not be Found The requested onion service descriptor can't be found on the hashring and thus not reachable by the client. (v3 only) X'F1' Onion Service Descriptor Is Invalid The requested onion service descriptor can't be parsed or signature validation failed. (v3 only) X'F2' Onion Service Introduction Failed Client failed to introduce to the service meaning the descriptor was found but the service is not connected anymore to the introduction point. The service has likely changed its descriptor or is not running. (v3 only) X'F3' Onion Service Rendezvous Failed Client failed to rendezvous with the service which means that the client is unable to finalize the connection. (v3 only) X'F4' Onion Service Missing Client Authorization Client was able to download the requested onion service descriptor but is unable to decrypt its content because it is missing client authorization information. (v3 only) X'F5' Onion Service Wrong Client Authorization Client was able to download the requested onion service descriptor but is unable to decrypt its content using the client authorization information it has. This means the client access were revoked. (v3 only) X'F6' Onion Service Invalid Address The given .onion address is invalid. In one of these cases this error is returned: address checksum doesn't match, ed25519 public key is invalid or the encoding is invalid. (v3 only) Flags are processed left to right. If flags conflict, the last flag on the line is used, and all earlier flags are ignored. No error is issued for conflicting flags.q Dt %%CSOCKSTIMEOUTSocksTimeoutClientNUMTime until idle or unestablished socks connections are closedLet a socks connection wait NUM seconds handshaking, and NUM seconds unattached waiting for an appropriate circuit, before we fail it. (Default: 2 minutes)s]s ##/MSOCKSPOLICYSocksPolicyClientpolicy,policy,...Access policy for the pocks portSet an entrance policy for this server, to limit who can connect to the SocksPort and DNSPort ports. The policies have the same form as exit policies below, except that port specifiers are ignored. Any address not matched by some entry in the policy is accepted.rr {SGSOCKSPORTSocksPortClient[address:]port|unix:path|auto [flags] [isolation flags]Port for using tor as a Socks proxyOpen this port to listen for connections from SOCKS-speakim nnu ??/{TOKENBUCKETREFILLINTERVALTokenBucketRefillIntervalClientNUM [msec|second]Frequency at which exhausted connections are checked for new trafficSet the refill delay interval of Tor's token bucket to NUM milliseconds. NUM must be between 1 and 1000, inclusive. When Tor is out of bandwidth, on a connection or globally, it will wait up to this long before it tries to use that connection again. Note that bandwidth limits are still expressed in bytes per second: this option only affects the frequency with which Tor checks to see whether previously exhausted connections may read again. Can not be changed while tor is running. (Default: 100 msec)t Hv ))-TRACKHOSTEXITSTrackHostExitsClienthost,.domain,...Maintains use of the same exit whenever connecting to this destinationFor each value in the comma separated list, Tor will track recent connections to hosts that match this value and attempt to reuse the same exit node for each. If the value is prepended with a '.', it is treated as matching an entire domain. If one of the values is just a '.', it means match everything. This option is useful if you frequently connect to sites that will expire all your authentication cookies (i.e. log you out) if your IP address changes. Note that this option does have the disadvantage of making it more clear that a given history is associated with a single user. However, most people who would wish to observe this will observe it through cookies or other protocol-specific means anyhow.u ky !!IYUSEBRIDGESUseBridgesClient0|1Make use of configured bridgesWhen set, Tor will fetch descriptors for each bridge listed in the "Bridge" config lines, and use these relays as both entry guards and directory guards. (Default: 0)xXx AA}?UPDATEBRIDGESFROMAUTHORITYUpdateBridgesFromAuthorityClient0|1Toggles fetching bridge descriptors from the authoritiesWhen set (along with UseBridges), Tor will try to fetch bridge descriptors from the configured bridge authorities when feasible. It will fall back to a direct request if the authority responds with a 404. (Default: 0)ww 55iYTRACKHOSTEXITSEXPIRETrackHostExitsExpireClientNUMTime until use of an exit for tracking expiresSince exit servers go up and down, it is desirable to expire the association between host and exit server after NUM seconds. The default is 1800 seconds (30 minutes).v 5{ //{]GUARDFRACTIONFILEGuardfractionFileClientFILENAMEFile containing information with duration of our guardsV3 authoritative directories only. Configures the location of the guardfraction file which contains information about how long relays have been guards. (Default: unset)zHz ))IUSEENTRYGUARDSUseEntryGuardsClient0|1Use guard relays for first hopIf this option is set to 1, we pick a few long-term entry servers, and try to stick with them. This is desirable because constantly changing servers increases the odds that an adversary who owns some servers will observe a fraction of your paths. Entry Guards can not be used by Directory Authorities or Single Onion Services. In these cases, this option is ignored. (Default: 1)y --r} ))c=NUMENTRYGUARDSNumEntryGuardsClientNUMPool size of guard relays we'll select fromIf UseEntryGuards is set to 1, we will try to pick a total of NUM routers as long-term entries for our circuits. If NUM is 0, we try to learn the number from the guard-n-primary-guards-to-use consensus parameter, and default to 1 if the consensus parameter isn't set. (Default: 0)|[| --qoUSEGUARDFRACTIONUseGuardFractionClient0|1|autoTake guardfraction into account for path selectionThis option specifies whether clients should use the guardfraction information found in the consensus during path selection. If it's set to auto, clients will do what the UseGuardFraction consensus parameter tells them to do. (Default: auto){ = 11k?NUMDIRECTORYGUARDSNumDirectoryGuardsClientNUMPool size of directory guards we'll select fromIf UseEntryGuards is set to 1, we try to make sure we have at least NUM routers to use as directory guards. If this option is set to 0, use the value from the guard-n-primary-dir-guards-to-use consensus parameter, and default to 3 if the consensus parameter isn't set. (Default: 0)~@~ -- )NUMPRIMARYGUARDSNumPrimaryGuardsClientNUMPool size of strongly preferred guard relays we'll select fromIf UseEntryGuards is set to 1, we will try to pick NUM routers for our primary guard list, which is the set of routers we strongly prefer when connecting to the Tor network. If NUM is 0, we try to learn the number from the guard-n-primary-guards consensus parameter, and default to 3 if the consensus parameter isn't set. (Default: 0)} ff {USAFESOCKSSafeSocksClient0|1Toggles rejecting unsafe variants of the socks protocolWhen this option is enabled, Tor will reject application connections that use unsafe variants of the socks protocol -- ones that only provide an IP address, meaning the application is doing a DNS resolve first. Specifically, these are socks4 and socks5 when not doing remote DNS. (Default: 0) ''3OsGUARDLIFETIMEGuardLifetimeClientN days|weeks|monthsMinimum time to keep entry guardsIf UseEntryGuards is set, minimum time to keep a guard on our guard list before picking a new one. If less than one day, we use defaults from the consensus directory. (Default: 0) ""$q]GhYH2 _39+!EXITPOLICY EXITNODES`%EXCLUDENODES]1EXITPORTSTATISTICS;EXITPOLICYREJECTPRIVATE$KEXITPOLICYREJECTLOCALINTERFACES/FETCHDIRINFOEARLY%+FASCISTFIREWALLd#FALLBACKDIR$3EXTRAINFOSTATISTICS(UEXTORPORTCOOKIEAUTHFILEGROUPREADABLE#;EXTORPORTCOOKIEAUTHFILE" EXTORPORT!/EXTENDBYED25519ID CEXTENDALLOWPRIVATEADDRESSESEXITRELAY+YHIDDENSERVICEENABLEINTRODOSBURSTPERSEC"GHIDDENSERVICEDIRGROUPREADABLE-HIDDENSERVICEDIR!EHIDDENSERVICEAUTHORIZECLIENT #IHIDDENSERVICEALLOWUNKNOWNPORTS +HEARTBEATPERIOD7HASHEDCONTROLPASSWORD+'HARDWAREACCEL*'GUARDLIFETIME/GUARDFRACTIONFILE{#GEOIPV6FILEGEOIPFILE3GEOIPEXCLUDEUNKNOWN_'FIREWALLPORTSe;FETCHUSELESSDESCRIPTORS)9FETCHSERVERDESCRIPTORS(;FETCHHIDSERVDESCRIPTORS'9FETCHDIRINFOEXTRAEARLY& WNW{ 991}uVIRTUALADDRNETWORKIPV6VirtualAddrNetworkIPv6Client[IPv6Address]/bitsIPv6 address range to use ~99-} VIRTUALADDRNETWORKIPV4VirtualAddrNetworkIPv4ClientIPv4Address/bitsIPv4 address range to use when needing a virtual address. #TESTSOCKSTestSocksClient0|1Provide notices for if socks connections are of the safe or unsafe variantsWhen this option is enabled, Tor will make a notice-level log entry for each connection to the Socks port indicating whether the request used a safe socks protocol or an unsafe one (see above entry on SafeSocks). This helps to determine whether an application using Tor is possibly leaking DNS requests. (Default: 0)when needing a virtual addressWhen Tor needs to assign a virtual (unused) address because of a MAPADDRESS command from the controller or the AutomapHostsOnResolve feature, Tor picks an unassigned address from this range. (Defaults: 127.192.0.0/10 and [FE80::]/10 respectively.) When providing proxy server service to a network of computers using a tool like dns-proxy-tor, change the IPv4 network to "10.192.0.0/10" or "172.16.0.0/12" and change the IPv6 network to "[FC00::]/7". The default VirtualAddrNetwork address ranges on a properly configured machine will route to the loopback or link-local interface. The maximum number of bits for the network prefix is set to 104 for IPv6 and 16 for IPv4. However, a wider network - smaller prefix length o is preferable since it reduces the chances for an attacker to guess the used IP. For local use, no change to the default VirtualAddrNetwork setting is needed.  ))Wo HTTPTUNNELPORTHTTPTunnelPortClient[address:]port|auto [isolation flags]Port on which to allow 'HTTP CONNECT' connectionsOpen this port to listen for proxy connections using the "HTTP CONNECT" protocol instead of SOCKS. Set this to 0 if you don't want to allow "HTTP CONNECT" connections. Set the port to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. If multiple entries of this option are present in your configuration file, Tor will perform stream isolation between listeners by default. See SOCKSPort for an explanation of isolation flags. (Default: 0)a ;;UALLOWNONRFC953HOSTNAMESAllowNonRFC953HostnamesClient0|1Toggles blocking invalid characters in hostname resolutionWhen this option is disabled, Tor blocks hostnames containing illegal characters (like @ and :) rather than sending them to an exit node to be resolved. This helps trap accidental attempts to resolve URLs and so on. (Default: 0) EE( ))G7TRANSPROXYTYPETransProxyTypeClientdefault|TPROXY|ipfw|pf-divertProxy type to be usedTransProxyH Ws'TRANSPORTTransPortClient[address:]port|auto [isolation flags]Port for transparent proxying if the OS supports itOpen this port to listen for transparent proxy connections. Set this to 0 if you don't want to allow transparent proxy connections. Set the port to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. If multiple entries of this option are present in your configuration file, Tor will perform stream isolation between listeners by default. See SOCKSPort for an explanation of isolation flags. TransPort requires OS support for transparent proxies, such as BSDs' pf or Linux's IPTables. If you're planning to use Tor as a transparent proxy for a network, you'll want to examine and change VirtualAddrNetwork from the default setting. (Default: 0)Type may only be enabled when there is transparent proxy listener enabled. Set this to "TPROXY" if you wish to be able to use the TPROXY Linux module to transparently proxy connections that are configured using the TransPort option. Detailed information on how to configure the TPROXY feature can be found in the Linux kernel source tree in the file Documentation/networking/tproxy.txt. Set this option to "ipfw" to use the FreeBSD ipfw interface. On *BSD operating systems when using pf, set this to "pf-divert" to take advantage of divert-to rules, which do not modify the packets like rdr-to rules do. Detailed information on how to configure pf to use divert-to rules can be found in the pf.conf(5) manual page. On OpenBSD, divert-to is available to use on versions greater than or equal to OpenBSD 4.4. Set this to "default", or leave it unconfigured, to use regular IPTables on Linux, or to use pf rdr-to rules on *BSD systems. (Default: "default") >>> W_+NATDPORTNATDPortClient[address:]port|auto [isolation flags]Port for forwarding ipfw NATD connectionsOpen this port to listen for connections from old versions of ipfw (as included in old versions of FreeBSD, etc) using the NATD protocol. Use 0 if you don't want to allow NATD connections. Set the port to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. If multiple entries of this option are present in your configuration file, Tor will perform stream isolation between listeners by default. See SocksPort for an explanation of isolation flags. This option is only for people who cannot use TransPort. (Default: 0) % 55/u+AUTOMAPHOSTSSUFFIXESAutomapHostsSuffixesClientSUFFIX,SUFFIX,...Address suffixes recognized by AutomapHostsOnResolveA comma-separated list of suffixes to use with AutomapHostsOnResolve. The "." suffix is equivalent to "all addresses." (Default: .exit,.onion).W 77 ?AUTOMAPHOSTSONRESOLVEAutomapHostsOnResolveClient0|1Map addresses ending with special suffixes to virtual addressesWhen this option is enabled, and we get a request to resolve an address that ends with one of the suffixes in AutomapHostsSuffixes, we map an unused virtual address to that address, and return the new virtual address. This is handy for making ".onion" addresses work with applications that resolve an address and then connect to it. (Default: 0) PP# MM9CLIENTDNSREJECTINTERNALADDRESSESClientDNSRejectInternalAddressesClient0|1Disregards anonymous DNS responses for internal addressesIf true, Tor does not believe any anonymously retrieved DNS answer that tells it that an address resolves to an internal address (like 127.0.0.1 or 192.168.0.1). This option prevents certain browser-based attacks; it is not allowed to be set on the default network. (Default: 1) W}DNSPORTDNSPortClient[address:]port|auto [isolation flags]Port from which DNS responses are fetched instead of torIf non-zero, open this port to listen for UDP DNS requests, and resolve them anonymously. This port only handles A, AAAA, and PTR requests---it doesn't handle arbitrary DNS request types. Set the port to "auto" to have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. See SocksPort for an explanation of isolation flags. (Default: 0) . //qMDOWNLOADEXTRAINFODownloadExtraInfoClient0|1Toggles fetching of extra information about relaysIf true, Tor downloads and caches "extra-info" documents. These documents contain information about servers other than the information in their regular server descriptors. Tor does not use this information for anything itself; to save bandwidth, leave this option turned off. (Default: 0)N GGe5CLIENTREJECTINTERNALADDRESSESClientRejectInternalAddressesClient0|1Disables use of Tor for internal connectionsIf true, Tor does not try to fulfill requests to connect to an internal address (like 127.0.0.1 or 192.168.0.1) unless an exit node is specifically requested (for example, via a .exit hostname, or a controller request). If true, multicast DNS hostnames for machines on the local network (of the form *.local) are also rejected. (Default: 1) o 55'SREJECTPLAINTEXTPORTSRejectPlaintextPortsClientport,port,...Prevents connections on risky portsLike WarnPlaintextPorts, but instead of warning about risky port uses, Tor will instead refuse to make the connection. (Default: None)K 11'YSWARNPLAINTEXTPORTSWarnPlaintextPortsClientport,port,...Toggles warnings for using risky portsTells Tor to issue a warnings whenever the user tries to make an anonymous connection to one of these ports. This option is designed to alert users to services that risk sending passwords in the clear. (Default: 23,109,110,143) ZB '''s;HSLAYER3NODESHSLayer3NodesClientnode,node,...permissible relays for the third hop of HS circuitsA list of identity fingerprints, nicknames, country codes, and address patterns of nodes that arev '''u!HSLAYER2NODESHSLayer2NodesClientnode,node,...permissible relays for the second hop of HS circuitsA list of identity f )) [OPTIMISTICDATAOptimisticDataClient0|1|autoUse exits without confirmation that prior connections succeededWhen this option is set, and Tor is using an exit node that supports the feature, it will try optimistically to send data to the exit node without waiting for the exit node to report whether the connection succeeded. This can save a round-trip time for protocols like HTTP where the client talks first. If OptimisticData is set to auto, Tor will look at the UseOptimisticData parameter in the networkstatus. (Default: auto)ingerprints, nicknames, country codes, and address patterns of nodes that are allowed to be used as the second hop in all client or service-side Onion Service circuits. This option mitigates attacks where the adversary runs middle nodes and induces your client or service to create many circuits, in order to discover your primary guard node. (Default: Any node in the network may be used in the second hop.) (Example: HSLayer2Nodes ABCD1234CDEF5678ABCD1234CDEF5678ABCD1234, {cc}, 255.254.0.0/8) When this is set, the resulting hidden service paths will look like: C - G - L2 - M - Rend C - G - L2 - M - HSDir C - G - L2 - M - Intro S - G - L2 - M - Rend S - G - L2 - M - HSDir S - G - L2 - M - Intro where C is this client, S is the service, G is the Guard node, L2 is a node from this option, and M is a random middle node. Rend, HSDir, and Intro point selection is not affected by this option. This option may be combined with HSLayer3Nodes to create paths of the form: C - G - L2 - L3 - Rend C - G - L2 - L3 - M - HSDir C - G - L2 - L3 - M - Intro S - G - L2 - L3 - M - Rend S - G - L2 - L3 - HSDir S - G - L2 - L3 - Intro ExcludeNodes have higher priority than HSLayer2Nodes, which means that nodes specified in ExcludeNodes will not be picked. When either this option or HSLayer3Nodes are set, the /16 subnet and node family restrictions are removed for hidden service circuits. Additionally, we allow the guard node to be present as the Rend, HSDir, and IP node, and as the hop before it. This is done to prevent the adversary from inferring information about our guard, layer2, and layer3 node choices at later points in the path. This option is meant to be managed by a Tor controller such as https://github.com/mikeperry-tor/vanguards that selects and updates this set of nodes for you. Hence it does not do load balancing if fewer than 20 nodes are selected, and if no nodes in HSLayer2Nodes are currently available for use, Tor will not work. Please use extreme care if you are setting this option manually. allowed to be used as the third hop in all client and service-side Onion Service circuits. This option mitigates attacks where the adversary runs middle nodes and induces your client or service to create many circuits, in order to discover your primary or Layer2 guard nodes. (Default: Any node in the network may be used in the third hop.) (Example: HSLayer3Nodes ABCD1234CDEF5678ABCD1234CDEF5678ABCD1234, {cc}, 255.254.0.0/8) When this is set by itself, the resulting hidden service paths will look like: C - G - M - L3 - Rend C - G - M - L3 - M - HSDir C - G - M - L3 - M - Intro S - G - M - L3 - M - Rend S - G - M - L3 - HSDir S - G - M - L3 - Intro where C is this client, S is the service, G is the Guard node, L2 is a node from this option, and M is a random middle node. Rend, HSDir, and Intro point selection is not affected by this option. While it is possible to use this option by itself, it should be combined with HSLayer2Nodes to create paths of the form: C - G - L2 - L3 - Rend C - G - L2 - L3 - M - HSDir C - G - L2 - L3 - M - Intro S - G - L2 - L3 - M - Rend S - G - L2 - L3 - HSDir S - G - L2 - L3 - Intro ExcludeNodes have higher priority than HSLayer3Nodes, which means that nodes specified in ExcludeNodes will not be picked. When either this option or HSLayer2Nodes are set, the /16 subnet and node family restrictions are removed for hidden service circuits. Additionally, we allow the guard node to be present as the Rend, HSDir, and IP node, and as the hop before it. This is done to prevent the adversary from inferring information about our guard, layer2, and layer3 node choices at later points in the path. This option is meant to be managed by a Tor controller such as https://github.com/mikeperry-tor/vanguards that selects and updates this set of nodes for you. Hence it does not do load balancing if fewer than 20 nodes are selected, and if no nodes in HSLayer3Nodes are currently available for use, Tor will not work. Please use extreme care if you are setting this option manually. vevs -- PATHBIASWARNRATEPathBiasWarnRateClientNUMFraction of circuits that must succeed before logging a warningv 11 PATHBIASNOTICERATEPathBiasNoticeRateClientNUMFraction of circuits that must succeed before logging a notice| 77 PATHBIASCIRCTHRESHOLDPathBiasCircThresholdClientNUMNumber of circuits through a guard before applying bias checks 33}OUSEMICRODESCRIPTORSUseMicrodescriptorsClient0|1|autoRetrieve microdescriptors rather than server descriptorsMicrodescriptors are a smaller version of the information that Tor needs in order to build its circuits. Using microdescriptors makes Tor clients download less directory information, thus saving bandwidth. Directory caches need to fetch regular descriptors and microdescriptors, so this option doesn't save any bandwidth for them. For legacy reasons, auto is accepted, but it has the same effect as 1. (Default: auto) ":>} 99 PATHBIASEXTREMEUSERATEPathBiasExtremeUseRateClientNUMFraction of streams that must succeed before logging an error{ 77 PATHBIASNOTICEUSERATEPathBiasNoticeUseRateClientNUMFraction of streams that must succeed before logging a notice{ 55 PATHBIASUSETHRESHOLDPathBiasUseThresholdClientNUMNumber of streams through a circuit before applying bias checks\ 99 GPATHBIASSCALETHRESHOLDPathBiasScaleThresholdClientNUMCircuits through a guard before scaling past observations downThese options override the default behavior of Tor's (currently experimental) path bias detection a`11_ PATHBIASDROPGUARDSPathBiasDropGuardsClientNUMDrop guards failing to establish circuitsx 33 PATHBIASEXTREMERATEPathBiasExtremeRateClientNUMFraction of circuits that must succeed before logging an errorlgorithm. To try to find broken or misbehaving guard nodes, Tor looks for nodes where more than a certain fraction of circuits through that guard fail to get built. The PathBiasCircThreshold option controls how many circuits we need to build through a guard before we make these checks. The PathBiasNoticeRate, PathBiasWarnRate and PathBiasExtremeRate options control what fraction of circuits must succeed through a guard so we won't write log messages. If less than PathBiasExtremeRate circuits succeed and PathBiasDropGuards is set to 1, we disable use of that guard. When we have seen more than PathBiasScaleThreshold circuits through a guard, we scale our observations by 0.5 (governed by the consensus) so that new observations don't get swamped by old ones. By default, or if a negative value is provided for one of these options, Tor uses reasonable defaults from the networkstatus consensus document. If no defaults are available there, these options default to 150, .70, .50, .30, 0, and 300 respectively. oo  ?? PATHBIASSCALEUSETHRESHOLDPathBiasScaleUseThresholdClientNUMStreams through a circuit before scaling past observations downSimilar to the above options, these options override the default behavior of Tor's (currently experimental) path use bias detection algorithm. Where as the path bias parameters govern thresholds for successfully building circuits, these four path use bias parameters govern thresholds only for circuit usage. Circuits which receive no stream usage are not counted by this detection algorithm. A used circuit is considered successful if it is capable of carrying streams or otherwise receiving well-formed responses to RELAY cells. By default, or if a negative value is provided for one of these options, Tor uses reasonable defaults from the networkstatus consensus document. If no defaults are available there, these options default to 20, .80, .60, and 100, respectively. >! ''{?CLIENTUSEIPV6ClientUseIPv6Client0|1Allow IPv6 connections to guards and fetching consensusIf this option is set to 1, Tor might connect to directory servers or entry nodes over IPv6. For IPv6 only hosts, you need to also set ClientUseIPv4 to 0 to disable IPv4. Note that clients configured with an IPv6 address in a Bridge, proxy, or pluggable transportline will try connecting over IPv6 even if ClientUseIPv6 is set to 0. (Default: 0)o ''{!CLIENTUSEIPV4ClientUseIPv4Client0|1Allow IPv4 connections to guards and fetching consensusIf this option is set to 0, Tor will avoid connecting to directory servers and entry nodes over IPv4. Note that clients with an IPv4 address in a Bridge, proxy, or pluggable transport line will try connecting over IPv4 even if ClientUseIPv4 is set to 0. (Default: 1) (" ;;kqCLIENTPREFERIPV6DIRPORTClientPreferIPv6DirPortClient0|1|autoPerfer relays with IPv6 when fetching consensusIf this option is set to 1, Tor prefers a directory port with an IPv6 address over one with IPv4, for direct connections, if a given directory server has both. (Tor also prefers an IPv6 DirPort if IPv4Client is set to 0.) If this option is set to auto, clients prefer IPv4. Other things may influence the choice. This option breaks a tie to the favor of IPv6. (Default: auto) (DEPRECATED: This option has had no effect for some time.) e$ 55YCLIENTAUTOIPV6ORPORTClientAutoIPv6ORPortClient0|1Connect to IPv6 ORPorts when availableIf this option is set to 1, Tor clients randomly prefer a node's IPv4 or IPv6 ORPort. The random preference is set every time a node is loaded from a new consensus or bridge config. When this option is set to 1, ClientPreferIPv6ORPort is ignored. (Default: 0)# 99k5CLIENTPREFERIPV6ORPORTClientPreferIPv6ORPortClient0|1|autoPrefer a guard's IPv6 rather than IPv4 endpointIf this option is set to 1, Tor prefers an OR port with an IPv6 address over one with IPv4 if a given entry node has both. (Tor also prefers an IPv6 ORPort if IPv4Client is set to 0.) If this option is set to auto, Tor bridge clients prefer the configured bridge address, and other clients prefer IPv4. Other things may influence the choice. This option breaks a tie to the favor of IPv6. (Default: auto) "(e&~k\A) 2e?$ vbJ,[MINMEASUREDBWSFORAUTHTOIGNOREADVERTISED-OFFLINEMASTERKEY)MAXMEMINQUEUES"?KEYDIRECTORYGROUPREADABLE%KEYDIRECTORY;MAXCONSENSUSAGEFORDIFFS=MAXCLIENTCIRCUITSPENDINGo3MAXCIRCUITDIRTINESSn9MAXADVERTISEDBANDWIDTH5!MAPADDRESSl'MAINLOOPSTATS)LONGLIVEDPORTSk1LOGTIMEGRANULARITY4/LOGMESSAGEDOMAINS3LOG2=LEARNCIRCUITBUILDTIMEOUTT7KISTSOCKBUFSIZEFACTORF ORPORT NUMCPUS NICKNAME MYFAMILY1MAXONIONQUEUEDELAY3OUTBOUNDBINDADDRESS8)OPTIMISTICDATA-NUMPRIMARYGUARDS~)NUMENTRYGUARDS}1NUMDIRECTORYGUARDS NOEXEC7!NODEFAMILYp-NEWCIRCUITPERIODm NATDPORT#MIDDLENODESaCMAXUNPARSEABLEDESCSIZETOLOG6`5KISTSCHEDRUNINTERVALE CMINUPTIMEHIDSERVDIRECTORYV25)HTTPTUNNELPORT;HTTPSPROXYAUTHENTICATOR/5KEEPBINDCAPABILITIES1+KEEPALIVEPERIOD0 IPV6EXIT J% AA PATHSNEEDEDTOBUILDCIRCUITSPathsNeededToBuildCircuitsClientNUMPortion of relays to require information for before making circuitsTor clients don't build circuits for user traffic until they know about enough of the network so that they could potentially construct enough of the possible paths through the network. If this option is set to a fraction between 0.25 and 0.95, Tor won't build circuits until it has enough descriptors or microdescriptors to construct that fraction of possible paths. Note that setting this option too low can make your Tor client less anonymous, and setting it too high can prevent your Tor client from bootstrapping. If this option is negative, Tor will use a default value chosen by the directory authorities. If the directory authorities do not choose a value, Tor will default to 0.6. (Default: -1) Y& ww5CLIENTBOOTSTRAPCONSENSUSAUTHORITYDOWNLOADINITIALDELAYClientBootstrapConsensusAuthorityDownloadInitialDelayClientNDelay when bootstrapping before downloading descriptors from authoritiesInitial delay in seconds for when clients should download consensuses from authorities if they are bootstrapping (that is, they don't have a usable, reasonably live consensus). Only used by clients fetching from a list of fallback directory mirrors. This schedule is advanced by (potentially concurrent) connection attempts, unlike other schedules, which are advanced by connection failures. (Default: 6) d' uuSCLIENTBOOTSTRAPCONSENSUSFALLBACKDOWNLOADINITIALDELAYClientBootstrapConsensusFallbackDownloadInitialDelayClientNDelay when bootstrapping before downloading descriptors from fallbacksInitial delay in seconds for when clients should download consensuses from fallback directory mirrors if they are bootstrapping (that is, they don't have a usable, reasonably live consensus). Only used by clients fetching from a list of fallback directory mirrors. This schedule is advanced by (potentially concurrent) connection attempts, unlike other schedules, which are advanced by connection failures. (Default: 0) EnE%) aa{CLIENTBOOTSTRAPCONSENSUSMAXINPROGRESSTRIESClientBootstrapConsensusMaxInProgressTriesClientNUMDescriptor documents that can be downloaded in parallelTry this many simultaneous connections to download a consensus before waiting for one to complete, timeout, or error out. (Default: 3)( IcCLIENTBOOTSTRAPCONSENSUSAUTHORITYONLYDOWNLOADINITIALDELAYClientBootstrapConsensusAuthorityOnlyDownloadInitialDelayClientNDelay when bootstrapping before downloading descriptors from authorities if fallbacks disabledInitial delay in seconds for when clients should download consensuses from authorities if they are bootstrapping (that is, they don't have a usable, reasonably live consensus). Only used by clients which don't have or won't fetch from a list of fallback directory mirrors. This schedule is advanced by (potentially concurrent) connection attempts, unlike other schedules, which are advanced by connection failures. (Default: 0) %t%K+ SSiDORMANTTIMEOUTDISABLEDBYIDLESTREAMSDormantTimeoutDisabledByIdleStreamsClient0|1Include idle streams when determining dormancyIf true, then any open client stream (even one not reading or writing) counts as client activity for the purpose of DormantClientTimeout. If false, then only network activity counts. (Default: 1)* 55A}DORMANTCLIENTTIMEOUTDormantClientTimeoutClientN minutes|hours|days|weeksBecome dormant when unused as a client for this durationIf Tor spends this much time without any client activity, enter a dormant state where automatic circuits are not built, and directory information is not fetched. Does not affect servers or onion services. Must be at least 10 minutes. (Default: 24 hours) $, 77?'DORMANTONFIRSTSTARTUPDormantOnFirstStartupClient0|1Begin tor in dormant modeIf true, then the first time Tor starts up with a fresh DataDirectory, it starts in dormant mode, and takes no actions until the user has made a request. (This mode is recommended if installing a Tor client for a user who might not actually use it.) If false, Tor bootstraps the first time it is started, whether it sees a user request or not. After the first time Tor starts, it begins in dormant mode if it was dormant before, and not otherwise. (Default: 0) p- ==_DORMANTCANCELEDBYSTARTUPDormantCanceledByStartupClient0|1Disable dormant mode when tor's restartedBy default, Tor starts in active mode if it was active the last time it was shut down, and in dormant mode if it was dormant. But if this option is true, Tor treats every startup event as user activity, and Tor will never start in Dormant mode, even if it has been unused for a long time on previous runs. (Default: 0) Note: Packagers and application developers should change the value of this option only with great caution: it has the potential to create spurious traffic on the network. This option should only be used if Tor is started by an affirmative user activity (like clicking on an applcation or running a command), and not if Tor is launched for some other reason (for example, by a startup process, or by an application that launches itself on every login.) kk / ++QASSUMEREACHABLEAssumeReachableRelay0|1Skips reachability test at startupThis option is used when bootstrapping a new Tor network. If set to 1, don't do self-reachability testing; just upload your server descriptor immediately. If AuthoritativeDirectory is also set, this option instructs the dirserver to bypass remote reachability testing too and list all connected servers as running.. yWADDRESSAddressRelayaddressOverwrites address others will use to reach this relayThe IPv4 address of this server, or a fully qualified domain name of this server that resolves to an IPv4 address. You can leave this unset, and Tor will try to guess your IPv4 address. This IPv4 address is the one used to tell clients and other servers where to find your Tor server; it doesn't affect the address that your server binds to. To bind to a different address, use the ORPort and OutboundBindAddress options. n%1 11qBRIDGEDISTRIBUTIONBridgeDistributionRelaystringDistribution method BrideDB should provide our address byIf set along with BridgeRelay, Tor will include a new line in its bridge descriptor which indicates to the BridgeDB service how it would like its bridge address to be given out. Set it to "none" if you want BridgeDB to avoid distributing your bridge address, or "any" to let BridgeDB decide. (Default: any)0 ##+9BRIDGERELAYBridgeRelayRelay0|1Act as a bridgeSets the relay to act as a "bridge" with respect to relaying connections from bridge users to the Tor network. It mainly causes Tor to publish a server descriptor to the bridge database, rather than to the public directory authorities. Note: make sure that no MyFamily lines are present in your torrc when relay is configured in bridge mode. ss 2 ##'QuCONTACTINFOContactInfoRelayemail_addressContact information for this relayAdministrative contact information for this relay or bridge. This line can be used to contact you if your relay or bridge is misconfigured or something else goes wrong. Note that we archive and publish all descriptors containing these lines and that Google indexes them, so spammers might also collect them. You may want to obscure the fact that it's an email address and/or generate a new address for this purpose. ContactInfo must be set to a working address if you run more than one relay or bridge. (Really, everybody running a relay or bridge should set it.)  3 IEXITRELAYExitRelayRelay0|1|autoAllow relaying of exit trafficTells Tor whether to run as an exit relay. If Tor is running as a non-bridge server, and ExitRelay is set to 1, then Tor allows traffic to exit according to the ExitPolicy option, the ReducedExitPolicy option, or the default ExitPolicy (if no other exit policy option is specified). If ExitRelay is set to 0, no traffic is allowed to exit, and the ExitPolicy, ReducedExitPolicy, and IPv6Exit options are ignored. If ExitRelay is set to "auto", then Tor checks the ExitPolicy, ReducedExitPolicy, and IPv6Exit options. If at least one of these options is set, Tor behaves as if ExitRelay were set to 1. If none of these exit policy options are set, Tor behaves as if ExitRelay were set to 0. (Default: auto) !gO4xc'FlO8 ~rc)RENDPOSTPERIOD1RELAYBANDWIDTHRATE@3RELAYBANDWIDTHBURST?5REJECTPLAINTEXTPORTS1REFUSEUNKNOWNEXITS/REDUCEDEXITPOLICY=REDUCEDCONNECTIONPADDINGZ7REDUCEDCIRCUITPADDING\3RECOMMENDEDVERSIONS?RECOMMENDEDSERVERVERSIONS?RECOMMENDEDCLIENTVERSIONS5REACHABLEORADDRESSESh7REACHABLEDIRADDRESSESg1REACHABLEADDRESSESf?PUBLISHHIDSERVDESCRIPTORS;PUBLISHSERVERDESCRIPTOR-PROTOCOLWARNINGS> PIDFILE='PERCONNBWRATE<)PERCONNBWBURST;APATHSNEEDEDTOBUILDCIRCUITS-PATHBIASWARNRATE5PATHBIASUSETHRESHOLD?PATHBIASSCALEUSETHRESHOLD9PATHBIASSCALETHRESHOLD7PATHBIASNOTICEUSERATE1PATHBIASNOTICERATE9PATHBIASEXTREMEUSERATE3PATHBIASEXTREMERATE1PATHBIASDROPGUARDS7PATHBIASCIRCTHRESHOLD/PADDINGSTATISTICS7OUTBOUNDBINDADDRESSOR:ccept any other IPv4 or IPv6 traffic. Tor also allows IPv6 exit policy entries. For instance, "reject6 [FC00::]/7:*" rejects all destinations that share 7 most significant bit prefix with address FC00::. Respectively, "accept6 [C000::]/3:*" accepts all destinations that share 3 most significant bit prefix with address C000::. accept6 and reject6 only produce IPv6 exit policy entries. Using an IPv4 address with accept6 or reject6 is ignored and generates a warning. accept/reject allows either IPv4 or IPv6 addresses. Use *4 as an IPv4 wildcard address, and *6 as an IPv6 wildcard address. accept/reject * expands to matching IPv4 and IPv6 wildcard address rules. To specify all IPv4 and IPv6 internal and link-local networks (including 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, [::]/8, [FC00::]/7, [FE80::]/10, [FEC0::]/10, [FF00::]/8, and [::]/127), you can use the "private" alias instead of an address. ("private" always produces rules for IPv4 and IPv6 addresses, even when used with accept6/reject6.) Private addresses are rejected by default (at the beginning of your exit policy), along with any configured primary public IPv4 and IPv6 addresses. These private addresses are rejected unless you set the ExitPolicyRejectPrivate config option to 0. For example, once you've done that, you could allow HTTP to 127.0.0.1 and block all other connections to internal networks with "accept 127.0.0.1:80,reject private:*", though that may also allow connections to your own computer that are addressed to its public (external) IP address. See RFC 1918 and RFC 3330 for more details about internal and reserved IP address space. See ExitPolicyRejectLocalInterfaces if you want to block every address on the relay, even those that aren't advertised in the descriptor. This directive can be specified multiple times so you don't have to put it all on one line. Policies are considered first to last, and the first match wins. If you want to allow the same ports on IPv4 and IPv6, write your rules using accept/reject *. If you want to allow different ports on IPv4 and IPv6, write your IPv6 rules using accept6/reject6 *6, and your IPv4 rules using accept/reject *4. If you want to _replace_ the default exit policy, end your exit policy with either a reject *:* or an accept *:*. Otherwise, you're _augmenting_ (prepending to) the default exit policy. If you want to use a reduced exit policy rather than the default exit policy, set "ReducedExitPolicy 1". If you want to replace the default exit policy with your custom exit policy, end your exit policy with either a reject : or an accept :. Otherwise, you're augmenting (prepending to) the default or reduced exit policy. The default exit policy is: reject *:25 reject *:119 reject *:135-139 reject *:445 reject *:563 reject *:1214 reject *:4661-4666 reject *:6346-6429 reject *:6699 reject *:6881-6999 accept *:* Since the default exit policy uses accept/reject *, it applies to both IPv4 and IPv6 addresses.  . 5 ;;U}EXITPOLICYREJECTPRIVATEExitPolicyRejectPrivateRelay0|1Prevent exiting on the local networkReject all private (local) networks, along with the relay's advertised public IPv4 and IPv6 addresses, at the beginning of your exit policy. See above entry on ExitPolicy. (Default: 1)>4 !!/q;EXITPOLICYExitPolicyRelaypolicy,policy,...Traffic destinations that can exit from this relaySet an exit policy for this server. Each policy is of the form "accept[6]|reject[6] ADDR[/MASK][:PORT]". If /MASK is omitted then this policy just applies to the host given. Instead of giving a host or network you can also use "*" to denote the universe (0.0.0.0/0 and ::/0), or *4 to denote all IPv4 addresses, and *6 to denote all IPv6 addresses. PORT can be a single port number, an interval of ports "FROM_PORT-TO_PORT", or "*". If PORT is omitted, that means "*". For example, "accept 18.7.22.69:*,reject 18.0.0.0/8:*,accept *:*" would reject any IPv4 traffic destined for MIT except for web.mit.edu, and a MM/6 KKWEXITPOLICYREJECTLOCALINTERFACESExitPolicyRejectLocalInterfacesRelay0|1More extensive prevention of exiting on the local networkReject all IPv4 and IPv6 addresses that the relay knows about, at the beginning of your exit policy. This includes any OutboundBindAddress, the bind addresses of any port options, such as ControlPort or DNSPort, and any public IPv4 and IPv6 addresses on any interface on the relay. (If IPv6Exit is not set, all IPv6 addresses will be rejected anyway.) See above entry on ExitPolicy. This option is off by default, because it lists all public relay IP addresses in the ExitPolicy, even those relay operators might prefer not to disclose. (Default: 0)02-904 accept *:981 accept *:989-990 accept *:991 accept *:992 accept *:993 accept *:994 accept *:995 accept *:1194 accept *:1220 accept *:1293 accept *:1500 accept *:1533 accept *:1677 accept *:1723 accept *:1755 accept *:1863 accept *:2082 accept *:2083 accept *:2086-2087 accept *:2095-2096 accept *:2102-2104 accept *:3128 accept *:3389 accept *:3690 accept *:4321 accept *:4643 accept *:5050 accept *:5190 accept *:5222-5223 accept *:5228 accept *:5900 accept *:6660-6669 accept *:6679 accept *:6697 accept *:8000 accept *:8008 accept *:8074 accept *:8080 accept *:8082 accept *:8087-8088 accept *:8232-8233 accept *:8332-8333 accept *:8443 accept *:8888 accept *:9418 accept *:9999 accept *:10000 accept *:11371 accept *:19294 accept *:19638 accept *:50002 accept *:64738 reject *:* (Default: 0) dd7 //IREDUCEDEXITPOLICYReducedExitPolicyRelay0|1Customized reduced exit policyIf set, use a reduced exit policy rather than the default one. The reduced exit policy is an alternative to the default exit policy. It allows as many Internet services as possible while still blocking the majority of TCP ports. Currently, the policy allows approximately 65 ports. This reduces the odds that your node will be used for peer-to-peer applications. The reduced exit policy is: accept *:20-21 accept *:22 accept *:23 accept *:43 accept *:53 accept *:79 accept *:80-81 accept *:88 accept *:110 accept *:143 accept *:194 accept *:220 accept *:389 accept *:443 accept *:464 accept *:465 accept *:531 accept *:543-544 accept *:554 accept *:563 accept *:587 accept *:636 accept *:706 accept *:749 accept *:873 accept *:9 SS7; ?NICKNAMENicknameRelaynameIdentifier for this relaySet the server's nickname to 'name'. Nicknames must be between 1 and 19 characters inclusive, and must contain only the characters [a-zA-Z0-9]. If not set, Unnamed will be used. Relays can always be uniquely identified by their identity fingerprints.: CYMYFAMILYMyFamilyRelayfingerprint,fingerprint,...Other relays this operator administersDeclare 9 11/MAXONIONQUEUEDELAYMaxOnionQueueDelayRelayNUM [msec|second]Duration to reject new onionskins if we have more than we can processIf we have more onionskins queued for processing than we can process in this amount of time, reject new ones. (Default: 1750 msec)n8 ]SIPV6EXITIPv6ExitRelay0|1Allow clients to use us for IPv6 trafficIf set, and we are an exit node, allow clients to use us for IPv6 traffic. When this option is set and ExitRelay is auto, we act as if ExitRelay is 1. (Default: 0)that this Tor relay is controlled or administered by a group or organization identical or similar to that of the other relays, defined by their (possibly $-prefixed) identity fingerprints. This option can be repeated many times, for convenience in defining large families: all fingerprints in all MyFamily lines are merged into one list. When two relays both declare that they are in the same 'family', Tor clients will not use them in the same circuit. (Each relay only needs to list the other servers in its family; it doesn't need to list itself, but it won't hurt if it does.) Do not list any bridge relay as it would compromise its concealment. When listing a node, it's better to list it by fingerprint than by nickname: fingerprints are more reliable. If you run more than one relay, the MyFamily option on each relay must list all other relays, as described above. Note: do not use MyFamily when configuring your Tor instance as a brigde. = COORPORTORPortRelay[address:]PORT|auto [flags]Port used to accept relay trafficAdvertise this port to listen for connections from Tor clients and servers. This option is required to be a Tor server. Set it to "auto" to have Tor pick a port for you. Set it to 0 to not run a< a3NUMCPUSNumCPUsRelaynumNumber of processes spawned for decryptionHow many processes to use at once for decrypting onionskins and other parallelizable operations. If this is set to 0, Tor will try to detect how many CPUs you have, defaulting to 1 if it can't tell. (Default: 0)n ORPort at all. This option can occur more than once. (Default: 0) Tor recognizes these flags on each ORPort: NoAdvertise By default, we bind to a port and tell our users about it. If NoAdvertise is specified, we don't advertise, but listen anyway. This can be useful if the port everybody will be connecting to (for example, one that's opened on our firewall) is somewhere else. NoListen By default, we bind to a port and tell our users about it. If NoListen is specified, we don't bind, but advertise anyway. This can be useful if something else (for example, a firewall's port forwarding configuration) is causing connections to reach us. IPv4Only If the address is absent, or resolves to both an IPv4 and an IPv6 address, only listen to the IPv4 address. IPv6Only If the address is absent, or resolves to both an IPv4 and an IPv6 address, only listen to the IPv6 address. For obvious reasons, NoAdvertise and NoListen are mutually exclusive, and IPv4Only and IPv6Only are mutually exclusive. > ;;/ICPUBLISHSERVERDESCRIPTORPublishServerDescriptorRelay0|1|v3|bridge,...Types of descriptors publishedThis option specifies which descriptors Tor will publish when acting as a relay. You can choose multiple arguments, separated by commas. If this option is set to 0, Tor will not publish its descriptors to any directories. (This is useful if you're testing out your server, or if you're using a Tor controller that handles directory publishing for you.) Otherwise, Tor will publish its descriptors of all type(s) specified. The default is "1", which means "if running as a relay or bridge, publish descriptors to the appropriate authorities". Other possibilities are "v3", meaning "publish as if you're a relay", and "bridge", meaning "publish as if you're a bridge". @ ))AOwSSLKEYLIFETIMESSLKeyLifetimeRelayN minutes|hours|days|weeksLifetime for our link certificateWhen creating a link certificate for our outermost SSL handshake, set its lifetime to this amount of time. If set to 0, Tor will choose some reasonable random defaults. (Default: 0)B? 11w9SHUTDOWNWAITLENGTHShutdownWaitLengthRelayNUMDelay before quitting after receiving a SIGINT signalWhen we get a SIGINT and we're a server, we begin shutting down: we close listeners and start refusing new circuits. After NUM seconds, we exit. If we get a second SIGINT, we exit immediately. (Default: 30 seconds) KgKB '']MAINLOOPSTATSMainloopStatsRelay0|1Include development information from the main loop with heartbeatsLog main loop statistics every HeartbeatPeriod seconds. This is a log level notice message designed to help developers instrumenting Tor's main event loop. (Default: 0)A ++Aw=HEARTBEATPERIODHeartbeatPeriodRelayN minutes|hours|days|weeksRate at which an INFO level heartbeat message is sentLog a heartbeat message every HeartbeatPeriod seconds. This is a log level notice message, designed to let you know your Tor server is still alive and doing useful things. Settings this to 0 will disable the heartbeat. Otherwise, it must be at least 30 minutes. (Default: 6 hours)ng. It will only hibernate once one of the two reaches 1 TByte. This can be changed to use the sum of the both bytes received and sent by setting the AccountingRule option to "sum" (total bandwidth in/out). When the number of bytes remaining gets low, Tor will stop accepting new connections and circuits. When the number of bytes is exhausted, Tor will hibernate until some time in the next accounting period. To prevent all servers from waking at the same time, Tor will also wait until a random point in each period before waking up. If you have bandwidth cost issues, enabling hibernation is preferable to setting a low bandwidth, since it provides users with a collection of fast servers that are up some of the time, which is more useful than a set of slow servers that are always "available". Note that (as also described in the Bandwidth section) Tor uses powers of two, not powers of ten: 1 GByte is 1024*1024*1024, not one billion. Be careful: some internet service providers might count GBytes differently. !C ''U;ACCOUNTINGMAXAccountingMaxRelayN bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBitsAmount of traffic before hibernatingLimits the max number of bytes sent and received within a set time period using a given calculation rule (see: AccountingStart, AccountingRule). Useful if you need to stay under a specific bandwidth. By default, the number used for calculation is the max of either the bytes sent or received. For example, with AccountingMax set to 1 TByte, a server could send 900 GBytes and receive 800 GBytes and continue runni  D )))}AACCOUNTINGRULEAccountingRuleRelaysum|max|in|outMethod to determine when the accounting limit is reachedHow we determine when our AccountingMax has been reached (when we should hibernate) during a time interval. Set to "max" to calculate using the higher of either the sent or received bytes (this is the default functionality). Set to "sum" to calculate using the sent plus received bytes. Set to "in" to calculate using only the received bytes. Set to "out" to calculate using only the sent bytes. (Default: max) E ++AM_ACCOUNTINGSTARTAccountingStartRelayday|week|month [day] HH:MMDuration of an accounting periodSpecify how long accounting periods last. If month is given, each accounting period runs from the time HH:MM on the dayth day of one month to the same day and time of the next. The relay will go at full speed, use all the quota you specify, then hibernate for the rest of the period. (The day must be between 1 and 28.) If week is given, each accounting period runs from the time HH:MM of the dayth day of one week to the same day and time of the next week, with Monday as day 1 and Sunday as day 7. If day is given, each accounting period runs from the time HH:MM each day to the same time on the next day. All times are local, and given in 24-hour time. (Default: "month 1 0:00") -:- G ;;w)SERVERDNSRESOLVCONFFILEServerDNSResolvConfFileRelayfilenameOverriding resolver config for DNS queries we provideOverrides the default DNS configuration with the configuration in filename. The file format is the same as the standard Unix "resolv.conf" file (7). This option, like all other ServerDNS options, only affects name lookups that your server does on behalf of clients. (Defaults to use the system DNS configuration or a localhost DNS service in case no nameservers are found in a given configuration.)ƃBF 11REFUSEUNKNOWNEXITSRefuseUnknownExitsRelay0|1|autoPrevents relays not in the consensus from using us as an exitPrevent nodes that don't appear in the consensus from exiting using this relay. If the option is 1, we always block exit attempts from such nodes; if it's 0, we never do, and if the option is "auto", then we do whatever the authorities suggest in the consensus (and block if the consensus is quiet on the issue). (Default: auto) {TI 99/SERVERDNSSEARCHDOMAINSServerDNSSearchDomainsRelay0|1Toggles if our DNS queries search for addresses in the local domainIf set to 1, then we will search for addresses in the local search domain. For example, if this system is configured to believe it is in "example.com", and a client tries to connect to "www", the client will be connected to "www.example.com". This option only affects name lookups that your server does on behalf of clients. (Default: 0)ȃH AA}SERVERDNSALLOWBROKENCONFIGServerDNSAllowBrokenConfigRelay0|1Toggles if we persist despite configuration parsing errors or notIf this option is false, Tor exits immediately if there are problems parsing the system DNS configuration or connecting to nameservers. Otherwise, Tor continues to periodically retry the system nameservers until it eventually succeeds. (Default: 1) \S\sK 997 OSERVERDNSTESTADDRESSESServerDNSTestAddressesRelayhostname,hostname,...Addresses to test to see if valid DNS queries are being hijackedWhen we're detecting DNS hijacking, make sure that these valid addresses aren't getting redirected. If they are, then our DNS is completely useless, and we'll reset our exit policy to "reject *:*". This option only affects name lookups that your server does on behalf of clients. (Default: "www.google.com, www.mit.edu, www.yahoo.com, www.slashdot.org")ʃ)J ==OSERVERDNSDETECTHIJACKINGServerDNSDetectHijackingRelay0|1Toggles testing for DNS hijackingWhen this option is set to 1, we will test periodically to determine whether our local nameservers have been configured to hijack failing DNS requests (usually to an advertising site). If they are, we will attempt to correct this. This option only affects name lookups that your server does on behalf of clients. (Default: 1) W*WOM AA]MBRIDGERECORDUSAGEBYCOUNTRYBridgeRecordUsageByCountryRelay0|1Tracks geoip information on bridge usageWhen this option is enabled and BridgeRelay is also enabled, and we have GeoIP data, Tor keeps a per-country count of how many client addresses have contacted it so that it can help the bridge authority guess which countries have blocked access to it. If ExtraInfoStatistics is enabled, it will be published as part of extra-info document. (Default: 1)̃RL MM}SERVERDNSALLOWNONRFC953HOSTNAMESServerDNSAllowNonRFC953HostnamesRelay0|1Toggles if we reject DNS queries with invalid charactersWhen this option is disabled, Tor does not try to resolve hostnames containing illegal characters (like @ and :) rather than sending them to an exit node to be resolved. This helps trap accidental attempts to resolve URLs and so on. This option only affects name lookups that your server does on behalf of clients. (Default: 0) \&P ##i!GEOIPV6FILEGeoIPv6FileRelayfilenamePath to file containing IPv6 geoip informationA filename containing IPv6 GeoIP data, for use with by-country statistics.ρ"O i!GEOIPFILEGeoIPFileRelayfilenamePath to file containing IPv4 geoip informationA filename containing IPv4 GeoIP data, for use with by-country statistics.΃zN 99U;SERVERDNSRANDOMIZECASEServerDNSRandomizeCaseRelay0|1Toggles DNS query case randomizationWhen this option is set, Tor sets the case of each character randomly in outgoing DNS requests, and makes sure that the case matches in DNS replies. This so-called "0x20 hack" helps resist some types of DNS poisoning attack. For more information, see "Increased DNS Forgery Resistance through 0x20-Bit Encoding". This option only affects name lookups that your server does on behalf of clients. (Default: 1)  Q ))ieCELLSTATISTICSCellStatisticsRelay0|1Toggles storing circuit queue duration to diskRelays only. When this option is enabled, Tor collects statistics about cell processing (i.e. mean time a cell is spending in a queue, mean number of cells in a queue and mean number of processed cells per circuit) and writes them into disk every 24 hours. Onion router operators may use the statistics for performance monitoring. If ExtraInfoStatistics is enabled, it will published as part of extra-info document. (Default: 0) vS --DIRREQSTATISTICSDirReqStatisticsRelay0|1Toggles storing network status counts and performance to diskRelays and bridges only. When this option is enabled, a Tor directory writes statistics on the number and response time of network status requests to disk every 24 hours. Enables relay and bridge operators to monitor how much their server is being used by clients to learn about Tor network. If ExtraInfoStatistics is enabled, it will published as part of extra-info document. (Default: 1)҃hR //I7PADDINGSTATISTICSPaddingStatisticsRelay0|1Toggles storing padding countsRelays and bridges only. When this option is enabled, Tor collects statistics for padding cells sent and received by this relay, in addition to total cell counts. These statistics are rounded, and omitted if traffic is low. This information is important for load balancing decisions related to padding. If ExtraInfoStatistics is enabled, it will be published as a part of extra-info document. (Default: 1) //bU 11s}EXITPORTSTATISTICSExitPortStatisticsRelay0|1Toggles storing traffic and port usage data to diskExit relays only. When this option is enabled, Tor writes statistics on the number of relayed bytes and opened stream per exit port to disk every 24 hours. Enables exit relay operators to measure and monitor amounts of traffic that leaves Tor network through their exit node. If ExtraInfoStatistics is enabled, it will be published as part of extra-info document. (Default: 0)ԃgT ++mENTRYSTATISTICSEntryStatisticsRelay0|1Toggles storing client connection counts to diskRelays only. When this option is enabled, Tor writes statistics on the number of directly connecting clients to disk every 24 hours. Enables relay operators to monitor how much inbound traffic that originates from Tor clients passes through their server to go further down the Tor network. If ExtraInfoStatistics is enabled, it will be published as part of extra-info document. (Default: 0) 0"W ;;ewHIDDENSERVICESTATISTICSHiddenServiceStatisticsRelay0|1Toggles storing hidden service stats to diskRelays only. When this option is enabled, a Tor relay writes obfuscated statistics on its role as hidden-service directory, introduction point, or rendezvous point to disk every 24 hours. If ExtraInfoStatistics is also enabled, these statistics are further published to the directory authorities. (Default: 1)փLV ;;YWCONNDIRECTIONSTATISTICSConnDirectionStatisticsRelay0|1Toggles storing connection use to diskRelays only. When this option is enabled, Tor writes statistics on the amounts of traffic it passes between itself and other relays to disk every 24 hours. Enables relay operators to monitor how much their relay is being used as middle node in the circuit. If ExtraInfoStatistics is enabled, it will be published as part of extra-info document. (Default: 0) X 33u3EXTRAINFOSTATISTICSExtraInfoStatisticsRelay0|1Publishes statistic data in the extra-info documentsWhen this option is enabled, Tor includes previously gathered statistics in its extra-info documents that it uploads to the directory authorities. Disabling this option also removes bandwidth usage statistics, and GeoIPFile and GeoIPv6File hashes from the extra-info file. Bridge ServerTransportPlugin lines are always includes in the extra-info file, because they are required by BridgeDB. (Default: 1) (Y CCqgEXTENDALLOWPRIVATEADDRESSESExtendAllowPrivateAddressesRelay0|1Allow circuits to be extended to the local networkWhen this option is enabled, Tor will connect to relays on localhost, RFC1918 addresses, and so on. In particular, Tor will make direct OR connections, and Tor routers allow EXTEND requests, to these private addresses. (Tor will always allow connections to bridges, proxies, and pluggable transports configured on private addresses.) Enabling this option can create security issues; you should probably leave it off. (Default: 0) >>>Z ))E']MAXMEMINQUEUESMaxMemInQueuesRelayN bytes|KBytes|MBytes|GBytesThreshold at which tor will terminate circuits to avoid running out of memoryThis option configures a threshold above which Tor will assume that it needs to stop queueing or buffering data because it's about to run out of memory. If it hits this threshold, it will begin killing circuits until it has recovered at least 10% of this memory. Do not set this option too low, or your relay may be unreliable under load. This option only affects some queues, so the actual process size will be larger than this. If this option is set to 0, Tor will try to pick a reasonable default based on your system's physical memory. (Default: 0) 66j\ 113gySIGNINGKEYLIFETIMESigningKeyLifetimeRelayN days|weeks|monthsDuration the Ed25519 signing key is valid forFor how long should each Ed25519 signing key be valid? Tor uses a permanent master identity key that can be kept offline, and periodically generates new "signing" keys that it uses online. This option configures their lifetime. (Default: 30 days)ۂX[ ++suDISABLEOOSCHECKDisableOOSCheckRelay0|1Don't close connections when running out of socketsThis option disables the code that closes connections when Tor notices that it is running low on sockets. Right now, it is on by default, since the existing out-of-sockets mechanism tends to kill OR connections more than it should. (Default: 1) J_ ??s'KEYDIRECTORYGROUPREADABLEKeyDirectoryGroupReadableRelay0|1|autoGroup read permissions for the secret key directoryIf this option is set to 0, don't allow the filesystem group to read the KeyDirectory. If the option is set to 1, make the KeyDirectory readable by the default GID. If the option is "auto", then we use the setting for DataDirectoryGroupReadable when the KeyDirectory is the same as the DataDirectory, and 0 otherwise. (Default: auto)ށD^ %%Q{KEYDIRECTORYKeyDirectoryRelayDIRDirectory where secret keys resideStore secret keys in DIR. Can not be changed while tor is running. (Default: the "keys" subdirectory of DataDirectory.)݂W] --U OFFLINEMASTERKEYOfflineMasterKeyRelay0|1Don't generate the master secret keyIf non-zero, the Tor relay will never generate or load its master secret key. Instead, you'll have to use "tor --keygen" to manage the permanent ed25519 master identity key, as well as the corresponding temporary signing keys and certificates. (Default: 0) MM`a --W DIRPORTFRONTPAGEDirPortFrontPageDirectoryFILENAMEPublish this html file on the DirPortWhen this option is set, it takes an HTML file and publishes it as "/" on the DirPort. Now relay operators can provide a disclaimer without needing to set up a separate webserver. There's a sample disclaimer in contrib/operator-tools/tor-exit-notice.html.K` --Qk!REPHISTTRACKTIMERephistTrackTimeRelayN seconds|minutes|hours|days|weeksDiscards old, unchanged reliability informationTells an authority, or other node tracking node reliability and history, that fine-grained information about nodes can be discarded when it hasn't changed for a given amount of time. (Default: 24 hours) ONc /GDIRPOLICYDirPolicyDirectorypolicy,policy,...Access policy for the DirPortSet an entrance policy for this server, to limit who can connect to the directory ports. The policies have the same form as exit policies above, except that port specifiers are ignored. Any address not matched by some entry in the policy is accepted.-b CI1DIRPORTDirPortDirectory[address:]PORT|auto [flags]Port for directory connectionsIf this option is nonzero, advertise the directory service on this port. Set it to "auto" to have Tor pick a port for you. This option can occur more than once, but only one advertised DirPort is supported: all but one DirPort must have the NoAdvertise flag set. (Default: 0) The same flags are supported here as are supported by ORPort. "qT8yaI9+^. 1TESTINGAUTHKEYSLOP=9TESTINGAUTHKEYLIFETIME;ASERVERDNSALLOWBROKENCONFIG!SCHEDULERSD SANDBOXC&OTESTINGCLIENTDOWNLOADINITIALDELAY*/aTESTINGCLIENTCONSENSUSDOWNLOADINITIALDELAY,&OTESTINGBRIDGEDOWNLOADINITIALDELAY-/aTESTINGBRIDGEBOOTSTRAPDOWNLOADINITIALDELAY.*WTESTINGAUTHDIRTIMETOLEARNREACHABILITY&/SYSLOGIDENTITYTAGN#STRICTNODESc)SSLKEYLIFETIME%SOCKSTIMEOUTt SOCKSPORTr#SOCKSPOLICYs3SOCKS5PROXYUSERNAMEL3SOCKS5PROXYPASSWORDM#SOCKS5PROXYK#SOCKS4PROXYJ1SIGNINGKEYLIFETIME1SHUTDOWNWAITLENGTH7SERVERTRANSPORTPLUGINI9SERVERTRANSPORTOPTIONSH?SERVERTRANSPORTLISTENADDRG9SERVERDNSTESTADDRESSES9SERVERDNSSEARCHDOMAINS;SERVERDNSRESOLVCONFFILE9SERVERDNSRANDOMIZECASE=SERVERDNSDETECTHIJACKING%MSERVERDNSALLOWNONRFC953HOSTNAMESSAFESOCKS#SAFELOGGINGB#RUNASDAEMONA   od }-DIRCACHEDirCacheDirectory0|1Provide cached descriptor information to other tor usersWhen this option is set, Tor caches all current directory documents except extra info documents, and accepts client requests for them. If DownloadExtraInfo is set, cached extra info documents are also cached. Setting DirPort is not required for DirCache, because clients connect via the ORPort by default. Setting either DirPort or BridgeRelay and setting DirCache to 0 is not supported. (Default: 1) ''f 99EyAUTHORITATIVEDIRECTORYAuthoritativeDirectoryAuthority0|1Act as a directory authorityWhen this option is set to 1, Tor operates as an authoritative directory server. Instead of caching the directory, it generates its own list of good servers, signs it, and sends that to the clients. Unless the clients already have you listed as a trusted directory, you probably do not want to set this option.