Ë
    š„jSr  ã                   óø  — d dl Z d dlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
mZmZ  G d„ de«      Zdtd	„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«      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«      Z  G d.„ d/e «      Z! G d0„ d1e «      Z" G d2„ d3e «      Z# G d4„ d5e«      Z$ G d6„ d7e$«      Z% G d8„ d9e$«      Z& G d:„ d;e$«      Z' G d<„ d=e«      Z( G d>„ d?e(«      Z) G d@„ dAe(«      Z* G dB„ dCe(«      Z+ G dD„ dEe«      Z, G dF„ dGe,«      Z- G dH„ dIe,«      Z. G dJ„ dKe,«      Z/ G dL„ dMe«      Z0 G dN„ dOe0«      Z1 G dP„ dQe0«      Z2 G dR„ dSe0«      Z3 G dT„ dUe«      Z4 G dV„ dWe4«      Z5 G dX„ dYe4«      Z6 G dZ„ d[e4«      Z7 G d\„ d]e«      Z8 G d^„ d_e8«      Z9 G d`„ dae8«      Z: G db„ dce8«      Z; G dd„ dee«      Z< G df„ dge<«      Z= G dh„ die<«      Z> G dj„ dke<«      Z? G dl„ dme«      Z@ G dn„ doe@«      ZA G dp„ dqe@«      ZB G dr„ dse@«      ZCy)ué    Né   )ÚInfoExtractoré   )Ú	HTTPError)ÚExtractorErrorÚint_or_noneÚjoin_nonemptyÚtry_getÚurl_or_noneÚurlencode_postdatac                   óh   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd
„Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚZattooPlatformBaseIENc                 óT   — dt        | d«      r| j                  z  S | j                  z  S )Nz
https://%sÚ	_API_HOST)Úhasattrr   Ú_HOST©Úselfs    úN/var/www/html/GAP/venv/lib/python3.12/site-packages/yt_dlp/extractor/zattoo.pyÚ	_host_urlzZattooPlatformBaseIE._host_url   s)   € Ø´¸¸{Ô1K˜tŸ~™~Ñ\Ð\ÐQU×Q[ÑQ[Ñ\Ð\ó    c                 óD   — | j                   s| j                  dd¬«       y y )Nz)An account is needed to access this mediaÚpassword)Úmethod)Ú_power_guide_hashÚraise_login_requiredr   s    r   Ú_real_initializez%ZattooPlatformBaseIE._real_initialize   s%   € Ø×%Ò%Ø×%Ñ%Ð&QÐZdÐ%Õeð &r   c                 óT  — 	 | j                  | j                  «       › d�d dt        ||ddœ«      | j                  «       › d�ddœ¬«      }|d   d   | _        y # t        $ rF}t	        |j
                  t        «      r&|j
                  j                  d	k(  rt        d
d¬«      ‚‚ d }~ww xY w)Nz/zapi/v2/account/loginz
Logging inÚtrue)Úloginr   Úrememberz/loginz0application/x-www-form-urlencoded; charset=UTF-8)ÚRefererzContent-Type)ÚdataÚheadersi�  z3Unable to login: incorrect username and/or passwordT)ÚexpectedÚsessionÚpower_guide_hash)	Ú_download_jsonr   r   r   Ú
isinstanceÚcauser   Ústatusr   )r   Úusernamer   r#   Úes        r   Ú_perform_loginz#ZattooPlatformBaseIE._perform_login   sÀ   € ð	Ø×&Ñ&Ø—>‘>Ó#Ð$Ð$:Ð;¸TÀ<Ü'Ø%Ø (Ø &ñ)ó ð
 #'§.¡.Ó"2Ð!3°6Ð:Ø$Vñð 'ó 	ˆDð" "& i¡Ð1CÑ!DˆÕøô ò 	Ü˜!Ÿ'™'¤9Ô-°!·'±'·.±.ÀCÒ2GÜ$ØIØ!ô#ð #ð ûð	ús   ‚AA Á	B'Á!AB"Â"B'c                 óò   — | j                  | j                  «       › d�d d«      d   }| j                  | j                  «       › d�d dt        t	        t        j                  «       «      ddd|d	œ«      ¬
«       y )Nz/token.jsonzDownloading session tokenÚsession_tokenz/zapi/v3/session/hellozOpening sessionÚenz1.8.2Újson)ÚuuidÚlangÚapp_versionÚformatÚclient_app_token)r#   )r(   r   Ú_request_webpager   Ústrr3   Úuuid4)r   r0   s     r   Ú_initialize_pre_loginz*ZattooPlatformBaseIE._initialize_pre_login/   s‡   € Ø×+Ñ+Ø�~‰~ÓÐ  Ð,¨dÐ4OóQØQ`ñbˆð 	×ÑØ�~‰~ÓÐ Ð 6Ð7¸ØÔ$6ÜœDŸJ™J›LÓ)ØØ&Ø Ø$1ñ8ó %ð 	õ 	r   c                 ó¸   ‡— | j                  | j                  «       › d�‰d«      }	 t        ˆfd„|d   D «       «      S # t        t        f$ r t        d«      ‚w xY w)Nz/zapi/v2/playlistzDownloading playlistc              3   ó–   •K  — | ]@  }|j                  d «      r-t        |j                  d«      «      ‰k(  rt        |d    «      –— ŒB y­w)Ú
program_idÚidN)Úgetr9   )Ú.0ÚitemÚrecids     €r   ú	<genexpr>zHZattooPlatformBaseIE._extract_video_id_from_recording.<locals>.<genexpr>B   sE   øè ø€ ò LØ,0Ø—8‘8˜LÔ)¬c°$·(±(¸4³.Ó.AÀUÒ.Jô �D˜Ñ&×'ñLùs   ƒAA	Ú
recordingsz)Could not extract video id from recording)r(   r   ÚnextÚStopIterationÚKeyErrorr   )r   rC   Úplaylists    ` r   Ú _extract_video_id_from_recordingz5ZattooPlatformBaseIE._extract_video_id_from_recording>   sy   ø€ Ø×&Ñ&Ø�~‰~ÓÐ Ð 1Ð2°EÐ;QóSˆð	NÜó LØ4<¸\Ñ4JôLó Lð Løô œxÐ(ò 	NÜ Ð!LÓMÐMð	Nús	   §> ¾Ac                 ó  ‡— | j                  | j                  «       › d| j                  › �|dddi¬«      d   }g }|D ]  }|j                  |d   «       Œ 	 t	        ˆfd„|D «       «      S # t
        $ r t        d	«      ‚w xY w)
Nz/zapi/v2/cached/channels/zDownloading channel listÚdetailsF©ÚqueryÚchannel_groupsÚchannelsc              3   óš   •K  — | ]B  }|j                  d «      r/|j                  d«      ‰k(  s|j                  d «      ‰k(  r|d    –— ŒD y­w)ÚcidÚdisplay_aliasN)r@   )rA   ÚchanÚchannel_names     €r   rD   z4ZattooPlatformBaseIE._extract_cid.<locals>.<genexpr>Q   sI   øè ø€ ò 9Ø $Ø—8‘8˜E”?Ø—H‘H˜_Ó-°Ò=Ø—x‘x “¨,Ò6ð �U•ñ9ùs   ƒAAzCould not extract channel id)r(   r   r   ÚextendrF   rG   r   )r   Úvideo_idrU   rO   Úchannel_listÚchgrps     `   r   Ú_extract_cidz!ZattooPlatformBaseIE._extract_cidH   s¶   ø€ Ø×,Ñ,Ø�~‰~ÓÐ Ð 9¸$×:PÑ:PÐ9QÐRØÐ0Ø˜eÐ$ð -ó &ð '7ñ8ˆð ˆØ#ò 	3ˆEØ×Ñ  jÑ 1Õ2ð	3ð	AÜó 9Ø(4ô9ó 9ð 9øô
 ò 	AÜ Ð!?Ó@Ð@ð	Aús   ÁA+ Á+B c                 ó  — | j                  | j                  «       › d| j                  › �|d|ddœ¬«      }|d   d   }|d   }||j                  d	«      xs |d
   |j                  d«      |j                  d«      |j                  d«      |j                  d
«      t	        |j                  d«      «      t	        |j                  d«      «      t	        |j                  d«      «      t        |d„ t        «      t        |d„ t        «      dœ}||fS )Nz&/zapi/v2/cached/program/power_details/zDownloading video informationT)Úprogram_idsÚcompleterM   Úprogramsr   rR   ÚtÚetÚdÚi_urlrU   Úe_noÚs_noÚyearc                 ó   — | d   S )NÚc© ©Úxs    r   ú<lambda>zBZattooPlatformBaseIE._extract_cid_and_video_info.<locals>.<lambda>p   s
   € ¨q°©v€ r   c                 ó   — | d   S )NÚgrh   ri   s    r   rk   zBZattooPlatformBaseIE._extract_cid_and_video_info.<locals>.<lambda>q   s
   € ¨¨3©€ r   )r?   ÚtitleÚdescriptionÚ	thumbnailÚcreatorÚepisodeÚepisode_numberÚseason_numberÚrelease_yearÚ
categoriesÚtags)r(   r   r   r@   r   r
   Úlist)r   rW   r#   ÚprR   Ú	info_dicts         r   Ú_extract_cid_and_video_infoz0ZattooPlatformBaseIE._extract_cid_and_video_infoY   s  € Ø×"Ñ"Ø�~‰~ÓÐ Ð FÀt×G]ÑG]ÐF^Ð_ØØ+à'Ø ñð	 #ó ˆð �Ñ˜QÑˆØ�‰hˆð Ø—U‘U˜3“ZÒ* 1 T¡7ØŸ5™5 ›:ØŸ™˜w›Ø—u‘u˜^Ó,Ø—u‘u˜T“{Ü)¨!¯%©%°«-Ó8Ü(¨¯©¨v«Ó7Ü'¨¯©¨f«Ó6Ü! !Ñ%5´tÓ<Ü˜AÑ/´Ó6ñ
ˆ	ð �Iˆ~Ðr   c                 ó®  — | j                  | j                  «       › d|› �|d«      }||j                  d«      |j                  d«      t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      t        |j                  d«      «      t	        |d	„ t
        «      d
œ}|d   d   d   d   d   |d   |fS )zH
        @returns    (ondemand_token, ondemand_type, info_dict)
        z/zapi/vod/movies/z Downloading ondemand informationrn   ro   Údurationre   rs   rt   c                 ó   — | d   S )Nrv   rh   ri   s    r   rk   z=ZattooPlatformBaseIE._extract_ondemand_info.<locals>.<lambda>…   s
   € °!°L±/€ r   )r?   rn   ro   r}   ru   rs   rt   rv   Úterms_catalogr   ÚtermsÚtokenÚtype)r(   r   r@   r   r
   rx   )r   Úondemand_idr#   rz   s       r   Ú_extract_ondemand_infoz+ZattooPlatformBaseIE._extract_ondemand_infov   sÓ   € ð ×"Ñ"Ø�~‰~ÓÐ Ð 1°+°Ð?ØÐ;ó=ˆð Ø—X‘X˜gÓ&ØŸ8™8 MÓ2Ü# D§H¡H¨ZÓ$8Ó9Ü'¨¯©°Ó(8Ó9Ü)¨$¯(©(Ð3CÓ*DÓEÜ(¨¯©°/Ó)BÓCÜ! $Ñ(AÄ4ÓHñ	
ˆ	ð �OÑ$ QÑ'¨Ñ0°Ñ3°GÑ<¸dÀ6¹lÈIÐUÐUr   c           
      óp  — ddi}|r)|j                  ddi«       | j                  «       › d|› �}	n[|r| j                  «       › d|› �}	nC|r)|j                  |||dœ«       | j                  «       › d�}	n| j                  «       › d	|› d
|› �}	g }
i }dD �]Ÿ  }|j                  «       }||d<   | j                  |	|d|j	                  «       › d�t        |«      d¬«      }|sŒMt        |d„ t        «      }|sŒb|D �]8  }t        |t        «      sŒt        |j                  d«      «      }|sŒ2|j                  d«      }|dk(  rdnd }t        ||j                  d«      |«      }|j                  d«      r,| j                  |||d¬«      \  }}| j                  ||¬«       nw|j                  d«      r.| j!                  ||dd|d¬«      \  }}| j                  ||¬«       n8|dk(  r| j#                  |||d¬«      }n|d k(  r| j%                  |||d¬!«      }nJ ‚|D ]  }||d"<   Œ	 |
j'                  |«       �Œ; �Œ¢ |
|fS )#NÚhttps_watch_urlsTÚ	timeshifti0*  z/zapi/watch/live/z/zapi/watch/recording/)Úteasable_idÚ
term_tokenÚteasable_typez/zapi/watch/vod/videoz/zapi/v3/watch/replay/ú/)ÚdashÚhls7Ústream_typezDownloading z formatsF)r#   Úfatalc                 ó   — | d   d   S )NÚstreamÚ
watch_urlsrh   ri   s    r   rk   z7ZattooPlatformBaseIE._extract_formats.<locals>.<lambda>©   s   €   (¡¨LÑ 9€ r   ÚurlÚaudio_channelÚAr   ÚmaxraterŒ   )Úmpd_idr�   )ÚtargetÚhlsÚmp4Úm3u8_native)Úentry_protocolÚm3u8_idr�   Úhds)Úf4m_idr�   Úsmooth_playready)Úism_idr�   Úquality)Úupdater   Úcopyr(   Úupperr   r
   rx   r)   Údictr   r@   r	   Ú
startswithÚ"_extract_mpd_formats_and_subtitlesÚ_merge_subtitlesÚ#_extract_m3u8_formats_and_subtitlesÚ_extract_f4m_formatsÚ_extract_ism_formatsrV   )r   rR   rW   Ú	record_idrƒ   Úondemand_termtokenÚondemand_typeÚis_liveÚpostdata_commonr“   ÚformatsÚ	subtitlesrŽ   Úpostdatar#   r’   ÚwatchÚ	watch_urlr”   Ú
preferenceÚ	format_idÚthis_formatsÚsubsÚthis_formats                           r   Ú_extract_formatsz%ZattooPlatformBaseIE._extract_formats‰   sÀ  € à ð
ˆñ Ø×"Ñ" K°Ð#7Ô8Ø—^‘^Ó%Ð&Ð&7¸°uÐ=‰CÙØ—^‘^Ó%Ð&Ð&<¸Y¸KÐH‰CÙØ×"Ñ"Ø*Ø0Ø!.ñ$ô ð
 —^‘^Ó%Ð&Ð&;Ð<‰Cà—^‘^Ó%Ð&Ð&<¸S¸EÀÀ8À*ÐMˆCØˆØˆ	Ø+ó ,	-ˆKØ&×+Ñ+Ó-ˆHØ&1ˆH�]Ñ#à×&Ñ&Ø�X ¨k×.?Ñ.?Ó.AÐ-BÀ(ÐKÜ'¨Ó1¸ð 'ó @ˆDñ Øä ØÑ9¼4óAˆJáØà#ó -�Ü! %¬Ô.ØÜ'¨¯	©	°%Ó(8Ó9�	Ù ØØ %§	¡	¨/Ó :�Ø"/°3Ò"6™Q¸D�
Ü)¨+°u·y±yÀÓ7KÈ]Ó[�	Ø×)Ñ)¨&Ô1Ø)-×)PÑ)PØ! 8°IÀUð *Qó *LÑ&�L $à×)Ñ)¨$°yÐ)ÕAØ ×+Ñ+¨EÔ2Ø)-×)QÑ)QØ! 8¨UØ'4¸iØ#ð *Ró *%Ñ&�L $ð ×)Ñ)¨$°yÐ)ÕAØ  EÒ)Ø#'×#<Ñ#<Ø! 8°IÀUð $=ó $L‘Là Ð$6Ò6Ø#'×#<Ñ#<Ø! 8°IÀUð $=ó $L‘Lð !˜5Ø#/ò 8�KØ-7�K 	Ò*ð8à—‘˜|Ö,ò;-ð,	-ðZ ˜	Ð!Ð!r   c                 óh   — | j                  |«      \  }}| j                  |||¬«      \  |d<   |d<   |S ©N)r­   r²   r³   )r{   r¼   )r   rW   r­   rR   rz   s        r   Ú_extract_videoz#ZattooPlatformBaseIE._extract_videoÍ   sD   € Ø×9Ñ9¸(ÓC‰ˆˆYØ7;×7LÑ7LÈSÐRZÐfoÐ7LÓ7pÑ4ˆ	�)Ñ˜i¨Ñ4ØÐr   c                 ód   — | j                  ||«      }| j                  ||d¬«      \  }}||d||dœS )NT)r°   )r?   rn   r°   r²   r³   )rZ   r¼   )r   rU   rR   r²   r³   s        r   Ú_extract_livez"ZattooPlatformBaseIE._extract_liveÒ   sI   € Ø×Ñ ¨lÓ;ˆØ!×2Ñ2°3¸ÀTÐ2ÓJÑˆ�àØ!ØØØ"ñ
ð 	
r   c                 óŠ   — | j                  |«      }| j                  |«      \  }}| j                  |||¬«      \  |d<   |d<   |S r¾   )rJ   r{   r¼   )r   r­   rW   rR   rz   s        r   Ú_extract_recordz$ZattooPlatformBaseIE._extract_recordÝ   sT   € Ø×8Ñ8¸ÓCˆØ×9Ñ9¸(ÓC‰ˆˆYØ7;×7LÑ7LÈSÐRZÐfoÐ7LÓ7pÑ4ˆ	�)Ñ˜i¨Ñ4ØÐr   c                 ón   — | j                  |«      \  }}}| j                  d ||||¬«      \  |d<   |d<   |S )N)rƒ   r®   r¯   r²   r³   )r„   r¼   )r   rƒ   r®   r¯   rz   s        r   Ú_extract_ondemandz&ZattooPlatformBaseIE._extract_ondemandã   sU   € Ø7;×7RÑ7RÐS^Ó7_Ñ4Ð˜M¨9Ø7;×7LÑ7LØ�+¨;Ø1Àð 8Mó 8PÑ4ˆ	�)Ñ˜i¨Ñ4ð Ðr   c                 óŒ   — | j                  |«      j                  «       \  }} t        | d| j                  › �«      |xs |«      S )NÚ	_extract_)Ú_match_valid_urlÚgroupsÚgetattrÚ_TYPE)r   r“   rW   r­   s       r   Ú_real_extractz"ZattooPlatformBaseIE._real_extractê   sD   € Ø"×3Ñ3°CÓ8×?Ñ?ÓAÑˆ�)Ø6Œw�t˜y¨¯©¨Ð5Ó6°xÒ7LÀ9ÓMÐMr   )NNNNF©N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r.   r;   rJ   rZ   r{   r„   r¼   r¿   rÁ   rÃ   rÅ   rÌ   rh   r   r   r   r      sW   „ ØÐò]òfòEò*òNòAò"ò:Vó&B"óHò
	
òòóNr   r   c           	      ó`   — |r	d|› d|› d�nd}dt        j                  | «      › d|› d|› d|› d	�	S )
Nú|z
/(?P<vid1>ú)z
(?P<vid1>)z(?x)https?://(?:www\.)?z /(?:
        [^?#]+\?(?:[^#]+&)?z
=(?P<vid2>z
)
        z
    ))ÚreÚescape)ÚhostÚmatchÚqsÚbase_reÚ
match_bases        r   Ú_create_valid_urlrÛ   ï   sS   € Ù5<�A�g�Y˜j¨¨¨qÑ1À,€JØ'¬¯	©	°$«Ð'8ð 9Ø˜4˜z¨%¨ð 1	Ø	ˆð ð	ð 	r   c                   ó   — e Zd ZdZdZy)ÚZattooBaseIEÚzattooú
zattoo.comN©rÎ   rÏ   rÐ   Ú_NETRC_MACHINEr   rh   r   r   rÝ   rÝ   ÷   ó   „ Ø€NØ�Er   rÝ   c                   ór   — e Zd Z eej
                  ddd«      ZdZddddd	d
ddddddœ
ddidœdddœdddœgZy)ÚZattooIEú\d+Úprogramú(?:program|watch)/[^/]+Úvideoz(https://zattoo.com/program/zdf/250170418Ú	250170418rš   zMarkus Lanzz$md5:e41cb1257de008ca62a73bb876ffa7fcz5re:http://images.zattic.com/cms/.+/format_480x360.jpgzZDF HDiæ  z
Folge 1655zcount:1zcount:2)
r?   Úextrn   ro   rp   rq   ru   rr   rv   rw   Úskip_downloadÚm3u8)r“   rz   Úparamsz-https://zattoo.com/program/daserste/210177916T©r“   Úonly_matchingz>https://zattoo.com/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   rÝ   r   Ú
_VALID_URLrË   Ú_TESTSrh   r   r   rä   rä   ü   su   „ Ù" <×#5Ñ#5°v¸yÐJcÓd€JØ€Eà9àØØ"ØAØPØØ Ø#Ø#Øñ
ð # FÐ+ñð  ?Øñð PØñð%�Fr   rä   c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚZattooLiveIEú[^/?&#]+ÚchannelÚlivez3https://zattoo.com/channels/german?channel=srf_zweiTrî   zhttps://zattoo.com/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S ©NF)rä   ÚsuitableÚsuper©Úclsr“   Ú	__class__s     €r   rú   zZattooLiveIE.suitable"  ó%   ø€ ä ×)Ñ)¨#Ô.ˆuÐI´E±GÑ4DÀSÓ4IÐIr   )rÎ   rÏ   rÐ   rÛ   rÝ   r   rñ   rË   rò   Úclassmethodrú   Ú__classcell__©rþ   s   @r   rô   rô     óS   ø„ Ù" <×#5Ñ#5°{ÀIÈvÓV€JØ€EàDØñð .Øñð€Fð óJó ôJr   rô   c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚZattooMoviesIEz\w+Úmovie_idz
vod/moviesÚondemandz"https://zattoo.com/vod/movies/7521Trî   zIhttps://zattoo.com/ondemand?movie_id=7521&term_token=9f00f43183269484eddeNrð   rh   r   r   r  r  '  s=   „ Ù" <×#5Ñ#5°v¸zÈ<ÓX€JØ€Eà3Øñð [Øñð�Fr   r  c                   ó8   — e Zd Z eddd«      ZdZdddœdddœgZy	)
ÚZattooRecordingsIErß   rå   Ú	recordingÚrecordz1https://zattoo.com/recordings?recording=193615508Trî   zGhttps://zattoo.com/tc/ptc_recordings_all_recordings?recording=193615420N)rÎ   rÏ   rÐ   rÛ   rñ   rË   rò   rh   r   r   r	  r	  3  s5   „ Ù" <°¸ÓE€JØ€EàBØñð YØñð�Fr   r	  c                   ó   — e Zd ZdZdZde› �Zy)ÚNetPlusTVBaseIEÚnetplusz
netplus.tvúwww.N©rÎ   rÏ   rÐ   rá   r   r   rh   r   r   r  r  ?  s   „ Ø€NØ€EØ�u�g��Ir   r  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚNetPlusTVIErå   ræ   rç   rè   z-https://netplus.tv/program/daserste/210177916Trî   z>https://netplus.tv/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r  r   rñ   rË   rò   rh   r   r   r  r  E  s>   „ Ù" ?×#8Ñ#8¸&À)ÐMfÓg€JØ€Eà>Øñð PØñð�Fr   r  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚNetPlusTVLiveIErõ   rö   r÷   z3https://netplus.tv/channels/german?channel=srf_zweiTrî   zhttps://netplus.tv/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r  rú   rû   rü   s     €r   rú   zNetPlusTVLiveIE.suitable\  ó%   ø€ ä#×,Ñ,¨SÔ1ˆuÐL´u±wÑ7GÈÓ7LÐLr   )rÎ   rÏ   rÐ   rÛ   r  r   rñ   rË   rò   r   rú   r  r  s   @r   r  r  Q  sT   ø„ Ù" ?×#8Ñ#8¸+ÀyÐRXÓY€JØ€EàDØñð .Øñð€Fð óMó ôMr   r  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚNetPlusTVRecordingsIErå   r
  r  z1https://netplus.tv/recordings?recording=193615508Trî   zGhttps://netplus.tv/tc/ptc_recordings_all_recordings?recording=193615420Nr  rh   r   r   r  r  a  s;   „ Ù" ?×#8Ñ#8¸&À+ÓN€JØ€EàBØñð YØñð�Fr   r  c                   ó   — e Zd ZdZdZy)ÚMNetTVBaseIEÚmnettvztvplus.m-net.deNrà   rh   r   r   r  r  m  s   „ Ø€NØ�Er   r  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚMNetTVIErå   ræ   rç   rè   z2https://tvplus.m-net.de/program/daserste/210177916Trî   zChttps://tvplus.m-net.de/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r  r   rñ   rË   rò   rh   r   r   r  r  r  s>   „ Ù" <×#5Ñ#5°v¸yÐJcÓd€JØ€EàCØñð UØñð�Fr   r  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚMNetTVLiveIErõ   rö   r÷   z8https://tvplus.m-net.de/channels/german?channel=srf_zweiTrî   z!https://tvplus.m-net.de/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r  rú   rû   rü   s     €r   rú   zMNetTVLiveIE.suitable‰  rÿ   r   )rÎ   rÏ   rÐ   rÛ   r  r   rñ   rË   rò   r   rú   r  r  s   @r   r!  r!  ~  sS   ø„ Ù" <×#5Ñ#5°{ÀIÈvÓV€JØ€EàIØñð 3Øñð€Fð óJó ôJr   r!  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚMNetTVRecordingsIErå   r
  r  z6https://tvplus.m-net.de/recordings?recording=193615508Trî   zLhttps://tvplus.m-net.de/tc/ptc_recordings_all_recordings?recording=193615420Nr  rh   r   r   r$  r$  Ž  s;   „ Ù" <×#5Ñ#5°v¸{ÓK€JØ€EàGØñð ^Øñð�Fr   r$  c                   ó   — e Zd ZdZdZy)ÚWalyTVBaseIEÚwalytvzplayer.waly.tvNrà   rh   r   r   r&  r&  š  s   „ Ø€NØ�Er   r&  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚWalyTVIErå   ræ   rç   rè   z1https://player.waly.tv/program/daserste/210177916Trî   zBhttps://player.waly.tv/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r&  r   rñ   rË   rò   rh   r   r   r)  r)  Ÿ  s>   „ Ù" <×#5Ñ#5°v¸yÐJcÓd€JØ€EàBØñð TØñð�Fr   r)  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚWalyTVLiveIErõ   rö   r÷   z7https://player.waly.tv/channels/german?channel=srf_zweiTrî   z https://player.waly.tv/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r)  rú   rû   rü   s     €r   rú   zWalyTVLiveIE.suitable¶  rÿ   r   )rÎ   rÏ   rÐ   rÛ   r&  r   rñ   rË   rò   r   rú   r  r  s   @r   r,  r,  «  sS   ø„ Ù" <×#5Ñ#5°{ÀIÈvÓV€JØ€EàHØñð 2Øñð€Fð óJó ôJr   r,  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚWalyTVRecordingsIErå   r
  r  z5https://player.waly.tv/recordings?recording=193615508Trî   zKhttps://player.waly.tv/tc/ptc_recordings_all_recordings?recording=193615420Nr*  rh   r   r   r/  r/  »  s;   „ Ù" <×#5Ñ#5°v¸{ÓK€JØ€EàFØñð ]Øñð�Fr   r/  c                   ó   — e Zd ZdZdZde› �Zy)ÚBBVTVBaseIEÚbbvtvz
bbv-tv.netr  Nr  rh   r   r   r1  r1  Ç  s   „ Ø€NØ€EØ�u�g��Ir   r1  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚBBVTVIErå   ræ   rç   rè   z-https://bbv-tv.net/program/daserste/210177916Trî   z>https://bbv-tv.net/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r1  r   rñ   rË   rò   rh   r   r   r4  r4  Í  s>   „ Ù" ;×#4Ñ#4°f¸iÐIbÓc€JØ€Eà>Øñð PØñð�Fr   r4  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚBBVTVLiveIErõ   rö   r÷   z3https://bbv-tv.net/channels/german?channel=srf_zweiTrî   zhttps://bbv-tv.net/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r4  rú   rû   rü   s     €r   rú   zBBVTVLiveIE.suitableä  ó%   ø€ ä×(Ñ(¨Ô-ˆuÐH´5±7Ñ3CÀCÓ3HÐHr   )rÎ   rÏ   rÐ   rÛ   r1  r   rñ   rË   rò   r   rú   r  r  s   @r   r7  r7  Ù  sS   ø„ Ù" ;×#4Ñ#4°kÀ9ÈfÓU€JØ€EàDØñð .Øñð€Fð óIó ôIr   r7  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚBBVTVRecordingsIErå   r
  r  z1https://bbv-tv.net/recordings?recording=193615508Trî   zGhttps://bbv-tv.net/tc/ptc_recordings_all_recordings?recording=193615420Nr5  rh   r   r   r;  r;  é  s;   „ Ù" ;×#4Ñ#4°f¸kÓJ€JØ€EàBØñð YØñð�Fr   r;  c                   ó   — e Zd ZdZdZde› �Zy)ÚVTXTVBaseIEÚvtxtvzvtxtv.chr  Nr  rh   r   r   r=  r=  õ  ó   „ Ø€NØ€EØ�u�g��Ir   r=  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚVTXTVIErå   ræ   rç   rè   z+https://vtxtv.ch/program/daserste/210177916Trî   z<https://vtxtv.ch/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r=  r   rñ   rË   rò   rh   r   r   rA  rA  û  ó>   „ Ù" ;×#4Ñ#4°f¸iÐIbÓc€JØ€Eà<Øñð NØñð�Fr   rA  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚVTXTVLiveIErõ   rö   r÷   z1https://vtxtv.ch/channels/german?channel=srf_zweiTrî   zhttps://vtxtv.ch/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )rA  rú   rû   rü   s     €r   rú   zVTXTVLiveIE.suitable  r9  r   )rÎ   rÏ   rÐ   rÛ   r=  r   rñ   rË   rò   r   rú   r  r  s   @r   rE  rE    óS   ø„ Ù" ;×#4Ñ#4°kÀ9ÈfÓU€JØ€EàBØñð ,Øñð€Fð óIó ôIr   rE  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚVTXTVRecordingsIErå   r
  r  z/https://vtxtv.ch/recordings?recording=193615508Trî   zEhttps://vtxtv.ch/tc/ptc_recordings_all_recordings?recording=193615420NrB  rh   r   r   rI  rI    ó;   „ Ù" ;×#4Ñ#4°f¸kÓJ€JØ€Eà@Øñð WØñð�Fr   rI  c                   ó   — e Zd ZdZdZy)ÚGlattvisionTVBaseIEÚglattvisiontvziptv.glattvision.chNrà   rh   r   r   rL  rL  #  s   „ Ø$€NØ!�Er   rL  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚGlattvisionTVIErå   ræ   rç   rè   z6https://iptv.glattvision.ch/program/daserste/210177916Trî   zGhttps://iptv.glattvision.ch/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   rL  r   rñ   rË   rò   rh   r   r   rO  rO  (  s?   „ Ù"Ð#6×#<Ñ#<¸fÀiÐQjÓk€JØ€EàGØñð YØñð�Fr   rO  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚGlattvisionTVLiveIErõ   rö   r÷   z<https://iptv.glattvision.ch/channels/german?channel=srf_zweiTrî   z%https://iptv.glattvision.ch/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )rO  rú   rû   rü   s     €r   rú   zGlattvisionTVLiveIE.suitable?  ó%   ø€ ä'×0Ñ0°Ô5ˆuÐP¼5¹7Ñ;KÈCÓ;PÐPr   )rÎ   rÏ   rÐ   rÛ   rL  r   rñ   rË   rò   r   rú   r  r  s   @r   rR  rR  4  sU   ø„ Ù"Ð#6×#<Ñ#<¸kÈ9ÐV\Ó]€JØ€EàMØñð 7Øñð€Fð óQó ôQr   rR  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚGlattvisionTVRecordingsIErå   r
  r  z:https://iptv.glattvision.ch/recordings?recording=193615508Trî   zPhttps://iptv.glattvision.ch/tc/ptc_recordings_all_recordings?recording=193615420NrP  rh   r   r   rV  rV  D  s<   „ Ù"Ð#6×#<Ñ#<¸fÀkÓR€JØ€EàKØñð bØñð�Fr   rV  c                   ó   — e Zd ZdZdZde› �Zy)ÚSAKTVBaseIEÚsaktvzsaktv.chr  Nr  rh   r   r   rX  rX  P  r?  r   rX  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚSAKTVIErå   ræ   rç   rè   z+https://saktv.ch/program/daserste/210177916Trî   z<https://saktv.ch/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   rX  r   rñ   rË   rò   rh   r   r   r[  r[  V  rC  r   r[  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚSAKTVLiveIErõ   rö   r÷   z1https://saktv.ch/channels/german?channel=srf_zweiTrî   zhttps://saktv.ch/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r[  rú   rû   rü   s     €r   rú   zSAKTVLiveIE.suitablem  r9  r   )rÎ   rÏ   rÐ   rÛ   rX  r   rñ   rË   rò   r   rú   r  r  s   @r   r^  r^  b  rG  r   r^  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚSAKTVRecordingsIErå   r
  r  z/https://saktv.ch/recordings?recording=193615508Trî   zEhttps://saktv.ch/tc/ptc_recordings_all_recordings?recording=193615420Nr\  rh   r   r   ra  ra  r  rJ  r   ra  c                   ó   — e Zd ZdZdZy)ÚEWETVBaseIEÚewetvztvonline.ewe.deNrà   rh   r   r   rc  rc  ~  s   „ Ø€NØ�Er   rc  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚEWETVIErå   ræ   rç   rè   z2https://tvonline.ewe.de/program/daserste/210177916Trî   zChttps://tvonline.ewe.de/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   rc  r   rñ   rË   rò   rh   r   r   rf  rf  ƒ  s>   „ Ù" ;×#4Ñ#4°f¸iÐIbÓc€JØ€EàCØñð UØñð�Fr   rf  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚEWETVLiveIErõ   rö   r÷   z8https://tvonline.ewe.de/channels/german?channel=srf_zweiTrî   z!https://tvonline.ewe.de/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )rf  rú   rû   rü   s     €r   rú   zEWETVLiveIE.suitableš  r9  r   )rÎ   rÏ   rÐ   rÛ   rc  r   rñ   rË   rò   r   rú   r  r  s   @r   ri  ri  �  sS   ø„ Ù" ;×#4Ñ#4°kÀ9ÈfÓU€JØ€EàIØñð 3Øñð€Fð óIó ôIr   ri  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚEWETVRecordingsIErå   r
  r  z6https://tvonline.ewe.de/recordings?recording=193615508Trî   zLhttps://tvonline.ewe.de/tc/ptc_recordings_all_recordings?recording=193615420Nrg  rh   r   r   rl  rl  Ÿ  s;   „ Ù" ;×#4Ñ#4°f¸kÓJ€JØ€EàGØñð ^Øñð�Fr   rl  c                   ó   — e Zd ZdZdZde› �Zy)ÚQuantumTVBaseIEÚ	quantumtvzquantum-tv.comr  Nr  rh   r   r   rn  rn  «  s   „ Ø €NØ€EØ�u�g��Ir   rn  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚQuantumTVIErå   ræ   rç   rè   z1https://quantum-tv.com/program/daserste/210177916Trî   zBhttps://quantum-tv.com/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   rn  r   rñ   rË   rò   rh   r   r   rq  rq  ±  s>   „ Ù" ?×#8Ñ#8¸&À)ÐMfÓg€JØ€EàBØñð TØñð�Fr   rq  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚQuantumTVLiveIErõ   rö   r÷   z7https://quantum-tv.com/channels/german?channel=srf_zweiTrî   z https://quantum-tv.com/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )rq  rú   rû   rü   s     €r   rú   zQuantumTVLiveIE.suitableÈ  r  r   )rÎ   rÏ   rÐ   rÛ   rn  r   rñ   rË   rò   r   rú   r  r  s   @r   rt  rt  ½  sT   ø„ Ù" ?×#8Ñ#8¸+ÀyÐRXÓY€JØ€EàHØñð 2Øñð€Fð óMó ôMr   rt  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚQuantumTVRecordingsIErå   r
  r  z5https://quantum-tv.com/recordings?recording=193615508Trî   zKhttps://quantum-tv.com/tc/ptc_recordings_all_recordings?recording=193615420Nrr  rh   r   r   rw  rw  Í  s;   „ Ù" ?×#8Ñ#8¸&À+ÓN€JØ€EàFØñð ]Øñð�Fr   rw  c                   ó   — e Zd ZdZdZy)ÚOsnatelTVBaseIEÚ	osnateltvztvonline.osnatel.deNrà   rh   r   r   ry  ry  Ù  s   „ Ø €NØ!�Er   ry  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚOsnatelTVIErå   ræ   rç   rè   z6https://tvonline.osnatel.de/program/daserste/210177916Trî   zGhttps://tvonline.osnatel.de/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   ry  r   rñ   rË   rò   rh   r   r   r|  r|  Þ  s>   „ Ù" ?×#8Ñ#8¸&À)ÐMfÓg€JØ€EàGØñð YØñð�Fr   r|  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚOsnatelTVLiveIErõ   rö   r÷   z<https://tvonline.osnatel.de/channels/german?channel=srf_zweiTrî   z%https://tvonline.osnatel.de/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r|  rú   rû   rü   s     €r   rú   zOsnatelTVLiveIE.suitableõ  r  r   )rÎ   rÏ   rÐ   rÛ   ry  r   rñ   rË   rò   r   rú   r  r  s   @r   r  r  ê  sT   ø„ Ù" ?×#8Ñ#8¸+ÀyÐRXÓY€JØ€EàMØñð 7Øñð€Fð óMó ôMr   r  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚOsnatelTVRecordingsIErå   r
  r  z:https://tvonline.osnatel.de/recordings?recording=193615508Trî   zPhttps://tvonline.osnatel.de/tc/ptc_recordings_all_recordings?recording=193615420Nr}  rh   r   r   r‚  r‚  ú  s;   „ Ù" ?×#8Ñ#8¸&À+ÓN€JØ€EàKØñð bØñð�Fr   r‚  c                   ó   — e Zd ZdZdZde› �Zy)ÚEinsUndEinsTVBaseIEÚ1und1tvz1und1.tvr  Nr  rh   r   r   r„  r„    s   „ Ø€NØ€EØ�u�g��Ir   r„  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚEinsUndEinsTVIErå   ræ   rç   rè   z+https://1und1.tv/program/daserste/210177916Trî   z<https://1und1.tv/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r„  r   rñ   rË   rò   rh   r   r   r‡  r‡    s?   „ Ù"Ð#6×#<Ñ#<¸fÀiÐQjÓk€JØ€Eà<Øñð NØñð�Fr   r‡  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚEinsUndEinsTVLiveIErõ   rö   r÷   z1https://1und1.tv/channels/german?channel=srf_zweiTrî   zhttps://1und1.tv/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r‡  rú   rû   rü   s     €r   rú   zEinsUndEinsTVLiveIE.suitable#  rT  r   )rÎ   rÏ   rÐ   rÛ   r„  r   rñ   rË   rò   r   rú   r  r  s   @r   rŠ  rŠ    sU   ø„ Ù"Ð#6×#<Ñ#<¸kÈ9ÐV\Ó]€JØ€EàBØñð ,Øñð€Fð óQó ôQr   rŠ  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚEinsUndEinsTVRecordingsIErå   r
  r  z/https://1und1.tv/recordings?recording=193615508Trî   zEhttps://1und1.tv/tc/ptc_recordings_all_recordings?recording=193615420Nrˆ  rh   r   r   r�  r�  (  s<   „ Ù"Ð#6×#<Ñ#<¸fÀkÓR€JØ€Eà@Øñð WØñð�Fr   r�  c                   ó   — e Zd ZdZdZy)ÚSaltTVBaseIEÚsalttvz
tv.salt.chNrà   rh   r   r   r�  r�  4  râ   r   r�  c                   óN   — e Zd Z eej
                  ddd«      ZdZdddœdddœgZy	)
ÚSaltTVIErå   ræ   rç   rè   z-https://tv.salt.ch/program/daserste/210177916Trî   z>https://tv.salt.ch/guide/german?channel=srf1&program=169860555N©	rÎ   rÏ   rÐ   rÛ   r�  r   rñ   rË   rò   rh   r   r   r’  r’  9  s>   „ Ù" <×#5Ñ#5°v¸yÐJcÓd€JØ€Eà>Øñð PØñð�Fr   r’  c                   ój   ‡ — e Zd Z eej
                  ddd«      ZdZdddœdddœgZe	ˆ fd„«       Z
ˆ xZS )	ÚSaltTVLiveIErõ   rö   r÷   z3https://tv.salt.ch/channels/german?channel=srf_zweiTrî   zhttps://tv.salt.ch/live/srf1c                 óP   •— t         j                  |«      rdS t        ‰| �  |«      S rù   )r’  rú   rû   rü   s     €r   rú   zSaltTVLiveIE.suitableP  rÿ   r   )rÎ   rÏ   rÐ   rÛ   r�  r   rñ   rË   rò   r   rú   r  r  s   @r   r•  r•  E  r  r   r•  c                   óL   — e Zd Z eej
                  dd«      ZdZdddœdddœgZy)	ÚSaltTVRecordingsIErå   r
  r  z1https://tv.salt.ch/recordings?recording=193615508Trî   zGhttps://tv.salt.ch/tc/ptc_recordings_all_recordings?recording=193615420Nr“  rh   r   r   r˜  r˜  U  s;   „ Ù" <×#5Ñ#5°v¸{ÓK€JØ€EàBØñð YØñð�Fr   r˜  rÍ   )DrÔ   r3   Úcommonr   Únetworking.exceptionsr   Úutilsr   r   r	   r
   r   r   r   rÛ   rÝ   rä   rô   r  r	  r  r  r  r  r  r  r!  r$  r&  r)  r,  r/  r1  r4  r7  r;  r=  rA  rE  rI  rL  rO  rR  rV  rX  r[  r^  ra  rc  rf  ri  rl  rn  rq  rt  rw  ry  r|  r  r‚  r„  r‡  rŠ  r�  r�  r’  r•  r˜  rh   r   r   ú<module>rœ     sÚ  ðÛ 	Û å !Ý -÷÷ ô\N˜=ô \Nó~	ôÐ'ô ô
ˆ|ô ô6J�<ô Jô 	�\ô 	ô	˜ô 	ôÐ*ô ô	�/ô 	ôM�oô Mô 	˜Oô 	ôÐ'ô ô
	ˆ|ô 	ôJ�<ô Jô 	˜ô 	ôÐ'ô ô
	ˆ|ô 	ôJ�<ô Jô 	˜ô 	ôÐ&ô ô	ˆkô 	ôI�+ô Iô 	˜ô 	ôÐ&ô ô	ˆkô 	ôI�+ô Iô 	˜ô 	ô"Ð.ô "ô
	Ð)ô 	ôQÐ-ô Qô 	Ð 3ô 	ôÐ&ô ô	ˆkô 	ôI�+ô Iô 	˜ô 	ôÐ&ô ô
	ˆkô 	ôI�+ô Iô 	˜ô 	ôÐ*ô ô	�/ô 	ôM�oô Mô 	˜Oô 	ô"Ð*ô "ô
	�/ô 	ôM�oô Mô 	˜Oô 	ôÐ.ô ô	Ð)ô 	ôQÐ-ô Qô 	Ð 3ô 	ôÐ'ô ô
	ˆ|ô 	ôJ�<ô Jô 	˜õ 	r   