rust%ֹ rustc 1.48.0std؝-6bf3f16f340782cacoreƞ-3375e4f89d420e7acompiler_builtins-f74b197469e67088rustc_std_workspace_core扪ڹ8-5e0675f526ef5c6ballocץޯČ-1ebf406bd4ea5769libcɄ-dfbef8c525de0186unwindܽ݇!-bd645b20c6c7b56dcfg_ifшC-b9e1e523c0c29a77 hashbrownǰ-c6632ca171f954ddrustc_std_workspace_allocW-b5bfd0198c7b740drustc_demangleة-3ac2d0878c297d42 addr2lineƄ-12740563628e601fgimlin-0ac82a1e1820dd21object»-af517d7f13e7c960 miniz_oxide֕㵤 -a2ba33c985785afeadler˯-3f6e9f8f4afbea6d panic_unwindի-13f3099d50c21bc6 proc_macroתӺ-98fe22f4772d9a7f proc_macro2ѐB-4a51a5cb4a3b3b3e unicode_xidܙv-2f683cc8ef7518b9quote髙-055b4b091be8b4ccFm{T2+1Qb6std 4o\E]y proc_macromx3}(2Bc  proc_macro2ld?v>' unicode_xid}ʍY3fHlquoteް䱲macrosV7NlZ 9 ast_structeӠ(pD Åast_enum2%˼B Kast_enum_of_structs HqKG"Mast_enum_of_structs_impl2vLc#Ћ,cast_enum_from_struct1RP&XMŠH^*generate_to_tokensu3۶+b^strip_attrs_pubm h6:#/check_keyword_matchesD MI.PlgroupG7='k1CǏ:H)=z&8qJ|[C9TKZnKbbN)U^3&TǧqOXvk"O7AguParensƚŽA':_'asF;RNttoken\0GǗP068җ%contentRf00rBracesX`Ѷ{kFW'a2_D4"1}4tokeni0 ?1>8DIcontent=F[օf'7.Brackets~mU|i\c2m'a9.044/kLIrtokenH;V;KPEfcontentϴYrY!bDVGroupr@="@l#'a¼{w]}L#token@O\3d-#content(h}^{oX' parse_parens(-Ls[;_Ns''aORk D)-fo)H]щ-SS parse_groupIf E{0'aTčr R0[;6iVeޡEparse_delimited^CnoqQ-3'a`ajƉ³ 3pB[N;˰W parenthesized{R-\Wsq-+oObracedJjk ZS-d bracketedC%H K-tokenQ7Ωө ,9i݅b?GDn49DW?["+9q?I$!p聇9[p_W 997۾yd|93}ē!%DG9[AlZ(]Fz/ٞJe`(o9 kCTkeyword#۫܍u3E*fř)r1$}M peek_keyword{L=6kpunctsSm.USaHUf9) fbƶڊ[w4 punct_helper5vL73*Qn l-*i+tEr)*ȓS(i6gQ3qOrɶ7+ Ps- kp!=8ul7k|M#'f punct5x/aDNkeywordf(/lߊ7SjdelimN@1kN$[:_Ff[֐5,x *identyd\<@2YOϳ4.[J\лkGd|klu;̸򡨠 Pخ3:-td@XYy넦Hx/]By2 ̗p=ajnKQ%wB6k B@YIdentcFNC9R|a9accept_as_ident\ cQx}]bK7fparseaZR\bCz ꉜT0͠w=Ϯp}ؼ_Speek_N7D&_.P׉h display;k/J:VȼJ ident_from_token!}/R7X/SWEfrom%؁ܫxid_ok 銞+E[w iA6{attrLi/+Ej h88c&M%nF0rCK6}xh[ȥ=n.#c+b-V;48"$M-w`J–S+ӶauAq1eS]/# R Kz@jSy)ښ 6vY@\ [=#G.BYG|2  parse_meta|g#QYͼXclone_ident_segment " O  :;[7;vH-!7KB1?߹@L%Lב@` parse_argsC#,alm#TKiփ2parse_args_with^Ch&bhFf9ӽۼMl<R/X,6p:2 parse_outer#xO:F]c_FVH3 parse_innerڕz7O$]Uoexpected_parentheses,;.n^Nm enter_args;lsf'aUsr\K[+ppathvgDV]EEcFn AttributeArgs~F_ FilterAttrsvъ"u'aZ bR4:;RetY7,o^'eBFouterۘ(êY inner.D*Y|V\Гd'aNs # 2Ret7òn;$?)-FouterR vQɣ@is_outert [5M}d innerc;%J2[u@is_inner1SKb Q- e(̚^ nparseYu_@Z3G&{&&vparses9gC68@rOtCyyLparsew%ߟѓN'TرKO8OXْ%R to_tokensT%*ÈXu"Zq >DTN\:s%Ꟍzp7o to_tokens&`OR+_vfR b؅&n W{g`'ZI to_tokensLlo봾[b٧Bjd'秨N@Sy wY4`71 Qs)HdF'lr+Gjc#zl'D+J AߠOj\ԊEoD :PIy0Vbigint %// ۇ#BHGQņnsHq]Az6<_lBigIntAQ!y digits ?=@SZj1.x9`AXnew gbm:󍬽6 to_stringF4Qe].Hz̔reserve_two_digits%A2GqԴ`Rnlt܍g6< add_assign۴H0lآ?n,+Eւ$ mul_assignUYDD data| ‡z6d 3[8CQ6D%yė,ʩ p iterI(LŒ<iter_mutuO}d (lenMf Nߦ&is_empty?K(: ,ItemkA6 ˊIntoIterdLԧu' into_iter#:՝ДOvPąZv+;'a7:Lo-$/Item"1L4qتVIntoIter?7D sؖ into_iter4rKr[_WYaɎ44'a:VDMNhItem%CU!RӦv aIntoIter@\$Ly into_iter>a @yparsingY6E ۢy:(e2|Yog`/m@u˛3 lAQs.Ce]NP}xs:rIڢecrf4niU,zparsei(a9iUeJXzFjkw\dparsey3L G)J'$\8 \| _parse} [t parse_bracedի1bEegQѿ7DŚ parse_namedk"yrض parse_unnamedWЮt.imhv( MOqparseZ%_KrO#x'Y0-܉  parse_pub9Y뺢F&׌* parse_crate #k8Gis_someA"'5ʸM9printing[r*Zo2oW;GtFBϴEc_Yzߛ\m>b,mǰ'k, [lXEK#L˅5,bd<D~ɍ_ ԨlW to_tokens'9/Gz[lHNV ZCk to_tokens'R!]pAnR=)rXէ|4<}. to_tokensY'iI,s++v@6 ]ޑXߋYL# to_tokens8яϣ'"&Kr"8Hb]׻5^a to_tokensPڌ$+G%C^hVf6Hw }D ?' x-&\!05C? k4׫ʥ88Sp|Qd[[LG>V2;ˇGexpryׯ4m: PU;nnRg&G~w '+pJ3,n;ey2"c-?N%_Χ Y6+i|D4q ~;BE M%VH:%‘6\tKj@c %TtS훖AkIG $>Dݘb=h: C0>v#B@q v &bt}j ,jp47SHsR E replace_attrs(ܶMh Cn"Ҽ2<nfromU]Wz5|[|Mfrom Ż5r^h$qZK:!fromI*Qd ðl>B.45hIDMX^eqv3h DiˍKN0Pņ*)hashKy**sAHT3fmtmAi<span>Erequires_terminatorE1 1yv>zparsingd 9ҹ@: OPy q%[C+7)z{ yQ6u <ŗzrOzmư"ӭ G*DH3ٙ4`H>Vi-cSKF6XpUS AllowStructJ*GjǟdOwRưBzy 0H8x wBQ9k Precedence͇lAnyʹJ)v|Ōv0tAssigna`6sⳝ\A(<<\<`Dg8RangeDf =ʯ2O[^I -`;ݫh{XOr;2-T'qVs8TaŒcAnd.@rvd Sz0}w9ntCompare^xqPTzo6Ovgy9MBitOrcYed)x1M,}j{;BitXor5kk89 }[1ٴBitAnd0-z#x!ff! xZ$bShifty>SH/ 2Za=m! F ArithmeticOBRVUڣ*bikҕʋP{Term7@[5MxqzU\y%3dCastT!'E֌C.A[Q92r.țGz)F͖k-of ooh= F&sf߱;&,$parse!@롑1N@X= 鎗I[gfparse_without_eager_braceTOX}+lP0ƒoj"`g-clone<m+ 'zw|[ܲ`Pt${<' Xclone ?@gݖ P chH RC{parse[jIk5['= K ֖=r)Rhparse,Ҭ,2Aɭ expr_early6ݯW[a|9. g>dL"zࣴ&parse 1"hTjkA1>&yzxEu9parse !)un expr_unaryli~Il ud5parsej2{v7V,o\{ʾtesparse0=c^v.G-o:gaparseKS_b}P ~E9gA"_!parseb2ENH s2`)RX:>(fQU:parse ӛʆHK6ߖ/u' S6Snparse-:Y   expr_closure[A@~yȡsvtדk)$bparseNpk|ZEC^Oparse#*z?7VtN.:hSA~"parse,fȌ6ޯДĚFEWparseRm - zXP_dz ,X}#parse<-فΛA expr_break='\tjn* rexpr_ret =, RDE *riu˺&uZparse\2`w 1 A!2/gOC>parse&<_Τ<9#@>$q2?parseqYe-^ expr_range|,?`3L$}SW _SparsejZ۸"zI%VgB{Gx$r7parse90;SZ)}&,_$`5parse@$e€'w^¿ڪXLbparse*H D.8C(INn߳klÃparse%/00Y3>8Mpf#\ multi_indexX$ԪzH-U¼NLeu)(SE|!gJZ {is_namedtAeWwe xprinting*# a'M/%L"oV@ה#ذ'5M/J>ۯݪ3b4 s#[`.9qCBm1mNLjt;$MݔvtlF>~494 a1Fewrap_bare_struct1)Ω1Jh\;w&7+UnZ#1outer_attrs_to_tokensu}q`t&Dv inner_attrs_to_tokensrv&!Pa2) BKP;7 to_tokensD޳ ʹI7)O|cg to_tokens'=pU" +^V/OvpEɂTI to_tokensRCMXX){]/0+xkD `̀jЄ, to_tokensh- j얍1 aɠ|Fփ<~ to_tokensY.Y=ԝ}L2u% to_tokens!}ik|IPJ ]"0Wܧ 26 to_tokens&dN )R1G_}d2FNx{x  to_tokensuP{ F̹@ܕq NyV to_tokensqdj( &\ `*Ii#xW to_tokensȮd3*I q to_tokens|vLImaybe_wrap_else3,JLBfIJf 0 \< h a 5D to_tokensI2'ڙ>KPUkHLM j`|8(Df to_tokenstd,Uzp.)D?+O!r to_tokens^rϤ6QG|cmBs~\dM-h\A to_tokensֻw c_Phqr"O)B+ ZA4g to_tokensT8BG0Û@qW%{fTYcH_DlVu to_tokensIa'H?dO,Vq3 0yu$OUr to_tokensXhΚ*ǖ/}9SZ{XPu to_tokensmUwoԈ_AtW]6z to_tokensZߦ ,go+QC+6 to_tokens~UO*w~@mR-t to_tokensw%Bo{Et8<‹. to_tokens");LO=8dH GEV6x9Ɲ$Sw3 to_tokens2 uk7Deםm5 ;r"5D AEqV to_tokens_'Ap6Uo˱#k\&'R' to_tokens[: H^ͅGTrݡU3 to_tokens +'ԋܲIz7w1.(VD٢H to_tokensnxc7X*AAl+@ 2# to_tokens&m@*ĝ5߶d;@]5G to_tokensϟA :;T]Q 2Zږ.~*Iq5 to_tokensM9jɚ#C#w LIh:͖Qǧ=S to_tokensbZ7;čz"!%!UF R$* to_tokensW]k*"W'a~D>V!h- to_tokensq#pXK7# & wyDZޔѣ ^ to_tokens*Ju7M1$I_Uyiʔ= to_tokenss^H6N*ęEm%ޔlmh.  to_tokens q*h9a&v2S^#d* to_tokensUpdg7G}E^f4S>^1'J ӹ@IV to_tokens/KJ <{ ^oYKӇ(xzG4@ǂ! to_tokensjt+M_RE4:p'q%) }鹳)X to_tokens!3Mmh|D2v >y2*ךU 7;jy= to_tokensdBır2;kܟ,tDejr{ to_tokens29lC'ӫD-F7դ to_tokensxK֍xU:v,_ƼǢ~QH$2#3L6*KWoSrS#@.u#o,ύmR>Q^G|g7DPFђ~ 8G'j8_ Sml6M =%A>^Fg'f*=° $2( w˜LZt%ڿɿ!wis70C<bN"10z1cğ#:r[?6R$ {p%oγg}Y&jhqP¿Jt52L7+Løہ-S8 pa(P19KuO3:HPT AmIU;]X}fo%R?=X`:AMȝ-> vOC{b?H(SX;eW@dH W@Ru0ARXTroBleu$|Cz[(d'f Z7@Dr ܆5generics<8t_oA[0_7h~A'aV=c~F0>0:,n:0]7ѫQ]_@B?8'a֎%` ɼItemc;QiSnextPrT(Ї @ TypeParamsMut<$$n 'apֽ^ E0K)_ZE`΍x&U73split_for_impl;^,Њpulgenerics_wrapper_implsXYc+RM P,  zlmxP'aT PH%9?M as_turbofishN\D0rӑ M%ziT3Yodefaultb,G $}[Bt%a?new Hg^`٣$%= ^3vʁ܈Y`fromnpsi$a +parsingcr?T*p$kۚFdm2@dtMNjTM]Xp^ފeHGw jwr&x-%'H$}|@20yc8Mu_parseT3N)/Ưɳ8:/|JdrparseKM.py5Cx ld9"Xparse-#-L;P.uг( 9parse"l߈NB}!!|parseGdpl7&81!Ou|?parsesvqmk2g",P&[:parsewyD X XCy1s`&0 Bd_4mwkHII M7S4ڙ|u ǐ?lwf0Q+Kt) to_tokensƺDG2' \|~C!R½\'aSEP0|S* to_tokens/dНYx'~!HK)kzycc'a,~'CV2 to_tokens<]YCv2l7XuHjײ.'a9DpFЄ#Z to_tokens2J3F䏣]'fE to_tokens>sM3,ڄ"lu,^ffs8L.K to_tokensoŦgeYkJU" dA to_tokensSVXR,^KnϽ@X to_tokens제@oz6vHf"᯳rޫBzHp_9@# to_tokensA5$QN  I C2.Rl to_tokens@$Ȭg* ;7 to_tokensaadb"  j,0)z to_tokensjڛtW@FT % 2A>:+C to_tokensPީ: Dd҉ to_tokens&)eUգ'ltd}Fc "G#BIK<֦H,M$%wU~[wI2v4o{eJS4FȞ8{ETK $/]Ldt$||atMbacO ޑKWN*6&}:TO( =GH.Pq5̖v{QY&R$ hK9xTE S=Ҧ8jDٻTFx?\ ;8UZ#aR@d.VJMy z W?.xAX$ʮV}gqn%item4^Q2AIw$E_6X)ُ680\s7y6jjfq#]3$^'e}I+n>İ/BdcvwZ$4PЙ:AY?ZH0< ƕbXl{q(X@ T :Mq uBU>ϡPӅj] YTj replace_attrs /qW\F #Q fromGDV"w`o@z~0N[ofrom ydۃVG K_5vHXfromuߠڛTU/0ys}Ro)E=fromk"jW>3/y<Z*hɢ9)`}JreceiverD:0A/_`Y1 g Ilifetimexu͆Rw͵!1parsing9 +9!]FX<\lJN@ˍT'.Q)2t@r0$E.scbP:҈Y٦W*Nn+Pv잨EpfJkXh?-veM'CܧH,M6'?eV G-+K @5{L9Pk$ J; E  mY[q(TP &>m ݐ} l9)>B'G;!Y}ڐIڤѠБoKGp# "lh"51^;gSvVd3{yparse}@,T-&`lhFlexibleItemTypel9GjW ؄viswǥ{' defaultnessΡ3W`OСɣ type_token/mc%. *ident234r{l'generics#"WL5= colon_tokeno~n>2Cbounds`Co-C@Tty,U՚h+ semi_tokeneLO ) Ykmت bF̂parsexSJl[@;}rkcHparse9MK`:em6U9Oүqparse0+ow:z:DX;MparseA Id~*gDparsej_\.u0eF<\z ksq'3EparseD-0bD4MIS2ϙHparseWx%g2kf':S]SUparse;.JrsQ pop_variadic\ŵA kvariadic_to_tokens&ZKpeek_signaturen.*_5 V :'݀]c wparsed 1kս u ]<9PparseC dparse_rest_of_fn'i>۶g5^ bCL5u&parseJ5e:Wv} w7{AaparseB. |-}|Q parse_fn_argsô%mLJ^Q fn_arg_typeddj'4job{P Tj.R7parseu)[, ~=߅X-N, parsek/&Tqp%N>o@[nparseB<KRXc Hzparse;2.N{N]Mg.w"vFparseh.J#parse86D!k:=EevҌparse2 g}<parse_trait_item_type~=lljER$LAX{,)parse퀥Y|+F[(6 *&:횛ɸXparseP:/^}[+sPe' parse_impl j& tIxjUٷparsez sd7;=7/!PN[Qg,N Zparse]HXC?iY "~]'parse-){(Ѡkl'#LXZJJŏparseG :Y]k`parse_impl_item_type@,q;,ptØ$:כFAYWparseuwө5r|%O2AAX"57 is_inherited<@W]'i ;&}0NGB#tC Bis_braceJho6printing}>o{Z1y\g>!X Jq2q&V3₥;@};l@uFȨG0GM A"U3)L$:bDpƭ mdzJs_ b62dب D^ to_tokensܬ5,NPζTZ{ to_tokensf聑:yol*hȳ` to_tokens*`\m',[<۩H to_tokensU6ɛZ#OSo٪*a*Ma#; to_tokensƀ;sx c5~*}KW*Euf\Xkԅ to_tokens&4= Pna-[RM;+NˎK0&˱S)>Ɗd to_tokens^BOK1W͑}*=kN7?d%|P to_tokens J9wfqYAO{h\b/=mc^ to_tokensbN6#J]L_p؝ 8 to_tokensҶ'!!OO%WJ!|aG#*tCz ߴW to_tokenshNxwoakoN̕ߓ$*S~H s\mϙ%4׼܄,N)ǟ{` to_tokensHKX=[0-./T v99 to_tokensЫ)ȠM}d;,*O-;} to_tokensv4Z_ZjN=,iOa to_tokens=e u\C{#XN.y to_tokensvUCZxu*IRzP<gU ldU to_tokensWARîݓ]]T2f̯tAѾ 5s==S to_tokensk駫 <;\ K-cCDg}E to_tokens+W{:z@SqA5TyS;lԏ7mo35hT to_tokensYFkӓfY< Y~qd#&`rh to_tokens@Ͻ!k`mVxMe~WC8ՙ U  to_tokensE'T%n2~ARM6l_F to_tokens9h]r4H؎:8ł|]_3J)5 to_tokensj"nv:R삵ɤَ  to_tokensZHxR>>]K( XP ڙ  to_tokens '[U+nȋYqQMx  to_tokenswE,IqƁ4(B]m 6_ZĚ/ maybe_variadic_to_tokens%3= ~"|i !4tt! )J  to_tokens+-fkS.Βc Q(!":~W!Qdm  to_tokensY[0*.+OEpY8ᶐZn#Wēp[ 88Vǥ J!AR4\`&T_ 1r?]l3!AݜB^Uh pq3^`_:"58*`yXs)kGW"_a%hGFij%R^%bh+Ba.w?cH7!)iup6,od>{[X3ewR"g+F(0/fCMC#Ag~BC!b<9h``)sg,WiƷ7BPH >޴IjT/t: S~kuT;plFķ޷;߿mvz/ Nn] 8g ~o69x[z3Dp}jjY:_'Lq!>61I3;ArM׋yPr.He.sSV__xDItL -mueU#e_wd8vEVΥٕwYuloB$ER͐kx7W>&º0)?d3yxD|4,O79zKJ~@/{|IJe*Eeg|r}8 't} >/03.W]Vt~pz;V2mi6Qt¨xRv$zB29_k/H{*sBMw 2"qrbfile#0zo$\3O  !iA/ ro3We(_Jz  to_tokensS(bNPE֘p;Jzlifetimes:bal P oxwْi BV͠NjNI o'҅Z Ecж|@:A C寛1 ]_T:F1*- >K\ONU !>{ 8<,F-,Y]  OE):m  G *' f LifetimedwqPɂujΝ  apostrophe@[Lc! ident@7HMXwá ިԞ"3VjL new5I8Rھ_~ span?9+xo{2' set_spanyH;}|& (/Lo2 fmtcSe؞X 7`*ȩWJD cloneb4SouXX q{N<җN eqfs}(ђg }G=&p\6 {{\b%B  partial_cmp}7uwI Q^=k}ݿ cmpչ䃏׿j a<$G3=' hashbT4_;- HqȚWxQ Lifetimex#6q[t>ȓς^y zQmv9#? Xyxow5e\ eۭթ ~\0ݰ}u|  o(LUPnxC] *JղbLf 6B-E^f !^:2^ύ:  to_tokens#o[u+h- ':YԛXlitDKkߩ "VnAv! "ׄT>TʘCM \;)U o'y_r^AFW % cA26#s 6d'хt 4epF/Q Y%OYnȡ ڏx  s=o`m,ܻ   垛jy;r  {(5!  \m9~‹ +  ESus諷  Ll~ه<@(K $>." ,Zr+@4k v<xht4 㹞x[jP%X.C LitReprb8/yb TtX~  token>J(5 gHK suffix\wCT2V;Pzni  LitIntRepr.e:Zgi~ token>"3f쉌vQώ digitsp?TEryh  suffix2tL G4>㡹u  LitFloatReprhݾbf token_,dݿ digitsTTnǼLŏ #m8 suffixˇ`!lm<*" IpEІ:dR@S new82qK鿉\, valueF{à parse䆾R48Z%z*fʼ] T{ʅլ3x;D  parse_withu}aO.= F7ڽp7.FZZ :YD] respan_token_streamܕI$]4=3 d:^s"X respan_token_treeSu`vhJi6 spanW(\-"ʿ& set_spanc]=I  suffix-7-R3DC >>e:= newdZ-jv+2Q, valueP xTpR spanFdȼds set_spanCϔmx^  suffixh!(=GEdnzs7 -0*a}ruu4 new TPWMpZ2 valueU^q٭! set_span}!, ;[ set_spanNq/Jbӵ(~ u; }?4U%6 from)﵄@8S5 t7ΈOb18  fmt*g)mjž3U >a jP=,  newe*-Gy+  base10_digitseew,یm>ϯ  base10_parse|zAڗ NqWJamw] s5zXٹ]!q}h6灧  *KY>K߲\ cloneDvt<>  bh45J/ cloneMz?5iR lit_extra_traitsv0͠F>OU2W- LitBool(*W?ᬛ-&uUK Litj*?O# parsingB$q۞<-} 'iln}YYin ܇;§2di| ܺB/C.3Y )U,f.sq 9ľ9\Y ;Qm*N -U V?7@O5DFj e t/fU&  to_tokensb6BHdZ O;_?^d  to_tokens̻ PGIJmL Gb)ɒ5T  to_tokensÖmw# Jib  rȆW\>^  to_tokensTjdvcǏ, CȮtzIRy  to_tokens[Z So\Rdo 4 q S95C  to_tokensqGDSu&- valuexesr }Eo P4N |ÈÚ 2:ƇTm /m`>Ł GV/FSу 0(p(-&lȩ, 8☲jq95Bwkb> fsH؟ new2q=&{cI#q3 suffixEQO,5;6z{ spanKT#4I.yk\ set_spanCĜ, dO"e- byte_F+%">Oe SKõ4Tܭ1#7 next_chr UZNa<`  parse_lit_stry葶䔩2Tc parse_lit_str_cookedQ6P[2$q$ parse_lit_str_rawD_L;]4cB parse_lit_byte_strkg?tlq/dr parse_lit_byte_str_cookedqRy,2^v L+ parse_lit_byte_str_raw[)L5Hi ?cEK parse_lit_byte0$4O parse_lit_char1X05OSI<|͸  backslash_x":)!" S][6Ml   backslash_uWӖdyh  parse_lit_intY_{d `4m parse_lit_floatPb x:_ 66 :7CO xN&i  to_literal6 @4B ˮ9(1%Aki ;à X b ж h׵Yy DA-־'r{ wzySH-]AV |$6uKAF 8]z(vz.sfkH]9%zšeZ A,b!Vщrz^C^j*a{f߮IF"QVr8cimaca߂Rq%i8? Iu 6R?, # r=55' ܻvM 54 `Dby~- d &B/Q!Y ;j!U O ZNMsy\S Cɝ"rVM ?0^ D 73?!rm4T  gƠWw~PM:(  5{U&[G@4  c/l(2i  `_=  ΐxE_PPLj:e hq0 .%Z ՄsV:Ľ:(| delimiter_span_close"ixMea <"_N)eyͬ$Ệ  parse_body֧_ (혻ob y TS_Ljw̗BT,S parse_body_withoFT=ty@7^s F<Oit9CtYe5 parse_delimiter+W3 Κ={ parsing;j`ǭΤ id"N=sZ 2.V'j^ Jc mC\9{  EYz061^!Λ ?.Zl]ao^y ʇ8 1-TU parseU[ oqn printing?`EGVwW’]qnA  XO kSP"H uJ"G_,## %}m'Bjh  to_tokensAuʜN| d07 a͐#4 (E*r AZΜ1*S2/ 邊"v2@j'wѲs?(!1_deriveB#ʣzb* ԓٸI;=#I6o E.TV} < parsing4$u<Õ9 :]TQÄ ˞/ʃw)\ 7gXJ![ 9pҸ!7 q!?M1j  hEXtr[ parse^\z@{y!  data_struct)m ͜:ǎh|  data_enum?GebW_0  data_union$ͲiNxMgr printing3WRPo =? cH7 CΆ˒ ^R~k=> nָףD4U >T Lɩ~`u I됹2< oF,5dHs  to_tokens]p k[=_1 +jBf,[,z_: idI쵞_Jsw{Qk%<uf~ao *+|N6Z͟T' parsing3d"-J‰ Ʒzxcʚ{3 rP0%VcKL  Ҥ<{E du owÒWqj 3-5Xywk "],z͚ zZS֔ oG)h^a  parse_within2-6U8s >S+ś2nf parseJĖ B\P(~ #7mNu-@r parse6݀5r)G  parse_stmtM{ξMk stmt_macS%=~fGT  stmt_localB-hsx=V  stmt_exprϷx;rV_ printing2TcjR 6@ W(̰] B`nZRz ZD+2r{i> O0Tw`_ P_j9On /ʴր1-)^  to_tokensH!ܷb^Km eRiwm~ Z( [Xf6n   to_tokensgY/?&n+ SͿ4xZW  to_tokensEWA}ZXџ0ߢ5_9\|JKU~j w894'Co2f StyOagp;/ TE݂:Ģ I]f}V |؈3J parsing YpC%ƪl H͙X ʉG  $2M> .vv{^7 ,2`- OM\bo/_1 Rhg .V ղA9 L)K'lfEV @ZrmÓ  ,S޽l HH  _)XRf#Iq. #s%r%ǐX .u parsehf[;fY   ;\Ԋ C  without_plusƑޠ۰$ ambig_tygW-xɽ O[W parsef'~ қR$Dir parser}HAN6 nXrY9ź"2n*< parse0NQTuGO M<.8$[ parse>BS!L8UO vKKKnX; parsebu~'ڌA  parse_bare_fnr"(6Db: m7ʝ01i8 parseoW8G9b뛑 TXK*k parseiV7ԎP  =ɛ/~6fҜ parse{EȆxD  G,Ұ91. parsei}<f(  J| ц&.o parse.]WRzg pp\1[  :+60v2  without_plus>3oIΏj parsepL^?P?V  `b|AKi parse parsevPSQ˚`7#  parse_boundsfW-/XЙU XӫnT`Khu parseǽIVLx  u% &{r  without_plusj,̻_Z 5 parse'v!>5˺ <4$⃪_~ ` parseXIm67 ']01 parse >-e36Q }3:e A parse:&{l`B z6G5rvV> parseK;Ȋ6 parse_bare_fn_argeDWU=& ઓ ?%!rl< g#g_7 parse3A|Eq cwD parse]p3ETS printingb3NsAG|c Z6LD > `($<כny\ g\%pv|  KJ;| =+Ie #OnY #  $]/k -9f~ %  to_tokensKUtD<՞֫ ތ>-œzI M>j6:;  to_tokensOrʠ]B*1q[ Gu-y jSbӢo^  to_tokensD./R[MUL$ Q]?|  to_tokensp`zIvgo .=mRl  to_tokens[@4JQ ,Szlzq  to_tokens*gO~юҊckd >wuD 2E  to_tokensHx׮jT*{6  uz.i^x  to_tokens;uȈCw  tp|$vVuQU  to_tokense[ˏC^ )z-  e-e-  to_tokens}_~y uP7L)m  [bmJG﫢&*  to_tokensqIE~tGɷO  1+ɱ@  to_tokensY`@fDe^ M\`Z-T  to_tokensEq Ɔ2\ "_Lx/>  to_tokensgtuA(+P riGL}s  to_tokensĥ5^\߱#' }O?ޞMѝN  to_tokens{Y*J88^Ibv(t v,`{a5b%g(aJn:3k< l^'\/U?kFIQ@d~Y}̮Ӈ+mo|Md+|?ZZ8:y=bֈe<'YE\-ԧS_zN洢/FwFLm]>qF H~c z[3.[YO GV3u&l~ 2:$foZ3) Q[LC8/KYe ;//cfXQ#fLfo̎pat0 (ľ< ,"YzT x3 Jݑ}M "I[69I2xo parsing\Bt9ۃ 2 %nr6Y  7?z/jb;A ꃺa?~ ?mdѫ T9l} N+YW6 r\6+a6Ѹy ¾2Đ(gR ǛC_i  pat_lit_or_range:?K<Զ  pat_lit_exprÙXiTg8F  pat_sliceIRshrf00L  pat_const :fslV^"  multi_patŊsI1x y multi_pat_with_leading_vert>Խ yt  multi_pat_impl(e() {4 |Ҋf95m"I"!ÓYGhln% X.1~$&sXN\oߣkQ""4zdBXVa͖W\Q;pathC*QE)|g-h27W]?@h5Rhֱ->yl=Y'UGlparse)%<-q7. +Ju™uX_parseOE۳const_argument0UBĘJY` h parsel0?O j}g04A|fd&0XCgparseD Q1P"0g9g?ð19>parseJe "6 6n Al`BX |4lj parse_helpergJ& w1= 3͸\c cparse}uJ=XboPTd}9parse{ـC}6*ƭc constraint_bounds evWHdg !B"v eFparse_mod_style'V%+2Eis_ident2q9XY'oIw to_tokens;ŐTTgDr.+׀yP|[,Q>Je5 to_tokensEX\s@oĂRϾ to_tokensw"6I8Wmr to_tokens|clzKa_ d{hf! to_tokens0|[y%ۣr賗Tw.dAa0e=| n print_pathhdp^Lc&﫳''o#PnjT8YkB}L[cD?&h;Ident i{+7xKsy_3N۴ڪ.0i-ZʄZC,دPunct;| MtbB5lyO!hK]5P0qԈA!ہ%LiteralVMu-ymZ"[ NOMu20,}%C{UEndF}\1)eߊ|,7>fzy02($&Ap= TokenBuffer]=D2wdata`l8X @N5n8M/ inner_newxmffx Tnew ^Оsp*GGnew2H+Ŀd_{beginI!'vlXˡ3vCursorوK1Ž[rC`='a]?#DZ#{ ptr^44e*Nʍ^+w:' ~w2>shF4s5ȈwNpaiLxܦbX@E =фf6IdentExtܧ~SO;1jl( parse_anyZ {ff_peek_anyFV<]([Tunrawj0WS쪝J;+7L parse_anytB~6wNm|Ȱ9N &PxunrawZA(ɻq6kB+M[S˿TokenA(jf&~mSrM"mpeek k>-`Udisplay; &!;private 8 Wl$*@r &q]SDh<ؚSealed (Om>E.IHz%:PeekFnlh=_5zr Ίi IdentAnyѯp/"*UWZK<˗l$Щpclone\zޣ punctuated*@{$H 3@svKJ+8O>ϼD%goٓ\Kbc@|>\,26L2I($ Iz lB f.0Vv|gApIToP东_lQXoMPN:Ú,pHextendnhw(~KTΘ1Iƻ&PA1-jD UToTZ n=-[0Pc 70*A1 from_iter;I~N@d]I{ݶfb rf{2q, xqmPT$|[e8&l@eP5{7>Qfx[extendb{mﭸhUI~' 5:RS$(mhDŽc6[Ti"k|r< vWPDQJ+F ItemXA5lnG IntoItercT#(B into_iteryh۝n诸9:Ѕ\436FY AZ,{}~WN>9]hvi8'apd8U{?<TUe o ')^ BPI`f<:WDItemazAS~)ZIntoIter a(wVյj7 into_iterގY8@Gq~NK剩b,A]Hw>'a(tohTtyxtX'P(%PPn{j3S,Iteml7.O1jJj."IntoIterdSJc#X into_iterqZ y=|1K .s⤜د\zA`Tb/f{PYآ1gGRpdefaultg;>:k:Pairs׻0,yA9'aؾr"I<T+ g"g4 P_Tr7PyVN_Xtinner| 8 WWp lastQjb뉠Z .,fL}4m'adL\+ٟjaBITa$$z9eNPG~p Item.cO~.\]GWnext7!l|.x\֣raw!S6ֳNɅv}IN A size_hintcx|k\U@s* \|./V2a'a4|u$XzST-]M|kPw_O鑁2 next_backǬPM*'F8@Ų KM(3U Pޞ 2̼WMKZ'a}Vëw(iT3tBΝ!*Y4P2U Y4AMlen` 3C]bF[ rGvٜ:E'aP]oYpce eT5'&h=#/P0NPairsMut}|NbY\DRx7 size_hint1c8=I`n__Stw`}B^ʽ'aE, e?e/TKޑC&/]8P2@_osW next_backȉ_)Tyu(<WlTP6X^{3%PG=ίHېuT+Q:;'a2I[㛤$|>T Arľ3PJA rWN>Wlenߥqs/߂:4f IntoPairs?dۿ"ƔP(Tť{'HYwRbP_jbq+Winner[_^"u:s]lastG%aW`rF+ 7ז&E"|RTEi>SL l8l%P&t {(6! XZItemwzVF_^nextdlEN,˪~lu߻Ӳw :Z&'a.܄C&i(gabT+` xWr_p clone_box9&L{?̄w- PrivateIter;:r;$p_SeI3'aa-Kד3u %T7+Q2BO"clone3]iHSˏU8~1Rò#]'aE vި T)ʟ.vuUItemPn,yqnext`  Z) / size_hint>Z^do'2V4!N'aO#oOc͏TQ55ı]Gx next_backy9;6d0`Ԝ85'aUVwlTyTi^DA`UJlenuE^9=eW??!zvTC=h'a:\ҨͬYsT^HȖ*G *9J&PMCA.ItemnTѧyf{%}nextP|Zpe+2wqpi|~qJNC 'a|j3A9dTNB lJROIN2O2W clone_box ˜vV'IterMutGxL|'a+nbyTYJ)=\؎7Einner(P$09S IterMutTraitY:#<Ͱ 'aq+5 ?r.7Tb`=o<8 T PrivateIterMutprp֮\٧KE'aeGLcN9T&F1Y/7UP#QU innerPkgzlast)Fn*\sNPFempty_punctuated_iter_mut8.)?-Ͼk'aBLph8~Sż—Ti"i#"vrXz"%!8ߌUh'a(gtmƾݺ|/TРʦzp;ItemR] 9ʺ LD߯nextKu)X.w, size_hintC? e \ޯf\#F?`^ 6'a+RL>TE!p"7 next_backs)Lb:6$L̀Eؿd0e-N['a?3xEWJfHQ"TD/ⲱΩŊlen=y$.zTV%N DgOx+~'aqY!qçTy/}kRanP3}.=qRiItem@rLw~د5nextNA#gB:oT6C>y ULA8&_ÉJ\-fa'aȀhxTXڗ<c<PHJI;@y)T1FA 'ĦH1d.7'aS3nsT4PTl)[cpYPp*2lL}c0,R,`xk^"<)I-Vįx<ZT ?[[OsP& ]$^ into_valuer1O=c*f7value VcPHj?OutputSs[0tZvEindex93ee۷iu,(@"[>ޝ6VTnׯT|M6hP0jb7uc8ݑ index_mutS79}\D ƈprintings`1-uPAbKH{IM򔳴Q^*ʹIAhVK ns %A&윁oA\]i99juttTS*"6zýܮP;qrPg to_tokens#[/H 02NPؓ_Z=fWTCEg~wP[ړe+{ to_tokensry?DBd楦 parse_quoteKц{< parse_quoten('5U+3ɩ0$@ +a@"\N\ kZ3$k0ms4V@l$Ot{#{{$kt;"oP!$-Fm[vparseJN?#PojT^x@7H ParseQuote& uΠIparseU@Y9k @bgyiڌ.Gp&T5*Hq #T 0parseOג$E]c5!qHh+6_;loz#ǿ \# =_C?Gfε|AG}+ eLX#[&v*x 9L` k q^yx68+8; 'xs (V0wa9 L耊{ZLK ]{fNW9 x wtT_/e8̍ :` >dR#twq |̽Cv)w9cFFF>g9MbNirQRf0STxQVnTH satERHf[]=_quoteOGPC#FLXa}s V ![ ^J1OKXW~D?b`p}T%q-T=ٝk3ہ_*N!rPpd,fn뒡˞rbool& wQgZChstr|>ԹܶE_z1helpI , 1|CH Bool [_=]P2,Stram9WI,J`privatey2 kW9<gӸhG^0.ׂFf |custom_keyword4]ܼ gLcustom_keywordq0+ "Zimpl_parse_for_custom_keywordf/ ~!impl_to_tokens_for_custom_keywordN+`ŧimpl_clone_for_custom_keywordH֒s$impl_extra_traits_for_custom_keyword$'p{A1custom_punctuationIL<%`יq^ \custom_punctuation*&eex!impl_parse_for_custom_punctuation13!ꕇnq%impl_to_tokens_for_custom_punctuation? 0w>wz!impl_clone_for_custom_punctuationWDBQ';~(impl_extra_traits_for_custom_punctuationU8bS6custom_punctuation_repr EAP4ĩ;_Gcustom_punctuation_unexpectedi#\7stringify_punct(upNS8sealed:U+=Mh#h lookahead됔2_I31m Sealeda7DAȺ9span/@Pω&6Oٴ/f IntoSpansohC ~SK q,v %[T into_spans)eh(2<.H1ֆ> ,G@-lk{  into_spansMˑ'hm9KÁ ~>m( '_MjB IVg\ into_spans|31ҍT# N}_ oj9k[³VbG~'cjQ sfV^3&x into_spans1IǧO cp==]X$ into_spansϑ¥*$^<~1h+ is_delimiter„brBNѰb FP,w`KFn MеbZߧETHnNƇY KNparsens@}>a discouraged ;]aa>f " ƞ SpeculativerM,6H|? advance_to>[AӋHuD5*Kr~<^'a{v#>5E advance_to3ohޟN"5Ꟃ1.F}kc5>tZq_|n|ر' L%C<2 &FrbMA^;lG'N^|yl D61eS"K{,e[YC+er|Z'g5qV 6H Ɏ#qFkT Nd0|JVXJu$ %>})y +/Bp1d$Z&d ]hk\Uł JO2غRfatΖ\L's8;`(szqhA +HgͱQ2\i"Т [R`+j;?:i` P LVcSw ܛ@<(;\?w ihbt&i+%kD>wJuMI1M<kA]@kYU_2G8Q־n&' mMk(=>wZxfI{OHsZA=4%ꏸA k'ꕜSParseh~h4ye#parse(RU~5<Ŀa ParseStream xZ\{G#'ay*=͞X ParseBuffer]nξڲcM^'ajuŪF>/scopebtbW`^o2yI"cell&z7W=fmarkerB@wEEى?F}]H unexpected+ꦇ^`D14p 'aцIk g.drop:4[ rU@+JXM>'a?L'洌軸fmt- ]In^@ !g*E w}'a"M'!d2 o2cfmtMwkkGe StepCursor޾<ɖ˪yj'cַpG>'a&Usiھ scopeHѣrF cursorlbgSg-^9^marker+a$.v4Wgh'cmI{#'a\X8񃇀H@TargetVGjMderef w;DZoqFm*\~XZwM&/'crޫ(VB'a:}1w1؛Z TXˤ'c 3j27o&~+h'aT ]{yrWjcloneYϢ/Eg{}8D[9'cJwnA'a\y[ ]%1QSerroṙN8ܼqTli/)advance_step_cursorg_*s F'cc[FnM(Yr'awVaܫXȟcnew_parse_bufferS%2Mv>i>. UnexpectedFGYpZ Nonevr#qE3 ]œ-F.*pSomeWhrY]A7@ٽ7u[90k .<Chain0],<2AX~:RAKn460Om2k 25;5@.Y:F`fɘ߿defaultwO|Or'e-\}2]clone{Pj9 cell_clonebCV( ƑT[(Cu yinner_unexpected˼$͛Rm۴-get_unexpectedǗuVm?S|!span_of_unexpected_ignoring_nones$3#G>z &t'akdS{i-5parse6}[GM`3TM68L3Q{Ncallgާp{'Bw/TV I2kpeek+-f7tTw(ުftpeek2R"SyٞqktT?9c?,0*VLpeek2RSg45peek3;K>?_TDLFF]]hLpeek3u4lcDqparse_terminated&Q/ccO\T(JJȭ6lkP2mHGSuis_emptyMa/j lookahead1&xcs3> ~forkL"~N'cV$uߔwٔn'hwspanSy:660BΓc!cursor}L ` Rcheck_unexpectedgLZ!t^8F W0NaHHMTؚŝ)6c|$parseVh`C Tt MvR aET?~ ɧbQ +parse*: E%[ Vparse2~L2hZGqB__parse_scopedʱ-E 4%e__parse_stream T]& w:2; parse_scoped׳LEF =㈵w Ɓ parse_stream{Hx1pFQ̹-$rp;NothingP(HB|T[BL{\lANq+\eK parseN~e`=reserved=z@2+A%l2v+byHC)2$DnR'defaultn7X>orZ*d)%clone J~9wqverbatim ~ՒgBuZ1尾7G<8f\<"!k&&{r*|)YV܃c6VSQyvе˸ɹX .Sc!+sZ Abetweens9'a4Sv<;N[8*printAWC^A|cc(E1]X I L!ߕuf6TokensOrDefaultN L`zI}iיC C,g9['a4$ASesITj{<֍ykޓ0h?y9W0Oҏ!೎{ Ŏ+B|'a~}i D~KPGTr$VWz\V to_tokensm$'1ϊ|u;لB}rustdoc_workaround#X/ɭi2M.\^H;Sm|Gc=8[error7 ;~ º"TgD oPaۀ^qc)[@Fi_c *IpgΑ3.k;X+WɳUݴ5ti`ܟ >~vWht +! e}P^ ~%c30?Jk 1=  \zԙۊj0 gz"I q1ŔECh7ToQ 'kH6Npv_]peekqAAfAJϷdisplay"%w 6 ww#9Ha!)$U{ A92ciN_DPpeek+G>(1wpeekҧ.95V(O,displayJ=+RΦ9(_7*M9NcHv۪92peek`>kHpeekK eZ3+ ~WE6peek-|3yGjdisplay]Ib$tq' 96ϘCXrf ֏u9v*({q>peeks otpeek/sJ[(Pթdisplaya!g9:e</YP$9HgD ;Qkwyʮپ畣9-MƮ᜙*9%0?) peek$vA[€Y peekGs2Pٱ@DZdisplayi;xZ.V)9b' [ Z9W2\?+jtpeek1QϲG.qdisplaySH$ˆӁ-Fj9 IkxLK"b9!pip3peekpǐ OGUw9displayQ/ P)W40O9"-gYzh`N9#Ѱf _>*]peek_SVm5/.ܫdisplay?6cwCѮ8#9$]cQ}9 Underscore 늻`S0M"spans3!=4 PR fI`\s59 Underscore/HnԁD0$SZaN 4U`˵9%lօϧ!!{default! $gSi&<2@ 4|(\Thp}}Vn9&ݽ2@ **n'9'nE6;|clonevC>BKfs9(@CV]B&{5Target"zOV+ڗ˶derefC[ג%oaKcӚ9)K§/6%dkH deref_mut Xhz9Abstract\sõq!Vspani(r~9AbstractbQ pCo7S!4g2 yk }wr`5*g+9*|v!HӸdefault@\- NX9+2;)*<>y9,R5q1 ^clonejllQ9-L!9D{" 5 to_tokensRsݤ 9.tD\x parseS>Ȍl ה9/PmA~7peek;3ermq_display %|̮5$j90p]U;q{d9As9,-S Yspan=Ǫ9BI9As pRSd-n>b <parsel1?v)Y9= pߝ6peek7+đv$idisplay%:dN 9>soO^2Æ^9Automk7ޢspanWf}%{:[~9AutoSh4N Sy ՙj9span$ =a79Await10Y]B}G)PS$H4 -j|"m f[qdefaultQ=rmTyc5k9GzM]٣*|L9HW~1}%clone͐Y4#QS'a9IRYomЋ&J to_tokens}4HРi"q89J|Z[Uڜ*parseAvQb*w D@9Kԃxw80_:hpeekƷڒ1z 9&zeQdisplay"Vd<zүs9Lu XRdeVu9Become`25WnʭspanK &lB ~p9Becomee uG[_]Sߦx޼&%u|w E n/SE (5:9M_BQ4default.ڃB}&إx9N s -DIDE=9OKebclone>$0Z[,:1U9P|y\,S84 to_tokens[BE&F+YeH8i:9Q/Fn]wparseʴ7]vrc݄<9R]ˊorNpeek6g@%display> MY9S͍_&9Box }Yu7ҢXspanpF`mSȘO9Box;nu['^3.|S#ANkЮ|} 8ݤ١}\9TqXOme]|default9ృX;~9Uk|&6y!9V",qJZ6clonexro{.s9W 'k=`Glh to_tokens dY;39XUsԅ427|LparseyF9ri s9YJye'®peek,t6displayH_(=q8ĀgU9Z,%yZ"Y$9Breakz)bpɑ ?CpspanaJP9{d_9Break;]J!OGWUSꁁ9aU=$7i9ConstAvȉ$[ \- 3spanӧCUG9Const>xDZ9 S &i~|8'¯ *F4R_[fMY9b(/Q[ 6odefault@:f2y9ce~/zh[ /9d02clone9ENI9e_J/IVv to_tokensA]<{N{F9f˟%f)<܄9h}DLA9ContinueG2`_mspanu #2MJ:9ContinueОBrx{I=S(2=RD&ͭ N,x܃,Kmy9i >6轈default$ZQ&he9jÎD,d19k8$> I=Cclone%P*{L)ucR9lPY_ܨ to_tokens˿M.\su2u9m 昘AV2_<| 9p`^g?defaults 9q p7Z+cTA@9r9br0dD4!cloneRp5uGJL69sn6Ft|DF:I to_tokensp ^fW"jF"$9t}&3@o_parse;an ǬQr19u l=T%Qq>peekcۃ 'i~${displayC&C aqL|9vhvU!ƀ9S Ssé9DefaultՈ|5 V$span [)b$)NLSrOG3 .S>~! Zobo6nta9w}C̙âOdefaultstN803U59xb{)@7A9yŴ)*OcloneӟrF#$`a|D_9zK9\ hq to_tokensdKk h/Mt49{UM% ]Ӥ%2oV>parsexj-U4Q9|YPDa"HfapeekŃsB}POZddisplay r֑h|']9}roh$A9DoG Ǘ`(='*span-@>=F69DoJ4 %~u:Sɋ7Y4a; >a{,ќHM~;9~~`E߲~Sdefault1͹a1+\V9_*ކV4 9*w02 {݆clone ӗPbzk~J92&UW=$ۋ to_tokensQGooi{z9$xoL ąNparseVH/SJU+.*Fqf9v5`i;cloneENmwϋ🺍*9w-5аH to_tokensi~vxټks9pAͭJ$U{parseib,]=IrL4=9τR9g^peeko{Ye|displayC =9pˇrcen9ElseЯG f9span)aV%L39Else[ŏ RDSWˡ c)i 5. V<9d+Lq|defaultE?b{Xd9Kڭ8X)9#֝dV~clonegt2>pL5{[9X `M display&=(Wsf,y9+p--:9Enum>a>x"!†spanha{JJzvV9EnumՀF\SP$S)gM+ *hTV3I*oW9R$ z >/B hdefaultf}Yv{K9LkL#PB 6y9,6֦9}TElEmparseST]@HD9V$neXpeekgbπ[5t-display5vJtFH9% 8, T9Final{4 span&F~Ht+rx9Final5/7-8z3S]EL rq4 ģ>P92_default2+ f99,f開H<9L&%b bScloneßWo]##96m溾+NMb to_tokens%m@`H99l%b'parse:F~8#D9nQR kч5Wpeeku<y~display8]{]v¥:9d.?9Fn_ы-g2޷A7Cspannl~ǞG {H+9Fn_6Stu;ȭ S+~P@( FeIV u d9}ӢRs1default x\/`vQɇ9xnn_Au9hcz}Y2[}߈cloneUg[ZH}[ŀ8`9rr#=A˚n= to_tokensg@ur.9Ĉ-5 Hparsep0-^G8N'j9!/),peeko5UPN5display&1Chh09[5Gmey&D9Forÿf$ݢspan"d]Pl@9Foryu0¿?xSkЛf![*( ^A}KJ>k9=`ºI e$defaultpWͼeQiz9:@̩m@39=rw\ iV/=clonepttaA 5D9駉JÎx to_tokensfݸZ;6 Xb9)N t>בAparsei vY/lg2¥9-uAxaW5#peekިS΄[J displayfU.lMy-9NZ9bȫ# U9If?CX*NvaVcgspanxsT={D9If[&|] fS:#OBˮzc? _Ut@a\L9d5bN4<*O,defaultLI7ގ\HO?9ǎy57r4vy{9Mλ|jclonewtEHNMC9ou1ĚZ/ to_tokensW~&ir^dv]ſ"955ݾoparseykΥϋYu;9ɤWnJ>[#*!peek^\d<5\display0Qktib9-5ԸMf%ڍ;9Impl 1 &HEspanp#.`3N6[9Impl~AIVrjkVDKSYPt[iG$m oҮU9bZ\cx|ʖ1defaultŒh"^.[q9RQaW"9l[0՟߹dYcloneǡR98oӘ݋ to_tokensf0]sbb9r&R=EPZϷjparseK4){Fr9ol%vko xpeek|mY`2Sdisplay?&HT-9DmHJ5 9InU`84.Alspan ',?j|+9In# pzlw;Ss>hkcH *ަb'$`c9@yԬJkgdefault\IZ9{ʴ9giKb,\9]Mhp${0cloneaXu^@2yP9iHN1 to_tokenscVg{8IyJ+V9> ,ݦ"|[wparseK،oOxSm6o9V0Qn"#zr Bpeek7KўU41adisplay_!¬h3LhD9f|7QX:9Let2W*|lspanTL`ibf9Let;2IfNх~*FS;.a*X'k @3t{=CO9%}<,I~ default{@fwhmF7 C[9&?(/-f7l9dX[A{@x])clonep=;F9e9 !5R.c -b to_tokensk oIk51v9 2y1+[parseD6..EcXv9 5(-T peek9hn!H;WMdisplay|uc܂9/hMжxܒ9LoopK"l|1span{Zc ԃ3~]q9Loop7PH1ޢ~5ek2Sy ڱjLc  b[a(1V6ԙa9"ܦgY)defaultR\o"z>9@V$ƥ KI9B6Hfl4cloneح1t;1P9IPl=Pq?5x to_tokensukjdf9=D\W7 pparsex>04@?9@[drP7ޤ{peekL c1|}X displayw<hH9٩g'9$B=d*@9Macro`@Q:"8bspanz5bX& 3S9Macro`ap"SGd1AY. ﺮ^F$^9i-Z> A'woFdefault͓{#ox9oT*d)i e9&Q5NߣFŠ{N,CRT9[꣑+4?OparseHX--6Os9Z$\P?jpeekk} YR@ndisplay;hեB9O5F+ |9Matchc}^);span+x ?:9Matchx]ƞ6N'dS3cIc  (s, !9Da]TX~*0~ default";\9I?nUPlkXM79b/'tU |cloneE͗xB=s09݃\>Rb#i to_tokensVeҜ+-9q*:xparse^pbrdisplay^bکc+DV89TyrHJA>y9Modj[|d| Mspan"sk(a 9Mod g-cSGKQ72Vvz *]).!X9t"iN_default EP6"n`:9&/7&~9K5#k}:cloneő$Ԑ:[Y97M(:ηa Xo} to_tokensz\E4*jNߛ9?Xv͏S0parseƄzw j*p9o|; zvq peek[A_b>t display j\ :/"9|9 )0U19Moves$ c"3́spanv4|ߧ,9Move[{\-pe*)SeUB {  ;)1} pdefaultӷaϕ9ݤH%MaI9L$ucloneNKﵩ BN9m鑩Nb7N3 to_tokensyngMU/9IV7.RLڧ(parserA_di 9SDupeek\Y;{֊}display,U[T!9\mъ⾲UV9MutƓA D׌nyspan<mD2Uw9Mut%ZXVIS3 vM) DFo¤t9@mQ4?0xŃdefault ] 8ƈbR]99gJ5C&9 0 w_TᒬcloneS'XR& byW9Ƨc‰?z*@ to_tokens?D]Xix:;9րZ4WCxparse b,;kT2O.9w[DH3'pYW[xSpeeky㏆ ,_displaykmj٨,QH9 Us4B1Kԃ9Override/ʚAu]sgEt5span:<ZJ-.M 9Override6rɛo8S9wtSU cLqLϋY9)9qx?gO!]N`defaultQzMM(95r; 3Ov+9VP\~{;clone(8okS"yL.9"-{^K to_tokensފH-56"M9r/Y+G7parse4[`zl5 9D<Ė6peek5@lNB>AdisplayeB{[j9<ೃv**F(8~9PrivTDs_Y2{`HspanB-\A;mܜu`Q9Priv'_ K˸S8i?U[gfj` aҢ2ވ4ߡ9kUlxdefaultD/1%Ca9;/0& /8<9voϸclone-\eM9G3*39zp to_tokenskQ`,7*\p9r?+_M.Eparseoa>'fS9"i=0'{}peekz8ֳZY8display?4N݄Řs9TH,\29Pub3'<MUspanV 3~6ܨ039Pub}銮Fܲ?S!.(d]0[OR $*C%jSG 9_՟:e3Y-default#2X89co~@Vۢ9epIiKOAclone:[M|5C$%9F,EӲ?c-֘+ to_tokens?5`v]Y~9E^5_D;parse\ L"rf[94E 3peekBRb0FmR{display -TId9^(ǃ~Q#9Ref G=Fspanh d8u^:S9gl)i4{.s defaultФQI5x9 &ςz G9[9zq clonelyv[>)t}9ֲƧU5F to_tokensc'¿`87{9{- AcmMH parse0xzWsUH0"94ԫNtS`peek5-display\@M(uA?9Ul \ डoOS 9 =A%sdefaultɸ1ehH]9PYvI9 g37bԱ9kۮ#R<"/parse!IC6z9z#%W#u$f,Opeek q푲*&lpvdisplay:לxy[O@9nA ;`fXd9Staticqq];&nspand2jL ׵9Static]CIe3q5oSN4n@}- 8 Wn ./dl9eZkUAдdefaultVCccf90jpN(9ar 2clone{;3L*UH9߂%狣ɟ to_tokens-`<tN":96G U7parse*C99ٶ?ӏYpeekAmL:kh`displaymSbYtA9fK1!@L9Struct^=?CXspan5iE:9Struct2))h:E[Svt#8g-^9! RD,s ^G@9-HYZ!)l,default_f]eW,9\"E6Ruv Z]9jGR o!Dcloneޘ #݃9q#drsBA I, to_tokens, )cOC1L9MqR[d<#parseӾ֐p2Q9I"X2(Рpeekǿ?X^Vdisplayc0>A|Qc93fݕs4$E9Super}<\w{Jĉ~dm6span  m5EA-O9SuperX[YXSr-cWparse=-&9TOaiƢpeek KeNadisplay-T3y(FF{769 EFc9TypeA0`pTqtspanӨgXCA9Type.O/,Ik?Sa8Uiu /П6&Ϙra*9LA`8kdefaultKd0Wmi9{2 L9o#3H2D~e clone3 1TGfv9<:G>hNE to_tokensڹˈdzp9 {dndځj]=<#parsePiOrBC\HNc9܃Yx`i peekNҼBDqspanZwE5t*x9Unionc|u{\S b_̺NX^T p %fnmۍb9/` B98whb9UnsafeA[ߴ _7U=spanPxsVW!B9Unsafe$lṔS"eҸSī*d| u[r~ R9AۅLr0OKzdefaultTkQGZ 29E7NPZ&9ᶲj+cH+clone$7..-ͨ97UXGC H&/P to_tokensts'J䶤:bG9v `9laparseBAe_]%r9F4qypeekc)OP]djTsv!displayNdvWֺJ+9;ڋ X:p9Unsized iq_db9"_spanҙ`ܖ.D5"z9Unsizedy[GnxcSmχ3EԔԴ h[49Pws- plJ0defaultky?Ps)8e9Hi@MANI &9>:tIĠsKcloneHdwX>&9l -{$6 to_tokensJQR.9:G29E긥TtkJyparsex.5TrZ09o/^:4=M>]peekk FѤWoE|displayJ2oǥQ#9p'{25ĤE`9UseAV]=^3-,.FspanG񟵚.t;9Usem^wىI|Sǵ896 #c"Ϛ|{r%9T'Ua *ԕdefault)dQQOl9}Հ27 \'9t^8X9AscloneA|hy{IBkT9dIap؛I to_tokens&@>R4?9Bx۟o}Gq@"bYparse~5rG9ekW;}TƆpeek8q#HJZddisplaygʼn.lp~49çb=DD$;9Virtual!%αwspanjM~>)0X/GLE9VirtualS8cE(S:MSWSMa8 nf_y 쫷1VT4AHCL9%!$ "defaultɓ-MB29%}7!=IMXm9>b{X_^clonevw 9 %2Ƽ/pU"' to_tokens;x^`G"*9UM{OQ"parseK st/xAp9,9@Xuە`+EpeekN m5WM<>display6v- A?Ac;9 ­)Zz>ӎVy%9WhereWH C ۅspan ə{6m9Wherew Ȧ32(AiSx)h[YWG T6ڬaO5%v9MpkUUi<)5تdefaultQ TO]A ۓ9%muśjʋD{9dĮHޑfkoclone ;S >[׼t9cݾ~ټl_ to_tokens HuP:9pΑ*w(4Rparse@7Aޜ<9-\s\TLvzpeekg GgdisplayTf* _k9D4΅Q5jMT9WhileWt/*_spanJ;{ӺFKv˾@9Whilek7^FzL|IeS\>SMmĶ2'Y kU0.J9uT>?XJdefaulth9C1Xparse O}U 9^Jׂ@A2c"peekr~>[ h޶displayFF:HU&[9L s99Yield]RMQ:jnNspan]$]ϔ9Yieldk3&aPSbW5kCo v0 %Iy9XzGa02default+gSoV`?9ឃ2] 9FrO8>ݑclone)P+:B$299ЏiL to_tokensx|!96(;euhparse pȌ’wә4R39"rZ5%3Ypeekw"_{cKJdisplay!R͉HP6:&9@`XiTo9Z62:NcW to_tokens"4U629;8RfOhhparser|bLxL̮9Ns7dt,peekBjc\WNdisplay /14%ar 89m&D@SQ?[69α˂ to_tokens=N pi(#usd9+5parse]YR SYӭ99e,T< peekJ9$gh}rdisplay| v+sރ\9xaɴ`3^>d29b1-Ec* to_tokens]"d-g}g=95EkXMs~:~;*parse \W B{%9;C$.9ժKGpeek{ˆ(pdisplayƽCu^b5+79I".؎;9i:rد70p to_tokensQ-(K-dܜ9{ⴉpe9OparseNQ99y°kQU9Pυ7Iţ+SHpeekOUh!UHdisplayD/aW%0^9@U^6a4E qȉ1O9X$pv5 to_tokensuj`T*G!,Y9h|_hѰF5parse./Q ;ZP9"L8yWk˩peek?W "wlGdisplaykXrNԜ;9 ί0t-9f' r4 r to_tokenss6o&&f!o92Tgz ;j<parseO i k֎z櫈9% @Speek8Zz9i oPYdisplay+7FsK&9SX|u-_9 yʹG to_tokensKiuG㈅1,216&H9 6q parsennGY_V\>9H)$R!bpeek߉}MD$Qqm8displayl>parseM / 2vI9ZUzA.aH1I@zpeekD+C n%]displayI[9 T/ V9GIݏ+Knl;GKdisplay&7'nX>92evyX>֏+9eL̉}9 ň8,>#o to_tokens(6yjד9H_܂IBZVH5nfparselzÏGR9 8hSurL+peekvL<}t2WRdisplayOs7APH0,G9>`(e<@j9,w PkAx;]R to_tokensAd~e#oDb9_7E(gA}wparseUŜ&Xur ɺ"j95Ra[L|Speek/ɴD֭wE,Fdisplay-y)Ə'Ƈ 9XLvǞh9PP ]i#Lm to_tokensr7*ћnJ)gP9tGѩ|ly&parseP{^\ 0kE93,`[K{d3epeek _RJ6display*-9xCv~9=gL)w4ǝ)&9}٬ Jl to_tokens/6*mKA%b9Ufps{J,4$parse S-9waɗx< peekLNqCʴ display1񾃿_W@X9YK&O9) vܵ(i;d  to_tokens; > OuTX /9x:)Y}T& parse;|da ru91D~KU peek\X˗D+~ displayXM1,4eT+9S{C2$*9cd7Jj   to_tokens@j k9J3nSE~ parse(Zin0O&9NI]C؁JU peekX6fop1EA displayȤDN9uewTYkT90M&FZe xE  to_tokens#GRr9Q|i]2u parsewg+FH[9%uq̹cc peekq)[skKR. display9{Nl3X9xaaН\*{iڒq9CPY1aF  to_tokensX%TS9FlŚXMlエY parsey i0M&9592><Ж< parse)- nu+۫9L pλ݀~" peekw _Ǿ_px displayMlõ/8x_W?+9% E@L A,Q9t,*x(t邍  to_tokens{z㓸nC9W/& [J parseLajKʓD~9r7 peek!sݪy display> 4rR{ǶQ93(ʁK&b]@v9:+9c"R&A  to_tokens?;J=VG^9~X֬WY7 parseHlŕ%K"9C]QahH peek7|v=UI} display=o*3"9㳞FY| 9AM1  to_tokense؊BE+@t9)>A͎33 parse88GΐZ99RV]gHÜ  peek~/71hIW^ displaym:k=9uԽTxt\9T)\:kORz  to_tokensw!ȭy3ᘖ9AcL3 parsepXT S:U9'KkѝV peek2!T k? display_QeJּ^09"aOUbmh+V9rB֕{hվ+j  to_tokens @@F;zA;9PfH^Lp L parse/.d= qZ&9mlARu0 peek@ 3b*3p displaypOcb" MLӑōH 9ߵ肼pE;9ڱY9]x:g   to_tokens6Ց Qi P{1Y9`"[{$PTx  parse1`- 쫏9S`^`€^fhQ peekfk;?gDs.9 displayD=E"`7Q9|+fH]9Qg.C>m  to_tokens `ER/{c?9.CK^k41ߩ"& parse <_-"+D(9h\," peek;t^dRi display{v 9@? h99@Lݻ~[Isu  to_tokensʻ:}:Bfw98`'@¹ parse,Rmp\Ɉy9c :@x#0q peekMB-a̔tE displayuM&@8P9M-–FeSg9cWYDwd  to_tokens`B& Kh9+! to_tokens.nf/FM@WS`TS9dKK,:e߿!parse/A:D-z89SgH4Hd.; i!peekwu4Z3Y0v!display+Y>^J ! to_tokensA(>' O-9jZ9o98k{L!parse+%93k>9 `"a>W!peek9%&c<&8;jc!displayJxzha6cu90b,0h9TI+ 9F! to_tokens+"Wl&X9U؍02|V!parsex)0$0EQ9`"2w#'!peekW{ݒK+!display]֪,q9 {4t96q}! !u$! to_tokensIOm\oH| 9Y e$AxT/!parse`h{|> 9K%tQ7̳V!peek^Ihe?p!display#ɾ_P/,GUA9x|yB9.&8X^?Iu:! to_tokensxӚ9om[LU!parse-'tj9!MeZiT!peek .RJc)pCS!displayp'݋9'Axjﰙ9}lA>[lg! to_tokensNճV Zj)@9(0hP\Wo `!parse.PsNQ1J9 H=4Dyj='<!peek).JĚ55ݧ6!displayyebYCm=g9 dxqgҼ9%U3ѭV5! to_tokens >TT!.j9S8!S:պFK K!parseaT8➐bO9Y?EŔĄe!peekK1t!J̐J!display!YoZ9tRhN{1X]9jBޔqE! to_tokensY5+ę9|jz9xM!,F,P(!parseTh_0p؝s9VUzc&!peekDp]ӼP~!displayF4ޓ<אf9r}\P҃R9Qi؀Yt! to_tokens%u/xJ`9n<ܱ7Y>!parse"!.(999%AiSumrŷ!peek3 :S&zɂwa!display*Ք> .!9[]ҵ q ݖh^9jPLDG;2"! to_tokensmX(wrb9+?,mq!parseYXvK89|ʄCMgK!peekP[)Bg}.N!displayʏy+! ﷁO9LLt Po޳9Add+r랯~F!spansz# 9AddEqz3Ò*!spansg7\ܖz[! 52>/`dr r9AddEqLj6?%8!S4WsL^! 84&A<}z(9dcኸ=!defaultKYI,f䇑`#! ޤB]|k9{/ޥZ?~mNp9"kcq8LIf!cloneC[ o9AndI jJ[u"spans}'(I&" #FD  x9AndWEqG~+H"SҖ.eq" dqlbs9}f47"defaultt BE+vI; Tҙ"clone[Քr`ũY19 CTKVy7"Targetq/CAȶl"derefUop#]79f܃sEݎICn" deref_mutWm@&]prx9AndAndA1TxD缢\"spans HRG" YR% z17~9AndAnd!*[ g"S|XSq웏" ˝pн 9 { Zx7bgQw9"defaultwSaϏQNz"" {9NѽڦH;9SgTm&7,kt9`'ֆ4H˨_"cloneI3G;/9AndEq+̕1 ʖ(K_"spansU߾U" h6p4mk9AndEqf`ZhpQ'"SZ؈?64A F" S ӛJnᐫ9H :NpZ"defaultp)ݣ(y" /}qA]I~9"o,;gQ"9q QN "clone}c"yx9At,hu_eaf"spans wA57" lVl6f 9At,+@"V"S-ͩ\ۼYf[" L{?TiRg49RR-XdQz"defaultGΪ|P<,)[/" %{fj38Ъ9>ᴼ#րb'z9#}%ibBOĸ"cloneHrԔgaI%Er~ hj{9R#'Jb&晁gu["Target{5x-{?"derefQE6kJ!$]9+D<" deref_mutz]؈r' B9Bangtʞ cR^_ul"spans32Adn5" m܉tg{m73ɠ9Bang;Er4ړ>MXE"SkJmWuGq " 0& }8M?'"Target5C`ҳ-!j"deref"BYL9$^qP۷Dݩ1c?" deref_mutSŻ'/9CaretL s*KԚ/@WT"spans6ّ$1o3'" a IڪP|xJ9Caret=r jc.HN"S?wܽRfP" 1eѧp2(9Aضۧ }T5"defaulteVF~lr" J62A`9Em5^ Rͼ9~0DF =Uzna"cloneU~p*umHP.9"7K"Targetwn8Bv("derefHg/-pԆwZ9 ٍ` M~?" deref_mut^@c2MK9CaretEq K?K]2NR"spansM;Ef[Jf*" ]X s>ݕB9CaretEqgF:#4} Y"S6 aUWTx9~]*" AN5eHɗ{9;6ѝ.׆"defaultGz}kAQFQ꾾" l3%tR9^%;IhSQmC{9<m/ͦ*"cloneN gS 9ColonGv%')l"spansuB`J6#P2" *,h%9Colon6g/U 7413"Ss( yYZ" kzAp#9 `B@5Gŕ"default@1rsbKP{c" ϟZteJ̶&g9a߾? |Z(w9AǮt)E5SL"clone "bs99ife.~v>"Target܋h Ғ"derefrCy)bm8\9nk?4i" deref_mut4r;U6`+a1K9Colon2D ;#ogP6/+"spans&-Ofw) 7r" JDŅr?F9Colon2oj;CغL"SYu-DiT" xZ/_\ֽq9e:Sw$9 c<<#default ]^gN}V# $SV3s9 `m"C^9Nxva!Jpg#cloneKrQ{4:1f9Comma{_H?Tŕ#spans>zq Z# i/ >Q{9Comma]cQdG_40e#Swx0Z\  # o(4]o#N9eBoԓ3#defaultͶ ]E`;Y# |`r/nͬa9ic~:u}^9D 7qUI#t #cloneZLs~hZ0c9w8OhbdE'Ws#TargetRbrH{a&~M޴#deref$8g1sg 9;2P `d MP# deref_mutVbjg`9 MZ"h֠W(#default^Nե&Ft# [ hc3g9*bak$91QXӀ7EV#clonekV-KJP9ҏxǧ1i/nH0#Target"߿9=#derefJ!ùd`9z*&Aڐc# deref_mutn[kRv/a^9DivEq_n,hbRK-#spansld'5[r'# V,⇷)V9DivEqZ $A?&Zw#SܗQ#*A5=Ѯ8# 8;g-t r9(.GǙ4]9g|#default98.jYG7ٲ# Ħ>[_mGZjQ9='{v##;9jE}H>=mZ#clone6>YwjV>s %9Dollar]|1;#spansw亰>+pXQ$# t~ÓaKUϕ99Dollar=:F`/0n2{#S :b܃>~G# jD @3ZRI9 qǽO #default+Y~LȞcA# ?UWRH-593W +<9Z3Y{-`*Kq#cloneP˲I9_}Lo%M%~c#Targetn>!H("E]#deref }:\2l9Xd@'iN;%ED# deref_mutF̡^I;9Dot'4LPh tj+#spans3֭ kDY # n%HJ 7al9DotBa# '9@W;煈8f҂#Targetei#deref[6ǘ9%"(6@# deref_mutg dG|~9Dot2cF5P(wpz#spansnDJΒ}' # m-Ӆ9Dot2}1^M͝&Xؚ#S@l+ {5?# _)s96ӔlG#default,6PMI׆)# P[g>gx p9$TStǢ9DotDotEq5i ALt?#S9][ދS# ]ladj9EHbߛ1e͸#default~QfID{]}TÚ# ^h^/)x8m9wN3QJ?9ԒW )#cloneA3ro C ~9EqOGNRGcH dN#spansߤK6-^lů# ]*4eǬ$;ޭ9Eqdݘ!fX[6#Sߖ l|H[# ۞^ O~l9"фNA4$defaultW7)|$ RN!/. 9D nFz#Ž٪9MD\mj175$cloneNJ́qku'8)W9A/^ı{ 3A/$Target*FO {} (\$derefYw"VOLu91YG`x{tZ)$ deref_mut~A~h LN穅9EqEq1oE| $spans`{#/`sB3eI$ i}iҚAN<>9EqEqKv1L2$SUEhC>W~e$ {♬!Chd/9bnη/be(|$default'o)}"$ #V:1_93M6y9_IVf<$clone_Z &q-M3R9GeBܝLP3o; o؆$spansX q"X{oH)9$ }1< $̑?Q|Oh9Ge B̞/BuP/$ST.v>u@O$ ʆ2VO@?*P9 Roөҭ$default1|8E(bH$ eJh9s4w&6P1z_9`e wȫw^$cloneTE<'U9GtBqr0h $spans.?7ovb3$ X=Vʛr9Gtq/.^1GD_$S/C\zwiY*$ ;v= 987{z25ヰOq$default.3{D$ - M 1pV9V7Q]M 䂹б9ZͱВ#i$ѥ$S N~q$ vgCRok9%0R&x"Eb$defaultE 1&g$ @r_|< /9(BHW?'9hi( Θ8CAj$clonekY.SDh9Lt *m.77ꋒ $ 0ytU u49I2I؞Ć9M>- r55$cloney5GgA9Z EQַ-ݽbO $TargetMNՌC1!$derefjvbVof9ߕ YwpR$ deref_mut>Ag'9MulEqR^yz8 r'$spans:H+#$ @UFjj9MulEq.8 /d9`tW`/$default6@ wC$HhG-r$ 2ǦtvKI%389.@0ʶ5 95jYԞYx|(^%H$cloneiNqLWi9樯qZE]$TargetQ$ąq]-ؽ$deref>Ft U&x 9j4w:%o$ deref_mut+~F▽Wd+1P$ E T79nbD"_:*u%default:.Y@zO2% ~@N+ 9WjV죺Z- Bh9Wt6c%clone-rm2M|9OrOrnšNPu3%spans|PM-%QW% bs{ %P9OrOr|0$M045 %Sk%] w'N{% '@:9 +H)g^%defaultu5Ea% C 5z+9R8l`i;6O99$ToL!b%clone4X5|ަZ9PoundOr/$Z%spans IMJZ% Uwlͦ;qEդ5T9PoundHL:?N!g)%S|?:ȳFv% ^_!3VUdzu9X,sݞ'N>B%default0/sY ۷WL% _[T*.D?9#L_CE=y9[xKozՕGA%cloneCjGXևHT9 AS_k_Vn~%Target1'iӾׁ%%derefΓT{@9Ue y % deref_mutKdaG]>gAxq9QuestionZpgϋʉ?؆%spans`v-c"e8% o]B'x}\\9Questionm E`ԔYn%ShL'9#& % ɻDٶHQa9])[;%defaultNK8u$]rE!:% ]y>^A49ۋvUWL>X 9xpeO? %clonehK!H4;9-|)>\g%Target="3,U7 %deref1e4zxnqfɉ9VGB % deref_mut+pGa0(y9RArrow O-44W+s%%spansmϘk༖p9H "S%clone~KlYb-9LArrowqnS71w%_E%spans8eڣ% S]@AH!9Rem8 ʘix1{{%spansh!wVB4% Ӂr.O9RemO.| -t%SBc|T7֌%Target_L2/*!sR%deref^%spans8(h&|DG% όVW1Ԭ9RemEq2MLI/=@e#%SR5coΩA;z % .sM>H9Ë3?¡N%defaultS@qGn_2%N% TI$k*6|K}]9䇩4K`P4pg98 N2s"_%cloneJ*?氅FO9FatArrow#+bjؕ %spansDjqdz!p#% ?\à0[/*f^#9FatArrowM\%p%Ss?N4U+% f*vx^k009YHVɝ|@)%defaultnwJKGKl% mՈ'c_^GЎY9sv|#Z_29T1)}?8rc%cloneKd>$\6a9Semi^L^%yB%spansW9;p % DD8.Is_)9Semiv)IhTבs%Szs&a ܍::% ôF4x9{CՁ1Q%defaultǹ Ll"vW(% `DoUJ{9GB,D9y]WQ%clone38ԤD9󦌫$Re3@{&Target6zZ ٳts`&derefB\zvs ;9dW^dj4L15& deref_mut Mb 9[T5&9Shlr5x#/|_L&spansc3sU|WiȄ& S)3wlIcP9ShlW >>2뮻$&St)%5ļ& P˙x n9ISfQrT9Y|il 7-rY9D󌝄mI;q&clone JA&fG9ShlEqr2ͿMvIaг&spans j}e& tà+P{uFΒ!9ShlEq@[uSJ&SA#= o j1sJ& ~&defaultu(sD"& s] nz|ia9Yd(-&%9*ܿ4<&clone7;8slkӀ9ShrEqՎS^v'<0&spansx.nG]|z,& <#==Oñl9ShrEq5ӛ{63#&S;ơ7vlv}XW& z\r ]f39J_'~]tOk&defaultT-@!ׁ~XVO{& *%e729@R.[бL \9?s$I#[&clone`v SR<49Staraf b +ғ֙&spans0i>O\FaJ'& 9K*P"̐U}D9Star9Vpz^~&S<+^f)& (O-Q_9'~QÔ&defaultP61)uX& r$;W9j[$FDk9%~m Z>9F2][xn&clone'lv y9qUE$ s֖&TargetSk_Lf&deref̶Qzt89b)ec%Hj8~o& deref_mut]7 O9Sub:q"d:&spansv21n,U\& =p*E i{9Sub:~l@&SrWg xel2& {;-)=9"8kW~:[& 0'f?9Tilde 4a*`4l@\\&S Lmڐ.v=& ~9V"\Q"ݥ9Zj:bw{l&defaultz"Ա#B& 3y#%y69$~\0 ]Q9{C۔4/$H&cloneP,<ڜxp9 (𪦱MB&TargetvStnU-N &derefT5ք`Gc%N'clonet Z7`9Hq'.Uc/p9Paren?ZoRx4'SDWrtrcpvz' d)`V;5ym"9{x1/fk'default w$s0z l^9B) 2peǼ9` IV׬'clone@1"8ǘ19j47Ȩ(+''X>C'surround쉄&09Gev'Fe8D٨=*wgW9Dp"J{9GroupŔ-)!~3_5'spanr)ʙ4BGi{c9GroupXMgCw9Y'SG,Ot66ǰߞ^' ;>Ce0fhB9(fthP ɕ'defaultye:-f29+Pr}LJ9" [O4u"lƯ8Q'from>6H?4kKbm]=Bg| 'fromQ`a%U#RZ2]x'from`7?F*ch\NWXP<&Sݍ'fromֳqtSg AttributeDù)N|Tz1' pound_token4"uvI'style1r!6-YN' NameValuewX;!N'Ay9dx  '0>}D̓Mq9Z.O~01'from/@z1&6k5=}!oP*'from3!PIc(f;לg?kt'fromꛆՂY73Yoljdu 9B$W' to_tokens~_S.;T9x\MetaList@vjPVOre~Y'1AV'from |!W=Gǩ%iE{J }q[&AoH' to_tokensD]4LmuVariant G-HgfI5l'attrsRϩ{)\fI'identmxуqe›'fields}@a ר0' discriminante5&CFXFieldsZw{p2򜸦/K'NamedS#G('3V<o%i'0&˛$cm'UnnamedOQ҈(O A)8'-(G FieldsNamed8_[:nLw/Z ' brace_token1y'GpW+Vy'named_ؗoN FieldsUnnamedtkp=|ԣrHd( paren_token3hx(unnamedglJ 2 -FieldT2%H8;#fV(attrsw&z"a(vis+!@]z(identk91m\( colon_tokenah~9QM(tyB"D@! Visibility]5E4 =(Public$A e2O;dSQ(4Tgs\ pL(0 PzL]*_v(Crate_zbt.ЙFXu(x؃5˧ aUM(0=Jؐ@;a ( RestrictedwW])t7[K(rv 8z.(0'v a;Ae( InheritedNKfdğ8('h>TWJl<u#,E➣Z(from^VӀ ˓SX~{#e(fromT8.L#~O %o\R h6(fromڿ^O_MB s#f3NO( to_tokens/iRtI}ݠ2 VisPublicrxm/̥3qy( pub_tokenb P+|SVisCrated3( crate_token(S"?,5,M VisRestrictedEtZfBA( pub_tokenzg:a2߅( paren_tokenD$U6(in_token諦O],N(pathp.wh 嚒W l/Exprg\P?IJ|<(Array:V K!J9(m![ CCy(0[c2"(AssignǓ @6I(MkaV秼)pb(0aJ\}َ(AssignOp!o TT(Jt!1+o !ng(0.'&.3KX(AsyncʙVin9%ȍ(w'hAE#"(0ĹeDyO*l;(Awaitw@Z5PX4($ВQv)F[1(0l送yA3ʰ_(BinaryRp/y}+|(3LF4Öc~\,<(0Lr?K"t(BlockVZ) UX ([ Uޗs<N(0TLJT&o|F(Boxoc}U^V!R1a(g⧡?|K|c(0R;kZI(Break/ϑhbcB58J(B^G %(0'A2L.(CallD}NC0U(wf`9 (05{]m6)<D(CastrP^%zct5ȐMM6(Ahg'(0x k>](Closurep"6G /O(Rߪ #V[(0ۤ?dZdZ(Continue~ٳU< >(U| /+!A`6j(0̽QboVZ~(Fieldd^-T'fI~(m[ 7(*(0Y̎`INku7U(ForLoop&` q4407:(h/'GuYD^j(0OqɰH5_h >M(Groupj Iz (&!#Skf(0IsK/Ƚm{x(If!R(yn(W|FGbXh(0ޥ+ n~Ҭ(Index*Įq)r6v#-(81B mp(07X2{[H)~(LetYO>[# =(6#Oɴ9#(0f1\1? (Lit5וG/\(h"3Q@Z{D{(0]lFǶ7֌(Loop?חci(a(je}}6(0l`$Vx2(Macro$S[9`jqp(7!R(ʹΈ=(0F C#UEh(MatchEX(LUCo'S(յq}|ۖ/(0s킀ך( MethodCall؆ZeU+sBN(Xhl_rT (08*58Lf(ParentЅlG(?au4:(0DKN 5(Path5 0Z&4(+OF]l(04 ӱ(Range._f\:(Y=(f)(0]M} ( ReferenceN~QK(J;j5뭋3Ku:(0!U488s!(Repeat ͫ(doT(a!ha҉q!(0~[ݩ0(Return?b咱>y:f6)c?U7_ϫ)0lQ[ <{rd(Structv28&՞)P2FXa GY6 )0|ElM(Try.1W(|3y)͢zx"rK2)0 * ~ظB(TryBlockx'm}_`)bERq+)0WuA Iey_3bzt(Tuple.-̓C}Z)<+N`+$)0:C/֜Nct(Type" " }%)y,}fti)04J 2tz̅[wU(UnarykLahZK))\ SRDX)0`jԡi{(Unsafege`ޠ'bU)!=9w ,B)0ա=ZJJ75B(Verbatim~pt)r)8_4L)0Lƚ*a[FuD(While̟cCU)LABUzMc)0=N<ꕻeˉ(Yield^颣:xmB&~)y- ̯1)0x pP | (__TestExhaustive'EbUbY[])ݡN_<J2K)0Rܠ#Yg ? )from0IYa-BBkW iH)fromDŽ׿X3RZvb#Z)from($`FCX)e:r9kJna)fromU^> TʘsE k0O ;)from  Xk.>9L,oHNO)from Ҟ(3q~ƞ|`R϶)fromXfOūRPBDT kn6Pv)from/:l w]QoF"Ɯ)fromİ#,C:*n [ OO)fromw t@@k5WhkUj 0D5wi)from!̩Jo&̌Y^ke|y#)from\SA{ĥ.WF*$0>awq5qq )from= {쾟Ӯua)oj_)fromЪqLV8H鄮5r V*zV)from{2!sO ٻwevmx+)fromIyOFQ1_:Tcfr@p)fromr(9o3ue 1و `)from×ny)ui^K' ޣ)fromU\p+@# "4ti)fromP:e|_syy,SǴN-c9:)from F-4yTJ8etI-!]{)fromB35z.J*q^uNŧ)fromV)>kT/A0x%h)from=u1uŭ`0 Q< voR̥$)fromR#Yun1vZ Rd1)from.Nr/ȥ2-,q^46A)from> &w=3:junCրiD)from|:Y 4YrV) to_tokensX>ݩ#`Y> ExprArrayZiOѨC*} )attrs=M>rCcT_) bracket_token)Qq6iK)elems&TI▍R4 ExprAssignQujPGYF)attrs-5H `)left_ҽ?3蛳)eq_tokenR%$)8 > ;?)rightIܫ*wDX0]: ExprAssignOpO!FWL)attrs!v&4})leftr)0J(ZM4b)opKbW$M3-/7tI)right˨+=s$$5E ExprAsync瓋iyԱR*attrsQVT Mf* async_token@b+y3~*captureO$}gF1QD*blockTeh~@ ExprAwaitߦjx;|;s1S*attrsǡ1?yba`4n8*base߆Up.(b.* dot_tokenj/!W1:l* await_tokenM<Mj8*S9 ExprBinaryK OzK.s*attrsh3 oaʡk*leftHE>oP^*op;?bg+⎩Y*right qOYRs ExprBlock2xY 1hg/Zv*attrsGi@Cf/d*label|\lMjG*block#)/)s&>iExprBoxmX*z0P*attrsxS 8_a* box_tokenXA |Sn/Y ȯb*expr%@z+gFK6a ExprBreak%Cfǁ_*attrs}/41NSq* break_token|fm?*labelj^5N5*expr:Ek# iѤ;2pExprCallK€^s*attrs"Ӣ8Z@g9ު*func4;(\ * paren_token3Њ*We]*argsJ'ٞRn'ӋExprCastݒZ=wZ*attrs 0Y'b He/M*expr <_ٮ*as_token@{@'4.,*ty 8FΤhV ExprClosure0' B *attrsDEe;* asyncnessJNZa5H-4* movabilityTw=*capturePCSW* or1_tokenv bh|_*inputsttYQWe3~~D* or2_token |Jd (Rø*output<_M˷|*bodyxNXO"lG ExprContinueJ!{b^:*attrsmalT*continue_tokenWC1h*labeleYW TCK{ãq ExprFieldDK:kna*attrsݷ؞41d*basehs 7~w!* dot_tokenFvmMC(cG**member|SmUv6@ ExprForLoopgw`3!iYD*attrse$u*labelg/:O* for_token`c|zx(*patEfj I0 *in_tokenM&[!'i*exprUM$Oxup*bodyN.&%Bg ExprGroup{arMrI#*attrs`@\$ X@* group_token]V *exprK[n{V<|x+ExprIf |[XAҨY*attrs5~JBP!*if_token_tG KG>*cond8ك?F+* then_branch ?;s* else_branch%!4fJ'| ExprIndex['Av0 #<*attrso幔LdPh= *exprK D(* bracket_token|^V7_nyq"*index".'\{БgoExprLet<;1V9DgVj*attrsZ;&W`fLTQ* let_tokenI C]P#Ŏ*patm)\)W*eq_token͜n1<VjYB*expr*1f[zyrnExprLit5z4}'q%I*attrs>P+:դсV*lit,S.ak]`WExprLoopO L*attrs楿-G0>*label=o~/E* loop_token9~6p]%yz*bodyCH"w ExprMacroRWpe$~?Z*attrseVX6"*maccL9Wq ExprMatchhdG'3Ԫ*attrs3LUeeQ * match_token'͜DŽ _e*args:;3&1 ! ExprParen$YL͹mzɷ *attrsmfl(E3* paren_token-0+5.*exprM\~*fromrrƀՏ6*limits ye^{")Z*toboS]/Ua)! ExprReferenceRXL9.М*attrsͽVwiDg* and_tokenA/Cxs*rawrItaFi* mutabilityFd +@z*expr墥̐CjkJBG^ ExprRepeat;j KG+attrs! "B1+ bracket_token&SE Nd+expr,3sa8k+ semi_token/=%+D+lenn[??PF ExprReturn7n NU#pE+attrs gf _o+ return_token-Qw/+exprZ"0%v RL c9 ExprStruct"?3+attrs bO p_g+path|D9c1[PZHH+ brace_tokenn[XCQۣ+fieldsdtȴ|7+ dot2_tokenxh!%A(?T"+rest5`Oƫ9T9ExprTryfj9gX\+attrsP S$QM3+exprIQ~ >+question_tokenSd[ʲ'V ExprTryBlockY,JŬJg+attrsetN2N\+ try_token b" +blockTCrTboV ExprTuplehfcN+attrs)ǜq + paren_token“fHa#"+elemsԠyGu\f bExprType{ T{N+attrsSDlU 7mtς+expr(ϋvm20lOy+ colon_tokenղiTBWZNNP5+ty R@O\Y@> ExprUnaryr.$(,xf+attrsq`:"5>+cond8Yzj+body6.VR2Q}+:t ExprYield%߯NEd?FG^u+attrsŖ/GݥJ~Q+ yield_tokenJO'jJr)+exprc$6+LsTMember5dG .ذH+Namedw:’^BM+7'i+0[մsK/ mպ>+UnnamedCϕhLv+|/x,t\zE+0VS#]HIndexj/|8/ z+indexU" ljϊ: +span"$7V GMethodTurbofish׵'Z D-+ colon2_token} J;ׅp+lt_token*dT7W+args?[T7Bݬ++gt_token6Bz's=T;GenericMethodArgument[JH#s+TypeUm.2 8+}S,X -+04+4!+ConstQ{A!'+T+!:4+0FeBd״J0fR5yF FieldValueP)&=MxC=+attrsH(@Ԛ{6٨-+member~əL"2>+ colon_tokenm zpg g3+expr,[K=鯌XF6ELabelؽ ˭ښ+name3nwE<0~{+ colon_token-83`a  8Arm-;[+attrs }=BQ>g$+patCۅVCi+guarda#JY{V+fat_arrow_tokenXPt[@P+body{Hσ2֩*+commaQ5^/6Z RangeLimits8ND`~8 +HalfOpen=pwX.}+%MBR[+0*3_Е2Bf;+Closed忤i6Cc}+p1 Or.0o <*,from@>qivZWEVx@*{x_#,fromRs)tD~ :ICOZquJ,fromo2Wu%3TF d?pdl(, to_tokensq(LQ4Mߒ TypeParam,/"?#4Z,attrsրT.OV{,identK,2jcO9~#, colon_tokenOoT,boundskv/ߘ܇,eq_token@kg`C ,default֗(q q'L 6` LifetimeDefM&f֜w1g,attrslƫY%~,lifetime|SQ ±|, colon_token[au妋!,boundsUyۗeg ConstParamrrZxB%g*a,attrsu1㤳Hy$V, const_token+=!g0;l~y ,ident%.!4)p, colon_token" >\mc hw,ty:Ij#6Sw!ߤh,eq_tokeneo D]+T ,defaultCedbռ COQXP5,'arpoOS(>@,clone /r|Lʲp]ti,7P ),'aU'Yjo+E,clone65Lyi#7_yu,'a tEVf1|^E5,clonetbHAԆ'JTBoundLifetimes{ r*%\, for_token%%5ni,lt_tokenwlGzG/J, lifetimesk) jTe,gt_token!;R˞23 TypeParamBoundQ6K,Trait  L T8JCN,vjZB<1?1E2},0E)).2% ,LifetimeA1:ÆW('ߝ,y¢vLJb+/SZ,05$\T\ޛuT&m?܅v,fromeV5$m(jWcdw,fromZ㈎Iε`,rk;\늺d.LS(, to_tokensYFG^ TraitBound?Kd6MKy'=U, paren_token0.bԙq;J,modifierC2]Ts, lifetimesZ_{m,msX,path~0h ;JpTraitBoundModifier 5:Ce"=,None,,Xl5&,Maybe} F09x\,I 9uVҴ*C?,0 H&!< WhereClausecelLK, where_token]n?:VGw, predicates 'T*^5WherePredicatezDhXJt,TypeMeDhHbX,LA4QY;Q,0=TIL M$,LifetimeEti lx")l*,<ؗmal|,0b9ϐ5{P,EquF%W~q,@^9,},0ڇ? T2 $!;# ?,fromn" MPZ )u젠f~,from}7 F/Q)sno` V^~>33m,from~, I)AN#CF6?N, to_tokens/4E\ PredicateTypeéĜ:0, lifetimes-ШQ3 , bounded_tym|-kIP, colon_token%.jڌG-klL,boundsĮ.V_AaX5PredicateLifetime7b?^&BQm,lifetime}P9Oݕw, colon_token4 6/}Km:,boundsM~oVYu$&ޝ PredicateEqPS=J,lhs_tyiiQMI,eq_tokenz@I)ߚ^L,rhs_ty)JMӀItemWwU -ConstE~JS!6կO-fx5B"ݱm-0>扫uڜw9-Enumit첆*-M?-J}R 1-0X2J"-:T%My $Bi-0=cHp+WD3G %-FnC2r;kNc-q0֋?B(-0rW1TAGAz"- ForeignModeJk'YPq-ey"Ye"Eb-0&c5'w}|8-ImplH2Τ" @$j{I-$߼QA)J-0<* ,X9S2v-Macro Avԭ4ZE-LdJ9mz$-0Tg"~AUFv-Macro2)FF2cR-%*6r]'-0Q7Z2 -Type 胈iL d<Z-mv6)6aأ-0+rm~4JhHg-Union_vzɫ2ULJ--вGB; Fzcg-0Րv$(Q0-Use .CjY۾-":#jAG-0ox)f B-VerbatimQkYeHh-s$ s'\D[-0SERUZA-__TestExhaustive+J.=]k]E-<'& I}"M-0`mF9x>?ƪw-from(F,2̎QN IFZc-fromzٽ"0a T P10`-fromA?c 5' 9_ y-.Nb:(-from<Y58# m &(Ӥ\|u9J-from TPcP:E Wv9dJjix*-fromP)iL\aQ=&q (U6~^+J-fromF@GI#RGbqt5A^89y-fromڟÌ?s#*H<'D 2-fromiFl`ӵ,9-;AN_-fromDhd~AzGM 4;ժ-fromnӇoǁ˖@SurKPhea Z-fromW5[ud|בu5T-ϩ iX6-fromUX2Ya/qPJnSwn*nXN-from)uv2 B7e4 |+-fromoP1繷ċ9aw49K-from$1֫:v!g 'NTulnu- to_tokensPKlRQU#ڢ# ItemConst`+gQG-attrs&ߵJl-visKd`h!7_- const_token|&zg ֓-identaJ0g`- colon_tokenmdUxR9jHQ-ty(pj$96-eq_tokenavPG-exprKCoC!6- semi_tokenf<Ɖ6s[dItemEnumfϔ}d&7b-attrs rXvM(fI9-visF7Ð:?'r- enum_token !&Vv*-identQ?I?@H~-genericsgnTQј- brace_tokenVv<71sW-variants?9Ekde(eItemExternCratea5 .S|-attrs\(]>aha-visƴEl-U̞E- extern_tokenë2 :J- crate_tokenŮVm_h2Љ-ident:r)-generics}?]\ ItemMacro2kQ橫hToW.semi@ODs#y6 ItemStatic_=_z'.attrs4\%R~.vismn1(P. struct_token]!6|*kR@mG.identrË62=I.genericsU!oOl y.fieldsf. "0Ze. semi_token݊Mp@X=e ItemTraitGLq1egļ^.attrsGXۯ7(T.vis-_#9cN;t.unsafety'Q Qig7. auto_tokenv(n"[7. trait_token1? \.identZ w@ "5fq .genericsp_NR xr$.eq_tokenY;&n.boundsjqut醞zA+ێ. semi_tokenRԷɣ$Cl6ItemTypeӐ:Nx^.attrs[ YѳPED".visBeW}9b\. type_tokenŋsaΙ`.ident&ٮ`1@$ xo.genericsH#.;Խ.eq_token@.ident><`aňnC_$ˁ.genericsucèI?.fieldspQ+̚Kh9eXYdItemUseM':;[.attrsy{Ɠ|(.vis4)Py~N. use_token'\*s@. leading_colone1ݟqd:K.treeJ$$7YdI. semi_tokenbpHəUseTreenBu #~-VX|.PathUTa}.&_Ґ@.0Q ~M$jy.Name)[أ끚^).CҡƾlXv .0ڛG`S}~:.Rename困b'7' .m3;ќ]>@.0hdPTO/yf.GlobڹzJn<y/c.ma]ͽttL.0 R6wP,.GroupIdqXW.D6'3 Ѷ.0,߬ a^ș+X"ˆ5z`lI.froml+\*eJ#SY+F x>]V.from)KY\|֜0}C.J 5v.fromG+Y2hui kbyd1Yc.from2} ]Y6+L!Yn%.from9py΁ko+7}p2k<. to_tokens/Zj%U ܙbUsePath "=a\R.identc0"DŚPm. colon2_tokenwoabډ0x=.treeAFӼLحIUseName7D߫H!x((-.ident9Ok~W# UseRename IFDdn.ident_֯p"WKz_.as_token8|`e.renameD#x@1Qw]UseGlobHrGkq8. star_tokenVxye.~UseGroupQkbaz/ brace_token".P뛆:8@s/items~,~=Q| ForeignItemgH|ݱpr}4/FnۚSfbM\/4i?>N\)V\2/0 }ׁ)w^u/StaticY]uslFzy/W$GaɅ/0Y߰4l~/Typeo|N&N/aE Y%فS&/0YH'm/MacroV_ =1π͇/ &]) [F/0My/;xs>/Verbatim1#-ڥ2"3/Q>Ps^/0# 6C /__TestExhaustive>~\*/Y/UUNsFD/0TŮ 4l!nͣ͗ϙL0+U/fromz휩Ap G F<*YC$/fromӭ=P >EĹ40a /from}?A+[7!G@NTX!/from/3)yw"p$e")T`/ to_tokenslIzCks ForeignItemFn**q4^O'/attrsJ\ gc]lO9/visx/sig*n5ZNGVez/ semi_tokens=JA 1zy>ForeignItemStaticЖŰ9 K/attrs qdP<./vis)*_yꩠj/ static_tokenoLeD7L8+i/ mutability[춁8/-qj/ident6ۓj:/ colon_token ׳ {{)WA/ty1FKNvܡ/ semi_token7eЊė}ForeignItemTypedi Xyk*Cg/attrsR@;Wm/vis pN hB;ܦ>/ type_tokenik `g3gu/ident`D(){@/ semi_token)q0?LmForeignItemMacroͼ d)/attrs#"Y6 }߰/macՀ]&!XF|ӿPaT/ semi_tokenOg27! TraitItem")z-d*"/Constlr=zr/</qH6;/]</05M{ ::_/MethodqQ Gy/较M9Z&/0Qw/#t3Ŗ/Type''9@/$ZK)z/0]Ir˲lRS{w/Macro3v7kmH$ x /'8:g/0J;BHC 1f/Verbatim$"Lb28 E9w/[)I}TraitItemMethod"%"C@/attrs5kUPHh*/sig!|+鰕o/default-cw'e.p/ semi_tokenɍBq܂ψ$g  TraitItemType9V~38bU/attrsTj33Y*y@o/ type_token )U/identvMDy$/genericsaW>=iL/ colon_token^%;'iT/bounds"`a<  j/defaultūw!+/ semi_token4X֚}sk16TraitItemMacroqzO,G@/attrsMxViK_4,3/mac H%yb ɯ/ semi_tokendG}Ie|/AqImplItemݜ< nޚ%G/Const]t"#/ #X.t r8/0;)r H ;T/Method$K4>B}t>Q*/yP޽&瞇55[:|$/0xk7&o/Type6_CVfؠ5Sj/Z)Gke +/0MR@쐓:/Macroڮ=/0,0n$-.Zt/0;̚#h'/VerbatimT!&vHp./3KT˳/0Y>pW4QfM//__TestExhaustive21]\M`|0Ke- 00]ac1 ԶC( ;f70from))*x6M*U<~0from¬g'/dar͸*qa'+>yLQ0fromRn|~+Trg3 4e0from;g%`x,qvVf j0 to_tokensPlSI=ĥ8 ImplItemConstQCt 3m0attrsOgb~0vis5@A-q B_ KG0 defaultnessw)sWվc}O*N_0 const_tokenW,9S!Ex_0identw:~Z*L0 colon_token=@Mk_57]BY0tyhړZksz60eq_tokenQ Zk,qL0exprÏݡ9I]0 semi_token u`ZǙZI5_)0abi[dž5x*y쓟F0fn_token@̃(١MO%0ident5SQ {U0generics(Qࢃȭ90 paren_tokenHȳs$es(0inputs]W4ʩc@0variadic 1k!6)[(vIi0output}iACc;Q`G?qFnArgEKS޵zI0Receivers_ȵz0rEA00^f78 @dK}e0Typed$/knѿlP/a0"s0Qq?lEbQ[U00HM| -9*M\$zh0fromwhuǚMŃ.k-}#i\D0from$аޤ;-/zs4jAQ0 to_tokensCs{7=BReceiver*V]x&`0attrs[$>8mN0 reference}mhSql0 mutabilityH]}֬m0 self_token9#v^Yhq1 macro_rules,L_\H]%0spano-Y>Ix macro_rules  c_1^=0__SR2N(i 0 -+e|޹ Kz';_3Y9 v0defaultOu` (A >/o0peekg" `Ң0displayD A$xe)?C`%C0parseH]U>0{jRf*~;r0 to_tokens{G'x5 h+wXo,xz$ذI0clone*&L  File_<8Nw`>3)0shebangz_eevTٜG0attrsS~nbk0items9A߽%}Ԅ Lit['xxy/^0StrE* נ:004 .ME\P"00~pviЕ޶0ByteStr7xvrE_.N-0nsjI00N4y0BytepT-U]^~PM4~^0إNaңByI00rO z0CharAn^Vg[{!0c`wdPE00{M"~fY0Int^6%?z0='i$n|j 00L/Qܧ0FloatwQC10V`"OF00WuoyR8W0Bool[dsMu0ͧ7"|G00 d_KoX+]0VerbatimٮG\cSݯKZ\K :0"ɼx쫾sʡ-00L ಾ59=G] hF['>Fo؀5p_0fromڵ xS% =P sn"|0fromcO@MLm0N }ބ:ŗ0frommE4HBSL @]5 %d0from)v8FD~ Gʡ x;rbM51from"ds8W4 gm%NQ1from<%8/0Y čO{[tee1from輋OML BH fCMLҘ1 to_tokens[2W #/γV LitStrzI-6\51reprq+ՠ"  LitByteStrA-)`"1reprB:5}+6gg LitByte4_}C.1repr IF{7 LitCharjIRs E^1reprdcT&Zvt3r LitInt~r!x]znfdU1repr;I@e lpy LitFloatusɾ<:1reprr{5Y EQ?9 LitBool)18{oʩ5SV1value a ܗiu}(1span.߭ j+Hh b WL`1cloneat:T LitStr_1g/l_Wz Ct$Ọ s1clone Xf4^-*h,  LitByteStr7~Eȟ Oӯ|"Rr{71cloneKRrY(]64_o LitByteFn$+Jpٓ*h LitFloat\}k@?d StrStyleI2dpםr5ȓ1Cookedޒ$GN1Xn=AZ 嗓=1RawRǺ!GW2Leh18 d_QѺ310\mx$^;zD2p Macro%umĜU1pathIoB{l1 bang_tokenz,•B~rh1 delimiterd`#Wu0EF);1tokensK|/JPVW+ MacroDelimiter{ UCbed1ParenT1$;ee1vuB0ֲR10 ~ بW@>=Y1Brace^b5xh <1z`#$xW.V10)d,O{y&1Bracketb_87L½ULL%1T8pG/m 10nIG}v&%c  DeriveInput<\7J #1attrs?Pas1visܔ{YfR1identR+;sn|l E(1genericsMn%Z ɴ[1dataiSثe/иô  Datayܰ.yl2}1StructEUZ}K,1bLek}10#Goͭu 41Enum&bmƠ}f@q1t9LOY$4G10}801Union4ȞӺ6s1ɣVzʏ>ُ106msۦx۩ 7z ?8a$̶1U_p}1from4͢$;+PJ = O /r1from͒oterz oUƿXW1fromCT5]#̒‹  DataStructn6jwx1 struct_token7Z TDSY1fieldsd^Ћr`p51 semi_tokenuKDq(+ DataEnum_A؋R1 enum_token,M#㷞p1 brace_tokenC gA\1variantsp՛YuSQh  DataUnionFr:4݈[1 union_token1[g H1fieldslؾ7,Iښ BinOp'dK{Ѫzn1AddlM G,S12g&e/+10o'ߘ EZ1Subu-H&!*uQf1\jgیDj10(ޡ{~x1Mult%߄El$1=$#WL10ŶDxx>59Y21Divӊ!̀%ֳ1;Ȏ-710!eMBqx6gt71RemwRi(2Cdh1-no]1And@ F8۫*7>1[QY ';`10M+He _1OrT 1 f@|Ā*ݮT10MY`@ 8"1BitXor(`zLn1=KW|U10:7Ǯڣ-1BitAndc+OwQSWBU1!&3@#\a10X顰,ҥ1BitOrZ3'W̠#91Q˗10Rweo6W1Shl[<)fɝCFp1}B= 10G}sߞ^]61ShrLjh3 $2k^/df20GZ G1Eq2y}7P2 zOEdԥd20_4Mj0V1Lt2(:y n)2=Ձ*Nn20x#A*,r 1Led/x'da`TU2] _$LnJ=20vĦU,Ya1Ne[XXFRƨU`2¼X}oS -20`adJ{: 1Ge]o,1d]]2ǎ6)mZڐ120rPѲ1}1Gt_Ls8EzY2IŽB W205?ZYoWֻ:1SubEqx1%`d2=LC]120Z1/2a8=%1MulEq` 2U 1@P@)Y20v\ny5Ȱ iG1DivEq[ Cf*D2\Q"M߻$b20hxMV;;1RemEq0c]99 ^W2ZbO1HɁ@20eph|51BitXorEqhX%sOWO2!uYDJ,&+X20(Кl&A&WjI1BitAndEq\J[S Ty٩M2>cقo20\tք4rFw1BitOrEq!RDnA6E2@8@gb20T%,3\1ShlEq˒*(rSM27: 6P020`1FR1ShrEq AkHɰIoO2jrqS:հR20-JB4߀% UnOp/ ^8 )2Deref{[72T~3 20?hHnG緆2Notw$vmGI_ 2U(4 Cn20?j̪1tB2Neg?A*K2xh2k0 20w;b} Ob+  Block)3ԙ <Lb2 brace_token_!E<20RZDtN&{F2Expr@tAoUHE2ӿEG9&/pb20$xY95l2SemipS"W1s +@2zwݟ QJ720)?ff"^H21U…C% LocaluʴAVfnХ>2attrsDtNKR2 let_tokenJ[7Y'2pat6RþeI2init%a("@ǣ%2 semi_token$dfe) TypeII:iSa2ArrayWTV 2'Dc:k+wxZ20}TgV~iNK 2BareFn=st! _s2P(JCCqx920PkHc"L[2GroupASug`12Xj 3ik20Ls(MoHU.2 ImplTrait=p[MLM2HׁDj%Ufy{C20і #,%H2InfervV!9ƚ `"M26DN)i20gJt;^ :jE72MacroIJDєsy(2AeyUR20U}g78ٱ2Never!/x@0iJ29>[2Paren4eZ;9f2J'܋]^eZ20lz}3ѴYS2PathSu^T2b=j8^#l20m+&R=[VD&N[2Ptr 4d%;I2 z 20Nl{n^2 Reference\qs7ΐ(GI2*ĵ@N5zGٹL920uh NeYJc2SliceXŀ5 SijEEk2u>3K.20DwO}.2K\2 TraitObject_E #8ݰ2qJW420q&Hf$ژ2__TestExhaustiveX_UlL;js-ڛ3ېYjPqߝ30 {@UȘpnq JRy)Q*sw 3frommX 4~8F VQ/΂y3fromiT-̮!m H5 3{=3from{,u]ljR #d'ZAH{23from5OV91tC+ ïE+T73fromAퟱ;ܥp A/CS^VE3fromtFb5N2<6 Ψ+c"}Sږb3fromz=dP谧v `T3fromWK"9 TLqpU3fromREXm  gv 'hG83from:bRY   1 !xzKF x3fromȽxt!4hmC  Tը&^k23fromκ@WCj  Quϋ2ޒ73from%HOreE   QV)d+ w?c3fromr) >aH rfT'6E3 to_tokensQEy]pqN  TypeArray\<}8jϿ/A3 bracket_token>eS#!3elemˠ|V>[3 semi_tokenM|1\^/Ä3len:#*ɺU  TypeBareFn&L| Ëׯ3 lifetimes~)9E73unsafetyH9N5Q- 3abi%f,4ۇ ,3fn_tokenӥsd(+.3 paren_token=h\z3inputsHg~!G>>?Hz,Y3variadicl 0|~J3outputQ*^W#  TypeGroup Nȯq%~3 group_tokenƔeprK3elemصcZ}RmR  TypeImplTraitx0TՌwi 3 impl_tokenA/(I2a<ёICB3boundsy,Dl9nK߷  TypeInfer[Sl g<3underscore_token,- hB  TypeMacroo>3maca2WQN 5 7  TypeNevere MNl3 bang_token' ``-Gj!.1  TypeParenUR8l3+(.3 paren_token]BL?c3elem-YnGi8 TypePathj.XU`V>ɳ3qselfx}R@/r: 3pathOFb}o®ni TypePtr~NHzHgK(F3 star_token΋Y0)1aL3 const_token9!uVWe3 mutabilityhKiE3elemS-&#ad5b<  TypeReferenceV]$VfɀQ3 and_token-dRSr-)  TypeSlice _3 bracket_tokenZrerg3elemss* d TypeTraitObjectH7ޠ^ G3 dyn_token&6T\v3boundsKTU\+Qޒ  TypeTupleͽrAr[^k3 paren_tokenU/2K3elemsz&ߛim  Abi1\DU !Jq+*3 extern_token\=Ą' }ٱ3name)+n ?XR  BareFnArgU*j{FOT3attrsjS}r%@[V3namenr /?UvG3ty5ţ ':x VariadicY+_t +2y/3attrs#4^4UŠ4d3dotsi$WuR=_P;3  ReturnTypeUOpdy^1h3DefaultD}cڊmn 63uy%ؽkԒQ&r3Type_^tѬCȂݾs3G@SM9T930(6@$F31 >VVF͊ Pat D/S P$"3Box/(2.cV3?sHW5 309jR7^3Ident{ \vPon3H2sn*썃.od30z+흁m 3Lit$MOe _R3i 3Zڭ230n1 D1_ÿ7x03Macro#L*'0aL3*;vGM30VC14ni?3Or\/hl 3; )”ݣ_30+3YjFɘd3Pathz,ѵ<&3:m'[Wۘ/F30WV=AO3RangeOqv0~38m}m^30  3䝠)d3 ReferenceQb'Es a{3Ww3hͣ302> pC3RestB`{v I% i4.綣x?Ő40A]b3?~`^`3SliceWC</4?*×^ώ_I40>~-Ch&3Struct$aX/'Y,xQ4JJ7VxoP40 bRY8CF3TupleT[t.%gm+4/r$=bq $v40oI P,3 TupleStructzdm.4RH4?,OmQVd40NC1s3RU3Type*෬ktܓQ46pQ40 }a#=t3VerbatimVlp?$ng4gq{v\F-GB\40ZQ)q@Ğ3Wildm\(S4@l3fk s40ɯ*@TiYL{3__TestExhaustive;vmOĥ4\:K6x0i40?}TRuZA\3 q$A4fromQn k>t@- ݖx>%p4fromdP|.}ty I#ɧ 4from=JRT;d8h!M 0kO1gd4fromN!'<8V (>Q7{(84from#>ײwYO֌MA xs}jQ4fromP1yw@˕ MhHǝgaNZ4from:*X7"X~ 㮖K/`e4fromQl,ZX| >K{O.22 je:4from/0,H>-iI  㩙;kM(g4fromEeWXiz=  yET54fromyMJTzO  mӫ<Xh4fromPFQJǢ  <De 84from%"g_V܂62  -&gn$Je C4from8,ڒ yB=w>@e,4fromYs KsGeX Oy3P։[4 to_tokens;v?r#l$Q PatBoxϦtӁ 4pat5|tg PatIdent|8+Qxb4attrs5/u@4by_refAQiıDή6II.J4 mutabilityxy.}1@IO4ident@_rI5<(34subpat ̺i}${hm PatLit迱лCxt4attrsnA/a}d4exprڶ'Z~ PatMacroŽPՃ? _.+4attrsć498 N4mac=B wi֯ PatOrԪFs4attrsT&rdd$^4 leading_vertPErBq]J4cases 9K.ڑj PatPathXɫ{~nlk-4attrs=Z-bwbҔg4qselfġ~$p#du4pathP輂0s PatRange40 8)[CI4attrs~Si;4loq(cnJ4limitspKdT4hi0x #8y:  PatReference ~PS? 74attrs}|K8{ 4 and_tokenMm 4^,4 mutability2M2h6FkWD4pat2"EXLP؇P PatRestȗpdȦ 4attrsG馳kh4 dot2_tokenE9[GϦfɼ=* PatSliceX8!FSњAZ> PatTupleNB6;{.c4attrs8KVwpp\4 paren_token#vKf8./|e4elemsErmW`J( PatTupleStructu cx#K4attrsy`6gz['4path19~Rsť4patk *@;a݋(hO PatTypeE_RttOv4attrshho:4pata1#[m84 colon_token:b9J-s {4tyi^ ;Cy뙪(bo PatWildy/Dj34attrsK:U zb4underscore_token1Tڤ  FieldPatIes%4attrsao ^\P4member28]3Ƈy44 colon_token|3(骶50"Jd 15Const(p&5Qe#L5Hc2Yڑ50diҫAngleBracketedGenericArguments+A4Fnj/5 colon2_token% Hҭ'?rۮ5lt_token:׾(M" 5argsQ_Ş ?5gt_token+s ^A!akBinding)iܧ*-15ident><UzD&B5eq_token5ty"vNpvRF Constraintndb5identϗE|+L]5 colon_token_p6k<8χe5bounds-ph;(WParenthesizedGenericArguments.a~ -v25 paren_token*eY@a25inputsa.'IZQ15output| Fy@1Z8FQSelfi2-bP<5p5lt_tokenX*֡yWny%{X5tyi8;L3]so5position&:\;#ݴ\^(5as_token0v#Z :_r05gt_tokenD- zy*nBcloneXڒeIS܇m;5M… fz\q58Kfz4!i19Np5clone^h[`5^cn"SO1}5clonePvg^y 8u5@:e8 )BbԷd5clone@9w\-!{5!UQgBRH51$=@A*5cloneC? )yv{5|WB{k5clone':R "ӄFL5(mJuZFg5clone*"e.5y~bෂԍ/o 0''z5cloneBch$O%xtJ5S:Rc9!,q5clonee(COfsSO5 !Z+`s`5cloneQ:r4=d e-5C4n[dR5clone$#6FNIɘ5" w5clone@-X <5Q)X>ц5clonemo}@WUN 5! ީ[-'5cloneXW2«!85R; (a5clone=3'riۯ55D3ƅ`5cloneZɼ~l$35u Ye-:)F5cloneؗp͈p̯59K7gןIQh5clone҉B2VJ|^75 *wM5, D5clone?n[c?,\5!^ ;j:5clone=qvNfp5" |j55clone]x7 *J5#+qX~Ms5cloneH0'^ 5$9n9> 55clonek wf&75%q\N: [^6clone՘'Q $5& >+^&6clone)ɚ8G mYj75'  X6cloneKQ֫\*l5(T D KL6clone8#G .(5)z^)d6cloneoˏ\!Hd5*,|k_uDO6clone˭,?F+nQQr5+eH8̰6clonevysApHfc5,O둎J6clone8Ft5-: 'vg1B>6clone^&b=ϷlRc5.w0i,Dc6clone`Ml6hBB߃S5/L.$$4 D4X6cloneŵ=nۃ>L]507| A~ wǴ6clonevzQ)b51nGӮzVa6clone5^4tYBRW526oOQP')beS6clone܎\wZ)gaJ53;*걢8`T6cloneZHXh[54(}s^'x 36clonen_3_y^U|558e65 6cloneÍGyT~=N)56/Ȍo<'C6clone3V|@=H57= ˙7t5%6clone]\?l5Ά58g}]z> t6clone?ۍů?s6clone(Ѕpk0۔Yp5? W}yו۶6clone&/^hֺ95@HDAT#x@/6cloneIlt^}5Ai@C!dT%6clone?/JL0/5Bw|:$DX6clonev&oDط:5CSN]N?=ޥ6cloneËf_0}>w5D XvtTGe6cloneH*8Iu9 OS65E.\kT##36clonejq)0:o5F$y!<Цfm6clonej$cyϩr:5G|Ls5qq6clone\in֓6cloneQW?- 'X35W`T9=6clone{ p"%X5XHQ6cloneݕxRYKq5Y>Mάpёmwl6cloneTjͤ8X80)5k5ZҗW_ybz#3/6cloneΎ̙;t'%-5[֎Y3lKD`56clone[P5!m&Va^W)f5\cu6clonel(#n90|)5]?1Nwtf6clone T=U5^k٢ĸΒ`Bd|6cloneiG];0p5_6=F #T6clone5R鷋>SY@'RO5`_=Z5a?Q*~6cloneew˰oTJ`5a(GȜoxcSY6clone[Apa-JE5b4S.S':r€'`6clone#\V;Ʋ5c_)4:бNeM6cloneuR Mw5d›;@T8V*^6clone$>?pҮY.=z5e+BP>Snm v7clone*_љ/ O5fq0%3,A07clone'G@HLt5g/%%#27cloney?">D&5hK ~%;7clone V3Yi5a [5ip2OݮHA|7clone"΂C̗vS5jlGj` .A7clonef{f7ٺ]5kh+.{;vЬ)7clonewRן5l̖-K^68K7clonec+ %HG5m'VTgJ[-?fup7clonegfr…&WqCF5nZ9fb|>ڽ O7cloneU1rI:Amh f5oߡڊCC|i7cloneiblfb2Qu5spZ"ڨ{J@t#7clone\8C4I@0t5tE5 S_v#g/(7clone9i zQ%5un7c C |l7cloneW{3 n5a5v42 s(\7cloneH.{Ta35w.Vy8517m 7cloner~.:׹AY&dr5xv%4P4O7cloneݛ~Z<@ƚ5yJ6 Z<(鵘7clonej 斒75z^(eh<):J+{;x7clone&=@cvGF 5{/ujc0c7clonendv.|Ab5|p`f(j)gh7clonea&oXgW/&5}=\ZINuBT:0_{7clone82lj5~ 8_c =7cloneY~, pvשoV5rGQ3p7clone3r-e>J?25f ΩdU7cloneWbޯH\5_Ajl/\y7clone"s@|QIutB54V%i7clonel`Dh5UOL5 Qz& g'7cloneAsVxN}]L5̺0H*O7clonel\Fd8oa1@5,Hfi]#B 7clone1:')5Ɛxm5"w-=K7cloneX)lףRPu7e5kj|z]m[L7clone>1&Fi5u%3?Y.54y%qMl@7clonebOQ6EO{5(PAˡ^6 'PC7cloneqAÆ {:$}5T~)d/ɜ7cloneP!/"5 硽BD4 7clone1 $TK5+oE$82E.7clone9sSL*69? A5O:@ɾ^?7clone@xDHhRr  5ӥ Rax{N5:x d?,u|7clone4LJ{<58/0lVZ#7cloneP8RIz!%95)w&fh|iArx7clone KnM:5S,p]˕7cloneZZgW135h-Pf4K]7cloneTpÂJj.ȝ59 7uj":g7Js7clone[\P;ȃgsTrP5&2 W,0<7clone7SMx$J5Oof>8[7cloneiAbU<-NXGm5oZU(wG!7cloneJ!lp<=y5<<؏+V7cloneU[,swr,~5u`E(P4{HgT 7cloneɀo h٢u~W5HA7d;ׯ?z]7clone tubV55wB7clone =3-}˰5YL!*ߠM_C7clone5Dp@`5:G7l7clone(/X8zhUw57KY7clone^"O6x&35 @)AgXA7cloneQE~t%5 @[OWD7cloneA\}sͣ[5=I,z7cloneIxiUEd|5S_%he$x7clone8qVa95 1Qۊ3殬e7clone **u^5qR5~6+X7cloned] 5m!/Lf18cloneNj)`HE\!5G=/f#e_=@5Rkˠ=8cloneOnD…^51=e;p 8clone'[qi15mz iI}i#b8cloneg~"^@YI$P^5A:kܯ"f9M8cloneNlS5fev4-{'`ɳ8cloneTG:@J1T?54e]I=\b׃, 8clonep% ]&5'k?hAohc8cloneY\ۧ5{Rg5hع}M?m8clonefDvƪQ5A8|Ma8clone{4EŎ_V雄^5!K@ [NųVao8clone^&(z7n52p8clone; d'a 5n>w^>HYj8clonezNP50x>w]Oo#8cloneVoQoSvOR.5_u6Kcmm8clone=+oIP֋95k&jD& + hf8clone{_2Q ocustom_punctuation_lenNVTaq*DjReserved\H^␳l8_privateW| %u]z#Od> 9NsFk@O4fݗoDl ,?%»iRU ۅ^'!P!+Ք]ur1T%WoJz)nj@BRas s x4Igvtc̈: ^UGRrhڥL:ZHBEC;G4*jk9c 8m;-H@ԧ7<!m&Ò;'g:<-_l6-\g'>=R}U=[kfLp!?)1۳h\Z- %?1Ϸ H\]@ߒ<І-Q,E:!5@ߛ13e`A/^Ы^4*OAl? /UFB M^;Gq}/B)aRb<>dlCvt5d~ЪCV߫M1iD(҉ kDD_"'A_BE/> qU7֫E#EqS$ M/>AFBdv~Lu't&F=L PjGKu~sM~C.L~GUyR\* i I:XI fK޽h#ImU=W5|`&IeJa^![1 iEORJу5_M-+ѾK/ZA<" +GK+຀oscLy.Թ1ʣLR?v8~J>DVM~cQ%x!MJjLbaWN=v/(фPN^ƍ"6:PEQvsA: IPC!#͘Qh@Q2:PY$<Q+ :qbVR!{C2WP!A R!it>v SݮO~3IS,Fv~RͬyUO`VUB<9ݢUv uN_Ggm'V&G^0aܸV Q;F 6ɭMX/ĂTq/X F}c^ESfPMYw#@@kYKuUTYL^MA- VYpDY0_" ^1>|~ zSd (1.v!-۶dNxKTc|P_;"e#dz͝.r6ec6)5a0<f*2<E׽d.xfx`\ELBKK&`nUo!&[$,Pulg&B+9<| &D=I_O`o|iÚ=|pzпX!,`j׼&6nK™4qQUNW3ԊNb;h ax@ɉ<;x@6qn Jw1(kIy:>`֓&AU73u,WB)ӣFŽic^)08pezC90tLUl*Avݶ=bl™ 7)-@(EoWʚ:fa;ZdBd'ׁtg n8P9̃f2ap'`=JP+cހȳ`p&I}KOX O̟Q 8Klg7_@罽 Ҫ%u e4ĶmZ)U$fF]$;+ UKu?( xR ,->#ZH<@ɤ#9'JaZˊ$sb&%FD_ig[10(T9E/b,  A&Gs-bVzFԝEo8;=ey} ڋk>e5{d}tY"7@M+J lM68;.=98(: dr;kDiQųؤub $Y[u)2Y?=1Xi*RWdO@a@wIa. )FV{H=/7cNq@0Yz ./(6*Lܕ)=M?Dhu/S&\6D)<pMبeU8Lv61AMRj|<Tl?ecұn61ܨp7ݪχ%=oSi㏨f,%^KeԐ&i MԤi,Ɯ3ˉND/EH/N TvaD|0ysSrl#^JZ2R=(ݥOPhX-]uFDʟ/-;(n`#'Mh/ǶFƕp'CEazr^:mӿx֟o U+#=:_n HRk;"!|=pI?d~b!/=,('9*@;]p+ ;9E1 1᧙@%G`gq {0L g<$N 1rP= 1 Z7Xv3MN@R33ZR>nT TtHl*U1o_hq:8~|>ןpS'o*PZB׃~%'kGEt^ \HNid16o^xsn˞Dz., A>.ۛPNjxRS6C+:|ՎJܢ+Ux\w CTKYE:7J%6t#rt\|N^qg$\:x t}i$ߦxp;Qa(Gu"CEJD' W)$Q[W]<]/+mr!|*m%?mEp` H+x+K|) w+xo.w(EtbR^NH[#g+JhFAdžuME&_?F,DptׂEӢN(ଁ\|8&zzĹK pGRsIN&GKbO<84EemvX6; gBh$A*zO0 =^i7Yrv)#$|_SJxNN|PWKLbVލQqsLkYs4u~" }59H =R[4P<.VWHT6H`=,VVKpwHr\l^ 77K>/E]0I;|sl+rWW *Q6n H_dJmXE73ʮ(t|nXxV݋%-ǩ;_q\P#~]y$bmX!z|YrZIΈ,)Ir/wvѲZUx3S*Q5E eϫ[晧R떇c7Ñזvu$!n7Fq)@9!Y/H^Vxe^u oکQVQza$)jx_ *A/PJvZ(_\µGyKӬ;]ĈWI3Eq "c\B1և+&xc 泯;z71\ ,jDY&N \Ĝ*q&0ns#1Ybz=u|J^Y'ҴpQ|H`DJBh$BJߦ{qmN}wPIOǷHDAUfWDZ}o.e<03p.xOjF]9(6N8iXzA ]= V{E}2ihn1ZCO%D $O=OB'S38z)3` jfA?M$$Fr\g~t@9* @N0^5 k\#Er3dX$,]WsYXԟ~u7CBi0_Wbpv+nFh +L[**p'ZԜ>H_b nksW9 ୑p=\~.AiSi Dɡn Tg84}MD/FQ7= +Dh?+EH8Y}h"߆kMSҤYGՖdG9_[0Ljֹltq ј[0޴0nV9HI8k : [{n⦅NMY,(eM!K$B0f^%,HmAॅ,9ָ^wU_tr,M$2Mp!pԄ8XCCmVdiQ +,IP4kZ{ tzڸ}&ڏ[jZA* ey%5NԨf ӟr. La'ƝhE^z /2Y*W")F{sgP'g(l~HukYvz?V"Cӧ.eKFq.]Eї-\M6튰 ʯl*lcNІJ+t/f#ץs 3@redYP]3>P͚# *#{!Dl;+;-nU* =DYl+JVVOgߣU  =ٷ2u}Vf>IS.'$\f-6p`V}:pQ4sn*b8&O\f2LJI(3Fq4>1 *DC͂Y(lpujAds_:ƹ|]:ꀈcm\#&xmsҖ.YNk%Bҕ0eMrMl"DX9PAD@#Y w= >dpQ"RqdI"-VkQdSs{i#IP-P*nsy+A豸IIS I2HTa.jKsNKdL$ cB%F 7e!#8LL8:覓d+Յm}h̏$P^ގК鶎AAl4NՎ?]ߐLdh.R3O̸q k䆀B3R%}v^hckg6 ;?Jm`t1Br9%'Nޖ }G] X{Q2&$q&Fx,#M}%@_ٺݴ ! nf-]iN,WČ;%B_'BEYpVÁS2pm̒Ez}DG\$ǀ ~g͎\>|8}ΥGj #l lw}H/SKqoƸaȈ}+s/lh>}U*Y͎ZCz@ W]1i3XZ~*QRPlH;>iz& Q-T[݉v'%:oP[P JьK(%)hȆ^1t_$v0x,ţbL0y\pL] 2񖷦%|(/gutyrqrGR羣U^rH%d[r M (?0cQ¸0iw$9j_]s7VK UͲ|~NNb}VRJAW . kNSUsv1.R/Fز[3-fv!쪫Ժ2MTU 6sW2Jd> ytG5%ٜNٿ\zQ\NSV&mԺ{ٜ&C ?& !DC0oeq/n딌̞ګЎRXjt4v ]6RZS᝭K8^h7SVt3Ѥ?RV}DpʱK,xbȩ)vH)ᲅp6kH*~ޖo@-x.5Uy{KkOWB+jMB@ \6oUwTŸN!G$yXte׊0I?8+(UcxpQqմ>W"LSeFek8*Hr /;VqBߪS=7ټSc e€sf"5x3lES\ zNEt/CN%znePv PiRΏpbU[!z&48+g.1~[s|2PHMufBX38G .kK:iuPqWf4 Nf^z5g SJ>]9g3-b>E58|k~m* McV{%-CsǦ*OSߙce;laYlO65:r:(%܇c5Ҕ["cNPQiو;-ccpg/).⒭ S}@~.{+e CX[?Kj HGVP$G_א\jӱCi}Ce\qaHK$R%Imq/V':&= ܱ3!oư;Ӵ\ʀAk$AYpNAb >H=dl62VL9 F09?+˰'&eт@^ycI~)خHZ)Ħ-v!a[I(=Brx;h ̪/ qiroҿ FJ-DQ0\ B-m~t&dF ~L~^d4j  9D 5ln% ` 8 7MwbWnL @:_cg,|  A ~cQl iliz1JPm` }} Y iEK rCpp{lq ߶@BkFGRٹ [5 fB :>kçƒ 1Rgdj P< y@} rC K .4pj nΎ#jhU,}X 4b5 X $gH'9 xE"ue %BeJR@= G  uA{ T# |Sv ()_ Mi[M?  2glC6 j yT'% WPU (qn KUk/QX wX$lՃNfa ߆8 +zxs+ 3385wG{# Do76":;,!!2 2i.{It2̢Yϝe 0z}/jr xw@/;^uM gz"e1 4!  ]f#FLX ! ϝ?&3n}Ճ MQH]%Xˈ eqz ja yiyE$ {})Fa|ynF *#5+ RSZ]K{ 48 tm*fv ʺDZ6}{t^c `0bP#78 4jE*,8f 1[!T82  حaCv'`,> @*r.+Z c Y6T&S[H[> f52_t-L7 y*xf{  M܄]Aa +gYұ- 09?`#Ox %QdR̬{J7 !JW:.Q gjܸy• 6P x˲9 r7G2 Q!Oq'ƛBw n\AV:[ "n ,t!4Ԏ1# N[`-ug  1NпE}/: .=ωG W) ާ!DʬBE 汉aHX sNnѦSc cJzPdć ?ЈY}+ e =d0; XxOu ^h޴ wcVX(A12M S->@ , Ze!W<, 6J(vhN'` 6 Ai<Q/B aK ɚAa A(:z+{u n$}MG$zg ^jvvb}H jV5dU1 r*|uDSv {O{žt 4XDA>*ŭ 03NMr/ 9(zĤ?J(D <^EoS*N%  dli 刐"z H*+={* %%IV½z Κ*s ?A\ /< d hDyjE؋M 3WRW⑳BJ =?Tr8 oft-WUN?4 dUA?Cd+If ҖRxք% C]QCR=`? ;3O, eVU¤)>kf# m̒ءC[FmV ڬ su*t2] Õ}U`Jh |FuJHG ѓTO5{{)f pmSĂYeF 40w{`_:+%5 o&ͮ~q zf}f#XM o ;{_-; Azm. #o&bC1l;"L; cߵt39 !aPeP:W7Y '!*2;ӵpa9 )n\/ ٚt~݂P` 90/9[   抖A jIE͋ز% Vb{xm;A h;N08^l Hɭl sL >?T,pژw S<|Ko= ǮPJ 頚f <㛆w.8} ;ו K ͗Ur?J C#ZmɈٮWs cqZ= z,@lPnPQ!Y GEr@nPb  pRcP9w E9n+m ՇbjArҺ* m4٢VpV6ƾ +}`LD 5 j| yp ãz#!޶T ^k*$ e3 H 4gI* ( 0{|uUq’ "ZmZ\ w}Sc%  9u\HZl^ y"#?" O`MVL)p ͱ.h>g0&, ukʆ^yɘy &~=` ʖ uNeU &Yiw jg_=?@ ' wTnQ: N { 6]);8C w4'ϫ- ׬Y\! 2n&(;y{Ŧ *-+[ un f>Iie\  #H=7 ܸgvnhDG:* Đ Im Qĵ$Wd^KGG Ul0e( 0kiyc& ,mbzɃ!<F ^A#t)%8 ʸzl}* Py G)gubv;[ B)nEOG53  tY"֮V i(F5>,t" ,%ZAyƽ )愊+vT <#{pWL4FG -B;z"> p/v~!|z`0b &JjL4&<|E :.eQ D+# ·-s4}S W~pN H$ Jk_QQt*@~ sgFdk 'h92dA=  }G@LoE Ŏ i>X;A {7P8D~ VLъNlX  3 e0 u%HG gT"nM {6nݽ~R [KcYb[aN |w6] U%| Kf_rU7 ]ݒ(o.ǎi SUيSO*  ocCRg"! _6 l&W55 #'qC蔽p @x؞?5 ͇.r`)NYwC AQ`姭 v5]}F*  2.BYӣ  ?qYv u/ K~IIj{9)- jShK(?F"}ɿ8 2&b՜cѼ` 7]k _i  OtNs' [EyڣOTqPRs[ CVq= an RͶq|@  wndrX! :цJ*$% HCO:|V OL(p=|. H8i#KT P8xE ݇iqhZ,S 8O OC EzIjctw OVf%XT f ;n2h .kYy ^Z5!, f6 ~[*xɵYmÌ' YL͓ \ }r7b_ yU  u'?>a[9{e `7Şxb (EZP{'V ֶfJKx[Hq +~p.B8vT | AT鍏E{ K  * S  5aV /MǭM {8 ѱ "WGC;6r $cֺVֈFhT Ϩ*XiJ 7^ٷNQ6 v$dSF@ h+ 7E] I(0Csܕ5M!v -5)P bM$1R~u5A *J:"8K K s7VEހ :n?+kH;( omz{֊2 o2!FOWBV5i@ ^n54ͦ~ *oc[뱮hPaL #8upW% G jjIe,7!q  yZ S#ё ;H*e پd)5?& E2M9;Xʟ ͐ZZ1  hnDTQkv+׺ DׂwẄ́0V JwO'TE' ۠^}D?կ S@˟&[:ߗ sx\x HNbG]Nk+ gȫ ,~K.? +W2N!ޙ0wDd )ZhG KyQ' :pe\/u]/R c-L|HKɀ k{l'm 2뙾;d'b TR;- N`Y.ZDq #Z @p ݼyڗlt ʷ*6_&ը [9qdO/mC @B{, 0ԕa E0GCC-_tTz ^e<8QP4VA r8X{uIcr 0I^$ȳ1 37I ;`dKi- 9t۴aw 4%6. )תs<@cF- tWy4D ]V>L:\ ={ťsHDs 4ц3qb*Bjv| L Ha-|A! I<[ q {#u,h3qf &ٴf囖8" oڧ F}' |i\v*hIǿ E@ [C I짅,ILk MD:֍U Cn,|=D\X#4B_駎y5..c?ZH4B SH0Tm6F&!TՑLS:3y@qCI%3>dvXCuKe~ZK'NQw< l$g;h%b#GfP͙g ӊx "yp//TD?nZ gf&[B.>OrijoIj~W\WI#Oiy`$5p {H :@`(Z-/;"7 b|٨<3.'t.qfCE%hn DdKז1|m8LѠ!O4$W@77rHd!қObP.u=m%i7 Fðˬ(tq[V|vfzeOR+< u姎3KK$M.7H\1 y;&{t$gPud"gʷ=~GH!XU_df2 D9UӓB [ w5P?H WJX>~önD.N GޛVNRC=V|ɮE4t02xebjjvU2MrҖh@zj=7%zѿ`Um kN.QJb$:w* 3ݩ6ΔCe6UxiR?ABP6+MV7 WSOaJ$=MOK|/mAMaG[TZ9?*jJMpOQ(ܫm宾:oϛH";!W!^Xϥ%w1s\O&XRN|E TL1$cQ(Ck}$ɥ 1LJl-qڦ]DstT` [cWxng J0kpԵB0Ca/`q0t"'Hﲉ-2ɂkmI`"_aKm1R9Wu|W\RxPʰTkUĭ+9R_76f&b O GϾr`q:a3"@H% q3nZgmGgN֝?"UHen:Y-CIcy=$NPj0u%JZX?Y`ÙcpM:BhZ)XL <In)luE=Iԍntma93 y稰 @ORaEbJW:G9L@Q:bgR8N:IjEQm\_ %(ݳ}:95d7Of&JfsO}iė7F-vX_]H4*Ÿ4$ǿO1~s4{ ls_-Iu𠐾IO9&D eHռ+b0o{މ\n5WWW@\qsN ] -1$~>Naku&lURY ^PYqMy}rpUZܹqlaOX8;S[Rkx}Btk\cb#;S :0/a[+#pxO"Y$+!Czy8MfO1ZRVe|\2Zt*VXM i̷ozQi %7 ъRZ/Vi_Y@wϵ[WYE 0o1u5nڋo͢|H nZ8;*Y9i"@W^!&]z^?n`\c+*ЂM1xH$ ќ:}ůֵL_LjdnOh"5ݥ.Qj$li]z^pv&tz{i&nD%_Y;etqb fW̆/^31fcoFf`.c"Vf/+.ؐY1 hRs Tg$%mJA X0У 8/'_5&`yh$F}.D|DM}^Q)G)2fCO E _Kjx7`/Ǻ }%A` vM!]v~jBe8J㡅b@2ph_ہ(Nz do] K2(^oa4!`0*? n*V晊":oJ~WQ+GߟcGGyjo*{@%GI M=[[bVr(h[5Ccq)/ s'rÿhK/6`vA( hHd0ܐ_L(x3JeӁWTzT36bf t0⦐Pq2Z;oC,^l{j,aKd^KJf0CGJn4֨W)}]!gcݡfe!+wS>6r0Á2K BQ#35t^W~Ʊ_${ƈ%1SqHKeEC uM[I?=6ꮆ +׼K3oOѻU,ۚ+ǿ^9Ӵ$(U'e!ؤ?*Cp'#:+x/R,X8n',fd3?4l$CQ I9꬐@ GKwSi'G?0ѓqsIUpJHA8Kt&Ɛ/X ~b4)э!f[7fP`4qōCEP=`E%X"O<愌/U6Nx#@8>f(,4bŔwĈ+lB<=GlGNJdnaM!:@PE* <_.H2T)3//c}K\&HpG|1.:|#'VW|_1z).j$툷 ɐu)hoҧp}!|5;!-BZrzJﯾeѥEdY$`O[:O,4Ĵ}p2lܒ)W+j=ב :¸u`=bt+'uX޻n O`l72lj2]_xF:+r#QKk.'}:Qs;hI z{۱@"b뼧DZ HfUβB]<%u5ŦmoyHodԯhY8!1HCV&3V3iBgN p_2,T\aqnsk$IO~cSi0H,p.ʬl5"=o2x7a`G=#-w ޲WM!+e>ch"n7<\fKa*!.x KϿSl0X!)>Q]t@ ăi8iDpFm77X?Q%3ﴢ&R Fm(RA߅1/}{0Sa gϨ'Cݣ^K5, K9k3Cu% 9%րjazh_;af6g/MDf'BN}=i?Xh0PBj<)9UX[!L3qv!ޓT_J!ewER@@쀝*'UO'MQ J Ol/@'"jCA˹@Y+y^~rm>>(A?+d H  K Syn is a parsing library for parsing a stream of Rust tokens into a syntax N tree of Rust source code.  K Currently this library is geared toward use in Rust procedural macros, but N6 contains some APIs that may be useful more generally. 9 G - **Data structures** — Syn provides a complete syntax tree that can JE represent any valid Rust source code. The syntax tree is rooted atHI [`syn::File`] which represents a full source file, but there are otherLA entry points that may be useful to procedural macros includingD2 [`syn::Item`], [`syn::Expr`] and [`syn::Type`].5= - **Derives** — Of particular interest to derive macros is@H [`syn::DeriveInput`] which is any of the three legal input items to aKM derive macro. An example below shows using this type in a library that canP2 derive implementations of a user-defined trait.5M - **Parsing** — Parsing in Syn is built around [parser functions] with thePK signature `fn(ParseStream) -> Result`. Every syntax tree node definedNJ by Syn is individually parsable and may be used as a building block forMI custom syntaxes, or you may dream up your own brand new syntax withoutL* involving any of our syntax tree types.-N - **Location information** — Every token parsed by Syn is associated with aQL `Span` that tracks line and column information back to the source of thatOH token. These spans allow a procedural macro to display detailed errorKL messages pointing to all the right places in the user's code. There is anO example of this below.L - **Feature flags** — Functionality is aggressively feature gated so yourOJ procedural macros enable only what they need, and do not pay in compileM time for all the rest. [`syn::File`]: File [`syn::Item`]: Item [`syn::Expr`]: Expr [`syn::Type`]: Type" [`syn::DeriveInput`]: DeriveInput% [parser functions]: mod@parse!
 # Example of a derive macroK The canonical derive macro using Syn looks like this. We write an ordinaryNJ Rust function tagged with a `proc_macro_derive` attribute and the name ofML the trait we are deriving. Any time that derive appears in the user's code,OK the Rust compiler passes their data structure as tokens into our macro. WeNG get to execute arbitrary Rust code to figure out what to do with thoseJG tokens, then hand some tokens back to the compiler to compile into theJ user's crate.) [`TokenStream`]: proc_macro::TokenStream, ```toml  [dependencies] syn = "1.0" quote = "1.0" [lib]  proc-macro = true  ```   ```  # extern crate proc_macro;  #  use proc_macro::TokenStream;  use quote::quote; + use syn::{parse_macro_input, DeriveInput};!.!+ # const IGNORE_TOKENS: &str = stringify! {!. #[proc_macro_derive(MyMacro)]!! # };"5 pub fn my_macro(input: TokenStream) -> TokenStream {"81 // Parse the input tokens into a syntax tree"4: let input = parse_macro_input!(input as DeriveInput);#=#8 // Build the output, possibly using quasi-quotation#; let expanded = quote! {$ // ...$ };$ $3 // Hand the output tokens back to the compiler$6 TokenStream::from(expanded)$# }% ```%%K The [`heapsize`] example directory shows a complete working implementation%NL of a derive macro. It works on any Rust compiler 1.31+. The example derives%OK a `HeapSize` trait which computes an estimate of the amount of heap memory&N owned by a value.''K [`heapsize`]: https://github.com/dtolnay/syn/tree/master/examples/heapsize'N( ```( pub trait HeapSize {(> /// Total number of bytes of heap memory owned by `self`.(A. fn heap_size_of_children(&self) -> usize;(1 }) ```))E The derive macro allows users to write `#[derive(HeapSize)]` on data)H structures in their program.) * ```*+ # const IGNORE_TOKENS: &str = stringify! {*. #[derive(HeapSize)]* # };* struct Demo<'a, T: ?Sized> {*  a: Box,+ b: u8,+ c: &'a str,+ d: String,+ }+ ```++


+, # Spans and error reporting,,K The token-based procedural macro API provides great control over where the,NM compiler's error messages are displayed in user code. Consider the error the,PE user sees if one of their field types does not implement `HeapSize`.-H. ```.+ # const IGNORE_TOKENS: &str = stringify! {.. #[derive(HeapSize)]. # };. struct Broken {. ok: String,/ bad: std::thread::Thread,/! }/ ```//D By tracking span information all the way through the expansion of a/GK procedural macro as shown in the `heapsize` example, token-based macros in0NH Syn are able to trigger errors that directly pinpoint the source of the0K problem.1 1 ```text1 O error[E0277]: the trait bound `std::thread::Thread: HeapSize` is not satisfied1R --> src/main.rs:7:52 |2" 7 | bad: std::thread::Thread,2%V | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `HeapSize` is not implemented for `Thread`2Y ```33
33 # Parsing a custom syntax33D The [`lazy-static`] example directory shows the implementation of a3GK `functionlike!(...)` procedural macro in which the input tokens are parsed4N using Syn's parsing API.55Q [`lazy-static`]: https://github.com/dtolnay/syn/tree/master/examples/lazy-static5T6M The example reimplements the popular `lazy_static` crate from crates.io as a6P procedural macro.66 ```6 # macro_rules! lazy_static {6  # ($($tt:tt)*) => {}7 # }7 #7 lazy_static! {7L static ref USERNAME: Regex = Regex::new("^[a-z0-9_-]{3,16}$").unwrap();7O }8 ```88K The implementation shows how to trigger custom warnings and error messages8N on the macro input.99 ```text9 , warning: come on, pick a more creative name9/ --> src/main.rs:10:169 |:< 10 | static ref FOO: String = "lazy_static".to_owned();:? | ^^^: ```::
:: # Testing; ;G When testing macros, we often care not just that the macro can be used;JL successfully but also that when the macro is provided with invalid input it;OK produces maximally helpful error messages. Consider using the [`trybuild`]FK mistakenly make an error no longer trigger or be less helpful than it used>N to be.? ?2 [`trybuild`]: https://github.com/dtolnay/trybuild?5?
?@ # Debugging@@I When developing a procedural macro it can be helpful to look at what the@LB generated code looks like. Use `cargo rustc -- -Zunstable-options@E7 --pretty=expanded` or the [`cargo expand`] subcommand.A:A: [`cargo expand`]: https://github.com/dtolnay/cargo-expandA=BJ To show the expanded code for some crate that uses your procedural macro,BMI run `cargo expand` from that crate. To show the expanded code for one ofBLL your own test cases, run `cargo expand --test the_test_case` where the lastCOC argument is the name of the test file without the `.rs` extension.DFDG This write-up by Brandon W Maister discusses debugging in more detail:DJ8 [Debugging Rust's new Custom Derive system][debugging].E;E[ [debugging]: https://quodlibetor.github.io/posts/debugging-rusts-new-custom-derive-system/E^F
FF # Optional featuresFFE Syn puts a lot of functionality behind optional features in order toFHL optimize compile time for the most common use cases. The following featuresGO are available.HHO - **`derive`** *(enabled by default)* — Data structures for representing theHRK possible input to a derive macro, including structs and enums and types.HNO - **`full`** — Data structures for representing the syntax tree of all validIR5 Rust source code, including items and expressions.J8N - **`parsing`** *(enabled by default)* — Ability to parse input tokens intoJQ' a syntax tree node of a chosen type.K*K - **`printing`** *(enabled by default)* — Ability to print a syntax treeKN& node as tokens of Rust source code.L)6 - **`visit`** — Trait for traversing a syntax tree.L9J - **`visit-mut`** — Trait for traversing and mutating in place a syntaxMM tree.M > - **`fold`** — Trait for transforming an owned syntax tree.MAO - **`clone-impls`** *(enabled by default)* — Clone impls for all syntax treeNR types.N N - **`extra-traits`** — Debug, Eq, PartialEq, Hash impls for all syntax treeOQ types.O H - **`proc-macro`** *(enabled by default)* — Runtime dependency on theOK6 dynamic library libproc_macro from rustc toolchain.P9QdocQQQ html_root_urlQ Qhttps://docs.rs/syn/1.0.81QQ5RallowRRR non_camel_case_typesRRRallowRRW? clippyRR collapsible_matchRR clippySS doc_markdownS S clippySS eval_order_dependenceSS clippySS if_then_panicS S clippyST inherent_to_stringTT clippyTT large_enum_variantTT clippyTT manual_mapT T clippyUU match_on_vec_itemsUU clippyUU missing_panics_docUU clippyUU needless_doctest_mainUU clippyUU needless_pass_by_valueUV clippyVV never_loopV V clippyVV too_many_argumentsVV clippyVV trivially_copy_pass_by_refVV clippyVV unnecessary_unwrapVW clippyWW wrong_self_conventionWRXallowXX^O clippyXX cast_possible_truncationXX clippyYY cloned_instead_of_copiedYY clippyYY default_trait_accessYY clippyYY empty_enumY Y clippyYY expl_impl_clone_on_copyZZ clippyZZ if_not_elseZ Z clippyZZ match_same_armsZZ clippy[[ "match_wildcard_for_single_variants["[ clippy[[ missing_errors_doc[[ clippy[[ module_name_repetitions[\ clippy\\ must_use_candidate\\ clippy\\ option_if_let_else\\ clippy\\ redundant_else\\ clippy\\ shadow_unrelated\] clippy]] similar_names] ] clippy]] single_match_else]] clippy]] too_many_lines]] clippy]] unseparated_literal_suffix]^ clippy^^ used_underscore_binding^^ clippy^^ wildcard_imports^X99 < = = = = = = = = A`` `  macro_use` ` aResult ParseBufferح ʭtoken9  Delimiter  Spana`cfg``a feature`aparsinga `adoca aa hiddenaaa  macro_usea !a #'*-03ɮXdoc> hidden'a'aڮޮ''aůXdocI hidden'a'a֯گ&'a\docT hidden!" 'a'a  ԰ذ' 'aWcfg_ֱ anyձ featurefull featureñ˱deriveͱ1۱doc۱`ޱ hidden߱ٱ%&#$'a'a$$'##$'a##T)')))) ' BBTTB) TspancontentT input Fֲdocֲkٲ hiddenڲԲ ' ('a('aصT,*,,,,ڵڵ & BBصTصTB, صTٵڵspanڵcontentصT input ޴FѴdocѴԴ۴ hiddenմϴ * +'a+'aӷX/-////շշ۷۷ ' FFӷXӷXF/ ӷXԷշ۷spanշcontent۷ӷXڶinput ӶJƶdocƶɶж hiddenʶĶ - .'a.'aS2#02222 ' AASSA2 SspancontentS input Kcfg߸ any޸ feature¸fullĸʸ feature̸Ըderiveָ1 0 1'a#1'a535555     ׻ ׻   ݻ ݻ Some  Some  Some ʼ ʼ˼˼ʼʼʼʼ м+"   +Ѽ Ҽ 2! 2 ۽۽  # #   9  9ǾȾɾɾ ϾϾȾȾ־־پپ ǾǾݾݾľOkľ޾    л"" expected invisible group"" ǿǿexpected parentheses?  expected curly braces  !!expected square brackets!!#$$%% $%#%$Err##лz&ƻ5 ллл л л ׻ݻʼ΁ʼ˼ ۽ ľǾľȾľɾľϾľپ cursor delimiter inputԺcontentݻ span rest scope nested unexpected contentmessageinputԺ delimiter s 3 4'a˺aWithSpan`9Cursor9ResultՀ9Lifetime 9Lifetime 9LitӁ0Ӂ9LitӁ Ӂ9LitBool؁1؁9LitBool؁ ؁9LitByte19LitByte 19 LitByteStr 1 9 LitByteStr 1 9LitChar19LitChar 19LitFloat19LitFloat 19LitInt19LitInt 19LitStr19LitStr 19 lookahead 9Parse9 ParseStream  9 IntoSpans 9Ident9Span9 TokenStream 9 Delimiter  9Literal9Punct9 TokenTree  9ToTokens˅M˅9TokenStreamExtՅ Յ9Deref9DerefMut9$aa  macro_usea a @ Tokens representing Rust punctuation, keywords, and delimiters.CG The type names in this module can be difficult to keep straight, so weJF prefer to use the [`Token!`] macro instead. This is a type-macro thatI. expands to the token type of the given token.1 [`Token!`]: crate::Token # Example : The [`ItemStatic`] syntax tree node is defined like this.=" [`ItemStatic`]: crate::ItemStatic% ```> # use syn::{Attribute, Expr, Ident, Token, Type, Visibility};A # pub struct ItemStatic { pub attrs: Vec," pub vis: Visibility,& pub static_token: Token![static],)) pub mutability: Option,, pub ident: Ident, pub colon_token: Token![:],# pub ty: Box, pub eq_token: Token![=],  pub expr: Box, pub semi_token: Token![;]," } ``` # Parsing J Keywords and punctuation can be parsed through the [`ParseStream::parse`]MB method. Delimiter tokens are parsed using the [`parenthesized!`],E' [`bracketed!`] and [`braced!`] macros.*; [`ParseStream::parse`]: crate::parse::ParseBuffer::parse()>* [`parenthesized!`]: crate::parenthesized!-" [`bracketed!`]: crate::bracketed!% [`braced!`]: crate::braced! ``` use syn::{Attribute, Result};!& use syn::parse::{Parse, ParseStream};) # # enum ItemStatic {}, // Parse the ItemStatic struct shown above./ impl Parse for ItemStatic {3 fn parse(input: ParseStream) -> Result {6 # use syn::ItemStatic;"? # fn parse(input: ParseStream) -> Result {B Ok(ItemStatic {8 attrs: input.call(Attribute::parse_outer)?,;! vis: input.parse()?,$* static_token: input.parse()?,-( mutability: input.parse()?,+# ident: input.parse()?,&) colon_token: input.parse()?,, ty: input.parse()?,#& eq_token: input.parse()?,)" expr: input.parse()?,%( semi_token: input.parse()?,+ }) # } # unimplemented!() }  } ``` # Other operationsG Every keyword and punctuation token supports the following operations.J* - [Peeking] — `input.peek(Token![...])`-0 - [Parsing] — `input.parse::()?`30 - [Printing] — `quote!( ... #the_token ... )`3E - Construction from a [`Span`] — `let the_token = Token![...](sp)`H9 - Field access to its span — `let sp = the_token.span`<- [Peeking]: crate::parse::ParseBuffer::peek()0. [Parsing]: crate::parse::ParseBuffer::parse()1@ [Printing]: https://docs.rs/quote/1.0/quote/trait.ToTokens.htmlCG [`Span`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.htmlJ:;<=8>?8@8A8B8C8D8E8F8GHIJKLMNOPQRSTUVWXYZ]bcilnwy|!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""""""""""############################################## ##### ##$$$$$ $$$$$ $$$$$ $$$$$$$ $$$$$ $$$$$$$ $$$$$ $$$$$ $$$$$$$ $$%%% %%%%% %%%%%%% %%%%%%% %%%%% %%%%% !!%%%%%%%!!!!%%%%%!!!!%%%%%!!!!%%%%%&&!!!!&&&&&!!!!&&&&&!!!!&&&&&!!!!&&&&&!!!!&&&&&&&!!!!&&&&&&&!!!!&&&&&!!!!&&&&&&&!!!!&&&&&&''''''''''''''''''''''ۈ5 Marker trait for types that represent single tokens.8I This trait is sealed and cannot be implemented for types outside of Syn.LcfgĈ؈ featureň͈parsingψ [\SelfZZ_Selfcursor  doc hidden [ZZdoc hidden \ ZZSpan]9^_`͊cfg͊Њ featureъيparsingۊ ˊSelf__3I Support writing `token.span` rather than `token.spans[0]` on tokens thatL hold a single span.Ջrepr C a```9ӌ!cfgЌ featureŌparsingnj _ cursorpeek9Ccfg featureparsing  c   `doc hiddencfg featureparsing jkSelfiicursor   jiƜiۜޜ kii 9-cfg featureparsing T_Tmmi 9ɝcfgɝ̝ feature͝՝parsingם ǝpqZToo cursor 9S pnnОО# j#֞ݞS#ОcursorS9M qnn  k M M9cfg featureprinting xMselftokens9h x  ww9cfg featureparsing zinput 9 zy y9cfg featureparsing }~Zcursor 9 }||92 ~||9&cfg featureparsing _9cfg featureparsing Zcursor 9g 9: 9cfg featureparsing Zcursor 9a 9; 9cfg featureparsing Zcursor 9c 9> 9cfg featureparsing Zcursor 9` 9> CursorErrorResult ParseStream  FromSpans SpacingSpandoc hiddencfg featureparsing $$   $Some  Some             Z              Ok     $  J"J!I(  J JI(I(I(  JI(I( 3I(JJI=I I=JJJJJJJ- )&2Err2 !$-IdII(# #  I(I(I(I(I(I(JI( !!"" 3   2I(I( 3!" I($$Some% %zIZI(& ΁ZZ Z 2-22IdII(I( I(I(I(I(I(cursortokenidentrest resIarg0  expected `  `zIZI(inputtoken?    cursortoken8  3inputtokenH SS       '&           &   &  '' '   ''Ok     '  Err   '    Ok{''   '&  ԅ '΀ inputtokenspans err val'3' $     D        ԅ  ΀   >      $ $    D 1,assertion failed: token.len() <= spans.len(),,, )  (    )   Some # 5789989Id:I;I(<=>?J?J>?=>>I(@I(AI(BI(CI(DEEI(DEJEFFDI(GHHFIII(I(HIG#I( SomeSome  !!  ! !""#$ "# $#""  "%&'' '& '((% &((&%)**+ ,-- -,%-., .,+.,) *++*)!12344 43  /00 /  /00Ok//)% 2345K 5K!!  251 !532c1!" 1)%66 66 1) JIJHI(C GJGJFI(BCI(ABI(@AJAI(I(=@<$I(J@J=I=I<;%I=J<JDJCJBJ?J:;J;5  8:7&5:8:Err7:79 IZI(L  ΁$  ΀     !:5:::IdII(I(I(I(I(I(I( cursortokenspanscursor iter__nextvalichpunctrestresI;arg0F  expected `  ` IZI( IZI( inputtokenspans!U   cursortoken:  Delimiter  GroupIdentPunctSpacingSpan TokenStream  TokenStreamExt  doc  hiddencfg  featureprinting sspanstokens?   Ѐ sspantokens=  sspantokensf$s FF *+,*  ( [ {     ɧ% ɧ% ʧ$  ) ) ʧ$ʧ$ʧ$ʧ$ʧ$ʧ$ʧ$ʧ$ʧ$ʧ$ ʧ$ ʧ$ʧ$ʧ$ʧ$ʧ$  ʧ$ ɧ%  ɧ% B 1 B    +  *           !!"+" !" ,"!#$$ %% $%# %$#&''(,(   '(& ('&, +**++, ,ʧ$_-B ɧ%Bɧ%Bʧ$BBBBʧ$Bʧ$Bʧ$Bʧ$Bʧ$BBʧ$BB      sspantokensfdelimarg0inner g  unknown delimiter: ʧ$_aCursor lookahead Parse ParseStream  ResultTokenZ UnicodeXID Identa '''''marker 5cfg  featureparsing doc  hiddenallow  non_snake_case ident )cfg  featureparsing   cfg featureparsing inputք ̈́Є ݄ cfg featureparsing Zcursorׇ χ҇ ߇9 utoken N symbol # ɍb Punctuated  TokenStream iterΐɐ sliceݐؐ Parse ParseBuffer   ParseStream  ParserResultPair proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrbbigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorTokenì'custom_punctuation_len)8Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5@b bcfgbbb anybbb featurebbfullbb featurebbderivebb1''''''''''''''self H Parses the content of the attribute, consisting of the path and tokens,ɼK as a [`Meta`] if possible.F *This function is available only if Syn is built with the `"parsing"`ĽI feature.* cfg featureparsing   'self ^7 Parse the arguments to the attribute as a syntax tree.:@ This is similar to `syn::parse2::(attr.tokens)` except that:CD - the surrounding delimiters are *not* included in the input to theG parser; andC - the error message has a more useful span when `tokens` is empty.F ```text  #[my_attr(value < 5)]% ^^^^^^^^^ what gets parsed( ```F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing  T  ^  self^selfparser= Parse the arguments to the attribute using the given parser.@F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing  F      """    """  selfparserparserinput 6 Parses zero or more outer attributes from the stream.9F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing  # input 6 Parses zero or more inner attributes from the stream.9F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing   segmentƿ <  5Ͽattr 3cfg featureparsing   attrinputVcfg featureparsing   'a'aself > Returns the identifier that begins this structured meta item.AG For example this would return the `test` in `#[test]`, the `derive` inJC `#[derive(Copy)]`, and the `path` in `#[path = "sys/windows.rs"]`.F   5 )I Conventional argument type associated with an invocation of an attributeL macro. ɀK For example if we are developing an attribute macro that is intended to bèN& invoked on function items as follows:)Ɓ ```ʁ$ # const IGNORE: &str = stringify! {ҁ'& #[my_attribute(path = "/v1/refresh")]) # }; pub fn refresh() { /* ... */Ă }ւ ```܂M The implementation of this macro would want to parse its attribute argumentsP as type `AttributeArgs`.փ ```ڃ # extern crate proc_macro; # use proc_macro::TokenStream; 5 use syn::{parse_macro_input, AttributeArgs, ItemFn};8$ # const IGNORE: &str = stringify! {' #[proc_macro_attribute] # };L pub fn my_attribute(args: TokenStream, input: TokenStream) -> TokenStream {O: let args = parse_macro_input!(args as AttributeArgs);=5 let input = parse_macro_input!(input as ItemFn);8 /* ... */ # "".parse().unwrap() } ```#' Self'a'aΈ))؈) 'aΈ)ӈself  'aself  'a 'a 'a'aM7'a   self͊ ĊNJ 'a'aselfی ҌՌ 'aattr & attr & IdentExtParseӏӏ ParseStreamڏ ڏ Result Punctuated  TokenStream iterΐsliceݐ ParseBuffer ParserPairexpected_parentheses  enter_args  AttributeArgs  FilterAttrs parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrbbigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorTokenì' Attribute ' AttrStyle 'Meta'MetaList' MetaNameValue ' NestedMeta 'custom_punctuation_len)8Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5C"cfg featureparsing ގ inputattrsP   input B  input B  input 6  ҟinput   С'input   ף'input   input   pathinputL  pathinputQ ֥  pathinputʯ\ Ҧѯ  TokenStreamԱ DZToTokensM Punctuated iterΐsliceݐParse ParseBuffer  ParseStream ParserPairexpected_parentheses  enter_args  AttributeArgs  FilterAttrs parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrbbigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì' Attribute ' AttrStyle 'Meta'MetaList' MetaNameValue ' NestedMeta 'custom_punctuation_len)8Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5C cfg featureprinting Mselftokens޲ Mselfжtokensֶ¶Ŷ  ϶Mselftokens  c AddAssignۺ ۺ  MulAssign  <c *ûû#׻B selfü   ¼self ڿݿ  self increment  selfbase d Punctuated  proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5>d ccfgccd anyccd featurecdfulldd featureddderivedc1''''''(((((((((( 'self G Get an iterator over the borrowed [`Field`] items in this object. ThisJB iterator can be used to iterate over a named or unnamed struct orE variant's fields uniformly.  ѻ(self B Get an iterator over the mutably borrowed [`Field`] items in thisEE object. This iterator can be used to iterate over a named or unnamedH& struct or variant's fields uniformly.)  ѻܽself  Returns the number of fields.! Ƚself ) Returns `true` if there are zero fields., Ƚѻ(ѻܽ,ܽself  ѻѻ( 'aѻ('a 'aܽ,'aܽself @ 'a( 'aѻ('a 'aܽ/'aܽself D 'a(IdentExt Speculative &Parse ParseStream  Result Punctuated parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorTokenì'Variant'Fields' FieldsNamed ' FieldsUnnamed (Field( Visibility ( VisPublic (VisCrate( VisRestricted (custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5B3cfg  featureparsing 'یinput  ی '׍input  ׍‰ (ӎinput  ӎ  inputЎattrsx ׎ ܽinput & Parses a named (braced struct) field.) ܽ input ( Parses an unnamed (tuple struct) field.+  (input   input   input ߮  selfʱ cfg& featurefull  ɱTokensOrDefaultTokensOrDefault TokenStreamٳ ̳ToTokensMTokenStreamExt  Punctuated parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'Variant'Fields' FieldsNamed ' FieldsUnnamed (Field( Visibility ( VisPublic (VisCrate( VisRestricted (custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5Bcfg& featureprinting ߲9ϴیMیselftokens  ی׍M׍self˸tokensѸ  ׍ʸӎMӎselftokensܺߺ  ӎӼܽMܽselftokens  ܽ(Mselftokensg  (Mselftokensi  (Mselftokens  f Punctuated Reserved8Span TokenStream   IdentFragment -fmtDisplay3Hash4Hash4Hasher4mem  proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf57f ecfge)ef anyeef featureeefullee featureffderivefe1:()))))))))))))))))))))))))))))))))))))))))))*************************+++++++++++++++++++ (self̅ new҅   cfg )   all    feature  parsing   feature  full  2  Dž  h+identқ  ʛ D͛   j+index   F   windex   S      self other        4self state Ϡ Ҡ  Hʥ ѦH Ѧנ 4Ѧڠ    ڡ ڡ Unnamed        4Ѧ     Named       4Ѧ     v    v Ϡ  !ʡ #     Ѧ    v  v  ڡ  v  v self state m mڡ Ϡ   cfg -   feature  printing -selfˢ  formatterѢ â Ƣ  ʥ 2ʢ self     ʥ  indexΨ  ƨ ɨ     m self otherƪ  L      l4self state  P  Ѧ٦H   ֫ ֫ ֫   ֫   4Ѧ    ̫ '̫ '  P̫   ֫  ֫  self state  P  cfg .   feature  printing -self  formatterŬ  q   self   >    expr   6 cfg /   any    feature  parsing   feature  printing 6 cfg /   feature  full      Parse   ParseStream  Result  path   TokenTree  Ordering °  Punctuated  Span  TokenStream   IdentFragment - fmt Display3 Hash4 Hash4 Hasher4 mem requires_terminator   parsing  printingε   proc_macro_   proc_macro2_   unicode_xid`  quote` macros` groupa  parenthesized 6 braced7  bracketed 8 tokena9 identa Identa Identa  attrb  AttributeArgsc  bigintc datad exprf genericsl itemo filet lifetimeu litu macv derivew opy stmtz ty{ pat} buffer ext  punctuated   parse_quote   parse_quote'  parse_macro_input parse_macro_input' spanned  whitespaceֈ  gen  __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread  lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2   parse_str   parse_file   ImplGenericso   Turbofisho   TypeGenericso  Lifetimeu Lifetimeu Litu LitBoolu private private Error Tokenì' Expr(  ExprArray )  ExprAssign )  ExprAssignOp )  ExprAsyncȑ *  ExprAwaitȔ *  ExprBinary *  ExprBlockΚ * ExprBox*  ExprBreak * ExprCallӣ* ExprCast*  ExprClosure *  ExprContinue *  ExprField *  ExprForLoop *  ExprGroup * ExprIf*  ExprIndex * ExprLet* ExprLit* ExprLoop*  ExprMacro *  ExprMatch * ExprMethodCall*  ExprParen * ExprPath*  ExprRange *  ExprReference *  ExprRepeat +  ExprReturn +  ExprStruct + ExprTry+  ExprTryBlock +  ExprTuple + ExprType+  ExprUnary +  ExprUnsafe +  ExprWhileƀ +  ExprYieldك + Member + Index + MethodTurbofish + GenericMethodArgumentԳ +  FieldValue + Label + Arm +  RangeLimits + custom_punctuation_len)8  AttrStylec '  Attributec ' Metac' MetaListc'  MetaNameValuec '  NestedMetac ' Fieldd( Fieldsd'  FieldsNamede '  FieldsUnnamede ( Variante' VisCratee(  VisPublice (  VisRestrictede (  Visibilitye ( Reserved8 BoundLifetimesl,  ConstParaml ,  GenericParamm , Genericsm,  LifetimeDefm ,  PredicateEqm , PredicateLifetimem,  PredicateTypem ,  TraitBoundm , TraitBoundModifierm,  TypeParamm , TypeParamBoundn,  WhereClausen , WherePredicaten, FnArgp0  ForeignItemp /  ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/  ImplItemConstq 0  ImplItemMacroq 0 ImplItemMethodq0  ImplItemTypeq 0 Itemq-  ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr-  ItemMacror .  ItemMacro2r . ItemModr.  ItemStaticr .  ItemStructr .  ItemTraitr . ItemTraitAliasr. ItemTyper.  ItemUnionr . ItemUser. Receivers0  Signatures 0  TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/  TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht.  UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1  LitByteStru 1  LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1  DataStructx 1  DataUnionx 1  DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3  BareFnArg{ 3  ReturnType{ 3 Type|2  TypeArray| 3  TypeBareFn| 3  TypeGroup| 3  TypeImplTrait| 3  TypeInfer| 3  TypeMacro| 3  TypeNever| 3  TypeParen| 3 TypePath|3 TypePtr|3  TypeReference} 3  TypeSlice} 3 TypeTraitObject}3  TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4  PatReference~ 4 PatRest~4 PatSlice4  PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5  Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5  PathArgumentsā 5  PathSegmentӁ 5 QSelf5 D  cfg /   feature  parsing +++++++++++++,,,,,,,                                                             op     1  input   m    input   = An alternative to the primary `Expr::parse` parser (from the @> [`Parse`] trait) for ambiguous syntactic positions in which a A> trailing brace should not be taken as part of the expression. A A Rust grammar has an ambiguity where braces sometimes turn a path DE expression into a struct initialization and sometimes do not. In the HD following code, the expression `S {}` is one expression. Presumably GE there is an empty struct `struct S {}` defined somewhere which it is H instantiating.   ```  # struct S;  # impl std::ops::Deref for S { " # type Target = bool; ) # fn deref(&self) -> &Self::Target { , # &true  # }  # }  let _ = *S {};  ! // parsed by rustc as: `*(S {})` $ ```  C We would want to parse the above using `Expr::parse` after the `=` F token.  @ But in the following, `S {}` is *not* a struct init expression. C  ```  # const S: &bool = &true;  if *S {} {}   // parsed by rustc as:  //  // if (*S) {  // /* empty block */  // }  // { $ // /* another empty block */ ' // }  ```  ; For that reason we would want to parse if-conditions using >A `Expr::parse_without_eager_brace` after the `if` token. Same for D? similar syntactic positions such as the condition expr after a B3 `while` token or the expr at the top of a `match`. 6 > The Rust grammar's choices around which way this ambiguity is AD resolved at various syntactic positions is fairly arbitrary. Really GA either parse behavior could work in most positions, and language DD designers just decide each case based on which is more likely to be G2 what the programmer had in mind most of the time. 5  ```  # struct S;  # fn doc() -> S {  if return S {} {}  # unreachable!()  # }   // parsed by rustc as:  //  // if (return (S {})) {  // }  // A // but could equally well have been this other arbitrary choice: D //  // if (return S) {  // }  // {}  ```  ? Note the grammar ambiguity on trailing braces is distinct from BB precedence and is not captured by assigning a precedence level to EE the braced struct init expr in relation to other operators. This can HB be illustrated by `return 0..S {}` vs `match 0..S {}`. The former E? parses as `return (0..(S {}))` implying tighter precedence for BD struct init than `..`, while the latter parses as `match (0..S) {}` G9 implying tighter precedence for `..` than struct init, a < contradiction.  cfg 1   feature  full       ` self   5      _ self   5      self other  V     self other   °                            ƭï  ï     ï op base ï input lhs  allow_struct base 0  cfg 2   feature  full    input   4  input  allow_struct  P  ۱ input  ر ; cfg 8 ѱ  feature ɱ full˱    input  allow_struct  L cfg 9   feature  full    attrs input  allow_struct (  cfg ;   feature  full    input e  B cfg ;   feature  full    input  allow_struct  K cfg ?   feature  full    input  allow_struct  Y cfg D   feature  full      cfg E ά  feature Ƭ fullȬ  *input       input   5 cfg F   feature  full    input   6 cfg G   feature  full      cfg H   feature  full  )input        cfg I   feature  full  +input       input   < cfg J   feature  full     *input       input   6 cfg L   feature  full   *   cfg M   feature  full  *input   V    input   6  input   O cfg M   feature  full   +   cfg N   feature  full  *input        cfg N   feature  full  *input       input   F cfg O   feature  full   U   cfg O   feature  full  *input        cfg P   feature  full  *input       Є cfgЄ Qӄ   featureԄ ܄ fullބ ΄ *inputυ  ƅ Ʌ  օ   cfg R   feature  full  *input       input attrs  allow_struct̛ (  cfg R   feature  full ߚ     cfg S   feature  full  +input       input attrs  allow_struct٠ (  cfg S   feature  full      cfg S Ţ  feature  full  *input       Ϥ cfgϤ TҤ   featureӤ ۤ fullݤ ͤ *inputҥ  ɥ ̥  ٥  ը cfgը Tب   feature٨  full Ө *inputԩ  ˩ Ω  ۩ «  cfg T   feature  full  +input      ۭ  cfg U   feature  full  +input        cfg U   feature  full  +input  ߰    Ĵ inputѴ  allow_struct  U cfg U   feature  full   ش   cfg W   feature  full  *input       input   1 cfg X   feature  full   3   cfg Z   feature  full  +input        cfg Z   feature  full  +input        cfg [   feature  full  input        cfg [   feature  full  *input       input  allow_struct  Q cfg [   feature  full    input  allow_struct  P cfg \   feature  full      cfg ]   feature  full  +input        cfg ^   feature  full  +input       input attrs path    cfg ^   feature  full      cfg _   feature  full  +inputǀ     ΀  input  Մ C cfg ` ΄  feature Ƅ fullȄ      cfg ` ȇ  feature  full‡  *input       input  allow_struct ߌ QČ cfgČ anj ،  featureȌ Ќ fullҌ Œ  *   cfg a   feature  full  +input       *input     Ę ֛ input       Ԟ cfgԞ cמ   feature؞  full Ҟ +input͟  ğ ǟ  ԟ Ҩ input       #        1     #                 #   #     err float  # e  dot_token float ! X ܡ # ݳ ³ cfg³ fų ֳ  featureƳ γ fullг  self     ʥ ε  FilterAttrs  Literal   TokenStreamɶ ɶ ToTokens M TokenStreamExt   Punctuated  Span  IdentFragment - fmt Display3 Hash4 Hash4 Hasher4 mem requires_terminator   parsing  printingε   proc_macro_   proc_macro2_   unicode_xid`  quote` macros` groupa  parenthesized 6 braced7  bracketed 8 tokena9 identa Identa Identa  attrb  AttributeArgsc  bigintc datad exprf genericsl itemo filet lifetimeu litu macv derivew opy stmtz ty{ pat} path buffer ext  punctuated   parse_quote   parse_quote'  parse_macro_input parse_macro_input' spanned  whitespaceֈ  gen  __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread  lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2   parse_str   parse_file   ImplGenericso   Turbofisho   TypeGenericso  Lifetimeu Lifetimeu Litu LitBoolu private private Error Result Tokenì' Expr(  ExprArray )  ExprAssign )  ExprAssignOp )  ExprAsyncȑ *  ExprAwaitȔ *  ExprBinary *  ExprBlockΚ * ExprBox*  ExprBreak * ExprCallӣ* ExprCast*  ExprClosure *  ExprContinue *  ExprField *  ExprForLoop *  ExprGroup * ExprIf*  ExprIndex * ExprLet* ExprLit* ExprLoop*  ExprMacro *  ExprMatch * ExprMethodCall*  ExprParen * ExprPath*  ExprRange *  ExprReference *  ExprRepeat +  ExprReturn +  ExprStruct + ExprTry+  ExprTryBlock +  ExprTuple + ExprType+  ExprUnary +  ExprUnsafe +  ExprWhileƀ +  ExprYieldك + Member + Index + MethodTurbofish + GenericMethodArgumentԳ +  FieldValue + Label + Arm +  RangeLimits + custom_punctuation_len)8  AttrStylec '  Attributec ' Metac' MetaListc'  MetaNameValuec '  NestedMetac ' Fieldd( Fieldsd'  FieldsNamede '  FieldsUnnamede ( Variante' VisCratee(  VisPublice (  VisRestrictede (  Visibilitye ( Reserved8 BoundLifetimesl,  ConstParaml ,  GenericParamm , Genericsm,  LifetimeDefm ,  PredicateEqm , PredicateLifetimem,  PredicateTypem ,  TraitBoundm , TraitBoundModifierm,  TypeParamm , TypeParamBoundn,  WhereClausen , WherePredicaten, FnArgp0  ForeignItemp /  ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/  ImplItemConstq 0  ImplItemMacroq 0 ImplItemMethodq0  ImplItemTypeq 0 Itemq-  ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr-  ItemMacror .  ItemMacro2r . ItemModr.  ItemStaticr .  ItemStructr .  ItemTraitr . ItemTraitAliasr. ItemTyper.  ItemUnionr . ItemUser. Receivers0  Signatures 0  TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/  TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht.  UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1  LitByteStru 1  LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1  DataStructx 1  DataUnionx 1  DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3  BareFnArg{ 3  ReturnType{ 3 Type|2  TypeArray| 3  TypeBareFn| 3  TypeGroup| 3  TypeImplTrait| 3  TypeInfer| 3  TypeMacro| 3  TypeNever| 3  TypeParen| 3 TypePath|3 TypePtr|3  TypeReference} 3  TypeSlice} 3 TypeTraitObject}3  TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4  PatReference~ 4 PatRest~4 PatSlice4  PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5  Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5  PathArgumentsā 5  PathSegmentӁ 5 QSelf5 D  cfg f   feature  printing  =й й й   ܹ ܹ й ҹ Nҹ     4 4  =   = й й ܹ tokens eθ  = tokens eθ  7 cfg f   feature  full      attrs tokens ٺ R cfg g Һ  featureº ʺ full̺      attrs tokens  G cfg g   feature  full    ȿ  cfg g   feature  full  Mself tokens       cfg g   feature  full  Mself tokens      *Mself tokens       cfg h   feature  full  *Mself tokens       cfg i   feature  full  +Mself tokens       cfg i   feature  full  Mself tokens       cfg i   feature  full  +Mself tokens      *Mself tokens      Mself tokens      Mself tokens      *Mself tokens       cfg k   feature  full  +Mself tokens      Q         N     H H  Q  Q    tokens else_  Q tokens else_  W cfg l   feature  full       cfg l   feature  full  Mself tokens       cfg m   feature  full  Mself tokens       cfg m   feature  full  Mself tokens       cfg n   feature  full  Mself tokens       cfg o   feature  full  Mself tokens       cfg o   feature  full  Mself tokens     cfgp featurefullMselftokens  ߉cfgq featurefull*Mselftokens  ߌcfgq featurefullMselftokens  ߎcfgߎq featurefullݎMselftokensُ܏  cfgrő featurefullMselftokens  cfgr featurefullMselftokens  Кcfgs featurefullMselftokens  cfgs featurefullޝ)Mшselftokens۞ޞ  шڠcfgڠtݠ featureޠfullؠ)Mselftokensסڡ  *Mselftokens  Mselftokens ʥMselftokensө֩ *Mselftokens  cfgu featurefullMselftokens  ֲMselftokens  cfgvд featureȴfullʴMselfȵtokensε  ǵcfgw·ӷ feature÷˷fullͷMselfǸtokens͸  ƸcfgwϺ featureǺfullɺMselfƻtokens̻  Żcfgw featurefullMselftokens  cfgx featurefullMselftokens  cfgx featurefullMselftokens  cfgy featurefullMselftokens  cfgy featurefullMselftokens  Mselftokens  cfgz featurefull+Mselftokens  cfgz featurefullMselftokens  cfgz featurefullMselftokens  cfg{ featurefullMselftokens  lIterIterMut Punctuated   proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5<l kcfgk}kl anykkl featurekkfullkk featurekkderivekk1,,,,,,,,,,,,,,,,,,,,,,,,,,,,, self V Returns an Iterator<Item = &TypeParam>)+ over the type parameters in `self.params`..  self h Returns an Iterator<Item = &mut TypeParam>)+ over the type parameters in `self.params`..  self R Returns an Iterator<Item = &LifetimeDef>)/ over the lifetime parameters in `self.params`.2 self d Returns an˂ Iterator<Item = &mut LifetimeDef>)/ over the lifetime parameters in `self.params`.2 self܈ LjY Returns an Iterator<Item = &ConstParam>)/ over the constant parameters in `self.params`.2Έ ۈself k Returns an Iterator<Item = &mut ConstParam>)/ over the constant parameters in `self.params`.2 selfЍ I Initializes an empty `where`-clause if there is not one present already.L  ,ˍ 2'a'a'a,2 'a222222ҏ'a)ր'a 'a,self  'a րր)ؒ ͒8'a'a'a͒8 'a͒8͒8͒8͒8у͒8͒8'a)'a 'aself ٓܓ 'a ) 1'a'a'a1 'aˆ111111'a)'a 'a,self  'a )Ù 7'a'aԙԙ'a7 'a7у777у77'a)'a  'aselfњ Ěǚ 'a )̚ 3'a'a'a3 'aԍ333333'a)ڏ'a՝ڝ 'a,self  'a ڏڏ)9'a'aǠǠ'a9 'a9у999у99'a)'a 'aselfš  'a ) *( Returned by `Generics::split_for_impl`.+M *This type is available only if Syn is built with the `"derive"` or `"full"`P' feature and the `"printing"` feature.**cfg featureprinting 'a'a  'a* 'a* ***Ϙ** *( Returned by `Generics::split_for_impl`.Ϧ+M *This type is available only if Syn is built with the `"derive"` or `"full"`P' feature and the `"printing"` feature.*Ч*cfg featureprinting 'a'a  'a* 'aޛ*Ϙ***Ϙ** '* Returned by `TypeGenerics::as_turbofish`.-M *This type is available only if Syn is built with the `"derive"` or `"full"`P' feature and the `"printing"` feature.**cfg featureprinting 'a'a  'a' 'a'Ϙ'''Ϙ''cfg featureprinting self F Split a type's generics into the pieces required for impl'ing a traitǬI for that type. ```" # use proc_macro2::{Span, Ident};% # use quote::quote; #4 # let generics: syn::Generics = Default::default();76 # let name = Ident::new("MyType", Span::call_site());̮9 #L let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();O quote! { G impl #impl_generics MyTrait for #name #ty_generics #where_clause {J // ...Ȱ }߰  } # ; ```F *This method is available only if Syn is built with the `"derive"` orI0 `"full"` feature and the `"printing"` feature.*3  cfgׂ featureprinting 'a'aself IG Turn a type's generics like `` into a turbofish like `::`.JF *This method is available only if Syn is built with the `"derive"` orI0 `"full"` feature and the `"printing"` feature.*3 'a ̪,­ ­lifetime  ident  IdentExtParse ParseStream  ResultIterIterMut Punctuated  TypeParams  TypeParams  TypeParamsMutؒ  TypeParamsMutؒ  Lifetimes  Lifetimes  LifetimesMutÙ  LifetimesMutÙ  ConstParams  ConstParams ConstParamsMutConstParamsMut ImplGenerics  ImplGenerics  TypeGenerics  TypeGenerics  Turbofish  Turbofish parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorTokenì'Generics, GenericParam , TypeParam , LifetimeDef , ConstParam ,BoundLifetimes,TypeParamBound, TraitBound ,TraitBoundModifier, WhereClause ,WherePredicate, PredicateType ,PredicateLifetime, PredicateEq ,custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5Fwcfgʃ featureparsing input   input    input ׆ چ  ­­inputđ  ­ˑ ­inputܗ ӗ֗  ܙinput   Ȩ,input    ,input    ,input ػۻ  input   input   input   ,input    FilterAttrs TokensOrDefaultTokensOrDefaultPair TokenStream  TokenTree ToTokensMTokenStreamExt IterIterMut Punctuated  TypeParams  TypeParams  TypeParamsMutؒ  TypeParamsMutؒ  Lifetimes  Lifetimes  LifetimesMutÙ  LifetimesMutÙ  ConstParams  ConstParams ConstParamsMutConstParamsMut ImplGenerics  ImplGenerics  TypeGenerics  TypeGenerics  Turbofish  Turbofish parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericslitemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'Generics, GenericParam , TypeParam , LifetimeDef , ConstParam ,BoundLifetimes,TypeParamBound, TraitBound ,TraitBoundModifier, WhereClause ,WherePredicate, PredicateType ,PredicateLifetime, PredicateEq ,custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+FnArgp0 ForeignItemp / ForeignItemFnp /ForeignItemMacrop/ForeignItemStaticp/ForeignItemTypep/ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0ImplItemMethodq0 ImplItemTypeq 0Itemq- ItemConstq -ItemEnumq-ItemExternCrateq-ItemFnq-ItemForeignModq-ItemImplr- ItemMacror . ItemMacro2r .ItemModr. ItemStaticr . ItemStructr . ItemTraitr .ItemTraitAliasr.ItemTyper. ItemUnionr .ItemUser.Receivers0 Signatures 0 TraitItems /TraitItemConsts/TraitItemMacros/TraitItemMethods/ TraitItemTypes /UseGlobs.UseGroups/UseNamet.UsePatht. UseRenamet .UseTreet.Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1Datax1DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5Gacfgݐ featureprinting ; Mselftokens  'aM'aselftokens 'a 'aM'aself݅tokensυ҅ 'a ܅ʔ'aM'aselftokens 'a ­M­selfۗtokens͗З  ­ڗMselftokens   Mselftokensٝ ܝ  ޫ Mselftokens  Mselftokens  Mselftokens  Mselftokensۼ޼ ,Mselftokens  ,Mselftokens  ,Mselftokens  oData1DataEnum1 DataStruct 1  DataUnion 1  DeriveInput 1  Punctuated  TokenStream mem  proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericsl ImplGenericso  Turbofisho  TypeGenericso itemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultTokenì'custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf57o ocfgooo featureoofulloo------------------------.....................//////////////////////000000000000000 -selfnew ȠcfgȠˠߠ feature̠Ԡparsing֠ Ơ  1input  ܝܝܝ.input  ˞ܝܝܝ-inputڶ Ҷն ܝܝܝ.input  ܝٮ0selfɯ B A method's `self` receiver, such as `&self` or `self: Box`.E   0ȯ׼u0self _  Ѣ ӮIdentExt SpeculativeϾ &Parse ParseBuffer   ParseStream  ResultBrace&Brace & Delimiterп п GroupۿۿPunctSpacing TokenTree  iter FromIterator (  Punctuated  TokenStream mem parsingprinting proc_macro_  proc_macro2_  unicode_xid` quote`macros`groupa parenthesized 6braced7 bracketed 8tokena9identaIdentaIdenta attrb AttributeArgsc bigintcdatadexprfgenericsl ImplGenericso  Turbofisho  TypeGenericso itemofilet lifetimeu litu macv derivew opy stmtz ty{ pat} pathbufferÂext punctuated  parse_quote  parse_quote' parse_macro_inputparse_macro_input'spanned whitespaceֈ gen __private custom_keywordcustom_keyword(impl_parse_for_custom_keyword(!impl_to_tokens_for_custom_keyword(!impl_clone_for_custom_keyword($impl_extra_traits_for_custom_keywordŠ)$custom_punctuationcustom_punctuation)!impl_parse_for_custom_punctuation)!%impl_to_tokens_for_custom_punctuation)%!impl_clone_for_custom_punctuation)!(impl_extra_traits_for_custom_punctuation)(custom_punctuation_repr)custom_punctuation_unexpected)stringify_punct)sealedspanthread lookahead parsereservedverbatimprintrustdoc_workarounderrorparse parse2  parse_str  parse_file Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorTokenì'Item- ItemConst -ItemEnum-ItemExternCrate-ItemFn-ItemForeignMod-ItemImpl- ItemMacro . ItemMacro2 .ItemMod. ItemStatic . ItemStructƉ . ItemTrait .ItemTraitAlias.ItemType. ItemUnion .ItemUseҞ.UseTree.UsePath.UseName. UseRename .UseGlob.UseGroup/ ForeignItem / ForeignItemFn /ForeignItemStatic/ForeignItemType/ForeignItemMacro/ TraitItem /TraitItemConst/TraitItemMethodق/ TraitItemType /TraitItemMacro/ImplItem/ ImplItemConst 0ImplItemMethodՠ0 ImplItemType 0 ImplItemMacro 0 Signature 0FnArg0Receiver0custom_punctuation_len)8 AttrStylec ' Attributec 'Metac'MetaListc' MetaNameValuec ' NestedMetac 'Fieldd(Fieldsd' FieldsNamede ' FieldsUnnamede (Variante'VisCratee( VisPublice ( VisRestrictede ( Visibilitye (Armf+ FieldValuef +GenericMethodArgumentf+Labelf+MethodTurbofishg+ RangeLimitsg +Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh *ExprBoxh* ExprBreakh *ExprCallh*ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi *ExprIfi* ExprIndexi *ExprLeti*ExprLiti*ExprLoopi* ExprMacroi * ExprMatchi *ExprMethodCalli* ExprParenj *ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj +ExprTryj+ ExprTryBlockj + ExprTuplej +ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk +Indexk+Memberk+BoundLifetimesl, ConstParaml , GenericParamm ,Genericsm, LifetimeDefm , PredicateEqm ,PredicateLifetimem, PredicateTypem , TraitBoundm ,TraitBoundModifierm, TypeParamm ,TypeParamBoundn, WhereClausen ,WherePredicaten,Data1DataEnum1 DataStruct 1 DataUnion 1 DeriveInput 1Filet0Litu0LitBoolu1LitByteu1LitByteu 1 LitByteStru 1 LitByteStru 1LitCharu1LitCharu 1LitFloatv1LitFloatv 1LitIntv1LitIntv 1LitStrv1LitStrv 1StrStylev1Macrow1MacroDelimiterw1BinOpy1UnOpy2Blockz2Localz2Stmtz2Abi{3 BareFnArg{ 3 ReturnType{ 3Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3TypePath|3TypePtr|3 TypeReference} 3 TypeSlice} 3TypeTraitObject}3 TypeTuple} 3Variadic}3FieldPat~4Pat~3PatBox~4PatIdent~4PatLit~4PatMacro~4PatOr~4PatPath~4PatRange~4 PatReference~ 4PatRest~4PatSlice4 PatStruct 4PatTuple4PatTupleStruct4PatType4PatWild4AngleBracketedGenericArgumentsՀ5Binding5 Constraint 5GenericArgument5ParenthesizedGenericArguments5Path5 PathArgumentsā 5 PathSegmentӁ 5QSelf5Eнcfgнӽ featureԽܽparsing޽ ν;00000000?input ?  ƀ$  ʁ ʁ "-!ۂۂ#2 % input׃ ΃ у ރ .inputԐ ːΐ ې  .input ݗ    -input   .input׭ έѭ ޭ .input   .input   -input    args L  #3dots 8  #input -  input   -input   inputattrsvissig(  input   ѢѢinput  Ѣ  input L   input 6 4 ي .€input   € ϕ-input   /input  › µ/input   ȹ/input   /input   begininputY  /input   .input   begininputJ  ˞˞input  ˞ input   input   input A  .input   inputattrsvisunsafety auto_token trait_token identgenericsg   ȅ.input   input   inputۋattrsvis trait_token identӌgenericsI  Ó/input   ɧ/input   /input ذ۰   /inputϹ ƹ ɹ ֹ begininputU  /ݖinput  ݖ -ٗinput  ٗ  inputallow_verbatim_impl$X ٗ /input   0input    0input    0inputٝ Нӝ  begininputS  0input   ݭself  Е1self˯   ߟʯ FilterAttrs ޱTokensOrDefaultTokensOrDefaultPair TokenStreamղ ȲToTokensMTokenStreamExt  Punctuated ̱mem ̱parsing̱printing̱ proc_macro_ ̱ proc_macro2_ ̱ unicode_xid` ̱quote`̱macros`̱groupa̱ parenthesized 6̱braced7̱ bracketed 8̱tokena9̱identa̱Identa̱Identa ̱attrḇ AttributeArgsc ̱bigintc̱dataḏexprf̱genericsḻ ImplGenericso ̱ Turbofisho ̱ TypeGenericso ̱itemo̱filet ̱lifetimeu ̱litu ̱macv ̱derivew ̱opy ̱stmtz ̱ty{ ̱pat} ̱patẖbufferÂ̱exṯ punctuated ̱ parse_quote ̱ parse_quote' ̱parse_macro_inpuṯparse_macro_input'̱spanneḏ whitespaceֈ ̱geṉ __private ̱custom_keyworḏcustom_keyword(̱impl_parse_for_custom_keyword(̱!impl_to_tokens_for_custom_keyword(!̱impl_clone_for_custom_keyword(̱$impl_extra_traits_for_custom_keywordŠ)$̱custom_punctuatioṉcustom_punctuation)̱!impl_parse_for_custom_punctuation)!̱%impl_to_tokens_for_custom_punctuation)%̱!impl_clone_for_custom_punctuation)!̱(impl_extra_traits_for_custom_punctuation)(̱custom_punctuation_repr)̱custom_punctuation_unexpected)̱stringify_punct)̱sealeḏspaṉthreaḏ lookahead ̱parse̱reserveḏverbatim̱prinṯrustdoc_workarounḏerroṟparse ̱parse2 ̱ parse_str ̱ parse_file ̱Lifetimeu ̱Lifetimeu ̱Litu ̱LitBoolu ̱private̱private̱ErroṟResulṯTokenì'̱Item-̱ ItemConst -̱ItemEnum-̱ItemExternCrate-̱ItemFn-̱ItemForeignMod-̱ItemImpl-̱ ItemMacro .̱ ItemMacro2 .̱ItemMod.̱ ItemStatic .̱ ItemStructƉ .̱ ItemTrait .̱ItemTraitAlias.̱ItemType.̱ ItemUnion .̱ItemUseҞ.̱UseTree.̱UsePath.̱UseName.̱ UseRename .̱UseGlob.̱UseGroup/̱ ForeignItem /̱ ForeignItemFn /̱ForeignItemStatic/̱ForeignItemType/̱ForeignItemMacro/̱ TraitItem /̱TraitItemConst/̱TraitItemMethodق/̱ TraitItemType /̱TraitItemMacro/̱ImplItem/̱ ImplItemConst 0̱ImplItemMethodՠ0̱ ImplItemType 0̱ ImplItemMacro 0̱ Signature 0̱FnArg0̱Receiver0̱custom_punctuation_len)8̱ AttrStylec '̱ Attributec '̱Metac'̱MetaListc'̱ MetaNameValuec '̱ NestedMetac '̱Fieldd(̱Fieldsd'̱ FieldsNamede '̱ FieldsUnnamede (̱Variante'̱VisCratee(̱ VisPublice (̱ VisRestrictede (̱ Visibilitye (̱Armf+̱ FieldValuef +̱GenericMethodArgumentf+̱Labelf+̱MethodTurbofishg+̱ RangeLimitsg +̱Exprg(̱ ExprArrayg )̱ ExprAssignh )̱ ExprAssignOph )̱ ExprAsynch *̱ ExprAwaith *̱ ExprBinaryh *̱ ExprBlockh *̱ExprBoxh*̱ ExprBreakh *̱ExprCallh*̱ExprCasth*̱ ExprClosureh *̱ ExprContinuei *̱ ExprFieldi *̱ ExprForLoopi *̱ ExprGroupi *̱ExprIfi*̱ ExprIndexi *̱ExprLeti*̱ExprLiti*̱ExprLoopi*̱ ExprMacroi *̱ ExprMatchi *̱ExprMethodCalli*̱ ExprParenj *̱ExprPathj*̱ ExprRangej *̱ ExprReferencej *̱ ExprRepeatj +̱ ExprReturnj +̱ ExprStructj +̱ExprTryj+̱ ExprTryBlockj +̱ ExprTuplej +̱ExprTypek+̱ ExprUnaryk +̱ ExprUnsafek +̱ ExprWhilek +̱ ExprYieldk +̱Indexk+̱Memberk+̱BoundLifetimesl,̱ ConstParaml ,̱ GenericParamm ,̱Genericsm,̱ LifetimeDefm ,̱ PredicateEqm ,̱PredicateLifetimem,̱ PredicateTypem ,̱ TraitBoundm ,̱TraitBoundModifierm,̱ TypeParamm ,̱TypeParamBoundn,̱ WhereClausen ,̱WherePredicaten,̱Data1̱DataEnum1̱ DataStruct 1̱ DataUnion 1̱ DeriveInput 1̱Filet0̱Litu0̱LitBoolu1̱LitByteu1̱LitByteu 1̱ LitByteStru 1̱ LitByteStru 1̱LitCharu1̱LitCharu 1̱LitFloatv1̱LitFloatv 1̱LitIntv1̱LitIntv 1̱LitStrv1̱LitStrv 1̱StrStylev1̱Macrow1̱MacroDelimiterw1̱BinOpy1̱UnOpy2̱Blockz2̱Localz2̱Stmtz2̱Abi{3̱ BareFnArg{ 3̱ ReturnType{ 3̱Type|2̱ TypeArray| 3̱ TypeBareFn| 3̱ TypeGroup| 3̱ TypeImplTrait| 3̱ TypeInfer| 3̱ TypeMacro| 3̱ TypeNever| 3̱ TypeParen| 3̱TypePath|3̱TypePtr|3̱ TypeReference} 3̱ TypeSlice} 3̱TypeTraitObject}3̱ TypeTuple} 3̱Variadic}3̱FieldPat~4̱Pat~3̱PatBox~4̱PatIdent~4̱PatLit~4̱PatMacro~4̱PatOr~4̱PatPath~4̱PatRange~4̱ PatReference~ 4̱PatRest~4̱PatSlice4̱ PatStruct 4̱PatTuple4̱PatTupleStruct4̱PatType4̱PatWild4̱AngleBracketedGenericArgumentsՀ5̱Binding5̱ Constraint 5̱GenericArgument5̱ParenthesizedGenericArguments5̱Path5̱ PathArgumentsā 5̱ PathSegmentӁ 5̱QSelf5̱Ccfg featureprinting ; ˳Mselftokens  MselfݸtokensϸҸ  ܸMselftokens  Mselftokens  Mselftokens  €M€selftokens  €Mselftokens  Mselftokens  Mselftokens  ˞M˞selftokens  ˞Mselftokens  Mselftokens  Mselftokens  ٗMٗselftokens  ٗMselftokens  Mselfˀtokensр  ʀ.Mself̃tokens҃  ˃.Mselftokensc  .MselftokensƇ  .Mselftokens։hى  /Mselftokens  Mself֍tokens܍ȍˍ  ՍMselftokens  Mselftokens֗ٗ  ƝݖMݖselftokens  ݖMselftokens  Mselftokens   Mselftokens   Mselftokensڰݰ     Mselftokens     Mselftokens    ӹ Mselftokens     Mselftokens    ߾argtokensܾJ  Mselftokens     ѢMѢselftokens   t proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  litu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  Lifetimeu  Lifetimeu  Litu  LitBoolu  private private Error Result Tokenì' custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 @t tcfgttt featurettfulltt 0 Parse ParseStream   Result parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  litu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  Lifetimeu  Lifetimeu  Litu  LitBoolu  private private Error Tokenì' File0 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 Acfg featureparsing    0Ǔinput   Ǔ    FilterAttrs  TokenStream  ToTokensM TokenStreamExt  parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  litu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  Lifetimeu  Lifetimeu  Litu  LitBoolu  private private Error Result Tokenì' File0 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 A cfg featureprinting    ǓMǓselftokens   Ǔ  uIdent Span Ordering° fmt Display3 Hash4 Hash4 Hasher4 lookahead  u < G A Rust lifetime: `'a`.4 Lifetime names must conform to the following rules:7! - Must start with an apostrophe.$/ - Must not consist of just an apostrophe: `'`.2J - Character after the apostrophe must be `_` or a Unicode code point withM the XID_Start property.M - All following characters must be Unicode code points with the XID_ContinueP property. Ӯ        Ӯsymbolspan # Panics E Panics if the lifetime does not conform to the bulleted rules above.H # Invocation ``` # use proc_macro2::Span; # use syn::Lifetime; # # fn f() -> Lifetime {' Lifetime::new("'a", Span::call_site())* # } ``` Ӯ  self    selfspanq  Ӯ    Ӯ3Ӯself formatter       Ӯ ӮselfЁ  ƁɁ Ӯ ρ  ւv Ӯ ӮӮselfother R  Ӯ   ΃Ӯ Ӯ  ӮӮӮselfother a    v Ӯ Ӯselfother X    g Ӯ4Ӯselfh H Ѧ٦ H     ÆÆکĆĆņ##̆H Ӯ ÆselfhHmarker ;҆cfg҆Ն featureֆކparsing Іdoc hiddenallow non_snake_case ӮParse ParseStreamLj Lj  ResultԈԈ Ident Span Ordering° fmt Display3 Hash4 Hash4 Hasher4 lookahead  Lifetime  Lifetime  parsing  printing͋  cfg featureparsing    ӮӮinputʼn   Ӯ ̉  ͋Punct Spacing TokenStream   ToTokensM TokenStreamExt  Ident Span Ordering° fmt Display3 Hash4 Hash4 Hasher4 lookahead  Lifetime  Lifetime  parsing  printing͋   ɋcfgƋ featureprinting    ӮMӮselftokens    u lookahead܏ Տ Parse Parser Error Result Ident TokenStream  TokenTree‘  Literalߑߑ Span fmt Display3 strגݒ FromStrB u 0000011111111 1 1 1 111111111111 1 Ν ǝ<   ܝܝ   U    U   ȁ          W   ȁ   ʡʡ       1valuespan Ȅ  self   Ȅ  self TB Parse a syntax tree node from the content of this string literal.EF All spans in the syntax tree will point to the span of this `LitStr`.I # Example  ``` use proc_macro2::Span;L use syn::{Attribute, Error, Ident, Lit, Meta, MetaNameValue, Path, Result};ӨO6 // Parses the path from an attribute that looks like:9 // // #[path = "a::b::c"] //; // or returns `None` if the input is some other attribute.>8 fn get_path(attr: &Attribute) -> Result> {;% if !attr.path.is_ident("path") {( return Ok(None);֫ }  match attr.parse_meta()? {"K Meta::NameValue(MetaNameValue { lit: Lit::Str(lit_str), .. }) => {N& lit_str.parse().map(Some)) }  _ => {ǭ8 let message = "expected #[path = \"...\"]";ޭ;3 Err(Error::new_spanned(attr, message))6 }ٮ  }  } ```cfg featureparsing  υ T   ʹ T  ȄselfTselfparser 5 Invoke parser on the content of this string literal.8F All spans in the syntax tree will point to the span of this `LitStr`.IԱ # Exampleܱ  ``` # use proc_macro2::Span; # use syn::{LitStr, Result};  #Ȳ # fn main() -> Result<()> {Ҳ? # let lit_str = LitStr::new("a::b::c", Span::call_site());B #( # const IGNORE: &str = stringify! {dz+! let lit_str: LitStr = /* ... */;$ # }; C // Parse a string literal like "a::b::c" into a Path, not allowingF2 // generic arguments on any of the path segments.5B let basic_path = lit_str.parse_with(syn::Path::parse_mod_style)?;E # # Ok(()) # } ```cfgĶض featureŶͶparsing϶  υ F   Ź                    Ʌ                  ! !    Ok     ! ! Err!!! !! !!!  !!!        ӿ(   ӿ(ӿ(ӿ(ӿ ӿ( ʿʿʿ   !!  ɷ       !!!! ӿ( selfparsertokens err! val  self Aυ  selfspanV  Ȅ  self > υ  ׹&       ߹߹ ߹׹&߹   ׹&عtokenعspan׹&̸streamspan ɸFtokenspan C  1valuespan     self     self A   selfspanV    self >     1valuespan ҵ  self   ҵ  self A Ҷ  selfspanV  ҵ  self > Ҷ    1valuespan   self     self A   selfspanV    self >     1reprspan   self E    self 0 Parses the literal into a selected number type.3D This is equivalent to `lit.base10_digits().parse()` except that theGI resulting errors will be correctly spanned to point to the literal tokenL in the macro input. ``` use syn::LitInt;. use syn::parse::{Parse, ParseStream, Result};1 struct Port { value: u16, } impl Parse for Port {3 fn parse(input: ParseStream) -> Result {6* let lit: LitInt = input.parse()?;-0 let value = lit.base10_parse::()?;3 Ok(Port { value }) }  } ``` N N   B3B) ) E""""  b /  + b)bbbb"b"selfself >   self A   selfspanV      ȁtoken   ȁ    3self formatter  k     reprspan   self E    self   N   ) )"""" b / + b)bbbb"b"selfself >   self A  selfspanV      ȁtoken   ȁ    3self formatter  k     1valuespanS   self 6    self 4   selfspanH     ‰cfg feature clone-impls   self  ߉     Ƌcfg feature clone-impls   self       cfg feature clone-impls   self      Śmarker͚ 9cfg featureparsing doc hiddenallow non_snake_case ɞmarker͞ ž1cfg featureparsing doc hiddenallow non_snake_case 0Cursor՟ Parse ParseStream   Result Punct lookahead܏ ß Parserß Identß TokenStream ß TokenTree‘ ß Literalߑß Spanß fmtß Display3ß strגß FromStrBß LitReprΝ ß LitIntRepr  ß LitFloatRepr  ß LitBoolŚ ß Litɞ ß parsing ß printing ß value ß Errorß Lit0ß LitStrŚ1ß LitByteStr 1ß LitByte1ß LitChar1ß LitInt͞1ß LitFloat1ß LitBool1ß LitStr 1ß LitByteStr 1ß LitByte 1ß LitChar 1ß LitIntә 1ß LitFloat 1ß StrStyle1ß ('cfg featureparsing    input      neg©cursorΩ J ֩  ȄȄinput  ۳޳ Ȅ     inputȶ  ¶  ϶    ҵҵinput   ҵ     input       ; input        input        input       TokenStream  ToTokensM TokenStreamExt  lookahead܏  Parse Parser Ident TokenTree‘  Literalߑ Span fmt Display3 strג FromStrB LitReprΝ  LitIntRepr   LitFloatRepr   LitBoolŚ  Litɞ  parsing  printing  value  Error Result Lit0 LitStrŚ1 LitByteStr 1 LitByte1 LitChar1 LitInt͞1 LitFloat1 LitBool1 LitStr 1 LitByteStr 1 LitByte 1 LitChar 1 LitIntә 1 LitFloat 1 StrStyle1 '  cfgō featureprinting    ȄMȄselftokens h υ    Mselftokens h     ҵMҵselftokens h Ҷ    Mselftokens h     Mselftokens h     Mselftokens h     Mselftokens    BigInt char  Index RangeFrom   lookahead܏  Parse Parser Ident TokenStream  TokenTree‘  Literalߑ Span fmt Display3 strג FromStrB LitReprΝ  LitIntRepr   LitFloatRepr   LitBoolŚ  Litɞ  parsing  printing  value  Error Result Lit0 LitStrŚ1 LitByteStr 1 LitByte1 LitChar1 LitInt͞1 LitFloat1 LitBool1 LitStr 1 LitByteStr 1 LitByte 1 LitChar 1 LitIntә 1 LitFloat 1 StrStyle1 )    token 4 Interpret a Syn literal from a proc-macro2 literal.7 ȁ  self     self     selfspan    sidx=E Get the byte at offset idx, or a default of `b'\0'` if we're lookingH" past the end of the input buffer.%  S      ! >  NN          Np   ֘ N !NNN sidxss   s5 s <allowɔ clippy needless_continue#  ċsڋ 9  ݋sՐ9 ؐۓs ؓ@allowѓ clippy needless_continue# ĝ s ݣ9 ĝ ޥsץ0 s6   s u   S  # ƺ Δ Ժ %      л    0     9      a      f   ټ   ټ Aټ  ټ   ټ Fټ    (%unexpected non-hex character after \x%%%  0  0    ¼a  ¼a  Ƽ    Ƽ  A  A    ллл ллͽʻʻ ʻͽ޽    0   !  9 !   a    f Ⱦ  Ⱦ AȾ Ⱦ  Ⱦ FȾ   (%unexpected non-hex character after \x%%% "" #"0  #"0 #"޽" $%% &%a  &%a $&%' $ ' $'$޽"ܾ (ݾ)ݾ)ܾ *)Aܾ  *)A ܾ (*)׾+׾ (׾ +׾ (!׾+(޽"ؽ,ؽ ,# ؽ,--Ŀ.Ŀ/ſ0ſ1ſ1ǿ2ǿ2ǿſſ  120$ſ ʿ2ʿ1Ŀ/0Ŀ./ - ֘ .˿.˿-ѿѿѿѿ0ѿ/ҿ3֘ ֘ ֘ ֘ лټ ټ               л ʻ޽Ⱦ Ⱦ           ܾ ݾ ܾ  ׾ ؽ  ֘ Ŀ ֘ Ŀ ֘ ſ ֘ ſ ǿschb0b1ۿ s ؿ+  sA            _      binput C                x6       E .f3 , 6     6   digits6         {     x6       E . 3 , 6     6   digits6 reprdigitssuffix"Lallowޤ clippy unnecessary_wraps#  ȁvBrace& Brace & Bracket' Bracket ' Paren' Paren ' TokenStream  Delimiter   Group Span TokenTree   Parseȃȃ ParseStreamσ σ  Parser܃܃ Result proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Tokenì' custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 Bvvcfgvvv anyvvv featurevvfullvv featurevvderivevv1 = = = 11 macro_delimiterԊ Acfg featureparsing    1self ^H Parse the tokens within the macro invocation's delimiters into a syntaxK tree. D This is equivalent to `syn::parse2::(mac.tokens)` except that itG4 produces a more useful span when `tokens` is empty.̐7 # Example  ```I use syn::{parse_quote, Expr, ExprLit, Ident, Lit, LitStr, Macro, Token};L use syn::ext::IdentExt;5 use syn::parse::{Error, Parse, ParseStream, Result};8! use syn::punctuated::Punctuated;$C // The arguments expected by libcore's format_args macro, and as aFB // result most other formatting and printing macros like println.E //C // println!("{} is {number:.prec$}", "x", prec=5, number=0.01)F struct FormatArgs { format_string: Expr, positional_args: Vec,#$ named_args: Vec<(Ident, Expr)>,' } impl Parse for FormatArgs {3 fn parse(input: ParseStream) -> Result {ǖ6! let format_string: Expr;$. let mut positional_args = Vec::new();1) let mut named_args = Vec::new();,( format_string = input.parse()?;+" while !input.is_empty() {ʘ%) input.parse::()?;," if input.is_empty() {% break;ϙ }G if input.peek(Ident::peek_any) && input.peek2(Token![=]) {J* while !input.is_empty() {Ӛ-E let name: Ident = input.call(Ident::parse_any)?;H1 input.parse::()?;қ46 let value: Expr = input.parse()?;94 named_args.push((name, value));ɜ7* if input.is_empty() {- break;" }ޝ1 input.parse::()?;4 } break;Ϟ }2 positional_args.push(input.parse()?);5 } П Ok(FormatArgs {؟ format_string, positional_args,  named_args, }) }  }B // Extract the first argument, the format string literal, from anE1 // invocation of a formatting or printing macro.ݡ44 fn get_format_string(m: &Macro) -> Result {7, let args: FormatArgs = m.parse_body()?;Ң/ match args.format_string {"B Expr::Lit(ExprLit { lit: Lit::Str(lit), .. }) => Ok(lit),E other => {C // First argument was not a string literal expression.FA // Maybe something like: println!(concat!(...), ...)ݤDU Err(Error::new_spanned(other, "format string must be a string literal"))X }  }  } fn main() {$ let invocation = parse_quote! {ɦ') println!("{:?}", Instant::now()), }; 7 let lit = get_format_string(&invocation).unwrap();:% assert_eq!(lit.value(), "{:?}");( } ```cfgШ featureŨparsingǨ   ! T   ʹɩɩɩΩ ީΩ^  !ɩ!ɩself^selfЫparser֫D Parse the tokens within the macro invocation's delimiters using theG given parser.תcfgתڪ feature۪parsing ժ ֶ! F  ϫ īŹǫ    ߟ%Ϛ!% ֬֬ ֬֬ ֬֬ެެ      > >> >      !ϫ֫ ߟ!>֬>ެ>> selfϫparser֫scope ߟ     '®!®®®®®®®®®®Ǯ®!®®ɮ ɮ Ԯ! !"  " expected delimiter Some  Some! ! Some!Group                Ѳ    ӱ"ӱӱӱ"ڱexpected delimiterڱ      կ" Parenկ"     " Brace"     & Bracket& ϱ'Errϱ'Ѳ Ѳ Ѳ Ѳ Ѳ % %       ߟ²² !ƲƲ#Ok!#DzѲ Ѳ Ѳ Ѳ Ѳ & 'Err'&" Some!"!!Some!GroupSome!# #!ȱ.$ Some!$ Some!!& Some!&#%!!$!Some!Group!Some!!' '"!֮(!  !!®®΁®®! ߟ  !   ӱ"ӱ#!#!#ߟ # #!#²'"'cursorg rest span delimiter  input Scfg featureparsing  ! ƳParse ParseStream   Result TokenStream س Delimiter س Groupس Spanس TokenTree س Parser܃س delimiter_span_close س parse_delimiter س parsingƳ س printing͸ س proc_macro_ س proc_macro2_ س unicode_xid` س quote`س macros`س groupaس parenthesized 6س braced7س bracketed 8س tokena9س identaس Identaس Identa س attrbس AttributeArgsc س bigintcس datadس exprfس genericslس ImplGenericso س Turbofisho س TypeGenericso س itemoس filet س lifetimeu س Lifetimeu س Lifetimeu س litu س Litu س LitBoolu س macv س derivew س opy س stmtz س ty{ س pat} س pathس bufferÂس extس punctuated س parse_quote س parse_quote' س parse_macro_inputس parse_macro_input'س spannedس whitespaceֈ س genس __private س custom_keywordس custom_keyword(س impl_parse_for_custom_keyword(س !impl_to_tokens_for_custom_keyword(!س impl_clone_for_custom_keyword(س $impl_extra_traits_for_custom_keywordŠ)$س custom_punctuationس custom_punctuation)س !impl_parse_for_custom_punctuation)!س %impl_to_tokens_for_custom_punctuation)%س !impl_clone_for_custom_punctuation)!س (impl_extra_traits_for_custom_punctuation)(س custom_punctuation_repr)س custom_punctuation_unexpected)س stringify_punct)س sealedس spanس threadس lookahead س parseس reservedس verbatimس printس rustdoc_workaroundس errorس parse س parse2 س parse_str س parse_file س privateس privateس Errorس Tokenì'س Macro1س MacroDelimiter1س custom_punctuation_len)8س AttrStylec 'س Attributec 'س Metac'س MetaListc'س MetaNameValuec 'س NestedMetac 'س Fieldd(س Fieldsd'س FieldsNamede 'س FieldsUnnamede (س Variante'س VisCratee(س VisPublice (س VisRestrictede (س Visibilitye (س Armf+س FieldValuef +س GenericMethodArgumentf+س Labelf+س MethodTurbofishg+س RangeLimitsg +س Exprg(س ExprArrayg )س ExprAssignh )س ExprAssignOph )س ExprAsynch *س ExprAwaith *س ExprBinaryh *س ExprBlockh *س ExprBoxh*س ExprBreakh *س ExprCallh*س ExprCasth*س ExprClosureh *س ExprContinuei *س ExprFieldi *س ExprForLoopi *س ExprGroupi *س ExprIfi*س ExprIndexi *س ExprLeti*س ExprLiti*س ExprLoopi*س ExprMacroi *س ExprMatchi *س ExprMethodCalli*س ExprParenj *س ExprPathj*س ExprRangej *س ExprReferencej *س ExprRepeatj +س ExprReturnj +س ExprStructj +س ExprTryj+س ExprTryBlockj +س ExprTuplej +س ExprTypek+س ExprUnaryk +س ExprUnsafek +س ExprWhilek +س ExprYieldk +س Indexk+س Memberk+س BoundLifetimesl,س ConstParaml ,س GenericParamm ,س Genericsm,س LifetimeDefm ,س PredicateEqm ,س PredicateLifetimem,س PredicateTypem ,س TraitBoundm ,س TraitBoundModifierm,س TypeParamm ,س TypeParamBoundn,س WhereClausen ,س WherePredicaten,س FnArgp0س ForeignItemp /س ForeignItemFnp /س ForeignItemMacrop/س ForeignItemStaticp/س ForeignItemTypep/س ImplItemp/س ImplItemConstq 0س ImplItemMacroq 0س ImplItemMethodq0س ImplItemTypeq 0س Itemq-س ItemConstq -س ItemEnumq-س ItemExternCrateq-س ItemFnq-س ItemForeignModq-س ItemImplr-س ItemMacror .س ItemMacro2r .س ItemModr.س ItemStaticr .س ItemStructr .س ItemTraitr .س ItemTraitAliasr.س ItemTyper.س ItemUnionr .س ItemUser.س Receivers0س Signatures 0س TraitItems /س TraitItemConsts/س TraitItemMacros/س TraitItemMethods/س TraitItemTypes /س UseGlobs.س UseGroups/س UseNamet.س UsePatht.س UseRenamet .س UseTreet.س Filet0س Litu0س LitBoolu1س LitByteu1س LitByteu 1س LitByteStru 1س LitByteStru 1س LitCharu1س LitCharu 1س LitFloatv1س LitFloatv 1س LitIntv1س LitIntv 1س LitStrv1س LitStrv 1س StrStylev1س Brace&س Brace &س Bracket'س Bracket 'س Paren'س Paren 'س Datax1س DataEnumx1س DataStructx 1س DataUnionx 1س DeriveInputx 1س BinOpy1س UnOpy2س Blockz2س Localz2س Stmtz2س Abi{3س BareFnArg{ 3س ReturnType{ 3س Type|2س TypeArray| 3س TypeBareFn| 3س TypeGroup| 3س TypeImplTrait| 3س TypeInfer| 3س TypeMacro| 3س TypeNever| 3س TypeParen| 3س TypePath|3س TypePtr|3س TypeReference} 3س TypeSlice} 3س TypeTraitObject}3س TypeTuple} 3س Variadic}3س FieldPat~4س Pat~3س PatBox~4س PatIdent~4س PatLit~4س PatMacro~4س PatOr~4س PatPath~4س PatRange~4س PatReference~ 4س PatRest~4س PatSlice4س PatStruct 4س PatTuple4س PatTupleStruct4س PatType4س PatWild4س AngleBracketedGenericArgumentsՀ5س Binding5س Constraint 5س GenericArgument5س ParenthesizedGenericArguments5س Path5س PathArgumentsā 5س PathSegmentӁ 5س QSelf5س Dcfg featureparsing   Ӵ !!input   !   ͸ TokenStream  ToTokensM Delimiter  Group Span TokenTree  Parseȃ ParseStreamσ  Parser܃ delimiter_span_close  parse_delimiter  parsingƳ  printing͸  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' Macro1 MacroDelimiter1 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Brace& Brace & Bracket' Bracket ' Paren' Paren ' Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 D ɸcfgƸ featureprinting    !M!selftokens  ֶ!  w Punctuatedſ  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 ?w wcfgwww anywww featurewwfullww featurewwderiveww1 11111111 Parse ParseStream   Result Punctuatedſ  parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Tokenì' DeriveInput 1 Data1 DataStruct 1 DataEnum1 DataUnion 1 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 A%cfg featureparsing    ܝܝinput   ܝ    inputattrs ѻ  inputattrs ی  inputattrs ׍  FilterAttrs  TokensOrDefault TokensOrDefault TokenStream  ToTokensM Punctuatedſ  parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' DeriveInput 1 Data1 DataStruct 1 DataEnum1 DataUnion 1 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 B cfg featureprinting  =   ܝMܝselftokens    ܝ  yyxcfgxͲxy anyxxy featurexyfullyy featureyyderiveyx112 ÝParse ParseStream   Result parsingÝ ՝ printing ՝ BinOp1՝ UnOp2՝ cfgϲ featureparsing   input  3   ϫ input  cfg featurefull $     2$input   $    TokenStreamֺ ɺ ToTokensM parsingÝ  printing  BinOp1 UnOp2  cfg featureprinting    Mselftokens ܻ ߻     $M$selftokens   $  z proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 ?z zcfgzzz featurezzfullzy 222  Speculative & Parse ParseStream   Result TokenStream  parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Tokenì' Block2 Stmt2 Local2 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 ADcfg featureparsing    2input ? Parse the body of a block as zero or more statements, possiblyB# including one trailing expression.&F *This function is available only if Syn is built with the `"parsing"`I feature.*  # Example  ```H use syn::{braced, token, Attribute, Block, Ident, Result, Stmt, Token};K& use syn::parse::{Parse, ParseStream};)8 // Parse a function with no generics or parameter list.; // // fn playground { // let mut x = 1; // x += 1; // println!("{}", x);! // }  struct MiniFunction { attrs: Vec, fn_token: Token![fn], name: Ident, brace_token: token::Brace," stmts: Vec, } impl Parse for MiniFunction {!3 fn parse(input: ParseStream) -> Result {6? let outer_attrs = input.call(Attribute::parse_outer)?;B3 let fn_token: Token![fn] = input.parse()?;6* let name: Ident = input.parse()?;- let content;5 let brace_token = braced!(content in input);8A let inner_attrs = content.call(Attribute::parse_inner)?;D8 let stmts = content.call(Block::parse_within)?;; Ok(MiniFunction { attrs: {- let mut attrs = outer_attrs;0+ attrs.extend(inner_attrs);. attrs }, fn_token, name, brace_token, stmts, }) }  } ``` #2     %%input   %     %%input  ] %    input allow_nosemi  E % inputattrspathփ  R %  inputattrs H %  input allow_nosemiƓ attrs( ~ %  TokenStreamǚ  ToTokensM TokenStreamExt  parsing  printing  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' Block2 Stmt2 Local2 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Abi{3 BareFnArg{ 3 ReturnType{ 3 Type|2 TypeArray| 3 TypeBareFn| 3 TypeGroup| 3 TypeImplTrait| 3 TypeInfer| 3 TypeMacro| 3 TypeNever| 3 TypeParen| 3 TypePath|3 TypePtr|3 TypeReference} 3 TypeSlice} 3 TypeTraitObject}3 TypeTuple} 3 Variadic}3 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 A  cfg featureprinting    %M%selftokens ߛ  %   ֝ %M%selftokens   %    2M&selftokens   &  { Punctuatedۥ ȥ TokenStream  proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Result Tokenì' custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 <{zcfgzz{ anyzz{ featurezzfullz{ feature{{derive{z1 2333333333333333333333333333333333 IdentExt Parse ParseStream   Result path  Punct Spacing TokenTree   Punctuatedۥ  TokenStream  parsing  printing   proc_macro_  proc_macro2_  unicode_xid`  quote` macros` groupa parenthesized 6 braced7 bracketed 8 tokena9 identa Identa Identa  attrb AttributeArgsc  bigintc datad exprf genericsl ImplGenericso  Turbofisho  TypeGenericso  itemo filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  buffer ext punctuated  parse_quote  parse_quote'  parse_macro_input parse_macro_input' spanned whitespaceֈ  gen __private  custom_keyword custom_keyword( impl_parse_for_custom_keyword( !impl_to_tokens_for_custom_keyword(! impl_clone_for_custom_keyword( $impl_extra_traits_for_custom_keywordŠ)$ custom_punctuation custom_punctuation) !impl_parse_for_custom_punctuation)! %impl_to_tokens_for_custom_punctuation)% !impl_clone_for_custom_punctuation)! (impl_extra_traits_for_custom_punctuation)( custom_punctuation_repr) custom_punctuation_unexpected) stringify_punct) sealed span thread lookahead  parse reserved verbatim print rustdoc_workaround error parse  parse2  parse_str  parse_file  private private Error Tokenì' Type2 TypeArray 3 TypeBareFn 3 TypeGroup 3 TypeImplTrait 3 TypeInfer 3 TypeMacro 3 TypeNever 3 TypeParen 3 TypePath3 TypePtr3 TypeReference 3 TypeSlice 3 TypeTraitObject3 TypeTuple 3 Abi3 BareFnArg 3 Variadic3 ReturnType 3 custom_punctuation_len)8 AttrStylec ' Attributec ' Metac' MetaListc' MetaNameValuec ' NestedMetac ' Fieldd( Fieldsd' FieldsNamede ' FieldsUnnamede ( Variante' VisCratee( VisPublice ( VisRestrictede ( Visibilitye ( Armf+ FieldValuef + GenericMethodArgumentf+ Labelf+ MethodTurbofishg+ RangeLimitsg + Exprg( ExprArrayg ) ExprAssignh ) ExprAssignOph ) ExprAsynch * ExprAwaith * ExprBinaryh * ExprBlockh * ExprBoxh* ExprBreakh * ExprCallh* ExprCasth* ExprClosureh * ExprContinuei * ExprFieldi * ExprForLoopi * ExprGroupi * ExprIfi* ExprIndexi * ExprLeti* ExprLiti* ExprLoopi* ExprMacroi * ExprMatchi * ExprMethodCalli* ExprParenj * ExprPathj* ExprRangej * ExprReferencej * ExprRepeatj + ExprReturnj + ExprStructj + ExprTryj+ ExprTryBlockj + ExprTuplej + ExprTypek+ ExprUnaryk + ExprUnsafek + ExprWhilek + ExprYieldk + Indexk+ Memberk+ BoundLifetimesl, ConstParaml , GenericParamm , Genericsm, LifetimeDefm , PredicateEqm , PredicateLifetimem, PredicateTypem , TraitBoundm , TraitBoundModifierm, TypeParamm , TypeParamBoundn, WhereClausen , WherePredicaten, FnArgp0 ForeignItemp / ForeignItemFnp / ForeignItemMacrop/ ForeignItemStaticp/ ForeignItemTypep/ ImplItemp/ ImplItemConstq 0 ImplItemMacroq 0 ImplItemMethodq0 ImplItemTypeq 0 Itemq- ItemConstq - ItemEnumq- ItemExternCrateq- ItemFnq- ItemForeignModq- ItemImplr- ItemMacror . ItemMacro2r . ItemModr. ItemStaticr . ItemStructr . ItemTraitr . ItemTraitAliasr. ItemTyper. ItemUnionr . ItemUser. Receivers0 Signatures 0 TraitItems / TraitItemConsts/ TraitItemMacros/ TraitItemMethods/ TraitItemTypes / UseGlobs. UseGroups/ UseNamet. UsePatht. UseRenamet . UseTreet. Filet0 Litu0 LitBoolu1 LitByteu1 LitByteu 1 LitByteStru 1 LitByteStru 1 LitCharu1 LitCharu 1 LitFloatv1 LitFloatv 1 LitIntv1 LitIntv 1 LitStrv1 LitStrv 1 StrStylev1 Macrow1 MacroDelimiterw1 Datax1 DataEnumx1 DataStructx 1 DataUnionx 1 DeriveInputx 1 BinOpy1 UnOpy2 Blockz2 Localz2 Stmtz2 FieldPat~4 Pat~3 PatBox~4 PatIdent~4 PatLit~4 PatMacro~4 PatOr~4 PatPath~4 PatRange~4 PatReference~ 4 PatRest~4 PatSlice4 PatStruct 4 PatTuple4 PatTupleStruct4 PatType4 PatWild4 AngleBracketedGenericArgumentsՀ5 Binding5 Constraint 5 GenericArgument5 ParenthesizedGenericArguments5 Path5 PathArgumentsā 5 PathSegmentӁ 5 QSelf5 Bcfg featureparsing    input        input ? In some positions, types may not contain the `+` character, toBE disambiguate them. For example in the expression `1 as T`, T may notH contain a `+` character.A This parser does not allow a `+`, while the default parser does.D '   input allow_plus  A '   3'input   '     3'input   '     3'input   '     3'input   '     3'input   '    inputallow_mut_self X '   3'input   '     3'input   '     3'input   '     3'input     '    ΅  3'input     '     3inputߊ  ˊ Ҋ '   input  allow_plus    '     ''input     ' ď    3'input     '   boundsΒ   L  ֒  'input    '   input  allow_plus    '   input  allow_plus        3'input     '     'input    '   input  allow_plus    '    ̦  3'input     '     3'inputԩ   ˩ Ω  ' ۩   ު  'input  allow_plus    '    ȭ  3'input     '    r                        r  r `    ' r'      arg span  r input allow_mut_selfޯ  v 'ů   3'input     '     ''input     '    FilterAttrs   TokensOrDefault   TokensOrDefault   TokenStream   ToTokens M  TokenStreamExt   Punctuatedۥ   parsing  printing   proc_macro_   proc_macro2_   unicode_xid`   quote`  macros`  groupa  parenthesized 6  braced7  bracketed 8  tokena9  identa  Identa  Identa   attrb  AttributeArgsc   bigintc  datad  exprf  genericsl  ImplGenericso   Turbofisho   TypeGenericso   itemo  filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path  buffer  ext  punctuated   parse_quote   parse_quote'   parse_macro_input  parse_macro_input'  spanned  whitespaceֈ   gen  __private   custom_keyword  custom_keyword(  impl_parse_for_custom_keyword(  !impl_to_tokens_for_custom_keyword(!  impl_clone_for_custom_keyword(  $impl_extra_traits_for_custom_keywordŠ)$  custom_punctuation  custom_punctuation)  !impl_parse_for_custom_punctuation)!  %impl_to_tokens_for_custom_punctuation)%  !impl_clone_for_custom_punctuation)!  (impl_extra_traits_for_custom_punctuation)(  custom_punctuation_repr)  custom_punctuation_unexpected)  stringify_punct)  sealed  span  thread  lookahead   parse  reserved  verbatim  print  rustdoc_workaround  error  parse   parse2   parse_str   parse_file   private  private  Error  Result  Tokenì'  Type2  TypeArray 3  TypeBareFn 3  TypeGroup 3  TypeImplTrait 3  TypeInfer 3  TypeMacro 3  TypeNever 3  TypeParen 3  TypePath3  TypePtr3  TypeReference 3  TypeSlice 3  TypeTraitObject3  TypeTuple 3  Abi3  BareFnArg 3  Variadic3  ReturnType 3  custom_punctuation_len)8  AttrStylec '  Attributec '  Metac'  MetaListc'  MetaNameValuec '  NestedMetac '  Fieldd(  Fieldsd'  FieldsNamede '  FieldsUnnamede (  Variante'  VisCratee(  VisPublice (  VisRestrictede (  Visibilitye (  Armf+  FieldValuef +  GenericMethodArgumentf+  Labelf+  MethodTurbofishg+  RangeLimitsg +  Exprg(  ExprArrayg )  ExprAssignh )  ExprAssignOph )  ExprAsynch *  ExprAwaith *  ExprBinaryh *  ExprBlockh *  ExprBoxh*  ExprBreakh *  ExprCallh*  ExprCasth*  ExprClosureh *  ExprContinuei *  ExprFieldi *  ExprForLoopi *  ExprGroupi *  ExprIfi*  ExprIndexi *  ExprLeti*  ExprLiti*  ExprLoopi*  ExprMacroi *  ExprMatchi *  ExprMethodCalli*  ExprParenj *  ExprPathj*  ExprRangej *  ExprReferencej *  ExprRepeatj +  ExprReturnj +  ExprStructj +  ExprTryj+  ExprTryBlockj +  ExprTuplej +  ExprTypek+  ExprUnaryk +  ExprUnsafek +  ExprWhilek +  ExprYieldk +  Indexk+  Memberk+  BoundLifetimesl,  ConstParaml ,  GenericParamm ,  Genericsm,  LifetimeDefm ,  PredicateEqm ,  PredicateLifetimem,  PredicateTypem ,  TraitBoundm ,  TraitBoundModifierm,  TypeParamm ,  TypeParamBoundn,  WhereClausen ,  WherePredicaten,  FnArgp0  ForeignItemp /  ForeignItemFnp /  ForeignItemMacrop/  ForeignItemStaticp/  ForeignItemTypep/  ImplItemp/  ImplItemConstq 0  ImplItemMacroq 0  ImplItemMethodq0  ImplItemTypeq 0  Itemq-  ItemConstq -  ItemEnumq-  ItemExternCrateq-  ItemFnq-  ItemForeignModq-  ItemImplr-  ItemMacror .  ItemMacro2r .  ItemModr.  ItemStaticr .  ItemStructr .  ItemTraitr .  ItemTraitAliasr.  ItemTyper.  ItemUnionr .  ItemUser.  Receivers0  Signatures 0  TraitItems /  TraitItemConsts/  TraitItemMacros/  TraitItemMethods/  TraitItemTypes /  UseGlobs.  UseGroups/  UseNamet.  UsePatht.  UseRenamet .  UseTreet.  Filet0  Litu0  LitBoolu1  LitByteu1  LitByteu 1  LitByteStru 1  LitByteStru 1  LitCharu1  LitCharu 1  LitFloatv1  LitFloatv 1  LitIntv1  LitIntv 1  LitStrv1  LitStrv 1  StrStylev1  Macrow1  MacroDelimiterw1  Datax1  DataEnumx1  DataStructx 1  DataUnionx 1  DeriveInputx 1  BinOpy1  UnOpy2  Blockz2  Localz2  Stmtz2  FieldPat~4  Pat~3  PatBox~4  PatIdent~4  PatLit~4  PatMacro~4  PatOr~4  PatPath~4  PatRange~4  PatReference~ 4  PatRest~4  PatSlice4  PatStruct 4  PatTuple4  PatTupleStruct4  PatType4  PatWild4  AngleBracketedGenericArgumentsՀ5  Binding5  Constraint 5  GenericArgument5  ParenthesizedGenericArguments5  Path5  PathArgumentsā 5  PathSegmentӁ 5  QSelf5  B / cfg    feature  printing  >   'M'self tokens    '     'M'self tokens    '     'M'self tokens    '     'M'self tokens    '     'M'self tokens    '     'M'self tokens  h  '     'M'self tokens    '     'M'self tokens  {  '     'M'self tokens    '     'M'self tokens    '     'M'self tokens    '     'M'self tokens    '     'M'self tokens  n  '     'M'self tokens  a  '     'M'self tokens    '     'M'self tokens    '     Mself tokens         'M'self tokens    '   } Punctuated   TokenStream   proc_macro_   proc_macro2_   unicode_xid`   quote`  macros`  groupa  parenthesized 6  braced7  bracketed 8  tokena9  identa  Identa  Identa   attrb  AttributeArgsc   bigintc  datad  exprf  genericsl  ImplGenericso   Turbofisho   TypeGenericso   itemo  filet  lifetimeu  Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  stmtz  ty{  pat}  path  buffer  ext  punctuated   parse_quote   parse_quote'   parse_macro_input  parse_macro_input'  spanned  whitespaceֈ   gen  __private   custom_keyword  custom_keyword(  impl_parse_for_custom_keyword(  !impl_to_tokens_for_custom_keyword(!  impl_clone_for_custom_keyword(  $impl_extra_traits_for_custom_keywordŠ)$  custom_punctuation  custom_punctuation)  !impl_parse_for_custom_punctuation)!  %impl_to_tokens_for_custom_punctuation)%  !impl_clone_for_custom_punctuation)!  (impl_extra_traits_for_custom_punctuation)(  custom_punctuation_repr)  custom_punctuation_unexpected)  stringify_punct)  sealed  span  thread  lookahead   parse  reserved  verbatim  print  rustdoc_workaround  error  parse   parse2   parse_str   parse_file   private  private  Error  Result  Tokenì'  custom_punctuation_len)8  AttrStylec '  Attributec '  Metac'  MetaListc'  MetaNameValuec '  NestedMetac '  Fieldd(  Fieldsd'  FieldsNamede '  FieldsUnnamede (  Variante'  VisCratee(  VisPublice (  VisRestrictede (  Visibilitye (  Armf+  FieldValuef +  GenericMethodArgumentf+  Labelf+  MethodTurbofishg+  RangeLimitsg +  Exprg(  ExprArrayg )  ExprAssignh )  ExprAssignOph )  ExprAsynch *  ExprAwaith *  ExprBinaryh *  ExprBlockh *  ExprBoxh*  ExprBreakh *  ExprCallh*  ExprCasth*  ExprClosureh *  ExprContinuei *  ExprFieldi *  ExprForLoopi *  ExprGroupi *  ExprIfi*  ExprIndexi *  ExprLeti*  ExprLiti*  ExprLoopi*  ExprMacroi *  ExprMatchi *  ExprMethodCalli*  ExprParenj *  ExprPathj*  ExprRangej *  ExprReferencej *  ExprRepeatj +  ExprReturnj +  ExprStructj +  ExprTryj+  ExprTryBlockj +  ExprTuplej +  ExprTypek+  ExprUnaryk +  ExprUnsafek +  ExprWhilek +  ExprYieldk +  Indexk+  Memberk+  BoundLifetimesl,  ConstParaml ,  GenericParamm ,  Genericsm,  LifetimeDefm ,  PredicateEqm ,  PredicateLifetimem,  PredicateTypem ,  TraitBoundm ,  TraitBoundModifierm,  TypeParamm ,  TypeParamBoundn,  WhereClausen ,  WherePredicaten,  FnArgp0  ForeignItemp /  ForeignItemFnp /  ForeignItemMacrop/  ForeignItemStaticp/  ForeignItemTypep/  ImplItemp/  ImplItemConstq 0  ImplItemMacroq 0  ImplItemMethodq0  ImplItemTypeq 0  Itemq-  ItemConstq -  ItemEnumq-  ItemExternCrateq-  ItemFnq-  ItemForeignModq-  ItemImplr-  ItemMacror .  ItemMacro2r .  ItemModr.  ItemStaticr .  ItemStructr .  ItemTraitr .  ItemTraitAliasr.  ItemTyper.  ItemUnionr .  ItemUser.  Receivers0  Signatures 0  TraitItems /  TraitItemConsts/  TraitItemMacros/  TraitItemMethods/  TraitItemTypes /  UseGlobs.  UseGroups/  UseNamet.  UsePatht.  UseRenamet .  UseTreet.  Filet0  Litu0  LitBoolu1  LitByteu1  LitByteu 1  LitByteStru 1  LitByteStru 1  LitCharu1  LitCharu 1  LitFloatv1  LitFloatv 1  LitIntv1  LitIntv 1  LitStrv1  LitStrv 1  StrStylev1  Macrow1  MacroDelimiterw1  Datax1  DataEnumx1  DataStructx 1  DataUnionx 1  DeriveInputx 1  BinOpy1  UnOpy2  Blockz2  Localz2  Stmtz2  Abi{3  BareFnArg{ 3  ReturnType{ 3  Type|2  TypeArray| 3  TypeBareFn| 3  TypeGroup| 3  TypeImplTrait| 3  TypeInfer| 3  TypeMacro| 3  TypeNever| 3  TypeParen| 3  TypePath|3  TypePtr|3  TypeReference} 3  TypeSlice} 3  TypeTraitObject}3  TypeTuple} 3  Variadic}3  AngleBracketedGenericArgumentsՀ5  Binding5  Constraint 5  GenericArgument5  ParenthesizedGenericArguments5  Path5  PathArgumentsā 5  PathSegmentӁ 5  QSelf5  =}}cfg}}} feature}}full}} 344444444444444444444444444444444 !IdentExt!! Parse!! ParseBuffer! !  ParseStream! !  Result!! path!!  Punctuated ! TokenStream ! parsing! ! printing"! proc_macro_ ! proc_macro2_ ! unicode_xid` ! quote`! macros`! groupa! parenthesized 6! braced7! bracketed 8! tokena9! identa! Identa! Identa ! attrb! AttributeArgsc ! bigintc! datad! exprf! genericsl! ImplGenericso ! Turbofisho ! TypeGenericso ! itemo! filet ! lifetimeu ! Lifetimeu ! Lifetimeu ! litu ! Litu ! LitBoolu ! macv ! derivew ! opy ! stmtz ! ty{ ! pat} ! bufferÂ! ext! punctuated ! parse_quote ! parse_quote' ! parse_macro_input! parse_macro_input'! spanned! whitespaceֈ ! gen! __private ! custom_keyword! custom_keyword(! impl_parse_for_custom_keyword(! !impl_to_tokens_for_custom_keyword(!! impl_clone_for_custom_keyword(! $impl_extra_traits_for_custom_keywordŠ)$! custom_punctuation! custom_punctuation)! !impl_parse_for_custom_punctuation)!! %impl_to_tokens_for_custom_punctuation)%! !impl_clone_for_custom_punctuation)!! (impl_extra_traits_for_custom_punctuation)(! custom_punctuation_repr)! custom_punctuation_unexpected)! stringify_punct)! sealed! span! thread! lookahead ! parse! reserved! verbatim! print! rustdoc_workaround! error! parse ! parse2 ! parse_str ! parse_file ! private! private! Error! Tokenì'! Pat 3! PatBox!4! PatIdent!4! PatLitӚ!4! PatMacro!4! PatOr!4! PatPath!4! PatRange!4! PatReference۩! 4! PatRest!4! PatSlice!4! PatStruct! 4! PatTupleص!4! PatTupleStructٸ!4! PatType!4! PatWild!4! FieldPat!4! custom_punctuation_len)8! AttrStylec '! Attributec '! Metac'! MetaListc'! MetaNameValuec '! NestedMetac '! Fieldd(! Fieldsd'! FieldsNamede '! FieldsUnnamede (! Variante'! VisCratee(! VisPublice (! VisRestrictede (! Visibilitye (! Armf+! FieldValuef +! GenericMethodArgumentf+! Labelf+! MethodTurbofishg+! RangeLimitsg +! Exprg(! ExprArrayg )! ExprAssignh )! ExprAssignOph )! ExprAsynch *! ExprAwaith *! ExprBinaryh *! ExprBlockh *! ExprBoxh*! ExprBreakh *! ExprCallh*! ExprCasth*! ExprClosureh *! ExprContinuei *! ExprFieldi *! ExprForLoopi *! ExprGroupi *! ExprIfi*! ExprIndexi *! ExprLeti*! ExprLiti*! ExprLoopi*! ExprMacroi *! ExprMatchi *! ExprMethodCalli*! ExprParenj *! ExprPathj*! ExprRangej *! ExprReferencej *! ExprRepeatj +! ExprReturnj +! ExprStructj +! ExprTryj+! ExprTryBlockj +! ExprTuplej +! ExprTypek+! ExprUnaryk +! ExprUnsafek +! ExprWhilek +! ExprYieldk +! Indexk+! Memberk+! BoundLifetimesl,! ConstParaml ,! GenericParamm ,! Genericsm,! LifetimeDefm ,! PredicateEqm ,! PredicateLifetimem,! PredicateTypem ,! TraitBoundm ,! TraitBoundModifierm,! TypeParamm ,! TypeParamBoundn,! WhereClausen ,! WherePredicaten,! FnArgp0! ForeignItemp /! ForeignItemFnp /! ForeignItemMacrop/! ForeignItemStaticp/! ForeignItemTypep/! ImplItemp/! ImplItemConstq 0! ImplItemMacroq 0! ImplItemMethodq0! ImplItemTypeq 0! Itemq-! ItemConstq -! ItemEnumq-! ItemExternCrateq-! ItemFnq-! ItemForeignModq-! ItemImplr-! ItemMacror .! ItemMacro2r .! ItemModr.! ItemStaticr .! ItemStructr .! ItemTraitr .! ItemTraitAliasr.! ItemTyper.! ItemUnionr .! ItemUser.! Receivers0! Signatures 0! TraitItems /! TraitItemConsts/! TraitItemMacros/! TraitItemMethods/! TraitItemTypes /! UseGlobs.! UseGroups/! UseNamet.! UsePatht.! UseRenamet .! UseTreet.! Filet0! Litu0! LitBoolu1! LitByteu1! LitByteu 1! LitByteStru 1! LitByteStru 1! LitCharu1! LitCharu 1! LitFloatv1! LitFloatv 1! LitIntv1! LitIntv 1! LitStrv1! LitStrv 1! StrStylev1! Macrow1! MacroDelimiterw1! Datax1! DataEnumx1! DataStructx 1! DataUnionx 1! DeriveInputx 1! BinOpy1! UnOpy2! Blockz2! Localz2! Stmtz2! Abi{3! BareFnArg{ 3! ReturnType{ 3! Type|2! TypeArray| 3! TypeBareFn| 3! TypeGroup| 3! TypeImplTrait| 3! TypeInfer| 3! TypeMacro| 3! TypeNever| 3! TypeParen| 3! TypePath|3! TypePtr|3! TypeReference} 3! TypeSlice} 3! TypeTraitObject}3! TypeTuple} 3! Variadic}3! AngleBracketedGenericArgumentsՀ5! Binding5! Constraint 5! GenericArgument5! ParenthesizedGenericArguments5! Path5! PathArgumentsā 5! PathSegmentӁ 5! QSelf5! B!p!cfg!!! feature!!parsing! !  ! input!  !!  !  !$input!  !J ! !input!  !2 4! !input!  !0 4! ! input!  !4 4! !input!path! !M 4! ! input!path! !B 4!  ! self!  !! ʥ ! ! input!  !4 4! " input"begin"qself"path΃"+ " 5" "input"begin" "M " ֌" input"  ӌ"4 4" " input"  "< 4‘" "input"  "6 Ó" " input"  "@ " " input"  "4 4ä" " input"  "7 " ޫ" input" ׫"3 " ì"input߬" "E " "input" leading_vert"  "U $" " FilterAttrs" " TokenStream" "ToTokens"M"TokenStreamExt" " Punctuated ϴ"parsing! ϴ"printing"ϴ" proc_macro_ ϴ" proc_macro2_ ϴ" unicode_xid` ϴ"quote`ϴ"macros`ϴ"groupaϴ" parenthesized 6ϴ"braced7ϴ" bracketed 8ϴ"tokena9ϴ"identaϴ"Identaϴ"Identa ϴ"attrbϴ" AttributeArgsc ϴ"bigintcϴ"datadϴ"exprfϴ"genericslϴ" ImplGenericso ϴ" Turbofisho ϴ" TypeGenericso ϴ"itemoϴ"filet ϴ"lifetimeu ϴ"Lifetimeu ϴ"Lifetimeu ϴ"litu ϴ"Litu ϴ"LitBoolu ϴ"macv ϴ"derivew ϴ"opy ϴ"stmtz ϴ"ty{ ϴ"pat} ϴ"pathϴ"bufferÂϴ"extϴ" punctuated ϴ" parse_quote ϴ" parse_quote' ϴ"parse_macro_inputϴ"parse_macro_input'ϴ"spannedϴ" whitespaceֈ ϴ"genϴ" __private ϴ"custom_keywordϴ"custom_keyword(ϴ"impl_parse_for_custom_keyword(ϴ"!impl_to_tokens_for_custom_keyword(!ϴ"impl_clone_for_custom_keyword(ϴ"$impl_extra_traits_for_custom_keywordŠ)$ϴ"custom_punctuationϴ"custom_punctuation)ϴ"!impl_parse_for_custom_punctuation)!ϴ"%impl_to_tokens_for_custom_punctuation)%ϴ"!impl_clone_for_custom_punctuation)!ϴ"(impl_extra_traits_for_custom_punctuation)(ϴ"custom_punctuation_repr)ϴ"custom_punctuation_unexpected)ϴ"stringify_punct)ϴ"sealedϴ"spanϴ"threadϴ" lookahead ϴ"parseϴ"reservedϴ"verbatimϴ"printϴ"rustdoc_workaroundϴ"errorϴ"parse ϴ"parse2 ϴ" parse_str ϴ" parse_file ϴ"privateϴ"privateϴ"Errorϴ"Resultϴ"Tokenì'ϴ"Pat 3ϴ"PatBox!4ϴ"PatIdent!4ϴ"PatLitӚ!4ϴ"PatMacro!4ϴ"PatOr!4ϴ"PatPath!4ϴ"PatRange!4ϴ" PatReference۩! 4ϴ"PatRest!4ϴ"PatSlice!4ϴ" PatStruct! 4ϴ"PatTupleص!4ϴ"PatTupleStructٸ!4ϴ"PatType!4ϴ"PatWild!4ϴ"FieldPat!4ϴ"custom_punctuation_len)8ϴ" AttrStylec 'ϴ" Attributec 'ϴ"Metac'ϴ"MetaListc'ϴ" MetaNameValuec 'ϴ" NestedMetac 'ϴ"Fieldd(ϴ"Fieldsd'ϴ" FieldsNamede 'ϴ" FieldsUnnamede (ϴ"Variante'ϴ"VisCratee(ϴ" VisPublice (ϴ" VisRestrictede (ϴ" Visibilitye (ϴ"Armf+ϴ" FieldValuef +ϴ"GenericMethodArgumentf+ϴ"Labelf+ϴ"MethodTurbofishg+ϴ" RangeLimitsg +ϴ"Exprg(ϴ" ExprArrayg )ϴ" ExprAssignh )ϴ" ExprAssignOph )ϴ" ExprAsynch *ϴ" ExprAwaith *ϴ" ExprBinaryh *ϴ" ExprBlockh *ϴ"ExprBoxh*ϴ" ExprBreakh *ϴ"ExprCallh*ϴ"ExprCasth*ϴ" ExprClosureh *ϴ" ExprContinuei *ϴ" ExprFieldi *ϴ" ExprForLoopi *ϴ" ExprGroupi *ϴ"ExprIfi*ϴ" ExprIndexi *ϴ"ExprLeti*ϴ"ExprLiti*ϴ"ExprLoopi*ϴ" ExprMacroi *ϴ" ExprMatchi *ϴ"ExprMethodCalli*ϴ" ExprParenj *ϴ"ExprPathj*ϴ" ExprRangej *ϴ" ExprReferencej *ϴ" ExprRepeatj +ϴ" ExprReturnj +ϴ" ExprStructj +ϴ"ExprTryj+ϴ" ExprTryBlockj +ϴ" ExprTuplej +ϴ"ExprTypek+ϴ" ExprUnaryk +ϴ" ExprUnsafek +ϴ" ExprWhilek +ϴ" ExprYieldk +ϴ"Indexk+ϴ"Memberk+ϴ"BoundLifetimesl,ϴ" ConstParaml ,ϴ" GenericParamm ,ϴ"Genericsm,ϴ" LifetimeDefm ,ϴ" PredicateEqm ,ϴ"PredicateLifetimem,ϴ" PredicateTypem ,ϴ" TraitBoundm ,ϴ"TraitBoundModifierm,ϴ" TypeParamm ,ϴ"TypeParamBoundn,ϴ" WhereClausen ,ϴ"WherePredicaten,ϴ"FnArgp0ϴ" ForeignItemp /ϴ" ForeignItemFnp /ϴ"ForeignItemMacrop/ϴ"ForeignItemStaticp/ϴ"ForeignItemTypep/ϴ"ImplItemp/ϴ" ImplItemConstq 0ϴ" ImplItemMacroq 0ϴ"ImplItemMethodq0ϴ" ImplItemTypeq 0ϴ"Itemq-ϴ" ItemConstq -ϴ"ItemEnumq-ϴ"ItemExternCrateq-ϴ"ItemFnq-ϴ"ItemForeignModq-ϴ"ItemImplr-ϴ" ItemMacror .ϴ" ItemMacro2r .ϴ"ItemModr.ϴ" ItemStaticr .ϴ" ItemStructr .ϴ" ItemTraitr .ϴ"ItemTraitAliasr.ϴ"ItemTyper.ϴ" ItemUnionr .ϴ"ItemUser.ϴ"Receivers0ϴ" Signatures 0ϴ" TraitItems /ϴ"TraitItemConsts/ϴ"TraitItemMacros/ϴ"TraitItemMethods/ϴ" TraitItemTypes /ϴ"UseGlobs.ϴ"UseGroups/ϴ"UseNamet.ϴ"UsePatht.ϴ" UseRenamet .ϴ"UseTreet.ϴ"Filet0ϴ"Litu0ϴ"LitBoolu1ϴ"LitByteu1ϴ"LitByteu 1ϴ" LitByteStru 1ϴ" LitByteStru 1ϴ"LitCharu1ϴ"LitCharu 1ϴ"LitFloatv1ϴ"LitFloatv 1ϴ"LitIntv1ϴ"LitIntv 1ϴ"LitStrv1ϴ"LitStrv 1ϴ"StrStylev1ϴ"Macrow1ϴ"MacroDelimiterw1ϴ"Datax1ϴ"DataEnumx1ϴ" DataStructx 1ϴ" DataUnionx 1ϴ" DeriveInputx 1ϴ"BinOpy1ϴ"UnOpy2ϴ"Blockz2ϴ"Localz2ϴ"Stmtz2ϴ"Abi{3ϴ" BareFnArg{ 3ϴ" ReturnType{ 3ϴ"Type|2ϴ" TypeArray| 3ϴ" TypeBareFn| 3ϴ" TypeGroup| 3ϴ" TypeImplTrait| 3ϴ" TypeInfer| 3ϴ" TypeMacro| 3ϴ" TypeNever| 3ϴ" TypeParen| 3ϴ"TypePath|3ϴ"TypePtr|3ϴ" TypeReference} 3ϴ" TypeSlice} 3ϴ"TypeTraitObject}3ϴ" TypeTuple} 3ϴ"Variadic}3ϴ"AngleBracketedGenericArgumentsՀ5ϴ"Binding5ϴ" Constraint 5ϴ"GenericArgument5ϴ"ParenthesizedGenericArguments5ϴ"Path5ϴ" PathArgumentsā 5ϴ" PathSegmentӁ 5ϴ"QSelf5ϴ"B "-"cfg""" feature""printing" "")M)self"tokens"""  )"")M)selfø"tokensɸ"""  )¸"")M)self"tokensż"""  )""ݿ)Mݿ)self"tokens"""  ݿ)""Mself"tokens"""  ""4M*self"tokens"""  *"")M)self"tokens"""  )"")M)self"tokens"""  )"")M)self"tokens"""  )""4Mȗ*self"tokens"""  ȗ*""4M̘*self"tokens"""  ̘*""4MЙ*self"tokens"""  Й*"")M)self"tokens"""  )""4M֛*self"tokens"""  ֛*""4Mڜ*self"tokens"""  ڜ*"")M)self"tokens"""  )" Punctuated" " proc_macro_ " proc_macro2_ " unicode_xid` "quote`"macros`"groupa" parenthesized 6"braced7" bracketed 8"tokena9"identa"Identa"Identa "attrb" AttributeArgsc "bigintc"datad"exprf"genericsl" ImplGenericso " Turbofisho " TypeGenericso "itemo"filet "lifetimeu "Lifetimeu "Lifetimeu "litu "Litu "LitBoolu "macv "derivew "opy "stmtz "ty{ "pat} "path"bufferÂ"ext" punctuated " parse_quote " parse_quote' "parse_macro_input"parse_macro_input'"spanned" whitespaceֈ "gen" __private "custom_keyword"custom_keyword("impl_parse_for_custom_keyword("!impl_to_tokens_for_custom_keyword(!"impl_clone_for_custom_keyword("$impl_extra_traits_for_custom_keywordŠ)$"custom_punctuation"custom_punctuation)"!impl_parse_for_custom_punctuation)!"%impl_to_tokens_for_custom_punctuation)%"!impl_clone_for_custom_punctuation)!"(impl_extra_traits_for_custom_punctuation)("custom_punctuation_repr)"custom_punctuation_unexpected)"stringify_punct)"sealed"span"thread" lookahead "parse"reserved"verbatim"print"rustdoc_workaround"error"parse "parse2 " parse_str " parse_file "private"private"Error"Result"Tokenì'"custom_punctuation_len)8" AttrStylec '" Attributec '"Metac'"MetaListc'" MetaNameValuec '" NestedMetac '"Fieldd("Fieldsd'" FieldsNamede '" FieldsUnnamede ("Variante'"VisCratee(" VisPublice (" VisRestrictede (" Visibilitye ("Armf+" FieldValuef +"GenericMethodArgumentf+"Labelf+"MethodTurbofishg+" RangeLimitsg +"Exprg(" ExprArrayg )" ExprAssignh )" ExprAssignOph )" ExprAsynch *" ExprAwaith *" ExprBinaryh *" ExprBlockh *"ExprBoxh*" ExprBreakh *"ExprCallh*"ExprCasth*" ExprClosureh *" ExprContinuei *" ExprFieldi *" ExprForLoopi *" ExprGroupi *"ExprIfi*" ExprIndexi *"ExprLeti*"ExprLiti*"ExprLoopi*" ExprMacroi *" ExprMatchi *"ExprMethodCalli*" ExprParenj *"ExprPathj*" ExprRangej *" ExprReferencej *" ExprRepeatj +" ExprReturnj +" ExprStructj +"ExprTryj+" ExprTryBlockj +" ExprTuplej +"ExprTypek+" ExprUnaryk +" ExprUnsafek +" ExprWhilek +" ExprYieldk +"Indexk+"Memberk+"BoundLifetimesl," ConstParaml ," GenericParamm ,"Genericsm," LifetimeDefm ," PredicateEqm ,"PredicateLifetimem," PredicateTypem ," TraitBoundm ,"TraitBoundModifierm," TypeParamm ,"TypeParamBoundn," WhereClausen ,"WherePredicaten,"FnArgp0" ForeignItemp /" ForeignItemFnp /"ForeignItemMacrop/"ForeignItemStaticp/"ForeignItemTypep/"ImplItemp/" ImplItemConstq 0" ImplItemMacroq 0"ImplItemMethodq0" ImplItemTypeq 0"Itemq-" ItemConstq -"ItemEnumq-"ItemExternCrateq-"ItemFnq-"ItemForeignModq-"ItemImplr-" ItemMacror ." ItemMacro2r ."ItemModr." ItemStaticr ." ItemStructr ." ItemTraitr ."ItemTraitAliasr."ItemTyper." ItemUnionr ."ItemUser."Receivers0" Signatures 0" TraitItems /"TraitItemConsts/"TraitItemMacros/"TraitItemMethods/" TraitItemTypes /"UseGlobs."UseGroups/"UseNamet."UsePatht." UseRenamet ."UseTreet."Filet0"Litu0"LitBoolu1"LitByteu1"LitByteu 1" LitByteStru 1" LitByteStru 1"LitCharu1"LitCharu 1"LitFloatv1"LitFloatv 1"LitIntv1"LitIntv 1"LitStrv1"LitStrv 1"StrStylev1"Macrow1"MacroDelimiterw1"Datax1"DataEnumx1" DataStructx 1" DataUnionx 1" DeriveInputx 1"BinOpy1"UnOpy2"Blockz2"Localz2"Stmtz2"Abi{3" BareFnArg{ 3" ReturnType{ 3"Type|2" TypeArray| 3" TypeBareFn| 3" TypeGroup| 3" TypeImplTrait| 3" TypeInfer| 3" TypeMacro| 3" TypeNever| 3" TypeParen| 3"TypePath|3"TypePtr|3" TypeReference} 3" TypeSlice} 3"TypeTraitObject}3" TypeTuple} 3"Variadic}3"FieldPat~4"Pat~3"PatBox~4"PatIdent~4"PatLit~4"PatMacro~4"PatOr~4"PatPath~4"PatRange~4" PatReference~ 4"PatRest~4"PatSlice4" PatStruct 4"PatTuple4"PatTupleStruct4"PatType4"PatWild4"> cfg any featurefull featurederive1555555555 ""T""segment" "" """"""""" """ "Z*"Z*"""(" " *""""""" """(" *"""""""""""" ""*"*""( *" """segment"path"" ""T"" ident" "" " """ " """""d"d5"""""""d" "d""d*"ident"""_**"8" *"*self" ""  *"self" ""cfg""" feature""parsing" "" *"̓#IdentExt##Parse## ParseStream# # Result## Punctuated" ޓ#parsing̓#ޓ#printing$ޓ# proc_macro_ ޓ# proc_macro2_ ޓ# unicode_xid` ޓ#quote`ޓ#macros`ޓ#groupaޓ# parenthesized 6ޓ#braced7ޓ# bracketed 8ޓ#tokena9ޓ#identaޓ#Identaޓ#Identa ޓ#attrbޓ# AttributeArgsc ޓ#bigintcޓ#datadޓ#exprfޓ#genericslޓ# ImplGenericso ޓ# Turbofisho ޓ# TypeGenericso ޓ#itemoޓ#filet ޓ#lifetimeu ޓ#Lifetimeu ޓ#Lifetimeu ޓ#litu ޓ#Litu ޓ#LitBoolu ޓ#macv ޓ#derivew ޓ#opy ޓ#stmtz ޓ#ty{ ޓ#pat} ޓ#pathޓ#bufferÂޓ#extޓ# punctuated ޓ# parse_quote ޓ# parse_quote' ޓ#parse_macro_inputޓ#parse_macro_input'ޓ#spannedޓ# whitespaceֈ ޓ#genޓ# __private ޓ#custom_keywordޓ#custom_keyword(ޓ#impl_parse_for_custom_keyword(ޓ#!impl_to_tokens_for_custom_keyword(!ޓ#impl_clone_for_custom_keyword(ޓ#$impl_extra_traits_for_custom_keywordŠ)$ޓ#custom_punctuationޓ#custom_punctuation)ޓ#!impl_parse_for_custom_punctuation)!ޓ#%impl_to_tokens_for_custom_punctuation)%ޓ#!impl_clone_for_custom_punctuation)!ޓ#(impl_extra_traits_for_custom_punctuation)(ޓ#custom_punctuation_repr)ޓ#custom_punctuation_unexpected)ޓ#stringify_punct)ޓ#sealedޓ#spanޓ#threadޓ# lookahead ޓ#parseޓ#reservedޓ#verbatimޓ#printޓ#rustdoc_workaroundޓ#errorޓ#parse ޓ#parse2 ޓ# parse_str ޓ# parse_file ޓ#privateޓ#privateޓ#Errorޓ#Tokenì'ޓ#Path"5ޓ# PathSegment" 5ޓ# PathArguments" 5ޓ#GenericArgument"5ޓ#AngleBracketedGenericArguments"5ޓ#Binding#5ޓ# Constraint# 5ޓ#ParenthesizedGenericArguments#5ޓ#QSelf#5ޓ#custom_punctuation_len)8ޓ# AttrStylec 'ޓ# Attributec 'ޓ#Metac'ޓ#MetaListc'ޓ# MetaNameValuec 'ޓ# NestedMetac 'ޓ#Fieldd(ޓ#Fieldsd'ޓ# FieldsNamede 'ޓ# FieldsUnnamede (ޓ#Variante'ޓ#VisCratee(ޓ# VisPublice (ޓ# VisRestrictede (ޓ# Visibilitye (ޓ#Armf+ޓ# FieldValuef +ޓ#GenericMethodArgumentf+ޓ#Labelf+ޓ#MethodTurbofishg+ޓ# RangeLimitsg +ޓ#Exprg(ޓ# ExprArrayg )ޓ# ExprAssignh )ޓ# ExprAssignOph )ޓ# ExprAsynch *ޓ# ExprAwaith *ޓ# ExprBinaryh *ޓ# ExprBlockh *ޓ#ExprBoxh*ޓ# ExprBreakh *ޓ#ExprCallh*ޓ#ExprCasth*ޓ# ExprClosureh *ޓ# ExprContinuei *ޓ# ExprFieldi *ޓ# ExprForLoopi *ޓ# ExprGroupi *ޓ#ExprIfi*ޓ# ExprIndexi *ޓ#ExprLeti*ޓ#ExprLiti*ޓ#ExprLoopi*ޓ# ExprMacroi *ޓ# ExprMatchi *ޓ#ExprMethodCalli*ޓ# ExprParenj *ޓ#ExprPathj*ޓ# ExprRangej *ޓ# ExprReferencej *ޓ# ExprRepeatj +ޓ# ExprReturnj +ޓ# ExprStructj +ޓ#ExprTryj+ޓ# ExprTryBlockj +ޓ# ExprTuplej +ޓ#ExprTypek+ޓ# ExprUnaryk +ޓ# ExprUnsafek +ޓ# ExprWhilek +ޓ# ExprYieldk +ޓ#Indexk+ޓ#Memberk+ޓ#BoundLifetimesl,ޓ# ConstParaml ,ޓ# GenericParamm ,ޓ#Genericsm,ޓ# LifetimeDefm ,ޓ# PredicateEqm ,ޓ#PredicateLifetimem,ޓ# PredicateTypem ,ޓ# TraitBoundm ,ޓ#TraitBoundModifierm,ޓ# TypeParamm ,ޓ#TypeParamBoundn,ޓ# WhereClausen ,ޓ#WherePredicaten,ޓ#FnArgp0ޓ# ForeignItemp /ޓ# ForeignItemFnp /ޓ#ForeignItemMacrop/ޓ#ForeignItemStaticp/ޓ#ForeignItemTypep/ޓ#ImplItemp/ޓ# ImplItemConstq 0ޓ# ImplItemMacroq 0ޓ#ImplItemMethodq0ޓ# ImplItemTypeq 0ޓ#Itemq-ޓ# ItemConstq -ޓ#ItemEnumq-ޓ#ItemExternCrateq-ޓ#ItemFnq-ޓ#ItemForeignModq-ޓ#ItemImplr-ޓ# ItemMacror .ޓ# ItemMacro2r .ޓ#ItemModr.ޓ# ItemStaticr .ޓ# ItemStructr .ޓ# ItemTraitr .ޓ#ItemTraitAliasr.ޓ#ItemTyper.ޓ# ItemUnionr .ޓ#ItemUser.ޓ#Receivers0ޓ# Signatures 0ޓ# TraitItems /ޓ#TraitItemConsts/ޓ#TraitItemMacros/ޓ#TraitItemMethods/ޓ# TraitItemTypes /ޓ#UseGlobs.ޓ#UseGroups/ޓ#UseNamet.ޓ#UsePatht.ޓ# UseRenamet .ޓ#UseTreet.ޓ#Filet0ޓ#Litu0ޓ#LitBoolu1ޓ#LitByteu1ޓ#LitByteu 1ޓ# LitByteStru 1ޓ# LitByteStru 1ޓ#LitCharu1ޓ#LitCharu 1ޓ#LitFloatv1ޓ#LitFloatv 1ޓ#LitIntv1ޓ#LitIntv 1ޓ#LitStrv1ޓ#LitStrv 1ޓ#StrStylev1ޓ#Macrow1ޓ#MacroDelimiterw1ޓ#Datax1ޓ#DataEnumx1ޓ# DataStructx 1ޓ# DataUnionx 1ޓ# DeriveInputx 1ޓ#BinOpy1ޓ#UnOpy2ޓ#Blockz2ޓ#Localz2ޓ#Stmtz2ޓ#Abi{3ޓ# BareFnArg{ 3ޓ# ReturnType{ 3ޓ#Type|2ޓ# TypeArray| 3ޓ# TypeBareFn| 3ޓ# TypeGroup| 3ޓ# TypeImplTrait| 3ޓ# TypeInfer| 3ޓ# TypeMacro| 3ޓ# TypeNever| 3ޓ# TypeParen| 3ޓ#TypePath|3ޓ#TypePtr|3ޓ# TypeReference} 3ޓ# TypeSlice} 3ޓ#TypeTraitObject}3ޓ# TypeTuple} 3ޓ#Variadic}3ޓ#FieldPat~4ޓ#Pat~3ޓ#PatBox~4ޓ#PatIdent~4ޓ#PatLit~4ޓ#PatMacro~4ޓ#PatOr~4ޓ#PatPath~4ޓ#PatRange~4ޓ# PatReference~ 4ޓ#PatRest~4ޓ#PatSlice4ޓ# PatStruct 4ޓ#PatTuple4ޓ#PatTupleStruct4ޓ#PatType4ޓ#PatWild4ޓ#Aē#w#cfg### feature##parsing# ##input# #e# # #5+input# ## +# ç#inputҧ# #9 ٧# #5+input# ## +ȱ# ȸ#5+input# ## +# #input# #e# ż# #inputѽ# expr_style# #Ľ# +ؽ# #5߹+input# ## ߹+# ##cfg### feature##full##5+input# ## +# #input# #Y#cfg### feature##full## '# #.input# # D Parse a `Path` containing no path arguments on any of its segments.#G#F *This function is available only if Syn is built with the `"parsing"`#I feature.*# # # Example# # ```# use syn::{Path, Result, Token};##& use syn::parse::{Parse, ParseStream};#)#- // A simplified single `use` statement like:#0 //#& // use std::collections::HashMap;#) //#E // Note that generic parameters are not allowed in a `use` statement#H* // so the following must not be accepted.#- //# // use a::::c;# struct SingleUse {# use_token: Token![use],# path: Path,# }## impl Parse for SingleUse {#3 fn parse(input: ParseStream) -> Result {#6 Ok(SingleUse {#' use_token: input.parse()?,#*6 path: input.call(Path::parse_mod_style)?,#9 })# }#  }# ```## # self#ident##A Determines whether this is a path of length 1 equal to the given#D ident.# #5 For them to compare equal, it must be the case that:#8#! - the path has no leading colon,#$$ - the number of path segments is 1,#'A - the first path segment has no angle bracketed or parenthesized#D path arguments, and#A - the ident of the first path segment is equal to the given one.#D#F *This function is available only if Syn is built with the `"parsing"`#I feature.*# # # Example# # ```#7 use syn::{Attribute, Error, Meta, NestedMeta, Result};#: # use std::iter::FromIterator;#"#G fn get_serde_meta_items(attr: &Attribute) -> Result> {#J% if attr.path.is_ident("serde") {#(# match attr.parse_meta()? {#&A Meta::List(meta) => Ok(Vec::from_iter(meta.nested)),#DK bad => Err(Error::new_spanned(bad, "unrecognized attribute")),#N }#  } else {# Ok(Vec::new())# }#  }# ```## I +I# +# ##### # ## ####n###Some##### #   +# ####n#### # #+##n##n+####n ##n +#self#ident#id##self# #< If this path consists of a single ident, returns the ident.#?#" A path is considered an ident if:#%#! - the path has no leading colon,#$( - the number of path segments is 1, and#+A - the first path segment has no angle bracketed or parenthesized#D path arguments.##F *This function is available only if Syn is built with the `"parsing"`#I feature.*# # +#input# expr_style# ## # input#path# expr_style# %##  # #input# expr_style# #S )# $TokensOrDefault$$TokensOrDefault$$ TokenStream$ $ToTokens׌$MЌ$cmp$ $ Punctuated" $parsing̓#$printing$$ proc_macro_ $ proc_macro2_ $ unicode_xid` $quote`$macros`$groupa$ parenthesized 6$braced7$ bracketed 8$tokena9$identa$Identa$Identa $attrb$ AttributeArgsc $bigintc$datad$exprf$genericsl$ ImplGenericso $ Turbofisho $ TypeGenericso $itemo$filet $lifetimeu $Lifetimeu $Lifetimeu $litu $Litu $LitBoolu $macv $derivew $opy $stmtz $ty{ $pat} $path$bufferÂ$ext$ punctuated $ parse_quote $ parse_quote' $parse_macro_input$parse_macro_input'$spanned$ whitespaceֈ $gen$ __private $custom_keyword$custom_keyword($impl_parse_for_custom_keyword($!impl_to_tokens_for_custom_keyword(!$impl_clone_for_custom_keyword($$impl_extra_traits_for_custom_keywordŠ)$$custom_punctuation$custom_punctuation)$!impl_parse_for_custom_punctuation)!$%impl_to_tokens_for_custom_punctuation)%$!impl_clone_for_custom_punctuation)!$(impl_extra_traits_for_custom_punctuation)($custom_punctuation_repr)$custom_punctuation_unexpected)$stringify_punct)$sealed$span$thread$ lookahead $parse$reserved$verbatim$print$rustdoc_workaround$error$parse $parse2 $ parse_str $ parse_file $private$private$Error$Result$Tokenì'$Path"5$ PathSegment" 5$ PathArguments" 5$GenericArgument"5$AngleBracketedGenericArguments"5$Binding#5$ Constraint# 5$ParenthesizedGenericArguments#5$QSelf#5$custom_punctuation_len)8$ AttrStylec '$ Attributec '$Metac'$MetaListc'$ MetaNameValuec '$ NestedMetac '$Fieldd($Fieldsd'$ FieldsNamede '$ FieldsUnnamede ($Variante'$VisCratee($ VisPublice ($ VisRestrictede ($ Visibilitye ($Armf+$ FieldValuef +$GenericMethodArgumentf+$Labelf+$MethodTurbofishg+$ RangeLimitsg +$Exprg($ ExprArrayg )$ ExprAssignh )$ ExprAssignOph )$ ExprAsynch *$ ExprAwaith *$ ExprBinaryh *$ ExprBlockh *$ExprBoxh*$ ExprBreakh *$ExprCallh*$ExprCasth*$ ExprClosureh *$ ExprContinuei *$ ExprFieldi *$ ExprForLoopi *$ ExprGroupi *$ExprIfi*$ ExprIndexi *$ExprLeti*$ExprLiti*$ExprLoopi*$ ExprMacroi *$ ExprMatchi *$ExprMethodCalli*$ ExprParenj *$ExprPathj*$ ExprRangej *$ ExprReferencej *$ ExprRepeatj +$ ExprReturnj +$ ExprStructj +$ExprTryj+$ ExprTryBlockj +$ ExprTuplej +$ExprTypek+$ ExprUnaryk +$ ExprUnsafek +$ ExprWhilek +$ ExprYieldk +$Indexk+$Memberk+$BoundLifetimesl,$ ConstParaml ,$ GenericParamm ,$Genericsm,$ LifetimeDefm ,$ PredicateEqm ,$PredicateLifetimem,$ PredicateTypem ,$ TraitBoundm ,$TraitBoundModifierm,$ TypeParamm ,$TypeParamBoundn,$ WhereClausen ,$WherePredicaten,$FnArgp0$ ForeignItemp /$ ForeignItemFnp /$ForeignItemMacrop/$ForeignItemStaticp/$ForeignItemTypep/$ImplItemp/$ ImplItemConstq 0$ ImplItemMacroq 0$ImplItemMethodq0$ ImplItemTypeq 0$Itemq-$ ItemConstq -$ItemEnumq-$ItemExternCrateq-$ItemFnq-$ItemForeignModq-$ItemImplr-$ ItemMacror .$ ItemMacro2r .$ItemModr.$ ItemStaticr .$ ItemStructr .$ ItemTraitr .$ItemTraitAliasr.$ItemTyper.$ ItemUnionr .$ItemUser.$Receivers0$ Signatures 0$ TraitItems /$TraitItemConsts/$TraitItemMacros/$TraitItemMethods/$ TraitItemTypes /$UseGlobs.$UseGroups/$UseNamet.$UsePatht.$ UseRenamet .$UseTreet.$Filet0$Litu0$LitBoolu1$LitByteu1$LitByteu 1$ LitByteStru 1$ LitByteStru 1$LitCharu1$LitCharu 1$LitFloatv1$LitFloatv 1$LitIntv1$LitIntv 1$LitStrv1$LitStrv 1$StrStylev1$Macrow1$MacroDelimiterw1$Datax1$DataEnumx1$ DataStructx 1$ DataUnionx 1$ DeriveInputx 1$BinOpy1$UnOpy2$Blockz2$Localz2$Stmtz2$Abi{3$ BareFnArg{ 3$ ReturnType{ 3$Type|2$ TypeArray| 3$ TypeBareFn| 3$ TypeGroup| 3$ TypeImplTrait| 3$ TypeInfer| 3$ TypeMacro| 3$ TypeNever| 3$ TypeParen| 3$TypePath|3$TypePtr|3$ TypeReference} 3$ TypeSlice} 3$TypeTraitObject}3$ TypeTuple} 3$Variadic}3$FieldPat~4$Pat~3$PatBox~4$PatIdent~4$PatLit~4$PatMacro~4$PatOr~4$PatPath~4$PatRange~4$ PatReference~ 4$PatRest~4$PatSlice4$ PatStruct 4$PatTuple4$PatTupleStruct4$PatType4$PatWild4$Bދ$7Ë$cfgË$Ƌ$ۋ$ featureNj$ϋ$printingы$ $?$Mself$tokens$ҍ$Ս$ ߍ$$Mself$tokens$׏$ڏ$ $$*M*self$tokens$ב$ڑ$ *$$ +M+self$tokens$$Օ$allowՕ$ڕ$$ clippyە$$ match_same_arms$ӕ$!$  +$$+M+self$tokensğ$$$  +$$߹+M߹+self̲$tokensҲ$$$  ߹+˲$$+M+self$tokens$$$  +$$+M+self$tokens$$$  +$$ tokens$qselfй$path$!$ $  ) $Âpm$$Lifetime$ $Lifetime$ $ Delimiter$ $ Group$$Ident$$Literal$$Punct$$Spacing$$Span$$ TokenStream$ $  TokenTree$ $  PhantomData$ $ PhantomData$ $ptr$ $cfg featureparsing J A stably addressed token buffer supporting efficient traversal based on a$M cheaply copyable cursor.$$N *This module is available only if Syn is built with the `"parsing"` feature.*$Q??$ $M Internal type which is used instead of `TokenTree` to represent a token tree$P within a `TokenBuffer`.$$$$ $ $$$$$$ȁ$ $ ,$$ ۳,,$ ۳,,$Group$Group۳,$$$,$$۳,$$$ $ ,$ ,$ Ident$ $ $ ,$ $ $ $ $ ,$ ,$ Punct$ $ $ ,$ $ $ $$ ȁ,$ ȁ,$Literalȁ$$$,$ȁ$$$$ ,,$ ,,$End,$$$,$,$$$ $B A buffer that can be efficiently traversed multiple times, unlike$EH `TokenStream` which requires a deep copy in order to traverse more than$K once.$ $L *This type is available only if Syn is built with the `"parsing"` feature.*$O۳,$$U ,$۳,stream$up$$$ ,۳,stream$ $\A Creates a `TokenBuffer` containing all the tokens from the input$D `TokenStream`.$$M *This method is available only if Syn is built with both the `"parsing"` and$P `"proc-macro"` features.*$$cfg$$$ all$$$ not$$$ all$$$ target_arch$ $wasm32$$ any$$$ target_os$ $unknown$ $ target_os$ $wasi$$ feature$$ proc-macro$ $$ ۳,stream$ $dA Creates a `TokenBuffer` containing all the tokens from the input$D `TokenStream`.$$ ۳,self$ $wG Creates a cursor referencing the first token in the buffer and able to$J& traverse until the end of the buffer.$)$  ۳,$$$0 A cheaply copyable cursor into a `TokenBuffer`.$3$K This cursor holds a shared reference into the immutable data which is used$NL internally to represent a `TokenStream`, and can be efficiently manipulated$O and copied around.$$M An empty `Cursor` can be created directly, or one may create a `TokenBuffer`$P; object and get a cursor to its first token with `begin()`.$>$G Two cursors are equal if they have the same location in the same input$J! stream, and have the same scope.$$$L *This type is available only if Syn is built with the `"parsing"` feature.*$O'a'a$$,$$,$$ 'a,$?'a'a$9 Creates a cursor referencing a static empty TokenStream.$<$ 'a,ptr$scope$$> This create method intelligently exits non-explicitly-entered$AA `None`-delimited scopes when the cursor reaches the end of them,$D/ allowing for them to be treated transparently.$2$ 'a,,,self$ $A Get the current entry.$$ 'a, 'a,self% %aG Bump the cursor to point at the next token after the current one. This$J? is undefined behavior if the cursor is currently looking at an$B `Entry::End`.$% 'a,,self% %I While the cursor is looking at a `None`-delimited group, move it to look%LI at the first token inside instead. If the group is empty, this will mové%L, the cursor past the `None`-delimited group.%/т%$ WARNING: This mutates its argument.ق%'% 'a ,%self% %yH Checks whether the cursor is currently pointing at the end of its valid%K scope.% % 'a,self%delim%%I If the cursor is pointing at a `Group` with the given delimiter, returns%LC a cursor into that group and one pointing to the next `TokenTree`.ω%F% 'a,,,self% %G If the cursor is pointing at a `Ident`, returns it along with a cursor%J" pointing at the next `TokenTree`.ˏ%%% 'a,,self% ޒ%H If the cursor is pointing at an `Punct`, returns it along with a cursor%K" pointing at the next `TokenTree`.%%% 'a,,self% ٕ%H If the cursor is pointing at a `Literal`, return it along with a cursorߔ%K" pointing at the next `TokenTree`.%%% 'a,ȁ,selfژ% Ƙ%C If the cursor is pointing at a `Lifetime`, returns it along with aʗ%F) cursor pointing at the next `TokenTree`.%,͘% 'a,Ӯ,self% Ϟ%< Copies all remaining tokens visible from this cursor into a%? `TokenStream`.%֞% 'a,self% ϣ%D If the cursor is pointing at a `TokenTree`, returns it along with a%G) cursor pointing at the next `TokenTree`.%,ߡ%@ Returns `None` if the cursor has reached the end of its stream.%C%G This method does not treat `None`-delimited groups as transparent, and%JA will return a `Group(None, ..)` if the cursor is looking at one.%D֣% 'a,,self% %H Returns the `Span` of the current token, or `Span::call_site()` if this%K cursor points to eof.%% 'a,self% %D Skip over the next token without cloning it. Returns `None` if this%G cursor points to eof.%%3 This method treats `'lifetimes` as a single token.%6% 'a,,$$$$,$ ,,$,$$,$,$$$',,$ $U,$$$$,$End,$$.,$U$U,$,$,$$U%'a,'a˰%S'a ,'aself% %-% 'a ,,%%'a ,'a%'a ,,'aself%other%%% 'a , ,%% a%b%%6 %%cursor% %8 %%cursor% %9%Cursor%%Peek%% ParseStream% % Result%% lookaheadϸ% % CustomToken% i޸%Ident%% ͂cfg͂ėЂ featureтقparsingۂ ˂> Extension traits to provide parsing methods on foreign types.Ƕ%A%N *This module is available only if Syn is built with the `"parsing"` feature.*%QȻ%%M Additional methods for `Ident` not provided by proc-macro2 or libproc_macro.%P%L This trait is sealed and cannot be implemented for types outside of Syn. It%O. is implemented only for `proc_macro2::Ident`.%1%M *This trait is available only if Syn is built with the `"parsing"` feature.*%PSelfڻ%һ%,ڻ%,һ%input% %1* Parses any identifier including keywords.%-%F This is useful when parsing macro input which allows Rust keywords as%I identifiers.%% # Example% % ```%( use syn::{Error, Ident, Result, Token};%+ use syn::ext::IdentExt;% use syn::parse::ParseStream;% % mod kw {%  syn::custom_keyword!(name);ɾ%# }%%B // Parses input that looks like `name = NAME` where `NAME` can be%E // any identifier.Ϳ% //% // Examples:% //% // name = anything% // name = impl%4 fn parse_dsl(input: ParseStream) -> Result {%7 input.parse::()?;%#! input.parse::()?;%$. let name = input.call(Ident::parse_any)?;%1 Ok(name)% }% ```%% % /// Peeks any identifier including keywords. Usage: /// `input.peek(Ident::peek_any)` /// /// This is different from `input.peek(Ident)` which only returns true in /// the case of an ident which is not a Rust keyword. #[allow(non_upper_case_globals)] const peek_any: private::PeekFn = private::PeekFn;%20 Peeks any identifier including keywords. Usage:%3 `input.peek(Ident::peek_any)`%!%F This is different from `input.peek(Ident)` which only returns true in%I2 the case of an ident which is not a Rust keyword.%5%allow%%% non_upper_case_globals%% %%2%2-%%2self% %D Strips the raw marker `r#`, if any, from the beginning of an ident.%G% - unraw(`x`) = `x`% - unraw(`move`) = `move`% - unraw(`r#move`) = `move`% % # Example% %D In the case of interop with other languages like Python that have a%GF different set of keywords than Rust, we might come across macro input%ID that involves raw identifiers to refer to ordinary variables in the%G> other language with a name that happens to be a Rust keyword.%A%H The function below appends an identifier from the caller's input onto a%KB fixed prefix. Without using `unraw()`, this would tend to produce%E. invalid identifiers like `__pyo3_get_r#move`.%1% ```% use proc_macro2::Span;% use syn::Ident;% use syn::ext::IdentExt;%%1 fn ident_for_getter(variable: &Ident) -> Ident {%4= let getter = format!("__pyo3_get_{}", variable.unraw());%@+ Ident::new(&getter, Span::call_site())%. }% ```%%  %%input% %% % self% %% %%E--%%%-i-cursor% %H% %%9% %---%Ident%%%%%Self%%%-%-%%-%-%--%[- -self% %5%  --% iter%%  FromIterator% (%Index%%IndexMut%%option%,% slice%% vec%#%vec%%Parse%% ParseStream% % Result%%Token%Z% E A punctuated sequence of syntax tree nodes separated by punctuation.%H%1 Lots of things in Rust are punctuated sequences.%4%= - The fields of a struct are `Punctuated`.%@D - The segments of a path are `Punctuated`.%GD - The bounds on a generic parameter are `Punctuated`.%F - The arguments to a function call are `Punctuated`.%I%L This module provides a common representation for these punctuated sequences%OL in the form of the [`Punctuated`] type. We store a vector of pairs of%OM syntax tree node + punctuation, where every node in the sequence is followed%P2 by punctuation except for possibly the final one.%5%! [`Punctuated`]: Punctuated%$% ```text% # a_function_call(arg1, arg2, arg3);%&! ~~~~^ ~~~~^ ~~~~%$ ```%? % %% %QD A punctuated sequence of syntax tree nodes of type `T` separated by%G punctuation of type `P`.%%L Refer to the [module documentation] for details about punctuated sequences.%O% [module documentation]: self% PTP%-%%%#-%%U % %%N-TP%˨-%%x& Creates an empty punctuated sequence.%)%cfg%%% not%%% syn_no_const_vec_new%%!% --% % % #-% %%%M-%M-%M-%%%%x-%%M-% %M-%%xself% %[A Determines whether this punctuated sequence is empty, meaning it%D. contains no syntax tree nodes or punctuation.%1% - -%%% % -%% #-%%,%,%,%,%,%,%,%,%% % -%% ,-% %%%%,%%,%[% -%%,%%, -% %,%%, -% self%%[self% %eE Returns the number of syntax tree nodes in this punctuated sequence.%H%I This is the number of nodes of type `T`, not counting the punctuation of%L type `P`.% % --%%% % -%%-%%%'%&% % -%% ,-% %%'%%%'%%%'%:%: %:%%%%%e%ݲ-%%:%%:-% %:%'%:%&%:-% %:self%%eself% %D, Borrows the first element in this sequence.%/% -- %% % %%% % -%%D% %%% )%%%%%%%D % ݲ-%% -% %-% %ݲ-%self%%Dself% %T4 Mutably borrows the first element in this sequence.%7% - - %%%%%%% -% %T%%%% )%%%%%%%T % -% % -%%-%%-%self% %Tself% %H+ Borrows the last element in this sequence.%.% ---%% % %%% %-%%H% %%% (-% %%%%%%H׽-% ݲ-%%-% %-% %ݲ-%self%%Hself% %X3 Mutably borrows the last element in this sequence.%6% -ɿ-ҿ-%%%%%%%-% %X%%%% (-% %%%%%%X-%-% %-%%-%%-%self% %Xself% %B Returns an iterator over borrowed syntax tree nodes of type `&T`.%E%--%%%%%% %% % -%% -%% %%% >-%%%/ %# % %  % -%% ,-  %% %#% , -޽- - % - %% %/% (׽-  % % %7-%޽- % %%% [-%%U)޽-%%%-%%%% -%ݲ-%%-%%U-%%-%%-%%  -% %-%%-% %-%/%׽-%#%-%%-% self%%self% %D Returns an iterator over mutably borrowed syntax tree nodes of type%G `&mut T`.% %-ɿ-%%%%%% %% % -%% -%% %%% >-% %%/ %# % %  % -%% ,-  %% %#% , -- - % - %% %/% (-  % % %7-%- % %%% [-%%U)-%%%-%%%% -% -% %-%%U-%%-%%-%% -% %-%% -% %-%/%-%#%-%% -% self% %self% %C Returns an iterator over the contents of this sequence as borrowed%F punctuated pairs.%% ---%%% %% % -%%-%% %%%-%%%/%#%%  % -%%- %% %#%-% -%%%/% -% %%z-%z-%%%%% -% ݲ-%%z-%%z-% %z-%%z-% %z-%/%z׽-%#%z-%%z-% self%%self% %B Returns an iterator over the contents of this sequence as mutably%E borrowed punctuated pairs.%% -ɿ--%%% %% % -%%-%% %%%-% %%/%#%%  % -%%- %% %#%-% -%%%/% -% %%-%-%%%%% -%-% %-%%-% %-%%-% %-%/%-%#%-%%-% self% %self% %@ Returns an iterator over the contents of this sequence as owned%C punctuated pairs.%% ---%%%%%% % -%% (-% %%!%% % % % -%%% ,-- -% %%%%!% (% %%u&-%u%%%%%%%-%% -%-%%u-%%u-% %u-%!%u-%%u-% %u-%%self%%self%value%%I Appends a syntax tree node onto the end of this punctuated sequence. The%L6 sequence must previously have a trailing punctuation.%9%G Use [`push`] instead if the punctuated sequence may or may not already%J have trailing punctuation.%% [`push`]: Punctuated::push%% # Panics% %I Panics if the sequence does not already have a trailing punctuation when%L this method is called.%% -ɿ-% % %% %%&%%%%% -%%%% %%%%%&& &&%% [%%YWPunctuated::push_value: cannot push value if Punctuated is missing trailing punctuationWWW&%Some-%&% - & &&& % -% % -&%%&% %-% %%&%ݲ-%-%-%&&self% value%%self΂& punctuationԂ& &I Appends a trailing punctuation onto the end of this punctuated sequence.&LB The sequence must be non-empty and must not already have trailing&E punctuation.&ǁ& # Panicsρ& &G Panics if the sequence is empty or already has a trailing punctuation.&J& -ɿ--ɂ& &&&&&&&& & -&&- & &&& &&&&&& & -&& ,- &&ljPunctuated::push_punct: cannot push punctuation if Punctuated is empty or already has trailing punctuationjjj &&„& ,- „&Ʉ&Ԅ&% Ԅ&  Ԅ&  -& & & &  & & &  &  & - & & Ԅ&%߄& #-   ߄&&& %  && & & &&&&.. &&&&&&& &&Z&-ɂ& -Ԃ& &&&-& -&-&-& Ԅ&%-Ԅ& -&&-& &&&selfɂ&  punctuationԂ& last&&self& &F Removes the last punctuated pair from this sequence, or `None` if the&I sequence is empty.ԅ&& -ɿ--& &&& & -&&-& &&&& & -&& #-&ʆ&ʆ& ʆ& -ʆ&Ԇ&̆.Ԇ&ن&߆&ʆ&'ۆ& ,-.- -.ۆ&&&&&& &5& ,-.- -. &$Ç& Ç&&Ӈ&ԇ&& .&-& &&&&-& ʆ&'-ʆ&ʆ&'-ʆ& ʆ&'.߆&&5-&&5-& &5.&self& &selfψ& &\A Determines whether this punctuated sequence ends with a trailingڇ&D punctuation.&& --Έ&&& & -&&ϱ-& &'&'&'&'&'&'&&&&&&-& &&&&&'&& &&'&\؈&ݲ-Έ&&'&&'-& &'&&'&&'ݲ-&selfΈ&&\self& Պ&KH Returns true if either this `Punctuated` is empty, or it has a trailing&K punctuation.&&F Equivalent to `punctuated.is_empty() || punctuated.trailing_punct()`.&I܊&--&& & -&&ϱ-& &&Պ&K&ݲ-&&-& self&Պ&Kselfҍ&value؍&&E Appends a syntax tree node onto the end of this punctuated sequence.&H&I If there is not a trailing punctuation in this sequence when this method&LH is called, the default value of punctuation type `P` is inserted beforě&K the given value of type `T`.& ȍ& -ɿ-͍&-& &Y &Y&Y &Y&&&&&&&- &&&& &&Y&Y&#&&Ɏ&Ɏ&Ɏ& - Ɏ&&#& . &ێ&ێ&܎&&Y&& & & & & && && -    && & & &&&& &&&  & &-͍& ؍&&&&ݲ-&&#-&-Ɏ&&-&&&self͍& value؍&&self&index&value& Ր&( Inserts an element at position `index`.&+Ï& # Panicsˏ& ܏&G Panics if `index` is greater than the number of elements previously in&J this punctuated sequence.&ܐ& -ɿ-&.& &j&j&j&j&j&Ǒ&Ǒ&Ǒ&Б& Б&Б&Б& Ց&µ-Ց&Ր&ّ&Ǒ& ّ&ّ&&j &&j&&& & & &  & & & &µ-  &&(&Punctuated::insert: index out of range&&&& &    & & &  &5& & -&&&&&&&&&&Υ.  &˒& ˒&˒&Ւ&Ւ&Ւ&Ւ&˒&В&. В& ڒ&ڒ&ے& &)&)& &&-&&&5& #- &*&&&&&&N&N& & &&&&& Ր&&-& &&&j&Ǒ&Ǒ&Б& ݲ-Б&&&&&&&& &ݲ-&˒&-˒&Ւ&&5-& &-&&-&&self& index&value&Ր&self& &UD Clears the sequence of all values and punctuation, making it empty.Ɠ&G& -ɿ-&&& & -&& #-&Ŕ&Ɣ&ܔ&ܔ&Д& -Д& -&UД& -ߔ&&=&=&&U&-& &-& -ܔ&self& &Uinput٘& &H Parses zero or more occurrences of `T` separated by punctuation of type&K) `P`, with optional trailing punctuation.&,&I Parsing continues until the end of this parse stream. The entire content&L2 of this parse stream must consist of `T` and `P`.ǖ&5&F *This function is available only if Syn is built with the `"parsing"`&I feature.*ח& &cfg&&& feature&&parsing& &Ș& --& ʹ&-&ՙ&ՙ&ܙ&ܙ&ܙ& &,& -&,&&&&.& ٘&&,ՙ&&,.ܙ&input٘&&input&parserΞ&&G Parses zero or more occurrences of `T` using the given parse function,&J= separated by punctuation of type `P`, with optional trailing&@ punctuation.&&I Like [`parse_terminated`], the entire content of this stream is expected&L to be parsed.&&3 [`parse_terminated`]: Punctuated::parse_terminated&6̜&F *This function is available only if Syn is built with the `"parsing"`Ԝ&I feature.*& &cfg&ٞ&͝& feature&&parsingĝ& &&. .& .&%&#&&"&&ɟ&ɟ&-ɟ&&&& !& !&Ok-!&&!Ģ&Ţ&&&&&&& & Ģ&&&:&à&ˠ&&ˠ& ˠ& ˠ& Ҡ& Ҡ& ˠ&    ˠ& &&נ& נ& ˠ&&ˠ&&  ˠ&&ؠ&&ؠ&& ؠ&&   ٠& ˠ&ˠ&Okˠ&"ˠ&ˠ&ؠ&٠&&& & &&"&&&& -&ˠ&&ؠ&& ؠ&& Errؠ&& ؠ&&ؠ&& ؠ&&ؠ&&  ؠ&&Ţ&ؠ&&ؠ&&ˠ&& .  ؠ&&ؠ&& ؠ&& ٠&&"&&ؠ&&Ģ&Ģ&ؠ&&&"#&&&&&&&&&.& &&:ʡ&ܡ&&&& &&& & -&ʡ&&"&&&&&&&& -&&&&&& &&& &&Ok-& #&& &&&& & & &#&& && . "!&&&&&&&Err&& && && && &&&&&& && &&. &&&& &&&&#&&&"&&&&&#$& &&&#&&&"&&&&"&&&#&& &&&ؠ&&ؠ&&ˠ&ˠ&ء&O&&&&&& $.& &.Ξ&-&&&&à&ˠ&&ˠ& .ˠ&Ҡ&ؠ&&ؠ&&ؠ&&ؠ&&ˠ&&-& &&&&-ܡ&.&&.& &&&&&&&&&-&&-& -&&-& && input&parserΞ& punctuated&valueà&errؠ&& valˠ&punctܡ&err&&val& &input& &G Parses one or more occurrences of `T` separated by punctuation of typeˢ&J) `P`, not accepting trailing punctuation.&,ˣ&G Parsing continues as long as punctuation `P` is present at the head ofӣ&JI the stream. This method returns upon parsing a `T` and observing that it&LD is not followed by a `P`, even if there are remaining tokens in the&G stream.& ϥ&F *This function is available only if Syn is built with the `"parsing"`ץ&I feature.*& &cfg&&Ц& feature&Ŧ&parsingǦ& && -.& ʹ&Z-&.&&&¨&¨&¨&.&4&# -&4ʨ&ʨ&Ѩ&&.Ƨ& &&4&&4.¨&input&&input&parserݭ&&F Parses one or more occurrences of `T` using the given parse function,ר&I= separated by punctuation of type `P`, not accepting trailing&@ punctuation.&&F Like [`parse_separated_nonempty`], may complete early without parsing&I# the entire content of this stream.ժ&&&C [`parse_separated_nonempty`]: Punctuated::parse_separated_nonempty&Fӫ&F *This function is available only if Syn is built with the `"parsing"`۫&I feature.*& &cfg&ǟ&Ԭ& feature&ɬ&parsingˬ& &&...ȭ& .&.&"Ϯ&"Ϯ&Ϯ&#Ϯ&Ϯ&&&-&&&&&&& &&&&& & &&&&&&&.&&&&&& &&  & & & Ok&"&& & &&& & ͯ&ͯ&"ͯ&ͯ&&¯& -¯&&&&& && Err&& && &&  &&&&  &&&&& &&&&.  &&&& && &&"&&&&&&&& &" ү&ү&ӯ&&&&&&&&& &&&& [-&&& &&B&&&&& &&& °&.°& &&"&&& !& !&Ok-!&&!&& Ȱ&&&&&.&&ɰ&&ɰ&& ɰ&&ʰ& &&Ok-& #&& ɰ&ʰ&ذ&ذ& ذ& & &#&& ذ&& . &&&ɰ&&ɰ&&Errɰ&& ɰ&& ɰ&& ɰ&& ɰ&&ɰ&&ɰ&& ɰ&& &&.ɰ&&ɰ&& ɰ&&ʰ&&#&&&"&&ɰ&&&#!& &&&#&&&"&&&&"&&&#&& &ˮ&&&&&&&&&Oɰ&&ɰ&&&& $.& &.ݭ&-Ϯ&&&&& .&&&&&&&&&&&&-& ͯ&&&&&&-&.&&.& &ɰ&&ɰ&&ɰ&&ɰ&&-&ذ&-ذ& -&&-& && input&parserݭ& punctuatedϮ&value&err&& val& punct&errɰ&&val& & & &&&cfg&&& feature&& clone-impls& &- -TP&˨-& & -&selfѲ& Dz&ʲ& ---в&&& & -&&  -&Dz&&&& & -&&  -&&&b-&b-ʳ&ʳ&ѳ&ʳ&Dz&-ڲ&ݲ-в&&b-&&b-& &b-&&b-& selfв&Dz& & Ľ&&-(-TP&˨-Ľ&.&i&&& -I/-I/&(/&/(&̾&̾&̾&̾&־&־&-־&&& &&&&&&& & (-/& &&&&&&&&&&Ⱦ&I-̾&/&& -&/&&i&ret̾&& & &&-(-TP&˨-&.̿&self&i&ۿ&~޿& -/ɿ-/I&/&/&Ώ/& &&&&&&&&&&&&&& (/&&ۿ&~&&&&&&&8&&&&&&&& && && &&&& )/( &&&&&& & &8&8&& &&&&&& &&& & Some& &  &&& & & && &&& &&&&&& &&&&& &&.  & &&&& &&&&8&&&&&&&& ۿ&~&8&+&&+&-& /&&&/&&&&/&&/&&&&-&& /&&˞/&&&&&&&-&&&self& i&iter&&__next&&val& value& ۿ&~ & &&-(-.TP&˨-&i&&& -//-I/&/&/(.&&&&&&&-&&& &&&&&&& & (-./& &&&&&&&&&&&I-&/&& -&/&&i&ret&& & &&-(-.TP&˨-&self&i&&& -/ɿ-/I&/&/&/&" & &&&&"&&!&&#&&&&&&&&&&-&&&& &&&& &&&&&&&&&&&&&&&&/&&&USPunctuated::extend: Punctuated is not empty or does not have a trailing punctuationSSS&&&& && &&& && && && &&  &&  &&&&/  &&& && & & &&&& && & && & &&&& Some.&&& && &&&& && &&& &&&&!&&&&"&&&&#&&&& &&&&&e && &&20Punctuated extended with items after a Pair::End?000&&#&&End&& &&& &-& &&&"&& Punctuated&&!&& Punctuated-& & -&&&&&&&-&&&&.& &&&&&&&Some-&&& -! &&!&&"&&#&&& && && &&&&&&&&& && & &!&!&& Punctuated-&"&"&& Punctuated&#&#&&End&$ &$& -& & -&& &&i&i&&&&&&&&&1&y%&-& /&&&&ݲ-&& &&/&&&&/&&/&&.&&.&&˞/&&˞/&&&.&.&.&&&&&&&-&&-& &-&&&&-&&-&-& &&&&&&& self& i&nomore& iter&& __next&& val&pair&a&b&a&& & &&-(-TP&˨-&&&&&self& && ---( & & & & & & & & & & & & &&& &µ- &&&& # & &&&&:&&&)&&  & & &  -&& - & & &  &)& )-- ͔. && &&:& (#-/&1 &&&&& & & & & & & & -&&& ,--- & &&&&& (/-   && & & &&&&&&& (/& &&=&&&&&&&& &&&- &&&- & &&& & &&/&-&/& & ݲ-&&: /&/&)-&-& /& &&/&-&-& /&&=/&&=/&&&&self&elements& & & && 'aTP(/'aTP/&/&&& 'a/&&'a/self& &K& 'a////(&&&& //&&&&K/& /&&/&self&&K & && 'a/(/'aTP/&/&&& 'a/&&'a/self& &O& 'a////(&&&& //&&&&O/& /&&/&self&&O & &&f--TP&˨-&&6& --&&-&&&6-&&6 & &&&m8 An iterator over borrowed pairs of type `Pair<&T, &P>`.&;&L Refer to the [module documentation] for details about punctuated sequences.&O& [module documentation]: self& 'a//'aTP/&/'a&/&/'a&/Ɖ/Ɖ&&7'a//&& 'a/ & &&'a//)/'aTP/&/&&& 'a/ 'a/self& && 'a// //)&&P&& & 7/&& )/&&&&P& , / / /// //&$&&&"&"&"&"  //&&& ,/// //&+&&&&/&/& &/&P&/&& /& &/&&/&"&/&"self& &self& &\& 'a// /&& &&& & (/&&&& &&& &/&&&Some&&&&/&&&&\/& /&&& &/&&/&&& &/&self&&\ & &&'a//(/'aTP/&/&self& && 'a// //)&&9&& & /&& )/&&&9& ,// //& /&&&>&>&>&>/&&& ,/////&G&&&&/&/& &/&9&/&& /& &/&>&/&>self& & & &&'a//(/'aTP/&/&self& &I& 'a// /&&& & /&& (/&&&& & /&& (/&&&"&" &"&&&&I&/&&"&&" /& &"&&" /& &"self&&I & &&'a// /'aTP/&/&self& && 'a// //&&& & /&&  /&&&& & /&&  /&&&]/&]/&&&&/&/&&]/&&]/& &]/&&]/& self&& & &&&wH An iterator over mutably borrowed pairs of type `Pair<&mut T, &mut P>`.&K&L Refer to the [module documentation] for details about punctuated sequences.&O& [module documentation]: self& 'a//'aTP/&/'a&/&/'a&00&!&7'a/&!& 'a/ & &&'a//)0'aTP/&/&&'& 'a/ 'a/self& && 'a// 00)&&P&& & 7/&& )0&&&&P& , / / /// 00&$&&&"&"&"&"  //&&& ,0// 00&+&&&&0&0& &0&P&0&& 0& &0&&0&"&0&"self& &self& &\& 'a// 0/&& &&& & (0&&&& &&& &0&&&Some&&&&/&&&&\/& 0&&& &͏0&&/&&& &͏0&self&&\ & &&'a//(0'aTP/&/&self& && 'a// 00)&&9&& & 0&& )0&&&9& ,00 00& 0&&&>&>&>&>0&&& ,0//00&G&&&&0&0& &0&9&0&& 0& &0&>&0&>self& & & &&'a//(0'aTP/&/&self& &I& 'a// 0&&& & 0&& (0&&&& & 0&& (0&&&"&" &"&&&&I&͏0&&"&&" 0& &"&&" 0& &"self&&I & && &_3 An iterator over owned pairs of type `Pair`.&6&L Refer to the [module documentation] for details about punctuated sequences.&O& [module documentation]: self& -TP&˨-&&&-&&- & &&-)-TP&˨-&&&.self& && - --)&&P&& & -&& )-&&&&P& ,-.-˔.&$&&&"&"&"&"  -&&& ,.- .ģ0&+&&&&.&ƣ0& &.&P&Ж.&& -& &Ԣ0&&0&"&ģ0&"self& &self& &\& - -/&& &&& & (-&&&& &&& &0&&&Some&&&&/&&&&\/& -&&& &Ʃ0&&/&&& &Ʃ0&self&&\ & &&-(-TP&˨-&self& && -00&&9&& & -&& )-&&&9& ,. -& 0&&&>&>&>&>ģ0&&& ,.-00&G&&&&.&ƣ0& &.&9&-&& -& &0&>&ģ0&>self& & & &&-(-TP&˨-&self& &I& -צ0&&& & -&& (-&&&& & -&& (-&&&"&" &"&&&&I&Ʃ0&&"&&" -& &"&&" -& &"self&&I & &&- -TP&˨-&/&/&self& && -צ0-&&& & -&&  -&&&&& & -&&  -&&&a-&a-&&&&&-&Ʃ0&&a-&&a0& &a-&&a0& self&& &&&7+ An iterator over owned values of type `T`.&.&L Refer to the [module documentation] for details about punctuated sequences.&O& [module documentation]: self& /T&&&/ &&/)/T&&&self& &J&  //)&& & /&& )/&&&&J-& /& & /& self& &Jself& &\&  //&& &&& & (/&&&& &&& &0&&&Some&&&&/&&&&\/& /&&& &0&&/&&& &0&self&&\ &&/(/T&self& &T& 00&& & /&& (/& &&&T-&޿0& &0& self& &T &&i/(/T&self& &7& 0&& & /&& (/&&&&7&0&& /& self&&7 &&/ /T&/&self& &c& 0/&&& & /&&  /&&&;/&&&c/&0&&;/&&;0& self&&c &&&/ An iterator over borrowed values of type `&T`.&2&L Refer to the [module documentation] for details about punctuated sequences.&O& [module documentation]: self& 'a/'aT/&/'a&0&&3&U'a/) 'a/'a && &Self'aT(&!(&) 'aT& 0& 0&0'a&0&!0&0& 0& self& &D& 'a0Ғ-U'a0)0'a& & && &o'a//'aTP/&/'a&/&/'a&0Ɖ0Ɖ&&7'a/&& 'a/ &&&;&cfg&֪&& any&&& feature&&full&& feature&&derive&&1 'a/'a/'aT/&&&& & & '/& && ['/&&U/)/&&&40&&&x/& &40&&4U0&&40& &x &&'a/ 0'aT/&self& &c& 'a/ 00&&&& & 0&& 0/& &0&&&;0&&&c/& /&&;0&&;0&&; 0& self&&c &&'a/)0'aT/&&& 'a/self& &J& 'a/ 00)&& & 0&& )0&&&&J/& /& & 0& self& &Jself& &\& 'a/ 0/&& &&& & (/&&&& &&& &0&&&Some&&&&/&&&&\/&0&&& &0&&/&&& &0&self&&\ &&'a/(0'aT/&self& &T& 'a/ 00)&& & 0&& (0& &&&T/&0& &0& self& &T &&m'a/(0'aT/&self& &7& 'a/ 0&& & 0&& (0&&&&7&0&& 0& self&&7 & &&'a//)0'aTP/&/&&& 'a/self& && 'a// 00)&'?'' ' /''/''Ȁ''?Ā' ,//// //Ā'ր'ր'''''  //''i' ,/// /0''''&/&0& 'i/'?'i/''i/' 'i0Ȁ''i0''i0'self& & ' '''a//(0'aTP/'/'self' ΁'с' 'a// 00)ہ''' ' /''/'''-'-'-'-0''a' ,///00'6'''΁'/'0ہ' 'a/''a/' 'a0'-'a0'-selfہ' ΁' ' '''a//(0'aTP/'/'self' 'I' 'a// 0'Ӄ'Ӄ' Ӄ' /Ӄ'ރ'/ރ'''' ' /''/''Ӄ'"Ӄ'" Ӄ'"''''IÃ' 0'Ӄ'"Ӄ'Ӄ'"/Ӄ' Ӄ'"'Ӄ'"/' Ӄ'"self''I ' '''a// 0'aTP/'/'selfۄ' ф'Ԅ' 'a// 00ڄ''' ' /''/'''' ' /'ą'/ą'ʅ''c/'c/Յ'Յ'܅'ф'0'0ڄ''c/''c/' 'c/''c/' selfڄ'ф' ' ''//'a/'aTI /) 'a/' 1ц' /'/'a'(/'!/'(/'/'a' /'self' 'j' 'a// /U'a/)Ƅ1'a'''Ň' Ň'Ň'Ň' ʇ'  /ʇ'Ї''' [/''0ч'ч''0ׇ'؇''j0', /'0''U/''/Ň' '߈1Ň'self''j '''a; An iterator over mutably borrowed values of type `&mut T`.܇'>'L Refer to the [module documentation] for details about punctuated sequences.'O' [module documentation]: self' 'a/'aT/'/'a'1'':'U'a/) 'a/'a '' 'rSelf'aT0'%0Š'#) 'a0'1Ԋ'0'0'a'0'%0Š'#1'1Ԋ' ' '''y'a//'aTP/'/'a'/'/'a'11'!'7'a/'!' 'a/ Č'''B'cfg''' any''' feature''full'' feature''derive''1 'a/'a/'aT/Č'''' ' ' '0' '' ['0''U/)0'''7Δ1'''/̌''7Δ1''7U1''71' ' '''a/)1'aT/'ʍ'ύ' 'a/self' 'J' 'a/ 11)'' ' Δ1'' )Δ1''''J0' /' ' Δ1' self' 'JselfĎ' '\' 'a/ 1/Î'' ''' ' (/'''' ''' '1'''Some''''/''''\/͎' /Î''' '1''/''' '1'selfÎ''\ '''a/(1'aT/'self' Ϗ'Tҏ' 'a/ 11)܏'' ' Δ1'' (Δ1' ''Ϗ'T0'1܏' '1' self܏' Ϗ'T ''p'a/(1'aT/'self' ސ'7' 'a/ 1'' ' Δ1'' (Δ1'''ސ'7'1'' Δ1' self'ސ'7 ' '''a//)̤1'aTP/'/'ԑ'ّ' 'a/self' '' 'a// ̤1̤1)''C'' ' 0''ć0''Ӓ''Cϒ' ,00// 00ϒ'''''''  //''m' ,0// 0Ө1'''''0'ը1' 'm0'C'm0''m0' 'm٧1Ӓ''m1''mӨ1'self' ' ' '''a//(ݫ1'aTP/'/'self' '' 'a// ݫ1ݫ1)''' ' 0''0''˔'1˔'1˔'1˔'1Ө1''eÔ' ,0//11Ô':''''0'ը1' 'e0''e0' 'e1˔'1'eӨ1˔'1self' ' ' '''a//(1'aTP/'/'selfӕ' ˕'IΕ' 'a// 1ҕ''' ' 0''0'''' ' 0''0'''"'" '"'''˕'Iܕ' ר1ҕ''"''"0' '"''"0' '"selfҕ'˕'I ' ''//'a/'aTI/) 'a/'1'/'/'a'1֖'%/'1'#/'a' ' '' '9K A single syntax tree node of type `T` followed by its trailing punctuation'N of type `P` if any.''L Refer to the [module documentation] for details about punctuated sequences.'O' [module documentation]: self' .TP'˨-'''''-'''' --.' --.' Punctuated' Punctuated-'''.''-'''' -.'0.'End'''.''' Ǚ' ʙ'™' .TPǙ'˨-ʙ'selfߚ' ͚'{H Extracts the syntax tree node from this punctuated pair, discarding theޙ'K following punctuation.'Ԛ' -.' '''End'N'''Ǜ' Ǜ''' Punctuated'Nț'Ǜ' Punctuated-͚'{'*'.ߚ'''Ǜ'selfߚ't'͚'{self' 'x8 Borrows the syntax tree node from this punctuated pair.Λ';' - .-'˜' ˜''End'N''ܜ' Punctuated'N'x˜'*޽-ܜ' .'˜'self'tܜ''xself' ԝ'@ Mutably borrows the syntax tree node from this punctuated pair.'C۝' - .ٿ-''N'N' '''End'N'ƞ'ƞ''N'Nמ'מ'؞''' Punctuated'Nԝ''*-' .' -'N'N-'N'-'self' t'ԝ'self' 'G Borrows the punctuation from this punctuated pair, unless this pair isޞ'J4 the final one and there is no trailing punctuation.'7' -1 -'' '''g' ' ' Punctuated-͠'͠'Ƞ'Some -Ƞ'Π'Π''g'''!1' 1''1 ''g1͠'self'p ''t'p''D Creates a punctuated pair out of a syntax tree node and an optional'G following punctuation.ԡ'' --.' '''' End' ''d' ''Some-֢'֢'٢'٢'Ţ' PunctuatedŢ' Punctuated-Ţ'ڢ'ڢ'ڢ''d'''!.''1''-''d֢''d-٢''d't'p'p''self' 'A Produces this punctuated pair as a tuple of syntax tree node and'D optional following punctuation.ݣ'#' -.1Ҥ' Ҥ' ''End' ' ' ' '  ' 1 ' ' ''q''' Punctuated'' Punctuated-''''''Some-''' ' 1'''''q''Ҥ'&' 1'.'Ҥ''-''q''q1''q-'''q''q1'self't'p't'' ' '''cfg''ѥ' feature'¥' clone-implsĥ' '. .TP'˨-'/'/Ǧ'selfަ' Ԧ'צ' -1.ݦ' ' 'Ԧ'' ' End'  ' ' ' '    '''' Punctuated'' Punctuated-' ''' '1'§'ŧ' ŧ'ŧ'ŧ' ǧ'  -ǧ'ͧ''& Punctuated'& Punctuated-'&Χ'Χ'Χ'Χ'' Χ'' 'End '' ' ' 'Ԧ''@ݧ'$ .'1ݦ''޽-'1''' '޽-''-ŧ' '1ŧ'޽-''' '޽-'selfݦ't'p't' Ԧ' ' ''--TP'˨-'ɨ'Ψ'self'index'ߨ'' -- -' '&'''' ''' 'µ-''''' '''' '''˪'̪'̪' ̪' -ת'ת'̪'̪' - ̪''l ǩ'  ǩ' -' ' ' '' ' -''''1'ǩ' ' '  Some-'  ' 'l ''' ' '' 'l 'l ' ' ' ܪ'ܪ'˪'˪'''' ''ߨ'' ޽-' ݲ-''''&'''''' 'ݲ-'''l޽-'l'l-ǩ' '-''l޽-''l -''l-' 'l'˪'޽-˪'˪'1̪'˪'-̪' ˪'ת'self'index't' ߨ' ' ''--TP'˨-'self'index''' -ɿ- 1' '''&'''' ' ' ' 'µ- '' ' ''  '' '' ''''''' ' -'''' - ''t 't ' ' -' '''' ' -''''1''ì'ì' Some-ɬ' ɬ''t '''' '''t 't  't ' ' ' ' '''''ʭ'ʭ'ʭ'' ''Э'Э'Э'ѭ''' -ҫ'-' '-''-'''&'''''' 'ݲ-'''-'t't-'t't-''-ì''t-''t -''t-' 't''-''-''Ђ2''-' ''self' index'tì''' TokenStream' 'ToTokensŮ'MŮ'TokenStreamExtϮ' Ϯ'iter%' FromIterator% ('Index%'IndexMut%'option%,'slice%'vec%#'vec%'Parse%' ParseStream% 'Token%Z' Punctuated% 'Pairs&'PairsMut&' IntoPairs& 'IntoIter&'Iter&' IterTrait& ' PrivateIter& 'empty_punctuated_iter& 'IterMut'' IterMutTrait' 'PrivateIterMut''empty_punctuated_iter_mut' 'Pair''printing''Result%''׭'cfg׭'óڭ'' featureۭ''printing' խ' ' ''-M-TP'˨-'Mܯ'M-'self'tokens''f' --'Ű'Ű'Ű'װ' װ'װ'װ' ܰ'-ܰ''Ű'̰'  -̰'''''8'8''f'ݲ-''Ű'Ű'-װ' ݲ-װ'self'tokens''f ' ''.M.TP'˨-'2'2'self'tokens''' -1'' '' ' End' ' '''' N '۲' '' Punctuated'' Punctuated-''''''' 2''''˳' ˳' ˳' ׳' ׳' ˳'ͳ' N-   ͳ'ݳ' ݳ' ޳' 'e'e''ղ''' ' ղ'''''#Dz'1'''޽-'1''޽-''˳'1˳'׳'޽-'ղ'޽-'ղ''self'tokens'a'b'a' ' Parse'' ParseStream' ' Parser''Result'' TokenStream' ' Punctuated' 'attr'' Attribute' '' Block'2'Stmt'2' ˄cfg˄΄ featureτׄparsingل Ʉdoc hidden '' token_stream' ';'doc'ٴ'' hidden'' T'' ''' ''''Ơ2' ' '' Ơ2'''' ''''Errɧ%ɧ% ʧ$ ' ' ' ''' ' '  ' ʧ$ʧ$ʧ$ʧ$ʧ$''ʧ$ ''2ʧ$''''' 3  ʧ$ʧ$ 3ʧ$''Ok''' ʧ$ ʧ$ʧ$ʧ$ʧ$ʧ$  ʧ$' ɧ%  ɧ% BB''' 'ʧ$'' Ơ2''d''dƠ2''d' ''Bɧ%Bɧ%Bʧ$B'B'B'Bʧ$Bʧ$Bʧ$Bʧ$B2ʧ$B2'2'Bʧ$B2'B2'' token_stream' parser't'err'arg0''' '''''' 'ʧ$'''' 'Q'doc''' hidden''Self,','input' '-' ݃-'  ''T'ʹ'input' 'W' ' ''''''''W' '''input''W''cfg''' any''' feature''full'' feature''derive''1input' '' '  ' ''--TP'ʹ'˨-'.'input' 'Z' -.' ''''.''''Z.' '''input''Z'}'cfg''' feature''full''%%input' 'W' %' Parse'' ParseStream' ' Parser''Result'' TokenStream' ' AttributeArgs' 'ŅcfgŅȅن allɅ̅؆ not҅Յ allօم target_archڅ wasm32 any target_os unknown  target_os wasi featureparsing  featureɆ proc-macroˆ Åކdocކ hidden܆ '' token_stream' 'H'doc''' hidden'' ,T''' ' ''  '2''''m' ,' ','  token_stream' 'm''V'doc'Ҷ'' hidden''Self,','input' '-' ݃-'  ''T'ʹ'input' 'W' ' ''''''''W' '''input''W''cfg''' any''' feature''full'' feature''derive''1input' '' ' Span((ToTokens((#6cfg all featureparsing  featureprinting 6I A trait that can provide the `Span` of the complete contents of a syntax'L tree node.''M *This module is available only if Syn is built with both the `"parsing"` and'P `"printing"` features.*''
'' # Example' 'H Suppose in a procedural macro we have a [`Type`] that we want to assert'KK implements the [`Sync`] trait. Maybe this is the type of one of the fields'NM of a struct for which we are deriving a trait implementation, and we need to'PC be able to pass a reference to one of those fields across threads.'F' [`Type`]: crate::Type' [`Sync`]: std::marker::Sync((G If the field type does *not* implement `Sync` as required, we want the(JD compiler to report an error pointing out exactly which type it was.(Gˁ(M The following macro code takes a variable `ty` of type `Type` and produces aρ(P; static assertion that `Sync` is implemented for that type.(>߂( ```( # extern crate proc_macro;( #( use proc_macro::TokenStream;(  use proc_macro2::Span;( use quote::quote_spanned;̃( use syn::Type;( use syn::spanned::Spanned;((+ # const IGNORE_TOKENS: &str = stringify! {(. #[proc_macro_derive(MyMacro)]τ(! # };(5 pub fn my_macro(input: TokenStream) -> TokenStream {(8 # let ty = get_a_type();(  /* ... */ԅ((2 let assert_sync = quote_spanned! {ty.span()=>(5, struct _AssertSync where #ty: Sync;(/ };І( ۆ( /* ... */߆( # input( }( #( # fn get_a_type() -> Type {( # unimplemented!()( # }ȇ( ```Ї(؇(K By inserting this `assert_sync` fragment into the output code generated by܇(NK our macro, the user's code will fail to compile if `ty` does not implement(N; `Sync`. The errors they would see look like the following.(>( ```text( O error[E0277]: the trait bound `*const i32: std::marker::Sync` is not satisfiedɉ(R --> src/main.rs:10:21( |( 10 | bad_field: *const i32,(#T | ^^^^^^^^^^ `*const i32` cannot be shared between threads safely(W ```(ŋ(K In this technique, using the `Type`'s span for the error message makes theɋ(N> error appear in the correct place underlining the right type.(Aڌ(
ތ(( # Limitations((G The underlying [`proc_macro::Span::join`] method is nightly-only. When(JL called from within a procedural macro in a nightly compiler, `Spanned` will̍(OL use `join` to produce the intended span. When not using a nightly compiler,(OH only the span of the *first token* of the syntax tree node is returned.(K(F In the common case of wanting to use the joined span as the span of a(IJ `syn::Error`, consider instead using [`syn::Error::new_spanned`] which is(MM able to span the error correctly under the complete syntax tree node withoutԐ(P needing the unstable `join`.( Ƒ(7 [`syn::Error::new_spanned`]: crate::Error::new_spannedʑ(:((I A trait that can provide the `Span` of the complete contents of a syntaxǒ(L tree node.((E This trait is automatically implemented for all types that implement(HC [`ToTokens`] from the `quote` crate, as well as for `Span` itself.(F( [`ToTokens`]: quote::ToTokens(!ݔ(/ See the [module documentation] for an example.(2( [module documentation]: self( (L *This trait is available only if Syn is built with both the `"parsing"` and(O `"printing"` features.*(Selfself( (D Returns a `Span` covering the complete contents of this syntax tree(G6 node, or [`Span::call_site()`] if this node is empty.(9˗(4 [`Span::call_site()`]: proc_macro2::Span::call_siteӗ(7( Ғ-( ((eT(self( ٘(4ܘ( -(((( ( (((٘(4(޽-(( ޽-(self(٘(4ֈ ҈cfgψ allΈ featureparsing  featureƈfullȈ2(s(( (( ch((" P5 cfg any featurefull featurederive1path../gen_helper.rs Clone( (Clone( (Eq( (Eq( ( PartialEq(  ( PartialEq(  ( Default((Default((fmt((Debug(3(Debug(3( Formatter( 2( Hash(4(Hash(4(Hasher(4(Copy((Copy((None((None((Some((Some((Err((Err((Ok((Ok((quote((Span(( TokenStream2( ( IntoSpans( ( TokenStream( (ToTokens(M(TokenStreamExt( ( doc hiddenpath export.rs @@@@@@@@@@@( ((allow((( non_camel_case_types((( ((allow((( non_camel_case_types((((>( (( ((("Ъ,( ( (" Ъ,("("("Ъ,("("(" ) )3)cfg))) feature))parsing) )))Self)3)Span))  )) )8SelfSS)self) )) ă3ă31))))))))bself) )7) 32))))))))hself) )=) 33))))))))nself) )C) 1)))))))1))))))))e333self) )5) 332)))))))2))))))))e333self) )5) 333)))))))3))))))))eself) )5) ) )I)cfg))) feature))parsing) )Self,),)spans) )&)  Ѐ)1))))))))e)cfg))) feature))parsing) )33spans) )@) 33)2))))))))o)cfg))) feature))parsing) )33spans) )J) 33)3))))))))y)cfg)ܽ)) feature))parsing) )spans) )T) 3)fmt))Debug)3)Debug)3)thread))ThreadId)3) @ )) )DI ThreadBound is a Sync-maker and Send-maker that allows accessing a value)LE of type T only from the original thread on which the ThreadBound was)H constructed.)T))))) 3 )))33T) ))/33T)) ))3T)value) )) 3))))))) )))) )))))Y)Y3))))))))3)))Y))Y3))Y 3))Y3)value))self) ))  3-) )(&))))))3)))))3)))))3)()(  33)()))))))w))w ) )  ) )  )Some޽-))) )w ))) ׽-)  3))w)(&)w 3))w3))w3))w3))w3))޽-) )޽-) self)) ))333T)3)self) formatter) )) 3)) ))) )3)))  ) )  ) )  )  ) ) unknown) )) 3  )) ))Some޽-))) ) )) 3)))))) ) ) )))))+ ) ͨ3) 2) )׽-) )ͨ3)) ޽-))޽-))3) )3) )) )) self) formatter) value)) Cursor))error))Error))Sealed))  IntoSpans) )Token)Z) Delimiter) ) Span))RefCell)) cfg featureparsing ) )sH Support for checking the next token in a stream to decide how to parse.)K)B An important advantage over [`ParseStream::peek`] is that here we)EH automatically construct an appropriate error message based on the token)KK alternatives that get peeked. If you are producing your own error message,)N. go ahead and use `ParseStream::peek` instead.)1): Use [`ParseStream::lookahead1`] to construct this object.)=)7 [`ParseStream::peek`]: crate::parse::ParseBuffer::peek):C [`ParseStream::lookahead1`]: crate::parse::ParseBuffer::lookahead1)F) # Example) ) ```)O use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, Token, TypeParam};)R& use syn::parse::{Parse, ParseStream};)))L // A generic parameter, a single one of the comma-separated elements inside)O // angle brackets in:) //)< // fn f() { ... })? //)D // On invalid input, lookahead gives us a reasonable error message.)G //)= // error: expected one of: identifier, lifetime, `const`)@ // |)! // 5 | fn f() {})$ // | ^) enum GenericParam {) Type(TypeParam),) Lifetime(LifetimeDef),) Const(ConstParam),) })) impl Parse for GenericParam {)!3 fn parse(input: ParseStream) -> Result {)6, let lookahead = input.lookahead1();)/# if lookahead.peek(Ident) {)&2 input.parse().map(GenericParam::Type))5- } else if lookahead.peek(Lifetime) {)06 input.parse().map(GenericParam::Lifetime))92 } else if lookahead.peek(Token![const]) {)53 input.parse().map(GenericParam::Const))6 } else {)# Err(lookahead.error()))& })  })  }) ```)'a'a) )))'a)') #)scope)cursor))5 )) lookahead) peek)display)&)t    ))'a'aself)token))D Looks at the next token in the parse stream to determine whether it)G% matches the requested type of token.)() # Syntax) )H Note that this method does not use turbofish syntax. Pass the peek type)K inside of parentheses.)) - `input.peek(Token![struct])`)" - `input.peek(Token![==])`)8 - `input.peek(Ident)` *(does not accept keywords)*); - `input.peek(Ident::peek_any)`)# - `input.peek(Lifetime)`) - `input.peek(token::Brace)`) ) 'a/ 3/T)/)/)))))) [/ ))) \3 )2) 3)2))))))O) )/))23))23))23)self)token))self) )? Triggers an error at the current position of the parse stream.)B)E The error message will identify all of the expected token types that)H2 have been peeked against this lookahead instance.)5) 'a3**[7 Types that can be parsed by looking at just one token.ƅ*:*G Use [`ParseStream::peek`] to peek one of these types in a parse stream*J& without consuming it from the stream.І*)*I This trait is sealed and cannot be implemented for types outside of Syn.*Lˇ*7 [`ParseStream::peek`]: crate::parse::ParseBuffer::peekχ*:Self*ш*Z3݈*3*ш**doc*È*ʈ* hiddenĈ**ֈ* * **UFT/**3**/*Z/***/lj* * ܉*׉*cS܉*self* *6* **6**self**6Ê* cursorЊ* delimiter* *A ؊* * ҋ**BFT3ϋ*3*3**/ҋ*3Ջ*Cursor** TokenBuffer* * error**  lookahead* * proc_macro* * Punctuated־* þ*Token*Z* proc_macro2* * Delimiter* * Group**Literal**Punct**Span** TokenStream* *  TokenTreeȿ* ȿ* Cell*ؿ*fmt**Debug*3*Debug*3*Display*3* PhantomData* * PhantomData* *mem* *Deref**Rc** FromStr*B*Error**Result** Lookahead1* * Peek**cfg featureparsing F Parsing interface for parsing a token stream into a syntax tree node.*I*K Parsing in Syn is built on parser functions that take in a [`ParseStream`]*NK and produce a [`Result`] where `T` is some syntax tree node. Underlying*NC these parser functions is a lower level mechanism built around theٍ*FG [`Cursor`] type. `Cursor` is a cheaply copyable cursor over a range of*J tokens in a token stream.** [`Result`]: Result*" [`Cursor`]: crate::buffer::Cursor*%͏* # Exampleя* ߏ*E Here is a snippet of parsing code to get a feel for the style of the*HI library. We define data structures for a subset of Rust syntax including*LM enums (not shown) and structs, then provide implementations of the [`Parse`]*PF trait to parse these syntax tree data structures from a token stream.ʑ*I*M Once `Parse` impls have been defined, they can be called conveniently from a*PJ procedural macro through [`parse_macro_input!`] as shown at the bottom of*MG the snippet. If the caller provides syntactically invalid input to the*JE procedural macro, they will receive a helpful compiler error message*HB pointing out the exact token that triggered the failure to parse.˔*E*2 [`parse_macro_input!`]: crate::parse_macro_input!*5˕* ```ϕ* # extern crate proc_macro;ו* #* use proc_macro::TokenStream;* J use syn::{braced, parse_macro_input, token, Field, Ident, Result, Token};*M& use syn::parse::{Parse, ParseStream};*)! use syn::punctuated::Punctuated;*$* enum Item {* Struct(ItemStruct),Η* Enum(ItemEnum),* }** struct ItemStruct {*" struct_token: Token![struct],*% ident: Ident,ʘ* brace_token: token::Brace,*"* fields: Punctuated,*- }* #* # enum ItemEnum {}*ԙ* impl Parse for Item {ؙ*3 fn parse(input: ParseStream) -> Result {*6, let lookahead = input.lookahead1();*/, if lookahead.peek(Token![struct]) {ٚ*/, input.parse().map(Item::Struct)*/1 } else if lookahead.peek(Token![enum]) {*4* input.parse().map(Item::Enum)*- } else {*# Err(lookahead.error())*& }؜*  }*  }** impl Parse for ItemStruct {*3 fn parse(input: ParseStream) -> Result {*6 let content;ѝ* Ok(ItemStruct {** struct_token: input.parse()?,*-# ident: input.parse()?,*&4 brace_token: braced!(content in input),۞*7C fields: content.parse_terminated(Field::parse_named)?,*F })ڟ* }*  }* #* # impl Parse for ItemEnum {*5 # fn parse(input: ParseStream) -> Result {*8 # unimplemented!()ؠ* # }*  # }**$ # const IGNORE: &str = stringify! {*' #[proc_macro]* # };ɡ*6 pub fn my_macro(tokens: TokenStream) -> TokenStream {ҡ*94 let input = parse_macro_input!(tokens as Item);*7Ģ* /* ... */Ȣ* # "".parse().unwrap()ڢ* }* ```** # The `syn::parse*` functions*!*L The [`syn::parse`], [`syn::parse2`], and [`syn::parse_str`] functions serve*OI as an entry point for parsing syntax tree nodes that can be parsed in an*LJ obvious default way. These functions can return any syntax tree node thatˤ*MB implements the [`Parse`] trait, which includes most types in Syn.*Eߥ* [`syn::parse`]: crate::parse()*"! [`syn::parse2`]: crate::parse2()*$' [`syn::parse_str`]: crate::parse_str()**֦* ```ڦ* use syn::Type;**' # fn run_parser() -> syn::Result<()> {**K let t: Type = syn::parse_str("std::collections::HashMap")?;*N # Ok(())* # }* #* # run_parser().unwrap();* ```**4 The [`parse_quote!`] macro also uses this approach.*7*& [`parse_quote!`]: crate::parse_quote!*)* # The `Parser` trait**K Some types can be parsed in several ways depending on context. For example©*NE an [`Attribute`] can be either "outer" like `#[...]` or "inner" like*HM `#![...]` and parsing the wrong one would be a bug. Similarly [`Punctuated`]ڪ*PH may or may not allow trailing punctuation, and parsing it the wrong way*K9 would either reject valid input or accept invalid input.*<* [`Attribute`]: crate::Attribute*#" [`Punctuated`]: crate::punctuatedܬ*%*M The `Parse` trait is not implemented in these cases because there is no good*P" behavior to consider the default.׭*%* ```compile_fail* # extern crate proc_macro;* #*# # use syn::punctuated::Punctuated;*&) # use syn::{PathSegment, Result, Token};*, #*8 # fn f(tokens: proc_macro::TokenStream) -> Result<()> {*; #Я*I // Can't parse `Punctuated` without knowing whether trailing punctuation֯*L& // should be allowed in this context.*)E let path: Punctuated = syn::parse(tokens)?;Ͱ*H #* # Ok(())* # }* ```**L In these cases the types provide a choice of parser functions rather than a*OI single `Parse` implementation, and those parser functions can be invoked*L through the [`Parser`] trait.޲*!** ```* # extern crate proc_macro;* #* use proc_macro::TokenStream;*  use syn::parse::Parser;ֳ*! use syn::punctuated::Punctuated;*$8 use syn::{Attribute, Expr, PathSegment, Result, Token};*;Ӵ*@ fn call_some_parser_methods(input: TokenStream) -> Result<()> {״*CP // Parse a nonempty sequence of path segments separated by `::` punctuation*S% // with no trailing punctuation.*( let tokens = input.clone();*#R let parser = Punctuated::::parse_separated_nonempty;*U' let _path = parser.parse(tokens)?;***P // Parse a possibly empty sequence of expressions terminated by commas with*S) // an optional trailing punctuation.*, let tokens = input.clone();¸*#B let parser = Punctuated::::parse_terminated;*E' let _args = parser.parse(tokens)?;**׹*E // Parse zero or more outer attributes but not inner attributes.۹*H let tokens = input.clone();*#) let parser = Attribute::parse_outer;Ⱥ*,( let _attrs = parser.parse(tokens)?;*+* Ok(())* }* ```*»* ---ƻ*λ*N *This module is available only if Syn is built with the `"parsing"` feature.*һ*QAAȼ* discouragedȼ* ,Parse*, ParseStream* , ParseBuffer* , StepCursor* ,advance_step_cursor* ,new_parse_buffer* , Unexpected* , cell_clone* ,inner_unexpected* ,get_unexpected* ,!span_of_unexpected_ignoring_nones*! ,Parser,,tokens_to_parse_buffer, , parse_scoped, , parse_stream, ,Nothing,,Nothing,,Cursor*, TokenBuffer* ,error*, lookahead* , proc_macro* , Punctuated־* ,Token*Z, proc_macro2* , Delimiter* ,Group*,Literal*,Punct*,Span*, TokenStream* , TokenTreeȿ* ,Cell*,fmt*,Debug*3,Debug*3,Display*3, PhantomData* , PhantomData* ,mem* ,Deref*,Rc*,FromStr*B,Error*,Result*, Lookahead1* ,Peek*,0 **path**discouraged.rs**8 Extensions to the parsing API with niche applicability.,;, ,0D Extensions to the `ParseStream` API to support speculative parsing.,GSelfself-fork-ݒ-"D Advance this parse stream to the position of a forked parse stream.,G,H This is the opposite operation to [`ParseStream::fork`]. You can fork a,KG parse stream, perform some speculative parsing, then join the original,JE stream to the fork to "commit" the parsing from the fork to the main,H stream., ,E If you can avoid doing this, you should, as it limits the ability to,HE generate useful errors. That said, it is often the only way to parse,HI syntax of the form `A* B*` for arbitrary syntax `A` and `B`. The problem,LE is that when the fork fails to parse an `A`, it's impossible to tell,HI whether that was because of a syntax error and the user meant to provide,LE an `A`, or that the `A`s are finished and it's time to start parsing,H `B`s. Use with care.,,C Also note that if `A` is a subset of `B`, `A* B*` can be parsed by,F> parsing `B*` and removing the leading members of `A` from the,AH repetition, bypassing the need to involve the downsides associated with,K speculative parsing.,,) [`ParseStream::fork`]: ParseBuffer::fork,,, # Example, ,I There has been chatter about the possibility of making the colons in the,LF turbofish syntax like `path::to::` no longer required by accepting,IF `path::to` in expression position. Specifically, according to [RFC,IH 2544], [`PathSegment`] parsing should always try to consume a following,KE `<` token as the start of generic arguments, and reset to the `<` if,H? that fails (e.g. the token is acting as a less-than operator).,B,E This is the exact kind of parsing behavior which requires the "fork,,HC try, commit" behavior that [`ParseStream::fork`] discourages. With,FD `advance_to`, we can avoid having to parse the speculatively parsed,G content a second time.,,H This change in behavior can be implemented in syn by replacing just the,K* `Parse` implementation for `PathSegment`:,-, ```, # use syn::ext::IdentExt;,* use syn::parse::discouraged::Speculative;,-( # use syn::parse::{Parse, ParseStream};,+2 # use syn::{Ident, PathArguments, Result, Token};,5, pub struct PathSegment {, pub ident: Ident,," pub arguments: PathArguments,,% }, #," # impl From for PathSegment,% # where,  # T: Into,, # {," # fn from(ident: T) -> Self {,% # PathSegment {,# # ident: ident.into(),,&. # arguments: PathArguments::None,,1 # }, # },  # },, impl Parse for PathSegment {, 3 fn parse(input: ParseStream) -> Result {,6% if input.peek(Token![super]),(( || input.peek(Token![self]),+( || input.peek(Token![Self]),+) || input.peek(Token![crate]),, {, 7 let ident = input.call(Ident::parse_any)?;,:1 return Ok(PathSegment::from(ident));,4 }, ,$ let ident = input.parse()?;,'> if input.peek(Token![::]) && input.peek3(Token![<]) {,A$ return Ok(PathSegment {,' ident,,J arguments: PathArguments::AngleBracketed(input.parse()?),,M });, }, > if input.peek(Token![<]) && !input.peek(Token![<=]) {,A% let fork = input.fork();,(2 if let Ok(arguments) = fork.parse() {,5) input.advance_to(&fork);,,( return Ok(PathSegment {,+ ident,,I arguments: PathArguments::AngleBracketed(arguments),-L });؀- }- }- % Ok(PathSegment::from(ident))-( }Ɂ-  }ׁ--4 # syn::parse_str::("a").unwrap();-7 ```-- # Drawbacks-͂-C The main drawback of this style of speculative parsing is in errorՂ-FF presentation. Even if the lookahead is the "correct" parse, the error-IG that is shown is that of the "fallback" parse. To use the same example-JC as the turbofish above, take the following unfinished "turbofish":-F- ```text- ( let _ = f<&'a fn(), for<'a> serde::>();-+ ```Ѕ-܅-I If this is parsed as generic arguments, we can provide the error message-L- ```text-  error: expected identifier͆- --> src.rs:L:C- |-, L | let _ = f<&'a fn(), for<'a> serde::>();-/) | ^ȇ-, ```--D but if parsed using the above speculative parsing, it falls back to-GH assuming that the `<` is a less-than when it fails to parse the genericو-KG arguments, and tries to interpret the `&'a` as the start of a labelled-J/ loop, resulting in the much less helpful error-2- ```text-  error: expected `:`NJ- --> src.rs:L:C- |-, L | let _ = f<&'a fn(), for<'a> serde::>();-/ | ^^- ```؋--G This can be mitigated with various heuristics (two examples: show both-JE forks' parse errors, or show the one that consumed more tokens), but-HD when you can control the grammar, sticking to something that can be-GB parsed LL(3) and without the LL(*) speculative parsing this makesԍ-EA possible, displaying reasonable errors becomes much more simple.-D-8 [RFC 2544]: https://github.com/rust-lang/rfcs/pull/2544-;$ [`PathSegment`]: crate::PathSegment-'ۏ- # Performance--G This method performs a cheap fixed amount of work that does not depend-J1 on how far apart the two streams are positioned.А-4- # Panics- -A The forked stream in the argument of `advance_to` must have been-DF obtained by forking `self`. Attempting to advance to any other stream-I will cause a panic.-- Ғ- -- 'a4'aself-forkǓ-- - 'a 4 4-**LK Parsing interface implemented by all types that can be parsed in a default*N way from a token stream.**M Refer to the [module documentation] for details about implementing and using*P the `Parse` trait.** [module documentation]: self* Self,*,*input* *-* ݃-* * */ Input to a Syn parser function.*#*M See the methods of this type under the documentation of [`ParseBuffer`]. For*PD an overview of parsing in Syn, refer to the [module documentation].*G* [module documentation]: self* 'a'a'a* *0 Cursor position within a buffered token stream.*3*M This type is more commonly used through the type alias [`ParseStream`] which*P is an alias for `&ParseBuffer`.*#*K `ParseStream` is the input type for all parser functions in Syn. They have*N. the signature `fn(ParseStream) -> Result`.*1* ## Calling a parser function* *I There is no public way to construct a `ParseBuffer`. Instead, if you are*LJ looking to invoke a parser function that requires `ParseStream` as input,*MD you will need to go through one of the public parsing entry points.*G*K - The [`parse_macro_input!`] macro if parsing input of a procedural macro;*N6 - One of [the `syn::parse*` functions][syn-parse]; or*9$ - A method of the [`Parser`] trait.*'*) [syn-parse]: self#the-synparse-functions*,'a'a* *****'a*.* *'a4'aself* ** 'a 4**'a34'aself*f**s* 'a 4**'a34'aself*f**q* 'a 4** *2 Cursor state associated with speculative parsing.*5*I This type is the input of the closure provided to [`ParseStream::step`].*L*) [`ParseStream::step`]: ParseBuffer::step*,* # Example* * ```* use proc_macro2::TokenTree;* use syn::Result;* use syn::parse::ParseStream;* *I // This function advances the stream past the next occurrence of `@`. If*LI // no `@` is present in the stream, the stream position is unchanged and*L // an error is returned.*9 fn skip_past_next_at(input: ParseStream) -> Result<()> {*< input.step(|cursor| {* let mut rest = *cursor;*#9 while let Some((tt, next)) = rest.token_tree() {*< match &tt {*G TokenTree::Punct(punct) if punct.as_char() == '@' => {*J+ return Ok(((), next));*. }*" _ => rest = next,*% }* }* ? Err(cursor.error("no `@` was found after this point"))*B })*  }* #*, # fn remainder_after_skipping_past_next_at(*/ # input: ParseStream,** # ) -> Result {*-! # skip_past_next_at(input)?;*$ # input.parse()* # }* #* # use syn::parse::Parser;*8 # let remainder = remainder_after_skipping_past_next_at*; # .parse_str("a @ b c")* # .unwrap();*, # assert_eq!(remainder.to_string(), "b c");*/ ```*'c'a'c'a* ***'c*1* 5'a*'c'a5'c'a**'cself* *=* 'c'a 5 5**+'c'a5'c'a*_'c'a 5'c'aself* *-* 'c'a 55**'c'a'c'aself*message**s? Triggers an error at the current position of the parse stream.*B*G The `ParseStream::step` invocation will return this same error without*J advancing the stream state.** 'c'a050T0*30** * * * ***/* 0*/*****s**0**/* */* */0*self*message**s*proof*to**b'c'a'c'a**scope*cursor* unexpected* '*{** *Yǃ******ǃ*ǃ* * ǃ* ǃ* Some* * * ǃ* * * ** ǃ* ǃ*Chain***ǃ****Yǃǃ*5* ǃ*ǃ ǃself* **  ǃǃ* ** cell* *6  T**/******** * * * ****** *1*********** * **************Q*5 * 5**5*޽-**5***cell*prev*ret***buffer* *Q  **buffer* *J5**!cursor* *H *+է'a'aself܁+ ā+IE Parses a syntax tree node of type `T`, advancing the position of ourـ+H parse stream past it.+ˁ+ 'a/ 5/Tہ+/с+/ԁ+++++ /+++ā+I5+ ہ+++selfہ+ā+Iself+function++iH Calls the given parser function to parse a syntax tree node of type `T`+K from this stream.++ # Example+ +I The parser below invokes [`Attribute::parse_outer`] to parse a vector of+L zero or more outer attributes.+"+: [`Attribute::parse_outer`]: crate::Attribute::parse_outer+=+ ```+, use syn::{Attribute, Ident, Result, Token};+/& use syn::parse::{Parse, ParseStream};+)ׅ+) // Parses a unit struct with attributes.߅+, //+ // #[path = "s.tmpl"]+ // struct S;+ struct UnitStruct {ֆ+ attrs: Vec,+" struct_token: Token![struct],+% name: Ident,+ semi_token: Token![;],؇+ }++ impl Parse for UnitStruct {+3 fn parse(input: ParseStream) -> Result {+6 Ok(UnitStruct {+8 attrs: input.call(Attribute::parse_outer)?,+;* struct_token: input.parse()?,̉+-" name: input.parse()?,+%( semi_token: input.parse()?,++ })؊+ }+  }+ ```++ 'a/5 55T+/+++++++++++i5Ћ+ + 5++5+++self+function++iself+token++rD Looks at the next token in the parse stream to determine whether it+G% matches the requested type of token.ʌ+(+3 Does not advance the position of the parse stream.+6+ # Syntax+ Ӎ+H Note that this method does not use turbofish syntax. Pass the peek typeۍ+K inside of parentheses.+ʎ+ - `input.peek(Token![struct])`Ҏ+" - `input.peek(Token![==])`+8 - `input.peek(Ident)` *(does not accept keywords)*+; - `input.peek(Ident::peek_any)`܏+# - `input.peek(Lifetime)`+ - `input.peek(token::Brace)`+ ʐ+ # ExampleҐ+ +H In this example we finish parsing the list of supertraits when the next+K@ token in the input is either `where` or an opening curly brace.+C+ ```+J use syn::{braced, token, Generics, Ident, Result, Token, TypeParamBound};+M& use syn::parse::{Parse, ParseStream};+)! use syn::punctuated::Punctuated;+$+= // Parses a trait definition containing no associated items.ɓ+@ //+? // trait Marker<'de, T>: A + B<'de> where Box: Clone {}+B struct MarkerTrait {+ trait_token: Token![trait],+# ident: Ident,+ generics: Generics,+$ colon_token: Option,ߕ+'8 supertraits: Punctuated,+; brace_token: token::Brace,˖+" }++ impl Parse for MarkerTrait {+ 3 fn parse(input: ParseStream) -> Result {+69 let trait_token: Token![trait] = input.parse()?;+<+ let ident: Ident = input.parse()?;+.5 let mut generics: Generics = input.parse()?;ؘ+8= let colon_token: Option = input.parse()?;+@ڙ+1 let mut supertraits = Punctuated::new();+4# if colon_token.is_some() {+& loop {ƚ+8 supertraits.push_value(input.parse()?);+;K if input.peek(Token![where]) || input.peek(token::Brace) {+N break;+ }+8 supertraits.push_punct(input.parse()?);+; }+ }+ +0 generics.where_clause = input.parse()?;+3 let content;ٝ+; let empty_brace_token = braced!(content in input);+>+ Ok(MarkerTrait {+ trait_token,+ ident,+ generics,+ colon_token,+ supertraits,ݟ+, brace_token: empty_brace_token,+/ })+ }Š+  }Ӡ+ ```ݠ++ 'a/5/T+/+3+ǡ+ ǡ+ǡ+ǡ+ ̡+.̡+ӡ+++3+ԡ+ۡ++r+:++/++ǡ+ +ǡ+self+token++rself+token++4 Looks at the second-next token in the parse stream.+7+C This is commonly useful as a way to implement contextual keywords.+F+ # Example+ +F This example needs to use `peek2` because the symbol `union` is not a+II keyword in Rust. We can't use just `peek` and decide to parse a union if+LH the very next token is `union`, because someone is free to write a `mod+KH union` and a macro invocation that looks like `union::some_macro! { ...+K4 }`. In other words `union` is a contextual keyword.ѥ+7+ ```+3 use syn::{Ident, ItemUnion, Macro, Result, Token};+6& use syn::parse::{Parse, ParseStream};ܦ+)+0 // Parses either a union or a macro invocation.+3 enum UnionOrMacro {ʧ+5 // union MaybeUninit { uninit: (), value: T }+8 Union(ItemUnion),+ // lazy_static! { ... }+ Macro(Macro),+ }++ impl Parse for UnionOrMacro {+!3 fn parse(input: ParseStream) -> Result {+6= if input.peek(Token![union]) && input.peek2(Ident) {+@3 input.parse().map(UnionOrMacro::Union)+6 } else {+3 input.parse().map(UnionOrMacro::Macro)+6 }ƫ+  }ث+  }+ ```++ 'a/5/T+/+3++++++33++ ++++++8++/++++3+self+token++self+token++3 Looks at the third-next token in the parse stream.ï+6+ 'a/5/T+/+3++++++33++ ++++++8++/++++3+self+token++self+parser++H Parses zero or more occurrences of `T` separated by punctuation of type+K) `P`, with optional trailing punctuation.+,+I Parsing continues until the end of this parse stream. The entire content+L2 of this parse stream must consist of `T` and `P`.+5˶+ # ExampleӶ+ + ```+ # use quote::quote;+ #+= use syn::{parenthesized, token, Ident, Result, Token, Type};+@& use syn::parse::{Parse, ParseStream};+)! use syn::punctuated::Punctuated;+$+0 // Parse a simplified tuple struct syntax like:ø+3 //+ // struct S(A, B);+ struct TupleStruct {+" struct_token: Token![struct],¹+% ident: Ident,+ paren_token: token::Paren,+") fields: Punctuated,+, semi_token: Token![;],޺+ }++ impl Parse for TupleStruct {+ 3 fn parse(input: ParseStream) -> Result {+6 let content;+ Ok(TupleStruct {+* struct_token: input.parse()?,+-# ident: input.parse()?,+&; paren_token: parenthesized!(content in input),+>< fields: content.parse_terminated(Type::parse)?,ѽ+?( semi_token: input.parse()?,++ })ž+ }ؾ+  }+ #+ # let input = quote! {+ # struct S(A, B);+ # };+. # syn::parse2::(input).unwrap();Ŀ+1 ```++ 'a//5ì5/TP+/+/+/++++++/+! //+/++++5++5++/++/5+self+parser++self+ +B; Returns whether there are tokens remaining in this stream.+>+? This method returns true at the end of the content of a set of+BD delimiters, as well as at the very end of the complete macro input.+G+ # Example+ + ```+6 use syn::{braced, token, Ident, Item, Result, Token};+9& use syn::parse::{Parse, ParseStream};+)+@ // Parses a Rust `mod m { ... }` containing zero or more items.+C struct Mod {+ mod_token: Token![mod],+ name: Ident,+ brace_token: token::Brace,+" items: Vec,+ }++ impl Parse for Mod {+3 fn parse(input: ParseStream) -> Result {+6 let content;+ Ok(Mod {+' mod_token: input.parse()?,+*" name: input.parse()?,+%4 brace_token: braced!(content in input),+7 items: {+, let mut items = Vec::new();+/, while !content.is_empty() {+/2 items.push(content.parse()?);+5 }+ items+ },+ })+ }+  }+ ```++ 'a5+self+ +dE Constructs a helper for peeking at the next token in this stream and+HH building an error message if it is not one of a set of expected tokens.+K+ # Example+ + ```+O use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, Token, TypeParam};+R& use syn::parse::{Parse, ParseStream};+)+L // A generic parameter, a single one of the comma-separated elements inside+O // angle brackets in:+ //+< // fn f() { ... }+? //+D // On invalid input, lookahead gives us a reasonable error message.+G //+= // error: expected one of: identifier, lifetime, `const`+@ // |+! // 5 | fn f() {}+$ // | ^+ enum GenericParam {+ Type(TypeParam),+ Lifetime(LifetimeDef),+ Const(ConstParam),+ }++ impl Parse for GenericParam {+!3 fn parse(input: ParseStream) -> Result {+6, let lookahead = input.lookahead1();+/# if lookahead.peek(Ident) {+&2 input.parse().map(GenericParam::Type)+5- } else if lookahead.peek(Lifetime) {+06 input.parse().map(GenericParam::Lifetime)+92 } else if lookahead.peek(Token![const]) {+53 input.parse().map(GenericParam::Const)+6 } else {+# Err(lookahead.error())+& }+  }+  }+ ```++ 'a5'a+self+ +G Forks a parse stream so that parsing tokens out of either the original+J8 or the fork does not advance the position of the other.+;+ # Performance++D Forking a parse stream is a cheap fixed amount of work and does not+GH involve copying token buffers. Where you might hit performance problems+KE is if your macro ends up parsing a large amount of content more than+H once.+ + ```+ # use syn::{Expr, Result};+ # use syn::parse::ParseStream;+" #+/ # fn bad(input: ParseStream) -> Result {+2 // Do not do this.+* if input.fork().parse::().is_ok() {+-" return input.parse::();+% }+ # unimplemented!()+ # }+ ```++G As a rule, avoid parsing an unbounded amount of tokens out of a forked+JH parse stream. Only use a fork when the amount of work performed against+K the fork is small and bounded.+"+> When complex speculative parsing against the forked stream is+AD unavoidable, use [`parse::discouraged::Speculative`] to advance the+GA original stream once the fork's parse is determined to have been+D successful.++I For a lower level way to perform speculative parsing at the token level,+L. consider using [`ParseStream::step`] instead.+1+> [`parse::discouraged::Speculative`]: discouraged::Speculative+A) [`ParseStream::step`]: ParseBuffer::step+,+ # Example+ +E The parse implementation shown here parses possibly restricted `pub`+H visibilities.++ - `pub`+  - `pub(crate)`+ - `pub(self)`+ - `pub(super)`+ - `pub(in some::path)`++G To handle the case of visibilities inside of tuple structs, the parser+JF needs to distinguish parentheses that specify visibility restrictions+I1 from parentheses that form part of a tuple type.+4+ ```+ # struct A;+ # struct B;+ # struct C;+ #+$ struct S(pub(crate) A, pub (B, C));+' ```++@ In this example input the first tuple struct element of `S` has+CH `pub(crate)` visibility while the second tuple struct element has `pub`+KH visibility; the parentheses around `(B, C)` are part of the type rather+K' than part of a visibility restriction.+*+I The parser uses a forked parse stream to check the first token inside of+LG parentheses after the `pub` keyword. This is a small bounded amount of+J0 work performed against the forked parse stream.+3+ ```+= use syn::{parenthesized, token, Ident, Path, Result, Token};+@ use syn::ext::IdentExt;+& use syn::parse::{Parse, ParseStream};+)+ struct PubVisibility {+ pub_token: Token![pub],+$ restricted: Option,+' }++ struct Restricted {+ paren_token: token::Paren,+"" in_token: Option,+% path: Path,+ }++ impl Parse for PubVisibility {+"3 fn parse(input: ParseStream) -> Result {+65 let pub_token: Token![pub] = input.parse()?;+8+& if input.peek(token::Paren) {+)& let ahead = input.fork();+) let mut content;+ . parenthesized!(content in ahead);+1++ if content.peek(Token![crate])+.. || content.peek(Token![self])+1/ || content.peek(Token![super])+2 {+* return Ok(PubVisibility {+- pub_token,+"2 restricted: Some(Restricted {+5G paren_token: parenthesized!(content in input),+J( in_token: None,++K path: Path::from(content.call(Ident::parse_any)?),+N }),+ });+1 } else if content.peek(Token![in]) {+4* return Ok(PubVisibility {+- pub_token,+"2 restricted: Some(Restricted {+5G paren_token: parenthesized!(content in input),+J: in_token: Some(content.parse()?),+=D path: content.call(Path::parse_mod_style)?,+G }),+ });+ }+ }+ + Ok(PubVisibility {+ pub_token,+ restricted: None,+! })+ }+  }+ ```++ 'a55+self,message,,v? Triggers an error at the current position of the parse stream.ـ,B, # Example, , ```, use syn::{Expr, Result, Token};΁,#& use syn::parse::{Parse, ParseStream};,),2 // Some kind of loop: `while` or `for` or `loop`.,5 struct Loop {, expr: Expr,, },, impl Parse for Loop {,3 fn parse(input: ParseStream) -> Result {ă,6% if input.peek(Token![while]),(' || input.peek(Token![for]),*( || input.peek(Token![loop])ۄ,+ {,  Ok(Loop {,& expr: input.parse()?,,) }), } else {,; Err(input.error("expected some kind of loop")),> }܆,  },  }, ```,, 'a/5/T,/,3/,߇, ߇, ߇, ߇, ߇, ߇, , ,,, ,.,,v,,,,,ч,1ч, /ч,1,,,,,,,,,v,,/,ч,1߇, ч,1, ч,1,ч,1/,,self,message,,vselfؕ,functionޕ,ŕ, B Speculatively parses tokens from this parse stream, advancing the,E2 position of this stream only if parsing succeeds.؈,5,H This is a powerful low-level API used for defining the `Parse` impls of,KF the basic built-in token types. It is not something that will be used,I$ widely outside of the Syn codebase.,', # Example, , ```, use proc_macro2::TokenTree;, use syn::Result;, use syn::parse::ParseStream;ϋ, ,I // This function advances the stream past the next occurrence of `@`. If,LI // no `@` is present in the stream, the stream position is unchanged and͌,L // an error is returned.,9 fn skip_past_next_at(input: ParseStream) -> Result<()> {,< input.step(|cursor| {, let mut rest = *cursor;,#9 while let Some((tt, next)) = rest.token_tree() {ʎ,< match &tt {,G TokenTree::Punct(punct) if punct.as_char() == '@' => {,J+ return Ok(((), next));,. }," _ => rest = next,ǐ,% }, }, ? Err(cursor.error("no `@` was found after this point")),B }),  }, #,, # fn remainder_after_skipping_past_next_at(,/ # input: ParseStream,,* # ) -> Result {ْ,-! # skip_past_next_at(input)?;,$ # input.parse(), # }Г, #ܓ, # use syn::parse::Parser;,8 # let remainder = remainder_after_skipping_past_next_at,; # .parse_str("a @ b c")Ȕ, # .unwrap();,, # assert_eq!(remainder.to_string(), "b c");,/ ```,̕, 'aFR566FRו,6ѕ,6ԕ,6'c'a,=666'c,ԟ,ԟ,ԟ,ԟ,'ԟ,ԟ,ԟ,ԟ,ԟ,ԟ, ݟ,{ ,  , , ,  , ,,   ,, ݟ,{  ݟ,{  ݟ,{  ݟ,{6נ, נ, ԟ,  ԟ,ԟ,ԟ,ԟ, 6 ԟ,ŕ, ؠ, ؠ, ؠ,ؠ,ؠ,ԟ,'ԟ,' 6ԟ,'٠,'٠,' ٠,'ڠ,ԟ,ԟ,Ok6ԟ,٠,Ɵ,Ɵ,6̟,̟,ڠ,ڠ,,, , 6,,,,   , ԟ,'٠,'٠,'Err٠,'٠,'٠,'٠,'٠,' ٠,',٠,'٠,'ԟ,' 6 ٠,'٠,'٠,'ڠ,ڠ,, , ,,,,,,Ok6,,,,, ؠ,ؠ,ؠ,ؠ,ŕ, ,٠,'٠,'ԟ,ԟ,6, ו,6ޕ,6Ɵ,̟,6ԟ,6ԟ,'6ԟ,6ԟ,6ԟ,ݟ,{, , 6, ٠,'٠,'٠,'٠,'6ԟ,,6, ,,6,ؠ,selfו,functionޕ,nodeƟ,rest̟,err٠,'valԟ,ŕ, selfҢ, Ţ,= Returns the `Span` of the next token in the parse stream, or,@F `Span::call_site()` if this parse stream has completely exhausted itsڡ,I input `TokenStream`.,̢, 'a5Ѣ,self, ,BF Provides low-level access to the token representation underlying this,I parse stream.,,F Cursors are immutable so no operations you perform against the cursor,I, will affect the state of this parse stream.ͥ,/, 'a5'a,selfަ, ɦ,̦, 'a5ݦ,+buffer+peekԬ++@553Ƭ++buffer+peekְ++@553Ȱ+ ʨ,Ũ,--Tʨ,ʹͨ,input, ,X, -, , ,,, , ,,,, /--,-, ,é,,X6, ,,, ,,input,,X ,,--T,Z,ʹ,input, ,, -, ,',,,,,.,,,, [,,,qū,ū,«,Ok-«,ɫ,,q,,,', , , , ,6 ,, ,','.,',',' ,'  , ,,Ok,,,Some,,,Ok-,,,,q,',' ,' Err,' ,' ,'  ,','  ,'ګ,,' ,',' 6  ,',' ,' ,,,٫,,' ٫,ګ, ,,',',,6̪, ,,q,',q,,q,,-,,,,,',, ,,,',',,',,',«,-ū,input,err,' val,,,input, ,~, ì, ,input, ,, , ,inputɰ, ,ð, а, ,input, ,, , ,ȁȁinput޷, շ,ط, ȁ, ,ڻ,F Parser that can parse Rust tokens into a particular syntax tree node.ȹ,I,F Refer to the [module documentation] for details about parsing in Syn.,I, [module documentation]: self, ,M *This trait is available only if Syn is built with the `"parsing"` feature.*,PSelf,,, ,,, ,self,tokens,,=C Parse a proc-macro2 token stream into the chosen syntax tree node.,Fռ,F This function will check that the input is fully parsed. If there areݼ,ID any unparsed tokens at the end of the stream, an error is returned.,G, 6self,tokens,,> Parse tokens of source code into the chosen syntax tree node.,A,F This function will check that the input is fully parsed. If there are,ID any unparsed tokens at the end of the stream, an error is returned.ֿ,G,M *This method is available only if Syn is built with both the `"parsing"` and,P `"proc-macro"` features.*,,cfg,,, all,,, not,,, all,,, target_arch, ,wasm32,, any,,, target_os, ,unknown, , target_os, ,wasi,, feature,, proc-macro, ,, ,6,,,,,,,&,,,&, ,,&,,3,3,3,6,.,,,,,,,,,,,6,,,,,3,,3,&,3,,,self,tokens,,self,s,,w> Parse a string of Rust code into the chosen syntax tree node.,A,F This function will check that the input is fully parsed. If there are,ID any unparsed tokens at the end of the string, an error is returned.,G, # Hygiene, ,F Every span in the resulting syntax tree will be set to resolve at the,I macro call site.,, 6, , ,,, ,,,&,&',%,,,%," B,%,,&',&' ,&',w, ,,,',' ,' ,, ,& ,& Ok,& , ,3 ,3,3,6,.,&',' ,' Err7,' ,' ,'  ,',' 7  ,',,' ,',&' 6  ,',' ,' ,, ,, , ,,,, ,, ,,,, , ,,,w,',',&,&6,,,,3,,3,&,37,&',37,%,3,,'7,',3,',37,',&,self,s,err,' val,& ,wself,scope,tokens,!,,doc,,, hidden,,,cfg,,, any,,, feature,,full,, feature,,derive,,1, 6,,,,,,6,,,,,,06,,,,,,,,self,scope,tokens,,self,input,,,doc,,, hidden,,,cfg,,, any,,, feature,,full,, feature,,derive,,1, 6, , , , , , ,,, , ,,,,,,,,4, /6 6,&,,,,,,,,6,,,,4, ,4,,47,,self,input,,,tokens, ,> ,, , ,, FT5, /,7, ,,,/self,tokens,,, /5(,%,,$,,$,,,,,,,&,,,,,,,,,,7,,,,, ' ,  , ,$,, ,  , ,,, ,   , ,    , ,&, , , , ', ' 5  , ',,' ,' ,' , , ,  Ok/, %, , ,,, ,',,,,, ,, ',',' Err,',',',',' ,',,',', ' 5,',',',, ,%,,,',,,&,, ,%,,,,',',',',' ,',,,Ok,,,1,,,,,.,,',','Err,' ,' ,' ,' ,',',' ,' ,'7,',' ,',,%,,,%,,,',,1,!5,1,, ,,#,%,,#,Ok/#,,#,!, , Some,/ !, ", " ,/ ,  ",unexpected token! ,/, ",4 Err!,4 , !, ,!,%"',%,,,#,,$&,,, ,$,,,$%,%,," ,,,,,',', , ,',',, ,L&5, ,,۳,,,, ۳,,ܳ7,/,5, '5, ,7, ,,,',',','/, ,',,,',',',',,,1,,,,,,,4,/,4,,/,,, self,tokens,buf,state,node,err,'val, err,'val, unexpected_span, ,self,scope,tokens,!,,doc,,, hidden,,,cfg,,, any,,, feature,,full,, feature,,derive,,1, /+,+,,,,,+,,,,,,,),,,,,,, ,,,,, , , , ,,  ǃ  ,,), ,$,  ,$, , , , , , , , ,+,   ,+,, , ,, ', ,,+,,, ,,, ,, , ,7 , ,,,, ', '7  , ', ,',' ,'  ,  , , Ok/, ,, , ,,,,',,, ,,7,, ',','Err,',',',',' ,',,',', '7 ,',',',,,,,,,', , ,,,),,,,,, ,,',',',',' ,',,","Ok,",,1#,$,%,% ,,.%$,,',','Err,'  ,' !,' !,' ,'! ,',' !,' ,'7 ,','  ,',,,,, ,,,,,',%,1,!5$# ,1,$,& #,&"!,*,,,,*,Ok/*,,*,$,','#Some,/(,),)',/, 7),unexpected token(#,/,),4Err(,4,(,',$,,%*,,,,, &, ,,,'),,#,,+,,,+(,,,,% ,,,,,,,',', , ,',' ,, ,L-5,,,,۳,,,,ܳ7,, ,ǃ,,,,, /,5, '5, ,7, ,,,',',','/, ,',,,',',',',,,1,,,,,,,4,/,4,,/,,, self,scope,tokens,buf,cursor, unexpected, state, node,err,'val, err,' val, "unexpected_span,',self,input,,_,doc,,, hidden,,,cfg,,, any,,, feature,,full,, feature,,derive,,1, /, ,,, ,,, , ,7, ,,,,,_5,,,, ,, 7, , ,self,input,,_ ,, f,scope,tokens,,b,cfg,,, any,,, feature,,full,, feature,,derive,,1!F,Ź,,,,,,,,, ,,,,,,,,,,,,,,,,f,scope,tokens,, ,, f,input,,T,cfg,,, any,,, feature,,full,, feature,,derive,,1 F, ,Ź,,,,,,, ,,,,,t,,,,,,,f,input,,t,,? An empty syntax tree node that consumes no tokens when parsed.,B,E This is useful for attribute macros that want to ensure they are not,H provided any attribute args., , ```, # extern crate proc_macro;, #, use proc_macro::TokenStream;,  use syn::parse_macro_input;, use syn::parse::Nothing;,,$ # const IGNORE: &str = stringify! {,' #[proc_macro_attribute], # };,G pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {,J) parse_macro_input!(args as Nothing);,,, /* ... */, # "".parse().unwrap(), }, ```,, ```text,  error: unexpected token, --> src/main.rs:3:19, |, 3 | #[my_attr(asdf)], | ^^^^, ```,,7,h77_input, ,I, 7, Span-- PhantomData- - PhantomData- -[ cfg featurefullA8-~87֣-\٣- 7--cfg--Ӥ- feature-Ĥ- clone-implsƤ- -7 7self- -a-  77- ParseBuffer- -  ParseStream- -  TokenStreamĨ- -iterڨ-ը- y cfg all any featurefull featurederive featureparsing K-begin-end--O 'a 'a7- TokenStreamѫ- ī-ToTokens-M-< cfg all any featurefull featurederive featureprinting L ---9'a/'aT/-/'a-7--- 'a/-9 'a/77-9 7-9-9/-97-9-9 --'a/M7'aT/-M/-/-self-tokens--- 'a/ 7- ٭- 7٭--- - - - /- ĭ-ޭ-ޭ-7Some/------ N/-----x - - - -- 8 -- - ----x --٭- - 7--٭-/ޭ--x/--x--x/- -x/- -x-self-tokens-tޭ-- parse_module Lcfg featureparsing Cursor-- ThreadBound- - Delimiter- - Group--Ident--LexErrorǯ-ǯ-Literalѯ-ѯ-Punctگ-گ-Spacing--Span-- TokenStream- -  TokenTree- - ToTokens-M-fmtư-̰-DebugҰ-3Ұ-DebugҰ-3Ұ-Displayٰ-3ٰ- FromIterator- (-slice-- vec-#-vec-- AA ϱ-ȱ- -3 The result of a Syn parser.-Tϱ---5@ Error returned when a Syn parser cannot parse the input tokens.-C-! # Error reporting in proc macros-$-H The correct way to report errors back to the compiler from a procedural-K< macro is by emitting an appropriately spanned invocation of-?L [`compile_error!`] in the generated code. This produces a better diagnostic-O) message than simply panicking the macro.-,-( [`compile_error!`]: std::compile_error!-+-G When parsing macro input, the [`parse_macro_input!`] macro handles the-J. conversion to `compile_error!` automatically.-1- ```- # extern crate proc_macro;- #ʶ- use proc_macro::TokenStream;ж- 5 use syn::{parse_macro_input, AttributeArgs, ItemFn};-8-$ # const IGNORE: &str = stringify! {-' #[proc_macro_attribute]ַ- # };-G pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {-J: let args = parse_macro_input!(args as AttributeArgs);Ƹ-=5 let input = parse_macro_input!(input as ItemFn);-8- /* ... */- # TokenStream::new()ӹ- }- ```--@ For errors that arise later than the initial parsing stage, the-CM [`.to_compile_error()`] method can be used to perform an explicit conversionƺ-P to `compile_error!`.--1 [`.to_compile_error()`]: Error::to_compile_error-4- ```- # extern crate proc_macro;- #- # use proc_macro::TokenStream;-"- # use syn::{parse_macro_input, DeriveInput};-0 #-$ # const IGNORE: &str = stringify! {-' #[proc_macro_derive(MyDerive)]-" # };-6 pub fn my_derive(input: TokenStream) -> TokenStream {Ƚ-9: let input = parse_macro_input!(input as DeriveInput);-=-@ // fn(DeriveInput) -> syn::Resultľ-C expand::my_derive(input)- 6 .unwrap_or_else(|err| err.to_compile_error())-9 .into()- }- #- # mod expand {-$ # use proc_macro2::TokenStream;-'& # use syn::{DeriveInput, Result};-) #-D # pub fn my_derive(input: DeriveInput) -> Result {-G # unimplemented!()- # }-  # }- ```---#- -8-- --8---(span-message--F Usually the [`ParseStream::error`] method will be used instead, which-IE automatically uses the correct span from the current position of the-H parse stream.--I Use `Error::new` when the error needs to be triggered on some span other-L5 than where the parse stream is currently positioned.-8-9 [`ParseStream::error`]: crate::parse::ParseBuffer::error-<- # Example- - ```-0 use syn::{Error, Ident, LitStr, Result, Token};-3 use syn::parse::ParseStream;- -H // Parses input that looks like `name = "string"` where the key must be-KB // the identifier `name` and the value may be any string literal.-E // Returns the string literal.-"6 fn parse_name(input: ParseStream) -> Result {-9, let name_token: Ident = input.parse()?;-/ if name_token != "name" {-!G // Trigger an error not on the current position of the stream,-J= // but on the position of the unexpected identifier.-@F return Err(Error::new(name_token.span(), "expected `name`"));-I }- ! input.parse::()?;-$$ let s: LitStr = input.parse()?;-' Ok(s)-  }- ```-- T-3- 99 9 9 9  8--- - --  --- - - - --8  --- - - - --   - - -8-8 - - - -9  899 9 U 89999 899-8---99 %ݮ8 ݮ89-----89-89 -Uݮ89 89 -8--8----8------޽--9span-message--tokens-message--F Creates an error with the specified message spanning the given syntax-I tree node.--H Unlike the `Error::new` constructor, this constructor takes an argument-KH `tokens` which is a syntax tree node. This allows the resulting `Error`-KB to attempt to span all tokens inside of `tokens`. While you would-EI typically be able to use the `Spanned` trait with the above `Error::new`-L8 constructor, implementation limitations today mean that-;C `Error::new_spanned` may provide a higher-quality error message on-F stable Rust.--< When in doubt it's recommended to stick to `Error::new` (or-? `ParseStream::error`)!--cfg--- feature--printing- -- Uݽ8TU-2-ݽ8-3ݽ8--------- P---&- (- ------- --- - )---  -6- , ݽ8 -8 -*- -- -  - --- - - )8  -- - - - -'- ,ݽ88   - -- - 99 9 9 9  ݮ8------8 ----- --8 ------- ݽ8 - --8-8----9  899 9 899998 99-8-- ----- -----99س889------ݽ8-8----- 8-8- -8- 8--8- -89-89 -89 89 -8--8----8------ ݽ8--9tokens-message-iter-start-end- -self- -" The source location of the error.-%-G Spans are not thread-safe so this function returns `Span::call_site()`-JH if called from a different thread than the one on which the `Error` was-K originally created.--  -self- -9 Render the error as an invocation of [`compile_error!`].-<-E The [`parse_macro_input!`] macro provides a convenient way to invoke-H- this method correctly in a procedural macro.-0-( [`compile_error!`]: std::compile_error!-+- 8-self- -V9 Render the error as an invocation of [`compile_error!`].-<-( [`compile_error!`]: std::compile_error!-+- # Example- - ```- # extern crate proc_macro;- #- use proc_macro::TokenStream;- 2 use syn::{parse_macro_input, DeriveInput, Error};-5- # const _: &str = stringify! {-" #[proc_macro_derive(MyTrait)]-! # };-< pub fn derive_my_trait(input: TokenStream) -> TokenStream {-?: let input = parse_macro_input!(input as DeriveInput);-= my_trait::expand(input)-3 .unwrap_or_else(Error::into_compile_error)-6 .into()- }-- mod my_trait {-" use proc_macro2::TokenStream;-%$ use syn::{DeriveInput, Result};-'-F pub(crate) fn expand(input: DeriveInput) -> Result {-I /* ... */- # unimplemented!()- }-  }- ```-- self-another--aI Add another error message to self such that when `to_compile_error()` is-L. called, both errors will be emitted together.-1-  --8self- --  8- --scope-cursor-message-$-K-cfg--- feature--parsing- - T--8-- '- '- '- '- '--- - --------)-!, -)--IdII( - - - --- - -  - I( I(I(I(I(--I(޽-J--޽-I(----- 3  I(I( 3I( JJI( JJI(I(I( JI(I(   I(J J I=I I=J JJJJ JJ-B- -B--- --------- ح8 ----- -- ----- --- -IZI(-]------ '---B--BIdII(---I(I(I(I(޽-I(޽--޽--I(޽--8---------scope-cursor-message-resIarg0-span--- -unexpected end of input, ---IZI(-]--- --start-end-message-!-D-cfg--- all--- feature--parsing- - any--- feature--full-- feature--derive--K T-8- 99 9 9 9  ݮ8-- - - --8  --- - - - --8  --- - ---- 8 - --8 -8 - - - - 9  899 9 89999899-8---99س889------89-89 -89 89 -8--8----8------޽--9start-end-message---3self- formatter- -- 8--838self- formatter- -q- 8-ـ.3self. formatter. .{. 8.. self. .f. 8..8 8self. .. 88..# .x7err. .R. 7.(....selfň. .z. (..B9Љ.%Љ.&8.9)9..self. ..  99).. 'a(9'a....'aself. .q. 'a99(..D'a'a.'.7'a8Ս.'a)9'a..self. .. 'a 99)..(self.iter.ď.Ǐ. 8T.Ώ.(я.(ޏ. .'.'.'.'.'.'.' (.'ď..'.'.'.:.'.'.'.' .' .' .'.' )( .'Đ..'. . .:.:.' .'Đ.Đ.Đ.Đ. .'. . Some. .  ... . . .' .'. .'.'.' ..... ..8  . ...Đ. Đ.Đ.Đ..:Đ..'ː.Đ.Đ.Đ.Đ. ď..:./../. . ..'9.'.'.'9.'.'.' 9.'Ԗ9.'.....ɕ9..Đ.self. iter.iter.'__next.'val. err. ď. tokens K> Parse tokens of source code into the chosen syntax tree node.AL This is preferred over parsing a string because tokens are able to preserveOM information about where in the user's code they were originally written (thePM "span" of the token), possibly allowing the compiler to produce better errorP messages. L This function parses a `proc_macro::TokenStream` which is the type used forO< interop with the compiler in a procedural macro. To parse a?9 `proc_macro2::TokenStream`, use [`syn::parse2`] instead.< [`syn::parse2`]: parse2O *This function is available only if Syn is built with both the `"parsing"` andR `"proc-macro"` features.* # Examples ``` # extern crate proc_macro; # use proc_macro::TokenStream;  use quote::quote; use syn::DeriveInput;+ # const IGNORE_TOKENS: &str = stringify! {. #[proc_macro_derive(MyMacro)]! # };5 pub fn my_macro(input: TokenStream) -> TokenStream {8+ // Parse the tokens into a syntax tree.7 let ast: DeriveInput = syn::parse(input).unwrap();:8 // Build the output, possibly using quasi-quotation; let expanded = quote! { /* ... */ }; 1 // Convert into a token stream and return it4 expanded.into() } ```cfg all not all target_arch wasm32 any target_os unknown  target_os wasi featureparsing  feature proc-macro  ,Tʹ & &z ,&,tokensz tokens MC Parse a proc-macro2 token stream into the chosen syntax tree node.FF This function will check that the input is fully parsed. If there areID any unparsed tokens at the end of the stream, an error is returned.GK This function parses a `proc_macro2::TokenStream` which is commonly usefulNI when the input comes from a node of the Syn syntax tree, for example theLH body tokens of a [`Macro`] node. When in a procedural macro parsing theKG `proc_macro::TokenStream` provided by the compiler, use [`syn::parse`]J instead.  [`syn::parse`]: parse()P *This function is available only if Syn is built with the `"parsing"` feature.*Scfg featureparsing  Tʹ ' '} 'tokens}  s7> Parse a string of Rust code into the chosen syntax tree node.AP *This function is available only if Syn is built with the `"parsing"` feature.*S # Hygiene L Every span in the resulting syntax tree will be set to resolve at the macroO call site. # Examples ``` use syn::{Expr, Result}; fn run() -> Result<()> {3 let code = "assert_eq!(u8::max_value(), 255)";6. let expr = syn::parse_str::(code)?;1 println!("{:#?}", expr);  Ok(()) } # # run().unwrap(); ```cfg featureparsing  Tʹ % %e %se content 4* Parse the content of a file of Rust code.-F This is different from `syn::parse_str::(content)` in two ways:IH - It discards a leading byte order mark `\u{FEFF}` if the file has one.KM - It preserves the shebang line of the file, such as `#!/usr/bin/env rustx`.P@ If present, either of these would be an error using `from_str`.CJ *This function is available only if Syn is built with the `"parsing"` andM `"full"` features.* # Examples ```no_run  use std::error::Error; use std::fs::File; use std::io::Read;% fn run() -> Result<(), Box> {Ā(3 let mut file = File::open("path/to/code.rs")?;6% let mut content = String::new();(( file.read_to_string(&mut content)?;́+* let ast = syn::parse_file(&content)?;-) if let Some(shebang) = ast.shebang {,! println!("{}", shebang);؂$ } + println!("{} items", ast.items.len());. Ok(()) }Ƀ #σ # run().unwrap();Ճ ```cfg all featureparsing  featurefull2 ؅ "\u{feff}" ҅  ҅҅݅҅9ΐ  cfg  Ð  feature  parsing  ӮZӮcursor  9   9ْE ܒ  input  9#  9֓!  cfg  ˓  feature  parsing“  Ӯ_Ӯ9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing ȄZȄcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ Ȅ_Ȅ9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing ҵZҵcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ ҵ_ҵ9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9ΐcfgÐ featureparsing Zcursor 9 9ْEܒ input 9#  9֓!cfg˓ featureparsing“ _9cfg featureparsing Zcursor 9W 9E 9cfg featureparsing _9cfg featureparsing ȁZȁcursor 9W 9E 9cfg featureparsing ȁ_ȁ9cfg featureparsing Zcursor 9W 9E 9cfg featureparsing _1 Irepr C doc `_`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο31  spans ;doc hiddenallow non_snake_case S3  3 H3H3Hspans99 9cfg feature clone-impls 9zcfg feature clone-impls  self 9E 9ֹ9self 9v  9self 9λѻ    9ۻ@doc `abstract`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  :9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@doc `as`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  :9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@ doc   `async` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ˥:S9 9 ңI˥:ңIңI3ңIңIspan9˥:˥:9 ˥:9cfg feature clone-impls ˥:˥:9zcfgƧ feature clone-impls ˥: ˥:selfʨ 9Eè  ˥:˥:ɨ9ְcfgְٰ featureڰprinting ԰˥:M˥:selftokens9  :9cfg featureparsing ˥:˥:input 9 ˥: 9cfg featureparsing ˥:Z˥:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ˥:_˥:@ doc   `auto` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfg feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  :9cfg featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing _Ȁ@Հ docՀ Հ  `await`Հ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ȁspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  :9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@ doc   `become` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  :9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@ doc   `box` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  :9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@ doc   `break` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case :S9 9 ңI:ңIңI3ңIңIspan9::9 :9cfg feature clone-impls ::9zcfgƧ feature clone-impls : :selfʨ 9Eè  ::ɨ9ְcfgְٰ featureڰprinting ԰:M:selftokens9  ;9cfg featureparsing ::input 9 : 9cfg featureparsing :Z:cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing :_:@ doc   `const` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case Ս;S9 9 ңIՍ;ңIңI3ңIңIspan9Ս;Ս;9 Ս;9cfg feature clone-impls Ս;Ս;9zcfgƧ feature clone-impls Ս; Ս;selfʨ 9Eè  Ս;Ս;ɨ9ְcfgְٰ featureڰprinting ԰Ս;MՍ;selftokens9  ǖ;9cfg featureparsing Ս;Ս;input 9 Ս; 9cfg featureparsing Ս;ZՍ;cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing Ս;_Ս;Ղ@doc `continue`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ղspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ;S9 9 ңI;ңIңI3ңIңIspan9;;9 ;9cfg feature clone-impls ;;9zcfgƧ feature clone-impls ; ;selfʨ 9Eè  ;;ɨ9ְcfgְٰ featureڰprinting ԰;M;selftokens9  ;9cfg featureparsing ;;input 9 ; 9cfg featureparsing ;Z;cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ;_;@ doc   `crate` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ;S9 9 ңI;ңIңI3ңIңIspan9;;9 ;9cfg feature clone-impls ;;9zcfgƧ feature clone-impls ; ;selfʨ 9Eè  ;;ɨ9ְcfgְٰ featureڰprinting ԰;M;selftokens9  ;9cfg featureparsing ;;input 9 ; 9cfg featureparsing ;Z;cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ;_;ă@у docу у  `default`у < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ăspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfg feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  ;9cfg featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing _@doc `do`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ;S9 9 ңI;ңIңI3ңIңIspan9;;9 ;9cfg feature clone-impls ;;9zcfgƧ feature clone-impls ; ;selfʨ 9Eè  ;;ɨ9ְcfgְٰ featureڰprinting ԰;M;selftokens9  ;9cfg featureparsing ;;input 9 ; 9cfg featureparsing ;Z;cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ;_;@ doc   `dyn` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ;S9 9 ңI;ңIңI3ңIңIspan9;;9 ;9cfg feature clone-impls ;;9zcfgƧ feature clone-impls ; ;selfʨ 9Eè  ;;ɨ9ְcfgְٰ featureڰprinting ԰;M;selftokens9  ;9cfg featureparsing ;;input 9 ; 9cfg featureparsing ;Z;cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ;_;@ doc   `else` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfg feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  ;9cfg featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing _@ doc   `enum` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<ͅ@څ docڅ څ  `extern`څ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ͅspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<@ doc   `final` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  ײ<9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<@dždocdždž `fn`dž< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<@ doc   `for` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<@doc `if`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<ԇ@ doc   `impl` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ԇspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case <S9 9 ңI<ңIңI3ңIңIspan9<<9 <9cfg feature clone-impls <<9zcfgƧ feature clone-impls < <selfʨ 9Eè  <<ɨ9ְcfgְٰ featureڰprinting ԰<M<selftokens9  <9cfg featureparsing <<input 9 < 9cfg̀ featureparsing <Z<cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing <_<@doc `in`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  =9cfgӁ featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=@Ɉ docɈ Ɉ  `let`Ɉ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfgł feature clone-impls ==9zcfg˂Ƨ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְ܂ٰ featureڰprinting ԰=M=selftokens9  ך=9cfg featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=@ doc   `loop` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  =9cfg featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgԄɸ featureparsing =_=@ doc ۄ  `macro` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  =9cfg featureparsing ==input 9 = 9cfg݅ featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=ۉ@ doc   `match` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ۉspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְȆٰ featureڰprinting ԰=M=selftokens9  =9cfg featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=@ doc   `mod` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfgՇ feature clone-impls ==9zcfgۇƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  =9cfg featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=Ŋ@Ҋ docҊ LjҊ  `move`Ҋ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ŋspan 7ʢdocʢ̈͢Ԣ hidden΢Ȣallow͈ non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  =9cfg featureparsing ==input 9 = 9cfgɉ featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=@ doc   `mut` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case =S9 9 ңI=ңIңI3ңIңIspan9==9 =9cfg feature clone-impls ==9zcfgƧ feature clone-impls = =selfʨ 9Eè  ==ɨ9ְcfgְٰ featureڰprinting ԰=M=selftokens9  ߂>9cfgϊ featureparsing ==input 9 = 9cfg featureparsing =Z=cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing =_=@doc `override`< Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfg feature clone-impls >>9zcfgNjƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְ؋ٰ featureڰprinting ԰>M>selftokens9  >9cfg featureparsing >>input 9 > 9cfg featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_>@ doc   `priv` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ɜ>S9 9 ңIɜ>ңIңI3ңIңIspan9ɜ>ɜ>9 ɜ>9cfg feature clone-impls ɜ>ɜ>9zcfgƧ feature clone-impls ɜ> ɜ>selfʨ 9Eè  ɜ>ɜ>ɨ9ְcfgְٰ featureڰprinting ԰ɜ>Mɜ>selftokens9  >9cfg featureparsing ɜ>ɜ>input 9 ɜ> 9cfg featureparsing ɜ>Zɜ>cursor 9m Ƕ9^ 9ظ!cfgЍɸ featureparsing ɜ>_ɜ>@ doc ׍  `pub` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ܍͢Ԣ hidden΢Ȣallowݍ non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfg feature clone-impls >>9zcfgƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְٰ featureڰprinting ԰>M>selftokens9  >9cfg featureparsing >>input 9 > 9cfgَ featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_>Ќ@݌ doc݌ ݌  `ref`݌ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ќspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfg feature clone-impls >>9zcfgƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְďٰ featureڰprinting ԰>M>selftokens9  >9cfgߏ featureparsing >>input 9 > 9cfg featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_>@ doc   `return` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfgѐ feature clone-impls >>9zcfgאƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְٰ featureڰprinting ԰>M>selftokens9  >9cfg featureparsing >>input 9 > 9cfg featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_>@ȍ docȍ Ñȍ  `Self`ȍ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢȑ͢Ԣ hidden΢Ȣallowɑ non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfg feature clone-impls >>9zcfgƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְٰ featureڰprinting ԰>M>selftokens9  >9cfg featureparsing >>input 9 > 9cfgŒ featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_> @ doc   `self` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1  span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case >S9 9 ңI>ңIңI3ңIңIspan9>>9 >9cfg feature clone-impls >>9zcfgƧ feature clone-impls > >selfʨ 9Eè  >>ɨ9ְcfgְٰ featureڰprinting ԰>M>selftokens9  >9cfg˓ featureparsing >>input 9 > 9cfg featureparsing >Z>cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing >_>@ doc   `static` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ӄ?S9 9 ңIӄ?ңIңI3ңIңIspan9ӄ?ӄ?9 ӄ?9cfg feature clone-impls ӄ?ӄ?9zcfgÔƧ feature clone-impls ӄ? ӄ?selfʨ 9Eè  ӄ?ӄ?ɨ9ְcfgְԔٰ featureڰprinting ԰ӄ?Mӄ?selftokens9  ō?9cfg featureparsing ӄ?ӄ?input 9 ӄ? 9cfg featureparsing ӄ?Zӄ?cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ӄ?_ӄ?܎@ doc   `struct` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ܎span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ?S9 9 ңI?ңIңI3ңIңIspan9??9 ?9cfg feature clone-impls ??9zcfgƧ feature clone-impls ? ?selfʨ 9Eè  ??ɨ9ְcfgְٰ featureڰprinting ԰?M?selftokens9  ?9cfg featureparsing ??input 9 ? 9cfg featureparsing ?Z?cursor 9m Ƕ9^ 9ظ!cfg̖ɸ featureparsing ?_?@ doc Ӗ  `super` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢؖ͢Ԣ hidden΢Ȣallowٖ non_snake_case ?S9 9 ңI?ңIңI3ңIңIspan9??9 ?9cfg feature clone-impls ??9zcfgƧ feature clone-impls ? ?selfʨ 9Eè  ??ɨ9ְcfgְٰ featureڰprinting ԰?M?selftokens9  ?9cfg featureparsing ??input 9 ? 9cfg՗ featureparsing ?Z?cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ?_?ɏ@֏ doc֏ ֏  `trait`֏ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 ɏspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfg feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  ?9cfgۘ featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing _@ doc   `try` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ?S9 9 ңI?ңIңI3ңIңIspan9??9 ?9cfg͙ feature clone-impls ??9zcfgәƧ feature clone-impls ? ?selfʨ 9Eè  ??ɨ9ְcfgְٰ featureڰprinting ԰?M?selftokens9  ?9cfg featureparsing ??input 9 ? 9cfg featureparsing ?Z?cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ?_?@ doc   `type` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢĚ͢Ԣ hidden΢ȢallowŚ non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfg feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  ?9cfg featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgܛɸ featureparsing _@ doc   `typeof` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ?S9 9 ңI?ңIңI3ңIңIspan9??9 ?9cfg feature clone-impls ??9zcfgƧ feature clone-impls ? ?selfʨ 9Eè  ??ɨ9ְcfgְٰ featureڰprinting ԰?M?selftokens9  ?9cfgǜ featureparsing ??input 9 ? 9cfg featureparsing ?Z?cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ?_?@ doc   `union` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case ?S9 9 ңI?ңIңI3ңIңIspan9??9 ?9cfg feature clone-impls ??9zcfgƧ feature clone-impls ? ?selfʨ 9Eè  ??ɨ9ְcfgְНٰ featureڰprinting ԰?M?selftokens9  @9cfg featureparsing ??input 9 ? 9cfg featureparsing ?Z?cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing ?_?Ց@ doc   `unsafe` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ցspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case S9 9 ңIңIңI3ңIңIspan99 9cfgݞ feature clone-impls 9zcfgƧ feature clone-impls  selfʨ 9Eè  ɨ9ְcfgְٰ featureڰprinting ԰Mselftokens9  @9cfg featureparsing input 9  9cfg featureparsing Zcursor 9m Ƕ9^ 9ظ!cfgȟɸ featureparsing _@ doc ϟ  `unsized` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢԟ͢Ԣ hidden΢Ȣallow՟ non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfg feature clone-impls @@9zcfgƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ featureڰprinting ԰@M@selftokens9  ֩@9cfg featureparsing @@input 9 @ 9cfgѠ featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing @_@Ē@ђ docђ ђ  `use`ђ < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 Ēspan 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfg feature clone-impls @@9zcfgƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ featureڰprinting ԰@M@selftokens9  @9cfgס featureparsing @@input 9 @ 9cfg featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing @_@@ doc   `virtual` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfgɢ feature clone-impls @@9zcfgϢƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ featureڰprinting ԰@M@selftokens9  @9cfg featureparsing @@input 9 @ 9cfg featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing @_@@ doc   `where` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfg feature clone-impls @@9zcfgƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ featureڰprinting ԰@M@selftokens9  @9cfg featureparsing @@input 9 @ 9cfg featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgؤɸ featureparsing @_@@ doc ߤ  `while` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfg feature clone-impls @@9zcfgƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ featureڰprinting ԰@M@selftokens9  @9cfgå featureparsing @@input 9 @ 9cfg featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing @_@@ doc   `yield` < Don't try to remember the name of this type — use theˠ? [`Token!`] macro instead. [`Token!`]: crate::tokenѡ1 span 7ʢdocʢ͢Ԣ hidden΢Ȣallow non_snake_case @S9 9 ңI@ңIңI3ңIңIspan9@@9 @9cfg feature clone-impls @@9zcfgƧ feature clone-impls @ @selfʨ 9Eè  @@ɨ9ְcfgְٰ̦ featureڰprinting ԰@M@selftokens9  A9cfg featureparsing @@input 9 @ 9cfg featureparsing @Z@cursor 9m Ƕ9^ 9ظ!cfgɸ featureparsing @_@9QQcfgQۧQQ featureQQprinting QQMselfQtokensQ9Q Q  Q9QQcfgQQQ featureQQparsing QQinputQ 9QQ  Q9QQcfgQQQ featureQQparsing QQZcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ!MAselfQtokensQ9Q Q  AQ9QQcfgQӨQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQͩQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQĪQQ featureQQparsing QQA_A9QQcfgQ˪QQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQëQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ"M߭AselfQtokensQ9Q Q  ߭AQ9QQcfgQQQ featureQQparsing QQ߭A߭AinputQ 9QQ ߭A Q9QQcfgQQQ featureQQparsing QQ߭AZ߭AcursorQ 9kQQ Q9^QQ 9!QQcfgQجQQ featureQQparsing QQ߭A_߭A9QQcfgQ߬QQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ"MAselfQtokensQ9Q Q  AQ9QQcfgQ׭QQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQMselfQtokensQ9Q Q  Q9QQcfgQQQ featureQQparsing QQinputQ 9QQ  Q9QQcfgQѮQQ featureQQparsing QQZcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ*M*selfQtokensQ9Q Q  *Q9QQcfgQQQ featureQQparsing QQ**inputQ 9QQ * Q9QQcfgQQQ featureQQparsing QQ*Z*cursorQ 9kQQ Q9^QQ 9!QQcfgQȯQQ featureQQparsing QQ*_*9QQcfgQϯQQ featureQQprinting QQMselfQtokensQ9Q Q  Q9QQcfgQQQ featureQQparsing QQinputQ 9QQ  Q9QQcfgQQQ featureQQparsing QQZcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ#MAselfQtokensQ9Q Q  AQ9QQcfgQǰQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ#MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQܱQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ#MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQMselfQtokensQ9Q Q  Q9QQcfgQ۲QQ featureQQparsing QQinputQ 9QQ  Q9QQcfgQQQ featureQQparsing QQZcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ#MAselfQtokensQ9Q Q  AQ9QQcfgQQQ featureQQparsing QQAAinputQ 9QQ A Q9QQcfgQճQQ featureQQparsing QQAZAcursorQ 9kQQ Q9^QQ 9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQMselfQtokensQ9Q Q Q9QQcfgQQQ featureQQparsing QQinputQ 9QQ  Q9QQcfgQQQ featureQQparsing QQ ZcursorQ 9kQQ  Q 9^QQ   9!QQcfgQ̴QQ featureQQparsing QQ_9QQcfgQӴQQ featureQQprinting QQ #MAselfQtokensQ9Q Q  A Q 9QQcfgQQQ featureQQparsing QQ AAinputQ 9QQ A  Q 9QQcfgQQQ featureQQparsing QQ AZAcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQA_A9QQcfgQQQ featureQQprinting QQ MselfQtokensQ9Q Q   Q 9QQcfgQ˵QQ featureQQparsing QQ inputQ 9QQ   Q 9QQcfgQQQ featureQQparsing QQ ZcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ $MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQŶQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ $MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQ÷QQ featureQQprinting QQ $MݒBselfQtokensQ9Q Q  ݒB Q 9QQcfgQ߷QQ featureQQparsing QQ ݒBݒBinputQ 9QQ ݒB  Q 9QQcfgQQQ featureQQparsing QQ ݒBZݒBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQݒB_ݒB9QQcfgQQQ featureQQprinting QQ $MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQٸQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ $MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQйQQ featureQQparsing QQB_B9QQcfgQ׹QQ featureQQprinting QQ $MإBselfQtokensQ9Q Q  إB Q 9QQcfgQQQ featureQQparsing QQ إBإBinputQ 9QQ إB  Q 9QQcfgQQQ featureQQparsing QQ إBZإBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQإB_إB9QQcfgQQQ featureQQprinting QQ $MBselfQtokensQ9Q Q  B Q 9QQcfgQϺQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ )M)selfQtokensQ9Q Q  ) Q 9QQcfgQQQ featureQQparsing QQ ))inputQ 9QQ )  Q 9QQcfgQɻQQ featureQQparsing QQ )Z)cursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQ)_)9QQcfgQQQ featureQQprinting QQ $MѸBselfQtokensQ9Q Q  ѸB Q 9QQcfgQQQ featureQQparsing QQ ѸBѸBinputQ 9QQ ѸB  Q 9QQcfgQQQ featureQQparsing QQ ѸBZѸBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQѸB_ѸB9QQcfgQǼQQ featureQQprinting QQ %MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ %MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQݽQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ %MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQԾQQ featureQQparsing QQB_B9QQcfgQ۾QQ featureQQprinting QQ %MBselfQtokensQ9Q Q  B Q 9QQcfgQQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ BZBcursorQ 9kQQ  Q 9^QQ   9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ %MBselfQtokensQ9Q Q  B Q 9QQcfgQӿQQ featureQQparsing QQ BBinputQ 9QQ B  Q 9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!%MBselfQtokensQ9Q Q ! B!Q!9QQcfgQQQ featureQQparsing QQ!BBinputQ 9QQ !B! Q!9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!%MBselfQtokensQ9Q Q ! B!Q!9QQcfgQQQ featureQQparsing QQ!BBinputQ 9QQ !B! Q!9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!%MBselfQtokensQ9Q Q ! B!Q!9QQcfgQQQ featureQQparsing QQ!BBinputQ 9QQ !B! Q!9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!MselfQtokensQ9Q Q ! !Q!9QQcfgQQQ featureQQparsing QQ!inputQ 9QQ !! Q!9QQcfgQQQ featureQQparsing QQ!!ZcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQ_9QQcfgQQQ featureQQprinting QQ!&MBselfQtokensQ9Q Q ! B!Q!9QQcfgQQQ featureQQparsing QQ!BBinputQ 9QQ !B! Q!9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!&MBselfQtokensQ9Q Q ! B!Q!9QQcfgQQQ featureQQparsing QQ!BBinputQ 9QQ !B! Q!9QQcfgQQQ featureQQparsing QQ!!BZBcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQB_B9QQcfgQQQ featureQQprinting QQ!&MCselfQtokensQ9Q Q ! C!Q!9QQcfgQQQ featureQQparsing QQ!CCinputQ 9QQ !C! Q!9QQcfgQQQ featureQQparsing QQ!!CZCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQC_C9QQcfgQQQ featureQQprinting QQ!&MCselfQtokensQ9Q Q ! C!Q!9QQcfgQQQ featureQQparsing QQ!CCinputQ 9QQ !C! Q!9QQcfgQQQ featureQQparsing QQ!!CZCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQC_C9QQcfgQQQ featureQQprinting QQ!&MCselfQtokensQ9Q Q ! C!Q!9QQcfgQQQ featureQQparsing QQ!CCinputQ 9QQ !C! Q!9QQcfgQQQ featureQQparsing QQ!!CZCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQC_C9QQcfgQQQ featureQQprinting QQ!&MCselfQtokensQ9Q Q ! C!Q!9QQcfgQQQ featureQQparsing QQ!CCinputQ 9QQ !C! Q!9QQcfgQQQ featureQQparsing QQ!!CZCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQC_C9QQcfgQQQ featureQQprinting QQ!&MߝCselfQtokensQ9Q Q ! ߝC!Q!9QQcfgQQQ featureQQparsing QQ!ߝCߝCinputQ 9QQ !ߝC! Q!9QQcfgQQQ featureQQparsing QQ!!ߝCZߝCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQߝC_ߝC9QQcfgQQQ featureQQprinting QQ!&MCselfQtokensQ9Q Q ! C!Q!9QQcfgQQQ featureQQparsing QQ!CCinputQ 9QQ !C! Q!9QQcfgQQQ featureQQparsing QQ!!CZCcursorQ 9kQQ !!Q!9^QQ !!!9!QQcfgQQQ featureQQparsing QQC_C1IRRreprRRR CR Rdoc `+`RR< Don't try to remember the name of this type — use theȾ?R [`Token!`] macro instead.RR [`Token!`]: crate::tokenοR!RR3!!1 RspansR ;RRdocRRR hiddenRRRallowRRR non_snake_caseRR !S!!R9RRRRR R9 RRHR3RRRRRHR3RHRRspansRR9R!9RR !!!9RRcfgRRR featureRR clone-impls RR9zRRcfgRRR featureRR clone-impls RR! selfR 9ERR !A!R!9ֹS!!9SS!!selfS 9vSS !A !S!9S!selfS 9λSѻ S !  C!ۻS!2IUUreprUUU CU Udoc `+=`UU< Don't try to remember the name of this type — use theȾ?U [`Token!`] macro instead.UU [`Token!`]: crate::tokenοU!AUU3!!2 UspansU ;UUdocUUU hiddenUUUallowUUU non_snake_caseUU !AS!!U3UUUUU U 3 UUHU3UUUAUUHU3UHUUspansUU9U!AA9UU !A!!9UUcfgUUU featureUU clone-impls UUAA9zUUcfgUUU featureUU clone-impls UU"A AselfU 9EUU "܎AA!U!1ԕԕԕԕԕԕԕЕIWWreprWWW CW Wݕdocݕݕ `&`ݕWW< Don't try to remember the name of this type — use theȾ?W [`Token!`] macro instead.WW [`Token!`]: crate::tokenοW"AWW3""1ԕԕԕԕԕԕԕ WЕspansW ;WWdocWWW hiddenWWWallowWWW non_snake_caseWW "AS""W9WWWWW W9 WWHW3WWWAWWHW3WHWWspansWW9W"AA9WW "A""9WWcfgWWW featureWW clone-impls WWAA9zWWcfgWWW featureWW clone-impls WW"A AselfW 9EWW "AA"W"9ֹX""AA9XX""selfX 9vXX "A A"X"9X"AAselfX 9λXѻ X " A C"ۻX"2IZZreprZZZ CZ Zdoc `&&`ZZ< Don't try to remember the name of this type — use theȾ?Z [`Token!`] macro instead.ZZ [`Token!`]: crate::tokenοZ"AZZ3""2 ZspansZ ;ZZdocZZZ hiddenZZZallowZZZ non_snake_caseZZ "AS""ZCZZZZZ ZԽC ZZHZ3ZZZAZZHZ3ZHZZspansZZ9Z"AA9ZZ "A""9ZZcfgZZZ featureZZ clone-impls ZZAA9zZZcfgZZZ featureZZ clone-impls ZZ"A AselfZ 9EZZ "AA"Z"2I\\repr\\\ C\ \–doc–– `&=`–\\< Don't try to remember the name of this type — use theȾ?\ [`Token!`] macro instead.\\ [`Token!`]: crate::tokenο\"A\\3""2 \spans\ ;\\doc\\\ hidden\\\allow\\\ non_snake_case\\ "AS""\C\\\\\ \ԽC \\H\3\\\A\\H\3\H\\spans\\9\"AA9\\ "A""9\\cfg\\\ feature\\ clone-impls \\AA9z\\cfg\\\ feature\\ clone-impls \\"A Aself\ 9E\\ "סAA"\"1I^^repr^^^ C^ ^doc `@`^^< Don't try to remember the name of this type — use theȾ?^ [`Token!`] macro instead.^^ [`Token!`]: crate::tokenο^"A^^3""1 ^spans^ ;^^doc^^^ hidden^^^allow^^^ non_snake_case^^ "AS""^9^^^^^ ^9 ^^H^3^^^A^^H^3^H^^spans^^9^"AA9^^ "A""9^^cfg^^^ feature^^ clone-impls ^^AA9z^^cfg^^^ feature^^ clone-impls ^^"A Aself^ 9E^^ "AA"^"9ֹ_""AA9__""self_ 9v__ "A A"_"9_"AAself_ 9λ_ѻ _ " A C"ۻ_"1Iaarepraaa Ca adoc `!`aa< Don't try to remember the name of this type — use theȾ?a [`Token!`] macro instead.aa [`Token!`]: crate::tokenοa"߭Aaa3""1 aspansa ;aadocaaa hiddenaaaallowaaa non_snake_caseaa "߭AS""a9aaaaa a9 aaHa3aaa߭AaaHa3aHaaspansaa9a"߭A߭A9aa "߭A""9aacfgaaa featureaa clone-impls aa߭A߭A9zaacfgaaa featureaa clone-impls aa"߭A ߭Aselfa 9Eaa "A߭A"a"9ֹb""߭A߭A9bb""selfb 9vbb "A ߭A"b"9b"߭A߭Aselfb 9λbѻ b " ߭A D"ۻb"1җҗҗҗҗҗҗ̗Iddreprddd Cd dٗdocٗٗ `^`ٗdd< Don't try to remember the name of this type — use theȾ?d [`Token!`] macro instead.dd [`Token!`]: crate::tokenοd"Add3""1җҗҗҗҗҗҗ d̗spansd ;dddocddd hiddendddallowddd non_snake_casedd "AS""d9ddddd d9 ddHd3dddAddHd3dHddspansdd9d"AA9dd "A""9ddcfgddd featuredd clone-impls ddAA9zddcfgddd featuredd clone-impls dd"A Aselfd 9Edd "ҴAA"d"9ֹe""AA9ee""selfe 9vee "ҴA A"e"9e"AAselfe 9λeѻ e " A D"ۻe"2Iggreprggg Cg gdoc `^=`gg< Don't try to remember the name of this type — use theȾ?g [`Token!`] macro instead.gg [`Token!`]: crate::tokenοg"Agg3""2 gspansg ;ggdocggg hiddengggallowggg non_snake_casegg "AS""gCggggg gԽC ggHg3gggAggHg3gHggspansgg9g"AA9gg "A""9ggcfgggg featuregg clone-impls ggAA9zggcfgggg featuregg clone-impls gg"A Aselfg 9Egg "AA"g"1Iiirepriii Ci idoc `:`ii< Don't try to remember the name of this type — use theȾ?i [`Token!`] macro instead.ii [`Token!`]: crate::tokenοi"ii3""1 ispansi ;iidociii hiddeniiiallowiii non_snake_caseii "S""i9iiiii i9 iiHi3iiiiiHi3iHiispansii9i"9ii """9iicfgiii featureii clone-impls ii9ziicfgiii featureii clone-impls ii" selfi 9Eii "A"i"9ֹj""9jj""selfj 9vjj "A "j"9j"selfj 9λjѻ j "  D"ۻj"2Illreprlll Cl ldoc `::`ll< Don't try to remember the name of this type — use theȾ?l [`Token!`] macro instead.ll [`Token!`]: crate::tokenοl"*ll3""2 lspansl ;lldoclll hiddenlllallowlll non_snake_casell "*S""lClllll lԽC llHl3lll*llHl3lHllspansll9l#**9ll #*##9llcfglll featurell clone-impls ll**9zllcfglll featurell clone-impls ll#* *selfl 9Ell #A*#l#1Innreprnnn Cn ndoc `,`nn< Don't try to remember the name of this type — use theȾ?n [`Token!`] macro instead.nn [`Token!`]: crate::tokenοn#nn3##1 nspansn ;nndocnnn hiddennnnallownnn non_snake_casenn #S##n9nnnnn n9 nnHn3nnnnnHn3nHnnspansnn9n#9nn ###9nncfgnnn featurenn clone-impls nn9znncfgnnn featurenn clone-impls nn# selfn 9Enn #A#n#9ֹo##9oo##selfo 9voo #A #o#9o#selfo 9λoѻ o #  ؿD#ۻo#1̙̙̙̙̙̙̙șIqqreprqqq Cq qՙdocՙՙ `/`ՙqq< Don't try to remember the name of this type — use theȾ?q [`Token!`] macro instead.qq [`Token!`]: crate::tokenοq#Aqq3##1̙̙̙̙̙̙̙ qșspansq ;qqdocqqq hiddenqqqallowqqq non_snake_caseqq #AS##q9qqqqq q9 qqHq3qqqAqqHq3qHqqspansqq9q#AA9qq #A##9qqcfgqqq featureqq clone-impls qqAA9zqqcfgqqq featureqq clone-impls qq#A Aselfq 9Eqq #AA#q#9ֹr##AA9rr##selfr 9vrr #A A#r#9r#AAselfr 9λrѻ r # A D#ۻr#2Ittreprttt Ct tdoc `/=`tt< Don't try to remember the name of this type — use theȾ?t [`Token!`] macro instead.tt [`Token!`]: crate::tokenοt#Att3##2 tspanst ;ttdocttt hiddentttallowttt non_snake_casett #AS##tCttttt tԽC ttHt3tttAttHt3tHttspanstt9t#AA9tt #A##9ttcfgttt featurett clone-impls ttAA9zttcfgttt featurett clone-impls tt#A Aselft 9Ett #AA#t#1Ivvreprvvv Cv vdoc `$`vv< Don't try to remember the name of this type — use theȾ?v [`Token!`] macro instead.vv [`Token!`]: crate::tokenοv#Avv3##1 vspansv ;vvdocvvv hiddenvvvallowvvv non_snake_casevv #AS##v9vvvvv v9 vvHv3vvvAvvHv3vHvvspansvv9v#AA9vv #A##9vvcfgvvv featurevv clone-impls vvAA9zvvcfgvvv featurevv clone-impls vv#A Aselfv 9Evv #AA#v#9ֹw##AA9ww##selfw 9vww #A A#w#9w#AAselfw 9λwѻ w # A D#ۻw#1ߚIyyrepryyy Cy ydoc `.`yy< Don't try to remember the name of this type — use theȾ?y [`Token!`] macro instead.yy [`Token!`]: crate::tokenοy#yy3##1 yߚspansy ;yydocyyy hiddenyyyallowyyy non_snake_caseyy #S##y9yyyyy y9 yyHy3yyyyyHy3yHyyspansyy9y#9yy ###9yycfgyyy featureyy clone-impls yy9zyycfgyyy featureyy clone-impls yy# selfy 9Eyy #A#y#9ֹz##9zz##selfz 9vzz #A #z#9z#selfz 9λzѻ z #  D#ۻz#2I||repr||| C| |doc `..`||< Don't try to remember the name of this type — use theȾ?| [`Token!`] macro instead.|| [`Token!`]: crate::tokenο|#A||3##2 |spans| ;||doc||| hidden|||allow||| non_snake_case|| #AS##|C||||| |ԽC ||H|3|||A||H|3|H||spans||9|#AA9|| #A##9||cfg||| feature|| clone-impls ||AA9z||cfg||| feature|| clone-impls ||#A Aself| 9E|| #AA#|#3ɛɛɛɛɛɛɛěI~~repr~~~ C~ ~ћ docћ ћ  `...`ћ ~~< Don't try to remember the name of this type — use theȾ?~ [`Token!`] macro instead.~~ [`Token!`]: crate::tokenο~#~~##3ɛɛɛɛɛɛɛ ~ěspans~ ;~~doc~~~ hidden~~~allow~~~ non_snake_case~~ #S##~~~~~~ ~  ~~H~~~~~~H~~H~~spans~~9~#9~~ ###9~~cfg~~~ feature~~ clone-impls ~~9z~~cfg~~~ feature~~ clone-impls ~~# self~ 9E~~ ##~#3Irepr C  doc   `..=` < Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο#A##3 spans ;doc hiddenallow non_snake_case #AS##E ݆E HAHHspans9#AA9 #A##9cfg feature clone-impls AA9zcfg feature clone-impls #A Aself 9E #AA##1Irepr C doc `=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο#3##1 spans ;doc hiddenallow non_snake_case #S##9 9 H3H3Hspans9$9 $$$9cfg feature clone-impls 9zcfg feature clone-impls $ self 9E $B$$9ֹ$$9$$self 9v $B $$9$self 9λѻ  $  E$ۻ$2ޜIrepr C doc `==`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$B3$$2 ޜspans ;doc hiddenallow non_snake_case $BS$$C ԽC H3BH3Hspans9$BB9 $B$$9cfg feature clone-impls BB9zcfg feature clone-impls $B Bself 9E $ՆBB$$2Irepr C doc `>=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$B3$$2 spans ;doc hiddenallow non_snake_case $BS$$C ԽC H3BH3Hspans9$BB9 $B$$9cfg feature clone-impls BB9zcfg feature clone-impls $B Bself 9E $BB$$1ǝǝǝǝǝǝǝĝIrepr C ѝdocѝѝ `>`ѝ< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$ݒB3$$1ǝǝǝǝǝǝǝ ĝspans ;doc hiddenallow non_snake_case $ݒBS$$9 9 H3ݒBH3Hspans9$ݒBݒB9 $ݒB$$9cfg feature clone-impls ݒBݒB9zcfg feature clone-impls $ݒB ݒBself 9E $BݒB$$9ֹ$$ݒBݒB9$$self 9v $B ݒB$$9$ݒBݒBself 9λѻ  $ ݒB E$ۻ$2Irepr C doc `<=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$B3$$2 spans ;doc hiddenallow non_snake_case $BS$$C ԽC H3BH3Hspans9$BB9 $B$$9cfg feature clone-impls BB9zcfg feature clone-impls $B Bself 9E $ЙBB$$1Irepr C doc `<`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$B3$$1 spans ;doc hiddenallow non_snake_case $BS$$9 9 H3BH3Hspans9$BB9 $B$$9cfg feature clone-impls BB9zcfg feature clone-impls $B Bself 9E $BB$$9ֹ$$BB9$$self 9v $B B$$9$BBself 9λѻ  $ B E$ۻ$2۞Irepr C doc `*=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$إB3$$2 ۞spans ;doc hiddenallow non_snake_case $إBS$$C ԽC H3إBH3Hspans9$إBإB9 $إB$$9cfg feature clone-impls إBإB9zcfg feature clone-impls $إB إBself 9E $BإB$$2Irepr C doc `!=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$B3$$2 spans ;doc hiddenallow non_snake_case $BS$$C ԽC H3BH3Hspans9$BB9 $B$$9cfg feature clone-impls BB9zcfg feature clone-impls $B Bself 9E $ˬBB$$1ğğğğğğğIrepr C ΟdocΟΟ `|`Ο< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$)3$$1ğğğğğğğ spans ;doc hiddenallow non_snake_case $)S$$9 9 H3)H3Hspans9$))9 $)$$9cfg feature clone-impls ))9zcfg feature clone-impls $) )self 9E $B)$$9ֹ$$))9$$self 9v $B )$$9$))self 9λѻ  $ ) F$ۻ$2Irepr C doc `|=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο$ѸB3$$2 spans ;doc hiddenallow non_snake_case $ѸBS$$C ԽC H3ѸBH3Hspans9%ѸBѸB9 %ѸB%%9cfg feature clone-impls ѸBѸB9zcfg feature clone-impls %ѸB ѸBself 9E %BѸB%%2Irepr C doc `||`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%2 spans ;doc hiddenallow non_snake_case %BS%%C ԽC H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %ĿBB%%1ߠߠߠߠߠߠߠ٠Irepr C doc `#`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%1ߠߠߠߠߠߠߠ ٠spans ;doc hiddenallow non_snake_case %BS%%9 9 H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%9ֹ%%BB9%%self 9v %B B%%9%BBself 9λѻ  % B F%ۻ%1Irepr C doc `?`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%1 spans ;doc hiddenallow non_snake_case %BS%%9 9 H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%9ֹ%%BB9%%self 9v %B B%%9%BBself 9λѻ  % B F%ۻ%2ġġġġġġġIrepr C ʡdocʡʡ `->`ʡ< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%2ġġġġġġġ spans ;doc hiddenallow non_snake_case %BS%%C ԽC H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%2Irepr C doc `<-`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%2 spans ;doc hiddenallow non_snake_case %BS%%C ԽC H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%1Irepr C doc `%`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%1 spans ;doc hiddenallow non_snake_case %BS%%9 9 H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%9ֹ%%BB9%%self 9v %B B%%9%BBself 9λѻ  % B F%ۻ%2ۢۢۢۢۢۢۢբIrepr C doc `%=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%2ۢۢۢۢۢۢۢ բspans ;doc hiddenallow non_snake_case %BS%%C ԽC H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%2Irepr C doc `=>`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%B3%%2 spans ;doc hiddenallow non_snake_case %BS%%C ԽC H3BH3Hspans9%BB9 %B%%9cfg feature clone-impls BB9zcfg feature clone-impls %B Bself 9E %BB%%1Irepr C ȣdocȣȣ `;`ȣ< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο%3%%1 spans ;doc hiddenallow non_snake_case %S%%9 9 H3H3Hspans9%9 %%%9cfg feature clone-impls 9zcfg feature clone-impls & self 9E &B%%9ֹ&&9&&self 9v &B &&9&self 9λѻ  &  G&ۻ&2Irepr C doc `<<`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&B3&&2 spans ;doc hiddenallow non_snake_case &BS&&C ԽC H3BH3Hspans9&BB9 &B&&9cfg feature clone-impls BB9zcfg feature clone-impls &B Bself 9E &BB&&3Irepr C  doc   `<<=` < Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&B&&3 spans ;doc hiddenallow non_snake_case &BS&&E ݆E HBHHspans9&BB9 &B&&9cfg feature clone-impls BB9zcfg feature clone-impls &B Bself 9E &BB&&2ؤؤؤؤؤؤؤԤIrepr C doc `>>`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&C3&&2ؤؤؤؤؤؤؤ Ԥspans ;doc hiddenallow non_snake_case &CS&&C ԽC H3CH3Hspans9&CC9 &C&&9cfg feature clone-impls CC9zcfg feature clone-impls &C Cself 9E &CC&&3Irepr C  doc   `>>=` < Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&C&&3 spans ;doc hiddenallow non_snake_case &CS&&E ݆E HCHHspans9&CC9 &C&&9cfg feature clone-impls CC9zcfg feature clone-impls &C Cself 9E &CC&&1Irepr C ȥdocȥȥ `*`ȥ< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&C3&&1 spans ;doc hiddenallow non_snake_case &CS&&9 9 H3CH3Hspans9&CC9 &C&&9cfg feature clone-impls CC9zcfg feature clone-impls &C Cself 9E &בCC&&9ֹ&&CC9&&self 9v &בC C&&9&CCself 9λѻ  & C G&ۻ&1Irepr C doc `-`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&C3&&1 spans ;doc hiddenallow non_snake_case &CS&&9 9 H3CH3Hspans9&CC9 &C&&9cfg feature clone-impls CC9zcfg feature clone-impls &C Cself 9E &CC&&9ֹ&&CC9&&self 9v &C C&&9&CCself 9λѻ  & C G&ۻ&2Irepr C doc `-=`< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&ߝC3&&2 spans ;doc hiddenallow non_snake_case &ߝCS&&C ԽC H3ߝCH3Hspans9&ߝCߝC9 &ߝC&&9cfg feature clone-impls ߝCߝC9zcfg feature clone-impls &ߝC ߝCself 9E &CߝC&&1ئئئئئئئҦIrepr C ߦdocߦߦ `~`ߦ< Don't try to remember the name of this type — use theȾ? [`Token!`] macro instead. [`Token!`]: crate::tokenο&C3&&1ئئئئئئئ Ҧspans ;doc hiddenallow non_snake_case &CS&&9 9 H3CH3Hspans9&CC9 &C&&9cfg feature clone-impls CC9zcfg feature clone-impls &C Cself 9E &ҤCC&&9ֹ&&CC9&&self 9v &ҤC C&&9&CCself 9λѻ  & C G&ۻ&@ doc   `{...}` &&&&1 span 7doc hiddenallow non_snake_case &S&&9 9 III3IIspan9&9 &&&9cfg feature clone-impls 9zcfg feature clone-impls & self 9E & &&9'selftokensf cfg featureprinting  'G&F''&ɿ -{    - - VV  - selftokensf9!cfg featureparsing _ҧ@ߧ docߧ ߧ  `[...]`ߧ ''''1 ҧspan 7doc hiddenallow non_snake_case 'S''9 9 III3IIspan9'9 '''9cfg feature clone-impls 9zcfg feature clone-impls ' self 9E ' ''9'selftokensf cfg featureprinting  'H'F'''ɿ -[    - - VV  - selftokensf9!cfg featureparsing _@ doc   `(...)` ''''1 span 7doc hiddenallow non_snake_case 'S''9 9 III3IIspan9'9 '''9cfg feature clone-impls 9zcfg feature clone-impls ' self 9E ' ''9'selftokensf cfg featureprinting  'H'F'''ɿ -(    - - VV  - selftokensf9!cfg featureparsing _@˨doc˨˨ None-delimited group˨''''1 span 7doc hiddenallow non_snake_case 'S''9 9 III3IIspan9'9 '''9cfg feature clone-impls 9zcfg feature clone-impls ' self 9E ' ''9'selftokensf cfg featureprinting  'H'F'''ɿ -     - - VV  - selftokensf9!cfg featureparsing _'>token r '>'''>token r '>'''?token r '?''';token r ';'''<token r '<'' -doc--* An attribute like `#[repr(transparent)]`.-ĒdocĒĒĒ̒Pdoc̒P̒PM *This type is available only if Syn is built with the `"derive"` or `"full"`̒P doc   feature.* docdoc
ȓdocȓȓȓГ docГ Г  # SyntaxГ doc%doc%%" Rust has six types of attributes.%docKdocKKH - Outer attributes like `#[repr(transparent)]`. These appear outside orK)doc))& in front of the item they describe.)JdocJJG - Inner attributes like `#![feature(proc_macro)]`. These appear insideJ2doc22/ of the item they describe, usually a module.2.doc..+ - Outer doc comments like `/// # Example`..Җ9docҖ9Җ96 - Inner doc comments like `//! Please file an issue`.Җ9.doc..+ - Outer block comments `/** # Example */`..×9doc×9×96 - Inner block comments `/*! Please file an issue */`.×9docLdocLLI The `style` field of type `AttrStyle` distinguishes whether an attributeLژFdocژFژFC is outer or inner. Doc comments and block comments are promoted toژFHdocHHE attributes, as this is how they are processed by the compiler and byHdoc `macro_rules!` macros.docJdocJJG The `path` field gives the possibly colon-delimited path against whichJGdocGGD the attribute is resolved. It is equal to `"doc"` for desugared docGKdocKKH comments. The `tokens` field contains the rest of the attribute body asK doc   tokens. doc doc   ```text 5doc552 #[derive(Copy)] #[crate::precondition x < 5]54doc441 ^^^^^^~~~~~~ ^^^^^^^^^^^^^^^^^^^ ~~~~~45doc552 path tokens path tokens5ٝdocٝٝ ```ٝdocdoc
doc&doc&&# # Parsing from tokens to Attribute&docGdocGGD This type does not implement the [`Parse`] trait and thus cannot beG:doc::7 parsed directly by [`ParseStream::parse`]. Instead use:>doc>>; [`ParseStream::call`] with one of the two parser functions>IdocIIF [`Attribute::parse_outer`] or [`Attribute::parse_inner`] depending onIѠdocѠѠ which you intend to parse.Ѡdocdoc [`Parse`]: parse::Parse5doc552 [`ParseStream::parse`]: parse::ParseBuffer::parse5֡3doc֡3֡30 [`ParseStream::call`]: parse::ParseBuffer::call֡3docdoc ```/doc//, use syn::{Attribute, Ident, Result, Token};/֢)doc֢)֢)& use syn::parse::{Parse, ParseStream};֢)doc,doc,,) // Parses a unit struct with attributes.,doc //ȣdocȣȣ // #[path = "s.tmpl"]ȣdoc // struct S;doc struct UnitStruct {doc attrs: Vec,¤%doc¤%¤%" struct_token: Token![struct],¤%doc name: Ident,doc semi_token: Token![;],doc }docdoc impl Parse for UnitStruct {ޥ6docޥ6ޥ63 fn parse(input: ParseStream) -> Result {ޥ6doc Ok(UnitStruct {;doc;;8 attrs: input.call(Attribute::parse_outer)?,;-doc--* struct_token: input.parse()?,-%doc%%" name: input.parse()?,%է+docէ+է+( semi_token: input.parse()?,է+doc }) doc   } doc }doc ```docĨdocĨĨ


Ĩبdocببب4doc441 # Parsing from Attribute to structured arguments4docGdocGGD The grammar of attributes in Rust is very flexible, which makes theGKdocKKH syntax tree not that useful on its own. In particular, arguments of theKHdocHHE attribute are held in an arbitrary `tokens: TokenStream`. Macros areHFdocFFC expected to check the `path` of the attribute, decide whether theyFիKdocիKիKH recognize it, and then parse the remaining tokens according to whateverիK<doc<<9 grammar they wish to require for that kind of attribute.<docBdocBB? If the attribute you are parsing is expected to conform to theBFdocFFC conventional structured form of attribute, use [`parse_meta()`] toFHdocHHE obtain that structured representation. If the attribute follows someHͮIdocͮIͮIF other grammar of its own, use [`parse_args()`] to parse that into theͮIdoc expected data structure.docį+docį+į+( [`parse_meta()`]: Attribute::parse_metaį++doc++( [`parse_args()`]: Attribute::parse_args+docdoc


docȰdocȰȰ # Doc commentsȰ߰doc߰߰߰HdocHHE The compiler transforms doc comments, such as `/// comment` and `/*!HLdocLLI comment */`, into attributes before macros are expanded. Each comment isLAdocAA> expanded into an attribute of the form `#[doc = r"comment"]`.A˲doc˲˲˲ӲFdocӲFӲFC As an example, the following `mod` items are expanded identically:ӲFdocdoc ```&doc&&# # use syn::{ItemMod, parse_quote};&ݳ%docݳ%ݳ%" let doc: ItemMod = parse_quote! {ݳ%$doc$$! /// Single line doc comments$doc /// We write so many!Ҵ docҴ Ҵ  /**Ҵ !doc!! * Multi-line comments...!doc * May span many lines doc   */ doc mod example {յ0docյ0յ0- //! Of course, they can be inner tooյ0+doc++( /*! And fit in a single line */+ doc   } ȶdocȶȶ };ȶӶ&docӶ&Ӷ&# let attr: ItemMod = parse_quote! {Ӷ&-doc--* #[doc = r" Single line doc comments"]-&doc&&# #[doc = r" We write so many!"]&۷doc۷۷ #[doc = r"۷!doc!! * Multi-line comments...!doc * May span many lines doc   "] ˸doc˸˸ mod example {˸:doc::7 #![doc = r" Of course, they can be inner too"]:3doc330 #![doc = r" And fit in a single line "]3ܹ docܹ ܹ  }ܹ doc };doc assert_eq!(doc, attr);doc ```''''' B'''''ϻ!ӻ '''''' IdocIIF Distinguishes between attributes that decorate an item and attributesI&doc&&# that are contained within an item.&docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* docdoc # Outer attributesdocdoc - `#[repr(transparent)]`doc - `/// # Example`#doc## - `/** Please file an issue */`#docdoc # Inner attributesdocdoc - `#![feature(proc_macro)]`doc - `//! # Example`#doc## - `/*! Please file an issue */`#''I  ߭A'''I'''I'''' '߭AI''' '߭AI''Inner߭AI߭A 3doc330 Content of a compile-time structured attribute.3docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* doc doc   ## Path doc0doc00- A meta path is like the `test` in `#[test]`.0doc doc   ## List doc@doc@@= A meta list is like the `derive(Copy)` in `#[derive(Copy)]`.@docdoc ## NameValuedoc=doc==: A name-value meta is like the `path = "..."` in `#[path ==doc "sys/windows.rs"]`.docdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.'''''''  ''' ' '''' ''' Path      'C A structured list within an attribute, like `derive(Copy, Clone)`.F' '''' '''List'C A name-value pair within an attribute, like `feature = "nightly"`.F' '''' ''' NameValue֠'eO '''֠'eO '''֠'eO ''''Mselftokensѝ֩٩  '''FdocFFC A structured list within an attribute, like `derive(Copy, Clone)`.FdocGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*''''' ''-'' FdocFFC A name-value pair within an attribute, like `feature = "nightly"`.FdocGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*''''''' '' -doc--* Element of a compile-time attribute list.-docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ''''''' C A structured meta item, like the `Copy` in `#[derive(Copy)]` whichF would be a nested `Meta::Path`.#' '''' ''' Meta      'B A Rust literal, like the `"new_name"` in `#[rename("new_name")]`.E' '''' '''Lit֠'eO '''֠'eO ''''Mselftokensѝ֩٩  ' ''doc An enum variant.docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ''''ی" Attributes tagged on the variant.%'' Name of the variant.'' Content stored in the variant."ѻ''+% Explicit discriminant: `Variant = 1`( '' 1doc11. Data stored within an enum variant or struct.1docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* docdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.'''ѻ  ׍''  ӎ'''D Named fields of a struct or struct variant such as `Point { x: f64,G y: f64 }`.' '׍ѻ''' '׍ѻ''Named׍ѻ׍'E Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.H' 'ӎѻ''' 'ӎѻ''Unnamedӎѻӎ', Unit struct or unit variant such as `None`./ѻ'''ѻ''֠'ѻѻ׍eO '׍ѻ''֠'ѻѻӎeO 'ӎѻ'''ѻMѻselftokensѝ֩٩  'Ƚ'' GdocGGD Named fields of a struct or struct variant such as `Point { x: f64,Gdoc y: f64 }`.docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*((׍ '''ܽ'' HdocHHE Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.HdocGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*((ӎ (()I(((doc((% A field of a struct or enum variant.(docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* (((((ܽ Attributes tagged on the field.#(( Visibility of the field.(( Name of the field, if any.' Fields of tuple structs have no names.*((" ((  Type of the field.(( :doc::7 The visibility level of an item: inherited or `pub` or:doc `pub(restricted)`.docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* docdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.((((  ((((  (((" A public visibility level: `pub`.%( (((( (((Public(# A crate-level visibility: `crate`.&( (((( (((Crate(; A visibility level restricted to some path: `pub(self)` or>8 `pub(super)` or `pub(crate)` or `pub(in some::module)`.;( (((( ((( Restricted( 6 An inherited visibility, which usually means private.9 ((( ((֠(eO (((֠(eO (((֠(eO ((((Mselftokensѝ֩٩  (Е(( %doc%%" A public visibility level: `pub`.%docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*( >((&doc&&# A crate-level visibility: `crate`.&docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*( ;(( >doc>>; A visibility level restricted to some path: `pub(self)` or>;doc;;8 `pub(super)` or `pub(crate)` or `pub(in some::module)`.;docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*(((( >(( (( =((U(( doc A Rust expression.docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`PRdocRRO feature, but most of the variants are not available unless "full" is enabled.*Rdocdoc # Syntax tree enumsdocLdocLLI This type is a syntax tree enum. In Syn this and other syntax tree enumsLEdocEEB are designed to be traversed using the following rebinding idiom.Edocdoc ```doc # use syn::Expr;doc #doc # fn example(expr: Expr) {'doc''$ # const IGNORE: &str = stringify! {'doc let expr: Expr = /* ... */;doc # };doc match expr {#doc## Expr::MethodCall(expr) => {#doc /* ... */ doc   } doc Expr::Cast(expr) => {doc /* ... */ doc   } doc Expr::If(expr) => {doc /* ... */ doc   } docdoc /* ... */doc # _ => {}doc # }doc # }doc ```docEdocEEB We begin with a variable `expr` of type `Expr` that has no fieldsEKdocKKH (because it is an enum), and by matching on it and rebinding a variableKKdocKKH with the same name `expr` we effectively imbue our variable with all ofKLdocLLI the data fields provided by the variant that it turned out to be. So forLLdocLLI example above if we ended up in the `MethodCall` case then we get to useLLdocLLI `expr.receiver`, `expr.args` etc; if we ended up in the `If` case we getL?doc??< to use `expr.cond`, `expr.then_branch`, `expr.else_branch`.?docIdocIIF This approach avoids repeating the variant names twice on every line.Idocdoc ```&doc&&# # use syn::{Expr, ExprMethodCall};&doc #doc # fn example(expr: Expr) {,doc,,) // Repetitive; recommend not doing this.,doc match expr {BdocBB? Expr::MethodCall(ExprMethodCall { method, args, .. }) => {Bdoc # } doc   # _ => {} doc # }doc # }doc ```docLdocLLI In general, the name to which a syntax tree enum variant is bound shouldL>doc>>; be a suitable name for the complete syntax tree enum type.>docdoc ```!doc!! # use syn::{Expr, ExprField};!doc #+doc++( # fn example(discriminant: ExprField) {+GdocGGD // Binding is called `base` which is the name I would use if I wereG:doc::7 // assigning `*discriminant.base` without an `if let`.:3doc330 if let Expr::Tuple(base) = *discriminant.base {3doc # }doc # }doc ```docJdocJJG A sign that you may not be choosing the right variable names is if youJ;doc;‚;8 see names getting repeated in your code, like accessing;4doc4Â41 `receiver.receiver` or `pat.pat` or `cond.cond`.4((((((((((((((((((((((((((((())))))))))))  ((  ш((  ((  ((  ((  ((  ((((  ((((((  ((  ((  ((  ((  ((((  ((((((((  ((  ((((  ((((  ((  ((  ((  ((  ((((  ((  ((((  ((  ((  ((  ((  ((Ъ,(((, A slice literal expression: `[a, b, c, d]`./( (((( (((Array(+ An assignment expression: `a = compute()`..( (ш((( (ш((Assignшш(2 A compound assignment expression: `counter += 1`.5( (((( (((AssignOp(! An async block: `async { ... }`.$( (((( (((Async(" An await expression: `fut.await`.%( (((( (((Await(& A binary operation: `a + b`, `a * b`.)( (((( (((Binary( A blocked scope: `{ ... }`.( (((( (((Block(  A box expression: `box f`.( (((( ((( Box      (; A `break`, with an optional label to break and an optional> expression.( (((( (((Break (, A function call expression: `invoke(a, b)`./( ((( ( (((Call   (! A cast expression: `foo as f64`.$( ((( ( (((Cast   (& A closure expression: `|a, b| a + b`.)( ((( ( (((Closure   (& A `continue`, with an optional label.)( ((( ( (((Continue   (A Access of a named struct field (`obj.k`) or unnamed tuple structD field (`obj.0`).( ((( ( (((Field  (' A for loop: `for pat in expr { ... }`.*( (((( (((ForLoop(5 An expression contained within invisible delimiters.8E This variant is important for faithfully representing the precedenceH= of expressions and is related to `None`-delimited spans in a@ `TokenStream`.( (((( (((Group( C An `if` expression with an optional `else` block: `if expr { ... }F else { ... }`.< The `else` branch expression may only be an `If` or `Block`?6 expression, not any of the other types of expression.9( (((( ((( If      (5 A square bracketed indexing expression: `vector[2]`.8( (((( (((Index( $ A `let` guard: `let Some(x) = opt`.'( (((( ((( Let      ( 3 A literal in place of an expression: `1`, `"foo"`.6( (((( ((( Lit      ($ Conditionless loop: `loop { ... }`.'( (((( (((Loop(3 A macro invocation expression: `format!("{}", q)`.6( (((( (((Macro(? A `match` expression: `match n { Some(n) => {}, None => {} }`.B( (((( (((Match(. A method call expression: `x.foo::(a, b)`.1( (((( ((( MethodCall(' A parenthesized expression: `(a + b)`.*( (((( (((Paren(< A path like `std::mem::replace` possibly containing generic?& parameters and a qualified self-type.)3 A plain identifier like `x` is a path of length 1.6( (((( (((Path(; A range expression: `1..2`, `1..`, `..2`, `1..=2`, `..=2`.>( (((( (((Range(+ A referencing operation: `&a` or `&mut a`..( (((( ((( Reference(D An array literal constructed from one repeated element: `[0u8; N]`.G( (((( (((Repeat)3 A `return`, with an optional value to be returned.6) )(() )((Return)5 A struct literal expression: `Point { x: 1, y: 1 }`.8D The `rest` provides the value of the remaining fields as in `S { a:G 1, b: 1, ..rest }`.) )(() )((Struct)  A try-expression: `expr?`.) )(() )(( Try       ) A try block: `try { ... }`.) )(( ) )((TryBlock  !)$ A tuple expression: `(a, b, c, d)`.') )((!) )((Tuple!!")* A type ascription expression: `foo: f64`.-) )((") )((Type""#) A unary operation: `!x`, `*x`.") )((#) )((Unary##$)# An unsafe block: `unsafe { ... }`.&) )(($) )((Unsafe$$%)6 Tokens in expression position not interpreted by Syn.9) )((%) )((Verbatim%%&)$ A while loop: `while expr { ... }`.') )((&) )((While&&')" A yield expression: `yield expr`.%) )((') )((Yield''() ˆdocˆΆՆ hiddenφɆ) )Ъ,((() )Ъ,(( __TestExhaustive(Ъ, (   Ъ,  ֠)eO )))֠)шeO )ш))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO )))֠)eO ))))Mselftokensѝ֩٩  ))) ԋcfgԋ׋ feature؋fullҋ/doc//, A slice literal expression: `[a, b, c, d]`./чdocчччهLdocهLهLI *This type is available only if Syn is built with the `"full"` feature.*هL)))))! ))҉&։)) ԋcfgԋ׋ feature؋fullҋ.doc..+ An assignment expression: `a = compute()`..ȊdocȊȊȊЊLdocЊLЊLI *This type is available only if Syn is built with the `"full"` feature.*ЊL))))ш))))))݌)) ԋcfgԋՎ׋ feature؋fullҋ5doc5֎52 A compound assignment expression: `counter += 1`.5ȍdocȍ׎ȍȍЍLdocЍL؎ЍLI *This type is available only if Syn is built with the `"full"` feature.*ЍL))**)))) ))Տُ))ȑ ԋcfgԋ׋ feature؋fullҋ$doc$$! An async block: `async { ... }`.$docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L****** ˥:**!=**ؒܒ%**Ȕ ԋcfgԋ׋ feature؋fullҋ%doc%%" An await expression: `fut.await`.%docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L******** **ĕȕ :** )doc))& A binary operation: `a + b`, `a * b`.)docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*********ɘ ͘****Κ ԋcfgԋ׋ feature؋fullҋdoc A blocked scope: `{ ... }`.docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L*******%**ԋcfgԋƏ׋ feature؋fullҋڛdocڛǏڛ A box expression: `box f`.ڛdocȏLdocLɏLI *This type is available only if Syn is built with the `"full"` feature.*L*****ѝ՝ :**** ԋcfgԋڏ׋ feature؋fullҋ>doc>ۏ>; A `break`, with an optional label to break and an optional>doc܏ expression.docݏLdocLޏLI *This type is available only if Syn is built with the `"full"` feature.*L******Ҡ֠ :**Ӯ**)**ӣס/docס/ס/, A function call expression: `invoke(a, b)`.ס/docGdocGGD *This type is available only if Syn is built with the `"derive"` orGߢdocߢߢ `"full"` feature.*ߢ******** **ͤ%ѤK**$doc$$! A cast expression: `foo as f64`.$docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*********ӧק:**U** ԋcfgԋ׋ feature؋fullҋ)doc))& A closure expression: `|a, b| a + b`.)ѨdocѨѨѨ٨Ldoc٨L٨LI *This type is available only if Syn is built with the `"full"` feature.*٨L***********$ ˥:**ת&۪ ӄ?**!K** )**ԫ&ث** )**'**Ƭʬ** ԋcfgԋ׋ feature؋fullҋ)doc))& A `continue`, with an optional label.)docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L***ڮޮ**$;**K** DdocDDA Access of a named struct field (`obj.k`) or unnamed tuple structDdoc field (`obj.0`).ŰdocŰŰŰͰLdocͰLͰLI *This type is available only if Syn is built with the `"full"` feature.*ͰL********˲ϲ **** ԋcfgԋ׋ feature؋fullҋ*doc**' A for loop: `for pat in expr { ... }`.*˳doc˳˳˳ӳLdocӳLӳLI *This type is available only if Syn is built with the `"full"` feature.*ӳL***********ŵɵ <** **=****¶%** ԋcfgԋ׋ feature؋fullҋ8doc885 An expression contained within invisible delimiters.8docHdocHHE This variant is important for faithfully representing the precedenceH@doc@@= of expressions and is related to `None`-delimited spans in a@doc `TokenStream`.ظdocظظظLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L***** **պٺ**ԋcfgԋˑ׋ feature؋fullҋFdocF̑FC An `if` expression with an optional `else` block: `if expr { ... }Fлdocл͑л else { ... }`.лdocΑ?doc?ϑ?< The `else` branch expression may only be an `If` or `Block`?9doc9Б96 expression, not any of the other types of expression.9docёLdocLґLI *This type is available only if Syn is built with the `"full"` feature.*L*******ľȾ<**** %**2 ** 8doc885 A square bracketed indexing expression: `vector[2]`.8docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*********! ****ԋcfgԋ׋ feature؋fullҋ'doc''$ A `let` guard: `let Some(x) = opt`.'docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L******* =** ******6doc663 A literal in place of an expression: `1`, `"foo"`.6docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.***** **ԋcfgԋ׋ feature؋fullҋ'doc''$ Conditionless loop: `loop { ... }`.'docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L******** =**%** ԋcfgԋʒ׋ feature؋fullҋ6doc6˒63 A macro invocation expression: `format!("{}", q)`.6doc̒LdocL͒LI *This type is available only if Syn is built with the `"full"` feature.*L****!** ԋcfgԋג׋ feature؋fullҋBdocBؒB? A `match` expression: `match n { Some(n) => {}, None => {} }`.BdocْLdocLڒLI *This type is available only if Syn is built with the `"full"` feature.*L******* =**** **#**ԋcfgԋ׋ feature؋fullҋ1doc11. A method call expression: `x.foo::(a, b)`.1docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L*********** ****& ** **%K** *doc**' A parenthesized expression: `(a + b)`.*docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L***** ****?doc??< A path like `std::mem::replace` possibly containing generic?)doc))& parameters and a qualified self-type.)doc6doc663 A plain identifier like `x` is a path of length 1.6docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.******)**** ԋcfgԋē׋ feature؋fullҋ>doc>œ>; A range expression: `1..2`, `1..`, `..2`, `1..=2`, `..=2`.>docƓLdocLǓLI *This type is available only if Syn is built with the `"full"` feature.*L******)****)** ԋcfgԋߓ׋ feature؋fullҋ.doc..+ A referencing operation: `&a` or `&mut a`..docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L*++++** A**7**# =**** ԋcfgԋ׋ feature؋fullҋGdocGGD An array literal constructed from one repeated element: `[0u8; N]`.GdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L+++++++! ++++ ++++ ԋcfgԋ׋ feature؋fullҋ6doc663 A `return`, with an optional value to be returned.6docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L+++++  >++)++ ԋcfgԋ׋ feature؋fullҋ8doc885 A struct literal expression: `Point { x: 1, y: 1 }`.8docGdocGGD The `rest` provides the value of the remaining fields as in `S { a:Gdoc 1, b: 1, ..rest }`.docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L++++++++++ ++-++" A++)++ԋcfgԋ۔׋ feature؋fullҋdocܔ A try-expression: `expr?`.docݔLdocLޔLI *This type is available only if Syn is built with the `"full"` feature.*L+++++++B++ ԋcfgԋ׋ feature؋fullҋdoc A try block: `try { ... }`.docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L+++++ ?++%++ ԋcfgԋ׋ feature؋fullҋ'doc''$ A tuple expression: `(a, b, c, d)`.'docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L+++++ ++&K++ԋcfgԋ׋ feature؋fullҋ-doc--* A type ascription expression: `foo: f64`.-docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L++++++++ ++K++ "doc"" A unary operation: `!x`, `*x`."docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*+++++ $++++ ԋcfgԋÕ׋ feature؋fullҋ&doc&ĕ&# An unsafe block: `unsafe { ... }`.&docŕLdocLƕLI *This type is available only if Syn is built with the `"full"` feature.*L+++++  ++%++ƀ ԋcfgԋՕ׋ feature؋fullҋ'doc'֕'$ A while loop: `while expr { ... }`.'docוLdocLؕLI *This type is available only if Syn is built with the `"full"` feature.*L+++++  ++  ++  @++́ с ++  %++ك ԋcfgԋ׋ feature؋fullҋ %doc % %" A yield expression: `yield expr`. % doc   Ȃ LdocȂ LȂ LI *This type is available only if Syn is built with the `"full"` feature.*Ȃ L+++  ++  @++ „ )++   Hdoc H HE A struct or tuple struct field accessed in a struct literal or field H doc   expression. ͘ doc͘ ͘ ͘ ՘ Pdoc՘ P՘ PM *This type is available only if Syn is built with the `"derive"` or `"full"`՘ P doc   feature.* ++ Ӛ Ӛ ++  +++͚  A named field like `self.x`. +͚  ++++͚ +++͚ Named͚ ͚ ͚ ͚ ͚ ͚ +  An unnamed field like `self.0`. #+  ++++  +++ Unnamed        /doc / /, The index of an unnamed tuple struct field. / doc    Pdoc P PM *This type is available only if Syn is built with the `"derive"` or `"full"` P doc   feature.* ++  ++  ++  @doc @ @= The `::<>` explicit type parameters passed to a method call: @ doc –  `parse::()`.  doc Ö   Ldoc LĖ LI *This type is available only if Syn is built with the `"full"` feature.* L++++  *++Ӱ װ B++ 6 ++  ݒB++Գ   9doc 9ޖ 96 An individual generic argument to a method, like `T`. 9 doc ߖ  Ų LdocŲ LŲ LI *This type is available only if Syn is built with the `"full"` feature.*Ų L++  ++  +++  A type argument. +  ++++ +++ Type      + / A const expression. Must be inside of a block. 2 A NOTE: Identity expressions are represented as Type arguments, as D* they are indistinguishable syntactically. -+  ++++ +++ Const       +doc + +( A field-value pair in a struct literal. + doc    Ldoc L LI *This type is available only if Syn is built with the `"full"` feature.* L++++  Attributes tagged on the field. # ++  Name or index of the field.޸  ++ "= The colon in `Struct { x: x }`. If written in shorthand like @# `Struct { x }`, there is no colon. & ++  Value of the field.Ⱥ  ++  4doc 4 41 A lifetime labeling a `for`, `while`, or `loop`. 4 doc    Ldoc L LI *This type is available only if Syn is built with the `"full"` feature.* L++  Ӯ++  ++  Bdoc B B? One arm of a `match` expression: `0...10 => { return true; }`. B doc   ɾ docɾ ɾ  As in:ɾ ؾ docؾ ؾ ؾ  doc   ```  doc   # fn f() -> bool {  doc   # let n = 0;  doc   match n {  doc   0...10 => { ʿ docʿ ʿ  return true;ʿ  doc   }  doc   // ...  doc   # _ => {}  doc   }  doc   # false  doc   # }  doc   ```  doc    Ldoc L LI *This type is available only if Syn is built with the `"full"` feature.* L++++++  ++ ++ * <++  B++  ++  ++  3doc 3Ǘ 30 Limit types of a range, inclusive or exclusive. 3 doc ȗ   Ldoc Lɗ LI *This type is available only if Syn is built with the `"full"` feature.* L++ A++ A+++ 2 Inclusive at the beginning, exclusive at the end. 5+  +A+++  +A++ HalfOpenA    A  + $ Inclusive at the beginning and end. '+  +A+++  +A++ ClosedA    A   (L(allow(ٗ(( non_camel_case_types((++(!(++1((((((( ( span( (z(doc((( hidden(((allow((( dead_code( ( non_snake_case((# +__SMM__S++M(M3(:(1(.(((.(( M3(.(((((1(_(((((M(M((_(1(_3(.(_M((_(span(((+MM(( +M++(++MiMcursor( (( ++(+(u( +++(+MMinput( (( +M+( +(+MMMself(tokens(((  + M+(+(*MM̀)~)allow)Ù)€) clippy)) expl_impl_clone_on_copy)))+M Mself) )=) +ӰMM+)+ ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3+input     ++ + ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3+input     ++ + ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3+input     ++ + ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3+input     ++ + ܌ cfg܌ âߌ   all    feature  full   feature  printing ڌ 3+input     ++ + ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3,input     ,, , ܌ cfg܌ ǣߌ   all    feature  full   feature  printing ڌ 3,шшinput     ,ш, , ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3,input     ,, , ܌ cfg܌ ˤߌ   all    feature  full   feature  printing ڌ 3,input     ,, , ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3,input     ,, , ܌ cfg܌ ϥߌ   all    feature  full   feature  printing ڌ 3,input     ,, , ܌ cfg܌ ߌ   all    feature  full   feature  printing ڌ 3,input     ,, ,JdocJJG Lifetimes and type parameters attached to a declaration of a function,Jdoc enum, trait, etc.docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ,,,,B,,/,,ݒB,,% ,, LdocLLI A generic type parameter, lifetime, or const generic: `T: Into`,L!doc!! `'a: 'b`, `const LEN: usize`.!docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* docdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.,,,  ,,  ,,  ,,,- A generic type parameter: `T: Into`.0, ,,,, ,,,Type,+ A lifetime definition: `'a: 'b + 'c + 'd`.., ,,,, ,,,Lifetime,2 A const generic parameter: `const LENGTH: usize`.5, ,,,, ,,,Const֠,eO ,,,֠,eO ,,,֠,eO ,,,,Mselftokensѝ֩٩  , ,, 0doc00- A generic type parameter: `T: Into`.0docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*,,,,,,,,,," ,,1,,,,,, .doc.ȫ.+ A lifetime definition: `'a: 'b + 'c + 'd`..docɫGdocGʫGD *This type is available only if Syn is built with the `"derive"` orGdoc˫ `"full"` feature.*,,,,,,Ӯ,," ,,+Ӯ,, 5doc552 A const generic parameter: `const LENGTH: usize`.5docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*,,,,,,,,, Ս;,,,, ,, ,,M,,,,vصcfgص۵ featureܵ clone-impls ֵ,,'a M'a,,self C ,,'a MM,,vصcfgص۵ featureܵ clone-impls ֵ,,'a M'a,,self C ,,'a MM,,vصcfgص۵ featureܵ clone-impls ֵ,,'a M'a,,self C ,,'a MM,,0doc0Ѭ0- A set of bound lifetimes: `for<'a, 'b, 'c>`.0docҬPdocPӬPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc Ԭ  feature.* ,,,,­ <,,B,,1 ,,ݒB,, <doc<<9 A trait or lifetime used as a bound on a type parameter.<docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ,,  ,,Ӯ,,,, ,,,, ,,,Trait,, ,Ӯ,,, ,Ӯ,,LifetimeӮӮ֠,eO ,,,֠,ӮeO ,Ӯ,,,Mselftokensѝ֩٩  , ,, 0doc0ڭ0- A trait used as a bound on a type parameter.0docۭPdocPܭPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc ݭ  feature.* ,,,,% ,, ,,%& The `for<'a>` in `for<'a> Foo<&'a T>`) ,,) The `Foo<&'a T>` in `for<'a> Foo<&'a T>`,,, CdocCC@ A modifier on a trait bound, currently only used for the `?` inC doc   `?Sized`. docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ,,  B,,,,,,,,,, ,B,,, ,B,,MaybeBB DdocDDA A `where` clause in a definition: `where T: Deserialize<'de>, D:D doc   'static`. docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ,, @,,5 ,, BdocBB? A single predicate in a `where` clause: `T: Deserialize<'de>`.BdocPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* docdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.,,,  ,,,,  ,,,D A type predicate in a `where` clause: `for<'c> Foo<'c>: Trait<'c>`.G, ,,,, ,,,Type,9 A lifetime predicate in a `where` clause: `'a: 'b + 'c`.<, ,,,, ,,,Lifetime,9 An equality predicate in a `where` clause (unsupported).<, ,,,, ,,,Eq֠,eO ,,,֠,eO ,,,֠,eO ,,,,Mselftokensѝ֩٩  , ,, GdocGGD A type predicate in a `where` clause: `for<'c> Foo<'c>: Trait<'c>`.GdocGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*,,,,%# Any lifetimes from a `for` binding& ,, The type being bounded ,, ,,11 Trait and lifetime bounds (`Clone+Send+'static`)4,,<doc<<9 A lifetime predicate in a `where` clause: `'a: 'b + 'c`.<docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc¯ `"full"` feature.*,,,Ӯ,, ,,+M,, <doc<կ<9 An equality predicate in a `where` clause (unsupported).<doc֯GdocGׯGD *This type is available only if Syn is built with the `"derive"` orGdocد `"full"` feature.*,,-,,,,,, @doc@@= Things that can appear directly inside of a module or scope.@docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Ldocdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.------------------  ----------ٗ--  --  --€--  --  ˞--  ------  ----  --Ъ,---+ A constant item: `const MAX: u16 = 65535`..- ---- ---Const-5 An enum definition: `enum Foo { A(A), B(B) }`.8- ---- ---Enum-. An `extern crate` item: `extern crate serde`.1- ---- --- ExternCrate- D A free-standing function: `fn process(n: usize) -> Result<()> { ...G }`.- ---- --- Fn      -0 A block of foreign items: `extern "C" { ... }`.3- ---- --- ForeignMod-B An impl block providing trait or associated items: `impl TraitE for Data { ... }`.- -ٗ--- -ٗ--Implٗٗ-? A macro invocation, which includes `macro_rules!` definitions.B- ---- ---Macro-A A 2.0-style declarative macro introduced by the `macro` keyword.D- ---- ---Macro2- < A module or module declaration: `mod m` or `mod m { ... }`.?- -€--- -€-- Mod€    €   -/ A static item: `static BIKE: Shed = Shed(42)`.2- --- - ---Static   -/ A struct definition: `struct Foo { x: A }`.2- -˞-- - -˞--Struct ˞ ˞ -2 A trait definition: `pub trait Iterator { ... }`.5- --- - ---Trait   -? A trait alias: `pub trait SharableIterator = Iterator + Sync`.B- --- - --- TraitAlias   -B A type alias: `type Result = std::result::Result`.E- --- - ---Type  -6 A union definition: `union Foo { x: A, y: B }`.9- ---- ---Union- 4 A use declaration: `use std::collections::HashMap`.7- ---- --- Use      -/ Tokens forming an item not interpreted by Syn.2- ---- ---Verbatim- doc hidden- -Ъ,--- -Ъ,-- __TestExhaustiveЪ,    Ъ,  ֠-eO ---֠-eO ---֠-eO ---֠-eO ---֠-eO ---֠-ٗeO -ٗ--֠-eO ---֠-eO ---֠-€eO -€--֠-eO ---֠-˞eO -˞--֠-eO ---֠-eO ---֠-eO ---֠-eO ---֠-eO ----Mselftokensѝ֩٩  - -- .doc..+ A constant item: `const MAX: u16 = 65535`..docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L------------- Ս;---- --K------ --8doc8˷85 An enum definition: `enum Foo { A(A), B(B) }`.8doc̷LdocLͷLI *This type is available only if Syn is built with the `"full"` feature.*L----------- <------ --,#--1doc11. An `extern crate` item: `extern crate serde`.1docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L-----------  <-- ;----':-- --GdocGGD A free-standing function: `fn process(n: usize) -> Result<()> { ...Gdoc }`.docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L----------U%--3doc330 A block of foreign items: `extern "C" { ... }`.3docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L------ '-- --#--EdocEEB An impl block providing trait or associated items: `impl TraitEdoc¸ for Data { ... }`.docøLdocLĸLI *This type is available only if Syn is built with the `"full"` feature.*L-........ٗ--( --$-- <----: Trait this impl implements.߭A<-- The Self type of the impl.K-- --#-- BdocBB? A macro invocation, which includes `macro_rules!` definitions.BdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L......1 The `example` in `macro_rules! example { ... }`.4I..!..! #.. DdocDDA A 2.0-style declarative macro introduced by the `macro` keyword.DdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L......... =......?doc??< A module or module declaration: `mod m` or `mod m { ... }`.?docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L......€Á.... =.....#..#.. 2doc2Թ2/ A static item: `static BIKE: Shed = Shed(42)`.2docչLdocLֹLI *This type is available only if Syn is built with the `"full"` feature.*L..............҅ օ ӄ?..# L....Ædž ..K......ć ..Ɖ 2doc22/ A struct definition: `struct Foo { x: A }`.2docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L.......˞ۉ߉....  ?..ŊɊ..ߊ..ѻ..! #.. ً5docً5ً52 A trait definition: `pub trait Iterator { ... }`.ً5docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L...........č....$..$ ..܎ ......" ..6 .. ..ѐՐ#..BdocBB? A trait alias: `pub trait SharableIterator = Iterator + Sync`.BΑdocΑΑΑ֑Ldoc֑L֑LI *This type is available only if Syn is built with the `"full"` feature.*֑L............ē ........Ô1ǔ.. ..EdocEEB A type alias: `type Result = std::result::Result`.EdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L..........͗ї.. ......ʘΘ..K.. .. 9doc996 A union definition: `union Foo { x: A, y: B }`.9docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L........ʛΛ.. ?......ɜ͜׍..Ҟ7doc7ѻ74 A use declaration: `use std::collections::HashMap`.7docһLdocLӻLI *This type is available only if Syn is built with the `"full"` feature.*L.......... @..ȟ%̟ *.... .. IdocIIF A suffix of an import tree in a `use` item: `Type as Renamed` or `*`.IdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Ldoc¾doc¾¾ # Syntax tree enum¾ݾdocݾݾݾ&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums..........  ....... 6 A path prefix of imports in a `use` item: `std::...`.9. .... ... Path      . 3 An identifier imported by a `use` item: `HashMap`.6. .... ... Name      .B An renamed identifier imported by a `use` item: `HashMap as Map`.E. .... ...Rename. $ A glob import in a `use` item: `*`.'. .... ... Glob      .8 A braced group of imports in a `use` item: `{A, B, C}`.;. .... ...Group֠.eO ...֠.eO ...֠.eO ...֠.eO ...֠.eO ....Mselftokensѝ֩٩  . ..9doc9ս96 A path prefix of imports in a `use` item: `std::...`.9docֽLdocL׽LI *This type is available only if Syn is built with the `"full"` feature.*L..... *..U..6doc663 An identifier imported by a `use` item: `HashMap`.6docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L... EdocEEB An renamed identifier imported by a `use` item: `HashMap as Map`.EdocLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L.....:....'doc''$ A glob import in a `use` item: `*`.'docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L/ C..;doc;;8 A braced group of imports in a `use` item: `{A, B, C}`.;docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L// //)// %doc%%" An item within an `extern` block.%docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Ldocdoc # Syntax tree enumdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.//////  ////////  //Ъ,///) A foreign function in an `extern` block.,/ //// ///Fn/> A foreign static item in an `extern` block: `static ext: u8`.A/ //// ///Static/2 A foreign type in an `extern` block: `type void`.5/ //// ///Type/+ A macro invocation within an extern block../ //// ///Macro/4 Tokens in an `extern` block not interpreted by Syn.7/ //// ///Verbatim/ doc hidden/ /Ъ,/// /Ъ,// __TestExhaustiveЪ,    Ъ,  ֠ /e O  ///֠ /e O  ///֠ /e O  ///֠ /e O  /// /Mself tokensѝ ֩ ٩ / / /  ,doc,,) A foreign function in an `extern` block., doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ////////// // AdocAA> A foreign static item in an `extern` block: `static ext: u8`.A doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ////////////  ӄ?//# L//// //K// // 5doc552 A foreign type in an `extern` block: `type void`.5 doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ///////// //// // .doc..+ A macro invocation within an extern block.. doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L /////!//! #//  9doc996 An item declaration within the definition of a trait.9 doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L doc doc # Syntax tree enum doc &doc&&# This type is a [syntax tree enum].& doc .doc..+ [syntax tree enum]: Expr#syntax-tree-enums. //////////  //ݖ//  //Ъ,///9 An associated constant within the definition of a trait.</ //// ///Const/1 A trait method within the definition of a trait.4/ //// ///Method/5 An associated type within the definition of a trait.8/ //// ///Type/5 A macro invocation within the definition of a trait.8/ /ݖ/// /ݖ//Macroݖݖ/@ Tokens within the definition of a trait not interpreted by Syn.C/ //// ///Verbatim/ doc hidden/ /Ъ,/// /Ъ,// __TestExhaustiveЪ,    Ъ,  ֠ /e O  ///֠ /e O  ///֠ /e O  ///֠ /ݖe O  /ݖ// /Mself tokensѝ ֩ ٩ / / / <doc<<9 An associated constant within the definition of a trait.< doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ///////// Ս;//// // //&I//рՀ //ق 4doc441 A trait method within the definition of a trait.4 doc ȁLdocȁLȁLI *This type is available only if Syn is built with the `"full"` feature.*ȁL ////////%//փ!ڃ #//  8doc885 An associated type within the definition of a trait.8 фdocффф لLdocلLلLI *This type is available only if Syn is built with the `"full"` feature.*لL ////////// //ˆφ////" //1//&// // ҈8doc҈8҈85 A macro invocation within the definition of a trait.҈8 doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ///ݖŊ//!//! #//  Ë!docË!Ë! An item within an impl block.Ë! doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L ŒdocŒŒŒ ʌdocʌʌ # Syntax tree enumʌ doc &doc&&# This type is a [syntax tree enum].& doc .doc..+ [syntax tree enum]: Expr#syntax-tree-enums. /////0  ////  //Ր Ր //  //Ъ,///ݎ- An associated constant within an impl block.0/ݎ ////ݎ ///ݎConstݎݎݎݎݎݎ/ A method within an impl block."/ //// ///Method/) An associated type within an impl block.ȏ,/ //// ///Type/ϐ) A macro invocation within an impl block.,/ϐ ////ϐ ///ϐMacroϐϐϐϐϐϐ/4 Tokens within an impl block not interpreted by Syn.7/ //// ///Verbatim0 doc hidden0 0Ъ,//0 0Ъ,// __TestExhaustiveЪ,    Ъ,  ֠ 0e O  000֠ 0e O  000֠ 0e O  000֠ 0e O  000 0Mself tokensѝ ֩ ٩ 0 0 0  Қ0docҚ0Қ0- An associated constant within an impl block.Қ0 doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 000000000000ۜߜ00( 00 Ս;00ҝ֝00 00 0000Ǟ˞00ߞ 00ՠ "doc"" A method within an impl block." doc ğLdocğLğLI *This type is available only if Syn is built with the `"full"` feature.*ğL 000000000( 0000%00  ,doc,,) An associated type within an impl block., ڢdocڢڢڢ LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 0000000000000ʤ(Τ 00 000000ܥ00 00 00  ɦ,docɦ,ɦ,) A macro invocation within an impl block.ɦ, doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 00000ΨҨ!00! #00  AdocAA> A function signature in a trait or implementation: `unsafe fnA doc initialize(&self)`. doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 00000000000$ Ս;00$ K00$00'00۬߬<000000 00ޭ(0000'00  LdocLLI An argument in a function signature: the `n: usize` in `fn f(n: usize)`.L doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 00Ѣ00000D The `self` argument of an associated method, whether taken by valueG or by reference.صA Note that `self` receivers with a specified type, such as `self:D, Box`, are parsed as a `FnArg::Typed`.ζ/0 0Ѣ000 0Ѣ00ReceiverѢѢ02 A function argument accepted by pattern and type.50 0000 000Typed֠ 0Ѣe O  0Ѣ00֠ 0e O  000 0Mself tokensѝ ֩ ٩ 00 0 GdocGGD The `self` argument of an associated method, whether taken by valueG ظdocظظ or by reference.ظ doc DdocDDA Note that `self` receivers with a specified type, such as `self:D ¹/doc¹/¹/, Box`, are parsed as a `FnArg::Typed`.¹/ doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L 0000Ѣ00Ż4ɻ AK00# L00 >00 (L ( allow( ( (  non_camel_case_types( ( 00(! ( 001( ( ( ( ( ( ( (  span(  (z ( doc( ( (  hidden( ( ( allow( ( (  dead_code( ( non_snake_case( (# 0MMP__S00M( ũM(: (1 (. ( ( (. (( M(. ( ( ( ( (1 (_ ( ( ( ( ( P( M( (_ (1 (_ 3(. (_ M( (_ ( span( ( ( 0PP( ( 0P00( 00PiPcursor(  ( ( 00( 0(u ( 000( 0PPinput(  ( ( 0P0( 0( 0PMPself( tokens( ( ( 0 P0( 0(* PP̀)~ ) allow) ) €)  clippy) ) expl_impl_clone_on_copy) )) 0P Pself)  )= ) 0PP0) 0 (doc((% A complete file of Rust source code.( doc LdocLLI *This type is available only if Syn is built with the `"full"` feature.*L doc  doc   # Example  doc EdocEEB Parse a Rust source file into a `syn::File` and print out a debugE &doc&&# representation of the syntax tree.& doc doc ``` doc use std::env; doc use std::fs::File; doc use std::io::Read; doc use std::process; doc doc fn main() { doc # } doc # doc # fn fake_main() { #doc## let mut args = env::args();# /doc//, let _ = args.next(); // executable name/ doc 9doc996 let filename = match (args.next(), args.next()) {9 /doc//, (Some(filename), None) => filename,/ doc _ => { DdocDDA eprintln!("Usage: dump-syntax path/to/filename.rs");D !doc!! process::exit(1);!  doc   }   doc   };  doc KdocKKH let mut file = File::open(&filename).expect("Unable to open file");K doc $doc$$! let mut src = String::new();$ DdocDDA file.read_to_string(&mut src).expect("Unable to read file");D doc JdocJJG let syntax = syn::parse_file(&src).expect("Unable to parse file");J doc OdocOOL // Debug impl is available if Syn is built with "extra-traits" feature.O "doc"" println!("{:#?}", syntax);" doc } doc ``` doc IdocIIF Running with its own source code as input, this program prints outputI doc that begins with: doc  doc   ```text   doc   File {  doc shebang: None, doc attrs: [], doc items: [ doc Use( doc ItemUse { doc attrs: [], #doc## vis: Inherited,# #doc## use_token: Use,# (doc((% leading_colon: None,( doc tree: Path( !doc!! UsePath {! )doc))& ident: Ident() $doc$$! std,$ doc ), 1doc11. colon2_token: Colon2,1 'doc''$ tree: Name(' )doc))& UseName {) 1doc11. ident: Ident(1 ,doc,,) env,, &doc&&# ),& "doc"" }," doc ), doc }, doc ), %doc%%" semi_token: Semi,% doc }, doc ), doc ... doc ``` 000Ǔ0000O00  :doc::7 A Rust literal such as a string or integer or boolean.: ȓdocȓȓȓ ГdocГГ # Syntax tree enumГ doc &doc&&# This type is a [syntax tree enum].& doc 5doc552 [syntax tree enum]: crate::Expr#syntax-tree-enums5 00000000  Ȅ00   00 ҵ00 00 00 ͘͘00 00 ȁ000 ! A UTF-8 string literal: `"foo"`.$0 0Ȅ000 0Ȅ00 StrȄ    Ȅ  0! A byte string literal: `b"foo"`.$0 0000 000ByteStr0  A byte literal: `b'f'`.0 0ҵ000 0ҵ00 Byteҵ    ҵ  0  A character literal: `'a'`.0 0000 000 Char      0 # An integer literal: `1` or `1u16`.&0 0000 000 Int      0ǘ1 A floating point literal: `1f64` or `1.0e10f64`.Ɨ4, Must be finite. May not be infinite or NaN./0ǘ 0000ǘ 000ǘFloatǘǘǘǘǘǘ0 & A boolean literal: `true` or `false`.)0 0000 000 Bool      0, A raw token literal not interpreted by Syn./0 0ȁ000 0ȁ00Verbatimȁȁ ֠ 0Ȅe  O  0Ȅ00 ֠ 0e  O  000 ֠ 0ҵe  O  0ҵ00 ֠ 1e  O  100 ֠ 1e  O  111 ֠ 1e  O  111 ֠ 1e  O  111  1Mself tokensѝ  ֩ ٩ 1 1 1Ś $doc$$! A UTF-8 string literal: `"foo"`.$ 1Ȅ  ֚֚U11  $doc$$! A byte string literal: `b"foo"`.$ 1  ΛΛQ11 doc A byte literal: `b'f'`. 1ҵ  Q11 doc A character literal: `'a'`. 1  Q11͞ &doc&&# An integer literal: `1` or `1u16`.& 1  ޞޞU11 4doc441 A floating point literal: `1f64` or `1.0e10f64`.4 doc /doc//, Must be finite. May not be infinite or NaN./ 1  U11 )doc))& A boolean literal: `true` or `false`.) 11 Ң֢1111   cfg    feature   clone-impls  1Ȅ Ȅself   |  1υȄ1 1marker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1Ȅ   cfg    feature   clone-impls  1 self   |  11 1 marker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1   cfg    feature   clone-impls  1ҵ ҵself   |  1Ҷҵ1 1marker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1ҵ   cfg    feature   clone-impls  1 self   |  11 1marker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1   cfg    feature   clone-impls  1 self   |  11 1әmarker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1   cfg    feature   clone-impls  1 self   |  11 1marker  1  cfg    feature  parsing   doc    hidden  ̗ allow̗ ї   non_snake_caseҗ ʗ 1  KdocKKH The style of a string literal, either plain quoted or a raw string likeK doc `r##"data"##`. 111 111ܜ" An ordinary string like `"data"`.%ܜQ111ܜQ111 ! A raw string like `r##"data"##`.$8 The unsigned integer is the number of `#` symbols used.;1 1Q111 1Q11 Raw   Q    .doc..+ A macro invocation: `println!("{}", mac)`.. doc PdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P  doc   feature.*  1111! 11 ߭A11Ɔʆ ߟ1111  VdocVVS A grouping token that surrounds a macro body: `m!(...)` or `m!{...}` or `m![...]`.V doc PdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ׈ doc׈ ׈  feature.*׈  111ߟ ߉߉11 11 111ى 1ى 1ߟ111ى 1ߟ11ى Parenى ى ى ߟى ى ى 1 1 1ߟ111 1ߟ11 Brace   ߟ   11 1ߟ111 1ߟ11Bracketߟ  7doc774 Data structure sent to a `proc_macro_derive` macro.7 doc NdocNNK *This type is available only if Syn is built with the `"derive"` feature.*N 11111ܝ/ Attributes tagged on the whole struct or enum.211" Visibility of the struct or enum.%11 Name of the struct or enum.11. Generics required to complete the definition.111 Data within the struct or enum.#111  :doc::7 The storage of a struct, enum or union data structure.: doc NdocNNK *This type is available only if Syn is built with the `"derive"` feature.*N doc doc # Syntax tree enum doc &doc&&# This type is a [syntax tree enum].& doc .doc..+ [syntax tree enum]: Expr#syntax-tree-enums. 111ىR   111 111   1111/ A struct input to a `proc_macro_derive` macro.21 1RىR111 1RىR11StructRىRR1. An enum input to a `proc_macro_derive` macro.11 1RىR111 1RىR11EnumRىRR18 An untagged union input to a `proc_macro_derive` macro.;1 1RىR111 1RىR11UnionRىRR ֠ 1ىRىRRe  O  1RىR11 ֠ 1ىRىRRe  O  1RىR11 ֠ 1ىRىRRe  O  1RىR11  2doc22/ A struct input to a `proc_macro_derive` macro.2 doc DdocDDA *This type is available only if Syn is built with the `"derive"`D  doc   feature.*  111R  ?11ѻ11! #11 1doc11. An enum input to a `proc_macro_derive` macro.1 doc DdocDDA *This type is available only if Syn is built with the `"derive"`D  doc   feature.*  111R <11 11,#11  ;doc;;8 An untagged union input to a `proc_macro_derive` macro.; doc DdocDDA *This type is available only if Syn is built with the `"derive"`D  doc   feature.*  11R ?11׍11  &doc&&# A binary operator: `+`, `+=`, `&`.& ̉doc̉̉̉ ԉPdocԉPԉPM *This type is available only if Syn is built with the `"derive"` or `"full"`ԉP  doc   feature.*  1111111111122222222222222222 ΋ ΋ 11   C11 ׌ ׌ C11   A11 ֍ ֍ B11   A11 ݎ ݎ B11   A11   A11   )11   B11   C11   B11   B11   B11 ʓ ʓ B11   B11 ߔ ߔ ݒB11   A11 Е Е ߝC11   إB11 – – A11   B11   A11   A11   ѸB11   B11   C111ʋ The `+` operator (addition)1ʋ 1111ʋ 111ʋAddʋʋʋʋʋʋ1 The `-` operator (subtraction)"1 1C111 1C11SubCC1ӌ" The `*` operator (multiplication)%1ӌ 1C111ӌ 1C11ӌMulCӌӌӌӌCӌӌ1 The `/` operator (division)1 1A111 1A11DivAA1ҍ The `%` operator (modulus)1ҍ 1B111ҍ 1B11ҍRemBҍҍҍҍBҍҍ1 The `&&` operator (logical and)#1 1A111 1A11AndAA1ڎ The `||` operator (logical or)"1ڎ 1B111ڎ 1B11ڎOrBڎڎڎڎBڎڎ1 The `^` operator (bitwise xor)"1 1A111 1A11BitXorAA1 The `&` operator (bitwise and)"1 1A111 1A11BitAndAA 1 The `|` operator (bitwise or)!1 1)11 1 1)11BitOr ) ) 2 The `<<` operator (shift left)"2 1B11 2 2B11Shl B B 2 The `>>` operator (shift right)#2 2C11 2 2C11Shr C C 2 The `==` operator (equality)ˑ 2 2B11 2 2B11Eq B B 2  The `<` operator (less than) 2 2B11 2 2B11 Lt B     B  2* The `<=` operator (less than or equal to)̒-2 2B112 2B11LeBB2Ǔ! The `!=` operator (not equal to)$2Ǔ 2B112Ǔ 2B11ǓNeBǓǓǓǓBǓǓ2- The `>=` operator (greater than or equal to)ߓ02 2B112 2B11GeBB2ܔ  The `>` operator (greater than)#2ܔ 2ݒB112ܔ 2ݒB11ܔ GtݒBܔ ܔ ܔ ܔ ݒBܔ ܔ 2 The `+=` operator2 2A112 2A11AddEqAA2ʕ The `-=` operator2ʕ 2ߝC112ʕ 2ߝC11ʕSubEqߝCʕʕʕʕߝCʕʕ2 The `*=` operator2 2إB112 2إB11MulEqإBإB2 The `/=` operator2 2A112 2A11DivEqAA2 The `%=` operatorז2 2B112 2B11RemEqBB2 The `^=` operator2 2A112 2A11BitXorEqAA2 The `&=` operator̗2 2A112 2A11BitAndEqAA2 The `|=` operator2 2ѸB112 2ѸB11BitOrEqѸBѸB2 The `<<=` operatorØ2 2B112 2B11ShlEqBB2 The `>>=` operator2 2C112 2C11ShrEqCC  ʙ$docʙ$ʙ$! A unary operator: `*`, `!`, `-`.ʙ$ doc PdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P К docК К  feature.*К  222$   C22 Ȝ Ȝ ߭A22   C222# The `*` operator for dereferencingț&2 2C$222 2C$22DerefC$C2Ĝ' The `!` operator for logical inversion*2Ĝ 2߭A$222Ĝ 2߭A$22ĜNot߭AĜĜĜ$Ĝ߭AĜĜ2 The `-` operator for negationܜ!2 2C$222 2C$22NegC$C.doc..+ A braced block containing Rust statements..docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L22%  22 Statements in a block%22 /doc//, A statement, usually ending in a semicolon./docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L2222% &22 22 22 22   222  A local (let) binding.2 2&%222 2&%22 Local&   % &  2  An item definition.2 2%222 2%22 Item   %   2 ! Expr without trailing semicolon.$2 2%222 2%22 Expr   %   2$ Expression with trailing semicolon.'22 2%222 2%22SemiSemi%5doc552 A local `let` binding: `let x: u64 = s.parse()?`.5docLdocLLI *This type is available only if Syn is built with the `"full"` feature.*L22222&22 =22 22(22 22 4doc441 The possible types that a Rust value could have.4ڦdocڦڦڦPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* ɧdocɧɧɧѧdocѧѧ # Syntax tree enumѧdoc&doc&&# This type is a [syntax tree enum].&doc.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.2222222222222233    '22 Ȫ Ȫ '22   '22   '22   '22 խ խ '22   '22   '22 '22 ްް'22   '22   '22 '22   '22   22 Ъ,222# A fixed size array type: `[T; n]`.&2 2'222 2'22Array''2+ A bare function type: `fn(usize) -> bool`..2 2'222 2'22BareFn''2. A type contained within invisible delimiters.ު12 2'222 2'22Group''2D An `impl Bound1 + Bound2 + Bound3` type where `Bound` is a trait orG a lifetime.2 2'222 2'22 ImplTrait''2@ Indication that a type should be inferred by the compiler: `_`.C2 2'222 2'22Infer''2ϭ A macro in the type position.!2ϭ 2'222ϭ 2'22ϭMacro'ϭϭϭϭ'ϭϭ2 The never type: `!`.2 2'222 2'22Never''23 A parenthesized type equivalent to the inner type.62 2'222 2'22Paren''2< A path like `std::slice::Iter`, optionally qualified with a?5 self-type as in ` as SomeTrait>::Associated`.ȯ82 2'222 2'22Path'' 2ڰ , A raw pointer type: `*const T` or `*mut T`./2ڰ 2'22 2ڰ 2'22ڰ Ptr 'ڰ  ڰ ڰ ڰ 'ڰ ڰ  2* A reference type: `&'a T` or `&'a mut T`.-2 2'22 2 2'22 Reference ' ' 2' A dynamically sized slice type: `[T]`.ʱ*2 2'22 2 2'22Slice ' ' 2B A trait object type `Bound1 + Bound2 + Bound3` where `Bound` is aE trait or a lifetime.2 2'22 2 2'22 TraitObject ' ' 2ݳ# A tuple type: `(A, B, C, String)`.&3ݳ 2'22 2ݳ 2'22ݳTuple 'ݳ ݳݳݳ'ݳݳ30 Tokens in type position not interpreted by Syn.33 3223 322Verbatim3 doc hidden3 3Ъ,223 3Ъ,22 __TestExhaustiveЪ,    Ъ,   ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 ֠3'e O 3'33 3Mselftokensѝ ֩٩  3 33 Ľ&docĽ&Ľ&# A fixed size array type: `[T; n]`.Ľ&docGdocGGD *This type is available only if Syn is built with the `"derive"` orGþdocþþ `"full"` feature.*þ3333'˿!Ͽ 33K33 33 33 .doc..+ A bare function type: `fn(usize) -> bool`..docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33333333'% 33$33'33<33 33,'3333'33 1doc11. A type contained within invisible delimiters.1docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33' 33K33 GdocGGD An `impl Bound1 + Bound2 + Bound3` type where `Bound` is a trait orGdoc a lifetime.docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33'  <33133 CdocCC@ Indication that a type should be inferred by the compiler: `_`.CdocGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*3'33 !doc!! A macro in the type position.!docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*3'!33 doc The never type: `!`.docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*3' ߭A33 6doc663 A parenthesized type equivalent to the inner type.6docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33'  33K33?doc??< A path like `std::slice::Iter`, optionally qualified with a?8doc885 self-type as in ` as SomeTrait>::Associated`.8docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33')3333/doc//, A raw pointer type: `*const T` or `*mut T`./docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*3333' C33& P33# L33K33 -doc--* A reference type: `&'a T` or `&'a mut T`.-docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*3333' A33K33# L33K33 *doc**' A dynamically sized slice type: `[T]`.*docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33'! 33K33EdocEEB A trait object type `Bound1 + Bound2 + Bound3` where `Bound` is aEdoc trait or a lifetime.docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33' " ;33133 &doc&&# A tuple type: `(A, B, C, String)`.&docGdocGGD *This type is available only if Syn is built with the `"derive"` orGdoc `"full"` feature.*33' 33&335doc552 The binary interface of a function: `extern "C"`.5docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* 33'  <33Ȅ33 GdocGGD An argument in a function type: the `usize` in `fn(usize) -> bool`.GdocPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* 333'33$33 330doc00- The variadic argument of a foreign function.0doc doc   ```rust doc # struct c_char;doc # struct c_int;doc #doc extern "C" {7doc774 fn printf(format: *const c_char, ...) -> c_int;7,doc,,) // ^^^,doc }doc ```docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* 333333 (doc((% Return type of a function signature.(docPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P doc   feature.* 33'    B33   K333 Return type is not specified.!B Functions default to `()` and closures default to type inference.E'333'333 A particular type is returned."33 3BK'333 3BK'33TypeBTypeK'BK   Jdoc J JG A pattern in a local binding, function signature, match expression, or J doc   various other places.  doc    Ldoc L LI *This type is available only if Syn is built with the `"full"` feature.* L doc    doc   # Syntax tree enum  doc    &doc & &# This type is a [syntax tree enum]. & doc    .doc . .+ [syntax tree enum]: Expr#syntax-tree-enums .33333333444444444  )33  )33  ̘*33  ֛*33  ڜ*33 !!*33 !!Й*33 ! ! )33 !!ȗ*33 !!)33 ք! ք! )33 !!)33 !!ݿ)33 ׆!׆!33 ! ! 33 !!)33 ̐!̐!Ъ,333  A box pattern: `box v`. 3  3)333 3)33 Box)    )  3 E A pattern that binds a new variable: `ref mut binding @ SUBPATTERN`. H3  3)333  3)33 Ident)    )  3  A literal pattern: `0`.  B This holds an `Expr` rather than a `Lit` because negative numbers E% are represented as an `Expr::Unary`. (3  3̘*333 3̘*33 Lit̘*    ̘*  3  A macro in pattern position. 3  3֛*333  3֛*33 Macro֛*    ֛*  3 2 A pattern that matches any one of a set of cases. 53  3ڜ*333 3ڜ*33 Orڜ*    ڜ*  3! > A path pattern like `Color::Red`, optionally qualified with a A self-type.  B Unqualified path patterns can legally refer to variants, structs, E@ constants or associated constants. Qualified path patterns like C? `::B::C` and `::B::C` can only legally refer to!B associated constants.!3! 3*333! 3*33! Path*! ! ! ! *! ! 3! A range pattern: `1..=2`.!3! 3Й*333! 3Й*33!RangeЙ*!!!!Й*!!4!! A reference pattern: `&mut var`.!$4! 3)334! 4)33! Reference)!!!!)!!4! 3 The dots in a tuple or slice pattern: `[0, 1, ..]`˂!64! 4ȗ*334! 4ȗ*33! Restȗ*! ! ! ! ȗ*! !  4!? A dynamically sized slice pattern: `[a, b, ref i @ .., y, z]`.!B4! 4)33 4! 4)33!Slice )! !!!)!! 4τ!< A struct or struct variant pattern: `Variant { x, y, .. }`.!?4τ! 4)33 4τ! 4)33τ!Struct )τ! τ!τ!τ!)τ!τ! 4! A tuple pattern: `(a, b)`.!4! 4)33 4! 4)33!Tuple )! !!!)!! 4!A A tuple struct or tuple variant pattern: `Variant(x, y, .., z)`.!D4! 4ݿ)33 4! 4ݿ)33! TupleStruct ݿ)! !!!ݿ)!! 4҆! ' A type ascription pattern: `foo: f64`.!*4҆! 433 4҆! 433҆! Type ҆!  ҆! ҆! ҆! ҆! ҆! 4!3 Tokens in pattern position not interpreted by Syn.!64! 4334! 433!Verbatim!!!!!!4! ' A pattern that matches any value: `_`.ɇ!*4! 4)334! 4)33! Wild)! ! ! ! )! ! 4! !doc!!! hidden!!4! 4Ъ,334! 4Ъ,33! __TestExhaustiveЪ,! ! ! ! Ъ,! !  ֠4)e O 4)44 ֠4)e O 4)44 ֠4̘*e O 4̘*44 ֠4֛*e O 4֛*44 ֠4ڜ*e O 4ڜ*44 ֠4*e O 4*44 ֠4Й*e O 4Й*44 ֠4)e O 4)44 ֠4ȗ*e O 4ȗ*44 ֠4)e O 4)44 ֠4)e O 4)44 ֠4)e O 4)44 ֠4ݿ)e O 4ݿ)44 ֠4e O 444 ֠4)e O 4)44 4Mselftokensѝ ֩٩  4 44!!doc!! A box pattern: `box v`.!!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L444)’!ƒ!44!! :44!!U44!!Hdoc!H!HE A pattern that binds a new variable: `ref mut binding @ SUBPATTERN`.!H!doc!!!!Fdoc!F!FC It may also be a unit struct or struct variant (e.g. `None`), or a!Fה!:docה!:ה!:7 constant; these cannot be distinguished syntactically.ה!:!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L44444)–!Ɩ!44!!>44!#! L44!!44՗!)ٗ!AT44Ӛ!!doc!! A literal pattern: `0`.!!doc!!!Ø!EdocØ!EØ!EB This holds an `Expr` rather than a `Lit` because negative numbersØ!E!(doc!(!(% are represented as an `Expr::Unary`.!(!doc!!!™!Ldoc™!L™!LI *This type is available only if Syn is built with the `"full"` feature.*™!L44̘*!!44!!44!! doc! !  A macro in pattern position.! ܛ!docܛ!ܛ!ܛ!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L44֛*!!44!!!44!֝!5doc֝!5֝!52 A pattern that matches any one of a set of cases.֝!5!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L444ڜ*!!44ܟ!#! )44!%!)44!ˠ!Adocˠ!Aˠ!A> A path pattern like `Color::Red`, optionally qualified with aˠ!A!doc!! self-type.!!doc!!!!Edoc!E!EB Unqualified path patterns can legally refer to variants, structs,!E!Cdoc!C!C@ constants or associated constants. Qualified path patterns like!C!Bdoc!B!B? `::B::C` and `::B::C` can only legally refer to!B!doc!! associated constants.!!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L444*Τ!Ҥ!44!!)44!!44!!doc!! A range pattern: `1..=2`.!!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L4444Й*!!44!!44ʧ!Χ!44!!44۩! !$doc!$Ɔ!$! A reference pattern: `&mut var`.!$¨!doc¨!dž¨!¨!ʨ!Ldocʨ!LȆʨ!LI *This type is available only if Syn is built with the `"full"` feature.*ʨ!L4444)!!44!! A44!#! L44!!T44!!6doc!6!63 The dots in a tuple or slice pattern: `[0, 1, ..]`!6ͫ!docͫ!ͫ!ͫ!ի!Ldocի!Lի!LI *This type is available only if Syn is built with the `"full"` feature.*ի!L44ȗ*!!44!! A44!ҭ!Bdocҭ!Bҭ!B? A dynamically sized slice pattern: `[a, b, ref i @ .., y, z]`.ҭ!B!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L444)ů!ɯ!44!!! 44!%!K44! հ!?docհ!?հ!?< A struct or struct variant pattern: `Variant { x, y, .. }`.հ!?!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L44444)Ʋ!ʲ!44!!44!! 44!+!)44ݳ!"! L44ص!!doc!! A tuple pattern: `(a, b)`.!!doc!!!Ǵ!LdocǴ!LǴ!LI *This type is available only if Syn is built with the `"full"` feature.*Ǵ!L444)!!44!! 44!%!K44ٸ!!Ddoc!D!DA A tuple struct or tuple variant pattern: `Variant(x, y, .., z)`.!D!doc!!!ȷ!Ldocȷ!Lȷ!LI *This type is available only if Syn is built with the `"full"` feature.*ȷ!L444ݿ)!!44!!44!!)44!۹!*doc۹!*ɇ۹!*' A type ascription pattern: `foo: f64`.۹!*!doc!ʇ!!!Ldoc!Lˇ!LI *This type is available only if Syn is built with the `"full"` feature.*!L4444!!44ػ!ܻ!T44!! 44!!K44!ż!*docż!*ż!*' A pattern that matches any value: `_`.ż!*!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L44)!!44¾!ƾ!44!!'doc!'!'$ A single field in a struct pattern.!'!doc!!!!Idoc!I!IF Patterns like the fields of Foo `{ x, ref y, ref mut z }` are treated!I!Kdoc!K!KH the same as `x: x, y: ref y, z: ref mut z` but there is no colon token.!K!doc!!!!Ldoc!L!LI *This type is available only if Syn is built with the `"full"` feature.*!L4445)!!44!!44!"! 44!!T44""Pdoc"P"PM A path at which a named item is exported (e.g. `std::collections::HashMap`)."P"doc""""Pdoc"P"PM *This type is available only if Syn is built with the `"derive"` or `"full"`"P" doc" "  feature.*" 55"%" *55"1"*55" "Idoc"I"IF A segment of a path together with any path arguments on that segment."I"doc"‹"""Pdoc"PË"PM *This type is available only if Syn is built with the `"derive"` or `"full"`"P" doc" ċ"  feature.*" 55""55"" *55" "Adoc"A̋"A> Angle bracketed or parenthesized arguments of a path segment."A"doc"͋"""Pdoc"P΋"PM *This type is available only if Syn is built with the `"derive"` or `"full"`"P" doc" ϋ"  feature.*" "doc"Ћ"""doc"ы" ## Angle bracketed""doc"ҋ"""/doc"/Ӌ"/, The `<'a, T>` in `std::slice::iter<'a, T>`."/"doc"ԋ"""doc"Ջ" ## Parenthesized""doc"֋""")doc")׋")& The `(A, B) -> C` in `Fn(A, B) -> C`.")555*""+55""+555""*555"*555"., The `<'a, T>` in `std::slice::iter<'a, T>`."/5" 5+*555". 5+*55".AngleBracketed+".".".*".+".".5",& The `(A, B) -> C` in `Fn(A, B) -> C`.")5" 5+*555", 5+*55", Parenthesized+",",",*",+","," "Bdoc"B"B? An individual generic argument, like `'a`, `T`, or `Item = T`."B"doc""""Pdoc"P"PM *This type is available only if Syn is built with the `"derive"` or `"full"`"P" doc" "  feature.*" 55555+""Ӯ55""55""߹+55" " +55""555" A lifetime argument."5" 5Ӯ+555" 5Ӯ+55"LifetimeӮ"""+"Ӯ""5"  A type argument."5" 5+555" 5+55" Type" " " +" " " 5"C A binding (equality constraint) on an associated type: the `Item ="F u8` in `Iterator`."!5" 5߹++555" 5߹++55"Binding߹+"""+"߹+""5"5 An associated type bound: `Iterator`."85" 5++555" 5++55" Constraint+"""+"+""5" / A const expression. Must be inside of a block."2"A NOTE: Identity expressions are represented as Type arguments, as"D* they are indistinguishable syntactically."-5" 5+555" 5+55" Const" " " +" " " ""Ldoc"L"LI Angle bracketed arguments of a path segment: the `` in `HashMap`.""doc""""Pdoc"P"PM *This type is available only if Syn is built with the `"derive"` or `"full"`"P" doc" "  feature.*" 5555+#$# *55̀#Ѐ#B55#0#+55##ݒB55#ہ#Gdocہ#Gہ#GD A binding (equality constraint) on an associated type: `Item = u8`.ہ#G#doc####Pdoc#P#PM *This type is available only if Syn is built with the `"derive"` or `"full"`#P# doc# #  feature.*# 555߹+##55##55# #55# #8doc#8#85 An associated type bound: `Iterator`.#8#doc####Pdoc#P#PM *This type is available only if Syn is built with the `"derive"` or `"full"`#P# doc# #  feature.*# 555+##55## 55#1#55##Jdoc#JɌ#JG Arguments of a function path segment: the `(A, B) -> C` in `Fn(A,B) ->#Jڈ#docڈ#ʌڈ# C`.ڈ##doc#ˌ###Pdoc#P̌#PM *This type is available only if Syn is built with the `"derive"` or `"full"`#PÉ# docÉ# ͌É#  feature.*É# 555+֊#ڊ# 55#' `(A, B)`# #S55Ӌ# `C`Ë#׋#'55##Adoc#Aߌ#A> The explicit Self type in a qualified path: the `T` in `::fmt`.̌##doc####Kdoc#K#KH The actual path, including the trait and the associated item, is stored#K#Kdoc#K#KH separately. The `position` field represents the index of the associated#K#'doc#'#'$ item qualified with this Self type.#'#doc#### doc# #  ```text# Ў#+docЎ#+Ў#+( as a::b::Trait>::AssociatedItemЎ#+#doc## ^~~~~~ ~~~~~~~~~~~~~~^##doc## ty position = 3#Ï#docÏ#Ï#Ï#ˏ#docˏ#ˏ# >::AssociatedItemˏ##doc## ^~~~~~ ^##doc## ty position = 0##doc## ```##doc####Pdoc#P#PM *This type is available only if Syn is built with the `"derive"` or `"full"`#P# doc# #  feature.*# 55555)##B55##K55#Ò#55ܒ# #:55##ݒB55 proc_macro_ 5 proc_macro2_ 5 unicode_xid` 5quote`5macros`5groupa5 parenthesized 65braced75 bracketed 85tokena95identa5Identa5Identa 5attrb5 AttrStylec '5 Attributec '5 AttributeArgsc 5Metac'5MetaListc'5 MetaNameValuec '5 NestedMetac '5bigintc5datad5Fieldd(5Fieldsd'5 FieldsNamede '5 FieldsUnnamede (5Variante'5VisCratee(5 VisPublice (5 VisRestrictede (5 Visibilitye (5exprf5Armf+5 FieldValuef +5GenericMethodArgumentf+5Labelf+5MethodTurbofishg+5 RangeLimitsg +5Exprg(5 ExprArrayg )5 ExprAssignh )5 ExprAssignOph )5 ExprAsynch *5 ExprAwaith *5 ExprBinaryh *5 ExprBlockh *5ExprBoxh*5 ExprBreakh *5ExprCallh*5ExprCasth*5 ExprClosureh *5 ExprContinuei *5 ExprFieldi *5 ExprForLoopi *5 ExprGroupi *5ExprIfi*5 ExprIndexi *5ExprLeti*5ExprLiti*5ExprLoopi*5 ExprMacroi *5 ExprMatchi *5ExprMethodCalli*5 ExprParenj *5ExprPathj*5 ExprRangej *5 ExprReferencej *5 ExprRepeatj +5 ExprReturnj +5 ExprStructj +5ExprTryj+5 ExprTryBlockj +5 ExprTuplej +5ExprTypek+5 ExprUnaryk +5 ExprUnsafek +5 ExprWhilek +5 ExprYieldk +5Indexk+5Memberk+5genericsl5BoundLifetimesl,5 ConstParaml ,5 GenericParamm ,5Genericsm,5 LifetimeDefm ,5 PredicateEqm ,5PredicateLifetimem,5 PredicateTypem ,5 TraitBoundm ,5TraitBoundModifierm,5 TypeParamm ,5TypeParamBoundn,5 WhereClausen ,5WherePredicaten,5 ImplGenericso 5 Turbofisho 5 TypeGenericso 5itemo5FnArgp05 ForeignItemp /5 ForeignItemFnp /5ForeignItemMacrop/5ForeignItemStaticp/5ForeignItemTypep/5ImplItemp/5 ImplItemConstq 05 ImplItemMacroq 05ImplItemMethodq05 ImplItemTypeq 05Itemq-5 ItemConstq -5ItemEnumq-5ItemExternCrateq-5ItemFnq-5ItemForeignModq-5ItemImplr-5 ItemMacror .5 ItemMacro2r .5ItemModr.5 ItemStaticr .5 ItemStructr .5 ItemTraitr .5ItemTraitAliasr.5ItemTyper.5 ItemUnionr .5ItemUser.5Receivers05 Signatures 05 TraitItems /5TraitItemConsts/5TraitItemMacros/5TraitItemMethods/5 TraitItemTypes /5UseGlobs.5UseGroups/5UseNamet.5UsePatht.5 UseRenamet .5UseTreet.5filet 5Filet05lifetimeu 5Lifetimeu 5Lifetimeu 5litu 5Litu05Litu 5LitBoolu15LitBoolu 5LitByteu15LitByteu 15 LitByteStru 15 LitByteStru 15LitCharu15LitCharu 15LitFloatv15LitFloatv 15LitIntv15LitIntv 15LitStrv15LitStrv 15StrStylev15macv 5Macrow15MacroDelimiterw15derivew 5Datax15DataEnumx15 DataStructx 15 DataUnionx 15 DeriveInputx 15opy 5BinOpy15UnOpy25stmtz 5Blockz25Localz25Stmtz25ty{ 5Abi{35 BareFnArg{ 35 ReturnType{ 35Type|25 TypeArray| 35 TypeBareFn| 35 TypeGroup| 35 TypeImplTrait| 35 TypeInfer| 35 TypeMacro| 35 TypeNever| 35 TypeParen| 35TypePath|35TypePtr|35 TypeReference} 35 TypeSlice} 35TypeTraitObject}35 TypeTuple} 35Variadic}35pat} 5FieldPat~45Pat~35PatBox~45PatIdent~45PatLit~45PatMacro~45PatOr~45PatPath~45PatRange~45 PatReference~ 45PatRest~45PatSlice45 PatStruct 45PatTuple45PatTupleStruct45PatType45PatWild45path5AngleBracketedGenericArgumentsՀ55Binding55 Constraint 55GenericArgument55ParenthesizedGenericArguments55Path55 PathArgumentsā 55 PathSegmentӁ 55QSelf55bufferÂ5ext5 punctuated 5 parse_quote 5 parse_quote' 5parse_macro_input5parse_macro_input'5spanned5 whitespaceֈ 5gen5 __private 5custom_keyword5custom_keyword(5impl_parse_for_custom_keyword(5!impl_to_tokens_for_custom_keyword(!5impl_clone_for_custom_keyword(5$impl_extra_traits_for_custom_keywordŠ)$5custom_punctuation5custom_punctuation)5!impl_parse_for_custom_punctuation)!5%impl_to_tokens_for_custom_punctuation)%5!impl_clone_for_custom_punctuation)!5(impl_extra_traits_for_custom_punctuation)(5custom_punctuation_repr)5custom_punctuation_unexpected)5stringify_punct)5sealed5span5thread5 lookahead 5parse5reserved5verbatim5print5private5private5rustdoc_workaround5error5Error5Result5parse 5parse2 5 parse_str 5 parse_file 5Tokenì'5custom_punctuation_len)85B cfg֏ feature clone-impls  rustfmt׏skip؏allowُ clippy clone_on_copy  clippy expl_impl_clone_on_copyA55555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666677777777777777777777777777777777777777777777777777777777777777777888888888888888885cfgݏ any featurederive featurefull15' 'self 5 5('555cfg any featurederive featurefull15+ +self 5 5,+555Ҁcfg featurefull5 self 5뀳 5555cfgՐ̃ any˃ featurederive featureÃfullŃ1II5Ncfgېф anyЄ featurederive featureȄfullʄ15I Iself 5- 5 II555ņ݅cfg݅ anyᅳ䅳 feature关텳derive featurefullۅ15 self 5䆳熳 55톳55퉳cfg any featurederive featurefull15' 'self 5 5('555cfg苳 any‹狳 featureËˋderive͋Ջ feature׋ߋfullዳ15Jcfg‘錳 anyÌ茳 featureČ̌deriveΌ֌ feature،full⌳15 selfɍ 5- 55ȍ55َcfgӑ any featurederive featurefull15߹+ ߹+self 5 5,߹+555cfg featurefull5% %self 5 5&%555cfgڒ anyْ featurederiveǒ featureɒђfullӒ15­ ­selfÓ 5 5­5“55cfg啳 any䕳 featureȕderiveʕҕ featureԕܕfullޕ15 selfʖ 5Ö 55ɖ55cfgݙ anyܙ featurederive™ʙ feature̙ԙfull֙15+ +selfš 5 5,+555Ϝcfg featurederive5ىR ىRself 5霳윳 5 ىRىR555ԞcfgԞ͓מꞳ feature؞derive➳Ҟ5R Rself͟ 5ßƟ 5 RR5̟55桳cfg featurederive5R Rself 5 5 RR555أcfgأۣ featureܣ䣳derive棳֣5R RselfҤ 5Ȥˤ 5 RR5Ѥ55楳cfg楳饳 featureꥳderive䥳5ܝ ܝself⦳ 5ئۦ 5$ܝ5ᦳ55ǩߨcfgߨ۔⨳ any㨳樳 feature稳勉derive featurefullݨ15 self멳 5ᩳ䩳 55ꩳ55ųijcfgijijų featureijųfullųij5 selfų 5ųų 55ų55dzdzcfgdzdzdz featuredzdzfulldzdz5ш шselfȳ 5ȳȳ 5ш5ȳ55ʳʳcfgʳޙʳʳ featureʳʳfullʳɳ5 selfʳ 5ʳʳ 55ʳ55ͳ̳cfg̳̳̳ feature̳̳full̳̳5 selfͳ 5ͳͳ 55ͳ55ϳϳcfgϳϳϳ featureϳϳfullϳϳ5 selfг 5гг 55г55ҳҳcfgҳ֚ҳҳ anyҳҳҳ featureҳҳderiveҳҳ featureҳҳfullҳҳ15 selfӳ 5ӳӳ 55ӳ55ճԳcfgԳԳԳ featureԳԳfullԳԳ5 selfճ 5ճճ 55ճ55׳׳cfg׳׳׳ feature׳׳full׳׳5 self׳ 5׳׳ 55׳55ٳٳcfgٳ›ٳٳ featureٳٳfullٳٳ5 selfڳ 5ڳڳ 55ڳ55ܳܳcfgܳܳܳ anyܳܳܳ featureܳܳderiveܳܳ featureܳܳfullܳܳ15 selfݳ 5ݳݳ 55ݳ55߳޳cfg޳޳߳ any޳޳߳ feature޳߳derive߳߳ feature߳߳full߳޳15 self 5߳߳ 55߳55cfg featurefull5 self 5 5555cfg featurefull5 self 5 5555cfg any featurederive featurefull15 self 5 5555cfgʝ featurefull5 self 5 5555cfg featurefull5 self 5 5555cfg featurefull6 self 5 6555cfgԞ any featurederive featurefull16 self 5 6665cfg featurefull6 self 5 6665cfg any featurederive featurefull16 self 5 6665cfgƟ featurefull6 self 5 6665cfg featurefull6 self 5 6665́cfg featurefull6 self 5쁴 6665Ԅcfg featurefull6 self 5 6665ڈcfg any featurederive featurefull16 self 5 6665cfg犴 any抴 featureŠʊderive̊Ԋ feature֊ފfull16 selfʋ 5Ë 6ԑ6ɋ65Ícfg featurefull6 self썴 5⍴却 6Ґ6덴65cfgޡΏ featureƏfullȏ6 self 5 6665cfgĒՒ featureŒ͒fullϒ6 self 5 6ʝ665ʕcfgʕ͕ޕ featureΕ֕fullؕȕ6 selfÖ 5 66–65̘cfgܢ featurefull6 self 5옴 6665cfg featurefull6 self 5 6665ޝcfgޝ᝴ feature❴ꝴfull이ܝ6 selfٞ 5ϞҞ 6؀6؞65࠴cfgԣ featurefull6 self 5 6665¢cfg¢Ţ֢ featureƢ΢fullТ6 self 5 6665cfg any featurederive featurefull16 self 5 6665ƧcfgƧɧڧ featureʧҧfullԧħ6 self 5 6665ʪcfg featurefull6 self 5骴쪴 6665ŭcfg featurefull6 self 5䭴筴 6665cfgү anyѯ featurederive featureɯfull˯16ܽ ܽself 5 6ܽ665cfg featurefull6) )self 5 6*)665εcfg featurefull6 self 5 6665ٷcfgٷܷ anyݷ෴ featureᷴ鷴derive뷴 featurefull׷16ѻ ѻself縴 5ݸิ 6Ƚѻ6渴65ƺcfgƺɺ anyʺͺ featureκֺderiveغິ feature⺴꺴full캴ĺ16׍ ׍selfٻ 5ϻһ 6׍6ػ65սcfg any featurederive featurefull뼴16ӎ ӎself 5 6ӎ665뿴cfg featurefull6Ǔ Ǔself 5 6Ǔ665´cfg featurefull6 self´ 5´´ 66´65Ĵôcfgôôô featureôôfullôô6 selfĴ 5ĴĴ 6O6Ĵ65ȴȴcfgȴȴȴ featureȴȴfullȴȴ6 selfɴ 5ɴɴ 66ɴ65˴ʴcfgʴʴʴ featureʴʴfullʴʴ6 self˴ 5˴˴ 66˴65ʹʹcfgʹʹʹ featureʹʹfullʹʹ6 selfδ 5δδ 66δ65ҴѴcfgѴũѴѴ featureѴѴfullѴѴ6 selfҴ 5ҴҴ 66Ҵ65մԴcfgԴԴԴ anyԴԴԴ featureԴԴderiveԴԴ featureԴԴfullԴԴ16+ +selfմ 5մմ 6,+6մ65ڴٴcfgٴŪٴٴ featureٴٴfullٴٴ6 selfڴ 5ڴڴ 66ڴ65ݴܴcfgܴܴܴ anyܴܴܴ featureܴܴderiveܴܴ featureܴܴfullܴܴ16 selfݴ 5ݴݴ 6M6ݴ65ߴcfgߴߴߴ anyߴߴߴ featureߴߴderiveߴߴ featureߴߴfullߴߴ16 self 5 6665cfgЫ featurefull6 self 5 6P665cfg featurefull6 self 5 6665cfg featurefull6 self 5 6665cfg featurefull6 self 5 6665cfg featurefull6 self 5 6665cfg any featurederive featurefull16 self 5 6665cfg featurefull6 self 5 6N665߀cfg߀‵ feature〵뀵full퀵݀6 selfׁ 5́Ё 66ց65مcfgذ featurefull6 self 5 6665爵cfg爵ꈵ feature눵full刵6 self創 5ۉމ 66䉵65֌cfg֌ٌ̱ꌵ featureڌ⌵full䌵Ԍ6 selfˍ 5č 66ʍ65㏵cfg featurefull6 self 5 6665cfg featurefull6ٗ ٗself钵 5ߒ⒵ 6ٗ6蒵65cfgǖ featurefull6 self 5 6665ԙcfg featurefull6 self 5 6665ќcfg featurefull6€ €self 5 6€665ퟵcfg featurefull6 self 5 6665ͤcfg featurefull6˞ ˞self 5 6˞665ݧcfgݧ৵ feature᧵駵full맵ۧ6 selfը 5˨Ψ 66Ԩ65˭cfgĵ featurefull6 self 5ﭵ 6665ݱcfg featurefull6 self 5 6665ٵcfgĶ featurefull6 self 5 6665cfgȸ featurefull¸6 self 5 6665滵cfg滵黵 feature껵full仵6 selfڼ 5мӼ 6ܣ6ټ65ξ潵cfg潵ȷ齵 any꽵 featurederive featurefull併17 self 5ᄉ 76657 self 5 7 775ŵ7 selfŵ 5ŵŵ 77ŵ75ǵǵcfgǵǵǵ featureǵǵfullǵƵ7& &selfǵ 5ǵǵ 7&&7ǵ75ʵɵcfgɵɵʵ anyɵɵʵ featureɵʵderiveʵʵ featureʵʵfullʵɵ17! !self˵ 5ʵʵ 7ֶ!!7˵75͵̵cfg̵ٹ̵͵ any̵̵͵ feature̵̵derive̵͵ feature͵͵full͵̵17ߟ ߟself͵ 5͵͵ 7ߟ7͵75ѵеcfgеее anyеее featureееderiveее featureееfullее17 selfѵ 5ѵѵ 7ʥ7ѵ75ӵҵcfgҵҵӵ anyҵҵӵ featureҵҵderiveҵҵ featureҵӵfullӵҵ17 selfӵ 5ӵӵ 77ӵ75ֵյcfgյյյ anyյյյ featureյյderiveյյ featureյյfullյյ17 selfֵ 5ֵֵ 77ֵ75ٵصcfgصصص anyصصص featureصصderiveصص featureصصfullصص17 selfٵ 5ٵٵ 77ٵ75۵ڵcfgڵڵڵ featureڵڵfullڵڵ7 self۵ 5۵۵ 77۵75޵ݵcfgݵݵݵ anyݵݵݵ featureݵݵderiveݵݵ featureݵݵfullݵݵ17 self޵ 5޵޵ 7I7޵75cfg any featurederive featurefull17+ +self 5 7,+775cfg featurefull7 self 5 7T775cfg featurefull7) )self 5 7*)775cfg featurefull7) )self 5 7*)775cfg featurefull7̘* ̘*self 5 7*̘*775cfg featurefull7֛* ֛*self 5 7*֛*775cfg featurefull7ڜ* ڜ*self 5 7*ڜ*775cfg featurefull7* *self 5 7**775cfgܿ featurefull7Й* Й*self 5 7*Й*775cfg featurefull7) )self 5 7*)775cfg featurefull7ȗ* ȗ*self 5 7*ȗ*775€cfg€ŀր featureƀ΀fullЀ7) )self 5 7*)775ăcfg featurefull7) )self탶 5ヶ惶 7*)7샶75͆cfg featurefull7) )self 5놶 7*)775cfg featurefull7ݿ) ݿ)self 5 7*ݿ)775֊cfg֊يꊶ featureڊ⊶full䊶Ԋ7 self̋ 5‹ŋ 7*7ˋ75cfg featurefull7) )self 5 7*)775cfgݏ any܏ featurederiveʏ featurȅԏfull֏17 self 5 7775ӑcfgӑ֑ anyבڑ featureۑ㑶derive呶푶 featurefullё17* *self蒶 5ޒᒶ 7**7璶75cfg any featurederive featurefull17 self 5 7775cfgߗ anyޗ feature—deriveė̗ featureΗ֗fullؗ17 selfŘ 5 77Ę75暶cfg any featurederive featurefull17 self 5 7775ȝcfg㜶 any䜶眶 feature蜶derive featurefullޜ17 self 5띶 7775ՠퟶcfgퟶ any featurederive featurefull럶17) )self 5 7 ))775ңcfg featurefull5Pcfg featurefull7 self뤶 5ᤶ-䤶 7 7ꤶ75⥶cfg featurefull7Ѣ Ѣself 5 7Ѣ775ᨶcfg any featurederive featurefull17' 'self 5 7('775ΪcfgΪѪ⪶ featureҪڪfullܪ̪7 selfƫ 5 77ū75߯cfg߯⯶ feature㯶믶fullݯ7% %selfҰ 5Ȱ˰ 7&%7Ѱ75ݳcfg any featurederive featurefull17 self 5 7775ܶ#cfg any featurederive featurefull15귶Wcfg any featurederive featurefull17 self 5- 7775ĸcfgĸǸظ featureȸиfullҸ¸7 self 5 7P775漶cfg漶鼶 feature꼶full伶7 self㽶 5ٽܽ 77⽶75cfg featurefull7ݖ ݖself 5 7ݖ775ööcfgööö featureööfullöö7 selfĶ 5öö 77Ķ75ƶŶcfgŶŶŶ featureŶŶfullŶŶ7 selfƶ 5ƶƶ 77ƶ75ʶʶcfgʶʶʶ anyʶʶʶ featureʶʶderiveʶʶ featureʶʶfullʶʶ17 self˶ 5˶˶ 7ݹS7˶75ӶҶcfgҶҶҶ anyҶҶҶ featureҶҶderiveҶҶ featureҶҶfullҶҶ17' 'selfӶ 5ӶӶ 7('7Ӷ75ֶնcfgննն anyննն featureննderiveնն featureննfullնն17' 'selfֶ 5ֶֶ 7('7ֶ75ڶٶcfgٶٶڶ anyٶٶڶ featureٶڶderiveڶڶ featureڶڶfullڶٶ17' 'self۶ 5ڶڶ 7('7۶75ܶܶcfgܶܶܶ anyܶܶܶ featureܶܶderiveܶܶ featureܶܶfullܶܶ17' 'selfݶ 5ݶݶ 7('7ݶ75߶޶cfg޶޶޶ any޶޶޶ feature޶޶derive޶޶ feature޶޶full޶޶17' 'self߶ 5߶z߶ 7('7߶75cfg any featurederive featurefull17' 'self 5` 7('775cfg any featurederive featurefull17' 'self 5n 7('775cfg any featurederive featurefull17 self 5 7775cfg any featurederive featurefull17 self 5 7N775cfg any featurederive featurefull17' 'self 5 7('775cfg any featurederive featurefull17' 'self 5 7('775cfg any featurederive featurefull17' 'self 5 7('775cfg any featurederive featurefull17' 'self 5 7('775cfg any featurederive featurefull17' 'self 5 7('775cfg any featurederive featurefull18' 'self 5 8('775cfg any featurederive featurefull18' 'self 5 8('885cfg any featurederive featurefull1$$5Icfg any featurederive featurefull18$ $self 5- 8$$885cfg featurefull8 self 5l 8885퀷cfg featurefull8 self 5 8885cfg featurefull8 self 5b 8885Ȅcfg featurefull8 self 5儷脷 8885cfg featurefull8 self 5 8885ӈcfgӈֈ爷 feature׈߈fullሷш8 selfɉ 5‰ 8O8ȉ85cfgጷ any featureČderiveƌΌ featureЌ،fullڌ18 selfč 5 8(8Í85ǎcfgǎʎ anyˎΎ featureώ׎deriveَᎷ feature㎷뎷full펷Ŏ18ی یself֏ 5̏Ϗ 8ی8Տ85cfg呷 any䑷 featureȑderiveʑґ featureԑܑfullޑ18 selfȒ 5o 88ǒ85cfgߓ anyޓ feature“deriveē̓ featureΓ֓fullؓ18 selfÔ 5l 88”85cfgו any֕ featurederiveĕ featureƕΕfullЕ18 self 5 8885cfgܘ anyۘ featurederiveɘ feature˘Әfull՘18 self 5 8Е885cfg any featurederive featurefull18 self 5 8885cfgž잷 anyÞƞ랷 featureǞϞderiveўٞ feature۞㞷full垷18 self՟ 5˟Ο 8ȨN8ԟ8- 87--88,76,,,,,,6,,,,,6,7,,,,tokens,self,,{z{{{{##  #Some  Some     "{ "        d                 $Ok $    #+  SomeSomeכ n_nn    X  $OkY$+  !!! expected `_`   !!Err !  ###Some$ $%Y{ X΁d ddY  ΁nnY  !!cursoridentrest punctrest_ÅÅÅÅÅÅÅÅÅȅÅÅÅʅʅЅ  Some  Some         \  ͆͆ ͆ ͆        Ok  ͆ ͆ ͆͆͆͆͆ ͆ۆ(Errۆ( ͆͆͆͆߆#߆߆߆#expected identifier ͆ ͆͆͆Some ͆ ͆ ҅| YÅÅ΁ÅÅ\\\ ۆ(߆#ۆ(߆͆͆cursoridentrest  **  3 "3* Y*Y3 colon Y*    EndY      PunctuatedY PunctuatedY    3Y  C PunctuatedC Punctuated*C  #End #   5 Y  YYYYYCCYC*C3 YYpairsegpunctseg @++@ @inputpath@  XXX       Ok    "7   "  Err             ]YY"""inputselfparserargserr val شt   N   Nkk̵شt شtٴ+  tokensٴselfشtɷG    I NIҷ>ҷ>ɷGҷYɷGʷ I tokensʷself϶YɷGF    ׍I˹˹ NIѹѹҹ==FYF I ˹tokensselfʸYFHջջ ջ   ӎIջ Yû?û?HûYHջYջ tokensselfYH    J NJ  YJ NJ Y J  J tokensselfY נ   !h            Y     !  Y !Y   Y err lit  !  *                *  *        YK     NK        y y    Y   *  Y  Y    K  tokens self Y  E     K    Y     < <  E Y E  Y  tokens self Y E E     K    Y     < <  E Y E  Y  tokens self Y E  *          Y      *  *        YK     Y        5   YK      5  5 5 5 5  5 5 5    YK           5      5    (           ( N       Q Q      Y   *Y Y Y Y   Y    5   Y      Y  (    tokens self Y   *          Y      *  *      #      Y%% #   %             Y   *Y Y Y Y   # Y tokens self Y   *          Y      *  *      #      Y%% # Y             Y   *Y Y Y Y   # Y tokens self Y   *          Y      *  *      #      Y%% # Y             Y   *Y Y Y Y   # Y tokens self Y ԁ*          Y  ԁ*ԁԁ*         ZL L   >    )7     (Z     )Z    Some Zӂӂӂӂׂ N ׂ     ZL #   ! ! ! A"*#$%%$ %%*$A"AAA"AA) * *M ,*) )#"*#***#**Ä&ׄ 'ׄ (ׄ (ׄ '(ÄÄ'&Ä&$A#('*&*A)(+,-Y-,-..( Y,.+.,-+"/Zԁ*Y Y Y Y ZZZ   Z L ZZZ ZZZZZӂZӂޙZ A*Äׄ ׄ  M (Ytokensself Ziter__nextvaliarmis_lastؘ*          Y  ** $     ؠZ%%$ Y   ҙ ҙ ә ؘ ؠZؘ٘*Y Y Y Y $Ytokens٘selfؠZؘל*          Y  ל*לל* $     Z%%$ Y      ŜŜƝ ŜZל*Y Y Y Y $YtokensselfZǭF     Э=Э=ǭFЭԭZǭFȭ tokensȭselfԭZǭF*          Y  **     ˱ZL   NL        ˱ZL    ˱Z) ,    SomeA   NAo o /8  # / ̶Z o    ˱Z) N)E˱Z*Y Y Y Y  L  L A Z  ) /ZAZ tokensself˱Z dot2_token *          Y  **     Z         !   Z! N    Z Z*Y Y Y Y  ! tokensselfZE     <<EZE tokensselfZE*          Y  **     Z         xx Z*Y Y Y Y  tokensselfZzÎÎÎ @Î w@wNz z@ÎNzѬ!  *˭ *˭ѭ!ӭ )*ӭح  ߯߯  SomeY   SomeY PunctuatedY  SomeY PunctuatedY )) į  SomeY PunctuatedY  SomeY PunctuatedY'ʮ ҮҮҮʮ  3 & įį į Ԯ'֮ NC ֮   N į į į į    Z N  Zϰϰ Ű NŰհհְ) !!Z*ɱ"ɱ") N*!"  ϱ"ϱ!б 8#$$%%&''Z*Z'&'((% )Z&(% (&8  Z$%#1%$#³Ѭ* ZѬҬY! ZZ *Y YY Y' CCʮ ҮY   ϰ) *ɱ8Z%ZZtokensҬselfZskipt t p p ѬconstѬ*%  %%*% Z%%*  % brace_token stmtsȲ%*%     Y  Y%  7    $     ZO%$ Y      || Z%ZY YY $YtokensselfZ%     €Y Z% Z        O  Z      || ZZ%ZY YY ZtokensselfZitemsZ%     Y Z% Z       [O   O      vv [%ZY YY [ tokensself[I    # N#@@I[I # tokensself[I%     Y Z% Z       Ǎ[ O   O      vv Ǎ[%ZY YY [ tokensselfǍ[%     ٗY Z% Z       [O   O      vv [%ZY YY [ tokensself[*  !! Y*ݚ[*tokensselfݚ[**ݚ[!! Y*[*tokensselfݚ[**ݚ[!! Y*[*tokensselfݚ[*F    O NO==̌FƤ[F O tokensselfƤ[Fє%єє     Y Zє%ؔ Zؔ         %% Y      ƕ ߨ[[є%єZY YY Y tokensselfߨ[block[%     Y Z% Z $   ɪ ɪ [%%$ Y   ڪ ڪ ۪ || [%ZY YY $Yɪtokensself[                 (                  )[             ,   [  ,      Some Y          End[''̉ '  Punctuated[ PunctuatedY''̉ ' Y :,,,,,, !! !!,  , "# $ $[ $#$ " ##}"}(%&'Y'&'((( Y&(%(&'%}") * *[ ++ N*+)+*), [[ [  [ [ [ [ [ [[[[Y'[Y['[,    [ (Y[  tokensself[last_is_variadiciter __next val inputinputcommainput $      !expected lifetime$  $cursor$ Ӯ     &&&&&&  Š$$$$lي ,Ӯ[ي0 [  [l[&ll΁&ll[$l$cursor   " XXX           "  "" errself" " XXX           " ["" errself"ܡ      -u;u  ܡ Someȁȁ  Some[â Ģ  ͢ ͢ Ģ Ģ   (Ģ Т Ӣ Ӣ â  â  ע ע Ok آ    ;   , ;SomeSomeģ̣̣գգ:գ գ:̣̣ ̣ڣڣ!9 9ݤݤ      vvѥ!ҥ"ܥ#ܥ#ҥ"Bool#ҥ"#$$ѥ!"ѥ!$$"ΥOk[!Υ!;ǥ&,Ŧ&'ʦ(Ŧ̦&%̦Ҧ&) %)&**%Some++%Some,--*כ-, -,- ,%,.̧/̧/*ӧ0ӧ0+/0.!ק0ק/1 .1#".$22.Some[33.Some[ 4552663 45 4665Ok[4432.Ϩ+Ϩ*Ϩ'Ϩ%.%Ϩ+Ϩ*&Ϩ'Ϩ% 788 8expected literal7'8%Err7%7;Ŧ%Ŧ&Ŧ'Ŧ(Ŧ(ŦŦ('Ŧ;)+;Some)< <*)ܡIԦ٧O=[  [ܡݡ[΁ȁ[âĢ ȁ͢Ӣ΁ģ̣գ!ݤ [ѥҥܥŦŦ΁ŦŦ[̧ӧ[ % %գ cursorݡlitrest identrestvalueģlit_boolpunct*rest+lit2rest3ܡfalseܡIԦ٧OգգtrueգգܡIԦ٧Oգգգ  ī&         ! Y& \& tokensself\&&        \ŽŽ Y˽˽̽& \& Žtokensself\&ľ&      ; ; \;پ Yپľ&; \ľ&ž; tokensžself\ľ&ԆY          R# [݆P݆PԆY݆ \ԆYՆ[ tokensՆdataх\ԆYH      ؜؜؜  [%؜ߜ YߜƜ?Ɯ?HƜ [H؜؜Y tokensself[H E           'K    NK     < <  E  \ E   K  tokens self \ E            'K    \     !  \   ! Z        \                   \   \   !Z     tokens self \              'S    NS      \         Some $    \S   '                    !       #      ! Y                 N               s  \    S   [     $ \    !Y     \  tokens self \variadic span   F           'S    NS     = =  F  \ F   S  tokens self \ F E           'K    \     < <  E  \ E  \  tokens self \ E E           'K    \     < <  E  \ E  \  tokens self \ E""" "   )T"""" NT"""""=%" ""  " Կ\T"" ) ""="="="="="=" " " Կ\L"" ,A  " ſ" ſ"" " "  ""=ſ" "= " ݿ"( ݿ" ݿ"ݿ"ݿ"Y ݿ"ݿ" ""ݿ"(" Y  """ "" " ""!""Կ\L"""!" NL """""""""Կ\""" T" ""=%" "\" "Z"ݿ"(Yݿ"ݿ"""!Z""tokens"self"Կ\""F"" "   )K"""" NK"""""="=""F"\"F"" K" "tokens"self"\"F"F"" "   )K"""" \"""""="=""F"\"F""\" "tokens"self"\"F #$Mٝ$ٝ$ٝ$$$ٝ$۝$ ۝$$$$$D$D$$M$$M$ٝ$ٝ$$tokens$e$$M$G$$ $   +S$$$$ \$$$$$>$>ø$$G$\$G$$\$ $tokens$self$\$G%Y %%%%%%%%%%%%%%% %% %%%%%expected ident %%%%Some% % Some%  % % % % %   %   % % %Ok %% % %%%%#Err %#% %% % %%%%% %%(Y%Y%%%%΁%%%%%% %%%%%cursor%ident%rest% %%--%%%..%%%%-%-%%t%%߆&-\\\-.&&& End& &&&..&&߆&.&.߆&-&&&t&߆&&-\\\͔..&&&&-&&&&& Punctuated& Punctuated-&‡&‡&‡&‡&Ç&&&.&.&-&&-&&-&t&p&& & & & && -\\\͔.&&-&& & /& -&pair&& &-\\\-&&&..&&&&/&-&&t&&&'a////&&/&&/&&&&& Punctuated/& Punctuated/&&&&&&&&/&/&/&/&/&/&/&t&p&&&"'a//\\\/&& & //&&/&&&&/& /&&&&"/&/&"/&/& self& /&"&'a//\\\//&&/&&/&&&&& Punctuated/& Punctuated/&&&&&&&&/&///&/&/&/&/&/&t&p&&&>'a//\\\/&& & //&& (/& &&&;& ,//\&$&&&&>/&/&>/&/& \&self& /&>&'a//\\\00&&/&&/&&&&& Punctuated0& Punctuated0&&&&&&&&0&0&0&0&0&0&0&t&p&&&"'a//\\\0&& & 00&&0&&&&ݓ0& 0&&&&"0&0&"0&0& self& 0&"&'a//\\\00&&/&&/&&&&& Punctuated0& Punctuated0&&&&&&&&0&//0&0&0&0&0&0&t&p&&&>'a//\\\0&& & 00&& (0& &&&;& ,00]&$&&&&>0&0&>0&0& ]&self& 0&>&-\\\͔..&&&&-&&&&& Punctuated& Punctuated-&&&&&&&&.&Ԣ0&-&&-&&-&t&p&&&"-\\\.&& & ģ0-&&ج0&&&&0& 0&&&&".&0&"-&0& self& ģ0&"&-\\\͔..&&&&-&&&&& Punctuated& Punctuated-&&&&&&&&.&-˔.&-&&-&&-&t&p&&&>-\\\.&& & ģ0-&& (-& &&&;& ,-.]&$&&&&>.&0&>Ж.&0& ]&self& ģ0&>Ȁ''a//\\\//π'/ր'Ȁ'/π'0Ȁ'/ɀ'pairɀ'Ȁ'''a//\\\/' ' 0/''/''''/'0'/' self& 0'ׂ''a//\\\//ނ'/'ׂ'/ނ'//0ׂ'/؂'pair؂'ׂ''-'a//\\\/'' ' 0/'ǂ' \ǂ' т'ׂ''*ӂ' ,//ڤ]ӂ'''''-/'0'-/'/' ڤ]ׂ'selfہ' 0'-Ӓ''a//\\\00ڒ' /'Ӓ'0ڒ'٧1Ӓ'0Ԓ'pairԒ'Ӓ'''a//\\\0' ' Ө10''0''''0'1'0' self' Ө1'''a//\\\00' /''0'//1'0'pair''˔'1'a//\\\0Δ'Δ' Δ' Ө10Δ'ٔ' ]ٔ' ''Δ'.' ,00]''''˔'10Δ'1˔'10Δ'0Δ' ]'self' Ө1˔'11)))))))2)))))))3)))))))1)))))))2)))))))3))))))) ) * с+ + + + + + + , ѕ, ԕ,,5,(,,,,,,,,,,,, ,,5,,,,  ,,(,(,,,,Ok,,,,,,,5 ], ],5,],(,,΁,,,cursor,,5ʮ, ٮ,ٮ,ٮ,ٮ,ٮ,ٮ,ٮ,ٮ,ٮ,ޮ,ٮ,, !, ,, ,,# ,,,#,į,expected token tree ,ٮ,,,Some!, , Some!,  , , , , ,   ,   , , ,Ok! ,, , ,Ӯ,ٯ,,(Err ,(گ, Ӯ,, , ʮ,,,,, ʮ,,"!Ӯ, ]ʮ,ˮ,!ٮ,ٮ,΁ٮ,ٮ,,,,!, ,,,#,,cursorˮ,tt,rest, ʮ,,,?',?',?'#,?' ,?'#,?',?' (],?',,',?',?',,?',?',?',?' ,?' ,?' ,?',?' )7,?',', , ,' ,',,,',$!,",",$,",expected group token?!,,?', , Some, , , , , ,' ,', ,?' ,,,,,,,,,,,, ,, , ,,, , ,,, ,, ,,Some,,Some,,Some˲, ,, ,,,,, ] ,,ײ,)ײ,  ײ,),,,,,,,,,,,,,ʳ, ˳,˳,ҳ, ҳ, ʳ, ʳ,  ֳ, ֳ,dz,Okdz,׳,,,,,,,, ,,,',,,,",)Err!,),!,,,,,,,Dz,$], ],,],?'],?'],?',?',?' ],?'],?',,,,,,,,,΁,,,,,,,,,˲, ,,,,,,]ʳ, ˳,ҳ,,),$,),],?' cursor,iter,?'__next,?'val, delim, inside,span,rest,group˲, ,,,ұ,,> ,?',?',,,,,,Dz,],?'],>,,ұ,,?'յ,,,,,,,,,,,,,,,, ,ö,* ö,ö,ö,*ʶ,ж,expected punctuation token ʶ,#,,,Some, , Some,  , , , , ,   ,   , , ,Ok ,, , ,޵,,,/Err ,/, ޵,,,,յ,,(޵, ]յ,ֵ,,,΁,,,,,, ,,ö,*ö,cursorֵ,punct,rest, յ,,ȁ ,,,,,,,,,,,,[, ,Ÿ, Ÿ,,& ,,,&,,expected literal token ,,˸,˸,Some[ȁԸ, Ը, Some[, , , , , , ȁ ,  , , ޸,Ok[ ޸,, , ,,,,+Err ,+, ,, , ,,,,, ,Ÿ,,[, ],,[,,΁,,Ÿ,ȁ˸,Ը,[,ȁ,,,&,,cursor,literal˸,restԸ, , - - -- ݽ8\\\---- -- ----- -8- - -t-- - ݽ8\\\----]-- ----- -8- -]-t--  Ώ.11!!2!!1ԕ""ԕԕԕԕԕԕ2""2""1""1""1җ""җҗҗҗҗҗ2""1""2##1##1̙##̙̙̙̙̙̙2##1##1##2##3ɛ##ɛɛɛɛɛɛ3##1$$2$$2$$1ǝ$$ǝǝǝǝǝǝ2$$1$$2$$2$$1ğ$$ğğğğğğ2%%2%%1ߠ%%ߠߠߠߠߠߠ1%%2ġ%%ġġġġġġ2%%1%%2ۢ%%ۢۢۢۢۢۢ2%%1%%2&&3&&2ؤ&&ؤؤؤؤؤؤ3&&1&&1&&2&&1ئ&&ئئئئئئ    (+M+++++(((((((((((((((((((& (&( ((((Some( ( Some( ( ( ( ((+( ((   (( ( (  ((( ( ( (% (( ((( ( ((((((( (% M(% (((<OkM (<( ( ( ( ((((((C ((((Err((( ((((((((((expected `raw`(((((Some( (((^(+ ^((((΁(((&((((((((^(%M(( (((((((((cursor(ident(rest( (((raw(((((((( 0P00000( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (&  (& (  ( ( ( ( Some(  ( Some( (  (  (  ( ( 0(  ( (    ( (  (  (   ( ( (  (  (  (%  ( ( ( ( ( (  ( ( ( ( ( ( (  (%  P(%  ( ( (< OkP (< (  (  (  (  ( ( ( ( ( (C ( ( ( ( Err( ( ( ( ( ( ( ( ( ( ( ( ( expected `macro_rules`( ( ( ( ( Some(  ( ( ( ^( 0 ^( ( ( ( ΁( ( (& ( ( ( (( ( ( ( ^(% P( ( ( ( ( ( ( ( ( ( ( cursor( ident( rest(  ( ( (  macro_rules  ( ( ( ( ( ( (   content ident in cursor expr match crate group parse_parens   cursor crate __private  Ok parens  content parens content parens token crate __private  Err error return crate __private  Err errorK Parse a set of parentheses and expose their content to subsequent parsers.N # Example  ``` # use quote::quote; #= use syn::{parenthesized, token, Ident, Result, Token, Type};@& use syn::parse::{Parse, ParseStream};)! use syn::punctuated::Punctuated;$0 // Parse a simplified tuple struct syntax like:3 // // struct S(A, B); struct TupleStruct {" struct_token: Token![struct],% ident: Ident, paren_token: token::Paren,") fields: Punctuated,, semi_token: Token![;], } impl Parse for TupleStruct { 3 fn parse(input: ParseStream) -> Result {6 let content; Ok(TupleStruct {* struct_token: input.parse()?,-# ident: input.parse()?,&; paren_token: parenthesized!(content in input),>< fields: content.parse_terminated(Type::parse)?,?( semi_token: input.parse()?,+ }) }  } # # fn main() { # let input = quote! { # struct S(A, B); # }; 2 # syn::parse2::(input).unwrap();5 # } ```  macro_export    content ident in cursor expr match crate group parse_braces   cursor crate __private  Ok braces  content braces content braces token crate __private  Err error return crate __private  Err errorL Parse a set of curly braces and expose their content to subsequent parsers.O # Example  ``` # use quote::quote; #6 use syn::{braced, token, Ident, Result, Token, Type};9& use syn::parse::{Parse, ParseStream};)! use syn::punctuated::Punctuated;$* // Parse a simplified struct syntax like:- // // struct S { // a: A, // b: B, // }  struct Struct {" struct_token: Token![struct],% ident: Ident, brace_token: token::Brace,"* fields: Punctuated,- } struct Field { name: Ident, colon_token: Token![:], ty: Type, } impl Parse for Struct {3 fn parse(input: ParseStream) -> Result {6 let content; Ok(Struct {* struct_token: input.parse()?,-# ident: input.parse()?,&4 brace_token: braced!(content in input),7= fields: content.parse_terminated(Field::parse)?,@ }) }  } impl Parse for Field {3 fn parse(input: ParseStream) -> Result {6 Ok(Field {" name: input.parse()?,%) colon_token: input.parse()?,, ty: input.parse()?,# }) }  } # # fn main() { # let input = quote! { # struct S { # a: A, # b: B, # } # }; - # syn::parse2::(input).unwrap();0 # } ```  macro_export   content ident in cursor expr match crate group parse_brackets  cursor crate __private  Ok brackets  content brackets content brackets token crate __private  Err error return crate __private  Err errorF Parse a set of square brackets and expose their content to subsequentI parsers.  # Example  ``` # use quote::quote; # use proc_macro2::TokenStream;!, use syn::{bracketed, token, Result, Token};/& use syn::parse::{Parse, ParseStream};)" // Parse an outer attribute like:% // // #[repr(C, packed)] struct OuterAttribute { pound_token: Token![#],# bracket_token: token::Bracket,& content: TokenStream, } impl Parse for OuterAttribute {#3 fn parse(input: ParseStream) -> Result {6 let content; Ok(OuterAttribute {) pound_token: input.parse()?,,9 bracket_token: bracketed!(content in input),<' content: content.parse()?,* }) }  } # # fn main() { # let input = quote! { # #[repr(C, packed)]  # }; 5 # syn::parse2::(input).unwrap();8 # } ```  macro_export  ɬ*ɬ*׬ abstractج $crate token Abstract as $crate token Asŭ˭ asyncƭӭ֭ $crateحޭ token Async auto $crate token Auto awaitîڮ $crateŮˮ tokenͮҮ AwaitԮۮ become $crate token Become boxɯ $crate tokenï Boxůʯدޯ breakٯ $crate token Break const $crate token Constưϰ continueǰ԰װ $crateٰ߰ token Continue crate $crate token Crate defaultűȱ $crateʱб tokenұױ Defaultٱ do $crate token Do dynʲ $crate tokenIJ DynƲ˲ٲ޲ elseڲ $crate token Else enum $crate token Enumų̳ externƳӳֳ $crateس޳ token Extern final $crate token Final fn´Ŵٴ $crateǴʹ tokenϴԴ Fnִڴ for $crate token For ifµ $crate token Ifõѵֵ implҵߵ $crate token Impl in $crate token In letɶ̶ $crateζԶ tokenֶ۶ Letݶ loop $crate token Loop macroη $crate tokenƷ MacroȷϷݷ match޷ $crate token Match mod $crate token Modɸθ moveʸ׸ڸ $crateܸ token Move mut $crate token Mut override¹Ź߹ $crateǹ͹ tokenϹԹ Overrideֹ priv $crate token Priv pubʺ $crate tokenĺ Pubƺ˺ٺݺ refں $crate token Ref return $crate token Returnƻ˻ SelfǻԻ׻ $crateٻ߻ token SelfType self $crate token SelfValue ¼ staticɼ̼ $crateμԼ tokenּۼ Staticݼ struct $crate token Struct superӽ $crateĽ tokenƽ˽ SuperͽԽ trait $crate token Trait try $crate token TryξӾ typeϾܾ߾ $crate token Type typeof $crate token Typeof¿ unionʿͿ $crateϿտ token׿ܿ Union޿ unsafe $crate token Unsafe unsized $crate token Unsized use $crate token Use virtual $crate token Virtual where $crate token Where while $crate token While yield $crate token Yield  $crate token Add  $crate token AddEq  $crate token And $crate token AndAnd  $crate token AndEq  $crate token At  $crate token Bang  $crate token Caret  $crate token CaretEq $crate token Colon $crate token Colon2 $crate token Comma  $crate token Div  $crate token DivEq $crate token Dollar $crate token Dot $crate token Dot2 $crate token Dot3 $crate token DotDotEq $crate token Eq $crate token EqEq $crate token Ge $crate token Gt $crate token Le $crate token Lt  $crate token MulEq $crate token Ne  $crate token Or  $crate token OrEq $crate token OrOr $crate token Pound $crate token Question $crate token RArrow $crate token LArrow  $crate token Rem  $crate token RemEq $crate token FatArrow $crate token Semi  $crate token Shl  $crate token ShlEq  $crate token Shr  $crate token ShrEq  $crate token Star  $crate token Sub  $crate token SubEq  $crate token Tilde _ $crate token Underscore m*K A type-macro that expands to the name of the Rust type representation of aN given token.? See the [token module] documentation for details and examples.B [token module]: crate::token   macro_export ì'''''''' tt'' tt' ''''' crate'' parse_quote' ' parse''' ' crate'' __private' ' quote'' quote' ''''''' tt' '''L Quasi-quotation macro that accepts input like the [`quote!`] macro but usesȴ'O= type inference to figure out a return type for those tokens.'@ٵ'7 [`quote!`]: https://docs.rs/quote/1.0/quote/index.htmlݵ':'J The return type can be any syntax tree node that implements the [`Parse`]'M trait.' ' [`Parse`]: crate::parse::Parse'"' ```' use quote::quote;' use syn::{parse_quote, Stmt};'!' fn main() {' let name = quote!(v);' let ty = quote!(u8);''$ let stmt: Stmt = parse_quote! {''- let #name: #ty = Default::default();۸'0 };' ' println!("{:#?}", stmt);'  }' ```¹'ʹ'L *This macro is available only if Syn is built with the `"parsing"` feature,ι'OK although interpolation of syntax tree nodes into the quoted tokens is only'NB supported if Syn is built with the `"printing"` feature as well.*'E' # Example' Ż'G The following helper function adds a bound `T: HeapSize` to every typeɻ'J% parameter `T` in the input generics.'(' ```'0 use syn::{parse_quote, Generics, GenericParam};ɼ'3'8 // Add a bound `T: HeapSize` to every type parameter T.';: fn add_trait_bounds(mut generics: Generics) -> Generics {'=( for param in &mut generics.params {'+8 if let GenericParam::Type(type_param) = param {';< type_param.bounds.push(parse_quote!(HeapSize));'? }'  }'  generics' }̿' ```ҿ'ڿ' # Special cases޿''K This macro can parse the following additional types as a special case even'N0 though they do not implement the `Parse` trait.'3'N - [`Attribute`] — parses one attribute, allowing either outer like `#[...]`'Q or inner like `#![...]`'L - [`Punctuated`] — parses zero or more `T` separated by punctuation'O) `P` with optional trailing punctuation',= - [`Vec`] — parses the same as `Block::parse_within`'@'4 [`Punctuated`]: crate::punctuated::Punctuated'7# [`Vec`]: Block::parse_within'&' # Panics' 'I Panics if the tokens fail to parse as the expected syntax tree type. The'LK caller is responsible for ensuring that the input tokens are syntactically'N valid.' '  macro_export' '' '' '' ' tokenstream' ' ident' as'' ty'' ty'''' match'' crate'' parse_macro_input'' parse'''' ty''''' tokenstream' ''' crate'' __private' ' Ok''' data'' data''' crate'' __private' ' Err''' err'''' return'' crate'' __private' ' TokenStream' ' from''' err'' to_compile_error''''''' ' tokenstream' ' ident' with'' parser'' path'''' match'' crate'' parse'' Parser'' parse'''' parser''' tokenstream' ''' crate'' __private' ' Ok''' data'' data''' crate'' __private' ' Err''' err'''' return'' crate'' __private' ' TokenStream' ' from''' err'' to_compile_error'''''''' tokenstream' ' ident''''' crate'' parse_macro_input' '''' tokenstream' as' _'''J Parse the input TokenStream of a macro, triggering a compile error if the'M tokens fail to parse.''K Refer to the [`parse` module] documentation for more details about parsing'N in Syn.' ': [`parse` module]: crate::rustdoc_workaround::parse_module'='
'' # Intended usage''7 This macro must be called from a function that returns':M `proc_macro::TokenStream`. Usually this will be your proc macro entry point,'PE the function that has the #\[proc_macro\] / #\[proc_macro_derive\] /'H% #\[proc_macro_attribute\] attribute.'(' ```' # extern crate proc_macro;' #' use proc_macro::TokenStream;' & use syn::{parse_macro_input, Result};')& use syn::parse::{Parse, ParseStream};')' struct MyMacroInput {' /* ... */' }'' impl Parse for MyMacroInput {'!3 fn parse(input: ParseStream) -> Result {'6 /* ... */' # Ok(MyMacroInput {})' }'  }''$ # const IGNORE: &str = stringify! {'' #[proc_macro]' # };'6 pub fn my_macro(tokens: TokenStream) -> TokenStream {'9< let input = parse_macro_input!(tokens as MyMacroInput);'?' /* ... */' # "".parse().unwrap()' }' ```''
'' # Usage with Parser''J This macro can also be used with the [`Parser` trait] for types that have'M' multiple ways that they can be parsed.'*'B [`Parser` trait]: crate::rustdoc_workaround::parse_module::Parser'E' ```' # extern crate proc_macro;' #' # use proc_macro::TokenStream;'"( # use syn::{parse_macro_input, Result};'+ # use syn::parse::ParseStream;'" #' # struct MyMacroInput {}' #' impl MyMacroInput {'= fn parse_alternate(input: ParseStream) -> Result {'@ /* ... */' # Ok(MyMacroInput {})' }'  }''$ # const IGNORE: &str = stringify! {'' #[proc_macro]' # };'6 pub fn my_macro(tokens: TokenStream) -> TokenStream {'9O let input = parse_macro_input!(tokens with MyMacroInput::parse_alternate);'R' /* ... */' # "".parse().unwrap()' }' ```''
'' # Expansion''D `parse_macro_input!($variable as $Type)` expands to something like:'G' ```no_run'  # extern crate proc_macro;' #' # macro_rules! doc_test {') # ($variable:ident as $Type:ty) => {',' match syn::parse::<$Type>($variable) {'*$ Ok(syntax_tree) => syntax_tree,''N Err(err) => return proc_macro::TokenStream::from(err.to_compile_error()),'Q }' # };'  # }' #'G # fn test(input: proc_macro::TokenStream) -> proc_macro::TokenStream {'J. # let _ = doc_test!(input as syn::Ident);'1% # proc_macro::TokenStream::new()'( # }' ```''  macro_export' ''((((( ident(( ident((((G((( allow((( non_camel_case_types( pub( struct(( ident((( pub( span((( crate(( __private( ( Span((((( doc((( hidden(((( allow((( dead_code( ( non_snake_case( pub( fn(( ident(( __S((( crate(( __private( ( IntoSpans( (((( crate(( __private( ( Span((1( ((( span(( __S(((( ident(((( ident((( span((( crate(( __private( ( IntoSpans( ( into_spans( (( span(((0(( impl(( crate(( __private( ( Default( for(( ident((( fn( default(((( Self(((( ident((( span((( crate(( __private( ( Span(( call_site( (((( crate(( impl_parse_for_custom_keyword( (((( ident((( crate(( !impl_to_tokens_for_custom_keyword(! (((( ident((( crate(( impl_clone_for_custom_keyword( (((( ident((( crate(( $impl_extra_traits_for_custom_keyword($ (((( ident((((M Define a type that supports parsing and printing a given identifier as if it(P were a keyword.(( # Usage( (G As a convention, it is recommended that this macro be invoked within a(JI module called `kw` or `keyword` and that the resulting parser be invoked(L% with a `kw::` or `keyword::` prefix.((( ```( mod kw {( $ syn::custom_keyword!(whatever);(' }( ```((K The generated syntax tree node supports the following operations just like(N any built-in keyword token.((+ - [Peeking] — `input.peek(kw::whatever)`(.(1 - [Parsing] — `input.parse::()?`(4(5 - [Printing] — `quote!( ... #whatever_token ... )`(8(K - Construction from a [`Span`] — `let whatever_token = kw::whatever(sp)`(N(> - Field access to its span — `let sp = whatever_token.span`(A(+ [Peeking]: crate::parse::ParseBuffer::peek(., [Parsing]: crate::parse::ParseBuffer::parse(/ [Printing]: quote::ToTokens( [`Span`]: proc_macro2::Span(( # Example( (L This example parses input that looks like `bool = true` or `str = "value"`.(OI The key must be either the identifier `bool` or the identifier `str`. If(LK `bool`, the value may be either `true` or `false`. If `str`, the value may(N be any string literal.((L The symbols `bool` and `str` are not reserved keywords in Rust so these are(OC not considered keywords in the `syn::token` module. Like any other(FK identifier that is not a keyword, these can be declared as custom keywords(N) by crates that need to use them as such.(,( ```(+ use syn::{LitBool, LitStr, Result, Token};(.& use syn::parse::{Parse, ParseStream};()( mod kw {(  syn::custom_keyword!(bool);(# syn::custom_keyword!(str);(" }(( enum Argument {( Bool {( bool_token: kw::bool,(! eq_token: Token![=],(  value: LitBool,( },(  Str {(  str_token: kw::str,( eq_token: Token![=],(  value: LitStr,( },(  }(( impl Parse for Argument {(3 fn parse(input: ParseStream) -> Result {(6, let lookahead = input.lookahead1();(/& if lookahead.peek(kw::bool) {() Ok(Argument::Bool {(#8 bool_token: input.parse::()?,(;* eq_token: input.parse()?,(-' value: input.parse()?,(* })(, } else if lookahead.peek(kw::str) {(/ Ok(Argument::Str {("6 str_token: input.parse::()?,(9* eq_token: input.parse()?,(-' value: input.parse()?,(* })( } else {(# Err(lookahead.error())(& }(  }(  }( ```((  macro_export( û((((((( ident(( ident(((( impl(( crate(( token(( CustomToken( for(( ident((( fn( peek((( cursor((( crate(( buffer(( Cursor((( crate(( __private( ( bool((( if( let( Some((((( ident(( _rest(( cursor(( ident((((( ident(( stringify( (((( ident( else((( false( fn( display(((( (!'static(( crate(( __private( ( str((( concat( (((`(( stringify( (((( ident((`( impl(( crate(( parse(( Parse( for(( ident((( fn( parse((( input((( crate(( parse(( ParseStream( (( crate(( parse(( Result((( ident(((( input(( step((( ( cursor( ((( if( let(( crate(( __private( ( Some((((( ident(( rest(( cursor(( ident((((( if( ident(( stringify( (((( ident((( return(( crate(( __private( ( Ok(((((( ident((( span(( ident(( span(((( rest((( crate(( __private( ( Err((( cursor(( error((( concat( ((( expected `( ( stringify( (((( ident((`((( (cfg(Ż(( feature((parsing( ((doc(ƻ(( hidden(((  macro_export( ǻ((((((( ident(( ident(((( impl(( crate(( __private( ( ToTokens( for(( ident((( fn( to_tokens( (( ( self(( tokens(( ( mut(( crate(( __private( ( TokenStream2( (( let( ident((( crate(( Ident(( new((( stringify( (((( ident(( self(( span((( crate(( __private( ( TokenStreamExt(( append((( tokens(( ident(((((cfg(ɻ(( feature((printing( ((doc(ʻ(( hidden(((  macro_export( ˻((!(Ӂ)((( ident(( ident(((Ё) impl(( crate(( __private( ( Copy( for)) ident)))))À) allow))€) clippy)) expl_impl_clone_on_copy) impl̀)Ҁ) crateӀ)؀) __privateڀ) ) Clone) for)) ident))ʁ) fn) clone))) ) self)) Self))) ) self)с)((cfg(ͻ(( feature(( clone-impls( ((doc(λ(( hidden(((  macro_export( ϻ(())))) ident)) ident)))))s)O)cfg)ѻ)) not))) feature)) extra-traits))%)doc)һ)) hidden)))  macro_export) ӻ)Š)$))))) ident)) ident)))))) tt)) tt) ))))J pub) structƝ)͝) identΝ)ԝ)) pub) spans))) crate)) custom_punctuation_repr) ))))))) tt) ))))) doc))) hidden)ž)Þ)) allowĞ)ɞ)) dead_codeʞ) Ӟ) non_snake_case՞) pub) fn)) ident)) __S))) crate)) __private) ) IntoSpans) )) crate)) custom_punctuation_repr) ))Ɵ)))ğ)) ttŸ) ş) ǟ)ɟ)) spansן)ܟ) __Sޟ)))) ident))) let) _validate_len) )0)))ˠ) )) crate)) custom_punctuation_len) ))ʠ) strict)Š)Ǡ) ttȠ) ̠)͠)۠) identܠ))) spans))) crate)) __private) ) IntoSpans) ) into_spans) )) spans) impl̡)ѡ) crateҡ)ס) __private١) ) Default) for)) ident))) fn) default)))) Self)))) ident))ע) ) crate)) __private) Ģ) SpanƢ)ʢ) call_site̢) բ)֢)) crate)) !impl_parse_for_custom_punctuation)! )))) ident)))))) tt) ))) crate)ţ) %impl_to_tokens_for_custom_punctuationǣ)% )))) ident)))))) tt) ))) crate)) !impl_clone_for_custom_punctuation)! ))¤)) ident)))))) tt) )ä)ͤ) crateΤ)Ӥ) (impl_extra_traits_for_custom_punctuationդ)( )))) ident)))))) tt) ))))J Define a type that supports parsing and printing a multi-character symbol)M# as if it were a punctuation token.ԋ)&) # Usage) ) ```)/ syn::custom_punctuation!(LeftRightArrow, <=>);)2 ```ʌ)Ҍ)K The generated syntax tree node supports the following operations just like֌)N any built-in punctuation token.)#ɍ)- - [Peeking] — `input.peek(LeftRightArrow)`͍)0)3 - [Parsing] — `input.parse::()?`)6). - [Printing] — `quote!( ... #lrarrow ... )`)1)F - Construction from a [`Span`] — `let lrarrow = LeftRightArrow(sp)`)I)W - Construction from multiple [`Span`] — `let lrarrow = LeftRightArrow([sp, sp, sp])`)Z)< - Field access to its spans — `let spans = lrarrow.spans`)?)+ [Peeking]: crate::parse::ParseBuffer::peek)., [Parsing]: crate::parse::ParseBuffer::parse)/ [Printing]: quote::ToTokensÑ) [`Span`]: proc_macro2::Span)) # Example) ) ```)+ use proc_macro2::{TokenStream, TokenTree};).4 use syn::parse::{Parse, ParseStream, Peek, Result};В)7! use syn::punctuated::Punctuated;)$ use syn::Expr;)). syn::custom_punctuation!(PathSeparator, );ē)1) // expr expr expr ...)! struct PathSegments {)/ segments: Punctuated,)2 })) impl Parse for PathSegments {)!3 fn parse(input: ParseStream) -> Result {)6. let mut segments = Punctuated::new();̕)1)8 let first = parse_until(input, PathSeparator)?;);2 segments.push_value(syn::parse2(first)?);)5)* while input.peek(PathSeparator) {)-1 segments.push_punct(input.parse()?);)4ۗ); let next = parse_until(input, PathSeparator)?;ߗ)>5 segments.push_value(syn::parse2(next)?);)8 }ט) )& Ok(PathSegments { segments }))) })  }))M fn parse_until(input: ParseStream, end: E) -> Result {)P) let mut tokens = TokenStream::new();),2 while !input.is_empty() && !input.peek(end) {)5. let next: TokenTree = input.parse()?;ۚ)1# tokens.extend(Some(next));)& })  Ok(tokens)) }ћ)כ) fn main() {ۛ)) let input = r#" a::b c::d::e "#;),: let _: PathSegments = syn::parse_str(input).unwrap();)= }֜) ```ܜ))  macro_export) ֻ))))))) ident)) ident)))))) tt)) tt) )))) implƦ)˦) crate̦)Ѧ) tokenӦ)ئ) CustomTokenڦ) for)) ident))) fn) peek))) cursor))) crate)) buffer)) Cursor)) bool))) ) crate§)ǧ) tokenɧ)Χ) parsingЧ)ק) peek_punct٧) )) cursor))) crate)) stringify_punct) ))))))) tt) ) fn) display)))) )!'static)è) crateĨ)ɨ) __private˨) Ԩ) str֨)ڨ)) concat) ))) `))) crate)) stringify_punct) ))))))) tt) ))`) impl©)ǩ) crateȩ)ͩ) parseϩ)ԩ) Parse֩) forܩ)) ident))) fn) parse))) input))) crate)) parse)) ParseStream) )) crate)) parse)) Result))) ident))ª)) letԪ) spansت)ݪ)ߪ) crate)) custom_punctuation_repr) ))))))) tt) ))) crate)) token)) parsing)) punct))) input)«)ī) crateū)ʫ) stringify_punct̫) ۫)ܫ))ݫ)ޫ))߫) tt) ))) Ok)))) ident))) spans))))cfg)ػ)ǥ) feature))parsing) )̥)doc̥)ٻϥ)֥) hiddenХ)ʥ)ۥ)  macro_exportۥ) ڻ٥))!ܮ))))) ident)) ident)))))) tt)) tt) )))) impl)) crate)) __private) ) ToTokens) for)) ident))) fnį) to_tokensǯ) Я)) ѯ) selfү)֯) tokensد)ޯ) ) mut)) crate)) __private) ) TokenStream2) )) ) crate)) token)) printing)) punct))) ) crate)) stringify_punct) ΰ)ϰ)װ)а)Ѱ)հ)Ұ) ttӰ) ְ)ذ) ڰ) self۰)߰) spans)) tokens))))cfg)ܻ)) feature))printing) ))doc)ݻ)) hidden)))  macro_export) ޻))%ij)޵)ʳ))˳) ident̳)ѳ) identҳ)׳)ٳ)ڳ))۳) ttܳ)޳) tt߳) )))۵) impl)) crate)) __private) ) Copy) for)) ident)))))δ) allow))ʹ) clippy)) expl_impl_clone_on_copy) implش)ݴ) crate޴)) __private) ) Clone) for)) ident))յ) fn) clone))) ) self)) Self))˵) ) self)ܵ))ز)cfgز)۲)) featureܲ)) clone-impls) ֲ))doc))) hidden)))  macro_export) ))!))ƾ)߾)Ǿ) identȾ);) identξ)Ӿ)վ)־)ݾ)׾) ttؾ)ھ) tt۾) ޾))))))_ǽ)cfgǽ)ʽ)) not˽)ν)) featureϽ)׽) extra-traitsٽ)Ž)%)doc))) hidden)))  macro_export) ))(¿))ȿ)ӿ)ɿ)ʿ)ѿ)˿) tt̿)ο) ttϿ) ҿ)տ)ؿ)))) ) crate)) __private) ) Span))0)))) )) crate)) custom_punctuation_len) ))) lenient))) tt) ))))doc))) hidden)))  macro_export) ))))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident)) ))))1))))) mode)) ident))))))2))))) mode)) ident)) ))))2))))) mode)) ident)) ))))1))))) mode)) ident)) ))))1))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident))))))1))))) mode)) ident))))))2))))) mode)) ident))))))1))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident))))))1))))) mode)) ident))))))2))))) mode)) ident))))))3))))) mode)) ident))))))3))))) mode)) ident))))))1))))) mode)) ident))))))2))))) mode)) ident))))))2))))) mode)) ident))))))1))))) mode)) ident))))))2))))) mode)) ident))))))1))))) mode)) ident)) ))))2))))) mode)) ident))))))2))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident))))))2))))) mode)) ident))))))1))))) mode)) ident))))))1))))) mode)) ident))))))2))))) mode)) ident))))))2))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident))))))2))))) mode)) ident))))))1))))) mode)) ident)) ))))2))))) mode)) ident)) ))))3))))) mode)) ident)) ))))2))))) mode)) ident)) ))))3))))) mode)) ident)) ))))1))))) mode)) ident)) ))))1))))) mode)) ident)) ))))2))))) mode)) ident)) ))))1)))) lenient))) tt)) tt))))0)))) strict))) tt)) tt))))))) crate)) custom_punctuation_unexpected) )))) tt))0))1) )doc))) hidden)))  macro_export) )) rustfmt)skip)))))))))))A)<)doc))) hidden)))  macro_export) )))))))))) tt)) tt) )))) concat) )))))) stringify) )))) tt)) )))c)doc))) hidden)))  macro_export) ))ls3k(Gy6Ml@>ʭ;ǰ8ij1߮G@'d5lXK*p;?/<s3j*a!XXZt & rA../000!H111272}2#TUHUbOmPTVVZVVf_`_bcccei[jjjk\kkelllِ \ɑ:0ܓ)w0\m;_.ֹ C}ǺMʻ`<o};x,iFH~];! Q   ,[---.a_..c. /c///'0i00dM`OOPPP-QaQQQQ1RyRRgUVV5WlWWWXMXXg:ZZ#[m[:s<|ʂBfރ,PzȄ:dօ$Np܆UL"e,ZQQڝhVܟj>P:ǣ\}åQGէ}éQǪTXsGa5ð oִd={(?{aۿig$-\];i0ls nO+p"e&iV0 Iw{zU}/9r L(sM!'mjF"c"a";~ X  2     }  W  1It NiC`233!4X45789:z<>0>$?>?@A@@ A@AA'BBBBCCDgDDDkEEEEFFxFIGGG%HHXH)IeIIJKWK.LMMXNOOzPQ`TU3V\VVVV)W{=|q|||1}e}}}%~`~~~ VNȀBÁ ?^?:ƪ Hʫ LȪάPҭPԮXAkA{Y*)u8ZD<4z,rWDz)].x/e']Ue/c#W$ZR B   o :    J   2 h   * `   ?pP}2Z3334^4445b55 5#6f66*6'7j777+8n888/9wr9993:v::K:7;z;;;?<<<=F===+ >K>>>?O???@S@@@AWAAAB[BBB C_CCC@DoDDD*Ef8n9xٯXOѲB}$gY.^6iu7[Bd9%Zj(!k;|SU6m?JDK'9|?t3qE @[ OCw.m$cYO-ld   V  2qMY +(S"!%$kKgLL M\ !o`ƓGHZ ! @! ! # # # $ $ $ % ?& ~& & & 9H j 2k `k r s [s s s Ot t u  ڗ  \ r + W & l  d  ? u 7 m / _ / j * Z P P  = 2 s  =  - l   s1 p   5 t   8 w   ; z   ? ~   C    E    I    9 \ ] ] ^ O^ ^ ^ >_ _ _ ` K` ` a Za a a 1b b b c Ic c ' f + j / p g$5 t 9 z A Ō  J&G ˍ O Я ï 7 l _ ѳ Q w յ  @ t ; f  ^  P [ 9 m %(o L  _    W    -(  ; z   ? ~ )     < ( J  ? n          _    9 " # I$ ' =' _' ' ' 5 5 5 z6 6 |( ) * + q, %- ". . / 0 s1 2 3 4 w7 7 7 G8 8 8 E9 9 9 : ; = B jD H 1I +xI I I I 4J lJ J J K 1K ]K |K K K K L ?L M wR \R dR S T NT 9T AT T V sY \ ^ "a c e i n r Pv 0/z 3 & 1V3< Ï  Ҵ q \ d V p [ c ]5v a i e5 < m5 3 u5 - P }56 R  Y L  ~ 79 9 $ , =;o Z b (   Z     I  ?A    { wEKC.  !  + b M U   DGKI    T MJ   = c N V       V   ! ! *" 5# (# # $ }$ $ )& & g' ' ' ( E) *) 2) * 1* u* d* , , O- . . F/ / 0 2 2 Q3 y4 l4 4 6 5 5 v6 6 NO9 9 9 : 'RQ3< < &< < > > > `? bA MA UA ^B rD _D E F F F F F G G -H H J J J :K lL N N O 2P %P P Q Q Q /R mR STNU 9U AU U QW9VW W W oX Z Z Z t[ ^[ f[ 4] v] \ \ R^ ^ ] 5_ _ (_ _ a mc e h k n n n o s s s >t ~t pz [z cz z O ܅ Dž υ k S > F Ԉ ,  O ٗ   q g H ~  ğ 6  Y O 0  . !  N ȸ ؽ > Ծ 5  U8<D@AԿ tM,aeqikmχp p b  C Y t  Y N Y ) RZ- Z c Zg "[ ~ ( Y      1 b U A e # V P N [ 6 "  Q   #0 y0 0 D2 2 3 7 7 7 8 R8 8 8 :9 9 9 -: A %A RA A A #B B B 5C C C [F .G `G G G H MH G H I G I I J CJ J J M KN N N O [P [(W [c [3 j [} l [[t z ̀ [ [[} Ѭ  õ [ 1 ^w c % ok 2t  }  9 X @ ;   O e : {  x  wKo# y(y0y8yzc'()J./?//{/Z9$9>4?r???5@r@@@AMAqAAAB#BYBBBBC8CCCC%DoDDDEHEEE|KKTTgYMY]Pcc[dddd}effFff0gg:hgehhtiiijj'kk_kkIllSmm~mmnon1oo@ppxppbqqlr+rrsstsJttYuuu>vvw6wwEx|xxyz'yk{M{zH}n}|}"~~~B" ;O)e9ʇ1O2̉h8ӎtې_Xߒy;aK!X # <P*f:ˡ2S6Уl<רxߪc]~@fP&])BŸV0l@ѻ8Y<ֽrB~ibEkU+b3L`:vJBcF| L#slOu)_5l 7Pd>z NFeH~N%ukNt(^4k8 Qe?{ O   G   i L  R)yrU{/e;r&=% V  j!!D""#T##$L$$%k&N&%(())*T**++++,,,{-q./..T1z11.22233d44:5q55%6777>7:&:W::k;;E<<=U==>M>>?k@N@?BBCCDTDD+EEEFFF{GrHIHHUK{KK/LLLMMeNN;OrOO&PQQQ?QT'TXTTlUUFVVWVWWXNXXYoZRZY\\]]^X^^/__````axbcbb[eee5ffgggkhhAixii,j#kkkDkn,n]nnqooKppq[qq#rSrrsstVtsvv wwx\xx3yyzzzz{z|}}|]7ȀށmCz.*΅K 3dxRb*Zތ֍z]ߐ$c:ɓ֔%d>ϚtJ5,ПM5fzTd,\ڧ~a(g>ͭڮ * iCԴyO:2ֹS;lZ%j2bg.mD2qKWB;\Duc.s;km 4sJ5tNZE;\Duc.s;kp #7vM!:yS#_JBc% K |    j  5 z  Brx+?~U)!@#Y)eP K!!!l!.$T$$%%%s&&>''(K({(()***,-2--F.. /\//0000(112I3,32555b66277 888n999Y:R;;;s;5>[>>???z@@EAABRBBCCClDDBEyEE'FFGGGkHHHPII/JJKKKKyLMXMM,NNN$OO?PPQUQQRMRRhSS9T~TUFUvUUVVbWW8XoXXYYYZZa[[[F\\%]]]^^^o_ `L`` aaabb1cscdGdde?eeXff)gngg6hfhhiiRjj(k_kk lll{mmQnnn6oopppzqqq_rr}}~K~{~~e;r Ӄd˄I(ćrQ%8z NߍFĎa2w?o̒[1hɖZ?ژfEԜ,nBӠ :U&k3c~O%\ xN3Ыwޭ\;ʯװ"d8ɳ0Ka)Y׷rCPݻlBy'ľڿkP/yX,$?UMh9~Fvb8oaCiNt|(HsG)$J|{6d [}';tA$E}j1vX=c7~O}"~@T(Z<]Lo\gA .a` B ' M ~   9 g  ]*>wD'Hˀm4xZ?e99~d !7""!#$$U$$i%%%%=&o&#'R(&((s(**++),,-_,...j000D11212d222343b5D54)7O778888#9h99N:};9"<<;=>_@>>T??+A?AALACC̓DDEEFNEGGGII;ItJKKLHKM}MMOOOlPQCQgQQQRR T_RTT/TVVVWXXZXXZZ(Z\\\}]^^_Q^`` `bbbucdLdpddd"eeghegg8giiajj(kk makmm0mooφop q\qqqq2rr%txrttHtvv=ww8xxzqxzzAz|| }}1~~j~9ς)e;.ׇQA'zЍJ:sȓBؕc 2nȗD6ߚYȜщ"Iߞ'[Nסq?:Ƥa GЧj٩3Z?ȭbѯ+R0dWzCϷjPٺs <Ƚc Hke4[9m$` ӌLsZ}AFmSv ?fMp9` Eh1X6j!\HoM8t-g`1l%ՏX]:]U|;[A]Dg_E"eJg  N   q iO,oSqefC\I)_ E3KRKsKKKKQFQgQQP5RBYwYXZZX+[[YI\\\\!]W]]]^___`aaabclduceecfRffff6ggh*ihiijum n*mn+oLmo$pCpypppq]qqosssOunuu wVwwx=xxY||{U}}|Q~ 0|2hԀ @vf#6U{2T&vç#ܟ /Bɭ4dͮ-Ư+ǰ,ʠɱdd-0ǵRtڡ ")@Ⱦ.bȿSgȢo .yPlr lofأbrr> m`{T,b:pH~ V.d<rJ"X0f>tL$Z2h @vN&\ <5_ (Nx#Ba;Z'Fp1[A`Gf;Zya 3Rq)Hg!@_~?^}#%Dc 7     ?    , K u 9$N08W%Dc>]|$Cb1PoO n     """ #(#R#$ %+%U%'(-(L(u(((H*g***4,S,r,,(.G.f..$0C0b000232R2|24&4E4o456=6\6{66/8N8m88: ;c:;<:<>5>_>? @*@S@x@AMBABCA{DEE:FFGKHjHHMMM,NKNjNNPPO#QQO%RRFS'SRUVPVVVV-WevWWW#XXYYEZ9[[v\\]]^9_-`v`jaabbc-d!eje^ffggii j2jWjHnnmMoomTppn]qqqq5rkrrr/sttt u(uNuuvw6wUww y,yKyjyyyyyzz{{||t~~~~ˀρjւ BЃIo݅5$Kl?&Ul|}']ɒ5kՕ4;Z&EjןAl۠OUҝ+̥e8}Z|".ȬFf&tHj$;qݳI!Wõ/eѶ=s߷K#YŹ=ǻ$Cb-LkȾNm@#R4SD$N@8b"A`%Dc Rq +Ji'Fe ^}7a ?i&Ej Y{#?;J"X0f1PoGf=\+X*zBLP`wO'i%Dn9Xw;Zy8d  n ; } ]  $  @W/eI:Yx9_ ,Kj-Lq y:q\ t~ u !!""6#l###$D$z$$$(%t%&&&'2'Q'p'''''!)@)_)~)))+"+A+`++++++%,U-t---]//////0=0\0{000W23 244.2&5\5555@66'9F9s999.:::Q:j====:>m>>A>.?t??A@@WWWXf[[OZ^\\qZZ]]ZJ^^Z>__Z8``Zaa[bb=[ccc(d^ddde6eleeefDfzffgugghGhhhLiyii j9kkkkl&llm1nno]|;Zy1[1W ?  /Ns,U m )   7  -  5i9\[Z}e} 'Ik(7mE{S+a 9 o   !G!}!!!"a""## $9$&&&'%']')))* +4+m,,,,D0c00011 2,2V233334?5^5566 767}88889-9O:n:::;<=<g<====>J?i??A B+BJBtB D*DTDEF(FJAJbJJIpKKIvLNONOO$NP7QFNQGRhNRSN{TJViVVVViXXXXPZoZZZ\\\ ]c8cWcuccԉA׋)XIhXēZǕ%ݙuQ-k\0nB؟W+iZǧ]1o`4rFܬ I߮L Ȳ^˴ζd8v Jƻ\0n_3qE HN?}Q%c7u I:xL={l@~R&g;yM!_3qEW+i=I,[L{~X,j>|P$b6 tHZKzE6te/         t  Y-k?B3qb,ZKy  !"#D#5$s$d%%&&'((/)*+=++,,,z--M..!/_//30$1b1S22334456 7K7<8z8k999lu5l§)H<NmB@˭=Ȱ:ų2IF)f7nZL,r;A1>u5l,c#ZZ\y (tC../200"H1112922%TUJUbOnPTVVZVVh_`abcccei]jjjk^kkglllې"^ˑ<2ޓ+y2\o<_0ܹ"Eɺ O̻b>q=z.kHJ_=# S   ,]---.aa..c."/e///)0k00dMbOOPPP/QcQQQQ3R{RRgUVV7WnWWWXOXXg1>*?>?@C@@A@AA)BBBBCC DmDDDmEEEKFFyFKGGG+HHYH+IgII JKXK4LMM^NOO|PQbTU5V^VVVV+W{?|s|||3}g}}}'~b~~~"XPʀDŁ A!`A<Ȫ J̫NɪЬRԭR֮ZCmC}![,+{9[F>6|.tYF|+_0z1g)_!W!g1e%Y&\T D   p <    L   4 j   , b   ArR2\3334`444!5d55 5%6h66+6)7l777-8p88819xt9995:x::L:9;|;;<A<<<=H===,>M>>>?Q???@U@@@AYAAAB]BBB"CaCCCBDqDDD,EfÈ:p;zگZQӲD&i![/`7kw8\%Ce;'[l*#m=~UW8oA LFM (;~ Av5sGB] QEy0o&e[Q/nf   X  4sO[ -(T"!%$mKiLL"M \ #o`ȓ II\ ! B! ! # # # $ $ $ % A& & & & ;H j 4k bk r s ]s s s Qt t u  ܗ  ^ t - Y ( n f  A w 9 o 1 a 1 l , \ R R ? 4 t ?  / n   t3 r   7 v   : y   = |   A    E    G    K    9 \ ] ] ^ Q^ ^ ^ @_ _ _ ` M` ` a \a a a 3b b b c Kc c ) h - l 1 r h$7 v ; | C nj  K&I ͍  Q ү į 9 n ` ӳ S y ׵  B v = h  `  R ] ; o &(q N  a    Y    .(  = |   A  )     > ) K  A o          e    ; " # O$ ' >' `' ' ' 5 5 5 |6 6 ~( ) * + s, '- $. . / 0 u1 2 3 4 y7 7 7 I8 8 8 G9 9 9 : ; = B lD H 3I +zI I I J 6J nJ J J K 3K cK K K K K L AL M }R ]R eR S T PT :T BT T V uY \ ^ $a c e i n r Rv 01z 5 ( 1W3> ŏ  Դ s ] e X r \ d ^5x b j f5 > n5 5 v5 / R ~56 T [ N  79 ; % - =;q [ c *   [     K  ?A    } xELC0  "  , d N V   EGLI    V MJ   ? e O W       X   ! ! ," 7# )# # $ ~$ $ /& & h' ' ' ( K) +) 3) * 2* w* e* , , Q- . . H/ / 0 2 2 S3 {4 m4 4 6 5 5 x6 6 NO9 9 9 : (RQ5< < '< < > > > b? dA NA VA `B xD `D E "F F G F F G G /H H J J J 6?t???7@t@@@AOAsAAAB%B[BBBBC:CCCC'DuDDDEJEEE|KKTTiYNY]Ucc]dddeeffHff2ggR,h<͡4U7գn>٨zi^BhñR(_ .DǸX2nBӻ :¼[=۽tDocGm!W-d8Nb<xLDeG~N%ymQw+a7n&<!Rf@| PHgIP'{lPv*`6m%="SgA} Q   I   k M  T+sW}1g=t,B ' X  l!!F""#V##$N$$%m&O&%(())*V**-++,,,,-r./..V1|11022333f44<5s55+6777C7:(:Y::m;;G<<=W==>O>>?m@O@?BBCCDVDD-EEFFFFGsHIHHWK}KK1LLMMMgNN=OtOO,PQQQDQT)TZTTnUUHVVWXWW XPXXYqZSZY\\]]^Z^^1__````aybccb]eee7ffgggmhhCizii2j$kkkIkn.n_nnsooMppq]qq%rUrrsutWtsvv wwx^xx5yy zzz{{{| }}|_9ʀ oE|4+ЅP5fzTd,\׍|^&e<˓ؔ' f@њvL;-ҟR7h|V!f.^ۧb*i@ϭܮ ,k³Eִ{Q@3عX=n\'l4dh0o F4sMYH<a Fwe0u=mn "6uL 7vP \K<a Fwe0u=mq%9xO#<{U%aPCh' M ~    l  7 |  Dty-AW+#B$[+gV L!!!q!0$V$$ %%%u&&@''(M(}())***,-4--H.."/^//2000*112K3-32555d66477 888p999_:S;;;x;7>]>>???|@@GAABTBBCCCnDDDE{EE)FFGGGmHHHRII1JJKKKK{LMZMM.NNN&OOAPPQWQQRORRjSS;TTUHUxUUVVdWW:XqXXYYYZZc[[[H\\']]]^^^q_ `N``"aaabb3cucdIddeAeeZff+gpgh8hhhhiiTjj*kakklll}mmSnnn8ooppp|qqqarr>ssttt uu%vgvv;wwx3xxLyyz\zz${T{{o||@}}~M~}~~g=t"Ճf̈́K*ƇtS':| PHƎc4y AqΒ]3j˖\×AܘhG֜.pDՠ <W(m5e¥Q'^ zP5ҫy^=ٰ̯ $f:˳2Mc+[ٷtER߻nD{)ƾܿmR1{Z.&AWOj;Hxd:qcHjPv|*JyI*&L|}<e `})=vC%J}l6xY?e<~U~$~BV*\=bNqa!iC 0c b C ) O    ? h b,@yF(MЀo9z[Ag>;j !9""!$&$W$$k%%%%?&q&)'S(&((x(**+++,,-d,..$.l000F11232f22234#3d5E54+7Q778888%9j99T:~;9$<<;=>dB>>V?@,A?AAQACC҃DDEEFSEGG$GII@IvJKKLMKM~MMOOOnP QEQiQQQRR TdRTT4TVVVW!XXZ]XZZ-Z\\\]^^_V^``%`bbbwcdNdrddd$eegmegg=giifjj*kkmfkmm5mooԆop"q^qqqr4rr&t}rttMtvvBww:xxzvxzzFz|| }}3~~o~>т+g =/هV‰C(ҍO< xʓGڕh 4pʗF7^ʜ։$K)]Oءv D<ȤcHѧo۩5\ @ɭgӯ -T2f!XEѷlQںx >ʽeIpj6];o*a ،Nu#[FHoT{AhNu";bFm3Z8l']JqO>u/lb7m'ڏZ_;bW~=]B_ElaG$gKi  O   v kQ.qTsfhE]K+a K4KSKtKKKK!QHQiQQP:RDYyYXZZX-[[YK\\\\#]Y]]]^___`aaa bcndvceecfTffff8ggh+iiiijwmn+mn-oMmo&pEp{pppq_qqpsssPuouuwWwwx>xx[||{W}}|S~1|4jր Bxg)7V|3U(wŧ% ݟ !1C˭6eϮ/ȯ-ɰ.ˠ˱ff/1ɵSuۡ $+Aʾ0cʿUiɢq /!{Qns nq h٣dtt?oa } V.d<rJ"X0f>tL$Z2h @vN&\4j BxP(^ &B6e )O~$Cb<[ (Gv2aBaHg<[zb 4Sr*Ih"A`@_~)&Ed =     E    - L { ?%T69X&Ed?^}%Dc2QpP o    !""" #)#X#$ %,%[%'(.(M(v(((I*h***5,T,s,,).H.g..%0D0c000242S224'4F4u466>6]6|6608O8n88: ;d:;<:<>6>e>? @+@T@}@AOBABCADEE;FFGLHkHHMMN-NLNkNNPPO%QQO+RRHS(SRUVRVVVV/WfxWWX%XX YYGZ;[[x\\]]^;_/`x`laabbc/d#ele`ffggii j3j\jJnnmOoomVpp n_qqqr7rmrrr5sttt u)uOuuvw7wVwwy-yLykyyyyyzz{{|}u~~~~̀сl؂DփJpޅ:&MnE'Zn})_˒7m֕5<['FoٟCmݠQWӝ-Υg9[}$0ʬHh'vIk&=s߳K#Yŵ1gӶ ?uM%[ǹ?Ȼ%Dc.MlɾOnF$X5TJ%TF9h#Ba&EdSr ,Kj (Gf_~8g!@o'Fo Z|%A=L$Z2h2QpHg>]-Y,{DNRbyQ)k&Et:Yx<[z=f  p <  ^  &  BY1g K;Zy:`-Lk.Mv{;s]v w !!!""8#n###$F$|$$$*%z%&&&'3'R'q'''''")A)`))))+#+B+a+++++++,V-u---^/////00>0]0|000Y23 244/2(5^5556B66(9G9t999/:::V:l===><>o>>B>0?v??C@@WWWXh[[PZ`\\rZ\]]ZL^^Z@__Z:``Zaa[bb>[ccc*d`ddde8eneeefFf|ffgvgghMhhhMiii&j:kqkkl(llm3nn o>pp+qIrr6sTttAu_vvLwnxryyyzIy.{||||(}0e~4~΀;˃"wŇ3QΈ;uԉKO1׍mڏIhF+ޗ<MԘ5o͙(Փ;]}ܡtТÔgãZäZ)QKTmJ5 qӕ \G29ϭ [}XT R.O|ƹ 6Xzѽ (Gfw{1STumdR^A!c[]fwP(^6lDzR*`D<[#Ban+(Gv_~ ?^}<[z2a2X E0Ox.W n +   9  /  7k:^\\~g (Jl*9oG}U-c ; q   !I!!!!!"c""## $?$&&&'&'c')))* +:+n,,,,E0d000112-2\23333 4@5_5566 7<7~8888939P:o:::<<><m<====$>K?j??A B,BKBzB D+DZDEF-FJCJdJJIrKKI{LN ONOO%NP9QGNQIRiNRSNTKVjVVVVjXXXXQZpZZZ\\\]c9cXcvcc։Cً+ZKjZƓ\ɕ'ߙwS/m^2pDڟãY-k\ɧ_3qb6t Hެ KN"ʲ`ʹжf:xL Ȼ^2pa5s G J!PAS'e9w K<zN?}nBT(i={O#a5s GY-k?K.]N}Z.l@~R&d8 vJ\M| G8vg1         v  [/mAD5sd.\M{  !"#F#7$u$f%%&&'((1)*+?++,,,|--O..#/a//50&1d1U223344567M7>8|8m999lx6mç*I=OnCA̭>ɰ=Ƴ3JG,g8o]M /u;D4Ax8o/f&][]z )uF../600#H 1112=22(TUKUbOoPTVVZVVi_`eb cccei^jjjkbkkklllܐ#bϑ @6/}6\s=_4ݹ&Fͺ SлeBrA~2oINb>' W   ,a---". ae..c.&/i///-0o00dMfOOPPP3QgQQQQ7RRRgVVV;WrWWW XSXXg@ZZ)[r[?zEЂHl2V΄@j܅*Tv[ R(k.`WWnŞ\pD V@ͣ#bɥWMۧ!ɩWͪZ^yM!g;ɰuܴjC.E!gog&3b_ Ai6lynU1 p(k,o\6Kwz[}5;xR.yS#-op L(i(g(A ^  8       ]  7KzToI#f233'4[457;9:}<>2>.?>?@G@@A@AA-BBBBCC DnDDDqEEELFF}FOGGG,HH]H/IkII JK\K5LMM_NOOPQfTU9VbVVVV/W{C|w|||7}k}}}+~f~~~&\T΀HɁE%dE@̪NЫRʪԬVحVڮ^FqG%_-/=_J B:2x]J/c4~5k-c%[%k5i)]*`X H   q @    P   8 n   0 f   EvV2`333!4d444%5h55 5)6l66,6-7p77718t88859yx9999:|::M:=;;;<E<<< =L===->Q>>>?U???@Y@@@A]AAA"BaBBB&CeCCCFDuDDD0EfĈ>t«?~ۯ"[RײHų*m%_0d8oz <`)Gi<+\p+$nAVX9sB MJN!)< Ez6t KFaUI}4s*i _U3rg   \  5wP\ .(U" !%$pKmLL#M \ $o`̓MJ_ ! F! ! # # # $ $ $ % E& & & ' >H j 8k ck r s as s s Ut t u " # b w 1 Z , r $ j  E { = s 5 b  5 p 0 ]  V U C  8 u C  3 r   u7 v   ; z   > } !  A    E    I    K    O    9 \ ] ] ^ U^ ^ ^ D_ _ _ ` Q` ` a `a a a 7b b b c Lc c  - l 1 p 5 v i$; z ? Ë  G ˌ L&M э  U ֯ ů = r a ׳ W } ص # F z > l  d  V a ? p '(r O  e    ]    /(  A    E  )     B - O  E s          f    < " # P$ ' B' d' ' ' 5 5 5 6 6 ( ) * + t, (- %. . / 0 v1 2 3 4 }7 7 8 M8 8 8 J9 9 9 : ; = B mD I 7I +~I I I J :J rJ J J K 7K dK K K K K L EL M ~R ^R fR S T TT ;T CT T V vY \ ^ %a c e i n r Sv 02z 6 ) 1X3? Ə  մ w ^ f \ v ] e _5| c k g5 B o5 9 w5 3 V 56 X _ R   79 ? & . =;u \ d .   _     O  ?A     yEMC4  #  0 h O W   FGMI    Z MJ   C i P X       \   ! ! 0" ;# *# # $ $ $ 0& & l' ' ' ( O) ,) 4) * 6* z* f* , , U- . . L/ / 0 2 2 W3 4 n4 4 6 5 5 |6 6 NO9 9 9 : )RQ9< < (< < > > > f? hA OA WA dB yD aD E &F F G F F G G 2H H J J K @K rL N N O 8P 'P P Q Q Q 5R sR STTU ;U CU U SW;VW W W uX Z Z Z z[ `[ h[ 7] y] \ \ U^ ^ ] ;_ "_ *_ _ a pc e h k n n n o s s s Dt t vz ]z ez z U Ʌ х q Y @ H ڈ /  R ܗ #  w m N  ǟ 9 á _ U 6  4 # Q θ ڽ @ ־ >  ſ Y8<H@Aٿ xM0aeuikm҇t  s e I Y z # Y T Y & / XZ3 ` i Zm  ([ . _ %    6 h W  D h ) ]  S  Q [ < (   T   )0 0 0 G2 2 3 7 7 7 #8 X8 8 8 @9 9 9 4: A *A WA A A )B B B ;C C C [F 3G hG G G H RH G H $I G I I J IJ J J N PN N N O [P [+W [c [9 j [ l [[t "z π [ [[ ׬ ɵ [ 7 ^} c + oq 4t   9 ^ F @ $ U j A }  ~ ~Ut&"y *y2y:yzf'()M./E//}/]9&9>:?x???;@x@@@ASAwAAAB)B_BBBB C>CCCC+DvDDDENEEE |KKTTjYOY]Xcc`dddeeffKff5gg?hgjhhyiiijj,kkdkkNllXmmmnn on6ooEpp}ppgqqqr0rrss$tsOtt^uuuCvv w;wwJxxxyz-yn{O{zM}s}|}'~~~G (@ÄT.j>χ6R4҉m=؎yfZ@fP&])AĞU/k?С7V8֣qAܨ}j_EkƱU+b /Gʸ[5qEֻ =ü\>ܽwGpd Jp$Z0g9 Qe?{ OGfHQ(znTz.d:q'=$UiCSKhJS*|mSy-c9p&>%VjD T   L   l N  W.tZ4j@w-C * [  o!!I""#Y##!$Q$$%n&P&%(())*Y**0++,,,,-s./..Y111322333i44?5v55,6777D7:+:\::p;;J<<=Z==">R>>?n@P@?BBCCDYDD0EEFFFFGtHIHHZKKK4LLMMMjNN@OwOO-P QQQEQT,T]TTqUUKVVW[WW#XSXXYrZTZY\\ ]]^]^^4__```aazbccb`eee:ff gggphhFi}ii3j%kkkJk n1nbnnvooPppq`qq(rXrrsvtXtsvvww"xaxx8yy zzz{{||!}}|b<̀ rH5,хQ8i}W"g/_؍}_)h?Γ۔ ( iCԚyO<.ӟS:kY$i1aܧcª-lCҭ߮-nųHٴ~öTA4ٹY@qĽ_*o7gi3r I5vP \I=b#Izh3x @po %9xO#8yS#_L=b#Izh3x @pr(<{R&=~X(dQDi* P     o  :  Gwz0DZ.&C%^.jW M!!!r!3$Y$$ %%%x&&C''(P(())***,-7--K..%/a//5000-112L3.32555g66777888s999`:T;;;y;:>`>>???@@JAA BWBBCCCqDDGE~EE,FF GGGpHHHUII4JJKKKL~LM]MM1NNN)OODPPQZQQ"RRRRmSS>TTUKU{UUVVgWW=XtXX"YYZZZf[[[K\\*]]]^^^t_`Q``%aaabb6cxcdLddeDee]ff.gsgh;hkhhiiWjj-kdkklllmmVnnn;oopppqqqdrrAssttt uu(vjvv>wwx6xxOyyz_zz'{W{{r||C}}~P~~~j@w%‚؃iЄN-ɇwV*"=SKɎf7| Dtђ`6mΖ_ƗDߘ!kJٜ1sGؠ?Z+p8hťT*a}©S8ի|a@ϯܰ 'i=γ5P!f.^ܷwHUqG~,ɾ ߿pU4~]1)DZ"Rm>K{g=t"fIk Sy|-MzJ+)O|=f a},@yF&K}o7yZBh=~V%~EY-_>cQtb"lF3f!c D , R    @ i c/C|I)Nрr:{\Dj? >k !:""!$)$Z$$n%%%%B&t&*'T(&((y(**++.,,.e,..%.o000I11262i22234$3e5F54.7T778888(9m99U:;9%<<;=>eE>>Y?@-A?AARACCӃ DDEEFTEGG%GIIAIyJKKLNKMMMOOOqP QHQlQQQRRTeRTT5TVVVW$XXZ^XZZ.Z\\\]^^_W^``&`bbbzcdQduddd'eegnegg>giigjj-kkmgkmm6mooՆop%qaqqqr7rr't~rttNtvvCww=xx zwxzzGz||}}6~~p~€?Ԃ.jĄ @0ڇWʼnF)ӍP?!y˓Hݕi7s͗I8_͜׉'N,`P١w E?ˤfIҧpީ8Ī_ Aʭh֯!0W5i"YHԷoRۺyAͽhJqk9`>r+b ٌQx$\GKrU|DkOv #>eGn6];o(^Mt R?v  2me8n*ۏ]b<cZ@^CbFmdJ'hLl  P   w nT1rUvgkH^O/eL5KTKuKKKK"QIQjQQP;REYzYXZZX.[[YO\\\\']]]]]^___`aaa bcodzceec"fXffff     F    . M | @&U7:Y'Fe@_~&Ed3RqQ p    !""" #*#Y#$%-%\%'(/(N(w(((J*i***6,U,t,,*.I.h..&0E0d000252T22 4(4G4v46 6?6^6}6618P8o88: ;h:;<:<>7>f>? @,@U@~@BPBABCADEEP(^6l3RqIh?^.]-EOSc}U-o'Fu;Zy=\{>g  q @  b  '  C]5k O<[z;a.Ml/Nw|?taw x !!"""<#r###$J$$$$.%{%&&&'4'S'r'''''#)B)a))))+$+C+b++++++,,W-v---_/////0 0?0^0}000Z232 4432,5b5556F66)9H9u9990:::W:p===>@>s>>C>4?z??G@@WWWXi[[TZa\\vZ]]]ZM^^ZA__Z;``Zaa [bbB[ccc.dddddekrkkl,llm7nn!oBpp,qMrr7sXttBucvwMwoxsyyyzMy/{|||})}1f~5~π <̃#xƇ4Uψ<yՉLS2؍nۏJiG/ߗ=Q՘6sΙ)ٓ?a~ݡuѢǔhģ[Ĥ [-ROUqK6!rו ]H3=Э!_ŖYUS2P}ǹ :\~ҽ )Hgx|5WUyneS_#E"g\^gxT,b:pH~ V.dH=\$Cbo,)Hw`!@_~=\{3b3Y F1Py/X  r ,   :  0  8l>_`]h  ,Np+=sK#Y1g ? u   !M!!!!%"g""## $@$&&&'''d')))* +;+o,,,,F0e000112.2]233334A5`55667=78888949Q:p:::< <?<n<====%>L?k??AB-BLB{B D,D[DEF.FJDJeJJIsKKI|LN ONOO)NP:QKNQJRmNRSNTLVkVVVVkXXXXRZqZZZ\\\]c:cYcwcc"ډ G݋/ ^On^ʓ`͕+Ø{W3qb6t Hޟġǣ]1o`ͧc7uf:xL O#R&βdѴµԶj>|P$̻b6te9w KN"%TEW+i={O@~RCrFX,mAS'e9w K]1oCO2#aR ^2pDV*h<zN"`Q K<zk5         z  _3qE H9wh2#`Q  !" #J#;$y$j%%&&'((5)*+C++,,,--S..'/e//90*1h1Y2233445"67Q7B88q999ks0On +Ut*(%"jh<Wz5 "Y>uS5k : *G~>u5l,c70HS-s./+001111C2f22UVb|Y[y`aJbbcdeidjjjkhkkPl#lllrÐ F֑G{Ò=qU=h;l˹LԺZ׻7<^Qx 6'uC;w ^  D q V---).Z...-/^///30d000[OPPPPP9Q\QQQQ>RtRRUVW0WyWWWXHXX5ZZ/[X[\f6ւ$r\F0k׆PȓXq{Dؙoٛ{(՝u@ןwK]5ӣF^B^O#T(\0аر%YѴqJ~RL T ݻ~R (\ֿv(=6=nJ&/`3dQ+b<mG#Z4eApnHy" S  -       d  >oIvP*[53345Q78:9<=y>>>? @N@@@AA4BzBBCCDZDDfEEE8FFDGGGHcH$IqIIIbK!LMKNOuP T[TU.ViVVVV6WYW8|~|||,}r}}} ~m~~~c[Հ OЁLk:ީGӪU׫Y۬ ]߭ ]ef <f46j!Ce QI}Au9mB ?$jb*r"jb,`*pdSg O    G {   E   - u   % m   k$KU333(4Y444,5]55506a66647e77788i888<9m999@:q:::D;u;;;K<|<<=R===>X>>> ?\???@`@@@AdAAABhBBBClCCCDjDDD7EbEf3{4ñ X޲ Ox˳seYӺd BfMoCOI1+t 6\ _?h#S?TBLo<z@M"VJ >2)yoe \g$n  D   _;yG '(GLLZ\ ooӓT}`* M! ~! 6" # # h$ $ $ % :& & & ' 8' H -k r r "s Vs s s "t ~t t .u  i  h & q 3 g + _ # W  : 2 z * i < e % d  K  \  J ~ ?  J ~ ( y   , }   0    3    6    :    >    @    D    H : ] ] ] 9^ ^ ^ _ w_ _ ` 5` ` ` Da a a b lb b b 3c oc c " s & w * } 0  4 <  B ƍ  J ̎ ˯ D g ޳ L ߵ ; % a % Y ! K h 4 1 % Z   ' R      6    :    M   3 U  y       T   " Q# $ >$ &' H' j' ' 6( 5 5 u6 6 U) ) * (, , - . }/ Q0 '1 1 3 g4 f5 r7 7 8 B8 ~8 8 +9 n9 9 9 ; JA D H H >I I I I I @J xJ J J J ,K PK K K L KL zL lR S T IT oU *W m? ]A jB gD E F F G G $H J K FK xL N O -P P Q ;R zR IU U W {X Z n[ A] \ \ ]^ ] 0_ ` "b c Of h k n o s Jt t kz z ׅ w N  D  } b U  Ɯ  + ɡ e J = q ) v < t Ź ҽ 8 ξ  -$9=AB˿ NXazfDjl?n@߿ e k O ) 5 ( o b # T % N   < ] K o 0 K - } u B  o  / 0 0 0 M2 {2 3 7 7 7 )8 M8 8 8 F9 9 9 ": A 0A ]A A A /B ~B B AC C D F F ZG G #H G H G I I J PJ J M 4N qN N O U ,b ;i  $k [ r y } K  = ެ  ϵ > r 2 f   | d 9   * J   Gl!@zRMd()../L//,9>A?m???A@m@@@AHAlAAA B/BeBBBBCECCCC1DdDDD EUEEEKTUY]?ccgddddxefqfQff+gg$hh`hhiiijj3kkjkkDll=mmymmnnn,ooLpppp]qqVr6rrss tsEttduuu9vvw1wwPxxxyzU{C}z}}~~~M ߃6Z5`4Շ ,:c3ߎ ޏ֐T`6mW,c 7[6a5֡ ->Ħg7ڪXe;r\1h=a<g;ܻ3Dm=^j@wa6m 'GkFqE=NwGhtJ$k@w+KoJuI!APyI jsI#j?v,LpKv J  " B   T }M$nzP*qF}$1 Q  u!!P"{"#O##'$G$$%V&((() *O**&+++,,,p-y./O111)22233p44E5|556%7792:R::v;;Q<|<=P==(>H>>?V@BBBC DODD&EEEFFFpGzHIPKKK*LLLMMqNNFO}OOP&QQS3TSTTwUURV}VWQWW)XIXXYZZ\\]]$^S^^*___```tabcVeee0ffgggwhhLiii!j+kkn8nXnn|ooWpp"qVqq.rNrrs^tvvww(xWxy.yyzzzzx{| }X2ӀفyN#2?_^)]5Uӌލe /^ 5Փ _9ښ U*4 Aa`+_7Wզi3b9٭ d>ߴZ/:Ggf1e=]o9h? lFb7CPpo:nFfu?nE oIe:CPpo:nFfxBqH%tNj?J W w    v  A u Mm&Jy%P$+zT$pE S!!)$`$$%%%&&J'~'(V(v((**, ----Q..,/W//+001#11243555]66-77888y999N:Z;;0>g>> ???@@QAA&B]B}BBCCxDDMEEE"FFGGGvHHHKII*JJJKKKtL"MSMM'NNNOOKP|PQPQQ(RHRRtSSETyTUQUqUUVVnWWCXzXXYYYZZl[[[A\\ ]]]^^^j_`G``aaabb=cncdBdde:eedff5gig hAhahhii^jj3kjkklllmm\nnn1oopppqqqZrs7ss tttuu/v`vw4ww x,xxVyy!zUzz-{M{{y||J}~}~V~v~~qF}ɂ΃oƄD#ÆχmL DuI!Am>rJjǒg<sĖe:Úa@ 8i =ޠ5a2f>^ܤ[0gY.ܫ ٭W6֯ ._3Գ +W(\4Tҷ~O$[{ػxM"оտvK*t"S'K|P(HtEyQqnCzlqI# Sh1Vv+l"Fo M,e`8oD ;_#fD}Gz%b<9lJ " Y y   . o%Ir P/h b:qDyY !!"#0$P$$t%%%&8&{&'Z((**++4,,..e000?11 2<2o22234L5$7[7{77888.9c99C:; <=>;>>_??3AACCCD#EEGGIIIoJKKLMOOOgPQ>QsQQQ&RRTTVVVW+XXZZ\\\x]$^^``bbbpcdGd|ddd/eeggiiij4kkmmooop,qWqqqq?rr.ttvv wwDxx'zz||}}=~~܂5`˄H7M0Fّ(>iԗ Q?ȚÜU"hWۣ5mP٧ԩ .fHѭ̯&^+q`>ʷv Yݼ7ýoQ/g4zi&Gc Ay \:rV4lN ,d1we"C{H-}:[&u2S!XCP6XMZ@b  W  dJ'ln{a > Vz6Z:;KZK{KKKK(QrQQ/RMYXhZY[$YD\\\\]d]]] ^___ `aaaaBdc\ecf_ffffDgwgiQiii jm5moWmp>ppppqkqqwsssWuvuu?wwx&xbxyx|{}|~;|-uMqƁn>]=_ş ݫ+M oՠ::;ȶ]ӷиڹáպ)KmӢZ9O[B}BE<8H'HICkQa9]5} Uy-Q)qIm!Ee=a9Y}1U -uMq%I!i1=T0Vm +Ji$Cby/Ne9PIhOnCbi;Zy1Po)HgGf-Lk ,     4    4 S j . ,C%!@_|-LkFe,Kj9XwW v     """#0#G#$%3%J%'(5(T(}(((P*o***<,[,z,,0.O.n..,0K0j0002;2Z2q24.4M4d46&6E6d66678V8u88:n:;:<>=>T>?@2@[@r@#BACApDE#FFF GSHrHHMMN4NSNrNN\PO\QORR0SU*VKVVVV;WqWWWXXY Z@ZG[}[\\]]^4_;`q`xaabbc(d/eeelffggiij:jQjnmonp*nXqqq r0rxrrr$stttu0uVutuww>w]w~wy4ySyryyyyyzz{{|||~~~~~րeт=ŃQwƅ/-w4.OBShˎ"j֒Bfw$Cby.Mdw%+\ݝb!Cӧe˞<1JSWu]n6~Vz´.R*r޶Jnڷ"FfҹK~ϻ ,KjǼ޼5TsоVu5 +G <9 ,C5 @W *Ih-LkZy3Rq/Nmf ?V (G^.MdUd`zxEe=a9XwOnEdic} r&J"w-Lc"A`$Cb2: $D FS h` y R*rW#Ba"Ag~4Sr5TkOEGgJK X!i"1#y### $Q$u$$$6%i%&&&':'Y'x'''''))H)g)))) +*+I+h+++++,,]-|---e/////0&0E0d0000V32d492!5i5555N6{6/9N9{9997::e=== >G>h>>>·ٷݺ@ֻbԼ/NmKOW;])Km/1:K[3W /wOs'K#kP$Cby *Ihu/Nef'Fe$Cb9P9_v47Vm(x u i t "Df2Tv2z Rv*N&nF j   !B!!!!"o""##$.$&&&'-'R')))*+)+u,,,,L0k00011242K233333G5f5}5667+78888 9"9W:v:::<&<E<\<====>R?q??AB3BRBiBD2DIDE F"F#JJIKIpLN NO/N QQNRsNSNpTRVqVVVVqXXXXXZwZZZ\\\]!c@c_c}cccވ <$(SWceh•Ɩ ˘ؙ_;fj>i=e9dh§k?jnBmADGıòlƴʵɶrFqEºj>imAl@CIMx!L qEpDHsGKvzNy"M!uItHmAl@e9d 8 W'+VZf:e9 ^2]1V*UY@Dos*           g;f:=Alp'*UX  !"#?#C$n$r%%&&''(*) * +8++ ,,,--[..//Z/0.021]1a223344567F7J8u8y999l}; sɧ0O CUtIGҭDϰC̳:+? (ZQM 2m>ud5| ;K :G~>u5l,cb c"0{K../=00*H111 2C22-T URU%bOvPTVZVp_`kbccce#idjjj"khkkql#ll)h֑GÒ =5=\zC_;-LԺZ׻jIy H9uPUhE. ^   ,h---).&al.. c.-/p///30v00dMmOOPPQ9QmQQQQ>RRR VVWBWyWWWXYXXGZZ/[x[GLւ$r\F0}bQ&X/qƘ4f^]u˞bwK']Fӣ)hХ^T(Щ^ԪaeƭT(nBа %{qJ4L (nvg,:heH"i=ln\8p/r3vc=Rwzb}<BY5Z*4vwS/p/n/ H" e  ?       d  >R[vP*m233.4a457A9:<&>8>>? @N@@@AA4BBBCCDtDDxEEERFFVGGG2HcH6IqIIJbK;LMeNOP QmT U@ViVVVV6W{J|~|||>}r}}}2~m~~~-c%[ՀOЁL,kLGӪU׫YѪ۬]߭]$eKxN,f 46!CeQI A9 c Q6j:<r4j,b,r <p0d1g_ O   w G    W   ? u   7 m   K}$]2g333(4k444,5o55506s662647w77788{888<999:@:::S;D;;; <K<<<=R===3>X>>>?\???!@`@@@%AdAAA)BhBBB-ClCCCLD|DDD7EfˈE{ɫFĭ  )b X޲O˳ 1s+ek>v&Bf/MoC 1bv1+t H\ _?zISQT/BL<zR&M"h\ P;y1o'e\;y$n   b ;}V%b 4(["!%$uKsLL)MS\*o`%ӓTPd# ! M! ! # # # $ $ $ % L& & & ' CH j ?k jk 4r "s hs s t [t t u )  * i |   8 a  3 y + q #  L D z < i  < w  7 d  ]  \  J ? {  J  : y   |> }   B    E  '  H    L    P    R    V    9 \ ] ] ^ [^ ^ ^ J_ _ _ ` W` ` $a fa a a =b b b c Rc c   4 s 8 w < } o$B Ċ  F ʋ N Ҍ  R&T ؍  \  ݯ D y ޳ ] ߵ *  M D s % k ! ] h F w ! y U  l   ' d    5(  H    L  )      3 U  y       m   B " # W$ &' H' j' ' ' 5 5 6 6 ( ) * + z, /- ,. . / 0 }1 $2 3 4 7 7 8 S8 8 8 P9 9 9 : < = B sD I >I +I I I J @J xJ J J K =K jK K K L KL M R S T [T T V |Y \ ^ +a c e i n r Zv 09z = 0 1^3E  ͏    # ܴ ~ c } I @ 9 \ 56 ^ e  X   79 F =;| 5 e   U  ?A   ESC;  6 o   LGSI  a MJ I p    % b   ! 6" A# # $ $ 7& r' ' ( U) * <* * , [- . R/ / 0 2 ]3 4 4 6 6 6 NO9 %: /RQ@< < > m? oA jB D E ,F G G G 8H J K FK xL N O >P P Q ;R zR ST[U U YWAVW {X Z [ =] \ \ [^ ] B_ _ a wc e %h k n o s Jt t }z z \  w ` 5 E$ X  ) } t U     j͟ ? ɡ  e \ = T  : W Ը   F  ž ܾ  ˿ Y`8<O@A߿ MM7ae|i km؇z  y  k  O ) 5 9 o s  4  e  % &  < n  K o 0 c 2 Y X     B . Z   00 0 0 M2 2 3 7 7 7 )8 _8 8 8 F9 9 9 ;: ,A 0A ]A A A /B B B AC C C F 9G nG G !H G H G I I J PJ J N VN N N O P $1W Hc "? j  l ,t %(z )ր ~  -  ެ  ϵ [ > ^ c 2 ox ;t  ƹ    9 d M  F     * \   p  #A!\z-'@yzm'(* S.!/L//c9>A????A@@@@AYA}AAA B/BeBBBBCECCCC1D|DDD EUEEEK*TpY]$^ccgddd eeffQffX>>?t@BB CC D`DD7EE FFFGGzHIaKKK:LL MMMqNNFO}OO3P&QQ T3TcTTwUURVVWbWW)XYXXYxZ\\]]$^d^^;__```aab%cgeee@ffgggwhhLiii9j+kkn8nhnn|ooWpp"qgqq.r^rrs|tvvww(xhxy?yyzzz {{|'}iBӀyN;2ׅ?oÉ^)n5eލŐ/o FՓ.pƙIښŜUB4ٟAqţ`+p7gɪ3sJ٭3u˳NߴʶZG:߹!Gw˽f1v=m%9yP$;}V'bOC*Po:Fv+?V*!>Y*eRC*Po:Fv.BY-$C^/jWJ1 W     v  A  M}6J%a5,Id5 p] S!!:$`$$%%%&&J''(V(( )**, -=--Q..,/h//<0013112R3555m66>77888y999f:Z;;A>g>>???@@QAA&B]BB CCCxDDMEEE3FFGGGvHHH\II;JJKKKLL"MdMM8NNN/OOKPPQaQQ(RXRRtSSETTUQUUVVVnWWCXzXX)YYZZZl[[[R\\1]]^^^^{_`X``,aaa#bb=ccdSddeJeedff5gzg hAhqhhii^jj3kjkklllmm\nnnBoo!pppqqqkrsHsstttuu/vqvwEww xJzؒg<s"Ֆe̗K(ÚrQ%8z NޠEġa2w>n̥[0gɩY?ܫhG֯.pDԳ ;W(m4d~O$[ xM3оv\;"d8/Ka(XtEQnCz)lZ3 SP0V Cl2FM,uIo"\+K_4fD Xz%sL9li 3 Y    F o5IP/x Kq$Dq !@" $0$`$$t%%%&I&{&0'Z()** ++4,,..v000O112<2o22234k557[778888.9t99[:;+<=>K>>_?@3AACCDD#EEGGIIIJKKLMOOOxPQPQsQQQ&RRTTVVWW+XXZZ\\\]$^^``bbbcdYd|ddd/eeggii jj4kkmmoopp,qiqqq r?rr.ttvvwwDxx'zz||}}=~~ɀ܂5r˄H7͉&M0ڍƏF(ғ>{ԗQ ?՜.U4h WFҤmP ?˪fHޯ7ð^=q)` O۷v"YHԽoQ@gFz2i&X+c  Ry%\KrVElN =dCw/e"T{ZF}':l?u 2d!jCbG%fiMlQ/ps  W  v[9z} nr PV6mS;KZK{KKKK(QpQQBRKYXZY4[$YW\\\\/]d]]]#^___"`aaabccec*f_fffgDggh2ipiij ~m5mnWmoQpppp)qkqqwsssWuvuuw^ww&xExx b|{^}|Z~;|@uMƁ n1>]J=_̧ƨş +Mҭo֮ϯаՠұ ;е]á)ŽKѾmѿ\pӢx9([} 'Ik,a9pH} U-d<qI!X0e=tL$Y1h @uM%\4i(.J=m0V +Ji$Cb/N~9iIhOnCbi;Zy1Po)HgGf1-Lk E     M    4 S  G ,\>!@_-LkFe,Kj9XwW v     !"""#0#`#$%3%c%'(5(T(}(((P*o***<,[,z,,0.O.n..,0K0j0002;2Z224.4M4}46&6E6d66678V8u88:n:;:<>=>m>?@2@[@@BABADEEBFF#GSHrHHMMN4NSNrNNPO,QO3RRPSV*V^VVVW;WoWW X0XXY ZSZG[[\\] ^^G_;``xaabbc;d/exelffggiij:jdj QnmVon]p*nkqqq rCrxrrr=stttu0uVuuww>w]wwy4ySyryyyyyz{{|| }|~~~~ ԀxPރQwB-uM.b #ˎ5j֒ Byݕ<$Cb.Mw wݝ&4!nCe˞ƫѬ1Su"-I~!V´.eѵ=r޶J"YŸ1fҹ Kϻ ,KjǼ5TsоVuN +`&<[R ,\N @p *Ih-LkZy3Rq/Nmf ?o (Gw.Mw d!,HDX0e=t9Xw OnEd 4c3KUYi &]5w-L|"A`$CbE $ F h - Ie=rW#Ba"Ag4Sr5T~ Eg !("D#y###$Q$$$$6%%&&&':'Y'x''''())H)g)))) +*+I+h+++++,3,]-|---e/////0&0E0d0000`22&49245i555 6N66/9N9{9997::x=== >G>{>>K>s`ttIukvwTwvxyyySy6{|||}0}7~~ՀB҃) ̇[Ոۉ$[Nj9ލtPo5Wۘyԙǚߓ#Eg{͔naa3XU[wQ<'ݕ!C֭eĮ˖_[Y8W͹@bٽ/NmĿ ;$][tkYe)Km &[3j BwO'^6kP$Cb *Ihu3/N~f'Fe$Cb9i9_M7V5' x  @ 6 >"rDefcn2TvEzR*a9n F }   !U!!!!-"o""##$G$&&&'-'k')))*+B+u,,,, L0k00011242d233334G5f55667D78888 9;9W:v:::<&<E<u<====,>R?q??AB3BRBBD2DbDE F5F #JkJIyKILN NO/NPQNQsNRNTRVqVVVVqXXXXXZwZZZ\\\]!c@c_c}cc( O"7(fWueғhՕƖ3˘ǚ_;yj>|P$̡ϣe9whէk?}nBT(W+Z.ıֲlٴʵܶrFX,ºԻj>|mAS'V*-\M!_3qEWHZKzN"`4 uI[/mAS'e9w K"W :+iZ(f:xL ^2pDV*hY$SDs<           g;yM!PAp :*hX  !#"#R#C$$r%%&&'((<)* +K++,,,--[..//m/0A021p1a2233445*67Y7J88y999RIè+AH   K.0m1 2T" Uci"kP z-IH9U. :-h--l..p//v0mNwmOPQmQQQReVBWWWYXZbL ւ$r\F0}b&/?A'T(T(JƯng;svn@:zjrvRoI#gA//   q K %  [5O393.4>?@ABCtDxERFVG2H6I1K\MOPT@VVV|J||>}}2~~-%,L$exN, LR  Q6<4,r<01    W ?  7  }]2-g33k44o55s66w77{889::;; <<==>>??!@@%AA)BB-CC|DDf'E&Fĭȯ) 1+MkR vF&/HzQZh\P ;1';yLL k  ! ." o# # $ 0& L& & H k ?k r hs   *   '^ ' 8  y  q   L  D  <  w 7 ]         :  >  B  E  H  L  P  R  V  J: &S] ] _ t  4  8  <  B Ċ F ʋ N Ҍ T ؍ \  ݯ y ]   M  s  k  ] 2 F < l  d   H  L  J        {  & ' 5 6 7 7 S8 8 ; R= I I  J J J K =K jK K K L Q JS [T  }          F | 5    ;  o   p  % ! A# $ ' ' U) , . 2 4 6 9 @< > oA UE ,F G J N >P Q [U W Z \ =] [^ B_ Go s }z   ` Ў  ) !  j  ~     : 8  Ź | +  ˿ ߿ c y      9 s <     n   !   *   .  G G 00 2 o7 _8 8 9 @ A B B C nG G !H H I J N       x 1  n     s   C,\!/>??@@YA}AABBC|DDE2dfeegghKijj2llmdnopKqqr}st0u'vvwxyzT} ~~~)͆PӍwKBIGN$*ΠTק{OFNLS)0ԺZULSQX.:d_V_[b8 > faX^Za7 ?    je\cah>    D!""#$%(l))*+g,^-b.`122g3=4567 ::E;<<=>?BlCCDEgF^GcHaKLLhM>NO PQ TTFUVVWXY\p]]^_k`baibgeffngDhijknnKoppqrsvtwwxyozf{k|ipFψR ʋǍŐ{̒vmrp&wM!ѢT"̥æ˧ɪЬzqwu+|R&#!׼Z(ҿw}3Z.%,*c1}6]1(.*c1;b6-51  j 8   Ah<3 >z?H@AABiCEDEFFnGBH9IIJkKbLLMNO PPQR4STTU]V;WXYYdZ8[/\\]a^X__`abbcde&fgghMi+jjkvlTm(noo}pQqHrrsxtouuvwxyyz{9|}}~b> g;2d[ۈ- ߐ֑V4]1(XOϛx֟!ӣʤJ(sQ%zNEŮwn̲ɶ@gEnB9kb 4];d8/Z0iWRIp.4/jXs)3  l ZUK! $$C%%I&E(*+,-v0,11224577n88t9p;=>.?ACoDDFI\JJLOTPPPQQSVlWWY\e]]_b]ccYddgiujkmomppiq rtvwxz|~} ~ vr!͉Ə {)՜"4A::32ޯ+=JCC<;4FSLMFF?@981COHZg`_ Xj+b#%5l-/ ? v79VNPmKP(QpQXKYfZ[W\\/]]_afc@dZe*ffghmmnpQpp)q`s@uv{|}~@Yў)۫88ƶѷθعӺ޻XM@@C:6FFAO,pH d<X0tL$h@\4.4(D &|   -: "$'7*#,.02358P::;>?A!BCE>?@W2Z[\]y^t_`abcdlddDeefffg hh=ii*kklnprtv7yydz|~7Հ͂? [Nj[9ٜΝǞmXC.ίزjۺԻмIMU-/8I&jB^6w`sO    $@ s g r Ea9 }  U!!-"#&q)*\,301m3056h8>:;=;?ACEI#JJKMNO QRS7VXX?Zq\cn܊ތ"P1_3brN*5 ݞY\03b6 9 c7fi=a5 8 h<Eil@d8 \0"i%TW]1U)yM!$S>  v  y M |^2 ;j$R !"$=%l&'()*+,S-&../0,2[34568D99Ky6UŨ-[zҭϰ̳:])D{  ;;MD{;r2i c"{t/ 000*Hq1112I22*UV%bOvPTY[V`abkccdijj(knkkql)ll)hܑMɒ C5C\|C_A3Rں`ݻQBdWN?{W h}4 d  J j---/.&an.. c.3/r///90x00doOVPPPQ?QoQQQQDRRRiVVWDWWWWX[XXZZ5[\Ɓf܂*Nxƃ8bԄ"Lp 6Z"dΓ(^1w4fR[A{#C}Q)c ٣)V*d V*d,L Z.ȯְpe+ӳi=wP$߷R&uV$߽x.pB|g,ek|iClnlp5t9xT%qRwKz%h}BBiC`*:v1v1t N(     s  M  ' j DR]7|V0 34<45W78:?<=>8>4?>?@T@@A@AA:BBCBCCDvDDD|EEETFFFZGGG4HHiH:IwII3KKhK^MMMOOOPTTUBVoVVVWx6p.h2t >v2j%3m_ U   w M    Y   A {   9 s   K*_i333.4m44425q55566u6626:7y777>8}888B999:F:::S;J;;; <Q<<<=X===3>^>>>?b???#@f@@@'AjAAA+BnBBB/CrCCCLD~DDD=EGH̯/ɱ^Uѳ 3y-km>x*Hl5SuIU%1bv71zRb&eE)Y"SZ/HR B\S(j^R=3u)kb*t    ;V%b (["!%$LMZ\o`ٓZP#! S! # # n$ $ $ N& & & ' Ak r r (s js s t [t t u , o : w 9 { 1 s ) N  F @ o B y  = j  _ b  P E {  P <    |@    D    G  '  J    N    R    T    X    ] ] ^ [^ ^ ^ J_ _ _ ` W` ` $a fa a a =b b b c Rc c 6 y : } > ‰  o$D Ɗ H ̋  P Ԍ  R&V ڍ  ^ ߯ J { _ O D u + m ' _ 4 n  P 7 U n   - f    5(  J    N  )    H 9 [  K           }    " W# $ & ,' N' p' ' <( 5 5 5 6 6 [) ) * ., , - . / W0 -1 1 3 m4 l5 7 7 8 S8 8 8 P9 9 9 PA D H I DI +I I I J FJ ~J J =K jK K K K K L QL S S T T uU 0W BZ ] ;_ fa ac oe Yj To s v 0| q 1^3 ʎ ɕ ^ U 8 i  O F ? b 56 d k  ^  79 H =;~  7 k   [  ?A   ESC=   < u   LGSI  g MJ O r    + h   ! <" C# # $ $ ' x' ( Y) * B* -+ , a- . X/ / 0 2 c3 4 4 6 6 6 NO9 +: /RQB< < > s? qA pB WE E G G G H J K LK ~L N O @P P Q AR R ST]U U YWAVW X Z \ G] ] \ \ c^ ^ ] N_ ` (b c Uf h k Io o s Pt t z z } b c + # [  l ϡ  k C < W / ž ܾ  D  q  U &Y / Y Z  Y , ; ^Z; f u Zu  .[ + + B n Q u 6  Y  {  H . / 20 0 S2 3 w7 7 7 7 /8 a8 8 8 L9 9 9 @ A 6A cA A A 5B B B GC C D F 9G tG G G )H XH G H *I G I I J VJ J N VN N N O U 2b Ai ? *k r y Q   C   յ [ D ^ c 8 oz ;t    9 j ? z n  0 G  I 'bXS@yzj()..#/R/0e:?G???@G@@@@%AYAAAAB5BkBBBBCKCCCC7D~DDD&E[EEESBX\"c^c6dmdddfee ffWfgggEh hhOiiiijk9kkpk2lll^m#mmhnnonopRpppKqqrwr>??@?BBlCC&DDEEEkFFF^GeHHIHcKKLLLjMM@NwNOLOO PQ,QSRKQT9TTHU}UVXVV#WWW/XXYY[Y\\p]]*^^___o```bakbbcbieefffpggFh}hiRiijk1kXlPkn>nnMoop]pp(qqq4rrssusvvtww.xx yyyszzzf{m||}|kـrHT8_WEψT"d/΋;ɍ ǐ{5Βۓzmtr&yO%[:aYGѢV$f1Х=æͧ˪9Ҭ߭~qyw+~T*`%@g_#M׼\*l7ֿ C  ?w3\2h%.Iph,Ve3u @LE }6_5k(0Iph,Ve3u @LH#;d:p-7Pwo3 ]  l  : |  G  S& P+Aj@v3 >!Y!"x!<$f$$u%%C&&'P''%(\(()*-+%*,--".W..2///00 11223255J66777s88I999<:E;`;<;C>m>>|??J@@ AWAA,BcBBkCCGD~DESEEFFFpGGFH|HH9IIIJJoKKKbLL(MMMNNOO PQPP"QQQ.RR6SzSTKTT UWUU_VV=WtWXIXXYYYfZZ<[r[[/\\\]]e^^^X__```aaabcCccddd ee(fjfg;gghGhhOii-jdjk9kpkkxllVmm,nbnnoooppUqqqHrr sss|tttouu5vvwwwxxy\yy'zzz3{{;||}P}}%~\~~d@wL ςi?u2ɆhՇ[݈!NJJ'/s DP֑X6m Byŕ_5k(\ɚOћx>؟#g8ף DʤL*a6muS)_|REǮ ܯ{n4βڳ].Ͷ:BU*aiG~S־pF|9ob( Q".6zK W_=tIf<r/O\|&Y2\|kYrg}LS2ZQ}R =KuC~r!~0e6l1Jrij$\+ h1(u)?r' 5 _  n  \u  iO V5]T׀U@ MwEJ!!"! $6$$E%z%%% &K&&G(`(&)(**!+,:,- .k,4/+.x00,1112B2u22244*35477a77p888949v99r;;9<;=!>k>0?e? A9A?aBXACCكoDD)EF GZECH+GIIG\JJ"KLMTK;N#MOOTPPQTQzQQQ-RTTkRSU;TVV#lWW2XYZdXL[4Z\\e]]+^_ `]^Da,`bb]cc#d]dddd6e g%gte\hDgiimujk;kmmmkTnu]ωT7nVȏM/fNo EۗX+F}eל݉$\6oC^}K<t<Wv5m4On '-eű?xLg$E}E`>v=Xwq6nHUp-ߌNOj'MHHc AyB]|);s:Ut3kE~Ql)J\iAsba| 9Z(l-Jjd#'7Ttn-1 A ^  ~ x7;XuNR]=o&KAK`KKKKP.QOQxQQQXSYYXnZZY[[*YY\\\\1]k]]]____aaaajcHdudcbeec,fffffgKghiWiiimmn;mo4o]m p-pSpppp+qrqds}ssDu]u|uwEwwx,xhx{||{}}|~A|B|T́[t %Dc#C#e/,'˟&1 8S=u 645۠@m@m 6Aζcٷָ ɡۺ +/2Q 7s٢`?UaHuHuKxǣBo>k N{-N{OIvqW.h@rJ"\4f >xP(Z2l DvN&`8jB|T,^6p $C6\1Po *Ih5T ?6On<Ut0IhVoA`7Vu/Nm4Ml3Rq     #     : Y 2'Fe3Rq3Lk2Qp&?^}D ] |    """"#6#$$%9%''(;(Z(((=*V*u**),B,a,,.6.U.t.020Q0p00 2"2A2`23444S45 6,6K6j66$8=8\8{8T::;t:; <: >%>C>??@8@a@A)BVBACCAEE)FFF@HYHxHMMM N:NYNxNObPPObQQORRTRV1VbVVVWBWoWW XXXYZ[N[P\\]]^_`B`Daabbccd6e8fsfjggiiij@jmnnmoonpp0nmqqqrErrrrttttu6u\uvw%wDwcwyy:yYyxyyyyizzj{{k||i~~~~~u܀ ؁z R>W}̅3T} 4qHuYnю7qݒI{“~ĕ#}*Ih4S_J}+X1^bhե'I٧k"+ў 7"OBo7P}Y]{ctK#]ɴ5gӵ ?yQ)[Ǹ3mٹ Rջ2Qpͼ";Zy־C\{$1#B"2$~F0On3RqG`9Xw5TsSl&E.M4SN[jf~Z2l Dv&?^}<Ut2KjMoi-_7~3R (Gf *Ih!@ m *J w LY  nf    g ?y^ )Hg (Gm:Yx;Z/UKMzmP}Q ~ ^!!o""F####$X$$$$=%&&&'!'@'_'~'''')/)N)m)))*+0+O+n+++++ ,J-c---P/k///// 0,0K0j0002\332j44?265p5556U6959T999!:>:;^:z===>N>}>>K>C??@U@WWWWBZ[[`Z\\Z]]Z^^Z|__Z`` [aa,[bbN[ccdnȷ#$Fܻ hڼ 5TsQ~U]Ac #/$Q(s5b7d@mQ~(b:lD~V.`8rW *Ih0On{b{ u5TSl-Lk*Ih ?$?e$=\.^b ~ 2 {  o  z  (Jl8!Z$|1GY1c ;u M    %!W!!!!/"v"###$&&&&'3'u)))**+b,{,,,90R0q001112:2u3333345M5l56667r888889D:]:|::; <,<K<====>??X?w?AAB9BXBCD8DEEFI)JJJJJIKKJMNONOO5NQ@QWN#RPRyNSSN?VXVwVVV^XwXXXEZ^Z}ZZw\\\\c'cFcecccފތ/$^P3la5od͖—ҘtP,fB7q Eߞ[Ģ^2l@5od8r F;uI #˱e9shѵk?yM!ɺc7q E:tH%T(j>xL O#RGU)knB|P$f:tH^2l@$^k2'aVY_3mAW+e9 {O#]1&`UK@z   x    {  O  ~`4nBH=wl1&_T  !!"#$J$?%y%n&&''())*+++,,U--(.b..6// 0091.2h2]3344556"78Q8F9999Ԫ߰ܳJe-L?;RI@w7n 1h,y/00;H11N22V*b)OP UY[V`abpcdjjkvl7ll.mRΒH:H\ĸT_FWߺeGi\mi  O -4.7a.c8//>00d[PPDQQIRRV WWXXZ:[\ˁ'ӓc|#EkW` (Vhޣ.Ťii1¬_3۰j0س|U)W+[)3g=vpiHl$np:>*cwzm~GS!e;?{yҕS-     o Ic#)[545\79:D<=>IB?b@*AHBC(DDFFGHIKMOTVtVVAW|}}}}x~~nfZہWv[ު`dhhpqA\TLDhu?}um7{o*rdZ  R       x  P/3344755#;66C?77C88G99K::d O;;V<<]==Dc>>(g??k@@oAAsBBwCCQDDBEαcZֳ~tON^.4sy<6g+jJ 3^'_DMWGX-! zpg/y  %  @#[*g (l" !%$LZ\oaޓ_+a(X! # s$ $ & ' r -s s t `t t u t | > 6 .   t G o !  g U J U         8          " ] !^ `^ ^ ^ O_ _ ` \` ` )a ka a b Bb b b c Wc c ~   $    c& $ S I 0 , s  : Z  2   F(    *  M  P  %     " \# $ J( 6 i) ) * <, , - . / e0 ;1 1 3 {4 z5 8 8 U9 9 9 YA H II +I KJ J VL U =W OZ ] H_ sa nc re \j ao s v 0)| ~ 2w3 ͎  ֕ a b ; v   ` W 56 k 8: =;  ?A  EuC  eGlI t #MK\    E" # $ ( ?+ s- / 0 u3 5 6 NOA: QR:Q< ? B H ^K L .O P R TUU {WcVX T] ] p^ ^ )` 5b c bf h k o t { l ` (  ء t H  \ I ~ Z 4  @ z 0 Z ~ ? ^ Q / 0 \2 8 Z9 9 LB ^C D F kkuklcm(mnonWppp r|rArs/tsouuvw[xx|}~X?!e@ ˌxb7n@"fA ϦŪ}g<sF(lGlAxP2vQ(#vKT6zU ,%uJU7{V!  -  )|QZ< !["&##2$'(+*++,,/123{4P55[8=:;\<'==3>AB+DEEFFIKLM|NQOO\R>TU]V(WW4X [\/^ __``cefghWiialCnobp-qr9r uv3xyyzz}ހYhJi4 @:`jLk6 B>ıŵepRq<HDmy[zEQ$J%py[zEQ' M(ub   L !X/U0{"k$%&U'*(a(6+-\.7/00135 77899<r>?@\A1BhBCDXEEFGHHJJKK-MMN OVP'QQ3RSPT%U\UVyWNXXYZw[[\]^^!``aaHcdd%eof@ghLhiij>kuklmgnnopqqsstt:v wwxay,z{8{|U}*~a~|QԂzΆڇ&̊O ,xIUrG~ʕp™ΚC l=If;rdĭ9 ߳b3?Z/fX۾- V'3P%\yNw!^a QXcz&jq{)0:w d  T[f|O";$%&&)*?,=/01z225f78999<&>j?jBC.ELHI'KDNOQQ2R\UV7XU[\0^Mab(dd;eehi@k]no8qqKruuvPxn{|I~fAׄT~YwRoJ]at yrj})"{s 2,%~xp.F>- bB"}QQXYYsZZ[[\]p]]MdzdgeekffPgmn o9oppwq||}}~Yҁ$(41,+!=B; 9 :ErEr;Ӷ޷ ۸ 0 7< eZMzMzP}GtCpSSN{\mEa9}U-qI!e=Y1 u:;;<.B[BCCgPPgQQT6VVVGWWXZS[\] _G`abc;exfgnnooppqrrrz{|݁%Mz^svNǓ"O0]6cgmڥĦާ !'0<'TGtUbhybδ:~V·.r޹W`kqIt2 E r O | ^  k    ~cZRUV  c!!t""##]$$B%a33o44u55Z6;=>S>>\H?Z@[[\\]]^^__``aabbcAddeee]fflnn%pp0rr;tuFvwQxqzzDq@?G*W0%RHA4&۝Ԟ̟ĠܢϣϤƥɦzeP};h&S>,ۯǰƳƴ(߼VZb$()-:g<iErVg?[3 w\3c  7   t    &) 6^6zR  *!!"{"JJKKNOOPQEQ(RURSS4cqtҖטkGvJƠɢqEtwKzN"%(бxֵ~R&κvJyM!$*Y-}Q%T(WZ.U)yM!qEc7frFj>b6e!P     sGM|6d ! #O$~%&' )++,-g.;/0>1m2345'7V890t126k[L\m--q..w//}0PQrQQRRlVGWWW^XZ+4FH.[/[/Q%ͯunBz}sGqw}YtN(lF 64  v P * `<3?ACEhGHIGVWO||C}}>~~4, 1\##+S1" X;C;3yA58    ^ F  >  l33p44t55x66|77899:: ;;<<==>>"??&@@*AA.BB2CCDDLK!60p{V_maU@6,"! # $ Q& & r ms /  x S K ~ d    ?  C  G  J  M  Q  U  W  [  ] 9 = C ʼn G Ɋ M ы U ׌ [ ߍ a ~ b R z p d 9 q  i   M  Q 6 7 7 a8 8 I I J J @K K L  1 ^ M   S x   u . ! F# $ - / 3 4 )6 9 X< ? tA J N RP Q sU X Z Lo s z e . & o   ?   > x q 1 @0 o8 9 9 A B B I "J ĭ   }  ??@@@\AAABCDE9dieegghRijk5llmknopNqqsst7u*vvw#xyY} ~~~.҆S؍|RELS)/ӠWܧVIQX.5ٺ]\OV ]3 ? gfY`g= Cih[_f< D  ml_fmC   I!""#$(o))*+n,a-e122l3B45 6::J;<<=>BoCCDEnFaGfKLLmMCNO PTTKUVVWX\s]]^_r`eale ffsgIhijnnPoppqrvwwwxyvzi{n"uK!҈W%ыČʐ~ђ}pu)|R( ԢY'ӥƦΪլtz.W- &ڼ_-ٿ z6_5(/h6 9b8+/h6 >g=06  o =   DmC6 ?$$x%F&''(,-%../015M667v8L9?:F>>?M@#AABnCJD EFFsGIH3?CrDDI_JJOWPPWQQVoWW\h]]b`cc`deixjkoppppqrvwx|}~yy҉ˏÕ"ڜ'9?80BHA9KQKD>6HM_e]og&q0 {:Q"r\\\4]]/ffgVpp.qE1 uM%iA]5 yQ)mEa9VeV WWXXY[S\]^ `Gabcd;fmgpqqHrrwzx{y|}U:~N&jֵB^ʸ6]5 yb:jBI##!$$$9556}==>>?@cdqddIee!fflnprtv`̋+oGc;J"f>   Z!!2"č'S6d8gŗwS/ :^a5 8g;>h<knBf:=mAJnqEi=a5 'n*Y\b6 Z.~R&)XC  {  ~ R c7 @o)W !"$B%q&'()*+,X-+../112`34568I9klMϯ ' S \    7 @  e0:D [)KX mw{&W:ivbS/9EZkghhBii/kk|~q'DEIWѨ9#mKT&Y(ZQH~?u)sD":/0011X22Vl@ɻp>̾H¿(Z6LPCY3wQ-   e?      [5mG!45s79:U<=>>L?@@4AeBBCEDDD#FbFFHBHHIAKKnMMO PGTV{VVKW|}} ~~{ol%ɩmrvzz( { VqiaY4z+TL ?}o  g  1       ]73E44I55M66Q77U88Y99]::a;;h<<o==u>>y??}@@ABBCC D\DDNEѯ۱ud ̽/:^h;AFF"#y6xTH%h1&oWaR,mB6* |s?  6  Q-k9x (LZ\okRj! # }$ $ & $' r Bs s t pt t u   S K C &   Q  y 7  r j _ j        "  &  *  ,  0  4 ] +^ w^ ^ _ i_ _ !` s` ` 6a a a b ^b b b %c ac c     ( . 6 ]    S E 7 & K  w  >   "  &  9  ' Z * Z  /       " f# *$ ' Q( 5 6 v) ) * K, , . . / }0 S1 1 3 4 5 -8 9 `9 9 9 nA H SI I SJ J mK K fL S U KW XZ 7] e_ }a xc e qj zo 1s v 5|  ˇ ‹ Վ     v l H    j c    r   -  )        )  ~ e     O" # % ' ) o) U+ - / 0 3 5 6 ^: < ? B iE 'G  I {K L KO P R V X \ a] ] z^ ^ 3` Eb c yf h k o t {   v   j 2    ~ ]  f  R d >  J  : d  L  r   [  0 0 f2 7 8 m9  : @ hB nC D F LG wG 8H gH I 9I I kJ J &N cN N O U Ob ^i M Gk  ,s y  i < 5 [   7 $  ^ ض R ̷ + %  $  \    s  <  c  gnn()..g/20~:Y??Y@@4AABBmCUDDE FSUX\1czddd-ffcfgRhhijiFkk|klkm/mnon_ppprrHrs7tswuuv#wcxxz|}~nI(uL ҌʏȐP̖w?uJ)vM!֦#Ω̪UѰ|DzP/|S'%)ZI Z9]1/3 dS^=a53 5 cR_>b6  4   9jYdC !g";#$9$%'(;*++,,i./1234X557e8D:;h<<=>:>?AB;DEEFFjHIKLMNYOOQfRETUiV=WX;XY[\?^__``pbcefgh_iikklJnonpBq r@rsuvCxyyzzr|}Ła"rQuIG΍J!yɗ̛h$tSwKIҧ"N%~αѵm*zY}QO(T+u3bZ"X. Z1x3bZ"X1]4 }:i   a )_9e<C!"r$%&j'2(h()@+-l.C/00123577899J;<y>?@qA9BoBCD`EEFGHHJJKK?MNNOhPt?#AtBC8EFVHI1KLNNO)QQHRTfUVAXY_[\:^_Wab2ddQe gohiJkmgnoBqqartuvZxzx{|S~pKj&c\yTs.k F'? |7tO0H)@!}X9R3K,E&=zT53lMdEC2<F  ])lL,+KPQQXbYY}ZZ[[\]z]]_amcWddqeeuffbgh"mm%noCopqqgsGuw{||}}~%cށ^*.2>; 65+GLECDO|O|Eݶ " :AF odWWZQ~Mz]]XfwO'kC_7{S+oGc;9?3Y!7  6)G "$'@*,, .0 235'8[::";;<>?A8BeBCCECHMOqPPqQQRT=VVV\WWX+Zh[\]_\`abdPefgimnnooppq"rrstvyz{|l~xÂ/AtWh}Xٓd,Y:g@mqwΦ+1 :F1^Q~_lrlشD`̷8|i%FJVQju{S)?5P~<O | Y  h  u    u2d\_`  m!!~""##g$$T%&)*M-U/2k33y4455f69&:;= >Z>>Z?d@WGZ[[\\]]^^__`aaabccKdd#eeegffmghhDii1kkl$nn/pp:rsEtuPvw[x@yzzz|~N{JڂHI$Q4a:d@"/\%RK>0'ޞ ֟Πš٣٤ХӦɧoZEr0]H 6$Ѱгдŵs 2`dl.23 7DqFsO|`qI!e=n~exV )'@pe%  A   ~    %03@$h@\  4!! ""#&x)*e,<01x3756u8G:;=B?ADEIJJKKMNOO P"QOQ2R_RSSBVaXHZz\c'>m{~ܖ Ù{QT(РӢ{O~UX,/2ڱ\0غTW+.4c7 [/^2ad8 _3W+{O#mAp|P$tHl@o+Z     }Q%(W@n !*#Y$%&')#++,-q.E/0H1w234617`899X~;bҨ:`#yJnKU'Y(;!ZQH~?u)MsE":/000WH{1112X22/UV%l@ɻp>̾H{¿OgJ(i Zm6nxpL~P`C{lwUz/~ Y\3sM'wDQ- = ; ەe?     }  W  1   [l52gCmG!34?45s79:U<=>R>M???"@@@5A@ABfBBCBCCFDDDDEE$FcFFFpGGHCHH{HPIIIBKKuKoMMMO POPGTTVOV{VVVWKWW|||}K}}} ~F~~~<4{(o%l8&cʩn"r&v*z*z2(a ?{ V*Lw*q"iaY4z+`CTKC;LI =?@}( o    g   1 f   N    F    ]7ds333E4w444I5{55,5M6ʼ66L7Q7778U888 9Y999 :]:::m;a;;;<h<<< =o===M%>u>>>1)?y???-@}@@@1AAAB5BBBC9CCC D\DDDENETRѯ 2۱u)dB8 xX̽/Mr:Vx^i<AFF"W#y6xTI%h1^&oNW%aR,g&mBu6i*]G =3|)s?  6  Q-k9x ({"0!%$LMZ\o)a!k4jR! j!  # # }$ $ $ X& & & $' Fk r r Bs us s t pt t u  6  = S  K C & [  S  E  Q  @ y 7 l  r # j  _ # j F    J    N    Q  A " T   & X  $ * \   , ^   0 b   4 ] ] +^ w^ ^ _ i_ _ _ !` s` ` 6a a a b ^b b b %c ac c  @ ‡  D ƈ  J ̉  $N Њ T ؋ ( \ ތ . l&b 6 h ^ j Z  S E x 7 l A & S K  w x   > p    O( " T   & X  * 9  ' Z < ` * Z   /            " f# *$ ' /' Q' ' ' R( 5 6 5 6 6 w) ) * L, , . . / ~0 T1 1 3 4 5 7 7 .8 i8 8 9 `9 9 9 X= oA D H I SI +I I I J SJ J J K HK mK K K K L &L fL S S +T T U MW ZZ 9] g_ a zc e sj |o 3s v 07| ͇ 23ċ ׎   x n J  m f B k 56 q  x   t 9  8':0 f  =; , U }   |  ?A %  EC[   ?   + oGuI   ,MK g }    6 k   ! P" N# # $ % ' ' ' ) r) #* V* W+ - - / e/ / 0 3 3 4 5 16 6 6 NO9 a: ZRDQ`< < ? ? A B kE E ,F *G G H I J K }K L N MO ZP P Q NR R "T#U{U V WmVX X Z \ a] ] \ \ z^ ^ ] Q_ 5` Gb c {f h k To o t St t z { l  w 6 . j 4 w    ] G f 0 ƾ ݾ  R y  * d (Y > Y \  Y . J `ZJ h Z 0[> - : # G y  e M  r  ,   \ 9 I 0 H0 0 2 g2 3 7 7 7 8 ?8 w8 8 9 n9 9 : @ A DA A A B jB B C pC C D F LG wG G H 8H gH G I 9I G I I *J kJ J &N cN N N O U Qb `i M Ik /s y j > 8 \ ̭ 8 % \ ^ _ ض c R o ̷ ht= , & % B: m ^  s   <  e % L2gopcyz()..&/g/30: ?Y??? @Y@@@@4AdAAAAB:BBBBBCmCCCDVDDDD)EEE FSVX\1cac@dzdddpee-ffcf#gggRhhhYiijij kFkk|kuwuu1vvv#ww*xcxxyzz5y|za}}|~~~#nJ0(6uLچ ډҌ[ʏYȐLPiT̖Z1w?uK1)7vM۠!ޣ֦_#Ω]̪PUnY Ѱ_6| DzQ7/=| S'%ƽe)cVZs^d;I #[A9G]1/o3 m`d}hnES '_E=Ka53 q5 obc|gmDR (`F>Lb6   4      u9sfjn"tK Y-eK C  Q!!"g"";##$9$$%%'%((w));**+++u,,,h-i../.m11!222s33J445X5567.7f8L7:D::R;;<h<<<==>:>>??A?BBwCC;DDEEEuFFFhGjHHIHnKK"LLLtMMKNN OYOOPQ/QgRMQTETTSUU ViVV=WWX;XXYY[Y\\{]^?^^___y```lapbbcbtee(fffzggQhh&i_iijk4kllRknJnnXoo%pnppBqq r@rrssusvvwxCxxyyy}zzzp{r||}|v*|ŁS(a";sY&Qڈ_,uI؋Gˌ΍Ґ Jؒ!wyʗ}1̛Z/h"$=u[(Sܢa.wKڥIͦҧ# ֪Nܬ%{~ϱ6ѵ_4m'*C{a.Yg4} QO)T+>g<u/3Lj7bp=Z"X/ Z1Aj?x23Lj7bp=Z"X2]4F oD}7:Sq> i  w  D   a  )_: &e<LuJ= C!\!"z!G$r$$%%M&&$'j''2(h(() *A+'*,---.l..C//00011223255U66777~88S999F:J;c;<;N>y>???T@@+AqAB9BoBBuCCRDD'E`EEFFF{GGPHHHCIIJJJyKKKlLL?MMNNNOOPhPP->m>;?t?#Amoo݆xpqBqxqqqrart8truVtvvKwxZxz1zxy{Oz||}~S~)x~qG‚'K!j&A_ډ'c:Xӏ \2zP˕qT*s.Ig߉/k AFa'MG?Zx @|7Rp)8tȱJOj0·PHc)I@[y!sA}SXs 9YRm3OSKf,LE`~&+F=Xv>zPTo5U3gl MumdEeCw2Mlo.*<Wvy84 F a   B>]xY)U.lL~,+KDKeKKKKP1QRQQQ QXbYYX}ZZ Y[[-Yh\\\]@]z]]]____aaaamcWddcqeec;fufffgbghiZiii"mm%n>moCo`mp0pbpppq5qqgsssGu`uuwHwwx/xkx{|||}}"|~%D|Q)cށ^w (Gm*.F2h>; 6Ο5+4GVLxECDޠO|O|"EDݶ f̡" :2ATFvܢ  oBddWWZʣQ~Mz]0]RXtf=wO'Y1k CuM%_7iA{S+]5o GyQ)c;mE#'F@_4Sr-Lk8W#B9Rq?Xw3LkYr%Dc!:Yx2Qp7Po 6Ut     &     = \  5 *In6Ut6On5Ts)BaG `     """"#9#$$%<%'((>(g(((@*Y*x**,,E,d,, .9.X.w.050T0s00 2%2D2c23474V456/6N6m66'8@8_8~8[::";w:;<:>'>F>??@E@d@A8BeBACCAEE,FFFCH\H{HMMMN=N\NNOqPPOqQQPRRTRV=VlVVVW\WWWXXXY+Z[h[[\\]]^_`\`OaabbcdePeCffuggiii$jCjmnnmoonpp3n|qqq"rTrrrsttttu@ufuv w(wGwpwyy=y\y{yyyyzz{{||l~~~~~xÂ/\Aaυ!6WAtWh}ԎFXٓǕ&-Lk7Vd,Y:g@mĝqw*ΦLn+1 :ԞF1^Q~:_\l~rŸZƳ2lش DvN&`̷8jָB|iػ5Tsм%>]|پF_~'9&E+5'*I3Rq6UtJc<[z8WvVo )H1P7VQjmuiA{S)Ba?Xw5NwP~l<nA6U +Ji-Lk$O | -Y  Oh  qu    vN!u ,Kj +Qp=\{>]2dN\p_`  m!!~""U####-$g$$$%T%&&&'$'C'b''''')2)Q)p)))*+3+R+q+++++ ,M-f---U/u/////0/0N0m0002k33 2y44B2E55556f6989e999&:A:;`:=== >Z>>>x?Z??'@d@WWWWGZ[[cZ\\Z]]Z^^Z__Z`a [aa/[bcQ[ccdKd}ddd#eUeeee-fgfffmggh.hhhDi`iij1kRkkklll$nnn/ppp:rrsEttuPvvw[x@yyyzzz[y||||}~N{~J~ڂ,w^HIf$Q4a:l؋ȍd}@Yx"/\>%R`K>0Ɠ' ,ޞ N֟pΠš֔٣٤Х<Ӧ^ɧoĕZEr0]*HL 6n$ѰԖгдŵAs˷ 2'Ik8W`d"lDf.223T 7vDqFsO|`7qI{!S+e=oGn-Lk3Rq~e~ x8WVo0On-Lk #B)Ih&'@_@pe%  A   ~     +Mo%;0]3@$V.h@rJ" \    4!f!!! "9""### $&&&&'D'x)))**+e,~,,,<0U0t001112=2x3333375P5o56667u888889G:`:::;</<N<====>B?[?z?AAB/m[>{l@~oܖ͗ Ù[7{QBT(РfӢi={O@~oCUFX,¬/Ů2ȰڱpDsvJ\0ƹغnBTEW+.4%c7 uI[/ ^2#aR&d8 vyM!_3qEW+i={O#/mvA2padj>|P$b6t HZ.l@1o`+ZK"         Z  k?}Q%(WHw@1n_  !!"*#$Y$J%%y&&''()**#+++,,`--3.q./E//0 1H192w2h334456617"8`8Q9999i&Cj'KhȭŰ³/`v1Wc(5" g6&'i`W N~5`.F/)000111#2a225UVHbY7\`abcc ei jsjj kZkkllKllD&vlScg<g*\ss1v"g>j6$ =   l z---U.~../Y///0_000zO}PPPQWQQQQRoRRSyVV+WXWWWWCXlXXZ [S[\܁s 6Z҃ Dn .X|ʅBf҆Km9ϔFʕ'B֙mכy&ӝT>՟V*z<3Di=@i=MΫެ_3Wۯ+ӱT|̴P)yM+{Oػ|M ۾WѿU&4 iE!~[_fO&[5hByS-`<CAtN  (     ]  7  jDmI#|V034E457"9:d<>>>V???+@@@>AAABuBB$CBCCUDDEDEE3FvFFFGGHVHHHcIIIUKK~KMMMOPOPVTT)VUVVVVWTW]|||'}Q}}}~L~~~B:.~+{>Ҩ5v٩}(,00 87gE/e3U0(x ph@:f"I`%QIA [(OCNF . ~   & v   @ l  + T    L   iFjy333T4}444X5556\6667`777 8d8889h999:l:::;p;;;<w<<<&=~==>+>>>?/??? @3@@@A7AAAB;BBBC?CCCDhDDD E]EZXׯ8./sHô>~κ۽5V{@_#mZGU U1]2? c)g4w:d5~f+j[;m,|Q{Eo9c-MC9/N  B  ]9wE!(L M[]o'z^( ! y! # # $ $ % ^& & & 3' Lk r s Qs {s s t |t t ,u  <  ! C  b Z  R 5 a - Y % K  ` # F F r ( ) y  n ) y L   ' P   + T   . W   1 Z   5 ^   9 b   ; d   ? h   C ] ] 7^ ^ ^ _ u_ _ _ 0` ` ` Ba a a b jb b b 1c mc c Ć  F ȇ ! J ̈ % P ҉ + T ֊ / Z ދ 7 b = h E n ǎ  g  p µ  ` _  T ~ F r G 2 Y Z ~   M v     1 Z   5 ^   H & 0 c E i 3 c   8           ! " o# 9$ ' 8' Z' ' ' [( 5 6 5 6 6 ) ) * [, - . . / 0 ]1 2 3 4 5 7 7 =8 |8 8 &9 l9 9 9 p= ~A D H I bI I I I J bJ J J (K NK sK K K K L ,L uL S T 4T T U \W iZ H] v_ a c e j o Bs v F| ܇ Ӌ "  Ġ } Y  ' >    K t . z  E 3 } 7 j ( ?  ;    5    V   & H   :  /   v     K t   " _" c# # $ % ?' ' ( %) ) ,* _* y+ 3- - ;/ n/ / 0 53 3 4 #5 b6 6 7 9 p: < < ;? ? A B E F fF gG G H 1I J $K K L N \O |P P R WR R U )V JX X Z \ j] ] \ ] ^ ^ (] u_ >` Vb c f h k xo o *t \t t z %{   K 4 y њ C } 5 3  l  \ r 6 ̾ [ ) ; 0 m .Y G Y b  Y 4 S fZP n Z  6[V    3 I  , P $ n \ ( ~ / D 7  e ] a 0 [0 0 2 v2 3 7 7 7 8 H8 8 8 9 }9 9 : A A MA A A B yB B "C C C E F XG }G G H AH pH G I BI G I J 0J zJ J 2N oN N O O U ob ~i Y gk \s z y \ e k G 4  m  a ۷ U 5 5 4  v g  y   E   n . . a;m()&. /,/v/N0:?h???@h@@@@CAjAAAABCBBBBC"C|CCCD_DDDE2EEE)FSkX\=cgcFddddveeC>>??%A?BB}CDJDD!EEE{FFFnGpHHIHtKK(LLLzMMQNN&OhOOPQ8Q|RSQ TNTTYUU&VxVVLWWXDXXYY)[Z\\]^N^^%___```ravbbcbzee.fffggWhh,iniij!k=klXk%nSnn^oo+p}pqQqqrIrrss-utvvw xRxx)yyyzzzv{x||}||0ԁY.p!(D_,Ze2 Xދ Pьԍ4 ؐYޒ0̔}ߗ7ۛ`5w(*Fa.\g4 Z"RӦا8ܪ ]4Ю< e:|-0Lg4bm:`(X>c:DmB59Up=kvCi1aD!i@ GpE89Up=kvCi1aG$lCLuJ=@\wD r  }  J  ! p  8h O&!,tKR{PC I!e!"!M${$%%%S&&*'y''A(q(()*V+-*,(--3.{./R//&00011224255[66(77788Y999L:P;l;<;T>>???Z@@1AABHBxBB{CCXDD-EoEE FFFGGVHHHIII%JJJKKKrLLNMM"NNNOOPwPPKQQRCRRHSS%TtTTjjkUkklllgmmY}c*E0\N~{6~AG:Vq*{BmUpZ0:,K/ F t    e  t+m1%A\f-H2^P#t!! "!$K$$V%%%%3&\&&P(l(&)(* +,+,X,-.s,]/3.00=112/2N2223442364H7v77888 9^999{;;9<;>6>v>A??)AEA?B`ACCDEGEFGbElH3GIIRmJJAKLM\KdN+MOOePP9QeQQQRXR T(TsR|UCTVV.}W XQXZ!ZlXu[ѱ&PUsǵ 9ȷVNl2OFd*|G/Y^|B_Xv <XYQo5ƍRKi/4LCa|'D,VZx>[Cmr&V~sjNkS}8Vru40 B`|>: L j   H"Dc_9[54uU51KMKnKKKKP:Q[QQQQXkYYXZZY[[6Yn\\\]F]]]^___`aaaasc`ddczeecAf~fffgrgh%iciij(mn.nGmoLoimp9phpppq;qqmsssMuiuu wQwwx8xtx{|| |}}+|.M|(WÀ/ld1Pv0 7O;qGD?ן>4(=#P_(U!NLŠ MX X+!NMo%ա +C;J]"Oâ )xKmm``cӣZVf9f[a}oCX0_7tL{$S+h@oG\4c ;xP(W/lDsK  ,0O#Ih=\{6Ut"A` ,K?[zEa9Ut_{.Ml'Cb;Zy=Yx#?^} '     /    ' F e  )> 3Rw#?^}<Xw">]|/KjM i     """###B#$%&%E%' (((G(p(((F*b***2,N,m,,&.B.a.."0>0]0|002.2M2l24!4@4_45686W6v66-8I8h88a::+;:;$<:>0>O>?@%@N@m@AABnBACCAEE5FFGIHeHHMMM'NFNeNNOzPPOzQQ PRR1TRVFVrVVVWlWWWXXXY;Z$[x[a\\]]^/_`l`Uaabbc#d e`eIff{ggiij-jLjmnnmoonpp]|ټ+GfþLh0B/N4>03R<[z#?^}Pl&Ed"A`\x2Q:Y!@_Wsv~oG\/KjEa;WVuEtG ?^4Sr6Ut-X  6b  Xq  z~    |%T'5Ts4Zy'Fe (Gf8mWeyhi  v!!""[###$3$p$$$%d%&&&'-'L'k''''');)Z)y)))++<+[+z+++++,S-o---[/~/////080W0v000 2t33)244K2K55556v6%9A9n999,:J:;f:===0>c>>> ?j??-@t@WWWXMZ[[lZ\\Z]]Z^^Z__Z` a[ab8[b cZ[ccdTdddd,e[eeef3fpfffsggh7hhhJiiiij7k[kkklll*nno5pp q@rrsKtt"uVvv-waxFyyyzzdy||||}~W~&S""5ŃgN%Ro-Z=jCrދэjďFb(8eG.[i'TG 9ϓ0&5Wߟ yנΡ¢ߔ#٥Eܦgҧx͕cN{9f3$QU?w-ڰݖٳٴ(εJyԷ;0(R!t%"A`i m+uMo 7;;<]@MzO|Xi=zR*Y1n FuM ~6Ut<[zk~%A`\x9Xw6Ut,K/Rq/-IhIy k .  J       4Vx(".D 9f<I-\4q Ix!P( e   !=!l!!!"?""##$)$&&&' 'M'~)))*+$+k,,,,B0^0}00112'2F2~33333=5Y5x5667&7{888889M:i:::;<8<W<====>H?d??AB&BEBdB D%DDDEEFI5JVJJJIKKJNN(ONOPAN+QXQcN;RhRNSSNHVdVVVVgXXXXNZjZZZ\\\\c3cRcpccc7Ë ҍN5}aDrFuӗәa=aHd8ğ loC_FuIeL h<Ȭ?ˮBΰvJy|ĶP$l@̹tHdKg;>D+sG{O#k?&nB)qX,tH|S'oCwKg;oC_3 5}|" Q8gjpD`4h<X,`4|P7f ;"jQ(         `  qEa5 8gN}" P7~e  ! "":#!$i$P%%&&''(%) **3++,,,f--9.. /U//)01X1?22n3344566A7(8p8W9999q C ]' ) E G v3 Yj= *K ( F  O a ~ c '2 w @>;8ȷ9&$<c_HOPiUYV\W]_awcSe-SXhiVm1o q:w{d~/ b[?CA)C EFHKMP? Wgo3q"# N "!J&%[&]}a&V 1  CxS/$&l  (k*h h =   6 6 "D H,U aW nZ M] {_ a c e j o Gs v 51K| b23؋ 8   p a ^ 5 7  - h8{:D  J>!<@  @-B  EC ? GI  MfK{    d" # % + - / 1 3 (5 7 NONPu: RQ= ? B Zg^a6`~ehNg}wknFmru^tYx{WzLJ~O5g`XoԢ[ͨɊŮx7ݵֻ]ˍ9~t-~7  AXQYZ[de3nQo|}3<@LIDC9-UZSQRS# *%0HOT%0;)<sBDPQ[TRnop&Ljgu{ #9?HTl      !"34;h:̙[\]^_a bczX'W_oj`YL>5+  ޥקkVD2  ޳޴ӵ@-&*<@AE~3 O     -3>ANJK-OP]QmRT)'$!iG#q,OlPTVZS_\:_acdgU4Z5zi<lnpHwz}8 lH/Ǫ?ACeECG#I LJNtP)vJ* -l'  $R"'%[` oG    rf$I&$(^ K ] )+    S t6 q7 XD 0V aY \ ^ a c e i n xr >v z 1  * U3\5 ְ [ Z ` 67 9;# Y ?=  AJC  CGvE  JIJ  NMM   ! '# |$ & , . 0 2 k4 5 9 OQ< S&R> LA ^D J ZL N $P Q 8U T8VW YPWZ J^ _ a [c e h j n s Zz = a * I u Y Y OZ Z ' [ a [" S S { F H I M P W c j l t Ú k ^cn1tyc n { ; s  Q'z|q8>KTLY]cyB}L{||ރ15ޒߝ5:;?EIGHK O(M&N1.97BM@OKHSQ\QZUebnkvUtW}\^ `c fklnos wy"($!,~*5+3/>;Hh|g(X}*}4~7W~C~a! A Z- Ȁ69YX #"'*(,d0.3#7C5\B:=<ʃ?CA8EIGKO|MRVTX\Z^b`^eiğkom:rvtx|z~ߋ`ؑΉœ<ڣ֡өϧ˯ǭߴܼغbЌ> d,ҏ%@OWYa c kz.RZ#[C\dfnoM}I~ŮK_g ;<BoDQRU&SEoLpWqd3!Ӡ#]uݭ573D":DHXq    8Q  !"0#4 5d=:V\R]B^6_0`zaxbc{ĀĈʉۊԗʘÙ}sj]PPGJ@+׬ŭxJH= JcZHT  / % -aTR]uhKoLOPQRoTcv6Ur;e)C_z1Kb|0Sj~  : U s   - A U i }  1 E Y m ' @ \ x  # 7 K j &<Uq<Pn !;Xl9`|$9Vk  @]r5Rm1F[v,Rg 3H]r$9Nc -Ww3Ni~!>Sh}-Rg=m4I^}*>Rf & E m !!/!I!g!!!!!! ""7"Q"o""""""#/#D#Y#n#######$"$7$R$t$$$$$$%1%R%o%%%%%%% & &?&T&s&&&&&&''9'N'm'''''''((.(B(V(j(~(((((())*)?)T)i)~)))))) *$*9*S*h******* ++8+R+g+++++++ ,,7,Q,z,,,,,,--*-?-`-u------ .&.;.S.h......./)/E/Z/u//////0020J0_0z0000011-1H1]1u111112)2I2i222223+3O3t333333 4$4D4Y4t444445!5A5V5q5555556+6I6^6y6666667)7>7Y7n777777 8,8A8\8q888888 9*9?9Z9o99999::2:R:g:::::::;';B;W;x;;;;;;<<2<G<\<q<<<<<=,=K=`=======>&>;>Z>o>>>>>> ? ???T?s?????@@*@I@^@}@@@@@@A$ACAXAmAAAAAA BB=BRBqBBBBBBC"C7CLCkCCCCCCDD;DPDoDDDDDDE E5ETEiEEEEEEF$F9FNFmFFFFFFFG)GHG]G|GGGGGG H H4HHH\HpHHHHHHHHI$I8ILI`ItIIIIIIIJJ(JSh} 2Gbw¡ס*EZuբ<Wlޣ0RgԤ4IdyХ0Ncx̦*?^sۧ$9Xmը =Rqϩ7LkӪ1F[pī٫-BWlìج4I^sǭܭ1OlѮ%Dmկ5Tǰܰ0EZy± *?^sƲ۲$CXw߳(=\qĴٴ-BWlյ)>WlǶܶ "?Trַ*?Zoø޸#>Suչ6Tk̺/DYnֻ >Shм#8Mmֽ*?Zoþؾ,AVk˿)@[p6Pe:Vk%A\v<^~ '<Ti "7Lav%@Ut 5Rg&A`u2G\q 7Pn1Lk#Gn>q1H]t 7Lcz (G\q#8Pg~5Ph&@Zo2G\t1Og~%?Yn1F[s"<Qh(?^s'B`w&=\q1Lk ;U#;Rl5Lez 3Kby6Kcz&C[r1Hc}9Sr2G_v/Fez0G^x "7Ncz?Tk,CZy,Cbw/DYn7Lav&=Xm)>Sn !6Qm3Mp+@Uj'<Qf)C\v9l7_Fs!:On.Ncx!6K`u =]r;Vk 'F[r(A_t1Ff~#;Ul;Pg'<]} 3H]r/DYn+@Uj'B\x %:Rk # ; S o        / D \ t      % E _ t        3 H c      0 H c z      )D[v"=Tn%<Wl(=Xm/Kf#:Qm ,C`u3Nk #8Mr0El.CXm*?Ti5Rg*Px4Ibw3Hbw 9Sh '<Tn ) @ [ r       !'!D!X!l!!!!!!!"6"J"^"x"""""" #(#<#P#j#######$.$B$\$v$$$$$$ % %4%N%h%%%%%%% &&&C&W&k&&&&&&'$';'P'd''''''' ($(8(W(t(((((())0)K)_)~)))))) *#*=*T*k*******+'+;+V+j++++++,,/,C,`,t,,,,,,--3-P-d-}------ .!.5.P.d......./+/E/_/v///////020F0a0u0000001'1<1P1m11111112&2@2]2q22222223,3@3[3o3333334464P4j4444444 55=5Q5l5555555606E6Y6v66666677/7I7f7z7777778+8?8S8n88888889/9I9c9}999999::1:P:d:::::::;0;G;\;p;;;;;;<<2<F<`<}<<<<<<==6=J=_=z====== >*>?>W>q>>>>>>>?,?A?`?u?????? @$@=@T@i@~@@@@@@A)ADAYAsAAAAAABB2BOBdByBBBBBB C'CDCYCtCCCCCCDD1DLDaDDDDDDDE+EEE_EvEEEEEEFF6FKFfF{FFFFFFG&G;GPGmGGGGGGGH+HEHbHwHHHHHHII4IIIdIyIIIIIIJ)J@JZJqJJJJJJJK)KHK]KxKKKKKK L%LlSlmlllllllm)mDmYmxmmmmmm n!n;nSnjnnnnnnn o*o?oZoooooooopp3pHpepzppppppq#q=qZqoqqqqqqrr2rGrbrwrrrrrrs'sAs[sussssssst-tLtat|ttttttu-uDuYunuuuuuuvv4vIvcvvvvvvvw(wEwZwowwwwwwxx:xOxgxxxxxxx y!yShī߫+@_xج4I^yŭڭ.C]tЮ*Fav̯)>[pϰ0EZwѱ2Qlβ*?Toӳ1F[p״ #>Skɵ޵#8Toض3Hezڷ %<Qf¸ݸ)>]uԹ0EZuֺ)>Wnʻ߻(CXqϼ)FavԽ0Kb}վ1Fav¿*CZo-BYp(CXo '<Xs1Fcx2G\y4Sm*?To+@Uj$AVk4Od}5Ni~ 4Oi&;Pk#8Ul ">Yn 4Qf{(=Ro)@Uj-Ba{#8Mb}(EZo-B_t9Ql !6Qk(=Rm+@Uj*G\q/Dav;Sn#8Sh7Ncx $9Sj  <Wl7La|-DYn/Ic} 5Sj+@Up-G\v/Rl8Rg~$>Sm)Eh8Mdy.Ie3Mbw6Qt=Uu$9Po&Ed%C]w$9Pk&AVm(?Yn3H_|3Ncz3Jez $?Tk,C_t4I`~  7Rg~+@Wr4Nc} 9Nh} $9Sh$>Sm)>Xm)CXr.C]r.Ml8Su8Up $ ? Y q       4 S m       6 P q       5 P o      " < ^ y      +Gh(Gb -Nm7Pn-Mg/Pj!B\{ %?^y$=]w(Hc1Qk=Xw!BZy#>]x"C]y $?Y~!;Pg&@[u# = X y       !$!>!W!p!!!!!!""3"H"]"|""""""#!#6#Q#f#######$&$A$V$q$$$$$$%%=%Y%w%%%%%&&4&K&f&{&&&&&&''4'S'r'''''( (A(\(z((((().)O)g)))))))*2*G*_*z*****+<+W+l+++++++,+,@,_,,,,,,-9-N-i-~-----.5.J.a.......//3/M/b/|/////030O0v000001,1H1b1}1111112%2<2T2i22222223-3B3Y3u33333344.4J4_4v444444 5#585O5j55555556%6K6`6w6666667737H7b7w7777778838M8b8|888888 9989M9g9|99999:*:K:c:::::: ;-;H;f;;;;;; <A<\<x<<<<<==@=[=t===== >(>H>f>>>>>>?0?I?i??????@1@L@e@@@@@@A*ALAlAAAAAAB8BSBlBBBBBC"C=CVCtCCCCCD0DQDlDDDDDEEYoѸ3Ndƹܹ (>YoѺ3Idzƻܻ (>YoѼ3Ndƽ(CYt־8Ndƿ(CYt8Ni-Yw !5I]q%9Mau)=Qey-AUi} 1EYm !5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p  - B W l         ) > S h }        % : O d y        ! 6 K ` u         2 G \ q       .CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh} % : O d y        !!!6!K!`!u!!!!!!!""2"G"\"q"""""""##.#C#X#m#######$$*$?$T$i$~$$$$$$$%&%;%P%e%z%%%%%%% &"&7&L&a&v&fz &Eb+Uo3Oj!;Rl  CZn * E c }  1 E Y m ! 5 I ] q  0 L h |  ' ; Z ,Ea,@^r+H\v )Pl)F[}0Mbw %B]t !6KfBWq#8Mbw)>SsGg #>Yn.CXmBWr-]$9Nm.BVq 5 ] r !!9!W!p!!!!!!"'"A"_"~"""""##4#I#^#s#######$'$B$d$y$$$$$%!%B%_%}%%%%%%%&/&D&c&x&&&&&& ')'>']'r''''''' ((2(F(Z(n((((((())/)D)Y)n)))))))*)*C*X*r*******+(+B+W+q+++++++,',A,j,,,,,,,--/-P-e-|------.+.C.X.q......//5/J/e/z////// 0"0:0O0j0000001181M1e1z11111292Y2{222233?3d3y333333444I4d444444515F5a5v555556696N6i66666667.7I7^7y777777818L8a8|8888889/9J9_9z99999:":B:W:r::::::;;2;G;h;};;;;;; <"<7<L<a<v<<<<==;=P=o======>>+>J>_>~>>>>>>?/?D?c?x?????@@9@N@m@@@@@@@A3AHA]A|AAAAAAB-BBBaBvBBBBBBC'CF]FrFFFFFFGG8GMGlGGGGGGGH$H8HLH`HtHHHHHHHII(IWYWnWWWWWWXX+X@XUXjXXXXXXXY)YAY`YuYYYYYYZ)ZHZ]Z|ZZZZZZ[-[B[a[v[[[[[[\\-\A\U\i\}\\\\\\\ ]]1]E]^]s]]]]]]]^^0^E^h^}^^^^^^ _$_9_W_l_______`%`:`O`d`y``````` a!a6aQawaaaaa b+bGb_bbbbbbbc$c?cTcoccccccc!dIdmdddddde#e8eSeveeeeee f(f=fXfmffffffg*gEgjggggggg*h?hZhhhhhi'iBiWiriiiiiij'jBjWjrjjjjjjk"k7kRk|kkkkkkl4lIl^lslllllllm%mDmYmxmmmmmm n)n>nSnrnnnnnnoo8oMolooooooop2pGpfp{pppppp q"qAqVquqqqqqqr&r;rZrorrrrrr s s?sTsisssssst$t9tXtmtttttuu7uKu_usuuuuuuuuv'v;vOvcvwvvvvvvvww+w?wSwgw{wwwwwwwxx/xCxXxmxxxxxxx y!y6yKyfyyyyyyyzz6zKzhz}zzzzzzz{%{:{O{m{{{{{{|#|<|Q|l|||||||}'}A}X}v}}}}}}}~,~A~V~t~~~~~~~1Pe}%:Odỳ )D`Ӂ,H]vÂ8Mtȃ݃+IezȄ0Keͅ)>Ztֆ@być&?TmՈ 5Pvɉމ2G\qɊފ)>Yn΋7LavԌ<Qp؍ '<Qf{ӎ 'AXvÏAm֐1Vkʑߑ 3H]rɒޒ2G\qœړCXx˔"7Lavٕ-Lavʖ,AVkŗ%CXm 4I^sљ1FavĚٚ"7VkÛ 4I^sڜ *Hhϝ#BWlԞ*?Tişڟ.CXmԠ"7Rgǡ5JezŢڢ ,G\wΣ BWrĤ٤ $9Tiե >Sh}Ѧ/Ncx˧)H]|Ũڨ-Bavԩ'<[pêت !6K`uɫޫ2G\qȬݬ$9Ncx̭!?\{֮4]|ů%Dṵ 5Ji~ѱ/Nc˲3Hg|ϳ-Laɴ޴2G\qŵڵ.G\q̶/DbƷ۷/J_zθ.CezŹ&D[z׺ 4I^sƻۻ.CXw߼(=]rƽ۽/J_tȾݾ1F[pҿ0K`w&@Ut*F[s1Lf,Nn,DYq'<Qf{0Edy%BWs1Pez "7La'@^w!<[{7^x.av!8Md{'<Sj7Lav(@Wn%@Xo0J_t "7Ld{!?Wn/I^s !6Kcz,AXo/Ncx2Pg-Lax !<[s+Ep+B\v %<Uj#;Ri &;Sj3Kb} !8Sm)Cbw "7Of}6Uj 7Nh'>Sj/D[r3Ji3Rg~ 4I^s '<Qf{-H]x.C^u&A]r#=`x0EZo,AVq3Lf)\'O6c*?^u >Sh}&;Pe-Mbw +F[p6Kbw1Ody !6Vn+E\w +@Ww,Mm#8Mbw 4I^s0EZo2Lh*B[{ + C _ z        4 L d       5 O d ~       # 8 S s      8 S j       4Kf-D^u,G\s-H]r;Vu*A]y3Pez#>[p(=bw 5\q 3H]r/DYu%BWp@h $9Rg#8Rg)CXp,D^x 0 K b       !4!H!\!v!!!!!! "&":"N"h"""""""#,#@#Z#t###### $$2$L$f$$$$$$$%$%>%X%u%%%%%%%&3&G&[&u&&&&&&'+'@'T'q'''''''(((G(d(~(((((( ) );)O)n)))))))*-*D*[*p*******+++F+Z+t++++++ ,,3,P,d,x,,,,,, -#-@-T-m-------.%.@.T.s......//5/O/f/{//////0"060Q0e00000011,1@1]1q1111112202M2a2y2222223303K3_3~333333 4&4@4Z4q44444445-5A5\5p555555 6 656I6f6z666666 7797V7j77777778/8C8^8r888888 9999S9m9999999 :!:@:T:o::::::; ;7;L;`;};;;;;;<"<6<P<m<<<<<<< =&=:=O=j=======>/>G>a>y>>>>>>??1?P?e???????@-@D@Y@n@@@@@@AA4AIAcAAAAAAA B"B?BTBiBBBBBBBC4CICdC~CCCCCC D!DX[XpXXXXXXYY3YPYeY}YYYYYY Z"Z7ZRZgZZZZZZ[[4[N[k[[[[[[[\#\B\W\r\\\\\\]]6]K]`]}]]]]]] ^&^;^U^r^^^^^^^_/_D_Y_t______`$`9`Q`k``````` a&a;aZaoaaaaaab b;bRbgb|bbbbbbc'cBcWcqccccccd#d8dUdjddddddde-eJe_e}eeeeeef(f=fXfmffffffgg8gRgmgggggggh%hDhYhthhhhhh i%iYnχ3MjȈ/DYx׉ =RmΊ2Ga~Nj܋ &CXmь2Qf͍+F[uێ  :WlЏ1FezĐ *?ZoБ4Nkɒ0EZyؓ >Snϔ3Hbȕݕ 'DYnҖ 3RgΗ,G\vܘ !;Xmљ2Gf{Ś +@[pћ 5Olʜ1F[zٝ  ?ToО4Icɟޟ(EZoӠ 4Shϡ-H]wݢ "<Ynң3Kf{Ԥ0K`|˥/F[p̦/G^sϧ0K`ʨ&CXmҩ-B_tЪ.CXuϫ0OhȬݬ$9Ni~ʭ3Mdyծ6Qfѯ.K`uڰ  5Jg|ֱ "A\wӲ/D_yóڳ!6K`{Ǵܴ.C[rε(D_tȶݶ#8Ujʷ,AVs͸.MeĹٹ  5Jezƺ.G^sϻ3HaxԼ6QfĽ  ;Rmžھ !6Qfѿ3J_t2I`u3H_v,Hcx !6Sh} "7Li~$C]x/D_v0EZu1F[p $?Tm %>Yn$?Yt+@[p(E\q.I^}$AVk-B_t0EZw2Qk(=Rm5J_t2Ody )A\q&A[v-B]u0EZu7Lav 4Qf{ +C^s(CXt '>Sh)CZo,G\{ '<Ql4I^{ 9Sm%CZo0E`u7Lf{B\x(BWn.C]r5Xr(=Ti9Uw #=Rg&Ad -Ee)@_t5Ts3Mg)@[p1F]v/I^u#8Ol #>Sj#:Uj/D[u3Od{ $9Pn'BWn0Gbw$>Sm)>Xm)CXr.C]r.H]w3Hbw3Mb| =\w (Ce(E` / I a |      $ C ] |      & @ a {      % @ _       , N i      7Xs7Rs>]x'@^x=Wv@Z~2Lk/Ni-Mg8Su!A[x-Hg2Ji.Mh3Mi/In+@Wr0Ke - H i       !.!G!`!u!!!!!!"#"8"M"l"""""""#&#A#V#q######$$1$F$a$v$$$$$$%-%I%g%%%%%%&$&;&V&k&&&&&&&'$'C'b'}'''''(1(L(j((((())?)W)u))))))*"*7*O*j*****+,+G+\+s++++++,,0,O,o,,,,,-)->-Y-n----- .%.:.Q.o......./#/=/R/l/////0#0?0f000000181R1m11111122,2D2Y2p2222223323I3e3z33333344:4O4f44444445(5?5Z5o55555556;6P6g6|666666 7#787R7g77777778#8=8R8l88888889(9=9W9l999999:;:S:q::::::;8;V;w;;;;;<1<L<h<<<<<< =0=K=d======>8>V>r>>>>>? ?9?Y?y?????@!@<@U@t@@@@@AANXNmNNNNNNNOeXemeeeeeeef,fAf[fpfffffffg,gKggggggggh)hEh_h}hhhhhhi5iJieiiiiiijj4jOjkjjjjjjk!k6kMkhkkkkkll1lHlclxllllllm-mHmfmmmmmmmn(nCnXnonnnnnnno>oZozooooop7pSpnpppppppq&q=qVqkqqqqqqq r$r9rPrlrrrrrrrs's@sUslsssssss t"t9tQtft}ttttttuu2uIuduyuuuuuuvv9vNvevvvvvvvw)w@w]wrwwwwwwxx1xLxaxxxxxxxxyy>yYysyyyyyyzz/zFz`zuzzzzzz{+{K{e{{{{{{{|$|;|Z|o|||||||}/}D}[}v}}}}}}~~-~L~a~x~~~~~~ '<Sq3Mb|ڀ 8Mg|Łځ #8RgԂ1Jjރ9Ut҄-Srʅ $B]wՆ2Qoȇ*Ieو4Oiԉ&@Ulʊ(AVm̋'>YnЌ1F]yՍ "9ShɎ5Javԏ2La{ِ7Lf{đّ"7VrŒ:Uq“/Jlڔ-EayՕ+Ff–ݖ1RnǗ'B\uƘ7]{ә)GhŚߚ-Dg|֛1HezƜݜ $XzН&>^y &B]{ϟ2Mb} נ"7Rg|ǡܡ '<Wl̢,G\wף7Lg|Ǥܤ '<Wl̥,G\wצ7Lg|ǧܧ '<Wl̨,G\wש7Lg|Ǫܪ '<Wl̫,G\w׬7Lg|ǭܭ '<Wl̮,G\wׯ7Lg|ǰܰ '<Wḻ,G\wײ7Lg|dzܳ '<Wl̴,G\w׵7Lg|Ƕܶ '<Wl̷.I_zܸ #>To̹.I_z׺#9Tj̻.I_zܼ #>Toѽ3Idzƾܾ (>Toѿ3Idz (>YoIg%9Mau)=Qey-AUi} 1EYm !5I]q%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u  2 G \ q         . C X m         * ? T i ~        & ; P e z        " 7 L a v        3H]r/DYn+@Uj'<Qf{#8Mbw 4I^s0EZo,AVk(=Rg|$9Ncx  5J_t1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm  * ? T i ~       !&!;!P!e!z!!!!!!! """7"L"a"v""""""" ##3#H#]#r#######$$/$D$Y$n$$$$$$$%%+%@%U%j%%%%%%%%&'&<&Q&f&{&) ) )Y!ZZ788׈ 7׈ ؈׈,,ܽ*,7&و,ܽܽ#7     ) #ڈڈڈ# ڈ# ڈ  ڈ#ڈڈ# ڈڈۈۈ#وڈۈۈ# ۈڈۈ#  ۈڈۈ ۈۈ ڈۈ ,ܽ*' ܽ' ܽ,*,׈׈ ؈,),ވވ ,  ,ވڈڈ׈و׈وܽ*׈׈%8%'݈'݈߈߈,ވوووووو*ܽوو' 8و*ܽ*ܽ׈و׈و ,ވވވވވވވވވވو#׈׈׈*ܽ   ؈و׈׈ވ׈؈׈&&ܽ&8&&&߈&&***ZǨY*pPpMp-׈ *YY +Y YYYYY*ی'))*Ӯ+ܽ)*+)یӮ'ܽ*+ܽ)*Ӯ')یܽیܽܽ*)ܽӮ+)*'ܽی*ܽ**Ӯ*ی)'+)ܽ*Ӯܽ+*ܽ*** Y׈ Y   )Y  )[Y Y*Y Y݈Y YYY 'Y یYY Y YYYYYYYYYYYYYY݈YYYYYY*)یӮ)'ܽ                                             57877557566777766667775776567677777788566666888867777755777777787855666666678777558555555566666666666667787855566666666565557677775556667685676667777865766677777866766676578677751           1     1          1     1              1               ,++,,,,+,+,+                Y*'-'''''ܽی')))))))%!)     $ " " #   !   %    %   #  $ # &  +  '   "   % " #  $  #   "   0   & % &  %  Q % & &  %   $   ' ' " & # & "   ! & % $ $   "  "  $ & # $- $ک!!Y\]ȁY[Ӯٮ^M]^P][]]ր=B>:'*KCAAC);>@@'*KC<AA)'˞AL;:ӎ+MB+Ս;ӮA'A<B<ݒB>I:+;Cӄ?'A=BCB€B߹+C­ABTSȄA=>PK??B:''<=@MB'˥:A'Ѣ߭AݖߝCѸB>?BB@:M'=<:BS%=#إB$+BK!=BB=K<T٧Ŝ睉۠ť٤՝뤉۠٤-˟ Ǔ $$##&'ՁZ'ٻZ'А\'['['['['\'Z'\'ժZ'['Z''Z'\'['Y'['ԗZ'['Y'\'Y"#''Z'Թ\''\'Y'Y'\'Y'Z'\'Y'Z'['Y'\'\'\'Y''[&"3"''\'['Y'Y'Z'\'\'Z'\33#[\ZY\Y\YZԹ\YYY\Y[Z\[ZYА\[Y[[\\ԗZ\ٻZ\Y\[\\\ՁZZZ[[ժZY\[Z[Z        Ǥ睉ťQ٤Ŝ #۠Ţǡ͞㢉ǧ뤉 ɦלǓÉǓ YÉ8ȁYYȁ48   8   ߈  4    U    ,'  [ ݈ ܽ     ǃ   U T  U' Y  ݈ U  UӮ     U  U ߈ U   ׈  ) 8  O U+   U) Uܽ  ߈ K U  8 U U ֈ   Uی ؉ e߉߉߉߉߉߉߉߉߉  333 ȁ3 Y32332 8׈  !       ߈  8 ǃ 4   !  ׉ ډ  ؉ މ ډ ى  ۉ ډ މ ݉ ؉ މ ۉ ؉ ى ܉ ׉  ߉ ى 4 މ ى ׉ ݉ ׉ ى މ ډ ۉ ؉ ؉ ǃ  ؉ ݉ މ ܉ ܉ ډ މ ) ܉ ߉ ܉ ߉ ݉ ډ ܉ ۉ  ׉ ܉ ؉ ݉ ߉ ى ۉ ݉ ܉ ׉ ډ ى ݉ ى ܉ ؉ ) ډ ׉ ى ؉ ۉ މ ߉ ۉ ډ މ މ ܉ ׉ ۉ ډ މ ډ މ ܉ ߉ ى ؉ ؉ ډ ܉ މ މ ؉ ݉ ܉ މ ݉ ݉ ܉ ۉ ؉  ډ ܉ ى ܉ ܉ ى ) މ  ߉  ؉ ډ ׉ ߉ މ  ؉ މ ׉ ؉  4 ډ ۉ ǃ މ ܉ ى ى ډ ׉ ݉ ؉ ى މ ݉ މ ډ ډ ߉ ׉ ۉ ۉ ؉ڈڈ g ۶ڈۈۈ ڈ߈ވYZ߈ YǨY7׈8ܽ ܽܽ ܽ؈؈,U)+!TیS֛*ډ    )%7  $  ߈؉!ۉ%7  ''*׉ML    )%7    &Ȅ۳,:ىO  ߈߈  ߈)߈%߈7߈ ߈ ߈ ߈ ) )&K#މ#ی!O8މ%ܽ ܽ ܽډ)%7   )%7   މ׈ ܽ    )%7   聊 Ɓށԁ5ވ%7   %7  QU؉)%7   քǫPU׈)%7   ޅ܉MKM[ #%7  ' ߈؉݉,# 'M  憊憊  憊)憊%憊7憊 憊 憊 憊ƈ 4 O؉))%7   #߈Q   ރޅ) ؉ƉPք)%7   ȗ*ֈ#&   ԋԋ  ԋ)ԋ%ԋ7ԋ ԋ ԋ ԋ R߈     ׎玊&Ѣ׍ى&߈)؉Y ܽS؉)%Џ   +*4'L)%7       )  撊؉)%  ߈ ߈ډ,%߈7߈ ߈ ߈'˞)ڜ*؉&߈6N 憊8؉%%7% % %     U)[Yމ݉Ӯ؉8ԋ؉ԋMT#'#聊  %ܽ%8׈ 8 8' ߈ %7      )%7    ރUӎ    )ꃊ ꃊ М蜊ޜ߈ %ݿ)    )  靊    )  ڞ꞊&܉S­؉OĆ9)&8O*ۉ%Z  Yֈ\#؉'#)у%у7у у у у)%Z   %ܽܽ)AR#K#߈&̘*  уу  у ޤ8׉KЙ*#߈у؉؉          ¦Ц) Q Q)ܽ飊 ܽ飊'֗#O؉؉3    ˄ ⨊˄߈މ#[Oډ T    ǃO)؉)ܽ)#M'؉ Z   Z૊#ш!)4I ߈݉׈وUֈۉMƈ݉& )ܽ4 Ӯ%؉')߈ ߈ރ؉؉     ߈#уUֈ8%#,߈ҵT' ߈؉)ރ%ރ7ރ ރ ރ ރP% ܽ׭׭݉ݖ؉ уPǓ'8 €މށJ%߈7߈  ߈$憊у݉O##߈؉&' ډU؝ٗ؉)),+憊)%7   赊O)߈Ȕ '׈ډ8׏    ݵ ݵܽ؉؉؉&'؉)% %ZSۉS&߉3&  %%  %Ҹ չҸ㹊T#  ރރ  ރ谊 谊ͺ[)ǃ'߉I ܽ  8  8)8ڙ 8ڙ ߈  ߈߈  ߈ն ն     ȽֽOI'#ރ؉)K+ ܽ  ߈߈  ߈ Ϳ ߉؉ۉ#߹+赊 ԋI#    Ӆ Ӆ憊؉ۉOѻ%%#ܽ މ +؉蜊'#ԋ܉ZI&LމM؉&O  4 ډ ۉ މ ׉ ߉ ۉ ǃ ܉ ډ ى ډ ؉ މ ۉ ډ މ މ މ ܉ ߉ ى ݉ ډ ۉ ى ܉ ډ މ  ݉ ݉ ى ׉ ܉ ׉ )  ׉  ߉ ݉ މ ؉ ܉ ؉ ܉ ؉ ؉  ؉ ى ߈ 憊        у     %     ԋ     ߈  ރ ߈ 8 ׉ ؉ ߉ ݉ ۉ ܉ ׉ ܉ ۉ 4 ؉  ى މ މ ܉ މ ؉ ݉ ) ډ ى ؉ ǃ ߉  ۉ ډ ܉ ݉ ߉ ى ܉ މ ؉ ܉ ډ  ډ ׉  ى ى ׉ މ ۉ ډ  ݉ ؉ މ ډ މ 憊 ܽ , у 8 ,    ߈    ߈    ރ          ԋ  % ߈       ߉ ܉ ډ  ى ܉ މ ى ۉ ܉ ׉ ߈ ݉ ى ׉ ډ ى  ۉ  ݉ މ ߉   ډ ׉ 8 ؉  ܉ މ މ ۉ ݉  ܉ ݉ ډ މ ؉ މ ؉ ܉ މ ډ ǃ ى ؉ ) ߈  ؉ ߉ ۉ 4 ׉  ؉ ؉ ډ ߉  ܉ ۉ ܉  ߉ ؉  ݉  ډ ׉ މ  މ ׉  މ   ׉ ۉ މ   ݉ ؉ ؉ % ǃ   ) ډ  ؉ މ   ܽ ߉ ܉  ܉ ܉ ډ  ډ  ؉ ؉ ډ  ى  ރ މ 4 ߈ ݉ ى  ܉ ى މ ډ , ߈ ݉ ԋ   ׉ ى  ߉ ۉ   у  憊  ۉ ى  ߈ 8 ߈ 8   ރ  ߈    ,       憊  Њ   ԋ   ϊ  ܽ  ,    у     ߈  %          + ރ      ߈         % у  ׈ Ӯ   ֗  8 %   ܽ    ی  ߈  '  ֈ ؝   ݮ8  ߈  憊 8 ֈ , ԋ       )  ,   ܽ    ׈ ֈ ߈ у   % ,  ) %         + ی  憊   ֗  Ӯ '            ֈ     ؝ ߈     ݮ8  ,   8   ރ 8   ߈ ԋ '  8 % ,  Ӯ ֈ ܽ   ی   ݮ8       )   ֗   ֈ    + ׈  ؝      憊     8       ߈ ߈ ߈    ԋ ܽ у  %  ރ   8 ߈        ߈       % ܽ        憊 ,   ރ у    8  ߈  ԋ  ߈   ߈  , %      ߈   ԋ  8       у    憊  ܽ   ރ ߈      ܽ        ԋ 憊 % 8   ߈     у     ߈  ,   ރ  ߈    ߈   ߈  ރ    8     憊    у %   ԋ ܽ    ,  ߈       ܽ ԋ у  ߈    ,   8        ރ  憊 %    ߈        ߈   ,  ԋ 憊  ߈   ܽ 8 у           ߈   ߈         ރ  %      8 ߈    ߈       ԋ ރ      ߈   8   %   憊  у ߈       憊    ߈    ԋ %  ߈  ,    8  ރ    ߈   у       %  ރ     ߈         ԋ 憊    ߈ 8  у ߈  BڈEEEEEEEȁEDD DD@@Aǃ44ǃ4ǃ4ǃǃ4ǃ4((ş(݈(׈(݈((Ć9(([(Y(ĭ(˴(׏(((ֈ(܉(*((ܽ(*('݈((('݈((ܽ((((ї(ᘋ((痋(((((И(И((ї((((ᘋ(痋((((ڈ#  ۈڈۈ܈܈܈)ᘋ)痋)И)Z))))))))ї)وڈ)ڈڈ)Ц))ZYǨY)߈Ϳ)')߈)))ҍԋ)脊),)ԁ)Z)7 )у)ܽ)΀ֽ)Z૊)׈8))ܽ)ޜ)׈؈׈))),))玊)ɚ)؈憊)׈؈؈)꞊)߈))و)8)ރͺ))׈,ވ)׏)ɖ%㹊),)׈8)))ї)ᘋ))))痋)Z)))))И*ڈ)و)و****ҍ**ؤ**΀½*Z***و  ,),ވވ߈觋 ާ ǧ*** ''  ,),ވވ߈ԩʩ ''*ю*Zϫ***ɚ㝊*88 )*ވ ވ*׈ 8 ؈׈ ؈,ވވ ؈ވވ ׈Ǽ8** '')'**脊ܨ**Ԟ*8 )ꮋ*8   ,),ވވ߈鯋ү*؈*ɖϹ*瓊*׈*ʜ***׏**駊)׈)8))Z)Z)ڈڈ)ވވ)ڈڈ)وڈ) )Z*׈8**ރ***ɚ***ɖ%*ҍԋ***߈*߈***΀*߈**Z*脊*؈憊**у***Z*)ZZ)*))ވ,),)؈),)؈)و؈)؈)؈)),)׈),),)׈؈)و),)׈))飊)ˍ)š))ވވ)聊))))酊ޅ)ꃊ))))Џ)–)ᄊք))))觋))))шƈ)ǀ))))))赊)))䙊ڙ)))ԩ)),ԩ)у)))),觋)))憊ƈ)ք)ԋ)߈),))ރ))߈)聊)8ڙ)ܽ),ވ)))赊))ꃊ))ܽ)ޅ)))))߈)))ܽ飊)%)߈)߈Ȕ)Ɋۊ)ރȱ))),ވ߈߈),觋߈)ք)ŋ)))ܽ)%上)ģգ))ܽ))8ڙ))у袊),߈),ԩ߈))憊ƈ)ꃊ)ޅ)߈Ѯ)聊))ୋ)))Ќ⌊))ԋ)Œג)ܽ飊)赊)8)ڈ܈) /  /̋ /))Z)Z)))))痋)))ї)ᘋ'݈'݈ڈ /̋ /̋̋̋$Z$Z؈脊ZҍɖZ׈ɚ΀   ׈ވ  ͺ   Ϳ  ׈׈ ɚ 脊 '  Z૊ ׏ و   玊 ꞊ ҍ    ޜ   Z ɖ㹊 ׈؈  ׈8 8 ZǨY   ؈   Ц ԁ ΀ֽ  ׈"8#8#8 8 8""͋"Z!ZZ#ڈڈ#وڈووو׈ވވڈڈ׈׈و '' ,ާ ,ʩ Мޜ蜊 鯋 8 ؈׈ չ%㹊Ҹ 撊 , ރͺ谊  ꮋ ߈ն    憊 ǧ ''  ׎玊 ߈ ¦Ц ԋ 8 ݵ Z૊ Ӆ ү ߈Ϳ ⨊˄ ڞ꞊ ܽ  Ɓԁށ  ޤу ؈,ވވ Ƚֽ  ߈ 靊 ܽ׭ '' ԋ ꮋ ރͺ谊ຊ Ƚֽ轊 8Ǽټ ޤу ,ʩ  ܽ׭ 靊ƞ  撊Ó ؈׈ά߬ ƁԁށÂՂ Ӆ ү䰋 չ%㹊Ҹ  Z૊ ؈,ވވ   ߈ն '' ߈Ȕڔ ¦Ц⦊ ܽһ今 8Ǽ 鯋ϰ ׎玊 ⨊˄ , 憊  ,ާ ݵӷ巊  ǧƨ ڞ꞊ ߈  ߈Ϳ࿊ Мޜ蜊0H%H8HHH憊HHHHHHH߈HHރHHHܽHHHԋHHHHHHHH߈HH,HHуHH߈HHHރHH߈HуHHHHH%HHH߈HHܽHHHH憊HHHHԋHHH,HHHH8HHH߈HHHܽHHHH憊HH,HуH߈H%HHHHHHHH߈HރHHHHHHHHԋHH8HHH߈HH   ܽ  >߈>߈>>>>?>>>>>%>,>>>>>ԋ>>>>߈>憊>у>>߈>>>>>>>>߈>>>ރ>>>8>>8>>>>>憊>>>>>>ރ>>>߈>>>>>у>>ԋ>߈>>߈>%>>>>>>>>憊>ԋ>>>>>>ރ>>%>>߈>>>߈>>>у>>߈>>>>>>>8>>>߈>>߈>=憊=8=߈====у=ރ===ԋ==߈=====%===߈==========߈=߈=ϊ==Њ=7憊7777у777ԋ7߈777777%7777877777777߈7߈7ރ77߈777߈76866%666,[[,88,88,Z,8#8׋׋,Y Y,%Z,Y Y, ډ ډ',Y Y, ,߈ ,މ* މ,撊Y* 撊Y,݈Yܽ ,ȁ ,Ƚ, Ƚ,Y ,؈ ׈, މY މ,, ,, ,ȁ , , ܉ ܉,Y Y, T T,憊,憊 憊,݈ܽ ݈,Y Y,, , ,Ɓ, Ɓ,ܽ ,ڞ, ڞ, ׈* ,Y Ɩ, , ݈݉ ݉ܽ,Y 蔌ܗ, 8,靊, 靊,؈؈ ؈, ߈ֈ ֈ, O O,撊Y* ㎌Y,[ [,攌,׎, ׎, ۉ ۉӮ,Y Y,靊Ӯ ǘ曌,׈* ׈,Œی Œ, ݉ ݉+, ߉ ߉ی, ݉ ݉),, ,YY YY, ى ى, ߈܉ ߞ܉,ȁ ,׉ ׉,չ%,% չ%,׈ ׈,[[ [Y,׈*,Y ,撊Y*ᎌ,YYŨY,݈ ݈Y, ډ ډ,⨊Y+ ⨊,݉ܽܽ ݉ܽ,Y) , ݈݉ ݉ܽ,ڞY 䕌,ܗ Y,ȁ , ȑ, ݈ܽ ݈,, ԣ, Y,Y Y, ۉ ۉ,Y* Y, ܉܉ ܉,ރ,ރ ރ,ܽ ,, ,ޤу,у ޤу, ׉[ ׉, Y,Y*Y, [, Y,ߞ܉,[ [,߈,߈ ȍ߈,߈ ,݈ܽړ,߈,߈ ߈,¦, ¦,М, М, Y,ȁ ,ى ى, މ׈ މ,ԋ,ԋ ԋ,, , ۉ ۉ,ޤ , މ މ,\ K,[ت,Ɩ Y,݉ܽܽ, ׉ֈ ׉, ,@ ,, , , Y,ƍ,Z, Z,, ,D, މ މ,߈,߈ 蔌߈,8,8 8,⨊, ࢌ,ȁ , ȍ,ֈ, ,, ,曌 ,ȁ ,) 䶌,݈ܽҥ,ȁ ,撊, ㎌, ,׎' ,Y *,,,,݉,މ,ۉ,܉,,,ډ,[,,މ,މ,K,,׉,,݈,ܽ,,,,ډ,߉,׈,ۉ,,,݉,݉,ֈ,,T,܉,ى,,8,Y,,ۉ,O,,,,݈,,ֈ,[,8,܉,,,[,,,ȁ,,Y,[,Y,݈,Y,݈,,, ,Z,ֈ,, P,׈,׉,܉,݉,މ,݉,O,ى,ۉ,މ,T,މ,*,މ,K,݉,߉,,ډ,ډ,,ۉ,׉,Ӯ,݉,,ۉ,P,܉,, , ,8,8,3,ΰ,,T,',,׉,ۉ,݉,݉,߉,ډ,މ,ٗ,׈,K,ډ,,݉,܉,Y,މ,ۉ,,O,,މ,!,ى,',,,,ۉ,*,ډ,݉,˥:,,=,݉,:,߭A,,܉,K,׉,,߉,>,,,މ,ډ,݉,O,T,މ,ۉ,ى,ۉ,މ,,O,,ۉ,),[,߉,˥:,,݉,A,>,,މ,O,މ,,܉,>,މ,׉,݉,O,M,T,ډ,=,,,,݉,,:,),ډ,ۉ,!,,*,, Y,ى,,­,B,ۉ,߭A,,ۉ,,,,),K,Y* ډ  ,)   ),Œی Œ  ی,Y*͌͌,   ,܉ ܉  ᘋ, ׉  ї,[ ؉  ,   ,[ЌЌ,+   +,׈* ܉  ,)   ),   , ى  ,Ɩ Ɩ  ,݈ܽ ډ  ,   ,   ,ֈ މ  ,   ,ԌԌ,ܽ   ܽ,   ,   ,ܗ ܗ  ,Y*   ,݈ܽ ؉  痋,׈*ҌҌ,݈ܽڌڌ,'   ',[ [ [,݈ܽՌՌ,曌Ӯ 曌  Ӯ,Y* Z Z,*   *,ֈ֌֌,ЌЌ,܉όό,   , , / ,, ,,,,,,,,,,,,߈,%,憊,,ԋ,,,,,,у,,߈,,8,,߈,ރ,,,揌,γ,8,۬,߈,у兀,%,,,憊,,,ⶌ,Ř,,,╌,ĸ,߈Ĵ,߈,Ƒ,,ԋ,,,Ʈ,ރ'­////...Y.Y..Y. .Y. /N/J/߭A$R/BR/)T/'S//K/BR/BN/'S/N/'S/)T/քK/օM/K//AR/K/AR/)T/)R/)T/J/I/CR/P/N/T [/ѸBR/N/ٗ ,ٗ/AR/C$R/I/N//K/I/ /J/)ŤT/J/ /­ ­/إBR/N/CR/J/J/AR/'' '/BR/N/BR/˞N/'S/)T/㩌/BR/P/ͯR/€N/AR/K/AR/J/J/N/N/N/J/ݒBR/K/L/K//BR/BR/ߝCR/J/BR/'S/AR/P/AR/C$R/I/'ڔS/N/AM/'' ,'/ݖP/J/L/'' ,'/Ӯ؄N/O/BR/CñR/T/P/K [/J/BR/J/CR/AM/+U.ҵ..K...P.....Ȅ.Ӯ...'/쇊////ȁ7/ ),؉  /YY/ ۈ>>,>  TTT+T%TTTTTTTܽTTTTӮTTTTTYT)TT)T'TYTT*TTTی                     "$$$$$$$!!!!!!!!!!!!!"##           %!!!&&!!!& 1 1"##$   %%   !!!&!!!!!!&!!!!!!11 ""&""##' !!$'%   %&&&&їܽܽ痋1 ""##$$$%$$$$% !""'"##   $!!!$$$   %&&&1 !""#####$%%%%%%&&###у##,#######ܽ###憊####%#ԋ##߈##ރ##8#߈########߈$$#,##߈#####у#####ԋ###憊###߈####ރ###߈##8#%#ܽ##%#8#8#%%%%%%%8䙊%酊%%ᄊ%у%%Џ%߈%%š%%%%–%%ܽ%ރ%߈%ܽ%%%%ǀ%%߈%憊ш%ԋˍ%%ܽ##,$$$ރ$$8$$$%$$߈$$у$$$$$$ԋ$$$$$$憊$$$߈$߈#%##߈##у########8#,##߈##ރ##憊###ԋ########ܽ###߈######ރ##%#߈##ԋ#,####߈#####憊###߈#у########߈##у###%##,#ރ###########߈###߈#ԋ#######憊#߈#߈##߈######ԋ##ރ###߈#у#######߈##憊##8###%#######ܽ##憊##߈###߈###у###ԋ##%###ރ#,##########8#߈###ރ#ܽ####%#߈######ԋ##у##8####憊##߈######߈#####у#8#,###ރ###ԋ###憊#%#########߈###߈#ܽ#߈###߈#&&8&&&&&߈&&&8!!!"%ݮ8%)%%8%+%֗%%%%%,%%ܽ%Ӯ%%ی%%؝%ֈ%%%%%%%׈%%%'%%ֈ%%%%%%%rr؝r8rrrooooo,p8ppp؝pll,ԋ߈%у憊8߈߈ރ%88߈߈у߈%憊ԋރ%8߈߈у憊ԋ8ރ߈%ܽ%߈8,߈؉߈؉؉؉؉ރ؉؉у؉%؉؉؉؉؉؉؉؉ܽ؉؉؉؉؉؉؉؉ԋ؉߈؉؉憊؉؉8؉؉؉ރ؉߈؉؉؉؉؉憊؉߈؉؉߈؉ܽ؉8؉؉ԋ؉؉؉؉؉؉؉%؉؉؉؉؉؉؉؉؉,؉у؉؉؉؉%؉,؉ԋ؉؉؉؉߈؉ܽ؉߈؉؉؉؉у؉ރ؉؉憊؉؉؉؉؉؉؉؉؉߈؉؉؉؉8؉؉؉؉,؉؉؉؉߈؉؉؉ܽ؉؉憊؉؉؉؉ԋ؉؉؉؉ރ؉,؉؉؉؉؉؉؉؉%؉؉߈؉؉8؉у؉؉߈؉؉؉8؉߈؉؉؉؉ܽ؉؉؉؉؉؉؉߈؉؉憊؉؉؉؉؉؉؉у؉ރ؉؉%؉,؉؉؉؉؉؉؉߈؉ԋ؉؉憊؉؉؉؉߈؉؉߈؉؉؉؉%؉؉8؉؉؉؉؉߈؉؉؉ރ؉ܽ؉؉؉؉؉ԋ؉؉у؉؉߈؉؉%؉؉؉؉8؉؉؉؉؉؉؉؉8؉憊؉у؉߈؉؉ܽ؉؉؉؉߈؉؉؉؉؉ރ؉,؉؉؉߈؉؉؉%؉؉؉؉ԋ؉؉؉؉؉؉؉؉؉؉؉؉߈؉%؉؉8؉؉憊؉؉ރ؉؉,؉؉؉؉؉ܽ؉ԋ؉؉؉؉؉؉؉у؉߈؉؉߈؉؉؉߈؉؉؉؉ރ؉憊؉؉߈؉؉؉ܽ؉؉%؉8؉؉у؉߈؉؉ԋ؉؉؉؉؉؉؉؉؉؉,؉,؉؉؉؉؉؉у؉,؉߈؉؉؉؉ܽ؉؉؉؉؉憊؉؉؉؉ԋ؉ރ؉8؉؉%؉؉؉؉؉؉؉߈؉؉߈؉ܽ؉؉؉؉؉%؉؉؉؉ԋ؉؉؉؉؉؉؉؉؉؉߈؉8؉,؉؉؉؉؉߈؉؉؉憊؉؉у؉ރ؉߈؉OOPP14!""&""##'$'%%&&&&&&z}~3%8+ """"###$  $ % $  $ %%&')+-  !"'"###%!!!&!(((و(و(([(ވ(ߌ((و(((ٌ(׈((((ڈ(Ό(׌(Z(Z(Ԍ(ڌ(܌(Ռ(Z(((،((ӌ((݌(͌(׈(׈(׈(Ҍ(ь(((ӌ(֌(͋((Z(Џ(((ό(ވ(،$$$$$$$$8$$߈$ԋ$憊$$$$$$߈$ރ$$%$$у$$߈$$$,0"# %  %&!&!' >""# % %!!!!&!'Ӯ'ܽ''''''''''''''''ی'%')'''''+. #  %%%%%%%%߈%憊%%8%%%ރ%%%%%%ܽ%%%у%߈%%%%%ԋ%%߈%,%%%%Y[݈+,,0"=:=Ս;):ӄ?B˥:Ӯ>;C*Ȅ>++/ !% "$$$$8$$߈$$$$ރ$у$$߈$ԋ$$߈$$$$$$$$%$憊$$$$,=,,ۉ,މ,%,:,,,A,,T,T,;,މ,O,,=,,P,݉,,Y,S,Ȅ,ӄ?,Ս;,*,I,݉,[,,܉,O,,,,׉,,,ۉ,R,߉,K,,ډ,ۉ,߭A,,B,݈,),,­,ݒB,>,),˥:,=,މ,,,,',O,,ى,ډ,,O,M,Ӯ,݉,'(---[---݈-Y--݈-׈-[--ֈ-܉--'-Z- -Y--Y-Z-[----ֈ-[- -8-Y-----ȁ--/0x[Y݈+0&&8&&&߈&&&$$߈$߈$$77߈7߈7߈7[܌YZ͌Yߌӌ֌׌،[Z[،Ռ݌ьZٌόӌԌZΌ>+Z,O,,ى,,ډ,݉,,[,ډ,,,,,މ,ۉ,8,,ֈ,,މ,܉,,,܉,ۉ,݉,݈,,,T,݈,׈,,މ,Y,,׉,,,K,߉,ۉ,,,݉,,ܽ_____00<0B00000إB0 0;0000<00ⵉ0!0000!0A000)00A000%000Ս;0=00=00)0*0?0'0>0C00000>00˞0?0A0B0L0000;00B0T00'0ی0S0)0+00?0Ǔ000׍0>0A0#0­0#00B0߹+0@0ѸB0*0'0=0Ѣ0K0:0I0M0O000>0000A0'0000@000B0A000B0A0'00'0C00ȁ0B0B000B0@0:0)00;0A0300<00'0ܽ000<00000=00B0'0K000#00000P0I0ܝ0>00P0'00>0B0000000'0000 0K0ɜ>0+000030;0'0000000<0<00?0B0000'0%00ӄ?00)00A0+00߭A0)000ш0:000'0000B0ӎ0'00)0=000)0:0'000)000000@0#0B000'00˥:0C000<0@0:000I00€0#0=0ΐ00M0+0@00)0A0Ӯ00K0K0)0C0C00=00ϵ0ߝC0=00?00ݖ0A0A000B000%0+0M0:00S0000ݿ)00S0'0ݒB000=00A0000<0:00)0'0+00!0000'0C0ⵉ000:0?0[0]0M0Ǔ0߹+0*0!000+00'0S0C0+00)0<0 0׍00A00˥:00>0000Ս;00K0B00B0K030%0>0 000#00?0=0)0[0@00I00?00Y00݈0=0Ȅ00<00]00S00A0^000'0)0I0T000S00*0ӄ?00[0K0O0%0ֈ00'0[00P00)00݈0;0=000700000I0B000<000000ӎ00)0Y0#0000+00B0000000+0@000ϵ0€0Y0M0ݿ)0'00'0C000׈00ی0K000!0@00ݒB0;0000000=0>0=0K0:00B0<0'0=000K0#0$0߭A0@0000>00#0L0<0܉0:0M00%0;000!00ΐ0Ӯ00#0=0T0030ܽ0^000000'݈,000668666%66ܽܽ+ی')Ӯe)eȄe߭Ae;ee=ee'ee*eeӄ?eAeӮe=ěeeeeZee˥:e=e­eeeՍ;ee>,,4؉؉؉؉؉؉؉؉؉؉؉؉؉ܽ؉؉ރ؉ԋ؉؉؉؉؉؉߈؉8؉؉؉߈؉у؉憊؉%؉؉߈؉,؉؉؉$$$%$$8$ 10443'010144443144444ی)+Ӯ')*ܽ33333333%%%酊%%ރ%%ܽ%š%%%%у%߈%ܽ%߈%%–%%%憊ш%%߈%%8䙊%%%Џ%ᄊ%%%ܽ%ԋˍ%ǀ%%%%уǢ֢%%%߈%%%%酊%%%%ܽ%8䙊%ᄊ%%߈%ԋˍ⍊%ǀ݀뀊%%%ރ%ܽ%߈%šٚ蚊%憊ш舊%%ћ%%–ؖ斊%ܽ%%Џ%$)-4*ܽ3))))0--0'')))))---((Ć9(ş(((˴(ĭ(׏))))))))))))))))0----4BݒBՍ;:33%%%%ԋҍ%%ɖ%%%%%ރ%%߈%Z%߈%脊%%%у%%΀%%8׈%Z%߈%ɚ%憊؈%%'))))))---... ֗)܉)׈)).43$$$ܽ$$߈$$$8$$$--Y----ֈ--݈---[---׈---݈---܉----ܽ---݈-[-׈-܉----݈-Y-ܽ-ֈ1))). ''1)&&8&&&&߈&&&&&&߈&8&&(1)--%ܽ%Џ%ܽ%ܽ؉%ډ%88%%ۈۈۈ'(-$$$$$$%-------ܽ---Y-݈---݈--[--ֈ-׈--܉-------ܽ-׈-Y-[-݈--܉-݈-ֈ-0,,,Y,݈,,݈,,׈,,,,,,[,,,,,,ܽ,܉,,ֈ,,,  Zڃڃڃ߈ڃڃԋڃڃڃ%ڃ憊ڃуڃڃڃڃڃڃڃڃ8ڃڃڃڃڃ߈ڃ߈ڃڃڃڃރڃڃۃ8ۃԋۃۃ憊ۃۃۃ߈ۃۃ߈ۃۃۃۃ%ۃۃۃۃۃۃۃۃۃۃ߈ۃۃރۃۃуۃ000/ڈڈ܈(//$Z$Z'݈'݈'݈'݈߈߈//Ӯ*+'ی)ܽ)ށ߈߈ն脊˄΀߈؈憊Z׈8ރ谊ҍԋZӅ蜊уɚɖ%Ҹݵ脊΀ɖ%؈憊ҍԋ߈ރZу׈8߈Zɚ߈׈8ҍԋɖ%Z߈߈脊؈憊у߈΀ɚރZ@Ʊ/ ߈Ϳ وǧ 8ү ,ʩ ' 玊   ޜ蜊 ΀ֽ  ރͺ谊 ܽ Ц ׏  脊˄ ' ߈ն  ׈8 ؈׈׈ ɚ 8ꮋ , Z૊ ݵ 憊؈ %ɖ㹊Ҹ ,ާ ԁށ ,׈ވވ  Z ܽ׭ ߈ у  ꞊ 8׈ 鯋  ԋҍ Ӆ ؈׈׈ YZǨY ܽ ׈8 ܽ ׏ ؈׈؈ ̋/ ܽ ؈׈؈ ׈8 ؈׈׈ ܽ ׏/**$"8 /*"͋""Z,cratecrate crate cratecratencratealloc cratecrate($cratecrate crate crate crate cratecratecratecrate cratecrate($cratecrate core cratecratecrate |crate crate cratecrate crate)$cratecore crate crate cratecrate cratecrate($cratecratecrate crate crate cratecrate crate crate crate crate$crateZcrate($cratecratecrate crate cratecrateycratecratecrate crate crate)$cratestd cratecratecrate cratecratealloc($cratecratecrate crate crate crate crate crate crate crate crate crate crate$crateWcrate crate crate crate cratecrate crate crate crate cratecratevcrate cratecrate crate cratecratecrate crate crate crate$crate)$cratestd crate crate crate cratecrate ecrate crate($crate crate crate cratecrate crate$crate)$cratecrate crate core stdcratecratecrate crate crate core"$crate cratecrate crate crate crate crate)$crate cratestd crate crate crate crate crate crate crate cratecrate bcratecrate cratecrate($cratecrate core crate cratecratecrate crate#$crate$cratecratecrate crate crateQcratecrate crate crate($cratecrate cratecrate crate crate crate crate)$crate cratestd$crate cratecrate _cratecrate crate crate($cratecrate crate crate cratecratecrate ~crate crate$crate cratecratecrate"cratecrate crate)$cratecratecratecrate crate crate crate crate crate cratecore crate crate($crate crate crate crate crate crate crate\crate crate($crate cratealloc crate cratecratecratecrate crate cratecrate cratecrate crate crate crate)$cratestd crate crate crate crate jcratecrate crate($cratecrate crate crate crate cratecrate crate$crate)$crate crate crate$crate($cratecrate core crate cratecratecratecrate crate crate crate crate crate)$cratecrate crate cratecrate crate cratecrategcrate cratecrate($crate cratecrate crate crate crate$crate'$cratecratecrate $crate cratecrate corecratecrate crate cratecrate$crate cratecrate crate crate$crate cratecrate crate cratecrate)$crate crate cratedcrate($crate crate crate crate crate crate crate$crate crate cratecrate crate crate cratecratecrate crate cratecrate Scrate crate std cratecrate crate crate crate cratecrate rcrate"$crate crate($cratecrate crate crate crate)$cratecratecrate crate crate crateacratecrate crate($cratecratestd crate cratecrate#$crate crate$crate crate cratecrate crate crate crate)$crate crate crate crate crate crate ocrate crate crate($cratecrate crate crate crate)$crate cratecrate crate crate crate crate^cratecrate cratecrate($cratecratecrate cratecratecrate!cratecrate crate)$cratecrate cratecrate crate cratelcratealloc crate($crate crate#$crate crate crate crate crate crate$crate cratecratecratecrate crate($crate crate std crate cratecratecrate zcrate crate cratecrate crate cratecrate)$crate cratestd crate crate cratecrate crate crate crate&$crateicratealloc crate($cratecratecrate crate cratecrate crate crate$crate)$crate Xcrate crate cratecratecratealloc crate crate wcrate crate crate crate)$cratecrate crate crate cratecratecrate crate crate($crate cratecrate cratecrate crate crate$cratecrate crate crateUcrate crate crate cratecratecrate crate cratecratetcrate crate"$cratecrate crate crate crate crate)$crate cratecrate crate crate crate crate cratecrate crate($crate cratecrate crate cratecrate crate crate crate$crate cratecratecrate crate)$crateRcratecrate cratecratecratecrate crate crate crate crate crateqcratecrate crate crate($crate"$crate core cratecratecrate crate cratecrate crate cratecrate($cratecrate crate crate cratecratecrate#$cratecrate$crate cratecrate crate crate crate)$crate crate crate crateast_enum_from_struct 6  strip_attrs_pubpՐ& strip_attrs_pubՐ& define_punctuation_structs`Qtstrip_attrs_pub]Ր& &(ast_enum_from_struct6 ԟ, try_trait)strip_attrs_pubՐ& ast_struct Պ strip_attrs_pubՐ& define_punctuation_structs`Qt strip_attrs_pubՐ&ast_enum_from_struct6  ast_enum_from_struct6 &j(lit_extra_traitsϘ؏ strip_attrs_pubՐ&impl_low_level_token4hpanic'ӥlibstd_sys_internals ast_enum_from_struct 6  impl_deref_if_len_is_1$ys ast_enum_from_struct 6 define_punctuation_structs`Qtast_enum_from_struct 6  export_token_macro. ,  try_trait)generate_to_tokens u   strip_attrs_pubgՐ& strip_attrs_pubՐ& generate_to_tokens  strip_attrs_pubՐ&strip_attrs_pubTՐ& strip_attrs_pubՐ&define_punctuation_structs`Qt ast_enum_from_struct 6  strip_attrs_pubՐ&&(ast_enum_from_struct 6  strip_attrs_pubՐ&ast_enum_from_struct 6  strip_attrs_pubՐ& ident_from_tokenast_enum_from_struct6 strip_attrs_pubwՐ& format-/I #define_punctuation_structs`Qt  ast_struct Պ strip_attrs_pub $ strip_attrs_pubՐ& strip_attrs_pubՐ&strip_attrs_pubՐ&ast_enum_from_struct 6  &( ast_struct Պ  impl_token.g strip_attrs_pub$ ast_enum_from_struct 6  impl_deref_if_len_is_1$qs ast_enum_from_struct 6   ast_struct Պ assert&j!strip_attrs_pubՐ&impl_deref_if_len_is_1 $s define_punctuation_structs`Qt , try_trait)strip_attrs_pubfՐ&  &ast_enum_from_struct 6  ast_enum_from_struct6  define_punctuation_structs`Qtast_enum_from_struct6 strip_attrs_pubՐ&& try_trait( ast_struct Պ vec-8 box_syntaxstrip_attrs_pubՐ& ast_enum_from_struct6 ast_enum_from_struct 6  strip_attrs_pubvՐ& ident_from_tokenimpl_by_parsing_expr  define_punctuation_structs`Qt .)strip_attrs_pubjՐ& ast_enum_of_structs_implȘA  ast_enum_from_struct 6  strip_attrs_pubՐ& impl_token&gimpl_deref_if_len_is_1$is ast_enum_from_struct 6  ast_enum_from_struct 6  strip_attrs_pubՐ& define_punctuation_structs`Qtstrip_attrs_pub $ strip_attrs_pubՐ& strip_attrs_pubՐ& crate::custom_keyword$(,& try_trait)ast_enum_from_struct 6   ast_struct Պ ast_enum_from_struct6 define_punctuation_structs`Qt ast_enum_from_struct 6  strip_attrs_pubnՐ& strip_attrs_pubՐ&& try_trait(ast_enum_of_structs_impl/ȘA  ast_enum_from_struct6 strip_attrs_pubՐ&formatIast_enum_from_struct 6  ast_enum_from_struct6 ast_enum_from_struct 6 define_punctuation_structs`Qt crate::custom_keyword ( $crate::panicӥlibstd_sys_internals strip_attrs_pubՐ&concat ( strip_attrs_pubՐ& impl_token.gimpl_deref_if_len_is_1$as ast_enum_from_struct 6  ,"generate_to_tokens   generics_wrapper_impls# strip_attrs_pubՐ&impl_deref_if_len_is_1 $s strip_attrs_pubyՐ& ast_enum_from_struct6  define_punctuation_structs`Qt ,)ast_enum_from_struct6 %$crate::impl_clone_for_custom_keyword(/ (strip_attrs_pub Ր& ast_enum_from_struct 6  strip_attrs_pubmՐ& strip_attrs_pub$ast_enum_from_struct6  ast_enum_from_struct6 strip_attrs_pubZՐ& lit_extra_traitsܙ؏ define_punctuation_structs`Qt&(ast_enum_from_struct 6  ast_enum_from_struct6 ast_enum_from_struct 6 strip_attrs_pubՐ& strip_attrs_pub;Ր&  ast_struct Պ strip_attrs_pubՐ& strip_attrs_pubՐ& define_punctuation_structs`Qt strip_attrs_pub@Ր& - )strip_attrs_pubՐ&strip_attrs_pubՐ&  impl_token!gast_enum_from_struct6  ast_enum_from_struct 6   ast_struct Պ ast_enum_of_structs_implȘA  "define_punctuation_structs`Qtstrip_attrs_pub9Ր& '(strip_attrs_pubՐ& Token *'!impl_deref_if_len_is_1 $s ast_enum_from_struct6 strip_attrs_pub $ ast_enum_from_struct 6  define_punctuation_structs`Qt strip_attrs_publՐ& strip_attrs_pubՐ& ast_enum_from_struct6  ast_enum_from_struct6 strip_attrs_pubYՐ& lit_extra_traits؏ strip_attrs_pubՐ&define_keywordsrstrip_attrs_pubՐ& ast_enum_from_struct 6  ast_enum_from_struct6  ast_enum_from_struct 6 &(define_punctuation_structs`Qtstrip_attrs_pubՐ&  try_trait#panic0ӥlibstd_sys_internals ' try_traitpanic$ӥlibstd_sys_internals  strip_attrs_pubՐ&generate_to_tokens   , try_trait) ast_struct Պ strip_attrs_pubՐ& ast_struct Պ )$crate::impl_to_tokens_for_custom_keyword(3( strip_attrs_pubՐ& ast_enum_from_struct 6  impl_deref_if_len_is_1$Rs strip_attrs_pubՐ&&(generate_to_tokens   impl_deref_if_len_is_1 $s strip_attrs_pubՐ&  ast_struct Պ ast_enum_from_struct6 strip_attrs_pub$ define_punctuation_structs`Qt strip_attrs_pub$strip_attrs_pubՐ& strip_attrs_pub $ strip_attrs_pubkՐ& strip_attrs_pubՐ&&(strip_attrs_pub-Ր& ast_enum_from_struct6 strip_attrs_pubՐ& strip_attrs_pubXՐ& impl_low_level_token1h generate_to_tokens   ast_enum_from_struct 6  strip_attrs_pubsՐ& ast_enum_from_struct 6 panic&;ӥlibstd_sys_internals impl_deref_if_len_is_1$vs generate_to_tokens  ast_enum_from_struct 6  strip_attrs_pub_Ր& strip_attrs_pub$strip_attrs_pubՐ& impl_deref_if_len_is_1 $s strip_attrs_pub|Ր& generate_to_tokens  , try_trait)define_punctuation_structs`Qt strip_attrs_pubՐ&strip_attrs_pub$ Token *'ast_enum_from_struct 6  strip_attrs_puboՐ& ast_enum_from_struct6  &(define_punctuation_structs`Qtstrip_attrs_pub\Ր& ast_enum_from_struct 6  strip_attrs_pubՐ&ident_from_tokenToken *'ast_enum_from_struct6 strip_attrs_pub$ strip_attrs_pub=Ր& ast_enum_of_structs_implȘA  generate_to_tokens   strip_attrs_pubՐ& define_punctuation_structs`Qt $crate::format_argsʧ$̌ fmt_internalsast_enum_from_struct 6   ast_struct Պ %( impl_token'g impl_deref_if_len_is_1$ns ast_enum_from_struct 6  assert&!ast_enum_from_struct 6  define_punctuation_structs`Qtstrip_attrs_pubՐ&impl_deref_if_len_is_1 $s strip_attrs_pub{$ ,  try_trait)strip_attrs_pubՐ&strip_attrs_pub$ concat( strip_attrs_pubSՐ& strip_attrs_pub$ strip_attrs_pubՐ&define_punctuation_structs`Qt ast_enum_from_struct 6   ast_struct Պ ast_enum_from_struct6  &(ast_enum_from_struct6 strip_attrs_pubՐ& panic"ӥlibstd_sys_internals ast_enum_from_struct6 strip_attrs_pubՐ& define_punctuation_structs`Qt strip_attrs_pubՐ&ast_enum_from_struct6  strip_attrs_pubՐ&strip_attrs_pub$  5 $crate::panicӥlibstd_sys_internals strip_attrs_pub$ast_enum_from_struct 6   impl_token)gstrip_attrs_pub$ast_enum_from_struct 6  ast_enum_of_structs_impl:ȘA   ast_struct Պ  try_traitast_enum_from_struct6  ,?)strip_attrs_pubՐ&ast_enum_from_struct 6  strip_attrs_pubՐ& ast_enum_from_struct6 define_punctuation_structs`Qt generate_to_tokens    strip_attrs_pubՐ&strip_attrs_pubՐ& ast_enum_from_struct 6   ast_struct Պ strip_attrs_pubՐ& define_punctuation_structs`Qt& try_trait(strip_attrs_pubՐ& ast_struct Պ ast_enum_from_struct6 assert$!impl_deref_if_len_is_1 $s ast_enum_from_struct 6  strip_attrs_pub $ ast_enum_from_struct 6 )()ast_enum_from_struct6 strip_attrs_pub$strip_attrs_pubuՐ& strip_attrs_pubaՐ& strip_attrs_pubՐ&generate_to_tokens  define_punctuation_structs`Qt strip_attrs_pubiՐ& strip_attrs_pub $ strip_attrs_pubVՐ&  stringify (f ast_enum_from_struct6  impl_deref_if_len_is_1$^s  "ast_enum_from_struct 6   impl_token%gstrip_attrs_pubqՐ& define_punctuation_structs`Qtgenerics_wrapper_impls& strip_attrs_pub^Ր& strip_attrs_pubՐ&strip_attrs_pubՐ& ast_enum_from_struct6  , try_trait)strip_attrs_pubՐ&Token *')$crate::impl_to_tokens_for_custom_keyword(3 (ast_enum_from_struct6 strip_attrs_pubՐ& strip_attrs_pubՐ&define_punctuation_structs`Qt ast_enum_from_struct 6  ast_enum_of_structs_implȘA ؠ& try_trait(ast_enum_from_struct6  ast_struct Պ lit_extra_traits؏ ast_enum_from_struct6   rustfmt::skipimpl_deref_if_len_is_1 $s #ast_enum_from_struct 6  $ast_enum_from_struct 6 define_punctuation_structs`Qt ast_enum_from_struct6  strip_attrs_pub$define_delimitersvast_enum_from_struct6 generate_to_tokens u   strip_attrs_pubՐ& strip_attrs_pub$ strip_attrs_pubhՐ& strip_attrs_pub $ strip_attrs_pubUՐ& strip_attrs_pubՐ&ast_enum_from_struct6  impl_deref_if_len_is_1$Ws ast_enum_from_struct 6  $crate::__export::format_argsI(̌ fmt_internals&(generate_to_tokens    strip_attrs_pubՐ&generate_to_tokens    strip_attrs_pubxՐ& ٠, try_trait)define_punctuation_structs`Qt ast_enum_of_structs_impl>ȘA  generate_to_tokens    &(ast_enum_from_struct6 ast_enum_from_struct6  lit_extra_traits؏ define_punctuation_structsGtast_enum_from_struct 6   ast_struct Պ ast_enum_from_struct 6 strip_attrs_pubՐ& strip_attrs_pubՐ& ast_struct Պ $crate::__export::format_argsI(̌ fmt_internals , try_trait)strip_attrs_pub?Ր& define_punctuation_structs`Qt strip_attrs_pubՐ&%$crate::impl_parse_for_custom_keyword(/(  ast_enum_from_struct 6   ast_struct Պ &(ast_enum_from_struct 6  define_punctuation_structs`Qtvec-8 box_syntaxident_from_tokenimpl_deref_if_len_is_1 $s ast_enum_from_struct6 ast_enum_of_structs_implȘA  strip_attrs_pubՐ&strip_attrs_pubcՐ& ast_enum_of_structs_implȘA define_punctuation_structs`Qt ast_enum_of_structs_implRȘA  &(generate_to_tokens    strip_attrs_pubՐ&ast_enum_from_struct6 assert&!impl_low_level_token7h ast_enum_of_structs_implȘA ast_enum_from_struct 6  ast_enum_from_struct 6 strip_attrs_pubՐ& strip_attrs_pubՐ& define_punctuation_structs`Qtimpl_deref_if_len_is_1$s, try_trait)strip_attrs_pub$ ast_struct Պ strip_attrs_pub+$ ast_enum_of_structs_implȘA  define_punctuation_structs`Qt strip_attrs_pubՐ&ast_enum_from_struct 6  strip_attrs_pubՐ& ast_enum_from_struct6  ɰ& try_trait(ast_enum_from_struct 6  ident_from_tokenӋvec-8 box_syntaxast_enum_from_struct6 ast_enum_from_struct 6  impl_deref_if_len_is_1 $s define_punctuation_structs`Qt strip_attrs_pubՐ&strip_attrs_pubbՐ& Astrip_attrs_pubՐ& .)strip_attrs_pubՐ& $crate::panicӥlibstd_sys_internals ast_enum_from_struct 6  (strip_attrs_pub$ %(strip_attrs_pubWՐ& strip_attrs_pubՐ&strip_attrs_pubՐ&assert%! impl_token/g ast_enum_from_struct 6  strip_attrs_pubrՐ& ast_enum_from_struct 6  strip_attrs_pubՐ& define_punctuation_structs`Qt , try_trait)strip_attrs_pubՐ&ast_enum_from_struct 6   stringify( fstrip_attrs_pubՐ&strip_attrs_pubՐ&ast_enum_from_struct 6  define_punctuation_structs`Qtast_enum_from_struct6 strip_attrs_pub[Ր& & try_trait(strip_attrs_pub $ impl_deref_if_len_is_1 $s ast_enum_from_struct6  ast_struct Պ "='ast_enum_from_struct 6  strip_attrs_pub<Ր&  ast_struct Պ ast_enum_from_struct 6 ast_enum_from_struct6  ( strip_attrs_pubՐ&define_punctuation_structs`Qt strip_attrs_pubAՐ&  ast_struct Պ ast_enum_of_structs_implȘA  ast_struct Պ ast_enum_from_struct 6   impl_token$gimpl_deref_if_len_is_1$ds strip_attrs_pubՐ&   ast_struct Պ ast_enum_from_struct 6  strip_attrs_pubՐ& define_punctuation_structs`Qt ast_struct Պ  try_traitast_enum_from_struct6  ,?)strip_attrs_pubeՐ& generate_to_tokens    ast_enum_from_struct6 strip_attrs_pubՐ&define_punctuation_structs`Qt ast_enum_from_struct 6  ast_enum_from_struct6  ast_enum_from_struct6 & try_trait(ast_enum_of_structs_implȘA  formatIstrip_attrs_pubՐ& ast_enum_from_struct6 ast_enum_from_struct 6  !ast_enum_from_struct 6 define_punctuation_structs`Qt strip_attrs_pubՐ&$crate::format_argsʧ$̌ fmt_internals strip_attrs_pubՐ& $crate::panicӥlibstd_sys_internals  ast_struct Պ ast_enum_of_structs_implȘA  strip_attrs_pubՐ& ast_struct Պ  impl_tokengast_enum_from_struct6  strip_attrs_pubՐ&"strip_attrs_pub $ strip_attrs_pub$ strip_attrs_pubՐ& '(generics_wrapper_impls& ast_enum_from_struct 6  Token *'"strip_attrs_pub$  ast_struct Պ define_punctuation_structs`Qt strip_attrs_pubՐ&strip_attrs_pubdՐ& , try_trait)ast_enum_from_struct 6  %$crate::impl_parse_for_custom_keyword(/ ( strip_attrs_pub$ strip_attrs_pubՐ&strip_attrs_pubՐ&ast_enum_from_struct6  strip_attrs_pub.Ր& ast_enum_from_struct6 ˠ& try_trait(lit_extra_traits؏ define_punctuation uast_enum_from_struct6   try_trait#strip_attrs_pubtՐ&  try_traitdefine_punctuation_structs`Qtast_enum_from_struct 6  ast_enum_from_struct 6 strip_attrs_pub`Ր& panic0ӥlibstd_sys_internals strip_attrs_pubՐ&ast_enum_of_structs_implȘA  $crate::__export::format_argsI(̌ fmt_internals strip_attrs_pub~Ր& define_punctuation_structs`Qt strip_attrs_pubՐ&, try_trait)ast_enum_of_structs_impl,ȘA  strip_attrs_pubՐ&%$crate::impl_clone_for_custom_keyword(/( bcrate cratecrate cratecrateWcratecratecratercratecrate;crate crate cratelcratecratecrateYcrate cratestdcratecratecrate[cratecratecrate crate crate crate crate/crate crate cratecrate+crate cratekcratecratecratecrateXcrate cratecrateecrate cratescratestd cratecratecrate_crate cratecrate<crate crate cratecratecratecrate crate cratecrate cratecrateocrate\crate cratecratecratecratecratecrate crate crate?cratedcratestd crate,cratecrate crate cratetcrateScratecrate=crate`crate cratecratecratecrate cratecratecratecratecratecrate cratepcrate]crate crate crate cratecrate crate crate cratecrate crate crate crate@cratecrate cratecrate cratecrate|crate crate crategcratecrateucrateTcrate>crateacratecrate cratecrateicratewcratecratecrateVcratecrate crate crateqcratecratecrate^crate cratecrate cratecrate crate cratecrate crate crate{cratecratefcratecratecratecrate crateAcratecratecratecrate9crate cratehcratecratevcrateUcratecratecratecratecratejcratecratecratexcrate cratecratecratecrateRcratecrate cratecratecratecratecratencrate crate-crate crate cratecratecratecrate cratecratecrate:cratecrate crateccratecratecratecratecratecrate crateycratecratecrate cratecratecratecratemcratecrateZcratestdcratecratecratecratecrate~crate crate.crate ast_structՊ ast_structՊ ast_structՊ ast_structՊn ast_structՊ ast_structՊgenerate_to_tokens    generate_to_tokens    ast_enum_of_structsÔ  ast_structՊVast_enum4   ast_structՊast_enum>4   ast_structՊast_enum_of_structsÔ > ast_structՊu ast_structՊgenerate_to_tokens     ast_structՊ ast_structՊ] ast_struct!Պ ast_struct֥ Պ| ast_structՊ ast_structՊ- ast_structՊdast_enum/4   ast_structӄ#Պast_enum  ast_struct!Պast_enum_of_structsÔ ast_enum  ast_enum_of_structsÔ  ast_structՊk ast_structՊ ast_structՊpanic&ӥlibstd_sys_internals  ast_struct!Պ ast_structՊS ast_structՊast_enum4   ast_structלnՊ ast_structՊast_enum4  ast_structՊ; ast_structՊgenerate_to_tokens    ast_structՊ ast_structՊrast_enumR4   ast_structՊ ast_structțՊZgenerate_to_tokens     ast_structՊast_enum4  ast_struct Պy ast_structՊ ast_structՊaast_enum"  ast_structՊ ast_struct!Պ ast_struct Պast_enum4   ast_structՊh ast_structՊ ast_struct!Պ ast_structՊ ast_structrՊast_enum  ast_structՊast_enum4   ast_structՊo ast_structՊ ast_structՊ ast_struct*Պ panic&ӥlibstd_sys_internals  ast_structՊ ast_structՊW ast_structՊ ast_structՊ? ast_structՊv ast_structՊast_enum_of_structsÔ  ast_structՊ^ ast_struct"Պast_enum_of_structsÔ  ast_struct!Պ ast_structՊ ast_structՊ. ast_structՊegenerate_to_tokens    ast_struct#Պ ast_structՊ ast_struct!Պ ast_structՊ ast_structՊgenerate_to_tokens    ast_structՊl ast_structՊast_enum_of_structsÔ  ast_structՊ ast_structՊTast_enum4  ast_structwՊ ast_structՊ ast_structՊ ast_structՊ< ast_structՊs ast_structՊ ast_structՊ ast_structՊ[generate_to_tokens   generate_to_tokens    ast_enum_of_structs Ô  ast_structՊgenerate_to_tokens  ast_enum_of_structsÔ ast_enum + ast_structضՊbgenerate_to_tokens   ast_struct"Պast_enum4  include  ast_structՊ ast_struct!Պ ast_struct Պ ast_structՊi ast_structՊpanic%ӥlibstd_sys_internals ast_enum4   ast_structɹ!Պast_enum_of_structsÔ  ast_structvՊast_enum4   ast_structՊ ast_structՊ9generate_to_tokens    ast_structՊp ast_structҿՊ ast_structՊ ast_structՊ ast_structՊXast_enum4   ast_structNjՊ ast_structՊ@ ast_structՊw ast_structՊ ast_structՊ ast_structՊ_ ast_struct"Պ ast_structՊ ast_struct!Պ ast_struct Պ~ast_enum_of_structsÔ /ast_enum4   ast_structՊfast_enum_of_structsÔ  ast_struct#Պ ast_structð!Պ ast_structՊast_enum,4   ast_structՊast_enum  ast_structՊm ast_structՊ ast_structՊpanic&jӥlibstd_sys_internals  ast_structՊ ast_structՊU ast_struct՟Պ ast_structՊ ast_structՊ ast_structՊ= ast_structՊtast_enum:4   ast_structՊ ast_structՊast_enum_of_structsÔ  ast_structšՊ\ ast_struct!Պ ast_structՊgenerate_to_tokens    ast_enumܗ  { ast_structՊast_enum_of_structsÔ , ast_structՊc ast_structɁ#Պgenerate_to_tokens    ast_enum generate_to_tokens   ast_structՊ ast_struct!Պast_enum  ast_structՊ ast_struct Պgenerate_to_tokens   ast_structՊj ast_structՊ ast_structՊ ast_struct!Պast_enum_of_structs=Ô R ast_structjՊ ast_structՊast_enum_of_structsÔ : ast_structՊq ast_structՊ ast_structՊ ast_structՊYast_enum_of_structs_implȘA   ast_structՊ ast_structՊA ast_structՊxast_enum ast_enum ast_enum4  ast_structѯՊ`ast_enum"  ast_structՊ ast_structĝ!Պast_enum  generate_to_tokens     ast_structՊg ast_structՊ ast_struct-TՊ ast_structՊ ast_struct!Պast_enum_of_structsÔ  crate crate crate crate crate cratecrate crate cratecrate cratecrate crate crate crate cratecrate crateast_enum_of_structsÔ generate_to_tokens    generate_to_tokens   generate_to_tokens   generate_to_tokens    generate_to_tokens    generate_to_tokens    generate_to_tokens  generate_to_tokens    generate_to_tokens   generate_to_tokens  generate_to_tokens   generate_to_tokens    generate_to_tokens  generate_to_tokens    generate_to_tokens    generate_to_tokens   generate_to_tokens  crate crate crate crate crate cratecrate crate cratecrate crate cratecrate crategenerate_to_tokens    generate_to_tokens   generate_to_tokens   generate_to_tokens    generate_to_tokens   generate_to_tokens    generate_to_tokens  generate_to_tokens  generate_to_tokens    generate_to_tokens    generate_to_tokens  generate_to_tokens    generate_to_tokens  generate_to_tokens   crate cratecrate crate cratecratecrate crate crate crategenerate_to_tokens  generate_to_tokens    generate_to_tokens  generate_to_tokens    generate_to_tokens  generate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens  cratecrate crate cratecratecrate crate crate crategenerate_to_tokens    generate_to_tokens  generate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens  generate_to_tokens  generate_to_tokens  crate crate cratecratecrate crate crate crategenerate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens   generate_to_tokens  generate_to_tokens  generate_to_tokens  generate_to_tokens    cratecrate crate cratecrategenerate_to_tokens    generate_to_tokens  generate_to_tokens  generate_to_tokens   generate_to_tokens   crate cratecratecratecrategenerate_to_tokens  generate_to_tokens   generate_to_tokens  generate_to_tokens    generate_to_tokens  crate cratecratecrategenerate_to_tokens  generate_to_tokens  generate_to_tokens  generate_to_tokens    cratecratecrate crategenerate_to_tokens    generate_to_tokens  generate_to_tokens  generate_to_tokens   cratecratecratecrategenerate_to_tokens  generate_to_tokens  generate_to_tokens    generate_to_tokens  cratecrate cratecrategenerate_to_tokens  generate_to_tokens  generate_to_tokens  generate_to_tokens    cratecratecratecrategenerate_to_tokens  generate_to_tokens    generate_to_tokens  generate_to_tokens  crate cratecratecrategenerate_to_tokens  generate_to_tokens  generate_to_tokens  generate_to_tokens    cratecrate cratecrategenerate_to_tokens    generate_to_tokens  generate_to_tokens  generate_to_tokens   cratecratecratecrategenerate_to_tokens  generate_to_tokens  generate_to_tokens    generate_to_tokens   cratecratecrategenerate_to_tokens  generate_to_tokens    generate_to_tokens  crate crategenerate_to_tokens    generate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    crategenerate_to_tokens    ##<#~###V##w##i#i#####C#S#8####9##x#9#L##Z##@####@#^#i##\#o#G##9########"#"#j#$#######p#F##R##7###h###\##0######N##$##M###8##~###I##H#b### #O##o#l$##6#j$#Pm$p$[###j##T$њ$Zl$#6s$#3u$##j$n$##F#v#$n$#q$#s$j$[#y#v#{#p$$n$|#i$T#k$#m$#o$Cs$##4#0##($F$$r$#m$#o$#q$<#r$i$###"#1######\###2##3#[#m##$#)#E######U##V####m########$׺$$U$$ӹ$$Q$$ϸ$$M$ $˷$$I$$Ƕ$$E$$õ$$$=$9$Q$?$-$E$%$K$+$$$$^$$8$%$k$#m$##o$##r$#1#Bp$S##yi$#T#Jk$#j$T#g#t$:#u#`j$M#?#l$#pn$#p$#w#k$##m$ #o$#9#5i$>##s$x##)m$#sk$##Hq$J#o$b##q$V## p$##Lr$##k$#i$+#t$#0#s$#$#l$j##cn$#A#yp$#2#i$##k$c##m$##o$##q$&#p$#\#ur$##=t$#|#-q$ #jo$*#u$#Pi$Z#t$#i$#k$#t$###$#E###q#w#k$#t$vl$2#####$Ú$s$#n$#ek$;#:q$#u###o$#t$k$a##~##]$l$# s$#q$:#ms$G#l$kp$0##N###$ $k$#r$N#0l$#q$r##Xt$Wk$#$###.#b##8###D#H##)#####$K$G$_$M$;$S$3$!$9$$˩$$z$Ԣ$ҟ$3$t$#{j$#j$ #p$#cq$#o$#n$#Yr$#!t$#i$#@o$#{s$U#l$#p$@#qq$f#9n$n#4p$E#Jt$r$#p$#r$#t$F#6j$m$####c##ߧ$$$$k$j$#m$# o$#wo$T#%u$#j$n$#v##L###ѧ$$Ƣ$ğ$O$k$#m$#Un$#]p$#ft$#j$ym$#{####u#$l$6$b$A$j$w#m$#q$#(s$#s$q#Bi$L#Bm$p$i#>##x#$q$t#Ll$$##?#####Qs$#j$n$2###2####2##ت$$$$$$$q$d#l$E#j$#]i$#/t$#r$#q$#No$?##@#7#S##+#p$###km$u#o$[#n$M#ߚ$o$#}n$###p$#i$p#2o$#n$@#n$j#hl$#mj$#l$#Gn$r$%#_#o###*###b#####d###U$5$[$I$)$A$/$G$$$ç$$$~$$l$#n$#q$#m$(#l$#"r$^#s$#r$#tt$#r$\#q$#n$|#s$#gr$# k$#]m$>#\o$M#q$#s$'#O#l$Op$}##a##9#p##+###r#######Y$c$C$1$W$7$O$=$$$$$P$ $*$$r$#t$T#Rj$#s$#0r$l#p$>#i$#t$#r$#>l$@#+n$#&p$a#ki$b#.k$#j$b#"l$#m$##r$#k$L#Dj$2#t$#_s$ #s$N#i$#$o$#Uq$##6m$#N#k$##*j$##t$# #~##m$1###M##k###,## ##+###B#"#@#####Z###z##i#S######x#P###-##.#p###H##i##[#[#####5#i################X#~##p###`###*#+#h##$`$:$$Y$2$ $eS$C,$$L$$$#E$$Le$@$L$]$ 7$$j0$d $O$)$x$`I$3$$0b$z$v$y$$Y$u$$b|$$$w$$$ܗ$&$p{$$ܐ$v$$s$S$}$,$z$tx$$$$~$$$>y$$$$v$$$z$$$u$$Ћ$ٖ$}$$$w$9$$$3~$'$x$1$C$%$É$'$8z$$ $)$z$e$&$ v$$a$o;$$$$<$,$[~$H$M$x$h$(($_z$$$iu$h$L$$|$a$V$mw$$Ì$$}$$˒$ $ߍ$$~$q$$z$=$^$$$ʊ$ԕ${$$$v$$J$*$^}$$H$Kx$ $$g$$$W${$$$w$#zE$$e$>$$+$$f$@u$A$$$|$8$-$ה$y$$׏$u$ڎ$ę$$$$z$<$O$u$ $!$$|$چ$$w$a$e$S$<$$$x$?$$$~$$$y$f$5$>$$$$G{$$$ʘ$~$$ϓ$y$$ $?S$,$$K${%$!#7?$$r $O$$3I$kM$f$6$'6$U$$($H$X#$7;$Z$ $--$3M$#%$ @$^$$1$P$@$"$\D$b$$4$QT$$'$G$h$$E9$X$ $T+$J$#$=$\$$)/$}N$$ $B$e:$@$Y$ $j,$p$%$#Y?$/7$V$P$I$!$$T$-$W$&$c$G$$g$_$$N$$h$A$Y$2$ $$$}$HK$#$d$fy$v$V$$H$^$5v$fC$.$ϑ$B3$ $&$/$$,$i$A$b$W$w*$Fw$D$-$:4$ $T$w$$Ɯ$$$xG$P$X$7}$J$"#$=$$\$5$$U$a/$&$N$M($:$SH$ $#B$K$a$:$u$Z$3$M $S$,$<$mL$$$Z#E$u$Tf$?$$4^$e7$3$kW$ $]P$&$$$c$"$$$_$$ݸ$$[$$ٷ$$W$$ն$$S$$ѵ$$$$׳$m$$$$î$Y$$$٩$`$$ݣ$$Ǜ$$ 5$.$M$$ $ B$]`$9$kY$R$$S$$$>$$6$2V$H $0)$#;$-[$P&$F$f$8$W$.Q$x$_J$U#c$[$0$$$$A$_$}9$ Y$( $,$Q#$$$5$$/$($H$#$ ;$hZ$S$$%$F$e$$8$W$6 $$!$C$b$$y3$-$'$g$1$%+$#U=$.$ H$A $h$:$$$$$$$v]$7$O$^)$$$$hv$C$p$K $&$$$$*$$\$ac$$$[$n4$F.$$y$_$9$'R$+$r$$`$x$D$$5$O$$$&a$ $S$,$$L$G%$#RF$$f$?$$|^$7$$W$O$ʹ$$$ϱ$$ǯ$$$$$?$Ǩ$$$ $$Ȉ$@'$=$tX$C$=$<5$.$9B$$S$#$)$;$($#g$8$:|$J$"$!=$8$ \$4$Z$$$R$$R$C$G$$$R$#$z$>$B$/$Z$GO$($$&$C$$$|$$ $L$$0${$I$]"$0<$$v[$3$.$Y$v$!$Ğ$$l$$pQ$"$k5$N$EN$'$hB$$`$1:$$$ܤ$$ŝ$T$$$F$;0$I$<$z $$Rg$A$+X$l1$_$$*$$c$<$l$ U$u.$$v$V $pR$#FE$%$hd$?$q$\$Q$r$a$$$T$-$$g!$)#a$Z$"T$M$F$PA$H*$ $Ua$%Z$${$ $$|e$X@$]$ $!$Tb$c$4U$M$$$3Y$U2$K$#$I#E$Y$d$v>$$#]$6$$U$0$$q$Ӳ$$e$$]$$$$$-$X$$$+$$%$]$^$P$0J$b$ 4$.$v$;h$Y_$Q$#9d$($N$#!$`$2$ ~$5L$~&$@$$^$$8$g$V$0$ $)P$*$$I$)"$#$g$ $$i$˰$a$$$U$$ $$%$D$S$$P$9$1$$ d$T\$cU$$h$.`$ ${K$$~6$$$C$%$e-$F$@$X8$=1$&#<$T$'$=$_$ {$O$x$2$[$Q$+$n$C$TZ$>F$$e$?$M$h^$7$$BW$)D$W[$3$[R$1$ $\Q$+$/$_X$$a$:$$$e$?$,$$WW$R$-,$$4K$#$}#D$$d$W>$n$W]$_6$W$`V$/$) ${O$($$H$R!$#QC$\$a$8$#=D$Bc$d<$$$[$3$ $T$-$$M$s'$$YG$$jh$~$ $Q$P/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/lib.rskvS8z/7YԊ{ko OO:KIME6ALQ6QONM.RPLPPN&"  ONPOKK-  !//" 95><  7$OPOOB2I!/ ! OQI/ "HOL  S&Z HOUQ!PO 0 @ KPOMOGO 6 MF;>NMPGK<_ IPSOS9R+O*:N BS R L:<6(  W# P #$ ( H"" &H&"%H0 % (% V    2 2T 2 2\2 Q2\_d`c22Ra!MB ][a_c4 # T2 2-2 M22" +22bc _N2 2JL44 Q39 V7O3 HOPOD  9 F/D:= M% &)'&(  T O1 C'!/>CO2  @0 OQ4 '!!* 5>+2  @C.)@ 6POPLJ* 9 I3G=@ J" *-/.0  N OE G.9*<174>VN$M7  %D<2 ":NNQLJ 9 M-J;? N !8 9,;  S M B*+&.:(';: 49G4: 5$% %%6! 4LM 2Q22Q 'BPQQP@=S!/" 9/;<  5 VQN+GJHOMLK T4P,BTP72!4:*O".JLQDN)7),.-% /3K7&"")#4$4<+5 .  HIKLLMMNOP̪ԸS/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/macros.rsc=g3=ՊՊ. !.&&K A+F ( ./30 :& ,-#@ CJ4 =J(-*<  *, C %6 $32296'+# "3T.( bF( c>( 7=+L <*(%ŇϊӀR/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/group.rscփ$VQY$"""2"IR#IL#MP%2NJ#'GEMBU(,B=B?' OA*%4&#-!7.'?@,  64*6/+/6 P:*%. &#. 7.'8A 7&-$  14*6/+/6 J "0*& '$7 -=+ ! 94*81-/6 𶢾R/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/token.rs<VTvDKJ2>&B#*-$!#NF+?.& "*0 7#C<%.,'-$*&, K.44I=12DKX(79'!!!!9M#%" Q"F"#;L $.6;(+ $*"&/%*'0(/$,$.(+ $(825%".#&,#)= L*) %F03'1,D#,D#*-E#G3-E&-E'7-E"=)A&@B(@#?@(#2:/.(. &$/F ";F !*E L*))%J/3':,D#,D#*-E#G3-E&-E'7-E"=1 "E *5)A&@B(@#??(#28/.(. !=  %F03'1,D#,D#*-E#G3-E&-E'7-E"=-J1C(. (54343:"A:,A. &7! 7+ #'&@#&:#&<#&9#93656746696834557634353456645495447557766457678486662323322232322322344233232332332233233234342232666C"W K )9::47698577:79456687454645677565:6558:;887756878959777575874679787578566:464444744667:8857:657576577< L2L-7('# &F:$5? ?7 O+1"\&17'-13#93F#'#G A3#)/5%B# SF*#&-/-9  5D,I %+'%$5 ,.ضR/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/ident.rs5c (=[Vf08,'D^YPQLGOP.43:-.5 &7$ # .6; !)$&$'<.  Եڐ8Q/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/attr.rs@;1؛˺#E2U *P.O73>3>QKMOLP:9:  +L?CN# :8 4.1 "#*# $; @2*0 9LPMKPAGKMN!00MQFK +*)"&#50 +2+&#?8  N$+!P#N 8/G.0  7)6\K W;?HLK- N 86'EN 8O,1/ +>N 8B$&B >N 8B$26#!%")C ,(Y3X'#% &3A&"*+&)# L D N+U!($(N8U5EB+3NOO"KLN'7KLN! FOK"&,1 2UNO,NM O*(* Q!9( P>9J*.!!/R"1*. %"1-+ %4W@B I)598& I)%98& D=+64:C100)>6F 875/ 8754 8#75: 8 7U32J4C S&D*O! X;B c&! "9"807%;-/ 9!8)9/ 9&8)-( Ս_S/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/bigint.rs#Cno'Mi̺B̺&8&(A%0(4   '%d( 2#2'"  )#(.  މQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/data.rsTCмsV\#p#UN.#!+156U+3NPQ 8LLN'1MLN'3OJ$4H04 JM.?L48 &!/3 1%"48 1+H59 '1++4+-UN,#%' 3",?U+3N./GD#B*LN$+LN(C@LN$'*0487A:/7?&10::9/ 8!78F 8#7?J  $56C/25AE.E#%2.< =)*01 !/0 '"+9 8,*+A,( 9$89. 9&890 98,(/)F' 9"8. 9!80 9&8.9M>1- ۞֎ݜQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/expr.rs}BRYͩg(#&UWQJ  #,$ ("  JPPQQQDN + #1G  QC & 0L?8 O@9N87> -.2('G8-22 M3A QIO HBA0?0?K:$3H2 ?G7"P?A P '( 06+/B0.P +,+ B%5 POOM F3Q*4Q5!#+03Q5"#!:Q5$#)Q5!#(+*Q5!#"'.LN#$Q5!#"#Q5#$CQ5!#(%%4LN#'/)LN#".Q5##.0+"0" .Q5$#.%IQN#"/Q5##"$"=MEQ5!#'KD>Q5#" <=LN#+,Q5#$!;LN#,Q5 #"&;Q5!#GQ5!#('6Q5&#!"0'//QN#'D.;LN#"CQ5!#%!#3Q5%#"-LQ5"#+#;Q5"#*%=LQ5"#'7,%#Q5#'$Q5$#$,Q5!#'02Q5 #$'LN#+Q5"#*,Q5!#"(*Q5!#(% 7T-31=353/11/-3713753593331;39535533/339P-;!  MUN),&&&,)JN //1  CQ5%; M60Q5,#(I/, 9Q5$G   Q5#4)& 8Q5>079e'4 !O@:1"  $IS20886D7 """"%%$"9 875 IJJ MQPQ +&5 - O L & #(0 GMK? JPMP>  #'M" KNQNKPE!SO6 !!"   " $-( %B$&# #"A06@7eK<2+-..+-.1)++:@74K0')*L:.--HCD;6O!#.'/+K;:,')&e=:,')!& "#"A06@7eK0')*K;:,')& ;/ E+)Z  &W4>B$**@VS/".L S"-#7#a)B71CD3. ,@\D5 "SU'#$B. '##427# I**''CB,+-?H90++#%D9K"5Q+62 >#;+"R8;+"<8!2E<%>/3'$'KJ",''3,''A-.(''4 "U5**''CBe?D9K",'',3,''A- O2R$('* 4$),e +I.(b*( A$&%(()) 9-".=1./E/(4)(.)$ 8 7=>(.' C13%.(,*-'.(I+/).4-(2=:'K W1:'2K 6#87#% =7&* 87 =;$ V&E &3I 787#+H*N 87=*N-26 M7,6)-$#'+ 08!7A79I7K9?<&4 87A7;9?<4 87A=@9?'(6& ( :DD,C=)KHQ =G794?>K::7187$21 #'> 87$23 # > 8!72. 8#72#+*,B 872, 8 72* 8"7#+' 87#-_- \?J <3,'-&'3& 39:+.F0#=( " 87#-)' 89+##$-$4646356:5676<0'5>"% 87A7=@9?<&4 87&- 8#7&( 8"7#0' X)#$--CE) W*XVW0DE) 8 7=1X=2+;2'!5 8 7$-3 #5;,$*'!829+$5&  8 7?9E<$5 J")#/,,87A79?<5 X$$--HCC' 8!70-748A39' 87*$%=D0 87#1+3C 86 &@%! Y*N*"\"Q9 88.) 9"88;<. 9!88)9- 9'88-.+.9- 9(81-)- 9.8GH 9"889<.M9K> 9#88)'* 9"88') 9 88( 9!88)-' 9!88)0' ^3*N22-H1 9 88.(-2 988-208 9"88*02><5 9$88*.(-2><5 9!88*/><5 9"880295LN#,;)#3LN# ,5:LN#($)#' E-L.3.'I-L.39.E/N.7+&I/N.76-E.M.70(I.M.7;/Q>>5+ 3'/) ! 7 9*#/) ! 7 2&!/) ! 9 8)%/) ! 9 4( /) ! 9 :+$/) ! 9 ,Q+ S+,Q+ S+.Q+ S(N * <> TO N8WY ( &(@%& )A%K2# )A#)A)1" )A$7$ ''$ON8.5UN $!;!"+*** -' !$' AUN5UN/*2/5 HUN"IUN(?GU+3NPE%ELLN//#$=;ALN# $5ALN!487(060+A4.K)2E):G)2E>+3('3+,*6**$ 8"7=0'2%18%64%' 8!7<*/*-+8#P'868'86 8$7 +*;3>3#>* 8,7)( 87=/A,,0'aM59/@.0;.B6- !W 8$7&D*D>795 8 7%W?C1?D1`RM%H*&J<bD# 8(7'=- 8 7$<-'-$/7O' 8!7-<,855P5#464#46 8)7+( 8$7@@.1<0<9999'868'868/01<0<99T9'868'86 "'!" +9!8(?L%QT./E-A/(H0F614? -8*AL%QT.1E-A1E(>.'A3A@76S<4B@=7=41A -8*AL%QT.1FD45A1E(>.'A3A74B71A *8+;8 9'8.-.- 9$83-)F/ 9"83*)F/3)1CSBELWL2R.*&"C+ 9#89)ELA-12)?N.1&B+ 9+8/E 9#830*0'3C+ 9$8-43 9&8./0+ 9*8-0+ 9$8+-+ ͚ᗠQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/item.rsg@?k[5I#EQ+357A:&P<$N"KMH;;>K$NB@;P +*. B%5 POOM F3Q*3Q5#($!#=Q5#& '66Q5!#*(1#L Q5#8Q5 #'%JQ5#2.& (D' '"GQ5#="+IQ5#( DQ5#$8%7Q5#*-$!#7Q5#* +:Q5#..( ,@'#GQ5 #( !;#JQ5#& !#>Q5#( !<Q5#$/# T=/53-/=15133=13R-;! "*<$ 1$*%-6$ -$*/)9$ /$*% (0  &,2&. &.  &(.0* '/  &*0& NQ+35B?N0D>Q5& ;Q5JQ5",Q5#@Q5'3*Q+355J#>7!@P /35 I%5 POOM M3Q*1Q5##FQ5##*-$#:Q5!#&#3Q5"#+>Q+35E=!AALP 013 G%5 POOM K3Q*AQ5 #($0#9Q5!#$+=Q5#& ,;0#=Q5 #+&Q+359+ 55@P /02 F%5 POOM J3Q*5Q5#2($!#'Q5 #21Q5#2& !#1Q5#+FQ5..." '2( J/(-3E)* QQ5P M8>LI4Q5#>-&2,0AD))87&A&20U65+1HP72439983.86</+4-7*31,+1,1H6-/5L5/!*(#) 628614H.6"98" 87=;87IK%  8 7=2=/04.#J@I1B0.#C@C1B/ 8%7!<%.-26'0CGE!+1, 87<%+/&, 8:0%011;,/68332"3/>I%^92+05-3%87CCC37/9@7654 87C21; #5;8; 87=&B,.,:7!$ 87#/?,, S*&"=R'M;M5!C/6AG/6:3-0<""3$ =,>:9> #2'7.$ <)GI( 87A29/0+#05=C,,29 ' 8$7A+9?((.  8!7&A&20U65.!/;8O7+47*31,2)+1,1O?+&$%456)*45536'/:><==F"%&! 8#7=218 8'7#<%.,'-$, 8%7!<%,', `!+/% G3# 8&7=-N%" 87<%,'A<*$, QL@.%#" 8 7A4A175B%" 87A4=178@%" 87A4?17Z%" H],()- !#!.W'# 87C2CC=/5! #**$ =1#K8K8 05;$$*  8$7aW #P9.9+17"$ "2,D/D/ 04 87&A2G&0U5614H886629+5;,011.4''4V/;<:;:D"%&! 8$7 <-8L67-$/B<2, 8%7A10U=C@12<5/!V 8#7=;/9A0'e,;745:4*8 \4E/# 8$7=-N%  87-G _=\C?71'*A/22307 0c1- "P. **139.7)27)O@$--U2N&.@ 05;$$* P, 87&A&24^C0"U46A4H.FA3=B#!))#) &285X+53))*45533'3>?=>>!G&)*% 8#7<%--8L67-$*&, 8$7A2G1RJPQA+T/0' 9"8..-(-*-923"4I&P)IOT' N#((-$&.)#6,.61+'#* 5%#487<0.4 ""+983, ąڎۘU/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/lifetime.rsoANLzK 8%3NQM ! / 3'S 7 1A 3 !%(- #C")' -$B2%+>487" F 4+9!8C2'*  P/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/lit.rst>eYYb/q #"!?+:--$(/= 828)) $+94!.20%/ $0<JN T> # C@-!'S.@; 81"=N !% $G 0)K:J  8J CQ= AN)H<&/ Q$;;!-(#35%/ %0A!-(#05%/  0=!-(#23%/ "0=!-(#1B"B J"G ( *8LQ 6 ;28# / 9#!-( &&F,: C'1D"? J"E * */ 9#!-("&&H.7 C'2 "!-!!=G(F = G,F =G)F =G)F =G(F =G*F =G)-  8')  8'))  8'))  (@&- )A!1L )A-9 $!< < P".- D4487">6>131#0@>0U46 Q-#6(FR&&4#$$ ?E". 87%".A 8 7%"2F 87%"/? 87%"/D 87%".B 87%"0I 87%"/B "+98/ 9#8/ 9 8/ 9 8/ 98/ 9!8/ 9 8?5  &@-*#!<-C/%E9GA3G=/C(K18'(( M5:'(( !;3308 '/300/17 %-1..-/,2 15966573: M*D #)"<-*! D(C&)((!"?&YE">& &&&'&'%0249%1cT!*- %09@&( ++># HJ"@&2/! D(G&&X""*(!"<&'''('(&03O4-%1cT!! &M@&:3 7&'X'#$8"###$#$"_ 'M ='$$;"UA:""""#"#!_&) '9) G*11G&--C 2 2  ")..(!OGT$ %/P *H+ 4$ ' ");;!L+3/-?"'8;#:M1)2"!% ?.%N *JQIB77" !"&# ,!-0*%$)!, /+8$*#!)")!<%%-4$#" $ <- @E (S. N'__,B,B,C,C,C+B/1DE /܏ͿᒇꃃP/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/mac.rs{GWk A+683UN#'! [UND,<6:?+446 PL< Q =)KJ K!(, $;)610*1*O2M9><2'9: #%  J9<4'JKI] ,1?- 86'L 8O;GVI!2NHN%D04 487:,H& "98)/$2T2T6V ݁S/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/derive.rs؀wqtb/xl$#<S7;#.(: ,?S+37;:D7I7*+6I7&'6@I7(!48!7A400E5;T!)&#4& *5A5;U!)&#0$,"6C5;M!)&#2% ' $D0%+1, D),/50++H'1E<.'9# $( +/6B,$6+A#"'"9$8-((EAC*-;/F212FM&FM&BA9'B3 ؆O/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/op.rsZ?&}"W +UN(+.(',+++*+,))6-9, )UN/3*4:$*+)+*+*+)+)+)+)***********-*-*,*)*)9 8&7 !7(0/0/0/0/0/3/3/20000# 870+/2-2-' "9866666659986655555588888;;:88 98755 Ҥ行羭yQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/stmt.rshϟ6ek3Q5'" 4Q5# -0:Q5#$2#04"K/ R  T2 D#&*"'&+" *?K?6 !AMD &!97""%%.K+*5 %%*E*'^GH)030&'(*(?F)+N() 1:'!2 Y43@<. O"5N#9+&#$" .6-*0+4P<=- 4 #7&.020 =*#6 <3 "+9890 98?<<,,, 98H.(9,(/ Յ³ӑӫO/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/ty.rs/(zag,: #9U+3N/7:P"L*!?HA86"3N!&/<P +,. B%5 POOM F3Q*+LN+#3LN/."'6( 6LN'LLN&;HLN)&LNLN#;LN'D=LN"4LN#0-2LN"(-/LN+JLN!,;+LN'0:UN*"LUN#.5 <1 UN# -UN* N+%4287#( KQ% M%%3>/)+#*2++#*.)./H+1I.+-1# 87=( 87=(.' 8780O-4-/A 8#7+*,EA 8 7(E _!&#'&!&84)DN3#1SG-)6;  87, 872 87@$&!.07-80<0#< 87% 87I`JHM) ;()/1.0),341>:!GGG/!&-- '_%/&!A  87.& 8!7,( "'"+9"8;- 9"8;-3, 9 8/%4J) 9&8.-/) 9#8.-(-9/9:;;0+ 9"8/ 9"89. 9!8B 9(8.+ 9&8/+ 9"89- 9"89- 9"85 9"8( 9#8*1-* 9"836()' 9!83) 981) 瀔dž&P/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/pat.rs 'C甔11u " #OQ+35$Q$ N1)>J NLK"&-!?KH'M%3?3P (*) A%5 POOM E3Q* Q5#$MK?Q5#)-3 J-Q5#%Q5#:Q5#-/FJHGQ5#""Q5#!)Q5#"-;Q5#$GQ5#+/DQ5#'5,#Q5#'/IQ5 #/Q5#$/Q5#),NPQ5#,A87&0*:/1442DM*[,-,--<2402d(2/,%62>5676O269' Q"@Q0,*.\3%67 T) I5,A2&$5& U#  '+, ;99:>-`# !-D #+2 ," %$#"$ * 2,%#3'? T2,?L' Z ;<+$@%$*%  C'(! ="5$60#)'C7(!# G%&@%%  5,,&(*),,-- '2C+ 2$#$& ;:+$@%$*%  >")#/,,:$L>,\+"[ /#`,)/'"# ""+9 835 9!83+/*=,* 9"83)9/QS>3 9'83)( 9 83(0' 9 83B 9!839. 983.( 9%83./( 9 83/ 983) 9!83'!A?' 9!83;. 9!83( 9831* 9!83;//( ݑ슖耈ɣ(Q/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/path.rs'ډ"$"#UUN/;"!) 2 NUN&  !,  FU4.N8826!%)S6  )Y  GUN!O*A ; M6Q UN0.!:!LUN!=UN$;O UN/'1 FPP,0# ! UN!*!487- 8%7AF=E%]L=J%&1%%)4EDDF( 01,214DP0 @,&' ! #30'!- &%7/**+*@5 8470.*63#403#40* 837/?@? 8!7- Pd;56.OD!N- 87'*$ 8 7'-3 `,@(&((& P R  ,2 92Q6"( '?#3BG5#44-B:J M A -0M"M R  C+ S1/MW#<=! %) H . -4M R<4,,8. ["/:O0= " +81K1 Z#6-3;1'6;.J'-8(:03<=0&;($ $$? '"982- 9$8*. 9&8*>1=1 9(*8GCFI89QN!-;J0M- 9781-M7OT.-(61E-256-(N0F1E12;-(V0F1E1/6- 9 8*-' 9#8*0+ 9689/+ a&&,.(E6D6N&;:;326&+ ؉ŵS/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/buffer.rs,~6(vm$ƶ%$NRNP> VcQ (J;FL POP&IFIL.&#+5*4+5)O83; Q'&NMM6#FG;<KGA7 &IU"Z9"I6-O.$R4OPQ?K%P<POQ$AQNO7 M%'0^!#! FI7KPQNB, ! "OG)7QQ4, <6IN6F P:QKYKO:& 9,R  O*<R P*<d P*@P K1B\3%-23#/" D/"; "L1HOIA(<793  -P 4+))1 L;5$J\3%E%/   $)239;5<6ƪ P/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/ext.rs!]l! o<Ƕ%%Ƕ%BR)QP2Q.2N 0 %( J  <()6 68&N:%7L#%LNLFPJ6  9E3 7369 '&2  $)&!#." 򭟈掍hW/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/punctuated.rsJ#L`__~'%Ǵ'%I5AHHJPPQ6% '%!!2!0HP!.&! .! I6%5MQ!C4(<43' ;3$J$**G L/-.G K)&C J#4*C H1+5 Q>O##Q-&g +QJO3!z ./N2!4B I+0PN.MQP%% '1 0O"5 !6 !C LP1Q:N 8@ 5OEQ;N 8". 0"(*"(* O1OQLN 8H =NEN+KN 8*. 0(**(*  8&'% !9# !9*)/5!9% //!96;'$ ) 0<) *< ;E) 5E&c  LC"3# /!+;D0) 7!+;$+#*<P!%$#.$/294'94U7++'% LP!(''1,/294'<4U:+7P!"*/294'54U3+%'% /P!#/4'.4,' 3P!QQ?9HI'$#2> ($+ '/4'2404/!*?4D=+1'% .TJ?P! @P*''2E(*/4'5437/%*B4H@+7SOP! P#8 @ 8 H,8 O<(/" L-/" I(04'  8 N2 /5%.! 2A%#2% "+9- 8- 9' 8,))5 ̘\X/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse_quote.rs%f LEȴ''ȴ'PA;N #"(1 !POFK)4<>,<@ O4RP-A8' MO Q2ONQ-8>('2"3#QD#22 3=55 ;3& 3#'''ݎт^/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse_macro_input.rs v\\.S'''NO > ;QI)!**"7 ( :@ N+F#,#A ( :S H-+(R K2)Q!(F1-U 0D1-U 6Q-8K!#2'3#QJ22)3$"(") ৶ˌT/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/spanned.rsd^P'(r'MQ LOQG KHQ?!/" 9!60  OO? S $XOB KPPLJNQ!;)MIG"3!PL><+оյؤW/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/whitespace.rs!h"B((A(#!$#D)0%.*D)#*-"B$+I$(-,+ $!4'- %K?ϗ٥S/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/export.rslt^>j_(($(#,#+(:  V!+ քߊ[/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/custom_keyword.rsj]]Bt)޹()(Q KM) (O /59OB/0 PMOPGO-/* $#"!  ! 70*$<.+0#:.+' '/ ,XI 5#@ 8<8?-5Q?0>6 /[&U9aA&, !-16POJ "1 -323& %-!43d9C 17E 2P &4(((((ɫꕷ_/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/custom_punctuation.rsu5gf|e)))N' 3O$172J[@/0 /8%2"3"72<6.5?9* Q-62' ->"$B ,eVG 5#= EIEL1$5>^>E /[G^" !1&5$6Pg "5& 1$323& %1&!8$3dO 17E 2P &8&'Y&##############################################R-&ݍ))Ύ))))ݛ򹡬ѮðՊS/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/sealed.rs$ˤ1Ѻ_{J)))ၑQ/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/span.rsX@.g?nh5))C)%'%'%'*' *' *' +,,,'󻛧ޯS/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/thread.rs-QO"d )))))#MI*M0#/ &6 *C94 Ω֌ǖV/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/lookahead.rsĮzJ{̥Jp)*)!&$LFLO2>;GS*P@HA%"70'61:67' -8/# 8 L-P'#@(!%4;GM:"5"'FGF@\@3D@ ;K*M;@'D&̛͉们R/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/parse.rsƜrHYphJ*, *JOOGK&IMQJQNKIF6!N*%&#.70005.'  7.'8G  9 ( :8"PMNF#%++O8*OIQL=$&Q&'-<M*IPM"!%<DT)$V+T-$F+I$-,R* V#Y&'.OQ!2$QH!04Q$O2!MNHO:(-OKHOP@JN!%4$Z<$> ';7%;56M- !MM=$=K/&C 0.%< 0 &IKJPP7,',,"GO$:8eJKF?< &;W1 !2?H J 9T1 (;G: M,KKM%  M1PQ'B 4.1 "#*# $; @2*0 QL-;P'#@(!%PH R.)E G( ,@' %;A3=E9+@S#@8C!!!!4 4&<KNQPP< ;.8=$ &;E;; 5KJ8!7 $;5KJO!(% $P1Q:  E.)8 *'1# %;!2+CD0  6 *.$8CGL >.H$' ;/*<44: %MP W.T D L E)# &;4+:5>:;+ 12O@LPM #' 72*  OP'FLIQ6F1MON9  , HPP/QO8 E .$, '* ';=..%63672':O0S 92':OBL #& !%!L:O G (.: ;-/0.C ;:J:PN, $%QQ!A"(A O3*G 4"2) "@$4 7 JML9 NQQMKO1 LONP>1%! EN!$6 NN4)/)E 4"3$4-3%% 43J4380> 43[KO*.6 4336E 435:A JJ!QKNLBFNLU"ZN<FNLN:<6X6J=A#!;0)8-2"#[A 6X-"?A"#[A 6J2e$2WCI!! ( K- 4ܾұ+X/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/discouraged.rspHì{‘:^7 ,-,<HLPOMMMQMQMKFP1QNNPMGMKLP2 "20:!* * * +6 %;-001?9,F,RF-:10#Q- < KNOK0 Q# 41 LPO7 4 OMLJI@,O9IN'+(FL <<3'P(<N"CONM.$JI# ;WӛU/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/reserved.rs8'̂P 8m;--,-@OUQ)!%#  8% !9C4Ƨ˯U/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/verbatim.rsrB; ~ .u---.R%)7' ѷ뱃Ɨˮ>R/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/print.rs]cb&SÐyR---:04,4 ƃľvR/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/error.rsr9'|<1ɐUK-ΐ.- ^& 4D%L@P-,K2!9( K>9DQ5#1(# :>D!:(*H !PMPD:#!  NMQ=A 8%PJ'>4&OEN), =*42. NPPJQ@KD!Q?L;*51. *OP!>!. :!. )AM5041A0 # %:'& DB$; *,N# 5 Q6000.P$%BA'?EI.% NK >"LG &1-* C&&*&' C-C7- .P1-+ $ %,+1 +/3 &+, -!/; C ÇŀԺR/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/await.rs ! EsY)殎V/home/seth/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.81/src/gen/clone.rsKV PoDab4*B285% 280)5-%- 8'#';%' 2828283'7%) 28'%! 282828'-! 83' 28 /-/- 28'3'3!-+ 28'3) 8:68 813- 85)1 83) 8'#'-% 28%8%:%>%8%8:%8%4%866%<%>8%<%8%28%44%6%8%8%B86%8%@%:%:%:%4%>%8%68%:>%8%8! 8'7' 8'%-' 8'%!' 8'3+' 8'%/3 28'%!' 8''' 8'/% 8'3'% 28'%3% 28'%-! 8'/1+/)/)% 8'9' 28'%/) 8''/#-%% 8'3% 8'-%33 28'%7' 8'/#-% 28'# 8''1% 8'# 8'3%3% 8 '-/)/3% 28'3% 28''% 8'%)! 8'/#1% 8'7%1# 8'5% 8'%3)1% 8'%9 8'/' 8'3' 8'%3! 28'!% 8'5' 8''3%% 8'3% 28'#'3! 8')3# 8')3% 28<@* 283' 283+ 8+'' 8@: 8@HDFL! 8'##1 8"'#1 8#'#51'3!1 8!'#1'1 28!TLRXN 8'XZ 28FNH 28-)-5 8@B>@F! 8'#33'3!-%1 8'#1 8 '#3#' 8'#31'--!1 28'% 886D2B68:4::8B684>! 8'#3'3!-%1 8'#1'-3- 8!'#53')1 8'##' 8 '#3' 8'3-1-)+3' 8''#1 8'#3'' 8'#/'+% 8'#51'3!-%1 8'#5'-)1 8'#-13'-333' 8 '#3'--)1 8'#1'--!1 8'#3'-) 8'#/7%1 8%3 28'-3) 82:44264< 8'% 8'/#%1 28%1/) 28 LLP 28<@ 2866@ 28%3) 28%-# 8!5-%- 28B@ 28/(3)) 82626046>4686B4<4! 8'/# 8')1') 8'% 8'# 8'5' 8''% 8'!)! 8'/1# 8'1 8'7' 8'%3)1 8'3' 8 '%# 8'#3! 8'= 287- 288\Z 28'/ 28)-) 28#-3) 28/13) 28-!--- 888'/11 288R 8//-#-'-3)-) 8866F 283-/% 28$28$8BD@BH! 8 '3'3!+1 8 '#1 8!'#+1 8'1'-3)+1 288:8@888864@8D8>! 287%1# 28/-#-3)-) 283% 281) 28= 28# 281 28''3)-+ 28 LR 283% 28'% 28131% 28/-1% 287% 28!/) 283' 282881 83' 8' 8'5% 8'-) 8<<@<> 28'% 28'')5 283 28/ 28/3-% 28FDN< 2831 28 JRF Ǿ죆ɑsynx86_64-unknown-linux-gnu-b1b9178876a15848䐁jN(fq0!jn9WJ/ TXWB +