From 0197f5df885877f7b90e6d12a4ceea6b586a27bd Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 6 Apr 2015 10:32:32 +0200 Subject: [PATCH] cleanup --- doc/devel/_build/doctrees/environment.pickle | Bin 172871 -> 0 bytes doc/devel/_build/doctrees/index.doctree | Bin 5405 -> 0 bytes .../_build/doctrees/telemeta.backup.doctree | Bin 7584 -> 0 bytes doc/devel/_build/doctrees/telemeta.doctree | Bin 71800 -> 0 bytes .../_build/doctrees/telemeta.forms.doctree | Bin 15623 -> 0 bytes .../_build/doctrees/telemeta.interop.doctree | Bin 178088 -> 0 bytes .../telemeta.management.commands.doctree | Bin 20761 -> 0 bytes .../doctrees/telemeta.management.doctree | Bin 3769 -> 0 bytes .../doctrees/telemeta.migrations.doctree | Bin 68470 -> 0 bytes .../_build/doctrees/telemeta.models.doctree | Bin 45845 -> 0 bytes .../doctrees/telemeta.templatetags.doctree | Bin 12349 -> 0 bytes .../_build/doctrees/telemeta.tests.doctree | Bin 28945 -> 0 bytes .../_build/doctrees/telemeta.util.doctree | Bin 136813 -> 0 bytes .../doctrees/telemeta.util.kdenlive.doctree | Bin 84259 -> 0 bytes .../_build/doctrees/telemeta.views.doctree | Bin 39053 -> 0 bytes doc/devel/_build/html/.buildinfo | 4 - doc/devel/_build/html/_modules/index.html | 182 - .../_build/html/_modules/telemeta/cache.html | 306 - .../_build/html/_modules/telemeta/config.html | 181 - .../_build/html/_modules/telemeta/core.html | 193 - .../html/_modules/telemeta/interop/oai.html | 694 -- .../telemeta/templatetags/paginator.html | 219 - .../_modules/telemeta/tests/test_utils.html | 215 - .../_modules/telemeta/util/kdenlive/fade.html | 370 - .../telemeta/util/kdenlive/session.html | 323 - .../html/_modules/telemeta/util/logger.html | 190 - .../html/_modules/telemeta/util/unaccent.html | 243 - .../html/_modules/telemeta/util/unicode.html | 237 - .../html/_modules/telemeta/util/url.html | 214 - .../_modules/telemeta/util/xmltodict2.html | 571 - doc/devel/_build/html/_sources/index.txt | 23 - .../_build/html/_sources/telemeta.backup.txt | 22 - .../_build/html/_sources/telemeta.forms.txt | 46 - .../_build/html/_sources/telemeta.interop.txt | 38 - .../_sources/telemeta.management.commands.txt | 126 - .../html/_sources/telemeta.management.txt | 17 - .../html/_sources/telemeta.migrations.txt | 286 - .../_build/html/_sources/telemeta.models.txt | 158 - .../html/_sources/telemeta.templatetags.txt | 30 - .../_build/html/_sources/telemeta.tests.txt | 54 - doc/devel/_build/html/_sources/telemeta.txt | 78 - .../html/_sources/telemeta.util.kdenlive.txt | 54 - .../_build/html/_sources/telemeta.util.txt | 69 - .../_build/html/_sources/telemeta.views.txt | 118 - doc/devel/_build/html/_static/ajax-loader.gif | Bin 673 -> 0 bytes doc/devel/_build/html/_static/alabaster.css | 587 - doc/devel/_build/html/_static/basic.css | 599 - .../_build/html/_static/comment-bright.png | Bin 3500 -> 0 bytes .../_build/html/_static/comment-close.png | Bin 3578 -> 0 bytes doc/devel/_build/html/_static/comment.png | Bin 3445 -> 0 bytes .../_build/html/_static/css/badge_only.css | 2 - doc/devel/_build/html/_static/css/theme.css | 5 - doc/devel/_build/html/_static/doctools.js | 263 - .../_build/html/_static/down-pressed.png | Bin 347 -> 0 bytes doc/devel/_build/html/_static/down.png | Bin 347 -> 0 bytes doc/devel/_build/html/_static/file.png | Bin 358 -> 0 bytes .../_static/fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../_static/fonts/fontawesome-webfont.svg | 414 - .../_static/fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../_static/fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes .../_build/html/_static/jquery-1.11.1.js | 10308 ---------------- doc/devel/_build/html/_static/jquery.js | 4 - doc/devel/_build/html/_static/js/theme.js | 47 - doc/devel/_build/html/_static/minus.png | Bin 173 -> 0 bytes doc/devel/_build/html/_static/plus.png | Bin 173 -> 0 bytes doc/devel/_build/html/_static/pygments.css | 63 - doc/devel/_build/html/_static/searchtools.js | 622 - .../_build/html/_static/underscore-1.3.1.js | 999 -- doc/devel/_build/html/_static/underscore.js | 31 - doc/devel/_build/html/_static/up-pressed.png | Bin 345 -> 0 bytes doc/devel/_build/html/_static/up.png | Bin 345 -> 0 bytes doc/devel/_build/html/_static/websupport.js | 808 -- doc/devel/_build/html/genindex.html | 840 -- doc/devel/_build/html/index.html | 394 - doc/devel/_build/html/objects.inv | Bin 1279 -> 0 bytes doc/devel/_build/html/py-modindex.html | 343 - doc/devel/_build/html/search.html | 188 - doc/devel/_build/html/searchindex.js | 1 - doc/devel/_build/html/telemeta.backup.html | 196 - doc/devel/_build/html/telemeta.forms.html | 205 - doc/devel/_build/html/telemeta.html | 525 - doc/devel/_build/html/telemeta.interop.html | 543 - .../html/telemeta.management.commands.html | 237 - .../_build/html/telemeta.management.html | 213 - .../_build/html/telemeta.migrations.html | 295 - doc/devel/_build/html/telemeta.models.html | 247 - .../_build/html/telemeta.templatetags.html | 210 - doc/devel/_build/html/telemeta.tests.html | 231 - doc/devel/_build/html/telemeta.util.html | 513 - .../_build/html/telemeta.util.kdenlive.html | 357 - doc/devel/_build/html/telemeta.views.html | 221 - 91 files changed, 25772 deletions(-) delete mode 100644 doc/devel/_build/doctrees/environment.pickle delete mode 100644 doc/devel/_build/doctrees/index.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.backup.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.forms.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.interop.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.management.commands.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.management.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.migrations.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.models.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.templatetags.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.tests.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.util.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.util.kdenlive.doctree delete mode 100644 doc/devel/_build/doctrees/telemeta.views.doctree delete mode 100644 doc/devel/_build/html/.buildinfo delete mode 100644 doc/devel/_build/html/_modules/index.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/cache.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/config.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/core.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/interop/oai.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/templatetags/paginator.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/tests/test_utils.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/kdenlive/fade.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/kdenlive/session.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/logger.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/unaccent.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/unicode.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/url.html delete mode 100644 doc/devel/_build/html/_modules/telemeta/util/xmltodict2.html delete mode 100644 doc/devel/_build/html/_sources/index.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.backup.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.forms.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.interop.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.management.commands.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.management.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.migrations.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.models.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.templatetags.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.tests.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.util.kdenlive.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.util.txt delete mode 100644 doc/devel/_build/html/_sources/telemeta.views.txt delete mode 100644 doc/devel/_build/html/_static/ajax-loader.gif delete mode 100644 doc/devel/_build/html/_static/alabaster.css delete mode 100644 doc/devel/_build/html/_static/basic.css delete mode 100644 doc/devel/_build/html/_static/comment-bright.png delete mode 100644 doc/devel/_build/html/_static/comment-close.png delete mode 100644 doc/devel/_build/html/_static/comment.png delete mode 100644 doc/devel/_build/html/_static/css/badge_only.css delete mode 100644 doc/devel/_build/html/_static/css/theme.css delete mode 100644 doc/devel/_build/html/_static/doctools.js delete mode 100644 doc/devel/_build/html/_static/down-pressed.png delete mode 100644 doc/devel/_build/html/_static/down.png delete mode 100644 doc/devel/_build/html/_static/file.png delete mode 100644 doc/devel/_build/html/_static/fonts/fontawesome-webfont.eot delete mode 100644 doc/devel/_build/html/_static/fonts/fontawesome-webfont.svg delete mode 100644 doc/devel/_build/html/_static/fonts/fontawesome-webfont.ttf delete mode 100644 doc/devel/_build/html/_static/fonts/fontawesome-webfont.woff delete mode 100644 doc/devel/_build/html/_static/jquery-1.11.1.js delete mode 100644 doc/devel/_build/html/_static/jquery.js delete mode 100644 doc/devel/_build/html/_static/js/theme.js delete mode 100644 doc/devel/_build/html/_static/minus.png delete mode 100644 doc/devel/_build/html/_static/plus.png delete mode 100644 doc/devel/_build/html/_static/pygments.css delete mode 100644 doc/devel/_build/html/_static/searchtools.js delete mode 100644 doc/devel/_build/html/_static/underscore-1.3.1.js delete mode 100644 doc/devel/_build/html/_static/underscore.js delete mode 100644 doc/devel/_build/html/_static/up-pressed.png delete mode 100644 doc/devel/_build/html/_static/up.png delete mode 100644 doc/devel/_build/html/_static/websupport.js delete mode 100644 doc/devel/_build/html/genindex.html delete mode 100644 doc/devel/_build/html/index.html delete mode 100644 doc/devel/_build/html/objects.inv delete mode 100644 doc/devel/_build/html/py-modindex.html delete mode 100644 doc/devel/_build/html/search.html delete mode 100644 doc/devel/_build/html/searchindex.js delete mode 100644 doc/devel/_build/html/telemeta.backup.html delete mode 100644 doc/devel/_build/html/telemeta.forms.html delete mode 100644 doc/devel/_build/html/telemeta.html delete mode 100644 doc/devel/_build/html/telemeta.interop.html delete mode 100644 doc/devel/_build/html/telemeta.management.commands.html delete mode 100644 doc/devel/_build/html/telemeta.management.html delete mode 100644 doc/devel/_build/html/telemeta.migrations.html delete mode 100644 doc/devel/_build/html/telemeta.models.html delete mode 100644 doc/devel/_build/html/telemeta.templatetags.html delete mode 100644 doc/devel/_build/html/telemeta.tests.html delete mode 100644 doc/devel/_build/html/telemeta.util.html delete mode 100644 doc/devel/_build/html/telemeta.util.kdenlive.html delete mode 100644 doc/devel/_build/html/telemeta.views.html diff --git a/doc/devel/_build/doctrees/environment.pickle b/doc/devel/_build/doctrees/environment.pickle deleted file mode 100644 index 2376efce6128a16de009eb01bf7c345e275c7df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172871 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 z�fDFZ*yb)5J&b#)e6+Najaotk#M@ujQpE_#JAGTv9chT!lbo7ZLD zZ^*o7gCF%KnoTO-7q1a*>%?`EzUnRX)UUe7;K7@X+N6GqeYdLHeEWTO*?4r_R&`tK zJ8Jak?MLrBX4KB3MvodYboXI3tBu`bhWhM z_Q{1=>-(wkO;J9Vvia=p=)n7FTJqiFC7*@vw$`EQJz82sKIw!PD(7+0w4=Q--<})S znr}Y5egXW(@xFirjmIDkub;oAy|V`gRCwh`GtyE&Pfz#wnzd@WP`vNMR8Rf9$SGFG zIo{N6^#QuV`u;TE#r=iC17$6(&FVw;tB0J{$} z-3zf>rn4}+FE-r+*)5SQ!tNQSd(qGTke&TOwJR-N%^js^Z#%*?pqv z9>VS|nb=j>eXi+VmEGd9n%zg4?izNB%UX6{X}X89TU-uf_bsM-c(Ho~yIV~6NOsFC zS7Y~Crh9dEi_10GeX{9Zv)H{ByRSCgYqMKiuEXwAO!vCQwbx^Jr|Djw-QscscAsgw zH!QBb5xd(>_r}GwH(~d&rh8L%%j7p>_uZy@6uTvo&DkB8?k(6YF1KX&?WTLH;@VrY z`wr8+O|g4hcIQm@cI;l9?9{RQX4AcWaqS)0-DyC<3Mreb$9yF=5RFLsY-_ui&^Lb1ER?h8$K3%jMN0(Kv5x+k(*B57r}GTm+L zmg%&!dw2#_x|jb01sgIG}C<`yCsr?*nOMnKDfB{A?!ZY zbRWuY$>4N$Uu3!uD|R2w?tM)640em{BiMbJ={~Z!_EGFU-*g{c>^_FwlTG)r>=q-( zvHJqkeSC546WHBhx=$>weGe+T%8Xc2UoTK5ALVkfB*mh diff --git a/doc/devel/_build/doctrees/index.doctree b/doc/devel/_build/doctrees/index.doctree deleted file mode 100644 index b625516999de20e81bc3271ed401ccb7c461f05c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5405 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 diff --git a/doc/devel/_build/doctrees/telemeta.doctree b/doc/devel/_build/doctrees/telemeta.doctree deleted file mode 100644 index e1cd4ed2b1c98107702df96dc030c7f8ed0381b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71800 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 diff --git a/doc/devel/_build/doctrees/telemeta.forms.doctree b/doc/devel/_build/doctrees/telemeta.forms.doctree deleted file mode 100644 index baaa8bb83519557626343618c6af4f3274dc5c3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15623 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 H=TiRxLpTkm diff --git a/doc/devel/_build/doctrees/telemeta.interop.doctree b/doc/devel/_build/doctrees/telemeta.interop.doctree deleted file mode 100644 index d14baf66759f24688d6f7b9ebcbbd3fde5114896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178088 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�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 diff --git a/doc/devel/_build/doctrees/telemeta.management.commands.doctree b/doc/devel/_build/doctrees/telemeta.management.commands.doctree deleted file mode 100644 index 14d7d3b84cfaf77aea7db90114abccdd55b2acb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20761 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 P0%5rRlk2 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 KMzO7q^!^|Dj1T1i diff --git a/doc/devel/_build/doctrees/telemeta.models.doctree b/doc/devel/_build/doctrees/telemeta.models.doctree deleted file mode 100644 index cbbcd5d7610add6d6bcfad854a622f992c1316cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45845 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 diff --git a/doc/devel/_build/doctrees/telemeta.templatetags.doctree b/doc/devel/_build/doctrees/telemeta.templatetags.doctree deleted file mode 100644 index eadcaf673bb8a0c4d30bc7b3abb3b608fb2d1681..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12349 zcmd5?2bdhim0pESBkd}!FhPPwATbNl3`hdOlDr5Bq!oiLZNp$ZZuiXeZ1rendg^tz zb{D&CWW!oA&Kcu~ZJZMhI2-41!Iyp67k$~6lP~!GSJgc;n-uvDe=ALQSG{`g)l2p2 zRo%a|RQ5_?;MV+1!z(*}ia+a4BS^_5!$;-PNG?m8{SCYB1k+8&m&+sBoz8FR>go!d znuAt56FBu|%?|K7;b)rmgxjzKkBquk4r`9=$>mdk_QRrX@MUiW=RN)R%(=xoWNi{b?T}NnlcPHRQM^l4~JHvL}5nq>>}onO$ZN zkbx~ZG!KJQV!A209z)NG>HR@kAr zyyi9>nI2mTTCqjSVS%rbaBF3VOck3BtSdtc9BH=qw8HbX&M?5j*B$*o|r28p%C84aRnpnnp5{y^*|a!I|7X zi;moQXF`;#erwcVVN8dJxV5hiA?TDE1~2fc_$0yG$Prv zFvY!{0(CAy}CC$3M4XXc|Ts-Q9IiaLZ?UIZ$A9JF=2QWBN;e5T6DlC@m}7; z-lN!)&tZeTH_c81*U>(-1%U#=j$Fqt$mgaJxIh8xLm{7DEF!n#xsldN9aa)OHB&LW z0{J|p`z5jN;bJT|E0WLekXuI#@dGSlbsHh3;iL{J860qZIJND`VkApxOb`IREElAc ze!2x-8S9#n6GAo4cj0_xeK(CCJSE=|;Aj7dPb9vbgY$VKFTeOsmy>D%fh+ z<*HqRjale({2R9q%PD1CBidj_PG-zD@2N>sy!TAqzb zHxNc39K$PCu~=F)*oraXG#qkE#u3+<%*gvRvN7NpEth@d7%EC(ao0)7RA3yj$+e3$ z$2Tg-nm~uilwBV=)igU{#l_m(o}6Jf%JK#I+kg?vZon8F1B>NhpT{9ixSTo|fd|e! zAS;mrqb?i8>BU%;FU)rXn`SuD44=mn7dB&MOkuq~ohfYET zCnqN}Er9H9uU-!uZZMr4rNAv=T3KkNG2vmcPo|!gFLuOGTG(DB?@tRj)6uk;5JI@( zu&9Z;Xb4Xj3lD<=tKtbfJ!|L z!#HJ|cu)&u8AxK7oDnnmoAvuy8OFHSZF;E9!@qo~-C*X1d?jnwf;{x_49unF( zkRkD(*dSEC@#Yic8*fRALVg!e$3X}|V%SI{UTXGEwlEBfe$FNy=4>L@N+#yzX4pQL zQu3`xF&>HJ+d5JV0Vc74pGbS-lK8n2&aH_8Nh(|k^lkZJ0$erc8*xv;qVUP4a@cCFI-w!@dc|k>9`Uo=M z3Z^s2q}%x92Y6y1WF5#4iGJJc(V~?fp1VyVr%6~LN~kuZPhqRwtyWR_>EoS3`phCi;$$0}+m!q) zMD#=?KgS|6PR?fr;(06<&q^hp7?b=w3+D?9Y!?!1l3&Db;Z#V-FF_Vxj^tMo^Lk?8 zeS#vdXYp0c;>k#U4I{+k9W3^@VC2`Czi*s~zi)!S+4B7s82NT2zmqWX!|x zhd4z_$?t-r??v+a$&n@-6;1S>y^74M>=`nvck4V#Ll#!)cQz-hRV2lpP^IEr0&)Ax`O-{=<;79`EQ9{exj|ZN7Ix4u0L0H%2)me z8W+~Ja-6u#nUenrUVj?N|4MKtFdf~r z3kZ6hA~|2s{fYSwDS#dM^H0bVtp^yUdJY~DJwuIIcakw;sLIpEI>GhyjsqW#rl_Zv zoD`i409f>S3hntZ+Oym0(*;1op1Xn3skk4KTUD*I%Yz8PibF(8+Q@@;oMn}PE(8`x z=^{KLGMK(TMyc`yb$sPTL(iTrR*hIlTmQs4T#~0vYWyYb@yTI{hBVvTSQl=?{(^|>kf6^ z);jB=tvr6H%G`Gpt!bMY(!p+Aw{FqM@PHi)qRgTT0=*KCh^|tI)>UIV%#ijl)L3b| z0@=j1hN+6m(E-jJ?VjLf#Tb~&1^QQd|7gNLcHy#n)s)($sY6hx23uRw?zNF9U24|nN(jI`YX!oj-IGOCOIY*otj_j1? zle1Es^WjVn=Mn0Racr%*T&1VIcaI*-?aSRpw=t#mMxSnHw7k;q!%IZ_6?Q(41*tLh zF;@~pVhu;J13Yj?emgc1b{KfD*%6~+yERl}QB-y7O^<@40uf%8sCf2COVX;(!!NsD z6>%$Gt>#T~aoCwEIZajYowR*}Y!_wfk<>V$4$ddBY`3Tplfz|kqh!}=1}7B5BPqk! z3r37h+0dtK%|lnV<`%QfX;h6H+cUees6YqF0j;0a$52_EaAxDFzza8_9E{x9*m3RE zTeg5V74O`wWY8KZMO{JyA{`=g!<)YPPmP%bJo`_LOPKX3m$BvgiknL z(1v#wOfZ@b@;kNq=Sy8z{y~+`{fZe_j)*x)m@s{Z+QK+BThv&yF;=!mv5-ElSwto= zQ+2mot~ryqfsrZsR7n^jkIw+Dz&q?T&XBP-<}73G5Y$yWPt21}%St$aY-y=!2PI+Q zjA+^tj$L-B!)Q-STncwq;qKsQ`$?pvG(C$U?5{1=aE8)hjGB!Fm9~H-yA|WsJ$pyZ z1LM~2(cQQ2u|^N<8$Dz+ynura&IbcTLO-MW4xM&nYg(2C!(E}R$#;nlHIvWS&F8hC~h{=yvg5c?8)7=@8F%eJND$pt-D4K?i;=3 zz@FjZ)V_L?ye2Aa)4PGwoj{GZJYpPlWa!{JQaO>6p~bY-z;&La%{Sl$N}kM)9-1-k z@j{~>V)bxv%!$~AOHdr_`MlF<9C68O@HMg4@uhL={?XiRcUp(`jE`d#J!IW+=dI>} zJqFG+)wsbpbMR#EJL^6=WBceOiI;$>0Re2d!*}K}m z>YTtFEQQ3EsVrSzp=SXoXQs*y?9Ju{lAf(v*7EXI@w@=$<5)QGr+^NkXKV>d@>rU1 zWr+^qJEC#?rbUk!6TRYk(O2bUOZ4L}RplIAtPq<+Ugb^xIM?Q_g}EXiyWwL_b%*FK zbmYu|7BOr!e7YNr5#{k~_Mw4E`gD(Kd=59R_NVJbuVy8qe7YCS1$r)bu9?NW!dFne z&*R>qIYTW4U@3s-GeAEIW=a-5*{ZdOUrrazm5KCtJ*N_ybLQICT#~D7K9$ul2fxfc z=P#INMS=IZW!vPlM4ADU$SXhI8|pq@@Y!74g?;POn97Tgx%<;X}XW!2WmJ> z4{_#?fmjV*z->#N2ECA9`f*1B-fkllMEK?jC?#1c52hEP4HxQGVyd{?h;txzix(@v zl(1{Kz`*G;-Opg%=0MCJ5=LC^qoWKbuFRPmpmL8a2+C8HU;T;0U@WIZF9DdjnkV36 zpaA_Egh4Om=I*jn3@7LT#$>K`>P3f5W*T<{gyRJCAli?c8@(`ShQVU^XBbfrvsMb| zW&AO~7Zn>}-I`**qhn};R#%n7dedr|uusR)4sS#f?lvl34E%BpJcu-)!BuSFb?iDl zq+r*x+A7GBS^HLUUy5FVPO}ev+csahvrMn#&o#~zcBXuNDD-0~zKT(In>{+*(W@0o zrE^&K5!ZKdN0wfrTGy9qo_*ND%_FyF;mC*(3?cE?qVpK8PLf-1g@d*kSw3!0I`ldK z9XFRDBGc;?GClF8?}TN{vRJzxAcJ8I zXax3@CEN*7!~cLj#LdfVUSonj%&!|}i_edzgqzkZT~U_=+!m0wD0BSRu+geEK9B3+6e>Ron(LdJZgbU{+n3 z9!Kvn9NO5Et)@?*iB||E%T`qXG~*77=K8tom|mqn!-KlirDFOl-XnSfzv=20{LZau z>eVAfpFc98rU z-o^ft((4zG>7?WwpHXex+44yMz{ehJ?8e!HX)u+e1ANtiG*fgO7;5i{G%A`9I>UJpup# diff --git a/doc/devel/_build/doctrees/telemeta.tests.doctree b/doc/devel/_build/doctrees/telemeta.tests.doctree deleted file mode 100644 index 306b47275058bc9da580141a02d59f74a4823828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28945 zcmeHw2b>hgu{Q#au)q-{1VRW_NQgs%J7uI(L<9+eP8KlIDV$b&w{y%kd%HI^y9C>7 z8{1lgbI#e8E$1v}`#I;FbIv(u`}_Z^XL@IM4+Qr6?DzfNN9dXAs_v?;PSs&*A2fNS zP#LLJi>0WyTq*cbhTxcAu4cmHRv!o_*TX42-pq1-%&+br_oHxXJ?!ckJaN*bNmak( zBR1b#^`mN(9nX*K&hPTWX#;~7c3_nzXW4k={KyCx>_oB+`N&t?j*3)^sbSXb3tgK>`0|tMNy(~_Q2rE&h(LAWvQZE6qbrrKVdd!Lh;DvFe(bW z4-RHKvu~zIa-KU-^X5Z&QMFiwwkzda!5@vndG&C<*FBz>$j^=WQG|Mm!UaR&@jdOe zAMKB-{#Zhk2~R*9SXd8FL>rL&-l$TO5kFkyP4cE8HwJnLdKc!BqUu@4^Qq1 zKp!j)2rsRNrzG%XZ(5w+GHo$^L1oPEEBJf*l9tuCGj3viXq0`Cj5v(8nW$HyYPj5+ zUd``f0}Zp@^vH4#PxUhSYE_EEH7F@uQ4de+@n#fiz#r?D#vH z9e*PjUt)_JXgN2vaEQz4^4c7%YtP|o6yutDxP`@FZdYkBSdt}LmTT+b)(Ok9t%Xx~ zop)+mQ_z7SZWi&tFrY=eKA5FNoR<{wK3c>Z>fv@4@#w~w9gy|fbjf$N$P<^`vG7px zqs#b4DCDMkI7o$%$qh~+?3_2(!&@d)$E_{w!`pgvth42Y64KK^Z`+U;4tXmRidbI> z#acTku8s9~yU!+)3+AZ)7AN|`V9r4C0W0lrn zFHx8q?(l*swlC3KJe~B8@9)QGgUJtbOtvzbP141qV;gx`;<%wAg=6foujOd&dhr&t^MrUMO^271LRh?5$Ti)3oTZ^lYzGZlms$r;geOz4EwP8OVWTYNO ziLzP-nQBWNhBa?ZQs%gEQBiDBunX2U=li6M?a@BEH<+n>vq>A zin87M4WAHX1MQAaJVJMTQco~GxZ;SqbUl!&xwjf-=X-Kn=Tp5rr5-*trI&$3xThUK zxTjON3&6F#Y}p<)va-dpYfkad)Ktjopqs)xgTf5BfuLg~#mZzP6Fw6)_pEyO>{bcA zsl&U%!WRs7fk4F#UkD=( z8EX7p!3$G@g)i!vP_kT9gauly35>ZHL&m%7;Y%Rn;29Grr3Y)Kpi&rsA$r*=sg-x4 z+pSt1z7*~AS^v?7_%cin-7I*sG~vss(^s(W!&e5~d2gC+SmCSMjY{#yQI_HeM&3;L z>cNvx@ML7}sPgbN=$Egphp!t>Pd?%6$zaB4tyEHD{tbikCeU7ZkJn{u>5W)~bd46d z1bEY-bRE6G3w4~y*sDisO3{eqtRT0f3;oGT+cT6xY zC5<+GCx)eFUg3YCkngI8?@rq4TPHRVEFTyQXb+k2J&^0Y_3(X^Ysryx*qf4db~=yn z{S@>AM-udd5cJ5IhaZCQAFhWVNrZpz5rnsre-x5`tR8+GDS~@a!p&6Sv_?Nc$v$}` z$vy?iCam>OL!Qsn!_Ox2eC!DFU||YfR(&ZIBP?`22f;pH55JHkO=@_73f4j#evuM> z=|~cOdE)->vdM&B0l%--!>@tg;0dV0iMl)4e7%#+;^6aKv3&ztI9$r`o6y9!>fyJO z;(QgFa2?l)5q@W41y#zW{h9E)5b=BU@cT&~PzeTlZz{3j4=CIZd%UUszH#xU2Gy}r z_@lOQGu_>O+@X(B%-ap3>4Gf1@Z^oXYzn6nX_zQ0u zB4N%Bc6YS<@R!(qAd+LbHzleT!e3d5yjh5cprztSv3jU!$dbI8mtB68M#WGj;neaC#&2Q`B?_6nqA6H}e2X9VNn6;qY9sV(& zT97Xee#(6RgsPo^^4)58K8C_SqdNam5C57}#cyqOPP6>Nzgcj0TBYINwQgZ6cW7Rl zbi5~(3IDPBfJ{1W(xkc^hcMxQNk&IFJ8HzlG8q)8c$uP<9oq@XASY9aZ&wbR-7d+G z2N~%C9&D%KQJ3kOnVkl&!cJe*pY7MdyZ;W%6;)P1?+AAQIR|np@D7=QB*9`sv4dqP zMiEACe=Lvf6x6~FUGZ#V_m-KUtVjl7U1lNd!4e0Qk<11#By$)Qylm^FhIHfAzRktk zf6n5Qd0VP>7S>b^0hMeYrxeYnp z0rMKN(gE`ua)tvIG-Qw!u%aRB9B^7gE^@%> z4Y}9>D;v`9fHN9$i33(Ol(7n0T(so zItN_bkO2quH{^N;T+)#HIN;KT+~9!A8nWF1mp5dG1FmSuP6u4s5YGYY8*-xqu4>3l z4%pC;K?iJX$juJe)R0>ou(=_(I^gPt+y-Fq0H%@u$ck0%`S`p>h9C+Dt=s?Sh?I*( zx&u#>0C@nuHwQBnwzzVY(NSz*$*@vl`Iv{TFalsm3J80Gm+D%(-x?16hhMyk5As1& z#3Wtn9pxN1>Jn*64K78vL3~Vd*?bubX3Tfx5nng;0zYe)(bXVd&F(FhO4(ZEXRC;( zSzUm5*aFfW0k0?L{cGk;bE|mj1zrw8ojYN zQr&<9KNz7A&MDY}LJ}=#C$jkqaWrNfcN-ruo@a=y@sU(J5^T!xJBtwT~{kri`!sB zT7n065J3EN8+ix`7N>J)C5Ysqq?q4EVROHes1`LKv7#br5Z9tQ;7~gcV|>!2RRfG~ z*2O{Mxx3;j3i$2*F06sB%U4GN^x#7zX{j#T`Q_n6w6qqBu*u~S9jsgPePjoIhac8_ z3{$qak0QQB6FdC4A|6dtOTF%tnlF!GbW5w-SsO3K**%s>9tpaV=HziH79*8f^A15I zk0**tE07ob;o2^F0%PLdk5lkGs-EkN?S6zec_Oi~NQFu~qD1l}Mo+idjOL3ac`_qr zHY2u-%2QGqlV;0ky2(71*tljb)~e@ejE@;I-YesFLnKdUblk$4(di7IL5jE;H7RVS z&m=C^U=tVD_p{oN*q+?9Z^R$x7MMJnNbY$;U&Vqvhah*a0AeFgo=Z4ZCk8riT%O06 zSbmM!zyox7KBHp^q5!uzHev@+ik8U>h>QoIXm@d(`j;1`BCCF0HdgkQn z9y1d!mAbqXj~+7{;gGyc-@6f-xeVqrSis1^y1A2Z17ko*`L{p(2%UXun_Bgkg6M`_}|!KIsG)5$%EF$@N;urdFVwfjb9wBBZv zSf~G_!TTm=#nA($D<8eh`(`B5^4LPfQ}#q=?^_beWSH!*eBVkD;u#xKG>zZ4xuo&X z2yDv!eLK^|#(>3in85EKNo)d`lf02VdC3M5nIY1A+Ejf)>!^1QSEAL+RGoCkZaRq{y6ce*3q<@KQU3p zO~d(<6QZ5%{3)V&N`#`~k8L<@=JTf~qJce{wq8C%ns^!I@@b`s+UZ62Q^ zwp~NWLa~v2p6GVn0*$Kt0#T_BGJ!$;MUpISD<@L7+P+^RReRmWX4aR9Yj0^Smi1RA z5~G#DS0^HAwXeTMl6ECI6Z`ALwzmVdvcEx0d%H~;+TSETHtd}8bMmcLc5UYNw~37{ zJ0!9e_jefC9Bev`?(dSIDP+p-{vI*0wU7L0%gXl|7jFo}aj?FB(8`3Atp@lHNziN$ zmcX{89}(5$-?W(J$HX+7X%mxf%ReDevmrK#Z0%_O1A!7_PfT+89pjs0 zZW3=z_1_cO)O^}n{{v8|>GEvb;f~E<|0A>Sab5K&Z1z7TT$7~@mH1~ywgzdt{x3i$ zcKu)ZK3D+De~0NPe*-%jtbfPz-^P^;{{e<3;XVmhW&W+)j{`${^fei8rklddWiX$? z0tUx3SjgZ+28$RhW^fXNB@9kxu#~|m43;ri&LGR+R0b;;oW|h)FQblr8O7z3(FKbx zRCIyTT$l{R>yjy`x*oe!U>A*hwtmBbrTAg*0?AaiHY7*|hKm&AmLA3}CYl3?;R3+W zbT_SrxOofXxXv)Ns*SUt&D#mm95yt04Xs-9E(SDA4NXu(Thq|0G_)QK4Man0(9rZV zwC@ZJIYX1p&@eN!z6=d5LvzZ|Xfm{l49y-xv&PVRF|<((tr0_e!_b^CUuHnlz;N<6 zUt_>o+;GA+oR!VD7;vgJoLUX1Ps5qgaB4K12@PjE!+Fhc3NxId3@0MP*~V~6F`PvV z=MBSo!f;A39QO?edBYLiaO5_vW3=ILYupIhHexD>VRN81%)hujGSl4xkS=y;Tqc;t zHZj4s2~*;GellGN*6D^@yt0%Th`aNE%*3NE86{YhCcy20X^;#&akE5bDcS6pY&qJ| zz1=XF1KK!`_{!ga2HdWw*fV3Z(hnW7Ziu|B8t6PBJ&WTbL+&H8B%vv;@gKZ zpS<w1O+}4ITPNdQp`m!p{XV2?&z@x3E^Yu8`ESRgE;~r7Ur(YeI~8cle+ClnEf%W5 z)(m-2Ebu@}nI7jT9-?Z)CeHUpKy|rEv*K5o$aheI!{&QSOTNZt*Dii_xKh}kk(-ef zgug|Z+?r-`n*!}!%?T_+z_({AmAx6c9SCHZ!=o;DXfCnbc?CMNBzNk0nE3WQ`F#@v z9RUux7VxNxPr^jYqY8B9N&%SbEQN-Pfq;XWjTV2K!UNpG%zgIvhBVR~JEu;;p z3fVOcDenJ6D@Ls+qbAdZi2CQ$GJ#1oPWIY*TTH5h?k=#grj)S;l%dsR61zzC6*4Ba ze+2J!i4dYi7%d^XNL67~x77G<)bb%~-B^I-gCfcvz^!%cK+|zCJHF18k;eiHIUa{cT^^6n$^i~fAmB~i zRjLfj6Y)OKHW|8)Gv!IZ4#|^A^Dnqskf$JnhCCHv-kV)4kCbZIur1$bJRPAS z5x&Y9%kL}T;y@tJ0DSE~@Q2d^wW+m>Pw?%1EqNxQ)CS_$Wb!OPb$K?zR&~dR=<*!J zKbQFUB>j2%PV;x`mWDhZklMmquWiT+0K|u(SHznRFC?{|O&w`4MW49~go7*4M~-6C z@I~a4I_Q5fnZ)AVt?w!xE-1eQkQEOXlwaxqTu^?Q18_n4=}=`PB}<1?AT`02h>B>i}F(ew_nwLHYF#zy;+uH~<%v?{NSwD8JDGxS;$d2jGJ8 zn;n1)%5QN1E-1g%0l1+2HV5E>^4lGN3(D_sK(-<8bO0_W|Ca-BLHS({zy;-ZI{+7y z-{SyWP=2oia6$Qf4!{NF_d5U=lt17ATu}a?18_n4Lk_?N<@4fz29?aA!Hw!ds`$PWR;-8mC? z=N}=eN6#@jj>vxuRB{&7JRkoFW6`VK`Bmz0{HMglCm$1C4*ePN@o`$`vG~u4jgNXd zu#x{TQ2Wud?df=NMH}af6Msz=*MQ1 zoPht1n3f{69Do0w==dPXCd7g1A37r=`6DCaGoP5UdFuTqB3lHGkG%g(L`w! z$AObc5Fh;799jt?nL>*AK+I9tik?bTiyDwPuIn!1T2u!dYG)eblO{dES@v||k9;|F z21#0~D?Xf@NkmI)X*t5qbg*tczn;~BZ#}%8O?-YjEUt>oj#w+=vab|qvsVw#siQ$cRno@nH(<5>5PoWxFph^ zIIkoo)@OQUbq3>gVpxmt*p8W3G40Xc3++i*HEl*&jX3OTB1{a&v-DjJM;P5}0NIHU z*Z0&23Vsj4Qb znx<-!swt`_sG6Q?a;mARCZ?K}YEr5xsV1bFj%qThsi-ERnucl;swt=@pqhSa@~Nq( zCZ3vhYSO7GrzV`5Zfdfrsir2Hnr3Q}sVSx=n3`T{a;d4MCYG93YEr2wr6!b`PHHl# zsiY>7nnr38sVSr;keWVf@~Ek!CXSjmYSO4F(`LdnO_${K^Fru0KK*2?Gc&M&vF-0) z{;+2qvi|S*u;(J?bBrJMT+B4ujo69NjXJ*R=}#yOEi~f{GDGvr(8e+}r3?)wLxafB z@-Z}X3{4tC`^C^yF*HaF4G=?v!_crWG$ITw21C=p&;&4?@C|2n!ztWwnl_w@4QE@! zdDUoW>02D#HoMaOyFfXbdM5!x_YIt}vV)3}*quG2d{UHyqgw z2XMpD+Hh<(9DWVQS;O(vaNIN;Ee(fA!%@+23^W|;497OZvCMGTGH#4A9C1u~9C4?r z>KR5Z0sip*SL9Mfj}NX#9i;}rp4Hi&qu*wWKk`}~OouxbxeQshdSnUUdqplsG`9bh zpE~u6k1Nb`P#tg;Ll-P^rJ|pAC^(GMmEZ+Bm)N5n+2k$47py3+qdML zlN`AZlXPw>-hgNnYC9e{LC`#GRZ#@HH3OFzvQzP13g0RMU17+Liax9eID>~P3AstL z8tll5&V%SpLT)C?I+O^G;7USn0iB-e->Ny@=5j5Q`gOo(et~lrfkX19Z;0Uk zhFb{3%H?(!%gNo`+xdhe2+83ErxFO=E?!;%yHz|)x>hd`h9zSjBYd{{f{+5@P;)*W zbs0sNY?_geZjlDoA4K3hKm_#huuBsJsRS+E!%XH89aLCUiX+q}TuQiqbdV@UbKc#| zIq^TKE+3`To}r8}Mwb!xl0uu0F)0J@&5d!1^HixImfpl<952Ca^-Fb5atIqTOFC#1 z!5cQ`6<(x^nCtW=g!95GRiat%m zT4Z8A6sWn`d0!>DpC!?=Tr0=mO&FJt_5NTEUTurjT<%^xi^=`LF80wSb!FXllIL9d z$paKUu4~@bd7s60ryq;xF@5aXShaE$%Q@uOqw zvv;lY#T$E;lLwOzo5Mr!5@eL+jHEd{lyPhgcjBck4TR_>$LQ`?9>!c2!wslCy@19}7=IC)SWi;U%OSO#rC^hs(RyLPvF;FU*#gnE6n zriA0#u9CmUFTua7J@krw=)x&19Kgbbqk5vkI6|n!4IP!%< zP4(B=hx-qGaY@kMR;dN@&9eYlsl$0bFsvMWvj(NF?5Np}?o&A|DDvy5F-=7_*B-*$B0TLp45-JW& z@yU49eGGI2|5l4kjI#T{+4Twt4}X>X0sKrTsZ ze5Uezmg9-G|LmAatB>QwhT^e7K8MeBgD=63#j!U?Xw@%SAK(A$+hIxAXV1?&s(y_$>y9`5!ud&SXpN}Fq6oGUwK(3hGHlkRyhLX8y* zg_4hpn||*|B%_HyLKlEOj&^tZ<$qGJX3l-gIi;v`&hPA~X+>H8_apFP1+N=+m>lOv z`?)>vfRPLQe8HFKpOi}T?$f+e5}kW5S{kWPKWTyBGA*YO|D+tu(TXu)rCr>qA-Eyg zxM}lxZ`;n?hV>h+*_2zqZOi%{`Yk3#U+gBT3;kZj?KtKkzS){aClcraTV=T%%1wvy zxg5%!1y>B~Iq1s%@KAujU9Zm2o&V+z%Hdqs3j=uPyXvxBKwG0FV8JL{C|(rZrhOzE9%d_C??; z26s`>r{bi&*_$i1>{t!cs1LU;zTgwCQOg1*k==Oh`hlyj z&+XW>b0-Xn9l7hS-{@`Il!YG|oq%0EIUd-581_fe9J2hqhlt*!okYDEc`gQROh(Vc zqb|=!n5=d<0ZcR*y+A2n*rZIHF1yL-F2x<~WVGTilhKQiOEMX~Sb5&a%y7(tD1#G@{6LYSzLLbs{W_qs=FqF%$S&rW$Whz7h& z!N*jm?u6wn8nb}ieY8@kVx;wRaNs3Xc`GnmkAq8UED!LzBJwuCb$L6&o?u#l%~t%K z5nK_>4E6*W!-a1!D;Nl78*YgNbAsE0Zv34aG-_1PI~ch%&%3JLtg7V85r)?>U*w%Y z40v-KbEpm9?IW@-??UL!Kmyc$!AE!zE66Ht zxYJK;B%jk{pC@ugGMmX40H$scV^AsM2Y(6~b)yz##J69 zJG{5(S4Vp*va63CdHdw+B$)}t*(I@j1Moro#*aVFqQ;#@zNwjaW0)(B?W66`a{9BYuMjKGErG=m$!e3G$_CO!h;Pb$N4Q!R$}*$d5=DoIl_#MO{}U z2Mtx!lduJYd>JOa$d5th&7-}e%xvdeE4ho z8R8Flr&May@mlq8`Tv|5O`~Y=LH7#+bNI7D<=R+oA3L1<5^<=`xrN%;c+R!mNPdNQ zbVH0##qww+CjPZ0?&ddS^oopp{rs5xMrjwazIf@9)s98z7>a_1{#zjNX@oz%cIDaU z7vy&Y=llDxAqdS^Yf-Gl-!tnjZ<;l^Pu9LrM`~qqZKL(^fSrlvK@0#Zn}Oii*D{`#eh@Z21BglONQth8TRAGFsdx(@DmzmLJaPrxr2;FpclmzqP-)MlMp%Nov2*}yJc|Y$R9WJ%dEPBECKc)?*Hfax~P*8#i>Dc z>4x*A%)2)1Eo`5_>~wt!6HU^e0Fz~Sugh|TJ(!WN4W`>Ox;=rIGFoc;mnC)<$w(Fn zuyb~*re2|`?H-#!BAoEupATMb*I7qS0|mEtPghE8xZ(hFCEk?>KTm=?>j(>igLZot zTe$eh!~U`twv4a94`khGVwPthSzT6XM#@ruQw2XSViG1jDJHA&9^84a92&^vcKnXg zP{QR*<#JYv3x8w@KP}|AtVwZMOD;qA#zn0idup>9CrsVJ-PROZQu7vI+-UxoowZ?l zRfIlf%^%f)_Remyq{`a%#B1KnWKNFc9FPvlxd`z+AicgvavlJD%!jZx-1~n3S^yRV diff --git a/doc/devel/_build/doctrees/telemeta.util.doctree b/doc/devel/_build/doctrees/telemeta.util.doctree deleted file mode 100644 index 83e93fe2166179e725b87145c1e901358e51469a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136813 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 diff --git a/doc/devel/_build/doctrees/telemeta.util.kdenlive.doctree b/doc/devel/_build/doctrees/telemeta.util.kdenlive.doctree deleted file mode 100644 index cfe57efde4151bae4e78dea3cf2934e4fb51772b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84259 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 diff --git a/doc/devel/_build/html/.buildinfo b/doc/devel/_build/html/.buildinfo deleted file mode 100644 index 8dfba585..00000000 --- a/doc/devel/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e0dc6eccdb5082b2d69adbb167b628e7 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/devel/_build/html/_modules/index.html b/doc/devel/_build/html/_modules/index.html deleted file mode 100644 index 8f8f4d07..00000000 --- a/doc/devel/_build/html/_modules/index.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - Overview: module code — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/cache.html b/doc/devel/_build/html/_modules/telemeta/cache.html deleted file mode 100644 index b7c5a6d8..00000000 --- a/doc/devel/_build/html/_modules/telemeta/cache.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - telemeta.cache — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.cache

-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2006-2010 Guillaume Pellerin, Parisson SARL
-
-# This software is a computer program whose purpose is to stream audio
-# and video data through icecast2 servers.
-
-# This software is governed by the CeCILL license under French law and
-# abiding by the rules of distribution of free software. You can use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty and the software's author, the holder of the
-# economic rights, and the successive licensors have only limited
-# liability.
-
-# In this respect, the user's attention is drawn to the risks associated
-# with loading, using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean that it is complicated to manipulate, and that also
-# therefore means that it is reserved for developers and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and, more generally, to use and operate it in the
-# same conditions as regards security.
-
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-
-# Author: Guillaume Pellerin <yomguy@parisson.com>
-
-import os
-import xml.dom.minidom
-
-
-
[docs]class TelemetaCache(object): - - def __init__(self, dir, params=None): - self.dir = dir - self.params = params - self.files = self.get_files() - if not os.path.exists(dir): - try: - os.makedirs(dir) - except IOError: - raise 'Could not create the '+dir+' directory !' - -
[docs] def get_files(self): - list = [] - for root, dirs, files in os.walk(self.dir): - for file in files: - list.append(file) - return list -
-
[docs] def exists(self, file): - if not file in self.files: - self.files = self.get_files() - return file in self.files -
-
[docs] def delete_item_data(self, public_id): - # public_id is the public_id of an item - for file in self.files: - if public_id in file: - os.remove(self.dir + os.sep + file) -
-
[docs] def write_bin(self, data, file): - path = self.dir + os.sep + file - f = open(path, 'w') - f.write(data) - f.close() -
-
[docs] def read_bin(self, file): - path = self.dir + os.sep + file - f = open(path, 'r') - data = f.read() - f.close() - return data -
-
[docs] def read_stream_bin(self, file): - path = self.dir + os.sep + file - chunk_size = 0x80000 - f = open(path, 'r') - while True: - chunk = f.read(chunk_size) - if not len(chunk): - f.close() - break - yield chunk -
-
[docs] def write_stream_bin(self, chunk, file_object): - file_object.write(chunk) -
-
[docs] def read_analyzer_xml(self, file): - list = [] - path = self.dir + os.sep + file - f = open(path, "r") - doc = xml.dom.minidom.parse(path) - for data in doc.documentElement.getElementsByTagName('data') : - name = data.getAttribute('name') - id = data.getAttribute('id') - unit = data.getAttribute('unit') - value = data.getAttribute('value') - list.append({'name': name, 'id': id, 'unit': unit, 'value': value}) - f.close() - return list -
-
[docs] def write_analyzer_xml(self, data_list, file): - path = self.dir + os.sep + file - data = self.get_analyzer_xml(data_list) - f = open(path, "w") - f.write(data) - f.close() -
-
[docs] def get_analyzer_xml(self, data_list): - doc = xml.dom.minidom.Document() - root = doc.createElement('telemeta') - doc.appendChild(root) - for data in data_list: - name = data['name'] - id = data['id'] - unit = data['unit'] - value = data['value'] - node = doc.createElement('data') - node.setAttribute('name', name) - node.setAttribute('id', id) - node.setAttribute('unit', unit) - node.setAttribute('value', unicode(value)) - root.appendChild(node) - return xml.dom.minidom.Document.toprettyxml(doc)
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/config.html b/doc/devel/_build/html/_modules/telemeta/config.html deleted file mode 100644 index 376513a3..00000000 --- a/doc/devel/_build/html/_modules/telemeta/config.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - telemeta.config — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.config

-from django.conf import settings
-
-
[docs]def check(): - """Perform general configuration verifications""" - if not len(settings.ADMINS): - raise ConfigurationError("The ADMINS configuration option must be set in settings.py.") -
-
[docs]class ConfigurationError(Exception): - pass
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/core.html b/doc/devel/_build/html/_modules/telemeta/core.html deleted file mode 100644 index d0c9caa0..00000000 --- a/doc/devel/_build/html/_modules/telemeta/core.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - - - - - telemeta.core — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.core

-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2007 Samalyse SARL
-# Copyright (C) 2003-2005 Edgewall Software
-# Copyright (C) 2003-2004 Jonas Borgström <jonas@edgewall.com>
-# Copyright (C) 2004-2005 Christopher Lenz <cmlenz@gmx.de>
-# All rights reserved.
-#
-# This software is licensed as described in the file COPYING, which
-# you should have received as part of this distribution.
-#
-# Author: Jonas Borgström <jonas@edgewall.com>
-#         Christopher Lenz <cmlenz@gmx.de>
-#         Olivier Guilyardi <olivier@samalyse.com>
-
-__all__ = ['TelemetaError']
-
-
-
[docs]class TelemetaError(Exception): - """Exception base class for errors in Telemeta.""" - pass -
- -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/interop/oai.html b/doc/devel/_build/html/_modules/telemeta/interop/oai.html deleted file mode 100644 index 9f72896f..00000000 --- a/doc/devel/_build/html/_modules/telemeta/interop/oai.html +++ /dev/null @@ -1,694 +0,0 @@ - - - - - - - - - - telemeta.interop.oai — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.interop.oai

-# -*- coding: utf-8 -*-
-# Generic OAI-PMH Data Provider module
-#
-# Copyright (C) 2009 Samalyse SARL
-# Author: Olivier Guilyardi <olivier samalyse com>
-#
-# This software is governed by the CeCILL license under French law and
-# abiding by the rules of distribution of free software.  You can  use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-#
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty  and the software's author,  the holder of the
-# economic rights,  and the successive licensors  have only  limited
-# liability.
-#
-# In this respect, the user's attention is drawn to the risks associated
-# with loading,  using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean  that it is complicated to manipulate,  and  that  also
-# therefore means  that it is reserved for developers  and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and,  more generally, to use and operate it in the
-# same conditions as regards security.
-#
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-
-from datetime import datetime
-import time
-try:
-  import libxml2dom as dom
-except ImportError:
-    import xml.dom.minidom as dom
-    try:
-        import libxml2
-    except ImportError:
-        # dangerous: minidom output formatting isn't very good, libxml2 is much better
-        pass
-
-
[docs]class IDataSource(object): - """Interface for OAI datasource adapters""" - -
[docs] def get_earliest_time(self): - """Must return the change time of the oldest record(s) as a datetime object""" - pass -
-
[docs] def get_record(self, id): - """Must return a tuple of the form: - ( - [(dublin core element, element value), ...], - change time - ) - or None if the record doesn't exist. In case the id isn't wellformed - a BadArgumentError should be raised. - - The dublin core data must contain an 'identifier' element, which is the same - as the id parameter.""" - pass -
-
[docs] def count_records(self, from_time = None, until_time = None): - """Must return the number of records between (optional) from and until change time.""" - pass -
-
[docs] def list_records(self, offset, limit, from_time = None, until_time = None): - """Must return the list of records between (optional) from and - until change time, starting from record at offset, with a maximum of limit - entries. Each entry of the list must be a tuple of the same form as returned - by getRecord(). - - If no record matches, should return an empty list. The dublin core data must - contain an 'identifier' element, which can be used as a parameter to get_record().""" - pass -
-
[docs]def iso_time(date_time = None): - """Encode a datetime object using ISO8601 format""" - if not date_time: - date_time = datetime.now() - return date_time.strftime('%Y-%m-%dT%H:%M:%SZ') -
-
[docs]def parse_iso_time(str): - """Parse an ISO8601 time string into a datetime object, or return None on failure""" - # Avoid datetime.strptime() for compatibility with python < 2.5 - try: - s = time.strptime(str, '%Y-%m-%dT%H:%M:%SZ') - return datetime(s.tm_year, s.tm_mon, s.tm_mday, s.tm_hour, s.tm_min, s.tm_sec) - except ValueError: - try: - s = time.strptime(str, '%Y-%m-%d') - return datetime(s.tm_year, s.tm_mon, s.tm_mday) - except ValueError: - return None -
-
[docs]def doc_to_string(doc): - if dom.__name__ == 'libxml2dom': - return doc.toString(encoding='utf-8', prettyprint=True).decode('utf-8') - try: - doc2 = libxml2.parseDoc(doc.toxml(encoding="utf-8")) - xml = unicode(doc2.serialize(encoding="utf-8", format=1), "utf-8") - doc2.free() - return xml - except NameError: - return doc.toprettyxml(encoding="utf-8") -
-
[docs]class ArgumentValidator(object): - """OAI-PMH request argument validator""" - - def __init__(self, request, response): - self.response = response - self.opt_args = [] - self.required_args = ['verb'] - self.request = request - self.format = None - -
[docs] def optional(self, *args): - """Add optional arguments""" - self.opt_args.extend(args) -
-
[docs] def require(self, *args): - """Add required arguments""" - self.required_args.extend(args) -
-
[docs] def accept_format(self, format): - """Indicate which metadata format is supported""" - self.format = format -
-
[docs] def has_verb(self): - """Check if the request includes a valid Verb, return True if it does, False otherwise, - setting an error into the response""" - - valid = ['GetRecord', 'Identify', 'ListIdentifiers', 'ListMetadataFormats', 'ListRecords', 'ListSets'] - - result = False - if self.request.has_key('verb'): - try: - valid.index(self.request['verb']) - result = True - except ValueError: - pass - - if not result: - self.response.error('badVerb') - - return result -
-
[docs] def validate(self): - """Perform validation, return True if successfull, False otherwise, setting appropriate - errors into the response""" - all_args = [] - all_args[:] = self.opt_args[:] - all_args.extend(self.required_args) - for k in self.request: - try: - all_args.index(k) - if (k == 'set'): - self.response.error('noSetHierarchy') - return False - except ValueError: - self.response.error('badArgument', 'Invalid argument: %s' % k) - return False - - return self.pre_validate() -
-
[docs] def pre_validate(self): - """Same as validate(), but doesn't not check for unknown arguments""" - - for k in self.required_args: - if not self.request.has_key(k): - self.response.error('badArgument', 'Missing required argument: %s' % k) - return False - - for k in self.request: - if k == 'metadataPrefix': - if self.format: - if self.format != self.request[k]: - self.response.error('cannotDisseminateFormat') - return False - else: - raise Exception('Can\'t validate metadataPrefix argument: supported format isn\'t defined') - elif (k == 'from') or (k == 'until'): - if not parse_iso_time(self.request[k]): - self.response.error('badArgument', "Invalid ISO8601 time format in '%s' argument" % k) - return False - - return True -
-
[docs]class DataProvider(object): - """OAI-PMH Data Provider""" - - max_records_per_response = 500 - - def __init__(self, datasource, repository_name, base_url, admin_email): - self.datasource = datasource - self.identity = [ - ('repositoryName', repository_name), - ('baseURL', base_url), - ('protocolVersion', '2.0'), - ('adminEmail', admin_email), - ('deletedRecord', 'no'), - ('granularity', 'YYYY-MM-DDThh:mm:ssZ') - ] - -
[docs] def parse_time_range(self, args): - if args.get('from'): - from_time = parse_iso_time(args['from']) - else: - from_time = None - if args.get('until'): - until_time = parse_iso_time(args['until']) - else: - until_time = None - - return from_time, until_time -
-
[docs] def handle(self, args): - """Handle a request and return the response as a DOM document""" - - response = Response(self.identity, self.datasource) - response.max_records_per_response = self.max_records_per_response - - validator = ArgumentValidator(args, response) - validator.accept_format('oai_dc') - - if validator.has_verb(): - - verb = args['verb'] - response.set_verb(verb) - - if verb == 'Identify': - validator.validate() and response.identify() - elif verb == 'GetRecord': - validator.require('identifier', 'metadataPrefix') - validator.validate() and response.get_record(args['identifier']) - elif verb == 'ListIdentifiers' or verb == 'ListRecords': - validator.optional('metadataPrefix', 'from', 'until', 'set', 'resumptionToken') - from_time, until_time = self.parse_time_range(args) - token = args.get('resumptionToken') - if validator.validate(): - response.list_records(from_time, until_time, token, ids_only = (verb == 'ListIdentifiers')) - elif verb == 'ListSets': - validator.optional('resumptionToken') - validator.validate() and response.error('noSetHierarchy') - elif verb == 'ListMetadataFormats': - validator.optional('identifier') - validator.validate() and response.list_formats(args.get('identifier')) - - xml = doc_to_string(response.doc) - response.free() - return xml -
-
[docs]class Response(object): - """OAI-PMH response generation""" - - max_records_per_response = 500 - - def __init__(self, identity, datasource): - self.identity = identity - self.datasource = datasource - - impl = dom.getDOMImplementation() - self.doc = impl.createDocument(None, 'OAI-PMH', None) - self.root = self.doc.firstChild - self.root.setAttribute('xmlns', 'http://www.openarchives.org/OAI/2.0/') - self.root.setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance') - self.root.setAttribute('xsi:schemaLocation', 'http://www.openarchives.org/OAI/2.0/ ' - 'http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd') - self.append_elements(self.root, {'responseDate': iso_time()}) - self.request = self.root.appendChild(self.doc.createElement('request')) - for k, v in self.identity: - if k == 'baseURL': - url = v - break - self.request.appendChild(self.doc.createTextNode(url)) - -
[docs] def append_elements(self, parent, elements, prefix=None): - """Append several elements to parent. elements must either be a tag:value dict or - an ordered list of (tag, value) tuples.""" - for item in elements: - if isinstance(item, tuple): - tag, value = item - else: - tag = item - value = elements[tag] - if prefix: - tag = prefix + ':' + tag - e = parent.appendChild(self.doc.createElement(tag)) - e.appendChild(self.doc.createTextNode(value)) - return parent -
-
[docs] def set_attributes(self, element, attributes): - """Set several attributes on element, from dict. attributes must either be an - attr:value dict or an ordered list of (attr, value) tuples. If element is a - string, then create an element with than name. Return (possibly created) - element.""" - if isinstance(element, basestring): - element = self.doc.createElement(element) - for item in attributes: - if isinstance(item, tuple): - attr, value = item - else: - attr = item - value = attributes[item] - element.setAttribute(attr, value) - return element -
-
[docs] def set_verb(self, verb): - """Set the verb of the response. Should be called before any 'real' method such - as identify(), get_record(), etc...""" - self.verb = verb - self.request.setAttribute('verb', self.verb) -
-
[docs] def identify(self): - """Append Identify tag and child nodes""" - - identity = [] - identity[:] = self.identity[:] - earliest = self.datasource.get_earliest_time() - identity.insert(4, ('earliestDatestamp', iso_time(earliest))) - - group = self.root.appendChild(self.doc.createElement('Identify')) - self.append_elements(group, identity) -
-
[docs] def error(self, code, msg = None): - """Add error tag using code. If msg is not provided, use a default error message.""" - - msgs = { - 'badArgument': 'Incorrect arguments', - 'badResumptionToken': 'Invalid resumption token', - 'badVerb': 'Illegal OAI verb', - 'noSetHierarchy': 'This repository does not support sets.', - 'idDoesNotExist': 'No such record', - 'cannotDisseminateFormat': 'Unsupported metadata format', - 'noRecordsMatch': 'The request returned an empty record set' - } - - if not msg: - msg = msgs[code] - if not msg: - raise Exception("No such error code: %s" % code) - - err = self.root.appendChild(self.set_attributes('error', {'code': code})) - err.appendChild(self.doc.createTextNode(msg)) -
-
[docs] def make_record_header(self, id, ctime): - """Build and return a record header""" - header = self.doc.createElement('header') - self.append_elements(header, [('identifier', id), ('datestamp', iso_time(ctime))]) - return header -
-
[docs] def make_record(self, id, dc, ctime): - """Build and return a record""" - record = self.doc.createElement('record') - header = record.appendChild(self.make_record_header(id, ctime)) - metadata = record.appendChild(self.doc.createElement('metadata')) - container = metadata.appendChild(self.doc.createElement('oai_dc:dc')) - self.set_attributes(container, [ - ('xmlns:oai_dc', "http://www.openarchives.org/OAI/2.0/oai_dc/"), - ('xmlns:dc', "http://purl.org/dc/elements/1.1/"), - ('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance"), - ('xsi:schemaLocation', "http://www.openarchives.org/OAI/2.0/oai_dc/ " - "http://www.openarchives.org/OAI/2.0/oai_dc.xsd") - ]) - self.append_elements(container, dc, prefix='dc') - return record -
-
[docs] def parse_dc(self, data): - valid = ['title', 'creator', 'subject', 'description', 'publisher', 'contributor', - 'date', 'type', 'format', 'identifier', 'source', 'language', 'relation', - 'coverage', 'rights'] - - parsed = [] - id = None - for k, v in data: - try: - valid.index(k) - parsed.append((k, v)) - if k == 'identifier': - id = v - except ValueError: - pass - - return id, parsed - -
-
[docs] def get_record(self, id): - """Append GetRecord result""" - try: - record = self.datasource.get_record(id) - except BadArgumentError, e: - self.error('badArgument', e.message) - return - if not record: - self.error('idDoesNotExist') - else: - dc, ctime = record - dc_id, dc = self.parse_dc(dc) - if dc_id == None: - raise Exception("DataSource.get_record() didn't provide an 'identifier' dublin core element") -# elif dc_id != id: -# raise Exception("DataSource.get_record() returned an 'identifier' dublin core element " -# "which is different from the requested identifier") - - self.set_attributes(self.request, {'identifier': id, 'metadataPrefix': 'oai_dc'}) - container = self.root.appendChild(self.doc.createElement(self.verb)) - container.appendChild(self.make_record(id, dc, ctime)) -
-
[docs] def format_id_header(self, id): - organization = self.identity[0][1] - if 'http' in id: - id = id.split('/')[-1] - return ':'.join(['oai', organization.lower(), 'items', id]) -
-
[docs] def list_records(self, from_time, until_time, token = None, ids_only = False): - """Append ListIdentifiers or ListRecords result""" - offset = 0 - if token: - self.request.setAttribute('resumptionToken', token) - try: - from_time, until_time, offset = token.split(',') - except ValueError: - self.error('badResumptionToken') - return - - if len(from_time): - from_time = parse_iso_time(from_time) - if not from_time: - self.error('badResumptionToken') - return - else: - from_time = None - - if len(until_time): - until_time = parse_iso_time(until_time) - if not until_time: - self.error('badResumptionToken') - return - else: - until_time = None - - try: - offset = int(offset) - except ValueError: - self.error('badResumptionToken') - return - else: - if from_time: - self.request.setAttribute('from', iso_time(from_time)) - if until_time: - self.request.setAttribute('until', iso_time(until_time)) - - count = self.datasource.count_records(from_time, until_time) - data = self.datasource.list_records(offset, self.max_records_per_response, from_time, until_time) - if (len(data) > self.max_records_per_response): - raise Exception("DataSource.list_records() returned too many records") - - if len(data): - container = self.root.appendChild(self.doc.createElement(self.verb)) - for item in data: - dc, ctime = item - id, dc = self.parse_dc(dc) - id = self.format_id_header(id) - if id == None: - raise Exception("DataSource.list_records() didn't provide an 'identifier' dublin core element") - - if ids_only: - container.appendChild(self.make_record_header(id, ctime)) - else: - container.appendChild(self.make_record(id, dc, ctime)) - - if count - offset > self.max_records_per_response: - token = container.appendChild(self.doc.createElement('resumptionToken')) - token.setAttribute('completeListSize', str(count)) - - if from_time: - from_time = iso_time(from_time) - else: - from_time = '' - - if until_time: - until_time = iso_time(until_time) - else: - until_time = '' - - token_str = "%s,%s,%d" % (from_time, until_time, offset + len(data)) - token.appendChild(self.doc.createTextNode(token_str)) - elif offset: - token = container.appendChild(self.doc.createElement('resumptionToken')) - token.setAttribute('completeListSize', str(count)) - else: - self.error("noRecordsMatch") -
-
[docs] def list_formats(self, id = None): - """Append ListMetadataFormats result""" - if id: - record = self.datasource.get_record(id) - if not record: - self.error('idDoesNotExist') - return - self.request.setAttribute('identifier', id) - - container = self.root.appendChild(self.doc.createElement(self.verb)) - format = container.appendChild(self.doc.createElement('metadataFormat')) - self.append_elements(format, [ - ('metadataPrefix', 'oai_dc'), - ('schema', 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd'), - ('metadataNamespace', 'http://www.openarchives.org/OAI/2.0/oai_dc/') - ]) -
-
[docs] def free(self): - """Free the resources used by this response""" - try: - self.doc.unlink() - except AttributeError: - # Apparently no free/unlink method in libxml2dom - pass -
-
[docs]class BadArgumentError(Exception): - pass
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/templatetags/paginator.html b/doc/devel/_build/html/_modules/telemeta/templatetags/paginator.html deleted file mode 100644 index a9c1700b..00000000 --- a/doc/devel/_build/html/_modules/telemeta/templatetags/paginator.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - - - - telemeta.templatetags.paginator — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.templatetags.paginator

-from django import template
-
-register = template.Library()
- 
-
[docs]def paginator(context, adjacent_pages=2): - """ - To be used in conjunction with the object_list generic view. - - Adds pagination context variables for use in displaying first, adjacent and - last page links in addition to those created by the object_list generic - view. - - Thanks to tummy.com, ltd. - http://www.tummy.com/Community/Articles/django-pagination/ - - """ - startPage = max(context['page'] - adjacent_pages, 1) - if startPage <= 3: startPage = 1 - endPage = context['page'] + adjacent_pages + 1 - if endPage >= context['pages'] - 1: endPage = context['pages'] + 1 - page_numbers = [n for n in range(startPage, endPage) \ - if n > 0 and n <= context['pages']] - page_obj = context['page_obj'] - paginator = context['paginator'] - if context.has_key('criteria'): - criteria = context['criteria'] - else: - criteria = '' - - return { - 'page_obj': page_obj, - 'paginator': paginator, - 'hits': context['hits'], - 'results_per_page': context['results_per_page'], - 'page': context['page'], - 'pages': context['pages'], - 'page_numbers': page_numbers, - 'next': context['next'], - 'previous': context['previous'], - 'has_next': context['has_next'], - 'has_previous': context['has_previous'], - 'show_first': 1 not in page_numbers, - 'show_last': context['pages'] not in page_numbers, - 'criteria' : criteria, - } -
-register.inclusion_tag('telemeta/paginator.html', takes_context=True)(paginator) -
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/tests/test_utils.html b/doc/devel/_build/html/_modules/telemeta/tests/test_utils.html deleted file mode 100644 index 03db8bb9..00000000 --- a/doc/devel/_build/html/_modules/telemeta/tests/test_utils.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - telemeta.tests.test_utils — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.tests.test_utils

-# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2010 Samalyse SARL
-
-# This software is a computer program whose purpose is to backup, analyse,
-# transcode and stream any audio content with its metadata over a web frontend.
-
-# This software is governed by the CeCILL  license under French law and
-# abiding by the rules of distribution of free software.  You can  use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty  and the software's author,  the holder of the
-# economic rights,  and the successive licensors  have only  limited
-# liability.
-
-# In this respect, the user's attention is drawn to the risks associated
-# with loading,  using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean  that it is complicated to manipulate,  and  that  also
-# therefore means  that it is reserved for developers  and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and,  more generally, to use and operate it in the
-# same conditions as regards security.
-
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-#
-# Authors: Olivier Guilyardi <olivier@samalyse.com>
-
-import unittest
-from telemeta.util.unaccent import unaccent_icmp
-
-
[docs]class UnaccentTestCase(unittest.TestCase): -
[docs] def testSorting(self): - strings = [u'Métro', u'évasion', u'àccent', u'È', u'île', u'arrivée', u'elle'] - strings.sort(unaccent_icmp) - expected = [u'àccent', u'arrivée', u'È', u'elle', u'évasion', u'île', u'Métro'] - self.assertEquals(strings, expected) -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/kdenlive/fade.html b/doc/devel/_build/html/_modules/telemeta/util/kdenlive/fade.html deleted file mode 100644 index 222a81b2..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/kdenlive/fade.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - - - - - - telemeta.util.kdenlive.fade — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.kdenlive.fade

-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2012-2013 Guillaume Pellerin <yomguy@parisson.com>
-
-# This file is part of TimeSide.
-
-# TimeSide is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-
-# TimeSide is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with TimeSide.  If not, see <http://www.gnu.org/licenses/>.
-
-# Author: Guillaume Pellerin <yomguy@parisson.com>
-
-
-from telemeta.util.xmltodict2 import *
-
-
-
[docs]class AutoFade(object): - """ Automatically applies a fade in and a fade out trasitions between each segment of a KdenLive session. - Each video clip needs to be splitted into one video track and an audio one ("Split audio"), - so that an audio fade in/out is also applied. - - MLT files are also supported. - """ - - def __init__(self, path, audio_frames_out=2, audio_frames_in=1, - video_frames_out=3, video_frames_in=3): - self.audio_frames_in = audio_frames_in - self.audio_frames_out = audio_frames_out - self.video_frames_in = video_frames_in - self.video_frames_out = video_frames_out - self.path = path - self.session = xmltodict(self.path) - -
[docs] def audio_fade_out(self, frame_out): - child = {'attributes': {u'id': u'fadeout', - u'in': unicode(int(frame_out)-self.audio_frames_out), - u'out': unicode(frame_out)}, - 'children': [{'attributes': {u'name': u'track'}, - 'cdata': '0', - 'name': 'property'}, - {'attributes': {u'name': u'window'}, - 'cdata': '75', - 'name': 'property'}, - {'attributes': {u'name': u'max_gain'}, - 'cdata': '20dB', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_type'}, - 'cdata': 'filter', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_service'}, - 'cdata': 'volume', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_id'}, - 'cdata': 'fadeout', - 'name': 'property'}, - {'attributes': {u'name': u'tag'}, - 'cdata': 'volume', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_ix'}, - 'cdata': '1', - 'name': 'property'}, - {'attributes': {u'name': u'gain'}, 'cdata': '1', 'name': 'property'}, - {'attributes': {u'name': u'end'}, 'cdata': '0', 'name': 'property'}], - 'name': 'filter'} - - return child -
-
[docs] def audio_fade_in(self, frame_in): - child = {'attributes': {u'id': u'fadein', - u'in': unicode(frame_in), - u'out': unicode(int(frame_in)+self.audio_frames_in)}, - 'children': [{'attributes': {u'name': u'track'}, - 'cdata': '0', - 'name': 'property'}, - {'attributes': {u'name': u'window'}, - 'cdata': '75', - 'name': 'property'}, - {'attributes': {u'name': u'max_gain'}, - 'cdata': '20dB', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_type'}, - 'cdata': 'filter', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_service'}, - 'cdata': 'volume', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_id'}, - 'cdata': 'fadein', - 'name': 'property'}, - {'attributes': {u'name': u'tag'}, - 'cdata': 'volume', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_ix'}, - 'cdata': '1', - 'name': 'property'}, - {'attributes': {u'name': u'gain'}, 'cdata': '0', 'name': 'property'}, - {'attributes': {u'name': u'end'}, 'cdata': '1', 'name': 'property'}], - 'name': 'filter'} - - return child - -
-
[docs] def video_fade_out(self, frame_out): - child = {'attributes': {u'id': u'fade_to_black', - u'in': unicode(int(frame_out)-self.video_frames_out), - u'out': unicode(frame_out)}, - 'children': [{'attributes': {u'name': u'track'}, - 'cdata': '0', - 'name': 'property'}, - {'attributes': {u'name': u'start'}, 'cdata': '1', 'name': 'property'}, - {'attributes': {u'name': u'mlt_type'}, - 'cdata': 'filter', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_service'}, - 'cdata': 'brightness', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_id'}, - 'cdata': 'fade_to_black', - 'name': 'property'}, - {'attributes': {u'name': u'tag'}, - 'cdata': 'brightness', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_ix'}, - 'cdata': '1', - 'name': 'property'}, - {'attributes': {u'name': u'end'}, 'cdata': '0', 'name': 'property'}], - 'name': 'filter'} - - return child - -
-
[docs] def video_fade_in(self, frame_in): - child = {'attributes': {u'id': u'fade_from_black', - u'in': unicode(frame_in), - u'out': unicode(int(frame_in)+self.video_frames_in)}, - 'children': [{'attributes': {u'name': u'track'}, - 'cdata': '0', - 'name': 'property'}, - {'attributes': {u'name': u'start'}, 'cdata': '0', 'name': 'property'}, - {'attributes': {u'name': u'mlt_type'}, - 'cdata': 'filter', - 'name': 'property'}, - {'attributes': {u'name': u'mlt_service'}, - 'cdata': 'brightness', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_id'}, - 'cdata': 'fade_from_black', - 'name': 'property'}, - {'attributes': {u'name': u'tag'}, - 'cdata': 'brightness', - 'name': 'property'}, - {'attributes': {u'name': u'kdenlive_ix'}, - 'cdata': '1', - 'name': 'property'}, - {'attributes': {u'name': u'end'}, 'cdata': '1', 'name': 'property'}], - 'name': 'filter'} - - return child -
-
[docs] def run(self): - audio_count = 0 - video_count = 0 - - for attr in self.session['children']: - if 'playlist' in attr['name'] and 'children' in attr: - for att in attr['children']: - if 'producer' in att['attributes'] and not 'children' in att: - producer = att['attributes']['producer'] - if producer != 'black': - - frame_in = att['attributes']['in'] - frame_out = att['attributes']['out'] - - if 'audio' in producer: - if not audio_count % 2: - att['children'] = [self.audio_fade_out(frame_out)] - else: - att['children'] = [self.audio_fade_in(frame_in)] - audio_count += 1 - - - if 'video' in producer: - if not video_count % 2: - att['children'] = [self.video_fade_out(frame_out)] - else: - att['children'] = [self.video_fade_in(frame_in)] - video_count += 1 - - return dicttoxml(self.session).encode('utf-8') -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/kdenlive/session.html b/doc/devel/_build/html/_modules/telemeta/util/kdenlive/session.html deleted file mode 100644 index 5307aff0..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/kdenlive/session.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - telemeta.util.kdenlive.session — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.kdenlive.session

-# -*- coding: utf-8 -*-
-# Copyright (C) 2012-2013 Parisson SARL
-
-# This software is a computer program whose purpose is to backup, analyse,
-# transcode and stream any audio content with its metadata over a web frontend.
-
-# This software is governed by the CeCILL  license under French law and
-# abiding by the rules of distribution of free software.  You can  use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty  and the software's author,  the holder of the
-# economic rights,  and the successive licensors  have only  limited
-# liability.
-
-# In this respect, the user's attention is drawn to the risks associated
-# with loading,  using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean  that it is complicated to manipulate,  and  that  also
-# therefore means  that it is reserved for developers  and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and,  more generally, to use and operate it in the
-# same conditions as regards security.
-
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-
-# Authors: Guillaume Pellerin <yomguy@parisson.com>
-
-
-import time
-from telemeta.util.xmltodict2 import *
-
-
-
[docs]class KDEnLiveSession(object): - - def __init__(self, path): - self.session = xmltodict(path) - -
[docs] def entries(self): - entries = [] - for attr in self.session['children']: - if 'playlist' in attr['name'] and 'children' in attr: - for att in attr['children']: - if 'entry' in att['name'] and att['attributes']['producer'] != 'black': - entries.append(att['attributes']) - return entries -
-
[docs] def video_entries(self): - entries = [] - for attr in self.session['children']: - if 'playlist' in attr['name'] and 'children' in attr: - for att in attr['children']: - if 'entry' in att['name'] and att['attributes']['producer'] != 'black' \ - and not 'audio' in att['attributes']['producer']: - entries.append(att['attributes']) - return entries -
-
[docs] def entries_sorted(self): - return sorted(self.entries(), key=lambda k: int(k['in']), reverse=False) -
-
[docs] def entries_video_seconds(self): - fps = float(self.profile()['frame_rate_num']) - list = [] - entries = self.video_entries() - for i in range(0,len(entries)): - id = entries[i]['producer'].split('_')[0] - t_in = int(entries[i]['in'])/fps - t_out = int(entries[i]['out'])/fps - - if i == 0: - t = 0 - else: - t = list[i-1]['t'] + int(entries[i-1]['out'])/fps - int(entries[i-1]['in'])/fps - - list.append({'id' : id, 't': t, 'in': t_in , 'out': t_out }) - - return list -
-
[docs] def cuts(self, entries): - i = 0 - cuts = [0, ] - for entry in entries: - if i > 0: - cuts.append(cuts[i-1] + int(entries[i]['in'])-int(entries[i-1]['out'])) - i += 1 - return cuts -
-
[docs] def first_video_frame(self): - return int(self.entries_sorted()[0]['in']) -
-
[docs] def profile(self): - for attr in self.session['children']: - if 'profile' in attr['name']: - return attr['attributes'] -
-
[docs] def fix_text(self, text): - try: - s = text.split(' ') - i = int(s[1]) - s.insert(2, ':') - return ' '.join(s) - except: - return text -
-
[docs] def markers(self, offset=0, from_first_marker=False): - """ by default return a dict of markers with timecodes relative to an origin - - if from_first_marker=False: the origin is the first entry timecode - if from_first_marker=True: the origin is the first entry timecode before the first marker - - offset: general origin offset - """ - - abs_time = 0 - markers = [] - i = 0 - entries = self.entries_video_seconds() - - for attr in self.session['children']: - if 'kdenlivedoc' in attr['name']: - - for att in attr['children']: - if 'markers' in att['name'] and 'children' in att.keys(): - - for at in att['children']: - if 'marker' in at['name']: - - marker_time = float(at['attributes']['time'].replace(',','.')) - id = at['attributes']['id'] - rel_time = 0 - - for entry in entries: - if marker_time >= entry['in'] and marker_time <= entry['out'] and id == entry['id']: - if i == 0 and from_first_marker: - abs_time = entry['t'] - rel_time = entry['t'] + (marker_time - entry['in']) - abs_time + offset - break - - at['attributes']['time'] = rel_time - at['attributes']['session_timecode'] = time.strftime('%H:%M:%S', time.gmtime(rel_time)) - at['attributes']['comment'] = self.fix_text(at['attributes']['comment']) - markers.append(at['attributes']) - - i += 1 - return markers -
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/logger.html b/doc/devel/_build/html/_modules/telemeta/util/logger.html deleted file mode 100644 index 207aa936..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/logger.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - telemeta.util.logger — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.logger

-# -*- coding: utf-8 -*-
-
-import logging
-
-
[docs]class Logger: - """A logging object""" - - def __init__(self, file): - self.logger = logging.getLogger('myapp') - self.hdlr = logging.FileHandler(file) - self.formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') - self.hdlr.setFormatter(self.formatter) - self.logger.addHandler(self.hdlr) - self.logger.setLevel(logging.INFO) - -
[docs] def debug(self, msg): - self.logger.error('DEBUG : ' + message) -
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/unaccent.html b/doc/devel/_build/html/_modules/telemeta/util/unaccent.html deleted file mode 100644 index 099a085c..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/unaccent.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - telemeta.util.unaccent — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.unaccent

-# This file by Fredrik Lundh from:
-# http://effbot.org/zone/unicode-convert.htm
-# http://effbot.python-hosting.com/file/stuff/sandbox/text/unaccent.py
-
-# use a dynamically populated translation dictionary to remove accents
-# from a string
-
-import unicodedata, sys
-
-CHAR_REPLACEMENT = {
-    # latin-1 characters that don't have a unicode decomposition
-    0xc6: u"AE", # LATIN CAPITAL LETTER AE
-    0xd0: u"D",  # LATIN CAPITAL LETTER ETH
-    0xd8: u"OE", # LATIN CAPITAL LETTER O WITH STROKE
-    0xde: u"Th", # LATIN CAPITAL LETTER THORN
-    0xdf: u"ss", # LATIN SMALL LETTER SHARP S
-    0xe6: u"ae", # LATIN SMALL LETTER AE
-    0xf0: u"d",  # LATIN SMALL LETTER ETH
-    0xf8: u"oe", # LATIN SMALL LETTER O WITH STROKE
-    0xfe: u"th", # LATIN SMALL LETTER THORN
-    }
-
-##
-# Translation dictionary.  Translation entries are added to this
-# dictionary as needed.
-
-
[docs]class UnaccentedMap(dict): - - ## - # Maps a unicode character code (the key) to a replacement code - # (either a character code or a unicode string). - -
[docs] def mapchar(self, key): - ch = self.get(key) - if ch is not None: - return ch - de = unicodedata.decomposition(unichr(key)) - if de: - try: - ch = int(de.split(None, 1)[0], 16) - except (IndexError, ValueError): - ch = key - else: - ch = CHAR_REPLACEMENT.get(key, key) - self[key] = ch - return ch -
- if sys.version >= "2.5": - # use __missing__ where available - __missing__ = mapchar - else: - # otherwise, use standard __getitem__ hook (this is slower, - # since it's called for each character) - __getitem__ = mapchar - -
-_map = UnaccentedMap() - -
[docs]def unaccent(str): - return str.translate(_map) -
-
[docs]def unaccent_icmp(str1, str2): - str1 = unaccent(str1).lower() - str2 = unaccent(str2).lower() - if str1 > str2: - return 1 - - if str1 < str2: - return -1 - - return 0
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/unicode.html b/doc/devel/_build/html/_modules/telemeta/util/unicode.html deleted file mode 100644 index 9e6a953e..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/unicode.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - telemeta.util.unicode — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.unicode

-# -*- coding: utf-8 -*-
-#
-# Copyright (C) 2010 jdunck
-# Copyright (C) 2011 Parisson
-
-# This software is a computer program whose purpose is to backup, analyse,
-# transcode and stream any audio content with its metadata over a web frontend.
-
-# This software is governed by the CeCILL  license under French law and
-# abiding by the rules of distribution of free software.  You can  use,
-# modify and/ or redistribute the software under the terms of the CeCILL
-# license as circulated by CEA, CNRS and INRIA at the following URL
-# "http://www.cecill.info".
-
-# As a counterpart to the access to the source code and  rights to copy,
-# modify and redistribute granted by the license, users are provided only
-# with a limited warranty  and the software's author,  the holder of the
-# economic rights,  and the successive licensors  have only  limited
-# liability.
-
-# In this respect, the user's attention is drawn to the risks associated
-# with loading,  using,  modifying and/or developing or reproducing the
-# software by the user in light of its specific status of free software,
-# that may mean  that it is complicated to manipulate,  and  that  also
-# therefore means  that it is reserved for developers  and  experienced
-# professionals having in-depth computer knowledge. Users are therefore
-# encouraged to load and test the software's suitability as regards their
-# requirements in conditions enabling the security of their systems and/or
-# data to be ensured and,  more generally, to use and operate it in the
-# same conditions as regards security.
-
-# The fact that you are presently reading this means that you have had
-# knowledge of the CeCILL license and that you accept its terms.
-#
-# Author: jdunck
-# taken from https://github.com/jdunck/python-unicodecsv.git
-
-import csv, codecs, cStringIO
-
-def _stringify(s, encoding):
-    if type(s)==unicode:
-        return s.encode(encoding)
-    elif isinstance(s, (int , float)):
-        pass #let csv.QUOTE_NONNUMERIC do its thing.
-    elif type(s) != str:
-        s=str(s)
-    return s
-    
-def _stringify_list(l, encoding):
-    return [_stringify(s, encoding) for s in l]
-    
-    
-
[docs]class UnicodeWriter(object): - def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): - self.writer = csv.writer(f) - self.dialect = dialect - self.encoding = encoding - self.writer = csv.writer(f, dialect=dialect, **kwds) - -
[docs] def writerow(self, row): - self.writer.writerow(_stringify_list(row, self.encoding)) -
-
[docs] def writerows(self, rows): - for row in rows: - self.writerow(row)
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/url.html b/doc/devel/_build/html/_modules/telemeta/util/url.html deleted file mode 100644 index f23aad49..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/url.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - - - - - telemeta.util.url — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.url

-# -*- coding: utf-8 -*-
-
-import os, re, urllib
-
-
-
[docs]class URLMediaParser(object): - - formats = ['mp3', 'wav', 'ogg', 'flac', 'aac', 'mp4', 'webm'] - - def __init__(self, url): - self.url = url - self.formats = self.get_formats() - self.urls = [] - if self.url[-1] != '/': - self.url += '/' - -
[docs] def get_formats(self): - formats = [] - for f in self.formats: - formats.append(f.upper()) - formats.append(f.lower()) - formats.append(f.capitalize()) - return formats -
-
[docs] def get_urls(self): - data = urllib.urlopen(self.url).read() - for line in data.split("\012"): - s = re.compile('href=".*\.*"').search(line,1) - if s: - filename = line[s.start():s.end()].split('"')[1] - name, ext = os.path.splitext(filename) - if ext[1:] in self.formats: - self.urls.append(self.url + filename) - return self.urls - -
-if __name__ == "__main__": - import sys - parser = URLMediaParser(sys.argv[-1]) - urls = parser.get_urls() - print urls - print len(urls) -
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_modules/telemeta/util/xmltodict2.html b/doc/devel/_build/html/_modules/telemeta/util/xmltodict2.html deleted file mode 100644 index 2392aaa0..00000000 --- a/doc/devel/_build/html/_modules/telemeta/util/xmltodict2.html +++ /dev/null @@ -1,571 +0,0 @@ - - - - - - - - - - telemeta.util.xmltodict2 — Telemeta 1.5.2 documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
-
- -
-
-
- -

Source code for telemeta.util.xmltodict2

-# -*- coding: utf-8 -*-
-""" xmltodict(): convert xml into tree of Python dicts.
-
-This was copied and modified from John Bair's recipe at aspn.activestate.com:
-	http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/149368
-"""
-import os
-import string
-import locale
-from xml.parsers import expat
-
-# If we're in Dabo, get the default encoding.
-#import dabo
-#import dabo.lib.DesignerUtils as desUtil
-#from dabo.dLocalize import _
-#from dabo.lib.utils import resolvePath
-#app = dabo.dAppRef
-#if app is not None:
-	#default_encoding = app.Encoding
-#else:
-		#enc = locale.getlocale()[1]
-		#if enc is None:
-			#enc = dabo.defaultEncoding
-		#default_encoding = enc
-
-# Python seems to need to compile code with \n linesep:
-code_linesep = "\n"
-eol = os.linesep
-default_encoding = 'utf-8'
-default_decoding = 'utf-8'
-
-
[docs]class Xml2Obj: - """XML to Object""" - def __init__(self): - self.root = None - self.nodeStack = [] - self.attsToSkip = [] - self._inCode = False - self._mthdName = "" - self._mthdCode = "" - self._codeDict = None - self._inProp = False - self._propName = "" - self._propData = "" - self._propDict = None - self._currPropAtt = "" - self._currPropDict = None - - -
[docs] def StartElement(self, name, attributes): - """SAX start element even handler""" - if name == "code": - # This is code for the parent element - self._inCode = True - parent = self.nodeStack[-1] - if not parent.has_key("code"): - parent["code"] = {} - self._codeDict = parent["code"] - - elif name == "properties": - # These are the custom property definitions - self._inProp = True - self._propName = "" - self._propData = "" - parent = self.nodeStack[-1] - if not parent.has_key("properties"): - parent["properties"] = {} - self._propDict = parent["properties"] - - else: - if self._inCode: - self._mthdName = name.encode() - elif self._inProp: - if self._propName: - # In the middle of a prop definition - self._currPropAtt = name.encode() - else: - self._propName = name.encode() - self._currPropDict = {} - self._currPropAtt = "" - else: - element = {"name": name.encode()} - if len(attributes) > 0: - for att in self.attsToSkip: - if attributes.has_key(att): - del attributes[att] - element["attributes"] = attributes - - # Push element onto the stack and make it a child of parent - if len(self.nodeStack) > 0: - parent = self.nodeStack[-1] - if not parent.has_key("children"): - parent["children"] = [] - parent["children"].append(element) - else: - self.root = element - self.nodeStack.append(element) - -
-
[docs] def EndElement(self, name): - """SAX end element event handler""" - if self._inCode: - if name == "code": - self._inCode = False - self._codeDict = None - else: - # End of an individual method - mth = self._mthdCode.strip() - if not mth.endswith("\n"): - mth += "\n" - self._codeDict[self._mthdName] = mth - self._mthdName = "" - self._mthdCode = "" - elif self._inProp: - if name == "properties": - self._inProp = False - self._propDict = None - elif name == self._propName: - # End of an individual prop definition - self._propDict[self._propName] = self._currPropDict - self._propName = "" - else: - # end of a property attribute - self._currPropDict[self._currPropAtt] = self._propData - self._propData = self._currPropAtt = "" - else: - self.nodeStack = self.nodeStack[:-1] - -
-
[docs] def CharacterData(self, data): - """SAX character data event handler""" - if self._inCode or data.strip(): - data = data.replace("&lt;", "<") - data = data.encode(default_encoding) - if self._inCode: - if self._mthdCode: - self._mthdCode += data - else: - self._mthdCode = data - elif self._inProp: - self._propData += data - else: - element = self.nodeStack[-1] - if not element.has_key("cdata"): - element["cdata"] = "" - element["cdata"] += data - -
-
[docs] def Parse(self, xml): - # Create a SAX parser - Parser = expat.ParserCreate(default_encoding) - # SAX event handlers - Parser.StartElementHandler = self.StartElement - Parser.EndElementHandler = self.EndElement - Parser.CharacterDataHandler = self.CharacterData - # Parse the XML File - ParserStatus = Parser.Parse(xml, 1) - return self.root - -
-
[docs] def ParseFromFile(self, filename): - return self.Parse(open(filename,"r").read()) - -
-
[docs]def xmltodict(xml, attsToSkip=[], addCodeFile=False): - """Given an xml string or file, return a Python dictionary.""" - parser = Xml2Obj() - parser.attsToSkip = attsToSkip - isPath = os.path.exists(xml) - errmsg = "" - if eol not in xml and isPath: - # argument was a file - try: - ret = parser.ParseFromFile(xml) - except expat.ExpatError, e: - errmsg = "The XML in '%s' is not well-formed and cannot be parsed: %s" % (xml, e) - else: - # argument must have been raw xml: - if not xml.strip().startswith("<?xml "): - # it's a bad file name - errmsg = "The file '%s' could not be found" % xml - else: - try: - ret = parser.Parse(xml) - except expat.ExpatError: - errmsg = "An invalid XML string was encountered" - if errmsg: - raise Exception(errmsg) - - if addCodeFile and isPath: - # Get the associated code file, if any - codePth = "%s-code.py" % os.path.splitext(xml)[0] - if os.path.exists(codePth): - try: - codeDict = desUtil.parseCodeFile(open(codePth).read()) - desUtil.addCodeToClassDict(ret, codeDict) - except StandardError, e: - print "Failed to parse code file:", e - return ret - -
-
[docs]def escQuote(val, noEscape=False, noQuote=False): - """Add surrounding quotes to the string, and escape - any illegal XML characters. - """ - if not isinstance(val, basestring): - val = str(val) - if not isinstance(val, unicode): - val = unicode(val, default_encoding) - if noQuote: - qt = '' - else: - qt = '"' - slsh = "\\" -# val = val.replace(slsh, slsh+slsh) - if not noEscape: - # First escape internal ampersands. We need to double them up due to a - # quirk in wxPython and the way it displays this character. - val = val.replace("&", "&amp;&amp;") - # Escape any internal quotes - val = val.replace('"', '&quot;').replace("'", "&apos;") - # Escape any high-order characters - chars = [] - for pos, char in enumerate(list(val)): - if ord(char) > 127: - chars.append("&#%s;" % ord(char)) - else: - chars.append(char) - val = "".join(chars) - val = val.replace("<", "&#060;").replace(">", "&#062;") - return "%s%s%s" % (qt, val, qt) - -
-
[docs]def dicttoxml(dct, level=0, header=None, linesep=None): - """Given a Python dictionary, return an xml string. - - The dictionary must be in the format returned by dicttoxml(), with keys - on "attributes", "code", "cdata", "name", and "children". - - Send your own XML header, otherwise a default one will be used. - - The linesep argument is a dictionary, with keys on levels, allowing the - developer to add extra whitespace depending on the level. - """ - att = "" - ret = "" - - if dct.has_key("attributes"): - for key, val in dct["attributes"].items(): - # Some keys are already handled. - noEscape = key in ("sizerInfo",) - val = escQuote(val, noEscape) - att += " %s=%s" % (key, val) - ret += "%s<%s%s" % ("\t" * level, dct["name"], att) - - if (not dct.has_key("cdata") and not dct.has_key("children") - and not dct.has_key("code") and not dct.has_key("properties")): - ret += " />%s" % eol - else: - ret += ">" - if dct.has_key("cdata"): - ret += "%s" % dct["cdata"].decode(default_encoding).replace("<", "&lt;") - - if dct.has_key("code"): - if len(dct["code"].keys()): - ret += "%s%s<code>%s" % (eol, "\t" * (level+1), eol) - methodTab = "\t" * (level+2) - for mthd, cd in dct["code"].items(): - # Convert \n's in the code to eol: - cd = eol.join(cd.splitlines()) - - # Make sure that the code ends with a linefeed - if not cd.endswith(eol): - cd += eol - - ret += "%s<%s><![CDATA[%s%s]]>%s%s</%s>%s" % (methodTab, - mthd, eol, cd, eol, - methodTab, mthd, eol) - ret += "%s</code>%s" % ("\t" * (level+1), eol) - - if dct.has_key("properties"): - if len(dct["properties"].keys()): - ret += "%s%s<properties>%s" % (eol, "\t" * (level+1), eol) - currTab = "\t" * (level+2) - for prop, val in dct["properties"].items(): - ret += "%s<%s>%s" % (currTab, prop, eol) - for propItm, itmVal in val.items(): - itmTab = "\t" * (level+3) - ret += "%s<%s>%s</%s>%s" % (itmTab, propItm, itmVal, - propItm, eol) - ret += "%s</%s>%s" % (currTab, prop, eol) - ret += "%s</properties>%s" % ("\t" * (level+1), eol) - - if dct.has_key("children") and len(dct["children"]) > 0: - ret += eol - for child in dct["children"]: - ret += dicttoxml(child, level+1, linesep=linesep) - indnt = "" - if ret.endswith(eol): - # Indent the closing tag - indnt = ("\t" * level) - ret += "%s</%s>%s" % (indnt, dct["name"], eol) - - if linesep: - ret += linesep.get(level, "") - - if level == 0: - if header is None: - header = '<?xml version="1.0" encoding="%s" standalone="no"?>%s' \ - % (default_encoding, eol) - ret = header + ret - - return ret - -
-
[docs]def flattenClassDict(cd, retDict=None): - """Given a dict containing a series of nested objects such as would - be created by restoring from a cdxml file, returns a dict with all classIDs - as keys, and a dict as the corresponding value. The dict value will have - keys for the attributes and/or code, depending on what was in the original - dict. The end result is to take a nested dict structure and return a flattened - dict with all objects at the top level. - """ - if retDict is None: - retDict = {} - atts = cd.get("attributes", {}) - props = cd.get("properties", {}) - kids = cd.get("children", []) - code = cd.get("code", {}) - classID = atts.get("classID", "") - classFile = resolvePath(atts.get("designerClass", "")) - superclass = resolvePath(atts.get("superclass", "")) - superclassID = atts.get("superclassID", "") - if superclassID and os.path.exists(superclass): - # Get the superclass info - superCD = xmltodict(superclass, addCodeFile=True) - flattenClassDict(superCD, retDict) - if classID: - if os.path.exists(classFile): - # Get the class info - classCD = xmltodict(classFile, addCodeFile=True) - classAtts = classCD.get("attributes", {}) - classProps = classCD.get("properties", {}) - classCode = classCD.get("code", {}) - classKids = classCD.get("children", []) - currDict = retDict.get(classID, {}) - retDict[classID] = {"attributes": classAtts, "code": classCode, - "properties": classProps} - retDict[classID].update(currDict) - # Now update the child objects in the dict - for kid in classKids: - flattenClassDict(kid, retDict) - else: - # Not a file; most likely just a component in another class - currDict = retDict.get(classID, {}) - retDict[classID] = {"attributes": atts, "code": code, - "properties": props} - retDict[classID].update(currDict) - if kids: - for kid in kids: - flattenClassDict(kid, retDict) - return retDict - -
-
[docs]def addInheritedInfo(src, super, updateCode=False): - """Called recursively on the class container structure, modifying - the attributes to incorporate superclass information. When the - 'updateCode' parameter is True, superclass code is added to the - object's code - """ - atts = src.get("attributes", {}) - props = src.get("properties", {}) - kids = src.get("children", []) - code = src.get("code", {}) - classID = atts.get("classID", "") - if classID: - superInfo = super.get(classID, {"attributes": {}, "code": {}, "properties": {}}) - src["attributes"] = superInfo["attributes"].copy() - src["attributes"].update(atts) - src["properties"] = superInfo.get("properties", {}).copy() - src["properties"].update(props) - if updateCode: - src["code"] = superInfo["code"].copy() - src["code"].update(code) - if kids: - for kid in kids: - addInheritedInfo(kid, super, updateCode) - - - -#if __name__ == "__main__": - #test_dict = {"name": "test", "attributes":{"path": "c:\\temp\\name", - #"problemChars": "Welcome to <Jos\xc3\xa9's \ Stuff!>\xc2\xae".decode("latin-1")}} - #print "test_dict:", test_dict - #xml = dicttoxml(test_dict) - #print "xml:", xml - #test_dict2 = xmltodict(xml) - #print "test_dict2:", test_dict2 - #print "same?:", test_dict == test_dict2
-
- -
- -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_sources/index.txt b/doc/devel/_build/html/_sources/index.txt deleted file mode 100644 index e7ec9c15..00000000 --- a/doc/devel/_build/html/_sources/index.txt +++ /dev/null @@ -1,23 +0,0 @@ -.. telemeta documentation master file, created by - sphinx-quickstart on Fri Mar 13 16:46:29 2015. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to telemeta's documentation! -==================================== - -Contents: - -.. toctree:: - :maxdepth: 6 - - telemeta - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/doc/devel/_build/html/_sources/telemeta.backup.txt b/doc/devel/_build/html/_sources/telemeta.backup.txt deleted file mode 100644 index 44d98341..00000000 --- a/doc/devel/_build/html/_sources/telemeta.backup.txt +++ /dev/null @@ -1,22 +0,0 @@ -telemeta.backup package -======================= - -Submodules ----------- - -telemeta.backup.core module ---------------------------- - -.. automodule:: telemeta.backup.core - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.backup - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.forms.txt b/doc/devel/_build/html/_sources/telemeta.forms.txt deleted file mode 100644 index 5c669ae6..00000000 --- a/doc/devel/_build/html/_sources/telemeta.forms.txt +++ /dev/null @@ -1,46 +0,0 @@ -telemeta.forms package -====================== - -Submodules ----------- - -telemeta.forms.format module ----------------------------- - -.. automodule:: telemeta.forms.format - :members: - :undoc-members: - :show-inheritance: - -telemeta.forms.language module ------------------------------- - -.. automodule:: telemeta.forms.language - :members: - :undoc-members: - :show-inheritance: - -telemeta.forms.media module ---------------------------- - -.. automodule:: telemeta.forms.media - :members: - :undoc-members: - :show-inheritance: - -telemeta.forms.system module ----------------------------- - -.. automodule:: telemeta.forms.system - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.forms - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.interop.txt b/doc/devel/_build/html/_sources/telemeta.interop.txt deleted file mode 100644 index d967e7c7..00000000 --- a/doc/devel/_build/html/_sources/telemeta.interop.txt +++ /dev/null @@ -1,38 +0,0 @@ -telemeta.interop package -======================== - -Submodules ----------- - -telemeta.interop.oai module ---------------------------- - -.. automodule:: telemeta.interop.oai - :members: - :undoc-members: - :show-inheritance: - -telemeta.interop.oaidatasource module -------------------------------------- - -.. automodule:: telemeta.interop.oaidatasource - :members: - :undoc-members: - :show-inheritance: - -telemeta.interop.oaitest module -------------------------------- - -.. automodule:: telemeta.interop.oaitest - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.interop - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.management.commands.txt b/doc/devel/_build/html/_sources/telemeta.management.commands.txt deleted file mode 100644 index b571775a..00000000 --- a/doc/devel/_build/html/_sources/telemeta.management.commands.txt +++ /dev/null @@ -1,126 +0,0 @@ -telemeta.management.commands package -==================================== - -Submodules ----------- - -telemeta.management.commands.telemeta-cleanup module ----------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-cleanup - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-create-admin-user module --------------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-create-admin-user - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-crem-import module --------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-crem-import - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-export-fields module ----------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-export-fields - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-export-item-revisions-plot module ------------------------------------------------------------------------ - -.. automodule:: telemeta.management.commands.telemeta-export-item-revisions-plot - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-fix-item-markers module -------------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-fix-item-markers - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-geocode module ----------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-geocode - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-import-items-from-url module ------------------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-import-items-from-url - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-import-items-without-copy module ----------------------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-import-items-without-copy - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-import-items module ---------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-import-items - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-init-formats module ---------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-init-formats - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-media-import module ---------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-media-import - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-test-boilerplate module -------------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-test-boilerplate - :members: - :undoc-members: - :show-inheritance: - -telemeta.management.commands.telemeta-test-import module --------------------------------------------------------- - -.. automodule:: telemeta.management.commands.telemeta-test-import - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.management.commands - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.management.txt b/doc/devel/_build/html/_sources/telemeta.management.txt deleted file mode 100644 index 5fc28df4..00000000 --- a/doc/devel/_build/html/_sources/telemeta.management.txt +++ /dev/null @@ -1,17 +0,0 @@ -telemeta.management package -=========================== - -Subpackages ------------ - -.. toctree:: - - telemeta.management.commands - -Module contents ---------------- - -.. automodule:: telemeta.management - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.migrations.txt b/doc/devel/_build/html/_sources/telemeta.migrations.txt deleted file mode 100644 index aefb41b5..00000000 --- a/doc/devel/_build/html/_sources/telemeta.migrations.txt +++ /dev/null @@ -1,286 +0,0 @@ -telemeta.migrations package -=========================== - -Submodules ----------- - -telemeta.migrations.0001_initial module ---------------------------------------- - -.. automodule:: telemeta.migrations.0001_initial - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0002_auto__del_mediacorpuscollectionrelation__del_unique_mediacorpuscollect module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0002_auto__del_mediacorpuscollectionrelation__del_unique_mediacorpuscollect - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0003_auto__add_criteria__add_field_search_description module --------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0003_auto__add_criteria__add_field_search_description - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0004_auto__del_field_search_keywords module ---------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0004_auto__del_field_search_keywords - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0005_auto__chg_field_search_date module ------------------------------------------------------------ - -.. automodule:: telemeta.migrations.0005_auto__chg_field_search_date - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0006_auto__add_tapespeed__add_tapewidth__add_tapevendor__add_tapelength module --------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0006_auto__add_tapespeed__add_tapewidth__add_tapevendor__add_tapelength - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0007_auto__add_format module ------------------------------------------------- - -.. automodule:: telemeta.migrations.0007_auto__add_format - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0008_auto__del_field_format_support_number__add_field_format_tape_number module ---------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0008_auto__del_field_format_support_number__add_field_format_tape_number - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0009_auto__chg_field_mediaitem_language_iso__del_field_userprofile_departem module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0009_auto__chg_field_mediaitem_language_iso__del_field_userprofile_departem - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0010_auto__add_wheeldiameter__add_originalformat__del_field_format_tape_num module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0010_auto__add_wheeldiameter__add_originalformat__del_field_format_tape_num - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0011_auto__del_field_format_item module ------------------------------------------------------------ - -.. automodule:: telemeta.migrations.0011_auto__del_field_format_item - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0012_auto__add_field_mediaitem_original_format module -------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0012_auto__add_field_mediaitem_original_format - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0013_auto__chg_field_format_conservation_state module -------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0013_auto__chg_field_format_conservation_state - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0014_auto__add_originallocation__del_field_mediaitem_original_format__del_f module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0014_auto__add_originallocation__del_field_mediaitem_original_format__del_f - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0015_auto__chg_field_format_item module ------------------------------------------------------------ - -.. automodule:: telemeta.migrations.0015_auto__chg_field_format_item - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0016_auto__del_wheeldiameter__add_tapewheeldiameter__add_channelnumber__chg module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0016_auto__del_wheeldiameter__add_tapewheeldiameter__add_channelnumber__chg - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0017_auto__del_originalformat__del_channelnumber__add_numberofchannels__del module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0017_auto__del_originalformat__del_channelnumber__add_numberofchannels__del - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0018_auto__del_originallocation__add_organization__add_rights__add_field_me module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0018_auto__del_originallocation__add_organization__add_rights__add_field_me - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0019_auto__add_subject__del_field_mediaitem_domain__add_field_mediaitem_sub module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0019_auto__add_subject__del_field_mediaitem_domain__add_field_mediaitem_sub - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0020_auto__del_subject__add_topic__del_field_mediaitem_subject__add_field_m module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0020_auto__del_subject__add_topic__del_field_mediaitem_subject__add_field_m - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0021_auto__chg_field_mediaitemrelated_file__chg_field_mediafondsrelated_fil module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0021_auto__chg_field_mediaitemrelated_file__chg_field_mediafondsrelated_fil - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0022_auto__chg_field_mediaitem_file module --------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0022_auto__chg_field_mediaitem_file - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0023_auto__chg_field_mediaitem_file module --------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0023_auto__chg_field_mediaitem_file - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0024_auto__add_field_mediaitem_mimetype module ------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0024_auto__add_field_mediaitem_mimetype - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0025_auto__chg_field_mediaitemmarker_author module ----------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0025_auto__chg_field_mediaitemmarker_author - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0026_auto__add_mediaitemtranscoded module -------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0026_auto__add_mediaitemtranscoded - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0027_auto__add_field_mediaitem_auto_period_access__add_field_mediacollectio module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0027_auto__add_field_mediaitem_auto_period_access__add_field_mediacollectio - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0028_auto__del_field_mediacorpus_reference__del_field_mediafonds_reference module ------------------------------------------------------------------------------------------------------ - -.. automodule:: telemeta.migrations.0028_auto__del_field_mediacorpus_reference__del_field_mediafonds_reference - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0029_auto__chg_field_instrumentaliasrelation_instrument module ----------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0029_auto__chg_field_instrumentaliasrelation_instrument - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0030_auto__add_field_mediacorpus_descriptions__add_field_mediafonds_descrip module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0030_auto__add_field_mediacorpus_descriptions__add_field_mediafonds_descrip - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0031_auto__chg_field_mediacollection_doctype_code module ----------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0031_auto__chg_field_mediacollection_doctype_code - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0032_auto__add_field_mediaitem_url module -------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0032_auto__add_field_mediaitem_url - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0033_auto__chg_field_mediacollection_doctype_code module ----------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0033_auto__chg_field_mediacollection_doctype_code - :members: - :undoc-members: - :show-inheritance: - -telemeta.migrations.0034_auto__add_mediaitemidentifier__add_unique_mediaitemidentifier_identifi module ------------------------------------------------------------------------------------------------------- - -.. automodule:: telemeta.migrations.0034_auto__add_mediaitemidentifier__add_unique_mediaitemidentifier_identifi - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.migrations - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.models.txt b/doc/devel/_build/html/_sources/telemeta.models.txt deleted file mode 100644 index 6f821dd0..00000000 --- a/doc/devel/_build/html/_sources/telemeta.models.txt +++ /dev/null @@ -1,158 +0,0 @@ -telemeta.models package -======================= - -Submodules ----------- - -telemeta.models.collection module ---------------------------------- - -.. automodule:: telemeta.models.collection - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.core module ---------------------------- - -.. automodule:: telemeta.models.core - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.corpus module ------------------------------ - -.. automodule:: telemeta.models.corpus - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.dublincore module ---------------------------------- - -.. automodule:: telemeta.models.dublincore - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.enum module ---------------------------- - -.. automodule:: telemeta.models.enum - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.fields module ------------------------------ - -.. automodule:: telemeta.models.fields - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.fonds module ----------------------------- - -.. automodule:: telemeta.models.fonds - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.format module ------------------------------ - -.. automodule:: telemeta.models.format - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.identifier module ---------------------------------- - -.. automodule:: telemeta.models.identifier - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.instrument module ---------------------------------- - -.. automodule:: telemeta.models.instrument - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.item module ---------------------------- - -.. automodule:: telemeta.models.item - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.language module -------------------------------- - -.. automodule:: telemeta.models.language - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.location module -------------------------------- - -.. automodule:: telemeta.models.location - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.playlist module -------------------------------- - -.. automodule:: telemeta.models.playlist - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.query module ----------------------------- - -.. automodule:: telemeta.models.query - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.resource module -------------------------------- - -.. automodule:: telemeta.models.resource - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.system module ------------------------------ - -.. automodule:: telemeta.models.system - :members: - :undoc-members: - :show-inheritance: - -telemeta.models.utils module ----------------------------- - -.. automodule:: telemeta.models.utils - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.models - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.templatetags.txt b/doc/devel/_build/html/_sources/telemeta.templatetags.txt deleted file mode 100644 index 4b1d38f9..00000000 --- a/doc/devel/_build/html/_sources/telemeta.templatetags.txt +++ /dev/null @@ -1,30 +0,0 @@ -telemeta.templatetags package -============================= - -Submodules ----------- - -telemeta.templatetags.paginator module --------------------------------------- - -.. automodule:: telemeta.templatetags.paginator - :members: - :undoc-members: - :show-inheritance: - -telemeta.templatetags.telemeta_utils module -------------------------------------------- - -.. automodule:: telemeta.templatetags.telemeta_utils - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.templatetags - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.tests.txt b/doc/devel/_build/html/_sources/telemeta.tests.txt deleted file mode 100644 index 90935ca8..00000000 --- a/doc/devel/_build/html/_sources/telemeta.tests.txt +++ /dev/null @@ -1,54 +0,0 @@ -telemeta.tests package -====================== - -Submodules ----------- - -telemeta.tests.instrument_factories module ------------------------------------------- - -.. automodule:: telemeta.tests.instrument_factories - :members: - :undoc-members: - :show-inheritance: - -telemeta.tests.model_tests module ---------------------------------- - -.. automodule:: telemeta.tests.model_tests - :members: - :undoc-members: - :show-inheritance: - -telemeta.tests.settings_sqlite module -------------------------------------- - -.. automodule:: telemeta.tests.settings_sqlite - :members: - :undoc-members: - :show-inheritance: - -telemeta.tests.test_models_instrument module --------------------------------------------- - -.. automodule:: telemeta.tests.test_models_instrument - :members: - :undoc-members: - :show-inheritance: - -telemeta.tests.test_utils module --------------------------------- - -.. automodule:: telemeta.tests.test_utils - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.tests - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.txt b/doc/devel/_build/html/_sources/telemeta.txt deleted file mode 100644 index adbf570e..00000000 --- a/doc/devel/_build/html/_sources/telemeta.txt +++ /dev/null @@ -1,78 +0,0 @@ -telemeta package -================ - -Subpackages ------------ - -.. toctree:: - - telemeta.backup - telemeta.forms - telemeta.interop - telemeta.management - telemeta.migrations - telemeta.models - telemeta.templatetags - telemeta.tests - telemeta.util - telemeta.views - -Submodules ----------- - -telemeta.admin module ---------------------- - -.. automodule:: telemeta.admin - :members: - :undoc-members: - :show-inheritance: - -telemeta.cache module ---------------------- - -.. automodule:: telemeta.cache - :members: - :undoc-members: - :show-inheritance: - -telemeta.config module ----------------------- - -.. automodule:: telemeta.config - :members: - :undoc-members: - :show-inheritance: - -telemeta.core module --------------------- - -.. automodule:: telemeta.core - :members: - :undoc-members: - :show-inheritance: - -telemeta.settings_base module ------------------------------ - -.. automodule:: telemeta.settings_base - :members: - :undoc-members: - :show-inheritance: - -telemeta.urls module --------------------- - -.. automodule:: telemeta.urls - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.util.kdenlive.txt b/doc/devel/_build/html/_sources/telemeta.util.kdenlive.txt deleted file mode 100644 index e8bcd720..00000000 --- a/doc/devel/_build/html/_sources/telemeta.util.kdenlive.txt +++ /dev/null @@ -1,54 +0,0 @@ -telemeta.util.kdenlive package -============================== - -Submodules ----------- - -telemeta.util.kdenlive.auto_fade module ---------------------------------------- - -.. automodule:: telemeta.util.kdenlive.auto_fade - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.kdenlive.auto_fade_batch module ---------------------------------------------- - -.. automodule:: telemeta.util.kdenlive.auto_fade_batch - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.kdenlive.fade module ----------------------------------- - -.. automodule:: telemeta.util.kdenlive.fade - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.kdenlive.mlt_process_batch module ------------------------------------------------ - -.. automodule:: telemeta.util.kdenlive.mlt_process_batch - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.kdenlive.session module -------------------------------------- - -.. automodule:: telemeta.util.kdenlive.session - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.util.kdenlive - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.util.txt b/doc/devel/_build/html/_sources/telemeta.util.txt deleted file mode 100644 index 0339c440..00000000 --- a/doc/devel/_build/html/_sources/telemeta.util.txt +++ /dev/null @@ -1,69 +0,0 @@ -telemeta.util package -===================== - -Subpackages ------------ - -.. toctree:: - - telemeta.util.kdenlive - -Submodules ----------- - -telemeta.util.locale_fix module -------------------------------- - -.. automodule:: telemeta.util.locale_fix - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.logger module ---------------------------- - -.. automodule:: telemeta.util.logger - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.unaccent module ------------------------------ - -.. automodule:: telemeta.util.unaccent - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.unicode module ----------------------------- - -.. automodule:: telemeta.util.unicode - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.url module ------------------------- - -.. automodule:: telemeta.util.url - :members: - :undoc-members: - :show-inheritance: - -telemeta.util.xmltodict2 module -------------------------------- - -.. automodule:: telemeta.util.xmltodict2 - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.util - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_sources/telemeta.views.txt b/doc/devel/_build/html/_sources/telemeta.views.txt deleted file mode 100644 index b2a5c1b5..00000000 --- a/doc/devel/_build/html/_sources/telemeta.views.txt +++ /dev/null @@ -1,118 +0,0 @@ -telemeta.views package -====================== - -Submodules ----------- - -telemeta.views.admin module ---------------------------- - -.. automodule:: telemeta.views.admin - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.collection module --------------------------------- - -.. automodule:: telemeta.views.collection - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.core module --------------------------- - -.. automodule:: telemeta.views.core - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.feed module --------------------------- - -.. automodule:: telemeta.views.feed - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.geo module -------------------------- - -.. automodule:: telemeta.views.geo - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.home module --------------------------- - -.. automodule:: telemeta.views.home - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.instrument module --------------------------------- - -.. automodule:: telemeta.views.instrument - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.item module --------------------------- - -.. automodule:: telemeta.views.item - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.marker module ----------------------------- - -.. automodule:: telemeta.views.marker - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.pages module ---------------------------- - -.. automodule:: telemeta.views.pages - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.playlist module ------------------------------- - -.. automodule:: telemeta.views.playlist - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.profile module ------------------------------ - -.. automodule:: telemeta.views.profile - :members: - :undoc-members: - :show-inheritance: - -telemeta.views.resource module ------------------------------- - -.. automodule:: telemeta.views.resource - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: telemeta.views - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/devel/_build/html/_static/ajax-loader.gif b/doc/devel/_build/html/_static/ajax-loader.gif deleted file mode 100644 index 61faf8cab23993bd3e1560bff0668bd628642330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN diff --git a/doc/devel/_build/html/_static/alabaster.css b/doc/devel/_build/html/_static/alabaster.css deleted file mode 100644 index 1b93bdeb..00000000 --- a/doc/devel/_build/html/_static/alabaster.css +++ /dev/null @@ -1,587 +0,0 @@ - - - - - - - - - - - - - - - - - - - - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; - font-size: 17px; - background-color: white; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #ffffff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -div.related { - display: none; -} - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebar { - font-size: 14px; - line-height: 1.5; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: 'Garamond', 'Georgia', serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #999; - background: #999; - - text-align: left; - margin-left: 0; - width: 50%; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #FCC; - border: 1px solid #FAA; -} - -div.admonition tt.xref, div.admonition a tt { - border-bottom: 1px solid #fafafa; -} - -dd div.admonition { - margin-left: -60px; - padding-left: 60px; -} - -div.admonition p.admonition-title { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: white; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #eee; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.footnote td.label { - width: 0px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -dl pre, blockquote pre, li pre { - margin-left: -60px; - padding-left: 60px; -} - -dl dl pre { - margin-left: -90px; - padding-left: 90px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid white; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: white; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: white; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.related { - display: block; - margin: 0; - padding: 10px 0 20px 0; - } - - div.related ul, - div.related ul li { - margin: 0; - padding: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border:none; -} \ No newline at end of file diff --git a/doc/devel/_build/html/_static/basic.css b/doc/devel/_build/html/_static/basic.css deleted file mode 100644 index 9fa77d88..00000000 --- a/doc/devel/_build/html/_static/basic.css +++ /dev/null @@ -1,599 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox input[type="text"] { - width: 170px; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - width: 30px; -} - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable dl, table.indextable dd { - margin-top: 0; - margin-bottom: 0; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- general body styles --------------------------------------------------- */ - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.field-list ul { - padding-left: 1em; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.field-list td, table.field-list th { - border: 0 !important; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text { -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -dl { - margin-bottom: 15px; -} - -dd p { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, .highlighted { - background-color: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/doc/devel/_build/html/_static/comment-bright.png b/doc/devel/_build/html/_static/comment-bright.png deleted file mode 100644 index 551517b8c83b76f734ff791f847829a760ad1903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3500 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 A2LJ#7 diff --git a/doc/devel/_build/html/_static/comment.png b/doc/devel/_build/html/_static/comment.png deleted file mode 100644 index 92feb52b8824c6b0f59b658b1196c61de9162a95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjfa,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.pull-left.icon{margin-right:.3em}.fa.pull-right,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .icon,.nav .fa,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .icon{display:inline}.btn .fa.fa-large,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .fa-large.icon{line-height:0.9em}.btn .fa.fa-spin,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.btn.icon:before{opacity:0.5;-webkit-transition:opacity 0.05s ease-in;-moz-transition:opacity 0.05s ease-in;transition:opacity 0.05s ease-in}.btn.fa:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#6ab0de;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo{background:#e7f2fa}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#6ab0de}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo{background:#dbfaf4}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#1abc9c}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a{color:#2980B9}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all 0.3s ease-in;-moz-transition:all 0.3s ease-in;transition:all 0.3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#2980B9}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.1s linear;-moz-transition:all 0.1s linear;transition:all 0.1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980B9 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#2980B9;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#9B59B6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980B9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 0.3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.35765%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:0.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}input[type="datetime-local"]{padding:0.34375em 0.625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:0.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:0.5em 0.625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{width:36px;height:12px;margin:12px 0;position:relative;border-radius:4px;background:#ccc;cursor:pointer;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wy-switch:before{position:absolute;content:"";display:block;width:18px;height:18px;border-radius:4px;background:#999;left:-3px;top:-3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wy-switch:after{content:"false";position:absolute;left:48px;display:block;font-size:12px;color:#ccc}.wy-switch.active{background:#1e8449}.wy-switch.active:before{left:24px;background:#27AE60}.wy-switch.active:after{content:"true"}.wy-switch.disabled,.wy-switch.active.disabled{cursor:not-allowed}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:0.5em 0.625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em;display:block}.wy-form label{margin-bottom:0.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980B9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9B59B6}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#2980B9 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.codeblock-example{border:1px solid #e1e4e5;border-bottom:none;padding:24px;padding-top:48px;font-weight:500;background:#fff;position:relative}.codeblock-example:after{content:"Example";position:absolute;top:0px;left:0px;background:#9B59B6;color:#fff;padding:6px 12px}.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5;margin-bottom:24px}.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5;padding:0px;overflow-x:auto;background:#fff;margin:1px 0 24px 0}.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none;background:none;margin:0}div[class^='highlight'] td.code{width:100%}.linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical header{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;color:#2980B9;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:0.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical .local-toc li ul{display:block}.wy-menu-vertical li ul li a{margin-bottom:0;color:#b3b3b3;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:0.4045em 1.618em;display:block;position:relative;font-size:90%;color:#b3b3b3}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:active{background-color:#2980B9;cursor:pointer;color:#fff}.wy-side-nav-search{z-index:200;background-color:#2980B9;text-align:center;padding:0.809em;display:block;color:#fcfcfc;margin-bottom:0.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto 0.809em auto;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:0.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-nav .wy-menu-vertical header{color:#2980B9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980B9;color:#fff}[data-menu-wrap]{-webkit-transition:all 0.2s ease-in;-moz-transition:all 0.2s ease-in;transition:all 0.2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:left repeat-y #fcfcfc;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);background-size:300px 1px}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:absolute;top:0;left:0;width:300px;overflow:hidden;min-height:100%;background:#343131;z-index:200}.wy-nav-top{display:none;background:#2980B9;color:#fff;padding:0.4045em 0.809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:#999}footer p{margin-bottom:12px}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}nav.stickynav{position:fixed;top:0}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}}.rst-content img{max-width:100%;height:auto !important}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .line-block{margin-left:24px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto;display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;display:inline-block}.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink{display:inline-block}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:#999}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none;padding-top:5px}.rst-content table.field-list td>strong{display:inline-block;margin-top:3px}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left;padding-left:0}.rst-content tt{color:#000}.rst-content tt big,.rst-content tt em{font-size:100% !important;line-height:normal}.rst-content tt .xref,a .rst-content tt{font-weight:bold}.rst-content a tt{color:#2980B9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:inline-block;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#6ab0de}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:gray}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center} -/*# sourceMappingURL=theme.css.map */ diff --git a/doc/devel/_build/html/_static/doctools.js b/doc/devel/_build/html/_static/doctools.js deleted file mode 100644 index c7bfe760..00000000 --- a/doc/devel/_build/html/_static/doctools.js +++ /dev/null @@ -1,263 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2015 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this); - }); - } - } - return this.each(function() { - highlight(this); - }); -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') - return string; - return (typeof translated == 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) == 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/doc/devel/_build/html/_static/down-pressed.png b/doc/devel/_build/html/_static/down-pressed.png deleted file mode 100644 index 7c30d004b71b32bb2fc06b3bd4dc8278baab0946..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~&H|6fVxZ#d zAk65bF}ngN$X?><>&kwMor^(NtW3yF87Slz;1l8sq&LUMQwy<>&kwMol#tg zK_ydLmzem(vK1>2TzUEGl*lj!N<7$PCrdoWV0 z$w0*Ap!bZ4if7h;-yfL#MC0e;t{xY+$l~DX2EWYIPet1cohf^BdG+jXhtuq&W-0|c zKPmlKv-7OTjb}T)7@fTGd9y~u4{g8An;)c2U=w=nwQ7}zVDc>n+a diff --git a/doc/devel/_build/html/_static/file.png b/doc/devel/_build/html/_static/file.png deleted file mode 100644 index 254c60bfbe2715ae2edca48ebccfd074deb8031d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJXMsm#F#`j)FbFd;%$g$s6l5>) z^mS#w%FV~i&ZxO9L3Zxqw8>dd4I&zcKG){Yx14xKr0

ZQJ$m%mv17-NAAj}g)$7-<-@JMA z_U+TRK=AR}yLa#2zkmPX!-tO_KYsf3>Hq)#%qnY_1Fd8&3GxeO2wSmci|LJf=|BO- zByV>Yl`U*PX977no-U3d5|XS39sLdkFt8q|+|QqL_#ErUf6I%zFA7b%b>3$hFGGFs zc72AL|61pRJ1(+5wNdg|xP#*`gQ~lOnTFKiIjl#S3)+QV=h{~`9{M=hx#5uZ&-tIF sG!8onYS_8EFr8v&@CavkqYey&g)1epR*Fkm0PSV)boFyt=akR{044O6bN~PV diff --git a/doc/devel/_build/html/_static/fonts/fontawesome-webfont.eot b/doc/devel/_build/html/_static/fonts/fontawesome-webfont.eot deleted file mode 100644 index 7c79c6a6bc9a128a2a8eaffbe49a4338625fdbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38205 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 E0QL`y%>V!Z diff --git a/doc/devel/_build/html/_static/fonts/fontawesome-webfont.svg b/doc/devel/_build/html/_static/fonts/fontawesome-webfont.svg deleted file mode 100644 index 45fdf338..00000000 --- a/doc/devel/_build/html/_static/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/doc/devel/_build/html/_static/fonts/fontawesome-webfont.ttf b/doc/devel/_build/html/_static/fonts/fontawesome-webfont.ttf deleted file mode 100644 index e89738de5eaf8fca33a2f2cdc5cb4929caa62b71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80652 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 qx{Kk=rVu5YQ9XR<GPS>b$X_& zr@E%wRZdI{1Qg`ERKc?6xc~A0WB<2^i7Cl^2Z(%A-2Y_45ThzCA}aRH^uB$9 zZxMnHfc%hCWMKYgf4_bHZ|OyVd7v9w>)U;^-fxkDfPgv7S$2Y(>N|cju!HXysQ(p` zsg=9QH@g46Jsf$-2G#R*$WrR zL!siQ#}&N%w0_klvWRwyOkEG73-*c8@-muo+C7K=Bo3EnwJa2(a7H43$lf1EY>~q! z3mwbDz*EeaKAD%~!kO0Da<=BcLYl9Y|AkDJC@+d9(`X+~b8i5nitUFHth3Kob^|K4b^+um zCzkfUZBhJvn6ir5@{`bg_*ZV3kqLJlv+x=L&aJNfHpm5oTk-ekfPQ^}Ai4oNyP&<4 z4wo2xW*l46c-}VDn{&eVe+u%qqksC#~wFzVQ80u_cqNWek zbBc>7*?S&wJP1z?ZJE|9HFP$>!(E>9#}Ap1>aQYQ5{}2y3E|wz7&jtHxVVwn=%hQY z;qjf|^^)n)ldPiv0xXz?KE!&$l;lHOUw3+jrV$bPMc!^m7S$1Rb@bVn8fpmcJZb(dkg+ z@wt!x9qkVViWH;cz*ZTCEDchhtu|2t*sFa#t3yk{U5eg*0j@NXFmdy2gmq4a;U4d| zw+Ti^aFMFVRuw{sgP`21@$TBW+f}ke)6b9Z<4V}1tn9->HAsph=1duR5}waeP+aCN z1b`;+bQy!4; zWAS1tVL8em;&*91yvo~$NY~6YK5>+OOFn+brPzsWhB3F&7ys+#>6ZD2yZHTs%Ji0= zjCppcIO<-@cdXvbX^m{?~DK#d`OOh>+l3d&lcz&JI$C>^4TZZGWx^seZ;RM^z0S&l$GBd=)kwB*_S zSXrWfaCYlS=$YSNz+arKAJVqi*_9oqUFIN|rWr%9cE`qOEaNL{q%rE%+s zn2dxp#y2Aq;f!?q{U%gOA|zcRnZLcxrJ*5oaG}C#G4(h2+({}3sph5Z2uOp-=!o*B zvEA_9ALloGI)X^c)m(a2E5LtrP?2Evl#}0E5>wYM+8hc2bEEL!HNWYx0kza0h|D9(I|EO;H%cx zz&r5VY7r(XD=R9tV1|ifO!Y1NrEH(yW88w{M_K~^&I-Dz{p6S&w#WDnvMCUSFP)>nOjbYLi|+d@eZ-Z0-%(Fmv3*onRo_phiTs z*<<^mNoMQ!%PQ@?Uhq?_e$0(YE&Eh_s4zh9olq|UZWT^@hGr3?9#o~~Zhw0Bgzl_y z%H`~0d!wFfltQ z$ewvMz({&pSbm{NXgKFsWu{mPKwAiCyhT80(2RL^sx&hTQo!9G_w7YIwv87L z&EL*@oRfq;GY+a+UUK-Waj8`cl^LSY%|AanbldO`&1_#UL?&Gbxjnim(w8aUAjIVq zu|-rOsAxqMq2V8p-K$xe5QHuvgte({1?@P|@VYDdm^F`yM)nTT>aVON_|Km*Ei~*E zr@%m~S~`bi^{S;B==r(ZDUmxOG?I6IGIODeHC|I zJ&$?qS=jo=;M8<93Vp@EsFe-9Yj<>r(oDS@Oi%cI4b899W&FS2lSCq36kv`XNT#5( zpf0w(hgHuqXm0Enj+ok?MKGml&6~4ty}XBn1~e9Zt0uln;j9wIc@smE2+wNneD<2`b!F@FG2KIL~R0*pnjCX3Y1jQ$Li(HUa|jkS+am1C+1#x zVak2~*An~Ocr8A&@`1ozi)qJ~=ZadctMC>cv$s5bg<#t0V8Hnxwhu4orpP2nrw00Uc zlYMcu%$^icmD1$$?a0GpmcTTGc8mkzC2wJS)DQ{I^2LK?l9dLSJjWY_aZ77^Zz*tt zc4P(+XwBGLj^^Qs$q4Kwi9Fe1^twrXJU4_y z#19xYv^)I`6b6c2=B4QPH|!#FW)RF#+X?IEmFkxV6yY9Jo)t254Ib5j-xd|M@^K>p zxg_qYevP4}x&G$P+7BmmPUzK>x*Y8cT$IJ)0OZEv6lcKx7ITe;!eNi8Ee2>Mm(bCd zf|k4xm{7R)G^I9h_679;JFu?6N{Uh~ANmG@OJP+ELg9t+M@ZSF!DzJQ!Fex8d_Y&n z3ekTwY)0P~TY!#Z*Jkz}?@7n(D14NQZgbF`@P4|;rA5b5qL}R)XmJ=&7IoFWtBg!F zt}M*`RwZyV3Lp8!`&(U(8?F^E4?+HzS}?N<|JsUoIF|MKRHlKS@7%=gXW#x$@qlDU zlT3~3zFji_>C|5oU9G!)Dn87QfE}zYS4WCZWO2o=WJP7lMGmsu-jiZ2^vXp$`C#x? z>dW%K;p=gOm-#PUPkl-6N+NdDF?csf5y-%Tda7O1YRB@LcON{EcN#?Tz}) zWAI#6CM@^ZQ5t;+1YQz~&;iilU}`7hA%AE{pOIohR7Y{bqXdOjmRt>M&UWQ~Vcy(G z)t#ez39hKek_g*xGi{VwY|GE{^B@1Fxn7LNt+~0WHlZ+4a1()LoIberY?m~&=G4-B zcXnOET5IJVC(3i<*C3XWkJ}7sC|D>MR4Rd1{B+;i4%%ocroOwg=sGW%aBgmY92bTR23baR4$iRyZ*1Y=A z|M>#^7&ln6VZ&qe-zB~j*ToWEx&n1xhlkoFE;;nN9TwS11}8(aolu8i+A=6re%zE% z6ry<61v-u$o!cWT@3Y9;5NSdL!Uh$D)<#;-Nx1JYt;-9_j>GZ{wJY>Fw)c$%sjc5u zexe>U(gArOn|f?IbY$jE`;$uW)t(<3p1$1u%6|6EQlPZpgns>a6?`}J`lDx zZ~k4=6Cni(G}dT)Z9SChi0~HSpJ+M_6h%9BQP<30U^z^H^7Rr2`~=ilT4eg?>r457 zLZULx-&4J#p8j_|`%#_bfr2ST@uS!S3QJ&|mzRWv+|@AOa8j77Z{MwpQHkp6I-xb( z_v_|_bY`QVkzciuol;93a`vQ zs^MiHr->$DQ-p`P6~Q3&^mI)f-sHTTwV<$ofW6QE&t%rJs>fj2s)=g}mtnhsk-I*p zc~%VR)-`5C{`@usmN<*JbqT4Z!Vmu#eX$bGP=W;MLOHBA@t=0Jtvf;`-hddU4t}=k zSK%YgWd*P%yD|r}+iO>C0|=gN+t&UV^9u$*$X1`T@$b2dMTn*aVkCBEr=R{#J>v@E zbRlOsdb8t{)^VkO2TK8aqnVj?e``bll#StP?Job(v`beo8&wSH*ys%dKLUMqC}4PC zU%kpgcOkmYTg_iktGxflzP(=`NtiO7tF%TChCz^MW;~tW-8_>&E-`JYM8n;sXeX-? zVKk@vSKZ4V+pZn_$B;L>aUUtV<@A8(he74E_I0&&)`~{Nb$hDX$S=&N4%^*KI-^VV zN$WRG>wc0ZwDBwR*e#R6^+C?U8ziJGm-yTt?qoyaSIC*4ZR@m0?QZ!CO-6^~WYyCm z8>V#|fSd&%8$m{yQFsT-`*Ka2HfmtFEXK=S3_pzeC0P}xX5<@6wTI@>oGpKP-BJe% z)JH>4UQy%uvZ3@Mjas0_wnwcn&k<%9tcihE2Pp7k|Ne&!TjFH`M@mZsUn~&437G!W%z(AAI(q~1`EakbK07<{iGOlA)ML4}J-oG5fWt9w)YWD1x%#l@ z{Iwi29pO{FP0>B{c=Ae(FA7Z}1Y;2S{O=bi$H-?@{~^;PiK-l2|VRp-*vxy!A<(dM`QNPyViJ12&Wy%n%&V|>03~VFw9YCiaPALOch&Q z_Sf+HlkGG4DYzM>{*71uF7m2BFdpH}--V8$WO8LN+A}QFO48--nJf4Z?XsFaIqKv2 zV8e&LktQ{1Imj~E5$%6-cWnTvClrBbk^uoHQi(CLQ&Uo<+zn|B@~SmT6ZfQOznPqq zTS}9bnnHgsIb#8&k|#Xh_CT4?{H$Muv2j8RnX5Z2L?YsKoI5#eV_Q$2zC_We3g#X= zC|BHD-;*lnLrczI9~f4dLqYcL*b5Gw+xho%vhGj*GB}FuMz_)Zzs)=A$94#K{!eAO zL5$K|I*q)&#cM|aqU5Xaya5~#*VEqONEoj(J-_27yNne)DN-Q|Yfll)Qo6|IQ=b;q zNgTSYUBfRpR}DD9=gMYwk&k@jkKunh*(vv3qmit>m?Lbb8PNN0f#bQU&WUQv+`$-B z1T$o{h0h!X_aLr0^6&5q9T-G4sQKl_A|u*jv}e%^NHIhMQNo`CpTisGJbw#3Wli_( zx4we*8a7aDxTEM|-irl=W4U zo@ZTrZh6F`I~@ZF@+cSTc)g=Zm!{17i#RIA_FfF%jeJg^WTY?%fZXHrx6hsK!~H=l zHvHKk;kW}>wrSBhahlN$gCvqdYjH?p%vu5!{Z_w-r+BV<*2zfFQK8qNx_n1X6s$>u zQ6~zqxWRHMLdQ^EhK?}=c+IL1U5X-_Z1&QegVztgU>EO8WEirqWhd{+EYf)~a@=TeOSqCgDZeKe;1KeHv;S1$F3%t3$6ssViVjB>yc&f9=GcMRY z!>x#FTAOw}*Y0dGo1Cx0e*%I9n4oo&IBSXBA<9$=avYwP3#!EvBjM)A@7y0m7f3UNp(@Q9L-?jk@MC*ca za)TGEoDh_~W0540;KZk2>x9wZ3(T?WZ*6Lw=F8*8a4U{H1sPIFX336^8PJI#5P5;@E1hu7-Q@pkx!tLSdB2wSzf zyBFmixHW$o47%2X`R=H`T!$6RrYEZd(U;(m=BFpk;-E*~+A?FOJ24Vlm2->Ne>WUE zSK9l?a3p=Rf20haZOOpi%OhCL6rf~@bY-0{ zxcKfP9A-1jZo4ZF;@1!LaT5oohBZp*JEsxN$-o)o0?=5aJv7TqG3Bnupkka9El=*! za+>50^vO2!iG?T|x7?@V=vHy!123AsIi)3!7>nk0Y!lfCU*C+!0m$ui`VOmj%H~d`w$yZxFsI;3Z8v9|2&wx3J1jhEa$ts1jZdApJKqFL^;fH4 z*M%w)tma4khE+iV8R?njIXpXfo!Vg#M@yhEOdc=VU8ESwMI(e3v8}TFL?Eb&|m{K!{Ucg{@(mQf;V3>w2T4#* zAEt+k)eRJ}gfqF}n>*2x>ha&=r4h-=r%=Q%129#WsN~1uk4T2Ppmo(W@Y_Vk*iQ+^ z9f?)c1Q}3cXNmih-lp|p-CAPk5LTOE&2%s~43FZ}fV-Z>M*DIuwcD`MrbDh+5usH$ zr}rU^G|<}zg_VkseUd0|i}<{jP(xu~5bP4aIfH!RYt{1L&(&>;EW5K^r_U?SE$EJ+ zx9g3=39XGM&;+SCDHPU`G_;7()Yk81^HD;p0`70Bod!noMTae_%&!<=RfO2T7ln>A zIojV4Oaw0kW-a@MuOlrT9*q?vuiN;iUli8-O>c(HFT!sAsJ3NzB{y;a4gw6{@^0`F z4J;VGA>saK!$}h2c<;yzY7^=wi6YikE9T>qZ5mnq`Ps3CI-akDVWnf&g}1~+`b*d^ znbBNa#R_>GCTt?JMhzw84}w~JsY3+vn13 zj^9Tp7>-$r9Veq#1~yM|Bps6aPspt!>ZZ-4lq}_IMCEof`-iC{9RvXZP5g57Pm~U~Pt5$1zovU{%mi^zw!`_V;rZ~V3ioY? z7?+xP1upW+&=6%FNUY5oK?aOS@jP*Z2_iI}uMYh!A)95{Uh$NAI%8*xE#0GT48P0`L;pO2L*9U*c z*=IzuX@##EkH^~8Y3B;zD*6yh0~c`zNkfW`!-S${i2cM(S!+TDjs zIi|HnX6Bv3up*wc^6j^nlw#a-8)GqaSca$^#UWzJYJsTF%HkR^O?gE}rfxxUj@|P; z?0R`mn|CGZLgplF*`j`&9rQ^}a9x9+7LACEG<1c91CC%Rl+(u>^IQXJ8i_K>7)pAy zv{Ge>a_a3|EL*DTxPQllq`|3X`~$cUFUbL>0@v_L}9+ z^~Svk=y*7LSu1;imj@*3ztdAAunHDWT#g#OLuUvzQEI)GSmRhVihHUlGPe+zF=(|k;PwrEOd zBvUSPFVblcER<6&Y6=UMv>cejqse}Fu(;*6Cs>+hB<_>y7+O9_He~P=CaPJzA~VGV z$4HT*eb&No5^b}uk7%BU7P$I@PEn3$PX-TOY|WTn^BC5~R9=z}7M`NtqBSGgB(YCf zY=0Pem~>xvr_z2z_wdK0E9v0W>0}hv>BLU&O5&bEvw}e0Y6m=U( zdM^gqaBpy)UkOFrbR&_`y`hx_gQR7sdFa)UX$sPIc(#sC%w~yTvf!n${aMB7%=n7? zHgPt_*ki&$-CFv5Tq38-gCp=0E4hP>9VwzOBb@;QCsYS(NJD}siSnvn;q(Eq6WVsx z)t5I~e}4s}tLC7TU7qw{RylYhI<}f45su60Fs~6@F5G@z2mfZc zPpC~{a?CyV&}glU`lU#rW4wy14PLojJYiWQ-&>PBPMCIOq5sN4(fZfVEo-It5kO>( z-0cP+c5NZy;sk=hGun25?MzXw?2Nl7RTBt5yf?w6X(yOadjZaX;{9 z&eGWy=Dx4J5J{naM2Z=u+ZCTy&ik=?;4n39C#Y1&XrfTYliB&nzt5`j?2v2EUqi?4 zXW5A8Tkl*)@)mmw#GaOhN?fO-Z6VB1Me6m92vF z!H!j>Qb&j6K2qbyI7;y6T&?&-93O)4q?XwY(%nACKdVU3*6fp+*ZnD%JGN)aVkx~T zzYjA=%u@?RcO_F8`;m-TXF$(pDjSa0s9N{wMvXUunti~`5a=1=5N>GPo;@huZ7Blw-Kq0(b4S{JP+f3PgUE{qHl{~6mn+njuxTv9vj zrM}(Cn_6U}Y*#zKYEaaeV(zsk!L&ilA3I(GAe0@cA-Iipk`{NOtO+sT?is4X$I5j? zE;$*+x>C=*(aAq8eQ#DC6rNO`ceN#h_V;!Uj*n*EES8tDFj^?#Z!=Vs6G6jc?@(u7 ze?Fg&i6w|8Y!cQiVJ^AG-pb6P5RGI{88{h8sQh5OCGAV7|}0x%8|ZtpsoZ0Vr^u3RfP?`l_m(qr|C`chpN*<7A4R#7tAsY)7P ze(o8b(g^jk@{#LK8u^+7q^}KsD%{3T<{l1S?rjfE+&{`JMVA4m4lc;eN6{|H+az&> zuF@LU(BH80t5MZ8V$k)fDq~?lCXc8v09z02tRoo~76 z*!*;*C-|lZErNu~3hNchWdjtr!!6(;dV?W#4Wwse6P=XvPTc^Hduzw&G?!7vrH^T( z5qmKj=U!afFIB)dxcR0h%^7iDZ5qmx#e!dRn0^Z3^IIVtOwR_9pM{Uaikq@NC<6?` z&u`ZZBfsL!1A5fL%J>l}tC+JSqqrw{K1H&8b!5oQK=w+@@r8i*bRC_C2{qhw5D^nW zh!pnJ;SX#T`J7tIw(83E#P|;HH8UE@DTnG2zk}{ZMNP)^Vkd_@(K4#MMuINK?J=eU zlhBOH+>fVSq zO<(JrTlS@q^juk4-D=-yk?@AOC02tM87gk`I$m$Fv^XE%ZLXKXcAGor#SEF4h#&S!P5*RR`0exopuGp@Ue$7luUpBn5xa#G?)#Bl@1h7*%(#8 z`>}yaCVLD4wxk;R=Z;JXMMaghD8BB;ocenKfKo)np*y$hF@&$R(_+IJM;r3jXK>7* zb`?;w=F{O|OVbLn>#;dG`}J4DgdiO6c0=KaT%;xc?S<%Cjqhc}6Io&)O=hX&J>b%d z7hT|ZROSj>%aILdsiNht({eHLWm^Qj6>7=>zyV*kOD~Dm!HALNH~JCP*uAlUrPbYP_9W6wc%2qIF+rB7sE#5OZ%Z0|Rs22~}tK1kE1ui5v{9OA)(+fv0bZ)7tE$ z@uwq%n(Mlsv-;-B$a(i}cw=WS{if^DxM;*OMaVx8nF<%3uOOMj*eH%fA*t3Mc&>iq zjUlP}*=}I2-dPOvWB5N@*fF^WG9}?1oiO}yZQR%3y1NuUZ*Vr-b5);kLTm#&cF|iq zo)fp7r&ivhKKUxN--D{x8%1vU=zWeJ`<7wy!n1#NXCBM>Bw$JMJXR4F3Rbjb9!Cr?&_bN`Q^gC5O!ott+R%cPpCO zVs46N7O{2py?O%}>IZ2}+%r9m%EXl#V!A*j9z$VRHwE#ATM-Oo>-l=8De{X6)Pr6% zh8^(2N@_6gtl1dFemr>#EDWl3>d#7O&#YMNJv8NWxcHz>xs!0`$sHUN7ItYhD*L*2Pt zWDaQST>!q7(`_rr+42rMbLH55cUhy|%=fg^aNpLj|9MXzP=XXxx=Qs#iqGpHT8?&7 z6!OQ}G@>JZ=stZ+0hmO~iy6jc5)xy-yB4h$c#NwJ+m1gRCD}9&c@aR6VVoe@Y@t46 zu$#l1e0^Dk7;;|LYA4L9!JR;l#!%=H-0Hpli_WnNRZI`}1|!!3padFbEi5*>se_!- z$;nE`adT69GCE=6*CGl0nhQ6dV>W6;$+$f!4g2eF6UGbKNv`H@Fs^xdkT3uaVNa=y z<<{CN(S#t`tEs0%!+%_h@H5Q(zSOEEb%tFC+wBJX!bNe5n4gt5wt!*{`lEW!Xzjdy z@xgq<826Y?GJ1r(GY_b%zm@p7U+%O9ZC?kiK~3hspk&<9n-G%A4kjGC00X=c;rOY4 z#q0eK7k+LNc$0dDP+S%WPD96u0sZ2)$W+Xfv%Q*fz7F*YD}3(}z?Dpw60k#=j0o`& zl}8FCNN)T)3NO+pjx6sdjB;PVNSYrya*ptQy1s-jLgERQ*32H10+YH8GRaxf>;CS9;>dp6+duUCX~A^mJqr&MvJ39p$&%X_BjC zgVm1gi9G(*d17rKP+5dSL03~s4)W1vON_ACdjP`KEu!-vOZT!TyDGBYVjw;k%tlNm z?H8dtp{pThq&; zQKo;LPJ(;9^zV*G7TzU`xh`CoDoefMcRx{gcs!oR$6TbUKktA8K;p~YV`rJT=4$k+ zsVbUwpc4a|Tj6Q)w$yO!uvcO1SKi}=qMYD1qBDk}1>qI)4@9y+%ADuUy27QkaW4a# zltqU72AoTjDAUYeKxImvoFf`kXKrVhj%EdN`pB06y@+N@;5!{RzE)DBCouxJ*Q z1lz_Frhk_*Zi*!v&zZ7Iahel}8Pf%_N>|E#GG4-ej$AzK>s{Wq z2x3@14@^cA#%E|&chd@$?Gb)r zu!%HgjRkf868>Q`z%hx6tK3pwJ6?|6_x9JKUo>%4d3$0GEp$)B>$2|NZB1;_2Y+Q55ay(j^PTTI%pHkj? z=n<&$@z#9Z7<#~unCY_Kn(pvsd-5@Vd$L*Q1vkGsBIyuM+d$J@^$zr{U0&tHYPr{L zD%MGI&EA}IH|JQ4|I}6qnC$>tzQw`3`do}tmfd$EG;E8GwCovgMP7qicb<>5Ca|Yi z!;&*I%6bY4o{s48a@*eOBJAs0f+y0{?J^VFTk5dcezUk0b3pIZ)y~i|UJu!`R8p)? zI;WD4RbKp6Ogn`x6~gJsOS#4;cy=TVW#iC91+w`UcfM39bZ~9W%sXa`H3~n!SvtsT zOm_F=T&V%EgX^_R>(+v5JBNR`=-$kP2B8)m9eg5?)cv<2w%;@B-of` z(1h*SaZCdov3EU_Ch6wD$#xLg3pMvtWTfdhKEBi!^Wk3L1s&6olVndKi$=Xu8eK&Y z;0J$;w_68rvD3=)bjsH?VIUQ%i5S%UKayDHyqwf_w&gdMH6K3GX^gg zUIv=E-B5e?zwZN{8lIS@qkeY|c&>>&I%FKhPl%pJrLE-`=xqXndUGQjs!GO{P^pvh zk^q71UYX$Kf%=iMR%CPm17mq*YlbT>wQe1-=JDI@vB~3~XtyDNX1JZTe1WFUrDv)H zo(-yrt<7@DHriz~=83Hm8QGiQ4Ehv0@l+o5OhnjvSXNZ)(wTMMZIFlDQ)%| z=!E!pZxd66Rbe=Am6Qo%JjPf)p?UM}YyJolDk#3JqEMp*QY|7e_QQnmH@G!B!z}qa`UmNVmA?Z@k`~PA z@O~4A&a&r0Rr~QkNZw0*275Gdn}+o>3)e-M_x>mwp$#0&e_$TxRxXjHPxDYH@Y!MV zuo?$y1ZqyGA8Q16Rmc=YCr?JN=2smrxRD^Qjmi zXwdWMIHIM4O~0q`yfrS{xqmwu4{n=q4$&UA3xO z&oAYXNy}Zs#_}2RFGSEEp zE`VO_(PKBHgWnTM8=rLf2K5Umfp|(us$Qrf?)V9-+qM#GTN&5pEDD_vMqQRT$t#3M z0(S>~DBWvtRFUv@Hwxq6kHf!M7|3K-BGqJJSWB%22>!0@o?55>^tw)hU_!Dl)^67O z?Gwxtt#*ZJ6O+w#KdH>a2ZY)b==-_JYbh4Ru@x^-4eZJN7^4euUgsgr!OeWwU&~;B zrSGX5;*q<6DkhOPWnvg(4+x<3>Bp>P&_TIK)m^{*3qQw_9GD;AxS2f_(8AB#Ra7S+ z^Y8RCz3bx?Nb|%ta z9y79_M3F+Qe5f5QS)`z-pR@q!7ks5x-@%-pv}*wk)G{|ECA85<*nV@Y+gw*6X!sHE zD5B`3VXZalk#4}ok1L0Drj{A2SK5SRq^5&62d`*K`;ASdfR)bmwJ`>l{zETY_%RE%KV!$b;9cUhOO$ zUfZu!Z+r=-!wEiW<`q6laNnNpk?&mR3d%D3gq^6-*|3m9n11l&{cH=6^gQ3INb!A4 z+nXr7T+b;Q&d*9ni^EUwgWuzym#}Y3oiHR@atrQ2`_s>E8V91=7F0pHV7n=i{nxC) zOd2dvV}#nB>I!Nxzg1Y_hmRUv^dBN|69zn(dun=4(jS}r5%l-f8mXp+x^a6Y{#L|z zROt|?kiT89{X-cs#mCzx+xfsO}H^+UK`i=@#P!c|kTtFDOfRT2Uy{wvGV9PaN`{`EqZ~eI=^PA6nF7A|(5?HQ zkgnEOG+ThTz3I_N$Wh~^R)YN!mJSAT>Ka6D>Rr9oAJ!nYMMsk;yaoBplHy_fg(3yu zuDQsAS2r<)RpnLEC?P-320<@{bl?3PsgFn$k9mIu`-Md?u3G?8VpFR)c+PgBTCdBG zp-a|F7F&;LSaCPSQ4`h}t5>YiRB4cvXeDJ`QaH)4eyf3pw}o4=u-u9TY2?seE!Loo zS<98TW0C%xhcPD7O|GTgnTVA7M^oBMIx%8{Vb1R{#AQM;@q5<^28&hYH8GqdS#drv zG%y`nl=p!!hVds`G)lHVcHnYaf>}FJ_>cGGiQejWF}u9fWVsW%F}#3=gFg?o*VB)d zgU5oGq?Vr60xrCo>+JQO33I$5sMHinfoq90ar8qKk^9v?|^E-ahz(2~neOa1OT#p4KDp|p?ZTL$#XuHFw(=Bw6 ze94Q3l@ng|gxJD18tHFR@AQ1%;m#MXp-WSDUR=-q?Eb{H+3TFMA3Vbn5HO`=mmp=G zy;DlWPRYq4OUXJ|!pOPWW+rb+@za8qVMJ_D47R-d5G?6ViPx`|J%A@AyF|&ID~nnk zGnax5oie{7q&1BbN?Yi@K6P`PyMaC*hirbKKJt~VlHR(sWXK9`7zw_6+Jcz|Ac`D$ zrl7i#W7?7_&~n$CnRjlo=wZRjX1X%%<$a`htos$Q`LZr1;QSC{^4X0#fMNT%D292g z%Fy-I#;5I@UWCw^%pf01h!wUesgvqrsog8Ed8~aM#?`laRds7*Li;J;+tqE~I@V#L z(N#jk{h_+k{=jsZw!dcn@Q^}Vt$uFp)p{DQ+j$?w)zFdBOp~GNzT%D^B77?mg&3Jq zl*=73X#iH#@iTdNu1kpWr=~%(9dbwRh6FeNBJ>tWO~z}!tPmUDVCTfaR;RtNHuFmD zWUD!2&BsIIBNPE6*P)TA_+>hG#YJT5o*<5{Z5EenF>#0fjwhtVs)nhPi;GiR<-?TF z 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


V$fDV|Iw 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 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: deletedIds.sort, - splice: deletedIds.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var src, copyIsArray, copy, name, options, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray || function( obj ) { - return jQuery.type(obj) === "array"; - }, - - isWindow: function( obj ) { - /* jshint eqeqeq: false */ - return obj != null && obj == obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - isPlainObject: function( obj ) { - var key; - - // Must be an Object. - // Because of IE, we also have to check the presence of the constructor property. - // Make sure that DOM nodes and window objects don't pass through, as well - if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - try { - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { - return false; - } - } catch ( e ) { - // IE8,9 Will throw exceptions on certain host objects #9897 - return false; - } - - // Support: IE<9 - // Handle iteration over inherited properties before own properties. - if ( support.ownLast ) { - for ( key in obj ) { - return hasOwn.call( obj, key ); - } - } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. - for ( key in obj ) {} - - return key === undefined || hasOwn.call( obj, key ); - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - // Workarounds based on findings by Jim Driscoll - // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context - globalEval: function( data ) { - if ( data && jQuery.trim( data ) ) { - // We use execScript on Internet Explorer - // We use an anonymous function so that context is window - // rather than jQuery in Firefox - ( window.execScript || function( data ) { - window[ "eval" ].call( window, data ); - } )( data ); - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1, IE<9 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - var len; - - if ( arr ) { - if ( indexOf ) { - return indexOf.call( arr, elem, i ); - } - - len = arr.length; - i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; - - for ( ; i < len; i++ ) { - // Skip accessing in sparse arrays - if ( i in arr && arr[ i ] === elem ) { - return i; - } - } - } - - return -1; - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - while ( j < len ) { - first[ i++ ] = second[ j++ ]; - } - - // Support: IE<9 - // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists) - if ( len !== len ) { - while ( second[j] !== undefined ) { - first[ i++ ] = second[ j++ ]; - } - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var args, proxy, tmp; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: function() { - return +( new Date() ); - }, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v1.10.19 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-04-18 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "
"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = "
"; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - ret = [], - self = this, - len = self.length; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Handle the case where IE and Opera return items - // by name instead of ID - if ( elem.id !== match[2] ) { - return rootjQuery.find( selector ); - } - - // Otherwise, we inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - cur = elem[ dir ]; - - while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { - if ( cur.nodeType === 1 ) { - matched.push( cur ); - } - cur = cur[dir]; - } - return matched; - }, - - sibling: function( n, elem ) { - var r = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - r.push( n ); - } - } - - return r; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var i, - targets = jQuery( target, this ), - len = targets.length; - - return this.filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return jQuery.inArray( this[0], jQuery( elem ) ); - } - - // Locate the position of the desired element - return jQuery.inArray( - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[0] : elem, this ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - do { - cur = cur[ dir ]; - } while ( cur && cur.nodeType !== 1 ); - - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var ret = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - ret = jQuery.filter( selector, ret ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - ret = jQuery.unique( ret ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - ret = ret.reverse(); - } - } - - return this.pushStack( ret ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // First callback to fire (used internally by add and fireWith) - firingStart, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - - } else if ( !(--remaining) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). - if ( !document.body ) { - return setTimeout( jQuery.ready ); - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * Clean-up method for dom ready events - */ -function detach() { - if ( document.addEventListener ) { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - - } else { - document.detachEvent( "onreadystatechange", completed ); - window.detachEvent( "onload", completed ); - } -} - -/** - * The ready event handler and self cleanup method - */ -function completed() { - // readyState === "complete" is good enough for us to call the dom ready in oldIE - if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { - detach(); - jQuery.ready(); - } -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - // Standards-based browsers support DOMContentLoaded - } else if ( document.addEventListener ) { - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - - // If IE event model is used - } else { - // Ensure firing before onload, maybe late but safe also for iframes - document.attachEvent( "onreadystatechange", completed ); - - // A fallback to window.onload, that will always work - window.attachEvent( "onload", completed ); - - // If IE and not a frame - // continually check to see if the document is ready - var top = false; - - try { - top = window.frameElement == null && document.documentElement; - } catch(e) {} - - if ( top && top.doScroll ) { - (function doScrollCheck() { - if ( !jQuery.isReady ) { - - try { - // Use the trick by Diego Perini - // http://javascript.nwbox.com/IEContentLoaded/ - top.doScroll("left"); - } catch(e) { - return setTimeout( doScrollCheck, 50 ); - } - - // detach all dom ready events - detach(); - - // and execute any waiting functions - jQuery.ready(); - } - })(); - } - } - } - return readyList.promise( obj ); -}; - - -var strundefined = typeof undefined; - - - -// Support: IE<9 -// Iteration over object's inherited properties before its own -var i; -for ( i in jQuery( support ) ) { - break; -} -support.ownLast = i !== "0"; - -// Note: most support tests are defined in their respective modules. -// false until the test is run -support.inlineBlockNeedsLayout = false; - -// Execute ASAP in case we need to set body.style.zoom -jQuery(function() { - // Minified: var a,b,c,d - var val, div, body, container; - - body = document.getElementsByTagName( "body" )[ 0 ]; - if ( !body || !body.style ) { - // Return for frameset docs that don't have a body - return; - } - - // Setup - div = document.createElement( "div" ); - container = document.createElement( "div" ); - container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"; - body.appendChild( container ).appendChild( div ); - - if ( typeof div.style.zoom !== strundefined ) { - // Support: IE<8 - // Check if natively block-level elements act like inline-block - // elements when setting their display to 'inline' and giving - // them layout - div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"; - - support.inlineBlockNeedsLayout = val = div.offsetWidth === 3; - if ( val ) { - // Prevent IE 6 from affecting layout for positioned elements #11048 - // Prevent IE from shrinking the body in IE 7 mode #12869 - // Support: IE<8 - body.style.zoom = 1; - } - } - - body.removeChild( container ); -}); - - - - -(function() { - var div = document.createElement( "div" ); - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( elem ) { - var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ], - nodeType = +elem.nodeType || 1; - - // Do not set data on non-element DOM nodes because it will not be cleared (#8335). - return nodeType !== 1 && nodeType !== 9 ? - false : - - // Nodes accept data unless otherwise specified; rejection can be conditional - !noData || noData !== true && elem.getAttribute("classid") === noData; -}; - - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - - var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - jQuery.data( elem, key, data ); - - } else { - data = undefined; - } - } - - return data; -} - -// checks a cache object for emptiness -function isEmptyDataObject( obj ) { - var name; - for ( name in obj ) { - - // if the public data object is empty, the private is still empty - if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { - continue; - } - if ( name !== "toJSON" ) { - return false; - } - } - - return true; -} - -function internalData( elem, name, data, pvt /* Internal Use Only */ ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var ret, thisCache, - internalKey = jQuery.expando, - - // We have to handle DOM nodes and JS objects differently because IE6-7 - // can't GC object references properly across the DOM-JS boundary - isNode = elem.nodeType, - - // Only DOM nodes need the global jQuery cache; JS object data is - // attached directly to the object so GC can occur automatically - cache = isNode ? jQuery.cache : elem, - - // Only defining an ID for JS objects if its cache already exists allows - // the code to shortcut on the same path as a DOM node with no cache - id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; - - // Avoid doing any more work than we need to when trying to get data on an - // object that has no data at all - if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { - return; - } - - if ( !id ) { - // Only DOM nodes need a new unique ID for each element since their data - // ends up in the global cache - if ( isNode ) { - id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++; - } else { - id = internalKey; - } - } - - if ( !cache[ id ] ) { - // Avoid exposing jQuery metadata on plain JS objects when the object - // is serialized using JSON.stringify - cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; - } - - // An object can be passed to jQuery.data instead of a key/value pair; this gets - // shallow copied over onto the existing cache - if ( typeof name === "object" || typeof name === "function" ) { - if ( pvt ) { - cache[ id ] = jQuery.extend( cache[ id ], name ); - } else { - cache[ id ].data = jQuery.extend( cache[ id ].data, name ); - } - } - - thisCache = cache[ id ]; - - // jQuery data() is stored in a separate object inside the object's internal data - // cache in order to avoid key collisions between internal data and user-defined - // data. - if ( !pvt ) { - if ( !thisCache.data ) { - thisCache.data = {}; - } - - thisCache = thisCache.data; - } - - if ( data !== undefined ) { - thisCache[ jQuery.camelCase( name ) ] = data; - } - - // Check for both converted-to-camel and non-converted data property names - // If a data property was specified - if ( typeof name === "string" ) { - - // First Try to find as-is property data - ret = thisCache[ name ]; - - // Test for null|undefined property data - if ( ret == null ) { - - // Try to find the camelCased property - ret = thisCache[ jQuery.camelCase( name ) ]; - } - } else { - ret = thisCache; - } - - return ret; -} - -function internalRemoveData( elem, name, pvt ) { - if ( !jQuery.acceptData( elem ) ) { - return; - } - - var thisCache, i, - isNode = elem.nodeType, - - // See jQuery.data for more information - cache = isNode ? jQuery.cache : elem, - id = isNode ? elem[ jQuery.expando ] : jQuery.expando; - - // If there is already no cache entry for this object, there is no - // purpose in continuing - if ( !cache[ id ] ) { - return; - } - - if ( name ) { - - thisCache = pvt ? cache[ id ] : cache[ id ].data; - - if ( thisCache ) { - - // Support array or space separated string names for data keys - if ( !jQuery.isArray( name ) ) { - - // try the string as a key before any manipulation - if ( name in thisCache ) { - name = [ name ]; - } else { - - // split the camel cased version by spaces unless a key with the spaces exists - name = jQuery.camelCase( name ); - if ( name in thisCache ) { - name = [ name ]; - } else { - name = name.split(" "); - } - } - } else { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = name.concat( jQuery.map( name, jQuery.camelCase ) ); - } - - i = name.length; - while ( i-- ) { - delete thisCache[ name[i] ]; - } - - // If there is no data left in the cache, we want to continue - // and let the cache object itself get destroyed - if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { - return; - } - } - } - - // See jQuery.data for more information - if ( !pvt ) { - delete cache[ id ].data; - - // Don't destroy the parent cache unless the internal data object - // had been the only thing left in it - if ( !isEmptyDataObject( cache[ id ] ) ) { - return; - } - } - - // Destroy the cache - if ( isNode ) { - jQuery.cleanData( [ elem ], true ); - - // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) - /* jshint eqeqeq: false */ - } else if ( support.deleteExpando || cache != cache.window ) { - /* jshint eqeqeq: true */ - delete cache[ id ]; - - // When all else fails, null - } else { - cache[ id ] = null; - } -} - -jQuery.extend({ - cache: {}, - - // The following elements (space-suffixed to avoid Object.prototype collisions) - // throw uncatchable exceptions if you attempt to set expando properties - noData: { - "applet ": true, - "embed ": true, - // ...but Flash objects (which have this classid) *can* handle expandos - "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" - }, - - hasData: function( elem ) { - elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; - return !!elem && !isEmptyDataObject( elem ); - }, - - data: function( elem, name, data ) { - return internalData( elem, name, data ); - }, - - removeData: function( elem, name ) { - return internalRemoveData( elem, name ); - }, - - // For internal use only. - _data: function( elem, name, data ) { - return internalData( elem, name, data, true ); - }, - - _removeData: function( elem, name ) { - return internalRemoveData( elem, name, true ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[0], - attrs = elem && elem.attributes; - - // Special expections of .data basically thwart jQuery.access, - // so implement the relevant behavior ourselves - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = jQuery.data( elem ); - - if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - jQuery._data( elem, "parsedAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - jQuery.data( this, key ); - }); - } - - return arguments.length > 1 ? - - // Sets one value - this.each(function() { - jQuery.data( this, key, value ); - }) : - - // Gets one value - // Try to fetch any internally stored data first - elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined; - }, - - removeData: function( key ) { - return this.each(function() { - jQuery.removeData( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = jQuery._data( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray(data) ) { - queue = jQuery._data( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return jQuery._data( elem, key ) || jQuery._data( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - jQuery._removeData( elem, type + "queue" ); - jQuery._removeData( elem, key ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = jQuery._data( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - length = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < length; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - length ? fn( elems[0], key ) : emptyGet; -}; -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - // Minified: var a,b,c - var input = document.createElement( "input" ), - div = document.createElement( "div" ), - fragment = document.createDocumentFragment(); - - // Setup - div.innerHTML = "
a"; - - // IE strips leading whitespace when .innerHTML is used - support.leadingWhitespace = div.firstChild.nodeType === 3; - - // Make sure that tbody elements aren't automatically inserted - // IE will insert them into empty tables - support.tbody = !div.getElementsByTagName( "tbody" ).length; - - // Make sure that link elements get serialized correctly by innerHTML - // This requires a wrapper element in IE - support.htmlSerialize = !!div.getElementsByTagName( "link" ).length; - - // Makes sure cloning an html5 element does not cause problems - // Where outerHTML is undefined, this still works - support.html5Clone = - document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav>"; - - // Check if a disconnected checkbox will retain its checked - // value of true after appended to the DOM (IE6/7) - input.type = "checkbox"; - input.checked = true; - fragment.appendChild( input ); - support.appendChecked = input.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE6-IE11+ - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // #11217 - WebKit loses check when the name is after the checked attribute - fragment.appendChild( div ); - div.innerHTML = ""; - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE<9 - // Opera does not clone events (and typeof div.attachEvent === undefined). - // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() - support.noCloneEvent = true; - if ( div.attachEvent ) { - div.attachEvent( "onclick", function() { - support.noCloneEvent = false; - }); - - div.cloneNode( true ).click(); - } - - // Execute the test only if not already executed in another module. - if (support.deleteExpando == null) { - // Support: IE<9 - support.deleteExpando = true; - try { - delete div.test; - } catch( e ) { - support.deleteExpando = false; - } - } -})(); - - -(function() { - var i, eventName, - div = document.createElement( "div" ); - - // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event) - for ( i in { submit: true, change: true, focusin: true }) { - eventName = "on" + i; - - if ( !(support[ i + "Bubbles" ] = eventName in window) ) { - // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) - div.setAttribute( eventName, "t" ); - support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false; - } - } - - // Null elements to avoid leaks in IE. - div = null; -})(); - - -var rformElems = /^(?:input|select|textarea)$/i, - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - var tmp, events, t, handleObjIn, - special, eventHandle, handleObj, - handlers, type, namespaces, origType, - elemData = jQuery._data( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ? - jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : - undefined; - }; - // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events - eventHandle.elem = elem; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener/attachEvent if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - // Bind the global event handler to the element - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - - } else if ( elem.attachEvent ) { - elem.attachEvent( "on" + type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - // Nullify elem to prevent memory leaks in IE - elem = null; - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - var j, handleObj, tmp, - origCount, t, events, - special, handlers, type, - namespaces, origType, - elemData = jQuery.hasData( elem ) && jQuery._data( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - - // removeData also checks for emptiness and clears the expando if empty - // so use it instead of delete - jQuery._removeData( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - var handle, ontype, cur, - bubbleType, special, tmp, i, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Can't use an .isFunction() check here because IE6/7 fails that test. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - try { - elem[ type ](); - } catch ( e ) { - // IE<9 dies on focus/blur to hidden element (#1486,#12518) - // only reproducible on winXP IE8 native, not IE9 in IE8 mode - } - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, ret, handleObj, matched, j, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var sel, handleObj, matches, i, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - /* jshint eqeqeq: false */ - for ( ; cur != this; cur = cur.parentNode || this ) { - /* jshint eqeqeq: true */ - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: IE<9 - // Fix target property (#1925) - if ( !event.target ) { - event.target = originalEvent.srcElement || document; - } - - // Support: Chrome 23+, Safari? - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - // Support: IE<9 - // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) - event.metaKey = !!event.metaKey; - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var body, eventDoc, doc, - button = original.button, - fromElement = original.fromElement; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add relatedTarget, if necessary - if ( !event.relatedTarget && fromElement ) { - event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - try { - this.focus(); - return false; - } catch ( e ) { - // Support: IE<9 - // If we error on focus to hidden element (#1486, #12518), - // let .trigger() run the handlers - } - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = document.removeEventListener ? - function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } - } : - function( elem, type, handle ) { - var name = "on" + type; - - if ( elem.detachEvent ) { - - // #8545, #7054, preventing memory leaks for custom events in IE6-8 - // detachEvent needed property on element, by name of that event, to properly expose it to GC - if ( typeof elem[ name ] === strundefined ) { - elem[ name ] = null; - } - - elem.detachEvent( name, handle ); - } - }; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: IE < 9, Android < 4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - if ( !e ) { - return; - } - - // If preventDefault exists, run it on the original event - if ( e.preventDefault ) { - e.preventDefault(); - - // Support: IE - // Otherwise set the returnValue property of the original event to false - } else { - e.returnValue = false; - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - if ( !e ) { - return; - } - // If stopPropagation exists, run it on the original event - if ( e.stopPropagation ) { - e.stopPropagation(); - } - - // Support: IE - // Set the cancelBubble property of the original event to true - e.cancelBubble = true; - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// IE submit delegation -if ( !support.submitBubbles ) { - - jQuery.event.special.submit = { - setup: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Lazy-add a submit handler when a descendant form may potentially be submitted - jQuery.event.add( this, "click._submit keypress._submit", function( e ) { - // Node name check avoids a VML-related crash in IE (#9807) - var elem = e.target, - form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; - if ( form && !jQuery._data( form, "submitBubbles" ) ) { - jQuery.event.add( form, "submit._submit", function( event ) { - event._submit_bubble = true; - }); - jQuery._data( form, "submitBubbles", true ); - } - }); - // return undefined since we don't need an event listener - }, - - postDispatch: function( event ) { - // If form was submitted by the user, bubble the event up the tree - if ( event._submit_bubble ) { - delete event._submit_bubble; - if ( this.parentNode && !event.isTrigger ) { - jQuery.event.simulate( "submit", this.parentNode, event, true ); - } - } - }, - - teardown: function() { - // Only need this for delegated form submit events - if ( jQuery.nodeName( this, "form" ) ) { - return false; - } - - // Remove delegated handlers; cleanData eventually reaps submit handlers attached above - jQuery.event.remove( this, "._submit" ); - } - }; -} - -// IE change delegation and checkbox/radio fix -if ( !support.changeBubbles ) { - - jQuery.event.special.change = { - - setup: function() { - - if ( rformElems.test( this.nodeName ) ) { - // IE doesn't fire change on a check/radio until blur; trigger it on click - // after a propertychange. Eat the blur-change in special.change.handle. - // This still fires onchange a second time for check/radio after blur. - if ( this.type === "checkbox" || this.type === "radio" ) { - jQuery.event.add( this, "propertychange._change", function( event ) { - if ( event.originalEvent.propertyName === "checked" ) { - this._just_changed = true; - } - }); - jQuery.event.add( this, "click._change", function( event ) { - if ( this._just_changed && !event.isTrigger ) { - this._just_changed = false; - } - // Allow triggered, simulated change events (#11500) - jQuery.event.simulate( "change", this, event, true ); - }); - } - return false; - } - // Delegated event; lazy-add a change handler on descendant inputs - jQuery.event.add( this, "beforeactivate._change", function( e ) { - var elem = e.target; - - if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { - jQuery.event.add( elem, "change._change", function( event ) { - if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { - jQuery.event.simulate( "change", this.parentNode, event, true ); - } - }); - jQuery._data( elem, "changeBubbles", true ); - } - }); - }, - - handle: function( event ) { - var elem = event.target; - - // Swallow native change events from checkbox/radio, we already triggered them above - if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { - return event.handleObj.handler.apply( this, arguments ); - } - }, - - teardown: function() { - jQuery.event.remove( this, "._change" ); - - return !rformElems.test( this.nodeName ); - } - }; -} - -// Create "bubbling" focus and blur events -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - jQuery._data( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = jQuery._data( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - jQuery._removeData( doc, fix ); - } else { - jQuery._data( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var type, origFn; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -function createSafeFragment( document ) { - var list = nodeNames.split( "|" ), - safeFrag = document.createDocumentFragment(); - - if ( safeFrag.createElement ) { - while ( list.length ) { - safeFrag.createElement( - list.pop() - ); - } - } - return safeFrag; -} - -var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + - "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", - rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, - rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), - rleadingWhitespace = /^\s+/, - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rtbody = /\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - option: [ 1, "" ], - legend: [ 1, "
", "
" ], - area: [ 1, "", "" ], - param: [ 1, "", "" ], - thead: [ 1, "", "
" ], - tr: [ 2, "", "
" ], - col: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, - // unless wrapped in a div with non-breaking characters in front of it. - _default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] - }, - safeFragment = createSafeFragment( document ), - fragmentDiv = safeFragment.appendChild( document.createElement("div") ); - -wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -function getAll( context, tag ) { - var elems, elem, - i = 0, - found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) : - typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) : - undefined; - - if ( !found ) { - for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { - if ( !tag || jQuery.nodeName( elem, tag ) ) { - found.push( elem ); - } else { - jQuery.merge( found, getAll( elem, tag ) ); - } - } - } - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], found ) : - found; -} - -// Used in buildFragment, fixes the defaultChecked property -function fixDefaultChecked( elem ) { - if ( rcheckableType.test( elem.type ) ) { - elem.defaultChecked = elem.checked; - } -} - -// Support: IE<8 -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - if ( match ) { - elem.type = match[1]; - } else { - elem.removeAttribute("type"); - } - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var elem, - i = 0; - for ( ; (elem = elems[i]) != null; i++ ) { - jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); - } -} - -function cloneCopyEvent( src, dest ) { - - if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { - return; - } - - var type, i, l, - oldData = jQuery._data( src ), - curData = jQuery._data( dest, oldData ), - events = oldData.events; - - if ( events ) { - delete curData.handle; - curData.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - - // make the cloned public data object a copy from the original - if ( curData.data ) { - curData.data = jQuery.extend( {}, curData.data ); - } -} - -function fixCloneNodeIssues( src, dest ) { - var nodeName, e, data; - - // We do not need to do anything for non-Elements - if ( dest.nodeType !== 1 ) { - return; - } - - nodeName = dest.nodeName.toLowerCase(); - - // IE6-8 copies events bound via attachEvent when using cloneNode. - if ( !support.noCloneEvent && dest[ jQuery.expando ] ) { - data = jQuery._data( dest ); - - for ( e in data.events ) { - jQuery.removeEvent( dest, e, data.handle ); - } - - // Event data gets referenced instead of copied if the expando gets copied too - dest.removeAttribute( jQuery.expando ); - } - - // IE blanks contents when cloning scripts, and tries to evaluate newly-set text - if ( nodeName === "script" && dest.text !== src.text ) { - disableScript( dest ).text = src.text; - restoreScript( dest ); - - // IE6-10 improperly clones children of object elements using classid. - // IE10 throws NoModificationAllowedError if parent is null, #12132. - } else if ( nodeName === "object" ) { - if ( dest.parentNode ) { - dest.outerHTML = src.outerHTML; - } - - // This path appears unavoidable for IE9. When cloning an object - // element in IE9, the outerHTML strategy above is not sufficient. - // If the src has innerHTML and the destination does not, - // copy the src.innerHTML into the dest.innerHTML. #10324 - if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { - dest.innerHTML = src.innerHTML; - } - - } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - // IE6-8 fails to persist the checked state of a cloned checkbox - // or radio button. Worse, IE6-7 fail to give the cloned element - // a checked appearance if the defaultChecked value isn't also set - - dest.defaultChecked = dest.checked = src.checked; - - // IE6-7 get confused and end up setting the value of a cloned - // checkbox/radio button to an empty string instead of "on" - if ( dest.value !== src.value ) { - dest.value = src.value; - } - - // IE6-8 fails to return the selected option to the default selected - // state when cloning options - } else if ( nodeName === "option" ) { - dest.defaultSelected = dest.selected = src.defaultSelected; - - // IE6-8 fails to set the defaultValue to the correct value when - // cloning other types of input fields - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var destElements, node, clone, i, srcElements, - inPage = jQuery.contains( elem.ownerDocument, elem ); - - if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { - clone = elem.cloneNode( true ); - - // IE<=8 does not properly clone detached, unknown element nodes - } else { - fragmentDiv.innerHTML = elem.outerHTML; - fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); - } - - if ( (!support.noCloneEvent || !support.noCloneChecked) && - (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - // Fix all IE cloning issues - for ( i = 0; (node = srcElements[i]) != null; ++i ) { - // Ensure that the destination node is not null; Fixes #9587 - if ( destElements[i] ) { - fixCloneNodeIssues( node, destElements[i] ); - } - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0; (node = srcElements[i]) != null; i++ ) { - cloneCopyEvent( node, destElements[i] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - destElements = srcElements = node = null; - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var j, elem, contains, - tmp, tag, tbody, wrap, - l = elems.length, - - // Ensure a safe fragment - safe = createSafeFragment( context ), - - nodes = [], - i = 0; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || safe.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - - tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; - - // Descend through wrappers to the right content - j = wrap[0]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Manually add leading whitespace removed by IE - if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { - nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); - } - - // Remove IE's autoinserted from table fragments - if ( !support.tbody ) { - - // String was a , *may* have spurious - elem = tag === "table" && !rtbody.test( elem ) ? - tmp.firstChild : - - // String was a bare or - wrap[1] === "
" && !rtbody.test( elem ) ? - tmp : - 0; - - j = elem && elem.childNodes.length; - while ( j-- ) { - if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { - elem.removeChild( tbody ); - } - } - } - - jQuery.merge( nodes, tmp.childNodes ); - - // Fix #12392 for WebKit and IE > 9 - tmp.textContent = ""; - - // Fix #12392 for oldIE - while ( tmp.firstChild ) { - tmp.removeChild( tmp.firstChild ); - } - - // Remember the top-level container for proper cleanup - tmp = safe.lastChild; - } - } - } - - // Fix #11356: Clear elements from fragment - if ( tmp ) { - safe.removeChild( tmp ); - } - - // Reset defaultChecked for any radios and checkboxes - // about to be appended to the DOM in IE 6/7 (#8060) - if ( !support.appendChecked ) { - jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); - } - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( safe.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - tmp = null; - - return safe; - }, - - cleanData: function( elems, /* internal */ acceptData ) { - var elem, type, id, data, - i = 0, - internalKey = jQuery.expando, - cache = jQuery.cache, - deleteExpando = support.deleteExpando, - special = jQuery.event.special; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( acceptData || jQuery.acceptData( elem ) ) { - - id = elem[ internalKey ]; - data = id && cache[ id ]; - - if ( data ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Remove cache only if it was not already removed by jQuery.event.remove - if ( cache[ id ] ) { - - delete cache[ id ]; - - // IE does not allow us to delete expando properties from nodes, - // nor does it have a removeAttribute function on Document nodes; - // we must handle all of these cases - if ( deleteExpando ) { - delete elem[ internalKey ]; - - } else if ( typeof elem.removeAttribute !== strundefined ) { - elem.removeAttribute( internalKey ); - - } else { - elem[ internalKey ] = null; - } - - deletedIds.push( id ); - } - } - } - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - } - - // Remove any remaining nodes - while ( elem.firstChild ) { - elem.removeChild( elem.firstChild ); - } - - // If this is a select, ensure that it displays empty (#12336) - // Support: IE<9 - if ( elem.options && jQuery.nodeName( elem, "select" ) ) { - elem.options.length = 0; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined ) { - return elem.nodeType === 1 ? - elem.innerHTML.replace( rinlinejQuery, "" ) : - undefined; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - ( support.htmlSerialize || !rnoshimcache.test( value ) ) && - ( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && - !wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for (; i < l; i++ ) { - // Remove element nodes and prevent memory leaks - elem = this[i] || {}; - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch(e) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var first, node, hasScripts, - scripts, doc, fragment, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[0], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[0] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[i], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); - } - } - } - } - - // Fix #11809: Avoid leaking memory - fragment = first = null; - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - i = 0, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone(true); - jQuery( insert[i] )[ original ]( elems ); - - // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( "