Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 2øªjjã|@sJdZddlmZmZmZmZddlZddlmZddl Z ddl Z e j e ƒZ �d��d‘�d“�d•gZ�d–�d—�d˜�d™�d›�dœ�d��dž�dŸ�d¡�d¢�d¤�d¦�d¨�dª�d¬�d®�d¯�d°�d±�d²�d³�d´�dµ�d¶�d·�d¸�d¹�d»�d¼�d½�d¾�d¿�dÀ�dÂ�dÃ�dÄ�dÅ�dÆ�dÇ�dÈ�dÉ�dË�dÌ�dÍ�dÎ�dÏ�dÐ�dÑ�dÒ�dÓ�dÔ�dÕ�dÖ�d×�dØ�dÙ�dÚ�dÛ�dÜ�dÝ�dÞ�dß�dà�dá�dâ�dã�dä�då�dæ�dç�dè�dé�dê�dë�dì�dí�dî�dï�dð�dñ�dò�dó�dô�dõ�dö�d÷�dø�dù�dú�dû�dü�dý�dþ�d�d�d�d�d�d�d�d�d �d �d �d �d �d�d�d�d�d�d�d�d�d�d�d�dgwZ�dx�dy„Ze j�dzƒZ�d{�d|„Zeeƒ\ZZeeƒ\ZZG�d}�d~„�d~eƒZ�dZ�d€Z�d�Z�d‚eeefZe jeƒZe j�dƒƒZe j�d„ƒZ e j�d…ƒZ!e j�d†ƒZ"�d‡�dˆ„Z#G�d‰�dŠ„�dŠe$ƒZ%�d‹�dŒ„Z&e �d�k�rFddl'Z'ddl(Z(e'j)e(j*ƒj+ƒdS(zSttLib.tables.ttProgram.py -- Assembler/disassembler for TrueType bytecode programs.é)Ú num2binaryÚ binary2numÚreadHexÚstrjoinN)ÚStringIOé@ÚNPUSHBÚ PushNBytesééAÚNPUSHWÚ PushNWordsé°ÚPUSHBéÚ PushBytesé¸ÚPUSHWÚ PushWordséÚAAÚ AdjustAngleédÚABSÚAbsoluteé`ÚADDÚAddéé'ÚALIGNPTSÚAlignPtsé<ÚALIGNRPÚAlignRelativePtéZÚANDÚ LogicalAndé+ÚCALLÚ CallFunctionégÚCEILINGÚCeilingé%ÚCINDEXÚCopyXToTopStacké"ÚCLEARÚ ClearStackéOÚDEBUGÚ DebugCallésÚDELTAC1ÚDeltaExceptionC1étÚDELTAC2ÚDeltaExceptionC2éuÚDELTAC3ÚDeltaExceptionC3é]ÚDELTAP1ÚDeltaExceptionP1éqÚDELTAP2ÚDeltaExceptionP2érÚDELTAP3ÚDeltaExceptionP3é$ÚDEPTHÚ GetDepthStackébÚDIVÚDivideé ÚDUPÚDuplicateTopStackéYÚEIFÚEndIféÚELSEÚElseé-ÚENDFÚEndFunctionDefinitionéTÚEQÚEqualéWÚEVENÚEvené,ÚFDEFÚFunctionDefinitionéNÚFLIPOFFÚSetAutoFlipOfféMÚFLIPONÚ SetAutoFlipOné€ÚFLIPPTÚ FlipPointé‚Ú FLIPRGOFFÚ FlipRangeOffé�ÚFLIPRGONÚ FlipRangeOnéfÚFLOORÚFlooréFÚGCÚGetCoordOnPVectoréˆÚGETINFOÚGetInfoé‘Ú GETVARIATIONÚ GetVariationé ÚGFVÚ GetFVectoré ÚGPVÚ GetPVectoréRÚGTÚ GreaterThanéSÚGTEQÚGreaterThanOrEqualé‰ÚIDEFÚInstructionDefinitionéXÚIFÚIféŽÚINSTCTRLÚSetInstrExecControlé9ÚIPÚInterpolatePtséÚISECTÚMovePtToIntersectéé0ÚIUPÚInterpolateUntPtséÚJMPRÚJumpéyÚJROFÚJumpRelativeOnFalseéxÚJROTÚJumpRelativeOnTrueé*ÚLOOPCALLÚLoopAndCallFunctionéPÚLTÚLessThanéQÚLTEQÚLessThenOrEqualé‹ÚMAXÚMaximuméIÚMDÚMeasureDistanceé.ÚMDAPÚMoveDirectAbsPtéÀÚMDRPÚMoveDirectRelPté>ÚMIAPÚMoveIndirectAbsPtéŒÚMINÚMinimumé&ÚMINDEXÚMoveXToTopStackéàÚMIRPÚMoveIndirectRelPtéKÚMPPEMÚMeasurePixelPerEméLÚMPSÚMeasurePointSizeé:ÚMSIRPÚMoveStackIndirRelPtécÚMULÚMultiplyéeÚNEGÚNegateéUÚNEQÚNotEqualé\ÚNOTÚ LogicalNotélÚNROUNDÚNoRoundéVÚODDÚOddé[ÚORÚ LogicalOré!ÚPOPÚ PopTopStackéEÚRCVTÚReadCVTé}ÚRDTGÚRoundDownToGridézÚROFFÚRoundOfféŠÚROLLÚRollTopThreeStackéhÚROUNDÚRoundéCÚRSÚ ReadStoreé=ÚRTDGÚRoundToDoubleGridéÚRTGÚ RoundToGridéÚRTHGÚRoundToHalfGridé|ÚRUTGÚ RoundUpToGridéwÚS45ROUNDÚSuperRound45Degreesé~ÚSANGWÚSetAngleWeighté…ÚSCANCTRLÚScanConversionControlé�ÚSCANTYPEÚScanTypeéHÚSCFSÚSetCoordFromStackFPéÚSCVTCIÚ SetCVTCutIné^ÚSDBÚSetDeltaBaseInGStateé†ÚSDPVTLÚSetDualPVectorToLineé_ÚSDSÚSetDeltaShiftInGStateé ÚSFVFSÚSetFVectorFromStackéÚSFVTCAÚSetFVectorToAxiséÚSFVTLÚSetFVectorToLineéÚSFVTPVÚSetFVectorToPVectoré4ÚSHCÚShiftContourByLastPté2ÚSHPÚShiftPointByLastPointé8ÚSHPIXÚShiftZoneByPixelé6ÚSHZÚShiftZoneByLastPointéÚSLOOPÚSetLoopVariableéÚSMDÚSetMinimumDistanceé ÚSPVFSÚSetPVectorFromStackÚSPVTCAÚSetPVectorToAxiséÚSPVTLÚSetPVectorToLineévÚSROUNDÚ SuperRoundéÚSRP0Ú SetRefPoint0éÚSRP1Ú SetRefPoint1éÚSRP2Ú SetRefPoint2éÚSSWÚSetSingleWidthéÚSSWCIÚSetSingleWidthCutInéaÚSUBÚSubtractÚSVTCAÚSetFPVectorToAxisé#ÚSWAPÚ SwapTopStackéÚSZP0ÚSetZonePointer0éÚSZP1ÚSetZonePointer1éÚSZP2ÚSetZonePointer2éÚSZPSÚSetZonePointerSé)ÚUTPÚ UnTouchPtépÚWCVTFÚWriteCVTInFUnitséDÚWCVTPÚWriteCVTInPixelséBÚWSÚ WriteStorecCs2d}x(t|ƒD]}d|d@|}|d?}qW|S)NÚZ01r )Úrange)ÚvalueÚbitsÚsÚi©r€úE/tmp/pip-build-_d5lkt3n/fonttools/fontTools/ttLib/tables/ttProgram.pyÚbitRepr™s  r‚z[A-Z][A-Z0-9]*$c CsŠi}i}xx|D]p\}}}}}}tj|ƒs,t‚|||f||<|rn|} x:td|>ƒD]} ||| |f||| <qPWq|dd|f||<qW||fS)Nr r)Ú _mnemonicPatÚmatchÚAssertionErrorr{) ZinstructionListÚ opcodeDictÚ mnemonicDictÚopÚmnemonicÚargBitsÚnameZpopsZpushesÚ argoffsetrr€r€r�Ú _makeDict£sr�c@seZdZdd„Zdd„ZdS)Útt_instructions_errorcCs ||_dS)N)Úerror)Úselfr�r€r€r�Ú__init__µsztt_instructions_error.__init__cCsdt|jƒS)NzTT instructions error: %s)Úreprr�)r�r€r€r�Ú__str__·sztt_instructions_error.__str__N)Ú__name__Ú __module__Ú __qualname__r‘r“r€r€r€r�rŽ´srŽz /\*.*?\*/z([A-Z][A-Z0-9]*)\s*\[(.*?)\]z-?[0-9]+z(%s)|(%s)|(%s)z\s*z-[A-Z][A-Z0-9]*\s*\[.*?\]\s*/\* ([0-9]+).*?\*/z^FDEF|IF|ELSE\[ \]\t.+z^ELSE|ENDF|EIF\[ \]\t.+cCs*tj||ƒ}|jdd}||ks&t‚|S)Nrr )Ú_whiteREr„Úregsr…)ÚdataÚposÚmZnewPosr€r€r�Ú _skipWhiteÈs  rœc@steZdZdd„Zdd„Zdd„Zdd„Zdd d „Zd d „Zdd„Z dd„Z ddd„Z dd„Z e Z dd„Zdd„ZdS)ÚProgramcCsdS)Nr€)r�r€r€r�r‘ÑszProgram.__init__cCs tjd|ƒ|_t|dƒr|`dS)NÚBÚassembly)ÚarrayÚbytecodeÚhasattrrŸ)r�r¡r€r€r�Ú fromBytecodeÔs zProgram.fromBytecodecCs||_t|dƒr|`dS)Nr¡)rŸr¢r¡)r�rŸr€r€r�Ú fromAssemblyÙs zProgram.fromAssemblycCst|dƒs|jƒ|jjƒS)Nr¡)r¢Ú _assembler¡Útobytes)r�r€r€r�Ú getBytecodeÞs zProgram.getBytecodeTcCst|dƒs|j|d�|jS)NrŸ)Úpreserve)r¢Ú _disassemblerŸ)r�r¨r€r€r�Ú getAssemblyãs  zProgram.getAssemblyc CsVt|dƒ s|j�ry |jƒ}WnŠddl}tƒ}|j|d�d}||jƒ7}tj|ƒ|j dƒ|j ƒ|j |j ƒƒ|j ƒ|j |jƒƒ|jdƒ|j ƒY�qRX|s´dS|j dƒ|j ƒd}d}t|ƒ} �x$|| k�rü||} tj| ƒ�r|d8}|j|j|ƒ|j| ƒ|j ƒtj| ƒ} |d}| �rèt| jdƒƒ} g} d}xbt| ƒD]V}|�rœ|d �rœ|j|j|ƒ|jd j| ƒƒ|j ƒg} | j|||ƒ�qZW|j|j|ƒ|jd j| ƒƒ|j ƒ||d}tj| ƒrÚ|d7}qÚW|jdƒ|j ƒn@|jƒ}|�s$dS|j dƒ|j ƒ|j |ƒ|jdƒ|j ƒdS) NÚdisassembleInstructionsr)ÚfilezBAn exception occurred during the decompilation of glyph program: r¡rŸr rú )r¢r«rªÚ tracebackrÚ print_excÚgetvalueÚlogr�ZbegintagÚnewlineÚcommentÚstripZdumphexr§ZendtagÚlenÚ _unindentREr„ÚwriteZ indentwhiteÚ _pushCountPatÚintÚgroupr{ÚjoinÚappendÚ _indentRE)r�ÚwriterÚttFontrŸr®ÚtmpÚmsgrÚindentZnInstrÚinstrr›ÚnValuesÚlineÚjr¡r€r€r�ÚtoXMLèsx                  z Program.toXMLcCsB|dkr$|jt|ƒƒ|jƒ|`n|dks0t‚|jt|ƒƒdS)NrŸr¡)r¤rr¥rŸr…r£r)r�r‹ÚattrsÚcontentr¿r€r€r�ÚfromXML(s  zProgram.fromXMLcCsjt|dgƒ}t|tgƒƒr$dj|ƒ}g}|j}t|ƒ}t|dƒ}�xî||k�r0tj||ƒ}|dkr~t d||d|d…ƒ‚|j ƒ\}}} } } |j dd}| r®t||ƒ}qD| j ƒ} |j dƒrÜt|dd…ƒ} || ƒ�nH|dk�r:t|\} } }t| ƒ| k�rt d|| fƒ‚| �r.t| ƒ} || | ƒn|| ƒ�nêg}t||ƒ}xš||k�râtj||ƒ}|dk�r‚t d|||d…ƒ‚|j ƒ\}}} } } | dk�rª| dk�rªP|j dd}t||ƒ}| dk �rÐ�qJ|jt| ƒƒ�qJWt|ƒ}|d k�rd}�x&|�rxD||k�rH|dk�rHd||k�o2dkn �rH|d7}�qWd}xJ|||k�r˜|dk�r˜d|||k�o„dkn�r˜|d7}�qPW|dk�rÌ||dk�rÌ|||k�rÌ||7}�qþ|�rz|dk�rtd \} } }| |d} || ƒntd \} } }|| ƒ||ƒxZ|d|…D]J}d|k�oDdkn�sXtd|ƒ‚||d?d@ƒ||d@ƒ�q,W|�rð|dk�r®td \} } }| |d} || ƒntd \} } }|| ƒ||ƒx"||||…D]}||ƒ�qÞW||}||d…}||8}d}�qþW�n |ddk}t|\} } }|ddk�rj|dk�sTt|ƒ‚| |d} || ƒn|dk�sxt‚|| ƒ||ƒ|�räx”|D]J}d|k�o¬dkn�sÀtd|ƒ‚||d?d@ƒ||d@ƒ�q”Wn@x>|D]6}d|k�odkn�std|ƒ‚||ƒ�qêWt||ƒ}qDW|�rXt|ƒdk�rTt|ƒdk�sXt‚tjd|ƒ|_dS)NrŸr­rzSyntax error in TT program (%s)ršr—r ZINSTRÚPUSHrr rrz*Incorrect number of argument bits (%s[%s])éÿrr(i€zPUSH value out of range %dÚWÚNézPUSHW value out of range %dzPUSHB value out of range %drž)rËrr rri€ÿÿéÿÿÿÿi€ÿÿ)ÚgetattrÚ isinstanceÚtyper»r¼rµrœÚ_tokenREr„rŽÚgroupsr˜r´Ú startswithr¹r‡rÚstreamMnemonicDictr…ÚmaxÚminr r¡)r�rŸr¡ÚpushZ lenAssemblyršr›Údummyr‰ÚargÚnumberr³rˆrŠr‹ÚargsZ _mnemonicZnArgsZnWordsZnBytesr|ZnTotalÚwordsr€r€r�r¥1sÊ                 8>&   (        ( ( zProgram._assembleFcCs g}d}t|dgƒ}t|ƒ}�xö||k�r||}yt|\}}} } W�n†tk �rÎ|tk�r´g} �xþ||tk�rh||}t|\}}} } |ddk} |r°|| d} n|d}||} |d}| dksÔt‚| �s x„t| ƒD]"}||}| jt|ƒƒ|d}qäWnTxRt| ƒD]F}||d>||dB}|dk�rD|d}| jt|ƒƒ|d}�qW|rlPqlW|�std }t| ƒ} | dk�r–|jd |ƒn|jd || fƒ|j | ƒn|jd |ƒ|d}Yq X|�rø|j|d t || |ƒ| fƒn|j|d| ƒ|d}q W||_ dS)Nrr¡r rÍr(i€irrËz%s[ ] /* 1 value pushed */z%s[ ] /* %s values pushed */z INSTR%d[ ]z [%s] /* %s */z [ ] /* %s */rÐ) rÑrµr†ÚKeyErrorÚstreamOpcodeDictr…r{r¼r’ÚextendrrŸ)r�r¨rŸrr¡Z numBytecoderˆr‰rŠrŒr‹ÚvaluesrßrÄrÆr|r€r€r�r©¬s`       " zProgram._disassemblecCs0t|dƒrt|jƒdkp.t|dƒo.t|jƒdkS)aD >>> p = Program() >>> bool(p) False >>> bc = array.array("B", [0]) >>> p.fromBytecode(bc) >>> bool(p) True >>> p.bytecode.pop() 0 >>> bool(p) False >>> p = Program() >>> asm = ['SVTCA[0]'] >>> p.fromAssembly(asm) >>> bool(p) True >>> p.assembly.pop() 'SVTCA[0]' >>> bool(p) False rŸrr¡)r¢rµrŸr¡)r�r€r€r�Ú__bool__èszProgram.__bool__cCs t|ƒt|ƒkrtS|j|jkS)N)rÓÚNotImplementedÚ__dict__)r�Úotherr€r€r�Ú__eq__szProgram.__eq__cCs|j|ƒ}|tkr|S| S)N)rèrå)r�rçÚresultr€r€r�Ú__ne__ s zProgram.__ne__N)T)F)r”r•r–r‘r£r¤r§rªrÇrÊr¥r©räÚ __nonzero__rèrêr€r€r€r�r�Ïs @ { <r�cCs>d}tƒ}|j|ƒ|jdd�}|j|ƒt||jƒkƒdS)z >>> _test() True s·@;:9876543210/.-,+*)('&%$#"!  ,°CXEj°C`°F#D# °FNðM/°!#3Y-,°CX°+°K°PX±@8Y°+!#3Y-,°CXN°%ò!°M E°%°%#Jad°(RX!#Ö°%ò!°YY-,°CX!!°%°%I°%°%Ja d°PX!!!°%°%I°PX°PX¸ÿâ8!°8!Y°RX°8!¸ÿð8!YYYY-,°CX°+°K°PX¹ÿÀ8Y°+!#3Y-,NбFCD°±Fâ°¹ÿð8°<°(+°%°<-,°/°ò°°M°-,°CX°+°¹ÿà8°+!#3Y-,°CXEdj#Edi°Cd``°F#D# °Fð/°!! Š ŠRX3!!YY-,± C#Ce -,± C#C -,°F#p±F>°F#p±FE:± -,°+°%E°%Ej°@‹`°%#D!!!-,°+°%E°%Ej¸ÿÀŒ`°%#D!!!-,°°+!!!-,°°+!!!-,°C°Ce -, i°@a°‹ ±,ÀŠŒ¸b`+ d#da\X°aY-,±%EhT°KPZX°%E°%E`h °%#D°%#D°% Eh Š#D°%Eh`°%#DY-,°% Eh Š#D°%Edhe`°%°`#D-,° CX‡!À°CX‡E°+°G#D°GzäŠEi °G#DŠŠ‡ ° QX°+°G#D°Gzä!°GzäYYY-, ŠE#Eh`D-,EjB-,/-,°CX°%°%Id#Edi°@‹a °€bj°%°%aŒ°C`°F#D!аFö!!!!!Y-,°CX°%E°%Ed`j°%Eja °%Ej Š‹e°%#DŒ°%#D!! EjD EjDY-, E°U°CZXEh#Ei°@‹a °€bj Š#a °%‹e°%#DŒ°%#D!!!!°+Y-,ŠŠEd#EdadB-,°%°%°+°CX°%°%°%°+°%C°@T°%C°TZX°% E°@aDY°%C°T°%C°@TZX°% E°@`DYY!!!!-,KRXC°%E#aD!!Y-,KRXC°%E#`D!!Y-,KRXED!!Y-, °%#I°@`° c °RX#°%8#°%e8Šc8!!!!!Y-,KPXED!!Y-,°%# Šõ°`#íì-,°%# Šõ°a#íì-,°%õíì-,F#F`ŠŠF# FŠ`Ša¸ÿ€b# #бKKŠpE` °PX°a¸ÿº‹°FŒY°`h:-, E°%FRX°%F ha°%°%?#!8!Y-, E°%FPX°%F ha°%°%?#!8!Y-,°C°C -,Šì-,° CX! F°RX¸ÿð8°8YY-, °UX¸c°%Ed°%Eda°SX°°@a°Y%EiSXED!!Y!°%E°%Ead°(QXED!!YY-,!! d#d‹¸@b-,!°€QX d#d‹¸ b²@/+Y°`-,!°ÀQX d#d‹¸Ub²€/+Y°`-, d#d‹¸@b`#!-,KSX°%°%Id#Edi°@‹a °€bj°%°%aŒ°F#D!аFö!!Š# 9/Y-,°%°%Id°ÀTX¸ÿø8°8!!Y-,°CXY-,°CXY-,° +# <°+-,°%¸ÿð8°(+Š# Ð#°+°CXÀrr?rÐrrÐ)r@rArrBrÐrrÐ)rCrDrrErÐrrÐ)rFrGrrHrÐr)rIrJrrKrr )rLrMrrNrr )rOrPrrQr r)rRrSrrTrr)rUrVrrWrr)rXrYrrZrr)r[r\rr]rr )r^r_rr`r r )rarbrrcr r)rdrerrfrr)rgrhrrirrrÐ)rjrkrrlrÐr)rmrnrrorr)rprqrrrrr)rsrtrrur r )rvrwr rxr r )ryrzrr{r r rÐ)r|r}rr~rrÐ)rr€rr�rr)r‚rƒrr„rr)r…r†rr‡rr )rˆr‰rrŠrr )r‹rŒrr�r r)rŽr�rr�r r)r‘r’rr“rrrÐ)r”r•rr–rÐr)r—r˜rr™ršr)r›rœr r�rr)ržrŸrr r r)r¡r¢rr£rr)r¤r¥rr¦rr)r§r¨rr©rr)rªr«rr¬rr )r­r®rr¯rr )r°r±rr²rr )r³r´r rµrr )r¶r·r r¸r r)r¹rºršr»r r)r¼r½r r¾rr)r¿rÀrrÁrr )rÂrÃrrÄr r )rÅrÆršrÇrr)rÈrÉrrÊrr )rËrÌrrÍrr )rÎrÏr rÐrr)rÑrÒrrÓrr )rÔrÕrrÖr r )r×rØrrÙrr )rÚrÛrrÜr r )rÝrÞrrßr r )ràrárrâr r )rãrärrårr )rærçrrèr r)rérêrrër r )rìrírrîrr)rïrðrrñrr)ròrórrôrr)rõrörr÷r r )rørùrrúr r )rûrürrýrr)rþrÿrrrr)rrrrrr)rrrrrr)rrrr r r)r r rr r r)r rrrr r)rrrrr r)rrrrrr)rrrrr r)rrrrr r)rrr rrr)rr rr!r r)r"r#rr$rr)r%r&r r'rr)r(r)r r*rr)r+r,rr-rr)r.r/r r0r rrÐ)r1r2r r3rÐrrÐ)r4r5rr6rÐr)r7r8r r9r r)r:r;rr<r r)r=r>rr?r r)r@rArrBrr)rrCr rDrr)rErFr rGrr)rHrIrrJr r)rKrLrrMr r)rNrOrrPr r)rQrRrrSr r)rTrUrrVr r)rWrXrrYr r)rZr[rr\rr )rr]r r^rr)r_r`rrarr)rbrcrrdr r)rerfrrgr r)rhrirrjr r)rkrlrrmr r)rnrorrpr r)rqrrrrsrr)rtrurrvrr)rwrxrryrr),Ú__doc__ZfontTools.misc.textToolsrrrrr ÚiorÚreÚloggingÚ getLoggerr”r±ZstreamInstructionsZ instructionsr‚Úcompilerƒr�rár×r†r‡Ú ExceptionrŽÚ_commentZ _instructionZ_numberÚ_tokenrÔr—r¸r½r¶rœÚobjectr�rîÚsysÚdoctestÚexitÚtestmodÚfailedr€r€r€r�Ús2              B