L i:ddlZdZdZdZdZGddeZy)Nc$|D] }|dk7s |cSy)Nrg)argsargs b/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/svgLib/path/shapes.py_prefer_non_zerors" !8J cHd|zjdjdS)Nz%.3f0.)rstrip)ns r_ntosr s" QJ  s # * *3 //r c8d|vr|jdddS|S)N})split)tags r _strip_xml_nsrs%$'#:399S! Q 636r c tjd|}|sttdtjd|j dD}t |dk7rtd|z|S)Nzmatrix\((.*)\)c32K|]}t|ywN)float).0ps r z_transform..sH58Hsz\s+|,rzwrong # of terms in %s)rematchNotImplementedErrortuplergrouplen ValueError) raw_valuermatrixs r _transformr'sc HH& 2E !! HRXXh A%GH HF 6{a1I=>> Mr ceZdZdZddZdZdZdZdZdZ dZ dd Z dd Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZy) PathBuilderc g|_g|_yr)paths transformsselfs r__init__zPathBuilder.__init__%s r cp|jj||jjdyr)r+appendr,)r. initial_paths r _start_pathzPathBuilder._start_path)s& ,' t$r c&|jdy)Nz)_addr-s r _end_pathzPathBuilder._end_path-s  #r cZ|jd}|r |d|zz }n|}||jd<y)N )r+)r. path_snippetpaths rr6zPathBuilder._add0s3zz"~  C,& &DD 2r cX|j|t|dt|yN,r6rr.cxys r_movezPathBuilder._move8 q%(E!H56r c*|jd||y)NMrEr.rCrDs rrHz PathBuilder.M; 31r c*|jd||y)NmrIrJs rrMz PathBuilder.m>rKr c |jd|t|t||t|t|fzy)Nz%s%s,%s 0 %d 1 %s,%sr@)r.rBrxryrCrD large_arcs r_arczPathBuilder._arcAs7 "%)U2Y 58U1XF G r c0|jd|||||y)NArRr.rOrPrCrDrQs rrTz PathBuilder.AG #r2q!Y/r c0|jd|||||y)NarUrVs rrYz PathBuilder.aJrWr c@|j|t|yrr@)r.rBrCs r_vhlinezPathBuilder._vhlineMs AuQx()r c(|jd|y)NHr[r.rCs rr]z PathBuilder.HP S!r c(|jd|y)Nhr^r_s rrbz PathBuilder.hSr`r c(|jd|y)NVr^r.rDs rrdz PathBuilder.VVr`r c(|jd|y)Nvr^res rrgz PathBuilder.vYr`r cX|j|t|dt|yr>r@rAs r_linezPathBuilder._line\rFr c*|jd||y)NLrirJs rrkz PathBuilder.L_rKr c*|jd||y)NlrlrJs rrnz PathBuilder.lbrKr ct|jjdd}t|jjdd}t|jjdd}t|jjdd}|j|j |||j ||y)Nx1ry1x2y2)rattribgetr3rHrk)r.linerprqrrrss r _parse_linezPathBuilder._parse_linees 4;;??4+ , 4;;??4+ , 4;;??4+ , 4;;??4+ ,  r2 r2r ct|jjdd}t|jjdd}t|jjd}t|jjd}t|jjdd}t|jjdd}t||}t||}|j |j ||z||j ||z|z |dkDr|j||||z||z|j||z|z |dkDr|j||||z|z ||z|j ||z|dkDr|j|||||z|z |j||z|dkDr|j||||z||jy)NrCrrDwidthheightrOrP) rrtrurr3rHr]rTrdr7)r.rectrCrDwrbrOrPs r _parse_rectzPathBuilder._parse_rectos $++//#q) * $++//#q) * $++//'* + $++//(+ , 4;;??4+ , 4;;??4+ , b" % b" %  q2vq q1urz 6 FF2r1q5!b& ) q1urz 6 FF2r1q52:q1u - q2v 6 FF2r1a!ebj ) q2v 6 FF2r1r61 % r c`d|jvr |j|jdyy)Nd)r2rtr3)r.r<s r _parse_pathzPathBuilder._parse_paths- $++    $++c*:  ; r cd|jvr2|jd|jdz|jyyNpointsrH)rtr3r7r.polys r_parse_polygonzPathBuilder._parse_polygons9 t{{ "   S4;;x#88 9 NN  #r cdd|jvr"|jd|jdzyyrrrs r_parse_polylinezPathBuilder._parse_polylines/ t{{ "   S4;;x#88 9 #r ct|jjdd}t|jjdd}t|jjd}|j|j ||z ||j ||||z|d|j ||||z |dy)NcxrcyrrrQrrtrur3rHrT)r.circlerrrs r _parse_circlezPathBuilder._parse_circles 6==$$T1- . 6==$$T1- . &--##C( )  rAvr q!R!VR1- q!R!VR1-r ct|jjdd}t|jjdd}t|jjd}t|jjd}|j|j ||z ||j ||||z|d|j ||||z |dy)NrrrrOrPrrr)r.ellipserrrOrPs r_parse_ellipsezPathBuilder._parse_ellipses 7>>%%dA. / 7>>%%dA. / 7>>%%d+ , 7>>%%d+ ,  rBw r2rBwa0 r2rBwa0r ct|j}t|d|jzd}t |sy||d|j vr%t |j d|jd<y)Nz _parse_%sF transformr9T)rrgetattrlowercallablertr'r,)r.elrparse_fns radd_path_from_elementz!PathBuilder.add_path_from_elementsfBFF#4syy{!:DA! ")) #",RYY{-C"DDOOB r N))r)__name__ __module__ __qualname__r/r3r7r6rErHrMrRrTrYr[r]rbrdrgrirkrnrwr}rrrrrrrr rr)r)$s%7 00*78< : . 1r r))rrrrr'objectr)rr rrs* 0 7 S&Sr