%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3/dist-packages/samba/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3/dist-packages/samba/__pycache__/forest_update.cpython-312.pyc

�

�I�d�R���ddlZddlZddlmZddlmZmZddlmZddlm	Z	ddl
mZddlm
Z
mZmZmZmZdZd	Zidd
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d&�d'd(�d)d*�id+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF�dGdH�dIdJ�dKdL��idMdN�dOdP�dQdR�dSdT�dUdV�dWdX�dYdZ�d[d\�d]d^�d_d`�dadb�dcdd�dedf�dgdh�didj�dkdl�dmdn��idodp�dqdr�dsdt�dudv�dwdx�dydz�d{d|�d}d~�dd��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d���id�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���id�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ԓ�id�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�d�d�d�d�d�d�d�d��d�d�d�d��Ze
d�ed�ed�e�ded	iZe
�de�dededediZ�dgZG�d��d	e�ZG�d
��de�Zy(�N)�sd_utils)�
ndr_unpack�ndr_pack)�security)�SECINFO_DACL)�
setup_path)�DS_DOMAIN_FUNCTION_2008�DS_DOMAIN_FUNCTION_2008_R2�DS_DOMAIN_FUNCTION_2012�DS_DOMAIN_FUNCTION_2012_R2�DS_DOMAIN_FUNCTION_2016��z$27a03717-5963-48fc-ba6f-69faa33e70ed�z$3467dae5-dedd-4648-9066-f48ac186b20a�
z$33b7ee33-1386-47cf-baa1-b03e06473253�z$e9ee8d55-c2fb-4723-a333-c80ff4dfbf45�z$ccfae63a-7fb5-454c-83ab-0e8e1214974e�z$ad3c7909-b154-4c16-8bf7-2c3a7870bb3d�z$26ad2ebf-f8f5-44a4-b97c-a616c8b9d09a�z$4444c516-f43a-4c12-9c4b-b5c064941d61�z$436a1a4b-f41a-46e6-ac86-427720ef29f3�z$b2b7fb45-f50d-41bc-a73b-8f580f3b636a�z$1bdf6366-c3db-4d0b-b8cb-f99ba9bce20f�z$63c0f51a-067c-4640-8a4f-044fb33f1049�z$dae441c0-366e-482e-98d9-60a99a1898cc�z$7dd09ca6-f0d6-43bf-b7f8-ef348f435617�z$6b800a81-affe-4a15-8e41-6ea0c7aa89e4�z$dd07182c-3174-4c95-902a-d64fee285bbf�z$ffa5ee3c-1405-476d-b344-7ad37d69cc25�z$099f1587-af70-49c6-ab6c-7b3e82be0fe2�z$1a3f6b15-55f2-4752-ba27-3d38a8232c4d�z$dee21a17-4e8e-4f40-a58c-c0c009b685a7�z$9bd98bb4-4047-4de5-bf4c-7bd1d0f6d21d� z$3fe80fbf-bf39-4773-b5bd-3e5767a30d2d�!z$f02915e2-9141-4f73-b8e7-2804662782da�"z$39902c52-ef24-4b4b-8033-2c9dfdd173a2�#z$20bf09b4-6d0b-4cd1-9c09-4231edf1209b�$z$94f238bb-831c-11d6-977b-00c04f613221�%z$94f238bc-831c-11d6-977b-00c04f613221�&z$94f238bd-831c-11d6-977b-00c04f613221�'z$94f238be-831c-11d6-977b-00c04f613221�(z$94f238bf-831c-11d6-977b-00c04f613221�)z$94f238c0-831c-11d6-977b-00c04f613221�*z$eda27b47-e610-11d6-9793-00c04f613221�+z$eda27b48-e610-11d6-9793-00c04f613221�,z$eda27b49-e610-11d6-9793-00c04f613221�-z$eda27b4a-e610-11d6-9793-00c04f613221�.z$26d9c510-e61a-11d6-9793-00c04f613221�/z$26d9c511-e61a-11d6-9793-00c04f613221�0z$ea08c04c-f474-4212-b19e-5e754f9210d4�1z$4c0672a2-437c-4944-b953-5db8f111d665�2z$4c022fd1-adab-4d84-a7f1-9580f03da856�3z$c03b1f37-c240-4910-93c8-1544a452b4b5�4z$560cf82d-9572-48a3-9024-6f2b56f1f866�5z$abd97102-88dd-4013-a009-0e2c2f967ff6�6z$134428a8-0043-48a6-bcda-63310d9ec4dd�7z$d668ad1f-cedd-4565-ab02-9385926ce4f5�8z$8f86b825-c322-4101-adc4-579f12d445db�9z$9fea28ff-387f-4d57-866d-3893c50f373f�:z$782370ce-3d38-438d-8b0c-464220a3039d�;z$002fb291-0d00-4b0c-8c00-fe7f50ce6f8d�<z$dcb3c95d-deb7-4c51-ad13-43a7d5d06fc7�=z$ef010a1e-bd88-48c8-a7af-2affd250d77d�>z$bd3413c0-9559-469b-9f3d-51d7faabd81a�?z$f814097b-3e3d-49ba-8a3a-092c25085f06�@z$6eb8eaf9-3403-4ba5-8b4b-ce349a4680ad�Az$07e57d28-ad40-44fc-8334-8a0dc119b3f4�Bz$6fd48655-1698-497a-ac8d-8267ce01c80b�Cz$10338d31-2423-4dff-b4b5-ef025144b01f�Dz$a96e2ed5-7a7c-4d5c-9d5d-965eca0051da�Ez$613bd063-e8e9-4a62-8f4c-cda566f7eb6f�Fz$2a858903-5696-4364-b4e5-4cac027ca7a6�Gz$0fc5a978-0059-4b0a-9dc2-9896e8e389a1�Hz$4d753a29-26ac-4d1a-bc80-311f947e4f0a�Iz$3b3adbdb-4485-4559-aed8-9811c4bf90e4�Jz$56040c71-fe93-4037-8fe9-1a4d1a283009�Kz$caa2bfad-0cca-483b-8d00-347f943292a8�Lz$2b9e0609-6d75-498a-9727-c9fcc93f0e42�Mz$96541a16-910a-4b66-acde-720a0dff03c7�Nz$429a6334-1a00-4515-bf48-676deb55954a�Oz$21ae657c-6649-43c4-bbb3-7f184fdf58c1�Pz$dca8f425-baae-47cd-b424-e3f6c76ed08b�Qz$a662b036-dbbe-4166-b4ba-21abea17f9cc�Rz$9d17b863-18c3-497d-9bde-45ddb95fcb65�Sz$11c39bed-4bee-45f5-b195-8da0e05b573a�Tz$4664e973-cb20-4def-b3d5-559d6fe123e0�Uz$2972d92d-a07a-44ac-9cb0-bf243356f345�Vz$09a49cb3-6c54-4b83-ab20-8370838ba149�Wz$77283e65-ce02-4dc3-8c1e-bf99b22527c2�Xz$0afb7f53-96bd-404b-a659-89e65c269420�Yz$c7f717ef-fdbe-4b4b-8dfc-fa8b839fbcfa�Zz$00232167-f3a4-43c6-b503-9acb7a81b01c�[z$73a9515b-511c-44d2-822b-444a33d3bd33�\z$e0c60003-2ed7-4fd3-8659-7655a7e79397�]z$ed0c8cca-80ab-4b6b-ac5a-59b1d317e11f�^z$b6a6c19a-afc9-476b-8994-61f5b14b3f05�_z$defc28cd-6cb6-4479-8bcb-aabfb41e9713�`z$d6bd96d4-e66b-4a38-9c6b-e976ff58c56d�az$bb8efc40-3090-4fa2-8a3f-7cd1d380e695�bz$2d6abe1b-4326-489e-920c-76d5337d2dc5�cz$6b13dfb5-cecc-4fb8-b28d-0505cea24175�dz$92e73422-c68b-46c9-b0d5-b55f9c741410�ez$c0ad80b4-8e84-4cc4-9163-2f84649bcc42�fz$992fe1d0-6591-4f24-a163-c820fcb7f308�gz$ede85f96-7061-47bf-b11b-0c0d999595b5�hz$ee0f3271-eb51-414a-bdac-8f9ba6397a39�iz$587d52e0-507e-440e-9d67-e6129f33bb68�jz$ce24f0f6-237e-43d6-ac04-1e918ab04aac�kz$7f77d431-dd6a-434f-ae4d-ce82928e498f�lz$ba14e1f6-7cd1-4739-804f-57d0ea74edf4�mz$156ffa2a-e07c-46fb-a5c4-fbd84a4e5cce�nz$7771d7dd-2231-4470-aa74-84a6f56fc3b6�oz$49b2ae86-839a-4ea0-81fe-9171c1b98e83�pz$1b1de989-57ec-4e96-b933-8279a8119da4�qz$281c63f0-2c9a-4cce-9256-a238c23c0db9�rz$4c47881a-f15a-4f6c-9f49-2742f7a11f4b�sz$2aea2dc6-d1d3-4f0c-9994-66c1da21de0f�tz$ae78240c-43b9-499e-ae65-2b6e0f0e202a�uz$261b5bba-3438-4d5c-a3e9-7b871e5f57f0�vz$3fb79c05-8ea1-438c-8c7a-81f213aa61c2�wz$0b2be39a-d463-4c23-8290-32186759d3b1�xz$f0842b44-bc03-46a1-a860-006e8527fccd�yz$93efec15-4dd9-4850-bc86-a1f2c8e2ebb9�zz$9e108d96-672f-40f0-b6bd-69ee1f0b7ac4�{z$1e269508-f862-4c4a-b01f-420d26c4ff8c�}z$e1ab17ed-5efb-4691-ad2d-0424592c5755�~z$0e848bd4-7c70-48f2-b8fc-00fbaa82e360�z$016f23f7-077d-41fa-a356-de7cfdb01797�z$49c140db-2de3-44c2-a99a-bab2e6d2ba81�z$e0b11c80-62c5-47f7-ad0d-3734a71b8312�z$2ada1a2d-b02f-4731-b4fe-59f955e24f71z$b83818c1-01a6-4f39-91b7-a3bb581c3ae3z$bbbb9db0-4009-4368-8c40-6674e980d3c3z$f754861c-3692-4a7b-b2c2-d0fa28ed0b0bz$d32f499f-3026-4af0-a5bd-13fe5a331bd2z$38618886-98ee-4e42-8cf1-d9a2cd9edf8bz$328092fb-16e7-4453-9ab8-7592db56e9c4z$3a1c887f-df0a-489f-b3f2-2d0409095f6ez$232e831f-f988-4444-8e3e-8a352e2fd411z$ddddcf0c-bec9-4a5a-ae86-3cfe6cc6e110z$a0a45aac-5550-42df-bb6a-3cc5c46b52f2z$3e7645f3-3ea5-4567-b35a-87630449c70cz$e634067b-e2c4-4d79-b6e8-73c619324d5e)�����������rr����|c��eZdZy)�ForestUpdateExceptionN)�__name__�
__module__�__qualname__���5/usr/lib/python3/dist-packages/samba/forest_update.pyr�r��s��r�r�c��eZdZdZ		dd�Z		dd�Zd�Zdd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�ForestUpdatez2Check and update a SAM database for forest updatesc�P�ddlm}||_||_||_||_d|_|jj�|_|jj�|_	|jj�|_tj|�|_tj|j!��|_|jj�|_	|j$j'd�|jj�|_	|j.j'd�i|_|t3d�|j0�	�y
#t(j*$rt-d��wxYw#t(j*$rt-d��wxYw)a
        :param samdb: LDB database
        :param verbose: Show the ldif changes
        :param fix: Apply the update if the container is missing
        :param add_update_container: Add the container at the end of the change
        :raise ForestUpdateException:
        r)�read_ms_markdownFzCN=Operations,CN=ForestUpdatesz+Failed to add forest update container childz)CN=ActiveDirectoryUpdate,CN=ForestUpdatesz#Failed to add revision object childz/adprep/WindowsServerDocs/Forest-Wide-Updates.md)�out_dictN)� samba.ms_forest_updates_markdownr��samdb�fix�verbose�add_update_container�check_update_applied�get_config_basedn�	config_dn�	domain_dn�get_schema_basedn�	schema_dnr�SDUtilsr�dom_sid�get_domain_sid�
domain_sid�forestupdate_container�	add_child�ldb�LdbErrorr��revision_object�stored_ldifr)�selfr�r�r�r�r�s      r��__init__zForestUpdate.__init__�s`��	F���
�������$8��!�$)��!����5�5�7������-�-�/������5�5�7��� �(�(��/��
�"�*�*�5�+?�+?�+A�B���&*�j�j�&B�&B�&D��#�	W��'�'�1�1�2R�S� $�z�z�;�;�=���	O�� � �*�*�+V�W�
�����$U�V�"&�"2�"2�	4���|�|�	W�'�(U�V�V�	W���|�|�	O�'�(M�N�N�	O�s�)E$�$F�$F�F%Nc��|jj|jdgtj��}t
|}|rt
|}|dz
}nt}|j||�t|}t|ddd�}|rV||krP|jstd||fz��|jjdt|j�|fz�yyy)a
        Apply all updates for a given old and new functional level
        :param functional_level: constant
        :param old_functional_level: constant
        :param update_revision: modify the stored version
        :raise ForestUpdateException:
        �revision)�base�attrs�scope�rzERevision is not high enough. Fix is set to False.
Expected: %dGot: %dz:dn: %s
changetype: modify
replace: revision
revision: %d
 N)r��searchr�r��
SCOPE_BASE�functional_level_to_max_update�
MIN_UPDATE�check_updates_range�functional_level_to_version�intr�r��modify_ldif�str)	r��functional_level�old_functional_level�update_revision�res�expected_update�
min_update�expected_version�
found_versions	         r��check_updates_functional_levelz+ForestUpdate.check_updates_functional_level�s���j�j���T�%9�%9�'1�l�#�.�.� �J��9�9I�J���7�8L�M�J��!�O�J�#�J�� � ��_�=�6�7G�H���C��F�:�.�q�1�2�
��}�/?�?��8�8�+�-D�GW�GT�GV�-V�W�W�
�J�J�"�"�$�	�D� � �!�#3�4�	$5�
6� @�?r�c�v�|D]�}|tks	|tkDrtd��d|cxkrdkrnn|j|��@d|cxkrdkrnn|j|��`d|cxkrdkrnn|j|���d|cxkrd	krnn|j|���t	|d
|z�|���y)z�
        Apply a list of updates which must be within the valid range of updates
        :param iterator: Iterable specifying integer update numbers to apply
        :raise ForestUpdateException:
        �Update number invalid.rXr[r_r�r�r�r�r�operation_%dN)r��
MAX_UPDATEr��operation_ldif�getattr)r��iterator�ops   r��check_updates_iteratorz#ForestUpdate.check_updates_iterators����	7�B��J��"�z�/�+�,D�E�E��R�~�2�~��#�#�B�'��r��S���#�#�B�'���!�c�!��#�#�B�'���!�c�!��#�#�B�'�3���n�r�1�2�2�6�	7r�c��|}|tks||kDs	|tkDrtd��||kr�|tvrn�d|cxkrdkrnn|j	|�nud|cxkrdkrnn|j	|�nUd|cxkrdkrnn|j	|�n5d|cxkrd	krnn|j	|�nt|d
|z�|�|dz
}||kr��yy)
z�
        Apply a range of updates which must be within the valid range of updates
        :param start: integer update to begin
        :param end: integer update to end (inclusive)
        :raise ForestUpdateException:
        r�rXr[r_r�r�r�r�rr�r�N)r�r�r��missing_updatesr�r�)r��start�endr�s    r�r�z ForestUpdate.check_updates_range/s������:������j�0@�'�(@�A�A��C�i��_�$���r��R���#�#�B�'��r��S���#�#�B�'���!�c�!��#�#�B�'���!�c�!��#�#�B�'�3���n�r�1�2�2�6��!�G�B��C�ir�c�d�dt|�d|j��}	|jj|tj
g��}t|�dk(sJ�td|t|fz�y#tj$r-}|j\}}|tjk7r�Yd}~yd}~wwxYw)	zd
        :param op: Integer update number
        :return: True if update exists else False
        zCN=�,)r�r�r�NFr�zSkip Forest Update %u: %sT)�
update_mapr�r�r�r�r�r��args�ERR_NO_SUCH_OBJECT�len�print)r�r��	update_dnr��e�num�msgs       r��
update_existszForestUpdate.update_existsJs���
#-�R�.�$�2M�2M�N�	�	��*�*�#�#��*-�.�.�*,�$�.�C��3�x�1�}��}�
�)�R��B��,@�@�A����|�|�	����J�S�#��c�,�,�,����		�s�,A/�/B/�#B*�*B/c��|jjdt|�dt|j��d��td|t|fz�y)zo
        Add the corresponding container object for the given update
        :param op: Integer update
        zdn: CN=r�z
objectClass: container
zApplied Forest Update %u: %sN)r��add_ldifr�r�r�r��r�r�s  r��
update_addzForestUpdate.update_add^sH��
	
�
�
����"�~�s�4�6�6�7�9�	:�	�,��J�r�N�/C�C�Dr�c�j�|j|�ryt|}||jvr|j|}n�|j�|jvr|j|j�}nJ|j	�|jvr|j|j	�}ntd||fz��t
j|t|j�t|j�t|j�d��}|jrtd|z�t|�	|jj|�|j(r|j+|�yy#t j"$r.}|j$\}}|t j&k7r|�Yd}~�[d}~wwxYw)NTz#OPERATION %d: ldif for %s not found)�	CONFIG_DN�FOREST_ROOT_DOMAIN�	SCHEMA_DNz!UPDATE (LDIF) ------ OPERATION %d)r�r�r��lower�upperr��samba�substitute_varr�r�r�r�r�r�r�r�r�r�r��ERR_ATTRIBUTE_OR_VALUE_EXISTSr�r�)r�r��guid�ldif�sub_ldifr�r�r�s        r�r�zForestUpdate.operation_ldifhss�����b�!���"�~���4�#�#�#��#�#�D�)�D�
�Z�Z�\�T�-�-�
-��#�#�D�J�J�L�1�D�
�Z�Z�\�T�-�-�
-��#�#�D�J�J�L�1�D�'�(M�)+�T�
�)3�4�
4��'�'��/2�4�>�>�/B�/2�4�>�>�/B�/2�4�>�>�/B�/D�E���<�<��5��:�;��(�O�	��J�J�"�"�8�,��$�$��O�O�B��%��
�|�|�	����J�S�#��c�7�7�7�����		�s�7E1�1F2�$F-�-F2c�8�|jstd|z��y)z�
        Raises an exception if not set to fix.
        :param op: Integer operation
        :raise ForestUpdateException:
        z3Missing operation %d. Fix is currently set to FalseN)r�r�r�s  r��raise_if_not_fixzForestUpdate.raise_if_not_fix�s"���x�x�'�(]�`b�(b�c�c�r�c�4�|j|�ry|j|�d}tj|jdt|j�z�}|jj|d|g��|jr|j|�yy)N�Y(OA;CIIO;WP;ea1b7b93-5e48-46d5-bc6c-4df4fda78a35;bf967a86-0de6-11d0-a285-00aa003049e2;PS)�CN=Sam-Domain,%s�defaultSecurityDescriptor��	sddl_attr�add_aces�r�r�r��Dnr�r�r�r�update_aces_in_daclr�r��r�r��acer�s    r��operation_88zForestUpdate.operation_88�������b�!�����b�!�i���F�F�4�:�:�'9�C����<O�'O�P�	��
�
�)�)�)�4O�47�5�	*�	:��$�$��O�O�B��%r�c�4�|j|�ry|j|�d}tj|jdt|j�z�}|jj|d|g��|jr|j|�yy)Nr��CN=Domain-DNS,%sr�r�rrs    r��operation_89zForestUpdate.operation_89�rr�c�d�|jr$|j|�s|j|�yyy�N�r�r�r�r�s  r��operation_90zForestUpdate.operation_90��-���$�$�T�-?�-?��-C��O�O�B��.D�$r�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��
operation_127zForestUpdate.operation_127�rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��
operation_128zForestUpdate.operation_128�rr�c�4�|j|�ry|j|�d}tj|jdt|j�z�}|jj|d|g��|jr|j|�yy)N�7(OA;CIOI;RPWP;3f78c3e5-f79a-46bd-a0b8-9d18116ddc79;;PS)r�r�r�rrs    r��
operation_129zForestUpdate.operation_129�������b�!�����b�!�G���F�F�4�:�:�'9�C����<O�'O�P�	��
�
�)�)�)�4O�47�5�	*�	:��$�$��O�O�B��%r�c�4�|j|�ry|j|�d}tj|jdt|j�z�}|jj|d|g��|jr|j|�yy)Nrr
r�r�rrs    r��
operation_130zForestUpdate.operation_130�rr�c���|j|�ry|j|�|jjd|jzddg��|j
r|j
|�yy)Nz�dn: CN=ad://ext/AuthenticationSilo,CN=Claim Types,CN=Claims Configuration,CN=Services,%s
changetype: modify
replace: msDS-ClaimIsValueSpaceRestricted
msDS-ClaimIsValueSpaceRestricted: FALSE
zrelax:0zprovision:0)�controls)r�r�r�r�r�r�r�r�s  r��
operation_135zForestUpdate.operation_135�sr�����b�!�����b�!��
�
��� ��n�n�	 �
*3�M�(B�	�	D��$�$��O�O�B��%r�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_11zForestUpdate.operation_11rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_54zForestUpdate.operation_54rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_79zForestUpdate.operation_79rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_80zForestUpdate.operation_80rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_81zForestUpdate.operation_81rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_82zForestUpdate.operation_82rr�c�d�|jr$|j|�s|j|�yyyr
rr�s  r��operation_83zForestUpdate.operation_83rr�)FFT)NF)rr)r�r�r��__doc__r�r�r�r�r�r�r�r�rrrrrrrrrr!r#r%r'r)r+r�r�r�r�r��s���<�16�&*�(4�V=A�7<�"6�H7�,�6�(E�# �Jd� �, �" �
 �
 �
 �" �"
 �& � � � � � � r�r�)r�r�r�	samba.ndrrr�samba.dcerpcr�samba.dcerpc.securityr�samba.provision.commonr�
samba.dsdbr	r
rrr
r�r�r�r�r�r��	Exceptionr��objectr�r�r�r��<module>r4s��&���*�!�.�-����
�
�
�I��.�I��.�I��.�	I�
�.�I��.�
I��.�I��.�I��.�I��.�I��.�I��.�I��.�I��.�I��.�I� �.�!I�"�.�#I�$�.�%I�&�.�'I�(�.�)I�*�.�+I�,�.�-I�.�.�/I�0�.�1I�2�.�3I�4�.�5I�6�.�7I�8�.�9I�:�.�;I�<�.�=I�>�.�?I�@�.�AI�B�.�CI�D�.�EI�F�.�GI�H�.�II�J�.�KI�L�.�MI�N�.�OI�P�.�QI�R�.�SI�T�.�UI�V�.�WI�X�.�YI�Z�.�[I�\�.�]I�^�.�_I�`�.�aI�b�.�cI�d�.�eI�f�.�gI�h�.�iI�j�.�kI�l�.�mI�n�.�oI�p�.�qI�r�.�sI�t�.�uI�v�.�wI�x�.�yI�z�.�{I�|�.�}I�~�.�I�@�.�AI�B�.�CI�D�.�EI�F�.�GI�H�.�II�J�.�KI�N�.�OI�P�.�QI�R�.�SI�T�.�UI�V�.�WI�Z�.�[I�\�.�]I�^�.�_I�`�.�aI�b�.�cI�d�.�eI�f�.�gI�h�.�iI�j�.�kI�l�.�mI�n�.�oI�p�.�qI�r�.�sI�t�.�uI�v�.�wI�x�.�yI�z�	/�{I�|�	/�}I�~�	/�I�@�	/�AI�B�	/�CI�D�	/�EI�F�	/�GI�H�	/�II�J�	/�KI�L�	/�MI�N�	/�OI�P�	/�QI�R�	/�SI�T�	/�UI�V�	/�WI�X�	/�YI�Z�	/�[I�\�	/�]I�^�	/�_I�`�	/�aI�b�	/�cI�d�	/�eI�f�	/�gI�h�	/�iI�j�	/�kI�l�	/�mI�n�	/�oI�p�	/�qI�r�	/�sI�t�	/�uI�x
0�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�QI�
�X�R����S����S�"���Q����R����R����%��	�I�	�Y �6�Y r�

Zerion Mini Shell 1.0