3 }úÿ\ ã@s–ddlZddlmZmZddlmZmZmZ m Z m Z dZdZdZdZdZdZdZdZdZdZd d„dd„dd„dd„gZdd„ZGdd„dejƒZdS)éNé)ÚImageÚFontFile)Úi8Úi16leÚi32leÚi16beÚi32beifcpééééééécCs |dd?S)Nrr ©)Úbitsrrúg/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/PcfFontFile.pyÚ'srcCs|dd?d@S)Nér réþÿÿÿr)rrrrr(scCs|dd?d@S)Nér éüÿÿÿr)rrrrr)scCs|dd?d@S)Né?r riøÿÿÿr)rrrrr*scCs|||jd|ƒ…S)Nó)Úindex)ÚsÚorrrÚsz.src@s@eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dS)Ú PcfFontFileÚnamec Cs*t|jdƒƒ}|tkrtdƒ‚tjj|ƒt|jdƒƒ}i|_xLt|ƒD]@}t|jdƒƒ}t|jdƒƒt|jdƒƒt|jdƒƒf|j|<qHW||_|j ƒ|_ |j ƒ}|j |ƒ}|j ƒ}xntdƒD]b} || } | dk rÀ|| \} } } }}}}}|df| || | | |fdd| | f|| f}||j| <qÀWdS)Nr znot a PCF fileér)Úl32ÚreadÚ PCF_MAGICÚ SyntaxErrorrÚ__init__ÚtocÚrangeÚfpÚ_load_propertiesÚinfoÚ _load_metricsÚ _load_bitmapsÚ_load_encodingÚglyph)Úselfr)ÚmagicÚcountÚiÚtypeÚmetricsÚbitmapsÚencodingÚchÚixÚxÚyÚlÚrÚwÚaÚdÚfr/rrrr&9s( 2  ,zPcfFontFile.__init__cCsX|j|\}}}|j}|j|ƒt|jdƒƒ}|d@rBtt}}n tt}}||||fS)Nr )r'r)Úseekr"r#Úb16Úb32Úl16)r0ÚtagÚformatÚsizeÚoffsetr)Úi16Úi32rrrÚ _getformatYs   zPcfFontFile._getformatc CsÒi}|jtƒ\}}}}||jdƒƒ}g}x>t|ƒD]2}|j||jdƒƒt|jdƒƒ||jdƒƒfƒq2W|d@r†|jd|d@tjƒ|j||jdƒƒƒ} x2|D]*\} } } t | | ƒ} | rÂt | | ƒ} | || <q W|S)Nr rr ) rLÚPCF_PROPERTIESr#r(ÚappendrrBÚioÚSEEK_CURr) r0Z propertiesr)rGrJrKZnpropsÚpr3ÚdataÚkrÚvrrrr*is2   zPcfFontFile._load_propertiesc Csdg}|jtƒ\}}}}|j}|d@dkrÈxœt||jdƒƒƒD]†}t|jdƒƒd}t|jdƒƒd} t|jdƒƒd} t|jdƒƒd} t|jdƒƒd} | |} | | }|| ||| | | | dfƒqr?r@rAÚbÚerrrr-³s4   *zPcfFontFile._load_bitmapsc CsÒdgd}|jtƒ\}}}}||jdƒƒ||jdƒƒ}}||jdƒƒ||jdƒƒ}} ||jdƒƒ||d| |d} xNt| ƒD]B} ||jdƒƒ} | dkrˆy| || |<Wqˆtk rÈPYqˆXqˆW|S)Nr!r riÿÿ)rLÚPCF_BDF_ENCODINGSr#r(Ú IndexError) r0r7r)rGrJrKZfirstColZlastColZfirstRowZlastRowZ nencodingr3ZencodingOffsetrrrr.às  zPcfFontFile._load_encodingN) Ú__name__Ú __module__Ú __qualname__r r&rLr*r,r-r.rrrrr5s .-rrr r réé é@rUr!)rOÚrrÚ_binaryrrrErr"rrCr rDr$rMZPCF_ACCELERATORSrVr]ZPCF_INK_METRICSrgZ PCF_SWIDTHSZPCF_GLYPH_NAMESZPCF_BDF_ACCELERATORSr`rrrrrrÚs$