__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

���g���L�SrSrSrSrSrSrSSKrSSKrSSK	rSSK
r
\
R"SS	5 SS
KJ
r
 SSKJr SS
KJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SSKJ r  SSK!J"r" SSK#J$r$ SSK%J&r& SSK'J(r( "SS 5r)\)"5/r*S!r+S"r,S#r-S$r.S%r/S&r0\+\Rb\,\Rd\-\Rf\.\Rh\/\Rh\0\Rh0r5"S'S(\Rl5r7g))�4Produces speech presentation for accessible objects.z$Id:$z$Revision:$z$Date:$z-Copyright (c) 2005-2009 Sun Microsystems Inc.�LGPL�N�Atspiz2.0)r�)�acss)�debug)�
focus_manager)�	generator)�input_event_manager)�mathsymbols)�messages)�object_properties)�settings)�settings_manager)�speech)�speech_and_verbosity_manager)�
AXDocument)�AXHypertext)�AXObject)�AXTable)�AXText)�AXUtilities)�AXValuec�$�\rSrSrSrSrSrSrg)�Pause�CzFA dummy class to indicate we want to insert a pause into an
utterance.c��g�N���selfs �7/usr/lib/python3/dist-packages/orca/speech_generator.py�__init__�Pause.__init__Fs���c��g)N�PAUSErr s r"�__str__�
Pause.__str__Is��r%rN)�__name__�
__module__�__qualname__�__firstlineno__�__doc__r#r(�__static_attributes__rr%r"rrCs���
�r%r�default�	uppercase�	hyperlink�system�state�valuec�X
^�\rSrSrSrU4Sjr\S5rSrSr	U4Sjr
SrS	rS
r
SrGSSjrS
r\U4Sj5r\U4Sj5r\U4Sj5r\U4Sj5r\U4Sj5rSrSr\S5r\S5r\S5r\S5r\S5r\S5r\S5r\U4Sj5r\S5r \S5r!\S5r"\S 5r#\S!5r$S"r%\S#5r&S$r'\S%5r(\S&5r)S'r*S(r+\S)5r,\S*5r-\S+5r.\S,5r/\S-5r0\S.5r1\S/5r2\S05r3\S15r4\S25r5\S35r6\S45r7\S55r8\S65r9\S75r:\S85r;\S95r<\S:5r=\S;5r>\S<5r?\S=5r@\S>5rA\S?5rB\S@5rC\SA5rD\SB5rE\SC5rF\SD5rG\SE5rH\SF5rI\SG5rJ\SH5rK\SI5rL\SJ5rM\SK5rN\SL5rO\U4SMj5rP\U4SNj5rQ\U4SOj5rR\U4SPj5rS\SQ5rT\U4SRj5rU\U4SSj5rV\U4STj5rW\U4SUj5rX\U4SVj5rY\U4SWj5rZ\U4SXj5r[\SY5r\\U4SZj5r]\U4S[j5r^\S\5r_\S]5r`U4S^jraU4S_jrb\U4S`j5rc\U4Saj5rd\U4Sbj5re\Sc5rf\U4Sdj5rg\Se5rh\Sf5ri\Sg5rj\U4Shj5rk\Si5rl\U4Sjj5rm\Sk5rn\Sl5ro\U4Smj5rp\Sn5rqSorrSprsSqrtSrruSsrvStrwSurxSvrySwrzSxr{Syr|Szr}S{r~S|rS}r�S~r�Sr�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�r�S�GrS�GrS�GrGSGrU=Gr$(�SpeechGenerator�^rc�&>�[TU]US5 g)Nr)�superr#)r!�script�	__class__s  �r"r#�SpeechGenerator.__init__as���
�����*r%c�^�U4SjnU$)zDecorator for logging.c�>�T"U0UD6nSTRS3U/n[R"[RUS5 U$)N�SPEECH GENERATOR: �:T)r*r�print_tokens�
LEVEL_INFO)�args�kwargs�result�tokens�funcs    �r"�wrapper�5SpeechGenerator.log_generator_output.<locals>.wrapperhsF����4�*�6�*�F�*�4�=�=�/��;�V�D�F����u�/�/���>��Mr%r)rHrIs` r"�log_generator_output�$SpeechGenerator.log_generator_outputds���	�
�r%c���UR"U40UD6nU(aH[[SU55(d-SUS/n[R"[R
US5 /nU$)z&Generates speech presentation for obj.c�,�[U[5(+$r)�
isinstancer)�xs r"�<lambda>�1SpeechGenerator.generate_speech.<locals>.<lambda>ss��
�1�e�0D�,Dr%zSPEECH GENERATOR: Results forzare pauses onlyT)�generate�list�filterrrBrC)r!�objrD�rvrGs     r"�generate_speech�SpeechGenerator.generate_speechos[���]�]�3�
'�$�
'��
�d�6�"D�b�I�J�J�5�s�<M�N�F����u�/�/���>��B��	r%c�B�UR"U40UD6nU(aUS$g)z.Returns the generated name of obj as a string.r�)�_generate_accessible_name�r!rVrD�	generateds    r"�get_name�SpeechGenerator.get_namezs)���2�2�3�?�$�?�	���Q�<��r%c�z>�[R"U5(d*URRR	U5(a[
R$[R"XRS55(a+[R"U5(a[
R$[TU]0"U40UD6$)N�role)
r�is_editable_combo_box�_script�	utilities�isEditableDescendantOfComboBoxr�ROLE_EDITABLE_COMBO_BOX�is_link�get�
is_visited�ROLE_VISITED_LINKr:�get_localized_role_name�r!rVrDr<s   �r"rl�'SpeechGenerator.get_localized_role_name�s�����,�,�S�1�1��l�l�$�$�C�C�C�H�H�$�<�<�<����s�H�H�V�$4�5�5�+�:P�:P�QT�:U�:U�$�6�6�6��w�.�s�;�d�;�;r%c�B�UR"U40UD6nU(aUS$g)z2Returns the generated rolename of obj as a string.rr[)�_generate_accessible_roler]s    r"�
get_role_name�SpeechGenerator.get_role_name�s)���2�2�3�?�$�?�	���Q�<��r%c���/nURRRU5upEU(a:URU5nU(dUR	U5nURU5 U(a!URURU55 O[[R"XRRR5=n(a URURU55 [[R"U55nUS:�aP[R"U5/n	U	RUR"[ 4SU0UD65 URU	5 U$)zRReturns an array of strings the represents details about the window title for obj.rrV)rdre�frameAndDialog�#_generate_accessible_label_and_namerp�appendr�
find_ancestor�isSpreadSheetTable�lenr� get_unfocused_alerts_and_dialogsr
�dialogCountSpeech�extend�voice�DEFAULT)
r!rVrDrF�frame�dialog�frame_result�spreadsheet�alert_and_dialog_count�dialogss
          r"�generate_window_title�%SpeechGenerator.generate_window_title�s�������.�.�=�=�c�B�
����C�C�E�J�L��#�=�=�e�D���M�M�,�'���M�M�$�B�B�6�J�K�$�2�2�3���8N�8N�8a�8a�b�
b�[�
b��M�M�$�B�B�;�O�P�!$�[�%Q�%Q�RU�%V�!W��!�A�%��1�1�2H�I�J�G��N�N�4�:�:�g�?�3�?�$�?�@��M�M�'�"��
r%c��[$r)r'�r!�_obj�_argss   r"�_generate_result_separator�*SpeechGenerator._generate_result_separator�s���r%c��[R"5RS5(aURSS5(a/$[R"5RS5[R
:Xa/$[$)N�enablePauseBreaks�eliminatePausesF�verbalizePunctuationStyle)r�get_manager�get_settingrir�PUNCTUATION_STYLE_ALLr')r!r�rDs   r"�_generate_pause�SpeechGenerator._generate_pause�sd���+�+�-�9�9�:M�N�N��h�h�(�%�0�0��I��'�'�)�5�5�6Q�R��)�)�*��I��r%c���[RU5=(d [R[5n[R"5RS5n[R"UR[R[5055nURS5nURSS5nSUSUSUS3n[R"[RUS	5 S
n	U(a-U	(a&[R"5n
U
RXg5 US[4;GaURSS5nURS
5n[R"U5(a;UR!UR[R["5055 U/$[%U[&5(apUR)5(a[UR+5R-5(a8UR!UR[R[.5055 U/$URU5n
U
(a(U
RSS	5(aUR!U
5 U/$)z$Returns an array containing a voice.�voices�language�dialectr[r@z  voice requested with language='z', dialect='�'TFN�stringrV�established)�	voiceTyperir~rr�r�r�ACSSr�
print_messagerCr�get_speech_server�shouldChangeVoiceForLanguagerrh�update�	HYPERLINKrO�str�isupper�strip�isalpha�	UPPERCASE)r!�keyrD�	voicenamer�r}r�r��msg�check_voices_for_language�serverr�rV�overrides              r"r}�SpeechGenerator.voice�s����M�M�#�&�@�)�-�-��*@�	�!�-�-�/�;�;�H�E���	�	�&�*�*�Y�]�]�7�%;�R�@�A���8�8�J�'���(�(�9�b�)�� ���&�!�
�,�w�i�q�
:�	�	���E�,�,�c�4�8�
%*�!��1��-�-�/�F��/�/��B��4��/�!��X�X�h��+�F��(�(�5�/�C��"�"�3�'�'����V�Z�Z�	�
�
�i�(@�"�E�F��w���F�C�(�(�V�^�^�-=�-=�&�,�,�.�BX�BX�BZ�BZ����V�Z�Z�	�
�
�i�(@�"�E�F��w��	�z�z�)�,�H��H�L�L���=�=����X�&��w�r%c���SnUHan[U[5(a
USU3-
nM"[U[5(dM9U(dMBUSR5(dM\US-
nMc UR	5$)z Converts utterances to a string.r[� ����.)rOr�r�isalnumr�)r!�
utterancesr��us    r"�utterances_to_string�$SpeechGenerator.utterances_to_string�sj�����A��!�S�!�!��A�a�S�'�!���A�u�%�%�&�&�V�B�Z�5G�5G�5I�5I��#�
��	��|�|�~�r%c��>�[R"5nURS5(aURS5(a/$URS5(aURS5(d/$URS5nXA:Xa/$[R
"U5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$)N�speakDescription�onlySpeakDisplayedText�
inMouseReview�presentToolTips�priorObjrV)rr�r�rir�is_tool_tipr:� _generate_accessible_descriptionr|r}�SYSTEM)r!rVrD�mgr�	prior_objrFr<s      �r"r��0SpeechGenerator._generate_accessible_description�s�����*�*�,�����1�2�2�c�o�o�F^�6_�6_��I��8�8�O�$�$�S�_�_�=N�-O�-O��I��H�H�Z�(�	����I��"�"�9�-�-��I���9�#�F��F����M�M�$�*�*�V�=��=��=�>��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$�Nr�rV)rr�r�r:�&_generate_accessible_image_descriptionr|r}r��r!rVrDrFr<s    �r"r��6SpeechGenerator._generate_accessible_image_descriptions^����'�'�)�5�5�6N�O�O��I���?��L�t�L����M�M�$�*�*�V�=��=��=�>��
r%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$�NrV)r:�_generate_accessible_labelr|r}r~r�s    �r"r��*SpeechGenerator._generate_accessible_labels>�����3�C�@�4�@����M�M�$�*�*�W�>�#�>��>�?��
r%c�>�[R"XRS55nU(a+[R"5RS5(a/$[TU]"U40UD6nU(aYU(a*URUR"[4SU0UD65 U$URUR"[4SU0UD65 U$)Nrbr�rV)r�is_layered_panerirr�r�r:r\r|r}r�r~)r!rVrDr�rFr<s     �r"r\�)SpeechGenerator._generate_accessible_names����%�5�5�c�8�8�F�;K�L���/�;�;�=�I�I�Jb�c�c��I���2�3�?�$�?�����
�
�d�j�j��A�S�A�D�A�B��
��
�
�d�j�j��B�c�B�T�B�C��
r%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)r:�%_generate_accessible_placeholder_textr|r}r~r�s    �r"r��5SpeechGenerator._generate_accessible_placeholder_text"s>�����>�s�K�d�K����M�M�$�*�*�W�>�#�>��>�?��
r%c��^^^^�URS[R"T55mURSS5mURSS5mUUUU4Sjn[R"TU5$)Nrb�indexr�totalrc� >�[R"U5(d[R"U5(dg[R"U5T:XagTTS-
:H=(d- [R
"U5[R
"T5:H$)NFr)r�
is_headingrhr�get_roler_)rPr�rVrbr�s ����r"�use_ancestor_role�ISpeechGenerator._get_ancestor_with_usable_role.<locals>.use_ancestor_role.sm����*�*�1�-�-��1D�1D�Q�1G�1G��� � ��#�t�+���E�A�I�%�W��):�):�1�)=��AR�AR�SV�AW�)W�Wr%)rirr�rw)r!rVrDr�r�rbr�s `  @@@r"�_get_ancestor_with_usable_role�.SpeechGenerator._get_ancestor_with_usable_role)s`����x�x��� 1� 1�#� 6�7������!�$������!�$��	X�	X��%�%�c�+<�=�=r%c
�$
�[R"5nURS5(ag[R"5R	5upEU[R
:XagUR
S[R"U55nUR5upxXh;ag[RR[RR[RR[RR[RR [RR"[RR$[RR&[RR([RR*[RR,[RR.[RR0/
n	URS5[2R4:XaCU	R7[RR8[RR:/5 UR
S5(aU	R7S/5 UR
S5S	:waCU	R7[RR<[RR>/5 UR
S
5cUR
S5b�U	R7[RR@[RRB[RRD[RRF[RRH[RRJ/5 UR
SS
5S
:�a*U	R7[RRL/5 Xi;ag[NRP"[RR"U55(agURTRVRYU5(ag[NRZ"U5(ag[NR\"U5(ag[NR^"X5(aP[NR`"U5(agUR
S5n
U
(aRb"U
5(dg[NRd"U5(aXR
S5:Xagg)Nr�FTrb�speechVerbosityLevelr��ROLE_CONTENT_SUGGESTION�
formatType�
basicWhereAmI�startOffset�	endOffsetr�r�
ancestorOfr�)3rr�r�r	�&get_active_mode_and_object_of_interest�OBJECT_NAVIGATORrirr��'_get_enabled_and_disabled_context_rolesr�Role�ARTICLE�EXTENDED�FILLER�FOOTER�FORM�LABEL�	MENU_ITEM�	PARAGRAPH�REDUNDANT_OBJECT�SECTION�STATIC�
TABLE_CELL�UNKNOWNr�VERBOSITY_LEVEL_BRIEFr|�CANVAS�ICON�LIST�	LIST_ITEM�ALERT�DOCUMENT_FRAME�DOCUMENT_PRESENTATION�DOCUMENT_SPREADSHEET�
DOCUMENT_TEXT�DOCUMENT_WEB�
ROW_HEADERr�is_combo_box�
get_parentrdre�isAnchor�is_desktop_frame�is_docked_frame�is_panel�is_selected�	is_widget�is_editable)r!rVrD�settings_mgr�mode�_accrb�_enabled�disabled�do_not_speak�childs           r"�_should_speak_role�"SpeechGenerator._should_speak_role7sq��'�3�3�5���#�#�$<�=�=��"�.�.�0�W�W�Y�
���=�1�1�1���x�x��� 1� 1�#� 6�7��!�I�I�K�������
�
�*�*��
�
�+�+��
�
�)�)��
�
�)�)��
�
����
�
�(�(��
�
�,�,��
�
�,�,��
�
�3�3��
�
�*�*��
�
�)�)��
�
�-�-��
�
�*�*�,���#�#�$:�;�x�?]�?]�]�����
�
�!�!��
�
���!�
�
�8�8�H������)�!�
��8�8�L�!�_�4�����
�
����
�
�$�$�!�
��8�8�M�"�.�$�(�(�;�2G�2S�����
�
� � ��
�
�)�)��
�
�0�0��
�
�/�/��
�
�(�(��
�
�'�'�
!�
��8�8�G�Q��!�#�����
�
�%�%�!�
�����#�#�H�$7�$7��$<�=�=���<�<�!�!�*�*�3�/�/���'�'��,�,���&�&�s�+�+������*�*��&�&�s�+�+���H�H�\�*�E��k�3�3�E�:�:���"�"�3�'�'�C�8�8�J�3G�,G��r%c��UR"U40UD6(d/$[R"U5n[R"XRS55(a,[R"U5(aURU5$[R"U5(aSURU[RRS9/nURUR"[4SU0UD65 U$[R "U5(a~UR"R$R'U5nU(aR[(R*UR"U40UD6US.-/nURUR"[4SU0UD65 U$UR"U40UD6/nURUR"[4SU0UD65 U$)Nrb�rbrV)rb�level)rrrr�is_menurirrp�!is_single_line_autocomplete_entryrlrr��AUTOCOMPLETEr|r}r�r�rdre�headingLevelr�ROLE_HEADING_LEVEL_SPEECH)r!rVrD�parentrFrs      r"rp�)SpeechGenerator._generate_accessible_role�s~���&�&�s�3�d�3��I��$�$�S�)�����s�H�H�V�$4�5�5�+�:R�:R�SY�:Z�:Z��1�1�&�9�9��8�8��=�=��2�2�3�U�Z�Z�=T�=T�2�U�V�F��M�M�$�*�*�V�=��=��=�>��M��!�!�#�&�&��L�L�*�*�7�7��<�E��+�E�E� �8�8��E��E�"�I$�$�%���
�
�d�j�j��A�S�A�D�A�B��
��.�.�s�;�d�;�<���
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"5RS5(d(URSS5R	S5(d/$[
R"U5nU(d/$X0R"[4SU0UD6/$)z&Provides the tutorial message for obj.�enableTutorialMessagesr�r[�WhereAmIrV)	rr�r�ri�endswithr�
get_help_textr}r�)r!rVrD�texts    r"�_generate_tutorial�"SpeechGenerator._generate_tutorial�st�� �+�+�-�9�9�:R�S�S��8�8�L�"�-�6�6�z�B�B��I��%�%�c�*����I��j�j��9�S�9�D�9�:�:r%c��/$rrr�s   r"�_generate_has_click_action�*SpeechGenerator._generate_has_click_action�����	r%c��/$rrr�s   r"�_generate_has_long_description�.SpeechGenerator._generate_has_long_description�r*r%c��/$rrr�s   r"�_generate_has_details�%SpeechGenerator._generate_has_details�r*r%c��/$rrr�s   r"�_generate_details_for�%SpeechGenerator._generate_details_for�r*r%c��/$rrr�s   r"�_generate_all_details�%SpeechGenerator._generate_all_details�r*r%c�^>�[R"U5(d/$[TU]"U40UD6nU(d/$UR	UR
"[4SU0UD65 URSS5n[R"U5(dU$[R"U5nXE;aU$/$)NrVr�)	r�is_radio_buttonr:�_generate_radio_button_groupr|r}r~ri�get_is_member_of)r!rVrDrFr��membersr<s      �r"� _generate_new_radio_button_group�0SpeechGenerator._generate_new_radio_button_group�s�����*�*�3�/�/��I���5�c�B�T�B����I��
�
�d�j�j��:�c�:�T�:�;��H�H�Z��.�	��*�*�9�5�5��M��.�.�s�3���#��M��	r%c���[URRRU55nUS;a/$[R
"U5/nUR
UR"[4SU0UD65 U$)N)r�rrV)	ryrdre�
valuesForTermr
�valueCountForTermr|r}r�)r!rVrD�countrFs     r"�_generate_term_value_count�*SpeechGenerator._generate_term_value_count�se���D�L�L�*�*�8�8��=�>���G���I��,�,�U�3�4���
�
�d�j�j��9�S�9�D�9�:��
r%c�p�[R"5RS5(d6[R"5RS5[R:Xa/$UR
RRU5(axUR
RRU5nU(aJ[R"[U55/nURUR"[4SU0UD65 U$/$URS5n[ R""X5(d[ R$"X5(a`[ R&"U5nU(aA[R("U5/nURUR"[4SU0UD65 U$/$[ R*"X5(ap[-[.R0"U[ R255nU(d;[R4/nURUR"[4SU0UD65 U$/$)Nr�r�rVrb)rr�r�rr�rdre�isTreeDescendant�
childNodesr
�	itemCountryr|r}r�rir�is_list�is_list_box�get_set_size�
listItemCountr�rTr�
iter_children�is_icon_or_canvas�
ZERO_ITEMS)r!rVrD�child_nodesrFrb�set_size�childrens        r"�_generate_number_of_children�,SpeechGenerator._generate_number_of_children�s����'�'�)�5�5�6N�O�O��*�*�,�8�8�9O�P��0�0�1��I��<�<�!�!�2�2�3�7�7��,�,�0�0�;�;�C�@�K��"�,�,�S��-=�>�?���
�
�d�j�j��A�S�A�D�A�B��
��I��x�x�������s�)�)�[�-D�-D�S�-O�-O�"�/�/��4�H��"�0�0��:�;���
�
�d�j�j��A�S�A�D�A�B��
��I��&�&�s�1�1��H�2�2�3��8U�8U�V�W�H��"�-�-�.���
�
�d�j�j��A�S�A�D�A�B��
��	r%c���[R"5RS5(a/$Un[R"U5(d3[R
"U5n[R"U5(d/$/n[R"U5n[URRRU55nUR[R"Xe55 URUR"[ 4SU0UD65 UR["R$[R&"U5S-US.-5 URUR"[ 4SU0UD65 U$)Nr�rVr�r�r�)rr�r�r�supports_selectionr�get_child_countryrdre�selectedChildrenrvr
�selectedItemsCountr|r}r�r�ICON_INDEX_SPEECH�get_index_in_parent)r!rVrD�	containerrF�child_count�selected_counts       r"�_generate_selected_item_count�-SpeechGenerator._generate_selected_item_count
s#���'�'�)�5�5�6N�O�O��I��	��*�*�9�5�5� �+�+�C�0�I��.�.�y�9�9��	����.�.�y�9���T�\�\�3�3�D�D�Y�O�P���
�
�h�1�1�.�N�O��
�
�d�j�j��9�S�9�D�9�:��
�
�'�9�9�#+�#?�#?��#D�q�#H�#.�0�0�	1�	�
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"5RS5(a/$Un[R"U5(d3[R
"U5n[R"U5(d/$URRRU5n[[URU55$)Nr�)rr�r�rrVrrdrerXrT�mapru)r!rVr�r\�selected_itemss     r"�_generate_selected_items�(SpeechGenerator._generate_selected_items#s����'�'�)�5�5�6N�O�O��I��	��*�*�9�5�5� �+�+�C�0�I��.�.�y�9�9��	����/�/�@�@��K���C��@�@�.�Q�R�Rr%c�D�[R"5RS5(a/$/n[[R
"U55nUS:�aMUR
[R"U55 URUR"[4SU0UD65 U$�Nr�rrV)rr�r�ryrrzrvr
r{r|r}r�)r!rVrDrFr�s     r"� _generate_unfocused_dialog_count�0SpeechGenerator._generate_unfocused_dialog_count1s����'�'�)�5�5�6N�O�O��I���!$�[�%Q�%Q�RU�%V�!W��!�A�%��M�M�(�4�4�5K�L�M��M�M�$�*�*�V�=��=��=�>��
r%c�0�[RR[RR[RR[RR
[RRSS[RRS[RR[RR[RR[RR[RRS[RR[RR/n//p2URR!5(Ga�["R$"5R'S5(a)UR)[RR5 ["R$"5R'S5(a+UR+[RRS/5 ["R$"5R'S5(acUR)[RR5 UR)[RR5 UR)S5 ["R$"5R'S5(a�UR+[RR[RR[RR[RR[RR[RR
[RRS/5 ["R$"5R'S	5(a)UR)[RR5 ["R$"5R'S
5(a)UR)[RR5 GO�["R$"5R'S5(a)UR)[RR5 ["R$"5R'S5(a,UR+[RRSS/5 ["R$"5R'S
5(acUR)[RR5 UR)[RR5 UR)S5 ["R$"5R'S5(a�UR+[RR[RR[RR[RR[RR[RR
[RRS/5 ["R$"5R'S5(a)UR)[RR5 ["R$"5R'S5(a)UR)[RR5 [-[/U5R1U55nX#4$)N�ROLE_DPUB_LANDMARK�ROLE_DPUB_SECTION�	ROLE_FEED�ROLE_REGION�sayAllContextBlockquote�sayAllContextLandmark�sayAllContextList�sayAllContextPanel�sayAllContextNonLandmarkForm�sayAllContextTable�speakContextBlockquote�speakContextLandmark�speakContextList�speakContextPanel�speakContextNonLandmarkForm�speakContextTable)rr��BLOCK_QUOTE�CONTENT_DELETION�CONTENT_INSERTION�MARK�
SUGGESTION�DESCRIPTION_LISTr��GROUPING�LANDMARKr��PANEL�TABLE�TOOL_TIPrd�inSayAllrr�r�rvr|rT�set�symmetric_difference)r!�	all_roles�enabledrs    r"r��7SpeechGenerator._get_enabled_and_disabled_context_roles=s=���Z�Z�+�+��J�J�/�/��J�J�0�0��J�J�O�O��J�J�)�)�(�'��J�J�/�/���J�J�O�O��J�J�'�'��J�J�'�'��J�J�O�O��J�J�$�$�!��J�J�$�$��J�J�'�'�!)�	�$����<�<� � �"�"��+�+�-�9�9�:S�T�T����u�z�z�5�5�6��+�+�-�9�9�:Q�R�R�����
�
� 3� 3�5I�J�K��+�+�-�9�9�:M�N�N����u�z�z���/����u�z�z�:�:�;����{�+��+�+�-�9�9�:N�O�O�����
�
� 0� 0� %�
�
� 3� 3� %�
�
� ;� ;� %�
�
� <� <� %�
�
� 3� 3� %�
�
��� %�
�
� 5� 5� 3� 5�6� �+�+�-�9�9�:X�Y�Y����u�z�z���/��+�+�-�9�9�:N�O�O����u�z�z�/�/�0���+�+�-�9�9�:R�S�S����u�z�z�5�5�6��+�+�-�9�9�:P�Q�Q�����
�
� 3� 3�5I�=�Y�Z��+�+�-�9�9�:L�M�M����u�z�z���/����u�z�z�:�:�;����{�+��+�+�-�9�9�:M�N�N�����
�
� 0� 0� %�
�
� 3� 3� %�
�
� ;� ;� %�
�
� <� <� %�
�
� 3� 3� %�
�
��� %�
�
� 5� 5� 3� 5�6� �+�+�-�9�9�:W�X�X����u�z�z���/��+�+�-�9�9�:M�N�N����u�z�z�/�/�0���I��;�;�G�D�E��� � r%c���URS5(d/$URS[R"U55nUR5upE[	[
R"U55nX4;d	U(d/$URSS5n/nU(a!UR[R5 GO�U[RR:XaNUS:�a'UR[R"U55 GOAUR[R5 GO U[RR[RR 4;axUR"R$R'U5(aNUS:�a'UR[R("U55 GO�UR[R*5 GOpUS:Xa!UR[R,5 GOIU[RR.:Xa�[
R0"U5(a!UR[R25 G
O�UR"R$R5U5(a!UR[R65 G
O�S/nG
O�U[RR8:Xa!UR[R:5 G
O`U[RR<:XaKUR"R$R?U5(a!UR[R@5 G	O�US:XGat[
RB"U5(a!UR[RD5 G	O�[
RF"U5(a!UR[RH5 G	Ox[
RJ"U5(a!UR[RL5 G	O<[
RN"U5(a!UR[RP5 G	O[
RR"U5(a!UR[RT5 GO�[
RV"U5(a!UR[RX5 GO�[
RZ"U5(a!UR[R\5 GOL[
R^"U5(a!UR[R`5 GO[
Rb"U5(a!UR[Rd5 GO�[
Rf"U5(a!UR[Rh5 GO�[
Rj"U5(a!UR[Rl5 GO\[
Rn"U5(a!UR[Rp5 GO [
Rr"U5(a!UR[Rt5 GO�[
Rv"U5(a!UR[Rx5 GO�[
Rz"U5(a!UR[R|5 GOl[
R~"U5(a!UR[R�5 GO0[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GO�[
R�"U5(aUR[R�5 GO|US:XGa�[
R�"U5(a!UR[R�5 GO9[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GOI[
R�"U5(a!UR[R�5 GO
[
R�"U5(a!UR[R�5 GO�[
R�"U5(aUR[R�5 GO�[
R�"U5(Ga�[
R�"U5(a!UR[R�5 GO=[
R�"U5(a!UR[R�5 GO[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GOM[
R�"U5(a!UR[R�5 GO[
R�"U5(a!UR[R�5 GO�[
R�"U5(a!UR[R�5 GO�S/nGO�U[RR�:Xa!UR[R�5 GOUU[RR�:Xa!UR[R�5 GOU[RR�:Xa UR[R�5 O�U[RR�:Xa UR[R�5 O�U[RR�:Xa UR[R�5 O\U[RR�:Xa;[
R�"X5(d UR[R�5 OS/nU(a(UR�UR�"[�4S	U0UD65 U$)
N�leavingrbrArrmr[rkrlrV)wrirr�r��boolr�get_is_details_forrvr
�LEAVING_DETAILSrr�r{�leavingNBlockquotes�LEAVING_BLOCKQUOTEr�r�rdre�isDocumentList�
leavingNLists�LEAVING_LIST�LEAVING_FEEDr��	is_figure�LEAVING_FIGURE�isDocumentPanel�
LEAVING_PANELr��LEAVING_GROUPINGr��isTextDocumentTable�
LEAVING_TABLE�is_dpub_acknowledgments�LEAVING_ACKNOWLEDGMENTS�is_dpub_afterword�LEAVING_AFTERWORD�is_dpub_appendix�LEAVING_APPENDIX�is_dpub_bibliography�LEAVING_BIBLIOGRAPHY�is_dpub_chapter�LEAVING_CHAPTER�is_dpub_conclusion�LEAVING_CONCLUSION�is_dpub_credits�LEAVING_CREDITS�is_dpub_endnotes�LEAVING_ENDNOTES�is_dpub_epilogue�LEAVING_EPILOGUE�is_dpub_errata�LEAVING_ERRATA�is_dpub_foreword�LEAVING_FOREWORD�is_dpub_glossary�LEAVING_GLOSSARY�
is_dpub_index�
LEAVING_INDEX�is_dpub_introduction�LEAVING_INTRODUCTION�is_dpub_pagelist�LEAVING_PAGELIST�is_dpub_part�LEAVING_PART�is_dpub_preface�LEAVING_PREFACE�is_dpub_prologue�LEAVING_PROLOGUE�is_dpub_toc�LEAVING_TOC�is_dpub_abstract�LEAVING_ABSTRACT�is_dpub_colophon�LEAVING_COLOPHON�is_dpub_credit�LEAVING_CREDIT�is_dpub_dedication�LEAVING_DEDICATION�is_dpub_epigraph�LEAVING_EPIGRAPH�is_dpub_example�LEAVING_EXAMPLE�is_dpub_pullquote�LEAVING_PULLQUOTE�is_dpub_qna�LEAVING_QNA�is_landmark�is_landmark_banner�LEAVING_LANDMARK_BANNER�is_landmark_complementary�LEAVING_LANDMARK_COMPLEMENTARY�is_landmark_contentinfo�LEAVING_LANDMARK_CONTENTINFO�is_landmark_main�LEAVING_LANDMARK_MAIN�is_landmark_navigation�LEAVING_LANDMARK_NAVIGATION�is_landmark_region�LEAVING_LANDMARK_REGION�is_landmark_search�LEAVING_LANDMARK_SEARCH�is_landmark_form�LEAVING_FORMr�r��LEAVING_TOOL_TIPr|�CONTENT_DELETION_ENDr}�CONTENT_INSERTION_ENDr~�CONTENT_MARK_ENDr�is_inline_suggestion�LEAVING_SUGGESTIONr|r}r�)	r!rVrDrbr��	_disabled�
is_detailsrArFs	         r"�_generate_leaving�!SpeechGenerator._generate_leaving�s'���x�x�	�"�"��I��x�x��� 1� 1�#� 6�7��!�I�I�K����+�8�8��=�>�
���:��I�����!�$������M�M�(�2�2�3�
�U�Z�Z�+�+�
+��q�y��
�
�h�:�:�5�A�B��
�
�h�9�9�:�
�e�j�j�o�o�u�z�z�'B�'B�C�
C����&�&�5�5�c�:�:��q�y��
�
�h�4�4�U�;�<��
�
�h�3�3�4�
�[�
 ��M�M�(�/�/�0�
�U�Z�Z�%�%�
%��$�$�S�)�)��
�
�h�5�5�6����'�'�7�7��<�<��
�
�h�4�4�5����
�U�Z�Z�(�(�
(��M�M�(�3�3�4�
�U�Z�Z�%�%�
%�$�,�,�*@�*@�*T�*T�UX�*Y�*Y��M�M�(�0�0�1�
�)�
)��2�2�3�7�7��
�
�h�>�>�?��.�.�s�3�3��
�
�h�8�8�9��-�-�c�2�2��
�
�h�7�7�8��1�1�#�6�6��
�
�h�;�;�<��,�,�S�1�1��
�
�h�6�6�7��/�/��4�4��
�
�h�9�9�:��,�,�S�1�1��
�
�h�6�6�7��-�-�c�2�2��
�
�h�7�7�8��-�-�c�2�2��
�
�h�7�7�8��+�+�C�0�0��
�
�h�5�5�6��-�-�c�2�2��
�
�h�7�7�8��-�-�c�2�2��
�
�h�7�7�8��*�*�3�/�/��
�
�h�4�4�5��1�1�#�6�6��
�
�h�;�;�<��-�-�c�2�2��
�
�h�7�7�8��)�)�#�.�.��
�
�h�3�3�4��,�,�S�1�1��
�
�h�6�6�7��-�-�c�2�2��
�
�h�7�7�8��(�(��-�-��
�
�h�2�2�3��
�(�
(��+�+�C�0�0��
�
�h�7�7�8��-�-�c�2�2��
�
�h�7�7�8��+�+�C�0�0��
�
�h�5�5�6��/�/��4�4��
�
�h�9�9�:��-�-�c�2�2��
�
�h�7�7�8��,�,�S�1�1��
�
�h�6�6�7��.�.�s�3�3��
�
�h�8�8�9��(�(��-�-��
�
�h�2�2�3��
�
$�
$�S�
)�
)��-�-�c�2�2��
�
�h�>�>�?��6�6�s�;�;��
�
�h�E�E�F��4�4�S�9�9��
�
�h�C�C�D��-�-�c�2�2��
�
�h�<�<�=��3�3�C�8�8��
�
�h�B�B�C��/�/��4�4��
�
�h�>�>�?��/�/��4�4��
�
�h�>�>�?��-�-�c�2�2��
�
�h�3�3�4����
�U�Z�Z�_�_�
$��M�M�(�/�/�0�
�U�Z�Z�(�(�
(��M�M�(�3�3�4�
�U�Z�Z�0�0�
0��M�M�(�7�7�8�
�U�Z�Z�1�1�
1��M�M�(�8�8�9�
�U�Z�Z�_�_�
$��M�M�(�3�3�4�
�U�Z�Z�*�*�
*�;�3S�3S�TW�3^�3^��M�M�(�5�5�6��T�F���M�M�$�*�*�V�=��=��=�>��
r%c
�J	^^�/nURS5nU(a*URS5(aUnURS5nOURS5nU(a[R"U5(a/$[R"U5(a/$U(a0[R
"U5[R
"U5:Xa/$[R"U5(a/$[R"U5(a/$[R"XQ5nX:Xa/$URS/5nURS/5nUR[RR5 TR5up�URU
5 URS/5nUR[RR[RR/5 URS/5nUR[RR /5 [RR"[RR$/n
SnU(axU(dqTR'U5mTU
;aZUU4Sjn[R("X5n[R("X_5nTR+U5nTR+U5nUU:gn//nn[R,"U5nU(GaTR'U5nUU;aGOUU;a+TR.R0R3U5(dO�U(aUU;aO�[R4"U5(aO}[R6"U5(aOaUU:wdU(aTSnUH#n[R8"UU5(dM!S	n O U(d"URU5 URU5 UU:XdUU;aO [R,"U5nU(aGM/n[;U5H^unnUUnUU
;aUU;aMURU5 UR=U5nURTR?US
UUUXS95 M` U(dURA5 U$)Nr�r��includeOnly�	skipRoles�
stop_at_roles�stop_after_rolesFc�,>�TRU5T:H$r)�_get_functional_role)rP�common_roler!s ��r"�pred�1SpeechGenerator._generate_ancestors.<locals>.pred8s����4�4�Q�7�;�F�Fr%T�ancestor)r�rbr�rAr�r�)!rir�is_deadrr�r�is_page_tab�get_common_ancestorrvrr��	TREE_ITEMr�r|�APPLICATION�MENU_BARr�r{r�r�rw�_get_nesting_level�get_parent_checkedrdrerx�is_layout_only�is_button_with_popup�is_redundant_object�	enumeraterArS�reverse) r!rVrDrFr�r��common_ancestor�include_only�
skip_rolesrrr�r��present_once�present_common_ancestorr��obj_ancestor�prior_ancestor�	obj_level�prior_level�	ancestors�ancestor_rolesr�parent_role�is_redundantr��presented_roles�irP�alt_rolerAr�s `                              @r"�_generate_ancestors�#SpeechGenerator._generate_ancestorss�������(�(�9�%���t�x�x�
�+�+��I��(�(�:�&�C�����,�I���)�)�)�4�4��I��"�"�9�-�-��I���,�,�Y�7�8�;N�;N�s�;S�S��I��"�"�3�'�'��I��"�"�3�'�'��I�"�6�6�y�F���!��I��x�x�
�r�2���X�X�k�2�.�
����%�*�*�.�.�/�!�I�I�K������(�#�����"�5�
����e�j�j�4�4�e�j�j�6I�6I�J�K��8�8�$6��;��������!4�!4� 5�6��
�
�.�.��
�
���@��"'���7��3�3�O�D�K��l�*�G�'�5�5�c�@��!)�!7�!7�	�!H�� �3�3�L�A�	�"�5�5�n�E��*3�{�*B�'�$&��>�	��,�,�S�1����3�3�F�;�K��m�+���j�(����1G�1G�1Z�1Z�[a�1b�1b���+�\�"A���+�+�F�3�3���1�1�&�9�9���?�*�.E�$�� )�H�"�6�6�x��H�H�'+���!*�$��$�$�V�,�"�)�)�+�6���(�K�;K�,K���0�0��8�F�7�f�:���i�(�D�A�q�%�a�(�H��<�'�H��,G���"�"�8�,�"�(�(��2�E��M�M��
�
�a�J�X�&-�U�s��`�
a�)���N�N���
r%c�^�[R"5RS5(a/$URRR5(a/$UR
S5mT(a!UT:Xd[R"T5(d/$[R"U5(a/$[R"U5[R"T5:wd [R"UU4Sj5(a/$URRRU5up4U(a/$SUS'[RR [RR"[RR$[RR&[RR([RR*[RR,[RR.SSS[RR0[RR2S	[RR4[RR6/US
'/n[R8"T5(a0UR;UR=TUR?T5SSS95 UR;UR@"U40UD65 URCS5 URCS
5 U$)
Nr�r�c�>�UT:H$rr)rPr�s �r"rQ�9SpeechGenerator._generate_old_ancestors.<locals>.<lambda>s	���A��Nr%Tr�rkrlrmrnr��focused)rbr�r�)"rr�r�rdre�inFindContainerrir�is_validrr��get_applicationrwrtrr�r{r�r�r�r|r}r~rr�r�r�r��is_block_quoter|rSr�r�pop)r!rVrD�_framer�rFr�s      @r"�_generate_old_ancestors�'SpeechGenerator._generate_old_ancestorsos����'�'�)�5�5�6N�O�O��I��<�<�!�!�1�1�3�3��I��H�H�Z�(�	��C�9�,�H�4E�4E�i�4P�4P��I��"�"�3�'�'��I��&�&�s�+�{�/J�/J�9�/U�U��$�$�S�*B�C�C��I����/�/�>�>�s�C�����I���Y��$�z�z�5�5�$�z�z�:�:�$�z�z���$�z�z�2�2�$�z�z�:�:�$�z�z�;�;�$�z�z���$�z�z�4�4�3�2�*�$�z�z���$�z�z�/�/�,�$�z�z�/�/�$�z�z�2�2�4��]��"���%�%�i�0�0��M�M�$�-�-�	�-1�-F�-F�y�-Q�3<�04�(�6�
7�
	�
�
�d�.�.�s�;�d�;�<������������
r%c��[R"5RS5(a/$URRR5(a/$UR
S5nX1:Xa/$UR
S[R"U55n[R"X5(d[R"X5(a/$[R"X5(a$U(a[R"U5(a/$UbUR"U40UD6$URRRU5upVU=(d Un[R"U5(aUR"U40UD6$/$)Nr�r�rb)rr�r�rdrerrirr�r�is_frame�	is_window�is_menu_item_of_any_kindrrt�is_dialog_or_alert)r!rVrDr�rbrr��	top_levels        r"�_generate_new_ancestors�'SpeechGenerator._generate_new_ancestors�s0���'�'�)�5�5�6N�O�O��I��<�<�!�!�1�1�3�3��I��H�H�Z�(�	����I��x�x��� 1� 1�#� 6�7������*�*�k�.C�.C�C�.N�.N��I��/�/��:�:���!6�!6�y�!A�!A��I�� ��+�+�C�8�4�8�8����.�.�=�=�c�B�
���O�e�	��)�)�)�4�4��+�+�C�8�4�8�8��	r%c��URS5U:Xa/$UR"U40UD6nURUR"U40UD65 U$)Nr�)rir#rvr+�r!rVrDrFs    r"�generate_context� SpeechGenerator.generate_context�sN���8�8�J��3�&��I��-�-�c�:�T�:���
�
�d�2�2�3�?�$�?�@��
r%c��URS[R"U55[RR
:Xa'URSS5S;a[R/$[R"U5n[R"U5(d[R"U5(aUnUR[R"U55$)Nrbr�)r��detailedWhereAmI)
rirr�rr�r�r�ROLE_ICON_PANELrr�
is_table_cellrrp)r!rVrDrs    r"�_generate_parent_role_name�*SpeechGenerator._generate_parent_role_name�s����8�8�F�H�-�-�c�2�3�u�z�z���F��x�x��d�+�7�8�%�5�5�6�6��$�$�S�)���$�$�V�,�,��0C�0C�F�0K�0K��C��-�-�h�.A�.A�#�.F�G�Gr%c��[R"5RS5(dU[R"5RS5(dURSS5(aURS5S:Xa/$URSS5S	-URS
S	5:a/$/n[R
"U5n[R"U5nUS:a/$[RnUS:a-[R"U5(d/$[RnUS	:Xa[R"U5(a/$US	-
nURXdUS.-5 URUR"[4SU0UD65 U$)
Nr��enablePositionSpeaking�	forceListFr�r�r�rrr�rUrV)rr�r�rir�get_position_in_setrJr�GROUP_INDEX_SPEECH�get_set_size_is_unknown� GROUP_INDEX_TOTAL_UNKNOWN_SPEECHrrvr|r}r�)r!rVrDrF�positionr�r�s       r"�_generate_position_in_list�*SpeechGenerator._generate_position_in_list�sH���'�'�)�5�5�6N�O�O�#�/�/�1�=�=�>V�W�W��h�h�{�E�2�2��h�h�|�$�
�2��I��8�8�G�Q��!�#�d�h�h�w��&:�:��I����2�2�3�7���(�(��-���a�<��I�"�5�5���1�9��6�6�s�;�;��	�&�G�G�F��A�:�+�-�-�c�2�2��I��A�
���
�
�f�E�B�B�C��
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"5RS5(a/$/n[R"U5nU(a9URU5 UR
UR"[4SU0UD65 U$r�)	rr�r�r�get_acceleratorrvr|r}r�)r!rVrDrF�accelerators     r"�_generate_keyboard_accelerator�.SpeechGenerator._generate_keyboard_accelerator�sj���'�'�)�5�5�6N�O�O��I����.�.�s�3����M�M�+�&��M�M�$�*�*�V�=��=��=�>��
r%c�v�[R"5RS5(a/$/n[R"5RS5(dURSS5(aK[R
"U5nU(a.US/nUR
UR"[4SU0UD65 U$)Nr��enableMnemonicSpeaking�
forceMnemonicFr�rV)	rr�r�rir�get_mnemonicr|r}r�)r!rVrDrF�mnemonics     r"�_generate_keyboard_mnemonic�+SpeechGenerator._generate_keyboard_mnemonics����'�'�)�5�5�6N�O�O��I����'�'�)�5�5�6N�O�O��h�h���.�.��,�,�S�1�H��"�2�,����
�
�d�j�j��A�S�A�D�A�B��
r%c���/n[R"U5nU(d�URURU55 URUR	U55 UR[R"U55 URUR"[4SU0UD65 U$[RRU5nUSS;aiUSRS5nUR[RUSUSS.-5 URUR"[4SU0UD65 U$[R US-n[R"U5n["R$"U5(d[R US-nO[R&US-nU(d[R("U5nU(aUSU--
nURU5 [*R,"US5n	["R."U	5(a URUR	U	55 URUR"[4SU0UD65 U$)	NrVr)�ftp�ftps�file��/r�)�urirPr�)r�get_link_urir|r�rprvr�get_all_textr}r��urllib�parse�urlparse�splitr
�LINK_TO_FILE�LINK_WITH_PROTOCOLrrj�LINK_WITH_PROTOCOL_VISITED�get_link_basenamer�	get_child�is_image)
r!rVrDrF�link_uri�
link_uri_info�	file_name�link_outputr$rs
          r"�_generate_link_info�#SpeechGenerator._generate_link_infos������+�+�C�0����M�M�$�9�9�#�>�?��M�M�$�8�8��=�>��M�M�&�-�-�c�2�3��M�M�$�*�*�V�=��=��=�>��M����-�-�h�7�
����6�6�%�a�(�.�.�s�3�I��M�M��%�%��q�1A�I�VX�M�(Z�Z�
\��M�M�$�*�*�V�=��=��=�>��M��1�1�M�!�4D�D���"�"�3�'���%�%�c�*�*�"�5�5�
�a�8H�H�K�"�=�=�
�a�@P�P�K���0�0��5�D���3��:�%�K��
�
�k�"��"�"�3��*������&�&��M�M�$�8�8��?�@��
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"U5nU(d/$[RR	U5n[
R"URRR55nU(d/$/n[RR	U5nUSUS:XaLUSUS:Xa UR[R5 O�UR[R5 O�USRS5nUSRS5n	[U5S:�aG[U	5S:�a8USU	S:Xa,USU	S:Xa UR[R5 OUR[R 5 U(a(UR#UR$"[&4SU0UD65 U$)NrrQr�r����rV)rrTrVrWrXr�get_urirdre�
documentFramervr
�LINK_SAME_PAGE�LINK_SAME_SITErYry�LINK_DIFFERENT_SITEr|r}r�)
r!rVrDr`ra�doc_urirF�doc_uri_info�link_domain�
doc_domains
          r"�_generate_link_site_description�/SpeechGenerator._generate_link_site_description:sd���+�+�C�0����I����-�-�h�7�
��$�$�T�\�\�%;�%;�%I�%I�%K�L����I����|�|�,�,�W�5�����|�A��.��Q��<��?�2��
�
�h�5�5�6��
�
�h�5�5�6�'��*�0�0��5�K�%�a��.�.�s�3�J��;��!�#��J��!�(;��r�?�j��n�4��r�?�j��n�4��
�
�h�5�5�6��
�
�h�:�:�;���M�M�$�*�*�V�=��=��=�>��
r%c��/nSn[R"U5nU(dU$[RR	U5nUR5SnSSS5 U(a�[U5nUS:a&UR[R"U55 OiUS:a/UR[R[!U5S--5 O4US:�a.UR[R"[!U5S--5 U(a(UR%UR&"[(4SU0UD65 U$![a N�f=f!,(df   N�=f![[RR[4a GN%f=f)Nr[zContent-lengthi'i@Bg����MbP?g���ư>rV)rrTrV�request�urlopen�info�KeyError�
ValueError�error�URLError�OSError�intrvr
�
fileSizeBytes�FILE_SIZE_KB�float�FILE_SIZE_MBr|r}r�)r!rVrDrF�size_stringrSrP�sizes        r"�_generate_link_file_size�(SpeechGenerator._generate_link_file_size[s;�������&�&�s�+����M�	����'�'��,���"#�&�&�(�+;�"<�K�-���{�#�D��e�|��
�
�h�4�4�T�:�;�����
�
�h�3�3�u�T�{�T�7I�J�K�����
�
�h�3�3�u�T�{�W�7L�M�N���M�M�$�*�*�V�=��=��=�>��
�� �����-�,��
�F�L�L�1�1�7�;�	��	�sM�E�E	�D9�E�9
E�E	�E�E	�	
E�E�E�)F�Fc	��/n[[R"U55nU(d[R"U5(dU/nUH�n[R
"U5(a=[R"U5(a"URURU55 M[URURXPRU5S95 M� U$�Nr)rTrrLr�is_math�is_math_layout_onlyrWr|�_generate_math_contentsrSr�)r!rVr�rFrQrs      r"r��'SpeechGenerator._generate_math_contentsxs�������.�.�s�3�4���� 3� 3�C� 8� 8��u�H��E��.�.�u�5�5�(�:R�:R�SX�:Y�:Y��
�
�d�:�:�5�A�B���M�M�$�-�-��4M�4M�e�4T�-�U�V�	��
r%c�P�/n[R"U5nURSS5R5nSU;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R5 S	U;aUR	[
R5 S
U;aUR	[
R5 SU;aUR	[
R5 SU;aUR	[
R 5 S
U;aUR	[
R"5 SU;aUR	[
R$5 SU;aUR	[
R&5 SU;aUR	[
R(5 SU;aUR	[
R*5 SU;aUR	[
R,5 U(d,SU/n[.R0"[.R2US5 /$[5U5S:Xa[
R6US-/nOvUR9S[
R:5 [5U5S:Xa$[
R6SR=U5-/nO#[
R6SR=U5-/nUR?UR@"[B4SU0UD65 U$)N�notation�longdiv�	actuarial�box�circle�radical�
roundedbox�horizontalstrike�verticalstrike�downdiagonalstrike�updiagonalstrike�northeastarrow�bottom�left�right�top�phasorangle�madruwbz5SPEECH GENERATOR: Could not get enclosure message forTrrr��r�z, rV)"r�get_attributes_dictrirYrvr
�MATH_ENCLOSURE_ACTUARIAL�MATH_ENCLOSURE_BOX�MATH_ENCLOSURE_CIRCLE�MATH_ENCLOSURE_LONGDIV�MATH_ENCLOSURE_RADICAL�MATH_ENCLOSURE_ROUNDEDBOX�MATH_ENCLOSURE_HORIZONTALSTRIKE�MATH_ENCLOSURE_VERTICALSTRIKE�!MATH_ENCLOSURE_DOWNDIAGONALSTRIKE�MATH_ENCLOSURE_UPDIAGONALSTRIKE�MATH_ENCLOSURE_NORTHEASTARROW�MATH_ENCLOSURE_BOTTOM�MATH_ENCLOSURE_LEFT�MATH_ENCLOSURE_RIGHT�MATH_ENCLOSURE_TOP�MATH_ENCLOSURE_PHASOR_ANGLE�MATH_ENCLOSURE_MADRUWBrrBrCry�MATH_ENCLOSURE_ENCLOSED_BY�insert�MATH_ENCLOSURE_AND�joinr|r}r�)r!rVrD�strings�attrs�
enclosuresrGrFs        r"�"_generate_math_enclosed_enclosures�2SpeechGenerator._generate_math_enclosed_enclosures�s������,�,�S�1���Y�Y�z�9�5�;�;�=�
��*�$��N�N�8�<�<�=��J���N�N�8�6�6�7��z�!��N�N�8�9�9�:��
�"��N�N�8�:�:�;��
�"��N�N�8�:�:�;��:�%��N�N�8�=�=�>���+��N�N�8�C�C�D��z�)��N�N�8�A�A�B��:�-��N�N�8�E�E�F���+��N�N�8�C�C�D��z�)��N�N�8�A�A�B��z�!��N�N�8�9�9�:��Z���N�N�8�7�7�8��j� ��N�N�8�8�8�9��J���N�N�8�6�6�7��J�&��N�N�8�?�?�@��
�"��N�N�8�:�:�;��M�z�Z�F����u�/�/���>��I��w�<�1���9�9�G�A�J�F�G�F��N�N�2�x�:�:�;��7�|�q� �"�=�=�����@Q�Q�R��"�=�=��	�	�'�@R�R�S���
�
�d�j�j��9�S�9�D�9�:��
r%c�^	�/n[R"U5n[URSS55m	[R"U5nT	RU	4Sj[
[T	5US-
555 T	RS5 [[R"U55H�upgURUR"U40UD65 [R"T	U5nURU5 URUR"[4SU0UD65 U(dM�URUR "U40UD65 M� U$)N�
separators�,c3�.># �UH
nTSv� M g7f)r�Nr)�.0�_r�s  �r"�	<genexpr>�ASpeechGenerator._generate_math_fenced_contents.<locals>.<genexpr>�s����Z�2Y�Q�*�R�.�2Y�s�rr[rV)rr�rTrirWr|�rangeryrvrrLr�r�getCharacterNamer}r~r�)
r!rVrDrFr�r]rr�separator_namer�s
         @r"�_generate_math_fenced_contents�.SpeechGenerator._generate_math_fenced_contents�s������,�,�S�1���%�)�)�L�#�6�7�
��.�.�s�3�����Z�%��J���WX��2Y�Z�Z����"��!�(�"8�"8��"=�>�H�A��M�M�$�6�6�u�E��E�F�(�9�9�*�Q�-�H�N��M�M�.�)��M�M�$�*�*�W�>�#�>��>�?��~��
�
�d�2�2�3�?�$�?�@�
?��
r%c���[R"US5n[R"U5(aUR	U5$URX0R
U5S9nU$�Nrr�rr^rr�r�rSr�)r!rVr��	numeratorrFs     r"�!_generate_math_fraction_numerator�1SpeechGenerator._generate_math_fraction_numerator�sV���&�&�s�A�.�	��*�*�9�5�5��/�/�	�:�:����y�/H�/H��/S��T���
r%c���[R"US5n[R"U5(aUR	U5$URX0R
U5S9nU$)Nrrr�)r!rVr��denominatorrFs     r"�#_generate_math_fraction_denominator�3SpeechGenerator._generate_math_fraction_denominator�sV���(�(��a�0���*�*�;�7�7��/�/��<�<����{�1J�1J�;�1W��X���
r%c�x�[R/nURUR"[4SU0UD65 U$r�)r
�MATH_FRACTION_LINEr|r}r�r.s    r"�_generate_math_fraction_line�,SpeechGenerator._generate_math_fraction_line�s4���-�-�.���
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"U5nU(aUnO[R"US5nU(d/$U(d6[R"U5(d
"U5(aUR
U5$UR"U40UD6/nURURX@RU5S95 U$r�)r�is_math_square_rootrr^�
is_math_tokenr�r�r�r|rSr�)r!rVrD�is_square_root�baserFs      r"�_generate_math_root_base�(SpeechGenerator._generate_math_root_base�s���$�8�8��=����D��%�%�c�1�-�D���I��[�6�6�t�<�<��-�-�d�3�3��/�/��5�5��&�&�s�3�d�3�4���
�
�d�m�m�D�/H�/H��/N�m�O�P��
r%c�d�[R"US5nU(d/$URU5$)Nr)rr^r�)r!rVr�r�s    r"�_generate_math_script_base�*SpeechGenerator._generate_math_script_base�s-���!�!�#�q�)����I��+�+�D�1�1r%c��[R"U5(aURU5$URXR	U5S9nU$r�)rr�r�rSr�)r!rVr�rFs    r"�_generate_math_script_script�,SpeechGenerator._generate_math_script_scriptsD���*�*�3�/�/��/�/��4�4����s�)B�)B�3�)G��H���
r%c�2�[R"US5S:Xa/$[R"US5nU(d/$[R/nURUR"[4SU0UD65 URURU55 U$)N�tag�msuprrV)	r�
get_attributer^r
�MATH_SUBSCRIPTr|r}r�r�)r!rVrD�	subscriptrFs     r"�_generate_math_script_subscript�/SpeechGenerator._generate_math_script_subscripts���!�!�#�u�-��7��I��&�&�s�A�.�	���I��)�)�*���
�
�d�j�j��9�S�9�D�9�:��
�
�d�7�7�	�B�C��
r%c�b�[R"US5nUS:Xa[R"US5nO US:Xa[R"US5nO/$[R/nURUR"[4SU0UD65 URURU55 U$)Nr�r�r�msubsuprQrV)	rr�r^r
�MATH_SUPERSCRIPTr|r}r�r�)r!rVrDr��superscriptrFs      r"�!_generate_math_script_superscript�1SpeechGenerator._generate_math_script_superscripts����$�$�S�%�0���&�=�"�,�,�S�!�4�K�
�I�
�"�,�,�S�!�4�K��I��+�+�,���
�
�d�j�j��9�S�9�D�9�:��
�
�d�7�7��D�E��
r%c�2�[R"US5S:Xa/$[R"US5nU(d/$[R/nURUR"[4SU0UD65 URURU55 U$)Nr��moverrrV)	rr�r^r
�MATH_UNDERSCRIPTr|r}r�r�)r!rVrD�underscriptrFs     r"�!_generate_math_script_underscript�1SpeechGenerator._generate_math_script_underscript)s���!�!�#�u�-��8��I��(�(��a�0����I��+�+�,���
�
�d�j�j��9�S�9�D�9�:��
�
�d�7�7��D�E��
r%c�b�[R"US5nUS:Xa[R"US5nO US:Xa[R"US5nO/$[R/nURUR"[4SU0UD65 URURU55 U$)Nr�r�r�
munderoverrQrV)	rr�r^r
�MATH_OVERSCRIPTr|r}r�r�)r!rVrDr��
overscriptrFs      r"� _generate_math_script_overscript�0SpeechGenerator._generate_math_script_overscript7s����$�$�S�%�0���'�>�!�+�+�C��3�J�
�L�
 �!�+�+�C��3�J��I��*�*�+���
�
�d�j�j��9�S�9�D�9�:��
�
�d�7�7�
�C�D��
r%c�,�/nSn[R"U5H<n[R"US5S:XaSnM"U(dM+URU5 M> /n[	U5H�upx[
R"U5(aM"US-(a[R/n	O[R/n	U	RUR"[4SU0UD65 U	RURU55 URU	5 M� U$)NFr��mprescriptsTrQrV)rrLr�rvrrr�r
�MATH_PRE_SUPERSCRIPT�MATH_PRE_SUBSCRIPTr|r}r�r�)
r!rVrD�
prescripts�found_separatorrrFrr;rWs
          r"� _generate_math_script_prescripts�0SpeechGenerator._generate_math_script_prescriptsFs����
����+�+�C�0�E��%�%�e�U�3�}�D�"&������!�!�%�(�1���"�:�.�I�A��.�.�v�6�6���1�u��3�3�4���1�1�2���I�I�d�j�j��9�S�9�D�9�:��I�I�d�7�7��?�@��M�M�"��/��
r%c��/n[R"US5nU(af[R"US5S:waKURU5 [R"U5nU(a[R"US5S:waMK/n[U5H�upg[R"U5(aM"US-(a[R/nO[R/nURUR"[4SU0UD65 URURU55 URU5 M� U$)Nrr�r�rQrV)rr^r�rv�get_next_siblingrrr�r
r�r�r|r}r�r�)	r!rVrD�postscriptsrrFrr;rWs	         r"�!_generate_math_script_postscripts�1SpeechGenerator._generate_math_script_postscripts_s������"�"�3��*����.�.�u�e�<�
�M����u�%��-�-�e�4�E���.�.�u�e�<�
�M���"�;�/�I�A��.�.�v�6�6���1�u��/�/�0���-�-�.���I�I�d�j�j��9�S�9�D�9�:��I�I�d�7�7��?�@��M�M�"��0��
r%c	��/n[R"U5H0nURURX@R	U5S95 M2 U$r�)rrLr|rSr�)r!rVr�rF�rows     r"�_generate_math_table_rows�)SpeechGenerator._generate_math_table_rowsusE�����)�)�#�.�C��M�M�$�-�-��2K�2K�C�2P�-�Q�R�/��
r%c�L�[R"5RS5(a/$URSS5nUS:wa/$/nURR
R
U5(ajUR[R/5 URUR"[4SU0UD65 URUR"U40UD65 UR[R/5 URUR"[4SU0UD65 U$�Nr�r�rrV)rr�r�rirdre�$isFirstItemInInlineContentSuggestionr|rr�r}r�r�r
�CONTENT_DELETION_START�r!rVrD�start_offsetrFs     r"�_generate_start_of_deletion�+SpeechGenerator._generate_start_of_deletions����'�'�)�5�5�6N�O�O��I��x�x�
�q�1���1���I����<�<�!�!�F�F�s�K�K��M�M�,�D�D�E�F��M�M�$�*�*�V�=��=��=�>��M�M�$�.�.�s�;�d�;�<��
�
�x�6�6�7�8��
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"5RS5(a/$URS5nUb$[R
"U5nU(aXC:wa/$[R/nURUR"[4SU0UD65 URRRU5(a�URUR"U40UD65 UR[R/5 URUR"[4SU0UD65 [ R""XRRR$5n[&R("U5(aBURUR"U40UD65 URUR+U55 U$�Nr�r�rV)rr�r�rir�get_character_countr
r�r|r}r�rdre�#isLastItemInInlineContentSuggestionr��CONTENT_SUGGESTION_ENDrrw�
hasDetailsr�
is_suggestionr/�r!rVrD�
end_offset�lengthrFr\s       r"�_generate_end_of_deletion�)SpeechGenerator._generate_end_of_deletion�sT���'�'�)�5�5�6N�O�O��I��X�X�k�*�
��!��/�/��4�F��&�.��	��/�/�0���
�
�d�j�j��9�S�9�D�9�:��<�<�!�!�E�E�c�J�J��M�M�$�.�.�s�;�d�;�<��M�M�8�:�:�;�<��M�M�$�*�*�V�=��=��=�>� �.�.�s�L�L�4J�4J�4U�4U�V�I��(�(��3�3��
�
�d�2�2�3�?�$�?�@��
�
�d�8�8��C�D��
r%c�L�[R"5RS5(a/$URSS5nUS:wa/$/nURR
R
U5(ajUR[R/5 URUR"[4SU0UD65 URUR"U40UD65 UR[R/5 URUR"[4SU0UD65 U$r)rr�r�rirdrerr|rr�r}r�r�r
�CONTENT_INSERTION_STARTrs     r"�_generate_start_of_insertion�,SpeechGenerator._generate_start_of_insertion�s����'�'�)�5�5�6N�O�O��I��x�x�
�q�1���1���I����<�<�!�!�F�F�s�K�K��M�M�,�D�D�E�F��M�M�$�*�*�V�=��=��=�>��M�M�$�.�.�s�;�d�;�<��
�
�x�7�7�8�9��
�
�d�j�j��9�S�9�D�9�:��
r%c��[R"5RS5(a/$URS5nUb$[R
"U5nU(aXC:wa/$[R/nURUR"[4SU0UD65 URRRU5(a�URUR"U40UD65 UR[R/5 URUR"[4SU0UD65 [ R""XRRR$5n[&R("U5(aBURUR"U40UD65 URUR+U55 U$r)rr�r�rirrr
r�r|r}r�rdrerr�rrrwrrrr/rs       r"�_generate_end_of_insertion�*SpeechGenerator._generate_end_of_insertion�sT���'�'�)�5�5�6N�O�O��I��X�X�k�*�
��!��/�/��4�F��&�.��	��0�0�1���
�
�d�j�j��9�S�9�D�9�:��<�<�!�!�E�E�c�J�J��M�M�$�.�.�s�;�d�;�<��M�M�8�:�:�;�<��M�M�$�*�*�V�=��=��=�>� �.�.�s�L�L�4J�4J�4U�4U�V�I��(�(��3�3��
�
�d�2�2�3�?�$�?�@��
�
�d�8�8��C�D��
r%c��[R"5RS5(a/$URSS5nUS:wa/$/n[R
"U5nU(a[UR
U5 URUR"[4SU0UD65 URUR"U40UD65 UR
[R5 URUR"[4SU0UD65 U$r)
rr�r�rir�get_role_descriptionrvr|r}r�r�r
�CONTENT_MARK_START)r!rVrDrrF�role_descriptions      r"�_generate_start_of_mark�'SpeechGenerator._generate_start_of_mark�s����'�'�)�5�5�6N�O�O��I��x�x�
�q�1���1���I���#�8�8��=����M�M�*�+��M�M�$�*�*�V�=��=��=�>��M�M�$�.�.�s�;�d�;�<��
�
�h�1�1�2��
�
�d�j�j��9�S�9�D�9�:��
r%c�>�[R"5RS5(a/$URS5nUb$[R
"U5nU(aXC:wa/$[R/nURUR"[4SU0UD65 U$r)rr�r�rirrr
r�r|r}r�)r!rVrDrrrFs      r"�_generate_end_of_mark�%SpeechGenerator._generate_end_of_mark�s����'�'�)�5�5�6N�O�O��I��X�X�k�*�
��!��/�/��4�F��&�.��	��+�+�,���
�
�d�j�j��9�S�9�D�9�:��
r%c�*�[R"5RS5(a/$[R"U5nURSS5n[R"U5/nURUR"[4SU0UD65 U$)Nr��open�(rV�rr�r�rr�rirr�r|r}r~)r!rVrDr��fence_startrFs      r"�_generate_start_of_math_fenced�.SpeechGenerator._generate_start_of_math_fenced�sy���'�'�)�5�5�6N�O�O��I��,�,�S�1���i�i���,���.�.�{�;�<���
�
�d�j�j��:�c�:�T�:�;��
r%c�*�[R"5RS5(a/$[R"U5nURSS5n[R"U5/nURUR"[4SU0UD65 U$)Nr��close�)rVr4)r!rVrDr��	fence_endrFs      r"�_generate_end_of_math_fenced�,SpeechGenerator._generate_end_of_math_fencedsy���'�'�)�5�5�6N�O�O��I��,�,�S�1���I�I�g�s�+�	��.�.�y�9�:���
�
�d�j�j��:�c�:�T�:�;��
r%c�(�[R"5RS5(a/$[R"U5(a[
R/nO[
R/nURUR"[4SU0UD65 U$r�)rr�r�r�is_math_fraction_without_barr
�MATH_FRACTION_WITHOUT_BAR_START�MATH_FRACTION_STARTr|r}r�r.s    r"� _generate_start_of_math_fraction�0SpeechGenerator._generate_start_of_math_fractionss���'�'�)�5�5�6N�O�O��I��3�3�C�8�8��>�>�?�F��2�2�3�F��
�
�d�j�j��9�S�9�D�9�:��
r%c���[R"5RS5(a/$[R/nURUR"[4SU0UD65 U$r�)rr�r�r
�MATH_FRACTION_ENDr|r}r�r.s    r"�_generate_end_of_math_fraction�.SpeechGenerator._generate_end_of_math_fractionsT���'�'�)�5�5�6N�O�O��I��,�,�-���
�
�d�j�j��9�S�9�D�9�:��
r%c�^�[R"5RS5(a/$/n[R"U5(a[
R/nGO"[R"US5n[R"U5nUS:Xa[
R/nO�US:Xa[
R/nO�U(a$U/nUR[
R/5 O�[R"U5(a2URU5nUR[
R/5 OMURUR!X@R#U5S95 UR[
R/5 U(a(URUR$"[&4SU0UD65 U$)Nr�r�2�3rrV)rr�r�rr�r
�MATH_SQUARE_ROOT_OFrr^rrU�MATH_CUBE_ROOT_OFr|�MATH_ROOT_OFr�r�rSr�r}r�)r!rVrDrFr�r�s      r"�_generate_start_of_math_root�,SpeechGenerator._generate_start_of_math_root'sF���'�'�)�5�5�6N�O�O��I����*�*�3�/�/��2�2�3�F��&�&�s�A�.�E��(�(��/�F���}�"�6�6�7���3��"�4�4�5��� ����
�
�x�4�4�5�6��0�0��7�7��5�5�e�<���
�
�x�4�4�5�6��
�
�d�m�m�E�8Q�8Q�RW�8X�m�Y�Z��
�
�x�4�4�5�6���M�M�$�*�*�V�=��=��=�>��
r%c���[R"5RS5(a/$[R/nURUR"[4SU0UD65 U$r�)rr�r�r
�
MATH_ROOT_ENDr|r}r�r.s    r"�_generate_end_of_math_root�*SpeechGenerator._generate_end_of_math_rootEsT���'�'�)�5�5�6N�O�O��I��(�(�)���
�
�d�j�j��9�S�9�D�9�:��
r%c���[R"5RS5(a/$[R"U5(d/$[
R"U5n[
R"U5nURRRU5nUS:�a[R"X45/nO[R"X45/nURUR"[ 4SU0UD65 U$rg)rr�r�r�supports_tabler�
get_row_count�get_column_countrdre�nestingLevelr
�mathNestedTableSize�
mathTableSizer|r}r�)r!rVrD�rows�columns�
nesting_levelrFs       r"�_generate_start_of_math_table�-SpeechGenerator._generate_start_of_math_tableNs����'�'�)�5�5�6N�O�O��I��&�&�s�+�+��I��$�$�S�)���*�*�3�/�����.�.�;�;�C�@�
��1���2�2�4�A�B�F��,�,�T�;�<�F��
�
�d�j�j��9�S�9�D�9�:��
r%c�H�[R"5RS5(a/$URRRU5nUS:�a[R/nO[R/nURUR"[4SU0UD65 U$rg)rr�r�rdrerXr
�MATH_NESTED_TABLE_END�MATH_TABLE_ENDr|r}r�)r!rVrDr]rFs     r"�_generate_end_of_math_table�+SpeechGenerator._generate_end_of_math_table`s����'�'�)�5�5�6N�O�O��I����.�.�;�;�C�@�
��1���4�4�5�F��-�-�.�F��
�
�d�j�j��9�S�9�D�9�:��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_checkedr|r}�STATEr�s    �r"rf�'SpeechGenerator._generate_state_checkedo�^����'�'�)�5�5�6N�O�O��I���0��=��=����M�M�$�*�*�U�<��<�t�<�=��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�"_generate_state_checked_for_switchr|r}rgr�s    �r"rk�2SpeechGenerator._generate_state_checked_for_switchys^����'�'�)�5�5�6N�O�O��I���;�C�H�4�H����M�M�$�*�*�U�<��<�t�<�=��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�$_generate_state_checked_if_checkabler|r}rgr�s    �r"rn�4SpeechGenerator._generate_state_checked_if_checkable�s^����'�'�)�5�5�6N�O�O��I���=�c�J�T�J����M�M�$�*�*�U�<��<�t�<�=��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_expandedr|r}rgr�s    �r"rq�(SpeechGenerator._generate_state_expanded�s^����'�'�)�5�5�6N�O�O��I���1�#�>��>����M�M�$�*�*�U�<��<�t�<�=��
r%c��[R"5RS5(d6[R"5RS5[R:Xa/$[
R"U5(d[
R"U5(d/$[RUR"[4SU0UD6/$)Nr�r�rV)rr�r�rr�rr�	has_popupr
�	HAS_POPUPr}r��r!rVrDs   r"�_generate_state_has_popup�)SpeechGenerator._generate_state_has_popup�s����'�'�)�5�5�6N�O�O��*�*�,�8�8�9O�P��0�0�1��I����s�#�#�;�+@�+@��+E�+E��I��"�"�D�J�J�v�$G�3�$G�$�$G�H�Hr%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_invalidr|r}r�r�s    �r"rz�'SpeechGenerator._generate_state_invalid�s^����'�'�)�5�5�6N�O�O��I���0��=��=����M�M�$�*�*�V�=��=��=�>��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_multiselectabler|r}rgr�s    �r"r}�/SpeechGenerator._generate_state_multiselectable�s^����'�'�)�5�5�6N�O�O��I���8��E��E����M�M�$�*�*�U�<��<�t�<�=��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_pressedr|r}rgr�s    �r"r��'SpeechGenerator._generate_state_pressed�rir%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)r:�_generate_state_read_onlyr|r}r�r�s    �r"r��)SpeechGenerator._generate_state_read_only�s>�����2�3�?�$�?����M�M�$�*�*�V�=��=��=�>��
r%c�>�[R"5RS5(a/$URS5(a/$[TU]"U40UD6nU(a(UR
UR"[4SU0UD65 U$)Nr��alreadyFocusedrV)	rr�r�rir:�_generate_state_requiredr|r}r�r�s    �r"r��(SpeechGenerator._generate_state_required�ss����'�'�)�5�5�6N�O�O��I��8�8�$�%�%��I���1�#�>��>����M�M�$�*�*�V�=��=��=�>��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�)_generate_state_selected_for_radio_buttonr|r}rgr�s    �r"r��9SpeechGenerator._generate_state_selected_for_radio_button�s^����'�'�)�5�5�6N�O�O��I���B�3�O�$�O����M�M�$�*�*�U�<��<�t�<�=��
r%c��>�[R"5RS5(a/$[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)rr�r�r:�_generate_state_sensitiver|r}rgr�s    �r"r��)SpeechGenerator._generate_state_sensitive�s^����'�'�)�5�5�6N�O�O��I���2�3�?�$�?����M�M�$�*�*�U�<��<�t�<�=��
r%c��[R"5RS5(a/$URS5(a/$U(d/$[R
"U5(d/$[R"U5(a/$[R"XRS55(a/$[R"XRS55(a;[R/nURUR"[4SU0UD65 U$[R"U5n[ R""U5nU(at[$R"5R'5(a/$[ R("U5(a/$UR*R,R/U5(d/$OH[R0"U5(a+XR*R,R3U5;a/$O/$[R4/nURUR"[4SU0UD65 U$)Nr�r�rbrV)rr�r�rir�
is_selectabler	�is_text�is_list_itemr�STATE_UNSELECTED_LIST_ITEMr|r}rgrrr�	get_tabler�last_event_was_left_or_right�is_layout_tablerdre�	isGUICellr�rX�STATE_UNSELECTED_TABLE_CELL)r!rVrDrFr�tables      r"�_generate_state_unselected�*SpeechGenerator._generate_state_unselected�s����'�'�)�5�5�6N�O�O��I��8�8�O�$�$��I���I��(�(��-�-��I��"�"�3�'�'��I����s�H�H�V�$4�5�5��I��#�#�C���&�)9�:�:�'�B�B�C�F��M�M�$�*�*�U�<��<�t�<�=��M��$�$�S�)���!�!�#�&���"�.�.�0�M�M�O�O��	��&�&�u�-�-��	��<�<�)�)�3�3�C�8�8��	�9�
�
(�
(��
0�
0��l�l�,�,�=�=�f�E�E��	�F��I�#�?�?�@���
�
�d�j�j��8�C�8�4�8�9��
r%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)r:�_generate_nesting_levelr|r}r�r�s    �r"r��'SpeechGenerator._generate_nesting_levels>�����0��=��=����M�M�$�*�*�V�=��=��=�>��
r%c��>�[R"5RS5(a/$SUS'[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$)Nr�T�newOnlyrV)rr�r�r:�_generate_tree_item_levelr|r}r�r�s    �r"r��)SpeechGenerator._generate_tree_item_levelsg����'�'�)�5�5�6N�O�O��I���Y����2�3�?�$�?����M�M�$�*�*�V�=��=��=�>��
r%c�:�URS5(aUR"U40UD6(d/$/nUR5SnXA:waPURU5Sn[R
U-/nUR
UR"[4SU0UD65 U$)N�isProgressBarUpdaterrV)	ri�#_should_present_progress_bar_update�$_get_most_recent_progress_bar_update�"_get_progress_bar_number_and_countr
�PROGRESS_BAR_NUMBERr|r}r�)r!rVrDrF�acc�numbers      r"�_generate_progress_bar_index�,SpeechGenerator._generate_progress_bar_index,s����x�x�-�.�.��:�:�3�G�$�G��I����7�7�9�!�<���:��<�<�S�A�!�D�F��2�2�f�=�>�F��M�M�$�*�*�V�=��=��=�>��
r%c�8�URS5(aUR"U40UD6(dS/$/n[R"U5nUbMUR	[
R"U55 URUR"[4SU0UD65 U$)Nr�r[rV)
rir�r�get_value_as_percentrvr
�
percentager|r}r�)r!rVrDrF�percents     r"�_generate_progress_bar_value�,SpeechGenerator._generate_progress_bar_value;s����8�8�)�*�*��;�;�C�H�4�H��4�K����.�.�s�3�����M�M�(�-�-�g�6�7��M�M�$�*�*�V�=��=��=�>��
r%c�>�[R"5RS5nUc[TU]5n[U5$)N�progressBarSpeechInterval)rr�r�r:�!_get_progress_bar_update_intervalr|)r!�intervalr<s  �r"r��1SpeechGenerator._get_progress_bar_update_intervalIs:���#�/�/�1�=�=�>Y�Z�����w�@�B�H��8�}�r%c�z>�[R"5RS5(dg[TU]"U40UD6$)N�speakProgressBarUpdatesF)rr�r�r:r�rms   �r"r��3SpeechGenerator._should_present_progress_bar_updatePs6����+�+�-�9�9�:S�T�T���w�:�3�G�$�G�Gr%c�>�[TU]"U40UD6nU(a
US(d�[R"5R	S5(azURSS5(dcURS5S:waNUR
[R5 U(a(URUR"[4SU0UD65 U$)Nr�speakBlankLines�
readingRowFr�r�rV)r:�_generate_real_table_cellrr�r�rirvr
�BLANKr|r}r~r�s    �r"r��)SpeechGenerator._generate_real_table_cellYs������2�3�?�$�?���6�!�9��+�+�-�9�9�:K�L�L��8�8�L�%�0�0��x�x��%��3��M�M�(�.�.�)���
�
�d�j�j��B�c�B�T�B�C��
r%c�R>�[R"5RS5(d/$URR	5(a/$URU5(+US'[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$)N�speakCellHeadersr�rV)rr�r�rdr��_get_is_nameless_toggler:�"_generate_table_cell_column_headerr|r}r~r�s    �r"r��2SpeechGenerator._generate_table_cell_column_headerfs�����+�+�-�9�9�:L�M�M��I��<�<� � �"�"��I�"�:�:�3�?�?��Y����;�C�H�4�H����M�M�$�*�*�W�>�#�>��>�?��
r%c��>�URS5(a/$[R"5RS5(d/$URR5(a/$URRRXRS55(d/$SUS'[TU]$"U40UD6nU(a(URUR"[4SU0UD65 U$)Nr�r�r�Tr�rV)
rirr�r�rdr�re�cellRowChangedr:�_generate_table_cell_row_headerr|r}r~r�s    �r"r��/SpeechGenerator._generate_table_cell_row_headerts�����8�8�L�!�!��I��+�+�-�9�9�:L�M�M��I��<�<� � �"�"��I��|�|�%�%�4�4�S�(�(�:�:N�O�O��I���Y����8��E��E����M�M�$�*�*�W�>�#�>��>�?��
r%c��[R"5RS5(a/$URS5(a/$[R
"U5(a/$URRRU5(a/$[R"5RS5[R:XaUR"U40UD6$URRRU5(a?URS[R"U55nUR5upEX5;a/$[R "U5n[R""U5nUS:dUS:a[$R&"U5(d/$[(R*"Xg5/nUR-UR."[04SU0UD65 U$)Nr�r�r�rbrrV)rr�r�rirr�rdrerxrr�rpr�rr�r�rVrWrr<r
�	tableSizer|r}r�)	r!rVrDrbrrr[�colsrFs	         r"�_generate_table_size�$SpeechGenerator._generate_table_size�ss���'�'�)�5�5�6N�O�O��I��8�8�I����I��"�"�3�'�'��I��<�<�!�!�4�4�S�9�9��I��'�'�)�5�5�6L�M��,�,�-��1�1�#�>��>�>��<�<�!�!�5�5�c�:�:��8�8�F�H�$5�$5�c�$:�;�D�!%�!M�!M�!O��H����	��$�$�S�)���'�'��,���1�H��q��+�*M�*M�c�*R�*R��I��$�$�T�0�1���
�
�d�j�j��9�S�9�D�9�:��
r%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)r:�_generate_table_sort_orderr|r}r�r�s    �r"r��*SpeechGenerator._generate_table_sort_order�s>�����3�C�@�4�@����M�M�$�*�*�V�=��=��=�>��
r%c��URS5(a/$[R"5RS5(d/$URR
R
U5(d/$[R"USS9SnUS:Xa/$[RUS--/nURUR"[4SU0UD65 U$)Nr��speakCellCoordinatesT��	find_cellrr�rV)rirr�r�rdre�cellColumnChangedr�get_cell_coordinatesr
�TABLE_COLUMNr|r}r�)r!rVrD�colrFs     r"�!_generate_table_cell_column_index�1SpeechGenerator._generate_table_cell_column_index�s����8�8�L�!�!��I��+�+�-�9�9�:P�Q�Q��I��|�|�%�%�7�7��<�<��I��*�*�3�$�?��B���"�9��I��'�'�3��7�3�4���
�
�d�j�j��9�S�9�D�9�:��
r%c��URRRU5(d/$URS5(a/$[R
"5R
S5(d/$[R"USS9SnUS:Xa/$[RUS--/nURUR"[4SU0UD65 U$)	Nr�r�Tr�rr�rrV)rdrer�rirr�r�rr�r
�	TABLE_ROWr|r}r�)r!rVrDr
rFs     r"�_generate_table_cell_row_index�.SpeechGenerator._generate_table_cell_row_index�s����|�|�%�%�4�4�S�9�9��I��8�8�L�!�!��I��+�+�-�9�9�:P�Q�Q��I��*�*�3�$�?��B���"�9��I��$�$��a��0�1���
�
�d�j�j��9�S�9�D�9�:��
r%c�(�[R"5RS5(a/$[R"USS9up4US:XdUS:Xa/$[R
"U5nUc/$/n[R"U5n[R"U5nUR[RUS-US.-5 UR[RUS-US.-5 URUR"[4SU0UD65 U$)Nr�Tr�r�rrUrV)rr�r�rr�r�rVrWrvr
�TABLE_COLUMN_DETAILED�TABLE_ROW_DETAILEDr|r}r�)	r!rVrDr
r�r�rFr[r\s	         r"�_generate_table_cell_position�-SpeechGenerator._generate_table_cell_position�s����'�'�)�5�5�6N�O�O��I��/�/��t�D����"�9��r�	��I��!�!�#�&���=��I����$�$�U�+���*�*�5�1���
�
�h�4�4�3��7�W^�7_�_�`��
�
�h�1�1��a��TX�4Y�Y�Z��
�
�d�j�j��9�S�9�D�9�:��
r%c�>�[TU]"U40UD6nU(d/$URUR"[4SU0UD65 USS;a�[
R"5RS5(axURR5(dYURSS5S:XaC[R"U5(d(URS5S:wa[RUS'URRR!U5(a+URRR#US5US'U$)	NrVr)�
r[r�r�rr�r�)r:�_generate_text_substringr|r}r~rr�r�rdr�rir�is_table_cell_or_headerr
r�re�shouldVerbalizeAllPunctuation�verbalizeAllPunctuationr�s    �r"r��(SpeechGenerator._generate_text_substring�s������1�#�>��>����I��
�
�d�j�j��:�c�:�T�:�;��!�9�
�"��+�+�-�9�9�:K�L�L��<�<�(�(�*�*�t�x�x���/C�q�/H��6�6�s�;�;��x�x��%��3� ���F�1�I��<�<�!�!�?�?��D�D����.�.�F�F�v�a�y�Q�F�1�I��
r%c��URS5(a[R"U5(a/$UR"U40UD6nU(aU$[R
"U5SSupEUS:Xa�[R"5RS5(a�URR5(d|URSS5S:Xaf[R"U5(dKURS5S	:wa6[R/nURUR"SXAS
.UD65 U$U[!U5-nURR"R%XU5GHupxp�nU	R'URR(S5n	U	(dM7X�sUS'US
'SU;aOSURS5SU	S3n[*R,"[*R.US5 UR1S5 UR"SX�S
.UD6n
[2R"5nUR5XU5n	UR7X5n	UR9U	5/nURU
5 URU5 GM U$)Nr�rrQr�r�r�rr�r�)r�rVr[r�r�r�zINFO: Found existing string 'z
'; using 'r�Tr)rirrr�r�get_line_at_offsetrr�r�rdr�r�r
r�r|r}ryre�splitSubstringByLanguage�replace�EMBEDDED_OBJECT_CHARACTERrr�rCr!r�adjust_for_links�adjust_for_digits�adjust_for_repeats)r!rVrDrFr$rr�start�_endr�r�r�r�r}�managerrWs                r"�_generate_text_line�#SpeechGenerator._generate_text_lines(���8�8�O�$�$��)@�)@��)E�)E��I��.�.�s�;�d�;����M�#�6�6�s�;�A�a�@����4�<�,�8�8�:�F�F�GX�Y�Y��<�<�(�(�*�*�t�x�x���/C�q�/H��6�6�s�;�;��x�x��%��3��n�n�%�F��M�M�$�*�*�B�D�B�T�B�C��M�!�C��I�-�
����&�&�?�?��S]�^�
3�E��7��^�^�D�L�L�$J�$J�B�O�F���08�-�D���d�9�o��4��5�d�h�h�x�6H�5I��TZ�S[�[\�]���#�#�E�$4�$4�c�4�@�����"��J�J�>�f�>��>�E�2�>�>�@�G��-�-�c�5�A�F��.�.�s�;�F��,�,�V�4�5�B��I�I�e��
�M�M�"��-_�0�
r%c�>�UR"U40UD6nU(aUS(aU$[TU]"U40UD6nU(a
US(d/$USR5n[	U5S:XaA[
R"U5(a&[R"U5nU(a	XT:waXSS'URUR"[4SU0UD65 U$)NrrrV)r�r:�_generate_text_contentr�ryr�is_math_relatedrr�r|r}r~)r!rVrDrFr��charnamer<s      �r"r��&SpeechGenerator._generate_text_content/s�����.�.�s�;�d�;���f�Q�i��M���/��<�t�<���6�!�9��I������"���v�;�!��� ;� ;�C� @� @�"�3�3�F�;�H��H�.�$�q�	��
�
�d�j�j��:�c�:�T�:�;��
r%c��[R"5RS5(a/$[R"U5(d/$[
R/nURUR"[4SU0UD65 U$r�)
rr�r�r�is_all_text_selectedr
�
TEXT_SELECTEDr|r}r�r.s    r"�_generate_text_selection�(SpeechGenerator._generate_text_selectionBsj���'�'�)�5�5�6N�O�O��I��*�*�3�/�/��I��(�(�)���
�
�d�j�j��9�S�9�D�9�:��
r%c�@�[R"5RS5(d/$[R"U5SnUR
RRU5nU(d/$U/nURUR"[4SU0UD65 U$)N�enableSpeechIndentationrrV)rr�r�rr�rdre�indentationDescriptionr|r}r�)r!rVrD�line�descriptionrFs      r"�_generate_text_indentation�*SpeechGenerator._generate_text_indentationNs����+�+�-�9�9�:S�T�T��I��(�(��-�a�0���l�l�,�,�C�C�D�I����I�����
�
�d�j�j��9�S�9�D�9�:��
r%c�>�[TU]"U40UD6nU(a(URUR"[4SU0UD65 U$r�)r:�_generate_valuer|r}r~r�s    �r"r�SpeechGenerator._generate_value^s>�����(��5��5����M�M�$�*�*�W�>�#�>��>�?��
r%c��[R"5RS5(a/$[R"U5nUbA[
R"U5/nURUR"[4SU0UD65 U$/$r�)
rr�r�rr�r
r�r|r}r�)r!rVrD�
percent_valuerFs     r"�_generate_value_as_percentage�-SpeechGenerator._generate_value_as_percentagefst���'�'�)�5�5�6N�O�O��I��4�4�S�9�
��$��)�)�-�8�9�F��M�M�$�*�*�V�=��=��=�>��M��	r%c��URS5SLa/$URSS5nUS;aUR"U40UD6$US:Xa'UR"U40UD6UR"U40UD6-$US:XaUR"U40UD6$/$)zEProvides the default/role-agnostic information to present before obj.�includeContextFr��	unfocused�rr�r2)rir2r#r+r)r!rVrD�format_types    r"�_generate_default_prefix�(SpeechGenerator._generate_default_prefixus����8�8�$�%��.��I��h�h�|�[�9���1�1��-�-�c�:�T�:�:��+�%��/�/��<�t�<��,�,�S�9�D�9�:�
:��,�,��+�+�C�8�4�8�8��	r%c�\�UR"U40UD6nURSS5nUS;aU$X0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z5Provides a default/role-agnostic presentation of obj.r�rr)rrirurpr�r�rK�_generate_default_suffix�r!rVrDrFrs     r"�_generate_default_presentation�.SpeechGenerator._generate_default_presentation�s����.�.�s�;�d�;���h�h�|�[�9���1�1��M��:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c��URS5SLa/$URSS5nUS;a/$/nURS5(aIX@R"U40UD6-
nU(a-[US[5(dX@R
"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R
"U40UD6-
nX@R"U40UD6-
nUS:XaX@R"U40UD6-
nU$)zDProvides the default/role-agnostic information to present after obj.rFr�rrr!r�)rir"r%rOrr�r(r/r2r�rw�r!rVrDrrFs     r"r�(SpeechGenerator._generate_default_suffix�s����8�8�$�%��.��I��h�h�|�[�9���1�1��I������
�+�+��-�-�c�:�T�:�:�F��j����U�;�;��.�.�s�;�d�;�;���1�1�#�>��>�>���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��,�,�S�9�D�9�9���,�,�S�9�D�9�9���7�7��D�t�D�D���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��0�0��=��=�=���+�%��-�-�c�:�T�:�:�F��
r%c�(�UR"U40UD6$)z0Generates speech for the accelerator-label role.�rrvs   r"�_generate_accelerator_label�+SpeechGenerator._generate_accelerator_label�����2�2�3�?�$�?�?r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z$Generates speech for the alert role.)rrprur�� _generate_accessible_static_textr.s    r"�_generate_alert�SpeechGenerator._generate_alert�s~���.�.�s�;�d�;���0�0��=��=�=���:�:�3�G�$�G�G���&�&�s�3�d�3�3���7�7��D�t�D�D���
r%c�(�UR"U40UD6$)z(Generates speech for the animation role.r!rvs   r"�_generate_animation�#SpeechGenerator._generate_animation�r$r%c�(�UR"U40UD6$)z*Generates speech for the application role.r!rvs   r"�_generate_application�%SpeechGenerator._generate_application�r$r%c�(�UR"U40UD6$)z$Generates speech for the arrow role.r!rvs   r"�_generate_arrow�SpeechGenerator._generate_arrow�r$r%c�2�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aU$X0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z&Generates speech for the article role.r�rr�rrurprir�r�rrs     r"�_generate_article�!SpeechGenerator._generate_article�s����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���h�h�|�[�9���1�1��M��&�&�s�3�d�3�3���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c� �/nX0R"U40UD6-
nU(dX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nUR
"U40UD6U-$)zDGenerates speech for the article role when the article is in a feed.)rur�rpr?rrr.s    r"�_generate_article_in_feed�)SpeechGenerator._generate_article_in_feed�s������:�:�3�G�$�G�G����.�.�s�;�d�;�;�F���4�4�S�A�D�A�A�F��1�1�#�>��>�>���/�/��<�t�<�<���,�,�S�9�D�9�F�B�Br%c�(�UR"U40UD6$)z$Generates speech for the audio role.r!rvs   r"�_generate_audio�SpeechGenerator._generate_audio�r$r%c�(�UR"U40UD6$)z+Generates speech for the autocomplete role.r!rvs   r"�_generate_autocomplete�&SpeechGenerator._generate_autocomplete�r$r%c��/nURS5U:waTX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nURSS5nUS;aUR"U40UD6=(d U$X0R"U40UD6-
nU$)z*Generates speech for the block-quote role.r�r�rr)rirrpr�r�r�r�rrs     r"�_generate_block_quote�%SpeechGenerator._generate_block_quote�s������8�8�J��3�&��3�3�C�@�4�@�@�F��4�4�S�A�D�A�A�F��*�*�3�7�$�7�7�F��2�2�3�?�$�?�?�F��*�*�3�7�$�7�7���h�h�|�[�9���1�1��)�)�#�6��6�@�&�@��/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z'Generates speech for the calendar role.r!rvs   r"�_generate_calendar�"SpeechGenerator._generate_calendar	r$r%c��UR"U40UD6nURSS5nURS5(a*X0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nURS5(a@X0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nOX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the canvas role.r�rr!�
rrir"r5r�rur�rpr_rdr?r�rrs     r"�_generate_canvas� SpeechGenerator._generate_canvas	�r���.�.�s�;�d�;���h�h�|�[�9�����
�+�+��5�5�c�B�T�B�B�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G���>�>�s�K�d�K�;��-�-�c�:�T�:�	<���&�&�s�3�d�3�3�����
�+�+��8�8��E��E�E�F��*�*�3�7�$�7�7�F��3�3�C�@�4�@�@�F��5�5�c�B�T�B�B�F��1�1�#�>��>�>���/�/��<�t�<�<���
r%c��/nUR"U40UD6(aX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nUR
"U40UD6U-$)z&Generates speech for the caption role.)r�r�rurprrr.s    r"�_generate_caption�!SpeechGenerator._generate_caption,	s������(�(��5��5��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F��0�0��=��=�=���/�/��<�t�<�<���,�,�S�9�D�9�F�B�Br%c�(�UR"U40UD6$)z$Generates speech for the chart role.r!rvs   r"�_generate_chart�SpeechGenerator._generate_chart8	r$r%c�P�URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z(Generates speech for the check-box role.r�rr)rirfrrur�rpr�r�rzr�rKrrs     r"�_generate_check_box�#SpeechGenerator._generate_check_box=	sU���h�h�|�[�9���1�1��/�/��<�t�<�<��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���.�.�s�;�d�;�;���/�/��<�t�<�<���&�&�s�3�d�3�3���.�.�s�;�d�;�;���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���URSS5nUS;aUR"U40UD6$UR"U40UD6nURS5(a*X@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z.Generates speech for the check-menu-item role.r�rrr!)
rirfrr"rr�rurpr�rKrDr?rrs     r"�_generate_check_menu_item�)SpeechGenerator._generate_check_menu_itemR	s����h�h�|�[�9���1�1��/�/��<�t�<�<��.�.�s�;�d�;�����
�+�+��.�.�s�;�d�;�;�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G���0�0��=��=�=���.�.�s�;�d�;�;���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nURS5(aX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z,Generates speech for the color-chooser role.r�rrr!)	rirrrurpr"rrDrrs     r"�_generate_color_chooser�'SpeechGenerator._generate_color_chooserk	s����h�h�|�[�9���1�1��'�'��4�t�4�4��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3�����
�+�+��8�8��E��E�E�F��5�5�c�B�T�B�B���/�/��<�t�<�<���
r%c��/nURSS5nUS:wa-UR"U40UD6(aX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nUR"U40UD6U-$)z,Generates speech for the column-header role.r�rr)rir�r�rurpr�r�r�r�rrrs     r"�_generate_column_header�'SpeechGenerator._generate_column_header~	s)�����h�h�|�[�9���)�#��(E�(E�c�(R�T�(R��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F��0�0��=��=�=���1�1�#�>��>�>���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���8�8��E��E�E���/�/��<�t�<�<���,�,�S�9�D�9�F�B�Br%c��/nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aX0R"U40UD6-
nU$X0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the combo-box role.r�rr)	rurprirqrr�r?rKrrs     r"�_generate_combo_box�#SpeechGenerator._generate_combo_box�	s�����:�:�3�G�$�G�G���0�0��=��=�=���h�h�|�[�9���1�1��3�3�C�@�4�@�@�F��M��&�&�s�3�d�3�3���&�&�s�3�d�3�3���1�1�#�>��>�>���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�2�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aU$X0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z&Generates speech for the comment role.r�rrr3rs     r"�_generate_comment�!SpeechGenerator._generate_comment�	s����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���h�h�|�[�9���1�1��M��&�&�s�3�d�3�3���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c��URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z/Generates speech for the content-deletion role.r�rr)rir�rrr�r�rrrs     r"�_generate_content_deletion�*SpeechGenerator._generate_content_deletion�	s����h�h�|�[�9���1�1��)�)�#�6��6�A��3�3�C�@�4�@�
A��.�.�s�;�d�;���2�2�3�?�$�?�?���&�&�s�3�d�3�3���-�-�c�:�T�:�:���&�&�s�3�d�3�3���0�0��=��=�=���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z9Generates speech for a role with a content-related error.)rr�r�rzrr.s    r"�_generate_content_error�'SpeechGenerator._generate_content_error�	s~���.�.�s�;�d�;���-�-�c�:�T�:�:���&�&�s�3�d�3�3���.�.�s�;�d�;�;���/�/��<�t�<�<���
r%c��URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z0Generates speech for the content-insertion role.r�rr)rir�r#rr�r�r&rrs     r"�_generate_content_insertion�+SpeechGenerator._generate_content_insertion�	s����h�h�|�[�9���1�1��)�)�#�6��6�B��4�4�S�A�D�A�
B��.�.�s�;�d�;���3�3�C�@�4�@�@���&�&�s�3�d�3�3���-�-�c�:�T�:�:���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z*Generates speech for the date-editor role.r!rvs   r"�_generate_date_editor�%SpeechGenerator._generate_date_editor�	r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z)Generates speech for the definition role.)rrpr�rr.s    r"�_generate_definition�$SpeechGenerator._generate_definition�	sf���.�.�s�;�d�;���0�0��=��=�=���-�-�c�:�T�:�:���/�/��<�t�<�<���
r%c�p�URSS5nUS;aUR"U40UD6nU(aU$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6=(d UR
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z/Generates speech for the description-list role.r�rr)rir�rrurRrpr�rrs     r"�_generate_description_list�*SpeechGenerator._generate_description_list�	s����h�h�|�[�9���1�1��+�+�C�8�4�8�F���
��.�.�s�;�d�;���:�:�3�G�$�G�G���4�4�S�A�D�A�;��-�-�c�:�T�:�	<���.�.�s�;�d�;�;���/�/��<�t�<�<���
r%c�b�URSS5nUS;a/$UR"U40UD6nX@R"U40UD6=(d UR"U40UD6-
n[R
"5R
S5(a�URSS5S-URSS5:aU$X@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)	z/Generates speech for the description-term role.r�rrrwr�rrr�)rirrur�rr�r�rpr�rBr?rrs     r"�_generate_description_term�*SpeechGenerator._generate_description_term�	sC���h�h�|�[�9���1�1��I��.�.�s�;�d�;���;�;�C�H�4�H�2��$�$�S�1�D�1�	3���'�'�)�5�5�6H�I�I��x�x���#�a�'�$�(�(�7�A�*>�>��
��4�4�S�A�D�A�A�F��*�*�3�7�$�7�7�F��5�5�c�B�T�B�B�F��*�*�3�7�$�7�7�F��5�5�c�B�T�B�B�F��/�/��<�t�<�<���
r%c��URSS5nUS;a/$UR"U40UD6nX@R"U40UD6=(d UR"U40UD6-
n[R
"5R
S5(ajURSS5S-URSS5:aU$X@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)	z0Generates speech for the description-value role.r�rrrwr�rrr�)rirrur�rr�r�rpr�r?rrs     r"�_generate_description_value�+SpeechGenerator._generate_description_value
s���h�h�|�[�9���1�1��I��.�.�s�;�d�;���;�;�C�H�4�H�2��$�$�S�1�D�1�	3���'�'�)�5�5�6H�I�I��x�x���#�a�'�$�(�(�7�A�*>�>��
��4�4�S�A�D�A�A�F��*�*�3�7�$�7�7�F��5�5�c�B�T�B�B�F��/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z,Generates speech for the desktop-frame role.r!rvs   r"�_generate_desktop_frame�'SpeechGenerator._generate_desktop_frame+
r$r%c�(�UR"U40UD6$)z+Generates speech for the desktop-icon role.)�_generate_iconrvs   r"�_generate_desktop_icon�&SpeechGenerator._generate_desktop_icon0
����"�"�3�/�$�/�/r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z#Generates speech for the dial role.r�rr)rirrrurpr�rr�r�rKrrs     r"�_generate_dial�SpeechGenerator._generate_dial5
s%���h�h�|�[�9���1�1��'�'��4�t�4�4��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3���/�/��<�t�<�<���4�4�S�A�D�A�A���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�<�UR"U40UD6nURSS5nUS:waUR"U40UD6nU(aU$X0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the dialog role.r�rr)rri�)_generate_text_expanding_embedded_objectsrurpr&rrs     r"�_generate_dialog� SpeechGenerator._generate_dialogH
s����.�.�s�;�d�;���h�h�|�[�9���)�#��C�C�C�P�4�P�F���
��:�:�3�G�$�G�G���0�0��=��=�=���7�7��D�t�D�D���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z-Generates speech for the directory_pane role.r!rvs   r"�_generate_directory_pane�(SpeechGenerator._generate_directory_paneX
r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nU$)z,Generates speech for document-related roles.�rrur�rpr�rr.s    r"�_generate_document�"SpeechGenerator._generate_document]
����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z-Generates speech for the document-email role.�r�rvs   r"�_generate_document_email�(SpeechGenerator._generate_document_emailh
����&�&�s�3�d�3�3r%c�(�UR"U40UD6$)z-Generates speech for the document-frame role.r�rvs   r"�_generate_document_frame�(SpeechGenerator._generate_document_framem
r�r%c�(�UR"U40UD6$)z4Generates speech for the document-presentation role.r�rvs   r"�_generate_document_presentation�/SpeechGenerator._generate_document_presentationr
r�r%c�(�UR"U40UD6$)z3Generates speech for the document-spreadsheet role.r�rvs   r"�_generate_document_spreadsheet�.SpeechGenerator._generate_document_spreadsheetw
r�r%c�(�UR"U40UD6$)z,Generates speech for the document-text role.r�rvs   r"�_generate_document_text�'SpeechGenerator._generate_document_text|
r�r%c�(�UR"U40UD6$)z+Generates speech for the document-web role.r�rvs   r"�_generate_document_web�&SpeechGenerator._generate_document_web�
r�r%c�f�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aUR"U40UD6=(d U$X0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$�z+Generates speech for the dpub section role.r�rr�rrurprir�r�r�rrs     r"�_generate_dpub_landmark�'SpeechGenerator._generate_dpub_landmark�
�����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���h�h�|�[�9���1�1��)�)�#�6��6�@�&�@��&�&�s�3�d�3�3���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c�f�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aUR"U40UD6=(d U$X0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$r�r�rs     r"�_generate_dpub_section�&SpeechGenerator._generate_dpub_section�
r�r%c�(�UR"U40UD6$)z+Generates speech for the drawing-area role.r!rvs   r"�_generate_drawing_area�&SpeechGenerator._generate_drawing_area�
r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z&Generates speech for the editbar role.)
rrur�r�rprr�rrKrr.s    r"�_generate_editbar�!SpeechGenerator._generate_editbar�
s&���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3���0�0��=��=�=���&�&�s�3�d�3�3���1�1�#�>��>�>���*�*�3�7�$�7�7���/�/��<�t�<�<���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�b�UR"U40UD6nX0R"U40UD6-
nURSS5nUS:wa/X0R"U40UD6=(d UR"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the embedded role.r�rr)rrurir�r&rpr�rrs     r"�_generate_embedded�"SpeechGenerator._generate_embedded�
s����.�.�s�;�d�;���:�:�3�G�$�G�G���h�h�|�[�9���)�#��E�E�c�R�T�R�F��8�8��E��E�
G�F�	�0�0��=��=�=���0�0��=��=�=���/�/��<�t�<�<���
r%c�.�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6=(d UR
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z$Generates speech for the entry role.)rrur�rpr�r�rr�r�rzrKrr.s    r"�_generate_entry�SpeechGenerator._generate_entry�
sB���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���+�+�C�8�4�8�G��9�9�#�F��F�	H���/�/��<�t�<�<���/�/��<�t�<�<���&�&�s�3�d�3�3���.�.�s�;�d�;�;���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�J�UR"U40UD6nURSS5nUS;aX0R"U40UD6-
nU(aU$X0R"U40UD6-
nX0R"U40UD6=(d UR
"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the feed role.r�rr)rrir�rurRrprrs     r"�_generate_feed�SpeechGenerator._generate_feed�
s����.�.�s�;�d�;���h�h�|�[�9���1�1��,�,�S�9�D�9�9�F���
��:�:�3�G�$�G�G���4�4�S�A�D�A�;��-�-�c�:�T�:�	<���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z+Generates speech for the file-chooser role.�r�rvs   r"�_generate_file_chooser�&SpeechGenerator._generate_file_chooser�
����$�$�S�1�D�1�1r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the filler role.�rrurprr.s    r"�_generate_filler� SpeechGenerator._generate_filler�
�f���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z+Generates speech for the font-chooser role.r�rvs   r"�_generate_font_chooser�&SpeechGenerator._generate_font_chooser�
r�r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the footer role.�rrpr�rr.s    r"�_generate_footer� SpeechGenerator._generate_footer�f���.�.�s�;�d�;���0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the footnote role.r�r.s    r"�_generate_footnote�"SpeechGenerator._generate_footnote
r�r%c��URSS5nUS;aAUR"U40UD6=(d' UR"U40UD6UR"U40UD6-$UR"U40UD6nUR
"U40UD6(aX@R"U40UD6-
nOX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z#Generates speech for the form role.r�rr)rir�rurprr�r�rrs     r"�_generate_form�SpeechGenerator._generate_forms����h�h�|�[�9���1�1��)�)�#�6��6�A��<�<�S�I�D�I��2�2�3�?�$�?�@�
A��.�.�s�;�d�;���(�(��5��5��.�.�s�;�d�;�;�F��>�>�s�K�d�K�K�F��0�0��=��=�=���/�/��<�t�<�<���
r%c�*�URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nU$)z$Generates speech for the frame role.r�rr)rirurrprhrrs     r"�_generate_frame�SpeechGenerator._generate_frame%s����h�h�|�[�9���1�1��;�;�C�H�4�H�H��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���7�7��D�t�D�D���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z)Generates speech for the glass-pane role.r!rvs   r"�_generate_glass_pane�$SpeechGenerator._generate_glass_pane3r$r%c��UR"U40UD6nURSS5nUS;aX0R"U40UD6-
nU(aU$UR"U40UD6(aX0R"U40UD6-
nU(dX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the grouping role.r�rr�	rrir�r�r�rur&rprrs     r"�_generate_grouping�"SpeechGenerator._generate_grouping8s����.�.�s�;�d�;���h�h�|�[�9���1�1��,�,�S�9�D�9�9�F���
��(�(��5��5��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F��7�7��D�t�D�D���0�0��=��=�=���/�/��<�t�<�<���
r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the header role.r�r.s    r"�_generate_header� SpeechGenerator._generate_headerLr�r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z&Generates speech for the heading role.)rr�rprqrr.s    r"�_generate_heading�!SpeechGenerator._generate_headingUs~���.�.�s�;�d�;���-�-�c�:�T�:�:���0�0��=��=�=���/�/��<�t�<�<���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z-Generates speech for the html-container role.r!rvs   r"�_generate_html_container�(SpeechGenerator._generate_html_container_r$r%c��UR"U40UD6nURSS5nURS5(a*X0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nURS5(a@X0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nOX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the icon role.r�rr!rFrs     r"r~�SpeechGenerator._generate_icondrIr%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z$Generates speech for the image role.)rrurpr,rr.s    r"�_generate_image�SpeechGenerator._generate_image}s~���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���5�5�c�B�T�B�B���/�/��<�t�<�<���
r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the image-map role.r�r.s    r"�_generate_image_map�#SpeechGenerator._generate_image_map�r�r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the info-bar role.)rrurpr&rr.s    r"�_generate_info_bar�"SpeechGenerator._generate_info_bar�s~���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���7�7��D�t�D�D���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z2Generates speech for the input-method-window role.r!rvs   r"�_generate_input_method_window�-SpeechGenerator._generate_input_method_window�r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z-Generates speech for the internal-frame role.r�r.s    r"�_generate_internal_frame�(SpeechGenerator._generate_internal_frame�r�r%c�&�UR"U40UD6nX0R"U40UD6-
nX0RU5=(d URU5-
nX0R	U5-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z$Generates speech for the label role.)rr�r�r\rrprr.s    r"�_generate_label�SpeechGenerator._generate_label�s����.�.�s�;�d�;���1�1�#�>��>�>���.�.�s�3�Z�t�7U�7U�VY�7Z�[���/�/��4�4���0�0��=��=�=���/�/��<�t�<�<���
r%c�*�URSS5nUS;aFUR"U40UD6nU(d*X@R"U40UD6-
nX@R"U40UD6-
nU$UR"U40UD6nURS5nU(aJX:waE[
R"XQ5(d*X@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z'Generates speech for the landmark role.r�rrr�)
rir�rprurr�is_ancestorr�r�r)r!rVrDrrFr�s      r"�_generate_landmark�"SpeechGenerator._generate_landmark�s"���h�h�|�[�9���1�1��+�+�C�8�4�8�F���8�8��E��E�E���B�B�3�O�$�O�O���M��.�.�s�;�d�;���H�H�Z�(�	���)�(�2F�2F�y�2V�2V��4�4�S�A�D�A�A�F��>�>�s�K�d�K�K�F��*�*�3�7�$�7�7���&�&�s�3�d�3�3���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUR
S5(dU$X0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z+Generates speech for the layered-pane role.r�rr!)rrurpr�rRrir"r_r�rdrrs     r"�_generate_layered_pane�&SpeechGenerator._generate_layered_pane�s���.�.�s�;�d�;���;�;�C�H�4�H�;��-�-�c�:�T�:�	<���0�0��=��=�=���3�3�C�@�4�@�@���h�h�|�[�9���#�#�J�/�/��M��4�4�S�A�D�A�A���&�&�s�3�d�3�3���/�/��<�t�<�<���/�/��<�t�<�<���
r%c��URSS5nUS;aUR"U40UD6$/nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z(Generates speech for the level-bar role.r�rr)rirrurpr�r�rKrrs     r"�_generate_level_bar�#SpeechGenerator._generate_level_bar�s����h�h�|�[�9���1�1��'�'��4�t�4�4����:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���UR"U40UD6nURSS5nURS5(akX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$X0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the link role.r�rr!)rrir"rdr�rqr�rur�rprqrKrDrrs     r"�_generate_link�SpeechGenerator._generate_link�s����.�.�s�;�d�;���h�h�|�[�9�����
�+�+��.�.�s�;�d�;�;�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G�F��*�*�3�7�$�7�7�F��3�3�C�@�4�@�@�F��M��;�;�C�H�4�H�8��*�*�3�7�$�7�	9���0�0��=��=�=���/�/��<�t�<�<���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���/�/��<�t�<�<���
r%c�t�UR"U40UD6nURSS5nUS;aX0R"U40UD6-
nU(aU$X0R"U40UD6-
nX0R"U40UD6=(d UR
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the list role.r�rr)rrir�rurRrpr�rrs     r"�_generate_list�SpeechGenerator._generate_lists����.�.�s�;�d�;���h�h�|�[�9���1�1��,�,�S�9�D�9�9�F���
��:�:�3�G�$�G�G���4�4�S�A�D�A�;��-�-�c�:�T�:�	<���.�.�s�;�d�;�;���/�/��<�t�<�<���
r%c��UR"U40UD6nURSS5nX0R"U40UD6-
nUS;a*X0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the list-box role.r�rr)	rriru�_generate_focused_itemr�r}rRrprrs     r"�_generate_list_box�"SpeechGenerator._generate_list_boxs����.�.�s�;�d�;���h�h�|�[�9���:�:�3�G�$�G�G���5�5��1�1�#�>��>�>�F��*�*�3�7�$�7�7�F��6�6�s�C�d�C�C���4�4�S�A�D�A�;��-�-�c�:�T�:�	<���/�/��<�t�<�<���
r%c�@�UR"U40UD6nURSS5nUS;aAX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$X0R
"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
n[R"U5(aX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the list-item role.r�rr)rrirnr�rqr�rurpr�r�is_focusable�_generate_descendantsr?rrs     r"�_generate_list_item�#SpeechGenerator._generate_list_item&s����.�.�s�;�d�;���h�h�|�[�9���1�1��?�?��L�t�L�L�F��*�*�3�7�$�7�7�F��3�3�C�@�4�@�@�F��M��+�+�C�8�4�8�B��4�4�S�A�D�A�	C���0�0��=��=�=���;�;�C�H�4�H�H���&�&�s�3�d�3�3���1�1�#�>��>�>���&�&�s�3�d�3�3���/�/��<�t�<�<���#�#�C�(�(��0�0��=��=�=�F��&�&�s�3�d�3�3���1�1�#�>��>�>���&�&�s�3�d�3�3���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z"Generates speech for the log role.r!rvs   r"�
_generate_log�SpeechGenerator._generate_logAr$r%c��URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z#Generates speech for the mark role.r�rr)rir�r,rr�r�r/rrs     r"�_generate_mark�SpeechGenerator._generate_markFs����h�h�|�[�9���1�1��)�)�#�6��6�c�$�:V�:V�WZ�:c�^b�:c�c��.�.�s�;�d�;���.�.�s�;�d�;�;���&�&�s�3�d�3�3���-�-�c�:�T�:�:���&�&�s�3�d�3�3���,�,�S�9�D�9�9���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z&Generates speech for the marquee role.r!rvs   r"�_generate_marquee�!SpeechGenerator._generate_marqueeVr$r%c�(�UR"U40UD6$)z#Generates speech for the math role.)r�rvs   r"�_generate_math�SpeechGenerator._generate_math[s���+�+�C�8�4�8�8r%c�^�/nX0R"U40UD6-
nX0R"U40UD6-
nU$)z,Generates speech for the math-enclosed role.)r�r�r.s    r"�_generate_math_enclosed�'SpeechGenerator._generate_math_enclosedas>�����.�.�s�;�d�;�;���9�9�#�F��F�F���
r%c���/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z*Generates speech for the math-fenced role.)r6r�r�r<r.s    r"�_generate_math_fenced�%SpeechGenerator._generate_math_fencedjs���
���5�5�c�B�T�B�B���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���3�3�C�@�4�@�@���
r%c�Z�/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z,Generates speech for the math-fraction role.)rBr�r�r�r�rFr.s    r"�_generate_math_fraction�'SpeechGenerator._generate_math_fractionws���
���7�7��D�t�D�D���&�&�s�3�d�3�3���8�8��E��E�E���3�3�C�@�4�@�@���:�:�3�G�$�G�G���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z/Generates speech for the math-multiscript role.)r�r�rrr.s    r"�_generate_math_multiscript�*SpeechGenerator._generate_math_multiscript�s���
���1�1�#�>��>�>���&�&�s�3�d�3�3���7�7��D�t�D�D���&�&�s�3�d�3�3���8�8��E��E�E���&�&�s�3�d�3�3���
r%c���/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the math-root role.)rNr�r�rRr.s    r"�_generate_math_root�#SpeechGenerator._generate_math_root�s���
���3�3�C�@�4�@�@���/�/��<�t�<�<���&�&�s�3�d�3�3���1�1�#�>��>�>���&�&�s�3�d�3�3���
r%c�F�[R[R"U5S--/nX0R"[
4SU0UD6-
nX0R"U40UD6-
n[R"U5H+nX0RU5-
nX0R"U40UD6-
nM- U$)z'Generates speech for the math-row role.rrV)	r
r�rr[r}r�r�rLr�)r!rVrDrFrs     r"�_generate_math_row�"SpeechGenerator._generate_math_row�s����$�$��(D�(D�S�(I�A�(M�N�O���:�:�f�6�#�6��6�7���&�&�s�3�d�3�3���+�+�C�0�E��2�2�5�9�9�F��*�*�5�9�D�9�9�F�1��
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z3Generates speech for the math script subsuper role.)r�r�r�r�r.s    r"�_generate_math_script_subsuper�.SpeechGenerator._generate_math_script_subsuper�s���
���1�1�#�>��>�>���&�&�s�3�d�3�3���6�6�s�C�d�C�C���&�&�s�3�d�3�3���8�8��E��E�E���&�&�s�3�d�3�3���
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z4Generates speech for the math script underover role.)r�r�r�r�r.s    r"�_generate_math_script_underover�/SpeechGenerator._generate_math_script_underover�s���
���1�1�#�>��>�>���&�&�s�3�d�3�3���8�8��E��E�E���&�&�s�3�d�3�3���7�7��D�t�D�D���&�&�s�3�d�3�3���
r%c���/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z)Generates speech for the math-table role.)r^r�rrcr.s    r"�_generate_math_table�$SpeechGenerator._generate_math_table�s���
���4�4�S�A�D�A�A���&�&�s�3�d�3�3���0�0��=��=�=���2�2�3�?�$�?�?���&�&�s�3�d�3�3���
r%c�6�UR"U40UD6nURSS5nUS;a,X0R"U40UD6-
nX0R"U40UD6-
nU$UR	S5(aDX0R
"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the menu role.r�rrr!)rrirurpr"rr5r�rqr�rKrDr?rrs     r"�_generate_menu�SpeechGenerator._generate_menu�s����.�.�s�;�d�;���h�h�|�[�9���1�1��>�>�s�K�d�K�K�F��4�4�S�A�D�A�A�F��M����
�+�+��/�/��<�t�<�@��2�2�3�?�$�?�
A�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G���0�0��=��=�=���/�/��<�t�<�<���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the menu-bar role.r�r.s    r"�_generate_menu_bar�"SpeechGenerator._generate_menu_bar�r�r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nURS5(a*X@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z(Generates speech for the menu-item role.r�rrr!)rirqrr"rr�rurprnr�rKrDr?rrs     r"�_generate_menu_item�#SpeechGenerator._generate_menu_item�s����h�h�|�[�9���1�1��0�0��=��=�=��.�.�s�;�d�;�����
�+�+��.�.�s�;�d�;�;�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G���0�0��=��=�=���;�;�C�H�4�H�H���/�/��<�t�<�<���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R
"U40UD6-
nU$)z+Generates speech for the notification role.)rprur�r�r&rr.s    r"�_generate_notification�&SpeechGenerator._generate_notification
s������0�0��=��=�=���:�:�3�G�$�G�G���&�&�s�3�d�3�3���A�A�#�N��N�B��4�4�S�A�D�A�	C���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z*Generates speech for the option-pane role.r!rvs   r"�_generate_option_pane�%SpeechGenerator._generate_option_pane"
r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nU$)z#Generates speech for the page role.r�r.s    r"�_generate_page�SpeechGenerator._generate_page'
r�r%c�*�URSS5nUS:Xa*UR"U40UD6nX@R"U40UD6-
nU$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z'Generates speech for the page-tab role.r�rr�)
rirurprrqr�r�rKr?rrs     r"�_generate_page_tab�"SpeechGenerator._generate_page_tab2
s@���h�h�|�[�9���*�$��=�=�c�J�T�J�F��4�4�S�A�D�A�A�F��M��.�.�s�;�d�;���:�:�3�G�$�G�G���/�/��<�t�<�<���0�0��=��=�=���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z,Generates speech for the page-tab-list role.r!rvs   r"�_generate_page_tab_list�'SpeechGenerator._generate_page_tab_listG
r$r%c��UR"U40UD6nURSS5nUS;aX0R"U40UD6-
nU(aU$UR"U40UD6(aX0R"U40UD6-
nU(dX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z$Generates speech for the panel role.r�rrr�rs     r"�_generate_panel�SpeechGenerator._generate_panelL
s����.�.�s�;�d�;���h�h�|�[�9���1�1��,�,�S�9�D�9�9�F���
��(�(��5��5��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F�	�7�7��D�t�D�D���0�0��=��=�=���/�/��<�t�<�<���
r%c�|�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the paragraph role.)	rrur�rprr�r�rKrr.s    r"�_generate_paragraph�#SpeechGenerator._generate_paragrapha
s����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���1�1�#�>��>�>���*�*�3�7�$�7�7���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z,Generates speech for the password-text role.)
rrurpr�rr�r�rzrKrr.s    r"�_generate_password_text�'SpeechGenerator._generate_password_texto
s���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���/�/��<�t�<�<���&�&�s�3�d�3�3���.�.�s�;�d�;�;���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z)Generates speech for the popup-menu role.)r=rvs   r"�_generate_popup_menu�$SpeechGenerator._generate_popup_menu
r�r%c��/nX0R"U40UD6-
nURSS5nUS:waX0R"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R
"U40UD6-
nU$)z+Generates speech for the progress-bar role.r�rr)r�rirur�rprrs     r"�_generate_progress_bar�&SpeechGenerator._generate_progress_bar�
s������3�3�C�@�4�@�@���h�h�|�[�9���)�#��>�>�s�K�d�K�K�F��4�4�S�A�D�A�;��-�-�c�:�T�:�	<���/�/��<�t�<�<���
r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z*Generates speech for the push-button role.r�rr)
rirqrrurpr�r�rKrDrrs     r"�_generate_push_button�%SpeechGenerator._generate_push_button�
s%���h�h�|�[�9���1�1��0�0��=��=�=��.�.�s�;�d�;���:�:�3�G�$�G�G���/�/��<�t�<�<���0�0��=��=�=���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z/Generates speech for the push-button-menu role.)rdrvs   r"�_generate_push_button_menu�*SpeechGenerator._generate_push_button_menu�
s���)�)�#�6��6�6r%c���URSS5nUS;aUR"U40UD6$UR"U40UD6nURS5(aX@R"U40UD6-
nOX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
n[R"U5(dU$X@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z+Generates speech for the radio-button role.r�rrr!)rir�rr"r9r<r�rurpr�
is_focusedr�rKr?rrs     r"�_generate_radio_button�&SpeechGenerator._generate_radio_button�
s����h�h�|�[�9���1�1��A�A�#�N��N�N��.�.�s�;�d�;�����
�+�+��7�7��D�t�D�D�F��;�;�C�H�4�H�H�F��&�&�s�3�d�3�3���:�:�3�G�$�G�G���@�@��M��M�M���0�0��=��=�=���%�%�c�*�*��M��0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c���URSS5nUS;aUR"U40UD6$UR"U40UD6nURS5(a*X@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z.Generates speech for the radio-menu-item role.r�rrr!)
rir�rr"rr�rurpr�rKrDr?rrs     r"�_generate_radio_menu_item�)SpeechGenerator._generate_radio_menu_item�
s����h�h�|�[�9���1�1��A�A�#�N��N�N��.�.�s�;�d�;�����
�+�+��.�.�s�;�d�;�;�F��*�*�3�7�$�7�7�F��:�:�3�G�$�G�G���0�0��=��=�=���@�@��M��M�M���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z%Generates speech for the rating role.r!rvs   r"�_generate_rating� SpeechGenerator._generate_rating�
r$r%c���UR"U40UD6nURS5nU(aJX:waE[R"XA5(d*X0R"U40UD6-
nX0R
"U40UD6-
nURSS5nUS;aUR"U40UD6=(d U$X0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z.Generates speech for the region landmark role.r�r�rr)
rrirr�rurpr�r�r�r)r!rVrDrFr�rs      r"�_generate_region� SpeechGenerator._generate_region�
s����.�.�s�;�d�;���H�H�Z�(�	���)�(�2F�2F�y�2V�2V��>�>�s�K�d�K�K�F��4�4�S�A�D�A�A�F��h�h�|�[�9���1�1��)�)�#�6��6�@�&�@��&�&�s�3�d�3�3���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z(Generates speech for the root-pane role.r!rvs   r"�_generate_root_pane�#SpeechGenerator._generate_root_pane�
r$r%c��UR"U40UD6nURSS5nUS:wa-UR"U40UD6(aX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z)Generates speech for the row-header role.r�rr)rrir�r�rurpr�r�r�r�rrs     r"�_generate_row_header�$SpeechGenerator._generate_row_header�
s#���.�.�s�;�d�;���h�h�|�[�9���)�#��(E�(E�c�(R�T�(R��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F��0�0��=��=�=���1�1�#�>��>�>���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���8�8��E��E�E���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z$Generates speech for the ruler role.r!rvs   r"�_generate_ruler�SpeechGenerator._generate_rulerr$r%c���URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z)Generates speech for the scroll-bar role.r�rr�
rirrrurprr�r�rKrrs     r"�_generate_scroll_bar�$SpeechGenerator._generate_scroll_bar�
���h�h�|�[�9���1�1��'�'��4�t�4�4��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3���4�4�S�A�D�A�A���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z*Generates speech for the scroll-pane role.)rrurpr�rr.s    r"�_generate_scroll_pane�%SpeechGenerator._generate_scroll_pane#s~���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c��URSS5nUR"U40UD6n[R"U5(d[R"U5(a*X@R
"U40UD6-
nX@R"U40UD6-
nUS:XaU$X@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z&Generates speech for the section role.r�rr�)rirrr�has_explicit_namerur�rr�rprKrrs     r"�_generate_section�!SpeechGenerator._generate_section-s���h�h�|�[�9���.�.�s�;�d�;���#�#�C�(�(�K�,I�,I�#�,N�,N��>�>�s�K�d�K�K�F��*�*�3�7�$�7�7�F��*�$��M��1�1�#�>��>�>���*�*�3�7�$�7�7���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aU$X0R"U40UD6=(d- UR
"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the separator role.r�rr)
rrpr�rirur�rr�rKrrs     r"�_generate_separator�#SpeechGenerator._generate_separator@s���.�.�s�;�d�;���0�0��=��=�=���0�0��=��=�=���h�h�|�[�9���1�1��M��;�;�C�H�4�H�1��*�*�3�7�$�7�1��#�#�C�0�4�0�	2��	�&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z%Generates speech for the slider role.r�rrr�rs     r"�_generate_slider� SpeechGenerator._generate_sliderSr�r%c��URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6U--
nX@R
"U40UD6-
nX@R"U40UD6=(d UR"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z*Generates speech for the spin-button role.r�rr)rir�rrrurpr�r�rzr�rKrrs     r"�_generate_spin_button�%SpeechGenerator._generate_spin_buttonesp���h�h�|�[�9���1�1��.�.�s�;�d�;�`�t�?S�?S�TW�?`�[_�?`�`��.�.�s�;�d�;���:�:�3�G�$�G�&�P�P���0�0��=��=�=���.�.�s�;�d�;�`�t�?S�?S�TW�?`�[_�?`�a���/�/��<�t�<�<���&�&�s�3�d�3�3���.�.�s�;�d�;�;���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���URSS5nUS:XaUR"U40UD6$US:Xa/$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z)Generates speech for the split-pane role.r�rrr�r�rs     r"�_generate_split_pane�$SpeechGenerator._generate_split_paneys���h�h�|�[�9���)�#��'�'��4�t�4�4��*�$��I��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���&�&�s�3�d�3�3���4�4�S�A�D�A�A���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c���UR"U40UD6nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z%Generates speech for the static role.)rr�r\rprr.s    r"�_generate_static� SpeechGenerator._generate_static�s����.�.�s�;�d�;���.�.�s�;�d�;�;��-�-�c�:�T�:�	<���0�0��=��=�=���/�/��<�t�<�<���
r%c�2�UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nURSS5nUS;aU$X0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU$)z)Generates speech for the status-bar role.r�rr)rrurprir�rrrs     r"�_generate_status_bar�$SpeechGenerator._generate_status_bar�s����.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���h�h�|�[�9���1�1��M��&�&�s�3�d�3�3���,�,�S�9�D�9�9���/�/��<�t�<�<���
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z(Generates speech for the subscript role.�rpr�rr.s    r"�_generate_subscript�#SpeechGenerator._generate_subscript��V�����0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c�
�URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R
"U40UD6-
nU$)z)Generates speech for the suggestion role.r�rr)rir�rprr�rrs     r"�_generate_suggestion�$SpeechGenerator._generate_suggestion�s����h�h�|�[�9���1�1��)�)�#�6��6�?��1�1�#�>��>�
?��.�.�s�;�d�;���-�-�c�:�T�:�:���/�/��<�t�<�<���
r%c��/nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z*Generates speech for the superscript role.r�r.s    r"�_generate_superscript�%SpeechGenerator._generate_superscript�r�r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z%Generates speech for the switch role.r�rr)	rirkrrurpr�r�rKrrs     r"�_generate_switch� SpeechGenerator._generate_switch�s����h�h�|�[�9���1�1��:�:�3�G�$�G�G��.�.�s�;�d�;���:�:�3�G�$�G�G���9�9�#�F��F�F���0�0��=��=�=���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�<�URSS5nUS;aUR"U40UD6nU(aU$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nU$)z$Generates speech for the table role.r�rr)rir�rrur�r�rrs     r"�_generate_table�SpeechGenerator._generate_table�s����h�h�|�[�9���1�1��+�+�C�8�4�8�F���
��.�.�s�;�d�;���:�:�3�G�$�G�G���&�&�s�3�d�3�3���+�+�C�8�4�8�8���/�/��<�t�<�<���
r%c��UR"U40UD6nUR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6=(d- UR
"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nX0R "U40UD6-
nX0R""U40UD6-
nU$)z)Generates speech for the table-cell role.r�)rr�r�� _generate_state_checked_for_cell�/_generate_real_active_descendant_displayed_textrur�rqrRr�rOrr�rzr�r�r�rr.s    r"�_generate_table_cell�$SpeechGenerator._generate_table_cell�s����.�.�s�;�d�;���5�5�c�B�T�B���9�9�#�F��F�F���7�7��D�t�D�D���G�G��T�t�T�H��7�7��D�t�D�H��:�:�3�G�$�G�	I��	�/�/��<�t�<�<���3�3�C�@�4�@�@���/�/��<�t�<�<���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��.�.�s�;�d�;�;���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��0�0��=��=�=���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��0�0��=��=�=���1�1�#�>��>�>���/�/��<�t�<�<���
r%c�b�URSS5nUS:Xa�UR"U40UD6nU(a-[US[5(dX@R"U40UD6-
nX@R
"U40UD6-
nU(a-[US[5(dX@R"U40UD6-
nX@R"U40UD6-
nU$US:Xa�UR"U40UD6nX@R"U40UD6-
nU(a-[US[5(dX@R"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R"U40UD6-
nX@R"U40UD6-
nU$URS5(GaUR"U40UD6nU(a-[US[5(dX@R"U40UD6-
nUR"U40UD6nU(a-[US[5(dX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R"U40UD6-
nX@R "U40UD6-
nU$UR"U40UD6nU$)zCGenerates speech for the table-cell role in the context of its row.r�rrr�r�r!)rir�rOrr�rqrRr�r�r�r�r"rzrZrp�_generate_table_cell_rowr�rs     r"�_generate_table_cell_in_row�+SpeechGenerator._generate_table_cell_in_rows����h�h�|�[�9���)�#��:�:�3�G�$�G�F��j����U�;�;��.�.�s�;�d�;�;���3�3�C�@�4�@�@�F��j����U�;�;��.�.�s�;�d�;�;���7�7��D�t�D�D�F��M��*�$��9�9�#�F��F�F��=�=�c�J�T�J�J�F��j����U�;�;��.�.�s�;�d�;�;���9�9�#�F��F�F�F��j����U�;�;��.�.�s�;�d�;�;���<�<�S�I�D�I�I�F��M����
�+�+��.�.�s�;�d�;�F��j����U�;�;��.�.�s�;�d�;�;���1�1�#�>��>�F��j����U�;�;��.�.�s�;�d�;�;���4�4�S�A�D�A�A�F��3�3�C�@�4�@�@�F��j����U�;�;��.�.�s�;�d�;�;���8�8��E��E�E�F��M��.�.�s�;�d�;���
r%c��UR"U40UD6nURSS5nUS:wa-UR"U40UD6(aX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z2Generates speech for the table-column-header role.r�rrr��
rrir�r�rurpr�rOrr�r�r�rrs     r"�_generate_table_column_header�-SpeechGenerator._generate_table_column_header,�I���.�.�s�;�d�;���h�h�|�[�9���)�#��(E�(E�c�(R�T�(R��.�.�s�;�d�;�;�F���>�>�s�K�d�K�K�F��0�0��=��=�=���1�1�#�>��>�>���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��5�5�c�B�T�B�B���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��8�8��E��E�E���/�/��<�t�<�<���
r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nX@R"U40UD6=(d UR"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z(Generates speech for the table-row role.r�rr)rirqrrur�r�r?rrs     r"�_generate_table_row�#SpeechGenerator._generate_table_row@s����h�h�|�[�9���1�1��0�0��=��=�=��.�.�s�;�d�;���;�;�C�H�4�H�8��*�*�3�7�$�7�	9���&�&�s�3�d�3�3���/�/��<�t�<�<���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c��UR"U40UD6nURSS5nUS:wa-UR"U40UD6(aX0R"U40UD6-
nU(dX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nU(a-[US[5(dX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z/Generates speech for the table-row-header role.r�rrr�r�rs     r"�_generate_table_row_header�*SpeechGenerator._generate_table_row_headerQr�r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z0Generates speech for the tearoff-menu-item role.)
rrurprqr�r�rKrDr?rr.s    r"�_generate_tearoff_menu_item�+SpeechGenerator._generate_tearoff_menu_itemes&���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���/�/��<�t�<�<���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���&�&�s�3�d�3�3���5�5�c�B�T�B�B���&�&�s�3�d�3�3���1�1�#�>��>�>���/�/��<�t�<�<���
r%c�N�UR"U40UD6nURSS5nURS5(dX0R"U40UD6-$X0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z'Generates speech for the terminal role.r�rr!)rrir"r�rurprrs     r"�_generate_terminal�"SpeechGenerator._generate_terminalvs����.�.�s�;�d�;���h�h�|�[�9���#�#�J�/�/��4�4�S�A�D�A�A�A��:�:�3�G�$�G�G���0�0��=��=�=���*�*�3�7�$�7�7���/�/��<�t�<�<���
r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R
"U40UD6-
nX0R"U40UD6=(d UR"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nX0R"U40UD6-
nU$)z#Generates speech for the text role.)rrur�rpr�rr�r�rrKrr.s    r"�_generate_text�SpeechGenerator._generate_text�s*���.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=���&�&�s�3�d�3�3���1�1�#�>��>�>���+�+�C�8�4�8�G��9�9�#�F��F�	H���/�/��<�t�<�<���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z$Generates speech for the timer role.r!rvs   r"�_generate_timer�SpeechGenerator._generate_timer�r$r%c�(�UR"U40UD6$)z(Generates speech for the title-bar role.r!rvs   r"�_generate_title_bar�#SpeechGenerator._generate_title_bar�r$r%c��URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6=(d UR"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z,Generates speech for the toggle-button role.r�rr)
rirqr�rrurpr�r�rKrrs     r"�_generate_toggle_button�'SpeechGenerator._generate_toggle_button�s+���h�h�|�[�9���1�1��0�0��=��=�=��/�/��<�t�<�
=��.�.�s�;�d�;���:�:�3�G�$�G�G���0�0��=��=�=���0�0��=��=�=��/�/��<�t�<�	>���0�0��=��=�=���&�&�s�3�d�3�3���2�2�3�?�$�?�?���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z'Generates speech for the tool-bar role.r!rvs   r"�_generate_tool_bar�"SpeechGenerator._generate_tool_bar�r$r%c�4�URSS5nUS;a-UR"U40UD6=(d UR"U40UD6$UR"U40UD6nX@R"U40UD6-
nX@R"U40UD6-
nX@R
"U40UD6-
nU$)z'Generates speech for the tool-tip role.r�rr)rir�rprrurrs     r"�_generate_tool_tip�"SpeechGenerator._generate_tool_tip�s����h�h�|�[�9���1�1��)�)�#�6��6�?��1�1�#�>��>�
?��.�.�s�;�d�;���0�0��=��=�=���:�:�3�G�$�G�G���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z#Generates speech for the tree role.r!rvs   r"�_generate_tree�SpeechGenerator._generate_tree�r$r%c��URSS5nUS;aUR"U40UD6$UR"U40UD6nURS5(a*X@R"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6=(d UR"U40UD6-
nX@R
"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R
"U40UD6-
nX@R"U40UD6-
nU(a-[US[5(dX@R
"U40UD6-
nX@R"U40UD6-
nX@R"U40UD6-
nU$)z(Generates speech for the tree-item role.r�rrr!r�)
rirqrr"rr�rur�rOrr?r�rrs     r"�_generate_tree_item�#SpeechGenerator._generate_tree_item�s����h�h�|�[�9���1�1��0�0��=��=�=��.�.�s�;�d�;�����
�+�+��.�.�s�;�d�;�;�F��*�*�3�7�$�7�7�F��;�;�C�H�4�H�8��*�*�3�7�$�7�	9���&�&�s�3�d�3�3���/�/��<�t�<�<���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��1�1�#�>��>�>���*�V�B�Z��7�7��*�*�3�7�$�7�7�F��0�0��=��=�=���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z)Generates speech for the tree-table role.r!rvs   r"�_generate_tree_table�$SpeechGenerator._generate_tree_table�r$r%c��UR"U40UD6nX0R"U40UD6-
nX0R"U40UD6-
nU$)z&Generates speech for the unknown role.)rrurr.s    r"�_generate_unknown�!SpeechGenerator._generate_unknown�sN���.�.�s�;�d�;���:�:�3�G�$�G�G���/�/��<�t�<�<���
r%c�(�UR"U40UD6$)z$Generates speech for the video role.r!rvs   r"�_generate_video�SpeechGenerator._generate_video�r$r%c�(�UR"U40UD6$)z'Generates speech for the viewport role.r!rvs   r"�_generate_viewport�"SpeechGenerator._generate_viewport�r$r%c�(�UR"U40UD6$)z%Generates speech for the window role.r!rvs   r"�_generate_window� SpeechGenerator._generate_window�r$r%rr(r*r+r,r-r.r#�staticmethodrKrXr_rlrqr�r�r�r}r�r�r�r�r\r�r�rrpr%r(r,r/r2r5r<rBrRr_rdrhr�r�rr#r+r/r5r?rDrKrdrqr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr#r&r,r/r6r<rBrFrNrRr^rcrfrkrnrqrwrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr"r'r*r-r0r4r7r:r=r@rCrGrKrNrQrTrWrZr]r`rcrfrirlrorrrurxr{rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r~r�r�r�r�r�r�r�rrrr
rrrrrrr"r%r(r+r.r1r4r7r:r=r@rCrFrIrLrOrRrUrXr[r^rardrgrkrnrqrtrwrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r/�
__classcell__)r<s@r"r7r7^s
���>�+�����	��<���.�	�#�J
�����(����������������>�Q�f����4�;��;�������������������������*�����"��"�H����*�S��S��	��	�C!�J�C��C�Je�N�3��3�j����:�	H�����@�
��
����� �"��"�H����@����8�����5��5�n����$������������
����"�2��2�������������������������0����*��������$����2����$����2����&�������������	��	���������:��������"�
��
������������������	I��	I������������������
��
����������)��)�Z�����������������H��
��
���������&����@��������$����$����.����$�+��+�Z����$�	��	����������
��
�� �  �D@�
�@�
@�
@�
� C�@�
@�
�$@�
�2
C�@�
�*�2�&C�$�&
��"��"@�
��"�0�,@�
0�
�&� @�
	�4�
4�
4�
4�
4�
4�
� � @�
�"� �$� 2�
�2�
���$�@�
�(��@�
�2���@�
�	��*�&�"�0�"�"�6@�
� @�
9���� ��	�����8��4�@�
	��*@�
�*�� 0�
��&7�
�8�2@�
�$@�
�$@�
�$��&�&�$�(�(�� ����"� �6(�T�(�"�(�"��"@�
@�
�&@�
�@�
�2@�
�@�
@�
@�@r%r7)8r.�__id__�__version__�__date__�
__copyright__�__license__�urllib.errorrV�urllib.parse�urllib.request�gi�require_version�
gi.repositoryrr[rrr	r
rrr
rrrrr�ax_documentr�ax_hypertextr�	ax_objectr�ax_tabler�ax_textr�ax_utilitiesr�ax_valuerrr'r~r�r�r�rg�VALUE�
DEFAULT_VOICE�UPPERCASE_VOICE�HYPERLINK_VOICE�SYSTEM_VOICEr��	Generatorr7rr%r"�<module>r	s��>;�������?�
������	����7�E�"������!�������*�#�%����%����
��	�����	��	��������X�
#�
#�
�x�'�'�
�x�'�'�
�H�!�!�	�8� � �	�8� � �

�	�_>@�i�)�)�_>@r%

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 276 B 0644
acss.cpython-313.pyc File 4.37 KB 0644
action_presenter.cpython-313.pyc File 12.53 KB 0644
ax_collection.cpython-313.pyc File 6.06 KB 0644
ax_component.cpython-313.pyc File 22.4 KB 0644
ax_document.cpython-313.pyc File 13.2 KB 0644
ax_event_synthesizer.cpython-313.pyc File 22.37 KB 0644
ax_hypertext.cpython-313.pyc File 11.3 KB 0644
ax_object.cpython-313.pyc File 63.85 KB 0644
ax_selection.cpython-313.pyc File 5.26 KB 0644
ax_table.cpython-313.pyc File 62.75 KB 0644
ax_text.cpython-313.pyc File 58.92 KB 0644
ax_utilities.cpython-313.pyc File 37.16 KB 0644
ax_utilities_application.cpython-313.pyc File 9.14 KB 0644
ax_utilities_collection.cpython-313.pyc File 125.47 KB 0644
ax_utilities_debugging.cpython-313.pyc File 15.44 KB 0644
ax_utilities_event.cpython-313.pyc File 41.86 KB 0644
ax_utilities_relation.cpython-313.pyc File 21.3 KB 0644
ax_utilities_role.cpython-313.pyc File 139.59 KB 0644
ax_utilities_state.cpython-313.pyc File 19.65 KB 0644
ax_value.cpython-313.pyc File 8.8 KB 0644
bookmarks.cpython-313.pyc File 16.09 KB 0644
braille.cpython-313.pyc File 82.01 KB 0644
braille_generator.cpython-313.pyc File 71.06 KB 0644
braille_rolenames.cpython-313.pyc File 8.73 KB 0644
brlmon.cpython-313.pyc File 9.02 KB 0644
brltablenames.cpython-313.pyc File 2.46 KB 0644
bypass_mode_manager.cpython-313.pyc File 5.79 KB 0644
caret_navigation.cpython-313.pyc File 22.86 KB 0644
chat.cpython-313.pyc File 33.96 KB 0644
clipboard.cpython-313.pyc File 27.81 KB 0644
cmdnames.cpython-313.pyc File 18.85 KB 0644
colornames.cpython-313.pyc File 11.83 KB 0644
debug.cpython-313.pyc File 4.76 KB 0644
debugging_tools_manager.cpython-313.pyc File 13.8 KB 0644
event_manager.cpython-313.pyc File 43.89 KB 0644
flat_review.cpython-313.pyc File 59.1 KB 0644
flat_review_finder.cpython-313.pyc File 29.77 KB 0644
flat_review_presenter.cpython-313.pyc File 59.01 KB 0644
focus_manager.cpython-313.pyc File 14.24 KB 0644
generator.cpython-313.pyc File 95.62 KB 0644
guilabels.cpython-313.pyc File 12.43 KB 0644
highlighter.cpython-313.pyc File 9.86 KB 0644
input_event.cpython-313.pyc File 45.78 KB 0644
input_event_manager.cpython-313.pyc File 48.43 KB 0644
keybindings.cpython-313.pyc File 27.27 KB 0644
keynames.cpython-313.pyc File 4.73 KB 0644
label_inference.cpython-313.pyc File 25.15 KB 0644
learn_mode_presenter.cpython-313.pyc File 19.89 KB 0644
liveregions.cpython-313.pyc File 31.34 KB 0644
mathsymbols.cpython-313.pyc File 64.53 KB 0644
messages.cpython-313.pyc File 41.8 KB 0644
mouse_review.cpython-313.pyc File 33.59 KB 0644
notification_presenter.cpython-313.pyc File 18.47 KB 0644
object_navigator.cpython-313.pyc File 15.8 KB 0644
object_properties.cpython-313.pyc File 8.27 KB 0644
orca.cpython-313.pyc File 13.43 KB 0644
orca_gtkbuilder.cpython-313.pyc File 5.53 KB 0644
orca_gui_navlist.cpython-313.pyc File 10.45 KB 0644
orca_gui_prefs.cpython-313.pyc File 166.31 KB 0644
orca_gui_profile.cpython-313.pyc File 5.69 KB 0644
orca_i18n.cpython-313.pyc File 2.63 KB 0644
orca_modifier_manager.cpython-313.pyc File 17.05 KB 0644
orca_platform.cpython-313.pyc File 661 B 0644
phonnames.cpython-313.pyc File 1.51 KB 0644
pronunciation_dict.cpython-313.pyc File 1.95 KB 0644
script.cpython-313.pyc File 15.33 KB 0644
script_manager.cpython-313.pyc File 18.15 KB 0644
script_utilities.cpython-313.pyc File 87.03 KB 0644
settings.cpython-313.pyc File 6.79 KB 0644
settings_manager.cpython-313.pyc File 35.18 KB 0644
sleep_mode_manager.cpython-313.pyc File 6.67 KB 0644
sound.cpython-313.pyc File 8.71 KB 0644
sound_generator.cpython-313.pyc File 58.4 KB 0644
speech.cpython-313.pyc File 10.75 KB 0644
speech_and_verbosity_manager.cpython-313.pyc File 34.1 KB 0644
speech_generator.cpython-313.pyc File 214.55 KB 0644
speechdispatcherfactory.cpython-313.pyc File 33.52 KB 0644
speechserver.cpython-313.pyc File 10.21 KB 0644
spellcheck.cpython-313.pyc File 24.24 KB 0644
spiel.cpython-313.pyc File 34.68 KB 0644
ssml.cpython-313.pyc File 6.03 KB 0644
structural_navigation.cpython-313.pyc File 93.9 KB 0644
system_information_presenter.cpython-313.pyc File 9.42 KB 0644
table_navigator.cpython-313.pyc File 36.48 KB 0644
text_attribute_names.cpython-313.pyc File 6.01 KB 0644
where_am_i_presenter.cpython-313.pyc File 26.41 KB 0644
Filemanager