+
    üÐj’   ã                   óæ   € R t ^ RIt^ RIHtHtHt ^ RIHtHt ^ RI	H
t
 ^ RIHt  ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R]4      t ! R R]4      tRtR tR tR t ! R R4      tR# )z¨
Support for resolving command-line strings that represent different
checkers available to cred.

Examples:
 - passwd:/etc/passwd
 - memory:admin:asdf:user:lkj
 - unix
N)ÚOptionalÚSequenceÚType)Ú	AttributeÚ	Interface)Ú
getPlugins)Úusagec                   ój   a € ] tR t^t o Rt]! R4      t]! R4      t]! R4      t]! R4      t	R t
RtV tR# )	ÚICheckerFactoryzŠ
A factory for objects which provide
L{twisted.cred.checkers.ICredentialsChecker}.

It's implemented by twistd plugins creating checkers.
z0A tag that identifies the authentication method.zmA detailed (potentially multi-line) description of precisely what functionality this CheckerFactory provides.z=A short (one-line) description of the argument string format.z@A list of credentials interfaces that this factory will support.c                ó   € R# )ze
Return an L{twisted.cred.checkers.ICredentialsChecker} provider using the supplied
argument string.
N© )Ú	argstrings   &Ú6/usr/lib/python3/dist-packages/twisted/cred/strcred.pyÚgenerateCheckerÚICheckerFactory.generateChecker2   s   ‚ ó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   ÚauthTypeÚauthHelpÚargStringFormatÚcredentialInterfacesr   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r
   r
      sO   ø‡ € ññ ÐKÓL€Háð	;ó€Hñ
  ØGó€Oñ %ØJóÐ÷ð r   r
   c                   ó   € ] tR t^9tRtRtR# )ÚStrcredExceptionz#
Base exception class for strcred.
r   N©r   r   r   r   r   r   r   r   r   r    r    9   s   † õr   r    c                   ó   € ] tR t^?tRtRtR# )ÚInvalidAuthTypezj
Raised when a user provides an invalid identifier for the
authentication plugin (known as the authType).
r   Nr!   r   r   r   r#   r#   ?   ó   † õr   r#   c                   ó   € ] tR t^FtRtRtR# )ÚInvalidAuthArgumentStringz`
Raised by an authentication plugin when the argument string
provided is formatted incorrectly.
r   Nr!   r   r   r   r&   r&   F   r$   r   r&   c                   ó   € ] tR t^MtRtRtR# )ÚUnsupportedInterfacesz‡
Raised when an application is given a checker to use that does not
provide any of the application's supported credentials interfaces.
r   Nr!   r   r   r   r(   r(   M   r$   r   r(   z<WARNING: This authType is not supported by this application.c                 ó    € \        \        4      # )z5
Find all objects that implement L{ICheckerFactory}.
)r   r
   r   r   r   ÚfindCheckerFactoriesr*   Y   s   € ô ”oÓ&Ð&r   c                ód   € \        4        F  pVP                  V 8X  g   K  Vu # 	  \        V 4      h)zB
Find the first checker factory that supports the given authType.
)r*   r   r#   )r   Úfactorys   & r   ÚfindCheckerFactoryr-   `   s1   € ô (Ö)ˆØ×Ñ˜xÖ'ØŠNñ *ô ˜(Ó
#Ð#r   c                óv   € RV 9   d   V P                  R^4      w  rMT pRp\        V4      P                  V4      # )z”
Returns an L{twisted.cred.checkers.ICredentialsChecker} based on the
contents of a descriptive string. Similar to
L{twisted.application.strports}.
Ú:Ú )Úsplitr-   r   )Údescriptionr   r   s   &  r   ÚmakeCheckerr3   j   sC   € ð ˆkÔØ)×/Ñ/°°QÓ7Ñˆ�)àˆØˆ	Ü˜hÓ'×7Ñ7¸	ÓBÐBr   c                   óv   a € ] tR t^xt o RtRt]P                  tR t	R t
R tR tR tR tR	 tV 3R
 ltRtV tR# )ÚAuthOptionMixina+  
Defines helper methods that can be added on to any
L{usage.Options} subclass that needs authentication.

This mixin implements three new options methods:

The opt_auth method (--auth) will write two new values to the
'self' dictionary: C{credInterfaces} (a dict of lists) and
C{credCheckers} (a list).

The opt_help_auth method (--help-auth) will search for all
available checker plugins and list them for the user; it will exit
when finished.

The opt_help_auth_type method (--help-auth-type) will display
detailed help for a particular checker plugin.

@cvar supportedInterfaces: An iterable object that returns
   credential interfaces which this application is able to support.

@cvar authOutput: A writeable object to which this options class
    will send all help-related output. Default: L{sys.stdout}
Nc                óJ   € V P                   RJ ;'       g    WP                   9   # )zB
Returns whether a particular credentials interface is supported.
N)ÚsupportedInterfaces)ÚselfÚ	interfaces   &&r   ÚsupportsInterfaceÚ!AuthOptionMixin.supportsInterface”   s&   € ð ×'Ñ'¨4Ð/×XÐX°9×@XÑ@XÑ3XÐXr   c                ó`   € VP                    F  pV P                  V4      '       g   K   R# 	  R# )zo
Returns whether a checker factory will provide at least one of
the credentials interfaces that we care about.
TF)r   r:   ©r8   r,   r9   s   && r   ÚsupportsCheckerFactoryÚ&AuthOptionMixin.supportsCheckerFactoryš   s-   € ð
 !×5Ô5ˆIØ×%Ñ% i×0Ô0Úñ 6ñ r   c                ó¶  € . pV P                   f   VP                  pM=VP                   F-  pV P                  V4      '       g   K  VP                  V4       K/  	  V'       g   \	        VP                  4      hRV 9  d   / V R&   RV 9  d   . V R&   V R,          P                  V4       V F+  pV R,          P                  V. 4      P                  V4       K-  	  R# )z=
Supply a supplied credentials checker to the Options class.
NÚcredInterfacesÚcredCheckers)r7   r   r:   Úappendr(   Ú
setdefault)r8   ÚcheckerÚ	supportedr9   s   &&  r   Ú
addCheckerÚAuthOptionMixin.addChecker¤   sÈ   € ð
 ˆ	Ø×#Ñ#Ò+Ø×4Ñ4‰Ià$×9Ô9�	Ø×)Ñ)¨)×4Ô4Ø×$Ñ$ YÖ/ñ :÷ Ü'¨×(DÑ(DÓEÐEà 4Ô'Ø%'ˆDÐ!Ñ"Ø Ô%Ø#%ˆD�Ñ Øˆ^Õ×#Ñ# GÔ,Û"ˆIØÐ!Õ"×-Ñ-¨i¸Ó<×CÑCÀGÖLó #r   c                óŒ  €  V P                  \        V4      4       R#   \         d4   p\        P                  ! RTP
                  ^ ,          ,          4      hRp?i\         d4   p\        P                  ! RTP
                  ^ ,          ,          4      hRp?i\         d#   p\        P                  ! RT,          4      hRp?ii ; i)z2
Specify an authentication method for the server.
zAuth plugin not supported: %sNzAuth plugin not recognized: %szUnexpected error: %s)rG   r3   r(   r   Ú
UsageErrorÚargsr#   Ú	Exception)r8   r2   Úes   && r   Úopt_authÚAuthOptionMixin.opt_auth»   s‘   € ð	?Ø�O‰OœK¨Ó4Ö5øÜ$ô 	PÜ×"Ò"Ð#BÀQÇVÁVÈAÅYÕ#NÓOÐOûÜô 	QÜ×"Ò"Ð#CÀaÇfÁfÈQÅiÕ#OÓPÐPûÜô 	?Ü×"Ò"Ð#9¸AÕ#=Ó>Ð>ûð	?ús8   ‚ žC©.AÁCÁ$CÁ%.BÂCÂ CÂ!B>Â>Cc              #  ó’   "  € \        4        F4  pVP                   F!  pV P                  V4      '       g   K  Vx €  K2  	  K6  	  R# 5i)zt
Return a list of which authTypes will be displayed by --help-auth.
This makes it a lot easier to test this module.
N)r*   r   r:   r=   s   &  r   Ú_checkerFactoriesForOptHelpAuthÚ/AuthOptionMixin._checkerFactoriesForOptHelpAuthÈ   s=   é € ô
 ,Ö-ˆGØ$×9Ô9�	Ø×)Ñ)¨)×4Ô4Ø!’MÚó :ó .ùs
   ‚1A¸Ac                óº  € V P                   P                  R4       V P                   P                  R4       V P                   P                  R4       ^ pV P                  4        F4  p\        VP                  4      V8”  g   K  \        VP                  4      pK6  	  RV,          pV P                   P                  VR,          4       V P                   P                  VR,          4       V P                  4        F:  pV P                   P                  W2P                  VP
                  3,          4       K<  	  V P                   P                  R4       \        ^ 4      h)z,
Show all authentication methods available.
z#Usage: --auth AuthType[:ArgString]
z-For detailed help: --help-auth-type AuthType
Ú
z  %%-%is	%%s
)ÚAuthTypezArgString format)z========z================)Ú
authOutputÚwriterQ   Úlenr   r   Ú
SystemExit)r8   ÚfirstLengthr,   ÚformatStrings   &   r   Úopt_help_authÚAuthOptionMixin.opt_help_authÓ   s  € ð 	�‰×ÑÐDÔEØ�‰×ÑÐNÔOØ�‰×Ñ˜dÔ#àˆØ×;Ñ;Ö=ˆGÜ�7×#Ñ#Ó$ {Ö2Ü! '×"2Ñ"2Ó3’ñ >ð )¨;Õ6ˆØ�‰×Ñ˜lÐ-MÕMÔNØ�‰×Ñ˜lÐ-MÕMÔNØ×;Ñ;Ö=ˆGØ�O‰O×!Ñ!Ø× 0Ñ 0°'×2IÑ2IÐJÕJöñ >ð 	�‰×Ñ˜dÔ#Ü˜‹mÐr   c                óþ  €  \        V4      pT P                  P                  RT,          4       T P                  P                  RTP                  ,          4       T P                  P                  R4       TP                  P                  4       P                  4        F3  pT P                  P                  RTP                  4       ,          4       K5  	  T P                  P                  R4       T P                  T4      '       gB   T P                  P                  R\        ,          4       T P                  P                  R4       \        ^ 4      h  \         d    \        P                  ! RT,          4      hi ; i)z1
Show help for a particular authentication type.
zInvalid auth type: %szUsage: --auth %s[:ArgString]
zArgString format: %s
rT   z  %s
)r-   r#   r   rJ   rV   rW   r   r   ÚstripÚ
splitlinesÚrstripr>   ÚnotSupportedWarningrY   )r8   r   ÚcfÚlines   &&  r   Úopt_help_auth_typeÚ"AuthOptionMixin.opt_help_auth_typeé   s  € ð	GÜ# HÓ-ˆBð 	�‰×ÑÐ>ÀÕIÔJØ�‰×ÑÐ6¸×9KÑ9KÕKÔLØ�‰×Ñ˜dÔ#Ø—K‘K×%Ñ%Ó'×2Ñ2Ö4ˆDØ�O‰O×!Ñ! (¨T¯[©[«]Õ":Ö;ñ 5à�‰×Ñ˜dÔ#Ø×*Ñ*¨2×.Ò.Ø�O‰O×!Ñ! (Ô-@Õ"@ÔAØ�O‰O×!Ñ! $Ô'Ü˜‹mÐøô ô 	GÜ×"Ò"Ð#:¸XÕ#EÓFÐFð	Gús   ‚E Å)E<c                óV   <€ V ^8„  d   Qh/ S[ S[S[S[,          ,          ,          ;R&   # )é   r7   )r   r   r   r   )Úformatr   s   "€r   Ú__annotate__ÚAuthOptionMixin.__annotate__x   s    ø‡ ‚ ñ2 "¡(©4±	­?Õ";Õ<ÑCò3 r   r   )r   r   r   r   r   r7   ÚsysÚstdoutrV   r:   r>   rG   rN   rQ   r\   re   Ú__annotate_func__r   r   r   s   @r   r5   r5   x   sJ   ø‡ € ñð0 @DÐØ—‘€JòYòòMò.?ò	òò,÷c ƒ r   r5   )r   rl   Útypingr   r   r   Úzope.interfacer   r   Útwisted.pluginr   Útwisted.pythonr   r
   rL   r    r#   r&   r(   rb   r*   r-   r3   r5   r   r   r   Ú<module>rs      s‚   ðñó ß +Ñ +ç /å %Ý  ô�iô ô<�yô ôÐ&ô ôÐ 0ô ôÐ,ô ð XÐ ò'ò$òC÷Bó Br   