
    <in                    "   d Z ddlmZ dZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZ dd	lmZmZ dd
lmZmZmZ ddlmZmZ ddlmZ dZerddlmZ d,d-dZ  G d de          Z! G d de          Z" G d de          Z# G d de          Z$ G d de          Z% G d de          Z& G d  d!e          Z' G d" d#e          Z( G d$ d%ej)                  Z* G d& d'e          Z+ G d( d)e          Z, G d* d+e          Z-dS ).zMiscellaneous directives.    )annotationsreStructuredTextN)Path)urlopen)URLError)frontendionodesstatemachineutils)	Directiveconvert_directive_function)
directivesrolesstates)	CodeBlockNumberLines)miscF)StrPath pathstrreturnc                    |r/|                      d          rt          |          }| dd          } nt          |          j        }t          j        d || z            S )N/   )
startswithr   parentr   relative_path)r   sourceroot_prefixbases       /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/docutils/parsers/rst/directives/misc.py
adapt_pathr$      s`    
  #ts++ #K  ABBxF||"tT$Y///    c                  
   e Zd ZdZdZdZdZej        ej	        ej
        ej        eeeej        ej         ej        de          ej        ej	        dZ eej                  j        dz  Zdd
ZddZddZddZddZddZdS )Includea  
    Include content read from a separate source file.

    Content may be parsed by the parser, or included as a literal
    block.  The encoding of the included file can be specified.  Only
    a part of the given file argument may be included by specifying
    start and end line or text to match before and/or after the text
    to be used.

    https://docutils.sourceforge.io/docs/ref/rst/directives.html#include
    r   r   TN)literalcodeencodingparser	tab-width
start-lineend-linestart-after
end-beforenumber-linesclassnameincluder   listc                   | j         j        j        x| _        }|j        s|                     d| j        z            | j                            d|j                  | _        | j                            dd          | j                            dd          | j                            dd          | j                            dd          f| _	        t          j        | j        d	                   }|                    d
          r*|                    d          rd|dd         z   }| j        }n|j        }t#          || j         j        j        |          }|| j        d<   |                     |          }d| j        v r|                     |          S d| j        v r|                     |          S d| j        v r|                     |          S |                     |           g S )zInclude a file as part of the content of this reST file.

        Depending on the options, the file content (or a clipping) is
        converted to nodes and returned or inserted into the input stream.
        "%s" directive disabled.r-   r.   Nr/   r0   r   r1   r   <>r   r   r    r)   r*   r,   )statedocumentsettingsfile_insertion_enabledwarningr4   optionsget	tab_widthclip_optionsr   r   	argumentsr   endswithstandard_include_pathr!   r$   current_source	read_fileas_literal_blockas_code_blockcustom_parseinsert_into_input_lines)selfr>   r   r!   inputstrings        r#   runzInclude.runK   s    $(:#6#??. 	G,,9DIEFFF))+x7IJJ!\--lDAA!\--j$??!\--mR@@!\--lB??A t~a011??3 	/DMM#$6$6 	/ad#D4KK".K$*-<%' ' "&XnnT**$$((555T\!!%%k222t|##$$[111$$[111	r%   r   r   r   c           	     "   | j                             d| j        j                  }| j        j        }	 t          j        |||          }| j        j                            |           no# t          $ r" | 
                    d| j         d| d          t          $ r8}| 
                    d| j         dt          j        |           d          d}~ww xY w	 |                                }nE# t          $ r8}| 
                    d	| j         d
t          j        |          z             d}~ww xY w| j        \  }}}	}
|s|1|                                }d                    |||                   }|	rS|                    |	          }|dk     r| 
                    d| j         d          ||t)          |	          z   d         }|
rC|                    |
          }|dk     r| 
                    d| j         d          |d|         }|S )zQRead text file at `path`. Clip and return content.

        Provisional.
        r+   source_pathr+   error_handlerProblems with "z1" directive path:
Cannot encode input file path "z" (wrong locale?)." directive path:
.NProblem with "" directive:

r   z&Problem with "start-after" option of "z" directive:
Text not found.z%Problem with "end-before" option of ")rA   rB   r>   input_encodinginput_encoding_error_handlerr	   	FileInputrecord_dependenciesaddUnicodeEncodeErrorseverer4   OSErrorerror_stringreadUnicodeErrorrD   
splitlinesjoinfindlen)rN   r   r+   rT   include_fileerrortext	startlineendline	starttextendtextlinesafter_indexbefore_indexs                 r#   rI   zInclude.read_fileo   s   
 <##J0LMMB	8<D196CE E EL M-11$7777 " 	2 	2 	2++ 1	 1 1@D1 1 1 2 2 2  	< 	< 	<++ ;	 ; ;!#!7!7; ; ; < < <	<
	8$$&&DD 	8 	8 	8++HtyHHH " 6 67 8 8 8	8 261B.	7Iw 	7,OO%%E99U9W#4566D  	7))I..KQkk #O&*i#O #O #O P P Pc)nn4556D 	'99W--Lakk #O&*i#O #O #O P P P&Ds/   A* *4C3CCC/ /
D193D,,D1rl   list[nodes.literal_block]c                   | j         d         }| j        dk    r|                    | j                  }t          j        d|| j                             dg                     }||_        | j                             dd          dz   |_        |                     |           d| j         v r| j         d         pd}|	                    d	          }|t          |                                          z   }t          g |fg||          }|D ]9\  }}|r|t          j        d||
          z  }"|t          j        |          z  }:n|t          j        |          z  }|gS )zOReturn list with literal_block containing `text`.

        Provisional
        r    r   r   r3   )r    classesr.   r   r2   rZ   )rv   )rA   rC   
expandtabsr
   literal_blockrB   r    lineadd_nameremovesuffixri   rf   r   inlineText)	rN   rl   r    rx   	firstlinelastlinetokensrv   values	            r#   rJ   zInclude.as_literal_block   sq   
 h'>Q??4>22D+vt|'7'7'D'DF F F%!\--lA>>Bm$$$T\))^49I$$T**D 3t'8'8#9#99H 2t*y(CCF"( 7 7 7!U\"eW%M%M%MMMM!UZ%6%66MM	7 UZ---Mr%   c                B   | j         dk    r|                    | j                   }t          | j        | j                            d          g| j        |                    d          g| j        | j        | j	        | j
        | j        	  	        }|                                S )zNPass `text` to the `CodeBlock` directive class.

        Provisional.
        r   r*   rZ   )rC   rw   r   r4   rA   popr{   linenocontent_offset
block_textr<   state_machinerP   )rN   rl   	codeblocks      r#   rK   zInclude.as_code_block   s     >Q??4>22Ddi#|//778"l#00667"k"1"o"j"0	  	 	 }}r%   c                    | j         d                     }t          j        |          }| j        j                                        D ]\  }}t          |||           | j         d         |_        t          j	        |j        |          }| j
        j        j        |_        | j
        j        j        |_        | j
        j        j        |_        | j
        j        j        |_        |                    ||           | j
        j        j                            |j                   |j                            |f           |j                                         | j
        j        j                            |j                   |j        S )zParse with custom parser.

        Parse with ``self.options['parser']`` into a new (dummy) document,
        apply the parser's default transforms,
        return child elements.

        Provisional.
        r,   r    )rA   r   get_default_settingsr>   __dict__itemssetattr_sourcer   new_documentr<   r=   include_logidsnameids	nametypesparseparse_messagesextendtransformerpopulate_from_componentsapply_transformstransform_messageschildren)rN   rl   r,   r>   kvr=   s          r#   rL   zInclude.custom_parse   sT    (h'))088M*0022 	$ 	$DAqHa####<1%h&6AA#z2>z*.:.6!Z0:T8$$$
*11(2IJJJ55vi@@@--///
.55'	) 	) 	)  r%   Nonec                   | j         d         }t          j        || j        d          }t	          |          D ]_\  }}t          |          | j        j        k    r=|dz   | j                             dd          z   }| 	                    d| d| d	          `| j
        j        j        }|s;t          j        d
| j
        j        j                  }|                    |df           || j        f|v rRd t%          |          D             }	d                    |g|	R           }
| 	                    d| j         d|
           |                    || j        f           |dd| dgz  }| j                            ||           d
S )z\Insert file content into the rST input of the calling parser.

        Provisional.
        r    T)convert_whitespacer   r.   r   "z": line z exceeds the line-length-limit.N)NNr   r   c              3      K   | ]	\  }}|V  
d S r(    ).0pthopts      r#   	<genexpr>z2Include.insert_into_input_lines.<locals>.<genexpr>  s&      HHJS#CHHHHHHr%   z
> zcircular inclusion in "rY   r   z.. end of inclusion from ")rA   r   string2linesrC   	enumerateri   r>   line_length_limitrB   r@   r<   r=   r   r   r   rH   appendrD   reversedrg   r4   r   insert_input)rN   rl   r    	textlinesiry   line_nor   rH   source_chaininclusion_chains              r#   rM   zInclude.insert_into_input_lines   s   
 h' -dDNAEG G G	 !++ 	: 	:GAt4yy4=:::a%$,"2"2<"C"CCll $9v $9 $9w $9 $9 $9 : : : ;
 j)5 	G"0 $dj&9&HJ JN0DEFFFD%&+55HH(;2G2GHHHL$kk6*AL*A*ABBO,,  A  A  A/> A  A B B BFD$56777b@v@@@AA	''	6:::::r%   N)r   r6   )r   r   r   r   )rl   r   r   rt   )rl   r   r   r6   )rl   r   r   r   )__name__
__module____qualname____doc__required_argumentsoptional_argumentsfinal_argument_whitespacer   flag	unchangedr+   parser_nameintunchanged_requiredvalue_orclass_optionoption_specr   r   __file__r   rG   rP   rI   rJ   rK   rL   rM   r   r%   r#   r'   r'   *   s       
 
  $(o%/)2'3 #!$"","?!+!>#6:#6w#D#D&3%/1 1K !D1189D" " " "H. . . .`   8   (! ! ! !:; ; ; ; ; ;r%   r'   c                  ^    e Zd ZdZdZdZdZej        ej	        ej
        ej        dZdZd ZdS )Rawz
    Pass through content unchanged

    Content is included in output based on type argument

    Content may be included inline (content section of directive) or
    imported from a file or url.
    r   r   T)fileurlr+   r3   c                   | j         j        j        }|j        r|j        s/d| j        v s	d| j        v r|                     d| j        z            dd                    | j	        d         
                                                                          i}| j                            d|j                  }|j        }| j        rKd| j        v s	d| j        v r|                     d| j        z            d	                    | j                  }n[d| j        v r0d| j        v r|                     d
| j        z            t#          | j        d         | j         j        j        |j                  }	 t)          j        |||          }|j                            |           nE# t0          $ r8}|                     d| j         dt)          j        |           d          d }~ww xY w	 |                                }nE# t8          $ r8}|                     d| j         dt)          j        |          z             d }~ww xY w||d<   n!d| j        v r| j        d         }		 t;          |	                                          }
nZ# t<          t0          f$ rF}|                     d| j         d| j        d          dt)          j        |           d          d }~ww xY wt)          j        |
|	||          }	 |                                }nE# t8          $ r8}|                     d| j         dt)          j        |          z             d }~ww xY w|	|d<   n|                                   tC          j"        d|fd| j                            dg           i|}| j#        $                    | j%                  \  |_&        |_'        |gS )Nr   r   r8   format r   r+   zF"%s" directive may not both specify an external file and have content.rZ   zXThe "file" and "url" options may not be simultaneously specified for the "%s" directive.rR   rU   rV   rW   rX   rY   r    z" directive URL "z":
)r    rS   r+   rT   r   rv   r3   )(r<   r=   r>   raw_enabledr?   rA   r@   r4   rg   rE   lowersplitrB   r[   r\   contentrk   r$   rH   r!   r	   r]   r^   r_   rb   ra   rc   rd   re   r   r   StringInputassert_has_contentr
   rawr   get_source_and_liner   r    ry   )rN   r>   
attributesr+   rT   rl   r   raw_filerk   r    raw_textraw_nodes               r#   rP   zRaw.run"  s   :&/$ 	G3	Gt|++u/D/D,,9DIEFFF):)@)@)B)B)H)H)J)J K KL
<##J0GHH =< 2	&%%$,)>)>jj(*.)45 5 5 99T\**DDt|##$$jj8:>)DE E E dl62"j1@&24 4D
7<D196CE E E ,006666  G G Gkk #FDI #F #F,.OE,B,B#F #F #F G G GG<}} < < <kk"L49"L"L"L$&OE$:$:#; < < << $(Jx  dl""\%(F@"6??//11g& @ @ @kk #?DI #? #?&*l5&9#? #?%'_U%;%;#? #? #? @ @ @@ ~X6/74AC C CH<}} < < <kk"L49"L"L"L$&OE$:$:#; < < << $*Jx   ##%%%9R + +t|/?/?/L/L +)+ + ,@@MM		zsa   /F! !
G#+3GG#'G< <
H>3H99H> !J KAKK5L
 

M3MMN)r   r   r   r   r   r   r   r   r   urir+   r   r   has_contentrP   r   r%   r#   r   r     so           $%?$.)2&35 5K K@ @ @ @ @r%   r   c                      e Zd ZdZd ZdS )ReplaceTc                x   t          | j        t          j                  s|                     d| j        z            |                                  d                    | j                  }t          j
        |          }| j                            | j        | j        |           d }g }|D ]}|st          |t          j                  r|}!t          |t          j                  rg |d<   |                    |           V| j                            d| j         d| j                  gc S |r
||j        z   S |S )NVInvalid context: the "%s" directive can only be used within a substitution definition.rZ   backrefs
Error in "z1" directive: may contain a single paragraph only.ry   )
isinstancer<   r   SubstitutionDefrk   r4   r   rg   r   r
   Elementnested_parser   	paragraphsystem_messager   reporterr   r   )rN   rl   elementnodemessageselems         r#   rP   zReplace.runi  s   $*f&<== 	:**-/3y9: : : 	!!!yy&&-%%
d.A '	) 	) 	)  
	G 
	GD 	GJtU_== 	GD%"677 G#%Z %%%% M''3TY 3 3 39= ( F FG G G G  	,dm++r%   Nr   r   r   r   rP   r   r%   r#   r   r   e  s(        K    r%   r   c                  n    e Zd ZdZdZdZdZej        ej        ej        dZ	 e
j        d          Zd ZdS )	Unicodea{  
    Convert Unicode character codes (numbers) to characters.  Codes may be
    decimal numbers, hexadecimal numbers (prefixed by ``0x``, ``x``, ``\x``,
    ``U+``, ``u``, or ``\u``; e.g. ``U+262E``), or XML-style numeric character
    entities (e.g. ``&#x262E;``).  Text following ".." is a comment and is
    ignored.  Spaces are ignored, and any other text remains as-is.
    r   r   T)trimltrimrtrimz( |\n|^)\.\. c           
        t          | j        t          j                  s|                     d| j        z            | j        j        }d| j        v rd|j	        d<   d|j	        d<   d| j        v r
d|j	        d<   d| j        v r
d|j	        d<   | j
                            | j        d                   d                                         }t          j                    }|D ]n}	 t          j        |          }n?# t"          $ r2}|                     d|dt%          j        |                    d }~ww xY w|t          j        |          z  }o|j        S )	Nr   r   r   r   r   r   zInvalid character code: rZ   )r   r<   r   r   rk   r4   r   r   rA   r   comment_patternr   rE   r
   r   r   unicode_code
ValueErrorr	   rc   r}   r   )rN   substitution_definitioncodesr   r*   decodedrk   s          r#   rP   zUnicode.run  s   $*f&<== 	:**-/3y9: : : #'"4"9T\!!:;#.w7:;#.w7dl"":;#.w7dl"":;#.w7$**4>!+<==a@FFHH-// 	+ 	+DC$1$77 C C Cjjj$(DD"/%*@*@*@"B C C CC uz'***GGs   !C66
D2 -D--D2N)r   r   r   r   r   r   r   r   r   r   recompiler   rP   r   r%   r#   r   r     sp           $%?&O&O- -K !bj!122O         r%   r   c                  (    e Zd ZdZdZdZdZdZd ZdS )Classz
    Set a "class" attribute on the directive content or the next element.
    When applied to the next element, a "pending" element is inserted, and a
    transform does the work later.
    r   r   Tc                x   	 t          j        | j        d                   }n:# t          $ r- |                     d| j        d| j        d         d          w xY wg }| j        rtt          j                    }| j	        
                    | j        | j        |           |D ]}|d                             |           |                    |j                   nat          j        t          j        || j        d| j                  }| j        j                            |           |                    |           |S )Nr   z#Invalid class attribute value for "z" directive: "".rv   )r3   	directive)r   r   rE   r   rk   r4   r   r
   r   r<   r   r   r   r   pendingr   ClassAttributer   r   r=   note_pendingr   )rN   class_value	node_list	containerr   r   s         r#   rP   z	Class.run  sU   	2$1$.2CDDKK 	2 	2 	2***999dnQ///12 2 2	2 	< 	&IJ##DL$2E$-/ / /! 4 4Y&&{3333Y/0000m#%DI>>! !G '44W===W%%%s	   " 7AN)	r   r   r   r   r   r   r   r   rP   r   r%   r#   r   r     sF           $K    r%   r   c                  Z    e Zd ZdZ ej        dej        j        fdz  z            Z	d Z
dS )RoleTz(%s)\s*(\(\s*(%s)\s*\)\s*)?$   c                   | j         | j        k    s| j        s|                     d| j        z            | j        d         }| j                            |          }|s!|                     d| j        d|d          |                    d          }|                    d          }g }|rt          j	        || j
        j        | j        | j        j                  \  }}|M| j        j                            d	|z  t          j        | j        | j                  | j        
          }||gz   S nt          j        }t%          |d          rJ d| j        d|d            	 t'          |          }| j                            | j        dd         | j         |i           \  }	}
}}nm# t*          j        $ r[}| j                            d| j        d|dt          j        | j        | j                  | j        
          }||gz   cY d}~S d}~ww xY wd|
vr	 t/          j        |          |
d<   nh# t2          $ r[}| j                            d| j        d|dt          j        | j        | j                  | j        
          }||gz   cY d}~S d}~ww xY wt          j        |||
|          }t          j        ||           |S )z?Dynamically create and register a custom interpreted text role.z4"%s" directive requires arguments on the first line.r   r   z-" directive arguments not valid role names: "r   r      N#Unknown interpreted text role "%s".r   rE   z&Supplemental directive arguments for "z)" directive not supported (specified by "z" role).)option_presetsr   rY   rW   r3   zInvalid argument for ")r   r   r   rk   r4   argument_patternmatchgroupr   roler   languager<   r   r
   rx   r   generic_custom_rolehasattrr   parse_directive_blockr   MarkupErrorr   r   r   
CustomRoleregister_local_role)rN   argsr  new_role_namebase_role_namer   	base_rolerk   converted_rolerE   rA   r   r   detailr  s                  r#   rP   zRole.run  sY   ,,DL,** %'+y1 2 2 2|A%++D11 	:***(,			4449 : : :AQ 	2"'* 2 ;T[
##% #%Ix  
+119NJ'II 2 & &  5')) ! 1I9k22 	L 	L 	L59YYY			K	L 	L 	L	&7	BBN11L$d&9"2 2 7 7Y.. ! 	& 	& 	&M'''37999fffE#DOT_EE[ ( " "E ug%%%%%%%	& '!!*#-#:=#I#I   * * *+++yyy&&&*'II	 , & &
  5')))))))* y'7KK!-666s?   #AF( (H7AHHHH2 2
J<AJJJN)r   r   r   r   r   r   r   Inliner
simplenamer  rP   r   r%   r#   r  r    sW        K!rz"A&,n&?%AA%E#G H H4 4 4 4 4r%   r  c                       e Zd ZdZdZdZd ZdS )DefaultRolez&Set the default interpreted text role.r   Fc                   | j         sdt          j        v rt          j        d= g S | j         d         }t          j        || j        j        | j        | j        j                  \  }}|M| j        j        	                    d|z  t          j        | j        | j                  | j                  }||gz   S |t          j        d<   |S )Nr   r   r	  r   )rE   r   _rolesr  r   r  r   r<   r   rk   r
   rx   r   )rN   	role_namer  r   rk   s        r#   rP   zDefaultRole.run  s    ~ 	U\!!L$IN1%	It/A/J$(K1DF Fh<J'--5	A#DOT_EE[ . " "E ug%%Rr%   N)r   r   r   r   r   r   rP   r   r%   r#   r  r    s5        00 %    r%   r  c                       e Zd ZdZdZdZd ZdS )Titler   r   Tc                :    | j         d         | j        j        d<   g S )Nr   title)rE   r   r=   )rN   s    r#   rP   z	Title.run6  s    /3~a/@#G,	r%   N)r   r   r   r   r   r   rP   r   r%   r#   r$  r$  0  s5         $    r%   r$  c                      e Zd Zd Zd ZdS )MetaBodyc                \    |                      |          \  }}| xj        |z  c_        g |g fS )zMeta element.)	parsemetar   )rN   r  context
next_stater   blank_finishs         r#   field_markerzMetaBody.field_marker=  s5    !^^E22lt:r!!r%   c           	     0   |                      |          }t          j        t          j        |                    }| j                            |                                          \  }}}}t          j                    }t          j        t          j        d	                    |                              |d<   |sA| j        j
        }| j                            d|z  t          j        ||                    }	|	|fS |                                }
	 t          j        |
d                   d         \  }}|||                                <   n # t          j        $ r |
d         |d<   Y nw xY w|
dd          D ]}	 t          j        |          d         \  }}|||                                <   8# t          j        $ rQ}| j        j
        }| j                            d|d|d	t          j        ||                    }	|	|fcY d }~c S d }~ww xY w||fS )
Nr   r   zNo content for meta tag "%s".r   r4   r   z"Error parsing meta tag attribute "z": rW   )parse_field_markerr
   unescaper   escape2nullr   get_first_known_indentedendmetarg   ry   r   inforx   r   extract_name_valuer   NameValueErrorrk   )rN   r  r4   indentedindentline_offsetr-  r   ry   msgr   attnamevaltokenr  s                  r#   r*  zMetaBody.parsemetaC  s@   &&u--~e/556688EE	6;z||.):,/HHX,>,>*@ *@ A AY 	%%*D-$$1D8%dD113 3C $$	% 3F1I>>qALGS$'D!!# 	% 	% 	%!!9DLLL	%ABBZ 		) 		)E)$7>>qA(+W]]__%%' ) ) )).m)))().)<T4)H)HJ J L((((((((() \!!s1   :E E,+E,<4F11H AHHHN)r   r   r   r.  r*  r   r%   r#   r(  r(  ;  s2        " " "" " " " "r%   r(  c                  "    e Zd ZdZdefiZd ZdS )MetaTstate_classesc                   |                                   t          j                    }| j                            | j        | j        |dd| j                  \  }}|| j        z
  t          | j                  k    rD| j	        
                    dt          j        | j        | j                  | j                  }||z  }| j        j                            t          j        t          j        f          pd}|j        | j        j        ||<   g S )Nr(  T)initial_stater-  state_machine_kwargszInvalid meta directive.r   r   )r   r
   r   r<   nested_list_parser   r   SMkwargsri   r   rk   rx   r   r   r=   first_child_not_matching_classTitularr5  r   )rN   r   new_line_offsetr-  rk   indexs         r#   rP   zMeta.runj  s   !!!}(,
(D(DL$-t$4!% )E )0 )0% d11c$,6G6GGGM'')#DOT_EE[ ( " "E EMD
#BB).
(CE E JHI 	+/=
E%K(	r%   N)r   r   r   r   r(  rG  rP   r   r%   r#   rA  rA  d  s4        K(-H    r%   rA  c                      e Zd ZdZd ZdS )DateTc                   t          | j        t          j                  s|                     d| j        z            d                    | j                  pd}t          j	        |          }t          j        |          gS )Nr   rZ   z%Y-%m-%d)r   r<   r   r   rk   r4   rg   r   timestrftimer
   r}   )rN   
format_strrl   s      r#   rP   zDate.run  s|    $*f&<== 	:**-/3y9: : : YYt|,,:

" }Z((
4  !!r%   Nr   r   r%   r#   rM  rM    s(        K" " " " "r%   rM  c                  6    e Zd ZdZdZdZdej        iZdZ	d Z
dS )TestDirectivez3This directive is useful only for testing purposes.r   Toptionc           	     \   | j         rid                    | j                   }| j                            d| j        d| j        d| j        dt          j        ||          | j	                  }n:| j                            d| j        d| j        d| j        d| j	                  }|gS )NrZ   zDirective processed. Type="z", arguments=z
, options=z
, content:r   z, content: None)
r   rg   r   r6  r4   rE   rA   r
   rx   r   )rN   rl   r6  s      r#   rP   zTestDirective.run  s    < 
	"99T\**D=%%%"iiiG#D$//dk & C CDD
 =%%%#'999dnnndlllL[ & " "D vr%   N)r   r   r   r   r   r   r   r   r   r   rP   r   r%   r#   rS  rS    sG        == $Z:;KK    r%   rS  )r   r   )r   r   r   r   ).r   
__future__r   __docformat__r   rO  pathlibr   urllib.requestr   urllib.errorr   docutilsr   r	   r
   r   r   docutils.parsers.rstr   r   r   r   r   $docutils.parsers.rst.directives.bodyr   r   docutils.transformsr   TYPE_CHECKINGdocutils.nodesr   r$   r'   r   r   r   r   r  r  r$  SpecializedBodyr(  rA  rM  rS  r   r%   r#   <module>rb     sJ  
    " " " " " "" 				        " " " " " " ! ! ! ! ! ! = = = = = = = = = = = = = = F F F F F F F F : : : : : : : : : : G G G G G G G G $ $ $ $ $ $ '&&&&&&0 0 0 0 0`; `; `; `; `;i `; `; `;HT T T T T) T T Tn    i   B)  )  )  )  ) i )  )  ) X# # # # #I # # #L; ; ; ; ;9 ; ; ;|    )   4    I   &" &" &" &" &"v% &" &" &"R    9   6" " " " "9 " " "<    I     r%   