
    T`                        d dl Z d dlZd dlmZ d dlZd dlZd dlmZ ej        dk     re	Z
neZeZ
eZeZd Zd Zd Z	 eZn# e$ r eZY nw xY w ej        d          Z G d	 d
e          Z ej        d          Z G d de          Zd Ze dfdZ! ej        d          Z"e dfdZ#d Z$d Z%g dZ&g dZ' e  e(e&e'                    Z)d Z* G d de          Z+ G d de          Z, G d de,          Z-dS )    N)linesep)TomlTz)   c                 \    dt           j        k    rdd l}t          | |j                  rdS dS )N)r      r   TF)sysversion_infopathlib
isinstancePurePath)pr
   s     ,lib/python3.11/site-packages/toml/decoder.py_detect_pathlib_pathr      s8    !!!a)** 	45    c                 \    t          | t          t          f          rdS t          |           S )NT)r   bytes
basestringr   )r   s    r   _ispathr      s,    !eZ()) t"""r   c                     dt           j        k    rdd l}|                    |           S t	          |           rt          |           S | S )N)r      r   )r   r	   osfspathr   str)r   r   s     r   _getpathr       sI    !!!			yy||A 1vvHr   z1([0-9]{2}):([0-9]{2}):([0-9]{2})(\.([0-9]{3,6}))?c                       e Zd ZdZd ZdS )TomlDecodeErrorzBase toml Exception / Error.c                    |                     dd|          dz   }||                    dd|          z
  }d                    ||||          }t                              | |           || _        || _        || _        || _        || _	        d S )N
r      z{} (line {} column {} char {}))
countrfindformat
ValueError__init__msgdocposlinenocolno)selfr%   r&   r'   r(   r)   emsgs          r   r$   zTomlDecodeError.__init__5   s    4C((1,ciia---/66sFE3OOD$'''


r   N)__name__
__module____qualname____doc__r$    r   r   r   r   2   s)        &&	 	 	 	 	r   r   z([0-9])(_([0-9]))*c                   &    e Zd Zd Zd Zd Zd ZdS )CommentValuec                 B    || _         |rdnd}||z   | _        || _        d S )Nr    )valcomment_dict)r*   r5   r6   	beginliner7   	separators         r   r$   zCommentValue.__init__F   s.    %.DD3	 7*


r   c                     | j         |         S Nr5   )r*   keys     r   __getitem__zCommentValue.__getitem__L   s    x}r   c                     || j         |<   d S r;   r<   )r*   r=   values      r   __setitem__zCommentValue.__setitem__O   s    r   c                      || j                   }t          | j         | j                  r| j        dz   t	          |          z   S t	          |          | j        z   S )Nr   )r5   r   r7   r6   unicode)r*   dump_value_funcretstrs      r   dumpzCommentValue.dumpR   sT     **dh
++ 	2<$&886??T\11r   N)r,   r-   r.   r$   r>   rA   rF   r0   r   r   r2   r2   E   sP              2 2 2 2 2r   r2   c                    |                                  } | sdS | d         dk    rdS | d         dk    rdS d| v sd| v rdS t          |           dk    rdS | d         d	k    r| d         d
vrdS | d         dk    s| d         dk    r7| dd          } t          |           dk    r| d         d	k    r| d         dk    rdS d| v rdS dS )NFr   _z_.z._r   T0).obx+-rK   __)striplen)ns    r   _strictly_valid_numrU   Z   s    			A uts{{uu||uqyyDAIIu
1vv{{tts{{qt#777uts{{adckkabbEq66A::!A$#++!A$#++5qyyu4r   c                    t          |           r`t          j        t          |           d          5 }t	          |                                ||          cddd           S # 1 swxY w Y   dS t          | t                    rddlm	 ddl
m} fd| D             s d}|t          z  }|d	z  }t          |          |t          |          }|                                }| D ]G}                    |          r%|                    t%          |||                     < |d
           H|S 	 t	          |                                 ||          S # t&          $ r t)          d          w xY w)ac  Parses named file or files as toml and returns a dictionary

    Args:
        f: Path to the file to open, array of files to read into single dict
           or a file descriptor
        _dict: (optional) Specifies the class of the returned toml dictionary
        decoder: The decoder to use

    Returns:
        Parsed toml file represented as a dictionary

    Raises:
        TypeError -- When f is invalid type
        TomlDecodeError: Error while decoding toml
        IOError / FileNotFoundError -- When an array with no valid (existing)
        (Python 2 / Python 3)          file paths is passed
    zutf-8)encodingNr   )path)warnc                 >    g | ]}                     |          |S r0   )exists).0rX   ops     r   
<listcomp>zload.<locals>.<listcomp>   s(    666biioo6666r   z.Load expects a list to contain filenames only.zAThe list needs to contain the path of at least one existing file.z>Non-existent filename in list with at least one valid filenamez5You can only load a file descriptor, filename or list)r   ioopenr   loadsreadr   listr   rX   warningsrY   r   FNFErrorTomlDecoderget_empty_tabler[   updateloadAttributeError	TypeError)	fr7   decoderffilerY   	error_msgdlr]   s	           @r   ri   ri   q   s   & qzz $WXa[[7333 	7uug66	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7	At		 $!!!!!!!!!!!!6666666 	&HI I + ,I9%%%?!%((G##%% 	! 	!Ayy|| !a001111   ! ! ! !	$5'222 	$ 	$ 	$ # $ $ $	$s   #A$$A(+A(2"E E/z^[A-Za-z0-9_-]+$c                    g }|t          |          }|                                }|}t          | t                    st	          d          t          | t
                    s|                     d          } | }t          |           }d}d}	d}
d}d}d}d}d}d}d}d}d}t          |          D ]E\  }}|d	k    r||dz            d
k    rd||<   !|r||z  }|d
k    rt          d||          |	rE||
k    r>d}d}||k    r,|||z
           dk    r| }|dz  }||k    r|||z
           dk    |sd}d}	d}
|dk    rd|
                                rd}|dk    rd}|                                s|dk    s|dk    r|r ||dz
           dk    r|dk    s|dk    rd}	|}
nv|dk    rp|
                                r+|r'||dz            }|
                                s|dk    rd}6|dk    r+d}||dz            }|
                                s|dk    rd}g|dk    r#d}|dd                                         }d}d}nt          d|z   dz   ||          |dk    rZ|
dk    rTd}	 |||z
           dk    r|dz  }|dk    rn|||z
           dk    n# t          $ r Y nw xY w|dk    r| }|}	n|	 }	|	rd}
nd}
|dk    r|
dk    rd}d}d}	 |||z
           dk    r|dz  }|dk    rd}n|||z
           dk    |dk    s|dk    r(|r&|||z
           dk    r| }|dz  }|||z
           dk    n# t          $ r Y nw xY w|s|r| }|}	n|	 }	|	rd}
nd}
|dk    re|	sc|sa|s_|}d}	 ||         d
k    r!|| |         z  }d||<   |dz  }||         d
k    !n# t          $ r Y  n[w xY w|s|                    ||||           |dk    r8|	s6|s4|s2|r+t          |          |dz   k    r||dz            dk    rd}nd}n|dz  }|dk    r |	s|rd}n|r||dz
           dk    rd}n|dz  }|d
k    r|	s|rx|st          d||          ||dz
           dk    s||dz
           dk    rF||dz
           ||dz
           k    r.||dz
           ||<   ||dz
           ||dz
           k    rd||dz
  <   n
|rd||<   nd}|dz  }|rB||         dk    r6||         dk    r*d}|s&|s$||         dk    rt          d||          d}||z  }G|rt          d|t          |                     |	rt          d |t          |                     d                    |          } |                     d
          } d}d}d}d}t          |           D ]\  }} |dk    r|t          | |dz
                     dz   z  }|                    ||           |r|sd
|vr|                                 } | dk    r|r|rg|r|r|| z  }n|| z  }d}d}!|d         dk    r| d         dk    }!nIt          |           dk    r6| d         |d         k    o#| d!         |d         k    o| d"         |d         k    }!|!rT	 |                    |          \  }"}#n0# t*          $ r#}$t          t-          |$          ||          d}$~$ww xY w|"||<   d}d}nPt          |          dz
  }|dk    r&||         dk    r| }|dz  }|dk    r||         dk    |r|dd         }n|d
z  }| d         dk    rd}t          |           dk    rt          d#||          | d         dk    rd}| dd         } d$}%n| dd         } d}%d}|                    |           }&d}'|&D ]%}(|'s|%|(v r n||(                    |%          z  }|' }'&|                     |%|          } t          |           |dz   k     s| d                                         dk    rt          d%||          |%                    | dd                                       d          })d}|t          |)          k     r|)|                                         |)|<   t          |)|                   dk    r|)|         d         dk    s|)|         d         dk    r|)|         }*|dz   }|*d         |*d         k    rt          |*          dk    r|dz  }|t          |)          dz   k    rt          d&|*z   d'z   d(z   ||          d                    |)||                                                   }*|*d         |*d         k    vt          |*          dk    |*dd         |)|<   g |)|dz   |<   n=t2                              |)|                   st          d&|)|         z   d)z   ||          |dz  }|t          |)          k     |}t7          t          |)                    D ]}|)|         }+|+dk    rt          d*||          	 ||+          |t          |)          dz
  k    r|+|v r)|                    |+           |rt          d+||          nW|r.||+                             |                                           n't          d,|+z   d-z   t-          |          z   ||          n# t          $ rV |d         }|+|vrG|                                ||+<   |t          |)          dz
  k    r|r|                                g||+<   Y nt<          $ ru |t          |)          dz
  k    r|                    |+           |                                ||+<   |t          |)          dz
  k    r|r|                                g||+<   Y nw xY w||+         }|r	 |d         }# t<          $ r Y w xY wΐ2| d         d.k    rh| d         d/k    rt          d0||          	 |                    | |||           v# t*          $ r#}$t          t-          |$          ||          d}$~$ww xY wd| v rR	 |                     | |||          },n0# t*          $ r#}$t          t-          |$          ||          d}$~$ww xY w|,|,\  }}}|S )1aD  Parses string as toml

    Args:
        s: String to be parsed
        _dict: (optional) Specifies the class of the returned toml dictionary

    Returns:
        Parsed toml file represented as a dictionary

    Raises:
        TypeError: When a non-string is passed
        TomlDecodeError: Error while decoding toml
    Nz!Expecting something like a stringutf8r   F Tr   r   r4   z2Key name found without value. Reached end of line.\   rK   rH   rP   "'=rI   z&Found invalid character in key name: 'z'. Try quoting the key name.r   #[]zUnbalanced quotes	zFound empty keyname. z2Key name found without value. Reached end of file.z/Unterminated string found. Reached end of file.z,Opening key group bracket on line by itself.z]]z"Key group not on a line by itself.zInvalid group name 'z' Something zwent wrong.z'. Try quoting it.z(Can't have a keygroup with an empty namez-An implicitly defined table can't be an arrayzWhat? z already exists?{}z,Line breaks are not allowed in inlineobjects)!rf   rg   r   r   rk   rC   decoderc   	enumerater   isspaceisalnumrstrip
IndexErrorpreserve_commentrS   joinsplitembed_commentsrR   
load_valuer#   r   _get_split_on_quotesr    _groupname_rematch_rangeremoveappendKeyErrorload_inline_object	load_line)-sr7   rm   implicitgroupsretvalcurrentleveloriginalslopenarr
openstringopenstrcharmultilinestrarrayoftablesr8   keygroup	dottedkeykeynamer=   prev_keyline_noiitemoddbackslashknextitem	tripquotejr6   multikeymultibackslashr'   idxlineclosedr@   vtypeerrsplitstrquotesplitsquoted
quotesplitgroupsgroupstrgrouprets-                                                r   ra   ra      s    Ne$$$$&&FLa$$ =;<<<a!! HHVH	aBGJKLMIHIG
CHGR== W W44<<Bq1uI--BqE 4	34KCt||% '>?GL L L &;&&#(LAq&&RAY$%6%6+7'7Q q&&RAY$%6%6 ( )"#%*
&(A<<>> GS[[ $I\\^^ ts{{dckk Bq1uI$4$4s{{dckk!%J"&KA<<>>   (#%a!e9'//11 (h#oo&'G3;; $I!!a%yH#++-- $(c//"#s{{ss8??,,!		%&N&*'+-K'L&.3 3 3 3;;;#--AQi3&&FAAvv Qi3&&    Avv#//)

!+^
 !! 3;;;#-- LAIQi3&&FAAvv$(		 Qi3&&
 66a1fffQU)t+++7'7Q QU)t++     0 0'3#3L!-JJ%/J !! 3;;
;8; - AGetmmqtOGBqEFA etmm     P(((GYOOO3;;
;8; -  r77QU??r!a%yC'7'7$(MM#HH13;;z;   a!e9##$)M14<< !\ !# L)*=xKKKAY#%%AEc)9)91q5	RAY..q1uIBqE!a%yBq1uI--$'1q5	 !1 	qLGG 	2a5C<<BqETMMI M a5C<<)*A8QOOOt I 67?QI I 	I I 67?QI I 	I
A	AHLN
Cq\\ R= R=	T773qqz??Q&&CsL111 	 ~ 	 \1I1I::<<D2::x:>: 	 %$$"NFA#%%bSTQr(l1o5 6r(l1o56r(l1o5   )C#*#5#5l#C#CLE55! C C C)#c((HcBBBC).X&!%%)"ffaD!8!8)7%7NFA "ffaD!8!8 " )#/#4LL D(L7c>>!M4yyA~~% '0193@ @ @Aw#~~ $ABBxABBxA!66t<<KF) $ $
 (j"8"8EZ%%h///#::h**D4yy1q5  DHNN$4$4$:$:%&J&.5 5 5]]49--33C88FAc&kk//"1IOO--q	vay>>A%%6!9Q<3+>+>+1!9Q<3+>+>%ayHAA (x| ; ;x==A--Qs6{{Q.."12H2:3;=K3L2?3@AI3#P #P P $'88F1Q3K#8#8#>#>#@#@ !)x| ; ;x==A-- !)2F1I&(F1q57OO(..vay99 =-.D.4Qi/8:N/O.6= = = Q+ c&kk//, "LCKK(( ' 'q	B;;) +12:CA A AJ ''CKK!O++ N22*11%888, E&5 7P6>'E 'E !EE + A(/66w7N7N7P7P 9 9 9 9 #2(U2B2D3E25l2C2C3D 3;C#A #A A ! N N N#/#3LL00.5.E.E.G.GU+Fa//M/3:3J3J3L3L2ML/ J J JCKK!O++&--e444*1*A*A*C*CL'CKK!O+++/6/F/F/H/H.IU+J  ,E2  '3B'7#   G'P !W^^Bx3% '0193@ @ @?**4x+9; ; ; ; ? ? ?%c#hh#>>>?D[[?''lH(68 8 ? ? ?%c#hh#>>>?9<6,Ms   &*J
JJ
A L++
L87L8 -N
NNY11
Z;ZZ=B"j  Am=?A;m=<m=n
n#"n#o..
p8pp#p<<
q)q$$q)c                    d}d }	 t          |           dk    r| d         dk    r| d                                         dk    r| dd         }d}nj| dd          }d|v r*|                    d          }|d |         }||d          }n2d|v r*|                    d          }|d |         }||d          }nd }|}|t          |          }t	          t	          |          d	d
t          |          z
  z  z            }nt          | dd                    }n# t
          $ r d }Y nw xY wd| dd          vrd S 	 t          |           d	k    rVt          j        t	          | d d                   t	          | dd                   t	          | dd	                             }nt          j        t	          | d d                   t	          | dd                   t	          | dd	                   t	          | dd                   t	          | dd                   t	          | dd                   ||          }n# t
          $ r Y d S w xY w|S )Nr      rK   rI   Z   rO   rP   
   r   r   r                           )rS   upperindexr   intr#   datetimedate)r5   microsecondtzsubsecondvaltzvalsubsecondvalandtz
splitpointrp   s           r   
_load_dater     s   K	Bs88b==2w#~~r7==??c))#&r"u:LEE(+BCC%///%6%<%<S%A%A
'8*'E 1*++ > 111%6%<%<S%A%A
'8*'E 1*++ > $'8$B!#l"3"3#%!c,.?.?*?#@#B C C CH%%   
#abb'ts88r>>CGc#ac(mmC"I   AA !CGc#ac(mmC"IC2JC2JSBZ+rC CA    ttHs%   DD D%$D%7DH: :
IIc                    d}t          |           dz
  }|dk    r&| |         dk    r| }|dz  }|dk    r| |         dk    |D ]:}|rKd}t          |          dz
  }|dk    r&||         dk    r| }|dz  }|dk    r||         dk    | |z  } | |z  } Pd}d}d}|dk    rd	}d                    ||||z                                                      }|                    d
          rt	          d|z             |d         dk    r0|d                             d          rt	          d|z   dz             | t          t          |d                    z  } | t          |t          |          d                    z  } <| S )NFr   rI   rv   rt   r   r   \Ur   0123456789abcdefzInvalid escape sequence: rp   01234567z). Only scalar unicode points are allowed.r   )rS   r   lowerrR   r#   unichrr   rC   )vhexbytesprefixskipr   hxhxbhxblens           r   _load_unicode_escapesr   7  s   DA
A
b&&QqTT\\x	Q b&&QqTT\\  $ $ 	DB!Ab&&RUd]]xQ b&&RUd]] KAGAU??Fggb1v:&''--//99'(( 	@83>???q6S==SV\\*55=83>HI J J J	VCRLL!!!	WRC		]###Hr   )rJ   rM   rl   rT   rtrx   ) r   ru   r~   rx   c                    d}d}|t          |           k     r|rd}| |         t          v r0| d|dz
           t          | |                  z   | |dz   d         z   } nR| |         dk    r| d|dz
           | |d         z   } n-| |         dk    s| |         dk    r|dz  }nt          d          | |         dk    rd	}|dz  }|t          |           k     | S )
z%Unescape characters in a TOML string.r   FNr   rv   uUReserved escape sequence usedT)rS   _escapes_escape_to_escapedcharsr#   )r   r   	backslashs      r   	_unescaper   a  s    	AI
c!ff** 	Itxfq1ufI 7! ==!a%&&	I1fq1ufI!""%1!Q !@AAAqTT\\I	Q c!ff** Hr   c                       e Zd ZdZdS )InlineTableDictz,Sentinel subclass of dict for inline tables.Nr,   r-   r.   r/   r0   r   r   r   r   w  s        6666r   r   c                   h    e Zd ZefdZd Zd Z	 	 ddZd Zd Z	d Z
dd
Zd Zd Zd Zd Zd ZdS )rf   c                     || _         d S r;   r7   )r*   r7   s     r   r$   zTomlDecoder.__init__}  s    


r   c                 *    |                                  S r;   r   )r*   s    r   rg   zTomlDecoder.get_empty_table  s    zz||r   c                 H     G d d| j         t                    } |            S )Nc                       e Zd ZdZdS )BTomlDecoder.get_empty_inline_table.<locals>.DynamicInlineTableDictzConcrete sentinel subclass for inline tables.
            It is a subclass of _dict which is passed in dynamically at load
            time

            It is also a subclass of InlineTableDict
            Nr   r0   r   r   DynamicInlineTableDictr     s           r   r   )r7   r   )r*   r   s     r   get_empty_inline_tablez"TomlDecoder.get_empty_inline_table  sA    	 	 	 	 	TZ 	 	 	 &%'''r   Fc                 d   |dd                              d          }g }t          |          dk    r.|d                                         s|                                 t          |          dk    r|                    d          }	 |                     dd          \  }}	n# t          $ r t	          d          w xY w|	                                }	|	d         |	d         k    r
|	d         dv s>|	d         dv s4|	d	v s0|	d         d
k    r|	d         dk    s|	d         dk    r"|	d         dk    r|                    |           n4t          |          dk    r|dz   |d         z   |d<   nt	          d          t          |          dk    |D ]}
|                     |
|||          }| d S  d S )Nr   rI   ,r   rz   z Invalid inline table encountered)rx   ry   z-0123456789)truefalser|   r}   r   r   z&Invalid inline table value encountered)r   rS   rR   popr#   r   r   )r*   r   r   r   r   candidate_groupsr   candidate_grouprH   r@   r   statuss               r   r   zTomlDecoder.load_inline_object  s   ":++C00  A%%.>q.A.G.G.I.I%  """"##a''.22155OE*00a8855 E E E !CDDDEKKMMEqU2Y&&58z+A+A!H--...1X__rc)9)91X__rc)9)9o....%&&**'6'<'7':(; ## !!IJJJ# "##a''$  	 	E^^E<$24 4F! "	 	s   B% %B?c                 p   |                     d          }d}g }t          |          dk    rd|d         v r|d                              d          }|dd          }t          |          dz  dk    rt          |          rx|dxx         d|d         z   z  cc<   |dd          }d|d         v r&|d d         |d                              d          z   }t          |          dz  dk    rt          |          x||z  }|D ]5}|r|                    |           ||                     d          z  }| }6|S )Nrx   Fr   ry   r   rw   rI   )r   rS   r   )r*   r   doublequotesplitsr   r   singlequotesplitsdoublequotesplits          r   r   z TomlDecoder._get_split_on_quotes  s    JJsOO !!A%%#1B11E*E*E 1! 4 : :3 ? ? 1!"" 5'((1,11c:K6L6L1!"%%%/@/C)CC%%%$5abb$9!+B///):3B3)?):2)>)D)DS)I)I*J%	 '((1,11c:K6L6L1 ,,K 1 	$ 	$ $""#34444/55c:::#r   c                 N   d}|                      |          }d}|D ]%}|sd|v r n||                    d          z  }| }&|                    d|          }	t          |	d                   }
t                              |	d                   r|	d                             dd          |	d<   t          |	d                   r$|	d         d         dk    r|	d         d         d	k    r|	d         d         d
k    r|	d         d         dk    r|	d         d         dk    r|	d         d         dk    r|	d                                         dk    r|	d                                         dk    rt	 t          |	d                    n\# t          $ r Y nw xY wt          |	d                   n5t                              |	d                   rn|dz  }|	d         }|                    d|          }	||	d         k    rt          d          |
rt          |	d                   }
t          |	d                   r|	d         d         dk    r|	d         d         d	k    r|	d         d         d
k    rs|	d         d         dk    ra|	d         d         dk    rO|	d         d         dk    r=|	d                                         dk    r|	d                                         dk    td                    |	d d                                                   |	d                                         g}	d|	d         v rd|	d         v s
d
|	d         v rb|                      |	d                   }d}g }|D ]?}|r|                    |           n"|d |                    d          D             z  }| }@n|	d                             d          }|d         dk    r|d d         }|d         dk    |d d         D ],}|dk    r	||vr|                                 ||<   ||         }-|d                                         |	d<   nb|	d         d         dk    s|	d         d         d
k    r>|	d         d         |	d         d         k    r t!          |	d         dd                   |	d<   |                     |	d                   \  }}|dk    re|dk    r8|	d         ||z            dk    r#| }|dz  }|dk    r|	d         ||z            dk    #|r|	d         d d         }n|	d         dz   }|	d         }n|                     |	d         |
          \  }}	 ||	d                   t          d          # t&          $ r t          d          t(          $ r |r|||fcY S |||	d         <   Y d S w xY w)Nr   Frz   rI   rH   rt   r   r4   r~   ry   rx   r|   r   r   r   zInvalid date or numberrK   c                 6    g | ]}|                                 S r0   rR   )r\   levels     r   r^   z)TomlDecoder.load_line.<locals>.<listcomp>  s,     #: #: #:U5;;== #: #: #:r   rv   r   zDuplicate keys!)r   r    r   rU   _number_with_underscoresr   replacerS   rR   floatr#   r   TIME_REr   r   rg   r   _load_line_multiline_strr   rk   r   )r*   r   r   r   r   r   r   r   r   pairstrictly_validprev_vallevelsr  r   koffsetr   r@   r   s                      r   r   zTomlDecoder.load_line  s=   //55% 	  	 J cZ//!!#&&&AZFFzz#q!!,T"X66#))$r(33 	1Bx''R00DH$r(mm 	?b!!3!3Rt8K8K!%b!!3!3Rs8J8J!%b!!3!3Rs8J8J!%b!1!1V!;!;!%b!1!1W!<!<d2h   $r(##/}}T"X&& FABxH::c1%%D48## !9::: ?!4T"X!>!>) $r(mm 	?b!!3!3Rt8K8K!%b!!3!3Rs8J8J!%b!!3!3Rs8J8J!%b!1!1V!;!;!%b!1!1W!<!<" crc##))++T"X^^-=-=>$q'>>d1g~~Q"77Q@@"- ( (J :j1111 #: #:#-#3#3C#8#8#: #: #: :!'ZFF( as++*"" *"" 3 3B;;,,*.*>*>*@*@L'+E2Rj&&((DGG1gajC471:#4#4aQ
**Q"..DG2247;;
7r66b&&T!WQ[1T99%3!3Q b&&T!WQ[1T99  .#Awss|#Aw~AwHH??47NCCLE5		.a!!./// 	0 	0 	0./// 	. 	. 	. .~====(-T!W%%%%		.s*   3F
 

FFU* *)V$V$#V$c                    d}t          |          dk     rd|fS |d         dk    r|                                d         dk    r|                     |          r|dd                                                              d          }t          |          dk    r{|d         d         dk    ri|d         d         d	k    rW|d d
         |d
         dz   |d         z   gz   }t          |          dk    r$|d         d         dk    r|d         d         d	k    W|d         }t          |          t          |          z
  }|}|d         dk    r|d         d	k    rd|fS |d         |d         k    s|d         |d         k    rd|fS t          |          dk    r:|d         |d         k    r(|d
         |d         k    r|d         |d         k    rd|fS t          |          dz
  |fS )Nr   r   rI   r|   r}   r   r   rx   ry   r   rw   r   r   )rS   rR   _load_array_isstrarrayr   )r*   r   poffsetnewps       r   r  z$TomlDecoder._load_line_multiline_str  s   q66A::w;Q43;;AGGIIbMS00 77:: 1QRR5;;==&&s++Dd))a--DHQK3$6$648A;#;M;MCRCyDHsNT"X$=#>> d))a--DHQK3$6$648A;#;M;M8D!ffs4yy(GAQ43;;1Q43;;w;Q41Q4<<1Q41Q4<<w;q66A::!B%1Q4--AbEQqTMMaeqtmmw;1vvz7""r   Tc                 b	   |st          d          |dk    rdS |                                dk    rt          d          |dk    rdS |                                dk    rt          d          |d         dk    s|d         d	k    r|d         }|d
d                              |          }d}d}t          |          d
k    r$|d         dk    r|d
         dk    r|dd          }d}d}|D ]m}|dk    r|r|d
z  }d}d}		 d}
||
         }|dk    r|	 }	|
d
z  }
||
         }|dk    n# t          $ r Y nw xY w|	s|rt          d          |r|d
k    rd}kd}n|dk    r|                    d          d
d          }d}|D ]H}
|
dk    r| }|
d         t
          vr)|
d         dk    r|
d         dk    r|st          d          |rd}IdD ]:}||v r4|                    |          }t          |d         |d
d          |          };t          |          }t          |          d
k    r;|d
         |k    r/t          |          dk     s|d
         |d         k    r
|dd         }|d
d         dfS |d         dk    r|                     |          dfS |d         dk    r.| 	                                }| 
                    ||           |dfS t                              |          rt                              |                                          \  }}}}}t          j        t!          |          t!          |          t!          |          |rt!          |          nd          }|dfS t#          |          }||dfS |st          d          d }d}|d         d!k    rd}|d
d          }n|d         d"k    r
|d
d          }|                    d#d          }|                                }d$|v sd%|vrfd&|v sd'|v r^d$|v r/|                    d$d
          d
         dk    rt          d(          |d         d)vrt          d*          t'          |          }d+}n0t          |          dk    r|d,k    s|d-k    rt'          |          }d+}|d k    rt!          |d          }|rd|z
  |fS ||fS ).NzEmpty value is invalidr   )Tboolz#Only all lowercase booleans allowedr   )Fr  r   rx   ry   r   Frt   rw   TrI   rv   z1Found tokens after a closed string. Invalid TOML.r   r   r   )z\ur   r   r   r   r|   arrayr   inline_objecttimer   z<Weirdness with leading zeroes or underscores in your number.r   rP   rO   rH   rK   rN   eEz,This float is missing digits after the point
0123456789z'This float doesn't have a leading digitr  infnan)r#   r   r   rS   r   r   r   r   
load_arrayr   r   r  r   r   r   r  r   r   r  r  )r*   r   r  	quotechartestvtriplequotetriplequotecountr   tvr   r   r   
escapeseqsr   r   r   r  hmr   rH   msr  parsed_dateitypeneglowervs                              r   r   zTomlDecoder.load_value*  s    	75666;;!>WWYY&  BCCC'\\"?WWYY'!!BCCCqTS[[AaDCKK!IabbEKK	**EK 5zzA~~%(b..U1X^^abb	"F 5 588" &(A-((!%#(LqE4ii/;+;LFA "1A  4ii &   ' 5! 5", .E #F #F F $/ 52BQ2F2F)-34 0CWWT]]122.
!	# 	. 	.ABww(1M		Q4x//QqTS[[56qTS[[9B 6A",-L"M"MM$ .(-I, : :F{{#$776??1(1+x|28: :aLL1vvzzadi//SVVaZZ56qTQqT\\adGadGU##qTS[[OOA&&00qTS[[ 7799M##A}555!?33]]1 $	$]]1--4466NAq!Q=QQQB9MRANND&>!$Q--K&#V,,! @  "? @ @ @ECts{{abbE1abbE		#r""AWWYYFaxxCqLLcQhh#((!88Q 2b 8 8$ &1 2 2 2Q4|++$ &- . . .!HHV!!v&E//!HH~~1II &Au~%u:s   &D**
D76D7c                     t          |          dk    rdS |d         |d         k    rdS d}d}t          |          |z   dk    r,||         dk    r	| }|dz  }nnt          |          |z   dk    ,| S )Nr   TrI   Fr   rv   r   )rS   )r*   r   r   r   s       r   bounded_stringzTomlDecoder.bounded_string  s    q66Q;;4R5AaD==5	!ffqj1nntt|| )M	Q !ffqj1nn }r   c                 ~    |dd                                          }|dk    r|d         dk    s|d         dk    rdS dS )	Nr   rI   rt   r   rx   ry   TFr  )r*   as     r   r  z"TomlDecoder._load_array_isstrarray  sB    adGMMOO77!qts{{4ur   c                 h
   d }g }|                                 }d|dd         vs:d|dd                             d          d                                          k    rk|                     |          }|dd                                                              d          s|dd                             d          }ncg }d}d}||         dk    rdnd}d	}	|t	          |dd                    k     r-||         d
k    s||         dk    r6|	r1|dz
  }
|
dk    r&||
         dk    r|	 }	|
dz  }
|
dk    r||
         dk    |	 }	|	s||         dk    r|dz  }|	s||         dk    r|dz  }||         dk    r|dk    r|dz  }|dz  }|dz  }|                    |||                    |dz   }|t	          |dd                    k     r8||         dk    r,|dz  }|t	          |dd                    k     r||         dk    ,|dz   }|t	          |dd                    k     -|}d}|r|t	          |          dz
  k     r||                                          }|                     |          r\t	          |          dk    r)|d         |d         cxk    r|d         k    r	n n|d         |d         k    r|d         |d         k    r||         dz   ||dz            z   ||<   ||                                          }|t	          |          dz
  k     r|d |dz            ||dz   d          z   }n|d |dz            }|                     |          t	          |          dk    rF|d         |d         cxk    r|d         k    r'n n$|d         |d         k    r|d         |d         k    |dz  }|t	          |          dz
  k     nt          |dd                   }g }d}d}t          t	          |                    D ]i}||         dk    r|dz  }||         dk    r|dz  }&||         dk    r7|s5|                    d	                    |||                              |dz   }j|                    d	                    ||d                               t          t	          |                    D ]x}||                                          ||<   ||         dk    rM| 
                    ||                   \  }}|r||k    rt          d          n|}|                    |           y|S )Nr|   r   rI   rt   r   r   r   rw   Frx   ry   rv   r   r   r   r}   zNot a homogeneous array)rR   r   r  
startswithrS   r   r4  rc   r   r   r   r#   )r*   r6  atyper   strarraynew_astart_group_indexend_group_indexopen_bracket_countin_strbackslash_indexrM   abalr   r   r   nvalntypes                      r   r%  zTomlDecoder.load_array  s   GGIIa"gq2w}}S'9'9!'<'B'B'D'D!D!D22155HQrT7==??--c22 *adGMM#&& $%!"#*+,=*>#*E*EQQ1"%AabbE

22)S00Ao4F#4M4M! 5.=.AO#2R#7#7#$_#5#=#=-3 /1 4 $3R#7#7#$_#5#=#= &,! 0a&8C&?&?*a/* !?!3s!:!:'1, ?+s227IA7M7M*a/*'1,  $q(OLL#4_#D!EFFF
 )8!(;%,s1QRR5zz99./366)Q.) -s1QRR5zz99./366&7!&;O? &AabbE

22@ A #a&&1*nn1B#22266 
*GGaKKqERU3333be33333rFbeOOrFbeOO tczAa!eH4!qTZZ\\s1vvz>> !&1q5&	Aa!effI 5AA !&1q5&	A  $22266 
*GGaKKqERU3333be33333rFbeOOrFbeOO FA #a&&1*nn a"gBAGACGG__  a5C<<qLGGUc\\qLGGUc\\'\HHRWWR!W--...AAHHRWWRV__%%%A 		$ 		$AQ4::<<AaDtrzz"ooad33e "~~()BCCC & "Ed###r   c                     d S r;   r0   r*   r   r=   r6   r8   s        r   r   zTomlDecoder.preserve_comment      r   c                     d S r;   r0   )r*   r   r   s      r   r   zTomlDecoder.embed_comments  rG  r   N)FF)T)r,   r-   r.   dictr$   rg   r   r   r   r   r  r   r4  r  r%  r   r   r0   r   r   rf   rf   {  s        !      	( 	( 	( ?D*/   <  ,R. R. R.h# # #(o o o ob    Y Y Yv      r   rf   c                   .     e Zd Zef fd	Zd Zd Z xZS )TomlPreserveCommentDecoderc                 f    i | _         t          t          |                               |           d S r;   )saved_commentssuperrK  r$   )r*   r7   	__class__s     r   r$   z#TomlPreserveCommentDecoder.__init__  s0     ($//88?????r   c                      |||f| j         |<   d S r;   )rM  rF  s        r   r   z+TomlPreserveCommentDecoder.preserve_comment  s    (+Wi'@G$$$r   c                 ~    || j         vrd S | j         |         \  }}}t          ||         ||| j                  ||<   d S r;   )rM  r2   r7   )r*   r   r   r=   r6   r8   s         r   r   z)TomlPreserveCommentDecoder.embed_comments  sS    d)))F"&"5c":Wi(c):GY)-5 5Sr   )r,   r-   r.   rI  r$   r   r   __classcell__)rO  s   @r   rK  rK    sg        ! @ @ @ @ @ @A A A5 5 5 5 5 5 5r   rK  ).r   r_   r   r   rer   toml.tzr   r	   xranger   r   rC   ranger   chrr   r   r   r   FileNotFoundErrorre   	NameErrorIOErrorcompiler  r#   r   r  objectr2   rU   rI  ri   r   ra   r   r   r   _escapedcharszipr   r   r   rf   rK  r0   r   r   <module>r_     s    				       				 



      dFFGFJF  # # #   HH   HHH "*I
J
J    j     &2:&:;; 2 2 2 2 26 2 2 2*  .  .$ .$ .$ .$b 
.//  ` ` ` `F, , ,^  F /..:::$ss8];;<<   ,7 7 7 7 7f 7 7 7T T T T T& T T Tn5 5 5 5 5 5 5 5 5 5s   A   A
	A
