on master help sign in
gh-pages: updated
commit794f9b43371e40a40e2bc6a7ec0195639d299fae authorAlexandre Flament <alex@al-f.net> dateWed 30 Sep 2020, 10:35 (6 years ago) parent91322f3
66 files changed+2254−2469
_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg+8−8 _images/arch_public.dot+4−4 _images/arch_public.svg+58−58 _images/hello.svg+9−9 _images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg+25 _images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg+25 _images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg+22 _images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg+43 _sources/admin/installation-docker.rst.txt+2−2 _sources/admin/installation-nginx.rst.txt+1−1 _sources/admin/installation.rst.txt+1−1 _sources/blog/lxcdev-202006.rst.txt+1−1 _sources/blog/python3.rst.txt+1−1 _sources/dev/contribution_guide.rst.txt+1−1 _sources/dev/quickstart.rst.txt+1−1 _static/basic.css+114−27 _static/jquery-3.4.1.js → _static/jquery-3.5.1.js+756−482 _static/jquery.js+2−2 _static/searchtools.js+1−2 _static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css+1−1 _static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css+1−1 _static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css+1−1 _static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js+1−1 admin/api.html+11−4 admin/architecture.html+12−5 admin/buildhosts.html+99−7 admin/engines.html+11−1609 admin/filtron.html+12−5 admin/index.html+11−4 admin/installation-apache.html+8−5 admin/installation-docker.html+13−6 admin/installation-nginx.html+12−9 admin/installation-searx.html+216−5 admin/installation-uwsgi.html+300−4 admin/installation.html+12−5 admin/morty.html+11−4 admin/plugins.html+11−4 admin/settings.html+12−5 admin/update-searx.html+7−4 blog/admin.html+11−4 blog/index.html+11−4 blog/intro-offline.html+14−7 blog/lxcdev-202006.html+12−9 blog/private-engines.html+12−5 blog/python3.html+12−5 dev/contribution_guide.html+15−8 dev/engine_overview.html+12−5 dev/index.html+11−4 dev/makefile.html+22−15 dev/plugins.html+11−4 dev/quickstart.html+13−6 dev/reST.html+31−24 dev/search_api.html+13−6 dev/translation.html+11−4 genindex.html+7−5 index.html+11−4 search.html+7−4 searchindex.js+1−1 user/index.html+11−4 user/own-instance.html+11−4 user/search_syntax.html+11−4 utils/filtron.sh.html+15−12 utils/index.html+13−6 utils/lxc.sh.html+50−9 utils/morty.sh.html+14−11 utils/searx.sh.html+55−6
_images/DOT-57a4a7f78690d0b6b884bc59f36e84cfb0b61f76.svg+8−8
@@ -1,31 +1,31 @@
11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
33 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4−<!-- Generated by graphviz version 2.43.0 (0)
4+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
55 -->
66<!-- Title: foo Pages: 1 -->
77<svg width="62pt" height="116pt"
88 viewBox="0.00 0.00 62.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
99<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
1010<title>foo</title>
11−<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
11+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
1212<!-- bar -->
1313<g id="node1" class="node">
1414<title>bar</title>
15−<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
16−<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">bar</text>
15+<ellipse fill="none" stroke="#000000" cx="27" cy="-90" rx="27" ry="18"/>
16+<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">bar</text>
1717</g>
1818<!-- baz -->
1919<g id="node2" class="node">
2020<title>baz</title>
21−<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
22−<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00">baz</text>
21+<ellipse fill="none" stroke="#000000" cx="27" cy="-18" rx="27" ry="18"/>
22+<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">baz</text>
2323</g>
2424<!-- bar&#45;&gt;baz -->
2525<g id="edge1" class="edge">
2626<title>bar&#45;&gt;baz</title>
27−<path fill="none" stroke="black" d="M27,-71.7C27,-63.98 27,-54.71 27,-46.11"/>
28−<polygon fill="black" stroke="black" points="30.5,-46.1 27,-36.1 23.5,-46.1 30.5,-46.1"/>
27+<path fill="none" stroke="#000000" d="M27,-71.8314C27,-64.131 27,-54.9743 27,-46.4166"/>
28+<polygon fill="#000000" stroke="#000000" points="30.5001,-46.4132 27,-36.4133 23.5001,-46.4133 30.5001,-46.4132"/>
2929</g>
3030</g>
3131</svg>
_images/arch_public.dot+4−4
@@ -4,11 +4,11 @@ digraph G {
44 edge [fontname="Sans"];
55
66 browser [label="Browser", shape=Mdiamond];
7− rp [label="Reverse Proxy", href="https://asciimoo.github.io/searx/utils/filtron.sh.html#public-reverse-proxy"];
8− filtron [label="Filtron", href="https://asciimoo.github.io/searx/utils/filtron.sh.html"];
9− morty [label="Morty", href="https://asciimoo.github.io/searx/utils/morty.sh.html"];
7+ rp [label="Reverse Proxy", href="https://searx.github.io/searx/utils/filtron.sh.html#public-reverse-proxy"];
8+ filtron [label="Filtron", href="https://searx.github.io/searx/utils/filtron.sh.html"];
9+ morty [label="Morty", href="https://searx.github.io/searx/utils/morty.sh.html"];
1010 static [label="Static files", href="url to configure static files"];
11− uwsgi [label="uwsgi", href="https://asciimoo.github.io/searx/utils/searx.sh.html"]
11+ uwsgi [label="uwsgi", href="https://searx.github.io/searx/utils/searx.sh.html"]
1212 searx1 [label="Searx #1"];
1313 searx2 [label="Searx #2"];
1414 searx3 [label="Searx #3"];
_images/arch_public.svg+58−58
@@ -1,156 +1,156 @@
11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
33 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4−<!-- Generated by graphviz version 2.43.0 (0)
4+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
55 -->
66<!-- Title: G Pages: 1 -->
7−<svg width="603pt" height="415pt"
8− viewBox="0.00 0.00 603.00 415.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9−<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 411)">
7+<svg width="618pt" height="529pt"
8+ viewBox="0.00 0.00 618.00 529.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 525)">
1010<title>G</title>
11−<polygon fill="white" stroke="transparent" points="-4,4 -4,-411 599,-411 599,4 -4,4"/>
11+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-525 614,-525 614,4 -4,4"/>
1212<g id="clust1" class="cluster">
1313<title>cluster_searx</title>
14−<polygon fill="#fafafa" stroke="black" points="8,-8 8,-330 587,-330 587,-8 8,-8"/>
15−<text text-anchor="middle" x="297.5" y="-314.8" font-family="Sans" font-size="14.00">Searx instance</text>
14+<polygon fill="#fafafa" stroke="#000000" points="8,-8 8,-444 602,-444 602,-8 8,-8"/>
15+<text text-anchor="middle" x="305" y="-428.8" font-family="Sans" font-size="14.00" fill="#000000">Searx instance</text>
1616</g>
1717<!-- browser -->
1818<g id="node1" class="node">
1919<title>browser</title>
20−<polygon fill="#ffffcc" stroke="black" points="74,-407 6.8,-389 74,-371 141.2,-389 74,-407"/>
21−<polyline fill="none" stroke="black" points="18.39,-392.1 18.39,-385.9 "/>
22−<polyline fill="none" stroke="black" points="62.41,-374.1 85.59,-374.1 "/>
23−<polyline fill="none" stroke="black" points="129.61,-385.9 129.61,-392.1 "/>
24−<polyline fill="none" stroke="black" points="85.59,-403.9 62.41,-403.9 "/>
25−<text text-anchor="middle" x="74" y="-385.3" font-family="Sans" font-size="14.00">Browser</text>
20+<polygon fill="#ffffcc" stroke="#000000" points="75,-521 5.2878,-503 75,-485 144.7122,-503 75,-521"/>
21+<polyline fill="none" stroke="#000000" points="16.9067,-506.0001 16.9067,-499.9999 "/>
22+<polyline fill="none" stroke="#000000" points="63.3811,-488.0001 86.6189,-488.0001 "/>
23+<polyline fill="none" stroke="#000000" points="133.0933,-499.9999 133.0933,-506.0001 "/>
24+<polyline fill="none" stroke="#000000" points="86.6189,-517.9999 63.3811,-517.9999 "/>
25+<text text-anchor="middle" x="75" y="-499.3" font-family="Sans" font-size="14.00" fill="#000000">Browser</text>
2626</g>
2727<!-- rp -->
2828<g id="node2" class="node">
2929<title>rp</title>
30−<g id="a_node2"><a xlink:href="https://asciimoo.github.io/searx/utils/filtron.sh.html#public-reverse-proxy" xlink:title="Reverse Proxy">
31−<polygon fill="#ffffcc" stroke="black" points="132,-299 16,-299 16,-263 132,-263 132,-299"/>
32−<text text-anchor="middle" x="74" y="-277.3" font-family="Sans" font-size="14.00">Reverse Proxy</text>
30+<g id="a_node2"><a xlink:href="https://searx.github.io/searx/utils/filtron.sh.html#public-reverse-proxy" xlink:title="Reverse Proxy">
31+<polygon fill="#ffffcc" stroke="#000000" points="134,-413 16,-413 16,-377 134,-377 134,-413"/>
32+<text text-anchor="middle" x="75" y="-391.3" font-family="Sans" font-size="14.00" fill="#000000">Reverse Proxy</text>
3333</a>
3434</g>
3535</g>
3636<!-- browser&#45;&gt;rp -->
3737<g id="edge1" class="edge">
3838<title>browser&#45;&gt;rp</title>
39−<path fill="none" stroke="black" d="M74,-370.97C74,-354.38 74,-328.88 74,-309.43"/>
40−<polygon fill="black" stroke="black" points="77.5,-309.34 74,-299.34 70.5,-309.34 77.5,-309.34"/>
41−<text text-anchor="middle" x="96.5" y="-341.8" font-family="Sans" font-size="14.00">HTTPS</text>
39+<path fill="none" stroke="#000000" d="M75,-484.6793C75,-467.821 75,-442.5651 75,-423.147"/>
40+<polygon fill="#000000" stroke="#000000" points="78.5001,-423.0501 75,-413.0502 71.5001,-423.0502 78.5001,-423.0501"/>
41+<text text-anchor="middle" x="98" y="-455.8" font-family="Sans" font-size="14.00" fill="#000000">HTTPS</text>
4242</g>
4343<!-- filtron -->
4444<g id="node3" class="node">
4545<title>filtron</title>
46−<g id="a_node3"><a xlink:href="https://asciimoo.github.io/searx/utils/filtron.sh.html" xlink:title="Filtron">
47−<polygon fill="#ffffcc" stroke="black" points="103.5,-212 44.5,-212 44.5,-176 103.5,-176 103.5,-212"/>
48−<text text-anchor="middle" x="74" y="-190.3" font-family="Sans" font-size="14.00">Filtron</text>
46+<g id="a_node3"><a xlink:href="https://searx.github.io/searx/utils/filtron.sh.html" xlink:title="Filtron">
47+<polygon fill="#ffffcc" stroke="#000000" points="105.5,-288 44.5,-288 44.5,-252 105.5,-252 105.5,-288"/>
48+<text text-anchor="middle" x="75" y="-266.3" font-family="Sans" font-size="14.00" fill="#000000">Filtron</text>
4949</a>
5050</g>
5151</g>
5252<!-- rp&#45;&gt;filtron -->
5353<g id="edge4" class="edge">
5454<title>rp&#45;&gt;filtron</title>
55−<path fill="none" stroke="black" d="M74,-262.8C74,-251.16 74,-235.55 74,-222.24"/>
56−<polygon fill="black" stroke="black" points="77.5,-222.18 74,-212.18 70.5,-222.18 77.5,-222.18"/>
57−<text text-anchor="middle" x="92" y="-233.8" font-family="Sans" font-size="14.00">HTTP</text>
55+<path fill="none" stroke="#000000" d="M75,-376.8239C75,-356.2723 75,-322.5472 75,-298.4893"/>
56+<polygon fill="#000000" stroke="#000000" points="78.5001,-298.198 75,-288.198 71.5001,-298.198 78.5001,-298.198"/>
57+<text text-anchor="middle" x="93.5" y="-328.8" font-family="Sans" font-size="14.00" fill="#000000">HTTP</text>
5858</g>
5959<!-- morty -->
6060<g id="node4" class="node">
6161<title>morty</title>
62−<g id="a_node4"><a xlink:href="https://asciimoo.github.io/searx/utils/morty.sh.html" xlink:title="Morty">
63−<polygon fill="#ffffcc" stroke="black" points="178,-212 122,-212 122,-176 178,-176 178,-212"/>
64−<text text-anchor="middle" x="150" y="-190.3" font-family="Sans" font-size="14.00">Morty</text>
62+<g id="a_node4"><a xlink:href="https://searx.github.io/searx/utils/morty.sh.html" xlink:title="Morty">
63+<polygon fill="#ffffcc" stroke="#000000" points="180.5,-288 123.5,-288 123.5,-252 180.5,-252 180.5,-288"/>
64+<text text-anchor="middle" x="152" y="-266.3" font-family="Sans" font-size="14.00" fill="#000000">Morty</text>
6565</a>
6666</g>
6767</g>
6868<!-- rp&#45;&gt;morty -->
6969<g id="edge2" class="edge">
7070<title>rp&#45;&gt;morty</title>
71−<path fill="none" stroke="black" d="M95.6,-262.69C101.81,-257.29 108.41,-251.14 114,-245 120.76,-237.56 127.42,-228.84 133.12,-220.79"/>
72−<polygon fill="black" stroke="black" points="136.11,-222.62 138.91,-212.4 130.35,-218.65 136.11,-222.62"/>
73−<text text-anchor="middle" x="264.5" y="-233.8" font-family="Sans" font-size="14.00">optional: images and HTML pages proxy</text>
71+<path fill="none" stroke="#000000" d="M89.8355,-376.705C98.0006,-366.2543 108.0569,-352.7317 116,-340 124.4983,-326.3785 132.7784,-310.5167 139.2508,-297.3397"/>
72+<polygon fill="#000000" stroke="#000000" points="142.4243,-298.8167 143.6215,-288.2897 136.1209,-295.7724 142.4243,-298.8167"/>
73+<text text-anchor="middle" x="268" y="-328.8" font-family="Sans" font-size="14.00" fill="#000000">optional: images and HTML pages proxy</text>
7474</g>
7575<!-- static -->
7676<g id="node5" class="node">
7777<title>static</title>
7878<g id="a_node5"><a xlink:href="url to configure static files" xlink:title="Static files">
79−<polygon fill="#ffffcc" stroke="black" points="579.5,-299 490.5,-299 490.5,-263 579.5,-263 579.5,-299"/>
80−<text text-anchor="middle" x="535" y="-277.3" font-family="Sans" font-size="14.00">Static files</text>
79+<polygon fill="#ffffcc" stroke="#000000" points="594,-413 504,-413 504,-377 594,-377 594,-413"/>
80+<text text-anchor="middle" x="549" y="-391.3" font-family="Sans" font-size="14.00" fill="#000000">Static files</text>
8181</a>
8282</g>
8383</g>
8484<!-- rp&#45;&gt;static -->
8585<g id="edge3" class="edge">
8686<title>rp&#45;&gt;static</title>
87−<path fill="none" stroke="black" d="M132.39,-281C222.02,-281 392.33,-281 479.93,-281"/>
88−<polygon fill="black" stroke="black" points="480.19,-284.5 490.19,-281 480.19,-277.5 480.19,-284.5"/>
89−<text text-anchor="middle" x="311.25" y="-287.8" font-family="Sans" font-size="14.00">optional: reverse proxy serves directly static files</text>
87+<path fill="none" stroke="#000000" d="M134.074,-395C226.433,-395 403.7479,-395 493.718,-395"/>
88+<polygon fill="#000000" stroke="#000000" points="493.7212,-398.5001 503.7212,-395 493.7211,-391.5001 493.7212,-398.5001"/>
89+<text text-anchor="middle" x="319" y="-401.8" font-family="Sans" font-size="14.00" fill="#000000">optional: reverse proxy serves directly static files</text>
9090</g>
9191<!-- uwsgi -->
9292<g id="node6" class="node">
9393<title>uwsgi</title>
94−<g id="a_node6"><a xlink:href="https://asciimoo.github.io/searx/utils/searx.sh.html" xlink:title="uwsgi">
95−<polygon fill="#ffffcc" stroke="black" points="184.5,-125 127.5,-125 127.5,-89 184.5,-89 184.5,-125"/>
96−<text text-anchor="middle" x="156" y="-103.3" font-family="Sans" font-size="14.00">uwsgi</text>
94+<g id="a_node6"><a xlink:href="https://searx.github.io/searx/utils/searx.sh.html" xlink:title="uwsgi">
95+<polygon fill="#ffffcc" stroke="#000000" points="188,-163 130,-163 130,-127 188,-127 188,-163"/>
96+<text text-anchor="middle" x="159" y="-141.3" font-family="Sans" font-size="14.00" fill="#000000">uwsgi</text>
9797</a>
9898</g>
9999</g>
100100<!-- filtron&#45;&gt;uwsgi -->
101101<g id="edge5" class="edge">
102102<title>filtron&#45;&gt;uwsgi</title>
103−<path fill="none" stroke="black" d="M90.59,-175.8C102.6,-163.36 118.99,-146.36 132.36,-132.5"/>
104−<polygon fill="black" stroke="black" points="135.01,-134.8 139.43,-125.18 129.97,-129.94 135.01,-134.8"/>
105−<text text-anchor="middle" x="137" y="-146.8" font-family="Sans" font-size="14.00">HTTP</text>
103+<path fill="none" stroke="#000000" d="M87.2143,-251.8239C101.3983,-230.7169 124.9198,-195.7146 141.1515,-171.5603"/>
104+<polygon fill="#000000" stroke="#000000" points="144.0983,-173.4502 146.7709,-163.198 138.2883,-169.5459 144.0983,-173.4502"/>
105+<text text-anchor="middle" x="139.5" y="-203.8" font-family="Sans" font-size="14.00" fill="#000000">HTTP</text>
106106</g>
107107<!-- searx1 -->
108108<g id="node7" class="node">
109109<title>searx1</title>
110−<polygon fill="#ffffcc" stroke="black" points="97.5,-52 16.5,-52 16.5,-16 97.5,-16 97.5,-52"/>
111−<text text-anchor="middle" x="57" y="-30.3" font-family="Sans" font-size="14.00">Searx #1</text>
110+<polygon fill="#ffffcc" stroke="#000000" points="99.5,-52 16.5,-52 16.5,-16 99.5,-16 99.5,-52"/>
111+<text text-anchor="middle" x="58" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #1</text>
112112</g>
113113<!-- uwsgi&#45;&gt;searx1 -->
114114<g id="edge6" class="edge">
115115<title>uwsgi&#45;&gt;searx1</title>
116−<path fill="none" stroke="black" d="M132.29,-88.99C119.4,-79.75 103.28,-68.19 89.27,-58.14"/>
117−<polygon fill="black" stroke="black" points="91.03,-55.1 80.86,-52.11 86.95,-60.79 91.03,-55.1"/>
116+<path fill="none" stroke="#000000" d="M142.3219,-126.6706C125.7281,-108.4339 100.1175,-80.2876 81.4738,-59.7979"/>
117+<polygon fill="#000000" stroke="#000000" points="84.0217,-57.3975 74.7029,-52.3566 78.8442,-62.1086 84.0217,-57.3975"/>
118118</g>
119119<!-- searx2 -->
120120<g id="node8" class="node">
121121<title>searx2</title>
122−<polygon fill="#ffffcc" stroke="black" points="196.5,-52 115.5,-52 115.5,-16 196.5,-16 196.5,-52"/>
123−<text text-anchor="middle" x="156" y="-30.3" font-family="Sans" font-size="14.00">Searx #2</text>
122+<polygon fill="#ffffcc" stroke="#000000" points="200.5,-52 117.5,-52 117.5,-16 200.5,-16 200.5,-52"/>
123+<text text-anchor="middle" x="159" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #2</text>
124124</g>
125125<!-- uwsgi&#45;&gt;searx2 -->
126126<g id="edge7" class="edge">
127127<title>uwsgi&#45;&gt;searx2</title>
128−<path fill="none" stroke="black" d="M156,-88.81C156,-80.79 156,-71.05 156,-62.07"/>
129−<polygon fill="black" stroke="black" points="159.5,-62.03 156,-52.03 152.5,-62.03 159.5,-62.03"/>
128+<path fill="none" stroke="#000000" d="M159,-126.6706C159,-109.2373 159,-82.7482 159,-62.5489"/>
129+<polygon fill="#000000" stroke="#000000" points="162.5001,-62.3566 159,-52.3566 155.5001,-62.3567 162.5001,-62.3566"/>
130130</g>
131131<!-- searx3 -->
132132<g id="node9" class="node">
133133<title>searx3</title>
134−<polygon fill="#ffffcc" stroke="black" points="295.5,-52 214.5,-52 214.5,-16 295.5,-16 295.5,-52"/>
135−<text text-anchor="middle" x="255" y="-30.3" font-family="Sans" font-size="14.00">Searx #3</text>
134+<polygon fill="#ffffcc" stroke="#000000" points="301.5,-52 218.5,-52 218.5,-16 301.5,-16 301.5,-52"/>
135+<text text-anchor="middle" x="260" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #3</text>
136136</g>
137137<!-- uwsgi&#45;&gt;searx3 -->
138138<g id="edge8" class="edge">
139139<title>uwsgi&#45;&gt;searx3</title>
140−<path fill="none" stroke="black" d="M179.71,-88.99C192.6,-79.75 208.72,-68.19 222.73,-58.14"/>
141−<polygon fill="black" stroke="black" points="225.05,-60.79 231.14,-52.11 220.97,-55.1 225.05,-60.79"/>
140+<path fill="none" stroke="#000000" d="M175.6781,-126.6706C192.2719,-108.4339 217.8825,-80.2876 236.5262,-59.7979"/>
141+<polygon fill="#000000" stroke="#000000" points="239.1558,-62.1086 243.2971,-52.3566 233.9783,-57.3975 239.1558,-62.1086"/>
142142</g>
143143<!-- searx4 -->
144144<g id="node10" class="node">
145145<title>searx4</title>
146−<polygon fill="#ffffcc" stroke="black" points="394.5,-52 313.5,-52 313.5,-16 394.5,-16 394.5,-52"/>
147−<text text-anchor="middle" x="354" y="-30.3" font-family="Sans" font-size="14.00">Searx #4</text>
146+<polygon fill="#ffffcc" stroke="#000000" points="402.5,-52 319.5,-52 319.5,-16 402.5,-16 402.5,-52"/>
147+<text text-anchor="middle" x="361" y="-30.3" font-family="Sans" font-size="14.00" fill="#000000">Searx #4</text>
148148</g>
149149<!-- uwsgi&#45;&gt;searx4 -->
150150<g id="edge9" class="edge">
151151<title>uwsgi&#45;&gt;searx4</title>
152−<path fill="none" stroke="black" d="M184.79,-95.68C215.9,-84.52 266.08,-66.53 303.72,-53.03"/>
153−<polygon fill="black" stroke="black" points="305.26,-56.19 313.5,-49.52 302.9,-49.61 305.26,-56.19"/>
152+<path fill="none" stroke="#000000" d="M188.3725,-128.8596C222.8149,-109.9334 280.1532,-78.4257 319.2181,-56.9594"/>
153+<polygon fill="#000000" stroke="#000000" points="321.1614,-59.8852 328.2399,-52.0018 317.7903,-53.7504 321.1614,-59.8852"/>
154154</g>
155155</g>
156156</svg>
_images/hello.svg+9−9
@@ -1,30 +1,30 @@
11<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
33 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4−<!-- Generated by graphviz version 2.43.0 (0)
4+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
55 -->
66<!-- Title: G Pages: 1 -->
7−<svg width="85pt" height="116pt"
8− viewBox="0.00 0.00 84.69 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
7+<svg width="76pt" height="116pt"
8+ viewBox="0.00 0.00 75.59 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
99<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
1010<title>G</title>
11−<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 80.69,-112 80.69,4 -4,4"/>
11+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-112 71.594,-112 71.594,4 -4,4"/>
1212<!-- Hello -->
1313<g id="node1" class="node">
1414<title>Hello</title>
15−<ellipse fill="none" stroke="black" cx="38.35" cy="-90" rx="35.19" ry="18"/>
16−<text text-anchor="middle" x="38.35" y="-86.3" font-family="Times,serif" font-size="14.00">Hello</text>
15+<ellipse fill="none" stroke="#000000" cx="33.797" cy="-90" rx="30.5947" ry="18"/>
16+<text text-anchor="middle" x="33.797" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#000000">Hello</text>
1717</g>
1818<!-- World -->
1919<g id="node2" class="node">
2020<title>World</title>
21−<ellipse fill="none" stroke="black" cx="38.35" cy="-18" rx="38.19" ry="18"/>
22−<text text-anchor="middle" x="38.35" y="-14.3" font-family="Times,serif" font-size="14.00">World</text>
21+<ellipse fill="none" stroke="#000000" cx="33.797" cy="-18" rx="33.5952" ry="18"/>
22+<text text-anchor="middle" x="33.797" y="-14.3" font-family="Times,serif" font-size="14.00" fill="#000000">World</text>
2323</g>
2424<!-- Hello&#45;&#45;World -->
2525<g id="edge1" class="edge">
2626<title>Hello&#45;&#45;World</title>
27−<path fill="none" stroke="black" d="M38.35,-71.7C38.35,-60.85 38.35,-46.92 38.35,-36.1"/>
27+<path fill="none" stroke="#000000" d="M33.797,-71.8314C33.797,-61 33.797,-47.2876 33.797,-36.4133"/>
2828</g>
2929</g>
3030</svg>
_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svgnew file+25
@@ -0,0 +1,25 @@
1+<?xml version='1.0' encoding='UTF-8'?>
2+<!-- This file was generated by dvisvgm 2.1.3 -->
3+<svg height='48.4227pt' version='1.1' viewBox='57.6088 53.7983 36.5233 48.4227' width='36.5233pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
4+<defs>
5+<path d='M9.19153 -3.20797C9.42864 -3.20797 9.6797 -3.20797 9.6797 -3.48692S9.42864 -3.76588 9.19153 -3.76588H1.64583C1.40872 -3.76588 1.15766 -3.76588 1.15766 -3.48692S1.40872 -3.20797 1.64583 -3.20797H9.19153Z' id='g0-0'/>
6+<path d='M5.56513 -3.22192H9.41469C9.60996 -3.22192 9.86102 -3.22192 9.86102 -3.47298C9.86102 -3.73798 9.62391 -3.73798 9.41469 -3.73798H5.56513V-7.58755C5.56513 -7.78281 5.56513 -8.03387 5.31407 -8.03387C5.04907 -8.03387 5.04907 -7.79676 5.04907 -7.58755V-3.73798H1.1995C1.00423 -3.73798 0.753176 -3.73798 0.753176 -3.48692C0.753176 -3.22192 0.990286 -3.22192 1.1995 -3.22192H5.04907V0.627646C5.04907 0.822914 5.04907 1.07397 5.30012 1.07397C5.56513 1.07397 5.56513 0.836862 5.56513 0.627646V-3.22192Z' id='g2-43'/>
7+<path d='M4.01694 -8.94047C4.01694 -9.26127 4.01694 -9.27522 3.73798 -9.27522C3.40324 -8.89863 2.70585 -8.38257 1.26924 -8.38257V-7.97808C1.59004 -7.97808 2.28742 -7.97808 3.05455 -8.34072V-1.07397C3.05455 -0.571856 3.0127 -0.404483 1.78531 -0.404483H1.35293V0C1.72951 -0.0278954 3.08244 -0.0278954 3.54271 -0.0278954S5.34197 -0.0278954 5.71856 0V-0.404483H5.28618C4.05878 -0.404483 4.01694 -0.571856 4.01694 -1.07397V-8.94047Z' id='g2-49'/>
8+<path d='M6.61121 -5.69066C6.16488 -5.60697 5.99751 -5.27223 5.99751 -5.00722C5.99751 -4.67248 6.26252 -4.5609 6.45778 -4.5609C6.87621 -4.5609 7.16912 -4.92354 7.16912 -5.30012C7.16912 -5.88593 6.49963 -6.15093 5.91382 -6.15093C5.06301 -6.15093 4.58879 -5.31407 4.46326 -5.04907C4.14247 -6.09514 3.27771 -6.15093 3.02665 -6.15093C1.60399 -6.15093 0.850809 -4.32379 0.850809 -4.01694C0.850809 -3.96115 0.9066 -3.89141 1.00423 -3.89141C1.11582 -3.89141 1.14371 -3.97509 1.17161 -4.03088C1.64583 -5.57908 2.58032 -5.87198 2.98481 -5.87198C3.61245 -5.87198 3.73798 -5.28618 3.73798 -4.95143C3.73798 -4.64458 3.6543 -4.32379 3.48692 -3.6543L3.0127 -1.74346C2.80349 -0.9066 2.399 -0.139477 1.65978 -0.139477C1.59004 -0.139477 1.24134 -0.139477 0.948443 -0.320797C1.45056 -0.418431 1.56214 -0.836862 1.56214 -1.00423C1.56214 -1.28319 1.35293 -1.45056 1.08792 -1.45056C0.753176 -1.45056 0.390535 -1.15766 0.390535 -0.711333C0.390535 -0.125529 1.04608 0.139477 1.64583 0.139477C2.31532 0.139477 2.78954 -0.390535 3.08244 -0.962391C3.3056 -0.139477 4.00299 0.139477 4.51905 0.139477C5.94172 0.139477 6.69489 -1.68767 6.69489 -1.99452C6.69489 -2.06426 6.6391 -2.12005 6.55542 -2.12005C6.42989 -2.12005 6.41594 -2.05031 6.3741 -1.93873C5.99751 -0.711333 5.18854 -0.139477 4.5609 -0.139477C4.07273 -0.139477 3.80772 -0.502117 3.80772 -1.07397C3.80772 -1.38082 3.86351 -1.60399 4.08667 -2.52453L4.57484 -4.42142C4.78406 -5.25828 5.25828 -5.87198 5.89988 -5.87198C5.92777 -5.87198 6.31831 -5.87198 6.61121 -5.69066Z' id='g1-120'/>
9+<path d='M3.66824 1.56214C3.29166 2.09215 2.7477 2.56638 2.06426 2.56638C1.89689 2.56638 1.2274 2.53848 1.01818 1.89689C1.06002 1.91083 1.12976 1.91083 1.15766 1.91083C1.57609 1.91083 1.85504 1.54819 1.85504 1.2274S1.59004 0.795019 1.38082 0.795019C1.15766 0.795019 0.669489 0.962391 0.669489 1.64583C0.669489 2.35716 1.26924 2.84533 2.06426 2.84533C3.45903 2.84533 4.86775 1.56214 5.25828 0.0139477L6.62516 -5.42565C6.6391 -5.49539 6.667 -5.57908 6.667 -5.66276C6.667 -5.87198 6.49963 -6.01146 6.29041 -6.01146C6.16488 -6.01146 5.87198 -5.95567 5.7604 -5.53724L4.72827 -1.43661C4.65853 -1.18555 4.65853 -1.15766 4.54695 -1.00423C4.268 -0.613699 3.80772 -0.139477 3.13823 -0.139477C2.35716 -0.139477 2.28742 -0.9066 2.28742 -1.28319C2.28742 -2.07821 2.66401 -3.15218 3.0406 -4.15641C3.19402 -4.5609 3.27771 -4.75616 3.27771 -5.03512C3.27771 -5.62092 2.85928 -6.15093 2.17584 -6.15093C0.892653 -6.15093 0.376588 -4.12852 0.376588 -4.01694C0.376588 -3.96115 0.432379 -3.89141 0.530012 -3.89141C0.655542 -3.89141 0.669489 -3.9472 0.72528 -4.14247C1.06002 -5.31407 1.59004 -5.87198 2.134 -5.87198C2.25953 -5.87198 2.49664 -5.87198 2.49664 -5.41171C2.49664 -5.04907 2.34321 -4.64458 2.134 -4.11457C1.45056 -2.28742 1.45056 -1.82715 1.45056 -1.4924C1.45056 -0.167372 2.399 0.139477 3.09639 0.139477C3.50087 0.139477 4.00299 0.0139477 4.49116 -0.502117L4.50511 -0.488169C4.29589 0.334745 4.15641 0.878705 3.66824 1.56214Z' id='g1-121'/>
10+<path d='M1.77136 -1.12976C2.37111 -1.8132 2.85928 -2.24558 3.55666 -2.87323C4.39352 -3.59851 4.75616 -3.9472 4.95143 -4.15641C5.92777 -5.1188 6.41594 -5.92777 6.41594 -6.03935S6.30436 -6.15093 6.27646 -6.15093C6.17883 -6.15093 6.15093 -6.09514 6.0812 -5.99751C5.7325 -5.39776 5.39776 -5.10486 5.03512 -5.10486C4.74222 -5.10486 4.58879 -5.23039 4.32379 -5.56513C4.03088 -5.91382 3.79377 -6.15093 3.38929 -6.15093C2.37111 -6.15093 1.75741 -4.88169 1.75741 -4.58879C1.75741 -4.54695 1.77136 -4.46326 1.89689 -4.46326C2.00847 -4.46326 2.02242 -4.51905 2.06426 -4.61669C2.30137 -5.1746 2.97086 -5.27223 3.23587 -5.27223C3.52877 -5.27223 3.80772 -5.1746 4.10062 -5.04907C4.63064 -4.8259 4.8538 -4.8259 4.99328 -4.8259C5.09091 -4.8259 5.1467 -4.8259 5.21644 -4.83985C4.75616 -4.29589 4.00299 -3.6264 3.37534 -3.05455L1.96663 -1.75741C1.11582 -0.892653 0.599751 -0.0697385 0.599751 0.0278954C0.599751 0.111582 0.669489 0.139477 0.753176 0.139477S0.850809 0.125529 0.948443 -0.0418431C1.17161 -0.390535 1.61793 -0.9066 2.134 -0.9066C2.4269 -0.9066 2.56638 -0.808966 2.84533 -0.460274C3.11034 -0.153425 3.34745 0.139477 3.79377 0.139477C5.16065 0.139477 5.94172 -1.63188 5.94172 -1.95268C5.94172 -2.00847 5.92777 -2.09215 5.78829 -2.09215C5.67671 -2.09215 5.66276 -2.03636 5.62092 -1.89689C5.31407 -1.07397 4.49116 -0.739228 3.9472 -0.739228C3.6543 -0.739228 3.37534 -0.836862 3.08244 -0.962391C2.52453 -1.18555 2.37111 -1.18555 2.18979 -1.18555C2.05031 -1.18555 1.89689 -1.18555 1.77136 -1.12976Z' id='g1-122'/>
11+</defs>
12+<g id='page1'>
13+<use x='59.2704' xlink:href='#g2-49' y='62.7868'/>
14+<rect height='0.55789' width='7.76077' x='58.8043' y='68.4566'/>
15+<use x='58.8043' xlink:href='#g1-120' y='81.7899'/>
16+<use x='70.86' xlink:href='#g2-43' y='72.2225'/>
17+<use x='85.9426' xlink:href='#g2-49' y='62.7868'/>
18+<rect height='0.55789' width='7.15942' x='85.7771' y='68.4566'/>
19+<use x='85.7771' xlink:href='#g1-121' y='81.7899'/>
20+<rect height='0.55789' width='36.5233' x='57.6088' y='86.1756'/>
21+<use x='60.2843' xlink:href='#g1-121' y='99.5089'/>
22+<use x='70.5432' xlink:href='#g0-0' y='99.5089'/>
23+<use x='84.4909' xlink:href='#g1-122' y='99.5089'/>
24+</g>
25+</svg>
_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svgnew file+25
@@ -0,0 +1,25 @@
1+<?xml version='1.0' encoding='UTF-8'?>
2+<!-- This file was generated by dvisvgm 2.1.3 -->
3+<svg height='29.5237pt' version='1.1' viewBox='57.6088 53.7982 23.0929 29.5237' width='23.0929pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
4+<defs>
5+<path d='M6.43404 -2.24557C6.60002 -2.24557 6.77576 -2.24557 6.77576 -2.44084S6.60002 -2.6361 6.43404 -2.6361H1.15207C0.986098 -2.6361 0.810358 -2.6361 0.810358 -2.44084S0.986098 -2.24557 1.15207 -2.24557H6.43404Z' id='g0-0'/>
6+<path d='M3.26096 -2.94853C3.31954 -3.20238 3.54409 -4.1006 4.22753 -4.1006C4.27634 -4.1006 4.51067 -4.1006 4.7157 -3.97368C4.44232 -3.92486 4.24705 -3.68078 4.24705 -3.44646C4.24705 -3.29025 4.35445 -3.10474 4.61806 -3.10474C4.83286 -3.10474 5.14528 -3.28048 5.14528 -3.67102C5.14528 -4.17871 4.56925 -4.3154 4.23729 -4.3154C3.67102 -4.3154 3.3293 -3.79794 3.21214 -3.57338C2.96806 -4.21776 2.44084 -4.3154 2.1577 -4.3154C1.14231 -4.3154 0.585801 -3.05593 0.585801 -2.81184C0.585801 -2.71421 0.683434 -2.71421 0.702961 -2.71421C0.781068 -2.71421 0.810358 -2.73374 0.829884 -2.82161C1.16184 -3.85652 1.80622 -4.1006 2.13817 -4.1006C2.32368 -4.1006 2.66539 -4.01273 2.66539 -3.44646C2.66539 -3.1438 2.49942 -2.48965 2.13817 -1.12278C1.98196 -0.517457 1.64024 -0.107397 1.21065 -0.107397C1.15207 -0.107397 0.927518 -0.107397 0.722488 -0.23432C0.966571 -0.283137 1.18136 -0.488167 1.18136 -0.761541C1.18136 -1.02515 0.966571 -1.10326 0.820121 -1.10326C0.527221 -1.10326 0.283137 -0.849411 0.283137 -0.536984C0.283137 -0.0878701 0.771304 0.107397 1.20089 0.107397C1.84527 0.107397 2.19675 -0.576037 2.22604 -0.634617C2.3432 -0.273374 2.69468 0.107397 3.28048 0.107397C4.28611 0.107397 4.84262 -1.15207 4.84262 -1.39616C4.84262 -1.49379 4.75475 -1.49379 4.72546 -1.49379C4.63759 -1.49379 4.61806 -1.45474 4.59854 -1.38639C4.27634 -0.341717 3.61244 -0.107397 3.30001 -0.107397C2.91924 -0.107397 2.76303 -0.419824 2.76303 -0.751778C2.76303 -0.966571 2.82161 -1.18136 2.929 -1.61095L3.26096 -2.94853Z' id='g1-120'/>
7+<path d='M4.74499 -3.71983C4.78404 -3.85652 4.78404 -3.87605 4.78404 -3.94439C4.78404 -4.12013 4.64735 -4.208 4.5009 -4.208C4.40327 -4.208 4.24705 -4.14942 4.15918 -4.00297C4.13966 -3.95415 4.06155 -3.65149 4.0225 -3.47575C3.95415 -3.2219 3.88581 -2.95829 3.82723 -2.69468L3.38788 -0.937281C3.34883 -0.790831 2.929 -0.107397 2.28462 -0.107397C1.78669 -0.107397 1.6793 -0.536984 1.6793 -0.898228C1.6793 -1.34734 1.84527 -1.95267 2.17723 -2.81184C2.33344 -3.21214 2.37249 -3.31954 2.37249 -3.5148C2.37249 -3.95415 2.06007 -4.3154 1.5719 -4.3154C0.644381 -4.3154 0.283137 -2.89971 0.283137 -2.81184C0.283137 -2.71421 0.38077 -2.71421 0.400297 -2.71421C0.497931 -2.71421 0.507694 -2.73374 0.556511 -2.88995C0.820121 -3.8077 1.21065 -4.1006 1.54261 -4.1006C1.62072 -4.1006 1.78669 -4.1006 1.78669 -3.78818C1.78669 -3.54409 1.68906 -3.29025 1.62072 -3.10474C1.23018 -2.06983 1.05444 -1.51332 1.05444 -1.05444C1.05444 -0.185504 1.66953 0.107397 2.24557 0.107397C2.62634 0.107397 2.95829 -0.0585801 3.23167 -0.331954C3.10474 0.17574 2.98758 0.654144 2.59705 1.1716C2.3432 1.50356 1.9722 1.78669 1.52308 1.78669C1.38639 1.78669 0.947044 1.7574 0.781068 1.37663C0.937281 1.37663 1.0642 1.37663 1.20089 1.25947C1.29852 1.1716 1.39616 1.04468 1.39616 0.859174C1.39616 0.556511 1.13255 0.517457 1.03491 0.517457C0.810358 0.517457 0.488167 0.673671 0.488167 1.15207C0.488167 1.64024 0.917754 2.00149 1.52308 2.00149C2.52871 2.00149 3.53433 1.11302 3.8077 0.00976334L4.74499 -3.71983Z' id='g1-121'/>
8+<path d='M1.29852 -0.810358C1.82575 -1.37663 2.10888 -1.62072 2.46036 -1.92338C2.46036 -1.93314 3.06569 -2.4506 3.41717 -2.80208C4.34469 -3.71007 4.55948 -4.17871 4.55948 -4.21776C4.55948 -4.3154 4.47161 -4.3154 4.45209 -4.3154C4.38374 -4.3154 4.35445 -4.29587 4.30564 -4.208C4.01273 -3.73936 3.8077 -3.58315 3.57338 -3.58315S3.2219 -3.7296 3.07545 -3.89557C2.88995 -4.12013 2.72397 -4.3154 2.40178 -4.3154C1.66953 -4.3154 1.22042 -3.40741 1.22042 -3.20238C1.22042 -3.15356 1.24971 -3.09498 1.33758 -3.09498S1.44498 -3.1438 1.4645 -3.20238C1.65001 -3.65149 2.21628 -3.66125 2.29439 -3.66125C2.49942 -3.66125 2.68492 -3.59291 2.90948 -3.5148C3.30001 -3.36835 3.40741 -3.36835 3.66125 -3.36835C3.30977 -2.94853 2.48965 -2.24557 2.30415 -2.08936L1.42545 -1.26923C0.761541 -0.615091 0.419824 -0.0585801 0.419824 0.00976334C0.419824 0.107397 0.517457 0.107397 0.536984 0.107397C0.615091 0.107397 0.634617 0.0878701 0.693197 -0.0195267C0.917754 -0.361244 1.21065 -0.624854 1.52308 -0.624854C1.74764 -0.624854 1.84527 -0.536984 2.08936 -0.253847C2.25533 -0.0488167 2.43107 0.107397 2.71421 0.107397C3.68078 0.107397 4.24705 -1.13255 4.24705 -1.39616C4.24705 -1.44498 4.208 -1.49379 4.12989 -1.49379C4.04202 -1.49379 4.0225 -1.43521 3.99321 -1.36687C3.76865 -0.732251 3.1438 -0.546747 2.82161 -0.546747C2.62634 -0.546747 2.4506 -0.605327 2.24557 -0.673671C1.91362 -0.800594 1.76717 -0.839648 1.56214 -0.839648C1.54261 -0.839648 1.38639 -0.839648 1.29852 -0.810358Z' id='g1-122'/>
9+<path d='M3.99321 -2.24557H6.71718C6.85387 -2.24557 7.03937 -2.24557 7.03937 -2.44084S6.85387 -2.6361 6.71718 -2.6361H3.99321V-5.36984C3.99321 -5.50653 3.99321 -5.69203 3.79794 -5.69203S3.60267 -5.50653 3.60267 -5.36984V-2.6361H0.868938C0.732251 -2.6361 0.546747 -2.6361 0.546747 -2.44084S0.732251 -2.24557 0.868938 -2.24557H3.60267V0.488167C3.60267 0.624854 3.60267 0.810358 3.79794 0.810358S3.99321 0.624854 3.99321 0.488167V-2.24557Z' id='g2-43'/>
10+<path d='M2.87042 -6.24854C2.87042 -6.48286 2.87042 -6.50239 2.64587 -6.50239C2.04054 -5.87753 1.18136 -5.87753 0.868938 -5.87753V-5.57487C1.0642 -5.57487 1.64024 -5.57487 2.14794 -5.82872V-0.771304C2.14794 -0.419824 2.11865 -0.302664 1.23994 -0.302664H0.927518V0C1.26923 -0.02929 2.11865 -0.02929 2.50918 -0.02929S3.74912 -0.02929 4.09084 0V-0.302664H3.77841C2.89971 -0.302664 2.87042 -0.41006 2.87042 -0.771304V-6.24854Z' id='g2-49'/>
11+</defs>
12+<g id='page1'>
13+<use x='59.1535' xlink:href='#g2-49' y='60.0902'/>
14+<rect height='0.55789' width='5.58003' x='58.8043' y='61.816'/>
15+<use x='58.8043' xlink:href='#g1-120' y='70.3915'/>
16+<use x='65.5798' xlink:href='#g2-43' y='65.5818'/>
17+<use x='74.4968' xlink:href='#g2-49' y='60.0902'/>
18+<rect height='0.55789' width='5.13708' x='74.3691' y='61.816'/>
19+<use x='74.3691' xlink:href='#g1-121' y='70.3915'/>
20+<rect height='0.55789' width='23.0929' x='57.6088' y='72.8479'/>
21+<use x='60.3049' xlink:href='#g1-121' y='81.4235'/>
22+<use x='65.442' xlink:href='#g0-0' y='81.4235'/>
23+<use x='73.0357' xlink:href='#g1-122' y='81.4235'/>
24+</g>
25+</svg>
_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svgnew file+22
@@ -0,0 +1,22 @@
1+<?xml version='1.0' encoding='UTF-8'?>
2+<!-- This file was generated by dvisvgm 2.1.3 -->
3+<svg height='12.4188pt' version='1.1' viewBox='56.4133 54.4 69.6865 12.4188' width='69.6865pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
4+<defs>
5+<path d='M4.19826 -1.65978C4.12852 -1.42267 4.12852 -1.39477 3.93325 -1.12976C3.6264 -0.739228 3.0127 -0.139477 2.35716 -0.139477C1.78531 -0.139477 1.46451 -0.655542 1.46451 -1.47846C1.46451 -2.24558 1.89689 -3.80772 2.16189 -4.39352C2.63611 -5.36986 3.29166 -5.87198 3.83562 -5.87198C4.75616 -5.87198 4.93748 -4.72827 4.93748 -4.61669C4.93748 -4.60274 4.89564 -4.42142 4.88169 -4.39352L4.19826 -1.65978ZM5.09091 -5.23039C4.93748 -5.59303 4.5609 -6.15093 3.83562 -6.15093C2.25953 -6.15093 0.557908 -4.11457 0.557908 -2.05031C0.557908 -0.669489 1.36687 0.139477 2.31532 0.139477C3.08244 0.139477 3.73798 -0.460274 4.12852 -0.920548C4.268 -0.0976339 4.92354 0.139477 5.34197 0.139477S6.09514 -0.111582 6.3462 -0.613699C6.56936 -1.08792 6.76463 -1.93873 6.76463 -1.99452C6.76463 -2.06426 6.70884 -2.12005 6.62516 -2.12005C6.49963 -2.12005 6.48568 -2.05031 6.42989 -1.8411C6.22067 -1.01818 5.95567 -0.139477 5.38381 -0.139477C4.97933 -0.139477 4.95143 -0.502117 4.95143 -0.781071C4.95143 -1.10187 4.99328 -1.25529 5.1188 -1.79925C5.21644 -2.14795 5.28618 -2.45479 5.39776 -2.85928C5.91382 -4.95143 6.03935 -5.45355 6.03935 -5.53724C6.03935 -5.7325 5.88593 -5.88593 5.67671 -5.88593C5.23039 -5.88593 5.1188 -5.39776 5.09091 -5.23039Z' id='g0-97'/>
6+<path d='M3.22192 -9.33101C3.23587 -9.3868 3.26376 -9.47049 3.26376 -9.54022C3.26376 -9.6797 3.12428 -9.6797 3.09639 -9.6797C3.08244 -9.6797 2.58032 -9.63786 2.32927 -9.60996C2.09215 -9.59601 1.88294 -9.56812 1.63188 -9.55417C1.29714 -9.52628 1.1995 -9.51233 1.1995 -9.26127C1.1995 -9.12179 1.33898 -9.12179 1.47846 -9.12179C2.18979 -9.12179 2.18979 -8.99626 2.18979 -8.85679C2.18979 -8.75915 2.07821 -8.35467 2.02242 -8.10361L1.68767 -6.76463C1.54819 -6.20672 0.753176 -3.0406 0.697385 -2.78954C0.627646 -2.44085 0.627646 -2.20374 0.627646 -2.02242C0.627646 -0.599751 1.42267 0.139477 2.32927 0.139477C3.9472 0.139477 5.62092 -1.93873 5.62092 -3.96115C5.62092 -5.24433 4.89564 -6.15093 3.84956 -6.15093C3.12428 -6.15093 2.46874 -5.55118 2.20374 -5.27223L3.22192 -9.33101ZM2.34321 -0.139477C1.89689 -0.139477 1.40872 -0.474222 1.40872 -1.56214C1.40872 -2.02242 1.45056 -2.28742 1.70162 -3.26376C1.74346 -3.44508 1.96663 -4.33773 2.02242 -4.51905C2.05031 -4.63064 2.87323 -5.87198 3.82167 -5.87198C4.43537 -5.87198 4.71432 -5.25828 4.71432 -4.533C4.71432 -3.86351 4.32379 -2.28742 3.97509 -1.56214C3.6264 -0.808966 2.98481 -0.139477 2.34321 -0.139477Z' id='g0-98'/>
7+<path d='M5.45355 -5.24433C5.18854 -5.24433 5.06301 -5.24433 4.86775 -5.07696C4.78406 -5.00722 4.63064 -4.79801 4.63064 -4.57484C4.63064 -4.29589 4.83985 -4.12852 5.10486 -4.12852C5.4396 -4.12852 5.81619 -4.40747 5.81619 -4.96538C5.81619 -5.63487 5.1746 -6.15093 4.2122 -6.15093C2.38506 -6.15093 0.557908 -4.15641 0.557908 -2.17584C0.557908 -0.962391 1.31108 0.139477 2.73375 0.139477C4.63064 0.139477 5.83014 -1.33898 5.83014 -1.5203C5.83014 -1.60399 5.74645 -1.67372 5.69066 -1.67372C5.64882 -1.67372 5.63487 -1.65978 5.50934 -1.53425C4.61669 -0.348692 3.29166 -0.139477 2.76164 -0.139477C1.79925 -0.139477 1.4924 -0.976339 1.4924 -1.67372C1.4924 -2.16189 1.72951 -3.51482 2.23163 -4.46326C2.59427 -5.1188 3.34745 -5.87198 4.22615 -5.87198C4.40747 -5.87198 5.1746 -5.84408 5.45355 -5.24433Z' id='g0-99'/>
8+<path d='M5.56513 -3.22192H9.41469C9.60996 -3.22192 9.86102 -3.22192 9.86102 -3.47298C9.86102 -3.73798 9.62391 -3.73798 9.41469 -3.73798H5.56513V-7.58755C5.56513 -7.78281 5.56513 -8.03387 5.31407 -8.03387C5.04907 -8.03387 5.04907 -7.79676 5.04907 -7.58755V-3.73798H1.1995C1.00423 -3.73798 0.753176 -3.73798 0.753176 -3.48692C0.753176 -3.22192 0.990286 -3.22192 1.1995 -3.22192H5.04907V0.627646C5.04907 0.822914 5.04907 1.07397 5.30012 1.07397C5.56513 1.07397 5.56513 0.836862 5.56513 0.627646V-3.22192Z' id='g2-43'/>
9+<path d='M9.41469 -4.51905C9.60996 -4.51905 9.86102 -4.51905 9.86102 -4.77011C9.86102 -5.03512 9.62391 -5.03512 9.41469 -5.03512H1.1995C1.00423 -5.03512 0.753176 -5.03512 0.753176 -4.78406C0.753176 -4.51905 0.990286 -4.51905 1.1995 -4.51905H9.41469ZM9.41469 -1.92478C9.60996 -1.92478 9.86102 -1.92478 9.86102 -2.17584C9.86102 -2.44085 9.62391 -2.44085 9.41469 -2.44085H1.1995C1.00423 -2.44085 0.753176 -2.44085 0.753176 -2.18979C0.753176 -1.92478 0.990286 -1.92478 1.1995 -1.92478H9.41469Z' id='g2-61'/>
10+<path d='M1.23994 -0.751778L2.27486 -1.7574C3.79794 -3.10474 4.38374 -3.63196 4.38374 -4.6083C4.38374 -5.72132 3.50504 -6.50239 2.31391 -6.50239C1.21065 -6.50239 0.488167 -5.60416 0.488167 -4.73522C0.488167 -4.18847 0.976334 -4.18847 1.00562 -4.18847C1.1716 -4.18847 1.51332 -4.30564 1.51332 -4.70593C1.51332 -4.95978 1.33758 -5.21363 0.995861 -5.21363C0.917754 -5.21363 0.898228 -5.21363 0.868938 -5.20386C1.09349 -5.83848 1.62072 -6.19972 2.18699 -6.19972C3.07545 -6.19972 3.49528 -5.40889 3.49528 -4.6083C3.49528 -3.82723 3.00711 -3.05593 2.47013 -2.4506L0.595564 -0.361244C0.488167 -0.253847 0.488167 -0.23432 0.488167 0H4.11037L4.38374 -1.69882H4.13966C4.09084 -1.40592 4.0225 -0.976334 3.92486 -0.829884C3.85652 -0.751778 3.21214 -0.751778 2.99735 -0.751778H1.23994Z' id='g1-50'/>
11+</defs>
12+<g id='page1'>
13+<use x='56.4133' xlink:href='#g0-97' y='65.7534'/>
14+<use x='63.5824' xlink:href='#g1-50' y='60.6919'/>
15+<use x='72.0616' xlink:href='#g2-43' y='65.7534'/>
16+<use x='85.7832' xlink:href='#g0-98' y='65.7534'/>
17+<use x='91.5898' xlink:href='#g1-50' y='60.6919'/>
18+<use x='100.844' xlink:href='#g2-61' y='65.7534'/>
19+<use x='115.34' xlink:href='#g0-99' y='65.7534'/>
20+<use x='121.218' xlink:href='#g1-50' y='60.6919'/>
21+</g>
22+</svg>
_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svgnew file+43
@@ -0,0 +1,43 @@
1+<?xml version='1.0' encoding='UTF-8'?>
2+<!-- This file was generated by dvisvgm 2.1.3 -->
3+<svg height='28.689pt' version='1.1' viewBox='165.981 78.308 134.289 28.689' width='134.289pt' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
4+<defs>
5+<path d='M3.55666 -7.67123H6.26252C6.49963 -7.67123 6.65305 -7.67123 6.65305 -7.83861C6.65305 -8.01993 6.48568 -8.01993 6.22067 -8.01993H3.64035C3.73798 -8.36862 3.73798 -8.39651 3.82167 -8.74521C3.89141 -8.99626 4.01694 -9.48443 4.01694 -9.51233C4.01694 -9.63786 3.93325 -9.6797 3.82167 -9.6797C3.55666 -9.6797 2.45479 -9.56812 2.12005 -9.54022C2.00847 -9.52628 1.85504 -9.51233 1.85504 -9.24732C1.85504 -9.0939 1.99452 -9.0939 2.18979 -9.0939C2.85928 -9.0939 2.88717 -8.99626 2.88717 -8.85679C2.88717 -8.75915 2.76164 -8.29888 2.69191 -8.01993H1.91083C1.63188 -8.01993 1.47846 -8.01993 1.47846 -7.83861C1.47846 -7.67123 1.60399 -7.67123 1.86899 -7.67123H2.60822L0.822914 -0.557908C0.767123 -0.348692 0.767123 -0.320797 0.767123 -0.237111C0.767123 0.0697385 1.00423 0.153425 1.17161 0.153425C1.43661 0.153425 1.63188 -0.0418431 1.68767 -0.223163C1.71557 -0.292902 1.86899 -0.920548 1.95268 -1.26924L2.27347 -2.51059C2.31532 -2.7198 2.45479 -3.24981 2.49664 -3.45903C2.56638 -3.68219 2.66401 -4.11457 2.67796 -4.15641C2.78954 -4.39352 3.54271 -5.85803 4.93748 -5.85803C5.55118 -5.85803 5.69066 -5.35592 5.69066 -4.89564C5.69066 -4.03088 5.04907 -2.32927 4.79801 -1.68767C4.71432 -1.46451 4.64458 -1.26924 4.64458 -1.00423C4.64458 -0.278954 5.16065 0.153425 5.78829 0.153425C7.12727 0.153425 7.61544 -1.91083 7.61544 -1.99452C7.61544 -2.134 7.48991 -2.134 7.44807 -2.134C7.30859 -2.134 7.30859 -2.09215 7.23885 -1.88294C6.83437 -0.460274 6.20672 -0.153425 5.83014 -0.153425C5.56513 -0.153425 5.48144 -0.320797 5.48144 -0.613699C5.48144 -0.962391 5.63487 -1.35293 5.71856 -1.59004C5.95567 -2.20374 6.58331 -3.87746 6.58331 -4.65853C6.58331 -5.67671 5.94172 -6.16488 4.97933 -6.16488C4.54695 -6.16488 3.71009 -6.06725 2.91507 -5.10486L3.55666 -7.67123Z' id='g0-126'/>
6+<path d='M4.533 3.38929C4.533 3.34745 4.533 3.31955 4.29589 3.08244C2.90112 1.67372 2.12005 -0.627646 2.12005 -3.47298C2.12005 -6.17883 2.77559 -8.50809 4.39352 -10.1539C4.533 -10.2795 4.533 -10.3073 4.533 -10.3492C4.533 -10.4329 4.46326 -10.4608 4.40747 -10.4608C4.22615 -10.4608 3.08244 -9.45654 2.399 -8.08966C1.68767 -6.68095 1.36687 -5.18854 1.36687 -3.47298C1.36687 -2.23163 1.56214 -0.571856 2.28742 0.920548C3.11034 2.59427 4.25405 3.50087 4.40747 3.50087C4.46326 3.50087 4.533 3.47298 4.533 3.38929Z' id='g3-40'/>
7+<path d='M3.93325 -3.47298C3.93325 -4.533 3.79377 -6.26252 3.0127 -7.88045C2.18979 -9.55417 1.04608 -10.4608 0.892653 -10.4608C0.836862 -10.4608 0.767123 -10.4329 0.767123 -10.3492C0.767123 -10.3073 0.767123 -10.2795 1.00423 -10.0423C2.399 -8.63362 3.18007 -6.33225 3.18007 -3.48692C3.18007 -0.781071 2.52453 1.54819 0.9066 3.19402C0.767123 3.31955 0.767123 3.34745 0.767123 3.38929C0.767123 3.47298 0.836862 3.50087 0.892653 3.50087C1.07397 3.50087 2.21768 2.49664 2.90112 1.12976C3.61245 -0.292902 3.93325 -1.79925 3.93325 -3.47298Z' id='g3-41'/>
8+<path d='M9.41469 -4.51905C9.60996 -4.51905 9.86102 -4.51905 9.86102 -4.77011C9.86102 -5.03512 9.62391 -5.03512 9.41469 -5.03512H1.1995C1.00423 -5.03512 0.753176 -5.03512 0.753176 -4.78406C0.753176 -4.51905 0.990286 -4.51905 1.1995 -4.51905H9.41469ZM9.41469 -1.92478C9.60996 -1.92478 9.86102 -1.92478 9.86102 -2.17584C9.86102 -2.44085 9.62391 -2.44085 9.41469 -2.44085H1.1995C1.00423 -2.44085 0.753176 -2.44085 0.753176 -2.18979C0.753176 -1.92478 0.990286 -1.92478 1.1995 -1.92478H9.41469Z' id='g3-61'/>
9+<path d='M3.41719 -9.6797L1.59004 -7.78281L1.8132 -7.5736L3.40324 -9.01021L5.00722 -7.5736L5.23039 -7.78281L3.41719 -9.6797Z' id='g3-94'/>
10+<path d='M2.4269 -8.59178C2.4269 -8.95442 2.134 -9.27522 1.74346 -9.27522C1.38082 -9.27522 1.07397 -8.98232 1.07397 -8.60573C1.07397 -8.1873 1.40872 -7.92229 1.74346 -7.92229C2.17584 -7.92229 2.4269 -8.28493 2.4269 -8.59178ZM0.502117 -5.99751V-5.59303C1.39477 -5.59303 1.5203 -5.50934 1.5203 -4.8259V-1.03213C1.5203 -0.404483 1.36687 -0.404483 0.460274 -0.404483V0C0.850809 -0.0278954 1.5203 -0.0278954 1.92478 -0.0278954C2.07821 -0.0278954 2.88717 -0.0278954 3.36139 0V-0.404483C2.45479 -0.404483 2.399 -0.474222 2.399 -1.01818V-6.15093L0.502117 -5.99751Z' id='g3-105'/>
11+<path d='M3.80772 -3.24981C3.87746 -3.41719 3.87746 -3.44508 3.87746 -3.48692S3.87746 -3.55666 3.80772 -3.72403L1.36687 -10.14C1.28319 -10.3771 1.1995 -10.4608 1.04608 -10.4608S0.767123 -10.3352 0.767123 -10.1818C0.767123 -10.14 0.767123 -10.1121 0.836862 -9.95866L3.3056 -3.48692L0.836862 2.95691C0.767123 3.11034 0.767123 3.13823 0.767123 3.20797C0.767123 3.36139 0.892653 3.48692 1.04608 3.48692C1.2274 3.48692 1.28319 3.34745 1.33898 3.20797L3.80772 -3.24981Z' id='g1-105'/>
12+<path d='M2.21768 -9.95866C2.21768 -10.2097 2.21768 -10.4608 1.93873 -10.4608S1.65978 -10.2097 1.65978 -9.95866V2.98481C1.65978 3.23587 1.65978 3.48692 1.93873 3.48692S2.21768 3.23587 2.21768 2.98481V-9.95866Z' id='g1-106'/>
13+<path d='M6.55542 -9.34496C6.55542 -9.3589 6.61121 -9.54022 6.61121 -9.55417C6.61121 -9.6797 6.49963 -9.6797 6.45778 -9.6797C6.33225 -9.6797 6.31831 -9.60996 6.26252 -9.40075L3.96115 -0.167372C2.80349 -0.306849 2.37111 -0.892653 2.37111 -1.72951C2.37111 -2.03636 2.37111 -2.35716 3.02665 -4.08667C3.20797 -4.58879 3.27771 -4.77011 3.27771 -5.02117C3.27771 -5.64882 2.83138 -6.15093 2.17584 -6.15093C0.892653 -6.15093 0.376588 -4.12852 0.376588 -4.01694C0.376588 -3.96115 0.432379 -3.89141 0.530012 -3.89141C0.655542 -3.89141 0.669489 -3.9472 0.72528 -4.14247C1.06002 -5.35592 1.61793 -5.87198 2.134 -5.87198C2.25953 -5.87198 2.49664 -5.85803 2.49664 -5.41171C2.49664 -5.35592 2.49664 -5.04907 2.25953 -4.43537C1.50635 -2.45479 1.50635 -2.14795 1.50635 -1.82715C1.50635 -0.488169 2.62217 0.0278954 3.87746 0.125529C3.76588 0.557908 3.66824 1.00423 3.55666 1.43661C3.3335 2.27347 3.23587 2.66401 3.23587 2.7198C3.23587 2.84533 3.34745 2.84533 3.38929 2.84533C3.41719 2.84533 3.47298 2.84533 3.50087 2.78954C3.55666 2.73375 4.12852 0.390535 4.18431 0.139477C4.70037 0.139477 5.80224 0.139477 7.05753 -1.15766C7.51781 -1.65978 7.93624 -2.30137 8.17335 -2.90112C8.31283 -3.26376 8.64757 -4.50511 8.64757 -5.21644C8.64757 -6.0533 8.22914 -6.15093 8.08966 -6.15093C7.75492 -6.15093 7.44807 -5.81619 7.44807 -5.53724C7.44807 -5.36986 7.5457 -5.27223 7.60149 -5.21644C7.72702 -5.09091 8.10361 -4.71432 8.10361 -3.98904C8.10361 -3.48692 7.82466 -2.45479 6.932 -1.45056C5.7604 -0.139477 4.68643 -0.139477 4.268 -0.139477L6.55542 -9.34496Z' id='g2-32'/>
14+<path d='M2.56638 -0.669489C2.56638 -1.07397 2.23163 -1.35293 1.89689 -1.35293C1.4924 -1.35293 1.21345 -1.01818 1.21345 -0.683437C1.21345 -0.278954 1.54819 0 1.88294 0C2.28742 0 2.56638 -0.334745 2.56638 -0.669489Z' id='g2-58'/>
15+<path d='M6.33225 -4.65853C6.24857 -5.4396 5.7604 -6.3741 4.50511 -6.3741C2.53848 -6.3741 0.530012 -4.37958 0.530012 -2.16189C0.530012 -1.31108 1.11582 0.292902 3.0127 0.292902C6.30436 0.292902 7.71308 -4.50511 7.71308 -6.41594C7.71308 -8.42441 6.58331 -9.9726 4.79801 -9.9726C2.77559 -9.9726 2.17584 -8.20125 2.17584 -7.82466C2.17584 -7.69913 2.25953 -7.39228 2.65006 -7.39228C3.13823 -7.39228 3.34745 -7.83861 3.34745 -8.07572C3.34745 -8.50809 2.91507 -8.50809 2.73375 -8.50809C3.3056 -9.54022 4.36563 -9.63786 4.74222 -9.63786C5.96961 -9.63786 6.75068 -8.66152 6.75068 -7.09938C6.75068 -6.20672 6.48568 -5.1746 6.3462 -4.65853H6.33225ZM3.05455 -0.0836862C1.74346 -0.0836862 1.5203 -1.11582 1.5203 -1.70162C1.5203 -2.31532 1.91083 -3.75193 2.12005 -4.268C2.30137 -4.68643 3.09639 -6.09514 4.54695 -6.09514C5.81619 -6.09514 6.10909 -4.99328 6.10909 -4.2401C6.10909 -3.20797 5.20249 -0.0836862 3.05455 -0.0836862Z' id='g2-64'/>
16+<path d='M10.4329 -8.50809C10.5584 -8.98232 10.5863 -9.12179 11.5766 -9.12179C11.8276 -9.12179 11.9671 -9.12179 11.9671 -9.37285C11.9671 -9.52628 11.8416 -9.52628 11.7579 -9.52628C11.5068 -9.52628 11.2139 -9.49838 10.9489 -9.49838H9.30311C9.03811 -9.49838 8.74521 -9.52628 8.4802 -9.52628C8.38257 -9.52628 8.21519 -9.52628 8.21519 -9.26127C8.21519 -9.12179 8.31283 -9.12179 8.57783 -9.12179C9.41469 -9.12179 9.41469 -9.01021 9.41469 -8.85679C9.41469 -8.82889 9.41469 -8.74521 9.3589 -8.53599L8.50809 -5.16065H4.29589L5.13275 -8.50809C5.25828 -8.98232 5.28618 -9.12179 6.27646 -9.12179C6.52752 -9.12179 6.667 -9.12179 6.667 -9.37285C6.667 -9.52628 6.54147 -9.52628 6.45778 -9.52628C6.20672 -9.52628 5.91382 -9.49838 5.64882 -9.49838H4.00299C3.73798 -9.49838 3.44508 -9.52628 3.18007 -9.52628C3.08244 -9.52628 2.91507 -9.52628 2.91507 -9.26127C2.91507 -9.12179 3.0127 -9.12179 3.27771 -9.12179C4.11457 -9.12179 4.11457 -9.01021 4.11457 -8.85679C4.11457 -8.82889 4.11457 -8.74521 4.05878 -8.53599L2.17584 -1.03213C2.05031 -0.54396 2.02242 -0.404483 1.06002 -0.404483C0.739228 -0.404483 0.641594 -0.404483 0.641594 -0.139477C0.641594 0 0.795019 0 0.836862 0C1.08792 0 1.38082 -0.0278954 1.64583 -0.0278954H3.29166C3.55666 -0.0278954 3.84956 0 4.11457 0C4.22615 0 4.37958 0 4.37958 -0.265006C4.37958 -0.404483 4.25405 -0.404483 4.04483 -0.404483C3.19402 -0.404483 3.19402 -0.516065 3.19402 -0.655542C3.19402 -0.669489 3.19402 -0.767123 3.22192 -0.878705L4.18431 -4.75616H8.41046C8.17335 -3.83562 7.46202 -0.920548 7.43412 -0.836862C7.2807 -0.418431 7.05753 -0.418431 6.23462 -0.404483C6.06725 -0.404483 5.94172 -0.404483 5.94172 -0.139477C5.94172 0 6.09514 0 6.13699 0C6.38804 0 6.68095 -0.0278954 6.94595 -0.0278954H8.59178C8.85679 -0.0278954 9.14969 0 9.41469 0C9.52628 0 9.6797 0 9.6797 -0.265006C9.6797 -0.404483 9.55417 -0.404483 9.34496 -0.404483C8.49415 -0.404483 8.49415 -0.516065 8.49415 -0.655542C8.49415 -0.669489 8.49415 -0.767123 8.52204 -0.878705L10.4329 -8.50809Z' id='g2-72'/>
17+<path d='M2.80349 -5.60697H4.08667C4.35168 -5.60697 4.49116 -5.60697 4.49116 -5.85803C4.49116 -6.01146 4.40747 -6.01146 4.12852 -6.01146H2.90112L3.41719 -8.04782C3.47298 -8.24309 3.47298 -8.27098 3.47298 -8.36862C3.47298 -8.59178 3.29166 -8.71731 3.11034 -8.71731C2.99875 -8.71731 2.67796 -8.67547 2.56638 -8.22914L2.02242 -6.01146H0.711333C0.432379 -6.01146 0.306849 -6.01146 0.306849 -5.74645C0.306849 -5.60697 0.404483 -5.60697 0.669489 -5.60697H1.91083L0.990286 -1.92478C0.878705 -1.43661 0.836862 -1.29714 0.836862 -1.11582C0.836862 -0.460274 1.29714 0.139477 2.07821 0.139477C3.48692 0.139477 4.2401 -1.89689 4.2401 -1.99452C4.2401 -2.07821 4.18431 -2.12005 4.10062 -2.12005C4.07273 -2.12005 4.01694 -2.12005 3.98904 -2.06426C3.97509 -2.05031 3.96115 -2.03636 3.86351 -1.8132C3.57061 -1.11582 2.92902 -0.139477 2.12005 -0.139477C1.70162 -0.139477 1.67372 -0.488169 1.67372 -0.795019C1.67372 -0.808966 1.67372 -1.07397 1.71557 -1.24134L2.80349 -5.60697Z' id='g2-116'/>
18+</defs>
19+<g id='page1'>
20+<use x='165.981' xlink:href='#g3-105' y='97.4296'/>
21+<use x='169.775' xlink:href='#g0-126' y='97.4296'/>
22+<use x='180.972' xlink:href='#g2-64' y='87.9939'/>
23+<rect height='0.55789' width='12.8999' x='178.506' y='93.6637'/>
24+<use x='178.506' xlink:href='#g2-64' y='106.997'/>
25+<use x='186.474' xlink:href='#g2-116' y='106.997'/>
26+<use x='192.601' xlink:href='#g1-106' y='97.4296'/>
27+<use x='198.8' xlink:href='#g2-32' y='97.4296'/>
28+<use x='208.179' xlink:href='#g3-40' y='97.4296'/>
29+<use x='213.49' xlink:href='#g2-116' y='97.4296'/>
30+<use x='218.422' xlink:href='#g3-41' y='97.4296'/>
31+<use x='223.733' xlink:href='#g1-105' y='97.4296'/>
32+<use x='233.032' xlink:href='#g3-61' y='97.4296'/>
33+<use x='251.069' xlink:href='#g3-94' y='93.904'/>
34+<use x='247.528' xlink:href='#g2-72' y='97.4296'/>
35+<use x='259.921' xlink:href='#g1-106' y='97.4296'/>
36+<use x='266.12' xlink:href='#g2-32' y='97.4296'/>
37+<use x='275.499' xlink:href='#g3-40' y='97.4296'/>
38+<use x='280.81' xlink:href='#g2-116' y='97.4296'/>
39+<use x='285.742' xlink:href='#g3-41' y='97.4296'/>
40+<use x='291.053' xlink:href='#g1-105' y='97.4296'/>
41+<use x='296.477' xlink:href='#g2-58' y='97.4296'/>
42+</g>
43+</svg>
_sources/admin/installation-docker.rst.txt+2−2
@@ -39,7 +39,7 @@ Command line
3939
4040 docker run --rm -it searx/searx -h
4141
42−.. program-output:: ../dockerfiles/docker-entrypoint.sh -h
42+.. program-output:: ../dockerfiles/docker-entrypoint.sh help
4343
4444
4545Build the image
@@ -49,7 +49,7 @@ It's also possible to build searx from the embedded Dockerfile.
4949
5050.. code:: sh
5151
52− git clone https://github.com/asciimoo/searx.git
52+ git clone https://github.com/searx/searx.git
5353 cd searx
5454 make docker
5555
_sources/admin/installation-nginx.rst.txt+1−1
@@ -189,7 +189,7 @@ Started wiki`_ is always a good resource *to keep in the pocket*.
189189 }
190190
191191 location /searx/static {
192− /usr/local/searx/searx-src/searx/static;
192+ alias /usr/local/searx/searx-src/searx/static;
193193 }
194194
195195
_sources/admin/installation.rst.txt+1−1
@@ -36,7 +36,7 @@ and some maintenance tasks (alternatively you can create your own fork).
3636.. code:: bash
3737
3838 $ cd ~/Downloads
39− $ git clone https://github.com/asciimoo/searx searx
39+ $ git clone https://github.com/searx/searx searx
4040 $ cd searx
4141
4242**Install** :ref:`searx service <searx.sh>`
_sources/blog/lxcdev-202006.rst.txt+1−1
@@ -81,7 +81,7 @@ fork:
8181 .. code:: sh
8282
8383 $ cd ~/Downloads
84− $ git clone https://github.com/asciimoo/searx.git
84+ $ git clone https://github.com/searx/searx.git
8585 $ cd searx
8686
8787The :ref:`lxc-searx.env` consists of several images, see ``export
_sources/blog/python3.rst.txt+1−1
@@ -54,7 +54,7 @@ If you found bugs
5454Please open an issue on `GitHub`_. Make sure that you mention your Python
5555version in your issue, so we can investigate it properly.
5656
57−.. _GitHub: https://github.com/asciimoo/searx/issues
57+.. _GitHub: https://github.com/searx/searx/issues
5858
5959Acknowledgment
6060==============
_sources/dev/contribution_guide.rst.txt+1−1
@@ -182,4 +182,4 @@ needed git add, commit and push:
182182 cd gh-pages; git checkout gh-pages >/dev/null
183183 Switched to a new branch 'gh-pages'
184184 ...
185− doc available at --> https://asciimoo.github.io/searx
185+ doc available at --> https://searx.github.io/searx
_sources/dev/quickstart.rst.txt+1−1
@@ -25,7 +25,7 @@ searx-ve virtualenv and install the required packages using ``manage.sh``.
2525.. code:: sh
2626
2727 cd ~/myprojects
28− git clone https://github.com/asciimoo/searx.git
28+ git clone https://github.com/searx/searx.git
2929 cd searx
3030 python3 -m venv searx-ve
3131 . ./searx-ve/bin/activate
_static/basic.css+114−27
@@ -15,6 +15,12 @@ div.clearer {
1515 clear: both;
1616}
1717
18+div.section::after {
19+ display: block;
20+ content: '';
21+ clear: left;
22+}
23+
1824/* -- relbar ---------------------------------------------------------------- */
1925
2026div.related {
@@ -316,21 +322,27 @@ img.align-default, .figure.align-default {
316322div.sidebar {
317323 margin: 0 0 0.5em 1em;
318324 border: 1px solid #ddb;
319− padding: 7px 7px 0 7px;
325+ padding: 7px;
320326 background-color: #ffe;
321327 width: 40%;
322328 float: right;
329+ clear: right;
330+ overflow-x: auto;
323331}
324332
325333p.sidebar-title {
326334 font-weight: bold;
327335}
328336
337+div.admonition, div.topic, blockquote {
338+ clear: left;
339+}
340+
329341/* -- topics ---------------------------------------------------------------- */
330342
331343div.topic {
332344 border: 1px solid #ccc;
333− padding: 7px 7px 0 7px;
345+ padding: 7px;
334346 margin: 10px 0 10px 0;
335347}
336348
@@ -352,10 +364,6 @@ div.admonition dt {
352364 font-weight: bold;
353365}
354366
355−div.admonition dl {
356− margin-bottom: 0;
357−}
358−
359367p.admonition-title {
360368 margin: 0px 10px 5px 0px;
361369 font-weight: bold;
@@ -366,9 +374,28 @@ div.body p.centered {
366374 margin-top: 25px;
367375}
368376
377+/* -- content of sidebars/topics/admonitions -------------------------------- */
378+
379+div.sidebar > :last-child,
380+div.topic > :last-child,
381+div.admonition > :last-child {
382+ margin-bottom: 0;
383+}
384+
385+div.sidebar::after,
386+div.topic::after,
387+div.admonition::after,
388+blockquote::after {
389+ display: block;
390+ content: '';
391+ clear: both;
392+}
393+
369394/* -- tables ---------------------------------------------------------------- */
370395
371396table.docutils {
397+ margin-top: 10px;
398+ margin-bottom: 10px;
372399 border: 0;
373400 border-collapse: collapse;
374401}
@@ -416,13 +443,13 @@ table.citation td {
416443 border-bottom: none;
417444}
418445
419−th > p:first-child,
420−td > p:first-child {
446+th > :first-child,
447+td > :first-child {
421448 margin-top: 0px;
422449}
423450
424−th > p:last-child,
425−td > p:last-child {
451+th > :last-child,
452+td > :last-child {
426453 margin-bottom: 0px;
427454}
428455
@@ -468,6 +495,10 @@ table.field-list td, table.field-list th {
468495
469496/* -- hlist styles ---------------------------------------------------------- */
470497
498+table.hlist {
499+ margin: 1em 0;
500+}
501+
471502table.hlist td {
472503 vertical-align: top;
473504}
@@ -495,17 +526,37 @@ ol.upperroman {
495526 list-style: upper-roman;
496527}
497528
498−li > p:first-child {
529+:not(li) > ol > li:first-child > :first-child,
530+:not(li) > ul > li:first-child > :first-child {
499531 margin-top: 0px;
500532}
501533
502−li > p:last-child {
534+:not(li) > ol > li:last-child > :last-child,
535+:not(li) > ul > li:last-child > :last-child {
503536 margin-bottom: 0px;
504537}
505538
539+ol.simple ol p,
540+ol.simple ul p,
541+ul.simple ol p,
542+ul.simple ul p {
543+ margin-top: 0;
544+}
545+
546+ol.simple > li:not(:first-child) > p,
547+ul.simple > li:not(:first-child) > p {
548+ margin-top: 0;
549+}
550+
551+ol.simple p,
552+ul.simple p {
553+ margin-bottom: 0;
554+}
555+
506556dl.footnote > dt,
507557dl.citation > dt {
508558 float: left;
559+ margin-right: 0.5em;
509560}
510561
511562dl.footnote > dd,
@@ -546,7 +597,7 @@ dl {
546597 margin-bottom: 15px;
547598}
548599
549−dd > p:first-child {
600+dd > :first-child {
550601 margin-top: 0px;
551602}
552603
@@ -560,6 +611,11 @@ dd {
560611 margin-left: 30px;
561612}
562613
614+dl > dd:last-child,
615+dl > dd:last-child > :last-child {
616+ margin-bottom: 0;
617+}
618+
563619dt:target, span.highlighted {
564620 background-color: #fbe54e;
565621}
@@ -637,6 +693,10 @@ pre {
637693 overflow-y: hidden; /* fixes display issues on Chrome browsers */
638694}
639695
696+pre, div[class*="highlight-"] {
697+ clear: both;
698+}
699+
640700span.pre {
641701 -moz-hyphens: none;
642702 -ms-hyphens: none;
@@ -644,22 +704,57 @@ span.pre {
644704 hyphens: none;
645705}
646706
707+div[class*="highlight-"] {
708+ margin: 1em 0;
709+}
710+
647711td.linenos pre {
648− padding: 5px 0px;
649712 border: 0;
650713 background-color: transparent;
651714 color: #aaa;
652715}
653716
654717table.highlighttable {
655− margin-left: 0.5em;
718+ display: block;
719+}
720+
721+table.highlighttable tbody {
722+ display: block;
723+}
724+
725+table.highlighttable tr {
726+ display: flex;
656727}
657728
658729table.highlighttable td {
659− padding: 0 0.5em 0 0.5em;
730+ margin: 0;
731+ padding: 0;
732+}
733+
734+table.highlighttable td.linenos {
735+ padding-right: 0.5em;
736+}
737+
738+table.highlighttable td.code {
739+ flex: 1;
740+ overflow: hidden;
741+}
742+
743+.highlight .hll {
744+ display: block;
745+}
746+
747+div.highlight pre,
748+table.highlighttable pre {
749+ margin: 0;
750+}
751+
752+div.code-block-caption + div {
753+ margin-top: 0;
660754}
661755
662756div.code-block-caption {
757+ margin-top: 1em;
663758 padding: 2px 5px;
664759 font-size: small;
665760}
@@ -668,10 +763,7 @@ div.code-block-caption code {
668763 background-color: transparent;
669764}
670765
671−div.code-block-caption + div > div.highlight > pre {
672− margin-top: 0;
673−}
674−
766+table.highlighttable td.linenos,
675767div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */
676768 user-select: none;
677769}
@@ -685,11 +777,7 @@ div.code-block-caption span.caption-text {
685777}
686778
687779div.literal-block-wrapper {
688− padding: 1em 1em 0;
689−}
690−
691−div.literal-block-wrapper div.highlight {
692− margin: 0;
780+ margin: 1em 0;
693781}
694782
695783code.descname {
@@ -740,8 +828,7 @@ span.eqno {
740828}
741829
742830span.eqno a.headerlink {
743− position: relative;
744− left: 0px;
831+ position: absolute;
745832 z-index: 1;
746833}
747834
_static/jquery-3.4.1.js → _static/jquery-3.5.1.jsrenamed+756−482
@@ -1,5 +1,5 @@
11/*!
2− * jQuery JavaScript Library v3.4.1
2+ * jQuery JavaScript Library v3.5.1
33 * https://jquery.com/
44 *
55 * Includes Sizzle.js
@@ -9,7 +9,7 @@
99 * Released under the MIT license
1010 * https://jquery.org/license
1111 *
12− * Date: 2019-05-01T21:04Z
12+ * Date: 2020-05-04T22:49Z
1313 */
1414( function( global, factory ) {
1515
@@ -47,13 +47,16 @@
4747
4848var arr = [];
4949
50−var document = window.document;
51−
5250var getProto = Object.getPrototypeOf;
5351
5452var slice = arr.slice;
5553
56−var concat = arr.concat;
54+var flat = arr.flat ? function( array ) {
55+ return arr.flat.call( array );
56+} : function( array ) {
57+ return arr.concat.apply( [], array );
58+};
59+
5760
5861var push = arr.push;
5962
@@ -86,6 +89,8 @@ var isWindow = function isWindow( obj ) {
8689 };
8790
8891
92+var document = window.document;
93+
8994
9095
9196 var preservedScriptAttributes = {
@@ -142,7 +147,7 @@ function toType( obj ) {
142147
143148
144149var
145− version = "3.4.1",
150+ version = "3.5.1",
146151
147152 // Define a local copy of jQuery
148153 jQuery = function( selector, context ) {
@@ -150,11 +155,7 @@ var
150155 // The jQuery object is actually just the init constructor 'enhanced'
151156 // Need init if jQuery is called (just allow error to be thrown if not included)
152157 return new jQuery.fn.init( selector, context );
153− },
154−
155− // Support: Android <=4.0 only
156− // Make sure we trim BOM and NBSP
157− rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
158+ };
158159
159160jQuery.fn = jQuery.prototype = {
160161
@@ -220,6 +221,18 @@ jQuery.fn = jQuery.prototype = {
220221 return this.eq( -1 );
221222 },
222223
224+ even: function() {
225+ return this.pushStack( jQuery.grep( this, function( _elem, i ) {
226+ return ( i + 1 ) % 2;
227+ } ) );
228+ },
229+
230+ odd: function() {
231+ return this.pushStack( jQuery.grep( this, function( _elem, i ) {
232+ return i % 2;
233+ } ) );
234+ },
235+
223236 eq: function( i ) {
224237 var len = this.length,
225238 j = +i + ( i < 0 ? len : 0 );
@@ -353,9 +366,10 @@ jQuery.extend( {
353366 return true;
354367 },
355368
356− // Evaluates a script in a global context
357− globalEval: function( code, options ) {
358− DOMEval( code, { nonce: options && options.nonce } );
369+ // Evaluates a script in a provided context; falls back to the global one
370+ // if not specified.
371+ globalEval: function( code, options, doc ) {
372+ DOMEval( code, { nonce: options && options.nonce }, doc );
359373 },
360374
361375 each: function( obj, callback ) {
@@ -379,13 +393,6 @@ jQuery.extend( {
379393 return obj;
380394 },
381395
382− // Support: Android <=4.0 only
383− trim: function( text ) {
384− return text == null ?
385− "" :
386− ( text + "" ).replace( rtrim, "" );
387− },
388−
389396 // results is for internal usage only
390397 makeArray: function( arr, results ) {
391398 var ret = results || [];
@@ -472,7 +479,7 @@ jQuery.extend( {
472479 }
473480
474481 // Flatten any nested arrays
475− return concat.apply( [], ret );
482+ return flat( ret );
476483 },
477484
478485 // A global GUID counter for objects
@@ -489,7 +496,7 @@ if ( typeof Symbol === "function" ) {
489496
490497// Populate the class2type map
491498jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
492−function( i, name ) {
499+function( _i, name ) {
493500 class2type[ "[object " + name + "]" ] = name.toLowerCase();
494501} );
495502
@@ -511,17 +518,16 @@ function isArrayLike( obj ) {
511518}
512519var Sizzle =
513520/*!
514− * Sizzle CSS Selector Engine v2.3.4
521+ * Sizzle CSS Selector Engine v2.3.5
515522 * https://sizzlejs.com/
516523 *
517524 * Copyright JS Foundation and other contributors
518525 * Released under the MIT license
519526 * https://js.foundation/
520527 *
521− * Date: 2019-04-08
528+ * Date: 2020-03-14
522529 */
523−(function( window ) {
524−
530+( function( window ) {
525531var i,
526532 support,
527533 Expr,
@@ -561,59 +567,70 @@ var i,
561567 },
562568
563569 // Instance methods
564− hasOwn = ({}).hasOwnProperty,
570+ hasOwn = ( {} ).hasOwnProperty,
565571 arr = [],
566572 pop = arr.pop,
567− push_native = arr.push,
573+ pushNative = arr.push,
568574 push = arr.push,
569575 slice = arr.slice,
576+
570577 // Use a stripped-down indexOf as it's faster than native
571578 // https://jsperf.com/thor-indexof-vs-for/5
572579 indexOf = function( list, elem ) {
573580 var i = 0,
574581 len = list.length;
575582 for ( ; i < len; i++ ) {
576− if ( list[i] === elem ) {
583+ if ( list[ i ] === elem ) {
577584 return i;
578585 }
579586 }
580587 return -1;
581588 },
582589
583− booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
590+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
591+ "ismap|loop|multiple|open|readonly|required|scoped",
584592
585593 // Regular expressions
586594
587595 // http://www.w3.org/TR/css3-selectors/#whitespace
588596 whitespace = "[\\x20\\t\\r\\n\\f]",
589597
590− // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
591− identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
598+ // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
599+ identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
600+ "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
592601
593602 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
594603 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
604+
595605 // Operator (capture 2)
596606 "*([*^$|!~]?=)" + whitespace +
597− // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
598− "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
599− "*\\]",
607+
608+ // "Attribute values must be CSS identifiers [capture 5]
609+ // or strings [capture 3 or capture 4]"
610+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
611+ whitespace + "*\\]",
600612
601613 pseudos = ":(" + identifier + ")(?:\\((" +
614+
602615 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
603616 // 1. quoted (capture 3; capture 4 or capture 5)
604617 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
618+
605619 // 2. simple (capture 6)
606620 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
621+
607622 // 3. anything else (capture 2)
608623 ".*" +
609624 ")\\)|)",
610625
611626 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
612627 rwhitespace = new RegExp( whitespace + "+", "g" ),
613− rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
628+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
629+ whitespace + "+$", "g" ),
614630
615631 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
616− rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
632+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
633+ "*" ),
617634 rdescend = new RegExp( whitespace + "|>" ),
618635
619636 rpseudo = new RegExp( pseudos ),
@@ -625,14 +642,16 @@ var i,
625642 "TAG": new RegExp( "^(" + identifier + "|[*])" ),
626643 "ATTR": new RegExp( "^" + attributes ),
627644 "PSEUDO": new RegExp( "^" + pseudos ),
628− "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
629− "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
630− "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
645+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
646+ whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
647+ whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
631648 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
649+
632650 // For use in libraries implementing .is()
633651 // We use this for POS matching in `select`
634− "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
635− whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
652+ "needsContext": new RegExp( "^" + whitespace +
653+ "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
654+ "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
636655 },
637656
638657 rhtml = /HTML$/i,
@@ -648,18 +667,21 @@ var i,
648667
649668 // CSS escapes
650669 // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
651− runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
652− funescape = function( _, escaped, escapedWhitespace ) {
653− var high = "0x" + escaped - 0x10000;
654− // NaN means non-codepoint
655− // Support: Firefox<24
656− // Workaround erroneous numeric interpretation of +"0x"
657− return high !== high || escapedWhitespace ?
658− escaped :
670+ runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
671+ funescape = function( escape, nonHex ) {
672+ var high = "0x" + escape.slice( 1 ) - 0x10000;
673+
674+ return nonHex ?
675+
676+ // Strip the backslash prefix from a non-hex escape sequence
677+ nonHex :
678+
679+ // Replace a hexadecimal escape sequence with the encoded Unicode code point
680+ // Support: IE <=11+
681+ // For values outside the Basic Multilingual Plane (BMP), manually construct a
682+ // surrogate pair
659683 high < 0 ?
660− // BMP codepoint
661684 String.fromCharCode( high + 0x10000 ) :
662− // Supplemental Plane codepoint (surrogate pair)
663685 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
664686 },
665687
@@ -675,7 +697,8 @@ var i,
675697 }
676698
677699 // Control characters and (dependent upon position) numbers get escaped as code points
678− return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
700+ return ch.slice( 0, -1 ) + "\\" +
701+ ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
679702 }
680703
681704 // Other potentially-special ASCII characters get backslash-escaped
@@ -700,18 +723,20 @@ var i,
700723// Optimize for push.apply( _, NodeList )
701724try {
702725 push.apply(
703− (arr = slice.call( preferredDoc.childNodes )),
726+ ( arr = slice.call( preferredDoc.childNodes ) ),
704727 preferredDoc.childNodes
705728 );
729+
706730 // Support: Android<4.0
707731 // Detect silently failing push.apply
732+ // eslint-disable-next-line no-unused-expressions
708733 arr[ preferredDoc.childNodes.length ].nodeType;
709734} catch ( e ) {
710735 push = { apply: arr.length ?
711736
712737 // Leverage slice if possible
713738 function( target, els ) {
714− push_native.apply( target, slice.call(els) );
739+ pushNative.apply( target, slice.call( els ) );
715740 } :
716741
717742 // Support: IE<9
@@ -719,8 +744,9 @@ try {
719744 function( target, els ) {
720745 var j = target.length,
721746 i = 0;
747+
722748 // Can't trust NodeList.length
723− while ( (target[j++] = els[i++]) ) {}
749+ while ( ( target[ j++ ] = els[ i++ ] ) ) {}
724750 target.length = j - 1;
725751 }
726752 };
@@ -744,24 +770,21 @@ function Sizzle( selector, context, results, seed ) {
744770
745771 // Try to shortcut find operations (as opposed to filters) in HTML documents
746772 if ( !seed ) {
747−
748− if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
749− setDocument( context );
750− }
773+ setDocument( context );
751774 context = context || document;
752775
753776 if ( documentIsHTML ) {
754777
755778 // If the selector is sufficiently simple, try using a "get*By*" DOM method
756779 // (excepting DocumentFragment context, where the methods don't exist)
757− if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
780+ if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
758781
759782 // ID selector
760− if ( (m = match[1]) ) {
783+ if ( ( m = match[ 1 ] ) ) {
761784
762785 // Document context
763786 if ( nodeType === 9 ) {
764− if ( (elem = context.getElementById( m )) ) {
787+ if ( ( elem = context.getElementById( m ) ) ) {
765788
766789 // Support: IE, Opera, Webkit
767790 // TODO: identify versions
@@ -780,7 +803,7 @@ function Sizzle( selector, context, results, seed ) {
780803 // Support: IE, Opera, Webkit
781804 // TODO: identify versions
782805 // getElementById can match elements by name instead of ID
783− if ( newContext && (elem = newContext.getElementById( m )) &&
806+ if ( newContext && ( elem = newContext.getElementById( m ) ) &&
784807 contains( context, elem ) &&
785808 elem.id === m ) {
786809
@@ -790,12 +813,12 @@ function Sizzle( selector, context, results, seed ) {
790813 }
791814
792815 // Type selector
793− } else if ( match[2] ) {
816+ } else if ( match[ 2 ] ) {
794817 push.apply( results, context.getElementsByTagName( selector ) );
795818 return results;
796819
797820 // Class selector
798− } else if ( (m = match[3]) && support.getElementsByClassName &&
821+ } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
799822 context.getElementsByClassName ) {
800823
801824 push.apply( results, context.getElementsByClassName( m ) );
@@ -806,11 +829,11 @@ function Sizzle( selector, context, results, seed ) {
806829 // Take advantage of querySelectorAll
807830 if ( support.qsa &&
808831 !nonnativeSelectorCache[ selector + " " ] &&
809− (!rbuggyQSA || !rbuggyQSA.test( selector )) &&
832+ ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
810833
811834 // Support: IE 8 only
812835 // Exclude object elements
813− (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
836+ ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
814837
815838 newSelector = selector;
816839 newContext = context;
@@ -819,27 +842,36 @@ function Sizzle( selector, context, results, seed ) {
819842 // descendant combinators, which is not what we want.
820843 // In such cases, we work around the behavior by prefixing every selector in the
821844 // list with an ID selector referencing the scope context.
845+ // The technique has to be used as well when a leading combinator is used
846+ // as such selectors are not recognized by querySelectorAll.
822847 // Thanks to Andrew Dupont for this technique.
823− if ( nodeType === 1 && rdescend.test( selector ) ) {
848+ if ( nodeType === 1 &&
849+ ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
824850
825− // Capture the context ID, setting it first if necessary
826− if ( (nid = context.getAttribute( "id" )) ) {
827− nid = nid.replace( rcssescape, fcssescape );
828− } else {
829− context.setAttribute( "id", (nid = expando) );
851+ // Expand context for sibling selectors
852+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
853+ context;
854+
855+ // We can use :scope instead of the ID hack if the browser
856+ // supports it & if we're not changing the context.
857+ if ( newContext !== context || !support.scope ) {
858+
859+ // Capture the context ID, setting it first if necessary
860+ if ( ( nid = context.getAttribute( "id" ) ) ) {
861+ nid = nid.replace( rcssescape, fcssescape );
862+ } else {
863+ context.setAttribute( "id", ( nid = expando ) );
864+ }
830865 }
831866
832867 // Prefix every selector in the list
833868 groups = tokenize( selector );
834869 i = groups.length;
835870 while ( i-- ) {
836− groups[i] = "#" + nid + " " + toSelector( groups[i] );
871+ groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
872+ toSelector( groups[ i ] );
837873 }
838874 newSelector = groups.join( "," );
839−
840− // Expand context for sibling selectors
841− newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
842− context;
843875 }
844876
845877 try {
@@ -872,12 +904,14 @@ function createCache() {
872904 var keys = [];
873905
874906 function cache( key, value ) {
907+
875908 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
876909 if ( keys.push( key + " " ) > Expr.cacheLength ) {
910+
877911 // Only keep the most recent entries
878912 delete cache[ keys.shift() ];
879913 }
880− return (cache[ key + " " ] = value);
914+ return ( cache[ key + " " ] = value );
881915 }
882916 return cache;
883917}
@@ -896,17 +930,19 @@ function markFunction( fn ) {
896930 * @param {Function} fn Passed the created element and returns a boolean result
897931 */
898932function assert( fn ) {
899− var el = document.createElement("fieldset");
933+ var el = document.createElement( "fieldset" );
900934
901935 try {
902936 return !!fn( el );
903− } catch (e) {
937+ } catch ( e ) {
904938 return false;
905939 } finally {
940+
906941 // Remove from its parent by default
907942 if ( el.parentNode ) {
908943 el.parentNode.removeChild( el );
909944 }
945+
910946 // release memory in IE
911947 el = null;
912948 }
@@ -918,11 +954,11 @@ function assert( fn ) {
918954 * @param {Function} handler The method that will be applied
919955 */
920956function addHandle( attrs, handler ) {
921− var arr = attrs.split("|"),
957+ var arr = attrs.split( "|" ),
922958 i = arr.length;
923959
924960 while ( i-- ) {
925− Expr.attrHandle[ arr[i] ] = handler;
961+ Expr.attrHandle[ arr[ i ] ] = handler;
926962 }
927963}
928964
@@ -944,7 +980,7 @@ function siblingCheck( a, b ) {
944980
945981 // Check if b follows a
946982 if ( cur ) {
947− while ( (cur = cur.nextSibling) ) {
983+ while ( ( cur = cur.nextSibling ) ) {
948984 if ( cur === b ) {
949985 return -1;
950986 }
@@ -972,7 +1008,7 @@ function createInputPseudo( type ) {
9721008function createButtonPseudo( type ) {
9731009 return function( elem ) {
9741010 var name = elem.nodeName.toLowerCase();
975− return (name === "input" || name === "button") && elem.type === type;
1011+ return ( name === "input" || name === "button" ) && elem.type === type;
9761012 };
9771013}
9781014
@@ -1015,7 +1051,7 @@ function createDisabledPseudo( disabled ) {
10151051 // Where there is no isDisabled, check manually
10161052 /* jshint -W018 */
10171053 elem.isDisabled !== !disabled &&
1018− inDisabledFieldset( elem ) === disabled;
1054+ inDisabledFieldset( elem ) === disabled;
10191055 }
10201056
10211057 return elem.disabled === disabled;
@@ -1037,21 +1073,21 @@ function createDisabledPseudo( disabled ) {
10371073 * @param {Function} fn
10381074 */
10391075function createPositionalPseudo( fn ) {
1040− return markFunction(function( argument ) {
1076+ return markFunction( function( argument ) {
10411077 argument = +argument;
1042− return markFunction(function( seed, matches ) {
1078+ return markFunction( function( seed, matches ) {
10431079 var j,
10441080 matchIndexes = fn( [], seed.length, argument ),
10451081 i = matchIndexes.length;
10461082
10471083 // Match elements found at the specified indexes
10481084 while ( i-- ) {
1049− if ( seed[ (j = matchIndexes[i]) ] ) {
1050− seed[j] = !(matches[j] = seed[j]);
1085+ if ( seed[ ( j = matchIndexes[ i ] ) ] ) {
1086+ seed[ j ] = !( matches[ j ] = seed[ j ] );
10511087 }
10521088 }
1053− });
1054− });
1089+ } );
1090+ } );
10551091}
10561092
10571093/**
@@ -1073,7 +1109,7 @@ support = Sizzle.support = {};
10731109 */
10741110isXML = Sizzle.isXML = function( elem ) {
10751111 var namespace = elem.namespaceURI,
1076− docElem = (elem.ownerDocument || elem).documentElement;
1112+ docElem = ( elem.ownerDocument || elem ).documentElement;
10771113
10781114 // Support: IE <=8
10791115 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
@@ -1091,7 +1127,11 @@ setDocument = Sizzle.setDocument = function( node ) {
10911127 doc = node ? node.ownerDocument || node : preferredDoc;
10921128
10931129 // Return early if doc is invalid or already selected
1094− if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
1130+ // Support: IE 11+, Edge 17 - 18+
1131+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1132+ // two documents; shallow comparisons work.
1133+ // eslint-disable-next-line eqeqeq
1134+ if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {
10951135 return document;
10961136 }
10971137
@@ -1100,10 +1140,14 @@ setDocument = Sizzle.setDocument = function( node ) {
11001140 docElem = document.documentElement;
11011141 documentIsHTML = !isXML( document );
11021142
1103− // Support: IE 9-11, Edge
1143+ // Support: IE 9 - 11+, Edge 12 - 18+
11041144 // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
1105− if ( preferredDoc !== document &&
1106− (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
1145+ // Support: IE 11+, Edge 17 - 18+
1146+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1147+ // two documents; shallow comparisons work.
1148+ // eslint-disable-next-line eqeqeq
1149+ if ( preferredDoc != document &&
1150+ ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
11071151
11081152 // Support: IE 11, Edge
11091153 if ( subWindow.addEventListener ) {
@@ -1115,25 +1159,36 @@ setDocument = Sizzle.setDocument = function( node ) {
11151159 }
11161160 }
11171161
1162+ // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,
1163+ // Safari 4 - 5 only, Opera <=11.6 - 12.x only
1164+ // IE/Edge & older browsers don't support the :scope pseudo-class.
1165+ // Support: Safari 6.0 only
1166+ // Safari 6.0 supports :scope but it's an alias of :root there.
1167+ support.scope = assert( function( el ) {
1168+ docElem.appendChild( el ).appendChild( document.createElement( "div" ) );
1169+ return typeof el.querySelectorAll !== "undefined" &&
1170+ !el.querySelectorAll( ":scope fieldset div" ).length;
1171+ } );
1172+
11181173 /* Attributes
11191174 ---------------------------------------------------------------------- */
11201175
11211176 // Support: IE<8
11221177 // Verify that getAttribute really returns attributes and not properties
11231178 // (excepting IE8 booleans)
1124− support.attributes = assert(function( el ) {
1179+ support.attributes = assert( function( el ) {
11251180 el.className = "i";
1126− return !el.getAttribute("className");
1127− });
1181+ return !el.getAttribute( "className" );
1182+ } );
11281183
11291184 /* getElement(s)By*
11301185 ---------------------------------------------------------------------- */
11311186
11321187 // Check if getElementsByTagName("*") returns only elements
1133− support.getElementsByTagName = assert(function( el ) {
1134− el.appendChild( document.createComment("") );
1135− return !el.getElementsByTagName("*").length;
1136− });
1188+ support.getElementsByTagName = assert( function( el ) {
1189+ el.appendChild( document.createComment( "" ) );
1190+ return !el.getElementsByTagName( "*" ).length;
1191+ } );
11371192
11381193 // Support: IE<9
11391194 support.getElementsByClassName = rnative.test( document.getElementsByClassName );
@@ -1142,38 +1197,38 @@ setDocument = Sizzle.setDocument = function( node ) {
11421197 // Check if getElementById returns elements by name
11431198 // The broken getElementById methods don't pick up programmatically-set names,
11441199 // so use a roundabout getElementsByName test
1145− support.getById = assert(function( el ) {
1200+ support.getById = assert( function( el ) {
11461201 docElem.appendChild( el ).id = expando;
11471202 return !document.getElementsByName || !document.getElementsByName( expando ).length;
1148− });
1203+ } );
11491204
11501205 // ID filter and find
11511206 if ( support.getById ) {
1152− Expr.filter["ID"] = function( id ) {
1207+ Expr.filter[ "ID" ] = function( id ) {
11531208 var attrId = id.replace( runescape, funescape );
11541209 return function( elem ) {
1155− return elem.getAttribute("id") === attrId;
1210+ return elem.getAttribute( "id" ) === attrId;
11561211 };
11571212 };
1158− Expr.find["ID"] = function( id, context ) {
1213+ Expr.find[ "ID" ] = function( id, context ) {
11591214 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
11601215 var elem = context.getElementById( id );
11611216 return elem ? [ elem ] : [];
11621217 }
11631218 };
11641219 } else {
1165− Expr.filter["ID"] = function( id ) {
1220+ Expr.filter[ "ID" ] = function( id ) {
11661221 var attrId = id.replace( runescape, funescape );
11671222 return function( elem ) {
11681223 var node = typeof elem.getAttributeNode !== "undefined" &&
1169− elem.getAttributeNode("id");
1224+ elem.getAttributeNode( "id" );
11701225 return node && node.value === attrId;
11711226 };
11721227 };
11731228
11741229 // Support: IE 6 - 7 only
11751230 // getElementById is not reliable as a find shortcut
1176− Expr.find["ID"] = function( id, context ) {
1231+ Expr.find[ "ID" ] = function( id, context ) {
11771232 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
11781233 var node, i, elems,
11791234 elem = context.getElementById( id );
@@ -1181,7 +1236,7 @@ setDocument = Sizzle.setDocument = function( node ) {
11811236 if ( elem ) {
11821237
11831238 // Verify the id attribute
1184− node = elem.getAttributeNode("id");
1239+ node = elem.getAttributeNode( "id" );
11851240 if ( node && node.value === id ) {
11861241 return [ elem ];
11871242 }
@@ -1189,8 +1244,8 @@ setDocument = Sizzle.setDocument = function( node ) {
11891244 // Fall back on getElementsByName
11901245 elems = context.getElementsByName( id );
11911246 i = 0;
1192− while ( (elem = elems[i++]) ) {
1193− node = elem.getAttributeNode("id");
1247+ while ( ( elem = elems[ i++ ] ) ) {
1248+ node = elem.getAttributeNode( "id" );
11941249 if ( node && node.value === id ) {
11951250 return [ elem ];
11961251 }
@@ -1203,7 +1258,7 @@ setDocument = Sizzle.setDocument = function( node ) {
12031258 }
12041259
12051260 // Tag
1206− Expr.find["TAG"] = support.getElementsByTagName ?
1261+ Expr.find[ "TAG" ] = support.getElementsByTagName ?
12071262 function( tag, context ) {
12081263 if ( typeof context.getElementsByTagName !== "undefined" ) {
12091264 return context.getElementsByTagName( tag );
@@ -1218,12 +1273,13 @@ setDocument = Sizzle.setDocument = function( node ) {
12181273 var elem,
12191274 tmp = [],
12201275 i = 0,
1276+
12211277 // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
12221278 results = context.getElementsByTagName( tag );
12231279
12241280 // Filter out possible comments
12251281 if ( tag === "*" ) {
1226− while ( (elem = results[i++]) ) {
1282+ while ( ( elem = results[ i++ ] ) ) {
12271283 if ( elem.nodeType === 1 ) {
12281284 tmp.push( elem );
12291285 }
@@ -1235,7 +1291,7 @@ setDocument = Sizzle.setDocument = function( node ) {
12351291 };
12361292
12371293 // Class
1238− Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
1294+ Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) {
12391295 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
12401296 return context.getElementsByClassName( className );
12411297 }
@@ -1256,10 +1312,14 @@ setDocument = Sizzle.setDocument = function( node ) {
12561312 // See https://bugs.jquery.com/ticket/13378
12571313 rbuggyQSA = [];
12581314
1259− if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
1315+ if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {
1316+
12601317 // Build QSA regex
12611318 // Regex strategy adopted from Diego Perini
1262− assert(function( el ) {
1319+ assert( function( el ) {
1320+
1321+ var input;
1322+
12631323 // Select is set to empty string on purpose
12641324 // This is to test IE's treatment of not explicitly
12651325 // setting a boolean content attribute,
@@ -1273,78 +1333,98 @@ setDocument = Sizzle.setDocument = function( node ) {
12731333 // Nothing should be selected when empty strings follow ^= or $= or *=
12741334 // The test attribute must be unknown in Opera but "safe" for WinRT
12751335 // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1276− if ( el.querySelectorAll("[msallowcapture^='']").length ) {
1336+ if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
12771337 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
12781338 }
12791339
12801340 // Support: IE8
12811341 // Boolean attributes and "value" are not treated correctly
1282− if ( !el.querySelectorAll("[selected]").length ) {
1342+ if ( !el.querySelectorAll( "[selected]" ).length ) {
12831343 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
12841344 }
12851345
12861346 // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
12871347 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
1288− rbuggyQSA.push("~=");
1348+ rbuggyQSA.push( "~=" );
1349+ }
1350+
1351+ // Support: IE 11+, Edge 15 - 18+
1352+ // IE 11/Edge don't find elements on a `[name='']` query in some cases.
1353+ // Adding a temporary attribute to the document before the selection works
1354+ // around the issue.
1355+ // Interestingly, IE 10 & older don't seem to have the issue.
1356+ input = document.createElement( "input" );
1357+ input.setAttribute( "name", "" );
1358+ el.appendChild( input );
1359+ if ( !el.querySelectorAll( "[name='']" ).length ) {
1360+ rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
1361+ whitespace + "*(?:''|\"\")" );
12891362 }
12901363
12911364 // Webkit/Opera - :checked should return selected option elements
12921365 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
12931366 // IE8 throws error here and will not see later tests
1294− if ( !el.querySelectorAll(":checked").length ) {
1295− rbuggyQSA.push(":checked");
1367+ if ( !el.querySelectorAll( ":checked" ).length ) {
1368+ rbuggyQSA.push( ":checked" );
12961369 }
12971370
12981371 // Support: Safari 8+, iOS 8+
12991372 // https://bugs.webkit.org/show_bug.cgi?id=136851
13001373 // In-page `selector#id sibling-combinator selector` fails
13011374 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
1302− rbuggyQSA.push(".#.+[+~]");
1375+ rbuggyQSA.push( ".#.+[+~]" );
13031376 }
1304− });
13051377
1306− assert(function( el ) {
1378+ // Support: Firefox <=3.6 - 5 only
1379+ // Old Firefox doesn't throw on a badly-escaped identifier.
1380+ el.querySelectorAll( "\\\f" );
1381+ rbuggyQSA.push( "[\\r\\n\\f]" );
1382+ } );
1383+
1384+ assert( function( el ) {
13071385 el.innerHTML = "<a href='' disabled='disabled'></a>" +
13081386 "<select disabled='disabled'><option/></select>";
13091387
13101388 // Support: Windows 8 Native Apps
13111389 // The type and name attributes are restricted during .innerHTML assignment
1312− var input = document.createElement("input");
1390+ var input = document.createElement( "input" );
13131391 input.setAttribute( "type", "hidden" );
13141392 el.appendChild( input ).setAttribute( "name", "D" );
13151393
13161394 // Support: IE8
13171395 // Enforce case-sensitivity of name attribute
1318− if ( el.querySelectorAll("[name=d]").length ) {
1396+ if ( el.querySelectorAll( "[name=d]" ).length ) {
13191397 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
13201398 }
13211399
13221400 // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
13231401 // IE8 throws error here and will not see later tests
1324− if ( el.querySelectorAll(":enabled").length !== 2 ) {
1402+ if ( el.querySelectorAll( ":enabled" ).length !== 2 ) {
13251403 rbuggyQSA.push( ":enabled", ":disabled" );
13261404 }
13271405
13281406 // Support: IE9-11+
13291407 // IE's :disabled selector does not pick up the children of disabled fieldsets
13301408 docElem.appendChild( el ).disabled = true;
1331− if ( el.querySelectorAll(":disabled").length !== 2 ) {
1409+ if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
13321410 rbuggyQSA.push( ":enabled", ":disabled" );
13331411 }
13341412
1413+ // Support: Opera 10 - 11 only
13351414 // Opera 10-11 does not throw on post-comma invalid pseudos
1336− el.querySelectorAll("*,:x");
1337− rbuggyQSA.push(",.*:");
1338− });
1415+ el.querySelectorAll( "*,:x" );
1416+ rbuggyQSA.push( ",.*:" );
1417+ } );
13391418 }
13401419
1341− if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1420+ if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||
13421421 docElem.webkitMatchesSelector ||
13431422 docElem.mozMatchesSelector ||
13441423 docElem.oMatchesSelector ||
1345− docElem.msMatchesSelector) )) ) {
1424+ docElem.msMatchesSelector ) ) ) ) {
1425+
1426+ assert( function( el ) {
13461427
1347− assert(function( el ) {
13481428 // Check to see if it's possible to do matchesSelector
13491429 // on a disconnected node (IE 9)
13501430 support.disconnectedMatch = matches.call( el, "*" );
@@ -1353,11 +1433,11 @@ setDocument = Sizzle.setDocument = function( node ) {
13531433 // Gecko does not error, returns false instead
13541434 matches.call( el, "[s!='']:x" );
13551435 rbuggyMatches.push( "!=", pseudos );
1356− });
1436+ } );
13571437 }
13581438
1359− rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
1360− rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
1439+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
1440+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
13611441
13621442 /* Contains
13631443 ---------------------------------------------------------------------- */
@@ -1374,11 +1454,11 @@ setDocument = Sizzle.setDocument = function( node ) {
13741454 adown.contains ?
13751455 adown.contains( bup ) :
13761456 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
1377− ));
1457+ ) );
13781458 } :
13791459 function( a, b ) {
13801460 if ( b ) {
1381− while ( (b = b.parentNode) ) {
1461+ while ( ( b = b.parentNode ) ) {
13821462 if ( b === a ) {
13831463 return true;
13841464 }
@@ -1407,7 +1487,11 @@ setDocument = Sizzle.setDocument = function( node ) {
14071487 }
14081488
14091489 // Calculate position if both inputs belong to the same document
1410− compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
1490+ // Support: IE 11+, Edge 17 - 18+
1491+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1492+ // two documents; shallow comparisons work.
1493+ // eslint-disable-next-line eqeqeq
1494+ compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?
14111495 a.compareDocumentPosition( b ) :
14121496
14131497 // Otherwise we know they are disconnected
@@ -1415,13 +1499,24 @@ setDocument = Sizzle.setDocument = function( node ) {
14151499
14161500 // Disconnected nodes
14171501 if ( compare & 1 ||
1418− (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
1502+ ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {
14191503
14201504 // Choose the first element that is related to our preferred document
1421− if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
1505+ // Support: IE 11+, Edge 17 - 18+
1506+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1507+ // two documents; shallow comparisons work.
1508+ // eslint-disable-next-line eqeqeq
1509+ if ( a == document || a.ownerDocument == preferredDoc &&
1510+ contains( preferredDoc, a ) ) {
14221511 return -1;
14231512 }
1424− if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
1513+
1514+ // Support: IE 11+, Edge 17 - 18+
1515+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1516+ // two documents; shallow comparisons work.
1517+ // eslint-disable-next-line eqeqeq
1518+ if ( b == document || b.ownerDocument == preferredDoc &&
1519+ contains( preferredDoc, b ) ) {
14251520 return 1;
14261521 }
14271522
@@ -1434,6 +1529,7 @@ setDocument = Sizzle.setDocument = function( node ) {
14341529 return compare & 4 ? -1 : 1;
14351530 } :
14361531 function( a, b ) {
1532+
14371533 // Exit early if the nodes are identical
14381534 if ( a === b ) {
14391535 hasDuplicate = true;
@@ -1449,8 +1545,14 @@ setDocument = Sizzle.setDocument = function( node ) {
14491545
14501546 // Parentless nodes are either documents or disconnected
14511547 if ( !aup || !bup ) {
1452− return a === document ? -1 :
1453− b === document ? 1 :
1548+
1549+ // Support: IE 11+, Edge 17 - 18+
1550+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1551+ // two documents; shallow comparisons work.
1552+ /* eslint-disable eqeqeq */
1553+ return a == document ? -1 :
1554+ b == document ? 1 :
1555+ /* eslint-enable eqeqeq */
14541556 aup ? -1 :
14551557 bup ? 1 :
14561558 sortInput ?
@@ -1464,26 +1566,32 @@ setDocument = Sizzle.setDocument = function( node ) {
14641566
14651567 // Otherwise we need full lists of their ancestors for comparison
14661568 cur = a;
1467− while ( (cur = cur.parentNode) ) {
1569+ while ( ( cur = cur.parentNode ) ) {
14681570 ap.unshift( cur );
14691571 }
14701572 cur = b;
1471− while ( (cur = cur.parentNode) ) {
1573+ while ( ( cur = cur.parentNode ) ) {
14721574 bp.unshift( cur );
14731575 }
14741576
14751577 // Walk down the tree looking for a discrepancy
1476− while ( ap[i] === bp[i] ) {
1578+ while ( ap[ i ] === bp[ i ] ) {
14771579 i++;
14781580 }
14791581
14801582 return i ?
1583+
14811584 // Do a sibling check if the nodes have a common ancestor
1482− siblingCheck( ap[i], bp[i] ) :
1585+ siblingCheck( ap[ i ], bp[ i ] ) :
14831586
14841587 // Otherwise nodes in our document sort first
1485− ap[i] === preferredDoc ? -1 :
1486− bp[i] === preferredDoc ? 1 :
1588+ // Support: IE 11+, Edge 17 - 18+
1589+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1590+ // two documents; shallow comparisons work.
1591+ /* eslint-disable eqeqeq */
1592+ ap[ i ] == preferredDoc ? -1 :
1593+ bp[ i ] == preferredDoc ? 1 :
1594+ /* eslint-enable eqeqeq */
14871595 0;
14881596 };
14891597
@@ -1495,10 +1603,7 @@ Sizzle.matches = function( expr, elements ) {
14951603};
14961604
14971605Sizzle.matchesSelector = function( elem, expr ) {
1498− // Set document vars if needed
1499− if ( ( elem.ownerDocument || elem ) !== document ) {
1500− setDocument( elem );
1501− }
1606+ setDocument( elem );
15021607
15031608 if ( support.matchesSelector && documentIsHTML &&
15041609 !nonnativeSelectorCache[ expr + " " ] &&
@@ -1510,12 +1615,13 @@ Sizzle.matchesSelector = function( elem, expr ) {
15101615
15111616 // IE 9's matchesSelector returns false on disconnected nodes
15121617 if ( ret || support.disconnectedMatch ||
1513− // As well, disconnected nodes are said to be in a document
1514− // fragment in IE 9
1515− elem.document && elem.document.nodeType !== 11 ) {
1618+
1619+ // As well, disconnected nodes are said to be in a document
1620+ // fragment in IE 9
1621+ elem.document && elem.document.nodeType !== 11 ) {
15161622 return ret;
15171623 }
1518− } catch (e) {
1624+ } catch ( e ) {
15191625 nonnativeSelectorCache( expr, true );
15201626 }
15211627 }
@@ -1524,20 +1630,31 @@ Sizzle.matchesSelector = function( elem, expr ) {
15241630};
15251631
15261632Sizzle.contains = function( context, elem ) {
1633+
15271634 // Set document vars if needed
1528− if ( ( context.ownerDocument || context ) !== document ) {
1635+ // Support: IE 11+, Edge 17 - 18+
1636+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1637+ // two documents; shallow comparisons work.
1638+ // eslint-disable-next-line eqeqeq
1639+ if ( ( context.ownerDocument || context ) != document ) {
15291640 setDocument( context );
15301641 }
15311642 return contains( context, elem );
15321643};
15331644
15341645Sizzle.attr = function( elem, name ) {
1646+
15351647 // Set document vars if needed
1536− if ( ( elem.ownerDocument || elem ) !== document ) {
1648+ // Support: IE 11+, Edge 17 - 18+
1649+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
1650+ // two documents; shallow comparisons work.
1651+ // eslint-disable-next-line eqeqeq
1652+ if ( ( elem.ownerDocument || elem ) != document ) {
15371653 setDocument( elem );
15381654 }
15391655
15401656 var fn = Expr.attrHandle[ name.toLowerCase() ],
1657+
15411658 // Don't get fooled by Object.prototype properties (jQuery #13807)
15421659 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
15431660 fn( elem, name, !documentIsHTML ) :
@@ -1547,13 +1664,13 @@ Sizzle.attr = function( elem, name ) {
15471664 val :
15481665 support.attributes || !documentIsHTML ?
15491666 elem.getAttribute( name ) :
1550− (val = elem.getAttributeNode(name)) && val.specified ?
1667+ ( val = elem.getAttributeNode( name ) ) && val.specified ?
15511668 val.value :
15521669 null;
15531670};
15541671
15551672Sizzle.escape = function( sel ) {
1556− return (sel + "").replace( rcssescape, fcssescape );
1673+ return ( sel + "" ).replace( rcssescape, fcssescape );
15571674};
15581675
15591676Sizzle.error = function( msg ) {
@@ -1576,7 +1693,7 @@ Sizzle.uniqueSort = function( results ) {
15761693 results.sort( sortOrder );
15771694
15781695 if ( hasDuplicate ) {
1579− while ( (elem = results[i++]) ) {
1696+ while ( ( elem = results[ i++ ] ) ) {
15801697 if ( elem === results[ i ] ) {
15811698 j = duplicates.push( i );
15821699 }
@@ -1604,17 +1721,21 @@ getText = Sizzle.getText = function( elem ) {
16041721 nodeType = elem.nodeType;
16051722
16061723 if ( !nodeType ) {
1724+
16071725 // If no nodeType, this is expected to be an array
1608− while ( (node = elem[i++]) ) {
1726+ while ( ( node = elem[ i++ ] ) ) {
1727+
16091728 // Do not traverse comment nodes
16101729 ret += getText( node );
16111730 }
16121731 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1732+
16131733 // Use textContent for elements
16141734 // innerText usage removed for consistency of new lines (jQuery #11153)
16151735 if ( typeof elem.textContent === "string" ) {
16161736 return elem.textContent;
16171737 } else {
1738+
16181739 // Traverse its children
16191740 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
16201741 ret += getText( elem );
@@ -1623,6 +1744,7 @@ getText = Sizzle.getText = function( elem ) {
16231744 } else if ( nodeType === 3 || nodeType === 4 ) {
16241745 return elem.nodeValue;
16251746 }
1747+
16261748 // Do not include comment or processing instruction nodes
16271749
16281750 return ret;
@@ -1650,19 +1772,21 @@ Expr = Sizzle.selectors = {
16501772
16511773 preFilter: {
16521774 "ATTR": function( match ) {
1653− match[1] = match[1].replace( runescape, funescape );
1775+ match[ 1 ] = match[ 1 ].replace( runescape, funescape );
16541776
16551777 // Move the given value to match[3] whether quoted or unquoted
1656− match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1778+ match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
1779+ match[ 5 ] || "" ).replace( runescape, funescape );
16571780
1658− if ( match[2] === "~=" ) {
1659− match[3] = " " + match[3] + " ";
1781+ if ( match[ 2 ] === "~=" ) {
1782+ match[ 3 ] = " " + match[ 3 ] + " ";
16601783 }
16611784
16621785 return match.slice( 0, 4 );
16631786 },
16641787
16651788 "CHILD": function( match ) {
1789+
16661790 /* matches from matchExpr["CHILD"]
16671791 1 type (only|nth|...)
16681792 2 what (child|of-type)
@@ -1673,22 +1797,25 @@ Expr = Sizzle.selectors = {
16731797 7 sign of y-component
16741798 8 y of y-component
16751799 */
1676− match[1] = match[1].toLowerCase();
1800+ match[ 1 ] = match[ 1 ].toLowerCase();
1801+
1802+ if ( match[ 1 ].slice( 0, 3 ) === "nth" ) {
16771803
1678− if ( match[1].slice( 0, 3 ) === "nth" ) {
16791804 // nth-* requires argument
1680− if ( !match[3] ) {
1681− Sizzle.error( match[0] );
1805+ if ( !match[ 3 ] ) {
1806+ Sizzle.error( match[ 0 ] );
16821807 }
16831808
16841809 // numeric x and y parameters for Expr.filter.CHILD
16851810 // remember that false/true cast respectively to 0/1
1686− match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1687− match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1811+ match[ 4 ] = +( match[ 4 ] ?
1812+ match[ 5 ] + ( match[ 6 ] || 1 ) :
1813+ 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) );
1814+ match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
16881815
1689− // other types prohibit arguments
1690− } else if ( match[3] ) {
1691− Sizzle.error( match[0] );
1816+ // other types prohibit arguments
1817+ } else if ( match[ 3 ] ) {
1818+ Sizzle.error( match[ 0 ] );
16921819 }
16931820
16941821 return match;
@@ -1696,26 +1823,28 @@ Expr = Sizzle.selectors = {
16961823
16971824 "PSEUDO": function( match ) {
16981825 var excess,
1699− unquoted = !match[6] && match[2];
1826+ unquoted = !match[ 6 ] && match[ 2 ];
17001827
1701− if ( matchExpr["CHILD"].test( match[0] ) ) {
1828+ if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) {
17021829 return null;
17031830 }
17041831
17051832 // Accept quoted arguments as-is
1706− if ( match[3] ) {
1707− match[2] = match[4] || match[5] || "";
1833+ if ( match[ 3 ] ) {
1834+ match[ 2 ] = match[ 4 ] || match[ 5 ] || "";
17081835
17091836 // Strip excess characters from unquoted arguments
17101837 } else if ( unquoted && rpseudo.test( unquoted ) &&
1838+
17111839 // Get excess from tokenize (recursively)
1712− (excess = tokenize( unquoted, true )) &&
1840+ ( excess = tokenize( unquoted, true ) ) &&
1841+
17131842 // advance to the next closing parenthesis
1714− (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1843+ ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) {
17151844
17161845 // excess is a negative index
1717− match[0] = match[0].slice( 0, excess );
1718− match[2] = unquoted.slice( 0, excess );
1846+ match[ 0 ] = match[ 0 ].slice( 0, excess );
1847+ match[ 2 ] = unquoted.slice( 0, excess );
17191848 }
17201849
17211850 // Return only captures needed by the pseudo filter method (type and argument)
@@ -1728,7 +1857,9 @@ Expr = Sizzle.selectors = {
17281857 "TAG": function( nodeNameSelector ) {
17291858 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
17301859 return nodeNameSelector === "*" ?
1731− function() { return true; } :
1860+ function() {
1861+ return true;
1862+ } :
17321863 function( elem ) {
17331864 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
17341865 };
@@ -1738,10 +1869,16 @@ Expr = Sizzle.selectors = {
17381869 var pattern = classCache[ className + " " ];
17391870
17401871 return pattern ||
1741− (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1742− classCache( className, function( elem ) {
1743− return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
1744− });
1872+ ( pattern = new RegExp( "(^|" + whitespace +
1873+ ")" + className + "(" + whitespace + "|$)" ) ) && classCache(
1874+ className, function( elem ) {
1875+ return pattern.test(
1876+ typeof elem.className === "string" && elem.className ||
1877+ typeof elem.getAttribute !== "undefined" &&
1878+ elem.getAttribute( "class" ) ||
1879+ ""
1880+ );
1881+ } );
17451882 },
17461883
17471884 "ATTR": function( name, operator, check ) {
@@ -1757,6 +1894,8 @@ Expr = Sizzle.selectors = {
17571894
17581895 result += "";
17591896
1897+ /* eslint-disable max-len */
1898+
17601899 return operator === "=" ? result === check :
17611900 operator === "!=" ? result !== check :
17621901 operator === "^=" ? check && result.indexOf( check ) === 0 :
@@ -1765,10 +1904,12 @@ Expr = Sizzle.selectors = {
17651904 operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
17661905 operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
17671906 false;
1907+ /* eslint-enable max-len */
1908+
17681909 };
17691910 },
17701911
1771− "CHILD": function( type, what, argument, first, last ) {
1912+ "CHILD": function( type, what, _argument, first, last ) {
17721913 var simple = type.slice( 0, 3 ) !== "nth",
17731914 forward = type.slice( -4 ) !== "last",
17741915 ofType = what === "of-type";
@@ -1780,7 +1921,7 @@ Expr = Sizzle.selectors = {
17801921 return !!elem.parentNode;
17811922 } :
17821923
1783− function( elem, context, xml ) {
1924+ function( elem, _context, xml ) {
17841925 var cache, uniqueCache, outerCache, node, nodeIndex, start,
17851926 dir = simple !== forward ? "nextSibling" : "previousSibling",
17861927 parent = elem.parentNode,
@@ -1794,7 +1935,7 @@ Expr = Sizzle.selectors = {
17941935 if ( simple ) {
17951936 while ( dir ) {
17961937 node = elem;
1797− while ( (node = node[ dir ]) ) {
1938+ while ( ( node = node[ dir ] ) ) {
17981939 if ( ofType ?
17991940 node.nodeName.toLowerCase() === name :
18001941 node.nodeType === 1 ) {
@@ -1802,6 +1943,7 @@ Expr = Sizzle.selectors = {
18021943 return false;
18031944 }
18041945 }
1946+
18051947 // Reverse direction for :only-* (if we haven't yet done so)
18061948 start = dir = type === "only" && !start && "nextSibling";
18071949 }
@@ -1817,22 +1959,22 @@ Expr = Sizzle.selectors = {
18171959
18181960 // ...in a gzip-friendly way
18191961 node = parent;
1820− outerCache = node[ expando ] || (node[ expando ] = {});
1962+ outerCache = node[ expando ] || ( node[ expando ] = {} );
18211963
18221964 // Support: IE <9 only
18231965 // Defend against cloned attroperties (jQuery gh-1709)
18241966 uniqueCache = outerCache[ node.uniqueID ] ||
1825− (outerCache[ node.uniqueID ] = {});
1967+ ( outerCache[ node.uniqueID ] = {} );
18261968
18271969 cache = uniqueCache[ type ] || [];
18281970 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
18291971 diff = nodeIndex && cache[ 2 ];
18301972 node = nodeIndex && parent.childNodes[ nodeIndex ];
18311973
1832− while ( (node = ++nodeIndex && node && node[ dir ] ||
1974+ while ( ( node = ++nodeIndex && node && node[ dir ] ||
18331975
18341976 // Fallback to seeking `elem` from the start
1835− (diff = nodeIndex = 0) || start.pop()) ) {
1977+ ( diff = nodeIndex = 0 ) || start.pop() ) ) {
18361978
18371979 // When found, cache indexes on `parent` and break
18381980 if ( node.nodeType === 1 && ++diff && node === elem ) {
@@ -1842,16 +1984,18 @@ Expr = Sizzle.selectors = {
18421984 }
18431985
18441986 } else {
1987+
18451988 // Use previously-cached element index if available
18461989 if ( useCache ) {
1990+
18471991 // ...in a gzip-friendly way
18481992 node = elem;
1849− outerCache = node[ expando ] || (node[ expando ] = {});
1993+ outerCache = node[ expando ] || ( node[ expando ] = {} );
18501994
18511995 // Support: IE <9 only
18521996 // Defend against cloned attroperties (jQuery gh-1709)
18531997 uniqueCache = outerCache[ node.uniqueID ] ||
1854− (outerCache[ node.uniqueID ] = {});
1998+ ( outerCache[ node.uniqueID ] = {} );
18551999
18562000 cache = uniqueCache[ type ] || [];
18572001 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
@@ -1861,9 +2005,10 @@ Expr = Sizzle.selectors = {
18612005 // xml :nth-child(...)
18622006 // or :nth-last-child(...) or :nth(-last)?-of-type(...)
18632007 if ( diff === false ) {
2008+
18642009 // Use the same loop as above to seek `elem` from the start
1865− while ( (node = ++nodeIndex && node && node[ dir ] ||
1866− (diff = nodeIndex = 0) || start.pop()) ) {
2010+ while ( ( node = ++nodeIndex && node && node[ dir ] ||
2011+ ( diff = nodeIndex = 0 ) || start.pop() ) ) {
18672012
18682013 if ( ( ofType ?
18692014 node.nodeName.toLowerCase() === name :
@@ -1872,12 +2017,13 @@ Expr = Sizzle.selectors = {
18722017
18732018 // Cache the index of each encountered element
18742019 if ( useCache ) {
1875− outerCache = node[ expando ] || (node[ expando ] = {});
2020+ outerCache = node[ expando ] ||
2021+ ( node[ expando ] = {} );
18762022
18772023 // Support: IE <9 only
18782024 // Defend against cloned attroperties (jQuery gh-1709)
18792025 uniqueCache = outerCache[ node.uniqueID ] ||
1880− (outerCache[ node.uniqueID ] = {});
2026+ ( outerCache[ node.uniqueID ] = {} );
18812027
18822028 uniqueCache[ type ] = [ dirruns, diff ];
18832029 }
@@ -1898,6 +2044,7 @@ Expr = Sizzle.selectors = {
18982044 },
18992045
19002046 "PSEUDO": function( pseudo, argument ) {
2047+
19012048 // pseudo-class names are case-insensitive
19022049 // http://www.w3.org/TR/selectors/#pseudo-classes
19032050 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
@@ -1917,15 +2064,15 @@ Expr = Sizzle.selectors = {
19172064 if ( fn.length > 1 ) {
19182065 args = [ pseudo, pseudo, "", argument ];
19192066 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1920− markFunction(function( seed, matches ) {
2067+ markFunction( function( seed, matches ) {
19212068 var idx,
19222069 matched = fn( seed, argument ),
19232070 i = matched.length;
19242071 while ( i-- ) {
1925− idx = indexOf( seed, matched[i] );
1926− seed[ idx ] = !( matches[ idx ] = matched[i] );
2072+ idx = indexOf( seed, matched[ i ] );
2073+ seed[ idx ] = !( matches[ idx ] = matched[ i ] );
19272074 }
1928− }) :
2075+ } ) :
19292076 function( elem ) {
19302077 return fn( elem, 0, args );
19312078 };
@@ -1936,8 +2083,10 @@ Expr = Sizzle.selectors = {
19362083 },
19372084
19382085 pseudos: {
2086+
19392087 // Potentially complex pseudos
1940− "not": markFunction(function( selector ) {
2088+ "not": markFunction( function( selector ) {
2089+
19412090 // Trim the selector passed to compile
19422091 // to avoid treating leading and trailing
19432092 // spaces as combinators
@@ -1946,39 +2095,40 @@ Expr = Sizzle.selectors = {
19462095 matcher = compile( selector.replace( rtrim, "$1" ) );
19472096
19482097 return matcher[ expando ] ?
1949− markFunction(function( seed, matches, context, xml ) {
2098+ markFunction( function( seed, matches, _context, xml ) {
19502099 var elem,
19512100 unmatched = matcher( seed, null, xml, [] ),
19522101 i = seed.length;
19532102
19542103 // Match elements unmatched by `matcher`
19552104 while ( i-- ) {
1956− if ( (elem = unmatched[i]) ) {
1957− seed[i] = !(matches[i] = elem);
2105+ if ( ( elem = unmatched[ i ] ) ) {
2106+ seed[ i ] = !( matches[ i ] = elem );
19582107 }
19592108 }
1960− }) :
1961− function( elem, context, xml ) {
1962− input[0] = elem;
2109+ } ) :
2110+ function( elem, _context, xml ) {
2111+ input[ 0 ] = elem;
19632112 matcher( input, null, xml, results );
2113+
19642114 // Don't keep the element (issue #299)
1965− input[0] = null;
2115+ input[ 0 ] = null;
19662116 return !results.pop();
19672117 };
1968− }),
2118+ } ),
19692119
1970− "has": markFunction(function( selector ) {
2120+ "has": markFunction( function( selector ) {
19712121 return function( elem ) {
19722122 return Sizzle( selector, elem ).length > 0;
19732123 };
1974− }),
2124+ } ),
19752125
1976− "contains": markFunction(function( text ) {
2126+ "contains": markFunction( function( text ) {
19772127 text = text.replace( runescape, funescape );
19782128 return function( elem ) {
19792129 return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
19802130 };
1981− }),
2131+ } ),
19822132
19832133 // "Whether an element is represented by a :lang() selector
19842134 // is based solely on the element's language value
@@ -1988,25 +2138,26 @@ Expr = Sizzle.selectors = {
19882138 // The identifier C does not have to be a valid language name."
19892139 // http://www.w3.org/TR/selectors/#lang-pseudo
19902140 "lang": markFunction( function( lang ) {
2141+
19912142 // lang value must be a valid identifier
1992− if ( !ridentifier.test(lang || "") ) {
2143+ if ( !ridentifier.test( lang || "" ) ) {
19932144 Sizzle.error( "unsupported lang: " + lang );
19942145 }
19952146 lang = lang.replace( runescape, funescape ).toLowerCase();
19962147 return function( elem ) {
19972148 var elemLang;
19982149 do {
1999− if ( (elemLang = documentIsHTML ?
2150+ if ( ( elemLang = documentIsHTML ?
20002151 elem.lang :
2001− elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
2152+ elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) {
20022153
20032154 elemLang = elemLang.toLowerCase();
20042155 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
20052156 }
2006− } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
2157+ } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );
20072158 return false;
20082159 };
2009− }),
2160+ } ),
20102161
20112162 // Miscellaneous
20122163 "target": function( elem ) {
@@ -2019,7 +2170,9 @@ Expr = Sizzle.selectors = {
20192170 },
20202171
20212172 "focus": function( elem ) {
2022− return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
2173+ return elem === document.activeElement &&
2174+ ( !document.hasFocus || document.hasFocus() ) &&
2175+ !!( elem.type || elem.href || ~elem.tabIndex );
20232176 },
20242177
20252178 // Boolean properties
@@ -2027,16 +2180,20 @@ Expr = Sizzle.selectors = {
20272180 "disabled": createDisabledPseudo( true ),
20282181
20292182 "checked": function( elem ) {
2183+
20302184 // In CSS3, :checked should return both checked and selected elements
20312185 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
20322186 var nodeName = elem.nodeName.toLowerCase();
2033− return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
2187+ return ( nodeName === "input" && !!elem.checked ) ||
2188+ ( nodeName === "option" && !!elem.selected );
20342189 },
20352190
20362191 "selected": function( elem ) {
2192+
20372193 // Accessing this property makes selected-by-default
20382194 // options in Safari work properly
20392195 if ( elem.parentNode ) {
2196+ // eslint-disable-next-line no-unused-expressions
20402197 elem.parentNode.selectedIndex;
20412198 }
20422199
@@ -2045,6 +2202,7 @@ Expr = Sizzle.selectors = {
20452202
20462203 // Contents
20472204 "empty": function( elem ) {
2205+
20482206 // http://www.w3.org/TR/selectors/#empty-pseudo
20492207 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
20502208 // but not by others (comment: 8; processing instruction: 7; etc.)
@@ -2058,7 +2216,7 @@ Expr = Sizzle.selectors = {
20582216 },
20592217
20602218 "parent": function( elem ) {
2061− return !Expr.pseudos["empty"]( elem );
2219+ return !Expr.pseudos[ "empty" ]( elem );
20622220 },
20632221
20642222 // Element/input types
@@ -2082,39 +2240,40 @@ Expr = Sizzle.selectors = {
20822240
20832241 // Support: IE<8
20842242 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
2085− ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
2243+ ( ( attr = elem.getAttribute( "type" ) ) == null ||
2244+ attr.toLowerCase() === "text" );
20862245 },
20872246
20882247 // Position-in-collection
2089− "first": createPositionalPseudo(function() {
2248+ "first": createPositionalPseudo( function() {
20902249 return [ 0 ];
2091− }),
2250+ } ),
20922251
2093− "last": createPositionalPseudo(function( matchIndexes, length ) {
2252+ "last": createPositionalPseudo( function( _matchIndexes, length ) {
20942253 return [ length - 1 ];
2095− }),
2254+ } ),
20962255
2097− "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
2256+ "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) {
20982257 return [ argument < 0 ? argument + length : argument ];
2099− }),
2258+ } ),
21002259
2101− "even": createPositionalPseudo(function( matchIndexes, length ) {
2260+ "even": createPositionalPseudo( function( matchIndexes, length ) {
21022261 var i = 0;
21032262 for ( ; i < length; i += 2 ) {
21042263 matchIndexes.push( i );
21052264 }
21062265 return matchIndexes;
2107− }),
2266+ } ),
21082267
2109− "odd": createPositionalPseudo(function( matchIndexes, length ) {
2268+ "odd": createPositionalPseudo( function( matchIndexes, length ) {
21102269 var i = 1;
21112270 for ( ; i < length; i += 2 ) {
21122271 matchIndexes.push( i );
21132272 }
21142273 return matchIndexes;
2115− }),
2274+ } ),
21162275
2117− "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2276+ "lt": createPositionalPseudo( function( matchIndexes, length, argument ) {
21182277 var i = argument < 0 ?
21192278 argument + length :
21202279 argument > length ?
@@ -2124,19 +2283,19 @@ Expr = Sizzle.selectors = {
21242283 matchIndexes.push( i );
21252284 }
21262285 return matchIndexes;
2127− }),
2286+ } ),
21282287
2129− "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2288+ "gt": createPositionalPseudo( function( matchIndexes, length, argument ) {
21302289 var i = argument < 0 ? argument + length : argument;
21312290 for ( ; ++i < length; ) {
21322291 matchIndexes.push( i );
21332292 }
21342293 return matchIndexes;
2135− })
2294+ } )
21362295 }
21372296};
21382297
2139−Expr.pseudos["nth"] = Expr.pseudos["eq"];
2298+Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ];
21402299
21412300// Add button/input type pseudos
21422301for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
@@ -2167,37 +2326,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
21672326 while ( soFar ) {
21682327
21692328 // Comma and first run
2170− if ( !matched || (match = rcomma.exec( soFar )) ) {
2329+ if ( !matched || ( match = rcomma.exec( soFar ) ) ) {
21712330 if ( match ) {
2331+
21722332 // Don't consume trailing commas as valid
2173− soFar = soFar.slice( match[0].length ) || soFar;
2333+ soFar = soFar.slice( match[ 0 ].length ) || soFar;
21742334 }
2175− groups.push( (tokens = []) );
2335+ groups.push( ( tokens = [] ) );
21762336 }
21772337
21782338 matched = false;
21792339
21802340 // Combinators
2181− if ( (match = rcombinators.exec( soFar )) ) {
2341+ if ( ( match = rcombinators.exec( soFar ) ) ) {
21822342 matched = match.shift();
2183− tokens.push({
2343+ tokens.push( {
21842344 value: matched,
2345+
21852346 // Cast descendant combinators to space
2186− type: match[0].replace( rtrim, " " )
2187− });
2347+ type: match[ 0 ].replace( rtrim, " " )
2348+ } );
21882349 soFar = soFar.slice( matched.length );
21892350 }
21902351
21912352 // Filters
21922353 for ( type in Expr.filter ) {
2193− if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
2194− (match = preFilters[ type ]( match ))) ) {
2354+ if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||
2355+ ( match = preFilters[ type ]( match ) ) ) ) {
21952356 matched = match.shift();
2196− tokens.push({
2357+ tokens.push( {
21972358 value: matched,
21982359 type: type,
21992360 matches: match
2200− });
2361+ } );
22012362 soFar = soFar.slice( matched.length );
22022363 }
22032364 }
@@ -2214,6 +2375,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
22142375 soFar.length :
22152376 soFar ?
22162377 Sizzle.error( selector ) :
2378+
22172379 // Cache the tokens
22182380 tokenCache( selector, groups ).slice( 0 );
22192381};
@@ -2223,7 +2385,7 @@ function toSelector( tokens ) {
22232385 len = tokens.length,
22242386 selector = "";
22252387 for ( ; i < len; i++ ) {
2226− selector += tokens[i].value;
2388+ selector += tokens[ i ].value;
22272389 }
22282390 return selector;
22292391}
@@ -2236,9 +2398,10 @@ function addCombinator( matcher, combinator, base ) {
22362398 doneName = done++;
22372399
22382400 return combinator.first ?
2401+
22392402 // Check against closest ancestor/preceding element
22402403 function( elem, context, xml ) {
2241− while ( (elem = elem[ dir ]) ) {
2404+ while ( ( elem = elem[ dir ] ) ) {
22422405 if ( elem.nodeType === 1 || checkNonElements ) {
22432406 return matcher( elem, context, xml );
22442407 }
@@ -2253,7 +2416,7 @@ function addCombinator( matcher, combinator, base ) {
22532416
22542417 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
22552418 if ( xml ) {
2256− while ( (elem = elem[ dir ]) ) {
2419+ while ( ( elem = elem[ dir ] ) ) {
22572420 if ( elem.nodeType === 1 || checkNonElements ) {
22582421 if ( matcher( elem, context, xml ) ) {
22592422 return true;
@@ -2261,27 +2424,29 @@ function addCombinator( matcher, combinator, base ) {
22612424 }
22622425 }
22632426 } else {
2264− while ( (elem = elem[ dir ]) ) {
2427+ while ( ( elem = elem[ dir ] ) ) {
22652428 if ( elem.nodeType === 1 || checkNonElements ) {
2266− outerCache = elem[ expando ] || (elem[ expando ] = {});
2429+ outerCache = elem[ expando ] || ( elem[ expando ] = {} );
22672430
22682431 // Support: IE <9 only
22692432 // Defend against cloned attroperties (jQuery gh-1709)
2270− uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
2433+ uniqueCache = outerCache[ elem.uniqueID ] ||
2434+ ( outerCache[ elem.uniqueID ] = {} );
22712435
22722436 if ( skip && skip === elem.nodeName.toLowerCase() ) {
22732437 elem = elem[ dir ] || elem;
2274− } else if ( (oldCache = uniqueCache[ key ]) &&
2438+ } else if ( ( oldCache = uniqueCache[ key ] ) &&
22752439 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
22762440
22772441 // Assign to newCache so results back-propagate to previous elements
2278− return (newCache[ 2 ] = oldCache[ 2 ]);
2442+ return ( newCache[ 2 ] = oldCache[ 2 ] );
22792443 } else {
2444+
22802445 // Reuse newcache so results back-propagate to previous elements
22812446 uniqueCache[ key ] = newCache;
22822447
22832448 // A match means we're done; a fail means we have to keep checking
2284− if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
2449+ if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
22852450 return true;
22862451 }
22872452 }
@@ -2297,20 +2462,20 @@ function elementMatcher( matchers ) {
22972462 function( elem, context, xml ) {
22982463 var i = matchers.length;
22992464 while ( i-- ) {
2300− if ( !matchers[i]( elem, context, xml ) ) {
2465+ if ( !matchers[ i ]( elem, context, xml ) ) {
23012466 return false;
23022467 }
23032468 }
23042469 return true;
23052470 } :
2306− matchers[0];
2471+ matchers[ 0 ];
23072472}
23082473
23092474function multipleContexts( selector, contexts, results ) {
23102475 var i = 0,
23112476 len = contexts.length;
23122477 for ( ; i < len; i++ ) {
2313− Sizzle( selector, contexts[i], results );
2478+ Sizzle( selector, contexts[ i ], results );
23142479 }
23152480 return results;
23162481}
@@ -2323,7 +2488,7 @@ function condense( unmatched, map, filter, context, xml ) {
23232488 mapped = map != null;
23242489
23252490 for ( ; i < len; i++ ) {
2326− if ( (elem = unmatched[i]) ) {
2491+ if ( ( elem = unmatched[ i ] ) ) {
23272492 if ( !filter || filter( elem, context, xml ) ) {
23282493 newUnmatched.push( elem );
23292494 if ( mapped ) {
@@ -2343,14 +2508,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
23432508 if ( postFinder && !postFinder[ expando ] ) {
23442509 postFinder = setMatcher( postFinder, postSelector );
23452510 }
2346− return markFunction(function( seed, results, context, xml ) {
2511+ return markFunction( function( seed, results, context, xml ) {
23472512 var temp, i, elem,
23482513 preMap = [],
23492514 postMap = [],
23502515 preexisting = results.length,
23512516
23522517 // Get initial elements from seed or context
2353− elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
2518+ elems = seed || multipleContexts(
2519+ selector || "*",
2520+ context.nodeType ? [ context ] : context,
2521+ []
2522+ ),
23542523
23552524 // Prefilter to get matcher input, preserving a map for seed-results synchronization
23562525 matcherIn = preFilter && ( seed || !selector ) ?
@@ -2358,6 +2527,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
23582527 elems,
23592528
23602529 matcherOut = matcher ?
2530+
23612531 // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
23622532 postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
23632533
@@ -2381,8 +2551,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
23812551 // Un-match failing elements by moving them back to matcherIn
23822552 i = temp.length;
23832553 while ( i-- ) {
2384− if ( (elem = temp[i]) ) {
2385− matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
2554+ if ( ( elem = temp[ i ] ) ) {
2555+ matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );
23862556 }
23872557 }
23882558 }
@@ -2390,25 +2560,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
23902560 if ( seed ) {
23912561 if ( postFinder || preFilter ) {
23922562 if ( postFinder ) {
2563+
23932564 // Get the final matcherOut by condensing this intermediate into postFinder contexts
23942565 temp = [];
23952566 i = matcherOut.length;
23962567 while ( i-- ) {
2397− if ( (elem = matcherOut[i]) ) {
2568+ if ( ( elem = matcherOut[ i ] ) ) {
2569+
23982570 // Restore matcherIn since elem is not yet a final match
2399− temp.push( (matcherIn[i] = elem) );
2571+ temp.push( ( matcherIn[ i ] = elem ) );
24002572 }
24012573 }
2402− postFinder( null, (matcherOut = []), temp, xml );
2574+ postFinder( null, ( matcherOut = [] ), temp, xml );
24032575 }
24042576
24052577 // Move matched elements from seed to results to keep them synchronized
24062578 i = matcherOut.length;
24072579 while ( i-- ) {
2408− if ( (elem = matcherOut[i]) &&
2409− (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
2580+ if ( ( elem = matcherOut[ i ] ) &&
2581+ ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
24102582
2411− seed[temp] = !(results[temp] = elem);
2583+ seed[ temp ] = !( results[ temp ] = elem );
24122584 }
24132585 }
24142586 }
@@ -2426,14 +2598,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
24262598 push.apply( results, matcherOut );
24272599 }
24282600 }
2429− });
2601+ } );
24302602}
24312603
24322604function matcherFromTokens( tokens ) {
24332605 var checkContext, matcher, j,
24342606 len = tokens.length,
2435− leadingRelative = Expr.relative[ tokens[0].type ],
2436− implicitRelative = leadingRelative || Expr.relative[" "],
2607+ leadingRelative = Expr.relative[ tokens[ 0 ].type ],
2608+ implicitRelative = leadingRelative || Expr.relative[ " " ],
24372609 i = leadingRelative ? 1 : 0,
24382610
24392611 // The foundational matcher ensures that elements are reachable from top-level context(s)
@@ -2445,38 +2617,43 @@ function matcherFromTokens( tokens ) {
24452617 }, implicitRelative, true ),
24462618 matchers = [ function( elem, context, xml ) {
24472619 var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
2448− (checkContext = context).nodeType ?
2620+ ( checkContext = context ).nodeType ?
24492621 matchContext( elem, context, xml ) :
24502622 matchAnyContext( elem, context, xml ) );
2623+
24512624 // Avoid hanging onto element (issue #299)
24522625 checkContext = null;
24532626 return ret;
24542627 } ];
24552628
24562629 for ( ; i < len; i++ ) {
2457− if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
2458− matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
2630+ if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {
2631+ matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
24592632 } else {
2460− matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
2633+ matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );
24612634
24622635 // Return special upon seeing a positional matcher
24632636 if ( matcher[ expando ] ) {
2637+
24642638 // Find the next relative operator (if any) for proper handling
24652639 j = ++i;
24662640 for ( ; j < len; j++ ) {
2467− if ( Expr.relative[ tokens[j].type ] ) {
2641+ if ( Expr.relative[ tokens[ j ].type ] ) {
24682642 break;
24692643 }
24702644 }
24712645 return setMatcher(
24722646 i > 1 && elementMatcher( matchers ),
24732647 i > 1 && toSelector(
2474− // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2475− tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
2648+
2649+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
2650+ tokens
2651+ .slice( 0, i - 1 )
2652+ .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
24762653 ).replace( rtrim, "$1" ),
24772654 matcher,
24782655 i < j && matcherFromTokens( tokens.slice( i, j ) ),
2479− j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
2656+ j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
24802657 j < len && toSelector( tokens )
24812658 );
24822659 }
@@ -2497,28 +2674,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
24972674 unmatched = seed && [],
24982675 setMatched = [],
24992676 contextBackup = outermostContext,
2677+
25002678 // We must always have either seed elements or outermost context
2501− elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
2679+ elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ),
2680+
25022681 // Use integer dirruns iff this is the outermost matcher
2503− dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
2682+ dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
25042683 len = elems.length;
25052684
25062685 if ( outermost ) {
2507− outermostContext = context === document || context || outermost;
2686+
2687+ // Support: IE 11+, Edge 17 - 18+
2688+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
2689+ // two documents; shallow comparisons work.
2690+ // eslint-disable-next-line eqeqeq
2691+ outermostContext = context == document || context || outermost;
25082692 }
25092693
25102694 // Add elements passing elementMatchers directly to results
25112695 // Support: IE<9, Safari
25122696 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
2513− for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
2697+ for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
25142698 if ( byElement && elem ) {
25152699 j = 0;
2516− if ( !context && elem.ownerDocument !== document ) {
2700+
2701+ // Support: IE 11+, Edge 17 - 18+
2702+ // IE/Edge sometimes throw a "Permission denied" error when strict-comparing
2703+ // two documents; shallow comparisons work.
2704+ // eslint-disable-next-line eqeqeq
2705+ if ( !context && elem.ownerDocument != document ) {
25172706 setDocument( elem );
25182707 xml = !documentIsHTML;
25192708 }
2520− while ( (matcher = elementMatchers[j++]) ) {
2521− if ( matcher( elem, context || document, xml) ) {
2709+ while ( ( matcher = elementMatchers[ j++ ] ) ) {
2710+ if ( matcher( elem, context || document, xml ) ) {
25222711 results.push( elem );
25232712 break;
25242713 }
@@ -2530,8 +2719,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
25302719
25312720 // Track unmatched elements for set filters
25322721 if ( bySet ) {
2722+
25332723 // They will have gone through all possible matchers
2534− if ( (elem = !matcher && elem) ) {
2724+ if ( ( elem = !matcher && elem ) ) {
25352725 matchedCount--;
25362726 }
25372727
@@ -2555,16 +2745,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
25552745 // numerically zero.
25562746 if ( bySet && i !== matchedCount ) {
25572747 j = 0;
2558− while ( (matcher = setMatchers[j++]) ) {
2748+ while ( ( matcher = setMatchers[ j++ ] ) ) {
25592749 matcher( unmatched, setMatched, context, xml );
25602750 }
25612751
25622752 if ( seed ) {
2753+
25632754 // Reintegrate element matches to eliminate the need for sorting
25642755 if ( matchedCount > 0 ) {
25652756 while ( i-- ) {
2566− if ( !(unmatched[i] || setMatched[i]) ) {
2567− setMatched[i] = pop.call( results );
2757+ if ( !( unmatched[ i ] || setMatched[ i ] ) ) {
2758+ setMatched[ i ] = pop.call( results );
25682759 }
25692760 }
25702761 }
@@ -2605,13 +2796,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
26052796 cached = compilerCache[ selector + " " ];
26062797
26072798 if ( !cached ) {
2799+
26082800 // Generate a function of recursive functions that can be used to check each element
26092801 if ( !match ) {
26102802 match = tokenize( selector );
26112803 }
26122804 i = match.length;
26132805 while ( i-- ) {
2614− cached = matcherFromTokens( match[i] );
2806+ cached = matcherFromTokens( match[ i ] );
26152807 if ( cached[ expando ] ) {
26162808 setMatchers.push( cached );
26172809 } else {
@@ -2620,7 +2812,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
26202812 }
26212813
26222814 // Cache the compiled function
2623− cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2815+ cached = compilerCache(
2816+ selector,
2817+ matcherFromGroupMatchers( elementMatchers, setMatchers )
2818+ );
26242819
26252820 // Save selector and tokenization
26262821 cached.selector = selector;
@@ -2640,7 +2835,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
26402835select = Sizzle.select = function( selector, context, results, seed ) {
26412836 var i, tokens, token, type, find,
26422837 compiled = typeof selector === "function" && selector,
2643− match = !seed && tokenize( (selector = compiled.selector || selector) );
2838+ match = !seed && tokenize( ( selector = compiled.selector || selector ) );
26442839
26452840 results = results || [];
26462841
@@ -2649,11 +2844,12 @@ select = Sizzle.select = function( selector, context, results, seed ) {
26492844 if ( match.length === 1 ) {
26502845
26512846 // Reduce context if the leading compound selector is an ID
2652− tokens = match[0] = match[0].slice( 0 );
2653− if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2654− context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
2847+ tokens = match[ 0 ] = match[ 0 ].slice( 0 );
2848+ if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
2849+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
26552850
2656− context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2851+ context = ( Expr.find[ "ID" ]( token.matches[ 0 ]
2852+ .replace( runescape, funescape ), context ) || [] )[ 0 ];
26572853 if ( !context ) {
26582854 return results;
26592855
@@ -2666,20 +2862,22 @@ select = Sizzle.select = function( selector, context, results, seed ) {
26662862 }
26672863
26682864 // Fetch a seed set for right-to-left matching
2669− i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2865+ i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length;
26702866 while ( i-- ) {
2671− token = tokens[i];
2867+ token = tokens[ i ];
26722868
26732869 // Abort if we hit a combinator
2674− if ( Expr.relative[ (type = token.type) ] ) {
2870+ if ( Expr.relative[ ( type = token.type ) ] ) {
26752871 break;
26762872 }
2677− if ( (find = Expr.find[ type ]) ) {
2873+ if ( ( find = Expr.find[ type ] ) ) {
2874+
26782875 // Search, expanding context for leading sibling combinators
2679− if ( (seed = find(
2680− token.matches[0].replace( runescape, funescape ),
2681− rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2682− )) ) {
2876+ if ( ( seed = find(
2877+ token.matches[ 0 ].replace( runescape, funescape ),
2878+ rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||
2879+ context
2880+ ) ) ) {
26832881
26842882 // If seed is empty or no tokens remain, we can return early
26852883 tokens.splice( i, 1 );
@@ -2710,7 +2908,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
27102908// One-time assignments
27112909
27122910// Sort stability
2713−support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2911+support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
27142912
27152913// Support: Chrome 14-35+
27162914// Always assume duplicates if they aren't passed to the comparison function
@@ -2721,58 +2919,59 @@ setDocument();
27212919
27222920// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
27232921// Detached nodes confoundingly follow *each other*
2724−support.sortDetached = assert(function( el ) {
2922+support.sortDetached = assert( function( el ) {
2923+
27252924 // Should return 1, but returns 4 (following)
2726− return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
2727−});
2925+ return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
2926+} );
27282927
27292928// Support: IE<8
27302929// Prevent attribute/property "interpolation"
27312930// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2732−if ( !assert(function( el ) {
2931+if ( !assert( function( el ) {
27332932 el.innerHTML = "<a href='#'></a>";
2734− return el.firstChild.getAttribute("href") === "#" ;
2735−}) ) {
2933+ return el.firstChild.getAttribute( "href" ) === "#";
2934+} ) ) {
27362935 addHandle( "type|href|height|width", function( elem, name, isXML ) {
27372936 if ( !isXML ) {
27382937 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
27392938 }
2740− });
2939+ } );
27412940}
27422941
27432942// Support: IE<9
27442943// Use defaultValue in place of getAttribute("value")
2745−if ( !support.attributes || !assert(function( el ) {
2944+if ( !support.attributes || !assert( function( el ) {
27462945 el.innerHTML = "<input/>";
27472946 el.firstChild.setAttribute( "value", "" );
27482947 return el.firstChild.getAttribute( "value" ) === "";
2749−}) ) {
2750− addHandle( "value", function( elem, name, isXML ) {
2948+} ) ) {
2949+ addHandle( "value", function( elem, _name, isXML ) {
27512950 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
27522951 return elem.defaultValue;
27532952 }
2754− });
2953+ } );
27552954}
27562955
27572956// Support: IE<9
27582957// Use getAttributeNode to fetch booleans when getAttribute lies
2759−if ( !assert(function( el ) {
2760− return el.getAttribute("disabled") == null;
2761−}) ) {
2958+if ( !assert( function( el ) {
2959+ return el.getAttribute( "disabled" ) == null;
2960+} ) ) {
27622961 addHandle( booleans, function( elem, name, isXML ) {
27632962 var val;
27642963 if ( !isXML ) {
27652964 return elem[ name ] === true ? name.toLowerCase() :
2766− (val = elem.getAttributeNode( name )) && val.specified ?
2965+ ( val = elem.getAttributeNode( name ) ) && val.specified ?
27672966 val.value :
2768− null;
2967+ null;
27692968 }
2770− });
2969+ } );
27712970}
27722971
27732972return Sizzle;
27742973
2775−})( window );
2974+} )( window );
27762975
27772976
27782977
@@ -3141,7 +3340,7 @@ jQuery.each( {
31413340 parents: function( elem ) {
31423341 return dir( elem, "parentNode" );
31433342 },
3144− parentsUntil: function( elem, i, until ) {
3343+ parentsUntil: function( elem, _i, until ) {
31453344 return dir( elem, "parentNode", until );
31463345 },
31473346 next: function( elem ) {
@@ -3156,10 +3355,10 @@ jQuery.each( {
31563355 prevAll: function( elem ) {
31573356 return dir( elem, "previousSibling" );
31583357 },
3159− nextUntil: function( elem, i, until ) {
3358+ nextUntil: function( elem, _i, until ) {
31603359 return dir( elem, "nextSibling", until );
31613360 },
3162− prevUntil: function( elem, i, until ) {
3361+ prevUntil: function( elem, _i, until ) {
31633362 return dir( elem, "previousSibling", until );
31643363 },
31653364 siblings: function( elem ) {
@@ -3169,7 +3368,13 @@ jQuery.each( {
31693368 return siblings( elem.firstChild );
31703369 },
31713370 contents: function( elem ) {
3172− if ( typeof elem.contentDocument !== "undefined" ) {
3371+ if ( elem.contentDocument != null &&
3372+
3373+ // Support: IE 11+
3374+ // <object> elements with no `data` attribute has an object
3375+ // `contentDocument` with a `null` prototype.
3376+ getProto( elem.contentDocument ) ) {
3377+
31733378 return elem.contentDocument;
31743379 }
31753380
@@ -3512,7 +3717,7 @@ jQuery.extend( {
35123717 var fns = arguments;
35133718
35143719 return jQuery.Deferred( function( newDefer ) {
3515− jQuery.each( tuples, function( i, tuple ) {
3720+ jQuery.each( tuples, function( _i, tuple ) {
35163721
35173722 // Map tuples (progress, done, fail) to arguments (done, fail, progress)
35183723 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
@@ -3965,7 +4170,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
39654170 // ...except when executing function values
39664171 } else {
39674172 bulk = fn;
3968− fn = function( elem, key, value ) {
4173+ fn = function( elem, _key, value ) {
39694174 return bulk.call( jQuery( elem ), value );
39704175 };
39714176 }
@@ -4000,7 +4205,7 @@ var rmsPrefix = /^-ms-/,
40004205 rdashAlpha = /-([a-z])/g;
40014206
40024207// Used by camelCase as callback to replace()
4003−function fcamelCase( all, letter ) {
4208+function fcamelCase( _all, letter ) {
40044209 return letter.toUpperCase();
40054210}
40064211
@@ -4528,27 +4733,6 @@ var isHiddenWithinTree = function( elem, el ) {
45284733 jQuery.css( elem, "display" ) === "none";
45294734 };
45304735
4531−var swap = function( elem, options, callback, args ) {
4532− var ret, name,
4533− old = {};
4534−
4535− // Remember the old values, and insert the new ones
4536− for ( name in options ) {
4537− old[ name ] = elem.style[ name ];
4538− elem.style[ name ] = options[ name ];
4539− }
4540−
4541− ret = callback.apply( elem, args || [] );
4542−
4543− // Revert the old values
4544− for ( name in options ) {
4545− elem.style[ name ] = old[ name ];
4546− }
4547−
4548− return ret;
4549−};
4550−
4551−
45524736
45534737
45544738function adjustCSS( elem, prop, valueParts, tween ) {
@@ -4719,11 +4903,40 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
47194903
47204904
47214905
4722−// We have to close these tags to support XHTML (#13200)
4723−var wrapMap = {
4906+( function() {
4907+ var fragment = document.createDocumentFragment(),
4908+ div = fragment.appendChild( document.createElement( "div" ) ),
4909+ input = document.createElement( "input" );
4910+
4911+ // Support: Android 4.0 - 4.3 only
4912+ // Check state lost if the name is set (#11217)
4913+ // Support: Windows Web Apps (WWA)
4914+ // `name` and `type` must use .setAttribute for WWA (#14901)
4915+ input.setAttribute( "type", "radio" );
4916+ input.setAttribute( "checked", "checked" );
4917+ input.setAttribute( "name", "t" );
4918+
4919+ div.appendChild( input );
4920+
4921+ // Support: Android <=4.1 only
4922+ // Older WebKit doesn't clone checked state correctly in fragments
4923+ support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
4924+
4925+ // Support: IE <=11 only
4926+ // Make sure textarea (and checkbox) defaultValue is properly cloned
4927+ div.innerHTML = "<textarea>x</textarea>";
4928+ support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
47244929
47254930 // Support: IE <=9 only
4726− option: [ 1, "<select multiple='multiple'>", "</select>" ],
4931+ // IE <=9 replaces <option> tags with their contents when inserted outside of
4932+ // the select element.
4933+ div.innerHTML = "<option></option>";
4934+ support.option = !!div.lastChild;
4935+} )();
4936+
4937+
4938+// We have to close these tags to support XHTML (#13200)
4939+var wrapMap = {
47274940
47284941 // XHTML parsers do not magically insert elements in the
47294942 // same way that tag soup parsers do. So we cannot shorten
@@ -4736,12 +4949,14 @@ var wrapMap = {
47364949 _default: [ 0, "", "" ]
47374950};
47384951
4739−// Support: IE <=9 only
4740−wrapMap.optgroup = wrapMap.option;
4741−
47424952wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
47434953wrapMap.th = wrapMap.td;
47444954
4955+// Support: IE <=9 only
4956+if ( !support.option ) {
4957+ wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
4958+}
4959+
47454960
47464961function getAll( context, tag ) {
47474962
@@ -4874,32 +5089,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
48745089}
48755090
48765091
4877−( function() {
4878− var fragment = document.createDocumentFragment(),
4879− div = fragment.appendChild( document.createElement( "div" ) ),
4880− input = document.createElement( "input" );
4881−
4882− // Support: Android 4.0 - 4.3 only
4883− // Check state lost if the name is set (#11217)
4884− // Support: Windows Web Apps (WWA)
4885− // `name` and `type` must use .setAttribute for WWA (#14901)
4886− input.setAttribute( "type", "radio" );
4887− input.setAttribute( "checked", "checked" );
4888− input.setAttribute( "name", "t" );
4889−
4890− div.appendChild( input );
4891−
4892− // Support: Android <=4.1 only
4893− // Older WebKit doesn't clone checked state correctly in fragments
4894− support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
4895−
4896− // Support: IE <=11 only
4897− // Make sure textarea (and checkbox) defaultValue is properly cloned
4898− div.innerHTML = "<textarea>x</textarea>";
4899− support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4900−} )();
4901−
4902−
49035092var
49045093 rkeyEvent = /^key/,
49055094 rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
@@ -5008,8 +5197,8 @@ jQuery.event = {
50085197 special, handlers, type, namespaces, origType,
50095198 elemData = dataPriv.get( elem );
50105199
5011− // Don't attach events to noData or text/comment nodes (but allow plain objects)
5012− if ( !elemData ) {
5200+ // Only attach events to objects that accept data
5201+ if ( !acceptData( elem ) ) {
50135202 return;
50145203 }
50155204
@@ -5033,7 +5222,7 @@ jQuery.event = {
50335222
50345223 // Init the element's event structure and main handler, if this is the first
50355224 if ( !( events = elemData.events ) ) {
5036− events = elemData.events = {};
5225+ events = elemData.events = Object.create( null );
50375226 }
50385227 if ( !( eventHandle = elemData.handle ) ) {
50395228 eventHandle = elemData.handle = function( e ) {
@@ -5191,12 +5380,15 @@ jQuery.event = {
51915380
51925381 dispatch: function( nativeEvent ) {
51935382
5194− // Make a writable jQuery.Event from the native event object
5195− var event = jQuery.event.fix( nativeEvent );
5196−
51975383 var i, j, ret, matched, handleObj, handlerQueue,
51985384 args = new Array( arguments.length ),
5199− handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
5385+
5386+ // Make a writable jQuery.Event from the native event object
5387+ event = jQuery.event.fix( nativeEvent ),
5388+
5389+ handlers = (
5390+ dataPriv.get( this, "events" ) || Object.create( null )
5391+ )[ event.type ] || [],
52005392 special = jQuery.event.special[ event.type ] || {};
52015393
52025394 // Use the fix-ed jQuery.Event rather than the (read-only) native event
@@ -5771,13 +5963,6 @@ jQuery.fn.extend( {
57715963
57725964var
57735965
5774− /* eslint-disable max-len */
5775−
5776− // See https://github.com/eslint/eslint/issues/3229
5777− rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
5778−
5779− /* eslint-enable */
5780−
57815966 // Support: IE <=10 - 11, Edge 12 - 13 only
57825967 // In IE/Edge using regex groups here causes severe slowdowns.
57835968 // See https://connect.microsoft.com/IE/feedback/details/1736512/
@@ -5814,7 +5999,7 @@ function restoreScript( elem ) {
58145999}
58156000
58166001function cloneCopyEvent( src, dest ) {
5817− var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
6002+ var i, l, type, pdataOld, udataOld, udataCur, events;
58186003
58196004 if ( dest.nodeType !== 1 ) {
58206005 return;
@@ -5822,13 +6007,11 @@ function cloneCopyEvent( src, dest ) {
58226007
58236008 // 1. Copy private data: events, handlers, etc.
58246009 if ( dataPriv.hasData( src ) ) {
5825− pdataOld = dataPriv.access( src );
5826− pdataCur = dataPriv.set( dest, pdataOld );
6010+ pdataOld = dataPriv.get( src );
58276011 events = pdataOld.events;
58286012
58296013 if ( events ) {
5830− delete pdataCur.handle;
5831− pdataCur.events = {};
6014+ dataPriv.remove( dest, "handle events" );
58326015
58336016 for ( type in events ) {
58346017 for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -5864,7 +6047,7 @@ function fixInput( src, dest ) {
58646047function domManip( collection, args, callback, ignored ) {
58656048
58666049 // Flatten any nested arrays
5867− args = concat.apply( [], args );
6050+ args = flat( args );
58686051
58696052 var fragment, first, scripts, hasScripts, node, doc,
58706053 i = 0,
@@ -5939,7 +6122,7 @@ function domManip( collection, args, callback, ignored ) {
59396122 if ( jQuery._evalUrl && !node.noModule ) {
59406123 jQuery._evalUrl( node.src, {
59416124 nonce: node.nonce || node.getAttribute( "nonce" )
5942− } );
6125+ }, doc );
59436126 }
59446127 } else {
59456128 DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
@@ -5976,7 +6159,7 @@ function remove( elem, selector, keepData ) {
59766159
59776160jQuery.extend( {
59786161 htmlPrefilter: function( html ) {
5979− return html.replace( rxhtmlTag, "<$1></$2>" );
6162+ return html;
59806163 },
59816164
59826165 clone: function( elem, dataAndEvents, deepDataAndEvents ) {
@@ -6238,6 +6421,27 @@ var getStyles = function( elem ) {
62386421 return view.getComputedStyle( elem );
62396422 };
62406423
6424+var swap = function( elem, options, callback ) {
6425+ var ret, name,
6426+ old = {};
6427+
6428+ // Remember the old values, and insert the new ones
6429+ for ( name in options ) {
6430+ old[ name ] = elem.style[ name ];
6431+ elem.style[ name ] = options[ name ];
6432+ }
6433+
6434+ ret = callback.call( elem );
6435+
6436+ // Revert the old values
6437+ for ( name in options ) {
6438+ elem.style[ name ] = old[ name ];
6439+ }
6440+
6441+ return ret;
6442+};
6443+
6444+
62416445var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
62426446
62436447
@@ -6295,7 +6499,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
62956499 }
62966500
62976501 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
6298− reliableMarginLeftVal,
6502+ reliableTrDimensionsVal, reliableMarginLeftVal,
62996503 container = document.createElement( "div" ),
63006504 div = document.createElement( "div" );
63016505
@@ -6330,6 +6534,35 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
63306534 scrollboxSize: function() {
63316535 computeStyleTests();
63326536 return scrollboxSizeVal;
6537+ },
6538+
6539+ // Support: IE 9 - 11+, Edge 15 - 18+
6540+ // IE/Edge misreport `getComputedStyle` of table rows with width/height
6541+ // set in CSS while `offset*` properties report correct values.
6542+ // Behavior in IE 9 is more subtle than in newer versions & it passes
6543+ // some versions of this test; make sure not to make it pass there!
6544+ reliableTrDimensions: function() {
6545+ var table, tr, trChild, trStyle;
6546+ if ( reliableTrDimensionsVal == null ) {
6547+ table = document.createElement( "table" );
6548+ tr = document.createElement( "tr" );
6549+ trChild = document.createElement( "div" );
6550+
6551+ table.style.cssText = "position:absolute;left:-11111px";
6552+ tr.style.height = "1px";
6553+ trChild.style.height = "9px";
6554+
6555+ documentElement
6556+ .appendChild( table )
6557+ .appendChild( tr )
6558+ .appendChild( trChild );
6559+
6560+ trStyle = window.getComputedStyle( tr );
6561+ reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
6562+
6563+ documentElement.removeChild( table );
6564+ }
6565+ return reliableTrDimensionsVal;
63336566 }
63346567 } );
63356568} )();
@@ -6454,7 +6687,7 @@ var
64546687 fontWeight: "400"
64556688 };
64566689
6457−function setPositiveNumber( elem, value, subtract ) {
6690+function setPositiveNumber( _elem, value, subtract ) {
64586691
64596692 // Any relative (+/-) values have already been
64606693 // normalized at this point
@@ -6559,17 +6792,26 @@ function getWidthOrHeight( elem, dimension, extra ) {
65596792 }
65606793
65616794
6562− // Fall back to offsetWidth/offsetHeight when value is "auto"
6563− // This happens for inline elements with no explicit setting (gh-3571)
6564− // Support: Android <=4.1 - 4.3 only
6565− // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6566− // Support: IE 9-11 only
6567− // Also use offsetWidth/offsetHeight for when box sizing is unreliable
6568− // We use getClientRects() to check for hidden/disconnected.
6569− // In those cases, the computed value can be trusted to be border-box
6795+ // Support: IE 9 - 11 only
6796+ // Use offsetWidth/offsetHeight for when box sizing is unreliable.
6797+ // In those cases, the computed value can be trusted to be border-box.
65706798 if ( ( !support.boxSizingReliable() && isBorderBox ||
6799+
6800+ // Support: IE 10 - 11+, Edge 15 - 18+
6801+ // IE/Edge misreport `getComputedStyle` of table rows with width/height
6802+ // set in CSS while `offset*` properties report correct values.
6803+ // Interestingly, in some cases IE 9 doesn't suffer from this issue.
6804+ !support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
6805+
6806+ // Fall back to offsetWidth/offsetHeight when value is "auto"
6807+ // This happens for inline elements with no explicit setting (gh-3571)
65716808 val === "auto" ||
6809+
6810+ // Support: Android <=4.1 - 4.3 only
6811+ // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
65726812 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
6813+
6814+ // Make sure the element is visible & connected
65736815 elem.getClientRects().length ) {
65746816
65756817 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
@@ -6764,7 +7006,7 @@ jQuery.extend( {
67647006 }
67657007} );
67667008
6767−jQuery.each( [ "height", "width" ], function( i, dimension ) {
7009+jQuery.each( [ "height", "width" ], function( _i, dimension ) {
67687010 jQuery.cssHooks[ dimension ] = {
67697011 get: function( elem, computed, extra ) {
67707012 if ( computed ) {
@@ -7537,7 +7779,7 @@ jQuery.fn.extend( {
75377779 clearQueue = type;
75387780 type = undefined;
75397781 }
7540− if ( clearQueue && type !== false ) {
7782+ if ( clearQueue ) {
75417783 this.queue( type || "fx", [] );
75427784 }
75437785
@@ -7620,7 +7862,7 @@ jQuery.fn.extend( {
76207862 }
76217863} );
76227864
7623−jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
7865+jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
76247866 var cssFn = jQuery.fn[ name ];
76257867 jQuery.fn[ name ] = function( speed, easing, callback ) {
76267868 return speed == null || typeof speed === "boolean" ?
@@ -7841,7 +8083,7 @@ boolHook = {
78418083 }
78428084};
78438085
7844−jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
8086+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
78458087 var getter = attrHandle[ name ] || jQuery.find.attr;
78468088
78478089 attrHandle[ name ] = function( elem, name, isXML ) {
@@ -8465,7 +8707,9 @@ jQuery.extend( jQuery.event, {
84658707 special.bindType || type;
84668708
84678709 // jQuery handler
8468− handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
8710+ handle = (
8711+ dataPriv.get( cur, "events" ) || Object.create( null )
8712+ )[ event.type ] &&
84698713 dataPriv.get( cur, "handle" );
84708714 if ( handle ) {
84718715 handle.apply( cur, data );
@@ -8576,7 +8820,10 @@ if ( !support.focusin ) {
85768820
85778821 jQuery.event.special[ fix ] = {
85788822 setup: function() {
8579− var doc = this.ownerDocument || this,
8823+
8824+ // Handle: regular nodes (via `this.ownerDocument`), window
8825+ // (via `this.document`) & document (via `this`).
8826+ var doc = this.ownerDocument || this.document || this,
85808827 attaches = dataPriv.access( doc, fix );
85818828
85828829 if ( !attaches ) {
@@ -8585,7 +8832,7 @@ if ( !support.focusin ) {
85858832 dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
85868833 },
85878834 teardown: function() {
8588− var doc = this.ownerDocument || this,
8835+ var doc = this.ownerDocument || this.document || this,
85898836 attaches = dataPriv.access( doc, fix ) - 1;
85908837
85918838 if ( !attaches ) {
@@ -8601,7 +8848,7 @@ if ( !support.focusin ) {
86018848}
86028849var location = window.location;
86038850
8604−var nonce = Date.now();
8851+var nonce = { guid: Date.now() };
86058852
86068853var rquery = ( /\?/ );
86078854
@@ -8733,7 +8980,7 @@ jQuery.fn.extend( {
87338980 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
87348981 ( this.checked || !rcheckableType.test( type ) );
87358982 } )
8736− .map( function( i, elem ) {
8983+ .map( function( _i, elem ) {
87378984 var val = jQuery( this ).val();
87388985
87398986 if ( val == null ) {
@@ -9346,7 +9593,8 @@ jQuery.extend( {
93469593 // Add or update anti-cache param if needed
93479594 if ( s.cache === false ) {
93489595 cacheURL = cacheURL.replace( rantiCache, "$1" );
9349− uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
9596+ uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
9597+ uncached;
93509598 }
93519599
93529600 // Put hash and anti-cache on the URL that will be requested (gh-1732)
@@ -9479,6 +9727,11 @@ jQuery.extend( {
94799727 response = ajaxHandleResponses( s, jqXHR, responses );
94809728 }
94819729
9730+ // Use a noop converter for missing script
9731+ if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
9732+ s.converters[ "text script" ] = function() {};
9733+ }
9734+
94829735 // Convert no matter what (that way responseXXX fields are always set)
94839736 response = ajaxConvert( s, response, jqXHR, isSuccess );
94849737
@@ -9569,7 +9822,7 @@ jQuery.extend( {
95699822 }
95709823} );
95719824
9572−jQuery.each( [ "get", "post" ], function( i, method ) {
9825+jQuery.each( [ "get", "post" ], function( _i, method ) {
95739826 jQuery[ method ] = function( url, data, callback, type ) {
95749827
95759828 // Shift arguments if data argument was omitted
@@ -9590,8 +9843,17 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
95909843 };
95919844} );
95929845
9846+jQuery.ajaxPrefilter( function( s ) {
9847+ var i;
9848+ for ( i in s.headers ) {
9849+ if ( i.toLowerCase() === "content-type" ) {
9850+ s.contentType = s.headers[ i ] || "";
9851+ }
9852+ }
9853+} );
9854+
95939855
9594−jQuery._evalUrl = function( url, options ) {
9856+jQuery._evalUrl = function( url, options, doc ) {
95959857 return jQuery.ajax( {
95969858 url: url,
95979859
@@ -9609,7 +9871,7 @@ jQuery._evalUrl = function( url, options ) {
96099871 "text script": function() {}
96109872 },
96119873 dataFilter: function( response ) {
9612− jQuery.globalEval( response, options );
9874+ jQuery.globalEval( response, options, doc );
96139875 }
96149876 } );
96159877};
@@ -9931,7 +10193,7 @@ var oldCallbacks = [],
993110193jQuery.ajaxSetup( {
993210194 jsonp: "callback",
993310195 jsonpCallback: function() {
9934− var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
10196+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
993510197 this[ callback ] = true;
993610198 return callback;
993710199 }
@@ -10148,23 +10410,6 @@ jQuery.fn.load = function( url, params, callback ) {
1014810410
1014910411
1015010412
10151−// Attach a bunch of functions for handling common AJAX events
10152−jQuery.each( [
10153− "ajaxStart",
10154− "ajaxStop",
10155− "ajaxComplete",
10156− "ajaxError",
10157− "ajaxSuccess",
10158− "ajaxSend"
10159−], function( i, type ) {
10160− jQuery.fn[ type ] = function( fn ) {
10161− return this.on( type, fn );
10162− };
10163−} );
10164−
10165−
10166−
10167−
1016810413jQuery.expr.pseudos.animated = function( elem ) {
1016910414 return jQuery.grep( jQuery.timers, function( fn ) {
1017010415 return elem === fn.elem;
@@ -10221,6 +10466,12 @@ jQuery.offset = {
1022110466 options.using.call( elem, props );
1022210467
1022310468 } else {
10469+ if ( typeof props.top === "number" ) {
10470+ props.top += "px";
10471+ }
10472+ if ( typeof props.left === "number" ) {
10473+ props.left += "px";
10474+ }
1022410475 curElem.css( props );
1022510476 }
1022610477 }
@@ -10371,7 +10622,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
1037110622// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
1037210623// getComputedStyle returns percent when specified for top/left/bottom/right;
1037310624// rather than make the css module depend on the offset module, just check for it here
10374−jQuery.each( [ "top", "left" ], function( i, prop ) {
10625+jQuery.each( [ "top", "left" ], function( _i, prop ) {
1037510626 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
1037610627 function( elem, computed ) {
1037710628 if ( computed ) {
@@ -10434,25 +10685,19 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
1043410685} );
1043510686
1043610687
10437−jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
10438− "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
10439− "change select submit keydown keypress keyup contextmenu" ).split( " " ),
10440− function( i, name ) {
10441−
10442− // Handle event binding
10443− jQuery.fn[ name ] = function( data, fn ) {
10444− return arguments.length > 0 ?
10445− this.on( name, null, data, fn ) :
10446− this.trigger( name );
10688+jQuery.each( [
10689+ "ajaxStart",
10690+ "ajaxStop",
10691+ "ajaxComplete",
10692+ "ajaxError",
10693+ "ajaxSuccess",
10694+ "ajaxSend"
10695+], function( _i, type ) {
10696+ jQuery.fn[ type ] = function( fn ) {
10697+ return this.on( type, fn );
1044710698 };
1044810699} );
1044910700
10450−jQuery.fn.extend( {
10451− hover: function( fnOver, fnOut ) {
10452− return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
10453− }
10454−} );
10455−
1045610701
1045710702
1045810703
@@ -10474,9 +10719,33 @@ jQuery.fn.extend( {
1047410719 return arguments.length === 1 ?
1047510720 this.off( selector, "**" ) :
1047610721 this.off( types, selector || "**", fn );
10722+ },
10723+
10724+ hover: function( fnOver, fnOut ) {
10725+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
1047710726 }
1047810727} );
1047910728
10729+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
10730+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
10731+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
10732+ function( _i, name ) {
10733+
10734+ // Handle event binding
10735+ jQuery.fn[ name ] = function( data, fn ) {
10736+ return arguments.length > 0 ?
10737+ this.on( name, null, data, fn ) :
10738+ this.trigger( name );
10739+ };
10740+ } );
10741+
10742+
10743+
10744+
10745+// Support: Android <=4.0 only
10746+// Make sure we trim BOM and NBSP
10747+var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
10748+
1048010749// Bind a function to a context, optionally partially applying any
1048110750// arguments.
1048210751// jQuery.proxy is deprecated to promote standards (specifically Function#bind)
@@ -10539,6 +10808,11 @@ jQuery.isNumeric = function( obj ) {
1053910808 !isNaN( obj - parseFloat( obj ) );
1054010809};
1054110810
10811+jQuery.trim = function( text ) {
10812+ return text == null ?
10813+ "" :
10814+ ( text + "" ).replace( rtrim, "" );
10815+};
1054210816
1054310817
1054410818
@@ -10587,7 +10861,7 @@ jQuery.noConflict = function( deep ) {
1058710861// Expose jQuery and $ identifiers, even in AMD
1058810862// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
1058910863// and CommonJS for browser emulators (#13566)
10590−if ( !noGlobal ) {
10864+if ( typeof noGlobal === "undefined" ) {
1059110865 window.jQuery = window.$ = jQuery;
1059210866}
1059310867
_static/jquery.js+2−2
@@ -1,2 +1,2 @@
1−/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
2−!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}k.fn=k.prototype={jquery:f,constructor:k,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=k.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return k.each(this,e)},map:function(n){return this.pushStack(k.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},k.extend=k.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||k.isPlainObject(n)?n:{},i=!1,a[t]=k.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},k.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t){b(e,{nonce:t&&t.nonce})},each:function(e,t){var n,r=0;if(d(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(p,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(d(Object(e))?k.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(d(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g.apply([],a)},guid:1,support:y}),"function"==typeof Symbol&&(k.fn[Symbol.iterator]=t[Symbol.iterator]),k.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var h=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,k="sizzle"+1*new Date,m=n.document,S=0,r=0,p=ue(),x=ue(),N=ue(),A=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",$=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",F=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!==C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!==C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(F," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[S,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===S&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[k]||(a[k]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[S,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[k]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[k]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[S,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[k]||(e[k]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===S&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[k]&&(v=Ce(v)),y&&!y[k]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[k]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=N[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[k]?i.push(a):o.push(a);(a=N(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=S+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t===C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument===C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(S=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(S=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=k.split("").sort(D).join("")===k,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);k.find=h,k.expr=h.selectors,k.expr[":"]=k.expr.pseudos,k.uniqueSort=k.unique=h.uniqueSort,k.text=h.getText,k.isXMLDoc=h.isXML,k.contains=h.contains,k.escapeSelector=h.escape;var T=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&k(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},N=k.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1<i.call(n,e)!==r}):k.filter(n,e,r)}k.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?k.find.matchesSelector(r,e)?[r]:[]:k.find.matches(e,k.grep(t,function(e){return 1===e.nodeType}))},k.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(k(e).filter(function(){for(t=0;t<r;t++)if(k.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)k.find(e,i[t],n);return 1<r?k.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&N.test(e)?k(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(k.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&k(e);if(!N.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&k.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?k.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(k(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(k.uniqueSort(k.merge(this.get(),k(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),k.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return T(e,"parentNode")},parentsUntil:function(e,t,n){return T(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return T(e,"nextSibling")},prevAll:function(e){return T(e,"previousSibling")},nextUntil:function(e,t,n){return T(e,"nextSibling",n)},prevUntil:function(e,t,n){return T(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return"undefined"!=typeof e.contentDocument?e.contentDocument:(A(e,"template")&&(e=e.content||e),k.merge([],e.childNodes))}},function(r,i){k.fn[r]=function(e,t){var n=k.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=k.filter(t,n)),1<this.length&&(O[r]||k.uniqueSort(n),H.test(r)&&n.reverse()),this.pushStack(n)}});var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}k.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},k.each(e.match(R)||[],function(e,t){n[t]=!0}),n):k.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){k.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return k.each(arguments,function(e,t){var n;while(-1<(n=k.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<k.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},k.extend({Deferred:function(e){var o=[["notify","progress",k.Callbacks("memory"),k.Callbacks("memory"),2],["resolve","done",k.Callbacks("once memory"),k.Callbacks("once memory"),0,"resolved"],["reject","fail",k.Callbacks("once memory"),k.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return k.Deferred(function(r){k.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,M,s),l(u,o,I,s)):(u++,t.call(e,l(u,o,M,s),l(u,o,I,s),l(u,o,M,o.notifyWith))):(a!==M&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){k.Deferred.exceptionHook&&k.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==I&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(k.Deferred.getStackHook&&(t.stackTrace=k.Deferred.getStackHook()),C.setTimeout(t))}}return k.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:M,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:M)),o[2][3].add(l(0,e,m(n)?n:I))}).promise()},promise:function(e){return null!=e?k.extend(e,a):a}},s={};return k.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=k.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(W(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)W(i[t],a(t),o.reject);return o.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;k.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&$.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},k.readyException=function(e){C.setTimeout(function(){throw e})};var F=k.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),k.ready()}k.fn.ready=function(e){return F.then(e)["catch"](function(e){k.readyException(e)}),this},k.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--k.readyWait:k.isReady)||(k.isReady=!0)!==e&&0<--k.readyWait||F.resolveWith(E,[k])}}),k.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(k.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var _=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)_(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(k(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},z=/^-ms-/,U=/-([a-z])/g;function X(e,t){return t.toUpperCase()}function V(e){return e.replace(z,"ms-").replace(U,X)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=k.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[V(t)]=n;else for(r in t)i[V(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][V(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(V):(t=V(t))in r?[t]:t.match(R)||[]).length;while(n--)delete r[t[n]]}(void 0===t||k.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!k.isEmptyObject(t)}};var Q=new Y,J=new Y,K=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function ee(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(Z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:K.test(i)?JSON.parse(i):i)}catch(e){}J.set(e,t,n)}else n=void 0;return n}k.extend({hasData:function(e){return J.hasData(e)||Q.hasData(e)},data:function(e,t,n){return J.access(e,t,n)},removeData:function(e,t){J.remove(e,t)},_data:function(e,t,n){return Q.access(e,t,n)},_removeData:function(e,t){Q.remove(e,t)}}),k.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=J.get(o),1===o.nodeType&&!Q.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=V(r.slice(5)),ee(o,r,i[r]));Q.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){J.set(this,n)}):_(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=J.get(o,n))?t:void 0!==(t=ee(o,n))?t:void 0;this.each(function(){J.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){J.remove(this,e)})}}),k.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Q.get(e,t),n&&(!r||Array.isArray(n)?r=Q.access(e,t,k.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=k.queue(e,t),r=n.length,i=n.shift(),o=k._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){k.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Q.get(e,n)||Q.access(e,n,{empty:k.Callbacks("once memory").add(function(){Q.remove(e,[t+"queue",n])})})}}),k.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?k.queue(this[0],t):void 0===n?this:this.each(function(){var e=k.queue(this,t,n);k._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&k.dequeue(this,t)})},dequeue:function(e){return this.each(function(){k.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=k.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Q.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ne=new RegExp("^(?:([+-])=|)("+te+")([a-z%]*)$","i"),re=["Top","Right","Bottom","Left"],ie=E.documentElement,oe=function(e){return k.contains(e.ownerDocument,e)},ae={composed:!0};ie.getRootNode&&(oe=function(e){return k.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var se=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&oe(e)&&"none"===k.css(e,"display")},ue=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];for(o in i=n.apply(e,r||[]),t)e.style[o]=a[o];return i};function le(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return k.css(e,t,"")},u=s(),l=n&&n[3]||(k.cssNumber[t]?"":"px"),c=e.nodeType&&(k.cssNumber[t]||"px"!==l&&+u)&&ne.exec(k.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)k.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,k.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Q.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&se(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ce[s])||(o=a.body.appendChild(a.createElement(s)),u=k.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ce[s]=u)))):"none"!==n&&(l[c]="none",Q.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}k.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){se(this)?k(this).show():k(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Q.set(e[n],"globalEval",!t||Q.get(t[n],"globalEval"))}ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;var me,xe,be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))k.merge(p,o.nodeType?[o]:o);else if(be.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+k.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;k.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<k.inArray(o,r))i&&i.push(o);else if(l=oe(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}me=E.createDocumentFragment().appendChild(E.createElement("div")),(xe=E.createElement("input")).setAttribute("type","radio"),xe.setAttribute("checked","checked"),xe.setAttribute("name","t"),me.appendChild(xe),y.checkClone=me.cloneNode(!0).cloneNode(!0).lastChild.checked,me.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t<arguments.length;t++)u[t]=arguments[t];if(s.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,s)){a=k.event.handlers.call(this,s,l),t=0;while((i=a[t++])&&!s.isPropagationStopped()){s.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!s.isImmediatePropagationStopped())s.rnamespace&&!1!==o.namespace&&!s.rnamespace.test(o.namespace)||(s.handleObj=o,s.data=o.data,void 0!==(r=((k.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,u))&&!1===(s.result=r)&&(s.preventDefault(),s.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,s),s.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<k(i,this).index(l):k.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(k.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[k.expando]?e:new k.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click",ke),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&De(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Q.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},k.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},k.Event=function(e,t){if(!(this instanceof k.Event))return new k.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?ke:Se,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&k.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[k.expando]=!0},k.Event.prototype={constructor:k.Event,isDefaultPrevented:Se,isPropagationStopped:Se,isImmediatePropagationStopped:Se,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=ke,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=ke,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=ke,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},k.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&Te.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Ce.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},k.event.addProp),k.each({focus:"focusin",blur:"focusout"},function(e,t){k.event.special[e]={setup:function(){return De(this,e,Ne),!1},trigger:function(){return De(this,e),!0},delegateType:t}}),k.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){k.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||k.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),k.fn.extend({on:function(e,t,n,r){return Ae(this,e,t,n,r)},one:function(e,t,n,r){return Ae(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,k(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Se),this.each(function(){k.event.remove(this,e,n,t)})}});var je=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/<script|<style|<link/i,Le=/checked\s*(?:[^=]|=\s*.checked.)/i,He=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n<r;n++)k.event.add(t,i,l[i][n]);J.hasData(e)&&(s=J.access(e),u=k.extend({},s),J.set(t,u))}}function Ie(n,r,i,o){r=g.apply([],r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Le.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Ie(t,r,i,o)});if(f&&(t=(e=we(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=k.map(ve(e,"script"),Pe)).length;c<f;c++)u=e,c!==p&&(u=k.clone(u,!0,!0),s&&k.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,k.map(a,Re),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Q.access(u,"globalEval")&&k.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?k._evalUrl&&!u.noModule&&k._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")}):b(u.textContent.replace(He,""),u,l))}return n}function We(e,t,n){for(var r,i=t?k.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||k.cleanData(ve(r)),r.parentNode&&(n&&oe(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}k.extend({htmlPrefilter:function(e){return e.replace(je,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Me(o[r],a[r]);else Me(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return We(this,e,!0)},remove:function(e){return We(this,e)},text:function(e){return _(this,function(e){return void 0===e?k.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Ie(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Oe(this,e).appendChild(e)})},prepend:function(){return Ie(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Oe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Ie(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return k.clone(this,e,t)})},html:function(e){return _(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!qe.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(k.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Ie(this,arguments,function(e){var t=this.parentNode;k.inArray(this,n)<0&&(k.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),k.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){k.fn[e]=function(e){for(var t,n=[],r=k(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),k(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var $e=new RegExp("^("+te+")(?!px)[a-z%]+$","i"),Fe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Be=new RegExp(re.join("|"),"i");function _e(e,t,n){var r,i,o,a,s=e.style;return(n=n||Fe(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||oe(e)||(a=k.style(e,t)),!y.pixelBoxStyles()&&$e.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(u){s.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",u.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ie.appendChild(s).appendChild(u);var e=C.getComputedStyle(u);n="1%"!==e.top,a=12===t(e.marginLeft),u.style.right="60%",o=36===t(e.right),r=36===t(e.width),u.style.position="absolute",i=12===t(u.offsetWidth/3),ie.removeChild(s),u=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s=E.createElement("div"),u=E.createElement("div");u.style&&(u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===u.style.backgroundClip,k.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),a},scrollboxSize:function(){return e(),i}}))}();var Ue=["Webkit","Moz","ms"],Xe=E.createElement("div").style,Ve={};function Ge(e){var t=k.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;while(n--)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ye=/^(none|table(?!-c[ea]).+)/,Qe=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=ne.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=k.css(e,n+re[a],!0,i)),r?("content"===n&&(u-=k.css(e,"padding"+re[a],!0,i)),"margin"!==n&&(u-=k.css(e,"border"+re[a]+"Width",!0,i))):(u+=k.css(e,"padding"+re[a],!0,i),"padding"!==n?u+=k.css(e,"border"+re[a]+"Width",!0,i):s+=k.css(e,"border"+re[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function tt(e,t,n){var r=Fe(e),i=(!y.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=_e(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if($e.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=_e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=V(t),u=Qe.test(t),l=e.style;if(u||(t=Ge(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=ne.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=V(t);return Qe.test(t)||(t=Ge(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=_e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],function(e,u){k.cssHooks[u]={get:function(e,t,n){if(t)return!Ye.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,u,n):ue(e,Je,function(){return tt(e,u,n)})},set:function(e,t,n){var r,i=Fe(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===k.css(e,"boxSizing",!1,i),s=n?et(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-et(e,u,"border",!1,i)-.5)),s&&(r=ne.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=k.css(e,u)),Ze(0,t,s)}}}),k.cssHooks.marginLeft=ze(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(_e(e,"marginLeft"))||e.getBoundingClientRect().left-ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),k.each({margin:"",padding:"",border:"Width"},function(i,o){k.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+re[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(k.cssHooks[i+o].set=Ze)}),k.fn.extend({css:function(e,t){return _(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Fe(e),i=t.length;a<i;a++)o[t[a]]=k.css(e,t[a],!1,r);return o}return void 0!==n?k.style(e,t,n):k.css(e,t)},e,t,1<arguments.length)}}),((k.Tween=nt).prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}}).init.prototype=nt.prototype,(nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Ge(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},k.fx=nt.prototype.init,k.fx.step={};var rt,it,ot,at,st=/^(?:toggle|show|hide)$/,ut=/queueHooks$/;function lt(){it&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(lt):C.setTimeout(lt,k.fx.interval),k.fx.tick())}function ct(){return C.setTimeout(function(){rt=void 0}),rt=Date.now()}function ft(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=re[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function pt(e,t,n){for(var r,i=(dt.tweeners[t]||[]).concat(dt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function dt(o,e,t){var n,a,r=0,i=dt.prefilters.length,s=k.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=rt||ct(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:k.extend({},e),opts:k.extend(!0,{specialEasing:{},easing:k.easing._default},t),originalProperties:e,originalOptions:t,startTime:rt||ct(),duration:t.duration,tweens:[],createTween:function(e,t){var n=k.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=V(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=k.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=dt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(k._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return k.map(c,pt,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),k.fx.timer(k.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}k.Animation=k.extend(dt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,ne.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],dt.tweeners[n]=dt.tweeners[n]||[],dt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&se(e),v=Q.get(e,"fxshow");for(r in n.queue||(null==(a=k._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,k.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],st.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||k.style(e,r)}if((u=!k.isEmptyObject(t))||!k.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Q.get(e,"display")),"none"===(c=k.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=k.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===k.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Q.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&fe([e],!0),p.done(function(){for(r in g||fe([e]),Q.remove(e,"fxshow"),d)k.style(e,r,d[r])})),u=pt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?dt.prefilters.unshift(e):dt.prefilters.push(e)}}),k.speed=function(e,t,n){var r=e&&"object"==typeof e?k.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return k.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in k.fx.speeds?r.duration=k.fx.speeds[r.duration]:r.duration=k.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&k.dequeue(this,r.queue)},r},k.fn.extend({fadeTo:function(e,t,n,r){return this.filter(se).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=k.isEmptyObject(t),o=k.speed(e,n,r),a=function(){var e=dt(this,k.extend({},t),o);(i||Q.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&!1!==i&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=k.timers,r=Q.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&ut.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||k.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Q.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=k.timers,o=n?n.length:0;for(t.finish=!0,k.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),k.each(["toggle","show","hide"],function(e,r){var i=k.fn[r];k.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(ft(r,!0),e,t,n)}}),k.each({slideDown:ft("show"),slideUp:ft("hide"),slideToggle:ft("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){k.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),k.timers=[],k.fx.tick=function(){var e,t=0,n=k.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||k.fx.stop(),rt=void 0},k.fx.timer=function(e){k.timers.push(e),k.fx.start()},k.fx.interval=13,k.fx.start=function(){it||(it=!0,lt())},k.fx.stop=function(){it=null},k.fx.speeds={slow:600,fast:200,_default:400},k.fn.delay=function(r,e){return r=k.fx&&k.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},ot=E.createElement("input"),at=E.createElement("select").appendChild(E.createElement("option")),ot.type="checkbox",y.checkOn=""!==ot.value,y.optSelected=at.selected,(ot=E.createElement("input")).value="t",ot.type="radio",y.radioValue="t"===ot.value;var ht,gt=k.expr.attrHandle;k.fn.extend({attr:function(e,t){return _(this,k.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){k.removeAttr(this,e)})}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?ht:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ht={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),function(e,t){var a=gt[t]||k.find.attr;gt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=gt[o],gt[o]=r,r=null!=a(e,t,n)?o:null,gt[o]=i),r}});var vt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;function mt(e){return(e.match(R)||[]).join(" ")}function xt(e){return e.getAttribute&&e.getAttribute("class")||""}function bt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return _(this,k.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[k.propFix[e]||e]})}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):vt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){k.propFix[this.toLowerCase()]=this}),k.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).addClass(t.call(this,e,xt(this)))});if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){k(this).removeClass(t.call(this,e,xt(this)))});if(!arguments.length)return this.attr("class","");if((e=bt(t)).length)while(n=this[u++])if(i=xt(n),r=1===n.nodeType&&" "+mt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=mt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){k(this).toggleClass(i.call(this,e,xt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=k(this),r=bt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=xt(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Q.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+mt(xt(n))+" ").indexOf(t))return!0;return!1}});var wt=/\r/g;k.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,k(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=k.map(t,function(e){return null==e?"":e+""})),(r=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=k.valHooks[t.type]||k.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(wt,""):null==e?"":e:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:mt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=k(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=k.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<k.inArray(k.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<k.inArray(k(e).val(),t)}},y.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var Tt=/^(?:focusinfocus|focusoutblur)$/,Ct=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!Tt.test(d+k.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[k.expando]?e:new k.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:k.makeArray(t,[e]),c=k.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,Tt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Q.get(o,"events")||{})[e.type]&&Q.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&G(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!G(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),k.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Ct),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Ct),k.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each(function(){k.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),y.focusin||k.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){k.event.simulate(r,e.target,k.event.fix(e))};k.event.special[r]={setup:function(){var e=this.ownerDocument||this,t=Q.access(e,r);t||e.addEventListener(n,i,!0),Q.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this,t=Q.access(e,r)-1;t?Q.access(e,r,t):(e.removeEventListener(n,i,!0),Q.remove(e,r))}}});var Et=C.location,kt=Date.now(),St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Nt=/\[\]$/,At=/\r?\n/g,Dt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function qt(n,e,r,i){var t;if(Array.isArray(e))k.each(e,function(e,t){r||Nt.test(n)?i(n,t):qt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)qt(n+"["+t+"]",e[t],r,i)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,function(){i(this.name,this.value)});else for(n in e)qt(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&jt.test(this.nodeName)&&!Dt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,function(e){return{name:t.name,value:e.replace(At,"\r\n")}}):{name:t.name,value:n.replace(At,"\r\n")}}).get()}});var Lt=/%20/g,Ht=/#.*$/,Ot=/([?&])_=[^&]*/,Pt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Rt=/^(?:GET|HEAD)$/,Mt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Ft=E.createElement("a");function Bt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(R)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function _t(t,i,o,a){var s={},u=t===Wt;function l(e){var r;return s[e]=!0,k.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function zt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=Et.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,k.ajaxSettings),t):zt(k.ajaxSettings,e)},ajaxPrefilter:Bt(It),ajaxTransport:Bt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=k.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?k(y):k.event,x=k.Deferred(),b=k.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Pt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace(Mt,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(R)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ft.protocol+"//"+Ft.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=k.param(v.data,v.traditional)),_t(It,v,t,T),h)return T;for(i in(g=k.event&&v.global)&&0==k.active++&&k.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Rt.test(v.type),f=v.url.replace(Ht,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Lt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(St.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Ot,"$1"),o=(St.test(f)?"&":"?")+"_="+kt+++o),v.url=f+o),v.ifModified&&(k.lastModified[f]&&T.setRequestHeader("If-Modified-Since",k.lastModified[f]),k.etag[f]&&T.setRequestHeader("If-None-Match",k.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+$t+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=_t(Wt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(k.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(k.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--k.active||k.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],function(e,i){k[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),k.ajax(k.extend({url:e,type:i,dataType:r,data:t,success:n},k.isPlainObject(e)&&e))}}),k._evalUrl=function(e,t){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){k(this).wrapInner(n.call(this,e))}):this.each(function(){var e=k(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){k(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){k(this).replaceWith(this.childNodes)}),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Xt=k.ajaxSettings.xhr();y.cors=!!Xt&&"withCredentials"in Xt,y.ajax=Xt=!!Xt,k.ajaxTransport(function(i){var o,a;if(y.cors||Xt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Ut[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),k.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),k.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=k("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=mt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&k.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?k("<div>").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}}),k.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),k.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),k.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||k.guid++,i},k.holdReady=function(e){e?k.readyWait++:k.ready(!0)},k.isArray=Array.isArray,k.parseJSON=JSON.parse,k.nodeName=A,k.isFunction=m,k.isWindow=x,k.camelCase=V,k.type=w,k.now=Date.now,k.isNumeric=function(e){var t=k.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return k});var Qt=C.jQuery,Jt=C.$;return k.noConflict=function(e){return C.$===k&&(C.$=Jt),e&&C.jQuery===k&&(C.jQuery=Qt),k},e||(C.jQuery=C.$=k),k});
1+/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
2+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
_static/searchtools.js+1−2
@@ -166,8 +166,7 @@ var Search = {
166166 objectterms.push(tmp[i].toLowerCase());
167167 }
168168
169− if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i].match(/^\d+$/) ||
170− tmp[i] === "") {
169+ if ($u.indexOf(stopwords, tmp[i].toLowerCase()) != -1 || tmp[i] === "") {
171170 // skip this "word"
172171 continue;
173172 }
_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css+1−1
@@ -1 +1 @@
1−.ui.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin:1rem 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;min-height:2.85714286em}.ui.menu:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-bottom:0}.ui.menu .menu{margin:0}.ui.menu:not(.vertical)>.menu{display:-webkit-box;display:-ms-flexbox;display:flex}.ui.menu:not(.vertical) .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ui.menu .item{position:relative;vertical-align:middle;line-height:1;text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:0 0;padding:.92857143em 1.14285714em;text-transform:none;color:rgba(0,0,0,.87);font-weight:400;-webkit-transition:background .1s ease,color .1s ease,-webkit-box-shadow .1s ease;transition:background .1s ease,color .1s ease,-webkit-box-shadow .1s ease;transition:background .1s ease,box-shadow .1s ease,color .1s ease;transition:background .1s ease,box-shadow .1s ease,color .1s ease,-webkit-box-shadow .1s ease}.ui.menu>.item:first-child{border-radius:.28571429rem 0 0 .28571429rem}.ui.menu .item:before{position:absolute;content:'';top:0;right:0;height:100%;width:1px;background:rgba(34,36,38,.1)}.ui.menu .item>a:not(.ui),.ui.menu .item>p:only-child,.ui.menu .text.item>*{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu .item>i.icon{opacity:.9;float:none;margin:0 .35714286em 0 0}.ui.menu:not(.vertical) .item>.button{position:relative;top:0;margin:-.5em 0;padding-bottom:.78571429em;padding-top:.78571429em;font-size:1em}.ui.menu>.container,.ui.menu>.grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:inherit;-ms-flex-align:inherit;align-items:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;-ms-flex-direction:inherit;flex-direction:inherit}.ui.menu .item>.input{width:100%}.ui.menu:not(.vertical) .item>.input{position:relative;top:0;margin:-.5em 0}.ui.menu .item>.input input{font-size:1em;padding-top:.57142857em;padding-bottom:.57142857em}.ui.menu .header.item,.ui.vertical.menu .header.item{margin:0;background:'';text-transform:normal;font-weight:700}.ui.vertical.menu .item>.header:not(.ui){margin:0 0 .5em;font-size:1em;font-weight:700}.ui.menu .item>i.dropdown.icon{padding:0;float:right;margin:0 0 0 1em}.ui.menu .dropdown.item .menu{min-width:calc(100% - 1px);border-radius:0 0 .28571429rem .28571429rem;background:#fff;margin:0 0 0;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.08);box-shadow:0 1px 3px 0 rgba(0,0,0,.08);-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.ui.menu .ui.dropdown .menu>.item{margin:0;text-align:left;font-size:1em!important;padding:.78571429em 1.14285714em!important;background:0 0!important;color:rgba(0,0,0,.87)!important;text-transform:none!important;font-weight:400!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:none!important;transition:none!important}.ui.menu .ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.selected.item{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.active.item{background:rgba(0,0,0,.03)!important;font-weight:700!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown.item .menu .item:not(.filtered){display:block}.ui.menu .ui.dropdown .menu>.item .icon:not(.dropdown){display:inline-block;font-size:1em!important;float:none;margin:0 .75em 0 0!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border-radius:.28571429rem;margin-top:.35714286em}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.inverted.menu .search.dropdown.item>.search,.ui.inverted.menu .search.dropdown.item>.text{color:rgba(255,255,255,.9)}.ui.vertical.menu .dropdown.item>.icon{float:right;content:"\f0da";margin-left:1em}.ui.vertical.menu .dropdown.item .menu{left:100%;min-width:0;margin:0;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.08);box-shadow:0 1px 3px 0 rgba(0,0,0,.08);border-radius:0 .28571429rem .28571429rem .28571429rem}.ui.vertical.menu .dropdown.item.upward .menu{bottom:0}.ui.vertical.menu .dropdown.item:not(.upward) .menu{top:0}.ui.vertical.menu .active.dropdown.item{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.active.item{-webkit-box-shadow:none;box-shadow:none}.ui.item.menu .dropdown .menu .item{width:100%}.ui.menu .item>.label{background:#999;color:#fff;margin-left:1em;padding:.3em .78571429em}.ui.vertical.menu .item>.label{background:#999;color:#fff;margin-top:-.15em;margin-bottom:-.15em;padding:.3em .78571429em}.ui.menu .item>.floating.label{padding:.3em .78571429em}.ui.menu .item>img:not(.ui){display:inline-block;vertical-align:middle;margin:-.3em 0;width:2.5em}.ui.vertical.menu .item>img:not(.ui):only-child{display:block;max-width:100%;width:auto}.ui.menu .list .item:before{background:0 0!important}.ui.vertical.sidebar.menu>.item:first-child:before{display:block!important}.ui.vertical.sidebar.menu>.item::before{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.menu>.ui.container{width:100%!important;margin-left:0!important;margin-right:0!important}}@media only screen and (min-width:768px){.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child{border-left:1px solid rgba(34,36,38,.1)}}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{cursor:pointer;background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.menu .active.item{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);font-weight:400;-webkit-box-shadow:none;box-shadow:none}.ui.menu .active.item>i.icon{opacity:1}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default!important;background-color:transparent!important;color:rgba(40,40,40,.3)!important}.ui.menu:not(.vertical) .left.item,.ui.menu:not(.vertical) :not(.dropdown)>.left.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:auto!important}.ui.menu:not(.vertical) .right.item,.ui.menu:not(.vertical) .right.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:auto!important}.ui.menu .right.item::before,.ui.menu .right.menu>.item::before{right:auto;left:0}.ui.vertical.menu{display:block;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui.vertical.menu .item{display:block;background:0 0;border-top:none;border-right:none}.ui.vertical.menu>.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon{width:1.18em;float:right;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .5em 0 0}.ui.vertical.menu .item:before{position:absolute;content:'';top:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.vertical.menu .item:first-child:before{display:none!important}.ui.vertical.menu .item>.menu{margin:.5em -1.14285714em 0}.ui.vertical.menu .menu .item{background:0 0;padding:.5em 1.33333333em;font-size:.85714286em;color:rgba(0,0,0,.5)}.ui.vertical.menu .item .menu .link.item:hover,.ui.vertical.menu .item .menu a.item:hover{color:rgba(0,0,0,.85)}.ui.vertical.menu .menu .item:before{display:none}.ui.vertical.menu .active.item{background:rgba(0,0,0,.05);border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.vertical.menu>.active.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu>.active.item:only-child{border-radius:.28571429rem}.ui.vertical.menu .active.item .menu .active.item{border-left:none}.ui.vertical.menu .item .menu .active.item{background-color:transparent;font-weight:700;color:rgba(0,0,0,.95)}.ui.tabular.menu{border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border:none;background:none transparent;border-bottom:1px solid #d4d4d5}.ui.tabular.fluid.menu{width:calc(100% + (1px * 2))!important}.ui.tabular.menu .item{background:0 0;border-bottom:none;border-left:1px solid transparent;border-right:1px solid transparent;border-top:2px solid transparent;padding:.92857143em 1.42857143em;color:rgba(0,0,0,.87)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-top-width:1px;border-color:#d4d4d5;font-weight:700;margin-bottom:-1px;-webkit-box-shadow:none;box-shadow:none;border-radius:.28571429rem .28571429rem 0 0!important}.ui.tabular.menu+.attached:not(.top).segment,.ui.tabular.menu+.attached:not(.top).segment+.attached:not(.top).segment{border-top:none;margin-left:0;margin-top:0;margin-right:0;width:100%}.top.attached.segment+.ui.bottom.tabular.menu{position:relative;width:calc(100% + (1px * 2));left:-1px}.ui.bottom.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-top:1px solid #d4d4d5}.ui.bottom.tabular.menu .item{background:0 0;border-left:1px solid transparent;border-right:1px solid transparent;border-bottom:1px solid transparent;border-top:none}.ui.bottom.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:-1px 0 0 0;border-radius:0 0 .28571429rem .28571429rem!important}.ui.vertical.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-right:1px solid #d4d4d5}.ui.vertical.tabular.menu .item{background:0 0;border-left:1px solid transparent;border-bottom:1px solid transparent;border-top:1px solid transparent;border-right:none}.ui.vertical.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 -1px 0 0;border-radius:.28571429rem 0 0 .28571429rem!important}.ui.vertical.right.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-right:none;border-left:1px solid #d4d4d5}.ui.vertical.right.tabular.menu .item{background:0 0;border-right:1px solid transparent;border-bottom:1px solid transparent;border-top:1px solid transparent;border-left:none}.ui.vertical.right.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 0 0 -1px;border-radius:0 .28571429rem .28571429rem 0!important}.ui.tabular.menu .active.dropdown.item{margin-bottom:0;border-left:1px solid transparent;border-right:1px solid transparent;border-top:2px solid transparent;border-bottom:none}.ui.pagination.menu{margin:0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.ui.pagination.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.compact.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.pagination.menu .item:last-child:before{display:none}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu .active.item{border-top:none;padding-top:.92857143em;background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu{background:0 0;margin-left:-.35714286em;margin-right:-.35714286em;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu .item{-ms-flex-item-align:center;align-self:center;-webkit-box-shadow:none;box-shadow:none;border:none;padding:.78571429em .92857143em;margin:0 .35714286em;background:0 0;-webkit-transition:color .1s ease;transition:color .1s ease;border-radius:.28571429rem}.ui.secondary.menu .item:before{display:none!important}.ui.secondary.menu .header.item{border-radius:0;border-right:none;background:none transparent}.ui.secondary.menu .item>img:not(.ui){margin:0}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.menu .active.item{-webkit-box-shadow:none;box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);border-radius:.28571429rem}.ui.secondary.menu .active.item:hover{-webkit-box-shadow:none;box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:rgba(255,255,255,.7)!important}.ui.secondary.inverted.menu .dropdown.item:hover,.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{background:rgba(255,255,255,.08);color:#fff!important}.ui.secondary.inverted.menu .active.item{background:rgba(255,255,255,.15);color:#fff!important}.ui.secondary.item.menu{margin-left:0;margin-right:0}.ui.secondary.item.menu .item:last-child{margin-right:0}.ui.secondary.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu{margin:0 -.92857143em}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 1.33333333em}.ui.secondary.vertical.menu>.item{border:none;margin:0 0 .35714286em;border-radius:.28571429rem!important}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.vertical.secondary.menu .item>.menu .item{background-color:transparent}.ui.secondary.inverted.menu{background-color:transparent}.ui.secondary.pointing.menu{margin-left:0;margin-right:0;border-bottom:2px solid rgba(34,36,38,.15)}.ui.secondary.pointing.menu .item{border-bottom-color:transparent;border-bottom-style:solid;border-radius:0;-ms-flex-item-align:end;align-self:flex-end;margin:0 0 -2px;padding:.85714286em 1.14285714em;border-bottom-width:2px;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.secondary.pointing.menu .header.item{color:rgba(0,0,0,.85)!important}.ui.secondary.pointing.menu .text.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.secondary.pointing.menu .item:after{display:none}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{background-color:transparent;color:rgba(0,0,0,.87)}.ui.secondary.pointing.menu .dropdown.item:active,.ui.secondary.pointing.menu .link.item:active,.ui.secondary.pointing.menu a.item:active{background-color:transparent;border-color:rgba(34,36,38,.15)}.ui.secondary.pointing.menu .active.item{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-color:#1b1c1d;font-weight:700;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.item:hover{border-color:#1b1c1d;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.dropdown.item{border-color:transparent}.ui.secondary.vertical.pointing.menu{border-bottom-width:0;border-right-width:2px;border-right-style:solid;border-right-color:rgba(34,36,38,.15)}.ui.secondary.vertical.pointing.menu .item{border-bottom:none;border-right-style:solid;border-right-color:transparent;border-radius:0!important;margin:0 -2px 0 0;border-right-width:2px}.ui.secondary.vertical.pointing.menu .active.item{border-color:#1b1c1d}.ui.secondary.inverted.pointing.menu{border-color:rgba(255,255,255,.1)}.ui.secondary.inverted.pointing.menu{border-width:2px;border-color:rgba(34,36,38,.15)}.ui.secondary.inverted.pointing.menu .item{color:rgba(255,255,255,.9)}.ui.secondary.inverted.pointing.menu .header.item{color:#fff!important}.ui.secondary.inverted.pointing.menu .link.item:hover,.ui.secondary.inverted.pointing.menu a.item:hover{color:rgba(0,0,0,.95)}.ui.secondary.inverted.pointing.menu .active.item{border-color:#fff;color:#fff}.ui.text.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:none;margin:1em -.5em}.ui.text.menu .item{border-radius:0;-webkit-box-shadow:none;box-shadow:none;-ms-flex-item-align:center;align-self:center;margin:0 0;padding:.35714286em .5em;font-weight:400;color:rgba(0,0,0,.6);-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.ui.text.menu .item:before,.ui.text.menu .menu .item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(0,0,0,.85);font-size:.92857143em;text-transform:uppercase;font-weight:700}.ui.text.menu .item>img:not(.ui){margin:0}.ui.text.item.menu .item{margin:0}.ui.vertical.text.menu{margin:1em 0}.ui.vertical.text.menu:first-child{margin-top:0}.ui.vertical.text.menu:last-child{margin-bottom:0}.ui.vertical.text.menu .item{margin:.57142857em 0;padding-left:0;padding-right:0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .35714286em 0 0}.ui.vertical.text.menu .header.item{margin:.57142857em 0 .71428571em}.ui.vertical.text.menu .item:not(.dropdown)>.menu{margin:0}.ui.vertical.text.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none;font-weight:400;color:rgba(0,0,0,.95)}.ui.text.menu .active.item:hover{background-color:transparent}.ui.text.pointing.menu .active.item:after{-webkit-box-shadow:none;box-shadow:none}.ui.text.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .active.item,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover{background-color:transparent!important}.ui.fluid.text.menu{margin-left:0;margin-right:0}.ui.vertical.icon.menu{display:inline-block;width:auto}.ui.icon.menu .item{height:auto;text-align:center;color:#1b1c1d}.ui.icon.menu .item>.icon:not(.dropdown){margin:0;opacity:1}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item>.icon{width:auto;margin:0 auto}.ui.vertical.icon.menu .item>.icon:not(.dropdown){display:block;opacity:1;margin:0 auto;float:none}.ui.inverted.icon.menu .item{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu .item{min-width:6em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ui.labeled.icon.menu .item>.icon:not(.dropdown){height:1em;display:block;font-size:1.71428571em!important;margin:0 auto .5rem!important}.ui.fluid.labeled.icon.menu>.item{min-width:0}@media only screen and (max-width:767px){.ui.stackable.menu{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ui.stackable.menu .item{width:100%!important}.ui.stackable.menu .item:before{position:absolute;content:'';top:auto;bottom:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.stackable.menu .left.item,.ui.stackable.menu .left.menu{margin-right:0!important}.ui.stackable.menu .right.item,.ui.stackable.menu .right.menu{margin-left:0!important}.ui.stackable.menu .left.menu,.ui.stackable.menu .right.menu{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#db2828!important;color:#db2828!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#f2711c!important;color:#f2711c!important}.ui.menu .yellow.active.item,.ui.yellow.menu .active.item{border-color:#fbbd08!important;color:#fbbd08!important}.ui.menu .olive.active.item,.ui.olive.menu .active.item{border-color:#b5cc18!important;color:#b5cc18!important}.ui.green.menu .active.item,.ui.menu .green.active.item{border-color:#21ba45!important;color:#21ba45!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00b5ad!important;color:#00b5ad!important}.ui.blue.menu .active.item,.ui.menu .blue.active.item{border-color:#2185d0!important;color:#2185d0!important}.ui.menu .violet.active.item,.ui.violet.menu .active.item{border-color:#6435c9!important;color:#6435c9!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#a333c8!important;color:#a333c8!important}.ui.menu .pink.active.item,.ui.pink.menu .active.item{border-color:#e03997!important;color:#e03997!important}.ui.brown.menu .active.item,.ui.menu .brown.active.item{border-color:#a5673f!important;color:#a5673f!important}.ui.grey.menu .active.item,.ui.menu .grey.active.item{border-color:#767676!important;color:#767676!important}.ui.inverted.menu{border:0 solid transparent;background:#1b1c1d;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a:not(.ui){background:0 0;color:rgba(255,255,255,.9)}.ui.inverted.menu .item.menu{background:0 0}.ui.inverted.menu .item:before{background:rgba(255,255,255,.08)}.ui.vertical.inverted.menu .item:before{background:rgba(255,255,255,.08)}.ui.vertical.inverted.menu .menu .item,.ui.vertical.inverted.menu .menu .item a:not(.ui){color:rgba(255,255,255,.5)}.ui.inverted.menu .header.item{margin:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:rgba(225,225,225,.3)}.ui.inverted.menu .dropdown.item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.link.inverted.menu .item:hover{background:rgba(255,255,255,.08);color:#fff}.ui.vertical.inverted.menu .item .menu .link.item:hover,.ui.vertical.inverted.menu .item .menu a.item:hover{background:0 0;color:#fff}.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background:rgba(255,255,255,.08);color:#fff}.ui.inverted.menu .active.item{background:rgba(255,255,255,.15);color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background:0 0;color:#fff}.ui.inverted.pointing.menu .active.item:after{background:#3d3e3f!important;margin:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;border:none!important}.ui.inverted.menu .active.item:hover{background:rgba(255,255,255,.15);color:#fff!important}.ui.inverted.pointing.menu .active.item:hover:after{background:#3d3e3f!important}.ui.floated.menu{float:left;margin:0 .5rem 0 0}.ui.floated.menu .item:last-child:before{display:none}.ui.right.floated.menu{float:right;margin:0 0 0 .5rem}.ui.inverted.menu .red.active.item,.ui.inverted.red.menu{background-color:#db2828}.ui.inverted.red.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.red.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .orange.active.item,.ui.inverted.orange.menu{background-color:#f2711c}.ui.inverted.orange.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.orange.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .yellow.active.item,.ui.inverted.yellow.menu{background-color:#fbbd08}.ui.inverted.yellow.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.yellow.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .olive.active.item,.ui.inverted.olive.menu{background-color:#b5cc18}.ui.inverted.olive.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.olive.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.green.menu,.ui.inverted.menu .green.active.item{background-color:#21ba45}.ui.inverted.green.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.green.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .teal.active.item,.ui.inverted.teal.menu{background-color:#00b5ad}.ui.inverted.teal.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.teal.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.blue.menu,.ui.inverted.menu .blue.active.item{background-color:#2185d0}.ui.inverted.blue.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.blue.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .violet.active.item,.ui.inverted.violet.menu{background-color:#6435c9}.ui.inverted.violet.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.violet.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .purple.active.item,.ui.inverted.purple.menu{background-color:#a333c8}.ui.inverted.purple.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.purple.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .pink.active.item,.ui.inverted.pink.menu{background-color:#e03997}.ui.inverted.pink.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.pink.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.brown.menu,.ui.inverted.menu .brown.active.item{background-color:#a5673f}.ui.inverted.brown.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.brown.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.grey.menu,.ui.inverted.menu .grey.active.item{background-color:#767676}.ui.inverted.grey.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.grey.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.92857143em;padding-bottom:.92857143em}.ui.menu .vertically.fitted.item,.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item{padding-left:1.14285714em;padding-right:1.14285714em}.ui.borderless.menu .item .menu .item:before,.ui.borderless.menu .item:before,.ui.menu .borderless.item:before{background:0 0!important}.ui.compact.menu{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin:0;vertical-align:middle}.ui.compact.vertical.menu{display:inline-block}.ui.compact.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.compact.menu .item:last-child:before{display:none}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child::before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ui.attached.item.menu{margin:0 -1px!important}.ui.item.menu .item:last-child:before{display:none}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:101;margin:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.fixed.menu,.ui[class*="top fixed"].menu{top:0;left:0;right:auto;bottom:auto}.ui[class*="top fixed"].menu{border-top:none;border-left:none;border-right:none}.ui[class*="right fixed"].menu{border-top:none;border-bottom:none;border-right:none;top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui[class*="bottom fixed"].menu{border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;top:auto;right:auto}.ui[class*="left fixed"].menu{border-top:none;border-bottom:none;border-left:none;top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .item:after{visibility:hidden;position:absolute;content:'';top:100%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);background:0 0;margin:.5px 0 0;width:.57142857em;height:.57142857em;border:none;border-bottom:1px solid #d4d4d5;border-right:1px solid #d4d4d5;z-index:2;-webkit-transition:background .1s ease;transition:background .1s ease}.ui.vertical.pointing.menu .item:after{position:absolute;top:50%;right:0;bottom:auto;left:auto;-webkit-transform:translateX(50%) translateY(-50%) rotate(45deg);transform:translateX(50%) translateY(-50%) rotate(45deg);margin:0 -.5px 0 0;border:none;border-top:1px solid #d4d4d5;border-right:1px solid #d4d4d5}.ui.pointing.menu .active.item:after{visibility:visible}.ui.pointing.menu .active.dropdown.item:after{visibility:hidden}.ui.pointing.menu .active.item .menu .active.item:after,.ui.pointing.menu .dropdown.active.item:after{display:none}.ui.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.pointing.menu .active.item:after{background-color:#f2f2f2}.ui.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .active.item:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#fff}.ui.attached.menu{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% - (-1px * 2));max-width:calc(100% - (-1px * 2));-webkit-box-shadow:none;box-shadow:none}.ui.attached+.ui.attached.menu:not(.top){border-top:none}.ui[class*="top attached"].menu{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.menu[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].menu{bottom:0;margin-top:0;top:0;margin-bottom:1rem;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].menu:last-child{margin-bottom:0}.ui.top.attached.menu>.item:first-child{border-radius:.28571429rem 0 0 0}.ui.bottom.attached.menu>.item:first-child{border-radius:0 0 0 .28571429rem}.ui.attached.menu:not(.tabular){border:1px solid #d4d4d5}.ui.attached.inverted.menu{border:none}.ui.attached.tabular.menu{margin-left:0;margin-right:0;width:100%}.ui.mini.menu{font-size:.78571429rem}.ui.mini.vertical.menu{width:9rem}.ui.tiny.menu{font-size:.85714286rem}.ui.tiny.vertical.menu{width:11rem}.ui.small.menu{font-size:.92857143rem}.ui.small.vertical.menu{width:13rem}.ui.menu{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.large.menu{font-size:1.07142857rem}.ui.large.vertical.menu{width:18rem}.ui.huge.menu{font-size:1.21428571rem}.ui.huge.vertical.menu{width:22rem}.ui.big.menu{font-size:1.14285714rem}.ui.big.vertical.menu{width:20rem}.ui.massive.menu{font-size:1.28571429rem}.ui.massive.vertical.menu{width:25rem}
1+.ui.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin:1rem 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;background:#fff;font-weight:400;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;min-height:2.85714286em}.ui.menu:after{content:'';display:block;height:0;clear:both;visibility:hidden}.ui.menu:first-child{margin-top:0}.ui.menu:last-child{margin-bottom:0}.ui.menu .menu{margin:0}.ui.menu:not(.vertical)>.menu{display:-webkit-box;display:-ms-flexbox;display:flex}.ui.menu:not(.vertical) .item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ui.menu .item{position:relative;vertical-align:middle;line-height:1;text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:0 0;padding:.92857143em 1.14285714em;text-transform:none;color:rgba(0,0,0,.87);font-weight:400;-webkit-transition:background .1s ease,color .1s ease,-webkit-box-shadow .1s ease;transition:background .1s ease,color .1s ease,-webkit-box-shadow .1s ease;transition:background .1s ease,box-shadow .1s ease,color .1s ease;transition:background .1s ease,box-shadow .1s ease,color .1s ease,-webkit-box-shadow .1s ease}.ui.menu>.item:first-child{border-radius:.28571429rem 0 0 .28571429rem}.ui.menu .item:before{position:absolute;content:'';top:0;right:0;height:100%;width:1px;background:rgba(34,36,38,.1)}.ui.menu .item>a:not(.ui),.ui.menu .item>p:only-child,.ui.menu .text.item>*{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;line-height:1.3}.ui.menu .item>p:first-child{margin-top:0}.ui.menu .item>p:last-child{margin-bottom:0}.ui.menu .item>i.icon{opacity:.9;float:none;margin:0 .35714286em 0 0}.ui.menu:not(.vertical) .item>.button{position:relative;top:0;margin:-.5em 0;padding-bottom:.78571429em;padding-top:.78571429em;font-size:1em}.ui.menu>.container,.ui.menu>.grid{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:inherit;-ms-flex-align:inherit;align-items:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;-ms-flex-direction:inherit;flex-direction:inherit}.ui.menu .item>.input{width:100%}.ui.menu:not(.vertical) .item>.input{position:relative;top:0;margin:-.5em 0}.ui.menu .item>.input input{font-size:1em;padding-top:.57142857em;padding-bottom:.57142857em}.ui.menu .header.item,.ui.vertical.menu .header.item{margin:0;background:'';text-transform:normal;font-weight:700}.ui.vertical.menu .item>.header:not(.ui){margin:0 0 .5em;font-size:1em;font-weight:700}.ui.menu .item>i.dropdown.icon{padding:0;float:right;margin:0 0 0 1em}.ui.menu .dropdown.item .menu{min-width:calc(100% - 1px);border-radius:0 0 .28571429rem .28571429rem;background:#fff;margin:0 0 0;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.08);box-shadow:0 1px 3px 0 rgba(0,0,0,.08);-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.ui.menu .ui.dropdown .menu>.item{margin:0;text-align:left;font-size:1em!important;padding:.78571429em 1.14285714em!important;background:0 0!important;color:rgba(0,0,0,.87)!important;text-transform:none!important;font-weight:400!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:none!important;transition:none!important}.ui.menu .ui.dropdown .menu>.item:hover{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.selected.item{background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown .menu>.active.item{background:rgba(0,0,0,.03)!important;font-weight:700!important;color:rgba(0,0,0,.95)!important}.ui.menu .ui.dropdown.item .menu .item:not(.filtered){display:block}.ui.menu .ui.dropdown .menu>.item .icon:not(.dropdown){display:inline-block;font-size:1em!important;float:none;margin:0 .75em 0 0!important}.ui.secondary.menu .dropdown.item>.menu,.ui.text.menu .dropdown.item>.menu{border-radius:.28571429rem;margin-top:.35714286em}.ui.menu .pointing.dropdown.item .menu{margin-top:.75em}.ui.inverted.menu .search.dropdown.item>.search,.ui.inverted.menu .search.dropdown.item>.text{color:rgba(255,255,255,.9)}.ui.vertical.menu .dropdown.item>.icon{float:right;content:"\f0da";margin-left:1em}.ui.vertical.menu .dropdown.item .menu{left:100%;min-width:0;margin:0;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.08);box-shadow:0 1px 3px 0 rgba(0,0,0,.08);border-radius:0 .28571429rem .28571429rem .28571429rem}.ui.vertical.menu .dropdown.item.upward .menu{bottom:0}.ui.vertical.menu .dropdown.item:not(.upward) .menu{top:0}.ui.vertical.menu .active.dropdown.item{border-top-right-radius:0;border-bottom-right-radius:0}.ui.vertical.menu .dropdown.active.item{-webkit-box-shadow:none;box-shadow:none}.ui.item.menu .dropdown .menu .item{width:100%}.ui.menu .item>.label{background:#999;color:#fff;margin-left:1em;padding:.3em .78571429em}.ui.vertical.menu .item>.label{background:#999;color:#fff;margin-top:-.15em;margin-bottom:-.15em;padding:.3em .78571429em}.ui.menu .item>.floating.label{padding:.3em .78571429em}.ui.menu .item>img:not(.ui){display:inline-block;vertical-align:middle;margin:-.3em 0;width:2.5em}.ui.vertical.menu .item>img:not(.ui):only-child{display:block;max-width:100%;width:auto}.ui.menu .list .item:before{background:0 0!important}.ui.vertical.sidebar.menu>.item:first-child:before{display:block!important}.ui.vertical.sidebar.menu>.item::before{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.menu>.ui.container{width:100%!important;margin-left:0!important;margin-right:0!important}}@media only screen and (min-width:768px){.ui.menu:not(.secondary):not(.text):not(.tabular):not(.borderless)>.container>.item:not(.right):not(.borderless):first-child{border-left:1px solid rgba(34,36,38,.1)}}.ui.link.menu .item:hover,.ui.menu .dropdown.item:hover,.ui.menu .link.item:hover,.ui.menu a.item:hover{cursor:pointer;background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.link.menu .item:active,.ui.menu .link.item:active,.ui.menu a.item:active{background:rgba(0,0,0,.03);color:rgba(0,0,0,.95)}.ui.menu .active.item{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);font-weight:400;-webkit-box-shadow:none;box-shadow:none}.ui.menu .active.item>i.icon{opacity:1}.ui.menu .active.item:hover,.ui.vertical.menu .active.item:hover{background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.menu .item.disabled,.ui.menu .item.disabled:hover{cursor:default!important;background-color:transparent!important;color:rgba(40,40,40,.3)!important}.ui.menu:not(.vertical) .left.item,.ui.menu:not(.vertical) :not(.dropdown)>.left.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-right:auto!important}.ui.menu:not(.vertical) .right.item,.ui.menu:not(.vertical) .right.menu{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:auto!important}.ui.menu .right.item::before,.ui.menu .right.menu>.item::before{right:auto;left:0}.ui.vertical.menu{display:block;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui.vertical.menu .item{display:block;background:0 0;border-top:none;border-right:none}.ui.vertical.menu>.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu .item>.label{float:right;text-align:center}.ui.vertical.menu .item>i.icon{width:1.18em;float:right;margin:0 0 0 .5em}.ui.vertical.menu .item>.label+i.icon{float:none;margin:0 .5em 0 0}.ui.vertical.menu .item:before{position:absolute;content:'';top:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.vertical.menu .item:first-child:before{display:none!important}.ui.vertical.menu .item>.menu{margin:.5em -1.14285714em 0}.ui.vertical.menu .menu .item{background:0 0;padding:.5em 1.33333333em;font-size:.85714286em;color:rgba(0,0,0,.5)}.ui.vertical.menu .item .menu .link.item:hover,.ui.vertical.menu .item .menu a.item:hover{color:rgba(0,0,0,.85)}.ui.vertical.menu .menu .item:before{display:none}.ui.vertical.menu .active.item{background:rgba(0,0,0,.05);border-radius:0;-webkit-box-shadow:none;box-shadow:none}.ui.vertical.menu>.active.item:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.vertical.menu>.active.item:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.vertical.menu>.active.item:only-child{border-radius:.28571429rem}.ui.vertical.menu .active.item .menu .active.item{border-left:none}.ui.vertical.menu .item .menu .active.item{background-color:transparent;font-weight:700;color:rgba(0,0,0,.95)}.ui.tabular.menu{border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border:none;background:none transparent;border-bottom:1px solid #d4d4d5}.ui.tabular.fluid.menu{width:calc(100% + (1px * 2))!important}.ui.tabular.menu .item{background:0 0;border-bottom:none;border-left:1px solid transparent;border-right:1px solid transparent;border-top:2px solid transparent;padding:.92857143em 1.42857143em;color:rgba(0,0,0,.87)}.ui.tabular.menu .item:before{display:none}.ui.tabular.menu .item:hover{background-color:transparent;color:rgba(0,0,0,.8)}.ui.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-top-width:1px;border-color:#d4d4d5;font-weight:700;margin-bottom:-1px;-webkit-box-shadow:none;box-shadow:none;border-radius:.28571429rem .28571429rem 0 0!important}.ui.tabular.menu+.attached:not(.top).segment,.ui.tabular.menu+.attached:not(.top).segment+.attached:not(.top).segment{border-top:none;margin-left:0;margin-top:0;margin-right:0;width:100%}.top.attached.segment+.ui.bottom.tabular.menu{position:relative;width:calc(100% + (1px * 2));left:-1px}.ui.bottom.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-top:1px solid #d4d4d5}.ui.bottom.tabular.menu .item{background:0 0;border-left:1px solid transparent;border-right:1px solid transparent;border-bottom:1px solid transparent;border-top:none}.ui.bottom.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:-1px 0 0 0;border-radius:0 0 .28571429rem .28571429rem!important}.ui.vertical.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-right:1px solid #d4d4d5}.ui.vertical.tabular.menu .item{background:0 0;border-left:1px solid transparent;border-bottom:1px solid transparent;border-top:1px solid transparent;border-right:none}.ui.vertical.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 -1px 0 0;border-radius:.28571429rem 0 0 .28571429rem!important}.ui.vertical.right.tabular.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none!important;box-shadow:none!important;border-bottom:none;border-right:none;border-left:1px solid #d4d4d5}.ui.vertical.right.tabular.menu .item{background:0 0;border-right:1px solid transparent;border-bottom:1px solid transparent;border-top:1px solid transparent;border-left:none}.ui.vertical.right.tabular.menu .active.item{background:none #fff;color:rgba(0,0,0,.95);border-color:#d4d4d5;margin:0 0 0 -1px;border-radius:0 .28571429rem .28571429rem 0!important}.ui.tabular.menu .active.dropdown.item{margin-bottom:0;border-left:1px solid transparent;border-right:1px solid transparent;border-top:2px solid transparent;border-bottom:none}.ui.pagination.menu{margin:0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.ui.pagination.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.compact.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.pagination.menu .item:last-child:before{display:none}.ui.pagination.menu .item{min-width:3em;text-align:center}.ui.pagination.menu .icon.item i.icon{vertical-align:top}.ui.pagination.menu .active.item{border-top:none;padding-top:.92857143em;background-color:rgba(0,0,0,.05);color:rgba(0,0,0,.95);-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu{background:0 0;margin-left:-.35714286em;margin-right:-.35714286em;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none}.ui.secondary.menu .item{-ms-flex-item-align:center;align-self:center;-webkit-box-shadow:none;box-shadow:none;border:none;padding:.78571429em .92857143em;margin:0 .35714286em;background:0 0;-webkit-transition:color .1s ease;transition:color .1s ease;border-radius:.28571429rem}.ui.secondary.menu .item:before{display:none!important}.ui.secondary.menu .header.item{border-radius:0;border-right:none;background:none transparent}.ui.secondary.menu .item>img:not(.ui){margin:0}.ui.secondary.menu .dropdown.item:hover,.ui.secondary.menu .link.item:hover,.ui.secondary.menu a.item:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.menu .active.item{-webkit-box-shadow:none;box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95);border-radius:.28571429rem}.ui.secondary.menu .active.item:hover{-webkit-box-shadow:none;box-shadow:none;background:rgba(0,0,0,.05);color:rgba(0,0,0,.95)}.ui.secondary.inverted.menu .link.item,.ui.secondary.inverted.menu a.item{color:rgba(255,255,255,.7)!important}.ui.secondary.inverted.menu .dropdown.item:hover,.ui.secondary.inverted.menu .link.item:hover,.ui.secondary.inverted.menu a.item:hover{background:rgba(255,255,255,.08);color:#fff!important}.ui.secondary.inverted.menu .active.item{background:rgba(255,255,255,.15);color:#fff!important}.ui.secondary.item.menu{margin-left:0;margin-right:0}.ui.secondary.item.menu .item:last-child{margin-right:0}.ui.secondary.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu{margin:0 -.92857143em}.ui.vertical.secondary.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 1.33333333em}.ui.secondary.vertical.menu>.item{border:none;margin:0 0 .35714286em;border-radius:.28571429rem!important}.ui.secondary.vertical.menu>.header.item{border-radius:0}.ui.vertical.secondary.menu .item>.menu .item{background-color:transparent}.ui.secondary.inverted.menu{background-color:transparent}.ui.secondary.pointing.menu{margin-left:0;margin-right:0;border-bottom:2px solid rgba(34,36,38,.15)}.ui.secondary.pointing.menu .item{border-bottom-color:transparent;border-bottom-style:solid;border-radius:0;-ms-flex-item-align:end;align-self:flex-end;margin:0 0 -2px;padding:.85714286em 1.14285714em;border-bottom-width:2px;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.secondary.pointing.menu .header.item{color:rgba(0,0,0,.85)!important}.ui.secondary.pointing.menu .text.item{-webkit-box-shadow:none!important;box-shadow:none!important}.ui.secondary.pointing.menu .item:after{display:none}.ui.secondary.pointing.menu .dropdown.item:hover,.ui.secondary.pointing.menu .link.item:hover,.ui.secondary.pointing.menu a.item:hover{background-color:transparent;color:rgba(0,0,0,.87)}.ui.secondary.pointing.menu .dropdown.item:active,.ui.secondary.pointing.menu .link.item:active,.ui.secondary.pointing.menu a.item:active{background-color:transparent;border-color:rgba(34,36,38,.15)}.ui.secondary.pointing.menu .active.item{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;border-color:#1b1c1d;font-weight:700;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.item:hover{border-color:#1b1c1d;color:rgba(0,0,0,.95)}.ui.secondary.pointing.menu .active.dropdown.item{border-color:transparent}.ui.secondary.vertical.pointing.menu{border-bottom-width:0;border-right-width:2px;border-right-style:solid;border-right-color:rgba(34,36,38,.15)}.ui.secondary.vertical.pointing.menu .item{border-bottom:none;border-right-style:solid;border-right-color:transparent;border-radius:0!important;margin:0 -2px 0 0;border-right-width:2px}.ui.secondary.vertical.pointing.menu .active.item{border-color:#1b1c1d}.ui.secondary.inverted.pointing.menu{border-color:rgba(255,255,255,.1)}.ui.secondary.inverted.pointing.menu{border-width:2px;border-color:rgba(34,36,38,.15)}.ui.secondary.inverted.pointing.menu .item{color:rgba(255,255,255,.9)}.ui.secondary.inverted.pointing.menu .header.item{color:#fff!important}.ui.secondary.inverted.pointing.menu .link.item:hover,.ui.secondary.inverted.pointing.menu a.item:hover{color:rgba(0,0,0,.95)}.ui.secondary.inverted.pointing.menu .active.item{border-color:#fff;color:#fff}.ui.text.menu{background:none transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:none;margin:1em -.5em}.ui.text.menu .item{border-radius:0;-webkit-box-shadow:none;box-shadow:none;-ms-flex-item-align:center;align-self:center;margin:0 0;padding:.35714286em .5em;font-weight:400;color:rgba(0,0,0,.6);-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.ui.text.menu .item:before,.ui.text.menu .menu .item:before{display:none!important}.ui.text.menu .header.item{background-color:transparent;opacity:1;color:rgba(0,0,0,.85);font-size:.92857143em;text-transform:uppercase;font-weight:700}.ui.text.menu .item>img:not(.ui){margin:0}.ui.text.item.menu .item{margin:0}.ui.vertical.text.menu{margin:1em 0}.ui.vertical.text.menu:first-child{margin-top:0}.ui.vertical.text.menu:last-child{margin-bottom:0}.ui.vertical.text.menu .item{margin:.57142857em 0;padding-left:0;padding-right:0}.ui.vertical.text.menu .item>i.icon{float:none;margin:0 .35714286em 0 0}.ui.vertical.text.menu .header.item{margin:.57142857em 0 .71428571em}.ui.vertical.text.menu .item:not(.dropdown)>.menu{margin:0}.ui.vertical.text.menu .item:not(.dropdown)>.menu>.item{margin:0;padding:.5em 0}.ui.text.menu .item:hover{opacity:1;background-color:transparent}.ui.text.menu .active.item{background-color:transparent;border:none;-webkit-box-shadow:none;box-shadow:none;font-weight:400;color:rgba(0,0,0,.95)}.ui.text.menu .active.item:hover{background-color:transparent}.ui.text.pointing.menu .active.item:after{-webkit-box-shadow:none;box-shadow:none}.ui.text.attached.menu{-webkit-box-shadow:none;box-shadow:none}.ui.inverted.text.menu,.ui.inverted.text.menu .active.item,.ui.inverted.text.menu .item,.ui.inverted.text.menu .item:hover{background-color:transparent!important}.ui.fluid.text.menu{margin-left:0;margin-right:0}.ui.vertical.icon.menu{display:inline-block;width:auto}.ui.icon.menu .item{height:auto;text-align:center;color:#1b1c1d}.ui.icon.menu .item>.icon:not(.dropdown){margin:0;opacity:1}.ui.icon.menu .icon:before{opacity:1}.ui.menu .icon.item>.icon{width:auto;margin:0 auto}.ui.vertical.icon.menu .item>.icon:not(.dropdown){display:block;opacity:1;margin:0 auto;float:none}.ui.inverted.icon.menu .item{color:#fff}.ui.labeled.icon.menu{text-align:center}.ui.labeled.icon.menu .item{min-width:6em;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ui.labeled.icon.menu .item>.icon:not(.dropdown){height:1em;display:block;font-size:1.71428571em!important;margin:0 auto .5rem!important}.ui.fluid.labeled.icon.menu>.item{min-width:0}@media only screen and (max-width:767px){.ui.stackable.menu{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.ui.stackable.menu .item{width:100%!important}.ui.stackable.menu .item:before{position:absolute;content:'';top:auto;bottom:0;left:0;width:100%;height:1px;background:rgba(34,36,38,.1)}.ui.stackable.menu .left.item,.ui.stackable.menu .left.menu{margin-right:0!important}.ui.stackable.menu .right.item,.ui.stackable.menu .right.menu{margin-left:0!important}.ui.stackable.menu .left.menu,.ui.stackable.menu .right.menu{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.ui.menu .red.active.item,.ui.red.menu .active.item{border-color:#db2828!important;color:#db2828!important}.ui.menu .orange.active.item,.ui.orange.menu .active.item{border-color:#f2711c!important;color:#f2711c!important}.ui.menu .yellow.active.item,.ui.yellow.menu .active.item{border-color:#fbbd08!important;color:#fbbd08!important}.ui.menu .olive.active.item,.ui.olive.menu .active.item{border-color:#b5cc18!important;color:#b5cc18!important}.ui.green.menu .active.item,.ui.menu .green.active.item{border-color:#21ba45!important;color:#21ba45!important}.ui.menu .teal.active.item,.ui.teal.menu .active.item{border-color:#00b5ad!important;color:#00b5ad!important}.ui.blue.menu .active.item,.ui.menu .blue.active.item{border-color:#2185d0!important;color:#2185d0!important}.ui.menu .violet.active.item,.ui.violet.menu .active.item{border-color:#6435c9!important;color:#6435c9!important}.ui.menu .purple.active.item,.ui.purple.menu .active.item{border-color:#a333c8!important;color:#a333c8!important}.ui.menu .pink.active.item,.ui.pink.menu .active.item{border-color:#e03997!important;color:#e03997!important}.ui.brown.menu .active.item,.ui.menu .brown.active.item{border-color:#a5673f!important;color:#a5673f!important}.ui.grey.menu .active.item,.ui.menu .grey.active.item{border-color:#767676!important;color:#767676!important}.ui.inverted.menu{border:0 solid transparent;background:#1b1c1d;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item,.ui.inverted.menu .item>a:not(.ui){background:0 0;color:rgba(255,255,255,.9)}.ui.inverted.menu .item.menu{background:0 0}.ui.inverted.menu .item:before{background:rgba(255,255,255,.08)}.ui.vertical.inverted.menu .item:before{background:rgba(255,255,255,.08)}.ui.vertical.inverted.menu .menu .item,.ui.vertical.inverted.menu .menu .item a:not(.ui){color:rgba(255,255,255,.5)}.ui.inverted.menu .header.item{margin:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.menu .item.disabled,.ui.inverted.menu .item.disabled:hover{color:rgba(225,225,225,.3)}.ui.inverted.menu .dropdown.item:hover,.ui.inverted.menu .link.item:hover,.ui.inverted.menu a.item:hover,.ui.link.inverted.menu .item:hover{background:rgba(255,255,255,.08);color:#fff}.ui.vertical.inverted.menu .item .menu .link.item:hover,.ui.vertical.inverted.menu .item .menu a.item:hover{background:0 0;color:#fff}.ui.inverted.menu .link.item:active,.ui.inverted.menu a.item:active{background:rgba(255,255,255,.08);color:#fff}.ui.inverted.menu .active.item{background:rgba(255,255,255,.15);color:#fff!important}.ui.inverted.vertical.menu .item .menu .active.item{background:0 0;color:#fff}.ui.inverted.pointing.menu .active.item:after{background:#3d3e3f!important;margin:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;border:none!important}.ui.inverted.menu .active.item:hover{background:rgba(255,255,255,.15);color:#fff!important}.ui.inverted.pointing.menu .active.item:hover:after{background:#3d3e3f!important}.ui.floated.menu{float:left;margin:0 .5rem 0 0}.ui.floated.menu .item:last-child:before{display:none}.ui.right.floated.menu{float:right;margin:0 0 0 .5rem}.ui.inverted.menu .red.active.item,.ui.inverted.red.menu{background-color:#db2828}.ui.inverted.red.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.red.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .orange.active.item,.ui.inverted.orange.menu{background-color:#f2711c}.ui.inverted.orange.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.orange.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .yellow.active.item,.ui.inverted.yellow.menu{background-color:#fbbd08}.ui.inverted.yellow.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.yellow.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .olive.active.item,.ui.inverted.olive.menu{background-color:#b5cc18}.ui.inverted.olive.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.olive.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.green.menu,.ui.inverted.menu .green.active.item{background-color:#21ba45}.ui.inverted.green.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.green.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .teal.active.item,.ui.inverted.teal.menu{background-color:#00b5ad}.ui.inverted.teal.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.teal.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.blue.menu,.ui.inverted.menu .blue.active.item{background-color:#2185d0}.ui.inverted.blue.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.blue.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .violet.active.item,.ui.inverted.violet.menu{background-color:#6435c9}.ui.inverted.violet.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.violet.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .purple.active.item,.ui.inverted.purple.menu{background-color:#a333c8}.ui.inverted.purple.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.purple.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.menu .pink.active.item,.ui.inverted.pink.menu{background-color:#e03997}.ui.inverted.pink.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.pink.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.brown.menu,.ui.inverted.menu .brown.active.item{background-color:#a5673f}.ui.inverted.brown.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.brown.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.inverted.grey.menu,.ui.inverted.menu .grey.active.item{background-color:#767676}.ui.inverted.grey.menu .item:before{background-color:rgba(34,36,38,.1)}.ui.inverted.grey.menu .active.item{background-color:rgba(0,0,0,.1)!important}.ui.fitted.menu .item,.ui.fitted.menu .item .menu .item,.ui.menu .fitted.item{padding:0}.ui.horizontally.fitted.menu .item,.ui.horizontally.fitted.menu .item .menu .item,.ui.menu .horizontally.fitted.item{padding-top:.92857143em;padding-bottom:.92857143em}.ui.menu .vertically.fitted.item,.ui.vertically.fitted.menu .item,.ui.vertically.fitted.menu .item .menu .item{padding-left:1.14285714em;padding-right:1.14285714em}.ui.borderless.menu .item .menu .item:before,.ui.borderless.menu .item:before,.ui.menu .borderless.item:before{background:0 0!important}.ui.compact.menu{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin:0;vertical-align:middle}.ui.compact.vertical.menu{display:inline-block}.ui.compact.menu .item:last-child{border-radius:0 .28571429rem .28571429rem 0}.ui.compact.menu .item:last-child:before{display:none}.ui.compact.vertical.menu{width:auto!important}.ui.compact.vertical.menu .item:last-child::before{display:block}.ui.menu.fluid,.ui.vertical.menu.fluid{width:100%!important}.ui.item.menu,.ui.item.menu .item{width:100%;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.ui.attached.item.menu{margin:0 -1px!important}.ui.item.menu .item:last-child:before{display:none}.ui.menu.two.item .item{width:50%}.ui.menu.three.item .item{width:33.333%}.ui.menu.four.item .item{width:25%}.ui.menu.five.item .item{width:20%}.ui.menu.six.item .item{width:16.666%}.ui.menu.seven.item .item{width:14.285%}.ui.menu.eight.item .item{width:12.5%}.ui.menu.nine.item .item{width:11.11%}.ui.menu.ten.item .item{width:10%}.ui.menu.eleven.item .item{width:9.09%}.ui.menu.twelve.item .item{width:8.333%}.ui.menu.fixed{position:fixed;z-index:101;margin:0;width:100%}.ui.menu.fixed,.ui.menu.fixed .item:first-child,.ui.menu.fixed .item:last-child{border-radius:0!important}.ui.fixed.menu,.ui[class*="top fixed"].menu{top:0;left:0;right:auto;bottom:auto}.ui[class*="top fixed"].menu{border-top:none;border-left:none;border-right:none}.ui[class*="right fixed"].menu{border-top:none;border-bottom:none;border-right:none;top:0;right:0;left:auto;bottom:auto;width:auto;height:100%}.ui[class*="bottom fixed"].menu{border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;top:auto;right:auto}.ui[class*="left fixed"].menu{border-top:none;border-bottom:none;border-left:none;top:0;left:0;right:auto;bottom:auto;width:auto;height:100%}.ui.fixed.menu+.ui.grid{padding-top:2.75rem}.ui.pointing.menu .item:after{visibility:hidden;position:absolute;content:'';top:100%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);background:0 0;margin:.5px 0 0;width:.57142857em;height:.57142857em;border:none;border-bottom:1px solid #d4d4d5;border-right:1px solid #d4d4d5;z-index:2;-webkit-transition:background .1s ease;transition:background .1s ease}.ui.vertical.pointing.menu .item:after{position:absolute;top:50%;right:0;bottom:auto;left:auto;-webkit-transform:translateX(50%) translateY(-50%) rotate(45deg);transform:translateX(50%) translateY(-50%) rotate(45deg);margin:0 -.5px 0 0;border:none;border-top:1px solid #d4d4d5;border-right:1px solid #d4d4d5}.ui.pointing.menu .active.item:after{visibility:visible}.ui.pointing.menu .active.dropdown.item:after{visibility:hidden}.ui.pointing.menu .active.item .menu .active.item:after,.ui.pointing.menu .dropdown.active.item:after{display:none}.ui.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.pointing.menu .active.item:after{background-color:#f2f2f2}.ui.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .active.item:hover:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .active.item:after{background-color:#f2f2f2}.ui.vertical.pointing.menu .menu .active.item:after{background-color:#fff}.ui.attached.menu{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% - (-1px * 2));max-width:calc(100% - (-1px * 2));-webkit-box-shadow:none;box-shadow:none}.ui.attached+.ui.attached.menu:not(.top){border-top:none}.ui[class*="top attached"].menu{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.menu[class*="top attached"]:first-child{margin-top:0}.ui[class*="bottom attached"].menu{bottom:0;margin-top:0;top:0;margin-bottom:1rem;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui[class*="bottom attached"].menu:last-child{margin-bottom:0}.ui.top.attached.menu>.item:first-child{border-radius:.28571429rem 0 0 0}.ui.bottom.attached.menu>.item:first-child{border-radius:0 0 0 .28571429rem}.ui.attached.menu:not(.tabular){border:1px solid #d4d4d5}.ui.attached.inverted.menu{border:none}.ui.attached.tabular.menu{margin-left:0;margin-right:0;width:100%}.ui.mini.menu{font-size:.78571429rem}.ui.mini.vertical.menu{width:9rem}.ui.tiny.menu{font-size:.85714286rem}.ui.tiny.vertical.menu{width:11rem}.ui.small.menu{font-size:.92857143rem}.ui.small.vertical.menu{width:13rem}.ui.menu{font-size:1rem}.ui.vertical.menu{width:15rem}.ui.large.menu{font-size:1.07142857rem}.ui.large.vertical.menu{width:18rem}.ui.huge.menu{font-size:1.21428571rem}.ui.huge.vertical.menu{width:22rem}.ui.big.menu{font-size:1.14285714rem}.ui.big.vertical.menu{width:20rem}.ui.massive.menu{font-size:1.28571429rem}.ui.massive.vertical.menu{width:25rem}
_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css+1−1
@@ -6,4 +6,4 @@
66 * Released under the MIT license
77 * http://opensource.org/licenses/MIT
88 *
9− */.ui.segment{position:relative;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em 1em;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.segment:last-child{border-bottom:none}.ui.inverted.segment>.ui.header{color:#fff}.ui[class*="bottom attached"].segment>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="top attached"].segment>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.grid>.row>.ui.segment.column,.ui.grid>.ui.segment.column,.ui.page.grid.segment{padding-top:2em;padding-bottom:2em}.ui.grid.segment{margin:1rem 0;border-radius:.28571429rem}.ui.basic.table.segment{background:#fff;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui[class*="very basic"].table.segment{padding:1em 1em}.ui.placeholder.segment{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;max-width:initial;-webkit-animation:none;animation:none;overflow:visible;padding:1em 1em;min-height:18rem;background:#f9fafb;border-color:rgba(34,36,38,.15);-webkit-box-shadow:0 2px 25px 0 rgba(34,36,38,.05) inset;box-shadow:0 2px 25px 0 rgba(34,36,38,.05) inset}.ui.placeholder.segment .button,.ui.placeholder.segment textarea{display:block}.ui.placeholder.segment .button,.ui.placeholder.segment .field,.ui.placeholder.segment textarea,.ui.placeholder.segment>.ui.input{max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment .column .button,.ui.placeholder.segment .column .field,.ui.placeholder.segment .column textarea,.ui.placeholder.segment .column>.ui.input{max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment>.inline{-ms-flex-item-align:center;align-self:center}.ui.placeholder.segment>.inline>.button{display:inline-block;width:auto;margin:0 .35714286rem 0 0}.ui.placeholder.segment>.inline>.button:last-child{margin-right:0}.ui.piled.segment,.ui.piled.segments{margin:3em 0;-webkit-box-shadow:'';box-shadow:'';z-index:auto}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before,.ui.piled.segments:after,.ui.piled.segments:before{background-color:#fff;visibility:visible;content:'';display:block;height:100%;left:0;position:absolute;width:100%;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:'';box-shadow:''}.ui.piled.segment:before,.ui.piled.segments:before{-webkit-transform:rotate(-1.2deg);transform:rotate(-1.2deg);top:0;z-index:-2}.ui.piled.segment:after,.ui.piled.segments:after{-webkit-transform:rotate(1.2deg);transform:rotate(1.2deg);top:0;z-index:-1}.ui[class*="top attached"].piled.segment{margin-top:3em;margin-bottom:0}.ui.piled.segment[class*="top attached"]:first-child{margin-top:0}.ui.piled.segment[class*="bottom attached"]{margin-top:0;margin-bottom:3em}.ui.piled.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.stacked.segment{padding-bottom:1.4em}.ui.stacked.segment:after,.ui.stacked.segment:before,.ui.stacked.segments:after,.ui.stacked.segments:before{content:'';position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(34,36,38,.15);background:rgba(0,0,0,.03);width:100%;height:6px;visibility:visible}.ui.stacked.segment:before,.ui.stacked.segments:before{display:none}.ui.tall.stacked.segment:before,.ui.tall.stacked.segments:before{display:block;bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before,.ui.stacked.inverted.segments:after,.ui.stacked.inverted.segments:before{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(34,36,38,.35)}.ui.padded.segment{padding:1.5em}.ui[class*="very padded"].segment{padding:3em}.ui.padded.segment.vertical.segment,.ui[class*="very padded"].vertical.segment{padding-left:0;padding-right:0}.ui.compact.segment{display:table}.ui.compact.segments{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ui.compact.segments .segment,.ui.segments .compact.segment{display:block;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment,.ui.raised.segments{-webkit-box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.segments{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative;margin:1rem 0;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem}.ui.segments:first-child{margin-top:0}.ui.segments:last-child{margin-bottom:0}.ui.segments>.segment{top:0;bottom:0;border-radius:0;margin:0;width:auto;-webkit-box-shadow:none;box-shadow:none;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.segments:not(.horizontal)>.segment:first-child{border-top:none;margin-top:0;bottom:0;margin-bottom:0;top:0;border-radius:.28571429rem .28571429rem 0 0}.ui.segments:not(.horizontal)>.segment:last-child{top:0;bottom:0;margin-top:0;margin-bottom:0;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segments:not(.horizontal)>.segment:only-child{border-radius:.28571429rem}.ui.segments>.ui.segments{border-top:1px solid rgba(34,36,38,.15);margin:1rem 1rem}.ui.segments>.segments:first-child{border-top:none}.ui.segments>.segment+.segments:not(.horizontal){margin-top:0}.ui.horizontal.segments{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background-color:transparent;border-radius:0;padding:0;background-color:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments{margin:0;background-color:transparent;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid rgba(34,36,38,.15)}.ui.horizontal.segments>.segment{-webkit-box-flex:1;flex:1 1 auto;-ms-flex:1 1 0px;margin:0;min-width:0;background-color:transparent;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none;border-left:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments:first-child{border-top:none}.ui.horizontal.segments>.segment:first-child{border-left:none}.ui.disabled.segment{opacity:.45;color:rgba(40,40,40,.3)}.ui.loading.segment{position:relative;cursor:default;pointer-events:none;text-shadow:none!important;color:transparent!important;-webkit-transition:all 0s linear;transition:all 0s linear}.ui.loading.segment:before{position:absolute;content:'';top:0;left:0;background:rgba(255,255,255,.8);width:100%;height:100%;border-radius:.28571429rem;z-index:100}.ui.loading.segment:after{position:absolute;content:'';top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.1);border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes segment-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes segment-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.basic.segment{background:none transparent;-webkit-box-shadow:none;box-shadow:none;border:none;border-radius:0}.ui.clearing.segment:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.red.segment:not(.inverted){border-top:2px solid #db2828!important}.ui.inverted.red.segment{background-color:#db2828!important;color:#fff!important}.ui.orange.segment:not(.inverted){border-top:2px solid #f2711c!important}.ui.inverted.orange.segment{background-color:#f2711c!important;color:#fff!important}.ui.yellow.segment:not(.inverted){border-top:2px solid #fbbd08!important}.ui.inverted.yellow.segment{background-color:#fbbd08!important;color:#fff!important}.ui.olive.segment:not(.inverted){border-top:2px solid #b5cc18!important}.ui.inverted.olive.segment{background-color:#b5cc18!important;color:#fff!important}.ui.green.segment:not(.inverted){border-top:2px solid #21ba45!important}.ui.inverted.green.segment{background-color:#21ba45!important;color:#fff!important}.ui.teal.segment:not(.inverted){border-top:2px solid #00b5ad!important}.ui.inverted.teal.segment{background-color:#00b5ad!important;color:#fff!important}.ui.blue.segment:not(.inverted){border-top:2px solid #2185d0!important}.ui.inverted.blue.segment{background-color:#2185d0!important;color:#fff!important}.ui.violet.segment:not(.inverted){border-top:2px solid #6435c9!important}.ui.inverted.violet.segment{background-color:#6435c9!important;color:#fff!important}.ui.purple.segment:not(.inverted){border-top:2px solid #a333c8!important}.ui.inverted.purple.segment{background-color:#a333c8!important;color:#fff!important}.ui.pink.segment:not(.inverted){border-top:2px solid #e03997!important}.ui.inverted.pink.segment{background-color:#e03997!important;color:#fff!important}.ui.brown.segment:not(.inverted){border-top:2px solid #a5673f!important}.ui.inverted.brown.segment{background-color:#a5673f!important;color:#fff!important}.ui.grey.segment:not(.inverted){border-top:2px solid #767676!important}.ui.inverted.grey.segment{background-color:#767676!important;color:#fff!important}.ui.black.segment:not(.inverted){border-top:2px solid #1b1c1d!important}.ui.inverted.black.segment{background-color:#1b1c1d!important;color:#fff!important}.ui[class*="left aligned"].segment{text-align:left}.ui[class*="right aligned"].segment{text-align:right}.ui[class*="center aligned"].segment{text-align:center}.ui.floated.segment,.ui[class*="left floated"].segment{float:left;margin-right:1em}.ui[class*="right floated"].segment{float:right;margin-left:1em}.ui.inverted.segment{border:none;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.segment,.ui.primary.inverted.segment{background:#1b1c1d;color:rgba(255,255,255,.9)}.ui.inverted.segment .segment{color:rgba(0,0,0,.87)}.ui.inverted.segment .inverted.segment{color:rgba(255,255,255,.9)}.ui.inverted.attached.segment{border-color:#555}.ui.secondary.segment{background:#f3f4f5;color:rgba(0,0,0,.6)}.ui.secondary.inverted.segment{background:#4c4f52 -webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.2)),to(rgba(255,255,255,.2)));background:#4c4f52 -webkit-linear-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 100%);background:#4c4f52 linear-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 100%);color:rgba(255,255,255,.8)}.ui.tertiary.segment{background:#dcddde;color:rgba(0,0,0,.6)}.ui.tertiary.inverted.segment{background:#717579 -webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.35)),to(rgba(255,255,255,.35)));background:#717579 -webkit-linear-gradient(rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 100%);background:#717579 linear-gradient(rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 100%);color:rgba(255,255,255,.8)}.ui.attached.segment{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% - (-1px * 2));max-width:calc(100% - (-1px * 2));-webkit-box-shadow:none;box-shadow:none;border:1px solid #d4d4d5}.ui.attached:not(.message)+.ui.attached.segment:not(.top){border-top:none}.ui[class*="top attached"].segment{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.segment[class*="top attached"]:first-child{margin-top:0}.ui.segment[class*="bottom attached"]{bottom:0;margin-top:0;top:0;margin-bottom:1rem;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.mini.segment,.ui.mini.segments .segment{font-size:.78571429rem}.ui.tiny.segment,.ui.tiny.segments .segment{font-size:.85714286rem}.ui.small.segment,.ui.small.segments .segment{font-size:.92857143rem}.ui.segment,.ui.segments .segment{font-size:1rem}.ui.large.segment,.ui.large.segments .segment{font-size:1.14285714rem}.ui.big.segment,.ui.big.segments .segment{font-size:1.28571429rem}.ui.huge.segment,.ui.huge.segments .segment{font-size:1.42857143rem}.ui.massive.segment,.ui.massive.segments .segment{font-size:1.71428571rem}
9+ */.ui.segment{position:relative;background:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;padding:1em 1em;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segment:first-child{margin-top:0}.ui.segment:last-child{margin-bottom:0}.ui.vertical.segment{margin:0;padding-left:0;padding-right:0;background:none transparent;border-radius:0;-webkit-box-shadow:none;box-shadow:none;border:none;border-bottom:1px solid rgba(34,36,38,.15)}.ui.vertical.segment:last-child{border-bottom:none}.ui.inverted.segment>.ui.header{color:#fff}.ui[class*="bottom attached"].segment>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui[class*="top attached"].segment>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="top attached"].label{border-top-left-radius:0;border-top-right-radius:0}.ui.attached.segment:not(.top):not(.bottom)>[class*="bottom attached"].label{border-bottom-left-radius:0;border-bottom-right-radius:0}.ui.grid>.row>.ui.segment.column,.ui.grid>.ui.segment.column,.ui.page.grid.segment{padding-top:2em;padding-bottom:2em}.ui.grid.segment{margin:1rem 0;border-radius:.28571429rem}.ui.basic.table.segment{background:#fff;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15)}.ui[class*="very basic"].table.segment{padding:1em 1em}.ui.placeholder.segment{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;max-width:initial;-webkit-animation:none;animation:none;overflow:visible;padding:1em 1em;min-height:18rem;background:#f9fafb;border-color:rgba(34,36,38,.15);-webkit-box-shadow:0 2px 25px 0 rgba(34,36,38,.05) inset;box-shadow:0 2px 25px 0 rgba(34,36,38,.05) inset}.ui.placeholder.segment .button,.ui.placeholder.segment textarea{display:block}.ui.placeholder.segment .button,.ui.placeholder.segment .field,.ui.placeholder.segment textarea,.ui.placeholder.segment>.ui.input{max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment .column .button,.ui.placeholder.segment .column .field,.ui.placeholder.segment .column textarea,.ui.placeholder.segment .column>.ui.input{max-width:15rem;margin-left:auto;margin-right:auto}.ui.placeholder.segment>.inline{-ms-flex-item-align:center;align-self:center}.ui.placeholder.segment>.inline>.button{display:inline-block;width:auto;margin:0 .35714286rem 0 0}.ui.placeholder.segment>.inline>.button:last-child{margin-right:0}.ui.piled.segment,.ui.piled.segments{margin:3em 0;-webkit-box-shadow:'';box-shadow:'';z-index:auto}.ui.piled.segment:first-child{margin-top:0}.ui.piled.segment:last-child{margin-bottom:0}.ui.piled.segment:after,.ui.piled.segment:before,.ui.piled.segments:after,.ui.piled.segments:before{background-color:#fff;visibility:visible;content:'';display:block;height:100%;left:0;position:absolute;width:100%;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:'';box-shadow:''}.ui.piled.segment:before,.ui.piled.segments:before{-webkit-transform:rotate(-1.2deg);transform:rotate(-1.2deg);top:0;z-index:-2}.ui.piled.segment:after,.ui.piled.segments:after{-webkit-transform:rotate(1.2deg);transform:rotate(1.2deg);top:0;z-index:-1}.ui[class*="top attached"].piled.segment{margin-top:3em;margin-bottom:0}.ui.piled.segment[class*="top attached"]:first-child{margin-top:0}.ui.piled.segment[class*="bottom attached"]{margin-top:0;margin-bottom:3em}.ui.piled.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.stacked.segment{padding-bottom:1.4em}.ui.stacked.segment:after,.ui.stacked.segment:before,.ui.stacked.segments:after,.ui.stacked.segments:before{content:'';position:absolute;bottom:-3px;left:0;border-top:1px solid rgba(34,36,38,.15);background:rgba(0,0,0,.03);width:100%;height:6px;visibility:visible}.ui.stacked.segment:before,.ui.stacked.segments:before{display:none}.ui.tall.stacked.segment:before,.ui.tall.stacked.segments:before{display:block;bottom:0}.ui.stacked.inverted.segment:after,.ui.stacked.inverted.segment:before,.ui.stacked.inverted.segments:after,.ui.stacked.inverted.segments:before{background-color:rgba(0,0,0,.03);border-top:1px solid rgba(34,36,38,.35)}.ui.padded.segment{padding:1.5em}.ui[class*="very padded"].segment{padding:3em}.ui.padded.segment.vertical.segment,.ui[class*="very padded"].vertical.segment{padding-left:0;padding-right:0}.ui.compact.segment{display:table}.ui.compact.segments{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.ui.compact.segments .segment,.ui.segments .compact.segment{display:block;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.ui.circular.segment{display:table-cell;padding:2em;text-align:center;vertical-align:middle;border-radius:500em}.ui.raised.segment,.ui.raised.segments{-webkit-box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15)}.ui.segments{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:relative;margin:1rem 0;border:1px solid rgba(34,36,38,.15);-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem}.ui.segments:first-child{margin-top:0}.ui.segments:last-child{margin-bottom:0}.ui.segments>.segment{top:0;bottom:0;border-radius:0;margin:0;width:auto;-webkit-box-shadow:none;box-shadow:none;border:none;border-top:1px solid rgba(34,36,38,.15)}.ui.segments:not(.horizontal)>.segment:first-child{border-top:none;margin-top:0;bottom:0;margin-bottom:0;top:0;border-radius:.28571429rem .28571429rem 0 0}.ui.segments:not(.horizontal)>.segment:last-child{top:0;bottom:0;margin-top:0;margin-bottom:0;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segments:not(.horizontal)>.segment:only-child{border-radius:.28571429rem}.ui.segments>.ui.segments{border-top:1px solid rgba(34,36,38,.15);margin:1rem 1rem}.ui.segments>.segments:first-child{border-top:none}.ui.segments>.segment+.segments:not(.horizontal){margin-top:0}.ui.horizontal.segments{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background-color:transparent;border-radius:0;padding:0;background-color:#fff;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);margin:1rem 0;border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments{margin:0;background-color:transparent;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid rgba(34,36,38,.15)}.ui.horizontal.segments>.segment{-webkit-box-flex:1;flex:1 1 auto;-ms-flex:1 1 0px;margin:0;min-width:0;background-color:transparent;border-radius:0;border:none;-webkit-box-shadow:none;box-shadow:none;border-left:1px solid rgba(34,36,38,.15)}.ui.segments>.horizontal.segments:first-child{border-top:none}.ui.horizontal.segments>.segment:first-child{border-left:none}.ui.disabled.segment{opacity:.45;color:rgba(40,40,40,.3)}.ui.loading.segment{position:relative;cursor:default;pointer-events:none;text-shadow:none!important;color:transparent!important;-webkit-transition:all 0s linear;transition:all 0s linear}.ui.loading.segment:before{position:absolute;content:'';top:0;left:0;background:rgba(255,255,255,.8);width:100%;height:100%;border-radius:.28571429rem;z-index:100}.ui.loading.segment:after{position:absolute;content:'';top:50%;left:50%;margin:-1.5em 0 0 -1.5em;width:3em;height:3em;-webkit-animation:segment-spin .6s linear;animation:segment-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.1);border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent;visibility:visible;z-index:101}@-webkit-keyframes segment-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes segment-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.basic.segment{background:none transparent;-webkit-box-shadow:none;box-shadow:none;border:none;border-radius:0}.ui.clearing.segment:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui.red.segment:not(.inverted){border-top:2px solid #db2828!important}.ui.inverted.red.segment{background-color:#db2828!important;color:#fff!important}.ui.orange.segment:not(.inverted){border-top:2px solid #f2711c!important}.ui.inverted.orange.segment{background-color:#f2711c!important;color:#fff!important}.ui.yellow.segment:not(.inverted){border-top:2px solid #fbbd08!important}.ui.inverted.yellow.segment{background-color:#fbbd08!important;color:#fff!important}.ui.olive.segment:not(.inverted){border-top:2px solid #b5cc18!important}.ui.inverted.olive.segment{background-color:#b5cc18!important;color:#fff!important}.ui.green.segment:not(.inverted){border-top:2px solid #21ba45!important}.ui.inverted.green.segment{background-color:#21ba45!important;color:#fff!important}.ui.teal.segment:not(.inverted){border-top:2px solid #00b5ad!important}.ui.inverted.teal.segment{background-color:#00b5ad!important;color:#fff!important}.ui.blue.segment:not(.inverted){border-top:2px solid #2185d0!important}.ui.inverted.blue.segment{background-color:#2185d0!important;color:#fff!important}.ui.violet.segment:not(.inverted){border-top:2px solid #6435c9!important}.ui.inverted.violet.segment{background-color:#6435c9!important;color:#fff!important}.ui.purple.segment:not(.inverted){border-top:2px solid #a333c8!important}.ui.inverted.purple.segment{background-color:#a333c8!important;color:#fff!important}.ui.pink.segment:not(.inverted){border-top:2px solid #e03997!important}.ui.inverted.pink.segment{background-color:#e03997!important;color:#fff!important}.ui.brown.segment:not(.inverted){border-top:2px solid #a5673f!important}.ui.inverted.brown.segment{background-color:#a5673f!important;color:#fff!important}.ui.grey.segment:not(.inverted){border-top:2px solid #767676!important}.ui.inverted.grey.segment{background-color:#767676!important;color:#fff!important}.ui.black.segment:not(.inverted){border-top:2px solid #1b1c1d!important}.ui.inverted.black.segment{background-color:#1b1c1d!important;color:#fff!important}.ui[class*="left aligned"].segment{text-align:left}.ui[class*="right aligned"].segment{text-align:right}.ui[class*="center aligned"].segment{text-align:center}.ui.floated.segment,.ui[class*="left floated"].segment{float:left;margin-right:1em}.ui[class*="right floated"].segment{float:right;margin-left:1em}.ui.inverted.segment{border:none;-webkit-box-shadow:none;box-shadow:none}.ui.inverted.segment,.ui.primary.inverted.segment{background:#1b1c1d;color:rgba(255,255,255,.9)}.ui.inverted.segment .segment{color:rgba(0,0,0,.87)}.ui.inverted.segment .inverted.segment{color:rgba(255,255,255,.9)}.ui.inverted.attached.segment{border-color:#555}.ui.secondary.segment{background:#f3f4f5;color:rgba(0,0,0,.6)}.ui.secondary.inverted.segment{background:#4c4f52 -webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.2)),to(rgba(255,255,255,.2)));background:#4c4f52 -webkit-linear-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 100%);background:#4c4f52 linear-gradient(rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 100%);color:rgba(255,255,255,.8)}.ui.tertiary.segment{background:#dcddde;color:rgba(0,0,0,.6)}.ui.tertiary.inverted.segment{background:#717579 -webkit-gradient(linear,left top,left bottom,from(rgba(255,255,255,.35)),to(rgba(255,255,255,.35)));background:#717579 -webkit-linear-gradient(rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 100%);background:#717579 linear-gradient(rgba(255,255,255,.35) 0,rgba(255,255,255,.35) 100%);color:rgba(255,255,255,.8)}.ui.attached.segment{top:0;bottom:0;border-radius:0;margin:0 -1px;width:calc(100% - (-1px * 2));max-width:calc(100% - (-1px * 2));-webkit-box-shadow:none;box-shadow:none;border:1px solid #d4d4d5}.ui.attached:not(.message)+.ui.attached.segment:not(.top){border-top:none}.ui[class*="top attached"].segment{bottom:0;margin-bottom:0;top:0;margin-top:1rem;border-radius:.28571429rem .28571429rem 0 0}.ui.segment[class*="top attached"]:first-child{margin-top:0}.ui.segment[class*="bottom attached"]{bottom:0;margin-top:0;top:0;margin-bottom:1rem;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;box-shadow:0 1px 2px 0 rgba(34,36,38,.15),none;border-radius:0 0 .28571429rem .28571429rem}.ui.segment[class*="bottom attached"]:last-child{margin-bottom:0}.ui.mini.segment,.ui.mini.segments .segment{font-size:.78571429rem}.ui.tiny.segment,.ui.tiny.segments .segment{font-size:.85714286rem}.ui.small.segment,.ui.small.segments .segment{font-size:.92857143rem}.ui.segment,.ui.segments .segment{font-size:1rem}.ui.large.segment,.ui.large.segments .segment{font-size:1.14285714rem}.ui.big.segment,.ui.big.segments .segment{font-size:1.28571429rem}.ui.huge.segment,.ui.huge.segments .segment{font-size:1.42857143rem}.ui.massive.segment,.ui.massive.segments .segment{font-size:1.71428571rem}
_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css+1−1
@@ -6,4 +6,4 @@
66 * Released under the MIT license
77 * http://opensource.org/licenses/MIT
88 *
9− */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}
9+ */.ui.tab{display:none}.ui.tab.active,.ui.tab.open{display:block}.ui.tab.loading{position:relative;overflow:hidden;display:block;min-height:250px}.ui.tab.loading *{position:relative!important;left:-10000px!important}.ui.tab.loading.segment:before,.ui.tab.loading:before{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.tab.loading.segment:after,.ui.tab.loading:after{position:absolute;content:'';top:100px;left:50%;margin:-1.25em 0 0 -1.25em;width:2.5em;height:2.5em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}
_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js+1−1
@@ -1 +1 @@
1−!function(E,O,w,k){"use strict";O=void 0!==O&&O.Math==Math?O:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),E.fn.tab=function(r){var l,d=E.isFunction(this)?E(O):E(this),u=d.selector||"",b=(new Date).getTime(),g=[],f=r,F="string"==typeof f,S=[].slice.call(arguments,1),j=!1;return d.each(function(){var h,o,p,m,v,y,T=E.isPlainObject(r)?E.extend(!0,{},E.fn.tab.settings,r):E.extend({},E.fn.tab.settings),L=T.className,x=T.metadata,t=T.selector,A=T.error,e="."+T.namespace,a="module-"+T.namespace,P=E(this),n={},C=!0,i=0,s=this,c=P.data(a);v={initialize:function(){v.debug("Initializing tab menu item",P),v.fix.callbacks(),v.determineTabs(),v.debug("Determining tabs",T.context,o),T.auto&&v.set.auto(),v.bind.events(),T.history&&!j&&(v.initializeHistory(),j=!0),v.instantiate()},instantiate:function(){v.verbose("Storing instance of module",v),c=v,P.data(a,v)},destroy:function(){v.debug("Destroying tabs",P),P.removeData(a).off(e)},bind:{events:function(){E.isWindow(s)||(v.debug("Attaching tab activation events to element",P),P.on("click"+e,v.event.click))}},determineTabs:function(){var e;"parent"===T.context?(0<P.closest(t.ui).length?(e=P.closest(t.ui),v.verbose("Using closest UI element as parent",e)):e=P,h=e.parent(),v.verbose("Determined parent element for creating context",h)):T.context?(h=E(T.context),v.verbose("Using selector for tab context",T.context,h)):h=E("body"),T.childrenOnly?(o=h.children(t.tabs),v.debug("Searching tab context children for tabs",h,o)):(o=h.find(t.tabs),v.debug("Searching tab context for tabs",h,o))},fix:{callbacks:function(){E.isPlainObject(r)&&(r.onTabLoad||r.onTabInit)&&(r.onTabLoad&&(r.onLoad=r.onTabLoad,delete r.onTabLoad,v.error(A.legacyLoad,r.onLoad)),r.onTabInit&&(r.onFirstLoad=r.onTabInit,delete r.onTabInit,v.error(A.legacyInit,r.onFirstLoad)),T=E.extend(!0,{},E.fn.tab.settings,r))}},initializeHistory:function(){if(v.debug("Initializing page state"),E.address===k)return v.error(A.state),!1;if("state"==T.historyType){if(v.debug("Using HTML5 to manage state"),!1===T.path)return v.error(A.path),!1;E.address.history(!0).state(T.path)}E.address.bind("change",v.event.history.change)},event:{click:function(e){var t=E(this).data(x.tab);t!==k?(T.history?(v.verbose("Updating page state",e),E.address.value(t)):(v.verbose("Changing tab",e),v.changeTab(t)),e.preventDefault()):v.debug("No tab specified")},history:{change:function(e){var t=e.pathNames.join("/")||v.get.initialPath(),a=T.templates.determineTitle(t)||!1;v.performance.display(),v.debug("History change event",t,e),y=e,t!==k&&v.changeTab(t),a&&E.address.title(a)}}},refresh:function(){p&&(v.debug("Refreshing tab",p),v.changeTab(p))},cache:{read:function(e){return e!==k&&n[e]},add:function(e,t){e=e||p,v.debug("Adding cached content for",e),n[e]=t},remove:function(e){e=e||p,v.debug("Removing cached content for",e),delete n[e]}},set:{auto:function(){var e="string"==typeof T.path?T.path.replace(/\/$/,"")+"/{$tab}":"/{$tab}";v.verbose("Setting up automatic tab retrieval from server",e),E.isPlainObject(T.apiSettings)?T.apiSettings.url=e:T.apiSettings={url:e}},loading:function(e){var t=v.get.tabElement(e);t.hasClass(L.loading)||(v.verbose("Setting loading state for",t),t.addClass(L.loading).siblings(o).removeClass(L.active+" "+L.loading),0<t.length&&T.onRequest.call(t[0],e))},state:function(e){E.address.value(e)}},changeTab:function(u){var b=O.history&&O.history.pushState&&T.ignoreFirstLoad&&C,g=T.auto||E.isPlainObject(T.apiSettings),f=g&&!b?v.utilities.pathToArray(u):v.get.defaultPathArray(u);u=v.utilities.arrayToPath(f),E.each(f,function(e,t){var a,n,i,o,r=f.slice(0,e+1),s=v.utilities.arrayToPath(r),c=v.is.tab(s),l=e+1==f.length,d=v.get.tabElement(s);if(v.verbose("Looking for tab",t),c){if(v.verbose("Tab was found",t),p=s,m=v.utilities.filterArray(f,r),l?o=!0:(n=f.slice(0,e+2),i=v.utilities.arrayToPath(n),(o=!v.is.tab(i))&&v.verbose("Tab parameters found",n)),o&&g)return b?(v.debug("Ignoring remote content on first tab load",s),C=!1,v.cache.add(u,d.html()),v.activate.all(s),T.onFirstLoad.call(d[0],s,m,y),T.onLoad.call(d[0],s,m,y)):(v.activate.navigation(s),v.fetch.content(s,u)),!1;v.debug("Opened local tab",s),v.activate.all(s),v.cache.read(s)||(v.cache.add(s,!0),v.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,m,y)),T.onLoad.call(d[0],s,m,y)}else{if(-1!=u.search("/")||""===u)return v.error(A.missingTab,P,h,s),!1;if(s=(a=E("#"+u+', a[name="'+u+'"]')).closest("[data-tab]").data(x.tab),d=v.get.tabElement(s),a&&0<a.length&&s)return v.debug("Anchor link used, opening parent tab",d,a),d.hasClass(L.active)||setTimeout(function(){v.scrollTo(a)},0),v.activate.all(s),v.cache.read(s)||(v.cache.add(s,!0),v.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,m,y)),T.onLoad.call(d[0],s,m,y),!1}})},scrollTo:function(e){var t=!!(e&&0<e.length)&&e.offset().top;!1!==t&&(v.debug("Forcing scroll to an in-page link in a hidden tab",t,e),E(w).scrollTop(t))},update:{content:function(e,t,a){var n=v.get.tabElement(e),i=n[0];a=a!==k?a:T.evaluateScripts,"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&"string"!=typeof t?n.empty().append(E(t).clone(!0)):a?(v.debug("Updating HTML and evaluating inline scripts",e,t),n.html(t)):(v.debug("Updating HTML",e,t),i.innerHTML=t)}},fetch:{content:function(t,a){var e,n,i=v.get.tabElement(t),o={dataType:"html",encodeParameters:!1,on:"now",cache:T.alwaysRefresh,headers:{"X-Remote":!0},onSuccess:function(e){"response"==T.cacheType&&v.cache.add(a,e),v.update.content(t,e),t==p?(v.debug("Content loaded",t),v.activate.tab(t)):v.debug("Content loaded in background",t),T.onFirstLoad.call(i[0],t,m,y),T.onLoad.call(i[0],t,m,y),T.loadOnce?v.cache.add(a,!0):"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&0<i.children().length?setTimeout(function(){var e=i.children().clone(!0);e=e.not("script"),v.cache.add(a,e)},0):v.cache.add(a,i.html())},urlData:{tab:a}},r=i.api("get request")||!1,s=r&&"pending"===r.state();a=a||t,n=v.cache.read(a),T.cache&&n?(v.activate.tab(t),v.debug("Adding cached content",a),T.loadOnce||("once"==T.evaluateScripts?v.update.content(t,n,!1):v.update.content(t,n)),T.onLoad.call(i[0],t,m,y)):s?(v.set.loading(t),v.debug("Content is already loading",a)):E.api!==k?(e=E.extend(!0,{},T.apiSettings,o),v.debug("Retrieving remote content",a,e),v.set.loading(t),i.api(e)):v.error(A.api)}},activate:{all:function(e){v.activate.tab(e),v.activate.navigation(e)},tab:function(e){var t=v.get.tabElement(e),a="siblings"==T.deactivate?t.siblings(o):o.not(t),n=t.hasClass(L.active);v.verbose("Showing tab content for",t),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading),0<t.length&&T.onVisible.call(t[0],e))},navigation:function(e){var t=v.get.navElement(e),a="siblings"==T.deactivate?t.siblings(d):d.not(t),n=t.hasClass(L.active);v.verbose("Activating tab navigation for",t,e),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading))}},deactivate:{all:function(){v.deactivate.navigation(),v.deactivate.tabs()},navigation:function(){d.removeClass(L.active)},tabs:function(){o.removeClass(L.active+" "+L.loading)}},is:{tab:function(e){return e!==k&&0<v.get.tabElement(e).length}},get:{initialPath:function(){return d.eq(0).data(x.tab)||o.eq(0).data(x.tab)},path:function(){return E.address.value()},defaultPathArray:function(e){return v.utilities.pathToArray(v.get.defaultPath(e))},defaultPath:function(e){var t=d.filter("[data-"+x.tab+'^="'+e+'/"]').eq(0).data(x.tab)||!1;if(t){if(v.debug("Found default tab",t),i<T.maxDepth)return i++,v.get.defaultPath(t);v.error(A.recursion)}else v.debug("No default tabs found for",e,o);return i=0,e},navElement:function(e){return e=e||p,d.filter("[data-"+x.tab+'="'+e+'"]')},tabElement:function(e){var t,a,n,i;return e=e||p,n=v.utilities.pathToArray(e),i=v.utilities.last(n),t=o.filter("[data-"+x.tab+'="'+e+'"]'),a=o.filter("[data-"+x.tab+'="'+i+'"]'),0<t.length?t:a},tab:function(){return p}},utilities:{filterArray:function(e,t){return E.grep(e,function(e){return-1==E.inArray(e,t)})},last:function(e){return!!E.isArray(e)&&e[e.length-1]},pathToArray:function(e){return e===k&&(e=p),"string"==typeof e?e.split("/"):[e]},arrayToPath:function(e){return!!E.isArray(e)&&e.join("/")}},setting:function(e,t){if(v.debug("Changing setting",e,t),E.isPlainObject(e))E.extend(!0,T,e);else{if(t===k)return T[e];E.isPlainObject(T[e])?E.extend(!0,T[e],t):T[e]=t}},internal:function(e,t){if(E.isPlainObject(e))E.extend(!0,v,e);else{if(t===k)return v[e];v[e]=t}},debug:function(){!T.silent&&T.debug&&(T.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,T.name+":"),v.debug.apply(console,arguments)))},verbose:function(){!T.silent&&T.verbose&&T.debug&&(T.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,T.name+":"),v.verbose.apply(console,arguments)))},error:function(){T.silent||(v.error=Function.prototype.bind.call(console.error,console,T.name+":"),v.error.apply(console,arguments))},performance:{log:function(e){var t,a;T.performance&&(a=(t=(new Date).getTime())-(b||t),b=t,g.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:s,"Execution Time":a})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,500)},display:function(){var e=T.name+":",a=0;b=!1,clearTimeout(v.performance.timer),E.each(g,function(e,t){a+=t["Execution Time"]}),e+=" "+a+"ms",u&&(e+=" '"+u+"'"),(console.group!==k||console.table!==k)&&0<g.length&&(console.groupCollapsed(e),console.table?console.table(g):E.each(g,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(n,e,t){var i,o,a,r=c;return e=e||S,t=s||t,"string"==typeof n&&r!==k&&(n=n.split(/[\. ]/),i=n.length-1,E.each(n,function(e,t){var a=e!=i?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(E.isPlainObject(r[a])&&e!=i)r=r[a];else{if(r[a]!==k)return o=r[a],!1;if(!E.isPlainObject(r[t])||e==i)return r[t]!==k?o=r[t]:v.error(A.method,n),!1;r=r[t]}})),E.isFunction(o)?a=o.apply(t,e):o!==k&&(a=o),E.isArray(l)?l.push(a):l!==k?l=[l,a]:a!==k&&(l=a),o}},F?(c===k&&v.initialize(),v.invoke(f)):(c!==k&&c.invoke("destroy"),v.initialize())}),l!==k?l:this},E.tab=function(){E(O).tab.apply(this,arguments)},E.fn.tab.settings={name:"Tab",namespace:"tab",silent:!1,debug:!1,verbose:!1,performance:!0,auto:!1,history:!1,historyType:"hash",path:!1,context:!1,childrenOnly:!1,maxDepth:25,deactivate:"siblings",alwaysRefresh:!1,cache:!0,loadOnce:!1,cacheType:"response",ignoreFirstLoad:!1,apiSettings:!1,evaluateScripts:"once",onFirstLoad:function(e,t,a){},onLoad:function(e,t,a){},onVisible:function(e,t,a){},onRequest:function(e,t,a){},templates:{determineTitle:function(e){}},error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Activated tab cannot be found. Tabs are case-sensitive.",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",legacyInit:"onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.",legacyLoad:"onTabLoad has been renamed to onLoad in 2.0. Please adjust your code",state:"History requires Asual's Address library <https://github.com/asual/jquery-address>"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab",ui:".ui"}}}(jQuery,window,document);
1+!function(E,O,w,k){"use strict";O=void 0!==O&&O.Math==Math?O:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),E.fn.tab=function(r){var l,d=E.isFunction(this)?E(O):E(this),u=d.selector||"",b=(new Date).getTime(),g=[],f=r,F="string"==typeof f,S=[].slice.call(arguments,1),j=!1;return d.each(function(){var h,o,p,m,v,y,T=E.isPlainObject(r)?E.extend(!0,{},E.fn.tab.settings,r):E.extend({},E.fn.tab.settings),L=T.className,x=T.metadata,t=T.selector,A=T.error,e="."+T.namespace,a="module-"+T.namespace,P=E(this),n={},C=!0,i=0,s=this,c=P.data(a);v={initialize:function(){v.debug("Initializing tab menu item",P),v.fix.callbacks(),v.determineTabs(),v.debug("Determining tabs",T.context,o),T.auto&&v.set.auto(),v.bind.events(),T.history&&!j&&(v.initializeHistory(),j=!0),v.instantiate()},instantiate:function(){v.verbose("Storing instance of module",v),c=v,P.data(a,v)},destroy:function(){v.debug("Destroying tabs",P),P.removeData(a).off(e)},bind:{events:function(){E.isWindow(s)||(v.debug("Attaching tab activation events to element",P),P.on("click"+e,v.event.click))}},determineTabs:function(){var e;"parent"===T.context?(0<P.closest(t.ui).length?(e=P.closest(t.ui),v.verbose("Using closest UI element as parent",e)):e=P,h=e.parent(),v.verbose("Determined parent element for creating context",h)):T.context?(h=E(T.context),v.verbose("Using selector for tab context",T.context,h)):h=E("body"),T.childrenOnly?(o=h.children(t.tabs),v.debug("Searching tab context children for tabs",h,o)):(o=h.find(t.tabs),v.debug("Searching tab context for tabs",h,o))},fix:{callbacks:function(){E.isPlainObject(r)&&(r.onTabLoad||r.onTabInit)&&(r.onTabLoad&&(r.onLoad=r.onTabLoad,delete r.onTabLoad,v.error(A.legacyLoad,r.onLoad)),r.onTabInit&&(r.onFirstLoad=r.onTabInit,delete r.onTabInit,v.error(A.legacyInit,r.onFirstLoad)),T=E.extend(!0,{},E.fn.tab.settings,r))}},initializeHistory:function(){if(v.debug("Initializing page state"),E.address===k)return v.error(A.state),!1;if("state"==T.historyType){if(v.debug("Using HTML5 to manage state"),!1===T.path)return v.error(A.path),!1;E.address.history(!0).state(T.path)}E.address.bind("change",v.event.history.change)},event:{click:function(e){var t=E(this).data(x.tab);t!==k?(T.history?(v.verbose("Updating page state",e),E.address.value(t)):(v.verbose("Changing tab",e),v.changeTab(t)),e.preventDefault()):v.debug("No tab specified")},history:{change:function(e){var t=e.pathNames.join("/")||v.get.initialPath(),a=T.templates.determineTitle(t)||!1;v.performance.display(),v.debug("History change event",t,e),y=e,t!==k&&v.changeTab(t),a&&E.address.title(a)}}},refresh:function(){p&&(v.debug("Refreshing tab",p),v.changeTab(p))},cache:{read:function(e){return e!==k&&n[e]},add:function(e,t){e=e||p,v.debug("Adding cached content for",e),n[e]=t},remove:function(e){e=e||p,v.debug("Removing cached content for",e),delete n[e]}},set:{auto:function(){var e="string"==typeof T.path?T.path.replace(/\/$/,"")+"/{$tab}":"/{$tab}";v.verbose("Setting up automatic tab retrieval from server",e),E.isPlainObject(T.apiSettings)?T.apiSettings.url=e:T.apiSettings={url:e}},loading:function(e){var t=v.get.tabElement(e);t.hasClass(L.loading)||(v.verbose("Setting loading state for",t),t.addClass(L.loading).siblings(o).removeClass(L.active+" "+L.loading),0<t.length&&T.onRequest.call(t[0],e))},state:function(e){E.address.value(e)}},changeTab:function(u){var b=O.history&&O.history.pushState&&T.ignoreFirstLoad&&C,g=T.auto||E.isPlainObject(T.apiSettings),f=g&&!b?v.utilities.pathToArray(u):v.get.defaultPathArray(u);u=v.utilities.arrayToPath(f),E.each(f,function(e,t){var a,n,i,o,r=f.slice(0,e+1),s=v.utilities.arrayToPath(r),c=v.is.tab(s),l=e+1==f.length,d=v.get.tabElement(s);if(v.verbose("Looking for tab",t),c){if(v.verbose("Tab was found",t),p=s,m=v.utilities.filterArray(f,r),l?o=!0:(n=f.slice(0,e+2),i=v.utilities.arrayToPath(n),(o=!v.is.tab(i))&&v.verbose("Tab parameters found",n)),o&&g)return b?(v.debug("Ignoring remote content on first tab load",s),C=!1,v.cache.add(u,d.html()),v.activate.all(s),T.onFirstLoad.call(d[0],s,m,y),T.onLoad.call(d[0],s,m,y)):(v.activate.navigation(s),v.fetch.content(s,u)),!1;v.debug("Opened local tab",s),v.activate.all(s),v.cache.read(s)||(v.cache.add(s,!0),v.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,m,y)),T.onLoad.call(d[0],s,m,y)}else{if(-1!=u.search("/")||""===u)return v.error(A.missingTab,P,h,s),!1;if(s=(a=E("#"+u+', a[name="'+u+'"]')).closest("[data-tab]").data(x.tab),d=v.get.tabElement(s),a&&0<a.length&&s)return v.debug("Anchor link used, opening parent tab",d,a),d.hasClass(L.active)||setTimeout(function(){v.scrollTo(a)},0),v.activate.all(s),v.cache.read(s)||(v.cache.add(s,!0),v.debug("First time tab loaded calling tab init"),T.onFirstLoad.call(d[0],s,m,y)),T.onLoad.call(d[0],s,m,y),!1}})},scrollTo:function(e){var t=!!(e&&0<e.length)&&e.offset().top;!1!==t&&(v.debug("Forcing scroll to an in-page link in a hidden tab",t,e),E(w).scrollTop(t))},update:{content:function(e,t,a){var n=v.get.tabElement(e),i=n[0];a=a!==k?a:T.evaluateScripts,"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&"string"!=typeof t?n.empty().append(E(t).clone(!0)):a?(v.debug("Updating HTML and evaluating inline scripts",e,t),n.html(t)):(v.debug("Updating HTML",e,t),i.innerHTML=t)}},fetch:{content:function(t,a){var e,n,i=v.get.tabElement(t),o={dataType:"html",encodeParameters:!1,on:"now",cache:T.alwaysRefresh,headers:{"X-Remote":!0},onSuccess:function(e){"response"==T.cacheType&&v.cache.add(a,e),v.update.content(t,e),t==p?(v.debug("Content loaded",t),v.activate.tab(t)):v.debug("Content loaded in background",t),T.onFirstLoad.call(i[0],t,m,y),T.onLoad.call(i[0],t,m,y),T.loadOnce?v.cache.add(a,!0):"string"==typeof T.cacheType&&"dom"==T.cacheType.toLowerCase()&&0<i.children().length?setTimeout(function(){var e=i.children().clone(!0);e=e.not("script"),v.cache.add(a,e)},0):v.cache.add(a,i.html())},urlData:{tab:a}},r=i.api("get request")||!1,s=r&&"pending"===r.state();a=a||t,n=v.cache.read(a),T.cache&&n?(v.activate.tab(t),v.debug("Adding cached content",a),T.loadOnce||("once"==T.evaluateScripts?v.update.content(t,n,!1):v.update.content(t,n)),T.onLoad.call(i[0],t,m,y)):s?(v.set.loading(t),v.debug("Content is already loading",a)):E.api!==k?(e=E.extend(!0,{},T.apiSettings,o),v.debug("Retrieving remote content",a,e),v.set.loading(t),i.api(e)):v.error(A.api)}},activate:{all:function(e){v.activate.tab(e),v.activate.navigation(e)},tab:function(e){var t=v.get.tabElement(e),a="siblings"==T.deactivate?t.siblings(o):o.not(t),n=t.hasClass(L.active);v.verbose("Showing tab content for",t),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading),0<t.length&&T.onVisible.call(t[0],e))},navigation:function(e){var t=v.get.navElement(e),a="siblings"==T.deactivate?t.siblings(d):d.not(t),n=t.hasClass(L.active);v.verbose("Activating tab navigation for",t,e),n||(t.addClass(L.active),a.removeClass(L.active+" "+L.loading))}},deactivate:{all:function(){v.deactivate.navigation(),v.deactivate.tabs()},navigation:function(){d.removeClass(L.active)},tabs:function(){o.removeClass(L.active+" "+L.loading)}},is:{tab:function(e){return e!==k&&0<v.get.tabElement(e).length}},get:{initialPath:function(){return d.eq(0).data(x.tab)||o.eq(0).data(x.tab)},path:function(){return E.address.value()},defaultPathArray:function(e){return v.utilities.pathToArray(v.get.defaultPath(e))},defaultPath:function(e){var t=d.filter("[data-"+x.tab+'^="'+e+'/"]').eq(0).data(x.tab)||!1;if(t){if(v.debug("Found default tab",t),i<T.maxDepth)return i++,v.get.defaultPath(t);v.error(A.recursion)}else v.debug("No default tabs found for",e,o);return i=0,e},navElement:function(e){return e=e||p,d.filter("[data-"+x.tab+'="'+e+'"]')},tabElement:function(e){var t,a,n,i;return e=e||p,n=v.utilities.pathToArray(e),i=v.utilities.last(n),t=o.filter("[data-"+x.tab+'="'+e+'"]'),a=o.filter("[data-"+x.tab+'="'+i+'"]'),0<t.length?t:a},tab:function(){return p}},utilities:{filterArray:function(e,t){return E.grep(e,function(e){return-1==E.inArray(e,t)})},last:function(e){return!!E.isArray(e)&&e[e.length-1]},pathToArray:function(e){return e===k&&(e=p),"string"==typeof e?e.split("/"):[e]},arrayToPath:function(e){return!!E.isArray(e)&&e.join("/")}},setting:function(e,t){if(v.debug("Changing setting",e,t),E.isPlainObject(e))E.extend(!0,T,e);else{if(t===k)return T[e];E.isPlainObject(T[e])?E.extend(!0,T[e],t):T[e]=t}},internal:function(e,t){if(E.isPlainObject(e))E.extend(!0,v,e);else{if(t===k)return v[e];v[e]=t}},debug:function(){!T.silent&&T.debug&&(T.performance?v.performance.log(arguments):(v.debug=Function.prototype.bind.call(console.info,console,T.name+":"),v.debug.apply(console,arguments)))},verbose:function(){!T.silent&&T.verbose&&T.debug&&(T.performance?v.performance.log(arguments):(v.verbose=Function.prototype.bind.call(console.info,console,T.name+":"),v.verbose.apply(console,arguments)))},error:function(){T.silent||(v.error=Function.prototype.bind.call(console.error,console,T.name+":"),v.error.apply(console,arguments))},performance:{log:function(e){var t,a;T.performance&&(a=(t=(new Date).getTime())-(b||t),b=t,g.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:s,"Execution Time":a})),clearTimeout(v.performance.timer),v.performance.timer=setTimeout(v.performance.display,500)},display:function(){var e=T.name+":",a=0;b=!1,clearTimeout(v.performance.timer),E.each(g,function(e,t){a+=t["Execution Time"]}),e+=" "+a+"ms",u&&(e+=" '"+u+"'"),(console.group!==k||console.table!==k)&&0<g.length&&(console.groupCollapsed(e),console.table?console.table(g):E.each(g,function(e,t){console.log(t.Name+": "+t["Execution Time"]+"ms")}),console.groupEnd()),g=[]}},invoke:function(n,e,t){var i,o,a,r=c;return e=e||S,t=s||t,"string"==typeof n&&r!==k&&(n=n.split(/[\. ]/),i=n.length-1,E.each(n,function(e,t){var a=e!=i?t+n[e+1].charAt(0).toUpperCase()+n[e+1].slice(1):n;if(E.isPlainObject(r[a])&&e!=i)r=r[a];else{if(r[a]!==k)return o=r[a],!1;if(!E.isPlainObject(r[t])||e==i)return r[t]!==k?o=r[t]:v.error(A.method,n),!1;r=r[t]}})),E.isFunction(o)?a=o.apply(t,e):o!==k&&(a=o),E.isArray(l)?l.push(a):l!==k?l=[l,a]:a!==k&&(l=a),o}},F?(c===k&&v.initialize(),v.invoke(f)):(c!==k&&c.invoke("destroy"),v.initialize())}),l!==k?l:this},E.tab=function(){E(O).tab.apply(this,arguments)},E.fn.tab.settings={name:"Tab",namespace:"tab",silent:!1,debug:!1,verbose:!1,performance:!0,auto:!1,history:!1,historyType:"hash",path:!1,context:!1,childrenOnly:!1,maxDepth:25,deactivate:"siblings",alwaysRefresh:!1,cache:!0,loadOnce:!1,cacheType:"response",ignoreFirstLoad:!1,apiSettings:!1,evaluateScripts:"once",onFirstLoad:function(e,t,a){},onLoad:function(e,t,a){},onVisible:function(e,t,a){},onRequest:function(e,t,a){},templates:{determineTitle:function(e){}},error:{api:"You attempted to load content without API module",method:"The method you called is not defined",missingTab:"Activated tab cannot be found. Tabs are case-sensitive.",noContent:"The tab you specified is missing a content url.",path:"History enabled, but no path was specified",recursion:"Max recursive depth reached",legacyInit:"onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.",legacyLoad:"onTabLoad has been renamed to onLoad in 2.0. Please adjust your code",state:"History requires Asual's Address library <https://github.com/asual/jquery-address>"},metadata:{tab:"tab",loaded:"loaded",promise:"promise"},className:{loading:"loading",active:"active"},selector:{tabs:".ui.tab",ui:".ui"}}}(jQuery,window,document);
admin/api.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Administration API &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="settings.html" title="settings.yml"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Administration API</a></li>
3743 </ul>
3844 </div>
3945
@@ -133,6 +139,7 @@ HTML of the site. URL of the searx instance and values are customizable.</p>
133139</div>
134140
135141
142+ <div class="clearer"></div>
136143 </div>
137144 </div>
138145 </div>
@@ -148,9 +155,9 @@ HTML of the site. URL of the searx instance and values are customizable.</p>
148155
149156 <h3>Project Links</h3>
150157 <ul>
151− <li><a href="https://github.com/asciimoo/searx">Source</a>
158+ <li><a href="https://github.com/searx/searx">Source</a>
152159
153− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
160+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
154161
155162 <li><a href="https://searx.space/">Public instances</a>
156163
@@ -184,7 +191,7 @@ HTML of the site. URL of the searx instance and values are customizable.</p>
184191
185192 <div class="footer" role="contentinfo">
186193 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
187− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
194+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
188195 </div>
189196 <script src="../_static/version_warning_offset.js"></script>
190197
admin/architecture.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Architecture &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="api.html" title="Administration API"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Architecture</a></li>
3743 </ul>
3844 </div>
3945
@@ -56,7 +62,7 @@
5662</div>
5763<p>Herein you will find some hints and suggestions about typical architectures of
5864searx infrastructures.</p>
59−<p>We start with a contribution from <a class="reference external" href="https://github.com/asciimoo/searx/pull/1776#issuecomment-567917320">&#64;dalf</a>.
65+<p>We start with a contribution from <a class="reference external" href="https://github.com/searx/searx/pull/1776#issuecomment-567917320">&#64;dalf</a>.
6066It shows a <em>reference</em> setup for public searx instances which can build up and
6167maintained by the scripts from our <a class="reference internal" href="../utils/index.html#toolboxing"><span class="std std-ref">Tooling box utils/*</span></a>.</p>
6268<div class="figure align-default" id="id2">
@@ -65,6 +71,7 @@ maintained by the scripts from our <a class="reference internal" href="../utils/
6571</div>
6672
6773
74+ <div class="clearer"></div>
6875 </div>
6976 </div>
7077 </div>
@@ -80,9 +87,9 @@ maintained by the scripts from our <a class="reference internal" href="../utils/
8087
8188 <h3>Project Links</h3>
8289 <ul>
83− <li><a href="https://github.com/asciimoo/searx">Source</a>
90+ <li><a href="https://github.com/searx/searx">Source</a>
8491
85− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
92+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
8693
8794 <li><a href="https://searx.space/">Public instances</a>
8895
@@ -116,7 +123,7 @@ maintained by the scripts from our <a class="reference internal" href="../utils/
116123
117124 <div class="footer" role="contentinfo">
118125 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
119− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
126+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
120127 </div>
121128 <script src="../_static/version_warning_offset.js"></script>
122129
admin/buildhosts.html+99−7
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Buildhosts &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="plugins.html" title="Plugins builtin"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Buildhosts</a></li>
4345 </ul>
4446 </div>
4547
@@ -52,7 +54,7 @@
5254<span id="id1"></span><h1>Buildhosts<a class="headerlink" href="#buildhosts" title="Permalink to this headline">¶</a></h1>
5355<div class="sidebar">
5456<p class="sidebar-title">This article needs some work</p>
55−<p>If you have any contribution send us your <a class="reference external" href="https://github.com/asciimoo/searx/pull/../pulls">PR</a>, see
57+<p>If you have any contribution send us your <a class="reference external" href="https://github.com/searx/searx/pull/../pulls">PR</a>, see
5658<a class="reference internal" href="../dev/contribution_guide.html#how-to-contribute"><span class="std std-ref">How to contribute</span></a>.</p>
5759</div>
5860<div class="contents local topic" id="contents">
@@ -68,7 +70,96 @@ on build hosts (see <a class="reference internal" href="../utils/searx.sh.html#s
6870</pre></div>
6971</div>
7072<p>This will install packages needed by searx:</p>
73+<div class="sphinx-tabs docutils container">
74+<div class="ui top attached tabular menu sphinx-menu docutils container">
75+<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
76+<div class="docutils container">
77+<p>Ubuntu / debian</p>
78+</div>
79+</div>
80+<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
81+<div class="docutils container">
82+<p>Arch Linux</p>
83+</div>
84+</div>
85+<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
86+<div class="docutils container">
87+<p>Fedora / RHEL</p>
88+</div>
89+</div>
90+</div>
91+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
92+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
93+ virtualenv python3-dev python3-babel python3-venv <span class="se">\</span>
94+ uwsgi uwsgi-plugin-python3 <span class="se">\</span>
95+ git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev <span class="se">\</span>
96+ shellcheck
97+</pre></div>
98+</div>
99+</div>
100+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
101+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
102+ python-virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
103+ uwsgi uwsgi-plugin-python <span class="se">\</span>
104+ git base-devel libxml2 <span class="se">\</span>
105+ shellcheck
106+</pre></div>
107+</div>
108+</div>
109+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
110+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
111+ virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
112+ uwsgi uwsgi-plugin-python3 <span class="se">\</span>
113+ git @development-tools libxml2 <span class="se">\</span>
114+ ShellCheck
115+</pre></div>
116+</div>
117+</div>
118+</div>
71119<p>and packages needed to build docuemtation and run tests:</p>
120+<div class="sphinx-tabs docutils container">
121+<div class="ui top attached tabular menu sphinx-menu docutils container">
122+<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
123+<div class="docutils container">
124+<p>Ubuntu / debian</p>
125+</div>
126+</div>
127+<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
128+<div class="docutils container">
129+<p>Arch Linux</p>
130+</div>
131+</div>
132+<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
133+<div class="docutils container">
134+<p>Fedora / RHEL</p>
135+</div>
136+</div>
137+</div>
138+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
139+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
140+ firefox graphviz imagemagick texlive-xetex librsvg2-bin <span class="se">\</span>
141+ texlive-latex-recommended texlive-extra-utils ttf-dejavu <span class="se">\</span>
142+ latexmk
143+</pre></div>
144+</div>
145+</div>
146+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
147+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
148+ firefox graphviz imagemagick texlive-bin extra/librsvg <span class="se">\</span>
149+ texlive-core texlive-latexextra ttf-dejavu
150+</pre></div>
151+</div>
152+</div>
153+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
154+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
155+ firefox graphviz graphviz-gd ImageMagick librsvg2-tools <span class="se">\</span>
156+ texlive-xetex-bin texlive-collection-fontsrecommended <span class="se">\</span>
157+ texlive-collection-latex dejavu-sans-fonts dejavu-serif-fonts <span class="se">\</span>
158+ dejavu-sans-mono-fonts
159+</pre></div>
160+</div>
161+</div>
162+</div>
72163<div class="section" id="build-docs">
73164<span id="docs-build"></span><h2><a class="toc-backref" href="#id2">Build docs</a><a class="headerlink" href="#build-docs" title="Permalink to this headline">¶</a></h2>
74165<div class="sidebar">
@@ -80,13 +171,13 @@ on build hosts (see <a class="reference internal" href="../utils/searx.sh.html#s
80171<li><p><a class="reference external" href="https://dvisvgm.de/">dvisvgm</a></p></li>
81172</ul>
82173</div>
83−<p>Most of the sphinx requirements are installed from <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/setup.py">git://setup.py</a> and the
174+<p>Most of the sphinx requirements are installed from <a class="reference external" href="https://github.com/searx/searx/blob/master/setup.py">git://setup.py</a> and the
84175docs can be build from scratch with <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">docs</span></code>. For better math and image
85176processing additional packages are needed. The <a class="reference external" href="https://tug.org/xetex/">XeTeX</a> needed not only for PDF
86177creation, its also needed for <a class="reference internal" href="../dev/reST.html#math"><span class="std std-ref">Math equations</span></a> when HTML output is build.</p>
87178<p>To be able to do <a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/extensions/math.html#math-support" title="(in Sphinx v4.0.0+)"><span>Math support for HTML outputs in Sphinx</span></a> without CDNs, the math are rendered
88179as images (<code class="docutils literal notranslate"><span class="pre">sphinx.ext.imgmath</span></code> extension).</p>
89−<p>Here is the extract from the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/conf.py">git://docs/conf.py</a> file, setting math renderer
180+<p>Here is the extract from the <a class="reference external" href="https://github.com/searx/searx/blob/master/docs/conf.py">git://docs/conf.py</a> file, setting math renderer
90181to <code class="docutils literal notranslate"><span class="pre">imgmath</span></code>:</p>
91182<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">html_math_renderer</span> <span class="o">=</span> <span class="s1">&#39;imgmath&#39;</span>
92183<span class="n">imgmath_image_format</span> <span class="o">=</span> <span class="s1">&#39;svg&#39;</span>
@@ -217,6 +308,7 @@ output.</p>
217308</div>
218309
219310
311+ <div class="clearer"></div>
220312 </div>
221313 </div>
222314 </div>
@@ -232,9 +324,9 @@ output.</p>
232324
233325 <h3>Project Links</h3>
234326 <ul>
235− <li><a href="https://github.com/asciimoo/searx">Source</a>
327+ <li><a href="https://github.com/searx/searx">Source</a>
236328
237− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
329+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
238330
239331 <li><a href="https://searx.space/">Public instances</a>
240332
@@ -268,7 +360,7 @@ output.</p>
268360
269361 <div class="footer" role="contentinfo">
270362 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
271− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
363+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
272364 </div>
273365 <script src="../_static/version_warning_offset.js"></script>
274366
admin/engines.html+11−1609
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Engines &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="morty.html" title="How to setup result proxy"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Engines</a></li>
3743 </ul>
3844 </div>
3945
@@ -140,1616 +146,12 @@
140146</tr>
141147</thead>
142148<tbody>
143−<tr class="row-even"><th class="stub"><p>apk mirror</p></th>
144−<th class="stub"><p>!apkm</p></th>
145−<td><p>apkmirror</p></td>
146−<td><p>4.0</p></td>
147−<td><p>it</p></td>
148−<td><p>y</p></td>
149−<td><p>y</p></td>
150−<td></td>
151−<td><p>y</p></td>
152−<td></td>
153−<td></td>
154−<td><p>1</p></td>
155−<td><p>y</p></td>
156−<td><p>y</p></td>
157−</tr>
158−<tr class="row-odd"><th class="stub"><p>arch linux wiki</p></th>
159−<th class="stub"><p>!al</p></th>
160−<td><p>archlinux</p></td>
161−<td><p>2.0</p></td>
162−<td><p>it</p></td>
163−<td><p>y</p></td>
164−<td><p>y</p></td>
165−<td></td>
166−<td></td>
167−<td></td>
168−<td></td>
169−<td><p>1</p></td>
170−<td></td>
171−<td><p>y</p></td>
172−</tr>
173−<tr class="row-even"><th class="stub"><p>archive is</p></th>
174−<th class="stub"><p>!ai</p></th>
175−<td><p>xpath</p></td>
176−<td><p>7.0</p></td>
177−<td><p>general</p></td>
178−<td></td>
179−<td><p>y</p></td>
180−<td></td>
181−<td><p>y</p></td>
182−<td></td>
183−<td></td>
184−<td><p>1</p></td>
185−<td><p>y</p></td>
186−<td><p>y</p></td>
187−</tr>
188−<tr class="row-odd"><th class="stub"><p>arxiv</p></th>
189−<th class="stub"><p>!arx</p></th>
190−<td><p>arxiv</p></td>
191−<td><p>4.0</p></td>
192−<td><p>science</p></td>
193−<td><p>y</p></td>
194−<td><p>y</p></td>
195−<td></td>
196−<td></td>
197−<td></td>
198−<td></td>
199−<td><p>1</p></td>
200−<td></td>
201−<td><p>y</p></td>
202−</tr>
203−<tr class="row-even"><th class="stub"><p>wikipedia</p></th>
204−<th class="stub"><p>!wp</p></th>
205−<td><p>wikipedia</p></td>
206−<td><p>2.0</p></td>
207−<td><p>general</p></td>
208−<td></td>
209−<td><p>y</p></td>
210−<td></td>
211−<td></td>
212−<td></td>
213−<td></td>
214−<td><p>1</p></td>
215−<td></td>
216−<td><p>y</p></td>
217−</tr>
218−<tr class="row-odd"><th class="stub"><p>bing</p></th>
219−<th class="stub"><p>!bi</p></th>
220−<td><p>bing</p></td>
221−<td><p>2.0</p></td>
222−<td><p>general</p></td>
223−<td><p>y</p></td>
224−<td><p>y</p></td>
225−<td></td>
226−<td></td>
227−<td></td>
228−<td></td>
229−<td><p>1</p></td>
230−<td></td>
231−<td><p>y</p></td>
232−</tr>
233−<tr class="row-even"><th class="stub"><p>bing images</p></th>
234−<th class="stub"><p>!bii</p></th>
235−<td><p>bing_images</p></td>
236−<td><p>2.0</p></td>
237−<td><p>images</p></td>
238−<td><p>y</p></td>
239−<td><p>y</p></td>
240−<td><p>y</p></td>
241−<td></td>
242−<td><p>y</p></td>
243−<td></td>
244−<td><p>1</p></td>
245−<td></td>
246−<td><p>y</p></td>
247−</tr>
248−<tr class="row-odd"><th class="stub"><p>bing news</p></th>
249−<th class="stub"><p>!bin</p></th>
250−<td><p>bing_news</p></td>
251−<td><p>2.0</p></td>
252−<td><p>news</p></td>
253−<td><p>y</p></td>
254−<td><p>y</p></td>
255−<td></td>
256−<td></td>
257−<td><p>y</p></td>
258−<td></td>
259−<td><p>1</p></td>
260−<td></td>
261−<td><p>y</p></td>
262−</tr>
263−<tr class="row-even"><th class="stub"><p>bing videos</p></th>
264−<th class="stub"><p>!biv</p></th>
265−<td><p>bing_videos</p></td>
266−<td><p>2.0</p></td>
267−<td><p>videos</p></td>
268−<td><p>y</p></td>
269−<td><p>y</p></td>
270−<td><p>y</p></td>
271−<td></td>
272−<td><p>y</p></td>
273−<td></td>
274−<td><p>1</p></td>
275−<td></td>
276−<td><p>y</p></td>
277−</tr>
278−<tr class="row-odd"><th class="stub"><p>bitbucket</p></th>
279−<th class="stub"><p>!bb</p></th>
280−<td><p>xpath</p></td>
281−<td><p>4.0</p></td>
282−<td><p>it</p></td>
283−<td><p>y</p></td>
284−<td><p>y</p></td>
285−<td></td>
286−<td><p>y</p></td>
287−<td></td>
288−<td></td>
289−<td><p>1</p></td>
290−<td><p>y</p></td>
291−<td><p>y</p></td>
292−</tr>
293−<tr class="row-even"><th class="stub"><p>btdigg</p></th>
294−<th class="stub"><p>!bt</p></th>
295−<td><p>btdigg</p></td>
296−<td><p>2.0</p></td>
297−<td><p>videos, music, files</p></td>
298−<td><p>y</p></td>
299−<td><p>y</p></td>
300−<td></td>
301−<td></td>
302−<td></td>
303−<td></td>
304−<td><p>1</p></td>
305−<td></td>
306−<td><p>y</p></td>
307−</tr>
308−<tr class="row-odd"><th class="stub"><p>ccc-tv</p></th>
309−<th class="stub"><p>!c3tv</p></th>
310−<td><p>xpath</p></td>
311−<td><p>2.0</p></td>
312−<td><p>videos</p></td>
313−<td></td>
314−<td><p>y</p></td>
315−<td></td>
316−<td><p>y</p></td>
317−<td></td>
318−<td></td>
319−<td><p>1</p></td>
320−<td><p>y</p></td>
321−<td><p>y</p></td>
322−</tr>
323−<tr class="row-even"><th class="stub"><p>crossref</p></th>
324−<th class="stub"><p>!cr</p></th>
325−<td><p>json_engine</p></td>
326−<td><p>2.0</p></td>
327−<td><p>science</p></td>
328−<td><p>y</p></td>
329−<td><p>y</p></td>
330−<td></td>
331−<td></td>
332−<td></td>
333−<td></td>
334−<td><p>1</p></td>
335−<td></td>
336−<td><p>y</p></td>
337−</tr>
338−<tr class="row-odd"><th class="stub"><p>currency</p></th>
339−<th class="stub"><p>!cc</p></th>
340−<td><p>currency_convert</p></td>
341−<td><p>2.0</p></td>
342−<td><p>general</p></td>
343−<td></td>
344−<td><p>y</p></td>
345−<td></td>
346−<td></td>
347−<td></td>
348−<td></td>
349−<td><p>100</p></td>
350−<td></td>
351−<td><p>y</p></td>
352−</tr>
353−<tr class="row-even"><th class="stub"><p>deezer</p></th>
354−<th class="stub"><p>!dz</p></th>
355−<td><p>deezer</p></td>
356−<td><p>2.0</p></td>
357−<td><p>music</p></td>
358−<td><p>y</p></td>
359−<td><p>y</p></td>
360−<td></td>
361−<td></td>
362−<td></td>
363−<td></td>
364−<td><p>1</p></td>
365−<td></td>
366−<td><p>y</p></td>
367−</tr>
368−<tr class="row-odd"><th class="stub"><p>deviantart</p></th>
369−<th class="stub"><p>!da</p></th>
370−<td><p>deviantart</p></td>
371−<td><p>3.0</p></td>
372−<td><p>images</p></td>
373−<td><p>y</p></td>
374−<td><p>y</p></td>
375−<td></td>
376−<td></td>
377−<td><p>y</p></td>
378−<td></td>
379−<td><p>1</p></td>
380−<td></td>
381−<td><p>y</p></td>
382−</tr>
383−<tr class="row-even"><th class="stub"><p>ddg definitions</p></th>
384−<th class="stub"><p>!ddd</p></th>
385−<td><p>duckduckgo_definitions</p></td>
386−<td><p>2.0</p></td>
387−<td><p>general</p></td>
388−<td></td>
389−<td><p>y</p></td>
390−<td></td>
391−<td><p>y</p></td>
392−<td></td>
393−<td></td>
394−<td><p>2</p></td>
395−<td><p>y</p></td>
396−<td><p>y</p></td>
397−</tr>
398−<tr class="row-odd"><th class="stub"><p>digg</p></th>
399−<th class="stub"><p>!dg</p></th>
400−<td><p>digg</p></td>
401−<td><p>2.0</p></td>
402−<td><p>news, social media</p></td>
403−<td><p>y</p></td>
404−<td><p>y</p></td>
405−<td></td>
406−<td></td>
407−<td></td>
408−<td></td>
409−<td><p>1</p></td>
410−<td></td>
411−<td><p>y</p></td>
412−</tr>
413−<tr class="row-even"><th class="stub"><p>erowid</p></th>
414−<th class="stub"><p>!ew</p></th>
415−<td><p>xpath</p></td>
416−<td><p>2.0</p></td>
417−<td><p>general</p></td>
418−<td><p>y</p></td>
419−<td><p>y</p></td>
420−<td></td>
421−<td><p>y</p></td>
422−<td></td>
423−<td></td>
424−<td><p>1</p></td>
425−<td><p>y</p></td>
426−<td><p>y</p></td>
427−</tr>
428−<tr class="row-odd"><th class="stub"><p>wikidata</p></th>
429−<th class="stub"><p>!wd</p></th>
430−<td><p>wikidata</p></td>
431−<td><p>3.0</p></td>
432−<td><p>general</p></td>
433−<td></td>
434−<td><p>y</p></td>
435−<td></td>
436−<td></td>
437−<td></td>
438−<td></td>
439−<td><p>2</p></td>
440−<td></td>
441−<td><p>y</p></td>
442−</tr>
443−<tr class="row-even"><th class="stub"><p>duckduckgo</p></th>
444−<th class="stub"><p>!ddg</p></th>
445−<td><p>duckduckgo</p></td>
446−<td><p>2.0</p></td>
447−<td><p>general</p></td>
448−<td><p>y</p></td>
449−<td><p>y</p></td>
450−<td></td>
451−<td><p>y</p></td>
452−<td><p>y</p></td>
453−<td></td>
454−<td><p>1</p></td>
455−<td><p>y</p></td>
456−<td><p>y</p></td>
457−</tr>
458−<tr class="row-odd"><th class="stub"><p>duckduckgo images</p></th>
459−<th class="stub"><p>!ddi</p></th>
460−<td><p>duckduckgo_images</p></td>
461−<td><p>3.0</p></td>
462−<td><p>images</p></td>
463−<td><p>y</p></td>
464−<td><p>y</p></td>
465−<td><p>y</p></td>
466−<td><p>y</p></td>
467−<td></td>
468−<td></td>
469−<td><p>1</p></td>
470−<td><p>y</p></td>
471−<td><p>y</p></td>
472−</tr>
473−<tr class="row-even"><th class="stub"><p>etools</p></th>
474−<th class="stub"><p>!eto</p></th>
475−<td><p>etools</p></td>
476−<td><p>2.0</p></td>
477−<td><p>general</p></td>
478−<td></td>
479−<td></td>
480−<td><p>y</p></td>
481−<td><p>y</p></td>
482−<td></td>
483−<td></td>
484−<td><p>1</p></td>
485−<td><p>y</p></td>
486−<td><p>y</p></td>
487−</tr>
488−<tr class="row-odd"><th class="stub"><p>etymonline</p></th>
489−<th class="stub"><p>!et</p></th>
490−<td><p>xpath</p></td>
491−<td><p>2.0</p></td>
492−<td><p>general</p></td>
493−<td><p>y</p></td>
494−<td><p>y</p></td>
495−<td></td>
496−<td><p>y</p></td>
497−<td></td>
498−<td></td>
499−<td><p>1</p></td>
500−<td><p>y</p></td>
501−<td><p>y</p></td>
502−</tr>
503−<tr class="row-even"><th class="stub"><p>1x</p></th>
504−<th class="stub"><p>!1x</p></th>
505−<td><p>www1x</p></td>
506−<td><p>2.0</p></td>
507−<td><p>images</p></td>
508−<td></td>
509−<td><p>y</p></td>
510−<td></td>
511−<td><p>y</p></td>
512−<td></td>
513−<td></td>
514−<td><p>1</p></td>
515−<td><p>y</p></td>
516−<td><p>y</p></td>
517−</tr>
518−<tr class="row-odd"><th class="stub"><p>fdroid</p></th>
519−<th class="stub"><p>!fd</p></th>
520−<td><p>fdroid</p></td>
521−<td><p>2.0</p></td>
522−<td><p>files</p></td>
523−<td><p>y</p></td>
524−<td><p>y</p></td>
525−<td></td>
526−<td><p>y</p></td>
527−<td></td>
528−<td></td>
529−<td><p>1</p></td>
530−<td><p>y</p></td>
531−<td><p>y</p></td>
532−</tr>
533−<tr class="row-even"><th class="stub"><p>flickr</p></th>
534−<th class="stub"><p>!fl</p></th>
535−<td><p>flickr_noapi</p></td>
536−<td><p>2.0</p></td>
537−<td><p>images</p></td>
538−<td><p>y</p></td>
539−<td><p>y</p></td>
540−<td></td>
541−<td></td>
542−<td><p>y</p></td>
543−<td></td>
544−<td><p>1</p></td>
545−<td></td>
546−<td><p>y</p></td>
547−</tr>
548−<tr class="row-odd"><th class="stub"><p>free software directory</p></th>
549−<th class="stub"><p>!fsd</p></th>
550−<td><p>mediawiki</p></td>
551−<td><p>5.0</p></td>
552−<td><p>it</p></td>
553−<td><p>y</p></td>
554−<td><p>y</p></td>
555−<td></td>
556−<td><p>y</p></td>
557−<td></td>
558−<td></td>
559−<td><p>1</p></td>
560−<td><p>y</p></td>
561−<td><p>y</p></td>
562−</tr>
563−<tr class="row-even"><th class="stub"><p>frinkiac</p></th>
564−<th class="stub"><p>!frk</p></th>
565−<td><p>frinkiac</p></td>
566−<td><p>2.0</p></td>
567−<td><p>images</p></td>
568−<td></td>
569−<td><p>y</p></td>
570−<td></td>
571−<td><p>y</p></td>
572−<td></td>
573−<td></td>
574−<td><p>1</p></td>
575−<td><p>y</p></td>
576−<td><p>y</p></td>
577−</tr>
578−<tr class="row-odd"><th class="stub"><p>genius</p></th>
579−<th class="stub"><p>!gen</p></th>
580−<td><p>genius</p></td>
581−<td><p>2.0</p></td>
582−<td><p>music</p></td>
583−<td><p>y</p></td>
584−<td></td>
585−<td></td>
586−<td></td>
587−<td></td>
588−<td></td>
589−<td><p>1</p></td>
590−<td></td>
591−<td><p>y</p></td>
592−</tr>
593−<tr class="row-even"><th class="stub"><p>gigablast</p></th>
594−<th class="stub"><p>!gb</p></th>
595−<td><p>gigablast</p></td>
596−<td><p>3.0</p></td>
597−<td><p>general</p></td>
598−<td></td>
599−<td><p>y</p></td>
600−<td><p>y</p></td>
601−<td><p>y</p></td>
602−<td></td>
603−<td></td>
604−<td><p>1</p></td>
605−<td><p>y</p></td>
606−<td><p>y</p></td>
607−</tr>
608−<tr class="row-odd"><th class="stub"><p>gentoo</p></th>
609−<th class="stub"><p>!ge</p></th>
610−<td><p>gentoo</p></td>
611−<td><p>2.0</p></td>
612−<td><p>it</p></td>
613−<td><p>y</p></td>
614−<td><p>y</p></td>
615−<td></td>
616−<td></td>
617−<td></td>
618−<td></td>
619−<td><p>1</p></td>
620−<td></td>
621−<td><p>y</p></td>
622−</tr>
623−<tr class="row-even"><th class="stub"><p>gitlab</p></th>
624−<th class="stub"><p>!gl</p></th>
625−<td><p>json_engine</p></td>
626−<td><p>10.0</p></td>
627−<td><p>it</p></td>
628−<td><p>y</p></td>
629−<td><p>y</p></td>
630−<td></td>
631−<td><p>y</p></td>
632−<td></td>
633−<td></td>
634−<td><p>1</p></td>
635−<td><p>y</p></td>
636−<td><p>y</p></td>
637−</tr>
638−<tr class="row-odd"><th class="stub"><p>github</p></th>
639−<th class="stub"><p>!gh</p></th>
640−<td><p>github</p></td>
641−<td><p>2.0</p></td>
642−<td><p>it</p></td>
643−<td></td>
644−<td><p>y</p></td>
645−<td></td>
646−<td></td>
647−<td></td>
648−<td></td>
649−<td><p>1</p></td>
650−<td></td>
651−<td><p>y</p></td>
652−</tr>
653−<tr class="row-even"><th class="stub"><p>codeberg</p></th>
654−<th class="stub"><p>!cb</p></th>
655−<td><p>json_engine</p></td>
656−<td><p>2.0</p></td>
657−<td><p>it</p></td>
658−<td></td>
659−<td><p>y</p></td>
660−<td></td>
661−<td><p>y</p></td>
662−<td></td>
663−<td></td>
664−<td><p>1</p></td>
665−<td><p>y</p></td>
666−<td><p>y</p></td>
667−</tr>
668−<tr class="row-odd"><th class="stub"><p>google</p></th>
669−<th class="stub"><p>!go</p></th>
670−<td><p>google</p></td>
671−<td><p>2.0</p></td>
672−<td><p>general</p></td>
673−<td><p>y</p></td>
674−<td><p>y</p></td>
675−<td><p>y</p></td>
676−<td></td>
677−<td><p>y</p></td>
678−<td></td>
679−<td><p>1</p></td>
680−<td></td>
681−<td><p>y</p></td>
682−</tr>
683−<tr class="row-even"><th class="stub"><p>google images</p></th>
684−<th class="stub"><p>!goi</p></th>
685−<td><p>google_images</p></td>
686−<td><p>2.0</p></td>
687−<td><p>images</p></td>
688−<td></td>
689−<td><p>y</p></td>
690−<td><p>y</p></td>
691−<td></td>
692−<td><p>y</p></td>
693−<td></td>
694−<td><p>1</p></td>
695−<td></td>
696−<td><p>y</p></td>
697−</tr>
698−<tr class="row-odd"><th class="stub"><p>google news</p></th>
699−<th class="stub"><p>!gon</p></th>
700−<td><p>google_news</p></td>
701−<td><p>2.0</p></td>
702−<td><p>news</p></td>
703−<td><p>y</p></td>
704−<td><p>y</p></td>
705−<td><p>y</p></td>
706−<td></td>
707−<td><p>y</p></td>
708−<td></td>
709−<td><p>1</p></td>
710−<td></td>
711−<td><p>y</p></td>
712−</tr>
713−<tr class="row-even"><th class="stub"><p>google videos</p></th>
714−<th class="stub"><p>!gov</p></th>
715−<td><p>google_videos</p></td>
716−<td><p>2.0</p></td>
717−<td><p>videos</p></td>
718−<td><p>y</p></td>
719−<td><p>y</p></td>
720−<td><p>y</p></td>
721−<td></td>
722−<td><p>y</p></td>
723−<td></td>
724−<td><p>1</p></td>
725−<td></td>
726−<td><p>y</p></td>
727−</tr>
728−<tr class="row-odd"><th class="stub"><p>google scholar</p></th>
729−<th class="stub"><p>!gos</p></th>
730−<td><p>xpath</p></td>
731−<td><p>2.0</p></td>
732−<td><p>science</p></td>
733−<td><p>y</p></td>
734−<td><p>y</p></td>
735−<td></td>
736−<td></td>
737−<td></td>
738−<td></td>
739−<td><p>1</p></td>
740−<td></td>
741−<td><p>y</p></td>
742−</tr>
743−<tr class="row-even"><th class="stub"><p>google play apps</p></th>
744−<th class="stub"><p>!gpa</p></th>
745−<td><p>xpath</p></td>
746−<td><p>2.0</p></td>
747−<td><p>files</p></td>
748−<td></td>
749−<td><p>y</p></td>
750−<td></td>
751−<td><p>y</p></td>
752−<td></td>
753−<td></td>
754−<td><p>1</p></td>
755−<td><p>y</p></td>
756−<td><p>y</p></td>
757−</tr>
758−<tr class="row-odd"><th class="stub"><p>google play movies</p></th>
759−<th class="stub"><p>!gpm</p></th>
760−<td><p>xpath</p></td>
761−<td><p>2.0</p></td>
762−<td><p>videos</p></td>
763−<td></td>
764−<td><p>y</p></td>
765−<td></td>
766−<td><p>y</p></td>
767−<td></td>
768−<td></td>
769−<td><p>1</p></td>
770−<td><p>y</p></td>
771−<td><p>y</p></td>
772−</tr>
773−<tr class="row-even"><th class="stub"><p>google play music</p></th>
774−<th class="stub"><p>!gps</p></th>
775−<td><p>xpath</p></td>
776−<td><p>2.0</p></td>
777−<td><p>music</p></td>
778−<td></td>
779−<td><p>y</p></td>
780−<td></td>
781−<td><p>y</p></td>
782−<td></td>
783−<td></td>
784−<td><p>1</p></td>
785−<td><p>y</p></td>
786−<td><p>y</p></td>
787−</tr>
788−<tr class="row-odd"><th class="stub"><p>geektimes</p></th>
789−<th class="stub"><p>!gt</p></th>
790−<td><p>xpath</p></td>
791−<td><p>4.0</p></td>
792−<td><p>it</p></td>
793−<td><p>y</p></td>
794−<td><p>y</p></td>
795−<td></td>
796−<td><p>y</p></td>
797−<td></td>
798−<td></td>
799−<td><p>1</p></td>
800−<td><p>y</p></td>
801−<td><p>y</p></td>
802−</tr>
803−<tr class="row-even"><th class="stub"><p>habrahabr</p></th>
804−<th class="stub"><p>!habr</p></th>
805−<td><p>xpath</p></td>
806−<td><p>4.0</p></td>
807−<td><p>it</p></td>
808−<td><p>y</p></td>
809−<td><p>y</p></td>
810−<td></td>
811−<td><p>y</p></td>
812−<td></td>
813−<td></td>
814−<td><p>1</p></td>
815−<td><p>y</p></td>
816−<td><p>y</p></td>
817−</tr>
818−<tr class="row-odd"><th class="stub"><p>hoogle</p></th>
819−<th class="stub"><p>!ho</p></th>
820−<td><p>json_engine</p></td>
821−<td><p>2.0</p></td>
822−<td><p>it</p></td>
823−<td><p>y</p></td>
824−<td><p>y</p></td>
825−<td></td>
826−<td></td>
827−<td></td>
828−<td></td>
829−<td><p>1</p></td>
830−<td></td>
831−<td><p>y</p></td>
832−</tr>
833−<tr class="row-even"><th class="stub"><p>ina</p></th>
834−<th class="stub"><p>!in</p></th>
835−<td><p>ina</p></td>
836−<td><p>6.0</p></td>
837−<td><p>videos</p></td>
838−<td><p>y</p></td>
839−<td><p>y</p></td>
840−<td></td>
841−<td><p>y</p></td>
842−<td></td>
843−<td></td>
844−<td><p>1</p></td>
845−<td><p>y</p></td>
846−<td><p>y</p></td>
847−</tr>
848−<tr class="row-odd"><th class="stub"><p>invidious</p></th>
849−<th class="stub"><p>!iv</p></th>
850−<td><p>invidious</p></td>
851−<td><p>5.0</p></td>
852−<td><p>videos, music</p></td>
853−<td><p>y</p></td>
854−<td><p>y</p></td>
855−<td></td>
856−<td></td>
857−<td><p>y</p></td>
858−<td></td>
859−<td><p>1</p></td>
860−<td></td>
861−<td><p>y</p></td>
862−</tr>
863−<tr class="row-even"><th class="stub"><p>kickass</p></th>
864−<th class="stub"><p>!kc</p></th>
865−<td><p>kickass</p></td>
866−<td><p>4.0</p></td>
867−<td><p>videos, music, files</p></td>
868−<td><p>y</p></td>
869−<td><p>y</p></td>
870−<td></td>
871−<td><p>y</p></td>
872−<td></td>
873−<td></td>
874−<td><p>1</p></td>
875−<td><p>y</p></td>
876−<td><p>y</p></td>
877−</tr>
878−<tr class="row-odd"><th class="stub"><p>library genesis</p></th>
879−<th class="stub"><p>!lg</p></th>
880−<td><p>xpath</p></td>
881−<td><p>7.0</p></td>
882−<td><p>general</p></td>
883−<td></td>
884−<td><p>y</p></td>
885−<td></td>
886−<td><p>y</p></td>
887−<td></td>
888−<td></td>
889−<td><p>1</p></td>
890−<td><p>y</p></td>
891−<td><p>y</p></td>
892−</tr>
893−<tr class="row-even"><th class="stub"><p>lobste.rs</p></th>
894−<th class="stub"><p>!lo</p></th>
895−<td><p>xpath</p></td>
896−<td><p>2.0</p></td>
897−<td><p>it</p></td>
898−<td></td>
899−<td><p>y</p></td>
900−<td></td>
901−<td></td>
902−<td></td>
903−<td></td>
904−<td><p>1</p></td>
905−<td></td>
906−<td><p>y</p></td>
907−</tr>
908−<tr class="row-odd"><th class="stub"><p>metager</p></th>
909−<th class="stub"><p>!mg</p></th>
910−<td><p>xpath</p></td>
911−<td><p>2.0</p></td>
912−<td><p>general</p></td>
913−<td></td>
914−<td><p>y</p></td>
915−<td></td>
916−<td><p>y</p></td>
917−<td></td>
918−<td></td>
919−<td><p>1</p></td>
920−<td><p>y</p></td>
921−<td><p>y</p></td>
922−</tr>
923−<tr class="row-even"><th class="stub"><p>microsoft academic</p></th>
924−<th class="stub"><p>!ma</p></th>
925−<td><p>microsoft_academic</p></td>
926−<td><p>2.0</p></td>
927−<td><p>science</p></td>
928−<td><p>y</p></td>
929−<td><p>y</p></td>
930−<td></td>
931−<td></td>
932−<td></td>
933−<td></td>
934−<td><p>1</p></td>
935−<td></td>
936−<td><p>y</p></td>
937−</tr>
938−<tr class="row-odd"><th class="stub"><p>mixcloud</p></th>
939−<th class="stub"><p>!mc</p></th>
940−<td><p>mixcloud</p></td>
941−<td><p>2.0</p></td>
942−<td><p>music</p></td>
943−<td><p>y</p></td>
944−<td><p>y</p></td>
945−<td></td>
946−<td></td>
947−<td></td>
948−<td></td>
949−<td><p>1</p></td>
950−<td></td>
951−<td><p>y</p></td>
952−</tr>
953−<tr class="row-even"><th class="stub"><p>npm</p></th>
954−<th class="stub"><p>!npm</p></th>
955−<td><p>json_engine</p></td>
956−<td><p>5.0</p></td>
957−<td><p>it</p></td>
958−<td><p>y</p></td>
959−<td><p>y</p></td>
960−<td></td>
961−<td><p>y</p></td>
962−<td></td>
963−<td></td>
964−<td><p>1</p></td>
965−<td><p>y</p></td>
966−<td><p>y</p></td>
967−</tr>
968−<tr class="row-odd"><th class="stub"><p>nyaa</p></th>
969−<th class="stub"><p>!nt</p></th>
970−<td><p>nyaa</p></td>
971−<td><p>2.0</p></td>
972−<td><p>files, images, videos, music</p></td>
973−<td><p>y</p></td>
974−<td><p>y</p></td>
975−<td></td>
976−<td><p>y</p></td>
977−<td></td>
978−<td></td>
979−<td><p>1</p></td>
980−<td><p>y</p></td>
981−<td><p>y</p></td>
982−</tr>
983−<tr class="row-even"><th class="stub"><p>acgsou</p></th>
984−<th class="stub"><p>!acg</p></th>
985−<td><p>acgsou</p></td>
986−<td><p>5.0</p></td>
987−<td><p>files, images, videos, music</p></td>
988−<td><p>y</p></td>
989−<td><p>y</p></td>
990−<td></td>
991−<td><p>y</p></td>
992−<td></td>
993−<td></td>
994−<td><p>1</p></td>
995−<td><p>y</p></td>
996−<td><p>y</p></td>
997−</tr>
998−<tr class="row-odd"><th class="stub"><p>openairedatasets</p></th>
999−<th class="stub"><p>!oad</p></th>
1000−<td><p>json_engine</p></td>
1001−<td><p>5.0</p></td>
1002−<td><p>science</p></td>
1003−<td><p>y</p></td>
1004−<td><p>y</p></td>
1005−<td></td>
1006−<td></td>
1007−<td></td>
1008−<td></td>
1009−<td><p>1</p></td>
1010−<td></td>
1011−<td><p>y</p></td>
1012−</tr>
1013−<tr class="row-even"><th class="stub"><p>openairepublications</p></th>
1014−<th class="stub"><p>!oap</p></th>
1015−<td><p>json_engine</p></td>
1016−<td><p>5.0</p></td>
1017−<td><p>science</p></td>
1018−<td><p>y</p></td>
1019−<td><p>y</p></td>
1020−<td></td>
1021−<td></td>
1022−<td></td>
1023−<td></td>
1024−<td><p>1</p></td>
1025−<td></td>
1026−<td><p>y</p></td>
1027−</tr>
1028−<tr class="row-odd"><th class="stub"><p>openstreetmap</p></th>
1029−<th class="stub"><p>!osm</p></th>
1030−<td><p>openstreetmap</p></td>
1031−<td><p>2.0</p></td>
1032−<td><p>map</p></td>
1033−<td></td>
1034−<td><p>y</p></td>
1035−<td></td>
1036−<td></td>
1037−<td></td>
1038−<td></td>
1039−<td><p>1</p></td>
1040−<td></td>
1041−<td><p>y</p></td>
1042−</tr>
1043−<tr class="row-even"><th class="stub"><p>openrepos</p></th>
1044−<th class="stub"><p>!or</p></th>
1045−<td><p>xpath</p></td>
1046−<td><p>4.0</p></td>
1047−<td><p>files</p></td>
1048−<td><p>y</p></td>
1049−<td><p>y</p></td>
1050−<td></td>
1051−<td><p>y</p></td>
1052−<td></td>
1053−<td></td>
1054−<td><p>1</p></td>
1055−<td><p>y</p></td>
1056−<td><p>y</p></td>
1057−</tr>
1058−<tr class="row-odd"><th class="stub"><p>pdbe</p></th>
1059−<th class="stub"><p>!pdb</p></th>
1060−<td><p>pdbe</p></td>
1061−<td><p>2.0</p></td>
1062−<td><p>science</p></td>
1063−<td></td>
1064−<td><p>y</p></td>
1065−<td></td>
1066−<td></td>
1067−<td></td>
1068−<td></td>
1069−<td><p>1</p></td>
1070−<td></td>
1071−<td><p>y</p></td>
1072−</tr>
1073−<tr class="row-even"><th class="stub"><p>photon</p></th>
1074−<th class="stub"><p>!ph</p></th>
1075−<td><p>photon</p></td>
1076−<td><p>2.0</p></td>
1077−<td><p>map</p></td>
1078−<td></td>
1079−<td><p>y</p></td>
1080−<td></td>
1081−<td></td>
1082−<td></td>
1083−<td></td>
1084−<td><p>1</p></td>
1085−<td></td>
1086−<td><p>y</p></td>
1087−</tr>
1088−<tr class="row-odd"><th class="stub"><p>piratebay</p></th>
1089−<th class="stub"><p>!tpb</p></th>
1090−<td><p>piratebay</p></td>
1091−<td><p>3.0</p></td>
1092−<td><p>videos, music, files</p></td>
1093−<td></td>
1094−<td><p>y</p></td>
1095−<td></td>
1096−<td></td>
1097−<td></td>
1098−<td></td>
1099−<td><p>1</p></td>
1100−<td></td>
1101−<td><p>y</p></td>
1102−</tr>
1103−<tr class="row-even"><th class="stub"><p>pubmed</p></th>
1104−<th class="stub"><p>!pub</p></th>
1105−<td><p>pubmed</p></td>
1106−<td><p>3.0</p></td>
1107−<td><p>science</p></td>
1108−<td></td>
1109−<td><p>y</p></td>
1110−<td></td>
1111−<td></td>
1112−<td></td>
1113−<td></td>
1114−<td><p>1</p></td>
1115−<td></td>
1116−<td><p>y</p></td>
1117−</tr>
1118−<tr class="row-odd"><th class="stub"><p>qwant</p></th>
1119−<th class="stub"><p>!qw</p></th>
1120−<td><p>qwant</p></td>
1121−<td><p>2.0</p></td>
1122−<td><p>general</p></td>
1123−<td><p>y</p></td>
1124−<td><p>y</p></td>
1125−<td></td>
1126−<td><p>y</p></td>
1127−<td></td>
1128−<td></td>
1129−<td><p>1</p></td>
1130−<td><p>y</p></td>
1131−<td><p>y</p></td>
1132−</tr>
1133−<tr class="row-even"><th class="stub"><p>qwant images</p></th>
1134−<th class="stub"><p>!qwi</p></th>
1135−<td><p>qwant</p></td>
1136−<td><p>2.0</p></td>
1137−<td><p>images</p></td>
1138−<td><p>y</p></td>
1139−<td><p>y</p></td>
1140−<td></td>
1141−<td></td>
1142−<td></td>
1143−<td></td>
1144−<td><p>1</p></td>
1145−<td></td>
1146−<td><p>y</p></td>
1147−</tr>
1148−<tr class="row-odd"><th class="stub"><p>qwant news</p></th>
1149−<th class="stub"><p>!qwn</p></th>
1150−<td><p>qwant</p></td>
1151−<td><p>2.0</p></td>
1152−<td><p>news</p></td>
1153−<td><p>y</p></td>
1154−<td><p>y</p></td>
1155−<td></td>
1156−<td></td>
1157−<td></td>
1158−<td></td>
1159−<td><p>1</p></td>
1160−<td></td>
1161−<td><p>y</p></td>
1162−</tr>
1163−<tr class="row-even"><th class="stub"><p>qwant social</p></th>
1164−<th class="stub"><p>!qws</p></th>
1165−<td><p>qwant</p></td>
1166−<td><p>2.0</p></td>
1167−<td><p>social media</p></td>
1168−<td><p>y</p></td>
1169−<td><p>y</p></td>
1170−<td></td>
1171−<td></td>
1172−<td></td>
1173−<td></td>
1174−<td><p>1</p></td>
1175−<td></td>
1176−<td><p>y</p></td>
1177−</tr>
1178−<tr class="row-odd"><th class="stub"><p>reddit</p></th>
1179−<th class="stub"><p>!re</p></th>
1180−<td><p>reddit</p></td>
1181−<td><p>10.0</p></td>
1182−<td><p>general, images, news, social media</p></td>
1183−<td></td>
1184−<td><p>y</p></td>
1185−<td></td>
1186−<td><p>y</p></td>
1187−<td></td>
1188−<td></td>
1189−<td><p>1</p></td>
1190−<td><p>y</p></td>
1191−<td><p>y</p></td>
1192−</tr>
1193−<tr class="row-even"><th class="stub"><p>soundcloud</p></th>
1194−<th class="stub"><p>!sc</p></th>
1195−<td><p>soundcloud</p></td>
1196−<td><p>2.0</p></td>
1197−<td><p>music</p></td>
1198−<td><p>y</p></td>
1199−<td><p>y</p></td>
1200−<td></td>
1201−<td></td>
1202−<td></td>
1203−<td></td>
1204−<td><p>1</p></td>
1205−<td></td>
1206−<td><p>y</p></td>
1207−</tr>
1208−<tr class="row-odd"><th class="stub"><p>stackoverflow</p></th>
1209−<th class="stub"><p>!st</p></th>
1210−<td><p>stackoverflow</p></td>
1211−<td><p>2.0</p></td>
1212−<td><p>it</p></td>
1213−<td><p>y</p></td>
1214−<td><p>y</p></td>
1215−<td></td>
1216−<td></td>
1217−<td></td>
1218−<td></td>
1219−<td><p>1</p></td>
1220−<td></td>
1221−<td><p>y</p></td>
1222−</tr>
1223−<tr class="row-even"><th class="stub"><p>searchcode doc</p></th>
1224−<th class="stub"><p>!scd</p></th>
1225−<td><p>searchcode_doc</p></td>
1226−<td><p>2.0</p></td>
1227−<td><p>it</p></td>
1228−<td><p>y</p></td>
1229−<td><p>y</p></td>
1230−<td></td>
1231−<td></td>
1232−<td></td>
1233−<td></td>
1234−<td><p>1</p></td>
1235−<td></td>
1236−<td><p>y</p></td>
1237−</tr>
1238−<tr class="row-odd"><th class="stub"><p>searchcode code</p></th>
1239−<th class="stub"><p>!scc</p></th>
1240−<td><p>searchcode_code</p></td>
1241−<td><p>2.0</p></td>
1242−<td><p>it</p></td>
1243−<td><p>y</p></td>
1244−<td><p>y</p></td>
1245−<td></td>
1246−<td><p>y</p></td>
1247−<td></td>
1248−<td></td>
1249−<td><p>1</p></td>
1250−<td><p>y</p></td>
1251−<td><p>y</p></td>
1252−</tr>
1253−<tr class="row-even"><th class="stub"><p>framalibre</p></th>
1254−<th class="stub"><p>!frl</p></th>
1255−<td><p>framalibre</p></td>
1256−<td><p>2.0</p></td>
1257−<td><p>it</p></td>
1258−<td><p>y</p></td>
1259−<td><p>y</p></td>
1260−<td></td>
1261−<td><p>y</p></td>
1262−<td></td>
1263−<td></td>
1264−<td><p>1</p></td>
1265−<td><p>y</p></td>
1266−<td><p>y</p></td>
1267−</tr>
1268−<tr class="row-odd"><th class="stub"><p>semantic scholar</p></th>
1269−<th class="stub"><p>!se</p></th>
1270−<td><p>xpath</p></td>
1271−<td><p>2.0</p></td>
1272−<td><p>science</p></td>
1273−<td><p>y</p></td>
1274−<td><p>y</p></td>
1275−<td></td>
1276−<td></td>
1277−<td></td>
1278−<td></td>
1279−<td><p>1</p></td>
1280−<td></td>
1281−<td><p>y</p></td>
1282−</tr>
1283−<tr class="row-even"><th class="stub"><p>startpage</p></th>
1284−<th class="stub"><p>!sp</p></th>
1285−<td><p>startpage</p></td>
1286−<td><p>6.0</p></td>
1287−<td><p>general</p></td>
1288−<td><p>y</p></td>
1289−<td><p>y</p></td>
1290−<td></td>
1291−<td><p>y</p></td>
1292−<td></td>
1293−<td></td>
1294−<td><p>1</p></td>
1295−<td><p>y</p></td>
1296−<td><p>y</p></td>
1297−</tr>
1298−<tr class="row-odd"><th class="stub"><p>tokyotoshokan</p></th>
1299−<th class="stub"><p>!tt</p></th>
1300−<td><p>tokyotoshokan</p></td>
1301−<td><p>6.0</p></td>
1302−<td><p>files, videos, music</p></td>
1303−<td><p>y</p></td>
1304−<td><p>y</p></td>
1305−<td></td>
1306−<td><p>y</p></td>
1307−<td></td>
1308−<td></td>
1309−<td><p>1</p></td>
1310−<td><p>y</p></td>
1311−<td><p>y</p></td>
1312−</tr>
1313−<tr class="row-even"><th class="stub"><p>torrentz</p></th>
1314−<th class="stub"><p>!tor</p></th>
1315−<td><p>torrentz</p></td>
1316−<td><p>3.0</p></td>
1317−<td><p>files, videos, music</p></td>
1318−<td><p>y</p></td>
1319−<td><p>y</p></td>
1320−<td></td>
1321−<td></td>
1322−<td></td>
1323−<td></td>
1324−<td><p>1</p></td>
1325−<td></td>
1326−<td><p>y</p></td>
1327−</tr>
1328−<tr class="row-odd"><th class="stub"><p>twitter</p></th>
1329−<th class="stub"><p>!tw</p></th>
1330−<td><p>twitter</p></td>
1331−<td><p>2.0</p></td>
1332−<td><p>social media</p></td>
1333−<td></td>
1334−<td><p>y</p></td>
1335−<td></td>
1336−<td></td>
1337−<td></td>
1338−<td></td>
1339−<td><p>1</p></td>
1340−<td></td>
1341−<td><p>y</p></td>
1342−</tr>
1343−<tr class="row-even"><th class="stub"><p>unsplash</p></th>
1344−<th class="stub"><p>!us</p></th>
1345−<td><p>unsplash</p></td>
1346−<td><p>2.0</p></td>
1347−<td><p>images</p></td>
1348−<td><p>y</p></td>
1349−<td><p>y</p></td>
1350−<td></td>
1351−<td><p>y</p></td>
1352−<td></td>
1353−<td></td>
1354−<td><p>1</p></td>
1355−<td><p>y</p></td>
1356−<td><p>y</p></td>
1357−</tr>
1358−<tr class="row-odd"><th class="stub"><p>yahoo</p></th>
1359−<th class="stub"><p>!yh</p></th>
1360−<td><p>yahoo</p></td>
1361−<td><p>2.0</p></td>
1362−<td><p>general</p></td>
1363−<td><p>y</p></td>
1364−<td><p>y</p></td>
1365−<td></td>
1366−<td><p>y</p></td>
1367−<td><p>y</p></td>
1368−<td></td>
1369−<td><p>1</p></td>
1370−<td><p>y</p></td>
1371−<td><p>y</p></td>
1372−</tr>
1373−<tr class="row-even"><th class="stub"><p>yandex</p></th>
1374−<th class="stub"><p>!yn</p></th>
1375−<td><p>yandex</p></td>
1376−<td><p>2.0</p></td>
1377−<td><p>general</p></td>
1378−<td><p>y</p></td>
1379−<td><p>y</p></td>
1380−<td></td>
1381−<td><p>y</p></td>
1382−<td></td>
1383−<td></td>
1384−<td><p>1</p></td>
1385−<td><p>y</p></td>
1386−<td><p>y</p></td>
1387−</tr>
1388−<tr class="row-odd"><th class="stub"><p>yahoo news</p></th>
1389−<th class="stub"><p>!yhn</p></th>
1390−<td><p>yahoo_news</p></td>
1391−<td><p>2.0</p></td>
1392−<td><p>news</p></td>
1393−<td><p>y</p></td>
1394−<td><p>y</p></td>
1395−<td></td>
1396−<td></td>
1397−<td></td>
1398−<td></td>
1399−<td><p>1</p></td>
1400−<td></td>
1401−<td><p>y</p></td>
1402−</tr>
1403−<tr class="row-even"><th class="stub"><p>youtube</p></th>
1404−<th class="stub"><p>!yt</p></th>
1405−<td><p>youtube_noapi</p></td>
1406−<td><p>2.0</p></td>
1407−<td><p>videos, music</p></td>
1408−<td><p>y</p></td>
1409−<td></td>
1410−<td></td>
1411−<td></td>
1412−<td><p>y</p></td>
1413−<td></td>
1414−<td><p>1</p></td>
1415−<td></td>
1416−<td><p>y</p></td>
1417−</tr>
1418−<tr class="row-odd"><th class="stub"><p>yggtorrent</p></th>
1419−<th class="stub"><p>!ygg</p></th>
1420−<td><p>yggtorrent</p></td>
1421−<td><p>4.0</p></td>
1422−<td><p>videos, music, files</p></td>
1423−<td><p>y</p></td>
1424−<td><p>y</p></td>
1425−<td></td>
1426−<td><p>y</p></td>
1427−<td></td>
1428−<td></td>
1429−<td><p>1</p></td>
1430−<td><p>y</p></td>
1431−<td><p>y</p></td>
1432−</tr>
1433−<tr class="row-even"><th class="stub"><p>dailymotion</p></th>
1434−<th class="stub"><p>!dm</p></th>
1435−<td><p>dailymotion</p></td>
1436−<td><p>2.0</p></td>
1437−<td><p>videos</p></td>
1438−<td><p>y</p></td>
1439−<td><p>y</p></td>
1440−<td></td>
1441−<td></td>
1442−<td></td>
1443−<td></td>
1444−<td><p>1</p></td>
1445−<td></td>
1446−<td><p>y</p></td>
1447−</tr>
1448−<tr class="row-odd"><th class="stub"><p>vimeo</p></th>
1449−<th class="stub"><p>!vm</p></th>
1450−<td><p>vimeo</p></td>
1451−<td><p>2.0</p></td>
1452−<td><p>videos</p></td>
1453−<td><p>y</p></td>
1454−<td><p>y</p></td>
1455−<td></td>
1456−<td></td>
1457−<td></td>
1458−<td></td>
1459−<td><p>1</p></td>
1460−<td></td>
1461−<td><p>y</p></td>
1462−</tr>
1463−<tr class="row-even"><th class="stub"><p>wikibooks</p></th>
1464−<th class="stub"><p>!wb</p></th>
1465−<td><p>mediawiki</p></td>
1466−<td><p>2.0</p></td>
1467−<td><p>general</p></td>
1468−<td><p>y</p></td>
1469−<td><p>y</p></td>
1470−<td></td>
1471−<td><p>y</p></td>
1472−<td></td>
1473−<td></td>
1474−<td><p>1</p></td>
1475−<td><p>y</p></td>
1476−<td><p>y</p></td>
1477−</tr>
1478−<tr class="row-odd"><th class="stub"><p>wikinews</p></th>
1479−<th class="stub"><p>!wn</p></th>
1480−<td><p>mediawiki</p></td>
1481−<td><p>2.0</p></td>
1482−<td><p>news</p></td>
1483−<td><p>y</p></td>
1484−<td><p>y</p></td>
1485−<td></td>
1486−<td><p>y</p></td>
1487−<td></td>
1488−<td></td>
1489−<td><p>1</p></td>
1490−<td><p>y</p></td>
1491−<td><p>y</p></td>
1492−</tr>
1493−<tr class="row-even"><th class="stub"><p>wikiquote</p></th>
1494−<th class="stub"><p>!wq</p></th>
1495−<td><p>mediawiki</p></td>
1496−<td><p>2.0</p></td>
1497−<td><p>general</p></td>
1498−<td><p>y</p></td>
1499−<td><p>y</p></td>
1500−<td></td>
1501−<td><p>y</p></td>
1502−<td></td>
1503−<td></td>
1504−<td><p>1</p></td>
1505−<td><p>y</p></td>
1506−<td><p>y</p></td>
1507−</tr>
1508−<tr class="row-odd"><th class="stub"><p>wikisource</p></th>
1509−<th class="stub"><p>!ws</p></th>
1510−<td><p>mediawiki</p></td>
1511−<td><p>2.0</p></td>
1512−<td><p>general</p></td>
1513−<td><p>y</p></td>
1514−<td><p>y</p></td>
1515−<td></td>
1516−<td><p>y</p></td>
1517−<td></td>
1518−<td></td>
1519−<td><p>1</p></td>
1520−<td><p>y</p></td>
1521−<td><p>y</p></td>
1522−</tr>
1523−<tr class="row-even"><th class="stub"><p>wiktionary</p></th>
1524−<th class="stub"><p>!wt</p></th>
1525−<td><p>mediawiki</p></td>
1526−<td><p>2.0</p></td>
1527−<td><p>general</p></td>
1528−<td><p>y</p></td>
1529−<td><p>y</p></td>
1530−<td></td>
1531−<td><p>y</p></td>
1532−<td></td>
1533−<td></td>
1534−<td><p>1</p></td>
1535−<td><p>y</p></td>
1536−<td><p>y</p></td>
1537−</tr>
1538−<tr class="row-odd"><th class="stub"><p>wikiversity</p></th>
1539−<th class="stub"><p>!wv</p></th>
1540−<td><p>mediawiki</p></td>
1541−<td><p>2.0</p></td>
1542−<td><p>general</p></td>
1543−<td><p>y</p></td>
1544−<td><p>y</p></td>
1545−<td></td>
1546−<td><p>y</p></td>
1547−<td></td>
1548−<td></td>
1549−<td><p>1</p></td>
1550−<td><p>y</p></td>
1551−<td><p>y</p></td>
1552−</tr>
1553−<tr class="row-even"><th class="stub"><p>wikivoyage</p></th>
1554−<th class="stub"><p>!wy</p></th>
1555−<td><p>mediawiki</p></td>
1556−<td><p>2.0</p></td>
1557−<td><p>general</p></td>
1558−<td><p>y</p></td>
1559−<td><p>y</p></td>
1560−<td></td>
1561−<td><p>y</p></td>
1562−<td></td>
1563−<td></td>
1564−<td><p>1</p></td>
1565−<td><p>y</p></td>
1566−<td><p>y</p></td>
1567−</tr>
1568−<tr class="row-odd"><th class="stub"><p>wolframalpha</p></th>
1569−<th class="stub"><p>!wa</p></th>
1570−<td><p>wolframalpha_noapi</p></td>
1571−<td><p>6.0</p></td>
1572−<td><p>science</p></td>
1573−<td></td>
1574−<td><p>y</p></td>
1575−<td></td>
1576−<td></td>
1577−<td></td>
1578−<td></td>
1579−<td><p>1</p></td>
1580−<td></td>
1581−<td><p>y</p></td>
1582−</tr>
1583−<tr class="row-even"><th class="stub"><p>dictzone</p></th>
1584−<th class="stub"><p>!dc</p></th>
1585−<td><p>dictzone</p></td>
1586−<td><p>2.0</p></td>
1587−<td><p>general</p></td>
1588−<td></td>
1589−<td><p>y</p></td>
1590−<td></td>
1591−<td></td>
1592−<td></td>
1593−<td></td>
1594−<td><p>100</p></td>
1595−<td></td>
1596−<td><p>y</p></td>
1597−</tr>
1598−<tr class="row-odd"><th class="stub"><p>mymemory translated</p></th>
1599−<th class="stub"><p>!tl</p></th>
1600−<td><p>translated</p></td>
1601−<td><p>5.0</p></td>
1602−<td><p>general</p></td>
1603−<td></td>
1604−<td><p>y</p></td>
1605−<td></td>
1606−<td><p>y</p></td>
1607−<td></td>
1608−<td></td>
1609−<td><p>100</p></td>
1610−<td><p>y</p></td>
1611−<td><p>y</p></td>
1612−</tr>
1613−<tr class="row-even"><th class="stub"><p>voat</p></th>
1614−<th class="stub"><p>!vo</p></th>
1615−<td><p>xpath</p></td>
1616−<td><p>10.0</p></td>
1617−<td><p>social media</p></td>
1618−<td></td>
1619−<td><p>y</p></td>
1620−<td></td>
1621−<td><p>y</p></td>
1622−<td></td>
1623−<td></td>
1624−<td><p>1</p></td>
1625−<td><p>y</p></td>
1626−<td><p>y</p></td>
1627−</tr>
1628−<tr class="row-odd"><th class="stub"><p>1337x</p></th>
1629−<th class="stub"><p>!1337x</p></th>
1630−<td><p>1337x</p></td>
1631−<td><p>2.0</p></td>
1632−<td><p>videos</p></td>
1633−<td><p>y</p></td>
1634−<td><p>y</p></td>
1635−<td></td>
1636−<td><p>y</p></td>
1637−<td></td>
1638−<td></td>
1639−<td><p>1</p></td>
1640−<td><p>y</p></td>
1641−<td><p>y</p></td>
1642−</tr>
1643−<tr class="row-even"><th class="stub"><p>duden</p></th>
1644−<th class="stub"><p>!du</p></th>
1645−<td><p>duden</p></td>
1646−<td><p>2.0</p></td>
1647−<td><p>general</p></td>
1648−<td><p>y</p></td>
1649−<td></td>
1650−<td></td>
1651−<td><p>y</p></td>
1652−<td></td>
1653−<td></td>
1654−<td><p>1</p></td>
1655−<td><p>y</p></td>
1656−<td><p>y</p></td>
1657−</tr>
1658−<tr class="row-odd"><th class="stub"><p>seznam</p></th>
1659−<th class="stub"><p>!szn</p></th>
1660−<td><p>xpath</p></td>
1661−<td><p>2.0</p></td>
1662−<td><p>general</p></td>
1663−<td><p>y</p></td>
1664−<td><p>y</p></td>
1665−<td></td>
1666−<td><p>y</p></td>
1667−<td></td>
1668−<td></td>
1669−<td><p>1</p></td>
1670−<td><p>y</p></td>
1671−<td><p>y</p></td>
1672−</tr>
1673−<tr class="row-even"><th class="stub"><p>mojeek</p></th>
1674−<th class="stub"><p>!mjk</p></th>
1675−<td><p>xpath</p></td>
1676−<td><p>2.0</p></td>
1677−<td><p>general</p></td>
1678−<td><p>y</p></td>
1679−<td><p>y</p></td>
1680−<td></td>
1681−<td><p>y</p></td>
1682−<td></td>
1683−<td></td>
1684−<td><p>1</p></td>
1685−<td><p>y</p></td>
1686−<td><p>y</p></td>
1687−</tr>
1688−<tr class="row-odd"><th class="stub"><p>seedpeer</p></th>
1689−<th class="stub"><p>!speu</p></th>
1690−<td><p>seedpeer</p></td>
1691−<td><p>2.0</p></td>
1692−<td><p>files, music, videos</p></td>
1693−<td></td>
1694−<td><p>y</p></td>
1695−<td></td>
1696−<td></td>
1697−<td></td>
1698−<td></td>
1699−<td><p>1</p></td>
1700−<td></td>
1701−<td><p>y</p></td>
1702−</tr>
1703−<tr class="row-even"><th class="stub"><p>naver</p></th>
1704−<th class="stub"><p>!nvr</p></th>
1705−<td><p>xpath</p></td>
1706−<td><p>2.0</p></td>
1707−<td><p>general</p></td>
1708−<td><p>y</p></td>
1709−<td><p>y</p></td>
1710−<td></td>
1711−<td><p>y</p></td>
1712−<td></td>
1713−<td></td>
1714−<td><p>1</p></td>
1715−<td><p>y</p></td>
1716−<td><p>y</p></td>
1717−</tr>
1718−<tr class="row-odd"><th class="stub"><p>rubygems</p></th>
1719−<th class="stub"><p>!rbg</p></th>
1720−<td><p>xpath</p></td>
1721−<td><p>2.0</p></td>
1722−<td><p>it</p></td>
1723−<td><p>y</p></td>
1724−<td><p>y</p></td>
1725−<td></td>
1726−<td><p>y</p></td>
1727−<td></td>
1728−<td></td>
1729−<td><p>1</p></td>
1730−<td><p>y</p></td>
1731−<td><p>y</p></td>
1732−</tr>
1733−<tr class="row-even"><th class="stub"><p>peertube</p></th>
1734−<th class="stub"><p>!ptb</p></th>
1735−<td><p>peertube</p></td>
1736−<td><p>2.0</p></td>
1737−<td><p>videos</p></td>
1738−<td><p>y</p></td>
1739−<td><p>y</p></td>
1740−<td></td>
1741−<td><p>y</p></td>
1742−<td></td>
1743−<td></td>
1744−<td><p>1</p></td>
1745−<td><p>y</p></td>
1746−<td><p>y</p></td>
1747−</tr>
1748149</tbody>
1749150</table>
1750151</div>
1751152
1752153
154+ <div class="clearer"></div>
1753155 </div>
1754156 </div>
1755157 </div>
@@ -1765,9 +167,9 @@
1765167
1766168 <h3>Project Links</h3>
1767169 <ul>
1768− <li><a href="https://github.com/asciimoo/searx">Source</a>
170+ <li><a href="https://github.com/searx/searx">Source</a>
1769171
1770− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
172+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
1771173
1772174 <li><a href="https://searx.space/">Public instances</a>
1773175
@@ -1801,7 +203,7 @@
1801203
1802204 <div class="footer" role="contentinfo">
1803205 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
1804− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
206+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
1805207 </div>
1806208 <script src="../_static/version_warning_offset.js"></script>
1807209
admin/filtron.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>How to protect an instance &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="architecture.html" title="Architecture"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">How to protect an instance</a></li>
3743 </ul>
3844 </div>
3945
@@ -76,7 +82,7 @@ an installation and the maintenance of, use our script <a class="reference inter
7682<div class="sidebar">
7783<p class="sidebar-title">Tooling box</p>
7884<ul class="simple">
79−<li><p><a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/etc/filtron/rules.json">/etc/filtron/rules.json</a></p></li>
85+<li><p><a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/etc/filtron/rules.json">/etc/filtron/rules.json</a></p></li>
8086</ul>
8187</div>
8288<p>An example configuration can be find below. This configuration limits the access
@@ -217,6 +223,7 @@ port 8888 where a searx is being run. For a complete setup see: <a class="refere
217223</div>
218224
219225
226+ <div class="clearer"></div>
220227 </div>
221228 </div>
222229 </div>
@@ -232,9 +239,9 @@ port 8888 where a searx is being run. For a complete setup see: <a class="refere
232239
233240 <h3>Project Links</h3>
234241 <ul>
235− <li><a href="https://github.com/asciimoo/searx">Source</a>
242+ <li><a href="https://github.com/searx/searx">Source</a>
236243
237− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
244+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
238245
239246 <li><a href="https://searx.space/">Public instances</a>
240247
@@ -268,7 +275,7 @@ port 8888 where a searx is being run. For a complete setup see: <a class="refere
268275
269276 <div class="footer" role="contentinfo">
270277 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
271− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
278+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
272279 </div>
273280 <script src="../_static/version_warning_offset.js"></script>
274281
admin/index.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Administrator documentation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -32,7 +37,8 @@
3237 <li class="right" >
3338 <a href="../user/own-instance.html" title="Why use a private instance?"
3439 accesskey="P">previous</a> |</li>
35− <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
41+ <li class="nav-item nav-item-this"><a href="">Administrator documentation</a></li>
3642 </ul>
3743 </div>
3844
@@ -115,6 +121,7 @@
115121</div>
116122
117123
124+ <div class="clearer"></div>
118125 </div>
119126 </div>
120127 </div>
@@ -130,9 +137,9 @@
130137
131138 <h3>Project Links</h3>
132139 <ul>
133− <li><a href="https://github.com/asciimoo/searx">Source</a>
140+ <li><a href="https://github.com/searx/searx">Source</a>
134141
135− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
142+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
136143
137144 <li><a href="https://searx.space/">Public instances</a>
138145
@@ -163,7 +170,7 @@
163170
164171 <div class="footer" role="contentinfo">
165172 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
166− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
173+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
167174 </div>
168175 <script src="../_static/version_warning_offset.js"></script>
169176
admin/installation-apache.html+8−5
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Install with apache &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="installation-nginx.html" title="Install with nginx"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Install with apache</a></li>
4345 </ul>
4446 </div>
4547
@@ -328,7 +330,7 @@ figure: <a class="reference internal" href="architecture.html#arch-public"><span
328330</pre></div>
329331</div>
330332<p>Note that reverse proxy advised to be used in case of single-user or
331−low-traffic instances. For a fully result proxification add <a class="reference internal" href="morty.html#searx-morty"><span class="std std-ref">morty’s</span></a> <strong>public URL</strong> to your <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>:</p>
333+low-traffic instances. For a fully result proxification add <a class="reference internal" href="morty.html#searx-morty"><span class="std std-ref">morty’s</span></a> <strong>public URL</strong> to your <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>:</p>
332334<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">result_proxy</span><span class="p p-Indicator">:</span>
333335 <span class="c1"># replace example.org with your server&#39;s public name</span>
334336 <span class="l l-Scalar l-Scalar-Plain">url</span> <span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">https://example.org/morty</span>
@@ -589,6 +591,7 @@ Debian:</p>
589591</div>
590592
591593
594+ <div class="clearer"></div>
592595 </div>
593596 </div>
594597 </div>
@@ -604,9 +607,9 @@ Debian:</p>
604607
605608 <h3>Project Links</h3>
606609 <ul>
607− <li><a href="https://github.com/asciimoo/searx">Source</a>
610+ <li><a href="https://github.com/searx/searx">Source</a>
608611
609− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
612+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
610613
611614 <li><a href="https://searx.space/">Public instances</a>
612615
@@ -640,7 +643,7 @@ Debian:</p>
640643
641644 <div class="footer" role="contentinfo">
642645 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
643− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
646+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
644647 </div>
645648 <script src="../_static/version_warning_offset.js"></script>
646649
admin/installation-docker.html+13−6
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Docker installation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="installation-apache.html" title="Install with apache"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Docker installation</a></li>
3743 </ul>
3844 </div>
3945
@@ -88,7 +94,7 @@ Environment variables:
8894 BASE_URL settings.yml : server.base_url
8995 MORTY_URL settings.yml : result_proxy.url
9096 MORTY_KEY settings.yml : result_proxy.key
91− BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol. Default value: &quot;&quot;
97+ BIND_ADDRESS uwsgi bind to the specified TCP socket using HTTP protocol. Default value: &quot;0.0.0.0:8080&quot;
9298
9399Volume:
94100
@@ -99,7 +105,7 @@ Volume:
99105<div class="section" id="build-the-image">
100106<h3><a class="toc-backref" href="#id3">Build the image</a><a class="headerlink" href="#build-the-image" title="Permalink to this headline">¶</a></h3>
101107<p>It’s also possible to build searx from the embedded Dockerfile.</p>
102−<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/asciimoo/searx.git
108+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>git clone https://github.com/searx/searx.git
103109<span class="nb">cd</span> searx
104110make docker
105111</pre></div>
@@ -113,6 +119,7 @@ make docker
113119</div>
114120
115121
122+ <div class="clearer"></div>
116123 </div>
117124 </div>
118125 </div>
@@ -128,9 +135,9 @@ make docker
128135
129136 <h3>Project Links</h3>
130137 <ul>
131− <li><a href="https://github.com/asciimoo/searx">Source</a>
138+ <li><a href="https://github.com/searx/searx">Source</a>
132139
133− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
140+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
134141
135142 <li><a href="https://searx.space/">Public instances</a>
136143
@@ -164,7 +171,7 @@ make docker
164171
165172 <div class="footer" role="contentinfo">
166173 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
167− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
174+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
168175 </div>
169176 <script src="../_static/version_warning_offset.js"></script>
170177
admin/installation-nginx.html+12−9
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Install with nginx &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="installation-uwsgi.html" title="uwsgi"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Install with nginx</a></li>
4345 </ul>
4446 </div>
4547
@@ -260,7 +262,7 @@ figure: <a class="reference internal" href="architecture.html#arch-public"><span
260262<span class="p">}</span>
261263
262264<span class="k">location</span> <span class="s">/searx/static</span> <span class="p">{</span>
263− <span class="kn">/usr/local/searx/searx-src/searx/static</span><span class="p">;</span>
265+ <span class="kn">alias</span> <span class="s">/usr/local/searx/searx-src/searx/static</span><span class="p">;</span>
264266<span class="p">}</span>
265267</pre></div>
266268</div>
@@ -282,7 +284,7 @@ figure: <a class="reference internal" href="architecture.html#arch-public"><span
282284</pre></div>
283285</div>
284286<p>Note that reverse proxy advised to be used in case of single-user or
285−low-traffic instances. For a fully result proxification add <a class="reference internal" href="morty.html#searx-morty"><span class="std std-ref">morty’s</span></a> <strong>public URL</strong> to your <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>:</p>
287+low-traffic instances. For a fully result proxification add <a class="reference internal" href="morty.html#searx-morty"><span class="std std-ref">morty’s</span></a> <strong>public URL</strong> to your <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>:</p>
286288<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">result_proxy</span><span class="p p-Indicator">:</span>
287289 <span class="c1"># replace example.org with your server&#39;s public name</span>
288290 <span class="l l-Scalar l-Scalar-Plain">url</span> <span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">https://example.org/morty</span>
@@ -318,9 +320,9 @@ sockets. For socket communication, you have to activate <code class="docutils l
318320<p>The example shows a nginx virtual <code class="docutils literal notranslate"><span class="pre">server</span></code> configuration, listening on
319321port 80 (IPv4 and IPv6 <a class="reference external" href="http://[::]:80">http://[::]:80</a>). The uWSGI app is configured at
320322location <code class="docutils literal notranslate"><span class="pre">/</span></code> by importing the <a class="reference external" href="https://uwsgi-docs.readthedocs.io/en/latest/Nginx.html#configuring-nginx">uwsgi_params</a> and passing requests to
321−the uWSGI socket (<code class="docutils literal notranslate"><span class="pre">uwsgi_pass</span></code>). The <code class="docutils literal notranslate"><span class="pre">server</span></code>’s root points to the
323+the uWSGI socket (<code class="docutils literal notranslate"><span class="pre">uwsgi_pass</span></code>). The <code class="docutils literal notranslate"><span class="pre">server</span></code>'s root points to the
322324<a class="reference internal" href="installation-searx.html#searx-src"><span class="std std-ref">searx-src clone</span></a> and wraps directly the
323−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/static/">git://searx/static/</a> content at <code class="docutils literal notranslate"><span class="pre">location</span> <span class="pre">/static</span></code>.</p>
325+<a class="reference external" href="https://github.com/searx/searx/blob/master/searx/static/">git://searx/static/</a> content at <code class="docutils literal notranslate"><span class="pre">location</span> <span class="pre">/static</span></code>.</p>
324326<div class="highlight-nginx notranslate"><div class="highlight"><pre><span></span><span class="k">server</span> <span class="p">{</span>
325327 <span class="c1"># replace hostname.local with your server&#39;s name</span>
326328 <span class="kn">server_name</span> <span class="s">hostname.local</span><span class="p">;</span>
@@ -384,7 +386,7 @@ value is shipped via the <a class="reference external" href="https://werkzeug.pa
384386</pre></div>
385387</div>
386388<p>For searx to work correctly the <code class="docutils literal notranslate"><span class="pre">base_url</span></code> must be set in the
387−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>.</p>
389+<a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>.</p>
388390<div class="highlight-yaml notranslate"><div class="highlight"><pre><span></span><span class="l l-Scalar l-Scalar-Plain">server</span><span class="p p-Indicator">:</span>
389391 <span class="c1"># replace example.org with your server&#39;s public name</span>
390392 <span class="l l-Scalar l-Scalar-Plain">base_url</span> <span class="p p-Indicator">:</span> <span class="l l-Scalar l-Scalar-Plain">https://example.org/searx/</span>
@@ -446,6 +448,7 @@ sudo -H touch /etc/uwsgi.d/searx.ini
446448</div>
447449
448450
451+ <div class="clearer"></div>
449452 </div>
450453 </div>
451454 </div>
@@ -461,9 +464,9 @@ sudo -H touch /etc/uwsgi.d/searx.ini
461464
462465 <h3>Project Links</h3>
463466 <ul>
464− <li><a href="https://github.com/asciimoo/searx">Source</a>
467+ <li><a href="https://github.com/searx/searx">Source</a>
465468
466− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
469+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
467470
468471 <li><a href="https://searx.space/">Public instances</a>
469472
@@ -497,7 +500,7 @@ sudo -H touch /etc/uwsgi.d/searx.ini
497500
498501 <div class="footer" role="contentinfo">
499502 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
500− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
503+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
501504 </div>
502505 <script src="../_static/version_warning_offset.js"></script>
503506
admin/installation-searx.html+216−5
@@ -4,15 +4,22 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Step by step installation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
1419 <script src="../_static/doctools.js"></script>
1520 <script src="../_static/language_data.js"></script>
21+ <script src="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.js"></script>
22+ <script src="../_static/sphinx_tabs/tabs.js"></script>
1623 <link rel="index" title="Index" href="../genindex.html" />
1724 <link rel="search" title="Search" href="../search.html" />
1825 <link rel="next" title="uwsgi" href="installation-uwsgi.html" />
@@ -33,7 +40,8 @@
3340 <a href="installation.html" title="Installation"
3441 accesskey="P">previous</a> |</li>
3542 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Step by step installation</a></li>
3745 </ul>
3846 </div>
3947
@@ -58,6 +66,52 @@
5866universe repository.</p>
5967<div class="section" id="install-packages">
6068<span id="id1"></span><h2><a class="toc-backref" href="#id2">Install packages</a><a class="headerlink" href="#install-packages" title="Permalink to this headline">¶</a></h2>
69+<div class="sphinx-tabs docutils container">
70+<div class="ui top attached tabular menu sphinx-menu docutils container">
71+<div class="active item sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu docutils container">
72+<div class="docutils container">
73+<p>Ubuntu / debian</p>
74+</div>
75+</div>
76+<div class="item sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
77+<div class="docutils container">
78+<p>Arch Linux</p>
79+</div>
80+</div>
81+<div class="item sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
82+<div class="docutils container">
83+<p>Fedora / RHEL</p>
84+</div>
85+</div>
86+</div>
87+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
88+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H apt-get install -y <span class="se">\</span>
89+ virtualenv python3-dev python3-babel python3-venv <span class="se">\</span>
90+ uwsgi uwsgi-plugin-python3 <span class="se">\</span>
91+ git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev <span class="se">\</span>
92+ shellcheck
93+</pre></div>
94+</div>
95+</div>
96+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
97+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H pacman -S --noconfirm <span class="se">\</span>
98+ python-virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
99+ uwsgi uwsgi-plugin-python <span class="se">\</span>
100+ git base-devel libxml2 <span class="se">\</span>
101+ shellcheck
102+</pre></div>
103+</div>
104+</div>
105+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
106+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H dnf install -y <span class="se">\</span>
107+ virtualenv python python-pip python-lxml python-babel <span class="se">\</span>
108+ uwsgi uwsgi-plugin-python3 <span class="se">\</span>
109+ git @development-tools libxml2 <span class="se">\</span>
110+ ShellCheck
111+</pre></div>
112+</div>
113+</div>
114+</div>
61115<div class="admonition hint">
62116<p class="admonition-title">Hint</p>
63117<p>This installs also the packages needed by <a class="reference internal" href="installation-uwsgi.html#searx-uwsgi"><span class="std std-ref">uwsgi</span></a></p>
@@ -65,14 +119,90 @@ universe repository.</p>
65119</div>
66120<div class="section" id="create-user">
67121<span id="create-searx-user"></span><h2><a class="toc-backref" href="#id3">Create user</a><a class="headerlink" href="#create-user" title="Permalink to this headline">¶</a></h2>
122+<div class="sphinx-tabs docutils container">
123+<div class="ui top attached tabular menu sphinx-menu docutils container">
124+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
125+<div class="docutils container">
126+<p>bash</p>
127+</div>
128+</div>
129+</div>
130+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
131+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H useradd --shell /bin/bash --system <span class="se">\</span>
132+ --home-dir /usr/local/searx <span class="se">\</span>
133+ --comment <span class="s1">&#39;Privacy-respecting metasearch engine&#39;</span> searx
134+
135+$ sudo -H mkdir /usr/local/searx
136+$ sudo -H chown -R searx:searx /usr/local/searx
137+</pre></div>
138+</div>
139+</div>
140+</div>
68141</div>
69142<div class="section" id="install-searx-dependencies">
70143<span id="searx-src"></span><h2><a class="toc-backref" href="#id4">install searx &amp; dependencies</a><a class="headerlink" href="#install-searx-dependencies" title="Permalink to this headline">¶</a></h2>
71144<p>Start a interactive shell from new created user and clone searx:</p>
145+<div class="sphinx-tabs docutils container">
146+<div class="ui top attached tabular menu sphinx-menu docutils container">
147+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
148+<div class="docutils container">
149+<p>bash</p>
150+</div>
151+</div>
152+</div>
153+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
154+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H -u searx -i
155+<span class="o">(</span>searx<span class="o">)</span>$ git clone https://github.com/searx/searx.git /usr/local/searx/searx-src
156+</pre></div>
157+</div>
158+</div>
159+</div>
72160<p>In the same shell create <em>virtualenv</em>:</p>
161+<div class="sphinx-tabs docutils container">
162+<div class="ui top attached tabular menu sphinx-menu docutils container">
163+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
164+<div class="docutils container">
165+<p>bash</p>
166+</div>
167+</div>
168+</div>
169+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
170+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="o">(</span>searx<span class="o">)</span>$ python3 -m venv /usr/local/searx/searx-pyenv
171+<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">echo</span> . /usr/local/searx/searx-pyenv/bin/activate &gt;&gt; /usr/local/searx/.profile
172+</pre></div>
173+</div>
174+</div>
175+</div>
73176<p>To install searx’s dependencies, exit the searx <em>bash</em> session you opened above
74177and restart a new. Before install, first check if your <em>virualenv</em> was sourced
75178from the login (<em>~/.profile</em>):</p>
179+<div class="sphinx-tabs docutils container">
180+<div class="ui top attached tabular menu sphinx-menu docutils container">
181+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
182+<div class="docutils container">
183+<p>bash</p>
184+</div>
185+</div>
186+</div>
187+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
188+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H -u searx -i
189+
190+<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">command</span> -v python <span class="o">&amp;&amp;</span> python --version
191+/usr/local/searx/searx-pyenv/bin/python
192+Python 3.8.1
193+
194+<span class="c1"># update pip&#39;s boilerplate ..</span>
195+pip install -U pip
196+pip install -U setuptools
197+pip install -U wheel
198+
199+<span class="c1"># jump to searx&#39;s working tree and install searx into virtualenv</span>
200+<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">cd</span> /usr/local/searx/searx-src
201+<span class="o">(</span>searx<span class="o">)</span>$ pip install -e .
202+</pre></div>
203+</div>
204+</div>
205+</div>
76206<div class="admonition tip">
77207<p class="admonition-title">Tip</p>
78208<p>Open a second terminal for the configuration tasks and left the <code class="docutils literal notranslate"><span class="pre">(searx)$</span></code>
@@ -81,15 +211,95 @@ terminal open for the tasks below.</p>
81211</div>
82212<div class="section" id="configuration">
83213<h2><a class="toc-backref" href="#id5">Configuration</a><a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2>
84−<p>Create a copy of the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a> configuration file in system’s
214+<p>Create a copy of the <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a> configuration file in system’s
85215<em>/etc</em> folder. Configure like shown below – replace <code class="docutils literal notranslate"><span class="pre">searx&#64;\$(uname</span> <span class="pre">-n)</span></code> with
86216a name of your choice – <em>and/or</em> edit <code class="docutils literal notranslate"><span class="pre">/etc/searx/settings.yml</span></code> if necessary.</p>
217+<div class="sphinx-tabs docutils container">
218+<div class="ui top attached tabular menu sphinx-menu docutils container">
219+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
220+<div class="docutils container">
221+<p>bash</p>
222+</div>
223+</div>
224+</div>
225+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
226+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ sudo -H cp /usr/local/searx/searx-src/searx/settings.yml /etc/searx/settings.yml
227+$ sudo -H sed -i -e s/ultrasecretkey/<span class="se">\e</span>c555bc3347588c1e38769f174d4ca60/g /etc/searx/settings.yml
228+$ sudo -H sed -i -e s/<span class="o">{</span>instance_name<span class="o">}</span>/searx@<span class="se">\a</span>lexandre-vm/g /etc/searx/settings.yml
229+</pre></div>
230+</div>
231+</div>
232+</div>
87233</div>
88234<div class="section" id="check">
89235<h2><a class="toc-backref" href="#id6">Check</a><a class="headerlink" href="#check" title="Permalink to this headline">¶</a></h2>
90236<p>To check your searx setup, optional enable debugging and start the <em>webapp</em>.
91237Searx looks at the exported environment <code class="docutils literal notranslate"><span class="pre">$SEARX_SETTINGS_PATH</span></code> for a
92238configuration file.</p>
239+<div class="sphinx-tabs docutils container">
240+<div class="ui top attached tabular menu sphinx-menu docutils container">
241+<div class="active item sphinx-data-tab-YmFzaA== docutils container">
242+<div class="docutils container">
243+<p>bash</p>
244+</div>
245+</div>
246+</div>
247+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-YmFzaA== active docutils container">
248+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="c1"># enable debug ..</span>
249+$ sudo -H sed -i -e s/debug : False/debug : True/g /etc/searx/settings.yml
250+
251+<span class="c1"># start webapp</span>
252+$ sudo -H -u searx -i
253+<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">cd</span> /usr/local/searx/searx-src
254+<span class="o">(</span>searx<span class="o">)</span>$ <span class="nb">export</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
255+<span class="o">(</span>searx<span class="o">)</span>$ python searx/webapp.py
256+
257+<span class="c1"># disable debug</span>
258+$ sudo -H sed -i -e s/debug : True/debug : False/g /etc/searx/settings.yml
259+</pre></div>
260+</div>
261+</div>
262+</div>
263+<p>Open WEB browser and visit <a class="reference external" href="http://">http://</a> . If you are inside a
264+container or in a script, test with curl:</p>
265+<div class="sphinx-tabs docutils container">
266+<div class="ui top attached tabular menu sphinx-menu docutils container">
267+<div class="active item sphinx-data-tab-V0VCIGJyb3dzZXI= docutils container">
268+<div class="docutils container">
269+<p>WEB browser</p>
270+</div>
271+</div>
272+<div class="item sphinx-data-tab-Y3VybA== docutils container">
273+<div class="docutils container">
274+<p>curl</p>
275+</div>
276+</div>
277+</div>
278+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-V0VCIGJyb3dzZXI= active docutils container">
279+<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ xgd-open http://
280+</pre></div>
281+</div>
282+</div>
283+<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-Y3VybA== docutils container">
284+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ curl --location --verbose --head --insecure
285+
286+* Trying 127.0.0.1:8888...
287+* TCP_NODELAY set
288+* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
289+&gt; HEAD / HTTP/1.1
290+&gt; Host: 127.0.0.1:8888
291+&gt; User-Agent: curl/7.68.0
292+&gt; Accept: */*
293+&gt;
294+* Mark bundle as not supporting multiuse
295+* HTTP 1.0, assume close after body
296+&lt; HTTP/1.0 200 OK
297+HTTP/1.0 200 OK
298+...
299+</pre></div>
300+</div>
301+</div>
302+</div>
93303<p>If everything works fine, hit <code class="docutils literal notranslate"><span class="pre">[CTRL-C]</span></code> to stop the <em>webapp</em> and disable the
94304debug option in <code class="docutils literal notranslate"><span class="pre">settings.yml</span></code>. You can now exit searx user bash (enter exit
95305command twice). At this point searx is not demonized; uwsgi allows this.</p>
@@ -97,6 +307,7 @@ command twice). At this point searx is not demonized; uwsgi allows this.</p>
97307</div>
98308
99309
310+ <div class="clearer"></div>
100311 </div>
101312 </div>
102313 </div>
@@ -112,9 +323,9 @@ command twice). At this point searx is not demonized; uwsgi allows this.</p>
112323
113324 <h3>Project Links</h3>
114325 <ul>
115− <li><a href="https://github.com/asciimoo/searx">Source</a>
326+ <li><a href="https://github.com/searx/searx">Source</a>
116327
117− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
328+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
118329
119330 <li><a href="https://searx.space/">Public instances</a>
120331
@@ -148,7 +359,7 @@ command twice). At this point searx is not demonized; uwsgi allows this.</p>
148359
149360 <div class="footer" role="contentinfo">
150361 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
151− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
362+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
152363 </div>
153364 <script src="../_static/version_warning_offset.js"></script>
154365
admin/installation-uwsgi.html+300−4
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>uwsgi &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="installation-searx.html" title="Step by step installation"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">uwsgi</a></li>
4345 </ul>
4446 </div>
4547
@@ -153,10 +155,44 @@ restart the uwsgi application.</p>
153155</div>
154156</div>
155157<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
158+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># init.d --&gt; /usr/share/doc/uwsgi/README.Debian.gz</span>
159+<span class="c1"># For uWSGI debian uses the LSB init process, this might be changed</span>
160+<span class="c1"># one day, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833067</span>
161+
162+create /etc/uwsgi/apps-available/searx.ini
163+enable: sudo -H ln -s /etc/uwsgi/apps-available/searx.ini /etc/uwsgi/apps-enabled/
164+start: sudo -H service uwsgi start searx
165+restart: sudo -H service uwsgi restart searx
166+stop: sudo -H service uwsgi stop searx
167+disable: sudo -H rm /etc/uwsgi/apps-enabled/searx.ini
168+</pre></div>
169+</div>
156170</div>
157171<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
172+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi@.service</span>
173+<span class="c1"># For uWSGI archlinux uses systemd template units, see</span>
174+<span class="c1"># - http://0pointer.de/blog/projects/instances.html</span>
175+<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Systemd.html#one-service-per-app-in-systemd</span>
176+
177+create: /etc/uwsgi/searx.ini
178+enable: sudo -H systemctl <span class="nb">enable</span> uwsgi@searx
179+start: sudo -H systemctl start uwsgi@searx
180+restart: sudo -H systemctl restart uwsgi@searx
181+stop: sudo -H systemctl stop uwsgi@searx
182+disable: sudo -H systemctl disable uwsgi@searx
183+</pre></div>
184+</div>
158185</div>
159186<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
187+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># systemd --&gt; /usr/lib/systemd/system/uwsgi.service</span>
188+<span class="c1"># The unit file starts uWSGI in emperor mode (/etc/uwsgi.ini), see</span>
189+<span class="c1"># - https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html</span>
190+
191+create: /etc/uwsgi.d/searx.ini
192+restart: sudo -H touch /etc/uwsgi.d/searx.ini
193+disable: sudo -H rm /etc/uwsgi.d/searx.ini
194+</pre></div>
195+</div>
160196</div>
161197</div>
162198<div class="sphinx-tabs docutils container">
@@ -178,16 +214,276 @@ restart the uwsgi application.</p>
178214</div>
179215</div>
180216<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-VWJ1bnR1IC8gZGViaWFu active docutils container">
217+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
218+
219+<span class="c1"># uWSGI core</span>
220+<span class="c1"># ----------</span>
221+<span class="c1">#</span>
222+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
223+
224+<span class="c1"># Who will run the code</span>
225+<span class="nv">uid</span> <span class="o">=</span> searx
226+<span class="nv">gid</span> <span class="o">=</span> searx
227+
228+<span class="c1"># set (python) default encoding UTF-8</span>
229+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
230+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
231+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
232+
233+<span class="c1"># chdir to specified directory before apps loading</span>
234+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
235+
236+<span class="c1"># searx configuration (settings.yml)</span>
237+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
238+
239+<span class="c1"># disable logging for privacy</span>
240+disable-logging <span class="o">=</span> <span class="nb">true</span>
241+
242+<span class="c1"># The right granted on the created socket</span>
243+chmod-socket <span class="o">=</span> 666
244+
245+<span class="c1"># Plugin to use and interpretor config</span>
246+single-interpreter <span class="o">=</span> <span class="nb">true</span>
247+
248+<span class="c1"># enable master process</span>
249+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
250+
251+<span class="c1"># load apps in each worker instead of the master</span>
252+lazy-apps <span class="o">=</span> <span class="nb">true</span>
253+
254+<span class="c1"># load uWSGI plugins</span>
255+<span class="nv">plugin</span> <span class="o">=</span> python3,http
256+
257+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
258+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
259+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
260+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
261+<span class="c1"># default behaviour is for performance reasons.</span>
262+enable-threads <span class="o">=</span> <span class="nb">true</span>
263+
264+
265+<span class="c1"># plugin: python</span>
266+<span class="c1"># --------------</span>
267+<span class="c1">#</span>
268+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
269+
270+<span class="c1"># load a WSGI module</span>
271+<span class="nv">module</span> <span class="o">=</span> searx.webapp
272+
273+<span class="c1"># set PYTHONHOME/virtualenv</span>
274+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
275+
276+<span class="c1"># add directory (or glob) to pythonpath</span>
277+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
278+
279+
280+<span class="c1"># speak to upstream</span>
281+<span class="c1"># -----------------</span>
282+<span class="c1">#</span>
283+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
284+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
285+
286+<span class="c1"># using IP:</span>
287+<span class="c1">#</span>
288+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
289+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
290+
291+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
292+
293+<span class="c1"># using unix-sockets:</span>
294+<span class="c1">#</span>
295+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
296+<span class="c1">#</span>
297+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
298+<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
299+<span class="c1">#</span>
300+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
301+</pre></div>
302+</div>
181303</div>
182304<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-QXJjaCBMaW51eA== docutils container">
305+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
306+
307+<span class="c1"># uWSGI core</span>
308+<span class="c1"># ----------</span>
309+<span class="c1">#</span>
310+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
311+
312+<span class="c1"># Who will run the code</span>
313+<span class="nv">uid</span> <span class="o">=</span> searx
314+<span class="nv">gid</span> <span class="o">=</span> searx
315+
316+<span class="c1"># set (python) default encoding UTF-8</span>
317+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
318+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
319+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
320+
321+<span class="c1"># chdir to specified directory before apps loading</span>
322+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
323+
324+<span class="c1"># searx configuration (settings.yml)</span>
325+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
326+
327+<span class="c1"># disable logging for privacy</span>
328+<span class="nv">logger</span> <span class="o">=</span> systemd
329+disable-logging <span class="o">=</span> <span class="nb">true</span>
330+
331+<span class="c1"># The right granted on the created socket</span>
332+chmod-socket <span class="o">=</span> 666
333+
334+<span class="c1"># Plugin to use and interpretor config</span>
335+single-interpreter <span class="o">=</span> <span class="nb">true</span>
336+
337+<span class="c1"># enable master process</span>
338+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
339+
340+<span class="c1"># load apps in each worker instead of the master</span>
341+lazy-apps <span class="o">=</span> <span class="nb">true</span>
342+
343+<span class="c1"># load uWSGI plugins</span>
344+<span class="nv">plugin</span> <span class="o">=</span> python
345+
346+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
347+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
348+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
349+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
350+<span class="c1"># default behaviour is for performance reasons.</span>
351+enable-threads <span class="o">=</span> <span class="nb">true</span>
352+
353+
354+<span class="c1"># plugin: python</span>
355+<span class="c1"># --------------</span>
356+<span class="c1">#</span>
357+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
358+
359+<span class="c1"># load a WSGI module</span>
360+<span class="nv">module</span> <span class="o">=</span> searx.webapp
361+
362+<span class="c1"># set PYTHONHOME/virtualenv</span>
363+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
364+
365+<span class="c1"># add directory (or glob) to pythonpath</span>
366+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
367+
368+
369+<span class="c1"># speak to upstream</span>
370+<span class="c1"># -----------------</span>
371+<span class="c1">#</span>
372+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
373+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
374+
375+<span class="c1"># using IP:</span>
376+<span class="c1">#</span>
377+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
378+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
379+
380+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
381+
382+<span class="c1"># using unix-sockets:</span>
383+<span class="c1">#</span>
384+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
385+<span class="c1">#</span>
386+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
387+<span class="c1"># chown -R searx:searx /run/uwsgi/app/searx</span>
388+<span class="c1">#</span>
389+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
390+</pre></div>
391+</div>
183392</div>
184393<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-RmVkb3JhIC8gUkhFTA== docutils container">
394+<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="o">[</span>uwsgi<span class="o">]</span>
395+
396+<span class="c1"># uWSGI core</span>
397+<span class="c1"># ----------</span>
398+<span class="c1">#</span>
399+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core</span>
400+
401+<span class="c1"># Who will run the code</span>
402+<span class="nv">uid</span> <span class="o">=</span> searx
403+<span class="nv">gid</span> <span class="o">=</span> searx
404+
405+<span class="c1"># set (python) default encoding UTF-8</span>
406+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANG</span><span class="o">=</span>C.UTF-8
407+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LANGUAGE</span><span class="o">=</span>C.UTF-8
408+<span class="nv">env</span> <span class="o">=</span> <span class="nv">LC_ALL</span><span class="o">=</span>C.UTF-8
409+
410+<span class="c1"># chdir to specified directory before apps loading</span>
411+<span class="nv">chdir</span> <span class="o">=</span> /usr/local/searx/searx-src/searx
412+
413+<span class="c1"># searx configuration (settings.yml)</span>
414+<span class="nv">env</span> <span class="o">=</span> <span class="nv">SEARX_SETTINGS_PATH</span><span class="o">=</span>/etc/searx/settings.yml
415+
416+<span class="c1"># disable logging for privacy</span>
417+disable-logging <span class="o">=</span> <span class="nb">true</span>
418+
419+<span class="c1"># The right granted on the created socket</span>
420+chmod-socket <span class="o">=</span> 666
421+
422+<span class="c1"># Plugin to use and interpretor config</span>
423+single-interpreter <span class="o">=</span> <span class="nb">true</span>
424+
425+<span class="c1"># enable master process</span>
426+<span class="nv">master</span> <span class="o">=</span> <span class="nb">true</span>
427+
428+<span class="c1"># load apps in each worker instead of the master</span>
429+lazy-apps <span class="o">=</span> <span class="nb">true</span>
430+
431+<span class="c1"># load uWSGI plugins</span>
432+<span class="nv">plugin</span> <span class="o">=</span> python3,http
433+
434+<span class="c1"># By default the Python plugin does not initialize the GIL. This means your</span>
435+<span class="c1"># app-generated threads will not run. If you need threads, remember to enable</span>
436+<span class="c1"># them with enable-threads. Running uWSGI in multithreading mode (with the</span>
437+<span class="c1"># threads options) will automatically enable threading support. This *strange*</span>
438+<span class="c1"># default behaviour is for performance reasons.</span>
439+enable-threads <span class="o">=</span> <span class="nb">true</span>
440+
441+
442+<span class="c1"># plugin: python</span>
443+<span class="c1"># --------------</span>
444+<span class="c1">#</span>
445+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python</span>
446+
447+<span class="c1"># load a WSGI module</span>
448+<span class="nv">module</span> <span class="o">=</span> searx.webapp
449+
450+<span class="c1"># set PYTHONHOME/virtualenv</span>
451+<span class="nv">virtualenv</span> <span class="o">=</span> /usr/local/searx/searx-pyenv
452+
453+<span class="c1"># add directory (or glob) to pythonpath</span>
454+<span class="nv">pythonpath</span> <span class="o">=</span> /usr/local/searx/searx-src
455+
456+
457+<span class="c1"># speak to upstream</span>
458+<span class="c1"># -----------------</span>
459+<span class="c1">#</span>
460+<span class="c1"># Activate the &#39;http&#39; configuration for filtron or activate the &#39;socket&#39;</span>
461+<span class="c1"># configuration if you setup your HTTP server to use uWSGI protocol via sockets.</span>
462+
463+<span class="c1"># using IP:</span>
464+<span class="c1">#</span>
465+<span class="c1"># https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-http</span>
466+<span class="c1"># Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html</span>
467+
468+<span class="nv">http</span> <span class="o">=</span> 127.0.0.1:8888
469+
470+<span class="c1"># using unix-sockets:</span>
471+<span class="c1">#</span>
472+<span class="c1"># On some distributions you need to create the app folder for the sockets::</span>
473+<span class="c1">#</span>
474+<span class="c1"># mkdir -p /run/uwsgi/app/searx</span>
475+<span class="c1"># chmod -R searx:searx /run/uwsgi/app/searx</span>
476+<span class="c1">#</span>
477+<span class="c1"># socket = /run/uwsgi/app/searx/socket</span>
478+</pre></div>
479+</div>
185480</div>
186481</div>
187482</div>
188483</div>
189484
190485
486+ <div class="clearer"></div>
191487 </div>
192488 </div>
193489 </div>
@@ -203,9 +499,9 @@ restart the uwsgi application.</p>
203499
204500 <h3>Project Links</h3>
205501 <ul>
206− <li><a href="https://github.com/asciimoo/searx">Source</a>
502+ <li><a href="https://github.com/searx/searx">Source</a>
207503
208− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
504+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
209505
210506 <li><a href="https://searx.space/">Public instances</a>
211507
@@ -239,7 +535,7 @@ restart the uwsgi application.</p>
239535
240536 <div class="footer" role="contentinfo">
241537 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
242− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
538+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
243539 </div>
244540 <script src="../_static/version_warning_offset.js"></script>
245541
admin/installation.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Installation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="index.html" title="Administrator documentation"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Installation</a></li>
3743 </ul>
3844 </div>
3945
@@ -67,7 +73,7 @@ box</span></a> as described below.</p>
6773need to get a clone. The clone is only needed for the installation procedure
6874and some maintenance tasks (alternatively you can create your own fork).</p>
6975<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> ~/Downloads
70−$ git clone https://github.com/asciimoo/searx searx
76+$ git clone https://github.com/searx/searx searx
7177$ <span class="nb">cd</span> searx
7278</pre></div>
7379</div>
@@ -93,6 +99,7 @@ $ <span class="nb">cd</span> searx
9399</div>
94100
95101
102+ <div class="clearer"></div>
96103 </div>
97104 </div>
98105 </div>
@@ -108,9 +115,9 @@ $ <span class="nb">cd</span> searx
108115
109116 <h3>Project Links</h3>
110117 <ul>
111− <li><a href="https://github.com/asciimoo/searx">Source</a>
118+ <li><a href="https://github.com/searx/searx">Source</a>
112119
113− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
120+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
114121
115122 <li><a href="https://searx.space/">Public instances</a>
116123
@@ -144,7 +151,7 @@ $ <span class="nb">cd</span> searx
144151
145152 <div class="footer" role="contentinfo">
146153 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
147− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
154+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
148155 </div>
149156 <script src="../_static/version_warning_offset.js"></script>
150157
admin/morty.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>How to setup result proxy &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="filtron.html" title="How to protect an instance"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">How to setup result proxy</a></li>
3743 </ul>
3844 </div>
3945
@@ -69,6 +75,7 @@ possible to proxify all the result URLs with an external service, <a class="refe
6975</div>
7076
7177
78+ <div class="clearer"></div>
7279 </div>
7380 </div>
7481 </div>
@@ -84,9 +91,9 @@ possible to proxify all the result URLs with an external service, <a class="refe
8491
8592 <h3>Project Links</h3>
8693 <ul>
87− <li><a href="https://github.com/asciimoo/searx">Source</a>
94+ <li><a href="https://github.com/searx/searx">Source</a>
8895
89− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
96+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
9097
9198 <li><a href="https://searx.space/">Public instances</a>
9299
@@ -120,7 +127,7 @@ possible to proxify all the result URLs with an external service, <a class="refe
120127
121128 <div class="footer" role="contentinfo">
122129 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
123− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
130+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
124131 </div>
125132 <script src="../_static/version_warning_offset.js"></script>
126133
admin/plugins.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Plugins builtin &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="engines.html" title="Engines"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Plugins builtin</a></li>
3743 </ul>
3844 </div>
3945
@@ -119,6 +125,7 @@
119125</div>
120126
121127
128+ <div class="clearer"></div>
122129 </div>
123130 </div>
124131 </div>
@@ -134,9 +141,9 @@
134141
135142 <h3>Project Links</h3>
136143 <ul>
137− <li><a href="https://github.com/asciimoo/searx">Source</a>
144+ <li><a href="https://github.com/searx/searx">Source</a>
138145
139− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
146+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
140147
141148 <li><a href="https://searx.space/">Public instances</a>
142149
@@ -170,7 +177,7 @@
170177
171178 <div class="footer" role="contentinfo">
172179 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
173− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
180+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
174181 </div>
175182 <script src="../_static/version_warning_offset.js"></script>
176183
admin/settings.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>settings.yml &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="update-searx.html" title="How to update"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href=""><code class="docutils literal notranslate"><span class="pre">settings.yml</span></code></a></li>
3743 </ul>
3844 </div>
3945
@@ -44,7 +50,7 @@
4450
4551 <div class="section" id="settings-yml">
4652<span id="id1"></span><h1><code class="docutils literal notranslate"><span class="pre">settings.yml</span></code><a class="headerlink" href="#settings-yml" title="Permalink to this headline">¶</a></h1>
47−<p>This page describe the options possibilities of the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>
53+<p>This page describe the options possibilities of the <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>
4854file.</p>
4955<div class="sidebar">
5056<p class="sidebar-title">Further reading ..</p>
@@ -208,6 +214,7 @@ engines, and so won’t be described here.</p>
208214</div>
209215
210216
217+ <div class="clearer"></div>
211218 </div>
212219 </div>
213220 </div>
@@ -223,9 +230,9 @@ engines, and so won’t be described here.</p>
223230
224231 <h3>Project Links</h3>
225232 <ul>
226− <li><a href="https://github.com/asciimoo/searx">Source</a>
233+ <li><a href="https://github.com/searx/searx">Source</a>
227234
228− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
235+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
229236
230237 <li><a href="https://searx.space/">Public instances</a>
231238
@@ -259,7 +266,7 @@ engines, and so won’t be described here.</p>
259266
260267 <div class="footer" role="contentinfo">
261268 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
262− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
269+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
263270 </div>
264271 <script src="../_static/version_warning_offset.js"></script>
265272
admin/update-searx.html+7−4
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>How to update &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="installation-docker.html" title="Docker installation"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Administrator documentation</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">How to update</a></li>
4345 </ul>
4446 </div>
4547
@@ -75,6 +77,7 @@
7577</div>
7678
7779
80+ <div class="clearer"></div>
7881 </div>
7982 </div>
8083 </div>
@@ -90,9 +93,9 @@
9093
9194 <h3>Project Links</h3>
9295 <ul>
93− <li><a href="https://github.com/asciimoo/searx">Source</a>
96+ <li><a href="https://github.com/searx/searx">Source</a>
9497
95− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
98+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
9699
97100 <li><a href="https://searx.space/">Public instances</a>
98101
@@ -126,7 +129,7 @@
126129
127130 <div class="footer" role="contentinfo">
128131 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
129− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
132+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
130133 </div>
131134 <script src="../_static/version_warning_offset.js"></script>
132135
blog/admin.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Searx admin interface &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="python3.html" title="Introducing Python 3 support"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Searx admin interface</a></li>
3743 </ul>
3844 </div>
3945
@@ -80,6 +86,7 @@ existing instances.</p>
8086</div>
8187
8288
89+ <div class="clearer"></div>
8390 </div>
8491 </div>
8592 </div>
@@ -95,9 +102,9 @@ existing instances.</p>
95102
96103 <h3>Project Links</h3>
97104 <ul>
98− <li><a href="https://github.com/asciimoo/searx">Source</a>
105+ <li><a href="https://github.com/searx/searx">Source</a>
99106
100− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
107+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
101108
102109 <li><a href="https://searx.space/">Public instances</a>
103110
@@ -131,7 +138,7 @@ existing instances.</p>
131138
132139 <div class="footer" role="contentinfo">
133140 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
134− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
141+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
135142 </div>
136143 <script src="../_static/version_warning_offset.js"></script>
137144
blog/index.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Blog &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -32,7 +37,8 @@
3237 <li class="right" >
3338 <a href="../utils/lxc.sh.html" title="utils/lxc.sh"
3439 accesskey="P">previous</a> |</li>
35− <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
41+ <li class="nav-item nav-item-this"><a href="">Blog</a></li>
3642 </ul>
3743 </div>
3844
@@ -83,6 +89,7 @@
8389</div>
8490
8591
92+ <div class="clearer"></div>
8693 </div>
8794 </div>
8895 </div>
@@ -98,9 +105,9 @@
98105
99106 <h3>Project Links</h3>
100107 <ul>
101− <li><a href="https://github.com/asciimoo/searx">Source</a>
108+ <li><a href="https://github.com/searx/searx">Source</a>
102109
103− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
110+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
104111
105112 <li><a href="https://searx.space/">Public instances</a>
106113
@@ -131,7 +138,7 @@
131138
132139 <div class="footer" role="contentinfo">
133140 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
134− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
141+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
135142 </div>
136143 <script src="../_static/version_warning_offset.js"></script>
137144
blog/intro-offline.html+14−7
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Preparation for offline engines &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="admin.html" title="Searx admin interface"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Preparation for offline engines</a></li>
3743 </ul>
3844 </div>
3945
@@ -50,7 +56,7 @@
5056introduced. An offline engine is an engine which does not need Internet
5157connection to perform a search and does not use HTTP to communicate.</p>
5258<p>Offline engines can be configured as online engines, by adding those to the
53−<cite>engines</cite> list of <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">settings.yml</a>. Thus, searx
59+<cite>engines</cite> list of <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">settings.yml</a>. Thus, searx
5460finds the engine file and imports it.</p>
5561<p>Example skeleton for the new engines:</p>
5662<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">subprocess</span> <span class="kn">import</span> <span class="n">PIPE</span><span class="p">,</span> <span class="n">Popen</span>
@@ -82,7 +88,7 @@ finds the engine file and imports it.</p>
8288<div class="section" id="development-progress">
8389<h2>Development progress<a class="headerlink" href="#development-progress" title="Permalink to this headline">¶</a></h2>
8490<p>First, a proposal has been created as a Github issue. Then it was moved to the
85−wiki as a design document. You can read it here: <a class="reference external" href="https://github.com/asciimoo/searx/wiki/Offline-engines"> Offline-engines</a>.</p>
91+wiki as a design document. You can read it here: <a class="reference external" href="https://github.com/searx/searx/wiki/Offline-engines"> Offline-engines</a>.</p>
8692<p>In this development step, searx core was prepared to accept and perform offline
8793searches. Offline search requests are scheduled together with regular offline
8894requests.</p>
@@ -90,7 +96,7 @@ requests.</p>
9096current result templates were insufficient to present such results. Thus, a new
9197template is introduced which is caplable of presenting arbitrary key value pairs
9298as a table. You can check out the pull request for more details see
93−<a class="reference external" href="https://github.com/asciimoo/searx/pull/1700">PR 1700</a>.</p>
99+<a class="reference external" href="https://github.com/searx/searx/pull/1700">PR 1700</a>.</p>
94100</div>
95101<div class="section" id="next-steps">
96102<h2>Next steps<a class="headerlink" href="#next-steps" title="Permalink to this headline">¶</a></h2>
@@ -107,6 +113,7 @@ as a table. You can check out the pull request for more details see
107113</div>
108114
109115
116+ <div class="clearer"></div>
110117 </div>
111118 </div>
112119 </div>
@@ -122,9 +129,9 @@ as a table. You can check out the pull request for more details see
122129
123130 <h3>Project Links</h3>
124131 <ul>
125− <li><a href="https://github.com/asciimoo/searx">Source</a>
132+ <li><a href="https://github.com/searx/searx">Source</a>
126133
127− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
134+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
128135
129136 <li><a href="https://searx.space/">Public instances</a>
130137
@@ -158,7 +165,7 @@ as a table. You can check out the pull request for more details see
158165
159166 <div class="footer" role="contentinfo">
160167 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
161− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
168+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
162169 </div>
163170 <script src="../_static/version_warning_offset.js"></script>
164171
blog/lxcdev-202006.html+12−9
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Developing in Linux containers [202006] &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="index.html" title="Blog"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href="">Developing in Linux containers [202006]</a></li>
4345 </ul>
4446 </div>
4547
@@ -66,7 +68,7 @@ container</em>.</p>
6668<li><p><a class="reference internal" href="#abstract" id="id5">Abstract</a></p></li>
6769</ul>
6870</div>
69−<p>In PR <a class="reference external" href="https://github.com/asciimoo/searx/pull/1803">#1803</a> we added a lot of scripts to Searx’s boilerplate. In this blog
71+<p>In PR <a class="reference external" href="https://github.com/searx/searx/pull/1803">#1803</a> we added a lot of scripts to Searx’s boilerplate. In this blog
7072post I will show you, how you can make use of them in <em>distributed and
7173heterogeneous development cycles</em> (TL;DR; jump to the <a class="reference internal" href="#blog-lxcdev-202006-abstract"><span class="std std-ref">Abstract</span></a>).</p>
7274<div class="section" id="motivation">
@@ -86,7 +88,7 @@ never be set on a <em>production</em> system.</p>
8688<p><em>Linux Containers</em> (<a class="reference external" href="https://linuxcontainers.org/lxc/introduction/">LXC</a>) are isolate environments and not to mix up on
8789developer’s all the prerequisites of all the projects he contribute to, is
8890always a good choice.</p>
89−<p>The scripts from PR <a class="reference external" href="https://github.com/asciimoo/searx/pull/1803">#1803</a> can divide in those to install and maintain
91+<p>The scripts from PR <a class="reference external" href="https://github.com/searx/searx/pull/1803">#1803</a> can divide in those to install and maintain
9092software:</p>
9193<ul class="simple">
9294<li><p><a class="reference internal" href="../utils/searx.sh.html#searx-sh"><span class="std std-ref">utils/searx.sh</span></a></p></li>
@@ -128,14 +130,14 @@ fork:</p>
128130</div>
129131<div class="ui bottom attached sphinx-tab tab segment sphinx-data-tab-ZGVza3RvcA== active docutils container">
130132<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> ~/Downloads
131−$ git clone https://github.com/asciimoo/searx.git
133+$ git clone https://github.com/searx/searx.git
132134$ <span class="nb">cd</span> searx
133135</pre></div>
134136</div>
135137</div>
136138</div>
137139<p>The <a class="reference internal" href="../utils/lxc.sh.html#lxc-searx-env"><span class="std std-ref">searx suite</span></a> consists of several images, see <code class="docutils literal notranslate"><span class="pre">export</span>
138−<span class="pre">LXC_SUITE=(...</span></code> near by <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/lxc-searx.env#L19">git://utils/lxc-searx.env#L19</a>. For this blog post
140+<span class="pre">LXC_SUITE=(...</span></code> near by <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/lxc-searx.env#L19">git://utils/lxc-searx.env#L19</a>. For this blog post
139141we exercise on a <a class="reference external" href="https://www.archlinux.org/">archlinux</a> image. The container of this image is named
140142<code class="docutils literal notranslate"><span class="pre">searx-archlinux</span></code>. Lets build the container, but be sure that this container
141143does not already exists, so first lets remove possible old one:</p>
@@ -374,7 +376,7 @@ the working tree is checked out from the <code class="docutils literal notransla
374376<p>With the command above, we stopped the searx uWSGI-App in the archlinux
375377container.</p>
376378<p>The uWSGI-App for the archlinux dsitros is configured in
377−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/etc/uwsgi/apps-archlinux/searx.ini">git://utils/templates/etc/uwsgi/apps-archlinux/searx.ini</a>, from where at
379+<a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/etc/uwsgi/apps-archlinux/searx.ini">git://utils/templates/etc/uwsgi/apps-archlinux/searx.ini</a>, from where at
378380least you should attend the settings of <code class="docutils literal notranslate"><span class="pre">uid</span></code>, <code class="docutils literal notranslate"><span class="pre">chdir</span></code>, <code class="docutils literal notranslate"><span class="pre">env</span></code> and
379381<code class="docutils literal notranslate"><span class="pre">http</span></code>:</p>
380382<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>env = SEARX_SETTINGS_PATH=/etc/searx/settings.yml
@@ -529,6 +531,7 @@ $ systemctl restart uwsgi@searx
529531</div>
530532
531533
534+ <div class="clearer"></div>
532535 </div>
533536 </div>
534537 </div>
@@ -544,9 +547,9 @@ $ systemctl restart uwsgi@searx
544547
545548 <h3>Project Links</h3>
546549 <ul>
547− <li><a href="https://github.com/asciimoo/searx">Source</a>
550+ <li><a href="https://github.com/searx/searx">Source</a>
548551
549− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
552+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
550553
551554 <li><a href="https://searx.space/">Public instances</a>
552555
@@ -580,7 +583,7 @@ $ systemctl restart uwsgi@searx
580583
581584 <div class="footer" role="contentinfo">
582585 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
583− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
586+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
584587 </div>
585588 <script src="../_static/version_warning_offset.js"></script>
586589
blog/private-engines.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Limit access to your searx engines &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -29,7 +34,8 @@
2934 <a href="intro-offline.html" title="Preparation for offline engines"
3035 accesskey="P">previous</a> |</li>
3136 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
32− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
37+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
38+ <li class="nav-item nav-item-this"><a href="">Limit access to your searx engines</a></li>
3339 </ul>
3440 </div>
3541
@@ -46,7 +52,7 @@ expose some private information through an offline engine. Or they
4652would rather share engines only with their trusted friends or colleagues.</p>
4753<div class="section" id="private-engines">
4854<h2>Private engines<a class="headerlink" href="#private-engines" title="Permalink to this headline">¶</a></h2>
49−<p>To solve this issue private engines were introduced in <a class="reference external" href="https://github.com/asciimoo/searx/pull/1823">PR 1823</a>.
55+<p>To solve this issue private engines were introduced in <a class="reference external" href="https://github.com/searx/searx/pull/1823">PR 1823</a>.
5056A new option was added to engines named <cite>tokens</cite>. It expects a list
5157of strings. If the user making a request presents one of the tokens
5258of an engine, they can access information about the engine
@@ -90,6 +96,7 @@ and come up with new solutions which fit your use case.</p>
9096</div>
9197
9298
99+ <div class="clearer"></div>
93100 </div>
94101 </div>
95102 </div>
@@ -105,9 +112,9 @@ and come up with new solutions which fit your use case.</p>
105112
106113 <h3>Project Links</h3>
107114 <ul>
108− <li><a href="https://github.com/asciimoo/searx">Source</a>
115+ <li><a href="https://github.com/searx/searx">Source</a>
109116
110− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
117+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
111118
112119 <li><a href="https://searx.space/">Public instances</a>
113120
@@ -141,7 +148,7 @@ and come up with new solutions which fit your use case.</p>
141148
142149 <div class="footer" role="contentinfo">
143150 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
144− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
151+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
145152 </div>
146153 <script src="../_static/version_warning_offset.js"></script>
147154
blog/python3.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Introducing Python 3 support &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="lxcdev-202006.html" title="Developing in Linux containers [202006]"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Blog</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Introducing Python 3 support</a></li>
3743 </ul>
3844 </div>
3945
@@ -79,7 +85,7 @@ both versions are being tested on Travis and can be tested locally.</p></li>
7985</div>
8086<div class="section" id="if-you-found-bugs">
8187<h2>If you found bugs<a class="headerlink" href="#if-you-found-bugs" title="Permalink to this headline">¶</a></h2>
82−<p>Please open an issue on <a class="reference external" href="https://github.com/asciimoo/searx/issues">GitHub</a>. Make sure that you mention your Python
88+<p>Please open an issue on <a class="reference external" href="https://github.com/searx/searx/issues">GitHub</a>. Make sure that you mention your Python
8389version in your issue, so we can investigate it properly.</p>
8490</div>
8591<div class="section" id="acknowledgment">
@@ -93,6 +99,7 @@ version in your issue, so we can investigate it properly.</p>
9399</div>
94100
95101
102+ <div class="clearer"></div>
96103 </div>
97104 </div>
98105 </div>
@@ -108,9 +115,9 @@ version in your issue, so we can investigate it properly.</p>
108115
109116 <h3>Project Links</h3>
110117 <ul>
111− <li><a href="https://github.com/asciimoo/searx">Source</a>
118+ <li><a href="https://github.com/searx/searx">Source</a>
112119
113− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
120+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
114121
115122 <li><a href="https://searx.space/">Public instances</a>
116123
@@ -144,7 +151,7 @@ version in your issue, so we can investigate it properly.</p>
144151
145152 <div class="footer" role="contentinfo">
146153 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
147− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
154+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
148155 </div>
149156 <script src="../_static/version_warning_offset.js"></script>
150157
dev/contribution_guide.html+15−8
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>How to contribute &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="quickstart.html" title="Development Quickstart"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">How to contribute</a></li>
3743 </ul>
3844 </div>
3945
@@ -124,7 +130,7 @@ privacy concerns do not fancy you, simply fork it.</p>
124130<li><p>Check if your code breaks existing tests. If so, update the tests or fix your
125131code.</p></li>
126132<li><p>If your code can be unit-tested, add unit tests.</p></li>
127−<li><p>Add yourself to the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/AUTHORS.rst">git://AUTHORS.rst</a> file.</p></li>
133+<li><p>Add yourself to the <a class="reference external" href="https://github.com/searx/searx/blob/master/AUTHORS.rst">git://AUTHORS.rst</a> file.</p></li>
128134<li><p>Choose meaning full commit messages, read <a class="reference external" href="https://www.conventionalcommits.org/">Conventional Commits</a></p>
129135<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;type&gt;[optional scope]: &lt;description&gt;
130136
@@ -150,7 +156,7 @@ code.</p></li>
150156<span id="contrib-docs"></span><h2><a class="toc-backref" href="#id7">Documentation</a><a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2>
151157<div class="sidebar">
152158<p class="sidebar-title">The reST sources</p>
153−<p>has been moved from <code class="docutils literal notranslate"><span class="pre">gh-branch</span></code> into <code class="docutils literal notranslate"><span class="pre">master</span></code> (<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs">git://docs</a>).</p>
159+<p>has been moved from <code class="docutils literal notranslate"><span class="pre">gh-branch</span></code> into <code class="docutils literal notranslate"><span class="pre">master</span></code> (<a class="reference external" href="https://github.com/searx/searx/blob/master/docs">git://docs</a>).</p>
154160</div>
155161<p>The documentation is built using <a class="reference external" href="http://www.sphinx-doc.org">Sphinx</a>. So in order to be able to generate
156162the required files, you have to install it on your system. Much easier, use
@@ -182,7 +188,7 @@ The HTML pages are in dist/docs.
182188</div>
183189<div class="section" id="deploy-on-github-io">
184190<span id="id2"></span><h3><a class="toc-backref" href="#id9">deploy on github.io</a><a class="headerlink" href="#deploy-on-github-io" title="Permalink to this headline">¶</a></h3>
185−<p>To deploy documentation at <a class="reference external" href="https://asciimoo.github.io/searx/.">github.io</a> use Makefile target
191+<p>To deploy documentation at <a class="reference external" href="https://searx.github.io/searx/.">github.io</a> use Makefile target
186192<a class="reference internal" href="makefile.html#make-gh-pages"><span class="std std-ref">make gh-pages</span></a>, which will builds the documentation, clones searx into a sub
187193folder <code class="docutils literal notranslate"><span class="pre">gh-pages</span></code>, cleans it, copies the doc build into and runs all the
188194needed git add, commit and push:</p>
@@ -196,7 +202,7 @@ Cloning into <span class="s1">&#39;gh-pages&#39;</span> ...
196202<span class="nb">cd</span> gh-pages<span class="p">;</span> git checkout gh-pages &gt;/dev/null
197203Switched to a new branch <span class="s1">&#39;gh-pages&#39;</span>
198204...
199−doc available at --&gt; https://asciimoo.github.io/searx
205+doc available at --&gt; https://searx.github.io/searx
200206</pre></div>
201207</div>
202208</div>
@@ -204,6 +210,7 @@ doc available at --&gt; https://asciimoo.github.io/searx
204210</div>
205211
206212
213+ <div class="clearer"></div>
207214 </div>
208215 </div>
209216 </div>
@@ -219,9 +226,9 @@ doc available at --&gt; https://asciimoo.github.io/searx
219226
220227 <h3>Project Links</h3>
221228 <ul>
222− <li><a href="https://github.com/asciimoo/searx">Source</a>
229+ <li><a href="https://github.com/searx/searx">Source</a>
223230
224− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
231+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
225232
226233 <li><a href="https://searx.space/">Public instances</a>
227234
@@ -255,7 +262,7 @@ doc available at --&gt; https://asciimoo.github.io/searx
255262
256263 <div class="footer" role="contentinfo">
257264 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
258− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
265+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
259266 </div>
260267 <script src="../_static/version_warning_offset.js"></script>
261268
dev/engine_overview.html+12−5
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Engine overview &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="contribution_guide.html" title="How to contribute"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Engine overview</a></li>
3743 </ul>
3844 </div>
3945
@@ -48,7 +54,7 @@
4854better results.</p>
4955<p>Because there is no general search API which could be used for every search
5056engine, an adapter has to be built between searx and the external search
51−engines. Adapters are stored under the folder <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/engines">git://searx/engines</a>.</p>
57+engines. Adapters are stored under the folder <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/engines">git://searx/engines</a>.</p>
5258<div class="contents topic" id="contents">
5359<p class="topic-title">Contents</p>
5460<ul class="simple">
@@ -589,6 +595,7 @@ time of publish <em>(not implemented yet)</em></p></td>
589595</div>
590596
591597
598+ <div class="clearer"></div>
592599 </div>
593600 </div>
594601 </div>
@@ -604,9 +611,9 @@ time of publish <em>(not implemented yet)</em></p></td>
604611
605612 <h3>Project Links</h3>
606613 <ul>
607− <li><a href="https://github.com/asciimoo/searx">Source</a>
614+ <li><a href="https://github.com/searx/searx">Source</a>
608615
609− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
616+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
610617
611618 <li><a href="https://searx.space/">Public instances</a>
612619
@@ -640,7 +647,7 @@ time of publish <em>(not implemented yet)</em></p></td>
640647
641648 <div class="footer" role="contentinfo">
642649 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
643− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
650+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
644651 </div>
645652 <script src="../_static/version_warning_offset.js"></script>
646653
dev/index.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Developer documentation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -32,7 +37,8 @@
3237 <li class="right" >
3338 <a href="../admin/buildhosts.html" title="Buildhosts"
3439 accesskey="P">previous</a> |</li>
35− <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
41+ <li class="nav-item nav-item-this"><a href="">Developer documentation</a></li>
3642 </ul>
3743 </div>
3844
@@ -118,6 +124,7 @@
118124</div>
119125
120126
127+ <div class="clearer"></div>
121128 </div>
122129 </div>
123130 </div>
@@ -133,9 +140,9 @@
133140
134141 <h3>Project Links</h3>
135142 <ul>
136− <li><a href="https://github.com/asciimoo/searx">Source</a>
143+ <li><a href="https://github.com/searx/searx">Source</a>
137144
138− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
145+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
139146
140147 <li><a href="https://searx.space/">Public instances</a>
141148
@@ -166,7 +173,7 @@
166173
167174 <div class="footer" role="contentinfo">
168175 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
169− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
176+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
170177 </div>
171178 <script src="../_static/version_warning_offset.js"></script>
172179
dev/makefile.html+22−15
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Makefile Targets &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="translation.html" title="Translation"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Makefile Targets</a></li>
3743 </ul>
3844 </div>
3945
@@ -50,7 +56,7 @@
5056and <a class="reference internal" href="#make-pyenv"><span class="std std-ref">Python environment</span></a>.</p>
5157<p>To install system requirements follow <a class="reference internal" href="../admin/buildhosts.html#buildhosts"><span class="std std-ref">Buildhosts</span></a>.</p>
5258</div>
53−<p>With the aim to simplify development cycles, started with <a class="reference external" href="https://github.com/asciimoo/searx/pull/1756">PR 1756</a> a
59+<p>With the aim to simplify development cycles, started with <a class="reference external" href="https://github.com/searx/searx/pull/1756">PR 1756</a> a
5460<code class="docutils literal notranslate"><span class="pre">Makefile</span></code> based boilerplate was added. If you are not familiar with
5561Makefiles, we recommend to read <a class="reference external" href="https://www.gnu.org/software/make/manual/make.html#Introduction">gnu-make</a> introduction.</p>
5662<p>The usage is simple, just type <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">{target-name}</span></code> to <em>build</em> a target.
@@ -71,8 +77,8 @@ Calling the <code class="docutils literal notranslate"><span class="pre">help</s
7177
7278environment
7379 SEARX_URL = https://searx.me
74− GIT_URL = https://github.com/asciimoo/searx
75− DOCS_URL = https://asciimoo.github.io/searx
80+ GIT_URL = https://github.com/searx/searx
81+ DOCS_URL = https://searx.github.io/searx
7682
7783 make V=0|1 [targets] 0 =&gt; quiet build (default), 1 =&gt; verbose build
7884 make V=2 [targets] 2 =&gt; give reason for rebuild of target
@@ -101,11 +107,11 @@ to get more help: make help-all
101107<p>Commit changes in your (local) branch, fork or whatever, but do not push them
102108upstream / <a class="reference external" href="https://git-scm.com/docs/git-stash">git stash</a> is your friend.</p>
103109</div>
104−<p>The main setup is done in the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/Makefile">git://Makefile</a>.</p>
105−<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>export GIT_URL=https://github.com/asciimoo/searx
110+<p>The main setup is done in the <a class="reference external" href="https://github.com/searx/searx/blob/master/Makefile">git://Makefile</a>.</p>
111+<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>export GIT_URL=https://github.com/searx/searx
106112export GIT_BRANCH=master
107113export SEARX_URL=https://searx.me
108−export DOCS_URL=https://asciimoo.github.io/searx
114+export DOCS_URL=https://searx.github.io/searx
109115</pre></div>
110116</div>
111117<dl class="field-list simple">
@@ -146,7 +152,7 @@ PYENV usage: <span class="nb">source</span> ./local/py3/bin/activate
146152</pre></div>
147153</div>
148154<p>With target <code class="docutils literal notranslate"><span class="pre">pyenv</span></code> a development environment (aka virtualenv) was build up in
149−<code class="docutils literal notranslate"><span class="pre">./local/py3/</span></code>. To make a <em>developer install</em> of searx (<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/setup.py">git://setup.py</a>)
155+<code class="docutils literal notranslate"><span class="pre">./local/py3/</span></code>. To make a <em>developer install</em> of searx (<a class="reference external" href="https://github.com/searx/searx/blob/master/setup.py">git://setup.py</a>)
150156into this environment, use make target <code class="docutils literal notranslate"><span class="pre">install</span></code>:</p>
151157<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ make install
152158PYENV usage: <span class="nb">source</span> ./local/py3/bin/activate
@@ -162,14 +168,14 @@ target.</p>
162168<p>To get rid of the existing environment before re-build use <a class="reference internal" href="#make-clean"><span class="std std-ref">clean target</span></a> first.</p>
163169</div>
164170<p>If you think, something goes wrong with your ./local environment or you change
165−the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/setup.py">git://setup.py</a> file (or the requirements listed in
166−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/requirements-dev.txt">git://requirements-dev.txt</a> and <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/requirements.txt">git://requirements.txt</a>), you have to call
171+the <a class="reference external" href="https://github.com/searx/searx/blob/master/setup.py">git://setup.py</a> file (or the requirements listed in
172+<a class="reference external" href="https://github.com/searx/searx/blob/master/requirements-dev.txt">git://requirements-dev.txt</a> and <a class="reference external" href="https://github.com/searx/searx/blob/master/requirements.txt">git://requirements.txt</a>), you have to call
167173<a class="reference internal" href="#make-clean"><span class="std std-ref">make clean</span></a>.</p>
168174</div>
169175<div class="section" id="make-run">
170176<span id="id2"></span><h2><a class="toc-backref" href="#id9"><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">run</span></code></a><a class="headerlink" href="#make-run" title="Permalink to this headline">¶</a></h2>
171177<p>To get up a running a developer instance simply call <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">run</span></code>. This enables
172−<em>debug</em> option in <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>, starts a <code class="docutils literal notranslate"><span class="pre">./searx/webapp.py</span></code>
178+<em>debug</em> option in <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">git://searx/settings.yml</a>, starts a <code class="docutils literal notranslate"><span class="pre">./searx/webapp.py</span></code>
173179instance, disables <em>debug</em> option again and opens the URL in your favorite WEB
174180browser (<a class="reference external" href="https://manpages.debian.org/jump?q=xdg-open">xdg-open</a>):</p>
175181<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$ make run
@@ -224,7 +230,7 @@ one of the best source-code, bug and quality checker for the Python programming
224230language. <a class="reference external" href="https://www.pylint.org/">Pylint</a> is not yet a quality gate within our searx project (like
225231<a class="reference internal" href="#make-test"><span class="std std-ref">test.pep8</span></a> it is), but <a class="reference external" href="https://www.pylint.org/">Pylint</a> can help to improve code
226232quality anyway. The pylint profile we use at searx project is found in
227−project’s root folder <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/.pylintrc">git://.pylintrc</a>.</p>
233+project’s root folder <a class="reference external" href="https://github.com/searx/searx/blob/master/.pylintrc">git://.pylintrc</a>.</p>
228234<p>Code quality is a ongoing process. Don’t try to fix all messages from Pylint,
229235run Pylint and check if your changed lines are bringing up new messages. If so,
230236fix it. By this, code quality gets incremental better and if there comes the
@@ -251,6 +257,7 @@ never need the latter.</p>
251257</div>
252258
253259
260+ <div class="clearer"></div>
254261 </div>
255262 </div>
256263 </div>
@@ -266,9 +273,9 @@ never need the latter.</p>
266273
267274 <h3>Project Links</h3>
268275 <ul>
269− <li><a href="https://github.com/asciimoo/searx">Source</a>
276+ <li><a href="https://github.com/searx/searx">Source</a>
270277
271− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
278+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
272279
273280 <li><a href="https://searx.space/">Public instances</a>
274281
@@ -302,7 +309,7 @@ never need the latter.</p>
302309
303310 <div class="footer" role="contentinfo">
304311 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
305− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
312+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
306313 </div>
307314 <script src="../_static/version_warning_offset.js"></script>
308315
dev/plugins.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Plugins &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="search_api.html" title="Search API"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Plugins</a></li>
3743 </ul>
3844 </div>
3945
@@ -105,6 +111,7 @@ plugin.</p>
105111</div>
106112
107113
114+ <div class="clearer"></div>
108115 </div>
109116 </div>
110117 </div>
@@ -120,9 +127,9 @@ plugin.</p>
120127
121128 <h3>Project Links</h3>
122129 <ul>
123− <li><a href="https://github.com/asciimoo/searx">Source</a>
130+ <li><a href="https://github.com/searx/searx">Source</a>
124131
125− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
132+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
126133
127134 <li><a href="https://searx.space/">Public instances</a>
128135
@@ -156,7 +163,7 @@ plugin.</p>
156163
157164 <div class="footer" role="contentinfo">
158165 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
159− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
166+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
160167 </div>
161168 <script src="../_static/version_warning_offset.js"></script>
162169
dev/quickstart.html+13−6
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Development Quickstart &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="index.html" title="Developer documentation"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Development Quickstart</a></li>
3743 </ul>
3844 </div>
3945
@@ -60,7 +66,7 @@ gives a short introduction to the <code class="docutils literal notranslate"><sp
6066source is cloned to <code class="docutils literal notranslate"><span class="pre">~/myprojects/searx</span></code>. Then create and activate the
6167searx-ve virtualenv and install the required packages using <code class="docutils literal notranslate"><span class="pre">manage.sh</span></code>.</p>
6268<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> ~/myprojects
63−git clone https://github.com/asciimoo/searx.git
69+git clone https://github.com/searx/searx.git
6470<span class="nb">cd</span> searx
6571python3 -m venv searx-ve
6672. ./searx-ve/bin/activate
@@ -134,7 +140,7 @@ session / see <a class="reference internal" href="makefile.html#make-run"><span
134140always a good idea to turn on debug logging. When debug logging is enabled a
135141stack trace appears, instead of the cryptic <code class="docutils literal notranslate"><span class="pre">Internal</span> <span class="pre">Server</span> <span class="pre">Error</span></code>
136142message. It can be turned on by setting <code class="docutils literal notranslate"><span class="pre">debug:</span> <span class="pre">False</span></code> to <code class="docutils literal notranslate"><span class="pre">debug:</span> <span class="pre">True</span></code> in
137−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/settings.yml">settings.yml</a>.</p>
143+<a class="reference external" href="https://github.com/searx/searx/blob/master/searx/settings.yml">settings.yml</a>.</p>
138144</dd>
139145</dl>
140146<div class="sidebar">
@@ -151,6 +157,7 @@ must be created containing these format fixes. This phase can be skipped if
151157</div>
152158
153159
160+ <div class="clearer"></div>
154161 </div>
155162 </div>
156163 </div>
@@ -166,9 +173,9 @@ must be created containing these format fixes. This phase can be skipped if
166173
167174 <h3>Project Links</h3>
168175 <ul>
169− <li><a href="https://github.com/asciimoo/searx">Source</a>
176+ <li><a href="https://github.com/searx/searx">Source</a>
170177
171− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
178+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
172179
173180 <li><a href="https://searx.space/">Public instances</a>
174181
@@ -202,7 +209,7 @@ must be created containing these format fixes. This phase can be skipped if
202209
203210 <div class="footer" role="contentinfo">
204211 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
205− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
212+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
206213 </div>
207214 <script src="../_static/version_warning_offset.js"></script>
208215
dev/reST.html+31−24
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>reST primer &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="makefile.html" title="Makefile Targets"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">reST primer</a></li>
3743 </ul>
3844 </div>
3945
@@ -51,9 +57,9 @@ contributors to follow principles like <a class="reference external" href="https
5157</div>
5258<p>We at searx are using reStructuredText (aka <a class="reference external" href="https://docutils.sourceforge.io/rst.html">reST</a>) markup for all kind of
5359documentation, with the builders from the <a class="reference external" href="http://www.sphinx-doc.org">Sphinx</a> project a HTML output is
54−generated and deployed at <a class="reference external" href="https://asciimoo.github.io/searx/.">github.io</a>. For build prerequisites read
60+generated and deployed at <a class="reference external" href="https://searx.github.io/searx/.">github.io</a>. For build prerequisites read
5561<a class="reference internal" href="../admin/buildhosts.html#docs-build"><span class="std std-ref">Build docs</span></a>.</p>
56−<p>The source files of Searx’s documentation are located at <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs">git://docs</a>. Sphinx
62+<p>The source files of Searx’s documentation are located at <a class="reference external" href="https://github.com/searx/searx/blob/master/docs">git://docs</a>. Sphinx
5763assumes source files to be encoded in UTF-8 by defaul. Run <a class="reference internal" href="contribution_guide.html#make-docs-live"><span class="std std-ref">make docs-live</span></a> to build HTML while editing.</p>
5864<div class="sidebar">
5965<p class="sidebar-title">Further reading</p>
@@ -159,17 +165,17 @@ audience point of view.</p></li>
159165view.</p></li>
160166<li><p>Limit the subject, use cross links for any further reading.</p></li>
161167</ul>
162−<p>To be more concrete what a <em>point of view</em> means. In the (<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs">git://docs</a>)
168+<p>To be more concrete what a <em>point of view</em> means. In the (<a class="reference external" href="https://github.com/searx/searx/blob/master/docs">git://docs</a>)
163169folder we have three sections (and the <em>blog</em> folder), each dedicate to a
164170different group of audience.</p>
165171<dl class="simple">
166−<dt>User’s POV: <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/user">git://docs/user</a></dt><dd><p>A typical user knows about search engines and might have heard about
172+<dt>User’s POV: <a class="reference external" href="https://github.com/searx/searx/blob/master/docs/user">git://docs/user</a></dt><dd><p>A typical user knows about search engines and might have heard about
167173meta crawlers and privacy.</p>
168174</dd>
169−<dt>Admin’s POV: <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/admin">git://docs/admin</a></dt><dd><p>A typical Admin knows about setting up services on a linux system, but he does
175+<dt>Admin’s POV: <a class="reference external" href="https://github.com/searx/searx/blob/master/docs/admin">git://docs/admin</a></dt><dd><p>A typical Admin knows about setting up services on a linux system, but he does
170176not know all the pros and cons of a searx setup.</p>
171177</dd>
172−<dt>Developer’s POV: <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/dev">git://docs/dev</a></dt><dd><p>Depending on the <a class="reference external" href="https://docs.python-guide.org/writing/style/">readability</a> of code, a typical developer is able to read and
178+<dt>Developer’s POV: <a class="reference external" href="https://github.com/searx/searx/blob/master/docs/dev">git://docs/dev</a></dt><dd><p>Depending on the <a class="reference external" href="https://docs.python-guide.org/writing/style/">readability</a> of code, a typical developer is able to read and
173179understand source code. Describe what a item aims to do (e.g. a function).
174180If the chronological order matters, describe it. Name the <em>out-of-limits
175181conditions</em> and all the side effects a external developer will not know.</p>
@@ -376,23 +382,23 @@ content becomes smart.</p>
376382<tr class="row-even"><td colspan="3"><p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/extensions/extlinks.html">sphinx.ext.extlinks</a></p></td>
377383</tr>
378384<tr class="row-odd"><td><p>project’s wiki article</p></td>
379−<td><p><a class="reference external" href="https://github.com/asciimoo/searx/wiki/Offline-engines"> Offline-engines</a></p></td>
385+<td><p><a class="reference external" href="https://github.com/searx/searx/wiki/Offline-engines"> Offline-engines</a></p></td>
380386<td><p><code class="docutils literal notranslate"><span class="pre">:wiki:`Offline-engines`</span></code></p></td>
381387</tr>
382388<tr class="row-even"><td><p>to docs public URL</p></td>
383−<td><p><a class="reference external" href="https://asciimoo.github.io/searx/dev/reST.html">docs: dev/reST.html</a></p></td>
389+<td><p><a class="reference external" href="https://searx.github.io/searx/dev/reST.html">docs: dev/reST.html</a></p></td>
384390<td><p><code class="docutils literal notranslate"><span class="pre">:docs:`dev/reST.html`</span></code></p></td>
385391</tr>
386392<tr class="row-odd"><td><p>files &amp; folders origin</p></td>
387−<td><p><a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/dev/reST.rst">git://docs/dev/reST.rst</a></p></td>
393+<td><p><a class="reference external" href="https://github.com/searx/searx/blob/master/docs/dev/reST.rst">git://docs/dev/reST.rst</a></p></td>
388394<td><p><code class="docutils literal notranslate"><span class="pre">:origin:`docs/dev/reST.rst`</span></code></p></td>
389395</tr>
390396<tr class="row-even"><td><p>pull request</p></td>
391−<td><p><a class="reference external" href="https://github.com/asciimoo/searx/pull/1756">PR 1756</a></p></td>
397+<td><p><a class="reference external" href="https://github.com/searx/searx/pull/1756">PR 1756</a></p></td>
392398<td><p><code class="docutils literal notranslate"><span class="pre">:pull:`1756`</span></code></p></td>
393399</tr>
394400<tr class="row-odd"><td><p>patch</p></td>
395−<td><p><a class="reference external" href="https://github.com/asciimoo/searx/commit/af2cae6">#af2cae6</a></p></td>
401+<td><p><a class="reference external" href="https://github.com/searx/searx/commit/af2cae6">#af2cae6</a></p></td>
396402<td><p><code class="docutils literal notranslate"><span class="pre">:patch:`af2cae6`</span></code></p></td>
397403</tr>
398404<tr class="row-even"><td><p>PyPi package</p></td>
@@ -423,7 +429,7 @@ content becomes smart.</p>
423429</tr>
424430</tbody>
425431</table>
426−<p>Intersphinx is configured in <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/conf.py">git://docs/conf.py</a>:</p>
432+<p>Intersphinx is configured in <a class="reference external" href="https://github.com/searx/searx/blob/master/docs/conf.py">git://docs/conf.py</a>:</p>
427433<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">intersphinx_mapping</span> <span class="o">=</span> <span class="p">{</span>
428434 <span class="s2">&quot;python&quot;</span><span class="p">:</span> <span class="p">(</span><span class="s2">&quot;https://docs.python.org/3/&quot;</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
429435 <span class="s2">&quot;flask&quot;</span><span class="p">:</span> <span class="p">(</span><span class="s2">&quot;https://flask.palletsprojects.com/&quot;</span><span class="p">,</span> <span class="bp">None</span><span class="p">),</span>
@@ -574,7 +580,7 @@ in a specific way.</p>
574580<td><p><code class="docutils literal notranslate"><span class="pre">:guilabel:`&amp;Cancel`</span></code></p></td>
575581</tr>
576582<tr class="row-odd"><td><p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-kbd" title="(in Sphinx v4.0.0+)"><code class="xref rst rst-role docutils literal notranslate"><span class="pre">kbd</span></code></a></p></td>
577−<td><p><kbd class="kbd docutils literal notranslate">C-x C-f</kbd></p></td>
583+<td><p><kbd class="kbd docutils literal notranslate"><kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">x</kbd> <kbd class="kbd docutils literal notranslate">C</kbd>-<kbd class="kbd docutils literal notranslate">f</kbd></kbd></p></td>
578584<td><p><code class="docutils literal notranslate"><span class="pre">:kbd:`C-x</span> <span class="pre">C-f`</span></code></p></td>
579585</tr>
580586<tr class="row-even"><td><p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-menuselection" title="(in Sphinx v4.0.0+)"><code class="xref rst rst-role docutils literal notranslate"><span class="pre">menuselection</span></code></a></p></td>
@@ -586,7 +592,7 @@ in a specific way.</p>
586592<td><p><code class="docutils literal notranslate"><span class="pre">:download:`this</span> <span class="pre">file</span> <span class="pre">&lt;reST.rst&gt;`</span></code></p></td>
587593</tr>
588594<tr class="row-even"><td><p><a class="reference internal" href="#math">math</a></p></td>
589−<td><p><span class="math">a^2 + b^2 = c^2</span></p></td>
595+<td><p><img class="math" src="../_images/math/6673b43f9fe29455c1fcd1164e5844698cc64d38.svg" alt="a^2 + b^2 = c^2"/></p></td>
590596<td><p><code class="docutils literal notranslate"><span class="pre">:math:`a^2</span> <span class="pre">+</span> <span class="pre">b^2</span> <span class="pre">=</span> <span class="pre">c^2`</span></code></p></td>
591597</tr>
592598<tr class="row-odd"><td><p><a class="reference external" href="https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref" title="(in Sphinx v4.0.0+)"><code class="xref rst rst-role docutils literal notranslate"><span class="pre">ref</span></code></a></p></td>
@@ -1404,7 +1410,7 @@ kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></td>
14041410time. The <a class="reference external" href="https://github.com/tardyp/sphinx-jinja">sphinx-jinja</a> extension evaluates <a class="reference external" href="https://jinja.palletsprojects.com/">jinja</a> templates in the <a class="reference internal" href="makefile.html#make-pyenv"><span class="std std-ref">build
14051411environment</span></a> (with searx modules installed). We use this e.g. to
14061412build chapter: <a class="reference internal" href="../admin/engines.html#engines-generic"><span class="std std-ref">Engines</span></a>. Below the jinja directive from the
1407−<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/admin/engines.rst">git://docs/admin/engines.rst</a> is shown:</p>
1413+<a class="reference external" href="https://github.com/searx/searx/blob/master/docs/admin/engines.rst">git://docs/admin/engines.rst</a> is shown:</p>
14081414<div class="highlight-reST notranslate"><div class="highlight"><pre><span></span><span class="p">..</span> <span class="ow">jinja</span><span class="p">::</span> webapp
14091415
14101416<span class="p"> ..</span> <span class="ow">flat-table</span><span class="p">::</span> Engines configured at built time (defaults)
@@ -1447,7 +1453,7 @@ build chapter: <a class="reference internal" href="../admin/engines.html#engines
14471453</pre></div>
14481454</div>
14491455<p>The context for the template is selected in the line <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">jinja::</span> <span class="pre">webapp</span></code>. In
1450−sphinx’s build configuration (<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/docs/conf.py">git://docs/conf.py</a>) the <code class="docutils literal notranslate"><span class="pre">webapp</span></code> context
1456+sphinx’s build configuration (<a class="reference external" href="https://github.com/searx/searx/blob/master/docs/conf.py">git://docs/conf.py</a>) the <code class="docutils literal notranslate"><span class="pre">webapp</span></code> context
14511457points to the name space of the python module: <code class="docutils literal notranslate"><span class="pre">webapp</span></code>.</p>
14521458<div class="highlight-py notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">searx</span> <span class="kn">import</span> <span class="n">webapp</span>
14531459<span class="n">jinja_contexts</span> <span class="o">=</span> <span class="p">{</span>
@@ -1513,8 +1519,8 @@ is shown.
15131519<p>In <a class="reference internal" href="#equation-schroedinger-general">(1)</a> the time-dependent Schrödinger equation
15141520is shown.</p>
15151521<div class="math" id="equation-schroedinger-general">
1516−<p><span class="eqno">(1)<a class="headerlink" href="#equation-schroedinger-general" title="Permalink to this equation">¶</a></span><span class="math">\mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle =
1517− \hat{H} |\,\psi (t) \rangle.</span></p>
1522+<p><span class="eqno">(1)<a class="headerlink" href="#equation-schroedinger-general" title="Permalink to this equation">¶</a></span><img src="../_images/math/a6a994cb6e7278ec30eaebe7e636046d3deccb5b.svg" alt="\mathrm{i}\hbar\dfrac{\partial}{\partial t} |\,\psi (t) \rangle =
1523+ \hat{H} |\,\psi (t) \rangle."/></p>
15181524</div></div>
15191525<p>The next example shows the difference of <code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> (<em>textstyle</em>) and <code class="docutils literal notranslate"><span class="pre">\dfrac</span></code>
15201526(<em>displaystyle</em>) used in a inline markup or another fraction.</p>
@@ -1527,13 +1533,13 @@ is shown.</p>
15271533<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
15281534eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
15291535voluptua. …
1530−<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <span class="math">\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}</span>
1536+<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <img class="math" src="../_images/math/3b8127a8eed95247f9249ea6c85e8e86df1baa82.svg" alt="\tfrac{\tfrac{1}{x}+\tfrac{1}{y}}{y-z}"/>
15311537At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
15321538gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
15331539<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
15341540eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
15351541voluptua. …
1536−<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <span class="math">\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}</span>
1542+<code class="docutils literal notranslate"><span class="pre">\tfrac</span></code> <strong>inline example</strong> <img class="math" src="../_images/math/07c9ff4251510b06013159f4e45ec9ab97044096.svg" alt="\dfrac{\dfrac{1}{x}+\dfrac{1}{y}}{y-z}"/>
15371543At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
15381544gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
15391545</div>
@@ -1541,6 +1547,7 @@ gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
15411547</div>
15421548
15431549
1550+ <div class="clearer"></div>
15441551 </div>
15451552 </div>
15461553 </div>
@@ -1556,9 +1563,9 @@ gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
15561563
15571564 <h3>Project Links</h3>
15581565 <ul>
1559− <li><a href="https://github.com/asciimoo/searx">Source</a>
1566+ <li><a href="https://github.com/searx/searx">Source</a>
15601567
1561− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
1568+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
15621569
15631570 <li><a href="https://searx.space/">Public instances</a>
15641571
@@ -1592,7 +1599,7 @@ gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
15921599
15931600 <div class="footer" role="contentinfo">
15941601 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
1595− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
1602+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
15961603 </div>
15971604 <script src="../_static/version_warning_offset.js"></script>
15981605
dev/search_api.html+13−6
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Search API &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="engine_overview.html" title="Engine overview"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Search API</a></li>
3743 </ul>
3844 </div>
3945
@@ -132,15 +138,16 @@ instance. See the available options in the preferences page of the instance.</p>
132138</dd>
133139</dl>
134140</dd>
135−<dt><code class="docutils literal notranslate"><span class="pre">enabled_engines</span></code><span class="classifier">optional</span><span class="classifier"><em>all</em> <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/engines">engines</a></span></dt><dd><p>List of enabled engines.</p>
141+<dt><code class="docutils literal notranslate"><span class="pre">enabled_engines</span></code><span class="classifier">optional</span><span class="classifier"><em>all</em> <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/engines">engines</a></span></dt><dd><p>List of enabled engines.</p>
136142</dd>
137−<dt><code class="docutils literal notranslate"><span class="pre">disabled_engines</span></code><span class="classifier">optional</span><span class="classifier"><em>all</em> <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/searx/engines">engines</a></span></dt><dd><p>List of disabled engines.</p>
143+<dt><code class="docutils literal notranslate"><span class="pre">disabled_engines</span></code><span class="classifier">optional</span><span class="classifier"><em>all</em> <a class="reference external" href="https://github.com/searx/searx/blob/master/searx/engines">engines</a></span></dt><dd><p>List of disabled engines.</p>
138144</dd>
139145</dl>
140146</div>
141147</div>
142148
143149
150+ <div class="clearer"></div>
144151 </div>
145152 </div>
146153 </div>
@@ -156,9 +163,9 @@ instance. See the available options in the preferences page of the instance.</p>
156163
157164 <h3>Project Links</h3>
158165 <ul>
159− <li><a href="https://github.com/asciimoo/searx">Source</a>
166+ <li><a href="https://github.com/searx/searx">Source</a>
160167
161− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
168+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
162169
163170 <li><a href="https://searx.space/">Public instances</a>
164171
@@ -192,7 +199,7 @@ instance. See the available options in the preferences page of the instance.</p>
192199
193200 <div class="footer" role="contentinfo">
194201 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
195− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
202+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
196203 </div>
197204 <script src="../_static/version_warning_offset.js"></script>
198205
dev/translation.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Translation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="plugins.html" title="Plugins"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Developer documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Translation</a></li>
3743 </ul>
3844 </div>
3945
@@ -95,6 +101,7 @@ create a PR.</p>
95101</div>
96102
97103
104+ <div class="clearer"></div>
98105 </div>
99106 </div>
100107 </div>
@@ -110,9 +117,9 @@ create a PR.</p>
110117
111118 <h3>Project Links</h3>
112119 <ul>
113− <li><a href="https://github.com/asciimoo/searx">Source</a>
120+ <li><a href="https://github.com/searx/searx">Source</a>
114121
115− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
122+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
116123
117124 <li><a href="https://searx.space/">Public instances</a>
118125
@@ -146,7 +153,7 @@ create a PR.</p>
146153
147154 <div class="footer" role="contentinfo">
148155 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
149− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
156+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
150157 </div>
151158 <script src="../_static/version_warning_offset.js"></script>
152159
genindex.html+7−5
@@ -1,10 +1,10 @@
11
2−
32<!DOCTYPE html>
43
54<html>
65 <head>
76 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
88 <meta name="viewport" content="width=device-width, initial-scale=1">
99 <title>Index &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
1010 <link rel="stylesheet" href="_static/searx.css" type="text/css" />
@@ -31,7 +31,8 @@
3131 <li class="right" style="margin-right: 10px">
3232 <a href="#" title="General Index"
3333 accesskey="I">index</a></li>
34− <li class="nav-item nav-item-0"><a href="index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
34+ <li class="nav-item nav-item-0"><a href="index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
35+ <li class="nav-item nav-item-this"><a href="">Index</a></li>
3536 </ul>
3637 </div>
3738
@@ -76,6 +77,7 @@
7677
7778
7879
80+ <div class="clearer"></div>
7981 </div>
8082 </div>
8183 </div>
@@ -91,9 +93,9 @@
9193
9294 <h3>Project Links</h3>
9395 <ul>
94− <li><a href="https://github.com/asciimoo/searx">Source</a>
96+ <li><a href="https://github.com/searx/searx">Source</a>
9597
96− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
98+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
9799
98100 <li><a href="https://searx.space/">Public instances</a>
99101
@@ -121,7 +123,7 @@
121123
122124 <div class="footer" role="contentinfo">
123125 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
124− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
126+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
125127 </div>
126128 <script src="_static/version_warning_offset.js"></script>
127129
index.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Welcome to searx &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
1217 <script src="_static/jquery.js"></script>
1318 <script src="_static/underscore.js"></script>
@@ -28,7 +33,8 @@
2833 <li class="right" >
2934 <a href="user/index.html" title="User documentation"
3035 accesskey="N">next</a> |</li>
31− <li class="nav-item nav-item-0"><a href="#">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36+ <li class="nav-item nav-item-0"><a href="#">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
37+ <li class="nav-item nav-item-this"><a href="">Welcome to searx</a></li>
3238 </ul>
3339 </div>
3440
@@ -120,6 +126,7 @@ digital rights</p></li>
120126</div>
121127
122128
129+ <div class="clearer"></div>
123130 </div>
124131 </div>
125132 </div>
@@ -135,9 +142,9 @@ digital rights</p></li>
135142
136143 <h3>Project Links</h3>
137144 <ul>
138− <li><a href="https://github.com/asciimoo/searx">Source</a>
145+ <li><a href="https://github.com/searx/searx">Source</a>
139146
140− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
147+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
141148
142149 <li><a href="https://searx.space/">Public instances</a>
143150
@@ -168,7 +175,7 @@ digital rights</p></li>
168175
169176 <div class="footer" role="contentinfo">
170177 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
171− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
178+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
172179 </div>
173180 <script src="_static/version_warning_offset.js"></script>
174181
search.html+7−4
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Search &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="_static/searx.css" type="text/css" />
@@ -35,7 +36,8 @@
3536 <li class="right" style="margin-right: 10px">
3637 <a href="genindex.html" title="General Index"
3738 accesskey="I">index</a></li>
38− <li class="nav-item nav-item-0"><a href="index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
39+ <li class="nav-item nav-item-0"><a href="index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-this"><a href="">Search</a></li>
3941 </ul>
4042 </div>
4143
@@ -66,6 +68,7 @@
6668
6769 </div>
6870
71+ <div class="clearer"></div>
6972 </div>
7073 </div>
7174 </div>
@@ -81,9 +84,9 @@
8184
8285 <h3>Project Links</h3>
8386 <ul>
84− <li><a href="https://github.com/asciimoo/searx">Source</a>
87+ <li><a href="https://github.com/searx/searx">Source</a>
8588
86− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
89+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
8790
8891 <li><a href="https://searx.space/">Public instances</a>
8992
@@ -101,7 +104,7 @@
101104
102105 <div class="footer" role="contentinfo">
103106 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
104− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
107+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
105108 </div>
106109 <script src="_static/version_warning_offset.js"></script>
107110
searchindex.js+1−1
@@ -1 +1 @@
1−Search.setIndex({docnames:["admin/api","admin/architecture","admin/buildhosts","admin/engines","admin/filtron","admin/index","admin/installation","admin/installation-apache","admin/installation-docker","admin/installation-nginx","admin/installation-searx","admin/installation-uwsgi","admin/morty","admin/plugins","admin/settings","admin/update-searx","blog/admin","blog/index","blog/intro-offline","blog/lxcdev-202006","blog/private-engines","blog/python3","dev/contribution_guide","dev/engine_overview","dev/index","dev/makefile","dev/plugins","dev/quickstart","dev/reST","dev/search_api","dev/translation","index","user/index","user/own-instance","user/search_syntax","utils/filtron.sh","utils/index","utils/lxc.sh","utils/morty.sh","utils/searx.sh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":2,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["admin/api.rst","admin/architecture.rst","admin/buildhosts.rst","admin/engines.rst","admin/filtron.rst","admin/index.rst","admin/installation.rst","admin/installation-apache.rst","admin/installation-docker.rst","admin/installation-nginx.rst","admin/installation-searx.rst","admin/installation-uwsgi.rst","admin/morty.rst","admin/plugins.rst","admin/settings.rst","admin/update-searx.rst","blog/admin.rst","blog/index.rst","blog/intro-offline.rst","blog/lxcdev-202006.rst","blog/private-engines.rst","blog/python3.rst","dev/contribution_guide.rst","dev/engine_overview.rst","dev/index.rst","dev/makefile.rst","dev/plugins.rst","dev/quickstart.rst","dev/reST.rst","dev/search_api.rst","dev/translation.rst","index.rst","user/index.rst","user/own-instance.rst","user/search_syntax.rst","utils/filtron.sh.rst","utils/index.rst","utils/lxc.sh.rst","utils/morty.sh.rst","utils/searx.sh.rst"],objects:{},objnames:{},objtypes:{},terms:{"0xa9":28,"1337x":3,"15px":28,"3eff":19,"40px":28,"573b":19,"70px":28,"9b65":19,"\u65e5\u672c\u8a9e":14,"abstract":17,"boolean":[23,28],"break":[22,28],"byte":23,"case":[7,9,14,19,20,27,33,35,38,39],"class":7,"default":[4,7,8,9,11,12,14,21,22,25,26,28,29,31,33,34,35,36,37,38,39],"espa\u00f1ol":14,"export":[8,9,10,19,25,35,37,38],"fran\u00e7ai":14,"function":[18,23,26,28,37],"import":[9,18,28],"int":[4,23,28],"long":33,"new":[3,7,8,9,10,11,16,18,20,22,25,26,27,29,30,38],"null":[7,9,22],"public":[1,5,6,13,28,36,37],"return":[13,14,18,24,26,28,33],"schr\u00f6dinger":28,"short":27,"static":[2,4,9,26],"switch":[7,22],"t\u00fcrk\u00e7e":14,"true":[0,4,7,9,14,18,23,26,27,28,29,35,38],"try":[25,27,33],"var":7,"while":[11,18,19,25,28],And:[7,19,26,28],But:[16,21,23,33,37],DNS:[36,37],For:[2,4,7,8,9,10,19,20,22,25,27,28,29],IPs:[4,36],Not:28,One:[11,16],That:28,The:[0,2,5,6,8,11,14,20,23,25,28,29,33,35,36,37,38,39],Then:[18,21,27,30],There:[7,11,22,28],These:[23,28],USE:7,Use:[4,7,9],Used:[7,14],Uses:14,With:[7,19,25,28,37],__dict__:28,__init__:26,__name__:28,_anchor:28,_chapter:28,_doc:28,_dot:28,_rest:28,_section:28,_sphinx:28,_subsect:28,_svg:28,a2disconf:7,a2dismod:7,a2dissit:7,a2enconf:7,a2enmod:7,a2ensit:7,abbrev:34,abl:[2,14,18,22,23,28],about:[1,19,20,22,25,31,37],abov:[7,10,19,22,28,29,37],absenc:28,abus:[4,33],academ:3,accept:[4,18,34],access:[4,7,13,16,17,18,19,28,31,33],access_log:9,accord:[8,11],account:[7,9,19,30,35,36,38,39],accusam:28,acg:3,acgsou:3,acknowledg:17,across:14,act:[12,16],action:[0,4,11],activ:[7,9,12,14,19,21,22,27,29,35,38],adapt:23,add:[6,7,9,12,20,22,25,26,28,34,35,36,38,39],added:[11,19,20,25,26],adding:[18,26,28,36],addit:[2,23,25,27,28],addition:[31,33],address:[12,14,23,33,36],adipisici:28,adjust:25,admin:[14,17,19,20,28,31,36,38],administr:[16,18,20,29,31,33],admonit:24,adopt:22,adorn:28,ads:33,advantag:[16,28],advertis:33,advis:[4,7,9],af2cae6:28,affect:16,after:[21,26,27,28,30,35,38],again:25,agent:[4,13,14,23],aggreg:[4,31,33],agpl:[36,37],aim:[16,25,28],aka:25,alia:9,align:28,aliquid:28,aliquyam:28,all:[0,6,7,12,19,21,22,23,25,26,28,29,35,36,37,38,39],allow:[7,10,14,28,34],allowoverrid:7,alltogeth:5,along:4,alreadi:[7,9,19,22,27],also:[2,7,8,10,11,19,22,25,28,33,34,36],alt:28,alter:22,altern:[6,9,27,28,37],alwai:[8,9,19,23,27,33,35,38],amd64:[35,38],amet:28,among:[22,33],amsmath:28,analog:19,analysi:2,ancel:28,anchor:24,ani:[2,6,7,11,25,28,29,31,36],annoi:28,anonym:[31,33],anoth:[11,14,16,19,23,28,37],answer:[14,28,33],anymor:7,anyon:31,anyth:[14,21,33],anywai:[25,28],apach:[1,4,5,6,11,14,31,35,36,37,38,39],apache2:7,apache2ctl:7,api:[5,14,20,23,24,30,31,35],api_kei:[14,23],apikei:14,apk:3,apkm:3,apkmirror:3,app:[3,7,9,11,19,28,35,38],appear:[27,28],append:18,appli:[14,15,22],applic:[4,9,11,14,16,19],approach:11,april:37,apt:[2,7,9,27,28],arbitrari:[18,23],arch:[0,2,3,7,9,11,20,28],architectur:[4,5,6,7,9,19,31,35,38,39],archiv:3,archlinux:[3,11,20,37],argument:[12,13,28],arrai:23,arrow:28,art:[28,29],articl:24,arx:3,arxiv:3,asciimoo:[6,8,19,22,25,27,30,35,38],ascrib:28,aspect:[19,22],assert:22,assign:23,assum:28,asterisk:28,attach:26,attend:19,attent:28,attribut:28,audienc:28,author:[22,28],auto:[19,28,30,37],autobuild:25,autocomplet:[0,8,29],autodoc:28,autoindex:7,autoindex_modul:7,automat:[13,28],avail:[7,9,11,13,14,18,22,27,29,33,35,38],avoid:[4,6,13,14],awar:[7,28,36],back:19,backquot:28,backslash:28,backup:36,balanc:25,ban:33,bang:14,bar:[5,28,35,38],barrier:16,base:[8,14,18,19,23,25,29],base_url:[8,9,14,23],baseprofil:28,bash:[10,19,28,35,36,37,38],basic:24,batch:36,baz:28,becaus:[16,20,22,23,27,30,33],becom:[19,28],been:[18,19,22],befor:[6,10,19,21,22,25,26,27,28,33,36,37],beginn:9,behavior:28,behaviour:[22,26],being:[4,14,16,21,31],below:[4,6,10,11,14,22,27,28,30],benefit:20,besid:33,best:[2,25,28,33,36],better:[2,7,9,23,25,33],between:[4,23,28],big:28,bigger:14,biggest:16,bii:3,bin:[2,3,21,25,27,35,38],binari:[35,38],bind:8,bind_address:8,bing:[3,14],bing_imag:3,bing_new:3,bing_video:3,bit:[11,28],bitbucket:[0,3],biv:3,black:28,blank:[14,28],block:[4,14,24],blocker:19,blog:[19,28,31],bodi:[22,28],boilerpl:[19,25],bold:28,boldfac:28,born:22,bot:19,both:[11,20,21,22,29,33],botlimit:4,bottom:[13,26],boundingbox:23,box:[1,6,31,37],branch:[22,25,36],brand:[25,36],bring:[25,28],broken:28,browser:[14,16,19,21,22,25,33,37],btdigg:3,bug:[17,25,27],buggi:11,bugreport:22,build:[1,5,6,19,24,37],buildenv:25,builder:28,buildhost:[5,19,25,31,36],built:[22,23,27,28],builtin:[5,26,31],c3tv:3,calcul:9,call:[16,19,20,25,30,37],callback:26,can:[0,1,2,4,6,7,8,9,10,11,12,14,16,18,19,20,21,22,23,25,26,27,28,31,33,35,37,38,39],cancel:28,cannot:[2,28,33,35,38],capabl:[16,22],caplabl:18,captcha:33,caption:28,cardin:22,care:[14,28,36,37],carv:20,cat:[35,37,38],catcher:28,categori:[0,3,13,14,18,23,28,29,34],caution:28,caveat:28,ccc:3,cdn:2,cell:28,cento:37,centos7:37,cfg:[3,28],chain:25,chainabl:34,chang:[14,19,21,22,25,28,36],chapter:[4,21,22,28,38,39],charact:[22,28],chdir:19,check:[2,5,18,19,22,23,25,27,30],checker:25,checkout:22,choic:[6,10,19,28,33,36],choos:[6,22,23],chown:[7,9,35,38],chronolog:28,citi:23,classifi:28,clean:[24,37],clear:33,cli:30,client:19,clita:28,clock:21,clone:[6,8,9,10,19,22,25,27],close:4,cmd:[19,36,37],code:[3,14,18,24,25,27,29,33,36,37],codebas:16,codeberg:3,coffe:37,col:28,colleagu:20,collect:2,colon:28,colspan:28,column:28,com:[6,8,19,23,25,27,28,29,30,35,37,38],combin:7,come:[4,9,20,21,22,25,33,37],comfort:[11,28],comma:[20,29],command:[2,4,7,10,11,19,21,27,28,30,31,35,38,39],comment:[7,9,28,35,37,38],commit:[19,25,27,30],commodi:28,common:[11,27,31,33,35,38,39],commonli:28,commun:[7,9,18],compact:28,compani:33,compar:[7,9,11,19,37],compat:21,compil:[7,24,30],complet:[4,11,22,29,35,37,38],compon:[7,26,36],compromis:33,comput:33,con:28,conatin:19,concern:22,conclus:32,concret:[20,28],condit:28,conf:[2,7,9,28,35,38],config:[0,20,23,28,30,35,36,37,38],configur:[5,7,8,9,11,16,18,19,20,24,28,30,33,35],conflict:36,confnam:11,confus:28,connect:[4,9,18,31],consectetur:28,consequ:[14,22],consequat:28,consetetur:28,consid:6,consist:19,construct:[23,28],consult:27,contact:14,contain:[13,14,17,27,28,31,36,37],content:[5,17,24,31,32,33,36],context:[26,28,37],continu:28,contribut:[1,2,19,24,25,31],contributor:28,control:[7,11,33],convent:22,convert:28,cooki:[23,31,33],copi:[8,10,22,28],copyright:28,core:[2,18],corner:22,correct:[9,14],correctli:9,correspond:11,could:[11,14,23,28],count:28,countri:[14,23],courgett:29,cours:28,coverag:27,crawler:28,creat:[5,6,7,8,9,11,14,18,19,21,27,28,29,30,36],creation:[2,28],creativ:20,cross:28,crossref:3,cryptic:27,cryptographi:14,cspan:28,css:[13,26],css_depend:26,csv:[4,29],csv_tabl:28,ctan:28,cthulhu:34,ctrl:[10,19,25],ctx:26,cup:37,currenc:3,currency_convert:3,current:[13,14,18,22,23,30,34],custom:[14,22,28,34],customiz:[0,16],customlog:7,cycl:[19,25],daemon:[35,38],dai:[25,29],daili:19,dailymot:3,dalf:1,danger:28,data:[5,23,28,33],databas:[20,28],date:[0,23],datetim:[23,28],daunt:16,dbpedia:29,ddd:3,ddg:[3,34],ddi:3,de_d:14,deactiv:[14,35,38],debian:[2,5,9,11,15,28],debug:[10,14,19,24,25,35,36,38],decid:[16,25],decim:23,dedic:[11,19,28],deeper:[25,28],deezer:3,def:[18,23,26,28],defaul:28,default_local:[0,14],default_on:26,default_them:[0,14],defin:[14,26,28],definit:3,dejavu:2,delet:[14,29,30],delimit:28,demon:10,demonstr:9,deni:7,depend:[4,5,7,9,13,16,18,19,21,23,25,27,28,29],deploi:[8,14,25,28],describ:[4,6,7,11,14,19,25,28,39],descript:[13,22,26,28,35,38],deserv:22,design:[18,28],desir:[23,27],desktop:19,detail:[7,14,18,28],detect:14,deutsch:[0,14],dev:[7,9,22,25,28],develop:[14,16,17,20,21,22,25,28,31,36],deviantart:3,dfrac:28,diam:28,dict:[23,28],dictzon:3,didn:14,diff:28,differ:[7,9,11,19,21,22,23,28,37],digg:3,digit:31,digraph:28,dir:[35,38],direct:[7,24,28,35,38],directli:[9,14,37],directori:[3,7,8,11],disabl:[3,5,10,13,14,19,25,26,28,29,36,37],disabled_engin:29,disabled_plugin:29,disadvantag:28,discoveri:[18,20],discret:36,displai:[2,8,13,14,23],display_error_messag:[14,23,28],displaystyl:28,dispos:36,disrespect:22,dist:[22,25],distinguish:28,distribut:[7,9,11,19,20,28,35,38],distributor:5,dive:33,divid:19,dnf:[2,7,9,28],doai_rewrit:29,doc:[3,5,7,11,19,24,28,37],docker:[5,6,25,31],dockerfil:8,docs_url:25,doctest:28,doctre:28,docuemt:2,document:[7,11,18,20,25,28,31,37],documentroot:7,docutil:28,doe:[7,11,16,18,19,23,25,28,29,32],doesn:14,doi:13,dolor:28,domain:28,domin:22,don:[7,21,25,28,31],done:[7,9,25,28,36,37],dontlog:7,dot:2,doubl:28,download:[6,19,25,28,35,38],drop:21,dry:8,dsitro:19,duckduckgo:[3,29,34],duckduckgo_definit:3,duckduckgo_imag:3,duden:3,due:[35,38],duo:28,duref:28,dvisvgm:2,e0b3:19,e97:19,each:[19,28,29,37],easi:[19,31],easier:22,easili:22,echo:[35,37,38],ecosystem:28,edit:[10,11,16,19,22,25,28,33,38],effect:[6,22,28],egg_info:25,eirmod:28,either:27,element:28,elimin:27,elit:28,elitr:28,els:37,emac:28,email:14,emb:[5,28],embed:[0,8,28],emperor:11,emphasi:28,empti:[7,28,29],en_u:[14,23],enabl:[0,7,9,10,11,20,22,25,26,27,29,36],enabled_engin:29,enabled_plugin:29,encapsul:19,enclos:28,encod:28,encourag:28,encrypt:31,end:[21,28,37],endfor:28,engin:[0,5,16,17,22,24,27,28,29,31,33,34,35,38],english:[0,14],enim:28,enough:[6,7,9,30],enpoint:29,ensur:22,enter:[10,21],entri:[8,24,36,37],env:[7,19,25,27,36,37],environ:[8,9,10,19,24,31,35,37,38,39],eof:[35,37,38],eol:37,eos:28,equat:[2,24],erat:28,erowid:3,error:[3,14,23,27,28,37,39],error_log:9,escap:28,especi:28,esperanto:0,est:28,etc:[4,7,8,9,10,11,19,22,35],eth0:[19,37],eto:3,etool:3,etymonlin:3,evalu:28,even:[11,19,37],event:11,ever:37,everi:[14,19,22,23,33,37],everyon:[18,33],everyth:[10,28,33],exactli:[4,28],exampl:[0,4,7,9,11,18,19,20,22,24,27,29,32,33,36,37],exceed:4,excel:[6,9],except:[7,21,22,28,36],exchang:33,execstart:[35,38],execut:[14,30],exercis:19,exercit:28,exist:[7,8,9,16,19,21,22,25],exit:[10,19],expand:28,expect:[20,22],experi:11,experienc:[16,19],experiment:36,explain:22,explanatori:[35,37,38,39],explicit:28,expos:20,ext:2,extend:[18,22,26,28],extens:[2,28],extern:[4,12,23,24,28,29,33],extra:[2,7],extract:2,extrem:16,eye:[19,28],face:28,fact:17,fail:[19,27],fals:[0,14,26,27,28,29,38],familiar:[11,25],fanci:22,faq:28,favorit:[22,25],fd00:7,fd42:19,fdroid:3,fe80:7,fea5:19,featur:[12,16,20,22,28,33],fedora31:37,fedora:[2,7,9,11,28,37],fedoraproject:37,feedback:[22,28],feel:[26,28],few:[14,22,23],fieldnam:28,figur:[7,9,24],file:[2,3,7,8,9,10,11,14,16,18,19,20,21,22,25,26,27,30,35,37,38],file_filt:30,filenam:23,files:23,fill:28,filter:[0,4,29],filtron:[1,5,6,7,9,19,31,36,37],filtron_api:[35,36,37],filtron_listen:[35,36,37],filtron_target:[35,36],find:[1,4,8,18,20],fine:[6,10],finish:[30,37],firewal:4,first:[7,9,10,16,18,19,21,25,27,28,33],fit:[11,20,26],fix:[22,25,27],fixm:7,flask:[26,28],flexibl:[28,36],flickr:3,flickr_noapi:3,fmt:37,folder:[7,9,10,11,19,22,23,25,27,28,30,36,37],follow:[4,6,7,9,11,12,22,23,25,27,28,30],followsymlink:7,font:2,fontsrecommend:2,footer:22,force_timeout:[36,37],fork:[6,19,22,36],form:[0,28,33],format:[4,23,27,28,29],forward:[4,9,33],found:[2,16,17,25,26],foundat:[16,18,20,21],fr_fr:14,fraction:28,framalibr:3,free:[3,26,31],fresh:7,friend:[20,25,33],frinkiac:3,frk:3,frl:3,from:[1,2,4,6,7,8,9,10,11,13,14,16,18,19,20,21,22,25,28,30,31,33,35,36,37,38],front:28,fsd:3,full:[14,22,28,35,38],fulli:[7,9,16],fun:17,fund:[18,20],further:[25,27,36],furthermor:[23,27,29,33],futur:37,gain:33,gate:25,geektim:3,gen:3,gener:[0,3,7,8,14,18,22,24,25,33],genesi:3,geniu:3,gentlemen:17,gentoo:3,geojson:23,german:0,get:[2,4,5,6,7,9,13,19,22,23,25,27,28,29,30,31,35,37,38],get_engines_stat:28,gigablast:3,git:[2,6,7,8,9,10,14,15,19,22,23,25,27,28,35,36,38,39],git_branch:[19,25,36],git_url:[19,25],github:[3,6,8,18,19,21,25,27,28,29,35,37,38],gitlab:3,gitmoji:22,give:[7,25,27],given:28,global:5,global_ip:37,glyph:28,gnu:25,go1:[35,38],go_env:[35,38],goe:25,goi:[0,3],going:[4,18,20,28,33],gon:3,good:[6,7,9,19,27,37],googl:[0,3,29,35,38],google_imag:3,google_new:3,google_video:3,gopath:[35,38],gos:3,got:19,gov:3,gpa:3,gpm:3,gps:3,grant:7,graphic:16,graphviz:2,grep:37,group:[28,33,35,38],grow:16,grumpi:28,grunt:27,gubergren:28,guest:37,guid:[9,16,25,27,28],guidelin:20,guilabel:28,habr:3,habrahabr:3,hack:[16,18,20,21,22],hackabl:24,hackerspac:34,handl:[14,19,28,33,37],handler:7,happi:[16,18,20,21,22],hard:[16,28],harden:[35,38],has:[12,18,20,22,23,27,28,33],hat:28,have:[2,6,7,8,9,10,14,16,19,21,22,23,25,28,33,36,37],hbar:28,header:[4,7,9,23,28],headers_modul:7,heard:28,hebrew:14,height:28,help:[8,13,22,25,27,35,36,37,38,39],helper:28,her:20,here:[2,7,9,11,14,18,19,22,26,28,36],herein:1,heterogen:19,hidden:[0,20,33],him:20,hint:[1,28,36],histor:[7,21],hit:10,home:[19,30,35,36,38],hoogl:3,host:[2,4,7,9,16,19,20,25,30,31,37],hostnam:[9,37],hotkei:[0,13],hous:23,house_numb:23,how:[1,2,5,6,7,9,11,14,17,19,24,25,28,31,32,35,38],howev:[18,23,29],html:[0,2,7,22,23,25,28,38],html_math_render:2,http:[0,2,4,5,6,8,12,13,14,18,19,22,23,25,27,28,30,31,35,36,37,38],http_connect:[4,9],http_host:[4,9],httpd:7,https_rewrit:29,huge:28,idea:27,identifi:[36,37],ifmodul:7,illustr:6,imag:[0,2,3,5,12,14,19,24,25,29,34,37,38],image_proxi:[7,9,14,29,38],imagemagick:[2,28],img_src:23,imgmath:2,imgmath_font_s:2,imgmath_image_format:2,imgmath_latex:2,immedi:13,implement:[9,11,16,21,22,23,26,37],impli:20,improv:25,in_contain:37,ina:3,inbound:14,includ:[7,9,19,20,25,28,37],inclus:34,incom:7,increment:25,indent:[28,37],index:7,infinit:13,infinite_scrol:[13,29],info:[14,19,25,37,38],info_msg:37,inform:[12,13,14,20,22,23],infrastructur:[1,11],infratructur:4,inherit:28,ini:[7,8,9,11,19],init:[18,19,24,37],initi:[19,30,37],inlin:24,input:[0,20,28],insert:[28,30],insid:[8,19,23,37],insight:33,inspect:[19,35,36,38],instal:[1,2,4,5,11,12,19,21,22,25,27,28,30,31,36],instanc:[0,1,5,6,7,9,11,14,16,18,19,20,25,29,30,31,32,35,36,37,38,39],instance_nam:[0,8],instead:[16,20,21,27,28],instruct:28,insuffici:18,integr:31,intend:8,intent:22,interact:[10,35,36,38],interfac:[7,14,17,31],interfer:22,intermedi:25,intern:27,internet:[6,18,31],interpret:[11,28],intersphinx_map:28,interv:4,intranet:[6,7,9],intro:[7,9],introduc:[16,17,18,20,28,31],introduct:[25,27],intuit:28,inv:28,inventori:28,investig:21,invidi:3,invidunt:28,ipsum:28,ipv4:[9,37],ipv6:[9,19,37],isn:[7,9],iso:[14,23],isol:[4,19],issu:[11,18,20,21],ital:28,italiano:14,item:28,its:[2,6,16,22,25,28,29,33,37],itself:[11,22],japanes:14,javascript:[13,24],jinja:28,jinja_context:28,job:36,join:28,js_depend:26,json:[4,29,35],json_engin:3,juli:37,jump:[19,25],june:37,just:[0,4,9,19,25,28,33,37],justo:28,kasd:28,kbd:28,keep:[7,9,19,25],kei:[8,12,13,14,18,23,30,38],kickass:3,kind:[7,28,33],kiss_:28,know:[7,11,18,19,20,28,33,37],knowledg:28,known:25,kvch:[16,18,20,21],l19:19,label:28,labor:28,labori:28,lack:22,lang:[0,29,30],languag:[0,3,4,14,23,25,28,29,30,34],language_support:[23,28],laptop:33,larg:[11,35,37,38,39],last:28,lat:23,later:[36,37],latest:30,latex:2,latexextra:2,latitud:23,latter:[25,28],layout:5,lc_messag:30,learn:28,least:[19,21],leav:14,leech:23,leecher:23,left:[10,28],legaci:29,length:22,less:[7,9,11,16,27,28,33],let:[19,28,33,36],level:[22,28],lib:[7,11,35,38],libapache2:7,librari:3,librsvg2:2,librsvg:2,licens:[36,37],light:9,like:[0,2,10,13,14,20,22,23,25,26,28,36],like_hotkei:29,limit:[4,7,17,18,28,31],line:[7,9,18,22,25,37],link:[11,13,14,19,24],lint:[5,25],linux:[0,2,3,7,9,11,17,20,28,31,35,36,37,38],linuxcontain:37,linuxcontainers_org_nam:37,linuxdoc:28,list:[7,18,20,23,24,25,26,29,34],listen:[4,7,9,35,36,37,38],liter:24,literalinclud:28,live:[19,24,28,37],load:[13,14,37],loadmodul:7,lobst:3,local:[0,4,8,9,14,19,20,21,23,25,26,27,30,35,36,37,38],local_imag:37,localhost:[7,8,9],locat:[4,7,9,11,14,28],log:[4,5,14,19,27,33,35,36,38],logic:22,logicodev:29,login:10,lon:23,longer:25,longitud:23,look:[7,10,25],lorem:28,loremlorem:28,lot:19,low:[7,9],lxc:[19,31,36],lxc_host_prefix:37,lxc_repo_root:37,lxc_set_suite_env:37,lxc_suit:[19,37],lxc_suite_info:37,lxc_suite_instal:37,lxc_suite_install_info:37,lxc_suite_nam:37,lxd:[19,37],made:[14,19],magna:28,magnetlink:23,magyar:14,mai:[14,19,28,35,38],main:[7,13,25,30,36],mainlin:9,maintain:[1,11,19,28,36],mainten:[4,6,19,35,38,39],make:[2,8,16,19,20,21,22,24,28,33,37],makefil:[19,22,24,31,36,37],man:28,manag:[4,15,16,25,27,35,38],mandatori:6,mani:4,manipul:[16,37],manual:[14,25,28],manuali:28,map:[0,3,28],mark:28,markup:24,mass:22,master:[15,22,25,28,36],math:[2,24],mathemat:28,mathrm:28,matter:[19,23,33],max:[4,23],maxim:22,maximum:[22,23],mean:[19,22,28,33],meaning:28,meant:28,media:[0,3,23],mediawiki:3,memori:14,mention:21,menuselect:28,merg:19,messag:[4,14,22,23,25,27,28,30],messagespo:30,meta:28,metadata:28,metag:3,metasearch:[23,31,35,38],method:[0,6,11,23,28],microsoft:3,microsoft_academ:3,middlewar:4,might:[11,19,20,22,25,28,29,33,36,37],migrat:21,min:23,minim:28,mirror:3,misbehav:22,miss:[4,28,37,39],mix:19,mixcloud:3,mjk:3,mkdir:[7,9,35,38],mod:[7,28],mod_autoindex:7,mod_head:7,mod_proxi:7,mod_proxy_http:7,mod_proxy_uwsgi:7,mod_uwsgi:7,mod_wsgi:7,mode:[11,14,28,36,37],modern:7,modifi:[8,11,14,28,34],modul:[7,26,28],mojeek:3,monet:33,monitor:[11,19],mono:2,month:[0,29],more:[4,12,14,16,18,22,25,28,29,31,33,36,37],morecol:28,morerow:28,morti:[1,6,7,9,12,19,31,36,37],morty_kei:8,morty_listen:[36,37,38],morty_url:8,most:[2,7,14,21,33,35,36,38,39],mostli:[11,28],motiv:17,move:[18,22],movi:3,much:[22,28],multi:[35,38],multibl:23,multipl:[13,14,28,33],music:3,must:[9,14,21,22,23,27,28],my_arg:28,my_funct:28,my_other_arg:28,mydomain:36,mymemori:3,myproject:27,name:[0,3,4,7,9,10,13,14,19,20,23,25,26,30,37],name_of_python_fil:26,naver:3,navig:13,necessari:[10,20],nederland:14,need:[4,6,7,8,9,10,14,18,19,22,25,28,33,35,36,37,38],neither:31,net:31,network:[14,35,38],never:[19,25],nevertheless:[7,9],newcom:16,next:[7,9,13,17,28],nginx:[1,4,5,6,14,19,31,35,37,38,39],nightmar:28,nil:37,nisi:28,nlnet:[16,18,20,21],node:[25,27],nodej:27,non:18,none:[7,23,25,28,29],nonewprivileg:[35,38],nonumi:28,nor:31,normal:[7,19,23,28,36],nostrud:28,note:[7,9,22,29],notic:19,now:[7,9,10,19,20,21,26],npm:[3,25,27],number:[4,14,23,28,29,37],number_of_result:23,numer:28,numref:28,nvr:3,nyaa:3,oad:3,oap:3,obj:28,object:[23,26,28],obtain:14,off:[7,9,22,35,37,38],offer:11,offlin:[3,17,20,23,28,31],often:[23,28,36],old:[7,8,19],on_result:26,onc:[19,37],one:[7,11,14,19,20,22,25,28,31,33,35,36,37,38],ones:[23,35,38],ongo:25,onli:[2,6,7,12,14,20,22,26,28,29,36,37],onlin:[18,28,31],open:[7,10,13,19,21,22,25,28,29,33,36,37],openairedataset:3,openairepubl:3,openrepo:3,openstreetmap:[0,3],oper:[21,28,33],option:[7,8,10,12,14,16,19,20,22,23,25,26,27,28,29,33,35,36,38],order:[7,22,27,28],org:[2,4,7,9,14,23,28,37],organ:31,orient:7,origin:[5,15,19,28],oscar:[0,14,29],osm:[0,3,23],other:[14,22,23,28,33],otherwis:23,our:[1,4,6,16,19,22,25,28,37],out:[7,9,18,19,22,25,28,35,37,38],outgo:14,outgoing_proxi:14,output:[2,20,28,29,35,37,38,39],outsid:19,outstand:28,over:[19,28,31,37],overlin:28,overlook:19,overview:[4,14,24,25,29,31,36],overwritten:23,own:[6,19,25,31,33],owner:25,packag:[2,4,5,7,9,11,19,25,27,28,35,38],pacman:[2,7,9,28],page:[3,7,9,13,14,16,20,22,23,24,28,29,33,34],pageno:[23,29],pagenumb:23,pair:18,palletsproject:28,param:[4,18,23,28],paramet:[23,24],paramt:23,parent:28,pars:29,parse_lin:18,part:[14,16,28,37],parti:33,partial:28,partli:23,pass:[7,9,18,29],past:0,patch:[22,28],path:[4,7,14,19,28,35,37,38],paywal:13,pdb:3,pdbe:3,pdf:2,peertub:3,peopl:[16,33],pep8:[22,25,27],pep8_check:25,pep:28,per:[11,22,23,28],perfect:19,perform:[13,18,23],phase:27,photon:3,phrase:28,piec:28,pip3:21,pip:30,pipe:18,piratebai:3,pix:29,place:[6,9,11,22,23,28,30,33],plai:3,plaintext:28,pleas:[21,22,27,28,29],plenti:22,plu:[7,9],plugin:[0,5,11,22,24,29,31],pocket:[7,9],point:[8,9,10,11,19,24,25,28,33],pointer:28,pointhi:29,polygon:28,popen:18,popular:28,port:[4,8,9,14,23,37],possibl:[8,12,13,14,18,19,20,28,29],post:[0,19,22,29],post_search:26,postcod:23,pot:30,pov:28,power:28,practic:22,pre_search:26,prefer:[6,16,20,28,29,33,34],prefix:34,preinstal:[4,19],prepar:[17,31],prerequisit:[19,28],present:[18,20],preserv:[22,28],press:[13,25],pretti:14,preview:23,previou:36,primari:37,primary_ip:[36,37],prime:24,primer:[24,31],principl:28,privaci:[6,7,9,19,24,28,32,35,38],privat:[17,18,31,32],privatedevic:[35,38],privatetmp:[35,38],pro:28,problem:4,procedur:[6,37],process:[2,4,18,19,20,25],processor:28,produc:28,product:[14,17,36],profil:[10,25,31,33,35,38],program:25,progress:[17,35,38],project:[19,24,25,28],promot:31,prompt:[19,36],proper:[33,35],properli:21,propos:18,protect:[1,5,7,9,19,22,31,32,35],protectsystem:[35,38],protocol:[8,9,19],provid:[20,22,23,28],proxi:[1,5,6,9,14,19,23,29,31,33,35,36,37,38],proxif:[7,9],proxifi:12,proxy_add_x_forwarded_for:[4,9],proxy_buff:9,proxy_http:7,proxy_http_modul:7,proxy_modul:7,proxy_pass:[4,9],proxy_set_head:[4,9],proxy_uwsgi_modul:7,proxypass:[7,35,38],proxypreservehost:7,psi:28,ptb:3,pub:3,public_host:35,public_url:[35,36,37],public_url_morti:[37,38],public_url_path_morti:36,publicli:18,publish:23,publishedd:23,pubm:3,pull:[8,15,18,22,28,30],purpos:[14,23,27],push:[22,25],pwd:[8,19],py3:25,pybabel:30,pybuild:24,pyclean:25,pyenv:[19,25],pygment:28,pylint:24,pylintrc:25,pypi:[25,28],python2:[11,21],python3:[11,21,27],python:[11,14,17,19,24,26,27,28,31],pythonpath:19,quadratur:31,qualiti:[2,25,28],queri:[13,18,20,23,29,33,34],question:[28,33],qui:28,quickstart:[22,24,25,31],quiet:25,quit:[7,19,22,25],qwant:3,qwer:34,qwi:3,qwn:3,qws:3,rais:18,random:[23,33],rang:[3,11,23,29],rangl:28,rate:4,rather:20,raw:28,rbg:3,reach:28,reactiv:14,read:[18,19,22,25,27,36],readability_:28,reader:[19,28],readi:19,readlin:18,readm:[4,7,11,12],real:[4,9],realli:6,reason:[7,16,21,25,28],rebuild:[22,25],rebum:28,recommend:[2,4,6,11,22,23,25,28,36],reconsid:22,record:28,reddit:3,redefin:23,redirect:13,reduc:22,ref:[35,38],refer:[1,28,33],referenc:28,refnam:28,regardless:33,regist:24,regular:18,reinstal:35,rel:[9,19,28,37],releas:[21,25,37],releng:37,reload:11,remark:19,rememb:[19,22],remote_addr:[4,9],remov:[11,13,19,33,35,36,37,38],renam:[8,29],render:2,replac:[7,9,10,16,19,26],repo:22,report:19,reposetori:19,repositori:[10,16,19,37],request:[5,7,9,14,18,20,22,24,26,28,33],request_timeout:14,request_uri:7,requesthead:7,requir:[2,7,13,21,22,23,24,25,26,27,28,29],requisit:25,reset:33,resourc:9,respect:[22,33,35,38],respons:14,rest:[20,24,31],restart:[5,8,9,10,11,12,15,19,35,38],restrict:20,restructuredtext:28,result:[1,2,5,6,7,9,13,14,18,24,28,29,31,33,38],result_proxi:[7,8,9,12,38],results_on_new_tab:29,retriev:30,return42:28,return_cod:18,rever:7,revers:[1,5,6,9,35,36,37,38],rewrit:[0,13],rfc:28,rhel:[2,7,9,11,28],rid:[25,37],right:[20,26,28,31],rightmost:28,rigth:28,road:23,roboag:4,robot:[25,27],robotframework:21,role:24,rolenam:28,roll:37,romanian:14,root:[7,9,19,25,37],rotat:28,round:22,rout:[5,7,9,28],row:28,rowspan:28,rspan:28,rss:[4,29],rst:[22,28],rst_titl:37,rubygem:3,rule:[4,22,35],run:[2,4,6,7,8,9,12,14,17,18,19,20,22,23,24,26,28,30,33,35,36,38,39],runtimeerror:18,russian:14,sadipsc:28,safe:[3,29],safe_search:0,safesearch:[28,29],same:[4,10,14,19,23,28],sampl:[5,28,35],san:2,sanctu:28,sanit:19,satisfi:27,save:7,sc2031:37,sc2034:[36,37],scalabl:28,scale:[19,28,37],scaleabl:28,scan:11,scc:3,scd:3,schedul:[18,21],scheme:[4,9],scholar:3,schroeding:28,scienc:3,scope:22,scratch:2,script:[1,4,5,7,9,19,27,35,36,37,38,39],script_nam:9,scroll:13,sdist:25,sea:28,search:[3,4,5,8,13,14,18,19,20,22,23,24,28,31,32,33],search_on_category_select:[13,29],search_path:23,search_str:23,searchcod:3,searchcode_cod:3,searchcode_doc:3,searx:[0,1,2,4,5,6,7,11,12,14,15,17,18,22,23,25,26,27,28,29,30,32,34,35,36,38],searx_internal_url:36,searx_settings_path:[10,19],searx_url:[25,36],searx_userag:14,sec:4,second:[10,14,28],secret:[14,20],secret_kei:14,section:[9,14,19,25,26,28],secur:31,sed:28,see:[2,4,7,8,9,11,12,14,18,19,20,22,27,28,29,31,34,35,37],seed:23,seeder:23,seedpeer:3,select:[13,25,28,33,34,37],selenium:27,self:[13,16,31,35,37,38,39],self_inform:29,semant:[3,22],send:[2,4,14,33],sens:28,sent:33,separ:[20,22,28,29,35,38],seri:25,serif:2,seriou:19,serv:[22,33,37],server:[4,5,6,8,14,19,27,37,38],server_nam:9,servic:[4,5,6,9,11,12,19,28,29,31,33,35,36,37,38],service_home_bas:36,service_us:[35,36,38,39],service_ussr:36,session:[10,27],set:[2,3,5,7,8,9,10,12,16,18,19,25,26,27,28,29,30,31,33,34,35,36,37,38],setenvif:7,sethandl:7,setup:[1,2,4,5,6,7,9,10,19,24,28,31,35,38],sever:19,seznam:3,share:[7,11,19,20,37],shell:[5,10,19,35,36,37,38],shellcheck:[2,28,36,37],ship:9,shortcut:[0,3,14,20,23,28],should:[6,7,9,14,16,19,21,22,28,30],show:[1,2,3,7,9,19,28,35,36,37,38],shown:[6,7,10,19,28],side:[6,28],sign:28,signal:19,signifi:28,similar:[11,28],simpl:[19,25,29,35,38],simplest:28,simpli:[4,19,22,25,29,35,36,38,39],simplifi:[4,25,35,38,39],sinc:[9,16,25,28],singl:[7,9,33],sit:28,site:[0,4,5,7,14,23,28,29,35,38],size:23,skeleton:18,skill:24,skip:27,slow:14,small:23,smylink:19,snap:[19,37],snapcraft:37,snippet:12,social:[0,3],sock:14,socket:[7,8,9],socks5:23,soft:24,softwar:[3,19,35,38],sold:33,solut:20,solv:[4,20],some:[1,6,7,14,19,20,22,25,28,35,36,37,38],someon:33,someth:[22,25],sometim:16,soundcloud:3,sourc:[10,14,19,21,24,25,28,30,33,35,37,38],source_fil:30,source_ip:14,source_lang:30,space:14,span:28,spars:28,spdx:[36,37],special:[6,11,23],specif:[11,14,23,37],specifi:[8,14,23,29],speu:3,sphinx:22,splinter:21,split:22,spoilt:6,sponsor:[16,18,20,21],src:[4,9,19],srv:7,ssl:[23,31],stabl:14,stack:[19,27,37],stackoverflow:3,stage:28,standalon:16,standard:[7,22,23,26,37],start:[1,4,7,9,10,11,17,22,23,25,31,35,37,38],startpag:[3,29],stash:[15,25],stat:28,statist:28,statu:[35,36,38],stdout:18,step:[1,5,6,17,19,22,31,39],stet:28,stone:20,stop:[4,7,9,10,11,19,25,35,38],store:[23,33],street:23,strict:20,string:[20,23,29,30],stroke:28,strong:28,structur:[22,24],stub:28,stuff:28,style:[24,29],sub:[22,28],subdir:9,subdirectori:9,subject:28,submit:22,subnet:7,subprocess:18,subrul:4,subscript:28,subsect:28,subshel:37,substitut:24,sudo:[2,6,7,9,11,15,19,27,28,35,36,37,38,39],suffix:[8,14],suggest:[1,26],suit:[17,36],suitabl:28,sup:28,superscript:28,supervisor:16,support:[2,3,5,9,14,17,20,22,23,28,29,31,33,35,37,38],sure:[8,10,19,21],surround:28,suspici:4,svg:2,svg_imag:28,symbol:[11,19],symlink:9,syntax:[29,31,32],syslog:[35,38],system:[10,11,19,20,21,22,25,28,35,36,38],systemctl:[7,9,11,15,19,39],systemd:[11,35,38],szn:3,tab:[24,29,37],tabl:[18,24],tailor:33,take:[11,14,16,22,30,37],taken:[28,36],takimata:28,tar:[25,35,38],target:[19,22,24,28,31,35,37,38],task:[6,10,19,28,37],tcp:8,tell:23,templat:[11,18,19,23,24],tempor:28,term:[7,28],termin:[10,19],test:[2,7,9,19,21,22,24,37],texliv:2,text:[0,23,28],textstyl:28,tfrac:28,than:[14,28,31],thei:[11,14,19,20,28,33],them:[14,19,25,26,28,36],theme:[14,24,25,29],themes_path:14,themselv:20,therefor:[6,28],theses:19,thi:[4,6,7,8,9,10,11,12,14,16,18,19,20,21,23,25,26,27,28,29,33,35,36,37,38,39],thing:28,think:[22,25,28],third:[28,33],those:[18,19,30,33],three:[22,26,28,33],through:[5,7,9,14,20,28,29,33],thu:[18,21,29,33],thumbnail:23,thumbnail_src:23,time:[4,14,19,21,22,23,28,29,33,37],time_rang:[0,29],time_range_support:[23,28],timeout:[3,14,23,28,36,38],timestamp:11,tip:[24,28],titl:23,todai:18,togeth:18,token:[18,20],tokyotoshokan:3,too:[4,14,28,33],tool:[1,2,6,16,22,28,30,31,37],top:28,tor:[3,31,33],torrentfil:23,torrentz:3,touch:[7,9,11,14,19],tpb:3,trace:27,track:[31,33],tracker:13,tracker_url_remov:29,trademark:28,traffic:[7,9],train:28,transform:28,transifex:[22,24],transifexrc:30,translat:[3,14,24,31],transpar:[19,37],travi:[21,27],tree:[19,25],troubleshoot:36,trust:[20,31,33],ttf:2,tupl:26,turn:[22,27],twice:10,twine:25,twitter:3,two:[11,22,28,29],txt:[21,25,28],type:[0,22,23,25,29,30,33,35,37,38],typic:[1,28],typo:28,ubu1604:37,ubu1804:37,ubu1910:37,ubu2004:37,ubuntu:[2,7,9,10,11,15,28,37],uds:7,ugli:[16,28],uid:19,ullamco:28,ultrasecretkei:14,unam:[10,37],uncom:14,uncommon:22,under:[19,20,23],understand:[16,28],unfortun:22,unicod:24,uninstal:[25,36],unit:[11,22,25,35,38],unit_test:[25,27],univers:10,unix:[7,9],unknown:[33,35,38],unless:20,unlik:33,unspecifi:23,unsplash:3,untouch:25,unwant:6,updat:[5,8,14,22,24,31,35,38],update_dev_packag:27,update_packag:15,upload:25,url:[0,7,8,9,12,13,14,19,22,23,25,33,36,37,38],urlencod:23,usag:[6,7,9,19,25,28,35,38],use:[2,4,6,7,9,12,14,18,19,20,22,23,25,27,28,31,32,35,36,37,38,39],used:[7,9,14,21,22,23,28,31,33,36],useful:[14,36],user:[4,5,7,9,11,13,14,19,20,22,23,28,31,33,36,39],useradd:[35,38],userag:4,useragent_suffix:14,uses:[14,23,28,33],using:[4,7,8,9,14,17,19,22,25,27,28,30,31],usr:[4,7,9,11,19,35,36,38],usual:[17,21,33],utf:[28,36,37],util:[1,2,4,6,7,9,12,19,25,31],uwsgi:[1,5,8,9,10,15,19,31],uwsgi_param:9,uwsgi_pass:9,uwsgisocket:7,valid:[23,27,29],valu:[0,8,9,18,23,28,29,36],variabl:[8,23,25,28,38],variant:28,variou:[22,26],vassal:11,vector:28,vendor:22,veniam:28,venv3:21,venv:27,verbos:[25,36],veri:36,verifi:23,vero:28,version:[13,21,28,35,38],via:[7,9,16,34],video:3,view:[24,33],viewbox:28,vim:[0,13,29],vim_hotkei:13,vimeo:3,virtual:[7,9],virtualenv:[10,19,21,25,27],virualenv:[10,25],visist:28,visit:[28,33],voat:3,volum:8,voluptua:28,vpn:33,vulner:33,wai:[11,18,22,23,28,33],wait:[14,18],want:[14,20,21,22,25,28,29,33,36,37],wantedbi:[35,38],warn:[2,7,9,28,37],watch:22,web:[4,14,16,19,23,25,35,37],webapp:[10,14,21,25,28],webcrawl:4,webserv:9,websit:0,weight:[14,28],weigth:[3,14],weird:22,welcom:[7,9],well:28,were:[18,20,21],werkzeug:25,wget:[35,38],what:[11,19,28,37],whatev:[25,37],when:[2,7,13,14,21,26,27,28,33],where:[4,14,19,28],whether:[27,33],which:[1,4,7,9,11,14,16,18,19,20,22,23,25,28,29,31,33,35,38],whl:25,who:[16,18,33],whole:[7,26],why:[28,31,32],wide:22,widen:28,width:28,wiki:[0,3,9,18,20,28,37],wikibook:3,wikidata:3,wikinew:3,wikipedia:[3,14,29,34],wikiquot:3,wikisourc:3,wikivers:3,wikivoyag:3,wiktionari:3,wish:14,within:[25,28],without:[2,8,14,23,31,33],wolframalpha:3,wolframalpha_noapi:3,won:[14,21],word:[26,28,29],work:[9,10,14,17,22,23,25,27,33],workingdirectori:[35,38],world:[22,28,33],worri:21,worth:[11,33],would:[19,20],wrap:[9,17],written:19,wrong:25,wsgi:9,www1x:3,www:[2,7,28,30,37],wysiwyg:22,xdg:25,xetex:2,xml:28,xmln:28,xpath:3,xxxx:28,xzf:[35,38],yahoo:3,yahoo_new:3,yandex:3,year:[21,29],yes:[35,38],yet:[22,23,25],ygg:3,yggtorrent:3,yhn:3,yml:[3,5,7,8,9,10,12,16,18,19,25,26,27,29,31,38],you:[1,2,4,6,7,8,9,10,11,14,17,18,19,22,25,27,28,29,31,33,34,35,36,37,38,39],your:[2,4,6,7,8,9,10,11,12,13,14,16,17,21,22,24,25,28,31,35,36,37,38],your_morty_proxy_kei:12,yourself:22,youtub:3,youtube_noapi:3,yyyi:28,zero:18,zzzz:28},titles:["Administration API","Architecture","Buildhosts","Engines","How to protect an instance","Administrator documentation","Installation","Install with apache","Docker installation","Install with nginx","Step by step installation","uwsgi","How to setup result proxy","Plugins builtin","<code class=\"docutils literal notranslate\"><span class=\"pre\">settings.yml</span></code>","How to update","Searx admin interface","Blog","Preparation for offline engines","Developing in Linux containers [202006]","Limit access to your searx engines","Introducing Python 3 support","How to contribute","Engine overview","Developer documentation","Makefile Targets","Plugins","Development Quickstart","reST primer","Search API","Translation","Welcome to searx","User documentation","Why use a private instance?","Search syntax","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/filtron.sh</span></code>","Tooling box <code class=\"docutils literal notranslate\"><span class=\"pre\">utils/*</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/lxc.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/morty.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/searx.sh</span></code>"],titleterms:{"abstract":19,"default":[3,13,23],"function":19,"public":[7,8,9,33],"return":23,The:[7,9,19,22],about:[28,33],access:20,acknowledg:[16,18,20,21],activ:25,admin:16,administr:[0,5],admonit:28,aka:28,alltogeth:11,anchor:28,apach:7,api:[0,29],architectur:1,archlinux:19,argument:23,articl:[2,28],ascii:28,audienc:19,bar:0,basic:28,bibliograph:28,block:28,blog:17,box:[4,36],bug:21,build:[2,8,22,25,27,28],buildhost:[2,37],built:[3,13],builtin:13,bullet:28,check:10,clean:[22,25],code:[22,23,28],command:[8,36,37],commit:22,common:36,compil:27,conclus:33,configur:[0,3,4,10,13,23],consequ:33,contain:19,content:[2,4,7,8,9,10,11,14,19,22,23,25,28],contribut:22,creat:[10,22,35,38],csv:28,data:0,debian:7,debug:27,definit:28,depend:10,deploi:22,design:22,develop:[18,19,24,27],direct:22,disabl:[7,9],distributor:11,doc:[2,22,25],docker:8,document:[5,22,24,32],doe:33,dot:28,drop:25,emb:0,engin:[3,14,18,19,20,23],entri:26,environ:[25,27,28,36],equat:28,exampl:[23,26,28,34],ext:28,extern:26,extlink:28,fact:21,featur:31,field:28,figur:28,file:[23,28],filtron:[4,35],first:6,flat:28,foo:28,fork:25,found:21,fulli:19,fun:21,further:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],gate:28,gener:[23,28],gentlemen:19,get:0,github:22,global:14,good:22,graphviz:28,grid:28,hackabl:22,head:28,hello:28,highlight:28,hlist:28,hook:26,horizont:28,how:[4,12,15,21,22,27,33],http:[7,9],hyperlink:28,imag:[8,23,28],init:30,inlin:28,instal:[6,7,8,9,10,16,35,37,38,39],instanc:[4,8,33],interfac:16,internet:[7,9],intersphinx:28,introduc:21,javascript:27,kernel:28,kiss:28,latex:28,layout:7,limit:20,line:[8,28],link:28,lint:2,linux:19,list:28,liter:28,live:[22,25],log:[7,9],lxc:37,make:[23,25,27],makefil:[25,27],map:23,markup:28,math:28,matter:28,morti:38,motiv:19,name:28,need:2,nest:28,next:[18,20],nginx:9,note:28,offlin:18,ordinari:28,origin:11,overrid:23,overview:[23,35,37,38,39],packag:10,page:25,paragraph:28,paramet:29,pars:23,pass:23,plugin:[13,26],point:26,post:26,pre:26,prepar:18,prime:22,primer:28,privaci:[22,33],privat:[20,33],process:28,product:19,progress:18,project:30,protect:[4,33],proxi:[7,12],pybuild:25,pyenv:27,pylint:25,python:[21,25],quickstart:27,quot:28,read:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],readabl:28,ref:28,regist:26,render:28,request:[4,23],requir:30,respons:0,rest:[22,28],restart:7,result:[12,23,26],revers:7,role:28,rout:4,run:[21,25,27,37],sampl:[0,4],script:[2,6],search:[0,26,29,34],searx:[8,9,10,16,19,20,21,31,33,37,39],see:33,server:[7,9],servic:7,set:[14,23],setup:[12,25,27,36,37],shell:2,sidebar:28,simpl:28,site:9,skill:28,smart:28,soft:28,some:2,sourc:[22,27],space:28,specif:28,sphinx:[2,28],start:19,step:[10,18,20],structur:28,style:27,substitut:28,suit:[19,37],support:[7,21],svg:28,syntax:[28,34],tab:28,tabl:28,target:[25,27],templat:28,test:[25,27],theme:27,thi:2,through:4,time:[3,13],tip:27,titl:28,tool:[4,36],torrent:23,transifex:30,translat:[22,30],truth:28,unicod:28,unit:27,updat:[6,15,30],upgrad:21,upstream:25,url:28,use:33,user:[10,32,35,38],using:[21,33],usual:19,util:[35,36,37,38,39],uwsgi:[7,11],video:23,view:28,welcom:31,what:33,why:33,work:[2,19],wrap:19,yml:[14,23],you:21,your:[19,20,26,27]}})
1+Search.setIndex({docnames:["admin/api","admin/architecture","admin/buildhosts","admin/engines","admin/filtron","admin/index","admin/installation","admin/installation-apache","admin/installation-docker","admin/installation-nginx","admin/installation-searx","admin/installation-uwsgi","admin/morty","admin/plugins","admin/settings","admin/update-searx","blog/admin","blog/index","blog/intro-offline","blog/lxcdev-202006","blog/private-engines","blog/python3","dev/contribution_guide","dev/engine_overview","dev/index","dev/makefile","dev/plugins","dev/quickstart","dev/reST","dev/search_api","dev/translation","index","user/index","user/own-instance","user/search_syntax","utils/filtron.sh","utils/index","utils/lxc.sh","utils/morty.sh","utils/searx.sh"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["admin/api.rst","admin/architecture.rst","admin/buildhosts.rst","admin/engines.rst","admin/filtron.rst","admin/index.rst","admin/installation.rst","admin/installation-apache.rst","admin/installation-docker.rst","admin/installation-nginx.rst","admin/installation-searx.rst","admin/installation-uwsgi.rst","admin/morty.rst","admin/plugins.rst","admin/settings.rst","admin/update-searx.rst","blog/admin.rst","blog/index.rst","blog/intro-offline.rst","blog/lxcdev-202006.rst","blog/private-engines.rst","blog/python3.rst","dev/contribution_guide.rst","dev/engine_overview.rst","dev/index.rst","dev/makefile.rst","dev/plugins.rst","dev/quickstart.rst","dev/reST.rst","dev/search_api.rst","dev/translation.rst","index.rst","user/index.rst","user/own-instance.rst","user/search_syntax.rst","utils/filtron.sh.rst","utils/index.rst","utils/lxc.sh.rst","utils/morty.sh.rst","utils/searx.sh.rst"],objects:{},objnames:{},objtypes:{},terms:{"000":7,"0pointer":11,"0xa9":28,"115":21,"120":22,"127":[4,7,9,10,11,12,14,19,25,35,36,38,39],"135":28,"140":37,"147":37,"156":19,"15px":28,"168":7,"1700":18,"174":19,"1756":[25,28],"180":28,"1803":19,"1823":20,"184":19,"192":7,"200":[10,19],"2000":28,"200331":37,"2017":[16,21],"2019":18,"2020":[20,37],"202006":[17,31],"2021":37,"2023":37,"2024":37,"2030":37,"2122":28,"216":19,"246":37,"296":37,"3000":[7,9,12,19,36,37,38],"370":28,"3eff":19,"400":28,"4004":[4,7,9,19,35,36,37],"4005":[35,36,37],"40px":28,"429":19,"500":28,"525":28,"573b":19,"585":28,"59faeb1cbe6d7b487a28c7e5f49929e4":[],"666":11,"700":28,"70px":28,"8080":[8,14,19,22,37],"822":28,"833067":11,"8888":[4,7,9,10,11,14,19,25,35,36,39],"9b65":19,"\u65e5\u672c\u8a9e":14,"abstract":17,"boolean":[23,28],"break":[22,28],"byte":23,"case":[7,9,14,19,20,27,33,35,38,39],"class":7,"default":[4,7,8,9,11,12,14,21,22,25,26,28,29,31,33,34,35,36,37,38,39],"espa\u00f1ol":14,"export":[8,9,10,19,25,35,37,38],"fran\u00e7ai":14,"function":[18,23,26,28,37],"import":[9,18,28],"int":[4,23,28],"long":33,"new":[7,8,9,10,11,16,18,20,22,25,26,27,29,30,38],"null":[7,9,22],"public":[1,5,6,13,28,36,37],"return":[13,14,18,24,26,28,33],"schr\u00f6dinger":28,"short":27,"static":[2,4,9,26],"switch":[7,22],"t\u00fcrk\u00e7e":14,"true":[0,4,7,9,10,11,14,18,23,26,27,28,29,35,38],"try":[10,25,27,33],"var":7,"while":[11,18,19,25,28],And:[7,19,26,28],But:[16,21,23,33,37],DNS:[36,37],For:[2,4,7,8,9,10,11,19,20,22,25,27,28,29],IPs:[4,36],Not:28,One:[11,16],That:28,The:[0,2,5,6,8,11,14,20,23,25,28,29,33,35,36,37,38,39],Then:[18,21,27,30],There:[7,11,22,28],These:[23,28],USE:7,Use:[4,7,9],Used:[7,14],Uses:14,With:[7,19,25,28,37],__dict__:28,__init__:26,__name__:28,_anchor:28,_chapter:28,_doc:28,_dot:28,_rest:28,_section:28,_sphinx:28,_subsect:28,_svg:28,a2disconf:7,a2dismod:7,a2dissit:7,a2enconf:7,a2enmod:7,a2ensit:7,abbrev:34,abl:[2,14,18,22,23,28],about:[1,19,20,22,25,31,37],abov:[7,10,19,22,28,29,37],absenc:28,abus:[4,33],accept:[4,10,18,34],access:[4,7,13,16,17,18,19,28,31,33],access_log:9,accord:[8,11],account:[7,9,19,30,35,36,38,39],accusam:28,acknowledg:17,across:14,act:[12,16],action:[0,4,11],activ:[7,9,10,11,12,14,19,21,22,27,29,35,38,39],adapt:23,add:[6,7,9,11,12,20,22,25,26,28,34,35,36,38,39],added:[11,19,20,25,26],adding:[18,26,28,36],addit:[2,23,25,27,28],addition:[31,33],address:[12,14,23,33,36],adipisici:28,adjust:25,admin:[14,17,19,20,28,31,36,38],administr:[16,18,20,29,31,33],admonit:24,adopt:22,adorn:28,ads:33,advantag:[16,28],advertis:33,advis:[4,7,9],af2cae6:28,affect:16,after:[10,21,26,27,28,30,35,38],again:25,agent:[4,10,13,14,23],aggreg:[4,31,33],agpl:[36,37],aim:[16,25,28],aka:25,alexandr:[10,39],alia:9,align:28,aliquid:28,aliquyam:28,all:[0,6,7,12,19,21,22,23,25,26,28,29,35,36,37,38,39],allow:[7,10,14,28,34],allowoverrid:7,alltogeth:5,along:4,alreadi:[7,9,19,22,27],also:[2,7,8,10,11,19,22,25,28,33,34,36],alt:28,alter:22,altern:[6,9,27,28,37],alwai:[8,9,19,23,27,33,35,38],amd64:[35,38],amet:28,among:[22,33],amsmath:28,analog:19,analysi:2,ancel:28,anchor:24,ani:[2,6,7,11,25,28,29,31,36],annoi:28,anonym:[31,33],anoth:[11,14,16,19,23,28,37],answer:[14,28,33],anymor:7,anyon:31,anyth:[14,21,33],anywai:[25,28],apach:[1,4,5,6,11,14,31,35,36,37,38,39],apache2:7,apache2ctl:7,api:[5,14,20,23,24,30,31,35],api_kei:[14,23],apikei:14,app:[7,9,11,19,28,35,38,39],appear:[27,28],append:18,appli:[14,15,22],applic:[4,9,11,14,16,19,39],approach:11,april:37,apt:[2,7,9,10,27,28],arbitrari:[18,23],arch:[0,2,7,9,10,11,20,28],architectur:[4,5,6,7,9,19,31,35,38,39],archlinux:[11,20,37],argument:[12,13,28],arrai:23,arrow:28,art:[28,29],articl:24,asciimoo:[30,35,38],ascrib:28,aspect:[19,22],assert:22,assign:23,assum:[10,28],asterisk:28,attach:26,attend:19,attent:28,attribut:28,audienc:28,author:[22,28],auto:[19,28,30,37],autobuild:25,autocomplet:[0,8,29],autodoc:28,autoindex:7,autoindex_modul:7,automat:[11,13,28],avail:[7,9,11,13,14,18,22,27,29,33,35,38,39],avoid:[4,6,13,14],awar:[7,28,36],babel:[2,10],back:19,backquot:28,backslash:28,backup:36,balanc:25,ban:33,bang:14,bar:[5,28,35,38],barrier:16,base:[2,8,10,14,18,19,23,25,29,37],base_url:[8,9,14,23],baseprofil:28,bash:[10,19,28,35,36,37,38],basic:[24,37],batch:36,baz:28,becaus:[16,20,22,23,27,30,33],becom:[19,28],been:[18,19,22],befor:[6,10,11,19,21,22,25,26,27,28,33,36,37],beginn:9,behavior:28,behaviour:[11,22,26],being:[4,14,16,21,31],below:[4,6,10,11,14,22,27,28,30],benefit:20,besid:33,best:[2,25,28,33,36],better:[2,7,9,23,25,33],between:[4,23,28],big:28,bigger:14,biggest:16,bin:[2,10,11,21,25,27,35,38],binari:[35,38],bind:8,bind_address:8,bing:14,bit:[11,28],bitbucket:0,black:28,blank:[14,28],block:[4,14,24],blocker:19,blog:[11,19,28,31],bodi:[10,22,28],boilerpl:[10,19,25],bold:28,boldfac:28,born:22,bot:19,both:[11,20,21,22,29,33],botlimit:4,bottom:[13,26],boundingbox:23,box:[1,6,31,37],branch:[22,25,36],brand:[25,36],bring:[25,28],broken:28,browser:[10,14,16,19,21,22,25,33,37],bug:[11,17,25,27],buggi:11,bugreport:[11,22],build:[1,5,6,10,19,24,37],buildenv:25,builder:28,buildhost:[5,19,25,31,36,39],built:[22,23,27,28],builtin:[5,26,31],bundl:10,calcul:9,call:[16,19,20,25,30,37],callback:26,can:[0,1,2,4,6,7,8,9,10,11,12,14,16,18,19,20,21,22,23,25,26,27,28,31,33,35,37,38,39],cancel:28,cannot:[2,28,33,35,38],capabl:[16,22],caplabl:18,captcha:33,caption:28,cardin:22,care:[14,28,36,37],carv:20,cat:[35,37,38],catcher:28,categori:[0,3,13,14,18,23,28,29,34],caution:28,caveat:28,cdn:2,cell:28,cento:37,centos7:37,cfg:[3,28],cgi:11,chain:25,chainabl:34,chang:[11,14,19,21,22,25,28,36],chapter:[4,21,22,28,38,39],charact:[22,28],chdir:[11,19],check:[2,5,18,19,22,23,25,27,30],checker:25,checkout:22,chmod:11,choic:[6,10,19,28,33,36],choos:[6,22,23],chown:[7,9,10,11,35,38],chronolog:28,citi:23,classifi:28,clean:[24,37],clear:33,cli:30,client:19,clita:28,clock:21,clone:[6,8,9,10,19,22,25,27,39],close:[4,10],cmd:[19,36,37],code:[11,14,18,24,25,27,29,33,36,37,39],codebas:16,coffe:37,col:28,colleagu:20,collect:2,colon:28,colspan:28,column:28,com:[6,8,10,19,23,25,27,28,29,30,35,37,38,39],combin:7,come:[4,9,20,21,22,25,33,37],comfort:[11,28],comma:[20,29],command:[2,4,7,10,11,19,21,27,28,30,31,35,38,39],comment:[7,9,10,28,35,37,38],commit:[19,25,27,30],commodi:28,common:[11,27,31,33,35,38,39],commonli:28,commun:[7,9,18],compact:28,compani:33,compar:[7,9,11,19,37],compat:21,compil:[7,24,30],complet:[4,11,22,29,35,37,38,39],compon:[7,26,36],compromis:33,comput:33,con:28,conatin:19,concern:22,conclus:32,concret:[20,28],condit:28,conf:[2,7,9,28,35,38],config:[0,11,20,23,28,30,35,36,37,38,39],configur:[5,7,8,9,11,16,18,19,20,24,28,30,33,35],conflict:36,confnam:11,confus:28,connect:[4,9,10,18,31],consectetur:28,consequ:[14,22],consequat:28,consetetur:28,consid:6,consist:19,construct:[23,28],consult:27,contact:14,contain:[10,13,14,17,27,28,31,36,37],content:[5,17,24,31,32,33,36],context:[26,28,37],continu:28,contribut:[1,2,19,24,25,31],contributor:28,control:[7,11,33],convent:22,convert:28,cooki:[23,31,33],copi:[8,10,22,28,37],copyright:28,core:[2,11,18],corner:22,correct:[9,14],correctli:9,correspond:11,could:[11,14,23,28],count:28,countri:[14,23],courgett:29,cours:28,coverag:27,crawler:28,creat:[5,6,7,8,9,11,14,18,19,21,27,28,29,30,36,39],creation:[2,28],creativ:20,cross:28,cryptic:27,cryptographi:14,cspan:28,css:[13,26],css_depend:26,csv:[4,29],csv_tabl:28,ctan:28,cthulhu:34,ctrl:[10,19,25],ctx:26,cup:37,curl:10,current:[13,14,18,22,23,30,34],custom:[14,22,28,34],customiz:[0,16],customlog:7,cycl:[19,25],daemon:[35,38,39],dai:[11,25,29],daili:19,dalf:1,danger:28,data:[5,23,28,33],databas:[20,28],date:[0,23],datetim:[23,28],daunt:16,dbpedia:29,ddg:34,de_d:14,deactiv:[14,35,38,39],debian:[2,5,9,10,11,15,28],debug:[10,14,19,24,25,35,36,38,39],decid:[16,25],decim:23,dedic:[11,19,28],deeper:[25,28],def:[18,23,26,28],defaul:28,default_local:[0,14],default_on:26,default_them:[0,14],defin:[14,26,28],dejavu:2,delet:[14,29,30,37],delimit:28,demon:10,demonstr:9,deni:7,depend:[4,5,7,9,13,16,18,19,21,23,25,27,28,29],deploi:[8,14,25,28],describ:[4,6,7,11,14,19,25,28,39],descript:[13,22,26,28,35,38],deserv:22,design:[18,28],desir:[23,27],desktop:19,detail:[7,14,18,28],detect:14,deutsch:[0,14],dev:[2,7,9,10,22,25,28],devel:[2,10],develop:[2,10,14,16,17,20,21,22,25,28,31,36],dfrac:28,diam:28,dict:[23,28],didn:14,diff:28,differ:[7,9,11,19,21,22,23,28,37],digit:31,digraph:28,dir:[10,35,38],direct:[7,24,28,35,38],directli:[9,14,37],directori:[7,8,11],disabl:[3,5,10,11,13,14,19,25,26,28,29,36,37],disabled_engin:29,disabled_plugin:29,disadvantag:28,discoveri:[18,20],discret:36,displai:[2,8,13,14,23],display_error_messag:[14,23,28],displaystyl:28,dispos:36,disrespect:22,dist:[22,25],distinguish:28,distribut:[7,9,11,19,20,28,35,38],distributor:5,dive:33,divid:19,dnf:[2,7,9,10,28],doai_rewrit:29,doc:[5,7,11,19,24,28,37],docker:[5,6,25,31],dockerfil:8,docs_url:25,doctest:28,doctre:28,docuemt:2,document:[7,11,18,20,25,28,31,37],documentroot:7,docutil:28,doe:[7,11,16,18,19,23,25,28,29,32],doesn:14,doi:13,dolor:28,domain:28,domin:22,don:[7,21,25,28,31],done:[7,9,25,28,36,37],dontlog:7,dot:2,doubl:28,download:[6,19,25,28,35,38],drop:21,dry:8,dsitro:19,duckduckgo:[29,34],due:[35,38],duo:28,duref:28,dvisvgm:2,e0b3:19,e97:19,each:[11,19,28,29,37],easi:[19,31],easier:22,easili:22,ec555bc3347588c1e38769f174d4ca60:10,echo:[10,35,37,38],ecosystem:28,edit:[10,11,16,19,22,25,28,33,38],effect:[6,22,28],egg_info:25,eirmod:28,either:27,element:28,elimin:27,elit:28,elitr:28,els:37,emac:28,email:14,emb:[5,28],embed:[0,8,28],emperor:11,emphasi:28,empti:[7,28,29],en_u:[14,23],enabl:[0,7,9,10,11,20,22,25,26,27,29,36],enabled_engin:29,enabled_plugin:29,encapsul:19,enclos:28,encod:[11,28],encourag:28,encrypt:31,end:[21,28,37],endfor:28,engin:[0,5,10,16,17,22,24,27,28,29,31,33,34,35,38],english:[0,14],enim:28,enough:[6,7,9,30],enpoint:29,ensur:22,enter:[10,21],entri:[8,24,36,37],env:[7,11,19,25,27,36,37],environ:[8,9,10,19,24,31,35,37,38,39],eof:[35,37,38],eol:37,eos:28,equat:[2,24],erat:28,error:[3,14,23,27,28],error_log:9,escap:28,especi:28,esperanto:0,essenti:[2,10],est:28,etc:[4,7,8,9,10,11,19,22,35,39],eth0:[19,37],evalu:[28,37],even:[11,19,37],event:11,ever:37,everi:[14,19,22,23,33,37],everyon:[18,33],everyth:[10,28,33],exactli:[4,28],exampl:[0,4,7,9,11,18,19,20,22,24,27,29,32,33,36,37],exceed:4,excel:[6,9],except:[7,21,22,28,36],exchang:33,execstart:[35,38],execut:[14,30],exercis:19,exercit:28,exist:[7,8,9,16,19,21,22,25],exit:[10,19],expand:28,expect:[20,22],experi:11,experienc:[16,19],experiment:36,explain:22,explanatori:[35,37,38,39],explicit:28,expos:20,ext:2,extend:[18,22,26,28],extens:[2,28],extern:[4,12,23,24,28,29,33],extra:[2,7],extract:2,extrem:16,eye:[19,28],face:28,fact:17,fail:[19,27],fals:[0,10,14,26,27,28,29,38],familiar:[11,25],fanci:22,faq:28,favorit:[22,25],fd00:7,fd42:19,fe80:7,fea5:19,featur:[12,16,20,22,28,33],fedora31:37,fedora:[2,7,9,10,11,28,37],fedoraproject:37,feedback:[22,28],feel:[26,28],few:[14,22,23],fieldnam:28,figur:[7,9,24],file:[2,3,7,8,9,10,11,14,16,18,19,20,21,22,25,26,27,30,35,37,38,39],file_filt:30,filenam:23,files:23,fill:28,filter:[0,4,29],filtron:[1,5,6,7,9,11,19,31,36,37],filtron_api:[35,36,37],filtron_listen:[35,36,37],filtron_target:[35,36],find:[1,4,8,18,20],fine:[6,10],finish:[30,37],firefox:2,firewal:4,first:[7,9,10,16,18,19,21,25,27,28,33],fit:[11,20,26],fix:[22,25,27],fixm:7,flask:[26,28],flexibl:[28,36],fmt:37,folder:[7,9,10,11,19,22,23,25,27,28,30,36,37],follow:[4,6,7,9,11,12,22,23,25,27,28,30],followsymlink:7,font:2,fontsrecommend:2,footer:22,force_timeout:[36,37],fork:[6,19,22,36],form:[0,28,33],format:[4,23,27,28,29],forward:[4,9,33],found:[2,16,17,25,26],foundat:[16,18,20,21],fr_fr:14,fraction:28,free:[26,31],fresh:7,friend:[20,25,33],from:[1,2,4,6,7,8,9,10,11,13,14,16,18,19,20,21,22,25,28,30,31,33,35,36,37,38,39],front:28,full:[14,22,28,35,38],fulli:[7,9,16],fun:17,fund:[18,20],further:[25,27,36],furthermor:[23,27,29,33],futur:37,gain:33,gate:25,gener:[0,7,8,11,14,18,22,24,25,33],gentlemen:17,geojson:23,german:0,get:[2,4,5,6,7,9,10,13,19,22,23,25,27,28,29,30,31,35,37,38],get_engines_stat:28,gid:11,gil:11,git:[2,6,7,8,9,10,14,15,19,22,23,25,27,28,35,36,38,39],git_branch:[19,25,36],git_url:[19,25],github:[6,8,10,18,19,21,25,27,28,29,35,37,38,39],gitmoji:22,give:[7,25,27],given:28,glob:11,global:5,global_ip:37,glyph:28,gnu:25,go1:[35,38],go_env:[35,38],goe:25,goi:0,going:[4,18,20,28,33],good:[6,7,9,19,27,37],googl:[0,29,35,38],gopath:[35,38],got:19,grant:[7,11],graphic:16,graphviz:2,grep:37,group:[28,33,35,38],grow:16,grumpi:28,grunt:27,gubergren:28,guest:37,guid:[9,16,25,27,28],guidelin:20,guilabel:28,hack:[16,18,20,21,22],hackabl:24,hackerspac:34,handl:[14,19,28,33,37],handler:7,happi:[16,18,20,21,22],hard:[16,28],harden:[35,38],has:[12,18,20,22,23,27,28,33],hat:28,have:[2,6,7,8,9,10,14,16,19,21,22,23,25,28,33,36,37],hbar:28,head:10,header:[4,7,9,23,28],headers_modul:7,heard:28,hebrew:14,height:28,help:[8,13,22,25,27,35,36,37,38,39],helper:28,her:20,here:[2,7,9,11,14,18,19,22,26,28,36],herein:1,heterogen:19,hidden:[0,20,33],him:20,hint:[1,28,36],histor:[7,21],hit:10,home:[10,19,30,35,36,38,39],host:[2,4,7,9,10,16,19,20,25,30,31,37],hostnam:[9,37],hotkei:[0,13],hous:23,house_numb:23,how:[1,2,5,6,7,9,11,14,17,19,24,25,28,31,32,35,38],howev:[18,23,29],html:[0,2,7,11,22,23,25,28,38],html_math_render:2,http:[0,2,4,5,6,8,10,11,12,13,14,18,19,22,23,25,27,28,30,31,35,36,37,38,39],http_connect:[4,9],http_host:[4,9],httpd:7,https_rewrit:29,huge:28,idea:27,identifi:[36,37],ifmodul:7,illustr:6,imag:[0,2,5,12,14,19,24,25,29,34,37,38,39],image_proxi:[7,9,14,29,38],imagemagick:[2,28],img_src:23,imgmath:2,imgmath_font_s:2,imgmath_image_format:2,imgmath_latex:2,immedi:13,implement:[9,11,16,21,22,23,26,37],impli:20,improv:25,in_contain:37,inbound:14,includ:[7,9,19,20,25,28,37],inclus:34,incom:7,increment:25,indent:[28,37],index:7,infinit:13,infinite_scrol:[13,29],info:[14,19,25,37,38],info_msg:37,inform:[12,13,14,20,22,23,37],infrastructur:[1,11],infratructur:4,inherit:28,ini:[7,8,9,11,19],init:[11,18,19,24,37],initi:[11,19,30,37],inlin:24,input:[0,20,28],insecur:10,insert:[28,30],insid:[8,10,19,23,37],insight:33,inspect:[19,35,36,38,39],instal:[1,2,4,5,11,12,19,21,22,25,27,28,30,31,36],instanc:[0,1,5,6,7,9,11,14,16,18,19,20,25,29,30,31,32,35,36,37,38,39],instance_nam:[0,8,10],instead:[11,16,20,21,27,28],instruct:28,insuffici:18,integr:31,intend:8,intent:22,interact:[10,35,36,38,39],interfac:[7,14,17,31],interfer:22,intermedi:25,intern:27,internet:[6,18,31],interpret:[11,28],interpretor:11,intersphinx_map:28,interv:4,intranet:[6,7,9],intro:[7,9],introduc:[16,17,18,20,28,31],introduct:[25,27],intuit:28,inv:28,inventori:28,investig:21,invidunt:28,ipsum:28,ipv4:[9,37],ipv6:[9,19,37],isn:[7,9],iso:[14,23],isol:[4,19],issu:[11,18,20,21],ital:28,italiano:14,item:28,its:[2,6,16,22,25,28,29,33,37],itself:[11,22],japanes:14,javascript:[13,24],jinja:28,jinja_context:28,job:36,join:28,js_depend:26,json:[4,29,35],juli:37,jump:[10,19,25],june:37,just:[0,4,9,19,25,28,33,37],justo:28,kasd:28,kbd:28,keep:[7,9,19,25],kei:[8,12,13,14,18,23,30,38,39],kind:[7,28,33],kiss_:28,know:[7,11,18,19,20,28,33,37],knowledg:28,known:25,kvch:[16,18,20,21],l19:19,label:28,labor:28,labori:28,lack:22,lang:[0,11,29,30],languag:[0,3,4,11,14,23,25,28,29,30,34],language_support:[23,28],laptop:33,larg:[11,35,37,38,39],last:28,lat:23,later:[36,37],latest:[11,30],latex:2,latexextra:2,latexmk:2,latitud:23,latter:[25,28],launch:37,layout:5,lazi:11,lc_all:11,lc_messag:30,learn:28,least:[19,21],leav:14,leech:23,leecher:23,left:[10,28],legaci:29,length:22,less:[7,9,11,16,27,28,33],let:[19,28,33,36],level:[22,28],lib:[7,11,35,38],libapache2:7,libffi:[2,10],librsvg2:2,librsvg:2,libssl:[2,10],libxml2:[2,10],libxslt:[2,10],licens:[36,37],light:9,like:[0,2,10,13,14,20,22,23,25,26,28,36],like_hotkei:29,limit:[4,7,17,18,28,31],line:[7,9,18,22,25,37],link:[11,13,14,19,24],lint:[5,25],linux:[0,2,7,9,10,11,17,20,28,31,35,36,37,38],linuxcontain:37,linuxcontainers_org_nam:37,linuxdoc:28,list:[7,18,20,23,24,25,26,29,34],listen:[4,7,9,35,36,37,38],liter:24,literalinclud:28,live:[19,24,28,37],load:[11,13,14,37],loadmodul:7,local:[0,4,8,9,10,11,14,19,20,21,23,25,26,27,30,35,36,37,38,39],local_imag:37,localhost:[7,8,9],locat:[4,7,9,10,11,14,28],log:[4,5,11,14,19,27,33,35,36,38,39],logger:11,logic:22,logicodev:29,login:10,lon:23,longer:25,longitud:23,look:[7,10,25],lorem:28,loremlorem:28,lot:19,low:[7,9],lsb:11,lxc:[19,31,36],lxc_host_prefix:37,lxc_repo_root:37,lxc_set_suite_env:37,lxc_suit:[19,37],lxc_suite_info:37,lxc_suite_instal:37,lxc_suite_install_info:37,lxc_suite_nam:37,lxd:[19,37],lxml:[2,10],made:[14,19],magna:28,magnetlink:23,magyar:14,mai:[14,19,28,35,38],main:[7,13,25,30,36],mainlin:9,maintain:[1,11,19,28,36],mainten:[4,6,19,35,38,39],make:[2,8,16,19,20,21,22,24,28,33,37],makefil:[19,22,24,31,36,37],man:28,manag:[4,15,16,25,27,35,38,39],mandatori:6,mani:4,manipul:[16,37],manual:[14,25,28],manuali:28,map:[0,28],mark:[10,28],markup:24,mass:22,master:[11,15,22,25,28,36],math:[2,24],mathemat:28,mathrm:28,matter:[19,23,33],max:[4,23],maxim:22,maximum:[22,23],mean:[11,19,22,28,33],meaning:28,meant:28,media:[0,23],memori:14,mention:21,menuselect:28,merg:19,messag:[4,14,22,23,25,27,28,30],messagespo:30,meta:28,metadata:28,metasearch:[10,23,31,35,38],method:[0,6,11,23,28],middlewar:4,might:[11,19,20,22,25,28,29,33,36,37],migrat:21,min:23,minim:28,misbehav:22,miss:[4,28],mix:19,mkdir:[7,9,10,11,35,38],mod:[7,28],mod_autoindex:7,mod_head:7,mod_proxi:7,mod_proxy_http:7,mod_proxy_uwsgi:7,mod_uwsgi:7,mod_wsgi:7,mode:[11,14,28,36,37],modern:7,modifi:[8,11,14,28,34],modul:[7,11,26,28],monet:33,monitor:[11,19],mono:2,month:[0,29],more:[4,12,14,16,18,22,25,28,29,31,33,36,37],morecol:28,morerow:28,morti:[1,6,7,9,12,19,31,36,37],morty_kei:8,morty_listen:[36,37,38],morty_url:8,most:[2,7,14,21,33,35,36,38,39],mostli:[11,28],motiv:17,move:[18,22],much:[22,28],multi:[35,38],multibl:23,multipl:[13,14,28,33],multithread:11,multius:10,must:[9,14,21,22,23,27,28],my_arg:28,my_funct:28,my_other_arg:28,mydomain:36,myproject:27,name:[0,3,4,7,9,10,13,14,19,20,23,25,26,30,37],name_of_python_fil:26,nativ:11,navig:13,necessari:[10,20],nederland:14,need:[4,6,7,8,9,10,11,14,18,19,22,25,28,33,35,36,37,38,39],neither:31,net:31,network:[14,35,38],never:[19,25],nevertheless:[7,9],newcom:16,next:[7,9,13,17,28],nginx:[1,4,5,6,14,19,31,35,37,38,39],nightmar:28,nil:37,nisi:28,nlnet:[16,18,20,21],noconfirm:[2,10],node:[25,27],nodej:27,non:18,none:[7,23,25,28,29],nonewprivileg:[35,38],nonumi:28,nor:31,normal:[7,19,23,28,36],nostrud:28,note:[7,9,22,29],notic:19,now:[7,9,10,19,20,21,26],npm:[25,27],number:[4,14,23,28,29,37],number_of_result:23,numer:28,numref:28,obj:28,object:[23,26,28],obtain:14,off:[7,9,22,35,37,38,39],offer:11,offlin:[3,17,20,23,28,31],often:[23,28,36],old:[7,8,19],on_result:26,onc:[19,37],one:[7,11,14,19,20,22,25,28,31,33,35,36,37,38,39],ones:[23,35,38],ongo:25,onli:[2,6,7,12,14,20,22,26,28,29,36,37],onlin:[18,28,31],open:[7,10,13,19,21,22,25,28,29,33,36,37],openstreetmap:0,oper:[21,28,33],option:[7,8,10,11,12,14,16,19,20,22,23,25,26,27,28,29,33,35,36,38,39],order:[7,22,27,28],org:[2,4,7,9,11,14,23,28,37],organ:31,orient:7,origin:[5,15,19,28],oscar:[0,14,29],osm:[0,23],other:[14,22,23,28,33],otherwis:23,our:[1,4,6,16,19,22,25,28,37],out:[7,9,18,19,22,25,28,35,37,38],outgo:14,outgoing_proxi:14,output:[2,20,28,29,35,37,38,39],outsid:19,outstand:28,over:[19,28,31,37],overlin:28,overlook:19,overview:[4,14,24,25,29,31,36],overwritten:23,own:[6,19,25,31,33],owner:25,packag:[2,4,5,7,9,11,19,25,27,28,35,37,38,39],pacman:[2,7,9,10,28],page:[3,7,9,13,14,16,20,22,23,24,28,29,33,34],pageno:[23,29],pagenumb:23,pair:18,palletsproject:28,param:[4,18,23,28],paramet:[23,24],paramt:23,parent:28,pars:29,parse_lin:18,part:[14,16,28,37],parti:33,partial:28,partli:23,pass:[7,9,18,29],past:0,patch:[22,28],path:[4,7,14,19,28,35,37,38],paywal:13,pdf:2,peopl:[16,33],pep8:[22,25,27],pep8_check:25,pep:28,per:[11,22,23,28],perfect:19,perform:[11,13,18,23],phase:27,phrase:28,piec:28,pip3:21,pip:[2,10,30],pipe:18,pix:29,place:[6,9,11,22,23,28,30,33],plaintext:28,pleas:[21,22,27,28,29],plenti:22,plu:[7,9],plugin:[0,2,5,10,11,22,24,29,31],pocket:[7,9],point:[8,9,10,11,19,24,25,28,33],pointer:28,pointhi:29,polygon:28,popen:18,popular:28,port:[4,8,9,10,14,23,37],possibl:[8,12,13,14,18,19,20,28,29],post:[0,19,22,29],post_search:26,postcod:23,pot:30,pov:28,power:28,practic:22,pre_search:26,prefer:[6,16,20,28,29,33,34],prefix:34,preinstal:[4,19],prepar:[17,31,37],prerequisit:[19,28],present:[18,20],preserv:[22,28],press:[13,25],pretti:14,preview:23,previou:36,primari:37,primary_ip:[36,37],prime:24,primer:[24,31],principl:28,privaci:[6,7,9,10,11,19,24,28,32,35,38],privat:[17,18,31,32],privatedevic:[35,38],privatetmp:[35,38],pro:28,problem:4,procedur:[6,37],process:[2,4,11,18,19,20,25],processor:28,produc:28,product:[14,17,36],profil:[10,25,31,33,35,38],program:25,progress:[17,35,38],project:[11,19,24,25,28],promot:31,prompt:[19,36],proper:[33,35],properli:21,propos:18,protect:[1,5,7,9,19,22,31,32,35],protectsystem:[35,38],protocol:[8,9,11,19],provid:[20,22,23,28],proxi:[1,5,6,9,14,19,23,29,31,33,35,36,37,38,39],proxif:[7,9],proxifi:12,proxy_add_x_forwarded_for:[4,9],proxy_buff:9,proxy_http:7,proxy_http_modul:7,proxy_modul:7,proxy_pass:[4,9],proxy_set_head:[4,9],proxy_uwsgi_modul:7,proxypass:[7,35,38],proxypreservehost:7,psi:28,public_host:35,public_url:[35,36,37,39],public_url_morti:[37,38],public_url_path_morti:36,publicli:18,publish:23,publishedd:23,pull:[8,15,18,22,28,30],purpos:[14,23,27],push:[22,25],pwd:[8,19],py3:25,pybabel:30,pybuild:24,pyclean:25,pyenv:[10,11,19,25,39],pygment:28,pylint:24,pylintrc:25,pypi:[25,28],python2:[11,21],python3:[2,10,11,21,27],python:[2,10,11,14,17,19,24,26,27,28,31,39],pythonhom:11,pythonpath:[11,19],qout:37,quadratur:31,qualiti:[2,25,28],queri:[13,18,20,23,29,33,34],question:[28,33],qui:28,quickstart:[22,24,25,31],quiet:25,quit:[7,19,22,25],qwer:34,rais:18,random:[23,33],rang:[3,11,23,29],rangl:28,rate:4,rather:20,raw:28,reach:28,reactiv:14,read:[18,19,22,25,27,36],readability_:28,reader:[19,28],readi:19,readlin:18,readm:[4,7,11,12],readthedoc:11,real:[4,9],realli:6,reason:[7,11,16,21,25,28],rebuild:[22,25],rebum:28,recommend:[2,4,6,11,22,23,25,28,36],reconsid:22,record:28,redefin:23,redirect:13,reduc:22,ref:[35,38],refer:[1,28,33],referenc:28,refnam:28,regardless:33,regist:24,regular:18,reinstal:[35,39],rel:[9,19,28,37],releas:[21,25,37],releng:37,reload:11,remark:19,rememb:[11,19,22],remot:37,remote_addr:[4,9],remov:[11,13,19,33,35,36,37,38,39],renam:[8,29],render:2,replac:[7,9,10,16,19,26],repo:22,report:19,reposetori:19,repositori:[10,16,19,37],request:[5,7,9,14,18,20,22,24,26,28,33],request_timeout:14,request_uri:7,requesthead:7,requir:[2,7,13,21,22,23,24,25,26,27,28,29],requisit:25,reset:33,resourc:9,respect:[10,22,33,35,38],respons:14,rest:[20,24,31],restart:[5,8,9,10,11,12,15,19,35,38],restrict:20,restructuredtext:28,result:[1,2,5,6,7,9,13,14,18,24,28,29,31,33,38,39],result_proxi:[7,8,9,12,38],results_on_new_tab:29,retriev:30,return42:28,return_cod:18,rever:7,revers:[1,5,6,9,35,36,37,38],rewrit:[0,13],rfc:28,rhel:[2,7,9,10,11,28],rid:[25,37],right:[11,20,26,28,31],rightmost:28,rigth:28,road:23,roboag:4,robot:[25,27],robotframework:21,role:24,rolenam:28,roll:37,romanian:14,root:[7,9,19,25,37],rotat:28,round:22,rout:[5,7,9,28],row:28,rowspan:28,rspan:28,rss:[4,29],rst:[22,28],rst_titl:37,rule:[4,22,35],run:[2,4,6,7,8,9,11,12,14,17,18,19,20,22,23,24,26,28,30,33,35,36,38,39],runtimeerror:18,russian:14,sadipsc:28,safe:[3,29],safe_search:0,safesearch:[28,29],same:[4,10,14,19,23,28],sampl:[5,28,35],san:2,sanctu:28,sanit:19,satisfi:27,save:7,sc2031:37,sc2034:[36,37],scalabl:28,scale:[19,28,37],scaleabl:28,scan:11,schedul:[18,21],scheme:[4,9],schroeding:28,scope:22,scratch:2,script:[1,4,5,7,9,10,19,27,35,36,37,38,39],script_nam:9,scroll:13,sdist:25,sea:28,search:[3,4,5,8,13,14,18,19,20,22,23,24,28,31,32,33],search_on_category_select:[13,29],search_path:23,search_str:23,searx:[0,1,2,4,5,6,7,11,12,14,15,17,18,22,23,25,26,27,28,29,30,32,34,35,36,38],searx_instance_nam:39,searx_internal_http:39,searx_internal_url:36,searx_settings_path:[10,11,19],searx_url:[25,36],searx_userag:14,sec:4,second:[10,14,28],secret:[14,20],secret_kei:14,section:[9,14,19,25,26,28],secur:31,sed:[10,28],see:[2,4,7,8,9,11,12,14,18,19,20,22,27,28,29,31,34,35,37],seed:23,seeder:23,select:[13,25,28,33,34,37],selenium:27,self:[13,16,31,35,37,38,39],self_inform:29,semant:22,send:[2,4,14,33],sens:28,sent:33,separ:[20,22,28,29,35,38],seri:25,serif:2,seriou:19,serv:[22,33,37],server:[4,5,6,8,11,14,19,27,37,38],server_nam:9,servic:[4,5,6,9,11,12,19,28,29,31,33,35,36,37,38,39],service_home_bas:36,service_us:[35,36,38,39],service_ussr:36,session:[10,27],set:[2,3,5,7,8,9,10,11,12,16,18,19,25,26,27,28,29,30,31,33,34,35,36,37,38,39],setenvif:7,sethandl:7,setup:[1,2,4,5,6,7,9,10,11,19,24,28,31,35,38],setuptool:10,sever:19,share:[7,11,19,20,37],shell:[5,10,19,35,36,37,38,39],shellcheck:[2,10,28,36,37],ship:9,shortcut:[0,3,14,20,23,28],should:[6,7,9,14,16,19,21,22,28,30],show:[1,2,3,7,9,19,28,35,36,37,38],shown:[6,7,10,19,28],side:[6,28],sign:28,signal:19,signifi:28,similar:[11,28],simpl:[19,25,29,35,38],simplest:28,simpli:[4,19,22,25,29,35,36,38,39],simplifi:[4,25,35,38,39],sinc:[9,16,25,28],singl:[7,9,11,33,37],sit:28,site:[0,4,5,7,14,23,28,29,35,38,39],size:23,skeleton:18,skill:24,skip:27,slow:14,small:[23,39],smylink:19,snap:[19,37],snapcraft:37,snippet:12,social:0,sock:14,socket:[7,8,9,11],socks5:23,soft:24,softwar:[19,35,38],sold:33,solut:20,solv:[4,20],some:[1,6,7,11,14,19,20,22,25,28,35,36,37,38,39],someon:33,someth:[22,25],sometim:16,sourc:[10,14,19,21,24,25,28,30,33,35,37,38],source_fil:30,source_ip:14,source_lang:30,space:14,span:28,spars:28,spdx:[36,37],speak:11,special:[6,11,23],specif:[11,14,23,37],specifi:[8,11,14,23,29],sphinx:22,splinter:21,split:22,spoilt:6,sponsor:[16,18,20,21],src:[4,9,10,11,19,39],srv:7,ssl:[23,31],stabl:14,stack:[19,27,37],stage:28,standalon:16,standard:[7,22,23,26,37],start:[1,4,7,9,10,11,17,22,23,25,31,35,37,38,39],startpag:29,stash:[15,25],stat:28,statist:28,statu:[35,36,38,39],stdout:18,step:[1,5,6,17,19,22,31,39],stet:28,stone:20,stop:[4,7,9,10,11,19,25,35,37,38,39],storag:37,store:[23,33],strang:11,street:23,strict:20,string:[20,23,29,30],stroke:28,strong:28,structur:[22,24],stub:28,stuff:28,style:[24,29],sub:[22,28],subdir:9,subdirectori:9,subject:28,submit:22,subnet:7,subprocess:18,subrul:4,subscript:28,subsect:28,subshel:37,substitut:24,sudo:[2,6,7,9,10,11,15,19,27,28,35,36,37,38,39],suffix:[8,14],suggest:[1,26],suit:[17,36],suitabl:28,sup:28,superscript:28,supervisor:16,support:[2,3,5,9,10,11,14,17,20,22,23,28,29,31,33,35,37,38],sure:[8,10,19,21],surround:28,suspici:4,svg:2,svg_imag:28,symbol:[11,19],symlink:9,syntax:[29,31,32],syslog:[35,38],system:[10,11,19,20,21,22,25,28,35,36,38],systemctl:[7,9,11,15,19],systemd:[11,35,38,39],tab:[24,29,37],tabl:[18,24],tailor:33,take:[11,14,16,22,30,37],taken:[28,36],takimata:28,tar:[25,35,38],target:[19,22,24,28,31,35,37,38],task:[6,10,19,28,37],tcp:8,tcp_nodelai:10,tell:23,templat:[11,18,19,23,24],tempor:28,term:[7,28],termin:[10,19],test:[2,7,9,10,19,21,22,24,37,39],texliv:2,text:[0,23,28],textstyl:28,tfrac:28,than:[14,28,31],thei:[11,14,19,20,28,33],them:[11,14,19,25,26,28,36],theme:[14,24,25,29],themes_path:14,themselv:20,therefor:[6,28],theses:19,thi:[4,6,7,8,9,10,11,12,14,16,18,19,20,21,23,25,26,27,28,29,33,35,36,37,38,39],thing:28,think:[22,25,28],third:[28,33],those:[18,19,30,33],thread:11,three:[22,26,28,33],through:[5,7,9,14,20,28,29,33],thu:[18,21,29,33],thumbnail:23,thumbnail_src:23,time:[4,14,19,21,22,23,28,29,33,37],time_rang:[0,29],time_range_support:[23,28],timeout:[3,14,23,28,36,38],timestamp:11,tip:[24,28],titl:23,todai:18,togeth:18,token:[18,20],too:[4,14,28,33],tool:[1,2,6,10,16,22,28,30,31,37],top:28,tor:[31,33],torrentfil:23,touch:[7,9,11,14,19],trace:27,track:[31,33],tracker:13,tracker_url_remov:29,trademark:28,traffic:[7,9],train:28,transform:28,transifex:[22,24],transifexrc:30,translat:[14,24,31],transpar:[19,37],travi:[21,27],tree:[10,19,25],troubleshoot:36,trust:[20,31,33],ttf:2,tupl:26,turn:[22,27],twice:10,twine:25,two:[11,22,28,29],txt:[21,25,28],type:[0,22,23,25,29,30,33,35,37,38],typic:[1,28],typo:28,ubu1604:37,ubu1804:37,ubu1910:37,ubu2004:37,ubuntu:[2,7,9,10,11,15,28,37],uds:7,ugli:[16,28],uid:[11,19],ullamco:28,ultrasecretkei:[10,14],unam:[10,37],uncom:14,uncommon:22,under:[19,20,23],understand:[16,28],unfortun:22,unicod:24,uninstal:[25,36],unit:[11,22,25,35,38,39],unit_test:[25,27],univers:10,unix:[7,9,11],unknown:[33,35,38],unless:20,unlik:33,unspecifi:23,untouch:25,unwant:6,updat:[5,8,10,14,22,24,31,35,38,39],update_dev_packag:27,update_packag:15,upload:25,upstream:11,url:[0,7,8,9,12,13,14,19,22,23,25,33,36,37,38,39],urlencod:23,usag:[6,7,9,19,25,28,35,37,38,39],use:[2,4,6,7,9,11,12,14,18,19,20,22,23,25,27,28,31,32,35,36,37,38,39],used:[7,9,14,21,22,23,28,31,33,36],useful:[14,36],user:[4,5,7,9,11,13,14,19,20,22,23,28,31,33,36,39],useradd:[10,35,38],userag:4,useragent_suffix:14,uses:[11,14,23,28,33],using:[4,7,8,9,11,14,17,19,22,25,27,28,30,31],usr:[4,7,9,10,11,19,35,36,38,39],usual:[17,21,33],utf:[11,28,36,37],util:[1,2,4,6,7,9,12,19,25,31],uwsgi:[1,2,5,8,9,10,15,19,31,39],uwsgi_param:9,uwsgi_pass:9,uwsgisocket:7,valid:[23,27,29],valu:[0,8,9,18,23,28,29,36],variabl:[8,23,25,28,38],variant:28,variou:[22,26],vassal:11,vector:28,vendor:22,veniam:28,venv3:21,venv:[2,10,27],verbos:[10,25,36],veri:36,verifi:23,vero:28,version:[10,13,21,28,35,38],via:[7,9,11,16,34],view:[24,33],viewbox:28,vim:[0,13,29],vim_hotkei:13,virtual:[7,9],virtualenv:[2,10,11,19,21,25,27,39],virualenv:[10,25],visist:28,visit:[10,28,33],volum:8,voluptua:28,vpn:33,vulner:33,wai:[11,18,22,23,28,33],wait:[14,18],want:[14,20,21,22,25,28,29,33,36,37],wantedbi:[35,38],warn:[2,7,9,28,37],watch:22,web:[4,10,14,16,19,23,25,35,37,39],webapp:[10,11,14,21,25,28],webcrawl:4,webserv:9,websit:0,weight:[14,28],weigth:[3,14],weird:22,welcom:[7,9],well:28,were:[18,20,21],werkzeug:25,wget:[35,38],what:[11,19,28,37],whatev:[25,37],wheel:10,when:[2,7,13,14,21,26,27,28,33],where:[4,14,19,28],whether:[27,33],which:[1,4,7,9,11,14,16,18,19,20,22,23,25,28,29,31,33,35,38],whl:25,who:[11,16,18,33],whole:[7,26],why:[28,31,32],wide:22,widen:28,width:28,wiki:[0,9,18,20,28,37],wikipedia:[14,29,34],wish:14,within:[25,28],without:[2,8,14,23,31,33],won:[14,21],word:[26,28,29],work:[9,10,14,17,22,23,25,27,33],worker:11,workingdirectori:[35,38],world:[22,28,33],worri:21,worth:[11,33],would:[19,20],wrap:[9,17],written:19,wrong:25,wsgi:[9,11],www:[2,7,28,30,37],wysiwyg:22,xdg:25,xetex:2,xgd:10,xml:28,xmln:28,xxxx:28,xzf:[35,38],year:[21,29],yes:[35,38],yet:[22,23,25],yml:[3,5,7,8,9,10,11,12,16,18,19,25,26,27,29,31,38,39],you:[1,2,4,6,7,8,9,10,11,14,17,18,19,22,25,27,28,29,31,33,34,35,36,37,38,39],your:[2,4,6,7,8,9,10,11,12,13,14,16,17,21,22,24,25,28,31,35,36,37,38,39],your_morty_proxy_kei:12,yourself:22,yyyi:28,zero:18,zlib1g:[2,10],zzzz:28},titles:["Administration API","Architecture","Buildhosts","Engines","How to protect an instance","Administrator documentation","Installation","Install with apache","Docker installation","Install with nginx","Step by step installation","uwsgi","How to setup result proxy","Plugins builtin","<code class=\"docutils literal notranslate\"><span class=\"pre\">settings.yml</span></code>","How to update","Searx admin interface","Blog","Preparation for offline engines","Developing in Linux containers [202006]","Limit access to your searx engines","Introducing Python 3 support","How to contribute","Engine overview","Developer documentation","Makefile Targets","Plugins","Development Quickstart","reST primer","Search API","Translation","Welcome to searx","User documentation","Why use a private instance?","Search syntax","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/filtron.sh</span></code>","Tooling box <code class=\"docutils literal notranslate\"><span class=\"pre\">utils/*</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/lxc.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/morty.sh</span></code>","<code class=\"docutils literal notranslate\"><span class=\"pre\">utils/searx.sh</span></code>"],titleterms:{"202006":19,"abstract":19,"default":[3,13,23],"function":19,"public":[7,8,9,33],"return":23,The:[7,9,19,22],about:[28,33],access:20,acknowledg:[16,18,20,21],activ:25,admin:16,administr:[0,5],admonit:28,aka:28,alltogeth:11,anchor:28,apach:7,api:[0,29],architectur:1,archlinux:19,argument:23,articl:[2,28],ascii:28,audienc:19,bar:0,basic:28,bibliograph:28,block:28,blog:17,box:[4,36],bug:21,build:[2,8,22,25,27,28],buildhost:[2,37],built:[3,13],builtin:13,bullet:28,check:10,clean:[22,25],code:[22,23,28],command:[8,36,37],commit:22,common:36,compil:27,conclus:33,configur:[0,3,4,10,13,23],consequ:33,contain:19,content:[2,4,7,8,9,10,11,14,19,22,23,25,28],contribut:22,creat:[10,22,35,38],csv:28,data:0,debian:7,debug:27,definit:28,depend:10,deploi:22,design:22,develop:[18,19,24,27],direct:22,disabl:[7,9],distributor:11,doc:[2,22,25],docker:8,document:[5,22,24,32],doe:33,dot:28,drop:25,emb:0,engin:[3,14,18,19,20,23],entri:26,environ:[25,27,28,36],equat:28,exampl:[23,26,28,34],ext:28,extern:26,extlink:28,fact:21,featur:31,field:28,figur:28,file:[23,28],filtron:[4,35],first:6,flat:28,foo:28,fork:25,found:21,fulli:19,fun:21,further:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],gate:28,gener:[23,28],gentlemen:19,get:0,github:22,global:14,good:22,graphviz:28,grid:28,hackabl:22,head:28,hello:28,highlight:28,hlist:28,hook:26,horizont:28,how:[4,12,15,21,22,27,33],http:[7,9],hyperlink:28,imag:[8,23,28],init:30,inlin:28,instal:[6,7,8,9,10,16,35,37,38,39],instanc:[4,8,33],interfac:16,internet:[7,9],intersphinx:28,introduc:21,javascript:27,kernel:28,kiss:28,latex:28,layout:7,limit:20,line:[8,28],link:28,lint:2,linux:19,list:28,liter:28,live:[22,25],log:[7,9],lxc:37,make:[23,25,27],makefil:[25,27],map:23,markup:28,math:28,matter:28,morti:38,motiv:19,name:28,need:2,nest:28,next:[18,20],nginx:9,note:28,offlin:18,ordinari:28,origin:11,overrid:23,overview:[23,35,37,38,39],packag:10,page:25,paragraph:28,paramet:29,pars:23,pass:23,plugin:[13,26],point:26,post:26,pre:26,prepar:18,prime:22,primer:28,privaci:[22,33],privat:[20,33],process:28,product:19,progress:18,project:30,protect:[4,33],proxi:[7,12],pybuild:25,pyenv:27,pylint:25,python:[21,25],quickstart:27,quot:28,read:[1,3,4,7,9,11,12,13,14,26,28,29,35,37,38,39],readabl:28,ref:28,regist:26,render:28,request:[4,23],requir:30,respons:0,rest:[22,28],restart:7,result:[12,23,26],revers:7,role:28,rout:4,run:[21,25,27,37],sampl:[0,4],script:[2,6],search:[0,26,29,34],searx:[8,9,10,16,19,20,21,31,33,37,39],see:33,server:[7,9],servic:7,set:[14,23],setup:[12,25,27,36,37],shell:2,sidebar:28,simpl:28,site:9,skill:28,smart:28,soft:28,some:2,sourc:[22,27],space:28,specif:28,sphinx:[2,28],start:19,step:[10,18,20],structur:28,style:27,substitut:28,suit:[19,37],support:[7,21],svg:28,syntax:[28,34],tab:28,tabl:28,target:[25,27],templat:28,test:[25,27],theme:27,thi:2,through:4,time:[3,13],tip:27,titl:28,tool:[4,36],torrent:23,transifex:30,translat:[22,30],truth:28,unicod:28,unit:27,updat:[6,15,30],upgrad:21,upstream:25,url:28,use:33,user:[10,32,35,38],using:[21,33],usual:19,util:[35,36,37,38,39],uwsgi:[7,11],video:23,view:28,welcom:31,what:33,why:33,work:[2,19],wrap:19,yml:[14,23],you:21,your:[19,20,26,27]}})
user/index.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>User documentation &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -32,7 +37,8 @@
3237 <li class="right" >
3338 <a href="../index.html" title="Welcome to searx"
3439 accesskey="P">previous</a> |</li>
35− <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
41+ <li class="nav-item nav-item-this"><a href="">User documentation</a></li>
3642 </ul>
3743 </div>
3844
@@ -60,6 +66,7 @@
6066</div>
6167
6268
69+ <div class="clearer"></div>
6370 </div>
6471 </div>
6572 </div>
@@ -75,9 +82,9 @@
7582
7683 <h3>Project Links</h3>
7784 <ul>
78− <li><a href="https://github.com/asciimoo/searx">Source</a>
85+ <li><a href="https://github.com/searx/searx">Source</a>
7986
80− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
87+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
8188
8289 <li><a href="https://searx.space/">Public instances</a>
8390
@@ -108,7 +115,7 @@
108115
109116 <div class="footer" role="contentinfo">
110117 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
111− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
118+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
112119 </div>
113120 <script src="../_static/version_warning_offset.js"></script>
114121
user/own-instance.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Why use a private instance? &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="search_syntax.html" title="Search syntax"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">User documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">User documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Why use a private instance?</a></li>
3743 </ul>
3844 </div>
3945
@@ -113,6 +119,7 @@ instance, have access to a privacy respecting search service.</p>
113119</div>
114120
115121
122+ <div class="clearer"></div>
116123 </div>
117124 </div>
118125 </div>
@@ -128,9 +135,9 @@ instance, have access to a privacy respecting search service.</p>
128135
129136 <h3>Project Links</h3>
130137 <ul>
131− <li><a href="https://github.com/asciimoo/searx">Source</a>
138+ <li><a href="https://github.com/searx/searx">Source</a>
132139
133− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
140+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
134141
135142 <li><a href="https://searx.space/">Public instances</a>
136143
@@ -164,7 +171,7 @@ instance, have access to a privacy respecting search service.</p>
164171
165172 <div class="footer" role="contentinfo">
166173 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
167− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
174+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
168175 </div>
169176 <script src="../_static/version_warning_offset.js"></script>
170177
user/search_syntax.html+11−4
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Search syntax &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="index.html" title="User documentation"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">User documentation</a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">User documentation</a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href="">Search syntax</a></li>
3743 </ul>
3844 </div>
3945
@@ -78,6 +84,7 @@ categories and languages.</p>
7884</div>
7985
8086
87+ <div class="clearer"></div>
8188 </div>
8289 </div>
8390 </div>
@@ -93,9 +100,9 @@ categories and languages.</p>
93100
94101 <h3>Project Links</h3>
95102 <ul>
96− <li><a href="https://github.com/asciimoo/searx">Source</a>
103+ <li><a href="https://github.com/searx/searx">Source</a>
97104
98− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
105+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
99106
100107 <li><a href="https://searx.space/">Public instances</a>
101108
@@ -129,7 +136,7 @@ categories and languages.</p>
129136
130137 <div class="footer" role="contentinfo">
131138 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
132− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
139+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
133140 </div>
134141 <script src="../_static/version_warning_offset.js"></script>
135142
utils/filtron.sh.html+15−12
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>utils/filtron.sh &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="searx.sh.html" title="utils/searx.sh"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href=""><code class="docutils literal notranslate"><span class="pre">utils/filtron.sh</span></code></a></li>
4345 </ul>
4446 </div>
4547
@@ -59,7 +61,7 @@
5961</ul>
6062</div>
6163<p>To simplify installation and maintenance of a filtron instance you can use the
62−script <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/filtron.sh">git://utils/filtron.sh</a>. In most cases you will install <a class="reference external" href="https://github.com/asciimoo/filtron">filtron</a>
64+script <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/filtron.sh">git://utils/filtron.sh</a>. In most cases you will install <a class="reference external" href="https://github.com/asciimoo/filtron">filtron</a>
6365simply by running the command:</p>
6466<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H ./utils/filtron.sh install all
6567</pre></div>
@@ -71,8 +73,8 @@ into this user account:</p>
7173<li><p>Download and install <a class="reference external" href="https://golang.org/">Go</a> binary in user’s $HOME (<code class="docutils literal notranslate"><span class="pre">~filtron</span></code>).</p></li>
7274<li><p>Install filtron with the package management from <a class="reference external" href="https://golang.org/">Go</a> (<code class="docutils literal notranslate"><span class="pre">go</span> <span class="pre">get</span> <span class="pre">-v</span> <span class="pre">-u</span>
7375<span class="pre">github.com/asciimoo/filtron</span></code>)</p></li>
74−<li><p>Setup a proper rule configuration <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/etc/filtron/rules.json">[ref]</a> (<code class="docutils literal notranslate"><span class="pre">/etc/filtron/rules.json</span></code>).</p></li>
75−<li><p>Setup a systemd service unit <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/lib/systemd/system/filtron.service">[ref]</a>
76+<li><p>Setup a proper rule configuration <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/etc/filtron/rules.json">[ref]</a> (<code class="docutils literal notranslate"><span class="pre">/etc/filtron/rules.json</span></code>).</p></li>
77+<li><p>Setup a systemd service unit <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/lib/systemd/system/filtron.service">[ref]</a>
7678(<code class="docutils literal notranslate"><span class="pre">/lib/systemd/system/filtron.service</span></code>).</p></li>
7779</ol>
7880<div class="section" id="create-user">
@@ -127,7 +129,7 @@ $ sudo -i -u filtron
127129</div>
128130<div class="section" id="install-filtron">
129131<h2>Install filtron<a class="headerlink" href="#install-filtron" title="Permalink to this headline">¶</a></h2>
130−<p>Install <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/etc/filtron/rules.json">rules.json</a> at
132+<p>Install <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/etc/filtron/rules.json">rules.json</a> at
131133<code class="docutils literal notranslate"><span class="pre">/etc/filtron/rules.json</span></code> (see <a class="reference internal" href="../admin/filtron.html#sample-configuration-of-filtron"><span class="std std-ref">Sample configuration of filtron</span></a>) and
132134install filtron software and systemd unit:</p>
133135<div class="sphinx-tabs docutils container">
@@ -220,18 +222,18 @@ inspect service
220222 show service status and log
221223option
222224 set one of the available options
223−apache (http://192.168.1.81/searx)
225+apache (http://10.0.2.15/searx)
224226 :install: apache site with a reverse proxy (ProxyPass)
225227 :remove: apache site searx.conf
226−nginx (http://192.168.1.81/searx)
228+nginx (http://10.0.2.15/searx)
227229 :install: nginx site with a reverse proxy (ProxyPass)
228230 :remove: nginx site searx.conf
229231
230232filtron rules: /etc/filtron/rules.json
231233
232234If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
233− PUBLIC_URL : http://192.168.1.81/searx
234− PUBLIC_HOST : 192.168.1.81
235+ PUBLIC_URL : http://10.0.2.15/searx
236+ PUBLIC_HOST : 10.0.2.15
235237 SERVICE_USER : filtron
236238 FILTRON_TARGET : 127.0.0.1:8888
237239 FILTRON_API : 127.0.0.1:4005
@@ -242,6 +244,7 @@ If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
242244</div>
243245
244246
247+ <div class="clearer"></div>
245248 </div>
246249 </div>
247250 </div>
@@ -257,9 +260,9 @@ If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
257260
258261 <h3>Project Links</h3>
259262 <ul>
260− <li><a href="https://github.com/asciimoo/searx">Source</a>
263+ <li><a href="https://github.com/searx/searx">Source</a>
261264
262− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
265+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
263266
264267 <li><a href="https://searx.space/">Public instances</a>
265268
@@ -293,7 +296,7 @@ If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
293296
294297 <div class="footer" role="contentinfo">
295298 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
296− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
299+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
297300 </div>
298301 <script src="../_static/version_warning_offset.js"></script>
299302
utils/index.html+13−6
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>Tooling box utils/* &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -32,7 +37,8 @@
3237 <li class="right" >
3338 <a href="../dev/reST.html" title="reST primer"
3439 accesskey="P">previous</a> |</li>
35− <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
40+ <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
41+ <li class="nav-item nav-item-this"><a href="">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a></li>
3642 </ul>
3743 </div>
3844
@@ -43,7 +49,7 @@
4349
4450 <div class="section" id="tooling-box-utils">
4551<span id="toolboxing"></span><span id="searx-utils"></span><h1>Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code><a class="headerlink" href="#tooling-box-utils" title="Permalink to this headline">¶</a></h1>
46−<p>In the folder <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/">git://utils/</a> we maintain some tools useful for admins and
52+<p>In the folder <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/">git://utils/</a> we maintain some tools useful for admins and
4753developers.</p>
4854<div class="toctree-wrapper compound">
4955<p class="caption"><span class="caption-text">Contents</span></p>
@@ -99,7 +105,7 @@ reverse proxy for filtron on all containers of the <a class="reference internal"
99105</div>
100106<div class="section" id="tooling-box-setup">
101107<span id="toolboxing-setup"></span><h2>Tooling box setup<a class="headerlink" href="#tooling-box-setup" title="Permalink to this headline">¶</a></h2>
102−<p>The main setup is done in the <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/.config.sh">git://.config.sh</a> (read also <a class="reference internal" href="../dev/makefile.html#makefile-setup"><span class="std std-ref">Makefile setup</span></a>).</p>
108+<p>The main setup is done in the <a class="reference external" href="https://github.com/searx/searx/blob/master/.config.sh">git://.config.sh</a> (read also <a class="reference internal" href="../dev/makefile.html#makefile-setup"><span class="std std-ref">Makefile setup</span></a>).</p>
103109<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># -*- coding: utf-8; mode: sh -*-</span>
104110<span class="c1"># SPDX-License-Identifier: AGPL-3.0-or-later</span>
105111<span class="c1"># shellcheck shell=bash disable=SC2034</span>
@@ -161,6 +167,7 @@ reverse proxy for filtron on all containers of the <a class="reference internal"
161167</div>
162168
163169
170+ <div class="clearer"></div>
164171 </div>
165172 </div>
166173 </div>
@@ -176,9 +183,9 @@ reverse proxy for filtron on all containers of the <a class="reference internal"
176183
177184 <h3>Project Links</h3>
178185 <ul>
179− <li><a href="https://github.com/asciimoo/searx">Source</a>
186+ <li><a href="https://github.com/searx/searx">Source</a>
180187
181− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
188+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
182189
183190 <li><a href="https://searx.space/">Public instances</a>
184191
@@ -209,7 +216,7 @@ reverse proxy for filtron on all containers of the <a class="reference internal"
209216
210217 <div class="footer" role="contentinfo">
211218 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
212− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
219+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
213220 </div>
214221 <script src="../_static/version_warning_offset.js"></script>
215222
utils/lxc.sh.html+50−9
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>utils/lxc.sh &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="morty.sh.html" title="utils/morty.sh"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href=""><code class="docutils literal notranslate"><span class="pre">utils/lxc.sh</span></code></a></li>
3743 </ul>
3844 </div>
3945
@@ -55,7 +61,7 @@
5561</div>
5662<p>With the use of <em>Linux Containers</em> (<a class="reference external" href="https://linuxcontainers.org/lxc/introduction/">LXC</a>) we can scale our tasks over a stack of
5763containers, what we call the: <em>lxc suite</em>. The <em>searx suite</em>
58−(<a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/lxc-searx.env">lxc-searx.env</a>) is loaded by default, every time
64+(<a class="reference external" href="https://github.com/searx/searx/blob/master/utils/lxc-searx.env">lxc-searx.env</a>) is loaded by default, every time
5965you start the <code class="docutils literal notranslate"><span class="pre">lxc.sh</span></code> script (<em>you do not need to care about</em>).</p>
6066<p>Before you can start with containers, you need to install and initiate <a class="reference external" href="https://linuxcontainers.org/lxd/introduction/">LXD</a>
6167once:</p>
@@ -156,12 +162,46 @@ of coffee).:</p>
156162<div class="section" id="overview">
157163<span id="lxc-sh-help"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
158164<p>The <code class="docutils literal notranslate"><span class="pre">--help</span></code> output of the script is largely self-explanatory:</p>
159−<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ERROR: missing command lxc
165+<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage::
166+ lxc.sh build [containers|&lt;name&gt;]
167+ lxc.sh copy [images]
168+ lxc.sh remove [containers|&lt;name&gt;|images]
169+ lxc.sh [start|stop] [containers|&lt;name&gt;]
170+ lxc.sh show [images|suite|info|config [&lt;name&gt;]]
171+ lxc.sh cmd [--|&lt;name&gt;] &#39;...&#39;
172+ lxc.sh install [suite|base [&lt;name&gt;]]
160173
161−LXD is needed, to install run::
174+build
175+ :containers: build, launch all containers and &#39;install base&#39; packages
176+ :&lt;name&gt;: build, launch container &lt;name&gt; and &#39;install base&#39; packages
177+copy:
178+ :images: copy remote images of the suite into local storage
179+remove
180+ :containers: delete all &#39;containers&#39; or only &lt;container-name&gt;
181+ :images: delete local images of the suite
182+start/stop
183+ :containers: start/stop all &#39;containers&#39; from the suite
184+ :&lt;name&gt;: start/stop container &lt;name&gt; from suite
185+show
186+ :info: show info of all (or &lt;name&gt;) containers from LXC suite
187+ :config: show config of all (or &lt;name&gt;) containers from the LXC suite
188+ :suite: show services of all (or &lt;name&gt;) containers from the LXC suite
189+ :images: show information of local images
190+cmd
191+ use single qoutes to evaluate in container&#39;s bash, e.g.: &#39;echo $(hostname)&#39;
192+ -- run command &#39;...&#39; in all containers of the LXC suite
193+ :&lt;name&gt;: run command &#39;...&#39; in container &lt;name&gt;
194+install
195+ :base: prepare LXC; install basic packages
196+ :suite: install LXC searx suite into all (or &lt;name&gt;) containers
162197
163− snap install lxd
164− lxd init --auto
198+LXC suite: searx --&gt; http://10.0.2.15/searx
199+ suite includes searx, morty &amp; filtron
200+suite images:
201+ ubu1604 ubu1804 ubu1910 ubu2004 fedora31 archlinux centos7
202+suite containers:
203+ searx-ubu1604 searx-ubu1804 searx-ubu1910 searx-ubu2004 searx-fedora31
204+ searx-archlinux searx-centos7
165205</pre></div>
166206</div>
167207</div>
@@ -271,6 +311,7 @@ lxc_suite_info<span class="o">()</span> <span class="o">{</span>
271311</div>
272312
273313
314+ <div class="clearer"></div>
274315 </div>
275316 </div>
276317 </div>
@@ -286,9 +327,9 @@ lxc_suite_info<span class="o">()</span> <span class="o">{</span>
286327
287328 <h3>Project Links</h3>
288329 <ul>
289− <li><a href="https://github.com/asciimoo/searx">Source</a>
330+ <li><a href="https://github.com/searx/searx">Source</a>
290331
291− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
332+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
292333
293334 <li><a href="https://searx.space/">Public instances</a>
294335
@@ -322,7 +363,7 @@ lxc_suite_info<span class="o">()</span> <span class="o">{</span>
322363
323364 <div class="footer" role="contentinfo">
324365 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
325− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
366+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
326367 </div>
327368 <script src="../_static/version_warning_offset.js"></script>
328369
utils/morty.sh.html+14−11
@@ -4,6 +4,7 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>utils/morty.sh &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
@@ -39,7 +40,8 @@
3940 <a href="filtron.sh.html" title="utils/filtron.sh"
4041 accesskey="P">previous</a> |</li>
4142 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
42− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
43+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
44+ <li class="nav-item nav-item-this"><a href=""><code class="docutils literal notranslate"><span class="pre">utils/morty.sh</span></code></a></li>
4345 </ul>
4446 </div>
4547
@@ -59,7 +61,7 @@
5961</ul>
6062</div>
6163<p>To simplify installation and maintenance of a <a class="reference external" href="https://github.com/asciimoo/morty">morty</a> instance you can use the
62−script <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/morty.sh">git://utils/morty.sh</a>. In most cases you will install <a class="reference external" href="https://github.com/asciimoo/morty">morty</a> simply by
64+script <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/morty.sh">git://utils/morty.sh</a>. In most cases you will install <a class="reference external" href="https://github.com/asciimoo/morty">morty</a> simply by
6365running the command:</p>
6466<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H ./utils/morty.sh install all
6567</pre></div>
@@ -71,7 +73,7 @@ into this user account:</p>
7173<li><p>Download and install <a class="reference external" href="https://golang.org/">Go</a> binary in user’s $HOME (<code class="docutils literal notranslate"><span class="pre">~morty</span></code>).</p></li>
7274<li><p>Install <a class="reference external" href="https://github.com/asciimoo/morty">morty</a> with the package management from <a class="reference external" href="https://golang.org/">Go</a> (<code class="docutils literal notranslate"><span class="pre">go</span> <span class="pre">get</span> <span class="pre">-v</span> <span class="pre">-u</span>
7375<span class="pre">github.com/asciimoo/morty</span></code>)</p></li>
74−<li><p>Setup a systemd service unit <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/templates/lib/systemd/system/morty.service">[ref]</a>
76+<li><p>Setup a systemd service unit <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/templates/lib/systemd/system/morty.service">[ref]</a>
7577(<code class="docutils literal notranslate"><span class="pre">/lib/systemd/system/morty.service</span></code>).</p></li>
7678</ol>
7779<div class="admonition hint">
@@ -222,22 +224,22 @@ inspect service
222224option
223225 set one of the available options
224226 :new-key: set new morty key
225−apache : http://192.168.1.81/morty/
227+apache : http://10.0.2.15/morty/
226228 :install: apache site with a reverse proxy (ProxyPass)
227229 :remove: apache site morty.conf
228−nginx (http://192.168.1.81/morty/)
230+nginx (http://10.0.2.15/morty/)
229231 :install: nginx site with a reverse proxy (ProxyPass)
230232 :remove: nginx site morty.conf
231233
232234If needed, set the environment variables in the &#39;.config.sh&#39; file::
233− PUBLIC_URL_MORTY: http://192.168.1.81/morty/
235+ PUBLIC_URL_MORTY: http://10.0.2.15/morty/
234236 MORTY_LISTEN: 127.0.0.1:3000
235237 SERVICE_USER: morty
236238
237239To activate result and image proxy in searx, edit settings.yml (read:
238−https://asciimoo.github.io/searx/admin/morty.html)::
240+https://searx.github.io/searx/admin/morty.html)::
239241 result_proxy:
240− url : http://192.168.1.81/morty/
242+ url : http://10.0.2.15/morty/
241243 server:
242244 image_proxy : True
243245</pre></div>
@@ -246,6 +248,7 @@ https://asciimoo.github.io/searx/admin/morty.html)::
246248</div>
247249
248250
251+ <div class="clearer"></div>
249252 </div>
250253 </div>
251254 </div>
@@ -261,9 +264,9 @@ https://asciimoo.github.io/searx/admin/morty.html)::
261264
262265 <h3>Project Links</h3>
263266 <ul>
264− <li><a href="https://github.com/asciimoo/searx">Source</a>
267+ <li><a href="https://github.com/searx/searx">Source</a>
265268
266− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
269+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
267270
268271 <li><a href="https://searx.space/">Public instances</a>
269272
@@ -297,7 +300,7 @@ https://asciimoo.github.io/searx/admin/morty.html)::
297300
298301 <div class="footer" role="contentinfo">
299302 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
300− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
303+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
301304 </div>
302305 <script src="../_static/version_warning_offset.js"></script>
303306
utils/searx.sh.html+55−6
@@ -4,10 +4,15 @@
44<html>
55 <head>
66 <meta charset="utf-8" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
78 <meta name="viewport" content="width=device-width, initial-scale=1">
89 <title>utils/searx.sh &#8212; Searx Documentation (Searx-0.17.0.tex)</title>
910 <link rel="stylesheet" href="../_static/searx.css" type="text/css" />
1011 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
12+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/segment.min.css" />
13+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/menu.min.css" />
14+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/semantic-ui-2.4.1/tab.min.css" />
15+ <link rel="stylesheet" type="text/css" href="../_static/sphinx_tabs/tabs.css" />
1116 <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
1217 <script src="../_static/jquery.js"></script>
1318 <script src="../_static/underscore.js"></script>
@@ -33,7 +38,8 @@
3338 <a href="index.html" title="Tooling box utils/*"
3439 accesskey="P">previous</a> |</li>
3540 <li class="nav-item nav-item-0"><a href="../index.html">Searx Documentation (Searx-0.17.0.tex)</a> &#187;</li>
36− <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
41+ <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tooling box <code class="docutils literal notranslate"><span class="pre">utils/*</span></code></a> &#187;</li>
42+ <li class="nav-item nav-item-this"><a href=""><code class="docutils literal notranslate"><span class="pre">utils/searx.sh</span></code></a></li>
3743 </ul>
3844 </div>
3945
@@ -54,7 +60,7 @@
5460</ul>
5561</div>
5662<p>To simplify installation and maintenance of a searx instance you can use the
57−script <a class="reference external" href="https://github.com/asciimoo/searx/blob/master/utils/searx.sh">git://utils/searx.sh</a>.</p>
63+script <a class="reference external" href="https://github.com/searx/searx/blob/master/utils/searx.sh">git://utils/searx.sh</a>.</p>
5864<div class="section" id="install">
5965<h2>Install<a class="headerlink" href="#install" title="Permalink to this headline">¶</a></h2>
6066<p>In most cases you will install searx simply by running the command:</p>
@@ -69,13 +75,56 @@ into this user account. The installation is described in chapter
6975<span id="intranet-reverse-proxy"></span><h2>Overview<a class="headerlink" href="#overview" title="Permalink to this headline">¶</a></h2>
7076<p>The <code class="docutils literal notranslate"><span class="pre">--help</span></code> output of the script is largely self-explanatory
7177(<a class="reference internal" href="index.html#toolboxing-common"><span class="std std-ref">Common commands &amp; environment</span></a>):</p>
72−<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>ERROR: missing command systemctl
78+<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage::
79+ searx.sh shell
80+ searx.sh install [all|user|searx-src|pyenv|uwsgi|packages|buildhost]
81+ searx.sh update [searx]
82+ searx.sh remove [all|user|pyenv|searx-src]
83+ searx.sh activate [service]
84+ searx.sh deactivate [service]
85+ searx.sh inspect [service]
86+ searx.sh option [debug-[on|off]|image-proxy-[on|off]|result-proxy &lt;url&gt; &lt;key&gt;]
87+ searx.sh apache [install|remove]
88+
89+shell
90+ start interactive shell from user searx
91+install / remove
92+ :all: complete (de-) installation of searx service
93+ :user: add/remove service user &#39;searx&#39; (/usr/local/searx)
94+ :searx-src: clone https://github.com/searx/searx
95+ :pyenv: create/remove virtualenv (python) in /usr/local/searx/searx-pyenv
96+ :uwsgi: install searx uWSGI application
97+ :settings: reinstall settings from /home/alexandre/code/searx/searx/settings.yml
98+ :packages: install needed packages from OS package manager
99+ :buildhost: install packages from OS package manager needed by buildhosts
100+update searx
101+ Update searx installation (/usr/local/searx)
102+activate service
103+ activate and start service daemon (systemd unit)
104+deactivate service
105+ stop and deactivate service daemon (systemd unit)
106+inspect service
107+ run some small tests and inspect service&#39;s status and log
108+option
109+ set one of the available options
110+apache
111+ :install: apache site with the searx uwsgi app
112+ :remove: apache site
113+
114+searx settings: /etc/searx/settings.yml
115+
116+If needed, set PUBLIC_URL of your WEB service in the &#39;.config.sh&#39; file::
117+ PUBLIC_URL : http://10.0.2.15/searx
118+ SEARX_INSTANCE_NAME : searx@10.0.2.15
119+ SERVICE_USER : searx
120+ SEARX_INTERNAL_HTTP : http://127.0.0.1:8888
73121</pre></div>
74122</div>
75123</div>
76124</div>
77125
78126
127+ <div class="clearer"></div>
79128 </div>
80129 </div>
81130 </div>
@@ -91,9 +140,9 @@ into this user account. The installation is described in chapter
91140
92141 <h3>Project Links</h3>
93142 <ul>
94− <li><a href="https://github.com/asciimoo/searx">Source</a>
143+ <li><a href="https://github.com/searx/searx">Source</a>
95144
96− <li><a href="https://github.com/asciimoo/searx/wiki">Wiki</a>
145+ <li><a href="https://github.com/searx/searx/wiki">Wiki</a>
97146
98147 <li><a href="https://searx.space/">Public instances</a>
99148
@@ -127,7 +176,7 @@ into this user account. The installation is described in chapter
127176
128177 <div class="footer" role="contentinfo">
129178 &#169; Copyright 2015-2020, Adam Tauber, Noémi Ványi.
130− Created using <a href="http://sphinx-doc.org/">Sphinx</a> 3.0.1.
179+ Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
131180 </div>
132181 <script src="../_static/version_warning_offset.js"></script>
133182