§
    q�’j/u  ã                   ó  — d Z ddlZddlZddlZddlmZ ddlmZ ddlZddl	Z	ddl
mZ eZ G d„ de¦  «        ZdZej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej        ej         ej!        ej        ej"        ej#        ej$        ej%        ej&        ej'        ej(        gZ) e*e)¦  «        Z+ G d	„ d
¦  «        Z, G d„ d¦  «        Z- G d„ de-¦  «        Z. G d„ de.¦  «        Z/ G d„ de.¦  «        Z0ej        ej        ej'        ej%        ej        ej        iZ1d„ Z2d„ Z3ej4        ej5        z   dz   Z6d„ Z7dd„Z8d„ Z9	 dd„Z:e;dk    r e<d¦  «         dS dS )aÛ  Contains knowledge to build a COM object definition.

This module is used by both the @dynamic@ and @makepy@ modules to build
all knowledge of a COM object.

This module contains classes which contain the actual knowledge of the object.
This include parameter and return type information, the COM dispid and CLSID, etc.

Other modules may use this information to generate .py files, use the information
dynamically, or possibly even generate .html documentation for objects.
é    N)Úchain)Ú	iskeyword)ÚTimeTypec                   ó   — e Zd ZdS )ÚNotSupportedExceptionN)Ú__name__Ú
__module__Ú__qualname__© ó    úCC:\Projects\DSCons\.venv\Lib\site-packages\win32com\client\build.pyr   r   #   s   € € € € € Ø€Dr   r   ÚDropIndirectionc                   óF   — e Zd ZdZddej        ddfd„Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚMapEntryz3Simple holder for named attibutes - items in a map.Nr   c                 óÊ   — t          |t          ¦  «        r|| _        d | _        n|d         | _        || _        || _        || _        || _        || _        d| _        || _	        d S ©Nr   )
Ú
isinstanceÚintÚdispidÚdescÚnamesÚdocÚresultCLSIDÚresultDocumentationÚwasPropertyÚhidden)ÚselfÚ
desc_or_idr   r   r   Ú	resultDocr   s          r   Ú__init__zMapEntry.__init__K   sn   € õ �j¥#Ñ&Ô&ð 	#Ø$ˆDŒKØˆDŒIˆIà$ Qœ-ˆDŒKØ"ˆDŒIàˆŒ
ØˆŒØ&ˆÔØ#,ˆÔ àð 	Ôð ˆŒˆˆr   c                 ó.   — d                      | ¬¦  «        S )NzÃMapEntry(dispid={s.dispid}, desc={s.desc}, names={s.names}, doc={s.doc!r}, resultCLSID={s.resultCLSID}, resultDocumentation={s.resultDocumentation}, wasProperty={s.wasProperty}, hidden={s.hidden})Ús)Úformat©r   s    r   Ú__repr__zMapEntry.__repr__d   s   € ð=÷ Š&�4ˆ&‰.Œ.ð		r   c                 ó8   — | j         }|t          j        k    rd S |S ©N)r   Ú	pythoncomÚIID_NULL©r   Úrcs     r   ÚGetResultCLSIDzMapEntry.GetResultCLSIDk   s"   € ØÔˆØ•Ô#Ò#Ð#Ø�4Øˆ	r   c                 ó>   — |                       ¦   «         }|€dS d|› d�S )NÚNoneú')r,   r*   s     r   ÚGetResultCLSIDStrzMapEntry.GetResultCLSIDStrr   s+   € Ø× Ò Ñ"Ô"ˆØˆ:Ø�6à�2ˆyˆyˆyÐr   c                 ó.   — | j         €d S | j         d         S r   )r   r$   s    r   ÚGetResultNamezMapEntry.GetResultNamey   s   € ØÔ#Ð+Ø�4ØÔ'¨Ô*Ð*r   )r   r	   r
   Ú__doc__r(   r)   r    r%   r,   r0   r2   r   r   r   r   r   H   s~   € € € € € Ø9Ð9ð
 ØØÔ&ØØðð ð ð ð2ð ð ðð ð ðð ð ð+ð +ð +ð +ð +r   r   c                   ó   — e Zd Zd Zdd„ZdS )ÚOleItemNc                 ó¶   — || _         | j         r t          | j         d         ¦  «        | _        nd | _        d| _        d| _        d| _        d | _        d | _        d S r   )r   ÚMakePublicAttributeNameÚpython_nameÚbWrittenÚbIsDispatchÚbIsSinkÚclsidÚco_class)r   r   s     r   r    zOleItem.__init__‚   s\   € ØˆŒØŒ8ð 	$Ý6°t´xÀ´{ÑCÔCˆDÔÐà#ˆDÔØˆŒØˆÔØˆŒØˆŒ
ØˆŒˆˆr   r'   ©r   r	   r
   Útypenamer    r   r   r   r5   r5      s-   € € € € € Ø€Hð
ð 
ð 
ð 
ð 
ð 
r   r5   c                   óX   — e Zd Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zdd„Z	d	„ Z
dd
„Zdd„Zdd„ZdS )ÚDispatchItemNé   c                 óÆ   — t                                | |¦  «         i | _        i | _        i | _        i | _        d | _        d| _        |r|                      |||¦  «         d S d S r   )	r5   r    ÚpropMapÚ
propMapGetÚ
propMapPutÚmapFuncsÚdefaultDispatchNamer   ÚBuild)r   ÚtypeinfoÚattrr   ÚbForUsers        r   r    zDispatchItem.__init__’   sq   € Ý×Ò˜˜sÑ#Ô#Ð#ØˆŒØˆŒØˆŒØˆŒØ#'ˆÔ ØˆŒàð 	1Ø�JŠJ�x  xÑ0Ô0Ð0Ð0Ð0ð	1ð 	1r   c                 ó  — |                       |j        d         ¦  «        \  }}}|dk    r^|dz   |k    s||j        d         dz   k    rd|z   }d}nd}|| j        v s	|| j        v rd|z   }n|}d|_        || j        |<   |r| j        |= d S d S d S )Né   rB   é   ÚSetr   )ÚCountInOutOptArgsr   rG   rE   r   rF   ©r   ÚkeyÚitemÚinsÚoutsÚoptsÚnewKeyÚdeleteExistings           r   Ú_propMapPutCheck_zDispatchItem._propMapPutCheck_ž   sÇ   € Ø×0Ò0°´¸1´Ñ>Ô>‰ˆˆT�4Ø�Š7ˆ7Ø�a‰x˜3Šˆ #¨¬°1¬¸Ñ)9Ò"9Ð"9Ø ™�Ø!"��à!"�Ø˜$œ-Ð'Ð'¨3°$´/Ð+AÐ+AØ" S™[�F�Fà �FØ ˆDÔØ$(ˆDŒM˜&Ñ!Øð )Ø”O CÐ(Ð(Ð(ð ˆ7ð)ð )r   c                 óü   — |                       |j        d         ¦  «        \  }}}|dk    rO|j        d         |k    s||k    rd|z   }d}nd}|| j        v rd|z   }n|}d|_        || j        |<   |r| j        |= d S d S d S )NrN   r   rO   ÚGetrB   )rQ   r   rG   r   rE   rR   s           r   Ú_propMapGetCheck_zDispatchItem._propMapGetCheck_¯   s²   € Ø×0Ò0°´¸1´Ñ>Ô>‰ˆˆT�4Ø�Š7ˆ7ØŒy˜Œ|˜sÒ"Ð" c¨T¢k kØ ™�Ø!"��à!"�Ø˜$œ-Ð'Ð'Ø" S™[�F�Fà �FØ ˆDÔØ$(ˆDŒM˜&Ñ!Øð )Ø”O CÐ(Ð(Ð(ð ˆ7ð)ð )r   c                 óB  — |j         t          j        k    sJ ‚|j        }|j        }	 |                     |¦  «        }|d         }n# t          j        $ r d}d }Y nw xY wd }	 |r|                     |¦  «        }n# t          j        $ r Y nw xY w|dk    r	|r|| _        |j	        }	|j
        \  }
}}t          |
|¦  «        \  }
}}|
|||f|_
        g }|j        D ]7}|\  }
}}t          |
|¦  «        \  }}}||||f}|                     |¦  «         Œ8t          |¦  «        |_        |t          j        z  dk    }|	t          j        k    r| j        }n�|	t          j        t          j        fv ri| j                             |d ¦  «        }|�D|j        d         t          j        k    r| j        }d|z   }n>d|_        || j        d|z   <   | j        }n"| j        }n|	t          j        k    r| j        }nd }|�2t5          ||||||¦  «        ||<   |j        t          j        k    rd S ||fS d S )Nr   Ú é   rP   rB   )Údesckindr(   ÚDESCKIND_FUNCDESCÚmemidÚ
wFuncFlagsÚGetNamesÚ	ole_errorÚGetDocumentationrH   ÚinvkindÚrettypeÚ_ResolveTypeÚargsÚappendÚtupleÚFUNCFLAG_FHIDDENÚINVOKE_PROPERTYGETrE   ÚINVOKE_PROPERTYPUTÚINVOKE_PROPERTYPUTREFrF   Úgetr   rG   r   ÚINVOKE_FUNCr   ÚfunckindÚFUNC_DISPATCH)r   rJ   ÚfdescrL   ÚidÚ	funcflagsr   Únamer   rh   ÚtypereprÚflagÚdefvalr   r   ÚargListÚargDescÚarg_typeÚ	arg_clsidÚarg_docr   ÚmapÚexistings                          r   Ú	_AddFunc_zDispatchItem._AddFunc_À   s�  € ØŒ~¥Ô!<Ò<Ð<Ð<Ð<ØŒ[ˆØÔ$ˆ	ð	Ø×%Ò% bÑ)Ô)ˆEØ˜”8ˆDˆDøÝÔ"ð 	ð 	ð 	ØˆDØˆEˆEˆEð	øøøð ˆð	Øð 4Ø×/Ò/°Ñ3Ô3�øøÝÔ"ð 	ð 	ð 	ØˆDð	øøøð �Š7ˆ7�tˆ7Ø'+ˆDÔ$à”-ˆð "'¤Ñˆ�$˜å+7¸À(Ñ+KÔ+KÑ(ˆ�+˜yà  $¨°Ð;ˆŒàˆØ”zð 	$ð 	$ˆGØ%,Ñ"ˆH�d˜Få+7¸À(Ñ+KÔ+KÑ(ˆH�i Ø  f¨iÐ7ˆGà�NŠN˜7Ñ#Ô#Ð#Ð#Ý˜7‘^”^ˆŒ
à�iÔ8Ñ8¸QÒ>ˆØ•iÔ2Ò2Ð2Ø”/ˆCˆCð �Ô5µyÔ7VÐWÐWÐWà”×*Ò*¨4°Ñ6Ô6ˆHØÐ#Ø”= Ô#¥yÔ'CÒCÐCØœ-�CØ  4™<�D�Dà+,�HÔ(Ø2:�D”M %¨$¡,Ñ/Øœ/�C�Cà”o��à�	Ô-Ò-Ð-Ø”-ˆCˆCàˆCØˆ{õ ! ¨¨s°KÀÈFÑSÔSˆC�‰Ið Œ~¥Ô!8Ò8Ð8Ø�tØ˜#�;ÐØˆts#   §A ÁAÁAÁ!A9 Á9BÂ
Bc                 óÀ  — |j         t          j        k    sJ ‚|j        t          j        k    r±|j        }|                     |¦  «        }|j        \  }}}t          ||¦  «        \  }}	}
|||f|_        d }	 |r| 	                    |¦  «        }n# t          j
        $ r Y nw xY w| j        }|j        dz  dk    }t          ||||	|
|¦  «        ||d         <   |d         |fS d S )Né@   r   )ra   r(   ÚDESCKIND_VARDESCÚvarkindÚVAR_DISPATCHrc   re   ÚelemdescVarrj   rg   rf   rD   Ú	wVarFlagsr   )r   rJ   ÚvardescrL   rw   r   rz   Úflagsr|   r   r   r   r‚   r   s                 r   Ú_AddVar_zDispatchItem._AddVar_  s  € ð Ô¥9Ô#=Ò=Ð=Ð=Ð=àŒ?�iÔ4Ò4Ð4Ø”ˆBØ×%Ò% bÑ)Ô)ˆEà&-Ô&9Ñ#ˆH�e˜VÝ/;¸HÀhÑ/OÔ/OÑ,ˆH�k 9Ø"*¨E°6Ð"9ˆGÔØˆCðØð 8Ø"×3Ò3°BÑ7Ô7�CøøÝÔ&ð ð ð Ø�ðøøøð ”,ˆCàÔ'¨$Ñ.°1Ò4ˆFÝ$Ø˜  [°)¸Vñô ˆC��a”‰Mð ˜!”H˜c�?Ð"à�4s   Á5B ÂBÂBc                 óz  — |d         | _         |j        t          j        z  dk    | _        |€d S t          |d         ¦  «        D ].}|                     |¦  «        }|                      |||¦  «         Œ/t          |d         ¦  «        D ].}|                     |¦  «        }|  	                    |||¦  «         Œ/t          | j                             ¦   «         ¦  «        D ]\  }}|                      ||¦  «         Œt          | j                             ¦   «         ¦  «        D ]\  }}|                      ||¦  «         Œd S )Nr   rO   é   )r<   Ú
wTypeFlagsr(   ÚTYPEFLAG_FDISPATCHABLEr:   ÚrangeÚGetFuncDescr„   Ú
GetVarDescrŽ   ÚlistrE   Úitemsr]   rF   rZ   )r   rJ   rK   rL   Újrv   rS   rT   s           r   rI   zDispatchItem.Build,  sL  € Ø˜!”WˆŒ
Ø œO­iÔ.NÑNÐSTÒTˆÔØÐØˆFå�t˜A”w‘”ð 	6ð 	6ˆAØ×(Ò(¨Ñ+Ô+ˆEØ�NŠN˜8 U¨HÑ5Ô5Ð5Ð5õ �t˜A”w‘”ð 	5ð 	5ˆAØ×'Ò'¨Ñ*Ô*ˆEØ�MŠM˜( E¨8Ñ4Ô4Ð4Ð4õ
 ˜dœo×3Ò3Ñ5Ô5Ñ6Ô6ð 	.ð 	.‰IˆC�Ø×"Ò" 3¨Ñ-Ô-Ð-Ð-å˜dœo×3Ò3Ñ5Ô5Ñ6Ô6ð 	.ð 	.‰IˆC�Ø×"Ò" 3¨Ñ-Ô-Ð-Ð-ð	.ð 	.r   c                 óÌ   — dx}x}}|D ]W}|d         }|dk    r|dz  }|dz  }Œ|t           j        z  r|dz  }|t           j        z  r|dz  }|t           j        z  r|dz  }ŒX|||fS )zhReturn tuple counting in/outs/OPTS.  Sum of result may not be len(argTuple), as some args may be in/out.r   rB   )r(   ÚPARAMFLAG_FINÚPARAMFLAG_FOPTÚPARAMFLAG_FOUT)r   ÚargTuplerU   ÚoutrW   ÚargCheckÚinOuts          r   rQ   zDispatchItem.CountInOutOptArgsD  sž   € àÐˆÐˆc�DØ ð 	ð 	ˆHØ˜Q”KˆEØ˜ŠzˆzØ�q‘�Ø�q‘��à�9Ô2Ñ2ð Ø˜1‘H�CØ�9Ô3Ñ3ð Ø˜A‘I�DØ�9Ô3Ñ3ð Ø˜1‘H�CøØ�C˜ˆ~Ðr   c                 ó¾   — |j         �@t          |j         ¦  «        dk     s|j         d         dk    r|                      |||¦  «        S |                      |||¦  «        S )NrO   éÿÿÿÿ)r   ÚlenÚMakeDispatchFuncMethodÚMakeVarArgsFuncMethod)r   Úentryry   Ú
bMakeClasss       r   ÚMakeFuncMethodzDispatchItem.MakeFuncMethodU  s\   € àŒ:Ð!¥s¨5¬:¡¤¸Ò':Ð':¸e¼jÈ¼mÈrÒ>QÐ>QØ×.Ò.¨u°d¸JÑGÔGÐGà×-Ò-¨e°T¸:ÑFÔFÐFr   c                 ó^  — |j         }|j        }|j        }g }|r	d}d}	d}
d}nd}d}	d}
d}d}|d         }|dz   |z   d	z   t          |||	|
||¦  «        z   d
z   }|                     |¦  «         |r6|d         r.|                     |dz   t          |d         ¦  «        z   ¦  «         t          |d         ¦  «        D ]®\  }}|d         t          j        z  r”|d         t          j	        t          j
        z  z  t          j	        k    rd|d         r\|d         j        j        dk    rFd|d         ›d�}|                     |› d||dz            › d|› d�|› d||dz            › d|› �f¦  «         Œ¯|                     ¦   «         }|rd|z  }nd}|d         d d…         }t          d„ |d         D ¦   «         ¦  «        }d„ |d         D ¦   «         }d„ |D ¦   «         }d }t!          |¦  «        dk    �rgt!          |¦  «        dk    �rS|d         dk    �rF|d         }|t"          v r0d                     |||d         ||t'          ||¦  «        ¦  «        }�n|t          j        t          j        fv r¥d                     |||d         ||t'          ||¦  «        ¦  «        }||› d�z  }|t          j        k    rH|d                      |¦  «        z  }||› d!�z  }|d"                     |¦  «        z  }||› d#�z  }||› d$�z  }||› d%|›d&|› d'�z  }||› d(�z  }nF|t          j        k    r6|› d)�}|d*                     |||d         ||t'          ||¦  «        ¦  «        z  }|€0d+                     |||d         ||||t'          ||¦  «        ¦  «        }|                     |¦  «         |                     d¦  «         |S ),Nú	ÚdefaultNamedOptArgÚdefaultNamedNotOptArgÚdefaultUnnamedArgr_   zpythoncom.Missingr   údef z(selfz):rB   rN   é   ÚPyIIDzFpythoncom.GetRecordFromGuids(CLSID, MajorVersion, MinorVersion, LCID, ú)z	if z == ú:z		z = z'%s'r.   é   c                 ó"   — g | ]}|d d…         ‘ŒS )NrN   r   ©Ú.0Úwhats     r   ú
<listcomp>z7DispatchItem.MakeDispatchFuncMethod.<locals>.<listcomp>˜  s    € Ð8Ð8Ð8 t˜$˜r ˜rœ(Ð8Ð8Ð8r   c                 ó   — g | ]
}|d          ‘ŒS ©rB   r   rµ   s     r   r¸   z7DispatchItem.MakeDispatchFuncMethod.<locals>.<listcomp>�  s   € Ð4Ð4Ð4 4�t˜A”wÐ4Ð4Ð4r   c                 óR   — g | ]$}|t           j        t           j        z  z  d k    ¯"|‘Œ%S )r   )r(   rœ   ÚPARAMFLAG_FRETVAL)r¶   r{   s     r   r¸   z7DispatchItem.MakeDispatchFuncMethod.<locals>.<listcomp>ž  s>   € ð 
ð 
ð 
àØ•yÔ/µ)Ô2MÑMÑNÐRSÒSÐSð àSÐSÐSr   z;{}	return self._oleobj_.InvokeTypes({}, LCID, {}, {}, {}{})r`   z={}	ret = self._oleobj_.InvokeTypes({}, LCID, {}, {}, {!r}{})
z	if ret is not None:
z2{}		# See if this IUnknown is really an IDispatch
z		try:
z7{}			ret = ret.QueryInterface(pythoncom.IID_IDispatch)
z		except pythoncom.error:
z			return ret
z		ret = Dispatch(ret, ú, z)
z	return retz	# Result is a Unicode object
z={}	return self._oleobj_.InvokeTypes({}, LCID, {}, {}, {!r}{})z7{}	return self._ApplyTypes_({}, {}, {}, {}, {!r}, {}{}))r   r   r   ÚBuildCallListrl   Ú_makeDocStringÚ	enumerater(   Ú	VT_RECORDrœ   rš   Ú	__class__r   Úextendr,   rm   r£   ÚNoTranslateMapr#   Ú_BuildArgListÚVT_DISPATCHÚ
VT_UNKNOWNÚVT_BSTR)r   r¦   ry   r§   rv   r   r   ÚretÚ
linePrefixÚdefNamedOptArgÚdefNamedNotOptArgÚdefUnnamedArgÚ	defOutArgrw   r"   Úir   ÚoutValÚresclsidÚretDescÚargsDescÚparam_flagsÚ
bad_paramsÚrds                           r   r¤   z#DispatchItem.MakeDispatchFuncMethod\  sí  € Ø”
ˆØŒiˆØ”ˆØˆØð 		0ØˆJØ1ˆNØ 7ÐØ/ˆMˆMàˆJØ0ˆNØ 3ÐØ/ˆMØ'ˆ	Ø�1ŒXˆð Øñàñð ñõ ØØØØ!ØØñô ñ	ð ñð 	
ð 	�
Š
�1‰ŒˆØð 	C�3�q”6ð 	CØ�JŠJ�z DÑ(­>¸#¸a¼&Ñ+AÔ+AÑAÑBÔBÐBå   q¤Ñ*Ô*ð 	ð 	‰GˆAˆtà�Q”�)Ô-Ñ-ðà˜”G�yÔ7½)Ô:QÑQÑRÝÔ+ò,ð ,à˜”Gð,ð ˜”GÔ%Ô.°'Ò9Ð9ànÐbfÐghÔbiÐnÐnÐn�Ø—
’
à%ÐJÐJ¨E°!°a±%¬LÐJÐJ¸iÐJÐJÐJØ%ÐDÐD¨5°°Q±¬<ÐDÐD¸FÐDÐDðñô ð øð ×'Ò'Ñ)Ô)ˆØð 	Ø Ñ(ˆHˆHàˆHà˜”(˜2˜A˜2”,ˆÝÐ8Ð8¨u°Q¬xÐ8Ñ8Ô8Ñ9Ô9ˆð
 5Ð4¨5°¬8Ð4Ñ4Ô4ˆð
ð 
à#ð
ñ 
ô 
ˆ
ð
 ˆÝˆz‰?Œ?˜aÒÑ¥C¨¡L¤L°AÒ$5Ñ$5¸'À!¼*Èº/¹/Ø˜”ˆBØ•^Ð#Ð#ØR×YÒYØØØ˜!”HØØÝ! %¨Ñ/Ô/ñô �‘ð �	Ô-­yÔ/CÐDÐDÐDØU×\Ò\ØØØ˜!”HØØÝ! %¨Ñ/Ô/ñô �ð ˜
Ð;Ð;Ð;Ñ;�Ø�Ô-Ò-Ð-ØÐP×WÒWØ"ñô ñ �Að ˜JÐ2Ð2Ð2Ñ2�AØÐV×]Ò]Ø"ñô ñ �Að ˜JÐEÐEÐEÑE�AØ˜JÐ:Ð:Ð:Ñ:�AØ˜
ÐSÐS¸DÐSÐSÀhÐSÐSÐSÑS�Ø˜
Ð0Ð0Ð0Ñ0��Ø•yÔ(Ò(Ð(Ø!ÐCÐCÐC�ØÐU×\Ò\ØØØ˜!”HØØÝ! %¨Ñ/Ô/ñô ñ �ð ˆ9ØJ×QÒQØØØ�a”ØØØØÝ˜e UÑ+Ô+ñ	ô 	ˆAð 	�
Š
�1‰ŒˆØ�
Š
�2‰ŒˆØˆ
r   c                 óÐ  — |j         }|j        }|j        }g }d}|rd}	nd}	|                     |	dz   |z   dz   |z   dz   ¦  «         |r6|d         r.|                     |	dz   t	          |d         ¦  «        z   ¦  «         |r	|d         }
nt
          j        }
|	d	z   }|                     |t          |j        ¦  «        z   d
|
|d         fz  z   ¦  «         |                     d¦  «         |S )Nr   rª   r_   r®   ú(z	, *args):rB   r`   z7	return self._get_good_object_(self._oleobj_.Invoke(*((z,0,%d,1)+args)),'%s')r   )	r   r   r   rl   r¿   r(   ÚDISPATCH_METHODÚstrr   )r   r¦   ry   r§   rv   r   r   rÉ   Ú	argPrefixrÊ   Ú
invoketyper"   s               r   r¥   z"DispatchItem.MakeVarArgsFuncMethodà  s  € Ø”
ˆØ”ˆØŒiˆØˆØˆ	Øð 	ØˆJˆJàˆJØ�
Š
�: Ñ&¨Ñ-°Ñ3°iÑ?À+ÑMÑNÔNÐNØð 	C�3�q”6ð 	CØ�JŠJ�z DÑ(­>¸#¸a¼&Ñ+AÔ+AÑAÑBÔBÐBØð 	3Ø˜qœˆJˆJå"Ô2ˆJØÐSÑSˆØ�
Š
Ø•�E”LÑ!Ô!Ñ!Ð$;¸zÈ5ÐQRÌ8Ð>TÑ$TÑTñ	
ô 	
ð 	
ð 	�
Š
�2‰ŒˆØˆ
r   )NNNrB   rº   )r   r	   r
   r?   r    rZ   r]   r„   rŽ   rI   rQ   r¨   r¤   r¥   r   r   r   rA   rA   �   sÕ   € € € € € Ø€Hð
1ð 
1ð 
1ð 
1ð)ð )ð )ð")ð )ð )ð"Lð Lð Lð\ð ð ð<.ð .ð .ð .ð0ð ð ð"Gð Gð Gð GðBð Bð Bð BðHð ð ð ð ð r   rA   c                   ó   — e Zd Zdd„ZdS )Ú
VTableItemrB   c                 óF  — t                                | |||¦  «         |€
J d¦   «         ‚t          t          | j                             ¦   «         | j                             ¦   «         | j                             ¦   «         ¦  «        d„ ¬¦  «        }d„ |D ¦   «         | _        d S )Nz&Can't build vtables without type info!c                 ó   — | j         d         S )Nr�   )r   )Úms    r   ú<lambda>z"VTableItem.Build.<locals>.<lambda>  s   € ˜!œ& œ)€ r   )rS   c                 ó6   — g | ]}|j         |j        |j        f‘ŒS r   )r   r   r   )r¶   r¦   s     r   r¸   z$VTableItem.Build.<locals>.<listcomp>
  s2   € ð 
ð 
ð 
Ø8=ˆUŒ[˜%œ,¨¬
Ð3ð
ð 
ð 
r   )	rA   rI   Úsortedr   rG   ÚvaluesrE   rF   ÚvtableFuncs)r   rJ   rK   rL   Ú	meth_lists        r   rI   zVTableItem.Buildû  s´   € Ý×Ò˜4 ¨4°Ñ:Ô:Ð:ØÐ#Ð#Ð%MÑ#Ô#Ð#åÝØ”×$Ò$Ñ&Ô&Ø”×&Ò&Ñ(Ô(Ø”×&Ò&Ñ(Ô(ñô ð
 $Ð#ð
ñ 
ô 
ˆ	ð
ð 
ØAJð
ñ 
ô 
ˆÔÐÐr   Nrº   )r   r	   r
   rI   r   r   r   rÞ   rÞ   ú  s(   € € € € € ð
ð 
ð 
ð 
ð 
ð 
r   rÞ   c                   ó   — e Zd Zd Zd„ ZdS )ÚLazyDispatchItemc                 ó\   — |d         | _         t                               | d ||d¦  «         d S r   )r<   rA   r    )r   rK   r   s      r   r    zLazyDispatchItem.__init__  s/   € Ø˜!”WˆŒ
Ý×Ò˜d D¨$°°QÑ7Ô7Ð7Ð7Ð7r   Nr>   r   r   r   ré   ré     s(   € € € € € Ø!€Hð8ð 8ð 8ð 8ð 8r   ré   c                 ó�  — t          | t          ¦  «        �r“| \  }}|t          j        k    rrt          |t          ¦  «        o|d         t          j        k    }t          ||¦  «        \  }}}|r|t          j        t          j        fv r|||fS |t          j        z  ||fS |t          j	        k    r&t          ||¦  «        \  }}}t          j
        |z  ||fS |t          j        k    rt          j        d d fS |t          j        k    �r¦	 |                     |¦  «        }nK# t          j        $ r9}|j        t          j        t          j        fv rt          j        d d fcY d }~S ‚ d }~ww xY w|                     ¦   «         }	|	j        }
|
t          j        k    r|	j        }t          ||¦  «        S |
t          j        t          j        fv rt          j        d d fS |
t          j        k    r>|                     ¦   «         d         }|                     d¦  «        }t          j        ||fS |
t          j        t          j        fv r>|                     ¦   «         d         }|                     d¦  «        }t          j        ||fS |
t          j        k    rt          j        |	j        d fS tA          d¦  «        ‚tB           "                    | | ¦  «        d d fS )Nr   r¢   z*Can not resolve alias or user-defined type)#r   rm   r(   ÚVT_PTRÚVT_USERDEFINEDrj   rÆ   rÇ   ÚVT_BYREFÚVT_SAFEARRAYÚVT_ARRAYÚ	VT_CARRAYÚGetRefTypeInfoÚ	com_errorÚhresultÚwinerrorÚTYPE_E_CANTLOADLIBRARYÚTYPE_E_LIBNOTREGISTEREDÚGetTypeAttrÚtypekindÚTKIND_ALIASÚ
tdescAliasÚ
TKIND_ENUMÚTKIND_MODULEÚVT_I4ÚTKIND_DISPATCHrg   ÚTKIND_INTERFACEÚTKIND_COCLASSÚTKIND_RECORDrÁ   Úiidr   ÚtypeSubstMaprr   )rz   Ú	itypeinfoÚindir_vtÚsubreprÚwas_userÚ	sub_clsidÚsub_docÚresultTypeInfoÚdetailsÚ
resultAttrÚtypeKindÚtdescr<   Úretdocs                 r   rj   rj   !  så  € õ �(�EÑ"Ô"ñ @VØ$Ñˆ�'Ø•yÔ'Ò'Ð'õ ˜7¥EÑ*Ô*ÐU¨w°q¬z½YÔ=UÒ/Uð õ +7°wÀ	Ñ*JÔ*JÑ'ˆG�Y Øð 3˜GÝÔ%ÝÔ$ð(ð ð ð
  	¨7Ð2Ð2à�YÔ/Ñ/°¸GÐCÐCØ•yÔ-Ò-Ð-å*6°wÀ	Ñ*JÔ*JÑ'ˆG�Y ÝÔ%¨Ñ/°¸GÐCÐCØ•yÔ*Ò*Ð*õ Ô&¨¨dÐ2Ð2Ø•yÔ/Ò/Ñ/ð	Ø!*×!9Ò!9¸'Ñ!BÔ!B��øÝÔ&ð ð ð Ø”?ÝÔ3ÝÔ4ð'ð ð õ
 %Ô/°°tÐ;Ð;Ð;Ð;Ð;Ð;Ð;Øøøøøðøøøð (×3Ò3Ñ5Ô5ˆJØ!Ô*ˆHØ�9Ô0Ò0Ð0Ø"Ô-�Ý# E¨>Ñ:Ô:Ð:Ø�iÔ2µIÔ4JÐKÐKÐKå ”¨¨dÐ2Ð2à�YÔ5Ò5Ð5Ø&×2Ò2Ñ4Ô4°QÔ7�Ø'×8Ò8¸Ñ<Ô<�Ý Ô,¨e°VÐ;Ð;à�iÔ7½Ô9PÐQÐQÐQà&×2Ò2Ñ4Ô4°QÔ7�Ø'×8Ò8¸Ñ<Ô<�Ý Ô+¨U°FÐ:Ð:à�YÔ3Ò3Ð3Ý Ô*¨J¬N¸DÐ@Ð@Ý'Ð(TÑUÔUÐUÝ×Ò˜H hÑ/Ô/°°tÐ;Ð;s$   ÄD ÄE#Ä*-EÅE#ÅEÅE#c           	      óF  — t          | d         t          | d         ¦  «        ¦  «        }t          |¦  «        }d|v r"|                     d¦  «        }d|fz  ||<   d|v °"t          t	          t
          |d|dz   …         ¦  «        ¦  «        }d}t          |¦  «        |k     r9|                     dt          |¦  «        fz  ¦  «         t          |¦  «        |k     °9t          dt          |¦  «        d¦  «        D ]}||xx         dz  cc<   Œd	d
                     |¦  «        z   S )z4Builds list of args to the underlying Invoke method.rO   rN   Núarg%drB   r   é   z
			ú,r½   )	Úmaxr£   r–   Úindexr‚   r7   rl   r“   Újoin)rv   r   ÚnumArgsrÏ   Úname_nums        r   rÅ   rÅ   h  s"  € õ �%˜”(�C  a¤™MœMÑ*Ô*€GÝ�‰KŒK€EØ
�%ˆ-ˆ-Ø�KŠK˜ÑÔˆØ˜a˜T‘>ˆˆa‰ð �%ˆ-ˆ-õ •Õ,¨e°A¸À1¹Ð4EÔ.FÑGÔGÑHÔH€EØ€HÝ
ˆe‰*Œ*�wÒ
Ð
Ø�Š�W¥ E¡
¤
˜}Ñ,Ñ-Ô-Ð-õ ˆe‰*Œ*�wÒ
Ð
õ �1•c˜%‘j”j !Ñ$Ô$ð ð ˆØˆaˆˆŒ�JÑˆˆ‰ˆØ�—’˜5Ñ!Ô!Ñ!Ð!r   Ú_c                 ó–   — d}| |         dk    r|dz  }| |         dk    °|dk    s
J d¦   «         ‚| |dz
  d …         | d |dz
  …         z   S )Nr   r  rB   rN   z1Should only be here with names starting with '__'r   )Ú	classNamerÏ   s     r   Údemunge_leading_underscoresr  �  si   € Ø	€AØ
�AŒ,˜#Ò
Ð
Ø	ˆQ‰ˆð �AŒ,˜#Ò
Ð
à�Š6ˆ6ˆ6ÐF‰6Œ6ˆ6Ø�Q˜‘U�W�WÔ 	¨'¨A°©E¨'Ô 2Ñ2Ð2r   Fc                 óÄ  — | d d…         dk    rt          | ¦  «        S | dk    rd} nœt          | ¦  «        r0|                      ¦   «         }|| k    r|                     ¦   «         }|S |rEt	          t
          | ¦  «        r0|                      ¦   «         }|| k    r|                     ¦   «         }|S |                      ¦   «         r| S d                     d„ | D ¦   «         ¦  «        S )NrN   Ú__r.   ÚNONEr_   c                 ó$   — g | ]}|t           v ¯|‘ŒS r   )Úvalid_identifier_chars)r¶   Úchars     r   r¸   z+MakePublicAttributeName.<locals>.<listcomp>¬  s#   € ÐQÐQÐQ˜T°$Õ:PÐ2PÐ2P�DÐ2PÐ2PÐ2Pr   )r  r   Ú
capitalizeÚupperÚhasattrÚbuiltinsÚisidentifierr  )r  Ú	is_globalrÉ   s      r   r7   r7   ‹  sû   € ð ��!�„}˜ÒÐÝ*¨9Ñ5Ô5Ð5Ø	�fÒ	Ð	ð ˆ	ˆ	Ý	�9Ñ	Ô	ð à×"Ò"Ñ$Ô$ˆà�)ÒÐØ—)’)‘+”+ˆCØˆ
Ø	ð 	•w�x¨Ñ3Ô3ð 	ð ×"Ò"Ñ$Ô$ˆØ�)ÒÐØ—)’)‘+”+ˆCØˆ
Ø	×	Ò	Ñ	!Ô	!ð àÐà�7Š7ÐQÐQ YÐQÑQÔQÑRÔRÐRr   c                 óÜ  — 	 | d         }n# t           $ r t          j        }Y nw xY w|t          j        z  r¶| d         }t	          |t
          j        ¦  «        r.t          t          |                     ¦   «         ¦  «        ¦  «        S t	          |t          ¦  «        rB|j
        }|j        }|j        }|j        }|j        }|j        }|j        }	dt#          ¦   «         z  S t          |¦  «        S d S )NrB   rN   z`pywintypes.Time((%(year)d, %(month)d, %(day)d, %(hour)d, %(minute)d, %(second)d,0,0,0,%(msec)d)))Ú
IndexErrorr(   rš   ÚPARAMFLAG_FHASDEFAULTr   ÚdatetimeÚreprrm   Úutctimetupler   ÚyearÚmonthÚdayÚhourÚminuteÚsecondÚmsecÚlocals)
Ú	defArgValr    Úvalr0  r1  r2  r3  r4  r5  r6  s
             r   ÚMakeDefaultArgReprr:  ´  s÷   € ð(Ø˜!”ˆˆøÝð (ð (ð (åÔ'ˆˆˆð(øøøð �yÔ.Ñ.ð à˜ŒlˆÝ�c�8Ô,Ñ-Ô-ð 	3õ �˜c×.Ò.Ñ0Ô0Ñ1Ô1Ñ2Ô2Ð2Ý�c�8Ñ$Ô$ð 	à”8ˆDØ”IˆEØ”'ˆCØ”8ˆDØ”ZˆFØ”ZˆFØ”8ˆDàrÝ‘(”(ñðõ �C‰yŒyÐØˆ4s   ‚ ‹$£$c                 óJ  — t          | d         ¦  «        }| d         }d}	|dk    r|}
|dz  }n||z
  }
t          |¦  «        D ]Ì}	 ||dz            }|du}n# t          $ r d}Y nw xY w|sd|z  }| d         |         }t          |¦  «        }|€C|d         t          j        t          j        z  z  t          j        k    r|}n|r||
k    r|}n|}n|}t          |¦  «        }|dz   d	z  dk    r|	d
z  }	|r|	dz  }	|	dz  }	|	d|z   z  }	|r|	d|z   z  }	ŒÍ|dk    r|	d|d         z   z  }	|	S )z)Builds a Python declaration for a method.rN   rO   r_   r¢   rB   Nr   r  r  ú
ú#z			r½   ú=z, *)r£   r“   r+  r:  r(   rœ   rš   r7   )rv   r   rË   rÌ   rÍ   rÎ   Ú
is_commentr  Ú
numOptArgsÚstrvalÚfirstOptArgÚargÚargNameÚnamedArgÚthisdescr8  s                   r   r¾   r¾   Ó  s¶  € õ �%˜”(‰mŒm€GØ�q”€JØ€FØ�RÒÐØˆØ�1‰ˆˆà 
Ñ*ˆÝ�W‰~Œ~ð (&ð (&ˆð	Ø˜C !™G”nˆGØ dÐ*ˆHˆHøÝð 	ð 	ð 	ØˆHˆHˆHð	øøøàð 	&Ø ‘oˆGØ˜”8˜C”=ˆå& xÑ0Ô0ˆ	ØÐð ˜”�yÔ7½)Ô:QÑQÑRÝÔ+ò,ð ,ð &�	�	ð ð .à˜kÒ)Ð)Ø$2˜	˜	à$5˜	˜	à -�Iå)¨'Ñ2Ô2ˆð �!‰G�q‰=˜AÒÐØ�d‰NˆFØð Ø˜#‘�Ø�hÑˆFØ�$˜‘.Ñ ˆØð 	&Ø�c˜I‘oÑ%ˆFøØ�RÒÐØ�%˜% œ)Ñ#Ñ#ˆà€Ms   ÁAÁA$Á#A$Ú__main__zFUse 'makepy.py' to generate Python code - this module is just a helper)F)=r3   r'  r-  ÚstringÚ	itertoolsr   Úkeywordr   r(   rõ   Ú
pywintypesr   r.  r¿   Ú	Exceptionr   r   ÚVT_BOOLÚVT_CLSIDÚVT_CYÚVT_DATEÚ
VT_DECIMALÚVT_EMPTYÚVT_ERRORÚVT_FILETIMEÚ
VT_HRESULTÚVT_I1ÚVT_I2rþ   ÚVT_I8ÚVT_INTÚVT_NULLÚVT_R4ÚVT_R8Ú	VT_STREAMÚVT_UI1ÚVT_UI2ÚVT_UI4ÚVT_UI8ÚVT_UINTÚVT_VOIDÚNoTranslateTypesÚsetrÄ   r   r5   rA   rÞ   ré   r  rj   rÅ   Úascii_lettersÚdigitsr"  r  r7   r:  r¾   r   Úprintr   r   r   ú<module>ri     s  ðð
ð 
ð$ €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð ð
 €ð	ð 	ð 	ð 	ð 	˜Iñ 	ô 	ð 	ð $€ð ÔØÔØ„OØÔØÔØÔØÔØÔØÔØ„OØ„OØ„OØ„OØÔØÔØ„OØ„OØÔØÔØÔØÔØÔØÔØÔØÔð3Ð ð8 �Ð%Ñ&Ô&€ð4+ð 4+ð 4+ð 4+ð 4+ñ 4+ô 4+ð 4+ðnð ð ð ð ñ ô ð ð gð gð gð gð g�7ñ gô gð gðV
ð 
ð 
ð 
ð 
�ñ 
ô 
ð 
ð08ð 8ð 8ð 8ð 8�|ñ 8ô 8ð 8ð Ô�i”oØÔ�yÔ'ØÔ˜)œ/ð€ðD<ð D<ð D<ðN"ð "ð "ð,  Ô-°´Ñ=ÀÑCÐ ð3ð 3ð 3ð!Sð !Sð !Sð !SðRð ð ðL ð?ð ?ð ?ð ?ðD ˆzÒÐØ	€EÐ
RÑSÔSÐSÐSÐSð Ðr   