PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  0Sc @s&dZdZdddddddd d g Zd d lZd d lmZmZdZdZdZ dZ idd 6dd6dd6dd6dd6Z id d6ed6ed6e d6e d6Z edZedZdZdZdddYZd ejfdYZd ddYZd S(sE ldapurl - handling of LDAP URLs as described in RFC 4516 See http://www.python-ldap.org/ for details. \$Id: ldapurl.py,v 1.65 2014/03/12 23:11:26 stroeder Exp $ Python compability note: This module only works with Python 2.0+ since 1. string methods are used instead of module string and 2. list comprehensions are used. s2.4.15t SEARCH_SCOPEtSEARCH_SCOPE_STRtLDAP_SCOPE_BASEtLDAP_SCOPE_ONELEVELtLDAP_SCOPE_SUBTREEt isLDAPUrltLDAPUrlExtensiontLDAPUrlExtensionstLDAPUrliN(tquotetunquoteiiiittbasetonetsubt subordinatescCs7|j}|jdp6|jdp6|jdS(s* Returns 1 if s is a LDAP URL, 0 else sldap://sldaps://sldapi://(tlowert startswith(tsts_lower((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR4s cCs"t|jddjddS(s Returns URL encoding of string st,s%2Ct/s%2F(R treplace(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt ldapUrlEscape?scBsYeZdZd dd d dZdZdZdZdZdZ dZ RS( s Class for parsing and unparsing LDAP URL extensions as described in RFC 4516. Usable class attributes: critical Boolean integer marking the extension as critical extype Type of extension exvalue Value of extension icCs5||_||_||_|r1|j|ndS(N(tcriticaltextypetexvaluet_parse(tselft extensionStrRRR((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt__init__Rs    cCs|j}|s(d\|_|_dS|ddk|_|ddkr^|dj}ny"|jdd\|_|_Wn$tk r|d|_|_nXt|jj|_|jj|_dS(Nit!it=(NN(tstriptNoneRRRtsplitt ValueErrorR (Rt extension((s-/usr/lib64/python2.7/site-packages/ldapurl.pyRYs " cCsa|jdkr-dd|jdk|jfSdd|jdk|jt|jpUdfSdS(Ns%s%sRis%s%s=%sR (RR"RRR (R((s-/usr/lib64/python2.7/site-packages/ldapurl.pytunparseks cCs |jS(N(R&(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt__str__tscCs/d|jj|jjtt||jfS(Ns<%s.%s instance at %s: %s>(t __class__t __module__t__name__thextidt__dict__(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt__repr__ws   cCs4|j|jko3|j|jko3|j|jkS(N(RRR(Rtother((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt__eq__scCs|j| S(N(R0(RR/((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt__ne__sN( R*R)t__doc__R"RRR&R'R.R0R1(((s-/usr/lib64/python2.7/site-packages/ldapurl.pyRDs     cBsYeZdZd dZdZdZdZdZdZ dZ dZ RS( sE Models a collection of LDAP URL extensions as dictionary type cCsAtjj|x*|pijD]\}}|||(R(R)R*R+R,R8(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR.s   cCs|j|jkS(N(R8(RR/((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR0scCsFx?|jjdD](}|rt|}|||jR=R&(RR7((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR&sN( R*R)R2R"RR;R=R'R.R0RDR&(((s-/usr/lib64/python2.7/site-packages/ldapurl.pyRs      c BseZdZidd6dd6Zddddddddddd ZdZd Zd Zd Z d Z d Z ddddZ dZ dZdZdZdZRS(s Class for parsing and unparsing LDAP URLs as described in RFC 4516. Usable class attributes: urlscheme URL scheme (either ldap, ldaps or ldapi) hostport LDAP host (default '') dn String holding distinguished name (default '') attrs list of attribute types (default None) scope integer search scope for ldap-module filterstr String representation of LDAP Search Filters (see RFC 4515) extensions Dictionary used as extensions store who Maps automagically to bindname LDAP URL extension cred Maps automagically to X-BINDPW LDAP URL extension tbindnametwhosX-BINDPWtcredtldapR c Cs||_||_||_||_||_||_|pEti|_|dkrg|j |n| dkr| |_ n| dkr| |_ ndS(N( t urlschemethostporttdntattrstscopet filterstrRt extensionsR"RRFRG( RtldapUrlRIRJRKRLRMRNRORFRG((s-/usr/lib64/python2.7/site-packages/ldapurl.pyRs          cCs||j|jko{|j|jko{|j|jko{|j|jko{|j|jko{|j|jko{|j|jkS(N(RIRJRKRLRMRNRO(RR/((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR0scCs|j| S(N(R0(RR/((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR1sc Cst|stdn|jdd\}}|j|_|jdkratd|jn|jd}|jd }|d kr|d krt||_d |_d S|d kr|d ks||krt|| |_||d}nM|dkr?|d ks||kr?t|| |_||}n td |jd d}t |}|dkrt|dj|_n|dkr|drt|djjd|_ n|dkr |dj}yt ||_ Wq t k rtdt|q Xn|dkr`|dj} | sNd |_q`t| |_n|dkr|drt|_|jj|dqd |_nd S(sn parse a LDAP URL and set the class attributes urlscheme,host,dn,attrs,scope,filterstr,extensions s2Parameter ldap_url does not seem to be a LDAP URL.s://iRHtldapstldapis,LDAP URL contains unsupported URL scheme %s.Rt?iR Ns$Something completely weird happened!iiiRisJSearch scope must be either one of base, one or sub. LDAP URL contained %si(RHRQRR(RR$R#R!RItfindR RJRKtlenRLRRMtKeyErrortreprR"RNRRORD( Rtldap_urltschemetrestt slash_post qemark_post paramlistt paramlist_lenRMRN((s-/usr/lib64/python2.7/site-packages/ldapurl.pyRsT   $$    %        cCsGx@|jD]2}t||dkr t||||q q WdS(s Apply defaults to all class attributes which are None. defaults Dictionary containing a mapping from class attributes to default values N(R<tgetattrR"tsetattr(RtdefaultsR6((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt applyDefaults8scCs;|jdkr!t|j}n |j}d|j|fS(sE Returns LDAP URL suitable to be passed to ldap.initialize() RRs%s://%s(RIRRJ(RRJ((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt initializeUrlDs cCs|jdkrd}ndj|j}t|j}|jdkrOd}nt|j}t|j}|jdkrt|j }n |j }d|j|||||f}|j r|d|j j }n|S(s= Returns LDAP URL depending on class attributes set. R RRRs%s://%s/%s?%s?%s?%sRSN( RLR"R>RRMRNRRKRIRJROR&(Rt attrs_strt scope_strRNRKRJRX((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR&Os"     cCsT|dkr|j}n|dkr0d}n d|}d|||j|fS(s Returns a string with HTML link for this LDAP URL. urlPrefix Prefix before LDAP URL (e.g. for addressing another web-based client) hrefText link text/description hrefTarget string added as link target attribute R s target="%s"s%sN(R"R&(Rt urlPrefixthrefTextt hrefTargetttarget((s-/usr/lib64/python2.7/site-packages/ldapurl.pythtmlHREFjs    cCs |jS(N(R&(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR'scCs/d|jj|jjtt||jfS(Ns<%s.%s instance at %s: %s>(R(R)R*R+R,R-(R((s-/usr/lib64/python2.7/site-packages/ldapurl.pyR.s   cCs|jj|rp|j|}|jri|jj|ri|j|jdk rit|j|j}qdSntd|jj|f|S(Ns%s has no attribute %s( t attr2extypethas_keyRORR"R tAttributeErrorR(R*(RR9Rtresult((s-/usr/lib64/python2.7/site-packages/ldapurl.pyt __getattr__s  cCs|jj|ro|j|}|dkr;t||q||dkr|td|dt||j| s2  )    E6