)Ej `dZddlmZddlmZddlmZmZdd ZGd d ejZ d S)z* Parse X Bitmap Distribution Format (BDF) ) annotations)BinaryIO)FontFileImagefrreturnqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | Nonec  |}|sdS|drn/|ddd}i} |}|r|drnT|d}||dzdd||d|d<t } |}|r|d rn||ddz }:d |d D\}}}} tj||fd |d D\} } | | f|| |z ||z| fdd||ff} tj d||f|dd} n'#t$rtj d||f} YnwxYw|t|d| | fS)NTs STARTCHAR asciisBITMAP rsENDCHARc34K|]}t|VdSNint.0ps AC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/BdfFontFile.py zbdf_char..Hs($J$JSVV$J$J$J$J$J$JBBXc34K|]}t|VdSrrrs rrzbdf_char..Ms(881A888888rDWIDTHr1hexENCODING) readline startswithstripdecodefind bytearraysplitr_decompression_bomb_check frombytes ValueErrornewr)rsidpropsibitmapwidthheightx_dispy_dispdwxdwybboxims rbdf_charr8sO JJLL 4 << % %    122  g & &B EE JJLL ALL++   FF4LL'(Q}';';G'D'Daell7##$ E[[F JJLL ALL,,  !CRC& %K$JU5\5G5G5I5I$J$J$J!E666 #UFO44498h 5 5 7 7888HC c &6!56>F7; Auf D - _S5&/65# F F --- YsUFO , ,- s5$%%tR //s*G!G)(G)c$eZdZdZdfd ZxZS) BdfFontFilez(Font file plugin for the X11 BDF format.fprr Nonect|}|dsd}t |i}g} |}|r|drn|d}||dzdd||d|d<|d|d vrL|d d kr3|||dzdd t|}|sdS|\}} \} } } } d | cxkrt|j krnn| | | | f|j | <O) Ns STARTFONT 2.1znot a valid BDF fileTs ENDPROPERTIESrrrr )sCOMMENTs COPYRIGHTsLogicalFontDescriptionr) super__init__r r! SyntaxErrorr$r#appendr8lenglyph)selfr;r+msgr-commentsr.cr,chxydstsrcr7 __class__s rr?zBdfFontFile.__init__as  KKMM||,-- #(Cc"" " C A  %566 t A+,QURZ=+?+?+H+HE!BQB%,,w'' (!u22266344q88OOAa!ebjM$8$8$A$ABBB C 2 A )* &BNRcBB((((TZ(((((!#S#r!1 2  2r)r;rr r<)__name__ __module__ __qualname____doc__r? __classcell__)rLs@rr:r:^sC222222222222rr:N)rrr r ) rP __future__rtypingrrrr8r:rrrVs(#"""""<0<0<0<0~22222(#22222r