
    %jt                     p   d dl mZmZ d dlZd dlmZ d dlmZmZm	Z	m
Z
 d dlZd dlmZ d dlmZ d dlmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d d	lm Z m!Z!m"Z"m#Z#m$Z$m%Z% d d
l&m'Z'  ejP                  e)      Z* ejV                  dedddddgi       ejX                  dddd       ejX                  dde-dd       ejX                  dddd       ejX                  d e.d!d"d#$       ejX                  d%e.d&d"d'$      ej^                  d(ej`                  d)e1d*e	e-   d+e-d,e.d-e.d.dfd/                                                 Z2d0e-fd1Z3	 d	d2e-d3e	ee-ef      d.efd4Z4e2jk                  d5d6dddgi7       ejX                  d8dd9      eed:e1d.dfd;                            Z6e2jk                  d<d=dddgi7      ee	 	 d
d>                     Z7e2jk                  d?d@dddgi7      ee	 	 d
dA                     Z8e2jk                  dBdCdddgi7      ee	 	 d
dD                     Z9e2jk                  dEdFdddgi7       ejt                  dGddHdIJ      eedGe-d.dfdK                            Z;e2jk                  dLdMdddgi7       ejX                  dNddO       ejX                  dPde.dQR       ejX                  dSdTddUV       ejX                  dWddX      eedYe1dZe	e.   d[e	e-   d\e1d.df
d]                                                 Z<e2jk                  d^d_dddgi7      ee	 	 d
d`                     Z=e2jk                  dadbdddgi7      ee	 	 d
dc                     Z>e2jk                  dddedddgi7      ee	 	 d
df                     Z?e2jk                  dgdhdddgi7       ejX                  didje.dkR       ejt                  dldmddno      eedpe.dle
e-dqf   d.dfdr                                   Z@e2jk                  dsdtdddgi7       ejX                  duddvV       ejX                  dwddx       ejX                  dyddz       ejt                  d{d|}      eed~e	e-   de1de1d{e-d.df
d                                                 ZAe2jk                  dddddgi7       ejX                  ddddV      eede-d.dfd                            ZBe2jk                  dddddgi7       ejX                  dddd       ejt                  d{ddd|J      eede1d{e	e-   d.dfd                                   ZCe2jk                  dddddgi7       ejt                  dd}      eede-d.dfd                            ZDe2jk                  dddddgi7       ejt                  d{d|}      eed{e-d.dfd                            ZEe2jk                  dddddgi7       ejt                  d{d|}      eed{e-d.dfd                            ZFe2jk                  dddddgi7      ee	 	 d
d                     ZGe2jk                  dddddgi7      ee	 	 d
d                     ZHe2jk                  dddddgi7       ejt                  dd}      eede-d.dfd                            ZIe2jk                  dddddgi7       ejt                  d0d}      eed0e-d.dfd                            ZJe2jk                  dddddgi7       ejX                  ddd       ejt                  dd}      eede1de-d.dfd                                   ZKe2jk                  dddddgi7      ee	 	 d
d                     ZLe2jk                  dddddgi7       ejX                  dideMdR       ejt                  ddddJ       ejt                  ddddJ      eeedpeMde	e-   de	e-   ded.df
d                                                 ZNe2jk                  dddddgi7       ejX                  ddeMd¬R       ejt                  deMdë       ejt                  deMdë      eedeMdeMdeMd.dfdń                                          ZOe2jk                  dddddgi7       ejX                  ddeMdɬR       ejX                  dideMdR       ejt                  ddddJ       ejt                  ddddJ      eeedeMdpeMde	e-   de	e-   ded.dfdʄ                                                        ZPe2jk                  dddddgi7       ejX                  ddeMdͬR       ejX                  dde.dϬR       ejX                  ddeMdҬR       ejt                  ddԬ}       ejt                  dddeMd֬׫       ejt                  dddeMd٬׫       ejt                  dddeMd۬׫      eedeMde	e.   deMde-de	eM   de	eM   de	eM   d.dfdބ                                                                      ZQe2jk                  dddddgi7       ejX                  ddeMdR       ejt                  deMdë       ejt                  deMdë       ejt                  deMdë       ejt                  deMdë      eedeMdeMdeMdeMdeMd.dfd                                                        ZRe2jk                  dddddgi7       ejX                  dideMdR      eeedpeMded.dfd                                   ZSe2jk                  dddddgi7       ejX                  dideMdR       ejX                  ddd      eeedpeMde1ded.dfd                                          ZTe2jk                  dddddgi7       ejX                  d ej                  ddg      dd       ejX                  d ej                  g d      dd       ejX                  d de.dR       ejX                  dddV      eeede-de-de	e.   de	e-   ded.dfd                                                        ZVy(      )absolute_importprint_functionN)SimpleNamespace)AnyDictOptionalTuple)enable_pretty_logging)CategorizedGroup)U2CliClient
U2CliErrorensure_server)
_normalize_swipe_direction_optional_float_parse_swipe_fx_require_selector_selector_chain_selector_chain_code_selector_chain_payloadglobal_optionshandle_errorsselector_options)_absolute_filename_image_resolution_output_message_output_result_output_text
_parse_key)
run_serveru2cliFThelp_option_namesz-hz--help)nameclsinvoke_without_commandno_args_is_helpcontext_settingsz-dz--debugzshow log)is_flaghelpz-sz--serialSERIALzdevice serial number)typemetavarr(   z--server-hostz	127.0.0.1HOSTzu2cli server listen host)defaultr+   r(   z--server-portiE  PORTzu2cli server listen port)r*   r-   r+   r(   z--device-porti0#  z"uiautomator2 server port on devicectxdebugserialserver_hostserver_portdevice_portreturnc                    | j                  t               || j                  d<   || j                  d<   || j                  d<   || j                  d<   || j                  d<   t                |rt        j                  d       yy)u2   u2cli — command line interface for uiautomator2.r0   r1   r2   r3   r4   zdebug mode enabledN)ensure_objectdictobjr
   loggerr0   )r/   r0   r1   r2   r3   r4   s         c/var/www/oz-panel.ru/ozpay-pub/venv/lib/python3.12/site-packages/uiautomator2/agent_cli/commands.pyclir<      ss    , dCGGGCGGH(CGGM(CGGM(CGGM)*     keyc                 `    t        j                         j                         j                  |    S N)clickget_current_context	find_rootr9   )r>   s    r;   _get_globalrD   <   s%    $$&00266s;;r=   methodparamsc                     t         }t         |d       |d            \  }} |d       |d      d}|r|j                  |       |j                  | |      S )Nr2   r3   r1   r4   )r1   port)rD   r   updaterequest)rE   rF   gclient_payloads         r;   _request_device_methodrO   ?   sV     	Aa.-0@AIFA)*8a>NOGv>>&'**r=   serverzrun u2cli server in foreground)r"   r(   r&   z--foreground)r'   hidden
foregroundc                 @    t        t        d      t        d             y)zRun u2cli server in foreground.r2   r3   N)r   rD   )rR   s    r;   
cmd_serverrT   N   s     {=);}+EFr=   zstart-serverzstart u2cli serverc                      t        t        d      t        d            \  } }|rd}nd}t        |t        d      t        d      d       y)zStart u2cli server.r2   r3   zu2cli server startedzu2cli server is already running)hostrH   )extraN)r   rD   r   )rM   startedmessages      r;   cmd_start_serverrZ   \   sF     {=9;};UVJAw(3GK,FP[\iPj#klr=   zkill-serverzstop u2cli serverc                      t        t        d      t        d            } | j                         st        d       y| j	                  dd       t        d       y)	zStop u2cli server.r2   r3   zu2cli server is not runningNzserver.stopg       @)timeoutzu2cli server stopped)r   rD   
is_runningr   rJ   )rL   s    r;   cmd_kill_serverr^   m   sK     ]3[5OPF56
NN=#N.*+r=   zserver-statuszshow u2cli server statusc                      t        t        d      t        d            } | j                         s$dt        d      t        d      d}t        |       y| j	                         }d|d<   t        |       y)zShow u2cli server status.r2   r3   F)runningrV   rH   NTr`   )r   rD   r]   r   status)rL   ra   s     r;   cmd_server_statusrb   ~   sf     ]3[5OPF"K,FP[\iPjkv]]_FF96r=   
screenshotztake device screenshotfilenamezscreenshot.jpgFILENAME)requiredr-   r+   c                    t        t        d      t        d            \  }}t        |       }|j                  dt        d      t        d      |d      }t	        |t
              r|j                  d      xs |n|}t	        |t
              r|j                  d      nd	}t	        |t
              r|j                  d
      n
t        d      }|st        |      }d|i}|r||d
<   |r||d<   t        d| z  |       y	)zTake device screenshot.r2   r3   rc   r1   r4   )r1   rH   rd   rd   
resolutionNdevice_serialsaved_tozd.screenshot(%r)u2_coderW   )	r   rD   r   rJ   
isinstancer8   getr   r   )	rd   rL   rM   abs_filenameresultrj   rh   ri   rW   s	            r;   cmd_screenshotrq      s     k-8+m:TUIFA%h/L^^Lh'M* + F
 :DFD9Qvzz*%5WcH-7-EL)4J3=fd3KFJJ/Q\]eQfM&x0
'2E!.o(l"X-r=   zdump-hierarchyzdump UI hierarchyz--compressedzuse compressed hierarchyz--max-depthzmaximum hierarchy depth)r-   r*   r(   z--outputz-ozsave output to file)r-   r(   z--rawz%output raw XML without simplification
compressed	max_depthoutputrawc           
         t        t        d      t        d            \  }}|rt        |      nd}|j                  dt        d      t        d      | |||d      }g }| r|j	                  d       ||j	                  d	|z         d
dj                  |      z  }	t        |t              r|j                  d      n
t        d      }
|r<t        |t              r|j                  d      n|}d|i}|
r|
|d<   t        |	|       yt        |t              r|j                  d      n|}t        |	|
rd|
ind       |rt        |       yy)zDump UI hierarchy.r2   r3   Ndump_hierarchyr1   r4   )r1   rH   rr   rs   ru   rt   zcompressed=Truezmax_depth=%szd.dump_hierarchy(%s), ri   rd   rj   rk   content)r   rD   r   rJ   appendjoinrm   r8   rn   r   r   )rr   rs   rt   ru   rL   rM   out_filerp   _partsrl   ri   rj   rW   ry   s                 r;   cmd_dump_hierarchyr~      s=   $ k-8+m:TUIFA-3!&)H^^,h'M* / F F'(ny01$tyy'88G3=fd3KFJJ/Q\]eQfM-7-E6::j)8!+X 6%2E/"we4'1&$'?fjj#VG7m?M*JaefW r=   zapp-currentzshow current foreground appc                  4    t        d      } t        | d       y)zShow current foreground app.app_currentzd.app_current()rl   NrO   r   rp   s    r;   cmd_app_currentr           $M2F6#45r=   zdevice-infozshow device informationc                  4    t        d      } t        | d       y)zShow device information.device_infozd.device_infor   Nr   r   s    r;   cmd_device_infor      s     $M2F6?3r=   zwindow-sizezshow screen window sizec                  4    t        d      } t        | d       y)zShow screen window size.window_sizezd.window_size()r   Nr   r   s    r;   cmd_window_sizer      r   r=   shellzrun shell commandz	--timeout<   zcommand timeout in secondscmdCMD)nargsrf   r+   r\   .c                 ~   dj                  |      }t        d|| d      }t        |t              r|j	                  d      n|}i }t        |t              r|j	                  d      nd}|r||d<   t        |t              r%|j	                  d      |j	                  d      |d<   t        |d|d	| d
|xs d       y)zRun shell command on device. r   )commandr\   rt   ri   N	exit_codezd.shell(
, timeout=)rk   )r{   rO   rm   r8   rn   r   )r\   r   r   rp   rt   rW   ri   s          r;   	cmd_shellr     s     hhsmG#G07G$LNF%/%=VZZ!6FE3=fd3KFJJ/QUM!.o&$FJJ{$;$G#ZZ4k6#Q$(r=   z	app-startzstart applicationz
--activityzspecific activity to launchz--waitzwait for app to launchz--stopzstop app before launchingpackagePACKAGE)r+   activitywaitstopc                     || ||d}t        d|      }t        |      g}| r|j                  d| z         |r|j                  d       |r|j                  d       t        |ddj	                  |      z         y	)
zStart application.)r   r   r   r   	app_startzactivity=%rz	wait=Truez	stop=Truezd.app_start(%s)rx   r   N)rO   reprrz   r   r{   )r   r   r   r   rF   rp   partss          r;   cmd_app_startr   +  s{    & 	F $K8F']OE]X-.[![!6#4tyy7G#GHr=   zapp-listzlist installed packagesz--filterfilter_ z(filter string passed to pm list packagesc                     t        dd| i      }t        |t              r|j                  d      n|}t        |t              rd|j                  d      ind}| rd| z  }nd}t	        |||       y)	zList installed packages.app_listfilterpackagesri   Nzd.app_list(%r)zd.app_list()rk   rO   rm   r8   rn   r   )r   rp   r   rW   rl   s        r;   cmd_app_listr   M  so     $J%-w$79F)3FD)Avzz*%vH>HQU>V_fjj9:\`E"W, 8WE:r=   zapp-stopzstop applicationz--allall_zstop all third-party appsc                 n    | s|st        d      t        d|| d      }| rd}nd|z  }t        ||       y)zStop application.z(package is required unless --all is usedapp_stop)r   allzd.app_stop_all()zd.app_stop(%r)r   N)r   rO   r   )r   r   rp   rl   s       r;   cmd_app_stopr   c  sF     CDD#J07$EGF$"W,67+r=   zapp-installzinstall applicationapkAPKc                     t        dd| i      }t        |t              rd|j                  d      ind}t        |t              r|j                  d      n|}t	        |d| z  |       y)zInstall application.app_installr   ri   Nrp   zd.app_install(%r)rk   r   )r   rp   rW   install_results       r;   cmd_app_installr   {  sb     $M%*CL2F>HQU>V_fjj9:\`E-7-EVZZ)6N>+>+DERr=   zapp-uninstallzuninstall applicationc                     t        dd| i      }t        |t              rd|j                  d      ind}t        |t              r|j                  d      n|}t	        |d| z  |       y)zUninstall application.app_uninstallr   ri   Nrp   zd.app_uninstall(%r)rk   r   )r   rp   rW   uninstall_results       r;   cmd_app_uninstallr     sf     $O%.$8:F>HQU>V_fjj9:\`E/9&$/Gvzz(+V#-BW-LTYZr=   z	app-clearzclear application datac                 @    t        dd| i      }t        |d| z         y)zClear application data.	app_clearr   zd.app_clear(%r)r   Nr   )r   rp   s     r;   cmd_app_clearr     s(     $K%.$8:F6#4w#>?r=   zopen-notificationzopen notification shadec                  4    t        d      } t        | d       y)zOpen notification shade.open_notificationzd.open_notification()r   Nr   r   s    r;   cmd_open_notificationr     s     $$78F6#:;r=   zopen-quick-settingszopen quick settingsc                  4    t        d      } t        | d       y)zOpen quick settings.open_quick_settingszd.open_quick_settings()r   Nr   r   s    r;   cmd_open_quick_settingsr     s     $$9:F6#<=r=   zopen-urlzopen urlurlURLc                 @    t        dd| i      }t        |d| z         y)z	Open URL.open_urlr   zd.open_url(%r)r   Nr   )r   rp   s     r;   cmd_open_urlr     s'     $J%*CL2F6#3c#9:r=   pressz	press keyKEYc                     t        |       }t        dd|i      }t        |t              rd|z  }nd|z  }t	        ||       y)z
Press key.r   r>   zd.press(%s)zd.press(%r)r   N)r   rO   rm   intr   )r>   parsedrp   rl   s       r;   	cmd_pressr     sH     _F#G%*FO5F&#&(&(67+r=   z	send-keysztype text into focused inputz
--no-clearzdo not clear before typingtextTEXTno_clearc                 P    |  }t        d||d      }t        |d|d|d       y)zType text into focused input.	send_keys)r   clearzd.send_keys(z, clear=r   r   Nr   )r   r   r   rp   s       r;   cmd_send_keysr     s/     LE#K-1E$BDF6$#NOr=   z
clear-textzclear focused input textc                  4    t        d      } t        | d       y)zClear focused input text.
clear_textzd.clear_text()r   Nr   r   s    r;   cmd_clear_textr     s     $L1F6#34r=   rA   zclick coordinates or selectorg      @zselector wait timeoutxXyYkwargsc                    t        di |}||_        ||_        t        d      |_        t        d      |_        t        d      |_        t        d      |_        | |_        t        |      \  }}t        |      }t        |      }|r0t        ||      }	| |	d<   t        d|	      }
t        ||      d| d}n'||t        d
      t        d||d      }
d|d|d}t        |
|       y	)zClick coordinates or selector.r2   r3   r4   r1   r\   rA   z.click(timeout=r   N4x and y are required when no selector option is used)r   r   zd.click(rx   r    )r   r   r   rD   r2   r3   rH   r1   r\   r   r   r   rO   r   r   r   )r\   r   r   r   argsselectorchild_selectorsfxfyrN   rp   rl   s               r;   	cmd_clickr     s    & $V$DDFDF"=1D"=1DM*DIh'DKDL / 5Ho		B		B)(OD$	'9,@?,[]de:STT'.0r(:<')2.67+r=   zdouble-clickzdouble click coordinatesz
--durationg?zdelay between taps)r*   r+   durationc           
      R    t        d||| d      }t        |d|d|d| d       y)	zDouble click coordinates.double_clickr   r   r   zd.double_click(rx   , duration=r   r   Nr   )r   r   r   rp   s       r;   cmd_double_clickr   @  s2      $N5 F
 6AqRZ#[\r=   z
long-clickz"long click coordinates or selectorg      ?zlong press durationc                    t        di |}||_        ||_        t        d      |_        t        d      |_        t        d      |_        t        d      |_        | |_        ||_	        t        |      \  }}t        |      }t        |      }	|rBt        ||      }
|
j                  | |d       t        d|
      }t        ||      d| d|d	}n+||	t!        d      t        d||	| d      }d|d|	d| d	}t#        ||       y
)z#Long click coordinates or selector.r2   r3   r4   r1   )r   r\   
long_clickz.long_click(duration=r   r   Nr   r   zd.long_click(rx   r   r   r   )r   r   r   rD   r2   r3   rH   r1   r   r\   r   r   r   rI   rO   r   r   r   )r   r\   r   r   r   r   r   r   r   r   rN   rp   rl   s                r;   cmd_long_clickr   W  s   * $V$DDFDF"=1D"=1DM*DIh'DKDMDL / 5Ho		B		B)(OD 
 	 (g> ?;XwP :STT'.0rx(PR9;RJ67+r=   swipezswipe coordinates or directionzswipe durationz--stepsznumber of swipe stepsz--scale?zdirection swipe distance scaler   FXr   FY)rf   r-   r*   r+   txTXtyTYstepsscalec                    t        |      }|rM|||t        d      ||| |d}t        d|      }	|d|d|d|d}
nd|d|d	| d}
t        |	|

       y|||t        d      |dk7  rt        d      t	        |      }||||| |d}t        d|      }	|d|d|d|d|d|d}
nd|d|d|d|d	| d}
t        |	|

       y)zSwipe coordinates or direction.NzAcoordinate arguments are not allowed when swipe direction is used)	directionr   r   r   r   zd.swipe_ext(z, scale=z, steps=r   r   r   z?fx, fy, tx and ty are required when swipe direction is not usedr   z6--scale is only supported when swipe direction is used)r   r   r   r   r   r   zd.swipe(rx   )r   r   rO   r   r   )r   r   r   r   r   r   r   r   rF   rp   rl   	parsed_fxs               r;   	cmd_swiper     s   0 +2.I>R^r~`aa/85/7%"I'8?H%QVWG  CLUT\]Gvw/	zRZ2:Z[[|QRR#IRr\abF#GV4F9BBBPUV  =Fr2rS[\67+r=   dragzdrag coordinateszdrag durationsxSXsySYexEXeyEYc                 b    t        d||||| d      }t        |d|d|d|d|d| d       y)	zDrag coordinates.r   )r   r   r  r  r   zd.drag(rx   r   r   r   Nr   )r   r   r   r  r  rp   s         r;   cmd_dragr    s?    ( $F- F 6BPRTVXZ\d#efr=   existszcheck selector existsg        zwait timeoutc                    t        d
i |}| |_        t        |      \  }}t        |       t	        ||      }| |d<   t        d|      }| rt        ||      d| d}ndt        ||      z  }t        |t              r|j                  d      nd}t        |t              r|j                  d      n|}	t        |	||r
d|i	       yd	       y)zCheck if selector exists.r\   selector_existsz.exists(timeout=r   z	%s.existsri   Nrp   rk   r   )r   r\   r   r   r   rO   r   rm   r8   rn   r   )
r\   r   r   r   r   rN   rp   rl   ri   r  s
             r;   
cmd_existsr    s     $V$DDL / 5Hoh%h@G GI#$5w?F-A(O-\^ef 4X OO3=fd3KFJJ/QUM%/%=VZZ!6F67=J/=9VPTVr=   z!wait selector appear or disappearz--gonezwait until gonegonec                    t        d
i |}| |_        ||_        t        |      \  }}t	        |       t        ||      }|j                  | |d       t        d|      }|rt        ||      d| d}nt        ||      d| d}t        |t              r|j                  d      nd}	t        |t              r|j                  d      n|}
t        |
||	r
d|	i	       yd	       y)z)Wait for selector to appear or disappear.)r\   r  selector_waitz.wait_gone(timeout=r   z.wait(timeout=ri   Nrp   rk   r   )r   r\   r  r   r   r   rI   rO   r   rm   r8   rn   r   )r\   r  r   r   r   r   rN   rp   rl   ri   wait_results              r;   cmd_waitr    s    " $V$DDLDI / 5Hoh%h@GNNw56#OW=F0DX0_ahi+?/+Z\cd3=fd3KFJJ/QUM*4VT*B&**X&K;=J/=9VPTVr=   scrollzscroll selectorz--directionverthorizzscroll axis)r*   r-   r(   z--action)forwardbackwardtoEndtoBeginningr  zscroll actionz--max-swipesz
max swipesz	--to-textzscroll until text is visibler   action
max_swipesto_textc                    t        di |}| |_        ||_        ||_        ||_        t        |      \  }}t        |       t        ||      }|j                  | |||d       t        d|      }	|rt        ||      d| d|d}
n0|t        ||      d| d|d|d}
nt        ||      d| d|d	}
t        |	|

       y)zScroll selector.)r   r  r  r  selector_scrollz.scroll.z	.to(text=r   N.z(max_swipes=z()r   r   )r   r   r  r  r  r   r   r   rI   rO   r   r   )r   r  r  r  r   r   r   r   rN   rp   rl   s              r;   
cmd_scrollr  !  s    . $V$DDNDK DODL / 5Hoh%h@GNN 	  $$5w?F ?;YQ		 ?;YPZ\ !?;YP67+r=   r@   )r5   N)W
__future__r   r   loggingtypesr   typingr   r   r   r	   rA   uiautomator2r
    uiautomator2.agent_cli.click_extr   uiautomator2.agent_cli.clientr   r   r   uiautomator2.agent_cli.optionsr   r   r   r   r   r   r   r   r   r   uiautomator2.agent_cli.outputr   r   r   r   r   r   uiautomator2.agent_cli.serverr   	getLogger__name__r:   groupoptionstrr   pass_contextContextboolr<   rD   rO   r   rT   rZ   r^   rb   argumentrq   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   floatr   r   r   r   r  r  r  Choicer  r   r=   r;   <module>r4     s   7  ! - -  . = P P    4			8	$
 	 )D(+;< dIt*=dJS(AWXo{FIcdoCMghoCvLpq+	++ SM+ 	+
 + + 
+  r i e Y >+*<S <
 (,	+	+T#s(^$	+ 		+ 		))D(+;<  
 nd48GG	G   9G 		)D(+;<  
 m	m  m 		)D(+;<  
 ,	,  , 		#)D(+;<  
 
	
  
 		!)D(+;<  
 
U4DjY	   Z4 		)D(+;<  
 nd1KLmT:STj$3HIgt*QR##}# SM# 
	#
 
#   S J U M#J 		&)D(+;<  
 6	6  6 		")D(+;<  
 4	4  4 		")D(+;<  
 6	6  6 		)D(+;<  
 k2C6RSR$>((	sCx( 
(   ? T(* 		)D(+;<  
 lD/LMh+CDh+FG	9-IsmI
I I 	I
 
I   . H E NI. 		")D(+;<  
 j)R6`a;;	;   b; 		)D(+;<  
 gvt2MN	E4K,
,c], 
,   L O, 		)D(+;<  
 u%S	S	S   &S 		 )D(+;<  
 	9-[[	[   .[ 		!)D(+;<  
 	9-@@	@   .@ 		")D(+;<  
 <	<  < 		)D(+;<  
 >	>  > 		)D(+;<  
 u%;	;	;   &; 		)D(+;<  
 u%,	,	,   &, 		')D(+;<  
 lD/KL'PP
P 
P   ( MP 		#)D(+;<  
 5	5  5 		()D(+;<  
 k3U9PQeT3?eT3?,,}, }, 	,
 
,    @ @ R,B 		#)D(+;<  
 lCe:NO%-%-]]] ] 
	]   . . P] 		-)D(+;<  
 lCe:OPk3U9PQeT3?eT3?%,%,%, }%, }	%,
 %, 
%,    @ @ R Q%,N 		))D(+;<  
 lCe:JKiC6MNi57WXd#udMudMudM$,$,C=$, $, 		$,
 	$, 	$, 	$, 
$,   N N N $ Y O L$,L 		)D(+;<  
 lCe/J5$/5$/5$/5$/ggg 	g 		g
 	g 
g   0 0 0 0 Kg( 		 )D(+;<  
 k3UHVVV 
V    IV. 		,)D(+;<  
 k3UHh+<=VV
V V 
	V    > IV2 		)D(+;<  
 m,%,,/@"A6 "j|u||,[\o7nd<Hk4.LM",",", ", c]	",
 ", 
",    N I7"",r=   