JFIF$        dd7 

Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/docutils/utils/__pycache__/roman.cpython-311.pyc

�

D��c�㱈����dZdZdZdZdZddlZGd�de��ZGd	�d
e��ZGd�de��Z	Gd
�de��Z
dZd�Zej
dej��Zd�ZdS)z"Convert to and from Roman numeralsz&Mark Pilgrim (f8dy@diveintopython.org)z1.4z
8 August 2001agCopyright (c) 2001 Mark Pilgrim

This program is part of "Dive Into Python", a free Python tutorial for
experienced programmers.  Visit http://diveintopython.org/ for the
latest version.

This program is free software; you can redistribute it and/or modify
it under the terms of the Python 2.1.1 license, available at
http://www.python.org/2.1.1/license.html
�Nc��eZdZdS)�
RomanErrorN��__name__�
__module__�__qualname__���t/builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/docutils/utils/roman.pyrr��������r
rc��eZdZdS)�OutOfRangeErrorNrr	r
rrrrr
rc��eZdZdS)�NotIntegerErrorNrr	r
rrrrr
rc��eZdZdS)�InvalidRomanNumeralErrorNrr	r
rrrrr
r)
)�Mi�)�CMi�)�Di�)�CDi�)�C�d)�XC�Z)�L�2)�XL�()�X�
)�IX�	)�V�)�IV�)�I�c���d|cxkrdksntd���t|��|krtd���d}tD]\}}||kr||z
}||z}||k��|S)z convert integer to Roman numeralri�z%number out of range (must be 1..4999)zdecimals can not be converted�)r�intr�romanNumeralMap)�n�result�numeral�integers    r�toRomanr1+s���
��L�L�L�L�D�L�L�L�L��E�F�F�F�
�1�v�v��{�{��=�>�>�>�
�F�+�������7�l�l��g��F�
��L�A��7�l�l���Mr
a8
    ^                   # beginning of string
    M{0,4}              # thousands - 0 to 4 M's
    (CM|CD|D?C{0,3})    # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 C's),
                        #            or 500-800 (D, followed by 0 to 3 C's)
    (XC|XL|L?X{0,3})    # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 X's),
                        #        or 50-80 (L, followed by 0 to 3 X's)
    (IX|IV|V?I{0,3})    # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 I's),
                        #        or 5-8 (V, followed by 0 to 3 I's)
    $                   # end of string
    c�H�|std���t�|��std|z���d}d}tD]X\}}|||t	|��z�|kr5||z
}|t	|��z
}|||t	|��z�|k�5�Y|S)z convert Roman numeral to integerzInput can not be blankzInvalid Roman numeral: %sr)r�romanNumeralPattern�searchr,�len)�sr.�indexr/r0s     r�	fromRomanr8Hs����A�&�'?�@�@�@��%�%�a�(�(�H�&�'B�Q�'F�G�G�G�
�F�
�E�+�"�"������e�C��L�L�(�(�)�W�4�4��g��F��S��\�\�!�E���e�C��L�L�(�(�)�W�4�4���Mr
)�__doc__�
__author__�__version__�__date__�
__copyright__�re�	Exceptionrrrrr,r1�compile�VERBOSEr3r8r	r
r�<module>rBs���(�(�
5�
�����	�
�
�	�	�	�"�!�!�!�!��!�!�!�'�'�'�'�'�j�'�'�'�'�'�'�'�'�j�'�'�'�0�0�0�0�0�z�0�0�0������ !�b�j�
"�
��
�
������r
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg