HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/inkscape/extensions/layout_nup.pyo
�
��Yc@s�dZddlZddlZyddljjZWnSyddlmZWn5yddlmZWnejj	d�nXnXnXdej
fd��YZe�Zej
�dS(s�
Copyright (C) 2007 Terry Brown, terry_n_brown@yahoo.com

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
i����N(tetree(tElementTreesaRequires ElementTree module, included
in Python 2.5 or supplied by lxml or elementtree modules.

tNupc
BsheZd�Zd�Zd�Zd�Zdd�Zdddddeddddgd
e	d�Z
RS(c CsCtjj|�dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdd$d%d&tdfdXdYdZd[dd/d%d0tdfdd1d%d2tdfdd3d%d4tdfdd5d%d6tdfdd7d%d8tdfdd9d%d:tdfd\g}xW|D]O}|jj|d=|d>d?d@dA|dBdC|dDdE|dFdG|dH�q�WdS(]Nts--unittstringtunittpxs--rowstinttrowst2s--colstcolss--paddingTopt
paddingTops--paddingBottomt
paddingBottoms
--paddingLefttpaddingLefts--paddingRighttpaddingRights--marginTopt	marginTops--marginBottomtmarginBottoms--marginLeftt
marginLefts
--marginRighttmarginRights	--pgSizeXtpgSizeXs	--pgSizeYtpgSizeYs--sizeXtsizeXs--sizeYtsizeYs--calculateSizetinkboolt
calculateSizes
--pgMarginToptpgMarginTops--pgMarginBottomtpgMarginBottoms--pgMarginLefttpgMarginLefts--pgMarginRightt
pgMarginRights--showHoldert
showHolders
--showCrossestshowCrossess--showInnert	showInners--showOutert	showOuters--showInnerBoxtshowInnerBoxs--showOuterBoxtshowOuterBoxs--tabttabiitactiontstorettypeitdestitdefaultithelpi(Rs--unitsstringsunitRR(Rs--rowssintsrowsR	R(Rs--colssintscolsR	R(Rs--paddingTopsstrings
paddingTopRR(Rs--paddingBottomsstrings
paddingBottomRR(Rs
--paddingLeftsstringspaddingLeftRR(Rs--paddingRightsstringspaddingRightRR(Rs--marginTopsstrings	marginTopRR(Rs--marginBottomsstringsmarginBottomRR(Rs--marginLeftsstrings
marginLeftRR(Rs
--marginRightsstringsmarginRightRR(Rs	--pgSizeXsstringspgSizeXRR(Rs	--pgSizeYsstringspgSizeYRR(Rs--sizeXsstringssizeXRR(Rs--sizeYsstringssizeYRR(Rs
--pgMarginTopsstringspgMarginTopRR(Rs--pgMarginBottomsstringspgMarginBottomRR(Rs--pgMarginLeftsstringspgMarginLeftRR(Rs--pgMarginRightsstrings
pgMarginRightRR(Rs--tabsstringR#RR(tinkextEffectt__init__tTruetFalsetOptionParsert
add_option(tselftoptsto((s,/usr/share/inkscape/extensions/layout_nup.pyR,%s>	
*cCs!g}xTddddddgD]:}t|j|�r|j|j�jdd��qqW|j}|jd	|jd
|j|jfd|j	|j
|j|jfd|j
|jfd
|jd|j|jfd|j|j|j|jfd|j|j|j|jfd|�	|_dS(NRRRR R!R"tshowRRtpgSizetpgMargintnumRtsizetmargintpadding(tgetattrtoptionstappendtlowertreplacetGenerateNupRRRRRRRRR
RRRRRRRRRRR
tpf(R1tshowListtiR3((s,/usr/share/inkscape/extensions/layout_nup.pyteffectHs &				cCs/|jj|�}||_|jj|�dS(N(t
ownerDocumenttcreateAttributetvaluet
attributestsetNamedItem(R1tnodetnameRGtattr((s,/usr/share/inkscape/extensions/layout_nup.pytsetAttr[s	cCstjj|j�dS(N(tsyststdouttwriteRA(R1((s,/usr/share/inkscape/extensions/layout_nup.pytoutput`sics�yt|�WndSXt|�|kr8|d}nt|�|krYtd��ny#tt��fd�|��SWndSXdS(Nis'expandTuple: requires 2 or 4 item tuplecs0�jttt|������jd�S(Nt1px(tunittouutstrteval(tev(R1R(s,/usr/share/inkscape/extensions/layout_nup.pyt<lambda>ms(titertNonetlent	Exceptionttupletmap(R1Rtxtlength((R1Rs,/usr/share/inkscape/extensions/layout_nup.pytexpandTuplecs
#Rs8.5*96s11*96iiiR(tsvgc
"s�d|
kr0t|
�jddddg�}
n|j||�}|j||�}|j||�}|j||	�}	|j||dd�}ttt||��}
d7\}}}}d8\��d9\��|j||dd�}|d6ks4|tks4t|�dks4|ddks4|d	dkr�|�|
||
|��||||��|�|
||
|��||||��f}n|j||dd�}|�|||||�||||f�d}dit	|
||||	|�d
6t	|
||||	|�d6t	|�|	||	|�d6t	|�|	||	|�d6|d6f}dit	|
|||�d
6t	|
|||�d6t	|��d6t	|��d6|d6f}t
j
t
j|idd6dd6t	|��d6t	|��d6��}t
j�|j
�}�������fd�}tddg�j|
�r��|didd6dd6�}d|
kr=d|d	d<|d	djdd�|d	d<�||�|d	d=|d	djdd�|d	d<||d�nd|
kr�d |d	d<|d	djdd�|d	d<�||�|d	d=|d	djdd�|d	d<||d �q�ntdg�j|
�r��|did!d6dd6�}d|
kr�d"}�|ddd#�}d:\}}d$||
|||||
||||f}|d%||
|||||
||||f7}|d&||
||||||
|||f7}|d%||
||||||
|||f7}�|d'd|d(d)|dd*�xsd;D]k}xbd<D]Z}|sV|rD||�||�}}�|d+id,d-6d.||fd/6�qDqDWq7W||d#�q�n�|did0d6dd6�}||d1��|did2d6dd6�}�|did1d6�}d|
kr;�||�nd3|
krW�||�nd|
krg|
||||	||
||||	|}}|�|	||	||�|	||	|} }!d$|| d4|f}|d%|| ||!d4f7}|d%|| d4||!f7}|d%|||!d4f7}|d57}�|d'd|d)|�n|rq|St
j|�Sd6S(=sGenerate the SVG.  Inputs are run through 'eval(str(x))' so you can use
    '8.5*72' instead of 612.  Margin / padding dimension tuples can be
    (top & bottom, left & right) or (top, right, bottom, left).

    Keyword arguments:
    pgSize -- page size, width x height
    pgMargin -- extra space around each page
    pgPadding -- added to pgMargin
    n -- rows x cols
    size -- override calculated size, width x height
    margin -- white space around each piece
    padding -- inner padding for each piece
    show -- list of keywords indicating what to show
            - 'crosses' - cutting guides
            - 'inner' - inner boundary
            - 'outer' - outer boundary
    container -- 'svg' or 'g'
    returnTree -- whether to return the ElementTree or the string
    R(tinnertinnerboxtholdertcrossesR_iiiis9stroke:#000000;stroke-opacity:1;fill:none;fill-opacity:1;trectR^tytwidththeighttstyles+http://www.inkscape.org/namespaces/inkscapesxmlns:inkscapeshttp://www.w3.org/1999/xlinksxmlns:xlinkcs�x�td���D]~}xutd���D]`}|dkrR|dkrRq.n�|did|d6d|��|��fd6�q.WqWdS(Nituset#s
xlink:hrefstranslate(%f,%f)t	transform(trange(tunderttotrtc(R
RiR7RtseptsubRh(s,/usr/share/inkscape/extensions/layout_nup.pyt
makeClones�stoutertgt
guidelayertidtlayersinkscape:groupmodet
innerguidesstroke:#000000sstroke:#8080fft
outerguidetcutlayeritcrosssM%f %fs L%f %fs M%f %ftpathsstroke-width:0.05tdtcrossmarkerRks#crossmarkers
xlink:hrefstranslate(%f,%f)Rmt
clonelayertmaint	mainlayertouterboxg@s ZN(iiii(ii(ii(ii(ii(ii(tsettunionR`R]tsumtzipRYR-RZRTRtElementt
SubElementtgetroottintersectionR?ttostring("R1RR5R6t	pgPaddingR7RR8R9R:R4t	containert
returnTreetpgEdgettoptrighttbottomtleftRjtpadboxtmargboxtdoctrootRuRztcrosslentgroupR^RgRRqRrtwth((R
RiR7RRsRtRhs,/usr/share/inkscape/extensions/layout_nup.pyR@qs�"$J7@!!!!


	!







 
   
(s8.5*96s11*96(ii(ii(iiN(ii(ii(t__name__t
__module__R,RDRMRQR`R-RYR.R@(((s,/usr/share/inkscape/extensions/layout_nup.pyR$s"	#			(t__doc__R*RNtxml.etree.ElementTreeRRtlxmltelementtree.ElementTreetstderrRPR+Rtetaffect(((s,/usr/share/inkscape/extensions/layout_nup.pyt<module>s"	�