Anons79 Mini Shell

Directory : /proc/self/root/lib/python2.7/site-packages/ansible/plugins/
Upload File :
Current File : //proc/self/root/lib/python2.7/site-packages/ansible/plugins/loader.pyc

�
�Udac	@`sddlmZmZmZeZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZddlmZddlmZmZmZddlmZddlmZdd	lmZdd
lmZddlmZm Z m!Z!m"Z"ddl#m$Z$m%Z%m&Z&dd
l'm(Z(ddl)m*Z*yddl+Z,e-Z.Wne/k
r}ddl.Z.nXe(�Z0d�Z1d�Z2e-e-d�Z3d�Z4dfd��YZ5de5fd��YZ6d�Z7d�Z8e7�a9e8�e5ddej:d�Z;e5ddej<ddd �Z=e5d!d"ej>d#�Z?e5d$d%ej@d&�ZAe5d'd(ejBd)d*id+d,6dd-�ZCe5d.d/d0d0�ZDe5d1d2ejEd3�ZFe5d1d4ejGd5�ZHe5d1d4ejGd5�ZIe5d6d7ejJd8dd9�ZKe6d:d;ejLd<�ZMe6d=d>ejNd?�ZOe5d@dAejPdBddC�ZQe5dDdEejRdFddG�ZSe5dHdIejTdJ�ZUe5dKdLejVdMddN�ZWe5dOdPejXdQddR�ZYe5dSdTejZdU�Z[e5dVdWej\dXddY�Z]e5dZd[ej^d\�Z_dS(]i(tabsolute_importtdivisiontprint_functionN(tdefaultdict(t	constants(tAnsibleError(tto_bytestto_textt	to_native(t
import_module(tstring_types(t	from_yaml(t
AnsibleLoader(tget_plugin_classtMODULE_CACHEt
PATH_CACHEtPLUGIN_PATH_CACHE(tAnsibleCollectionLoadertAnsibleFlatMapLoadertAnsibleCollectionRef(tDisplay(t
add_fragmentscC`s;gt�j�D]'\}}t|t�r||f^qS(N(tglobalstitemst
isinstancetPluginLoader(tnametobj((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytget_all_plugin_loaders'scC`s�t|dd�}tjj|�r�x�t�D]^\}}|jr.tjj|t|j��}tjj|�r�|jt|��q�q.q.Wnt	j
dt|��dS(s3 add any existing plugin dirs in the path provided terrorstsurrogate_or_strictsFIgnoring invalid path provided to plugin path: '%s' is not a directoryN(RtostpathtisdirRtsubdirtjoint
add_directoryRtdisplaytwarning(R tb_pathRRtplugin_path((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytadd_all_plugin_dirs+s	 cC`s�|s�d}|r�t|t�r�tjj|�}ytj|�}Wntk
r_d}nX|dkr�x3tj	�D]"}||j
kry|j}PqyqyWq�q�q�td��ntj|�}|s�td|��n|r�t
|d|�n|S(Ntshs;Either a shell type or a shell executable must be provided s.Could not find the shell plugin required (%s).t
executable(RR
RR tbasenametshell_loadertgett	ExceptiontNonetalltCOMPATIBLE_SHELLStSHELL_FAMILYRtsetattr(t
shell_typeR+tshell_filenametshell((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytget_shell_plugin8s*

	cC`sBttjtd|�}x!|D]}|j|dt�q!WdS(Ns	%s_loadertwith_subdir(tgetattrtsystmodulest__name__R$tTrue(twhich_loadertpathstloaderR ((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytadd_dirs_to_loaderYs
RcB`s
eZdZddd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ed�Zed	�Z
d
�Zed�Zd�Zd
eedd�Zd
eedd�Zeedd�Zdd�ZeZd�Zd�Zd�Zddd�Zd�ZRS(s�
    PluginLoader loads plugins from the configured plugin directories.

    It searches for plugins by iterating through the combined list of play basedirs, configured
    paths, and the python path.  The first match is used.
    cC`s|dkrin|}||_||_||_||_||_|rgt|t�rg|g}n|svg}n||_|t	kr�it	|<n|t
kr�dt
|<n|tkr�tt
�t|<ng|_t	||_t
||_t||_t�|_dS(N(R0t
class_namet
base_classtpackageR"taliasesRtlisttconfigRRRRtdictt_extra_dirst
_module_cachet_pathst_plugin_path_cachetsett_searched_paths(tselfRCRERHR"RFtrequired_base_class((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt__init__hs,							

	


cC`s�tjrd|_niit|j<dt|j<tt�t	|j<t|j|_
t|j|_t	|j|_t�|_
dS(N(tCtOLD_PLUGIN_CACHE_CLEARINGR0RLRRCRRRIRRKRMRNRO(RP((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt
_clear_caches�s	

cC`s�|jd�}|jd�}|jd�}|jd�}|jd�}|jd�}|jd�t|<|jd�t|<|j||||||�|jd	g�|_|jd
t��|_dS(s
        Deserializer.
        RCRERHR"RFRDRRRJRON(R.RRRRRJRNRO(RPtdataRCRERHR"RFRD((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt__setstate__�scC`sitd|jd|jd|jd|jd|jd|jd|jd|jd	t	|jd
t
|j�
S(s
        Serializer.
        RCRDRERHR"RFRJRORR(RIRCRDRERHR"RFRJRORR(RP((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt__getstate__�s								
cC`sCg}x*|D]"}||kr
|j|�q
q
Wtjj|�S(s; Returns a string suitable for printing of the search path (tappendRtpathsepR#(RPR@tretti((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytformat_paths�s

cC`s|j|jdt��S(Ntsubdirs(R]t
_get_pathstFalse(RP((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytprint_paths�scC`s|g}|j|�xbtj|dt�D]K\}}}d|kr)x-|D]"}|jtjj||��qKWq)q)W|S(Ntfollowlinkss__init__.py(RYRtwalkR>R R#(RPtdirtresultstrootR^tfilestx((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_all_directories�s
%
'cC`s�|js
gSt|d�s|t|j�}|jjd�d}x|D]}t||�}qHWtjj|j�|_	n|r�|j
|j	�S|j	gS(s# Gets the path of a Python package tpackage_patht.i(REthasattrt
__import__tsplitR:RR tdirnamet__file__RjRi(RPR^tmtpartst
parent_mod((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_get_package_paths�s	
cC`s%|jdk	r|jS|j}|jdk	r�x�|jD]�}tjjtjj|��}|r�tjd|�tjd|�}x?|D]4}tjj	|�r�||kr�|j
|�q�q�Wn||kr9|j
|�q9q9Wn|j|jd|��|j
dd��||_|S(s1 Return a list of paths to search for plugins in s%s/*s%s/*/*R^tkeycS`s
|jd�S(Ns/windows(tendswith(tp((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt<lambda>sN(RLR0RJRHRR trealpatht
expandusertglobR!RYtextendRttsort(RPR^R[R tcontentstc((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR_�s"
$
	cC`s�|jr�t|j�}|tjkr�tt|dd�d|�j�}|rgt||dt�n|r�d|kr�t	|dt
�r�tjj|||d�t
jd||f�q�q�ndS(sf Reads plugin docs to find configuration setting definitions, to push to config manager for later use t
DOCUMENTATIONtt	file_nametfragment_loadertoptionss%Loaded config def from plugin (%s/%s)N(RCR
RStCONFIGURABLE_PLUGINSRR:tget_single_dataRR�RRIRHt+initialize_plugin_configuration_definitionsR%tdebug(RPRtmoduleR t	type_nametdstring((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_load_config_defss	$%cC`s�tjj|�}|dk	r|r?tjj||j�}n||jkr|jj|�|j�t	j
d|�qndS(s1 Adds an additional directory to the search path sAdded %s to loader search pathN(RR RyR0R#R"RJRYRUR%R�(RPt	directoryR9((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR$(s
cC`s�tj|j�}tj||�}t|jdd�}dj|j|�}|ra||7}ntj	j
|j�}|s�t|j�}nt|d�r�t
|jt�r�y&|jj|�}|t|�fSWq�tk
r�dSXntjj|j�}	tjj|	|�}
tjj|
�r9|t|
�fSddg}gtjtjj|	|�d�D]:}tjj|�rhtjj|�d|krh|^qh}
|
s�dSt|
�dkr�n|t|
d	�fS(
s�Search builtin paths to find a plugin. No external paths are searched,
        meaning plugins inside roles inside collections will be ignored.
        Rtstricts{0}.{1}t
__loader__s.pycs.pyos.*iiN(NN(NN(Rt legacy_plugin_dir_to_plugin_typeR"t	from_fqcrRtresourcetformattn_python_package_nameR;R<R.R	RlRR�Rt	find_fileRtIOErrorR0RR RoRpR#texistsR{tiglobtisfiletsplitexttlen(RPtfq_namet	extensiontplugin_typetacrt
n_resourcet	full_nametpkgt	file_pathtpkg_pathtn_resource_patht
ext_blacklisttftfound_files((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_find_fq_plugin6s4
!
cR�cC`s|j|||||�dS(s Find a plugin named name i(tfind_plugin_with_name(RPRtmod_typetignore_deprecatedt
check_aliasestcollection_list((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pytfind_pluginjsc	C`s�|t|jkrd
S|r&|}n|jr8d}nd}tj|�sS|r�|jd�r�d|ksv|r�|g}n%g|D]}dj||�^q�}g}	x�|D]�}
yk|
jd�r�|}|j|j	ddd�|||�}n|j
|
|�\}}|r$||fSWq�tk
rM}
|	jt
|
��q�Xq�W|	r�tjd	d
j|dj|	���ndS||j||||�fS(s Find a plugin named name s.pyR�tAnsibleRks{0}.{1}sansible.legacysansible.legacy.itmsgs)plugin lookup for {0} failed; errors: {1}s; N(NN(NN(t_PLUGIN_FILTERSRER0RCRt
is_valid_fqcrt
startswithR�t_find_plugin_legacytreplaceR�R/RYRR%R�R#(RPRR�R�R�R�tsuffixt
candidatesRRtcandidate_nameR�Rwtex((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR�ns4			%%
*(c
`s�|r�jj||�}n�j|}y||SWntk
rJnXx��fd��j�D�D]��tjd��y#�fd�tj��D�}Wn*t	k
r�}tj
dt|��nXx/d�|D�D]�tjj
��}t�fd�tjD��rq�ntjj|�}	|	d}
y|	d}Wntk
r`d	}nX|
�jd	kr���jd	|
<n|�jd	kr���jd	|<n|
�j|kr���j||
<n|�j|kr���j||<q�q�W�jj��y||SWqhtk
r0qhXqhW|jd
�s�d
|}||kr�|r�tjj||�r�tjd|jd
��n||SndS(
s�Search library and various *_plugins paths in order to find the file.
        This was behavior prior to the existence of collections.
        c3`s6|],}|�jkrtjj|�r|VqdS(N(RORR R!(t.0Rw(RP(s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pys	<genexpr>�ss	trying %sc3`s$|]}tjj�|�VqdS(N(RR R#(R�R�(R (s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pys	<genexpr>�ss Error accessing plugin paths: %scs`s7|]-}tjj|�r|jd�r|VqdS(s__init__.pyN(RR R�Rv(R�R�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pys	<genexpr>�sc3`s|]}�j|�VqdS(N(Rv(R�Rh(t	full_path(s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pys	<genexpr>�siiR�t_s�%s is kept for backwards compatibility but usage is discouraged. The module documentation details page may explain more about this rationale.N(RFR.RMtKeyErrorR_R%R�RtlistdirtOSErrorR&RR R,tanyRStBLACKLIST_EXTSR�t
IndexErrorROtaddR�tislinkt
deprecatedtlstripR0(
RPRR�R�R�t
pull_cachet
full_pathsteR�t	splitnamet	base_nameR�t
alias_name((R�R RPs:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR��sX

##




	cC`shy|j|d|�dk	SWnDtk
rc}t|t�rD�ntjdjt|���nXdS(s& Checks if a plugin named name exists R�shas_plugin error: {0}N(	R�R0R/RRR%R�R�R(RPRR�R�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt
has_plugin�scC`s|jd�r|}ndj|j|g�}|tjkrJtj|Stj���tjdt�t	dkr�tjj
t|�t|��}tjj|�}|jj|�|tj|<n?tt|�d��(}t	jt|�t|�|�}WdQXWdQX|S(Nsansible_collections.Rktignoretrb(R�R#RER;R<twarningstcatch_warningstsimplefiltertRuntimeWarningtimpR0t	importlibtutiltspec_from_file_locationRtmodule_from_specRAtexec_moduletopenRtload_source(RPRR R�tspecR�tmodule_file((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_load_module_source�s	
!-cC`s$t|d|�t|d|�dS(Nt_original_patht
_load_name(R4(RPRRR ((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_update_objectsc	O`s�t}|jdt�}|jdd�}||jkrI|j|}n|j|d|�\}}|dkrtdS||jkr�|j||�|j|<|j||j||�t}nt	|j||j
�}|jr=t|j
d|jg�}	yt	|	|j�}
Wntk
r&dSXt||
�s=dSn|j|j
||j|d|d|�|s�y|||�}Wq�tk
r�}d|jdkr�dS�q�Xn|j|||�|S(s9 instantiates a plugin of the given name using arguments t
class_onlyR�tfromlisttfound_in_cachetabstractiN(R>tpopR`R0RFR�RKR�R�R:RCRDRmREtAttributeErrort
issubclasst_display_plugin_loadROt	TypeErrortargsR�(RPRR�tkwargsR�R�R�R RR�tplugin_classR�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR.s>		
(
cC`s�tjr�d|tjj|�|f}t|�dkrVd||j|�f}n|sb|rxd|||f}ntj|�ndS(sd formats data to display debug info for plugin loading, also avoids processing unless really needed sLoading %s '%s' from %sis%s (searched paths: %s)s%%s (found_in_cache=%s, class_only=%s)N(	RSt
DEFAULT_DEBUGRR R,R�R]R%R�(RPRCRtsearched_pathsR R�R�R�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR�Hs	c
o`sQ|jdt�}|jdt�}|jdt�}|rQ|rQtd��ng}t}x9|j�D]+}|jtjtjj	|d���qjWt
�}	x�t|dtjj�D]�}
tjj
|
�d}tjj|�}|dks�|t|jkrq�n|r&||	kr&q�n|	j|�|rD|
Vq�n|
|jkr�y_|jdkr�djtt|
��|�}
n|}
|j|
|
�}|j|||
�Wn3tk
r�}tjd|
t|�f�q�nX||j|
<t}nyt|j|
|j�}Wn3tk
rP}tjd|
t|�f�q�nX|jr�t |jd
|jg�}yt||j�}Wntk
r�q�nXt!||�s�q�q�n|j"|j||j#|
d|d|�|s1y|||�}Wq1t$k
r-}tjd|
t|�f�q1Xn|j%|||
�|Vq�WdS(s�
        Iterate through all plugins of this type

        A plugin loader is initialized with a specific type.  This function is an iterator returning
        all of the plugins of that type to the caller.

        :kwarg path_only: If this is set to True, then we return the paths to where the plugins reside
            instead of an instance of the plugin.  This conflicts with class_only and both should
            not be set.
        :kwarg class_only: If this is set to True then we return the python class which implements
            a plugin rather than an instance of the plugin.  This conflicts with path_only and both
            should not be set.
        :kwarg _dedupe: By default, we only return one plugin per plugin name.  Deduplication happens
            in the same way as the :meth:`get` and :meth:`find_plugin` methods resolve which plugin
            should take precedence.  If this is set to False, then we return all of the plugins
            found, including those with duplicate names.  In the case of duplicates, the order in
            which they are returned is the one that would take precedence first, followed by the
            others  in decreasing precedence order.  This should only be used by subclasses which
            want to manage their own deduplication of the plugins.
        :*args: Any extra arguments are passed to each plugin when it is instantiated.
        :**kwargs: Any extra keyword arguments are passed to each plugin when it is instantiated.
        t_dedupet	path_onlyR�sHDo not set both path_only and class_only when calling PluginLoader.all()s*.pyRuiRRtfilter_pluginsttest_pluginss{0}_{1}s2Skipping plugin (%s) as it seems to be invalid: %sR�R�s5Skipping plugin (%s) as it seems to be incomplete: %sN(R�R�(&R�R>R`RR_R|R{RR R#RNtsortedR,R�R�RER�RKR"R�tabsthashR�R�R/R%R&RR:RCR�RDRmR�R�ROR�R�(RPR�R�tdedupeR�R�tall_matchesR�R\tloaded_modulesR RR,R�R�R�RR�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR1Usl$)	
!
		
	($N(R=t
__module__t__doc__R0RRRURWRXR]RaRiR>RtR_R�R`R$R�R�R�R�R�t__contains__R�R�R.R�R1(((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR`s.#				
			2		42O			-
tJinja2LoadercB`s,eZdZdd�Zd�Zd�ZRS(s�
    PluginLoader optimized for Jinja2 plugins

    The filter and test plugins are Jinja2 plugins encapsulated inside of our plugin format.
    The way the calling code is setup, we need to do a few things differently in the all() method
    cC`s8d|kr(tt|�j|d|�Std��dS(NRkR�sCNo code should call find_plugin for Jinja2Loaders (Not implemented)(tsuperR�R�R(RPRR�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR��scO`s8d|kr(tt|�j|||�Std��dS(NRksCNo code should call find_plugin for Jinja2Loaders (Not implemented)(R�R�R.R(RPRR�R�((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR.�scO`sFt|d<gtt|�j||�D]}|^q&}|j�|S(sf
        Differences with :meth:`PluginLoader.all`:

        * We do not deduplicate ansible plugin names.  This is because we don't care about our
          plugin names, here.  We care about the names of the actual jinja2 plugins which are inside
          of our plugins.
        * We reverse the order of the list of plugins compared to other PluginLoaders.  This is
          because of how calling code chooses to sync the plugins from the list.  It adds all the
          Jinja2 plugins from one of our Ansible plugins into a dict.  Then it adds the Jinja2
          plugins from the next Ansible plugin, overwriting any Jinja2 plugins that had the same
          name.  This is an encapsulation violation (the PluginLoader should not know about what
          calling code does with the data) but we're pushing the common code here.  We'll fix
          this in the future by moving more of the common code into this PluginLoader.
        * We return a list.  We could iterate the list instead but that's extra work for no gain because
          the API receiving this doesn't care.  It just needs an iterable
        R�(R`R�R�R1treverse(RPR�R�Rwtplugins((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR1�s
.
N(R=R�R�R0R�R.R1(((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyR��s	c	C`s�tt�}t}tjdkr*d}ntj}t}tjj	|�ryt
|d��S}yt|j��}Wn3t
k
r�}tjdj|t|���|SXWdQXy|d}Wn(tk
r�tjdj|��|SXt|�}|j�}|dkr`yt|d�|d<Wn(tk
rNtjd	j|��|SX|d|d
<q�tjdj|��n|r�tjdj|��nd
|dkr�tdjt|����n|S(Ns/etc/ansible/plugin_filters.ymlR�u;The plugin filter file, {0} was not parsable. Skipping: {1}tfilter_versionu2The plugin filter file, {0} was invalid. Skipping.u1.0tmodule_blacklistsansible.modulesuWUnable to parse the plugin filter file {0} as module_blacklist is not a list. Skipping.sansible.plugins.actionu^The plugin filter file, {0} was a version not recognized by this version of Ansible. Skipping.u5The plugin filter file, {0} does not exist. Skipping.tstats�The stat module was specified in the module blacklist file, {0}, but Ansible will not function without the stat module.  Please remove stat from the blacklist.(Rt	frozensetR`RStPLUGIN_FILTERS_CFGR0R>RR R�R�RtreadR/R%R&R�RR�tstripR�RR(tfilterstuser_sett
filter_cfgR�tfilter_dataR�tversion((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_load_plugin_filter�sN		





	cC`s<td�tjD��s8tjjdttj��ndS(Ncs`s|]}t|t�VqdS(N(RR(R�tl((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pys	<genexpr>1si(R�R;t	meta_pathtinsertRRSRH(((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt_configure_collection_loader0stModuleDocFragmentsansible.plugins.doc_fragmentst
doc_fragmentstActionModulesansible.plugins.actiontaction_pluginsRQt
ActionBasetCacheModulesansible.plugins.cachet
cache_pluginstCallbackModulesansible.plugins.callbacktcallback_pluginst
Connectionsansible.plugins.connectiontconnection_pluginsRFtparamiko_sshtparamikotConnectionBasetShellModulesansible.plugins.shellt
shell_pluginsR�sansible.modulestlibrarysansible.module_utilstmodule_utilstLookupModulesansible.plugins.lookuptlookup_pluginst
LookupBasetFilterModulesansible.plugins.filterR�t
TestModulesansible.plugins.testR�tStrategyModulesansible.plugins.strategytstrategy_pluginstStrategyBasetTerminalModulesansible.plugins.terminaltterminal_pluginstTerminalBaset
VarsModulesansible.plugins.varstvars_pluginstCliconfsansible.plugins.cliconftcliconf_pluginstCliconfBasetNetconfsansible.plugins.netconftnetconf_pluginstNetconfBasetInventoryModulesansible.plugins.inventorytinventory_pluginstHttpApisansible.plugins.httpapithttpapi_pluginstHttpApiBasetBecomeModulesansible.plugins.becometbecome_plugins(`t
__future__RRRttypet
__metaclass__R{Rtos.pathR;R�tcollectionsRtansibleRRStansible.errorsRtansible.module_utils._textRRRt%ansible.module_utils.compat.importlibR	tansible.module_utils.sixR
tansible.parsing.utils.yamlRtansible.parsing.yaml.loaderRtansible.pluginsR
RRRtansible.utils.collection_loaderRRRtansible.utils.displayRtansible.utils.plugin_docsRtimportlib.utilR�R0R�tImportErrorR%RR)R8RBRR�RRR�tDOC_FRAGMENT_PLUGIN_PATHR�tDEFAULT_ACTION_PLUGIN_PATHt
action_loadertDEFAULT_CACHE_PLUGIN_PATHtcache_loadertDEFAULT_CALLBACK_PLUGIN_PATHtcallback_loadertDEFAULT_CONNECTION_PLUGIN_PATHtconnection_loaderR-tDEFAULT_MODULE_PATHt
module_loadertDEFAULT_MODULE_UTILS_PATHtmodule_utils_loadertps_module_utils_loadertDEFAULT_LOOKUP_PLUGIN_PATHt
lookup_loadertDEFAULT_FILTER_PLUGIN_PATHt
filter_loadertDEFAULT_TEST_PLUGIN_PATHttest_loadertDEFAULT_STRATEGY_PLUGIN_PATHtstrategy_loadertDEFAULT_TERMINAL_PLUGIN_PATHtterminal_loadertDEFAULT_VARS_PLUGIN_PATHtvars_loadertDEFAULT_CLICONF_PLUGIN_PATHtcliconf_loadertDEFAULT_NETCONF_PLUGIN_PATHtnetconf_loadertDEFAULT_INVENTORY_PLUGIN_PATHtinventory_loadertDEFAULT_HTTPAPI_PLUGIN_PATHthttpapi_loadertBECOME_PLUGIN_PATHt
become_loader(((s:/usr/lib/python2.7/site-packages/ansible/plugins/loader.pyt<module>s""

			
!	��f4	8						
															

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]