From aeecf7370e0e9c09b8f54f4ad4f8831ad628ecaf Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Sat, 29 Apr 2017 13:40:43 -0400 Subject: [PATCH] init --- Makefile | 20 + Pipfile | 6 + _build/doctrees/background.doctree | Bin 0 -> 4028 bytes _build/doctrees/environment.pickle | Bin 0 -> 12328 bytes _build/doctrees/gui.doctree | Bin 0 -> 3088 bytes _build/doctrees/index.doctree | Bin 0 -> 6916 bytes _build/doctrees/installation.doctree | Bin 0 -> 3656 bytes _build/doctrees/packages.doctree | Bin 0 -> 2729 bytes _build/doctrees/update.doctree | Bin 0 -> 2981 bytes _build/html/.buildinfo | 4 + _build/html/_sources/background.rst.txt | 14 + _build/html/_sources/gui.rst.txt | 10 + _build/html/_sources/index.rst.txt | 30 + _build/html/_sources/installation.rst.txt | 14 + _build/html/_sources/packages.rst.txt | 6 + _build/html/_sources/update.rst.txt | 9 + _build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes _build/html/_static/alabaster.css | 693 ++ _build/html/_static/basic.css | 632 ++ _build/html/_static/comment-bright.png | Bin 0 -> 756 bytes _build/html/_static/comment-close.png | Bin 0 -> 829 bytes _build/html/_static/comment.png | Bin 0 -> 641 bytes _build/html/_static/custom.css | 1 + _build/html/_static/doctools.js | 287 + _build/html/_static/down-pressed.png | Bin 0 -> 222 bytes _build/html/_static/down.png | Bin 0 -> 202 bytes _build/html/_static/file.png | Bin 0 -> 286 bytes _build/html/_static/jquery-3.1.0.js | 10074 ++++++++++++++++++++ _build/html/_static/jquery.js | 4 + _build/html/_static/minus.png | Bin 0 -> 90 bytes _build/html/_static/plus.png | Bin 0 -> 90 bytes _build/html/_static/pygments.css | 69 + _build/html/_static/searchtools.js | 758 ++ _build/html/_static/underscore-1.3.1.js | 999 ++ _build/html/_static/underscore.js | 31 + _build/html/_static/up-pressed.png | Bin 0 -> 214 bytes _build/html/_static/up.png | Bin 0 -> 203 bytes _build/html/_static/websupport.js | 808 ++ _build/html/background.html | 119 + _build/html/genindex.html | 94 + _build/html/gui.html | 116 + _build/html/index.html | 147 + _build/html/installation.html | 124 + _build/html/objects.inv | 5 + _build/html/packages.html | 110 + _build/html/search.html | 104 + _build/html/searchindex.js | 1 + _build/html/update.html | 116 + background.rst | 14 + conf.py | 177 + gui.rst | 10 + index.rst | 30 + installation.rst | 14 + make.bat | 36 + packages.rst | 6 + update.rst | 9 + 56 files changed, 15701 insertions(+) create mode 100644 Makefile create mode 100644 Pipfile create mode 100644 _build/doctrees/background.doctree create mode 100644 _build/doctrees/environment.pickle create mode 100644 _build/doctrees/gui.doctree create mode 100644 _build/doctrees/index.doctree create mode 100644 _build/doctrees/installation.doctree create mode 100644 _build/doctrees/packages.doctree create mode 100644 _build/doctrees/update.doctree create mode 100644 _build/html/.buildinfo create mode 100644 _build/html/_sources/background.rst.txt create mode 100644 _build/html/_sources/gui.rst.txt create mode 100644 _build/html/_sources/index.rst.txt create mode 100644 _build/html/_sources/installation.rst.txt create mode 100644 _build/html/_sources/packages.rst.txt create mode 100644 _build/html/_sources/update.rst.txt create mode 100644 _build/html/_static/ajax-loader.gif create mode 100644 _build/html/_static/alabaster.css create mode 100644 _build/html/_static/basic.css create mode 100644 _build/html/_static/comment-bright.png create mode 100644 _build/html/_static/comment-close.png create mode 100644 _build/html/_static/comment.png create mode 100644 _build/html/_static/custom.css create mode 100644 _build/html/_static/doctools.js create mode 100644 _build/html/_static/down-pressed.png create mode 100644 _build/html/_static/down.png create mode 100644 _build/html/_static/file.png create mode 100644 _build/html/_static/jquery-3.1.0.js create mode 100644 _build/html/_static/jquery.js create mode 100644 _build/html/_static/minus.png create mode 100644 _build/html/_static/plus.png create mode 100644 _build/html/_static/pygments.css create mode 100644 _build/html/_static/searchtools.js create mode 100644 _build/html/_static/underscore-1.3.1.js create mode 100644 _build/html/_static/underscore.js create mode 100644 _build/html/_static/up-pressed.png create mode 100644 _build/html/_static/up.png create mode 100644 _build/html/_static/websupport.js create mode 100644 _build/html/background.html create mode 100644 _build/html/genindex.html create mode 100644 _build/html/gui.html create mode 100644 _build/html/index.html create mode 100644 _build/html/installation.html create mode 100644 _build/html/objects.inv create mode 100644 _build/html/packages.html create mode 100644 _build/html/search.html create mode 100644 _build/html/searchindex.js create mode 100644 _build/html/update.html create mode 100644 background.rst create mode 100644 conf.py create mode 100644 gui.rst create mode 100644 index.rst create mode 100644 installation.rst create mode 100644 make.bat create mode 100644 packages.rst create mode 100644 update.rst diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..faf95cf --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = WindowsSubsystemforLinuxGuide +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..2a78ed5 --- /dev/null +++ b/Pipfile @@ -0,0 +1,6 @@ +[[source]] +url = "https://pypi.python.org/simple" +verify_ssl = true + +[packages] +Sphinx = "*" diff --git a/_build/doctrees/background.doctree b/_build/doctrees/background.doctree new file mode 100644 index 0000000000000000000000000000000000000000..58dbf422f103f4130eb4c5ff6edfc4b0a210a5f9 GIT binary patch literal 4028 zcmdT{`Ewjc8Fl1HTCFA7lI>t(%b6U;>)_QI;*bMEh!fihvNr~+V{;5c?@aIZL^IR- zP4{ReU`PxEEbjXz-1iOPzVG{n|A*JJv#X;Vs`!bb%5v?__VoAO`;LD7=!hREKQm#Z z=MxnOUA13hk(er7b>tF_sDsS)D=_!zY zUrtYj^eOL^jIL$d*chmTB<+_YY^;2K;Nm@yun{Mw;WwBTscyt#{=Spv7Zx8pS3h<9 z?CD$2-O)%zSLw!5+OXg|Sr~}MI>Px>8=7O|hIgzObdZggSm-)d<;J98D>IPV$?5tU zs{~osuG4gb%f|hPYmLu0x~yWiOl_iWa@lsP=^>Y%CiieQ+FyUzrJAhpj9m?-1RYrz z!DeN}(amy1LYAl3w(5c!h(wi+LX~<>^EG*GQ8gzvRn3L-XQ(0f%YE{IoRbIHXz>;u zlfe9pn!Lf4H@fmBR~~ZZVK2^G3+tzW&>nwmfHUXeJx==O~=sC3u zWiy@M)J$i}X1W_uZ|k#{1?}f;idxbh#=1w|^4~@{0qXbWbf2Yequo_dAFw}})2S=6 zKfMVD-7jYg_7BLhf_-Jc{`s|n{z6V?EPXp=9t(s?9jF(+oxJppv*BEhwAmW1d!VdBI{ zk7I1YjKuuIzfJRT-dVJdW5E;MU&fPF2iqG*wVkk-nHVPzV+uG%IlkmcM;vvycG^M& zwzce*zKSBO5P`!HEsVRVS{8O>7_Q=R)WQT+uD@6IlauLv}X%0aoXHBN1d?ktg6hB zd|5#0RYYPJva^LU-5I6gjo6n){&U zS=1#?H0Rz_aHCT6GV2E12-T%1X!@#qYQ)Kbjy+wfs|Jx6CBC{PP zMc?6&jzvmwlT8h+KyhFtIVo1b$NoXp&5779y&AVvho&$hnpRv|wY1pez_AoZ;VWQJh6vZa%`07cm4($+sR8c1$tqz`nwM9@ zyi9GxqUjNr9%WO5V0{3Wa(WHhh0zqIm>V8^Pe&L{uXX8ltfGZ6Vbam`*oITLovOr$ zB&a^bBh-AAUa#m4IbE)?*?|c4KRm1~6%8fHzwo}FuUg{bk0M8F6v>4R)E5Us33A8N8)B5nzr*wsjADTJX9udz7{hi+z` zY|oFt0zwVn(BpuF+$LGJa_&EcR&)dP56Mv$-*!Hapily&JlYv>Bz@_J!lBzY=&as{7a|0`Dy9FW|`r&0Z(GiKjoe1gp5x^HEvM$<>(GD7MjYkCZK}8y<2Yt8=~?yj>& literal 0 HcmV?d00001 diff --git a/_build/doctrees/environment.pickle b/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..2e881276f0699741b54d088d85af12ddf83b646d GIT binary patch literal 12328 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 J#{Z-?`ZqHHP38aq literal 0 HcmV?d00001 diff --git a/_build/doctrees/installation.doctree b/_build/doctrees/installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e9be9b4eaa5e3b5d3e4e993da50604b2b6f7a452 GIT binary patch literal 3656 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 literal 0 HcmV?d00001 diff --git a/_build/doctrees/update.doctree b/_build/doctrees/update.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ab867878ceed403420db46d8e8d8cd1a0cf13503 GIT binary patch literal 2981 zcmaJ@`Fk5z6?L7;mK57@oCVX^sk?-#fUH1MxFbt!aC%wV5-Fa`k z00Rwe!7gjd4lVoEvM*)-<2Y|Ll4S$^LEk57-n@Ixx%ZxXpPKai#LIOMs?|90g=(6g zk%)DZZ@T*iPZoTnMUB{vgx*Po;+qSuwbo}QCMNRKcXbf=SGH8hQ`Y+8_LM4?$qoXu~L3og|L=kKx^YPvby z90sxAyVoXhSyf8>MmZ@V$(ve-H9@{Z(d0Knk#@nWEqO~>S~M)JC$2rp9eGAB$|boh z&r+>?fzM08eM?K;Zp%Atd8aMU+43$smxwB>SZ_TX>blrQP2cn1_g{GS2H#uo+Ynru zSjefHccsbFeFfi-ziDD0g1ptle&9fCeo&rp0f65wr(J`hHbn6bX{cQ+_??ED>5vh% zt79EvXubU>ra^CCxyFwn_N8%N)`18WuhG3%!0R<` zy9!nxEcio)mAQFs$V%Xg$rK&cnH#HKl0_opYZlFpOrR{^>je|l@pVwPj~Dy|&8wZL zn}p8rq~dj(pQPglETnwz(4_?_{+P{<5sPMqUR5^6$6-w) zg!``M+T1m;(j?Qs?O9Y0{K~d`*w*Yg7RAEm9?cGe4FL2DmNXy4evrXw95`NIXvKle zpP;%D+IY3%jj>^C2G!yMMnVZu?taf=p)QaGmX0enMo0vIQ7b&~n8=M?XW z*b86}sYNqc&%;spbe@IGv?R4o)q|amP7+L(K224NtNi-lEyijr%#K1J3(`w`mda}VpD|tDfrV2Xkg;RgPHMZj1cLDx;jv-)o8W?QQ6>UEP39dC6Q%G z<^XBpLs4h&Q@XJqB5|Lkc>_`56^Vc$Sn^X;^F=rB^9_sUMbs50u{)tqQV7kT+oRVd8E$B65S!aed6ha*%vwmzKdK8g<%!)*XdmEBLE>bVS6P z{57lMl`4_@;1PxVypeAkgHAXB>NbnrQ1J`sC!-0rhjKPljK97|M+XzsG1bf808CS( zV^#J|gg7KTe~W6l?zQjdZ&R~+-4yh9@OBW7r-;8xjq+q$L4@zoF~<*-+l7>sF5kDP zfeua)Fxci7VNA=ObW!yHK9CV4j3YRan{DJNzqE(0aJ$Y{;A_c0SgX_A!Aj#FQjM-( z2Dl&5^lr{@{#x+g>Yz%)drylkc>`&Ehhm8i?3-%Uj Z4DD9&KWzRdO_{2}j`gpC|DAVN{{!oSJ{&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/_build/html/_static/alabaster.css b/_build/html/_static/alabaster.css new file mode 100644 index 0000000..be65b13 --- /dev/null +++ b/_build/html/_static/alabaster.css @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 17px; + background-color: #fff; + color: #000; + margin: 0; + padding: 0; +} + + +div.document { + width: 940px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 220px; +} + +div.sphinxsidebar { + width: 220px; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #fff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: left; +} + +div.footer { + width: 940px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +p.caption { + font-family: inherit; + font-size: inherit; +} + + +div.relations { + display: none; +} + + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: left; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: normal; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: 'Garamond', 'Georgia', serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid #CCC; + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 1em; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: #AAA; + background: #AAA; + + text-align: left; + margin-left: 0; + width: 50%; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #DDD; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #EAEAEA; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: #EEE; + border: 1px solid #CCC; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fafafa; +} + +div.admonition p.admonition-title { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: #fff; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.warning { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.danger { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.error { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.caution { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.attention { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.important { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.note { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.tip { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.hint { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.seealso { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.topic { + background-color: #EEE; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.9em; +} + +.hll { + background-color: #FFC; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #EEE; + background: #FDFDFD; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: #EEE; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: #ffd; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fff; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt, a:hover code { + background: #EEE; +} + + +@media screen and (max-width: 870px) { + + div.sphinxsidebar { + display: none; + } + + div.document { + width: 100%; + + } + + div.documentwrapper { + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.bodywrapper { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .bodywrapper { + margin: 0; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + + +} + + + +@media screen and (max-width: 875px) { + + body { + margin: 0; + padding: 20px 30px; + } + + div.documentwrapper { + float: none; + background: #fff; + } + + div.sphinxsidebar { + display: block; + float: none; + width: 102.5%; + margin: 50px -30px -20px -30px; + padding: 10px 20px; + background: #333; + color: #FFF; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: #fff; + } + + div.sphinxsidebar a { + color: #AAA; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + padding: 0; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } +} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Make nested-list/multi-paragraph items look better in Releases changelog + * pages. Without this, docutils' magical list fuckery causes inconsistent + * formatting between different release sub-lists. + */ +div#changelog > div.section > ul > li > p:only-child { + margin-bottom: 0; +} + +/* Hide fugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} \ No newline at end of file diff --git a/_build/html/_static/basic.css b/_build/html/_static/basic.css new file mode 100644 index 0000000..dc88b5a --- /dev/null +++ b/_build/html/_static/basic.css @@ -0,0 +1,632 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_build/html/_static/comment-bright.png b/_build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/_build/html/_static/custom.css b/_build/html/_static/custom.css new file mode 100644 index 0000000..2a924f1 --- /dev/null +++ b/_build/html/_static/custom.css @@ -0,0 +1 @@ +/* This file intentionally left blank. */ diff --git a/_build/html/_static/doctools.js b/_build/html/_static/doctools.js new file mode 100644 index 0000000..5654977 --- /dev/null +++ b/_build/html/_static/doctools.js @@ -0,0 +1,287 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/_build/html/_static/down-pressed.png b/_build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/_build/html/_static/down.png b/_build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/_build/html/_static/file.png b/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_build/html/_static/jquery-3.1.0.js b/_build/html/_static/jquery-3.1.0.js new file mode 100644 index 0000000..f2fc274 --- /dev/null +++ b/_build/html/_static/jquery-3.1.0.js @@ -0,0 +1,10074 @@ +/*eslint-disable no-unused-vars*/ +/*! + * jQuery JavaScript Library v3.1.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-07-07T21:44Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.1.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + // Known :disabled false positives: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-