U
    Éø¦iô ã                (   @   s  d dl Zd dlZd dlZd dlZd dlmZ d dlm	Z
 d dlZd dlZd dlZd dlZd dl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 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(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ e 0d
¡Z1dd„ e2e3e1d ƒƒD ƒZ4e2e3e1d ƒƒd Z5e1d d e1d  Z6e2e3e6ƒƒZ6dd„ e6D ƒZ7e 8e7e6dœ¡Z9e9d Z:e2e3e:ƒƒZ:e;e:ƒZ:dd„ e:D ƒZ<e1 =d¡d d e1 =d¡d  Z9e2e3e9ƒƒZ9e;e9ƒZ>dd„ e>D ƒZ?d @e1e1d e5k d ¡ZAe BejCdddddddœe#eAdƒd d!id"�g¡ZDeEd#d$ƒZFeF Gd%¡ eF H¡  d&d'„ ZIeJeKe1 L¡ d( jMd) ƒƒZNeNd* d k�rzeNeNd*  ZOneNZOeJeKe1 L¡ d( jMd+ ƒƒZPePd* d k�r¸ePd*ePd*   ZQnePZQe2eReOeQƒƒZSe TeS¡ZUd,ZVe Je Wd eXeUƒd eV¡¡ YeK¡ZZe2eUeZ ƒZ[eOe[d < eQe[eXe[ƒd < eRdeXe[ƒd ƒD ]`Z\e[e\ d- d k�r0e[e\ d- d.k�rre[e\ e[e\ d-  e[e\< ne[e\ d-e[e\ d-   e[e\< �q0i Z]i Z^d/d0d1d2œZ_d3d4d5œZ`e[D ]lZ\eKe\ƒZ\i Zae\e[d  k�sèe\e[eXe[ƒd  k�r d6 be\¡ead7< e_ead8< nd6 be\¡ead7< e`ead8< eae]e\< �q´e)e1ƒZce+ecd9ƒZde+ecd:ƒZee+ecd;ƒZfd dlgZgd d<lhmiZi eEd=d>ƒ�ZFeg jeF¡ZkW 5 Q R X ek ledd? ¡ZmejBd@dAieejBdBdCidD�eeejBdEdFdAdGœejBdHdHdIdJdAdKœejBdLejBdMejBejBdNdOd1d2œdPgdQ�ejBdRejndSdTdUdVœe4dWe5dX�gdY�gdZ�e o¡ e o¡ e o¡ ejBejBdNdOd1d2œd[gdQ�ejBd\ejpd]eOeQd*eOeQge]d^�gdY�gdZ�gd_�gd_�ejBd`ejBdMejBdNdOd1d2œdagdQ�ejBdbdciejndddTdUdVœe<dWe>dX�gdQ�gd_�gd_�gdQ�ejBdHdHdedfœejBdgejBdMejBdNdhdidjœejBdkdlddddœejCdmdnidoe(eddp dqdrgdsdtdudvgƒd d!idw�gdQ�gdQ�gd_�gd_�ejBdgejBdMejBdxdlddddœejBdydzdlddddœeDgd{�gdQ�gd_�gd_�ejBd|ejBdMejBddlddddœejCdmdlid}e.ecdpd~ƒd d!idw�gdQ�gd_�gd_�ejBdd€d€d�d‚œejqdƒd„d!d…d†d�iejBd‡dˆdid‰�gdŠ�gdQ�ejBd‹ejBdMdbdŒiejBd�dŽie rd�¡ejsd…d�d‘œd’d“e rd”¡ejtd•d–d—d˜d™œdš�gd›�gdQ�ejBdœdŒd�dždŸd œejBdkd�ddddŒd¡œejBd�dŒd¢œejCdmd�id£e(edd¤ dqdrgd¥dtd¦d§gƒd d!idw�gdQ�ejBd�dŒd¢œejCdmd�id¨e(efd© dªd«gd¬dtd­d®gƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd�džd°d œejBdkd�ddddœejBd±d²iejCdmd³id´e*eddp edd¤ ƒd d!idw�gdQ�ejBd±dµiejCdmd�id¶e/eddp edd¤ ƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd·d€d¸d œejBdkd�ddddœejBd±d²iejCdmd�id¹e,eddp edd¤ ƒd d!idw�gdQ�ejBd±dºiejCdmd»id¼e-eddp edd¤ ƒd d!idw�gdQ�gdQ�gd¯�gd¯�gd_�ejBd‹ejBdMdbdŒiejBd�dŽie rd�¡ejsd…d�d‘œd½d“e rd¾¡ejtd•d–d—d˜d™œdš�gd›�gdQ�ejBdœdŒd�dždŸd œejBdkd�ddddŒd¡œejBd�dŒd¢œejCdmd�id¿e(eedÀ dqdrgd¥dtd¦d§gƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd�džd°d œejBdkd�ddddœejBd±d²iejCdmd³idÁe*eedp eedÀ ƒd d!idw�gdQ�ejBd±dµiejCdmd�idÂe/eedp eedÀ ƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd·d€d¸d œejBdkd�ddddœejBd±d²iejCdmd�idÃe,eedp eedÀ ƒd d!idw�gdQ�ejBd±dºiejCdmd»idÄe-eedp eedÀ ƒd d!idw�gdQ�gdQ�gd¯�gd¯�gd_�ejBd‹ejBdMdbdŒiejBd�dŽie rdÅ¡gdQ�ejBdœdŒd�dždŸd œejBdkd�ddddŒd¡œejBd�dŒd¢œejCdmd�idÆe(emdqdrgd¥dtd¦d§gƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd�džd°d œejBdkd�ddddœejBd±d²iejCdmd³idÇe*eedp emƒd d!idw�gdQ�ejBd±dµiejCdmd�idÈe/eedp emƒd d!idw�gdQ�gdQ�gd¯�ejBdœdŒd·d€d¸d œejBdkd�ddddœejBd±d²iejCdmd�idÉe,eedp emƒd d!idw�gdQ�ejBd±dºiejCdmd»idÊe-eedp emƒd d!idw�gdQ�gdQ�gd¯�gd¯�gd_�gdQ�gdQ�gdQ�Zue vedydËdÌ�edddÍdÌ�edodÎdÌ�edSdÏdÌ�edddÏdÌ�ed£dÎdÌ�ed¨dÎdÌ�ed¿dÎdÌ�ed´dÎdÌ�edÁdÎdÌ�ed¶dÎdÌ�edÂdÎdÌ�ed¹dÎdÌ�edÃdÎdÌ�ed¼dÎdÌ�edÄdÎdÌ�ed}dÎdÌ�ed‡d8dÌ�edÆdÎdÌ�edÇdÎdÌ�edÈdÎdÌ�edÉdÎdÌ�edÊdÎdÌ�gedSdÍdÌ�ed]dÍdÌ�gedddÍdÌ�g¡dÐdÑ„ ƒZwe vedRdËdÌ�edddÍdÌ�g¡dÒdÓ„ ƒZxe vedÔd8ƒedÕd8ƒgedÖd×ƒedØd×ƒedÙd×ƒedÚd×ƒg¡dÛdˆ„ ƒZydS )Üé    N)ÚTextBlob)ÚInputÚOutputÚState)Ú	no_update)ÚPreventUpdate)Úapp)ÚnavbarÚnavbar2)Úsidebar)Ú	textfieldÚ	wordCloudÚimg_wordCloudÚwordCountBarChartÚavgReviewsBarChartÚavgPricesBarChartÚavgVsPriceBubbleChartÚemotionsBarChartÚsentimetsDonutChartÚcreateSentimentDfÚConfusionMatrixHeatmapÚgetSentimentAnalysisÚclassif_report_heatmapÚroc_curve_chartÚreview_length_histogramÚconfusion_matrix_pie_chartz./data/amazon_data.jsonc                 C   s   g | ]}||d œ‘qS ©)ÚlabelÚvalue© ©Ú.0Úbr   r   ú6/var/www/sinfronteras/sentiment-dash/app2_sentiment.pyÚ
<listcomp>    s     r$   Úbrandé   ú - Úseriesc                 C   s   g | ]}|  ¡ d  ‘qS ©r   ©Úsplit©r!   Úir   r   r#   r$   '   s     )r%   Úbrand_seriesr.   c                 C   s   g | ]}||d œ‘qS r   r   ©r!   Úsr   r   r#   r$   -   s     zbrand in @first_brandc                 C   s"   g | ]}d   | ¡ dd… ¡‘qS ©ú é   N©Újoinr+   r,   r   r   r#   r$   4   s     r2   Úreview_one_stringÚhistoúcalc(100% - 50px)Ú350pxÚblockÚauto©ÚwidthÚheightÚdisplayúmargin-leftúmargin-righté   ÚdisplayModeBarF©ÚidÚstyleÚfigureÚconfigútestfile.txtÚwÚ0c                 C   s.   t ddƒ}| | ¡ | ¡  t ddƒ}| ¡ S )NrI   rJ   Úr)ÚopenÚwriteÚcloseÚread)ÚvalÚfileÚfr   r   r#   Ú	resetfileB   s
    


rT   ÚpriceÚminé
   Úmaxé   é   g      )@ÚredÚ14ptÚnormal)Úcolorú	font-sizezfont-weightz#696b6eÚ13pt)r^   r_   z{}r   rF   ÚtextblobÚvaderÚsubjectivity)Úpre_processingznbayes_model_wang.pklÚrbÚ
title_textúborder-radiusÚ50pxz
min-heightÚ34pt©rF   Ú2500pxz0 auto 25px)ÚmaxWidthÚmarginrg   Ú50ptz-5ptz-100)r@   rA   ú
margin-topúz-indexrg   ÚdivDos1ÚinterDivSquareÚblackÚ17ptÚBrand)rF   ÚchildrenZbrand_div_id22Úbrand_idú100%Ú10px©z	max-widthr>   T©rE   rF   ÚoptionsÚmultir   )rE   rv   ©rv   z	Price ($)Zprice_div_idZprice_id)rE   rV   rX   Ústepr   Úmarks)Ú	classNamerv   ÚdivDos2ÚSeriesúbackground-colorzrgba(30,33,48,0.2)Zbrand_series_idÚ7pt)r@   rA   ro   Z
divSquare5Ú15ptz7px 0px 0px 20px)r^   r_   Úpaddingzcalc(100% - 00px)Ú360pxr>   Z340pxÚcustomer_ratingÚratingúPos.úNeg.úCustomer<br />ratingé   ú#007bffú#9c2828)rF   rE   rG   rH   zcalc(100% - 0px)Z	histo_divzcalc(100% - 5px))rE   rF   rv   Z
divSquare6Úreview_length_histÚlength_title_textÚfixedz50%Ú200)ÚpositionÚtopÚleftrp   z	loading-1ÚdefaultÚbluerp   Úloading_pager?   )rE   rF   )rE   ÚtypeÚ
fullscreenr^   rF   rv   Z
divSquare8Úwhiter_   Z22pxz'Lexicon-based Sentiment Analysis using Únone)r^   ztext-decorationz'https://textblob.readthedocs.io/en/dev/Z_blankz	TextBlob z@https://upload.wikimedia.org/wikipedia/commons/2/25/External.svgzGirl in a jacketZ17pxz0px 0px 10px 0px)r=   r‡   )ÚsrcÚaltrF   )rF   ÚhrefÚtargetrv   Z
divSquare4Z300pxz25%z10px 10px 10px 0px)r„   r>   r=   r‡   )r=   r>   r?   r@   rA   r„   )r>   r„   Úpolarity_textblobÚpolarity_title_text_textblobÚPolarityú#6495edú#b35050Úsubjectivity_textblobÚ subjectivity_title_text_textblobúObj.úSubj.ÚSubjectivityú#6868a3ú#9cba95)r�   rF   rv   z10px 25px 25px 25pxr‡   z0px 0px 20px 0pxZ280pxÚconfusion_matrix_textblobz0px 0px 20px 50pxÚconfusion_matrix_pie_textblobZ600pxz0px 40px 10px 40pxÚclassif_report_textblobz0px 80px 0px 80pxZ310pxÚroc_curve_textblobz(https://pypi.org/project/vaderSentiment/zVader Sentiment Úpolarity_vaderÚpolarity_title_text_vaderÚconfusion_matrix_vaderÚconfusion_matrix_pie_vaderÚclassif_report_vaderÚroc_curve_vaderz5Machine Learning Sentiment Analysis using Naive BayesÚpolarity_nbayesÚconfusion_matrix_nbayesÚconfusion_matrix_pie_nbayesÚclassif_report_nbayesÚroc_curve_nbayesrv   )Úcomponent_idÚcomponent_propertyr   rG   r|   c           1         sÐ  t ddƒ}| ¡ }ddi}ttd |d ktd |d k@ t td ¡B  }td |¡ƒ tt|d	 ƒƒ}d
d„ |D ƒ}|d	 d |d  }	tt|	ƒƒ}	t	|	ƒ}	dd„ |	D ƒ}
t
| ƒdk�r†t
|ƒdk�r†tjddddddœd�}d gt
| ƒ }tjtjddgg d�gd�}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|t|||
||||||||||||||||||fS t
| ƒdk�rnt ddƒ} |  d¡ |  ¡  tjddddddœd�}d gt
| ƒ }tjtjddgg d�gd�}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|}|g |||
|||||||||||||||||||fS |dk�r”t ddƒ} |  d¡ |  ¡  dd„ |D ƒ}!tt|!ƒƒ}!tt | |!¡ƒ}"tt |!| ¡ƒ‰ g }#t
|"ƒdk�r| d¡d	 d | d¡d  }$tt|$ƒƒ}$||$ }#t
ˆ ƒdk�r4‡ fdd„|D ƒ}#t
|#ƒdk�rRdd„ |D ƒ}ndd„ |#D ƒ}| d ¡}%t|%ƒ}&t|&d!ƒ}'t|&d"ƒ}(t|&d#ƒ})t |(d$ ¡}*d% | d ¡d& ¡}+|+dk�r4tjg d�},tjd'd(i|,d)d*id+�}-|-}.|-}/d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }�n�t|&ƒ}0tjtjd,dd(ddddœ|0d)d*id-�gd.�}/t|(d/ d0d1gd2d3d4d5gƒ}t|(d6 d0d1gd7d3d8d9gƒ}t|)d: d;d<gd=d3d>d?gƒ}t|'d@ d0d1gd7d3d8d9gƒ}t|(d/ |(d6 ƒ}t|'d/ |'d@ ƒ}t|(d/ |(d6 ƒ}t|'d/ |'d@ ƒ}t |(d/ |(d6 ƒ}t |'d/ |'d@ ƒ}t!|(d/ |(d6 ƒ}t!|'d/ |'d@ ƒ}t"|&d/dAƒ}t|*d0d1gd7d3d8d9gƒ}t|'d/ |*ƒ}t|'d/ |*ƒ}t |'d/ |*ƒ}t!|'d/ |*ƒ}|/t
|#ƒdk�rØ|#n||+dk�rðtjg d�n|||
|+dk�rtjg d�n||+dk�r$tjg d�n||+dk�r<tjg d�n||+dk�rTtjg d�n||+dk�rltjg d�n||+dk�r„tjg d�n||+dk�rœtjg d�n||+dk�r´tjg d�n||+dk�rÌtjg d�n||+dk�rätjg d�n||+dk�rütjg d�n||+dk�rtjg d�n|||+dk�r.tjg d�n||+dk�rFtjg d�n||+dk�r^tjg d�n||+dk�rvtjg d�n||+dk�rŽtjg d�n|fS t#dBƒ dCd„ |D ƒ}| d ¡}%t|%ƒ}&t|&d!ƒ}'t|&d"ƒ}(t|&d#ƒ})t |(d$ ¡}*d% | d ¡d& ¡}+|+dk�r~tjg d�},tjd'd(i|,d)d*id+�}-|-}.|-}/d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }d }�n�t|&ƒ}0tjtjd,dd(ddddœ|0d)d*id-�gd.�}/t|(d/ d0d1gd2d3d4d5gƒ}t|(d6 d0d1gd7d3d8d9gƒ}t|)d: d;d<gd=d3d>d?gƒ}t|'d@ d0d1gd7d3d8d9gƒ}t|(d/ |(d6 ƒ}t|'d/ |'d@ ƒ}t|(d/ |(d6 ƒ}t|'d/ |'d@ ƒ}t |(d/ |(d6 ƒ}t |'d/ |'d@ ƒ}t!|(d/ |(d6 ƒ}t!|'d/ |'d@ ƒ}t"|&d/dAƒ}t|*d0d1gd7d3d8d9gƒ}t|'d/ |*ƒ}t|'d/ |*ƒ}t |'d/ |*ƒ}t!|'d/ |*ƒ}|/t|+dk�
r(tjg d�n|||
|+dk�
rDtjg d�n||+dk�
r\tjg d�n||+dk�
rttjg d�n||+dk�
rŒtjg d�n||+dk�
r¤tjg d�n||+dk�
r¼tjg d�n||+dk�
rÔtjg d�n||+dk�
rìtjg d�n||+dk�rtjg d�n||+dk�rtjg d�n||+dk�r4tjg d�n||+dk�rLtjg d�n|||+dk�rftjg d�n||+dk�r~tjg d�n||+dk�r–tjg d�n||+dk�r®tjg d�n||+dk�rÆtjg d�n|fS d S )DNrI   rL   r?   rž   rU   r   r&   zQHolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{}r%   c                 S   s   g | ]}||d œ‘qS r   r   r    r   r   r#   r$     s     z"changing_brand.<locals>.<listcomp>r'   r(   c                 S   s   g | ]}||d œ‘qS r   r   r/   r   r   r#   r$     s     r8   r9   r:   r;   r<   rj   Ú )ÚlabelsÚvalues)ÚdatarJ   Ú2Ú3c                 S   s   g | ]}|  ¡ d  ‘qS r)   r*   r,   r   r   r#   r$   c  s     zbrand in @brands_to_addc                    s    g | ]}|  ¡ d  ˆ kr|‘qS r)   r*   )r!   r   ©Úbrands_to_suprimer   r#   r$   r  s      c                 S   s"   g | ]}d   | ¡ dd… ¡‘qS r1   r4   r,   r   r   r#   r$   u  s     c                 S   s"   g | ]}d   | ¡ dd… ¡‘qS r1   r4   r,   r   r   r#   r$   w  s     z&brand in @input_value & series in @serrb   ra   rc   rf   r2   r6   r>   rˆ   rC   F)rF   rG   rH   r7   rD   r~   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r¤   r¥   r¦   r§   r©   rª   r«   r¬   r­   r®   r´   r’   Ú5000c                 S   s"   g | ]}d   | ¡ dd… ¡‘qS r1   r4   r,   r   r   r#   r$   Û  s     )$rM   rP   rÃ   ÚnpÚisnanÚprintÚformatÚlistÚsetÚsortedÚlenÚhtmlÚDivÚgoÚFigureÚPier   rN   rO   Ú	setdiff1dÚqueryr   r   Únbayes_model_wangÚpredictr5   ÚdccÚGraphr   r   r   r   r   r   r   rT   )1Úinput_valuerU   Úinput_value_seriesrS   Úvarš   ÚdataRangePriceÚbrandsRangePriceÚbrandsRangePriceDropdownÚbrand_series_listRangePriceÚbrand_seriesRangePriceDropdownÚempÚserZ	empty_figr‰   r£   r¨   r³   r¯   rµ   r°   r¶   r±   r·   r²   r¸   r‘   r¹   rº   r»   r¼   r½   rR   Úbrand_distintÚbrands_to_addÚbrand_series_valueÚbrand_series_value_to_updateZdataRangePriceSeriesÚsentiment_dfÚsentiment_analysis_vaderÚsentiment_analysis_textblobÚsentiment_analysis_subjÚy_predÚtextÚfignadaÚnadaÚimgCloudÚdiZimgEmotionsBarChartr   rÆ   r#   Úchanging_brandë  sô   #
2ÿ2

ÿ4


 




ý ýé




ý ýérô   c                 C   sº   t ddƒ}| ¡ }t| ƒdkrJ|dkrJg }tjddddœtd	|d
�f}|S |dkr`tdƒ t‚nVt ddƒ}| d¡ | 	¡  dd„ | D ƒ}t
t|ƒƒ}tjddddœtd	|d
�f}|S d S )NrI   rL   r   rÄ   rw   rx   ry   rz   Tr{   rÈ   rJ   rÅ   c                 S   s   g | ]}|  ¡ d  ‘qS r)   r*   r,   r   r   r#   r$   ]  s     z)changing_brand_series.<locals>.<listcomp>)rM   rP   rÐ   rÚ   ÚDropdownÚbrandsrT   r   rN   rO   rÍ   rÎ   )rÜ   rS   rÞ   ræ   ÚdivrR   r   r   r#   Úchanging_brand_series<  s8    
û

ûrø   Zsidebar2ZsidebarMenu32ÚsidebarButtonÚn_clicksÚmenu3OpenButtonÚmenu3CloseButtonÚmenuHomec                 C   sú   t j}|jsd}n|jd d  d¡d }tj|j|j|jdœdd�}| }| d krbdd	idd	ifS |d
kr†| d dkr†ddidd	ifS |dkr¦|dkr¦ddiddifS |dkrÆ|dkrÆddidd	ifS |dkræ|dkrædd	idd	ifS dd	idd	ifS d S )NzNo clicks yetr   Úprop_idÚ.)ÚstatesÚ	triggeredÚinputsr3   )Úindentr?   rž   rù   r:   rû   rü   rý   )ÚdashÚcallback_contextr  r+   ÚjsonÚdumpsr   r  )Ún_sidebarButtonÚn_menu3OpenButtonÚn_menu3CloseButtonÚ
n_menuHomeÚctxÚ	button_idÚctx_msgÚclr   r   r#   r?   n  s.    ýü)zÚnumpyrÉ   ÚpandasÚpdÚcollectionsr  ra   r   Úplotly.graph_objsÚ
graph_objsrÓ   r  Údash_html_componentsrÑ   Údash_core_componentsrÚ   Údash_bootstrap_componentsÚdbcÚdash.dependenciesr   r   r   r   Údash.exceptionsr   r   Úcomponents.navbarr	   r
   Úcomponents.sidebarr   Úcomponents.plotsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Ú	read_jsonrÃ   rÍ   rÎ   rö   Úfirst_brandÚbrand_series_listÚ
brand_listÚ	DataFramer.   Úbrand_series_allrÏ   Úbrand_series_dropdownr×   rè   Úseries_first_brandr5   rï   rÒ   rÛ   ÚhistrM   rR   rN   rO   rT   ÚroundÚintÚdescribeÚlocÚminPriceÚminPrice_base10ÚmaxPriceÚmaxPrice_base10ÚrangeÚ
marks_listÚarrayÚarrÚnumElemsÚlinspacerÐ   ÚastypeÚidxÚmarks_list5r-   ÚmarksPricesÚ	styleDictÚ
styleDict1Ú
styleDict2ÚmarksValuesrÌ   rê   rì   rë   rí   ÚpickleÚutilsrd   ÚloadrØ   rÙ   rî   rõ   ÚBrÚRangeSliderÚLoadingÚSpanÚLinkÚImgÚlayoutÚcallbackrô   rø   r?   r   r   r   r#   Ú<module>   sØ  H
  ý



" 
$



ý
ÿþûÿþùÿ  
ÿþúÿþùÿèýÿþ:
ÿþûÿþùýÿþÅþ\

üÿþÿþÿþÿþÿýÿþÿþÿþ
üÿþÿþÿýþÿúÿþýþüþþüÿþüÿþôþÿü"üÿþüÿþôþÿü"üÿþüÿþôþÿü¨üÿý ýþüþþüÿþÿþÿüüÿþüÿþôþÿü"üÿþüÿþôþÿü³üÿý|ÿþüÿþÿþÿüüÿþüÿþôþÿü"üÿþüÿþôþÿüÀüÿý€ €  þ£úûþ    Z






















é

þ
ÿâ"
  1

ÿþ
,þüû