Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/Xlib/protocol/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/Xlib/protocol/__pycache__/display.cpython-312.pyc

�

%ٜg?�����ddlZddlZddlZddlZddlZddlmZddlmZm	Z	ddl
mZmZejddk\rd�Znd�ZGd	�d
�Zej ej"d�ej"d�ej"d
�ej$d��Zej ej(d�ej"d�ej"d�ej*d�ej(d�ej(d�ej(d�ej$d��Zej ej"d�ej$d�ej.dd�ej$d�ej0de��Zej ej4d�ej6d�ej(d�ej(d�ej(d�ej*d�ej*d�ej*d �ej*d!�ej*d"�ej*d#�ej(d$�ej"d%�ej"d&�ej"d'�ej.d(d�ej0d(e��ZGd)�d*ej:�Zy)+�N)�error)�lock�connect�)�rq�event�3c��|S�N���xs �@/usr/local/lib/python3.12/site-packages/Xlib/protocol/display.py�_bytes_itemr's����c��t|�Sr)�ordr
s rrr*s���1�v�
rc�*�eZdZiZiZejj�Ze	jj�Zdd�Zd�Z
d�Zd�Zd�Zd�Zd�Zd	�Zd
�Zd�Zd�Zdd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zdd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d�Z'y) �DisplayNc���tj|�\}}}}||_||_tj|||�|_tj|j
|||�\}}tj�|_	d|_
tj�|_tj�|_g|_
tj�|_d|_g|_tj�|_d|_d|_d|_tj�|_d|_tj�|_g|_d|_d|_d|_d|_tj�|_i|_d|_d|_ tCjDdtCjFdd��d|_$|jHrd}nd}tK||d	d||�
�}	|	jLdk7r*tOjP|j|	jR��|	|_*tW|jtY|jTjZ�dz
�|_y)Nrrr�BB�H��B�l�)�
byte_order�protocol_major�protocol_minor�auth_prot_name�auth_prot_data).r�get_display�display_name�default_screen�
get_socket�socket�get_authr�
allocate_lock�socket_error_lock�socket_error�event_queue_read_lock�event_queue_write_lock�event_queue�request_queue_lock�request_serial�
request_queue�send_recv_lock�send_active�recv_active�
event_waiting�event_wait_lock�request_waiting�request_wait_lock�
sent_requests�request_length�	data_send�	data_recv�data_sent_bytes�resource_id_lock�resource_ids�last_resource_id�
error_handler�struct�unpack�pack�
big_endian�ConnectionSetupRequest�statusr�DisplayConnectionError�reason�info�min�len�roots)
�self�display�name�host�	displayno�screenno�	auth_name�	auth_data�order�rs
          r�__init__zDisplay.__init__4s$��*1�*=�*=�g�*F�'��d�I�x� ���&����(�(��t�Y�?���&�/�/����04�d�I� G��	�9�"&�!3�!3�!5��� ���&*�%7�%7�%9��"�&*�&8�&8�&:��#����#'�"4�"4�"6���������#�0�0�2������������#�1�1�3��� ���!%�!3�!3�!5��� ������������ ���!%� 2� 2� 4������ !���"���!�-�-��f�k�k�#�v�.F�G��J����?�?��E��E�
#�4�05�46�45�4=�4=�
?��
�8�8�q�=��.�.�t�/@�/@�!�(�(�K�K���	�!�$�"5�"5�s�4�9�9�?�?�7K�a�7O�P��rc��|jSr)r#�rMs r�get_display_namezDisplay.get_display_name�s��� � � rc��|jSr)r$rYs r�get_default_screenzDisplay.get_default_screen�s���"�"�"rc�V�|j�|jj�Sr)�check_for_errorr&�filenorYs rr_zDisplay.fileno�s!�������{�{�!�!�#�#rc� �|j�|jj�|jj�|jsm|j
j�|jj
�|jd��|jj�|js�m|jd}|jd=|jj
�|jj
�|S)Nr)rr)r^r+�acquirer,r-r1�release�
send_and_recv)rMrs  r�
next_eventzDisplay.next_event�s�������	
�"�"�*�*�,�	
�#�#�+�+�-�
�"�"�

���'�'�)�
�'�'�/�/�1�
���q��)�
�'�'�/�/�1�#�"�"�,� � ��#�����Q���#�#�+�+�-�
	
�"�"�*�*�,��rc��|j�|jj�|jd��|jj�t|j�}|jj�|S)Nr)�recv)r^r1rarcr,rKr-rb)rM�counts  r�pending_eventszDisplay.pending_events�sn������	
���#�#�%����!��$�	
�#�#�+�+�-��D�$�$�%���#�#�+�+�-��rc�|�|j�|jj�|jd��y)Nr)�flush)r^r1rarcrYs rrjz
Display.flush�s1���������#�#�%����1��%rc�F�|j�|jd�y)N�client)rj�close_internalrYs r�closez
Display.close�s���
�
�����H�%rc��||_yr)r@)rM�handlers  r�set_error_handlerzDisplay.set_error_handler�s
��$��rc���|jj�	|j}||jvrS|dz}||jj
kDrd}||jk(rt
jd��||jvr�Sd|j|<||_|jj|z|jj�S#|jj�wxYw)z�id = d.allocate_resource_id()

        Allocate a new X resource id number ID.

        Raises ResourceIDError if there are no free resource ids.
        rrzout of resource idsN)
r=rar?r>rI�resource_id_maskr�ResourceIDError�resource_id_baserb)rM�is  r�allocate_resource_idzDisplay.allocate_resource_id�s���	
���%�%�'�
	,��%�%�A��t�(�(�(���E���t�y�y�1�1�1��A���-�-�-��/�/�0E�F�F��t�(�(�(�$(�D���a� �$%�D�!��9�9�-�-��1��!�!�)�)�+��D�!�!�)�)�+�s�A,C�	.C�C.c��|jj�	||jjz}||z
|jjk7r	|jj�y	|j|=|jj�y#t$rY�&wxYw#|jj�wxYw)z�d.free_resource_id(rid)

        Free resource id RID.  Attempts to free a resource id which
        isn't allocated by us are ignored.
        N)r=rarIrsrurbr>�KeyError)rM�ridrvs   r�free_resource_idzDisplay.free_resource_id�s���	
���%�%�'�	,��d�i�i�0�0�0�A��Q�w�$�)�)�4�4�4��
�!�!�)�)�+�
��%�%�a�(�
�!�!�)�)�+���
��
��
�!�!�)�)�+�s)�5B%�.
B�	B"�B%�!B"�"B%�%Cc�:�|jj||�S)z�class = d.get_resource_class(class_name, default = None)

        Return the class to be used for X resource objects of type
        CLASS_NAME, or DEFAULT if no such class is set.
        )�resource_classes�get)rM�
class_name�defaults   r�get_resource_classzDisplay.get_resource_classs���$�$�(�(��W�=�=rc�"�||j|<yr��extension_major_opcodes)rM�extname�majors   r�set_extension_majorzDisplay.set_extension_majors��05��$�$�W�-rc� �|j|Srr�)rMr�s  r�get_extension_majorzDisplay.get_extension_major s���+�+�G�4�4rc�"�||j|<yr)�
event_classes)rM�code�evts   r�add_extension_eventzDisplay.add_extension_event#���#&����4� rc�"�||j|<yr)�
error_classes)rMr��errs   r�add_extension_errorzDisplay.add_extension_error&r�rc��|jj�|j}|jj�|r|�yr)r)rar*rb�rMr�s  rr^zDisplay.check_for_error.s>�����&�&�(��������&�&�(���I�rc�P�|jr|j�|jj�|j|_|jdzdz|_|j
j
||f�t|j
�}|jj�y)Nr�)	r*r.rar/�_serialr0�appendrKrb)rM�request�wait_for_response�qlens    r�send_requestzDisplay.send_request6s�������#�#�#����'�'�)��-�-���#�2�2�Q�6�%�?������!�!�7�,=�">�?��4�%�%�&�����'�'�)rc��d|_d|_d|_d|_d|_|j
j
�|jj�tj|�|_|jj�yr)
r0r8r-r:r;r&rnr)rar�ConnectionClosedErrorr*rb)rM�whoms  rrmzDisplay.close_internalGss��!���!������������	
������	
���&�&�(�!�7�7��=������&�&�(rc�x	�|s|�|js|s|r�|jr�|r0|j}|jsId|_|j	�n1|�/|j
}|jsd|_|j	�|jj�|s|ryj	�|j�y|js
d}d|_nd}d}d}	|s|js�|jj	�|jD]A\}	}
|j|	jz|_|
s�'|jj|	��C|jdd�=|jj�|jr
d|_d}n	d|_d}|jj�|r$|�"|jt!|j�z}	|r|j"g}ng}|s|rd}nd}t%j$|j"g|g|�\}
}}|rN	|j"j-|j�}|j|d|_|j|z|_d}|
r�|ra	|j"j3d�}|s|j/d�|j0�|j6|z|_|j9|�}n<|jj	�d|_|jj�y|r||jk\rn3|r
|j:rn$|�|rn|rn|jj	���{|jj	�|rd|_|rd|_|jr!d|_|jj�|jr!d|_|j
j�|jj�y#t&$rD}|j(t(j*k7r|�|jj	�Yd}~��ed}~wwxYw#t&$r(}|j/d|dz�|j0�d}~wwxYw#t&$r/}|j/d|j4z�|j0�d}~wwxYw)a�send_and_recv(flush = None, event = None, request = None, recv = None)

        Perform I/O, or wait for some other thread to do it for us.

        send_recv_lock MUST be LOCKED when send_and_recv is called.
        It will be UNLOCKED at return.

        Exactly or one of the parameters flush, event, request and recv must
        be set to control the return condition.

        To attempt to send all requests in the queue, flush should
        be true.  Will return immediately if another thread is
        already doing send_and_recv.

        To wait for an event to be recieved, event should be true.

        To wait for a response to a certain request (either an error
        or a response), request should be set the that request's
        serial number.

        To just read any pending data from the server, recv should be true.

        It is not guaranteed that the return condition has been
        fulfilled when the function returns, so the caller has to loop
        until it is finished.
        Nrrz
server: %si�server)r2r3r5r4rar7r6r1rbr.r0r:�_binaryr8r�r<rKr&�select�OSError�errno�EINTR�sendrmr*rf�strerrorr;�parse_responser-)rMrjrr�rf�	wait_lock�	recieving�flush_bytes�sending�req�wait�writeset�timeout�rs�ws�esr�rv�gotreq�
bytes_recvs                    rrczDisplay.send_and_recvXsn��N�w�*��0@�0@��$�D�$4�$4�� �0�0�	��)�)�)*�D�&��%�%�'��$� �2�2�	��+�+�+,�D�(��%�%�'�
���'�'�)�
���
��������
�����I� �D���I�������d�.�.�
�'�'�/�/�1�!%�!3�!3�I�C��%)�^�^�c�k�k�%A�D�N���*�*�1�1�#�6�"4�
�&�&�q�)��'�'�/�/�1��>�>�'(�D�$��G�'(�D�$��G�
���'�'�)�
��,�"�2�2�S����5H�H�� 
�� $���}�H�!�H�
�5��G�"�G�#�]�]�D�K�K�=�(�B��P�
��B�� �,����(�(����8�A�
"&�����!3���'+�';�';�a�'?��$��F���0�%)�[�[�%5�%5�d�%;�
�
&��+�+�H�5�"�/�/�/�%)�^�^�j�%@�D�N�!�0�0��9�F��'�'�/�/�1�'(�D�$��'�'�/�/�1�����(<�(<�<����)�)���"�v����

���'�'�)�]�j	
���#�#�%�� �D��� �D�����!"�D��� � �(�(�*����#$�D� ��"�"�*�*�,����#�#�%��O�
��9�9����+��I�
�#�#�+�+�-���
���,��'�'��s�1�v�(=�>��+�+�+��,�� #�0��+�+�L�3�<�<�,G�H�"�/�/�/��0�sI�"AO=�'%Q
�;R�=	Q
�9Q�Q
�
	Q>�#Q9�9Q>�	R9�
*R4�4R9c��|dk(r|j�Sd}	|jr9t|j�|jkr|S|j	|�xs|}t|j�dkr|St|jd�}|dk(r|j
|�xs|}nS|dk(r=ttjd|jdd�d�}d|dzz|_n|j|���)a%Internal method.

        Parse data recieved from server.  If REQUEST is not None
        true is returned if the request with that serial number
        was recieved, otherwise false is returned.

        If REQUEST is -1, we're parsing the server connection setup
        response.
        ���rr� z=L��)�parse_connection_setupr9rKr;�parse_request_responser�parse_error_response�intrArB�parse_event_response)rMr�r��rtype�rlens     rr�zDisplay.parse_responsems����b�=��.�.�0�0�����"�"��t�~�~�&��)<�)<�<�!�M�!�8�8��A�K�V�F�
�4�>�>�"�R�'��
� ����q� 1�2�E���z��2�2�7�;�E�v���!���6�=�=��t�~�~�a��/B�C�A�F�G��&(�4�!�8�m��#��)�)�%�0�=rc���t|jd�}|jj|tj
�}|||jdd�}|jdd|_|j
|j�}|r�|j|�r�t|tj�ra|jj�|jr!d|_|jj!�|jj!�||jk(S|j"r"tj$|j"|d�y|j'|�y)Nrr�r)rr;r�r~r�XError�get_waiting_request�sequence_number�
_set_error�
isinstancer�ReplyRequestr1rar6r7rbr@�call_error_handler�default_error_handler)rMr�r��estruct�er�s      rr�zDisplay.parse_error_response�s'���4�>�>�!�,�-���$�$�(�(��u�|�|�<���D�$�.�.��"�-�.�������,����&�&�q�'8�'8�9���3�>�>�!�$�
�#�r���/��#�#�+�+�-��'�'�+,�D�(��*�*�2�2�4��#�#�+�+�-��a�/�/�/�/��!�!��%�%�d�&8�&8�!�T�B���*�*�1�-�rc�H�tjjd|z�y)NzX protocol error:
%s
)�sys�stderr�writer�s  rr�zDisplay.default_error_handler�s���
�
���2�S�8�9rc�>�|j�}tjd|jdd�d}||jk7rtd|j�d|�d���|j
|jd|j�|j|jd|_d|_|jj�|jr!d|_
|jj�|jj�|j|k(S)Nz=H�r�rzExpected reply for request z
, but got z.  Can't happen!)�get_waiting_replyrequestrArBr;r��RuntimeError�_parse_responser9r1rar6r7rbr�)rMr�r��snos    rr�zDisplay.parse_request_response�s����+�+�-���m�m�D�$�.�.��1�"5�6�q�9���#�+�+���"%�+�+�s� 4�5�
5�	���D�N�N�+?�D�,?�,?�@�A�����(;�(;�(<�=������
	
���#�#�%����#$�D� ��"�"�*�*�,����#�#�%��"�"�g�-�-rc�V�|jj|dztj�}|||jdd��}|jdd|_|j|jdz
dz�|jj�|jj|�|jj�|jj�|jr!d|_
|jj�|jj�y)N�r�)rN�
binarydatarr�r)r�r~r�AnyEventr;r�r�r,rar-r�rbr1r4r5)rM�etyper�r�s    rr�zDisplay.parse_event_response�s����$�$�(�(����u�~�~�F���d������1D�E�������,���	
� � �!�"3�"3�a�"7�5�!@�A�
	
�#�#�+�+�-�������"��#�#�+�+�-�	
���#�#�%����!"�D��� � �(�(�*����#�#�%rc�j�|jsy|jdj|jkDr$|jdz}||jkr&|dz}n |j}||jkDr|dz
}||jdjkryd}t|j�}d}d}t	dt|j��D]R}|j|j|z}||krd}||z}|}||k(r|j|}|dz}n
||ks�Nd}|}n|jd|�=|S)Nrr�r)r8r�r/rK�range)	rMr��last_serialr��reqpos�adj�lastrv�rnos	         rr�zDisplay.get_waiting_requests\���!�!�����a� �(�(�4�+>�+>�>��-�-��5�K��T�(�(�(��E�k���-�-�K��T�(�(�(��E�k����#�#�A�&�.�.�.�����T�'�'�(�������q�#�d�0�0�1�2�A��$�$�Q�'�/�/�#�5�C��T�z����C�i���D��c�z��(�(��+���Q�����s�������#3�(
���w��w�'��
rc���tdt|j��D]@}t|j|d�s�|j|}|jd|dz�=|cSt	d��)Nr�_replyrz0Request reply to unknown request.  Can't happen!)r�rKr8�hasattrr�)rMrvr�s   rr�z Display.get_waiting_replyrequestFsl���q�#�d�0�0�1�2�A��t�)�)�!�,�h�7��(�(��+���&�&�v��A��v�.��
�	3��Q�R�Rrc��|jd}	|jr�|jddz}t|j�|kry|jddk7r*|jd|jd|jd<nI|jj|jd||d�	�\}}|jj
|�|jd=|j|d|_yt|j�d
kry|jj|jdd
|d�	�\|_}|jd
d|_��@)zCInternal function used to parse connection setup response.
        rr�additional_lengthr�rFN�
reason_lengthrH)�rawdictr�)r8�_datarKr;�_success_reply�parse_binary�updater�)rMrV�alenr�ds     rr�zDisplay.parse_connection_setupQsG��

���q�!����w�w��w�w�2�3�a�7���t�~�~�&��-���7�7�8�$��)�(,���7P�����8P�(Q�A�G�G�H�%��+�+�8�8������9N�9=��9�L�D�A�q��G�G�N�N�1�%��&�&�q�)�!%�����!6�����t�~�~�&��*���X�X�2�2�4�>�>�"�1�3E�37�1�3�F�
����!%�����!3���Grr)NNNN)(�__name__�
__module__�__qualname__r}r�r�xerror_class�copyr�r�event_classr�rWrZr\r_rdrhrjrnrqrwr{r�r�r�r�r�r^r�rmrcr�r�r�r�r�r�r�r�rrrrr.s����� ���&�&�+�+�-�M��%�%�*�*�,�M�QQ�p!�#�$�1�f�&�
&�%�,�0,�0>�6�5�'�'��*�")�"R&�j.1�b*�Z:�.�>&�D4�l	S�*4rr�depth�bits_per_pixel�scanline_pad��	visual_id�visual_class�bits_per_rgb_value�colormap_entries�red_mask�
green_mask�	blue_maskr��visualsr��root�default_colormap�white_pixel�black_pixel�current_input_mask�width_in_pixels�height_in_pixels�width_in_mms�
height_in_mms�min_installed_maps�max_installed_maps�root_visual�
backing_store�save_unders�
root_depth�allowed_depthsc���eZdZejej
ddd�ejd�ejd�ejd�ejdd�ejdd�ejd�ejd�ejd��	Z
ejejd	�ejd
�ejd�ejd�ejd��Zejejd�ejd
�ejd�ejd�ejdd�ejd�ejdd�ejdd�ejd�ejd�ejd�ejd�ejd�ejd�ejd�ejd�ejde�ejde��Zd�Zy)rErr)rrrrr r�r!rFr�r��release_numberrurs�motion_buffer_size�vendor�max_request_lengthrL�pixmap_formats�image_byte_order�bitmap_format_bit_order�bitmap_format_scanline_unit�bitmap_format_scanline_pad�min_keycode�max_keycoder�c���|jj|i|��|_d|_|jj|df�|jj�|jd��y)Nrr�)r�)	�_request�	to_binaryr�r�r0r�r1rarc)rMrN�args�keyss    rrWzConnectionSetupRequest.__init__�se��.�t�}�}�.�.��=��=�����
�
	���$�$�d�A�Y�/�
	���&�&�(������+rN)r�r�r�r�Struct�Set�Pad�Card16�LengthOf�String8r!�Card8r��Card32�List�PixmapFormat�Screenr�rWrrrrErE�s���r�y�y�&�"�&�&��q�,�?� �"�&�&��)�#�"�)�)�$4�5�#�"�)�)�$4�5�%�"�+�+�&6��:�%�"�+�+�&6��:� �"�&�&��)�$�"�*�*�%5�6�$�"�*�*�%5�6�9�H��R�Y�Y�����(�+�!����/�2�"����#3�4�"����#3�4�"����#6�7�	:�F��R�Y�Y�	��	�	�*:� ;� )��	�	�*<� =� )��	�	�*<� =� )��	�	�*>� ?� +����H�a� 8� )��	�	�*>� ?� +����G�Q� 7� +����,<�a� @� (����);� <� (����)B� C� (����)F� G� (����)E� F� (����� 7� (����� 7� &����q�	� *��
�
�8� 4� '����(8�,� G� '������ 8�#"�N�*
,rrE)r�r�r&rAr��Xlibr�Xlib.supportrr�rr�versionrrr%r+r'r.r,r(�
VisualTyper)r-�Depth�Window�Colormapr/�GetAttrDatarErrr�<module>r9s���,
�
�
�
�
��&���;�;�q�>�S����M
4�M
4�f�r�y�y�(�"�(�(�7�+�"�"�(�(�#3�4�"�"�(�(�>�2� �"�&�&��)����R�Y�Y�����;�/�!����.�1�!����"6�7�"����#5�6�"����:�.�"����<�0�"����;�/��������
�	��	�	�8�2�8�8�G�$��2�6�6�!�9��2�;�;�y�!�,��2�6�6�!�9��2�7�7�9�j�1�		��
����I�B�I�I�f�%��B�K�K� 2�3��B�I�I�m�,��B�I�I�m�,��B�I�I�2�3��B�I�I�/�0��B�I�I�0�1��B�I�I�n�-��B�I�I�o�.��B�I�I�2�3��B�I�I�2�3��B�I�I�m�,��B�H�H�_�-��B�H�H�]�+��B�H�H�\�*��B�K�K� 0�!�4��B�G�G�,�e�4�!
��(3,�R�^�^�3,r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists