PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python3.6/__pycache__
Viewing File: /usr/lib64/python3.6/__pycache__/inspect.cpython-36.opt-2.pyc
3 \��� @s�d�ZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlmZddlmZmZe�Zx"ejj�D]\ZZeede<q�Wd�Zd d �Zd d �Z d d�Z!dd�Z"dd�Z#e$ed��rdd�Z%ndd�Z%e$ed��r2dd�Z&ndd�Z&dd�Z'dd�Z(dd �Z)d!d"�Z*d#d$�Z+d%d&�Z,d'd(�Z-d)d*�Z.d+d,�Z/d-d.�Z0d/d0�Z1d1d2�Z2d3d4�Z3d5d6�Z4d�d7d8�Z5ed9d:�Z6d;d<�Z7d=d>�Z8dd?�d@dA�Z9dBdC�Z:dDdE�Z;dFdG�Z<dHdI�Z=dJdK�Z>dLdM�Z?dNdO�Z@dPdQ�ZAd�dRdS�ZBiZCiZDd�dTdU�ZEdVdW�ZFdXdY�ZGGdZd[�d[eH�ZIGd\d]�d]�ZJd^d_�ZKd`da�ZLdbdc�ZMddde�ZNd�dgdh�ZOedidj�ZPdkdl�ZQdmdn�ZRedodp�ZSdqdr�ZTedsdt�ZUdudv�ZVedwdx�ZWdydz�ZXd�d{d|�ZYd}d~�ZZdddfiie[dd��d�d��d�d��d�d��eYf d�d��Z\e[d�d��d�d��d�d��fd�d��Z]d�d��Z^d�d��Z_d�d��Z`ed�d��Zad�d��Zbed�d��Zcd�d�d��Zdd�d��Zeed�d�ecjf�Zgd�d�d��Zhd�d�d��Zid�d��Zjd�d�d��Zkd�d�d��Zlem�Znd�d��Zod�d��Zpd�d��Zqd�d��Zrd�d��Zsenfd�d��Ztd�Zud�Zvd�Zwd�Zxd�d��Zyd�d��Zzd�Z{d�Z|d�Z}d�Z~d�d��Zd�d„Z�e�e�j��Z�e�e�j��Z�e�e�j�d��Z�e�e�e�ej�fZ�d�dńZ�ffd�dDŽZ�d�dɄZ�d�d˄Z�d�d̈́Z�d�dτZ�d�dфZ��dd�dԄZ��dd�dքZ�d�d؄Z�d�d�dٜd�dۄZ�Gd�d݄d݃Z�Gd�d߄d߃Z�Gd�d�d�ej��Z�e�j�Z�e�j�Z�e�j�Z�e�j�Z�e�j�Z�e�d�e�d�e�d�e�d�e�d�iZ�e�j�Z�Gd�d�d�Z�Gd�d�d�Z�Gd�d�d�Z�d�d�d�d�Z�d�d�Z�e�d�k�r�e��dS(�Ka-Ping Yee <ping@lfw.org>�'Yury Selivanov <yselivanov@sprymix.com>�N)� attrgetter)� namedtuple� OrderedDictZCO_��cCs t|tj�S)N)� isinstance�types� ModuleType)�object�r �/usr/lib64/python3.6/inspect.py�ismodule@srcCs t|t�S)N)r �type)r r r r�isclassIsrcCs t|tj�S)N)r r � MethodType)r r r r�ismethodQsrcCs:t|�st|�st|�rdSt|�}t|d�o8t|d� S)NF�__get__�__set__)rr� isfunctionr�hasattr)r �tpr r r�ismethoddescriptor[srcCs8t|�st|�st|�rdSt|�}t|d�o6t|d�S)NFrr)rrrrr)r rr r r�isdatadescriptorosr�MemberDescriptorTypecCs t|tj�S)N)r r r)r r r r�ismemberdescriptorsrcCsdS)NFr )r r r rr�s�GetSetDescriptorTypecCs t|tj�S)N)r r r)r r r r�isgetsetdescriptor�srcCsdS)NFr )r r r rr�scCs t|tj�S)N)r r � FunctionType)r r r rr�s rcCs tt|�st|�o|jjt@�S)N)�boolrr�__code__�co_flagsZ CO_GENERATOR)r r r r�isgeneratorfunction�sr#cCs tt|�st|�o|jjt@�S)N)r rrr!r"Z CO_COROUTINE)r r r r�iscoroutinefunction�sr$cCs tt|�st|�o|jjt@�S)N)r rrr!r"ZCO_ASYNC_GENERATOR)r r r r�isasyncgenfunction�sr%cCs t|tj�S)N)r r �AsyncGeneratorType)r r r r� isasyncgen�sr'cCs t|tj�S)N)r r � GeneratorType)r r r r� isgenerator�sr)cCs t|tj�S)N)r r � CoroutineType)r r r r� iscoroutine�sr+cCs6t|tj�p4t|tj�r(t|jjt@�p4t|tj j �S)N) r r r*r(r �gi_coder"ZCO_ITERABLE_COROUTINE� collections�abc� Awaitable)r r r r� isawaitable�s  r0cCs t|tj�S)N)r r � TracebackType)r r r r� istraceback�sr2cCs t|tj�S)N)r r � FrameType)r r r r�isframe�s r4cCs t|tj�S)N)r r �CodeType)r r r r�iscode�sr6cCs t|tj�S)N)r r �BuiltinFunctionType)r r r r� isbuiltinsr8cCs t|�pt|�pt|�pt|�S)N)r8rrr)r r r r� isroutinesr9cCs�t|t�sdS|jt@rdStt|�tj�s0dSt|d�r>dSx&|jj �D]\}}t |dd�rJdSqJWx@|j D]6}x0t |df�D] }t ||d�}t |dd�r�dSq�WqnWdS)NFT�__abstractmethods__�__isabstractmethod__) r r� __flags__�TPFLAGS_IS_ABSTRACT� issubclassr.�ABCMetar�__dict__�items�getattr� __bases__)r �name�value�baser r r� isabstract%s"        rGc Cs&t|�r|ft|�}nf}g}t�}t|�}yBx<|jD]2}x,|jj�D]\}}t|tj �rH|j |�qHWq8WWnt k r�YnXx�|D]�} yt || �} | |kr�t �Wn:t k r�x$|D]}| |jkr�|j| } Pq�Ww�YnX| s�|| ��r|j | | f�|j | �q�W|jdd�d�|S)NcSs|dS)Nrr )Zpairr r r�<lambda>fszgetmembers.<locals>.<lambda>)�key)r�getmro�set�dirrCr@rAr r �DynamicClassAttribute�append�AttributeErrorrB�add�sort) r Z predicate�mro�results� processed�namesrF�k�vrIrEr r r� getmembers=s:       rX� Attributezname kind defining_class objectcCs\t|�}tt|��}tdd�|D��}|f|}||}t|�}x:|D]2}x,|jj�D]\}}t|tj�rV|j |�qVWqFWg} t �} �x�|D�]�} d} d} d}| | k�r�y| dkr�t d��t || �} Wn"t k r�}zWYdd}~Xn�Xt | d| �} | |k�r�d} d}x(|D] }t || d�}|| k�r|}�qWxH|D]@}y|j || �}Wntk �rh�w:YnX|| k�r:|}�q:W|dk �r�|} x4|D],}| |jk�r�|j| }| |k�r�|} P�q�W| dk�r�q�| dk �r�| n|}t|t��r�d}|}n@t|t��r d}|}n*t|t��r"d}|}nt|��r2d }nd }| j t| || |��| j| �q�W| S) NcSsg|]}|ttfkr|�qSr )rr )�.0�clsr r r� <listcomp>�sz(classify_class_attrs.<locals>.<listcomp>r@z)__dict__ is special, don't want the proxy� __objclass__z static methodz class method�property�method�data)rJr�tuplerLr@rAr r rMrNrK� ExceptionrB� __getattr__rO� staticmethod� classmethodr^r9rYrP)r[rRZmetamroZ class_basesZ all_basesrUrFrVrW�resultrTrDZhomeclsZget_objZdict_obj�excZlast_clsZsrch_clsZsrch_obj�obj�kindr r r�classify_class_attrsks�                          rjcCs|jS)N)�__mro__)r[r r rrJ�srJ)�stopcs��dkrdd�}n �fdd�}|}t|�|i}tj�}xD||�rz|j}t|�}||ksbt|�|krptdj|���|||<q8W|S)NcSs t|d�S)N� __wrapped__)r)�fr r r� _is_wrapper�szunwrap.<locals>._is_wrappercst|d�o�|� S)Nrm)r)rn)rlr rro�sz!wrapper loop when unwrapping {!r})�id�sys�getrecursionlimitrm�len� ValueError�format)�funcrlrorn�memoZrecursion_limitZid_funcr )rlr�unwrap�s     rxcCs|j�}t|�t|j��S)N)� expandtabsrs�lstrip)�lineZexpliner r r� indentsize sr|cCsRtjj|j�}|dkrdSx&|jjd�dd�D]}t||�}q0Wt|�sNdS|S)N�.r���)rq�modules�get� __module__� __qualname__�splitrBr)rvr[rDr r r� _findclasssr�c Cs�t|�rRxD|jD]:}|tk ry |j}Wntk r<wYnX|dk r|SqWdSt|�r�|jj}|j}t|�r�t t ||d�d�|jkr�|}n|j }n�t |�r�|j}t |�}|dks�t ||�|k r�dSn�t |��r |j}|j}t|�o�|jd||jk�r|}n|j }nzt|t��rJ|j}|j}t |�}|dk�sDt ||�|k �r�dSn:t|��s^t|��r�|j}|j}t ||�|k �r�dSndSxJ|jD]@}yt ||�j}Wntk �r��w�YnX|dk �r�|S�q�WdS)N�__func__r})rrkr �__doc__rOrr��__name__�__self__rB� __class__rr�r8r�r r^�fgetrrr])rhrF�docrD�selfr[rvr r r�_finddocsb        r�cCsdy |j}Wntk rdSX|dkrNy t|�}Wnttfk rLdSXt|t�s\dSt|�S)N)r�rOr�� TypeErrorr �str�cleandoc)r r�r r r�getdocSs   r�c Cs�y|j�jd�}Wntk r&dSXtj}x:|dd�D]*}t|j��}|r<t|�|}t||�}q<W|r~|dj�|d<|tjkr�x*tdt|��D]}|||d�||<q�Wx|r�|d r�|j �q�Wx|r�|d r�|j d�q�Wdj |�SdS)N� rrr~) ryr�� UnicodeErrorrq�maxsizersrz�min�range�pop�join)r��linesZmarginr{Zcontent�indent�ir r rr�fs(    r�cCs�t|�r&t|d�r|jStdj|���t|�rdt|d�rVtjj|j �}t|d�rV|jStdj|���t |�rr|j }t |�r�|j }t|�r�|j}t|�r�|j}t|�r�|jStdj|���dS)N�__file__z{!r} is a built-in moduler�z{!r} is a built-in classzO{!r} is not a module, class, method, function, traceback, frame, or code object)rrr�r�rurrqrr�r�rr�rr!r2�tb_framer4�f_coder6� co_filename)r r r r�getfile�s,   r�cCsTtjj|�}dd�tjj�D�}|j�x&|D]\}}|j|�r.|d|�Sq.WdS)NcSsg|]}t|� |f�qSr )rs)rZ�suffixr r rr\�sz!getmodulename.<locals>.<listcomp>)�os�path�basename� importlib� machinery� all_suffixesrQ�endswith)r�Zfname�suffixesZneglenr�r r r� getmodulename�s  r�cs�t|��tjjdd�}|tjjdd�7}t�fdd�|D��r`tjj��dtjj d�nt�fdd�tjj D��r~dStjj ��r��St t |��dd�dk r��S�tjkr��SdS)Nc3s|]}�j|�VqdS)N)r�)rZ�s)�filenamer r� <genexpr>�sz getsourcefile.<locals>.<genexpr>rc3s|]}�j|�VqdS)N)r�)rZr�)r�r rr��s� __loader__)r�r�r��DEBUG_BYTECODE_SUFFIXES�OPTIMIZED_BYTECODE_SUFFIXES�anyr�r��splitext�SOURCE_SUFFIXES�EXTENSION_SUFFIXES�existsrB� getmodule� linecache�cache)r Zall_bytecode_suffixesr )r�r� getsourcefile�s   r�cCs,|dkrt|�pt|�}tjjtjj|��S)N)r�r�r�r��normcase�abspath)r � _filenamer r r� getabsfile�sr�c Cs�t|�r |St|d�r$tjj|j�S|dk rD|tkrDtjjt|�Syt||�}Wntk rfdSX|tkr�tjjt|�Sxnt tjj ��D]\\}}t|�r�t|d�r�|j }|t j|d�kr�q�|t |<t|�}|j t|<ttjj|�<q�W|tk�r tjjt|�Stjd}t|d��s$dSt||j ��rLt||j �}||k�rL|Stjd}t||j ��r~t||j �} | |k�r~|SdS)Nr�r��__main__r��builtins)rrrqrr�r�� modulesbyfiler�r��listrAr��_filesbymodnamer�r�r��realpathrB) r r��file�modname�modulern�mainZ mainobjectZbuiltinZ builtinobjectr r rr��sD         r�c Cs�t|�}|rtj|�n$t|�}|jd�o2|jd�s<td��t||�}|rZtj||j �}n tj|�}|sptd��t |�r�|dfSt |��r |j }t jd|d�}g}xRtt|��D]B}|j||�}|r�||ddkr�||fS|j|jd �|f�q�W|�r|j�||dd fStd ��t|��r0|j}t|��r@|j}t|��rP|j}t|��r`|j}t|��r�t|d ��s~td ��|jd } t jd �}x*| dk�r�|j|| ��r�P| d } �q�W|| fStd��dS)N�<�>zsource code not availablezcould not get source coderz^(\s*)class\s*z\b�crzcould not find class definition�co_firstlinenoz"could not find function definitionz>^(\s*def\s)|(\s*async\s+def\s)|(.*(?<!\w)lambda(:|\s))|^(\s*@)zcould not find code object) r�r�� checkcacher�� startswithr��OSErrorr��getlinesr@rrr��re�compiler�rs�matchrN�grouprQrr�rr!r2r�r4r�r6rr�) r r�r�r�rDZpatZ candidatesr�r��lnumr r r� findsource�s^             r�c Cs>yt|�\}}Wnttfk r(dSXt|�r�d}|rR|ddd�dkrRd}x(|t|�krz||j�dkrz|d}qTW|t|�kr�||dd�dkr�g}|}x>|t|�kr�||dd�dkr�|j||j��|d}q�Wdj|�S�nH|dk�r:t ||�}|d}|dk�r:||j �dd�dk�r:t ||�|k�r:||j�j �g}|dk�r�|d}||j�j �}x\|dd�dk�r�t ||�|k�r�|g|dd�<|d}|dk�r�P||j�j �}�q|Wx*|�r|dj�dk�rg|dd�<�q�Wx*|�r.|dj�dk�r.g|d d�<�qWdj|�SdS) Nr�z#!r��#)r�r�r~r~) r�r�r�rrs�striprNryr�r|rz)r r�r��startZcomments�endr�Zcommentr r r� getcommentsAsJ  "   $ & r�c@s eZdZdS)� EndOfBlockN)r�r�r�r r r rr�nsr�c@seZdZdd�Zdd�ZdS)� BlockFindercCs.d|_d|_d|_d|_d|_d|_d|_dS)NrFr)r��islambda�started�passline� indecorator�decoratorhasargs�last)r�r r r�__init__rszBlockFinder.__init__cCs&|j rD|j rD|dkr d|_n|d kr<|dkr6d|_d|_d|_n�|dkrZ|jrXd|_n�|dkrv|jrtd|_d|_n�|tjkr�d|_|d |_|jr�t�|jr�|j r�d|_nr|jr�nj|tj kr�|j d |_ d|_nL|tj k�r|j d |_ |j d k�r"t�n"|j d k�r"|tj tj fk�r"t�dS) N�@T�def�class�lambda�(�)Frr)r�r�r�)r�r�r�r�r��tokenize�NEWLINEr�r��INDENTr��DEDENT�COMMENT�NL)r�r�tokenZsrowcolZerowcolr{r r r� tokeneater{sB       zBlockFinder.tokeneaterN)r�r�r�r�r�r r r rr�ps r�c CsZt�}y,tjt|�j�}x|D]}|j|�qWWnttfk rJYnX|d|j�S)N) r�r��generate_tokens�iter�__next__r�r��IndentationErrorr�)r�Z blockfinder�tokensZ_tokenr r r�getblock�s r�cCsbt|�}t|�\}}t|�r"|j}t|�s>t|�rF|jjdkrF|dfSt||d��|dfSdS)Nz<module>rr) rxr�r2r�rr4r��co_namer�)r r�r�r r r�getsourcelines�s r�cCst|�\}}dj|�S)Nr�)r�r�)r r�r�r r r� getsource�s r�cCsVg}|jtdd�d�x:|D]2}|j||jf�||kr|jt||||��qW|S)Nr�r�)rI)rQrrNrC�walktree)�classes�children�parentrSr�r r rr��s r�FcCs�i}g}xn|D]f}|jrbxZ|jD]<}||kr4g||<|||krN||j|�|r ||kr Pq Wq||kr|j|�qWx|D]}||kr~|j|�q~Wt||d�S)N)rCrNr�)r��uniquer��rootsr�rr r r� getclasstree�s"      r� Argumentszargs, varargs, varkwcCs t|�\}}}}t||||�S)N)� _getfullargsr)�co�args�varargs� kwonlyargs�varkwr r r�getargs�sr c Cs�t|�stdj|���|j}|j}|j}t|d|��}t||||��}d}||7}d}|jt@rx|j|}|d}d}|jt @r�|j|}||||fS)Nz{!r} is not a code objectrr) r6r�ru� co_argcount� co_varnames�co_kwonlyargcountr�r"� CO_VARARGS�CO_VARKEYWORDS) r�nargsrUZnkwargsrr �steprr r r rrs"    r�ArgSpeczargs varargs keywords defaultscCsDtjdtdd�t|�\}}}}}}}|s.|r6td��t||||�S)Nzhinspect.getargspec() is deprecated since Python 3.0, use inspect.signature() or inspect.getfullargspec()r�)� stacklevelzdFunction has keyword-only parameters or annotations, use getfullargspec() API which can support them)�warnings�warn�DeprecationWarning�getfullargspecrtr)rvrrr �defaultsr �kwonlydefaults�annr r r� getargspec s  r� FullArgSpeczGargs, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotationsc Cs`yt|ddtd�}Wn,tk r@}ztd�|�WYdd}~XnXg}d}d}g}f}i}f}i} |j|jk rx|j|d<x�|jj�D]�} | j} | j } | t kr�|j | �nv| t kr�|j | �| j | jk r�|| j f7}nJ| tkr�| }n<| tk�r|j | �| j | jk �r| j | | <n| tk�r| }| j| jk r�| j|| <q�W| �sBd} |�sLd}t|||||| |�S)NF)�follow_wrapper_chains�skip_bound_arg�sigclszunsupported callable�return)�_signature_from_callable� Signaturerbr��return_annotation�empty� parameters�valuesrirD�_POSITIONAL_ONLYrN�_POSITIONAL_OR_KEYWORD�default�_VAR_POSITIONAL� _KEYWORD_ONLY� _VAR_KEYWORD� annotationr) rv�sig�exrrr r r� annotations� kwdefaults�paramrirDr r rrAsT            r�ArgInfozargs varargs keywords localscCs t|j�\}}}t||||j�S)N)r r�r4�f_locals)�framerrr r r r� getargvalues�sr7cCsVt|dd�dkr t|�jdd�St|t�rN|jd|fkr>|jS|jd|jSt|�S)Nr�Ztypingztyping.r�r�r})rB�repr�replacer rr�r�)r.Z base_moduler r r�formatannotation�s r:cst|dd���fdd�}|S)Nr�cs t|��S)N)r:)r.)r�r r�_formatannotation�sz5formatannotationrelativeto.<locals>._formatannotation)rB)r r;r )r�r�formatannotationrelativeto�s  r<cCsd|S)N�*r )rDr r rrH�srHcCsd|S)Nz**r )rDr r rrH�scCs dt|�S)N�=)r8)rEr r rrH�scCsd|S)Nz -> r )�textr r rrH�sc s(���fdd�} g}|r(t|�t|�}xFt|�D]:\}}| |�}|rb||krb|| |||�}|j|�q2W|dk r�|j|| |���n|r�|jd�|r�x:|D]2}| |�}|r�||kr�|| ||�7}|j|�q�W|dk r�|j| | |���ddj|�d}d�k�r$|| ��d��7}|S)Ncs(�|�}|�kr$|d��|�7}|S)Nz: r )�argrf)r1r:� formatargr r�formatargandannotation�sz-formatargspec.<locals>.formatargandannotationr=r�z, r�r!)rs� enumeraterNr�)rrr rr rr1rA� formatvarargs� formatvarkw� formatvalueZ formatreturnsr:rB�specsZ firstdefaultr�r@�specZ kwonlyargrfr )r1r:rAr� formatargspec�s2     rIcCsd|S)Nr=r )rDr r rrH�scCsd|S)Nz**r )rDr r rrH�scCs dt|�S)Nr>)r8)rEr r rrH�sc Cs�|||fdd�}g} x&tt|��D]} | j||| ��q"W|rZ| j||�|||��|rx| j||�|||��ddj| �dS)NcSs||�|||�S)Nr )rD�localsrArFr r r�convert�sz formatargvalues.<locals>.convertr�z, r�)r�rsrNr�) rrr rJrArDrErFrKrGr�r r r�formatargvalues�s rLcs��fdd�|D�}t|�}|dkr,|d}n>|dkr@dj|�}n*dj|dd��}|dd�=dj|�|}td |||rzd nd |dkr�d nd |f��dS)Ncsg|]}|�krt|��qSr )r8)rZrD)r'r rr\�sz&_missing_arguments.<locals>.<listcomp>rrr�z {} and {}z , {} and {}z, z*%s() missing %i required %s argument%s: %s� positionalz keyword-onlyr�r����rN)rsrur�r�)�f_nameZargnames�posr'rU�missingr��tailr )r'r�_missing_arguments�s    rSc s�t|�|}t�fdd�|D��}|r:|dk} d|f} n2|rTd} d|t|�f} nt|�dk} tt|��} d} |r�d} | |dkr�d nd||dkr�d ndf} td || | r�d nd|| |dkr�| r�d nd f��dS) Ncsg|]}|�kr|�qSr r )rZr@)r'r rr\sz_too_many.<locals>.<listcomp>rz at least %dTz from %d to %dr�z7 positional argument%s (and %d keyword-only argument%s)r�z5%s() takes %s positional argument%s but %d%s %s givenZwasZwere)rsr�r�) rOrZkwonlyrZdefcountZgivenr'ZatleastZ kwonly_givenZpluralr/Z kwonly_sig�msgr )r'r� _too_many s$    rUcOs6|d}|dd�}t|�}|\}}}}} } } |j} i} t|�rV|jdk rV|jf|}t|�}t|�}|rrt|�nd}t||�}x t|�D]}||| ||<q�W|r�t||d��| |<t|| �}|r�i| |<xd|j �D]X\}}||k�r|�st d| |f��|| ||<q�|| k�r,t d| |f��|| |<q�W||k�r^| �r^t | || |||| �||k�r�|d||�}x&|D]}|| k�r~t | |d| ��q~Wx8t |||d��D] \}}|| k�r�||| |<�q�Wd}x>| D]6}|| k�r�| �r|| k�r| || |<n|d7}�q�W|�r2t | | d| �| S)Nrrz*%s() got an unexpected keyword argument %rz(%s() got multiple values for argument %rTF)rr�rr�rsr�r�rarKrAr�rUrSrC)Zfunc_and_positionalZnamedrvrMrHrrr rr rrrOZ arg2valueZnum_posZnum_argsZ num_defaults�nr�Zpossible_kwargs�kwrEZreqr@rQ�kwargr r r� getcallargs!sd                 rY� ClosureVarsz"nonlocals globals builtins unboundc Cst|�r|j}t|�s$tdj|���|j}|jdkr:i}ndd�t|j|j�D�}|j }|j dt j �}t |�rt|j }i}i}t�}xn|jD]d}|dkr�q�y||||<Wq�tk r�y||||<Wntk r�|j|�YnXYq�Xq�Wt||||�S) Nz'{!r}' is not a Python functioncSsi|]\}}|j|�qSr )� cell_contents)rZ�varZcellr r r� <dictcomp>vsz"getclosurevars.<locals>.<dictcomp>� __builtins__�None�True�False)r_r`ra)rr�rr�rur!� __closure__�zip� co_freevars� __globals__r�r�r@rrK�co_names�KeyErrorrPrZ) rv�codeZ nonlocal_varsZ global_nsZ builtin_nsZ global_varsZ builtin_varsZ unbound_namesrDr r r�getclosurevarsas8   ri� Tracebackz+filename lineno function code_context indexcCs�t|�r|j}|j}n|j}t|�s2tdj|���t|�p@t|�}|dkr�|d|d}yt |�\}}Wnt k r�d}}Yq�Xt dt |t |�|��}||||�}|d|}nd}}t|||jj||�S)Nz'{!r} is not a frame or traceback objectrrr�)r2� tb_linenor��f_linenor4r�rur�r�r�r��maxr�rsrjr�r�)r6�context�linenor�r�r�r��indexr r r� getframeinfo�s$rqcCs|jS)N)rl)r6r r r� getlineno�srr� FrameInfor6cCs6g}x,|r0|ft||�}|jt|��|j}qW|S)N)rqrNrs�f_back)r6rn� framelist� frameinfor r r�getouterframes�s  rwcCs8g}x.|r2|jft||�}|jt|��|j}qW|S)N)r�rqrNrs�tb_next)�tbrnrurvr r r�getinnerframes�s  rzcCsttd�rtjd�SdS)N� _getframer)rrqr{r r r r� currentframe�sr|cCsttjd�|�S)Nr)rwrqr{)rnr r r�stack�sr}cCsttj�d|�S)Nr�)rzrq�exc_info)rnr r r�trace�srcCstjdj|�S)Nrk)rr@r)�klassr r r�_static_getmro�sr�c Cs8i}ytj|d�}Wntk r(YnXtj||t�S)Nr@)r �__getattribute__rO�dictr�� _sentinel)rh�attrZ instance_dictr r r�_check_instance�s r�c CsFx@t|�D]4}tt|��tkr y |j|Stk r<Yq Xq WtS)N)r��_shadowed_dictrr�r@rg)r�r��entryr r r� _check_class�s  r�c Cs&y t|�Wntk r dSXdS)NFT)r�r�)rhr r r�_is_type�s  r�c Csntjd}x^t|�D]R}y|j|�d}Wntk r>YqXt|�tjko`|jdko`|j|ks|SqWt S)Nr@) rr@r�rrgr rr�r]r�)r�� dict_attrr�Z class_dictr r rr�s   r�c Cst}t|�s>t|�}t|�}|tks2t|�tjkrBt||�}n|}t||�}|tk r�|tk r�tt|�d�tk r�tt|�d�tk r�|S|tk r�|S|tk r�|S||kr�xDtt|��D]4}tt|��tkr�y |j |St k r�Yq�Xq�W|tk r�|St |��dS)Nrr) r�r�rr�r rr�r�r�r@rgrO)rhr�r*Zinstance_resultr�r�Z klass_resultr�r r r�getattr_statics6     r�� GEN_CREATED� GEN_RUNNING� GEN_SUSPENDED� GEN_CLOSEDcCs,|jr tS|jdkrtS|jjdkr(tStS)Nrr~)� gi_runningr��gi_framer��f_lastir�r�)� generatorr r r�getgeneratorstateGs   r�cCs:t|�stdj|���t|dd�}|dk r2|jjSiSdS)Nz '{!r}' is not a Python generatorr�)r)r�rurBr�r5)r�r6r r r�getgeneratorlocalsYs  r�� CORO_CREATED� CORO_RUNNING�CORO_SUSPENDED� CORO_CLOSEDcCs,|jr tS|jdkrtS|jjdkr(tStS)Nrr~)� cr_runningr��cr_framer�r�r�r�)� coroutiner r r�getcoroutinestateqs   r�cCs"t|dd�}|dk r|jSiSdS)Nr�)rBr5)r�r6r r r�getcoroutinelocals�s r�� from_bytesc Cs6yt||�}Wntk r"dSXt|t�s2|SdS)N)rBrOr �_NonUserDefinedCallables)r[Z method_name�methr r r�"_signature_get_user_defined_method�s  r�cCs�|j}t|j��}|jpf}|jp$i}|r2||}y|j||�}Wn6tk rx}zdj|�} t| �|�WYdd}~XnXd} �x |j�D�]�\} } y|j | } Wnt k r�YnlX| j t kr�|j | �q�| j tk�r| |kr�d} | j| d�|| <n|j | j�q�| j tk�r"| j| d�|| <| r�| j tk�rV|| jtd�}||| <|j| �q�| j ttfk�rr|j| �q�| j tkr�|j | j�q�W|j|j�d�S)Nz+partial object {!r} has incorrect argumentsFT)r*)ri)r&)r&rrAr�keywords� bind_partialr�rurt� argumentsrgrir(r�r)r9rDr,� move_to_endr-r+r')� wrapped_sig�partialZ extra_argsZ old_params� new_paramsZ partial_argsZpartial_keywordsZbar0rTZtransform_to_kwonly� param_namer3Z arg_valueZ new_paramr r r�_signature_get_partial�sL              r�cCsnt|jj��}| s&|djttfkr.td��|dj}|ttfkrR|dd�}n|t k rbtd��|j |d�S)Nrzinvalid method signaturerzinvalid argument type)r&) rar&r'rir-r,rtr)r(r+r9)r/�paramsrir r r�_signature_bound_method�s  r�cCs&t|�p$t|�p$t|t�p$|ttfkS)N)r8rr r�rr )rhr r r�_signature_is_builtins r�cCs�t|� st|�rdSt|dd�}t|dd�}t|dt�}t|dt�}t|dd�}t|tj�o�t|t�o�|dkszt|t�o�|dks�t|t �o�t|t �S)NFr�r!� __defaults__�__kwdefaults__�__annotations__) �callablerrB�_voidr r r5r�rar�)rhrDrhrr2r1r r r�_signature_is_functionlike!s       r�cCs<|jd�}|dkr|jd�}|jd�}|jd�}|d|�S)N�,rr��:r>r�r~)�find)rHrPZcposr r r�_signature_get_bound_param:s    r�cCs$|s|ddfSd}d}dd�|jd�D�}t|�j}tj|�}d}d}g}|j} d} tj} tj} t|�} x�|D]�} | j | j }}|| kr�|dkr�|r�d}qnd}| d7} qn|d kr�d}| d}qn|| kr�|d kr�| }qn|r�d}|| ko�|d ks�| d �| |�|dkrn| d �qnWdj |�}|||fS)NcSsg|]}|jd��qS)�ascii)�encode)rZ�lr r rr\dsz6_signature_strip_non_python_syntax.<locals>.<listcomp>r�Frr�Tr�/�$r�z, � r�) r�r�r�r�rNr��OP� ERRORTOKEN�nextr�stringr�)� signature�self_parameter�last_positional_onlyr�r�Z token_streamZ delayed_commaZskip_next_commar?rPZcurrent_parameterr�r��trr��clean_signaturer r r�"_signature_strip_non_python_syntaxQsP       r�TcsV|j�t|�\}}}d|d}ytj|�}Wntk rFd}YnXt|tj�sbtdj|���|j d} g��j �t ��d}i�t |dd�} | r�t jj| d�}|r�|j�t jj��dd����fdd �� G� fd d �d tj���f�������fd d � } t| jj�} t| jj�} tj| | dd�}|dk �r8�j�n�j�x<ttt|���D](\}\}}| ||�||k�rP�j��qPW| jj�r��j�| | jj���j�x*t| jj | jj!�D]\}}| ||��q�W| jj"�r�j#�| | jj"��|dk �rHt |dd�}|dk }t$|�}|�r.|�s"|�r.�j%d�n�dj&�jd�} | �d<|�|j d�S)Nzdef fooz: passz"{!r} builtin has invalid signaturerr�cSs|jdkrtd��|jS)Nz'Annotations are not currently supported)r.rtr@)�noder r r� parse_name�s z&_signature_fromstr.<locals>.parse_namecs�yt|��}Wn>tk rLyt|��}Wntk rFt��YnXYnXt|t�rbtj|�St|ttf�rztj |�St|t �r�tj |�S|dkr�tj |�St��dS)NTF)TFN) �eval� NameError� RuntimeErrorr r��astZStr�int�floatZNum�bytesZBytesZ NameConstant)r�rE)� module_dict�sys_module_dictr r� wrap_value�s       z&_signature_fromstr.<locals>.wrap_valuecs$eZdZ�fdd�Z�fdd�ZdS)z,_signature_fromstr.<locals>.RewriteSymbolicscs`g}|}x"t|tj�r*|j|j�|j}q Wt|tj�s>t��|j|j�dj t |��}�|�S)Nr}) r r�rYrNr�rE�Namer�rpr��reversed)r�r��arVrE)r�r r�visit_Attribute�s    z<_signature_fromstr.<locals>.RewriteSymbolics.visit_Attributecst|jtj�st���|j�S)N)r Zctxr�ZLoadrtrp)r�r�)r�r r� visit_Name�sz7_signature_fromstr.<locals>.RewriteSymbolics.visit_NameN)r�r�r�r�r�r )r�r r�RewriteSymbolics�s r�cs��|�}|�krdS|rp|tk rpy��j|�}tj|�}Wntk rR�}YnX|�kr`dS|�k rl|n|}�j�|�|�d��dS)N)r*r.)�_emptyZvisitr�Z literal_evalrtrN)Z name_nodeZ default_noder*rD�o)� Parameterr�r%�invalidrir&r�r r�p�s   z_signature_fromstr.<locals>.p)� fillvaluer�)ri)r$)'�_parameter_clsr�r��parse� SyntaxErrorr ZModulertruZbodyr%r rBrqrr�r@�copyZNodeTransformerr�rr� itertools� zip_longest�POSITIONAL_ONLY�POSITIONAL_OR_KEYWORDrCr�Zvararg�VAR_POSITIONAL� KEYWORD_ONLYrcr Z kw_defaultsrX� VAR_KEYWORDrr�r9)r[rhr�rr�r�r�Zprogramr�rnZ module_namer�rrr�r�rDr*�_selfZ self_isboundZ self_ismoduler ) r�r�r%r�rir�r&r�r�r�r�_signature_fromstr�sj                 r�cCsBt|�stdj|���t|dd�}|s4tdj|���t||||�S)Nz%{!r} is not a Python builtin function�__text_signature__z#no signature found for builtin {!r})r�r�rurBrtr�)r[rvrr�r r r�_signature_from_builtin&s r�cCs�d}t|�s(t|�rd}ntdj|���|j}|j}|j}|j}t|d|��}|j }||||�} |j } |j } |j } | r�t | �} nd} g}|| }x4|d|�D]$}| j|t�}|j|||td��q�WxBt||d��D].\}}| j|t�}|j|||t| |d��q�W|jt@�rH|||}| j|t�}|j|||td��xJ| D]B}t}| dk �rl| j|t�}| j|t�}|j|||t|d���qNW|jt@�r�||}|jt@�r�|d7}||}| j|t�}|j|||td��||| jdt�|d �S) NFTz{!r} is not a Python functionr)r.ri)r.rir*rr!)r$�__validate_parameters__)rr�r�rur�r!r r rarr�r�r�rsr�r�rNr)rCr"rr+r,rr-)r[rvZis_duck_functionr�Z func_codeZ pos_countZ arg_namesrMZkeyword_only_countZ keyword_onlyr1rr2Zpos_default_countr&Znon_default_countrDr.�offsetr*rpr r r�_signature_from_function6sj                     r�)rrc!Cs�t|�stdj|���t|tj�rDt|j|||d�}|r@t|�S|S|rtt |dd�d�}t|tj�rtt||||d�Sy |j }Wnt k r�Yn&X|dk r�t|t �s�tdj|���|Sy |j }Wnt k r�YnvXt|tj��rLt|j|||d�}t||d�}t|jj��d}|jtjk�r(|St|jj��}|f|} |j| d�St|��s`t|��rjt||�St|��r�t|||d �St|tj��r�t|j|||d�}t||�Sd}t|t��r�t t|�d �} | dk �r�t| |||d�}nJt |d �} | dk �r t| |||d�}n$t |d �} | dk �r0t| |||d�}|dk�r:xL|j!dd�D]:} y | j"}Wnt k �rnYnX|�rJt#|||�S�qJWt|j!k�r:|j$t%j$k�r�|j&t%j&k�r�t't%�St(dj|���nrt|t)��s:t t|�d �} | dk �r:yt| |||d�}Wn8t(k �r8}zdj|�}t(|�|�WYdd}~XnX|dk �rV|�rRt|�S|St|tj*��rvdj|�}t(|��t(dj|���dS)Nz{!r} is not a callable object)rrr cSs t|d�S)N� __signature__)r)rnr r rrH�sz*_signature_from_callable.<locals>.<lambda>)rlz1unexpected object {!r} in __signature__ attributer)r&)r�__call__�__new__r�rz(no signature found for builtin type {!r}zno signature found for {!r}z,no signature found for builtin function {!r}z+callable {!r} is not supported by signature)Nr~)+r�r�rur r rr"r�r�rxr�rOr#�_partialmethod� functools� partialmethodrvr�rar&r'rir�r�r9rr�r�r�r�r�rr�rkr�r�r�r r�r�rtr�r7)rhrrr r/r�r�Zfirst_wrapped_paramZ sig_paramsr�Zcall�newZinitrFZtext_sigr0rTr r rr"�s�                             r"c@s eZdZdS)r�N)r�r�r�r r r rr�P sr�c@s eZdZdS)r�N)r�r�r�r r r rr�T sr�c@s(eZdZdZdZdZdZdZdd�ZdS) �_ParameterKindrrr���cCs|jS)N)�_name_)r�r r r�__str___ sz_ParameterKind.__str__N) r�r�r�r�r�r�r�r�r�r r r rr�X s r�zpositional-onlyzpositional or keywordzvariadic positionalz keyword-onlyzvariadic keywordc@s�eZdZd ZeZeZeZ e Z e Z eZeed�dd�Zdd �Zd d �Zed d ��Zedd��Zedd��Zedd��Zeeeed�dd�Zdd�Zdd�Zdd�Zdd�ZdS)!r��_name�_kind�_default� _annotation)r*r.c Cs"yt|�|_Wn$tk r2td|�d���YnX|tk rf|jttfkrfd}|jt|j��}t|��||_||_ |tkr�td��t |t �s�djt |�j �}t|��|ddko�|dd�j��r|jtkr�d }|jt|j��}t|��t|_d j|dd��}|j��std j|���||_dS) Nzvalue z is not a valid Parameter.kindz({} parameters cannot have default valuesz*name is a required attribute for Parameterzname must be a str, not a {}rr}rzLimplicit arguments must be passed as positional or keyword arguments, not {}z implicit{}z"{!r} is not a valid parameter name)r�rrtr�r+r-ru�_get_paramkind_descrrrr r�rr�r��isdigitr)r(� isidentifierr)r�rDrir*r.rTr r rr�� s4   zParameter.__init__cCs t|�|j|jf|j|jd�fS)N)rr)rrrrr)r�r r r� __reduce__� s zParameter.__reduce__cCs|d|_|d|_dS)Nrr)rr)r��stater r r� __setstate__� s zParameter.__setstate__cCs|jS)N)r)r�r r rrD� szParameter.namecCs|jS)N)r)r�r r rr*� szParameter.defaultcCs|jS)N)r)r�r r rr.� szParameter.annotationcCs|jS)N)r)r�r r rri� szParameter.kind)rDrir.r*cCsL|tkr|j}|tkr|j}|tkr*|j}|tkr8|j}t|�||||d�S)N)r*r.)r�rrrrr)r�rDrir.r*r r rr9� szParameter.replacecCsj|j}|j}|jtk r(dj|t|j��}|jtk rDdj|t|j��}|tkrVd|}n|t krfd|}|S)Nz{}:{}z{}={}r=z**) rirrr�rur:rr8r+r-)r�ri� formattedr r rr�� s    zParameter.__str__cCsdj|jj|�S)Nz <{} "{}">)rur�r�)r�r r r�__repr__� szParameter.__repr__cCst|j|j|j|jf�S)N)�hashrDrir.r*)r�r r r�__hash__� szParameter.__hash__cCsJ||kr dSt|t�stS|j|jkoH|j|jkoH|j|jkoH|j|jkS)NT)r r��NotImplementedrrrr)r��otherr r r�__eq__ s    zParameter.__eq__N)rrrr)r�r�r�� __slots__r(r�r)r�r+r�r,r�r-r�r�r%r�rr r^rDr*r.rir�r9r�r r rr r r rr�t s((    r�c@sdeZdZdZdd�Zedd��Zedd ��Zed d ��Zd d �Z dd�Z dd�Z dd�Z dd�Z dS)�BoundArgumentsr�� _signature� __weakref__cCs||_||_dS)N)r�r)r�r�r�r r rr� szBoundArguments.__init__cCs|jS)N)r)r�r r rr�# szBoundArguments.signaturec Cs|g}xn|jjj�D]^\}}|jttfkr*Py|j|}Wntk rNPYqX|jtkrf|j |�q|j |�qWt |�S)N) rr&rArir-r,r�rgr+�extendrNra)r�rr�r3r@r r rr' s  zBoundArguments.argsc Cs�i}d}x�|jjj�D]x\}}|sF|jttfkr6d}n||jkrFd}q|sLqy|j|}Wntk rnYqX|jtkr�|j|�q|||<qW|S)NFT) rr&rArir-r,r�rg�update)r��kwargsZkwargs_startedr�r3r@r r rr> s&    zBoundArguments.kwargsc Cs�|j}g}x�|jjj�D]v\}}y|j|||f�Wqtk r�|jtk rX|j}n"|jt krhf}n|jt krxi}nw|j||f�YqXqWt |�|_dS)N) r�rr&rArNrgr*r�rir+r-r)r�r�Z new_argumentsrDr3�valr r r�apply_defaults\ s    zBoundArguments.apply_defaultscCs2||kr dSt|t�stS|j|jko0|j|jkS)NT)r rrr�r�)r�rr r rrx s   zBoundArguments.__eq__cCs|d|_|d|_dS)Nrr�)rr�)r�rr r rr � s zBoundArguments.__setstate__cCs|j|jd�S)N)rr�)rr�)r�r r r� __getstate__� szBoundArguments.__getstate__cCsDg}x(|jj�D]\}}|jdj||��qWdj|jjdj|��S)Nz{}={!r}z <{} ({})>z, )r�rArNrur�r�r�)r�rr@rEr r rr � szBoundArguments.__repr__N)r�rr)r�r�r�rr�r^r�rrrrr rr r r r rr s   rc@s�eZdZd,ZeZeZeZ d-edd�dd�Z e dd ��Z e d d ��Z e dd �d d��Zedd��Zedd��Zeed�dd�Zdd�Zdd�Zdd�Zdd�dd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�ZdS).r#�_return_annotation� _parametersNT)r$r�c Cs�|dkrt�}n�|r�t�}t}d}x�t|�D]�\}}|j} |j} | |krjd} | jt|�t| ��} t| ��n| |krzd}| }| ttfkr�|j t kr�|r�d} t| ��nd}| |kr�dj| �} t| ��||| <q,Wntdd�|D��}t j |�|_ ||_dS)NFz7wrong parameter order: {} parameter before {} parameterz-non-default argument follows default argumentTzduplicate parameter name: {!r}css|]}|j|fVqdS)N)rD)rZr3r r rr�� sz%Signature.__init__.<locals>.<genexpr>)rr(rCrirDrurrtr)r*r�r �MappingProxyTyperr) r�r&r$r�r�Ztop_kindZ kind_defaults�idxr3rirDrTr r rr�� s>         zSignature.__init__cCstjdtdd�t||�S)Nz_inspect.Signature.from_function() is deprecated since Python 3.5, use Signature.from_callable()r�)r)rrrr�)r[rvr r r� from_function� s zSignature.from_functioncCstjdtdd�t||�S)Nz^inspect.Signature.from_builtin() is deprecated since Python 3.5, use Signature.from_callable()r�)r)rrrr�)r[rvr r r� from_builtin� s zSignature.from_builtin)�follow_wrappedcCst|||d�S)N)r r)r")r[rhr!r r r� from_callable� szSignature.from_callablecCs|jS)N)r)r�r r rr& szSignature.parameterscCs|jS)N)r)r�r r rr$ szSignature.return_annotation)r&r$cCs0|tkr|jj�}|tkr |j}t|�||d�S)N)r$)r�r&r'rr)r�r&r$r r rr9 s  zSignature.replacecCs8tdd�|jj�D��}dd�|jj�D�}|||jfS)Ncss|]}|jtkr|VqdS)N)rir,)rZr3r r rr� sz(Signature._hash_basis.<locals>.<genexpr>cSsi|]}|jtkr||j�qSr )rir,rD)rZr3r r rr] sz)Signature._hash_basis.<locals>.<dictcomp>)rar&r'r$)r�r�� kwo_paramsr r r� _hash_basis szSignature._hash_basiscCs(|j�\}}}t|j��}t|||f�S)N)r$� frozensetr'r )r�r�r#r$r r rr ! s zSignature.__hash__cCs*||kr dSt|t�stS|j�|j�kS)NT)r r#rr$)r�rr r rr& s  zSignature.__eq__F)r�cCs�t�}t|jj��}f}t|�}�xxy t|�}Wn�tk r�y t|�} Wntk rbPYn�X| jtkrrPn�| j|kr�| jt kr�d} | j | jd�} t | �d�| f}PnH| jt ks�| j tk r�| f}Pn*|r�| f}Pnd} | j | jd�} t | �d�Yq$Xy t|�} Wn tk �r&t d�d�Yq$X| jt tfk�rBt d�d�| jtk�rn|g} | j|�t| �|| j<P| j|k�r�t dj | jd��d�||| j<q$Wd} x�tj||�D]�} | jt k�r�| } �q�| jtk�r֐q�| j} y|j| �}WnHtk �r2| �r.| jtk�r.| j tk�r.t dj | d��d�Yn(X| jt k�rRt dj | jd���||| <�q�W|�r�| dk �r|||| j<nt dj tt|��d���|j||�S)NzA{arg!r} parameter is positional only, but was passed as a keyword)r@z$missing a required argument: {arg!r}ztoo many positional argumentsz$multiple values for argument {arg!r}z*got an unexpected keyword argument {arg!r})rr�r&r'r�� StopIterationrir+rDr(rur�r-r*r�r,rrar��chainr�rg�_bound_arguments_cls)r�rrr�r�r&Z parameters_exZarg_valsZarg_valr3rTr'Z kwargs_paramr�r r r�_bind- s�                   zSignature._bindcOs|dj|dd�|�S)Nrr)r))rrr r r�bind� szSignature.bindcOs|dj|dd�|dd�S)NrrT)r�)r))rrr r rr�� szSignature.bind_partialcCs t|�t|jj��fd|jifS)Nr)rrarr'r)r�r r rr� szSignature.__reduce__cCs|d|_dS)Nr)r)r�rr r rr � szSignature.__setstate__cCsdj|jj|�S)Nz<{} {}>)rur�r�)r�r r rr � szSignature.__repr__c Cs�g}d}d}xr|jj�D]d}t|�}|j}|tkr8d}n|rJ|jd�d}|tkrXd}n|tkrr|rr|jd�d}|j|�qW|r�|jd�djdj |��}|j t k r�t |j �}|dj|�7}|S)NFTr�r=z({})z, z -> {}) r&r'r�rir(rNr+r,rur�r$r�r:) r�rfZrender_pos_only_separatorZrender_kw_only_separatorr3r riZrenderedZannor r rr�� s0      zSignature.__str__)rr)N)r�r�r�rr�r�rr(r�r%r�rerr r"r^r&r$r�r9r$r rr)r*r�rr r r�r r r rr#� s06    r#)r!cCstj||d�S)N)r!)r#r")rhr!r r rr�� sr�cCs�ddl}ddl}|j�}|jddd�|jddddd �|j�}|j}|jd �\}}}y|j|�}} WnLtk r�} z0d j |t | �j | �} t | t jd �td �WYdd} ~ XnX|r�|jd�} | }x| D]} t|| �}q�W| j t jk�rt dt jd �td�|j�r�t dj |��t dj t| ���t dj | j��|| k�rxt dj t| j���t| d��r�t dj | j��n6yt|�\}}Wntk �r�YnXt dj |��t d�n t t|��dS)Nrr zCThe object to be analysed. It supports the 'module:qualname' syntax)�helpz-dz --details� store_truez9Display info about the module rather than its source code)�actionr+r�zFailed to import {} ({}: {}))r�r�r}z#Can't get info for builtin modules.rz Target: {}z Origin: {}z Cached: {}z Loader: {}�__path__zSubmodule search path: {}zLine: {}r�)�argparser��ArgumentParser� add_argument� parse_argsr � partition� import_modulerbrurr��printrq�stderr�exitr�rB�builtin_module_namesZdetailsr�� __cached__r8r�rr.r�r�)r/r��parserr�targetZmod_nameZ has_attrsZattrsrhr�rgrT�parts�part�__ror r r�_main� sV     r?r�)rri)N)N)N)F)N)r)r6)r)r)r)r)T)T)�� __author__r.r�Zdis�collections.abcr-�enum�importlib.machineryr�r�r�r�r�rqr�r�r rr�r��operatorrrr�globalsZmod_dictZCOMPILER_FLAG_NAMESrArVrWr=rrrrrrrrrr#r$r%r'r)r+r0r2r4r6r8r9rGrXrYrjrJrxr|r�r�r�r�r�r�r�r�r�r�r�r�r�rbr�r�r�r�r�r�rrr rrrrrr4r7r:r<r�rIrLrSrUrYrZrirjrqrr�_fieldsrsrwrzr|r}rr r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�Z_WrapperDescriptor�allZ_MethodWrapperr�r@Z_ClassMethodWrapperr7r�r�r�r�r�r�r�r�r�r�r�r"r�r��IntEnumr�r�r(r�r)r�r+r�r,r�r-Z_PARAM_NAME_MAPPING� __getitem__rr�rr#r�r?r�r r r r�<module>sd            , t$ ;   .I-7      [   (> 5        0   L H  RH k: