Ǭo.0CddlmZddlZddlZddlZddlZddlZddlmZddlmZddlm Z ddlm Z ddl m Z ddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddlmZddlmZddlmZddlmZddlmZerddlm Z!ddlm"Z#ddl$m%Z%n*ddl&m'Z'ddl&m(Z(Gdde(e"Z#Gdde'e Z!edd !Z)edqdrd*Z*edqdsd-Z*edqdtd0Z*edqdud3Z*e dqdvd6Z*edqdwd9Z*edqdxd<Z*e dqdyd?Z*edqdzdBZ*edqd{dEZ*edqd|dGZ*edqd}dHZ*d~ddKZ*GdLdMe Z+GdNdOe Z,ej-GdPdQZ.GdRdSe Z/GdTdUej0Z1GdVdWe1Z2GdXdYe1Z3GdZd Z4Gd[d\e4Z5Gd]d^e4Z6Gd_d,e7e4Z8Gd`d/e9e4Z:Gdad)e4Z;Gdbd5e4eZ<Gdcd8e4eZ=Gddd;e4e Z>GdedfZ?GdgdAe4e#Z@edhdi!ZAGdjdie4e!ZBGdkdFeBZCGdldDeBZDGdmd2eEe4ZFGdnd>e4e#ZGGdodpe4ZHdS)) annotationsN)date)datetime)time)tzinfo)Enum) TYPE_CHECKING)Any) Collection)Iterable)Iterator)Sequence)TypeVar)cast)overload)PY38)decode) CONTROL_CHARS) escape_string)InvalidStringError)dict)list) container)MutableMapping)MutableSequenceceZdZdZdS) _CustomListz@Adds MutableSequence mixin while pretending to be a builtin listN__name__ __module__ __qualname____doc__/srv/buildsys-work-dir/castor/build_node/builder-2/WGSG1/unpkd_srcs/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/tomlkit/items.pyrr4sNNNNr$rceZdZdZdS) _CustomDictz?Adds MutableMapping mixin while pretending to be a builtin dictNrr#r$r%r'r'7sMMMMr$r'ItemTItem)bound.valuebool_parent Item | None _sort_keysreturnBoolcdSNr#r+r-r/s r%itemr5>Cr$intIntegercdSr3r#r4s r%r5r5Cr6r$floatFloatcdSr3r#r4s r%r5r5Hr6r$strStringcdSr3r#r4s r%r5r5Mr6r$rDateTimecdSr3r#r4s r%r5r5R Cr$rDatecdSr3r#r4s r%r5r5Yr6r$rTimecdSr3r#r4s r%r5r5^r6r$Sequence[dict]AoTcdSr3r#r4s r%r5r5crBr$rArraycdSr3r#r4s r%r5r5jr6r$r InlineTablecdSr3r#r4s r%r5r5or6r$TablecdSr3r#r4s r%r5r5tr6r$cdSr3r#r4s r%r5r5yr6r$Fr czddlm}t|tr|St|trt |t St|tr*t|t t|St|tr*t|t t|St|trt|ttfrtnt}||t d}t!|fdD]\}}t%||||<|St|t&t(fr$|rGt+d|Dr.|t|trt-g}t}n#tgt }t}|D]}t|tr||t d } t!|fd D]=\}} t%| | } t| tr d | j_| | |<>| }|||St|trt4|St|t8rrt;|j|j|j |j!|j"|j#|j$|j%t |&'d d  St|tPr@tS|j|j|j t |&St|tTrLtW|j!|j"|j#|j$|j%t |&StYdt[|)zCreate a TOML item from a Python object. :Example: >>> item(42) 42 >>> item([1, 2, 3]) [1, 2, 3] >>> item({'a': 1, 'b': 2}) a = 1 b = 2 r) ContainerFcRt|dtr|dndfSNr isinstancerir/s r%zitem..s':adD11:3L1Q441Mr$key)r-r/c3@K|]}t|tVdSr3rV.0vs r% zitem..s,77AJq$''777777r$NTcRt|dtr|dndfSrTrVrXs r%rZzitem..s(:adD#9#9:;T1Q44ST"Ur$z+00:00Zz Invalid type ).tomlkit.containerrRrWr)r,r1Triviar7r8r=r:r;rrJrLrNsorteditemsr5rtupleallrHtriviatrailappendr>from_rawrr@yearmonthdayhourminutesecond microsecondr isoformatreplacerrCrrE ValueErrortype) r+r-r/rRtable_constructorvalkr`atable_vrYs ` r%r5r5~s,+++++% %K E688$$$ E3  I ufhhE 333 E5 ! !G UFHHc%jj111 E4 E %g{/CDD OKK%   VXXu== KKMMMMMM    A ADAq!SZ@@@CFF ED%= ) )9  ,7777777 ,Jw$>$>BA %  b&((##A +   A!T"" ))))++vxxFF#GGIIUUUU!!EArR:FFFA!%55,)+ E!HH HHQKKKK E3   u%%% E8 $ $  J K I J L L   L HH OO   % %h 4 4    E4  EJ UY%//BSBSTTT E4   J L L   L HH OO      2T%[[22 3 33r$ceZdZdZdZdZdZedddZe dd Z e dd Z e dd Z ddZ ddZddZddZddZdS) StringType""""''''Fr0cH|j|j|j|jd||fS)N)FF)FT)TF)TT)SLBMLBSLLMLL)clsliteral multilines r%selectzStringType.selects6 G77'   I    r$Collection[str]ctdhz}ddh}tj|dhztj|dhz|z tjdtjdi|S)N\  rrr#rrrrrr)selfescaped_in_basicallowed_in_multilines r%escaped_sequenceszStringType.escaped_sequencessa)D61 $d| N,u4 N-7;OO NB NB    r$c tdhz }ddh}tjdtjdtj|dhztj|dhz|z i|S)N rrr#rrr)rforbidden_in_literalrs r%invalid_sequenceszStringType.invalid_sequencessa -v5 $d| NB NB N0C58 N1UG;?SS    r$r=c|jdSNrr+rs r%unitzStringType.unit sz!}r$r,c6|tjtjhvSr3)rrrrs r%is_basiczStringType.is_basic  777r$c6|tjtjhvSr3)rrrrs r% is_literalzStringType.is_literalrr$c6|tjtjhvSr3)rrrrs r% is_singlelinezStringType.is_singlelinerr$c6|tjtjhvSr3)rrrrs r% is_multilinezStringType.is_multilinerr$ctjtjtjtjtjtjtjtji|Sr3)rrrrrrs r%togglezStringType.toggles: NJN NJN NJN NJN    r$Nr)r0r)r0rr0r=r0r,)rr r!rrrr classmethodrpropertyrrrrrrrrr#r$r%rrs C C C C    [    X    X X8888888888888888r$rc(eZdZdZdZdZdZdZdS)BoolTypetruefalsecBtjdtjdi|S)NTF)rTRUEFALSErs r%__bool__zBoolType.__bool__)s tX^U;DAAr$c*t|jSr3)iterr+rs r%__iter__zBoolType.__iter__,DJr$c*t|jSr3)lenr+rs r%__len__zBoolType.__len__/4:r$N)rr r!rrrrrr#r$r%rr%sN D EBBB   r$rcTeZdZUdZdZded<dZded<dZded<dZded<d d Z d S) rfz, Trivia information (aka metadata). rcr=indent comment_wscommentrrlr0c*tj|Sr3) dataclassesrwrs r%copyz Trivia.copyBs"4(((r$Nr0rf) rr r!r"r__annotations__rrrlrr#r$r%rfrf3sz FJGE))))))r$rfceZdZdZdZdZdZdS)KeyTypez The type of a Key. Keys can be bare (unquoted), or quoted using basic ("), or literal (') quotes following the same escaping rules as single-line StringType. rcrrN)rr r!r"BareBasicLiteralr#r$r%rrFs) D EGGGr$rceZdZUdZded<ded<ded<ded<ded <ejdd ZejddZddZ ddZ ddZ ddZ d dZ d dZd dZdS)!KeyzBase class for a keyr=sep _originalzlist[SingleKey]_keysr,_dottedr\r0r7cdSr3r#rs r%__hash__z Key.__hash__\ r$_Key__oobjectcdSr3r#)rrs r%__eq__z Key.__eq__`rr$c|jS)z$If the key is followed by other keys)rrs r% is_dottedz Key.is_dottedds |r$Iterator[SingleKey]c*t|jSr3)rrrs r%rz Key.__iter__hrr$other DottedKeycL|j|jz}t||jS)z"Concatenate keys into a dotted key)r)rrr)rrkeyss r%concatz Key.concatks%zEK'48,,,,r$c2t|jdkS)z'Check if the key contains multiple keysrU)rrrs r%is_multiz Key.is_multips4:""r$c|jSzThe TOML representation)rrs r% as_stringz Key.as_stringts ~r$c*|Sr3rrs r%__str__z Key.__str__xs~~r$c2d|dS)Nzrrs r%__repr__z Key.__repr__{s*t~~''****r$Nr0r7)rrr0r,r)r0r)rrr0rr)rr r!r"rabcabstractmethodrrrrrrrrrr#r$r%rrSs HHHNNNMMM HHH             ---- ####    ++++++r$rcReZdZdZ ddd Zedd ZddZddZddZ dS) SingleKeyz A single keyNr|r=tKeyType | Noner str | Noneoriginalr0Nonec:|4|rtd|Dr tj}n tj}||_|d}||_||_|3|tjkrt|n|}|j||j}||_ |g|_ d|_ dS)Nc3XK|]%}|tjtjzdzdzvV&dS)-_N)string ascii_lettersdigits)r_cs r%raz%SingleKey.__init__..sLNO- =CcIIr$ = F) anyrrrrrr\rr+rrr)rr|rrrkey_strs r%__init__zSingleKey.__init__s 9 !ST !ML ;C  *+w}*<*K|]}|VdSr3rr_r|s r%raz%DottedKey.__init__..s*BB! BBBBBBr$rFc3$K|] }|jV dSr3r[rs r%raz%DottedKey.__init__..s$66aAE666666r$)rrjoinrrrr\)rrrrs r%rzDottedKey.__init__s~ $ZZ  xxBBtzBBBBBHK55S! 88664:66666r$r7cDtt|jSr3)r rirrs r%rzDottedKey.__hash__sE$*%%&&&r$ _DottedKey__orr,cLt|to|j|jkSr3)rWrr)rrs r%rzDottedKey.__eq__s #y))EdjCI.EEr$NN)rrrrrrr0rr)rrr0r,)rr r!rrrr#r$r%rrsc# 7 7 7 7 7''''FFFFFFr$rceZdZdZddZeddZedd Zd d Zed!d Z d!dZ d"dZ d#dZ d$dZ d$dZd$dZd$dZd%dZdZdZdS)&r)z) An item within a TOML document. rkrfr0rc||_dSr3_trivia)rrks r%rz Item.__init__s  r$c|jS)z,The trivia element associated with this itemrrs r%rkz Item.trivias |r$r7ctr3NotImplementedErrorrs r% discriminantzItem.discriminant!###r$r=ctrr"rs r%rzItem.as_stringr%r$r c|Sr3r#rs r%r+z Item.value r$ct)z#Returns as pure python object (ppo)r"rs r%unwrapz Item.unwrapr%r$rc|dsd|z}d|j_||j_|S)zAttach a comment to this item##  )strip startswithrrr)rrs r%rz Item.commentsB}}))#.. %WnG"% &  r$rc|jjdrdd|zz|j_nd|z|j_|S)z,Indent this item with given number of spacesrr.)rrr0)rrs r%rz Item.indentsF <  ) )$ / / /"&v"5DL  "%,DL  r$r,c,t|tSr3)rWr1rs r% is_booleanzItem.is_booleans$%%%r$c,t|tSr3)rWrNrs r%is_tablez Item.is_tables$&&&r$c,t|tSr3)rWrLrs r%is_inline_tablezItem.is_inline_tables$ ,,,r$c,t|tSr3)rWrHrs r%is_aotz Item.is_aots$$$$r$c|jfSr3rrprotocols r% _getstatezItem._getstates  r$c,|dSN) __reduce_ex__rs r% __reduce__zItem.__reduce__ s!!!$$$r$c:|j||fSr3) __class__r>r<s r%rBzItem.__reduce_ex__ s~t~~h7777r$N)rkrfr0rrrr)r0r )rr=r0r))rr7r0r)rr:)rr r!r"rrrkr$rr+r*rrr3r5r7r9r>rCrBr#r$r%r)r)sdX$$$X$$$$$X$$$$ &&&&''''----%%%%%%%88888r$ceZdZdZddd Zedd Zedd Zedd ZeddZ ddZ ddZ ddZ ddZ dS) Whitespacez A whitespace literal. Fsr=fixedr,r0rc"||_||_dSr3_s_fixed)rrIrJs r%rzWhitespace.__init__s r$c|jSr3rMrs r%rIz Whitespace.ss wr$c|jS)z$The wrapped string of the whitespacerPrs r%r+zWhitespace.values wr$rfc td)Nz&Called trivia on a Whitespace variant.) RuntimeErrorrs r%rkzWhitespace.trivia#sCDDDr$r7cdSrr#rs r%r$zWhitespace.discriminant'qr$c|jS)zLIf the whitespace is fixed, it can't be merged or discarded from the output.)rNrs r%is_fixedzWhitespace.is_fixed+ {r$c|jSr3rPrs r%rzWhitespace.as_string/s wr$cLd|jjdt|jdS)N*==T$']]====r$r:c|j|jfSr3rLr<s r%r>zWhitespace._getstate5sw ##r$NF)rIr=rJr,r0rrrrrrF)rr r!r"rrrIr+rkr$rWrrr>r#r$r%rHrHs XXEEEXEX>>>>$$$$$$r$rHc:eZdZdZed dZd dZd dZdS) Commentz A comment literal. r0r7cdS)NrUr#rs r%r$zComment.discriminant>rUr$r=ch|jjt|jj|jjSr3)rrrrrlrs r%rzComment.as_stringBs1|" VF4<+?$@$@ V$,BT V V r$cP|jjt|jjSr3)rrrrrs r%rzComment.__str__Gs%,%Evdl.B'C'CEEEr$Nrr)rr r!r"rr$rrr#r$r%r`r`9slX    FFFFFFr$r`ceZdZdZdfd Zdfd Zdd ZeddZeddZ ddZ fdZ fdZ fdZ fdZdZddZxZS)r8z An integer literal. r+r7rkrfrawr=r0cHt||Sr3super__new__rr+rkrerEs r%rizInteger.__new__PwwsE***r$rrct|||_d|_t jd|r d|_dSdS)NFz ^[+\-]\d+$Trhr_raw_signrematchrrrkrerEs r%rzInteger.__init__SsR      8M3 ' ' DJJJ  r$c t|Sr3)r7rs r%r*zInteger.unwrap\4yyr$cdSr@r#rs r%r$zInteger.discriminant_rUr$c|S)zThe wrapped integer valuer#rs r%r+z Integer.valuec  r$c|jSr3rnrs r%rzInteger.as_stringh yr$ct|}|tur|S||Sr3)rh__add__NotImplemented_newrrresultrEs r%r|zInteger.__add__k:'' ^ # #Myy   r$ct|}|tur|S||Sr3)rh__radd__r}r~rs r%rzInteger.__radd__q<!!%(( ^ # #Myy   r$ct|}|tur|S||Sr3)rh__sub__r}r~rs r%rzInteger.__sub__wrr$ct|}|tur|S||Sr3)rh__rsub__r}r~rs r%rzInteger.__rsub__}rr$cxt|}|jr|dkrdnd}||z}t||j|SNr+r)r=ror8rrrresigns r%r~z Integer._newsE&kk :  A++333D*Cvt|S111r$r:c:t||j|jfSr3)r7rrnr<s r%r>zInteger._getstates4yy$, 11r$)r+r7rkrfrer=r0r8)rr7rkrfrer=r0rrrrFrr r!r"rirr*rr$r+rr|rrrr~r> __classcell__rEs@r%r8r8KsT++++++XX!!!!! !!!!! !!!!! !!!!! 22222222222r$ceZdZdZdfd Zdfd ZddZeddZeddZ ddZ fdZ fdZ fdZ fdZdZddZxZS) r;z A float literal. r+r:rkrfrer=r0r8cHt||Sr3rgrjs r%riz Float.__new__rkr$rrct|||_d|_t jd|r d|_dSdS)NFz ^[+\-].+$Trmrrs r%rzFloat.__init__sR      8L# & & DJJJ  r$c t|Sr3)r:rs r%r*z Float.unwrapsT{{r$r7cdS)Nr:r#rs r%r$zFloat.discriminantrUr$c|S)zThe wrapped float valuer#rs r%r+z Float.valuerwr$c|jSr3ryrs r%rzFloat.as_stringrzr$cpt|}||Sr3)rhr|r~rs r%r|z Float.__add__*''yy   r$ct|}t|tr||S|Sr3)rhrrWr;r~rs r%rzFloat.__radd__C!!%(( eU # # %99V$$ $ r$cpt|}||Sr3)rhrr~rs r%rz Float.__sub__rr$ct|}t|tr||S|Sr3)rhrrWr;r~rs r%rzFloat.__rsub__rr$cxt|}|jr|dkrdnd}||z}t||j|Sr)r=ror;rrs r%r~z Float._newsE&kk :  A++333D*CVT\3///r$r:c:t||j|jfSr3)r:rrnr<s r%r>zFloat._getstatesT{{DL$)33r$)r+r:rkrfrer=r0r8)rr:rkrfrer=r0r)r0r:rrrFrrs@r%r;r;sT++++++XX!!!!! !!!!! 00044444444r$ceZdZdZdfd Zdd Zedd Zedd ZddZ ddZ dZ e Z dZ dZdZxZS)r1z A boolean literal. rr7rkrfr0rcrt|t||_dSr3)rhrr,_value)rrrkrEs r%rz Bool.__init__s,    1gg r$r,c t|Sr3)r,rs r%r*z Bool.unwrapsDzzr$cdS)Nr#rs r%r$zBool.discriminantrUr$c|jS)zThe wrapped boolean valuerrs r%r+z Bool.values {r$r=cNt|jSr3)r=rlowerrs r%rzBool.as_strings4;%%'''r$r:c|j|jfSr3rrr<s r%r>zBool._getstates{DL((r$c|jSr3rrs r%rz Bool.__bool__s {r$cPt|tstS||jkSr3)rWr,r}rrs r%rz Bool.__eq__s'%&& "! ! ##r$c*t|jSr3)r rrs r%rz Bool.__hash__DK   r$c*t|jSr3)r\rrs r%rz Bool.__repr__rr$)rr7rkrfr0rrrrrF)rr r!r"rr*rr$r+rr>r __nonzero__rrrrrs@r%r1r1s XX(((())))K$$$ !!!!!!!!!!r$ceZdZdZd'dZ d(d)fd Zd*dZed+dZed*dZ d,dZ fdZ fdZ d-fd! Z d.fd# Zd/d$Zd0d&ZxZS)1r@z A datetime literal. ror7rprqrrrsrtrur tzinfo | Nonerr kwargsr0rc 8tj||||||||fd|i| S)Nr)rri) rrorprqrrrsrtrurrrs r%rizDateTime.__new__ sJ                r$Nrk Trivia | Nonererrc  t| p t| p||_dSr3)rhrrfrvrn) rrorprqrrrsrtrurrkrerrEs r%rzDateTime.__init__#s@ +688,,,+4>>++ r$c l|\ }}}}}}}}} } t||||||||Sr3)r>r) rrorprqrrrsrtrurrs r%r*zDateTime.unwrap5sP NN           eS$ VTTTr$cdS)Nr#rs r%r$zDateTime.discriminantDrUr$c|Sr3r#rs r%r+zDateTime.valueHr(r$r=c|jSr3ryrs r%rzDateTime.as_stringLrzr$c "trRt|j|j|j|j|j|j|j|j  |}n!t |}| |Sr3) rrrorprqrrrsrtrurr|rhr~rs r%r|zDateTime.__add__Os~  ,         genn FWW__U++Fyy   r$c PtrRt|j|j|j|j|j|j|j|j  |}n!t |}t|tr| |}|Sr3)rrrorprqrrrsrtrurrrhrWr~rs r%rzDateTime.__sub__`s  ,         genn FWW__U++F fh ' ' 'YYv&&F r$argsc\|tj|i|Sr3r~rhrwrrrrEs r%rwzDateTime.replacet*yy$9&99:::r$tzct|}tr|S||Sr3)rh astimezonerr~)rrrrEs r%rzDateTime.astimezonews9##B''  Myy   r$c |}t|j|j|j|j|j|j|j|j |j | Sr3) rvr@rorprqrrrsrtrurrrrres r%r~z DateTime._new}sV   K L J K M M   M L    r$r:c ~|j|j|j|j|j|j|j|j|j|j f Sr3) rorprqrrrsrtrurrrnr<s r%r>zDateTime._getstates? I J H I K K   K L I  r$)ror7rpr7rqr7rrr7rsr7rtr7rur7rrrr rr r0rr)ror7rpr7rqr7rrr7rsr7rtr7rur7rrrkrrerrr r0r)r0rrr)rr rr r0r)rrr0r)r0r@rF)rr r!r"rirr*rr$r+rr|rrwrr~r>rrs@r%r@r@sk    H!%,,,,,,,$ U U U UXX!!!!!"(;;;;;;!!!!!!             r$ceZdZdZdd Zdfd ZddZed dZeddZ d!dZ fdZ fdZ d"fd Z dZd#dZxZS)$rCz A date literal. ror7rprqrr r0rc0tj||||Sr3)rri)rrorprqrs r%riz Date.__new__s|Cuc222r$rkrfrer=rcXt|||_dSr3rhrrn)rrorprqrkrerEs r%rz Date.__init__s(     r$cX|\}}}}}t|||Sr3)r>r)rrorprqrs r%r*z Date.unwraps.#'>>#3#3 uc1aD%%%%r$cdS)Nr#rs r%r$zDate.discriminantrUr$c|Sr3r#rs r%r+z Date.valuer(r$c|jSr3ryrs r%rzDate.as_stringrzr$ctr4t|j|j|j|}n!t |}||Sr3)rrrorprqr|rhr~rs r%r|z Date.__add__sY  ,$)TZ::BB5IIFFWW__U++Fyy   r$ctr4t|j|j|j|}n!t |}t|tr||}|Sr3) rrrorprqrrhrWr~rs r%rz Date.__sub__so  ,$)TZ::BB5IIFFWW__U++F fd # # 'YYv&&F r$rrc\|tj|i|Sr3rrs r%rwz Date.replacerr$cx|}t|j|j|j|j|Sr3)rvrCrorprqrrs r%r~z Date._news1  FKvz4<MMMr$r:cB|j|j|j|j|jfSr3)rorprqrrnr<s r%r>zDate._getstates 4:txtyIIr$) ror7rpr7rqr7rr r0r) ror7rpr7rqr7rkrfrer=r0r)r0rrr)rr rr r0rrF)rr r!r"rirr*rr$r+rr|rrwr~r>rrs@r%rCrCsA3333&&&&XX!!!!!     ;;;;;;NNN JJJJJJJJr$ceZdZdZd d Zd!fd Zd"dZed#dZed"dZ d$dZ d%fd Z dZ d&d'dZ xZS)(rEz A time literal. rrr7rsrtrurrrr r0rc4tj||||||Sr3)rri)rrrrsrtrurrs r%riz Time.__new__s|Cvv{FKKKr$rkrfrer=rcXt|||_dSr3r) rrrrsrtrurrkrerEs r%rz Time.__init__s(     r$c`|\}}}}}}}t|||||Sr3)r>r)rrrrsrtrurrs r%r*z Time.unwraps6<@NN>>r$cdS)Nr#rs r%r$zTime.discriminantrUr$c|Sr3r#rs r%r+z Time.valuer(r$c|jSr3ryrs r%rzTime.as_stringrzr$rrc\|tj|i|Sr3rrs r%rwz Time.replacerr$c |}t|j|j|j|j|j|j|Sr3)rvrErrrsrtrurrrs r%r~z Time._new sG   K M M   M L    r$r:r=ricZ|j|j|j|j|j|j|jfSr3)rrrsrtrurrrnr<s r%r>zTime._getstates0 I K K   K L I  r$)rrr7rsr7rtr7rur7rrrr r0r)rrr7rsr7rtr7rur7rrrkrfrer=r0r)r0rrr)rr rr r0rrFr=r7r0ri)rr r!r"rirr*rr$r+rrwr~r>rrs@r%rErEs  L L L L      ????XX;;;;;;              r$cDeZdZdZ ddd ZddZddZddZddZdS)_ArrayItemGroupr+rcommarNr+r.rWhitespace | NonerrComment | Noner0rc>||_||_||_||_dSr3r)rr+rrrs r%rz_ArrayItemGroup.__init__%s$    r$Iterator[Item]cTtd|j|j|j|jfS)Nc |duSr3r#)xs r%rZz*_ArrayItemGroup.__iter__..3s atmr$)filterrr+rrrs r%rz_ArrayItemGroup.__iter__1s- # #dk4:tz4<%X   r$r=c:tt|Sr3)r\rirs r%rz_ArrayItemGroup.__repr__6sE$KK   r$r,c&|jduo|jduSr3)r+rrs r% is_whitespacez_ArrayItemGroup.is_whitespace9szT!:dld&::r$cd tt|n#t$rYdSwxYwdS)NFT)nextr StopIterationrs r%rz_ArrayItemGroup.__bool__<sE  d       55 ts  --)NNNN) r+r.rrrrrrr0rr0rrr) rr r! __slots__rrrrrr#r$r%rr"s7I"$(#'"&         !!!!;;;;r$rceZdZdZ d1d2fd Zd3d Zd4dZed5dZed6dZ d7dZ d8dZ d9dZ d:dZ dddddd;d%Zd:d&Zd5d'Zdd-Zd?d.Zd@d0ZxZS)ArJz An array literal Fr+ list[Item]rkrfrr,r0rc t|t|d|Di|_|||_||_|dS)NcVg|]&}t|tttf$|'Sr#)rWrHr`Nullr^s r% z"Array.__init__..Os. P P P1ZJ3N%O%O PQ P P Pr$)rhrr _index_map _group_valuesr _multiline_reindex)rr+rkrrEs r%rzArray.__init__Is}      P P P P P   +-((// # r$list[_ArrayItemGroup]cg}t}|D]}t|trQd|jvr&||t|}F|jt |_||_ht|tr"|jt |_||_ |j||_||t|}||d|DS)z.ns333%U3333r$) rrWrHrIrmr+rrr`r)rr+groups this_groupr5s r%rzArray._group_valuesVs$&&  9 9D$ ++ 9df$$MM*---!0!=!=!=JJ!'/+/66 ('+J$$D'** 9#+'+vvJ$%) ""!)#'    j))),4888  j!!!3363333r$ list[Any]cg}|D]O}t|dr(||:||P|SNr*)hasattrrmr*)r unwrappedr`s r%r*z Array.unwrappsd  $ $Aq(## $  ,,,,  ####r$r7cdS)Nr#rs r%r$zArray.discriminantyrUr$rc|Sr3r#rs r%r+z Array.value}r(r$rc#.K|jD] }|Ed{V dSr3r)rr`s r% _iter_itemszArray._iter_itemss4  ALLLLLLLL  r$c||_|S)aChange the array to display in multiline or not. :Example: >>> a = item([1, 2, 3]) >>> print(a.as_string()) [1, 2, 3] >>> print(a.multiline(True).as_string()) [ 1, 2, 3, ] )r)rrs r%rzArray.multilines$ r$r=cjrjs5dddDdSd}|dfdjDz }|jjdzz }|S)N[rcc3>K|]}|VdSr3rr^s r%raz"Array.as_string..s*IIq{{}}IIIIIIr$]z[ c3K|]y}|j jjdz|jzt |jt sdndz|j|jndzdzVzdS)N rrcr)r+rkrrrWrr)r_r`rs r%raz"Array.as_string..s   w" K  g!! "%QWd33;ss =)* (=qy""$$$2  G   #"""   r$)rrrrrkr)rrIs` r%rzArray.as_strings Mdk MLrwwIId6F6F6H6HIIIIILLL L  RWW     [       T[ # %%r$c|jd}t|jD]6\}}|jt |jt r'||j|<|dz }7dS)NrrU)rclear enumeraterr+rWr)rindexrYr`s r%rzArray._reindexss dk**  DAqw*QWd";";%&DOE " QJEE   r$rNT)rr add_commanewlinerhr rrrrr c <g}|rd|n|}|r"|t|d}g} t|D]U\} } t| |} t | t s|r5t | tr t dt| dt | ts|r$|t|d}|| | | j|rZ|td| t|dz kr"|td+d| j vr || j z }@|| W|r"|t||r;|rdnd}|t t|d |d t || t|jd kr|jd } td |jddd Dd}|td|_| r |||jd d <n[|j ||n-|j |||dS)aAdd multiple items in a line to control the format precisely. When add_comma is True, only accept actual values and ", " will be added between values automatically. :Example: >>> a = array() >>> a.add_line(1, 2, 3) >>> a.add_line(4, 5, 6) >>> a.add_line(indent="") >>> print(a.as_string()) [ 1, 2, 3, 4, 5, 6, ] rrcr-z item type z is not allowed in add_linerrUr.r-)rrrlrc3\K|]'}|j t|jt#|V(dSr3)r+rWrr^s r%raz!Array.add_line..sGw*:agt3L3L*****r$N)rmrHrr5rWr`rxryr+rrIrfrextendrrrrrr)rrrrr rh new_values first_indent whitespace data_valuesrYelit last_itemlast_value_items r%add_linezArray.add_lines90"$ (/;}F}}}V  8   j66 7 7 7  u%% & &EArb$'''B"g&& U) U 2z8R8R U !Sd2hh!S!S!STTTb*-- &$%%j&<&<===!#J!!"%%%""28,,,;%%joo666CJJN**"))*S//:::BDbd" !!"%%%%  6   j44 5 5 5  !)SSrF   fn7nnBOOOPP    D+&&& t{  a   BI"![2.  O*(23%&&(( C%)%7%7 %C%C BrE"" ""4#5#5j#A#ABBBB K  t11*== > > > r$ct||j|jdS)zClear the array.N)rrrrrs r%rz Array.clearsB 4  r$c6t|Sr3)rrrs r%rz Array.__len__s||D!!!r$r\ int | slicecttt||}|rt |S|Sr3)rr)r __getitem__r3r,)rr\rvs r%r3zArray.__getitem__ sA $((s33 4 4 ==?? 88O r$ct||}t|||t|trt d|dkr|t |z }||j|j|_ dS)Nr"z!slice assignment is not supportedr) r5r __setitem__rWslicerxrrrr+)rr\r+r+s r%r6zArray.__setitem__s % & & & sB''' c5 ! ! B@AA A 77 3t99 C24 DOC()///r$posct||}t|}t|ttfst ||||dkr ||z }|dkrd}d}d}||kr1 |j|}n#t$r}td|d}~wwxYwt|j }|dkrT|j |dz  r2|dz}|j |j d|j |j j vrd}d}||krt dnd} |t|j kr1|j | s|j |j }|dkrs|j |dz } || j }t| jts d|vr| j} | j.t| jtst d| _||dksd|vrt |}t#||| } |j || |dS) Nr"rr.list index out of rangerUrz r)r+rr)r5rrWr`rHrinsertrKeyError IndexErrorrrrrIr+rrrr) rr8r+r+lengthidxdefault_indenterrr,new_items r%r;z Array.inserts^ % & & &T"w 344 ' KKc2 & & & 77 6MCQww << Coc* C C C !:;;B Cdk""CaxxDKa0>>@@xqK$+7 C 0 7 999%-N"03f Z___$ T[!! ! !$+c*:*H*H*J*J ![%,F 77 C!G,I~")iot44 (9O9O"&z)/4/P/P&",S//  >sQww$.*@*@//F"F%HHH 3))) s7 B B$BB$ct|}t||t|tr4tt |jpd|jp||jpd}n|dkr||zn|g}t|dD]} |j |}|j |=|dkrCt|j dkr+d|j |j j vrd|j |_ b#t$r/}t|tstd|Yd}~d}~wwxYwt|j dkr(|j d}|sd|_|dS)NrrUT)reverserr:r#)rr __delitem__rWr7rangestartstopsteprgrrrrIr<r=rrr)rr\r>indices_to_removerYr?rAr`s r%rEzArray.__delitem__JsT s### c5 ! ! C $cin1ch&8&#(-aHH!!  25q#c B )4888 3 3A 3oa( K$1HHDK((1,,DK$4$;$===/3DK$+ G G G!#u--G$%>??QFGGGGG G t{  a   BA??$$  s C55 D.?%D))D.r:c^t||j|jfSr3)rrrrr<s r%r>zArray._getstateks'D$$&&''tFFr$r^)r+rrkrfrr,r0r)r+rr0r)r0r r)r0rr)rr,r0rJrr0r) rhr rr=rrrr,r r,r0r)r\r1r0r )r\r1r+r r0r )r8r7r+r r0r)r\r1rF)rr r!r"rrr*rr$r+rrrrr.rrr3r6r;rEr>rrs@r%rJrJDs DI       44444XX&&" JJJJJJX """" 55550000dBGGGGGGGGr$AT AbstractTableceZdZdZd(dZd)d Zed*d Zed+dZ ed,dZ dZ ed-dZ ed,dZ d.dZ d/dZ d0fd Z dZ d1dZd2dZd3d!Zd4d#Zd5d$Zd6d&Zd7d'ZxZS)8rNz@Common behaviour of both :class:`Table` and :class:`InlineTable`r+container.Containerrkrfct||||_|jjD](\}}|!t||j|)dSr3)r)rrbodyrr6r\)rr+rkr|r`s r%rzAbstractTable.__init__us_ dF### K$ 1 1DAq}  qua000 1 1r$r0dict[str, Any]ci}|D]J\}}t|tr|j}t |dr|}|||<K|Sr )rhrWrr\r r*)rrr|r`s r%r*zAbstractTable.unwrap~sk JJLL  DAq!S!! Eq(## HHJJIaLLr$c|jSr3rrs r%r+zAbstractTable.valuerXr$rrMr\rComment | WhitespacecdSr3r#rr\r+s r%rmzAbstractTable.append r$ Key | strr cdSr3r#rXs r%rmzAbstractTable.appendrYr$ctr3r"rXs r%rmzAbstractTable.append!!r$cdSr3r#)rr+s r%addzAbstractTable.addrYr$cdSr3r#rXs r%r_zAbstractTable.addrYr$Nc|1t|ttfsd}t|d|}}|||S)Nz8Non comment/whitespace items must have an associated key)rWr`rHrxrm)rr\r+msgs r%r_zAbstractTable.addsL =cGZ#899 &P oo%sC{{3&&&r$c|j|t|tr|j}|t |||Sr3)rremoverWrr\rrErr\s r%rdzAbstractTable.removesQ 3 c3   'C ?   T3 ' ' ' r$defaultcXt||||Sr3)rh setdefault)rr\rfrEs r%rhzAbstractTable.setdefaults' 3(((Cyr$c*t|jSr3)r=r+rs r%rzAbstractTable.__str__rr$c*tj|Sr3)rrs r%rzAbstractTable.copysyr$r=c*t|jSr3)r\r+rs r%rzAbstractTable.__repr__rr$ Iterator[str]c*t|jSr3)rrrs r%rzAbstractTable.__iter__rr$r7c*t|jSr3)rrrs r%rzAbstractTable.__len__s4;r$c0||dSr3)rdres r%rEzAbstractTable.__delitem__s Cr$r)cBtt|j|Sr3)rr)rres r%r3zAbstractTable.__getitem__sD$+c*+++r$ct|tst||}||v}||j|<|t||||rdSt jd|jj }|sdS| d}t|tsit jd|j j }|s||j _ dS| d|z| dz|j _ dSdS)Nr"(?s)^[^ ]*([ ]+).*$rU(?s)^([^ ]*)(.*)$rA) rWr)r5rrr6rprqrrrrHrk)rr\r+ is_replacemrs r%r6zAbstractTable.__setitem__s%&& .---ED[   C ?   T3 . . .   F H*DL,? @ @  F%,, G,el.ABBA G&, ###&'ggajj6&9AGGAJJ&F ###  G Gr$)r+rPrkrf)r0rS)r0rP)rrMr\rr+rVr0rM)rrMr\rZr+r r0rM)rrMr+rVr0rMr3)rrMr\rZr0rM)r\rZrfr r0r )rrMr0rMr)r0rlr)r\rZr0r)r\rZr0r)r\rZr+r r0r)rr r!r"rr*rr+rrmr_rdrhrrrrrrEr3r6rrs@r%rNrNrsJJ1111    X   X    X """   X    X ''''        !!!!    ,,,,GGGGGGGGr$ceZdZdZ d%d&fd Zed'dZd(dZd)dZd)dZ d*dZ d*dZ d+dZ d,fd Z d Zd-d.d$ZxZS)/rNz A table literal. Nr+rPrkrfis_aot_elementr,is_super_table bool | Nonenamer display_namer0rct||||_||_||_||_dSr3)rhrr{r|_is_aot_element_is_super_table)rr+rkrxryr{r|rEs r%rzTable.__init__sD ''' (--r$r7cdS)N r#rs r%r$zTable.discriminantrUr$ct||j|j|j|j|j|jSr3)ryrrrr~rr{r|rs r%__copy__zTable.__copy__sUtDzz K     L       I      r$r\Key | str | None_itemr ct|tst||}|j||t|t r.t t|j}|j|}|t |||tj d|j j}|s|S|d}t|t sftj d|jj}|s ||j_n8|d|z|dz|j_|S)5 Appends a (key, item) to the table. r"NrrrUrsrA)rWr)r5rrmrrrr\rr6rprqrrrrHrk)rr\rrurs r%rmz Table.append s/%&& .---E 3&&& c3   %tCyy//%CK$E ?   T3 . . . H+T\-@ A A K%,, G,el.ABBA G&, ##&'ggajj6&9AGGAJJ&F # r$cFt|tst|}|j||t|t r.t t|j}|j|}|t ||||S)z8Similar to :meth:`append` but does not copy indentation.) rWr)r5rrmrrrr\rr6rr\rs r% raw_appendzTable.raw_append*s%&& KKE 3&&& c3   %tCyy//%CK$E ?   T3 . . . r$c|jS)z8True if the table is the direct child of an AOT element.)r~rs r%rxzTable.is_aot_element:s ##r$c|j|jSt|dkrdStt|}t |t tfS)zA super table is the intermediate parent of a nested table as in [a.b.c]. If true, it won't appear in the TOML representation.NrUF)rrrrvaluesrWrNrH)r only_childs r%ryzTable.is_super_table>s[   +' ' t99>>5$t{{}}--.. *ucl333r$r=c4|jSr3)rrrs r%rzTable.as_stringIs{$$&&&r$rc<t|tjd|jj}|sd}n|d}|jjD]3\}}t|ts||j jz|j _4|S)z-Indent the table with given number of spaces.rrrcrU) rhrrprqrrrrRrWrHrk)rrru indent_strrr5rEs r%rz Table.indentNs v H*DL,? @ @ $JJJ{' E EGAtdJ// E%/$+2D%D " r$cd|_|D]&}t|dr|'dS)Ninvalidate_display_name)r|rr rrchilds r%rzTable.invalidate_display_name^sQ [[]] 0 0Eu788 0--/// 0 0r$r:r=ricN|j|j|j|j|j|jfSr3)rrr~rr{r|r<s r%r>zTable._getstatees- K L   I     r$r)r+rPrkrfrxr,ryrzr{rr|rr0rr)r0rN)r\rrr r0rNrr)rr7r0rNrFr)rr r!r"rrr$rrmrrxryrrrr>rrs@r%rNrNs5'+#'....... X    > $$$$ 4 4 4 4''''  000         r$cneZdZdZ ddfd Zedd ZddZd dZd!fd Z d"dZ d#d$dZ xZ S)%rLz" An inline table literal. Fr+rPrkrfnewr,r0rcZt||||_dSr3)rhrr~)rr+rkrrEs r%rzInlineTable.__init__us* ''' r$r7cdS)N r#rs r%r$zInlineTable.discriminant|rr$r\rrr ct|tst||}t|ttfsO|jjs+t|jdkr|j s d|j_|jj r d|j_ |j ||t|tr|j }|t||||S)rr"rr.rc)rWr)r5rHr`rkrrrr~rrmrr\rr6rs r%rmzInlineTable.appends%&& .---E%*g!677 *<& *3t{+;+;a+?+? +?&) #|# *') $ 3&&& c3   'C ?   T3 . . . r$r=cd}tfdttjjdz ddDd}t jjD]\}\}}|j|tjjdz kr2jr|d}n|d}||z }u|j j dd}||j j || rd ndz|j||j j|z }|||kr|dz }jr|d z }|d z }|S) N{c3LK|]}jj|d|VdS)rN)rrR)r_rYrs r%raz(InlineTable.as_string..sD  ;#A&q)55555  r$rUr#z, rrrcrr.})rrFrrrRrr~rstriprrkrlrwrrrr)rbuf last_item_idxrYr|r`v_trivia_trails` r%rzInlineTable.as_strings    s4;#344q8"bAA       #4;#344  IAv1yDK,--111y.!jj..!jjooq{{}}$X^33D"==N 8?$;;==1;;==$@CCbA$5$;;==$8# $ " $$ C(Q->->s 93JC s  r$rZct|dr|jjr d|j_t||dS)Nrkrc)r rkrrhr6)rr\r+rEs r%r6zInlineTable.__setitem__sK 5( # # & (< &#%EL  C'''''r$ct||j|j|jSr3)ryrrrr~rs r%rzInlineTable.__copy__s:tDzz$+**,,dl.?.?.A.A49MMMr$r:r=ric|j|jfSr3rr<s r%r>zInlineTable._getstates T\**r$r^)r+rPrkrfrr,r0rr)r\rrr r0rLrrv)r0rLrFr) rr r!r"rrr$rmrr6rr>rrs@r%rLrLps GLX.''''R(((((( NNNN+++++++++r$ceZdZdZfdZdfd Zdd ZeddZeddZ ddZ d fd Z d!dZ d"dZ eejdfd#dZxZS)$r>z A string literal. cHt||Sr3rg)rrr+rrkrEs r%rizString.__new__rkr$rrrr=rrkrfr0rcft|||_||_dSr3)rhr_tr)rrrrrkrEs r%rzString.__init__s-    !r$c t|Sr3)r=rs r%r*z String.unwraprtr$r7cdS)N r#rs r%r$zString.discriminantrr$c|Sr3r#rs r%r+z String.valuer(r$c^|jjt|j|jjSr3)rr+rrrs r%rzString.as_strings*'-H!7!7HHHHr$rr(rct|tstSt|}|jt |d|z}|||S)Nr)rWr=r}rhr|rgetattrr~)rrrrrEs r%r|zString.__add__s\%%% "! !''>GE;$F$FFyy***r$rc:t|j|||jSr3)r>rr)rrrs r%r~z String._newsdgvx>>>r$r:cF|jt||j|jfSr3)rr=rrr<s r%r>zString._getstateswD 4>4<??r$Tr+ct|j}tfd|Drt||j|j}|r|rt |n}||t|tS)Nc3 K|]}|vV dSr3r#)r_rr+s r%raz"String.from_raw..s'++aqEz++++++r$)rrrrr+rrrf)rr+type_escapeinvalidescaped string_values ` r%rnzString.from_rawsu ) ++++7+++ + + B$UGU[AA A)8>U7U}UG444PU s5&--vxx@@@r$) rrrr=rr=rkrfr0rrr)rr(rr=r0r()rr=rr=r0r>rF)r+r=r0r>)rr r!r"rirr*rr$r+rr|r~r>rrrrnrrs@r%r>r>sK+++++"""""" XXIIII++++++????@@@@(2t A A A A[ A A A A Ar$ceZdZdZ d)d*fd Zd+dZed,dZed-dZed.dZ d-dZ e d/dZ e d0dZ dZ d1dZ d2dZd3d"Zd#Zd4d%Zd4d&Zd5d(ZxZS)6rHz# An array of table literal NFrR list[Table]r{rparsedr,r0rc||_g|_||_tt d|D]}||dS)Nrc)rl)r{_body_parsedrhrrfrm)rrRr{rr~rEs r%rz AoT.__init__ sk "$   b)))***  E KK      r$list[dict[str, Any]]cg}|jD]O}t|dr(||:||P|Sr )rr rmr*)rrrs r%r*z AoT.unwrapsf  $ $Aq(## $  ,,,,  ####r$c|jSr3rrs r%rRzAoT.bodys zr$r7cdS)N r#rs r%r$zAoT.discriminant"rr$list[dict[Any, Any]]c$d|jDS)Ncg|] }|j Sr#rr^s r%rzAoT.value..(s,,,A,,,r$rrs r%r+z AoT.value&s,,,,,,r$c*t|jSr3)rrrs r%rz AoT.__len__*rr$r\r7cdSr3r#res r%r3zAoT.__getitem__-rYr$rNcdSr3r#res r%r3zAoT.__getitem__1rYr$c|j|Sr3rres r%r3zAoT.__getitem__5sz#r$ slice | intr+r ctr3r"rXs r%r6zAoT.__setitem__8r]r$cL|j|=t||dSr3)rrrEres r%rEzAoT.__delitem__;s' JsO s#####r$rrct||}t|tstdt |t |}|dkr||z }|dkrd}n||kr|}t jd|jj }|r{| d}t jd|j j }|s ||j _ n8| d|z| dz|j _ d|kr|r|j |dz nd}||dz kr|j |dznd}|j sR|r'd|j j vrd|j j z|j _ |r'd|j j vrd|j j z|j _ |j ||t|||dS) Nr"zUnsupported insert value type: rrrrUrsrAr)r5rWrNrxryrrprqrrrrkrrr;r)rrr+r>rur prev_table next_tables r%r;z AoT.insert?sUD)))%'' NLtE{{LLMM MT 199 VOE 199EE f__E H*DL,? @ @  GWWQZZF,el.ABBA G&, ##&'ggajj6&9AGGAJJ&F #./%iiFiTZ ** .3fqj.@.@TZ **d | K Ad%,*===&*U\-@&@ # Kd**;*BBB+/*2C2J+J !( %''' D%'''''r$cX|D]&}t|dr|'dS)z8Call ``invalidate_display_name`` on the contained tablesrN)r rrs r%rzAoT.invalidate_display_name]sA 0 0Eu788 0--/// 0 0r$r=cLd}|jD]}||z }|SNrc)rr)rbr~s r%rz AoT.as_stringcs3 Z # #E "" "AAr$cd|jdS)Nzz AoT._getstatemsz49dl22r$NF)rRrr{rrr,r0r)r0r)r0rr)r0r)r\r7r0r)r\r7r0rN)r\rr+r r0r)r\rr0r)rr7r+rr0rrrF)rr r!r"rr*rrRr$r+rrr3r6rEr;rrrr>rrs@r%rHrHs JO       XX---X-   X    X """"$$$$((((<000 %%%%33333333r$cdeZdZdZddZddZeddZeddZdd Z ddd Z dS)rz A null item. r0rcdSr3r#rs r%rz Null.__init__vs r$cdSr3r#rs r%r*z Null.unwrapystr$r7cdS)Nr#r#rs r%r$zNull.discriminant|rr$cdSr3r#rs r%r+z Null.valuestr$r=cdSrr#rs r%rzNull.as_stringrr$r:ricdS)Nr#r#r<s r%r>zNull._getstaterr$NrLrrrF)r0ri) rr r!r"rr*rr$r+rr>r#r$r%rrqs    XXr$r)..)r+r,r-r.r/r,r0r1)r+r7r-r.r/r,r0r8)r+r:r-r.r/r,r0r;)r+r=r-r.r/r,r0r>)r+rr-r.r/r,r0r@)r+rr-r.r/r,r0rC)r+rr-r.r/r,r0rE)r+rGr-r.r/r,r0rH)r+rr-r.r/r,r0rJ)r+rr-rJr/r,r0rL)r+rr-r.r/r,r0rN)r+r(r-r.r/r,r0r(r)r+r r-r.r/r,r0r))I __future__rrrrrprrrrrenumrtypingr r r r r rrrrtomlkit._compatrrtomlkit._utilsrrtomlkit.exceptionsrbuiltinsrr'rrtomlkitrcollections.abcrrr(r5rr dataclassrfrABCrrrr)rHr`r7r8r:r;r1r@rCrErrJrMrNrNrLr=r>rHrr#r$r%rs0 """"""    """"""((((((((((((111111N-,,,,,,,,,,,"!!!!!!......//////OOOOOotOOONNNNNndNNN v&&&         DG       JM          `4`4`4`4`4FAAAAAAAAH     t    ))))))))$     d   )+)+)+)+)+#')+)+)+X0!0!0!0!0!0!0!0!fFFFFFFFF.E8E8E8E8E8E8E8E8P%$%$%$%$%$%$%$%$PFFFFFdFFF$A2A2A2A2A2c4A2A2A2HD4D4D4D4D4E4D4D4D4N+!+!+!+!+!4+!+!+!\U U U U U tXU U U p:J:J:J:J:J4:J:J:JzF F F F F 4F F F RDhGhGhGhGhGD+hGhGhGV  WT)))sGsGsGsGsGD+sGsGsGlE E E E E ME E E PY+Y+Y+Y+Y+-Y+Y+Y+x5A5A5A5A5AS$5A5A5Apj3j3j3j3j3$ j3j3j3Z4r$