o
    àý°j>‡ ã                   @   s:  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mZm	Z	 d dl
mZmZmZ d dlmZmZ d dlmZmZmZmZmZ d dlmZmZmZ d d	lmZ d d
lmZ d dlmZ d Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4i d d “dd!“dd"“dd#“dd$“dd%“dd&“dd'“dd(“dd)“dd*“dd+“dd,“dd-“dd.“dd/“dd0“d1d2d3d4œ¥Z5dZ6dZ7dZ8dZ9dZ:dZ;d5Z<d6Z=d7Z>d Z?dZ@dZAdZBdZCd8ZDd9ZEdZFdZGdZHdZIdZJdZKd:d;d<d=d>d?d@dAœZLd ZMdZNdZOdZPdBdCdDdEœZQi ddF“ddG“dHdI“dJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“ddde“i dfdg“dhdi“djdk“dldm“dndo“dpdq“drds“dtdu“dvdw“dxdy“dzd{“d|d}“d~d“d€d�“d‚dƒ“d„d…“d†d‡“¥i dˆd‰“dŠd‹“dŒd�“dŽd�“d�d‘“d’d““d”d•“d–d—“d˜d™“dšd›“dœd�“dždŸ“d d¡“d¢d£“d¤d¥“d¦d§“d¨d©“¥i dªd«“d¬d­“d®d¯“d°d±“d²d³“d´dµ“d¶d·“d¸d¹“dºd»“d¼d½“d¾d¿“dÀdÁ“dÂdÃ“dÄdÅ“dÆdÇ“dÈdÉ“dÊdË“¥i dÌdÍ“dÎdÏ“dÐdÑ“dÒdÓ“dÔdÕ“dÖd×“dØdÙ“dÚdÛ“dÜdÝ“dÞdß“dàdá“dâdã“dädå“dædç“dèdé“dêdë“dìdí“¥i dîdï“dðdñ“dòdó“dôdõ“död÷“dødù“dúdû“düdý“dþdÿ“�d �d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“�d�d“¥i �d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d �d!“�d"�d#“�d$�d%“�d&�d'“�d(�d)“�d*�d+“�d,�d-“�d.�d/“�d0�d1“¥i �d2�d3“�d4�d5“�d6�d7“�d8�d9“�d:�d;“�d<�d=“�d>�d?“�d@�dA“�dB�dC“�dD�dE“�dF�dG“�dH�dI“�dJ�dK“�dL�dM“�dN�dO“�dP�dQ“�dR�dS“¥i �dT�dU“�dV�dW“�dX�dY“�dZ�d[“�d\�d]“�d^�d_“�d`�da“�db�dc“�dd�de“�df�dg“�dh�di“�dj�dk“�dl�dm“�dn�do“�dp�dq“�dr�ds“�dt�du“¥i �dv�dw“�dx�dy“�dz�d{“�d|�d}“�d~�d“�d€�d�“�d‚�dƒ“�d„�d…“�d†�d‡“�dˆ�d‰“�dŠ�d‹“�dŒ�d�“�dŽ�d�“�d��d‘“�d’�d““�d”�d•“�d–�d—“¥i �d˜�d™“�dš�d›“�dœ�d�“�dž�dŸ“�d �d¡“�d¢�d£“�d¤�d¥“�d¦�d§“�d¨�d©“�dª�d«“�d¬�d­“�d®�d¯“�d°�d±“�d²�d³“�d´�dµ“�d¶�d·“�d¸�d¹“¥i �dº�d»“�d¼�d½“�d¾�d¿“�dÀ�dÁ“�dÂ�dÃ“�dÄ�dÅ“�dÆ�dÇ“�dÈ�dÉ“�dÊ�dË“�dÌ�dÍ“�dÎ�dÏ“�dÐ�dÑ“�dÒ�dÓ“�dÔ�dÕ“�dÖ�d×“�dØ�dÙ“�dÚ�dÛ“¥i �dÜ�dÝ“�dÞ�dß“�dà�dá“�dâ�dã“�dä�då“�dæ�dç“�dè�dé“�dê�dë“�dì�dí“�dî�dï“�dð�dñ“�dò�dó“�dô�dõ“�dö�d÷“�dø�dù“�dú�dû“�dü�dý“¥i �dþ�dÿ“�d �d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“¥i �d �d!“�d"�d#“�d$�d%“�d&�d'“�d(�d)“�d*�d+“�d,�d-“�d.�d/“�d0�d1“�d2�d3“�d4�d5“�d6�d7“�d8�d9“�d:�d;“�d<�d=“�d>�d?“�d@�dA“¥i �dB�dC“�dD�dE“�dF�dG“�dH�dI“�dJ�dK“�dL�dM“�dN�dO“�dP�dQ“�dR�dS“�dT�dU“�dV�dW“�dX�dY“�dZ�d[“�d\�d]“�d^�d_“�d`�da“�db�dc“¥i �dd�de“�df�dg“�dh�di“�dj�dk“�dl�dm“�dn�do“�dp�dq“�dr�ds“�dt�du“�dv�dw“�dx�dy“�dz�d{“�d|�d}“�d~�d“�d€�d�“�d‚�dƒ“�d„�d…“¥i �d†�d‡“�dˆ�d‰“�dŠ�d‹“�dŒ�d�“�dŽ�d�“�d��d‘“�d’�d““�d”�d•“�d–�d—“�d˜�d™“�dš�d›“�dœ�d�“�dž�dŸ“�d �d¡“�d¢�d£“�d¤�d¥“�d¦�d§“¥i �d¨�d©“�dª�d«“�d¬�d­“�d®�d¯“�d°�d±“�d²�d³“�d´�dµ“�d¶�d·“�d¸�d¹“�dº�d»“�d¼�d½“�d¾�d¿“�dÀ�dÁ“�dÂ�dÃ“�dÄ�dÅ“�dÆ�dÇ“�dÈ�dÉ“¥i �dÊ�dË“�dÌ�dÍ“�dÎ�dÏ“�dÐ�dÑ“�dÒ�dÓ“�dÔ�dÕ“�dÖ�d×“�dØ�dÙ“�dÚ�dÛ“�dÜ�dÝ“�dÞ�dß“�dà�dá“�dâ�dã“�dä�då“�dæ�dç“�dè�dé“�dê�dë“¥i �dì�dí“�dî�dï“�dð�dñ“�dò�dó“�dô�dõ“�dö�d÷“�dø�dù“�dú�dû“�dü�dý“�dþ�dÿ“�d �d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“¥i �d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d �d!“�d"�d#“�d$�d%“�d&�d'“�d(�d)“�d*�d+“�d,�d-“�d.�d/“¥i �d0�d1“�d2�d3“�d4�d5“�d6�d7“�d8�d9“�d:�d;“�d<�d=“�d>�d?“�d@�dA“�dB�dC“�dD�dE“�dF�dG“�dH�dI“�dJ�dK“�dL�dM“�dN�dO“�dP�dQ“¥i �dR�dS“�dT�dU“�dV�dW“�dX�dY“�dZ�d[“�d\�d]“�d^�d_“�d`�da“�db�dc“�dd�de“�df�dg“�dh�di“�dj�dk“�dl�dm“�dn�do“�dp�dq“�dr�ds“¥�dt�du�dv�dw�dx�dy�dz�d{�d|�d}�d~�d�d€�d�œ¥ZRdZSdZTdHZUdJZVdLZWdNZXdPZYdRZZdTZ[dVZ\dXZ]dZZ^d\Z_d^Z`d`ZadbZbddZcdfZddhZedjZfdlZgdnZhdpZidrZjdtZkdvZldxZmdzZnd|Zod~Zpd€Zqd‚Zrd„Zsd†ZtdˆZudŠZvdŒZwdŽZxd�Zyd’Zzd”Z{d–Z|d˜Z}dšZ~dœZdžZ€d Z�d¢Z‚d¤Zƒd¦Z„d¨Z…dªZ†d¬Z‡d®Zˆd°Z‰d²ZŠd´Z‹d¶ZŒd¸Z�dºZŽd¼Z�d¾Z�dÀZ‘dÂZ’dÄZ“dÆZ”dÈZ•dÊZ–dÌZ—dÎZ˜dÐZ™dÒZšdÔZ›dÖZœdØZ�dÚZždÜZŸdÞZ dàZ¡dâZ¢däZ£dæZ¤dèZ¥dêZ¦dìZ§dîZ¨dðZ©dòZªdôZ«döZ¬døZ­dúZ®düZ¯dþZ°�d Z±�dZ²�dZ³�dZ´�dZµ�d
Z¶�dZ·�dZ¸�dZ¹�dZº�dZ»�dZ¼�dZ½�dZ¾�dZ¿�dZÀ�d ZÁ�d"ZÂ�d$ZÃ�d&ZÄ�d(ZÅ�d*ZÆ�d,ZÇ�d.ZÈ�d0ZÉ�d2ZÊ�d4ZË�d6ZÌ�d8ZÍ�d:ZÎ�d<ZÏ�d>ZÐ�d@ZÑ�dBZÒ�dDZÓ�dFZÔ�dHZÕ�dJZÖ�dLZ×�dNZØ�dPZÙ�dRZÚ�dTZÛ�dVZÜ�dXZÝ�dZZÞ�d\Zß�d^Zà�d`Zá�dbZâ�ddZã�dfZä�dhZå�djZæ�dlZç�dnZè�dpZé�drZê�dtZë�dvZì�dxZí�dzZî�d|Zï�d~Zð�d€Zñ�d‚Zò�d„Zó�d†Zô�dˆZõ�dŠZö�dŒZ÷�dŽZø�d�Zù�d’Zú�d”Zû�d–Zü�d˜Zý�dšZþ�dœZÿ�dž�Z �d �Z�d¢�Z�d¤�Z�d¦�Z�d¨�Z�dª�Z�d¬�Z�d®�Z�d°�Z	�d²�Z
�d´�Z�d¶�Z�d¸�Z�dº�Z�d¼�Z�d¾�Z�dÀ�Z�dÂ�Z�dÄ�Z�dÆ�Z�dÈ�Z�dÊ�Z�dÌ�Z�dÎ�Z�dÐ�Z�dÒ�Z�dÔ�Z�dÖ�Z�dØ�Z�dÚ�Z�dÜ�Z�dÞ�Z �dà�Z!�dâ�Z"�dä�Z#�dæ�Z$�dè�Z%�dê�Z&�dì�Z'�dî�Z(�dð�Z)�dò�Z*�dô�Z+�dö�Z,�dø�Z-�dú�Z.�dü�Z/�dþ�Z0�d �Z1�d�Z2�d�Z3�d�Z4�d�Z5�d
�Z6�d�Z7�d�Z8�d�Z9�d�Z:�d�Z;�d�Z<�d�Z=�d�Z>�d�Z?�d�Z@�d �ZA�d"�ZB�d$�ZC�d&�ZD�d(�ZE�d*�ZF�d,�ZG�d.�ZH�d0�ZI�d2�ZJ�d4�ZK�d6�ZL�d8�ZM�d:�ZN�d<�ZO�d>�ZP�d@�ZQ�dB�ZR�dD�ZS�dF�ZT�dH�ZU�dJ�ZV�dL�ZW�dN�ZX�dP�ZY�dR�ZZ�dT�Z[�dV�Z\�dX�Z]�dZ�Z^�d\�Z_�d^�Z`�d`�Za�db�Zb�dd�Zc�df�Zd�dh�Ze�dj�Zf�dl�Zg�dn�Zh�dp�Zi�dr�Zj�dt�Zk�dv�Zl�dx�Zm�dz�Zn�d|�Zo�d~�Zp�d€�Zq�d‚�Zr�d„�Zs�d†�Zt�dˆ�Zu�dŠ�Zv�dŒ�Zw�dŽ�Zx�d��Zy�d’�Zz�d”�Z{�d–�Z|�d˜�Z}�dš�Z~�dœ�Z�dž�Z€�d �Z��d¢�Z‚�d¤�Zƒ�d¦�Z„�d¨�Z…�dª�Z†�d¬�Z‡�d®�Zˆ�d°�Z‰�d²�ZŠ�d´�Z‹�d¶�ZŒ�d¸�Z��dº�ZŽ�d¼�Z��d¾�Z��dÀ�Z‘�dÂ�Z’�dÄ�Z“�dÆ�Z”�dÈ�Z•�dÊ�Z–�dÌ�Z—�dÎ�Z˜�dÐ�Z™�dÒ�Zš�dÔ�Z›�dÖ�Zœ�dØ�Z��dÚ�Zž�dÜ�ZŸ�dÞ�Z �dà�Z¡�dâ�Z¢�dä�Z£�dæ�Z¤�dè�Z¥�dê�Z¦�dì�Z§�dî�Z¨�dð�Z©�dò�Zª�dô�Z«�dö�Z¬�dø�Z­�dú�Z®�dü�Z¯�dþ�Z°�d �Z±�d�Z²�d�Z³�d�Z´�d�Zµ�d
�Z¶�d�Z·�d�Z¸�d�Z¹�d�Zº�d�Z»�d�Z¼�d�Z½�d�Z¾�d�Z¿�d�ZÀ�d �ZÁ�d"�ZÂ�d$�ZÃ�d&�ZÄ�d(�ZÅ�d*�ZÆ�d,�ZÇ�d.�ZÈ�d0�ZÉ�d2�ZÊ�d4�ZË�d6�ZÌ�d8�ZÍ�d:�ZÎ�d<�ZÏ�d>�ZÐ�d@�ZÑ�dB�ZÒ�dD�ZÓ�dF�ZÔ�dH�ZÕ�dJ�ZÖ�dL�Z×�dN�ZØ�dP�ZÙ�dR�ZÚ�dT�ZÛ�dV�ZÜ�dX�ZÝ�dZ�ZÞ�d\�Zß�d^�Zà�d`�Zá�db�Zâ�dd�Zã�df�Zä�dh�Zå�dj�Zæ�dl�Zç�dn�Zè�dp�Zé�dr�Zê�d‚�Zë�dƒ�Zì�d„�Zí�d…�Zî�d†�Zï�d‡�Zð�dˆ�Zñ�d‰�Zò�dŠ�Zó�d‹�Zô�dŒ�Zõ�d�ZW�dŽ�Zö�d��Z÷d�Zød�Zù�d��ZúG �d‘�d’„ �d’�eûƒ�ZüG �d“�d”„ �d”eƒ�ZýG �d•�d–„ �d–eƒ�ZþG �d—�d˜„ �d˜eƒ�ZÿG �d™�dš„ �dšeƒ�Z G �d›�dœ„ �dœ�e ƒ�ZG �d��dž„ �dž�e ƒ�ZG �dŸ�d „ �d eƒ�ZG �d¡�d¢„ �d¢eƒ�ZG �d£�d¤„ �d¤�e ƒ�ZG �d¥�d¦„ �d¦eƒ�ZG �d§�d¨„ �d¨eƒ�ZG �d©�dª„ �dªƒ�ZG �d«�d¬„ �d¬�eƒ�Z	G �d­�d®„ �d®�eƒ�Z
G �d¯�d°„ �d°�eƒ�ZG �d±�d²„ �d²eƒ�ZG �d³�d´„ �d´eƒ�ZG �dµ�d¶„ �d¶eƒ�ZG �d·�d¸„ �d¸eƒ�ZdS (¹  é    N)Ú	unhexlify)ÚARC4)ÚntlmÚLOG)Ú	StructureÚpackÚunpack)Ú
kerberosv5Úgssapi)Úuuidtup_to_binÚgenerateÚstringver_to_binÚbin_to_uuidtupÚbin_to_string)ÚUCHARÚULONGÚUSHORT)Ú	NDRSTRUCT)Úhresult_errors)ÚThreadé   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   é   zMSRPC REQUESTz
MSRPC PINGzMSRPC RESPONSEzMSRPC FAULTzMSRPC WORKINGzMSRPC NOCALLzMSRPC REJECTz	MSRPC ACKzMSRPC CL CANCELz
MSRPC FACKzMSRPC CANCELACKz
MSRPC BINDzMSRPC BINDACKzMSRPC BINDNAKzMSRPC ALTERCTXzMSRPC ALTERCTX RzMSRPC AUTH3zMSRPC SHUTDOWNzMSRPC CO CANCELzMSRPC ORPHANED)r&   r'   r(   é    é@   é€   éD   éÿ   Úreason_not_specifiedÚabstract_syntax_not_supportedÚ(proposed_transfer_syntaxes_not_supportedÚlocal_limit_exceededÚprotocol_version_not_specifiedÚ"authentication_type_not_recognizedÚinvalid_checksum)r   r   r   r   r   r   r   Ú
acceptanceÚuser_rejectionÚprovider_rejection)r   r   r   Úrpc_s_access_deniedz"Authentication type not recognizediØ  Úrpc_fault_cant_performiÆ  Úrpc_x_invalid_boundéä  z?rpc_s_cannot_support: The requested operation is not supported.i÷  Úrpc_x_bad_stub_datai Únca_s_comm_failurei Únca_s_op_rng_errori Únca_s_unk_ifi Únca_s_wrong_boot_timei	 Únca_s_you_crashedi Únca_s_proto_errori znca_s_out_args_too_big i Únca_s_server_too_busyi Únca_s_fault_string_too_longi znca_s_unsupported_type i  Únca_s_fault_int_div_by_zeroi  znca_s_fault_addr_error i  Únca_s_fault_fp_div_zeroi  Únca_s_fault_fp_underflowi  Únca_s_fault_fp_overflowi  Únca_s_fault_invalid_tagi  znca_s_fault_invalid_bound i  Únca_s_rpc_version_mismatchi	  znca_s_unspec_reject i
  Únca_s_bad_actidi  Únca_s_who_are_you_failedi  znca_s_manager_not_entered i  Únca_s_fault_canceli  Únca_s_fault_ill_insti  Únca_s_fault_fp_errori  Únca_s_fault_int_overflowi  Únca_s_fault_unspeci  z nca_s_fault_remote_comm_failure i  znca_s_fault_pipe_empty i  Únca_s_fault_pipe_closedi  znca_s_fault_pipe_order i  Únca_s_fault_pipe_disciplinei  Únca_s_fault_pipe_comm_errori  Únca_s_fault_pipe_memoryi  znca_s_fault_context_mismatch i  znca_s_fault_remote_no_memory i  Únca_s_invalid_pres_context_idi  Únca_s_unsupported_authn_leveli  znca_s_invalid_checksum i   Únca_s_invalid_crci!  Únca_s_fault_user_definedi"  Únca_s_fault_tx_open_failedi#  Únca_s_fault_codeset_conv_errori$  znca_s_fault_object_not_found i%  Únca_s_fault_no_client_stubi  ÉÚ	rpc_s_modi ÉÚrpc_s_op_rng_errori ÉÚrpc_s_cant_create_socketi ÉÚrpc_s_cant_bind_socketi ÉÚrpc_s_not_in_calli ÉÚrpc_s_no_porti ÉÚrpc_s_wrong_boot_timei ÉÚrpc_s_too_many_socketsi ÉÚrpc_s_illegal_registeri	 ÉÚrpc_s_cant_recvi
 ÉÚrpc_s_bad_pkti ÉÚrpc_s_unbound_handlei ÉÚrpc_s_addr_in_usei ÉÚrpc_s_in_args_too_bigi ÉÚrpc_s_string_too_longi ÉÚrpc_s_too_many_objectsi ÉÚrpc_s_binding_has_no_authi ÉÚrpc_s_unknown_authn_servicei ÉÚrpc_s_no_memoryi ÉÚrpc_s_cant_nmalloci ÉÚrpc_s_call_faultedi ÉÚrpc_s_call_failedi ÉÚrpc_s_comm_failurei ÉÚrpc_s_rpcd_comm_failurei ÉÚrpc_s_illegal_family_rebindi ÉÚrpc_s_invalid_handlei ÉÚrpc_s_coding_errori ÉÚrpc_s_object_not_foundi ÉÚrpc_s_cthread_not_foundi ÉÚrpc_s_invalid_bindingi ÉÚrpc_s_already_registeredi ÉÚrpc_s_endpoint_not_foundi  ÉÚrpc_s_invalid_rpc_protseqi! ÉÚrpc_s_desc_not_registeredi" ÉÚrpc_s_already_listeningi# ÉÚrpc_s_no_protseqsi$ ÉÚrpc_s_no_protseqs_registeredi% ÉÚrpc_s_no_bindingsi& ÉÚrpc_s_max_descs_exceededi' ÉÚrpc_s_no_interfacesi( ÉÚrpc_s_invalid_timeouti) ÉÚrpc_s_cant_inq_socketi* ÉÚrpc_s_invalid_naf_idi+ ÉÚrpc_s_inval_net_addri, ÉÚrpc_s_unknown_ifi- ÉÚrpc_s_unsupported_typei. ÉÚrpc_s_invalid_call_opti/ ÉÚrpc_s_no_faulti0 ÉÚrpc_s_cancel_timeouti1 ÉÚrpc_s_call_cancelledi2 ÉÚrpc_s_invalid_call_handlei3 ÉÚrpc_s_cannot_alloc_associ4 ÉÚrpc_s_cannot_connecti5 ÉÚrpc_s_connection_abortedi6 ÉÚrpc_s_connection_closedi7 ÉÚrpc_s_cannot_accepti8 ÉÚrpc_s_assoc_grp_not_foundi9 ÉÚrpc_s_stub_interface_errori: ÉÚrpc_s_invalid_objecti; ÉÚrpc_s_invalid_typei< ÉÚrpc_s_invalid_if_opnumi= ÉÚrpc_s_different_server_instancei> ÉÚrpc_s_protocol_errori? ÉÚrpc_s_cant_recvmsgi@ ÉÚrpc_s_invalid_string_bindingiA ÉÚrpc_s_connect_timed_outiB ÉÚrpc_s_connect_rejectediC ÉÚrpc_s_network_unreachableiD ÉÚrpc_s_connect_no_resourcesiE ÉÚrpc_s_rem_network_shutdowniF ÉÚrpc_s_too_many_rem_connectsiG ÉÚrpc_s_no_rem_endpointiH ÉÚrpc_s_rem_host_downiI ÉÚrpc_s_host_unreachableiJ ÉÚrpc_s_access_control_info_inviK ÉÚrpc_s_loc_connect_abortediL ÉÚrpc_s_connect_closed_by_remiM ÉÚrpc_s_rem_host_crashediN ÉÚrpc_s_invalid_endpoint_formatiO ÉÚrpc_s_unknown_status_codeiP ÉÚrpc_s_unknown_mgr_typeiQ ÉÚrpc_s_assoc_creation_failediR ÉÚrpc_s_assoc_grp_max_exceedediS ÉÚrpc_s_assoc_grp_alloc_failediT ÉÚrpc_s_sm_invalid_stateiU ÉÚrpc_s_assoc_req_rejectediV ÉÚrpc_s_assoc_shutdowniW ÉÚrpc_s_tsyntaxes_unsupportediX ÉÚrpc_s_context_id_not_foundiY ÉÚrpc_s_cant_listen_socketiZ ÉÚrpc_s_no_addrsi[ ÉÚrpc_s_cant_getpeernamei\ ÉÚrpc_s_cant_get_if_idi] ÉÚrpc_s_protseq_not_supportedi^ ÉÚrpc_s_call_orphanedi_ ÉÚrpc_s_who_are_you_failedi` ÉÚrpc_s_unknown_rejectia ÉÚrpc_s_type_already_registeredib ÉÚrpc_s_stop_listening_disabledic ÉÚrpc_s_invalid_argid ÉÚrpc_s_not_supportedie ÉÚrpc_s_wrong_kind_of_bindingif ÉÚrpc_s_authn_authz_mismatchig ÉÚrpc_s_call_queuedih ÉÚrpc_s_cannot_set_nodelayii ÉÚrpc_s_not_rpc_towerij ÉÚrpc_s_invalid_rpc_protidik ÉÚrpc_s_invalid_rpc_flooril ÉÚrpc_s_call_timeoutim ÉÚrpc_s_mgmt_op_disallowedin ÉÚrpc_s_manager_not_enteredio ÉÚrpc_s_calls_too_large_for_wk_epip ÉÚrpc_s_server_too_busyiq ÉÚrpc_s_prot_version_mismatchir ÉÚrpc_s_rpc_prot_version_mismatchis ÉÚrpc_s_ss_no_import_cursorit ÉÚrpc_s_fault_addr_erroriu ÉÚrpc_s_fault_context_mismatchiv ÉÚrpc_s_fault_fp_div_by_zeroiw ÉÚrpc_s_fault_fp_errorix ÉÚrpc_s_fault_fp_overflowiy ÉÚrpc_s_fault_fp_underflowiz ÉÚrpc_s_fault_ill_insti{ ÉÚrpc_s_fault_int_div_by_zeroi| ÉÚrpc_s_fault_int_overflowi} ÉÚrpc_s_fault_invalid_boundi~ ÉÚrpc_s_fault_invalid_tagi ÉÚrpc_s_fault_pipe_closedi€ ÉÚrpc_s_fault_pipe_comm_errori� ÉÚrpc_s_fault_pipe_disciplinei‚ ÉÚrpc_s_fault_pipe_emptyiƒ ÉÚrpc_s_fault_pipe_memoryi„ ÉÚrpc_s_fault_pipe_orderi… ÉÚrpc_s_fault_remote_comm_failurei† ÉÚrpc_s_fault_remote_no_memoryi‡ ÉÚrpc_s_fault_unspeciˆ ÉÚuuid_s_bad_versioni‰ ÉÚuuid_s_socket_failureiŠ ÉÚuuid_s_getconf_failurei‹ ÉÚuuid_s_no_addressiŒ ÉÚuuid_s_overruni� ÉÚuuid_s_internal_erroriŽ ÉÚuuid_s_coding_errori� ÉÚuuid_s_invalid_string_uuidi� ÉÚuuid_s_no_memoryi‘ ÉÚrpc_s_no_more_entriesi’ ÉÚrpc_s_unknown_ns_errori“ ÉÚrpc_s_name_service_unavailablei” ÉÚrpc_s_incomplete_namei• ÉÚrpc_s_group_not_foundi– ÉÚrpc_s_invalid_name_syntaxi— ÉÚrpc_s_no_more_membersi˜ ÉÚrpc_s_no_more_interfacesi™ ÉÚrpc_s_invalid_name_serviceiš ÉÚrpc_s_no_name_mappingi› ÉÚrpc_s_profile_not_foundiœ ÉÚrpc_s_not_foundi� ÉÚrpc_s_no_updatesiž ÉÚrpc_s_update_failediŸ ÉÚrpc_s_no_match_exportedi  ÉÚrpc_s_entry_not_foundi¡ ÉÚrpc_s_invalid_inquiry_contexti¢ ÉÚrpc_s_interface_not_foundi£ ÉÚrpc_s_group_member_not_foundi¤ ÉÚrpc_s_entry_already_existsi¥ ÉÚrpc_s_nsinit_failurei¦ ÉÚrpc_s_unsupported_name_syntaxi§ ÉÚrpc_s_no_more_elementsi¨ ÉÚrpc_s_no_ns_permissioni© ÉÚrpc_s_invalid_inquiry_typeiª ÉÚrpc_s_profile_element_not_foundi« ÉÚrpc_s_profile_element_replacedi¬ ÉÚrpc_s_import_already_donei­ ÉÚrpc_s_database_busyi® ÉÚrpc_s_invalid_import_contexti¯ ÉÚrpc_s_uuid_set_not_foundi° ÉÚrpc_s_uuid_member_not_foundi± ÉÚrpc_s_no_interfaces_exportedi² ÉÚrpc_s_tower_set_not_foundi³ ÉÚrpc_s_tower_member_not_foundi´ ÉÚrpc_s_obj_uuid_not_foundiµ ÉÚrpc_s_no_more_bindingsi¶ ÉÚrpc_s_invalid_priorityi· ÉÚrpc_s_not_rpc_entryi¸ ÉÚrpc_s_invalid_lookup_contexti¹ ÉÚrpc_s_binding_vector_fulliº ÉÚrpc_s_cycle_detectedi» ÉÚrpc_s_nothing_to_exporti¼ ÉÚrpc_s_nothing_to_unexporti½ ÉÚrpc_s_invalid_vers_optioni¾ ÉÚrpc_s_no_rpc_datai¿ ÉÚrpc_s_mbr_pickediÀ ÉÚrpc_s_not_all_objs_unexportediÁ ÉÚrpc_s_no_entry_nameiÂ ÉÚrpc_s_priority_group_doneiÃ ÉÚrpc_s_partial_resultsiÄ ÉÚrpc_s_no_env_setupiÅ ÉÚtwr_s_unknown_saiÆ ÉÚtwr_s_unknown_toweriÇ ÉÚtwr_s_not_implementediÈ ÉÚrpc_s_max_calls_too_smalliÉ ÉÚrpc_s_cthread_create_failediÊ ÉÚrpc_s_cthread_pool_existsiË ÉÚrpc_s_cthread_no_such_pooliÌ ÉÚrpc_s_cthread_invoke_disablediÍ ÉÚept_s_cant_perform_opiÎ ÉÚept_s_no_memoryiÏ ÉÚept_s_database_invalidiÐ ÉÚept_s_cant_createiÑ ÉÚept_s_cant_accessiÒ ÉÚept_s_database_already_openiÓ ÉÚept_s_invalid_entryiÔ ÉÚept_s_update_failediÕ ÉÚept_s_invalid_contextiÖ ÉÚept_s_not_registeredi× ÉÚept_s_server_unavailableiØ ÉÚrpc_s_underspecified_nameiÙ ÉÚrpc_s_invalid_ns_handleiÚ ÉÚrpc_s_unknown_erroriÛ ÉÚrpc_s_ss_char_trans_open_failiÜ ÉÚrpc_s_ss_char_trans_short_fileiÝ ÉÚrpc_s_ss_context_damagediÞ ÉÚrpc_s_ss_in_null_contextiß ÉÚrpc_s_socket_failureià ÉÚrpc_s_unsupported_protect_leveliá ÉÚrpc_s_invalid_checksumiâ ÉÚrpc_s_invalid_credentialsiã ÉÚrpc_s_credentials_too_largeiä ÉÚrpc_s_call_id_not_foundiå ÉÚrpc_s_key_id_not_foundiæ ÉÚrpc_s_auth_bad_integrityiç ÉÚrpc_s_auth_tkt_expirediè ÉÚrpc_s_auth_tkt_nyvié ÉÚrpc_s_auth_repeatiê ÉÚrpc_s_auth_not_usië ÉÚrpc_s_auth_badmatchiì ÉÚrpc_s_auth_skewií ÉÚrpc_s_auth_badaddriî ÉÚrpc_s_auth_badversioniï ÉÚrpc_s_auth_msg_typeið ÉÚrpc_s_auth_modifiediñ ÉÚrpc_s_auth_badorderiò ÉÚrpc_s_auth_badkeyverió ÉÚrpc_s_auth_nokeyiô ÉÚrpc_s_auth_mut_failiõ ÉÚrpc_s_auth_baddirectioniö ÉÚrpc_s_auth_methodi÷ ÉÚrpc_s_auth_badseqiø ÉÚrpc_s_auth_inapp_cksumiù ÉÚrpc_s_auth_field_toolongiú ÉÚrpc_s_invalid_crciû ÉÚrpc_s_binding_incompleteiü ÉÚrpc_s_key_func_not_allowediý ÉÚrpc_s_unknown_stub_rtl_if_versiþ ÉÚrpc_s_unknown_ifspec_versiÿ ÉÚrpc_s_proto_unsupp_by_authi ¡ÉÚrpc_s_authn_challenge_malformedi¡ÉÚrpc_s_protect_level_mismatchi¡ÉÚrpc_s_no_mepvi¡ÉÚrpc_s_stub_protocol_errori¡ÉÚrpc_s_class_version_mismatchi¡ÉÚrpc_s_helper_not_runningi¡ÉÚrpc_s_helper_short_readi¡ÉÚrpc_s_helper_catatonici¡ÉÚrpc_s_helper_abortedi	¡ÉÚrpc_s_not_in_kerneli
¡ÉÚrpc_s_helper_wrong_useri¡ÉÚrpc_s_helper_overflowi¡ÉÚrpc_s_dg_need_way_authi¡ÉÚrpc_s_unsupported_auth_subtypei¡ÉÚrpc_s_wrong_pickle_typei¡ÉÚrpc_s_not_listeningi¡ÉÚrpc_s_ss_bad_bufferi¡ÉÚrpc_s_ss_bad_es_actioni¡ÉÚrpc_s_ss_wrong_es_versioni¡ÉÚrpc_s_fault_user_definedi¡ÉÚrpc_s_ss_incompatible_codesetsi¡ÉÚrpc_s_tx_not_in_transactioni¡ÉÚrpc_s_tx_open_failedi¡ÉÚrpc_s_partial_credentialsi¡ÉÚrpc_s_ss_invalid_codeset_tagi¡ÉÚrpc_s_mgmt_bad_typei¡ÉÚrpc_s_ss_invalid_char_inputi¡ÉÚrpc_s_ss_short_conv_bufferi¡ÉÚrpc_s_ss_iconv_errori¡ÉÚrpc_s_ss_no_compat_codeseti¡ÉÚrpc_s_ss_no_compat_charsetsi¡ÉÚdce_cs_c_oki ¡ÉÚdce_cs_c_unknowni!¡ÉÚdce_cs_c_notfoundi"¡ÉÚdce_cs_c_cannot_open_filei#¡ÉÚdce_cs_c_cannot_read_filei$¡ÉÚdce_cs_c_cannot_allocate_memoryi%¡ÉÚrpc_s_ss_cleanup_failedi&¡ÉÚrpc_svc_desc_generali'¡ÉÚrpc_svc_desc_mutexi(¡ÉÚrpc_svc_desc_xmiti)¡ÉÚrpc_svc_desc_recvi*¡ÉÚrpc_svc_desc_dg_statei+¡ÉÚrpc_svc_desc_canceli,¡ÉÚrpc_svc_desc_orphani-¡ÉÚrpc_svc_desc_cn_statei.¡ÉÚrpc_svc_desc_cn_pkti/¡ÉÚrpc_svc_desc_pkt_quotasi0¡ÉÚrpc_svc_desc_authi1¡ÉÚrpc_svc_desc_sourcei2¡ÉÚrpc_svc_desc_statsi3¡ÉÚrpc_svc_desc_memi4¡ÉÚrpc_svc_desc_mem_typei5¡ÉÚrpc_svc_desc_dg_pktlogi6¡ÉÚrpc_svc_desc_thread_idi7¡ÉÚrpc_svc_desc_timestampi8¡ÉÚrpc_svc_desc_cn_errorsi9¡ÉÚrpc_svc_desc_conv_threadi:¡ÉÚrpc_svc_desc_pidi;¡ÉÚrpc_svc_desc_atforki<¡ÉÚrpc_svc_desc_cma_threadi=¡ÉÚrpc_svc_desc_inheriti>¡ÉÚrpc_svc_desc_dg_socketsi?¡ÉÚrpc_svc_desc_timeri@¡ÉÚrpc_svc_desc_threadsiA¡ÉÚrpc_svc_desc_server_calliB¡ÉÚrpc_svc_desc_nsiiC¡ÉÚrpc_svc_desc_dg_pktiD¡ÉÚrpc_m_cn_ill_state_trans_saiE¡ÉÚrpc_m_cn_ill_state_trans_caiF¡ÉÚrpc_m_cn_ill_state_trans_sgiG¡ÉÚrpc_m_cn_ill_state_trans_cgiH¡ÉÚrpc_m_cn_ill_state_trans_sriI¡ÉÚrpc_m_cn_ill_state_trans_criJ¡ÉÚrpc_m_bad_pkt_typeiK¡ÉÚrpc_m_prot_mismatchiL¡ÉÚrpc_m_frag_toobigiM¡ÉÚrpc_m_unsupp_stub_rtl_ifiN¡ÉÚrpc_m_unhandled_callstateiO¡ÉÚrpc_m_call_failediP¡ÉÚrpc_m_call_failed_no_statusiQ¡ÉÚrpc_m_call_failed_errnoiR¡ÉÚrpc_m_call_failed_siS¡ÉÚrpc_m_call_failed_ciT¡ÉÚrpc_m_errmsg_toobigiU¡ÉÚrpc_m_invalid_srchattriV¡ÉÚrpc_m_nts_not_foundiW¡ÉÚrpc_m_invalid_accbytcntiX¡ÉÚrpc_m_pre_v2_ifspeciY¡ÉÚrpc_m_unk_ifspeciZ¡ÉÚrpc_m_recvbuf_toosmalli[¡ÉÚrpc_m_unalign_authtrli\¡ÉÚrpc_m_unexpected_exci]¡ÉÚrpc_m_no_stub_datai^¡ÉÚrpc_m_eventlist_fulli_¡ÉÚrpc_m_unk_sock_typei`¡ÉÚrpc_m_unimp_callia¡ÉÚrpc_m_invalid_seqnumib¡ÉÚrpc_m_cant_create_uuidic¡ÉÚrpc_m_pre_v2_ssid¡ÉÚrpc_m_dgpkt_pool_corruptÚrpc_m_dgpkt_bad_freeÚrpc_m_lookaside_corruptÚrpc_m_alloc_failÚrpc_m_realloc_failÚrpc_m_cant_open_fileÚrpc_m_cant_read_addrÚrpc_svc_desc_libidlÚrpc_m_ctxrundown_nomemÚrpc_m_ctxrundown_excÚrpc_s_fault_codeset_conv_errorÚrpc_s_no_call_activeÚrpc_s_cannot_supportÚrpc_s_no_context_available)ée¡Ééf¡Éég¡Ééh¡Ééi¡Ééj¡Éék¡Éél¡Éém¡Één¡Ééo¡Éép¡Ééq¡ÉrÐ  rÑ  rÒ  rÓ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÚ  rÛ  rÜ  z6CB71C2C-9812-4540-)z$8A885D04-1CEB-11C9-9FE8-08002B104860ú2.0c                   @   s2   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ ZdS )ÚDCERPCExceptionzq
    This is the exception every client should catch regardless of the underlying
    DCERPC Transport used.
    Nc                 C   sL   t  | ¡ || _|| _|dur!z|d | _W dS    || _Y dS || _dS )a~  
        :param string error_string: A string you want to show explaining the exception. Otherwise the default ones will be used
        :param integer error_code: the error_code if we're using a dictionary with error's descriptions
        :param NDR packet: if successfully decoded, the NDR packet of the response call. This could probably have useful
        information
        NÚ	ErrorCode)Ú	ExceptionÚ__init__ÚpacketÚerror_stringÚ
error_code)Úselfrã  rä  râ  © ræ  ú‹/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/rpcrt.pyrá  ð  s   

zDCERPCException.__init__c                 C   ó   | j S ©N©rä  ©rå  ræ  ræ  rç  Úget_error_code  ó   zDCERPCException.get_error_codec                 C   rè  ré  )râ  rë  ræ  ræ  rç  Ú
get_packet  rí  zDCERPCException.get_packetc                 C   s>   | j }| jd ur| jS |tv rt| }d| j |f S d| j  S )Nz&DCERPC Runtime Error: code: 0x%x - %s z.DCERPC Runtime Error: unknown error code: 0x%x)rä  rã  Úrpc_status_codes)rå  ÚkeyÚerror_msg_shortræ  ræ  rç  Ú__str__  s   

zDCERPCException.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rá  rì  rî  rò  ræ  ræ  ræ  rç  rÞ  ë  s    
rÞ  c                   @   ó   e Zd ZdZdS )ÚCtxItem))Ú	ContextIDú<H=0)Ú
TransItemsúB=0)ÚPadrü  )ÚAbstractSyntaxú20s=""©ÚTransferSyntaxrÿ  N©ró  rô  rõ  Ú	structureræ  ræ  ræ  rç  rø    ó    rø  c                   @   r÷  )ÚCtxItemResult))ÚResultrú  )ÚReasonrú  r   Nr  ræ  ræ  ræ  rç  r    r  r  c                   @   r÷  )ÚSEC_TRAILER))Ú	auth_typezB=10)Ú
auth_levelrü  )Úauth_pad_lenrü  )Ú
auth_rsvrdrü  )Úauth_ctx_idz	<L=747920N)ró  rô  rõ  Ú	commonHdrræ  ræ  ræ  rç  r  #  r  r  c                   @   s2   e Zd ZdZdZdZddd„Zdd	„ Zd
d„ ZdS )ÚMSRPCHeaderr%   ))Ú	ver_majorzB=5)Ú	ver_minorrü  )Útyperü  )Úflagsrü  )Úrepresentationz<L=0x10)Úfrag_lenzm<H=self._SIZE+len(auth_data)+(16 if (self["flags"] & 0x80) > 0 else 0)+len(pduData)+len(pad)+len(sec_trailer))Úauth_lenz<H=len(auth_data))Úcall_idz<L=1))ÚdataLenz	_-pduDatazOself["frag_len"]-self["auth_len"]-self._SIZE-(8 if self["auth_len"] > 0 else 0))ÚpduDataú:)Ú_padz_-padz_(4 - ((self._SIZE + (16 if (self["flags"] & 0x80) > 0 else 0) + len(self["pduData"])) & 3) & 3))Úpadr  ©Ú_sec_trailerz_-sec_trailerz 8 if self["auth_len"] > 0 else 0©Úsec_trailerr  ©Úauth_dataLenz_-auth_datazself["auth_len"]©Ú	auth_datar  Nr   c                 C   sp   t  | ||¡ |d u r6d| d< d| d< ttB | d< t| d< d| _d| d< d| d	< d| d
< d| d< d| d< d S d S )Nr   r  r   r  r  r  r  ó    r  r$  r   r  )r   rá  ÚPFC_FIRST_FRAGÚPFC_LAST_FRAGÚMSRPC_REQUESTÚ_MSRPCHeader__frag_len_set©rå  ÚdataÚ	alignmentræ  ræ  rç  rá  D  s   özMSRPCHeader.__init__c                 C   s    | j | d t@ dkrd S d S )Nr  r   r%   )Ú_SIZEÚPFC_OBJECT_UUIDrë  ræ  ræ  rç  Úget_header_sizeR  s    zMSRPCHeader.get_header_sizec                 C   s$   | d dkrt | d ƒ| d< |  ¡ S )Nr$  r%  r  )ÚlenÚgetDatarë  ræ  ræ  rç  rî  U  s   zMSRPCHeader.get_packet©Nr   )	ró  rô  rõ  r-  r  r  rá  r/  rî  ræ  ræ  ræ  rç  r  ,  s    
r  c                   @   ó$   e Zd ZdZejd Zddd„ZdS )ÚMSRPCRequestHeaderé   )©Ú
alloc_hintú<L=0©Úctx_idrú  )Úop_numrú  )Ú_uuidz_-uuidz%16 if self["flags"] & 0x80 > 0 else 0)Úuuidr  Nr   c                 C   s6   t  | ||¡ |d u rt| d< d| d< d| d< d S d S )Nr  r   r:  r%  r=  )r  rá  r(  r*  ræ  ræ  rç  rá  i  s   ýzMSRPCRequestHeader.__init__r2  ©ró  rô  rõ  r-  r  r  rá  ræ  ræ  ræ  rç  r4  _  s    
r4  c                   @   r3  )ÚMSRPCRespHeaderr5  )r6  r9  )Úcancel_countú<B=0)ÚpaddingrA  Nr   c                 C   s.   t  | ||¡ |d u rt| d< d| d< d S d S )Nr  r   r:  )r  rá  ÚMSRPC_RESPONSE)rå  ÚaBufferr,  ræ  ræ  rç  rá  y  s
   þzMSRPCRespHeader.__init__r2  r>  ræ  ræ  ræ  rç  r?  p  s    
r?  c                   @   óD   e Zd Zeeƒ ƒZdZddd„Zdd„ Zdd	„ Z	d
d„ Z
dd„ ZdS )Ú	MSRPCBind©)Ú	max_tfragú<H=4280)Ú	max_rfragrI  ©Úassoc_groupr8  ©Úctx_numrü  ©ÚReservedrü  ©Ú	Reserved2rú  ©Ú
_ctx_itemsz_-ctx_itemsz"self["ctx_num"]*self._CTX_ITEM_LEN©Ú	ctx_itemsr  Nr   c                 C   sH   t  | ||¡ |d u rd| d< d| d< d| d< d| d< d| d	< g | _d S )
Né¸  rH  rJ  r   rL  r   rN  r%  rV  )r   rá  Ú_MSRPCBind__ctx_itemsr*  ræ  ræ  rç  rá  Œ  s   
zMSRPCBind.__init__c                 C   ó   | j  |¡ d S ré  )rX  Úappend©rå  Úitemræ  ræ  rç  Ú
addCtxItem–  ó   zMSRPCBind.addCtxItemc                 C   rè  ré  ©rX  rë  ræ  ræ  rç  ÚgetCtxItems™  rí  zMSRPCBind.getCtxItemsc                 C   ó   | j |d  S ©Nr   r_  ©rå  Úindexræ  ræ  rç  Ú
getCtxItemœ  ó   zMSRPCBind.getCtxItemc                 C   ó8   t | jƒ| d< | jD ]}| d  | ¡ 7  < q
t | ¡S ©NrN  rV  )r0  rX  r1  r   ©rå  Úiræ  ræ  rç  r1  Ÿ  ó   

zMSRPCBind.getDatar2  ©ró  rô  rõ  r0  rø  Ú_CTX_ITEM_LENr  rá  r]  r`  re  r1  ræ  ræ  ræ  rç  rF    s    


rF  c                   @   rE  )ÚMSRPCRelayBindrG  Nr   c                 C   sŠ   t  | ||¡ |d u rd| d< d| d< d| d< d| d< d| d	< g | _| d	 }tt| d
 | j ƒƒD ]}| j t|ƒ¡ || jd … }q1d S )NrW  rH  rJ  r   rL  r   rN  r%  rV  rT  )r   rá  Ú_MSRPCRelayBind__ctx_itemsÚrangeÚintrm  rZ  rø  )rå  r+  r,  Úctx_items_datarj  ræ  ræ  rç  rá  ³  s   þzMSRPCRelayBind.__init__c                 C   rY  ré  )ro  rZ  r[  ræ  ræ  rç  r]  Á  r^  zMSRPCRelayBind.addCtxItemc                 C   rè  ré  ©ro  rë  ræ  ræ  rç  r`  Ä  rí  zMSRPCRelayBind.getCtxItemsc                 C   ra  rb  rs  rc  ræ  ræ  rç  re  Ç  rf  zMSRPCRelayBind.getCtxItemc                 C   rg  rh  )r0  ro  r1  r   ri  ræ  ræ  rç  r1  Ê  rk  zMSRPCRelayBind.getDatar2  rl  ræ  ræ  ræ  rç  rn  ¦  s    

rn  c                   @   s@   e Zd ZdZeeƒ ƒZdZddd„Zdd„ Z	d	d
„ Z
dd„ ZdS )ÚMSRPCBindAcké   )©rH  rú  ©rJ  rú  rK  ©ÚSecondaryAddrLenz<H&SecondaryAddr©ÚSecondaryAddrÚz©ÚPadLenz_-Padz1(4-((self["SecondaryAddrLen"]+self._SIZE) % 4))%4©rý  r  rM  rO  rQ  rS  rU  r  r  r!  r#  Nr   c                 C   sD   g | _ t | ||¡ |d u r d| d< d| d< d| d< d| d< d S d S )Nr%  rý  rV  r   r$  )Ú_MSRPCBindAck__ctx_itemsr  rá  r*  ræ  ræ  rç  rá  å  s   üzMSRPCBindAck.__init__c                 C   rè  ré  ©r€  rë  ræ  ræ  rç  r`  î  rí  zMSRPCBindAck.getCtxItemsc                 C   ra  rb  r�  rc  ræ  ræ  rç  re  ñ  rf  zMSRPCBindAck.getCtxItemc                 C   óN   t  | |¡ | d }t| d ƒD ]}t|ƒ}| j |¡ |t|ƒd … }qd S ©NrV  rN  )r   Ú
fromStringrp  r  r€  rZ  r0  ©rå  r+  rj  r\  ræ  ræ  rç  r„  ô  ó   ýzMSRPCBindAck.fromStringr2  )ró  rô  rõ  r-  r0  r  rm  r  rá  r`  re  r„  ræ  ræ  ræ  rç  rt  Ð  s    

	rt  c                   @   sP   e Zd ZdZeeƒ ƒZdZddd„Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ ZdS )ÚMSRPCRelayBindAckru  )rv  rw  rK  rx  rz  r}  r  rM  rO  rQ  rS  rU  Nr   c                 C   s<   g | _ t | ||¡ |d u rd| d< d| d< d| d< d S d S )Nr%  rý  rV  r   rN  )Ú_MSRPCRelayBindAck__ctx_itemsr   rá  r*  ræ  ræ  rç  rá    s   ýzMSRPCRelayBindAck.__init__c                 C   rè  ré  ©rˆ  rë  ræ  ræ  rç  r`    rí  zMSRPCRelayBindAck.getCtxItemsc                 C   ra  rb  r‰  rc  ræ  ræ  rç  re    rf  zMSRPCRelayBindAck.getCtxItemc                 C   rY  ré  )rˆ  rZ  r[  ræ  ræ  rç  r]    r^  zMSRPCRelayBindAck.addCtxItemc                 C   r‚  rƒ  )r   r„  rp  r  rˆ  rZ  r0  r…  ræ  ræ  rç  r„    r†  zMSRPCRelayBindAck.fromStringc                 C   sn   t | d ƒd | d< dd| d | j d  d  | d< t | jƒ| d< | jD ]}| d  | ¡ 7  < q%t | ¡S )	Nr{  r   ry  ú r   rý  rN  rV  )r0  r-  rˆ  r1  r   ri  ræ  ræ  rç  r1  (  s   "

zMSRPCRelayBindAck.getDatar2  )ró  rô  rõ  r-  r0  r  rm  r  rá  r`  re  r]  r„  r1  ræ  ræ  ræ  rç  r‡  ý  s    

	r‡  c                   @   s   e Zd ZdZddd„ZdS )ÚMSRPCBindNak))ÚRejectedReasonrú  )ÚSupportedVersionsr  Nr   c                 C   ó&   t  | ||¡ |d u rd| d< d S d S )Nr%  r�  )r   rá  r*  ræ  ræ  rç  rá  5  ó   ÿzMSRPCBindNak.__init__r2  )ró  rô  rõ  r  rá  ræ  ræ  ræ  rç  r‹  0  s    r‹  c                   @   s²   e Zd ZedƒZedƒZeZdd„ Zdd„ Zdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd(dd„Zd)dd„Zdd„ Zd*dd„Zdd „ Zd!d"„ Zd*d#d$„Zd+d&d'„ZdS ),ÚDCERPC©z$8a885d04-1ceb-11c9-9fe8-08002b104860rÝ  )z$71710533-BEBA-4937-8319-B5DBEF9CCC36z1.0c                 C   s(   || _ |  d¡ d | _|  ¡  d | _d S r2  )Ú
_transportÚ
set_ctx_idÚ_max_user_fragÚset_default_max_fragment_sizeÚ_ctx©rå  Ú	transportræ  ræ  rç  rá  A  s
   

zDCERPC.__init__c                 C   rè  ré  )r’  rë  ræ  ræ  rç  Úget_rpc_transportH  rí  zDCERPC.get_rpc_transportc                 C   ó
   || _ d S ré  )r–  )rå  r:  ræ  ræ  rç  r“  K  ó   
zDCERPC.set_ctx_idc                 C   ó
   | j  ¡ S ré  )r’  Úconnectrë  ræ  ræ  rç  r�  N  r›  zDCERPC.connectc                 C   rœ  ré  )r’  Ú
disconnectrë  ræ  ræ  rç  rž  Q  r›  zDCERPC.disconnectc                 C   s   |dkr
|   ¡  d S || _d S )Néÿÿÿÿ)r•  r”  )rå  Úfragment_sizeræ  ræ  rç  Úset_max_fragment_sizeT  s   
zDCERPC.set_max_fragment_sizec                 C   s
   d| _ d S r2  )r”  rë  ræ  ræ  rç  r•  ]  s   
z$DCERPC.set_default_max_fragment_sizec                 C   ó   t dƒ‚©Nz+virtual method. Not implemented in subclass©ÚRuntimeError©rå  r+  ræ  ræ  rç  Úsenda  ó   zDCERPC.sendc                 C   r¢  r£  r¤  rë  ræ  ræ  rç  Úrecvd  r¨  zDCERPC.recvÚ c                 C   r¢  r£  r¤  )rå  ÚnewUIDÚbogus_bindsræ  ræ  rç  Ú	alter_ctxg  r¨  zDCERPC.alter_ctxNc	           	      C   ó   d S ré  ræ  ©	rå  ÚusernameÚpasswordÚdomainÚlmhashÚnthashÚaesKeyÚTGTÚTGSræ  ræ  rç  Úset_credentialsj  ó   zDCERPC.set_credentialsc                 C   r®  ré  ræ  ©rå  r
  ræ  ræ  rç  Úset_auth_levelm  r¹  zDCERPC.set_auth_levelc                 C   r®  ré  ræ  ©rå  r	  Úcallbackræ  ræ  rç  Úset_auth_typep  r¹  zDCERPC.set_auth_typec                 C   s   dS r2  ræ  rë  ræ  ræ  rç  Úget_idempotents  r¹  zDCERPC.get_idempotentc                 C   r®  ré  ræ  )rå  Úflagræ  ræ  rç  Úset_idempotentv  r¹  zDCERPC.set_idempotentc                 C   s2   t |dƒr|  t|| ¡ |ƒ¡S |  t|||ƒ¡S )Nr1  )Úhasattrr§  ÚDCERPC_RawCallr1  )rå  ÚfunctionÚbodyr=  ræ  ræ  rç  Úcally  s   
zDCERPC.callTc                 C   sø   | j | jkr| | j¡ d}nd}|  |j||¡ |  ¡ }t|jƒ tj	|j }t
||jjd ƒ}|dd … dkrt|du rttd|dd … ƒd }|tv rSt|d�}	|	‚t
|d	ƒ}
z|||d
�}W n   |
|d�}	Y |	‚|
||d�}	|	‚|||d
�}|S )NTFÚResponseéüÿÿÿs       ú<Lr   rê  ÚDCERPCSessionError)ÚisNDR64)râ  rä  )Útransfer_syntaxÚNDR64SyntaxÚchangeTransferSyntaxrÆ  Úopnumr©  Ú
__import__rô  ÚsysÚmodulesÚgetattrÚ	__class__ró  r   rï  rÞ  )rå  Úrequestr=  Ú
checkErrorrË  ÚanswerÚmoduleÚ	respClassrä  Ú	exceptionÚsessionErrorClassÚresponseræ  ræ  rç  rÕ    s0   


÷ÿzDCERPC.request)rª  ©rª  rª  rª  rª  NNré  )NT)ró  rô  rõ  r   Ú	NDRSyntaxrÍ  rÌ  rá  r™  r“  r�  rž  r¡  r•  r§  r©  r­  r¸  r»  r¾  r¿  rÁ  rÆ  rÕ  ræ  ræ  ræ  rç  r�  :  s*    	



r�  c                   @   s   e Zd ZdS )Ú	DCERPC_v4N)ró  rô  rõ  ræ  ræ  ræ  rç  rß  ¡  s    rß  c                   @   sŽ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zd#dd„Zdd„ Z	dd„ Z
dd„ Zd$dd„Zd%dd„Zd&dd„Zdd„ Zdd „ Zd'd!d"„ZdS )(Ú	DCERPC_v5c                 C   sÂ   t  | |¡ t| _t| _d | _d| _d | _d | _	d| _
d| _d| _d| _d | _d | _d| _d| _d| _d| _d| _d| _d| _d| _tdƒ| _d| _d| _d | _d| _d| _d | _d| _ d | _!d S )Nr   rª  Fr%  r‘  r   )"r�  rá  ÚRPC_C_AUTHN_LEVEL_NONEÚ_DCERPC_v5__auth_levelÚRPC_C_AUTHN_WINNTÚ_DCERPC_v5__auth_typeÚ_DCERPC_v5__auth_type_callbackÚ_DCERPC_v5__auth_flagsÚ_DCERPC_v5__usernameÚ_DCERPC_v5__passwordÚ_DCERPC_v5__domainÚ_DCERPC_v5__lmhashÚ_DCERPC_v5__nthashÚ_DCERPC_v5__aesKeyÚ_DCERPC_v5__TGTÚ_DCERPC_v5__TGSÚ_DCERPC_v5__aesNegociatedÚ_DCERPC_v5__clientSigningKeyÚ_DCERPC_v5__serverSigningKeyÚ_DCERPC_v5__clientSealingKeyÚ_DCERPC_v5__clientSealingHandleÚ_DCERPC_v5__serverSealingKeyÚ_DCERPC_v5__serverSealingHandleÚ_DCERPC_v5__sequencer   rÌ  Ú_DCERPC_v5__callidr–  Ú_DCERPC_v5__sessionKeyÚ_DCERPC_v5__max_xmit_sizeÚ_DCERPC_v5__flagsÚ_DCERPC_v5__cipherÚ_DCERPC_v5__confounderÚ_DCERPC_v5__gssr—  ræ  ræ  rç  rá  ¥  s<   

zDCERPC_v5.__init__c                 C   rš  ré  )rï  )rå  Úis_aesræ  ræ  rç  Úset_aesÈ  r›  zDCERPC_v5.set_aesc                 C   rš  ré  ©rø  )rå  Úsession_keyræ  ræ  rç  Úset_session_keyË  r›  zDCERPC_v5.set_session_keyc                 C   rè  ré  r   rë  ræ  ræ  rç  Úget_session_keyÎ  rí  zDCERPC_v5.get_session_keyc                 C   rš  ré  )râ  rº  ræ  ræ  rç  r»  Ñ  r›  zDCERPC_v5.set_auth_levelNc                 C   s   || _ || _d S ré  )rä  rå  r¼  ræ  ræ  rç  r¾  Ô  s   
zDCERPC_v5.set_auth_typec                 C   rè  ré  )rä  rë  ræ  ræ  rç  Úget_auth_typeØ  rí  zDCERPC_v5.get_auth_typec                 C   rš  ré  )rù  )rå  Úsizeræ  ræ  rç  Úset_max_tfragÛ  r›  zDCERPC_v5.set_max_tfragc                 C   s$   | j | j| j| j| j| j| j| jfS ré  )rç  rè  ré  rê  rë  rì  rí  rî  rë  ræ  ræ  rç  Úget_credentialsÞ  s   $zDCERPC_v5.get_credentialsrª  c	           	      C   sž   |   t¡ || _|| _|| _|| _|| _|| _|dks|dkrMt|ƒd r)d| }t|ƒd r3d| }zt	|ƒ| _
t	|ƒ| _W d S    || _
|| _Y d S d S )Nrª  r   z0%s)r»  ÚRPC_C_AUTHN_LEVEL_CONNECTrç  rè  ré  rì  rí  rî  r0  r   rê  rë  r¯  ræ  ræ  rç  r¸  á  s(   

õzDCERPC_v5.set_credentialsr   r‘  c                 C   sº  t ƒ }| j}t|ƒD ]0}tƒ }||d< d|d< ||d< tƒ tdƒ |d< t|ƒ|d< | |¡ |  jd7  _|d7 }q
tƒ }||d< t|ƒ|d< ||d< d|d< | |¡ tƒ }	t	|	d< | 
¡ |	d< | j|	d	< |rmt|	d< | jtk�r'| jd u s}| jd u r’| j ¡ \| _| _| _| _| _| _| _| _| jtkr¤tjd
d
d| j ¡ d�}
nH| jtkr¾ddlm } |j!| jd d… | jdd�}
n.| jt"kråt# $| j| j| j| j| j| j| j| j| j %¡ | j &¡ ¡
\| _'| _(}
nt)d| j ƒ‚t*ƒ }| j|d< | j|d< | jd |d< dt+|	 ,¡ ƒd  d }|dk�r|	d  d| 7  < ||d< ||	d< |
|	d< | j -|	 ,¡ ¡ | j .¡ }|dk�r>t|ƒ}ndS |d t/k�sN|d t0k�rUt1| 
¡ ƒ}nX|d t2k�sc|d t3k�r¥|d t3k�r~t4| 
¡ ƒ}t5d|d d d… ƒd }n
t6|d ƒ}|d }|t7v �r’t)|d�‚|t8v �rŸt)dt8|  ƒ‚t)d| ƒ‚t)d |d  ƒ‚t|d |d! d ƒD ]L}| 9|¡}|d" dk�rþd#| }|t: ;|d" d$|d"  ¡7 }|d%7 }| 9|¡d& }|t8 ;|d'| ¡7 }|d" |fd(k�rú|d)7 }t)|ƒ‚|d | _<�q¸|d* | _=| jtk�r[| jtk�r6tj>|
|d | j| j| j| j| j| j ¡ d+�\}| _(|d, | _?n| jtk�r?d }n| jt"k�rUt# @| j'| j(|d ¡\| _'| _(}d| _A| jtBtCtDfv �rÛ| jtk�rÈ| j?tjE@ �r©t F| j?| j(¡| _Gt F| j?| j(d-¡| _Ht I| j?| j(¡| _Jt I| j?| j(d-¡| _KtL M| jJ¡}|jN| _OtL M| jK¡}|jN| _Pn2| j(| _G| j(| _H| j(| _J| j(| _KtL M| jG¡}|jN| _O|jN| _Pn| jtk�rÛ| jtCk�rØd.| _Qnd/| _Qt*ƒ }| j|d< | j|d< | jd |d< |d u�rT| jt"k�r+tƒ }t|d< | 
¡ |d< ||d< ||d< | jj-| ,¡ dd0� tR S| j'¡| _Td| _A|  .¡  d| _An)tƒ }tU|d< d1|d< ||d< | 
¡ |d< |d	 | _| j|d	< | jj-| ,¡ dd0� |  jd7  _|S )2Nrù  r   rû  rÝ  rþ  r  r  r  r  rª  T)ÚsigningRequiredÚ
use_ntlmv2r   ©ÚnrpcrŸ  )r	  zUnsupported auth_type 0x%xr	  r
  é5 r  r   ó   ÿr  r   r$  rÉ  rŒ  rê  zBind context rejected: %sú'Unknown DCE RPC fault status code: %.8xz(Unknown DCE RPC packet type received: %drN  r  zBind context %d rejected: z)Unknown DCE RPC context result code: %.4xz; r  zUnknown reason code: %.4x)r   r   zI (this usually means the interface isn't listening on the given endpoint)rJ  )r
  r  s   Serverr%  s   12345678)ÚforceWriteAndxs       )VrF  r–  rp  rø  r   r   r   r]  r  Ú
MSRPC_BINDr1  r÷  ÚMSRPC_ALTERCTXrâ  rá  rç  rè  r’  r  ré  rê  rë  rì  rí  rî  rä  rã  r   ÚgetNTLMSSPType1ÚdoesSupportNTLMv2ÚRPC_C_AUTHN_NETLOGONÚimpacket.dcerpc.v5r  ÚgetSSPType1ÚRPC_C_AUTHN_GSS_NEGOTIATEr	   ÚgetKerberosType1ÚgetRemoteNameÚget_kdcHostrû  rø  rÞ  r  r0  rî  r§  r©  ÚMSRPC_BINDACKÚMSRPC_ALTERCTX_Rrt  ÚMSRPC_BINDNAKÚMSRPC_FAULTr?  r   r‹  rï  Úrpc_provider_reasonre  Úrpc_cont_def_resultÚgetrÌ  rù  ÚgetNTLMSSPType3rú  ÚgetKerberosType3rö  r  ÚRPC_C_AUTHN_LEVEL_PKT_INTEGRITYÚRPC_C_AUTHN_LEVEL_PKT_PRIVACYÚ*NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITYÚSIGNKEYrð  rñ  ÚSEALKEYrò  rô  r   ÚnewÚencryptró  rõ  rü  r
   ÚGSSAPIrý  ÚMSRPC_AUTH3)rå  Ú
iface_uuidÚalterr¬  rÌ  ÚbindÚctxrj  r\  râ  Úauthr  r   r  ÚsÚrespÚbindRespÚstatus_codeÚctxItemsÚmsgÚreasonrÜ  Úcipher3Úcipher4Úcipherr­  Úauth3ræ  ræ  rç  r0  ö  s*  



*

ÿ

û










ýþ






zDCERPC_v5.bindc           
   	   C   s‚  | j |d< d|d< d|d< | jttfv �r4tƒ }| j|d< | j|d< d|d< | j d	 |d
< dt| ¡ ƒd  d }|dkrK|d  d| 7  < ||d< | ¡ |d< d|d< |d }| jtkrÆ| jt	kr•| j
tj@ r‚t | j
| j| j| ¡ d d… || j| j¡\}}n?t | j
| j| j||| j| j¡\}}n,| jtkr°ddlm}	 |	 || j| j| j| j¡\}}n| jtkrÁ| j | j|| j¡\}}||d< n]| jtk�r#| jt	krù| j
tj@ rët | j
| j| ¡ d d… | j| j¡}n8t | j
| j|| j| j¡}n*| jtk�rddlm}	 |	 || j| j| j| j¡}n| jtk�r#| j | j|| j¡}| ¡ |d< ||d< |  jd7  _| jj| ¡ ||d� d S )Nr:  r%  r   r$  r	  r
  r   r  r  r  r   r  ó   »s                   iðÿÿÿr  r   ©r  Ú	forceRecv)r–  râ  r%  r&  r  rä  r0  rî  r1  rã  rú  r   r'  ÚSEALrð  rò  rö  ró  r  r  r  rü  rø  rï  r  rý  ÚGSS_WrapÚSIGNÚ
GSS_GetMICr’  r§  )
rå  Ú
rpc_packetr  r@  r   r  Ú
plain_dataÚsealedMessageÚ	signaturer  ræ  ræ  rç  Ú_transport_sendµ  sŒ   





ú
ú
 


üüüzDCERPC_v5._transport_sendc                 C   sª  t |tƒdurt|j| ¡ ƒ}z|d dkr|d  tO  < W n   Y | j|d< | j|d< t|d ƒ|d< d	}| j	d
krEt
| j	| jƒ}n| j}| jttfv rU|dkrUd}t|d ƒd |krmd}|d | jkrm| jd }|rÇ|d }d
}	 |||| … }|s�nE|d
krŽ|d  tO  < n	|d  t M  < |t|ƒ7 }|t|ƒkr¬|d  tO  < n	|d  t M  < ||d< | j|d|d t@ d� qvn|  |¡ |  jd7  _d S )NTr=  r%  r  r:  r  r  r7  Fr   r   r,   r   r?  )Ú
isinstancer  rÃ  ÚOP_NUMrî  r.  r–  r÷  r0  r”  Úminrù  râ  r%  r&  r&  r'  rI  )rå  r+  Úshould_fragmentr   râ  ÚoffsetÚtoSendræ  ræ  rç  r§    sT   €



ò
zDCERPC_v5.sendc              	   C   s~  d}d}d}|�s½| j j|tjd�}t|ƒ}t|ƒ|d k r6|| j j||d t|ƒ d�7 }t|ƒ|d k s| ¡ }|d tkrŽ|d |d krŽtd|||d … ƒd }|tv r_t	t| ƒ‚|d	@ tv rmt	t|d	@  ƒ‚|t
jv rˆt
j| d }t
j| d
 }	t	d||	f ƒ‚t	d| ƒ‚|d t@ r—d}nd
}||d … }
|d }|�r·|d7 }|
| d … }t|d�}|
d | … }
|d tk�r>| jtkrü| jtj@ rât | j| j| j|
|
| j| j¡\}
}nÇt | j| j| j|
|
| j| j¡\}
}|  jd
7  _n­| jtk�r"ddlm} | |
|t|ƒd … | j| j¡\}
}|  jd
7  _n‡| jtk�r=| jdk�r=| j j!| j|
| jd|d�\}
}nk|d t"k�r©| jtk�r{|dd … }| jtj@ �rft #| j| j|
| j| j¡}nCt #| j| j|| j| j¡}|  jd
7  _n.| jtk�r¢ddlm} |dd … }| #|| j$| j| j| j¡}|  jd
7  _n| jtk�r©	 |d �r·|
d |d  … }
||
7 }|r	|S )NFr   r%  )Úcountr  r  r   rÉ  iÿÿ  r   z%s - %sr  r  Tr  r   ©r+  r
  r  Úinit)Ú	directionÚauthDatar!   r  )%r’  r©  r?  r-  r0  r/  r  r   rï  rÞ  r   ÚERROR_MESSAGESr'  r  r&  rä  rã  rú  r   r'  rA  rñ  rô  rö  rõ  r  r  r  ÚUNSEALrø  rï  r  rý  Ú
GSS_Unwrapr%  rC  rü  )rå  Úfinishedr@  Ú	retAnswerÚresponse_dataÚresponse_headerÚoffr6  rñ  Úerror_msg_verboser×  r  r$  r   rH  r  ÚcfounderÚntlmsspræ  ræ  rç  r©  G  sÆ    ÿ



úúý
ÿ€üüü
‘pzDCERPC_v5.recvc              
   C   s€   |   | j¡}| | j| j| j| j| j| j| j	| j
¡ | | j¡ | | j¡ | | jd ¡ | j|_|j|d|t| jƒd� |S )Nr   )r/  r¬  rÌ  )rÔ  r’  r¸  rç  rè  ré  rê  rë  rì  rí  rî  r¾  rä  r»  râ  r“  r–  r÷  r0  r   rÌ  )rå  r«  r¬  r×  ræ  ræ  rç  r­  ½  s   ÿzDCERPC_v5.alter_ctxré  rÝ  )r   r   r‘  )r   r   ©r   )ró  rô  rõ  rá  rÿ  r  r  r»  r¾  r  r  r  r¸  r0  rI  r§  r©  r­  ræ  ræ  ræ  rç  rà  ¤  s"    #


 
@R@vrà  c                   @   s   e Zd Zddd„Zdd„ ZdS )rÃ  r%  Nc                 C   sB   t  | ¡ || d< || d< |d ur| d  tO  < || d< d S d S )Nr;  r  r  r=  )r4  rá  r.  )rå  r;  r+  r=  ræ  ræ  rç  rá  Ë  s   
þzDCERPC_RawCall.__init__c                 C   s   || d< d S )Nr  ræ  r¦  ræ  ræ  rç  ÚsetDataÓ  s   zDCERPC_RawCall.setData)r%  N)ró  rô  rõ  rá  ra  ræ  ræ  ræ  rç  rÃ  Ê  s    
rÃ  c                   @   s2   e Zd ZdefdefdefdeffZd	dd„ZdS )
ÚCommonHeaderÚVersionÚ
EndiannessÚCommonHeaderLengthÚFillerNFc                 C   s>   t  | ||¡ |d u rd| d< d| d< d| d< d| d< d S d S )	Nr   rc  r%   rd  r   re  ì   ÌL™ rf  ©r   rá  ©rå  r+  rË  ræ  ræ  rç  rá  Þ  s   üzCommonHeader.__init__©NF)ró  rô  rõ  r   r   r   r  rá  ræ  ræ  ræ  rç  rb  ×  s    ürb  c                   @   s&   e Zd ZdefdeffZddd„ZdS )ÚPrivateHeaderÚObjectBufferLengthrf  NFc                 C   rŽ  )Nrg  rf  rh  ri  ræ  ræ  rç  rá  ë  r�  zPrivateHeader.__init__rj  )ró  rô  rõ  r   r  rá  ræ  ræ  ræ  rç  rk  æ  ó
    þrk  c                   @   s&   e Zd ZdefdeffZddd„ZdS )ÚTypeSerialization1rb  rk  r   c                 C   sL   t t | |¡ƒt t | |¡ƒ t | d ƒ t | d ƒ | d d< t | |¡S )Nrb  rk  rl  )r0  r   r1  ÚgetDataReferents)rå  ÚsoFarræ  ræ  rç  r1  õ  s   
ÿ
ÿ
ÿzTypeSerialization1.getDataNr`  )ró  rô  rõ  rb  rk  r  r1  ræ  ræ  ræ  rç  rn  ð  rm  rn  c                   @   sx   e Zd ZdZddd„Zdd„ Zejfdd„Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚDCERPCServerzü
    A minimalistic DCERPC Server, mainly used by the smbserver, for now. Might be useful
    for other purposes in the future, but we should do it way stronger.
    If you want to implement a DCE Interface Server, use this class as the base class
    Nc                 C   sš   |r|| _ i | _d| _d| _d | _d| _t| _d S t 	| ¡ d| _
d| _i | _d| _d | _d | _ d| _d | _d| _t| _t ¡ | _| j | j| j
f¡ d S )Nr%  r   rW  r   z	127.0.0.1)Ú_clientSockÚ_listenUUIDSÚ
_boundUUIDÚ_callidÚ	_max_fragÚ_max_xmit_sizer   Ú_DCERPCServer__logr   rá  Ú_listenPortÚ_listenAddressÚ_sockÚsocketr0  ©rå  Úclient_socketræ  ræ  rç  rá    s*   


zDCERPCServer.__init__c                 C   rš  ré  )rr  r}  ræ  ræ  rç  Úset_client_socket  r›  zDCERPCServer.set_client_socketc                 C   s   | j  ||¡ d S ré  )rx  Úlog)rå  r8  Úlevelræ  ræ  rç  r€    s   zDCERPCServer.logc                 C   sJ   i | j t|ƒ< || j t|ƒ d< || j t|ƒ d< | jd| tjd� dS )aC  
        adds a call back to a UUID/opnum call
        
        :param uuid ifaceUUID: the interface UUID
        :param string secondaryAddr: the secondary address to answer as part of the bind request (e.g. \\PIPE\\srvsvc)
        :param dict callbacks: the callbacks for each opnum. Format is [opnum] = callback
        r{  Ú	CallBackszCallback added for UUID %s V:%s)r�  N)rs  r   r€  ÚloggingÚDEBUG)rå  Ú	ifaceUUIDÚsecondaryAddrÚ	callbacksræ  ræ  rç  ÚaddCallbacks  s   zDCERPCServer.addCallbacksc                 C   s(   || _ t ¡ | _| j | j | jf¡ d S ré  )rz  r|  r{  r0  ry  )rå  Úaddrræ  ræ  rç  ÚsetListenAddress,  ó   
zDCERPCServer.setListenAddressc                 C   s(   || _ t ¡ | _| j | j| j f¡ d S ré  )ry  r|  r{  r0  rz  )rå  ÚportNumræ  ræ  rç  ÚsetListenPort1  r‹  zDCERPCServer.setListenPortc                 C   s   | j  ¡ d S rb  )r{  Úgetsocknamerë  ræ  ræ  rç  ÚgetListenPort6  rf  zDCERPCServer.getListenPortc           	      C   sò   d}d}d}|sw| j  tj¡}|dkrd S t|ƒ}t|ƒ|d k r7|| j  |d t|ƒ ¡7 }t|ƒ|d k s!t|ƒ}|d t@ rCd}|d }|d }|rq|d7 }|| d … }t|d	�}|d | … }|d
 rq|d |d
  … }||7 }|r|S )NFr%  r  r  Tr  r  r   rQ  r  )rr  r©  r?  r-  r0  r'  r  )	rå  rX  rY  rZ  r[  r×  r  r$  r   ræ  ræ  rç  r©  9  s4   ÿ
æzDCERPCServer.recvc                 C   st   | j  d¡ 	 | j  ¡ \| _}z	 |  ¡ }|d u rn|  |¡}|d ur(|  |¡ qW n	 ty3   Y nw | j ¡  q)Nr   )	r{  ÚlistenÚacceptrr  r©  ÚprocessRequestr§  rà  Úclose)rå  Úaddressr+  r×  ræ  ræ  rç  ÚrunZ  s$   

ùý
ñzDCERPCServer.runc                 C   sê   | j }t|d ƒ| jd kr| jd }| j rt|| j ƒ}|rdt|d ƒdkrd|d }d}	 |||| … }|s8n+d}|dkrB|tO }|t|ƒ7 }|t|ƒkrR|tO }||d< ||d< | j | ¡ ¡ q-n| j | ¡ ¡ |  j	d7  _	d S )Nr  r*   r   r   r  )
rv  r0  rw  rL  r&  r'  rr  r§  rî  ru  )rå  r+  Úmax_fragrâ  rN  rO  r  ræ  ræ  rç  r§  m  s2   
ôzDCERPCServer.sendc                 C   sÈ  d}t ƒ }t|d< |d |d< d|d< d|d< d|d< |d	 |d	< |d
 |d
< |d |d< d|d< d|d< |d }d}d|d< t|d ƒD ]w}t}t|ƒ}	|t|	ƒd … }|	d t|ƒkr†d}
| jD ]"}|	d |kr„| j|	d  d |d< t|d ƒd |d< d}
|| _qbnd}
|
dkrŽt	}|
dkr�t
 dt|	d ƒ ¡ |d  d7  < tƒ }||d< |
|d< t|ƒ|d< || ¡ 7 }qEdd|d t j d  d  |d< ||d< t| ¡ ƒ|d< | j | ¡ ¡ d S )Nr‘  r  r  r   r  r  r%  r$  r  rH  rJ  i4  rL  rN  rV  ry  r  r   rþ  r{  r   z,Bind request for an unsupported interface %sr  r  ÚAr   rý  )rt  r  rp  ÚMSRPC_CONT_RESULT_USER_REJECTrø  r0  r   rs  rt  ÚMSRPC_CONT_RESULT_ACCEPTr   Úerrorr   r  r1  r-  rr  r§  )rå  râ  r0  rÞ  r4  r+  rV  rj  Úresultr\  r9  ÚjÚ
itemResultræ  ræ  rç  r0  ˆ  sZ   
€ú	"zDCERPCServer.bindc                 C   s  t |ƒ}|d tkrt|d ƒ}|  ||¡ d }|S |d tkrw| j | j¡d urwt|ƒ}t	|ƒ}t
|d< |d | j| j d v rV| j| j d |d  |d ƒ}||d< nt d|d t| jƒf ¡ t|d< tddƒ|d< t|ƒ|d< |S t	|ƒ}t|d< |S )	Nr  r  r;  r‚  z3Unsupported DCERPC opnum %d called for interface %srÉ  r<   r  )r  r  rF  r0  r(  rs  r"  rt  r4  r?  rC  r   rš  r   r  r   r0  )rå  r+  râ  r0  rÕ  rÜ  Ú
returnDataræ  ræ  rç  r’  Á  s*   ì 
zDCERPCServer.processRequestré  )ró  rô  rõ  rö  rá  r  rƒ  ÚINFOr€  rˆ  rŠ  r�  r�  r©  r•  r§  r0  r’  ræ  ræ  ræ  rç  rq  ú  s    
!9rq  (  rƒ  r|  rÑ  Úbinasciir   ÚCryptodome.Cipherr   Úimpacketr   r   Úimpacket.structurer   r   r   Úimpacket.krb5r	   r
   Úimpacket.uuidr   r   r   r   r   Úimpacket.dcerpc.v5.dtypesr   r   r   Úimpacket.dcerpc.v5.ndrr   r   Ú	threadingr   r(  Ú
MSRPC_PINGrC  r  ÚMSRPC_WORKINGÚMSRPC_NOCALLÚMSRPC_REJECTÚ	MSRPC_ACKÚMSRPC_CL_CANCELÚ
MSRPC_FACKÚMSRPC_CANCELACKr  r  r  r  r  r-  ÚMSRPC_SHUTDOWNÚMSRPC_CO_CANCELÚMSRPC_ORPHANEDÚ	MSRPC_RTSÚmsrpc_message_typer&  r'  ÚMSRPC_SUPPORT_SIGNÚMSRPC_PENDING_CANCELÚPFC_RESERVED_1ÚPFC_CONC_MPXÚPFC_DID_NOT_EXECUTEÚ	PFC_MAYBEr.  ÚRPC_C_AUTHN_NONEr  rã  ÚRPC_C_AUTHN_GSS_SCHANNELÚRPC_C_AUTHN_GSS_KERBEROSr  ÚRPC_C_AUTHN_DEFAULTrá  r  ÚRPC_C_AUTHN_LEVEL_CALLÚRPC_C_AUTHN_LEVEL_PKTr%  r&  r   r™  r˜  ÚMSRPC_CONT_RESULT_PROV_REJECTÚMSRPC_CONT_RESULT_NEGOTIATE_ACKr!  rï  Ú%MSRPC_STATUS_CODE_RPC_S_ACCESS_DENIEDÚ4MSRPC_STATUS_CODE_AUTHENTICATION_TYPE_NOT_RECOGNIZEDÚ(MSRPC_STATUS_CODE_RPC_FAULT_CANT_PERFORMÚ%MSRPC_STATUS_CODE_RPC_X_INVALID_BOUNDÚ&MSRPC_STATUS_CODE_RPC_S_CANNOT_SUPPORTÚ%MSRPC_STATUS_CODE_RPC_X_BAD_STUB_DATAÚ$MSRPC_STATUS_CODE_NCA_S_COMM_FAILUREÚ$MSRPC_STATUS_CODE_NCA_S_OP_RNG_ERRORÚMSRPC_STATUS_CODE_NCA_S_UNK_IFÚ'MSRPC_STATUS_CODE_NCA_S_WRONG_BOOT_TIMEÚ#MSRPC_STATUS_CODE_NCA_S_YOU_CRASHEDÚ#MSRPC_STATUS_CODE_NCA_S_PROTO_ERRORÚ(MSRPC_STATUS_CODE_NCA_S_OUT_ARGS_TOO_BIGÚ'MSRPC_STATUS_CODE_NCA_S_SERVER_TOO_BUSYÚ-MSRPC_STATUS_CODE_NCA_S_FAULT_STRING_TOO_LONGÚ(MSRPC_STATUS_CODE_NCA_S_UNSUPPORTED_TYPEÚ-MSRPC_STATUS_CODE_NCA_S_FAULT_INT_DIV_BY_ZEROÚ(MSRPC_STATUS_CODE_NCA_S_FAULT_ADDR_ERRORÚ)MSRPC_STATUS_CODE_NCA_S_FAULT_FP_DIV_ZEROÚ*MSRPC_STATUS_CODE_NCA_S_FAULT_FP_UNDERFLOWÚ)MSRPC_STATUS_CODE_NCA_S_FAULT_FP_OVERFLOWÚ)MSRPC_STATUS_CODE_NCA_S_FAULT_INVALID_TAGÚ+MSRPC_STATUS_CODE_NCA_S_FAULT_INVALID_BOUNDÚ,MSRPC_STATUS_CODE_NCA_S_RPC_VERSION_MISMATCHÚ%MSRPC_STATUS_CODE_NCA_S_UNSPEC_REJECTÚ!MSRPC_STATUS_CODE_NCA_S_BAD_ACTIDÚ*MSRPC_STATUS_CODE_NCA_S_WHO_ARE_YOU_FAILEDÚ+MSRPC_STATUS_CODE_NCA_S_MANAGER_NOT_ENTEREDÚ$MSRPC_STATUS_CODE_NCA_S_FAULT_CANCELÚ&MSRPC_STATUS_CODE_NCA_S_FAULT_ILL_INSTÚ&MSRPC_STATUS_CODE_NCA_S_FAULT_FP_ERRORÚ*MSRPC_STATUS_CODE_NCA_S_FAULT_INT_OVERFLOWÚ$MSRPC_STATUS_CODE_NCA_S_FAULT_UNSPECÚ1MSRPC_STATUS_CODE_NCA_S_FAULT_REMOTE_COMM_FAILUREÚ(MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_EMPTYÚ)MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_CLOSEDÚ(MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_ORDERÚ-MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_DISCIPLINEÚ-MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_COMM_ERRORÚ)MSRPC_STATUS_CODE_NCA_S_FAULT_PIPE_MEMORYÚ.MSRPC_STATUS_CODE_NCA_S_FAULT_CONTEXT_MISMATCHÚ.MSRPC_STATUS_CODE_NCA_S_FAULT_REMOTE_NO_MEMORYÚ/MSRPC_STATUS_CODE_NCA_S_INVALID_PRES_CONTEXT_IDÚ/MSRPC_STATUS_CODE_NCA_S_UNSUPPORTED_AUTHN_LEVELÚ(MSRPC_STATUS_CODE_NCA_S_INVALID_CHECKSUMÚ#MSRPC_STATUS_CODE_NCA_S_INVALID_CRCÚ*MSRPC_STATUS_CODE_NCA_S_FAULT_USER_DEFINEDÚ,MSRPC_STATUS_CODE_NCA_S_FAULT_TX_OPEN_FAILEDÚ0MSRPC_STATUS_CODE_NCA_S_FAULT_CODESET_CONV_ERRORÚ.MSRPC_STATUS_CODE_NCA_S_FAULT_OBJECT_NOT_FOUNDÚ,MSRPC_STATUS_CODE_NCA_S_FAULT_NO_CLIENT_STUBÚMSRPC_STATUS_CODE_RPC_S_MODÚ$MSRPC_STATUS_CODE_RPC_S_OP_RNG_ERRORÚ*MSRPC_STATUS_CODE_RPC_S_CANT_CREATE_SOCKETÚ(MSRPC_STATUS_CODE_RPC_S_CANT_BIND_SOCKETÚ#MSRPC_STATUS_CODE_RPC_S_NOT_IN_CALLÚMSRPC_STATUS_CODE_RPC_S_NO_PORTÚ'MSRPC_STATUS_CODE_RPC_S_WRONG_BOOT_TIMEÚ(MSRPC_STATUS_CODE_RPC_S_TOO_MANY_SOCKETSÚ(MSRPC_STATUS_CODE_RPC_S_ILLEGAL_REGISTERÚ!MSRPC_STATUS_CODE_RPC_S_CANT_RECVÚMSRPC_STATUS_CODE_RPC_S_BAD_PKTÚ&MSRPC_STATUS_CODE_RPC_S_UNBOUND_HANDLEÚ#MSRPC_STATUS_CODE_RPC_S_ADDR_IN_USEÚ'MSRPC_STATUS_CODE_RPC_S_IN_ARGS_TOO_BIGÚ'MSRPC_STATUS_CODE_RPC_S_STRING_TOO_LONGÚ(MSRPC_STATUS_CODE_RPC_S_TOO_MANY_OBJECTSÚ+MSRPC_STATUS_CODE_RPC_S_BINDING_HAS_NO_AUTHÚ-MSRPC_STATUS_CODE_RPC_S_UNKNOWN_AUTHN_SERVICEÚ!MSRPC_STATUS_CODE_RPC_S_NO_MEMORYÚ$MSRPC_STATUS_CODE_RPC_S_CANT_NMALLOCÚ$MSRPC_STATUS_CODE_RPC_S_CALL_FAULTEDÚ#MSRPC_STATUS_CODE_RPC_S_CALL_FAILEDÚ$MSRPC_STATUS_CODE_RPC_S_COMM_FAILUREÚ)MSRPC_STATUS_CODE_RPC_S_RPCD_COMM_FAILUREÚ-MSRPC_STATUS_CODE_RPC_S_ILLEGAL_FAMILY_REBINDÚ&MSRPC_STATUS_CODE_RPC_S_INVALID_HANDLEÚ$MSRPC_STATUS_CODE_RPC_S_CODING_ERRORÚ(MSRPC_STATUS_CODE_RPC_S_OBJECT_NOT_FOUNDÚ)MSRPC_STATUS_CODE_RPC_S_CTHREAD_NOT_FOUNDÚ'MSRPC_STATUS_CODE_RPC_S_INVALID_BINDINGÚ*MSRPC_STATUS_CODE_RPC_S_ALREADY_REGISTEREDÚ*MSRPC_STATUS_CODE_RPC_S_ENDPOINT_NOT_FOUNDÚ+MSRPC_STATUS_CODE_RPC_S_INVALID_RPC_PROTSEQÚ+MSRPC_STATUS_CODE_RPC_S_DESC_NOT_REGISTEREDÚ)MSRPC_STATUS_CODE_RPC_S_ALREADY_LISTENINGÚ#MSRPC_STATUS_CODE_RPC_S_NO_PROTSEQSÚ.MSRPC_STATUS_CODE_RPC_S_NO_PROTSEQS_REGISTEREDÚ#MSRPC_STATUS_CODE_RPC_S_NO_BINDINGSÚ*MSRPC_STATUS_CODE_RPC_S_MAX_DESCS_EXCEEDEDÚ%MSRPC_STATUS_CODE_RPC_S_NO_INTERFACESÚ'MSRPC_STATUS_CODE_RPC_S_INVALID_TIMEOUTÚ'MSRPC_STATUS_CODE_RPC_S_CANT_INQ_SOCKETÚ&MSRPC_STATUS_CODE_RPC_S_INVALID_NAF_IDÚ&MSRPC_STATUS_CODE_RPC_S_INVAL_NET_ADDRÚ"MSRPC_STATUS_CODE_RPC_S_UNKNOWN_IFÚ(MSRPC_STATUS_CODE_RPC_S_UNSUPPORTED_TYPEÚ(MSRPC_STATUS_CODE_RPC_S_INVALID_CALL_OPTÚ MSRPC_STATUS_CODE_RPC_S_NO_FAULTÚ&MSRPC_STATUS_CODE_RPC_S_CANCEL_TIMEOUTÚ&MSRPC_STATUS_CODE_RPC_S_CALL_CANCELLEDÚ+MSRPC_STATUS_CODE_RPC_S_INVALID_CALL_HANDLEÚ*MSRPC_STATUS_CODE_RPC_S_CANNOT_ALLOC_ASSOCÚ&MSRPC_STATUS_CODE_RPC_S_CANNOT_CONNECTÚ*MSRPC_STATUS_CODE_RPC_S_CONNECTION_ABORTEDÚ)MSRPC_STATUS_CODE_RPC_S_CONNECTION_CLOSEDÚ%MSRPC_STATUS_CODE_RPC_S_CANNOT_ACCEPTÚ+MSRPC_STATUS_CODE_RPC_S_ASSOC_GRP_NOT_FOUNDÚ,MSRPC_STATUS_CODE_RPC_S_STUB_INTERFACE_ERRORÚ&MSRPC_STATUS_CODE_RPC_S_INVALID_OBJECTÚ$MSRPC_STATUS_CODE_RPC_S_INVALID_TYPEÚ(MSRPC_STATUS_CODE_RPC_S_INVALID_IF_OPNUMÚ1MSRPC_STATUS_CODE_RPC_S_DIFFERENT_SERVER_INSTANCEÚ&MSRPC_STATUS_CODE_RPC_S_PROTOCOL_ERRORÚ$MSRPC_STATUS_CODE_RPC_S_CANT_RECVMSGÚ.MSRPC_STATUS_CODE_RPC_S_INVALID_STRING_BINDINGÚ)MSRPC_STATUS_CODE_RPC_S_CONNECT_TIMED_OUTÚ(MSRPC_STATUS_CODE_RPC_S_CONNECT_REJECTEDÚ+MSRPC_STATUS_CODE_RPC_S_NETWORK_UNREACHABLEÚ,MSRPC_STATUS_CODE_RPC_S_CONNECT_NO_RESOURCESÚ,MSRPC_STATUS_CODE_RPC_S_REM_NETWORK_SHUTDOWNÚ-MSRPC_STATUS_CODE_RPC_S_TOO_MANY_REM_CONNECTSÚ'MSRPC_STATUS_CODE_RPC_S_NO_REM_ENDPOINTÚ%MSRPC_STATUS_CODE_RPC_S_REM_HOST_DOWNÚ(MSRPC_STATUS_CODE_RPC_S_HOST_UNREACHABLEÚ/MSRPC_STATUS_CODE_RPC_S_ACCESS_CONTROL_INFO_INVÚ+MSRPC_STATUS_CODE_RPC_S_LOC_CONNECT_ABORTEDÚ-MSRPC_STATUS_CODE_RPC_S_CONNECT_CLOSED_BY_REMÚ(MSRPC_STATUS_CODE_RPC_S_REM_HOST_CRASHEDÚ/MSRPC_STATUS_CODE_RPC_S_INVALID_ENDPOINT_FORMATÚ+MSRPC_STATUS_CODE_RPC_S_UNKNOWN_STATUS_CODEÚ(MSRPC_STATUS_CODE_RPC_S_UNKNOWN_MGR_TYPEÚ-MSRPC_STATUS_CODE_RPC_S_ASSOC_CREATION_FAILEDÚ.MSRPC_STATUS_CODE_RPC_S_ASSOC_GRP_MAX_EXCEEDEDÚ.MSRPC_STATUS_CODE_RPC_S_ASSOC_GRP_ALLOC_FAILEDÚ(MSRPC_STATUS_CODE_RPC_S_SM_INVALID_STATEÚ*MSRPC_STATUS_CODE_RPC_S_ASSOC_REQ_REJECTEDÚ&MSRPC_STATUS_CODE_RPC_S_ASSOC_SHUTDOWNÚ-MSRPC_STATUS_CODE_RPC_S_TSYNTAXES_UNSUPPORTEDÚ,MSRPC_STATUS_CODE_RPC_S_CONTEXT_ID_NOT_FOUNDÚ*MSRPC_STATUS_CODE_RPC_S_CANT_LISTEN_SOCKETÚ MSRPC_STATUS_CODE_RPC_S_NO_ADDRSÚ(MSRPC_STATUS_CODE_RPC_S_CANT_GETPEERNAMEÚ&MSRPC_STATUS_CODE_RPC_S_CANT_GET_IF_IDÚ-MSRPC_STATUS_CODE_RPC_S_PROTSEQ_NOT_SUPPORTEDÚ%MSRPC_STATUS_CODE_RPC_S_CALL_ORPHANEDÚ*MSRPC_STATUS_CODE_RPC_S_WHO_ARE_YOU_FAILEDÚ&MSRPC_STATUS_CODE_RPC_S_UNKNOWN_REJECTÚ/MSRPC_STATUS_CODE_RPC_S_TYPE_ALREADY_REGISTEREDÚ/MSRPC_STATUS_CODE_RPC_S_STOP_LISTENING_DISABLEDÚ#MSRPC_STATUS_CODE_RPC_S_INVALID_ARGÚ%MSRPC_STATUS_CODE_RPC_S_NOT_SUPPORTEDÚ-MSRPC_STATUS_CODE_RPC_S_WRONG_KIND_OF_BINDINGÚ,MSRPC_STATUS_CODE_RPC_S_AUTHN_AUTHZ_MISMATCHÚ#MSRPC_STATUS_CODE_RPC_S_CALL_QUEUEDÚ*MSRPC_STATUS_CODE_RPC_S_CANNOT_SET_NODELAYÚ%MSRPC_STATUS_CODE_RPC_S_NOT_RPC_TOWERÚ*MSRPC_STATUS_CODE_RPC_S_INVALID_RPC_PROTIDÚ)MSRPC_STATUS_CODE_RPC_S_INVALID_RPC_FLOORÚ$MSRPC_STATUS_CODE_RPC_S_CALL_TIMEOUTÚ*MSRPC_STATUS_CODE_RPC_S_MGMT_OP_DISALLOWEDÚ+MSRPC_STATUS_CODE_RPC_S_MANAGER_NOT_ENTEREDÚ1MSRPC_STATUS_CODE_RPC_S_CALLS_TOO_LARGE_FOR_WK_EPÚ'MSRPC_STATUS_CODE_RPC_S_SERVER_TOO_BUSYÚ-MSRPC_STATUS_CODE_RPC_S_PROT_VERSION_MISMATCHÚ1MSRPC_STATUS_CODE_RPC_S_RPC_PROT_VERSION_MISMATCHÚ+MSRPC_STATUS_CODE_RPC_S_SS_NO_IMPORT_CURSORÚ(MSRPC_STATUS_CODE_RPC_S_FAULT_ADDR_ERRORÚ.MSRPC_STATUS_CODE_RPC_S_FAULT_CONTEXT_MISMATCHÚ,MSRPC_STATUS_CODE_RPC_S_FAULT_FP_DIV_BY_ZEROÚ&MSRPC_STATUS_CODE_RPC_S_FAULT_FP_ERRORÚ)MSRPC_STATUS_CODE_RPC_S_FAULT_FP_OVERFLOWÚ*MSRPC_STATUS_CODE_RPC_S_FAULT_FP_UNDERFLOWÚ&MSRPC_STATUS_CODE_RPC_S_FAULT_ILL_INSTÚ-MSRPC_STATUS_CODE_RPC_S_FAULT_INT_DIV_BY_ZEROÚ*MSRPC_STATUS_CODE_RPC_S_FAULT_INT_OVERFLOWÚ+MSRPC_STATUS_CODE_RPC_S_FAULT_INVALID_BOUNDÚ)MSRPC_STATUS_CODE_RPC_S_FAULT_INVALID_TAGÚ)MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_CLOSEDÚ-MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_COMM_ERRORÚ-MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_DISCIPLINEÚ(MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_EMPTYÚ)MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_MEMORYÚ(MSRPC_STATUS_CODE_RPC_S_FAULT_PIPE_ORDERÚ1MSRPC_STATUS_CODE_RPC_S_FAULT_REMOTE_COMM_FAILUREÚ.MSRPC_STATUS_CODE_RPC_S_FAULT_REMOTE_NO_MEMORYÚ$MSRPC_STATUS_CODE_RPC_S_FAULT_UNSPECÚ$MSRPC_STATUS_CODE_UUID_S_BAD_VERSIONÚ'MSRPC_STATUS_CODE_UUID_S_SOCKET_FAILUREÚ(MSRPC_STATUS_CODE_UUID_S_GETCONF_FAILUREÚ#MSRPC_STATUS_CODE_UUID_S_NO_ADDRESSÚ MSRPC_STATUS_CODE_UUID_S_OVERRUNÚ'MSRPC_STATUS_CODE_UUID_S_INTERNAL_ERRORÚ%MSRPC_STATUS_CODE_UUID_S_CODING_ERRORÚ,MSRPC_STATUS_CODE_UUID_S_INVALID_STRING_UUIDÚ"MSRPC_STATUS_CODE_UUID_S_NO_MEMORYÚ'MSRPC_STATUS_CODE_RPC_S_NO_MORE_ENTRIESÚ(MSRPC_STATUS_CODE_RPC_S_UNKNOWN_NS_ERRORÚ0MSRPC_STATUS_CODE_RPC_S_NAME_SERVICE_UNAVAILABLEÚ'MSRPC_STATUS_CODE_RPC_S_INCOMPLETE_NAMEÚ'MSRPC_STATUS_CODE_RPC_S_GROUP_NOT_FOUNDÚ+MSRPC_STATUS_CODE_RPC_S_INVALID_NAME_SYNTAXÚ'MSRPC_STATUS_CODE_RPC_S_NO_MORE_MEMBERSÚ*MSRPC_STATUS_CODE_RPC_S_NO_MORE_INTERFACESÚ,MSRPC_STATUS_CODE_RPC_S_INVALID_NAME_SERVICEÚ'MSRPC_STATUS_CODE_RPC_S_NO_NAME_MAPPINGÚ)MSRPC_STATUS_CODE_RPC_S_PROFILE_NOT_FOUNDÚ!MSRPC_STATUS_CODE_RPC_S_NOT_FOUNDÚ"MSRPC_STATUS_CODE_RPC_S_NO_UPDATESÚ%MSRPC_STATUS_CODE_RPC_S_UPDATE_FAILEDÚ)MSRPC_STATUS_CODE_RPC_S_NO_MATCH_EXPORTEDÚ'MSRPC_STATUS_CODE_RPC_S_ENTRY_NOT_FOUNDÚ/MSRPC_STATUS_CODE_RPC_S_INVALID_INQUIRY_CONTEXTÚ+MSRPC_STATUS_CODE_RPC_S_INTERFACE_NOT_FOUNDÚ.MSRPC_STATUS_CODE_RPC_S_GROUP_MEMBER_NOT_FOUNDÚ,MSRPC_STATUS_CODE_RPC_S_ENTRY_ALREADY_EXISTSÚ&MSRPC_STATUS_CODE_RPC_S_NSINIT_FAILUREÚ/MSRPC_STATUS_CODE_RPC_S_UNSUPPORTED_NAME_SYNTAXÚ(MSRPC_STATUS_CODE_RPC_S_NO_MORE_ELEMENTSÚ(MSRPC_STATUS_CODE_RPC_S_NO_NS_PERMISSIONÚ,MSRPC_STATUS_CODE_RPC_S_INVALID_INQUIRY_TYPEÚ1MSRPC_STATUS_CODE_RPC_S_PROFILE_ELEMENT_NOT_FOUNDÚ0MSRPC_STATUS_CODE_RPC_S_PROFILE_ELEMENT_REPLACEDÚ+MSRPC_STATUS_CODE_RPC_S_IMPORT_ALREADY_DONEÚ%MSRPC_STATUS_CODE_RPC_S_DATABASE_BUSYÚ.MSRPC_STATUS_CODE_RPC_S_INVALID_IMPORT_CONTEXTÚ*MSRPC_STATUS_CODE_RPC_S_UUID_SET_NOT_FOUNDÚ-MSRPC_STATUS_CODE_RPC_S_UUID_MEMBER_NOT_FOUNDÚ.MSRPC_STATUS_CODE_RPC_S_NO_INTERFACES_EXPORTEDÚ+MSRPC_STATUS_CODE_RPC_S_TOWER_SET_NOT_FOUNDÚ.MSRPC_STATUS_CODE_RPC_S_TOWER_MEMBER_NOT_FOUNDÚ*MSRPC_STATUS_CODE_RPC_S_OBJ_UUID_NOT_FOUNDÚ(MSRPC_STATUS_CODE_RPC_S_NO_MORE_BINDINGSÚ(MSRPC_STATUS_CODE_RPC_S_INVALID_PRIORITYÚ%MSRPC_STATUS_CODE_RPC_S_NOT_RPC_ENTRYÚ.MSRPC_STATUS_CODE_RPC_S_INVALID_LOOKUP_CONTEXTÚ+MSRPC_STATUS_CODE_RPC_S_BINDING_VECTOR_FULLÚ&MSRPC_STATUS_CODE_RPC_S_CYCLE_DETECTEDÚ)MSRPC_STATUS_CODE_RPC_S_NOTHING_TO_EXPORTÚ+MSRPC_STATUS_CODE_RPC_S_NOTHING_TO_UNEXPORTÚ+MSRPC_STATUS_CODE_RPC_S_INVALID_VERS_OPTIONÚ#MSRPC_STATUS_CODE_RPC_S_NO_RPC_DATAÚ"MSRPC_STATUS_CODE_RPC_S_MBR_PICKEDÚ/MSRPC_STATUS_CODE_RPC_S_NOT_ALL_OBJS_UNEXPORTEDÚ%MSRPC_STATUS_CODE_RPC_S_NO_ENTRY_NAMEÚ+MSRPC_STATUS_CODE_RPC_S_PRIORITY_GROUP_DONEÚ'MSRPC_STATUS_CODE_RPC_S_PARTIAL_RESULTSÚ$MSRPC_STATUS_CODE_RPC_S_NO_ENV_SETUPÚ"MSRPC_STATUS_CODE_TWR_S_UNKNOWN_SAÚ%MSRPC_STATUS_CODE_TWR_S_UNKNOWN_TOWERÚ'MSRPC_STATUS_CODE_TWR_S_NOT_IMPLEMENTEDÚ+MSRPC_STATUS_CODE_RPC_S_MAX_CALLS_TOO_SMALLÚ-MSRPC_STATUS_CODE_RPC_S_CTHREAD_CREATE_FAILEDÚ+MSRPC_STATUS_CODE_RPC_S_CTHREAD_POOL_EXISTSÚ,MSRPC_STATUS_CODE_RPC_S_CTHREAD_NO_SUCH_POOLÚ/MSRPC_STATUS_CODE_RPC_S_CTHREAD_INVOKE_DISABLEDÚ'MSRPC_STATUS_CODE_EPT_S_CANT_PERFORM_OPÚ!MSRPC_STATUS_CODE_EPT_S_NO_MEMORYÚ(MSRPC_STATUS_CODE_EPT_S_DATABASE_INVALIDÚ#MSRPC_STATUS_CODE_EPT_S_CANT_CREATEÚ#MSRPC_STATUS_CODE_EPT_S_CANT_ACCESSÚ-MSRPC_STATUS_CODE_EPT_S_DATABASE_ALREADY_OPENÚ%MSRPC_STATUS_CODE_EPT_S_INVALID_ENTRYÚ%MSRPC_STATUS_CODE_EPT_S_UPDATE_FAILEDÚ'MSRPC_STATUS_CODE_EPT_S_INVALID_CONTEXTÚ&MSRPC_STATUS_CODE_EPT_S_NOT_REGISTEREDÚ*MSRPC_STATUS_CODE_EPT_S_SERVER_UNAVAILABLEÚ+MSRPC_STATUS_CODE_RPC_S_UNDERSPECIFIED_NAMEÚ)MSRPC_STATUS_CODE_RPC_S_INVALID_NS_HANDLEÚ%MSRPC_STATUS_CODE_RPC_S_UNKNOWN_ERRORÚ/MSRPC_STATUS_CODE_RPC_S_SS_CHAR_TRANS_OPEN_FAILÚ0MSRPC_STATUS_CODE_RPC_S_SS_CHAR_TRANS_SHORT_FILEÚ*MSRPC_STATUS_CODE_RPC_S_SS_CONTEXT_DAMAGEDÚ*MSRPC_STATUS_CODE_RPC_S_SS_IN_NULL_CONTEXTÚ&MSRPC_STATUS_CODE_RPC_S_SOCKET_FAILUREÚ1MSRPC_STATUS_CODE_RPC_S_UNSUPPORTED_PROTECT_LEVELÚ(MSRPC_STATUS_CODE_RPC_S_INVALID_CHECKSUMÚ+MSRPC_STATUS_CODE_RPC_S_INVALID_CREDENTIALSÚ-MSRPC_STATUS_CODE_RPC_S_CREDENTIALS_TOO_LARGEÚ)MSRPC_STATUS_CODE_RPC_S_CALL_ID_NOT_FOUNDÚ(MSRPC_STATUS_CODE_RPC_S_KEY_ID_NOT_FOUNDÚ*MSRPC_STATUS_CODE_RPC_S_AUTH_BAD_INTEGRITYÚ(MSRPC_STATUS_CODE_RPC_S_AUTH_TKT_EXPIREDÚ$MSRPC_STATUS_CODE_RPC_S_AUTH_TKT_NYVÚ#MSRPC_STATUS_CODE_RPC_S_AUTH_REPEATÚ#MSRPC_STATUS_CODE_RPC_S_AUTH_NOT_USÚ%MSRPC_STATUS_CODE_RPC_S_AUTH_BADMATCHÚ!MSRPC_STATUS_CODE_RPC_S_AUTH_SKEWÚ$MSRPC_STATUS_CODE_RPC_S_AUTH_BADADDRÚ'MSRPC_STATUS_CODE_RPC_S_AUTH_BADVERSIONÚ%MSRPC_STATUS_CODE_RPC_S_AUTH_MSG_TYPEÚ%MSRPC_STATUS_CODE_RPC_S_AUTH_MODIFIEDÚ%MSRPC_STATUS_CODE_RPC_S_AUTH_BADORDERÚ&MSRPC_STATUS_CODE_RPC_S_AUTH_BADKEYVERÚ"MSRPC_STATUS_CODE_RPC_S_AUTH_NOKEYÚ%MSRPC_STATUS_CODE_RPC_S_AUTH_MUT_FAILÚ)MSRPC_STATUS_CODE_RPC_S_AUTH_BADDIRECTIONÚ#MSRPC_STATUS_CODE_RPC_S_AUTH_METHODÚ#MSRPC_STATUS_CODE_RPC_S_AUTH_BADSEQÚ(MSRPC_STATUS_CODE_RPC_S_AUTH_INAPP_CKSUMÚ*MSRPC_STATUS_CODE_RPC_S_AUTH_FIELD_TOOLONGÚ#MSRPC_STATUS_CODE_RPC_S_INVALID_CRCÚ*MSRPC_STATUS_CODE_RPC_S_BINDING_INCOMPLETEÚ,MSRPC_STATUS_CODE_RPC_S_KEY_FUNC_NOT_ALLOWEDÚ0MSRPC_STATUS_CODE_RPC_S_UNKNOWN_STUB_RTL_IF_VERSÚ+MSRPC_STATUS_CODE_RPC_S_UNKNOWN_IFSPEC_VERSÚ,MSRPC_STATUS_CODE_RPC_S_PROTO_UNSUPP_BY_AUTHÚ1MSRPC_STATUS_CODE_RPC_S_AUTHN_CHALLENGE_MALFORMEDÚ.MSRPC_STATUS_CODE_RPC_S_PROTECT_LEVEL_MISMATCHÚMSRPC_STATUS_CODE_RPC_S_NO_MEPVÚ+MSRPC_STATUS_CODE_RPC_S_STUB_PROTOCOL_ERRORÚ.MSRPC_STATUS_CODE_RPC_S_CLASS_VERSION_MISMATCHÚ*MSRPC_STATUS_CODE_RPC_S_HELPER_NOT_RUNNINGÚ)MSRPC_STATUS_CODE_RPC_S_HELPER_SHORT_READÚ(MSRPC_STATUS_CODE_RPC_S_HELPER_CATATONICÚ&MSRPC_STATUS_CODE_RPC_S_HELPER_ABORTEDÚ%MSRPC_STATUS_CODE_RPC_S_NOT_IN_KERNELÚ)MSRPC_STATUS_CODE_RPC_S_HELPER_WRONG_USERÚ'MSRPC_STATUS_CODE_RPC_S_HELPER_OVERFLOWÚ(MSRPC_STATUS_CODE_RPC_S_DG_NEED_WAY_AUTHÚ0MSRPC_STATUS_CODE_RPC_S_UNSUPPORTED_AUTH_SUBTYPEÚ)MSRPC_STATUS_CODE_RPC_S_WRONG_PICKLE_TYPEÚ%MSRPC_STATUS_CODE_RPC_S_NOT_LISTENINGÚ%MSRPC_STATUS_CODE_RPC_S_SS_BAD_BUFFERÚ(MSRPC_STATUS_CODE_RPC_S_SS_BAD_ES_ACTIONÚ+MSRPC_STATUS_CODE_RPC_S_SS_WRONG_ES_VERSIONÚ*MSRPC_STATUS_CODE_RPC_S_FAULT_USER_DEFINEDÚ0MSRPC_STATUS_CODE_RPC_S_SS_INCOMPATIBLE_CODESETSÚ-MSRPC_STATUS_CODE_RPC_S_TX_NOT_IN_TRANSACTIONÚ&MSRPC_STATUS_CODE_RPC_S_TX_OPEN_FAILEDÚ+MSRPC_STATUS_CODE_RPC_S_PARTIAL_CREDENTIALSÚ.MSRPC_STATUS_CODE_RPC_S_SS_INVALID_CODESET_TAGÚ%MSRPC_STATUS_CODE_RPC_S_MGMT_BAD_TYPEÚ-MSRPC_STATUS_CODE_RPC_S_SS_INVALID_CHAR_INPUTÚ,MSRPC_STATUS_CODE_RPC_S_SS_SHORT_CONV_BUFFERÚ&MSRPC_STATUS_CODE_RPC_S_SS_ICONV_ERRORÚ,MSRPC_STATUS_CODE_RPC_S_SS_NO_COMPAT_CODESETÚ-MSRPC_STATUS_CODE_RPC_S_SS_NO_COMPAT_CHARSETSÚMSRPC_STATUS_CODE_DCE_CS_C_OKÚ"MSRPC_STATUS_CODE_DCE_CS_C_UNKNOWNÚ#MSRPC_STATUS_CODE_DCE_CS_C_NOTFOUNDÚ+MSRPC_STATUS_CODE_DCE_CS_C_CANNOT_OPEN_FILEÚ+MSRPC_STATUS_CODE_DCE_CS_C_CANNOT_READ_FILEÚ1MSRPC_STATUS_CODE_DCE_CS_C_CANNOT_ALLOCATE_MEMORYÚ)MSRPC_STATUS_CODE_RPC_S_SS_CLEANUP_FAILEDÚ&MSRPC_STATUS_CODE_RPC_SVC_DESC_GENERALÚ$MSRPC_STATUS_CODE_RPC_SVC_DESC_MUTEXÚ#MSRPC_STATUS_CODE_RPC_SVC_DESC_XMITÚ#MSRPC_STATUS_CODE_RPC_SVC_DESC_RECVÚ'MSRPC_STATUS_CODE_RPC_SVC_DESC_DG_STATEÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_CANCELÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_ORPHANÚ'MSRPC_STATUS_CODE_RPC_SVC_DESC_CN_STATEÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_CN_PKTÚ)MSRPC_STATUS_CODE_RPC_SVC_DESC_PKT_QUOTASÚ#MSRPC_STATUS_CODE_RPC_SVC_DESC_AUTHÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_SOURCEÚ$MSRPC_STATUS_CODE_RPC_SVC_DESC_STATSÚ"MSRPC_STATUS_CODE_RPC_SVC_DESC_MEMÚ'MSRPC_STATUS_CODE_RPC_SVC_DESC_MEM_TYPEÚ(MSRPC_STATUS_CODE_RPC_SVC_DESC_DG_PKTLOGÚ(MSRPC_STATUS_CODE_RPC_SVC_DESC_THREAD_IDÚ(MSRPC_STATUS_CODE_RPC_SVC_DESC_TIMESTAMPÚ(MSRPC_STATUS_CODE_RPC_SVC_DESC_CN_ERRORSÚ*MSRPC_STATUS_CODE_RPC_SVC_DESC_CONV_THREADÚ"MSRPC_STATUS_CODE_RPC_SVC_DESC_PIDÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_ATFORKÚ)MSRPC_STATUS_CODE_RPC_SVC_DESC_CMA_THREADÚ&MSRPC_STATUS_CODE_RPC_SVC_DESC_INHERITÚ)MSRPC_STATUS_CODE_RPC_SVC_DESC_DG_SOCKETSÚ$MSRPC_STATUS_CODE_RPC_SVC_DESC_TIMERÚ&MSRPC_STATUS_CODE_RPC_SVC_DESC_THREADSÚ*MSRPC_STATUS_CODE_RPC_SVC_DESC_SERVER_CALLÚ"MSRPC_STATUS_CODE_RPC_SVC_DESC_NSIÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_DG_PKTÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_SAÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_CAÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_SGÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_CGÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_SRÚ-MSRPC_STATUS_CODE_RPC_M_CN_ILL_STATE_TRANS_CRÚ$MSRPC_STATUS_CODE_RPC_M_BAD_PKT_TYPEÚ%MSRPC_STATUS_CODE_RPC_M_PROT_MISMATCHÚ#MSRPC_STATUS_CODE_RPC_M_FRAG_TOOBIGÚ*MSRPC_STATUS_CODE_RPC_M_UNSUPP_STUB_RTL_IFÚ+MSRPC_STATUS_CODE_RPC_M_UNHANDLED_CALLSTATEÚ#MSRPC_STATUS_CODE_RPC_M_CALL_FAILEDÚ-MSRPC_STATUS_CODE_RPC_M_CALL_FAILED_NO_STATUSÚ)MSRPC_STATUS_CODE_RPC_M_CALL_FAILED_ERRNOÚ%MSRPC_STATUS_CODE_RPC_M_CALL_FAILED_SÚ%MSRPC_STATUS_CODE_RPC_M_CALL_FAILED_CÚ%MSRPC_STATUS_CODE_RPC_M_ERRMSG_TOOBIGÚ(MSRPC_STATUS_CODE_RPC_M_INVALID_SRCHATTRÚ%MSRPC_STATUS_CODE_RPC_M_NTS_NOT_FOUNDÚ)MSRPC_STATUS_CODE_RPC_M_INVALID_ACCBYTCNTÚ%MSRPC_STATUS_CODE_RPC_M_PRE_V2_IFSPECÚ"MSRPC_STATUS_CODE_RPC_M_UNK_IFSPECÚ(MSRPC_STATUS_CODE_RPC_M_RECVBUF_TOOSMALLÚ'MSRPC_STATUS_CODE_RPC_M_UNALIGN_AUTHTRLÚ&MSRPC_STATUS_CODE_RPC_M_UNEXPECTED_EXCÚ$MSRPC_STATUS_CODE_RPC_M_NO_STUB_DATAÚ&MSRPC_STATUS_CODE_RPC_M_EVENTLIST_FULLÚ%MSRPC_STATUS_CODE_RPC_M_UNK_SOCK_TYPEÚ"MSRPC_STATUS_CODE_RPC_M_UNIMP_CALLÚ&MSRPC_STATUS_CODE_RPC_M_INVALID_SEQNUMÚ(MSRPC_STATUS_CODE_RPC_M_CANT_CREATE_UUIDÚ!MSRPC_STATUS_CODE_RPC_M_PRE_V2_SSÚ*MSRPC_STATUS_CODE_RPC_M_DGPKT_POOL_CORRUPTÚ&MSRPC_STATUS_CODE_RPC_M_DGPKT_BAD_FREEÚ)MSRPC_STATUS_CODE_RPC_M_LOOKASIDE_CORRUPTÚ"MSRPC_STATUS_CODE_RPC_M_ALLOC_FAILÚ$MSRPC_STATUS_CODE_RPC_M_REALLOC_FAILÚ&MSRPC_STATUS_CODE_RPC_M_CANT_OPEN_FILEÚ&MSRPC_STATUS_CODE_RPC_M_CANT_READ_ADDRÚ%MSRPC_STATUS_CODE_RPC_SVC_DESC_LIBIDLÚ(MSRPC_STATUS_CODE_RPC_M_CTXRUNDOWN_NOMEMÚ&MSRPC_STATUS_CODE_RPC_M_CTXRUNDOWN_EXCÚ0MSRPC_STATUS_CODE_RPC_S_FAULT_CODESET_CONV_ERRORÚ&MSRPC_STATUS_CODE_RPC_S_NO_CALL_ACTIVEÚ,MSRPC_STATUS_CODE_RPC_S_NO_CONTEXT_AVAILABLEÚ*MSRPC_BIND_TIME_FEATURE_NEGOTIATION_PREFIXÚSMSRPC_BIND_TIME_FEATURE_NEGOTIATION_SECURITY_CONTEXT_MULTIPLEXING_SUPPORTED_BITMASKÚOMSRPC_BIND_TIME_FEATURE_NEGOTIATION_KEEP_CONNECTION_ON_ORPHAN_SUPPORTED_BITMASKÚMSRPC_STANDARD_NDR_SYNTAXrà  rÞ  rø  r  r  r  r4  r?  rF  rn  rt  r‡  r‹  r�  rß  rà  rÃ  rb  rk  rn  rq  ræ  ræ  ræ  rç  Ú<module>   s(  ÿþýüûúùø	÷
öõôóòñðïìù
ýÿþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í4Ì5Ë6Ê7É8È9Ç:Æ;Å<Ä=Ã>Â?Á@ÀA¿B¾C½D¼E»FºG¹H¸I·J¶KµL´M³N²O±P°Q¯R®S­T¬U«VªW©X¨Y§Z¦[¥\¤]£^¢_¡` aŸbžc�dœe›fšg™h˜i—j–k•l”m“n’o‘p�q�rŽs�tŒu‹vŠw‰xˆy‡z†{…|„}ƒ~‚�  �ÿ  �þ  �ý  �ü  �û  �ú  �ù  �ø 	 �÷ 
 �ö  �õ  �ô  �ó  �ò  �ñ  �ð  �ï  �î  �í  �ì  �ë  �ê  �é  �è  �ç  �æ  �å  �ä  �ã  �â  �á   �à ! �ß " �Þ # �Ý $ �Ü % �Û & �Ú ' �Ù ( �Ø ) �× * �Ö + �Õ , �Ô - �Ó . �Ò / �Ñ 0 �Ð 1 �Ï 2 �Î 3 �Í 4 �Ì 5 �Ë 6 �Ê 7 �É 8 �È 9 �Ç : �Æ ; �Å < �Ä = �Ã > �Â ? �Á @ �À A �¿ B �¾ C �½ D �¼ E �» F �º G �¹ H �¸ I �· J �¶ K �µ L �´ M �³ N �² O �± P �° Q �¯ R �® S �­ T �¬ U �« V �ª W �© X �¨ Y �§ Z �¦ [ �¥ \ �¤ ] �£ ^ �¢ _ �¡ ` �  a �Ÿ b �ž c �� d �œ e �› f �š g �™ h �˜ i �— j �– k �• l �” m �“ n �’ o �‘ p �� q �� r �Ž s �� t �Œ u �‹ v �Š w �‰ x �ˆ y �‡ z �† { �… | �„ } �ƒ ~ �‚  ��   � �ÿ   � �þ   � �ý   � �ü   � �û   � �ú   � �ù   � �ø  	 � �÷  
 � �ö   � �õ   � �ô   � �ó   � �ò   � �ñ   � �ð   � �ï   � �î   � �í   � �ì   � �ë   � �ê   � �é   � �è   � �ç   � �æ   � �å   � �ä   � �ã   � �â   � �á    � �à  ! � �ß  " � �Þ  # � �Ý  $ � �Ü  % � �Û  & � �Ú  ' � �Ù  ( � �Ø  ) � �×  * � �Ö  + � �Õ  , � �Ô  - � �Ó  . � �Ò  / � �Ñ  0 � �Ð  1 � �Ï  2 � �Î  3 � �Í  4 � �Ì  5 � �Ë  6 � �Ê  7 � �É  8 � �È  9 � �Ç  : � �Æ  ; � �Å  < � �Ä  = � �Ã  > � �Â  ? � �Á  @ � �À  A � �¿  B � �¾  C � �½  D � �¼  E � �»  F � �º  G � �¹  H � �¸  I � �·  J � �¶  K � �µ  L � �´  M � �³  N � �²  O � �±  P � �°  Q � �¯  R � �®  S � �­  T � �¬  U � �«  V � �ª  W � �©  X � �¨  Y � �§  Z � �¦  [ � �¥  \ � �¤  ] � �£  ^ � �¢  _ � �¡  ` � �   a � �Ÿ  b � �ž  c � ��  d � �œ  e � �›  f � �š  g � �™  h � �˜  i � �—  j � �–  k � �•  l � �”  m � �“  n � �’  o � �‘  p � ��  q � ��  r � �Ž  s � ��  t � �Œ  u � �‹  v � �Š  w � �‰  x � �ˆ  y � �‡  z � �†  { � �…  | � �„  } � �ƒ  ~ � �‚   � ��    � � �ÿ    � � �þ    � � �ý    � � �ü    � � �û    � � �ú    � � �ù    � � �ø   	 � � �÷   
 � � �ö    � � �õ    � � �ô    � � �ó    � � �ò    � � �ñ    � � �ð    � � �ï    � � �î    � � �í    � � �ì    � � �ë    � � �ê    � � �é    � � �è    � � �ç    � � �æ    � � �å    � � �
Ø   +(		3'*-3
g    *

