
    -Phd                       d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ ddlZddlmZmZ ddlmZmZmZmZmZ ddlmZ dd	lmZ dd
lmZ e
rddlmZmZ ddl	mZ 	 ddl Z e
rej!        dk    re"dZ#d e$e dd          v Z%e%r e j&        d           n  e j&        d           n# e"$ r dxZ#Z%Y nw xY w ed           ed           ed           ed           ed           ed           ed           ed           ed           ed          d
Z'd dd!dd"d#ddd$Z(d%Z)ej!        dk    rdd&lmZ* n#dd'lm+Z* e#r e$e*d(d          xZ,r ee,          Z*[,dVd,Z- G d- d.e.          Z/dWd0Z0dWd1Z1dWd2Z2dWd3Z3dXd6Z4dYd8Z5dWd9Z6dWd:Z7de3fdZdAZ8 G dB dCe          Z9d[dGZ:	 	 	 d\d]dKZ;d^dLZ<d_dNZ=d`dadSZ>e?dTk    r! e@ e>ejA        dUd                             dS )bz7Quickly setup documentation source to work with Sphinx.    )annotationsN)TYPE_CHECKING)column_width)__display_version__package_dir)_create_input_mode_colour_funcbolddisable_colourredterminal_supports_colour)__)	ensuredir)SphinxRenderer)CallableSequence)Anywin32Tlibedit__doc__ zbind ^I rl_completeztab: completeFz,automatically insert docstrings from modulesz2automatically test code snippets in doctest blocksz7link between Sphinx documentation of different projectsz9write "todo" entries that can be shown or hidden on buildz!checks for documentation coveragez+include math, rendered as PNG or SVG imagesz0include math, rendered in the browser by MathJaxz7conditional inclusion of content based on config valuesz=include links to the source code of documented Python objectsz=create .nojekyll file to publish the document on GitHub pages)
autodocdoctestintersphinxtodocoverageimgmathmathjaxifconfigviewcodegithubpages._.rstindex)pathsepdotlanguagesuffixmastermakefile	batchfilez> )r	   )purple__escape_codepromptstrreturnc                    t           j        dk    r t          | d           t          d          S t          |           S )Nr   r   end)sysplatformprintinput)r/   s    U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/cmd/quickstart.py
term_inputr:   \   s<    
|w 	f"RyyV}}    c                      e Zd ZdZdS )ValidationErrorzRaised for validation errors.N)__name__
__module____qualname__r    r;   r9   r=   r=   g   s        ''''r;   r=   xc                    t           j                            |           } t           j                            |           st	          t          d                    | S )NzPlease enter a valid path name.)osr%   
expanduserisdirr=   r   rB   s    r9   is_pathrH   k   sJ    
1A7== Eb!BCCDDDHr;   c                (    | sdS t          |           S )Nr   )rH   rG   s    r9   is_path_or_emptyrJ   r   s     r1::r;   c                    | S NrA   rG   s    r9   allow_emptyrM   x       Hr;   c                B    | st          t          d                    | S )NzPlease enter some text.)r=   r   rG   s    r9   nonemptyrP   |   s&     =b!:;;<<<Hr;   lCallable[[str], str]c                      d fd}|S )NrB   r0   r1   c                t    | vr2t          t          d          d                              z            | S )NzPlease enter one of %s., )r=   r   join)rB   rQ   s    r9   valzchoice.<locals>.val   s7    A::!"%>"?"?$))A,,"NOOOr;   rB   r0   r1   r0   rA   )rQ   rW   s   ` r9   choicerY      s(         
 Jr;   boolc                    |                                  dvrt          t          d                    |                                  dv S )N>   NYNOYESzPlease enter either 'y' or 'n'.>   r]   r_   )upperr=   r   rG   s    r9   booleanra      s@    wwyy///b!BCCDDD7799$$r;   c                    | dd         dk    rt          |           dk    st          t          d                    | S )Nr      r!   z2Please enter a file suffix, e.g. '.rst' or '.txt'.)lenr=   r   rG   s    r9   r)   r)      s=    acFcMMc!ffqjjb!UVVWWWHr;   c                    | S rL   rA   rG   s    r9   okrf      rN   r;   textdefault
str | None	validatorCallable[[str], Any]
str | boolc           	     f   	 |t           |  d| dz   }nt           | z   dz   }t          rnt          |          }t          |                                          }|r|s|}	  ||          }nC# t
          $ r6}t          t          dt          |          z                        Y d }~d }~ww xY w	 |S )NTz [z]: : z* )	PROMPT_PREFIXUSE_LIBEDIT_question_colourr:   stripr=   r7   r   r0   )rg   rh   rj   r/   rB   errs         r9   	do_promptrt      s    
"%<%<%<%<%<<FF"T)D0F 	.
 %f--Fv$$&& 	1 	A		!AA 	 	 	#dSXXo&&'''HHHH	 	Hs   !A- -
B-7,B((B-c                  6     e Zd Zdd fdZdd	Zd fdZ xZS )QuickstartRendererr   templatedirr0   r1   Nonec                V    || _         t                                                       d S rL   )rw   super__init__)selfrw   	__class__s     r9   r{   zQuickstartRenderer.__init__   s'    &r;   template_namerZ   c                    t           j                            | j        t           j                            |                    }t          | j                  ot           j                            |          S )zCheck if custom template file exists.

        Note: Please don't use this function from extensions.
              It will be removed in the future without deprecation period.
        )rD   r%   rV   rw   basenamerZ   exists)r|   r~   templates      r9   _has_custom_templatez'QuickstartRenderer._has_custom_template   sP     7<< 0"'2B2B=2Q2QRRD$%%B"'..*B*BBr;   contextdict[str, Any]c                "   |                      |          rXt          j                            | j        t          j                            |                    }|                     ||          S t                                          ||          S rL   )	r   rD   r%   rV   rw   r   render_from_filerz   render)r|   r~   r   custom_templater}   s       r9   r   zQuickstartRenderer.render   sv    $$]33 	: gll "'"2"2="A"A O (('BBB77>>-999r;   )r   )rw   r0   r1   rx   )r~   r0   r1   rZ   )r~   r0   r   r   r1   r0   )r>   r?   r@   r{   r   r   __classcell__)r}   s   @r9   rv   rv      sx              C C C C: : : : : : : : : :r;   rv   dr   rx   c           	        t          t          t          d                    t          z             t                       t          t          d                     d| v rAt                       t          t          t          d                    | d         z             nPt                       t          t          d                     t	          t          d          dt
                    | d<   t          j                            t          j        	                    | d         d                    sEt          j                            t          j        	                    | d         d	d                    r&t                       t          t          t          d
                               t          t          d                     t                       t	          t          d          dt                    | d<   | d         st          d          t          j                            t          j        	                    | d         d                    t          j                            t          j        	                    | d         d	d                    &d| vrPt                       t          t          d                     t	          t          d          dt                    | d<   d| vrPt                       t          t          d                     t	          t          d          dt                    | d<   d| vrIt                       t          t          d                     t	          t          d                    | d<   d| vrt	          t          d                    | d<   d| vrPt                       t          t          d                     t	          t          d          dt                    | d<   d| vr,t	          t          d           | d         t                    | d<   d!| vr[t                       t          t          d"                     t	          t          d#          d$          | d!<   | d!         d$k    rd%| d!<   d&| vrPt                       t          t          d'                     t	          t          d(          d)t                    | d&<   d*| vrJt                       t          t          d+                     t	          t          d,          d-          | d*<   t          j                            t          j        	                    | d         | d*         | d&         z                       sTt          j                            t          j        	                    | d         d	| d*         | d&         z                       r?t                       t          t          t          d.          | d*         | d&         z   z                       t          t          d/                     t                       t	          t          d0          | d*                   | d*<   t          j                            t          j        	                    | d         | d*         | d&         z                       t          j                            t          j        	                    | d         d	| d*         | d&         z                       ?d1| vrt          t          d2                     g | d1<   t                                           D ]?\  }}t	          | d3| d4dt                    r| d1                             d5|z             @d6d7h                    | d1                   r7t          t          d8                     | d1                             d6           d9| vrPt                       t          t          d:                     t	          t          d;          d<t                    | d9<   d=| vr&t	          t          d>          d<t                    | d=<   t                       d%S )?a4  Ask the user for quickstart values missing from *d*.

    Values are:

    * path:      root path
    * sep:       separate source and build dirs (bool)
    * dot:       replacement for dot in _templates etc.
    * project:   project name
    * author:    author names
    * version:   version of project
    * release:   release of project
    * language:  document language
    * suffix:    source file suffix
    * master:    master document name
    * extensions:  extensions to use (list)
    * makefile:  make Makefile
    * batchfile: make command file
    z,Welcome to the Sphinx %s quickstart utility.zyPlease enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).r%   zSelected root path: %sz&Enter the root path for documentation.zRoot path for the documentationr!   conf.pysourcezDError: an existing conf.py has been found in the selected root path.z>sphinx-quickstart will not overwrite existing Sphinx projects.z4Please enter a new root path (or just Enter to exit)r   rc   r&   zYou have two options for placing the build directory for Sphinx output.
Either, you use a directory "_build" within the root path, or you separate
"source" and "build" directories within the root path.z+Separate source and build directories (y/n)nr'   zInside the root directory, two more directories will be created; "_templates"
for custom HTML templates and "_static" for custom stylesheets and other static
files. You can enter another prefix (such as ".") to replace the underscore.z(Name prefix for templates and static dirr"   projectzIThe project name will occur in several places in the built documentation.zProject nameauthorzAuthor name(s)versiona-  Sphinx has the notion of a "version" and a "release" for the
software. Each version can have multiple releases. For example, for
Python the version is something like 2.5 or 3.0, while the release is
something like 2.5.1 or 3.0a1. If you don't need this dual structure,
just set both to the same value.zProject versionreleasezProject releaser(   a3  If the documents are to be written in a language other than English,
you can select a language here by its language code. Sphinx will then
translate text that it generates into that language.

For a list of supported codes, see
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language.zProject languageenNr)   zThe file name suffix for source files. Commonly, this is either ".txt"
or ".rst". Only files with this suffix are considered documents.zSource file suffixr#   r*   a  One document is special in that it is considered the top node of the
"contents tree", that is, it is the root of the hierarchical structure
of the documents. Normally, this is "index", but if your "index"
document is a custom template, you can also set this to another filename.z-Name of your master document (without suffix)r$   zKError: the master file %s has already been found in the selected root path.z7sphinx-quickstart will not overwrite the existing file.zIPlease enter a new file name, or rename the existing file and press Enter
extensionszDIndicate which of the following Sphinx extensions should be enabled:rn   z (y/n)sphinx.ext.%szsphinx.ext.imgmathzsphinx.ext.mathjaxzZNote: imgmath and mathjax cannot be enabled at the same time. imgmath has been deselected.r+   zA Makefile and a Windows command file can be generated for you so that you
only have to run e.g. `make html' instead of invoking sphinx-build
directly.zCreate Makefile? (y/n)yr,   z"Create Windows command file? (y/n))r7   r	   r   r   rt   rH   rD   r%   isfilerV   rJ   
SystemExitra   rf   rM   r)   
EXTENSIONSitemsappendissubsetremove)r   namedescriptions      r9   ask_userr      s!   & 
R>??@@CVV   
GGG	
D	
 	
   {{d2.//001V9<====b9::;;;b!BCCS'RR&	
'..ai;;
<
<  
QvY)44A A   	*  	
 	
 	
 	bQRRSSSEFF
 
&	
 y 	 Q--) '..ai;;
<
<  
QvY)44A A  , A~~I 	
 	
 	
 <==sG
 
% A~~_ 	
 	
 	
 R JKKSRTUU%[ 	
 	
 	

 !N!3!344)q#3 4 455(3 	
 	
 	
 !$5!6!6KHH) $5!6!6)kRR)b 		
 		
 		
 ""%7"8"8$??*Z=D   AjMqS 	
 	
 	
  #7 8 8&&II(q\ 	
 	
 	
  >??
 
(
 	rw||AfIq{Qx[/HIIJJ
7>>"',,qy(AhK!H+<UVVWW
 	*  X;8,	. 	
 	
 	
 	bJKKLLL0  hK
 
( 	rw||AfIq{Qx[/HIIJJ
7>>"',,qy(AhK!H+<UVVWW
0 1UVV	
 	
 	
 ,!+!1!1!3!3 	? 	?D+D77K777gFF ?,&&'=>>> !"67@@<QQ 	93    lO""#7888 	
 	
 	
 ""%=">">WMM*!"344c7
 
+ 
GGGGGr;   	overwritesilentrw   c                
    t          |pd          }d vrd d<   d vrd d<    d          d<   t          j                     d<   t           d                   d	z   d
<                        dg            t          j        d          dz    d         z    d<   t          j                             d                    d<   t           d                     d         r&t          j        
                     d         d          n d         }t          |            d         r,t          j        
                     d         d          }d d<   nbt          j        
                    | d         dz             }t          t           d         dz   ddg          }d
                    |           d<   t          |           t          t          j        
                    | d         dz                        t          t          j        
                    | d         dz                        d=d> fd"}|r t          j        
                    |d#          nd}	|	rt          j                            |	          s't          j        
                    t          dd$d#          }	t          |	d%&          5 }
|
                                }ddd           n# 1 swxY w Y    |t          j        
                    |d'          |                    |                      t          j        
                    | d          d(         z             }|                    d)          r! |||                    d)                      n  |||                    d*                      d+}d,} d-         d.u rl d         rdnd/ d0<    d         rdn
 d         dz    d1<    |t          j        
                     d         d2          |                    |           d3            d4         d.u rl d         rdnd/ d0<    d         rdn
 d         dz    d1<    |t          j        
                     d         d5          |                    |           d6           |rdS t)                       t)          t+          t-          d7                               t)                       t)          t-          d8          |z  d9            d-         s d4         rt)          t-          d:                     n!t)          t-          d;          ||fz             t)          t-          d<                     t)                       dS )?z(Generate project based on values in *d*.r   mastertoctreemastertocmaxdepth   r*   root_docnowr   =project_underliner   z%YrU   r   	copyrightr%   r&   r   buildexclude_patternsr'   z	Thumbs.dbz	.DS_Store	templatesstaticNfpathr0   contentnewlineri   r1   rx   c                `   st           j                            |           sfdvrt          t	          d          | z             t          | dd|          5 }|                    |           d d d            d S # 1 swxY w Y   d S dvr!t          t	          d          | z             d S d S )NquietzCreating file %s.wutf-8)encodingr   z!File %s already exists, skipping.)rD   r%   r   r7   r   openwrite)r   r   r   fr   r   s       r9   
write_filezgenerate.<locals>.write_file  s
    	GBGNN511 	Gab,--5666eS7GDDD !   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ab<==EFFFFF  s   A<<B B zconf.py.jinja
quickstartr   )r   r   r)   zquickstart/master_doc.rst.jinjazquickstart/root_doc.rst.jinjazquickstart/Makefile.new.jinjazquickstart/make.bat.new.jinjar+   Tr!   rsrcdir	rbuilddirMakefile
r,   make.batz
z:Finished: An initial directory structure has been created.zYYou should now populate your master file %s and create other documentation
source files. r3   z<Use the Makefile to build the docs, like so:
   make builderzYUse the sphinx-build command to build the docs, like so:
   sphinx-build -b builder %s %szPwhere "builder" is one of the supported builders, e.g. html, latex or linkcheck.rL   )r   r0   r   r0   r   ri   r1   rx   )rv   timeasctimer   
setdefaultstrftimerD   r%   abspathr   rV   mapreprr   r   r   readrender_stringr   r   r7   r	   r   )r   r   r   rw   r   srcdirbuilddirr   r   	conf_pathr   	conf_text
masterfilemakefile_templatebatchfile_templates   ``             r9   generater     s    "+"344Ha/!##!"
hKAjM|~~AeH)!I,77#=ALLr"""]4((4/!H+=AkN&	**AfIai23E(IRW\\!F)X...&	Ffx <7<<&	733 "
7<<%7(:;;%7"
 
 !%		*: ; ;
hbgll61U8k#9::;;;bgll61U8h#677888G G G G G G G G ?JS[/:::tI 
BGNN955 
GLLlO
 
	 
i'	*	*	* aFFHH	               Jrw||FI..0F0FyRS0T0TUUUfakAhK&?@@J$$%FGG T
:x/PRSTTUUUU
:x/NPQRRSSS78}#$U84xx)$%eHD!E(W2D+
GLL6J//OO-q11	
 	
 	
 	~#$U84xx)$%eHD!E(W2D+
GLL6J//OO.22	
 	
 	
  	GGG	$rNOO
P
PQQQ	GGG	
	
 	
 		
     	} 	
+ 	
bPQQRRRR3  x 	!	
 	
 	
 

-	
 	
   
GGGGGs   3KKKc                l   | d         }t           j                            |          sdS t           j                            |          sdS ddht	          t          j        |                    z  rdS | d         rbt           j                            d|          }t           j                            |          sdS t           j                            |          sdS d| d	         d
z   | d	         dz   | d         | d         z   g}t	          |          t	          t          j        |                    z   S )Nr%   TFr   r   r&   r   r   r'   r   r   r*   r)   )rD   r%   r   rF   setlistdirrV   )r   dirreserved_namess      r9   	valid_dirr      s   
F)C7>># t7== uJ#bjoo"6"66 ux gll8S))w~~c"" 	4w}}S!! 	5 		%8	%;	(ak!	N >""SC%9%9999r;   argparse.ArgumentParserc            
        t          d          } t          j        dt          d          |           }|                    ddddd t          d	          
           |                    ddddt          z             |                    ddddt          d                     |                    t          d                    }|                    dddd t          d          
           |                    dddt          d                     |                    ddd t          d!          "           |                    t          d#                    }|                    d$d%d&d't          d(          )           |                    d*d+d,d-t          d.          )           |                    d/d0dd1t          d2          3           |                    d4d5d6d7t          d8          )           |                    d9d:d;d<t          d=          )           |                    d>d?d@t          dA          "           |                    dBdCdDt          dE          "           |                    dFddGt          dH          I           |                    t          dJ                    }t          D ]2}|                    dK|z  dLdM|z  dNt          dO          |z  P           3|                    dQdRdNdSt          dT          U           |                    t          dV                    }|                    dWddXdYt          dZ          
           |                    d[ddXt          d\                     |                    d]dd^dYt          d_          
           |                    d`dd^t          da                     |                    dbdcddddYt          de          
           |                    t          df                    }|                    dgdhdidjt          dk          )           |                    dldmdSdnt          do          p           |S )qNz
Generate required files for a Sphinx project.

sphinx-quickstart is an interactive tool that asks some questions about your
project and then generates a complete documentation directory and sample
Makefile to be used with sphinx-build.
z %(prog)s [OPTIONS] <PROJECT_DIR>z:For more information, visit <https://www.sphinx-doc.org/>.)usageepilogr   z-qz--quiet
store_truer   z
quiet mode)actiondestrh   helpz	--versionr   show_versionz%%(prog)s %s)r   r   r   r%   PROJECT_DIRr!   ?zproject root)metavarrh   nargsr   zStructure optionsz--sepr&   z,if specified, separate source and build dirsz--no-sepstore_falsez/if specified, create build dir under source dir)r   r   r   z--dotDOTr"   z&replacement for dot in _templates etc.)r   rh   r   zProject basic optionsz-pz	--projectPROJECTr   zproject name)r   r   r   z-az--authorAUTHORr   zauthor namesz-vVERSIONr   zversion of project)r   r   rh   r   z-rz	--releaseRELEASEr   zrelease of projectz-lz
--languageLANGUAGEr(   zdocument languagez--suffixSUFFIXr#   zsource file suffixz--masterMASTERr$   zmaster document namez--epubFzuse epub)r   rh   r   zExtension optionsz--ext-%sappend_constr   r   zenable %s extension)r   constr   r   z--extensionsr   r   zenable arbitrary extensions)r   r   r   r   zMakefile and Batchfile creationz
--makefiler+   Tzcreate makefilez--no-makefilezdo not create makefilez--batchfiler,   zcreate batchfilez--no-batchfilezdo not create batchfilez-mz--use-make-mode	make_modez#use make-mode for Makefile/make.batzProject templatingz-tz--templatedirTEMPLATEDIRrw   z%template directory for template filesz-dz
NAME=VALUE	variableszdefine a template variable)r   r   r   r   )r   argparseArgumentParseradd_argumentr   add_argument_groupr   )r   parsergroupexts       r9   
get_parserr   :  s   	3 K $0NOO  F      !44	     s#B~DVDV     %%b)<&=&=>>E	>??     
ABB	     
899	     %%b)@&A&ABBE	k992nCUCU     
j(>@R@R     
$%%     
$%%     
#$$     
Hf2>R;S;S     
HgB?U<V<V     
u2j>>     %%b)<&=&=>>E 
 
!!C')**S0 	 	
 	
 	
 	
 
-..     %%b)J&K&KLLE	!""     
())	     
"##     
)**	     
566     %%b)=&>&>??E	788     
,--     Mr;   rA   argvSequence[str]intc               `   t          j        t           j        d           t          j                                          t                      st                       t                      }	 |                    | pt          j
        dd                    }n# t          $ r}|j        cY d }~S d }~ww xY wt          |          }d |                                D             }|                    dg            |d         d d          D ]O}d|v rI|d                             |           |d                             |                    d                     P	 d|v r5ddh                    |          st)          t+          d	                     dS h d
                    |          r|                    dd           |                    d|d                    t,                                          }|                    |           |}t3          |          sUt)                       t)          t5          t+          d                               t)          t+          d                     dS nt7          |           n5# t8          t:          f$ r! t)                       t)          d           Y dS w xY w|                    dg           D ]O}	 |                    d          \  }}	|	||<   !# t>          $ r" t)          t+          d          |z             Y Lw xY wtA          |d|j!                   dS )Nr   rc   c                    i | ]
\  }}|||S rL   rA   ).0kvs      r9   
<dictcomp>zmain.<locals>.<dictcomp>  s    555$!Qq}A}}}r;   r   ,r   r   r   zH"quiet" is specified, but any of "project" or "author" is not specified.>   r   r   r   r   r   zHError: specified path is not a directory, or sphinx files already exist.zWsphinx-quickstart only generate into a empty directory. Please specify a new root path.z[Interrupted.]   r   r   zInvalid template variable: %sF)r   rw   r   )"locale	setlocaleLC_ALLsphinxinit_consoler   r
   r   
parse_argsr5   r   r   codevarsr   r   r   extendsplitr   r7   r   DEFAULTScopyupdater   r	   r   KeyboardInterruptEOFErrorget
ValueErrorr   rw   )
r   r   argsrs   r   r   d2variabler   values
             r9   mainr    sr   
V]B'''
M   #%%  \\F  !5!""66   x 	T

A55!''))555A LLr"""qqq! 3 3#::lO""3'''lO""399S>>222)a<<x(11!44 5    q)))22155 	LLB'''LLAiL111BIIaLLLAQ<< 4     ;    q!$ QKKKx(   ss
 EE+r** B B	B"..--KD%AdGG 	B 	B 	B"455@AAAAA	B Q%T-=>>>>1sO   ))B 
B.B)#B.)B.7I< CI< +I< <.J.-J.
K(()LL__main__rc   )r/   r0   r1   r0   rX   )rQ   r0   r1   rR   )rB   r0   r1   rZ   )rg   r0   rh   ri   rj   rk   r1   rl   )r   r   r1   rx   )TFN)
r   r   r   rZ   r   rZ   rw   ri   r1   rx   )r   r   r1   rZ   )r1   r   )rA   )r   r   r1   r   )Br   
__future__r   r   r  rD   os.pathr5   r   typingr   docutils.utilsr   sphinx.localer  r   r   sphinx._cli.util.colourr   r	   r
   r   r   r   sphinx.util.osutilr   sphinx.util.templater   collections.abcr   r   r   readliner6   ImportErrorREADLINE_AVAILABLEgetattrrp   parse_and_bindr   r  ro   rq   r-   escape_coder:   	Exceptionr=   rH   rJ   rM   rP   rY   ra   r)   rf   rt   rv   r   r   r   r   r  r>   r   r   rA   r;   r9   <module>r/     s   = = " " " " " "   				  



              ' ' ' ' ' '     3 3 3 3 3 3 3 3                    ( ( ( ( ( ( / / / / / / 222222221OOO 00  wwxB???K 1 566660000  - - -',,- r@AArFGG2OPPBJKK677r?@@rDEELMMRSS2UVV 
 	 	 <7 A@@@@@@BBBBBB !'"2ORHHH; 	==kJJ   ( ( ( ( (i ( ( (               % % % %       &.    <: : : : : : : :0P P P Pj "	y y y y yx: : : :4c c c cLL L L L L^ z
*TT#(122,''
(
(( s   *B2 2	B>=B>