
    `fo                      4   d 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m	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddlZddl Zddlm!Z!m"Z"m#Z#m$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/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z> dZ?ddl@mAZA  e4eB          ZCdZDdZEdZFdZGdZHdZIdZJ edd          ZK eKeId ejL        d!d!          ZM eKeHd"ejN        dd          ZO eKeGd#ejP        d!d!          ZQ eKeFd$ejN        dd          ZR eKeFd%ejS        d!d!          ZTe#jU        jV        ZWe#jX        jV        ZYe#jZ        jV        Z[e$j\        Z\e$j]        Z]e$j^        Z^e$j_        Z_e$j`        Z`e$ja        Zae$jb        Zb ece^e`e_h          Zdg Zei Zf ed&d'          Zgd( Zhd) Zid* Zjd+ Zk G d, d-          ZldGd.Zmddd/eld0d0dejn        egedf
d1eod2eej)        ejp        jq        f         d3eejr        js        jt                 d4eeo         d5eud6eel         d7eud8eud9eejv                 d:e	g ewf         d&eeg         d;eeo         d<e	eoeed=f         e
eoef         egegf         fd>ZxdGd?Zyd@ ZzedfdAZ{eddfdBZ|dC Z}dGdDZ~e!fdEZdF ZdS )HzTrace task execution.

This module defines how the task execution is traced:
errors are recorded, handlers are applied and so on.
    N)
namedtuple)	AnyCallableDict	FrozenSetOptionalSequenceTupleTypeUnion)warn)ExceptionInfoExceptionWithTraceback)EncodeError)loads)prepare_accept_content)	safe_reprsafe_str)current_appgroupsignalsstates)_task_stack)Context)Task)BackendGetMetaErrorIgnoreInvalidTaskErrorRejectRetry)AsyncResult)
get_logger)gethostname)
mro_lookup)saferepr)get_pickleable_etypeget_pickleable_exceptionget_pickled_exception)	TraceInfobuild_tracer
trace_tasksetup_worker_optimizationsreset_worker_optimizations)successful_requestszTask %(name)s[%(id)s] receivedzATask %(name)s[%(id)s] succeeded in %(runtime)ss: %(return_value)sz.Task %(name)s[%(id)s] %(description)s: %(exc)sz%Task %(name)s[%(id)s] %(description)szTask %(name)s[%(id)s] %(exc)sz$Task %(name)s[%(id)s] retry: %(exc)slog_policy_t)formatdescriptionseverity	tracebackmailrejected   ignoredzINTERNAL ERRORzraised expectedzraised unexpected
trace_ok_t)retvalinforuntimeretstrc                 D    t                               | |d|i           dS )zzLog 'fmt % context' with severity 'INFO'.

    'context' is also passed in extra with key 'data' for custom handlers.
    data)extraN)loggerr:   )fmtcontexts     B/var/www/html/env/lib/python3.11/site-packages/celery/app/trace.pyr:   r:   ~   s'    
 KKWVW$5K66666    c                 L    t          | j        |t          t          hdg          S )z+Return true if the task overrides ``attr``.zcelery.app.task)stopmonkey_patched)r$   	__class__BaseTaskobject)taskattrs     rC   task_has_customrM      s,    dnd(F1C&7%8: : : :rD   c                     t          |t                    rt          S t          |t                    rt          S |j        rt          S | j        rt          || j                  rt          S t          S N)

isinstancer   log_policy_rejectr   log_policy_ignoreinternallog_policy_internalthrowslog_policy_expectedlog_policy_unexpected)rK   einfoexcs      rC   get_log_policyrZ      sk    #v 	%  	C	 	  %  	 %""; 	':c4;77 	'&&$$rD   c                 (    t          | dd          p|S )z8Use 'shadow' in request for the task name if applicable.shadowN)getattr)requestdefaults     rC   get_task_namer`      s     7Hd++6w6rD   c                   J    e Zd ZdZdZddZ	 ddZd Zd	 Zdd
Z	ddZ
d ZdS )r)   z!Information about task execution.stater9   Nc                 "    || _         || _        d S rO   rb   )selfrc   r9   s      rC   __init__zTraceInfo.__init__   s    
rD   FTc                     |j         r|j        }n|r
|j        rd}n| }	 t          | j        t
          | j        i| j                 ||||          S )NT)store_errorscall_errbacks)ignore_resultstore_errors_even_if_ignoredstore_eager_resultRETRYhandle_retryFAILUREhandle_failurerc   )re   rK   reqeagerri   rh   s         rC   handle_error_statezTraceInfo.handle_error_state   s~     	%<LL 	%t. 	%LL$9L4$T(
 * C#/$13 3 3 	3rD   c                 L    |                      ||t                                 d S rO   
_log_errorr   re   rK   rq   kwargss       rC   handle_rejectzTraceInfo.handle_reject   "    c=??33333rD   c                 L    |                      ||t                                 d S rO   ru   rw   s       rC   handle_ignorezTraceInfo.handle_ignore   rz   rD   c                    t          j                    \  }}}	 | j        }t          |||f          }	|r-|j                            |j        |j        |	j        |           |	                    |j        |j        |j
        |j        |	           t          j                            ||||	           t          t           |j        t#          ||j                  t'          |          d           |	~S # ~w xY w)zHandle retry exception.r^   )senderr^   reasonrX   )idnamerY   )sysexc_infor9   r   backendmark_as_retryr   rY   r3   on_retryargsrx   r   
task_retrysendr:   	LOG_RETRYr`   r   str)
re   rK   rq   rh   rx   type__tbr   rX   s
             rC   rn   zTraceInfo.handle_retry   s    |~~q"	[F!5&""566E **FFJ +    MM&*cfch
EJJJ##4+1 $ @ @ @f%c49556{{    
 FFFFs   CC2 2C5c           	      &   | j         }t          |          }|j        t          j                    \  }}|_        t          t          |                    }t          |||j        f          }	|j        	                    |j
        ||	j        |||           |                    ||j
        |j        |j        |	           t          j                            ||j
        ||j        |j        |j        |	           |                     |||	           |	S )zHandle exception.Nr   )r^   store_resultri   )r   task_id	exceptionr   rx   r3   rX   )r9   r'   __traceback__r   r   r&   typer   r   mark_as_failurer   r3   
on_failurer   rx   r   task_failurer   rv   )
re   rK   rq   rh   ri   orig_excrY   r   exc_typerX   s
             rC   rp   zTraceInfo.handle_failure   s   ;&x00$ '*lnn#Aq##'X77 #s7H'IJJJ$$FCl' 	% 	
 	
 	
 	SVSXsz5AAA!!sv,/ch),,/,=(-	 	" 	/ 	/ 	/
 	c5)))rD   c           
         t          |j                  x}|_        t          |t                    r|j        x}|_        t          |          t          |j                  |j        |	                    d          pt          |j
                  |	                    d          pt          |j                  f\  }}}}}	t          |||          }
|j        |j        t          ||j                  ||||	|
j        |j        d	}t&                              |
j        |
j                                        ||
j        r|nd d|i           d S )Nargsrepr
kwargsrepr)	hostnamer   r   rY   r3   r   rx   r1   rS   r>   )r   r?   )r(   r   rP   r   rY   r   r   r3   r   getr   rx   rZ   r   r   r`   r   r1   rS   r@   logr2   r0   strip)re   rK   rq   rX   eobjr   r3   r   sargsskwargspolicyrB   s               rC   rv   zTraceInfo._log_error   sG   !6u!G!GGud233 	.%)X-D5?dOOU_%%NGGJ69SX#6#6GGL!!:Ysz%:%::
6	9hw  eT22 &!#ty11"!-

 

 	

6?FM$7$7$9$97(.(8BHHd '* 	 	, 	, 	, 	, 	,rD   rO   )FT)T)TT)__name__
__module____qualname____doc__	__slots__rf   rs   ry   r|   rn   rp   rv    rD   rC   r)   r)      s        ++#I   
 7;3 3 3 3 4 4 44 4 4   0   <, , , , ,rD   r)   c                 $   d }| 0t          | d          r| j        }n/t          j                    \  }}}nt          j                    \  }}}|B	 |j                                         |j        j         n# t          $ r Y nw xY w|j        }|@d S d S )Nr   )	hasattrr   r   r   tb_frameclearf_localsRuntimeErrortb_next)rY   r   r   s      rC   traceback_clearr     s     
B
3(( 	&"BB|~~HAq""<>>1b
.	KK    	 	 	D	 Z .....s   %A5 5
BBTFr   rK   loaderr   rh   Inforr   	propagateapp	monotonicIGNORE_STATESreturn.c           !      l   	
 !"#$% t          d          rnj        |pj        }j        }j        % o	j        o| %r|s
j        rdn o| j        j        sj        oj        j	        oj
        j        pt                      j        j        |j        |j        d#d$d"t          d          rj        #t          d          rj        $t          d          rj        "t'          j                    j        }|j        |j        t0          j        t0          j        t2                              t6          j                  j        t<          j        j         t<          j!        j         t<          j"        j         !ddl#m$} |j%         tL          dfd	tF          j'        j(        j)        d
tT          tV          tX          tV                   f         dtZ          dt\          dt^          t`          t`          t`          f         f
fd	 ddtZ          dtb          t`                   dtd          tZ          t`          f         d	tf          td          tZ          t`          f                  d
f
	  !"#$
%fd}|S )a=  Return a function that traces task execution.

    Catches all exceptions and updates result backend with the
    state and result.

    If the call was successful, it saves the result to the task result
    backend, and sets the task status to `"SUCCESS"`.

    If the call raises :exc:`~@Retry`, it extracts
    the original exception, uses that as the result and sets the task state
    to `"RETRY"`.

    If the call results in an exception, it saves the exception as the task
    result, and sets the task state to `"FAILURE"`.

    Return a function that takes the following arguments:

        :param uuid: The id of the task.
        :param args: List of positional args to pass on to the function.
        :param kwargs: Keyword arguments mapping to pass on to the function.
        :keyword request: Request dict.

    __call__TNbefore_start
on_successafter_returnr   )canvasr^   rY   rc   ri   r   c                 t    r  ||          }|                     	| |          }|||j        |j        fS )z1Handle any errors raised by a `Task`'s execution.)rr   ri   )rs   rc   r9   )
r^   rY   rc   ri   IRr   rr   r   rK   s
         rC   on_errorzbuild_tracer.<locals>.on_error  sY      	D  'm ! 
 
 !QWah&&rD   uuidr   rx   c                    dx}x}x}x}x}}	d}
 $            }	 	 |j          n# t          $ r t          d          w xY wt          |pi |d|          }
|
j        o|
j                            dd          }r|r|
j        t          v r 6||||          S t          |
j                  }	 |j	        }	|	t          k    r:t          t          |
j        t          |
%          dd            6||||          S n# t          $ r Y nw xY w .2           |
j        p| }!r|
j                            d	          nd} -|
           	 +rt!          2| 2||
            #| 2           7r&2j                            | ' dt&          |
           	 4r 4| ||            |i |x}}t          }		 2j        j        }|rt-          2j        j                  dk    rg g }}|D ]O} 0|          }t/          |t0                    r|                    |           :|                    |           P|D ]}|                    |f| ||           |r)t1          |                              |f| ||           n+ 0|d                                       |f| ||           |
j        }|r: 0|                                          }|                    |f|| ||           2j                            | ||
,           t=          |/          } $            |z
  }5r 5|| ||           1rt?          2|           rnt          t@          | t          |
%          |||
                    d          ptC          |          |
                    d          ptC          |          d           np# tD          $ r} &|
|          \  }}}	}Y d}~nOd}~ww xY w# tF          $ r^} tH          |          tK          d          }}|j	        |j&        }}	|'                    2|
           tQ          |           Y d}~nd}~wtR          $ r^} tT          |          tK          d          }}|j	        |j&        }}	|+                    2|
           tQ          |           Y d}~n~d}~wtX          $ r2} &|
|tZ          d          \  }}}	}tQ          |           Y d}~nDd}~wt\          $ r*} &|
|          \  }}}	}tQ          |           Y d}~nd}~wt^          $ r  w xY w|	vr3r 3|	|| ||d           	 *rta          2| 2||||	            )              (             sr	 2j        1                                  "             n# td          tf          th          f$ r  t\          $ r(}tj          6                    d|d           Y d}~nd}~ww xY wn#  )              (             sp	 2j        1                                  "             w # td          tf          th          f$ r  t\          $ r'}tj          6                    d|d           Y d}~w d}~ww xY ww xY w# 	 *rta          2| 2||||	            )              (             sp	 2j        1                                  "             w # td          tf          th          f$ r  t\          $ r'}tj          6                    d|d           Y d}~w d}~ww xY ww #  )              (             sp	 2j        1                                  "             w # td          tf          th          f$ r  t\          $ r'}tj          6                    d|d           Y d}~w d}~ww xY ww xY wxY wn[# th          $ r  t\          $ rD}to          2| ||||           r tq          2|          }|
 &|
|          \  }}}}Y d}~nd}~ww xY w 6||||          S )zExecute and trace a `Task`.Nz'Task keyword arguments is not a mappingF)r   called_directlyrx   redeliveredr   z$Task already completed successfully.)r   r   r1   priority)r   r   rK   r   rx   )pidr   r~   r6   )	parent_idroot_idr   r   )chainr   r   r   )r   resultr   r   )r   r   return_valuer;   r   rx   TrS   )ri   )r   r   rK   r   rx   r9   rc   zProcess cleanup failed: %rr   )9itemsAttributeErrorr   r   delivery_infor   r   r.   r!   rc   SUCCESSr:   LOG_IGNOREDr`   r   r   send_prerunr   r   STARTEDr^   	callbackslenrP   r   appendapply_asyncr   popmark_as_doner%   send_successLOG_SUCCESSr   r   r   REJECTEDr   r9   ry   r   r   IGNOREDr|   r    rm   	ExceptionBaseExceptionsend_postrunprocess_cleanupKeyboardInterrupt
SystemExitMemoryErrorr@   error_signal_internal_errorreport_internal_error)8r   r   rx   r^   r   r   TRstrr9   rc   task_request
time_startr   rr   task_priorityr   sigsgroupssiggroup_r   _chsigrY   r   r   r   
_does_infor   deduplicate_successful_tasksrr   funr   inherit_parent_priorityloader_cleanuploader_task_initr   r   r   r   pop_requestpop_taskpostrun_receiversprerun_receiverspublish_resultpush_request	push_taskresultrepr_maxsize	signaturesuccess_receiversrK   task_after_returntask_before_starttask_on_successr8   track_starteds8                            rC   r+   z build_tracer.<locals>.trace_task  s   $ -100A00D06EY[[
m	9?! ? ? ?&=? ? ?? #7=bt38I I IL (5 T+9==mUSS + 9 9?&999%:aAt444S9999GE ''["./$1,$E$E+Q+ +   
  *z!Q4888 ( +   D IdOOO"*2dG'2L6:::FFF-1 L&&&A8# :tT%)&: : : :  t,,,  L--cx@@' , .   [( >))$f===!$d!5f!5!55A#E*A %)L$:	$ ""4<#9::Q>>/12f+4 !9 !9C*3)CS*A*A*AC'1#u'='= %9(.c(:(:(:(:(,C(8(8(8(8.4 !& !&F$*$6$6)/	261> %7 %& %& %& %&
 $( !&$)$C$8$8$8$D$D)/	261> %E %& %& %& !*	)A,C @ @ @ L L%+Iw-: !M !" !" !" !- 2  %.Yuyy{{%D%D%DF"..!'	*.)6 /   
 11 &,    (+=>>%IKK*4* H+OFD$GGG, E(VDDDD%  &*(5lD(I(I04+,(4(8(8(D(D(W	RV*6*:*:<*H*H*]IV\L]L]/ /    ' J J J.6h|S.I.I+1eVVVVVVJI  ) ) )4#..t0L0L0LqA$%GQX6EOOD,777#C(((((((( ) ) )4--}d/K/K/KqA$%GQX6EOOD,777#C(((((((( ) ) )*2($c5+G +G +G'Aq%#C((((((((  ) ) )*2(<*E*E'Aq%#C(((((((($   N --( ))!64vt  8( A$D$T*.v,2%A A A A HJJJKMMM  88 L88:::*N,,,, 1:{K " " "!( 8 8 8"LL)Es26 ) 8 8 8 8 8 8 8 888 HJJJKMMM  88 L88:::*N,,,, 1:{K " " "!( 8 8 8"LL)Es26 ) 8 8 8 8 8 8 8 8888( A$D$T*.v,2%A A A A HJJJKMMM  88 L88:::*N,,,, 1:{K " " "!( 8 8 8"LL)Es26 ) 8 8 8 8 8 8 8 888 HJJJKMMM  88 L88:::*N,,,, 1:{K " " "!( 8 8 8"LL)Es26 ) 8 8 8 8 8 8 8 888  	 	 	 	9 	9 	9"4tVWcJJJ %dC00A'%XlC88
1a	9 z!Q4(((s  $ ^# >A^# ^# /C< 6A^# ;^# <
D	^# D		A ^# 
A
Y3  O( 6EN? B2Y3 ?
O%	O Y3  O%%Y3 (
T,2AQY3 T,AR1,Y3 1T,>(S+&Y3 +T,8 TY3 T,,Y3 W( ^# 5#V ^# !W#;W^# W##^# (Y0 #X$#Y0$!Y,Y'"Y0'Y,,Y00^# 3^5\^$#[^!\)\^\^^,#]^!^1^^^^^^# #_;7:_66_;rO   )4rM   runr   rj   r  rl   conftask_acks_late	acks_late#worker_deduplicate_successful_tasksr   
persistentr#   task_inherit_parent_priorityon_task_initon_process_cleanupr   r   r   osgetpidrequest_stackpushr   r   r@   isEnabledForloggingINFOr  r   task_prerun	receiverstask_postruntask_successceleryr   maybe_signaturero   r   rK   r   r   r   r   r   boolr
   r   r	   r   r   )&r   rK   r   r   rh   r   rr   r   r   r   r8   r   rj   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  s&   `` ` ```````    @@@@@@@@@@@@@@@@@@@@@@rC   r*   r*   )  s   V "$
33
A$$C!szF&M&MIL4#5#Km:KM  9] 9t'> 9"8='8%(X%<%N %?(+(T%?(+(> ! (;==H!hC*.NOt^,, . -t\** */t^,, . -
)++C&M %L#K IH$$W\22J0*4,6,6&I
 !"&	' 'Z_,'y$y/12' '  	' ,1sC1D+E	' ' ' ' ' ' ' ' '$ 15	C) C)C)3-C) cNC) d38n-	C) :D	C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C) C)J rD   c           	      :   |si n|}	 | j         t          | j        | fi || _         |                      ||||          S # t          $ rQ}t	          | |||||           t          t          | |          t          t          |          dd          cY d}~S d}~ww xY w)zTrace task execution.Ng        )		__trace__r*   r   r   r   r8   r   r)   ro   )rK   r   r   rx   r^   optsrY   s          rC   r+   r+   \  s    ,bbWG`>!)$)TBBTBBDN~~dD&'::: ` ` `tT4#FFF/c::Igs<S<SUXZ^________`s   6? 
B	ABBBc           
         	 t          j                    \  }}}t                      }t          |j                  |_        t          |j                  |_        t          j        	                    | |||||||           ~dS # ~w xY w)zJSend a special `internal_error` signal to the app for outside body errors.)r   r   r   rx   r^   r   r3   rX   N)
r   r   r   r'   r   r&   r   r   task_internal_errorr   )	rK   r   r   rx   r^   rY   r   r   rX   s	            rC   r   r   h  s    <>>1b25?CC)%*55
#(( 	) 		
 		
 		
 BBBs   A>B Bc                 B   |pt          j                    }d }	|r-t          |j        j                  }
 |||||
          \  }}}	n|\  }}}	t                      } |j        |||ddfi |	pi  t          |j        |          |||||          \  }}}}|rd||fnd||fS )NacceptFr   rx   r   is_eagerr   r6   r   )	r   _get_current_objectr   r  accept_contentr#   updater+   tasks)r   r   r^   bodycontent_typecontent_encodingr   r   extra_requestembedr+  r   rx   r   r   r   r   r   s                     rC   trace_task_retr7  }  s    
2022CE #'(?@@#e, 0
 
 
fee #fe}}HGN%    
"   sy#T67E E EMAq!T+Aq!994|+rD   c	                     |st           n|}d }
|\  }}}|r |||||          \  }}}
n|\  }}}
 |j        |||ddfi |
pi  ||                              ||||          \  }}}}|rd||fnd||fS )Nr*  Fr,  r6   r   )
_localizedr0  r%  )rK   r   r^   r2  r3  r4  r   _locr   r   r6  r1  r+  r   rx   r   r   r   r   s                      rC   fast_trace_taskr;    s     "+::tDE"E68 ##e, 0
 
 
fee #feGN%    
"   $K))dFG MAq!T +Aq!994|+rD   c                    t          j                    \  }}}	 | j                            |d          }t	          |||fd          }t          t          d                    ||j                                       |~S # ~w xY w)NpickleTr   z'Exception raised outside body: {!r}:
{})	r   r   r   prepare_exceptionr   r   RuntimeWarningr0   r3   )rK   rY   _type_value_tbr   s         rC   r   r     s    E63//X>> %!5EEE^6==X') )* * 	+ 	+ 	+ CCs   A%B   Bc                    |pt                      }t                       |                                  |                                  |                                  | j        t          | j        j                  |gt          dd<   d| _
        dS )z#Setup worker related optimizations.NT)r#   _install_stack_protectionset_currentset_defaultfinalize_tasksr   r  r/  r9  use_fast_trace_task)r   r   s     rC   r,   r,     s    (;==H  OOOO LLNNN 	
sx677JqqqM #CrD   c                     	 t          t          d           n# t          $ r Y nw xY w	 t                              d          t          _        n# t          $ r Y nw xY wd| _        dS )z*Reset previously configured optimizations._stackprotectedBaseTask.__call__FN)delattrrI   r   _patchedr   r   KeyErrorrI  r   s    rC   r-   r-     s    +,,,,   $LL)<==   #Cs    
%%$A 
AAc                      t          t          dd          s5t          j        xt          d<   fd} | t          _        dt          _        d S d S )NrK  FrL  c                     | j         }|j        }|r5|j        s.t          |          dk    r|j        sd|_         | j        |i |S  | g|R i |S )Nr6   )r  top
_protectedr   r   r  )re   r   rx   stackrq   origs        rC   __protected_call__z5_install_stack_protection.<locals>.__protected_call__  sw    &E)C 13> 1JJ!OOC,?O!"tx00004.t...v...rD   T)r]   rI   r   rN  rK  )rV  rU  s    @rC   rD  rD    sh     8.66 (/7/@@$%	/ 	/ 	/ 	/ 	/ /#'   ( (rD   rO   )r   r  r  r   timecollectionsr   typingr   r   r   r   r   r	   r
   r   r   warningsr   billiard.einfor   r   kombu.exceptionsr   kombu.serializationr   loads_messager   kombu.utils.encodingr   r   r!  celery.loaders.appr   r   r   r   celery._stater   celery.app.taskr   r   rI   celery.exceptionsr   r   r   r   r    celery.resultr!   celery.utils.logr"   celery.utils.nodenamesr#   celery.utils.objectsr$   celery.utils.safereprr%   celery.utils.serializationr&   r'   r(   __all__celery.worker.stater.   r   r@   LOG_RECEIVEDr   LOG_FAILURELOG_INTERNAL_ERRORr   LOG_REJECTEDr   r/   WARNrQ   r  rR   CRITICALrT   rV   ERRORrW   r  r   r   r  r   r   r   r   r   r   r   rm   ro   EXCEPTION_STATES	frozensetr   r9  rN  r8   r:   rM   rZ   r`   r)   r   r   r   localPromiseProxyloadersr   	AppLoaderr#  Celeryintr*   r+   r   r7  r;  r   r,   r-   rD  r   rD   rC   <module>r{     s   
  				 



  " " " " " " Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y       @ @ @ @ @ @ @ @ ( ( ( ( ( ( 6 6 6 6 6 6 6 6 6 6 6 6 4 4 4 4 4 4 4 4      6 6 6 6 6 6 6 6 6 6 6 6 % % % % % % # # # # # # , , , , , , Z Z Z Z Z Z Z Z Z Z Z Z Z Z % % % % % % ' ' ' ' ' ' . . . . . . + + + + + + * * * * * * l l l l l l l l l l
 4 3 3 3 3 3	H		


 


	 z> 
 !Lz7<ANN  Liq!LL "l('*:Aq   #l"GL!Q   %$gmQ   !&#(#(
.
.
.?
.* 	7E8455 
Z&MNN
7 7 7: : :
% 
% 
%7 7 7p, p, p, p, p, p, p, p,f   2 :>"&! )'+'+~'1(5p ppFK!::;p +56p 3-	p
 p 9op p p fm$p BG$p $p !~p 	#uS#XS#X<jHIp p p pf		` 	` 	` 	`  , ,9d, , , ,. -:!, , , ,,
 
 
# # # #< $/ 
$ 
$ 
$ 
$( ( ( ( (rD   