�
N�g�/ � �> � d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm
Z
dd
lmZ ddlm
Z
ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ej. e� Zd7dededefd�Zdeej: de ej: fd�Zd8dee de e dee fd�Z d8de e
j@ de e dee fd�Z!dee dee fd�Z"dee dee fd�Z# d8dee de e de
eee f fd �Z$d9d!edee fd"�Z%dee ddfd#�Z&d$ee ddfd%�Z'd&eddfd'�Z(d(ed)e)d*ed+eddf
d,�Z*dee defd-�Z+ d8d.ed/e
eef f d0eegef d1ed2e e dede
eef fd3�Z,d0eegef d4edede
eef fd5�Z-d0eegef d4edede
eef fd6�Z.y):z+Contains UI methods for LE user operations.� N)�indent)�Any)�Callable)�Iterable)�List)�Optional)�Tuple)�errors)�
interfaces)�util)�account)�os�invalid�kwargs�returnc �� � d}| rd}d} t j ||z d�� \ }}|t j k7 rt j d� �|dk( ryt j |� r|S d}�e)z�Prompt for valid email address.
:param bool invalid: True if an invalid address was provided by the user
:returns: e-mail address
:rtype: str
:raises errors.Error: if the user cancels
� z7The server reported a problem with your email address. z*Enter email address or hit Enter to skip.
)�defaultzError getting email address.z,There is a problem with your email address. )�display_util�
input_text�OKr
�Errorr �
safe_email)r r �invalid_prefix�msg�code�emails ��/build/snapcraft-certbot-2c33630aaf29c47357e5a1683f659d3d/parts/certbot/install/lib/python3.12/site-packages/certbot/display/ops.py� get_emailr su � � �N��R��
7�C�
�"�-�-�n�s�.B�B�O���e��<�?�?�"��,�,�=�>�>��B�;���?�?�5�!��L�G�� � �accountsc � � | D �cg c] }|j �� }}t j d|d�� \ }}|t j k( r| | S yc c}w )zChoose an account.
:param list accounts: Containing at least one
:class:`~certbot._internal.account.Account`
zPlease choose an accountT��force_interactiveN)�slugr �menur )r! �acc�labelsr �indexs r �choose_accountr* 3 sS � � #+�
+�3�c�h�h�
+�F�
+��#�#�$>��Z^�_�K�D�%��|���������� ,s �A�values�questionc �r � t j |r|nd| d�� \ }}|t j k( r|r|S g S )a Display screen to let user pick one or multiple values from the provided
list.
:param list values: Values to select from
:param str question: Question to ask to user while choosing values
:returns: List of selected values
:rtype: list
r T)�tagsr$ )r � checklistr )r+ r, r �itemss r �
choose_valuesr1 C s< |