From b017f9ceea5de12db2f198dfe641618e2dcf35af Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Wed, 20 Jan 2021 16:40:20 -0500 Subject: [PATCH] things are clicking together --- .gitignore | 3 + RELEASING | 6 + docs/{sphinx-old => }/Makefile | 0 docs/_static/evalbot.png | Bin 0 -> 39023 bytes docs/_templates/hacks.html | 46 + docs/_templates/sidebarintro.html | 23 + docs/{sphinx-old => }/conf.py | 27 +- docs/db.md | 0 docs/flask.md | 0 docs/index.rst | 88 ++ docs/{sphinx-old => }/make.bat | 0 docs/sphinx-old/_static/css/darktheme.css | 14 - docs/sphinx-old/index.rst | 50 - docs/user.md | 0 docs/utilities.md | 0 poetry.lock | 1523 +++++++++++++++++++++ pyproject.toml | 8 +- src/replit/database/database.py | 5 +- src/replit/web/__init__.py | 2 +- src/replit/web/utils.py | 2 +- testapp.py | 11 - 21 files changed, 1716 insertions(+), 92 deletions(-) create mode 100644 RELEASING rename docs/{sphinx-old => }/Makefile (100%) create mode 100644 docs/_static/evalbot.png create mode 100644 docs/_templates/hacks.html create mode 100644 docs/_templates/sidebarintro.html rename docs/{sphinx-old => }/conf.py (77%) delete mode 100644 docs/db.md delete mode 100644 docs/flask.md create mode 100644 docs/index.rst rename docs/{sphinx-old => }/make.bat (100%) delete mode 100644 docs/sphinx-old/_static/css/darktheme.css delete mode 100644 docs/sphinx-old/index.rst delete mode 100644 docs/user.md delete mode 100644 docs/utilities.md create mode 100644 poetry.lock delete mode 100644 testapp.py diff --git a/.gitignore b/.gitignore index f81b871..8ebd613 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +. + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] @@ -134,3 +136,4 @@ Pipfile Pipfile.lock t.py repl-tweet.py +.DS_Store diff --git a/RELEASING b/RELEASING new file mode 100644 index 0000000..3147deb --- /dev/null +++ b/RELEASING @@ -0,0 +1,6 @@ +Update version marker in: + + - ./pyproject.toml + - ./docs/_sphinx/conf.py + +$ poetry publish --build diff --git a/docs/sphinx-old/Makefile b/docs/Makefile similarity index 100% rename from docs/sphinx-old/Makefile rename to docs/Makefile diff --git a/docs/_static/evalbot.png b/docs/_static/evalbot.png new file mode 100644 index 0000000000000000000000000000000000000000..277db2f89a05361037320fbc6b4fc125e6ca6c89 GIT binary patch literal 39023 zcmV){Kz+Z7P){y4O8{%)vfA! z^+LUhi&Kw6Kp~(IPzWdl6aoqXg@8gpA)pXY2q**;0tx|zfI`4=2*f*%BgIfq1a_5` zaoiH|Nzgv}@5%U^AO5X>lKlMcUZ3>bKkhs<;tzfrv`@X)Pk!hAkdAvD_qwE^|Ly(L zo4!uN{U_Ve+jIY^m(joXRmK}vZ@z=#9;ATxyQKde=p75hgFkw{*l=%4A4kp&{;vP@ zE~C#K_n+Q8yYt`+Z(n2MK8|&0pCA6u^|M7*7JpYy6d<64hrE)|~?{J&*GLt_?y$H!ej=t9AJ5piEgd@U%!knmp2bwS|1 z0P6F}m+(hl0)h<1MWG38X-McYjB`g{&`(b)3ByXZJRIVZrbH z(bxa4mvN^hA~^K&fdq*6=E0Zn^Ik99$KD-VeJph0QI(vOxD8BH<5LqKA77r7n6MSU z7bhnt{(-+Y;_tQiyHE+2V6UNbzE{E{%wqvzkqtqxPkntu@7mh>10f)KQfNR}DO1Y-g1A_1C2 z=c<~zGiz$Nm(e@ablU4Q(Gc5wA51QY_+5GaEnS)7)VJSR0Z>Ajrn>`m6lsoG`` zP{P9uY60p%U?jqaF|fM2?&8Yo+S8$Nq)BcuUg@8>6(7~RSk@^_STJJ!J$UYQm6W5VLRtXOiV}(%Lu9a1_ zcU4r?oNJ=Gs-h532!s#;_(DF+%t(D05n4+^*lg4{rG$rpA*P86rm4%yDyr|o*^E{O zs;Z(20fj(#5vWX0O@0aHtOv7OwAdbAR-&VIB|HSj5!yz#UFFqJLU<@=xFBY#m_op5 z2*8xJu|;Ou?RhyZ-*g&pk;ab_9zjNop|=niS3qz)fUw)_NE=|quR=f}&>R71Ax}dK zxdU2Aslvw`0!nxUzzu?L8Qo_Rz zZY8Cq19p{F{U4GPb~gvDs-+N62sj-9Wb`e`%t*NdVZG0*1BS*%O9>AjcomiG99>#g z^)$>>>Bis;dFe8=ScngQGLc+0!V-%T5)vx#yMB)XnPOTLrfp|Ft<wlpa*k^ig3$NlaUJ^g%AO>J$Cc0~Z+nHJid%8L{@ zVaA$_h^(6+KuRKo=Wz3>gooP*@GcGHqPnB3y!y^?4~&oY`BMK4hu>c*$;rP$Nc@bK z`ZxUCjGtx6NlC(~t05FAOcL?3r{kq>RaalXXI)*xKKT6r_;>cHtE+F1@0k+b>B7^2 z!xT|0af9(UKAX}~QbEyG+|i=XSb0ZC0sHhjPiR|}+I9`UZ3Jj|v2@OwYZC(f(A z&`yDq=M+MEzsSx?8wo$imWUd~FfpryhXyGPs6`4DokVH-7GK8`2)gYRYrQ+ zXKAU)iy$=qHuFLo=??@;JYM`vXeS-<>4(n|c=3CI2F-WeQK~1h5!i+~wF1IoF+L0M z`4Mx<_T4swN(KZ;o2u&Cz7>^KLouiJ2aMgECQRT5S<$jZ`gsr_zeM&h+t0lc9>5ra zqvfvhswp@re!BgT2W{am?Eb#YNK2iOm6^T}FE%xfus*eQbr}#M`&Cp{pM}qHU}o>I zGNc+eiU3VdKVeSI$w*I~o}QMQLP?%IyRrSDpIuoB0w9N@`!3_HYKgiz{AaJBF z2s<+lW+3K;2Lwj}1jnlo9LI)noVNd$N+JDy2#gOPFdTb`2`_ziSw-c5vhvDdS}w0H zVZ==}?H_?E%&DKCwa(AVNc#vH#xGbD9hoeUa|(iFzq0bGv$07Th%WUA_rLSDHT~=7E-*Us76rK1^HZ!hCvAI2p(LSPTJj zHU!9L;pD@qZO5$e&@_&B!z4J?Lukyz3;q;L2oZmg4PN-x*fpM7T2_7mUic%NI@zO~ zuM*6u53;i|roc4y4HmwJNbWDRkrvpP48xoni8*x``od_zkUzk22L#A)Wx{F>eM|}u z2#yxeIHp5z(0(7vrw}jrYY-ZbL1=6aWy7Ip3om@jlG3t~cP1OeCualGB z&&z2s9&>6{wBdm{m5%wujma1Y5nkUM@&^KBOHOwBNw~4_=a4t<;09w(crY9nQB^M^ zs%m5?#|5T@*{yQ3$KnNF9?EvZ(H1n3-HJ+fje#SS7&AOmJvJZ!pT;*38WUjhoE2#% zPor=^h~#2pa*4JvVc2g-A4FmO1`XsmL}6_VX~Pa~EarsA_M+kkagO8mP>l)CWn^b% zJ^*cFno}K?c41LjRo!<-ap|Lo^B-VW8!<|^5ay{zaYXb1DfM$nls{w`u+m(W;iq zrKTjkjI6wusmrBeNO&Nn`awlID;8nmWmuj;!3nH{IpH?!4nKjmQ6Idxxf0uU6y|)t z?ANo)D=YI>t^H#Vs8rzRk@(4|EuJ1`+j=?){$w0|^1j`=Eav|^wcq{MjEwZc9^Jam z>)3wxRau!CwuN$H$2eeHVaemrLJl<7+nBFa3r*u5Xs{D8r)-O$;+$H!_V*LE7Z!EL zTsj)4mu=Xz1!sIJ`Q9)+i9V+|Aau%e1Db^S^Lu7S`p(w*c^mLqhdK2re*RU^D!L=-)_J)vg{nQLwi6SY2mBncmsWg4HB{l^ z#V}tTg9xl21cxvxi$%Tg;9cWzkiQBC`FS>vU@bx6!inhYZiyQB*n+{B#uQPb`PB8~nSf7<^e%}vssy{T6Bk&ol%_+_+(Uaj7m{UJPkjx)Cc;MrhQzf!G zR9;clb4T&cr(woAN*2vPbRf`|=0bqP@_istFFcST_o|({DxbA^Lj4Pq!fm-Nv!=;t z=ewVO9kL3$z779r5bp8%@fqpqJ3DpQeVMicjH8L5AU}US{$JX8kM@7~Y9GQR`TJjf zJsyJOlplUsek#f^o30Txf7e0#_nI^C(0)_;9-#P5u0M7Dtm zh|s$iW-4a4we(=&?}LSZux8$L&x}jD@z6FGY7N9^rl%Ko>d^it{@tT{SD(9UZcsq$ zFwCn{Ft3I~Q)z?ZMjY5xG?fk=eB>iX9d^icOP$jyV@|c%QMB_On6WN0$cw4wA=qEo zy=|*2O;wJ9N>MF5;OE%4xU^z17AQM!0Q?4EjG@k0wY?m@{wDbX=8l|Xo+eF?#)(X%-6JT zmA3%`=F3j)+yBI$82ct)9_Ca6gviN@7Jqjx1j;d}%mkXk^A{VRZJbj>2Mv76>YRdU zG#Q(cv6xfWfCpxVw)H_4-gEMEbKbJG5r+~N9$<&^@0Tr@tI}YudKcy@CS9}TVLmFD z6h^|ovC>Kdc)^E5Xxs;(!7QUP9}10HyzE~bynn9`yveAMM8 zg(l5kV18PFO~e#;jTa90+!?b!84p2nG0Jh%#`OO}59U-M=G3DQB2QQqBHN30UI^dX zy=Zt3p~g)Xf>yXauVqGGn6EaNBoVRIqE>joTr~#fsweFl83>N$5FBShaI7)g2F+8` zrq6sv(=^PI5v|9Uo;K%Y@MFA!m;O~xS9OpuCxJ*W79-61Hc;62V;CM6jP1LEv9QfXaS$S-H6bFr)=(2U^TgxEoiOC6NhbJdssaIWE(FLU_{Z*6=me_^^VPf1K!(R! z_^$AP1_RJZ-$U!@ShTZz8O&8VcJQSMj&mV6Oq~|zV*UKIH{QSt9_sWcIvfpnK}!zq z-Rtc$Pdt9S?hNO`10nJ}%vna$K-5vYx$?qu&jqa_Gng|)cZ>^=6%ZU3Kya8!fdSJ| z>a-a%pVAgPIxMY4m$GbVJ9AcCo~bp@yCJ3i^1ar@My?pOj8zijAOB5oMNV9 z%wwbp5L?F13{N4d^NXf&m@ZSas>xU>zwY*V|14`Tur ze(wAktdTnL#Yr=ug`8xxuh2r4-h9RA$27MYLqV@1+1~>KWH##YWOGzL zI8-{eO{-kjuH482-_$`69G_q_(#lA^aF(S>6AS+Zx@HSA)?jG1Gth@zgM3w8c;;zi zU>f~DgZ1Kgc^S;2?_g7MxY4?zGIy zFuK4<9e+EBAwuVE_|7ggnvEb5HzRKNm0xk;IT!1P0-=$2hDN@`gs-L^K9$K=jXdu% zqho_i&p4b~JO}kU8?7r+9&1D?w2%Fuef%X-K9b8AQX8Gz(fWpl!FC7^IKn=MpW_~* zf&=EBmmoMEjzq!1ab~_O*r#W4vEtu+;ql_1jbDx4P?s`o#``Y;j~9&2AD9Ri;*@pN z*^n`(enbAVn@tFgv!KPk0URSni}f1wOz=MibBgKIUz>kRfMB8x|j@TjP)x!Q&i_!ENT8ocC&!cQqU zIJs@$C)6ZU@Up)O6T`7?0%Qb!Z#uCq$WQ|CxE#2=C|JI!SYFE(Px2xyqxBqIz7dPp z9f;O5bdw|(T#UtQ=vP>-W0i;}1;{I20;C@Vh~ezJm{XTvP8q&p0hx*4gEe8Q#6EeD z!olRx2;4CmRc04Ew$Y6W;emnbSyNkoqHL7l=XeG?6+?#rxf_ZS!J)&M3fuJCbo#pq z5Jo~76(DiI zP2EMZLvyj)U4r~VlSL+rUIspn+qfGtQYRA1GClXi7beX`sHH3M9ZguYIpbHu@zBHv zi{Y6@`i))sdhFJjY9gW^ELLA2>++pOI-&VErlL-?2oAmbnb?%PhNv;uSt4dAzB`pEFmM|hqdioNwD@q@qNS#4-8ONWmOH+YRG&V zk`;WS_;lqGnmsq-7dU?)B8AFcJcy=$f8m*@U&~Y{CO}WrOkqsvE&RaLFckuw zW}8TT{>5g*ke`DNW%>xvVM8agBLyHj${B8~^NaH!k04WlsWdmtrG>+-h8*b702jb~ zWlK^+M09nmt*f`=$be&pH{yi{252Y-s;x{!;iP>9lWLJDO}ylLQ4L3VyLX4)JAM9b z)PXJ9t!CwL!0}|58eAz=cmNQl25JyyPSo)R3Fao#F=3I!-Ew`ScP3 z0EC4t&v76UiDnh1&yU&%=Tr`W#(ulr!J950eKJG5O>{UBff-Now7rqKFkd}@@@tLM z5iMI)T^rTeq9ZPZ)O+Cm-n!#ML|L6II-tSIF%qVI+tx?J)-H4tAWb>9-ala_cIGah zfTV{)p$5CKMcTEV>+uuL`+Vm3X?7RGhE1Cfz*V&QxbdwwZhqU7FC@y@vRmaDkVnSf z(p^79sD&dxi1rL`M0nX0qHPX!PZ=K!zpXop@2se-=B;s&^sL&gP5xmpzwH!d`sVu{ z`2pi7`^sKsSYC*^w2}9~Xm`Qz4jA_h2!T*ii*CEPj=!y@_89pPFan7HI8lB*z+VBD@ec5l$6mSiE3Seop4z2-`IpO(xz# z7)wTUF}4ZyqJWu3x&lcSC*DlJtvC?*wm-D zZ`oiC|;B6sj`APtD?3Prm{4{~Wyke(&qMd0G9@>1Y=~okY8^c73R&a{|0~ z;n@f7+D*@0rR@~y4>4o5tA(lJ1S2Wkk?3xWmgr74RMP1|ll=yo>>$xI9Xve_bJaIs z#OyAg_lEz4IrR|kZ+QDsB-x9fE}B8MFNA>=k29b=CO=4hI5< z#U|%e9G&mxqRzb2Ss_8sON;49_r0%|#~LJHs%iau+UMdKqpkyp@r8W_V{Eyb~|t)Ob@KHE187 zSh%*J@{w`3^b$?yj%dx4&HwIrzYacBv;6z1R}RxvcbKk(%;1vSww0V=JGHIc7$6Rl zRRPX+NXtH03e7i?W>uuyd^ID`UIT!Y6 z*BI~~>#N7z^RI<_O6suy9tK{&3x*B9N9NsDoB!EC^N#GRdqtWTDg$4~?XB}#GDS_$ zhl?ig+k}F`W57jPyKztGuzB-=+Prd|g4X5~gDmtp<%;TqP@>t0|7*~k z>~yqmK;Xs(jMFdvIz=-n1mRuq+uVRMM*Jf6$b)vJd(uN_w5uUdy9Wi(cYy|`)Y0c? zFdEQ45;p$5Z8kJoskbnurX)?@txYRahaiLT9M12B7r$^a>8ovA`1BGke3Fs^1a|4A zuuC6>9j#El>IeK@kB=)v9D-z%woxg@ z0^M|8Lmv!gC4h$hDmFWZ2(}l8P1f(vJ#=@|h5&xWQJP=TRB#XY{udfi2hoT=L|&bO z$g2-zPAF(K|H5?D4Hrf2l1Vq*v_vLQxOr^WK1^2W&^ngkjE9t6Crk^sA>F!=a}Cbn zbF}1iL2=;=r==wKsUdN}hOKxs{13yl^xC3=LT{VGq7n-UBDA`ErA5^I7?d$T1+>eB z9%C92ZIKB^s%*;R59i>;v4dV(NrQ@RSkRb%m$~dmuQrzzj3M*JVf$ zKqElsek>TB1Q!hN=4xpMLqyGEM;_YmHBm=%FrKw&uWP~I0xg$PuopIkyIRn7UCskj z#*ZVfyR{I4(Db2A4PPPQfxKgzaYNjEJ1_VNhMAx5tFkiEg-^pHfI;Y-3^yaVROwja z?Atm z>xe#JAgBgQc@Rps0279`=AaK3eeC9fX3NA*Z822ky}ShnUvQYbey8T5?Fx|D;U8q4yQOz6InTZP7Ou=t=zkm*uCr7r>n21#hOun41}#O&TLIb}R$I z&-SDq>_ZgS!J_R)O1X&CJnHHjgbx4(8HgGzKFl2?^iW$s!GNYd3J$y^1KoEyOkcuu z91t3&4}Q@W42SzwJP&dAje*(SxpQawQ%^np`VT+;s2`vt&y78M^jMUcm08lcbLXE9 z>DTXrJ@?$xwY&56Fw-gcK1{o;r;WdItJeH+l>2wgO{67qocGg31_kD!FA<+l z|IR@ohix1BW2t6OqTgba50-ldyL>z+&+`~>`&S`}?^#;a=SM{2DkGVO3!+kt9 zAyXhYg7W+5qZ23n_|s1(S5#Ec{N(bRbnevYr_9XE;-0;FF6h;>=fYmSdigb*g8vQB z01n`l%+Mqb^*g85dd?}DW8aONOW%u86I@dhILJC0e>@trlPCbezu~VfTUWtx9#p7{ z&|?{dm+uF2dy8oDdl=pMiehD3ISfDoq`0hwVi^`6+RTGKjDEtdIG}AEg5x`H!NE+s zFeUtIA=O0P&_PE&fRrFTMGw-oY}vB1cklf_L#OzX^TUXjj1?SX5=%jX2?f0my=NdJ6cI?=3T|q%XAhT0EgiG7`^A}u=&B^MqW5>9kwc57lcoozD`tbW^za;lC;@05Tv+^? z;6&-jCf!J>5& zp^==(jmevDy+zZU$HT*_6pZ+%udD*`Oz`Pm0b#;IKBPcni1$(WP%-AzTKKMl`DYAG z8C;buq)i(l8pgsACp<6!?SPl5m&Xg|zwn|9O-Rit>`!}WWOykTSkkAt1zC32XqjzI z4J`!6kKQ{@Glcr}>-(;ede}AQO`bgEd1xUomX(!x*x}(sp9%As&qy5?UnBAcXs=!;V#GLqbP)pwr~QdZOC_%rtC9z6#_g2-b1Tsb9Dm z5lz?OkKTYI2QV_x6`C#hWWuEN$e1zLEy0}faOS%dPM2W&;qJ)PiSay`tG!M(9F)?^3E9gUKFr1nv_$r79s5Q6{iBTMU z$&;A{6fgOHL5cb)pb3utG6V;k&|Y*??BHcT5CY^|@7?0a;iq2%g5IVEUyGoj#oq^$ zh87A|v5f_yd}p=*Z9XEasHyFi-7l$Y7)X4S(HD zNlD?R#?;ut$F}F#apS+nobvGV;2pZyJ17Hv-rJprP954aqRxoMBQRoti(pRis)JzR z>cZ_H{Yh&C{K&AH2)Aix!N}7*>KhsDVfhigDNyrU_==scXXvc{QsO0l&Wfpu4tE|Z zlqEPcfK0vQI=B=d4?g(NYsX#Veh6Sr z37zg|lohno_P)pVEjc6gw6JAUEMrdX!kjw9$i+y(8mg(OVdS3abpxi+0&GgY za^IAYKVC}!y6!$TU;Z`I?FQ?YukW!LphJJNnYzB}VB=eW|104k3s4huWQ4nIHk3UVDI&_BN^c(_*=WXsC zK(^C+@i+7IxRU1KA>`|Gd&-8XLafy47& z*s7Z%MHp2E?Spr=Gd$M&T3j|~$mHaQKf?=DQet8_Bd+SuzR+FRm{UH@P?%FL=P^y7 zNK(m^^QPZVINT>#iPZBqXMS1si*Vw~K=TfMwM!N+S<*B=nHmS$2M_V-b0@_s;)?UZ z@SLzZ_p!+o(k2Dlp}9^84?(b`7UKay*bTF+62%U6BX$)+2iahfX|{VuqP6k5X@RGF zEyUb2?e!Rf&{L1#jLY@B?$_+tF9QuP zG$&7*>|y@Yv=9C4hqs`RAvg@v(6mXRvtR;vP;i(&B`-ifq(!X0;2~uejZxLNbcHGz z#tw0#2;(pvFo%}MeFXGPV3I%2`uM&toav{C(DGG=&PP`w|2{AoaWdAZ-T zB1YSU`ReH9%a=E$g@N!ap_v7Ac&CVm@W6c$6u5p5REo5X#Z)Mu!JSr8QUZ7WWg_%t zm%)aFi=NO;h(7!swU`GNk|(Aefw}5F3;fl9*4Y;7`>ncp^Je6%S>I0R6i$iD zn0S)iqdlnB6ZO;H$cD<7+%!LMj*hkKj_DU(eDOuuGxV*u-ezvErf1-xeP7iUOv74& zY~Dx@FFF_SVmoLDqlvb+iDD?*JRZqzFbLhN2|H6yU zdGj6&mtfz&{np#Oy|3vxc>nzv_TFr#4{eqQgDsgud1+cOe!Ra=Np^+v%bHWPoMap2 z!KvjVO?Z%B(~Gq}2nh)ZLgoe7T=()CxN_b*&i`rIPzReGSf*5WzcI}$9bffcc;Usz zw{6=de5sRY+t5A+A>BkPz5Kzw_hSyHW}1ihp+Qml?&ZuJG{o+|6g2n=`GXCK>yT)$ z2OE-Rr;JY+Jn#wDgVxd7VsusUuoI8JI~WgUzF)X-(Mc;-tT@q3-9UAqee3~^wn>|T zpJpM-GjPPi!~|`&5B_H zB+yB$ryxN#ROTfz%S$8f{Jz8L;Q6Zm$tQEq|77mm>+PV;{w`U%^mLszuqcHP8> zM9iZ0B-lnsiWy#@Lc*2*Mr4HRF}zgtq-xWmhy{Oxp56f&b}s=94@bHYT%dJ~*UR(X za`(E-DfQLYU!Qm3$cz5Pi#tk$E}Y~2M_+R3DjPM9CN`EYUop^~Cnl`pVKn#u!6Cf6 z2;Tw9G-_u>Tt#MmKA$^sp$A%})JuGX8bzVB)a2hp$|6j+Y0=_>k4*$aa^sLc?KDK~ z8D8A=HhIWSKd_2TPbY6)zW8F^r59a1YCDC22%m6{?~X*7izZE;!jNpsK`MdTgz2gy z=6#bEkF@^GIaiDRG`)Y=kXX&6U61@&O{PUev|THLgH}eSPtUBi!T`IWDQd}v7#bEm zT9Ki7Fd{}scx>3TrKj7=`RH?+YY!L8Fg?3r6_~V`hCyF2utV&Q1%oe2(}QT11Mo*8 zBBfg6#ho(7*p{`|Y>i=Uuw&^}Sw@2LN%7;~0eFo_)`~_cGs?DSnKOAx;SA z;6+c$%F1$u>GJ*#2#}`iql{2Pnii|7c@0cCjO21XKP_K*lqjDt9|=V~iPAGrj<#`; zr)fb%WYP4gT8%*Y(*%fC!xz_-?H2xl-l+41UXKg&Ip?0oTv17wQ!k%<%BfG|GO(FQ zocTWTpM9;Rv5AL2tJA7gza4=Hs8Ls5bv1o6p|Z~>V%}4zy5@IgMml%;P46hQvc!vT zxXo%#yK2l;rW1%eaR@*c{*wBW8frzr)?vgC@Q>$=!SyM2MV$N{IkM<_bRt2YSi?>gU~O!yhj=SQ1Q`kb=*ZkgiW zyAsBK1wKs?kuX^eLK&+Yl4@8ETp0)$4t@2wdl0yp^TlhrinjISv+JVZ5?oM3`HBDB!qgwZVFEf2e>BMY(Nyt2G)c5<#ZGEJ*vQd|A8Jggs3*|5YsURLWeqWdY4$59Um*K z8wuo~aAVl0%QT0@u>gys5uc7bpN%l_HEA9Ef*X?Z%F32jIunk%d%DegV3LImi3=Z? zm`=qHOB(|19d`LUG?SH~wDMKeHJv45Vs-tJ$ci;mktRG0?e6?QlUi3-FBE1AU&kN& zcJH!Cr-Qq?xwAGKWKaPcx3^%32h9QQd}d{4%F3f-ZD#ndUDc~sucoLk2#ziA2UWo7 z8xIrHnN}NhH|J<~d?&STmFM9A4$uZ)Ok2ZB{j_aFXk{>O7X+j$S`C_lm9+VF*ikpl zPtrq3Ye$?V@koJz4aqWm719*>Cgy?rqS}ae#TCIfXWpV)P0(_$Qm@?=;`$%x-Gm>E zA~Ujx%iNF{Y1d-c?X4bZ!b1icR6&LM4X0fdUi2oD6<&1Hkwg$gD}68@uQ|<|zQT*n za6%bEQU+GdXcV+=?Xi$UaJUi?@}74q*@a1ix9A~^c{+c`9Vx>>Pfx!uG+rFnn%df? z^eMIg;D;!**=C15eHEp!bw5F^C6P4CDkF$IvL!%^X^XQY`??ckSan85Mv2)*LQt;; z8=Mw-IHJFgBVa&HhygFx!x^`h5w?$k-<9RjBK^;fB9ubv(|UA>%y9b%kzpM#4e z=-uMRgXnlA;=-M&@^ihLt3d8l4K8J^ z{Ako>h1LrjA#x17)lcp*5B@-r^ zQ{2BBJZKOPk2%psU5S&)A9!~TX~gfr|18ZVExm>-FBNu(Ov}<_XVxQcg1tf56z~*s zPOx%ze2)c2$Q*)9$`9%O4)OsZ+1)HZz@@}TU5-Nr)1A0~#}noF+tB$YvwRt>SBLrT zx_a0B!JN92{V+(&qd2sVH}q8Zm{S+K&nax?MEz(nD$JnF zg5C5$c&rm4jtvO~hY}t>z%o5?MSyo|8AMwd4!yHtUH}etK6W}3f-X%42kTDO7Lq2& zPCEId#~p@W)rhmtZc6B=^M<>&U$?RVqHg1b!%x3LPbEHe`pl>BKX(B@livmrEUKz& zo86TmQcp%1Xddlp;xIxBTE_wU957N(E87UuONqaCnr1|A)0M9szKM2aR;eE`;%wIf z@BZLwXJ#6ad{MxV%jXk=o7d!*wYGI;PiPSQTGYkj3nn>HR{ z#M5WZxyi&KJ`V_RuH$W-kaoSu)M6k=J5j^53KYb$DnFn0H(CtE7YV5hiY<84iMx zRKg<|LN)DQsrH76 z{jWj=HY4Zi5t7toAwWIeDc79p-bKh{#j-UuwM|if7Wi_n8urbgq<%!C<{?9P?2cWk zA=4GkV^}d;HPi5zITVBFZvRZ4F?;U)*nN5Iyw4di;$f)w!joOr#L(%Sbkd0r9eT(i z9uDiN@4R;(Z0d(uXsZsp!((y4&6SQGea@IR{rzY0YqQh)$N?o}W~r{JhQLA> znpcJ9;c;e1fVdTH)+c!gW!Iri{lVgSfw%Snljz$pL%t-ypDjhu_WxmCPjDxWjnhRi zS)Og7!OANxJm+GVKtI)Kz#sP}es6Y00~->d0F3(jh77C|9tSQh@TXU;l0d@|BqGsl zB|~y2VVBBO-@*@eL^;BRn-@%G1WB;^Xk+(jGiG|cRID?0?CmGP|Iw5ZBp4l8-{U2J z;gZp#Jxo*35Kfyj-%`qmTD;^Vkba`c9EBa{E9iSOe0bs<0>)!^>aTAYPYN@cQ89*L z1P?|N?ip?)SOwnf=v5{|GX;74`?@h>E)RzQ;XH=v%)?v-4dH-kGv4PJAETyZy-(Gc zQzP|D*7#3sa2|j*@5?M$i4Dp7!EogF*bMNjjMYo1yqj{Jo{xqn(u4=K4k?lwFM2qt5BQ}HiM zd-FB?&y-D?cUatX`RJi|$(ytZ>^LvQj`MV1jPj;E(GFld2a1-ps~jBWouB~)-6Y6r z9}$2#-n4*msrUb24jc-cd3CbKqY03v>jq@;<&O?D=+8Kh-NU`%JL~-D3zMiVn2oNg zf#A46Piw=rnbrgwoa^vwvv(He;@?I69Tk<;O}-OJ*wiN{B?=|^l+>QBWFkswq#x@7&+o(|& zUxJ0jBl=5w$(gFf)Ju-O{&Uw2*YtJ2dxB1PnCf`Bug_$YqB}(5VN{c}3B&f924oX? zPqNx|vmXD1=E2-(%^vLRpYjgfWg(3774SbW`JfDQu-|@T-ahi+gAW|bjgVf5a|%}$ zFNW4Blo!mKIL~rmGjgK4;D8A<9m0rd>U|zCbibP?&>%5GGsd!+56x zjzxk(A#;v_{>4$VdGd+J_dez1lRZxSVkfu1_L8?TLQgA;`%t>fdG>+3_SAhG{68aW zCgLSWUp<7RP9F=yHg`c2s9o&#yJ6Qa+cs^Yt8odKQ@q$IB#*Cyt2h(majmf%Bk90< zj<-*Z-_!qqao-o?-;|tCRtGRo*FA9meTQJ)dW6fm2@W%Jsty{&57>+xqKA3w{9>Li za7(D^-3=y5oFURT%%@!VJNk;0HBg2b6r6a<-#{1sS2W^;2Ur)%Nh5+rMOC%%i_Tq+ z2u(j_5_~z_aYC4Of1jaya7g!u|D!2AiaT96us?h9$tQYn$B3{?%PHLPg0H^z+G~bW zv++Ld3m?a+cp;bIg*5z<1GDWHo_X38ci(vJ33^nOE;vAQ5p2?aLu;`^WQrD{r>wk^ zR|A_(9V66+Xd#$72E)-Rddl6>Zr?j2GkL_EVrBxLbBcHqcV7a8kxv-^ewYVmV?L}G z?XSOb%;L-WiFw)`QG*`lR&6t~)Xbbhdlkb@JZ|ixcieg~HY01@+kbBA>o4NH@oSF8 znWFdgB#FWLS5Z~PED~Zn<8xeN=S_VTUO&ZX?_rPtu0bh zl7pJUa8LBhu+4LkGWGnmX-l){E@&RhK#V&PpZANv|8XT=h`6gpo_DQxqnh1#LRnea zlS`H^J$32QrDrT%`kj&c)hlse?EOK522F)9`h3!)mz(tqPRG09<6vSrqnnIcyr?rq z4nO^B{qA>n;t+~Y1$xO*wsz>?fj$MNHmqUfv<}sd>I~h!SH`rP}hyT?$#oIrXb+n7XoA<1js;lfv)q&!>RcFoiFCi zI}3Aa80OTe_*-FzG2C6xw&C8fK&yStAPMMwV{)ulMuzdAry3t3Bt;nVB>5`Lgk@Omm1{ zUU6+&AN)euOd$@Y|4`%7b1b%!X^y|`q{pY{m2`%Wk9TmEhzq5g%RRNI5e%}on$ks- zdn2N@_M>`kS6CM#R?EW5B6f6o@p+of#U&7Wy`m1xfSEYqs+XUV%cL|m_`>F(ByfqV~@WO5$Q{sY0|^W>2KC)$G955>p46mZmx)l=9&chUFUK1d}Mc2JYW8NZ=4l+3-srF z^o?joywWE}Of&5Ey$9uL{`vFg{&>08O7^2>{EuLMWO8(L^q1ec{f4{}+!5&As zbF+iH=g{mw*N{0@oZ*x<{8(L+g;kBjA-dSO(zH($+^oxZc;IGf&QRz(Jo%7c+P}l{ zSA3`HZF}2VJB14Y;f=}WLYbJ^PBlB5rSBG;8l(bQ?u|w^)&SN7oRHXF)!fEi%Y1Ly zu-sEBYgyWr4T;Fn#I+D$>DIQ4AnG)(*RM&=5#g)GPLaoy^X-W5wWL46pO96|_s~L6 z#s8{-1Njl*%g_cdmgmw>cbDV}Hdc*VE;TZ1N9$AaC04)NE;0%+GgruuUtO+5A`u4#7e^t7xP4CO|KMaJOzO> zP#?LV$Zfc1;ZC3Z9}yQQM_W^de+FRfqiFZ?vD>Lh>CRtrmb^SjD|df4$xq^%o?&S9 z1oVcs(7iauVo5HfCGrRTyd`qyv^?#LT5H_$ZW%QDEud(SGIXlqw!Eg2u04YQ@x+S$7O(HUlG(P@G znlj?&XE<~V`Xw`(8s7cVD>wI9q%EbxE0ZU;Uvvbx(26~Ip&ol*&|TaxaZ$27ko(?b z2@bpz(90{Jq3*cwnqhiB8Ugbn{qhgg936QOu#PFg6rya@>M0- zt~B7Ve+Qg@aCPjN4jM8k*^JImI*7-eYjeD_)`eI!*tHLMCHHmS1~Efs{Tl|QcDH zR!p|kzHD};1&8O%9C>en3d%N1x^}hhyG17EGCfw*2dd)+p`u^iDnrUo0r7R zre8{(o-yy-m?W&qZfn^T-X)>`veAfS>MDX#epaK_uc+;6<@&Bh)6JO?tIA>LLH zLXz-8xuZ{iEWeF>ZuYTfNXVG#wt*EI+ZhKTV0=zg% zGmaBrMxX#)H))AsqZSp}>G%vdEE(u55GT~IYCB74Q-E#3nn+bC2#)T&3t!9Jf6r^D z_obSm|3K9U?Syi@4}oOOC{xqNdetVLzy6MJB+JrqvuBRC-0{>wqa6FR$I8aIGksBbZUe5aH577FWnYK2b=hO7hKXe~Fd(UR=6`X#N{pyu|Btbhh z&juKVQ*AoGhGMA~V6DmfWm&aUEW)9G|z~)L6Q9`*w(#YL;11~ z8Npt+2;D6>QyPMUmD*&VTsIDFR!_|Z>9}Bd;c?)lIJ%4KIlGUn^~TX#YfH`t<$DQO zXT*jq2VTfhBY6upRYU5YlG{EP58d_O;3orpBu!4%lLzq+VW@d~Zy~(I(aGF!n;A3W z@nJWh)Bu#5<+mof{+n=qT}+FI1Abs?mzqt~c$CaNKjNwIP88JN5yi~nu{S{?(t>Mh zLA`B}FZc@rpPgN7>*WWeM_YQmXM~MHmz=UR@&~lKNmfU2XT)`)TIz+St>f{o}ARw*iaGtQe9h<}9{w%6nbro=CD z^IY!)r`}5bacSZS|J^!qL+;GlT&q4Ctq75FeA&>sleciIy+RZa+;(He_T-arIJJ@m zvJ1{X9%&`@UH*BTX-VKYYb8vFila1>WsgD?*$`8PjyXT(a=c%txsL`_W}_^-0=4H8 zmpwNiY-7ASv5G2j#@AhiRR#W~pC#pVYjV z<4kG}u_hW>$hVNsb^4bs+#Lg3AhvHG8u&C&JSu+!GWW9dwpZs~p>8yANWX2NIQ$o{4* zYTW{DZ<~}n_mW0M$mhF-k5IBkdUp_NeCeEDi+3?xFVwoQRGujM5PL{_5qtj)yN~$c z2TH!VbAe_a=|qqaAMiD!9c_Dk52Q&KVO{jI8%afnsiE({vq6*}ho{j?a6s9Rako3EW_+6(f0ih@&NbSM&r_^;c*0@V!EH?;H$}Hnls7LD zHfX`d;qTk@O#*v$Q8Y(iz~%Xf8EJ)dbg2!$2A8#Rt{Meicpuam4LbB`gl2U1;P$~s zFgzJpxDReAh0aPaf94i!0q?Uzcv;rfIVT7R!k)f3u$6B=EDE%tIqjn?zvL@2Ix7l4 z8q*o*SA0F{A6OC!bGLDnw`jxd3&KPeQk3aO%56o%o~ct&QGH+yZHuU>j3lILpk68~ zrJrgycq97NHkG<8vaoWji^>>Ig#=lJ%d|xdHMM@x$XTYF_ypV9 z9qo~?UI$ttLzHCJ@3;K}u$dgekM-4I|GIipcbc0}$kA%WhIfkDNXDnTXE5qz*batA z=%88f`A9l%;?~&rj4hs^(l;izbBp^{6u?jafXW{%{#jvGRc4l0upA0koEwTw)_zWj zLp?I7=(7Xa4&n61X*s~*YH?hNjKG|W4JO59n$4@1FGMy1;jXNF z*W56hmL4;W&e3!%-vSMkHO|UTzN)oTclG8pHZ&jf9r9Mp6JHI5dneyrvka0HZF&q| z;wv0FshD*{g+oSdM(?ru+*$a19Y}On@z43eunGt`@x&T>%pstOT1hoX5aL^>#EBz9 zR^-iftt)9gqs*tUdoo3s93oMc6|(N5_Ft_TK+$C?*Wt|1yYrL9z)`#+10)F8A+=%= z)mfR^K)tl9dffTocbw9y;S!jEH1nBd{avhJLo9e{D}DML@-`7(R>20DFF_6K%m*E8 zpi~5NGbP*;&w82Fv-w!yGLc_)UhIjPrck*r_}hY|d~kZ=ZK~ zJyjIok_MhroHvx-o)oon#LBW#5g-bWb{A>1JHsok`$Txk`ih?dTB{rO+#hkUzfjnQ z7J{(gA^;pCpnj{q4BQ9E0$@mU9Ac3M|R=?1*jX`_4!OY+SUvpABHswG-eNlXaM7%VD%aQciL=yqad|A(HaTKQu9qXD# zE6TIbva)b~|IS=YqH`WO-de#)O$&@K;v%S{aWC5mb!6jSi(#PC*coz<2fE{`fqZX; zOYEVlh@FKTyU2XWttIc9cfBh*1!X-O(lei=~uYub#X zKz(9|pOef%BdJO>SzdODaN2_Lp)J6iGxj^Wm1I6t9I>C%MR0jbc6(UL{YIO}-k!%f z7j^@{xEN*-F?BF;r2x{yQBFFbQK5wr)Ah_&3y?5p*nvHqg=0C;a@}`$N$&X2`4MH! zB<{kZ;I6+^C^i^PXX*6OCbPP%*Us&$4<*(6!Etd?Yz^U+$+9n;z2QHK1^+x^7yGcA z95ia6uZmH2)(@&X%axo87K!q|(OhkvB9FVI4##FarvUKdQIm^y^l82DWV&zo8IUZ+ zkkg+9C;Ub+F_SGpV-6LByAx|!*_FN2{=tJf??U`r=8@oajfX&)E@P2$)WR)*X%$_U zTmvL((*Ay3+vxh8n@ZlXR!f{3ax&v);O{6`GjeZea2dBRUQBlcA`b~}C#TYRKjyW+ zX(l3g^(t#xn#K)7o^EjKQB;Uy46)e6Q9>5YBLcU`FzV*5x)307q-c>W`h-pl*6PRl z;9)-7Ll}TA65xeM&)bjRIW4Q+EXVRp3`!(XwHsVuK@6AVwJG8gL#bt6ahnvkra36y zfW;e@Vg1umDBJr?W42k1U)*DeG+aC)I7~{UJsZs1)}H9s?f*J$PnD4xV#7O&Aw@dA zy!8;@?r6iz_$7*z65=SYS8=p9J!rV7XfZdTqvSm*>Yb7v#aFY7CUr|UjTgC&vTtjb zX%67HFZcX;+iHD6p`??esg`XDB##1h9tTILVl8ZiDSmz2c61>6DX)3l(Yz-fD6~j= z)la51;A^NGFX|C`8|5|YZ>IXK50-Ng8bZtfc{%Fd%dTttyC{-jnA4dW+I_wuUsYgf zNtiD3yUKXCj8kivjbg@IJSKYm3v<#enVt#V>ZqtMoRlr1bEn|13yC#%3zm z@vS_|ok9ap%#6sV^Y`g_azJE8XTnD^T%&q;7g)#ZC$`5)){%M331700@m?cQ4MhEK zO`Pcd5O%XG@1%{FMtF^dE!!=9ZXWmmZ@-%b<4j0w+MyUvRJLYn@^F^NbB>43!d$hn zLbt2HrN&wChT>alzW$J2nMV@z)7@Pltg6K5=2-R%_0>>{rMEYgNGCgrC;LGBIn`;| zcS}eIwB9v`CjdfX$-Ky2xoYiS5p2Ad_7A<0o7O=EO&*{!yrMF?c*fiY#>v@ome=vU zl>`7Z+jphwe6Tj#bYXO`aHr1k<>AnrJfTaX%}^me3YRopVhn0$UM|J!6?(sTmAN05 zzU1CMnVKEeE=NFo(abu8+Fd6wWw=UW89Ao;Pz4^vfTsDhu=g#0`V(muefzIxPWVFw_19mG7N=B)6Xi1`XSR)8!2-Fv zBXkJi480q13o$!Qacz<|6zqvj1lHkkKe?b$U4cVJD^kjrOnVFFE19AYj+vm@k8LA= zTsI-XI38D>D0;)f(vuG^Q_Rf_ECPK&b3m+Uuj=9orlKdobC2dnG zfj>1@d}sY<-~IF2^$2}&!(Y3!wG00eT%OG0N5dYGzso$z41ModtQLyD z(X^3E4p6~2CG!EjBG(rVeN{V)isd=v@srqFkW$`C5L!e$RbM0I%Uh&DI0?Z=!N~<{ zgMsc7l`=^uP;CGlBysF?UXECWSc=aMNEpAVP7%(NirSlYNxiHV|BIR(l1;Uap> zz+i0N^@u1&iaN9FlZ`JwRV;?PW7nw`>Fr0E21eSEc{=yabxTtwN=-s5WLV4g*;heD zJByn8|Xn>kOE z#Vv?w^B-;`BDll3rANW!=HGXk5|}3jOb?~g&|TiPJhh{cIKkb8Xf_M)^^H; z(}h8?Qxl3Q#jQuWT{~eCavkX@48bNiXWXx_gzH0h&4!2}UX3(UkHT1zXeNP?%w|JT zk)1&B+5;}}JHv>WQqP{QR8)rAzLnhA1&0s<;m&BGZ`iA&n07QTIJ2(DrJS@;fITg4 zXYDu{{$LR)ZdO||)fD5<`QMsv+?Z)cLy-^EX*Bf=oXxF25~dV{J^V_{OLOw^ceq*O zCbv|U_;NYG*AT*Qw>d}NgM;!cxkp7M{8oy0(xWZd{Sa2-`ZzjKX^`dDOByfb`STS= zdV?+?V}idpl_-RV>Zk3m9Z;rx-0xO&bW~)t`k*0S;SV{Qef&%oK>7g5MBiZBIASR} zNMA>Tm}4yQw!sXKqM-G`Q>t>fsaqx%#EGmW9y}IENl;utNX2PvA?-Oafc@QAoxqMM z5bfHmx-;F})S0O@s56FM1(#O{@<$?Y*?UK(+@)l1^tXz`gY+($)k>2`KM2+|OPIPc zlp$bvg1MVya=}na4#}e^ZiT8h5_6r>zj-tDB`wDft4`6#f_UD+rAjSqJoWIx^uQ&W z9B=Bac&_GC2hrYK7Bpeq`pwRia)3!0S&)|-^-;Jz4+5i?3Jif42&0aEwR`~nbc4Z< z9Mw&_kBnQIcgEF)r@I&iR&!5kd|dP`e`Vb-&tBqKgKmNYcF|5S)tq@tk_HTLdDncn z>hpt$iaCBK4Rj%?7TLG-8;T^Dnvcdb^*_*H{d`uGaaPdF0%-2SNLZ1~6S^Lfh(83B z@7lA6;?M0*NWS#OpBFe@;EuIASxLtv&s~s12=>E7?u+b1h*tY^Kf&=V~@VsDT7v5(CQy}c`4Tk zou`p49_~Y#H}Qp08~>$cM=<;=5FO*+5Ve|`U$F8sB$%tFDQJ#>cyEGGM6fN@ER)>d zr~esFXPf)SLn4hf@Q$aP$^=r$Qb(XB^g;U68b;A5Q_=e(p8=o?`p{7kd5$b}_%Hn` zlJkneWn6gK!z6&X{C+}hDG}fbrpjlOy#*vN?d$5SWCd6ne1cl!#1=aI3(Ui#bsF6g zG7xyX&AGinYf;igP5VT>-2Zx>I)LIzYIJwo%sp=;!x}JX@DZ)t!WIx0^OmJr zK2#VhbYOTo>f|I)%-_;ICN=|xhjFA0>GljRVC{0%9m<+9nI6d{3*}b*b->pcV_Uyv zmz3p>Ti+W`U~sy_Qx=MP_8fS&>vShs_YFfG!_@vgibLA^3ForDY+G8PX>e0%slcJBlY!H0g(b?n8|n?<6gl{t`MD z5S`IYZxAazFdEn^h)Fh#=J_K5ff}U3Ph97(VA_#Gqu3ovla-R5{lv_h+`tx?sc8)> z!BY&-^rQ8sLaoU%pPa>MSj*1Ib7Dmr;fS~74V@Uuh0Y);`T!DdL6WqPP0R4x7ZjdB z4W5=hx@ z{AZ|8T1=dR+C(|s`5|n_AwN}so#uVkM&^xghAqG8rT{Q)c~~X^RW{sV5TGW(=J+T~ zQ%B^p-YW`q&iSuk;(#~qvahA|jITjGF^wg^)$&>PA&n?tjz!1e<@ri1(_RYs3HSFR z&YukZ{Bqjc!*A|>QK|kEgFYL1R+7dICkSUi68o@m$(5Dc;0siMOtzd~_{~(gkkVYD zC9JphtuN$#b%&Uwy@oK6fpDA0>W`iZZ;6O|j}WMr#SdagrTJ|+(5&qoCB`uize z0P(_r_)CyrX&E{CY}@Lp@&r0gaWrr<1SDxGNFTau3cs^uJZp(r(Ov|408Aje!mhLTDQqn$~Arxoa(bj_EvF>4c_)#M9%}) zlF#?c;M1T=2X-RDLEZ#iVno1=u=>aQC300_&i% zEn+y9R%M-^(%?Ds$fVsW9&I35JvOAg}KX0)7ANm;4vWB12d;^7N$!#q5PibYfrv@NXAux(g z|8toU29LJZR)`r@(KcTi6cC?Ojr5@%hxu*2KN92IBS1%E=pW}i0u;!(ehMVp1&NmR zDiiYE9)==Xz7fSN#Ac%>|1^3%BRwpG0g3wbAJG~&7%q3Get_9umv!rf(WL^$+zw*! z1wC(LWC4svaT%(rS^oX~09;AHUp2?*t)QIOz0ihV6<^+?;iSk+bj;#Lx$*x+`GHne zkZqRLp}i3+FwT8&x}Vg%n*=QBuMtd5jh!lIPgbJS?de0;8HWaK+z~O z43qsTQ^+sG?4)XAGxs^Oe6L@0DE0gZ4IVZ`D*$eaV@eqCX{x5GstfJ~*KKA-zJ~B{ zMH;TGl5d8yth|h&Cr-w{+N}C^>Yx^n3PgemrmLKh_m;vZ)iE^mVL*CUx?x0ukgA1` z9@GnvG$Jb{%vRXH0uJJnjJ&} zVzD)qWrPSt@`b?cp)DZMTN?UqHC0uE;4NK9z*iPi(~1b`8nHK`gO2DQnE?doalYBD zWMpK*ON&41M(k_D;J*)^W!>dv`KO#0K_Mg;Mno?Q5>IQ7B?0>z#FluA%~9S~gl@0; z9Q#H~9r@w~>t0T;)N4y#i}%eg*vS%`-zPi1Zv2@^|A7)HZ z-_JHeC@=e{ZbtmpuY^qg_)~c(caG#e9h^4i8tJ@lJO_9etT$SbCECc!q%knibE4ZY z`fo*VeW#}%{xUf21|$f$K#>5T->8V;1_q8IB?LOiO2hzJ3`p7<)J>q}k2}X*;Nz|1 zKO4wV-+^chf}LSu^d z)z}`Vi#NTlSiv!D$c5hjzixpf2p9rjYSzZY_NI69g0*V=%Hg*^s?Mr)73tVSzP&$w z>EMW{H)2d2&?n-x+l!GbBG>yKY#b|H)=p`L^kj_=vZVVx$*kZt3ev?QlafTk zp#xVoK_n$55OL#M2Y!{|Q9)#lzflsvR&KC#DS9X=JkLuAXEW>9d%e@|u)1H|M_d>w z-#=Cx109|RP~kC;X;Y;-3RK7E{j6Rcu1pK87ID0G$j;@g`UL*>E3aU+4grEZuKHP- z#-P@HB5ff9SP`NVmnBI9D@}&oGm5#mDijg+xc;Dan|T02V|!$k$NVU(hJ{RgV0IxW z!ho*=2$YuW%8}-*l!i!4s?0co>Q}V^Nb;~du=8=yBEc@E{ai?p!xaHD>s$iAlNL>3 zzu0z~C9Ub@mAv;H+_6h26dyT?A(fILxU3mIq9v=g{%GdkuYeBs-cxo=afrQuh0E+D zzU$~m2(CKwFG^9t=x=R;>$Vz^SHF!BF`lbFW-v7QJ;ob}xZ6!fp~T)Ctej^|#Kz)X zh2;okG@Q&7A!;^ND}c83kjxh8w^!gbVv*$~JBURgUALCvoGyD4`X%u7=er}6i?`b$ z#PTx6TGVE!@D{Dnd5!VW`K_>ew!sJi^b35pgw;X0am8VEiBxE0QJ;>X8!N(*nCr<5 z)9@3hkfAo4JSkeT1x(e>!T4cB>YTC!zy!f9L8M0Bh%ZxL(u-q?3AQHbFjViSb00Cf zUMB@G1w`-+OF5YWVSf@PLRqv3N)VV!A9n^kS4_bpML>7+Pm`eQj^zjsDCy~dAmjS2 z;N4voX47nwdHFV2wqT`R_L&ZzUrrii@)lwC0$~+BnU+c%$^Y(r`McOL)b{q#D z+A36RQ=+ps0)%YGyL{Nx9jUXPAQj`yatK)1SE1m8r#6+$+%*8AX3#*oeX zC=7P1uB+VLulij&=mjg9D(IU|_|`(sC4iJ=aOvu8a zSHW=6h ziwup$D@i0p9f{MR(0){mJ2bt~j2#zzcUn*m4c|Ana)Q&EJ0$62=kU_-8ptS^$rTYo zA!^n*?LW%_^Wg+1hUXizd`NPBh)Hw7gbJ`u;}kkDW?r_{TS(v8SICXow{S{11h#Tv zV0dLXV$w3$!iO$l{2^S#kq#^k4?&G+C5_RrdGBe$ec?L|W5!<=<*9{FL+>0X)LPbX zP6Ob?heJ#J%3CW#M*{G9as4AuIi;vVT5;X=d2)}w2WN~FA%7Kg+X+qNU@vZD5%G`lGht4!({U@_UHcexwt+jS;O_g{D_C zViqiDVX(7}L5h|?6$Yn)&)5Fic1JMfuO=%V5eQgOlJ(h4aZW-&lSZ#O& z1vmKIB}y*(tSPeeHbMD!{lc76*1loc1(`ZgxECHMv@DxgUxyp*6*Sh{<8pSFzN`mN z@3mc^Tb2Rtv~~u)tv^Uh*IIT%)Y!`mw6f-cB@FMA*8SVJa3M;07v*L@Ubi}8Nx!kK zJk43R&s$Q8A-^-1QIY$kGP`GVXRK^(g2sHfrg+0+nCTtmtS#wFaamu@0 zF>J|Bb9Vdn(R$$0#U)dik%788g~?26pw2-+R)cl;@8-=Y7J9UoF-M&K!+gEd8hRF` zlvpv~vx(4QCZ*4O3xa-V&-=+yTaC{p-wmYvjSOH97|ipX&}c=+qqun%V-)eDnF@ZQ z>;gZWeLU$(BO_9eDeueo4$2Er4dOa(4s$vduy1V6swk@sRnWqzKg~P-)upulZUi${ zq;%T9wIvJ__lw&~?KXveq)09prm7J7yWc?jyw1?P+3fnvDP=RaGBg}1Fb$drS4@km z0OEega%J3k-N)$EEN;w{ z<2o@1^D-?XHq+x1$ee^HJ|Zef=Ei$I=&?$08b7BkbMJ1S5V5uDGZ0B3nW=hii;jE+ zQgOVapcAgPg#gt2pobZ0tsq=Ix%VIwRD=-hGjajTD=$oWa9BcvrZ|v;)S4Nm)jE$@ z6IYMxji{#$ISgI|rfkA2bWJ7f1LX_fK*~FGv{2%5n|2M=c?n_eeFy-I@L8zpoSka? zC!yCDoR)L<}0SNjJ!S!G7pgK}YI7=C(=>S>1Kbg2xydR~GNx)9No`Pp@ee*+HeDU4ccT=|; zA}gxufB-rKOoxvb^YyOzJrOvyXl2w4>Vti|nLh!zJpG6a)v6>0)rcKHo?|cHC22?H zf%`btc^(yQEm&Yl5!9=hvPlv;x$Vn&$tteI%9$2|Wizq<6Q8GFhFt3{Ji=S9N|Ny| zB9XL|jF-+_FAo?MT^%4Rh|of%?0wlaGK-a6pFbFpBde(fizb4~SmaH_~zD4RDod6O-}K1?LPFOg2R38pxl05SWjpI~t6I z2JX#HBJA*JWT;-uC5Y>L;=8kaP^bJ<03az*cw373EcA3+i zuK5mCKJ2NPNVRdQNVQMgPq`6lpq6-LK*FW+-2X*{sC00ryFf5?UhfXOum55Tu!LeC zWVd|r1GgkDyu?=-fU}8)JvlHD#{GvR_2b=BkQyn{NZk8lzzDClJqwa_2;Anm{tVv0 zdDi5Wivt-}YcBFB-Ly$wBr6quKO)^g2g1ZUn(8BC9(d?(fvJ{`cE8Q+6Nn}jj@$Gy z|BB4leS2WWFuNgEl=tIT(n?^Zg}I#P0Wl^iC1d`f33{@PtR7a#66j4*wg!Wi*S`z_ zFJPNeZLmX}qE;KyOj`s*75FJenH1Fm`|5N>X zKzZFP<);2GZvjJ%DM0f^BD!(*x{6U~A2>x=DF14_!bYVx&UjreQhb3w9U{|VMaeKf zt8QgZ`=m-hqpb=8)&gi;Wc6irxXr4l3b=jwNe^tDoIlX|mBOx#hJpk4Og~G$_Km)V z;~=Y2w!{Z%NZ@Os!d6)j0}{+U`vPAIZ~7vYvg>~&5qN?BmJQ=wtHFkj=;O!h8BuTt zfuEoTxTzR@6>d@n4M*d*mQa`^0Zky*F3>eZcj<$t-C#sfhZHrKvXf30Eum0RPCcl! z6p29;-znRrpR<3AFn?TFP;h}ExV=j6-yCA4ZLn7`WsE~YhX024AQ>Vyv{K4GY^nV@ z4^4jjd}{>ODWTCDzfJz6$G}PJ8n2;Zk&Pg)%Iol!)dr-l21~IpAr&LR+mVPk?ndGu z+DAhnSvYkVLHWkXDfm6Hcz|GcI?GU0Un-bWR)8cGDiV8r2lY3vs&;CF9tIXNRl%%F zn4}g6Egraa4Tv5< zvlD$7+s3Z0&Uux7JYe7p!=b*@>DV2BFVD(>bW%TkyDz}5b?$h;V+BEk7UEz7E$Lr< zm$7-by||koY~~>EP3D2ub#97oxyoB<4eiF>YbdrEBaC?6{|))A{!iNus1GQ+{_XDR;ihKVvUaU4iYP|k9KH&+K#l!g$0G$Kp6m*q*4Jwh zam1i#n1B869B+Hy^((UOH9)X~L)5HuWmSFg++1F^mJSxjuF7?Fo=ue_OyyU} z=Ufg`P!8RYdz96M-I_#J^48E1u~KA;S@KSV5BQ0}6T1fQlfoME)=RHSpw4y@>5J`zcSl zq^MB)B|MT$W2go;1}3CI`5PSv%QHuoZ|g8NbKdJRz4B<5t6ew%ZB+}L61wl$mkKM~ zuw=hMJuQYucDr9*mU%i+i9|wLtjfAC+ZkxuLL5~PeDRjQJY+DZ-M1<0AlF{J%=v#8 z1rh$!ETkz0&LE=(991s;uspJr6|EuBtuuHmpY|EgsD1DQ@Fr%^R*j%!#(jdEFU}R9 zDCeD@=k@kmQA1XQ9U(i^3O4vbpHLW)%sVQRJQohvO>g;7IJM>e832Gn;U(2+mgS(B zUO1U-dn>RP+(zq&URb~0aeX@HjOMB4_#gv+kd&m#vn<$&3ilnNS|AvEy6PD@+bIa zkIiPyEiY1?*jSoGdaeqLnp7MQYD3Br#i#o)QHg&5Fu0? zR~1tg@5L^go_@yVtgcf-UF_c?wxdy>_e$7sn;h6M7`o<$52m9&9$vrBdD)Z!#`D@) zN=PH=eCfNu)nGje9pTZm62-PkgVM~t21P-W7$hsQ@$fw$eLqX4yk!Snb(C3Zrg0s_d7B(~v;t804rHfJC4s2JTqX(@>)8J~P zKb!`&2-BOG|9FkN6>A)=7=~bx(>9<;B3cuzl1D-1hk_Ngp{pGQ+fh#PGMWA~lH9oc zk1NgdWfIed;S7>wCa<5HWd9o%u0TmCf2vEpL$A|hV7w19(g+0wXL|BI-cr&f_)U~6 z6P=N#B(n0hDFy43vNO}4KI_?e4(i7loEd2_Ldk0hEm4cz}S-ZR4diPvei z%hx@ZjTz$dT6A;E>O8RjLu#>@X2OI^rcPt31~U zS>=kjHiGD1yo>)iHXI0XSXgmCfn;a9P~!mdjx2QBp9mCh59YtQC}cE5w=fomp=wJg zLb=?7v9-V9hbg`{^PTv8_#IzOP9L=Gh_s_y|5&XiZI*nhLrTTi+ZgO&>P|gZr*e!J zu{#$lwg%sX0j%|%$ba{RRp@DfjN0qnU=`E$wz`4nSgWJ6#3*+ZcZl(iZ$e4bOmd04;5Rz z5!3v;bSjtkCXq){8kRdSsVs(F5D1U7nb*AiDHAfyqyFYZj!xB+M)NOa;zD^S*^j%> z$PktVVC4+~f<};J=H~Tp#hBjc3PRjvk^ETYAG=&KX=Fgc`pTnFn7!E!mlURL*rP+J z)}$}QLG$rP$5| z9HDa_#nyT1ei{HlJa||E0vfI!E=V-ia_pO}e5jAEnQjk(A|RnDQ@iUPbEk*P>ye!R^#stJ4>bq~vWr`X~7hbW!h^ zISqwu)#BbdeOC+k`_h%vUpo3uPni2VAvQu;Z2NuR4^=!0cAtu7_cyB93h}=!^sV1h zNECV69Or%84lSP6_!W-0f<#f!(MTGejaS2`~GEKRve_{5x5N?ZO< zUlI4c}zr<{xot#qhDq`^^rc&sZ^-;w%f3W%5z0(zOSHtdL4IOm#YYv z7$Lc~RNFdQVu|q;>GMk4II~a#1)XS%@(-S@-A$sEH^8og3H-lfV-qXzAL9E|q`wou z202lFUHL}-vkQRXIMO&Ag7q9%oN7#*s+T%B9{^9nRr$>Ju zTS6pFVJPF@{zVn!*Y0lQJUPl!&#MOFMA6mv^fdPtCIP9!XGJ9t4yETpj*;9*4P`Zszr!CZFjWCiMXW zS^e}i{UPohj#gt>{O?Q<*?z#j`po0)@=UAS%Y(`F!tK9BC<{`r|AKCsZxpzlSx+0} zBWq$9N}#G65whHXh9f)*5-gK?wjqs=k7@OSb(7^g_vBKEqztHdMG)`KD? z3vUAReFA>wy#LAOOTD}uF`u{pnJLlPMn$lthd2th0A#v}!_r92wmjM*1{o zf|XTa5i)pK`dcxufjme)v)C_xOW5V0kg>=wb!{?`^}!LDVt75U=>WMHzloP7F}!j# z^^tU;y3Alsto@WwcZNlvj%Mq%=mNF@$FCXbQH&H6dB+QS_9OtE8fT1s8Y0;HJb10b zPQ|a)O^a4F0E2J{ah!6G${tg^2a%R!IJWObd4Y8iwU?JW-tM;nmhGLzW8WAYR-Qa4 zmb4N;(nw1~+xN>c)57E*;0QaVE4l4@F!a$XGtN|6ltj>vUipDs$xK*A;xO$ zpDJiyz3q~UxOZ<+7rW5D>-_VmqFT&xM*z+;BX-7||Lyo#+b?5Z%I|mxa(f|&LDMr! zq@k9G*cf$BUVpOrxz}`B{!K+F%}gClKuAxzmm?74+->)j=ZBI$Po-(D+Z>k@0foWV zgm~WS_n6)N&_0E>8eR;dSD=8;=5pmqgPH=8PJrI~^z5&c75Vlsl15zYsoaniL3(OH zlfG16)Jg6{g!J!Ca*lz0=L`nA-5`4xM%o%GO!=7Z#2VJLGI|o#BcCwIP@2S<)^o&=igA?^p6BB#mG<{cwX=uKNt1Qqz5qvxeetp!ZRZlvpBP|V3H&(rn7Z(7+f z5>OM*eRor48Utlw`Q-(kow~Rk8>`+LTCDXuF)=8A$Cn`ed+99)=79(<1per7w^&z9 z`ce-in}x3f&`=dC-3tNq+I2FP>FKt$XbLv8MJr zzb0Op*w_DRRSks;5qfoa>uUz9?(u>-4I@7-`GI0Kv?7%2W!{!3B2 ztW;eswi5ujQG=l!Jyt{*|8&wmXr26QNg2s(Jw7A zJl%^D(!3qXA)Q51&!(oMfgi-N(jTi?k&%JHeMDG{viktn(z5x=6U`q3qzFzV!ug<|(5e$$FFMoxU^% z068Ls>aGxDJ0>3io_m$WI6V|qS^E(tJ*$c=^Gk=cu|#}v(1d|iR^1m~e~*^ul#Y6e zh38s}61F4tY5+*MCFVP8g{Gg~gUL|YXt4d}Xe9GThPOU27{L^7r<}kPnh=sNf7AmF z>@*P3Xe7xTdX9p}Cod9s--xSy&Hh?`^zY0bq)-T-AxYZZftZw~MmIWa6-tzVEvT{! z4YJ{0I%9_EI+yXBXNyBW7->9{C~J4gh%YdZ{l=D*$op$VnS`H$gpKrIe;#P$!!an; zC&i%mL0cN;{<^FDa|4p`(~x-x1lMLz1ZKi{aV~o8*5<7OoR$Y*Hv3l|V?Lw}YXpTB z5;RnCUDs5lTLi$A4#4~ps)B}-yDLcj;dn<8PH{g8`)Yhdd?9rSiGSRz6!hb?Pk(aD zqy9s)hz|

UXBUHU6*Rp+7y+TjM&e^Bh3dN_@10LBh?94Y;2#$JWDQI1F2lZvBN7 zbj|Y`oj)1aOd~}~!LRfbH|@a_bV(PsDc}xRzE!Mj?HH?G(UTRUQ1`ebyj&zfo4j89 znan@RRFXB+b+#Q`I}u!w}%&)N_ofxWiN`cf;NIXw2iL~Y$&bqE- zSUw`-3#X2a@Tw7n_zYq~32zD||8xg5bc4f&H=<2BRG)7LKwJcYcm6tM$6A$NQ9=H( zt=z6AqaQ-5nqa;H4I%vIB%Qb9jPU?xK!W(uOh{FnB zLdPbOD)Z1R_0+IWADt%xyYXkzV-fwa?Dh9iC!_GA{VVzZor>=QTI}ap^iWOd*R-rCQu9v?sH$&w2npLY!TB3Bl=Kcz*XuQ#`&Zm1@Ae z4_HE!3c)jg4I?3YwVj<)U(UA$>0y@IgB^{riI9j2I))QePdDN<@Flk-d-cIZy}H+P za*yxH(3m--wYUi8;jKhV(uIx)zhyJg%rnw999dbfXj?l_7j`V{*8*!AfbRh;ptd8u2Yz?gQ;H{MJ-##3+gE_@>EgSi-{lO2 zq{p#aIbOH#HmD3A&#p6E!Cf5xXtoxX0!66G6J=={s- zYXT&XO~L_h)u@&dE4V%$N=nk)1nUs;x}_yT!FJ%5KL~DbOBhPnC!9Xe(znDEeQqcP z|1(NSA-#X~WIp|`vFm<>`v2pOi;Hk)&vS?D9odC&_Bv-qh!8^7B|gsHJBq9*du5Nv zNVXIrqewQ{BlG({{(k zV!-mg?C6(r;4IONio?rU7(tcI>!xm0LEL^`rio@EhICDyC^9H3n2b+unTAkJI&sWj z^ojKpe*&zWe?BLXp}Y76z8?(KSu`;-^_ku2hdtkW;csfzE%tFGF;?JUQc9>5Q@leg z7u8CD$c=e~+-@0$ms6jYxyyR^TK?4eR(GS!=Fk4e6MeS3<7DhQ#)ee>q2U>u_7nFf)VnR5YON@PLeMWs z_;B8dO?wppNCVP|kHBu%N0}TBpp{^F_2GUgknRF+(#n3{){_x!dk7$4;9&vb09u*WNfZRht2TE?%9z# z?uEd!8Z}a+iZURxmCT@@^Va{Uc*N2&GLC|02Ex+seE;mKGD$-PH?b{2Cne`Tw$B7g z=?}n&uVOPYJ|s*_8L%^ zbvWIWZpN7Q?zG4r17h%&?weNRGq##+?>`lF@@^~Q)b)D01I*;zD%SuT6 z6XYRN%v|`RZi2OXe|FnU%ebgly&44NAbl%8bFf~c=m`HdYZyX9=*`}ynWJGV-uB|J zV^J?#Z_WY%Q;H+6I$Gr)B;DJX8=Rm~Pfz>N!pPD;oX5Q&RZ~;*zfOvuz}cu@dz%Lx zg-zo96d6h?9zgs$-6v>@bc}N;;@+Z^rMFCH$VVp;vXW<27v zH*!iG@U@Q}Xk~ipCwlG)6WySL_loeBZ{CGy@3T7>FEKfeC2RpFmF?$FBGeMZz8Tyh zP+(&Q^{APedK+@M6j$NHxg%Ix*j_eWnj>|`mq>RCs0D4f_C7do@|E>mAaR|oUB0&X zkPX(!%2+QkEAZRjtu_ADpVL}dB>Suzys;LC|#TRo}_G>)MP0~`dqJ7Tg5RuN9o1EZo7g{lLM zl#ma1N6^Wex07vpUu-GdTSzdfSM1Y>HmQ6l;+3ApSR|}CEAM2_{I+anP2bf=HmViS zA1gTM)ywF?afNOSImV*2o#QR*H zZecKYAS{oCMX?%TT0!#hjYb;0tX?SW;gR8MQqT%yV&nCIOPajwEsh1Vl^9J<$Xp$n z(%;9B<}ZUu5`uCQ2&VH=yXZas3|}lXXr5Z?{ZRNUMBSj9$oKDHhDh8m_g9$$#aT)S zQmBIhAM(u}v(fRSjPPMs>3|`M6bgycHmMg5O?cj~!6tZ}QX4lw%<)nYcWM&~`{9L@ zdUVe%<61jx&wx78Wqd9R7a_8szFy7#4jRD;UWFDrHE$shP{bDn-2Hh@H-watbxSKl z(7a2DpD7*Omf(gU;k_m2V|%AYOqlIxc>Me`Z8x?4bp8(dOdW6OdF4rCJAB;J2C?#} zzu!R~)FE;YCl_7oF7;i_ar`bs@-N11Ev_ReV|{M~A@x={L>&e<5oabCO1I-Tc71Ml zT-pHS=c~`E4Jj#dTo?-bfwPnqgu1k;5ox8<1xr5%zL#Vya&4mlM5;IYaKZS`=mBLq z(>Y$@f`yn5sf;N0sugB_&(hH|pqAiX(JCuzy10Nb2qBSu$0}kf|NN)1yX4P9<>|g! z12K5?Z_M?AqyEMpjNuP+EUC(DQH`K8iX*6J%CAleH(KpboCJ84a`}h<8wsk#$DMaS zP%%%0Hvurb6)bG(oP78tNBFsOhQu>TZrQ0ikVyafuwuCG$>WtT z1-Y%HQxask#RbrWn6}||)Canb1pklIPH9fAJTtXxbH(XR)+rc?&P3-rO1_%PNxLWC z9nVa+%D(Il8|3NOkx^zZGLgdm6T9_o{`lZ8Y@E8|EvjCA-fU?p%Brg;;$6hzG5PII z+J*ynmH(c^m954=(1CqcKD(mdsxKn<)@Mq;8SLYI2wsRG<=vHK`_J)-N}8lFNTLg3 z?-cm2nv0SW*NK+={Bl|^EHPDMKKAE*EFx(mZZ^H9?fo0vbCLIvXu9Ma;sf;7B9ztIP9FFAXveq@k#pcq4aG^x+=q}{mh!dh|yFt!8`MAK^Rnrim*0M6jR{Y`G}U14*qnuPg} zXO5bMBzAidBUy7Hs?7$Xq+WLopObg(=uw`Pg{u#ji%q4NGn;w2BvgB* zw=UQ|7gQi@sc-*#Zp9;JBvvZ$ydS`T_%)U0R=taKM`Q3N@d7!Ft7g%SW0d&)XyYu3 z&bi^d_Xg9`vVw`W&;32+{8LLvk6|WQah*DsBKKFBwLcFZ_#XtClPC>(kCMmebf|6T zLLp%UowICBXRGM$_{Kk|eIEiT1!Hh0;{GpL)7`>uWEybRjb-aj%Yj9hMO$F< zuk)<~Ue^FD{rSS5ZOAwaW`hsxhtyk&DrA!QP5i1zBbPR}bilJaOFyy2q*wfw=x0+d zdDM{b236U~c=^h@oueG=uTmD#f*m~np{N_32ldr8jMI; z56__~mm3eq#hedxx`X`vj#GT-1kLwP^pmhDO<6KVSONiF9ai<6@R%4OWvihk&!JOS z)zccAeFg1=<(Jtax!R8n&3j}Dm<%8h$TpR@Y?;Nd;7Sw7n{DE}LO861P5a$jp(C+C z_tGs~nJ|0xN*@!;V8*`8a?8-x&tK!N>-#6i+9wy)E~usKmlg2Bmiw`HEAD%Q7{As@ zb5=bPG5Frn%&sI3b*bLyV_H=3R6eF7y`wxS(qBRr0FD(v9X0jW{qp)E|DU7z@M^`A zOj&{8VUyAp5_UOdJH{h_)@LNw+r3M-^z_v(p3{rdW)_+4c?xQqDj`kwBBWa*{387Y zBOX0?A~yHu+HF4i7?U+afmb;LagNR3pE2vboNJ1Uj!6-evlS8-n}0nRmpQ-oER_4W z^TA?+6r8#%M+p%Hoo!x|YFG4Q?WOT){+dK18pZW~H45+c+kkx!mk$KfJ#D=$3P|IL z3%IY5ZL=5*;?pnhBMAgW49Y~R210ab;oEAYMpUmoRQAmPZ(I*@N(q`ST? zIhij?7Nx>^n34irDyMI$;GX~^fe3Y4^v4oA?r9R!UF$4w!Z-4OOOd$2y+=+oa!$Jx z9*ldoWR#|l_)R@+t*)X|(m*$k*@jaiK%{AKiE%UUU$$zloYO*&WY8HET*6ik3lfQ4#$+%v^`v5c_A6gQ_9NcW6iOzG@ z(B#D~*hs0CQL4Tno`iu8ia3&dn0xJzaTTF@Po*@D{mL9$^gyh_) zC}emvhObBg5jADtXCc<9iWiDH-!0VRZkf-C3~(_L@G{{?#>=C_K%eLLcX|Nf>;{Q~ z%l_^}+64GDytxdff{F{RYKP+fCvWXsA7E<6PUJ=^k zlvZ1Y(P?sOxv}S#H$>T=x?UW|&sP@ZyEsuuMP83Ai=Vl(H{>sxP8|PxxwJLfD6)5V+ zD=#mAiav4OUikmlK_$#$bZdngL;w1&4*m2q(!X_R&E;d4B z`6ZpD-|7V9#0%=|WI!_P<}TGyX~h+nv~yO;sVWvjg?Z10_a3pT+)7j~k*6P~V~u2s zRxj;opqf$+#?xaRv{Fp%Zq&7A z>q>j~_#3ShUS__P5J@lwH=s@!&N{t>x$f@(&NS9x^DU(*3qDn&hI4vP>l6J9BWMJF zOmB_O2%1mj7iPS%(tswkio)YF0D3!sRjtu+p#jCAI-_sS`*S=RuQ3f4Pd;ti?7#Vo ze8HcESXiX!T?ngtU!){2cjEx^ssgBn!kN0ct8_^;9RG%wmPivHquqBzgW04uW6*GM zJyc<#U`MbZ#}bCj^T5pSb53;`ksF%K{=~SlYle(1+_|6`3Mo#wngSS)?Hv8r`DHQo z?BFCDi}6t<$l|YL4A^+_koc|uhrqb8Y~6Lr7SVjV#RZO@v8R9He*Yc{Rq4{|p^Z;o zd9X`>$g3HaHrGX~cD&V-yAlq4Fc!qNd%oQlr5$iFQj%LGCd(o3&pmM7e>l-HBW&{E zW6}Zx{epT5`cjWBb^dB=z0_g6+5i8)K7gFw<+ZTtUl-o_L;!r$Rdkfgm8^pP2Rjqc ACIA2c literal 0 HcmV?d00001 diff --git a/docs/_templates/hacks.html b/docs/_templates/hacks.html new file mode 100644 index 0000000..c669528 --- /dev/null +++ b/docs/_templates/hacks.html @@ -0,0 +1,46 @@ + + + + + diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html new file mode 100644 index 0000000..b7e7bab --- /dev/null +++ b/docs/_templates/sidebarintro.html @@ -0,0 +1,23 @@ +

Replit-py!

+

+ A helpful Python package that helps you build excellent things inside Repls! +

+ +

+ +

Useful Links

+ +
+

+ +

diff --git a/docs/sphinx-old/conf.py b/docs/conf.py similarity index 77% rename from docs/sphinx-old/conf.py rename to docs/conf.py index a575cc3..94fa4d7 100644 --- a/docs/sphinx-old/conf.py +++ b/docs/conf.py @@ -7,7 +7,7 @@ # -- Path setup -------------------------------------------------------------- # If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the +# add these directoricdes to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os @@ -19,12 +19,12 @@ sys.path.append(os.path.abspath("../src")) # -- Project information ----------------------------------------------------- -project = "replit" -copyright = "2020, repl.it" -author = "repl.it" +project = "replit-py" +copyright = "2021" +author = "Replit" # The full version, including alpha/beta/rc tags -release = "1.3.0" +release = "3.0.0" # -- General configuration --------------------------------------------------- @@ -36,7 +36,8 @@ extensions = [ "sphinx.ext.autodoc", "sphinx.ext.napoleon", "sphinx_autodoc_typehints", - "sphinx_rtd_theme", + + ] # Add any paths that contain templates here, relative to this directory. @@ -53,12 +54,22 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "conf.py"] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "sphinx_rtd_theme" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] +html_theme_options = { + 'show_powered_by': False +} + +html_sidebars = { + 'index': ['sidebarintro.html', 'sourcelink.html', 'searchbox.html', + 'hacks.html'], + '**': ['sidebarlogo.html', 'localtoc.html', 'relations.html', + 'sourcelink.html', 'searchbox.html', 'hacks.html'] +} + # Custom css -html_css_files = ["css/darktheme.css"] +# html_css_files = ["css/darktheme.css"] diff --git a/docs/db.md b/docs/db.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/flask.md b/docs/flask.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..a1690e4 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,88 @@ +.. replit documentation master file, created by + sphinx-quickstart on Mon Jun 22 18:35:18 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Replit-py's API Guide! +================================= + +.. figure:: https://github.com/kennethreitz42/replit-py/blob/kr-cleanup/ext/readme.gif?raw=true + +This repository is the home for the ``replit`` Python package, which +provides: + +- A fully-featured database client for `Repl.it DB`_. `[docs]`_ +- A **work in progress** Repl.it user profile lookup. `[docs]`_ +- A Flask application decorator for ensuring Repl.it Auth required on + specific routes. `[docs]`_ + +& other helpful toys and utilities, like… + +- A simple audio library that can play tones and audio files! +- Some helpful functions for displaying ANSI colors within interactive + terminal sessions. + +It’s worth noting… +~~~~~~~~~~~~~~~~~~ + +The `Repl.it`_ Python environment does not require any platform-specific +code, however, these optional utilities provide additional platform +features in a simple and accessible way. + +*Example*: `Repl.it DB`_ is an HTTP service, but an optional Python +client (here!) is available. + +.. _Repl.it DB: https://docs.repl.it/misc/database +.. _[docs]: https://example.com +.. _Repl.it: https://repl.it/ + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + +Module contents +--------------- + +.. automodule:: replit + :members: + :undoc-members: + :show-inheritance: + +replit.database module +---------------------- + +.. automodule:: replit.database + :members: + :undoc-members: + :show-inheritance: + +replit.audio module +------------------- + +.. automodule:: replit.audio + :members: + :undoc-members: + :show-inheritance: + +replit.users module +------------------- + +.. automodule:: replit.users + :members: + :undoc-members: + :show-inheritance: + +replit.maqpy module +------------------- + +.. automodule:: replit.web + :members: + :undoc-members: + :show-inheritance: + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/sphinx-old/make.bat b/docs/make.bat similarity index 100% rename from docs/sphinx-old/make.bat rename to docs/make.bat diff --git a/docs/sphinx-old/_static/css/darktheme.css b/docs/sphinx-old/_static/css/darktheme.css deleted file mode 100644 index d9e0033..0000000 --- a/docs/sphinx-old/_static/css/darktheme.css +++ /dev/null @@ -1,14 +0,0 @@ -/* Body dark theme */ -body { - background: #333; - color: #fff; -} - -.wy-nav-content { - background: #444; -} - -/* Use original color inside of code blocks */ -.highlight { - color: #404040; -} diff --git a/docs/sphinx-old/index.rst b/docs/sphinx-old/index.rst deleted file mode 100644 index 7e5dc2b..0000000 --- a/docs/sphinx-old/index.rst +++ /dev/null @@ -1,50 +0,0 @@ -.. replit documentation master file, created by - sphinx-quickstart on Mon Jun 22 18:35:18 2020. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Replit Python Module Documentation -================================== - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - -Module contents ---------------- - -.. automodule:: replit - :members: - :undoc-members: - :show-inheritance: - -replit.database module ----------------------- - -.. automodule:: replit.database - :members: - :undoc-members: - :show-inheritance: - -replit.audio module -------------------- - -.. automodule:: replit.audio - :members: - :undoc-members: - :show-inheritance: - -replit.maqpy module -------------------- - -.. automodule:: replit.maqpy - :members: - :undoc-members: - :show-inheritance: - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/user.md b/docs/user.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/utilities.md b/docs/utilities.md deleted file mode 100644 index e69de29..0000000 diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..c6d2e72 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,1523 @@ +[[package]] +name = "aiohttp" +version = "3.7.3" +description = "Async http client/server framework (asyncio)" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +async-timeout = ">=3.0,<4.0" +attrs = ">=17.3.0" +chardet = ">=2.0,<4.0" +multidict = ">=4.5,<7.0" +typing-extensions = ">=3.6.5" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["aiodns", "brotlipy", "cchardet"] + +[[package]] +name = "alabaster" +version = "0.7.12" +description = "A configurable sidebar-enabled Sphinx theme" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "async-timeout" +version = "3.0.1" +description = "Timeout context manager for asyncio programs" +category = "main" +optional = false +python-versions = ">=3.5.3" + +[[package]] +name = "attrs" +version = "20.3.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] +docs = ["furo", "sphinx", "zope.interface"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] + +[[package]] +name = "babel" +version = "2.9.0" +description = "Internationalization utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pytz = ">=2015.7" + +[[package]] +name = "bandit" +version = "1.7.0" +description = "Security oriented static analyser for python code." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +colorama = {version = ">=0.3.9", markers = "platform_system == \"Windows\""} +GitPython = ">=1.0.1" +PyYAML = ">=5.3.1" +six = ">=1.10.0" +stevedore = ">=1.20.0" + +[[package]] +name = "beautifulsoup4" +version = "4.9.3" +description = "Screen-scraping library" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +soupsieve = {version = ">1.2", markers = "python_version >= \"3.0\""} + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "19.10b0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +appdirs = "*" +attrs = ">=18.1.0" +click = ">=6.5" +pathspec = ">=0.6,<1" +regex = "*" +toml = ">=0.9.4" +typed-ast = ">=1.4.0" + +[package.extras] +d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] + +[[package]] +name = "bs4" +version = "0.0.1" +description = "Dummy package for Beautiful Soup" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +beautifulsoup4 = "*" + +[[package]] +name = "chardet" +version = "3.0.4" +description = "Universal encoding detector for Python 2 and 3" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "click" +version = "7.1.2" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "coverage" +version = "5.3.1" +description = "Code coverage measurement for Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +toml = ["toml"] + +[[package]] +name = "cssselect" +version = "1.1.0" +description = "cssselect parses CSS3 Selectors and translates them to XPath 1.0" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "darglint" +version = "1.5.8" +description = "A utility for ensuring Google-style docstrings stay up to date with the source code." +category = "dev" +optional = false +python-versions = ">=3.6,<4.0" + +[[package]] +name = "docutils" +version = "0.16" +description = "Docutils -- Python Documentation Utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "fake-useragent" +version = "0.1.11" +description = "Up to date simple useragent faker with real world database" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "flake8" +version = "3.8.4" +description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +mccabe = ">=0.6.0,<0.7.0" +pycodestyle = ">=2.6.0a1,<2.7.0" +pyflakes = ">=2.2.0,<2.3.0" + +[[package]] +name = "flake8-annotations" +version = "2.5.0" +description = "Flake8 Type Annotation Checks" +category = "dev" +optional = false +python-versions = ">=3.6.1,<4.0.0" + +[package.dependencies] +flake8 = ">=3.7,<3.9" + +[[package]] +name = "flake8-bandit" +version = "2.1.2" +description = "Automated security testing with bandit and flake8." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +bandit = "*" +flake8 = "*" +flake8-polyfill = "*" +pycodestyle = "*" + +[[package]] +name = "flake8-black" +version = "0.2.1" +description = "flake8 plugin to call black as a code style validator" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +black = "*" +flake8 = ">=3.0.0" + +[[package]] +name = "flake8-bugbear" +version = "20.11.1" +description = "A plugin for flake8 finding likely bugs and design problems in your program. Contains warnings that don't belong in pyflakes and pycodestyle." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +attrs = ">=19.2.0" +flake8 = ">=3.0.0" + +[package.extras] +dev = ["coverage", "black", "hypothesis", "hypothesmith"] + +[[package]] +name = "flake8-docstrings" +version = "1.5.0" +description = "Extension for flake8 which uses pydocstyle to check docstrings" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +flake8 = ">=3" +pydocstyle = ">=2.1" + +[[package]] +name = "flake8-import-order" +version = "0.18.1" +description = "Flake8 and pylama plugin that checks the ordering of import statements." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pycodestyle = "*" + +[[package]] +name = "flake8-polyfill" +version = "1.0.2" +description = "Polyfill package for Flake8 plugins" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +flake8 = "*" + +[[package]] +name = "flask" +version = "1.1.2" +description = "A simple framework for building complex web applications." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +click = ">=5.1" +itsdangerous = ">=0.24" +Jinja2 = ">=2.10.1" +Werkzeug = ">=0.15" + +[package.extras] +dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] +docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] +dotenv = ["python-dotenv"] + +[[package]] +name = "gitdb" +version = "4.0.5" +description = "Git Object Database" +category = "dev" +optional = false +python-versions = ">=3.4" + +[package.dependencies] +smmap = ">=3.0.1,<4" + +[[package]] +name = "gitpython" +version = "3.1.12" +description = "Python Git Library" +category = "dev" +optional = false +python-versions = ">=3.4" + +[package.dependencies] +gitdb = ">=4.0.1,<5" + +[[package]] +name = "idna" +version = "3.1" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=3.4" + +[[package]] +name = "imagesize" +version = "1.2.0" +description = "Getting image size from png/jpeg/jpeg2000/gif file" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "itsdangerous" +version = "1.1.0" +description = "Various helpers to pass data to untrusted environments and back." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "jinja2" +version = "2.11.2" +description = "A very fast and expressive template engine." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +MarkupSafe = ">=0.23" + +[package.extras] +i18n = ["Babel (>=0.8)"] + +[[package]] +name = "lxml" +version = "4.6.2" +description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" + +[package.extras] +cssselect = ["cssselect (>=0.7)"] +html5 = ["html5lib"] +htmlsoup = ["beautifulsoup4"] +source = ["Cython (>=0.29.7)"] + +[[package]] +name = "markupsafe" +version = "1.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "main" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" + +[[package]] +name = "mccabe" +version = "0.6.1" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "multidict" +version = "5.1.0" +description = "multidict implementation" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mypy" +version = "0.782" +description = "Optional static typing for Python" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +mypy-extensions = ">=0.4.3,<0.5.0" +typed-ast = ">=1.4.0,<1.5.0" +typing-extensions = ">=3.7.4" + +[package.extras] +dmypy = ["psutil (>=4.0)"] + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "packaging" +version = "20.8" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pyparsing = ">=2.0.2" + +[[package]] +name = "parse" +version = "1.19.0" +description = "parse() is the opposite of format()" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pathspec" +version = "0.8.1" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pbr" +version = "5.5.1" +description = "Python Build Reasonableness" +category = "dev" +optional = false +python-versions = ">=2.6" + +[[package]] +name = "pycodestyle" +version = "2.6.0" +description = "Python style guide checker" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pydocstyle" +version = "5.1.1" +description = "Python docstring style checker" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +snowballstemmer = "*" + +[[package]] +name = "pyee" +version = "8.1.0" +description = "A port of node.js's EventEmitter to python." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyflakes" +version = "2.2.0" +description = "passive checker of Python programs" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pygments" +version = "2.7.4" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "pyppeteer" +version = "0.2.5" +description = "Headless chrome/chromium automation library (unofficial port of puppeteer)" +category = "main" +optional = false +python-versions = ">=3.6.1,<4.0.0" + +[package.dependencies] +appdirs = ">=1.4.3,<2.0.0" +pyee = ">=8.1.0,<9.0.0" +tqdm = ">=4.42.1,<5.0.0" +urllib3 = ">=1.25.8,<2.0.0" +websockets = ">=8.1,<9.0" + +[[package]] +name = "pyquery" +version = "1.4.3" +description = "A jquery-like library for python" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +cssselect = ">0.7.9" +lxml = ">=2.1" + +[[package]] +name = "pytz" +version = "2020.5" +description = "World timezone definitions, modern and historical" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pyyaml" +version = "5.4" +description = "YAML parser and emitter for Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" + +[[package]] +name = "regex" +version = "2020.11.13" +description = "Alternative regular expression module, to replace re." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "requests" +version = "2.15.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = "*" + +[package.extras] +security = ["cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] + +[[package]] +name = "requests-html" +version = "0.10.0" +description = "HTML Parsing for Humans." +category = "main" +optional = false +python-versions = ">=3.6.0" + +[package.dependencies] +bs4 = "*" +fake-useragent = "*" +parse = "*" +pyppeteer = ">=0.0.14" +pyquery = "*" +requests = "*" +w3lib = "*" + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "smmap" +version = "3.0.4" +description = "A pure Python implementation of a sliding window memory map manager" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "snowballstemmer" +version = "2.0.0" +description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "soupsieve" +version = "2.1" +description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "sphinx" +version = "3.4.3" +description = "Python documentation generator" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +alabaster = ">=0.7,<0.8" +babel = ">=1.3" +colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""} +docutils = ">=0.12" +imagesize = "*" +Jinja2 = ">=2.3" +packaging = "*" +Pygments = ">=2.0" +requests = ">=2.5.0" +snowballstemmer = ">=1.1" +sphinxcontrib-applehelp = "*" +sphinxcontrib-devhelp = "*" +sphinxcontrib-htmlhelp = "*" +sphinxcontrib-jsmath = "*" +sphinxcontrib-qthelp = "*" +sphinxcontrib-serializinghtml = "*" + +[package.extras] +docs = ["sphinxcontrib-websupport"] +lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.790)", "docutils-stubs"] +test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "1.11.1" +description = "Type hints (PEP 484) support for the Sphinx autodoc extension" +category = "dev" +optional = false +python-versions = ">=3.5.2" + +[package.dependencies] +Sphinx = ">=3.0" + +[package.extras] +test = ["pytest (>=3.1.0)", "typing-extensions (>=3.5)", "sphobjinv (>=2.0)", "Sphinx (>=3.2.0)", "dataclasses"] +type_comments = ["typed-ast (>=1.4.0)"] + +[[package]] +name = "sphinx-rtd-theme" +version = "0.5.1" +description = "Read the Docs theme for Sphinx" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +sphinx = "*" + +[package.extras] +dev = ["transifex-client", "sphinxcontrib-httpdomain", "bump2version"] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "1.0.2" +description = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "1.0.2" +description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "1.0.3" +description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +description = "A sphinx extension which renders display math in HTML via JavaScript" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +test = ["pytest", "flake8", "mypy"] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "1.0.3" +description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "1.1.4" +description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest"] + +[[package]] +name = "stevedore" +version = "3.3.0" +description = "Manage dynamic plugins for Python applications" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +pbr = ">=2.0.0,<2.1.0 || >2.1.0" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tqdm" +version = "4.56.0" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +telegram = ["requests"] + +[[package]] +name = "typed-ast" +version = "1.4.2" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "typing-extensions" +version = "3.7.4.3" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "urllib3" +version = "1.26.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +brotli = ["brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "w3lib" +version = "1.22.0" +description = "Library of web-related functions" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = ">=1.4.1" + +[[package]] +name = "websockets" +version = "8.1" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" +optional = false +python-versions = ">=3.6.1" + +[[package]] +name = "werkzeug" +version = "1.0.1" +description = "The comprehensive WSGI web application library." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +dev = ["pytest", "pytest-timeout", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinx-issues"] +watchdog = ["watchdog"] + +[[package]] +name = "yarl" +version = "1.6.3" +description = "Yet another URL library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[metadata] +lock-version = "1.1" +python-versions = "^3.8" +content-hash = "c0418f83b4667563684b1c4a2bcb47972d39d1d3b9ed4be8e86235eb7954e66d" + +[metadata.files] +aiohttp = [ + {file = "aiohttp-3.7.3-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:328b552513d4f95b0a2eea4c8573e112866107227661834652a8984766aa7656"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c733ef3bdcfe52a1a75564389bad4064352274036e7e234730526d155f04d914"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:2858b2504c8697beb9357be01dc47ef86438cc1cb36ecb6991796d19475faa3e"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:d2cfac21e31e841d60dc28c0ec7d4ec47a35c608cb8906435d47ef83ffb22150"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:3228b7a51e3ed533f5472f54f70fd0b0a64c48dc1649a0f0e809bec312934d7a"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:dcc119db14757b0c7bce64042158307b9b1c76471e655751a61b57f5a0e4d78e"}, + {file = "aiohttp-3.7.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:7d9b42127a6c0bdcc25c3dcf252bb3ddc70454fac593b1b6933ae091396deb13"}, + {file = "aiohttp-3.7.3-cp36-cp36m-win32.whl", hash = "sha256:df48a623c58180874d7407b4d9ec06a19b84ed47f60a3884345b1a5099c1818b"}, + {file = "aiohttp-3.7.3-cp36-cp36m-win_amd64.whl", hash = "sha256:0b795072bb1bf87b8620120a6373a3c61bfcb8da7e5c2377f4bb23ff4f0b62c9"}, + {file = "aiohttp-3.7.3-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:0d438c8ca703b1b714e82ed5b7a4412c82577040dadff479c08405e2a715564f"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:8389d6044ee4e2037dca83e3f6994738550f6ee8cfb746762283fad9b932868f"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3ea8c252d8df5e9166bcf3d9edced2af132f4ead8ac422eac723c5781063709a"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:78e2f18a82b88cbc37d22365cf8d2b879a492faedb3f2975adb4ed8dfe994d3a"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:df3a7b258cc230a65245167a202dd07320a5af05f3d41da1488ba0fa05bc9347"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:f326b3c1bbfda5b9308252ee0dcb30b612ee92b0e105d4abec70335fab5b1245"}, + {file = "aiohttp-3.7.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:5e479df4b2d0f8f02133b7e4430098699450e1b2a826438af6bec9a400530957"}, + {file = "aiohttp-3.7.3-cp37-cp37m-win32.whl", hash = "sha256:6d42debaf55450643146fabe4b6817bb2a55b23698b0434107e892a43117285e"}, + {file = "aiohttp-3.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c9c58b0b84055d8bc27b7df5a9d141df4ee6ff59821f922dd73155861282f6a3"}, + {file = "aiohttp-3.7.3-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:f411cb22115cb15452d099fec0ee636b06cf81bfb40ed9c02d30c8dc2bc2e3d1"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c1e0920909d916d3375c7a1fdb0b1c78e46170e8bb42792312b6eb6676b2f87f"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:59d11674964b74a81b149d4ceaff2b674b3b0e4d0f10f0be1533e49c4a28408b"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:41608c0acbe0899c852281978492f9ce2c6fbfaf60aff0cefc54a7c4516b822c"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:16a3cb5df5c56f696234ea9e65e227d1ebe9c18aa774d36ff42f532139066a5f"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:6ccc43d68b81c424e46192a778f97da94ee0630337c9bbe5b2ecc9b0c1c59001"}, + {file = "aiohttp-3.7.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:d03abec50df423b026a5aa09656bd9d37f1e6a49271f123f31f9b8aed5dc3ea3"}, + {file = "aiohttp-3.7.3-cp38-cp38-win32.whl", hash = "sha256:39f4b0a6ae22a1c567cb0630c30dd082481f95c13ca528dc501a7766b9c718c0"}, + {file = "aiohttp-3.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:c68fdf21c6f3573ae19c7ee65f9ff185649a060c9a06535e9c3a0ee0bbac9235"}, + {file = "aiohttp-3.7.3-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:710376bf67d8ff4500a31d0c207b8941ff4fba5de6890a701d71680474fe2a60"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2406dc1dda01c7f6060ab586e4601f18affb7a6b965c50a8c90ff07569cf782a"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:2a7b7640167ab536c3cb90cfc3977c7094f1c5890d7eeede8b273c175c3910fd"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:684850fb1e3e55c9220aad007f8386d8e3e477c4ec9211ae54d968ecdca8c6f9"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:1edfd82a98c5161497bbb111b2b70c0813102ad7e0aa81cbeb34e64c93863005"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:77149002d9386fae303a4a162e6bce75cc2161347ad2ba06c2f0182561875d45"}, + {file = "aiohttp-3.7.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:756ae7efddd68d4ea7d89c636b703e14a0c686688d42f588b90778a3c2fc0564"}, + {file = "aiohttp-3.7.3-cp39-cp39-win32.whl", hash = "sha256:3b0036c978cbcc4a4512278e98e3e6d9e6b834dc973206162eddf98b586ef1c6"}, + {file = "aiohttp-3.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:e1b95972a0ae3f248a899cdbac92ba2e01d731225f566569311043ce2226f5e7"}, + {file = "aiohttp-3.7.3.tar.gz", hash = "sha256:9c1a81af067e72261c9cbe33ea792893e83bc6aa987bfbd6fdc1e5e7b22777c4"}, +] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] +async-timeout = [ + {file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"}, + {file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"}, +] +attrs = [ + {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, + {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, +] +babel = [ + {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"}, + {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"}, +] +bandit = [ + {file = "bandit-1.7.0-py3-none-any.whl", hash = "sha256:216be4d044209fa06cf2a3e51b319769a51be8318140659719aa7a115c35ed07"}, + {file = "bandit-1.7.0.tar.gz", hash = "sha256:8a4c7415254d75df8ff3c3b15cfe9042ecee628a1e40b44c15a98890fbfc2608"}, +] +beautifulsoup4 = [ + {file = "beautifulsoup4-4.9.3-py2-none-any.whl", hash = "sha256:4c98143716ef1cb40bf7f39a8e3eec8f8b009509e74904ba3a7b315431577e35"}, + {file = "beautifulsoup4-4.9.3-py3-none-any.whl", hash = "sha256:fff47e031e34ec82bf17e00da8f592fe7de69aeea38be00523c04623c04fb666"}, + {file = "beautifulsoup4-4.9.3.tar.gz", hash = "sha256:84729e322ad1d5b4d25f805bfa05b902dd96450f43842c4e99067d5e1369eb25"}, +] +black = [ + {file = "black-19.10b0-py36-none-any.whl", hash = "sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b"}, + {file = "black-19.10b0.tar.gz", hash = "sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"}, +] +bs4 = [ + {file = "bs4-0.0.1.tar.gz", hash = "sha256:36ecea1fd7cc5c0c6e4a1ff075df26d50da647b75376626cc186e2212886dd3a"}, +] +chardet = [ + {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, + {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, +] +click = [ + {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, + {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, +] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +coverage = [ + {file = "coverage-5.3.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:fabeeb121735d47d8eab8671b6b031ce08514c86b7ad8f7d5490a7b6dcd6267d"}, + {file = "coverage-5.3.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:7e4d159021c2029b958b2363abec4a11db0ce8cd43abb0d9ce44284cb97217e7"}, + {file = "coverage-5.3.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:378ac77af41350a8c6b8801a66021b52da8a05fd77e578b7380e876c0ce4f528"}, + {file = "coverage-5.3.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e448f56cfeae7b1b3b5bcd99bb377cde7c4eb1970a525c770720a352bc4c8044"}, + {file = "coverage-5.3.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:cc44e3545d908ecf3e5773266c487ad1877be718d9dc65fc7eb6e7d14960985b"}, + {file = "coverage-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:08b3ba72bd981531fd557f67beee376d6700fba183b167857038997ba30dd297"}, + {file = "coverage-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:8dacc4073c359f40fcf73aede8428c35f84639baad7e1b46fce5ab7a8a7be4bb"}, + {file = "coverage-5.3.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ee2f1d1c223c3d2c24e3afbb2dd38be3f03b1a8d6a83ee3d9eb8c36a52bee899"}, + {file = "coverage-5.3.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:9a9d4ff06804920388aab69c5ea8a77525cf165356db70131616acd269e19b36"}, + {file = "coverage-5.3.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:782a5c7df9f91979a7a21792e09b34a658058896628217ae6362088b123c8500"}, + {file = "coverage-5.3.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:fda29412a66099af6d6de0baa6bd7c52674de177ec2ad2630ca264142d69c6c7"}, + {file = "coverage-5.3.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:f2c6888eada180814b8583c3e793f3f343a692fc802546eed45f40a001b1169f"}, + {file = "coverage-5.3.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8f33d1156241c43755137288dea619105477961cfa7e47f48dbf96bc2c30720b"}, + {file = "coverage-5.3.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b239711e774c8eb910e9b1ac719f02f5ae4bf35fa0420f438cdc3a7e4e7dd6ec"}, + {file = "coverage-5.3.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:f54de00baf200b4539a5a092a759f000b5f45fd226d6d25a76b0dff71177a714"}, + {file = "coverage-5.3.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:be0416074d7f253865bb67630cf7210cbc14eb05f4099cc0f82430135aaa7a3b"}, + {file = "coverage-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:c46643970dff9f5c976c6512fd35768c4a3819f01f61169d8cdac3f9290903b7"}, + {file = "coverage-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9a4f66259bdd6964d8cf26142733c81fb562252db74ea367d9beb4f815478e72"}, + {file = "coverage-5.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c6e5174f8ca585755988bc278c8bb5d02d9dc2e971591ef4a1baabdf2d99589b"}, + {file = "coverage-5.3.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:3911c2ef96e5ddc748a3c8b4702c61986628bb719b8378bf1e4a6184bbd48fe4"}, + {file = "coverage-5.3.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c5ec71fd4a43b6d84ddb88c1df94572479d9a26ef3f150cef3dacefecf888105"}, + {file = "coverage-5.3.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f51dbba78d68a44e99d484ca8c8f604f17e957c1ca09c3ebc2c7e3bbd9ba0448"}, + {file = "coverage-5.3.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a2070c5affdb3a5e751f24208c5c4f3d5f008fa04d28731416e023c93b275277"}, + {file = "coverage-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:535dc1e6e68fad5355f9984d5637c33badbdc987b0c0d303ee95a6c979c9516f"}, + {file = "coverage-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:a4857f7e2bc6921dbd487c5c88b84f5633de3e7d416c4dc0bb70256775551a6c"}, + {file = "coverage-5.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fac3c432851038b3e6afe086f777732bcf7f6ebbfd90951fa04ee53db6d0bcdd"}, + {file = "coverage-5.3.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cd556c79ad665faeae28020a0ab3bda6cd47d94bec48e36970719b0b86e4dcf4"}, + {file = "coverage-5.3.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a66ca3bdf21c653e47f726ca57f46ba7fc1f260ad99ba783acc3e58e3ebdb9ff"}, + {file = "coverage-5.3.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:ab110c48bc3d97b4d19af41865e14531f300b482da21783fdaacd159251890e8"}, + {file = "coverage-5.3.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e52d3d95df81c8f6b2a1685aabffadf2d2d9ad97203a40f8d61e51b70f191e4e"}, + {file = "coverage-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:fa10fee7e32213f5c7b0d6428ea92e3a3fdd6d725590238a3f92c0de1c78b9d2"}, + {file = "coverage-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ce6f3a147b4b1a8b09aae48517ae91139b1b010c5f36423fa2b866a8b23df879"}, + {file = "coverage-5.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:93a280c9eb736a0dcca19296f3c30c720cb41a71b1f9e617f341f0a8e791a69b"}, + {file = "coverage-5.3.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:3102bb2c206700a7d28181dbe04d66b30780cde1d1c02c5f3c165cf3d2489497"}, + {file = "coverage-5.3.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8ffd4b204d7de77b5dd558cdff986a8274796a1e57813ed005b33fd97e29f059"}, + {file = "coverage-5.3.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:a607ae05b6c96057ba86c811d9c43423f35e03874ffb03fbdcd45e0637e8b631"}, + {file = "coverage-5.3.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:3a3c3f8863255f3c31db3889f8055989527173ef6192a283eb6f4db3c579d830"}, + {file = "coverage-5.3.1-cp38-cp38-win32.whl", hash = "sha256:ff1330e8bc996570221b450e2d539134baa9465f5cb98aff0e0f73f34172e0ae"}, + {file = "coverage-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:3498b27d8236057def41de3585f317abae235dd3a11d33e01736ffedb2ef8606"}, + {file = "coverage-5.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ceb499d2b3d1d7b7ba23abe8bf26df5f06ba8c71127f188333dddcf356b4b63f"}, + {file = "coverage-5.3.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:3b14b1da110ea50c8bcbadc3b82c3933974dbeea1832e814aab93ca1163cd4c1"}, + {file = "coverage-5.3.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:76b2775dda7e78680d688daabcb485dc87cf5e3184a0b3e012e1d40e38527cc8"}, + {file = "coverage-5.3.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:cef06fb382557f66d81d804230c11ab292d94b840b3cb7bf4450778377b592f4"}, + {file = "coverage-5.3.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f61319e33222591f885c598e3e24f6a4be3533c1d70c19e0dc59e83a71ce27d"}, + {file = "coverage-5.3.1-cp39-cp39-win32.whl", hash = "sha256:cc6f8246e74dd210d7e2b56c76ceaba1cc52b025cd75dbe96eb48791e0250e98"}, + {file = "coverage-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:2757fa64e11ec12220968f65d086b7a29b6583d16e9a544c889b22ba98555ef1"}, + {file = "coverage-5.3.1-pp36-none-any.whl", hash = "sha256:723d22d324e7997a651478e9c5a3120a0ecbc9a7e94071f7e1954562a8806cf3"}, + {file = "coverage-5.3.1-pp37-none-any.whl", hash = "sha256:c89b558f8a9a5a6f2cfc923c304d49f0ce629c3bd85cb442ca258ec20366394c"}, + {file = "coverage-5.3.1.tar.gz", hash = "sha256:38f16b1317b8dd82df67ed5daa5f5e7c959e46579840d77a67a4ceb9cef0a50b"}, +] +cssselect = [ + {file = "cssselect-1.1.0-py2.py3-none-any.whl", hash = "sha256:f612ee47b749c877ebae5bb77035d8f4202c6ad0f0fc1271b3c18ad6c4468ecf"}, + {file = "cssselect-1.1.0.tar.gz", hash = "sha256:f95f8dedd925fd8f54edb3d2dfb44c190d9d18512377d3c1e2388d16126879bc"}, +] +darglint = [ + {file = "darglint-1.5.8-py3-none-any.whl", hash = "sha256:2e1012945a09d19a15cc87f9d15e7b14c18473ec9cf7769c641951b348de1353"}, + {file = "darglint-1.5.8.tar.gz", hash = "sha256:529f4969029d5ff5f74bfec48adc14b6f003409141f722b6cc4b787dddc8a4dd"}, +] +docutils = [ + {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"}, + {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"}, +] +fake-useragent = [ + {file = "fake-useragent-0.1.11.tar.gz", hash = "sha256:c104998b750eb097eefc28ae28e92d66397598d2cf41a31aa45d5559ef1adf35"}, +] +flake8 = [ + {file = "flake8-3.8.4-py2.py3-none-any.whl", hash = "sha256:749dbbd6bfd0cf1318af27bf97a14e28e5ff548ef8e5b1566ccfb25a11e7c839"}, + {file = "flake8-3.8.4.tar.gz", hash = "sha256:aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b"}, +] +flake8-annotations = [ + {file = "flake8-annotations-2.5.0.tar.gz", hash = "sha256:e17947a48a5b9f632fe0c72682fc797c385e451048e7dfb20139f448a074cb3e"}, + {file = "flake8_annotations-2.5.0-py3-none-any.whl", hash = "sha256:3a377140556aecf11fa9f3bb18c10db01f5ea56dc79a730e2ec9b4f1f49e2055"}, +] +flake8-bandit = [ + {file = "flake8_bandit-2.1.2.tar.gz", hash = "sha256:687fc8da2e4a239b206af2e54a90093572a60d0954f3054e23690739b0b0de3b"}, +] +flake8-black = [ + {file = "flake8-black-0.2.1.tar.gz", hash = "sha256:f26651bc10db786c03f4093414f7c9ea982ed8a244cec323c984feeffdf4c118"}, +] +flake8-bugbear = [ + {file = "flake8-bugbear-20.11.1.tar.gz", hash = "sha256:528020129fea2dea33a466b9d64ab650aa3e5f9ffc788b70ea4bc6cf18283538"}, + {file = "flake8_bugbear-20.11.1-py36.py37.py38-none-any.whl", hash = "sha256:f35b8135ece7a014bc0aee5b5d485334ac30a6da48494998cc1fabf7ec70d703"}, +] +flake8-docstrings = [ + {file = "flake8-docstrings-1.5.0.tar.gz", hash = "sha256:3d5a31c7ec6b7367ea6506a87ec293b94a0a46c0bce2bb4975b7f1d09b6f3717"}, + {file = "flake8_docstrings-1.5.0-py2.py3-none-any.whl", hash = "sha256:a256ba91bc52307bef1de59e2a009c3cf61c3d0952dbe035d6ff7208940c2edc"}, +] +flake8-import-order = [ + {file = "flake8-import-order-0.18.1.tar.gz", hash = "sha256:a28dc39545ea4606c1ac3c24e9d05c849c6e5444a50fb7e9cdd430fc94de6e92"}, + {file = "flake8_import_order-0.18.1-py2.py3-none-any.whl", hash = "sha256:90a80e46886259b9c396b578d75c749801a41ee969a235e163cfe1be7afd2543"}, +] +flake8-polyfill = [ + {file = "flake8-polyfill-1.0.2.tar.gz", hash = "sha256:e44b087597f6da52ec6393a709e7108b2905317d0c0b744cdca6208e670d8eda"}, + {file = "flake8_polyfill-1.0.2-py2.py3-none-any.whl", hash = "sha256:12be6a34ee3ab795b19ca73505e7b55826d5f6ad7230d31b18e106400169b9e9"}, +] +flask = [ + {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, + {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, +] +gitdb = [ + {file = "gitdb-4.0.5-py3-none-any.whl", hash = "sha256:91f36bfb1ab7949b3b40e23736db18231bf7593edada2ba5c3a174a7b23657ac"}, + {file = "gitdb-4.0.5.tar.gz", hash = "sha256:c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"}, +] +gitpython = [ + {file = "GitPython-3.1.12-py3-none-any.whl", hash = "sha256:867ec3dfb126aac0f8296b19fb63b8c4a399f32b4b6fafe84c4b10af5fa9f7b5"}, + {file = "GitPython-3.1.12.tar.gz", hash = "sha256:42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac"}, +] +idna = [ + {file = "idna-3.1-py3-none-any.whl", hash = "sha256:5205d03e7bcbb919cc9c19885f9920d622ca52448306f2377daede5cf3faac16"}, + {file = "idna-3.1.tar.gz", hash = "sha256:c5b02147e01ea9920e6b0a3f1f7bb833612d507592c837a6c49552768f4054e1"}, +] +imagesize = [ + {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"}, + {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"}, +] +itsdangerous = [ + {file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"}, + {file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"}, +] +jinja2 = [ + {file = "Jinja2-2.11.2-py2.py3-none-any.whl", hash = "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035"}, + {file = "Jinja2-2.11.2.tar.gz", hash = "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0"}, +] +lxml = [ + {file = "lxml-4.6.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a9d6bc8642e2c67db33f1247a77c53476f3a166e09067c0474facb045756087f"}, + {file = "lxml-4.6.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:791394449e98243839fa822a637177dd42a95f4883ad3dec2a0ce6ac99fb0a9d"}, + {file = "lxml-4.6.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:68a5d77e440df94011214b7db907ec8f19e439507a70c958f750c18d88f995d2"}, + {file = "lxml-4.6.2-cp27-cp27m-win32.whl", hash = "sha256:fc37870d6716b137e80d19241d0e2cff7a7643b925dfa49b4c8ebd1295eb506e"}, + {file = "lxml-4.6.2-cp27-cp27m-win_amd64.whl", hash = "sha256:69a63f83e88138ab7642d8f61418cf3180a4d8cd13995df87725cb8b893e950e"}, + {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:42ebca24ba2a21065fb546f3e6bd0c58c3fe9ac298f3a320147029a4850f51a2"}, + {file = "lxml-4.6.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:f83d281bb2a6217cd806f4cf0ddded436790e66f393e124dfe9731f6b3fb9afe"}, + {file = "lxml-4.6.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:535f067002b0fd1a4e5296a8f1bf88193080ff992a195e66964ef2a6cfec5388"}, + {file = "lxml-4.6.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:366cb750140f221523fa062d641393092813b81e15d0e25d9f7c6025f910ee80"}, + {file = "lxml-4.6.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:97db258793d193c7b62d4e2586c6ed98d51086e93f9a3af2b2034af01450a74b"}, + {file = "lxml-4.6.2-cp35-cp35m-win32.whl", hash = "sha256:648914abafe67f11be7d93c1a546068f8eff3c5fa938e1f94509e4a5d682b2d8"}, + {file = "lxml-4.6.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4e751e77006da34643ab782e4a5cc21ea7b755551db202bc4d3a423b307db780"}, + {file = "lxml-4.6.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:681d75e1a38a69f1e64ab82fe4b1ed3fd758717bed735fb9aeaa124143f051af"}, + {file = "lxml-4.6.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:127f76864468d6630e1b453d3ffbbd04b024c674f55cf0a30dc2595137892d37"}, + {file = "lxml-4.6.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4fb85c447e288df535b17ebdebf0ec1cf3a3f1a8eba7e79169f4f37af43c6b98"}, + {file = "lxml-4.6.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5be4a2e212bb6aa045e37f7d48e3e1e4b6fd259882ed5a00786f82e8c37ce77d"}, + {file = "lxml-4.6.2-cp36-cp36m-win32.whl", hash = "sha256:8c88b599e226994ad4db29d93bc149aa1aff3dc3a4355dd5757569ba78632bdf"}, + {file = "lxml-4.6.2-cp36-cp36m-win_amd64.whl", hash = "sha256:6e4183800f16f3679076dfa8abf2db3083919d7e30764a069fb66b2b9eff9939"}, + {file = "lxml-4.6.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d8d3d4713f0c28bdc6c806a278d998546e8efc3498949e3ace6e117462ac0a5e"}, + {file = "lxml-4.6.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:8246f30ca34dc712ab07e51dc34fea883c00b7ccb0e614651e49da2c49a30711"}, + {file = "lxml-4.6.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:923963e989ffbceaa210ac37afc9b906acebe945d2723e9679b643513837b089"}, + {file = "lxml-4.6.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:1471cee35eba321827d7d53d104e7b8c593ea3ad376aa2df89533ce8e1b24a01"}, + {file = "lxml-4.6.2-cp37-cp37m-win32.whl", hash = "sha256:2363c35637d2d9d6f26f60a208819e7eafc4305ce39dc1d5005eccc4593331c2"}, + {file = "lxml-4.6.2-cp37-cp37m-win_amd64.whl", hash = "sha256:f4822c0660c3754f1a41a655e37cb4dbbc9be3d35b125a37fab6f82d47674ebc"}, + {file = "lxml-4.6.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0448576c148c129594d890265b1a83b9cd76fd1f0a6a04620753d9a6bcfd0a4d"}, + {file = "lxml-4.6.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:60a20bfc3bd234d54d49c388950195d23a5583d4108e1a1d47c9eef8d8c042b3"}, + {file = "lxml-4.6.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2e5cc908fe43fe1aa299e58046ad66981131a66aea3129aac7770c37f590a644"}, + {file = "lxml-4.6.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:50c348995b47b5a4e330362cf39fc503b4a43b14a91c34c83b955e1805c8e308"}, + {file = "lxml-4.6.2-cp38-cp38-win32.whl", hash = "sha256:94d55bd03d8671686e3f012577d9caa5421a07286dd351dfef64791cf7c6c505"}, + {file = "lxml-4.6.2-cp38-cp38-win_amd64.whl", hash = "sha256:7a7669ff50f41225ca5d6ee0a1ec8413f3a0d8aa2b109f86d540887b7ec0d72a"}, + {file = "lxml-4.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e0bfe9bb028974a481410432dbe1b182e8191d5d40382e5b8ff39cdd2e5c5931"}, + {file = "lxml-4.6.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:6fd8d5903c2e53f49e99359b063df27fdf7acb89a52b6a12494208bf61345a03"}, + {file = "lxml-4.6.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7e9eac1e526386df7c70ef253b792a0a12dd86d833b1d329e038c7a235dfceb5"}, + {file = "lxml-4.6.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:7ee8af0b9f7de635c61cdd5b8534b76c52cd03536f29f51151b377f76e214a1a"}, + {file = "lxml-4.6.2-cp39-cp39-win32.whl", hash = "sha256:2e6fd1b8acd005bd71e6c94f30c055594bbd0aa02ef51a22bbfa961ab63b2d75"}, + {file = "lxml-4.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:535332fe9d00c3cd455bd3dd7d4bacab86e2d564bdf7606079160fa6251caacf"}, + {file = "lxml-4.6.2.tar.gz", hash = "sha256:cd11c7e8d21af997ee8079037fff88f16fda188a9776eb4b81c7e4c9c0a7d7fc"}, +] +markupsafe = [ + {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"}, + {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"}, + {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"}, + {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"}, + {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"}, + {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"}, + {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"}, + {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"}, + {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +multidict = [ + {file = "multidict-5.1.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da"}, + {file = "multidict-5.1.0-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224"}, + {file = "multidict-5.1.0-cp36-cp36m-win32.whl", hash = "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26"}, + {file = "multidict-5.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6"}, + {file = "multidict-5.1.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9"}, + {file = "multidict-5.1.0-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37"}, + {file = "multidict-5.1.0-cp37-cp37m-win32.whl", hash = "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5"}, + {file = "multidict-5.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632"}, + {file = "multidict-5.1.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a"}, + {file = "multidict-5.1.0-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea"}, + {file = "multidict-5.1.0-cp38-cp38-win32.whl", hash = "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656"}, + {file = "multidict-5.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3"}, + {file = "multidict-5.1.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841"}, + {file = "multidict-5.1.0-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda"}, + {file = "multidict-5.1.0-cp39-cp39-win32.whl", hash = "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80"}, + {file = "multidict-5.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359"}, + {file = "multidict-5.1.0.tar.gz", hash = "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5"}, +] +mypy = [ + {file = "mypy-0.782-cp35-cp35m-macosx_10_6_x86_64.whl", hash = "sha256:2c6cde8aa3426c1682d35190b59b71f661237d74b053822ea3d748e2c9578a7c"}, + {file = "mypy-0.782-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9c7a9a7ceb2871ba4bac1cf7217a7dd9ccd44c27c2950edbc6dc08530f32ad4e"}, + {file = "mypy-0.782-cp35-cp35m-win_amd64.whl", hash = "sha256:c05b9e4fb1d8a41d41dec8786c94f3b95d3c5f528298d769eb8e73d293abc48d"}, + {file = "mypy-0.782-cp36-cp36m-macosx_10_6_x86_64.whl", hash = "sha256:6731603dfe0ce4352c555c6284c6db0dc935b685e9ce2e4cf220abe1e14386fd"}, + {file = "mypy-0.782-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:f05644db6779387ccdb468cc47a44b4356fc2ffa9287135d05b70a98dc83b89a"}, + {file = "mypy-0.782-cp36-cp36m-win_amd64.whl", hash = "sha256:b7fbfabdbcc78c4f6fc4712544b9b0d6bf171069c6e0e3cb82440dd10ced3406"}, + {file = "mypy-0.782-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:3fdda71c067d3ddfb21da4b80e2686b71e9e5c72cca65fa216d207a358827f86"}, + {file = "mypy-0.782-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7df6eddb6054d21ca4d3c6249cae5578cb4602951fd2b6ee2f5510ffb098707"}, + {file = "mypy-0.782-cp37-cp37m-win_amd64.whl", hash = "sha256:a4a2cbcfc4cbf45cd126f531dedda8485671545b43107ded25ce952aac6fb308"}, + {file = "mypy-0.782-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6bb93479caa6619d21d6e7160c552c1193f6952f0668cdda2f851156e85186fc"}, + {file = "mypy-0.782-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:81c7908b94239c4010e16642c9102bfc958ab14e36048fa77d0be3289dda76ea"}, + {file = "mypy-0.782-cp38-cp38-win_amd64.whl", hash = "sha256:5dd13ff1f2a97f94540fd37a49e5d255950ebcdf446fb597463a40d0df3fac8b"}, + {file = "mypy-0.782-py3-none-any.whl", hash = "sha256:e0b61738ab504e656d1fe4ff0c0601387a5489ca122d55390ade31f9ca0e252d"}, + {file = "mypy-0.782.tar.gz", hash = "sha256:eff7d4a85e9eea55afa34888dfeaccde99e7520b51f867ac28a48492c0b1130c"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +packaging = [ + {file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"}, + {file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"}, +] +parse = [ + {file = "parse-1.19.0.tar.gz", hash = "sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"}, +] +pathspec = [ + {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, + {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, +] +pbr = [ + {file = "pbr-5.5.1-py2.py3-none-any.whl", hash = "sha256:b236cde0ac9a6aedd5e3c34517b423cd4fd97ef723849da6b0d2231142d89c00"}, + {file = "pbr-5.5.1.tar.gz", hash = "sha256:5fad80b613c402d5b7df7bd84812548b2a61e9977387a80a5fc5c396492b13c9"}, +] +pycodestyle = [ + {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"}, + {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"}, +] +pydocstyle = [ + {file = "pydocstyle-5.1.1-py3-none-any.whl", hash = "sha256:aca749e190a01726a4fb472dd4ef23b5c9da7b9205c0a7857c06533de13fd678"}, + {file = "pydocstyle-5.1.1.tar.gz", hash = "sha256:19b86fa8617ed916776a11cd8bc0197e5b9856d5433b777f51a3defe13075325"}, +] +pyee = [ + {file = "pyee-8.1.0-py2.py3-none-any.whl", hash = "sha256:383973b63ad7ed5e3c0311f8b179c52981f9e7b3eaea0e9a830d13ec34dde65f"}, + {file = "pyee-8.1.0.tar.gz", hash = "sha256:92dacc5bd2bdb8f95aa8dd2585d47ca1c4840e2adb95ccf90034d64f725bfd31"}, +] +pyflakes = [ + {file = "pyflakes-2.2.0-py2.py3-none-any.whl", hash = "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92"}, + {file = "pyflakes-2.2.0.tar.gz", hash = "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8"}, +] +pygments = [ + {file = "Pygments-2.7.4-py3-none-any.whl", hash = "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435"}, + {file = "Pygments-2.7.4.tar.gz", hash = "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"}, +] +pyparsing = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] +pyppeteer = [ + {file = "pyppeteer-0.2.5-py3-none-any.whl", hash = "sha256:d4cb4a5ef94b00c1073aed888b39646ce26cff3339cff7a3f1f1cc307bf50408"}, + {file = "pyppeteer-0.2.5.tar.gz", hash = "sha256:c2974be1afa13b17f7ecd120d265d8b8cd324d536a231c3953ca872b68aba4af"}, +] +pyquery = [ + {file = "pyquery-1.4.3-py3-none-any.whl", hash = "sha256:1fc33b7699455ed25c75282bc8f80ace1ac078b0dda5a933dacbd8b1c1f83963"}, + {file = "pyquery-1.4.3.tar.gz", hash = "sha256:a388eefb6bc4a55350de0316fbd97cda999ae669b6743ae5b99102ba54f5aa72"}, +] +pytz = [ + {file = "pytz-2020.5-py2.py3-none-any.whl", hash = "sha256:16962c5fb8db4a8f63a26646d8886e9d769b6c511543557bc84e9569fb9a9cb4"}, + {file = "pytz-2020.5.tar.gz", hash = "sha256:180befebb1927b16f6b57101720075a984c019ac16b1b7575673bea42c6c3da5"}, +] +pyyaml = [ + {file = "PyYAML-5.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:f7a21e3d99aa3095ef0553e7ceba36fb693998fbb1226f1392ce33681047465f"}, + {file = "PyYAML-5.4-cp27-cp27m-win32.whl", hash = "sha256:52bf0930903818e600ae6c2901f748bc4869c0c406056f679ab9614e5d21a166"}, + {file = "PyYAML-5.4-cp27-cp27m-win_amd64.whl", hash = "sha256:a36a48a51e5471513a5aea920cdad84cbd56d70a5057cca3499a637496ea379c"}, + {file = "PyYAML-5.4-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:5e7ac4e0e79a53451dc2814f6876c2fa6f71452de1498bbe29c0b54b69a986f4"}, + {file = "PyYAML-5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc552b6434b90d9dbed6a4f13339625dc466fd82597119897e9489c953acbc22"}, + {file = "PyYAML-5.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0dc9f2eb2e3c97640928dec63fd8dc1dd91e6b6ed236bd5ac00332b99b5c2ff9"}, + {file = "PyYAML-5.4-cp36-cp36m-win32.whl", hash = "sha256:5a3f345acff76cad4aa9cb171ee76c590f37394186325d53d1aa25318b0d4a09"}, + {file = "PyYAML-5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:f3790156c606299ff499ec44db422f66f05a7363b39eb9d5b064f17bd7d7c47b"}, + {file = "PyYAML-5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:124fd7c7bc1e95b1eafc60825f2daf67c73ce7b33f1194731240d24b0d1bf628"}, + {file = "PyYAML-5.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:8b818b6c5a920cbe4203b5a6b14256f0e5244338244560da89b7b0f1313ea4b6"}, + {file = "PyYAML-5.4-cp37-cp37m-win32.whl", hash = "sha256:737bd70e454a284d456aa1fa71a0b429dd527bcbf52c5c33f7c8eee81ac16b89"}, + {file = "PyYAML-5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:7242790ab6c20316b8e7bb545be48d7ed36e26bbe279fd56f2c4a12510e60b4b"}, + {file = "PyYAML-5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cc547d3ead3754712223abb7b403f0a184e4c3eae18c9bb7fd15adef1597cc4b"}, + {file = "PyYAML-5.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8635d53223b1f561b081ff4adecb828fd484b8efffe542edcfdff471997f7c39"}, + {file = "PyYAML-5.4-cp38-cp38-win32.whl", hash = "sha256:26fcb33776857f4072601502d93e1a619f166c9c00befb52826e7b774efaa9db"}, + {file = "PyYAML-5.4-cp38-cp38-win_amd64.whl", hash = "sha256:b2243dd033fd02c01212ad5c601dafb44fbb293065f430b0d3dbf03f3254d615"}, + {file = "PyYAML-5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:31ba07c54ef4a897758563e3a0fcc60077698df10180abe4b8165d9895c00ebf"}, + {file = "PyYAML-5.4-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:02c78d77281d8f8d07a255e57abdbf43b02257f59f50cc6b636937d68efa5dd0"}, + {file = "PyYAML-5.4-cp39-cp39-win32.whl", hash = "sha256:fdc6b2cb4b19e431994f25a9160695cc59a4e861710cc6fc97161c5e845fc579"}, + {file = "PyYAML-5.4-cp39-cp39-win_amd64.whl", hash = "sha256:8bf38641b4713d77da19e91f8b5296b832e4db87338d6aeffe422d42f1ca896d"}, + {file = "PyYAML-5.4.tar.gz", hash = "sha256:3c49e39ac034fd64fd576d63bb4db53cda89b362768a67f07749d55f128ac18a"}, +] +regex = [ + {file = "regex-2020.11.13-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8b882a78c320478b12ff024e81dc7d43c1462aa4a3341c754ee65d857a521f85"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a63f1a07932c9686d2d416fb295ec2c01ab246e89b4d58e5fa468089cab44b70"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:6e4b08c6f8daca7d8f07c8d24e4331ae7953333dbd09c648ed6ebd24db5a10ee"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:bba349276b126947b014e50ab3316c027cac1495992f10e5682dc677b3dfa0c5"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:56e01daca75eae420bce184edd8bb341c8eebb19dd3bce7266332258f9fb9dd7"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:6a8ce43923c518c24a2579fda49f093f1397dad5d18346211e46f134fc624e31"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab79fcb02b930de09c76d024d279686ec5d532eb814fd0ed1e0051eb8bd2daa"}, + {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:9801c4c1d9ae6a70aeb2128e5b4b68c45d4f0af0d1535500884d644fa9b768c6"}, + {file = "regex-2020.11.13-cp36-cp36m-win32.whl", hash = "sha256:49cae022fa13f09be91b2c880e58e14b6da5d10639ed45ca69b85faf039f7a4e"}, + {file = "regex-2020.11.13-cp36-cp36m-win_amd64.whl", hash = "sha256:749078d1eb89484db5f34b4012092ad14b327944ee7f1c4f74d6279a6e4d1884"}, + {file = "regex-2020.11.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b2f4007bff007c96a173e24dcda236e5e83bde4358a557f9ccf5e014439eae4b"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:38c8fd190db64f513fe4e1baa59fed086ae71fa45083b6936b52d34df8f86a88"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5862975b45d451b6db51c2e654990c1820523a5b07100fc6903e9c86575202a0"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:262c6825b309e6485ec2493ffc7e62a13cf13fb2a8b6d212f72bd53ad34118f1"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bafb01b4688833e099d79e7efd23f99172f501a15c44f21ea2118681473fdba0"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:e32f5f3d1b1c663af7f9c4c1e72e6ffe9a78c03a31e149259f531e0fed826512"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3bddc701bdd1efa0d5264d2649588cbfda549b2899dc8d50417e47a82e1387ba"}, + {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:02951b7dacb123d8ea6da44fe45ddd084aa6777d4b2454fa0da61d569c6fa538"}, + {file = "regex-2020.11.13-cp37-cp37m-win32.whl", hash = "sha256:0d08e71e70c0237883d0bef12cad5145b84c3705e9c6a588b2a9c7080e5af2a4"}, + {file = "regex-2020.11.13-cp37-cp37m-win_amd64.whl", hash = "sha256:1fa7ee9c2a0e30405e21031d07d7ba8617bc590d391adfc2b7f1e8b99f46f444"}, + {file = "regex-2020.11.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:baf378ba6151f6e272824b86a774326f692bc2ef4cc5ce8d5bc76e38c813a55f"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e3faaf10a0d1e8e23a9b51d1900b72e1635c2d5b0e1bea1c18022486a8e2e52d"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2a11a3e90bd9901d70a5b31d7dd85114755a581a5da3fc996abfefa48aee78af"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1ebb090a426db66dd80df8ca85adc4abfcbad8a7c2e9a5ec7513ede522e0a8f"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2b1a5ddae3677d89b686e5c625fc5547c6e492bd755b520de5332773a8af06b"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2c99e97d388cd0a8d30f7c514d67887d8021541b875baf09791a3baad48bb4f8"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:c084582d4215593f2f1d28b65d2a2f3aceff8342aa85afd7be23a9cad74a0de5"}, + {file = "regex-2020.11.13-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a3d748383762e56337c39ab35c6ed4deb88df5326f97a38946ddd19028ecce6b"}, + {file = "regex-2020.11.13-cp38-cp38-win32.whl", hash = "sha256:7913bd25f4ab274ba37bc97ad0e21c31004224ccb02765ad984eef43e04acc6c"}, + {file = "regex-2020.11.13-cp38-cp38-win_amd64.whl", hash = "sha256:6c54ce4b5d61a7129bad5c5dc279e222afd00e721bf92f9ef09e4fae28755683"}, + {file = "regex-2020.11.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1862a9d9194fae76a7aaf0150d5f2a8ec1da89e8b55890b1786b8f88a0f619dc"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux1_i686.whl", hash = "sha256:4902e6aa086cbb224241adbc2f06235927d5cdacffb2425c73e6570e8d862364"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7a25fcbeae08f96a754b45bdc050e1fb94b95cab046bf56b016c25e9ab127b3e"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:d2d8ce12b7c12c87e41123997ebaf1a5767a5be3ec545f64675388970f415e2e"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f7d29a6fc4760300f86ae329e3b6ca28ea9c20823df123a2ea8693e967b29917"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:717881211f46de3ab130b58ec0908267961fadc06e44f974466d1887f865bd5b"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:3128e30d83f2e70b0bed9b2a34e92707d0877e460b402faca908c6667092ada9"}, + {file = "regex-2020.11.13-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:8f6a2229e8ad946e36815f2a03386bb8353d4bde368fdf8ca5f0cb97264d3b5c"}, + {file = "regex-2020.11.13-cp39-cp39-win32.whl", hash = "sha256:f8f295db00ef5f8bae530fc39af0b40486ca6068733fb860b42115052206466f"}, + {file = "regex-2020.11.13-cp39-cp39-win_amd64.whl", hash = "sha256:a15f64ae3a027b64496a71ab1f722355e570c3fac5ba2801cafce846bf5af01d"}, + {file = "regex-2020.11.13.tar.gz", hash = "sha256:83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562"}, +] +requests = [ + {file = "requests-2.15.1-py2.py3-none-any.whl", hash = "sha256:ff753b2196cd18b1bbeddc9dcd5c864056599f7a7d9a4fb5677e723efa2b7fb9"}, + {file = "requests-2.15.1.tar.gz", hash = "sha256:e5659b9315a0610505e050bb7190bf6fa2ccee1ac295f2b760ef9d8a03ebbb2e"}, +] +requests-html = [ + {file = "requests-html-0.10.0.tar.gz", hash = "sha256:7e929ecfed95fb1d0994bb368295d6d7c4d06b03fcb900c33d7d0b17e6003947"}, + {file = "requests_html-0.10.0-py3-none-any.whl", hash = "sha256:cb8a78cf829c4eca9d6233f28524f65dd2bfaafb4bdbbc407f0a0b8f487df6e2"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] +smmap = [ + {file = "smmap-3.0.4-py2.py3-none-any.whl", hash = "sha256:54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4"}, + {file = "smmap-3.0.4.tar.gz", hash = "sha256:9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.0.0-py2.py3-none-any.whl", hash = "sha256:209f257d7533fdb3cb73bdbd24f436239ca3b2fa67d56f6ff88e86be08cc5ef0"}, + {file = "snowballstemmer-2.0.0.tar.gz", hash = "sha256:df3bac3df4c2c01363f3dd2cfa78cce2840a79b9f1c2d2de9ce8d31683992f52"}, +] +soupsieve = [ + {file = "soupsieve-2.1-py3-none-any.whl", hash = "sha256:4bb21a6ee4707bf43b61230e80740e71bfe56e55d1f1f50924b087bb2975c851"}, + {file = "soupsieve-2.1.tar.gz", hash = "sha256:6dc52924dc0bc710a5d16794e6b3480b2c7c08b07729505feab2b2c16661ff6e"}, +] +sphinx = [ + {file = "Sphinx-3.4.3-py3-none-any.whl", hash = "sha256:c314c857e7cd47c856d2c5adff514ac2e6495f8b8e0f886a8a37e9305dfea0d8"}, + {file = "Sphinx-3.4.3.tar.gz", hash = "sha256:41cad293f954f7d37f803d97eb184158cfd90f51195131e94875bc07cd08b93c"}, +] +sphinx-autodoc-typehints = [ + {file = "sphinx-autodoc-typehints-1.11.1.tar.gz", hash = "sha256:244ba6d3e2fdb854622f643c7763d6f95b6886eba24bec28e86edf205e4ddb20"}, + {file = "sphinx_autodoc_typehints-1.11.1-py3-none-any.whl", hash = "sha256:da049791d719f4c9813642496ee4764203e317f0697eb75446183fa2a68e3f77"}, +] +sphinx-rtd-theme = [ + {file = "sphinx_rtd_theme-0.5.1-py2.py3-none-any.whl", hash = "sha256:fa6bebd5ab9a73da8e102509a86f3fcc36dec04a0b52ea80e5a033b2aba00113"}, + {file = "sphinx_rtd_theme-0.5.1.tar.gz", hash = "sha256:eda689eda0c7301a80cf122dad28b1861e5605cbf455558f3775e1e8200e83a5"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-1.0.3.tar.gz", hash = "sha256:e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b"}, + {file = "sphinxcontrib_htmlhelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:3c0bc24a2c41e340ac37c85ced6dafc879ab485c095b1d65d2461ac2f7cca86f"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.4.tar.gz", hash = "sha256:eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc"}, + {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, +] +stevedore = [ + {file = "stevedore-3.3.0-py3-none-any.whl", hash = "sha256:50d7b78fbaf0d04cd62411188fa7eedcb03eb7f4c4b37005615ceebe582aa82a"}, + {file = "stevedore-3.3.0.tar.gz", hash = "sha256:3a5bbd0652bf552748871eaa73a4a8dc2899786bc497a2aa1fcb4dcdb0debeee"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tqdm = [ + {file = "tqdm-4.56.0-py2.py3-none-any.whl", hash = "sha256:4621f6823bab46a9cc33d48105753ccbea671b68bab2c50a9f0be23d4065cb5a"}, + {file = "tqdm-4.56.0.tar.gz", hash = "sha256:fe3d08dd00a526850568d542ff9de9bbc2a09a791da3c334f3213d8d0bbbca65"}, +] +typed-ast = [ + {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70"}, + {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487"}, + {file = "typed_ast-1.4.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412"}, + {file = "typed_ast-1.4.2-cp35-cp35m-win32.whl", hash = "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400"}, + {file = "typed_ast-1.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606"}, + {file = "typed_ast-1.4.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64"}, + {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07"}, + {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc"}, + {file = "typed_ast-1.4.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a"}, + {file = "typed_ast-1.4.2-cp36-cp36m-win32.whl", hash = "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151"}, + {file = "typed_ast-1.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3"}, + {file = "typed_ast-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41"}, + {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f"}, + {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581"}, + {file = "typed_ast-1.4.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37"}, + {file = "typed_ast-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd"}, + {file = "typed_ast-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496"}, + {file = "typed_ast-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc"}, + {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"}, + {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea"}, + {file = "typed_ast-1.4.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787"}, + {file = "typed_ast-1.4.2-cp38-cp38-win32.whl", hash = "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2"}, + {file = "typed_ast-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937"}, + {file = "typed_ast-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1"}, + {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6"}, + {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166"}, + {file = "typed_ast-1.4.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d"}, + {file = "typed_ast-1.4.2-cp39-cp39-win32.whl", hash = "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b"}, + {file = "typed_ast-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440"}, + {file = "typed_ast-1.4.2.tar.gz", hash = "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a"}, +] +typing-extensions = [ + {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, + {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, + {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, +] +urllib3 = [ + {file = "urllib3-1.26.2-py2.py3-none-any.whl", hash = "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"}, + {file = "urllib3-1.26.2.tar.gz", hash = "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08"}, +] +w3lib = [ + {file = "w3lib-1.22.0-py2.py3-none-any.whl", hash = "sha256:0161d55537063e00d95a241663ede3395c4c6d7b777972ba2fd58bbab2001e53"}, + {file = "w3lib-1.22.0.tar.gz", hash = "sha256:0ad6d0203157d61149fd45aaed2e24f53902989c32fc1dccc2e2bfba371560df"}, +] +websockets = [ + {file = "websockets-8.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:3762791ab8b38948f0c4d281c8b2ddfa99b7e510e46bd8dfa942a5fff621068c"}, + {file = "websockets-8.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:3db87421956f1b0779a7564915875ba774295cc86e81bc671631379371af1170"}, + {file = "websockets-8.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4f9f7d28ce1d8f1295717c2c25b732c2bc0645db3215cf757551c392177d7cb8"}, + {file = "websockets-8.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:295359a2cc78736737dd88c343cd0747546b2174b5e1adc223824bcaf3e164cb"}, + {file = "websockets-8.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:1d3f1bf059d04a4e0eb4985a887d49195e15ebabc42364f4eb564b1d065793f5"}, + {file = "websockets-8.1-cp36-cp36m-win32.whl", hash = "sha256:2db62a9142e88535038a6bcfea70ef9447696ea77891aebb730a333a51ed559a"}, + {file = "websockets-8.1-cp36-cp36m-win_amd64.whl", hash = "sha256:0e4fb4de42701340bd2353bb2eee45314651caa6ccee80dbd5f5d5978888fed5"}, + {file = "websockets-8.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:9b248ba3dd8a03b1a10b19efe7d4f7fa41d158fdaa95e2cf65af5a7b95a4f989"}, + {file = "websockets-8.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:ce85b06a10fc65e6143518b96d3dca27b081a740bae261c2fb20375801a9d56d"}, + {file = "websockets-8.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:965889d9f0e2a75edd81a07592d0ced54daa5b0785f57dc429c378edbcffe779"}, + {file = "websockets-8.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:751a556205d8245ff94aeef23546a1113b1dd4f6e4d102ded66c39b99c2ce6c8"}, + {file = "websockets-8.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:3ef56fcc7b1ff90de46ccd5a687bbd13a3180132268c4254fc0fa44ecf4fc422"}, + {file = "websockets-8.1-cp37-cp37m-win32.whl", hash = "sha256:7ff46d441db78241f4c6c27b3868c9ae71473fe03341340d2dfdbe8d79310acc"}, + {file = "websockets-8.1-cp37-cp37m-win_amd64.whl", hash = "sha256:20891f0dddade307ffddf593c733a3fdb6b83e6f9eef85908113e628fa5a8308"}, + {file = "websockets-8.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c1ec8db4fac31850286b7cd3b9c0e1b944204668b8eb721674916d4e28744092"}, + {file = "websockets-8.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5c01fd846263a75bc8a2b9542606927cfad57e7282965d96b93c387622487485"}, + {file = "websockets-8.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9bef37ee224e104a413f0780e29adb3e514a5b698aabe0d969a6ba426b8435d1"}, + {file = "websockets-8.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d705f8aeecdf3262379644e4b55107a3b55860eb812b673b28d0fbc347a60c55"}, + {file = "websockets-8.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:c8a116feafdb1f84607cb3b14aa1418424ae71fee131642fc568d21423b51824"}, + {file = "websockets-8.1-cp38-cp38-win32.whl", hash = "sha256:e898a0863421650f0bebac8ba40840fc02258ef4714cb7e1fd76b6a6354bda36"}, + {file = "websockets-8.1-cp38-cp38-win_amd64.whl", hash = "sha256:f8a7bff6e8664afc4e6c28b983845c5bc14965030e3fb98789734d416af77c4b"}, + {file = "websockets-8.1.tar.gz", hash = "sha256:5c65d2da8c6bce0fca2528f69f44b2f977e06954c8512a952222cea50dad430f"}, +] +werkzeug = [ + {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, + {file = "Werkzeug-1.0.1.tar.gz", hash = "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c"}, +] +yarl = [ + {file = "yarl-1.6.3-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_ppc64le.whl", hash = "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76"}, + {file = "yarl-1.6.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366"}, + {file = "yarl-1.6.3-cp36-cp36m-win32.whl", hash = "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721"}, + {file = "yarl-1.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643"}, + {file = "yarl-1.6.3-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_ppc64le.whl", hash = "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f"}, + {file = "yarl-1.6.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970"}, + {file = "yarl-1.6.3-cp37-cp37m-win32.whl", hash = "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e"}, + {file = "yarl-1.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50"}, + {file = "yarl-1.6.3-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux2014_ppc64le.whl", hash = "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2"}, + {file = "yarl-1.6.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2"}, + {file = "yarl-1.6.3-cp38-cp38-win32.whl", hash = "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896"}, + {file = "yarl-1.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a"}, + {file = "yarl-1.6.3-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux2014_ppc64le.whl", hash = "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0"}, + {file = "yarl-1.6.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4"}, + {file = "yarl-1.6.3-cp39-cp39-win32.whl", hash = "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424"}, + {file = "yarl-1.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6"}, + {file = "yarl-1.6.3.tar.gz", hash = "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10"}, +] diff --git a/pyproject.toml b/pyproject.toml index f99224e..6bdf671 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,9 @@ [tool.poetry] -name = "replitdev" -version = "2.2.11" +name = "replit" +version = "3.0.0" description = "A library for interacting with features of repl.it" -authors = ["mat ", "Scoder12 ", "AllAwesome497", "Repl.it "] -license = "MIT" +authors = ["Repl.it ", "mat ", "kennethreitz ", "Scoder12 ", "AllAwesome497", ] +license = "ISC" readme = "README.md" repository = "https://github.com/replit/replit-py" homepage = "https://github.com/replit/replit-py" diff --git a/src/replit/database/database.py b/src/replit/database/database.py index b4581d0..40661ed 100644 --- a/src/replit/database/database.py +++ b/src/replit/database/database.py @@ -1,11 +1,10 @@ """Async and dict-like interfaces for interacting with Repl.it Database.""" -from collections import abc import json -from typing import Any, Dict, Iterator, Tuple import urllib +from collections import abc +from typing import Any, Dict, Iterator, Tuple -import aiohttp import requests diff --git a/src/replit/web/__init__.py b/src/replit/web/__init__.py index 1cd24d9..a4b71a5 100644 --- a/src/replit/web/__init__.py +++ b/src/replit/web/__init__.py @@ -32,7 +32,7 @@ def user_data(username: str) -> JSONKey: return db.jsonkey(username, dict) -current_user_data = LocalProxy(lambda: user_data(flask.request.auth.name)) +current_user_data = LocalProxy(lambda: user_data(flask.request.user_info.name)) # Syntax sugar. App = ReplitApp diff --git a/src/replit/web/utils.py b/src/replit/web/utils.py index be86ff3..4917d92 100644 --- a/src/replit/web/utils.py +++ b/src/replit/web/utils.py @@ -178,7 +178,7 @@ def authed_ratelimit( nonlocal last_reset nonlocal num_requests - name = flask.request.auth.name + name = flask.request.user_info.name now = time.time() if now - last_reset >= period: diff --git a/testapp.py b/testapp.py deleted file mode 100644 index 2c84f37..0000000 --- a/testapp.py +++ /dev/null @@ -1,11 +0,0 @@ -from flask import Flask - -app = Flask(__name__) - - -@app.route("/") -def hello_world(): - return "Hello, World!" - - -app.run(host="0.0.0.0")